硬件和软件分界的图像处理流水线的制作方法

文档序号:6360729阅读:157来源:国知局
专利名称:硬件和软件分界的图像处理流水线的制作方法
CN 102918561 A
说明书1/5页
硬件和软件分界的图像处理流水线
背景技术
数字照相机包括对原始图像数据进行重采样和空间滤波(例如,内插)的图像处理流水线。例如,照相机流水线组件(诸如,去马赛克组件、向下采样组件、光学畸变校正组件和色差校正组件)可全部对单个图像运用内插技木。传统的图像处理流水线可串行并完全用硬件地实现这些功能。由于连续运用若干个低通式滤波器,这些串行处理可能降低图像质量。完全用硬件执行内插也会具有效率缺点。这些利害因素中的每ー个在高数据率操作模式(例如预览和视频录制)下可能特别相关。


·通过阅读以下说明和所附权利要求,以及通过參考以下附图,本发明的实施例的各种优点将对于本领域普通技术人员变得显而易见,在附图中图I是根据一实施例的图像处理流水线的示例的方框图;图2是根据一实施例的水平内插硬件模块的示例的方框图;图3是根据一实施例的执行垂直内插的方法的示例的流程图;图4是根据一实施例的在逐列的基础上确定绿色值的进程的示例的流程图;图5是根据一实施例的平台的示例的方框图;以及图6A-6C是根据一实施例的图像数据的示例的图例。
具体实施例方式各实施例可提供ー种方法,其中使用硬件模块沿水平方向对原始图像进行空间滤波以获得中间图像数据。该方法也涉及使用软件以沿垂直方向对中间图像数据进行空间滤波。各实施例也可包括具有硬件模块的装置,该硬件模块沿水平方向对原始图像进行空间滤波以获得中间图像数据。另外,该装置可包括计算机可读存储介质,该计算机可读存储介质包括一组存储的指令,如果由处理器处理这些指令,则使装置沿垂直方向对中间图像数据进行空间滤波。其它实施例可包括一系统,该系统具有处理器、用于产生原始图像的图像传感器以及沿水平方向对原始图像进行空间滤波以获得中间图像数据的硬件模块。该系统还可包括计算机可读存储介质,该计算机可读存储介质包括一组存储的指令,如果由处理器处理这些指令,则使系统沿垂直方向对中间图像数据进行空间滤波。现在转向图1,其示出图像处理流水线10。在图示示例中,流水线10包括内插部16,该内插部16 —般被用来对来自其它硬件处理模块22的原始图像24进行空间滤波(例如,劣像素校正),以使空间滤波根据需要提供对原始图像24的去马赛克、向下采样、光学畸变校正和色差校正。内插部16可部分地用流水线10的硬件(HW)部分12实现,部分地用流水线10的软件(SW)部分14实现。具体地说,图示的内插部16包括水平内插硬件模块18和垂直内插软件模块20,其中水平内插硬件模块18在逐行的基础上处理原始图像24
4CN 102918561 A



2/5页
而垂直内插硬件模块20在逐列的基础上处理中间图像数据26(26a-26b)。在一个示例中,原始图像24可包括拜尔模式图像,其中每一行包含处于全分辨率下的红-绿(R/G)数据或蓝-绿(B/G)数据。总地来说,图示的硬件模块18沿水平方向对原始图像24进行空间滤波以获得经几何校正和水平向下采样的中间图像数据26a,该中间图像数据26a被存储至缓冲器/存储 器28,且行已由硬件模块18(例如在逐行的基础上)进行处理。如下文中更详细讨论的那样,中间图像数据26a的行中的每个像素可包括红色和緑色(R+G)值或蓝色和緑色(B+G)值,其中这些值可以任何适宜的色度(例如0-256、0-4096等)表达。当已通过硬件模块18处理了足够数量的行以使垂直内插软件模块20开始处理列时(例如所研究的I行之前的5行+之后的5行=11行),可在逐列的基础上从存储器28获取中间图像数据26b。中间图像数据26b的列中的每个像素可能包括R+G值或B+G值。图示的软件模块20可实现为ー组指令,如果这组指令由处理器执行,则使软件模块20沿垂直方向对中间图像数据26b进行空间滤波以获得经几何校正和垂直向下采样的最终图像数据30,该最终图像数据30可进ー步由其它软件模块32处理。在一个示例中,最终图像数据30的每个像素可包括红色、緑色和蓝色(R+G+B,RGB)值。图2示出水平内插硬件模块34的ー个示例。很容易取代已讨论的硬件模块18 (图I)的硬件模块34可实现为固定功能硬件中的嵌入式逻辑,该固定功能硬件使用诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或者晶体管-晶体管逻辑(TTL)技术,或者其任何组合的电路技木。在图示示例中,硬件模块34处理具有交替的R/G和B/G线的原始像素流38并使用低通(LP) R/B滤波器36在逐行的基础上确定原始图像中的像素的R/B平均值40(例如R/B AV)。由此,从LP R/B滤波器36输出的每个行的像素基于对LP R/B滤波器36建立的滤波器系数而具有红色值或蓝色值。这些系数可基于从像素计数输入52获得的像素位置藉由来自输出像素请求器54的系数线50来设定。例如,由输出像素请求器54所建立的系数可依赖于相对于输入原始数据标格的准确采样点。图示的输出像素请求器54也可为绿色模块42选择滤波器系数,如下文中更详细描述的那样。另外,输出像素请求器54可基于从控制信号58获得的向下采样率(例如I. 875)而产生有效输出标志56。硬件模块34也可包括绿色模块42以在逐行的基础上确定原始图像中的像素的绿色值44 (例如G_0UT)。可使用乘法模块48 (例如具有乘数值K)和求和模块46基于绿色值44来校正R/B平均值40,其中LP R/B滤波器36也可包括高通(HP)绿色(G)滤波分量以捕获每行中的緑色像素的派生物。HP G滤波分量可与乘法模块48的值(即“K”)相关联。结果,可从求和模块46输出经校正的R/B值47,其中一行中的每个像素可具有绿色值44和经校正的R/B值47 (即R+G或B+G)。在图示示例中,绿色模块42包括LP G滤波器60以在逐行的基础上确定原始图像中的像素的绿色平均值62 (例如G_AV)。因此,每个绿色平均值62可表示一行中某一数量像素上的平均绿色值。LP G滤波器60也可具有HP R/B滤波分量以捕获每行中的R/B像素的派生物。另外,可使用緑色最近邻滤波器64在逐行基础上计算原始图像中的像素的緑色最近邻值66 (例如G_NN)。每个绿色最近邻值66可因此表示这行中的最近邻像素(例如所研究像素的任一侧上的像素)的緑色值。緑色模块42的滤波器和LP R/B滤波器36可包
5CN 102918561 A



3/5页
括被设计成支持很宽范围采样比的多相滤波器。图示的緑色模块42也包括差计算器68,用以基于逐行基础上对原始图像中的像素的差计算来计算绿色平均值62和緑色最近邻值66的相对权重。该相对权重可被表达为单參数信号70 (例如alpha),其中可使用混合模块72基于绿色平均值62、緑色最近邻值66以及反映在信号70中的相对权重来计算绿色值44。例如,混合模块72可使用下面的表达 式来计算每个绿色值,blend_out=alpha*G_NN+(1-alpha)*G_AV(I)由此,随着所计算出的基于行的像素差(alpha)増加,在图像的行中将更可能出现边缘/边界,并且绿色值44可朝向緑色最近邻值66被赋予更大的权重以更好地捕获边缘/边界。替代地,随着计算出的基于行的像素差减小,图像的行可能在纹理上是平滑的,并且绿色值可朝向緑色平均值62被赋予更大的权重。简单地说,特定方向上的变化度越大,沿该方向的内插就越窄。现在转向图3,图3示出了沿垂直方向对中间图像数据进行空间滤波的方法74。图示的方法74总地来说是使用与已讨论的硬件模块34(图2)中所使用的方式相同的方式在图像各个列上的软件实现。方法74可以被实现为ー组可执行指令,这组可执行指令存储在机器或计算机可读存储介质中,例如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、闪存等。例如,执行方法74中所示操作的计算机程序代码可以一种或多种编程语言的任意组合来撰写,编程语言包括诸如C++等面向对象的编程语言以及诸如C编程语言或类似编程语言的传统程序性编程语言。处理方框76用于在逐列的基础上确定中间图像数据中的像素的R/B平均值,而处理方框78用于在逐列的基础上确定中间图像数据中的像素的緑色值。另外,在方框80可基于绿色值来校正R/B平均值。图4示出方法82中用于确定中间图像数据中的像素的绿色值的ー种方式。因此,方法82很容易取代已讨论过的处理方框78 (图3)。具体地说,图示的方框84用于在逐列的基础上计算中间图像数据中的像素的緑色平均值,而方框86用于在逐列的基础上计算中间图像数据中的像素的緑色最近邻值。在方框88可基于在逐列基础上对中间图像数据中的像素的差计算来计算绿色平均值和绿色最近邻值的相对权重。图示的方框90用来基于绿色平均值、緑色最近邻值和相对权重来计算绿色值。现在转向图5,图5示出一平台92,该平台92具有计算系统94,该计算系统94具有处理器;系统存储器;网络控制器;可实现为多个NAND存储器件或其它NVM(非易失性存储器)的BIOS (基本输入/输出系统)存储器、HDD (硬盘驱动器);以及允许用户与平台92互通信息和从平台92观看信息的诸如显示器、键盘、鼠标等的UI (用户接ロ)设备。平台92可以是诸如膝上计算机、移动互联网设备(MID)、个人数字助理(PDA)、无线智能电话、媒体播放机、成像设备等或其任意组合的移动平台的一部分。平台92也可以是例如个人计算机(PC)、服务器、工作站等固定平台的一部分。因此,计算系统94的处理器可包括一个或多个处理器核以及配置成与系统存储器通信的集成存储器控制器(IMC,未示出)。系统存储器可包括动态随机存取存储器(DRAM),其被配置成诸如双列直插存储器模块(DIMM)、小轮廓DIMM(SODIMM)等。处理器的核可执行诸如Microsoft Windows、Linux 或Mac (Macintosh)OS的操作系统(OS)以及各种其它软件应用,其中每个核108可通过取指令単元、指令解码
6器、ー级(LI)缓存、执行単元等发挥完全功能。图示的网络控制器可为许多目的提供平台外通信功能,例如蜂窝电话(例如W-CDMA (UMTS), CDMA2000 (IS-856/IS-2000)等)、WiF i (例如 IEEE 802. 11,1999 版,LAN/MAN无线LANS)、蓝牙(例如IEEE 802. 15.ト2005,无线个域网)、WiMax (例如IEEE802. 16-2004, LAN/MAN宽带无线LANS)、全球定位系统(GPS)、频谱扩展(例如900MHz)以及其它射频(RP)电话目的。图示平台92也包括数字照相机图像传感器112和水平内插硬件模块114,其中图像传感器112可以高比特率(例如从图像预览和/或视频捕获操作中)产生原始图像,而硬件模块可沿水平方向对原始图像进行空间滤波以获得中间图像数据。由此,已讨论的硬件模块18(图I)和硬件模块34(图2)很容易替代硬件模块114。另外,计算系统94的一个或多个处理器核可执行ー组指令以沿垂直方向对中间图像数据进行空间滤波。由此,已讨论过的垂直内插软件模块20 (图I)可容易地由计算系统94的处理器核执行。对中间图像数据进行空间滤波的指令可被存储在处理器核的内存、系统存储器、HDD、BIOS存储器或其它适宜的计算机可读存储介质中。图6A-6C论述了根据本文所述的技术的处理原始图像118的优势。图示的原始图像118具有径向桶形失真和部分顔色信息,在该部分顔色信息中,每个像素仅R/G/B中的一个颜色值是已知的。在沿水平方向进行空间滤波后,中间图像120被半去马赛克、向下采样(例如,以沿水平方向I. 875的因数)并作部分地畸变校正。也示出在沿垂直方向对中间图像120进行空间滤波之后完全地去马赛克、向下采样和畸变校正的最终图像122。前述技术因此提供一种有效的图像处理实现,当以高速率捕获数据吋,这种图像处理实现产生高质量的結果。另外,将专用程度最小的硬件与软件处理结合可允许移动计算机和/或较小的手持设备保持性能和功耗需求。本发明的实施例适于与所有类型的半导体集成电路(“1C”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等。此外,在一些附图中,信号传导线路用线来表示。ー些线可能较粗,以指示更多组成的信号路径,一些线具有数字标记,以指示数个组成的信号路径,和/或ー些线在一端或多个端具有箭头,以指示主要的信息流向。然而,这不应当以限制的方式来解释。相反,这些新增的细节可与一个或多个示例性实施例结合地使用,以使电路更容易理解。任何图示的信号线(无论是否具有附加信息)可实际上包括沿多个方向行进的ー个或多个信号,并可通过任何适当类型的信号方案来实现,例如,利用差分对实现的数字线路或模拟线路、光纤线路和/或单端线路。可能已给出示例性大小/模型/值/范围,但是本发明的实施例不限于此。随着制造技术(例如光刻法)随时间而成熟,可望制造出更小尺寸的器件。此外,为了说明和讨论的简单,众所周知的至IC芯片的电源/接地连接以及其它组件可能在图中示出或未示出,为了不混淆本发明的某些方面。此外,各种配置可以方框图形式示出以避免使本发明的实施例变得晦涩,并鉴于相对于这些方框图配置的实现的具体细节很大程度地依赖于本发明的实施例实现的平台这一事实,即这些具体细节应当落在本领域内技术人员的眼界内。在阐述具体细节(例如电路)以描述本发明的示例性实施例的情形下,显然本领域内技术人员能不经过这些具体细节或对这些具体细节作出变化地实现本发明的实施例。因此这些描述被视为是说明性的而非限制性的。例如,可使用机器或者有形的计算机可读介质或者制品来实现ー些实施例,这些介质或者制品可存储指令或者指令的集合,这些指令在由机器执行时可使该机器根据实施例来执行方法和/或操作。这种机器可包括,例如,任何适当的处理平台、计算平台、计算装置、处理装置、计算系统、处理系统、计算机、处理器等,且可使用硬件和/或软件的任何适当的组合来实现。机器可读介质或制品可包括,例如任何适当类型的存储器単元、存储器装置、存储器制品、存储器介质、存储装置、存储制品、存储介质、和/或存储单元,例如,存储器、可移除或者不可移除介质、可擦除或者不可擦除介质、可写或者可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁介质、磁光介质、可移除存储器卡或盘、各种类型的数字多用盘(DVD)、录像带、磁带等。指令可包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等,且使用任何适当的高级、低级、面向对象、可视化、编译和/或解释编程语言来实现。除非另有说明,则可以理解到,诸如“处理”、“计算”、“演算”、“确定”等的术语指代根据计算机或者计算系统或者类似电子计算装置的动作和/或进程,它们将计算系统的寄存器和/或存储器内的被表示为物理量(例如,电子)的数据操纵和/或转移到计算机系统的存储器、寄存器或其它这种信息存储装置、传输或显示装置中的被相似地表示为物理量的其它数据。实施例不限于该上下文。本文中的“耦合”这ー术语可用于指示问题组件之间的直接或间接的任何类型的关系,且可应用于电、机械、流体、光、电磁、机电或其他连接。此外,本文中的“第一”、“第二”等术语仅用于便于讨论,且除非另有指示,其不具有特定的时间或者顺序上的意义。从以上描述中本领域普通技术人员将理解,可按照各种形式来实现本发明的实施例的宽泛的技木。因此,虽然与其特定示例结合来描述了本发明的实施例,但是本发明实施例的真实范围不应这样限定,因为基于附图、说明以及所附权利要求的研究其它修改对本领域普通技术人员是显而易见的。
权利要求
1.一种系统,包括 处理器; 传感器,用于产生原始图像的图像; 硬件模块,用于沿水平方向对原始图像进行空间滤波以获得中间图像数据;以及计算机可读存储介质,所述计算机可读存储介质包括一组存储的指令,如果由处理器处理这些指令,则使所述系统沿垂直方向对所述中间图像数据进行空间滤波。
2.如权利要求I所述的系统,其特征在于,所述硬件模块包括 第一滤波器,用于在逐行的基础上确定所述原始图像中的像素的红色-蓝色平均值; 緑色模块,用于在逐行的基础上确定所述原始图像中的像素的緑色值;以及 求和模块,用于基于所述绿色值来校正所述红色-蓝色平均值。
3.如权利要求2所述的系统,其特征在于,所述绿色模块包括 第二滤波器,用于在逐行的基础上计算所述原始图像中的像素的緑色平均值; 第三滤波器,用于在逐行的基础上计算所述原始图像中的像素的緑色最近邻值;差计算器,用于基于在逐行基础上所述原始图像中的像素的差计算来计算绿色平均值和绿色最近邻值的相对权重;以及 混合模块,用来基于所述緑色平均值、所述绿色最近邻值和所述相对权重来计算绿色值。
4.如权利要求2所述的系统,其特征在于,还包括输出像素请求器,用于基于像素位置选择所述第一滤波器和所述绿色模块的系数,并基于向下采样速率来产生有效输出标志。
5.如权利要求I所述的系统,其特征在于,如果执行所述指令则使系统 在逐列的基础上确定所述中间图像数据中的像素的红色-蓝色平均值; 在逐列的基础上确定所述中间图像数据中的像素的绿色值;以及 基于所述确定的绿色值来校正所述红色-蓝色平均值。
6.ー种装置,包括 硬件模块,所述硬件模块沿水平方向对原始图像进行空间滤波以获得中间图像数据;以及 计算机可读存储介质,所述计算机可读存储介质包括一组存储的指令,如果由处理器处理这些指令,则使所述装置沿垂直方向对所述中间图像数据进行空间滤波。
7.如权利要求6所述的装置,其特征在于,所述硬件模块包括 第一滤波器,用以在逐行的基础上确定所述原始图像中的像素的红色-藍色平均值; 緑色模块,用于在逐行的基础上确定所述原始图像中的像素的緑色值;以及 求和模块,用于基于所述绿色值来校正所述红色-蓝色平均值。
8.如权利要求7所述的装置,其特征在于,所述绿色模块包括 第二滤波器,用于在逐行的基础上计算所述原始图像中的像素的緑色平均值; 第三滤波器,用于在逐行的基础上计算所述原始图像中的像素的緑色最近邻值;差计算器,用于基于在逐行基础上所述原始图像中的像素的差计算来计算绿色平均值和绿色最近邻值的相对权重;以及 混合模块,用于基于所述绿色平均值、所述绿色最近邻值和所述相对权重来计算绿色值。
9.如权利要求8所述的装置,其特征在干,还包括设置在所述混合模块和所述求和模块之间以调整所述绿色值的乘法模块。
10.如权利要求8所述的装置,其特征在于,所述第二滤波器包括高通红色-蓝色滤波器。
11.如权利要求7所述的装置,其特征在于,还包括输出像素请求器,所述输出像素请求器基于像素位置选择所述第一滤波器和所述绿色模块的系数。
12.如权利要求11所述的装置,其特征在于,所述输出像素请求器基于向下采样速率而产生有效的输出标志。
13.如权利要求7所述的装置,其特征在于,所述第一滤波器包括高通绿色滤波器。
14.如权利要求6所述的装置,其特征在于,如果执行所述指令则使装置 在逐列的基础上确定所述中间图像数据中的像素的红色-蓝色平均值; 在逐列的基础上确定所述中间图像数据中的像素的绿色值;以及 基于所述确定的绿色值来校正所述红色-蓝色平均值。
15.如权利要求14所述的装置,其特征在于,如果执行所述指令则使所述装置 在逐列的基础上计算所述中间图像数据中的像素的緑色平均值; 在逐列的基础上计算所述中间图像数据中的像素的緑色最近邻值; 基于在逐列基础上对中间图像数据中的像素的差计算来计算所述绿色平均值和所述绿色最近邻值的相对权重;以及 基于所述緑色平均值、所述绿色最近邻值和所述相对权重来计算所述绿色值。
16.如权利要求6所述的装置,其特征在于,所述原始图像包括拜尔模式图像,所述拜 尔模式图像源自图像预览操作和视频录制操作中的至少ー个。
17.—种方法,包括 使用硬件模块沿水平方向对原始图像进行空间滤波以获得中间图像数据;以及 使用软件沿垂直方向对所述中间图像数据进行空间滤波。
18.如权利要求17所述的方法,其特征在于,使用所述硬件模块对所述原始图像进行空间滤波包括 将第一滤波器应用于所述原始图像,以在逐行的基础上确定所述原始图像中的像素的红色-蓝色平均值; 将绿色模块应用于所述原始图像,以在逐行的基础上确定所述原始图像中的像素的绿色值;以及 使用求和模块以基于所述绿色值来校正所述红色-蓝色平均值。
19.如权利要求17所述的方法,其特征在于,使用软件对所述中间图像数据进行空间滤波包括 在逐列的基础上确定所述中间图像数据中的红色-蓝色平均值; 在逐列的基础上确定所述中间图像数据中的像素的绿色值;以及 基于所述确定的绿色值来校正所述红色-蓝色平均值。
20.如权利要求17所述的方法,其特征在于,所述原始图像包括拜尔模式图像,所述拜尔模式图像源自图像预览操作和视频录制操作中的至少ー个。全文摘要
方法和系统给出一图像处理流水线,该图像处理流水线具有用于沿水平方向对原始图像进行空间滤波以获得中间图像数据的硬件模块。流水线还包括一组存储的指令,如果由处理器处理这些指令,则使流水线沿垂直方向对中间图像数据进行空间滤波。
文档编号G06T1/00GK102918561SQ201180026497
公开日2013年2月6日 申请日期2011年6月13日 优先权日2010年6月28日
发明者D·斯坦希尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1