同时执行视频数据水平和垂直滤波的解块滤波器及其方法

文档序号:7612913阅读:265来源:国知局
专利名称:同时执行视频数据水平和垂直滤波的解块滤波器及其方法
技术领域
本发明涉及视频解码,尤其涉及用于消除可能在H.264/高级视频编码(AVC)标准系统中出现的块伪像(blocking artifact)的解块滤波器和用于操作它的方法。
背景技术
许多视频处理系统使用标准化的视频编解码器,诸如由国际电信联盟建议的H.261、H.262和H.263。诸如运动图像专家组(MPEG)-1、MPEG-2和MPEG-4之类的编解码器标准应用到那些视频编解码器。近来,已经对能够获得更高压缩率的H.264/AVC视频编解码器进行了研究和标准化工作。
在H.264/AVC视频编码标准中,以块为单位进行图像压缩编码,然后解码。结果,可能在解码后的图像中出现块伪像。块伪像有两种主要起因第一,由于连同H.264/AVC一起的大多数压缩技术对预定大小的块执行离散余弦变换(DCT),然后对经DCT变换的块进行量化,所以单独地变换和量化不重叠的块单位,而不考虑它们相邻块或像素之间的相关性,这可能导致数据损失和/或块伪像。第二,由于逐块预测运动向量来补偿图像,所以包含在块中的像素具有相同的运动向量,这可能导致块伪像。
解块滤波器可以消除基于块编码时出现的块边缘误差,并且可以改善最终解码图像的外观。H.264/AVC标准可以与解块滤波器功能一起使用来防止和/或减少块伪像。但很不幸的是,这样的实现可能使解码器的实现很复杂。

发明内容
根据本发明一些实施例,解块滤波器包括当前宏块(macroblock)缓冲存储器,配置来存储要滤波的当前宏块的视频数据;侧(side)宏块缓冲存储器,配置来存储位于当前宏块侧的相邻宏块的视频数据的一部分;寄存器缓冲器阵列,配置来存储为当前滤波而从当前宏块缓冲存储器读取的视频数据、从侧宏块缓冲存储器读取的视频数据和相邻宏块的数据;和连接到寄存器缓冲器阵列的边缘滤波器,配置来对视频数据的当前宏块的子块的边缘执行水平或垂直滤波,并且同时对视频数据的当前宏块的后续子块的边缘执行水平或垂直滤波中的另一个。垂直滤波使用来自相邻宏块的数据,而水平滤波使用来自侧宏块缓冲存储器的视频数据。
在其它实施例中,解块滤波器还包括外部存储器,配置来存储包括相邻宏块的视频数据的已滤波和未滤波的视频数据。
在又一实施例中,解块滤波器还包括滤波输出缓冲存储器,配置来暂时存储由边缘滤波器滤波的视频数据。
在又一实施例中,当前宏块缓冲存储器、侧宏块存储器和输出缓冲存储器中的每一个包括至少两个配置来用于流水线滤波操作的缓冲存储器。
在又一实施例中,解块滤波器包括外部存储控制器,配置来从外部存储器读取视频数据,并且将读取的视频数据存储在当前宏块缓冲存储器和/或侧宏块缓冲存储器中;和寄存器缓冲器阵列控制器,配置来从当前宏块缓冲存储器、侧宏块缓冲存储器和外部存储器中读取视频数据,并且将所读取的视频数据存储在寄存器缓冲器阵列中。
在又一实施例中,寄存器阵列配置来从当前宏块缓冲存储器读取子块视频数据、从侧宏块缓冲存储器读取视频数据和从外部存储器读取视频数据或相邻宏块,存储所读取的视频数据,暂时存储由边缘滤波器滤波的子块视频数据,并且提供所存储的当前宏块的子块视频数据用来后续边缘的滤波。
在又一实施例中,解块滤波器还包括连接到边缘滤波器的滤波强度生成器,配置来确定边缘滤波的滤波强度;和连接到滤波强度生成器的阈值生成器,配置来确定是否执行边缘滤波。滤波强度生成器与边缘滤波器分离。
在又一实施例中,滤波强度生成器配置来在运动向量产生处理的同时使用在运动向量产生处理期间产生的运动向量来产生滤波强度。
在又一实施例中,边缘滤波器包括为色度或亮度分量分离地运行的多个滤波引擎来允许同时滤波当前宏块的子块的垂直和水平边缘。
在又一实施例中,解块滤波器还包括缓冲存储控制器,配置来分别控制向当前宏块缓冲存储器、侧宏块缓冲存储器和滤波输出缓冲存储器输入的视频数据和从它们输出的视频数据。
在又一实施例中,边缘滤波器配置来同时对视频数据的亮度分量和视频数据的色度分量执行滤波操作。
在又一实施例中,视频数据配置来由H.264/AVC视频编解码器进行处理。
在本发明进一步的实施例中,通过将对应于视频数据的16×16宏块的水平边缘和垂直边缘分为4×4子块的边缘来执行宏块视频数据的解块滤波,并且从16×16宏块的顶水平边缘的4×16块到16×16宏块的底水平边缘的4×16块执行解块滤波,使得对于每个4×16块,执行四个4×4子块的垂直边缘的水平滤波和随后四个4×4子块的水平边缘的垂直滤波。
在进一步的实施例中,执行解块滤波还包括执行第一4×16块的水平滤波,同时执行第二4×16块的水平滤波和第一4×16块的垂直滤波,同时执行第三4×16块的水平滤波和第二4×16块的垂直滤波,同时执行第四4×16块的水平滤波和第三4×16块的垂直滤波,并且执行第四4×16块的垂直滤波。
在进一步的实施例中,各个4×16块的水平和/或垂直滤波还包括接收第一4×4子块的数据,同时执行第一4×4子块的滤波和第二4×4子块的数据接收,同时执行第二4×4子块的滤波和第三4×4子块的数据接收,同时执行第三4×4子块的滤波和第四4×4子块的数据接收,并且执行第四4×4子块的滤波。
在进一步的实施例中,4×4子块的各个子块的滤波包括同时滤波四个像素行。
在进一步的实施例中,执行解块滤波包括对视频数据的亮度分量和色度分量执行滤波操作。
在进一步的实施例中,视频数据配置来由H.264/AVC视频编解码器进行处理。


通过结合附图对本发明的优选实施例进行详细描述,本发明的上述目的和优点将会变得更加清楚,其中图1是常规视频解码器系统的方框图;图2图解用在解块滤波操作中的宏块;图3A和3B是图解宏块中的边缘滤波顺序的图;
图4是根据本发明一些实施例的解块滤波器的方框图;图5是图解根据本发明一些实施例的宏块中的边缘滤波顺序的图;图6是图解根据本发明一些实施例的滤波操作中的流水线结构的方框图;以及图7是图解根据本发明一些实施例的解块滤波操作的流程图;具体实施方式
虽然本发明可以经受各种修改和替换形式,但在附图中通过实例显示其特定实施例,并在将这里进行详细描述。然而,应该理解的是,这不意欲将本发明限制为公开的特定形式,相反,本发明涵盖落入权利要求所限定的本发明宗旨和范围中的所有修改、等效物和替代。相同的附图标记在描述和附图中表示相同的元件。
正如在这里使用的那样,除非另外说明,单数形式的“一(个)”、“该”意欲包含“一类”、“多个”之类的复数形式。将进一步理解的是,如在说明书中所使用的那样,术语“包括”表示所述特征、整数、步骤、操作、元件和/或部件的存在,但是不排除一个或多个其它特征,整数、步骤、操作、元件、部件和/或它们的组的存在和添加。将理解的是,当元件表示为“连接到”或“耦合到”其它元件时,它既可以直接连接到或耦合到其它元件,也可以存在中间元件。此外,这里使用的“连接到”或“耦合到”可以包括无线连接或耦合。正如在这里使用的那样,术语“和/或”包括相关的列出项的一或多个的任何一个和所有组合。
正如本发明所属的领域的普通技术人员通常所理解的那样,除非另外定义,这里使用的所有术语(包括技术和科学术语)具有相同的含义。将进一步理解的是,诸如在常用字典中定义的术语,应该解释为具有与在相关领域中的它们的含义一致的含义,并且除非在这里明确定义,否则不应解释为理想化或过分正式的含义。
图1是常规视频解码器系统的方框图。通常,压缩数据通过解码处理被解压缩为原始数据,并显示在视频处理器中的屏幕上。参照图1,用于解码视频数据的视频解码器10包括分析器11、熵解码器12、逆变换单元13、运动向量计算器14、逆间/内预测单元(inverse inter/intra-prediction unit)15、解块滤波器16、多个硬件模块(未示出)、外部存储控制器(未示出)和个人计算机接口(PCI)模块(未示出)。
从内部存储器读取在解码处理中使用的数据,或将在解码处理中使用的数据写入外部存储器,并且模块通过图1所示的系统总线17交换数据。由上述硬件模块顺序执行解码处理来将压缩视频数据解压缩为原始数据。由于以宏块为单位压缩和解压缩视频数据,因此可能在解压缩的图像的块之间的边界上出现基于块的屏幕差异。这种块伪像可以通过图1的解块滤波器16来减少。由于所述块伪像可能通过以预定大小的块为单位的视频数据压缩引起,所以也可以以宏块为单位执行解块滤波器16的边缘滤波。
图2图解用在解块滤波操作中的宏块。参照图2,当前宏块标记为X,当前宏块的相邻宏块标记为A、B、C和D。如图2所示,位于当前宏块X左侧的宏块标记为A,并且位于当前宏块X上方的宏块标记为B。为了滤波当前宏块X边缘,如图2所示,需要宏块A和B的数据。换句话说,需要位于当前宏块X的左侧的宏块A来进行水平滤波,并且需要位于当前宏块X的上方的宏块B来进行垂直滤波。
图3A和3B是图解宏块中的边缘滤波顺序的图。参照图3A和3B,对包含在宏块中的像素的亮度分量和色度分量执行关于宏块的滤波操作。图3A显示要滤波的亮度分量的边界,而图3B显示要滤波的色度分量的边界。以a、b、c、d的顺序滤波亮度分量的垂直边界,而以e、f、g、h的顺序滤波亮度分量的水平边界。以i、j的顺序滤波色度分量的垂直边界,并且以k、l的顺序滤波色度分量的水平边界。通常,在滤波色度分量前滤波亮度分量。
为了执行滤波操作,可以使用水平或垂直边界的任意一侧的四个像素。换句话说,对于水平滤波操作,可以使用位于垂直边界左侧的四个像素和位于垂直边界右侧的四个像素,而对于垂直滤波操作,可以使用位于水平边界上方的四个像素和位于水平边界下方的四个像素。要修正的像素数和所应用的滤波强度可以根据包括相邻4×4块的宏块中使用的量化参数、相邻4×4块的编码模式和/或相邻4×4块的运动向量而改变。
如上所述,当使用常规滤波方法时,对于滤波操作可能需要至少800个周期,包括用于存储器存取和滤波所需的时间。结果,在高分辨率视频数据的滤波处理中可能出现延迟,这种延迟可能导致很难实时处理高分辨率视频数据。
图4是根据本发明一些实施例的解块滤波器的方框图。根据解块滤波器算法,选择对应于要滤波的边缘的像素,并且从内部或外部存储器读取所选择的像素并将其存储在缓冲器中用于滤波操作。为了保持实际图像的边缘部分并防止过度滤波,获得边界滤波强度,并且将其与一阈值比较来确定是否执行滤波。例如,在H.264/AVC标准中公开了这样的解块滤波器算法。
设计根据本发明一些实施例的解块滤波器400的硬件结构来降低存储器存取次数,并允许高效滤波操作。根据本发明一些实施例的解块滤波器400还可以允许并行执行水平滤波和垂直滤波。
为此,本发明一些实施例的解块滤波器400包括两个输出缓冲存储器(0和1)402、两个X缓冲存储器(0和1)404、两个A缓冲存储器(0和1)406、输出缓冲存储控制器408、X缓冲存储控制器410、A缓冲存储控制器412、外部总线接口414、寄存器缓冲器阵列416、寄存器缓冲器阵列控制器418、边缘滤波器420、滤波强度生成器422、阈值生成器424、外部存储控制器426和外部存储器430,其配置如图所示。
两个输出缓冲存储器(0和1)402是用于在将数据输出到外部存储器430之前暂时存储由边缘滤波器420滤波的数据的存储器。两个X缓冲存储器(0和1)404是用于存储对应于正在滤波的边缘的宏块的数据的存储器。换句话说,X缓冲存储器(0和1)404存储图2的当前宏块X的数据。两个A缓冲存储器(0和1)406存储在当前宏块X的左侧的相邻宏块数据中的、与当前宏块相邻的四个4×4子块的数据。输出缓冲存储控制器408控制输出缓冲存储器(0和1)402的数据输入和输出。X缓冲存储控制器410控制X缓冲存储器(0和1)404的数据输入和输出,并且A缓冲存储控制器412控制A缓冲存储器(0和1)406的数据输入和输出。外部总线接口414执行接口功能,诸如从内部存储器或外部存储器读取用于解码处理的数据,或者将数据存储在内部存储器或外部存储器。
为了执行滤波操作,寄存器缓冲器阵列416存储从X缓冲存储器(0和1)404读取的当前宏块的数据、从A缓冲存储器(0和1)406读取的位于当前宏块左侧的宏块的数据和从外部存储器430读取的位于当前宏块上方的宏块的数据,并且在由边缘滤波器420滤波的数据当中存储要用在后续滤波操作中的数据。边缘滤波器420使用存储在寄存器缓冲器阵列416中的数据滤波边缘。滤波强度生成器422确定滤波强度来恢复实际图像的边缘部分并防止/降低过度滤波,并且阈值生成器424计算阈值来确定是否执行滤波。外部存储器430存储用于滤波的视频数据并存储经滤波的数据。寄存器缓冲器阵列418控制寄存器缓冲器阵列416,而外部存储控制器426控制外部存储器430。
将参照图4描述根据本发明一些实施例的解块滤波器400的操作。为了滤波宏块,使用与当前宏块相关的信息和与相邻宏块相关的信息。换句话说,使用与位于当前宏块左侧的宏块A相关的信息来滤波当前宏块的垂直边缘,而使用与位于当前宏块上方的宏块B相关的信息来滤波当前宏块的水平边缘。如上所述,在图1的视频解码器系统中,解块滤波器16从解块滤波器16之前的级的预测器15接收与要滤波的当前宏块相关的信息,并且将信息存储在X缓冲存储器(0和1)404中。在一些实施例中,对于视频解码器系统的有效流水线结构,X缓冲存储器的数量是2。
也使用用于存储相邻宏块A和B来滤波当前宏块的水平/垂直边缘的存储缓冲器,并且A缓冲存储器406存储与位于当前宏块左侧的宏块A相关的信息并根据MBAFF模式存储4*32像素信息。根据本发明一些实施例,对于视频解码器系统的流水线结构,A缓冲存储器406的数量也是2。
在H.264/AVC主简档(profile)的情况下,当与位于当前宏块上方的宏块B相关的信息支持最大分辨率2048*1024时,根据MBAFF模式使用128*4*32像素信息。这里,128是包含在图像的一行中的宏块的数量。然而,像素信息量可能多到不能存储在内部存储缓冲器中。因此,这样一种结构可能更有效,即,在该结构中,与位于当前宏块X上方的宏块B相关的信息存储在外部存储器430中,并且在滤波之前预先读取与宏块B相关的必要像素信息并将其存储在内部寄存器缓冲器阵列416。此外,如图4所示,为了存取外部存储器430,可以使用外部总线接口模块414与系统总线432交换数据。
在图4中,寄存器缓冲器阵列416存储在用于滤波操作的像素之中的、用于后续滤波操作的数据和用于高速滤波操作的流水线结构的经滤波的像素,由此可以有效地处理滤波。换句话说,与常规解块滤波器不同,根据本发明一些实施例的寄存器缓冲器阵列416读取用于边缘滤波的信息,执行滤波操作,并且在完成垂直/水平边缘滤波之前在寄存器中存储所读取的信息,由此有助于高速流水线结构并降低不必要的存储器存取周期。
边缘滤波器420接收来自寄存器缓冲器阵列416的像素信息、来自滤波强度生成器422的边界滤波强度和来自阈值生成器424的阈值,并且执行实际滤波操作。对于高速滤波操作,边缘滤波器420包括分离地对色度或亮度分量进行操作来允许同时滤波4×4子块的垂直或水平边缘的四个滤波引擎。四个滤波引擎中的每一个滤波包含在每个4×4子块中的一行数据中的像素。
根据本发明一些实施例的解块滤波器400的边缘滤波器420同时滤波亮度分量和色度分量来降低滤波操作所需的时间。
如图4所示,根据本发明一些实施例的解块滤波器400配置来使得滤波强度生成器422安装在边缘滤波器420之外。为了确定滤波强度,可以使用运动向量信息和比较各种条件的处理。运动向量信息用于图1所示的常规视频解码器10中的预测器15之前的级。因此,通常实际上在内部存储器中存储运动向量信息,并且当产生滤波强度时使用所存储的信息。然而,在根据本发明一些实施例的解块滤波器400中,在产生运动向量期间产生滤波强度来共享运动向量信息,而不用分离地存储运动向量信息。通过这样做,不仅可以节约内部存储器,而且由于在解块滤波器之前的级产生滤波强度可以降低解块滤波操作所需的时间。
用于流水线结构的两个输出缓冲存储器(0和1)临时存储滤波的数据,并且将滤波的数据输出到外部存储器430。
解块滤波器400以4×4子块为单位执行滤波操作,并且对每个块边缘存取至少两个像素。结果,存储器存取数量增加,这可能影响解码器的性能。因此,根据本发明一些实施例的解块滤波器400配置得可以降低存储器存取数量,并且有效地并行执行水平滤波和垂直滤波。
根据常规滤波顺序,在滤波垂直边缘后滤波水平边缘。在这种情况下,为了滤波宏块,可以执行64个水平滤波操作和64个垂直滤波操作。如果用于数据输入/输出的存储器存取所需的周期数和滤波操作所需的周期数大约是15个周期,则总共需要1920个周期,这可能导致很难实时处理高分辨率视频数据。然而,根据本发明一些实施例的解块滤波器400通过可以同时处理垂直和水平滤波的硬件结构,可以降低存储器存取和用于滤波操作所需的周期的数量。
图5是图解根据本发明一些实施例的宏块中的边缘滤波顺序的图。在图5中,显示了16×16宏块,并且16个子块的每一个是4×4块。从顶水平行的四个4×4子块开始到底水平行的四个4×4子块为止执行宏块的解块滤波。在顺序对四个4×4子块的垂直边缘执行水平滤波后,顺序对四个4×4子块的水平边缘执行垂直滤波。
换句话说,滤波宏块的顺序如下,在以如图5A所示的顺序1、2、3、4对子块执行水平滤波(I)之后,以如图5B所示的顺序1、2、3、4对子块执行垂直滤波(I′)。在垂直滤波(I′)完成后,以5、6、7、8的顺序对子块执行水平滤波(II),然后以5、6、7、8的顺序对子块执行垂直滤波(II′)。在垂直滤波(II′)完成后,以9、10、11、12的顺序对子块执行水平滤波(III),然后以9、10、11、12的顺序对子块执行垂直滤波(III′)。在垂直滤波(III′)完成后,以13、14、15、16的顺序对子块执行水平滤波(IV),然后以13、14、15、16的顺序对子块执行垂直滤波(IV′)。
图6是图解根据本发明一些实施例的滤波操作中的流水线结构的方框图。根据本发明一些实施例的解块滤波方法使用4×16块作为其基本处理单位。换句话说,如图5所示,顺序对四个4×4子块1、2、3和4(即,4×16块)、四个4×4子块5、6、7和8、四个4×4子块9、10、11和12和四个4×4子块13、14、15和16执行滤波。根据本发明一些实施例的解块滤波方法使用4×16块,即四个4×4子块,作为其基本处理单位来以二级流水线结构的形式处理水平滤波和垂直滤波。在4×16块中,使用四个4×4子块以二级流水线结构的形式处理水平滤波和垂直滤波。
将参照图5和6描述根据本发明一些实施例的流水线结构。在对第一4×16块执行水平滤波(I)后,同时对第一4×16块执行垂直滤波(I′)和对第二4×16块执行水平滤波(II)。然后同时对第二4×16块执行垂直滤波(II′)和对第二4×16块执行水平滤波(III)。然后同时对第三4×16块执行垂直滤波(III′)和对第四4×16块执行水平滤波(IV)。最后对第四4×16块执行垂直滤波(IV′)。
换句话说,在根据本发明一些实施例的解块滤波方法中,由于以流水线形式执行水平滤波和垂直滤波,因此对子块5、6、7、8执行水平滤波,同时对子块1、2、3、4执行垂直滤波。此外,对子块5、6、7、8执行垂直滤波,同时对子块9、10、11、12执行水平滤波。对子块9、10、11、12执行垂直滤波,同时对子块13、14、15、16执行水平滤波。最后对子块13、14、15、16执行垂直滤波。
在4×16块中,在关于第一4×4子块的数据输入后,同时执行第一4×4子块的滤波和关于第二4×4子块的数据输入。同时执行第二4×4子块的滤波和关于第三4×4子块的数据输入。同时执行第三4×4子块的滤波和关于第四4×4子块的数据输入。最后执行第四4×4子块的滤波。
例如,在图5的第一4×16块即4×4子块1、2、3、4水平滤波中,在执行4×4子块1的水平滤波的同时,输入用于4×4子块2的水平滤波的数据。以相同方式,在执行4×4子块2的水平滤波同时,输入用于4×4子块3的水平滤波的数据。在执行4×4子块3的水平滤波的同时,输入用于4×4子块4的水平滤波的数据。最后执行4×4子块4的水平滤波。
因此,根据本发明一些实施例的解块滤波方法可以关于4×16块同时处理水平滤波和垂直滤波。此外,关于每个4×4块,水平滤波和垂直滤波可以同时处理数据输入和滤波操作。
为了降低滤波操作所需的时间,根据本发明一些实施例的解块滤波方法同时处理关于亮度分量和色度分量的滤波操作。
如图4所示,通过根据本发明一些实施例的解块滤波器400中的寄存器缓冲器阵列416实现具有高速流水线结构的处理滤波操作的功能。换句话说,在根据本发明一些实施例的解块滤波方法中,以4×16块执行垂直和水平滤波,并且使用寄存器缓冲器阵列416将滤波的4×16块用于后续垂直滤波,来降低在基于4×4块的滤波操作中不必要的存储器存取。因此,可以跳过用于后续滤波的、在内部缓冲存储器中存储数据的处理,这产生降低存储器存取所需的周期的效果。
图7是图解根据本发明一些实施例的解块滤波操作的流程图。参照图7,从内部X缓冲存储器读取用于垂直边缘的水平滤波的宏块A和宏块X的第一4×4子块的数据,并且存储在寄存器缓冲器阵列来提供要滤波的数据(S701)。在提供了要滤波的数据后,在操作S702确定要滤波的数据是否是垂直边缘。如果要滤波的数据是垂直边缘,则在操作S703执行水平滤波。在操作S704,在对数据执行水平滤波的同时,将宏块X的第二4×4子块的数据提供到寄存器缓冲器阵列用于后续水平滤波。使用经受水平滤波的数据和接下来要在操作S707滤波4×4子块的数据来更新寄存器缓冲器阵列。重复该处理直到在操作S708和S709中完成水平滤波。在操作S710和S711,在执行水平滤波的同时,从外部存储器将用于第一或第二子块的垂直滤波的宏块B的4×16块数据提供到寄存器缓冲器阵列。
在以流水线形式完成四个垂直边缘的水平滤波后,可以在操作S705执行垂直滤波。可以在操作S718输出经受水平和垂直滤波的宏块A的数据。
在操作S705,以基于4×4块的流水线结构的形式使用经受水平滤波的宏块X的4×16块数据和宏块B的4×16块数据来执行垂直滤波,同时在操作S703对后续垂直边缘执行上述水平滤波。然后,在操作S712,使用经受垂直滤波的数据和经受水平滤波的4×4子块数据更新寄存器缓冲器阵列。重复该处理直到在操作S713和S714完成4×4垂直滤波为止。
在完成垂直滤波后,在操作S715,宏块X的四个4×16块的数据存储在A缓冲存储器中,用于后续宏块的解块滤波,同时,在操作S716,将经受垂直和水平滤波的宏块B的数据存储在将要输出到外部存储器的输出缓冲器,然后在后续水平和垂直滤波中输出到外部存储器。使用用于后续垂直滤波的4×4宏块X的数据更新寄存器缓冲器阵列。在对所有垂直和水平边缘执行该处理之后,在操作S717和操作S719中,完成宏块的解块滤波,并且将滤波后的数据输出到外部存储器。
基于根据本发明一些实施例的解块滤波器和解块滤波方法,使用可以同时处理数据输入、滤波操作、垂直滤波、水平滤波和数据输出的流水线结构可以执行高速滤波操作。
尽管已参照本发明的确定优选实例表示和描述了本发明,但本领域内的普通技术人员将理解的是,可在不背离由所附权利要求书限定的本发明宗旨和范围的前提下对本发明进行各种形式和细节上的修改。
权利要求
1.一种解块滤波器,包括当前宏块缓冲存储器,配置来存储要滤波的当前宏块的视频数据;侧宏块缓冲存储器,配置来存储位于当前宏块侧的相邻宏块的视频数据的一部分;寄存器缓冲器阵列,配置来存储为当前滤波而从当前宏块缓冲存储器读取的视频数据、从侧宏块缓冲存储器读取的视频数据和相邻宏块的数据;和连接到寄存器缓冲器阵列的边缘滤波器,配置来对视频数据的当前宏块的子块的边缘执行水平或垂直滤波,并且同时对视频数据的当前宏块的后续子块的边缘执行水平或垂直滤波中的另一个,其中垂直滤波使用来自相邻宏块的数据,而水平滤波使用来自侧宏块缓冲存储器的视频数据。
2.如权利要求1所述的解块滤波器,还包括外部存储器,配置来存储包括相邻宏块的视频数据的已滤波和未滤波的视频数据。
3.如权利要求2所述的解块滤波器,还包括滤波输出缓冲存储器,配置来暂时存储由边缘滤波器滤波的视频数据。
4.如权利要求3所述的解块滤波器,其中当前宏块缓冲存储器、侧宏块存储器和输出缓冲存储器中的每一个包括至少两个配置来用于流水线滤波操作的缓冲存储器。
5.如权利要求3所述的解块滤波器,还包括外部存储控制器,配置来从外部存储器读取视频数据,并且将读取的视频数据存储在当前宏块缓冲存储器和/或侧宏块缓冲存储器中;和寄存器缓冲器阵列控制器,配置来从当前宏块缓冲存储器、侧宏块缓冲存储器和外部存储器中读取视频数据,并且将所读取的视频数据存储在寄存器缓冲器阵列中。
6.如权利要求5所述的解块滤波器,其中寄存器阵列配置来从当前宏块缓冲存储器读取子块视频数据、从侧宏块缓冲存储器读取视频数据和从外部存储器读取视频数据或相邻宏块,存储所读取的视频数据,暂时存储由边缘滤波器滤波的子块视频数据,并且提供所存储的当前宏块的子块视频数据用来滤波后续边缘。
7.如权利要求5所述的解块滤波器,还包括连接到边缘滤波器的滤波强度生成器,配置来确定边缘滤波的滤波强度;和连接到滤波强度生成器的阈值生成器,配置来确定是否执行边缘滤波,其中滤波强度生成器与边缘滤波器分离。
8.如权利要求7所述的解块滤波器,其中滤波强度生成器配置来在运动向量产生处理的同时使用在运动向量产生处理期间产生的运动向量来产生滤波强度。
9.如权利要求1所述的解块滤波器,其中边缘滤波器包括为色度或亮度分量单独地运行的多个滤波引擎,以允许同时滤波当前宏块的子块的垂直和水平边缘。
10.如权利要求5所述的解块滤波器,还包括缓冲存储控制器,配置来分别控制向当前宏块缓冲存储器、侧宏块缓冲存储器和滤波输出缓冲存储器输入的视频数据和从它们输出的视频数据。
11.如权利要求1所述的解块滤波器,其中边缘滤波器配置来同时对视频数据的亮度分量和视频数据的色度分量执行滤波操作。
12.如权利要求1所述的解块滤波器,其中视频数据配置来由H.264/AVC视频编解码器进行处理。
13.一种解块滤波方法,包括存储要滤波的当前宏块的视频数据;存储位于当前宏块侧的相邻宏块的视频数据的一部分;存储为当前滤波而从当前宏块缓冲存储器读取的视频数据、从侧宏块缓冲存储器读取的视频数据和相邻宏块的视频数据;和对视频数据的当前宏块的子块的边缘执行水平或垂直滤波,并且同时对视频数据的当前宏块的后续子块的边缘执行水平或垂直滤波中的另一个,其中垂直滤波使用来自相邻宏块的数据,而水平滤波使用来自侧宏块缓冲存储器的视频数据。
14.一种解块滤波方法,包括将对应于视频数据的16×16宏块的水平边缘和垂直边缘分为4×4子块的边缘;和从16×16宏块的顶水平边缘的4×16块到16×16宏块的底水平边缘的4×16块执行解块滤波,使得对于每个4×16块,执行四个4×4子块的垂直边缘的水平滤波和随后四个4×4子块的水平边缘的垂直滤波。
15.如权利要求14所述的解块滤波方法,其中执行解块滤波还包括执行第一4×16块的水平滤波;同时执行第二4×16块的水平滤波和第一4×16块的垂直滤波;同时执行第三4×16块的水平滤波和第二4×16块的垂直滤波;同时执行第四4×16块的水平滤波和第三4×16块的垂直滤波;和执行第四4×16块的垂直滤波。
16.如权利要求15所述的解块滤波方法,其中各个4×16块的水平和/或垂直滤波包括接收第一4×4子块的数据;同时执行第一4×4子块的滤波和第二4×4子块的数据接收;同时执行第二4×4子块的滤波和第三4×4子块的数据接收;同时执行第三4×4子块的滤波和第四4×4子块的数据接收;和执行第四4×4子块的滤波。
17.如权利要求16所述的解块滤波方法,其中4×4子块的各个子块的滤波包括同时滤波四个像素行。
18.如权利要求14所述的解块滤波方法,其中执行解块滤波包括对视频数据的亮度分量和色度分量执行滤波操作。
19.如权利要求14所述的解块滤波方法,其中视频数据配置来由H.264/AVC视频编解码器进行处理。
全文摘要
提供一种解块滤波器,包括当前宏块缓冲存储器,配置来存储要滤波的当前宏块的视频数据;侧宏块缓冲存储器,配置来存储位于当前宏块侧的相邻宏块的视频数据的一部分;寄存器缓冲器阵列,配置来存储为当前滤波而从当前宏块缓冲存储器读取的视频数据、从侧宏块缓冲存储器读取的视频数据和相邻宏块的数据;和连接到寄存器缓冲器阵列的边缘滤波器,配置来对视频数据的当前宏块的子块的边缘执行水平或垂直滤波,并且同时对视频数据的当前宏块的后续子块的边缘执行水平或垂直滤波中的另一个。垂直滤波使用来自相邻宏块的数据,而水平滤波使用来自侧宏块缓冲存储器的视频数据。
文档编号H04N7/30GK1812576SQ20051002296
公开日2006年8月2日 申请日期2005年12月19日 优先权日2004年12月17日
发明者郑得秀, 郑昌永, 李容美, 姜桯善 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1