幀 以產(chǎn)生高動(dòng)態(tài)范圍幀(HDR,High-Dynamic-Range frame),并存儲(chǔ)至幀緩存器150。在一實(shí) 施例中,該輸出的HDR幀是18位。
[0055] 圖2是依據(jù)本發(fā)明實(shí)施例由處理單元執(zhí)行的高動(dòng)態(tài)范圍融合方法的方法流程圖。 此流程開(kāi)始于處理單元110通過(guò)相機(jī)模塊控制器170從相機(jī)模塊190取得第0幀數(shù)據(jù)以 及第1幀數(shù)據(jù)(步驟S210)。接著,處理單元110計(jì)算第0幀數(shù)據(jù)及第1幀數(shù)據(jù)間的第一 運(yùn)動(dòng)向量(步驟S220),在一實(shí)施例中,處理單元110可使用已知的運(yùn)動(dòng)估計(jì)(ME,Motion Estimation)算法計(jì)算第一運(yùn)動(dòng)向量。處理單元110通過(guò)相機(jī)模塊控制器170從相機(jī)模塊 190取得第2幀數(shù)據(jù)(步驟S225),值得注意的是,步驟S225與步驟S220的執(zhí)行不分先后, 舉例而言,第2幀是一低曝光幀,當(dāng)處理單元110根據(jù)第0幀數(shù)據(jù)計(jì)算出一低曝光參數(shù)后, 方可取得第2幀數(shù)據(jù),詳見(jiàn)后述。接著,處理單元110依據(jù)第一運(yùn)動(dòng)向量、拍攝第0幀數(shù)據(jù) 與第1幀數(shù)據(jù)的時(shí)間間隔、以及拍攝第〇幀數(shù)據(jù)與第2幀數(shù)據(jù)的時(shí)間間隔,預(yù)測(cè)第0幀數(shù)據(jù) 及第2幀數(shù)據(jù)間的第二運(yùn)動(dòng)向量(步驟S230)。接著,處理單元110依據(jù)第二運(yùn)動(dòng)向量產(chǎn)生 運(yùn)動(dòng)檢測(cè)(MD,Motion Detection)矩陣(步驟S240),其中的運(yùn)動(dòng)檢測(cè)矩陣包含多個(gè)運(yùn)動(dòng) 檢測(cè)標(biāo)志(MD flags)。最后,處理單元110依據(jù)第一運(yùn)動(dòng)檢測(cè)標(biāo)志融合第0幀數(shù)據(jù)以及第 2幀數(shù)據(jù),值得注意的是,在某些實(shí)施例中,在第0幀及第2幀數(shù)據(jù)的融合過(guò)程可以只考慮 第一運(yùn)動(dòng)檢測(cè)標(biāo)志,但以下是以融合過(guò)程中還一并考慮像素權(quán)重為例進(jìn)行說(shuō)明:處理單元 110更計(jì)算第〇幀數(shù)據(jù)的多個(gè)像素權(quán)重(步驟S250),將第0幀數(shù)據(jù)擴(kuò)展至高動(dòng)態(tài)范圍(步 驟S260),以及將第2幀數(shù)據(jù)擴(kuò)展至高動(dòng)態(tài)范圍(步驟S270)。最后,處理單元110依據(jù)運(yùn) 動(dòng)檢測(cè)標(biāo)志以及像素權(quán)重融合擴(kuò)展后第0幀數(shù)據(jù)以及擴(kuò)展后第2幀數(shù)據(jù)(步驟S280)。
[0056] 圖3是依據(jù)本發(fā)明另一實(shí)施例由處理單元執(zhí)行的高動(dòng)態(tài)范圍融合方法的方法流 程圖。此流程開(kāi)始于從幀緩存器130取得第0幀及第1幀(步驟S311)。接著,處理單元 110獲得第〇幀中每一塊的統(tǒng)計(jì)信息(步驟S313)。詳細(xì)來(lái)說(shuō),第0幀可切分為mxn塊,每 塊例如包含16x16或32x32個(gè)像素,以及計(jì)算每個(gè)像素的亮度值。每個(gè)像素的亮度值可使 用公式⑴計(jì)算:
[0057] V = 0. 3x R+0. 6x G+0. lx B (1)
[0058] 其中,R代表紅色值,G代表綠色值,B代表藍(lán)色值,V代表亮度值。處理單元110 計(jì)算每塊的平均亮度值A(chǔ)veLum以及亮度直方圖(histogram)。圖4是依據(jù)本發(fā)明實(shí)施例 的第〇幀中每一塊的直方圖區(qū)間示意圖。本發(fā)明以亮度值為12位舉例,當(dāng)然本發(fā)明不限于 此,以12位表示的亮度值區(qū)間為0~4095。直方圖劃分為例如16個(gè)區(qū)(bins),Bin8包含 的最小亮度值V8設(shè)為2047. 5 ( = 4095/2)。Bin7及Bin9包含的最小亮度值V7及V9可分 別使用公式(2)及(3)計(jì)算:
[0059] V7 = 4095x r (2)
[0060] V9 = 4095x(l-r) (3)
[0061] 其中,r可為0~0.5之間的任意數(shù)值。假設(shè)r設(shè)為0.25,則V7為1023. 75,而V9 為3071. 25。將亮度值區(qū)間0~V7平均分為7區(qū)(BinO~Bin6),將亮度值區(qū)間V9~4095 平均分為7區(qū)(Bin9~Binl5),第8區(qū)(Bin7)的亮度值區(qū)間為V7~V8,第9區(qū)(Bin8)的 亮度值區(qū)間為V8~V9。針對(duì)每個(gè)塊,處理單元110將該塊的各像素按照其亮度值劃分至對(duì) 應(yīng)的區(qū)間(Bin),并統(tǒng)計(jì)每一區(qū)間中包含幾個(gè)像素。產(chǎn)生直方圖的范例虛擬碼如下所示:
含平均亮度值block_averVal以及BinO~Binl5的像素?cái)?shù)目block_hist。
[0065] 接著,處理單元110依據(jù)前述經(jīng)由分析每塊的平均亮度值及直方圖得到的統(tǒng)計(jì)信 息,辨認(rèn)其類型為低曝光、正常曝光或高曝光(步驟S315)。詳細(xì)來(lái)說(shuō),先計(jì)算該塊的直方圖 的下限區(qū)值(low-bin threshold)及上限區(qū)值(high-bin threshold)。下限區(qū)值及上限區(qū) 值可分別使用公式(4)及(5)計(jì)算:
[0066] threBinLow N (BinNum/2-1)/r x 0. 18 (4)
[0067] threBinHigh N BinNum - (BinNum/2-1)/r x 0. 18(5)
[0068] 其中,threBinLow代表下限區(qū)值,threBinHigh代表上限區(qū)值,BinNum代表該塊 的直方圖被劃分的區(qū)(bin)的數(shù)目,如前舉例,BinNum = 16,r可為0~0. 5之間的任意數(shù) 值。假設(shè)r設(shè)為0. 25,則下限區(qū)值為5,而上限區(qū)值為11,則對(duì)于每個(gè)塊,像素屬于(BinO至 Bin5)的區(qū)為暗區(qū),像素屬于(Binll至Binl5)的區(qū)為亮區(qū)。針對(duì)每塊,累計(jì)暗區(qū)(BinO至 Bin5)的像素?cái)?shù)目pixNumLow,以及累計(jì)亮區(qū)(Binll至Binl5)的像素?cái)?shù)目pixNumHigh。處 理單元110藉由以下條件來(lái)辨認(rèn)其類型,例如為正常曝光、低曝光或高曝光。若任一塊的累 計(jì)暗區(qū)的像素?cái)?shù)目pixNumLow不大于一塊亮度閾值(blocklumthres),且該塊的累計(jì)亮區(qū) 的像素?cái)?shù)目pixNumHigh不大于該塊亮度閾值,則將此塊的類型標(biāo)示為一第一類型(正常曝 光)。若任一塊的累計(jì)暗區(qū)的像素?cái)?shù)目pixNumLow大于該塊亮度閾值(blocklumthres),貝1J 將此塊的類型標(biāo)示為一第二類型(低曝光)。若任一塊的累計(jì)亮區(qū)的像素?cái)?shù)目PixNumHigh 大于該塊亮度閾值,則將此塊的類型標(biāo)示為一第三類型(例如高曝光)。在一實(shí)施例中,前 述塊亮度閾值與該塊中包含的像素?cái)?shù)目有關(guān),例如blocklumthres = blocksize*ratio。 在另一實(shí)施例中,處理單元110還提供一平均亮度下限值A(chǔ)veLumLow(例如為256)以及 一平均亮度上限值A(chǔ)veLumHigh(例如為3840)。若該塊的平均亮度值A(chǔ)veLum小于或等于 AveLumLow,則將此塊的類型標(biāo)示為第二類型(低曝光),若該塊的平均亮度值A(chǔ)veLum大于 或等于AveLumHigh,則將此塊的類型標(biāo)示為第二類型(高曝光)。在一實(shí)施例中,先標(biāo)示低 曝光和高曝光的塊,若任一塊未標(biāo)示為低曝光或高曝光,則此塊的類型標(biāo)示為正常曝光。辨 認(rèn)每塊類型的范例虛擬碼如下所示:
[0069]
[0071] 其中,blockLabel是一個(gè)陣列,每一個(gè)存儲(chǔ)格存儲(chǔ)一塊的類型標(biāo)示,例如低曝光 "L0W"、正常曝光"NORMAL"以及高曝光"HIGH"。在一些實(shí)施例中,本領(lǐng)域技術(shù)人員也可修 改皆考慮累計(jì)暗區(qū)或亮區(qū)的像素?cái)?shù)目以及該塊的平均亮度值A(chǔ)veLum來(lái)辨認(rèn)其類型為低 曝光、正常曝光或高曝光。例如,若任一塊的累計(jì)暗區(qū)的像素?cái)?shù)目pixNumLow大于該塊亮 度閾值blocklumthres以及該塊的平均亮度值A(chǔ)veLum小于或等于AveLumLow,則將此塊 的類型標(biāo)示為低曝光。若任一塊的累計(jì)亮區(qū)的像素?cái)?shù)目pixNumHigh大于該塊亮度閾值 blocklumthres以及該塊的平均亮度值A(chǔ)veLum大于或等于AveLumHigh,則將此塊的類型標(biāo) 示為高曝光。若任一塊未標(biāo)示為低曝光或高曝光,則將此塊的類型標(biāo)示為正常曝光。
[0072] 接著,處理單元110根據(jù)每塊的類型設(shè)定權(quán)重(步驟S317),以及計(jì)算第0幀中每 個(gè)像素的權(quán)重(步驟S319)。在步驟S317,詳細(xì)來(lái)說(shuō),當(dāng)此塊的類型標(biāo)示為低曝光時(shí),將該 塊的權(quán)重設(shè)定為〇 ;當(dāng)此塊的類型標(biāo)示為正常曝光時(shí),將該塊的權(quán)重設(shè)定為1 ;以及此塊的 類型標(biāo)示為高曝光時(shí),將該塊的權(quán)重設(shè)定為2。在步驟S319,詳細(xì)來(lái)說(shuō),除了邊界及角落塊 的像素外,處理單元110依據(jù)相鄰四塊的權(quán)重以及與相鄰四塊間的距離計(jì)算第〇幀中每個(gè) 像素的權(quán)重。圖6是依據(jù)本發(fā)明實(shí)施例的相鄰四塊示意圖。相鄰四塊的中心點(diǎn)W^、W UR、Wa 及圍成一個(gè)矩形,以及此矩形包含四邊El至E4。每個(gè)像素權(quán)重W p的計(jì)算可使用公式 (6)計(jì)算:
[0073] ffp= Dlx D2x ffUL+Dlx D4x ffUR
[0074] +D3x D2x ffLL+D3x D4x ffLR (6)
[0075] Wi代表左上塊的權(quán)重,WUR代表右上塊的權(quán)重,Wa代表左下塊的權(quán)重,表右下 塊的權(quán)重,D1代表像素P與下邊E1間的距離,D2代表像素P與右邊E2間的距離,D3代表 像素P與上邊E3間的距離,以及D4代表像素P與左邊E4間的距離。步驟S319所計(jì)算得 到的第〇幀中每個(gè)像素的權(quán)重Wp再進(jìn)行歸一化后(例如除以塊面積以實(shí)現(xiàn)歸一化為0~ 1之間的數(shù)值),將在與第2幀和第3幀融合時(shí)使用,詳見(jiàn)后面的敘述。前述步驟S313至 S319的計(jì)算第0幀中每個(gè)像素的權(quán)重的流程僅為一示例,但本發(fā)明不限于此,在本發(fā)明其 它實(shí)施例中也可以采取其它方法計(jì)算第〇幀中每個(gè)像素的權(quán)重。
[0076] 現(xiàn)在返回參考圖3的初始步驟S311,處理單元110在取得第0幀后(步驟S311), 獲得第〇幀的幀統(tǒng)計(jì)信息(步驟S351以及S331)。在步驟S311,處理單元110還可將第0 幀的RGB顏色空間轉(zhuǎn)換成HSV顏色空間。對(duì)于步驟S351及S331,詳細(xì)來(lái)說(shuō),處理單元110 計(jì)算第〇幀的亮度直方圖。圖5是依據(jù)本發(fā)明實(shí)施例的第0幀的直方圖區(qū)間示意圖。暗區(qū) (BinO)的亮度值范圍從0~C1,而亮區(qū)(Bin3)的亮度值