自动白平衡补偿方法以及使用该方法的装置转让专利

申请号 : CN201510117455.6

文献号 : CN104683779B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王旭齐南

申请人 : 上海兆芯集成电路有限公司

摘要 :

自动白平衡补偿方法以及使用该方法的装置。本发明的实施例提出一种由处理单元执行的自动白平衡补偿方法。取得第0帧数据,将第0帧数据划分成多块,以及获得第0帧数据中的每一块的块统计信息。依据块统计信息分别标示第0帧数据的每一块为多个类型之一,将上述块中类型为第一类型的块作为输入对第0帧数据进行第一自动白平衡补偿,以及将第1帧数据中与第0帧数据的上述块中类型为第二类型的块位置相同的块作为输入对第1帧数据进行第二自动白平衡补偿。融合补偿后第0帧数据以及补偿后第1帧数据。

权利要求 :

1.一种自动白平衡补偿方法,由处理单元执行,包含:

取得第0帧数据;

将上述第0帧数据划分成多块;

获得上述第0帧数据中的每一上述块的块统计信息;

依据上述块统计信息分别标示上述第0帧数据的每一上述块为多个类型之一;

将上述块中上述类型为第一类型的块作为输入对上述第0帧数据进行第一自动白平衡补偿,上述第一类型的标示基于上述块之一的亮度直方图中的暗区的像素数目、亮区的像素数目和/或该块的平均亮度值;

将一第1帧数据中与上述第0帧数据的上述块中上述类型为第二类型的块位置相同的块作为输入对上述第1帧数据进行第二自动白平衡补偿;以及融合上述补偿后第0帧数据以及上述补偿后第1帧数据,上述融合上述补偿后第0帧数据以及上述补偿后第1帧数据包括分别基于一第一扩展因子和一第二扩展因子将上述第0帧数据和上述第1帧数据扩展至高动态范围,其中上述第0帧是正常曝光帧,上述第1帧是低曝光帧。

2.如权利要求1所述的自动白平衡补偿方法,其中将上述块中上述类型为上述第一类型的块作为输入对上述第0帧数据进行上述第一自动白平衡补偿的步骤还包括:以上述块中的上述类型为上述第一类型的块的像素作为输入参与统计计算;以及依据上述统计计算的结果调整上述第0帧数据的像素的R-通道和B-通道的增益。

3.如权利要求1所述的自动白平衡补偿方法,其中若该块的上述暗区的像素数目不大于块亮度阈值,且该块的上述亮区的像素数目不大于该块亮度阈值,则将该块的类型标示为上述第一类型。

4.如权利要求3所述的自动白平衡补偿方法,其中该块的该亮度直方图被划分为多个区间,该块的各像素按照其亮度值被划分至对应的区间,其中上述暗区包括上述区间中的第一个区间至下限区值区间的多个区间,其中上述亮区包括上限区值区间至上述区间中的最后一个区间的多个区间。

5.如权利要求1所述的自动白平衡补偿方法,其中若上述第0帧的上述块之一的亮度直方图中的暗区的像素数目大于块亮度阈值,则将该块的类型标示为上述第二类型。

6.如权利要求1所述的自动白平衡补偿方法,其中若上述块之一的该平均亮度值处于平均亮度下限值及平均亮度上限值之间,则将该块的类型标示为上述第一类型。

7.如权利要求1所述的自动白平衡补偿方法,其中还包含:

取得第2帧数据;

将上述第2帧数据中与上述第0帧数据的上述块中上述类型为第三类型的块位置相同的块作为输入对上述第2帧数据进行第三自动白平衡补偿;以及将上述补偿后第2帧数据与上述补偿后第0帧数据以及上述补偿后第1帧数据融合的结果再融合。

8.如权利要求7所述的自动白平衡补偿方法,其中上述第2帧是高曝光帧,若上述第0帧的上述块之一的亮度直方图中的亮区的像素数目大于一块亮度阈值,则将该块的类型标示为上述第三类型。

9.如权利要求1所述的自动白平衡补偿方法,还包含:

依据每一上述块的上述类型设定权重;

依据上述块的上述权重计算上述第0帧数据的多个像素的权重;以及

依据上述像素的权重融合上述补偿后第0帧数据以及上述补偿后第1帧数据。

10.如权利要求9所述的自动白平衡补偿方法,其中上述像素的权重的计算使用以下公式计算:Wp=D1 x D2 x WUL+D1 x D4 x WUR+D3 x D2 x WLL+D3 x D4 x WLR,Wp代表上述像素的权重,WUL代表一左上块的权重,WUR代表一右上块的权重,WLL代表左下块的权重,WLR代表右下块的权重,D1代表上述像素与由上述四个块的中心点围成的矩形的下边间的距离,D2代表上述像素与该矩形的右边间的距离,D3代表上述像素与该矩形的上边间的距离,以及D4代表上述像素与该矩形的左边间的距离。

11.一种自动白平衡补偿装置,包含:

相机模块控制器,耦接于相机模块;

处理单元,通过上述相机模块控制器取得第0帧数据;将上述第0帧数据划分成多块;获得上述第0帧数据中的每一上述块的块统计信息;依据上述块统计信息分别标示上述第0帧数据的每一上述块为多个类型之一;将上述块中上述类型为第一类型的块作为输入对上述第0帧数据进行第一自动白平衡补偿,上述第一类型的标示基于上述块之一的亮度直方图中的暗区的像素数目、亮区的像素数目和/或该块的平均亮度值;取得第1帧数据;将上述第

1帧数据依照上述第0帧的上述块划分成多块;将上述第1帧数据中与上述第0帧数据的上述块中上述类型为第二类型的块位置相同的块作为输入对上述第1帧数据进行第二自动白平衡补偿;以及融合上述补偿后第0帧数据以及上述补偿后第1帧数据,上述融合上述补偿后第0帧数据以及上述补偿后第1帧数据包括分别基于一第一扩展因子和一第二扩展因子将上述第0帧数据和上述第1帧数据扩展至高动态范围,其中上述第0帧是正常曝光帧,上述第1帧是低曝光帧。

12.如权利要求11所述的自动白平衡补偿装置,其中上述处理单元还以上述块中的上述类型为上述第一类型的块的像素作为输入参与统计计算,并且根据上述统计计算结果调整上述第0帧数据的像素的R-通道和B-通道的增益。

说明书 :

自动白平衡补偿方法以及使用该方法的装置

技术领域

[0001] 本发明涉及一种图像处理技术,特别涉及一种自动白平衡补偿方法以及使用该方法的装置。

背景技术

[0002] 高动态范围(HDR,High-Dynamic-Range)图像可显示从现实世界抓取的更大范围的亮度水平,从直射的阳光到微弱的星光。其通常针对相同的拍摄物体抓取不同曝光度的图像,并融合这些图像来产生高动态范围图像。非高动态范围相机以受限的曝光区间拍摄,造成在亮部及暗部损失细节。为了补偿这类的细节损失,高动态范围技术藉由在不同的曝光水平下拍摄并融合这些不同曝光水平下拍摄的图像,用以产生可表示更广色度范围的图像。然而,低动态范围图像包含具不同色温的区域。直接合并这些低动态范围图像将产生具颜色偏差的高动态范围图像。而自动白平衡(Automatic White Balance,AWB)技术是通过改变图像各色彩通道的增益,对色温(color temperature)所造成的色彩偏差进行补偿(correct),从而让获得的图像能正确反映物体的真实色彩。通常的自动白平衡补偿方法是对整个图像都采取统一的自动白平衡补偿算法,然而,一个图像帧(image frame)往往包含具不同色温的区域,对不同色温区域均采取相同程度的自动白平衡补偿无法准确地补偿色彩偏差从而无法还原物体的真实色彩。因此,本发明提出一种自动白平衡补偿方法以及使用该方法的装置,用以提高产生高动态范围图像中的自动白平衡补偿的准确度。

发明内容

[0003] 本发明的实施例提出一种由处理单元执行的自动白平衡补偿方法。取得第0帧数据,将第0帧数据划分成多块,以及获得第0帧数据中的每一块的块统计信息。依据块统计信息分别标示第0帧数据的每一块为多个类型之一,将上述块中类型为第一类型的块作为输入对第0帧数据进行第一自动白平衡 补偿,以及将第1帧数据中与第0帧数据的上述块中类型为第二类型的块位置相同的块作为输入对第1帧数据进行第二自动白平衡补偿。融合补偿后第0帧数据以及补偿后第1帧数据。
[0004] 本发明的实施例提出一种自动白平衡补偿装置,包含相机模块控制器以及处理单元。处理单元通过相机模块控制器取得第0帧数据;将第0帧数据划分成多块;获得第0帧数据中的每一块的块统计信息;依据块统计信息分别标示第0帧数据的每一块为多个类型之一;将上述块中类型为第一类型的块作为输入对第0帧数据进行第一自动白平衡补偿;将第1帧数据中与第0帧数据的上述块中类型为第二类型的块位置相同的块作为输入对第1帧数据进行第二自动白平衡补偿;以及融合补偿后第0帧数据以及补偿后第1帧数据。
[0005] 应用本发明的上述自动白平衡补偿方法及装置输出的图像中来自第0帧和第1帧的部分分别采用不同的自动白平衡补偿,例如前述的第一和第二自动白平衡补偿,即是说,亮度不同的部分采取了不同程度的自动白平衡补偿,由于亮度不同的区域往往具有不同的色温,对不同色温区域采取不同的自动白平衡补偿,可以更准确地补偿色彩偏差从而更准确地还原物体的真实色彩。

附图说明

[0006] 图1是依据本发明实施例的运算装置的系统架构图。
[0007] 图2是依据本发明实施例由处理单元执行的自动白平衡补偿方法的方法流程图。
[0008] 图3是依据本发明另一实施例由处理单元执行的高动态范围融合过程中的自动白平衡补偿方法的方法流程图。
[0009] 图4是依据本发明实施例的贝尔格式图像示意图。
[0010] 图5是依据本发明实施例的块亮度直方图区间示意图。
[0011] 图6是依据本发明实施例的帧亮度直方图区间示意图。
[0012] 图7是依据本发明实施例的相邻四块示意图。
[0013] 【符号说明】
[0014] 110处理单元;           130、150帧缓存区;
[0015] 140易失性存储器;        170相机模块控制器;
[0016] 190相机模块;           S210~S280方法步骤;
[0017] S311~S373方法步骤;     410贝尔格式图像;
[0018] Bin0~Bin16亮度区;      V7~V9、C0~C4亮度值;
[0019] Wp像素权重;
[0020] WUL左上块中心点的权重;
[0021] WUR右上块中心点的权重;
[0022] WLL左下块中心点的权重;
[0023] WLR右下块中心点的权重;
[0024] E1下边;                   E2右边;
[0025] E3上边;                   E4左边;
[0026] D1像素Wp与下边E1间的距离;
[0027] D2像素Wp与右边E2间的距离;
[0028] D3像素Wp与上边E3间的距离;
[0029] D4像素Wp与左边E4间的距离。

具体实施方式

[0030] 以下说明为完成发明的优选实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的发明内容必须参考之后的权利要求范围。
[0031] 必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
[0032] 在权利要求中使用如”第一”、"第二"、"第三"等词系用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
[0033] 图1是依据本发明实施例的运算装置的系统架构图。此系统架构可实施于桌上型计算机、笔记型计算机、平板计算机、手机、数字相机、数字录影机等,至少包含处理单元110。处理单元110可使用多种方式实施,例如以专用硬件电路或通用硬件(例如,单一处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行固件或软件时,提供之后所描述的功能。处理单元110可通过相机模块控制器170控制相机模块190 捕捉多个低动态范围帧(LDR,Low-Dynamic-Range frame)并存储在帧缓存区(frame buffer)130。相机模块190可包含图像传感器,例如,互补式金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)、电荷耦合元件(charge-coupled device,CCD)等传感器,用以感测由红、绿、蓝光强度所形成的图像,以及包含读取电子电路,用以从图像传感器搜集感测到的数据。处理单元110可从帧缓存器130取得至少三个低动态范围帧(LDR frame),在一实施例中,前述至少三个LDR帧是12位,其中一个LDR帧是于最佳曝光设定(exposure setting)下取得,由自动曝光算法(AE,Automatic Exposure algorithm)计算而得,以下称第0帧。由此须注意的是,第0帧取得时使用的曝光设定,包括快门速度(shutter speed)、模拟增益(analog gain)以及数字增益(digital gain),这些设定参数也会记录于帧缓存器130或易失性存储器140。易失性存储器140,例如动态随机随取存储器(DRAM,Dynamic Random Access Memory),用以存储执行过程中需要的数据,例如,变量、数据表(data tables)等。另一个LDR帧为一个低曝光帧,以下称第1帧。再另一个LDR帧为一个高曝光帧,以下称第2帧。处理单元110使用高动态范围融合算法(HDRM,High-Dynamic-Range Merging Algorithm)融合第0~2帧以产生高动态范围帧(HDR,High-Dynamic-Range frame),并存储至帧缓存器150。在一实施例中,该输出的HDR帧是18位。
[0034] 图2是依据本发明实施例由处理单元执行的自动白平衡补偿方法的方法流程图。此流程开始于处理单元110取得第0帧(步骤S210)。之后,将第0帧数据划分成多块(步骤S220),获得第0帧数据中的每一块的块统计信息(步骤S230),以及依据块统计信息分别标示第0帧数据中的每一块为多个类型之一(步骤S240)。处理单元110还将所有块中的类型为第一类型的块作为输入对第0帧数据进行第一自动白平衡补偿(步骤S250)。在一实施例中,当任一块的类型包括正常曝光、低曝光及高曝光,由于第0帧为一低动态范围的正常曝光帧,这里使用所有块中被标示为正常曝光的块作为输入对第0帧数据中所有块进行第一自动白平衡补偿。自动白平衡补偿通常是固定G-通道不变,根据计算结果调整R-通道和B-通道的增益。在一实施例中,处理单元110系以所有块中的类型为第一类型(例如正常曝光)的块的像素作为输入参与统计计算,并且依据该统计计算的结果调整第0帧数据的像素的R-通道和B-通道的增益(gain),具体如何计算取决于采取何种自动白平衡算法。常见的 自动白平衡算法包括灰世界法(gray world assumption),全反射算法(perfect reflector assumption),色温估计算法(color temperature estimation)等等。这里以采取灰世界法为例,处理单元110系将所有第一类型(例如正常曝光)块的像素的值分RGB三个通道分别累加,以求得调整第0帧数据的R-通道和B-通道的增益值,使得调整后,所有第一类型(例如正常曝光)块的像素的R-通道的累加和、B-通道的累加和与G-通道的累加三者相等。
[0035] 此外,取得一第1帧数据(步骤S260),在一实施例中,第1帧是一低动态范围的低曝光帧;将第1帧数据中与第0帧中被标示为第二类型的块位置相同的块作为输入对第1帧数据进行第二自动白平衡补偿(步骤S270),在一实施例中,第二类型的块例如为被标示为低曝光的块;以及融合补偿后第0帧数据以及补偿后第1帧数据(步骤S280)。在高动态范围图像产生过程中运用本发明的自动白平衡补偿方法,经融合后输出的高动态范围图像中来自第0帧和第1帧的部分分别采用不同的自动白平衡补偿,例如前述的第一和第二自动白平衡补偿,即是说,亮度不同的部分采取了不同程度的自动白平衡补偿,由于亮度不同的区域往往具有不同的色温,对不同色温区域采取不同的自动白平衡补偿,可以更准确地补偿色彩偏差从而更准确地还原物体的真实色彩。
[0036] 图3是依据本发明另一实施例由处理单元执行的高动态范围融合过程中的自动白平衡补偿方法的方法流程图。此流程开始于从帧缓存器130取得第0帧(步骤S311)。接着,处理单元110获得第0帧中每一块的统计信息(步骤S313)。详细来说,第0帧可切分为mxn块,每块例如包含32x32像素,以及计算每个像素的亮度值。每个像素的亮度值可使用公式(1)计算:
[0037] V=0.3x R+0.6x G+0.1x B    (1)
[0038] 其中,R代表红色值,G代表绿色值,B代表蓝色值,V代表亮度值。处理单元110计算每块的平均亮度值AveLum以及亮度直方图(histogram)。图5是依据本发明实施例的每一块的亮度直方图区间示意图。本发明以亮度值为12位举例,当然本发明不限于此,以12位表示的亮度值区间为0~4095。直方图划分为例如16个区(bins),Bin8包含的最小亮度值V8设为2047.5(=4095/2)。Bin7及Bin9包含的最小亮度值V7及V9可分别使用公式(2)及(3)计算:
[0039] V7=4095x r    (2)
[0040] V9=4095x(1-r)    (3)
[0041] 其中,r可为0~0.5之间的任意数值。假设r设为0.25,则V7为1023.75,而V9为3071.25。将亮度值区间0~V7平均分为7区(Bin0~Bin6),将亮度值区间V9~4095平均分为
7区(Bin9~Bin15),第8区(Bin7)的亮度值区间为V7~V8,第9区(Bin8)的亮度值区间为V8~V9。针对每个块,处理单元110将该块的各像素按照其亮度值划分至对应的区间(Bin),并统计每一区间中包含几个像素。产生直方图的范例虚拟码如下所示:
[0042]
[0043]
[0044] 其中,bestExpBlockInfor是一个结构阵列,每一个结构存储一块的统计信息,包含平均亮度值block_averVal以及Bin0~Bin15的像素数目block_hist。
[0045] 接着,处理单元110依据前述经由分析每块的平均亮度值及直方图得到的统计信息,标示其类型为多种类型之一,其中多种类型例如包括正常曝光、低曝光或高曝光(步骤S315)。详细来说,先计算该块的直方图的下限区值(low-bin threshold)及上限区值(high-bin threshold)。下限区值及上限区值可分别使用公式(4)及(5)计算:
[0046] threBinLow≒(BinNum/2-1)/r x 0.18    (4)
[0047] threBinHigh≒BinNum–(BinNum/2-1)/r x 0.18    (5)
[0048] 其中,threBinLow代表下限区值,threBinHigh代表上限区值,BinNum代表该块的直方图被划分的区(bin)的数目,如前举例,BinNum=16,r可为0~0.5之间的任意数值。假设r设为0.25,则下限区值为5,而上限区值为11,则对于每个块,像素属于(Bin0至Bin5)的区为暗区,像素属于(Bin11至Bin15)的区为亮区。针对每块,累计暗区(Bin0至Bin5)的像素数目pixNumLow,以及累计亮区(Bin11至Bin15)的像素数目pixNumHigh。处理单元110藉由以下条件来辨认其类型,例如为正常曝光、低曝光或高曝光。若任一块的累计暗区的像素数目pixNumLow不大于一块亮度阈值(blocklumthres),且该块的累计亮区的像素数目pixNumHigh不大于该块亮度阈值,则将此块的类型标示为一第一类型(正常曝光)。若任一块的累计暗区的像素数目pixNumLow大于该块亮度阈值(blocklumthres),则将此块的类型标示为一第二类型(低曝光)。若任一块的累计亮区的像素数目pixNumHigh大于该块亮度阈值,则将此块的类型标示为一第三类型(例如高曝光)。在一实施例中,前述块亮度阈值与该块中包含的像素数目有关,例如blocklumthres=blocksize*ratio。在另一实施例中,处理单元110还提供一平均亮度下限值AveLumLow(例如为256)以及一平均亮度上限值AveLumHigh(例如为3840)。若该块的平均亮度值AveLum小于或等于AveLumLow,则将此块的类型标示为第二类型(低曝光),若该块的平均亮度值AveLum大于或等于AveLumHigh,则将此块的类型标示为第三类型(高曝光)。在一实施例中,先标示低曝光和高曝光的块,若任一块未标示为低曝光或高曝光,则将此块的类型标示为正常曝光。辨认每块类型的范例虚拟码如下所示:
[0049]
[0050]
[0051] 其中,blockLabel是一个阵列,每一个存储格存储一块的类型标示,例如低曝光“LOW”、正常曝光“NORMAL”以及高曝光“HIGH”。在一些实施例中,本领域技术人员也可修改皆考虑累计暗区或亮区的像素数目以及该块的平均亮度值AveLum来辨认其类型。例如,若任一块的累计暗区的像素数目pixNumLow大于该块亮度阈值blocklumthres以及该块的平均亮度值AveLum小于或等于AveLumLow,则将此块的类型标示为第二类型(低曝光)。若任一块的累计亮区的像素数目pixNumHigh大于该块亮度阈值blocklumthres以及该块的平均亮度值AveLum大于或等于AveLumHigh,则将此块的类型标示为第三类型(高曝光)。若任一块未标示为低曝光或高曝光,则将此块的类型标示为第一类型(正常曝光)。
[0052] 接着,处理单元110根据每块的类型设定权重(步骤S317),以及计算第0帧中每个像素的权重(步骤S319)。在步骤S317,详细来说,当此块的类型标示为低曝光时,将该块的权重设定为0;当此块的类型标示为正常曝光时,将该块的权重设定为1;以及此块的类型标示为高曝光时,将该块的权重设定为2。在步骤S319,详细来说,除了边界及角落块的像素外,处理单元110依据相邻四块的权重以及与相邻四块间的距离计算第0帧中每个像素的权重。图7是依据本发明实施例的相邻四块示意图。相邻四块的中心点WUL、WUR、WLL及WLR围成一个矩形,以及此矩形包含四边E1至E4。每个像素权重Wp的计算可使用公式(6)计算:
[0053] Wp=D1x D2x WUL+D1x D4x WUR+D3x D2x WLL+D3x D4x WLR    (6)
[0054] WUL代表左上块的权重,WUR代表右上块的权重,WLL代表左下块的权重,WLR代表右下块的权重,D1代表像素P与下边E1间的距离,D2代表像素P与右边E2间的距离,D3代表像素P与上边E3间的距离,以及D4代表像素P与左边E4间的距离。步骤S319所计算得到的第0帧中每个像素的权重将在与第1帧和第2帧融合时使用,详见后面的叙述。
[0055] 现在返回参考图3。处理单元110在标示第0帧数据中的每一块的类型后(S315),对第0帧数据中的每一块进行一第一自动白平衡补偿(步骤S331)。图4是依据本发明实施例的贝尔格式图像示意图。帧中的像素形成一个贝尔 格式图像(Bayer pattern)410,其中的每一行为R-像素与Gr-像素交错,或Gb-像素与B-像素交错。每一块中的R-像素可统称为R-通道,每一块中的Gr-像素与Gb-像素可统称为G-通道,而每一块中的B-像素可统称为B-通道。在步骤S331,详细来说,第一自动白平衡补偿系以第0帧数据中所有被标示为第一类型(例如正常曝光)的块作为输入对第0帧数据中所有块进行自动白平衡补偿。自动白平衡补偿通常是固定G-通道不变,根据计算结果调整R-通道和B-通道的增益。在一实施例中,处理单元
110系以第0帧的所有块中类型为第一类型(例如正常曝光)的块的像素作为输入参与统计计算,并且依据该统计计算的结果调整第0帧数据的像素的R-通道和B-通道的增益(gain)。
[0056] 接着,处理单元110在第0帧完成自动白平衡补偿后(步骤S315),获得第0帧的帧统计信息(步骤S351以及S333)。在一实施例中,在步骤S311,处理单元110可将第0帧的RGB颜色空间转换成HSV颜色空间。对于步骤S351及S333,详细来说,处理单元110计算第0帧的帧亮度直方图。图6是依据本发明实施例的帧亮度直方图区间示意图。暗区(Bin0)的亮度值范围从0~C1,而亮区(Bin3)的亮度值范围从C3~C4。这里仍以亮度值为12位举例,当然本发明不限于此,以12位表示的亮度值区间为0~4095,则C1=511,C3=3583,C4=4096。针对整个第0帧,处理单元110计算每一区中包含几个像素,以及暗区所包含的第一像素数目相对亮区所包含的第二像素数目的比值shiftRatio。暗区相对亮区的像素数目的比值可使用公式(7)计算:
[0057] shiftRatio=pixelNumBin0/pixelNumBin3    (7)
[0058] 其中,pixelNumBin0代表暗区的第一像素数目,以及pixelNumBin3代表亮区的第二像素数目。接着,处理单元110根据暗区相对亮区比值计算扩充倍数exp_times。当暗区相对亮区比值小于8时,可使用公式(8)计算扩充倍数exp_times。当暗区相对亮区比值大于或等于8时,可使用公式(9)计算扩充倍数exp_times。
[0059] exp_times=a x shiftRatio x shiftRatio+b x shiftRatio+c    (8)[0060] exp_times=d x shiftRatio x shiftRatio+e x shiftRatio+f    (9)[0061] 其中,a、b、c、d、e以及f为浮点数。接着,处理单元110根据第0帧的帧统计信息所计算的上述比值shiftRatio以及第0帧的曝光设定(exposure settings)计算后续处理第1帧数据所需的第一曝光参数(步骤S353)以及计算后续处理第2帧数据所需的第二曝光参数(步骤S335)。其中,前述曝光设定包 括快门速度(shutter speed,sht)、模拟增益(analog gain,ag)以及数字增益(digital gain,dg),sht、ag及dg三者的乘积可为第0帧的曝光设定(exposure settings)。第一曝光参数Para1以及第二曝光参数Para2可分别使用公式(10)以及公式(11)计算:
[0062] Para1=sht x ag x dg x exp_times/expValue    (10)
[0063] Para2=sht x ag x dg x exp_times    (11)
[0064] 其中,expValue代表固定扩展值,其为第二曝光参数与第一曝光参数的比值,在要将12bit的LDR帧扩展并融合后输出为18bit的HDR帧的实施例中,固定扩展值expValue=64。
[0065] 处理单元110在计算出第二曝光参数Para2后(步骤S335),将第0帧扩展至高动态范围空间(步骤S337),在步骤S337,计算扩展第0帧的第一扩展因子的范例虚拟码如下所示:
[0066] curveMapValNormal=curveTable_AVR[0]*sht*ag*dg+curveTable_AVR[1];
[0067] curveMapValHigh=curveTable_AVR[0]*Para2+curveTable_AVR[1];
[0068] slope_Normal=curveMapValHigh/curveMapValNormal;
[0069] 其中,slope_Normal代表第0帧的第一扩展因子,curveTable_AVR[0]为关联于相机模块190的图像传感器的校准后的斜率因子,curveTable_AVR[1]为关联于相机模块190的图像传感器的校准后的y-截距因子,sht x ag x dg代表上述第0帧的曝光设定(其中,sht代表第0帧的快门速度,ag代表第0帧的模拟增益,以及dg代表第0帧的数字增益),Para2代表前述依据公式(11)所计算的第二曝光参数。处理单元110将第0帧中的每个像素的HSV值乘以该第一扩展因子slope_Normal,用以将第0帧数据扩展至高动态范围空间。
[0070] 处理单元110在计算出第一曝光参数Para1后(步骤S353),指示相机模块控制器170依据计算出的第一曝光参数Para1所代表的曝光设定拍摄一个低曝光帧(以下称第1帧)并存储至帧缓存器130,并将第1帧数据中所有与第0帧数据中类型为第二类型(例如低曝光)的块位置相同的块作为输入对第1帧数据中的每一块进行一第二自动白平衡补偿(步骤S356),在一实施例中,将第1帧中位置与第0帧中被标示为第二类型(例如低曝光)的块的位置相同的块的像素作为输入参与统计计算,并且依据该统计计算的结果调整第1帧数据的所有像素的R-通道和B-通道的增益(gain),具体如何计算取决于 第二自动白平衡补偿采取何种自动白平衡算法;此外,处理单元110在计算出第二曝光参数Para2后(步骤S335),指示相机模块控制器170依据计算出的第二曝光参数Para2所代表的曝光设定拍摄一个高曝光帧(以下称第2帧)并存储至帧缓存器130,并将第2帧数据中所有与第0帧数据中类型为第三类型(例如高曝光)的块位置相同的块作为输入对第2帧数据中的每一块进行一第三自动白平衡补偿(步骤S336),在一实施例中,将第2帧中位置与第0帧中被标示为第三类型(例如高曝光)的块的位置相同的块的像素作为输入参与统计计算,并且依据该统计计算的结果调整第2帧数据的所有像素的R-通道和B-通道的增益(gain),具体如何计算取决于第三自动白平衡补偿采取何种自动白平衡算法。值得注意的是,本实施例对第0,1及2帧中所有块均进行对应的第一,第二及第三自动白平衡补偿,在某些实施例中,由于仅第0,1及2帧中参与自动白平衡统计计算的块(例如分别为第一,第二和第三类型的块)会参与后续的融合输出第4帧的操作,因此可仅对这些块进行自动白平衡补偿。本实施例对所有块均实施对应的自动白平衡补偿,可以实现边界平滑的目的。
[0071] 在一实施例中,处理单元110在计算出第一曝光参数Para1后(步骤S353)及第二曝光参数Para2后(步骤S335),计算第二扩展因子以将第1帧扩展至高动态范围(步骤S357)。在步骤S357,计算该第二扩展因子的范例虚拟码如下所示:
[0072] curveMapValLow=curveTable_AVR[0]*Para1+curveTable_AVR[1];
[0073] curveMapValHigh=curveTable_AVR[0]*Para2+curveTable_AVR[1];
[0074] slope_Low=curveMapValHigh/curveMapValLow;
[0075] 其中,slope_Low代表第1帧的该第二扩展因子,curveTable_AVR[0]为关联于相机模块190的图像传感器的校准后的斜率因子(slope factor),curveTable_AVR[1]为关联于相机模块190的图像传感器的校准后的y-截距因子(y-intercept factor),Para1是在步骤S353依据公式(10)计算得到的第一曝光参数,Para2是在步骤S335依据公式(11)计算得到的第二曝光参数。处理单元110将第1帧中的每个像素的HSV值乘以该第二扩展因子slope_Low,用以将第1帧的数据扩展至高动态范围空间。
[0076] 在步骤S359,对扩展后的第0帧、扩展后的第1帧及前述在步骤S311取得的第2帧的数据进行曝光补偿。详细而言,处理单元110使用第一曝光 补偿方法修正扩展后第0帧中属于过高曝光的像素(saturate pixel)及过低曝光的像素(dark pixel),第一曝光补偿方法详言之为检测扩展后第0帧中属于过低曝光的像素(dark pixel),例如,如果一个像素的亮度值落入0至128x slope_Normal间,则系过低曝光的像素,则使用第2帧中相同位置的原始亮度值取代扩展后第0帧检测到的该过低曝光像素的亮度值;第一曝光补偿方法更检测扩展后第0帧中属于过高曝光的像素(saturate pixel),例如,如果一个像素的亮度值落入3967x slope_Normal至4095之间,则系过高曝光的像素,则使用扩展后第1帧中相同位置的亮度值取代扩展后第0帧检测到的过低曝光像素的亮度值。此外,处理单元110使用第二曝光补偿方法修正扩展后第1帧中属于过低曝光的像素(dark pixel),第二曝光补偿方法详言之为:检测扩展后第1帧中属于过低曝光的像素(dark pixel),例如,如果一个像素的亮度值落入0至128x slope_Low间,则系过低曝光的像素,则使用扩展后第0帧中相同位置的亮度值取代扩展后第1帧中检测到的过低曝光像素的亮度值。此外,处理单元110使用第三曝光补偿方法修正第2帧中属于过高曝光的像素(saturate pixel),第三曝光补偿方法详言之为:检测第2帧中过高曝光的像素(saturate pixel),例如,如果一个像素的亮度值落入3967至4095间则系过高曝光的像素,使用扩展后第0帧中相同位置的亮度值取代第2帧中检测到的过高曝光像素的亮度值。
[0077] 值得注意的是,前述步骤S337和S357的将第0和第1帧数据扩展至高动态范围,以及步骤S359的对第0帧、第1帧及第2帧进行曝光补偿这些步骤对实现本发明的自动白平衡补偿方法来讲并非必要步骤。处理单元110依据步骤S319所计算得到的第0帧中每个像素权重融合补偿后第0帧以及补偿后第1帧,用以产生第3帧,并且将第3帧存储至帧缓存器150(步骤S371)。在步骤S371,详细来说,当第0帧的一个像素的权重小于等于一阈值(例如为64),处理单元110将第0帧此像素的HSV值融合补偿后第1帧中相同位置像素的HSV值,用以产生第3帧中相同位置像素的HSV值。当第0帧的一个像素的权重大于该阈值,处理单元110直接将第0帧此像素的HSV值当作第3帧中相同位置像素的HSV值。图像融合的范例虚拟码如下所示:
[0078]
[0079]
[0080] 其中,pixelweight[index1]代表第index1像素的权重,inputImg代表补偿后第1帧,refImg代表补偿后第0帧,以及dst代表第3帧。
[0081] 处理单元110依据步骤S319所计算得到的第0帧中每个像素的权重融合第3帧以及补偿后的第2帧,用以产生第4帧,并且将第4帧存储至帧缓存器150(步骤S373)。第4帧为最终结果的高动态范围图像。在步骤S373,详细来说,当第0帧的一个像素的权重大于一阈值,处理单元110将第3帧中相同位置像素的HSV值融合补偿后第2帧中相同位置像素的HSV值,用以产生第4帧中相同位置像素的HSV值。当第0帧的一个像素的权重不大于该阈值,处理单元110直接将第3帧中相同位置像素的HSV值当作第4帧中相同位置像素的HSV值。图像融合的范例虚拟码如下所示:
[0082]
[0083]
[0084] 其中,pixelweight[index1]代表第index1像素的权重,inputImg代表补偿后第2帧,refImg代表第3帧,以及dst代表第4帧。
[0085] 虽然图1中包含了以上描述的元件,但不排除在不违反发明的精神下,使用更多其他的附加元件,已达成更佳的技术效果。此外,虽然第2、3图的处理步骤采用特定的顺序来执行,但是在不违法发明精神的情况下,本领域技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。
[0086] 虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用以限缩本发明。相反地,此发明涵盖了本领域技术人员显而易见的修改与相似设置。所以,申请权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。