用于减少视频数据中块人工产物的过滤的制作方法

文档序号:7863475阅读:204来源:国知局
专利名称:用于减少视频数据中块人工产物的过滤的制作方法
技术领域
本发明针对信号处理,更具体来说,针对信号处理中的解块过滤。
包括微处理器和数字信号处理器在内的计算机装置已经被设计用于广泛的应用,并且已经用于实际上各行各业。为了种种原因,这些应用中的许多应用针对处理数据、如视频和音频数据,并且要求最小功耗水平和紧凑性。一些应用还要求可在实时或准实时基础上有效执行的高速计算引擎。这些数据处理应用中的许多应用要求能够以不断提高的速度执行多个功能的数据信号处理电路。
各种视频和音频信号处理应用,诸如包括MPEG-4的活动图像专家组(MPEG)应用、数字电视、交互式图形应用(例如合成内容)、交互式多媒体以及其它应用,采用使各种应用的各种数据能够集成的标准化技术元件。例如,诸如数字电视、交互式图形应用(例如合成内容)和交互式多媒体(例如万维网、内容的分发和访问)等视频应用的产生、分发和内容访问范例可以被集成。对于这些和其它应用,MPEG-4标准提供了一组技术来满足作者、服务提供商和最终用户等的需要,改善集成这些应用的能力。关于MPEG-4标准的更多信息,可参考可从意大利的托里诺的Telecom Italia Lab的国际标准化组织的活动图像专家组得到的“MPEG-4标准的概况”。
MPEG-4标准提供表示称作“媒体对象”的诸如可听、可视和/或视听内容的内容单元的标准方法。这些媒体对象可以是自然或合成来源的,诸如用照相机或话筒录制的自然内容或者合成的计算机生成内容。描述这些媒体对象的组合以创建形成视听画面的复合媒体对象。与媒体对象相关的数据经过复用和同步,使得它能够通过网络信道传输,从而提供适合特定媒体对象的性质的服务质量(QoS),以及与接收机端生成的视听画面交互。
在信号处理应用、例如采用MPEG-4标准的那些应用中,过滤信号数据有时是有益的。例如,MPEG-4压缩对8×8像素块进行操作,这些像素一般经由利用32位总线的8次双字总线访问从存储器读取和/或写入存储器。在存储器中,这些像素为小字节在先(littleendian);较大的字节地址包含较高编号的像素,其中各像素具有8位值。通过这个方法,一个32位字包含一般称作四元组的4个像素。MPEG-4压缩是有损的;由解压缩步骤产生的8×8像素块可能不同于输入到压缩步骤的8×8块。因此,当多个8×8像素块组装成图像时,8×8块之间的边界可能很明显(例如,图像呈现水平和垂直边缘形式的“块状效应”)。为了解决块状效应,定义由像素位置所确定的视频对象边缘的数据可经过过滤以提供更好的图像。但是,这种过滤一直是个难题,因为各种数据的过滤,例如对于水平和垂直边缘过滤,通常采用不同类型的过滤器。另外,许多先前的过滤方法没有有效地利用门电路和/或存储器周期,这可能不合需要地要求较高带宽和较大存储器。
本发明针对解决包括上述内容在内的信号处理应用的实现和集成的难题,以及解决MPEG-4中的信号过滤和其它类型的信号处理的难题。
本发明的各个方面针对信号处理应用中的过滤,以及在更具体的应用中,针对配合MPEG-4应用的解块过滤。
根据本发明的一个示例实施例,采用数据存储装置和过滤电路对视频信号的像素数据块之间的边缘数据进行过滤。单一数据存储装置可用于垂直和水平过滤,其中在第一步骤中存储和过滤的数据在写回到存储器之前在后续步骤中被再用。通过这种方法,由于能够为后续过滤操作将数据保持在存储装置中,而不是把数据写回到存储器并在某段时间之后重新读取该数据,因此可减小存储器带宽。另外,加载和/或卸载(从存储器读取以及写入存储器)可与将数据从存储装置的第一部分移到第二部分同时进行,这是高效的,因为它可在单个时钟周期中完成。
在本发明的一个更具体的示例实施例中,共用图像中边缘的毗连像素数据块分别被加载到寄存器阵列的第一半和第二半,使得寄存器阵列的第一半和第二半共用的边缘对应于图像中的边缘。寄存器阵列中边缘的相对侧的寄存器中数据被发送到过滤电路,并返回到寄存器阵列。在沿整个边缘的数据已经被过滤之后,寄存器阵列的第一半中的数据被卸载并写入存储器。寄存器阵列的第二半中的数据被移位到寄存器阵列的第一半,新的像素数据被加载到寄存器阵列的第二半。新的像素数据对应于与移位到寄存器阵列的第一半中的数据共用图像中边缘的像素数据块。数据再如上所述被发送到过滤电路,其中过滤、卸载和加载重复进行,直到已经过滤图像的整列或行中的数据。在行或列的结尾,寄存器阵列的两半中的数据被卸载并写入存储器,以及对于图像的其它行和/或列,重复进行关于寄存器阵列的数据的读取、过滤和卸载。在一个更具体的实现中,在分开通过存储器时采用寄存器阵列来过滤图像的水平和垂直边缘数据。在另一个更具体的实现中,在卸载数据并把数据写回到存储器之前,水平和垂直边缘数据都在寄存器阵列的第一半中被过滤。
本发明的以上概述不是意在描述本发明的每个所示实施例或者每个实现。以下附图和详细说明更具体地举例说明这些实施例。
通过结合附图思考本发明的各种实施例的以下详细说明,会更全面地理解本发明,附图中

图1是根据本发明的一个示例实施例、利用为水平和垂直边缘过滤配置和安排的寄存器阵列过滤数据的方法的流程图;图2A是根据本发明的一个示例实施例、为过滤水平或垂直边缘数据配置和安排的寄存器阵列;图2B是根据本发明的一个示例实施例的图2A的寄存器阵列的一种实现的框图3A表示根据本发明的一个示例实施例、利用为水平边缘过滤配置和安排的寄存器阵列对数据的水平边缘过滤;图3B表示根据本发明的一个示例实施例、利用为垂直边缘过滤配置和安排的寄存器阵列对数据的垂直边缘过滤;图4A-4D表示根据本发明的另一个示例实施例、16×16像素块阵列中的数据的垂直和水平边缘过滤的组合;图5A-5C表示根据本发明的另一个示例实施例、8×32像素块阵列中的数据的垂直边缘过滤;以及图6是根据本发明的另一个示例实施例的用于过滤像素数据的系统。
虽然本发明可修改为各种修改和备选形式,但通过实例在附图中表示了其具体情况,并且将进行详细描述。但是应当理解,其目的不是把本发明限制到所述的特定实施例。相反,意在涵盖落入所附权利要求定义的本发明的实质和范围之内的所有修改、等效物及备选物。
本发明被认为极适用于诸如MPEG-4类型应用中的视频信号处理之类的信号处理方法和装置。已经发现,本发明对于用于过滤毗连像素块(例如8×8阵列)的垂直和水平边缘的视频数据处理极为有利。虽然本发明不一定仅限于这类应用,但通过在这种环境中对一些实例的论述,最好地获得对本发明的各个方面的理解。
根据本发明的一个示例实施例,利用设置成在连续过滤操作中再用存储在其中的数据的诸如寄存器阵列或存储器等存储装置来过滤视频像素数据。存储在存储装置中的数据对应于两组其间有边缘的视频像素数据,各组分别存储在存储装置的第一和第二部分。例如,视频像素数据可对应于在计算机、数字电视、交互式图形应用和/或交互式媒体应用中使用的连续视频数据。对存储装置中对应于来自邻接该边缘的两个视频像素数据集的数据的数据进行过滤。例如,从边缘的任一侧向外延伸的数据的几个毗连像素被过滤,从而平滑或者改变与边缘附近的像素对应的视频数据显示的外观,例如校正块状效应。在过滤之后,来自存储装置的第一部分的数据被写入存储器,来自存储装置的第二部分的数据保持在存储装置中(例如被转到第一部分),新数据被读入存储装置。新数据对应于与最初存储在存储装置的第二部分中的像素数据对应的那些像素相邻且共用另一边缘的像素。阵列中的数据再次按照上述方式被过滤,其中最初在存储装置的第二部分中的数据被写入存储器,新数据保持在存储装置中,以及第二组新数据同样被读入存储装置。通过这种方法,可利用单存储装置类型来实现或者水平或者垂直过滤。另外,对于水平或垂直过滤步骤的每一个,可以仅用对存储器的数据的一次读取和一次写入来过滤数据。关于可与本发明配合使用的过滤电路和过滤算法的更详细信息,可参考上面引用的“MPEG-4标准的概况”文献,通过引用将它完整结合于本文中。
图l是根据本发明的另一个示例实施例、用于过滤表示视频图像的像素数据的流程图。从框110开始,第一和第二像素数据块分别从存储器中读取,并读入寄存器阵列的第一和第二半。第一块和第二块的每个对应于共用其间边缘的直接相邻的像素数据块。例如,第一和第二块可包括表示连续图像数据的8×8像素块,其中各块具有与共用边缘直接相邻的8像素块。当正过滤与垂直相邻图像数据对应的像素块时,存在两个块之间的水平边缘。同样,当正过滤与水平相邻图像数据对应的像素块时,在两个块之间存在垂直边缘。在框120,来自沿共用边缘的第一和第二像素数据块中每一个的像素数据被过滤。过滤之后,包含寄存器阵列的第一半中的已过滤数据的数据在框130被写入存储器。在框140,包含寄存器阵列的第二半中的已过滤数据的数据被写入寄存器阵列的第一半。在框150,对应于与第二块直接相邻的像素的其它数据块的新数据被读入寄存器阵列的第二半。然后,此过程在框120重新开始,其中与其它像素数据块和第二像素数据块共用的边缘对应的数据被过滤。对于与视频图像对应的其它块重复执行框120-150中的读取、过滤和写入序列。
各种寄存器阵列大小和定向可按照符合本发明的方式来实现。图2A表示根据本发明的一个示例实施例、设置成存储8×16像素块的这样一种寄存器阵列200。寄存器阵列200包括构成8×16像素寄存器阵列的标为0-7的八列和十六行,各寄存器为能够存储一个像素的数据的8位寄存器。对于水平边缘过滤,共用边缘区域210的像素分别被读入寄存器阵列200的上和下8×8像素块部分220和225(例如图1中的框110那样)。从条230开始,存储在寄存器阵列200的中间部分205中的寄存器中的1×10像素条被过滤,其中与边缘区域210的任一侧的四像素寄存器对应的1×8已过滤像素条被返回给寄存器阵列200。过滤继续进行,直到寄存器阵列200的部分205中的列0-7中的像素全部被过滤。
在已经过滤了寄存器阵列的中间部分205的各列中的像素之后,在下一个过滤周期,对于与下部8×8像素块部分225中像素共用下部边缘的8×8像素块更新寄存器中的数据。存储在上部8×8像素块部分220中的像素被写入存储器,存储在下部8×8像素块部分225中的像素被移位到上部8×8像素块部分220,且新的8×8像素块从存储器中被读取并放入下部8×8像素块部分225。写入、移位和读取操作可例如在单个存储器存取周期中执行。在数据被移位之后,上部8×8像素块部分220中的上部四行像素包括已过滤数据,上部8×8像素块部分220中的下部四行像素没有被过滤。边缘数据条按照与上述相似的方式再被过滤,从条230开始。一旦数据被过滤,则再次执行写入、移位和读取操作,以及另一个新像素的8×8像素块被读入寄存器阵列200。当到达及过滤了8×8像素块的一列的结尾时,寄存器阵列的两半被写入存储器。当要过滤8×8像素块的不同列时,新的8×8像素块被读入上部220以及下部225的8×8像素块部分,而此过程按照上述方式继续进行。
图2B是根据本发明的一个特定示例实施例、图2A的寄存器阵列200的一种实现的框图240。在此实现中,寄存器阵列200在从存储器读取端口被加载时,用作先进先出(FIFO)阵列(例如移位寄存器),阵列中的数据对于水平边缘过滤分别经由水平加载和卸载端口242和244从下到上被移位。在数据被过滤之后,它经由卸载端口244移出寄存器阵列以写回到存储器。对于垂直边缘过滤,数据同样分别利用加载和卸载端口246、248移位到寄存器阵列中,但从左到右而不是从下到上。寄存器阵列200用作移位寄存器,把寄存器内的像素数据移到过滤器计算逻辑(未示出)以及向其提供像素用于过滤,以及保存已过滤结果。
行和列索引252和254分别表示8位像素寄存器在阵列中所处的位置。读入阵列以用于水平和垂直边缘过滤的8×8像素块之间的边界为行7和8之间的边界。箭头“↑”和“→”符号表示阵列中的数据可移位的可能方向,其中框图240上的各定义区域被独特地控制,用于执行水平和垂直移位。行-列阵列之外的方框表示核心寄存器阵列内移位的外部的复用。向上移位表示如下对于“A↑”,行0-7、列3-0中阵列的4×8条向上移位;对于“B↑”,行0-7、列7-4中阵列的4×8条向上移位;对于“C↑”,行8-15、列3-0中阵列的4×8条向上移位;以及对于“D↑”,行8-15、列7-4中阵列的4×8条向上移位。对于C↑和D↑,底部寄存器在移位过程中被加载。对于阵列的向右移位,E→、F→、G→、H→、I→和J→移位用于加载垂直边缘过滤的数据和/或在过滤过程中用于移位数据。
在一个实现中,水平边缘过滤利用框图240如下进行。两个8×8像素块被加载到阵列200中,其中第一8×8像素块来自图像的上部,而且第二8×8像素块来自紧靠第一8×8像素块之下的图像的直接相邻部分。对低地址四元组采用A↑和C↑,以及对高地址四元组采用B↑和D↑,各四元组包括四像素宽的数据集,把像素数据装入行15。一旦像素数据被加载到寄存器阵列200中,过滤算法执行数据的右移,例如采用F→、G→、H→和I→把新过滤数据装入列7、行4-11,同时把来自列0、行3-12的新的未过滤数据提供给过滤算法。在过滤过程中,从过滤计算仅返回行4-11时,列0、行3回送到列7、行3;同样,列0、行12回送到列7、行12。对于各过滤操作,寄存器阵列的各列中的数据右移一列,其中最右(0)列被过滤并写回到最左(7)列。过滤和移位继续进行,直到行4-11中的所有数据被过滤并移回到它在阵列200中的原始位置(例如在8次过滤和移位操作之后,已过滤数据回到它作为未过滤数据开始所处的列中)。
在对水平边缘进行过滤之后,在行0的数据抽头点使用A↑和B↑把阵列200的顶部8行(0-7)卸载到存储器中。列0-3用于低地址四元组,以及列4-7用于高地址四元组。当高地址被写入存储器时,A↑和B↑变为有效,并引起阵列200的上面8×8部分上移。在这个卸载步骤中,阵列的下面8行(8-15)没有移位。在一个实现中,行8中的数据在这个卸载步骤中被复制到行0-7。然后,当新数据被加载到阵列底部时,盖写具有复制数据的行0-7。
在卸载第一8×8像素块之后,新的8×8像素块被加载到存储器阵列200中,其中新的8×8块在图像中与第二8×8像素块直接相邻并紧靠其下方。对低地址四元组采用A↑和C↑移位,以及对高地址四元组采用B↑和D↑移位,像素数据被装入行15,使得行8-15中的数据被移位到行0-7,保留其内容。过滤、卸载和加载(以及数据从行8-15到行0-7的相应移位)重复进行,直到过滤了图像中的8×8像素块的完整列。当过滤了一列中的最后两个8×8像素块共用的水平边缘时,阵列中的两个8×8像素块被卸载并写入存储器,其中A↑和C↑移位卸载低地址四元组,以及B↑和D↑移位卸载高地址四元组。
在另一种实现中,与框图240结合使用寄存器阵列200如下执行垂直边缘过滤。两个8×8像素块被加载到阵列200中,其中第一8×8像素块来自图像的左边缘,第二8×8像素块来自紧靠数据的第一8×8像素块右侧的图像的直接相邻部分。8×8像素数据被加载到列7、行0-15,对于第一地址四元组(行0-3)使用E→和F→移位;对于第二地址四元组(行4-7)使用G→移位;对于第三地址四元组(行8-11)使用H→移位;以及对于第四地址四元组(行12-15)使用I→和J→移位。与水平模式数据的加载相比时,被加载的像素数据的字节顺序经过字节顺序反转,一般称作被搅和(swizzled)(例如虚拟存储地址与对象标识符之间转换),如上所述,它使数据定向以便过滤。更明确来说,字节顺序反转使数据沿垂直边缘定向,以便对应于用于过滤计算的行7和8之间的边缘。在过滤之后,如以下所述,数据在卸载到存储器中之前,再次经过字节顺序反转或取消搅和。
在加载到寄存器阵列200中之后,以类似于以上结合水平边缘过滤所述的方式来过滤垂直加载的8×8像素块。F→、G→、H→和I→移位用于把列0、行3-12的未过滤数据提供给过滤算法,同时把新过滤的数据装入列7、行4-11。列0、行3和12的数据分别被送回到列7、行3和12。
在过滤之后,只有已过滤边界数据从寄存器阵列200卸载到存储器中。块边界(例如行7和8之间的边界)的任一侧的一个四元组被写回到存储器,其中用于卸载的抽头点是用于低地址四元组的列0、行4-7,以及用于高地址四元组的列0、行8-11。卸载不一定要求数据的完整阵列被写入存储器,在一种实现中,只有与边界的任一侧上的四元组对应的行4-11被写入存储器。当写入高地址四元组时,使用E→、F→、G→、H→、I→和J→移位来右移整个阵列,以及把列0、行8-15送回到列7、行0-7,其中新的8×8像素块随后被装入行8-15。使用H→、I→和J→移位来加载新的8×8像素块,把数据馈入列7、行8-15的阵列。过滤、卸载和加载(以及数据的相应移位)被重复进行,直到过滤了图像中的8×8像素块的完整行。
在本发明的另一个示例实施例中,在列1、行3-12增加抽头点,用于在过滤器计算路径中将中间点的计算形成管线。例如,如果计算逻辑要求一个以上时钟且要求高过滤器带宽,则这样形成管线是有用的。包括寄存器的过滤电路被安排用于保持中间结果。过滤操作的第一时钟用于利用来自列0的数据计算和存储中间值。对于第2到第9时钟,利用来自列1的数据计算中间值,而利用列0和先前存储的中间值来计算最后过滤的数据。通过这种方法,具有长计算路径的过滤器可工作在较高频率,而对于各组8过滤器计算需要一个附加时钟。这具有把总计算时间从16个时钟(其中每列需要两个时钟)减少到9个时钟的作用,其中一个时钟用来装填管线,此后每列一个附加时钟。
在本发明的另一个示例实施例中,过滤系统由两个相同的独立过滤器计算逻辑块组成。寄存器阵列具有两组抽头点,各计算逻辑块使用一组抽头点。一组抽头点位于未过滤数据的列0、行3-12,其中已过滤数据返回到列3、行4-11,以及未过滤环绕数据返回到列3、行3和12。第二组抽头点位于未过滤数据的列4、行3-12,其中已过滤数据返回到列7、行4-11,以及未过滤环绕数据返回到列7、行3和12。因此,执行过滤所需的移位次数从8减少为4。过滤器计算逻辑的这种并行用于高速应用,并且可更好地适合更大的寄存器阵列大小、如16×16。
在以下论述中,过滤方法和技术可采用寄存器阵列200以及结合框图240所述的相应过滤方法。在利用更大寄存器阵列的实现中,可采用相似的加载、卸载、过滤和移位技术。在这点上,为简洁起见,以下省略了对本发明的这些方面的具体论述。
图3A和3B表示根据本发明的另一个示例实施例、接受利用寄存器阵列、如图2A中所示的寄存器阵列200的过滤的阵列305中的像素。参照图3A并且用图2A中的寄存器阵列200作为示例,过滤沿8x列352的8x行341和342处的8×8像素块共用的水平边缘321的像素数据(其中8x行或列表示8×8像素块的一行或一列)。首先,8x行341、8x列352上的8×8像素块中的数据从存储器读取并装入(图2A的)上像素块部分220,以及8x行342、8x列352处的8×8像素块中的数据从存储器中读取并装入(图2A的)下像素块部分225。边缘321的相对侧上的像素块的部分320的条(1×10列)被发送给使用上述过滤线路及过滤算法的过滤电路。利用移位寄存器把列1-7中每列右移一列,这些条例如可取自列0,如以上结合图2B中的框图240所述。在过滤之后,上像素块部分220从寄存器阵列被卸载并写回到存储器中。下像素块部分225被移位到上像素块部分220,以及8x行343、8x列352处的8×8像素块从存储器读取并装入下像素块部分225。然后,以同样方式过滤8x列352中的边缘322的相对侧上的边缘数据。在已经过滤8x列352中的边缘321和322附近的数据之后,来自相邻8x列351或353之一的8x行341和342的新数据被读入寄存器阵列200的上、下部分,用于执行相似的过滤操作。
现在参照图3B,根据本发明的另一个示例实施例,以与图3A中执行的过滤相似的方式来过滤垂直边缘数据,但采用水平取向的16×8寄存器阵列(例如通过在其侧边转动图2A的寄存器阵列200)。8x行342中的数据从左到右被过滤,从8x列351和352开始,并继续进行到8x列353。8x行342、8x列351和352中的8×8像素块的数据被读入16×8阵列的左和右半部分。8x行342中的边缘331的相对侧上的8x列351和352的部分330中的边缘像素数据条(10×1行)被用于过滤算法,以便过滤8x行342中的边缘331的相对侧上四个像素的每一个中的像素数据。在过滤之后,来自寄存器阵列的中间部分的已过滤数据(例如,向边缘331的任一侧延伸四个像素的8x行342中的8×8块)被卸载并写回到存储器。寄存器阵列的右半部分中的数据被移位到寄存器阵列的左半部分,以及8x行342、8x列353的8×8像素块中的数据从存储器读取并装入寄存器阵列的右半部分。然后,采用10×1条以相似方式过滤8x行342中的边缘332的相对侧上的像素数据,其中此过程在需要时再次在8x行341和/或343上继续进行。
现在参照图4A-4D,根据本发明的另一个示例实施例,采用用于过滤水平和垂直边缘数据的16×16寄存器阵列(未示出)来过滤像素的阵列400,其中图像的左上角由所示像素表示。16×16寄存器阵列类似于以上结合图2A和2B所述的8×16寄存器阵列。阵列400包括16x行441、442和16x列451、452中的16×16像素数据块,其中各16×16块具有在各个8×8像素块之间的垂直和水平边缘部分(其中16x行或列表示16×16像素块的一行或一列)。垂直边缘431、432和433以及水平边缘421、422和423分开各个8×8像素块。采用通过阵列的第一遍,用于水平边缘过滤以及垂直边缘过滤的第一半,以及采用通过阵列的第二遍,用于垂直边缘过滤的剩余一半,从而过滤阵列400。通过在第二遍期间仅把一半数据写入存储器,存储器写周期相对于8×16寄存器阵列大小被减少。
在图4B中,过滤16x行441、16x列451处的16×16块中沿水平边缘421和沿垂直边缘431的像素数据。过滤从图像的左上角开始,其中16×16像素块被装入16×16寄存器阵列。对于各数据行,4个字(四元组)被读取。在16×16寄存器阵列中,首先对16个像素列的整个水平边缘421执行过滤,其中例如以类似于以上所述那些的方式过滤最接近水平边缘421的四行中的像素。
然后,例如,通过过滤上面8行中每行的边缘431的相对侧上的四列,过滤16×16寄存器阵列中的上面8个像素行的垂直边缘431。在一种实现中,水平数据条取自最上面的行,并被发送到过滤电路,其中已过滤数据从过滤电路返回到与水平边缘421直接相邻的行,以及另外8个像素行中的每个向上移一行。另外,用于过滤但未被返回的水平条中的数据从最上面的行环绕到与水平边缘421直接相邻的行。在过滤了垂直边缘431之后,16×16寄存器阵列的上半部分(紧靠边缘421之上的8个像素行)从阵列中卸载并写入存储器。
在16×16阵列的上面8行从阵列卸载之后,包括与边缘421直接相邻的四行中的已过滤数据在内的16×16寄存器阵列的下面8行则移位到16×16寄存器阵列的上面8行。随后,紧靠图4B中边缘422之下的8个像素行从存储器读取并装入16×16寄存器阵列的下8行,使得16×16寄存器阵列包括16x行441的下半部分以及16x行442的上半部分的数据。
图4C表示图4B中所示之后的过滤操作,对于连续的8行像素数据,重复进行上述过滤、卸载和加载的序列。当到达阵列400中的一列(未示出)的底部时,则对存储在16×16寄存器阵列中的整个垂直边缘执行垂直边缘过滤,以及16×16寄存器阵列的全部16行被卸载并写入存储器。然后,过滤移到阵列400中下一个16x列452,如图4D所示,以对16×16寄存器阵列加载16x行441、16x列452处的16×16像素块中的数据开始。过滤以类似方式执行,直到过滤了整个16x列452。
在按照以上结合图4A-4D所述进行通过阵列400中各列的第一遍之后,进行通过阵列400的第二遍,用于过滤16×16块之间的垂直边缘数据(例如用于垂直边缘432的数据)。在一种实现中,16×16数据块再次被装入16×16寄存器阵列,并过滤垂直边缘数据。例如,通过把16×16块向右偏移一个8×8块,垂直边缘集中于16×16阵列。在过滤之后,只有16×16阵列的中心8×16条需要写回到存储器。
在另一种实现中,32×8像素块被读入32×8寄存器阵列,正如下面的详细论述。通过这种方法,可使用用于传递像素数据的总线的突发能力,使得不是读取4个字以填充16×16阵列中的一行,而是可读取8个字以填充32×8阵列中的一行,使此方法比16×16阵列方法更为有效。
在本发明的另一个示例实施例中,以类似于本文的一个或多个示例实施例的方式来过滤具有多个像素、没有均匀地分成所用寄存器阵列大小的像素阵列。例如,当采用16×16寄存器阵列过滤88个像素宽的阵列时,有5列为16像素宽以及一列仅为8像素宽。在此例中,过滤被改变为适应不相等的列宽(例如,通过检测宽度以及执行与通过上述及图4B-4C中各列的第一遍相似的水平和垂直边缘过滤。差别在于,水平边缘过滤仅对与存储器阵列的最后8x列对应的16×16阵列的一半执行)。
现在参照图5A-5C,根据本发明的另一个示例实施例,采用32×8像素块和32×8寄存器阵列来过滤像素阵列500的垂直边缘部分。像素阵列500可以例如与图4A-4D中所示的阵列400相同,其中已经执行上述水平和垂直过滤步骤,而阵列400中的16×16块之间的垂直边缘没有被过滤。通过这种方法,16×16过滤可按照以上所述实现,而未过滤垂直边缘的剩余部分由于有限数量的剩余边缘部分要过滤而可以按照比采用另一个16×16过滤方法更有效的方式来过滤。例如,32×8寄存器阵列对于利用独立的过滤逻辑同时过滤阵列中两个分离的边缘部分极为有用。通过复制的过滤逻辑,两个边缘可在过滤一个边缘通常所需的相同时间量中被过滤。
参照图5A,采用例如上述二维移位寄存器来过滤与8×8像素块的两个交替边缘(边缘531和532)对应的垂直边缘像素数据。8x行521的32像素宽部分510被读入32×8寄存器阵列(未示出),与图2A中所示的8×16寄存器阵列200相似。因为只有来自交替边缘的边缘数据需要被过滤(由于垂直边缘的一半在上述16×16过滤过程中已经被过滤),因此数据不一定要如以上针对8×16和16×16寄存器阵列所进行的那样,从32×8寄存器阵列的一半中被写入。在这点上,过滤包括被过滤的垂直边缘的任一侧上的5个像素的1×10数据条。参照边缘531,1×10条551被取出并经过采用二维移位寄存器的过滤操作,如上所述。同样,在过滤了边缘531的数据之后,包括垂直边缘532的相对侧上5个像素的条也被发送到过滤计算。当过滤完成时,水平方向上以已过滤的各垂直边缘531和532为中心的8×8像素块从32×8寄存器阵列卸载并写入存储器。
在图5B中,8x行521中的相邻32×8像素块512被读入32×8寄存器阵列,并且过滤按照以上针对像素块510所述的方式执行。水平方向上以垂直边缘533和534为中心的8×8像素块被同样地过滤、卸载以及写回到存储器。一旦到达行的结尾,则对紧靠部分510之下的部分511中的下一个8x行522重新开始32×8过滤,如图5C所示。具有边缘531和532的部分511以类似于上述部分510的过滤的方式被过滤。其它行同样地被过滤,直到过滤了整个阵列500。
图6表示根据本发明的另一个示例实施例、配置及安排成用于过滤像素数据块的系统600。系统600包括存储器610,安排成存储待显示在例如电视或计算机屏幕上的像素的图像数据。存储器610在通信上耦合到安排成用于传递像素数据的总线605,例如上述安排成传递表示像素数据的字的32位总线。总线605在通信上耦合存储器610与控制器640和寄存器阵列620。控制器640适用于指示存储器610与寄存器阵列620之间以及寄存器阵列620与过滤器电路630之间的数据移动。寄存器阵列620和过滤器电路630设置成过滤像素边缘数据,其方式为,移位及再用寄存器620中的数据,用于过滤后续边缘。在一种实现中,经由控制器640、以符合以上结合图2A和2B所述的方式来配置、安排和操作寄存器阵列620。
关于符合本发明的一个或多个示例实施例的过滤序列和方法的详细信息,以及一个或多个示例实施例的其它实现,可参考所附的附录(部分A和B),通过引用将其完整地结合到本文中。
本发明不应视为仅限于上述特定实例。例如,过滤的顺序可转换(例如从上到下、从下到上或者从右到左、从左到右),寄存器阵列的大小可以改变和/或可实现其它类似的变化。本发明可适用的各种修改、等效过程以及众多结构都落入所附权利要求中清楚阐明的本发明的范围之内。
权利要求
1.一种信号过滤装置(600),配置和安排成采用单一数据寄存器阵列类型(620,200)来过滤水平和垂直视频图像数据,所述信号过滤装置包括控制器(640)和寄存器阵列,所述控制器和寄存器阵列被配置和安排用于在加载/卸载周期中从存储器向所述寄存器阵列加载至少两个毗连的视频像素数据集(220,225),所述两个毗连的视频像素数据集之间有边缘(210);将与来自所述两个视频像素数据集中每一个的边缘数据对应的所述加载视频像素数据的一部分(205)过滤并返回到所述寄存器阵列;以及在过滤了所述加载视频数据的所述部分之后,将第一视频像素数据集(220)在加载/卸载周期中卸载到所述存储器,并在所述存储装置中将第二视频像素数据集(225)移位,用于过滤后续视频边缘数据。
2.如权利要求1所述的信号过滤装置,其特征在于,所述控制器还被配置和安排用于在所述加载/卸载周期之一中控制所述第二视频像素数据集的移位。
3.如权利要求2所述的信号过滤装置,其特征在于,所述寄存器阵列为二维移位寄存器,它被配置和安排用于从不同侧被加载,以便加载所述视频像素数据用于水平和垂直边缘过滤,以及在加载/卸载周期中把所述第二视频像素数据集从所述寄存器的一部分移位到另一部分。
4.如权利要求3所述的信号过滤装置,其特征在于,所述二维移位寄存器还在所述控制器的指示下被配置和安排用于将所述二维移位寄存器中的水平数据行过滤以用于垂直边缘过滤,以及用于将所述二维移位寄存器中的垂直数据列过滤以用于水平边缘过滤。
5.一种视频信号过滤装置(600),包括存储器(610),被配置和安排用于存储图像的像素数据;过滤电路(630),被配置和安排用于过滤与毗连的像素数据块之间的边缘对应的边缘数据;二维寄存器阵列(620),包括寄存器的行和列,并且被配置和安排用于采用所述寄存器阵列中的二维移位加载和卸载像素数据,所述寄存器阵列的第一半和第二半中的每一个被配置和安排用于存储图像的毗连像素数据块,所述毗连像素数据块之间有边缘;电路控制器(640),被配置和安排成控制表示所述毗连像素数据块的数据从所述存储器读取并装入所述寄存器阵列,以及控制所述寄存器中的数据经由所述过滤电路来过滤、在所述寄存器内移位、从所述寄存器卸载以及写回到所述存储器;以及其中,在单个时钟周期中,所述电路控制器被配置和安排成控制存储在所述寄存器阵列的所述第二半中的数据移位到所述寄存器阵列的所述第一半,以及控制从所述存储器读取的数据被加载到所述寄存器阵列的所述第二半中。
6.如权利要求5所述的视频信号过滤装置,其特征在于,所述电路控制器还被配置和安排成通过控制与所述边缘相交的列中的所选数量的毗连寄存器经由所述过滤电路来过滤并重新加载到所述寄存器阵列,从而控制所述边缘的相对侧上的像素数据被过滤。
7.如权利要求6所述的视频信号过滤装置,其特征在于,所述电路控制器被配置和安排成控制来自所述寄存器阵列中的10个寄存器的列的像素数据被发送到所述过滤电路,所述10个寄存器的列以所述边缘为中心,以及控制与所述10个寄存器的列中的8个寄存器对应的像素数据从所述过滤电路返回到所述寄存器阵列,所述8个寄存器以所述边缘为中心。
8.如权利要求7所述的视频信号过滤装置,其特征在于,所述二维寄存器阵列包括8列和16行,以及所述电路控制器还被配置和安排成控制所述8列中的每列的10个寄存器中的数据向右移位,用于过滤所述寄存器阵列中的所述像素数据,其中最右列的寄存器中的数据被过滤并绕回到最左列,而其它每列中的数据向右移一列。
9.如权利要求6所述的视频信号过滤装置,其特征在于,所述电路控制器被配置和安排成检测与待过滤图像对应的像素阵列大小,以及响应没有均匀分成所述寄存器阵列大小的所述像素阵列大小,当要在所述寄存器阵列中过滤的序列中最后一组过滤器数据没有完全填充所述寄存器阵列时,改变所述最后一组过滤器数据的过滤操作。
10.如权利要求5所述的视频信号过滤装置,其特征在于,所述电路控制器还被配置和安排用于控制数据从所述寄存器阵列加载和卸载,用于过滤由所述像素数据表示的图像的水平和垂直边缘。
11.如权利要求10所述的视频信号过滤装置,其特征在于,所述电路控制器被配置和安排用于卸载以及向存储器写入经过了水平和垂直边缘过滤的数据。
12.如权利要求11所述的视频信号过滤装置,其特征在于,所述二维寄存器阵列为16×16寄存器阵列,其中具有16个水平行和16个垂直列的寄存器,以及所述电路控制器被配置和安排成控制所述过滤电路和所述寄存器阵列来过滤沿寄存器的8个上部行与8个下部行之间水平边缘的水平边缘数据,并且过滤沿所述16×16寄存器阵列的所述8个上部行中的8个左侧列与8个右侧列之间垂直边缘的垂直边缘数据,以及卸载包括已过滤水平和垂直边缘数据的寄存器阵列的所述8个上部行,并把所述卸载的8行写入所述存储器。
13.如权利要求12所述的视频信号过滤装置,其特征在于,还包括具有8个水平行和32个垂直列的寄存器的32×8寄存器阵列,以及所述电路控制器被配置和安排成控制所述过滤电路和所述32×8寄存器阵列来过滤沿先前采用所述16×16寄存器阵列过滤的16×16像素数据块之间的垂直边缘的垂直边缘数据。
14.如权利要求5所述的视频信号过滤装置,其特征在于,所述电路控制器被配置和安排成控制被加载到所述阵列中的所述数据进行字节顺序反转,以用于垂直边缘过滤。
15.一种用于过滤视频像素数据的方法,所述方法包括从存储器读取第一和第二毗连像素数据块,所述第一和第二毗连像素数据块中每一个对应于一个图像并且共用设在其间的所述图像的一部分的边缘,以及把所述毗连像素数据块分别加载到具有寄存器的垂直列和水平行的寄存器阵列的第一半和第二半;至少过滤所述寄存器阵列的所述第一半和第二半的每个中对应于与所述边缘直接相邻的像素的数据;在过滤之后,从所述寄存器阵列的所述第一半卸载数据,并把所述已卸载数据写入所述存储器;把所述数据从所述寄存器阵列的所述第二半移位到所述寄存器阵列的所述第一半;以及从所述存储器读取与所述图像对应的附加像素数据块,所述附加块与移位到所述寄存器阵列的所述第一半的所述像素块相邻且共用边缘,把所述附加块加载到所述寄存器阵列的所述第二半,并重复上述过滤和卸载步骤。
16.如权利要求15所述的方法,其特征在于还包括重复以下步骤将所述数据移位,读取附加像素数据块,过滤,以及卸载和写入所述图像的多个毗连像素块的所述已过滤数据。
17.如权利要求15所述的方法,其特征在于,过滤包括过滤对应于与毗连像素数据块共用的所述图像的一部分的水平边缘直接相邻的像素的数据,以及过滤对应于与毗连像素数据块共用的所述图像的一部分的垂直边缘直接相邻的像素的数据。
18.如权利要求15所述的方法,其特征在于,过滤包括过滤对应于与毗连像素数据块共用的所述图像的一部分的垂直边缘直接相邻的像素的数据,还包括反转所述数据的字节顺序,从而为所述数据定向,用于所述寄存器阵列中的垂直过滤。
19.如权利要求15所述的方法,其特征在于,过滤包括把数据从所述寄存器阵列中的一列寄存器发送到过滤电路,所述寄存器列与毗连像素块之间的边缘的相对侧上的像素对应;以及把所述寄存器列的已过滤数据从所述过滤电路返回给所述寄存器阵列。
20.如权利要求19所述的方法,其特征在于还包括重复从寄存器列发送数据并返回所述寄存器阵列中的每列的已过滤数据的步骤,其中各列中的数据被向右移一列,最右列被过滤并在各列被过滤之后环绕回到最左列。
21.如权利要求20所述的方法,其特征在于,返回所述寄存器列的已过滤数据的步骤包括仅返回发送到所述过滤电路的所述数据的一部分,还包括从所述最右列向所述最左列移位在所述寄存器中被发送到所述过滤电路但未返回的未过滤数据。
22.如权利要求15所述的方法,其特征在于,所述第一和第二毗连像素数据块对应于所述图像的垂直相邻部分并共用水平边缘,其中过滤包括过滤所述水平边缘的相对侧上的数据,以及其中把所述数据移位包括把数据从所述寄存器阵列的下半部分移位到所述寄存器阵列的上半部分。
23.如权利要求15所述的方法,其特征在于,所述第一和第二毗连像素数据块对应于所述图像的水平相邻部分并共用垂直边缘,其中过滤包括过滤所述垂直边缘的相对侧上的数据,以及其中把所述数据移位包括把数据从所述寄存器阵列的下半部分移位到所述寄存器阵列的上半部分,还包括在把所述毗连块加载到所述寄存器阵列之前反转所述第一和第二毗连像素数据块的所述像素数据的字节顺序,以及在把所述附加块加载到所述寄存器阵列的所述第二半之前反转所述附加像素数据块的字节顺序,其中从所述寄存器阵列的所述第一半卸载数据包括卸载所述已过滤数据并反转所述已过滤数据的字节顺序,以便使数据取向适合存储器中的所述图像。
24.一种用于过滤视频像素数据的方法,所述方法包括从存储器读取第一和第二毗连像素数据块,所述第一和第二毗连像素数据块的每个对应于一个图像并且共用设在其间的所述图像的一部分的边缘,以及把所述毗连像素数据块分别加载到具有寄存器的垂直列和水平行的寄存器阵列的第一半和第二半,所述边缘对应于所述寄存器阵列的所述第一半和第二半之间的边缘;从所述寄存器阵列的最右列开始、从所述边缘的相对侧上的所选行读取像素数据,并过滤所述读取的像素数据的至少一部分;把对应于所述所选行的寄存器中的数据向右移一列,其中从所述最右列过滤的所述数据被移位到所述最左列,以及来自所述最右列的所述所选行的未过滤的所读取像素数据被移位到所述最左列;重复读取像素数据以及移位所述寄存器中数据的步骤,直到已经过滤所述寄存器中的所有列中的数据并且所述已过滤数据重新移位到其原始列;在过滤之后,从所述寄存器阵列的所述第一半卸载数据,并把所述已卸载数据写入所述存储器;把所述数据从所述寄存器阵列的所述第二半移位到所述寄存器阵列的所述第一半;以及从所述存储器读取附加像素数据块,所述附加块是与移位到所述寄存器阵列的所述第一半的所述像素块相邻且共用边缘的像素块,把所述附加块加载到所述寄存器阵列的所述第二半,并重复上述过滤和卸载步骤。
25.一种用于过滤视频像素数据的系统,所述系统包括用于从存储器读取第一和第二毗连像素数据块的部件,所述第一和第二毗连像素数据块的每个对应于一个图像并且共用设在其间的所述图像的一部分的边缘,以及把所述毗连像素数据块分别加载到具有寄存器的垂直列和水平行的寄存器阵列的第一半和第二半;用于至少过滤所述寄存器阵列的所述第一半和第二半的每个中对应于与所述边缘直接相邻的像素的数据的部件;用于在过滤之后从所述寄存器阵列的所述第一半卸载所述数据并把所述已卸载数据写入所述存储器的部件;用于把所述数据从所述寄存器阵列的所述第二半移位到所述寄存器阵列的所述第一半的部件;以及用于从所述存储器读取与所述图像对应的附加像素数据块的部件,所述附加块与移位到所述寄存器阵列的所述第一半的所述像素块相邻且共用边缘,把所述附加块加载到所述寄存器阵列的所述第二半并重复上述过滤和卸载步骤。
26.一种用于过滤视频像素数据的系统,所述系统包括存储器;寄存器阵列,具有寄存器的垂直列和水平行;控制器,被配置和安排用于控制第一和第二毗连像素数据块从所述存储器读取并分别加载到所述寄存器阵列的第一半和第二半,所述第一和第二毗连像素数据块中的每个对应于一个图像并且共用设在其间的所述图像的一部分的边缘;过滤电路,被配置和安排用于至少过滤所述寄存器阵列的所述第一半和第二半的每个中对应于与所述边缘直接相邻的像素的数据;以及其中所述控制器还被配置和安排用于在所述过滤之后,控制来自所述寄存器阵列的所述第一半的所述数据被卸载并写入所述存储器,控制来自所述寄存器阵列的所述第二半的所述数据被移位到所述寄存器阵列的所述第一半,控制与所述图像对应的附加像素数据块从所述存储器被读取并加载到所述寄存器阵列的所述第二半,所述附加块与移位到所述寄存器阵列的所述第一半的所述像素块相邻且共用边缘,以及控制上述过滤和卸载步骤被重复。
27.如权利要求26所述的系统,其特征在于,在单个时钟周期中,所述控制器被配置和安排成控制存储在所述寄存器阵列的所述第二半中的数据被移位到所述寄存器阵列的所述第一半,以及控制从所述存储器读取的数据被加载到所述寄存器的所述第二半。
28.如权利要求26所述的系统,其特征在于,所述过滤电路包括两个独立的过滤器计算逻辑电路块,其中所述寄存器阵列具有至少两组抽头点,每个计算逻辑电路块使用一组抽头点,第一组抽头点用于分接所述寄存器阵列中的第一组列,以及第二组抽头点用于分接所述寄存器阵列中的第二组列。
全文摘要
利用一种再用寄存器阵列中的数据来过滤连续像素块的过滤装置增强信号处理。根据本发明的一个实例实施例,过滤对应于某个图像且共用其间边缘的连续像素数据块。连续像素数据块被读取并加载到(110)寄存器阵列的第一半和第二半,该边缘相对侧上的寄存器中的像素数据被过滤(120)并返回给寄存器阵列。在过滤之后,寄存器阵列的第一半中的数据被卸载并写回(130)到存储器。然后,寄存器阵列的第二半中的数据被移到(140)寄存器阵列的第一半,以及另外的像素数据被读取并加载到(150)寄存器阵列的第二半中。
文档编号H04N7/30GK1672419SQ03817767
公开日2005年9月21日 申请日期2003年7月25日 优先权日2002年7月29日
发明者T·兰格, J·莱曼 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1