滤波器机制的制作方法

文档序号:6503930阅读:220来源:国知局
专利名称:滤波器机制的制作方法
技术领域
本发明涉及计算机系统;本发明尤其涉及计算机系统内的图像处理,背景技术当前在困像和视频处理系统中实现等级滤波器(rankfilter).等 级滤波器是一种困像处理算法,用于把每个像素p替换成相对于在p 附近像素的等级.因而如果p是其附近处最亮的像素,那么它被映射 为白色.如果p是最暗的像素,那么它被映射为黑色,此外,如果p 是中值像素,那么它被映射为50% (灰色).当前等级滤波器算法的问題在于要求相对大量的处理时间来产生 输出.例如,可能出现多达30个比较步骤,这会需要多达十个时钟周 期的处理时间.


根据以下详细描述和本发明各个实施例的附闺,将更完全地理解 本发明.然而附困不应当将本发明限制为具体实施例,而只是用于解 释和理解本发明.图l是计算机系统的一个实施例的框围;困2困示了闺像处理集成电路的一个实施例;困3图示了困像信号处理器的一个实施例;困4图示了等级算法的一个实施例;闺5困示了在困像处理元件内所实现的等级算法的一个实施例; 困6是用于在困像处理元件内实现等級算法的一个实施例的流程 图;和困7图示了等级算法的另一实施例.具体实施方式
下面描述一种用于在信号处理器的多个处理元件内实现等級和中 值算法的机制.说明书中对"一个实施例"或"一实施例"的引用意 味着把结合实施例所描述的特定特征、结构或特性包括在本发明的至 少一个实施例中.在说明书的不同位置处所出现的短语"在一个实施
例中"未必都指的是相同的实施例.在下面描述中,阐明了许多细节.然而,很明显,对于本领域技术人员来说,在没有这些具体细节的情况下也可以实施本发明.在其它实例中,众所周知的结构和装置以框困形式示出,而没有给出详细描述,以免模糊本发明.就操作计算机存储器内数据位操作的算法和符号表示而言,描述一些详细说明的部分.这些算法的描迷和表示是由在数据处理领域的 那些技术人员用来向其它本领域内技术人员传达他们工作实质的方 式.这里通常把算法认为是产生期望结果的自相容的步骤序列.所述 步骤要求对物理量进行物理操作.通常,但并不一定是,这些量采取能 够被存储、转送、组合、比较及其它操纵的电或磁信号的形式.主要 为了通用的原因,把这些信号称为位、值、元素、符号、字符、项、 数目等等已经被证明有时是方便的.然而应该记住,所有这些和类似的术语与适当的物理重相关联并 且仅仅是应用于这些量的便利标签.除非特别声明,否则在以下论述 中,显然应当理解遍及说明书,利用诸如"处理"或"计算"或"运 算"或"确定"或"显示"等术语的论述,指的是计算机系统或类似 电子计算设备的动作和处理,所迷计算机系统或类似的电子计算设备 操纵在计算机系统的寄存器和存储器内被表示为物理(电子)量的数 据并将其变换为在所述计算机系统存储器或寄存器或其它这种信息存储装置、传榆或显示装置内被类似表示为物理量的其它数据.本发明还涉及一种用于执行这里所述操作的设备.为所要求的目 的可以专门地构造此设备,或者其可以包括由存储在计算机中的计算 机程序来有选摔地激活或重新配置的通用计算机.这种计算机程序可 以被存储在计算机可读存储介质中,诸如,但不局限于,任何类型的磁盘,包括软盘、光盘、CD-ROM、和磁光盘、只读存储器(ROM)、 随机存取存储器(RAM) 、 EPROM、 EEPROM、磁或光卡或适于存储电子指令的任何类型的介质,并且均耦合到计算机系统总线.这里所提出的算法和显示并不与任何计算机或其它设备内在相 关.依照这里的教导各种通用系统可以与程序一起使用,或者可以证 明便于构造用于执行所要求方法步骤的更专门的设备.从下面描述中 各种这些系统所要求的结构变得更加清楚.另外,并不参考任何特定 的编程语言来描述本发明.应当理解的是,各种编程语言都可用于执 行这里所描述的本发明的教导.编程语言的指令可以由一个或多个处理装置(例如,处理器、控制器、控制处理单元(CPU)、执行核心等)来执行.困1是计算机系统100的一个实施例的框困.计算机系统100包 括用于处理数据信号的处理器101.处理器101可以是复杂指令系统计 算机(complex instruction set computer CISC)微处理器、精简指令集 计算(reducedhistnictionsetcompiitiiigRISC)微处理器、超长指令字 (very long instruction word VLIW)微处理器、用于实现指令集组合 的处理器或其它处理器装置.在一个实施例中,处理器101是可从California的Santa Clara的 Intel公司获得的、包括Pentium IV系列和移动Pentium 和Pentium IV处理器的Peiitium⑧处理器系列中的处理器,作为选择,可以使用其 它处理器.困1示出了使用单处理器计算机的计算机系统100的例子. 然而, 一个本领域普通技术人员应当理解使用多处理器可以实现计算机系统ioo.处理器101被耦合到处理器总线110.处理器总线110在计算机系 统100中的处理器101及其它组件之间传送数据信号.计算机系统100 还包括存储器113.在一个实施例中,存储器113是动态随机存取存储 器(DRAM)装置,然而在其它实施例中,存储器113可以是静态随 机存取存储器(SRAM)装置或其它存储装置.存储器113可以存储由处理器101执行的用数据信号所表示的指 令和代码.依照一个实施例,高速緩冲存储器102位于处理器101内 并且存储数据信号,所述数据信号也存储在存储器113中.髙速援存 器102通过利用存储器的访问局部性来加速处理器101的存储器访 问.在另一实施例中,高速緩存器102驻留在处理器101之外.计算机系统100还包括耦合到处理器总线110和存储器113上的 芯片组111.芯片组111在计算机系统100中的处理器101、存储器113 及其它组件之间引导数据信号并且在处理器总线110、存储器113和笫 一输入/输出(I/O)总线120之间桥接所述数据信号.在一个实施例中,1/O总线U0可以是单总线或多总线的组合。在 进一步的实施例中,I/O总线l加可以是連循由Oregon的Portland的 PCI专业组(Special Interest Group)所开发的规范修订版2.1总线的 外围组件互连.在另一实施例中,I/O总线120可以是由California的 San Jose的PCMCIA所开发的个人计算机存储卡国际联合^( Personal Computer Memory Card International AssociationPCMCIA)总线,作 为选择,可以使用其它总线来实现IZO总线.1/O总线120在计算机系 统100中的组件之间提供通信链路.网络控制器121被辆合到I/O总线120.网络控制器121把计算机 系统IOO链接到计算机网络(在闺1中未示出)并且支持在机器之间 的通信.在一个实施例中,计算机系统100经由网络控制器121从计 算机IIO接收流送的视频数据.显示装置控制器122还被耦合到1/0总线120.显示装置控制器122 能够使显示装置辆合到计算机系统100,并且充当所述显示装置和计算 机系统100之间的接口.在一个实施例中,显示装里控制器122是单 色显示适配卡(monochrome display adapter MDA)卡,在其它实施例中,显示装置控制器122可以是彩色困形适配(color graphics adapter CGA)卡、增强困形适配(enhanced graphics adapter EGA)卡、扩展困形阵列(extendedgraphics arrayXGA)卡或其它显 示装置控制器。显示装置可以是电视机、计算机监視器、平板显示器 或其它显示装置.显示装置通过显示装置控制器122从处理器101接 收数据信号并且向计算机系统IOO的用户显示信息和数据信号.视频解码器123也被耦合到I/O总线120.视频解码器123是用于 把所接收的编码数据转换为其原始格式的硬件装置.依照一个实施 例,枧频解码器123是活动困像专家組4( Moving Picture Expert Group 4MPEG-4)解码器.然而, 一个本领域普通技术人员应当理解,视 频解码器123可以利用其它类型的MPEG解码器来实现.困像处理器124也被耦合到I/0总线120.在一个实施例中,困像 处理器124是用于执行在计算机系统100所接收的闺像数据的并行、 可扩展的可编程处理器.然而, 一个本领域普通技术人员应当理解对 于其它处理应用(例如,数字视频)也可以实现处理器124.图2困示了困像处理器124的一个实施例,困像处理器124包括 大量的闺《象信号处理器(image signal processors ISP) 200.在一个实 施例中,闺像处理器124包括彼此经由可编程端口 (四芯端口)相互耦合的九个ISP200 (ISP0-ISP8).另外,四芯端口可以把ISP耦合 到双数据速率SDRAM (DDR),未示出.图3困示了 ISP 200的一个实施例.ISP 200包括耦合到寄存器堆 开关350的各个处理元件(processingelementPE) 特別地是,PE包 括输入PE (IPE) 310、输出PE (OPE) 320、通用PE (GPE)和两 个乘-加PE (MACPE) 340.寄存器堆开关350在PE之间提供了快 速且高效的互连机制.在一个实施例中,依照使通信开销最小化的方式来把多个单线程 映射到PE。在进一步的实施例中,ISP200的程序设计模型使每个PE 实现算法的一部分,并且使数据从一个PE流到另一个PE并且从一个 ISP流到另 一个ISP直到所述数据被完全处理.依照一个实施例,每个PE使用数据驱动机制来处理数据.在此方 法中,系统中的每个数据片具有一组数据有效(Data Valid DV)位, 用于表明所述数据打算供哪个PE使用.因而,如果寄存器数据打算供 两个PE (例如,GPE 330和MACPE 340)使用,那么设置寄存器的 DV位为O和l.如杲GPE330不再需要数据,那么它复位DV位.当寄存器中用于所有消费者PE的DV位被复位时,生产者PE可 以继续并且利用一组新的DV位设置来把新的数据写入寄存器中.否 则,生产者PE就被停止直到消费者PE将它们各自的DV位复位为止. 类似地是,如果PE试困从寄存器读取数据片并且如果其DV位未被设 置,那么PE就被停止直到具有对应于消费者PE设置的DV位的数据 为止.此机制提供了一种用于共享并使用寄存器的方法并且显著地简 化用户程序设计模型.IPE 310被辆合到四芯端口用以接收输入数据流并且把所述数据 路由到ISP 200内的其它PE. OPE 320被辆合到四芯端口用以一旦已 经在ISP200处理了数据,那么就发送输出数据流(例如向邻近的ISP 200发送).GPE330是基本PE,基于所述基本PE构造其它PE.对 于特定的ISP 200, MACPE 240执行数学函数,诸如乘和累加.尽管 在困3中未示出,每个PE包括大量本地寄存器(local register LR)和 间接寄存器(indirect register IR),未示出.依照一个实施例,实现ISP 200内的PE以便执行等级和中值滤波 器算法,等级滤波器是通常用于困像和视频处理的一类非线性滤波 器.等级滤波器对一组像素值操作.n阶等级滤波器依照幅度递增次序 布置输入像素值并且输出笫n个元素.例如,3x3等级滤波器接收一个 3行每行3个元素的2-D阵列.依照递增幅度次序布置榆入像素值并且 等级(5)输出此分类阵列的第5个元素.使用冒泡排序法或快速排序法来来对9个元素的阵列进行排序, 然后挑出第五个元素.候选方式往往是一直排序直到第五个元素为 止.第五个元素表示阵列的中值.中值将减少困像中的噪声,此排序 直到第五个元素的方法包括30次比较(例如,8次比较用于获得笫1 元素,7次比较用于获得第2个元素...,并且4次比较用于获得第5个 元素).另一方法是Waltz算法.困4困示了 Waltz全等级算法的一个实 施例.经由大量比较操作410来实现所述算法.比较操作410比较两 个输入值并且提供了两个输出值.左输出表示所比较值的最小值,而 右输出表示两个值中的最大值.如闺4所示,使用二十三次比较操作 410来分级九个值.然而,在计算笫五个元素中只涉及十九次比较操作 410.用粗体方块表示这些比较操作410.在一个实施例中,通过把各个比较搮作映射到不同的PE来处理 Walte算法以便计算中值滤波器.困5困示了在一个ISP200内所实现 的中值滤波器算法的一个实施例.依照一个实施例,在ISP200的两个 像素列中接收该阵列.参照困5,在IPE310执行中值滤波器比较操作 410的第一阶段用以排序像素值.另外,比较操作410的笫二阶段在 GPE 330和MACPE 340之间是分离的.在一个实施例中,最左的MACPE 340计算从IPE M0所接收的最 小值中的最大值.第二个MACPE计算从IPE 310所接收的中值中的 中值.此外,GPE 330计算从IPE 310所接收的最大值中的最小值. OPE 320接收最大的最小值、中值的中值以及最小的最大值并且输出 所述中值.图6是在ISP200内实现中值算法的一个实施例的流程困,在处理 块610中,排序输入像素.在一个实施例中,对输入像素的列进行排 序以使最小值处于第O行,中值处于笫l行,最大值处于第2行.这 可以在IPE 310中依照压縮格式来执行( 一次2个像素).在一个实施例中,IPE 310使用Dual MIN (MNMN)和Dual MAX (MXMX)指令来对输入数据列排序(一次2列).在一个实施例中, 数据被从北部四芯端口馈送而来并且结果被输出到ISP 200内的通用 寄存器.Dual min操作比较LR0和LR1的低和高字节并且把最小值置 于目的寄存器(例如,LR2)中.在处理块620中,计算最大值行(RowMax)中的最小值.在一个 实施例中,在最左边MACPE 340计算第0行(最小值行)的3个元素 的最大值, 一次一个像素.罔而,MACPE340采用最小值行的最大值. 从GR (例如,从IPE 310预先排序的列)接收用于这一操作的数据并 且把结果写出到用于OPE 320的GR.在一个实施例中,数据处于GRO (低和高字节)和GR4 (高字节)中.在处理块630,计算中值行(RowMed)的中值,在这一阶段,在 笫二MACPE340计算第l行(中值行)的3个元素的中值, 一次一个 像素.MACPE340采用中值行的中值.数据来自GR并且把结果写出 到用于OPE 320的GR.在一个实施例中,数据处于GR1 (低和高字 节)和GR5 (高字节)中,在处理块640,计算最小值行(RowMin)的最大值.在这一阶段, 在GPE 330计算笫2行的3个元素的最小值, 一次一个像素,在一个 实施例中,GPE采用最大值行的最小值,数据来自GR (从IPE 310 预先排序的列)并且把结果写出到用于OPE 340的GR.在一个实施 例中,数据处于GR2 (低和高字节)和GR6 (高字节).在处理块650,计算整体中值.在这一阶段,在OPE 320计算 RowMax、 RowMed和RowMin的中值, 一次一个像素.结果是3x3 像素的整体中值.用于这一搮作的数据来自GR (MACPE 340和GPE 330所计算的),并且结果被写出到南部四芯端口.在一个实施例中, 数据处于GR12 (低和高字节)、GR13 (高字节)和GR14 (低和高字 节),由于PE并发运行,所以最大吞吐量受到花费最长时间来生成输出 的PE的限制.在一个实施例中,用于计算RowMed的PE (5个时钟 周期)是最长的.因此可以在五个时钟周期内计算中值.注意,上述ISP 200流水线可以用来计算任何等级或全等级的滤波 器.用于Waltz算法的全等级滤波器都具有误差.在个别测试愔况下, Waltz的数据流程闺是失效的.它发生失效的通常情况是输入数据被预
先排序(1, 2, 3, 4, 5, 6, 7, 8和9)的情况,图7图示了校正的Waltz等级算法的实施例.在原始数据流程图 中,没有从4到等级4输出的路径.在校正的算法中,已经添加了一 条路径,此路径包括比较操作710.路径插入的结果将校正从1到9的等级次序滤波器.上面已经描述了对ISP结构实现等级滤波器的一种高效方法.所 描述的映射方法利用通用寄存器的广播性质并且使用在ISP内所有可 用的资源以便向3x3中值滤波提供非常高的吞吐量.中值滤波(特别 是3x3)被认为是许多图像和视频处理应用中的重要基准.另外,已经 校正了通用的全等级滤波器的Waltz算法,使得可以使用所建议的映 射方法来在ISP中实现任何3x3等级滤波器.尽管在阅读以上描述之后本发明的许多改变和修改对本领域普通 技术人员来说无疑变得更加清楚,然而应当理解借助例困所示出并描述的任何特定实施例的目的决不是要视为限制性的,因此,对各个实 施例的细节的引用目的并在于限制权利要求的范围,在权利要求中只 记栽了视为是本发明的那些特征.
权利要求
1. 一种系统,包括困像处理器,包括笫一困像信号处理器(ISP),具有两个或多个 处理元件(PE),用于经由多个困像滤波器比较操作来并发处理像素 值阵列.
2. 如权利要求l所述的系统,其中所述困像处理器还包括 耦合到所述第一ISP的四芯端口;和 耦合到所述四芯端口的第二 ISP.
3. 如权利要求l所述的系统,其中所述滤波器比较操作被作为中 值滤波器的功能来处理.
4. 如权利要求l所述的系统,其中所述滤波器比较操作被作为等
5. 如权利要求4所述的系统,其中所述等级滤波器包括Waltz等 级算法.
6. 如权利要求l所迷的系统,其中所述ISP包括 输入PE ( IPE );输出PR (OPE); 通用PE (GPE ); 第一乘和累加PE (MACPE);和 第二MACPE.
7. 如权利要求6所述的系统,其中所述ISP还包括在所述IPE、 OPE、 GPE、笫一 MACPE和笫二 MACPE之间耦合的寄存器堆开关.
8. 如权利要求6所述的系统,其中所述IPE执行笫一组比较操作来排序像素值阵列.
9. 如权利要求8所迷的系统,其中所述第一 MACPE执行笫二组比较操作来计算从IPE所接收的排序的像素值的最小值中的最大值.
10. 如权利要求9所述的系统,其中所述第二 MACPE执行第三 组比较操作来计算从IPE所接收的排序的像素值的中值中的中值.
11. 如权利要求10所述的系统,其中所迷GPE执行第四组比较 操作来计算从IPE所接收的排序的像素值的最大值中的最小值.
12. 如权利要求11所述的系统,其中所迷OPE执行笫五组比较 操作来计算中值.
13. —种方法,包括 在困像信号处理器接收困像像素阵列;在第一处理元件(PE)执行笫一组滤波器比较操作来处理困像像 素阵列的像素值;并且在第二处理元件PE执行第二组滤波器比较操作来处理所述像素值.
14. 如权利要求13所迷的方法,其中执行第一组滤波器比较操作包括排序所述困像像素阵列。
15. 如权利要求14所述的方法,其中执行笫二组滤波器比较操作 包括排序困像像素阵列以计算所排序的像素值的最小值中的最大值.
16. 如权利要求15所述的方法,还包括执行笫三组滤波器比较操 作来计算所排序的像素值的中值中的中值.
17. 如权利要求16所述的方法,还包括执行笫四组滤波器比较操 作来计算中值.
18. —种处理器,包括第一闺像信号处理器(ISP),具有多个处理元件(PE),用于经由多个困像滤波器比较操作来并发处理像素值阵列.
19. 如权利要求18所述的处理器,还包括 耦合到所述笫一ISP的四芯端口;和 耦合到所述四芯端口的第二 ISP.
20. 如权利要求18所迷的处理器,其中所述滤波器比较操作被作为中值滤波器的功能来处理.
21. 如权利要求18所述的处理器,其中所述滤波器比较操作被作为等级滤波器的功能来处理.
22. 如权利要求21所述的处理器,其中所迷等级滤波器包括Waltz 等级算法.
23. 如权利要求18所述的处理器,其中所述ISP包括 输入PE ( IPE );输出PR (OPE); 通用PE ( GPE); 笫一乘和累加PE (MACPE);和 笫二MACPE.
24. 如权利要求23所述的处理器,其中所述ISP还包括在所述 IPE、 OPE、 GPE、笫一MACPE和第二MACPE之间耦合的寄存器堆 开关.
25. 如权利要求23所述的处理器,其中所述IPE执行第一组比较操作来排序像素值阵列.
26. 如权利要求25所迷的处理器,其中所述笫一MACPE执行第 二组比较操作来计算从IPE所接收的排序的像素值的最小值中的最大 值.
27. 如权利要求26所述的处理器,其中所述笫二MACPE执行第 三组比较操作来计算从IPE所接收的排序的像素值的中值中的中值.
28. 如权利要求27所述的处理器,其中所述GPE执行第四组比 较操作来计算从IPE所接收的排序的像素值的最大值中的最小值.
29. 如权利要求28所述的处理器,其中所述OPE执行笫五组比 较操作来计算中值.
30. —种系统,包括 中央处理单元(CPU); 耦合到所述CPU的芯片组; 耦合到所述芯片组的存储装置;和耦合到所述芯片组的围像处理器,具有第一闺像信号处理器 (ISP),所述笫一图^f象信号处理器具有两个或多个处理元件(PE), 用于经由多个困像滤波器比较搮作来并发处理像素值阵列.
31. 如权利要求30所述的系统,其中所迷ISP包括 输入PE (IPE);输出PR (OPE); 通用PE ( GPE); 笫一乘和累加PE (MACPE) ,和 第二MACPE,
32. 如权利要求31所迷的系统,其中所述ISP还包括在所述IPE、 OPE、 GPE、笫一 MACPE和第二 MACPE之间耦合的寄存器堆开关.
33. 如权利要求31所述的系统,其中所述IPE执行笫一组比较操作来排序像素值阵列.
34. 如权利要求33所迷的系统,其中所述笫一 MACPE执行笫二 组比较操作来计算从IPE所接收的排序的像素值的最小值中的最大 值。
35. 如权利要求34所述的系统,其中所述笫二MACPE执行笫三 组比较操作来计算从IPE所接收的排序的像素值的中值中的中值。
36. 如权利要求35所述的系统,其中所述GPE执行笫四组比较 操作来计算从IPE所接收的排序的像素值的最大值中的最小值.
37. 如权利要求36所述的系统,其中所述OPE执行第五组比较操作来计算中值.
全文摘要
依照一个实施例,公开了一种计算机系统。该计算机系统包括图像处理器。图像处理器包括具有两个或多个处理元件的图像信号处理器。该处理元件经由多个图像滤波器比较操作来并发处理像素值阵列。
文档编号G06T5/00GK101147171SQ200480039352
公开日2008年3月19日 申请日期2004年12月21日 优先权日2003年12月29日
发明者K·D·梅塔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1