影像编码/解码方法及装置
文献发布时间:2023-06-19 12:14:58
技术领域
本发明涉及一种影像编码/解码方法及装置,尤其涉及一种预测模式信息的编码/解码方法。
背景技术
近年来,互联网中对如视频等多媒体数据的需求正在急剧增加。但是,目前信道(Channel)带宽(Bandwidth)的发展速度却难以充分满足急剧增加的多媒体数据量。考虑到如上所述的情况,国际标准化机构即国际电联电信标准化部门(ITU-T)的视频编码专家组(VCEG,Video Coding Expert Group)和国际标准化组织/国际电工委员会(ISO/IEC)的动态图像专家组(MPEG,Moving Picture Expert Group)于2014年02月制定了视频压缩标准即高效率视频编码(HEVC,High Efficiency Video Coding)第1版。
作为视频压缩技术,包括如画面内预测、画面间预测、变换、量化、熵编码以及环路滤波等多种技术。现有的影像编码/解码方法是按照不同的编码单元对用于指示预测模式的预测模式信息进行编码/解码,因此在编码效率的提升方面受到限制。
发明内容
技术问题
本发明的主要目的在于解决如上所述的现有问题而提供一种更加有效的预测模式信息的编码以及解码方法。
技术方案
适用本发明之一实施例的影像解码方法,可以包括如下步骤:以当前区块的大小为基础决定上述当前区块的预测模式;以及,以上述所决定的预测模式为基础生成上述当前区块的预测区块;其中,在决定上述当前区块的预测模式的步骤中,可以以上述当前区块的大小以及预先设定的值的比较结果为基础决定上述当前区块的预测模式。
在上述影像解码方法中,决定上述当前区块的预测模式的步骤可以在上述当前区块的大小小于或等于预先设定的值时不对上述当前区块的预测模式信息进行熵解码,并将上述当前区块的预测模式决定为画面内预测模式。
在上述影像解码方法中,决定上述当前区块的预测模式的步骤可以在上述当前区块的大小大于预先设定的值时对上述当前区块的预测模式信息进行熵解码,并根据上述熵解码的当前区块的预测模式信息决定上述当前区块的预测模式。
在上述影像解码方法中,决定上述当前区块的预测模式的步骤可以在上述当前区块的大小等于预先设定的值时不对上述当前区块的预测模式信息进行熵解码,并将上述当前区块的预测模式决定为画面内预测模式。
在上述影像解码方法中,上述当前区块的大小可以包含上述当前区块的宽度以及高度中的至少一个。
适用本发明之一实施例的影像编码方法,可以包括如下步骤:以当前区块的大小为基础决定上述当前区块的预测模式;以及,根据上述决定生成比特流;其中,决定上述当前区块的预测模式的步骤可以以上述当前区块的大小以及预先设定的值的比较结果为基础决定上述预测模式信息的熵编码与否。
适用本发明之一实施例的包含在影像解码中使用的比特流的计算机可读的非暂时性记录介质中,上述比特流可以包含当前区块的预测模式信息,在上述影像解码中可以以上述当前区块的大小以及预先设定的值的比较结果为基础决定上述当前区块的预测模式,可以在上述当前区块的大小小于或等于上述预先设定的值时不对上述当前区块的预测模式信息进行熵解码,并将上述当前区块的预测模式决定为画面内预测模式。
技术效果
通本发明可以通过减少编码信息的量而提升编码效率。
此外,可以通过有效地选择适用于预测模式信息的编码或解码的上下文模型而提升算术编码以及算术解码的性能。
附图说明
图1是对适用本发明之一实施例的影像编码装置进行图示的块图。
图2是对适用本发明之一实施例的影像解码装置进行图示的块图。
图3是用于对预测模式信息的解码进行说明的语法(syntax)以及语义(sementic)。
图4是对以当前区块的大小为基础决定当前区块的预测模式的方法进行图示的流程图。
图5是对以当前区块的大小为基础决定当前区块的预测模式的方法进行图示的流程图。
图6是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图7是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图8是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图9是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图10是对以当前图像与参考图像之间的距离为基础决定当前区块的预测模式的方法进行图示的流程图。
图11是对以当前图像与参考图像之间的距离为基础决定当前区块的预测模式的方法进行图示的流程图。
图12是对以当前图像与参考图像之间的距离为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图13是对以当前图像与参考图像之间的距离为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图14是对以当前图像与参考图像之间的距离为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
图15是用于对适用本发明之一实施例的影像解码方法进行说明的流程图。
图16是用于对适用本发明之一实施例的影像解码方法进行说明的流程图。
图17是用于对适用本发明之一实施例的影像编码方法进行说明的流程图。
图18是用于对适用本发明之一实施例的影像编码方法进行说明的流程图。
优选的实施方式
本发明可以进行各种变更并具有多种不同的实施例,接下来将对其特定的实施例进行图示并进行详细的说明。但是,下述内容并不是为了将本发明限定于特定的实施形态,而是应该理解为包括本发明的思想以及技术范围内的所有变更、均等物乃至替代物。在对各个附图进行说明的过程中,对于类似的构成要素使用了类似的参考符号。
在对不同的构成要素进行说明的过程中可以使用如第1、第2等术语,但是上述构成要素并不因为上述术语而受到限定。上述术语只是用于对一个构成要素与其他构成要素进行区别。例如,在不脱离本发明的权利要求范围的前提下,第1构成要素也可以被命名为第2构成要素,同理,第2构成要素也可以被命名为第1构成要素。术语“和/或”包括多个相关记载项目之组合或多个相关记载项目中的某一个项目。
当记载为某个构成要素与其他构成要素“连接”或“接触”时,应理解为不仅可以与上述其他构成要素直接连接或接触,还可以在两者之间有其他构成要素存在。与此相反,当记载为某个构成要素与其他构成要素“直接连接”或“直接接触”时,应理解为在两者之间没有其他构成要素存在。
在本申请中所使用的术语只是为了对特定的实施例进行说明,并不是为了对本发明进行限定。除非上下文中有明确的相反含义,否则单数型语句还包含复数型含义。在本发明中,“~包括~”或“~由……构成~”等术语只是为了表明说明书中所记载的特征、数字、步骤、动作、构成要素、部件或上述之组合存在,并不应该理解为事先排除一个或多个其他特征、数字、步骤、动作、构成要素、部件或上述之组合存在或被附加的可能性。
接下来,将结合附图对适用本发明的实施例进行详细的说明。在下述内容中,对于附图中相同的构成要素将使用相同的参考符号且对相同构成要素的重复说明将被省略。
图1是对适用本发明之一实施例的影像编码装置进行图示的块图。
参阅图1,影像编码装置100可以包括影像分割部101、画面内预测部102、画面间预测部103、减法运算部104、变换部105、量化部106、熵编码部107、逆量化部108、逆变换部109、加法运算部110、滤波部111以及存储器112。
图1中所图示的各个构成部为了表示影像编码装置中的不同的特征以及功能而单独进行了图示,并不代表各个构成部由相互分离的硬件或一个软件单位构成。即,虽然为了说明的便利而对各个构成部进行了罗列说明,但是既可以将各个构成部中的至少两个构成部合并成一个构成部,也可以将一个构成部分割成多个构成部而使其执行对应的功能,而如上所述的各个构成部被整合的实施例以及被分离的实施例在不脱离本发明之本质的前提下包含于本发明的权利要求范围之内。
此外,一部分构成要素可能并不是在本发明中执行本质功能所必须的构成要素,而只是用于提升性能的可选择的构成要素。本发明既可以仅包括除只是用于提升性能的构成要素之外的实现本发明之本质所必须的构成部,而包括除只是用于提升性能的选择性构成要素之外的必备构成要素的结构也包含于本发明的权利要求范围之内。
影像分割部100可以将输入影像分割成至少一个区块。此时,输入影像可以是如图像、条带、并行区块或片段等多种不同的形态和大小。区块可以是指编码单位(CU)、预测单位(PU)或变换单位(TU)。上述分割可以以四叉树(Quad tree)、二叉树(Binary tree)以及三叉树分割(Ternary tree)中的至少一个为基础执行。四叉树是将上级区块分割成宽度以及高度均为上级区块的一半的四个下级区块的方式。二叉树是将上级区块分割成宽度或高度中的任一个为上级区块的一半的两个下级区块的方式。三叉树是指将上述区块分割成三个下级区块的分割方式。例如,上述三个下级区块可以通过将上述上级区块的宽度或高度按照1:2:1的比例进行分割而获得。通过执行以如上所述的二叉树为基础的分割,区块不仅可以具有正方形形态,还可以具有非正方形形态。
预测部102、103可以包括用于执行帧间预测的画面间预测部103以及用于执行帧内预测的画面内预测部102。可以在决定对预测单位执行帧间预测还是帧内预测之后,再根据不同的预测方法决定具体信息(例如帧内预测模式、运动向量、参考图像等)。此时,用于执行预测的处理单位与用于确定预测方法以及具体内容的处理单位可以互不相同。例如,预测方法以及预测模式等可以以预测单位进行确定,而预测则可以以变换单位执行。
所生成的预测区块以及原始区块之间的残差值(残差区块)可以被输入到变换部105。此外,在预测过程中使用的预测模式信息以及运动向量信息等可以在与残差值一起在熵编码部107中进行编码之后再传递到解码器中。在使用特定的编码模式的情况下,也可以直接对原始区块进行编码并传送到解码部,而不通过预测部102、103生成预测区块。
画面内预测部102可以以当前图像内的像素信息即当前区块周边的参考像素信息为基础生成预测区块。当需要执行帧内预测的当前区块的周边区块的预测模式为帧间预测时,可以将包含于已适用帧间预测的周边区块中的参考像素替代成已适用帧内预测的周边其他区块内的参考像素。即,在参考像素不可用的情况下,可以在将不可用参考像素信息替代成可用的参考像素中的至少一个参考像素之后使用。
在帧内预测中,预测模式可以包括根据预测方向使用参考像素信息的定向预测模式以及在执行预测时不使用定向信息的非定向模式。用于对亮度信息进行预测的模式与用于对色差信息进行预测的模式可以不同,而为了对色差信息进行预测,可以使用在对亮度信息进行预测时所使用的帧内预测模式信息或所预测到的亮度信号信息。
画面内预测部102可以包括自适应帧内平滑(AIS:Adaptive Intra Smoothing)滤波器、参考像素插值部以及均值(DC)滤波器。自适应帧内平滑(AIS)滤波器是用于对当前区块的参考像素执行滤波的滤波器,可以根据当前预测单位的预测模式自适应地决定滤波器的适用与否。在当前区块的预测模式为不执行自适应帧内平滑(AIS)滤波的模式时,可以不适用自适应帧内平滑(AIS)滤波器。
当预测单位的帧内预测模式为以对参考像素进行插值的像素值为基础执行帧内预测的预测单位时,画面内预测部102的参考像素插值部可以通过对参考像素进行插值而生成分数单位位置的参考像素。在当前预测单位的预测模式为不对参考像素进行插值而生成预测区块的预测模式时,可以不对参考像素进行插值。在当前区块的预测模式为均值(DC)模式时,均值(DC)滤波器可以通过滤波生成预测区块。
画面间预测部103利用存储在存储器112中的已重建的参考影像以及运动信息生成预测区块。运动信息可以包括如运动向量、参考图像索引、列表1预测标志以及列表0预测标志等。
可以生成包含在预测部102、103中生成的预测单位与预测单位的原始区块之间的差异值即残差值(Residual)信息的残差区块。所生成的残差区块可以被输入到变换部130中进行变换。
画面间预测部103可以以当前图像的前一个图像或后一个图像中的至少一个图像的信息为基础推导出预测区块。此外,也可以以当前图像内的已完成编码的一部分区域的信息为基础,推导出当前区块的预测区块。适用本发明之一实施例的画面间预测部103,可以包括参考图像插值部、运动预测部以及运动补偿部。
在参考图像插值部中,可以从存储器112接收参考图像信息并在参考图像中生成整数像素以下的像素信息。对于亮度像素,可以使用为了以1/4像素单位生成整数像素以下的像素信息而对滤波系数进行变更的基于离散余弦变换的8抽头插值滤波器(DCT-basedInterpolation Filter)。对于色差像素,可以使用为了以1/8像素单位生成整数像素以下的像素信息而对滤波系数进行变更的基于离散余弦变换的4抽头插值滤波器(DCT-basedInterpolation Filter)。
运动预测部可以以通过参考图像插值部进行插值的参考图像为基础执行运动预测。作为用于计算出运动向量的方法,可以使用如全搜索区块匹配算法(FBMA:Fullsearch-based Block Matching Algorithm)、三步搜索算法(TSS,Three Step Search)、新三步搜索算法(NTS:New Three-Step Search Algorithm)等多种方法。运动向量可以以插值的像素为基础,具有1/2或1/4像素单位的运动向量值。在运动预测部中,可以通过不同的运动预测方法对当前预测单位的预测区块进行预测。作为运动预测方法,可以使用如跳过(Skip)法、合并(Merge)法、高级运动向量预测(AMVP:Advanced Motion VectorPrediction)法等多种方法。
剪发运算部104通过对当前需要进行编码的区块与在画面内预测部102或画面间预测部103中生成的预测区块进行加法运算而生成当前区块的残差区块。
变换部105可以利用如离散余弦变换(DCT)、离散正弦变换(DST)、卡洛南-洛伊变换(KLT:Karhunen Loeve Transform)等变换方法对包含残差数据的残差区块进行变换。此时,可以以为了生成残差区块而使用的预测单位的帧内预测模式为基础决定变换方法。例如,可以根据帧内预测模式,在水平方向上使用离散余弦变换(DCT),而在垂直方向上使用离散正弦变换(DST)。
量化部106可以对在变换部105中变换成频率区域的值进行量化。量化系数可以根据区块或根据影像的重要程度进行变更。在量化部106中计算出的值,可以被提供到逆量化部108以及熵编码部107中。
上述变换部105和/或量化部106可以选择性地包含于影像编码装置100。即,影像编码装置100可以对残差区块的残差数据执行变换或量化中的至少一个,也可以跳过变换以及量化而对残差区块进行编码。即使是在影像编码装置100中没有执行变换或量化中的某一个或变换以及量化均没有执行的情况下,被输入到熵编码部107中的区块通常都会被称之为变换区块。熵编码部107对输入数据进行熵编码。熵编码可以使用如指数哥伦布码(Exponential Golomb)、基于上下文自适应的可变长编码(CAVLC:Context-AdaptiveVariable Length Coding)以及基于上下文自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)等多种编码方法。
熵编码部107可以对如变换区块的系数信息、区块类型信息、预测模式信息、分割单位信息、预测单位信息、传送单位信息、运动向量信息、参考帧信息、区块的插值信息、滤波信息等多种信息进行编码。变换区块的系数,可以以变换区块内的子区块单位进行编码。
为了对变换区块的系数进行编码,可以对如用于表示逆扫描顺序上的第一个不为0的系数的位置的语法元素(syntax element)即Last_sig、用于表示子区块内是否包含至少一个不为0的系数的标志即Coded_sub_blk_flag、用于表示是否为不为0的系数的标志即Sig_Coeff_flag、用于表示系数的绝对值是否大于1的标志即Abs_greater1_flag、用于表示系数的绝对值是否大于2的标志即Abs_greater2_flag以及用于表示系数的符号的标志即Sign_flag等多种语法元素进行编码。对于没有通过上述语法元素进行编码的系数的剩余值,可以通过语法元素remaining_coeff进行编码。
在逆量化部108以及逆变换部109中,将对在量化部106中进行量化的值进行逆量化,并对在变换部105进行变换的值进行逆变换。在逆量化部108以及逆变换部109中生成的残差值(Residual),可以与通过预测部102、103中所包含的运动推测部、运动补偿部以及画面内预测部102预测出的预测单位进行合并,从而生成重建区块(Reconstructed Block)。加法运算部110通过对在预测部102、103中生成的预测区块以及通过逆变换部109生成的残差区块进行加法运算而生成重建区块。
滤波部111可以包括去块滤波器、偏移补正部、自适应环路滤波器(ALF:AdaptiveLoop Filter)中的至少一个。
去块滤波器可以从重建图像中去除因为区块之间的边界而造成的区块失真。为了判定是否需要执行去块,可以以包含于区块中的若干个列或行中所包含的像素为基础,判定是否需要对当前区块适用去块滤波器。在对区块适用去块滤波器时,可以根据所需要的去块滤波强度适用强滤波器(Strong Filter)或弱滤波器(Weak Filter)。此外,在适用去块滤波器的情况下,可以在执行垂直滤波以及水平滤波时对水平方向滤波以及垂直方向滤波进行并行处理。
偏移补正部可以以像素单位对执行去块之后的影像以及原始影像之间的偏移进行补正。为了对特定图像进行偏移补正,可以使用将影像中所包含的像素划分成一定数量的区域之后决定需要执行偏移的区域并对相应的区域适用偏移的方法,或者在考虑到各个像素的边缘信息的前提下适用偏移的方法。
自适应环路滤波(ALF:Adaptive Loop Filtering)可以以对滤波的重建影像以及原始影像进行比较的值为基础执行。可以在将影像中所包含的像素划分成特定的组之后决定需要适用于相应的组中的一个滤波器,从而在各个组中分别执行不同的滤波。对于与是否适用自适应环路滤波(ALF)相关的信息,亮度信号可以按照各个编解码单位(CU:CodingUnit)进行传送,而且可以根据各个区块对所适用的自适应环路滤波器(ALF)的形状以及滤波系数进行变更。此外,与适用对象区块的特性无关,可以适用相同形态(固定形态)的自适应环路滤波器(ALF)。
存储器112可以对通过滤波部111计算出的重建区块或图像进行存储,而所存储的重建区块或图像可以在执行画面间预测时提供至预测部102、103。
接下来,将结合附图对适用本发明之一实施例的影像解码装置进行说明。图2是对适用本发明之一实施例的影像解码装置200进行图示的块图。
参阅图2,影像解码装置200可以包括熵解码部201、逆量化部202、逆变换部203、加法运算部204、滤波部205、存储器206以及预测部207、208。
当通过影像编码装置100生成的影像比特流被输入到影像解码装置200中时,可以按照与影像编码装置100执行的过程相反的过程对所输入的比特流进行解码。
熵解码部201可以按照与在影像编码装置100的熵编码部107中执行的熵编码相反的步骤执行熵解码。例如,可以对应于在影像编码器中执行的方法,适用如指数哥伦布码(Exponential Golomb)、基于上下文自适应的可变长编码(CAVLC:Context-AdaptiveVariable Length Coding)以及基于上下文自适应的二进制算术编码(CABAC,Context-Adaptive Binary Arithmetic Coding)等多种方法。熵解码部201可以对如上所述的语法元素即Last_sig、Coded_sub_blk_flag、Sig_coeff_flag、Abs_greater1_flag、Abs_greater2_flag、Sign_flag以及remaining_coeff进行解码。此外,熵解码部201可以对与在影像编码装置100中执行的帧内预测以及帧间预测相关的信息进行解码。
逆量化部202通过对已量化的变换区块执行逆量化而生成变换区块。按照与图1中的逆量化部108实质相同的方式工作。
逆变换部203通过对变换区块执行逆变换而生成残差区块。此时,可以以与预测方法(帧间或帧内预测)、区块的大小和/或形态以及帧内预测模式等相关的信息为基础决定变换方法。按照与图1中的逆变换部109实质相同的方式工作。
加法运算部204通过对在画面内预测部207或画面间预测部208中生成的预测区块以及通过逆变换部203生成的残差区块进行加法运算而生成重建区块。按照与图1中的加法运算部110实质相同的方式工作。
滤波部205用于减少在重建区块中产生的各种类型的噪声。
滤波部205可以包括去块滤波器、偏移补正部以及自适应环路滤波器(ALF)。
可以从影像编码装置100接收与是否对相应的区块或图像适用了去块滤波器相关的信息,以及与在适用了去块滤波器的情况下是适用了强滤波器还是弱滤波器相关的信息。在影像解码装置200的去块滤波器中可以接收从影像编码装置100提供的与去块滤波器相关的信息,然后在影像解码装置200中对相应区块执行去块滤波。
偏移补正部可以以在执行编码时适用于影像的偏移补正的类型以及偏移值信息等为基础对重建影像执行偏移补正。
自适应环路滤波器(ALF)可以以从影像编码装置100提供的自适应环路滤波器(ALF)适用与否信息、自适应环路滤波器(ALF)系数信息等为基础适用于编码单位。如上所述的自适应环路滤波器(ALF)信息可以以包含于特定的参数集中的方式提供。滤波部205按照与图1中的滤波部111实质相同的方式工作。
存储器206对通过加法运算部204生成的重建区块进行存储。按照与图1中的存储器112实质相同的方式工作。
预测部207、208可以以从熵解码部201提供的预测区块生成相关信息以及从存储器206提供的之前已解码的区块或图像信息为基础生成预测区块。
预测部207、208可以包括画面内预测部207以及画面间预测部208。虽然没有单独进行图示,但是预测部207、208还可以包括预测单位判定部。预测单位判定部能可以够接收从熵解码部201输入的预测单位信息、帧内预测方法的预测模式信息、帧间预测方法的运动预测相关信息等多种不同的信息并从当前解码单位区分预测单位,从而判定预测单位执行帧间预测还是执行帧内预测。帧间预测部208可以利用从影像编码装置100提供的当前预测单位的帧间预测所需要的信息,以包含当前预测单位的当前图像的上一个图像或下一个图像中的至少一个图像中包含的信息为基础对当前预测单位执行画面间预测。或者,也可以在包含当前预测单位的当前图像内,以已重建的一部分区域的信息为基础执行画面间预测。
为了执行画面间预测,可以以编码单位作为基准判断包含于相应编码单位中的预测单位的运动预测方法是跳过模式(Skip Mode)、合并模式(Merge Mode)、高级运动向量预测模式(AMVP Mode)中的哪一种方法。
画面内预测部207利用位于当期需要进行编码的区块周边的已重建的像素生成预测区块。
画面内预测部207可以包括自适应帧内平滑(AIS:Adaptive Intra Smoothing)滤波器、参考像素插值部以及均值(DC)滤波器。自适应帧内平滑(AIS)滤波器是用于对当前区块的参考像素执行滤波的滤波器,可以根据当前预测单位的预测模式自适应地决定滤波器的适用与否。可以利用从影像编码装置100提供的预测单位的预测模式以及自适应帧内平滑(AIS)滤波器信息对当前区块的参考像素执行自适应帧内平滑(AIS)滤波。在当前区块的预测模式为不执行自适应帧内平滑(AIS)滤波的模式时,可以不适用自适应帧内平滑(AIS)滤波器。
当预测单位的预测模式为以对参考像素进行插值的像素值为基础执行帧内预测的预测单位时,画面内预测部207的参考像素插值部可以通过对参考像素进行插值而生成分数单位位置的参考像素。所生成的分数单位位置上的参考像素可以作为当前区块内的像素的预测像素使用。在当前预测单位的预测模式为不对参考像素进行插值而生成预测区块的预测模式时,可以不对参考像素进行插值。在当前区块的预测模式为均值(DC)模式时,均值(DC)滤波器可以通过滤波生成预测区块。
画面内预测部207按照与图1中的画面内预测部102实质相同的方式工作。
画面间预测部208利用存储在存储器206中的参考图像以及运动信息生成画面间间预测区块。画面间预测部208按照与图1中的画面间预测部103实质相同的方式工作。
接下来,将结合附图对适用本发明的多种实施例进行更为详细的说明。
在本说明书中,提供一种用于有效地对当前区块的预测模式信息进行编码/解码的方法。
图3是用于对预测模式信息的解码进行说明的语法(syntax)以及语义(sementic)。
参阅图3,在当前条带不为I-slice(slice_type!=I)且当前编码单元(CodingUnit,CU)不为跳过模式时(cu_skip_flag[x0][y0]==0),可以对预测模式信息(pred_mode_flag)进行熵解码。
其中,在预测模式信息(pred_mode_flag)的值为0时可以是指画面间预测模式(MODE_INTER),而在预测模式信息(pred_mode_flag)的值为1时可以是指画面内预测模式(MODE_INTRA)。此外,在预测模式信息(pred_mode_flag)不存在时可以视为画面内预测模式(MODE_INTRA)。
适用本发明之一实施例的预测模式信息的编码/解码方法可以以当前区块的大小为基础决定。其中,当前区块的大小可以是指当前区块的宽度、高度或面积中的至少一个。
在当前区块的大小增加时,具有执行画面间预测而非画面内预测的概率增加的统计学特性。考虑到如上所述的特性,可以以当前区块的大小为基础决定当前区块的预测模式。
图4以及图5是对以当前区块的大小为基础决定当前区块的预测模式的方法进行图示的流程图。
参阅图4,在当前区块的大小为预先设定的值以上时(S401-是),可以将当前区块的预测模式决定为画面间预测模式(S402)。但是,在当前区块的大小小于预先设定的值时(S401-否),可以根据从比特流获取到的预测模式信息决定当前区块的预测模式(S402)。
即,在图4中当前区块的大小为预先设定的值以上时(S401-是),可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面间预测。
图5与图4不同,在当前区块的大小为特定值以下时(S501-是),可以将当前区块的预测模式决定为画面内预测模式(S502)。但是,在当前区块的大小大于预先设定的值时(S501-否),可以根据从比特流获取到的预测模式信息决定当前区块的预测模式(S503)。
即,在图5中当前区块的大小为预先设定的值以下时(S501-是),可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面内预测。
此外,在图5中预先设定的值可以是编码区块的最小大小(minimum size ofcoding block)。即,在当前区块的大小为编码区块的最小大小时,可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面内预测。其中,编码区块可以是编码单元,编码区块的最小大小可以是4×4。作为一实例,在当前区块的大小为4×4时,可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面内预测。与此相反,在当前区块的大小不为4×4时,可以根据从比特流获取到的预测模式信息决定当前区块的预测模式。
即,在当前区块的宽度或高度小于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面内预测。
下述表1是适用如上所述的以当前区块的大小为基础的预测模式信息的熵编码方法的一实施例。
【表1】
在表1中,在当前区块的大小不为4×4时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度以及高度等于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面内预测。
图6以及图7是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。如参阅图3进行的说明,假定在预测模式信息的值为0时是指画面间预测模式(MODE_INTER),在预测模式信息的值为1时是指画面内预测模式(MODE_INTRA),而在预测模式信息不存在时视为画面内预测模式(MODE_INTRA)的前提下对图6以及图7进行说明。
参阅图6,在当前区块的宽度或高度中的至少一个大于或等于预先设定的值时(S601-是),可以对当前区块的预测模式信息进行熵编码/解码(S602)。
但是,在当前区块的宽度或高度中的至少一个小于预先设定的值时(S601-否),因为不会对当前区块的预测模式信息进行熵编码/解码,因此无法将当前区块的预测模式信息视为画面内预测模式。
下述表2是适用参阅图6进行说明的以当前区块的大小为基础的预测模式信息的熵编码方法的一实施例。
【表2】
在表2中,在当前区块的宽度或高度大于或等于预先设定的值(64)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度以及高度小于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面内预测。
下述表3是适用以当前区块的大小为基础的预测模式信息的熵编码方法的另一实施例。
【表3】
在表3中,在当前区块的宽度以及高度大于或等于预先设定的值(128)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度或高度小于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面内预测。
参阅图7,在当前区块的面积大于或等于预先设定的值时(S701-是),可以对当前区块的预测模式信息进行熵编码/解码(S702)。
但是,在当前区块的面积小于预先设定的值时(S701-否),因为不会对当前区块的预测模式信息进行熵编码/解码,因此无法将当前区块的预测模式信息视为画面内预测模式。
下述表4是适用参阅图7进行说明的以当前区块的大小为基础的预测模式信息的熵编码方法的一实施例。
【表4】
在表4中,在当前区块的面积大于或等于预先设定的值(8192)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度或高度小于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面内预测。
图8是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。其中,预测模式信息通过基于上下文自适应的二进制算术编码(CABAC,Context-Adaptive Binary Arithmetic Coding)进行熵编码/解码,可以使用1个上下文模型(context)。
参阅图8,在当前区块的大小小于预先设定的值时(S801-否),可以增加预测模式信息的初始上下文模型(context)的概率(S802)。
在步骤S802中,可以按照预先定义的值增加初始上下文模型的概率。
或者,在步骤S802中,可以与当前区块的大小反比例地增加初始上下文模型的概率。或者,可以与当前区块的大小成比例地减小初始上下文模型的概率。
这是因为在当前区块的大小变小时,具有执行画面内预测的概率增加的特性,因此当前区块的大小越小,预测模式信息的值为1(即,画面内预测)的概率增加,而当前区块的大小越大,预测模式信息的值为0(即,画面间预测)的概率越大。
此外,在预测模式信息的熵解码方法中,可以不执行图8中的步骤S801而仅执行步骤S802。具体来讲,可以不将当前区块的大小与预先设定的值进行比较,而是与当前区块的大小反比例地增加预测模式信息的初始上下文模型的概率。
图9是对以当前区块的大小为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
在图9中,提出选择使用全新的上下文模型的方案,以替代如图8所示的增加预测模式信息的初始上下文模型的概率的方式。具体来讲,在图9所图示的预测模式信息的熵编码/解码方法中,可以使用独立的2个以上的上下文模型。
参阅图9,在当前区块的大小大于或等于预先设定的值时(S901-是),可以使用第1上下文模型执行预测模式信息的熵编码/解码(S902)。与此相反,在当前区块的大小小于预先设定的值时(S901-否),可以使用第2上下文模型执行预测模式信息的熵编码/解码(S903)。
其中,第2上下文模型可以是与第1上下文模型相比其预测模式信息的值为1(即,画面内预测)的概率更高的上下文模型。
适用本发明之一实施例的预测模式信息的编码/解码方法可以以当前图像与参考图像之间的距离为基础决定。
其中,当前图像与参考图像之间的距离(delta_poc)可以通过如下所示的数学式1或数学式2诱导。delta_poc可以被定义为当前图像的图像序列号(POC,Picture OrderCount)与参考图像的图像序列号(POC)的距离差(绝对差)中的最小值。
【数学式1】
delta_poc=abs(currPoc-refpoc(l0,0))
【数学式2】
在数学式1以及数学式2中,abs()为计算绝对值的函数,currPoc为当前图像的图像序列号(POC),而refpoc(l,i)可以是指具有参考列表(reference list)l中的第i个参考索引(reference index)的图像的图像序列号(POC)。此外,ref_list(l)可以是指参考列表(reference list)l中所包含的所有参考图像的索引(index)的集合。
此外,在当前图像与参考图像之间的距离增加时,具有执行画面内预测而非画面间预测的概率增加的统计学特性。考虑到如上所述的特性,可以以当前区块与参考图像之间的距离为基础决定当前区块的预测模式。
图10以及图11是对以当前图像与参考图像之间的距离为基础决定当前区块的预测模式的方法进行图示的流程图。
参阅图10,在当前图像与参考图像之间的距离为预先设定的值以上时(S1001-是),可以将当前区块的预测模式决定为画面内预测模式(S1002)。但是,在当前图像与参考图像之间的距离小于预先设定的值时(S1001-否),可以根据从比特流获取到的预测模式信息决定当前区块的预测模式(S1003)。
即,在图10中当前图像与参考图像之间的距离为预先设定的值以上时(S1001-是),可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面内预测。
图11与图10不同,在当前图像与参考图像之间的距离为特定值以下时(S1101-是),可以将当前区块的预测模式决定为画面间预测模式(S1102)。但是,在当前图像与参考图像之间的距离大于预先设定的值时(S1101-否),可以根据从比特流获取到的预测模式信息决定当前区块的预测模式(S1103)。
即,在图11中当前图像与参考图像之间的距离为预先设定的值以下时(S1101-是),可以不获取预测模式信息而隐性地将当前区块的预测模式决定为画面间预测。
图12以及图13是对以当前图像与参考图像之间的距离为基础的预测模式信息的熵编码/解码方法进行图示的流程图。如参阅图3进行的说明,假定在预测模式信息的值为0时是指画面间预测模式(MODE_INTER),在预测模式信息的值为1时是指画面内预测模式(MODE_INTRA),而在预测模式信息不存在时视为画面内预测模式(MODE_INTRA)的前提下对图12进行说明。
参阅图12,在当前图像与参考图像之间的距离小于预先设定的值时(S1201-否),可以对当前区块的预测模式信息进行熵编码/解码(S1202)。
但是,在当前区块与参考图像之间的距离大于或等于预先设定的值时(S1201-否),因为不会对当前区块的预测模式信息进行熵编码/解码,因此无法将当前区块的预测模式信息视为画面内预测模式。
参阅图13,在当前图像与参考图像之间的距离或大于或等于预先设定的值时(S1301-是),可以增加预测模式信息的初始上下文模型(context)的概率(S1302)。在步骤S1302中,可以按照预先定义的值增加初始上下文模型的概率。
或者,在步骤S1302中,可以与当前图像与参考图像之间的距离成比例地增加初始上下文模型的概率。
这是因为在当前图像与参考图像之间的距离变大时,具有执行画面内预测的概率增加的特性,因此当前图像与参考图像之间的距离越小,预测模式信息的值为1(即,画面内预测)的概率增加,而当前图像与参考图像之间的距离越大,预测模式信息的值为0(即,画面间预测)的概率越大。
此外,在预测模式信息的熵编码/解码方法中,可以不执行图13中的步骤S1301而仅执行步骤S1302。具体来讲,可以不将当前图像与参考图像之间的距离与预先设定的值进行比较,而是与当前图像与参考图像之间的距离成比例地增加预测模式信息的初始上下文模型的概率。
图14是对以当前图像与参考图像之间的距离为基础的预测模式信息的熵编码/解码方法进行图示的流程图。
在图14中,提出选择使用全新的上下文模型的方案,以替代如图13所示的增加预测模式信息的初始上下文模型的概率的方式。具体来讲,在图14所图示的预测模式信息的熵编码/解码方法中,可以使用独立的2个以上的上下文模型。
参阅图14,在当前图像与参考图像之间的距离大于或等于预先设定的值时(S1401-是),可以使用第2上下文模型执行预测模式信息的熵编码/解码(S1402)。与此相反,在当前图像与参考图像之间的距离小于预先设定的值时(S1401-否),可以使用第1上下文模型执行预测模式信息的熵编码/解码(S1403)。
其中,第2上下文模型可以是与第1上下文模型相比其预测模式信息的值为1(即,画面内预测)的概率更高的上下文模型。
此外,还可以在同时考虑当前区块的大小以及当前图像与参考图像之间的距离的情况下决定预测模式信息的编码/解码方法。
作为一实例,在当前区块的大小小于或等于第1临界值且当前图像与参考图像之间的距离大于第2临界值时,可以不对当前区块的预测模式信息进行熵编码/解码。在如上所述的情况下,因为不会对当前区块的预测模式信息进行熵编码/解码,因此无法将当前区块的预测模式信息视为画面内预测模式。
此外,在表1至表4、图6、图7至图12中假定在预测模式信息不存在时视为画面内预测模式的情况进行了说明。但是,如参阅图3进行的说明,在预测模式信息不存在时也可以不视为画面内预测。即,在slice_type为I-Slice时,将预测模式视为画面内预测,在slice_type不为I-Slice且cu_skip_flag为1时,视为画面间预测,而在其他情况下(即,slice_type不为I-Slice且cu_skip_flag为0时),可以视为画面间预测。
下述表5是在假定如上所述的前提(即,在没有对pred_mode_flag进行信令的情况下视为画面间预测)下适用以当前区块的大小为基础的预测模式信息的熵解码方法的一实施例。
【表5】
在表5中,在当前区块的宽度或高度小于预先设定的值(64)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度以及高度大于或等于预先设定的值时,可以不对预测模式信息进行熵编码/解码而隐性地将当前区块的预测模式决定为画面间预测。
下述表6是在假定如上所述的前提(即,在没有对pred_mode_flag进行信令的情况下视为画面间预测)下适用以当前区块的大小为基础的预测模式信息的熵解码方法的另一实施例。
【表6】
在表6中,在当前区块的宽度以及高度小于预先设定的值(128)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的宽度或高度大于或等于预先设定的值时,可以不对预测模式信息进行熵编码/解码而隐性地将当前区块的预测模式决定为画面间预测。
下述表7是在假定如上所述的前提(即,在没有对pred_mode_flag进行信令的情况下视为画面间预测)下适用以当前区块的大小为基础的预测模式信息的熵解码方法的一实施例。
【表7】
在表7中,在当前区块的面积小于预先设定的值(8192)时可以对预测模式信息进行熵解码,而在与其相反的情况下,不会对预测模式信息进行熵解码。
即,在当前区块的面积大于或等于预先设定的值时,可以不对预测模式信息进行熵解码而隐性地将当前区块的预测模式决定为画面间预测。
如参阅表4至表7进行的说明,在当前区块的大小大于或等于预先设定的值时,可以不对预测模式信息(pred_mode_flag)进行编码/解码,而当前区块的预测模式可以视为画面间预测。
在假定如上所述的前提(即,在没有对pred_mode_flag进行信令的情况下视为画面间预测)下,图6、图7以及图12中的条件也可以发生变更。即,在图6中可以变更为在当前区块的宽度或高度中的至少一个大于或等于预先设定的值(S601-是)时,不对预测模式信息(pred_mode_flag)进行熵编码/解码,而只有在与其相反的情况下(S601-否),对预测模式信息(pred_mode_flag)进行熵编码/解码(S602)。与其类似地,在图7中可以变更为在当前区块的面积大于或等于预先设定的值(S701-是)时,不对预测模式信息(pred_mode_flag)进行熵编码/解码,而只有在与其相反的情况下(S701-否),对预测模式信息(pred_mode_flag)进行熵编码/解码(S702)。此外,与其类似地,在图12中可以变更为在当前图像与参考图像之间的距离大于或等于预先设定的值(S1201-是)时,对预测模式信息(pred_mode_flag)进行熵编码/解码(S1202),而只有在与其相反的情况下(S1201-否),不对预测模式信息(pred_mode_flag)进行熵编码/解码。
此外,参阅图4至图16进行说明的实施例可以在影像编码装置100以及影像解码装置200中执行。
但是,适用上述实施例的顺序可以在影像编码装置100以及影像解码装置200中互不相同,适用上述实施例的顺序也可以在影像编码装置100以及影像解码装置200中彼此相同。
图15是用于对适用本发明之一实施例的影像解码方法进行说明的流程图。
参阅图15,影像解码装置可以以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础决定上述当前区块的预测模式(S1501)。
接下来,影像解码装置可以以所决定的预测模式为基础生成上述当前区块的预测区块(S1502)。
其中,决定当前区块的预测模式的步骤(S1501),可以在当前区块的大小大于或等于预先设定的值时不对当前区块的预测模式信息进行熵解码,将当前区块的预测模式决定为画面间预测模式。此外,在当前区块的大小小于预先设定的值时,可以根据当前区块的预测模式信息决定当前区块的预测模式。
此外,决定当前区块的预测模式的步骤(S1501),可以在当前区块的大小小于预先设定的值时不对当前区块的预测模式信息进行熵解码,将当前区块的预测模式决定为画面内预测模式。此外,在当前区块的大小大于或等于预先设定的值时,可以根据当前区块的预测模式信息决定上述当前区块的预测模式。
其中,当前区块的大小可以是当前区块的宽度、高度以及面积中的至少一个。
此外,决定当前区块的预测模式的步骤(S1501),可以在当前图像与参考图像之间的距离大于或等于预先设定的值时不对当前区块的预测模式信息进行熵解码,将当前区块的预测模式决定为画面内预测模式。此外,在当前图像与参考图像之间的距离小于预先设定的值时,可以根据当前区块的预测模式信息决定当前区块的预测模式。
此外,决定当前区块的预测模式的步骤(S1501),可以在当前图像与参考图像之间的距离小于预先设定的值时不对当前区块的预测模式信息进行熵解码,将当前区块的预测模式决定为画面间预测模式。此外,在当前图像与参考图像之间的距离大于或等于预先设定的值时,可以根据当前区块的预测模式信息决定当前区块的预测模式。
其中,当前图像与参考图像之间的距离,可以是当前图像的图像序列号(POC:Picture Order Count)与当前区块的参考图像的图像序列号(POC)的距离差中的最小值。
图16是用于对适用本发明之一实施例的影像解码方法进行说明的流程图。
参阅图16,影像解码装置可以以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础对当前区块的预测模式信息进行熵解码(S1601)。
接下来,影像解码装置可以以熵解码的预测模式信息为基础生成上述当前区块的预测区块(S1602)。
其中,对当前区块的预测模式信息进行熵解码的步骤(S1601),可以包括:在当前区块的大小小于预先设定的值时,增加当前区块的预测模式信息的初始上下文模型概率的步骤;以及,利用初始上下文模型对当前区块的预测模式信息进行熵解码的步骤。
此外,对当前区块的预测模式信息进行熵解码的步骤(S1601),可以包括:在当前区块的大小大于或等于预先设定的值时,将当前区块的预测模式信息的上下文模型决定为第1上下文模型,而在当前区块的大小小于预先设定的值时,将当前区块的预测模式信息的上下文模型决定为第2上下文模型的步骤;以及,利用所决定的上下文模型对当前区块的预测模式信息进行熵解码的步骤。其中,第2上下文模型可以是与第1上下文模型相比其预测模式信息的值为指示画面内预测模式的值的概率更高的上下文模型。
此外,对当前区块的预测模式信息进行熵解码的步骤(S1601),可以包括:在当前图像与参考图像之间的距离大于或等于预先设定的值时,增加当前区块的预测模式信息的初始上下文模型概率的步骤;以及,利用初始上下文模型对当前区块的预测模式信息进行熵解码的步骤。
此外,对当前区块的预测模式信息进行熵解码的步骤(S1601),可以包括:在当前区块与参考图像之间的距离大于或等于预先设定的值时,将当前区块的预测模式信息的上下文模型决定为第2上下文模型,而在当前区块的大小小于预先设定的值时,将当前区块的预测模式信息的上下文模型决定为第1上下文模型的步骤;以及,利用所决定的上下文模型对当前区块的预测模式信息进行熵解码的步骤。其中,第2上下文模型可以是与第1上下文模型相比其预测模式信息的值为指示画面内预测模式的值的概率更高的上下文模型。
图17是用于对适用本发明之一实施例的影像编码方法进行说明的流程图。
参阅图17,影像编码装置可以以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础决定当前区块的预测模式信息的熵编码与否(S1701)。对于以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础决定预测模式信息的编码与否的步骤,已经参阅图6、图7以及图12进行了详细的说明,所以在此将省略重复说明。
接下来,影像编码装置可以根据上述决定生成比特流(S1702)。具体来讲,在决定不对当前区块的预测模式信息执行熵编码的情况下,影像编码装置可以生成不包含当前区块的预测模式信息的比特流。
图18是用于对适用本发明之一实施例的影像编码方法进行说明的流程图。
参阅图18,影像编码装置可以以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础对当前区块的预测模式信息进行熵编码(S1801)。对于以当前图像与参考图像之间的距离以及当前区块的大小中的至少一个为基础对当前区块的预测模式信息进行熵编码的步骤,已经参阅图8、图9、图13以及图14进行了详细的说明,所以在此将省略重复说明。
接下来,影像编码装置可以生成包含熵编码的预测模式信息的比特流(S1802)。
本公开中的示例性方法为了说明的明确性而以动作序列的方式进行了描述,但这并不是为了对步骤的执行顺序进行限定,在必要时也可以同时或以不同的顺序执行各个步骤。为了实现本公开中的方法,也可以在示例的步骤基础上追加包含其他步骤,或只包含除一部分步骤之外的剩余步骤,或在排除一部分步骤之后追加包含其他步骤。
本公开的多种不同的实施例并不是对所有可能的组合进行罗列的结果,只是用于对本公开的代表性的形态进行说明,在多种不同的实施例中进行说明的事项可以独立适用或以对两种以上进行组合的方式适用。
此外,本公开中的多种不同的实施例可以通过硬件、固件(firmware)、软件或上述之结合等实现。在通过硬件实现时,可以通过一个或多个专用集成电路(ACICs:Application Specific Integrated Circuits)、数字信号处理器(DSPs:Digital SignalProcessors)、数字信号处理装置(DSPDs:Digital Signal Processing Devices)、可编程逻辑器件(PLDs:Programmable Logic Devices)、现场可编程门阵列(FPGAs:FieldProgrammable Gate Arrays)、通用处理器(general processor)、控制器、微控制器以及微处理器等实现。
本公开的范围包括可供适用多种不同实施例的方法中的动作在装置或计算机上执行的软件或设备可执行的指令(例如操作系统、应用程序、固件(firmware)、程序等),以及存储有如上所述的软件或指令等的装置或计算机可执行的非暂时性计算机可读介质(non-transitory computer-readable medium)。
产业可用性
本发明可以用于对影像进行编码/解码的装置。
- 影像编码装置、影像编码方法、影像编码程序、影像解码装置、影像解码方法和影像解码程序
- 立体影像编码装置、立体影像解码装置、立体影像编码方法、立体影像解码方法、立体影像编码程序以及立体影像解码程序