具体实施方式
下面将参照附图对示例性实施方式进行更全面的描述,在附图中示出了示例性实施方式。然而,本公开可以以多种不同形式来实施,不应被理解为限于本文阐述的示例性实施方式。相反,提供这些示例性实施方式以使本公开将是彻底的和完整的,并将本公开的范围充分传达给本领域技术人员。在描述中,可以省略已知特征和技术的细节,以避免不必要地模糊了所呈现的实施方式。
本文使用的术语仅是为了描述特定实施方式的目的,没有意图限制本公开。如本文使用的,单数形式意在也包括复数形式,除非上下文另外明确指出。此外,单数术语等的使用不表示数量的限制,而表示所提及的项的至少一个的存在。术语“第一”、“第二”等的使用不暗示任何特定顺序,而术语“第一”、“第二”被包括以标识各个元素。此外,术语第一、第二等的使用不表示任何顺序或重要性,而是术语第一、第二等被用于将一个元素与另一个元素区分开。还将理解的是,当在说明书中使用时,术语“包括”和/或“包含”指定所陈述的特征、区域、整件、步骤、操作、元素和/或部件的存在,但不排除一个或更多个其它特征、区域、整件、步骤、操作、元素、部件和/或他们的组的存在或添加。
在提到特定部件“连接”或“接入”到另一部件的情况下,可以理解为特定部件直接连接或接入到另一部件或者在这两部件之间***有部件。相反,在提到特定部件“直接连接”或“直接接入”到另一部件的情况下,应理解为在其之间不存在部件。
本发明中所使用的术语仅为了解释特定实施方式,因此不表示限制。单数表述包括复数表述,除非两个表述根据上下文彼此不同。在本发明中,术语“包括”或“具有”意在指示在说明书公开的特性、特征、步骤、操作、部件、元件或其组合的存在。此外,术语“包括”或“具有”应该被理解为不排除一个或更多个其它特性、特征、步骤、操作、部件、元件或其组合或附加可能性的存在。
下面,将参照附图详细地描述本发明的示例性实施方式。在附图中,为了清晰可能夸大层和区域的尺寸和相对尺寸。附图中的相同标号表示相同元件。
图1是根据本发明的示例性实施方式的视频编码器的框图。
参照图1,视频编码器100可以包括画面划分器105、预测器110、变换单元115、量化器120、重新对准单元125、熵编码单元130、逆量化器135、逆变换单元140、滤波器单元145和存储器150。
图1中示出的单个单元彼此独立地被例示以强调视频编码器的特性功能;因此,并不表示各单元必须实现为单独的硬件或软件单元。换句话讲,为了方便描述而这样介绍和例示了各单元。至少两个单元可以组合成提供集成功能的单个单元,或者单个单元可以被进一步划分成多个子单元来执行其功能。通过单个单元的集成或划分所实现的实施方式落入本发明的技术范围内,除非实施方式脱离了本发明的技术原理。
另外,构成元件的部分可以是用于增强功能的可选元件,并且可以被省略。
画面划分器105可以将输入画面划分成至少一个处理单位。处理单位可以是预测块(PB)或变换块(TB)或编码块(CB)。
画面划分器105将单个画面划分成多个编码块、预测块和变换块的组合。基于预定的标准(例如,代价函数),画面划分器105可以通过选择编码块、预测块和变换块的单个组合来对画面编码。
例如,可以将单个画面划分成多个编码块。为了通过对块编码来划分画面,可以采用诸如四叉树结构的递归树结构。利用单个画面或最大尺寸编码块作为根,可以将编码块划分成多个其它编码块,所述编码块具有与划分出的编码块的数量一样多的子节点。叶节点表示根据预定条件不能被进一步划分的编码块。如果单个编码块仅允许划分成正方形区域,则可以将单个块划分成多达四个不同编码块。
下面,可以使用术语“编码块”来不仅指示编码的单位,还指示解码的单位(即,解码块)。
可以将单个编码块划分成正方形或矩形形状的相同尺寸的一个或更多个预测块。此外,可以将单个编码块划分成预测块,一个预测块的形状可以与其余预测块的形状不同。
在构造用于基于编码块执行帧内预测的预测块时,如果预测块不对应于最小的编码块,则可以在不将预测块划分成多个预测块(N x N)的情况下来执行帧内预测。
预测器110可以包括执行帧间预测的帧间预测器和执行帧内预测的帧内预测器。可以基于预测块来确定使用帧间预测还是使用帧内预测,并且可以根据各预测方法来确定特定信息(例如,帧内预测模式、运动矢量、参考画面等)。执行预测的处理单元和确定预测方法和特定信息的处理单元可以彼此不同。例如,可以通过预测块来确定预测方法和预测模式,并且可以通过变换块来执行预测。可以向变换单元115输入预测的块和原始块之间的残差值(残差块)。另外,用于预测的预测模式信息、运动矢量信息等可以由熵编码单元130与残差值一起被编码,并被传送至解码器。在使用特定编码模式的情况下,无需通过预测器110产生预测的块,可以对原始块按原样编码,并向解码器传送编码块。
帧间预测器可以基于当前画面的前一画面和下一画面中的至少一个画面的信息来执行帧间预测。帧间预测器可以包括参考画面插值单元、运动预测器和运动补偿单元。
参考画面插值单元可以设置有来自存储器150的参考画面信息,并且可以产生用于参考画面的子整数精度像素信息(sub-integer accuracy pixel information)。在亮度像素的情况下,为了以1/4像素为单位产生子-整数准确性像素信息,可以采用具有改变的滤波器系数的基于DCT的8抽头插值滤波器。在色度信号的情况下,为了以1/8像素为单位产生子-整数准确性像素信息,可以采用具有改变的滤波器系数的基于DCT的4抽头插值滤波器。
运动预测器可以基于由参考画面插值单元插值后的差值画面来执行运动估计。可以利用诸如FBMA(基于全搜索的块匹配方法)、TSS(三步搜索)、NTS(新的三步搜索算法)的各种方法作为用于估计运动矢量的方法。运动矢量可以基于插值的像素具有以1/2或1/4像素为单位的运动矢量。运动矢量可以通过针对运动预测采用各种不同的方法来估计预测块。可以利用诸如跳过方法、合并方法、AMVP(高级运动矢量预测)方法的各种方法作为运动预测方法。
帧内预测器可以基于与预测块相邻的参考像素(即,参考样本)的信息(所述信息为关于当前画面的像素的信息)来产生预测的块。如果因为与预测块相邻的块已经执行了帧间预测,参考像素是已经执行了帧间预测的像素,则已经执行了帧间预测的块中所包括的参考像素可以用已经执行了帧内预测的相邻块的参考像素信息来代替。如果参考像素不可用,则可用的参考像素中的至少一个参考像素可以用于代替不可用的参考像素信息。
帧内预测中的预测模式可以进一步划分成利用沿预测方向的参考像素信息的方向性预测模式和在执行预测时不利用方向性信息的无方向性预测模式。用于估计亮度信息的模式可以与用于估计色度信息的模式不同,并且可以采用估计亮度信息的帧内预测模式信息或预测的亮度信号信息来预测色度信息。
在帧内预测中,如果预测块的尺寸与变换块的尺寸相同,则可以基于位于预测块的左侧、左上侧和上侧的像素来执行帧内预测。然而,在帧内预测中,如果预测块的尺寸与变换块的尺寸不同,则可以基于变换块利用参考像素来执行帧内预测。另外,可以采用仅对最小预测块应用NxN划分的帧内预测。
根据预测模式,在向参考像素应用了AIS(自适应帧内平滑)滤波器之后,帧内预测方法可以产生预测的块。针对参考像素要被应用的AIS滤波器的类型可以彼此不同。为了执行帧内预测方法,可以根据与预测块相邻的相邻块的帧内预测模式来预测预测块的帧内预测模式。在利用根据相邻块预测的模式信息预测预测块的帧内预测模式的情况下,如果预测块的帧内预测模式与根据相邻块推断出的帧内预测模式中的一个相同,则可以利用预定的标记信息来传递指示预测块的帧内预测模式与根据相邻块推断出的帧内预测模式中的一个相同的信息;如果预测块的帧内预测模式与根据相邻块推断出的所有帧内预测模式不同,则可以执行熵编码来对预测块的帧内预测模式进行编码。
基于使用针对图3至图8描述的帧内编码模式编码方法的预测器可以利用预定的二进制符号来指示预测块(即,当前块)的帧内预测模式,其中,当前块是要被预测的目标块。
另外,可以产生包括残差信息的残差块,该残差信息是在预测器110产生的预测块和其预测的块之间的差值。可以向变换单元115输入残差块。变换单元115可以通过应用诸如DCT(离散余弦变换)或DST(离散正弦变换)的变换方法来对残差块进行变换,该残差块包括由预测器110产生的预测的块与预测块的残差信息。可以基于为产生残差块所采用的预测块的帧内预测模式来确定使用DCT还是DST来对残差块进行变换。
量化器120可以对由变换单元115变换到频域的值进行量化。量化系数可以根据块类型或关注的画面的重要性而改变。可以向逆量化器135或重新对准单元125提供由量化器120计算出的值。
重新对准单元125可以针对经量化的残差值执行系数值的重新对准。
重新对准单元125可以利用系数扫描方法来将二维(2D)块形式的系数改变成一维矢量形式。例如,重新对准单元125通过采用锯齿扫描方法可以从DC到高频对系数进行扫描,并且将系数修改成一维矢量形式。根据变换块的尺寸及其帧内预测模式,可以采用垂直扫描方法或水平扫描方法而不是锯齿扫描方法,其中,垂直扫描方法沿按列的方向扫描形成二维块的系数,水平扫描方法沿按行的方向扫描形成二维块的系数。换句话讲,根据变换块的尺寸及其帧内预测模式,可以确定锯齿扫描方法、垂直扫描方法和水平扫描方法中的方法。
熵编码单元130可以基于由重新对准单元125计算出的值来执行熵编码。例如,熵编码可以使用诸如指数哥伦布、CAVLC(上下文自适应可变长度编码)和CABAC(上下文自适应二进制算术编码)的各种编码方法。
熵编码单元130从重新对准单元125和预测器110接收诸如块的残差系数信息、块类型信息、预测模式信息、划分块信息、预测块信息、变换块信息、运动矢量信息、参考帧信息、块的插值信息、滤波信息等的各种信息,并且对所述信息进行编码。
熵编码单元130可以对从重新对准单元125输入的块的系数应用熵编码。
熵编码单元130可以存储诸如可变长度编码表的用于执行熵编码的表,并且利用该表(诸如存储的可变长度编码表)来执行熵编码。在执行熵编码中,通过对所述表中所包括的码字的一部分应用使用计数器或直接交换的方法,可以修改针对相应信息的码号的码字分配。例如,针对前几个码号的情况(针对这些码号向将码号映射到码字的表中的码字分配小数量的比特),可以以这样的方式来改变自适应地将码字和码号进行映射的表的映射顺序:向展示计数器所计数的出现最大累积次数的码号分配短长度的码字。如果计数达到计数器的预定阈值,则可以将计数器中所记载的计数按一半来划分,并且可以再次开始计数。
针对所述表中在计数中没有涉及的码号,如果出现与该码号相对应的信息,则可以通过在紧接前面的位置采用与码号交换位置的直接交换方法减少分配给相应码号的比特数来执行熵编码。
基于使用针对图3至图8描述的帧内编码模式的编码方法,熵编码单元可以利用预定的二进制符号指示预测块的帧内预测模式。
逆量化器135和逆变换单元140分别对由量化器120量化的值进行逆量化以及对由变换单元115变换的值进行逆变换。可以利用在逆量化器135和逆变换单元140产生的残差来产生重构块。可以将残差与通过运动预测器、预测器110中所包括的运动补偿单元和帧内预测器所预测出的预测的块组合。
滤波器单元145可以包括去块滤波器(deblocking filter)、偏移补偿单元和ALF(自适应环路滤波器)中的至少一个。
去块滤波器145可以去除由重构的画面中的块之间的边界所引起的块失真。可以基于块中所包括的列的数量或行中所包括的像素的数量来确定是否对块应用去块滤波器。在对块应用去块滤波器的情况下,根据所需要的去块滤波器的滤波强度,可以采用强或弱滤波器。此外,在针对去块滤波器的应用执行垂直和水平滤波中,可以并行地执行水平方向滤波和垂直方向滤波。
偏移补偿单元可以对从原始图像相对于应用了去块的图像的以像素为单位的偏移进行补偿。为了针对特定画面执行偏移补偿,可以采用将画面的像素划分成有限数量的区域、确定要应用偏移补偿的区域并向相应区域应用偏移补偿的方法、或通过考虑各像素的边缘信息而应用偏移补偿的方法。
ALF(自适应环路滤波器)可以基于将滤波后的重构的画面与原始图像进行了比较的值来执行滤波。可以将画面的像素分组成预定组,可以向各个组分配滤波器,并且对各组单独执行滤波。针对关于是否应用ALF的信息,可以针对各编码块传送亮度信号;并且可以改变针对各块将应用的ALF的尺寸和系数。ALF可以具有各种形式,并且滤波器中所包括的系数的数量也可以改变。以上ALS的滤波相关信息(例如,滤波器系数信息、ALF打开/关闭信息、滤波器形状信息)可以在被包括在预定参数集中之后通过比特流来传送。
存储器150可以存储通过滤波器单元145计算出的重构的块或画面,并且可以向预测器110提供重构的块或画面,同时执行帧内预测。
图2是根据本发明的示例性实施方式的视频解码器的框图。
参照图2,视频解码器200可以包括熵解码器210、重新对准单元215、逆量化器220、逆变换单元225、预测器230、滤波器单元235和存储器240。
当从视频编码器输入了视频比特流时,输入的比特流可以通过针对视频编码器执行的过程的逆顺序被解码。
熵解码器210(“熵解码单元”)可以通过在视频编码器的熵编码器处执行的熵编码过程的逆顺序来执行熵解码。例如,当用于视频编码器执行熵编码的VLC表在熵解码单元处被实现为相同的可变长度编码表时,可以执行熵解码。向预测器230提供在熵解码单元210处解码的信息中的用于产生预测的块的信息,并且可以向重新对准单元215提供熵解码单元210用来执行了熵解码的残差值。
以与图1的熵编码单元130相同的方式,熵解码器210还可以利用计数器或直接交换方法来改变码字分配表。基于改变的码字分配表,可以执行熵解码。
熵解码器210可以对与在编码器执行的帧内预测和帧间预测有关的信息进行解码。如上所述,如果当视频编码器执行帧内和帧间预测时存在诸如用于预测的特定约束之类的特定条件,则可以基于所述条件执行熵解码,并且可以提供与预测块的帧内和帧间预测有关的信息。熵解码单元可以执行参照图3至图8描述的解码操作。
基于针对图3至图8描述的帧内预测模式的解码方法,熵解码单元210可以利用预定的二进制符号来对预测块的帧内预测模式信息进行解码。
重新对准单元215可以基于在编码器100中所采用的重新对准方法来重新对准被熵解码器210进行了熵解码的比特流。可以通过将一维矢量再次重构成二维块形式的系数来重新对准被表示成一维矢量的系数。重新对准单元可以接收与在编码器执行的系数扫描有关的信息,可以通过基于在编码器100执行的扫描顺序应用逆扫描的方法来执行重新对准。
逆量化器220可以基于由编码器100提供的量化系数和重新对准的块的系数值来执行逆量化。
逆变换单元225可以对在视频编码器100执行的量化结果应用分别与由变换单元115所执行的DCT或DST相对的逆DCT或逆DST。可以基于在视频解码器确定的变换块来执行逆变换。在视频编码器100的变换单元115中,可以根据预测方法、尺寸和预测方向等来选择性地执行DCT或DST,并且视频解码器的逆变换单元225可以基于在视频编码器100的变换单元115执行的变换信息来执行逆变换。
在执行变换中,可以基于编码块而不是基于变换块来执行变换。
预测器230可以基于由熵解码器210所提供与预测的块的产生有关的信息和由存储器240提供的关于先前解码的块或画面的信息来产生预测的块。
如上所述,如果当按照与在视频编码器100的操作相同的方式执行帧内预测时预测块的尺寸与变换块的尺寸相同,则可以基于位于预测块的左侧、左上侧和上侧的像素来执行帧内预测。然而,如果当执行帧内预测时预测块的尺寸与变换块的尺寸不同,则可以基于变换块利用参考像素执行帧内预测。另外,针对最小预测块可以仅使用利用N x N划分的帧内预测。
预测器230可以包括预测块确定单元、帧间预测器和帧内预测器。预测块确定单元可以接收诸如从熵解码单元输入的预测块信息、帧内预测方法的预测模式信息和帧间预测方法的运动预测相关信息之类的多条信息,从当前编码块识别预测块,并且确定预测块是执行帧间预测还是帧内预测。帧间预测器可以基于其中包括预测块的当前画面的前一画面和下一画面中的至少一个画面的信息,利用由视频编码器100所提供的用于预测块的帧间预测的信息来关于预测块执行帧间预测。
为了执行帧间预测,可以基于编码块确定相应编码块中所包括的预测块的运动预测方法对应于跳过模式、合并模式和AMVP模式中的哪种方法。
帧内预测器可以基于当前画面内的像素信息来产生预测的块。如果以帧内预测模式对预测块编码,则可以基于在视频编码器100提供的预测块的帧内预测模式来执行帧内预测。
帧内预测块可以包括AIS滤波器、参考像素插值单元、DC滤波器。AIS滤波器对预测块的参考像素应用滤波,并且可以基于预测块的预测模式来确定是否应用AIS滤波器。通过利用由视频编码器提供的预测块的预测模式和AIS滤波器信息,可以对预测块的参考像素执行AIS滤波。如果预测块的预测模式对应于不执行AIS滤波的模式,则可以不应用AIS滤波器。
如果预测块的预测模式对应于基于对参考像素插值的像素值执行帧内预测的预测块,则参考像素插值单元可以对参考像素进行插值,并且产生子整数精度像素单元的参考像素。如果预测块的预测模式对应于在不对参考像素进行插值的情况下产生预测的块的预测模式,则可以不对参考像素进行插值。如果预测块的预测模式是DC模式,则DC滤波器可以通过滤波产生预测的块。
可以向滤波器单元235提供重构的块或画面。滤波器单元235可以包括去块滤波器、偏移补偿单元和ALF。
如果采用去块滤波器,则视频编码器100可以提供关于是否已将去块滤波器应用于相应的块或画面的信息以及关于是应用了强滤波器还是弱滤波器的信息。视频解码器200的去块滤波器可以接收与由视频编码器100提供的去块滤波器有关的信息,并且在视频解码器200针对相应的块执行去块滤波。以与视频编码器相同的方式,可以执行垂直去块滤波和水平去块滤波。针对彼此交叠的那些区域,可以执行垂直去块滤波和水平去块滤波中的至少一种。在垂直去块滤波和水平去块滤波交叠的区域中,可以执行先前没有执行的垂直去块滤波或水平去块滤波。通过上述去块滤波处理,可以执行去块滤波的平行处理。
偏移补偿单元可以基于在编码时应用于图像的偏移补偿的类型、关于偏移值的信息等来对重构的图像应用偏移补偿。
ALF可以基于通过将滤波之后的重构的画面与原始图像进行比较所获得的值来执行滤波。可以基于关于是否应用了从编码器提供的ALF的信息、ALF系数信息等来向编码块应用ALF。ALF信息可以在被包括在特定参数集中之后被提供。
存储器240可以存储重构的画面或块,使得重构的画面或块可以被用作参考画面或参考块,并且可以向输出单元提供重构的画面。
如上所述,尽管本发明的实施方式为了方便描述而使用术语编码块,但所述块可以用作用于解码以及编码的单位。即,编码块可以表示解码处理中的解码块。针对图3至图8描述的利用多个候选帧内预测模式对帧内预测模式进行编码和解码的方法可以被实施为实现针对图1和图2描述的各模块的功能。上述编码器和解码器是示例性的,并且不限制本发明的范围。
图3是例示根据本发明的示例性实施方式的对预测块(即,当前块)的帧内预测模式进行编码的方法的概念图。当前块可以表示要被预测的目标块。
参照图3,可以基于当前块的相邻块310、320的帧内预测模式来推断当前块300的帧内预测模式。
根据本发明的多方面,可以将用于推断预测当前块300的帧内预测模式所使用的候选帧内预测模式的块限定为相邻块310、320。如果当前块300的左上像素的位置被限定为(x,y),则包括像素位置(x-1,y)的第一相邻块310和包括像素位置(x,y-1)的第二相邻块320可以被限定为相邻块310、320。
相邻块的帧内预测模式可用的情况可以对应于以下情况:a)存在相邻块;b)相邻块是以帧内预测模式编码的;以及c)可以从相邻块推断出帧内预测模式。
相邻块的帧内预测模式不可用的情况可以对应于以下情况:a)不存在相邻块;b)相邻块不是以帧内预测模式编码的;或者c)从相邻块不能推断出帧内预测模式。
此外,为了预测当前块300的帧内预测模式,可以使用相邻块310、320的帧内预测模式以及其它序贯帧内预测模式。可以通过候选帧内预测模式来预测当前块300的帧内预测模式,并且可以利用多个候选帧内预测模式。
根据本发明的多个方面,为了方便描述可以假定使用三个或四个候选帧内预测模式;然而,五个或更多个候选帧内预测模式可以是可用的。
如果假定使用三个或更多个候选帧内预测模式以预测当前块的帧内预测模式,则可以如下所述来实现用于推断候选帧内预测模式以预测、编码和解码当前块的帧内预测模式的实施方式。
1)如果当前块的相邻块都是可用的并且具有彼此不同的帧内预测模式(即,相邻块具有不同的帧内预测模式),则可以从相邻块的帧内预测模式推断出两个(即,第一和第二)候选帧内预测模式。可以从与这两个候选帧内预测模式不同的附加帧内预测模式推断出第三候选帧内预测模式。
不是从相邻块推断出的附加帧内预测模式可以被称为序贯附加帧内预测模式。序贯附加帧内预测模式是被顺序地用于推断候选帧内预测模式的帧内预测模式。考虑到从相邻块推断出的候选帧内预测模式,序贯附加帧内预测模式可以被设置为与从相邻块推断出的两个候选帧内预测模式不同的第三候选帧内预测模式,使得这三个候选帧内预测模式具有彼此不同的值。下面将详细描述序贯附加帧内预测模式。
2)如果当前块的相邻块都可用并且具有相同的帧内预测模式,则可以从相邻块的相同的帧内预测模式推断出一个候选帧内预测模式。可以从与从相邻块推断出的一个候选帧内预测模式不同的两个附加其它帧内预测模式(序贯附加帧内预测模式)推断出其余的两个候选帧内预测模式,使得三个候选帧内预测模式具有彼此不同的值。
3)如果在当前块的相邻块中仅一个相邻块可用,则可以从可用的相邻块的帧内预测模式推断出一个候选帧内预测模式。可以从与从可用的相邻块推断出的候选帧内预测模式不同的两个附加其它帧内预测模式(序贯附加帧内预测模式)推断出其余两个候选帧内预测模式,使得三个候选帧内预测模式具有彼此不同的值。
4)如果当前块的相邻块都不可用,则可以利用序贯附加帧内预测模式来推断出三个候选帧内预测模式。
如果当前块的帧内预测模式与候选帧内预测模式相同,则可以通过预定的标记信息来对指示当前块300的帧内预测模式与候选帧内预测模式是否相同的信息进行编码和解码。
下面,将描述推断用于对当前块300的帧内预测模式进行编码和解码的三个或四个候选帧内预测模式的各种情况。
情况1:在当前块的相邻块都可用并且具有彼此不同的帧内预测模式(即,相邻块具有不同的帧内预测模式)时推断候选帧内预测模式的方法。即,在当前块300周围存在第一相邻块310和第二相邻块320;第一相邻块310和第二相邻块320以帧内预测模式被编码;以及第一相邻块310的帧内预测模式与第二相邻块320的帧内预测模式不同。
在这种情况下,第一候选帧内预测模式可以被设置为等于第一相邻块310和第二相邻块320的帧内预测模式之间的具有最小值的帧内预测模式,并且第二候选帧内预测模式可以被设置为等于第一相邻块310和第二相邻块320的帧内预测模式之间的具有最大值的帧内预测模式。
另选地,第一候选帧内预测模式可以被设置为第一相邻块310的帧内预测模式,并且第二候选帧内预测模式可以被设置为第二相邻块320的帧内预测模式。
利用多个候选帧内预测模式对当前块的帧内预测模式进行编码和解码的方法可以利用序贯附加候选帧内预测模式来推断用于对当前块的帧内预测模式进行编码和解码的多个候选帧内预测模式。
三个候选帧内预测模式可以被限定为用于对当前块的帧内预测模式进行编码和解码的多个候选帧内预测模式。在这种情况下,针对序贯附加帧内预测模式,例如可以使用平面模式、DC模式和垂直模式,但多个方面不限于此。
序贯附加帧内预测模式中的被用作候选帧内预测模式的帧内预测模式可以与从相邻块推断出的候选帧内预测模式不同。
例如,可以存在这样的情况:可以从相邻块310和320的帧内预测模式推断出第一候选帧内预测模式和第二候选帧内预测模式,并且第一候选帧内预测模式和第二候选帧内预测模式都不是平面模式。在这种情况下,第三候选帧内预测模式可以被设置为等于作为序贯附加帧内预测模式中的第一帧内预测模式的平面模式。
如果从相邻块的帧内预测模式推断出的第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个不是DC模式,则由于在第一候选帧内预测模式或第二候选帧内预测模式中已经存在了平面模式,所以可以将第三候选帧内预测模式设置为等于作为序贯附加帧内预测模式中的第二帧内预测模式的DC模式。
如果从相邻块的帧内预测模式推断出的第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个是DC模式,则由于在第一候选帧内预测模式和第二候选帧内预测模式中已经存在了DC模式和平面模式,所以可以将第三候选帧内预测模式设置为等于作为序贯附加帧内预测模式中的第三帧内预测模式的垂直模式。
如上所述,可以利用三个不同的候选帧内预测模式来对当前块的帧内预测模式进行预测、编码和解码。
此外,可以使用四个候选帧内预测模式作为用于对当前块的帧内预测模式进行编码和解码的多个候选帧内预测模式。
用于推断四个候选帧内预测模式的序贯附加帧内预测模式可以是平面模式、DC模式、垂直模式和水平模式。
例如,可以存在这样的情况:从相邻块推断出第一候选帧内预测模式和第二候选帧内预测模式,并且第一候选帧内预测模式和第二候选帧内预测模式不是平面模式或DC模式。在这种情况下,在序贯附加帧内预测模式中,平面模式被推断为第三候选帧内预测模式并且DC模式被推断为第四候选帧内预测模式,所述第三候选帧内预测模式和第四候选帧内预测模式可以用于对当前块的帧内预测模式进行编码和解码。
另外,可以假定从相邻块推断出的第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个不是DC模式。在这种情况下,在序贯附加帧内预测模式中,DC模式被推断为第三候选帧内预测模式而垂直模式被推断为第四候选帧内预测模式,以使候选帧内预测模式与从相邻块推断出的候选帧内预测模式不相同。
如果从相邻块推断出的第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式且另一个是DC模式(或DC模式以及平面模式)。在这种情况下,第三候选帧内预测模式被设置为垂直模式,而第四候选帧内预测模式为水平模式,以使候选帧内预测模式与从相邻块推断出的候选帧内预测模式不相同。
通过以上方法推断出的第四候选帧内预测模式可以被用于预测当前块的帧内预测模式。
用于推断三个或四个候选帧内预测模式的序贯附加帧内预测模式的顺序为了例示的目的被引入并且可以被改变。例如,作为用于推断三个候选帧内预测模式的另一种方法,序贯附加帧内预测模式可以采用平面模式、DC模式和水平模式。
此外,作为利用四个候选帧内预测模式的又一种方法,序贯附加帧内预测模式可以顺序地使用平面模式、DC模式、水平模式和垂直模式作为附加帧内预测模式。
如果利用三个候选帧内预测模式来预测当前块的帧内预测模式,则可以假定顺序地使用平面模式、DC模式和垂直模式作为附加帧内预测模式。
如果利用四个候选帧内预测模式来预测当前块的帧内预测模式,则可以假定顺序地使用平面模式、DC模式、垂直模式和水平作为附加帧内预测模式。
情况2:当当前块的相邻块都可用但具有相同的帧内预测模式时推断候选帧内预测模式的方法。
在当前块300周围存在第一相邻块310和第二相邻块320二者;第一相邻块310和第二相邻块320可以以帧内预测模式被编码;以及第一相邻块310的帧内预测模式与第二相邻块320的帧内预测模式相同。
在这种情况下,第一候选帧内预测模式被设置为等于第一相邻块310的帧内预测模式,并且可以基于序贯附加帧内预测模式来推断其余的候选帧内预测模式。
例如,如果使用三个候选帧内预测模式预测当前块300的帧内预测模式,则可以利用序贯附加帧内预测模式来推断其余的候选帧内预测模式(即,第二候选帧内预测模式和第三候选帧内预测模式)。
例如,作为第一相邻块310的帧内预测模式的第一候选帧内预测模式不是平面模式。在这种情况下,序贯附加预测模式中的与第一候选帧内预测模式不同的帧内预测模式可以被用作候选帧内预测模式。因此,根据顺序的优先级,可以将第二候选帧内预测模式设置为等于平面模式。如果第一候选帧内预测模式是DC模式,则可以将第三候选帧内预测模式设置为垂直模式。另外,如果第一候选帧内预测模式是与平面模式和DC模式不同的其余帧内预测模式(在既不是平面模式也不是DC模式的情况下),则第三候选帧内预测模式可以被设置为等于DC模式。
作为另一个示例,如果作为第一相邻块310的帧内预测模式的第一候选帧内预测模式是平面模式,则第二候选帧内预测模式可以被设置为等于DC模式并且第三候选帧内预测模式可以被设置为等于垂直模式。
如果使用四个候选帧内预测模式预测当前块300的帧内预测模式,则可以以与上述方式相同的方式来配置第二候选帧内预测模式、第三候选帧内预测模式和第四候选帧内预测模式。
例如,如果与第一相邻块310和第二相邻块320的相同的帧内预测模式相对应的第一候选帧内预测模式不是平面模式,则第二候选帧内预测模式可以被设置为平面模式。在其余的序贯附加帧内预测模式(DC模式、垂直模式和水平模式)中,与和第一候选帧内预测模式相同的帧内预测模式不同的其余帧内预测模式可以被顺序地推断为第三候选帧内预测模式和第四候选帧内预测模式。
作为另一个示例,如果与第一相邻块310和第二相邻块320的相同的帧内预测模式相对应的第一候选帧内预测模式是平面模式,则第二候选帧内预测模式可以被设置为DC模式;第三候选帧内预测模式可以被设置为垂直模式;以及第四候选帧内预测模式可以被设置为水平模式。
情况3:在当前块的相邻块中仅一个相邻块可用时推断候选帧内预测模式的方法。
如果第一相邻块310和第二相邻块320中仅一个相邻块可用,则可以仅从可用的相邻块推断候选帧内预测模式。
在这种情况下,如果三个候选帧内预测模式被用作当前块300的候选帧内预测模式,则可以将从可用相邻块计算出的帧内预测模式推断为第一候选帧内预测模式。可以基于序贯附加帧内预测模式来推断其余的第二候选帧内预测模式和第三候选帧内预测模式。即,作为序贯附加帧内预测模式的平面模式、DC模式和垂直模式中的至少两个帧内预测模式可以被顺序地分别推断为第二候选帧内预测模式和第三候选帧内预测模式。
例如,作为可用相邻块的帧内预测模式的第一候选帧内预测模式可以是与平面模式不同的帧内预测欧式。在这种情况下,序贯附加帧内预测模式中的与第一候选帧内预测模式不相同的帧内预测模式可以被用作候选帧内预测模式。因此,第二候选帧内预测模式可以被配置为平面模式。如果第一候选帧内预测模式是DC模式,则即使DC模式具有比垂直模式高的优先级,也可将其余的第三候选帧内预测模式配置为垂直模式,以避免DC模式被多次分配为候选预测模式。另外,如果第一候选帧内预测模式(在既不是平面模式也不是DC模式的情况下)对应于其它帧内预测模式,则第三候选帧内预测模式可以被配置为DC模式,该DC模式可以具有比除了平面模式之外的其它帧内预测模式高的优先级。
作为另一个示例,如果作为可用相邻块的帧内预测模式的第一候选帧内预测模式是平面模式,则第二候选帧内预测模式被推断为DC模式并且第三候选帧内预测模式被推断为垂直模式。
如果四个候选帧内预测模式被用作当前块300的候选帧内预测模式,则可以按照与以上相同的方式来配置第二候选帧内预测模式、第三候选帧内预测模式和第四候选帧内预测模式。
例如,如果作为可用相邻块的帧内预测模式的第一候选帧内预测模式不是平面模式,则第二候选帧内预测模式可以被配置为平面模式。作为其余的序贯附加帧内预测模式的DC模式、垂直模式和水平模式中的与第一候选帧内预测模式的帧内预测模式不同的其余帧内预测模式可以被顺序地推断为第三候选帧内预测模式和第四候选帧内预测模式。
此外,如果作为可用相邻块的帧内预测模式的第一候选帧内预测模式是平面模式,则第二候选帧内预测模式可以被推断为DC模式;第三候选帧内预测模式可以被推断为垂直模式;以及第四候选帧内预测模式可以被推断为水平模式。
情况4:在当前块的相邻块都不可用时推断候选帧内预测模式的方法。
当前块300的第一相邻块310和第二相邻块320二者可都不可用。
可以假定使用三个候选帧内预测模式预测其相邻块都不可用的当前块300的帧内预测模式。
如果相邻块不可用,则作为用于预测当前块的帧内预测模式的三个候选帧内预测模式,第一候选帧内预测模式可以被推断为平面模式;第二候选帧内预测模式可以被推断为DC模式;以及第三候选帧内预测模式可以被推断为垂直模式。
可以假定使用四个候选帧内预测模式预测其相邻块都不可用的当前块300的帧内预测模式。在这种情况下,作为用于预测当前块的帧内预测模式的四个候选帧内预测模式,第一候选帧内预测模式可以被推断为平面模式;第二候选帧内预测模式可以被推断为DC模式;第三候选帧内预测模式可以被推断为垂直模式;以及第四候选帧内预测模式可以被推断为水平模式。
图4是例示根据本发明的示例性实施方式的确定相邻块的可用性的方法的概念图。
关于图4,在操作S400,可以确定第一相邻块是否可用。
如果在当前块的左侧存在第一相邻块,并且第一相邻块利用帧内预测模式执行预测,则确定第一相邻块是可用的。
如果第一相邻块是不可用的,则在操作S410,第一相邻块的帧内预测模式被配置为-1。
通过将第一相邻块的帧内预测模式配置为-1,可以指示第一相邻块的不可用性。还可以利用不同于‘-1’的值来指示第一相邻块的可用性。
可以利用预定的语法元素来表示第一相邻块的帧内预测模式。例如,可以利用语法元素neg_intra_mode[0]表示第一相邻块的帧内预测模式;如果neg_intra_mode[0]是‘-1’,则它指示第一相邻块是不可用的。
如果第一相邻块是可用的,则在操作S420,第一相邻块的帧内预测模式被用作第一候选帧内预测模式。
可以基于语法元素neg_intra_mode[0]表示第一相邻块的帧内预测模式信息。存储有第一相邻块的帧内预测模式的neg_intra_mode[0]可以被用作第一候选帧内预测模式。
如表1所示,可以映射帧内预测模式和帧内预测模式。
<表1>
帧内预测模式 |
相关名称 |
0 |
Intra_Planar |
1 |
Intra_Vertical |
2 |
Intra_Horizontal |
3 |
Intra_DC |
否则(4…34) |
Intra_Angular |
参照表1,平面模式(Intra_Planar)可以被映射至帧内预测值‘0’;垂直模式(Intra_Vertical)可以被映射至帧内预测值‘1’;水平模式(Intra_Horizontal)可以被映射至帧内预测值‘2’;DC模式(Intra_DC)可以被映射至帧内预测值‘3’;以及其它角模式(Intra_Angular)可以被映射至4到34。此外,平面模式(Intra_Planar)可以被映射至第一值;DC模式(Intra_DC)可以被映射至第二值;以及角模式(Intra_Angular)可以被映射至多个值,该角模式(Intra_Angular)包括垂直模式(Intra_Vertical)和水平模式(Intra_Horizontal)。由于垂直模式和水平模式可以是根据特定角(例如,为垂直和水平)分别设置的角模式,所以垂直模式(Intra_Vertical)和水平模式(Intra_Horizontal)可以包括在角模式(Intra_Angular)中。
根据本发明的多个方面,最小的帧内预测模式号可以被映射至平面模式,然后,按帧内预测模式的升序,垂直模式、水平模式和DC模式可以被映射值帧内预测模式,但多个方面不限于此。
在映射帧内预测模式中,通过基于可在当前块使用的帧内预测模式的出现频度的顺序映射帧内预测模式,当为了传送帧内预测模式信息执行二进制编码时可以用更小的比特数来表示当前块的帧内预测模式。因此,更少的比特数可以被映射至具有更高出现频度的帧内预测模式。
在操作S430,可以确定第二相邻块是否可用。
如果在当前块的左面存在第二相邻块并且第二相邻块基于帧内预测模式执行预测,则确定第二相邻块是可用的。
如果第二相邻块是不可用的,则在操作S440,可以将第二相邻块的帧内预测模式配置为‘-1’。
通过将第二相邻块的帧内预测模式配置为-1,可以指示第二相邻块的不可用性。还可以利用不同于‘-1’的值来指示第二相邻块的可用性。
可以利用语法元素neg_intra_mode[1]表示第二相邻块的帧内预测模式;如果neg_intra_mode[1]是‘-1’,则它指示第二相邻块是不可用的。
如果第二相邻块是可用的,则在操作S450,第二相邻块的帧内预测模式被用作第二候选帧内预测模式。
基于语法元素neg_intra_mode[1],可以表示第二相邻块的帧内预测模式信息。语法元素neg_intra_mode[1]中存储的第二相邻块的帧内预测模式可以被配置为第二候选帧内预测模式,因此可以被用于预测当前块的帧内预测模式。例如,如果从相邻块推断出两个候选帧内预测模式,则第一相邻块的帧内预测模式可以被用于第一候选帧内预测模式并且第二相邻块的帧内预测模式可以用于第二候选帧内预测模式。
在本发明的下面的实施方式中,预定的语法元素可以通过不同的变量来限定,或者在本发明的技术原理内可以通过与不同语法元素信息组合来表示。另外,分配给语法元素的值可以是任意的;可以通过不同的值来表示相同的信息。
表2例示了根据预测块的尺寸所支持的帧内预测模式的数量。
<表2>
Log2TrafoSize |
帧内预测模式数量 |
2(4×4) |
18 |
3(8×8) |
35 |
4(16×16) |
35 |
5(32×32) |
35 |
6(64×64) |
4 |
参照表2,如果变换块的尺寸是4×4,如图1的映射所示,可以使用从0到17范围内的18个帧内预测模式。在8×8、16×16和32×32变换块的情况下,可以使用0到34范围内的35个帧内预测模式,在64×64的情况下,可以使用从0到3范围内的4个帧内预测模式。
当前块的尺寸和相邻块的尺寸可以彼此不同。因此,如果在当前块和相邻块之间可用的预测模式的数量不同,为了获得用于预测当前块的帧内预测模式的第一候选帧内预测模式和第二候选帧内预测模式,必须通过基于当前块可用的帧内预测模式的数量改变相邻块的帧内预测模式来计算第一候选帧内预测模式和第二候选帧内预测模式。
图5是例示根据本发明的示例性实施方式的基于当前块改变相邻块的帧内预测模式的方法的流程图。
如果可用的帧内预测模式的数量根据预测块的尺寸而改变,则相邻块所使用的帧内预测模式可以不被用作用于预测当前块的帧内预测模式的候选帧内预测模式。在这种情况下,推断出的候选帧内预测模式可以在被变换为适合当前块的尺寸之后被使用。
参照图5,在操作S500,可以确定相邻块的帧内预测模式是否大于或等于当前块可用的帧内预测模式的数量。
基于第一相邻块的帧内预测模式或第二相邻块的帧内预测模式是否大于或等于当前块可用的帧内预测模式的数量的确定,可以确定是否改变第一相邻块的帧内预测模式或第二相邻块的帧内预测模式。
语法元素neg_intra_mode[i]可以表示相邻块的帧内预测模式,并且语法元素intra_pred_mode_num可以表示当前块可用的帧内预测模式的数量。
如果第一相邻块的帧内预测模式或第二相邻块的帧内预测模式大于或等于当前块可用的帧内预测模式的数量,则在操作S510可以确定当前块可用的帧内预测模式的数量是否为例如4。
通过确定当前块可用的帧内预测模式的数量,第一相邻块的帧内预测模式或第二相邻块的帧内预测模式可以根据当前块可用的帧内预测模式而改变。
在操作S510,为了方便描述,可以确定当前块可用的帧内预测模式的数量是否为4。如果确定当前块可用的帧内预测模式的数量是4,则可以执行操作S520。如果确定当前块可用的帧内预测模式的数量不是4,则可以确定当前块可用的帧内预测模式的数量是18并且可以执行操作S530。第一相邻块或第二相邻块的帧内预测模式可以基于当前块可用的帧内预测模式的数量是否为18的确定而改变。
如果当前块可用的帧内预测模式的数量是4,则通过利用映射表,可以改变第一相邻块的帧内预测模式或第二相邻块的帧内预测模式,其中,所述映射表基于当前块可用的帧内预测模式映射第一相邻块的帧内预测模式或第二相邻块的帧内预测模式。
下面的表3和表4例示了根据本发明的示例性实施方式的帧内预测模式映射表。
<表3>
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
mapIntraPredMode4[] |
0 |
1 |
2 |
3 |
0 |
0 |
1 |
0 |
2 |
2 |
0 |
0 |
1 |
1 |
0 |
0 |
2 |
2 |
mapIntraPredMode10[] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
|
mapIntraPredMode4[] |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
2 |
2 |
2 |
0 |
0 |
|
mapIntraPredMode10[] |
0 |
4 |
5 |
5 |
1 |
1 |
6 |
6 |
7 |
4 |
8 |
8 |
2 |
2 |
9 |
9 |
0 |
|
<表4>
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
mapIntraPredMode4[] |
0 |
1 |
2 |
3 |
3 |
3 |
1 |
3 |
2 |
2 |
3 |
3 |
1 |
1 |
3 |
3 |
2 |
2 |
mapIntraPredMode10[] |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
|
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
|
mapIntraPredMode4[] |
3 |
3 |
3 |
3 |
1 |
1 |
1 |
3 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
3 |
3 |
|
mapIntraPredMode10[] |
3 |
4 |
5 |
5 |
1 |
1 |
6 |
6 |
7 |
4 |
8 |
8 |
2 |
2 |
9 |
9 |
3 |
|
参照表3和表4,如果当前块可用的帧内预测模式的数量是4,则利用通过语法元素mapIntraPredMode4[]计算出的帧内预测模式,可以将相邻块的帧内预测模式转换成当前块可用的预测模式。
另外,如果当前块可用的帧内预测模式的数量是18,则利用通过语法元素mapIntraPredMode10[]计算出的帧内预测模式,可以将相邻块的帧内预测模式转换成当前块可用的预测模式。
表3的帧内预测模式映射表是以当前块可用的多个预测模式被映射至0模式(平面模式)这样的方式所产生的映射表的示例,而表4的帧内预测模式是以当前块可用的多个预测模式被映射至4模式(DC模式)这样的方式所产生的映射表的示例。换句话讲,如果采用表3作为帧内预测模式映射表,则当前块不可用的第一相邻块的帧内预测模式或第二相邻块的帧内预测模式以相对大的频度被映射至平面模式。另外,如果采用表4作为帧内预测模式映射表,则当前块不可用的第一相邻块的帧内预测模式或第二相邻块的帧内预测模式以相对大的频度被映射至DC模式。
基于帧内预测模式映射表,在操作S520将第一相邻块的帧内预测模式或第二相邻块的帧内预测模式改变为四个预测模式中的至少一个。
基于帧内预测模式映射表,在操作S530将第一相邻块的帧内预测模式或第二相邻块的帧内预测模式改变为10个预测模式中的至少一个。
在操作S520和S530,分别基于表3和表4中描述的预定的帧内预测映射表,可以将相邻块的帧内预测模式映射到当前块可用的帧内预测模式中的一个。
probMode[i]是表示第一相邻块的帧内预测模式或第二相邻块的帧内预测模式的语法元素,并且可以被用作指示当前块的候选帧内预测模式的信息。
如果第一相邻块的帧内预测模式或第二相邻块的帧内预测模式小于当前块可用的帧内预测模式的数量,则在操作S540,第一相邻块的帧内预测模式或第二相邻块的帧内预测模式被直接用作用于预测当前块的帧内预测模式的信息。
如果第一相邻块的帧内预测模式或第二相邻块的帧内预测模式小于当前块可用的帧内预测模式的数量,则在不改变第一相邻块的帧内预测模式或第二相邻块的帧内预测模式的情况下,第一相邻块的帧内预测模式或第二相邻块的帧内预测模式可以被直接用作候选帧内预测模式。
图6是例示根据本发明的示例性实施方式的推断第一候选帧内预测模式和第二候选帧内预测模式的方法的流程图。
参照图6,在操作S600可以确定第一相邻块的帧内预测模式和第二相邻块的帧内预测模式是否是可用的。
基于参照图5所描述的过程并且基于当前块的候选帧内预测模式的数量,可以确定是否转换第一相邻块的帧内预测模式或第二相邻块的帧内预测模式。
即,在操作S600,可以确定第一相邻块的帧内预测模式或第二相邻块的帧内预测模式是否可以被用作第一候选帧内预测模式或第二候选帧内预测模式。如果从第一相邻块和第二相邻块的帧内预测模式不能推断出任何候选帧内预测模式,则第一候选帧内预测模式或第二候选帧内预测模式可以被设置为序贯附加帧内预测模式中的至少一种帧内预测模式。
在操作S610可以确定第一相邻块的帧内预测模式与第二相邻块的帧内预测模式是否不同。
如果第一相邻块的帧内预测模式与第二相邻块的帧内预测模式不相同,则第一候选帧内预测模式被设置为第一相邻块的帧内预测模式,并且第二候选帧内预测模式被设置为第二相邻块的帧内预测模式。在操作S620可以基于第一候选帧内预测模式和第二候选帧内预测模式来从序贯附加帧内预测模式推断出附加候选帧内预测模式。
如上所述,如果可以从相邻块的帧内预测模式推断出第一候选帧内预测模式和第二候选帧内预测模式并且第一候选帧内预测模式和第二候选帧内预测模式都不是平面模式,则第三候选帧内预测模式可以被设置为等于平面模式作为当前块的候选帧内预测模式。
如果第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个不是DC模式,则第三候选帧内预测模式可以被设置为等于DC模式。另外,如果第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个是DC模式,则第三候选帧内预测模式可以被设置为等于垂直模式。
作为另一个示例,可以使用四个候选帧内预测模式作为用于当前块的候选帧内预测模式。
例如,可以从相邻块推断出第一候选帧内预测模式和第二候选帧内预测模式。如果第一候选帧内预测模式和第二候选帧内预测模式既不是平面模式也不是DC模式,则第三候选帧内预测模式可以被推断为平面模式并且第四候选帧内预测模式可以被推断为DC模式。
作为另一个示例,如果第一候选帧内预测模式和第二候选帧内预测模式中的一个是平面模式并且另一个不是DC模式,则DC模式可以被推断为第三候选帧内预测模式并且垂直模式可以被推断为第四候选帧内预测模式。
此外,如果第一候选帧内预测模式和第二候选帧内预测模式这两个分别是平面模式和DC模式,则第三候选帧内预测模式可以被设置为等于垂直模式第四候选帧内预测模式可以被设置为等于水平模式。
如果第一相邻块的帧内预测模式与第二相邻块的帧内预测模式相同,则第一候选帧内预测模式被设置为等于第一相邻块的帧内预测模式或第二相邻块的帧内预测模式。在操作S630可以基于第一候选帧内预测模式从序贯附加帧内预测模式中推断附加候选帧内预测模式。
如果第一相邻块的帧内预测模式与第二相邻块的帧内预测模式相同,则仅第一候选帧内预测模式可以被设置为等于该相同的帧内预测模式。
如上所述,如果从相邻块的相同的帧内预测模式仅可以推断出一个候选帧内预测模式,则可以从序贯附加帧内预测模式推断其余的候选帧内预测模式。
如上所述,当利用三个候选帧内预测模式执行帧内模式预测时,第一候选帧内预测模式可以被设置为等于第一相邻块的帧内预测模式或第二相邻块的帧内预测模式,其中这两个帧内预测模式相同。
如果,第一候选帧内预测模式不是平面模式,则第二候选帧内预测模式可以被设置为等于平面模式并且第三候选帧内预测模式可以被设置为等于DC模式。如果第一候选帧内预测模式是平面模式,则第二候选帧内预测模式可以被设置为等于DC模式并且第三候选帧内预测模式可以被设置为等于垂直模式。
类似地,在使用四个候选帧内预测模式的情况下,如果第一候选帧内预测模式不是平面模式,则第二候选帧内预测模式可以被设置为等于平面模式。如果第一候选帧内预测模式不是平面模式,则第三候选帧内预测模式和第四候选帧内预测模式可以如下确定。
1)可以确定第一候选帧内预测模式是否是DC模式、垂直模式或水平模式,并且如果第一候选帧内预测模式不是DC模式、垂直模式或水平模式,则第三候选帧内预测模式可以被设置为等于DC模式并且第四候选帧内预测模式可以被设置为等于垂直模式。
2)可以确定第一候选帧内预测模式是否是DC模式、垂直模式或水平模式并且第一候选帧内预测模式可以与DC模式、垂直模式或水平模式中的一个帧内预测模式相同。在这种情况下,与所述相同的帧内预测模式不同的其余帧内预测模式可以被顺序地推断为第三候选帧内预测模式以及随后的第四候选帧内预测模式。
在操作S640可以确定第一相邻块和第二相邻块是否都不可用。
如果第一相邻块和第二相邻块中仅一个相邻块是可用的,则在操作S650,来自第一相邻块或第二相邻块的可用相邻块的帧内预测模式被推断为第一候选帧内预测模式,并且利用第一候选帧内预测模式的帧内预测模式,可用的第一相邻块或第二相邻块的帧内预测模式基于预定的帧内预测模式被推断为候选帧内预测模式。
与操作S630类似,如果第一相邻块和第二相邻块中仅一个相邻块是可用的,则可用相邻块的帧内预测模式可以被推断为第一候选帧内预测模式。
通过执行与在操作S630所述的过程相同的过程,其余的候选帧内预测模式可以被配置为三个候选帧内预测模式或四个候选帧内预测模式。
如果两个相邻预测模式都是不可用的,则在操作S660利用序贯附加帧内预测模式来推断候选帧内预测模式。
例如,如果使用三个候选帧内预测模式预测当前块的帧内预测模式,则第一候选帧内预测模式可以被推断为平面模式;第二候选帧内预测模式可以被推断为DC模式;以及第三候选帧内预测模式可以被推断为垂直模式。作为另一个示例,如果使用四个候选帧内预测模式以预测当前块的帧内预测模式,则第一候选帧内预测模式可以被推断为平面模式;第二候选帧内预测模式可以被推断为DC模式;第三候选帧内预测模式可以被推断为垂直模式;以及第四候选帧内预测模式可以被推断为水平模式。
图7是例示根据本发明的示例性实施方式的将关于当前块的帧内预测模式的信息映射到码字的方法的流程图。
图7是针对使用三个候选帧内预测模式预测当前块的帧内预测模式的情况所设的流程图。
参照图7,在操作S700,可以确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同。
如果当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同,则在操作S710可以向码字分配1,而如果当前块的帧内预测模式与第一候选帧内预测模式不相同并且当前块的帧内预测模式与第二候选帧内预测模式不相同,则在操作S720可以向码字分配0。
在操作S730可以确定当前块的帧内预测模式与第一候选帧内预测模式是否相同;如果发现彼此相同,则在操作S740可以向码字另外分配0。如果发现不同,则在操作S750可以向码字另外分配1。
在操作S760可以确定当前块的帧内预测模式与第三候选帧内预测模式是否相同。
如果确定当前块的帧内预测模式与第三候选帧内预测模式相同,则在操作S770可以向码字另外分配0。
如果确定当前块的帧内预测模式与第三候选帧内预测模式不相同,则在操作S780可以向码字另外分配1。
如果确定当前块的帧内预测模式与第三候选帧内预测模式不相同,则在操作S790可以分配与其余帧内预测模式信息相对应的码字。
为了指示当前块的帧内预测模式,可以将其余预测模式信息映射到所述码字,并且可以分配与帧内预测模式(该帧内预测模式与当前块的帧内预测模式相对应)相对应的码字。可以基于语法元素rem_intra_pred_mode对与帧内预测模式(该帧内预测模式与当前块的帧内预测模式相对应)相对应的码字进行编码和解码(下面,其余的帧内预测模式被用作与rem_intra_pred_mode相同含义的术语)。
图5例示了根据上述过程的当前块的帧内预测模式和码字之间的映射。
<表5>
参照表5,如果当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式或第三候选帧内预测模式相同,则可以利用2比特的码字来表示当前块的帧内预测模式。
在当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式不同的情况下,可以基于添加了分配给rem_intra_pred_mode的比特值的2比特的码字来指示当前块的帧内预测模式。
分配给与其余帧内预测模式相对应的rem_intra_pred_mode的码字可以改变。可以通过将当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较来产生分配给其余帧内预测模式的码字。
在编码阶段,其余帧内预测模式可以被分配作为新的码字。可以将当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较。可以确定当前块的预测模式是否大于第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式。如果确定第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式中的一个大于当前块的预测模式,则可以改变当前块的帧内预测模式和码字之间的映射。换句话讲,基于其余帧内预测模式(rem_intra_pred_mode)所编码的当前块的帧内预测模式可以与作为将当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较的结果而计算出的值相对应。
换句话讲,如果当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式不同,则基于包括当前块的帧内预测模式的附加语法元素信息,可以推断出当前块的帧内预测模式。
另外,通过将经由对表示与当前块的帧内预测模式相同的帧内预测模式的信息进行解码所推断出的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较所推断出的帧内预测模式可以被改变。
在确定帧内预测模式信息的方法中,如果采用64×64尺寸的当前块,则可以如表6所示根据当前块的帧内预测模式映射码字。
<表6>
参照表6,由于当采用64×64尺寸的当前块时可用的帧内预测模式是4个,所以可以在不采用确定当前块的帧内预测模式与第一候选帧内预测模式和第二候选帧内预测模式是否相同的处理的情况下用固定的两个比特表示当前块的帧内预测模式信息。
尽管为了方便描述图7例示了使用三个候选帧内预测模式的情况,但可以基于三个或更多个候选帧内预测模式来表示当前块的帧内预测模式。
表7、表8和表9例示了当使用4个候选帧内预测模式时的码字和当前候选帧内预测模式。
<表7>
<表8>
<表9>
码字 |
当前模式 |
10 |
MPM1 |
11 |
MPM2 |
010 |
MPM3 |
011 |
MPM4 |
00+rem |
rem |
语法不限于其调用转换,并且在本发明的技术原理内语法可以改变。例如,为了描述或技术方便,可以用MPM1表示candMPM[0];可以用MPM2表示candMPM[1];可以用MPM3表示candMPM[2];可以用MPM4表示candMPM[3];以及可以用rem简单地表示rem_intra_pred_mode。
图8是例示根据本发明的示例性实施方式的对当前帧内预测模式进行解码的方法的流程图。
参照图8,在操作S800可以确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同。
为了确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同,可以使用prev_intra_pred_fiag,该prev_intra_pred_flag是指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的标记信息。
例如,如果prev_intra_pred_flag为1,则其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同;如果prev_intra_pred_flag为0,则其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式不同。
在prev_intra_pred_flag为1的情况下,利用指示当前块的帧内预测模式与第一候选帧内预测模式还是第二候选帧内预测模式相同的索引mpm_idx,可以表示当前块的帧内预测模式。
在操作S810检查mpm_idx,如果mpm_idx为0,则在操作S820可以将当前块的帧内预测模式确定为第一候选帧内预测模式。如果mpm_idx为1,则在操作S830可以将当前块的帧内预测模式确定为第二候选帧内预测模式。
如果prev_intra_pred_flag为0,则在操作S840可以基于另外指示当前块的帧内预测模式是否对应于其余帧内预测模式的预定标记信息,来计算当前块的帧内预测模式。
在prev_intra_pred_flag为0的情况下,基于另外指示当前块的帧内预测模式是否对应于其余帧内预测模式的预定标记信息(rem_flag),如果rem_flag为0,则在操作S850当前块的帧内预测模式与第三候选帧内预测模式相同。如果rem_flag为1,则在操作S860当前块的帧内预测模式与其余帧内预测模式相同。
换句话讲,在解码阶段,接收表5中所描述的码字,并且基于接收到的码字可以对当前块的帧内预测模式进行解码。
在操作S870可以改变分配给rem_intra_pred_mode的码字。
在解码阶段,以与编码阶段相同的方式,可以将其余帧内预测模式分配为新的码字。可以将当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较。可以确定当前块的帧内预测模式是否大于第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式。如果确定第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式中的一个大于当前块的预测模式,则当前块的帧内预测模式与码字之间的映射关系可以改变。换句话讲,基于其余帧内预测模式(rem_intra_pred_mode)所计算出的当前块的帧内预测模式可以与作为将其余帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式进行比较的结果而计算出的值相对应。
在根据本发明的实施方式的确定帧内预测模式信息的方法中,如果采用64×64尺寸的变换块并且如图6所示映射当前块的帧内预测模式和码字,则在不采用确定当前块的帧内预测模式与第一候选帧内预测模式和第二候选帧内预测模式是否相同的处理的情况下可以用固定的2个比特表示当前块的帧内预测模式。
换句话讲,根据本发明的实施方式,指示当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式中的一个是否相同的信息可以被解码。
如果当前块的帧内预测模式与第一候选帧内预测模式、第二候选帧内预测模式和第三候选帧内预测模式中的一个相同,则可以推断出与当前块的帧内预测模式相同的候选帧内预测模式,并且可以基于相同的候选帧内预测模式执行关于当前块的帧内预测。
同时,在图8的描述中,如果prev_intra_pred_flag为1,则其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同并且执行操作S810。如果prev_intra_pred_flag为0,则其指示当前块的帧内预测模式与第一候选帧内预测模式和第二候选帧内预测模式不同并且执行操作S840。
然而,仅为了方便描述而确定在本发明的示例性实施方式中描述的标记的指示,因此,相应标记的逻辑值或由该标记所指示的值不限于特定值。例如,prev_intra_pred_flag0可以指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同,并且prev_intra_pred_flag1可以指示当前块的帧内预测模式与第一候选帧内预测模式和第二候选帧内预测模式不同。类似地,如上所述,可以以如下方式进行配置:如果rem_flag为1,则当前块的帧内预测模式可以与其余帧内预测模式相同;如果rem_flag为0,则当前块的帧内预测模式可以与第三候选帧内预测模式相同;如果rem_flag为0,则当前块的帧内预测模式可以与其余帧内预测模式相同;如果rem_flag为1,则当前块的帧内预测模式可以与第三候选帧内预测模式相同。如果标记值改变,则在各步骤的标记可以关于在相应的步骤要被识别的信息指示将什么应用于当前块。
图9至图13是例示根据本发明的另一个实施方式的针对利用多个候选帧内预测模式确定候选帧内预测模式的方法使用3个或4个候选帧内预测模式的情况的流程图。
在描述下面将描述的流程图的预定确定处理中,为了方便描述以随机顺序确定将要描述的序贯过程;因此,除非脱离了本发明的范围,否则可以使用与下面描述的处理顺序不同的顺序的确定处理以确定候选帧内预测模式。
图9是例示根据本发明的实施方式的从相邻块配置可用的候选帧内预测模式的方法的流程图。
参照图9,在S900确定第一相邻块的帧内预测模式和第二相邻块的帧内预测模式是否可用。
在第一相邻块的帧内预测模式和第二相邻块的帧内预测模式可用并且可以针对各相邻块推断帧内预测模式的情况下,在S910确定第一相邻块的帧内预测模式和第二相邻块的帧内预测模式是否彼此相同。
在第一相邻块的帧内预测模式和第二相邻块的帧内预测模式可用并且第一相邻块的帧内预测模式和第二相邻块的帧内预测模式彼此相同的情况下,在S920将该相同的帧内预测模式推断为第一候选帧内预测模式。
在S930确定第一相邻块的帧内预测模式是否小于第二相邻块的帧内预测模式。
在第一相邻块的帧内预测模式大于第二相邻块的帧内预测模式的情况下,在S940将第二相邻块的帧内预测模式推断为第一候选帧内预测模式,而将第一相邻块的帧内预测模式推断为第二候选帧内预测模式。
在第一相邻块的帧内预测模式小于第二相邻块的帧内预测模式的情况下,在S950将第一相邻块的帧内预测模式推断为第一候选帧内预测模式,而将第二相邻块的帧内预测模式推断为第二候选帧内预测模式。
在S955确定仅第一相邻块的帧内预测模式是可用的;在仅第一相邻块的帧内预测模式可用的情况下,在S960、S980将第一相邻块的帧内预测模式推断为第一候选帧内预测模式。
在S965确定仅第二相邻块的帧内预测模式是可用的;在仅第二相邻块的帧内预测模式可用的情况下,在S970、S980将第二相邻块的帧内预测模式推断为第一候选帧内预测模式。
在第一相邻块的帧内预测模式和第二相邻块的帧内预测模式都不可用的情况下,在S975、S985将平面模式推断为第一候选帧内预测模式,而将DC模式推断为第二候选帧内预测模式。
图10是例示根据本发明的另一个实施方式的当使用3个候选帧内预测模式并且从相邻块推断第一候选帧内预测模式时推断候选帧内预测模式的方法的流程图。
参照图10,在S1000确定第一候选帧内预测模式是否为平面模式。
如果第一候选帧内预测模式是平面模式,则在S1010将第二候选帧内预测模式推断为DC模式,而将第三候选帧内预测模式推断为垂直模式。
如果第一候选帧内预测模式不是平面模式,则在S1020确定第一候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式是DC模式,则在S1030将第二候选帧内预测模式推断为平面模式而将第三候选帧内预测模式推断为垂直模式。
如果第一候选帧内预测模式不是DC模式,在在S1040将第二候选帧内预测模式推断为平面模式而将第三候选帧内预测模式推断为DC模式。
图11是例示根据本发明的另一个实施方式的当使用3个候选帧内预测模式并且从相邻块推断第一候选帧内预测模式和第二候选帧内预测模式时的推断候选帧内预测模式的方法的流程图。
在S1100确定第一候选帧内预测模式是否为平面模式。
如果第一候选帧内预测模式是平面模式,则在S1110确定第二候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式是平面模式并且第二候选帧内预测模式是DC模式,则在S1120将第三候选帧内预测模式推断为垂直模式。
如果第一候选帧内预测模式是平面模式而第二候选帧内预测模式不是DC模式,则在S1130将第二候选帧内预测模式推断为DC模式。
如果第一候选帧内预测模式不是平面模式,则在S1140将第三候选帧内预测模式推断为平面模式。
图12是例示根据本发明的另一个实施方式的当使用4个候选帧内预测模式并且从相邻块配置第一候选帧内预测模式时的配置候选帧内预测模式的方法的流程图。
在S1200确定第一候选帧内预测模式是否为平面模式。
如果第一候选帧内预测模式是平面模式,则在S1210将第二候选帧内预测模式推断为DC模式;将第三候选帧内预测模式推断为垂直模式;以及将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式不是平面模式,则在S1220确定第一候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式是DC模式,则在S1230将第二候选帧内预测模式推断为平面模式;将第三候选帧内预测模式推断为垂直模式;以及将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式不是DC模式,则在S1240确定第一候选帧内预测模式是否为垂直模式。
如果第一候选帧内预测模式是垂直模式,则在S1250将第二候选帧内预测模式推断为平面模式;将第三候选帧内预测模式推断为DC模式;以及将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式不是垂直模式,则在S1260将第二候选帧内预测模式推断为平面模式;将第三候选帧内预测模式推断为DC模式;以及将第四候选帧内预测模式推断为垂直模式。
图13是例示根据本发明的另一个实施方式的当使用4个候选帧内预测模式并且从相邻块配置第一候选帧内预测模式和第二候选帧内预测模式时的配置候选帧内预测模式的方法的流程图。
参照图13,在S1300确定第一候选帧内预测模式是否为平面模式。
如果第一候选帧内预测模式是平面模式,则在S1305确定第二候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式是平面模式,并且第二候选帧内预测模式是DC模式,则在S1310将第三候选帧内预测模式推断为垂直模式以及将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式是平面模式,而第二候选帧内预测模式不是DC模式,则在S1315确定第二候选帧内预测模式是否为垂直模式。
如果第一候选帧内预测模式是平面模式,并且第二候选帧内预测模式是垂直模式,则在S1320将第三候选帧内预测模式推断为DC模式并将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式是平面模式,并且第二候选帧内预测模式是垂直模式而不是DC模式,则在S1325将第三候选帧内预测模式推断为DC模式并将第四候选帧内预测模式推断为垂直模式。
如果第一候选帧内预测模式不是平面模式,则在S1350确定第一候选帧内预测模式是否为垂直模式。
如果第一候选帧内预测模式是垂直模式,则在S1355确定第二候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式是垂直模式,并且第二候选帧内预测模式为DC模式,则在S1360将第三候选帧内预测模式推断为平面模式并将第四候选帧内预测模式推断为水平模式。
如果第一候选帧内预测模式是垂直模式,而第二候选帧内预测模式不是DC模式,则在S1380将第三候选帧内预测模式配置为平面模式并将第四候选帧内预测模式配置为DC模式。
在S1370确定第一候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式不是DC模式,则在S1375确定第二候选帧内预测模式是否为DC模式。
如果第一候选帧内预测模式和第二候选帧内预测模式不是DC模式,则在S1380将第三候选帧内预测模式推断为平面模式并将第四候选帧内预测模式推断为DC模式。
如果第一候选帧内预测模式为DC模式,以及如果尽管第一候选帧内预测模式不是DC模式但第二候选帧内预测模式为DC模式,则在S1390将第三候选帧内预测模式推断为平面模式并将第四候选帧内预测模式推断为垂直模式。
同时,如表7至表9的示例中所示,在利用4个候选帧内预测模式的情况下,也可以以与上述相同的方式对当前帧内预测模式进行解码。
图14是例示根据本发明的另一实施方式的对当前块的帧内预测模式进行解码的方法的流程图。
图14的实施方式涉及采用4个候选帧内预测模式的情况,图14例示了表8中描述的当前块的帧内预测模式和码字之间的映射关系的实施方式。
参照图14,确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同。
为了确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同,可以使用prev_intra_pred_flag,该prev_intra_pred_flag是指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的预定标记信息。在prev_intra_pred_flag为1的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同;在prev_intra_pred_flag为0的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式不同。
在prev_intra_pred_flag为1的情况下,通过利用指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的索引mpm_idx,可以推断出当前块的帧内预测模式。
检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第一候选帧内预测模式,而如果mpm_idx为1,则当前块的帧内预测模式可以被推断为第二候选帧内预测模式。
在prev_intra_pred_flag为0的情况下,确定当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同。
在prev_intra_pred_flag为0的情况下,则可以使用rem_flag,该rem_flag是指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的预定标记信息。作为一个实施方式,在rem_flag为0的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式或第四候选帧内预测模式相同,而在rem_flag为1的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式或第四候选帧内预测模式不相同。
在rem_flag为0的情况下,通过利用指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的索引mpm_idx,可以表示当前块的帧内预测模式。
检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第三候选帧内预测模式,而如果mpm_idx为1,则当前块的帧内预测模式可以被推断为第四候选帧内预测模式。
在rem_flag为1的情况下,当前块的帧内预测模式可以与其余帧内预测模式相同。
换句话讲,解码器可以接收表3和/或表4中描述的码字;可以对分配给相应码字的当前块的帧内预测模式信息进行解码。
图15是例示根据本发明的附加实施方式的对当前块的帧内预测模式进行解码的方法的流程图。
图15的实施方式还例示当采用4个候选帧内预测模式时对帧内预测模式进行解码的方法。图15公开基于表9中描述的当前块的帧内预测模式和码字之间的映射关系对帧内预测模式进行解码的方法。
参照图15,在S1410确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同。
为了确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同,可以使用prev_intra_pred_flag,该prev_intra_pred_flag是指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的预定标记信息。在prev_intra_pred_flag为1的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同;在prev_intra_pred_flag为0的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式不同。
在prev_intra_pred_flag为1的情况下,通过利用指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的索引mpm_idx,可以推断出当前块的帧内预测模式。
在S1420检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第一候选帧内预测模式,而如果mpm_idx为1,则可以将当前块的帧内预测模式推断为第二候选帧内预测模式。
在prev_intra_pred_flag为0的情况下,在S1430确定当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同。
在prev_intra_pred_flag为0的情况下,则可以使用rem_flag,该rem_flag是指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的预定标记信息。作为一个实施方式,在rem_flag为1的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式或第四候选帧内预测模式相同,而在rem_flag为0的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式和第四候选帧内预测模式不相同。
在rem_flag为1的情况下,通过利用指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的索引mpm_idx,可以表示当前块的帧内预测模式。
在S1440检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第三候选帧内预测模式,而如果mpm_idx为1,则可以将当前块的帧内预测模式推断为第四候选帧内预测模式。
在rem_flag为0的情况下,在S1450当前块的帧内预测模式可以与其余帧内预测模式相同。
换句话讲,解码器可以接收表3和/或表4中描述的码字;可以对分配给相应码字的当前块的帧内预测模式信息进行解码。
可以通过根据表10的实施方式的语法表示以上详细描述的对当前帧内预测模式进行解码的方法。表10与图15中描述的内容有关,表10是关于按信号方式发送对当前帧内预测模式编码所需的语法元素的方法的示例。
<表10>
prev_intra_pred_flag[xO][yO] |
if(prev_intra_pred_flag[xO][yO]) |
mpm_idx[xO][yO] |
else if(rem_flag) |
mpm_idx[xO][yO] |
else |
rem_intra_pred_mode[xO][yO] |
图16是例示根据本发明的又一附加实施方式的对当前帧内预测模式进行解码的方法的流程图。
图16还涉及利用4个候选帧内预测模式描述应用表9中描述的当前块的帧内预测模式和码字之间的映射关系的实施方式的情况。
参照图16,在S1510,确定当前块的帧内预测模式与第一候选帧内预测模式MPM1或第二候选帧内预测模式MPM2是否相同。
为了确定当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同,可以使用prev_intra_pred_flag,该prev_intra_pred_flag为指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的预定标记信息。在prev_intra_pred_flag为1的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式相同;在prev_intra_pred_flag为0的情况下,其指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式不同。
在prev_intra_pred_flag为1的情况下,通过利用指示当前块的帧内预测模式与第一候选帧内预测模式或第二候选帧内预测模式是否相同的索引mpm_idx,可以推断当前块的帧内预测模式。
在S1520,检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第一候选帧内预测模式,而如果mpm_idx为1,则可以当前块的帧内预测模式推断为第二候选帧内预测模式。
在prev_intra_pred_flag为0的情况下,在S1530确定当前块的帧内预测模式与第三候选帧内预测模式MPM3或第四候选帧内预测模式MPM4是否相同。
如果prev_intra_pred_flag为0,则可以使用mprm_pred_flag,该mprm_pred_flag是指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的预定标记信息。作为一个实施方式,在mprm_pred_flag为1的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式或第四候选帧内预测模式相同,而在mprm_pred_flag为0的情况下,当前块的帧内预测模式可以与第三候选帧内预测模式和第四候选帧内预测模式不相同。
在mprm_pred_flag为1的情况下,通过利用指示当前块的帧内预测模式与第三候选帧内预测模式或第四候选帧内预测模式是否相同的索引mpm_idx,可以表示当前块的帧内预测模式。
在S1540检查mpm_idx,如果mpm_idx为0,则可以将当前块的帧内预测模式确定为第三候选帧内预测模式,而如果mpm_idx为1,则可以将当前块的帧内预测模式推断为第四候选帧内预测模式。
在mprm_pred_flag为0的情况下,在S1550当前块的帧内预测模式可以与其余帧内预测模式相同。
换句话讲,解码器可以接收表3和/或表4中描述的码字;可以对分配给相应码字的当前块的帧内预测模式信息进行解码。
可以通过根据表11的实施方式的语法表示以上详细描述的对当前帧内预测模式进行解码的方法。可以根据实施方式以各种方式配置语法元素。表11例示了对关于当前块的亮度分量的预测模式进行解码的示例。在该情况下,与表10的示例相比,表11的示例例示了可以用prev_intra_luma_pred_flag代替prev_intra_pred_flag,而可以用rem_intra_luma_pred_mode代替rem_intra_pred_mode;然而,根据与表10中示出的语法结构相同的语法结构来转换语法元素。因此,从表10和表11的示例可以注意到,彼此相对应的语法元素在根据本发明的对当前帧内预测模式进行编码的方法中执行相同或类似的功能。
<表11>
prey_intra_luma_pred_flag[xO][yO] |
if(prev_intra_luma_pred_flag[xC][yO]) |
mpm_idx[xO][yO] |
else if(mprm_pred_flag[xO][yO]) |
mprm_idx[xO][yO] |
else |
rem_intra_lama_pred_mode[xO][yO] |
对于本领域技术人员而言将明显的是,在不脱离本发明的精神或范围的情况下,可以在本发明中进行各种修改和变型。因此,本发明意在覆盖落入所附权利要求及其等同物的范围内的本发明的修改和变型。