对编码宏块去块滤波的方法和系统的制作方法
【专利摘要】一种符合H.264/AVC标准的对编码宏块去块滤波的方法和系统。该方法包括对宏块的第一子块的三条边去块滤波,以及对与第一子块相邻的第二子块的两条垂直边去块滤波。该方法还对第二子块的上水平边执行去块滤波,以提供去块滤波后的第一子块。在对该三条边以及第二子块的左垂直边和右垂直边滤波后,即刻执行第二子块的上水平边的去块滤波。在执行任何进一步的去块滤波前,该方法还将去块滤波后的第一子块存储在一输出缓冲器中。
【专利说明】对编码宏块去块滤波的方法和系统
发明背景
[0001]本发明涉及视频数据处理,更具体的,涉及一种对视频数据的编码宏块去块滤波的方法和系统。
[0002]H.264高级视频编码(AVC)标准包括允许视频信号以相对低的比特率传输并实现视频数据的高效存储的数据压缩技术。在H.264/AVC标准中,每个视频帧在宏块等级上被再划分和编码,其中每个宏块为像素的16X16的块。每个宏块以帧内模式编码,其中基于当前帧中的重建宏块形成预测宏块,或者以帧间模式编码,其中基于参考帧的宏块形成预测宏块。帧内编码模式应用当前帧中的空间信息,其中,从在先编码、解码和重建的当前帧中的采样形成预测宏块。相反,帧间编码模式利用在先和/或未来参考帧的时间信息,进行运动估计,从而形成预测宏块。
[0003]许多视频编码标准,包括H.264/AVC标准,使用基于块的编码,其相对高效,但会导致相邻块和相邻子块之间出现显著的不连续或伪影。如果移除或平滑这些不连续或伪影,那么得到的可察觉的可视图像质量可以得到改善。
[0004]H.264/AVC标准允许可选的去块滤波器移除或者平滑相邻块和相邻子块之间的不连续或伪影。去块滤波器可为系统的一部分,在对信号编码时用于编码器中作为环内滤波器,或者可以在对信号解码时作为图像解码器的后处理器。不过,去块过程占用相当多的存储器,并且当去块符合H.264/AVC标准时,必须由按照该标准管理的特定顺序执行去块操作。
附图简要说明
[0005]结合附图,参照优选实施例的以下说明,可以很好的理解本发明及其对象以及优点,附图中:
[0006]图1为根据本发明的优选实施例对视频数据的编码宏块去块滤波的电子系统的框图;
[0007]图2为亮度(Y)和色度(Cb,Cr)宏块200的示意图,其示出了对符合H.264/AVC标准的子块边沿去块的现有技术的顺序;
[0008]图3为亮度(Y)和色度(Cb,Cr)宏块300的示意图,其示出了符合H.264/AVC标准并根据本发明的第一优选实施例对子块边沿去块的顺序;
[0009]图4为亮度(Y)和色度(Cb,Cr)宏块400的示意图,其示出了符合H.264/AVC标准并根据本发明的第二优选实施例对子块边沿去块的顺序;
[0010]图5、6和7为根据本发明的第一优选实施例对视频数据的至少一个编码宏块去块滤波的方法的流程图;
[0011]图8和9为根据本发明的第二优选实施例对视频数据的至少一个编码宏块去块滤波的方法的流程图;
[0012]图10示出了宏块的每个子块中的4X4像素阵列的示意图。
优选实施例具体说明
[0013]接下来结合附图的具体说明旨在说明本发明的当前优选实施例,并不意图呈现本发明被实践的唯一形式。可以理解,通过包含在本发明精神和范围内的不同实施例,可以实现相同或等同的功能。在附图中,相同的附图标记始终表示相同的部件。而且,术语“包含”或者其他变形,旨在覆盖非排除性的包含,例如包含部件或步骤清单的系统、电路、设备元件和方法并不仅仅包括这些部件,而是包含未特别列出或者这类系统、电路、设备元件或
步骤所固有的其它元件或步骤。“包括......一个”之后的元件或步骤未加限制的没有预
先排除包含该元件或步骤的附加同类元件或步骤的存在。
在本发明的一个实施例中,提供了对视频数据的至少一个编码宏块去块滤波的方法。该方法包括对所述宏块的第一子块的左垂直边去块滤波,对第一子块的右垂直边去块滤波以及对第一子块的上水平边去块滤波。之后该方法对所述宏块的第二子块的左垂直边执行去块滤波,对第二子块的右垂直边去块滤波以及对第二子块的上水平边去块滤波,从而提供去块滤波后的第一子块。第二子块的上水平边为第一子块的下水平边。并且,在对第一子块的左垂直边、右垂直边和上水平边,第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边进行去块滤波。
[0015]在本发明的另一实施例中,提供了对视频数据的至少一个编码宏块执行去块滤波的方法。该方法包括对宏块的第一子块的三条边去块滤波,并对与该第一子块相邻的第二子块的两条垂直边去块滤波。该方法还对第二子块的上水平边去块滤波,从而提供去块滤波后的第一子块。在对该三条边以及第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边进行去块滤波。在执行任何进一步的去块滤波前,去块滤波后的第一子块适当地存储在输出缓冲器中。
[0016]在本发明的又一实施例中,提供了一种对视频数据的编码宏块去块滤波的系统。该系统包括用来存储宏块的输入缓冲器,其耦合一去块滤波器。一控制器耦合到该去块滤波器,一输出缓冲器耦合到去块滤波器。操作时,控制器控制该去块滤波器对宏块的第一子块的三条边执行去块滤波,对与该第一子块相邻的第二子块的两条垂直边去块滤波。该方法还包括对第二子块的上水平边去块滤波,以提供去块滤波后的第一子块。在对该三条边以及第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边进行去块滤波。在执行任何进一步的去块滤波前,该方法还讲去块滤波后的第一子块存储在一输出缓冲器中。
[0017]参看图1,示出了根据本发明的优选实施例的用于对视频数据的编码宏块去块滤波的电子系统100的框图。该系统100包括用于存储宏块的输入缓冲器110以及耦合到该输入缓冲器110的去块滤波器120。所示的去块滤波器包括亮度(Y)去块滤波器130和色变(Cb,Cr)去块滤波器140。控制器150耦合到去块滤波器120,并且输出缓冲器160耦合到去块滤波器120。在一个实施例中,系统100为编码视频信号的编码器,或者在另一实施例中,系统100为用于对编码信号解码的视频解码器的后处理器。
[0018]参看图2,示出了符合H.264/AVC标准的对子块边沿去块的现有技术顺序的亮度(Y)和色度(Cr,Cb)宏块200的示意图。每一亮度(Y)宏块包括子块q00到q33,每一色度(Cr, Cb)宏块包括子块q00到qll,其中每个子块包括16个像素值(编码的像素数据)的阵列。如图所示的,亮度(Y)宏块的四个左垂直边从子块q00的左垂直边0开始去块滤波,然后是子块qlO的垂直边I,接着是子块q20的垂直边2,随后是子块q30的垂直边3。子块q00到q30的四条右垂直边随后按4、5、6、7的顺序依次去块滤波。[0019]之后子块qOl到q31的四条右垂直边以8、9、10、11的顺序去块滤波,之后子块q02到q32的四条右垂直边以12、13、14、15的顺序去块滤波。
[0020]之后子块qOO到q30的四条上水平边以16、17、18、19的顺序去块滤波,接着子块qOl到q31的四条上水平边以20、21、22、23的顺序去块滤波。随后子块q02到q32的四条上水平边以24、25、26、27的顺序去块滤波,并且子块q03到q33的四条上水平边以28、29、30、31的顺序去块滤波。
[0021]色度(Cb,Cr)宏块同样以类似的方式去块滤波。更具体的,色度宏块(Cb)首先以垂直边序列32、33、34、35去块滤波,之后以水平边序列36、37、38、39去块滤波。类似的,色度宏块(Cr)首先以垂直边序列40、41、42、43去块滤波,之后以水平边序列44、45、46、47去块滤波。
[0022]以上用于亮度宏块(Y)的子块边沿去块的现有技术顺序是相对占用更多存储器的,这是因为,在第一子块qOO被完全去块滤波并准备好发送至输出缓冲器(例如缓冲器160)时,所有的子块q00到q33的部分去块版本必须被存储。其他对子块边沿去块的现有技术序列顺序同样存在类似的不希望的存储负荷,并且需要在第一子块q00被完全去块滤波之前,存储至少四个部分去块的子块。
[0023]参看图3,示出了亮度⑴和色度(Cb,Cr)宏块300的示意图,说明符合H.264/AVC标准并根据本发明的第一优选实施例的对子块边沿去块的序列顺序。每个亮度(Y)宏块包括子块q00到q33,每个色度(Cb,Cr)宏块包括子块q00到qll,其中每个子块包括16个像素值(编码的像素数据)的阵列。如图所示,亮度(Y)宏块的第一子块q00的左垂直边0被去块滤波。接着,第一子块q00的右垂直边I被去块滤波。之后第一子块q00的上水平边2被去块滤波,接着第二子块qlO的左垂直边3被去块滤波,随后第二子块qlO的右垂直边4被去块滤波。然后第二子块qlO的上水平边5被去块滤波,从而提供去块滤波后的第一子块DF00 (其中DF00为子块q00的去块版本)。该去块滤波的第一子块DF00随后被存储在输出缓冲器160中。
[0024]第三子块q20的左垂直边6之后被去块滤波,接着第三子块q20的右垂直边7被去块滤波。随后第三子块q20的上水平边8被去块滤波,以提供去块滤波后的第二子块DF10。该去块滤波后的第二子块DFlO随后被存储在输出缓冲器160中。这一序列按照边沿顺序0-31的序列顺序所示进行,直到对所有的子块q00到q33去块滤波,得到存储在输出缓冲器160中的滤波子块DF00到DF33。色度(Cb,Cr)宏块以相同的方式去块滤波,其中色度Cb宏块按边沿顺序0-7所示去块滤波,色度Cr宏块按边沿顺序8-15所示去块滤波。
[0025]参看图4,示出了亮度⑴和色度(Cb,Cr)宏块400的示意图,说明了符合H.264/AVC标准并根据本发明的第二优选实施例的对子块边沿去块的序列顺序。每个亮度(Y)宏块包括子块q00到q33,每个色度(Cb,Cr)宏块包括子块q00到qll,其中每个子块包括16个像素值(编码的像素数据)的阵列。如图所示,亮度(Y)宏块的第一子块q00的左垂直边0被去块滤波。接着,第一子块q00的右垂直边I被去块滤波。第一子块q00的上水平边2之后被去块滤波,接着第二子块qlO的左垂直边3被去块滤波,随后第二子块qlO的右垂直边4被去块滤波。然后第二子块qlO的上水平边5被去块滤波,从而提供去块滤波后的第一子块DF00 (其中DF00为子块q00的去块版本)。该去块滤波的第一子块DF00随后被存储在输出缓冲器160中。[0026]第三子块qOl的右垂直边6之后被去块滤波,接着第三子块qOl的上水平边7被去块滤波。随后第四子块qll的右垂直边8被去块滤波,接着第四子块qll的上水平边9被去块滤波以提供去块滤波后的第二子块DF01。该去块滤波后的子块DFOl随后被存储在输出缓冲器160中。这一序列按照边沿顺序0-31的序列顺序所示进行,直到对所有的子块qOO到q33去块滤波,得到存储在输出缓冲器160中的滤波子块DFOO到DF33。色度(Cb,Cr)宏块以相同的方式去块滤波,其中色度Cb宏块按边沿顺序0-7所示去块滤波,色度Cr宏块按边沿顺序8-15所示去块滤波。
[0027]图5为流程图,其示出了根据本发明的第一优选实施例对视频数据的至少一个编码宏块执行去块滤波的方法500的第一部分。该方法500可在任何适当的,由控制器150控制的包含系统100的硬件上执行,并且参照宏块300对其说明。在方法500的步骤505,设置两个计数器1、j为0,设置计数器k为I。之后,在步骤510,对亮度(Y)宏块300的第一子块qOO的左垂直边0执行去块滤波。在步骤515,对第一子块q00的右垂直边I去块滤波,以及在步骤520,对第一子块q00的上水平边2去块滤波。
[0028]随后测试步骤525确定是否存在子块qkj,其中第一示例中qkj为qlO。这一子块存在,则步骤530对亮度(Y)宏块300的第二子块qlO的左垂直边3去块滤波。随后,方法500的步骤535中,对第二子块qlO的右垂直边4去块滤波,之后在步骤540,对第二子块qlO的上水平边5去块滤波。上水平边5的去块滤波得到去块滤波后的第一子块DF00 (其中DF00为子块q00的去块版本)。这是因为第二子块qlO的上水平边5也是第一子块q00的下水平边,并且第二子块qlO的上水平边5的去块滤波包括对第一子块q00的下水平边去块滤波。
[0029]对于本领域技术人员明显的是,在对第一子块q00的左垂直边O、右垂直边I和上水平边2,以及第二子块qlO的左垂直边3和右垂直边4去块滤波之后,立即对第二子块qlO的上水平边5进行去块滤波。在步骤545,方法500将去块滤波后的第一子块DF00存储在输出缓冲器160中,在步骤550,计数器i和k递增。测试步骤525之后再次确定是否存在子块qkj。因为子块q20存在,重复步骤530到550,对第三子块q20的左垂直边6去块滤波,对第三子块q20的右垂直边7去块滤波,以及对第三子块q20的上水平边8去块滤波,以提供去块滤波后的第二子块D10,其被存储在输出缓冲器160中。
[0030]明显地,第三子块q20的上水平边8为第二子块qlO的下水平边,并且在对第三子块q20的左垂直边6和右垂直边7去块滤波之后,立即对第三子块q20的上水平边8去块滤波。同样的,可以理解,对第三子块q20的上水平边8去块滤波包括对第二子块qlO的下水平边去块滤波。
[0031]计数器i和k在步骤550再次递增,从而测试步骤525确定是否存在子块q30。由于子块q30存在,重复步骤530到550,得到去块滤波后的第三子块D20,其存储在输出缓冲器160中。此时,测试步骤525确定不存在子块q40,因而在步骤555,去块滤波后的子块D30被存储在输出缓冲器160 (或任何其他缓冲器)中。在步骤555后,对亮度(Y)宏块300的左列(其中计数器j = 0)的子块依次执行方法500。更具体的,方法500特征在于:在宏块的其他子块被完全去块滤波之前,左列中的至少三个子块q00到q02被完全去块滤波并存储在输出缓冲器中。
[0032]图6为流程图,其示出了根据本发明的第一优选实施例对视频数据的至少一个编码宏块进行去块滤波的方法500的第二部分。方法500在步骤605设置计数器i为0,设置计数器j、k为I。在步骤615,对子块qOl的右垂直边12进行去块滤波,在步骤620,对子块qOl的上水平边13进行去块滤波。
[0033]之后测试步骤625确定是否存在子块qkj,其中第一实例qkj为qll。该子块存在,因而步骤635对子块qll的右垂直边14去块滤波,之后,在步骤640,对子块qll的上水平边15去块滤波。对上水平边15的去块滤波得到去块滤波的子块DFOl (其中DFOl是子块qOl的去块版本)。
[0034]在步骤645,方法500将去块滤波的第一子块DFOl存储在输出缓冲器160中,在步骤650,计数器i和k递增。之后,测试步骤625再次确定是否存在子块qkj。如果子块q21存在,重复步骤635到650。这会导致子块q21的右垂直16边去块滤波,以及子块q21的上水平边17去块滤波,从而提供去块滤波的子块D11,其被存储在输出缓冲器160中。
[0035]在步骤650计数器i和k再次递增,在测试步骤625因而将确定存在子块q31。由于子块q31存在,重复步骤630到650,从而得到去块滤波的子块D21,其存储在输出缓冲器160中。这此时,测试步骤625确定子块q41不存在,因而在步骤655,去块滤波的子块D31被存储在该输出缓冲器160 (或其他任何缓冲器)中。在步骤660中,计数器i被设置为0,计数器k被设置为1,计数器j递增(计数器j = 2)。测试步骤665随后确定qi j+1是否存在,并且因为q03存在,方法500返回到步骤615。当方法500返回到步骤660,计数器i被设置为0,计数器k被设置为I,并且计数器j递增(计数器j = 3),因而在测试步骤665,确定q04不存在。因此完成对亮度⑴宏块300的最左侧三列(qOO到q30 ;q01到q31 ;以及q02到q32)的子块的去块滤波处理。
[0036]参看图7,示出了根据本发明的第一优选实施例对视频数据的至少一个编码宏块进行去块滤波的方法500的第三部分的流程图。方法500在步骤705设置计数器i为0,计数器j为3,计数器k为I。在步骤720,对子块q03的上水平边28去块滤波。
[0037]之后测试步骤725确定是否存在子块qkj,其中第一实例qkj为ql3。该子块存在,因而步骤740对子块ql3的上水平边29进行去块滤波。对上水平边29的去块滤波得到去块滤波后的子块DF03 (其中DF03为子块q03的去块版本)。
[0038]在步骤745,方法500将去块滤波的第一子块DF03存储在输出缓冲器160中,并在步骤750,计数器i和k递增。测试步骤725随后再次确定是否存在子块qkj。由于子块q23存在,重复步骤740到750。这导致对子块q23的上水平边30的去块滤波,以提供去块滤波的子块D13,其存储在输出缓冲器160中。
[0039]在步骤750,计数器i和k再次递增,测试步骤725因此将确定子块q33存在。由于子块q33存在,重复步骤740到750,得到去块滤波后的子块D23,其存储在输出缓冲器160中。此时,测试步骤725确定子块q43不存在,因而在步骤755,去块滤波的子块D33被存储在输出缓冲器160 (或任何其他的缓冲器)中。该方法500随后在步骤760终止。
[0040]很清楚的,色度(Cb,Cr)宏块300也以类似的方式使用方法500被去块滤波。同时,亮度(Y)和色度(Cb, Cr)宏块300的最下和最右边未按照方法500的单一执行被完全去块滤波。然而,在相邻微块上的后续执行时,这些最下和最右边会波完全去块滤波。
[0041]参看图8,示出了根据本发明的第二优选实施例对视频数据的至少一个编码宏块去块滤波的方法800的第一部分。该方法800可在任何适当的包括系统100的由控制器150控制的硬件上执行,并参照宏块400进行说明。方法800在步骤805设置两个计数器
1、j为0,一个计数器k为I。接着,在步骤810,对亮度(Y)宏块400的第一子块qOO的左垂直边0去块滤波。在步骤815,对第一子块qOO的右垂直边I去块滤波,在步骤820,对第一子块qOO的上水平边2去块滤波。
[0042]测试步骤825随后确定是否计数器j = O。在第一实例中,j为0,因而步骤830对亮度(Y)宏块300的第二子块qOl的左垂直边3进行去块滤波。该方法800随后在步骤835对第二子块qlO的右垂直边4去块滤波。随后,在步骤840,对第二子块qlO的上水平边5去块滤波。对上水平边5的去块滤波得到去块滤波后的第一子块DF00 (其中DF00为子块q00的去块版本)。这是因为,第二子块qlO的上水平边5也是第一子块q00的下水平边,第二子块qlO的上水平边5的去块滤波包括对第一子块q00的下水平边的去块滤波。
[0043]在步骤845,方法800将去块滤波的第一子块DF00存储在输出缓冲器160中,在步骤850,计数器j递增,从而测试步骤855确定子块qij+1是否存在,由于子块q02存在,重复步骤815到820以及步骤835到850 (计数器j不等于0,因此步骤830被跳过)。这导致对第三子块qOl的右垂直边6的去块滤波,对第三子块qOl的上水平边7的去块滤波和第四子块qll的右垂直边8的去块滤波,以及对第四子块qll的上水平边9的去块滤波。在步骤835到850完成后,计数器j被递增,从而得到去块滤波后的子块DOI,其被存储在输出缓冲器160中。进而,明显地,第三子块qOl的左垂直边为第一字块q00的右垂直边1,第四子块qll的左垂直边为第二子块qlO的右垂直边4。
[0044]测试步骤855再次确定是否存在子块qij+1。由于子块q03存在,重复步骤815到820以及步骤835到850 (计数器j不等于0,因而跳过步骤830)。这导致对子块q02的右垂直边10去块滤波、子块q02的上水平边11去块滤波、子块ql2的右垂直边12去块滤波以及子块ql2的上水平边13去块滤波。在步骤835到850完成后,计数器j被递增,并且提供去块滤波后的子块D02,其被存储在输出缓冲器160中。而且很清楚的,子块q02的左垂直边是子块qOl的右垂直边6,并且子块ql2的左垂直边为子块qll的右垂直边8。
[0045]当方法800返回到测试步骤855时,子块ql j+1即q04,其不存在。因而方法800在步骤860对子块q03的上水平边14去块滤波,在步骤865,对子块ql3的上水平边15进行去块滤波。这得到去块滤波后的子块D03,其在步骤870被存储在输出缓冲器160 (或任何其它缓冲器)中。
[0046]在完成步骤870后,方法800依次对亮度(Y)宏块400的上面行q00到q03的子块进行去块滤波,这样在亮度宏块400的任何其它子块被完全去块滤波之前,上面行中的至少三个子块q00、qOl和q02被完全去块滤波并保存在输出缓冲器160中。
[0047]参看图9,示出了根据本发明的第二优选实施例对视频数据的至少一个编码宏块进行去块滤波的方法800的第二部分。该方法800在步骤905将计数器i设为1,计数器j设为0以及计数器k设为2。接下来在步骤910,对亮度(Y)宏块400的子块q20的左垂直边去块滤波。在步骤915,对子块q20的右垂直边17去块滤波,在步骤920,对子块q20的上水平边18去块滤波。对上水平边18的去块滤波得到去块滤波后的子块DF10,其在步骤945被存储在输出缓冲器160中。
[0048]在步骤950,计数器j递增,因而测试步骤955确定是否存在子块qij+1。由于子块ql2存在,重复步骤915到950。这会导致对子块q21的右垂直边19去块滤波,以及对子块q21的上水平边20去块滤波。上水平边20的去块滤波得到去块滤波后的子块DF11,其在步骤945被存储在输出缓冲器160中。当在步骤950确定子块qij+1不存在(即ql4不存在)时,在步骤960,该方法对子块q23的上水平边23进行去块滤波,进而在步骤965将去块滤波后的子块DF13存储在输出缓冲器160中。 [0049]在步骤970,计数器i和k递增,且计数器j被设置为O。测试框975之后确定是否存在子块qkj,由于子块q30存在,方法800返回到步骤910。当测试框975确定不存在子块qkj (即不存在q40),重复步骤980和985,直到去块滤波后的子块DF30、DF31、DF32和DF33被存储在输出缓冲器160 (或任何其它缓冲器)中。随后该方法800在步骤990终止。
[0050]很清楚的,以采用方法800相似的方式同样对色度(Cb,Cr)宏块400去块滤波。而且,按照方法800的单一执行,亮度(Y)和色度(Cb,Cr)宏块400的最下边和最右边并未被完全去块滤波。然而,在相邻微块的后继执行中,这些最下边和最右边将被完全去块滤波。
[0051]参看图10,示出了图解宏块中的每个子块中的4X4像素阵列的示意图1000。如图所示,两个相邻的子块1010和1020具有共同的垂直边1030。每个子块1010和1020包括16个像素值的4X4阵列,其中子块1010具有像素值为a00到a33的四列AO到A3,并且子块1020具有像素值为b00到b33的四列B0-B3。
[0052]当对共同的垂直边1030进行去块滤波时,可同时计算像素值aiO到ai3以及biO到bi3所在的行,其中i为从0到3的整数。对宏块中的所有子块应用该处理方式,当考虑共同的水平边时,对于本领域技术人员来说很清楚的是,可同时对各子块的相应列进行滤波。
[0053]由于去块滤波是公知的,不对其详述。这类滤波包括本领域技术人员熟知的边界强度BS分析以及阿尔法a和贝塔P阈值分析。不过,可以将去块滤波分类为以下阶段:
[0054]阶段1- >如果BS ! = 0,那么从输入缓冲器110中读取像素;否则如果BS = 0,禁用滤波器元件;
[0055]阶段2->获取阈值a和3 ;
[0056]阶段3- >计算 I a0-b0 |、| al-a0 |、| bl-b0 |、| a2~a0 | 以及 | b2-b0 | ,并决定是否启用或禁用滤波器;
[0057]阶段4_>如果BS小于4,那么计算al’、a0’以及bl,、b0,;否则如果BS等于4,那么计算 a2’、al’、a0’ 和 b2’、bl’、b0’ ;并且
[0058]阶段5- >存储滤波后的像素。
[0059]可采用流水线方式针对宏块中的至少一些边执行上述阶段,在帧率速度非常关键时这能够特别节省时间。
[0060]概括来说,本发明提供了对宏块的第一子块的三条边去块滤波,之后对与第一子块邻接的第二子块的两条垂直边去块滤波。对第二子块的上水平边的去块滤波提供了去块滤波后的第一子块,其中在对该三条边和第二子块的左垂直边和右垂直边去块滤波之后,立即执行对第二子块的上水平边的去块滤波。在执行任意进一步的去块滤波之前,去块滤波后的第一子块被存储在输出缓冲器160中。方法500和800符合H.264高级视频编码标准,这样对于宏块中的每个子块来说,去块滤波的顺序为:左垂直边、右垂直边、上水平边、以及下水平边。
[0061]有利地,本发明因而提供了符合H.264/AVC标准的去块滤波,降低或者至少减轻了符合H.264/AVC标准的现有技术去块方法的密集存储需求。!
[0062] 本发明的优选实施例的说明用于展示和说明而呈现,但并不意味着其为穷举的或者将本发明限定为公开的形式。本领域技术人员可以理解,在不背离本发明的广泛创造性概念的情形下可对上述的实施例做出变更。因而,可以理解,本发明不限定为公开的特定实施例,而是覆盖了由附加权利要求限定的本发明的精神和范围内的修改。
【权利要求】
1.一种对视频数据的至少一个编码宏块进行去块滤波的方法,所述方法在电子系统上执行,包括如下步骤: 对所述宏块的第一子块的左垂直边去块滤波; 对第一子块的右垂直边去块滤波; 对第一子块的上水平边去块滤波; 对所述宏块的第二子块的左垂直边去块滤波; 对第二子块的右垂直边去块滤波;以及 对第二子块的上水平边去块滤波,以提供去块滤波后的第一子块,其中第二子块的上水平边是第一子块的下水平边,并且在对第一子块的左垂直边、右垂直边和上水平边以及第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边进行去块滤波。
2.如权利要求1的进行去块滤波的方法,进一步包括: 对所述宏块的第三子块的左垂直边去块滤波; 对第三子块的右垂直边去块滤波;以及 对第三子块的上水平边去块滤波,以提供去块滤波后的第二子块,其中第三子块的上水平边是第二子块的下水平边,并且在对第三子块的左垂直边和右垂直边去块滤波之后,立即对第三子块的上水平边去块滤波。
3.如权利要求2的进行 去块滤波的方法,其中对第二子块的上水平边去块滤波包括对第一子块的下水平边去块滤波,对第三子块的上水平边去块滤波包括对第二子块的下水平边去块滤波。
4.如权利要求2的进行去块滤波的方法,其中依次对宏块的左列的各子块执行所述方法,从而在宏块的任何其它子块被完全去块滤波之前,该左列中的至少三个子块被完全去块滤波。
5.如权利要求1的进行去块滤波的方法,进一步包括: 对第三子块的右垂直边去块滤波; 对第三子块的上水平边去块滤波; 对第四子块的右垂直边去块滤波;以及 对第四子块的上水平边去块滤波,其中第三子块的左垂直边是第一子块的右垂直边,并且第四子块的左垂直边是第二子块的右垂直边。
6.如权利要求5的进行去块滤波的方法,其中对第一子块的右垂直边去块滤波包括对第三子块的左垂直边去块滤波,对第二子块的右垂直边去块滤波包括对第四子块的左垂直边去块滤波。
7.如权利要求5的进行去块滤波的方法,其中依次对宏块的上面行的各子块执行所述方法,从而在宏块的任何其它子块被完全去块滤波之前,所述上面行中的至少三个子块被完全去块滤波并被存储在输出缓冲器中。
8.如权利要求1的进行去块滤波的方法,进一步包括微滤波后的第一子块存储在输出缓冲器中。
9.如权利要求1的进行去块滤波的方法,其中每个子块包括16个像素值的阵列。
10.如权利要求1的进行去块滤波的方法,其中所述方法符合H.264高级视频编码标准,以使得对于宏块中的每个子块,去块滤波的顺序为:左垂直边、右垂直边、上水平边和下水平边。
11.一种对视频数据的至少一个编码宏块进行去块滤波的方法,所述方法在电子系统上执行,包括如下步骤: 对宏块的第一子块的三条边去块滤波; 对与第一子块相邻的第二子块的两条垂直边去块滤波; 对第二子块的上水平边去块滤波,以提供去块滤波后的第一子块,其中在对该三条边和第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边去块滤波;以及 在进行任何其他去块滤波之前,将去块滤波后的第一子块存储在输出缓冲器中。
12.如权利要求11的进行去块滤波的方法,进一步包括: 对所述宏块的第三子块的左垂直边去块滤波; 对第三子块的右垂直边去块滤波;以及 对第三子块的上水平边去块滤波,以提供去块滤波后的第二子块,其中第三子块的上水平边是第二子块的下水平边,并且在对第三子块的左垂直边和右垂直边去块滤波之后,立即对第三子块的上水平边去块滤波。
13.如权利要求12的进行去块滤波的方法,其中依次对宏块的左列的各子块执行所述方法,以使得在宏块的任何其它子块被完全去块滤波之前,左列中的至少三个子块被完全去块滤波,并被存储在输出缓冲器中。
14.如权利要求11的进行去块滤波的方法,其中所述方法进一步包括: 对第三子块的右垂直边去块滤波; 对第三子块的上水平边去块滤波; 对第四子块的右垂直边去块滤波;以及 对第四子块的上水平边去块滤波,其中第三子块的左垂直边是第一子块的右垂直边,第四子块的左垂直边是第二子块的右垂直边。
15.如权利要求11的进行去块滤波方法,其中对亮度和相关的色度宏块依次执行所述方法。
16.一种对视频数据的编码宏块去块滤波的系统,该系统包括用于存储宏块的输入缓冲器、与该输入缓冲器耦合的去块滤波器;与该去块滤波器耦合的控制器;与该去块滤波器耦合的输出缓冲器,其中在操作中该控制器通过执行以下步骤控制去块滤波器: 对宏块的第一子块的三条边去块滤波; 对与第一子块相邻的第二子块的两条垂直边去块滤波; 对第二子块的上水平边去块滤波,以提供去块滤波后的第一子块,其中在对该三条边和第二子块的左垂直边和右垂直边去块滤波之后,立即对第二子块的上水平边进行去块滤波;以及 在进行任何其他去块滤波之前,将去块滤波后的第一子块存储在输出缓冲器中。
17.如权利要求16的处理编码宏块的系统,其中所述控制器控制去块滤波器执行如下步骤: 对所述宏块的第三子块的左垂直边去块滤波;对第三子块的右垂直边去块滤波;以及 对第三子块的上水平边去块滤波,以提供去块滤波后的第二子块,其中第三子块的上水平边是第二子块的下水平边,并且在对第三子块的左垂直边和右垂直边去块滤波之后,立即对第三子块的上水平边去块滤波。
18.如权利要求16的处理编码宏块的系统,其中所述控制器控制去块滤波器执行如下步骤: 对第三子块的右垂直边去块滤波; 对第三子块的上水平边去块滤波; 对第四子块的右垂直边去块滤波;以及 对第四子块的上水平边去块滤波,其中第三子块的左垂直边是第一子块的右垂直边,第四子块的左垂直边是第二子块的右垂直边。
19.如权利要求16的处理编码宏块的系统,其中该去块滤波器包括亮度和色度滤波器。
20.如权利要求16的处理编码宏块的系统,其中该系统执行符合H.264高级视频编标准的去块滤波,以使 得对于宏块中的每个子块,去块滤波的顺序为:左垂直边、右垂直边、上水平边和下水平边。
【文档编号】H04N19/86GK103634609SQ201210452056
【公开日】2014年3月12日 申请日期:2012年8月23日 优先权日:2012年8月23日
【发明者】何叶东 申请人:飞思卡尔半导体公司