国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

誤差擴散抖動算法和閾值抖動算法的原理

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 2025-11-03 09:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式GUI開發中,低色深(如RGB565)常常導致圖片漸變出現明顯色帶。

今天給大家帶來一個好消息!

GUI Guider現已支持LVGL圖片抖動處理,內置兩種主流算法:Floyd-Steinberg誤差擴散抖動和閾值抖動。

本文將結合源碼實現,帶你深入理解這兩種算法的原理、特點與工程應用,讓你的界面更細膩、更專業!

什么是圖片抖動(Dithering)

想象一下,你有一盒256色的彩筆,但現在只能用16色來畫同一幅畫。直接的做法是找到最接近的顏色替代,但這樣會產生明顯的色彩分層和失真。

抖動算法就像一個聰明的藝術家,通過巧妙地安排像素的分布,讓人眼在一定距離下看到接近原始色彩的效果。這就是"空間換色彩"的思想。

誤差擴散抖動算法

原理簡介:

Floyd-Steinberg算法是一種經典的誤差擴散抖動方法。其核心思想是:當前像素的量化誤差不應浪費,而應傳遞給鄰近像素,從而整體提升視覺效果。

實現算法流程:

4cbde426-b52a-11f0-8c8f-92fbcf53809c.png

1.將每個像素的RGB值映射到21個等級(step約為12.75),以適應低色深顯示。

2.計算原始像素與量化后像素的誤差。

3.按照Floyd-Steinberg權重,將誤差分配給右側、正下、左下和右下的像素。

源碼實例片段:

constquantize= (value) => {
conststep =255/ (21-1);
returnMath.round(value / step) * step;
};
//
誤差擴散到鄰近像素
diffuseError(1,0,7/16);//
右側
diffuseError(-1,1,3/16);//
左下
diffuseError(0,1,5/16);//
正下
diffuseError(1,1,1/16);//
右下
算法特點:

4d3488d8-b52a-11f0-8c8f-92fbcf53809c.png

閾值抖動算法

原理簡介:

閾值抖動采用預定義的閾值矩陣,根據像素在矩陣中的位置決定其量化方式。每個像素獨立處理,天然支持并行計算。

4d8977e4-b52a-11f0-8c8f-92fbcf53809c.png

實現流程:

閾值矩陣設計:

使用8×8的閾值矩陣,分別針對RGB三個通道設計不同的閾值分布:

letred_thresh = [
1,7,3,5,0,8,2,6,
7,1,5,3,8,0,6,2,
// ... 64
個值的
8x8
矩陣
]

這種分離式設計有特殊考慮:

4e0215dc-b52a-11f0-8c8f-92fbcf53809c.png

2. 基于像素位置計算閾值矩陣索引

let threshold_id = ((y & 7) << 3) + (x & 7);

3. RGB565格式適配:針對RGB565格式,分別對紅、綠、藍通道做位掩碼處理,保證色彩映射準確。

算法特點:

4e5821f2-b52a-11f0-8c8f-92fbcf53809c.png

算法對比與選擇建議:

4eb18526-b52a-11f0-8c8f-92fbcf53809c.png

若在GUI Guider中遇到圖片顯示出現色帶問題,建議在圖片屬性設置中嘗試更換不同的圖像渲染算法,以改善圖像質量:

4f06d6c0-b52a-11f0-8c8f-92fbcf53809c.png

實際應用建議:

漸變和照片類圖片優先選擇Floyd-Steinberg算法,追求最佳視覺體驗

UI圖標、純色塊、實時渲染場景優先選擇閾值抖動算法,追求極致效率

總結

兩種抖動算法各有優勢:

Floyd-Steinberg-適合追求高質量的場景,特別是照片和復雜圖像

閾值抖動-適合對性能要求較高的實時應用和UI圖標

在使用GUI Guider的嵌入式GUI開發中,根據具體的硬件平臺和應用需求選擇合適的算法,可以在性能和視覺效果之間找到最佳平衡點。理解這些算法的原理,不僅能幫助我們更好地使用現有工具,還能在需要時進行定制優化,打造更出色的用戶界面體驗。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5198

    文章

    20442

    瀏覽量

    333976
  • 算法
    +關注

    關注

    23

    文章

    4784

    瀏覽量

    98038
  • GUI
    GUI
    +關注

    關注

    3

    文章

    697

    瀏覽量

    43459

原文標題:告別色帶!從GUI Guider無色帶漸變開始

文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    抖動的基礎知識

    (或交叉點)。這取決于時間參考是來自于采樣數據,還是由外部提供。如果抖動發生在采樣點跳變閾值的“錯誤位置”,并且導致接收電路“錯解”了該比特位發射時的真實情況,那么就會出現傳輸誤差。圖 1 就是對這種情形的描述。
    的頭像 發表于 11-29 18:26 ?4714次閱讀
    <b class='flag-5'>抖動</b>的基礎知識

    STM32的ADC項目應用,用什么算法濾波和穩定數據抖動

    STM32的ADC項目應用,大家都用什么算法濾波和穩定數據抖動。 ADC數據的抖動有時候應用在項目上讓人很是頭疼,什么度娘十大濾波算法也是要斟酌選用。 單片機項目設計中,外設ADC的
    發表于 04-17 08:20

    抖動測量三種方法

    。若網絡、網絡元件、子系統或IC的BER超過可接受的限制,則必須找到誤差源。 大多數工程技術人員希望用儀器組合來跟蹤抖動問題,先用BER測試儀、然后用抖動分析儀或示波器來隔離誤差源。
    發表于 08-02 16:20

    抖動算法

    最近在做有關鐵路目標檢測的研究,用紅外CCD的視頻,因為CCD是放在火車上的,火車會抖動,所以錄的視頻也是有很大的抖動,有沒有什么好的算法,可以消除抖動呢,謝謝大神了,指點下!!
    發表于 07-18 08:50

    超寬帶通信中定時抖動抑制算法的研究

    本文研究了直擴超寬帶通信系統的關鍵技術----定時抖動及其抑制方法,主要分析了定時抖動產生的原因、分布規律和各種有效的抑制方法。文中第一次對DS-UWB 系統定時抖動產生的各
    發表于 08-10 14:24 ?15次下載

    考慮基線抖動的雙天線干涉SAR 原始回波仿

    該文針對雙天線干涉SAR 系統基線抖動的特點提出了一種能夠精確仿真基線抖動影響的改進二維頻域原始回波生成算法。該算法通過Taylor 展開近似將基線
    發表于 11-11 15:38 ?11次下載

    自適應抖動調制圖像水印算法

    量化步長是影響量化水印算法性能的最關鍵因素之一。該文根據JPEG 量化表自適應地選擇抖動調制中的量化步長,提出了一種新的自適應量化水印算法;并將JPEG 量化表和Watson 感知模
    發表于 11-21 11:37 ?13次下載

    抖動的概念和抖動的測量方法

    抖動的概念和抖動的測量方法 在數字通信系統,特別是同步系統中,隨著系統時鐘頻率的不斷提高,時間抖動成為影響通
    發表于 11-27 08:28 ?5139次閱讀
    <b class='flag-5'>抖動</b>的概念和<b class='flag-5'>抖動</b>的測量方法

    什么是抖動?什么叫抖動

    什么是抖動?什么叫抖動 抖動的定義是“數字信號的各個有效瞬時對其
    發表于 11-27 08:40 ?8189次閱讀
    什么是<b class='flag-5'>抖動</b>?什么叫<b class='flag-5'>抖動</b>

    抖動/歪斜,抖動/歪斜是什么意思

    抖動/歪斜,抖動/歪斜是什么意思 什么是抖動(jitter) 所謂jitter就是一種抖動。具體如何解釋呢?讓我
    發表于 03-22 14:42 ?2434次閱讀

    基于Tail Fit算法抖動分離

    提出了一種基于Tail-Fit算法抖動分離技術,給出了該算法的擬合結果,驗證了算法的有效性。
    發表于 10-19 14:42 ?33次下載
    基于Tail Fit<b class='flag-5'>算法</b>的<b class='flag-5'>抖動</b>分離

    時鐘抖動的基礎

    介紹 此應用筆記側重于不同類型的時鐘抖動。時鐘抖動是從它的時鐘邊沿偏差理想的位置。了解時鐘抖動非常重要在應用中,因為它起著關鍵作用,在時間預算一個系統。 隨著系統數據速率的增加,定時抖動
    發表于 04-01 16:13 ?6次下載

    抖動的位同步環路設計(GARDNER)

    不受載波相偏影響、實現簡單等優點,在數字同步通信系統中被廣泛應用。然而傳統Cardner算法的定時誤差檢測在環路收斂后仍存在較大的白噪聲,造成定時誤差抖動較大,繼Cardner后的國內
    發表于 11-02 15:22 ?1次下載
    降<b class='flag-5'>抖動</b>的位同步環路設計(GARDNER)

    相位抖動是從哪來的?通信中有哪些抖動

    發射端涉及到抖動的來源有:Thermal Noise(隨機抖動), Duty Cycle Distortion(占空比失真), Power Supply Noise(隨機抖動和周期性抖動
    的頭像 發表于 05-31 16:43 ?2300次閱讀
    相位<b class='flag-5'>抖動</b>是從哪來的?通信中有哪些<b class='flag-5'>抖動</b>?

    電機抖動大怎么解決

    電機抖動大怎么解決 電機抖動大是指在電機運轉時發生了震動或抖動現象,它主要是由于電機失衡、機械系統不穩定、設計誤差或部件故障等因素造成的。如果不及時解決,電機
    的頭像 發表于 08-28 18:24 ?6396次閱讀