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