CN112640453B - 帧内预测的方法和装置 - Google Patents

帧内预测的方法和装置 Download PDF

Info

Publication number
CN112640453B
CN112640453B CN201980057930.1A CN201980057930A CN112640453B CN 112640453 B CN112640453 B CN 112640453B CN 201980057930 A CN201980057930 A CN 201980057930A CN 112640453 B CN112640453 B CN 112640453B
Authority
CN
China
Prior art keywords
mode
intra
block
mpm list
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.)
Active
Application number
CN201980057930.1A
Other languages
English (en)
Other versions
CN112640453A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112640453A publication Critical patent/CN112640453A/zh
Application granted granted Critical
Publication of CN112640453B publication Critical patent/CN112640453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本文提供了一种用于构建最可能模式(Most Probable Mode,MPM)列表的方法。所述方法包括:获取与当前块相邻的相邻块的帧内预测模式;若所述MPM列表中不包括所述相邻块的帧内预测模式,且所述相邻块的帧内预测模式为方向帧内预测模式(例如,角度);根据所述当前块边界上参考样本集合的位置确定所述当前块的预测样本数量(N),N为正数;若所述N大于或等于阈值(例如,第一阈值),则将所述相邻块的帧内预测模式添加到所述MPM列表中。

Description

帧内预测的方法和装置
技术领域
本发明涉及图像和/或视频的编码和解码技术领域,尤其涉及帧内预测的方法和装置。
背景技术
自DVD光盘问世以来,数字视频得到了广泛的应用。在传输之前对视频进行编码,并使用传输介质进行传输。观看者接收视频,使用观看设备解码并显示该视频。多年来,由于诸如更高的分辨率、色深及帧速率,视频质量有所提高。这就形成了更大的数据流,这些数据流如今通常通过互联网和移动通信网络进行传输。
然而,由于高分辨率视频具有更多信息,因此它们通常需要更多带宽。为了降低带宽需求,引入了涉及视频压缩的视频译码标准。对视频进行译码时,带宽需求(或在具有存储器的情况下相应内存需求)会降低。通常情况下,此种降低会导致质量损失。因此,视频译码标准试图在带宽需求与质量之间寻求平衡。
高效视频译码(HEVC)为本领域技术人员公知的视频译码标准的一个示例。在HEVC中,将译码单元(CU)分为预测单元(PU)或变换单元(TU)。通用视频译码(VVC)下一代标准为ITU-T视频译码专家组(VCEG)以及ISO/IEC运动图像专家组(MPEG)标准化组织的最新联合视频项目,其以称为联合视频探索小组(JVET)的合作伙伴关系共同工作。VVC也称为ITU-TH.266/下一代视频译码(NGVC)标准。在VVC中,应删除多个分区类型的概念,即CU、PU和TU概念的分离,但对于相对最大转换长度而言尺寸太大的CU,以及支持更灵活的CU分区形状的CU除外。
这些译码单元(CU)(也称为块)的处理取决于其尺寸、空间位置以及译码器指定的译码模式。根据预测类型,可将译码模式分为两组:帧内预测模式和帧间预测模式。帧内预测模式使用同一图片的样本(也称为帧或图像)生成参考样本,以计算正在重构的块的样本的预测值。帧内预测也称为空间预测。帧间预测模式被设计用于时域预测,其使用前一个或后一个图片中的参考样本预测当前图片的块的样本。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频译码技术潜在的标准化需求,未来视频译码技术的压缩能力明显超过当前HEVC标准(包括其用于屏幕内容译码和高动态范围译码的当前扩展技术和近期扩展技术)的压缩能力。小组们正在以称为联合视频探索小组(JVET)的联合协作小组共同开展此项探索活动,以评估其专家在该领域提出的压缩技术设计。
VTM(通用测试模型)标准使用35个帧内模式,而BMS(基准设置)使用67个帧内模式。
当前在BMS中描述的帧内模式译码方案被认为是复杂的,且非选择模式集合的缺点在于索引列表总是恒定且不基于当前块属性(诸如其相邻块的INTRA模式)自适应。
发明内容
本文公开了用于帧内预测的装置和方法。该装置和方法使用映射过程以简化用于帧内预测的计算过程,从而提高译码效率。
保护范围由独立权利要求限定。且从属权利要求提供一些有利实施例。
根据第一实施例,提供了一种用于构建帧内预测的最可能模式(Most ProbableMode,MPM)列表的方法,所述方法包括:获取与当前块相邻的相邻块的帧内预测模式;若所述MPM列表中不包括所述相邻块的帧内预测模式,则确定所述当前块中由所述帧内预测模式预测的样本数量是否大于或等于第一阈值;若所述数量大于或等于所述第一阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中。
第一阈值可以为预设阈值。可根据标准或根据标准中定义的过程和/或根据当前块尺寸等执行预配置。该阈值可以在比特流中使用信号发送。
进一步于第一实施例,在第二实施例中,所述方法还包括:在将所述相邻块的帧内预测模式添加到所述MPM列表中后,若所述MPM列表中包括的帧内预测模式数量小于第二阈值,则检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若所述MPM列表中不包括所述第一帧内预测模式,则将所述第一帧内预测模式添加到所述MPM列表中;帧内预测模式集合包括平面模式(0)、DC模式(1)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
进一步于第一和/或第二实施例,在第三实施例中,所述数量对应所述当前块的样本的数量N,所述数量N根据所述当前块边界上参考样本集合的位置确定,其中,N为整数。
进一步于第三实施例,在第四实施例中,所述确定所述数量N包括:确定包括在所述当前块邻近的多个样本作为所述参考样本集合;根据所述参考样本集合的位置确定所述数量N。
应注意,包括在邻近的多个样本并不一定属于同一相邻块,因此对帧内预测模式进行评估以将其***MPM中。这是由于一相邻块的一些角度模式可能会使用位于另一个不同相邻块中的参考样本引起的。
进一步于第三和/或第四实施例,在第五实施例中,所述确定所述数量N包括:根据所述当前块与所述相邻块之间的相对位置确定当前块的侧面;确定与所述当前块侧面相邻的多个样本作为所述参考样本集合,如下:若所述相邻块与所述当前预测块的顶侧相邻,则将所述顶侧的可用及未填充的参考样本包括在所述参考样本集合中;若所述相邻块与所述当前预测块的左侧相邻,则将所述左侧的可用及未填充的参考样本包括在所述参考样本集合中。
进一步于第三至第五实施例中任一项,在第六实施例中,所述确定所述数量N包括:若所述相邻块帧内预测模式对应的值和与所述当前块相邻的另一相邻块帧内预测模式对应的值之间的绝对差小于第三阈值,则确定所述另一相邻块中包括的多个样本与所述相邻块中包括的多个样本作为所述参考样本集合;根据所述集合内参考样本的位置确定数量N。
进一步于第一至第六实施例中任一项,在第七实施例中,所述第一阈值是预定义的,且所述第一阈值的值等于2、4、8或16。
进一步于第一至第六实施例中任一项,在第八实施例中,所述第一阈值是根据所述当前块中样本数量确定的。
进一步于第三至第八实施例中任一项,在第九实施例中,所述方法还包括:若N小于所述第一阈值,则在此过程中不将所述相邻块的帧内预测模式添加到MPM列表中。
进一步于第一至第八实施例中任一项,在第十实施例中,所述方法还包括:若N小于所述第一阈值,则将所述相邻块的帧内预测模式添加到MPM列表的最后位置。
进一步于第一至第十实施例中任一项,在第十一实施例中,所述帧内预测模式为方向模式或基于矩阵的帧内预测。
根据第十二实施例,提供了一种用于对图像或视频进行编码的方法,包括:根据前述实施例中任一项所述的用于构建帧内预测的MPM列表的方法;从所述MPM中选择帧内预测模式;使用所选帧内预测模式对所述当前块进行编码;以及参考所述MPM发信号通知所选帧内预测模式。
根据第十三实施例,提供了一种用于对图像或视频进行解码的方法,包括:根据前述实施例中任一项(第一至第十一项)所述的用于构建帧内预测的MPM列表的方法;提取所述MPM的参考,基于所提取的参考及所述MPM列表确定帧内预测模式;使用所确定的帧内预测模式对所述当前块进行解码。
根据第十四实施例,提供了一种用于获取与当前块相邻的相邻块的帧内预测模式的装置,包括:电路,所述电路用于:若所述MPM列表中不包括所述相邻块的帧内预测模式,则确定所述当前块中由所述帧内预测模式预测的样本数量是否大于或等于第一阈值;以及若所述数量大于或等于所述第一阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中。
此外,提供了一种用于获取与当前块相邻的相邻块的帧内预测模式的装置,包括:MPM相关确定单元,用于若所述MPM列表中不包括所述相邻块的帧内预测模式,则确定所述当前块中由所述帧内预测模式预测的样本数量是否大于或等于第一阈值;以及MPM构建单元,用于若所述数量大于或等于所述第一阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中。
根据第十五实施例,提供了一种用于构建最可能模式MPM列表的解码器,所述解码器包括:至少一个处理器;非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述解码器执行根据第一至第十一实施例中任意一项所述的方法。
根据第十六实施例,提供了一种用于构建最可能模式MPM列表的编码器,包括:至少一个处理器;非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述编码器执行根据第一至第十一实施例中任意一项所述的方法。
此外,提供了上述任一装置的具体集成电路。类似地,提供了一种集成电路,该集成电路用于(通过硬件设计、硬件编程、软件编程或其组合)执行上述方法中的任意一项(参见第一至第十一实施例)。
此外,提供了一种计算机程序,该计算机程序包括指令代码,当在一个或两个处理器上执行该指令代码时,使得至少一个处理器执行上述方法中的任意一项(参见第一至第十一实施例)。该程序可以存储于非暂时性介质中。
附图说明
参照附图对下文实施例进行更加详细地描述,其中:
图1为示出用于实现本发明实施例的视频译码***的示例的框图。
图2为示出用于实现本发明实施例的视频译码器的示例的框图。
图3为示出用于实现本发明实施例的视频解码器的示例性结构的框图。
图4示出了表示所提出的67个帧内预测模式的示意图。
图5示出了表示用于MPM推导的相邻块的示意图。
图6示出了一示意图,表示用于在剩余模式列表中推导前三个模式的第二层相邻块的帧内模式。
图7示出了一示意图,表示在剩余模式列表生成过程中的前三个模式的示例。
图8示出了一示意图,表示若将从相邻块推导的帧内预测模式用于帧内预测该块,则不使用该相邻块的参考样本的示例。
图9示出了表示参考样本集合的示例的另一示意图。
图10示出了装置的框图。
图11示出了表示参考样本集合的示例的另一示意图。
图12示出了在获取参考样本过程中使用的当前预测块的相邻块的示例。
图13示出了表示所提出的85个帧内预测模式的示意图。
具体实施方式
缩略语定义及术语表
CTU/CTB-译码树单元/译码树块
CU/CB-译码单位/译码块
PU/PB-预测单位/预测块
TU/TB-变换单元/变换块
HEVC-高效视频译码视频译码方案,诸如H.264/AVC和HEVC,是根据基于块的混合视频译码的成功原理而设计的。使用该原理,首先将图片分区成块,然后用帧内图像预测或帧间图像预测对每个块进行预测。
自H.261起,几种视频译码标准都属于“有损混合视频编解码器”组(即,将样本域中的空间和时域预测与2D变换译码相结合,以便在变换域中使用量化)。视频序列中的每个图片通常被划分为一组不重叠的块,而译码通常在块级别上执行。换言之,在译码器,一般通过使用空间(帧内图像)预测和时域(帧间图像)预测在块(图片块)级别上对视频进行处理(即译码),以生成预测块,从当前块(当前已处理/待处理的块)减去该预测块以获取残差块,对残差块进行变换并在变换域中对该残差块进行量化,以减少要传输(压缩)的数据量,而在解码器,与译码器相比的逆处理部分地应用于译码块或压缩块,以重构当前块用于表示。此外,译码器复制解码器处理循环,使得二者生成相同的预测(诸如帧内和帧间预测)和/或重构用于处理(即译码)后续块。
如本文所用,术语“块”可以是图片或帧的一部分。为便于描述,此处参考由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频译码联合协作团队(JCT-VC)开发的高效视频译码(HEVC)或通用视频译码(VVC)的参考软件来描述本发明实施例。本领域普通技术人员将理解,本发明实施例不限于HEVC或VVC。块可以指CU、PU和TU。在HEVC中,CTU通过使用表示为译码树的四叉树结构划分为多个CU。在CU级别上决定使用帧间图像(时域)还是帧内图像(空间)预测对图片区域进行译码。根据PU划分类型可以将每个CU进一步划分为一个、两个或四个PU。在一个PU内,应用相同的预测过程,并以PU为基础将相关信息传输至解码器。在通过应用基于PU划分类型的预测过程获取残差块之后,可以根据与用于CU的译码树类似的其它四叉树结构将CU分区为变换单元(TU)。在视频压缩技术的最新发展中,四叉树和二叉树(QTBT)分区用于对译码块进行分区。在QTBT块结构中,CU可以为正方形或矩形。例如,译码树单元(CTU)首先按照四叉树结构进行分区。四叉树叶节点进一步按照二叉树结构进行分区。二叉树叶子节点称为译码单元(CU),该分割用于预测和变换处理,而无需任何进一步的分区。这意味着CU、PU和TU在QTBT译码块结构中具有相同的块尺寸。与此同时,还提出将诸如三叉树分区的多重分区与QTBT块结构一起使用。
ITU-TVCEG(Q6/16)和ISO/IEC MPEG(JTC1/SC29/WG11)正在研究未来视频译码技术潜在的标准化需求,未来视频译码技术的压缩能力明显超过当前HEVC标准(包括其用于屏幕内容译码和高动态范围译码的当前扩展技术和近期扩展技术)的压缩能力。小组们正在以称为联合视频探索小组(JVET)的联合协作小组共同开展此项探索活动,以评估其专家在该领域提出的压缩技术设计。
VTM(通用测试模型)使用35个帧内模式,而BMS(基准设置)使用67个帧内模式。要对67个帧内模式进行译码,BMS中当前帧内模式译码方案使用下列方法:
为适应BMS中越来越多的方向帧内模式,因此使用具有6种最可能模式(MPM)的帧内模式译码方法。涉及两个主要技术方面:
1)推导6个MPM,以及
2)6个MPM和其余非MPM模式的熵译码。
在BMS中,MPM列表中包括的模式分为三组:邻近帧内模式、推导帧内模式及默认帧内模式。
五个相邻的帧内预测模式(即相邻块的帧内预测模式)用于形成当前块的MPM列表。5个相邻块的位置与合并模式中使用的位置相同,即,如图5所示,左(L)、上(A)、左下(BL)、右上(AR)和左上(AL)。
例如,左块(L)可以定义为包括当前块(当前CU)在左手侧与左下角样本相邻的块。上块(A)可以定义为包括当前块顶部右上角样本相邻的块。类似地,BL块包括与当前块左下角样本对角(沿左下方向)相邻的样本。AL块包括与当前块左上角样本对角线(沿左上方向)相邻的样本。AR块包括与当前块右上角样本对角地(沿右上方向)相邻的样本。注意,L、A、BL、AL、AR块通常可以具有不同的大小,取决于其相邻的左、左下、上和/或右上块的分区模式。
初始MPM列表可以通过将上述5个相邻帧内模式,然后将平面模式和/或DC模式***MPM列表中形成。剪枝过程过程用于删除重复的模式,以便MPM列表中仅包括唯一的模式。换言之,每个帧内模式在MPM列表中仅列出一次。包括初始模式的顺序为左、上、平面、DC、左下、右上和左上。
若MPM列表不完整(即列表中的候选MPM少于6个),则添加推导模式。通过将-1或+1添加到已经包括在MPM列表中的角度模式中,可以获得这些帧内模式。推导不适用于非角度模式,即DC或平面模式。图4中示出了示例性角度模式。左下方向的对角线模式索引为2,水平模式索引为18,左上对角线模式索引为34,垂直模式索引为50,右上对角线模式索引为66。然后,通过将+1或-1(通常为任意预定义的偏移量)添加到MPM列表中的角度模式的帧内模式索引中,可得出MPM列表的其他候选模式。例如,若索引为34的候选模式已经在MPM中,则MPM中的备用位置可以用模式35和/或33填充。
最后,若MPM列表仍不完整,则按下列顺序添加默认模式:垂直模式、水平模式、帧内模式2和对角线模式。因此,此过程将生成6个MPM模式的唯一列表。
6个MPM的熵译码使用了MPM的截断一元码二值化。前三位二进制符号(bin)使用上下文进行译码,该上下文取决于与当前正在发送信号的二进制符号(bin)相关的MPM模式。根据以下条件,将MPM模式分为三类:(a)该模式是否是水平类(MPM模式小于或等于对角线方向),(b)垂直类(MPM模式大于对角线方向)或(c)非角度(DC和平面)类。因此,使用三个上下文来发信号通知MPM索引。
其余61个非MPM的译码如下:首先将这61种非MPM分为两组:选定模式集合和未选模式集合。选定模式集合包括16种模式,其余(45种模式)分配给未选模式集合。当前模式所属的模式集合在位流中由标志指示。接着,用4位固定长度代码发信号通知来自选定集合的模式,并用截断的二进制代码译码未选集合的模式。通过对共61个非MPM进行索引采样以生成选定模式集合,如下所示:
选定模式集合={0,4,8,12,16,20…60}
未选模式集合={1,2,3,5,6,7,9,10…59}
表1示出了不同帧内模式的信令机制。
Figure GDA0003957650030000061
表1BMS中当前LUMA帧内模式信令
应注意,本公开并不限于MPM列表的任意特定大小。此外,可以将未输入到MPM列表中的其余帧内模式分为其他集合(诸如选定及未选定或更多集合),但不必进一步分离。在另一示例中,使用具有3个最可能模式(MPM)的帧内模式译码方法。在示例中,语法元素intra_luma_mpm_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]和intra_luma_mpm_remainder[x0][y0]指定亮度(luma)样本的帧内预测模式。数组索引x0,y0指定所考虑的预测块左上亮度样本相对于图片左上亮度样本的位置(x0,y0)。当intra_luma_mpm_flag[x0][y0]等于1时,从相邻帧内预测预测单元推断出帧内预测模式。
通过下列有序步骤可以得出当前块的帧内预测(IntraPredModeY[xPb][yPb]):
相邻位置(xNbA,yNbA)和(xNbB,yNbB)分别设置为等于(xPb-1,yPb)和(xPb,yPb-1)。
对于被A或B替换的X,变量candIntraPredModeX的推导如下:
块的可用性推导过程为:将位置(xCurr,yCurr)设置为等于(xPb,yPb),将相邻位置(xNbY,yNbY)设置为(xNbX,yNbX)作为输入调用,并将输出分配给availableX。
候选帧内预测模式candIntraPredModeX的推导如下:
若满足下列至少一个条件,则将candIntraPredModeX设置为等于INTRA_DC。
变量availableX等于FALSE。
CuPredMode[xNbX][yNbX]不等于MODE_INTRA。
X等于B且yPb-1小于((yPb>>CtbLog2SizeY)<<CtbLog2SizeY)。
否则,candIntraPredModeX设置为等于IntraPredModeY[xNbX][yNbX]。
x=0..2的candModeList[x]的推导如下:
若candIntraPredModeB等于candIntraPredModeA,则适用下列条件:
若candIntraPredModeA小于2(即等于INTRA_PLANAR或INTRA_DC),则x=0..2的candModeList[x]可由如下推导出:
candModeList[0]=INTRA_PLANAR
candModeList[1]=INTRA_DC
candModeList[2]=INTRA_ANGULAR50
否则,x=0..2的candModeList[x]的推导如下:
candModeList[0]=candIntraPredModeA
candModeList[1]=2+((candIntraPredModeA+61)%64)
candModeList[2]=2+((candIntraPredModeA-1)%64)
否则(candIntraPredModeB不等于candIntraPredModeA),应用如下件:
candModeList[0]和candModeList[1]的推导如下:
candModeList[0]=candIntraPredModeA
candModeList[1]=candIntraPredModeB
若candModeList[0]和candModeList[1]都不等于INTRA_PLANAR,则将candModeList[2]设为等于INTRA_PLANAR。
否则,若candModeList[0]和candModeList[1]都不等于INTRA_DC,则将candModeList[2]设置为等于INTRA_DC,
否则,将candModeList[2]设置为等于INTRA_ANGULAR50。
IntraPredModeY[xPb][yPb]通过应用下列过程得出:
若intra_luma_mpm_flag[xPb][yPb]等于1,则将IntraPredModeY[xPb][yPb]设置为等于candModeList[intra_luma_mpm_idx[xPb][yPb]]。
否则,通过应用下列有序步骤推导出IntraPredModeY[xPb][yPb]:
数组candModeList[x],通过下列有序步骤对x=0..2进行修改:
当candModeList[0]大于candModeList[1]时,两个值将进行如下交换:
(candModeList[0],candModeList[1])=Swap(candModeList[0],candModeList[1])
当candModeList[0]大于candModeList[2]时,两个值将进行如下交换:
(candModeList[0],candModeList[2])=Swap(candModeList[0],candModeList[2])
当candModeList[1]大于candModeList[2]时,两个值将进行如下交换:
(candModeList[1],candModeList[2])=Swap(candModeList[1],candModeList[2])(811)
IntraPredModeY[xPb][yPb]可通过下列有序步骤推导出:
IntraPredModeY[xPb][yPb]设置为等于intra_luma_mpm_remainder[xPb][yPb].
对于i等于0到2(包括2),当IntraPredModeY[xPb][yPb]大于或等于candModeList[i]时,IntraPredModeY[xPb][yPb]的值增加1。
在本申请的一种实现形式中,帧与图片相同。
在本申请的一种实现形式中,提供了一种用于构建帧内预测的最可能模式(MostProbable Mode,MPM)列表的方法,所述方法包括:获取与当前块相邻的相邻块的帧内预测模式;若所述MPM列表中不包括(或包括)所述相邻块的帧内预测模式,且所述相邻块的帧内预测模式为方向帧内预测模式(诸如角度);根据所述当前块边界上参考样本集合的位置确定所述当前块的预测样本数量N,其中,N为正数;若所述N大于或等于阈值(诸如第一阈值),则将所述相邻块的帧内预测模式添加到所述MPM列表中。
应注意,所述确定预测样本的数量N可以通过估计或从查找表中获取N确定,诸如取决于帧内模式索引并且可能考虑参考像素的可用性。因此,仅当模式能够预测当前块的一定数量的样本(例如,超过第一阈值的样本)时,才将其包括在MPM列表中。
根据本申请的一种实现形式,从MPM列表中相邻块推导出的帧内预测模式的顺序由块的样本的影响确定。例如,在包括具有较低N的推导出的候选帧内预测模式之前,先包括具有较高N的推导出的候选帧内预测模式。
应理解,在本申请的一种实现方式中,获取相邻块的帧内预测模式的步骤是指获取与应用于相邻块的帧内预测模式对应的值。将帧内预测模式添加到MPM列表中的步骤意味着将与帧内预测模式对应的值添加到MPM列表中。
在本申请的一种实现形式中,根据当前块边界上参考样本集合位置,确定当前块预测样本的数量N,包括:确定包括在相邻块中的多个样本作为参考样本集合;根据参考样本集合的位置确定数量N。应注意,在一些示例性实现方式中,集合或参考样本可以取决于下列各项中的至少一个的尺寸:当前块、可用作参考样本的相邻块的数目或样本(即,已处理的,在图片/切片中和/或可用于帧内预测)。
在本申请的一种实现方式中,根据当前块边界上参考样本集合位置,确定当前块预测样本的数量N,包括:根据所述当前块与所述相邻块之间的相对位置确定当前块的侧面;确定与所述当前块侧面相邻的多个样本作为所述参考样本集合,(例如,若所述相邻块与所述当前预测块的顶侧(诸如“A”或“AR”)相邻,则将所述顶侧的可用(即未填充)参考样本包括在所述参考样本集合中;若所述相邻块与所述当前预测块的左侧(诸如“L”或“BL”)相邻,则将所述左侧的可用(即未填充)。“AL”相邻块两侧面的可用参考样本以相似的方式使用);根据所述参考样本集合的位置确定所述数量N。
在本申请的一种实现方式中,根据当前块边界上参考样本集合位置,确定当前块预测样本的数量N,包括:若所述相邻块帧内预测模式对应的值和与所述当前块相邻的另一相邻块帧内预测模式对应的值之间的绝对差小于另一阈值(诸如第二阈值)第三阈值,则确定所述另一相邻块中包括的多个样本与所述相邻块中包括的多个样本作为所述参考样本集合;根据所述集合内参考样本的位置确定数量N。
在本申请的一种实现方式中,所述阈值(上述第一阈值)是预先定义的,且所述阈值的值等于(第一阈值)的值等于2、4、8或16。
在本申请的一种实现方式中,所述阈值(上述第一阈值)根据所述当前块中的样本数量确定(例如,所述阈值等于1/2、1/4、1/8或所述当前块样本总数的任意其他分数部分)。这包括基于块的尺寸确定数量N的实现形式,例如,基于块的侧面(若所述块为正方形)或两侧面(若所述块为矩形但不非正方形)的尺寸。
在本申请的一种实现方式中,所述方法还包括:在将所述相邻块的帧内预测模式添加到所述MPM列表中后,若所述MPM列表中包括的帧内预测模式数量(数目、数量)小于另一阈值(诸如第三阈值),则检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若所述MPM列表中不包括所述第一帧内预测模式,则将所述第一帧内预测模式添加到所述MPM列表中;帧内预测模式集合包括平面模式(0)、DC模式(1)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。这里,当参考图4时,VDIA_IDX可对应索引值66,DIA_IDX可对应索引值34。
在本申请的一种实现方式中,所述方法还包括:若N小于阈值(诸如上述第一阈值),则在此过程中不将所述相邻块的帧内预测模式添加到MPM列表中。
在本申请的一种实现方式中,所述方法还包括:若N小于阈值(诸如第一阈值),则将所述相邻块的帧内预测模式添加到MPM列表的最后位置(例如,在具有3个MPM的情况下,将相邻块的帧内预测模式添加到MPM列表中的第三位置;在具有6个MPM的情况下,将相邻块的帧内预测模式添加到MPM列表中的第五或第六位置)。特别地,最后部分可以指尚未分配另一帧内预测候选模式的MPM位置。
在本申请的一种实现方式中,提供了一种用于构建帧内预测的最可能模式列表的方法,所述方法包括:获取与当前块相邻的相邻块的帧内预测模式;若所述MPM列表中不包括所述相邻块的帧内预测模式,则根据所述相邻块确定所述当前块中由所述帧内预测模式预测的样本数量是否大于或等于阈值;若所述当前块预测样本数量大于或等于所述阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中。这里,所述数量可以是由所述帧内预测模式预测的当前块样本数量(数量)计算、估计或确定的。
在本申请的一种实现方式中,所述方法还包括:在将所述相邻块的帧内预测模式添加到所述MPM列表中后,若所述MPM列表中包括的帧内预测模式数量小于阈值,则检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若所述MPM列表中不包括所述第一帧内预测模式,则将所述第一帧内预测模式添加到所述MPM列表中;帧内预测模式集合包括平面模式(0)、DC模式(1)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,公开了(用于)包括用于执行所述方法的处理电路的译码器。
在本申请的一种实现方式中,公开了(用于)包括用于执行所述方法的处理电路的解码器。所述处理电路可以为至少一个处理器,诸如通用处理器、DSP、诸如FPGA的可编程硬件或诸如ASIC的专用硬件和/或任何其他电路。因此,所述处理电路的配置可以包括硬件设计、硬件编程或软件编程的组合。
在本申请的一种实现方式中,公开了一种包括程序代码的计算机程序产品(诸如存储在非暂时性介质上),用于执行所述方法。
在本申请的一种实现形式中,提供了一种可以用于构建最可能模式MPM列表的解码器,所述解码器包括:至少一个处理器;非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述解码器执行所述方法。
在本申请的一种实现形式中,提供了一种可以用于构建最可能模式MPM列表的译码器,包括:至少一个处理器;非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述译码器执行执行所述方法。
在一示例中,从MPM列表中当前预测块的相邻块推导出的帧内预测模式的顺序由重构相邻块的样本确定。这里,重构是指在译码器或解码器处的重构,以获得用作预测的样本。重构为根据特定处理顺序执行(编码、解码)。
在一示例中,根据下列步骤构建MPM列表。在一示例中,MPM列表在步骤一之前可以为空列表。换言之,MPM列表可以初始化为空列表。
步骤一:确定与当前预测块相邻的相邻块是否可用。
在一示例中,在图5中,块AL(左上)、块A(上)、块AR(右上)、块L(左)或块BL(左下)为与当前预测块相邻的相邻块。图5中当前译码单元可以表示当前预测块,也称为当前块。
在本步骤中,作为示例,所有与当前预测块相邻的相邻块均可用或未确定;或在另一示例中,检查与当前预测块相邻的部分相邻块是否可用,例如,首先确定块L是否可用,然后确定块A是否可用。在另一示例中,仅检查一个相邻块,例如,仅在第一次执行步骤一时确定块L是否可用。
可用性的确定可以包括确定相邻块是否存在,即在特定位置是否存在一与当前块相邻的相邻块。可用性的确定可以包括确定是否用可用作候选帧内模式的帧内模式预测相邻块。
步骤二:对于可用的相邻块,确定MPM列表中是否包括相邻块的帧内预测模式。
在一示例中,对于可用的相邻块,获取相邻块的帧内预测模式。
在一示例中,若此为第一次执行步骤二,则若MPM列表在该步骤之前为空列表,则将相邻块的帧内预测模式添加到MPM列表中。
应理解,在本申请的一种实现方式中,将帧内预测模式添加到MPM列表中的步骤意味着将与帧内预测模式对应的值添加到MPM列表中。
在另一示例中,相邻块的帧内预测模式已包括在MPM列表中(例如,与帧内预测模式对应的值已包括在MPM列表中),则不执行以下步骤(步骤三或步骤四)。若存在下一可用的相邻块,则对下一块重复此步骤。
在另一示例中,若所述MPM列表中不包括所述相邻块的帧内预测模式,则转到步骤三。
在一示例中,步骤二将在所有可用的相邻块已处理或MPM列表中的帧内预测模式的数量等于第三阈值之后完成。
步骤三:确定相邻块的帧内预测模式是否为方向帧内预测模式(诸如角度模式)。
在一示例中,若相邻块的帧内预测模式为方向帧内预测模式,转到步骤四。
在另一示例中,若相邻块的帧内预测模式不是方向帧内预测模式,例如,相邻块的帧内预测模式是DC模式或平面模式,则将相邻块的帧内预测模式添加到MPM列表中。
在一示例中,在将DC模式或平面模式添加到MPM列表中后,若MPM列表中的帧内预测模式的数量小于第三阈值,且存在下一未处理可用相邻块,则转到第二步,确定下一可用相邻块。在另一示例中,若MPM列表中的帧内预测模式的数量小于第三阈值且没有可用相邻块,则转到步骤五。
第三阈值可以是预定义的,且第三阈值是正整数。在一示例中,第三阈值可以是3或6。这里,第三阈值对应MPM列表长度。MPM列表长度可以是固定的,也可以由标准基于其他参数定义,也可以在位流中由信号通知。
若MPM列表中的帧内预测模式的数量等于第三阈值,则构建MPM列表过程结束,MPM列表已满并且可以使用。
在一示例中,将DC模式或平面模式添加到MPM列表的开头,或者将DC模式(值为1)或平面模式(值为0)添加到MPM列表的第一部分。例如,若要解释的MPM列表中的帧内预测模式的数量为3,且在MPM列表中存在两种帧内预测模式,为(20,18)。在特定示例中,在将DC模式添加到MPM列表中后,MPM列表可以为(1,20,18),或者MPM列表可以为(20,1,18)。
步骤四:确定从相邻块的参考样本集合中获取的当前预测块的预测样本数量(N)是否大于或等于第一阈值。
在一示例中,根据当前块边界上参考样本集合的位置确定当前块的预测样本数量N。
用于与当前预测块的预测样本数量N进行比较的第一阈值可以是预定义的,且第一阈值的值等于2、4、8或16。
用于与当前预测块的预测样本数量N进行比较的第一阈值可以根据当前块中的样本数量来确定(例如,所述阈值等于1/2、1/4、1/8或所述当前块样本总数的任意其他分数部分)。
在一示例中,若当前预测块的预测样本数量N小于第一阈值,则将相邻块的帧内预测模式添加到MPM列表的最后部分中(例如,在具有3个MPM的情况下,将相邻块的帧内预测模式添加到MPM列表中的第三位置;在具有6个MPM的情况下,将相邻块的帧内预测模式添加到MPM列表中的第五或第六位置)。在将该帧内预测模式添加到MPM列表中后,若MPM列表中的帧内预测模式数量小于第三阈值且存在下一可用相邻块,则转到步骤二;若MPM列表中的帧内预测模式的数量小于第三阈值且没有可用的相邻块,则转到步骤五。第三阈值可以是预定义的,且第三阈值是正整数。在一示例中,第三阈值可以是3或6。若MPM列表中的帧内预测模式的数量等于第三阈值,则构建MPM列表的过程结束。
在一示例中,若当前预测块的预测样本数量N小于第一阈值,则在此过程中不将相邻块的帧内预测模式添加到MPM列表中。若没有下一可用相邻块,则转到步骤五;若有一可用相邻块,则转到步骤二。
在一示例中,若N大于或等于第一阈值,则将相邻块的帧内预测模式添加到MPM列表中。在一示例中,将相邻块的帧内预测模式添加到MPM列表的开头,或将相邻块的帧内预测模式添加到MPM列表的第一部分。在将该帧内预测模式添加到MPM列表中后,若MPM列表中的帧内预测模式数量小于第三阈值且存在下一可用相邻块,则转到步骤二;若MPM列表中的帧内预测模式的数量小于第三阈值且没有可用的相邻块,则转到步骤五。第三阈值可以是预定义的,且第三阈值是正整数。在一示例中,第三阈值可以是3或6。若MPM列表中的帧内预测模式的数量等于第三阈值,则构建MPM列表的过程结束。
在一示例中,根据当前预测块边界上参考样本集合的位置确定当前预测块的预测样本数量N。在一示例中,可以根据《通用视频译码(草案2)》[JVET-K1001]的《帧内样本预测》执行样本预测描述。
在一示例中,根据下列示例获取当前预测块边界上的参考样本集合的位置。
示例1:将包括在相邻块中的多个样本确定为参考样本集合。
示例2:将参考样本集合定义为属于与选定相邻块相邻一侧的参考样本。
在一示例中,如图9或图11所示,若选定相邻块与预测块的顶侧(诸如“A”或“AR”)相邻,则将顶侧的可用(即,未填充)参考样本包括在参考样本集合中。该块可能属于A、AL和/或AR块和/或与顶侧的当前块相邻的其他块,诸如A与AL之间的块。若所选相邻块与所述当前预测块的左侧(诸如“L”或“BL”)相邻,则将左侧的可用(未填充)参考样本包括在参考样本集合中。“AL”相邻块两侧面的可用参考样本以相似的方式使用。参考样本可以属于L、AL和/或BL块和/或与左侧当前块相邻的其他块,诸如L和AL之间的块。术语“未填充参考样本”指重构的样本,该重构样本可以用作参考样本用于帧内预测。非可用参考样本可以被填充。非可用参考样本可以为不同切片、图片,等等。
实施例3:参考样本集合由参考样本获取程序的获取过程定义。
参考样本获取过程包括执行下列步骤,以推导出用于进行给定帧内预测模式m的相邻样本集合(参见图12):
步骤1:迭代所有相邻块,每个迭代的相邻块Si具有帧内预测模式IPMi,对每个迭代执行下列子步骤:
子步骤1:若IPMi为非方向,跳过其余子步骤并开始下一迭代
子步骤2:若|m-IPMi<T|,将Si的参考样本添加到相邻样本集合中。T(第二阈值)的值可以预先确定为等于2、4、8或16。在另一实施例中,将T的值设置为等于MPM列表的最大尺寸。
作为示例,在图12中标记为{A,B,C,D,E,F}的步骤1迭代的相邻块相应地提供下列帧内预测模式:{2,10,11,57,56,38},参见图4。阈值T被分配为等于4。
候选块C提供模式m=11。根据条件|m-IPMi<T|,对于此候选模式,参考样本集合将包括块B和C的参考样本。
候选块E提供模式m=56。根据条件|m-IPMi<T|,对于此候选模式,参考样本集合将包括块D和E的参考样本。
在一示例中,当前预测块的预测样本数量(N)为相邻块样本对预测块的影响的估计。通过对用于参考样本一侧的参考样本的给定的开始和结束位置使用下列规则可以获取该估计。
例如,若相邻块位于预测块的上侧,则x0和x1分别表示相邻块参考样本的最左和最右位置。在此更进一步地,坐标x、y分别对应参考样本的左上,坐标x、y被指定为x=0,y=0。x增加1表示向右移一个样本位置,y增加1表示向下移一个样本位置。对于方向模式和相邻块的上述位置,N的值的估算如下所述(其中H表示预测块的高度):
-若帧内预测模式(例如,帧内预测模式为从检查的相邻块获取的帧内预测模式)等于VER_IDX(垂直模式索引),则将帧内预测模式设置为等于(x1-x0)<<log2(H)。
-若帧内预测模式大于VER_IDX,
о若x0>H且x1>H,则将N的值设置为等于(x1-x0)<<log2(H)。
о若x0<H且x1>H,则将N的值设置为等于(x1-H)<<log2(H)+(H-x0)<<log2(H-1)。
о否则,将N的值设置为等于(x1-x0)<<(log2(H)-log2(x1)-1)
-否则,若帧内预测模式索引大于HOR_IDX,
о若x0>H且x1>H,则将N的值设置为等于(x1-x0)<<(log2(H)-log2(x1)-1)
о若x0<H且x1>H,则将N的值设置为等于(x1-H)<<log2(H)+(H-x0)<<log2(H-1)。
о否则,将N的值设置为等于(x1-x0)<<log2(H)。
-否则,将N的值设置为零。
在另一示例中,对称地,若相邻块位于预测块的左侧,则x0和x1分别表示相邻块参考样本的最左和最右位置。在此更进一步地,坐标x、y分别对应参考样本的左上,坐标x、y被指定为x=0,y=0。x增加1表示向右移一个样本位置,y增加1表示向下移一个样本位置。对于方向模式和相邻块的上述位置,N的值的估算如下所述(其中W表示预测块的宽度):
-若帧内预测模式等于VER_IDX,则将N的值设置为(y1-y0)<<log2(W)。
-若帧内预测模式大于VER_IDX,
о若y0>W且y1>W,则将N的值设置为(y1-y0)<<log2(W)。
о若y0<W且y1>W,则将N的值设置为(y1-W)<<log2(W)+(W-y0)<<log2(W-1)。
о否则,将N的值设置为(y1-y0)<<(log2(W)-log2(y1)-1)。
-否则,若帧内预测模式索引大于HOR_IDX,
о若x0>W且x1>W,则将N的值设置为(y1-y0)<<(log2(W)-log2(y1)-1),
о若x0<W且x1>W,则将N的值设置为(y1-W)<<log2(W)+(W-y0)<<log2(W-1)。
о否则,将N的值设置为(y1-y0)<<log2(W)。
-否则,将N的值设置为零。
若使用分数阈值,则阈值T的值将由相对于块的尺寸定义。例如,若分数阈值设置为等于1/2,则将T的值设置为(log2(W)+log2(H)))>>1。若分数阈值设置为等于1/4,则将T的值设置为(log2(W)+log2(H)))>>2。若分数阈值设置为等于1/8,则将T的值设置为(log2(W)+log2(H)))>>3。可以使用上述阈值修改在定点操作中执行与阈值的比较。
然而,应注意,以上获取N的方法仅是示例性的。上述计算不必真的执行:对于每个帧内预测模式值(索引)或几个IPM索引范围,查找表可以列出估计数量N。接着,N的确定可以包括基于各个相邻块的IPM,查找每个相邻块A的N值。
此外,在一些实施例中,可以在考虑相邻块的可用性时估计数量N(不考虑其如何确定/估计),该相邻块为用于预测的参考像素提供其各自的IPM。例如,当查看图12时,如果块B不可用,则可以相对于列表或估计的N减少块A的IPM的数量N,因为用于预测当前块的块A的IPM也使用块B的参考样本。减少量可以取决于不可用块中存在的参考像素的数量。
步骤五:检查MPM列表中是否包括帧内预测模式集合中的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,将第一帧内预测模式添加到MPM列表中。
在一示例中,帧内预测模式集合包括平面模式(0)、DC模式(1)、垂直模式(VER_IDX)、水平模式(HOR_IDX),帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。将帧内预测模式有序地添加到MPM列表中,直到MPM列表中的帧内预测模式的数量等于第三阈值为止。
帧内预测模式集合可以包括在其他示例中公开的其他帧内预测模式。
在另一示例中,从MPM列表中相邻块推导出的帧内预测模式的顺序由重构相邻块的样本对预测信号的影响确定。
在一示例性实施例中,如图5所示,MPM列表是从空间相邻块构建的。是否应将模式包括在MPM中以及模式***列表的位置决定受到帧内预测模式以及提供候选帧内预测模式的空间相邻块位置的组合影响。然而,本公开不限于特定相邻块。MPM可以基于任何相邻块构建,诸如位于块AL和L或AL和R之间的块,只要译码器和解码器已知这些块的顺序,即可在构建列表时同时运行。此外,应注意,在这些示例中对顶部和左侧块的参考反映了从左到右及从上到下处理块的顺序。对于本领域技术人员显而易见的是,对图片/切片/图块中的块的不同处理(编码、解码)顺序,所考虑的相邻块以及用于预测的可用参考样本可以改变。
在实施例中,提出估计重构相邻块样本对预测信号的影响,并用该估计结果来确定该相邻块候选模式在MPM列表所属的位置。
在某些情况下(参见图8),若从该块推断出帧内预测模式,则相邻块所属的参考样本可能不会影响预测信号。对于此种MPM候选帧内预测模式,建议
检查相邻块时不考虑这些模式;或者
在构建MPM列表时降低这些帧内预测模式的优先级,即用更长的代码字向其发信号。
在另一示例中,可能会出现块的参考样本按扫描顺序不可用情况。
在该实施例中,类似于MPM列表处理的修改被应用于从提供参考样本的填充值的块中推断出的帧内预测模式。在一些示例性实施例中,填充值不影响N且不计入N的数量。
在图9中,当生成用于预测块的预测信号时,尚未重构“AR”候选。因此,可以跳过来自该空间候选块的帧内预测模式或以较低优先级置于MPM中。
该实施例可与不同的分区树结合应用,包括但不限于四叉树(QT,见图9)、四叉树和二叉树(QTBT,见图11)以及多叉树(MTT,未示出)的分区类型。
在一示例中,提供了一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,该方法包括:
确定与当前块相邻的第一相邻块是否可用,
若第一相邻块不可用,则将与当前块相邻的下一相邻块作为第一相邻块并重复上述步骤;
若第一相邻块可用,确定MPM列表中是否包括相邻块的帧内预测模式;
若第一相邻块的帧内预测模式包括在MPM列表中,则将与当前块相邻的下一相邻块作为第一相邻块并重复上述步骤;
若MPM列表中不包括第一相邻块的帧内预测模式,
则确定第一相邻块的帧内预测模式是否为方向预测模式;
若第一相邻块的帧内预测模式为方向预测模式,
则根据第一相邻块确定当前块的预测样本数量是否大于或等于阈值;
若当前块的预测样本数量大于或等于阈值,则将相邻块的帧内预测模式添加到MPM列表中;
确定MPM列表中包括的帧内预测模式数量是否小于阈值,
若MPM列表中包括的帧内预测模式数量小于阈值,则将与当前块相邻的下一相邻块作为第一相邻块并重复上述步骤。
在本公开的一个方面,公开了一种用于构建最可能模式MPM列表的方法,该方法包括:
确定当前译码块的左块是否可用,若当前译码块的左块可用,则将左块的帧内预测模式添加到MPM列表中;
确定当前译码块的上块是否可用,若当前译码块的上块可用,则将上块的帧内预测模式添加到MPM列表中;
若MPM列表中不包括平面模式,则将平面模式添加到MPM列表中;
若MPM列表中不包括DC模式,则将DC模式添加到MPM列表中。
在本申请的一种实现方式中,若当前译码块的上块可用,且MPM列表中不包括上块的帧内预测模式,则将上块的帧内预测模式添加到MPM列表中。
在本申请的一种实现形式中,若当前译码块的上块可用,且MPM列表中包括上块的帧内预测模式,则执行“加”或“添加”过程不会改变MPM列表。
在本申请的一种实现形式中,若左块的预测模式不是帧内预测模式,则当前译码块的左块不可用。
在本申请的一种实现形式中,若当前译码块位于帧最左侧的译码块,则当前译码块的左块不可用。
在本申请的一种实现形式中,其中,支持并行处理且当前译码块是位于图块的最左侧的译码块,则当前译码块的左块不可用。
在本申请的一种实现形式中,其中,不支持并行处理且当前译码块是位于图块的最左侧但不位于帧的最左侧的译码块,则当前译码块的左块可用。
在本申请的一种实现形式中,其中,支持并行处理且当前译码块是位于帧的最左侧的译码块,则当前译码块的左块不可用。
在本申请的一种实现形式中,其中,不支持并行处理且当前译码块是位于切片的最左侧而非帧的最左侧的译码块,则当前译码块的左块可用。
在本申请的一种实现形式中,若上块的预测模式不是帧内预测模式,则当前译码块的上块不可用。
在本申请的一种实现形式中,若当前译码块位于帧最上侧的译码块,则当前译码块的上块不可用。
在本申请的一种实现形式中,其中,支持并行处理且当前译码块是位于图块的最上侧的译码块,则当前译码块的上块不可用。
在本申请的一种实现形式中,其中不支持并行处理且当前译码块是位于图块的最上侧而非帧的最上侧的译码块,则当前译码块的上块可用。
在本申请的一种实现形式中,其中,支持并行处理且当前译码块是位于帧的最上侧的译码块,则当前译码块的上块不可用。
在本申请的一种实现形式中,其中,不支持并行处理且当前译码块是位于切片的最上侧而非帧的最上侧的译码块,则当前译码块的上块可用。
在本申请的一种实现形式中,若限制线缓冲器的尺寸且当前译码块为位于当前CTU最上侧的译码块,则当前译码块的上块不可用。
在本申请的一种实现形式中,其中,若当前译码块不是位于帧最左侧的译码块,则当前译码块的左块可用。
在本申请的一种实现形式中,其中,若当前译码块不是位于帧最上侧的译码块,则当前译码块的上块可用。
在本申请的一种实现方式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则检查MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现形式中,对应VER_IDX的值为50;对应HOR_IDX的值为18;对应VDIA_IDX的值为66,该值可以为对应角度模式的值中的最大值;对应帧内模式2的值为2,可以是对应角度模式的值中的最小值;对应DIA_IDX的值为34。
在本申请的一种实现方式中,若MPM列表中的帧内预测模式数量小于阈值,则检查MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,该方法还包括:
若MPM列表中帧内预测模式的数量小于阈值,则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内预测模式2(2)垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)的帧内模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。这里的阈值对应MPM列表的预定义长度。
在本申请的一种实现方式中,该方法还包括:
若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(第一帧内预测模式)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,该方法还包括:
若所述MPM列表中的帧内预测模式数量小于阈值,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(第一帧内预测模式)、水平模式(HOR_IDX)、对应偏移为-4的VER_IDX的帧内预测模式,或对应偏移为4的VER_IDX的帧内预测模式。
在本申请的一种实现形式中,对应偏移-4的VER_IDX的帧内预测模式使用对应VER_IDX的值来加偏移-4,并获得对应帧内预测模式的值,例如,VER_IDX的值为50,对应偏移-4的VER_IDX的帧内预测模式为帧内预测模式46,对应偏移4的VER_IDX的帧内预测模式为帧内预测模式54。其他具有偏移的示例具有与此示例类似的过程。
应注意,在执行-1或+1或其他偏移值时,其可能涉及升序和降序操作,例如,帧内模式(2)的值为2(对应角度模式的值中的最小值),则帧内模式(2)-1将为66(升序情况),或当VDIA_IDX的值为66(对应角度模式的值中的最大值)时,则VDIA_IDX+1将为2(降序情况)。
在本申请的一种实现方式中,该方法还包括:
若所述MPM列表中的帧内预测模式数量小于阈值,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(第一帧内预测模式)、水平模式(HOR_IDX)、对应偏移为4的VER_IDX的帧内预测模式,或对应偏移为-4的VER_IDX的帧内预测模式。
在本申请的一种实现方式中,该方法还包括:
若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
检查MPM列表中是否包括帧内预测模式集合中的第一帧内预测模式,则若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中,其中,帧内预测模式集合包括下列帧内预测模式集合中的一个:
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移4的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移-1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移+1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-4的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移1的VER_IDX的帧内预测模式,以及对应偏移-4的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-1的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX)(作为第一帧内预测模式),垂直对角线模式(VDIA_IDX),对应偏移1的VER_IDX的帧内预测模式,以及对应偏移-1的VDIA_IDX的帧内预测模式;或
在本申请的一种实现方式中,该方法还包括:
若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将帧内模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
其中,帧内预测模式集合包括下列帧内预测模式集合中的一个:
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移4的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移-1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-4的VER_IDX的帧内预测模式,以及对应偏移+1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移1的VER_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-4的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移1的VER_IDX的帧内预测模式,以及对应偏移-4的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移-1的VER_IDX的帧内预测模式,以及对应偏移-1的VDIA_IDX的帧内预测模式;或
垂直模式(VER_IDX),垂直对角线模式(VDIA_IDX),对应偏移1的VER_IDX的帧内预测模式,以及对应偏移-1的VDIA_IDX的帧内预测模式;或
在本申请的一种实现方式中,该方法还包括:
若MPM列表中的帧内预测模式的数量小于阈值,则当前译码块的上块不可用,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括说平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)。
在本申请的一种实现方式中,该方法还包括:
若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的左块可用,且当前译码块的上块可用,
则检查MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中;帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,该方法还包括:
若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的上块不可用,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括说平模式(HOR_IDX)(作为第一帧内预测模式)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)。
在本申请的一种实现方式中,该方法还包括:
若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的左块可用,且当前译码块的上块可用,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)(作为第一帧内预测模式)、水平模式(HOR_IDX)、对应偏移为-4的VER_IDX的帧内预测模式,或对应偏移为4的VER_IDX的帧内预测模式。
在本申请的一种实现方式中,方法还包括:
若当前译码块的上块不可用且MPM列表中帧内预测模式的数量小于阈值,
检查MPM列表中是否包括帧内预测模式集合中的第一帧内预测模式,则若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中,其中,帧内预测模式集合包括下列帧内预测模式集合中的一个:
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为-4的HOR_IDX的帧内预测模式,且HOR_IDX偏移加4;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为4的帧内模式2(2),以及对应偏移为-1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为4的帧内模式2(2),以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为1的帧内模式2(2),以及对应偏移为-1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为1的帧内模式2(2),以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为4的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为1的HOR_IDX的帧内预测模式,以及对应偏移为4的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为1的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX)(作为第一帧内预测模式),帧内模式2(2),对应偏移量为1的HOR_IDX的帧内预测模式,以及对应偏移为1的帧内模式2(2)的帧内预测模式。
在本申请的一种实现方式中,其中,该方法还包括:
若当前译码块的上块不可用且MPM列表中帧内预测模式的数量小于阈值,
则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将帧内模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
其中,帧内预测模式集合包括下列帧内预测模式集合中的一个:
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为-4的HOR_IDX的帧内预测模式,且HOR_IDX偏移加4;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为4的帧内模式2(2),以及对应偏移为-1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为4的帧内模式2(2),以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为1的帧内模式2(2),以及对应偏移为-1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为1的帧内模式2(2),以及对应偏移为1的HOR_IDX的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为4的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为1的HOR_IDX的帧内预测模式,以及对应偏移为4的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为-1的HOR_IDX的帧内预测模式,以及对应偏移为1的帧内模式2(2)的帧内预测模式;或
水平模式(HOR_IDX),帧内模式2(2),对应偏移量为1的HOR_IDX的帧内预测模式,以及对应偏移为1的帧内模式2(2)的帧内预测模式。
在本申请的一种实现形式中,该方法还包括:若MPM列表中帧内预测模式的数量小于阈值,则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内预测模式2(2)垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)的帧内模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
在本申请的一种实现方式中,该方法还包括:若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现形式中,应理解,将帧内预测模式添加到MPM列表中的步骤是将与帧内预测模式对应的值添加到MPM列表中。
在本申请的一种实现形式中,阈值为6。
在本申请的一个方面,提供了一种编码器,包括用于执行上述方法的处理电路。
在本申请的一个方面,提供了一种解码器,包括用于执行上述方法的处理电路。
在本申请的一个方面,提供了一种计算机程序产品,包括用于执行上述方法的程序代码。
在本申请的一个方面,提供了一种用于构建最可能模式MPM列表的解码器,包括:至少一个处理器;非暂时性计算机可读存储介质,其与处理器耦合且存储由处理器执行的程序,其中,当程序由处理器执行时,用于使解码器执行上述方法。
在本申请的一个方面,提供了一种用于构建最可能模式MPM列表的编码器,包括:至少一个处理器;非暂时性计算机可读存储介质,其与处理器耦合且存储由处理器执行的程序,其中,当程序由处理器执行时,用于使编码器执行执行上述方法。
在一示例中,
步骤一:确定当前译码块的左块是否可用。
若当前译码块的左块可用,则将左块的帧内预测模式添加到MPM列表中;MPM列表可以是空列表,若当前译码块的左块可用,则将左块的帧内预测模式添加到MPM列表中,则MPM列表包括一种帧内预测模式;若当前译码块的左块不可用,则在步骤一之后,MPM列表仍为空列表。
步骤二:确定当前译码块的上块是否可用。
若当前译码块的上块可用,则将上块的帧内预测模式添加到MPM列表中;MPM列表可以包括左块的帧内预测模式或仍为空列表。
若当前译码块的上块可用,且MPM列表包括左块的帧内预测模式,则进一步确定上块的帧内预测模式是否与左块的帧内预测模式相同。若相同,则步骤“将上块的帧内预测模式添加到MPM列表中”的结果不改变MPM列表中帧内预测模式的数量,MPM列表仅包括一个帧内预测模式;若上块的帧内预测模式与左块的帧内预测模式不同,则将上块的帧内预测模式添加到MPM列表中,则MPM列表包括两种帧内预测模式。
若当前译码块的上块可用,且MPM列表仍然是空列表,则将上块的帧内预测模式添加到MPM列表中,则MPM列表仅包括一种帧内预测模式。
若当前译码块的上块不可用,且MPM列表包括左块的帧内预测模式,则MPM列表将仍然仅包括左块的帧内预测模式。
若当前译码块的上块不可用,且MPM列表仍为空列表,则MPM列表仍将是空列表。
步骤三:若平面模式不在MPM列表中,则将平面模式添加到MPM列表中。
若在步骤二之后,MPM列表不包括平面模式,则将平面模式添加到MPM列表中。
若左块的帧内预测模式和上块的帧内预测模式都不可用,或者可用的帧内预测模式不是平面模式,则MPM列表不包括平面模式。
若MPM列表中包括平面模式,请转到步骤四。
步骤四:若DC模式不在MPM列表中,则将DC模式添加到MPM列表中。
若在第二步或第三步之后,MPM列表不包括DC模式,则将DC模式添加到MPM列表中。
若左块的帧内预测模式和上块的帧内预测模式都不可用,或可用的帧内预测模式不是DC模式,则MPM列表不包括DC模式。
若DC模式在MPM列表中,转到下列步骤或或完成MPM列表的构建。
在本申请的一种实现形式中,在每个步骤中,将预测模式添加到MPM列表中的过程需要确保MPM列表中没有重复的预测模式。因此,若需要向MPM列表中添加帧内预测模式与MPM列表中的一个帧内预测模式相同,则“添加”过程不改变MPM列表,或不执行“添加”过程。
在本申请的一种实施形式中,在步骤四之后,仅当角度模式存在时,才存在角度-1,角度+1。
在一示例中,若所述MPM列表中的帧内预测模式数量为6。在步骤四之后,存在三种有关MPM长度的情况:
情况1:MPM长度为2:L和A均不是角度模式(>DC)或不可用,仅有平面模式和DC模式。使用所有四个默认模式。
情况2:MPM长度为3:L和A中有一个是角度模式,或均为角度模式。使用一种默认模式。
情况3:MPM长度为4:L和A均为角度模式,且二者互不相同。由于要添加L-1,L+1中的至少一个,因此不使用默认模式。若其中之一为(diff(LA)=1)上的副本,则将进一步***A-1和A+1中的至少一个。
在本申请的一种实现方式中,该方法还包括:若当前译码块的左块可用,且左块的帧内预测模式为角度模式,则向左块的预测模式增加偏移以获得新的预测模式,若新的预测模式不在MPM列表中,则将新的预测模式添加到MPM列表中。
在另一示例中,MPM列表包括六个帧内预测模式,因为上述四个步骤在最大情况下仅可获取四个帧内预测模式。该方法还包括:
步骤五:若当前译码块的左块可用,且左块的帧内预测模式为角度模式,则向左块的预测模式增加偏移以获得新的预测模式,若新的预测模式不在MPM列表中,则将新的预测模式添加到MPM列表中。
例如,若当前译码块的左块为角度模式27(对应该角度帧内预测模式的值为27),在上述四个步骤之后的MPM列表为(27,15,0,1)。向左块的预测模式增加偏移以获得新的预测模式,若新的预测模式不在MPM列表中,则将新的预测模式添加到MPM列表中。在一示例中,偏移为-1,因此新的预测模式为26,更新的MPM列表为(27,15,0,1,26)。在另一示例中,偏移为1,因此新的预测模式为28,更新的MPM列表为(27,15,0,1,28)。在另一示例中,步骤五可以将两个偏移添加到左块的帧内预测模式,先添加-1,然后添加1,或先添加1,然后添加-1,因此更新后的MPM列表可能是(27,15,0,1,26,28)或(27,15,0,1,28,26)。
在步骤五之后,检查MPM列表是否已满(若MPM列表中的帧内预测模式的数量等于阈值,诸如阈值是6,则MPM列表已满。若MPM列表中的帧内预测模式数量小于阈值,则MPM列表不满。若MPM列表已满,则构建MPM列表完成;若MPM列表不满,则转向下列步骤。
并且若当前译码块的左块不可用,则不执行步骤五,然后转向下列步骤。
应注意,在将角度偏移(诸如-1或+1)添加到角度预测模式时,其可能会涉及升序及降序操作,例如,若角度预测模式angularLeft为2,则angularLeft-1将为66(升序情况),或若angularLeft为66,则angularLeft+1将为2(降序情况)。
在本申请的一种实现方式中,该方法还包括:若当前译码块的上块可用,且上块的帧内预测模式为角度模式,则向上块的预测模式增加偏移以获得上偏移预测模式,若该上偏移预测模式不在MPM列表中,则将该上偏移预测模式添加到MPM列表中。
在一示例中,该方法还包括:
步骤六:若当前译码块的上块可用,且上块的帧内预测模式为角度模式,则向上块的预测模式增加偏移以获得上偏移预测模式,若该上偏移预测模式不在MPM列表中,则将该上偏移预测模式添加到MPM列表中。
例如,若当前译码块的上块为角度模式26(对应该角度帧内预测模式的值为26),在上述五个步骤之后的MPM列表为(27,26,0,28)。向左块的预测模式增加偏移以获得上偏移预测模式,若该上偏移预测模式不在MPM列表中,则将该上偏移预测模式添加到MPM列表中。在一示例中,偏移为-1,因此上偏移预测模式为25,更新的MPM列表为(27,26,0,1,28,25)。在另一示例中,偏移量为1,由于已***模式27,因此上偏移预测模式为27,并且上偏移模式27的***被阻止。在另一示例中,若MPM列表在添加一个偏移之后仍未满,则步骤六可以将两个偏移添加到上块的帧内预测模式,先添加-1,然后添加1,或先添加1,然后添加-1。
此外,若当前译码块的上块不可用,则不执行步骤六,然后转向下列步骤。在步骤六之后,检查MPM列表是否已满(若MPM列表中的帧内预测模式的数量等于6)。若MPM列表已满,则构建MPM列表完成;若MPM列表不满(若MPM列表中的帧内预测模式的数量少于6),则转向下列步骤。
在本申请的一种实现方式中,当当前译码块的左块不可用时,当前译码块的上块可以是可用的,也可以是不可用的。
在本申请的一种实现形式中,当当前译码块的上块不可用时,当前译码块的左块可以是可用的,也可以是不可用的。
在本申请的一种实现形式中,该方法还包括:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则检查MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,该方法还包括:若MPM列表中帧内预测模式的数量小于阈值,则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内预测模式2(2)垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)的帧内模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
在一示例中,在步骤六之后,若MPM列表仍不满(MPM列表中的帧内预测模式的数量小于阈值),则将默认模式列表中的帧内预测模式有序地添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:该方法还包括:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
例如,若垂直模式不在MPM列表中,且MPM列表满,则将垂直模式添加到MPM列表中;若在添加垂直模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加垂直模式后MPM列表仍未满,则检查MPM列表中是否存在水平模式。若水平模式在MPM列表中,则进一步检查帧内模式2是否在MPM列表中;若水平模式不在MPM列表中,则将水平模式添加到MPM列表中。重复该步骤,直至MPM列表已满。
在本申请的一种实现形式中,在步骤七中,使用默认模式列表,每次将默认模式***MPM列表应确保没有***重复模式。若***成功,则执行另一项检查以检测MPM是否已满。若如此,则MPM构建过程终止;否则,以指定顺序继续将其他默认模式***。
在本申请的一种实现形式中,该方法还包括:若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括垂直模式(VER_IDX)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)。
在本申请的一种实现方式中,该方法还包括:若当前译码块的左块不可用且MPM列表中帧内预测模式的数量小于阈值,
则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括垂直模式(VER_IDX)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)的帧内预测模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
在一示例中,在步骤六之后,若MPM列表仍不满,且当前译码块的左块不可用,则将默认模式列表中的帧内预测模式有序地添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加垂直模式(VER_IDX)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)。
例如,若垂直模式不在MPM列表中,且MPM列表满,则将垂直模式添加到MPM列表中;若在添加垂直模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加垂直模式后MPM列表仍未满,则检查MPM列表中是否存在垂直对角线模式。若垂直对角线模式在MPM列表中,则进一步检查对角线模式是否在MPM列表中;若对角线模式不在MPM列表中,则将对角线模式添加到MPM列表中。重复该步骤,直至MPM列表已满。
在本申请的一种实现方式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的上块不可用,
检查MPM列表中是否包括一组帧内预测模式的第一帧内预测模式,若第一帧内预测模式不包括在MPM列表中,则将第一帧内预测模式添加到MPM列表中;其中,帧内预测模式集合包括说平模式(HOR_IDX)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)。
在本申请的一种实现方式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的上块不可用,
则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括水平模式(HOR_IDX)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)的帧内预测模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
在一示例中,在步骤六之后,若MPM列表仍不满,且当前译码块的上块不可用,则将默认模式列表中的帧内预测模式有序地添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加水平模式(HOR_IDX)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)。
例如,若水平模式不在MPM列表中,且MPM列表满,则将水平模式添加到MPM列表中;若在添加水平模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加水平模式后MPM列表仍未满,则检查MPM列表中是否存在帧内模式2。若帧内模式2在MPM列表中,则进一步检查对角线模式是否在MPM列表中;若对角线模式不在MPM列表中,则将对角线模式添加到MPM列表中。重复该步骤,直至MPM列表已满。
在本申请的一种实现形式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则当前译码块的左块可用,且当前译码块的上块可用,
则检查MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若MPM列表中不包括第一帧内预测模式,则将第一帧内预测模式添加到MPM列表中;帧内预测模式集合包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的一种实现方式中,该方法还包括:若MPM列表中的帧内预测模式数量小于阈值,则当MPM列表不包括帧内预测模式时,根据前述顺序迭代地将包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)的帧内预测模式集合添加进MPM列表中,直至预测模式的数量等于该阈值。
在一示例中,在步骤六之后,若MPM列表仍不满,当前译码快的左块可以但当前译码块的上块不可用,则将默认模式列表中的帧内预测模式添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:该方法还包括:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
例如,若垂直模式不在MPM列表中,且MPM列表满,则将垂直模式添加到MPM列表中;若在添加垂直模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加垂直模式后MPM列表仍未满,则检查MPM列表中是否存在水平模式。若水平模式在MPM列表中,则进一步检查帧内模式2是否在MPM列表中;若帧内模式2模式不在MPM列表中,则将帧内模式2添加到MPM列表中。重复该步骤,直至MPM列表已满。
在本申请的一种实现形式中,该方法还包括:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、偏移为-4的VER_IDX或偏移为4的VER_IDX。
在本申请的一种实现形式中,该方法还包括:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、偏移为4的VER_IDX或偏移为-4的VER_IDX。
在一示例中,在步骤六之后,若MPM列表仍不满,则将默认模式列表中的帧内预测模式添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、偏移-4的VER_IDX或偏移4的VER_IDX;或添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、偏移4的VER_IDX或偏移-4的VER_IDX。
例如,若垂直模式不在MPM列表中,且MPM列表满,则将垂直模式添加到MPM列表中;若在添加垂直模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加垂直模式后MPM列表仍未满,则检查MPM列表中是否存在水平模式。若水平模式在MPM列表中,则进一步检查MPM列表中是否有等于VER_IDX的值加上偏移量-4的预测模式;若MPM列表中未包括等于VER_IDX的值的预测模式加上偏移量-4,则将MPM列表中未包括等于VER_IDX的值的预测模式添加偏移量-4。重复该步骤,直至MPM列表已满。
在一示例中,在步骤六之后,若MPM列表仍不满,且当前译码块的左块不可用,则将默认模式列表中的帧内预测模式添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加垂直模式(VER_IDX)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)或帧内模式2(2)。
例如,若垂直模式不在MPM列表中,且MPM列表满,则将垂直模式添加到MPM列表中;若在添加垂直模式后MPM列表已满,则构建MPM列表完成。
此外,若添加垂直模式后MPM列表仍然不完整,请检查MPM列表中是否有垂直对角线模式。若垂直对角线模式在MPM列表中,则进一步检查对角线模式是否在MPM列表中;若对角线模式不在MPM列表中,则将对角线模式添加到MPM列表中。重复该步骤,直至MPM列表已满。
在一示例中,在步骤六之后,若MPM列表仍不满,且当前译码块的上块不可用,则将默认模式列表中的帧内预测模式添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加水平模式(HOR_IDX)、帧内模式2(2)、对角线模式(DIA_IDX)或垂直对角线模式(VDIA_IDX)。
例如,若水平模式不在MPM列表中,且MPM列表满,则将水平模式添加到MPM列表中;若在添加水平模式后MPM列表已满,则构建MPM列表完成。
此外,若在添加水平模式后MPM列表仍未满,则检查MPM列表中是否存在帧内模式2。若帧内模式2在MPM列表中,则进一步检查对角线模式是否在MPM列表中;若对角线模式不在MPM列表中,则将对角线模式添加到MPM列表中。重复该步骤,直至MPM列表已满。
在一示例中,在步骤六之后,若MPM列表仍不满,当前译码快的左块可以但当前译码块的上块不可用,则将默认模式列表中的帧内预测模式添加到MPM列表中,若该模式或这些模式不在MPM列表中,则重复此步骤直至MPM列表已满。
步骤七:向MPM列表中添加垂直模式(VER_IDX)、水平模式(HOR_IDX)、偏移为-4的VER_IDX或偏移为4的VER_IDX。
在本公开的一个方面,提出了一种构建6个MPM列表的简化方法,该方法包括:检查当前译码单元的左块的可用性。左块的位置如图5所示,其中,左块用“L”标记。
若不能从左块推导出任何帧内预测信息(即帧内预测模式),则左块不可用。包括以下情况:
左区块不是帧内预测块;左块不存在,例如,当前块是位于帧最左侧的译码块;若译码器或解码器支持并行处理,则若左侧块位于当前块的不同图块中或与当前块位于不同的图块中,即当前译码块在或位于图块最左侧,则该左块可被认为是不存在的(或不可用)。
在另一示例中,若译码器或解码器中不支持并行处理,则若左块位于当前块的不同图块中,即当前译码块位于图块的最左侧,则该左块可被认为是可用的。
若译码器或解码器中支持并行处理,则若左块与当前块位于不同切片中,即当前译码块位于切片的最左侧,则该左块可被认为是不存在的。
在另一个示例中,若译码器或解码器不支持并行处理,则若左块与当前块位于不同的切片中,即当前译码块位于切片的最左侧,则该左块可被认为是可用的。
否则(即左块可用),将左块的帧内预测模式包括在6个MPM列表中。
检查当前译码单元的上块的可用性。上块的位置如图5所示,其中,上块用“A”标记。
若不能从上块推导出帧内预测信息(即帧内预测模式),则块不可用。包括以下情况:
上块不是帧内预测块。
上块不存在。例如,当前块是位于帧的最上侧的译码块。
若编码器或解码器支持并行处理,则若上块与当前块位于不同图块中,即当前译码块位于图块的最上侧,则该上块可被认为是不存在的。
在另一示例中,若编码器或解码器中不支持并行处理,则若上块与当前块位于不同图块中,即当前译码块位于图块的最顶部,则该上块可以被认为是可用的。
若译码器或解码器支持并行处理,则若上块与当前块位于不同切片中,即当前译码块位于切片的最顶部,则该上块可被认为是不存在的。
在另一示例中,若编码器或解码器中不支持并行处理,则若上块与当前块位于不同切片中,即当前译码块位于切片的最顶部,则该上块可被视为可用的。
若需要限制编码器或解码器中线缓冲器的尺寸,则若上块与当前块位于不同的CTU中,即当前译码块位于上块的最顶侧,则该上块可被认为是不存在的。
在一示例中,若解码器侧或编码器侧支持线缓冲器的限制,则位于与当前块CTU不同CTU上的上块被认为是不存在的。若不支持线缓冲器的限制,则认为其存在。
否则(即左块可用),在6个MPM列表中包括上块的帧内预测模式。
检查是否在MPM列表中***平面(PLANAR_IDX=0)模式(即检查左块和上块的帧内预测模式是否为平面模式),仅当未在MPM列表中***平面模式时,才将平面模式***MPM列表。检查是否在MPM列表中***DC(DC_IDX=1)模式(即检查左块和上块的帧内预测模式是否为DC模式),仅当未在MPM列表中***DC模式时,才将DC模式***MPM列表。
若左侧块可用,且其帧内预测模式为角度模式,即(模式>DC_IDX,并将模式表示angularLeft),则通过执行angularLeft-1、angularLeft+1获得其最接近的两个角度模式。
应注意,在执行-1或+1时,可能会涉及升序和降序操作,例如,若angularLeft为2,则angularLeft-1将为66(升序情况),若angularLeft为66,则angularLeft+1将为2(降序情况)。
若angularLeft-1的预测模式尚未***MPM列表中,则将其***MPM列表中。
若angularLeft+1的预测模式尚未***MPM列表中,则将其***MPM列表中。
若MPM列表未满且上块可用,且若其帧内预测模式为角度模式,即(模式>DC_IDX,并将模式表示为angularAbove),则通过执行angularAbove-1,angularAbove+1获得其最接近的两个角度模式。
应注意,在执行-1或+1时,可能会涉及升序和降序操作,例如,
例如,若angularLeft为2,则angularLeft-1为66(升序情况),或若angularLeft为66,则angularLeft+1将为2(降序情况)。
若angularAbove-1的预测模式尚未***MPM列表中,则将其***MPM列表中。
若MPM列表未满(例如,MPM列表中预测模式数量小于6),且若angularAbove+1的预测模式尚未***MPM列表,则将其***MPM列表。
若MPM列表未满,则在MPM列表中***下列模式,直到其满为止(例如,MPM列表中预测模式数量等于6):
垂直模式(VER_IDX),
水平模式(HOR_IDX),
帧内模式2(2),
垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在本申请的另一实现方式中,公开了一种解码器,该解码器包括用于执行上述解码方法的处理电路。
在本申请的另一方面,公开了一种计算机程序产品,其包括用于执行上述解码方法的程序代码。
在本申请的另一方面,公开了一种用于视频数据解码的解码器,该解码器包括:至少一个处理器;非暂时性计算机可读存储介质,其与处理器耦合且存储由处理器执行的程序,其中,当程序由处理器执行时,用于使解码器执行上述解码方法。
本公开旨在改进帧内模式信令方案。在本公开中,提出了一种视频解码方法和视频解码器。
图7示出了具有67个帧内预测模式的示例,例如,对于VVC所提出的,67个帧内预测模式的多个帧内预测模式包括:平面模式(索引0),DC模式(索引1)以及索引为2到66的角度模式,其中,图7中左下角的模式指的是索引2,且索引的编号不断增加直至索引66,图7中最右上角的模式为索引66。
图13示出了具有85个帧内预测模式的示例,其中,虚线方向与应用于非正方形块的广角模式相关联。通常,本公开不限于IPM的任何特定数量或布置。图4、7和13仅代表一些示例。
处理电路可通过硬件,或硬件和软件的组合,或诸如通过软件可编程处理器等来实现。
下面结合相应附图进行描述,附图作为本公开的一部分,描述性地示出了可以实现本发明的具体方面。
例如,应理解,结合所描述的方法的公开内容也适用于用于执行该方法的相应设备或***,反之亦然。例如,若描述了特定方法步骤,则相应设备可以包括执行所描述的方法步骤的单元,尽管在图中没有明确地描述或示出这样的单元。此外,应理解,除非另有特别说明,否则本文描述的各种示例性方面的特征可彼此组合。视频译码通常指的是处理形成视频或视频序列的图片序列。术语图片、图像或帧可在视频译码领域及本申请中同义使用。通常将每个图片划分为一组不重叠的块。图片的编码/解码通常在块级执行,其中,诸如使用帧间预测或帧内预测生成预测块,以从当前块(当前已处理/待处理的块)中减去预测块获得残差块,该残差块被进一步变换和量化以减少要传输的数据量(压缩),而在解码器侧,对译码/压缩块进行逆处理以重构该块以进行表示。
图1为示出示例***10的概念性或示意性框图,诸如可以使用本申请(本公开)技术的视频译码***10。视频译码***10的译码器20(诸如视频译码器20)和解码器30(诸如视频解码器30)代表设备,该设备可用于执行根据本申请中所描述的各种示例的技术。如图1所示,译码***10包括源设备12,源设备12用于提供译码数据13,诸如译码图片13,诸如向目的设备14提供译码数据13以用于对译码数据13进行解码。
源设备12包括译码器20,且还可以(即可选地)包括图片源16、预处理单元18(诸如图片预处理单元18)以及通信接口或通信单元22。
图片源16可以包括或可以为任何种类的图片捕获设备,诸如用于捕获真实世界图片和/或任何种类的图片或注释(对于屏幕内容译码,屏幕上的某些文本也被认为是图像或要译码的图像的一部分)生成设备,诸如用于生成计算机动画图片的计算机图形处理器,或用于获取和/或提供真实世界图片的任何种类的设备、计算机动画图片(诸如屏幕内容、虚拟现实(VR)图片和/或其任何组合(诸如现实增强(AR)图片)。
(数字)图片是或可以被当作具有强度值样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简称)或像素点。阵列或图片的水平和垂直方向(或轴)上的样本数量定义了图片的大小和/或分辨率。为表示颜色,通常采用三个颜色分量,即可以表示图片或包括三个样本阵列。在RBG格式或色彩空间中,图片包括相应的红色、绿色和蓝色样本阵列。但在视频译码中,每个像素通常以亮度/色度格式或色彩空间表示,例如YCbCr,其包括由Y表示的亮度分量(有时也使用L代替)以及由Cb和Cr表示的两个色度分量。亮度(或短亮度)分量Y表示亮度或灰度强度(诸如像在灰度图像中一样),而两个色度(或短色度)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图片包括亮度样本值(Y)的亮度样本阵列和色度值(Cb和Cr)的两个色度样本阵列。可以将RGB格式的图片转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。若如图片是单色的,则图片可仅包括亮度样本阵列。
图片源16(诸如视频源16)可以为诸如用于捕获图片的相机、诸如图片存储器的存储器,包括或存储先前捕获或生成的图片,和/或任何类型的接口(内部或外部)以获取或接收图片。相机可以是诸如集成在源设备中的本地相机或集成相机,存储器可以是诸如集成在源设备中的本地存储器或集成存储器。接口可以为诸如用于从外部视频源接收图像的外部接口,诸如像照相机的外部图像捕获设备、外部存储器或外部图像生成设备,诸如外部计算机图形处理器,计算机或服务器。根据任何专有或标准化的接口协议,该接口可以是任何类型的接口,诸如有线或无线接口、光学接口。用于获取图片数据17的接口可以是与通信接口22相同的接口或者是接口的一部分。
与预处理单元18和由预处理单元18执行的处理不同,图片或图片数据17(诸如视频数据16)也可以被称为原始图片或原始图片数据17。预处理单元18用于接收(原始)图片数据17并对图片数据17执行预处理以获取预处理图片19或预处理图片数据19。由预处理单元18执行的预处理可以诸如包括修整、颜色格式转换(诸如从RGB到YCbCr)、颜色校正或去噪。应理解,预处理单元18可以是可选组件。
译码器20(诸如视频译码器20)用于接收预处理的图片数据19,并提供译码的图片数据21(下面将基于诸如图2描述更多细节)。
源设备12的通信接口22可以用于接收译码图片数据21,并将其传输到另一设备,诸如目的设备14或任何其他设备,用于存储或直接重构,或分别在存储译码数据13和/或将译码数据13传输到另一诸如目的设备14或用于解码或存储的任何其他的设备之前处理译码图片数据21。
目的设备14包括解码器30(诸如视频解码器30),并且可以附加地(即可选地)包括通信接口或通信单元28、后处理单元32和显示设备34。
目的设备14的通信接口28用于诸如直接从源设备12或从任何其他源(诸如存储设备,诸如译码图片数据存储设备)接收译码图片数据21或译码数据13。
通信接口22和通信接口28可以用于经由源设备12与目的设备14之间的直接通信链路,发送或接收译码图片数据21或译码数据13,诸如直接有线或无线连接,或通过任何类型的网络,诸如有线或无线网络或其任何组合,或任何类型的专用和公共网络或其任何组合。
通信接口22可以诸如用于将译码的图片数据21打包为适当的格式,诸如分组,以通过通信链路或通信网络进行传输。
通信接口28,形成通信接口22的对应接口,可以诸如用于对译码数据13进行解封装以获取译码图片数据21。
通信接口22和通信接口28都可以用作如图1中从源设备12到目的设备14指向的译码图片数据13的箭头所指示的单向通信接口或双向通信接口,并且可以用于诸如发送和接收消息,诸如以建立连接、确认和交换与通信链路和/或数据传输(诸如译码图像数据传输)有关的任何其他信息。
解码器30用于接收译码图片数据21,并提供解码图片数据31或解码图片31(下面将基于诸如图3描述更多细节)。
目的设备14的后处理器32用于对解码图像数据31(也称为重构图像数据)(诸如解码图像31)进行后处理,以获取后处理图像数据33,诸如后处理图像33。由后处理单元32执行的后处理可以包括诸如颜色格式转换(诸如从YCbCr到RGB)、颜色校正、修整或重新采样或任何其他处理,诸如用于准备解码图像数据31并通过诸如显示设备34显示。
目的设备14的显示设备34用于接收用于诸如向用户或观看者显示图片的后处理图片数据33。显示设备34可以是或包括用于表示重构图片的任何种类的显示器,诸如集成或外部显示器或监视器。显示器可以诸如包括液晶显示器(LCD)、有机发光二极管(OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(LCoS)、数字光处理器(DLP)或任何其他种类的显示器。
尽管图1将源设备12和目的设备14描绘为单独的设备,但是设备的实施例还可以包括源设备12和目的设备14二者或其二者的功能、源设备12或其相应的功能以及目的设备14或其相应的功能。在该实施例中,可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任何组合来实现源设备12或其相应功能以及目的设备14或其相应的功能。
基于本说明书对于技术人员将显而易见的是,如图1所示,源设备12和/或目的设备14内的不同单元或功能的存在和(精确)划分可以根据实际设备和应用进行。
每个译码器20(诸如视频译码器20)和解码器30(诸如视频解码器30)可以实现为多种合适的电路中的任意一种,诸如一个或多个微处理器、数字信号处理器(DSP)、应用程序、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、硬件或其任意组合。若这些部分技术以软件来实现,则设备可以将该软件的指令存储在合适的非暂时性计算机可读存储介质中,可以使用一个或多个处理器以硬件的形式执行指令以实现本公开的技术。前述(包括硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。每个视频译码器20和视频解码器30可以被包括在一个或多个译码器或解码器中,译码器或解码器二者中的任一个可以被集成为相应设备中的组合译码器/解码器(CODEC)的一部分。
图2示出了用于实现本申请的技术的示例性视频译码器20的示意性/概念框图。在图2的示例中,视频译码器20包括残差计算单元204、变换处理单元206、量化单元208、逆量化单元210和逆变换处理单元212、重构单元214、缓冲器216、环路滤波器单元220、解码图片缓冲器(DPB)230、预测处理单元260以及熵译码单元270。预测处理单元260可以包括帧间预测部244、帧内预测单元254和模式选择部262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。根据混合视频编解码器,图2中的视频译码器20还可以称为混合视频译码器或视频译码器。
例如,残差计算单元204、变换处理单元206、量化单元208、预测处理单元260以及熵译码单元270形成译码器20的前向信号路径,而诸如逆量化单元210、逆变换处理单元212、重构单元214、缓冲器216、环路滤波器220、解码图片缓冲器(DPB)230以及预测处理单元260形成译码器的后向信号路径,其中,后向信号路径译码器的“信号路径”对应解码器的信号路径(参见图3中的解码器30)。
译码器20用于诸如通过输入202接收图片201或图片201的块203,诸如形成视频或视频序列的图片序列的图片。图片块203也可以称为当前图片块或要译码的图片块,图片201也可以称为当前图片或要译码的图片(特别是在视频译码中,以区分当前图片与其他图片,诸如先前译码图片和/或相同视频序列的解码图片,即也包括当前图片的视频序列)。
预测处理单元260,也称为块预测处理单元260,用于接收或获取块203(当前图片201的当前块203)以及重构图片数据,诸如来自缓冲器216的相同(当前)图片的参考样本和/或来自解码图像缓冲器230的一个或多个先前解码图像的参考图像数据231,并处理该数据以进行预测,即提供预测块265,该预测块265可以是帧间预测块245或帧内预测块255。
模式选择单元262可以用于选择预测模式(诸如帧内或帧间预测模式)和/或对应的预测块245或255,以在残差块205的计算以及重构块215的重构中用作预测块265。模式选择单元262的实施例可以用于选择预测模式(诸如从预测处理单元260所支持的模式),该预测模式提供最佳匹配,或者换言之,提供最小残差(最小残差意味着用于传输或存储的更好的压缩),或最小的信令开销(最小的信令开销意味着更好的传输或存储压缩),或者同时考虑或平衡两者。模式选择单元262可以用于基于速率失真优化(RDO)来确定预测模式,即选择提供最小速率失真优化,或其相关的速率失真至少满足预测模式选择标准的预测模式。
帧内预测单元254还用于基于帧内预测参数(诸如选定的帧内预测模式)来确定帧内预测块255。在任何情况下,在为块选择帧内预测模式之后,帧内预测单元254还用于向熵译码单元270提供帧内预测参数,即指示用于该块选定的帧内预测模式的信息。在一示例中,帧内预测单元254可以用于执行后文描述的帧内预测技术的任意组合。
图3为用于实现本申请中的技术的示例性视频解码器30。视频解码器30用于接收诸如由译码器100译码的译码图片数据(诸如译码位流)21,以获得解码图片131。在解码过程中,视频解码器30从视频译码器100接收视频数据,诸如表示译码视频切片的图片块以及相关语法元素的译码视频比特流。
在图3的示例中,解码器30包括熵解码单元304、逆量化单元310、逆变换处理单元312、重构单元314(诸如求和器314)、缓冲器316、环路滤波器320、解码图片缓冲器330以及预测处理单元360。预测处理单元360可以包括帧间预测单元344、帧内预测单元354以及模式选择单元362。在一些示例中,视频解码器30可执行通常与图2的视频编码器100所描述的编码遍历相反的解码遍历。
熵解码单元304用于对译码图片数据21执行熵解码,以获取诸如量化系数309和/或解码的译码参数(图3中未示出)、诸如(解码的)帧间预测中的任意或全部参数;帧内预测参数、环路滤波器参数和/或其他语法元素。熵解码单元304还用于将帧间预测参数、帧内预测参数和/或其他语法元素转发给预测处理单元360。视频解码器30可接收在视频切片层级和/或视频块层级处的语法元素。
逆量化单元310的功能可以与逆量化单元110的功能相同,逆变换处理单元312的功能可以与逆变换处理单元112的功能相同,重构单元314的功能可以与功能重构单元114的功能相同,缓冲器316的功能可以与缓冲器116相同,环路滤波器320的功能可以与环路滤波器120相同,解码图片缓冲器330的功能可以与解码图片缓冲器130的功能相同。
预测处理单元360可以包括帧间预测单元344和帧内预测单元354,其中,帧间预测单元344可以在功能上类似于帧间预测单元144,帧内预测单元354可以在功能上类似于帧内预测单元354。预测处理单元360通常用于执行块预测和/或从译码数据21获得预测块365,诸如从熵解码单元304接收或(显式或隐式)获取与预测有关的参数和/或关于选定预测模式的信息。
当视频切片被译码为帧内译码(I)切片时,预测处理单元360的帧内预测器354可基于发信号通知的帧内预测模式以及来自当前帧或图像的先前经解码块的数据,产生当前视频切片的图像块的预测块。当视频帧被译码为帧间译码(即B或P)切片时,预测处理单元360的帧间预测单元344(诸如运动补偿单元)用于产生用于当前视频的视频块的预测块365基于从熵解码单元304接收的运动矢量和其他语法元素的片段。对于帧间预测,可从参考图像列表之一的参考图片之一中产生预测块。视频解码器30可基于存储在DPB330中的参考图片使用默认构建技术来构建参考帧列表List 0和List 1。
预测处理单元360用于通过解析运动矢量和其他语法元素来确定当前视频切片的视频块的预测信息,并且使用该预测信息为解码的当前视频块生成预测块。例如,预测处理单元360使用一些接收到的语法元素来确定用于对视频切片的视频块进行译码的预测模式(诸如帧内或帧间预测)、帧间预测切片类型(诸如B切片、P切片或GPB切片)、切片至少一个参考图片列表的构建信息、切片每个帧间译码视频块的运动矢量、切片每个帧间译码视频块的帧间预测状态以及其他信息,以解码当前视频切片中的视频块。
逆量化单元310用于将在比特流中提供的、由熵解码单元304解码的量化的变换系数进行逆量化,即反量化。逆量化过程可包括使用由视频译码器100为视频切片中的每个视频块计算的量化参数来确定量化度,同样地,确定应该应用的逆量化度。
逆变换处理单元用于将逆变换应用于变换系数,诸如逆DCT、逆整数变换或概念上类似的逆变换过程,以产生像素域中的残差块。
重构单元314(诸如求和器314)用于诸如通过添加重构残差块313的样本值以及预测块365的样本值,将逆变换块313(即重构残差块313)添加到预测块365以获取同域中的重构块315。
环路滤波器单元320(在译码环路中或在译码环路后)用于对重构块315进行过滤以获取过滤块321,诸如以缓和像素过渡,或者以其他方式提高视频质量。在一示例中,环路滤波器单元320可以用于执行后文描述的过滤技术的任意组合。环路滤波器单元320旨在表示一个或多个环路滤波器,诸如去块滤波器、样本自适应偏移(SAO)滤波器或其他滤波器,诸如双边滤波器或自适应环路滤波器(ALF)或锐化或缓和过滤器或协作过滤器。尽管在图9中将滤波器单元320示出为环路内滤波器,但在其它实现方式中,可将滤波器单元320实现为环路后滤波器。
接着,在给定帧或图片的解码视频块321存储在解码图片缓冲区330中,该缓冲区存储用于后续活动补偿的参考图片。
解码器30用于诸如经由输出332输出解码图片331,以向用户呈现或观看。
视频解码器30的其他变型可以用于解码压缩的比特流。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,基于非变换解码器30可以直接对某些块或帧的残留信号进行逆量化,而无需逆变换处理单元312。在另一实施方式中,视频解码器30可以将逆量化单元310和逆变换处理单元312组合成的单个单元。
根据HEVC/H.265标准,可以使用35个帧内预测模式。如图4所示,该集合包括下列模式:平面模式(帧内预测模式索引为0)、DC模式(帧内预测模式索引为1)以及方向(角度)模式,方向模式覆盖180°范围且具有图4中黑色箭头所示帧内预测模式索引值范围为2至34。为捕获自然视频中存在的任意边缘方向,方向帧内模式的数量从HEVC中使用的33个扩展到65个。附加的方向模式在图4中用虚线箭头表示,且平面模式和DC模式保持不变。值得注意的是,帧内预测模式所覆盖的范围可以大于180°。特别地,索引值为3到64的62个方向模式覆盖大约230°的范围,即几对模式具有相反的方向。如图4所示,在HEVC参考模型(HM)和JEM平台的情况下,只有一对角度模式(即模式2和66)具有相反的方向。为构建预测器,常规角度模式获取参考样本,并(若需要)对其进行过滤以获得样本预测器。构建预测变量所需的参考样本数量取决于用于插值的滤波器的长度(例如,双线性和三次滤波器的长度分别为2和4)。
解码器,包括用于执行上述方法的处理电路。
在本公开中,公开了一种计算机程序产品,包括程序代码,用于执行上述方法。
在本公开中,公开了一种用于视频数据解码的解码器,该解码器包括:至少一个处理器;非暂时性计算机可读存储介质,其与处理器耦合且存储由处理器执行的程序,其中,当程序由处理器执行时,用于使解码器执行上述解码方法。
图7示出了具有67个帧内预测模式的示例,例如,对于VVC所提出的,67个帧内预测模式的多个帧内预测模式包括:平面模式(索引0),DC模式(索引1)以及索引为2到66的角度模式,其中,图7中左下角的模式指的是索引2,且索引的编号不断增加直至索引66,图7中最右上角的模式为索引66。
图10为根据本公开实施例的网络设备1300的示意图。网络设备1300适于实现如本文所述的公开的实施例。网络设备1300包括入口端口1310以及用于接收数据的接收器单元(Rx)1320;处理器、逻辑单元或中央处理单元(CPU)1330来处理数据;发射器单元(Tx)1340以及用于发送数据的出口端口1350;用于存储数据的存储器1360。
网络设备1300还可包括光电(OE)部件和电光(EO)部件,入口端口1310、接收器单元1320、发射器单元1340以及用于引入或输出光或电信号的出口端口1350的光电(OE)部件和电光(EO)部件耦合到该光电(OE)部件和电光(EO)部件。
处理器1330可通过硬件以及软件实现。处理器1330可以实现为一个或多个中央处理器(CPU)芯片、核(诸如作为多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)以及数字信号处理器(DSP)。处理器1330与入口端口1310、接收器单元1320、发射器单元1340、出口端口1350以及存储器1360通信。装置1330包括译码模块1370。译码模块1370实现上述公开的实施例。例如,译码模块1370实现、处理、准备或提供各种联网功能。因此,译码模块1370的融合为网络设备1300的功能提供了实质性的改进,并且实现了网络设备1300到不同状态的变换。可替代地,译码模块1370可实现为存储在存储器1360中并由处理器1330执行的指令。
存储器1360包括一个或多个光盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以存储所选用于执行的程序,并应用于在程序执行时存储读取的指令和数据。存储器1360可以是易失性和非易失性的,并且可以是只读存储器(ROM)、随机存取存储器(RAM)、三元内容可寻址存储器(TCAM)以及静态随机存取存储器(SRAM)。
图10为用于实现各个实施例的装置1100的框图。装置1100可以为图1所示的源设备102,或图2中所示的视频编码器200,或图1所示的目的设备104,或图3所示的视频解码器300。另外,装置1100可以托管一个或多个所述元件。在一些实施例中,装置1100配备有一个或多个诸如诸如扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等输入/输出设备。装置1100可包括一个或多个中央处理单元(CPU)1510、存储器1520、大容量存储器1530、视频适配器1540以及连接到总线的I/O接口1560。总线是几种总线架构中的任意一种或多种,包括存储器总线或存储器控制器、***总线、视频总线等。
CPU 1510可以包括任何类型的电子数据处理器。存储器1520可以包括任何类型的***存储器,如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等等。在一实施例中,存储器1520可以包括在启动时使用的ROM、以及在执行程序时使用的用于存储程序和数据的DRAM。在一实施例中,存储器1520是非易失的。大容量存储器1530包括任何类型的存储设备,其存储数据、程序和其他信息,并使该数据、程序和其他信息可经由总线访问。大容量存储器1530包括诸如固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等中的至少一个。
视频适配器1540以及I/O接口1560提供接口,以将外部输入和输出设备连接至装置1100。例如,装置1100可以向客户端提供SQL命令接口。如图所示,输入和输出设备的示例包括耦合到视频适配器1540的显示器1590以及耦合到I/O接口1560的鼠标/键盘/打印机1570的任意组合。其他设备可以耦合到装置1100,并且可以使用额外的或更少的接口卡。例如,串行接口卡(未示出)可以用于为打印机提供串行接口。
装置1100还包括一个或多个网络接口1550,该接口可以包括诸如以太网电缆等的有线链路,和/或无线链路,以接入节点或一个或多个网络1580。网络接口1550允许装置1100通过网络1580与远程单元进行通信。例如,网络接口1550可以向数据库提供通信。在一实施例中,装置1100耦合到局域网或广域网,用于数据处理和与诸如其他处理单元、因特网、远程存储设施等的远程设备进行通信。
引入分段线性近似以便计算预测给定块内像素所需的加权系数的值。一方面,分段线性近似与直接加权系数计算相比,显着降低了距离加权预测机制的计算复杂度;另一方面,与现有技术简化相比,分段线性近似有助于实现更高的加权系数值精度。实施例可以应用于其他双向的以及位置相关的帧内预测技术(诸如PDPC的不同修改)以及使用依赖于从一个像素到另一像素的距离的加权系数来混合图片的不同部分的机制(诸如图像处理中的一些混合方法)。
本公开中所述主题与操作的实现可以在数字电路或在包括本公开的结构及其结构性等同物的计算机软件、固件或硬件中实现或者在这些中的一个或多个的组合中实现。本公开中描述的主题的实现可以通过在计算机存储介质上译码以由数据处理设备执行或控制数据处理装置的一个或多个计算机程序实现,即计算机程序指令的一个或多个模块。可替代地或此外,程序指令可以被人为地译码,生成诸如机器生成的电、光或电磁信号的传播信号,用于对信息进行译码,以传输到合适的接收器设备以由数据处理装置执行。计算机存储介质,例如计算机可读介质,可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备,或其各项组合中的一个或多个。此外,尽管计算机存储介质不是传播信号,但计算机存储介质可以是以人工方式译码、生成传播信号的计算机程序指令的源或目的。计算机存储介质还可以是或包括一个或多个单独的物理和/或非暂时性组件或介质(诸如多个CD、光盘或其他存储设备)。
本公开中所述的主题与操作的实现可以在数字电路或者在包括本公开的结构及其结构性等同物的计算机软件、固件或硬件中实现或者在这些中的一个或多个的组合中实现。本公开中描述的主题的实现可以通过在计算机存储介质上译码以由数据处理设备执行或控制数据处理装置的一个或多个计算机程序实现,即计算机程序指令的一个或多个模块。替代地或附加地,程序指令可以被人为地译码,生成诸如机器生成的电、光或电磁信号的传播信号,用于对信息进行译码,以传输到合适的接收器设备以由数据处理装置执行。计算机存储介质,例如计算机可读介质,可以是或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备,或其各项组合中的一个或多个。此外,尽管计算机存储介质不是传播信号,但计算机存储介质可以是以人工方式译码、生成传播信号的计算机程序指令的源或目的。计算机存储介质还可以是一个或多个单独的物理和/或非暂时性组件或介质(诸如多个CD、光盘或其他存储设备)或包括在其中。
在一些实现方式中,本公开所描述的操作可以通过在云计算网络中服务器上提供的托管服务实现。例如,计算机可读存储介质可以在云计算网络内进行逻辑分组并进行访问。云计算网络服务器可以包括用于提供基于云的服务的云计算平台。术语“云”、“云计算”和“基于云”可以适当地互换使用,而不脱离本公开的范围。基于云的服务可以是由服务器提供并通过网络传递到客户端平台的托管服务,以增强、补充或替换在客户端计算机上本地执行的应用程序。电路可以使用基于云的服务来快速接收软件升级、应用程序和其他资源,否则,这些升级可能需要很长的时间才能将资源传输至给电路。
计算机程序(也公知为程序、软件、软件应用、脚本或代码)可以由任意形式的编程语言编写,包括编译语言、解释语言、说明性语言或过程语言,并且该计算机程序可以任意形式部署,包括部署为单独的程序或模块、组件、子例程、对象,或者适于在计算环境中使用的其他单元。计算机程序可以但不必对应于文件***中的文件。程序可以被存储在保持其它程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分、专用于正讨论的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以在位于一个站点上或分布在多个站点上通过通信网络互连的一台或多台计算机上部署或执行。
本公开中描述的过程和逻辑流可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作的一个或多个可编程处理器执行。这些处理和逻辑流还可由专用逻辑电路(诸如FPGA(现场可编程门阵列))或ASIC(专用集成电路))来执行,并且装置也可被实现成专用逻辑电路(诸如FPGA(现场可编程门阵列))或ASIC(专用集成电路))。
例如,适于执行计算机程序的处理器包括通用和专用微处理器以及任何类型的数字计算机中的任何一个或多个处理器。通常,处理器将接受来自只读存储器或者随机访问存储器或者两者的指令和数据。计算机的主要元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地耦合,以从一个或多个大容量存储设备接收数据或从中接收数据或将数据传输到一个或多个大容量存储设备,用于存储数据,诸如磁盘、磁光盘或光盘。但是,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,诸如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位***(GPS)接收器或便携式存储设备设备(诸如通用串行总线(USB)闪存驱动器),等等。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括诸如半导体存储器的设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘或可移动盘;磁光盘;CD-ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路。
尽管本公开包括许多特定实现方式的细节,但这些细节都不应解释为对任何实现方式或要求保护的范围的限制,而是被解释为可特定于特定实现方式的特定实现方式的特征。在本公开中的单独实现方式的上下文中描述的某些特征也可以组合在单个实现方式中实现。相反地,在单个实现方式的上下文中描述的各种特征也可以单独地在多个实现方式中实现,或在任何适合的部分组合中实现。此外,尽管上文描述的特征在某些组合和原始要求保护的组合中起作用,但是来自要求保护的组合的一个或多个特征在某些情况下可以从组合中脱离,并且要求保护的组合可以导向到部分组合或部分组合的变形。
类似地,尽管图中按照特定顺序描绘了操作,但是这不应理解为按照所示特定顺序或连续顺序执行这些操作,或要求执行所有图示的操作,以实现所期望的结果。在一些情况下,多任务和并行处理可能是有利的。此外,在上述实现方式中的各种***组件的分离不应被理解为在所有实现方式中都需要分离,且应当理解,所描述的程序组件和***通常可以集成在单个软件产品中或打包成多个软件产品中。
因此,本文已描述本主题的特定实施方式。其它实现方式可以在所附权利要求的范围内。在某些情况下,权利要求中所记载的动作可以以不同的顺序执行并仍可以实现期望效果。例如,在附图中描绘的过程不需要以所示特定顺序或连续顺序来实现所期望效果。在某些实现方式中,多任务和并行处理可能是有利的。
尽管本公开中已经提供了若干实施例,但应理解,在不脱离本公开的精神或范围的情况下,所公开的***和方法能够以许多其他的具体形式体现。本示例仅为示例而非限定,其意图不限于本文所给出的细节。例如,多个单元或组件可以结合或者可以集成到另一个***中,或一些特征可以省略,或不执行。
此外,在不脱离本公开的范围的前提下,可以将在各种实施例中描述且说明为离散或独立的技术、***、子***和方法与其它***、模块、技术或方法进行组合或集成。所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备置或中间组件的间接耦合或通信连接,可以是电、机械或其它的形式。本领域技术人员可以确定变更、替代和变更的其他示例,并且可以在不脱离本文公开的精神和范围的情况下进行。

Claims (15)

1.一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的方法,所述方法包括:
获取与当前块相邻的相邻块的帧内预测模式;
若MPM列表中不包括所述相邻块的帧内预测模式,
则确定所述当前块中由所述帧内预测模式预测的样本的数量是否大于或等于第一阈值;
若所述数量大于或等于所述第一阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中;
所述数量对应所述当前块的样本的数量N,所述数量N根据所述当前块边界上参考样本集合的位置确定,其中,N为整数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将所述相邻块的帧内预测模式添加到所述MPM列表中后,
若所述MPM列表中包括的帧内预测模式数量小于第二阈值,
则检查所述MPM列表中是否包括帧内预测模式集合的第一帧内预测模式,若所述MPM列表中不包括所述第一帧内预测模式,则将所述第一帧内预测模式添加到所述MPM列表中;帧内预测模式集合包括平面模式(0)、DC模式(1)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
3.根据权利要求1或2所述的方法,其特征在于,所述确定所述数量N包括:
确定包括在所述当前块邻近的多个样本作为所述参考样本集合;
根据所述参考样本集合的位置确定所述数量N。
4.根据权利要求3所述的方法,其特征在于,所述确定所述数量N包括:
根据所述当前块与所述相邻块之间的相对位置确定当前块的侧面;
确定与所述当前块侧面相邻的多个样本作为所述参考样本集合,如下:
若所述相邻块与当前预测块的顶侧相邻,则将所述顶侧的可用及未填充的参考样本包括在所述参考样本集合中;
若所述相邻块与当前预测块的左侧相邻,则将所述左侧的可用及未填充的参考样本包括在所述参考样本集合中。
5.根据权利要求3所述的方法,其特征在于,所述确定所述数量N包括:
若所述相邻块帧内预测模式对应的帧内预测模式的索引和与所述当前块相邻的另一相邻块帧内预测模式对应的帧内预测模式的索引之间的绝对差小于第三阈值,则确定所述另一相邻块中包括的多个样本与所述相邻块中包括的多个样本作为所述参考样本集合;
根据所述集合内参考样本的位置确定数量N。
6.根据权利要求1或2所述的方法,其特征在于,所述第一阈值是预定义的,且所述第一阈值的值等于2、4、8或16。
7.根据权利要求1或2所述的方法,其特征在于,所述第一阈值是根据所述当前块中样本数量确定的。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若N小于所述第一阈值,则在此过程中不将所述相邻块的帧内预测模式添加到MPM列表中。
9.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述N小于所述第一阈值,则将所述相邻块的帧内预测模式添加到MPM列表的最后位置。
10.根据权利要求1或2所述的方法,其特征在于,所述帧内预测模式为方向模式或基于矩阵的帧内预测。
11.一种用于对图像或视频进行编码的方法,包括:
根据权利要求1或2所述的方法,构建帧内预测的MPM列表;
从所述MPM中选择帧内预测模式;
使用所选帧内预测模式对所述当前块进行编码;以及
参考所述MPM发信号通知所选帧内预测模式。
12.一种用于对图像或视频进行解码的方法,包括:
根据权利要求1或2所述方法,构建帧内预测的MPM列表;
提取所述MPM的参考,基于所提取的参考及所述MPM列表确定帧内预测模式;
使用所确定的帧内预测模式对所述当前块进行解码。
13.一种用于构建帧内预测的最可能模式(Most Probable Mode,MPM)列表的装置,包括:电路,所述电路用于:
获取与当前块相邻的相邻块的帧内预测模式;
若所述MPM列表中不包括所述相邻块的帧内预测模式,
则确定所述当前块中由所述帧内预测模式预测的样本的数量是否大于或等于第一阈值;以及
若所述数量大于或等于所述第一阈值,则将所述相邻块的帧内预测模式添加到所述MPM列表中;
所述数量对应所述当前块的样本的数量N,所述数量N根据所述当前块边界上参考样本集合的位置确定,其中,N为整数。
14.一种用于构建最可能模式MPM列表的解码器,所述解码器包括:
至少一个处理器;
非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述解码器执行根据权利要求1至10中任一项所述的方法。
15.一种用于构建最可能模式MPM列表的编码器,包括:
至少一个处理器;
非暂时性计算机可读存储介质,其与所述处理器耦合且存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,用于使所述编码器执行根据权利要求1至10中任一项所述的方法。
CN201980057930.1A 2018-09-13 2019-09-12 帧内预测的方法和装置 Active CN112640453B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862731044P 2018-09-13 2018-09-13
US62/731,044 2018-09-13
PCT/RU2019/050149 WO2020055290A1 (en) 2018-09-13 2019-09-12 Method and apparatus for intra prediction

Publications (2)

Publication Number Publication Date
CN112640453A CN112640453A (zh) 2021-04-09
CN112640453B true CN112640453B (zh) 2023-03-10

Family

ID=69776879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980057930.1A Active CN112640453B (zh) 2018-09-13 2019-09-12 帧内预测的方法和装置

Country Status (4)

Country Link
US (1) US11503335B2 (zh)
EP (1) EP3834410A4 (zh)
CN (1) CN112640453B (zh)
WO (1) WO2020055290A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022218316A1 (en) * 2021-04-13 2022-10-20 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing
US20220400255A1 (en) * 2021-06-11 2022-12-15 Tencent America LLC Intra Mode Coding
US20230069984A1 (en) * 2021-08-24 2023-03-09 Tencent America LLC Hardware friendly design for intra mode coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018062788A1 (ko) * 2016-09-30 2018-04-05 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018066863A1 (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN107925759A (zh) * 2015-06-05 2018-04-17 英迪股份有限公司 用于编码和解码帧内预测的方法和设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
US9154796B2 (en) * 2011-11-04 2015-10-06 Qualcomm Incorporated Intra-mode video coding
KR20180008797A (ko) * 2015-06-15 2018-01-24 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10448011B2 (en) * 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
WO2017188739A1 (ko) 2016-04-29 2017-11-02 세종대학교 산학협력단 영상 신호 부호화 및 복호화 방법과 장치
KR102360795B1 (ko) 2016-04-29 2022-02-10 세종대학교산학협력단 영상 신호 부호화/복호화 방법 및 장치
US10547854B2 (en) * 2016-05-13 2020-01-28 Qualcomm Incorporated Neighbor based signaling of intra prediction modes
US10397603B1 (en) * 2018-05-08 2019-08-27 Tencent America LLC Method and apparatus for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925759A (zh) * 2015-06-05 2018-04-17 英迪股份有限公司 用于编码和解码帧内预测的方法和设备
WO2018062788A1 (ko) * 2016-09-30 2018-04-05 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2018066863A1 (ko) * 2016-10-04 2018-04-12 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Description of Core Experiment 3: Intra Prediction and Mode Coding;Geert Van der Auwera;《JVET-K1023-v2》;20180809;6.6节 *
基于时域相关性的HEVC快速帧内预测算法;李元等;《电视技术》;20130502(第09期);全文 *

Also Published As

Publication number Publication date
US11503335B2 (en) 2022-11-15
EP3834410A1 (en) 2021-06-16
EP3834410A4 (en) 2021-11-03
US20210266596A1 (en) 2021-08-26
WO2020055290A1 (en) 2020-03-19
CN112640453A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
AU2019335453B2 (en) Method and apparatus for intra prediction
AU2023202685B2 (en) Method and apparatus for intra prediction
CN112640453B (zh) 帧内预测的方法和装置
CN112567740B (zh) 用于帧内预测的方法和装置
CN112425165B (zh) 基于邻块的帧内预测模式推导
CN112703739B (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
GR01 Patent grant
GR01 Patent grant