高性能视频编码的超块的制作方法

文档序号:7849040阅读:206来源:国知局
专利名称:高性能视频编码的超块的制作方法
技术领域
本发明总体上涉及视频编码器和/或视频解码器。现有技术的交叉引用无应用。
背景技术
本发明总体上涉及视频编码器和/或视频解码器。
网络上的视频传输典型包括视频编码器和视频解码器。视频的编码包括有损压缩技术以便在实现较低传输比特率的同时仍提供感知上优良的视频质量。作为示例,在MPEG-2视频压缩标准中使用的数字视频盘以全文引用的方式并入本文。视频压缩典型基于相邻像素的分组进行操作,通常将相邻像素的分组称作宏块。逐帧地比较宏块或其他像素组,其中传输帧之间的差异。在出现运动时,视频压缩逐帧地传输对宏块或其他像素组的运动加以指示的数据以及帧之间的差异。以全文引用的方式并入本文的H. 264/AVC(官方称作ISO/IEC14496-10-MPEG-4Part 10,高级视频编码)视频压缩标准用于多种应用,例如蓝光光盘。H. 264标准是基于块的压缩标准,典型地以基本上低于MPEG-2的比特率产生优良的视频质量。虽然H. 264标准提供了优良的结果,但是仍然需要在不明显降低感知图像质量的同时不断降低比特率,尤其是对于高清内容来说。

发明内容
—个优选实施例是一种解码视频的方法,包括(a)接收对超块(super block)加以指示的超块标志,所述超块包括多个较小像素块,所述较小像素块具有与所述超块共享的解码信息;(b)接收编码块图样标志,所述编码块图样标志指示了所述超块是否具有残差;(C)根据所述超块标志以及所述编码块图样标志来解码所述超块。另一优选实施例是一种解码视频的方法,包括(a)接收在编码视频的比特流中的超块,所述超块包括多个较小像素块,所述较小像素块具有与所述超块共享的解码信息;(b)从所述较小像素块之一中提取所述共享的解码信息;(c)将所述共享的解码信息应用到所述超块的另一个较小像素块;(d)根据所述共享的解码信息来解码所述较小像素块之一;(e)根据所述共享的解码信息来解码所述另一个较小的像素块。结合附图,根据以下本发明的详细描述能够更容易地理解本发明的前述及其他目的、特征和优点。


图I示出了视频编码器。图2示出了视频解码器。图3示出了块编码。
图4示出了超块的映射。图5A示出了用于图像条数据处理的语法。图5B示出了用于图像条数据处理的语法。图6A示出了用于宏块处理的语法。图6B示出了用于宏块处理的语法。图7示出了针对超块的提取、拷贝和保存。图8示出了数据结构,其中(a)示出了超块的数据结构,(b)示出了宏块的数据结构。图9示出了超块报头的语法的示例。
具体实施例方式参考图1,作为演示目的描述示例H. 264编码器200。能够理解可以使用任意视频编码器。将输入视频210提供给缓冲器220,缓冲器220适于根据需要重排序帧或重排序帧的一部分。组合器230按照适于变换和量化处理240的方式,修改适当重排序的帧的一部分。变换和量化处理240向熵编码器250提供信号。熵编码器250向输出缓冲器260提供信号用于输出比特流270。接收输入视频210的编码器控制器280向编码器200的所有模块提供控制信号。变换和量化处理240还将其输出提供到逆变换和量化300以便能够模拟对应的解码器。画面类型判决处理310与帧排序缓冲器220互连。画面类型判决处理310还与宏块类型判决320互连。按照这种方式,可以实现对于帧排序缓冲器220的控制。此外,可以实现对于宏块的类型的控制。逆变换和量化300向组合器330提供信号,组合器330与宏块类型判决320相组合,向帧内编码预测模块340和解块滤波器350提供信号。解块滤波器350与参考画面缓冲器360互连。参考画面缓冲器360向运动估计处理370和运动补偿处理380提供信号。运动估计370向运动补偿380和熵编码器250提供信号。选择器390针对组合器230在运动补偿380的输出和帧内编码预测340的输出之间进行选择。按照这种方式,组合器230接收关于宏块是巾贞内编码340还是运动补偿编码380的彳目息。由选择器390做出的判决与宏块类型判决320有关。例如,如果宏块类型判决320判决应当对宏块进行帧内编码,则选择器应当选择帧内预测形式。例如,如果宏块类型判决320判决应当对宏块进行运动补偿,则选择器应当选择运动补偿形式。以下内容均包含在熵编码器250所编码的比特流中由宏块类型判决320、画面类型判决310、选择器390做出的判决;以及在一个或多个帧内预测技术340之间做出的选择。此外,组合器330可以接收来自选择器390的输入以便提供与做出的选择有关的信息。可以使用任意适当的解码器。用于输入比特流410的典型视频解码器400包括输入缓冲器420。输入缓冲器420向熵解码器430提供信号。熵解码器430向逆变换和量化处理440提供信号。逆变换和量化处理440向组合器450提供信号。组合器450向解块滤波器460和帧内预测模块470提供信号。解块滤波器460向参考画面缓冲器480提供信号。参考画面缓冲器480向运动补偿器490提供信号。熵解码器430向运动补偿490和解块滤波器460提供信号。熵解码器430还向解码器控制器500提供信号。解码器控制器与解码器400的其他模块互连。运动补偿器490向开关510提供信号。帧内预测模块470向开关510提供信号。开关510选择性地将信号提供给组合器450。解块滤波器460提供输出画面520。参考图3,典型地使用不同的技术来编码视频中不同的帧或帧的一部分。一种这样的技术包括使用通常被称作I帧、P帧和B帧的画面类型。I帧无需其他视频帧用于解码。P帧可以使用来自先前传输帧的数据用于解码。B帧可以使用两个或更多个先前传输帧用于解码。视频的编码可以同样基于帧中的一个或更多个不同大小的像素块。此外,视频的编码可以同样基于一个或更多个帧之间的运动估计、图像条、块的空间预测或其他。因此,通常存在与视频比特流一起传输的解码器预测信息,该信息指示了帧的解码类型、帧的预测类型、预测的方向、使用哪些帧、帧之间的运动估计信息、帧大小信息、帧中块的大小信息、空间预测信息和/或其他适当参数。因此,解码器400根据编码器200与比特流一起提 供的预测信息来解码视频的帧。参考图4,在例如ITU-T H. 264或MPEG-4AVC等已有视频编码系统中,宏块(MB)具体是指16X16像素块。在不同的视频编码系统中,希望支持这种视频编码系统的16X16宏块结构,同时支持“超块”,超块是指例如16X16宏块的NXN组,其中N彡2。对于N = 2的情况,超块定义了 32X32像素块。例如,在N = 4的情况下,超块定义了 64X64像素块。使用公共信息结构使得能够有效编码宏块和超块。在任何示例实现方式中,通常认为宏块是超块的分区,就如通常认为4X4像素块是宏块的分区。因此,超块中的4个宏块具有公共特性(超块类型)并且超块类型包括参数,例如宏块类型(预测模式)、变换类型、合并标志、加权参数、参考索引、模式判决、量化参数(QP)和运动矢量。视频编码器对超块中包含的公共特性进行编码。视频解码器解码在超块中包含的公共特性。由于视频编码器针对超块而不是超块内的四个宏块中的每一个来对超块类型进行编码,可以消减针对单个超块中四个宏块中的每一个来编码相同信息的处理。这能够减小编码数据量。为了在编码器和解码器处均支持超块,可以将图像划分为超块并以NXN宏块组顺序进行处理。以下描述讨论N = 2的情况。利用超块类型,可以包括与宏块一致的帧内预测模式、运动矢量、参考索引和/或模式判决。对于帧内超块编码,超块类型中的宏块可以被限制为具有与超块相同的宏块类型和/或相同的预测模式。作为示例,宏块类型可以包括帧内编码4X4、帧内编码8X8、帧内编码16X8、帧内编码8X 16和/或帧内编码16X16。即,单个超块中各个宏块的预测模式(宏块类型)与针对该超块编码的预测模式相同。对于帧间编码的超块,可以使用一个32X32分区、两个32 X 16分区和/或两个16X32分区。此外,可以使用基于超块的跳过模式以及可以使用基于超块的直接模式。可以使用基于超块的帧内编码模式并且可以使用基于超块的合并模式。在基于超块的跳过模式中,仅编码运动矢量中的预测索引,不编码其他信息。在基于超块的直接模式中,仅编码变换系数。在基于超块的合并模式中,从相邻超块的信息中确定目标超块的信息。该超块描述针对N = 2的情况,而N的其他值具有附加且更大的分区。相同分区中的宏块优选具有与超块类型相同的运动矢量、预测模式(宏块类型)和参考索引。“超块标志”可以包括在比特流中,超块标志指示了特定宏块组是否是超块。即,针对超块在数据流的头部给出指示了是否将超块划分为宏块的信息,或者针对超块内的第一个宏块组在数据流中给出指示了是否将超块划分为宏块的信息。如果是,可以如下所述使用备选的语法解码处理。超块标志还可以用于控制变换尺寸以及应当使用哪个(或哪些)变换。例如,基于一个超块是否被进一步分区为宏块,可以使用不同的变换尺寸。使用包括超块的系统来改进编码效率主要依据两个方面。第一方面在于该系统能够提供改进的预测。第二方面在于系统能够缩减描述比特流所必须的语法。具体地,基于超块系统的编码效率提高的显著部分在于缩减了语法信令。存在能够有效地信号通知超块的两种主要功能。第一功能在于指示了超块的标志和指示了特定超块编码块图样(以下称作CBP)的标志。对于每个宏块组,发送超块标志以指示是否应当按照备选的超块处理对该组进行编码。如果标志等于I (或其他值),则附加地发送超块CBP标志以指示该超块是否具有残差。第二功能在于将超块信息嵌入到超块的对应宏块组的第一宏块(或选定宏块)中。在ITU-T H. 264和MPEG-4AVC中,针对每一个宏块发送宏块类型和其他高层次信息。 对于超块,系统通过将超块信息映射到宏块并且仅传输针对第一个(或选定)宏块的宏块报头或传输超块报头,缩减了该信令开销。压缩宏块类型、运动矢量差异(这里称作MVD)和超块的参考索引、合并标志、加权参数、预测模式、变换尺寸、量化参数(QP),将其映射到16X16宏块,并在超块的第一宏块的开始处或超块的报头处进行传输。图4示出了典型映射,其中箭头表示该分区的MVD。例如,将一个32 X 16超块映射到16X8宏块,并作为16X8宏块发送超块信息。在解码器处,进行逆映射并将16X8宏块转换为32X 16超块以便进行重构。将参考索引以及重构的运动矢量填充到超块中对应的宏块。超块中的宏块可以共享附加公共特性,包括宏块跳过、变换尺寸、合并标志、预测模式和delta量化。该公共信息也是利用超块中的第一个(或选定)宏块(图8(b))或超块的报头(图8(a))来发送的。对于超块中的非第一宏块,可以从其他宏块拷贝宏块跳过、变换尺寸、delta量化等。适当的使用超块能够节约用于信号通知宏块信息的比特率。图5A和5B详细示出了详细典型语法。语法基于ITU-T H. 264和MPEG-4AVC中slice data的语法,但对其进行修改以按照宏块组顺序处理宏块。在图5A和5B中,为了简明起见省略一些公用语法,例如H. 264/AVC中Slice_data。附加语法包括图像条数据语义。superblock_flag指定了该宏块组是否是超块。superblock_cbp_lbit指定了该超块组是否具有任意系数。如果superblock_cbp_lbit等于1,意味着超块中的至少I个宏块具有系数。在这情况下,对于超块中的至少一个宏块,在数据流中还给出了指示cbp的信息。如果superblock_cbp_l bit等于O,意味着超块中没有宏块具有系数。superblock_skip_run指定了连续跳过的超块的数目,当解码P或SP图像条时,将超块中宏块的mb_type推断为P_Skip,集中地将宏块类型称作P宏块类型,或者当解码B图像条时,将mb_type推断为B_Skip,并集中地将宏块类型称作B宏块类型。superblock_skip_run 的数值可以在 O 到 PicSizelnSuperblocks-Curr MbAddr (含)。如果superblock_skip_flag等于I,表示对于当前超块,当解码P或SP图像条时,可以将超块中宏块的mb_type推断为P_Skip,集中地将宏块类型称作P宏块类型,或者当解码B图像条时,将mb_type推断为B_Skip,并集中地将宏块类型称作B宏块类型。如果superblock—skip—flag等于0,表示不跳过当前超块。图9示出了另一种语法的示例。变量superblock—size表示超块中宏块的数目。例如,对于32X32超块,除在画面边界以外superblock—size是4,superblock—size可以不是32的倍数。extract_and_save_superblock_infoO 和 copy_macroblock_info_from_superblock O是指得到超块语法、保存并将其填充到宏块的函数。nextSuperblockAddress O返回下一超块的起始宏块地址。附加语法也表示宏块层语义。对于宏块层,其语法与H.264/AVC标准中的macroblock layer 类似,修改在于如图 6A 和 6B 所不读取 coded—block—pattern。可以如下定义coded—block—pattern 的语义。coded—block—pattern 可以指定六个8X8块(亮度和色度)中的哪一个可以包含非零变换系数级。对于预测模式不等 于Intra—16x16的宏块,coded—block—pattern被包括在比特流中,可以如下导出变量CodedBlockPatternLuma 和 CodedBlockPatternChroma。CodedBlockPatternLuma = coded—block—pattern % 16CodedBlockPatternChroma = coded—block—pattern/16当存在coded—block—pattern 时,CodedBlockPatternLuma 可以针对宏块的 4 个8X8亮度块中的每一个指定以下情况之一。第一,8X8亮度块中4个4X4亮度块的所有变换系数级均等于零。第二,8X8亮度块中一个或更多个4X4亮度块的一个或多个变换系数级是非零值。在超块的情况下,当superblock—cbp—Ibit = = 0时,可以将宏块的coded—block—pattern 设为 O。可以使用从超块到宏块的任意适当映射处理。参考图7,示出了语法中引用的到extract_and_save_superblock_info 和 copy—macroblock—info_from—superblock 的伪码。
权利要求
1.一种解码视频的方法,包括 (a)接收对超块加以指示的超块标志,所述超块包括多个较小像素块,所述较小像素块具有与所述超块共享的解码信息; (b)接收编码块图样标志,所述编码块图样标志指示了所述超块是否具有残差; (C)根据所述超块标志以及所述编码块图样标志来解码所述超块。
2.根据权利要求I所述的方法,其中,所述超块是32X32像素。
3.根据权利要求2所述的方法,其中,所述较小像素块是16X 16像素。
4.根据权利要求I所述的方法,其中,所述超块是64X64像素。
5.根据权利要求I所述的方法,其中,所述共享的解码信息包括以下中的至少一个(a)块类型;(b)变换类型;和(C)运动矢量。
6.根据权利要求5所述的方法,其中,所述解码信息包括(a)、(b)和(C)中的至少两个。
7.根据权利要求6所述的方法,其中,所述解码信息包括(a)、(b)和(C)中的至少三个。
8.根据权利要求I所述的方法,其中,所述超块具有块顺序,所述共享的解码信息与按照所述块顺序的第一个较小像素块包括在一起。
9.根据权利要求I所述的方法,其中,所述共享的解码信息没有被包括在所述超块的其他较小像素块中。
10.根据权利要求I所述的方法,其中,所述共享的解码信息包括以下中的至少一个(a)宏块跳过;(b)变换尺寸;以及(c) delta量化。
11.根据权利要求10所述的方法,其中,所述解码信息包括(a)、(b)和(C)中的至少两个。
12.根据权利要求11所述的方法,其中,所述解码信息包括(a)、(b)和(C)中的至少三个。
13.根据权利要求I所述的方法,其中,所述共享的解码信息包括(a)块类型;(b)变换类型;(C)运动矢量;(d)宏块跳过;(e)变换尺寸;和(f) delta量化。
14.一种解码视频的方法,包括 (a)接收在编码视频的比特流中的超块,所述超块包括多个较小像素块,所述较小像素块具有与所述超块共享的解码信息; (b)从所述较小像素块之一中提取所述共享的解码信息; (c)将所述共享的解码信息应用到所述超块的另一个较小像素块; (d)根据所述共享的解码信息来解码所述较小像素块之一; (e)根据所述共享的解码信息来解码所述另一个较小像素块。
15.根据权利要求14所述的方法,还包括接收对所述超块加以指示的超块标志。
16.根据权利要求16所述的方法,还包括接收对所述超块是否具有残差加以指示的编码块图样标志。
17.根据权利要求16所述的方法,还包括根据所述超块标志和所述编码块图样标志来解码所述超块。
18.根据权利要求14所述的方法,其中,所述超块是32X32像素。
19.根据权利要求18所述的方法,其中,所述较小像素块是16X16像素。
20.根据权利要求14所述的方法,其中,所述超块是64X64像素。
21.根据权利要求14所述的方法,其中,所述共享的解码信息包括以下中的至少一个(a)块类型;(b)变换类型;和(c)运动矢量。
22.根据权利要求21所述的方法,其中,所述解码信息包括(a)、(b)和(c)中的至少两个。
23.根据权利要求22所述的方法,其中,所述解码信息包括(a)、(b)和(c)中的至少三个。
24.根据权利要求14所述的方法,其中,所述超块具有块顺序,所述共享的解码信息与按照所述块顺序的第一个较小像素块包括在一起。
25.根据权利要求14所述的方法,其中,所述共享的解码信息没有被包括在所述超块的其他较小像素块中。
26.根据权利要求14所述的方法,其中,所述共享的解码信息包括以下中的至少一个(a)宏块跳过;(b)变换尺寸;以及(c) delta量化。
27.根据权利要求26所述的方法,其中,所述解码信息包括(a)、(b)和(c)中的至少两个。
28.根据权利要求27所述的方法,其中,所述解码信息包括(a)、(b)和(c)中的至少三个。
29.根据权利要求14所述的方法,其中,所述共享的解码信息包括(a)块类型;(b)变换类型;(C)运动矢量;(d)宏块跳过;(e)变换尺寸;和(f) delta量化。
全文摘要
一种用于编码和/或解码视频的系统,包括使用超块。使用超块能够减小视频比特流的比特率。
文档编号H04N7/26GK102835107SQ201180017990
公开日2012年12月19日 申请日期2011年4月11日 优先权日2010年4月9日
发明者赵杰, 克里斯托弗·A·塞格尔 申请人:夏普株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1