多特征可编程抽头滤波器图像处理的制作方法

文档序号:6553431阅读:295来源:国知局
专利名称:多特征可编程抽头滤波器图像处理的制作方法
背景技术
在利用图像处理来匹配现有设备功能的情况下,已经习惯使用设计成专门用于图像处理的设备(例如,专用集成电路(ASIC))或者更为通用的设备(例如,数字信号处理器(DSP))来进行图像处理。虽然ASIC可以提供专用功能,但是它们的设计花费大,开发周期长,而且不灵活。另一方面,虽然DSP比ASIC更为灵活,但是它们更难于适合图像处理。


附图结合并构成了本说明书的一部分,它说明了与本发明的原理相一致的一个或更多实现方式,并且与说明书一起解释了这些实现方式。附图不一定是按比例绘制的,重点是说明本发明的原理。在这些附图中图1示出了一个示例性的图像处理系统;图2更详细地示出了图1所示系统中的图像处理器;图3更详细地示出了图2所示图像处理器中的图像信号处理器;图4更详细地示出了图3所示图像信号处理器的一部分;图5A、B分别示出了图4所示模式寄存器的示例性字段以及示例性数据配置;图6更详细地示出了图4的系数源;图7是说明对图像数据进行滤波的示例性过程的流程图;图8是更详细地说明图7所示过程一部分的流程图;以及图9A、B示出了示例性系数集合。
具体实施例方式
下面的详细描述参照附图进行。可以在不同的图中使用相同的参考标记来标识相同或相似的单元。下面的描述中阐明了具体细节,例如特定结构、体系结构、接口、技术等,以帮助全面理解本发明的各个方面。然而,提供这些细节只是为了解释,而不应被认为是限制性的。此外,对于本领域技术人员来说,利用本公开的优点,显然可以在从这些具体细节推导出的其它实例中实现本发明的各个方面。在某些情况下,省略了对公知设备、电路和方法的描述,使得本发明的描述不被不必要的细节所模糊。
图1示出了本发明一种实现方式的示例性系统100。系统100可以包括一个或多个图像处理器(IP)102、存储器104、一个或多个图像输入设备106以及一个或多个图像输出设备108。此外,在一种实现方式中,IP102可以通过共享总线110或其它通信机制与主处理器112、一个或多个输入/输出(I/O)接口114(例如,通用串行总线(USB)接口、并行端口、串行端口、电话端口和/或其它I/O接口)和/或一个或多个网络接口116(例如,有线和/或无线局域网(LAN)和/或广域网(WAN)和/或个域网(PAN)和/或其它有线和/或无线网络接口)进行通信。主处理器112还可以与一个或多个存储器设备118进行通信。
图像处理器102可以包括一个或多个能够实现一个或多个图像处理功能的设备。在一种实现方式中,图像处理器102可以从存储器104和/或从图像输入设备106接收图像数据(例如,以图像像素数据的形式)。在一种实现方式中,图像处理器102可以提供用于图像处理的可编程抽头滤波器体系结构,该结构可以响应与像素数据相关的指示符和/或指示符数据对像素数据进行滤波。在一种实现方式中,IP102可以响应与像素数据的一个或多个部分相关或附加到像素数据的一个或多个部分上的指示符数据和/或输入数据对像素数据进行滤波。在其它实现方式中,IP102可以响应存储在和/或位于例如一个或多个寄存器和/或文件中的指示符和/或静态数据对像素数据进行滤波。图像处理器102可以将滤波后的图像数据输出到存储器104和/或图像输出设备108。
存储器104和/或存储器118可以是能够存储和/或保存例如图像数据、像素数据(也就是可能包括输入数据)和/或指示符数据的任何设备和/或机制。例如,存储器104可以是静态随机存取存储器(SRAM),但是本发明并不局限于此。例如,存储器118可以是动态随机存取存储器(DRAM),但是本发明并不局限于此。
图像输入设备106可以包括适于捕获图像数据的多种机制和/或设备中的任一种。例如,图像输入设备106可以包括传感器阵列(例如CMOS/CCD传感器阵列)和/或另一种类型的图像捕获机制,但是本发明并不局限于此。图像输出设备108可以包括多种利用和/或显示图像数据的机制和/或设备中的任一种。例如,图像输出设备108可以包括打印机、计算机监视器和/或其它种类的图像显示或输出机制,但是本发明并不局限于此。
在各种实现方式中,主处理器112可以是专用或通用处理器。此外,主处理器112可以包括单个设备(例如,微处理器或ASIC)或多个设备。在一种实现方式中,主处理器112能够执行支持图像处理的多种任务中的任一种。这些任务可以包括,例如向IP102提供图像滤波系数,下载微代码到IP102,初始化和/或配置IP102内的寄存器,提供终端服务以及提供用于上载和/或下载图像数据的总线接口,但是本发明并不局限于此。在替代实现方式中,这些功能的一些或者全部可以由IP102执行。
图2是本发明一种实现方式中图像处理设备200(例如图1中的图像处理器102)的简化方框图。图像处理设备200可以包括一个或多个扩展接口202、一个或多个存储器访问单元206、一个或多个外部总线接口208和一个或多个图像信号处理器(ISP)210、212、214、216。
在一种实现方式中,扩展接口202可以使得图像处理设备200连接到系统内的其它设备和/或集成电路(IC)(例如,图1中的图像输入设备106和/或图像输出设备108)。每个扩展接口202可以是可编程的,以适应它所连接的设备。在一种实现方式中,每个扩展接口202可以包括并行I/O接口(例如,8位、16位或其它接口),并且扩展接口202可以使用并行I/O接口来同时将数据,例如图像像素数据,传送到设备200和/或从设备200传出。
存储器访问单元206可以使得能够将数据存储在外部存储器设备(例如,图1中的存储器104)中,和/或从外部存储器设备获取数据。然而,本发明并不局限于此,例如,设备200可以包括内部存储器(未示出),用于存储和/或保持图像像素数据之类的数据。在一种实现方式中,存储器访问单元206可以支持并行(例如,8位、16位或其它)接口。
外部总线接口208可以使得设备200连接到外部总线(例如,图1中的总线110)。在一种实现方式中,总线接口208可以使得设备200能够从外部主处理器(例如,图1中的处理器112)接收图像滤波器系数、微代码、配置信息、调试信息和/或其它信息或数据,并且经过全局总线218向ISP 210、212、214、216提供该信息。
图像数据可以由ISP210~216中的一个或多个处理。在一种实现方式中,ISP210~216可以以网格型结构互连,但是本发明并不局限于此。ISP210~216可以并行和/或串行地处理数据,每个ISP210~216可以实现相同或不同的功能。此外,ISP210~216可以具有相同或不同的体系结构。尽管示出了四个ISP210~216,但是在其它实现方式中,设备200可以具有比ISP210~216更多或更少的ISP。
在一种实现方式中,至少一个ISP210~216能够实现用于图像处理的可编程抽头滤波器体系结构。具体而言,至少一个ISP210~216可以实现用于图像处理的可编程抽头滤波器体系结构,其中的系数集合可以被任意次选择和/或重新配置。在一种实现方式中,可以响应可重新配置的数据和/或指示符来选择系数集合。另外,在一种实现方式中,可以响应与可编程抽头滤波器体系结构正在处理的图像数据相关的指示符数据来选择和/或重新配置系数集合。
此外,可以被配置至少一个ISP210~216来选择性地实现多个不同类型的系数滤波器中的任一个,包括但不限于1-D、2-D可分离和/或2-D不可分离滤波器。将在下面详细描述用于实现这些滤波器类型中每一种类型的方法和装置。
在一种实现方式中,还可以配置滤波器抽头的数目。例如,可以配置一个或多个ISP210~216来实现二维3×3(F3)、5×5(F5)、7×7(F7)、9×9(F9)或者11×11(F11)滤波器,或者具有其它抽头数的滤波器,例如通过组合两个或更多个抽头输出而产生的混合抽头输出,但是本发明并不局限于此。在一种实现方式中,可以配置一个或多个ISP210~216来一次实现一个以上的二维滤波器,或者提供具有混合抽头输出(例如,3×3(F3)抽头输出与5×5(F5)抽头输出混合以产生4×4(F4)抽头输出)的滤波器体系结构。下面将描述用于实现F11滤波器的示例性实现方式。但是可以理解,这些只是用于进行说明,根据本发明也可以实现具有其它抽头数的滤波器。
此外,在一种实现方式中,提供给一个或多个ISP210~216的输入数据的格式是可配置的。图像数据可以以多种形式中的任一种进入,但是通常每个数据值表示像素强度。像素数据可以以若干种已知的格式来进入,例如“单分量”(例如LLL)值、三分量采样(例如,红/绿/蓝或者RGB)值和/或三分量子采样(例如,LaLb)值。此外,输入数据可以以单列或多列格式输入(例如,三分量、子采样、四列LaLb),并且列的高度(swath height)(也就是处理块中像素行的数目)也可以变化。在一种实现方式中,列格式和列的高度也可以是可配置的。但是本发明并不局限于特定像素数据格式。
图3是本发明中ISP(例如,图2中的ISP210)的简化方框图。在一种实现方式中,ISP300包括处理单元(PE)302~316以及寄存器文件交换器318。在一种实现方式中,至少一个PE是滤波器PE,该PE根据本发明的实现方式对像素数据进行滤波。例如,PE302为一个滤波器PE。
PE302~316中的一个或多个可以是微型引擎,在一种实现方式中,可以使用由例如处理器112提供(图1)的微代码来对它编程。因此,一个或多个PE302~316可以执行基本相同或基本不同的操作。尽管图3中示出了八个PE302~316,但是本发明并不局限于此,而是可以有更多或更少的PE与ISP相关。在一种实现方式中,寄存器文件交换器318可以包括纵横制交换器。因此,寄存器文件交换器318可以包括用于在PE302~316之间交换信息和/或数据的通信寄存器,例如像素数据和/或滤波器系数。
图4是本发明中滤波器PE(例如图3中的滤波器PE302)的简化方框图。滤波器PE400可以包括存储器402、地址生成器404、模式寄存器406、可分离阶段(separable stage)I滤波器单元408、系数源410、中间结果存储单元412、可分离阶段II滤波器单元414A和414B、不可分离滤波器单元416和后处理(post-processing)单元418。
存储器402可以是能够保持和/或存储诸如图像像素数据之类的数据的任何机制和/或设备。例如,存储器402可以是SRAM。一开始,数字化像素强度信息形式的图像数据的处理块的全部或一部分可以存储在存储器402中。在一种实现方式中,可以从外部存储器接口(例如图2中的访问单元206)和/或扩展接口(例如图2中的接口202)和/或总线接口(例如图2中的接口208)来接收图像数据。在一种实现方式中,图像可以以列的形式存储在存储器402中。
在一种实现方式中,中间结果存储单元412可以包括一个或多个寄存器,用于存储由可分离阶段I滤波器单元408所产生的滤波后的中间数据。但是,本发明并不局限于此,中间结果存储单元412可以包括任何适当的装置,用于临时保存和/或存储滤波器中间结果。例如,存储单元412可以包括RAM之类的存储设备和/或非易失性存储器的任意组合。
如前所述,使用滤波器PE400实现的滤波器可以以多种方式中的任一种来配置。在一种实现方式中,滤波器PE400可以具有对应于模式寄存器406中存储的配置信息所指定的配置。在一种实现方式中,滤波器PE400可以具有至少部分对应于与图像像素数据相关的配置信息所指定的配置。
图5A更详细地说明本发明中模式寄存器406的实现方式。模式寄存器406可以包括多个字段,例如系数切换模式(CSM)字段502、静态切换模式(SSM)字段504、可分离/不可分离(Separable/Non~separable,S_NS)字段508、1-D_2-D字段510、归一化选择器字段(NORM)512、输入格式字段514、输入模式字段516、混合字段(BLND)505、低滤波器模式(LFM)字段507以及高滤波器模式(HFM)字段509。
图5B说明本发明一种实现方式中像素输入数据518的格式。输入数据518可以包括指定像素强度(例如,三分量子采样的LaLb像素的8比特红光亮度分量强度)的多个数据比特(在该实例中为输入数据518的较低8比特520)以及一个或多个动态切换模式(DSM)数据比特522。
参考图5A和5B,S_NS字段508可以表明是要实现可分离还是不可分离滤波器,将在下面详细描述这些。特别是,这个字段可以是关于2-D滤波器的。在一种实现方式中,1-D_2-D字段510可以表明正在实现1-D还是2-D滤波器。如同下面将详细描述的一样,1-D滤波器只可以实现水平方向(horizontal dimension)的滤波,而2-D滤波器可以实现水平和垂直方向的滤波。在一种实现方式中,NORM字段512可以表明滤波处理的输出是否要归一化。如果该输出要归一化,则可以由后处理单元418(图4)进行归一化处理。
在一种实现方式中,输入格式字段514可以表明输入像素数据是以例如单分量采样、三分量采样还是四分量子采样格式进入的。但是本发明并不局限于此,根据这里所公开的本发明也支持其它输入像素数据格式。此外,输入模式字段516可以表明输入像素数据是以单列方式还是多列方式(例如,两列、四列等)进入的。但是,对于输入像素数据模式和/或格式,本发明并不局限于此。
CSM字段502可以表明在实现用于图像处理的可编程抽头滤波器体系结构(例如图4中的PE400)时要使用的系数切换方法。在一种实现方式中,可以将CSM字段502应用于2-D不可分离滤波器,将在下面详细讨论这种滤波器。例如,CSM字段(也就是数据比特)502可以被重置(也就是被配置为二进制“0”值),以表明用于滤波的系数集合可以由输入数据518的DSM比特522(例如,输入像素分量值的最高位)动态地确定。在一种实现方式中,CSM502的值0和DSM522的值1可以表明要将非对称系数集合用于相关像素数据520的2-D不可分离滤波。在另一种实现方式中,CSM502的值0和DSM522的值1可以表明要将象限对称系数(quadrant-symmetriccoefficient)集合用于对这个像素数据520进行滤波。下面将针对图6、7和8详细描述这些和其它实现方式。
在一种实现方式中,可以将CSM字段502置位(也就是配置为二进制“1”值)以表明用于滤波的系数集合可以由模式寄存器406的SSM字段(或比特)504确定。在一种实现方式中,CSM502的值1和SSM504的值0可以表明要将非对称系数集合用于像素数据518的2-D不可分离滤波。在另一种实现方式中,CSM502的值1和SSM504的值1可以表明要将象限对称系数集合用于对像素数据520进行2-D不可分离滤波。下面将针对图6、7和8详细描述这些和其它实现方式。
本发明并不局限于CSM502和/或SSM504和/或DSM522值的特定组合,本领域技术人员会认识到,根据本发明的主题,可以利用CSM502和/或SSM504和/或DSM522值的其它组合。例如,CSM502的值0和DSM522的值1可以表明要将非对称系数集合用于相关像素输入数据的2-D不可分离滤波,而在另一种实现方式中,CSM502的值0和DSM522的值0可以表明要将非对称系数集合用于2-D不可分离滤波。显然,通过配置模式寄存器406中的CSM502和/或SSM504控制字段以及输入数据518的DSM522部分,根据本发明,不可分离滤波器单元416的多种实现方式都是可能的。
在一种实现方式中,可以配置BLND字段505来表明要执行可分离阶段II滤波器414A和414B的抽头输出的混合。具体是,在一种实现方式中,可以将BLND字段505应用于2-D可分离滤波器,如同下面将详细讨论的一样。在一种实现方式中,可以设置BLND字段505来向后处理单元418表明要将抽头输出“抽头A”和“抽头B”混合在一起,作为后处理的至少一部分,产生滤波后的图像数据,但是本发明并不局限于此。或者,可以设置BLND字段505来向后处理单元418表明抽头输出“抽头A”或者“抽头B”中的任一个要被后处理以产生滤波后的图像数据。
可以设置LFM字段507和/或HFM字段509来表明要由各个可分离阶段II滤波器414A和414B实现的滤波器的类型(例如,F3、F7、F9、F11等)。在一种实现方式中,LFM字段507和/或HFM字段509可以是3比特宽,对于可分离阶段II滤波器414A和414B的每一个允许六种不同滤波器设置,但是本发明并不局限于此。例如,将HFM字段509配置为(0,0,1)可以表明可分离阶段II滤波器414B要进行图像数据的F3滤波,而将LFM字段507配置为(1,0,1)则可以表明可分离阶段II滤波器414A要进行图像数据的F11滤波。可以设置LFM字段507和/或HFM字段509来表明各个可分离阶段不进行任何图像滤波,但是本发明并不局限于此。显然,通过配置模式寄存器406中的LFM字段507和/或HFM字段509控制字段,根据本发明,可分离阶段II滤波器414A和414B的多种实现方式都是可能的。
尽管上面已经列出了具体的模式寄存器字段,但是可以理解,在其它实现方式中,模式寄存器406可以包括更多、更少或者不同的字段。例如,模式寄存器406可以包括字段来表明列的高度、归一化值(也就是启用归一化时用来乘以滤波后的输出的值)、移位值(也就是滤波后的输出右移的比特数)和/或其它关于滤波器的信息。此外,结合模式寄存器406在上面讨论的一些或所有数据/控制字段都可以存储在其它地方或者以其它方式描述。
图6是更详细地说明本发明中系数源410的简化方框图。源410可以包括第一系数寄存器组(“组0”)602、第二系数寄存器组(“组1”)604和多路复用器606。寄存器组602和604可以包括能够存储和/或保存适合于对图像数据进行滤波的系数值集合608的任何机制。例如,组602和/或组604可以包括专用和/或通用寄存器。此外,虽然图6示出了两个寄存器组,但是本发明并不局限于此,本领域技术人员可以认识到,源410可以包括一个、三个或其它数目的寄存器组。
多路复用器606可以包括能够响应输入数据518的DSM字段522的值和/或响应模式寄存器406中存储和/或保存的SSM字段504的值,在多个系数集合608之间进行选择的任何机制。响应DSM和/或SSM值,多路复用器606可以向寄存器组602和/或604提供一个或多个系数集合608。例如,响应DSM522的零值,多路复用器606可以向寄存器组0提供系数集合0和/或向寄存器组1提供系数集合1,或者相反。显然,DSM522和/或SSM504的值的多个组合可以指示多路复用器606根据本发明向组602、604中的一个或二个提供系数集合608的不同组合。
图7是说明提供本发明中多特征可编程抽头滤波器的过程700的流程图。虽然为了便于说明,可以针对图1的系统100和图4、5、6中示出的系统100的组件描述过程700及相关过程,但是本发明并不局限于此。
过程700可以从配置图像滤波器(例如图4中的滤波器400),对一个像素输入值集合进行所选滤波操作来开始[操作702]。在一种实现方式中,配置图像滤波器可以包括从包括1-D滤波操作和一个或多个2-D滤波操作的一组操作中选择一个滤波操作。在一种实现方式中,可以通过模式寄存器406的1D_2D字段510的置位和/或复位来将滤波器400配置为用于1-D或2-D滤波操作。此外,可以从中选择的2-D滤波操作可以包括可分离2-D滤波操作和不可分离2-D滤波操作。在一种实现方式中,可以通过模式寄存器406的S_NS字段508的置位和/或复位来设置用于可分离或不可分离2-D滤波操作的滤波器。
在一种实现方式中,如果S_NS字段508表明滤波器400要执行可分离滤波,则以输入数据518的形式存储在存储器402中的图像数据可以被发送到阶段I滤波器单元408。在一种实现方式中,当阶段I滤波器单元408能够接受数据时,地址生成器404可以用来保证图像数据以适当的顺序发送到阶段I滤波器单元408。
在一种实现方式中,配置用于2-D滤波的滤波器400可以包括通过配置模式寄存器406中的LFM字段507和/或HFM字段509,指定由可分离阶段II滤波器414A和/或414B(例如F3、F7、F9、F11等等)所实现方式的滤波器。在另一实现方式中,可以通过配置模式寄存器406中的LFM字段507来指定由不可分离滤波器416(例如,F3、F7、F9、F11等)所实现的滤波器。
除了滤波器类型,还可以配置系数矩阵的大小(例如,F3、F5、F7等)以及输入数据的类型和其它参数。可以使用来自主处理器(例如,图1中的处理器112)或其它指令源的指令将配置信息载入到模式寄存器(例如,图4中的寄存器406)中。
可以提供水平方向和/或垂直方向的系数集合来继续过程700[操作704]。可以使这些系数矩阵和/或集合对图4的滤波阶段来说是可用的。可以通过将一个或多个系数集合载入到图5的系数源410来完成操作704。
可以通过将像素输入数据载入存储器来继续过程700[操作706](例如,可由可分离阶段I滤波器408和/或不可分离滤波器416访问的图4中的存储器402)。在一种实现方式中,如上所述的包括系数选择数据和/或数据比特(例如,图5A中的DSM数据522)的输入数据518可以在操作704载入。
可以通过确定是否要发生2-D滤波操作来继续过程700[操作708]。在一种实现方式中,一旦有足够的图像像素数据可用于滤波,操作708就可以发生。在一种实现方式中,2-D滤波操作是否发生可以通过模式寄存器406(图4)的1D_2D字段510的置位和/或复位来表明。如果未选择2-D滤波操作(也就是选择了1-D滤波操作),则可以执行不可分离滤波操作[操作710]。执行该操作的一种方式是使用图4的不可分离滤波器单元416来对图像像素数据进行滤波。在一种实现方式中,LFM字段507可以表明在操作710执行的1-D滤波(例如,F3、F5、F7或F11)。
如果选择了2-D滤波操作,则确定是否以要以可分离方式执行2-D滤波操作[操作712]。在一种实现方式中,可以通过模式寄存器406(图4)的S_NS字段508的置位和/或复位来表明可分离滤波操作。如果未选择2-D可分离滤波操作(也就是选择了2-D不可分离滤波操作),则可以执行不可分离滤波操作[操作710]。如上所述,执行该操作的一种方式是使用图4的不可分离滤波器单元416对图像像素数据进行滤波。在一种实现方式中,如果所选择的操作是不可分离操作,则可以将中间的滤波图像数据(也就是从阶段I滤波所产生的数据)相加在一起,每个值可以构成系数/像素值乘积的行和。如上所述,可以通过模式寄存器406中的LFM字段507的置位和/或复位来表明所执行的2-D不可分离滤波(例如,F3、F5、F7或F11)。
如果选择了2-D可分离滤波操作,则可以执行可分离阶段I滤波操作[操作714]。在一种实现方式中,可以通过使用可分离阶段I滤波器单元408在第一方向对像素数据520进行滤波来完成该操作。在一种实现方式中,第一方向是水平方向,并且阶段I滤波可以包含将像素值的子块乘以水平方向系数。在另一实现方式中,第一方向是垂直方向。在一种实现方式中,可以通过使用系数源410中存储和/或保存的非对称系数集合的水平系数来完成可分离2-D滤波操作的阶段I滤波,如同下面将详细描述的一样。在一种实现方式中,阶段I滤波器单元408在第一方向执行F3、F5、F7和F11滤波,产生F3、F5、F7和F11部分滤波的像素数据(也就是第一方向滤波的像素数据F3、F5、F7和F11)。
可以通过临时存储[操作716]由操作714中阶段I滤波操作所产生的一个或多个(例如,F3、F5、F7和F11)第一滤波器输出和/或抽头值来继续过程700。这可以通过将阶段I结果临时存储在图4的存储单元412中来完成。但是,本发明并不局限于此,本领域技术人员会认识到,可以不临时存储阶段I滤波的中间结果,而是将其直接用于进一步的处理。
可以通过执行可分离阶段II滤波来继续过程700[操作718]。进行这一操作的一种方式是将操作716中临时存储在存储单元412中的滤波过的中间图像数据(也就是阶段I滤波产生的数据)提供给可分离阶段II滤波器单元414A和414B,并且使得滤波器单元414A和414B在与第一方向正交的第二方向对该中间数据进行滤波。在一种实现方式中,2-D可分离阶段II滤波可以包括将阶段I滤波器输出值乘以垂直方向系数。在一种实现方式中,第二方向是水平方向。
可以在2-D可分离阶段II滤波处理(操作718)的输出和/或不可分离(1-D和/或2-D)处理(操作710)的输出的后处理[操作720]来继续过程700。这可以通过使后处理单元418对不可分离滤波器单元416的输出、可分离阶段I滤波器单元408的输出和/或可分离阶段II滤波器单元414A和414B的输出进行处理以产生滤波后的图像数据来完成。如上所述,后处理可以包括归一化、移位和/或舍入。后处理操作也可以包括混合和/或组合可分离阶段II滤波器414A和414B的相应抽头A和抽头B滤波后的图像数据输出。如上所述,可以通过模式寄存器406的BLND字段505的置位和/或复位来表明抽头A和抽头B的后处理混合。
在一种实现方式中,阶段II滤波器414A和414B在相应抽头A和抽头B处输出不同方向的滤波后的像素数据。例如,响应模式寄存器406的LFM507和/或HFM509字段,阶段II滤波器414A和414B可以在相应抽头A和B输出相邻的抽头,例如F3和F5或者F9和F11。在另一种实现方式中,阶段II滤波器414A和414B可以响应LFM507和/或HFM509字段在相应抽头A和B输出不相邻的抽头,例如F3和F7或者F3和F11。
然后,操作720中的后处理可以包括响应模式寄存器406的BLND字段505,混合和/或组合抽头A和B,以产生例如与来自相邻的F3和F5抽头输出的F4抽头滤波后的数据相对应的滤波后的图像数据,或者产生例如与来自不相邻的F3和F7抽头输出的F5抽头滤波后的数据相对应的滤波后的图像数据。当然,上述实现方式只覆盖了少数实例,阶段II滤波和随后的后处理的其它组合也符合本发明。
此外,本领域技术人员可以基于这里的描述想到其它处理变形。例如,操作702中的图像滤波器的配置可以进行一次,也可以响应操作704中的像素数据的不同部分的载入而重新进行,如同将在下面更详细地描述的一样。
可以通过确定是否已经处理了所有像素来继续过程700[操作722]。在一种实现方式中,主处理器112(图1)可以进行这一确定,并且通知图像处理器102(图1)内的滤波器400(图4)是否已经处理了特定图像的所有像素。如果不是所有像素都已经被处理,则可以选择图像像素数据的下一个子块来进行滤波(图像像素的相同或不同列中),并且该处理如图所示进行迭代。如果已经处理完要处理的所有像素,那么可以输出后处理程序的结果[操作724]。
现在将针对采用F11滤波器的示例性2-D不可分离滤波操作,更加详细地描述过程700的各个部分。针对该实例,图9A示出了示例性采样的、非对称系数集合902(例如,图6的系数集合608中的一个),该非对称系数集合902包括十一行和十一列系数,每个系数用列号和行号对来标记(例如,将第十一行、第十一列的系数标记为(11,11))。图9B示出了示例性采样的、象限对称系数集合904(例如,图6的系数集合608中的另一个),该象限对称系数集合904包括六行六列系数的四个对称象限。
参考图4~7和9,使用过程700的2-D不可分离F11滤波操作可以从通过模式寄存器406中的CSM字段502的置位和/或复位来配置图像滤波器400[操作702]开始。在一种实现方式中,如果CSM字段502被复位为“0”,那么可以响应在操作704中载入的像素数据的DSM字段522来动态地选择操作706中提供的系数集合。如果CSM字段502被置位为“1”,就响应模式寄存器406中的SSM字段504的值来选择操作706中提供的系数集合。
图8A更详细地说明过程700的操作704。操作704可以从确定是否允许系数集合的动态切换开始[操作802]。如果允许动态切换,就可以根据或响应输入数据而选择系数集合[操作804]。在一种实现方式中,可以通过将CSM字段502复位为“0”来允许和/或表明动态切换,在这种情况下,可以响应和/或根据输入数据518的DSM字段522来选择系数集合。如果不允许动态切换,则可以根据或响应静态数据来选择系数集合[操作806]。在一种实现方式中,可以通过将CSM字段置位为“1”来相反地表明动态切换,在这种情况下,可以响应和/或根据由模式寄存器的SSM字段504所表明的静态数据来选择系数集合。
在一种实现方式中,如果实现了2-D不可分离滤波并且允许动态切换(例如,对于一个给定像素,CSM字段502被复位为“0”并且DSM字段522被复位为“0”),则可以使用来自图9A的非对称系数集合902的系数的第一行的系数来对像素数据520进行滤波,以在阶段I滤波期间在水平方向对数据进行滤波。然后,在一种实现方式中,可以使用来自用于LFM模式的集合902的第二行的系数和/或使用来自用于HFM模式的集合902的第三行的系数来在阶段II滤波期间在垂直方向对像素数据520进行滤波。否则,如果为给定像素置位了DSM字段522(也就是具有值“1”),则可以使用图9B的象限对称系数来对该像素进行滤波。在这种实现方式中,每个像素的DSM值可以指令多路复用器606(图6)将集合608中的一个载入系数寄存器组602和/或604中的一个。
在一种实现方式中,如果对于给定像素,禁止动态切换(也就是CSM字段502被置位为“1”)并且如果SSM字段504被复位为“0”,则可以使用图9A的非对称系数集合对该像素进行滤波。否则,如果对于给定像素,SSM字段504被置位为“1”,则可以使用图9B的象限对称系数集合对该像素进行滤波。在该实现方式中,模式寄存器604中存储的SSM值可以指令多路复用器606(图6)将集合608中的一个载入系数寄存器组602和/或604之一。但是,本发明并不局限于这种模式的操作,而是可以实现符合本发明的其它模式。例如,在不脱离本发明的范围和精神的情况下,CSM和/或SSM字段的逻辑定义可以是不同的(例如,可以通过将CSM字段502置位为“1”来允许动态切换)。
图8B更详细地说明过程700的操作710。操作710可以从配置LFM字段507开始[操作810]。例如,主处理器112可以配置和/或置位和/或复位模式寄存器406中的LFM字段507,以表明由滤波器单元416实现的特定方向(例如,F3、F5、F7或F11)的2-D不可分离滤波器。响应LFM字段507的值,可以配置不可分离滤波器单元416[操作812]。例如,如上所述,根据LFM字段507的值,可以配置单元416以执行F3、F5、F7、F9和/或F11不可分离2-D滤波和/或不执行滤波。操作710可以以执行所表明的不可分离2-D滤波来结束[操作814]。
图8C更详细地说明过程700的操作718。操作718可以从配置LFM字段507开始[操作816]。例如,主处理器112可以配置和/或置位和/或复位模式寄存器406中的LFM字段507,以表明由滤波器单元414A实现的特定方向(例如,F3、F5、F7或F11)的2-D可分离滤波器。操作718可以继续配置HFM字段509[操作818]。例如,主处理器112可以配置和/或置位和/或复位模式寄存器406中的HFM字段509,以表明由滤波器单元414B实现的特定方向(例如,F3、F5、F7或F11)的2-D可分离滤波器。
尽管图8C说明操作816在操作818之前,但是本领域技术人员会认识到根据本发明,操作818可以在操作816之前和/或与操作816结合进行。响应LFM字段507和HFM字段509的值,可以配置可分离阶段II滤波器单元414A和/或414B[操作820]。例如,如上所述,根据LFM字段507和HFM字段509的值,可以独立地配置单元414A和414B以执行F3、F5、F7、F9和/或F11不可分离2-D滤波和/或不进行滤波。操作718可以以执行所表明的2-D可分离阶段II滤波来结束[操作822]。
图8D更详细地说明过程700的操作720。操作720可以从以配置BLND字段505开始[操作824]。例如,主处理器112可以配置和/或置位和/或复位模式寄存器406中的BLND字段505,以表明是否应该由后处理单元418对滤波后的输出“抽头A”和“抽头B”进行混合。响应BLND字段505的值,可以配置后处理单元418[操作826]。例如,如上所述,根据BLND字段507的值,可以配置单元418以混合“抽头A”和“抽头B”滤波后的抽头输出或相应的可分离阶段II滤波器单元414A和414B。操作720可以以执行所表明的后处理来结束[操作828]。
图7和/或图8A~D所示的操作不必以图示顺序执行;也不是所有的操作都必须执行。例如,在动态系数切换的情况下,操作704中的系数滤波器的配置可以动态地发生,并且可以在操作702中载入像素数据之后出现。同样,可以在操作816中配置LFM字段之前、之中或之后在操作818中配置HFM字段。并且,那些不互相依赖的操作可以与其它操作并行地执行。进一步地,可以将图示操作中的至少一些实现为指令或者指令集合,在机器可读介质中实现。
符合本发明的原则的一种或多种实现方式的上述描述提供了说明和描述,但是它们并不是排它性的,也不是要将本发明的范围限制到所公开的精确的形式。根据上述教导,许多修改和变形都是可能的,或者可以从本发明的各种实现方式的实践中得到。例如,多特征可编程抽头滤波器图像处理的系统、装置和方法并不局限于利用采样的非对称和/或象限对称系数集合提供抽头滤波的系统或装置。相反,本发明还考虑了使用子采样的非对称和/或象限对称系数集合的抽头滤波。此外,虽然图7和8以及所附文字可以描述对图像数据的部分进行顺序抽头滤波的过程,但是本发明还考虑了其它过程。例如,在一种实现方式中,可以利用两个或更多个适当配置的图像处理器102的PE来同时对图像数据的两个或更多个部分进行抽头滤波。很清楚,可以采样许多其它实现方式来提供符合本发明的多特征可编程抽头滤波器图像处理。
不能将本申请的描述中所使用的单元、操作或指令理解为对于本发明是重要的或本质的,除了明确地这样说过的以外。同样,如同这里所使用的一样,冠词“一个”包括一或更多项。可以对本发明的上述实现方式进行各种变形和修改,而不会在本质上偏离本发明的精神和原则。所有的这种修改和变形在这里都包括在本公开的范围内,并由所附的权利要求保护。
权利要求
1.一种方法,包括至少配置第一指示符;至少响应所述第一指示符来选择系数集合;以及使用所选择的系数集合对图像数据进行滤波。
2.如权利要求1所述的方法,其中至少响应所述第一指示符来选择系数集合还包括至少响应第二指示符来选择系数集合。
3.如权利要求2所述的方法,其中所述第一和第二指示符包括存储在寄存器和/或存储器中的数据比特。
4.如权利要求1所述的方法,其中至少响应所述第一指示符来选择系数集合还包括响应与输入数据相关的一个或多个指示符来选择系数集合。
5.如权利要求4所述的方法,其中所述输入数据与所述图像数据相关。
6.如权利要求5所述的方法,其中所述图像数据包括像素数据,并且其中所述输入数据包括所述像素数据的一个或多个比特。
7.如权利要求1所述的方法,还包括选择性地输出滤波后的图像数据,其中所述滤波后的图像数据可以被选择性地输出为相邻的抽头滤波器输出数据或者不相邻的抽头滤波器输出数据。
8.如权利要求7所述的方法,还包括混合所述相邻的抽头滤波器输出数据或者所述不相邻的抽头滤波器输出数据,以产生混合的抽头滤波器输出数据。
9.一种系统,包括图像数据源,用于提供图像像素数据;图像滤波系数源,用于提供多个图像滤波系数集合;以及响应所述图像数据源和所述图像滤波系数源的图像处理逻辑,所述图像处理逻辑能够使用由一个或多个指示符所指定的一个或多个图像滤波系数集合,至少对所述图像像素数据进行滤波。
10.如权利要求9所述的系统,其中所述图像处理逻辑还包括寄存器,并且其中所述寄存器存储所述一个或多个指示符中的至少一个。
11.如权利要求9所述的系统,其中所述一个或多个指示符包括与所述图像像素数据相关的至少一个指示符。
12.如权利要求11所述的系统,其中与所述图像像素数据相关的至少一个指示符包括所述图像像素数据的一个或多个比特。
13.如权利要求11所述的系统,所述图像处理逻辑还能够响应与所述图像像素数据相关的至少一个指示符,动态地对所述图像像素数据进行滤波。
14.如权利要求9所述的系统,其中所述图像处理逻辑还能够混合相邻的和/或不相邻的抽头滤波器输出,以产生混合的抽头滤波器输出。
15.一种设备,包括图像滤波系数源,用于提供多个图像滤波系数集合;寄存器,该寄存器包括一个或多个指示符;以及响应所述图像滤波系数源和所述一个或多个指示符的图像处理逻辑,所述图像处理逻辑至少能够执行下列操作响应所述一个或多个指示符,选择所述多个图像滤波系数集合中的一个或多个图像滤波系数集合;以及使用所述一个或多个所选择的系数集合的滤波系数,对图像数据进行滤波。
16.如权利要求15所述的设备,其中所述图像处理逻辑还能够响应与所述图像数据相关的指示符数据,选择一个或多个图像滤波系数集合。
17.如权利要求16所述的设备,其中所述一个或多个指示符包括至少一个指示符,用于表明所述图像处理逻辑应该响应与所述图像数据相关的指示符数据,选择一个或多个图像滤波系数集合。
18.如权利要求15所述的设备,其中所述图像处理逻辑包括第一可分离滤波器单元;以及第二可分离滤波器单元,其中所述第一可分离滤波器单元响应所述一个或多个指示符中的一个指示符,在第一方向对图像数据进行滤波,并且其中所述第二可分离滤波器单元响应所述一个或多个指示符中的一个不同的指示符,在第二方向对图像数据进行滤波。
19.如权利要求18所述的设备,其中所述图像处理逻辑还能够将所述第一可分离滤波器单元的滤波后的输出数据与所述第二可分离滤波器单元的滤波后的输出数据进行混合。
20.如权利要求18所述的设备,其中所述第一和第二可分离滤波器单元能够输出相邻的和/或不相邻的抽头滤波后的图像数据。
全文摘要
公开了用于提供多特征可编程抽头滤波器体系结构用于图像处理的装置、系统和方法。在一种实现方式中,系统包括图像数据源,用于提供图像像素数据;图像滤波系数源,用于提供多个图像滤波系数集合;以及图像处理逻辑,能够利用由一个或多个指示符所指定的一个或多个图像滤波系数集合对所述图像像素数据进行滤波。所述处理逻辑还能够混合相邻的和/或不相邻的抽头滤波器输出来产生混合的抽头滤波器输出。
文档编号G06T5/20GK101088105SQ200580044892
公开日2007年12月12日 申请日期2005年12月27日 优先权日2004年12月27日
发明者S·塔达斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1