视频编码中的瓦片大小的制作方法
【专利摘要】一种布置成对视频序列进行编码的视频编码器,所述视频编码器包括:划分模块,布置成将视频序列划分为瓦片,其中瓦片大小比预定最小瓦片大小要大;以及至少一个编码模块,布置成对瓦片进行编码。
【专利说明】视频编码中的瓦片大小
[0001]
【技术领域】
[0002]本申请涉及视频编码器、视频编码器中的方法、视频解码器、视频解码器中的方法以及计算机可读介质。
【背景技术】
[0003]高效率视频编码(HEVC)是草案视频压缩标准以及H.264/MPEG-4 AVC (高级视频编码)的后继。HEVC由IS0/IEC运动图像专家组(MPEG)和ITU-T视频编码专家组(VCEG)联合开发为 IS0/IEC 23008-2 MPEG-H Part 2 和 ITU-T H.HEVC0
先前标准中的编码层的核心是宏块,包含16 X 16块的亮度样本以及在4:2:0彩色取样的通常情况下,色度样本的两个对应8X8块;而HEVC中的类似结构是编码树单元(CTU),其具有由编码器所选的大小,并且能够大于传统宏块。CTU由亮度编码树块(CTB)和对应色度CTB以及语法元素组成。亮度CTB的大小LXL能够选择为L=16、32或64个样本,其中较大的大小通常使能更好的压缩。HEVC则支持使用树结构和四叉树状信令将CTB划分为较小块。
[0004]CTU的四叉树语法指定其亮度和色度编码块(CB)的大小和位置。四叉树的根与CTU关联。因此,亮度CTB的大小是亮度CB的最大支持大小。将CTU分为亮度和色度CB被联合用信号发送。一个亮度CB和普通的两个色度CB连同关联语法一起形成编码单元(CU)。CTB可以仅包含一个CU 或者可分离以形成多个CU,并且每个CU具有关联的划分为预测单元(PU)以及变换单元(TU)的树的划分。
[0005]关于使用图像间还是图像内预测来对图像区域进行编码的决定在⑶级进行。预测单元(PU)划分结构具有在CU级的它的根。取决于基本预测类型决定,亮度和色度CB则能够在大小上进一步分离,并且从亮度和色度预测块(PB)来预测。HEVC支持从64X64下至4X4样本的可变PB大小。
[0006]在下面参照编码单元(CU)的情况下,这可指亮度或者色度编码块(CB)或甚至两者。HEVC的编码单元与其它视频编码标准中使用的宏块相似。
[0007]H.264视频编码标准定义所谓的档次(profile)和等级。档次是在一般针对应用的特定集合的标准中所指定的编码工具的子集。在H.264中存在若干档次,例如基线档次(针对会议和移动应用)、主要档次(针对电视)和高档次(针对视频的较高分辨率的编码)。向解码器要求实现对所选档次内的图像大小和比特率的所有可能组合进行解码的解码能力可能不切实际。为此,指定H.264中的“等级”。等级对于诸如比特率或图像大小的档次中所允许的语法元素的值施加约束。
[0008]单独地,称作“瓦片(tile)”的工具近来被采用于高效率视频编码(HEVC)标准中。这个工具改变最大编码单元(LCU,备选地为最大树块(LTB)或者编码树单元(CTU))的解码顺序。瓦片能够解释为由将图像分为矩形的一组垂直和/或水平线所定义的图像区域。这些矩形是瓦片。IXU在各瓦片内按照光栅扫描顺序来解码,以及瓦片在图像内部按照光栅扫描顺序来解码。与正常光栅扫描解码顺序相比,瓦片影响用于预测的邻近编码单元(或者树块)的可用性,并且可以包括或者可以不包括重置任何熵编码。
[0009]图1示出使用由列边界110所分隔的三列以及由行边界120所分隔的三行的瓦片划分的示例。图1示出多个LCU 100,其中的前41个被编号。
图2示出使用由列边界210所分隔的三列和一行的瓦片划分的示例。列通过片边界(slice boundary) 230来分隔为片。图2示出多个LCU 200,其中的前14个经过编号。
各瓦片包含整数个LCU。LCU在各瓦片内按照光栅扫描顺序来处理,并且瓦片本身在图像内按照光栅扫描顺序来处理。片边界由编码器来引入。
[0010]作为编码过程的一部分将图像划分为片已知为不利地影响编码效率,特别是当片设计成是独立可解码的时候。但是,现在许多应用和实现要求图像的划分。例如:
?并行处理:诸如在现代多核CPU上运行的实现的一些实现将源图像划分为片,并且将各片发送给独立核心以便并行地编码。在没有划分和并行编码的情况下,高清晰度视频(例如1280X 720及更大)的高质量实时编码当今在通用多核CPU上将是不可能的。另外,为了降低编码/解码过程期间的核心之间的高成本信息共享,使片被单独编码通常是有利的。
[0011].ΜΤυ大小匹配:在IP网络上传输编码比特流时,分组服从最大传送单元(MTU)大小。如果分组包含许多比MTU大小要少的位,则分组报头位开销能够显著影响编码效率。然而,如果分组包含比MTU大小要多的位,则网络将对分组进行分段。此外,丢失分组片段导致错误复原问题,因为如 果一个片段丢失,整个分组是不可恢复的。避免分组分段的一种方式是将图像划分为一个或多个片,将各片放入独立分组,同时确保各分组比MCU大小要小。
?错误复原:一些应用将图像划分为单独可解码片,并且应用不等错误保护技术来保护被认为更重要的片。
[0012]在考虑硬件中的视频编码的实际实现时的一个重要方面是存储器带宽。为了减少对存储器进行的读和写访问的数量,在H.264中使用宏块顺序解码。在那种情况下,块被重构,然后将去块(deblocking)应用于内部块边界,并且然后将去块应用于具有已经重构的块的边界。此后,将块回写到存储器。但是,去块不能应用于具有尚未重构的块的边界。因此,尚未由去块滤波器处理的像素保持在缓冲存储器中(有时称作行缓冲器)。由于宏块按照光栅扫描顺序来处理,所以右宏块边界的边界区域中的像素必须保持在存储器中,直到重构右边的下一个宏块并且能够应用去块。但是,对于底部宏块边界,与重构像素有关的信息必须保持在缓冲存储器中,直到下一行中的宏块被重构和处理。
例如,如果跨宏块边界的去块滤波器使用来自边界的每侧的四个像素,则沿底部边界的四行像素需要被存储,直到下一宏块行正被重构。在那种情况下,所需的缓冲存储器量为4行的图像宽度。所需的缓冲存储器能够达到大存储器量,特别是对于高清晰度视频,其意味着解码器的更高硬件成本(因为缓冲存储器是芯片上的,并且因此比芯片外存储器显著更昂贵)。
[0013]本文中,术语“边界层”用来表示如上所述在去块过程中需要存储的像素量。块的边界层包括多个像素,其值由去块滤波器在后续块的解码期间使用。
[0014]在HEVC中,行缓冲器要求的问题变得甚至更为重要,因为HEVC标准针对比高清晰度(1920X1080像素)的当前清晰度要高的分辨率。此外,HEVC还具有除了去块滤波器之外的其它环内滤波器,例如样本自适应偏移(SAO)和自适应环路滤波器(ALF)。这些环路滤波器应用于去块滤波器的顶部,并且引入所需的行缓冲器大小的进一步增加,因为在LCU(最大编码单元)的底部边界的像素尚未由去块处理,并且因此无法用作对SAO和ALF的输入。因此,HEVC解码器的行缓冲器必须具有比H.264要多的行,其与更大图像宽度一起要求为行缓冲器提供远远更多的芯片上存储器。
[0015]“Working Draft 4 of High-Efficiency Video Coding,,(JCTVC-F803,意大利,2011年7月)给出当前仍然是进行中的工作的HEVC标准的一般描述。
[0016]Arild Fuldseth、Michael Horowitz>Shi I in Xu>Andrew Segall、Minhua Zhou 的“Tiles”(兀17(:4335,意大利,2011年7月)提供对称作“瓦片”的编码技术的描述。
【发明内容】
[0017]本文所介绍的概念将限制视频的HEVC等级的最小瓦片大小。对于最接近瓦片的右边界的列可要求附加的行存储器。也就是说,在瓦片的右边界可存在多个像素列的附加边界区域。(这些列的像素值需要被存储,直到右边的瓦片已经被解码(但是没有被去块),因为需要来自边界的每侧的像素值以便对边界正确地去块。)但是,仅需要对这个附加的行缓冲器每个瓦片访问一次,并且因此它能够保持在解码器的芯片外存储器中,并且在需要时被读取,而没有显著增加存储器带宽。如果瓦片宽度过小,则这种方式可能引起延迟,但是这个问题能够通过对最小瓦片宽度施加限制来克服。
[0018]本文所介绍的另一概念是限制视频的HEVC等级的最大瓦片大小。这将限制对环内滤波(并且还对帧内预测)所需要的芯片上存储器的量,这意味着编码视频流可由具有更小容量行缓冲器并且因而具有更低制造成本的解码器来解码。
[0019]因此,提供一种布置成对视频序列进行编码的视频编码器,该视频编码器包括划分模块和至少一个编码模块。划分模块布置成将视频序列划分为瓦片,其中瓦片大小比预定最小瓦片大小要大。所述至少一个编码模块布置成对瓦片进行编码。
[0020]编码器可布置成优化特定视频解码器的编码,该特定解码器布置成将瓦片的右边界存储在芯片外存储器中。设置最小瓦片大小对频率(用所述频率,芯片外存储器必须被访问)施加上限。这降低通过访问芯片外存储器所引起的任何延迟的影响。
[0021]瓦片大小可以是下列至少一个:瓦片高度、瓦片宽度、瓦片面积和瓦片周长。
[0022]还提供一种在视频编码器中的方法,该方法包括将视频序列划分为瓦片,其中瓦片大小比预定最小瓦片大小要大。该方法还包括对瓦片进行编码。
[0023]还提供一种布置成对编码视频序列进行解码的视频解码器,视频序列编码在瓦片中,该视频解码器包括编码单元和去块滤波器。编码单元解码模块布置成对编码视频序列中的图像的编码单元进行解码。去块滤波器布置成平滑编码单元之间的边界,其中去块滤波器访问芯片外存储器中存储的瓦片的右边界。
[0024]还提供一种在视频解码器中的方法,该视频解码器布置成对编码视频序列进行解码,视频序列编码在瓦片中。该方法包括对编码视频序列中的图像的编码单元进行解码。该方法还包括使用去块滤波器来平滑编码单元之间的边界,其中去块滤波器访问芯片外存储器中存储的瓦片的右边界。[0025]还提供一种携带指令的计算机可读介质,所述指令在由计算机逻辑运行时引起所述计算机逻辑执行本文所限定的方法中的任一种。
【专利附图】
【附图说明】
[0026]现在将仅通过示例的方式参照附图来描述用于限制视频编码中的瓦片大小的方法和设备,附图中:
图1示出瓦片划分的第一示例;
图2示出瓦片划分的第二示例;
图3示出视频编码器;
图4示出视频解码器;
图5示出对视频序列进行编码的方法;以及 图6示出对视频序列进行解码的方法。 【具体实施方式】
[0027]如从图1和图2显而易见的,如果解码和滤波按照瓦片顺序来执行,则只有瓦片的边界区域中的像素值必须保持在芯片上存储器中。这与非瓦片式(non-tiled)图像的解码和滤波形成对照,由此全部图像宽度的行的边界区域必须存储在行缓冲器中。因此,在采用瓦片的情况下,需要较少缓冲存储器。因此,本文所述的方法和设备使瓦片对某些档次和等级是强制性的,并且还施加最大瓦片宽度的限制。
[0028]在一些实施例中,对于最接近瓦片的右边界的列可能需要某个附加行存储器。也就是说,在瓦片的右边界可存在多个像素列的附加边界区域。但是,仅需要对这个附加行缓冲器每个瓦片访问一次,并且因此它能够保持在解码器的芯片外存储器中,并且在需要时被读取,而没有显著增加存储器带宽。如果瓦片宽度过小,则这种方式可能引起延迟,但是这能够通过对最小瓦片宽度施加另外的限制来抵消。
[0029]具有垂直的若干瓦片(如同图1中)还要求在瓦片行之间转回时更频繁地加载芯片上存储器。因此,还能够施加对最小垂直瓦片大小的限制以抵消由此造成的任何延迟。
[0030]最大编码单元的大小通过瓦片面积来确定,其等于tile_width*tile_height。瓦片大小能够通过对瓦片中的LCU的数量施加限制来限制。可对每级编码指定LCU数量的最小和最大值。
[0031]另一个备选是限制总和tile_width+tile_height的值,因为它确定解码器中所需的芯片上存储器的大小。因此,还有可能用最大或最小值(或最小和最大值)来限制tile_width+tile_hight 总和值。
对瓦片大小的约束可在高度方面按照LCU的数量来表达,在宽度方面按照LCU的数量或者瓦片中的LQJ的数量来表达(tile_width_in_LCU*tile_height_in_LCU)。这些约束还可按照像素来表达。
[0032]在第一实施例中,将maximum_tile_width的限制施加到每个等级(或对于等级的子集)。
[0033]在第二实施例中,将maximum_tile_height的限制施加到每个等级(或者对于等级的子集)。[0034]在第三实施例中,将minimum_tile_width的限制施加到每个等级(或者对于等级的子集)。
[0035]在第四实施例中,将minimum_tile_height的限制施加到每个等级(或者对于等级的子集)。
[0036]在第五实施例中,将maximum_tile_width和mximum_tile_height的限制施加到每个等级(或者对于等级的子集)。
[0037]在第六实施例中,将minimum_tile_width和minimum_tile_height的限制施加到每个等级(或者对于等级的子集)。
在第七实施例中,将tile_width*tile_height的最大值的限制施加到每个等级(或者对于等级的子集)。
[0038]在第八实施例中,将tile_width*tile_height的最小值的限制施加到每个等级(或者对于等级的子集)。
[0039]在第九实施例中,将最大tile_width*tile_height 和最小 tile_width*tile_height的限制施加到每个等级(或者对于等级的子集)。
[0040]在第十实施例中,将最大tile_width+tile_height的限制施加到每个等级(或者对于等级的子集)。
[0041]在第^--实施例中,将最小tile_width+tile_height的限制施加到每个等级(或 者对于等级的子集)。
[0042]在第十二实施例中,将最大tile_width+tile_height 和最小 tile_width+tile_height的限制施加到每个等级(或者对于等级的子集)。
[0043]图3示出视频编码器300。视频编码器包括划分模块310和编码模块320。划分模块310接收视频序列,并且将视频序列的图像划分为瓦片。瓦片由编码模块320编码,以及编码模块从编码器300输出。
[0044]图4示出视频解码器400。视频解码器400包括编码单元解码模块410和去块滤波器420。编码单元解码模块410接收编码器输出,其可通过任何通信网络从编码器传送给解码器。作为视频解码过程的一部分,编码单元解码模块410对视频序列的各图像的编码单元进行解码。已解码的编码单元通过去块滤波器420,去块滤波器420平滑编码单元的边缘,从而去除在编码过程期间可能已经引入的任何编码伪影。去块滤波器的输出是视频序列,其可输出到显示器。
[0045]图5示出对视频序列进行编码的方法。该方法包括将视频序列划分510为瓦片。然后使用基于块的编码方案来对瓦片进行编码520。瓦片的至少一维如本文所述来控制,以促进在解码器的最佳解码。
[0046]图6示出对视频序列进行解码的方法。该方法包括对来自编码视频序列的编码单元进行解码610。该方法还包括将去块滤波器应用620于编码单元以平滑任何编码伪影。解码器将包括暂时存储在前瓦片的边界区域的像素值的装置,使得这些可用于在当前正被解码的瓦片的边缘的平滑操作。
[0047]本文所公开的方法和设备使得有可能减少视频解码器中的行缓冲器所需的芯片上存储器的量。这使编码器更便宜并且更容易实现。
[0048]对本领域的技术人员将显而易见的是,在本文所述方法中执行的动作的准确顺序和内容可根据执行参数的特定集合的要求来改变。相应地,描述和/或要求保护动作所采用的顺序不是要被理解为对于执行动作所采用的顺序的严格限制。
[0049]此外,虽然在特定视频编码标准的上下文中给出了示例,但是这些示例不是意在作为对所公开方法和设备可应用的视频编码标准的限制。例如,虽然在HEVC的上下文中给出了特定示例,但是本文所公开的原理也能够应用于任何H.264系统、其它视频编码系统以及实际上使用行缓冲器的任何视频编码系统。
[0050]附录
提供一种布置成对视频序列进行编码的视频编码器,该视频编码器包括:布置成将视频序列划分为瓦片的划分模块,其中瓦片大小比预定最大瓦片大小要小;以及布置成对瓦片进行编码的至少一个编码模块。
[0051]编码器可布置成优化特定视频解码器的编码。可确定预定最大瓦片大小,使得特定视频解码器中的去块滤波器具有充分缓冲存储器来存储具有最大瓦片大小的瓦片的边界层的像素值。
[0052]最大瓦片大小可取决于编码质量的等级。
[0053]划分模块还可布置成确定视频序列的图像宽度,以及如果图像宽度超过预定最大瓦片大小,则将视频序列划分为瓦片。
[0054]瓦片大小可比最小瓦片大小要大。
[0055]瓦片大小可以是下列中的至少一个:瓦片高度、瓦片宽度、瓦片面积和瓦片周长。
[0056]还提供一种在视频编码器中的方法,该方法包括:将视频序列划分为瓦片,其中瓦片大小比预定最大瓦片大小要小;以及对瓦片进行编码。
[0057]该方法还可包括优化特定视频解码器的编码,由此可确定预定最大瓦片大小,使得特定视频解码器中的去块滤波器具有充分的缓冲存储器来存储具有最大瓦片大小的瓦片的边界层的像素值。
[0058]还提供一种布置成对编码视频序列进行解码的视频解码器,视频序列编码在瓦片中,该视频解码器包括:编码单元解码模块,布置成对编码视频序列中的图像的编码单元进行解码;以及去块滤波器,布置成平滑编码单元之间的边界,其中去块滤波器包括充分的缓冲存储器来存储瓦片的边界层的像素值。
[0059]瓦片的边界层包括多个像素,其值由去块滤波器在后续瓦片的解码期间使用。
[0060]视频解码器可布置成接收编码视频序列,编码视频序列划分为瓦片并且使用适合于视频解码器的瓦片大小来编码。
[0061]还提供一种在视频解码器中的方法,该视频解码器布置成对编码视频序列进行解码,视频序列编码在瓦片中,该方法包括:对编码视频序列中的图像的编码单元进行解码;以及使用去块滤波器来平滑编码单元之间的边界,其中去块滤波器包括充分的缓冲存储器来存储瓦片的边界层的像素值。
[0062]还提供一种携带指令的计算机可读介质,所述指令在由计算机逻辑运行时引起所述计算机逻辑执行本文所限定的方法中的任一种。
【权利要求】
1.一种布置成对视频序列进行编码的视频编码器,所述视频编码器包括: 划分模块,布置成将所述视频序列划分为瓦片,其中所述瓦片大小比预定最小瓦片大小要大;以及 至少一个编码模块,布置成对所述瓦片进行编码。
2.如权利要求1所述的视频编码器,其中所述编码器布置成优化特定视频解码器的编码,所述特定解码器布置成将瓦片的右边界存储在芯片外存储器中。
3.如权利要求1或2所述的视频编码器,其中所述最小瓦片大小取决于所述编码档次和/或编码等级。
4.如前述权利要求中的任一项所述的视频编码器,其中所述瓦片大小也比最大瓦片大小要小。
5.如前述权利要求中的任一项所述的视频编码器,其中所述划分模块还布置成确定所述视频序列的图像宽度,以及如果所述图像宽度超过预定最大瓦片大小,则将所述视频序列划分为瓦片。
6.如权利要求1所述的视频编码器,其中所述瓦片大小是下列中的至少一个:瓦片高度、瓦片宽度、瓦片面积和瓦片周长。
7.—种视频编码器中的方法,所述方法包括: 将所述视频序列划分为瓦片,其中所述瓦片大小比预定最小瓦片大小要大;以及 对所述瓦片进行编码。
8.如权利要求7所述的方法,所述方法还包括: 优化特定视频解码器的编码,腿特定解码器布置雌瓦片的右边界存储在芯片外存储器中。
9.一种布置成对编码视频序列进行解码的视频解码器,所述视频序列编码在瓦片中,所述视频解码器包括: 编码单元解码模块,布置成对所述编码视频序列中的图像的编码单元进行解码;以及 去块滤波器,布置成平滑编码单元之间的边界,其中所述去块滤波器访问芯片外存储器中存储的瓦片的右边界。
10.如权利要求9所述的视频解码器,其中瓦片的边界层包括多个像素,所述像素的值由所述去块滤波器在后续瓦片的解码期间使用。
11.如权利要求9所述的视频解码器,其中所述视频解码器布置成接收编码视频序列,所述编码视频序列划分为瓦片并且使用适合于所述视频解码器的瓦片大小来编码。
12.一种视频解码器中的方法,所述视频解码器布置成对编码视频序列进行解码,所述视频序列编码在瓦片中,所述方法包括: 对所述编码视频序列中的图像的编码单元进行解码;以及 使用去块滤波器来平滑编码单元之间的边界,其中所述去块滤波器访问芯片外存储器中存储的瓦片的右边界。
13.如权利要求12所述的方法,其中对所述芯片外存储器每个瓦片访问一次。
14.如权利要求12或13所述的方法,其中最小瓦片大小根据访问所述芯片外存储器的预期的时间延迟来选择。
15.—种携带指令的计算机可读介质,所述指令在由计算机逻辑运行时引起所述计算机逻辑执行由权利要求7、8、12、13和14所限定的所述方法中的任一种。
【文档编号】H04N19/42GK104025594SQ201280054950
【公开日】2014年9月3日 申请日期:2012年11月8日 优先权日:2011年11月8日
【发明者】A.诺尔金, R.肖伯格 申请人:瑞典爱立信有限公司