1、動態(tài)范圍壓縮介紹
自然界中真實場景能夠表現(xiàn)比較廣泛的顏色亮度區(qū)間,比如從很暗(10^-5 cd/m2)的黑夜到明亮(10^5 cd/m2)的太陽光,有將近10個數(shù)量級的動態(tài)方位。而傳統(tǒng)顯示設(shè)備所能顯示的場景、視頻和圖像通常受限于硬件設(shè)備,通常只能表達(dá)出很小一部分的亮度范圍,比如如常見的8比特圖像顯示0到255的整數(shù)范圍,因此為了能夠顯示高動態(tài)范圍的影響,需要實現(xiàn)從高動態(tài)范圍圖像(HDR)到低動態(tài)范圍圖像(LDR)的映射,并且不同顯示設(shè)備的出現(xiàn),需要實現(xiàn)HDR和之間的相互轉(zhuǎn)換 ,即動態(tài)范圍壓縮(DRC,Dynamic Range Compression)。
動態(tài)范圍壓縮算法常見的分為全局映射和局部映射:
全局映射:像素的一對一映射,降低一致的分辨率,這樣得到的LDR圖像的對比度大大地減少,容易丟失細(xì)節(jié)部分的信息 。
局部映射:考慮像素和像素之間的關(guān)系,能夠適當(dāng)增強局部范圍的亮度對比度,它保留了一定的細(xì)節(jié),但是某些區(qū)域會出現(xiàn)失真的現(xiàn)象,并且它的復(fù)雜度較高 。
鑒于這個原因,我們希望有一個理想算法:既要能保持像素的整體變化,又要能保存一部分細(xì)節(jié)特征,使得亮度效果能夠達(dá)到人眼可以接受的接近現(xiàn)實的場景。
2、動態(tài)范圍壓縮算法
實現(xiàn)動態(tài)范圍壓縮有許多種算法,比如線性移位算法、對數(shù)映射算法、分段函數(shù)映射算法、自適應(yīng)性對數(shù)映射算法、高動態(tài)范圍圖像可視化算法。
2.1 線性移位算法
原理:是最簡單的DRC算法,它將以n比特整數(shù)表示的HDR圖像直接右移(n—m)個比特得m(m
缺點:考慮像素顏色的分布,會使數(shù)值集中的顏色分辨率降低,對于大部分圖像來說,像素顏色不均,并且多分布于中低數(shù)值區(qū)間,高數(shù)值區(qū)間的顏色較少,這樣映射后的LDR圖像,顏色暗的地方更暗了,丟失很多細(xì)節(jié),顏色高亮的地方會變得很尖銳,有失真的表現(xiàn)。
2.2 對數(shù)映射算法
原理:為簡便起見以2為底,將數(shù)值區(qū)間[0,2^n]對數(shù)化到區(qū)間[0,n],然后再線性變換到區(qū)間[0,2^m] 。
缺點:與線性移位算法一樣,都是全局算法,不能對圖像的局部進(jìn)行有效的修正,圖像效果一般,但是效率較高 。
2.3 分段函數(shù)映射
原理:考慮到低數(shù)值區(qū)間、高數(shù)值區(qū)間以及它們之間區(qū)域的不同特點,使用三段式的分段函數(shù)對HDR圖像進(jìn)行壓縮,對不同的亮度區(qū)域進(jìn)行分辨率調(diào)整。
優(yōu)點:兩端的線段斜率較小,中間的斜率較大,即算法有意地提高中間值像素的分辨率。映射曲線的兩個拐點值視不同的圖像而定,即它考慮到了圖像的局部特征變化, 所以不完全是全局算法。
缺點:仍然是粗粒度的,因為它沒有考慮像素之間的關(guān)系。
2.4 自適應(yīng)性對數(shù)映射
原理:引入實際場景最高亮度值和現(xiàn)實場景最高亮度值的對數(shù)比,并且選取一個較優(yōu)對比度調(diào)節(jié)算子,實現(xiàn)HDR到LDR的映射。
優(yōu)點:樣擴大中間亮度值的映射范圍,壓縮高亮度值的映射斜率。后兩種算法的復(fù)雜度一般,圖像效果比之前兩種算法好。
2.5 高動態(tài)范圍圖像可視化算法
原理:用快速雙向濾波器對輸入圖像進(jìn)行對數(shù)域分解,分解為基本層和細(xì)節(jié)層,分別進(jìn)行全局和局部映射算法,基本層進(jìn)行直方圖映射調(diào)整,細(xì)節(jié)層進(jìn)行自適應(yīng)細(xì)節(jié)增強。
優(yōu)點:既保留了全局對比信息,又增強了局部細(xì)節(jié),視覺效果更好一些,但是雙向濾波器的引入,使得算法的復(fù)雜度較高。
本文為了考慮性能和實現(xiàn)復(fù)雜度,提出了一種新算法:以對數(shù)映射為基礎(chǔ),結(jié)合對數(shù)映射和分段映射的特點,劃分出不同的亮度范圍,然后分段映射。這樣既不需要太高復(fù)雜度的算法將圖像的全局信息和局部信息分開來,又能實現(xiàn)對局部區(qū)域的調(diào)節(jié)。
3、對數(shù)分段映射算法實現(xiàn)
對數(shù)分段映射算法的實現(xiàn)步驟如下:
將原始輸入進(jìn)行指定區(qū)間的改進(jìn)對數(shù)映射
將對數(shù)區(qū)間進(jìn)行分段調(diào)整
3.1 改進(jìn)的對數(shù)映射
傳統(tǒng)對數(shù)映射公式如下,其中:對數(shù)底數(shù)base和前面的系數(shù)a視具體的映射范圍而定,這里取以2為底。
f(x) = a * logbase(x + 1)
改進(jìn)全局映射步驟中的對數(shù)映射算法,以10比特的HDR圖像為例,公式如下:
f(x) = [[lb(x+1) * 1..6]^2 - 0.5]; 0=
Matlab各自擬合的曲線對比如下(輸入:[0,1023],輸出:[0,255]):
其中L1為傳統(tǒng)對數(shù)算法,L2曲線為改進(jìn)后的算法,L3為線性移位算法??梢钥闯龈倪M(jìn)后的L2曲線優(yōu)勢是擴 大了中間數(shù)值區(qū)域的映射范圍,提高了該區(qū)域的分辨率。
3.2 對數(shù)區(qū)間進(jìn)行分段調(diào)整
我們對局部區(qū)域進(jìn)行適當(dāng)處理,使得數(shù)據(jù)分布較多的區(qū)域能夠擴大映射范圍,數(shù)據(jù)分布較少的區(qū)域能夠縮小映射范圍,即將改進(jìn)后的算法加以適應(yīng)性調(diào)整后作用到不同的區(qū)間段上以產(chǎn)生更好的效果。
假如把需要映射的亮度區(qū)間分為兩段:[0,511]和(511,1023],在這兩段區(qū)間上使用不同的含參數(shù)的映射曲線:
令A(yù)(x) = [(1.6 * lb(x + 1))^2 - 0.5],則滿足如下條件:
另外,引入一個漸變參數(shù)a: a = a3/a1 = N2/N1,其中Ni為亮度值分布在第i個區(qū)間內(nèi)的像素個數(shù),漸變系數(shù)值反映了每個區(qū)間像素分布的遞增趨勢。
4、算法仿真對比
以10bit的HDR圖像為例,該圖亮度值范圍為0~1023,分為兩個映射區(qū)間后的曲線表達(dá)式為:
仿真對比如下:
線性移位算法
典型對數(shù)映射法
本文算法
結(jié)論:本文提出的算法更好地增強了高低亮度區(qū)域的對比度,并且高低亮度區(qū)域交界處變化平滑。
-
圖像處理
+關(guān)注
關(guān)注
27文章
1302瀏覽量
56904
原文標(biāo)題:圖像處理之動態(tài)范圍壓縮
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何設(shè)計BP神經(jīng)網(wǎng)絡(luò)圖像壓縮算法?
視頻壓縮算法的特點和處理流程是怎樣的?
國內(nèi)醫(yī)學(xué)圖像處理技術(shù)的最新動態(tài)
楔波與小波聯(lián)合圖像壓縮算法
變頻壓縮/動態(tài)范圍,變頻壓縮/動態(tài)范圍是什么意思
一種圖像動態(tài)范圍壓縮算法及其FPGA實現(xiàn)
LED顯示屏高動態(tài)范圍顯示技術(shù)的介紹與色調(diào)映射算法的分析
基于細(xì)節(jié)增強和動態(tài)壓縮算法的圖像處理方案
![基于細(xì)節(jié)增強和<b class='flag-5'>動態(tài)</b><b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>的<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>方案](https://file1.elecfans.com//web2/M00/A6/EF/wKgZomUMQVaACxK9AAAZpHJLWX8361.jpg)
圖像處理之動態(tài)范圍擴展定義與方法
![<b class='flag-5'>圖像</b><b class='flag-5'>處理</b><b class='flag-5'>之</b><b class='flag-5'>動態(tài)</b><b class='flag-5'>范圍</b>擴展定義與方法](https://file.elecfans.com/web1/M00/56/35/o4YBAFs8hN6AOXwsAAAFKEFFx7U192.jpg)
如何使用FPGA實現(xiàn)空間圖像CCSDS壓縮算法的設(shè)計
![如何使用FPGA實現(xiàn)空間<b class='flag-5'>圖像</b>CCSDS<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>的設(shè)計](https://file.elecfans.com/web1/M00/DE/8A/o4YBAGAdAFiAe3b8AACIvuq5pWk059.png)
如何使用FPGA實現(xiàn)圖像動態(tài)范圍壓縮算法
![如何使用FPGA實現(xiàn)<b class='flag-5'>圖像</b><b class='flag-5'>動態(tài)</b><b class='flag-5'>范圍</b><b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>](https://file.elecfans.com/web1/M00/DE/8E/o4YBAGAdEAWABwVgAABbrWzEJEo732.png)
DCT的圖像壓縮編碼算法的MATLAB實現(xiàn)
![DCT的<b class='flag-5'>圖像</b><b class='flag-5'>壓縮</b>編碼<b class='flag-5'>算法</b>的MATLAB實現(xiàn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
紅外熱成像圖像算法(續(xù))
![紅外熱成像<b class='flag-5'>圖像</b><b class='flag-5'>算法</b>(續(xù))](https://file.elecfans.com/web2/M00/7C/70/pYYBAGN2_tGATjziAABaV1fmDP0000.png)
評論