CN117201809A - 图像编码/解码方法和装置以及存储比特流的记录介质 - Google Patents

图像编码/解码方法和装置以及存储比特流的记录介质 Download PDF

Info

Publication number
CN117201809A
CN117201809A CN202311313785.3A CN202311313785A CN117201809A CN 117201809 A CN117201809 A CN 117201809A CN 202311313785 A CN202311313785 A CN 202311313785A CN 117201809 A CN117201809 A CN 117201809A
Authority
CN
China
Prior art keywords
block
intra prediction
current block
mpm
prediction mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311313785.3A
Other languages
English (en)
Inventor
高玄硕
姜晶媛
李镇浩
李河贤
林成昶
全东山
赵承眩
金晖容
崔振秀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of CN117201809A publication Critical patent/CN117201809A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

本发明涉及一种图像编码/解码方法和装置以及存储比特流的记录介质。根据本发明的一种用于针对当前块执行帧内帧预测的图像解码方法可包括以下步骤:对第一信息进行解码,其中,第一信息指示用于对当前块的残差块进行预测的残差信号预测是否被执行;当第一信息指示第一值时,执行所述残差信号预测。

Description

图像编码/解码方法和装置以及存储比特流的记录介质
本申请是申请日为2017年07月31日,申请号为“201780061056.X”,标题为“图像编码/解码方法和装置以及存储比特流的记录介质”的发明专利申请的分案申请。
技术领域
本发明涉及一种用于对图像进行编码/解码的方法和设备。具体地讲,本发明涉及一种用于使用帧内预测对图像进行编码/解码的方法和设备以及存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
背景技术
近来,对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求在各个应用领域已获得增长。然而,与传统的图像数据相比,更高分辨率和质量的图像数据的数据量有所增加。因此,当通过使用诸如传统的有线宽带网络和无线宽带网络的介质发送图像数据时,或者当通过使用传统的存储介质存储图像数据时,发送和存储的成本增加。为了解决这些随着图像数据的分辨率和质量的提高而出现的问题,对于更高分辨率和更高质量的图像,需要高效图像编码/解码技术。
图像压缩技术包括各种技术,包括:从当前画面的先前画面或后续画面预测包括在当前画面中的像素值的帧间预测技术;通过使用当前画面中的像素信息来预测包括在当前画面中的像素值的帧内预测技术;用于压缩残差信号的能量的变换和量化技术;向高出现频率的值分配短码并且向低出现频率的值分配长码的熵编码技术;等等。通过使用这样的图像压缩技术,图像数据可被有效压缩,并且可被发送或存储。
发明内容
技术问题
本发明的目的在于提供一种用于对图像进行编码和解码以提高压缩效率的方法和设备以及存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
本发明的另一目的在于提供一种用于使用帧内预测对图像进行编码和解码以提高压缩效率的方法和设备以及存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
本发明的另一目的在于提供一种用于通过使用残差信号预测执行帧内预测对图像进行编码和解码的方法和设备以及存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
解决方案
根据本发明的一种用于针对当前块执行帧内预测的图像解码方法可包括:对第一信息进行解码,其中,第一信息指示用于对当前块的残差块进行预测的残差信号预测是否被执行;如果第一信息指示第一值,则执行所述残差信号预测。
在本发明的图像解码方法中,可基于先前解码的重建块来执行所述残差信号预测。
本发明的图像解码方法还可包括:对帧内位移矢量(IDV)进行解码,其中,所述先前解码的重建块可由解码的IDV指定。
本发明的图像解码方法还可包括:对用于所述残差信号预测的帧内预测模式进行解码;并基于解码的帧内预测模式产生所述重建块的预测块。
本发明的图像解码方法还可包括:基于所述重建块以及所述重建块的预测块产生所述重建块的残差块,其中,所述重建块的残差块可以是当前块的残差块的预测块。
本发明的图像解码方法还可包括:对当前块的二阶残差块进行解码;并基于当前块的残差块的预测块以及所述二阶残差块来产生当前块的残差块。
在本发明的图像解码方法中,如果关于IDV的信息未被包括在比特流中,则可通过使用预定搜索方法选择在预定搜索范围中包括的多个IDV之一来执行对IDV的解码。
在本发明的图像解码方法中,所述预定搜索方法可以是与在图像编码方法中使用的搜索方法相同的方法。
根据本发明的一种包括用于针对当前块执行帧内预测的帧内预测器的图像解码设备可包括:帧内预测器,被配置用于:对第一信息进行解码,其中,第一信息指示用于对当前块的残差块进行预测的残差信号预测是否被执行;如果第一信息指示第一值,则执行所述残差信号预测。
根据本发明的一种用于针对当前块执行帧内预测的图像编码方法可包括:执行用于对当前块的残差块进行预测的残差信号预测;并对指示所述残差信号预测是否被执行的第一信息进行编码。
在本发明的图像编码方法中,可基于先前解码的重建块执行所述残差信号预测。
本发明的图像编码方法还可包括:对指定所述先前解码的重建块的帧内位移矢量(IDV)进行编码。
本发明的图像编码方法还可包括:确定用于所述残差信号预测的帧内预测模式;基于确定的帧内预测模式来产生所述重建块的预测块;并对确定的帧内预测模式进行编码。
在本发明的图像编码方法中,所述预定搜索方法可包括:将当前块的残差块的代价函数值与当前块的二阶残差块的代价函数值进行比较。
根据本发明的一种包括用于针对当前块执行帧内预测的帧内预测器的图像编码设备可包括:帧内预测器,被配置为:执行用于对当前块的残差块进行预测的残差信号预测,并且对指示所述残差信号预测是否被执行的第一信息进行编码。
根据本发明的一种存储由用于针对当前块执行帧内预测的图像编码方法产生的比特流的记录介质可存储由图像编码方法产生的比特流,其中,所述图像编码方法包括:执行用于对当前块的残差块进行预测的残差信号预测;并对指示所述残差信号预测是否被执行的第一信息进行编码。
有益效果
根据本发明,可提供一种提高压缩效率的图像编码/解码方法和设备以及一种存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
并且,根据本发明,可提供一种提高压缩效率的使用帧内预测的图像编码/解码方法和设备以及一种存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
并且,根据本发明,可提供一种使用残差信号预测执行帧内预测的图像编码/解码方法和设备以及一种存储通过本发明的图像编码方法/设备产生的比特流的记录介质。
附图说明
图1是示出根据本发明的实施例的编码设备的配置的框图。
图2是示出根据本发明的实施例的解码设备的配置的框图。
图3是示意性地示出当对图像进行编码和解码时的图像的分区结构的示图。
图4是示出可被包括在编码单元(CU)中的预测单元(PU)的形式的示图。
图5是示出可被包括在编码单元(CU)中的变换单元(TU)的形式的示图。
图6是用于解释帧内预测的处理的实施例的示图。
图7是用于解释帧间预测的处理的实施例的示图。
图8是用于解释根据帧内预测模式的变换集的示图。
图9是用于解释变换的处理的示图。
图10是用于解释对量化的变换系数进行扫描的示图。
图11是用于解释块分区的示图。
图12是描绘根据本发明的实施例的用于对当前块执行帧内预测的方法的示图。
图13是描述用于从邻近块推导当前块的帧内预测模式的方法的示图。
图14是描绘当前块、上层块、和邻近块的示例性示图。
图15是示出颜色分量的组成比为4:2:0的亮度块和色度块的示例性示图。
图16是描绘推导当前块被划分成的一个或更多个子块中的每个子块的帧内预测模式的实施例的示图。
图17是描绘将当前块划分为子块的实施例的示图。
图18是描绘将当前块划分为子块的另一实施例的示图。
图19是描绘将当前块划分为子块的另一实施例的示图。
图20是描绘将当前块划分为子块的另一实施例的示图。
图21是描绘使用种子点帧内预测模式推导当前块的帧内预测模式的实施例的示图。
图22是描绘制作包括两个SPIPM的SPIPM列表的实施例的示图。
图23是示出制作包括三个SPIPM的SPIPM列表的实施例的示例性示图。
图24是示出制作包括四个SPIPM的SPIPM列表的实施例的示例性示图。
图25是示出在当前块的大小是16×16的情况下的子块大小的示例性示图。
图26是描绘使用确定的IPDF分配帧内预测模式的实施例的示图。
图27是示出与当前块邻近的重建块的示例性示图。
图28是描绘使用邻近重建块推导帧内预测模式的实施例的示图。
图29是描绘基于子块推导帧内预测模式的实施例的示图。
图30是描绘基于子块推导帧内预测模式的另一实施例的示图。
图31是示出包括帧内预测模式信息的语法结构的示例性示图。
图32是描绘可用于对当前块进行帧内预测的邻近重建样点线的示例性示图。
图33是描绘针对当前块中包括的子块构建参考样点的实施例的示图。
图34是描绘用于使用可用重建样点替换不可用重建样点的方法的示图。
图35是示出针对块大小的用于确定是否应用滤波的示例性阈值的示图。
图36是示出是否根据块大小和/或帧内预测模式执行滤波的示例性示图。
图37是示出根据当前块的形状的帧内预测的示例性示图。
图38是描绘针对DC-模式帧内预测的滤波的示图。
图39是描绘平面(Planar)模式帧内预测的示图。
图40是描绘从Pref产生1D参考样点阵列p1,ref的实施例的示图。
图41是描绘根据预测块中的样点的位置使用不同角度处的参考样点的实施例的示图。
图42是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从右上方的边到左下方的边的方向执行预测的实施例的示图。
图43是示出作为应用图42的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图44是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左上方的边到右下方的边的方向(类型-1)执行预测的实施例的示图。
图45是示出作为应用图44的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图46是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左下方的边到右上方的边的方向执行预测的实施例的示图。
图47是示出作为应用图46的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图48是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左上方的边到右下方的边的方向(类型-2)执行预测的实施例的示图。
图49是示出作为应用图48的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图50是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从上方的边到左下方的边的方向执行预测的实施例的示图。
图51是示出作为应用图50的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图52是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从上方的边到右下方的边的方向执行预测的实施例的示图。
图53是示出作为应用图52的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图54是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从左侧的边到右上方的边的方向执行预测的实施例的示图。
图55是示出作为应用图54的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图56是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从左侧的边到右下方的边的方向执行预测的实施例的示图。
图57是示出作为应用图56的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
图58是用于解释在目标块中以样点为单位使用不同方向模式的另一实施例的示图。
图59是描绘对残差信号进行预测的实施例的示图。
图60是描绘使用二阶残差信号块对残差信号进行预测的示图。
图61是描绘残差信号预测的实施例的示图。
图62a和图62b是描绘在编码器中执行残差信号预测的实施例的示图。
图63是描绘在解码器中执行残差信号预测的实施例的示图。
具体实施方式
可对本发明做出多种修改,并且存在本发明的多种实施例,其中,现在将参照附图提供所述实施例的示例并且将详细描述所述实施例的示例。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同形式或替换形式。相似的参考标号指在各方面相同或相似的功能。在附图中,为了清楚起见,元件的形状和大小可被夸大。在本发明的以下详细描述中,对通过图示的方式示出可对本发明进行实施的具体实施例的附图进行参照。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。应该理解,本公开的各种实施例尽管不同,但不必是相互排他的。例如,在不脱离本公开的精神和范围的情况下,这里描述的与一个实施例关联的特定特征、结构和特性可在其它实施例中被实施。此外,应该理解,在不脱离本公开的精神和范围的情况下,每个公开的实施例内的各个元件的位置或布置可被修改。因此,以下详细描述并不用以限制的含义,本公开的范围经由所附权利要求(在合适的解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
在说明书中使用的术语“第一”、“第二”等可被用于描述各种组件,但这些组件并不被解释为限制于所述术语。所述术语仅被用于将一个组件与另一组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被称为“第二”组件,并且“第二”组件也可被类似地称为“第一”组件。术语“和/或”包括多个项的组合或者是多个项中的任意一项。
将理解的是,在本说明书中,当元件被简单称为“连接到”或“结合到”另一元件而不是“直接连接到”或“直接结合到”另一元件时,它可以“直接连接到”或“直接结合到”另一元件,或者是在其间插入其它元件的情况下连接到或结合到另一元件。相反,应该理解,当元件被称为“直接结合”或“直接连接”到另一元件时,不存在中间元件。
此外,在本发明的实施例中示出的组成部件被独立示出,以便呈现彼此不同的特性功能。因此,这并不意味着每个组成部件以单独的硬件或软件的组成单元被组成。换句话说,为了方便,每个组成部件包括枚举的组成部件中的每一个。因此,每个组成部件中的至少两个组成部件可被组合形成一个组成部件,或者一个组成部件可被划分为多个组成部件以执行每个功能。在没有脱离本发明的本质的情况下,每个组成部件被组合的实施例以及一个组成部件被划分的实施例也被包括在本发明的范围中。
在本说明书中使用的术语仅用于描述具体实施例,而不旨在限制本发明。以单数使用的表达包括复数表达,除非它在上下文中具有明显不同的含义。在本说明书中,将理解,诸如“包括...的”、“具有...的”等的术语旨在指明说明书中所公开的特征、数量、步骤、行为、元件、部件、或其组合的存在,而并不旨在排除一个或更多个其它特征、数量、步骤、行为、元件、部件、或其组合可能存在或者可能被添加的可能性。换句话说,当特定元件被称为“被包括”时,除相应元件以外的元件并不被排除,而是,另外的元件可被包括在本发明的实施例中或者是本发明的范围中。
此外,一些组成元件可能不是执行本发明的必要功能的不可缺的组成元件,而是仅提升其性能的可选组成元件。可通过仅包括用于实施本发明的实质的不可缺的组成部件而排除在提升性能时使用的组成部件来实施本发明。仅包括所述不可缺的组成部件而排除在仅提升性能时使用的可选组成部件的结构也被包括在本发明的范围中。
在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知功能或结构,这是因为它们会不必要地模糊对本发明的理解。附图中的相同的组成元件通过相同的参考标号来表示,并且对相同元件的重复描述将被省略。
此外,在下文中,图像可意为构成视频的画面,或者可意为视频本身。例如,“对图像进行编码或解码或者进行两者”可意为“对视频进行编码或解码或者进行两者”,并且可意为“对视频的多个图像之中的一个图像进行编码或解码或者进行两者”。这里,画面和图像可具有相同的含义。
术语描述
编码器:可意为执行编码的设备。
解码器:可意为执行解码的设备。
解析:可意为通过执行熵解码来确定语法元素的值,或者可意为熵解码本身。
块:可意为M×N矩阵的样点。这里,M和N是正整数,并且块可意为二维形式的样点矩阵。
样点:是块的基本单元,并且可指示依据比特深度(Bd)而范围为0至2Bd–1的值。样点在本发明中可意为像素。
单元:可意为对图像进行编码和解码的单元。在对图像进行编码和解码时,单元可以是通过对一个图像进行分区而产生的区域。此外,单元可意为在编码或解码期间当一个图像被分区为多个子划分单元时的子划分单元。在对图像进行编码和解码时,可执行针对每个单元的预定处理。一个单元可被分区为大小比该单元的大小更小的子单元。依据功能,单元可意为块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、亮度分量块的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种大小和形状,具体而言,单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形、五边形等。此外,单元信息可包括单元类型(指示编码单元、预测单元、变换单元等)、单元大小、单元深度、对单元进行编码和解码的顺序等中的至少一个。
重建邻近单元:可意为在空间上/时间上被在先编码或解码的重建单元,并且重建单元与编码/解码目标单元相邻。这里,重建邻近单元可意为重建邻近块。
邻近块:可意为与编码/解码目标块相邻的块。与编码/解码目标块相邻的块可意为具有与编码/解码目标块接触的边界的块。邻近块可意为位于编码/解码目标块的相邻顶点的块。邻近块可意为重建邻近块。
单元深度:可意为单元的被分区程度。在树结构中,根节点可以是最高节点,叶节点可以是最低节点。
符号:可意为编码/解码目标单元的语法元素、编码参数、变换系数的值等。
参数集:可意为比特流的结构中的头信息。参数集可包括视频参数集、序列参数集、画面参数集或自适应参数集中的至少一个参数集。此外,参数集可意为条带头信息和并行块(tile)头信息等。
比特流:可意为包括编码图像信息的比特串。
预测单元:可意为当执行帧间预测或帧内预测以及针对预测的补偿时的基本单元。一个预测单元可被分区为多个分区。在这种情况下,多个分区中的每个分区可以是在执行预测和补偿时的基本单元,并且从预测单元分区获得的每个分区可以是预测单元。此外,一个预测单元可以被分区为多个小预测单元。预测单元可具有各种大小和形状,并且具体来说,预测单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形和五边形等。
预测单元分区:可意为分区出的预测单元的形状。
参考画面列表:可意为包括至少一个参考画面的列表,其中,所述至少一个参考画面被用于帧间预测或运动补偿。参考画面列表的类型可以是List Combined(LC)、List 0(L0)、List 1(L1)、List 2(L2)、List 3(L3)等。至少一个参考画面列表可被用于帧间预测。
帧间预测指示符:可意为以下之一:帧间预测情况下的编码/解码目标块的帧间预测方向(单向预测、双向预测等)、用于通过所述编码/解码目标块产生预测块的参考画面的数量、以及用于通过所述编码/解码目标块执行帧间预测或运动补偿的参考块的数量。
参考画面索引:可意为参考画面列表中的特定参考画面的索引。
参考画面:可意为特定单元为了帧间预测或运动补偿所参考的画面。参考图像可被称为参考画面。
运动矢量:是用于帧间预测或运动补偿的二维矢量,并且可意为编码/解码目标画面与参考画面之间的偏移。例如,(mvX,mvY)可指示运动矢量,mvX可指示水平分量,mvY可指示垂直分量。
运动矢量候选:可意为当预测运动矢量时成为预测候选的单元,或者可意为该单元的运动矢量。
运动矢量候选列表:可意为通过使用运动矢量候选而配置的列表。
运动矢量候选索引:可意为指示运动矢量候选列表中的运动矢量候选的指示符。运动矢量候选索引可被称为运动矢量预测因子的索引。
运动信息:可意为运动矢量、参考画面索引和帧间预测指示符,以及包括参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引等中的至少一个的信息。
合并候选列表:可意为通过使用合并候选而配置的列表。
合并候选:可包括空间合并候选、时间合并候选、组合合并候选、组合双向预测合并候选、零合并候选等。合并候选可包括诸如预测类型信息的运动信息、用于每个列表的参考画面索引、运动矢量等。
合并索引:可意为指示合并候选列表中的合并候选的信息。此外,合并索引可指示与当前块在空间/时间上相邻的重建块之中的推导合并候选的块。此外,合并索引可指示合并候选的多条运动信息中的至少一条。
变换单元:可意为当对残差信号执行与变换、逆变换、量化、反量化以及变换系数编码/解码类似的编码/解码时的基本单元。一个变换单元可被分区为多个小变换单元。变换单元可具有各种大小和形状。具体而言,变换单元的形状可以是二维几何图形,诸如矩形、正方形、梯形、三角形、五边形等。
缩放:可意为将一因子与变换系数等级相乘的处理,其结果是,变换系数可被产生。缩放还可被称为反量化。
量化参数:可意为在量化和反量化期间在对变换系数等级进行缩放时使用的值。这里,量化参数可以是被映射到量化的步长大小的值。
变量增量(Delta)量化参数:可意为编码/解码目标单元的量化参数与预测出的量化参数之间的差值。
扫描:可意为对块或矩阵内的系数顺序进行排序的方法。例如,将二维矩阵排序为一维矩阵的操作可被称为扫描,并且将一维矩阵排序为二维矩阵的操作可被称为扫描或逆扫描。
变换系数:可意为在执行变换之后产生的系数值。在本发明中,量化的变换系数等级(即被应用了量化的变换系数)可被称为变换系数。
非零变换系数:可意为值不为0的变换系数,或者可意为值不为0的变换系数等级。
量化矩阵:可意为在量化和反量化中使用以便提高图像的主体质量(subjectquality)或对象质量(object quality)的矩阵。量化矩阵可被称为缩放列表。
量化矩阵系数:可意为量化矩阵的每个元素。量化矩阵系数可被称为矩阵系数。
默认矩阵:可意为在编码器和解码器中被预先定义的预定量化矩阵。
非默认矩阵:可意为在编码器和解码器中未被预先定义的情况下由用户发送/接收的量化矩阵。
编码树单元:可由一个亮度分量(Y)编码树单元以及相关的两个色度分量(Cb,Cr)编码树单元构成。每个编码树单元可通过使用至少一种分区方法(诸如四叉树、二叉树等)被分区,以构成诸如编码单元、预测单元、变换单元等的子单元。编码树单元可被用作用于指示像素块(即在图像的解码/编码处理中的处理单元,如输入图像的分区)的术语。
编码树块:可用作用于指示Y编码树单元、Cb编码树单元和Cr编码树单元之一的术语。
图1是示出根据本发明的实施例的编码设备的配置的框图。
编码设备100可以是视频编码设备或图像编码设备。视频可包括一个或更多个图像。编码设备100可按照时间顺序对视频的一个或更多个图像进行编码。
参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180以及参考画面缓冲器190。
编码设备100可按照帧内模式或帧间模式或者是帧内模式和帧间模式两者来对输入画面进行编码。此外,编码设备100可通过对输入画面进行编码来产生比特流,并可输出产生的比特流。当帧内模式被用作预测模式时,切换器115可切换到帧内。当帧间模式被用作预测模式时,切换器115可切换到帧间。这里,帧内模式可被称为帧内预测模式,帧间模式可被称为帧间预测模式。编码设备100可产生输入画面的输入块的预测块。此外,在产生预测块之后,编码设备100可对输入块和预测块之间的残差进行编码。输入画面可被称为作为当前编码的目标的当前图像。输入块可被称为当前块或者可被称为作为当前编码的目标的编码目标块。
当预测模式是帧内模式时,帧内预测单元120可使用与当前块相邻的先前编码块的像素值作为参考像素。帧内预测单元120可通过使用参考像素来执行空间预测,并可通过使用空间预测来产生输入块的预测样点。这里,帧内预测可意为帧内帧预测。
当预测模式是帧间模式时,运动预测单元111可在运动预测处理中从参考画面搜索与输入块最优匹配的区域,并可通过使用搜索到的区域推导运动矢量。参考画面可被存储在参考画面缓冲器190中。
运动补偿单元112可通过使用运动矢量执行运动补偿来产生预测块。这里,运动矢量可以是用于帧间预测的二维矢量。此外,运动矢量可指示当前画面和参考画面之间的偏移。这里,帧间预测可意为帧间帧预测。
当运动矢量的值不为整数时,运动预测单元111和运动补偿单元112可通过对参考画面中的部分区域应用插值滤波器来产生预测块。为了基于编码单元执行帧间预测或运动补偿,可在跳过模式、合并模式、AMVP模式和当前画面参考模式之中确定编码单元中的预测单元的运动预测和补偿方法使用哪种方法。可根据每种模式执行帧间预测或运动补偿。这里,当前画面参考模式可意为使用具有编码目标块的当前画面的预先重建的区域的预测模式。为了指明所述预先重建的区域,可定义针对当前画面参考模式的运动矢量。是否按照当前画面参考模式对编码目标块进行编码可通过使用编码目标块的参考画面索引而被编码。
减法器125可通过使用输入块和预测块之间的残差来产生残差块。残差块可被称为残差信号。
变换单元130可通过对残差块进行变换来产生变换系数,并可输出变换系数。这里,变换系数可以是通过对残差块进行变换而产生的系数值。在变换跳过模式中,变换单元130可跳过对残差块的变换。
可通过对变换系数应用量化来产生量化的变换系数等级。在下文中,在本发明的实施例中,量化的变换系数等级可被称为变换系数。
量化单元140可通过依据量化参数对变换系数进行量化来产生量化的变换系数等级,并可输出量化的变换系数等级。这里,量化单元140可通过使用量化矩阵来对变换系数进行量化。
熵编码单元150可通过根据概率分布对由量化单元140计算出的值或对在编码处理中计算出的编码参数值等执行熵编码来产生比特流,并可输出产生的比特流。熵编码单元150可对用于对图像进行解码的信息执行熵编码,并对图像的像素的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素等。
当熵编码被应用时,通过对具有高出现概率的符号分配少量比特并对具有低出现概率的符号分配大量比特来表示符号,从而减少对目标符号进行编码的比特流的大小。因此,通过熵编码,图像编码的压缩性能可提高。对于熵编码,熵编码单元150可使用诸如指数哥伦布、上下文自适应变长编码(CAVLC)以及上下文自适应二进制算术编码(CABAC)的编码方法。例如,熵编码单元150可通过使用变长编码/码(VLC)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法以及目标符号/二进制位的概率模型,并且随后可通过使用推导出的二值化方法或推导出的概率模型来执行算术编码。
为了对变换系数等级进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。例如,通过用右上扫描来扫描块的系数,二维形式的系数可被改变为一维矢量形式。根据变换单元的大小以及帧内预测模式,可使用用于沿列方向扫描二维块形式的系数的垂直方向扫描以及用于沿行方向扫描二维块形式的系数的水平方向扫描,而不是使用右上扫描。也就是说,依据变换单元的大小以及帧内预测模式,可确定右上扫描、垂直方向扫描和水平方向扫描之中的哪种扫描方法将被使用。
编码参数可包括由编码器编码并被发送到解码器的诸如语法元素的信息,并可包括可在编码或解码处理中推导的信息。编码参数可意为对图像进行编码或解码所必要的信息。例如,编码参数可包括以下项中的至少一个值或组合形式:块大小、块深度、块分区信息、单元大小、单元深度、单元分区信息、四叉树形式的分区标志、二叉树形式的分区标志、二叉树形式的分区方向、帧内预测模式、帧内预测方向、参考样点滤波方法、预测块边界滤波方法、滤波器抽头、滤波器系数、帧间预测模式、运动信息、运动矢量、参考画面索引、帧间预测方向、帧间预测指示符、参考画面列表、运动矢量预测因子、运动矢量候选列表、关于运动合并模式是否被使用的信息、运动合并候选、运动合并候选列表、关于跳过模式是否被使用的信息、插值滤波器类型、运动矢量大小、运动矢量表示的精确度、变换类型、变换大小、关于附加(二次)变换是否被使用的信息、关于残差信号是否存在的信息、编码块样式、编码块标志、量化参数、量化矩阵、环路内的滤波器信息、关于滤波器是否在环路内被应用的信息、环路内的滤波器系数、二值化/反二值化方法、上下文模型、上下文二进制位、旁通二进制位、变换系数、变换系数等级、变换系数等级扫描方法、图像显示/输出顺序、条带识别信息、条带类型、条带分区信息、并行块识别信息、并行块类型、并行块分区信息、画面类型、比特深度、以及亮度信号或色度信号的信息。
残差信号可意为原始信号与预测信号之间的差。可选择地,残差信号可以是通过对原始信号和预测信号之间的差进行变换而产生的信号。可选择地,残差信号可以是通过对原始信号和预测信号之间的差进行变换和量化而产生的信号。残差块可以是块单元的残差信号。
当编码设备100通过使用帧间预测执行编码时。编码的当前画面可被用作针对将被随后处理的另一图像的参考画面。因此,编码设备100可对编码的当前画面进行解码,并可将解码的图像存储为参考画面。为了执行解码,可对编码的当前画面执行反量化和逆变换。
量化的系数可通过反量化单元160被反量化,并可通过逆变换单元170被逆变换。可由加法器175将经过反量化和逆变换的系数与预测块相加,由此可产生重建块。
重建块可通过滤波器单元180。滤波器单元180可向重建块或重建画面应用去块滤波器、样点自适应偏移(SAO)以及自适应环路滤波器(ALF)中的至少一个。滤波器单元180可被称为环路滤波器。
去块滤波器可去除在块之间的边界处出现的块失真。为了确定去块滤波器是否被运行,可基于包括在块中的若干行或列中的像素来确定去块滤波器是否被应用于当前块。当去块滤波器被应用于块时,可依据所需的去块滤波器强度来应用强滤波器或弱滤波器。此外,在应用去块滤波器时,可并行处理水平方向滤波和垂直方向滤波。
样点自适应偏移可将最优偏移值添加到像素值以便对编码误差进行补偿。样点自适应偏移可针对每个像素对经过去块滤波的图像和原始画面之间的偏移进行校正。为了对特定画面执行偏移校正,可使用考虑每个像素的边缘信息来应用偏移的方法,或使用以下方法:将图像的像素分区为预定数量的区域,确定将被执行偏移校正的区域,并对所确定区域应用偏移校正。
自适应环路滤波器可基于通过将重建画面与原始画面进行比较而获得的值来执行滤波。图像的像素可被分区为预定组,被应用于每个组的一个滤波器被确定,并且不同的滤波可在每个组被执行。关于自适应环路滤波器是否被应用于亮度信号的信息可针对每个编码单元(CU)被发送。被应用于每个块的自适应环路滤波器的形状和滤波器系数可变化。此外,具有相同形式(固定形式)的自适应环路滤波器可在不考虑目标块的特性的情况下被应用。
经过滤波器单元180的重建块可被存储在参考画面缓冲器190中。
图2是示出根据本发明的实施例的解码设备的配置的框图。
解码设备200可以是视频解码设备或图像解码设备。
参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260以及参考画面缓冲器270。
解码设备200可接收从编码设备100输出的比特流。解码设备200可按照帧内模式或帧间模式对比特流进行解码。此外,解码设备100可通过执行解码来产生重建画面,并可输出重建画面。
当在解码中使用的预测模式是帧内模式时,切换器可被切换到帧内。当在解码中使用的预测模式是帧间模式时,切换器可被切换到帧间。
解码设备200可从输入的比特流获得重建残差块,并可产生预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来产生作为解码目标块的重建块。解码目标块可被称为当前块。
熵解码单元210可通过根据概率分布对比特流执行熵解码来产生符号。产生的符号可包括具有量化的变换系数等级的符号。这里,熵解码的方法可与上述熵编码的方法类似。例如,熵解码的方法可以是上述熵编码的方法的逆处理。
为了对变换系数等级进行解码,熵解码单元210可执行变换系数扫描,由此,一维矢量形式的系数可被改变为二维块形式。例如,通过用右上扫描来扫描块的系数,一维矢量形式的系数可被改变为二维块形式。根据变换单元的大小以及帧内预测模式,可使用垂直方向扫描以及水平方向扫描,而不是使用右上扫描。也就是说,依据变换单元的大小以及帧内预测模式,可确定在右上扫描、垂直方向扫描和水平方向扫描之中的哪种扫描方法被使用。
量化的变换系数等级可通过反量化单元220被反量化,并可通过逆变换单元230被逆变换。量化的变换系数等级被反量化并被逆变换以便产生重建残差块。这里,反量化单元220可对量化的变换系数等级应用量化矩阵。
当帧内模式被使用时,帧内预测单元240可通过执行空间预测来产生预测块,其中,空间预测使用与解码目标块相邻的先前解码块的像素值。
当帧间模式被使用时,运动补偿单元250可通过执行运动补偿来产生预测块,其中,运动补偿使用存储在参考画面缓冲器270中的参考画面以及运动矢量两者。当运动矢量的值不是整数时,运动补偿单元250可通过对参考画面中的部分区域应用插值滤波器来产生预测块。为了执行运动补偿,基于编码单元,可在跳过模式、合并模式、AMVP模式和当前画面参考模式之中确定编码单元中的预测单元的运动补偿方法使用哪种方法。此外,可依据所述模式执行运动补偿。这里,当前画面参考模式可意为使用具有解码目标块的当前画面内的先前重建区域的预测模式。先前重建区域可不与解码目标块相邻。为了指明先前重建区域,可针对当前画面参考模式使用固定矢量。此外,指示解码目标块是否是按照当前画面参考模式被解码的块的标志或索引可被用信号发送,并可通过使用解码目标块的参考画面索引而被推导出。针对当前画面参考模式的当前画面可存在于针对解码目标块的参考画面列表内的固定位置(例如,参考画面索引为0的位置或最后的位置)。此外,当前画面可以可变地位于参考画面列表内,为此,可用信号发送指示当前画面的位置的参考画面索引。这里,用信号传送标志或索引可表示编码器对相应标志或索引进行熵编码并包括在比特流中,并表示解码器从比特流对所述相应标志或索引进行熵解码。
可通过加法器255将重建残差块与预测块相加。通过将重建残差块和预测块相加而产生的块可经过滤波器单元260。滤波器单元260可对重建块或重建画面应用去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个。滤波器单元260可输出重建画面。重建画面可被存储在参考画面缓冲器270中,并可被用于帧间预测。
图3是示意性地示出当对图像进行编码和解码时的图像的分区结构的示图。图3示意性地示出将一个单元分区为多个子单元的实施例。
为了对图像进行有效分区,编码单元(CU)可在编码和解码中被使用。这里,编码单元可意为进行编码的单元,单元可以是1)语法元素和2)包括图像样点的块的组合。例如,“单元的分区”可意为“与单元相关的块的分区”。块分区信息可包括关于单元深度的信息。深度信息可指示单元被分区的次数或单元被分区的程度或两者。
参照图3,图像300针对每个最大编码单元(LCU)被顺序分区,并且分区结构针对每个LCU被确定。这里,LCU和编码树单元(CTU)具有相同的含义。一个单元可具有基于树结构的深度信息,并可被分层分区。每个分区出的子单元可具有深度信息。深度信息指示单元被分区的次数或单元被分区的程度或两者,因此,深度信息可包括关于子单元的大小的信息。
分区结构可意为LCU 310中的编码单元(CU)的分布。CU可以是用于对图像进行有效编码/解码的单元。所述分布可基于一个CU是否将被多次(等于或大于2的正整数,包括2、4、8、16等)分区而被确定。分区出的CU的宽度大小和高度大小可分别为原始CU的一半宽度大小和一半高度大小。可选择地,根据分区的次数,分区出的CU的宽度大小和高度大小可分别小于原始CU的宽度大小和高度大小。分区出的CU可被递归地分区为多个进一步分区出的CU,其中,按照相同的分区方法,所述进一步分区出的CU具有比所述分区出的CU的宽度大小和高度大小更小的宽度大小和高度大小。
这里,CU的分区可被递归地执行直到预定深度。深度信息可以是指示CU的大小的信息,并且可被存储在每个CU中。例如,LCU的深度可以是0,并且最小编码单元(SCU)的深度可以是预定最大深度。这里,LCU可以是具有上述最大大小的编码单元,并且SCU可以是具有最小大小的编码单元。
每当LCU 310开始被分区,并且CU的宽度大小和高度大小通过分区操作而减小时,CU的深度增加1。在不能被分区的CU的情况下,CU针对每个深度可具有2N×2N大小。在能够被分区的CU的情况下,具有2N×2N大小的CU可被分区为多个N×N大小的CU。每当深度增加1时,N的大小减半。
例如,当一个编码单元被分区为四个子编码单元时,所述四个子编码单元之一的宽度大小和高度大小可分别为原始编码单元的一半宽度大小和一半高度大小。例如,当32×32大小的编码单元被分区为四个子编码单元时,所述四个子编码单元中的每一个可具有16×16大小。当一个编码单元被分区为四个子编码单元时,编码单元可按照四叉树形式被分区。
例如,当一个编码单元被分区为两个子编码单元时,所述两个子编码单元之一的宽度大小或高度大小可分别为原始编码单元的一半宽度大小或一半高度大小。例如,当32×32大小的编码单元被垂直分区为两个子编码单元时,所述两个子编码单元中的每一个可具有16×32大小。例如,当32×32大小的编码单元被水平分区为两个子编码单元时,所述两个子编码单元中的每一个可具有32×16大小。当一个编码单元被分区为两个子编码单元时,编码单元可按照二叉树形式被分区。
参照图3,具有最小深度0的LCU的大小可以是64×64像素,并且具有最大深度3的SCU的大小可以是8×8像素。这里,可由深度0来表示具有64×64像素的CU(即,LCU),可由深度1来表示具有32×32像素的CU,可由深度2来表示具有16×16像素的CU,并且可由深度3来表示具有8×8像素的CU(即,SCU)。
此外,可通过CU的分区信息来表示关于CU是否将被分区的信息。分区信息可以是1比特信息。分区信息可被包括在除SCU以外的所有CU中。例如,当分区信息的值为0时,CU可不被分区,当分区信息的值为1时,CU可被分区。
图4是示出可被包括在编码单元(CU)中的预测单元(PU)的形式的示图。
从LCU分区出的多个CU之中的不再被分区的CU可被分区为至少一个预测单元(PU)。该处理也可被称为分区。
PU可以是用于预测的基本单元。PU可按照跳过模式、帧间模式和帧内模式中的任一模式而被编码和解码。PU可依据所述模式按照各种形式被分区。
此外,编码单元可不被分区为多个预测单元,并且编码单元和预测单元可具有相同的大小。
如图4所示,在跳过模式中,CU可不被分区。在跳过模式中,可支持与不经分区的CU具有相同大小的2N×2N模式410。
在帧间模式中,在CU中可支持8个分区模式。例如,在帧间模式中,可支持2N×2N模式410、2N×N模式415、N×2N模式420、N×N模式425、2N×nU模式430、2N×nD模式435、nL×2N模式440以及nR×2N模式445。在帧内模式中,可支持2N×2N模式410和N×N模式425。
一个编码单元可被分区为一个或更多个预测单元。一个预测单元可被分区为一个或更多个子预测单元。
例如,当一个预测单元被分区为四个子预测单元时,所述四个子预测单元之一的宽度大小和高度大小可为原始预测单元的一半宽度大小和一半高度大小。例如,当32×32大小的预测单元被分区为四个子预测单元时,所述四个子预测单元中的每一个可具有16×16大小。当一个预测单元被分区为四个子预测单元时,预测单元可按照四叉树形式被分区。
例如,当一个预测单元被分区为两个子预测单元时,所述两个子预测单元之一的宽度大小或高度大小可为原始预测单元的一半宽度大小或一半高度大小。例如,当32×32大小的预测单元被垂直分区为两个子预测单元时,所述两个子预测单元中的每一个可具有16×32大小。例如,当32×32大小的预测单元被水平分区为两个子预测单元时,所述两个子预测单元中的每一个可具有32×16大小。当一个预测单元被分区为两个子预测单元时,预测单元可按照二叉树形式被分区。
图5是示出可被包括在编码单元(CU)中的变换单元(TU)的形式的示图。
变换单元(TU)可以是CU内的用于变换、量化、逆变换和反量化的基本单元。TU可具有正方形状或矩形形状等。TU可按照CU的大小或CU的形式或两者而被独立确定。
从LCU分区出的CU之中的不再被分区的CU可被分区为至少一个TU。这里,TU的分区结构可以是四叉树结构。例如,如图5所示,一个CU 510可依据四叉树结构而被分区一次或更多次。一个CU被分区至少一次的情况可被称为递归分区。通过进行分区,一个CU 510可由具有不同大小的TU形成。可选择地,CU可依据对CU进行分区的垂直线的数量或对CU进行分区的水平线的数量或两者而被分区为至少一个TU。CU可被分区为彼此对称的TU,或者可被分区为彼此不对称的TU。为了将CU分区为彼此对称的TU,TU的大小/形状的信息可被用信号传送,并可从CU的大小/形状的信息推导出。
此外,编码单元可不被分区为变换单元,并且编码单元和变换单元可具有相同的大小。
一个编码单元可被分区为至少一个变换单元,并且一个变换单元可被分区为至少一个子变换单元。
例如,当一个变换单元被分区为四个子变换单元时,所述四个子变换单元之一的宽度大小和高度大小可分别为原始变换单元的一半宽度大小和一半高度大小。例如,当32×32大小的变换单元被分区为四个子变换单元时,所述四个子变换单元中的每一个可具有16×16大小。当一个变换单元被分区为四个子变换单元时,变换单元可按照四叉树形式被分区。
例如,当一个变换单元被分区为两个子变换单元时,所述两个子变换单元之一的宽度大小或高度大小可分别为原始变换单元的一半宽度大小或一半高度大小。例如,当32×32大小的变换单元被垂直分区为两个子变换单元时,所述两个子变换单元中的每一个可具有16×32大小。例如,当32×32大小的变换单元被水平分区为两个子变换单元时,所述两个子变换单元中的每一个可具有32×16大小。当一个变换单元被分区为两个子变换单元时,变换单元可按照二叉树形式被分区。
当执行变换时,可通过使用预定变换方法中的至少一种变换方法对残差块进行变换。例如,所述预定变换方法可包括离散余弦变换(DCT)、离散正弦变换(DST)、KLT等。可通过使用以下项中的至少一个来确定哪种变换方法被应用于对残差块进行变换:预测单元的帧间预测模式信息、预测单元的帧内预测模式信息以及变换块的大小/形状。指示变换方法的信息可被用信号传送。
图6是用于解释帧内预测的处理的实施例的示图。
帧内预测模式可以是非方向模式或方向模式。非方向模式可以是DC模式或平面模式。方向模式可以是具有特定方向或角度的预测模式,并且方向模式的数量可以是等于或大于1的M。方向模式可被指示为模式编号、模式值和模式角度中的至少一个。
帧内预测模式的数量可以是等于或大于1的N,包括非方向模式和方向模式。
帧内预测模式的数量可依据块的大小而变化。例如,当块的大小为4×4或8×8时,帧内预测模式的数量可以是67,当块的大小是16×16时,帧内预测模式的数量可以是35,当块的大小是32×32时,帧内预测模式的数量可以是19,当块的大小是64×64时,帧内预测模式的数量可以是7。
帧内预测模式的数量可被固定为N,而不管块的大小如何。例如,帧内预测模式的数量可被固定为35或67中的至少一个,而不管块的大小如何。
帧内预测模式的数量可依据颜色分量的类型而变化。例如,预测模式的数量可依据颜色分量是亮度信号还是色度信号而变化。
可通过使用重建邻近块中所包括的样点值或编码参数来执行帧内编码和/或解码。
为了按照帧内预测对当前块进行编码/解码,可识别包括在重建邻近块中的样点是否可用作编码/解码目标块的参考样点。当存在不能用作编码/解码目标块的参考样点的样点时,通过使用包括在重建邻近块中的样点中的至少一个样点,样点值被复制和/或插值到不能用作参考样点的样点,由此,不能用作参考样点的样点可被用作编码/解码目标块的参考样点。
在帧内预测中,基于帧内预测模式以及编码/解码目标块的大小中的至少一个,滤波器可被应用于参考样点或预测样点中的至少一个。这里,编码/解码目标块可意为当前块,并且可意为编码块、预测块和变换块中的至少一个。被应用于参考样点或预测样点的滤波器的类型可依据帧内预测模式或当前块的大小/形状中的至少一个而变化。滤波器的类型可依据滤波器抽头的数量、滤波器系数值或滤波器强度中的至少一个而变化。
在帧内预测模式之中的非方向平面模式中,当产生编码/解码目标块的预测块时,可根据样点位置通过使用当前样点的上参考样点、当前样点的左参考样点、当前块的右上参考样点、以及当前块的左下参考样点的加权和来产生预测块中的样点值。
在帧内预测模式之中的非方向DC模式中,当产生编码/解码目标块的预测块时,可通过当前块的上参考样点和当前块的左参考样点的均值来产生预测块。此外,可通过使用参考样点值对编码/解码块中与参考样点相邻的一个或更多个上方行以及一个或更多个左侧列执行滤波。
在帧内预测模式之中的多个方向模式(角度模式)的情况下,可通过使用右上参考样点和/或左下参考样点来产生预测块,并且所述多个方向模式可具有不同的方向。为了产生预测样点值,可执行实数单元的插值。
为了执行帧内预测方法,可从与当前预测块相邻的邻近预测块的帧内预测模式预测当前预测块的帧内预测模式。在通过使用从邻近帧内预测模式预测出的模式信息来预测当前预测块的帧内预测模式的情况下,在当前预测块和邻近预测块具有相同的帧内预测模式时,当前预测块和邻近预测块具有相同的帧内预测模式的信息可通过使用预定标志信息被发送。在当前预测块的帧内预测模式不同于邻近预测块的帧内预测模式时,可通过执行熵编码来对编码/解码目标块的帧内预测模式信息进行编码。
图7是用于解释帧间预测的处理的实施例的示图。
图7中示出的四角形可指示图像(或画面)。此外,图7的箭头可指示预测方向。也就是说,图像可根据预测方向被编码或解码或者被编码和解码。根据编码类型,每个图像可被分类为I画面(帧内画面)、P画面(单向预测画面)、B画面(双向预测画面)等。每个画面可依据每个画面的编码类型而被编码和解码。
当作为编码目标的图像是I画面时,画面本身可在无需帧间预测的情况下被帧内编码。当作为编码目标的图像是P画面时,可通过使用仅在前向的参考画面进行帧间预测或运动补偿来对图像进行编码。当作为编码目标的图像是B画面时,可通过使用在前向和逆向两者的参考画面进行帧间预测或运动补偿来对图像进行编码。可选择地,可通过使用在前向和逆向之一的参考画面进行帧间预测或运动补偿来对图像进行编码。这里,当帧间预测模式被使用时,编码器可执行帧间预测或运动补偿,并且解码器可响应于编码器执行运动补偿。通过使用参考画面被编码或解码或者被编码和解码的P画面和B画面的图像可被视为用于帧间预测的图像。
在下文中,将详细描述根据实施例的帧间预测。
可通过使用参考画面和运动信息两者来执行帧间预测或运动补偿。此外,帧间预测可使用上述跳过模式。
参考画面可以是当前画面的先前画面和后续画面中的至少一个。这里,帧间预测可依据参考画面来预测当前画面的块。这里,参考画面可意为在对块进行预测时使用的图像。这里,参考画面内的区域可通过使用指示参考画面的参考画面索引(refIdx)、运动矢量等来指明。
帧间预测可选择参考画面和参考画面内与当前块相关的参考块。可通过使用选择的参考块来产生当前块的预测块。当前块可以是当前画面的块之中的作为当前编码目标或当前解码目标的块。
可由编码设备100和解码设备200从帧间预测的处理推导运动信息。此外,推导出的运动信息可在执行帧间预测时被使用。这里,编码设备100和解码设备200可通过使用重建邻近块的运动信息或同位块(col块)的运动信息或两者的运动信息来提高编码效率或解码效率或两者。col块可以是先前被重建的同位画面(col画面)内的与编码/解码目标块的空间位置相关的块。重建邻近块可以是当前画面内的块、以及通过编码或解码或者编码和解码两者先前被重建的块。此外,重建块可以是与编码/解码目标块相邻的块,或者是位于编码/解码目标块的外部拐角处的块,或者是两者。这里,位于编码/解码目标块的外部拐角处的块可以是与水平相邻于编码/解码目标块的邻近块垂直相邻的块。可选择地,位于编码/解码目标块的外部拐角处的块可以是与垂直相邻于编码/解码目标块的邻近块水平相邻的块。
编码设备100和解码设备200可分别确定存在于col画面内的与编码/解码目标块空间相关的位置处的块,并可基于确定的块来确定预定义的相对位置。所述预定义的相对位置可以是存在于与编码/解码目标块空间相关的位置处的块的内部位置或外部位置或者是内部位置和外部位置两者。此外,编码设备100和解码设备200可基于所确定的所述预定义的相对位置来分别推导col块。这里,col画面可以是在参考画面列表中包括的至少一个参考画面中的一个画面。
推导运动信息的方法可根据编码/解码目标块的预测模式而变化。例如,被应用于帧间预测的预测模式可包括高级运动矢量预测(AMVP)、合并模式等。这里,合并模式可被称为运动合并模式。
例如,当AMVP作为预测模式被应用时,编码设备100和解码设备200可分别通过使用重建邻近块的运动矢量或col块的运动矢量或两者来产生运动矢量候选列表。重建邻近块的运动矢量或col块的运动矢量或者两者可被用作运动矢量候选。这里,col块的运动矢量可被称为时间运动矢量候选,重建邻近块的运动矢量可被称为空间运动矢量候选。
编码设备100可产生比特流,比特流可包括运动矢量候选索引。也就是说,编码设备100可通过对运动矢量候选索引进行熵编码来产生比特流。运动矢量候选索引可指示从包括在运动矢量候选列表中的运动矢量候选中选择出的最优运动矢量候选。运动矢量候选索引可通过比特流从编码设备100被发送到解码设备200。
解码设备200可从比特流对运动矢量候选索引进行熵解码,并可通过使用经过熵解码的运动矢量候选索引在运动矢量候选列表中所包括的运动矢量候选之中选择解码目标块的运动矢量候选。
编码设备100可计算解码目标块的运动矢量和运动矢量候选之间的运动矢量差(MVD),并对MVD进行熵编码。比特流可包括经过熵编码的MVD。MVD可通过比特流从编码设备100被发送到解码设备200。这里,解码设备200可对从比特流接收到的MVD进行熵解码。解码设备200可通过解码的MVD与运动矢量候选之和来推导解码目标块的运动矢量。
比特流可包括指示参考画面的参考画面索引等,并且参考画面索引可被熵编码并通过比特流从编码设备100被发送到解码设备200。解码设备200可通过使用邻近块的运动信息来预测解码目标块的运动矢量,并可通过使用预测出的运动矢量以及运动矢量差来推导解码目标块的运动矢量。解码设备200可基于推导出的运动矢量和参考画面索引信息来产生解码目标块的预测块。
作为推导运动信息的另一方法,合并模式被使用。合并模式可意为多个块的运动的合并。合并模式可意为一个块的运动信息被应用于另一个块。当合并模式被应用时,编码设备100和解码设备200可分别通过使用重建邻近块的运动信息或col块的运动信息或两者来产生合并候选列表。运动信息可包括以下至少一个:1)运动矢量、2)参考画面索引、以及3)帧间预测指示符。预测指示符可指示单向(L0预测、L1预测)或双向。
这里,合并模式可被应用于每个CU或每个PU。当合并模式在每个CU或每个PU被执行时,编码设备100可通过对预定义的信息进行熵解码来产生比特流,并可将比特流发送到解码设备200。比特流可包括所述预定义的信息。所述预定义的信息可包括:1)作为指示合并模式是否针对每个块分区被执行的信息的合并标志、2)作为指示与编码目标块相邻的邻近块之中的哪个块被合并的信息的合并索引。例如,与编码目标块相邻的邻近块可包括编码目标块的左邻近块、编码目标块的上邻近块、编码目标块的时间邻近块等。
合并候选列表可指示存储运动信息的列表。此外,合并候选列表可在执行合并模式之前被产生。存储在合并候选列表中的运动信息可以是以下运动信息中的至少一个:与编码/解码目标块相邻的邻近块的运动信息、参考画面中与编码/解码目标块相关的同位块的运动信息、通过对合并运动候选列表中存在的运动信息的预先组合而新产生的运动信息、以及零合并候选。这里,与编码/解码目标块相邻的邻近块的运动信息可被称为空间合并候选。参考画面中与编码/解码目标块相关的同位块的运动信息可被称为时间合并候选。
跳过模式可以是将邻近块本身的模式信息应用于编码/解码目标块的模式。跳过模式可以是用于帧间预测的模式之一。当跳过模式被使用时,编码设备100可对关于哪个块的运动信息被用作编码目标块的运动信息的信息进行熵编码,并可通过比特流将该信息发送到解码设备200。编码设备100可不将其它信息(例如,语法元素信息)发送到解码设备200。语法元素信息可包括运动矢量差信息、编码块标志以及变换系数等级中的至少一个。
在帧内预测或帧间预测之后产生的残差信号可通过作为量化处理的一部分的变换处理被变换到频域。这里,首次变换可使用DCT类型2(DCT-II)以及各种DCT、DST内核。这些变换内核可对残差信号执行用于沿水平和/或垂直方向执行1D变换的可分离变换,或者可对残差信号执行2D不可分离变换。
例如,在1D变换的情况下,在变换中使用的DCT和DST类型可使用如下表中所示的DCT-II、DCT-V、DCT-VIII、DST-I以及DST-VII。例如,如表1和表2中所示,可推导出通过合成变换集而在变换中使用的DCT或DST类型。
[表1]
变换集 变换
0 DST_VII、DCT-VIII
1 DST-VII、DST-I
2 DST-VII、DCT-V
[表2]
变换集 变换
0 DST_VII、DCT-VIII、DST-I
1 DST-VII、DST-I、DCT-VIII
2 DST-VII、DCT-V、DST-I
例如,如图8所示,根据帧内预测模式,不同的变换集针对水平方向和垂直方向被定义。接下来,编码器/解码器可通过使用当前编码/解码目标块的帧内预测模式和相关变换集的变换来执行变换和/或逆变换。在这种情况下,不对变换集执行熵编码/解码,并且编码器/解码器可根据相同的规则来定义变换集。在这种情况下,指示变换集的变换之中的哪种变换被使用的熵编码/解码可被执行。例如,当块的大小等于或小于64×64时,根据帧内预测模式,如表2中所示三个变换集被合成,并且三个变换被用于每个水平方向变换和垂直方向变换以组合并执行总共九个多变换方法。接下来,通过使用最优变换方法来对残差信号进行编码/解码,由此,编码效率可被提高。这里,为了对关于一个变换集中的三个变换之中哪个变换方法被使用的信息执行熵编码/解码,可使用截断一元二值化。这里,为了进行垂直变换和水平变换中的至少一个,可对指示变换集的变换中的哪个变换被使用的信息执行熵编码/解码。
在完成上述首次变换之后,如图9中所示,编码器可针对变换系数执行二次变换以提高能量集中度。二次变换可执行用于沿水平和/或垂直方向执行1D变换的可分离变换,或者可执行2D不可分离变换。所使用的变换信息可被发送,或者可被编码器/解码器根据当前编码信息和邻近编码信息而推导出。例如,如1D变换,用于二次变换的变换集可被定义。不对该变换集执行熵编码/解码,并且编码器/解码器可根据相同的规则定义变换集。在这种情况下,指示变换集的变换之中的哪个变换被使用的信息可被发送,并且该信息可通过帧内预测或帧间预测被应用于至少一个残差信号。
变换候选的数量或类型中的至少一个针对每个变换集而不同。变换候选的数量或类型中的至少一个可基于以下至少一个而被不同地确定:块(CU、PU、TU等)的位置、大小、分区形式、以及预测模式(帧内/帧间模式)或帧内预测模式的方向/非方向。
解码器可依据二次逆变换是否被执行来执行二次逆变换,并可从二次逆变换的结果依据首次逆变换是否被执行来执行首次逆变换。
上述首次变换和二次变换可被应用于亮度/色度分量中的至少一个信号分量,或者可根据任意编码块的大小/形状被应用。可对指示首次变换/二次变换是否被使用以及任意编码块中的所使用的首次变换/二次变换两者的索引执行熵编码/解码。可选择地,所述索引可由编码器/解码器根据至少一条当前/邻近编码信息而默认推导。
在帧内预测或帧间预测之后产生的残差信号在经过首次变换和/或二次变换之后经过量化处理,并且量化的变换系数经过熵编码处理。这里,如图10中所示,量化的变换系数可基于帧内预测模式或最小块的大小/形状中的至少一个,按照对角方向、垂直方向和水平方向被扫描。
此外,执行了熵解码的量化的变换系数可通过被逆扫描而按照块形式被布置,并且可对相关块执行反量化或逆变换中的至少一个。这里,作为逆扫描的方法,对角方向扫描、水平方向扫描和垂直方向扫描中的至少一个可被执行。
例如,在当前编码块的大小为8×8时,可对针对8×8的块的残差信号执行首次变换、二次变换以及量化,接下来,可根据图10中示出的三种扫描顺序方法中的至少一种针对四个4×4的子块中的每一个对量化的变换系数执行扫描和熵编码。此外,可通过执行熵解码来对量化的变换系数执行逆扫描。执行了逆扫描的量化的变换系数在经过反量化之后成为变换系数,并且二次逆变换或首次逆变换中的至少一个被执行,由此,重建残差信号可被产生。
在视频编码处理中,一个块可如图11所示被分区,并且与分区信息相应的指示符可被用信号传送。这里,分区信息可以是以下至少一个:分区标志(split_flag)、四叉/二叉树标志(QB_flag)、四叉树分区标志(quadtree_flag)、二叉树分区标志(binarytree_flag)以及二叉树分区类型标志(Btype_flag)。这里,split_flag是指示块是否被分区的标志,QB_flag是指示块是按照四叉树形式还是按照二叉树形式被分区的标志,quadtree_flag是指示块是否按照四叉树形式被分区的标志,binarytree_flag是指示块是否按照二叉树形式被分区的标志,Btype_flag是指示在二叉树形式的分区的情况下块是被垂直分区还是被水平分区的标志。
当分区标志为1时,它可指示分区被执行,当分区标志为0时,它可指示分区不被执行。在四叉/二叉树标志的情况下,0可指示四叉树分区,并且1可指示二叉树分区。可选择地,0可指示二叉树分区,1可指示四叉树分区。在二叉树分区类型标志的情况下,0可指示水平方向分区,1可指示垂直方向分区。可选择地,0可指示垂直方向分区,1可指示水平方向分区。
例如,可通过将如表3中示出的quadtree_flag、binarytree_flag和Btype_flag中的至少一个用信号传送来推导图11的分区信息。
[表3]
例如,可通过将如表4中示出的split_flag、QB_flag和Btype_flag中的至少一个用信号传送来推导图11的分区信息。
[表4]
可根据块的大小/形状仅按照四叉树形式或仅按照二叉树形式来执行分区方法。在这种情况下,split_flag可意为指示是按照四叉树形式还是按照二叉树形式执行分区的标志。块的大小/形状可根据块的深度信息来推导,并且深度信息可被用信号传送。
当块的大小在预定范围中时,可仅按照四叉树形式执行分区。这里,所述预定范围可被定义为仅能够按照四叉树形式被分区的最大块的大小或最小块的大小中的至少一个。可通过比特流用信号传送指示允许四叉树形式的分区的最大块/最小块的大小的信息,并且可以以序列、画面参数或条带(分段)中的至少一个为单位用信号传送该信息。可选择地,最大块/最小块的大小可以是在编码器/解码器中预设的固定大小。例如,当块的大小的范围是256x256至64x64时,可仅按照四叉树形式执行分区。在这种情况下,split_flag可以是指示是否按照四叉树形式执行分区的标志。
当块的大小在预定范围中时,可仅按照二叉树形式执行分区。这里,所述预定范围可被定义为仅能够按照二叉树形式被分区的最大块的大小或最小块的大小中的至少一个。可通过比特流用信号传送指示允许二叉树形式的分区的最大块/最小块的大小的信息,并且可以以序列、画面参数或条带(分段)中的至少一个为单位而用信号传送该信息。可选择地,最大块/最小块的大小可以是在编码器/解码器中预设的固定大小。例如,当块的大小的范围是16x16至8x8时,可仅按照二叉树形式执行分区。在这种情况下,split_flag可以是指示是否按照二叉树形式执行分区的标志。
在按照二叉树形式对一个块进行分区之后,当分区出的块被进一步分区时,可仅按照二叉树形式执行分区。
当分区出的块的宽度大小或长度大小不能被进一步分区时,至少一个指示符可不被用信号传送。
除了基于四叉树的二叉树分区以外,基于四叉树的分区可在二叉树分区以后被执行。
图12是描绘根据本发明的实施例的用于对当前块执行帧内预测的方法的示图。
如图12中所示,帧内预测可包括:推导帧内预测模式(S1210),构建参考样点(S1220),和/或执行帧内预测(S1230)。
在推导帧内预测模式的步骤(S1210)中,可使用邻近块的帧内预测模式,可从比特流解码(例如,熵解码)当前块的帧内预测模式,可使用利用变换模型的帧内预测模式来推导当前块的颜色分量的帧内预测模式和/或当前块的帧内预测模式。或者,在推导帧内预测模式的步骤(S1210)中,可使用邻近块的帧内预测模式、邻近块的一个或更多个帧内预测模式的组合、和/或通过MPM推导出的帧内预测模式来推导当前块的帧内预测模式。
在构建参考样点的步骤(S1220)中,可通过执行参考样点选择和/或参考样点滤波来构建参考样点。
在执行帧内预测的步骤(S1230)中,可使用非方向预测、方向预测、基于位置信息的预测、颜色分量之间的预测和/或残差信号预测来针对当前块执行帧内预测。在执行帧内预测的步骤(S1230)中,可对预测样点另外地执行滤波。如果执行方向预测,则可根据一个或更多个样点单元执行不同方向预测。例如,所述一个或更多个样点单元可以是单个样点、样点组、线和/或子块。
在下文中,将更加详细地描述推导帧内预测模式的步骤(S1210)。
如上所述,为了推导当前块的帧内预测模式,可使用以下方法中的至少一种方法:用于使用一个或更多个邻近块的帧内预测模式的方法、用于从比特流解码当前块的帧内预测模式的方法、用于使用邻近块的编码参数的方法、以及用于使用颜色分量之间的帧内预测模式的方法。邻近块可以是在当前块的编码/解码之前被重建的一个或更多个块。
如果邻近块位于至少一个预定单元(诸如画面、条带、并行块和编码树单元(CTU)的边界外部,或者PCM模式或帧间预测已被应用于该邻近块,则可确定该邻近块不可用。可利用DC模式、平面模式或预定帧内预测模式来替换与不可用的邻近块相应的帧内预测模式。
当前块的大小可以是W×H,其中,W和H是正整数并且可以相等或不同。W和/或H可以是例如2、4、8、16、32、64、128、256和512中的至少一个。
图13是描绘用于从邻近块推导当前块的帧内预测模式的方法的示图。
在图13中,在邻近块上标记的a至k可表示邻近块的帧内预测模式或者帧内预测模式的编号。用于推导当前块的帧内预测模式的邻近块的位置可以是预定义的固定位置。或者,可通过编码/解码来推导关于邻近块的位置的信息。在本公开中,编码/解码可包括熵编码和熵解码。
在邻近块的帧内预测模式被使用的情况下,邻近块的特定模式可被推导作为当前块的帧内预测模式。例如,与当前块的样点(0,0)相邻的左侧样点(-1,0)所属于的邻近块的帧内预测模式i可被推导作为当前块的帧内预测模式。或者,与当前块的样点(0,0)相邻的上方样点(0,-1)所属于的邻近块的帧内预测模式f可被推导作为当前块的帧内预测模式。或者,与当前块的样点(0,0)相邻的左上方样点(-1,-1)所属于的邻近块的帧内预测模式b可被推导作为当前块的帧内预测模式。或者,与当前块的样点(W-1,0)相邻的上方样点(W-1,-1)所属于的邻近块的帧内预测模式g可被推导作为当前块的帧内预测模式。或者,与当前块的样点(W-1,0)相邻的右上方样点(W,-1)所属于的邻近块的帧内预测模式k可被推导作为当前块的帧内预测模式。或者,与当前块的样点(0,H-1)相邻的左侧样点(1,H-1)所属于的邻近块的帧内预测模式j可被推导作为当前块的帧内预测模式。或者,与当前块的样点(0,H-1)相邻的左下方样点(-1,H)所属于的邻近块的帧内预测模式l可被推导作为当前块的帧内预测模式。或者,邻近块之中的位于预定位置处的邻近块的帧内预测模式可被推导作为当前块的帧内预测模式。例如,所述预定位置可被编码/从比特流解码,或者可基于编码参数被推导出。例如,所述预定位置可以是具有帧内预测模式e的块。
或者,可选择当前块的邻近块中的一个或更多个。可基于通过比特流显式地用信号传送的信息来进行所述选择。或者,可根据编码器和解码器之间预设的准则来进行所述选择。可从所选择的一个或更多个邻近块的帧内预测模式推导当前块的帧内预测模式。例如,可使用所选择的邻近块的帧内预测模式的统计值来推导当前块的帧内预测模式。例如,所述统计值可包括最小值、最大值、平均值、加权平均值、最频繁值和/或中值。
例如,可将在与当前块的样点(0,0)相邻的左侧样点和上方样点所属于的邻近块的帧内预测模式i和f之中具有较小模式编号或者较大模式编号的模式推导作为当前块的帧内预测模式。例如,如果所选择的邻近块的帧内预测模式是b、f、g、i和j,则可将具有帧内预测模式的模式编号中的最小值的模式推导作为当前块的帧内预测模式。例如,如果所选择的邻近块的帧内预测模式是i、b和f,则可将具有帧内预测模式的模式编号的中值的模式推导作为当前块的帧内预测模式。例如,可将与当前块相邻的邻近块的帧内预测模式中的最频繁的一个推导作为当前块的帧内预测模式。
或者,通过对一个或更多个邻近块的帧内预测模式进行组合来推导当前块的帧内预测模式。帧内预测模式可被表示为模式编号、模式值和模式角度中的至少一个。例如,邻近块的一个或更多个帧内预测模式的平均值可被推导作为当前块的帧内预测模式。两个帧内预测模式的平均值可表示在两个模式编号之间的中位数、两个模式值的中值、以及在两个模式角度之间的中间角度中的至少一个。
例如,可将与和当前块的样点(0,0)相邻的左侧样点和上方样点所属于的邻近块的帧内预测模式i和f的模式值的平均值相应的模式推导作为当前块的帧内预测模式。例如,可通过在[等式1]中描述的方法(1)、方法(2)和方法(3)中的至少一个来推导当前块的帧内预测模式Pred_mode。
[等式1]
Pred_mode=(i+f)>>1 (1)
Pred_mode=(i+f+1)>>1 (2)
Pred_mode=(i+f)/2 (3)
或者,如果邻近块的帧内预测模式i是非方向模式,则当前块的帧内预测模式可被推导为帧内预测模式i。或者,如果邻近块的帧内预测模式f是方向模式,则当前块的帧内预测模式可被推导为帧内预测模式f。
或者,当前块的帧内预测模式可被推导为与邻近块的帧内预测模式b、f、g、i和j的模式值中的至少一个的平均值相应的模式。例如,可通过在[等式2]中描述的方法(1)、方法(2)、方法(3)和方法(4)中的至少一个来推导当前块的帧内预测模式Pred_mode。
[等式2]
Pred_mode=(f+g+i+j+2)>>2 (1)
Pred_mode=(b+f+g+i+j)/5 (2)
Pred_mode=(i+f+k+l+2)>>2 (3)
Pred_mode=(b+f+k+i+l)/5 (4)
或者,与附近的邻近块的可用帧内预测模式的平均值相应的模式可被推导作为当前块的帧内预测模式。例如,如果当前块的左侧邻近块位于画面、并行块、条带和/或CTU的边界外部,或者,当前块的左侧邻近块与PCM模式或帧间预测模式中的至少一个相应并因此不可用,则可将与上方邻近块的帧内预测模式(例如,f和g)的统计值相应的模式推导作为当前块的帧内预测模式。
例如,加权平均值或加权和可被用作邻近块的帧内预测模式的统计值。这里,可基于邻近块的帧内预测模式的方向性来分配权重。例如,可预定义或用信号传送被分配了相对大的权重的模式。例如,被分配了相对大的权重的模式可以是垂直方向模式、水平方向模式和非方向模式中的至少一个模式。可对这些模式分配相同权重或不同权重。例如,帧内预测模式i和f的加权和可通过下面的[等式3]被推导作为当前块的帧内预测模式Pred_mode。在下面的[等式3]中,模式f可以是被分配了相对大的权重的模式(例如,垂直方向模式)。
[等式3]
Pred_mode=(i+3*f+2)>>2
或者,可基于邻近块的大小来确定将被用于加权和的权重。例如,如果与当前块相邻的上方块的大小大于与当前块相邻的左侧块的大小,则可将较大的权重分配给上方相邻块的帧内预测模式。或者,可将较大的权重分配给较小的邻近块的帧内预测模式。
或者,如果邻近块的一个或更多个帧内预测模式是非方向模式,则该非方向模式可被推导作为当前块的帧内预测模式。或者,可使用除了非方向模式之外的邻近块的帧内预测模式来推导当前块的帧内预测模式。如果邻近块的帧内预测模式全部都是非方向模式,则当前块的帧内预测模式可被推导为DC模式或平面模式中的至少一个。
或者,可使用基于邻近块的帧内预测模式的最可能模式(MPM)来推导当前块的帧内预测模式。如果MPM被使用,则关于当前块的帧内预测模式的一条或更多条信息可被编码/解码。
如果MPM被使用,则MPM列表可被构造。MPM列表可包括基于邻近块的帧内预测模式推导出的帧内预测模式。MPM列表可包括N个候选模式。N是正整数,并且可依据当前块的大小和/或形状而变化。或者,可通过比特流用信号传送关于N的信息。
例如,使用邻近块的一个或更多个帧内预测模式推导出的当前块的帧内预测模式可以是MPM列表中包括的候选模式。
在图13中示出的示例中,可使用与当前块相邻的(-1,H-1)、(W-1,-1)、(W,-1)、(-1,H)和(-1,-1)相同位置处的邻近块的帧内预测模式,例如,可按照j、g、平面、DC、l、k和b的顺序来制作MPM列表。或者,可按照i、f、平面、DC、l、k和b的顺序来制作MPM列表。重复模式在MPM列表中可被包括一次。如果MPM列表由于存在重复模式而未被填满,则可基于列表中包括的模式将另外的候选模式包括在列表中。例如,可将与列表中包括的模式的+N或-N(N是正整数,例如,1)相应的模式添加到列表中。或者,可将水平模式、垂直模式、45度模式、135度模式和225度模式之中的在列表中未包括的模式中的至少一个模式添加到列表中。或者,可使用邻近块的多于1个的帧内预测模式的组合和/或统计值来构建MPM列表。
可存在多个MPM列表,并且用于构建每个MPM列表的方法可彼此不同。例如,可构建3个MPM列表(MPM列表1、MPM列表2和MPM列表3)。在这种情况下,在每个MPM列表中包括的帧内预测模式可以不重复。
指示在推导出的MPM列表中是否存在与当前块的帧内预测模式相同的模式的指示符(例如,prev_intra_luma_pred_flag)可被编码在比特流中或者可从比特流解码。
如果所述指示符指示在MPM列表中存在与当前块的帧内预测模式相同的模式,则指示该模式是MPM列表中包括的模式之中的哪个模式的索引信息(例如,mpm_idx)可被编码在比特流中或者从比特流解码。可基于解码出的索引信息来推导当前块的帧内预测模式。
如果所述指示符指示在MPM列表中不存在与当前块的帧内预测模式相同的模式,则关于当前块的帧内预测模式的信息可被编码在比特流中或从比特流解码。可基于解码出的关于当前块的帧内预测模式的信息来推导当前块的帧内预测模式。这里,在MPM列表中未包括的帧内预测模式可按照升序或降序中的至少一个被排列。或者,在MPM列表中未包括的帧内预测模式中的一个或更多个可被分成一个或更多个组。例如,与MPM列表中包括的帧内预测模式的+N或-N(N是正整数,例如,1、2或3)相应的模式可被分组成一个组。这里,该组可包括预定数量(例如,8或16)个帧内预测模式,并且在该组中包括的模式可不被包括在MPM列表中。
或者,如上所述,当存在多个MPM列表时,所述指示符(例如,prev_intra_luma_pred_flag)可指示在MPM列表1中是否存在与当前块的帧内预测模式相同的模式。在所述指示符指示在MPM列表1中不存在与当前块的帧内预测模式相同的模式的情况下,可确定在MPM列表2中是否存在与当前块的帧内预测模式相同的模式。在MPM列表2中存在与当前块的帧内预测模式相同的模式的情况下,相应模式可被推导作为当前块的帧内预测模式。在MPM列表2中不存在与当前块的帧内预测模式相同的模式的情况下,可执行针对MPM列表3的确定。利用与以上方法相同的方法,可按顺序执行针对多个MPM列表的确定。
或者,可发送指示多个MPM列表之一的单独信息。在这种情况下,可通过使用由所述单独信息指示的MPM列表以及所述指示符(例如prev_intra_luma_pred_flag)来推导当前块的帧内预测模式。
或者,在推导出的MPM列表中的预定候选可被推导作为当前块的帧内预测模式。例如,与列表0相应的模式(即,MPM列表中的第一模式)可被推导作为当前块的帧内预测模式。或者,与列表中的预定模式相应的索引可被编码/解码,并且相应模式可被推导作为当前块的帧内预测模式。
关于MPM列表的构造,可针对预定大小的块制作一个MPM列表。如果所述预定大小的块被划分为多个子块,则所述多个子块中的每个子块可使用该MPM列表。
例如,如果当前块与所述预定大小的块相应,则可针对当前块制作MPM列表。如果当前块被划分为一个或更多个子块,则可使用该MPM列表针对每个子块推导帧内预测模式。例如,如果当前块的大小为8×8并且被划分为四个4×4的子块,则可针对当前块制作MPM列表,并且可将该MPM列表用于每个子块。
关于MPM列表的构造,可针对预定大小的块被划分成的多个子块中的每个子块制作MPM列表。
例如,如果当前块与所述预定大小的块相应,则可使用当前块的邻近块的帧内预测模式针对当前块的每个子块制作MPM列表。例如,如果当前块的大小是8×8并且存在四个4×4的子块,则可使用当前块的邻近块的帧内预测模式针对四个子块中的每个子块制作MPM列表。因此,可同时针对四个子块制作MPM列表。
或者,可使用通过MPM推导出的当前块的帧内预测模式以及邻近块的帧内预测模式中的至少一个来推导当前块的帧内预测模式。
例如,如果通过MPM推导出的当前块的帧内预测模式是Pred_mpm,则可通过使用邻近块的一个或更多个帧内预测模式,将Pred_mpm改变为特定模式来推导当前块的帧内预测模式。
例如,通过对Pred_mpm与邻近块的帧内预测模式比较大小,可将Pred_mpm增大N或减小N。这里,N可以是预定整数,诸如+1、+2、+3、0、-1、-2或-3。例如,如果Pred_mpm小于邻近块的帧内预测模式和/或一个或更多个邻近块的帧内预测模式的统计值,则Pred_mpm可被增大。或者,如果Pred_mpm大于邻近块的帧内预测模式,则Pred_mpm可被减小。或者,可基于Pred_mpm和/或与Pred_mpm比较的值来推导当前块的帧内预测模式。
在图13中示出的示例中,如果Pred_mpm小于模式值f,则Pred_mpm+1可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm小于模式值g,则Pred_mpm+1可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm小于模式值f,则Pred_mpm+2可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm大于模式值f,则Pred_mpm-1可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm小于模式值i,则Pred_mpm+1可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm小于模式值f和i的平均值,则Pred_mpm+1可被推导作为当前块的帧内预测模式。或者,如果Pred_mpm小于模式值f和i的平均值,则可增加Pred_mpm和所述平均值之间的差值的1/2。例如,Pred_mpm+{((f+i+1)>>1-Pred_mpm+1)>>1}可被推导作为当前块的帧内预测模式。
或者,如果Pred_mpm和邻近块的模式中的一个是非方向模式并且另一个是方向模式,则所述非方向模式可被推导作为当前块的帧内预测模式,或者所述方向模式可被推导作为当前块的帧内预测模式。
在使用最可能模式(MPM)列表推导当前块的帧内预测模式的情况下,可使用例如以下MPM列表中的至少一个。或者,当前块的帧内预测模式可被熵编码/解码。
–用于当前块的MPM列表。
–用于当前块的上层块的MPM列表中的至少一个。
–用于当前块的邻近块的MPM列表中的至少一个。
可在视频参数集(VPS)、序列参数集(SPS)、画面参数集(PPS)、自适应参数集(APS)、条带、头、并行块、CTU、CU、PU和TU中的至少一个中熵编码/解码制作MPM列表所需的信息,诸如当前块的MPM列表是否被使用、当前块的上层块的MPM列表中的至少一个是否被使用、以及当前块的邻近块的MPM列表中的至少一个是否被使用。
上层块可以是具有比当前块的深度值小的深度值的块。另外,上层块可表示在具有更小深度值的块之中的包括当前块的块中的至少一个块。这里,深度值可表示块每次被划分时增加1的值。例如,未被划分的CTU的深度值可以是0。
此外,上层块可意为以下实施例或者以下多个实施例之中的至少一个实施例的组合。如果第一块是上层块并且第二块是当前块,则第一块可包括第二块。这里,第一块可以是深度比第二块浅的块。这里,深度较浅的块可表示具有较小深度值的块。或者,第一块可表示大小比第二块大的块。这里,较大的块可表示深度较浅的块。
指示第一块的大小或深度中的至少一个的信息可被编码器用信号传送。可按照VPS、SPS、画面、条带、并行块和块中的至少一个的级别来用信号传送所述信息。
可基于第二块的大小或深度中的至少一个来推导第一块的大小或深度中的至少一个。例如,可基于通过将预定常数与第二块(当前块)的大小(或深度)相加或者从第二块(当前块)的大小(或深度)减去所述预定常数所获得的值来推导第一块的大小或深度中的至少一个。或者,第一块的大小或深度中的至少一个可具有在编码器/解码器中预设的固定值。
邻近块可以是与当前块在空间上和/或时间上相邻的块中的至少一个。邻近块可以已被编码/解码。另外,邻近块可具有与当前块的深度(或大小)相等或不同的深度(或大小)。邻近块可表示位于关于当前块的预定位置处的块。这里,所述预定位置可以是关于当前块的左上方位置、上方位置、右上方位置、左侧位置和左下方位置中的至少一个。
或者,所述预定位置可以是在与当前块所属于的画面不同的画面内的位置。在所述预定位置处的块可表示当前块的在不同画面中的同位块和/或与所述同位块相邻的块中的至少一个。或者,在所述预定位置处的块可以是在不同画面的特定区域中的与当前块相应的具有与当前块的预测模式相同的预测模式的块。
此外,邻近块可意为以下实施例或者以下多个实施例中的至少一个的组合。如果第一块是邻近块并且第二块是当前块,则第一块是与第二块邻近的已编码/解码的块。第一块可以是具有与第二块的深度相等的深度的块。第一块可以是具有与第二块的大小相等的大小的块。
第一块和第二块可属于相同的编码块(CTU、CU等)或者不同的编码块。第一块的深度和/或大小可以不同于第二块的深度和/或大小。
上层块或邻近块的MPM列表可表示基于上层块或邻近块制作的MPM列表。与上层块或邻近块邻近的已编码/解码的块的帧内预测模式可被添加到上层块或邻近块的MPM列表。
图14是描绘当前块、上层块和邻近块的示例性示图。
例如,在图14中,块U(用粗实线标记的块)可以是块F、块G、块H、块I和块J的上层块。块F、块G、块H、块I和块J中的至少一个可以是当前块。
例如,在图14中,块V(用粗虚线标记的块)可以是块G、块H、块I和块J的上层块。块G、块H、块I和块J中的至少一个可以是当前块。
例如,在图14中,块W(用点状图案标记的块)可以是块G、块H和块I的上层块。块G、块H和块I中的至少一个可以是当前块。
例如,在图14中,块X(用菱形图案标记的块)可以是块H和块I的上层块。块H和块I中的至少一个可以是当前块。
例如,在图14中,当前块D的邻近块可以是块B、块C和块K中的至少一个。
例如,在图14中,当前块L的邻近块可以是块C、块D、块E、块H和块K中的至少一个。
例如,在图14中,当前块P的邻近块可以是块E、块H、块I、块J、块L、块N和块O中的至少一个。
例如,在图14中,当前块S的邻近块可以是块I、块J、块P、块Q和块R中的至少一个。
可使用N个MPM列表来推导或熵编码/解码当前块的帧内预测模式。这里,N可以是0或正整数。也就是说,可使用多个MPM列表来推导或熵编码/解码当前块的帧内预测模式。另外,多个MPM列表可表示多个MPM列表或多个列表。用于当前块的N个MPM列表可包括当前块的MPM列表、上层块的MPM列表和邻近块的MPM列表中的至少一个。
此外,可使用用于当前块的编码参数中的至少一个来产生所述N个MPM列表。
此外,预定块的多个子块中的至少一个子块可以是当前块。在这种情况下,所述多个子块的上层块可以是所述预定块。这里,所述多个子块可被包括在所述预定块中。此外,所述多个子块可以是从所述预定块划分出的块。此外,从所述预定块划分出的所述多个子块之中的不与当前块相应的子块中的至少一个可以是当前块的邻近块。这里,子块可意为在含义上与上层块相对的下层块。
例如,如果当前块是图14中的块H,则可按照以下方法中的至少一种方法来制作用于当前块的多个MPM列表。所述多个MPM列表可包括基于当前块制作的MPM列表以及基于当前块的上层块制作的MPM列表中的至少一个。
例如,在图14中,基于上层块X制作的MPM列表可被用于当前块H。
例如,在图14中,基于上层块W制作的MPM列表可被用于当前块H。
例如,在图14中,基于上层块V制作的MPM列表可被用于当前块H。
例如,在图14中,基于上层块U制作的MPM列表可被用于当前块H。
例如,在图14中,基于上层块X、上层块W、上层块V和上层块U中的至少一个制作的MPM列表中的至少一个可被用于推导当前块H的帧内预测模式。
例如,如果当前块是图14中的块H,则可按照以下方法中的至少一种方法来制作用于当前块的多个MPM列表。所述多个MPM列表可包括基于当前块制作的MPM列表以及基于当前块的邻近块制作的MPM列表中的至少一个。
例如,在图14中,基于邻近块E制作的MPM列表可被用于当前块H。
例如,在图14中,基于邻近块G制作的MPM列表可被用于当前块H。
例如,在图14中,基于邻近块E和邻近块G中的至少一个制作的MPM列表中的至少一个可被用于当前块H。
可使用制作的MPM列表来推导当前块的帧内预测模式,或者,可对当前块的帧内预测模式进行熵编码/解码。
将上层块的MPM列表或者邻近块的MPM列表用于当前块可意味着将上层块的MPM列表或邻近块的MPM列表用在推导当前块的帧内预测模式或者对当前块的帧内预测模式进行编码/解码的操作中。
用于当前块的多个MPM列表可包括用于N个上层块的MPM列表。这里,N是0或正整数。
在制作用于上层块的MPM列表时可能需要诸如上层块的数量、深度和/或深度范围和/或当前块的深度与上层块的深度之间的差的信息。可在VPS、SPS、PPS、APS、条带头、并行块头、CTU、CU、PU和TU中的至少一个中熵编码/解码制作上层块的MPM列表所需的该信息。
例如,如果当前块的深度值为D,则可按照以下方法中的至少一种方法来制作上层块的MPM列表。如上所述,制作出的上层块的MPM列表可在推导当前块的帧内预测模式或者对当前块的帧内预测模式进行编码/解码的操作中被使用。这里,D是0或正整数。
例如,深度值为D-1的上层块的MPM列表可被用于当前块。
例如,深度值为D-2的上层块的MPM列表可被用于当前块。
例如,深度值为D-K的上层块的MPM列表可被用于当前块。这里,K是等于或小于D的正整数。
例如,具有范围从D-1到D-2的深度值的上层块的MPM列表可被用于当前块。
例如,具有范围从D-1到D-3的深度值的上层块的MPM列表可被用于当前块。
例如,具有范围从D-1到D-K的深度值的上层块的MPM列表可被用于当前块。这里,K是等于或小于D的正整数。
例如,具有范围从D-K到D-l的深度值的上层块的MPM列表可被用于当前块。这里,K和l可以是等于或小于D的正整数。另外,K可以小于l。
例如,如果一个上层块被使用,则深度值为D-1或0的上层块的MPM列表可被用于当前块。
例如,如果两个上层块被使用,则深度值分别为0、1、D-1或D-2的上层块中的至少两个上层块的MPM列表可被用于当前块。
例如,如果K个上层块被使用,则至少在具有范围从D-l到D-K的深度值的上层块以及具有范围从0到K-1的深度值的上层块之中的上层块的MPM列表可被用于当前块。K可以是小于或等于D的正整数。
例如,如果K个上层块被使用,则关于当前块的K个上层块的MPM列表可被用于当前块。K可以是小于或等于D的正整数。
如果用于当前块的多个MPM列表包括上层块的MPM列表,则可使用关于当前块的大小和/或深度的信息来推导使用的上层块的数量和/或深度值。
例如,如果当前块是深度值为D的W×H块,则当前块的大小可被表示为像素的数量W×H。如果当前块中的像素的数量等于或大于预定阈值,则具有范围从D-1至D-K的深度值的上层块中的一个或更多个上层块的MPM列表可被用于当前块。这里,K可以是小于D的正整数。
此外,例如,如果当前块中的像素的数量小于所述预定阈值,则具有范围从D-1到D-L的深度值的上层块中的一个或更多个上层块的MPM列表可被用于当前块。这里,L可以是大于K的正整数。
例如,如果当前块的深度值是D并且D小于或等于预定深度值T,则具有范围从D-1到D-K的深度值的上层块中的一个或更多个上层块的MPM列表可被用于当前块。K可以是小于D的正整数。
例如,如果当前块的深度值D大于T,则具有范围从D-1到D-L的深度值的上层块中的一个或更多个上层块的MPM列表可被用于当前块。L可以是大于K的正整数。
用于当前块的多个MPM列表可包括用于N个邻近块的MPM列表。所述N个邻近块可包括预定位置处的邻近块。N可以是0或者正整数。
可能需要诸如所包括的邻近块的数量N、深度值、大小和/或位置的信息来制作邻近块的MPM列表。可在VPS、SPS、PPS、APS、条带头、并行块头、CTU、CU、PU和TU中的至少一个中熵编码/解码制作邻近块的MPM列表所需的信息。可根据当前块的大小、形状和/或位置来可变地确定邻近块的数量和/或位置。如果邻近块的深度值是预定值或落入预定范围内,则可制作邻近块的MPM列表。可通过最小值或最大值中的至少一个来定义所述预定范围。可在前述的预定单元中熵编码/解码关于最小值或最大值中的至少一个的信息。
例如,在图14中,如果当前块是块P并且具有深度值D,则可按照以下方法中的至少一种方法来制作用于当前块的多个MPM列表。这里,所述多个MPM列表可包括基于当前块制作的MPM列表和基于当前块的邻近块制作的MPM列表中的至少一个。
例如,基于当前块P的左侧邻近块L或N制作的MPM列表可被用于当前块P。
例如,基于当前块P的左上方邻近块E制作的MPM列表可被用于当前块P。
例如,基于当前块P的左下方邻近块O制作的MPM列表可被用于当前块P。
例如,基于当前块P的上方邻近块H或I制作的MPM列表可被用于当前块P。
例如,基于当前块P的右上方邻近块J制作的MPM列表可被用于当前块P。
例如,当前块P的左上方邻近块、上方邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少两个邻近块的MPM列表可被用于当前块P。
例如,当前块P的左上方邻近块、上方邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少三个邻近块的MPM列表可被用于当前块P。
例如,当前块P的左上方邻近块、上方邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少四个邻近块的MPM列表可被用于当前块P。
例如,当前块P的左上方邻近块、上方邻近块、右上方邻近块、左侧邻近块和左下方邻近块中的至少五个邻近块的MPM列表可被用于当前块P。
基于当前块、上层块和邻近块中的至少一个被推导出的帧内预测模式可被包括在用于当前块的一个MPM列表中。也就是说,如果不是多个MPM列表被用于当前块而是单个MPM列表被用于当前块,则MPM列表可由基于多个帧内预测模式中的至少一个被推导出的帧内预测模式中的至少一个组成,其中,所述多个帧内预测模式基于当前块、上层块和邻近块中的至少一个。
如果用于当前块的N个MPM列表包括用于上层块和邻近块中的至少一个的MPM列表,则可确定制作N个MPM列表的顺序。这里,N可以是0或者正整数。
可在编码器和解码器中预先设置制作MPM列表的顺序。或者,可基于每个相应块的编码参数来确定制作MPM列表的顺序。或者,可基于当前块的编码参数来确定制作MPM列表的顺序。或者,关于制作MPM列表的顺序的信息可被熵编码/解码。
例如,在图14中,当前块可以是块H,并且用于当前块的MPM列表可被称为MPM_LIST_CUR。
基于当前块的上层块制作的用于块X、W、V和U的MPM列表可分别被称为MPM_LIST_X、MPM_LIST_W、MPM_LIST_V和MPM_LIST_U。
另外,基于当前块的邻近块制作的用于块L、E和G的MPM列表可分别被称为MPM_LIST_L、MPM_LIST_E和MPM_LIST_G。
可按照随后描述的方法中的至少一种方法来确定制作用于当前块的N个MPM列表的顺序。在随后描述的方法中使用的上层块和/或邻近块的数量仅是示例,并因此也可以使用不同数量的上层块和/或邻近块。
例如,可按照MPM_LIST_CUR->MPM_LIST_X->MPM_LIST_W->MPM_LIST_V->MPM_LIST_U的顺序针对当前块H制作多个MPM列表。
例如,可按照MPM_LIST_U->MPM_LIST_V->MPM_LIST_W->MPM_LIST_X->MPM_LIST_CUR的顺序针对当前块H制作多个MPM列表。
例如,当MPM_LIST_CUR被用作第一MPM列表时,可使用用于按照深度值的升序或降序排列的至少K个上层块的MPM列表,针对当前块H制作多个MPM列表。这里,K可以是0或者正整数。
例如,可按照MPM_LIST_CUR->MPM_LIST_L->MPM_LIST_G->MPM_LIST_E的顺序针对当前块H制作多个MPM列表。
例如,可按照MPM_LIST_L->MPM_LIST_G->MPM_LIST_E->MPM_LIST_CUR的顺序针对当前块H制作多个MPM列表。
例如,当MPM_LIST_CUR被用作第一MPM列表时,可按照预定顺序使用用于左上方邻近块、左侧邻近块、左下方邻近块、上方邻近块和右上方邻近块中的至少一个的MPM列表来针对当前块H制作多个MPM列表。
例如,可按照MPM_LIST_CUR->MPM_LIST_X->MPM_LIST_L的顺序针对当前块H制作多个MPM列表。
例如,可按照MPM_LIST_CUR->MPM_LIST_L->MPM_LIST_X的顺序针对当前块H制作多个MPM列表。
例如,可按照以下顺序针对当前块H制作多个MPM列表:MPM_LIST_CUR->针对按照预定顺序的K个上层块的MPM列表->针对按照预定顺序的L个邻近块的MPM列表。这里,K和L中的每一个可以是0或者正整数。
例如,可按照以下顺序针对当前块H制作多个MPM列表:MPM_LIST_CUR->针对按照预定顺序的L个邻近块的MPM列表->针对按照预定顺序的K个上层块的MPM列表。这里,K和L中的每一个可以是0或者正整数。
例如,可按照以下顺序针对当前块H制作多个MPM列表:MPM_LIST_CUR->针对按照预定顺序的上层块或邻近块中的至少K个块的MPM列表。这里,K可以是正整数。
例如,可使用MPM_LIST_CUR和针对按照预定顺序的上层块或邻近块中的至少K个块的MPM列表,针对当前块H制作多个MPM列表。这里,K可以是正整数。
在后的MPM列表可不包括在前的MPM列表中的帧内预测模式。
另外,用于所述在前的MPM列表的指示符的可变长码可短于用于所述在后的MPM列表的指示符的可变长码。
所述在前的MPM列表可包括比所述在后的MPM列表更少数量的候选。
指示符可按照制作MPM列表的顺序被分配给MPM列表。
用于当前块的N个MPM列表可包括根据制作MPM列表的多个顺序中的至少一个顺序的用于上层块和邻近块中的至少一个的MPM列表。这里,多个MPM列表可被制作为不冗余地包括相同的帧内预测模式。这里,N可以是0或正整数。
可用MPM_LIST_1、MPM_LIST_2、…MPM_LIST_N来表示用于当前块的N个MPM列表。MPM_LIST_CUR、MPM_LIST_X、MPM_LIST_W、MPM_LIST_V、MPM_LIST_U、MPM_LIST_L、MPM_LIST_E和MPM_LIST_G中的至少一个可对应于MPM_LIST_1、MPM_LIST_2、…MPM_LIST_N中的至少一个。
可用C1、C2、...CN来表示各个MPM列表中可包括的帧内预测模式的数量。N、C1、C2、...CN中的每一个可以是0或正整数。C1至CN中的一部分或全部可相等或不同。另外,可在编码器和解码器中预先确定C1、C2、…CN中的至少一个。另外,可基于每个相应块的编码参数来确定C1、C2、…CN中的至少一个。另外,C1、C2、…CN中至少一个可被熵编码/解码。
例如,可用MPM_LIST_1_MODE_1、MPM_LIST_1_MODE_2、...,MPM_LIST_1_MODE_C1来表示MPM_LIST_1中包括的帧内预测模式。
为了防止在MPM列表中冗余地包括相同的帧内预测模式,可使用在后的MPM列表中的帧内预测模式来检查包括在在前的MPM列表中的帧内预测模式的冗余。当在冗余检查之后存在冗余的帧内预测模式时,可从MPM列表中去除该帧内预测模式。在冗余模式被去除之后,可将预定帧内预测模式添加到MPM列表。
可在制作多个MPM列表的步骤中执行对MPM列表中包括的模式的冗余检查。或者,可在多个MPM列表全部被制作之后执行冗余检查。或者,可在每次将帧内预测模式包括在MPM列表中时执行冗余检查。
例如,如果用于当前块的MPM_LIST_1包括C1个帧内预测模式,则MPM_LIST_1中的帧内预测模式可以是不冗余的MPM_LIST_1_MODE_1、MPM_LIST_1_MODE_2、...、MPM_LIST_1_MODE_C1。
例如,如果MPM_LIST_2包括C2个非冗余帧内预测模式,则可检查MPM_LIST_2中的每个帧内预测模式是否与MPM_LIST_1中的帧内预测模式中的至少一个相同。
如果MPM_LIST_2中包括的帧内预测模式MPM_LIST_2_MODE_X与MPM_LIST_1中包括的模式相同,则可从MPM_LIST_2去除冗余的帧内预测模式MPM_LIST_2_MODE_X。这里,MPM_LIST_2_MODE_X可以是MPM_LIST_2_MODE_1、MPM_LIST_2_MODE_2、…、MPM_LIST_2_MODE_C2中的至少一个。
例如,如果从MPM_LIST_2去除了至少一个帧内预测模式,则预定帧内预测模式中的至少一个帧内预测模式可被包括在MPM_LIST_2中。所述预定帧内预测模式中的被包括在MPM_LIST_2中的所述至少一个帧内预测模式可不与MPM_LIST_1中包括的帧内预测模式中的至少一个冗余。或者,所述预定帧内预测模式中的被包括在MPM_LIST_2中的所述至少一个帧内预测模式可不与MPM_LIST_1中包括的帧内预测模式中的任何一个冗余。
被添加用于替代冗余的预测模式的所述预定帧内预测模式可包括包含例如以下项的帧内预测模式中的至少一个:INTRA_PLANAR、INTRA_DC、水平模式、垂直模式、45度模式、135度模式、225度模式、MPM_LIST_2_MODE_X±delta、INTRA_DM和INTRA_LM。INTRA_DM可表示这样的帧内预测模式:在该帧内预测模式中,帧内色度预测模式被确定为与帧内亮度预测模式相同。另外,INTRA_LM可表示这样的帧内预测模式:在该帧内预测模式中,可基于亮度预测块/亮度残差块/亮度重建块中的至少一个来产生色度预测块/色度残差块/色度重建块中的至少一个。另外,delta(增量)可以是正整数。
当delta连续地从1每次增加1直到MPM_LIST_2中包括的帧内预测模式的数量为C2为止时,预定帧内预测模式(MPM_LIST_2_MODE_X±增量)可被包括在MPM_LIST_2中。或者,预定帧内预测模式可按照预定顺序排列,并且预定帧内预测模式中的至少一个可按照所述顺序被包括在MPM_LIST_2中,直到MPM_LIST_2中包括的帧内预测模式的数量是C2为止。
例如,如果用于当前块的MPM_LIST_3包括C3个非冗余帧内预测模式,则可检查MPM_LIST_3中包括的每个帧内预测模式是否等于MPM_LIST_1和MPM_LIST_2中包括的帧内预测模式中的至少一个。
如果MPM_LIST_3中包括的帧内预测模式MPM_LIST_3_MODE_X与MPM_LIST_1或MPM_LIST_2中包括的模式相同,则可从MPM_LIST_3中去除MPM_LIST_3_MODE_X。这里,MPM_LIST_3_MODE_X可以是MPM_LIST_3_MODE_1、MPM_LIST_3_MODE_2、...,MPM_LIST_3_MODE_C3中的至少一个。
例如,如果从MPM_LIST_3中去除了至少一个帧内预测模式,则预定帧内预测模式中的至少一个帧内预测模式可被包括在MPM_LIST_3中。所述预定帧内预测模式中的被包括在MPM_LIST_3中的所述至少一个帧内预测模式可不与MPM_LIST_1和MPM_LIST_2中包括的帧内预测模式中的至少一个冗余。或者,所述预定帧内预测模式中的被包括在MPM_LIST_3中的所述至少一个帧内预测模式可不与MPM_LIST_1和MPM_LIST_2中包括的帧内预测模式中的任何一个冗余。
例如,当delta连续地从1每次增加1直到MPM_LIST_3中包括的帧内预测模式的数量为C3为止时,预定帧内预测模式(MPM_LIST_3_MODE_X±delta)可被包括在MPM_LIST_3中。或者,预定帧内预测模式可按照预定顺序排列,并且预定帧内预测模式中的至少一个可按照所述顺序被包括在MPM_LIST_3中,直到MPM_LIST_3中包括的帧内预测模式的数量是C3为止。
例如,如果用于当前块的MPM_LIST_K包括CK个非冗余帧内预测模式,则可检查MPM_LIST_K中包括的每个帧内预测模式是否与MPM_LIST_1、MPM_LIST_2、…MPM_LIST_(K-1)中包括的帧内预测模式中的至少一个相同。K可以是等于或小于可用于当前块的MPM列表的最大数量N的正整数。
如果MPM_LIST_K中包括的帧内预测模式MPM_LIST_K_MODE_X与MPM_LIST_1、MPM_LIST_2、…MPM_LIST_(K-1)中包括的模式相同,则可从MPM_LIST_K中去除冗余的帧内预测模式MPM_LIST_K_MODE_X。这里,MPM_LIST_K_MODE_X可以是MPM_LIST_K_MODE_1、MPM_LIST_K_MODE_2、…、MPM_LIST_K_MODE_CK中的至少一个。
例如,如果从MPM_LIST_K去除了至少一个帧内预测模式,则可将预定帧内预测模式中的至少一个包括在MPM_LIST_K中。所述预定帧内预测模式中的被包括在MPM_LIST_K中的所述至少一个帧内预测模式可不与MPM_LIST_1、MPM_LIST_2、…、以及MPM_LIST_(K-1)中包括的帧内预测模式中的至少一个冗余。或者,所述预定帧内预测模式中的被包括在MPM_LIST_K中的所述至少一个帧内预测模式可不与MPM_LIST_1、MPM_LIST_2、…、以及MPM_LIST_(K-1)中包括的帧内预测模式中的任何一个冗余。
例如,为了代替从MPM_LIST_K中去除的帧内预测模式,在预定帧内预测模式之中存在不与MPM_LIST_1、MPM_LIST_2、…、以及MPM_LIST_(K-1)中包括的帧内预测模式中的至少一个或任何一个冗余的特定帧内预测模式时,可将所述特定帧内预测模式添加到MPM_LIST_K中。
例如,当delta连续地从1每次增加1直到MPM_LIST_K中包括的帧内预测模式的数量为CK为止时,预定帧内预测模式(MPM_LIST_K_MODE_X±delta)可被包括在MPM_LIST_K中。或者,预定帧内预测模式可按照预定顺序排列,并且预定帧内预测模式中的至少一个可按照所述顺序被包括在MPM_LIST_K中,直到MPM_LIST_K中包括的帧内预测模式的数量是CK为止。
如果使用N个MPM列表来推导当前块的帧内预测模式或者当前块的帧内预测模式被熵编码/解码,则针对N个MPM列表中的每一个,可对指示当前块的帧内预测模式是否被包括在N个MPM列表中的每一个中的帧内预测模式之中的指示符(MPM标志)进行熵编码/解码。
例如,如果N个MPM列表被使用,则最多N个指示符可被编码/解码,其中,每个指示符用于一个MPM列表,诸如,MPM_FLAG_1、MPM_FLAG_2、...、MPM_FLAG_N。或者,最多(N-1)个指示符可被编码/解码,在这种情况下,可基于(N-1)个指示符中的一部分或者全部来推导用于另一个MPM列表的未被编码/解码的指示符。例如,可针对N个MPM列表中的任意一个MPM列表(例如,按照预定顺序计数的最后的MPM列表)不对指示符编码/解码。在特定MPM列表的帧内预测模式之中存在当前块的帧内预测模式时,对于所述特定MPM列表,指示符可具有第一值。在当前块的帧内预测模式不存在时,所述指示符可具有第二值。这里,第一值可以是1,第二值可以是0。也就是说,指示符可以是标志信息。
另外,如果在N个指示符中,用于特定MPM列表的指示符具有第一值,则除了用于所述特定MPM列表的指示符之外的用于其它MPM列表的指示符可具有第二值。
另外,如果在N个指示符之中的用于第K MPM列表的指示符具有第一值,则用于第(K+1)MPM列表至第N MPM列表的指示符可不被熵编码/解码。这里,K可以是等于或大于1并且等于或小于N的正整数。
在N个MPM列表中的特定MPM列表中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式时,指示所述特定MPM列表中的与当前块的帧内预测模式相同的帧内预测模式的位置或编号的索引信息(MPM索引)可被熵编码。另外,可通过对所述索引信息进行熵解码来识别在所述特定MPM列表中包括的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式。所述索引信息可被熵编码为固定长度码或者可变长度码。另外,可使用所述索引信息来推导当前块的帧内预测模式。
在N个MPM列表中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式时,可在编码器中对当前块的剩余帧内预测模式进行熵编码。所述剩余帧内预测模式可被用于识别未被包括在MPM列表中的至少一个MPM列表中的当前块的帧内预测模式。或者,所述剩余帧内预测模式可被用于识别未被包括在MPM列表中的任何一个MPM列表中的当前块的帧内预测模式。
如果帧内预测模式的总数是Y,并且包括在用于当前块的N个MPM列表中的帧内预测模式的数量的总和是X,则指示在(Y-X)个帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的剩余帧内预测模式可被熵编码。这里,可基于帧内预测模式的大小、角度、顺序和标识号中的至少一个来排列在N个MPM列表中包括的全部X个帧内预测模式。可按照升序或降序来进行所述排列。可将排列后的X个帧内预测模式与当前块的帧内预测模式进行比较。如果所述比较表明当前块的帧内预测模式大于排列后的X个帧内预测模式,则可从当前块的帧内预测模式减去预定值。所述预定值可以是1。
或者,例如,可将当前块的帧内预测模式与在排列后的X个帧内预测模式之中的具有最大参考值(例如,就大小、角度、顺序和标识号中的至少一个而言)的模式进行比较。如果该比较表明当前块的帧内预测模式大于所述具有最大参考值的模式,则可从当前块的帧内预测模式减去所述预定值。
另外,例如,可将当前块的相减后的帧内预测模式与在排列后的X个帧内预测模式之中的具有第二大参考值的模式进行比较。如果该比较表明相减后的帧内预测模式大于所述具有第二大参考值的模式,则可从当前块的相减后的帧内预测模式进一步减去所述预定值。
基于比较的减法操作可被重复直到在排列后的X个帧内预测模式之中具有最小参考值的模式为止。当前块的最终的相减后的帧内预测模式可被熵编码为所述剩余帧内预测模式。
当前块的所述剩余帧内预测模式可被熵解码并被用于识别在未被包括在N个MPM列表中的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式。如果帧内预测模式的总数是Y并且在用于当前块的N个MPM列表中包括的帧内预测模式的数量的总和是X,则可对指示在(Y-X)个帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的所述剩余帧内预测模式进行熵解码。
在所述剩余帧内预测模式被熵解码之后,可基于帧内预测模式的大小、角度、顺序和标识号中的至少一个来排列所述X个帧内预测模式。可按照升序或降序来进行所述排列。可将被熵解码的所述剩余帧内预测模式与所述X个帧内预测模式的值进行比较。如果所述比较表明被熵解码的所述剩余帧内预测模式等于或大于所述X个帧内预测模式的值,则可将被熵解码的所述剩余帧内预测模式的值增加预定值。所述预定值可以是1。
或者,例如,可将在排列后的X个帧内预测模式之中具有最小参考值(例如,就帧内预测模式的大小、角度、顺序和标识号中的至少一个而言)的模式与被熵解码的所述剩余帧内预测模式进行比较。如果该比较表明被熵解码的所述剩余帧内预测模式等于或大于所述具有最小参考值的模式的值,则可将所述预定值与被熵解码的所述剩余帧内预测模式的值相加。
另外,可将在排列后的X个帧内预测模式之中具有第二小参考值的模式与被熵解码的所述剩余帧内预测模式的相加后的值进行比较。如果该比较表明被熵解码的所述剩余帧内预测模式的相加后的值等于或大于所述具有第二小参考值的模式的值,则可进一步将所述预定值与被熵解码的所述剩余帧内预测模式的相加后的值相加。
基于比较的加法操作可被重复直到在排列后的X个帧内预测模式之中具有最大参考值的模式为止。最终的相加后的剩余帧内预测模式可被熵解码为当前块的帧内预测模式。
可按照以下实施例的方式对N个MPM列表被用于的当前块的帧内预测模式进行熵编码/解码。
下面将描述对于一个MPM列表被用于当前块的情况的实施例。
在MPM_LIST_1中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可将指示在MPM_LIST_1中是否存在与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1熵编码为第一值。如果MPM_FLAG_1是第一值,则关于MPM_LIST_1的索引信息MPM_IDX_1可被进一步熵编码。
在MPM_LIST_1中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可将指示在MPM_LIST_1中是否存在与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1熵编码为第二值。如果MPM_FLAG_1是第二值,则所述剩余帧内预测模式REM_MODE可被进一步熵编码。
解码器可对指示在MPM_LIST_1中是否存在与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1进行熵解码。如果MPM_FLAG_1是第一值,则解码器可通过进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵解码来推导当前块的帧内预测模式。
如果MPM_FLAG_1是第二值,则解码器可通过进一步对所述剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。
下面将描述对于两个MPM列表被用于当前块的情况的实施例。
在MPM_LIST_1和MPM_LIST_2中包括的帧内预测模式之中存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可对指示MPM_LIST_1和MPM_LIST_2之中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1和MPM_FLAG_2进行熵编码。如果在MPM_LIST_1中存在当前块的帧内预测模式,则MPM_FLAG_1可以是第一值,并且MPM_FLAG_2可以是第二值。在这种情况下,关于MPM_LIST_1的索引信息MPM_IDX_1可被进一步熵编码。或者,如果在MPM_LIST_2中存在当前块的帧内预测模式,则MPM_FLAG_1可以是第二值,并且MPM_FLAG_2可以是第一值。在这种情况下,关于MPM_LIST_2的索引信息MPM_IDX_2可被进一步熵编码。
在MPM_LIST_1和MPM_LIST_2中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可将指示MPM_LIST_1和MPMS_LIST_2中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1和MPM_FLAG_2熵编码为第二值。如果MPM_FLAG_1和MPM_FLAG_2是第二值,则所述剩余帧内预测模式REM_MODE可被进一步熵编码。
解码器可对指示MPM_LIST_1和MPM_LIST_2中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1和MPM_FLAG_2进行熵解码。如果MPM_FLAG_1是第一值并且MPM_FLAG_2是第二值,则在MPM_LIST_1中存在当前块的帧内预测模式,并且解码器可通过进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵解码来推导当前块的帧内预测模式。或者,如果MPM_FLAG_1是第二值并且MPM_FLAG_2是第一值,则在MPM_LIST_2中存在当前块的帧内预测模式,并且解码器可通过进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵解码来推导当前块的帧内预测模式。或者,如果MPM_FLAG_1和MPM_FLAG_2是第二值,则解码器可通过对所述剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。这里,MPM_FLAG_1和MPM_FLAG_2两者都是第一值的情况不会发生。
在下文中,将描述针对两个MPM列表被用于当前块的情况的另一实施例。
[表5]
如在[表5]的示例中,编码器可通过根据制作多个MPM列表的多个顺序中的至少一个顺序依次检查在MPM_LIST_1和MPM_LIST_2中的每一个中包括的帧内预测模式之中是否存在与当前块的帧内预测模式相同的帧内预测模式,来对当前块的帧内预测模式进行熵编码。
例如,如果在MPM_LIST_1中存在与当前块的帧内预测模式相同的帧内预测模式,则MPM_FLAG_1可被熵编码为第一值。这里,关于MPM_LIST_1的索引信息MPM_IDX_1可被进一步熵编码。
例如,在MPM_LIST_1中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_1可被熵编码为第二值。这里,在MPM_LIST_2中存在与当前块的帧内预测模式相同的帧内预测模式时(在MPM_FLAG_1是第二值的情况下),MPM_FLAG_2可被熵编码为第一值。这里,关于MPM_LIST_2的索引信息MPM_IDX_2可被进一步熵编码。
例如,在MPM_LIST_1和MPM_LIST_2中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_1和MPM_FLAG_2可被熵编码为第二值。这里(如果MPM_FLAG_1和MPM_FLAG_2是第二值),剩余帧内预测模式REM_MODE可被进一步熵编码。
如在[表5]的示例中,解码器可按照制作多个MPM列表的多个顺序中的至少一个顺序依次地对指示在MPM_LIST_1和MPM_LIST_2中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1和/或MPM_FLAG_2进行熵解码。
例如,如果MPM_FLAG_1被熵解码为第一值,则在MPM_LIST_1中存在当前块的帧内预测模式,并且可通过进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵解码来推导当前块的帧内预测模式。
例如,如果MPM_FLAG_1被熵解码为第二值,则可对MPM_FLAG_2进行熵解码。如果解码的MPM_FLAG_2是第一值,则在MPM_LIST_2中存在当前块的帧内预测模式,并且可通过进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵解码来推导当前块的帧内预测模式。
例如,如果MPM_FLAG_1和MPM_FLAG_2被熵解码为第二值,则可通过进一步对剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。这里,可依次地执行确定MPM_FLAG_1和MPM_FLAG_2是第一值还是第二值的步骤。
现在,将描述针对N个MPM列表被用于当前块的情况的实施例。
在MPM_LIST_1、MPM_LIST_2、…、和MPM_LIST_N中包括的帧内预测模式中存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可对指示MPM_LIST_1、MPM_LIST_2、…、和MPM_LIST_N中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N进行熵编码。如果在MPM_LIST_1中存在当前块的帧内预测模式,则MPM_FLAG_1可以是第一值,并且除了MPM_FLAG_1之外的MPM_FLAG_2、…、和MPM_FLAG_N可以是第二值。在这种情况下,可进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵编码。
或者,如果在MPM_LIST_2中存在当前块的帧内预测模式,则MPM_FLAG_2可以是第一值,并且除了MPM_FLAG_2之外的MPM_FLAG_1、…、和MPM_FLAG_N可以是第二值。在这种情况下,可进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵编码。
或者,如果在MPM_LIST_N中存在当前块的帧内预测模式,则MPM_FLAG_N可以是第一值,并且除了MPM_FLAG_N之外的MPM_FLAG_1、…、和MPM_FLAG_(N-1)可以是第二值。在这种情况下,可进一步对关于MPM_LIST_N的索引信息MPM_IDX_N进行熵编码。
在MPM_LIST_1、MPM_LIST_2、…、和MPM_LIST_N中包括的帧内预测模式之中不存在与当前块的帧内预测模式相同的帧内预测模式时,编码器可将指示MPM_LIST_1、MPM_LIST_2、…、和MPM_LIST_N中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N熵编码为第二值。如果MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N是第二值,则可进一步对剩余帧内预测模式REM_MODE进行熵编码。
解码器可对指示MPM_LIST_1、MPM_LIST_2、…、和MPM_LIST_N中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N进行熵解码。如果MPM_FLAG_1是第一值并且除了MPM_FLAG_1之外的MPM_FLAG_2、…、和MPM_FLAG_N是第二值,则在MPM_LIST_1中可存在当前块的帧内预测模式。在这种情况下,可通过进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵解码来推导当前块的帧内预测模式。
或者,如果MPM_FLAG_2是第一值并且除了MPM_FLAG_2之外的MPM_FLAG_1、…、和MPM_FLAG_N是第二值,则在MPM_LIST_2中可存在当前块的帧内预测模式。在这种情况下,可通过进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵解码来推导当前块的帧内预测模式。
或者,如果MPM_FLAG_N是第一值并且除了MPM_FLAG_N之外的MPM_FLAG_1、…、和MPM_FLAG_(N-1)是第二值,则在MPM_LIST_N中可存在当前块的帧内预测模式。在这种情况下,可通过进一步对关于MPM_LIST_N的索引信息MPM_IDX_N进行熵解码来推导当前块的帧内预测模式。
或者,如果MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N是第二值,则可通过进一步对剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。这里,MPM_FLAG_1、MPM_FLAG_2、…、和MPM_FLAG_N全部是第一值的情况不会发生。
现在,将描述针对N个MPM列表被用于当前块的情况的另一实施例。
[表6]
如在[表6]的示例中,编码器可通过根据制作多个MPM列表的多个顺序中的至少一个顺序依次检查在MPM_LIST_1、MPM_LIST_2、…、MPM_LIST_N中的每一个中包括的帧内预测模式之中是否存在与当前块的帧内预测模式相同的帧内预测模式,来对当前块的帧内预测模式进行熵编码。
例如,如果在MPM_LIST_1中存在与当前块的帧内预测模式相同的帧内预测模式,则MPM_FLAG_1可被熵编码为第一值。这里,可进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵编码。
例如,在MPM_LIST_1中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_1可被熵编码为第二值。这里,在MPM_LIST_2中存在与当前块的帧内预测模式相同的帧内预测模式时(在MPM_FLAG_1是第二值的情况下),MPM_FLAG_2可被熵编码为第一值。这里,可进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵编码。
例如,在MPM_LIST_1、MPM_LIST_2、…、MPM_LIST_(N-1)中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_(N-1)可被熵编码为第二值。这里,如果在MPM_LIST_N中存在与当前块的帧内预测模式相同的帧内预测模式(如果MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_(N-1)是第二值),则可进一步对关于MPM_LIST_N的索引信息MPM_IDX_N进行熵编码。
例如,在MPM_LIST_1、MPM_LIST_2、…、MPM_LIST_N中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_N可被熵编码为第二值。这里,可进一步对剩余帧内预测模式REM_MODE进行熵编码。
如在[表6]的示例中,解码器可按照制作多个MPM列表的多个顺序中的至少一个顺序依次地对指示在MPM_LIST_1、MPM_LIST_2、…、MPM_LIST_N中的哪个列表包括与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_N中的至少一个进行熵解码。
例如,如果MPM_FLAG_1被熵解码为第一值,则在MPM_LIST_1中存在当前块的帧内预测模式,并且可通过进一步对关于MPM_LIST_1的索引信息MPM_IDX_1进行熵解码来推导当前块的帧内预测模式。
例如,如果MPM_FLAG_1被熵解码为第二值,则可对MPM_FLAG_2进行熵解码。如果解码的MPM_FLAG_2是第一值,则在MPM_LIST_2中存在当前块的帧内预测模式,并且可通过进一步对关于MPM_LIST_2的索引信息MPM_IDX_2进行熵解码来推导当前块的帧内预测模式。
例如,如果MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_(N-1)被熵解码为第二值,则可对MPM_FLAG_N进行熵解码。如果解码的MPM_FLAG_N是第一值,则在MPM_LIST_N中存在当前块的帧内预测模式,并且可通过进一步对关于MPM_LIST_N的索引信息MPM_IDX_N进行熵解码来推导当前块的帧内预测模式。
例如,如果MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_N被熵解码为第二值,则可通过进一步对剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。这里,可依次地执行确定MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_N是第一值还是第二值的步骤。
可对指定MPM列表的标志(诸如MPM_FLAG_N)或者指示多个MPM列表之一的索引进行编码/解码。可对指示基于MPM的帧内预测推导方法是否将被用于当前块(或者当前条带、当前画面、当前序列等)的信息进行编码/解码。如果该信息指示基于MPM的帧内预测推导方法被使用,则可对所述索引进行编码/解码。可在编码器/解码器中固定地预先定义多个MPM列表的数量或类型中的至少一个,或者,可基于与当前块/邻近块的大小、深度、形状、位置等相关的参数来可变地确定多个MPM列表的数量或类型中的至少一个。例如,在编码器/解码器中预先定义的MPM列表的数量可以是1、2、3或更大。在每个MPM列表中包括的帧内预测模式的最大数量可被强制为相等。可在编码器/解码器中固定地预先设置所述最大数量,或者可按预定单元(例如,序列、画面、条带、块等)用信号传送所述最大数量。如果在特定MPM列表中包括的帧内预测模式的数量小于所述最大数量,则可将预定模式添加到所述特定MPM列表中。添加的模式可以是预设的默认模式、或者是在另一MPM列表中包括的帧内预测模式。值得注意的是,可添加与所述特定MPM列表中包括的帧内预测模式不同的模式。在MPM列表之间的冗余检查可被省略。MPM列表之一可与另一MPM列表共享至少一个相同的帧内预测模式。
现在,将描述针对N个MPM列表被用于当前块的情况的另一实施例。
编码器可按照制作多个MPM列表的多个顺序中的至少一个顺序来制作范围从MPM_LIST_1到MPM_LIST_N的多个MPM列表。在N个MPM列表中的候选帧内预测模式的总数量可以是K。N和K可以是正整数。
例如,MPM_LIST_combined可以由N个MPM列表的候选帧内预测模式之中的K个或更少的候选帧内预测模式组成。
例如,如果在MPM_LIST_combined中存在与当前块的帧内预测模式相同的帧内预测模式,则指示在MPM_LIST_combined中是否存在与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_combined可被熵编码为第一值。这里,可另外地对关于MPM_LIST_combined的索引信息MPM_IDX_combined进行熵编码。
在MPM_LIST_combined中不存在与当前块的帧内预测模式相同的帧内预测模式时,MPM_FLAG_combined可被熵编码为第二值。如果MPM_FLAG_combined是第二值,则可另外地对剩余帧内预测模式REM_MODE进行熵编码。
解码器可对指示在MPM_LIST_combined中是否存在与当前块的帧内预测模式相同的帧内预测模式的指示符MPM_FLAG_combined进行熵解码。如果MPM_FLAG_combined是第一值,则可通过进一步对索引信息MPM_IDX_combined进行熵解码来推导当前块的帧内预测模式。如果MPM_FLAG_combined是第二值,则可通过另外地对剩余帧内预测模式REM_MODE进行熵解码来推导当前块的帧内预测模式。
根据本发明,可通过进行编码/解码来推导当前块的帧内预测模式。这里,可在不使用邻近块的帧内预测模式的情况下对当前块的帧内预测模式进行熵编码/解码。
根据本发明,不同颜色分量的帧内预测模式可被用于推导当前块的帧内预测模式。例如,如果当前块是色度块,则与目标色度块相应的一个或更多个相应亮度块的帧内预测模式可被用于推导当前块的帧内预测模式。可基于色度块的大小、形状或编码参数中的至少一个来确定所述相应亮度块。或者,可基于亮度块的大小、形状或编码参数中的至少一个来确定所述相应亮度块。
图15是示出颜色分量的组成比为4:2:0的亮度块和色度块的示例性示图。
在图15中示出的示例中,与色度块相应的相应亮度块可以是块A、块B、块C和块D中的至少一个。
例如,与色度块的样点位置(0,0)相应的亮度块A的帧内预测模式可被推导作为色度块的帧内预测模式。
例如,与色度块的中心处的样点位置(nS/2,nS/2)相应的亮度块D的帧间预测模式可被推导作为色度块的帧内预测模式。
例如,可使用与色度块的大小相应的亮度块内的多个块中的一个或更多个块的帧内预测模式的组合来推导色度块的帧内预测模式。例如,和与样点位置(0,0)相应的亮度块A的帧内预测模式和与样点位置(nS/2,nS/2)相应的亮度块D的帧内预测模式的平均值所对应的模式可被推导作为色度块的帧内预测模式。或者,和与色度块的大小相应的亮度块内的块A、块B、块C和块D的帧内预测模式的平均值相应的模式可被推导作为色度块的帧内预测模式。可使用包括最大值、最小值、最频繁值、中值和加权平均值的各种统计值中的一个或更多个来代替平均值。
例如,可基于亮度块的大小、形状或深度中的至少一个来推导色度块的帧内预测模式。例如,可将与色度块的样点位置(0,0)相应的亮度块A的大小和与色度块的样点位置(nS/2,nS/2)相应的亮度块D的大小进行比较,并将具有相对较大大小的亮度块D的帧内预测模式推导作为色度块的帧内预测模式。或者,如果与色度块的预定位置相应的亮度块的大小等于或大于色度块的大小,则可使用亮度块的帧内预测模式来推导色度块的帧内预测模式。
例如,可基于色度块的大小、形状或深度中的至少一个来推导色度块的帧内预测模式。例如,如果色度块的大小落在预定范围内,则与色度块的样点位置(0,0)相应的亮度块的帧内预测模式可被推导作为色度块的帧内预测模式。或者,如果色度块的大小落在预定范围内,则可将与色度块的样点位置(0,0)相应的亮度块的大小和与色度块的样点位置(nS/2,nS/2)相应的亮度块的大小进行比较,并将具有较大大小的亮度块的帧内预测模式推导作为色度块的帧内预测模式。或者,如果色度块被成形为矩形,则与色度块的中心位置相应的亮度块的帧内预测模式可被推导作为色度块的帧内预测模式。
例如,如果当前块被划分为下层块或子块,则可使用用于推导当前块的帧内预测模式的上述多种方法中的至少一种方法来推导每个子块的帧内预测模式。
当前块的大小和子块的大小可以是M×N。M和N可以是相同的正整数或者不同的正整数。例如,当前块或子块的大小可以是CTU、CU、SU(信令单元)、QTMax、QTMin、BTMax、BTMin、4×4、8×8、16×16、32×32、64×64、128×128、256×256、4×8、8×16、16×8、32×64、32×8和4×32中的至少一个。这里,QTMax和QTMin可分别表示允许划分为四叉树的最大大小和最小大小,BTMax和BTMin可分别表示允许划分为二叉树的最大大小和最小大小。在下文中,子块的大小可表示子块的划分结构。
子块大小可根据当前块的大小变化。例如,当前块的垂直大小和水平大小的1/N可以是子块大小。N可以是正整数,并且可以是2、4、8、16、32和64中的至少一个。例如,如果当前块的大小是32×32并且当前块的水平大小和垂直大小的1/N中的N是4,则子块大小可以是8×8。
或者,子块大小可以是预定的固定大小,而不管当前块的大小如何。例如,子块大小可以是最小大小,而不管当前块的大小如何,并且子块大小可以是例如4×4。
或者,可基于当前块的邻近块的划分结构来确定子块大小。例如,如果附近的邻近块被划分,则可通过对当前块进行划分来确定子块大小。
可基于当前块的邻近块的帧内预测模式来确定子块大小。例如,可通过基于以下边界将块划分为子块来确定子块大小,其中,邻近块的帧内预测模式根据所述边界而变得不同。
可基于邻近块的编码参数来确定子块大小。例如,可通过基于邻近块是帧内编码块还是帧间编码块将块划分为子块来确定子块大小。
可将当前块大小、子块大小、以及当前块被N等分所依据的N中的至少一个固定为预定值。
例如,在用于当前块的预定的固定大小是16×16的情况下,如果当前块的大小是16×16,则当前块可被划分为子块,并且用于每个子块的帧内预测模式可被推导。
例如,在用于当前块的预定的固定大小是CTU并且N是4的情况下,如果当前块的大小是CTU,则可基于子块来推导帧内预测模式,其中,每个子块是通过将CTU的高度和宽度除以4而产生的。
可将一个或更多个子块进一步划分为更小的块。例如,如果当前块的大小是32×32并且子块大小是16×16,则可将一个或更多个子块中的每一个划分为大小分别为8×8、4×4、16×8、4×16等的更小块。
当前块大小、子块大小、以及当前块被N等分所依据的N中的至少一个可被编码/解码。
用于当前块的子块的划分结构可被编码/解码。当前块被划分成的子块的大小和/或形状方面可以变化。此外,可针对每个子块推导帧内预测模式。
可对指示使用邻近块的帧内预测模式来推导当前块的帧内预测模式的指示符(例如,标志)进行编码/解码。例如,所述指示符可以是NDIP_flag(邻近模式非独立帧内预测)。可针对当前块或每个子块中的至少一个对所述指示符进行编码/解码。可仅在当前块大小或子块大小与预定大小或预定大小范围相应时对所述指示符进行编码/解码。所述预定大小可以是例如64×64或BTMax。如上所述,当前块可被划分为多个子块。子块的划分结构可被预先定义或者被编码/解码。
如果对于当前块,NDIP_flag是1,则可使用邻近块的帧内预测模式来推导当前块的帧内预测模式或当前块的每个子块的帧内预测模式。在这种情况下,可不对用于当前块和/或子块的prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode、split_flag、QB_flag、quadtree_flag、binarytree_flag和Btype_flag中的至少一个进行编码/解码。
例如,如果对于当前块,NDIP_flag是1,则可对当前块的帧内预测模式进行解码,随后可使用解码的帧内预测模式以及邻近块的帧内预测模式来推导每个子块的帧内预测模式。在这种情况下,可不对用于子块的prev_intra_luma_pred_flag、mpm_idx、rem_intra_luma_pred_mode、intra_chroma_pred_mode、split_flag、QB_flag、quadtree_flag、binarytree_flag和Btype_flag中的至少一个进行编码/解码。
如果对于当前块,NDIP_flag是0,则可对与当前块或子块的帧内预测模式或子块的划分信息中的至少一个相关的信息进行编码/解码。
在当前块的多个子块之中,第一子块的帧内预测模式可按照与其它子块不同的方式被推导。第一子块可以是当前块中的多个子块之一。例如,第一子块可以是按Z字形扫描顺序的第一个子块。
第一子块的帧内预测模式可以指初始模式。例如,如果每个子块的帧内预测模式被推导为在所述每个子块左侧和上方的块的帧内预测模式的平均值,则可按照不同方法来推导所述初始模式。用于推导所述初始模式的所述不同方法可以是根据本发明的用于推导帧内预测模式的多种方法中的至少一种方法。
例如,MPM列表中列出的第N(例如,第一)模式可被推导作为所述初始模式。或者,当前块的一个或更多个邻近块的帧内预测模式中的最频繁的一个可被推导作为所述初始模式。或者,针对当前块编码/解码的帧内预测模式可被推导作为所述初始模式。或者,针对第一子块编码/解码的帧内预测模式可被推导作为所述初始模式。
关于对用于当前块中的子块的帧内预测模式的推导,可按照任意顺序来推导一个或更多个子块的帧内预测模式。所述任意顺序可以是扫描顺序,并且所述扫描可与光栅扫描、右上扫描、垂直扫描、水平扫描、对角扫描和zigzag扫描中的至少一个相应。按照所述扫描顺序被推导帧内预测模式的子块的数量可以是1或更大。可根据邻近块的帧内预测模式来自适应地确定所述任意顺序。
图16是描绘推导当前块被划分成的一个或更多个子块中的每个子块的帧内预测模式的实施例的示图。
首先,可确定当前块的大小是否与预定大小相应(S1610)。可根据当前块的水平长度或垂直长度来确定所述预定大小。例如,在步骤S1610可依赖于当前块的水平长度或垂直长度是否是用于划分为子块的可划分长度来进行确定操作。
例如,在当前块是水平长度和垂直长度相同的正方形的情况下,如果通过将水平长度和垂直长度中的每一个除以N而获得的长度等于或大于任意长度,则当前块的大小可与所述预定大小相应。例如,在N是4并且所述任意长度是4的情况下,如果当前块的大小是256×256、128×128、64×64、32×32和16×16之一,则当前块的大小可与所述预定大小相应。
例如,在当前块是水平长度和垂直长度不同的矩形的情况下,如果在通过将水平长度和垂直长度之中的较大者除以M而获得的长度与通过将水平长度和垂直长度之中的较小者除以N而获得的长度之中的较小者等于或大于任意长度,则当前块的大小可与所述预定大小相应。例如,在M是4,N是2,并且所述任意长度是4的情况下,如果当前块的大小是128×64、64×128、128×32、32×128、128×16、16×128、128×8、8×128、64×32、32×64、64×16、16×64、64×8、8×64、32×16、16×32、32×8、8×32、16×8和8×16中的一个,则当前块的大小可与所述预定大小相应。
例如,如果当前块没有被进一步划分,则当前块的大小可与所述预定大小相应。例如,如果关于当前块的划分信息、四叉树划分信息和/或二叉树划分信息是0(表示当前块没有被划分),并且当前块的水平长度或垂直长度大于最小长度,则当前块的大小可与所述预定大小相应。这里,所述最小长度可以是4。
如果当前块的大小不与所述预定大小相应(在S1610中为否),则可对当前块的划分信息、当前块的帧内预测模式或子块的帧内预测模式中的至少一个进行解码(S1660)。如果当前块未被划分,则可对当前块的帧内预测模式进行解码。如果当前块被划分为子块,则可对每个子块的帧内预测模式进行解码。
如果当前块的大小与所述预定大小相应(在S1610中为是),则可对NDIP_flag进行解码(S1620)。在下一步骤中,可检查解码的NDIP_flag的值(S1630)。
如果NDIP_flag是0(在S1630中为否),则可对关于当前块的划分信息、当前块的帧内预测模式、以及子块的帧内预测模式中的至少一个进行解码(S1660)。
如果NDIP_flag是1(在S1630中为是),则可将当前块划分为子块(S1640)。这里,可执行划分使得每个子块具有预定大小和/或形状。或者,可基于解码出的划分信息来执行划分。
在下一步骤中,可推导通过划分当前块而产生的子块的帧内预测模式(S1650)。可基于邻近块的帧内预测模式来推导块的帧内预测模式。或者,当前块的帧内预测模式可被解码并使用。
可使用针对当前块或子块推导的帧内预测模式来执行帧内预测(S1670)。
图17是描绘将当前块划分为子块的实施例的示图。
推导当前块中的多个子块的帧内预测模式的顺序可以是基于当前块的光栅扫描顺序。或者,推导当前块中的多个子块的帧内预测模式的顺序可以是基于预定块大小的光栅扫描顺序。例如,可按照C1、C2、C3、…、C16的顺序来推导子块的帧内预测模式。或者,可按照C1、C2、C5、C6、C3、C4、…、C12、C15、C16的顺序来推导子块的帧内预测模式。或者,可并行地推导每个子块的帧内预测模式。可按照用于推导当前块的帧内预测模式的多种方法中的至少一种方法来推导每个子块的帧内预测模式。
例如,如果当前块被划分为子块并且用于每个子块的帧内预测模式被推导,则可使用邻近块的帧内预测模式。
例如,在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的统计值可被推导作为所述每个子块的帧内预测模式。例如,如果所述统计值是平均值,则可通过下面的[等式4]来推导图17中示出的每个子块的帧内预测模式。
[等式4]
C1=(j+d+1)>>1,
C2=(C1+e+1)>>1,
C3=(C2+g+1)>>1,
C4=(C3+g+1)>>1,
C5=(j+C1+1)>>1,
C6=(C5+C2+1)>>1,
C7=(C6+C3+1)>>1,
C8=(C7+C4+1)>>1,
C9=(k+C5+1)>>1,
C10=(C9+C6+1)>>1,
C11=(C10+C7+1)>>1,
C12=(C11+C8+1)>>1,
C13=(l+C9+1)>>1,
C14=(C13+C10+1)>>1,
C15=(C14+C11+1)>>1,
C16=(C15+C12+1)>>1。
或者,可将在每个子块的位置(0,0)处的样点左侧和上方的块的大小彼此进行比较,并且可将具有较大大小的块的帧内预测模式推导作为所述每个子块的帧内预测模式。如果两个块具有相同大小,则左侧和上方的块的帧内预测模式的平均值可被推导作为所述每个子块的帧内预测模式。
或者,可将在每个子块的位置(0,0)处的样点的左侧和上方的块的帧内预测模式的大小彼此进行比较,并且可将具有较小值的帧内预测模式推导作为所述每个子块的帧内预测模式。如果两个模式的值相等,则两个模式之一可被推导作为所述每个子块的帧内预测模式。
或者,可使用当前块的邻近块的帧内预测模式来推导每个子块的帧内预测模式。这里,可使用当前块的在每个子块的样点位置(0,0)左侧和/或上方的一个或更多个邻近块的帧内预测模式。例如,可通过下面的[等式5]来推导图17中示出的每个子块的帧内预测模式。
[等式5]
C1=(j+d+1)>>1,
C2=e,
C3=g,
C4=g,
C5=j,
C6=(j+e+1)>>1,
C7=g,
C8=g,
C9=k,
C10=k,
C11=(k+g+1)>>1,
C12=g,
C13=l,
C14=l,
C15=l,
C16=(l+g+1)>>1。
或者,如果当前块的邻近块的帧内预测模式全部是非方向模式,则子块的帧内预测模式可被推导为所述非方向模式(例如,DC模式和平面模式)中的至少一个。
图18是描绘将当前块划分为子块的另一实施例的示图。
如图18中所示,当前块中的子块的大小和/或形状可变化。可通过编码/解码来确定当前块和/或子块的划分结构和/或大小。可按照用于推导当前块或子块的帧内预测模式的上述多种方法中的至少一种方法来推导每个子块的帧内预测模式。
例如,在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的统计值可被推导作为所述每个子块的帧内预测模式。例如,如果所述统计值是平均值,则可通过下面的[等式6]来推导图18中示出的子块的帧内预测模式。
[等式6]
C1=(j+d+1)>>1,
C2=(C1+e+1)>>1,
C3=(C2+g+1)>>1,
C4=(k+C1+1)>>1,
C5=(C4+C2+1)>>1,
C6=(l+C4+1)>>1,
C7=(C6+C5+1)>>1,
C8=(C5+C3+1)>>1,
C9=(C8+C3+1)>>1,
C10=(C7+C8+1)>>1。
或者,与每个子块相邻的一个或更多个邻近块的帧内预测模式的统计值可被推导作为所述每个子块的帧内预测模式。例如,如果所述统计值是平均值,则可通过下面的等式[7]来推导图18中示出的每个子块的帧内预测模式。
[等式7]
C1=(b+j+d)/3,
C2=(C1+d+e)/3,
C3=(C2+e+g)/3,
C4=(k+j+C1)/3,
C5=(C4+C2+C1)/3,
C6=(l+C4+k)/3,
C7=(C6+C5+C4)/3,
C8=(C5+C3+C2)/3,
C9=(C8+C3)/2,
C10=(C5+C8+C9+C7)/4。
或者,如果当前块的邻近块的帧内预测模式全部是非方向模式,则子块的帧内预测模式可被推导为所述非方向模式(例如,DC模式和平面模式)中的至少一个。
在当前块被划分为子块并且用于每个子块的帧内预测模式被推导的情况下,可通过MPM来推导当前块的帧内预测模式,然后可使用推导出的当前块的帧内预测模式以及邻近块的帧内预测模式来推导每个子块的帧内预测模式。这里,可使用通过MPM推导出的当前块的帧内预测模式以及邻近块的帧内预测模式中的至少一个,按照用于推导当前块的帧内预测模式的多种方法中的至少一种方法来推导子块的帧内预测模式。如果通过MPM推导出的当前块的帧内预测模式是Pred_mpm,则可按照以下方式来推导子块的帧内预测模式。
例如,可将在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的平均值与Pred_mpm进行比较。如果所述平均值大于Pred_mpm,则可将Pred_mpm+1推导作为所述每个子块的帧内预测模式,如果所述平均值小于Pred_mpm,则可将Pred_mpm-1推导作为所述每个子块的帧内预测模式。或者,在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的平均值、以及Pred_mpm可被推导作为所述每个子块的帧内预测模式。或者,可通过将在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式与Pred_mpm进行比较,并调整Pred_mpm来推导子块的帧内预测模式。这里,可使用以上描述的统计值中的至少一种统计值来代替平均值。
图19是描绘将当前块划分为子块的另一实施例的示图。
在图19中,在每个块上标记的编号表示块的帧内预测模式的编号。另外,Cx表示当前块的第x子块(x是1、…、16)。另外,箭头表示块的帧内预测模式的方向或角度。
例如,在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的统计值可被推导作为所述每个子块的帧内预测模式。所述统计值可以是例如平均值。或者,如果邻近块的帧内预测模式中的至少一个是非方向模式,则子块的帧内预测模式可被推导为邻近块的帧内预测模式之中的方向模式。非方向模式可包括例如平面模式(模式编号0)和DC模式(模式编号1)。例如,可通过下面的等式[8]来推导图19中示出的每个子块的帧内预测模式。
[等式8]
C1=(30+50+1)>>1=40
C2=(40+50+1)>>1=45
C3=45
C4=(45+58+1)>>1=52
C5=(18+40+1)>>1=29
C6=(29+45+1)>>1=37
C7=(37+45+1)>>1=41
C8=(41+52+1)>>1=47
C9=(16+29+1)>>1=23
C10=(23+37+1)>>1=30
C11=(30+41+1)>>1=36
C12=(36+47+1)>>1=42
C13=23
C14=(23+30+1)>>1=27
C15=(27+36+1)>>1=32
C16=(32+42+1)>>1=37
图20是描绘将当前块划分为子块的另一实施例的示图。
在图20中,在每个子块上标记的编号表示块的帧内预测模式的编号。另外,Cx表示当前块的第x子块(x是1、…、14)。另外,箭头表示用于块的帧内预测的方向或角度。
在参照图20所描述的实施例中,可通过解码来推导当前块的帧内预测模式和子块的划分信息中的至少一个。可使用推导出的当前块的帧内预测模式、以及在每个子块的位置(0,0)处的样点左侧和上方的块的帧内预测模式的平均值来推导当前块中的每个子块的帧内预测模式。例如,如果推导出的当前块的帧内预测模式大于所述平均值,则可从推导出的当前块的帧内预测模式减去平均值的1/2。如果推导出的当前块的帧内预测模式等于或小于所述平均值,则可将推导出的当前块的帧内预测模式与所述平均值的1/2相加。这里,可使用以上描述的统计值中的至少一种统计值来代替所述平均值。
或者,如果邻近块的帧内预测模式中的至少一个是非方向模式,则子块的帧内预测模式可被推导为邻近块的帧内预测模式之中的方向模式。非方向模式可包括例如平面模式(模式编号0)和DC模式(模式编号1)。例如,如果推导出的当前块的帧内预测模式是52,则可通过下面的[等式9]来推导图20中示出的每个子块的帧内预测模式。
[等式9]
C1:abs(52-((30+50+1)>>1)+1)>>1=6,C1=52-6=46
C2:abs(52-((46+50+1)>>1)+1)>>1=2,C2=52-2=50
C3:abs(52-((50+64+1)>>1)+1)>>1=3,C3=52+3=55
C4:abs(52-((18+46+1)>>1)+1)>>1=10,C4=52-10=42
C5:abs(52-((42+50+1)>>1)+1)>>1=3,C5=52-3=49
C6:abs(52-((42+49+1)>>1)+1)>>1=3,C6=52-3=49
C7:abs(52-((49+55+1)>>1)+1)>>1=0,C7=52-0=52
C8:abs(52-((52+55+1)>>1)+1)>>1=1,C8=52+1=53
C9:abs(52-((16+42+1)>>1)+1)>>1=12,C9=52-12=40
C10:abs(52-((16+40+1)>>1)+1)>>1=12,C10=52-12=40
C11:abs(52-40+1)>>1=6,C11=52-6=46
C12:abs(52-((40+49+1)>>1)+1)>>1=4,C12=52-4=48
C13:abs(52-((48+49+1)>>1)+1)>>1=2,C13=52-2=50
C14:abs(52-((50+52+1)>>1)+1)>>1=1,C14=52-1=51
在推导帧内预测模式时,可将当前块划分为比当前块小的多个子块,然后可推导每个子块的帧内预测模式。这里,帧内预测模式可表示帧内预测方向。帧内预测模式可被包括在编码器和解码器中预先定义的帧内预测模式集合中。
例如,可使用与当前块邻近的重建块之中的通过使用帧内预测被编码/解码的块的帧内预测模式中的至少一个、以及当前块的帧内预测模式来产生用于当前块的帧内预测方向场(IPDF)。可在产生IPDF的过程中使用预定变换模型。在IPDF被产生之后,可使用IPDF来确定当前块的每个子块的帧内预测模式。
另外,与以上的示例类似,如果当前块是从比当前块更大或比当前块深度更小的块划分出的,则当前块可以是所述比当前块更大或比当前块深度更小的块的子块。在这种情况下,可使用在与所述比当前块更大或比当前块深度更小的块邻近的重建块之中的通过帧内预测被编码/解码的块的帧内预测模式中的至少一个来推导当前块的帧内预测模式。可通过产生IPDF来推导当前块的帧内预测模式。
可将刚性变换、相似变换、仿射变换、单应性变换、3D变换和其它变换中的至少一种变换用作所述预定变换模型。单应性变换可以是透视变换。
由于可使用与当前块邻近的重建块之中的通过使用帧内预测被编码/解码的块的帧内预测模式中的至少一个、以及当前块的帧内预测模式来推导从当前块划分出的每个子块的帧内预测模式,因此可减少对每个子块的帧内预测模式进行熵编码/解码所需的比特数。
子块的大小可以小于或等于当前块的大小。例如,如果当前块的大小是M×N(M和N是正整数),则子块的大小可以是M/K×N/L。K和M可以是正整数,L可以是N的正因子。另外,M/K或N/L可以是正整数。
另外,在当前块中可存在P个子块。P可以是0或者正整数。例如,在当前块中可存在1、2、4或16个子块。
另外,当当前块被划分为子块时,可不单独对指示当前块是否已被划分为子块的信息进行熵编码/解码。可基于指示当前块的帧内预测模式是否已基于子块被推导的信息来确定当前块是否被划分为子块。
另外,由于使用与当前块邻近的重建块之中的通过使用帧内预测而被编码/解码的块的帧内预测模式中的至少一个、以及当前块的帧内预测模式来推导子块的帧内预测模式,因此可不对子块的帧内预测模式进行熵编码/解码。然而,可对当前块的帧内预测模式进行熵编码/解码。特别地,如果当前块由一个子块构成,则可不对当前块的帧内预测模式进行熵编码/解码,并且可使用与当前块邻近的重建块之中的通过帧内预测而被编码/解码的块的帧内预测模式中的至少一个来推导当前块的帧内预测模式。
用于IPDF产生的在与当前块邻近的重建块之中的通过使用帧内预测而被编码/解码的块可被称为种子块。种子块的位置可被称为种子点。包括种子点的种子块所具有的帧内预测模式可被称为种子点帧内预测模式(SPIPM)。
图21是描绘使用SPIPM推导当前块的帧内预测模式的实施例的示图。
在图21中所示的示例中,当前块的大小可以是16×16,并且每个子块的大小可以是(16/4)×(16/4)。这里,种子块可以是通过帧内预测已被编码/解码的多个邻近块中的至少一个。种子块或种子点可以位于相对于当前块的固定位置。或者,上方、左侧、左上方、右下方和右上方的块或位置中的至少一个可被确定为种子块或种子点。
例如,当前块的上方邻近块c、d、e、f和g中的至少一个的帧内预测模式可被用作SPIPM。
或者,与当前块邻近的右上方块h的帧内预测模式可被用作SPIPM。
或者,与当前块邻近的左上方块a和b中的至少一个的帧内预测模式可被用作SPIPM。
或者,与当前块邻近的左侧块i、j、k和l中的至少一个的帧内预测模式可被用作SPIPM。
或者,与当前块邻近的左下方块m的帧内预测模式可被用作SPIPM。
例如,当前块的帧内预测模式也可被用作SPIPM。
可使用一个或更多个种子点的SPIPM来产生IPDF。
例如,如果用于确定预定变换模型的参数的多个种子点的坐标是(x_sp,y_sp)(sp=1,2,3,…),并且包括种子点的种子块的SPIPM是mode_sp(sp=1,2,3,…),则变换后的种子点的坐标(x_sp',y_sp')可被确定为(x_sp',y_sp')=(x_sp+dx,y_sp+dy)。这里,dx可表示x轴方向上的位移,dy可表示y轴方向上的位移。另外,可确定dx=D_sub*cosΘ和dy=D_sub*sinΘ。
这里,可根据SPIPM来确定Θ。例如,如果帧内预测模式是如图6中所示的方向模式,则每个SPIPM可具有唯一的方向性,并且关于x轴的正角度可被确定为Θ。
例如,对于垂直帧内预测模式,Θ=270°。
例如,对于水平帧内预测模式,Θ=0°。
例如,对于左下对角帧内预测模式,Θ=225°。
例如,对于右上对角帧内预测模式,Θ=45°。
例如,对于右下对角帧内预测模式,Θ=135°。
这里,对于具有非方向性的帧内预测模式(诸如DC模式或平面模式),Θ可被确定为特定值。所述特定值可以是例如0、90、180或270度。
SPIPM可表示始自种子点的方向性,并且D_sub可表示具有该方向性的矢量的大小。可根据种子点所属的种子块的大小和/或形状来确定D_Sub的大小。另外,对于每个帧内预测模式,D_sub可具有固定值P。这里,P可以是0或者整数。例如,如果当前块的大小是M×N(M和N是正整数),并且D_cur=S(S是正整数),则K×L的种子块(K和L是正整数)的D_sub(sub=1,2,3,…)可被确定为D_sub=S*(K×L)/(M×N)。例如,如果在图21中当前块的大小是16×16,则D_cur=S并且可按照以下方法中的至少一种方法来确定种子块的D_sub。
例如,对于种子块d或e,可确定D_sub=S*(4×8)/(16×16)=S/8。
例如,对于种子块g或j,可确定D_sub=S*(8×8)/(16×16)=S/4。
例如,对于种子块k或l,可确定D_sub=S*(8×4)/(16×16)=S/8。
例如,对于种子块m或h,可确定D_sub=S*(16×16)/(16×16)=S。
例如,对于每个种子块,D_sub可被确定为S。
可通过制作SPIPM列表来配置候选以产生当前块的IPDF。可使用当前块的邻近块中的至少一个的帧内预测模式来产生SPIPM列表。例如,SPIPM可以是当前块的左上方(SPIPM_TL)、右上方(SPIPM_TR)、左下方(SPIPM_BL)和右下方(SPIPM_BR)的SPIPM中的一个或更多个的集合。对于W×H的当前块,SPIPM_TL可将关于当前块的位置(0,0)的上方邻近块、左上方邻近块和左侧邻近块的帧内预测模式中的至少一个用作候选。SPIPM_TR可将关于当前块的位置(W-1,0)的上方邻近块和右上方邻近块的帧内预测模式中的至少一个用作候选。SPIPM_BL可将关于当前块的位置(0,H-1)的左侧邻近块和左下方邻近块的帧内预测模式中的至少一个用作候选。SPIPM_BR可表示当前块的邻近块的帧内预测模式。或者,SPIPM_BR可被用于表示当前块的帧内预测模式。
在图21中所示的示例中,SPIPM_TL可具有邻近块d、b和j的帧内预测模式中的至少一个。另外,SPIPM_TR可具有邻近块g和h的帧内预测模式中的至少一个。另外,SPIPM_BL可具有邻近块i和m的帧内预测模式中的至少一个。另外,SPIPM_BR可具有当前块的帧内预测模式中的至少一个。
另外,可按照预定顺序搜索种子块或种子点。例如,通过按照左、上、左下、右上和上的顺序搜索种子块或种子点,可由相应种子块或种子点处的帧内预测模式构成SPIPM列表。
为了制作SPIPM列表,可针对用于SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的每一个的多个候选中的至少一个候选,执行基于帧内预测模式之间的相似度去除具有与其它模式的方向不同的方向的帧内预测模式的处理。这里,帧内预测模式差(IPMD)可被用作用于测量相似度的准则。在制作SPIPM列表时可去除非方向模式(例如,DC_MODE和PLANAR_MODE)。
例如,如果在SPIPM_TL的三个候选模式SPIPM_TL_mode中的每一个与SPIPM_neighbor(neighbor=TR或BL或BR)的候选模式之间的比较中,IPMD=abs(SPIPM_TL_mode-SPIPM_neighbor)>Th1(Th1是正整数),则可从用于SPIPM_TL的候选集中去除相应模式。
例如,如果在SPIPM_TR的两个候选模式SPIPM_TR_mode中的每一个与SPIPM_neighbor(neighbor=TL或BL或BR)的候选模式之间的比较中,IPMD=abs(SPIPM_TR_mode-SPIPM_neighbor)>Th2(Th2是正整数),则可从用于SPIPM_TR的候选集中去除相应模式。
例如,如果在SPIPM_BL的两个候选模式SPIPM_BL_mode中的每一个与SPIPM_neighbor(neighbor=TL或TR或BR)的候选模式之间的比较中,IPMD=abs(SPIPM_BL_mode-SPIPM_neighbor)>Th3(Th3是正整数),则可从用于SPIPM_BL的候选集中去除相应模式。
例如,如果在SPIPM_BR的候选模式SPIPM_BR_mode中的每一个与SPIPM_neighbor(neighbor=TL或TR或BL)的候选模式之间的比较中,IPMD=abs(SPIPM_BR_mode-SPIPM_neighbor)>Th4(Th4是正整数),则可从用于SPIPM_BR的候选集中去除相应模式。
例如,如果用于SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的每一个的多个候选中的至少一个候选是非方向帧内预测模式(诸如DC模式或平面模式),则可从候选集中去除相应模式。
在用于制作SPIPM列表的多个候选之中的具有最小相似度的候选被去除之后,可根据使用的特定2D变换模型来确定用于IPDF产生所需的SPIPM的数量。例如,2D变换模型可包括刚性变换、相似变换、仿射变换和单应变换。另外,SPIPM的数量可根据2D变换模型被确定为变量值1、2、3、4、或N(N是正整数)。
例如,如果用于IPDF产生的变换模型是刚性变换,则可需要至少两个SPIPM。
如[等式10]中所述,刚性变换可具有自由度3(3-DoF)。这里,(x,y)可以是种子点的预变换(pre-transform)坐标,并且(x’,y’)可以是种子点的后变换(post-transform)坐标。Θ、tx和ty是待确定的模型参数,其中,Θ、tx和ty可以分别是旋转角度、x轴位移和y轴位移。
[等式10]
可使用从一个SPIPM确定的Θ来获取(x,y)-(x’,y’)对,并且可通过将(x,y)-(x’,y’)对代入[等式10]来确定与Θ、tx和ty相关的两个等式。另外,可从两个SPIPM确定与Θ、tx和ty相关的四个等式,并且可使用所述四个等式中的三个等式来确定刚性变换模型。
可通过选择SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的至少两个来确定所述两个SPIPM。所选择的SPIPM可被添加到SPIPM列表。
图22是描绘制作包括两个SPIPM的SPIPM列表的实施例的示图。
如图22中所示,可按照两个SPIPM候选模式的IPMD总和的升序填充SPIPM列表。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_TR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_BL的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TR的候选模式之一和用于SPIPM_BL的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TR的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_BL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
如果两个SPIPM未被填充,则可利用可用的SPIPM来填充SPIPM列表。例如,可使用SPIPM±delta来填充SPIPM列表。这里,delta可以是任意正整数,例如,1、2、3…。
一旦两个SPIPM(SPIPM1、SPIPM2)被确定,则可通过[等式10]产生与Θ、tx和ty相关的四个等式。可使用四个等式中的三个等式来确定用于刚性变换模型的参数。确定的模型可被用于IPDF产生。
例如,可使用通过SPIM1计算出的两个等式和通过SPIM2计算出的两个等式中的至少一个等式来确定刚性变换。
例如,可使用通过SPIM1计算出的两个等式中的至少一个和通过SPIM2计算出的两个等式来确定刚性变换。
例如,如果相似变换被用作用于IPDF产生的变换模型,则可能需要至少两个SPIPM。
相似变换可具有如[等式11]中所述的4-DoF。这里,(x,y)可以是种子点的预变换坐标,(x’,y’)可以是种子点的后变换坐标。a、b、c和d可以是将被确定的模型参数。
[等式11]
可使用从一个SPIPM确定的Θ来获取(x,y)-(x’,y’)对,并且可通过将(x,y)-(x’,y’)对代入[等式11]来确定与a、b、c和d相关的两个等式。另外,可从两个SPIPM确定与a、b、c和d相关的四个等式,并且可使用该四个等式来获得相似变换模型。
可通过选择SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的至少两个来确定两个SPIPM。所选择的SPIPM可被添加到SPIPM列表。这里,如等式22中所示,可按照两个SPIPM候选模式的IPMD值的总和的升序来填充SPIPM列表。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_TR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_BL的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TR的候选模式之一和用于SPIPM_BL的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_TR的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
例如,用于SPIPM_BL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作两个SPIPM。
如果两个SPIPM未被填充,则可利用可用的SPIPM来填充SPIPM列表。例如,可使用SPIPM±delta来填充SPIPM列表。这里,delta可以是任意正整数,例如,1、2、3…。
一旦两个SPIPM(SPIPM1、SPIPM2)被确定,则可通过[等式11]产生与Θ、tx和ty相关的四个等式来确定用于相似变换模型的参数。确定的模型可被用于IPDF产生。
例如,如果仿射变换被用作用于IPDF产生的变换模型,则可能需要至少三个SPIPM。
仿射变换可具有如[等式12]中所述的6-DoF。这里,(x,y)可以是种子点的预变换坐标,(x’,y’)可以是种子点的后变换坐标。a、b、c、d、e和f可以是将被确定的模型参数。
[等式12]
可使用从一个SPIPM确定的Θ来获取(x,y)-(x’,y’)对,并且可通过将(x,y)-(x’,y’)对代入[等式12]来确定与a、b、c、d、e和f相关的两个等式。另外,可从三个SPIPM确定与a、b、c、d、e和f相关的六个等式,并且可使用该六个等式来获得仿射变换模型。
可通过选择SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的至少三个来确定三个SPIPM。所选择的SPIPM可被添加到SPIPM列表。
图23是示出制作包括三个SPIPM的SPIPM列表的实施例的示例性示图。
如图23中所示,可按照三个SPIPM候选模式的IPMD值的总和的升序来用SPIPM填充SPIPM列表。
例如,用于SPIPM_TL的候选模式之一、用于SPIPM_TR的候选模式之一和用于SPIPM_BL的候选模式之一可被用作三个SPIPM。
例如,用于SPIPM_TL的候选模式之一、用于SPIPM_TR的候选模式之一和用于SPIPM_BR的候选模式之一可被用作三个SPIPM。
例如,用于SPIPM_TL的候选模式之一、用于SPIPM_BL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作三个SPIPM。
例如,用于SPIPM_TR的候选模式之一、用于SPIPM_BL的候选模式之一和用于SPIPM_BR的候选模式之一可被用作三个SPIPM。
如果三个SPIPM未被填充,则可利用可用的SPIPM来填充SPIPM列表。例如,可使用SPIPM±delta来填充SPIPM列表。这里,delta可以是任意正整数,例如,1、2、3…。
一旦三个SPIPM(SPIPM1、SPIPM2、SPIPM3)被确定,则可通过[等式12]产生与a、b、c、d、e和f相关的六个等式来确定用于仿射变换模型的参数。确定的模型可被用于IPDF产生。
例如,如果单应变换(或透视变换)被用作用于IPDF产生的变换模型,则可能需要至少四个SPIPM。
仿射变换可具有如[等式13]中描述的8-DoF。这里,(x,y)可以是种子点的预变换坐标,(x’,y’)可以是种子点的后变换坐标。h1、h2、h3、h4、h5、h6、h7和h8可以是将被确定的模型参数。
[等式13]
可使用从一个SPIPM确定的Θ来获取(x,y)-(x’,y’)对,并且可通过将(x,y)-(x’,y’)对代入[等式13]来确定与h1、h2、h3、h4、h5、h6、h7和h8相关的两个等式。另外,可从四个SPIPM确定与h1、h2、h3、h4、h5、h6、h7和h8相关的八个等式,并且可使用该八个等式来获得单应变换模型。
可通过选择SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的至少四个来确定四个SPIPM。所选择的SPIPM可被添加到SPIPM列表。
图24是示出制作包括四个SPIPM的SPIPM列表的实施例的示例性示图。
如图24中所示,可按照四个SPIPM候选模式的IMPD值的总和的升序利用SPIPM来顺序地填充SPIPM列表。
例如,用于SPIPM_TL的候选模式中的两个候选模式以及用于SPIPM_TR的候选模式中的两个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TL的候选模式中的两个候选模式以及用于SPIPM_BL的候选模式中的两个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TL的候选模式中的两个候选模式以及用于SPIPM_BR的候选模式中的两个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BL的候选模式中的两个候选模式以及用于SPIPM_BR的候选模式中的两个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BL的候选模式中的两个候选模式以及用于SPIPM_BR的候选模式中的两个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TL的候选模式中的两个候选模式、用于SPIPM_TR的候选模式中的一个候选模式、以及用于SPIPM_BL的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TL的候选模式中的两个候选模式、用于SPIPM_TR的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TL的候选模式中的两个候选模式、用于SPIPM_BL的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TR的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_BL的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TR的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_TR的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_BL的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BL的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_TR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BL的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BL的候选模式中的两个候选模式、用于SPIPM_TR的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BR的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_TR的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BR的候选模式中的两个候选模式、用于SPIPM_TL的候选模式中的一个候选模式、以及用于SPIPM_BL的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BR的候选模式中的两个候选模式、用于SPIPM_TR的候选模式中的一个候选模式、以及用于SPIPM_BL的候选模式中的一个候选模式可被用作四个SPIPM。
例如,用于SPIPM_BR的候选模式中的一个候选模式、用于SPIPM_TR的候选模式中的一个候选模式、用于SPIPM_BL的候选模式中的一个候选模式、以及用于SPIPM_BR的候选模式中的一个候选模式可被用作四个SPIPM。
如果四个SPIPM未被填充,则可利用可用的SPIPM来填充SPIPM列表。例如,可使用SPIPM±delta来填充SPIPM列表。这里,delta可以是任意正整数,例如,1、2、3…。
一旦四个SPIPM(SPIPM1、SPIPM2、SPIPM3、SPIPM4)被确定,则可通过[等式13]产生与h1、h2、h3、h4、h5、h6、h7和h8相关的八个等式来确定用于单应变换模型的参数。确定的模型可被用于IPDF产生。
在使用预定变换模型产生IPDF之后,可使用产生的IPDF将帧内预测模式分配给W×H的当前块内的K×L子块。这里,每个子块的大小K×L(K是等于或小于M的正整数,L是等于或小于H的正整数)可以是等于或小于当前块的大小的固定大小。或者,可使用当前块的大小和/或IPMD来自适应地确定子块大小。或者,子块大小可等于当前块的大小。
图25是示出在当前块的大小是16×16的情况下的子块大小的示例性示图。
如图25的(a)中所示,子块的大小可被固定为8×8。或者,如图25的(b)中所示,子块的大小可被固定为4×4。或者,如图25的(c)中所示,子块的大小可被固定为2×2。或者,如图25的(d)中所示,子块的大小可被固定为1×1。固定大小1×1可以是样点单元的大小。
例如,可基于当前块的大小来确定子块的大小。
例如,可基于当前块的SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的IPMD中的至少一个来确定子块的大小。
例如,可基于当前块的SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的IPMD中的至少一个以及当前块的大小来确定子块的大小。
可在比特流中熵编码/解码关于子块的大小的信息。这里,可在VPS、SPS、PPS、APS、条带头、并行块头、CTU、CU、PU、TU、块和子块中的至少一个中熵编码/解码该信息。
可根据当前块的大小和/或IPMD自适应地推导关于子块大小的信息,而不发送该信息。
另外,可基于当前块的编码参数和当前块的邻近块的编码参数中的至少一个来确定子块大小。
可使用确定的IPDF来分配子块的帧内预测模式。可通过将每个子块中的特定位置的坐标代入确定的IPDF模型来将所述特定位置处的帧内预测模式实现为矢量。所述特定位置可被确定为子块中的像素的位置或者与子块的边界相邻的位置。例如,可将子块的左上位置、右上位置、左下位置、右下位置和中间位置中的至少一个确定为所述特定位置。如果子块中的所述特定位置的坐标是(x,y)并且通过IPDF计算出的位置的变换坐标是(x’,y’),则可通过θSB=atan[(y’-y)/(x’-x)]来确定所述矢量的方向θSB
图26是描绘使用确定的IPDF分配帧内预测模式的实施例的示图。
如图26中所示,θSB可被映射到多个方向模式之中的指向最相似方向的帧内预测模式。可使用查找表(LUT)来执行θSB到帧内预测模式映射的操作。
另外,当使用IPDF分配子块的帧内预测模式时,可基于最邻近方法将IDF分配为子块的帧内预测模式。
此外,当使用IPDF将帧内预测模式分配给子块时,可通过将IPDF量化为整数来将帧内预测模式分配给子块。
此外,当使用IPDF将帧内预测模式分配给子块时,可通过将IPDF四舍五入到最接近的整数来将帧内预测模式分配给子块。
对于基于变换模型的逐子块帧内预测,将在比特流中被额外地熵编码/解码的信息可包括以下内容中的至少一个。
指示基于变换模型的逐子块帧内预测是否已针对当前块被执行的信息:TBIP_flag
TBIP_flag可以是这样的信息:该信息指示是否使用在与当前块邻近的重建块之中的通过使用帧内预测而被编码/解码的块的帧内预测模式中的至少一个以及当前块的帧内预测模式来推导每个子块的帧内预测模式。
指示所使用的SPIPM集的索引:SPIPM_idx
现在,将描述使用变换模型基于子块推导帧内预测模式的另一实施例。例如,在邻近重建块之中存在通过基于变换模型的逐子块帧内预测而被编码/解码的块时,可使用邻近块的IPDF模型针对每个子块推导帧内预测模式,而不是直接产生当前块的IPDF。
为了确定在当前块的邻近重建块之中是否存在通过基于变换模型的逐子块帧内预测而被编码/解码的任何块,可使用预定义的扫描顺序。所述扫描顺序可以是以下顺序中的至少一个。
图27是示出与当前块邻近的重建块的示例性示图。
例如,在图27中,可按照A->B->C->D->E的顺序执行扫描。或者,可按照A->B->D->C->E的顺序执行扫描。或者,可按照B->A->D->C->E的顺序执行扫描。或者,可按照E->A->B->C->D的顺序执行扫描。或者,可按照任意其它顺序执行扫描。
或者,在扫描时可以排除块A、B、C、D和C中的一部分。或者,可扫描除了A、B、C、D和C之外的块。可基于如这里所描述的邻近重建块和当前块中的至少一个的大小、形状和编码参数中的至少一个来确定将被扫描的邻近重建块。
图28是描绘使用邻近重建块推导帧内预测模式的实施例的示图。
在图28中所示出的示例中,在作为当前块的邻近块的块A使用变换模型通过子块单元的帧内预测被编码/解码的情况下,可使用SPIPM_A_TL、SPIPM_A_TR、SPIPM_A_BL和SPIPM_A_BR中的至少一个来产生块A的IPDF。
可使用块A的IPDF来推导当前块的SPIPM_Cur_TL、SPIPM_Cur_TR、SPIPM_Cur_BL和SPIPM_Cur_BR中的至少一个,并且可使用推导出的SPIPM_Cur_TL、SPIPM_Cur_TR、SPIPM_Cur_BL和SPIPM_Cur_BR中的至少一个来产生当前块的IPDF,从而执行逐子块帧内预测。
如果当前块的邻近重建块中的至少一个是使用IPDF而被编码/解码的块,则可使用相应邻近重建块的IPDF来推导当前块的IPDF。此外,可对TBIP_flag的信息进行熵编码/解码。
将描述使用等空间模型基于子块推导帧内预测模式的另一实施例。
图29是描绘基于子块推导帧内预测模式的实施例的示图。
在等空间模型被使用的情况下,可能需要至少两个SPIPM。例如,如图29的(a)中所示,可选择用于SPIPM_TL的候选模式之一、用于SPIPM_TR的候选模式之一、用于SPIPM_BL的候选模式之一和用于SPIPM_BR的候选模式之一,即总共四个候选模式。如图24中所示,可按照IPMD值的总和的升序将所选择的四个SPIPM候选模式填充在SPIPM列表中。
可使用SPIPM_TL、SPIPM_TR、SPIPM_BL和/或SPIPM_BR来首先确定当前块的最外层子块的帧内预测模式。等空间地确定帧内预测模式可意味着使用至少两个帧内预测模式以相等的间隔划分帧内预测模式的值并将划分的帧内预测模式值分配给子块。
例如,在图29的(a)中所示的示例中,如果SPIPM_TL是24并且SPIPM_TR是21,则可使用SPIPM_TL和SPIPM_TR的值等空间地确定子块A、B、C和D的帧内预测模式。例如,如图29的(b)中所示,可确定A=24,B=23,C=22并且D=21。
例如,在图29的(a)中所示的示例中,如果SPIPM_TL是25并且SPIPM_BL是38,则可使用SPIPM_TL和SPIPM_BL的值等空间地确定子块A、E、I和M的帧内预测模式。例如,如图29的(b)中所示,可确定A=24,E=29,I=34并且M=38。
例如,在图29的(a)中所示的示例中,如果SPIPM_BL是38并且SPIPM_BR是35,则可使用SPIPM_BL和SPIPM_BR的值等空间地确定子块M、N、O和P的帧内预测模式。例如,如图29的(b)中所示,可确定M=38,N=37,O=36并且P=35。
例如,在图29的(a)中所示的示例中,如果SPIPM_TR是21并且SPIPM_BR是35,则可使用SPIPM_TR和SPIPM_BR的值等空间地确定子块D、H、I和P的帧内预测模式。例如,如图29的(b)中所示,可确定D=21、H=26、I=31并且P=35。
在当前块的最外层子块的帧内预测模式全部被确定之后,可确定第二最外层子块的帧内预测模式。在图29中所示的示例中,第二最外层子块可以是子块F、G、J和K。这里,可将SPIPM_TL重置为在第二最外层子块之中的左上方子块(图29的(a)中的子块F)的左上位置处的模式(图29的(a)中的子块A的模式)的值。另外,可将SPIPM_TR重置为在第二最外层子块之中的右上方子块(图29的(a)中的子块G)的右上位置处的模式(图29的(a)中的子块D的模式)的值。另外,可将SPIPM_BL重置为在第二最外层子块之中的左下方子块(图29的(a)中的子块J)的左下位置处的模式(图29的(a)中的子块M的模式)的值。另外,可将SPIPM_BR重置为在第二最外层子块之中的右下方子块(图29的(a)中的子块K)的右下位置处的模式(图29的(a)中的子块P的模式)的值。可递归地重复该操作直到当前块中的所有子块的模式被确定为止。
例如,在图29的(b)中所示的示例中,如果SPIPM_TL是24并且SPIPM_TR是21,则可使用SPIPM_TL和SPIPM_TR的值等空间地确定子块F和G的帧内预测模式。例如,如图29的(c)中所示,可确定F=24并且G=21。
例如,在图29的(b)中所示的示例中,如果SPIPM_BL是38并且SPIPM_BR是35,则可使用SPIPM_TL和SPIPM_TR的值等空间地确定子块J和K的帧内预测模式。例如,如图29的(c)中所示,可确定J=38并且K=35。
针对基于等空间模型的逐子块帧内预测将被额外熵编码/解码的信息可以是以下项中的至少一项。
指示是否已针对当前块执行了基于等空间模型的逐子块帧内预测的信息:ES_flag
指示所使用的SPIPM集的索引:SPIPM_idx
现在,将描述使用双线性滤波器模型基于子块推导帧内预测模式的另一实施例。
图30是描绘基于子块推导帧内预测模式的另一实施例的示图。
为了使用双线性滤波器模型基于子块确定帧内预测模式,可能需要至少两个SPIPM。例如,如图30的(a)中所示,可通过选择用于SPIPM_TL的候选模式之一、用于SPIPM_TR的候选模式之一、用于SPIPM_BL的候选模式之一、以及用于SPIPM_BR的候选模式之一来选择总共四个候选模式。如图24中所示,可按照IPMD值的总和的升序将所选择的四个SPIPM候选模式顺序地填充在SPIPM列表中。
可将当前块中的左上方子块(图30的(a)中的子块A)的模式确定为SPIPM_TL。另外,可将当前块中的右上方子块(图30的(a)中的子块D)的模式确定为SPIPM_TR。另外,可将当前块中的左下方子块(图30的(a)中的子块M)的模式确定为SPIPM_BL。另外,可将当前块中的右下方子块(图30的(a)中的子块P)的模式确定为SPIPM_BR。如图30的(b)中所示,可将当前块中的左上方子块、右上方子块、左下方子块和右下方子块的帧内预测模式分别确定为SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR。然而,当前块中的左上方子块、右上方子块、左下方子块和右下方子块的帧内预测模式不限于SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR,并且当前块中的左上方子块、右上方子块、左下方子块和右下方子块的帧内预测模式中的至少一个可被确定为SPIPM_TL、SPIPM_TR、SPIPM_BL和SPIPM_BR中的至少一个。
可使用双线性滤波器方案来确定其它子块的帧内预测模式。例如,可使用下面的[等式14]。在[等式14]中,function()可以是floor()或ceil()或round()中的至少一个。在图30中所示的示例中,function()可以是round()。另外,在[等式14]中,#of SubBlk inwdt可表示当前块中水平方向上的子块的数量。类似地,#of SubBlk in hgt可表示当前块中垂直方向上的子块的数量。
[等式14]
例如,如图30的(c)中所示,可使用[等式14]确定其余子块的帧内预测模式。
针对基于双线性滤波器模型的逐子块帧内预测将被额外熵编码/解码的信息可以是以下项中的至少一项。
指示是否针对当前块执行了基于双线性滤波器模型的逐子块帧内预测的信息:BF_flag
指示所使用的SPIPM集的索引:SPIPM_idx
可使用在与当前块邻近的重建块之中的通过帧内预测被编码/解码的块的帧内预测模式中的至少一个以及当前块的帧内预测模式,基于子块推导帧内预测模式,并且可使用推导出的帧内预测模式来基于子块执行帧内预测。这里,在基于子块被先前编码/解码的子块中包括的样点可被用作用于后续逐子块帧内预测的参考样点。
编码器可通过针对逐子块帧内预测之后所产生的残差块执行首次变换、二次变换以及量化中的至少一个来产生变换系数。产生的变换系数可被熵编码。可针对当前块执行首次变换、二次变换和量化,或者可基于子块执行首次变换、二次变换和量化。例如,可针对整个当前块执行首次变换、二次变换和量化中的至少一个,或者可针对每个子块执行首次变换、二次变换和量化中的至少一个。这里,可不对当前块或子块执行首次变换、二次变换和量化中的任何一个。
变换系数可在解码器中被熵解码。可通过针对熵解码的变换系数执行反量化、首次逆变换和二次逆变换中的至少一个来产生重建残差块。可针对当前块执行首次变换、二次变换和量化,并且可基于子块执行首次变换、二次变换和量化。例如,可针对整个当前块执行首次变换、二次变换和量化中的至少一个,并且可针对每个子块执行首次变换、二次变换和量化中的至少一个。这里,可不对当前块或子块执行首次变换、二次变换和量化中的任何一个。
帧内预测信息可被熵编码/从比特流熵解码。图31是示出包括帧内预测模式信息的语法结构的示例性示图。如图31中所示,帧内预测信息可包括以下多条信息中的至少一条。这里,可在VPS、SPS、PPS、APS、条带头和并行块头中的至少一个中用信号传送帧内预测信息。
指示MPM是否匹配的标志:例如,prev_intra_luma_pred_flag
指示MPM列表中的位置的索引:例如,mpm_idx
帧内亮度预测模式信息:例如,rem_intra_luma_pred_mode
帧内色度预测模式信息:例如,intra_chroma_pred_mode
弯曲帧内预测模式的曲率参数:例如,cuv
用于弯曲帧内预测模式的权重参数:例如,cw1、cw2、…、cwNs-1
用于弯曲帧内预测的LUT
指示使用邻近块的帧内预测模式推导当前块和子块的帧内预测模式的标志:例如,NDIP_flag
指示残差信号预测是否将被执行的标志:例如,SRP_flag
指示符(MPM标志):例如,MPM_FLAG_1、MPM_FLAG_2、…、MPM_FLAG_N,其中,所述指示符用于指示当当前块的帧内预测模式使用N个MPM列表被推导或者被熵编码/解码时,针对N个MPM列表中的每一个,与当前块的帧内预测模式相同的帧内预测模式是否被包括在MPM列表的帧内预测模式中
索引信息:例如,MPM_IDX_1、MPM_IDX_2、…、MPM_IDX_N,其中,所述索引信息用于指示当与当前块的帧内预测模式相同的帧内预测模式被包括在N个MPM列表中的特定一个MPM列表的帧内预测模式中时,该帧内预测模式在MPM列表中的位置或顺序。
指示是否针对当前块执行了基于变换模型的逐子块帧内预测的信息、以及指示所使用的SPIPM集的索引:例如,TBIP_flag和SPIPM_idx
指示是否针对当前块使用等空间模型基于子块推导帧内预测模式的信息、以及指示所使用的SPIPM集的索引:ES_flag和SPIPM_idx
指示是否针对当前块使用双线性滤波器模型基于子块推导帧内预测模式的信息、以及指示所使用的SPIPM集的索引:BF_flag和SPIPM_idx
当MPM(最可能模式)标志是1时,可通过使用MPM索引mpm_idx,从包括已被编码/解码的邻近单元的帧内模式的候选模式推导亮度分量的帧内预测模式。
当MPM(最可能模式)标志是0时,可通过使用关于亮度分量的帧内预测模式信息rem_intra_luma_pred_mode来对亮度分量的帧内预测模式进行编码/解码。
可通过使用关于色度分量的帧内预测模式信息intra_chroma_pred_mode和/或色度分量块的相应帧内预测模式来对色度分量的帧内预测模式进行编码/解码。
在弯曲帧内预测模式的情况下,可根据预测块内部的样点的位置(x,y)使用不同角度的参考样点来推导预测样点值。在预测块内部的样点可被分组为多个组,第一组可使用具有与第二组的角度不同的角度的方向帧内预测模式。每个组可包括一个或更多个样点。每个组可以是三角形形状、矩形形状或其它几何形状。
弯曲帧内预测模式的曲率参数cuv可表示被应用于弯曲帧内预测模式的曲率。可通过使用至少一个cuv对当前块执行弯曲帧内预测。可从邻近块的曲率参数之中的至少一个曲率参数推导曲率参数。
弯曲帧内预测模式的单个或多个权重参数cw可被应用于当前块。当多个权重参数cw被应用于当前块时,不同的权重参数可被应用于当前块的预定单元,诸如像素、行、列或子块等。可从邻近块的权重参数之中的至少一个权重参数推导权重参数。
用于推导曲率参数和/或权重参数的邻近块可以是在上侧、左侧和/或右侧与当前块相邻的已被编码/解码的块。
可通过使用cuv和cw中的至少一个来执行各种形式的弯曲帧内预测。
当N个cuv和M个cw被使用时,可通过产生至少(N×M)×4个预测块来执行当前块的帧内预测。
例如,当单个cuv和单个cw被使用时,可通过产生至少四个预测块来执行当前块的帧内预测。
例如,当两个cuv和单个cw被使用时,可通过产生至少八个预测块来执行当前块的帧内预测。
例如,当单个cuv和两个cw被使用时,可通过产生至少八个预测块来执行当前块的帧内预测。
例如,当两个cuv和两个cw被使用时,可通过产生至少十六个预测块来执行当前块的帧内预测。
可通过使用默认值和delta值来对关于至少两个cuv和/或cw的信息进行编码/解码。这里,默认值可表示单个cuw值和/或单个cw值,delta值可表示恒定值。
例如,当在当前块中使用2个cuv时,两个曲率参数可以是default_cuv和default_cuv+delta_cuv。
例如,当在当前块中使用N个cuv时,N个曲率参数可以是default_cuv、default_cuv+delta_cuv、default_cuv+2*delta_cuv、…、以及default_cuv+(N-1)*delta_cuv。(这里,N是大于2的正整数)。
例如,当在当前块中使用2N+1个cuv时,2N+1个曲率参数可以是default_cuv、default_cuv+delta_cuv、default_cuv-delta_cuv、default_cuv+2*delta_cuv、default_cuv-2*delta_cuv、…、default_cuv+N*delta_cuv以及default_cuv-N*delta_cuv。(这里,N是大于1的正整数)。
例如,当在当前块中使用两个cw时,两个权重参数可以是default_cw和default_cw+delta_cw。(这里,default_cw+delta_cw是矢量的元素单位的总和)。
例如,当在当前块中使用M个cw时,M个权重参数可以是default_cw、default_cw+delta_cw、default_cw+2*delta_cw、…、以及default_cw+(M-1)*delta_cw。(这里,default_cw+delta_cw是矢量的元素单位的总和,M是大于2的正整数)。
例如,当在当前块中使用2M+1个cw时,2M+1个曲率参数可以是default_cw、default_cw+delta_cw、default_cw-delta_cw、default_cw+2*delta_cw、default_cw-2*delta_cw、…、default_cw+M*delta_cw、以及default_cw-M*delta_cw。(这里,M是大于1的正整数)。
以上描述的关于cuv和/或cw的信息可被编码为比特流,或者可从比特流被解码。可选地,编码器或解码器可以以例如查找表的格式共享和存储关于cuv和/或cw的数量或者cuv和/或cw的值的信息。
当SRP_flag等于1时,可使用针对当前块或子块确定的帧内预测模式来执行残差信号预测。
帧内预测信息可基于编码参数中的至少一个被熵编码/从比特流解码。例如,可基于块划分信息来编码/解码NDIP_flag。
例如,如果split_flag、quadtree_flag和binarytree_flag中的至少一个是“0”并且因此块不被进一步划分,则NDIP_flag可被编码/解码。
例如,如果binarytree_flag是1,则NDIP_flag可不被编码/解码。
基于块的大小和形状中的至少一个,可不用信号传送以上描述的多条帧内预测信息中的至少一条。
例如,如果当前块的大小是预定大小,则可不用信号传送至少一条关于当前块的帧内预测信息,并且可使用至少一条关于与先前编码/解码的上层块的大小相应的帧内预测的信息。
例如,如果当前块被成形为矩形,则可不用信号传送至少一条关于当前块的帧内预测信息,并且可使用至少一条关于与先前编码/解码的上层块的大小相应的帧内预测的信息。
如果SRP_flag是1,则可使用针对当前块或子块确定的帧内预测模式来预测残差信号。
当多条帧内预测信息中的至少一条被熵编码/解码时,可使用以下二值化方法中的至少一种二值化方法。
—截断莱斯二值化方法
—K阶指数哥伦布二值化方法
—有限K阶指数哥伦布二值化方法
—固定长度二值化方法
—一元二值化方法
—截断一元二值化方法
现在,将详细描述参考样点构建步骤S1220。
在基于推导出的帧内预测模式对当前块或具有比当前块小的大小和/或形状的子块的帧内预测中,参考样点可被构建用于该预测。在当前块的上下文中给出以下描述,并且当前块可意为子块。可使用与当前块邻近的一个或更多个重建样点或样点组合来构建参考样点。另外,可在构建参考样点时应用滤波。这里,可按照原样使用多个重建样点线上的每个重建样点来构建参考样点。或者,可在同一重建样点线上的样点之间进行滤波之后构建参考样点。或者,可在不同重建样点线上的样点之间进行滤波之后构建参考样点。可用ref[m,n]来表示构建的参考样点,可用rec[m,n]来表示重建邻近样点或通过对重建邻近样点进行滤波而获得的样点。这里,m或n可以是预定的整数值。在当前块的大小为W(水平)×H(垂直)的情况下,如果当前块的最左上方样点位置是(0,0),则与该样点位置最接近的最左上方参考样点的相对位置可被设置为(-1,-1)。
图32是描绘可用于对当前块进行帧内预测的邻近重建样点线的示例性示图。
如图32中所示,可使用与当前块相邻的一个或更多个重建样点线来构建参考样点。
例如,可选择图32中示出的多个重建样点线之一,并且可使用所选择的重建样点线来构建参考样点。可将所述多个重建样点线中的预定一个重建样点线固定地选为所选择的重建样点线。或者,可将所述多个重建样点线中的特定一个重建样点线自适应地选为所选择的重建样点线。在这种情况下,可用信号传送用于所选择的重建样点线的指示符。
例如,可组合使用图32中示出的多个重建样点线中的一个或更多个来构建参考样点。例如,参考样点可被构建为一个或更多个重建样点的加权和(或加权平均)。可基于距当前块的距离来分配用于加权平均的权重。这里,可以对距当前块的较短距离分配较大的权重。例如,可使用以下[等式15]。
[等式15]
ref[-1,-1]=(rec[-2,-1]+2*rec[-1,-1]+rec[-1,-2]+2)>>2
ref[x,-1]=(rec[x,-2]+3*rec[x,-1]+2)>>2,(x=0~W+H-1)
ref[-1,y]=(rec[-2,y]+3*rec[-1,y]+2)>>2,(y=0~W+H-1)
或者,可基于距当前块的距离或帧内预测模式中的至少一个,使用多个重建样点的平均值、最大值、最小值、中值和最频繁值中的至少一个来构建参考样点。
或者,可基于多个连续重建样点的值的变化(改变)来构建参考样点。例如,可基于两个连续重建样点的值之间的差是否等于或大于阈值、两个连续重建样点的值是连续变化还是非连续变化、等等中的至少一个来构建参考样点。例如,如果rec[-1,-1]与rec[-2,-1]之间的差等于或大于阈值,则ref[-1,-1]可被确定为rec[-1,-1]、或者通过应用利用被分配给rec[-1,-1]的预定权重的加权平均而获得的值。例如,如果随着多个连续重建样点越接近当前块,所述多个连续重建样点的值每次被改变n,则参考样点ref[-1,-1]可被确定为rec[-1,-1]-n。
可根据当前块的上方边界或左侧边界是否与画面、条带、并行块和编码树块(CTB)中的至少一个的边界相应来不同地确定重建样点线的数量和位置之中的至少一个以及用于构建参考样点的构建方法。
例如,在使用重建样点线1和2来构建参考样点时,当当前块的上方边界与CTB边界相应时,重建样点线1可用于上方的边,并且重建样点线1和2可用于左侧的边。
例如,在使用重建样点线1至4来构建参考样点时,当当前块的上方边界与CTB边界相应时,重建样点线1和2可用于上方的边,并且重建样点线1至4可用于左侧的边。
例如,在使用重建样点线2来构建参考样点时,当当前块的上方边界与CTB边界相应时,重建样点线1可用于上方的边,重建样点线2可用于左侧的边。
可通过以上处理来构建一个或更多个参考样点线。
当前块的上方的边的参考样点构建方法可不同于当前块的左侧的边的参考样点构建方法。
可对指示参考样点已使用以上方法中的至少一个方法被构建的信息进行编码/解码。例如,可对指示多个重建样点线是否被使用的信息进行编码/解码。
如果当前块被划分成多个子块,并且每个子块具有独立的帧内预测模式,则可针对每个子块构建参考样点。
图33是描绘针对当前块中包括的子块构建参考样点的实施例的示图。
如图33中所示,如果当前块的大小是16×16并且16个4×4的子块具有独立的帧内预测模式,则可根据用于对子块进行预测的扫描方案按照以下方法中的至少一种方法来构建用于每个子块的参考样点。
例如,可使用与当前块邻近的N个重建参考样点线针对每个子块构建参考样点。在图33中示出的示例中,N是1。
例如,在按照1->2->3->…15->16的光栅扫描顺序预测多个子块的情况下,可使用已经编码/解码的左侧子块、上方子块、右上方子块和左下方子块中的至少一个的样点来构建用于第K子块的参考样点。
例如,在按照1->2->5->6->3->4->7->…12->15->16的Z字形扫描顺序预测多个子块的情况下,可使用已经编码/解码的左侧子块、上方子块、右上方子块和左下方子块中的至少一个的样点来构建用于第K子块的参考样点。
例如,在按照1->2->5->9->6->3->4->…12->15->16的zig-zag扫描顺序预测多个子块的情况下,可使用已经编码/解码的左侧子块、上方子块、右上方子块和左下方子块中的至少一个的样点来构建用于第K子块的参考样点。
例如,在按照1->5->9->13->2->6->…8->12->16的垂直扫描顺序预测多个子块的情况下,可使用已经编码/解码的左侧子块、上方子块、右上方子块和左下方子块中的至少一个的样点来构建用于第K子块的参考样点。
在按照以上扫描顺序之外的扫描顺序预测多个子块的情况下,可使用已经编码/解码的左侧子块、上方子块、右上方子块和左下方子块中的至少一个的样点来构建用于第K子块的参考样点。
在选择参考样点时,可执行关于包括参考样点的块的可用性的决定和/或填充。例如,如果包括参考样点的块可用,则可使用该参考样点。同时,如果包括参考样点的块不可用,则可通过填充来用一个或更多个可用的邻近参考样点替换该不可用参考样点。
如果参考样点存在于画面边界、并行块边界、条带边界、CTB边界和预定边界中的至少一个的外部,则可确定该参考样点不可用。
在当前块通过CIP(受约束的帧内预测)被编码的情况下,如果包括参考样点的块按照帧间预测模式被编码/解码,则可确定该参考样点不可用。
图34是描绘用于使用可用重建样点替换不可用重建样点的方法的示图。
如果确定邻近重建样点不可用,则可使用可用邻近重建样点来替换该不可用样点。例如,如图34中所示,在存在可用样点和不可用样点的情况下,可使用一个或更多个可用样点来替换不可用样点。
可按照预定顺序利用可用样点的样点值替换不可用样点的样点值。与不可用样点相邻的可用样点可被用于替换该不可用样点。在不存在相邻的可用样点的情况下,可使用第一个出现的可用样点或最近的可用样点。不可用样点的替换顺序可以是最左下方到最右上方的顺序。或者,不可用样点的替换顺序可以是最右上方到最左下方的顺序。或者,不可用样点的替换顺序可以是最左上方到最右上方和/或最左下方的顺序。或者,不可用样点的替换顺序可以是最右上方和/或最左下方到最左上方的顺序。
如图34中所示,可按照从最左下方样点位置0到最右上方样点的顺序来替换不可用样点。在这种情况下,可用第一个出现的或最接近的可用样点a的值来替换前四个不可用样点的值。可用最后的可用样点b的值来替换接下来的13个不可用样点的值。
或者,可使用可用样点的组合来替换不可用样点。例如,可使用与不可用样点的两端相邻的可用样点的平均值来替换不可用样点。例如,在图34中,可利用可用样点a的值来替换前四个不可用样点,并且可利用可用样点b和可用样点c的平均值来替换接下来的13个不可用样点。或者,可利用可用样点b的值和可用样点c的值之间的任意值来填充所述13个不可用样点。在这种情况下,可利用不同值来替换不可用样点。例如,由于不可用样点更接近可用样点a,因此可利用与可用样点a的值接近的值来替换不可用样点的值。类似地,由于不可用样点更接近可用样点b,因此可利用与可用样点b的值接近的值来替换不可用样点的值。也就是说,可基于从不可用样点到可用样点a和/或b的距离来确定不可用样点的值。
为了替换不可用样点,可选择性地应用包括以上方法的多种方法中的一种或更多种方法。可通过包括在比特流中的信息来用信号传送用于替换不可用样点的方法,或者,可使用由编码器和解码器预先确定的方法。或者,可通过预定方案来推导用于替换不可用样点的方法。例如,可基于可用样点a和b的值之间的差和/或不可用样点的数量来选择用于替换不可用样点的方法。例如,可基于两个可用样点的值之间的差与阈值之间的比较和/或不可用样点的数量与阈值之间的比较来选择用于替换不可用样点的方法。例如,如果两个可用样点的值之间的差大于阈值和/或如果不可用样点的数量大于阈值,则可用不同的值来替换不可用样点的值。
对于构建的一个或更多个参考样点,可根据当前块的帧内预测模式、大小和形状中的至少一个确定是否应用滤波。如果应用滤波,则可根据当前块的帧内预测模式、大小和形状中的至少一个来使用不同滤波器类型。
例如,对于多个参考样点线中的每一个,可不同地确定是否应用滤波和/或滤波器类型。例如,可向第一邻近线应用滤波,然而可不对第二邻近线应用滤波。
例如,可针对参考样点使用经过滤波的值和未经滤波的值两者。
例如,如果目标解码块的帧内预测模式intraPredMode是方向预测模式,则该方向预测模式和垂直方向模式(给定33个方向模式,其中,索引为26的模式)之间的差以及该方向预测模式与水平方向模式(给定33个方向模式,其中,索引为10的模式)之间的差中的较小者[minDistVerHor=Min(Abs(intraPredMode-26),abs(intraPredMode-10))]可被计算。
图35是示出针对块大小的用于确定是否应用滤波的示例性阈值的示图。
例如,对于4×4的块,阈值可以是10,对于8×8的块,阈值可以是7,对于16×16的块,阈值可以是1,对于32×32的块,阈值可以是0,并且,对于64×64的块,阈值可以是10。
如果minDistVerHor大于分配给相应块大小的阈值(minDistVerHor>intraHorVerDistThresh),则可执行滤波,如果minDistVerHor等于或小于该阈值,则可不执行滤波。
图36是示出是否根据块大小和/或帧间预测模式执行滤波的示例性示图。在图36中,X可表示不进行滤波,O可表示进行滤波。
例如,如图36中所示,可根据块大小和/或方向预测模式确定是否将滤波应用于具有8<=NS<=32的目标编码/解码块。
在应用滤波的另一实施例中,可对具有大大小的目标编码/解码块执行双线性插值滤波。例如,可针对块大小为NS的目标编码/解码块,在垂直方向和水平方向上计算二阶微分值。如果所述二阶微分值小于预定阈值(例如,|pref(-1,-1)-2×pref(NS/2,-1)+pref(NS,-1)|<2Bd-Ca和/或|pref(-1,-1)-2×pref(-1,NS/2)+pref(-1,NS)|<2Bd-C(Bd是作为满足1<=C<=Bd的正整数的比特深度)),则对于y=0、…、NS-1,可推导出参考像素pref(-1,y)=(Ns-1-y)/NS×pref(-1,-1)+(y+1)/NS×pref(-1,NS-1),或者对于x=0,…,NS-1,可推导出pref(x,-1)=(Ns-1-x)/NS×pref(-1,-1)+(x+1)/NS×pref(NS-1,-1)。
例如,可根据当前块的帧内预测模式、大小和形状中的至少一个选择并应用3抽头滤波器、5抽头滤波器、7抽头滤波器和N抽头滤波器(N是正整数)中的至少一个不同的滤波器。
在下文中,将详细描述执行帧内预测的步骤(S1230)。
可基于推导出的帧内预测模式和参考样点,针对当前块或子块执行帧内预测。在以下描述中,当前块可意为子块。
例如,可执行非方向帧内预测。非方向帧内预测模式可以是DC模式和平面模式中的至少一个。
可使用构建的参考样点中的一个或更多个的平均值来执行DC模式下的帧内预测。可将滤波应用于在当前块的边界上的一个或更多个预测样点。可根据当前块的大小和形状中的至少一个自适应地执行DC模式帧内预测。
图37是示出根据当前块的形状的帧内预测的示例性示图。
例如,如图37的(a)中所示,如果当前块成形为正方形,则可使用在当前块的上方和左侧的参考样点的平均值来预测当前块。
例如,如图37的(b)中所示,如果当前块成形为矩形,则可使用与当前块的宽度和长度之中的较长者邻近的参考样点的平均值来预测当前块。
例如,如果当前块的大小落在预定范围内,则从当前块的上方参考样点或左侧参考样点之中选择预定样点,并且可使用所选择的样点的平均值来执行预测。
例如,可使用构建的参考样点中的一个或更多个的平均值来执行DC模式帧内预测。例如,可使用下面的[等式16]。
[等式16]
可将滤波应用于位于当前块的边界上的一个或更多个预测样点。例如,可针对当前块的左侧和/或上方的N个列和/或行执行滤波。N可以是大于1的正整数。
图38是描绘针对DC-模式帧内预测的滤波的示图。
例如,如果N=1,则可针对目标块的一个上方行和/或一个左侧列执行滤波,如图38中所示。可通过下面的[等式17]来执行滤波。
[等式17]
可根据当前块的目标帧内预测样点的位置考虑距一个或更多个构建的参考样点的距离,通过计算加权和来执行平面模式帧内预测。
例如,依据目标预测样点的位置(x,y),预测块可被计算为N个参考样点的加权和。N可以是正整数,例如,4。
图39是描绘平面模式帧内预测的示图。
例如,如图39中所示,如果目标编码/解码块的宽度和长度中的每一个是4(NS=4),则在每个像素位置(x,y)处的预测像素值可被推导为上方参考像素c、左侧参考像素b、目标编码/解码块的右上角像素d、以及目标编码/解码块的左下角像素a的加权和。例如,可通过[等式18]推导所述加权和。
[等式18]
例如,可执行方向帧内预测。方向预测模式可以是水平模式、垂直模式和具有预定角度的模式中的至少一个。
可使用在目标帧内预测样点的位置处的水平/垂直线上的一个或更多个参考样点来执行水平/垂直模式帧内预测。
可使用在相对于目标帧内预测样点的位置的预定角度的线上的一个或更多个参考样点执行具有预定角度的模式下的帧内预测。这里,可使用N个参考样点。N可以是正整数,诸如2、3、4、5、或6。此外,例如,可通过应用N抽头滤波器(诸如2抽头、3抽头、4抽头、5抽头、或6抽头滤波器)来执行预测。
例如,可基于位置信息来执行帧内预测。位置信息可被编码/解码,并且在该位置处的重建样点块可被推导为用于当前块的帧内预测块。或者,由解码器检测到的与当前块类似的块可被推导为用于当前块的帧内预测块。
例如,帧内颜色分量预测可被执行。例如,可使用当前块的重建亮度分量针对色度分量执行帧内预测。或者,可使用当前块的一个重建色度分量Cb针对另一个色度分量Cr执行帧内预测。
可通过组合使用上述各种帧内预测方法中的一个或更多个来执行帧内预测。例如,可通过使用预定非方向帧内预测模式而预测的块以及使用预定方向帧内预测模式而预测的块的加权和,针对当前块构建帧内预测块。这里,可根据当前块的帧内预测模式、块大小、形状和/或样点位置中的至少一个来应用不同的权重。
或者,关于一个或更多个帧内预测模式的组合使用,可利用通过使用当前块的帧内预测模式而预测出的值以及通过使用MPM列表中包括的预定模式而预测出的值的加权和来构建预测块。
或者,可使用一个或更多个参考样点集来执行帧内预测。例如,可利用以下块的加权和来针对当前块执行帧内预测:使用未通过将滤波应用于构建的参考样点而获得的参考样点被帧内预测出的块、以及使用通过将滤波应用于构建的参考样点而获得的参考样点被帧内预测出的块。
在帧内预测时,可使用邻近重建样点来执行滤波操作。这里,根据当前块的帧内预测模式、块大小、形状和/或样点位置中的至少一个,可执行或可不执行滤波操作。滤波操作可被包括在帧内预测处理中并因此作为一个步骤被执行。在执行滤波时,可基于当前块的帧内预测模式、块大小和形状之中的至少一个自适应地确定滤波器抽头、系数、将被应用的线的数量以及将被应用的样点的数量中的至少一个。
在通过将当前块划分为子块并使用邻近块的帧内预测模式推导每个子块的帧内预测模式执行帧内预测时,可将滤波应用于当前块的每个子块。例如,可将低通滤波器应用于整个当前块。或者,可将滤波器应用于位于每个子块的边界上的样点。或者,可将滤波器应用于每个子块的预测块或重建块,并且,滤波器被应用到的子块的一个或更多个样点可在后续子块的帧内预测中被使用。
在将当前块划分为子块并且针对每个子块执行帧内预测时,每个子块可以是指编码/解码块、预测块和变换块中的至少一个。例如,如果当前块的大小是64×64并且子块的大小是16×16,则可推导作为每个子块的预测块的帧内预测模式,和/或可针对预测块执行帧内预测。如果一个或更多个子块中的每一个子块被进一步划分为8×8或4×4的块,则8×8或4×4的块中的每一个可以是变换块,并且可使用16×16的块的帧内预测模式针对通过进一步划分而获得的块执行帧内预测。
在方向帧内预测中,可使用N个方向模式中的至少一个方向模式对当前块进行编码/解码。这里,N可以是正整数,诸如33或65。在这种情况下,每个方向帧内预测模式可具有预定角度值。
在方向帧内预测中,可以利用以M个样点为单位的方向模式对当前块进行编码/解码。M可以是正整数。在这种情况下,以样点为单位的方向模式可意为使用一个或更多个方向帧内预测模式对当前块中的一个或更多个预测目标样点单元进行预测的模式。
在方向帧内预测中,可根据方向预测模式重建构建的参考样点。例如,如果方向预测模式是所有的左侧参考样点和上方参考样点被使用的模式,则可利用左侧参考样点或上方参考样点来构建单方向阵列。
图40是描绘从Pref产生1D参考样点阵列p1,ref的实施例的示图。
例如,如图40中所示,可使用一个或更多个左侧参考样点来构建上方参考样点的1D阵列。可根据方向模式使用左侧样点中的不同样点来构建上方参考样点。可通过移动左侧参考样点来构建上方参考样点,或者,可通过使用一个或更多个左侧参考样点的加权和来构建上方参考样点。
在方向帧内预测中,可执行基于实数的插值预测。例如,如下所述,可基于与每个方向预测模式相应的角度参数(intraPredAngle),根据当前块中的样点的位置确定用于预测样点插值的偏移(iIdx)和/或权重(iFact)。
例如,假设以1/32pel为单位进行插值,可通过下面的[等式19]确定用于具有垂直方向的方向模式的偏移和权重。
[等式19]
iIdx=((y+1)*intraPredAngle)>>5
iFact=((y+1)*intraPredAngle)&31
可根据[等式19]中的iFact的值来确定不同的预测样点值。例如,如果iFact不为0,则参考样点P1,ref的预测位置不是基于整数的位置(整样点位置),而是基于实数的位置。因此,可通过下面的[等式20]使用与实数位置相邻的多个参考样点(例如,两个左侧和右侧的相邻参考样点)来产生在目标样点位置(x,y)处的预测样点值。这里,相邻的多个参考样点可以是4或6个左侧和右侧的相邻参考样点。
[等式20]
predSamples[x][y]=((32-iFact)*p1,ref[x+iIdx+1]+iFact*p1,ref[x+iIdx+2]+16)>>5
例如,如果iFact是0,则可通过下面的[等式21]来产生预测样点值。或者,可使用参考样点P1,ref以及左侧和右侧参考样点来应用3抽头[1/4:2/4:1/4]滤波器。
[等式21]
predSamples[x][y]=p1,ref[x+iIdx+1]
在方向预测模式中的水平模式和/或垂直模式中的至少一个的情况下,可不针对参考样点执行滤波。另外,该参考样点可能不需要插值预测。此外,由于仅能够利用上方或左侧参考样点进行预测,因此可能不需要针对该参考样点构建1D阵列的处理。
图41是描绘根据预测块中的样点的位置使用不同角度处的参考样点的实施例的示图。
如图41中所示,在方向帧内预测中,可改变方向模式被应用于的单元。也就是说,可基于目标块中的样点单元、样点组单元和线单元中的至少一个,使用一个或更多个方向模式执行预测。
例如,可基于当前块使用方向模式来执行预测。或者,可针对在当前块中用于进行预测的每个目标样点线使用方向模式来执行预测。也就是说,可针对当前块的水平线或垂直线中的至少一条线中的每一个,使用不同的方向模式来执行预测。或者,可针对在当前块中用于进行预测的每个预定目标样点组使用方向模式执行预测。也就是说,可针对当前块中的包括N个样点的每个组使用不同方向模式来执行预测。例如,可针对当前块中用于进行预测的每个目标样点使用方向模式执行预测。也就是说,可针对当前块中用于进行预测的每个目标样点使用不同方向模式来执行预测。
当以当前块为单位执行一个方向预测时,如果编码目标块包括具有多个图像特征的曲线,则编码效率会降低。为了提高编码效率,可以以目标块内部的样点、样点组和线中的至少一个为单位,使用一个或更多个方向模式执行预测。
图41的(a)示出不同方向模式被用于目标块中的每个样点的示例性情况。在图41的(a)中示出的示例中,可使用位于每个方向模式的角度上的参考样点,针对每个样点产生预测值。
图41的(b)示出不同方向模式被用于目标块中的每个水平线的示例性情况。在图41的(b)中示出的示例中,可使用位于每个方向模式的角度上的参考样点,针对每个水平线产生预测值。
图41的(c)示出不同方向模式被用于目标块中的每个垂直线的示例性情况。在图41的(c)中示出的示例中,可使用位于每个方向模式的角度上的参考样点,针对每个垂直线产生预测值。
图41的(d)示出不同方向模式被应用于目标块中的对角线方向上的每个样点组的示例性情况。在图41的(d)中示出的示例中,可使用位于每个方向模式的角度上的参考样点,针对对角线方向上的每个对角样点组产生预测值。
图41的(e)示出不同方向模式被用于目标块中的每个L形线的示例性情况。在图41的(e)中示出的示例中,可使用位于每个方向模式的角度上的参考样点,针对每条直角线产生预测值。
除了图41的示例之外,可使用用于对一个或更多个样点进行分组的各种方法。例如,可将不同方向模式应用于通过将高度和/或宽度除以任意数而产生的每个块。
作为以目标块中的样点为单位使用不同方向模式的实施例,可通过使用曲率参数cuv和权重参数cwi(i=0、1、…、NS-1,NS:块大小)来确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
例如,在“从右上方的边到左下方的边”的帧内预测的情况下,如下面的方程式22,可按照行单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式22]
第y行→p(pos,-1),其中,pos=x+1/2*(x+y)+cwy*cuv*(x+1),
其中,y=0,1,…,Ns-1
在使用上面的方程式22进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向右移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向左移动(直到x的位置)。
当目标块是N×M时,cwi可以是包括N个权重的参数,其中,所述参数指块的高度或行的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应行中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i行的预测像素使用的参考像素的位置可向右移动。可选地,cwi值变得越小,则参考像素的位置可向左移动(直到x的位置)。
因此,可通过对曲率参数cuv和/或权重行参数cwi进行组合来执行各种形式的帧内预测。
图42是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从右上方的边到左下方的边的方向执行预测的实施例的示图。
图43是示出作为应用图42的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是正整数单位时,可通过参考像素p(pos,-1)来推导预测目标像素predSamples[x][y]。pos可指参考像素的位置。
例如,当预测目标像素的参考像素的位置是实数帧间单位时,predSamples[x][y]可被推导为通过对p(floor(pos),-1)和p(ceil(pos),-1)执行以1/N pel为单位的插值预测而获得的插值预测数。floor(pos)可以是等于或小于pos的整数值,并且可以指最大值。ceil(pos)可以是等于或大于pos的整数,并且可以指最小值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图42中,超过P(7,-1))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从左上方的边到右下方的边(类型-1)”的帧内预测的情况下,如下面的方程式23,可按照行单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式23]
第y行→p(pos,-1),其中,pos=x-1/2*(Ns-1-x+y)-cwy*cuv*(Ns-x),
其中,y=0,1,…,Ns-1
在使用上面的方程23进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向左移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向右移动(直到x的位置)。
当目标块是N×M时,cwi可以是包括N个权重的参数,其中,所述参数指块的高度或行的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应行中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i行的预测像素使用的参考像素的位置可向左移动。可选地,cwi值变得越小,则参考像素的位置可向右移动(直到x的位置)。
因此,可通过对曲率参数cuv和/或权重行参数cwi进行组合来执行各种形式的弯曲帧内预测。
图44是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左上方的边到右下方的边的方向(类型-1)执行预测的实施例的示图。
图45是示出作为应用图44的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是正整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(pos,-1)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(floor(pos),-1)和p(ceil(pos),-1)执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图29中,超过P(-7,-1))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从左下方的边到右上方的边”的帧内预测的情况下,如下面的方程式24,可按照列单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式24]
第x列→p(-1,pos),其中,pos=y+1/2*(x+y)+cwx*cuv*(y+1),
其中,x=0,1,…,Ns-1
在使用上面的方程式24进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向下移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向上移动(直到y的位置)。
当目标块是N×M时,cwi可以是包括M个权重的参数,其中,所述参数指块的宽度或列的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应列中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i列的预测像素使用的参考像素的位置可向下移动。可选地,cwi值变得越小,则参考像素的位置可向上移动(直到y的位置)。
因此,可通过对曲率参数cuv和/或权重列参数cwi进行组合来执行各种形式的帧内预测。
图46是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左下方的边到右上方的边的方向执行预测的实施例的示图。
图47是示出作为应用图46的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(-1,pos)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(-1,floor(pos))和p(-1,ceil(pos))执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图46中,超过P(-1,7))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从左上方的边到右下方的边(类型-2)”的帧内预测的情况下,如下面的方程式25,可按照列单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式25]
第x列→p(-1,pos),其中,pos=y-1/2*(Ns-1-y+x)-cwx*cuv*(Ns-y),
其中,x=0,1,…,Ns-1
在使用上面的方程式25进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向上移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向下移动(直到y的位置)。
当目标块是N×M时,cwi可以是包括M个权重的参数,其中,所述参数指块的宽度或列的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应列中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i列的预测像素使用的参考像素的位置可向上移动。可选地,cwi值变得越小,则参考像素的位置可向下移动(直到y的位置)。
因此,可通过对曲率参数cuv和/或权重列参数cwi进行组合来执行各种形式的帧内预测。
图48是示出通过向大小为4×4的当前块应用cuv=0.1、cw0=1.0、cw1=1.2、cw2=1.4和cw3=1.6,按照从左上方的边到右下方的边的方向(类型-2)执行预测的实施例的示图。
图49是示出作为应用图48的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(-1,pos)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(-1,floor(pos))和p(-1,ceil(pos))执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图48中,超过P(-1,-7))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从上方的边到左下方的边”的帧内预测的情况下,如下面的方程式26,可按照行单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式26]
第y行→p(pos,-1),其中,pos=x+cwy*cuv*y,其中,y=0,1,…,Ns-1
在使用上面的方程式26进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向右移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向左移动(直到x的位置)。
当目标块是N×M时,cwi可以是包括N个权重的参数,其中,所述参数指块的高度或行的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应行中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i行的预测像素使用的参考像素的位置可向右移动。可选地,cwi值变得越小,则参考像素的位置可向左移动(直到x的位置)。
因此,可通过对曲率参数cuv和/或权重行参数cwi进行组合来执行各种形式的帧内预测。
图50是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从上方的边到左下方的边的方向执行预测的实施例的示图。
图51是示出作为应用图50的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(pos,-1)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(floor(pos),-1)和p(ceil(pos),-1)执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图50中,超过P(7,-1))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从上方的边到右下方的边”的帧内预测的情况下,如下面的方程式27,可按照行单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式27]
第y行→p(pos,-1),其中,pos=x-cwy*cuv*y,其中,y=0,1,…,Ns-1
在使用上面的方程式27进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向左移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向右移动(直到x的位置)。
当目标块是N×M时,cwi可以是包括N个权重的参数,其中,所述参数指块的高度或行的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应行中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i行的预测像素使用的参考像素的位置可向左移动。可选地,cwi值变得越小,则参考像素的位置可向右移动(直到x的位置)。
因此,可通过对曲率参数cuv和/或权重行参数cwi进行组合来执行各种形式的帧内预测。
图52是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从上方的边到右下方的边的方向执行预测的实施例的示图。
图53是示出作为应用图52的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为p(pos,-1)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(floor(pos),-1)和p(ceil(pos),-1)执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图52中,超过P(-7,-1))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从左侧的边到右上方的边”的帧内预测的情况下,如下面的方程式28,可按照列单元确定用于产生预测块内的任意位置(x,y)的预测值的参考像素的位置。
[方程式28]
第x列→p(pos,-1),其中,pos=y+cwx*cuv*x,其中,x=0,1,…,Ns-1
在使用上面的方程式28进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向下移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向上移动(直到y的位置)。
当目标块是N×M时,cwi可以是包括M个权重的参数,其中,所述参数指块的宽度或列的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应列中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i列的预测像素使用的参考像素的位置可向下移动。可选地,cwi值变得越小,则参考像素的位置可向上移动(直到y的位置)。
因此,可通过对曲率参数cuv和/或权重列参数cwi进行组合来执行各种形式的弯曲帧内预测。
图54是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从左侧的边到右上方的边的方向执行预测的实施例的示图。
图55是示出作为应用图54的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的以1/N pel为单位的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(-1,pos)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(-1,floor(pos))和p(-1,ceil(pos))执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图54中,超过P(-1,7))时,所有参考像素的计算出的位置可在通过与可用参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
例如,在“从左侧的边到右下方的边”的帧内预测的情况下,如下面的方程式29,可按照列单元确定用于产生预测块的任意位置(x,y)的预测值的参考像素的位置。
[方程式29]
第x列→p(pos,-1),其中,pos=y-cwx*cuv*x,其中,x=0,1,…,Ns-1
在使用上面的方程式29进行帧内预测的情况下,可通过调整cuv来调整曲率的大小。cuv可以是等于或大于零的实数。例如,cuv值变得越大,则曲率变得越大,并且参考像素的位置可向上移动。可选地,cuv值变得越小,则曲率变得越小,并且参考像素的位置可向下移动(直到y的位置)。
当目标块是N×M时,cwi可以是包括M个权重的参数,其中,所述参数指块的宽度或列的数量。每个权重可以是等于或大于零的实数。可通过调整cwi来调整被相应列中包括的预测像素所使用的参考像素的位置。例如,cwi值变得越大,则被第i列的预测像素使用的参考像素的位置可向上移动。可选地,cwi值变得越小,则参考像素的位置可向下移动(直到y的位置)。
因此,可通过对曲率参数cuv和/或权重列参数cwi进行组合来执行各种形式的弯曲帧内预测。
图56是示出通过向大小为4×4的当前块应用cuv=0.6、cw0=1.0、cw1=1.4、cw2=1.8和cw3=2.2,按照从左侧的边到右下方的边的方向执行预测的实施例的示图。
图57是示出作为应用图56的cuv和cwi的结果的、由当前块内的预测像素使用的参考像素的位置的实施例的示图。
为了产生预测像素值,可执行所描述的插值预测。N可以是正整数。
例如,当预测目标像素的参考像素的位置是整数单位时,预测目标像素predSamples[x][y]可被推导为参考像素p(-1,pos)。
例如,当预测目标像素的参考像素的位置是实数单位时,predSamples[x][y]可被推导为通过对p(-1,floor(pos))和p(-1,ceil(pos))执行以1/N pel为单位的插值预测而获得的插值预测值。
如上所述,为了计算方便,可在产生预测样点值之前将pref转换为p1,ref
当参考像素的位置pos超过可用参考像素的最大范围(在图56中,超过P(-1,-7))时,所有参考像素的计算出的位置可在通过与参考像素的最大范围匹配而被转换成各自的标准化值之后被使用。
在参照图42至57描述的实施例中,单个曲率参数cuv被应用于当前块,并且单个权重参数cw被应用于当前块的行或列。然而,不限于此。换句话说,至少一个曲率参数cuvi和/或至少一个权重参数cwi可被应用于当前块。例如,如参照图41所描述的,不同的曲率参数cuvi和不同的权重参数cwi可被应用于当前块的像素单元、水平线单元、垂直线单元、对角线单元、直角线单元、子块单元和/或任意像素组单元。
图58是用于解释在目标块中以样点为单位使用不同方向模式的另一实施例的示图。
如图58中所示,基于以块为单位所选择的帧内预测模式,可执行以样点为单位的帧内预测。在此情况下,可另外地执行以样点为单位的帧内预测。
例如,当所选择的帧内预测模式是非方向模式(PLANAR_MODE或DC_MODE)时,可不仅仅执行以样点为单位的预测。
在图58的(a)中,当所选择的块的帧内预测模式被包括在范围A中时,可执行从左下方的边→右上方的边的方向以及从左侧的边→右上方的边的方向的以样点为单位的预测之中的至少一个。
可选地,在图58的(a)中,当所选择的块的帧内预测模式被包括在范围B中时,可执行从左上方的边→右下方的边的方向(类型2)以及从左侧的边→右下方的边的方向的以样点为单位的预测之中的至少一个。
可选地,在图58的(a)中,当所选择的块的帧内预测模式被包括在范围C中时,可执行从左上方的边→右下方的边的方向(类型1)以及从上方的边→右下方的边的方向的以样点为单位的预测之中的至少一个。
可选地,在图58的(a)中,当所选择的块的帧内预测模式被包括在范围D中时,可执行从右上方的边→左下方的边的方向以及从上方的边→左下方的边的方向的以样点为单位的预测之中的至少一个。
可选地,在图58的(b)中,当所选择的块的帧内预测模式被包括在范围A中时,可执行从左侧的边→右下方的边的方向以及从左侧的边→右上方的边的方向的以样点为单位的预测之中的至少一个。
可选地,在图58的(b)中,当所选择的块的帧内预测模式被包括在范围B中时,可执行从上方的边→左下方的边的方向以及从上方的边→右下方的边的方向的以样点为单位的预测之中的至少一个。
图59是描绘对残差信号进行预测的实施例的示图。
可针对从帧内预测构建的残差信号额外执行残差信号预测。
使用已经编码/解码的邻近块的样点针对当前块执行帧内预测。因此,当当前块的样点离参考样点较远时,残差信号较大,从而降低了编码效率。
为了进一步减小残差信号,可针对当前块或每个子块额外地执行残差信号预测。
在当前块之前已被编码/解码的重建邻近块可被设置为搜索范围。可根据当前块的大小、形状、划分深度和/或帧内预测模式来设置不同的搜索范围。
例如,在当前块之前重建的所有块可被设置为搜索范围。如果与当前块邻近的左侧块、左上方块、上方块和/或右上方块被包括在搜索范围内,则重建块的部分区域可包括当前块或在当前块之后的尚未开始编码的块。在此情况下,可用重建块的可用样点来填充相应样点值,或者,可从搜索范围去除在当前块之后的尚未开始编码的块。
例如,在当前块之前被重建的块之中的N个块可被设置为搜索范围。N可以是等于或大于1的正整数。
例如,如图59中所示,如果当前块CUR_BLK的宽度和长度分别是W和H,并且当前块的左上方像素的位置被定义为(0,0),则包括位置(-2*W,-2*H)、(-W,-2*H)、(0,-2*H)、(W,-2*H)、(-2*W,-H)、(-W,-H)、(0,-H)、(W,-H)、(-2*W,0)和(-W,0)处的像素的10个重建块可被设置为搜索范围。
例如,如果当前块是宽度W和长度H不相等的非正方形块,则可依据W和/或H来设置搜索范围。例如,如果当前块是W×H的非正方形块,则在重建邻近块的区域中可将搜索范围设置为大小(K*W)×(L*H)。这里,K和L中的每一个可以是等于或大于1的正整数。
可使用在上述各种帧内预测模式之中的通过帧内预测确定的当前块的帧内预测模式predModeIntra来构建当前块的预测块。
例如,在图59中,可用PRD_BLK_best来表示使用predModeIntra而构建的预测块。
除了通过predModeIntra构建的该预测块PRD_BLK_best之外,还可以构建当前块的一个或更多个预测块。
例如,可使用所有的方向/非方向帧内预测模式中的至少一个来构建至少一个额外预测块。
例如,可使用与predModeIntra邻近的N个帧内预测模式来构建额外预测块。这里,N可以是等于或大于1的正整数。例如,如图59中所示,如果N=2,则可构建两个额外预测块PRD_BLK_plus_one和PRD_BLK_minus_one。例如,如果predModeIntra是方向模式,则可使用predModeIntra+1来构建额外预测块PRD_BLK_plus_one,并且可使用predModeIntra-1来构建其它的额外预测块。可将等于或大于1的正整数与predModeIntra相加,或者,可从predModeIntra减去等于或大于1的正整数。
例如,可使用关于到predModeIntra的角度的N个邻近帧内预测模式来构建额外预测块。这里,N可以是等于或大于1的正整数。如果角度是θ,则可使用落在从-θ到θ的角度范围内的帧内预测模式来构建额外预测块。
例如,可通过对使用N个帧内预测模式而构建的N个额外预测块进行组合来构建M个额外预测块。这里,M和N可以是正整数。例如,如果predModeIntra是非方向模式PLANAR_MODE,则可使用DC_MODE来构建额外预测块PRD_BLK_plus_one,并且可使用PRD_BLK_best和PRD_BLK_plus_one的加权和来构建另一个额外预测块PRD_BLK_minus_one。或者,如果predModeIntra是非方向模式DC_MODE,则可使用PLANAR_MODE来构建额外预测块PRD_BLK_plus_one,并且可使用PRD_BLK_best和PRD_BLK_plus_one的加权和来构建另一个额外预测块PRD_BLK_minus_one。或者,如果predModeIntra是方向模式ANGULAR_MODE,则可使用ANGULAR_MODE来构建额外预测块PRD_BLK_plus_one,并且可使用PRD_BLK_best和PRD_BLK_plus_one的加权和来构建另一个额外预测块PRD_BLK_minus_one。
可通过使用当前块以及多个构建的预测块中的至少一个构建的预测块来获得多个差值块。例如,可构建当前块与使用所有的方向/非方向模式而构建的预测块之间的差值块。例如,可构建当前块与N+1个预测块之间的差值块,其中,所述N+1个预测块是使用predModeIntra和在角度或帧内预测模式方面与predModeIntra邻近的N个帧内预测模式被构建的。这里,N是等于或大于1的正整数。例如,如图59中所示,如果N=2,则如下可构建三个差值块。
例如,可获得当前块与PRD_BLK_best之间的差值块RES_BLK_best。例如,可获得当前块与PRD_BLK_plus_one之间的差值块RES_BLK_plusone。例如,可获得当前块与PRD_BLK_minus_one之间的差值块RES_BLK_minusone。
例如,可使用N个帧内预测模式来构建N个额外预测块,可通过对构建的N个预测块进行组合来构建M个额外预测块(M和N是正整数),然后可构建三个预测块与当前块之间的差值块。
可执行针对搜索范围内的每个样点计算最佳帧内位移矢量(IDV)的操作。如图59中所示,IDV可被定义为从当前块的左上方样点位置到搜索范围内的样点位置的矢量(x,y)。
对于每个IDV,可将由IDV所指示的样点位置用作(0,0)来构建具有与当前块相同大小的重建块REC_BLK。
可使用PRD_BLK_best以及多个额外构建的预测块中的至少一个额外构建的预测块,针对在由IDV所指示的位置处构建的重建块REC_BLK来构建一个或更多个残差信号块RES_BLK_IDV。
例如,如果使用N个额外预测块,则可通过[等式30]针对在由IDV所指示的位置处构建的重建块REC_BLK来构建N+1个残差信号块。
[等式30]
RES_BLK_IDV_best=REC_BLK-PRD_BLK_best
RES_BLK_IDV_1=REC_BLK-PRD_BLK_1
RES_BLK_IDV_2=REC_BLK-PRD_BLK_2
RES_BLK_IDV_N=REC_BLK-PRD_BLK_N
例如,如果如图59中所示使用两个额外预测块,则可通过[等式31]针对在由IDV所指示的位置处构建的重建块REC_BLK构建三个残差信号块。
[等式31]
RES_BLK_IDV_best=REC_BLK-PRD_BLK_best
RES_BLK_IDV_plusone=REC_BLK-PRD_BLK_plus_one
RES_BLK_IDV_minusone=REC_BLK-PRD_BLK_minus_one
可构建与被应用于搜索范围内的在由每个IDV所指示的位置处的重建块的预测块的数量一样多的二阶残差块。
图60是描绘使用二阶残差信号块对残差信号进行预测的示图。
如图60中所示,可使用RES_BLK_’MODE’与RES_BLK_IDV_’MODE’之间的差值来获得二阶残差信号块RES_BLK_SEC。这里,“MODE”可以是预定帧内预测模式。
例如,如果N个预测块被应用于重建块,则可通过[等式32]针对重建块RES_BLK构建N个二阶残差信号块。
[等式32]
RES_BLK_SEC_1=RES_BLK_1-RES_BLK_IDV_1
RES_BLK_SEC_2=RES_BLK_2-RES_BLK_IDV_2
RES_BLK_SEC_N=RES_BLK_N-RES_BLK_IDV_N
例如,如图60中所示,如果使用通过利用predModeIntra而产生的预测块以及两个额外预测块,则可通过[等式33]针对重建块REC_BLK来构建三个二阶残差信号块。
[等式33]
RES_BLK_SEC_best=RES_BLK_best-RES_BLK_IDV_best
RES_BLK_SEC_plusone=RES_BLK_plusone-RES_BLK_IDV_plusone
RES_BLK_SEC_minusone=RES_BLK_minusone-RES_BLK_IDV_minusone
可通过将RES_BLK_best的代价函数值与残差信号块的代价函数值进行比较来确定是否针对在搜索范围内的由每个IDV所指示的位置处的重建块执行残差信号预测,其中,所述残差信号块根据率失真优化在多个二阶残差信号块RES_BLK_SEC之中是最小的。可用例如指示符SRP_flag(二阶残差预测)来指示是否执行残差信号预测。例如,如果残差信号预测被执行,则第一值可被分配给SRP_flag,如果残差信号预测不被执行,则第二值可被分配给SRP_flag。第一值可以是1,第二值可以是0。
例如,如果二阶残差信号块的代价函数值之中的最小值小于从RES_BLK_best产生的代价函数值,则第一值可被分配给SRP_flag。此外,SRP_flag、IDV、被用于产生具有最小代价函数值的二阶残差信号块的帧内预测模式、以及RES_BLK_SEC的二阶残差信号中的至少一个可被编码在比特流中或者从比特流解码。
例如,如果二阶残差信号块的代价函数值中的最小值等于或大于从RES_BLK_best产生的代价函数值,则第二值可被分配给SRP_flag。此外,RES_BLK_best的残差信号、SRP_flag以及predModeIntra中的至少一个可被编码在比特流中或者从比特流解码。
由于针对指示搜索范围内的所有样点的所有IDV重复执行以上操作,可确定所有的指示具有比RES_BLK_best的代价函数值小的代价函数值的二阶残差信号块的IDV。可从确定的所有IDV中最终选择具有最小代价函数值的IDV。
图61是描绘残差信号预测的实施例的示图。
CUR_BLK表示进行编码/解码的当前块。RES_BLK可以是一阶残差信号,表示当前块的预测块与CUR_BLK之间的残差信号块。该预测块可以是在编码器/解码器中针对当前块构建的多个预测块之一。
IDV_REC_BLK表示从IDV构建的重建块。RES_BLK_IDV表示当前块的预测块与IDV_REC_BLK之间的残差信号块。该预测块可以是在编码器/解码器中针对当前块构建的多个预测块之一。
RES_BLK_SEC表示RES_BLK与RES_BLK_IDV之间的二阶残差信号块。
在图61中,如果RES_BLK的代价函数值小于RES_BLK_SEC的代价函数值,则第一值可被分配给SRP_flag。此外,SRP_flag、IDV、用于产生具有最小代价函数值的二阶残差信号块的帧内预测模式、以及RES_BLK_SEC的二阶残差信号中的至少一个可被编码在比特流中或从比特流解码。第一值可以是0或1。
在图61中,如果RES_BLK的代价函数值等于或大于RES_BLK_SEC的代价函数值,则第二值可被分配给SRP_flag。此外,RES_BLK的一阶残差信号、SRP_flag、以及predModeIntra中的至少一个可被编码在比特流中或从比特流解码。第二值可以是0或1。
可使用第一残差信号和第二残差信号中的至少一个来推导当前块的残差信号。邻近块IDV_REC_BLK可以是由上述IDV所指示的块,并且可以与当前块邻近(例如,在当前块之前被重建的块,诸如在当前块左侧的块和上方的块)。IDV可按原样被编码,或者可通过对IDV与当前画面中的另一块的IDV之间的差进行编码而被编码。RES_BLK_IDV可被推导为通过从重建邻近块减去预定的预测块而获得的值。这里,产生该预测块所使用的帧内预测模式可以是邻近块IDV_REC_BLK或当前块的帧内预测模式,或者可以是编码器/解码器中的预设模式。或者,预定的预测块可被设置为与用于当前块的预测块相同。或者,包括当前块的上层块可被定义,并且由属于上层块的块所共享的残差信号可被定义为第二残差信号。可基于预定标志SRP_flag来选择性地执行基于上述第二残差信号的残差预测技术。可通过序列、画面、条带和块中的至少一个用信号传送该标志。或者,如果该标志是常量,则该标志可根据当前块的大小、形状和/或深度被推导为在编码器/解码器中预设的固定值。
指示是否针对当前块执行残差信号预测的指示符(标志)可被编码/解码。例如,该指示符可以是SRP_flag,并且可按照当前块或每个子块中的至少一个被编码/解码。
IDV、针对当前块的残差信号预测所选择的帧内预测模式(图61中的mode_x)、以及作为残差信号预测所需的信息其它编码参数信息中的至少一个可被编码在比特流中或从比特流解码。
可使用邻近块的IDV对当前块的IDV信息进行预测编码/解码。例如,可对当前块的IDV与邻近块的IDV的最小值、最大值、中值、平均值、最频繁值、或加权和之间的差进行编码/解码。
或者,如果邻近块的IDV中的至少一个与当前块的IDV相同,则编码器可按照预定义方法使用邻近块的IDV制作并使用IDV列表。编码器可将指示邻近块的IDV中的至少一个与当前块的IDV相同的信息(例如,标志)、和/或指示IDV列表中的相同IDV的信息(例如,索引)编码为当前块的IDV信息。如果标志信息指示邻近块的IDV中的至少一个与当前块的IDV相同,则解码器可根据预定义方法制作IDV列表。解码器可使用制作的IDV列表和索引信息来推导当前块的IDV。
图62a和图62b是描绘在编码器中执行残差信号预测的实施例的示图。
可针对当前块执行帧内预测(S6201),并且可确定最佳帧内预测模式predModeIntra(S6202)。在步骤S6202,可使用最佳帧内预测模式来产生预测块PRD_BLK_best。可获得在使用predModeIntra而产生的预测块PRD_BLK_best与当前块之间的残差块RES_BLK_bset(S6203)。
可基于在步骤S6202确定的predModeIntra来确定N个额外帧内预测模式(S6204)。在步骤S6205,可从包括predModeIntra和N个额外帧内预测模式的N+1个帧内预测模式产生N+1个预测块PRD_BLK_'mode'。在步骤S6206,可使用当前块和N+1个预测块PRD_BLK_'mode'来获得N+1个残差块RES_BLK_'mode'。
在步骤S6207,可使用逐像素搜索或预定搜索方法在搜索范围内移动并确定IDV。可在确定的IDV位置处获得重建块REC_BLK_IDV(S6208)。在步骤S6209,可使用REC_BLK_IDV和N+1个预测块PRD_BLK_'mode'来获得N+1个IDV残差块RES_BLK_IDV_'mode'。
在步骤S6210,可使用RES_BLK_'mode'和与RES_BLK_'mode'相应的RES_BLK_IDV_'mode'来获得N+1个二阶残差块RES_BLK_SEC_'mode'。
在步骤S6211,可将每个块RES_BLK_SEC_'mode'的RD代价与RES_BLK_best的RD代价进行比较。如果至少一个块RES_BLK_SEC_'mode'的RD代价小于RES_BLK_best的RD代价(在S6211中为是),则该过程可进行到步骤S6212。否则(步骤S6211中为否),该过程可进行到步骤S6213。
在步骤S6212,第一值(例如1)可被分配给SRP_flag,并且最佳代价可被确定为所述至少一个块RES_BLK_SEC_'mode'的RD代价。
在步骤S6213,可确定当前IDV是否是搜索范围内的最后IDV。如果当前IDV不是最后IDV(在步骤S6213中为否),则该过程进行到步骤S6207,并且可针对下一个IDV重复以上操作。如果当前IDV是最后IDV(在步骤S6213中为是),则该过程可进行到步骤S6214。
在步骤S6214,可确定SRP_flag是否是第一值(例如,1)。如果SRP_flag是第一值(在S6214中为是),则该过程可进行到步骤S6215。如果SRP_flag不是第一值(在S6214中为否),则该过程可进行到步骤S6216。
SRP_flag、IDV、用于产生具有最小代价函数值的二阶残差信号块的帧内预测模式(在PRED_BLK_'mode'中使用的'mode')和RES_BLK_SEC_'mode'的二阶残差信号中的至少一个可在步骤S6215被确定为编码目标,并在步骤S6217被编码。
RES_BLK的一阶残差信号(例如,RES_BLK_best)、SRP_flag、以及predModeIntra中的至少一个可在步骤S6216被确定为编码目标,并在步骤S6217被编码。
如果IDV不被用信号传送,则解码器可通过按照相同的方式执行编码器的搜索过程来推导IDV。
图63是描绘在解码器中执行残差信号预测的实施例的示图。
在步骤S6301,可对比特流中包括的相关信息进行解码。
如果SRP_flag不是第一值(例如,1)(在S6302中为否),则可执行步骤S6303。
在步骤S6303,可产生与predModeIntra相应的预测块PRD_BLK_best。另外,可对残差块RES_BLK_best进行解码。
在步骤S6304,可使用PRD_BLK_best和RES_BLK_best来产生重建块。
如果SRP_flag是第一值(例如,1)(在S6302中为是),则可执行步骤S6305、S6306和S6307。
在步骤S6305,可对二阶残差块RES_BLK_SEC_'mode'进行解码。
在步骤S6306,可产生与解码的IDV相应的重建块REC_BLK_IDV。
在步骤S6307,可产生与解码的'mode'相应的预测块PRD_BLK_'mode'。
在步骤S6308,可使用产生的REC_BLK_IDV和PRD_BLK_'mode'来产生IDV残差块RES_BLK_IDV_'mode'。
在步骤S6309,可使用产生的RES_BLK_SEC_'mode'以及RES_BLK_IDV_'mode'来产生残差块RES_BLK。
在步骤S6310,可使用产生的RES_BLK和PRD_BLK_'mode'来产生重建块。
如上所述,如果IDV未被用信号传送,则解码器可通过按照相同的方式执行编码器的搜索操作来推导IDV。
可针对亮度信号和色度信号中的每一个执行帧内编码/解码处理。例如,在帧内编码/解码处理中,可针对亮度信号和色度信号不同地应用推导帧内预测模式、对块进行划分、构建参考样点以及执行帧内预测的至少一种方法。
可针对亮度信号和色度信号同等地执行帧内编码/解码处理。例如,在针对亮度信号应用帧内编码/解码处理时,可对色度信号同等地应用推导帧内预测模式、对块进行划分、构建参考样点以及执行帧内预测中的至少一个。
可按照相同的方式在编码器和解码器中执行所述方法。例如,在帧内编码/解码处理中,可在编码器和解码器中同等地应用推导帧内预测模式、对块进行划分、构建参考样点以及执行帧内预测的至少一种方法。另外,应用方法的顺序可在编码器和解码器中不同。例如,在针对当前块执行帧内编码/解码时,编码器可对通过在构建参考样点之后执行至少一种帧内预测而确定的帧内预测模式进行编码。
本发明的实施例可根据编码块、预测块、块和单元中的至少一个的大小而被应用。这里,所述大小可被定义为最小大小和/或最大大小以便应用实施例,并且可被定义为应用了实施例的固定大小。此外,第一实施例可按照第一大小被应用,第二实施例可按照第二大小被应用。也就是说,实施例可根据所述大小而被多次应用。此外,本发明的实施例可仅在大小等于或大于最小大小并且等于或小于最大大小时被应用。也就是说,实施例可仅在块大小在预定范围中时被应用。
例如,仅当编码/解码目标块的大小等于或大于8×8时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于16×16时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于32×32时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于64×64时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于128×128时,实施例才可被应用。例如,仅当编码/解码目标块的大小为4×4时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或小于8×8时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于16×16时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于8×8且等于或小于16×16时,实施例才可被应用。例如,仅当编码/解码目标块的大小等于或大于16×16且等于或小于64×64时,实施例才可被应用。
本发明的实施例可根据时间层而被应用。用于标识可被应用实施例的时间层的标识符可用信号传送,并且可针对由所述指示符指明的时间层应用实施例。这里,所述标识符可被定义为指示可被应用实施例的最小层和/或最大层,并且可被定义为指示可被应用实施例的特定层。
例如,仅在当前画面的时间层为最底层时,实施例才可被应用。例如,仅在当前画面的时间层标识符为0时,实施例才可被应用。例如,仅在当前画面的时间层标识符等于或大于1时,实施例才可被应用。例如,仅在当前画面的时间层为最高层时,实施例才可被应用。
如在本发明的实施例中所描述的,在参考画面列表构建和参考画面列表修改的处理中使用的参考画面集可使用参考画面列表L0、L1、L2和L3中的至少一个。
根据本发明的实施例,当去块滤波器计算边界强度时,可使用编码/解码目标块的至少一个至最多N个运动矢量。这里,N指示等于或大于1的正整数,诸如2、3、4等。
在运动矢量预测中,当运动矢量具有以下单元中的至少一个时,可应用本发明的实施例:16-像素(16-pel)单元、8-像素(8-pel)单元、4-像素(4-pel)单元、整数-像素(整数-pel)单元、1/2-像素(1/2-pel)单元、1/4-像素(1/4-pel)单元、1/8-像素(1/8-pel)单元、1/16-像素(1/16-pel)单元、1/32-像素(1/32-pel)单元以及1/64-像素(1/64-pel)单元。此外,在执行运动矢量预测时,可针对每个像素单元可选地使用运动矢量。
可定义应用本发明的实施例的条带类型并且可根据条带类型应用本发明的实施例。
例如,当条带类型是T(三向预测)-条带时,预测块可通过使用至少三个运动矢量来产生,并且可通过计算至少三个预测块的加权和而被用作编码/解码目标块的最终预测块。例如,当条带类型是Q(四向预测)-条带时,预测块可通过使用至少四个运动矢量来产生,并且可通过计算至少四个预测块的加权和而被用作编码/解码目标块的最终预测块。
本发明的实施例可被应用于使用运动矢量预测的帧间预测和运动补偿方法以及使用跳过模式、合并模式等的帧间预测和运动补偿方法。
应用了本发明的实施例的块的形状可具有正方形或非正方形。
在上述实施例中,基于具有一系列步骤或单元的流程图描述了所述方法,但本发明不限于所述步骤的顺序,而是,一些步骤可与其它步骤被同时执行,或者可与其它步骤按照不同顺序被执行。此外,本领域普通技术人员应该理解,流程图中的步骤不彼此相斥,并且在不影响本发明的范围的情况下,其它步骤可被添加到流程图中,或者一些步骤可从流程图被删除。
实施例包括示例的各种方面。针对各个方面的所有可能组合可不被描述,但本领域技术人员将能够认识到不同组合。因此,本发明可包括权利要求范围内的所有替换形式、修改形式和改变。
本发明的实施例可按照程序指令的形式来实施,其中,所述程序指令可由各种计算机组件来执行,并被记录在计算机可读记录介质上。计算机可读记录介质可包括单独的程序指令、数据文件、数据结构等,或者是程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可被特别设计和构造用于本发明,或者对于计算机软件技术领域的普通技术人员而言是已知的。计算机可读记录介质的示例包括:磁记录介质(诸如硬盘、软盘和磁带);光学数据存储介质(诸如CD-ROM或DVD-ROM);磁光介质(诸如软光盘);以及被特别构造用于存储和实施程序指令的硬件装置(诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存存储器等)。程序指令的示例不仅包括由编译器形成的机器语言代码,还包括可由计算机使用解释器实施的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,反之亦可。
虽然已根据特定术语(诸如详细元件)以及有限实施例和附图描述了本发明,但它们仅被提供用于帮助更通俗地理解本发明,本发明不限于上述实施例。本发明所属领域的技术人员将理解,可从以上描述做出各种修改和改变。
因此,本发明的精神不应受限于上述实施例,所附权利要求及其等同物的全部范围将落入本发明的范围和精神之内。
工业可用性
本发明可在对图像进行编码/解码时被使用。

Claims (8)

1.一种图像解码方法,包括:
确定当前块的预测模式是否是帧内预测;
在当前块的预测模式是帧内预测时,确定当前块的参考样点线;
推导当前块的帧内预测模式;
基于当前块的参考样点线推导当前块的参考样点;
通过基于所述帧内预测模式和所述参考样点针对当前块执行帧内预测来产生预测块;以及
基于所述预测块获得重建块,
其中,推导当前块的所述帧内预测模式的步骤包括:
确定是否从最可能模式MPM推导当前块的所述帧内预测模式,
其中,当确定从MPM推导当前块的所述帧内预测模式时,从比特流解码单个标志以从第一MPM列表或第二MPM列表推导当前块的所述帧内预测模式,
其中,基于所述单个标志,确定是从第一MPM列表还是从第二MPM列表推导当前块的所述帧内预测模式,
其中,响应于所述单个标志指示从第二MPM列表推导当前块的所述帧内预测模式,从比特流进一步解码MPM索引以确定当前块的所述帧内预测模式,其中,所述MPM索引指定第二MPM列表中包括的MPM之一,
其中,响应于确定不从MPM推导当前块的所述帧内预测模式,基于指定除了MPM之外的剩余帧内预测模式之一的信息来推导当前块的所述帧内预测模式。
2.如权利要求1所述的方法,其中,在当前块是通过对编码块进行分区而产生的子块之一时,基于所述编码块的位置而不是当前块的位置来推导MPM。
3.如权利要求1所述的方法,
其中,响应于当前块的所述帧内预测模式是方向模式,通过第二参考样点来修改预测样点,
其中,所述预测样点是基于第一参考样点获得的,其中,第一参考样点位于从所述预测样点起的所述帧内预测模式的方向上,
其中,第二参考样点位于与从所述预测样点起的所述帧内预测模式的所述方向不同的方向上。
4.如权利要求1所述的方法,其中,所述参考样点线是基于从比特流解码的信息从多个参考样点线候选中选择的,
其中,响应于当前块是通过对编码块进行分区而产生的子块之一,通过仅利用所述多个参考样点线候选中的第一参考样点线候选来调用针对当前块的帧内预测。
5.如权利要求4所述的方法,其中,基于当前块的上边界是否与编码树块的边界相应来确定可用于当前块的所述多个参考样点线候选的数量。
6.如权利要求1所述的方法,其中,在当前块是矩形并且所述帧内预测模式是DC模式的情况下,使用与当前块的宽度和高度之中较长的边相邻的参考样点的平均值来执行当前块的帧内预测。
7.一种图像编码方法,包括:
确定当前块的参考样点线;
确定当前块的帧内预测模式;
基于当前块的参考样点线确定当前块的参考样点;
通过基于所述帧内预测模式和所述参考样点针对当前块执行帧内预测来产生预测块;
通过从原始块减去所述预测块来获得当前块的残差块;以及
对指示当前块的预测模式是否是帧内预测的预测模式信息进行编码,
其中,所述方法还包括:
确定当前块的所述帧内预测模式是否与最可能模式MPM之一相同,
其中,当确定当前块的所述帧内预测模式与MPM之一相同时,将用于选择第一MPM列表和第二MPM列表之一的标志编码到比特流中,
其中,响应于所述标志被编码为指示第二MPM列表,还将指定第二MPM列表中包括的MPM之一的MPM索引编码到比特流中,
其中,响应于确定当前块的所述帧内预测模式不与MPM中的任何一个相同,将指定除了MPM之外的剩余帧内预测模式中的与当前块的所述帧内预测模式相同的一个帧内预测模式的信息编码到比特流中。
8.一种比特流发送方法,包括
通过基于图像编码方法对视频进行编码来产生比特流;以及
发送比特流,
其中,图像编码方法包括:
确定当前块的参考样点线;
确定当前块的帧内预测模式;
基于当前块的参考样点线推导当前块的参考样点;
通过基于所述帧内预测模式和所述参考样点针对当前块执行帧内预测来产生预测块;
通过从原始块减去所述预测块来获得当前块的残差块;以及
对指示当前块的预测模式是否是帧内预测的预测模式信息进行编码,
其中,所述方法还包括:
确定当前块的所述帧内预测模式是否与最可能模式MPM之一相同,
其中,当确定当前块的所述帧内预测模式与MPM之一相同时,将用于选择第一MPM列表和第二MPM列表之一的标志编码到比特流中,
其中,响应于所述标志被编码为指示第二MPM列表,还将指定第二MPM列表中包括的MPM之一的MPM索引编码到比特流中,
其中,响应于确定当前块的所述帧内预测模式不与MPM中的任何一个相同,将指定除了MPM之外的剩余帧内预测模式中的与当前块的所述帧内预测模式相同的一个帧内预测模式的信息编码到比特流中。
CN202311313785.3A 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质 Pending CN117201809A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20160098094 2016-08-01
KR10-2016-0098094 2016-08-01
KR20170000206 2017-01-02
KR10-2017-0000206 2017-01-02
CN201780061056.XA CN109792515B (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
PCT/KR2017/008221 WO2018026148A1 (ko) 2016-08-01 2017-07-31 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780061056.XA Division CN109792515B (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质

Publications (1)

Publication Number Publication Date
CN117201809A true CN117201809A (zh) 2023-12-08

Family

ID=61073915

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202311313785.3A Pending CN117201809A (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
CN201780061056.XA Active CN109792515B (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
CN202311311003.2A Pending CN117201808A (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
CN202311310805.1A Pending CN117201807A (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质

Family Applications After (3)

Application Number Title Priority Date Filing Date
CN201780061056.XA Active CN109792515B (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
CN202311311003.2A Pending CN117201808A (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质
CN202311310805.1A Pending CN117201807A (zh) 2016-08-01 2017-07-31 图像编码/解码方法和装置以及存储比特流的记录介质

Country Status (3)

Country Link
KR (1) KR102435675B1 (zh)
CN (4) CN117201809A (zh)
WO (1) WO2018026148A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116866565A (zh) * 2018-03-21 2023-10-10 Lx 半导体科技有限公司 图像编码/解码方法、存储介质以及图像数据的传输方法
EP3562158A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for combined intra prediction modes
CN110166777B (zh) * 2018-07-04 2023-11-17 腾讯科技(深圳)有限公司 编码方法、装置和视频数据编码设备
WO2020050665A1 (ko) * 2018-09-05 2020-03-12 엘지전자 주식회사 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치
WO2020060328A1 (ko) * 2018-09-21 2020-03-26 주식회사 엑스리스 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN109561316A (zh) * 2018-10-26 2019-04-02 西安科锐盛创新科技有限公司 一种vr三维图像压缩方法
GB2580036B (en) * 2018-12-19 2023-02-01 British Broadcasting Corp Bitstream decoding
KR20200083315A (ko) * 2018-12-28 2020-07-08 한국전자통신연구원 화면 내 예측 모드 유도 방법 및 장치
CN113347438B (zh) 2019-01-02 2023-09-29 Oppo广东移动通信有限公司 帧内预测方法及装置、视频编码设备、存储介质
WO2020147773A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Inserting order of motion candidates in lut
CN116684611A (zh) * 2019-04-16 2023-09-01 Lg电子株式会社 图像编解码方法、数字存储介质和数据发送方法
WO2020213946A1 (ko) 2019-04-16 2020-10-22 엘지전자 주식회사 변환 인덱스를 이용하는 영상 코딩
KR102627821B1 (ko) * 2019-06-04 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 이웃 블록 정보를 사용한 모션 후보 리스트 구성
EP3886435A4 (en) * 2019-06-25 2022-01-26 Guangdong Oppo Mobile Telecommunications Corp., Ltd. MAPPING PROCESS, ENCODER, DECODER AND COMPUTER STORAGE MEDIA
CN114391258B (zh) 2019-07-05 2023-07-18 Lg电子株式会社 基于亮度映射的视频或图像编码
KR20220042209A (ko) * 2019-10-08 2022-04-04 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021162724A1 (en) * 2020-02-13 2021-08-19 Google Llc Intra prediction for image and video compression
CN113422966A (zh) * 2021-05-27 2021-09-21 绍兴市北大信息技术科创中心 一种多模型cnn环路滤波方法
WO2023081509A1 (en) * 2021-11-08 2023-05-11 Beijing Dajia Internet Information Technology Co., Ltd Cross-component sample adaptive offset
WO2024043745A1 (ko) * 2022-08-25 2024-02-29 엘지전자 주식회사 Mrl(multi reference line)을 이용한 인트라 예측 모드에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장하는 기록 매체

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5321439B2 (ja) * 2009-12-15 2013-10-23 株式会社Jvcケンウッド 画像符号化装置、画像復号化装置、画像符号化方法、及び、画像復号化方法
CN106412585A (zh) * 2011-06-17 2017-02-15 联发科技股份有限公司 内部预测模式编码的方法
US9762900B2 (en) * 2011-06-17 2017-09-12 Lg Electronics Inc. Method and apparatus for encoding/decoding video in intra prediction mode
KR101348544B1 (ko) * 2011-08-17 2014-01-10 주식회사 케이티 단거리 화면 내 예측 모드에서 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
PT2773118T (pt) * 2011-10-24 2020-09-25 Innotive Ltd Método e aparelho para descodificação de imagens
JP2015008341A (ja) * 2011-10-31 2015-01-15 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
KR101830352B1 (ko) * 2011-11-09 2018-02-21 에스케이 텔레콤주식회사 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
CN108174205A (zh) * 2011-12-05 2018-06-15 Lg 电子株式会社 帧内预测的方法和设备
KR101827939B1 (ko) * 2011-12-13 2018-02-12 주식회사 스카이미디어테크 적응적인 인트라 예측 모드 부호화 방법 및 장치, 그리고 복호화 방법 및 장치
JP2013141187A (ja) * 2012-01-06 2013-07-18 Sony Corp 画像処理装置及び画像処理方法
JP2013150164A (ja) * 2012-01-19 2013-08-01 Sony Corp 符号化装置および符号化方法、並びに、復号装置および復号方法
CN109413429B (zh) * 2012-01-20 2022-05-17 杜比实验室特许公司 解码方法、视频解码设备及编码方法
ES2961654T3 (es) * 2012-06-29 2024-03-13 Electronics & Telecommunications Res Inst Método y dispositivo para codificar/decodificar imágenes
RU2510944C2 (ru) * 2012-07-03 2014-04-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ кодирования/декодирования многоракурсной видео последовательности на основе адаптивной локальной коррекции яркости опорных кадров без передачи дополнительных параметров (варианты)
GB2509901A (en) * 2013-01-04 2014-07-23 Canon Kk Image coding methods based on suitability of base layer (BL) prediction data, and most probable prediction modes (MPMs)
US9247255B2 (en) * 2013-02-28 2016-01-26 Research & Business Foundation Sungkyunkwan University Method and apparatus for image encoding/decoding
US9380305B2 (en) * 2013-04-05 2016-06-28 Qualcomm Incorporated Generalized residual prediction in high-level syntax only SHVC and signaling and management thereof
US11470339B2 (en) * 2013-08-27 2022-10-11 Qualcomm Incorporated Residual prediction for intra block copying
US10091511B2 (en) * 2015-01-05 2018-10-02 Getgo, Inc. Efficient video block matching

Also Published As

Publication number Publication date
CN109792515A (zh) 2019-05-21
CN117201807A (zh) 2023-12-08
CN109792515B (zh) 2023-10-24
CN117201808A (zh) 2023-12-08
WO2018026148A1 (ko) 2018-02-08
KR20180014674A (ko) 2018-02-09
KR102435675B1 (ko) 2022-08-24

Similar Documents

Publication Publication Date Title
CN109792515B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN109479129B (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN109565593B (zh) 图像编码/解码方法和设备以及存储比特流的记录介质
CN109804627B (zh) 图像编码/解码方法和设备
CN109417617B (zh) 帧内预测方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination