CN102640184A - 用于图像信号处理的时域滤波技术 - Google Patents
用于图像信号处理的时域滤波技术 Download PDFInfo
- Publication number
- CN102640184A CN102640184A CN2010800547812A CN201080054781A CN102640184A CN 102640184 A CN102640184 A CN 102640184A CN 2010800547812 A CN2010800547812 A CN 2010800547812A CN 201080054781 A CN201080054781 A CN 201080054781A CN 102640184 A CN102640184 A CN 102640184A
- Authority
- CN
- China
- Prior art keywords
- value
- pixel
- current pixel
- motion
- confirm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 title claims abstract description 118
- 238000012545 processing Methods 0.000 title claims description 237
- 230000002123 temporal effect Effects 0.000 title abstract 2
- 230000033001 locomotion Effects 0.000 claims abstract description 168
- 238000003384 imaging method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 37
- 239000003086 colorant Substances 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 7
- 230000001413 cellular effect Effects 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims 1
- 241000023320 Luma <angiosperm> Species 0.000 abstract description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 abstract description 4
- 230000007547 defect Effects 0.000 description 138
- 238000012937 correction Methods 0.000 description 73
- 238000001514 detection method Methods 0.000 description 66
- 238000005516 engineering process Methods 0.000 description 58
- 238000011282 treatment Methods 0.000 description 57
- 230000003068 static effect Effects 0.000 description 53
- 230000002950 deficient Effects 0.000 description 45
- 230000014509 gene expression Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 29
- 101100218716 Rattus norvegicus Bhlhb3 gene Proteins 0.000 description 28
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 26
- 230000015654 memory Effects 0.000 description 24
- 238000003860 storage Methods 0.000 description 20
- 238000003707 image sharpening Methods 0.000 description 17
- 238000006467 substitution reaction Methods 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 14
- 230000009467 reduction Effects 0.000 description 14
- 230000008034 disappearance Effects 0.000 description 13
- 239000011159 matrix material Substances 0.000 description 13
- 230000009471 action Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 8
- 239000003550 marker Substances 0.000 description 8
- 238000005070 sampling Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000002708 enhancing effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000008676 import Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000004040 coloring Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000001915 proofreading effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 208000004350 Strabismus Diseases 0.000 description 3
- 241001125929 Trisopterus luscus Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000007600 charging Methods 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000018199 S phase Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000004043 dyeing Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 206010019133 Hangover Diseases 0.000 description 1
- 241001062009 Indigofera Species 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 241001085205 Prenanthella exigua Species 0.000 description 1
- 235000004789 Rosa xanthina Nutrition 0.000 description 1
- 241000109329 Rosa xanthina Species 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000012535 impurity Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000008595 infiltration Effects 0.000 description 1
- 238000001764 infiltration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 201000007094 prostatitis Diseases 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000010415 tropism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/94—Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/70—Circuitry for compensating brightness variation in the scene
- H04N23/741—Circuitry for compensating brightness variation in the scene by increasing the dynamic range of the image compared to the dynamic range of the electronic image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/95—Computational photography systems, e.g. light-field imaging systems
- H04N23/951—Computational photography systems, e.g. light-field imaging systems by using two or more images to influence resolution, frame rate or aspect ratio
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Studio Devices (AREA)
- Color Television Image Signal Generators (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
提供了用于对图像传感器获取的原始图像数据进行时域滤波的各种技术。在一个实施例中,时域滤波器确定当前像素的空间位置,并识别来自前一帧的至少一个同位置参考像素。至少部分基于该当前像素及其同位置参考像素来确定运动增量值。接下来,基于运动增量值和与当前像素的空间位置相对应但是来自前一帧的运动历史值来确定索引。利用该索引,可从运动表中选择第一滤波系数。在选择第一滤波系数之后,可以基于当前像素的值从亮度表中选择衰减因子,并且随后可以基于所选择的衰减因子和第一滤波系数来确定第二滤波系数。然后可以基于第二滤波系数、当前像素和同位置参考像素来计算与当前像素相对应的时域滤波输出值。
Description
本申请是2009年10月20日提交的美国专利申请No.12/582,414的部分继续。
技术领域
本公开一般涉及数字成像设备,具体而言,涉及用于处理使用数字成像设备的图像传感器而获得的图像数据的系统和方法。
背景技术
该部分用于向阅读者介绍涉及以下所描述和/或请求保护的本技术的多个方面的领域的多个方面。相信该讨论有助于向阅读者提供背景信息以使其更好地理解本公开的多个方面。因此,需要理解的是就此而论这些陈述是用来阅读的,而非承认是它们是现有技术。
在近些年,数字成像设备已经变得更加普及,这至少得益于这些设备对于一般消费者来说变得越来越消费得起。此外,除了一些刚上市的独立数码相机之外,数字成像设备整合为另一个电子设备(例如膝上或笔记本电脑、蜂窝电话或便携媒体播放器)的一部分也很常见。
为了获取图像数据,大多数数字成像设备包括图像传感器,其提供多个被配置为将图像传感器检测到的光转换为电信号的光检测元件(例如光电检测器)。图像传感器还可包括滤色器阵列,其对由图像传感器捕捉的光进行滤波以获得颜色信息。接着通过图像处理流水线来处理由图像传感器捕捉的图像数据,该图像处理流水线可以对图像数据应用多种图像处理操作以生成可被显示在显示设备(例如监视器)上以供观看的全彩图像。
传统图像处理技术一般致力于产生在主观上和客观上都使观看者愉悦的可观看图像,这样的传统技术可能无法充分地解决图像数据中由成像设备和/或图像传感器引入的错误和/或失真。例如,可能因制造缺陷或操作错误而导致的图像传感器中的缺陷像素可能无法准确地感测光线水平,并且如果不加校正,可能会在得到的经处理图像中产生伪影(artifact)。此外,可能因镜头制造的不完美而导致的在图像传感器的边缘处的光强度下降,可能对特性测量有不利影响,并且可能导致一张图像内的整体光强度不均匀。图像处理流水线还可执行一个或多个处理以锐化图像。然而传统锐化技术可能未充分地计及图像信号中存在的噪声,或者可能无法将噪声与图像中的边缘和纹理区域区分开。在这些情况下,传统锐化技术可能实际上增加了图像中噪声的显现,而这通常是不期望发生的。
可被应用于由图像传感器获得的图像数据的另一个图像处理操作是去马赛克(demosaicing)操作。因为滤色器阵列一般为每个传感器像素提供一个波长的颜色数据,所以一般针对每个颜色通道进行内插得到颜色数据的完整集合,以再现全彩图像(例如RGB图像)。通常,传统去马赛克技术一般依据某种类型的固定阈值,在水平或垂直方向上内插缺失的颜色数据的值。然而,这些传统去马赛克技术可能未充分计及图像内各边缘的位置和方向,这可能导致引入到全彩图像中的特别是沿着图像内的对角边缘的边缘伪影,例如混叠(aliasing)、棋盘格伪影或彩虹伪影。
因此,当处理由数码相机或其他成像设备获得的数字图像时,应当注意多种考虑以提高结果图像的外观。具体而言,以下公开的特定方面可以解决以上简要提及的一个或多个缺点。
发明内容
以下将阐述此处公开的特定实施例的概述。可以理解的是这里仅仅呈现这些方面以向阅读者提供这些特定实施例的简要概述,并且这些方面并不限制本公开的范围。实际上,本公开可以涵盖以下没有阐述的多个方面。
本公开提供了用于处理利用数字图像传感器获取的图像数据的各种技术。根据本公开的一些方面,一种这样的技术可涉及原始图像数据的时域滤波,例如,以便减少由于运动伪影引起的噪声。在一个实施例中,时域滤波器可接收利用图像传感器获取的原始图像数据。对于每个像素,时域滤波器可确定当前像素的空间位置,并从前一帧中识别至少一个同位置的参考像素(例如,位于相同的空间位置)。可至少部分基于当前像素及其同位置的参考像素来确定运动增量值。接着,可基于该运动增量值和与当前像素的空间位置相对应但是来自前一帧的运动历史值,来确定第一索引值。使用该第一索引,可以从运动表中选择第一滤波系数。在选择第一滤波系数之后,可基于当前像素的值(例如,作为索引)从亮度表(luma table)中选择衰减因子,并且随后可基于所选择的衰减因子和第一滤波系数来确定第二滤波系数。然后可基于第二滤波系数、当前像素和同位置的参考像素,来计算与当前像素相对应的时域滤波输出值。
在一个实施例中,当原始图像数据包括多个颜色分量时,可利用取决于颜色的增益来减小各颜色通道之间的信噪比差异。例如,在确定运动表的索引和亮度表的索引之前,根据当前像素的颜色,可以将适当的增益应用到当前像素。在另一个实施例中,可以为原始图像数据的每个相应的颜色提供单独的颜色相关的运动和亮度表,并且,基于当前像素的颜色,可以从与当前颜色相对应的运动和亮度表中选择第一滤波系数和衰减因子。
以上所示特征的多种细化存在于本公开涉及的多个方面。其他特征也可并入到这些方面。这些细化和附加特征可独立存在或组合地存在。例如,以下讨论的涉及一个或多个示例实施例的多种特征可被单独或任意组合地并入到本公开的上述方面中。再次,以上呈现的简要概述仅旨在使阅读者熟悉本公开的实施例的特定方面和内容,而非对要求保护的主题的限制。
附图说明
本专利或申请文件包括至少一张彩色附图。将由官方根据请求和支付必要费用来提供具有彩色附图的该专利或专利申请公开的拷贝。
阅读以下详细描述以及参考附图可以更好的理解本公开的多个方面,在附图中:
图1是描述包括被配置为实现本公开中阐述的一个或多个图像处理技术的成像设备和图像处理电路的电子设备的一个例子的部件的简单方框图;
图2示出了在图1的成像设备中实现的拜耳滤色器阵列的2×2像素块的示意图;
图3是依照本公开的一些方面的膝上型计算设备形式的图1的电子设备的透视图;
图4是依照本公开的一些方面的桌上型计算设备形式的图1的电子设备的前视图;
图5是依照本公开的一些方面的手持便携型电子设备形式的图1的电子设备的前视图;
图6是图5所示的电子设备的后视图;
图7是例示了依照本公开的一些方面的可以在图1的图像处理电路中实现的前端图像信号处理(ISP)逻辑和ISP流水处理逻辑的方框图;
图8是示出了依照本公开的一些方面的图7的ISP前端逻辑的实施例的更详细的方框图;
图9是依照本公开的一些方面的可在由图像传感器捕捉的源图像帧中定义的各种成像区域的图解说明;
图10是依照本公开的一些方面的提供对如图8的ISP前端逻辑中所示的ISP前端像素处理单元的一个实施例的更详细视图的方框图;
图11是依照一个实施例的例示了如何将时域滤波应用到由图10所示的ISP前端像素处理单元接收到的图像像素数据的处理框图;
图12例示了可被用于确定图11所示的时域滤波处理的一个或多个参数的一组参考图像像素和一组对应的当前图像像素;
图13是例示了依照一个实施例的用于将时域滤波应用到一组图像数据中的当前图像像素的处理的流程图;
图14是示出了依照一个实施例的用于计算图13的当前图像像素的时域滤波所使用的运动增量值的技术的流程图;
图15是例示了依照另一个实施例的用于将时域滤波应用到一组图像数据的当前图像像素的另一个处理的流程图,该处理包括对图像数据的各个颜色分量使用不同增益;
图16是例示了依照另一个实施例,时域滤波技术如何对由图10所示的ISP前端像素处理单元接收到的图像像素数据的每个颜色分量使用单独的运动和亮度表的处理框图;
图17是例示了依照另一个实施例,使用如图16所示的运动和亮度表将时域滤波应用到一组图像数据中的当前图像像素的处理的流程图;
图18是示出了依照本公开一些方面的可在图10的ISP前端像素处理单元中实现的像素合并补偿滤波器的一个实施例的更详细视图;
图19示出依照一个实施例的使用图18的像素合并补偿滤波器来缩放图像数据的处理;
图20是示出了依照本公开一些方面的可在图8所示的ISP前端处理逻辑中实现的统计处理单元的实施例的更详细方框图;
图21示出了依照本公开一些方面的当应用用于在图20的统计处理单元进行统计处理时检测和校正缺陷像素的技术时可能要考虑的各种图像帧边界情况;
图22是例示了依照一个实施例的用于在统计处理过程中执行缺陷像素检测和校正的处理的流程图;
图23示出了描绘成像设备的传统镜头的光强度相对于像素位置的三维分布;
图24是表现图像中不均匀光强度的有色图,这可能是镜头明暗(lens shading)不规则的结果;
图25是依照本公开一些方面的包括镜头明暗纠正区域和增益栅格(gain grid)的原始成像帧的图解例示;
图26例示了依照本公开一些方面的用于被周围四个栅格增益点包围的图像像素的增益值的内插;
图27是例示了依照本技术一个实施例的用于确定在镜头明暗校正操作期间可被应用到成像像素的内插增益值的处理的流程图;
图28是描绘了依照本公开一些方面的当执行镜头明暗校正时,可被应用到表现出图23所示的光强度特性的图像的内插增益值的三维分布;
图29示出了依照本公开一些方面的来自图24的有色图在应用了镜头明暗校正操作之后表现出改进的光强度均匀性的有色图;
图30图解例示了依照一个实施例的可以如何计算和使用当前像素和图像的中心之间的径向距离来确定用于镜头明暗校正的径向增益分量;
图31是例示了依照本技术一个实施例的使用来自增益栅格的径向增益和内插增益来确定总增益的处理的流程图,在镜头明暗校正操作期间可将该总增益应用到成像像素;
图32是示出了依照本公开一些方面的图7的ISP流水处理逻辑的一个实施例的方框图;
图33是示出了依照本公开一些方面的可在图32的ISP流水处理逻辑中实现的原始像素处理块的一个实施例的更详细视图;
图34示出了依照本公开一些方面的当在图33所示的原始像素处理块执行处理期间应用用于检测和校正缺陷像素的技术时要考虑的各种图像帧边界情况;
图35-37是依照一个实施例的描绘可由图33的原始像素处理块执行的用于检测和校正缺陷像素的多种处理的流程图;
图38示出了依照本公开一些方面的在图33的原始像素处理逻辑执行处理期间应用绿色非均匀性校正技术时可进行内插的拜耳图像传感器的2×2像素块内的两个绿色像素的位置;
图39例示了依照本公开一些方面的包括中心像素和关联的水平邻近像素在内的可被用作用于降噪的水平滤波处理的一部分的像素集合;
图40例示了依照本公开一些方面的包括中心像素和关联的垂直邻近像素在内的可被用作用于降噪的垂直滤波处理的一部分的像素集合;
图41是描绘了如何将去马赛克应用到原始拜耳图像模式(pattern)以产生全彩RGB图像的简化流程图;
图42表示依照一个实施例的拜耳图像模式的像素集合,在该拜耳图像模式的去马赛克期间,可以从其中导出用于内插绿色值的水平和垂直能量分量;
图43示出了依照本技术一些方面的水平像素集合,在拜耳图像模式的去马赛克期间,可对其应用滤波以确定内插的绿色值的水平分量;
图44示出了依照本技术一些方面的垂直像素集合,在拜耳图像模式的去马赛克期间,可对其应用滤波以确定内插的绿色值的垂直分量;
图45示出了依照本技术一些方面的多种3x3像素块,在拜耳图像模式的去马赛克期间,可对其应用滤波以确定内插的红色和蓝色值;
图46-49提供依照一个实施例的描绘在拜耳图像模式的去马赛克期间用于内插绿色、红色和蓝色值的各种处理的流程图;
图50示出了可由图像传感器捕捉的并依照此处公开的去马赛克技术的一些方面而处理的初始图像场景的有色图;
图51示出了如图50所示的图像场景的拜耳图像模式的有色图;
图52示出了使用传统去马赛克技术基于图51的拜耳图像模式而重构的RGB图像的有色图;
图53示出了依照此处公开的去马赛克技术的一些方面从图51的拜耳图像模式重构的RGB图像的有色图;
图54是示出了依照本公开一些方面的可在图32的ISP流水处理逻辑中实现的RGB处理块的一个实施例的更详细视图;
图55是示出了依照本公开一些方面的可在图32的ISP流水处理逻辑中实现的YCbCr处理块的一个实施例的更详细视图;
图56是依照本公开一些方面的在使用1平面格式的源缓冲器内定义的用于亮度(luma)和色度(chroma)的活动源区域的图解描绘;
图57是依照本公开一些方面的在使用2平面格式的源缓冲器内定义的用于亮度和色度的活动源区域的图解描绘;
图58是例示了依照一个实施例的可在如图55所示的YCbCr处理块中实现的图像锐化逻辑的方框图;
图59是例示了依照一个实施例的可在如图55所示的YCbCr处理块中实现的边缘增强逻辑的方框图;
图60是示出了依照本公开一些方面的色度衰减因子与锐化的亮度值之间的关系的图;
图61是例示了依照一个实施例的可在如图55所示的YCbCr处理块中实现的图像明亮度(brightness)、对比度(contrast)和颜色(BCC)调整逻辑的方框图;以及
图62示出了在如图61所示的BCC调整逻辑执行颜色调整期间可以在定义各种色相(hue)角和饱和度(saturation)值的YCbCr颜色空间中应用的色相和饱和度颜色轮(color wheel)。
具体实施方式
以下将描述本公开的一个或多个特定实施例。这些描述的实施例都仅是当前公开的技术的示例。此外,为了提供这些实施例的简明描述,可能不会在说明书中描述实际实现的全部特征。应当明了的是在任意这些实际实现的开发中,如同在任何工程或设计项目中一样,都必须做出众多特定于实现的决定以达到开发者的特定目的,例如顺从因实现的不同而变化的涉及系统的和涉及商业的限制。此外,应当明了的是这样的开发努力可能是复杂且很耗时间的,但仍然是从本公开获益的本领域技术人员的日常设计、生产和制造任务。
当介绍本公开的多个实施例的要素时,冠词“a”、“an”和“the”旨在表示一个或多个要素。术语“包含”、“包括”和“具有”旨在是开放的,并且表示除了所列的要素之外还可能有额外的要素。此外,应当理解的是,对于本公开“一个实施例”或“一实施例”的提及并不旨在将其解释为排除同样具有所列举的特征的其他实施例的存在。
如以下将要描述的,本公开一般涉及用于处理经由一个或多个图像感测设备获取的图像数据的技术。具体而言,本公开的特定方面可以涉及用于检测和校正缺陷像素的技术,用于对原始图像模式进行去马赛克的技术,用于使用多尺度虚光蒙版来锐化亮度图像的技术,以及用于应用镜头明暗增益以校正镜头明暗不规则的技术。此外,应当理解的是这里公开的技术可被应用到静态图像和运动图像(例如视频)这两者,并且可被用于任何合适类型的成像应用,例如数码相机、具有集成数码相机的电子设备、安全或视频监视系统、医疗成像系统等等。
留意以上要点,图1是例示电子设备10的一个示例的方框图,所述电子设备10可以提供使用以上简单提及的一个或多个图像处理技术对图像数据进行的处理。电子设备10可以是任何类型的电子设备,例如膝上或桌上型计算机、移动电话、数字媒体播放器等等,其被配置为接收和处理图像数据,例如使用一个或多个图像感测部件获取的数据。仅作为示例,电子设备10可以是便携式电子设备,例如可从加利福尼亚州库比蒂诺的苹果公司获得的的模型。此外,电子设备10可以是桌上或膝上型计算机,例如可从苹果公司获得的 MacBook Mini或Mac的模型。在另外的实施例中,电子设备10还可以是来自其他制造商的能够获取并处理图像数据的电子设备的模型。
无关其形式(例如便携式或非便携式),应当理解的是电子设备10可以提供使用以上简要讨论的一个或多个图像处理技术对图像数据进行的处理,这些技术可包括缺陷像素校正和/或检测技术、镜头明暗校正技术、去马赛克技术、或图像锐化技术,等等。在某些实施例中,电子设备10可将这样的图像处理技术应用到存储在电子设备10的存储器中的图像数据。在其他实施例中,电子设备10可包括一个或多个被配置为获得图像数据的成像设备,例如集成的或外置的数码相机,于是电子设备10可使用一个或多个以上提及的图像处理技术来处理这些图像数据。以下将在图3-6中进一步讨论示出电子设备10的便携式和非便携式实施例的实施例。
如图1所示,电子设备10可包括各种用于实现设备10的功能的内置和/或外置部件。本领域技术人员可以理解如图1所示的各种功能块可包括硬件要素(包括电路)、软件要素(包括存储在计算机可读介质上的计算机代码)或硬件和软件要素这两者的组合。例如,在当前所示的实施例中,电子设备10可包括输入/输出(I/O)端口12、输入结构14、一个或多个处理器16、存储器设备18、非易失性存储器20、(一个或多个)扩展卡22、联网设备24、电源26和显示器28。此外,电子设备10可包括一个或多个成像设备30(例如数码相机)以及图像处理电路32。如下所要进一步讨论的,图像处理电路32可被配置为在处理图像数据时执行一个或多个以上讨论的图像处理技术。可以明了的是,可以从存储器18和/或非易失性存储设备20检索或者可以使用成像设备30获得供图像处理电路32处理的图像数据。
在继续之前,应当理解的是如图1所示的设备10的系统方框图旨在表示描述可能包括在该设备10中的各部件的高级控制框图。也就是说,在如图1所示的每个独立元件之间的连接线并不是一定表示在设备10的各部件之间的数据流动或传输的路径或方向。实际上,如下所讨论的,在某些实施例中,描绘的(一个或多个)处理器16可以包括多个处理器,例如主处理器(例如CPU)和专用图像和/或视频处理器。在这样的实施例中,可主要由这些专用处理器来执行对图像数据的处理,有效地使得主处理器(CPU)免于装载这样的任务。
关于图1所示的每个元件,I/O端口12可包括被配置为连接多种外置设备的端口,这些外置设备例如是电源、音频输出设备(例如耳机或头戴受话器)、或其他电子设备(例如手持设备和/或计算机、打印机、投影仪、外置显示器、调制解调器、坞站(dockingstation)等等)。在一个实施例中,I/O端口12可被配置为连接到外置成像设备,例如数码相机,用以获取可使用图像处理电路32处理的图像数据。I/O端口12可以支持任何适合类型的接口,例如通用串行总线(USB)端口、串行连接端口、IEEE-1394(FireWire)端口、以太网或调制解调器端口、和/或AC/DC电源连接端口。
在某些实施例中,特定的I/O端口12可被配置为提供多于一种功能。例如,在一个实施例中,I/O端口12可包括苹果公司专有的端口,其功能不仅在于方便在电子设备10和外部源之间进行数据传输,还将设备10耦合到电源充电接口,例如被设计为从墙壁插座提供电力的电源适配器,或者耦合到被配置为从诸如桌上或膝上型计算机的另一个电子设备吸取电力以用于对电源26(其可包括一个或多个可充电电池)进行充电的接口电缆。以此方式,例如,取决于通过I/O端口12被耦合到设备10的外置元件,I/O端口12可被配置为具有数据传输端口和AC/DC电源连接端口的双重功能。
输入结构14可向(一个或多个)处理器16提供用户输入或反馈。例如,输入结构14可被配置为控制电子设备10的一个或多个功能,例如在电子设备10中运行的应用。仅作为示例,输入结构14可包括按钮、滑块、开关、控制板、按键、旋钮、滚轮、键盘、鼠标、触摸板等,或以上这些的某些组合。在一个实施例中,输入结构14可以允许用户导航在设备10上显示的图形用户界面(GUI)。此外,输入结构14可包括与显示器28一起提供的触摸敏感机构。在这些实施例中,用户可通过触摸敏感机构来选择所显示的界面元素或与之交互。
输入结构14可包括多种设备、电路和路径,通过这些将用户的输入或反馈提供给一个或多个处理器16。这样的输入结构14可被配置为控制设备10的功能、在设备10上运行的应用和/或连接到电子设备10或被电子设备10使用的任何接口或设备。例如,输入结构14可允许用户导航显示的用户界面或应用界面。输入结构14的示例可包括按钮、滑块、开关、控制板、按键、旋钮、滚轮、键盘、鼠标、触摸板等等。
在特定实施例中,输入结构14和显示器28可被一并提供,例如“触摸屏”的情况,籍此与显示器28一并提供触摸敏感机构。在这样的实施例中,用户可通过触摸敏感机构来选择所显示的界面元素或与之交互。以此方式,显示的界面可提供交互功能,允许用户通过触摸显示器28来导航显示的界面。例如,利用输入结构14进行的用户交互,例如与用户交互或与显示在显示器28上的应用界面交互,可生成指示用户输入的电信号。这些输入信号可以通过合适的路径(例如输入集线器或数据总线)被路由到一个或多个处理器16以做进一步处理。
除了处理通过(一个或多个)输入结构14接收到的各种输入信号之外,(一个或多个)处理器16还控制设备10的一般操作。例如,处理器16可提供处理能力以运行操作系统、程序、用户和应用界面、以及电子设备10的任何其他功能。(一个或多个)处理器16可包括一个或多个微处理器,例如一个或多个“通用”微处理器、一个或多个专用微处理器和/或特定于应用的微处理器(ASIC)、或这些处理部件的组合。例如,(一个或多个)处理器16可包括一个或多个指令集(例如RISC)处理器,以及图形处理器(GPU)、视频处理器、音频处理器和/或相关芯片组。将明了的是,(一个或多个)处理器16可耦合到一个或多个用于在设备10的各个部件之间传输数据和指令的数据总线。在特定实施例中,(一个或多个)处理器16可提供处理能力以在电子设备10中运行成像应用,例如可从苹果公司获得的Photo或由苹果公司提供的“相机”和/或“照片”应用,这些都是的模型上可用的。
将由(一个或多个)处理器16处理的指令或数据可被存储在计算机可读介质中,例如存储器设备18中。存储器设备18可以被提供为易失性存储器,例如随机存取存储器(RAM),或非易失性存储器,例如只读存储器(ROM),或一个或多个RAM和ROM设备的组合。存储器18可存储多种信息并被用于各种用途。例如,存储器18可存储用于电子设备10的固件,例如基本输入/输出系统(BIOS)、操作系统、各种程序、应用或可在电子设备10中上运行的任何其他例程,包括用户界面功能、处理器功能等等。此外,在电子设备10的操作期间,存储器18可被用来缓冲或高速缓存。例如,在一个实施例中,存储器18包括一个或多个帧缓冲器,用以缓冲要被输出到显示器28的视频数据。
除了存储器设备18,电子设备10还可包括非易失性存储器20以用于持久存储数据和/或指令。非易失性存储器20可以包括闪存、硬盘驱动器或任何其他光学、磁和/或固态存储介质,或以上这些的组合。因此,尽管为了清楚的目的只在图1中描绘了单个设备,但是应当理解的是(一个或多个)非易失性存储器20可以包括一个或多个以上列出的与(一个或多个)处理器16一起操作的存储设备的组合。非易失性存储器20可被用来存储固件、数据文件、图像数据、软件程序和应用、无线连接信息、个人信息、用户偏好和任何其他合适的数据。依照本公开一些方面,在输出到显示器之前,可通过图像处理电路32来处理存储在非易失性存储器20和/或存储器设备18中的图像数据。
如图1所示的实施例还可包括一个或多个卡槽或扩展槽。卡槽可被配置为接收扩展卡22,其可被用于增加电子设备10的功能,例如额外的存储器、I/O功能或联网能力。这样的扩展卡22可通过任何类型的合适连接器被连接到设备上,并且可以相对于电子设备10的壳体而被内部地或外部地访问。例如,在一个实施例中,扩展卡22可以是闪存卡,例如安全数字(SD)卡、迷你或微SD、紧凑闪存卡等,或者可以是PCMCIA设备。此外,对于提供移动电话能力的电子设备10的实施例,扩展卡22可以是订户标识模块(SIM)卡。
电子设备10还包括网络设备24,其可以是通过无线802.11标准或任何其他合适的联网标准(例如局域网(LAN)、广域网(WAN),例如GSM演进的增强数据率(EDGE)网络、3G数据网络或因特网)而提供网络连接的网络控制器或网络接口卡(NIC)。在特定实施例中,网络设备24可以提供至在线数字媒体内容提供商(例如可从苹果公司获得的音乐服务)的连接。
设备10的电源26可包括在非便携和便携设置下向设备10供电的能力。例如,在便携设置下,设备10可包括一个或多个用于向设备10供电的电池,例如锂离子电池。可以通过将设备10连接到外部电源(例如墙壁插座)来对电池重新充电。在非便携设置下,电源26可包括供电单元(PSU),其被配置为从墙壁插座取得电力,并将所述电力分配给非便携电子设备(例如桌上型计算系统)的各个部件。
显示器28可被用于显示由设备10生成的各种图像,例如用于操作系统的GUI,或由图像处理电路32处理的图像数据(包括静止图像和视频数据),以下将对其进行进一步讨论。如上所述,图像数据可包括使用成像设备30获取的图像数据或从存储器18和/或非易失性存储器20检索出的图像数据。显示器28可以是任何合适类型的显示器,例如液晶显示器(LCD)、等离子显示器或有机发光二极管(OLED)显示器。此外,如上所讨论的,显示器28可以具有可作为电子设备10的控制界面的一部分的、如上所述的触摸敏感机构(例如触摸屏)。
所例示的(一个或多个)成像设备30还可被提供为被配置以获取静态图像和运动图像(例如视频)的数码相机的形式。相机30可包括镜头和一个或多个被配置为捕捉光并将光转换为电信号的图像传感器。仅作为示例,图像传感器可包括CMOS图像传感器(例如CMOS有源像素传感器(APS))或CCD(电荷耦合器件)传感器。一般来说,相机30中的图像传感器包括具有像素阵列的集成电路,其中每个像素包括一个用于感测光的光电检测器。本领域技术人员应当明了,成像像素中的光电检测器一般检测通过相机镜头捕捉的光的强度。然而,光电检测器一般无法自己检测所捕捉的光的波长,因此,无法确定颜色信息。
因此,图像传感器可进一步包括滤色器阵列(CFA),其可覆盖图像传感器的像素阵列或被置于像素阵列之上,以捕捉颜色信息。滤色器阵列可包括小型滤色器的阵列,每一个小型滤色器可以覆盖图像传感器的一个相应像素,并且按波长对捕捉的光进行滤波。因此,当一并使用时,滤色器阵列和光电检测器可提供关于通过相机所获得的光的波长和强度信息,这可以表示所捕捉的图像。
在一个实施例中,滤色器阵列可包括拜耳滤色器阵列,其提供50%绿色元素,25%红色元素和25%蓝色元素的滤波器模式。例如,图2示出了包括2个绿色元素(Gr和Gb),1个红色元素(R)和1个蓝色元素(B)的拜耳CFA的2×2像素块。因此,利用拜耳滤色器阵列的图像传感器可提供关于相机30在绿色、红色和蓝色波长处接收到的光的强度的信息,由此每个图像像素仅记录三种颜色(RGB)之一。被称为“原始图像数据”或“原始域”中的数据的这一信息随后被使用一种或多种去马赛克技术进行处理,由此将原始图像数据转换为全彩图像,这一般是通过为每个像素内插一组红色、绿色和蓝色值而实现的。如以下将描述的那样,可由图像处理电路32来执行这样的去马赛克技术。
如上所述,图像处理电路32可提供各种图像处理步骤,例如缺陷像素检测/校正、镜头明暗校正、去马赛克、以及图像锐化、降噪、伽马校正、图像增强、颜色空间变换、图像压缩、色度亚采样和图像缩放操作等等。在一些实施例中,图像处理电路32可包括多个子部件和/或离散的逻辑单元,其集合地形成用于执行各个图像处理步骤中的每一个步骤的图像处理“流水线”。可以使用硬件(例如数字信号处理器或ASIC)或软件,或通过硬件和软件部件的组合来实现这些子部件。以下将更加详细的描述可由图像处理电路32提供的各种图像处理操作,尤其是涉及缺陷像素检测/校正、镜头明暗校正、去马赛克和图像锐化的那些处理操作。
在继续之前,应当注意的是虽然以下所讨论的各种图像处理技术的多个实施例可以利用拜耳CFA,但是当前公开的技术并不限于此。实际上,本领域技术人员将明了此处提供的图像处理技术可适用于任何适合类型的滤色器阵列,包括RGBW滤色器、CYGM滤色器等。
再次参考电子设备10,图3-6例示了电子设备10可采用的各种形式。如上所述,电子设备10可采用计算机的形式,包括通常便携的计算机(例如膝上型、笔记本和平板计算机)以及通常不便携的计算机(例如桌上型计算机、工作站和/或服务器),或其他类型的电子设备,例如手持便携电子设备(例如数字媒体播放器或移动电话)。具体而言,图3和图4分别描绘了膝上型计算机40形式和桌上型计算机50形式的电子设备10。图5和图6分别示出了手持便携设备60形式的电子设备10的前视图和后视图。
如图3所示,描绘的膝上型计算机40包括壳体42、显示器28、I/O端口12和输入结构14。输入结构14可包括与壳体42集成的键盘和触摸板鼠标。此外,输入结构14可包括多种可用于与计算机40交互(例如给计算机加电或启动计算机)的其他按钮和/或开关,以操作GUI或在计算机40中运行的应用,以及调整多种涉及计算机40操作的其他方面(例如音量、显示器亮度等)。计算机40还可包括提供至其他设备的连接的多种I/O端口12,如上所述,例如或USB端口、高清多媒体接口(HDMI)端口或任何其他类型的适于连接到外部设备的端口。此外,计算机40可包括如以上图1所示的网络连接(例如网络设备26)、存储器(例如存储器20)和存储能力(例如存储设备22)。
另外,在所示的实施例中,膝上型计算机40可包括集成的成像设备30(例如相机)。在另一个实施例中,膝上型计算机40可利用连接到一个或多个I/O端口12的外置相机(例如外置USB相机或“摄像头”)以作为集成相机30的替代或附加。例如,外置相机可以是可从苹果公司得到的相机。不管集成的还是外置的,相机30可以提供图像的捕捉和记录。接着这些图像可由用户使用图像观看应用来观看,或者可以被其他应用来使用,包括视频会议应用,例如以及图像编辑/观看应用,例如可从苹果公司得到的Photo在特定实施例中,所描绘的膝上型计算机40可以是可从苹果公司获得的MacBook或的模型。此外,在一个实施例中,计算机40可以是便携式平板计算设备,例如同样可从苹果公司获得的平板计算机的模型。
图4进一步例示了电子设备10被提供作为桌上型计算机50的一个实施例。将明了的是,桌上型计算机50可包括多种与由图4所示的膝上型计算机40提供的大致类似的特征,但是也可能具有通常更大的整体形状。如图所示,桌上型计算机50可被装入包括显示器28和如图1所示的方框图中所讨论的各种其他部件的外壳42中。另外,桌上型计算机50可包括通过一个或多个I/O端口(例如USB)耦合至该计算机50的、或能够与该计算机50无线通信(例如通过RF、蓝牙等)的外置键盘和鼠标(输入结构14)。如上所述,桌上型计算机50还可包括可以是集成的或外置相机的成像设备30。在特定实施例中,所描绘的桌上型计算机50可以是可从苹果公司获得的或Mac的模型。
如进一步所示,显示器28可被配置为生成可被用户观看的各种图像。例如,在计算机50的操作期间,显示器28可显示图形用户界面(“GUI”)52以允许用户与在计算机50中运行的操作系统和/或应用进行交互。GUI52可包括各种层、窗口、屏幕、模板或可在整个或部分显示设备28上显示的其他图形元素。例如,在所描绘的实施例中,操作系统GUI52可包括各种图形图标54,每一种图标可对应于可基于检测到用户的选择(例如通过键盘/鼠标或触摸屏输入)被打开或执行的各种应用。图标54可被显示在停靠栏56中或在屏幕上显示的一个或多个图形窗口元素58内。在一些实施例中,对图标54的选择可导致分级导航处理,使得对图标54的选择导致一个屏幕或打开另一个包括一个或多个附加图标或其他GUI元素的图形窗口。仅作为示例,图4显示的操作系统GUI 52可以是来自可从苹果公司获得的Mac操作系统的一个版本。
继续至图5和6,电子设备10进一步被例示为便携手持电子设备60的形式,其可以是可从苹果公司获得的或的模型。在所描绘的实施例中,手持设备60包括外壳42,其可以起到保护内部部件免于物理损伤同时屏蔽电磁干扰的作用。外壳42可由任何合适的材料或这些材料的组合来形成,例如塑料、金属或复合材料,并且能够允许特定频率的电磁辐射(例如无线联网信号)穿透以到达如图5所示的可置于外壳42内的无线通信电路(例如网络设备24)。
外壳42还包括各种用户输入结构14,通过这些输入结构14用户可与手持设备60交互。例如,每个输入结构14可被配置为在被按压或启动时控制一个或多个相应的设备功能。作为示例,一个或多个输入结构14可被配置为调用“home”屏幕(主屏幕)42或菜单以便显示,被配置为在睡眠、唤醒或开机/关机模式之间切换,被配置为使蜂窝电话应用的铃声静音,被配置为增加或减小音量输出等等。应当理解的是所例示的输入结构14仅是示例性的,并且手持设备60可包括任意数量的合适的用户输入结构,其可以具有各种形式,包括按钮、开关、按键、旋钮、滚轮等等。
如图5所示,手持设备60可包括各种I/O端口12。例如,所描绘的I/O端口12可包括用于传输和接收数据文件或用于给电源26充电的专有连接端口12a,和用于将设备60连接到音频输出设备(例如头戴式耳机或扬声器)的音频连接端口12b。此外,在手持设备60提供移动电话功能的实施例中,设备60可包括用于接收订户标识模块(SIM)卡(例如扩展卡22)的I/O端口12c。
显示设备28可以是LCD、OLED或任何适合类型的显示器,其可以显示由手持设备60生成的各种图像。例如,显示器28可以显示向用户提供关于手持设备60的一个或多个状态(例如电源状态、信号强度、外置设备连接等)的反馈的各种系统指示符64。参考以上图4所讨论的,显示器还可显示GUI52以允许用户与设备60交互。GUI52可以包括图形元素,例如图标54,其可以对应于基于检测到用户对相应图标54的选择而打开或执行的各种应用。作为示例,图标54之一可以表示可与相机30(如图5中的虚线所示)一并使用以获取图像的相机应用66。简单地参考图6,例示了在图5中所描绘的手持电子设备60的后视图,其示出了相机30被集成于壳体42且位于手持设备60背面。
如上所述,用相机30获得的图像数据可使用图像处理电路32进行处理,所述图像处理电路32可以包括硬件(例如位于外壳42内部)和/或存储在设备60的一个或多个存储设备(例如存储器18或非易失性存储器20)中的软件。使用相机应用66和相机30获得的图像可被存储到设备60(例如在存储设备20中),并且可使用照片观看应用68在稍后观看这些图像。
手持设备60还可包括各种音频输入和输出元件。例如,一般地由参考标记70所描绘的音频输入/输出元件可以包括输入接收器,例如一个或多个麦克风。例如,在手持设备60包括蜂窝电话功能的情况下,输入接收器可被配置为接收用户音频输入,例如用户语音。此外,音频输入/输出元件70可包括一个或多个输出发射器。这些输出发射器可包括一个或多个扬声器,其可以例如在使用媒体播放器应用72回放音乐数据时起到将音频信号传送给用户的作用。此外,在手持设备60包括蜂窝电话应用的实施例中,如图5所示,还可提供附加的音频输出发射器74。类似于音频输入/输出元件70的输出发射器,输出发射器74也可包括一个或多个被配置为将音频信号(例如在电话呼叫期间接收到的语音数据)传送至用户的扬声器。因此,音频输入/输出元件70和74可联合地操作以作为电话的音频接收和发射元件。
现已提供了一些关于电子设备10可采用的多种形式的背景,于是本公开将关注于图1所描绘的图像处理电路32。如上所述,图像处理电路32可使用硬件和/或软件部件来实现,并且可以包括定义图像信号处理(ISP)流水线的各种处理单元。具体而言,以下讨论会关注在本公开中阐述的图像处理技术的各方面,尤其是涉及缺陷像素检测/校正技术、镜头明暗校正技术、去马赛克技术和图像锐化技术的那些方面。
现在参考图7,例示了依照当前公开的技术的一个实施例的描绘了可实现为图像处理电路32的一部分的多个功能性部件的简化顶层方框图。具体地,图7旨在依照至少一个实施例来例示图像数据可如何流过图像处理电路32。为了提供对图像处理电路32的一般概观,这里参考图7提供了这些功能性部件如何操作以处理图像数据的一般描述,同时,后面将进一步提供所示的功能性部件的每一个及其各自的子部件的更具体的描述。
参考所示的实施例,图像处理电路32可包括图像信号处理(ISP)前端处理逻辑80、ISP流水处理逻辑82和控制逻辑84。由成像设备30捕捉的图像数据首先由ISP前端逻辑80处理,并对其进行分析以获得可被用于确定ISP流水逻辑82和/或成像设备30的一个或多个控制参数的图像统计信息。ISP前端逻辑80可被配置为从图像传感器输入信号获得图像数据。例如,如图7所示,成像设备30可包括具有一个或多个镜头88和(一个或多个)图像传感器90的相机。如上所述,(一个或多个)图像传感器90可以包括滤色器阵列(例如拜耳滤波器),并且因此可以提供由图像传感器90的每个成像像素获得的光强和波长信息,从而提供可由ISP前端逻辑80处理的一组原始图像数据。例如,成像设备30的输出92可由传感器接口94接收,随后例如基于传感器接口类型,传感器接口94可将原始图像数据96提供给ISP前端逻辑80。作为示例,传感器接口94可利用标准移动成像架构(SMIA)接口或移动工业处理器接口(MIPI),或它们的某些组合。在特定实施例中,ISP前端逻辑80可在其自身的时钟域内操作,并且可以向传感器接口94提供异步接口以支持具有不同大小和定时需求的图像传感器。
原始图像数据96可被提供给ISP前端逻辑80,并以多种格式被逐像素地处理。例如,每个图像像素可具有8,10,12或14位的位深。ISP前端逻辑80可对原始图像数据96执行一个或多个图像处理操作,并收集关于图像数据96的统计数据。可以以相同的或不同的位深精度来执行图像处理操作和统计数据的收集。例如,在一个实施例中,可以以14位精度来执行原始图像像素数据96的处理。在这些实施例中,由ISP前端逻辑80接收到的具有小于14位(例如8位,10位,12位)位深的原始像素数据被上采样至14位以用于图像处理目的。在另一个实施例中,可以以8位精度进行统计处理,因此具有更高位深的原始像素数据可被下采样至8位格式用以统计目的。可以明了的是,下采样至8位可降低硬件大小(例如面积)并且还能减少用于统计数据的处理/计算复杂度。此外,原始图像数据可被空间平均以允许统计数据对噪声更为鲁棒。
此外,如图7所示,ISP前端逻辑80还可从存储器108接收像素数据。例如,如参考标记98所示,原始像素数据可从传感器接口94被发送到存储器108。如参考标记100所示,驻留在存储器108中的原始像素数据随后可被提供给ISP前端逻辑80以供处理。存储器108可以是存储设备20、存储器设备18的一部分,或者可以是电子设备10内的单独的专用存储器并且可包括直接存储器访问(DMA)特征。此外,在特定实施例中,ISP前端逻辑80可在其本身的时钟域内操作,并且向传感器接口94提供异步接口以支持不同大小并且具有不同定时需求的传感器。
一旦接收到原始图像数据96(从传感器接口94)或100(从存储器108),ISP前端逻辑80可以执行一个或多个图像处理操作,例如时域滤波和/或像素合并补偿滤波。经处理的图像数据随后可被提供给ISP流水逻辑82(输出信号109)以便在被显示(例如在显示设备28上)之前进行其他处理,或者可被发送到存储器(输出信号110)。ISP流水逻辑82直接从ISP前端逻辑80或者从存储器108(输入信号112)接收“前端”经处理的数据,并且提供对原始域中以及RGB和YCbCr颜色空间中的图像数据的其他处理。由ISP流水逻辑82处理后的图像数据随后可被输出(信号114)到显示器28以供用户观看和/或可由图形引擎或GUP进行进一步处理。此外,ISP流水逻辑82的输出可被发送到存储器108(信号115),并且显示器28可从在特定实施例中被配置为实现一个或多个帧缓冲器的存储器108(信号116)读取图像数据。此外,在一些实施方式中,ISP流水逻辑82的输出还可被提供给压缩/解压缩引擎118(信号117)以用于编码/解码图像数据。经编码的图像数据可被存储,并在随后在被显示在显示器28设备上(信号119)之前进行解压缩。作为示例,压缩引擎或“编码器”118可以是用于编码静态图像的JPEG压缩引擎,或用于编码视频图像的H.264压缩引擎,或它们的组合,用于解码图像数据的相应的解压缩引擎也是如此。后面将参考图32-62来更加详细的讨论可在ISP流水逻辑82中提供的关于图像处理操作的附加信息。同样的,应当注意的是ISP流水逻辑82还可从存储器108接收原始图像数据,其被描述为输入信号112。
由ISP前端逻辑80确定的统计数据102可被提供给控制逻辑单元84。统计数据102可包括,例如关于自动曝光、自动白平衡、自动对焦、闪烁检测、黑度补偿(BLC)、镜头明暗校正等的图像传感器统计信息。控制逻辑84可包括处理器和/或微控制器,其被配置为执行一个或多个例程(例如固件),所述例程可被配置为基于接收到的统计数据102来确定用于成像设备30的控制参数104和用于ISP流水处理逻辑82的控制参数106。仅作为示例,控制参数104可包括传感器控制参数(例如增益、曝光控制的累积时间)、相机闪光灯控制参数、镜头控制参数(例如对焦的对焦长度或变焦的焦距)或这些参数的组合。ISP控制参数106可包括用于自动白平衡和颜色调整(例如在RGB处理期间)的增益等级和颜色校正矩阵(CCM)系数,以及如下所讨论的可基于白点平衡参数而确定的镜头明暗校正参数。在一些实施例中,除了分析统计数据102之外,控制逻辑84还可分析可存储在电子设备10上(例如存储器18或存储器20内)的历史统计信息。
由于此处所示的图像处理电路32的总体复杂设计,如下所示,将关于ISP前端逻辑80和ISP流水处理逻辑82的讨论划分为单独的部分会是有益的。具体而言,本申请的图8至31可涉及ISP前端逻辑80的多个实施例和各方面的讨论,而本申请的图32至62可涉及ISP流水处理逻辑82的多个实施例和各方面的讨论。
ISP前端处理逻辑
图8是示出了依照一个实施例的可在ISP前端逻辑80中实现的功能性逻辑块的更详细方框图。基于成像设备30和/或传感器接94的构造,如图7所示,可由一个或多个图像传感器90将原始图像数据提供给ISP前端逻辑80。在所描绘的实施例中,可通过第一图像传感器90a(传感器0)和第二图像传感器90b(传感器1)将原始图像数据提供给ISP前端逻辑80。如图所示,图像传感器90a和90b可分别提供原始图像数据作为信号Sif0和Sif1。图像传感器90a和90b中的每一个可与相应的统计处理单元120和122相关联。
进一步地,应当注意,原始图像数据Sif0和Sif1可直接提供给它们相应的处理单元120和122,或者可以存储在或写入存储器108中并随后分别作为信号SifIn0和SifIn1被检索。因而,ISP前端逻辑80可包括选择逻辑124,选择逻辑124可以向统计处理单元120提供表示由传感器0(90a)捕捉的原始图像数据的Sif0或SifIn0信号,并且,ISP前端逻辑80还可以包括选择逻辑126,选择逻辑126可以向统计处理单元122提供表示由传感器1(90b)捕捉的原始图像数据的Sif1或SifIn1信号。每一个统计处理单元120和122可确定通过分析原始图像传感器数据所获得的各种统计数据,并且可以确定相应的统计信息集合,如输出信号Stats0和Stats1所示。如上所述,统计数据(Stats0和Stats1)可被提供给控制逻辑84以用于各控制参数的确定,这些控制参数可被用于操作成像设备30和/或ISP流水处理逻辑82。
除了统计处理单元120和122,ISP前端逻辑80可进一步包括像素处理单元130。像素处理单元130可逐像素地对原始图像数据执行各种图像处理操作。如所示的,通过选择逻辑132,像素处理单元130可接收原始图像信号Sif0(来自传感器0)或Sif1(来自传感器1),或者可以接收来自存储器108的原始图像数据FEProcIn。如同可以明了的,可由任何适合类型的逻辑来提供图8所示的选择逻辑块(120、122和132),例如响应于控制信号而选择多个输入信号中的一个的多路复用器。在执行以下将进一步讨论的像素处理操作时,FEProc130还可接收和输出多种信号(例如可表示在时域滤波期间使用的运动历史和亮度数据的Rin、Hin、Hout和Yout)。然后,像素处理单元130的输出109(FEProcOut)可诸如通过一个或多个先进先出(FIFO)队列被转发到ISP流水逻辑82,或者可被发送到存储器108。
在继续图8的ISP前端逻辑80中描绘的统计处理和像素处理操作的更详细描述之前,相信关于各种ISP帧区域的定义的简要介绍会有助于更好的理解本技术方案。带着这样的想法,图9例示了在图像源帧内定义的各种帧区域。提供给图像处理电路32的源帧的格式可以使用以上所述的分块或线性寻址模式,并且可利用8、10、12或14位精度的像素格式。如图9所示的图像源帧150可包括传感器帧区域152、原始帧区域154和活动区域156。传感器帧152一般是图像传感器90可以提供给图像处理电路32的最大帧大小。原始帧区域154可被定义为传感器帧152的被发送到ISP前端处理逻辑80的区域。活动区域256可被定义为源帧150的一部分,其是典型地位于原始帧区域156内并对其进行具体图像处理操作的那部分。依照本技术的实施例,对于不同的图像处理操作,活动区域156可以相同或不同。
依照本技术的一些方面,ISP前端逻辑80仅接收原始帧154。因此,出于本讨论的目的,用于ISP前端处理逻辑80的全局帧大小可假设为由宽158和高160确定的原始帧大小。在一些实施例中,可以通过控制逻辑84确定和/或保存从传感器帧152到原始帧154的边界偏移量。例如,控制逻辑84可包括基于输入参数来确定原始帧区域154的固件,所述输入参数诸如是所指定的相对于传感器帧152的x偏移量162和y偏移量164。此外,在一些情况下,在ISP前端逻辑80或ISP流水逻辑82内的处理单元可具有预定义的活动区域,使得在原始帧内但在活动区域156外的像素将不被处理,即,保持不变。例如,可基于相对于原始帧154的x偏移量170和y偏移量172来定义用于具体处理单元的具有宽166和高168的活动区域156。此外,对于活动区域没有被具体定义的情况,图像处理电路32的一个实施例可以假设活动区域156与原始帧154相同(例如x偏移量170和y偏移量172都等于0)。因此,为了对图像数据进行图像处理操作,关于原始帧154或活动区域156的边界,可以定义边界条件。
带着这样的想法并参考图10,例示了依照本技术一个实施例的ISP前端像素处理逻辑130(之前在图8中讨论了)的更详细视图。如图所示,ISP前端像素处理逻辑130包括时域滤波器180和像素合并补偿滤波器182。时域滤波器180可接收输入图像信号Sif0、Sif1或FEProcIn中的一个,并且可在执行任何附加处理之前对原始像素数据进行操作。例如,时域滤波器180可首先处理图像数据以通过在时间方向上对图像帧进行平均而降低噪声。
时域滤波器180可以是基于运动和明亮度特征而像素自适应的。例如,当像素运动较大时,可降低滤波强度以避免得到的经处理的图像中出现“拖尾”或“重影伪像”,反之当检测到轻微运动或无运动时,可增加滤波强度。此外,还可基于明亮度数据(例如“亮度”)来调整滤波强度。例如,随着图像明亮度增加,滤波伪影变得更容易被人眼察觉。因此,当像素具有较高明亮度水平时应当进一步降低滤波强度。
在应用时域滤波时,时域滤波器180可接收可来自于前一经滤波的帧或初始帧的参考像素数据(Rin)和运动历史输入数据(Hin)。使用这些参数,时域滤波器180可提供运动历史输出数据(Hout)和经滤波的像素输出(Yout)。接着经滤波的像素输出Yout被传递到像素合并补偿滤波器182,后者可被配置为对经滤波的像素输出数据Yout执行一个或多个缩放操作以产生输出信号FEProcOut。接着,经处理的像素数据FEProcOut可被转发至如上所述的ISP流水处理逻辑82。
参考图11,例示了根据第一实施例描绘的可由图10所示的时域滤波器执行的时域滤波处理190的处理框图。时域滤波器180可包括2抽头滤波器,其中滤波器系数可至少部分基于运动和明亮度数据而逐像素地进行自适应调整。例如,可将具有表示时间值的变量“t”的输入像素x(t)与在前一经滤波的帧或前一初始帧中的参考像素r(t-1)作比较,以生成在可包含滤波器系数的运动历史表(M)192中的运动索引查找。此外,基于运动历史输入数据h(t-1),可以确定对应于当前输入像素x(t)的运动历史输出h(t)。
可基于运动增量d(j,i,t)来确定运动历史输出h(t)和滤波器系数K,其中(j,i)表示当前像素x(j,i,t)的空间位置的坐标。可通过确定对于具有相同颜色的水平方向同位置的三个像素的初始和参考像素之间的三个绝对增量的最大值来计算运动增量d(j,i,t)。例如,简单参考图12,例示了对应于初始输入像素206、208和210的三个同位置参考像素200、202和204的空间位置。在一个实施例中,可使用以下的公式基于这些初始和参考像素来计算运动增量:
d(j,i,t)=max3[abs(x(j,i-2,t)-r(j,i-2,t-1)),
(abs(x(j,i,t)-r(j,i,t-1)), (1a)
(abs(x(j,i+2,t)-r(j,i+2,t-1))]
在以下图14中进一步例示了描绘这一用于确定运动增量值的技术的流程图。此外,应当理解的是如以上等式1a(以及以下图14中)所示的用于计算运动增量值的技术仅旨在提供一个用于确定运动增量值的实施例。
在其他实施例中,可以估计相同颜色像素的阵列以确定运动增量值。例如,除了等式1a中提到的三个像素外,一个用于确定运动增量值的实施例还可以包括估计来自参考像素206、208和210上两行(例如j-2;假设为拜耳模式)的相同颜色的像素与其对应的同位置像素之间的绝对增量,以及来自参考像素206、208和210下两行(例如j+2;假设为拜耳模式)的该相同颜色的像素与其对应的同位置像素之间的绝对增量。例如,在一个实施例中,运动增量值可如下表示:
d(j,i,t)=max9[abs(x(j,i-2,t)-r(j,i-2,t-1)),
(abs(x(j,i,t)-r(j,i,t-1)),
(abs(x(j,i+2,t)-r(j,i+2,t-1)),
(abs(x(j-2,i-2,t)-r(j-2,i-2,t-1)),
(abs(x(j-2,i,t)-r(j-2,i,t-1)), (1b)
(abs(x(j-2,i+2,t)-r(j-2,i+2,t-1)),
(abs(x(j+2,i-2,t)-r(j+2,i-2,t-1))
(abs(x(j+2,i,t)-r(j+2,i,t-1)),
(abs(x(j+2,i+2,t)-r(j+2,i+2,t-1))]
从而,在由等式1b所描绘的实施例中,可通过比较相同颜色像素的3x3阵列之间的绝对增量来确定运动增量值,其中当前像素(208)位于该3x3阵列(例如,如果算上不同颜色的像素,实际上是拜耳颜色模式的5x5阵列)的中心。应当明了的是,可以分析其中当前像素(例如208)位于阵列中心的任何合适的相同颜色像素的二维阵列(例如,包括所有像素在同一行中的阵列(例如等式1a)或所有像素在同一列中的阵列)以确定运动增量值。此外,虽然运动增量值可被确定为绝对增量的最大值(例如,如等式1a和1b所示),但是在其他实施例中,运动增量值可被选择为绝对增量的平均值或中位值。此外,前述技术还可被应用于其他类型的滤色器阵列(例如RGBW,CYGM等),并非旨在为拜耳模式所独有。
参考回图11,一旦确定了运动增量值,可以通过将用于当前像素(例如在空间位置(j,i))的运动增量d(t)与运动历史输入h(t-1)相加来计算可被用来从运动表(M)192中选择滤波器系数K的运动索引查找。例如,可通过以下等式来确定滤波器系数K:
K=M[d(j,i,t)+h(j,i,t-1)] (2a)
此外,可使用以下公式来确定运动历史输出h(t):
h(j,i,t)=d(j,i,t)+(1-K)×h(j,i,t-1) (3a)
接着,可以使用当前输入像素x(t)的明亮度来生成亮度表(L)194内的亮度索引查找。在一个实施例中,亮度表可包括可位于0和1之间且可基于亮度索引而被选择的衰减因子。可通过将第一滤波器系数K乘上亮度衰减因子来计算第二滤波器系数K’,如以下等式所示:
K'=K×L[x(j,i,t)] (4a)
所确定的值K’随后可被用作时域滤波器180的滤波系数。如上所述,时域滤波器180可以是2抽头滤波器。此外,时域滤波器180可被配置为使用前一经滤波的帧的无限冲激响应(IIR)滤波器,或使用前一初始帧的有限冲激响应(FIR)滤波器。时域滤波器180可以使用当前输入像素x(t)、参考像素r(t-1)和滤波器系数K’通过以下公式来计算经滤波的输出像素y(t)(Yout):
y(j,i,t)=r(j,i,t-1)+K'(x(j,i,t)-r(j,i,t-1)) (5a)
如上所讨论的,可逐像素地执行如图11所示的时域滤波处理190。在一个实施例中,可以对于所有颜色分量(例如R、G和B)使用相同的运动表M和亮度表L。此外,一些实施例可提供旁路机制,其中可以例如响应于来自控制逻辑84的控制信号而旁路时域滤波。此外,如以下将关于图16和17所讨论的,时域滤波器180的一个实施例可以为图像数据的每个颜色分量使用单独的运动和亮度表。
参考图13可以更好的理解参考图11和12所描述的时域滤波技术的实施例,其中图13描绘了例示依照上述实施例的方法214的流程图。方法214开始于步骤216,其中时域滤波系统190接收位于图像数据的当前帧的空间位置(j,i)的当前像素x(t)。在步骤218,至少部分地基于来自图像数据的前一帧(例如紧挨在当前帧之前的图像帧)的一个或多个同位置的参考像素(例如r(t-1))来确定用于当前像素x(t)的运动增量值d(t)。以下将参考图14来进一步说明在步骤218中用于确定运动增量值d(t)的技术,其可依照上述的等式1a而执行。
一旦从步骤218获得了运动增量值d(t),如步骤220所示,可使用运动增量值d(t)和来自前一帧的对应于空间位置(j,i)的运动历史输入值h(t-1)来确定运动表查找索引。此外,尽管未示出,一旦知道了运动增量值d(t),在步骤220中还可以例如通过使用上述的等式3a来确定对应于当前像素x(t)的运动历史值h(t)。此后,在步骤222,可使用来自步骤220的运动表查找索引从运动表192中选择第一滤波器系数K。可以依照上述的等式2a来执行运动表查找索引的确定和从运动表中对第一滤波器系数K的选择。
接着,在步骤224,可以从亮度表194中选择衰减因子。例如,亮度表194可包括范围大致从0至1的衰减因子,并且可以使用当前像素x(t)的值作为查找索引来从亮度表194中选择衰减因子。一旦选择了衰减因子,在步骤226,如以上公式4a所示,可使用选择的衰减因子和第一滤波器系数K(来自步骤222)来确定第二滤波器系数K’。接着在步骤228,可基于第二滤波器系数K’(来自步骤224)、同位置的参考像素r(t-1)的值和输入像素x(t)的值来确定对应于当前输入像素x(t)的时域滤波输出值y(t)。例如,在一个实施例中,可依照上述的等式5a来确定输出值y(t)。
参考图14,更详细地例示了依照一个实施例的来自方法214的用于确定运动增量值d(t)的步骤218。具体而言,运动增量值d(t)的确定一般对应于依照以上等式1a所描述的操作。如图所示,步骤218可包括子步骤232-238。其开始于子步骤232,识别与当前输入像素x(t)具有相同颜色值的三个水平相邻像素的集合。作为示例,依照图12所示的实施例,图像数据可包括拜耳图像数据,并且三个水平相邻像素可包括当前输入像素x(t)(208)、在当前输入像素208左边的相同颜色的第二像素206和在当前输入像素208右边的相同颜色的第三像素。
接着,在子步骤234,识别与所选择的三个水平相邻像素206、208和210的集合相对应的来自前一帧的三个同位置参考像素200、202和204。使用选择的像素206、208和210以及三个同位置参考像素200、202和204,在子步骤236中确定分别在三个选择的像素206、208和210中的每一个与其对应的同位置参考像素200、202和204之间的差的绝对值。随后,在子步骤238,将来自子步骤236的三个差的最大值选为用于当前输入像素x(t)的运动增量值d(t)。如上所述,例示了如等式1a所示的运动增量值计算技术的图14仅旨在提供一个实施例。实际上,如上所述,可以使用其中当前像素位于阵列中心处的任何合适的具有相同颜色像素的二维阵列来确定运动增量值(例如,等式1b)。
图15中进一步描绘了用于对图像数据应用时域滤波的技术的另一个实施例。例如,因为图像数据的不同颜色分量的信噪比可能不同,增益可被应用到当前像素,使得当前像素可在从运动表192和亮度表194中选择运动和亮度值之前进行增益。通过应用取决于颜色的相应增益,不同颜色分量的信噪比可以更趋于一致。仅作为示例,在一种使用原始拜耳图像数据的实现中,相对于绿色(Gr和Gb)颜色通道,红色和蓝色颜色通道可能一般更加灵敏。因此,通过对每个经处理的像素应用合适的取决于颜色的增益,一般可以降低各个颜色分量之间的信噪比差异,由此(尤其)降低重影伪像(ghostingartifacts),并改善在自动白平衡增益之后不同颜色之间的一致性。
带着这样的思想,图15提供了一种依照这样一个实施例的描绘用于对由前端处理单元130接收到的图像数据应用时域滤波的方法240的流程图。其开始于步骤242,时域滤波系统190接收位于图像数据当前帧的空间位置(j,i)处的当前像素x(t)。在步骤244,至少部分地基于来自该图像数据的前一帧(例如紧挨在当前帧之前的图像帧)的一个或多个同位置的参考像素(例如r(t-1))来确定用于当前像素x(t)的运动增量值d(t)。步骤244与图13的步骤218相类似,并且可以利用以上等式1所示的运算。
接着,在步骤246,可使用运动增量值d(t)、来自前一帧的对应于空间位置(j,i)的运动历史输入值h(t-1)(例如对应于同位置的的参考像素r(t-1))、和与当前像素的颜色相关联的增益,来确定运动表查找索引。此后,在步骤248,可使用步骤246确定的运动表查找索引来从运动表304中选择第一滤波器系数K。仅作为示例,在一个实施例中,可如下确定滤波器系数K和运动表查找索引:
K=M[gain[c]×(d(j,i,t)+h(j,i,t-1))], (2b)
其中M表示运动表,并且其中gain[c]对应于与当前像素的颜色相关联的增益。此外,尽管未在图15中示出,应当理解用于当前像素的运动历史输出值h(t)也可被确定,并可被用于对随后图像帧(例如下一帧)的同位置的像素应用时域滤波。在本实施例中,可使用如下公式来确定用于当前像素x(t)的运动历史输出h(t):
h(j,i,t)=d(j,i,t)+K[h(j,i,t-1)-d(j,i,t)] (3b)
接着在步骤250,可使用基于与当前像素x(t)的颜色相关联的增益(gain[c])而确定的亮度表查找索引来从亮度表194中选择衰减因子。如上所述,存储在亮度表中的衰减因子可具有大致从0至1的范围。此后,在步骤252,可基于衰减因子(来自步骤250)和第一滤波器系数K(来自步骤248)来计算第二滤波器系数K’。仅作为示例,在一个实施例中,可如下确定第二滤波器系数K’和亮度表查找索引:
K'=K×L[gain[c]×x(j,i,t)] (4b)
接着,在步骤254,基于第二滤波器系数K’(来自步骤252)、同位置的参考像素r(t-1)的值和输入像素x(t)的值,确定对应于当前输入像素x(t)的时域滤波输出值y(t)。例如,在一个实施例中,可如下确定输出值y(t):
y(j,i,t)=x(j,i,t)+K'(r(j,i,t-1)-x(j,i,t)) (5b)
继续到图16,描绘了时域滤波处理260的另一实施例。这里,可按照与图15所讨论的实施例相类似的方式来完成时域滤波处理260,不同之处在于,代替对每个输入像素应用取决于颜色的增益(例如gain[c])和使用共享的运动和亮度表,为每个颜色分量提供单独的运动和亮度表。例如,如图16所示,运动表192可包括对应于第一种颜色的运动表192a,对应于第二种颜色的运动表192b和对应于第n种颜色的运动表192c,其中n取决于原始图像数据中存在的颜色的数量。类似的,亮度表194可包括对应于第一种颜色的亮度表194a,对应于第二种颜色的亮度表194b和对应于第n种颜色的亮度表194c。因此,在原始图像数据是拜耳图像数据的实施例中,可以提供三个运动和亮度表分别用于红色、蓝色和绿色颜色分量。如上所述,滤波系数K和衰减因子的选择可以取决于为当前颜色(例如当前输入像素的颜色)所选择的运动和亮度表。
图17示出了一种例示使用取决于颜色的运动和亮度表来进行时域滤波的另一个实施例的方法270。将明了的是,方法270可采用的各种计算和公式可以与如图13所示的实施例相似,但其为每个颜色选择特定的运动和亮度表;或者与如图15所示的实施例相似,但其用取决于颜色的运动和亮度表的选择来代替取决于颜色的增益gain[c]的使用。
开始于步骤272,时域滤波系统260(图16)接收位于图像数据的当前帧的空间位置(j,i)的当前像素x(t)。在步骤274,至少部分地基于来自图像数据的前一帧(例如紧挨在当前帧之前的图像帧)的一个或多个同位置的参考像素(例如r(t-1))来为当前像素x(t)确定运动增量值d(t)。步骤274可以与图13中的步骤218类似,并且可以利用如上述等式1所示的运算。
接着,在步骤276,可使用运动增量值d(t)和来自前一帧的与空间位置(j,i)相对应的运动历史输入值h(t-1)(例如对应于同位置的参考像素r(t-1))来确定运动表查找索引。此后在步骤278,可基于当前输入像素的颜色从可用的运动表(例如192a、192b、192c)之一中选择第一滤波器系数K。例如,一旦识别出合适的运动表,可使用在步骤276中确定的运动表查找索引选择第一滤波器系数K。
在选择了第一滤波器系数K之后,如步骤280所示,选择对应于当前颜色的亮度表,并且基于当前像素x(t)的值从选择的亮度表中选择衰减因子。此后,在步骤282,基于衰减因子(来自步骤280)和第一滤波器系数K(步骤278)确定第二滤波器系数K’。接着,在步骤284,基于第二滤波器系数K’(来自步骤282)、同位置的的参考像素r(t-1)的值和输入像素x(t)的值来确定对应于当前输入像素x(t)的时域滤波输出值y(t)。虽然图17所示的技术实现起来可能成本更高(例如因为需要用于存储附加的运动和亮度表的存储器),但在某些情况下,其可以对重影伪像以及自动白平衡增益之后的不同颜色间的一致性提供进一步的改善。
依照另一个实施例,由时域滤波器180提供的时域滤波处理可以利用取决于颜色的增益和特定于颜色的运动和/或亮度表的组合对输入像素应用时域滤波。例如,在这样的一个实施例中,为所有颜色分量提供单个运动表,并且可基于取决于颜色的增益来确定用于从运动表中选择第一滤波系数(K)的运动表查找索引(例如,如图15中的步骤246-248所示),而亮度表查找索引则可不被应用以取决于颜色的增益,而是可被用于从取决于当前输入像素的颜色的多个亮度表之一中选择明亮度衰减因子(例如如图17所示的步骤280)。作为替换,在另一个实施例中,可提供多个运动表,并且可使用运动表查找索引(没有应用取决于颜色的增益)从对应于当前输入像素的颜色的运动表中选择第一滤波系数(K)(例如如图17所示的步骤278),然而可为所有颜色分量提供单个亮度表,并且其中可基于取决于颜色的增益来确定用于选择明亮度衰减因子的亮度表查找索引(例如,如图15所示的步骤250-252)。此外,在利用拜耳滤色器阵列的一个实施例中,可以为红色(R)和蓝色(B)颜色分量中的每一个提供一个运动表和/或亮度表,而可以为两个绿色颜色分量(Gr和Gb)提供共用的运动表和/或亮度表。
随后可将时域滤波器180的输出发送到像素合并补偿滤波器(BCF)182,后者可处理图像像素以补偿颜色样本的非线性分布,使得随后在ISP流水逻辑82中的取决于颜色样本的线性分布的图像处理操作(例如去马赛克等)能够正确运行。此外,BCF182还可通过应用一个或多个缩放操作,诸如垂直和/或水平缩放,来处理像素数据。图18示出了依照一个公开的实施例的可包括缩放逻辑292和微分分析器294的像素合并补偿滤波器182的框图,并且图19示出了可用于执行缩放操作的处理296。
如图18所示,缩放逻辑292可产生输出FEProcOut(109),如上所述的,FEProcOut(109)可被转发到ISP流水逻辑82以供其它处理,下面将对此进行进一步讨论。在一个实施例中,可使用一个或多个多抽头多相滤波器来执行由BCF182的执行的(一个或多个)缩放操作,该多抽头多相滤波器可从源图像中选择像素,将每个像素乘以加权因子,然后计算像素值的总和以形成目的像素。应当理解,缩放操作中所使用的像素的选择可至少部分取决于当前像素位置和滤波器提供的抽头数量。此外,滤波操作可以使用相同颜色的像素对每个颜色分量进行,并且加权因子(或系数)可以从查找表获得并基于当前的像素间分数位置来确定。
在所描绘的实施例中,微分分析器294可以是数字微分分析器(DDA),并且可以被配置为在缩放操作期间控制当前像素位置。仅作为示例,DDA294可被提供为32位数据寄存器,其包含具有12位整数部分和20位分数部分的二进制补码定点数。12位整数部分可被用于确定当前像素位置。分数部分被用作到系数表中的索引。在一个实施例中,垂直和水平缩放部件可利用8深度系数表,由此20位分数部分的3个高位被用于索引。
为了提供基于32位DDA寄存器(DDA[31:0])的例子,当前中心源像素位置(currPixel)可由12位整数部分DDA[21:20]来定义,并且如果下一位DDA[19]为1则可以向上取整(+1)。然后,与currPixel邻近的像素的源像素值可以根据滤波器提供的抽头数量来获得。例如,在一个实施例中,垂直缩放可以用3抽头多相滤波器来执行,从而currPixel每一侧的具有相同颜色的一个像素被选择(例如,-1,0,+1),而水平缩放可以用5抽头多相滤波器来执行,其中currPixel每一侧的具有相同颜色的两个像素被选择(例如,-2,-1,0,+1,+2)。进一步地,每个抽头可具有其自己相应的系数表。因而,可以为3抽头垂直缩放滤波器提供三个8深度表,并且可以为5抽头水平缩放滤波器提供五个8深度表。当前系数索引(currIndex)可以由DDA[19:16](分数部分DDA[19:0]的3个高位)来定义,并且如果下一位DDA[15]为1则可以向上取整(+1)。
因此,在BCF182中发生的滤波处理可包括获取在中心像素(currPixel)周围的源像素值,并将它们乘以利用currIndex从表中访问得到的合适的系数。一旦完成了针对给定像素的滤波处理,步进值(DDAstep)可被加到DDA 294以确定下一像素的位置,并且可以为该随后的像素重复滤波/缩放操作。这进一步由图19中说明的处理296示出。例如,在步骤298开始,DDA294被初始化并且当前像素位置被识别。如上面所讨论的,当DDA294包括32位寄存器以用于存储二进制补码定点数时,当前像素位置可以由寄存器数据的高12位(整数部分)来指定。
在步骤300,为垂直和水平缩放二者执行多抽头滤波。例如,假设分别为垂直和水平滤波使用3抽头和5抽头多相滤波器,并且假设图像传感器90使用拜耳颜色滤波器模式(图2),则垂直缩放部件可包括四个分开的3抽头多相滤波器,各自用于一个颜色分量:Gr、R、B和Gb。每个3抽头滤波器可使用一个DDA来控制当前中心像素的步进和用于系数的索引。同样,水平缩放部件可包括四个分开的5抽头多相滤波器,各自用于一个颜色分量:Gr、R、B和Gb。每个5抽头滤波器可使用一个DDA来控制当前中心像素的步进和用于系数的索引。对于边界的情况,水平和垂直滤波处理中所使用的像素可取决于由DDA所确立的当前像素的位置。例如,如果DDA值表明当前像素(currPixel)靠近帧边界,从而滤波器所需的源像素中的一个或多个位于边界之外,则可以重复边界像素。
最后,如步骤302所示,一旦针对给定当前像素(currPixel)的垂直和水平缩放操作已经完成,DDA294可步进到下一像素的位置,并且处理296可返回步骤300以便对下一像素执行垂直和水平缩放。如上所述的,BCF182的输出(其可以是输出FEProcOut(109))可被转发到ISP流水处理逻辑82以供其他处理。然而,在将该讨论的焦点转移到ISP流水处理逻辑82之前,首先将给出对可在ISP前端逻辑80中实现的统计处理单元(例如122和124)可提供的各种功能的更详细描述。
重新参考统计处理单元120和122的一般描述,这些单元可被配置为收集关于捕捉并提供原始图像信号(Sif0和Sif1)的图像传感器的各种统计信息,例如关于自动曝光、自动白平衡、自动对焦、闪烁检测、黑度补偿和镜头明暗校正等的统计信息。因此,统计处理单元120和122首先可向它们各自的输入信号Sif0(来自传感器0)和Sif1(来自传感器1)应用一个或多个图像处理操作。
例如,参考图20,例示了依照一个实施例的与传感器0(90a)相关联的统计处理单元120的更详细方框图视图。如图所示,统计处理单元120可包括以下功能块:缺陷像素检测和校正逻辑304、黑度补偿(BLC)逻辑306、镜头明暗校正逻辑308、逆BLC逻辑310和统计信息收集逻辑312。以下将讨论这些功能块的每一个。此外,应当理解的是可以通过类似的方式来实现与传感器1(90b)相关联的统计处理单元122。
首先,通过前端缺陷像素校正逻辑304来接收选择逻辑124的输出(Sif0或SifIn0)。将明了的是,“缺陷像素”可以理解为在图像传感器90内的无法准确感应光水平的成像像素。缺陷像素可归咎于一些因素,并且其可包括“燥点(hot pixel)”(或漏电像素)、“亮点(stuck pixel)”和“坏点(dead pixel)”。“燥点”一般表现为比对于在相同空间位置的给予相同光亮的非缺陷像素更亮。燥点的产生可归因于重置失败和/或高泄漏。例如,燥点可呈现出比非缺陷像素的正常电荷泄漏更高的电荷泄漏,因此可能比非缺陷像素表现得更亮。此外,“坏点”和“亮点”可能是诸如灰尘或其他微量材料之类的杂质在制造和/或装配过程中污染了图像传感器的结果,其可导致某些缺陷像素比非缺陷像素更暗或更亮,或者可导致缺陷像素固定在特定值而不管其实际曝光的光量。此外,在图像传感器操作期间发生的电路故障也可导致坏点和亮点。作为示例,亮点可以看上去为常开(全充电)并且因此看上去更亮,而坏点则看上去为常关。
在ISP前端逻辑80中的缺陷像素检测和校正(DPDC)逻辑304可在统计信息收集(例如312)中考虑缺陷像素之前对这些缺陷像素进行校正(例如替换缺陷像素值)。在一个实施例中,对于每个颜色分量(例如拜耳模式的R、B、Gr和Gb)独立地执行缺陷像素校正。一般来说,前端DPDC逻辑304可提供动态缺陷校正,其中可基于使用相同颜色的邻近像素算出的方向性梯度来自动地确定缺陷像素的位置。将理解的是,在给定时刻将某个像素认为是有缺陷的像素可取决于邻近像素中的图像数据,在此意义上缺陷可以是“动态的”。作为示例,如果总是处于最大亮度的亮点的位置处于当前图像的由更亮颜色或白色主导的区域内,那么该亮点可能不会被认为是缺陷像素。相反,如果亮点处于当前图像的由黑色或更暗颜色主导的区域,则在由DPDC逻辑304处理期间该亮点可被识别为缺陷像素,并被相应地校正。
DPDC逻辑304可利用在当前像素每一侧的一个或多个具有相同颜色的水平邻近像素,使用像素至像素方向性梯度来确定当前像素是否有缺陷。如果当前像素被识别为缺陷的,可使用水平邻近像素的值来代替缺陷像素的值。例如,在一个实施例中,使用在原始帧154(图9)边界内的五个具有相同颜色的水平邻近像素,其中这五个水平邻近像素包括当前像素和每一侧的两个邻近像素。因此,如图21所示,对于给定的颜色分量c和当前像素P,DPDC逻辑304可考虑水平的邻居像素P0、P1、P2和P3。然而,应当注意的是,取决于当前像素P的位置,当计算像素至像素梯度时,不考虑在原始帧154之外的像素。
例如,如图21所示,在“左边缘”情况314中,当前像素P位于原始帧154的最左边,因此不考虑在原始帧154之外的邻近像素P0和P1,仅留下像素P、P2和P3(N=3)。在“左边缘+1”情况316中,当前像素P离原始帧154的最左边一个单位像素,因此不考虑像素P0。仅留下像素P1、P、P2和P3(N=4)。此外,在“居中”情况318中,在当前像素P左侧的像素P0和P1和在当前像素右侧的像素P2和P3都处于原始帧154边界之内,因此在计算像素至像素梯度时考虑所有邻近像素P0、P1、P2和P3(N=5)。此外,还可遇到接近原始帧154的最右边的类似情况320和322。例如,在“右边缘-1”情况320中,当前像素P离原始帧154的最右边一个单位像素,因此不考虑像素P3(N=4)。同样的,在“右边缘”情况322中,当前像素P处于原始帧154的最右边,因此不考虑邻近像素P2和P3(N=3)。
在所示的实施例中,对于在图片(例如原始帧154)边界内的每个邻近像素(k=0至3),可如下计算像素至像素梯度:
Gk=abs(P-Pk),对于0≤k≤3(仅对于在原始帧内的k) (6)
一旦确定了像素至像素梯度,将由DPDC逻辑304执行如下的缺陷像素检测。首先,如果一定数量的像素梯度Gk等于或小于由变量dprTh表示的特定阈值,则假设该像素是有缺陷的。因此对于每个像素,图片边界内的邻近像素等于或小于阈值dprTh的梯度数量的计数(C)被累加。作为示例,对于原始帧154内的每个邻居像素,可如下的计算等于或小于阈值dprTh的梯度Gk的累加计数C:
对于0≤k≤3(仅对于在原始帧内的k)
将明了的是,取决于颜色分量,阈值dprTh可以是变化的。接着,如果累加的计数C被确定为小于或等于由变量dprMaxC表示的最大计数,则像素可被考虑为是有缺陷的。该逻辑由以下表示:
if(C≤dprMaxC),then像素是有缺陷的。(8)
使用多种替代约定来对缺陷像素进行替代。例如,在一个实施例中,可使用紧靠其左边的像素P1来代替缺陷像素。在一种边界情况下(例如P1位于原始帧154之外),可使用紧靠其右边的像素P2来代替缺陷像素。此外,应当理解的是,替代值可被保留或传播以用于后续的缺陷像素检测操作。例如,参考如图21所示的水平像素集合,如果P0或P1在之前被DPDC逻辑304识别为缺陷像素,则它们对应的替代值可被用于当前像素P的缺陷像素检测和替代。
为了总结上述的缺陷像素检测和校正技术,图22提供了描绘这种处理的流程图,并由参考标记330指代。如图所示,处理330开始于步骤332,其中接收当前像素(P)并识别一组邻居像素。依照以上所述的实施例,邻居像素可包括来自当前像素相对两侧的具有相同颜色分量的两个水平像素(例如P0、P1、P2和P3)。接着,在步骤334,如以上等式6所述,针对原始帧154内的每个邻近像素计算水平方向的像素至像素梯度。此后,在步骤336,确定小于或等于特定阈值dprTh的梯度的数量的计数C。如判定逻辑338所示,如果C小于或等于dprMaxC,则处理330继续到步骤340,并且当前像素被识别为有缺陷的。接着在步骤342使用替代值来校正缺陷像素。另外,再参考判定逻辑338,如果C大于dprMaxC,则处理继续到步骤344,并且当前像素被识别为没有缺陷,且其值不被改变。
应当注意的是在ISP前端统计处理期间应用的缺陷像素检测/校正技术可能比在ISP流水逻辑82中执行的缺陷像素检测/校正的鲁棒性要差。例如,如以下将进一步详细讨论的,在ISP流水逻辑82中执行的缺陷像素检测/校正除了动态缺陷校正之外还可提供固定缺陷校正,其中可先验得知缺陷像素的位置,并将其载入一个或多个缺陷表。此外,如下所述,在ISP流水逻辑82中的动态缺陷校正还可以考虑水平和垂直方向两者上的像素梯度,并且还可以提供对斑点(speckle)的检测/校正。
回到图20,DPDC逻辑304的输出随后被传送到黑度补偿(BLC)逻辑306。BLC逻辑306可为每个颜色分量“c”(例如拜耳的R、B、Gr和Gb)中用于统计信息收集的像素独立地提供数字增益、偏移和截短(clipping)。例如,如以下运算所示,首先通过带符号的值来偏移当前像素的输入值,接着将其乘上增益。
Y=(X+O[c])×G[c], (9)
其中X表示给定颜色分量c(例如R、B、Gr或Gb)的输入像素值,O[c]表示当前颜色分量c的带符号的16位偏移量,以及G[c]表示该颜色分量c的增益值。在一个实施例中,增益G[c]可以是具有2个整数位和14个分数位的16位无符号数(例如以浮点表示的2.14),并且可对增益G[c]应用舍入。仅作为示例,增益G[c]可具有在0至4X(例如输入像素值的四倍)之间的范围。
接着,如以下等式10所示,可将计算得到的带符号的值Y截短到最小值和最大值范围:
Y=(Y<min[c])?min[c]:(Y>max[c])?max[c]:Y) (10)
变量min[c]和max[c]分别表示最小和最大输出值的带符号的16位截短值。在一个实施例中,BLC逻辑306还可被配置成分别为每个颜色分量保存在最大值之上和在最小值之下而被截短的像素的数量的计数。
随后,BLC逻辑306的输出被转发到镜头明暗校正(LSC)逻辑308。LSC逻辑308可被配置为逐像素地应用合适的增益以补偿强度的衰落,该强度衰落一般大致正比于与成像设备30的镜头88的光学中心的距离。可以明了的是,这种衰落可能是镜头的几何光学的结果。作为示例,具有理想光学性质的镜头可被建模为入射角余弦的四次方,即cos4(θ),其被称为cos4定律。然而,由于镜头制造工艺并非完美,镜头中的各种不规则性可能导致光学性质偏离假设的cos4模型。例如,镜头的较薄的边缘(thinner edged)通常呈现最大的不规则性。另外,镜头明暗图案的不规则性也可能是在图像传感器内的微透镜阵列没有与滤色器阵列完美对齐的结果。此外,在一些镜头中的红外(IR)滤波器也可能导致衰落取决于发光体,于是可以根据检测到的光源来调整镜头明暗增益。
参考图23,例示了用于描述典型镜头的光强度相对于像素位置的三维分布346。如图所示,光强度从镜头的中心348附近向镜头的角落或边缘350逐渐降低。可通过图24更好的例示图23中所描绘的镜头明暗不规则性,图24示出了展示向着角落和边缘而光强度降低的图像352的有色图。更具体的,应当注意的是在大致位于图像中心的光强度看上去比位于图像的角落和/或边缘的光强度更亮。
依据本技术的一些实施例,镜头明暗校正增益可被指定为每个颜色通道(例如用于拜耳滤波器的Gr、R、B、Gb)一个二维增益栅格。增益栅格点可在原始帧154(图24)内以固定的水平和垂直间隔分布。如以上图9所讨论的,原始帧154可包括活动区域156,其定义了由特定图像处理操作对其执行处理的区域。关于镜头明暗校正操作,在原始帧区域154内定义了可被称为LSC区域的活动处理区域。如以下将讨论的那样,LSC区域必须完全在增益栅格边界内或边界处,否则结果可能是不明确的。
例如,参考图25,示出了可在原始帧154内定义的LSC区域354和增益栅格356。LSC区域354可具有宽358和高360,并且可由相对于原始帧154边界的x偏移量362和y偏移量364来定义。还可提供从增益栅格356的基准370到LSC区域354内的第一个像素372的栅格偏移量(例如栅格x偏移量366和栅格y偏移量368)。这些偏移量可以位于用于给定颜色分量的第一栅格间隔内。可分别为每个颜色通道独立地指定水平(x方向)和垂直(y方向)栅格点间隔374和376。
如上所述,假设使用了拜耳滤色器阵列,则可定义4个具有栅格增益的颜色通道(R、B、Gr和Gb)。在一个实施例中,总共有4K(4096)个栅格点可用,并且例如可通过使用指示器,为每个颜色通道提供用于栅格增益的开始位置的基准地址。此外,还可以以在一个颜色平面的分辨率下的像素为单位来定义水平(374)和垂直(376)栅格点间隔,在特定实施例中,在水平和垂直方向上可分别提供2的幂(例如8、16、32、64或128等)个像素的栅格点间隔。可以明了的是,通过利用2的幂,可以使用移位(例如除法)和相加操作来获得增益内插的有效实现。使用这些参数,即使图像传感器裁剪区域发生改变仍可使用相同的增益值。例如,只有少数参数需要被更新以将栅格点对齐到裁剪区域(例如更新栅格偏移量374和376),而非更新所有的栅格增益值。仅作为示例,这在数字变焦操作期间使用裁剪时可能是有益的。此外,虽然如图25的实施例所示的增益栅格356被描绘为具有基本相等间隔的栅格点,但是应当理解在其他实施例中,栅格点不是必须相等间隔。例如,在一些实施例中,栅格点可以非均匀地分布(例如对数分布),使得栅格点在LSC区域354的中心较不集中,而向着LSC区域354的角落(通常在那里镜头明暗失真更容易被察觉)更为集中。
依照此处公开的镜头明暗校正技术,在当前像素位置位于LSC区域354之外时,不应用增益(例如像素未经改变地通过)。在当前像素位置位于增益栅格位置时,可以使用该特定栅格点处的增益值。然而,在当前像素位置位于栅格点之间时,可使用双线性内插来内插增益。以下图26提供了一种为像素位置“G”内插增益的例子。
如图26所示,像素G位于栅格点G0、G1、G2和G3之间,G0、G1、G2和G3可分别对应于当前像素位置G的左上、右上、左下和右下增益。栅格间隔的水平和垂直大小分别由X和Y表示。另外,ii和jj分别表示相对于左上增益G0的位置的水平和垂直像素偏移量。基于这些因子,可如下内插对应于位置G的增益:
随后可组合以上等式11a中的各项以获得下述表达式:
在一个实施例中,可以增量方式执行该内插法,以代替对每个像素使用乘法器,从而降低计算复杂度。例如,可使用可在增益栅格356的位置(0,0)处被初始化为0并每次当前列号增大一个像素时以当前行号作为增量的加法器来实现项(ii)(jj)。如上所述,因为可将X和Y的值选为2的幂,于是可以使用简单的移位操作来实现增益内插。因此,仅在栅格点G0(而非每个像素)处需要乘法器,并且仅需要加法操作以确定用于剩下的像素的内插增益。
在特定实施例中,在栅格点之间的增益的内插可使用14位精度,且栅格增益可以是具有2个整数位和8个分数位的不带符号的10位值(例如2.8浮点表示)。使用该约定,增益可具有在0至4X之间的范围,并且在栅格点之间的增益分辨率可以是1/256。
镜头明暗校正技术可由图27所示的处理380进一步例示。如图所示,处理380开始于步骤382,其中确定当前像素相对于图25的LSC区域354边界的位置。接着,判定逻辑384确定当前像素位置是否在LSC区域354之内。如果当前像素位置在LSC区域354之外,处理380继续到步骤386,并且不对当前像素应用增益(例如,像素未经改变地通过)。
如果当前像素位置在LSC区域354之内,处理380继续到判定逻辑388,在此进一步确定当前像素位置是否对应于在增益栅格354内的栅格点。如果当前像素位置对应于栅格点,则如步骤390所示,选择在该栅格点的增益值并将其应用到当前像素。如果当前像素位置不对应于栅格点,则处理380继续到步骤392,并基于其周围的栅格点(例如图26的G0、G1、G2和G3)来内插增益。例如,可依照如上所述的等式11a和11b来计算内插增益。此后,处理380结束于步骤394,在此将来自步骤392的内插增益应用至当前像素。
将明了的是,可对图像数据的每个像素重复处理380。例如,如图28所示,例示了描绘可被应用到LSC区域(例如354)内的每个像素位置的增益的三维分布。如图所示,应用到图像角落396的增益通常可大于应用到图像中心398的增益,这是因为如图23和24所示,角落具有更大的光强度衰落。使用此处描述的镜头明暗校正技术,可以减少或基本上消除图像中呈现出的光强度衰落。例如,图29提供一个在应用了镜头明暗校正之后来自图24的图像352的有色图将如何呈现的例子。如图所示,相比于来自图24的初始图像,全幅图像的整体光强度基本上更为均匀。更具体的,在图像近似中心处的光强度可与在图像的角落和/或边缘处的光强度值大致地相等。另外,如上所述,在一些实施例中,内插增益的计算(等式11a和11b)可通过利用顺序的列和行增量结构而用栅格点之间的加性“增量”来代替。将明了的是,这会降低计算复杂度。
在进一步的实施例中,除了使用栅格增益,还为每个颜色分量使用一个全局增益,其根据与图像中心的距离而缩放。图像中心可被提供为输入参数,且可通过分析被均匀照明的图像内每个图像像素的光强度幅度而估计所述图像中心。如下所示,于是可以使用在识别的中心像素和当前像素之间的径向距离来获得经线性缩放的径向增益Gr:
Gr=Gp[c]×R, (12)
其中Gp[c]表示用于每个颜色分量c(例如拜耳模式的R、B、Gr和Gb分量)的全局增益参数,并且其中R表示中心像素和当前像素之间的径向距离。
参考示出了以上讨论的LSC区域354的图30,可使用多种技术来计算或估计距离R。如图所示,对应于图像中心的像素C可具有坐标(x0,y0),并且当前像素G可具有坐标(xG,yG)。在一个实施例中,LSC逻辑308可使用以下等式来计算距离R:
在另一个实施例中,可利用以下所示的更简单的估计公式来获得R的估计值:
R=α×max(abs(xG-x0),abs(yG-y0))+β×min(abs(xG-x0),abs(yG-y0)) (14)
在等式14中,估计系数α和β可被缩放至8位值。仅作为示例,在一个实施例中,α可大致等于123/128,且β可大致等于51/128,以提供R的估计值。使用这些系数值,最大误差可大致为4%,中间误差大致为1.3%。因此,尽管该估计技术的准确度多少会低于利用计算技术(等式13)来确定R,但是误差幅度还是足够低以使得估计值或R适用于确定本发明镜头明暗校正技术的径向增益分量。
接着可将径向增益Gr乘上用于当前像素的内插栅格增益值G(等式11a和11b)以确定可被应用到当前像素的总增益。如下所示,通过将输入像素值X乘上总增益来获得输出像素Y:
Y=(G×Gr×X) (15)
因此,依照本技术,可仅使用内插增益或者使用内插增益和径向增益分量两者来执行镜头明暗校正。作为替换,可仅使用径向增益连同补偿径向近似误差的径向栅格表来完成镜头明暗校正。例如,可以提供具有定义径向和角向的增益的多个栅格点的径向增益栅格以代替如图25所示的矩形增益栅格356。因此,当确定增益要被应用到未与LSC区域354内的径向栅格点之一对齐的像素时,可以使用四个围绕该像素的栅格点来应用内插以确定合适的内插镜头明暗增益。
参考图31,由处理400例示了镜头明暗校正中内插和径向增益分量的使用。应当注意的是,处理400可以包括与在图27中描述的处理380相似的步骤。因而,这样的步骤被标记为相同的参考标号。其开始于步骤382,接收当前像素并确定其相对于LSC区域354的位置。接着,判定逻辑384确定当前像素位置是否处于LSC区域354之内。如果当前像素位置在LSC区域354之外,处理400继续到步骤386,并且不对当前像素应用增益(例如,像素未经改变地通过)。如果当前像素位置处于LSC区域354之内,则处理400可同时继续到步骤402和判定逻辑388。首先参考步骤402,检索用于识别图像中心的数据。如上所述,确定图像中心可包括分析在均匀照明下的像素的光强度幅度。例如,这可在校准期间发生。因此,应当理解的是步骤402没有必要包括为处理每个像素而重复计算图像中心,而是可涉及检索出先前确定的图像中心的数据(例如,坐标)。一旦识别了图像中心,处理400可继续到步骤404,其中确定图像中心和当前像素位置之间的距离(R)。如上所述,可以计算(等式13)或估计(等式14)R的值。接着,在步骤406,可使用距离R和与当前像素的颜色分量相对应的全局增益参数来计算径向增益分量Gr(等式12)。如以下将在步骤410要讨论的那样,径向增益分量Gr可被用于确定总增益。
参考回判定逻辑388,其确定当前像素位置是否对应于处于增益栅格354之内的栅格点。如果当前像素位置对应于栅格点,则如步骤408所示,确定在栅格点上的增益值。如果当前像素位置不对应于栅格点,则处理400继续到步骤392,并且基于其周围的栅格点(例如,图26的G0、G1、G2和G3)来计算内插增益。例如,可依照以上讨论的等式11a和11b来计算内插增益。接着,在步骤410,基于在步骤406确定的径向增益以及栅格增益(步骤408)或内插增益(392)之一来确定总增益。可以明了的是,这可取决于在处理400期间判定逻辑388采用哪一个分支。然后如步骤412所示,将总增益应用到当前像素。再次,应当注意的是,类似于处理380,也可以为图像数据的每个像素重复处理400。
径向增益连同栅格增益的使用可提供多种优点。例如,使用径向增益允许对所有颜色分量使用单个共用增益栅格。这将大大减少用于为每个颜色分量存储的单独的增益栅格所需要的总存储空间。例如,在拜耳图像传感器中,为所有R、B、Gr和Gb分量都使用单个增益栅格可以减少大约75%的增益栅格数据。将明了的是,栅格增益数据的这一减少可降低实现成本,因为栅格增益数据表可能会占用图像处理硬件中存储器或芯片区域的很大部分。此外,取决于硬件实现,使用单个增益栅格值集合还可提供其他优点,例如降低总芯片面积(例如当增益栅格值被存储在芯片上的存储器内时)以及降低存储器带宽需求(例如当增益栅格值被存储在芯片外的外部存储器内时)。
在透彻描述了如图20所示的镜头明暗校正逻辑308的功能后,LSC逻辑308的输出随后被转发给逆黑度补偿(IBLC)逻辑310。IBLC逻辑310为每个颜色分量(例如R、B、Gr和Gb)独立地提供增益、偏移和截短,并且通常执行BLC逻辑306的逆功能。例如,如以下运算所示,首先将输入像素值乘上增益,接着使用带符号的值进行偏移。
Y=(X×G[c])+O[c], (16)
其中X表示给定颜色分量c(例如R、B、Gr或Gb)的输入像素值,O[c]表示用于当前颜色分量c的带符号的16位偏移量,以及G[c]表示用于颜色分量c的增益值。在一个实施例中,增益G[c]可具有大约在0至4X(输入像素值X的四倍)之间的范围。应当注意的是,这些变量可以是如上所讨论的等式9中的相同变量。使用例如等式10,计算出的值Y可被截短到最小值和最大值范围。在一个实施例中,IBLC逻辑310可被配置成为每个颜色分量保存分别在最大值之上和在最小值之下而被截短的像素数量计数。
此后,由统计信息收集块312来接收IBLC逻辑310的输出,该统计信息收集块312可提供关于(一个或多个)图像传感器90的各种统计数据点的收集,例如关于自动曝光(AE)、自动白平衡(AWB)、自动对焦(AF)、闪烁检测等的统计数据点。以下提供简要概述来讨论AWB、AE和AF统计信息的意义。
关于白平衡,图像传感器在每个像素上的响应可以取决于照明源,因为光源从图像场景中的物体被反射。于是,图像场景中所记录的每个像素值与光源的色温有关。当以低色温照明白色物体时,该物体在被捕捉的图像中可能看上去偏红。反之,以高色温照明白色物体时,该物体在被捕捉的图像中可能看上去偏蓝。因此,白平衡的目的是调整RGB值,以使得图像在人眼看上去像是在规范光下拍摄的。于是,在关于白平衡的成像统计信息的情况中,收集关于白色物体的颜色信息以确定光源的色温。一般来说,白平衡算法可包括两个主要步骤。首先,估计光源的色温。其次,使用估计的色温来调整颜色增益值和/或确定/调整颜色校正矩阵的系数。这样的增益可以是模拟和数字图像传感器增益以及ISP数字增益的组合。
接下来,自动曝光通常指的是调整像素积分时间和增益以控制所捕捉图像的亮度的处理。例如,自动曝光可通过设置积分时间来控制由(一个或多个)图像传感器捕捉的场景的光量。此外,自动对焦可以指确定镜头的最佳对焦长度以充分地优化图像的对焦。因此,可经由统计信息收集块312来确定并收集尤其是这些各种类型的统计信息。如所示的,统计信息收集块312的输出STATS0可被发送到存储器108并且然后被路由到控制逻辑84,或者可替换地,可被直接发送到控制逻辑84。
如上所述,控制逻辑84可处理收集到的统计数据以确定用于控制成像设备30和/或图像处理电路32的一个或多个控制参数。例如,这样的控制参数可以包括用于操作图像传感器90的镜头的参数(例如对焦长度调整参数)、图像传感器参数(例如模拟和/或数字增益、积分时间)以及ISP流水处理参数(例如数字增益值、颜色校正矩阵(CCM)系数)。另外,如上所述,在特定实施例中,可以8位的精度来进行统计处理,因此,具有更高位深的原始像素数据可被下采样到8位格式以用于统计目的。如上所述,下采样到8位(或任何其他更低位分辨率)可减小硬件尺寸(例如面积),还能降低处理复杂度,并且使得统计数据对于噪声更为鲁棒(例如使用图像数据的空间平均)。
在对ISP前端逻辑80下游的ISP流水逻辑82进行详细讨论之前,应当理解的是在统计处理单元120和122中的各种功能性逻辑块(例如逻辑块304、306、308、310和312),以及ISP前端像素处理单元130中的各种功能性逻辑块(例如逻辑块180和182)的布置仅旨在例示本技术的一个实施例。实际上,在其他实施例中,可以按照不同顺序来布置此处例示的逻辑块,或者可包括用于执行未在此处特别描述的附加图像处理功能的附加逻辑块。此外,应当理解的是在统计处理单元(例如120和122)中执行的图像处理操作,例如镜头明暗校正、缺陷像素检测/校正和黑度补偿,是出于收集统计数据的目的而在统计处理单元内执行的。因此,对由统计处理单元接收到的图像数据执行的处理操作实际上没有反映在从ISP前端像素处理逻辑130输出并被转发到ISP流水处理逻辑82的图像信号109上(FEProcOut)。
在继续之前,还应当注意的是,假设充足的处理时间和此处所描述的各种操作的许多处理需求之间的相似性,有可能重新配置此处所示的功能块以顺序方式来执行图像处理,而不是流水线性质。将会理解,这可能进一步降低整体硬件实现成本,但是可能增加到外部存储器的带宽(例如为了高速缓存/存储中间结果/数据)。
ISP流水线(“流水”)处理逻辑
以上已详细描述了ISP前端逻辑80,现在本讨论将其重点转移到ISP流水处理逻辑82。一般来说,ISP流水逻辑82的功能是接收可由ISP前端逻辑80提供的或从存储器108检索出的原始图像数据,并且对其执行附加图像处理操作,也就是在将图像数据输出到显示设备28之前进行处理。
图32描绘了示出ISP流水逻辑82的一个实施例的方框图。如图所示,ISP流水逻辑82可包括原始处理逻辑414、RGB处理逻辑416和YCbCr处理逻辑418。原始处理逻辑414可执行多种图像处理操作,例如以下将进一步讨论的缺陷像素检测和校正、镜头明暗校正、去马赛克、以及为自动白平衡应用增益和/或设置黑度。如本实施例所示,取决于选择逻辑420的当前配置,到原始处理逻辑414的输入信号422可以是来自ISP前端逻辑80的原始像素输出109(信号FEProcOut)或来自存储器108的原始像素数据112。
作为在原始处理逻辑414内执行去马赛克操作的结果,图像信号输出424可以处于RGB域,并可以在随后被转发至RGB处理逻辑416。例如,如图32所示,RGB处理逻辑416接收信号430,取决于选择逻辑428的当前配置,该信号430可以是输出信号424或来自存储器108的RGB图像信号426。RGB处理逻辑416可提供多种RGB颜色调整操作,包括以下将进一步讨论的颜色校正(例如使用颜色校正矩阵)、用于自动白平衡的颜色增益的应用、以及全局色调映射。RGB处理逻辑418还可提供RGB图像数据到YCbCr(亮度/色度)颜色空间的颜色空间变换。于是,图像信号输出432可以处于YCbCr域,并可在随后被转发至YCbCr处理逻辑418。
例如,如图32所示,YCbCr处理逻辑418接收信号438,取决于选择逻辑436的当前配置,该信号438可以是来自RGB处理逻辑416的输出信号432,或是来自存储器108的YCbCr信号434。如以下将进一步进行详细讨论的,YCbCr处理逻辑418可提供在YCbCr颜色空间内的图像处理操作,包括缩放,色度抑制,亮度锐化,亮度、对比度和颜色(BCC)调整,YCbCr伽马映射,色度抽选等。YCbCr处理逻辑418的图像信号输出440可被发送到存储器108,或可作为图像信号114(图7)从ISP流水处理逻辑82输出。图像信号114可被发送到显示设备28(直接地或通过存储器108),以供用户观看,或者可使用压缩引擎(例如编码器118)、CPU/GPU、图形引擎等而被进一步处理。
依照本技术的实施例,ISP流水逻辑82可支持8位、10位、12位或14位格式的原始像素数据的处理。例如在一个实施例中,8位、10位或12位的输入数据可在原始处理逻辑414的输出处被变换为14位,并且可使用14位精度来执行原始处理和RGB处理操作。在后一个实施例中,可在将RGB数据变换到YCbCr颜色空间之前,将14位图像数据下采样到10位,并且可以使用10位精度来执行YCbCr处理(逻辑418)。
为了提供对由ISP流水处理逻辑82所提供的多种功能的全面描述,以下将顺序的讨论原始处理逻辑414、RGB处理逻辑416和YCbCr处理逻辑418中的每一个,以及可在各个逻辑单元414、416和418中实现的用于执行各种图像处理操作的内部逻辑,首先从原始处理逻辑414开始。例如,现在参考图33,根据本技术的一个实施例,例示了示出原始处理逻辑414的一个实施例的更详细视图的方框图。如图所示,原始处理逻辑414包括增益、偏移和钳位(GOC)逻辑442,缺陷像素检测/校正(DPDC)逻辑444,降噪逻辑446,镜头明暗校正逻辑448,GOC逻辑450和去马赛克逻辑452。此外,虽然以下所讨论的例子假设结合(一个或多个)图像传感器90使用拜耳滤色器阵列,但是应当理解本技术的其他实施例也可利用不同类型的滤色器。
可以是原始图像信号的输入信号422首先由增益、偏移和钳位(GOC)逻辑442接收。GOC逻辑442可以提供与如以上图20中所讨论的有关ISP前端逻辑80的统计处理单元120的BLC逻辑306类似的功能,并以类似的方式来实现。例如GOC逻辑442可为拜耳图像传感器的每个颜色分量R、B、Gr和Gb独立地提供数字增益、偏移和钳位(截短)。更具体的,GOC逻辑442可以执行自动白平衡或设置原始图像数据的黑度。此外,在一些实施例中,GOC逻辑442还可被用来校正或补偿Gr和Gb颜色分量之间的偏移。
在操作中,当前像素的输入值首先由带符号的值来偏移,并与增益相乘。该操作可使用以上在等式9中示出的公式来执行,其中X表示用于给定颜色分量R、B、Gr或Gb的输入像素值,O[c]表示用于当前颜色分量c的带符号的16位偏移量,G[c]表示用于颜色分量c的增益值。可在统计处理期间(例如在ISP前端块80中)预先确定G[c]的值。在一个实施例中,增益G[c]可以是具有2个整数位和14个分数位的16位无符号数(例如2.14浮点表示),还可对增益G[c]应用舍入。仅作为示例,增益G[c]可具有0至4X之间的范围。
接着依照等式10将由等式9计算出的像素值Y(其包括增益G[c]和偏移量O[c])截短到最小值和最大值范围。如上所述,变量min[c]和max[c]可分别表示用于最小和最大输出值的带符号的16位“截短值”。在一个实施例中,GOC逻辑442还可被配置为保存每个颜色分量的分别在最大值范围之上和在最小值范围之下而被截短的像素的数量的计数。
随后,GOC逻辑442的输出被转发到缺陷像素检测和校正逻辑444。如以上参考图20所述(DPDC逻辑304),缺陷像素可归咎于一些因素,并且可包括“燥点”(或漏电像素)、“亮点”和“坏点”,其中燥点相对于非缺陷像素呈现出高于正常电荷泄漏的泄漏,因此可能比非缺陷像素看上去更亮;并且其中亮点看上去为常开(例如,全充电)并且因此表现的更亮,而坏点则看上去为常关。因此,希望能得到一种足够鲁棒以识别和解决不同类型的故障情形的像素检测方案。更具体的,当与可能仅能提供动态缺陷检测/校正的前端DPDC逻辑304相比较时,流水DPDC逻辑444可提供固定或静态缺陷检测/校正、动态缺陷检测/校正以及斑点移除。
依照此处公开的技术的实施例,由DPDC逻辑444执行的缺陷像素校正/检测可以为每个颜色分量(例如R、B、Gr和Gb)独立地进行,并且可包括多种用于检测缺陷像素的操作和多种用于校正检测到的缺陷像素的操作。例如,在一个实施例中,缺陷像素检测操作可提供对静态缺陷、动态缺陷的检测以及对斑点的检测,斑点可以指的是可能存在于成像传感器中的电干扰或噪声(例如光子噪声)。作为类比,斑点可能作为看上去的随机噪声伪影出现在图像中,类似于静态噪声可出现在诸如电视显示器的显示器上的方式。此外,如上所述,动态缺陷校正被在如下意义上认为是动态的:在给定的时刻将像素认为是有缺陷可取决于邻近像素中的图像数据。例如,如果总是处于最大亮度的亮点位于当前图像中由明亮白色主导的区域,则该亮点可能不被认为是缺陷像素。反之,如果亮点处于当前图像中由黑色或暗色主导的区域,则该亮点在经由DPDC逻辑444进行处理期间可被识别为缺陷像素,并被相应地校正。
关于静态缺陷检测,将每个像素的位置与静态缺陷表相比较,该表可存储了对应于已知有缺陷的像素的位置的数据。例如,在一个实施例中,DPDC逻辑444可监视缺陷像素的检测(例如使用计数器机制或寄存器),并且如果某特定像素被观察到重复地失败,该像素的位置被存储到静态缺陷表。因此,在静态缺陷检测期间,如果确定当前像素的位置处于静态缺陷表中,当前像素于是被识别为缺陷像素,并且一替代值被确定并临时存储。在一个实施例中,替代值可以是相同颜色分量的前一像素的值(基于扫描顺序)。如下所述,替代值可被用来在动态/斑点缺陷检测和校正期间校正静态缺陷。另外,如果前一像素处于原始帧154之外(图9),则不使用该前一像素的值,并可在动态缺陷校正处理期间校正静态缺陷。此外,考虑到存储器,静态缺陷表可存储有限数量的位置条目。例如,在一个实施例中,静态缺陷表可被实现为FIFO队列,其被配置为针对图像数据的每两条线存储共计16个位置。虽然如此,在静态缺陷表中定义的位置将使用前一像素替代值(而不是通过以下讨论的动态缺陷检测处理)来校正。如上所述,本技术的实施例还能够随时间间歇地更新静态缺陷表。
实施例可提供在片上存储器或片外存储器中实现的静态缺陷表。将明了的是,使用片上实现可能增加总体芯片面积/尺寸,而使用片外实现可降低芯片面积/尺寸,但会增加存储器带宽需求。因此,应当理解可取决于特定实现需求(即,将要存储在静态缺陷表中的像素的总数),片上或片外地实现该静态缺陷表。
动态缺陷和斑点检测处理可以相对于上述讨论的静态缺陷检测处理具有时移。例如,在一个实施例中,动态缺陷和斑点检测处理可于静态缺陷检测处理已经分析了两条扫描线(例如,行)的像素之后开始。可以明了的是,这允许在动态/斑点检测发生之前确定静态缺陷的识别以及它们各自的替代值。例如,在动态/斑点检测处理期间,如果当前像素在先前就被标记为静态缺陷,则使用先前估计的替代值来对静态缺陷进行简单校正,而不是应用动态/斑点检测操作。
关于动态缺陷和斑点检测,这些处理可顺序的或并行的发生。由DPDC逻辑444执行的动态缺陷和斑点检测和校正可依赖于使用像素至像素方向性梯度的自适应边缘检测。在一个实施例中,DPDC逻辑444可在所使用的原始帧154(图9)内选择当前像素的具有相同颜色分量的八个直接相邻的像素。换而言之,如下图34所示,当前像素及其八个直接相邻的像素P0、P1、P2、P3、P4、P5、P6和P7可形成3x3区域。
然而,应当注意的是,取决于当前像素P的位置,当计算像素至像素梯度时不考虑在原始帧154之外的像素。例如,对于如图34所示的“左上”情况454,当前像素P处于原始帧154的左上角,因此不考虑在原始帧154之外的邻近像素P0、P1、P2、P3和P5,仅剩下像素P4、P6和P7(N=3)。在“上”情况456,当前像素P处于原始帧154的最上边缘,因此不考虑在原始帧154之外的邻近像素P0、P1和P2,仅剩下像素P3、P4、P5、P6和P7(N=5)。接着,在“右上”情况458,当前像素P处于原始帧154的右上角,因此不考虑在原始帧154之外的邻近像素P0、P1、P2、P4和P7,仅剩下像素P3、P5和P6(N=3)。在“左”情况460,当前像素P处于原始帧154的最左边缘,因此不考虑在原始帧154之外的邻近像素P0、P3和P5,仅剩下像素P1、P2、P4、P6和P7(N=5)。
在“中心”情况462,所有像素P0-P7都位于原始帧154内,于是都被用来确定像素至像素梯度(N=8)。在“右”情况464,当前像素P处于原始帧154的最右边缘,因此不考虑在原始帧154之外的邻近像素P2、P4和P7,仅剩下像素P0、P1、P3、P5和P6(N=5)。另外,在“左下”情况466,当前像素P处于原始帧154的左下角,因此不考虑在原始帧154之外的邻近像素P0、P3、P5、P6和P7,仅剩下像素P1、P2和P4(N=3)。在“下”情况468,当前像素P处于原始帧154的最下边缘,因此不考虑在原始帧154之外的邻近像素P5、P6和P7,仅剩下像素P0、P1、P2、P3和P4(N=5)。最后,在“右下”情况470,当前像素P处于原始帧154的右下角,因此不考虑在原始帧154之外的邻近像素P2、P4、P5、P6和P7,仅剩下像素P0、P1和P3(N=3)。
因此,取决于当前像素P的位置,被用于确定像素至像素梯度的像素数量可能是3、5或8。在所示的实施例中,对于在图片(例如原始帧154)边界内的每个邻近像素(k=0至7),可如下的计算像素至像素梯度:
Gk=abs(P-Pk),对于0≤k≤7(仅对于在原始帧内的k) (17)
另外,可通过如下所示的等式来计算当前像素和其周围像素的平均Pav之间的差作为平均梯度Gav:
Gav=abs(P-Pav) (19)
像素至像素梯度值(等式17)可被用来确定动态缺陷情况,邻近像素的平均(等式18和19)可被用来识别以下所讨论的斑点情况。
在一个实施例中,DPDC逻辑444可如下地执行动态缺陷检测。首先,如果一定数量的梯度Gk等于或低于由变量dynTh(动态缺陷阈值)表示的特定阈值,则假设该像素是有缺陷的。因此,对于每个像素,在图片边界内的邻近像素的等于或低于阈值dynTh的梯度的数量的计数(C)被累加。阈值dynTh可以是固定阈值分量和可取决于周围像素中出现的“活动性”的动态阈值分量的组合。例如,在一个实施例中,可通过计算高频分量值Phf来确定dynTh的动态阈值分量,计算高频分量值Phf则基于对平均像素值Pav(等式18)和每个邻近像素之间的差的绝对值求和,如下所示:
在像素位于图像一角(N=3)或位于图像边缘(N=5)的情况下,Phf可分别乘上8/3或8/5。可以明了的是,这保证了基于八个邻近像素(N=8)来归一化高频分量Phf。
一旦确定了Phf,可如下所示计算动态缺陷检测阈值dynTh:
dynTh=dynTh1+(dynTh2×Phf), (21)
其中dynTh1表示固定阈值分量,dynTh2表示动态阈值分量,并且是等式21中用于Phf的乘数。可以为各个颜色分量提供不同的固定阈值分量dynTh1,但是对于每个相同颜色的像素,dynTh1是相同的。仅作为示例,可以设置dynTh1以使得其至少大于图像中的噪声方差。
可基于图像的某些特征来确定动态阈值分量dynTh2。例如,在一个实施例中,可使用存储的关于曝光和/或传感器积分时间的经验数据来确定dynTh2。该经验数据可在图像传感器(例如,90)的校准期间确定,并可将可为dynTh2选择的动态阈值分量值与多个数据点的每一个相关联。于是,基于可在由ISP前端逻辑80执行的统计处理期间确定的当前曝光和/或传感器积分时间值,可通过从存储的经验数据中选择对应于当前曝光和/或传感器积分时间值的动态阈值分量值来确定dynTh2。另外,如果当前曝光和/或传感器积分时间值没有直接对应于经验数据点中的一个点,则可通过对与当前曝光和/或传感器积分时间值落入其间的数据点相关联的动态阈值分量值进行内插而确定dynTh2。此外,类似于固定阈值分量dynTh1,对于每个颜色分量,动态阈值分量dynTh2可具有不同的值。因此,对于每个颜色分量(例如R、B、Gr、Gb),组合阈值dynTh可以不同。
如上所述,针对每个像素,确定在图片边界内的邻近像素的等于或低于阈值dynTh的梯度的数量的计数C。例如,对于在原始帧154内的每个邻近像素,可以如下计算等于或低于阈值dynTh的梯度Gk的累加计数C:
对于0≤k≤7(仅对于在原始帧内的k)
接着,如果累加计数C被确定为小于或等于由变量dynMaxC表示的最大计数,则该像素可被认为是动态缺陷。在一个实施例中,可为N=3(角)、N=5(边缘)和N=8的情况提供dynMaxC的不同值。该逻辑被表达为如下:
if(C≤d ynMaxC),then当前像素P是有缺陷的。 (23)
如上所述,缺陷像素的位置可被存储到静态缺陷表。在一些实施例中,在用于当前像素的动态缺陷检测期间计算的最小梯度值(min(Gk))可被存储并被用于分类缺陷像素,使得更大的最小梯度值指示缺陷的更大的“严重性”,并且应当在像素校正期间在不那么严重的缺陷被校正之前被校正。在一个实施例中,像素在被存储到静态缺陷表之前可能需要对其进行跨多个成像帧的处理,例如通过随着时间而过滤缺陷像素的位置。在后一实施例中,可仅当缺陷出现在特定数量的连续图像的相同位置时才将该缺陷像素的位置存储到静态缺陷表中。此外,在一些实施例中,静态缺陷表可被配置为基于最小梯度值来分类所存储的缺陷像素位置。例如,最高的最小梯度值可指示缺陷具有更大的“严重性”。通过以这种方式来对位置排序,可以设置静态缺陷校正的优先级,使得可以首先校正最严重或重要的缺陷。另外,静态缺陷表可随着时间被更新以包括新检测到的静态缺陷,并且由此基于它们各自的最小梯度值来对其进行排序。
可以通过确定值Gav(等式19)是否高于斑点检测阈值spkTh来执行可与以上所述的动态缺陷检测处理并行发生的斑点检测。类似于动态缺陷阈值dynTh,斑点阈值spkTh也可包括固定和动态分量,其分别由spkTh1和spkTh2指代。一般来说,相比于dynTh1和dynTh2值,固定和动态分量spkTh1和spkTh2可被更“侵略性地”设置,以避免在可能具有较重纹理或其他(例如文字、树叶、特定织物图案等)的图像区域中错误地检测斑点。因而,在一个实施例中,动态斑点阈值分量spkTh2可以针对图像的高纹理区域有所增加,而对于“更平缓”或更均匀的区域则有所减小。可如下所示计算斑点检测阈值spkTh:
spkTh=spkTh1+(spkTh2×Phf), (24)
其中spkTh1表示固定阈值分量,并且其中spkTh2表示动态阈值分量。随后可依照以下表达式来确定斑点的检测:
if(Gav>spkTh),then当前像素P是斑点。 (25)
一旦识别了缺陷像素,DPDC逻辑444可取决于检测到的缺陷类型来应用像素校正操作。例如,如果缺陷像素被识别为静态缺陷,则如上所述使用存储的替代值(例如相同颜色分量的前一像素的值)来代替该像素。如果像素被识别为动态缺陷或斑点,则可如下的执行像素校正。首先,如下所示,梯度在四个方向(水平(h)方向、垂直(v)方向、正对角方向(dp)和负对角方向(dn))上被计算为当前像素与第一和第二邻居像素之间的差的绝对值(例如等式17对Gk的计算)之和:
Gh=G3+G4 (26)
Gv=G1+G6 (27)
Gdp=G2+G5 (28)
Gdn=G0+G7 (29)
接着,经由与方向性梯度Gh、Gv、Gdp和Gdn中具有最小值的方向性梯度相关联的两个邻近像素的线性内插来确定校正像素值PC。例如,在一个实施例中,以下的逻辑陈述可表示对PC的计算:
if(min==Gh) (30)
else if(min==Gv)
else if(min==Gdp)
else if(min==Gdn)
由DPDC逻辑444实现的像素校正技术还可考虑到边界条件处的例外。例如,如果关联于所选择的内插方向的两个邻近像素中的一个在原始帧之外,则用在原始帧内的那个邻居像素的值来代替。因此,使用该技术,校正像素值将等于在原始帧内的该邻居像素的值。
应当注意的是,在ISP流水处理期间由DPDC逻辑444应用的缺陷像素检测/校正技术相比于在ISP前端逻辑80中的DPDC逻辑304更为鲁棒。如以上实施例所讨论,DPDC逻辑304仅使用水平方向上的邻近像素来仅仅执行动态缺陷检测和校正,反之,DPDC逻辑444使用水平和垂直两方向上的邻近像素提供静态缺陷、动态缺陷和斑点的检测和校正。
将明了的是,使用静态缺陷表存储缺陷像素的位置可以以较低的存储器需求提供对缺陷像素的时域滤波。例如,相比于那些存储整个图像并随时间应用时域滤波以识别静态缺陷的传统技术,本技术的实施例仅存储缺陷像素的位置,这典型地可使用存储整个图像帧所需的存储器的仅仅一小部分就能实现。此外,如上所讨论,最小梯度值(min(Gk))的存储允许有效使用对缺陷像素被校正的位置的顺序区分优先级(例如开始于那些最显著的像素)的静态缺陷表。
另外,使用包括动态分量(例如,dynTh2和spkTh2)的阈值可有助于减少错误的缺陷检测,这是传统图像处理系统在处理图像的高纹理区域(例如文字、树叶、特定织物图案等)时经常遇到的问题。此外,使用方向性梯度(例如h、v、dp、dn)来进行像素校正可降低当发生错误的缺陷检测时可视伪影的出现。例如,在最小梯度方向上的滤波可导致即使在错误检测的情况下,仍然能产生在大多数情况下可接受的结果的校正。另外,在梯度计算中包括当前像素P可提高梯度检测的准确度,尤其是在燥点的情况下。
以上所讨论的由DPDC逻辑444所实现的缺陷像素检测和校正技术可总结为图35-37所提供的一系列流程图。例如,首先参考图35,例示了用于检测静态缺陷的处理472。其开始于步骤474,在第一时间T0接收到输入像素P。接着,在步骤476,将像素P的位置与存储在静态缺陷表中的值相比较。判定逻辑478确定是否在静态缺陷表中找到像素P的位置。如果P的位置在静态缺陷表中,则处理472继续到步骤480,其中像素P被标记为静态缺陷并且确定替代值。如上所述,可基于相同颜色分量的前一像素(以扫描顺序)的值来确定替代值。处理472接着继续到步骤482,在这里,处理472进行到如图36所示的动态和斑点检测处理484。另外,如果判定逻辑478确定像素P的位置不在静态缺陷表中,则处理472进行到步骤482而不执行步骤480。
继续到图36,如步骤486所示,在时间T1接收输入像素P以供处理来确定是否存在动态缺陷或斑点。时间T1可表示相对于图35的静态缺陷检测处理472的时移。如上所讨论,可在静态缺陷检测处理已经分析了两条扫描线(例如行)的像素之后开始动态缺陷和斑点检测处理,从而允许在动态/斑点检测发生之前具有用于识别静态缺陷及确定他们各自的替代值的时间。
判定逻辑488确定输入像素P是否先前被标记为静态缺陷(例如通过处理472的步骤480)。如果P被标记为静态缺陷,则处理484可继续到如图37所示的像素校正处理,并且了绕过图36所示的其他步骤。如果判定逻辑488确定输入像素P不是静态缺陷,则处理继续到步骤490,并且识别可在动态缺陷和斑点处理中使用的邻近像素。例如,依照以上讨论并在图34中所示的实施例,邻近像素可包括像素P的8个直接相邻的像素(例如P0-P7),从而形成3x3像素区域。接着,在步骤492,如以上等式17所示,计算关于原始帧154内每个邻近像素的像素至像素梯度。另外,如等式18和19所示,将当前像素和其周围像素的平均值之差计算为平均梯度(Gav)。
处理484随后分支到用于动态缺陷检测的步骤494以及用于斑点检测的判定逻辑502。如上所述,在一些实施例中,可以并行地进行动态缺陷检测和斑点检测。在步骤494,确定小于或等于阈值dynTh的梯度的数量的计数C。如上所述,阈值dynTh可包括固定和动态分量,并且在一个实施例中,可依照以上等式21而被确定。如果C小于或等于最大计数dynMaxC,则处理484继续到步骤500,并且当前像素被标记为动态缺陷。此后,处理484可继续到以下将讨论的如图37所示的像素校正处理。
参考回步骤492之后的分支,对于斑点检测,判定逻辑502确定平均梯度Gav是否大于同样包括固定和动态分量的斑点检测阈值spkTh。如果Gav大于阈值spkTh,在步骤504将像素P标记为包含斑点,此后,处理484继续到图37用于斑点像素的校正。此外,如果判定逻辑块496和502两者的输出都为“否”,这指示像素P不包括动态缺陷、斑点或静态缺陷(判定逻辑488)。因此,当判定逻辑496和502的输出都为“否”时,处理484可结束于步骤498,由此使像素P不经改变的通过,因为没有检测到缺陷(例如静态、动态或斑点)。
继续到图37,提供了依照上述技术的像素校正处理506。在步骤508,从图36的处理484接收输入像素P。应当注意的是处理506可从步骤488(静态缺陷)或从步骤500(动态缺陷)和504(斑点缺陷)接收像素P。接着判定逻辑510确定像素P是否被标记为静态缺陷。如果像素P是静态缺陷,则步骤506继续并结束于步骤512,在此使用在步骤480(图35)确定的替代值来校正静态缺陷。
如果像素P没有被识别为静态缺陷,则处理506从判定逻辑510继续到步骤514,并且计算方向性梯度。例如,如以上参考等式26-29所讨论的,将梯度计算为针对四个方向(h、v、dp和dn),中心像素与第一和第二邻近像素之差的绝对值之和。接着,在步骤516,识别具有最小值的方向性梯度,并在此后,判定逻辑518估计关联于该最小梯度的两个邻近像素中的一个是否位于图像帧(例如原始帧154)之外。如果两个邻近像素都在图像帧之内,则处理506继续到步骤520,并且如等式30所示,通过对这两个邻近像素的值应用线性内插以确定像素校正值(PC)。此后,如步骤562所示,可使用经内插得到的像素校正值PC来校正输入像素P。
回到判定逻辑518,如果其确定两个邻近像素中的一个位于图像帧(例如原始帧165)之外,则如步骤522所示,代替使用该外部像素(Pout)的值,DPDC逻辑444可使用位于图像帧内的另一个邻近像素(Pin)的值来代替该Pout的值。此后,在步骤524,通过对Pin的值以及Pout的替代值进行内插而确定像素校正值PC。换而言之,在这种情况下,PC可等于Pin的值。结束于步骤526,使用值PC来校正像素P。在继续之前,应当理解此处所讨论的参考DPDC逻辑444的特定缺陷像素检测和校正处理仅旨在反映本技术的一个可能的实施例。实际上,取决于设计和/或成本约束,可以做出多种改变,并且可以增加或移除一些特征,使得缺陷检测/校正逻辑的整体复杂度和鲁棒性介于在ISP前端块80中实现的较为简单的检测/校正逻辑304和此处参考DPDC逻辑444所讨论的缺陷检测/校正逻辑之间。
参考回图33,校正后的像素数据被从DPDC逻辑444输出,并被降噪逻辑446接收以做进一步处理。在一个实施例中,降噪逻辑446可被配置为在维持细节和纹理的同时,实现二维边缘自适应低通滤波以降低图像数据中的噪声。可基于当前光照水平来设置(例如通过控制逻辑84)边缘自适应阈值,使得在弱光条件下可以增强滤波。此外,如同以上确定dynTh和spkTh值时曾简要提及的,可提前为给定传感器确定噪声方差,以使得降噪阈值被设置为刚好在噪声方差之上,因此在降噪处理期间,噪声被降低而不会显著影响场景的纹理和细节(例如,避免/减少错误检测)。假设为拜耳滤色器实施方式,降噪逻辑446可以使用可分离的7抽头水平滤波器和5抽头垂直滤波器来独立地处理每个颜色分量Gr、R、B和Gb。在一个实施例中,可通过校正绿色颜色分量(Gb和Gr)中的不均匀性,并在随后执行水平滤波和垂直滤波来开展所述降噪处理。
一般通过在均匀地照明平坦表面的情况下Gr和Gb像素之间的微小的明亮度差来表征绿色不均匀性(GNU)。如果不对这种不均匀性进行校正或补偿,在去马赛克之后,例如“迷宫式”伪影的特定伪影可能出现在全彩图像上。绿色不均匀性处理期间可包括为原始拜耳图像数据中的每个绿色像素确定当前绿色像素(G1)和当前绿色像素右下方的绿色像素(G2)之差的绝对值是否小于GNU校正阈值(gnuTh)。图38例示了在拜耳模式的2×2区域中的G1和G2像素的位置。如图所示,G1周围的像素的颜色可取决于当前绿色像素是Gb还是Gr像素。例如,如果G1是Gr,则G2是Gb,G1右边的像素是R(红色),G1下边的像素是B(蓝色)。作为替换,如果G1是Gb,则G2是Gr,G1右边的像素是B,而G1下边的像素是R。如果G1和G2之差的绝对值小于GNU校正阈值,则用G1和G2的平均值来代替当前绿色像素G1,其如以下逻辑所示:
if(abs(G1-G2)≤gnuTh);
可以明了的是,通过这种方式来应用绿色不均匀性校正可以有助于防止G1和G2像素被跨边缘平均,由此改善和/或保留锐度。
水平滤波可在绿色不均匀性校正之后应用,并且在一个实施例中可提供7抽头水平滤波器。计算每个滤波器抽头的跨边缘梯度,并且如果其大于水平边缘阈值(horzTh),则如下面将例示的,滤波器抽头被折叠到中心像素。水平滤波器可以针对每个颜色分量(R、B、Gr、Gb)独立处理所述图像数据,并可使用未经滤波的值作为输入值。
作为示例,图39示出了用于一组水平像素P0-P6的图形表示,其中中心抽头位于P3。基于如图39所示的像素,可如下计算对于每个滤波器抽头的边缘梯度:
Eh0=abs(P0-P1) (32)
Eh1=abs(P1-P2) (33)
Eh2=abs(P2-P3) (34)
Eh3=abs(P3-P4) (35)
Eh4=abs(P4-P5) (36)
Eh5=abs(P5-P6) (37)
边缘梯度Eh0-Eh5于是可被水平滤波器部件利用以使用如下所示的公式38来确定水平滤波输出Phorz:
Phorz=C0×[(Eh2>horzTh[c])?P3:(Eh1>horzTh[c])?P2:(Eh0>horzTh[c])?P 1:P0]+
C1×[(Eh2>horzTh[c])?P3:(Eh1>horzTh[c])?P2:P1]+
C2×[(Eh2>horzTh[c])?P3:P2]+
C3×P3+ (38)
C4×[(Eh3>horzTh[c])?P3:P4]+
C5×[(Eh3>horzTh[c])?P3:(Eh4>horzTh[c])?P4:P5]+
C6×[(Eh3>horzTh[c])?P3:(Eh4>horzTh[c])?P4:(Eh5>horzTh[c])?P5:P6],
其中horzTh[c]是用于每个颜色分量c(例如R、B、Gr和Gb)的水平边缘阈值,并且其中C0-C6分别是对应于像素P0-P6的滤波器抽头系数。水平滤波器输出Phorz可被应用到中心像素P3的位置。在一个实施例中,滤波器抽头系数C0-C6可以是16位二进制补码值,其具有3个整数位和13个分数位(3.13浮点)。此外,应当注意的是滤波器抽头系数C0-C6不是必须要关于中心像素P3对称。
在绿色不均匀性校正和水平滤波处理之后由降噪逻辑446应用垂直滤波。在一个实施例中,如图40所示,垂直滤波操作可提供5抽头滤波器,其中垂直滤波器的中心抽头位于P2。可以按照如同以上所述的水平滤波处理类似的方式来进行垂直滤波处理。例如,计算每个滤波器抽头的跨边缘的梯度,如果其大于垂直边缘阈值(vertTh),滤波器抽头被折叠到中心像素P2。垂直滤波器可针对每个颜色分量(R、B、Gr、Gb)独立处理图像数据,并且可以使用未经滤波的值作为输入值。
基于如图40所示的像素,可如下计算每个滤波器抽头的垂直边缘梯度:
Ev0=abs(P0-P1) (39)
Ev1=abs(P1-P2) (40)
Ev2=abs(P2-P3) (41)
Ev3=abs(P3-P4) (42)
边缘梯度Ev0-Ev5于是可由垂直滤波器利用,以使用如下所示的公式43来确定垂直滤波输出Pvert:
Pvert=C0×[(Ev1>vertTh[c])?P2:(Ev0>vertTh[c])?P1:P0]+
C1×[(Ev1>vertTh[c])?P2:P1]+
C2×P2+ (43)
C3×[(Ev2>vertTh[c])?P2:P3]+
C4×[(Ev2>vertTh[c])?P2:(Eh3>vertTh[c])?P3:P4],
其中vertTh[c]是用于每个颜色分量c(例如R、B、Gr和Gb)的垂直边缘阈值,并且其中C0-C4分别是对应于图40中的像素P0-P4的滤波器抽头系数。垂直滤波输出Pvert可被应用到中心像素P2的位置。在一个实施例中,滤波器抽头系数C0-C4可以是16位二进制补码值,其具有3个整数位和13个分数位(3.13浮点)。此外,应当注意的是滤波器抽头系数C0-C4不是必须要关于中心像素P2对称。
另外,关于边界条件,当邻近像素在原始帧154(图9)之外时,使用在原始帧的边缘处的相同颜色像素的值来复制边界外像素的值。该约定可对水平和垂直滤波操作两者实施。作为示例,再次参考图39,在水平滤波的情况下,如果像素P2是位于原始帧最左边的边缘像素,并且像素P0和P1处于原始帧之外,则使用像素P2的值来代替像素P0和P1的值以用于水平滤波。
再次参考回图33中所示的原始处理逻辑414的方框图,降噪逻辑446的输出被随后发送到镜头明暗校正(LSC)逻辑448以供处理。如上所讨论的,镜头明暗校正技术可包括逐像素应用合适的增益以补偿光强度的衰落,该光强度的衰落可能是由镜头的几何光学、制造缺陷、微镜头阵列和颜色阵列滤波器之间的未对准等导致的。此外,在一些镜头中的红外(IR)滤波器也可导致衰落取决于发光体,并且于是镜头明暗增益可以取决于检测到的光源而被修改。
在所描绘的实施例中,ISP流水82的LSC逻辑448可以按照类似的方式来实现,并且于是一般地提供与以上参考图23-31所讨论的ISP前端块80的LSC逻辑308相同的功能。因此,为了避免冗余,应当理解的是此处例示实施例的LSC逻辑448被配置为以与LSC逻辑304大体相同的方式操作,因此在此将不再重复以上提供的对镜头明暗校正技术的描述。然而,为了一般性地总结,应当理解的是LSC逻辑448可以独立地处理原始像素数据流的每个颜色分量以确定将应用到当前像素的增益。依照以上所述的实施例,可基于跨成像帧分布的一组定义的增益栅格点来确定镜头明暗校正增益,其中由多个像素(例如8个像素,16个像素等)来定义每个栅格点之间的间隔。如果当前像素的位置对应于栅格点,则将关联于该栅格点的增益值应用到当前像素。然而,如果当前像素的位置在栅格点之间(例如图26的G0、G1、G2和G3),则可通过对当前像素位于其间的栅格点进行内插来计算LSC增益值(等式11a和11b)。该处理由图27的处理380所描绘。此外,如参考图25所提及的,在一些实施例中,栅格点可被非均匀地分布(例如对数分布),使得栅格点在LSC区域354的中心较不集中,而是朝向LSC区域354的各角(通常在那里镜头明暗失真更容易被察觉)更为集中。
另外,如参考图30和31所讨论的,LSC逻辑448还可与栅格增益值一起应用径向增益分量。径向增益分量可基于当前像素与图像的中心像素的距离来确定(等式12-14)。如所述的,使用径向增益允许对所有颜色分量使用单个共用增益栅格,这将大大地减少为每个颜色分量存储单独的增益栅格所需的总存储空间。栅格增益数据的这一减少可降低实现成本,因为栅格增益数据表会占据图像处理硬件中的存储器或芯片区域的很大一部分。
接着,再次参考图33的原始处理逻辑方框图414,LSC逻辑448的输出随后被传递到第二增益、偏移和钳位(GOC)块450。GOC逻辑450可在去马赛克(通过逻辑块452)之前被应用,并且可被用来对LSC逻辑448的输出执行自动白平衡。在所描绘的实施例中,GOC逻辑450可以按照与GOC逻辑442(和BLC逻辑306)相同的方式来实现。因此,依照以上的等式9,由GOC逻辑450接收到的输入首先被偏移一个带符号的值,随后乘以增益。结果值然后依照等式10被截短到最小值和最大值范围。
此后,GOC逻辑450的输出被转发到去马赛克逻辑452以供处理,从而基于原始拜耳输入数据产生全彩(RGB)图像。将明了的是,使用滤色器阵列(例如拜耳滤波器)的图像传感器的原始输出在以下意义上是“不完整的”:每个像素被滤波以仅获取单个颜色分量。因此仅为单个像素收集的数据不足以确定颜色。因此,去马赛克技术可被用来通过为每个像素内插缺失的颜色数据而从原始拜耳数据生成全彩图像。
现在参考图41,例示了提供关于可如何将去马赛克应用到原始拜耳图像模式532以产生全彩RGB的一般概观的图形处理流程530。如图所示,原始拜耳图像532的4×4部分534可包括用于每个颜色分量的分开的通道,包括绿色通道536、红色通道538和蓝色通道540。因为在拜耳传感器中的每个成像像素仅获取关于一种颜色的数据,所以每个颜色通道536、538和540的颜色数据是不完整的,其由符号“?”指示。通过应用去马赛克技术542,可以进行内插得到每个通道的缺失颜色样本。例如,如参考标记544所示,经内插得到的数据G’可被用来填充绿色颜色通道中的缺失样本,类似地,经内插得到的数据R’可(与经内插得到的数据G’544组合)被用来填充红色颜色通道546中的缺失样本,经内插得到的数据B’可(与经内插得到的数据G’544组合)被用来填充蓝色颜色通道548中的缺失样本。因此,作为去马赛克处理的结果,每个颜色通道(R、G、B)将具有一组完整的颜色数据,这些数据随后可被用来重构全彩RGB图像550。
现将依照一个实施例描述可由去马赛克逻辑452实现的去马赛克技术。在绿色颜色通道中,可对已知的绿色样本使用低通方向性滤波器并对相邻的颜色通道(例如红色和蓝色)使用高通(或梯度)滤波器来内插缺失的颜色样本。对于红色和蓝色颜色通道,可通过类似的方式来内插缺失的颜色样本,但是对已知的红色或蓝色值使用低通滤波并且对同一位置的(co-located)内插绿色值使用高通滤波。此外,在一个实施例中,对绿色颜色通道的去马赛克可利用基于初始拜耳颜色数据的5×5像素块边缘自适应滤波器。如以下将进一步讨论的那样,使用边缘自适应滤波器可提供以经水平和垂直滤波的值的梯度为基础的连续加权,这可减少传统去马赛克技术中常见的某些伪影的出现,例如混叠、“棋盘格”或“彩虹”伪影。
在对绿色通道去马赛克期间,使用拜耳图像模式的绿色像素(Gr和Gb像素)的初始值。然而,为了获得用于绿色通道的一组完整数据,可在拜耳图像模式的红色和蓝色像素处内插绿色像素值。依照本技术,基于上述的5×5像素块,首先在红色和蓝色像素处计算分别被称为Eh和Ev的水平和垂直能量分量。如以下将进一步讨论的那样,Eh和Ev的值可被用于获得来自水平和垂直滤波步骤的边缘加权的经滤波值。
作为示例,图42例示了对位于5×5像素块中心位置(j,i)的红色像素的Eh和Ev值的计算,其中j对应于行而i对应于列。如图所示,Eh的计算考虑了5×5像素块的中间三行(j-1,j,j+1),Ev的计算考虑了5×5像素块的中间三列(i-1,i,i+1)。为了计算Eh,将在红色列(i-2,i,i+2)中被乘上对应系数(例如-1用于列i-2和i+2,2用于列i)的像素的每一个的和的绝对值与在蓝色列(i-1,i+1)中被乘上对应系数(例如1用于列i-1,-1用于列i+1)的像素的每一个的和的绝对值相加。为了计算Ev,将在红色行(j-2,j,j+2)中被乘上对应系数(例如-1用于行j-2和j+2,2用于行j)的像素的每一个的和的绝对值与在蓝色行(j-1,j+1)中被乘上对应系数(例如1用于行j-1,-1用于行j+1)的像素的每一个的和的绝对值相加。这些计算可由以下的等式44和45所例示:
Eh=abs[2((P(j-1,i)+P(j,i)+P(j+1,i))– (44)
(P(j-1,i-2)+P(j,i-2)+P(j+1,i-2))–
(P(j-1,i+2)+P(j,i+2)+P(j+1,i+2)]+
abs[(P(j-1,i-1)+P(j,i-1)+P(j+1,i-1))–
(P(j-1,i+1)+P(j,i+1)+P(j+1,i+1)]
Ev=abs[2(P(j,i-1)+P(j,i)+P(j,i+1))– (45)
(P(j-2,i-1)+P(j-2,i)+P(j-2,i+1))–
(P(j+2,i-1)+P(j+2,i)+P(j+2,i+1]+
abs[(P(j-1,i-1)+P(j-1,i)+P(j-1,i+1))–
(P(j+1,i-1)+P(j+1,i)+P(j+1,i+1)]
因此,总能量和可被表达为:Eh+Ev。此外,虽然如图42所示的例子例示了对于在(j,i)的红色中心像素的Eh和Ev的计算,但应当理解的是可以通过类似的方式确定用于蓝色中心像素的Eh和Ev值。
接着,水平和垂直滤波可被应用到拜耳模式以获得经垂直和水平滤波的值Gh和Gv,其分别可表示在水平和垂直方向上的内插的绿色值。除了使用相邻颜色(R和B)的方向性梯度以在缺失的绿色样本的位置处获得高频信号之外,还可对已知的邻近绿色样本使用低通滤波器,从而确定经滤波的值Gh和Gv。例如,参考图43,现将例示用于确定Gh的水平内插的例子。
如图43所示,可以在确定Gh时考虑拜耳图像的红色行552的五个水平像素(R0、G1、R2、G3和R4),其中假设R2是位于(j,i)的中心像素。分别关联于这五个像素的滤波系数由参考标记554指示。因此,可以如下确定用于中心像素R2的、被称为G2’的绿色值的插值:
于是可以利用多种数学运算来产生如以下等式47和48所示的G2’的表达式:
因此,参考图43和以上的等式46-48,可以导出用于在(j,i)处的绿色值的水平插值的一般表达式:
可以通过与Gh类似的方式来确定垂直滤波分量Gv。例如,参考图44,在确定Gv时考虑拜耳图像的红色列556的五个垂直像素(R0、G1、R2、G3和R4)以及它们各自的滤波系数558,其中假设R2是位于(j,i)处的中心像素。在垂直方向上,对已知的绿色样本使用低通滤波,对红色通道使用高通滤波,可以导出如下用于Gv的表达式:
虽然此处所讨论的例子已经示出了对红色像素进行绿色值的内插,但应当理解的是,等式49和50中阐述的表达式还可被用于对蓝色像素进行绿色值的水平和垂直内插。
可通过使用如上讨论的能量分量(Eh和Ev)对水平和垂直滤波器输出(Gh和Gv)进行加权来确定用于中心像素(j,i)的最终的内插绿色值G’,以产生如下等式:
如上所述,能量分量Eh和Ev可提供水平和垂直滤波器输出Gh和Gv的边缘自适应加权,这可有助于减少重构的RGB图像中的图像伪影,例如彩虹、混叠或棋盘格伪影。另外,去马赛克逻辑452可提供通过将Eh和Ev值分别设为1来旁路边缘自适应加权特征的可选项,使得Gh和Gv被相等地加权。
在一个实施例中,如上述等式51所示的水平和垂直加权系数可被量化,以将加权系数的精度降低到一组“粗略”值。例如,在一个实施例中,加权系数可被量化为八个可能的权重比率:1/8、2/8、3/8、4/8、5/8、6/8、7/8和8/8。其他实施例可将加权系数量化为16个值(例如1/16至16/16),32个值(1/32至32/32)等。可以明了的是,当与使用全精度值(例如32位浮点值)相比较时,加权系数的量化可降低在确定加权系数并将其应用到水平和垂直滤波器输出的情况下的实现复杂度。
在其他实施例中,除了确定和使用水平和垂直能量分量以将加权系数应用到经水平(Gh)和垂直(Gv)滤波的值之外,此处公开的技术还可在正对角和负对角方向上确定和利用能量分量。例如,在这样的实施例中,也可将滤波应用到正对角和负对角方向。滤波器输出的加权可包括选择两个最高能量分量,以及使用所选择的能量分量来加权它们各自的滤波器输出。例如,假设两个最高能量分量对应于垂直和正对角方向,则垂直和正对角能量分量被用来加权垂直和正对角滤波器输出以确定内插的绿色值(例如在拜耳模式中的红色或蓝色像素位置处)。
接着,可通过在拜耳图像模式的绿色像素处内插红色和蓝色值、在拜耳图像模式的蓝色像素处内插红色值和在拜耳图像模式的红色像素处内插蓝色值,而执行对红色和蓝色颜色通道的去马赛克。依照此处讨论的技术,可通过使用基于已知的邻近红色和蓝色像素的低通滤波和基于相同位置的绿色像素值(取决于当前像素的位置,其可能是初始值或内插的值(来自上述的绿色通道去马赛克处理))的高通滤波,来内插缺失的红色和蓝色像素值。因此,关于这个实施例,应当理解的是可以首先执行缺失的绿色值的内插,以使得在内插缺失的红色和蓝色样本时可以使用完整的绿色值集合(初始值和内插值两者)。
可参考图45来描述红色和蓝色像素值的内插,图45表示拜耳图像模式的可对其应用红色和蓝色去马赛克的各种3×3块,以及在对绿色通道去马赛克期间已经获得的内插绿色值(表示为G’)。首先参考块560,可如下确定用于Gr像素(G11)的内插红色值R’11:
其中G’10和G’12表示内插绿色值,如参考标记568所示。同样地,可如下确定用于Gr像素(G11)的内插蓝色值B’11:
其中G’01和G’21表示内插绿色值(568)。
接着,参考像素块562,其中中心像素是Gb像素(G11),可根据以下所示的等式54和55来确定内插的红色值R’11和蓝色值B’11:
此外,参考像素块564,可如下确定对蓝色像素B11进行的红色值的内插:
其中,G’00、G’02、G’11、G’20和G’22表示内插绿色值,如参考标记570所示。最后,如像素块566所示,可如下计算对红色像素进行的蓝色值的内插:
虽然以上所讨论的实施例依赖于颜色差(例如梯度)来确定红色和蓝色内插值,另一个实施例可使用颜色比值来提供内插的红色和蓝色值。例如,内插的绿色值(块568和570)可被用来获得在拜耳图像模式的红色和蓝色像素位置处的颜色比值,并且这些比值的线性内插可被用来确定用于缺失的颜色样本的内插颜色比值。将可以是内插值或初始值的绿色值与内插颜色比值相乘以获得最终的内插颜色值。例如,可依照以下公式来执行使用颜色比值的红色和蓝色像素值的内插,其中等式58和59表示用于Gr像素的红色和蓝色值的内插,等式60和61表示用于Gb像素的红色和蓝色值的内插,等式62表示对蓝色像素进行的红色值的内插,等式63表示对红色像素进行的蓝色值的内插:
(当G11是Gr像素时内插的R’11)
(当G11是Gr像素时内插的B’11)
(当G11是Gb像素时内插的R’11)
(当G11是Gb像素时内插的B’11)
(对蓝色像素B11内插的R’11)
(对红色像素R11内插的B’11)
一旦为来自拜耳图像模式的每个图像像素内插了缺失的颜色样本,可将用于红色、蓝色和绿色颜色通道(例如图41中的544、546和548)的每一个的颜色值的完整样本组合在一起以生成全彩RGB图像。例如,回去参考图32和33,原始像素处理逻辑414的输出424可以是以8、10、12或14位格式的RGB图像信号。
现在参考图46-49,其表示依照公开的实施例的描述用于对原始拜耳图像模式去马赛克的处理的多种流程图。特别地,图46的处理572描述对于给定的输入像素P,确定哪些颜色分量将被内插。基于处理572的确定,可以执行(例如通过去马赛克逻辑452)用于内插绿色值的处理584(图47)、用于内插红色值的处理596(图48)或用于内插蓝色值的处理608(图49)中的一个或多个。
从图46开始,当接收到输入像素P时,处理572从步骤574开始。判定逻辑576确定输入像素的颜色。例如,这可能取决于位于拜耳图像模式内的像素的位置。因此,如果P被识别为绿色像素(例如Gr或Gb),处理器572进行到步骤578以获得用于P的内插红色和蓝色值。这可包括,例如分别继续到图48和49的处理596和608。如果P被识别为红色像素,则处理572进行到步骤580以获得用于P的内插绿色和蓝色值。这可包括进一步分别执行图47和49的处理584和608。另外,如果P被识别为蓝色像素,则处理572进行到步骤582以获得用于P的内插绿色和红色值。这可包括进一步分别执行图47和48的处理584和596。以下将进一步讨论处理584、596和608的每一个。
图47表示用于确定输入像素P的内插绿色值的处理584,其包括步骤586-594。在步骤586,接收到输入像素P(例如来自处理572)。接着,在步骤588,识别形成5×5像素块的邻近像素集合,其中P处于该5×5块的中心。此后,在步骤590分析该像素块以确定水平和垂直能量分量。例如,可依照用于计算Eh和Ev的等式44和45来分别确定水平和垂直能量分量。如上所述,能量分量Eh和Ev可被用作加权系数以提供边缘自适应滤波,从而在最终图像中降低特定去马赛克伪影的出现。在步骤592,将低通滤波和高通滤波应用到水平和垂直方向上以确定水平和垂直滤波输出。例如,可依照等式49和50来计算水平和垂直滤波输出Gh和Gv。接着,处理572继续到步骤594,如等式51所示,其基于使用能量分量Eh和Ev加权后的Gh和Gv的值来进行内插以得到内插绿色值G’。
接着,关于图48的处理596,红色值的内插开始于步骤598,其接收输入像素P(例如来自处理572)。在步骤600,识别形成3×3像素块的邻近像素集合,其中P处于该3×3像素块的中心。此后,在步骤602,将低通滤波应用到该3×3块内的邻近红色像素,将高通滤波应用到(步骤604)相同位置的绿色邻近值(其可能是由拜耳图像传感器捕捉的初始绿色值或内插的值(例如通过图47的处理584确定的))。如步骤606所示,可基于低通和高通滤波输出来确定用于P的内插红色值R’。基于P的颜色,可依照等式52、54或56中的一个来确定R’。
关于蓝色值的内插,可以应用图49的处理608。其步骤610和612与处理596(图48)的步骤598和600大体相同。在步骤614,将低通滤波应用到3×3块内的邻近蓝色像素,在步骤616,将高通滤波应用到相同位置的绿色邻近值(其可能是由拜耳图像传感器捕捉的初始绿色值或内插的值(例如通过图47的处理584确定的))。如步骤618所示,可基于低通和高通滤波输出来确定用于P的内插蓝色值B’。基于P的颜色,可依照等式53、55或57中的一个来确定B’。此外,如上所述,可使用颜色差(等式52-57)或颜色比值(等式58-63)来确定红色和蓝色值的内插。同样,应当理解的是可首先执行缺失的绿色值的内插,这样当内插缺失的红色和蓝色样本时可以使用绿色值的完整集合(初始的和内插的值两者)。例如,在分别执行图48和49的处理596和608之前可应用图47的处理584以内插所有缺失的绿色颜色样本。
参考图50-53,其提供了由ISP流水82中的原始像素处理逻辑414处理的图像的有色图的例子。图50表示可由成像设备30的图像传感器90捕捉的初始图像场景620。图51示出可表示由图像传感器90捕捉的原始像素数据的原始拜耳图像622。如上所述,传统的去马赛克技术可能无法提供基于图像数据中对边缘(例如在两个或更多个颜色区域之间的边界)的检测的自适应滤波,这可能在得到的重构全彩RGB图像中产生不期望的伪影。例如,图52表示使用传统去马赛克技术来重构的RGB图像624,其可能包括伪影,例如在边缘628处的“棋盘格”伪影626。然而,将图像624与图53的RGB图像630相比较,图53可以是使用以上描述的去马赛克技术来重构的图像的一个例子,可见在图52中出现的棋盘格伪影626不再出现,或者至少在边缘628处充分降低了伪影的外观。因此,如图50-53所示的图像旨在图示出此处公开的去马赛克技术相对于传统方法的至少一个优点。
回去参考图32,现在已经彻底地描述了原始像素处理逻辑414的操作,其可输出RGB图像信号424,本讨论现在将关注于描述由RGB处理逻辑416对RGB图像信号424的处理。如图所示,RGB图像信号424可被发送到选择逻辑428和/或存储器108。RGB处理逻辑416可接收输入信号430,输入信号430可以是来自信号424或来自存储器108的如信号426所示的RGB图像数据,这取决于选择逻辑428的配置。可通过RGB处理逻辑416来处理RGB图像数据430以执行包括颜色校正(例如使用颜色校正矩阵)的颜色调整操作、用于自动白平衡的颜色增益的应用以及全局色调映射等。
图54表示用于描述RGB处理逻辑416的一个实施例的更详细视图的方框图。如图所示,RGB处理逻辑416包括增益、偏移和钳位(GOC)逻辑640,RGB颜色校正逻辑642,GOC逻辑644,RGB伽马调整逻辑和颜色空间变换逻辑648。输入信号430首先被增益、偏移和钳位(GOC)逻辑640接收。在所示的实施例中,在颜色校正逻辑642执行处理之前,GOC逻辑640可应用增益以在R、G或B颜色通道的一个或多个上执行自动白平衡。
GOC逻辑640可与原始图像处理逻辑414的GOC逻辑442类似,除了处理的是RGB域的颜色分量而不是拜耳图像数据的R、B、Gr和Gb分量。在操作中,如以上的等式9所示,首先使用带符号的值O[c]来偏移当前像素的输入值,接着将其乘上增益G[c],其中c表示R、G和B。如上所述,增益G[c]可以是16位的无符号数,其具有2个整数位和14个分数位(例如2.14浮点表示),可预先在统计处理期间(例如在ISP前端块80)确定增益G[c]的值。接着依照等式10将计算得到的像素值Y(基于等式9)截短到最小值和最大值范围。如上所述,变量min[c]和max[c]分别表示用于最小和最大输出值的带符号的16位“截短值”。在一个实施例中,GOC逻辑640还可被配置为为每个颜色分量R、G和B保存分别在最大值之上和在最小值之下而被截短的像素的数量的计数。
接着GOC逻辑640的输出被转发到颜色校正逻辑642。依照此处公开的技术,颜色校正逻辑642可被配置为使用颜色校正矩阵(CCM)而应用颜色校正到RGB图像数据。在一个实施例中,CCM可以是3×3RGB变换矩阵,尽管其他实施例还可以利用其他尺寸的矩阵(例如4×3等)。因此,可如下的表示对具有R、G和B分量的输入像素执行颜色校正的处理:
其中R、G和B表示输入像素的当前红色、绿色和蓝色值,CCM00-CCM22表示颜色校正矩阵的系数,以及R’、G’和B’表示输入像素的校正后的红色、绿色和蓝色值。因此,可依照以下的等式65-67来计算校正颜色值:
R'=(CCM00×R)+(CCM01×G)+(CCM02×B) (65)
G'=(CCM10×R)+(CCM11×G)+(CCM12×B) (66)
B'=(CCM20×R)+(CCM21×G)+(CCM22×B) (67)
如上所述,可以在ISP前端块80的统计处理期间确定CCM的系数(CCM00-CCM22)。在一个实施例中,可以选择用于给定颜色通道的系数,以使得这些系数(例如用于红色颜色校正的CCM00、CCM01和CCM02)之和等于1,这可有助于维持明亮度和颜色平衡。此外,系数通常被选择为使得正增益将被应用到要被校正的颜色。例如,对于红色颜色校正,系数CCM00可以大于1,而系数CCM01和CCM02的一个或两个可小于1。通过这样的方式来设置系数可以增强在得到的经校正的R’值中的红色(R)分量,同时减弱蓝色(B)和绿色(G)分量。将明了的是,这可以应对在获取初始拜耳图像期间可能发生的颜色重叠的问题,这一问题是因为用于特定颜色像素的经滤波的光的一部分可能“渗透”(bleed)到不同颜色的邻近像素中。在一个实施例中,CCM的系数可被提供为16位的二进制补码数,其具有4个整数位和12个分数位(表示为4.12浮点)。另外,如果该值超过最大值或小于最小值,颜色校正逻辑642可提供对计算出的经校正颜色值的截短。
接着将RGB颜色校正逻辑642的输出传递给另一个GOC逻辑块644。GOC逻辑644可以按照跟GOC逻辑640相同的方式来实现,因此,这里不再重复对增益、偏移和钳位功能的详细描述。在一个实施例中,在颜色校正之后应用GOC逻辑644可提供基于校正后的颜色值的图像数据的自动白平衡,并且其还可以调整红色与绿色比以及蓝色与绿色比的传感器变化。
接着,GOC逻辑644的输出被发送到RGB伽马调整逻辑646以供进一步处理。例如,RGB伽马调整逻辑646可提供伽马校正、色调映射、直方图匹配等。依照公开的实施例,伽马调整逻辑646可将输入RGB值映射成相应的输出RGB值。例如,伽马调整逻辑可提供包括三个查找表的集合,每个表用于R、G和B分量的一个。作为示例,每个查找表可被配置为存储10位值的256个条目,每个值表示一个输出等级。表条目可均匀的分布在输入像素值的范围内,从而当输入值落入在两个条目之间时,可进行线性内插得到输出值。在一个实施例中,可复制用于R、G和B的三个查找表的每一个,以使得查找表被“双重缓存”于存储器中,从而允许在处理期间使用一个表时还能对其拷贝进行更新。基于以上所述的10位输出值,应当注意的是通过本实施例中的伽马校正处理,14位RGB图像信号将被有效地下采样至10位。
伽马调整逻辑646的输出可被发送到存储器108和/或颜色空间变换逻辑648。颜色空间变换(CSC)逻辑648可被配置为将来自伽马调整逻辑646的RGB输出变换到YCbCr格式,其中Y表示亮度分量,Cb表示蓝色差色度分量,Cr表示红色差色度分量,由于在伽马调整操作期间执行了将RGB数据从14位变换为10位的位深变换,以上这些分量都可以是10位格式。如上所述,在一个实施例中,伽马调整逻辑646的RGB输出可被下采样到10位,并通过CSC逻辑648将其变换到10位YCbCr值,接着可将10位YCbCr值转发到以下将进一步描述的YCbCr处理逻辑418。
可使用颜色空间变换矩阵(CSCM)来执行从RGB域到YCbCr颜色空间的变换。例如,在一个实施例中,CSCM可以是3×3变换矩阵。可依照已知的变换等式,例如BT.601和BT.709标准,来设置CSCM的系数。另外,CSCM系数可灵活地基于期望的输入和输出的范围。因此,在一些实施例中,可基于在ISP前端块80中的统计处理期间收集的数据来确定和编程CSCM系数。
用于对RGB输入像素执行YCbCr颜色空间变换的处理可如下表示:
其中R、G和B表示输入像素的10位格式的当前红色、绿色和蓝色值(例如通过伽马调整逻辑646的处理),CSCM00-CSCM22表示颜色空间变换矩阵的系数,Y、Cb和Cr表示得到的输入像素的亮度和色度分量。因此,可依照以下的等式69-71来计算Y、Cb和Cr的值:
Y=(CSCM00×R)+(CSCM01×G)+(CSCM02×B) (69)
Cb=(CSCM10×R)+(CSCM11×G)+(CSCM12×B) (70)
Cr=(CSCM20×R)+(CSCM21×G)+(CSCM22×B) (71)
如以下将讨论的,在颜色空间变换操作之后,得到的YCbCr值可从CSC逻辑648输出作为信号432,其可由YCbCr处理逻辑418处理。
在一个实施例中,CSCM的系数可以是16位的二进制补码数,其具有4个整数位和12个分数位(4.12)。在另一个实施例中,CSC逻辑648可进一步被配置为应用偏移量到Y、Cb和Cr值的每一个,并将结果值截短到最小和最大值。仅作为示例,假设YCbCr值是10位格式,偏移量可在-512至512的范围内,并且最小和最大值可以分别是0和1023。
再次参考图32中的ISP流水逻辑82的方框图,YCbCr信号432可被发送到选择逻辑436和/或存储器108。YCbCr处理逻辑418可接收输入信号438,其可以是来自信号432或来自存储器108的如信号434所示的YCbCr图像数据,这取决于选择逻辑436的配置。接着可通过YCbCr处理逻辑418来处理YCbCR图像数据438以执行亮度锐化,色度抑制,色度降噪,以及亮度、对比度和颜色调整等。此外,YCbCr处理逻辑418可提供在水平和垂直方向上对经处理的图像数据的伽马映射和缩放。
图55表示描述YCbCr处理逻辑418的一个实施例的更详细的视图的方框图。如图所示,YCbCr处理逻辑418包括图像锐化逻辑660,用于调整亮度、对比度和/或颜色的逻辑662,YCbCr伽马调整逻辑664,色度抽选逻辑668以及缩放逻辑670。YCbCr处理逻辑418可被配置为使用1平面、2平面或3平面存储器配置来处理4:4:4、4:2:2或4:2:0格式的像素数据。此外,在一个实施例中,YCbCr输入信号438可提供10位值的亮度和色度信息。
将明了的是,提到1平面、2平面或3平面,指的是在图片存储器中利用的成像平面的数量。例如,在3平面格式中,Y、Cb和Cr分量的每一个都可利用单独的各自的存储器平面。在2平面格式中,第一平面可被提供给亮度分量(Y),并且交织Cb和Cr样本的第二平面可被提供给色度分量(Cb和Cr)。在1平面格式中,存储器中的单个平面以亮度和色度样本相交织。此外,关于4:4:4、4:2:2和4:2:0格式,可以明了的是4:4:4格式表示以相同的速率对三个YCbCr分量中的每一个进行采样的采样格式。在4:2:2格式中,以亮度分量Y的采样率的一半对色度分量Cb和Cr进行亚采样,从而将色度分量Cb和Cr的分辨率在水平方向上降低一半。同样的,4:2:0格式在垂直和水平方向上都亚采样色度分量Cb和Cr。
YCbCr信息的处理可发生在源缓冲器内定义的活动的源区域中,其中该活动源区域包含“有效的”像素数据。例如,参考图56,其表示在其内定义了活动源区域678的源缓冲器676。在所示的例子中,源缓冲器可表示提供10位值的源像素的4:4:4的1平面格式。可分别地为亮度(Y)样本和色度样本(Cb和Cr)来指定活动源区域678。因此,应当理解的是活动源区域678可实际上包括用于亮度和色度样本的多个活动源区域。可基于从源缓冲器的基地址(0,0)680偏移的偏移量而确定用于亮度和色度的活动源区域678的起点。例如,可通过相对于基地址680的x偏移量686和y偏移量690来定义用于亮度活动源区域的开始位置(Lm_X,Lm_Y)682。同样的,可通过相对于基地址680的x偏移量688和y偏移量692来定义用于色度活动源区域的开始位置(Ch_X,Ch_Y)684。应当注意的是,在本例子中,分别用于亮度和色度的y偏移量688和692可以相等。基于开始位置682,可通过宽度694和高度696来定义亮度活动源区域,宽度694和高度696可分别表示在x和y方向上的亮度样本的数量。另外,基于开始位置684,可通过宽度698和高度700来定义色度活动源区域,宽度698和高度700可分别表示在x和y方向上的色度样本的数量。
图57进一步提供了表示可如何在2平面格式中确定用于亮度和色度样本的活动源区域的例子。例如,如图所示,可在第一源缓冲器676(具有基地址680)中通过由相对于开始位置682的宽度694和高度696所指定的区域来定义亮度活动源区域678。可在第二源缓冲器702(具有基地址680)中通过相对于开始位置684的宽度698和高度700所指定的区域来定义色度活动源区域704。
带着上述的思想回去参考图55,首先通过图像锐化逻辑660来接收YCbCr信号438。图像锐化逻辑660可被配置为执行图片锐化和边缘增强处理以增加图像中的纹理和边缘细节。将明了的是,图像锐化可提高所感知的图像分辨率。然而,通常希望图像中的现有噪声不被检测为纹理和/或边缘,从而在锐化处理期间不被放大。
依照本技术,图像锐化逻辑660可使用多尺度虚光蒙版滤波器对YCbCr信号的亮度(Y)分量执行图片锐化。在一个实施例中,可以提供具有不同尺度大小的两个或更多个低通高斯滤波器。例如,在提供了两个高斯滤波器的实施例中,从具有第二半径(y)的第二高斯滤波器的输出中减去具有第一半径(x)的第一高斯滤波器的输出(例如高斯模糊)以生成虚光蒙版,其中x大于y。还可通过从Y输入中减去高斯滤波器的输出来获得额外的虚光蒙版。在特定实施例中,该技术还可提供自适应核阈值(coring threshold)比较操作,可使用虚光蒙版来执行该操作,使得基于比较结果,可为基本图像增加增益量以生成最终输出,其中该基本图像可被选择为初始Y输入图像或高斯滤波器之一的输出。
参考图58,其表示依照此处公开的技术的实施例描述用于执行图像锐化的示例性逻辑710的方框图。逻辑710表示可被应用到输入亮度图像Yin的多尺度虚光蒙版。例如,如图所示,两个低通高斯滤波器712(G1)和714(G2)接收并处理Yin。在该例子中,滤波器712可以是3×3滤波器,滤波器714可以是5×5滤波器。然而应当明了的是,在其他实施例中,还可以使用包括不同尺度的滤波器的多于两个高斯滤波器(例如7×7,9×9等)。将明了的是,因为低通滤波处理,可将一般对应于噪声的高频分量从G1和G2的输出中移除以生成“虚光(unsharp)”图像(G1out和G2out)。如以下将讨论的,使用虚光输入图像作为基本图像将会允许降噪作为锐化滤波器的一部分。
可如下的定义3×3高斯滤波器712和5×5高斯滤波器714:
仅作为示例,在一个实施例中可如下的选择高斯滤波器G1和G2的值:
基于Yin、G1out和G2out可以生成三个虚光蒙版Sharp1、Sharp2和Sharp3。可通过从高斯滤波器712的虚光图像G1out中减去高斯滤波器714的虚光图像G2out而确定Sharp1。因为Sharp1本质上是两个低通滤波器之差,其可被称为“中间带(mid band)”蒙版,因为更高频率的噪声分量已从G1out和G2out虚光图像中被滤除了。另外,可通过从输入亮度图像Yin中减去G2out来计算Sharp2,从输入亮度图像Yin中减去G1out来计算Sharp3。如以下将描述的那样,可使用虚光蒙版Sharp1、Sharp2和Sharp3来应用自适应阈值核方案。
参考选择逻辑716,可基于控制信号UnsharpSel来选择基本图像。在所示的实施例中,基本图像可以是输入图像Yin或滤波输出G1out或G2out。将明了的是,当初始图像具有高噪声方差时(例如基本与信号方差一样高),使用初始图像Yin作为执行锐化的基本图像可能无法在锐化期间充分地降低噪声分量。因此,当在输入图像中检测到特定阈值的噪声含量时,选择逻辑716可被适配为选择已降低了包括噪声在内的高频含量的低通滤波输出G1out或G2out中的一个。在一个实施例中,可通过分析在ISP前端块80的统计处理期间获取的统计数据来确定图像的噪声含量,以确定控制信号UnsharpSel的值。作为示例,如果输入图像Yin具有低的噪声含量,从而在锐化处理的结果中表现出的噪声可能不会增加,则输入图像Yin可被选为基本图像(例如UnsharpSel=0)。如果输入图像Yin被确定为包含明显的噪声水平,从而锐化处理可能放大这些噪声,则可选择滤波后的图像G1out或G2out中的一个(例如分别地,UnsharpSel=1或2)。因此,通过应用用来选择基本图像的自适应技术,逻辑710实质上提供降噪功能。
接着,依照如上所述的自适应核阈值方案,可将增益应用到Sharp1、Sharp2或Sharp3蒙版中的一个或多个。接着,通过比较器块718、720和722,可将虚光值Sharp1、Sharp2和Sharp3与多个阈值SharpThd1、SharpThd2和SharpThd3(不必须是分别的)作比较。例如,Sharp1值总是在比较器块718中与SharpThd1作比较。关于比较器块720,阈值SharpThd2可与Sharp1或Sharp2作比较,这取决于选择逻辑726。例如,选择逻辑726可根据控制信号SharpCmp2的状态来选择Sharp 1或Sharp2(例如SharpCmp2=1选择Sharp1;SharpCmp2=0选择Sharp2)。例如,在一个实施例中,可根据输入图像(Yin)的噪声方差/含量来确定SharpCmp2的状态。
在所示的实施例中,一般优选的是设置SharpCmp2和SharpCmp3值以选择Sharp1,除非检测到图像数据具有相对低的噪声量。这是因为Sharp1作为高斯低通滤波器G1和G2的输出之差,其一般对噪声不太敏感,因此这可有助于降低在“嘈杂”图像数据中因噪声水平的波动而导致的SharpAmt1、SharpAmt2和SharpAmt3值的变化量。例如,如果初始图像具有高噪声方差,当使用固定阈值时,一些高频分量可能没被捕捉到,因此可能在锐化处理期间被放大。因此,如果输入图像的噪声含量高,则在Sharp2中可能会出现一些噪声含量。在这种情况下,可将SharpCmp2设为1以选择以上所述的中间带蒙版Sharp1,Sharp1由于是两个低通滤波器输出之差,所以具有降低的高频含量,并且因此对噪声不太敏感。
将明了的是,类似的操作可应用到选择逻辑724在SharpCmp3的控制下执行的Sharp1或Sharp3的选择。在一个实施例中,SharpCmp2和SharpCmp3被缺省的设置为1(例如使用Sharp1),并且仅在输入图像被识别为一般具有低噪声方差时被设为0。这实质上提供了一种自适应核阈值方案,其中比较值的选择(Sharp1、Sharp2或Sharp3)是基于输入图像的噪声方差而自适应的。
基于比较器块718、720和722的输出,可通过对基本图像(例如通过逻辑716选择的)应用增益虚光蒙版而确定经锐化的输出图像Ysharp。例如,首先参考比较器块722,SharpThd3与选择逻辑724提供的B输入作比较,B输入在这里被称为“SharpAbs”,并且基于SharpCmp3的状态而可能等于Sharp1或Sharp3。如果SharpAbs大于阈值SharpThd3,则将增益SharpAmt3应用到Sharp3,并且将结果值加到基本图像上。如果SharpAbs小于阈值SharpThd3,则可以应用衰减增益Att3。在一个实施例中,可如下的确定衰减增益Att3:
其中,SharpAbs是由选择逻辑724确定的Sharp1或Sharp3。可通过选择逻辑728基于比较器块722的输出来执行对加上了完整增益(SharpAmt3)或衰减增益(Att3)的基本图像的选择。将明了的是,衰减增益的使用可应对SharpAbs不大于阈值(例如SharpThd3),但是图像的噪声方差还是接近该给定阈值的情况。其可有助于降低在锐利和不锐利像素之间的显著的转变。例如,如果在这种情况下直接传递未使用衰减增益的图像数据,所得到的像素可能表现为缺陷像素(例如亮点)。
接着,对比较器块720也可应用类似的处理。例如,根据SharpCmp2的状态,选择逻辑726可提供Sharp1或Sharp2作为到比较器块720的输入以与阈值SharpThd2作比较。如上所述,根据比较器块720的输出,将增益SharpAmt2或基于SharpAmt2的衰减增益Att2应用到Sharp2,并将其加入到以上所述选择逻辑728的输出。将明了的是,可以按照与以上的等式72类似的方式来计算衰减增益Att2,不同之处在于对SharpAbs应用的是增益SharpAmt2和阈值SharpThd2,其中SharpAbs可被选择为Sharp1或Sharp2。
此后,增益SharpAmt1或衰减增益Att1被应用到Sharp1,并且将结果值加上选择逻辑730的输出以生成锐化的像素输出Ysharp。可基于比较Sharp1和阈值SharpThd1的比较器块718的输出来确定是应用增益SharpAmt1还是应用衰减增益Att1这一选择。同样,可通过与以上的等式72类似的方式来确定衰减增益Att1,不同之处在于对Sharp1应用的是增益SharpAmt1和阈值SharpThd1。使用三个蒙版中的每一个进行缩放所得到锐化像素值被增加到输入像素Yin中以生成锐化的输出Ysharp,在一个实施例中,可将锐化的输出Ysharp截短到10位(假设YCbCr处理以10位精度进行)。
将明了的是,当与传统虚光蒙版技术相比时,本公开中所阐述的图像锐化技术可以提供纹理和边缘的增强,同时还降低输出图像中的噪声。特别是,本技术可以很好地适用于使用例如CMOS图像传感器捕捉的图像(例如在低光照条件下使用集成在便携式设备(例如移动电话)中的低分辨率相机所拍摄的图像)具有较差信噪比的应用。例如,当噪声方差与信号方差可比时,对于锐化使用固定阈值是困难的事,因为一些噪声分量会与纹理和边缘一起被锐化。因此如上所述,此处所提供的技术可使用多尺度高斯滤波器来将噪声从输入图像中滤除,以从虚光图像(例如G1out和G2out)中提取特征,从而提供降低了噪声含量的锐化图像。
在继续之前,应当理解的是所示的逻辑710仅旨在提供本技术的一个示例性实施例。在其他实施例中,图像锐化逻辑660可以提供额外的或更少的特征。例如,在一些实施例中,逻辑710可简单的传输基本值而不是应用衰减增益。另外,一些实施例可以不包括选择逻辑块724、726或716。例如,比较器块720和722可分别简单地接收Sharp2和Sharp3的值,而不是分别接收来自选择逻辑块724和726的选择输出。虽然这些实施例可能没有提供如同图58所示的实施方式一样鲁棒的用于锐化和/或降噪特征,应当明了的是这样的设计选择是成本和/或商业相关限制的结果。
在本实施例中,一旦获得了锐化的图像输出YSharp,图像锐化逻辑660还可提供边缘增强和色度抑制特征。以下将讨论这些附加特征的每一个。首先参考图59,其表示依照一个实施例的可在图58所示的锐化逻辑710的下游实现的用于执行边缘增强的示例性逻辑738。如图所示,通过Sobel滤波器740来处理初始输入值Yin以进行边缘检测。Sobel滤波器740可基于初始图像的3×3像素块(称为“A”)(其中Yin是该3×3块的中心像素)来确定梯度值YEdge。在一个实施例中,Sobel滤波器740可通过对初始图像数据进行卷积以检测水平和垂直方向上的变化来计算YEdge。该处理如以下的等式73-75所示:
Gx=Sx×A, (73)
Gy=Sy×A, (74)
YEdge=Gx×Gy, (75)
其中Sx和Sy分别表示用于在水平和垂直方向上的梯度边缘强度检测的矩阵算子,以及其中Gx和Gy分别表示包含水平和垂直变化导数的梯度图像。因此可由Gx和Gy的乘积来确定输出YEdge。
如以上图58中所述,接着选择逻辑744可以接收YEdge以及中间带Sharp1蒙版。基于控制信号EdgeCmp,在比较器块742中将Sharp1或YEdge与阈值EdgeThd相比较。例如可根据图像中的噪声含量来确定EdgeCmp的状态,从而提供用于边缘检测和增强的自适应核阈值方案。接着比较器块742的输出可被提供给选择逻辑746,并可应用完整增益或衰减增益。例如,当到比较器块742的所选择的B输入(Sharp1或YEdge)大于EdgeThd时,将YEdge乘上边缘增益EdgeAmt以确定将要应用的边缘增强的量。如果比较器块742的B输入小于EdgeThd,则可应用衰减边缘增益AttEdge以避免增强的边缘与初始像素之间的显著转变。将明了的是,可以通过与以上的等式72所示的类似的方式来计算AttEdge,但是其中EdgeAmt和EdgeThd被应用到“SharpAbs”,取决于选择逻辑744的输出,SharpAbs可以是Sharp1或YEdge。因此,使用增益(EdgeAmt)或衰减增益(AttEdge)而增强的边缘像素可被加入到YSharp(图58的逻辑710的输出)以获得边缘增强的输出像素Yout,在一个实施例中,Yout可被截短到10位(假设YCbCr处理以10位精度进行)。
关于由图像锐化逻辑660提供的色度抑制特征,这种特征可在亮度边缘处对色度进行衰减。一般来说,可通过应用小于1的色度增益(衰减因子)来执行色度抑制,该色度增益取决于从以上所述的亮度锐化和/或边缘增强步骤获得的值(YSharp,Yout)。作为示例,图60表示包括曲线752的图表750,曲线752表示可以为相应的经锐化的亮度值(YSharp)选择的色度增益。图750表示的数据可被实现为YSharp值和相应的在0和1之间的色度增益(衰减因子)的查找表。查找表被用来近似曲线752。对于同样位于查找表中的两个衰减因子之间的YSharp值,可对与位于当前YSharp值之上和之下的YSharp值相对应的两个衰减因子应用线性内插。此外,在其他实施例中,输入亮度值还可被选择为如以上图58所述的由逻辑710确定的Sharp1、Sharp2或Sharp3值中的一个,或者如图59所述的由逻辑738确定的YEdge值。
接着,通过亮度、对比度和颜色(BCC)调整逻辑662来处理图像锐化逻辑660(图55)的输出。图61表示BCC调整逻辑662的一个实施例的功能性方框图。如图所示,逻辑662包括明亮度和对比度处理块760、全局色相控制块762和饱和度控制块764。此处所示的实施例提供对10位精度的YCbCr数据的处理,尽管其他实施例可利用不同位深。以下讨论每个块760、762和764的功能。
首先参考明亮度和对比度处理块760,首先从亮度(Y)数据中减去偏移量YOffset以将黑度设为0。这是为了保证对比度调整不会改变黑度。接着,将亮度值乘上对比度增益值以应用对比度控制。作为示例,对比度增益值可以是包括2个整数位和10个分数位的12位无符号值,从而提供高达四倍于像素值的对比度增益范围。此后,可通过向亮度数据增加(或减去)明亮度偏移值来实现明亮度调整。作为示例,本实施例中的明亮度偏移量可以是具有-512至+512之间的范围的10位的二进制补码值。此外,应当注意的是,在对比度调整之后执行明亮度调整,以避免在改变对比度时发生DC偏移量的变化。此后,初始的YOffset被加回到调整后的亮度数据以重定位黑度。
块762和764提供基于Cb和Cr数据的色相特性的颜色调整。如图所示,首先从Cb和Cr数据中减去512的偏移量(假设是10位处理)以将范围大致定位到0。接着依照以下等式来调整色相:
Cbadj=Cb cos(θ)+Cr sin(θ), (76)
Cradj=Cr cos(θ)-Cb sin(θ), (77)
其中Cbadj和Cradj表示调整后的Cb和Cr值,以及其中θ表示色相角,可如下的计算得到θ:
以上操作都由全局色相控制块762内的逻辑来表示,并且可由以下矩阵运算来表示:
其中,Ka=cos(θ),Kb=sin(θ),θ在以上等式78中已定义。
接着,如饱和度控制块764所示,饱和度控制可被应用到Cbadj和Cradj值。在所示实施例中,通过为Cb和Cr值的每一个应用全局饱和度乘子和基于色相的饱和度乘子来执行饱和度控制。基于色相的饱和度控制可提高色彩的再现。颜色的色相可在YCbCr颜色空间中表示,如图62中的颜色轮图770所示。将明了的是,可通过将相同的颜色轮在HSV颜色空间(色相、饱和度和强度)中移位大约109度而导出YCbCr色调和饱和度颜色轮770。如图所示,图表770包括在范围0至1内的表示饱和度乘子(S)的圆周值,以及在0°至360°范围内的表示以上定义的θ的角度值。每个θ可表示一种不同的颜色(例如49°=品红,109°=红色,229°=绿色等)。可通过选择合适的饱和度乘子S来调整在特定色相角θ处的颜色的色相。
回去参考图61,色相角θ(在全局色相控制块762中计算得到的)可被用作用于Cb饱和度查找表766和Cr饱和度查找表768的索引。在一个实施例中,饱和度查找表766和768可包括256个在0-360°色相范围内均匀分布的饱和度值(例如第一个查找表条目在0°,最后一个条目在360°),并且可以通过对查找表中刚刚低于和高于当前色相角θ的饱和度值进行线性内插而确定给定像素处的饱和度值S。可通过将全局饱和度值(可以是用于Cb和Cr的每一个的全局对比度)乘上所确定的基于色相的饱和度值来获得用于Cb和Cr分量的每一个的最终饱和度值。因此,如基于色相的饱和度控制块764所示,可通过将Cbadj和Cradj乘上它们各自的最终饱和度值来确定最终校正的Cb’和Cr’值。
此后,BCC逻辑662的输出被传送到YCbCr伽马调整逻辑664,如图55所示。在一个实施例中,伽马调整逻辑664可提供Y、Cb和Cr通道的非线性映射功能。例如,输入Y、Cb和Cr值被映射到相应的输出值。再次,假设以10位来处理YCbCr数据,可以利用内插型10位256条目查找表。可以提供三个这样的查找表,每个用于Y、Cb和Cr信道之一。可均匀地分布256个条目的每一个,并且可通过对映射到刚刚在当前输入索引之上和之下的索引的输出值进行线性内插而确定输出。在一些实施例中,也可以使用具有1024个条目(对于10位数据)的非内插型查找表,但其可能具有高得多的存储器需求。将明了的是,通过调整查找表的输出值,YCbCr伽马调整功能可被用来执行特定图像滤波效果,例如黑白、褐色调、负片、过曝等。
接着,色度抽选逻辑668可将色度抽选应用到伽马调整逻辑664的输出。在一个实施例中,色度抽选逻辑668可被配置为执行水平抽选以将YCbCr数据从4:4:4格式转换为4:2:2格式,其中以亮度数据的速率的一半对色度(Cr和Cb)信息进行亚采样。仅作为示例,可通过对7个水平像素组成的集合应用7抽头低通滤波器(例如半带lanczos滤波器)来执行抽选,如下所示:
其中,in(i)表示输入像素(Cb或Cr),以及C0-C6表示7抽头滤波器的滤波系数。每个输入像素具有独立的滤波器系数(C0-C6)以允许为色度滤波样本应用灵活的相位偏移。
此外,在某些情况下,还可不使用滤波来执行色度抽选。当初始接收到的源图像是4:2:2格式,但其被上采样到了4:4:4格式以用于YCbCr处理时,这是有益的。在该情况下,得到的抽选的4:2:2图像与初始图像相同。
随后,在从YCbCr处理块418中输出之前,可使用缩放逻辑670来缩放从色度抽选逻辑668输出的YCbCr数据。缩放逻辑670的功能与如上参考图18所述的前端像素处理单元130的像素合并补偿滤波器182中的缩放逻辑292的功能类似。例如,缩放逻辑670可通过两个步骤来执行水平和垂直缩放。在一个实施例中,5抽头多相滤波器可被用于垂直缩放,9抽头多相滤波器可被用于水平缩放。多抽头多相滤波器可将从源图像中选择的像素乘上加权因子(例如滤波器系数),并且接着对输出求和以形成目的像素。可根据当前像素位置和滤波器抽头的数量来选择所选的像素。例如,对于垂直5抽头滤波器,可以选择在当前像素的每个垂直侧的两个邻近像素,对于水平9抽头滤波器,可以选择当前像素的每个水平侧的四个邻近像素。可由查找表提供滤波系数,并可通过当前的像素间分数位置来确定滤波系数。接着将缩放逻辑670的输出440从YCbCr处理块418输出。
回去参考图32,经处理的输出信号440可被发送到存储器108,或者可作为图像信号114从ISP流水处理逻辑82中输出给显示硬件(例如显示器28)以供用户观看,或输出给压缩引擎(例如编码器118)。在一些实施例中,图像信号114可在被解压缩和提供给显示器之前由图形处理单元和/或压缩引擎进一步处理并被存储。另外,还可提供一个或多个帧缓冲器以控制输出到显示器的图像数据的缓冲,特别是视频图像数据。
应当理解的是,此处仅以示例方式提供了以上所描述的各种图像处理技术及涉及的缺陷像素检测和校正、镜头明暗校正、去马赛克和图像锐化,等等。因此,应当理解的是本公开不应当被解释为仅限制于以上所提供的例子。实际上,此处描述的示例性逻辑可在其他实施例中经历多种变形和/或其他特征。此外,应当明了的是还可以通过任何合适的方式来实现以上所述的技术。例如可使用硬件(例如恰当配置的电路)、软件(通过包括存储在一个或多个有形计算机可读介质上的可执行代码的计算机程序),或者通过硬件和软件元素的组合来实现图像处理电路32的部件,尤其是ISP前端块80和ISP流水块82。
以上所描述的特定实施例仅是作为示例,应当理解的是这些实施例具有多种变形和替换形式。还应当理解的是权利要求不是旨在限制于此处公开的特定形式,而是旨在覆盖落入本公开的精神和范围内的所有修改、等同形式和替换。
Claims (30)
1.一种处理图像数据的方法,包括:
利用图像信号处理器进行以下操作:
接收图像数据的当前帧中具有空间位置的当前像素,其中该图像数据是利用图像传感器获取的;
至少部分基于来自图像数据的前一帧的同位置参考像素,确定当前像素的运动增量值;
基于该运动增量值和与当前像素的空间位置相对应但是来自前一帧的运动历史值,确定运动表查找索引;
利用运动表查找索引从运动表中选择第一滤波系数;
利用与当前像素相对应的明亮度值从亮度表中选择衰减因子;
基于所选择的衰减因子和第一滤波系数,确定第二滤波系数;以及
利用图像信号处理器的时域滤波器,基于同位置参考像素、当前像素和第二滤波系数,确定与当前像素相对应的时域滤波输出值。
2.如权利要求1所述的方法,包括利用图像信号处理器通过如下操作来确定与当前像素的空间位置相对应的运动历史值:
确定第一值,该第一值等于1与第一滤波系数之差;
确定第二值,该第二值等于第一值与来自前一帧的运动历史值的乘积;
将运动增量值与第二值求和。
3.如权利要求1所述的方法,其中确定运动增量值包括:
从当前帧中识别与当前像素具有相同颜色的像素集合并形成像素的二维阵列,其中当前像素位于该二维阵列的中心;
从前一帧中识别参考像素的集合,其中该参考像素的集合中的各个像素分别与当前帧中的所述像素集合中的相应像素位于相同位置;
为当前帧中的所述像素集合中的每个像素确定绝对增量,该绝对增量等于来自当前帧的像素的值与其对应的同位置参考像素之差的绝对值;
基于绝对增量,确定运动增量值。
4.如权利要求3所述的方法,其中确定运动增量值包括:
识别具有相同颜色值的三个水平相邻像素的集合,该集合包括当前像素、与当前像素的第一侧相邻的第二像素、和与当前像素的第二侧相邻的第三像素;
确定第一值,该第一值等于当前像素的值与来自前一帧的同位置参考像素的值之差的绝对值;
确定第二值,该第二值等于第二像素的值与来自前一帧的第二同位置参考像素的值之差的绝对值;以及
确定第三值,该第三值等于第三像素的值与来自前一帧的第三同位置参考像素的值之差的绝对值;
其中运动增量值被选择为所述第一值、第二值、第三值中的最大值。
5.如权利要求3所述的方法,其中所述图像数据包括拜耳原始图像数据,并且其中所述二维阵列内的每个像素在空间上位于在水平、垂直和对角方向上从当前像素离开两个像素位置。
6.如权利要求1所述的方法,其中运动表查找索引被计算为运动增量值与来自前一帧的运动历史值之和。
7.如权利要求1所述的方法,其中确定当前像素的时域滤波输出值包括:
确定当前像素的值与同位置参考像素的值之差;
将该差乘以第二滤波系数,以获得第一值;以及
将同位置参考像素的值与第一值相加,以确定当前像素的时域滤波输出值。
8.一种对图像数据进行时域滤波的方法,包括:
利用图像信号处理器进行以下操作:
接收图像数据的当前帧中具有空间位置的当前像素,其中该图像数据是利用图像传感器获取的并且包括两个或更多个颜色分量,每个颜色分量与一个相应的增益相关联;
至少部分基于来自图像数据的前一帧的同位置参考像素,确定当前像素的运动增量值;
基于与当前像素的颜色相对应的所选择的增益、该运动增量值和与来自前一帧的同位置参考像素相对应的运动历史值,确定运动表查找索引;
利用运动表查找索引从运动表中选择第一滤波系数;
通过将所选择的增益应用于当前像素的值并且使用增益后的当前像素的值作为用于从亮度表中选择衰减因子的亮度表查找索引,从亮度表中选择衰减因子;
通过将第一滤波系数与所选择的衰减因子相乘,确定第二滤波系数;以及
利用图像信号处理器的时域滤波器,基于参考像素的值、当前像素的值和第二滤波系数,确定与当前像素相对应的时域滤波输出值。
9.如权利要求8所述的方法,其中确定运动增量值包括:
从当前帧中识别与当前输入像素具有相同颜色的像素集合并形成像素的二维阵列,其中当前像素位于该二维阵列的中心;
从前一帧中识别参考像素的集合,其中该参考像素的集合中的各个像素分别与当前帧中的所述像素集合中的相应像素位于相同位置;
为当前帧中的所述像素集合中的每个像素确定绝对增量,该绝对增量等于来自当前帧的像素的值与其对应的同位置参考像素的值之差的绝对值;
确定运动增量值,该运动增量值是以下至少之一:各绝对增量的平均值,各绝对增量的最大值,或各绝对增量的中位值。
10.如权利要求9所述的方法,其中所述二维阵列包括与当前像素具有相同颜色值的三个水平相邻像素的集合,其中当前像素在空间上位于这三个水平相邻像素的集合的中心,并且其中,确定运动增量值包括:将运动增量值确定为第一值、第二值和第三值中的最大值,其中第一值等于当前像素的值与来自前一帧的同位置参考像素的值之差的绝对值,第二值等于当前帧中与当前像素水平相邻的第二像素的值与来自前一帧的对应的第二同位置参考像素的值之差的绝对值,第三值等于当前帧中与当前像素水平相邻的第三像素的值与来自前一帧的对应的第三同位置参考像素的值之差的绝对值。
11.如权利要求8所述的方法,包括通过以下步骤确定与当前像素的空间位置相对应的运动历史值:确定来自前一帧的运动历史值与运动增量值之差,将该差乘以第一滤波系数以获得一个乘积,以及将运动增量值与该乘积求和,其中对应于当前像素的运动历史值能够用于对图像数据的下一帧中的同位置像素应用时域滤波。
12.如权利要求8所述的方法,其中通过将运动增量值与来自前一帧的运动历史值之和乘以所选择的增益,来确定运动表查找索引。
13.如权利要求12所述的方法,其中通过将所选择的增益应用到当前像素来确定亮度查找索引。
14.如权利要求8所述的方法,其中确定当前像素的时域滤波输出值包括:
确定同位置参考像素的值与当前像素的值之差;
将该差乘以第二滤波系数,以获得第一值;以及
将当前像素的值与该乘积相加,以确定当前像素的时域滤波输出值。
15.如权利要求8所述的方法,其中用于图像数据的每个颜色分量的相应增益是基于白平衡增益来确定的。
16.一种图像信号处理系统,包括:
时域滤波器,用于对利用图像传感器获取的多颜色原始图像数据进行时域滤波,其中该时域滤波器被配置为:
接收来自原始图像数据的当前帧的当前像素,该当前像素具有特定颜色和在当前帧内的空间位置;
基于同位置参考像素,确定当前像素的运动增量值;
利用基于运动增量值确定的运动表查找索引、来自原始图像数据的前一帧的与所述同位置参考像素相对应的运动历史值、以及与当前像素的颜色相关联的增益,从运动表中选择第一滤波系数;
通过将与当前像素的颜色相关联的增益应用于当前像素的值,并将结果作为用于选择衰减因子的亮度表查找索引,从亮度表中选择用于当前像素的衰减因子;
将衰减因子与第一滤波系数的乘积确定为第二滤波系数;以及
基于同位置参考像素的值、当前像素的值和第二滤波系数,提供与当前像素相对应的时域滤波输出值。
17.如权利要求16所述的图像信号处理系统,其中时域滤波器被配置为通过确定同位置参考像素的值与当前像素的值之差,将该差乘以第二滤波系数以确定一个乘积,并将该乘积与当前像素的值求和,来提供时域滤波输出值。
18.如权利要求16所述的图像信号处理系统,其中时域滤波器是有限冲激响应(FIR)滤波器,并且其中,前一帧的同位置参考像素对应于由图像传感器获取的初始未滤波的图像数据。
19.如权利要求16所述的图像信号处理系统,其中时域滤波器是无限冲激响应(IIR)滤波器,并且其中,前一帧的同位置参考像素对应于先前由时域滤波器滤波后的时域滤波图像数据。
20.如权利要求16所述的图像信号处理系统,其中原始图像数据包括拜耳图像数据,并且其中,与当前像素的颜色相关联的增益是根据当前像素是否包括红色、蓝色或绿色像素来选择的。
21.一种电子设备,包括:
至少一个数字图像传感器;
被配置为与所述至少一个数字图像传感器通信的接口;
存储器设备;
显示设备,被配置为显示与所述至少一个数字图像传感器所获取的原始图像数据相对应的一个或多个图像场景的视觉表示;以及
成像信号处理系统,该成像信号处理系统包括:
运动表,被配置为存储一组滤波系数;
亮度表,被配置为存储一组明亮度衰减因子;和
时域滤波器,被配置为处理原始图像数据,以针对原始图像数据的当前帧中的具有特定颜色和空间位置的当前像素应用时域滤波,其中,通过以下操作来应用该时域滤波:基于来自原始图像数据的前一帧的同位置参考像素确定当前像素的运动增量值;利用基于运动增量值、来自原始图像数据的前一帧的与同位置参考像素相对应的运动历史值、和与当前像素的颜色相关联的增益而确定的第一查找索引,从存储在运动表中的所述一组滤波系数中选择第一滤波系数;利用通过将与当前像素的颜色相关联的增益应用到当前像素的值而确定的第二查找索引,从存储在亮度表中的所述一组明亮度衰减因子中选择明亮度衰减因子;将该衰减因子与第一滤波系数的乘积确定为第二滤波系数;以及基于同位置参考像素的值、当前像素的值和第二滤波系数,提供与当前像素相对应的时域滤波输出值。
22.如权利要求21所述的电子设备,其中时域滤波器被配置为向图像信号处理系统的图像处理流水线输出经时域滤波的原始图像数据。
23.如权利要求21所述的电子设备,其中所述至少一个数字图像传感器包括与该电子设备集成的数码相机、通过所述接口耦接到该电子设备的外部数码相机、或它们的某种组合。
24.如权利要求21所述的电子设备,其中所述接口包括移动工业处理器接口(MIPI)、标准移动成像架构(SMIA)接口、或它们的某种组合。
25.如权利要求21所述的电子设备,包括以下至少一个:桌上型计算机、膝上型计算机、平板计算机、移动蜂窝电话、便携式媒体播放器、或它们的任一组合。
26.一种对图像数据进行时域滤波的方法,包括:
利用图像信号处理器执行以下操作:
对于利用图像传感器获取的多颜色原始图像数据的当前帧中的具有空间位置的当前像素,至少部分基于来自该多颜色原始图像数据的前一帧的同位置参考像素,确定用于该当前像素的运动增量值;
基于当前像素的颜色,通过基于所述运动增量值和与当前像素的空间位置相对应但是来自前一帧的运动历史值确定运动表查找索引,并利用该运动表查找索引从运动表中选择第一滤波器系数,来确定第一滤波器系数;
基于当前像素的颜色,通过利用亮度表查找索引从亮度表中选择衰减因子,并将第一滤波系数与所选择的衰减因子相乘以确定第二滤波系数,来确定第二滤波系数;以及
基于参考像素的值、当前像素的值和第二滤波系数,确定与当前像素相对应的时域滤波输出值。
27.如权利要求26所述的方法,其中所述多颜色原始图像数据中的各个颜色分量共享单个运动表,并且其中,所述运动表查找索引是进一步基于与当前像素的颜色相对应的取决于颜色的增益而确定的;并且
其中所述运动表选自多个亮度表之一,每个亮度表对应于所述多颜色原始图像数据中的一种颜色,并且其中,所述衰减因子是利用亮度表查找索引从所选择的亮度表中选择的。
28.如权利要求27所述的方法,其中所述多颜色原始图像数据包括具有红色颜色分量、蓝色颜色分量、第一绿色颜色分量和第二绿色颜色分量的拜耳图像数据,并且其中,所选择的亮度表是从与红色颜色分量相对应的第一亮度表、与蓝色颜色分量相对应的第二亮度表、以及第一绿色颜色分量和第二绿色颜色分量共享的第三亮度表中选择的。
29.如权利要求26所述的方法,其中,所述多颜色原始图像数据中的各个颜色分量共享单个亮度表,并且其中,所述亮度表查找索引是进一步基于与当前像素的颜色相对应的取决于颜色的增益而确定的;并且
其中,所述运动表选自多个运动表之一,每个运动表对应于所述多颜色原始图像数据中的一种颜色,并且其中,所述第一滤波器系数是利用运动表查找索引从所选择的运动表中选择的。
30.如权利要求29所述的方法,其中所述多颜色原始图像数据包括具有红色颜色分量、蓝色颜色分量、第一绿色颜色分量和第二绿色颜色分量的拜耳图像数据,并且其中,所选择的运动表是从与红色颜色分量相对应的第一运动表、与蓝色颜色分量相对应的第二运动表、以及第一绿色颜色分量和第二绿色颜色分量共享的第三运动表中选择的。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/582,414 US8638342B2 (en) | 2009-10-20 | 2009-10-20 | System and method for demosaicing image data using weighted gradients |
US12/582,414 | 2009-10-20 | ||
US12/789,821 | 2010-05-28 | ||
US12/789,821 US8593483B2 (en) | 2009-10-20 | 2010-05-28 | Temporal filtering techniques for image signal processing |
PCT/US2010/052272 WO2011049779A1 (en) | 2009-10-20 | 2010-10-12 | Temporal filtering techniques for image signal processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102640184A true CN102640184A (zh) | 2012-08-15 |
CN102640184B CN102640184B (zh) | 2015-04-08 |
Family
ID=43357194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080054781.2A Expired - Fee Related CN102640184B (zh) | 2009-10-20 | 2010-10-12 | 用于图像信号处理的时域滤波技术 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8593483B2 (zh) |
EP (1) | EP2491528B1 (zh) |
JP (1) | JP5643320B2 (zh) |
KR (1) | KR101269344B1 (zh) |
CN (1) | CN102640184B (zh) |
AU (1) | AU2010308351B2 (zh) |
TW (1) | TWI430654B (zh) |
WO (1) | WO2011049779A1 (zh) |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104103037A (zh) * | 2013-04-02 | 2014-10-15 | 杭州海康威视数字技术股份有限公司 | 一种图像增强处理方法和装置 |
CN104349080A (zh) * | 2013-08-07 | 2015-02-11 | 联想(北京)有限公司 | 一种图像处理方法及电子设备 |
CN104572388A (zh) * | 2013-10-15 | 2015-04-29 | 鸿富锦精密工业(深圳)有限公司 | 数据滤波系统、数据滤波装置及方法 |
CN104796583A (zh) * | 2015-05-14 | 2015-07-22 | 上海兆芯集成电路有限公司 | 相机噪声模型产生及使用方法以及使用该方法的装置 |
CN105100550A (zh) * | 2014-04-21 | 2015-11-25 | 展讯通信(上海)有限公司 | 阴影校正方法及装置、成像系统 |
CN105306941A (zh) * | 2015-11-12 | 2016-02-03 | 贺新 | 一种视频编码方法 |
CN105676291A (zh) * | 2016-01-11 | 2016-06-15 | 中国海洋大学 | 一种基于同相轴优化追踪的多次波匹配衰减方法 |
CN106651787A (zh) * | 2016-11-08 | 2017-05-10 | 深圳市安健科技股份有限公司 | 基于x射线的hdr图像合成方法及系统 |
CN107113407A (zh) * | 2014-12-26 | 2017-08-29 | 佳能株式会社 | 图像拾取装置驱动方法和信号处理方法 |
CN107949850A (zh) * | 2015-09-02 | 2018-04-20 | 苹果公司 | 检测图像数据中的关键点 |
CN108307178A (zh) * | 2016-09-16 | 2018-07-20 | 艾克松有限责任公司 | 校准系统 |
CN108810552A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 图像预测方法和相关产品 |
CN108885790A (zh) * | 2016-04-20 | 2018-11-23 | 英特尔公司 | 基于所生成的运动数据处理图像 |
CN109727182A (zh) * | 2017-10-30 | 2019-05-07 | 想象技术有限公司 | 用于处理数据值的流的系统和方法 |
CN110168602A (zh) * | 2017-01-03 | 2019-08-23 | 菲力尔系统公司 | 使用频谱变换的图像降噪 |
CN110365920A (zh) * | 2018-04-03 | 2019-10-22 | 顶级公司 | 图像处理 |
CN110830680A (zh) * | 2018-08-08 | 2020-02-21 | 瑞昱半导体股份有限公司 | 确定滤波器系数的方法 |
CN110852976A (zh) * | 2019-11-22 | 2020-02-28 | 昆明物理研究所 | 一种红外图像明暗不均匀校正方法及计算机程序产品 |
CN111311503A (zh) * | 2019-11-13 | 2020-06-19 | 深圳大学 | 一种夜晚低亮度图像增强系统 |
CN111487257A (zh) * | 2020-04-01 | 2020-08-04 | 武汉精立电子技术有限公司 | 一种显示面板异常像素实时检测修复方法及装置 |
CN111510718A (zh) * | 2019-01-30 | 2020-08-07 | 韩国斯诺有限公司 | 通过图像文件的块间差异提高压缩率的方法及系统 |
CN111615700A (zh) * | 2018-01-05 | 2020-09-01 | Ntt电子股份有限公司 | 运算电路 |
CN112312046A (zh) * | 2019-07-26 | 2021-02-02 | 瑞昱半导体股份有限公司 | 应用于图像感测电路的像素通道不平衡补偿方法与系统 |
CN112585669A (zh) * | 2018-07-03 | 2021-03-30 | 瑞克斯姆股份有限公司 | 显示处理电路系统 |
CN112837323A (zh) * | 2021-01-12 | 2021-05-25 | 全时云商务服务股份有限公司 | 一种基于人像分割的视频处理方法、系统和存储介质 |
WO2021102947A1 (zh) * | 2019-11-29 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 图像信号处理装置、方法、相机以及可移动平台 |
CN113015924A (zh) * | 2018-11-16 | 2021-06-22 | 宝马股份公司 | 基于来自一个或多个位置传感器的测量样本表征对象的装置和方法 |
CN113518228A (zh) * | 2012-09-28 | 2021-10-19 | 交互数字麦迪逊专利控股公司 | 用于视频译码中的色度信号增强的交叉平面滤波 |
CN114511469A (zh) * | 2022-04-06 | 2022-05-17 | 江苏游隼微电子有限公司 | 一种图像智能降噪先验检测方法 |
CN115428009A (zh) * | 2020-04-13 | 2022-12-02 | 苹果公司 | 基于内容的图像处理 |
US11539955B2 (en) | 2019-01-30 | 2022-12-27 | Snow Corporation | Method and system for improving compression ratio through pixel conversion of image file |
US11688047B2 (en) | 2017-10-30 | 2023-06-27 | Imagination Technologies Limited | Systems and methods for processing a stream of data values using data value subset groups |
US11908106B2 (en) | 2017-10-30 | 2024-02-20 | Imagination Technologies Limited | Processing received pixel values in an image processing system using pixel value subset groups |
CN113518228B (zh) * | 2012-09-28 | 2024-06-11 | 交互数字麦迪逊专利控股公司 | 用于视频编码的方法、用于视频解码的方法及其装置 |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8274583B2 (en) * | 2009-06-05 | 2012-09-25 | Apple Inc. | Radially-based chroma noise reduction for cameras |
US8284271B2 (en) * | 2009-06-05 | 2012-10-09 | Apple Inc. | Chroma noise reduction for cameras |
US20120128244A1 (en) * | 2010-11-19 | 2012-05-24 | Raka Singh | Divide-and-conquer filter for low-light noise reduction |
US8755625B2 (en) | 2010-11-19 | 2014-06-17 | Analog Devices, Inc. | Component filtering for low-light noise reduction |
US8699813B2 (en) | 2010-11-19 | 2014-04-15 | Analog Devices, Inc | Adaptive filter for low-light noise reduction |
US8520080B2 (en) | 2011-01-31 | 2013-08-27 | Hand Held Products, Inc. | Apparatus, system, and method of use of imaging assembly on mobile terminal |
JP4970606B1 (ja) * | 2011-03-31 | 2012-07-11 | 株式会社東芝 | テレビジョン装置及び電子機器 |
WO2012169174A1 (ja) * | 2011-06-08 | 2012-12-13 | パナソニック株式会社 | 画像処理装置および画像処理方法 |
US8217945B1 (en) | 2011-09-02 | 2012-07-10 | Metric Insights, Inc. | Social annotation of a single evolving visual representation of a changing dataset |
US9076252B2 (en) * | 2012-01-05 | 2015-07-07 | Qualcomm Incorporated | Image perceptual attribute adjustment |
US9143704B2 (en) | 2012-01-20 | 2015-09-22 | Htc Corporation | Image capturing device and method thereof |
US8687922B2 (en) * | 2012-02-24 | 2014-04-01 | Apple Inc. | Parallel scaler processing |
US9105078B2 (en) | 2012-05-31 | 2015-08-11 | Apple Inc. | Systems and methods for local tone mapping |
US9077943B2 (en) | 2012-05-31 | 2015-07-07 | Apple Inc. | Local image statistics collection |
US8817120B2 (en) | 2012-05-31 | 2014-08-26 | Apple Inc. | Systems and methods for collecting fixed pattern noise statistics of image data |
US9025867B2 (en) | 2012-05-31 | 2015-05-05 | Apple Inc. | Systems and methods for YCC image processing |
US9014504B2 (en) | 2012-05-31 | 2015-04-21 | Apple Inc. | Systems and methods for highlight recovery in an image signal processor |
US11089247B2 (en) | 2012-05-31 | 2021-08-10 | Apple Inc. | Systems and method for reducing fixed pattern noise in image data |
US9332239B2 (en) | 2012-05-31 | 2016-05-03 | Apple Inc. | Systems and methods for RGB image processing |
US9743057B2 (en) | 2012-05-31 | 2017-08-22 | Apple Inc. | Systems and methods for lens shading correction |
US9031319B2 (en) | 2012-05-31 | 2015-05-12 | Apple Inc. | Systems and methods for luma sharpening |
US9142012B2 (en) | 2012-05-31 | 2015-09-22 | Apple Inc. | Systems and methods for chroma noise reduction |
US8953882B2 (en) | 2012-05-31 | 2015-02-10 | Apple Inc. | Systems and methods for determining noise statistics of image data |
US8872946B2 (en) | 2012-05-31 | 2014-10-28 | Apple Inc. | Systems and methods for raw image processing |
US8917336B2 (en) | 2012-05-31 | 2014-12-23 | Apple Inc. | Image signal processing involving geometric distortion correction |
JP5806706B2 (ja) * | 2012-10-15 | 2015-11-10 | 株式会社沖データ | 画像読み取り装置及び画像形成装置 |
CN103974058A (zh) * | 2013-01-24 | 2014-08-06 | 鸿富锦精密工业(深圳)有限公司 | 影像噪声分析系统及方法 |
US9165352B2 (en) * | 2013-06-10 | 2015-10-20 | Xerox Corporation | Precipitation removal for vision-based parking management systems |
US9413951B2 (en) | 2014-07-31 | 2016-08-09 | Apple Inc. | Dynamic motion estimation and compensation for temporal filtering |
US9479695B2 (en) * | 2014-07-31 | 2016-10-25 | Apple Inc. | Generating a high dynamic range image using a temporal filter |
US9514525B2 (en) | 2014-07-31 | 2016-12-06 | Apple Inc. | Temporal filtering for image data using spatial filtering and noise history |
US9386234B2 (en) | 2014-07-31 | 2016-07-05 | Apple Inc. | Auto filter extent management |
US9462189B2 (en) | 2014-07-31 | 2016-10-04 | Apple Inc. | Piecewise perspective transform engine |
US9374526B2 (en) | 2014-07-31 | 2016-06-21 | Apple Inc. | Providing frame delay using a temporal filter |
CN105389776B (zh) | 2014-09-02 | 2019-05-03 | 辉达公司 | 图像缩放技术 |
KR102224851B1 (ko) | 2014-12-11 | 2021-03-08 | 삼성전자주식회사 | 서브 픽셀 보간을 수행하는 이미지 처리 장치 및 이미지 처리 시스템 |
US10021396B1 (en) * | 2014-12-30 | 2018-07-10 | Ambarella, Inc. | Motion detection based on observing several pictures |
US9927862B2 (en) | 2015-05-21 | 2018-03-27 | Microsoft Technology Licensing, Llc | Variable precision in hardware pipelines for power conservation |
US9787922B2 (en) | 2015-08-31 | 2017-10-10 | Apple Inc. | Pixel defect preprocessing in an image signal processor |
US10467496B2 (en) * | 2015-08-31 | 2019-11-05 | Apple Inc. | Temporal filtering of independent color channels in image data |
US10440299B2 (en) | 2015-09-04 | 2019-10-08 | Apple Inc. | Correcting pixel defects based on defect history in an image processing pipeline |
US9992467B2 (en) * | 2016-06-30 | 2018-06-05 | Apple Inc. | Parallel computer vision and image scaling architecture |
US9979942B2 (en) | 2016-06-30 | 2018-05-22 | Apple Inc. | Per pixel color correction filtering |
TWI712989B (zh) * | 2018-01-16 | 2020-12-11 | 瑞昱半導體股份有限公司 | 影像處理方法及影像處理裝置 |
JP2020155907A (ja) * | 2019-03-20 | 2020-09-24 | 株式会社朋栄 | 自動色補正処理方法及び自動色補正処理装置 |
US11508037B2 (en) | 2020-03-10 | 2022-11-22 | Samsung Electronics Co., Ltd. | Systems and methods for image denoising using deep convolutional networks |
US11798135B2 (en) * | 2021-02-24 | 2023-10-24 | Gn Audio A/S | Method and system for three-dimensional noise reduction and contrast enhancement of images |
US11509836B1 (en) | 2021-12-29 | 2022-11-22 | Insight Direct Usa, Inc. | Dynamically configured processing of a region of interest dependent upon published video data selected by a runtime configuration file |
US11704891B1 (en) | 2021-12-29 | 2023-07-18 | Insight Direct Usa, Inc. | Dynamically configured extraction, preprocessing, and publishing of a region of interest that is a subset of streaming video data |
US11778167B1 (en) | 2022-07-26 | 2023-10-03 | Insight Direct Usa, Inc. | Method and system for preprocessing optimization of streaming video data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1541482A (zh) * | 2001-08-14 | 2004-10-27 | ���dz� | 用于数字视频信号的运动自适应降噪预处理 |
US20070071343A1 (en) * | 2005-09-29 | 2007-03-29 | Jay Zipnick | Video acquisition with integrated GPU processing |
CN101448077A (zh) * | 2008-12-26 | 2009-06-03 | 四川虹微技术有限公司 | 一种自适应视频图像3d降噪方法 |
CN101551901A (zh) * | 2009-05-25 | 2009-10-07 | 中国人民解放军国防科学技术大学 | 动态遮挡图像的实时补偿和增强方法 |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US38896A (en) * | 1863-06-16 | Improvement in sheep-racks | ||
US39213A (en) * | 1863-07-14 | Improvement in the manufacture of alkaline carbonates | ||
US38911A (en) * | 1863-06-16 | Van eensselaee powell | ||
US4589089A (en) | 1978-05-30 | 1986-05-13 | Bally Manufacturing Corporation | Computer-peripheral interface for a game apparatus |
US4475172A (en) | 1978-05-30 | 1984-10-02 | Bally Manufacturing Corporation | Audio/visual home computer and game apparatus |
US4799677A (en) | 1983-09-02 | 1989-01-24 | Bally Manufacturing Corporation | Video game having video disk read only memory |
US4979738A (en) | 1983-12-06 | 1990-12-25 | Midway Manufacturing Corporation | Constant spatial data mass RAM video display system |
US4605961A (en) | 1983-12-22 | 1986-08-12 | Frederiksen Jeffrey E | Video transmission system using time-warp scrambling |
US4694489A (en) | 1983-12-22 | 1987-09-15 | Frederiksen Jeffrey E | Video transmission system |
US4682360A (en) | 1983-12-22 | 1987-07-21 | Frederiksen Jeffrey E | Video transmission system |
US4742543A (en) | 1983-12-22 | 1988-05-03 | Frederiksen Jeffrey E | Video transmission system |
US4743959A (en) | 1986-09-17 | 1988-05-10 | Frederiksen Jeffrey E | High resolution color video image acquisition and compression system |
US5227863A (en) | 1989-11-14 | 1993-07-13 | Intelligent Resources Integrated Systems, Inc. | Programmable digital video processing system |
US5272529A (en) | 1992-03-20 | 1993-12-21 | Northwest Starscan Limited Partnership | Adaptive hierarchical subband vector quantization encoder |
US5247355A (en) | 1992-06-11 | 1993-09-21 | Northwest Starscan Limited Partnership | Gridlocked method and system for video motion compensation |
JPH08502865A (ja) | 1992-09-01 | 1996-03-26 | アプル・コンピュータ・インコーポレーテッド | 改良されたベクトルの量子化 |
JP2931520B2 (ja) | 1993-08-31 | 1999-08-09 | 三洋電機株式会社 | 単板式カラービデオカメラの色分離回路 |
US6122411A (en) | 1994-02-16 | 2000-09-19 | Apple Computer, Inc. | Method and apparatus for storing high and low resolution images in an imaging device |
US5694227A (en) | 1994-07-15 | 1997-12-02 | Apple Computer, Inc. | Method and apparatus for calibrating and adjusting a color imaging system |
US5764291A (en) | 1994-09-30 | 1998-06-09 | Apple Computer, Inc. | Apparatus and method for orientation-dependent camera exposure and focus setting optimization |
US5496106A (en) | 1994-12-13 | 1996-03-05 | Apple Computer, Inc. | System and method for generating a contrast overlay as a focus assist for an imaging device |
JPH08181910A (ja) * | 1994-12-26 | 1996-07-12 | Hitachi Ltd | 画像処理装置 |
US5629734A (en) | 1995-03-17 | 1997-05-13 | Eastman Kodak Company | Adaptive color plan interpolation in single sensor color electronic camera |
US5640613A (en) | 1995-04-14 | 1997-06-17 | Apple Computer, Inc. | Corrective lens assembly |
US6011585A (en) | 1996-01-19 | 2000-01-04 | Apple Computer, Inc. | Apparatus and method for rotating the display orientation of a captured image |
JPH09261463A (ja) | 1996-03-26 | 1997-10-03 | Casio Electron Mfg Co Ltd | 画像データ補正装置 |
US5867214A (en) | 1996-04-11 | 1999-02-02 | Apple Computer, Inc. | Apparatus and method for increasing a digital camera image capture rate by delaying image processing |
US5809178A (en) | 1996-06-11 | 1998-09-15 | Apple Computer, Inc. | Elimination of visible quantizing artifacts in a digital image utilizing a critical noise/quantizing factor |
US6031964A (en) | 1996-06-20 | 2000-02-29 | Apple Computer, Inc. | System and method for using a unified memory architecture to implement a digital camera device |
US6157394A (en) | 1996-08-29 | 2000-12-05 | Apple Computer, Inc. | Flexible digital image processing via an image processing chain with modular image processors |
US6028611A (en) | 1996-08-29 | 2000-02-22 | Apple Computer, Inc. | Modular digital image processing via an image processing chain |
US5991465A (en) | 1996-08-29 | 1999-11-23 | Apple Computer, Inc. | Modular digital image processing via an image processing chain with modifiable parameter controls |
US5790705A (en) | 1996-09-13 | 1998-08-04 | Apple Computer, Inc. | Compression techniques for substantially lossless digital image data storage |
US6141044A (en) | 1996-09-26 | 2000-10-31 | Apple Computer, Inc. | Method and system for coherent image group maintenance in memory |
US5979738A (en) * | 1998-02-05 | 1999-11-09 | E.P. Paton Electric Welding | Machine for flash-butt welding of rails |
US6198514B1 (en) | 1998-02-27 | 2001-03-06 | Apple Computer, Inc. | Color misconvergence measurement using a common monochrome image |
JP3730419B2 (ja) * | 1998-09-30 | 2006-01-05 | シャープ株式会社 | 映像信号処理装置 |
US6954193B1 (en) | 2000-09-08 | 2005-10-11 | Apple Computer, Inc. | Method and apparatus for correcting pixel level intensity variation |
US6745012B1 (en) | 2000-11-17 | 2004-06-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive data compression in a wireless telecommunications system |
US7170938B1 (en) | 2001-08-21 | 2007-01-30 | Cisco Systems Canada Co. | Rate control method for video transcoding |
US6959044B1 (en) | 2001-08-21 | 2005-10-25 | Cisco Systems Canada Co. | Dynamic GOP system and method for digital video encoding |
US6933971B2 (en) | 2002-05-14 | 2005-08-23 | Kwe International, Inc. | Reconstruction of color components in digital image processing |
US7277595B1 (en) | 2003-01-06 | 2007-10-02 | Apple Inc. | Method and apparatus for digital image manipulation to remove image blemishes |
WO2004088992A1 (ja) | 2003-03-28 | 2004-10-14 | Olympus Corporation | 画像処理装置及び画像処理プログラム |
US7310371B2 (en) | 2003-05-30 | 2007-12-18 | Lsi Corporation | Method and/or apparatus for reducing the complexity of H.264 B-frame encoding using selective reconstruction |
US7327786B2 (en) | 2003-06-02 | 2008-02-05 | Lsi Logic Corporation | Method for improving rate-distortion performance of a video compression system through parallel coefficient cancellation in the transform |
US7324595B2 (en) | 2003-09-22 | 2008-01-29 | Lsi Logic Corporation | Method and/or apparatus for reducing the complexity of non-reference frame encoding using selective reconstruction |
US7602849B2 (en) | 2003-11-17 | 2009-10-13 | Lsi Corporation | Adaptive reference picture selection based on inter-picture motion measurement |
US7362804B2 (en) | 2003-11-24 | 2008-04-22 | Lsi Logic Corporation | Graphical symbols for H.264 bitstream syntax elements |
JP2005159957A (ja) | 2003-11-28 | 2005-06-16 | Mega Chips Corp | 色補間方法 |
US7362376B2 (en) | 2003-12-23 | 2008-04-22 | Lsi Logic Corporation | Method and apparatus for video deinterlacing and format conversion |
US7345708B2 (en) | 2003-12-23 | 2008-03-18 | Lsi Logic Corporation | Method and apparatus for video deinterlacing and format conversion |
US7515765B1 (en) | 2004-01-30 | 2009-04-07 | Apple Inc. | Image sharpness management |
US7502505B2 (en) | 2004-03-15 | 2009-03-10 | Microsoft Corporation | High-quality gradient-corrected linear interpolation for demosaicing of color images |
US7231587B2 (en) | 2004-03-29 | 2007-06-12 | Lsi Corporation | Embedded picture PSNR/CRC data in compressed video bitstream |
US7620103B2 (en) | 2004-12-10 | 2009-11-17 | Lsi Corporation | Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding |
US7576783B2 (en) | 2005-02-04 | 2009-08-18 | Hau Hwang | Confidence based weighting for color interpolation |
US7612804B1 (en) | 2005-02-15 | 2009-11-03 | Apple Inc. | Methods and apparatuses for image processing |
US7949044B2 (en) | 2005-04-12 | 2011-05-24 | Lsi Corporation | Method for coefficient bitdepth limitation, encoder and bitstream generation apparatus |
US8031766B2 (en) | 2005-08-02 | 2011-10-04 | Lsi Corporation | Performance adaptive video encoding with concurrent decoding |
US8208540B2 (en) | 2005-08-05 | 2012-06-26 | Lsi Corporation | Video bitstream transcoding method and apparatus |
US7903739B2 (en) | 2005-08-05 | 2011-03-08 | Lsi Corporation | Method and apparatus for VC-1 to MPEG-2 video transcoding |
US7881384B2 (en) | 2005-08-05 | 2011-02-01 | Lsi Corporation | Method and apparatus for H.264 to MPEG-2 video transcoding |
US8155194B2 (en) | 2005-08-05 | 2012-04-10 | Lsi Corporation | Method and apparatus for MPEG-2 to H.264 video transcoding |
US8045618B2 (en) | 2005-08-05 | 2011-10-25 | Lsi Corporation | Method and apparatus for MPEG-2 to VC-1 video transcoding |
JP2007060153A (ja) * | 2005-08-23 | 2007-03-08 | Nikon Corp | 履歴付加装置、電子カメラ、および画像処理プログラム |
JP2007086559A (ja) * | 2005-09-26 | 2007-04-05 | Pentax Corp | カメラ |
US7711200B2 (en) | 2005-09-29 | 2010-05-04 | Apple Inc. | Video acquisition with integrated GPU processing |
US7596280B2 (en) | 2005-09-29 | 2009-09-29 | Apple Inc. | Video acquisition with integrated GPU processing |
US7551214B2 (en) | 2005-12-01 | 2009-06-23 | Megachips Lsi Solutions Inc. | Pixel interpolation method |
US7830426B2 (en) | 2005-12-29 | 2010-11-09 | Micron Technology, Inc. | Method and apparatus providing color interpolation in color filter arrays using edge detection and correction terms |
JP5183880B2 (ja) | 2006-03-14 | 2013-04-17 | ソニー株式会社 | カラーフィルタおよび撮像素子 |
JP5053373B2 (ja) | 2006-06-29 | 2012-10-17 | トムソン ライセンシング | 適応ピクセルベースのフィルタリング |
US7893975B2 (en) | 2006-10-13 | 2011-02-22 | Apple Inc. | System and method for processing images using predetermined tone reproduction curves |
US7773127B2 (en) | 2006-10-13 | 2010-08-10 | Apple Inc. | System and method for RAW image processing |
JP4284628B2 (ja) | 2006-12-15 | 2009-06-24 | ソニー株式会社 | 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体 |
JP2008252767A (ja) * | 2007-03-30 | 2008-10-16 | Sanyo Electric Co Ltd | ノイズ低減装置、ノイズ低減方法、及び電子機器 |
US20080253652A1 (en) | 2007-04-10 | 2008-10-16 | Aricent Inc. | Method of demosaicing a digital mosaiced image |
JP2010147508A (ja) * | 2007-04-13 | 2010-07-01 | Panasonic Corp | 撮影装置及び再生装置 |
US8724895B2 (en) | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
JP5095434B2 (ja) * | 2008-02-08 | 2012-12-12 | 株式会社リコー | 撮像装置および画像処理装置 |
US8405727B2 (en) | 2008-05-01 | 2013-03-26 | Apple Inc. | Apparatus and method for calibrating image capture devices |
-
2010
- 2010-05-28 US US12/789,821 patent/US8593483B2/en not_active Expired - Fee Related
- 2010-10-12 WO PCT/US2010/052272 patent/WO2011049779A1/en active Application Filing
- 2010-10-12 KR KR1020127012992A patent/KR101269344B1/ko active IP Right Grant
- 2010-10-12 CN CN201080054781.2A patent/CN102640184B/zh not_active Expired - Fee Related
- 2010-10-12 JP JP2012535233A patent/JP5643320B2/ja not_active Expired - Fee Related
- 2010-10-12 AU AU2010308351A patent/AU2010308351B2/en not_active Ceased
- 2010-10-12 EP EP10775957.3A patent/EP2491528B1/en active Active
- 2010-10-20 TW TW099135789A patent/TWI430654B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1541482A (zh) * | 2001-08-14 | 2004-10-27 | ���dz� | 用于数字视频信号的运动自适应降噪预处理 |
US20070071343A1 (en) * | 2005-09-29 | 2007-03-29 | Jay Zipnick | Video acquisition with integrated GPU processing |
CN101448077A (zh) * | 2008-12-26 | 2009-06-03 | 四川虹微技术有限公司 | 一种自适应视频图像3d降噪方法 |
CN101551901A (zh) * | 2009-05-25 | 2009-10-07 | 中国人民解放军国防科学技术大学 | 动态遮挡图像的实时补偿和增强方法 |
Cited By (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518228B (zh) * | 2012-09-28 | 2024-06-11 | 交互数字麦迪逊专利控股公司 | 用于视频编码的方法、用于视频解码的方法及其装置 |
CN113518228A (zh) * | 2012-09-28 | 2021-10-19 | 交互数字麦迪逊专利控股公司 | 用于视频译码中的色度信号增强的交叉平面滤波 |
CN104103037B (zh) * | 2013-04-02 | 2017-02-15 | 杭州海康威视数字技术股份有限公司 | 一种图像增强处理方法和装置 |
CN104103037A (zh) * | 2013-04-02 | 2014-10-15 | 杭州海康威视数字技术股份有限公司 | 一种图像增强处理方法和装置 |
CN104349080A (zh) * | 2013-08-07 | 2015-02-11 | 联想(北京)有限公司 | 一种图像处理方法及电子设备 |
CN104572388B (zh) * | 2013-10-15 | 2017-01-25 | 鸿富锦精密工业(深圳)有限公司 | 数据滤波系统、数据滤波装置及方法 |
CN104572388A (zh) * | 2013-10-15 | 2015-04-29 | 鸿富锦精密工业(深圳)有限公司 | 数据滤波系统、数据滤波装置及方法 |
CN105100550A (zh) * | 2014-04-21 | 2015-11-25 | 展讯通信(上海)有限公司 | 阴影校正方法及装置、成像系统 |
CN107113407A (zh) * | 2014-12-26 | 2017-08-29 | 佳能株式会社 | 图像拾取装置驱动方法和信号处理方法 |
US10462432B2 (en) | 2014-12-26 | 2019-10-29 | Canon Kabushiki Kaisha | Method for driving image pickup apparatus, and signal processing method |
CN104796583B (zh) * | 2015-05-14 | 2017-11-21 | 上海兆芯集成电路有限公司 | 相机噪声模型产生及使用方法以及使用该方法的装置 |
CN104796583A (zh) * | 2015-05-14 | 2015-07-22 | 上海兆芯集成电路有限公司 | 相机噪声模型产生及使用方法以及使用该方法的装置 |
CN107949850A (zh) * | 2015-09-02 | 2018-04-20 | 苹果公司 | 检测图像数据中的关键点 |
CN107949850B (zh) * | 2015-09-02 | 2022-05-17 | 苹果公司 | 用于检测图像数据中的关键点的方法和系统 |
CN105306941A (zh) * | 2015-11-12 | 2016-02-03 | 贺新 | 一种视频编码方法 |
CN105306941B (zh) * | 2015-11-12 | 2019-05-24 | 成都图影视讯科技有限公司 | 一种视频编码方法 |
CN105676291A (zh) * | 2016-01-11 | 2016-06-15 | 中国海洋大学 | 一种基于同相轴优化追踪的多次波匹配衰减方法 |
CN108885790A (zh) * | 2016-04-20 | 2018-11-23 | 英特尔公司 | 基于所生成的运动数据处理图像 |
CN108307178A (zh) * | 2016-09-16 | 2018-07-20 | 艾克松有限责任公司 | 校准系统 |
CN106651787B (zh) * | 2016-11-08 | 2019-08-23 | 深圳市安健科技股份有限公司 | 基于x射线的hdr图像合成方法及系统 |
CN106651787A (zh) * | 2016-11-08 | 2017-05-10 | 深圳市安健科技股份有限公司 | 基于x射线的hdr图像合成方法及系统 |
CN110168602A (zh) * | 2017-01-03 | 2019-08-23 | 菲力尔系统公司 | 使用频谱变换的图像降噪 |
CN110168602B (zh) * | 2017-01-03 | 2023-05-12 | 特利丹菲力尔有限责任公司 | 使用频谱变换的图像降噪 |
US11039145B2 (en) | 2017-04-28 | 2021-06-15 | Huawei Technologies Co., Ltd. | Image prediction method and apparatus |
CN108810552A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 图像预测方法和相关产品 |
CN108810552B (zh) * | 2017-04-28 | 2021-11-09 | 华为技术有限公司 | 图像预测方法和相关产品 |
CN109727182A (zh) * | 2017-10-30 | 2019-05-07 | 想象技术有限公司 | 用于处理数据值的流的系统和方法 |
US11908106B2 (en) | 2017-10-30 | 2024-02-20 | Imagination Technologies Limited | Processing received pixel values in an image processing system using pixel value subset groups |
US11688047B2 (en) | 2017-10-30 | 2023-06-27 | Imagination Technologies Limited | Systems and methods for processing a stream of data values using data value subset groups |
CN109727182B (zh) * | 2017-10-30 | 2023-08-08 | 想象技术有限公司 | 图像处理系统、在图像处理系统中处理像素值的方法 |
CN111615700A (zh) * | 2018-01-05 | 2020-09-01 | Ntt电子股份有限公司 | 运算电路 |
CN111615700B (zh) * | 2018-01-05 | 2023-12-08 | Ntt创新器件有限公司 | 运算电路 |
CN110365920A (zh) * | 2018-04-03 | 2019-10-22 | 顶级公司 | 图像处理 |
CN110365920B (zh) * | 2018-04-03 | 2023-06-27 | Arm有限公司 | 图像处理 |
CN112585669A (zh) * | 2018-07-03 | 2021-03-30 | 瑞克斯姆股份有限公司 | 显示处理电路系统 |
US11961431B2 (en) | 2018-07-03 | 2024-04-16 | Google Llc | Display processing circuitry |
CN110830680B (zh) * | 2018-08-08 | 2021-03-16 | 瑞昱半导体股份有限公司 | 确定滤波器系数的方法 |
CN110830680A (zh) * | 2018-08-08 | 2020-02-21 | 瑞昱半导体股份有限公司 | 确定滤波器系数的方法 |
CN113015924A (zh) * | 2018-11-16 | 2021-06-22 | 宝马股份公司 | 基于来自一个或多个位置传感器的测量样本表征对象的装置和方法 |
CN113015924B (zh) * | 2018-11-16 | 2024-04-12 | 宝马股份公司 | 基于来自一个或多个位置传感器的测量样本表征对象的装置和方法 |
CN111510718A (zh) * | 2019-01-30 | 2020-08-07 | 韩国斯诺有限公司 | 通过图像文件的块间差异提高压缩率的方法及系统 |
US11539955B2 (en) | 2019-01-30 | 2022-12-27 | Snow Corporation | Method and system for improving compression ratio through pixel conversion of image file |
US11308647B2 (en) | 2019-01-30 | 2022-04-19 | Snow Corporation | Method and system for improving compression ratio by difference between blocks of image file |
US11823418B2 (en) | 2019-01-30 | 2023-11-21 | Snow Corporation | Method and system for improving compression ratio by difference between blocks of image file |
CN112312046A (zh) * | 2019-07-26 | 2021-02-02 | 瑞昱半导体股份有限公司 | 应用于图像感测电路的像素通道不平衡补偿方法与系统 |
CN111311503A (zh) * | 2019-11-13 | 2020-06-19 | 深圳大学 | 一种夜晚低亮度图像增强系统 |
CN110852976A (zh) * | 2019-11-22 | 2020-02-28 | 昆明物理研究所 | 一种红外图像明暗不均匀校正方法及计算机程序产品 |
WO2021102947A1 (zh) * | 2019-11-29 | 2021-06-03 | 深圳市大疆创新科技有限公司 | 图像信号处理装置、方法、相机以及可移动平台 |
CN111487257A (zh) * | 2020-04-01 | 2020-08-04 | 武汉精立电子技术有限公司 | 一种显示面板异常像素实时检测修复方法及装置 |
CN115428009A (zh) * | 2020-04-13 | 2022-12-02 | 苹果公司 | 基于内容的图像处理 |
CN115428009B (zh) * | 2020-04-13 | 2024-04-16 | 苹果公司 | 基于内容的图像处理 |
CN112837323A (zh) * | 2021-01-12 | 2021-05-25 | 全时云商务服务股份有限公司 | 一种基于人像分割的视频处理方法、系统和存储介质 |
CN114511469A (zh) * | 2022-04-06 | 2022-05-17 | 江苏游隼微电子有限公司 | 一种图像智能降噪先验检测方法 |
CN114511469B (zh) * | 2022-04-06 | 2022-06-21 | 江苏游隼微电子有限公司 | 一种图像智能降噪先验检测方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2011049779A1 (en) | 2011-04-28 |
JP5643320B2 (ja) | 2014-12-17 |
TW201143378A (en) | 2011-12-01 |
AU2010308351B2 (en) | 2014-07-10 |
JP2013508853A (ja) | 2013-03-07 |
TWI430654B (zh) | 2014-03-11 |
KR20120062941A (ko) | 2012-06-14 |
KR101269344B1 (ko) | 2013-05-31 |
EP2491528A1 (en) | 2012-08-29 |
CN102640184B (zh) | 2015-04-08 |
US20110090351A1 (en) | 2011-04-21 |
US8593483B2 (en) | 2013-11-26 |
AU2010308351A1 (en) | 2012-05-17 |
EP2491528B1 (en) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102640184B (zh) | 用于图像信号处理的时域滤波技术 | |
CN102640499B (zh) | 用加权的梯度对图像数据去马赛克的系统和方法 | |
CN102640489B (zh) | 用于检测和校正图像传感器中的缺陷像素的系统和方法 | |
CN102572265B (zh) | 使用具有粗略和精细自动对焦分数的图像统计数据的自动对焦控制 | |
CN102404582B (zh) | 用于自动白平衡处理的灵活的颜色空间选择 | |
CN102523456B (zh) | 双图像传感器图像处理系统和方法 | |
US8294781B2 (en) | System and method for sharpening image data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150408 Termination date: 20201012 |
|
CF01 | Termination of patent right due to non-payment of annual fee |