CN112567740B - 用于帧内预测的方法和装置 - Google Patents

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

Info

Publication number
CN112567740B
CN112567740B CN201980052689.3A CN201980052689A CN112567740B CN 112567740 B CN112567740 B CN 112567740B CN 201980052689 A CN201980052689 A CN 201980052689A CN 112567740 B CN112567740 B CN 112567740B
Authority
CN
China
Prior art keywords
intra
mode
mpms
prediction
values
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
CN201980052689.3A
Other languages
English (en)
Other versions
CN112567740A (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 CN112567740A publication Critical patent/CN112567740A/zh
Application granted granted Critical
Publication of CN112567740B publication Critical patent/CN112567740B/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/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/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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

本公开涉及对视频数据进行解码的方法和设备。上述设备和方法使用映射过程来简化帧内预测的计算过程,以提高编解码效率。编码数据的解码包括:对编码数据进行解码,以获得指示用于图像块的帧内预测模式是否在一组最可能模式(MPM)中的指示;如果该指示指示用于图像块的帧内预测模式不在该组MPM中,则生成第一组帧内预测模式中的至少一个帧内预测模式与一组非MPM中的至少一个帧内预测模式之间的映射关系;对编码数据进行解码以获得用于图像块的帧内预测模式码字;根据上述映射关系和上述帧内预测模式码字获得用于图像块的帧内预测模式。

Description

用于帧内预测的方法和装置
技术领域
本公开涉及图像和/或视频编解码技术领域,尤其涉及用于帧内预测的方法和装置。
背景技术
自从推出DVD光盘以来,数字视频得到了广泛的应用。在传输之前,对视频进行编码并使用传输介质发送。观看者接收视频并且使用观看设备来解码和显示视频。这些年来,例如因为分辨率、颜色深度、以及帧速率更高,所以视频质量有所提高。这使得现在通常通过互联网和移动通信网络来传输更大的数据流。
然而,因为更高分辨率的视频具有更多的信息,所以通常需要更多的带宽。为了降低带宽要求,引入了涉及视频压缩的视频编码标准。在视频被编码的情况下,带宽要求(或者在存储的情况下对应的存储器要求)有所降低。通常,这种降低以质量为代价。因此,视频编码标准试图在带宽要求和质量之间找到平衡。
高效视频编码(high efficiency video coding,HEVC)是本领域技术人员公知的视频编码标准的示例。在HEVC中,将编解码单元(coding unit,CU)分成预测单元(prediction unit,PU)或变换单元(transform unit,TU)。通用视频编码(versatilevideo coding,VVC)下一代标准是ITU-T视频编码专家组(video coding experts group,VCEG)和ISO/IEC运动图像专家组(moving picture experts group,MPEG)标准化组织在称为联合视频探索小组(joint videoexploration team,JVET)的合作伙伴关系中共同开展的最新联合视频项目。VVC也称为ITU-T H.266/下一代视频编码(next generation videocoding,NGVC)标准。在VVC中,应取消多个划分方式的概念,即,取消了对CU概念、PU概念、以及TU概念的分离(除非其尺寸对于最大变换长度来说太大的CU需要),并且支持更灵活的CU划分形状。
这些编解码单元(CU)(也称为块)的处理取决于其尺寸、空间位置、以及由编码器指定的编码模式。根据预测的类型,编码模式可以分为两组:帧内预测模式和帧间预测模式。帧内预测模式使用同一图像(picture)(也称为帧或图片(image))的样本来生成参考样本,以计算正被重建的块的样本的预测值。帧内预测也称为空间预测(spatialprediction)。帧间预测模式用于时间预测(temporal prediction),并且使用前一图像或下一图像的参考样本预测当前图像的块的样本。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频编解码技术标准化的潜在需求,该需求为显著超过当前HEVC标准(包括其当前扩展和近期扩展的屏幕内容编解码和高动态范围编解码)的压缩能力。这两个小组正在联合合作(称为联合视频探索小组(JVET))进行这一研究活动,以评估这两个小组在这一领域的专家所提出的压缩技术设计。
通用测试模型(versatile test model,VTM)标准使用35个帧内模式,而基准集(benchmark set,BMS)使用67个帧内模式。
当前在BMS中描述的帧内模式编解码方案被认为是复杂的,并且非选定模式集(non-selected mode set)的缺点是索引列表总是恒定的,并且不能基于当前块属性(对于例如该当前块的相邻块的帧内模式)自适应。
发明内容
公开了用于帧内预测的装置和方法。该装置和方法使用映射过程来简化帧内预测的计算过程,以提高编解码效率。保护范围由权利要求限定。其他的实施方式在从属权利要求、说明书、以及附图中是显而易见的。
本公开的目标是改进帧内模式信令方案。在本公开中,提供了视频解码方法和视频解码器。
根据一个方面,本发明涉及一种对视频数据进行编解码的方法,该方法包括:对图像块的编码数据进行解码,以从用于图像块的多个帧内预测模式中获得帧内预测模式,其中,用于图像块的多个帧内预测模式包括一组最可能模式(most probable mode,MPM)以及一组非MPM(non-MPM),其中,该组非MPM包括第一组帧内预测模式和第二组帧内预测模式,其中,第一组帧内预测模式中的模式使用N个比特进行编码,并且第二组帧内预测模式中的模式使用M个比特进行编码,其中,N和M是正整数并且N小于M,其中,对图像块的编码数据进行解码以从用于图像块的多个帧内预测模式中获得帧内预测模式包括:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在该组MPM中的指示;如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系;对编码数据进行解码以获得用于图像块的帧内预测模式码字;根据映射关系和帧内预测模式码字获得用于图像块的帧内预测模式。
在实施例中,根据该组MPM生成上述映射关系。
在实施例中,根据预定的默认模式列表生成上述映射关系,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
在实施例中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中落入每个帧内预测模式类别内的帧内预测模式的数量和/或方向来对多个帧内预测模式类别进行排序;以及根据排序最高的帧内预测模式类别生成映射关系。
在实施例中,生成第一组帧内预测模式中的帧内预测模式与第二组帧内预测模式中的帧内预测模式之间的映射关系包括:对该组MPM进行分类以获得排序最高的帧内预测模式类别;以及根据排序最高的帧内预测模式类别以及将偏移量添加到对应于该组MPM的多个值来生成映射关系。
例如,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM的多个值。
在实施例中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,其中,第一组值中的一个值是该组非MPM中的预测模式的最小值;通过将偏移量添加到该组MPM中的至少一个预测模式的值来生成第二组值;以及根据第一组值和第二组值生成映射关系。
在实施例中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,其中,第一组值中的一个值是该组非MPM中的预测模式的最小值;通过将偏移量添加到该组MPM中的至少一个角度预测模式的值来生成第二组值;以及根据第一组值和第二组值生成映射关系。
在实施例中,用于图像块的多个帧内预测模式中的预测模式的数量为67,该组MPM中的预测模式的数量为6,该组非MPM中的第一组帧内预测模式中的预测模式的数量为3,并且该组非MPM中的第二组帧内预测模式中的预测模式的数量为58,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值获得该组非MPM中的三个预测模式的最小的三个值;获得该组MPM中的两个角度预测模式的两个值,将偏移量添加到这两个值以获得偏移值;根据该组MPM中的预测模式的值和偏移值获得第二组值;以及根据第一组值和第二组值生成映射关系。
在实施例中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,其中,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据预定的默认模式列表生成第二组值,预定的默认模式列表包括以下模式或由以下模式组成:垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX);以及根据第一组值和第二组值生成映射关系。
在实施例中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,其中,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据预定的默认模式列表生成第二组值,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX);以及对角线模式(DIA_IDX);以及根据第一组值和第二组值生成映射关系。
在实施例中,帧内预测模式码字使用5个比特进行编码,并且帧内预测模式码字是00000、00001、或00010之一。
在实施例中,第一组帧内预测模式中的至少一个帧内预测模式之一对应于该组非MPM中的至少一个帧内预测模式之一。
根据实施例,一种用于对视频数据进行解码的解码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储用于由处理器执行的程序,其中,当由处理器执行时,该程序配置解码器以执行上述方法。
根据一个方面,本发明涉及一种包括电路的解码器,该电路用于执行上述方法。
根据一个方面,本发明涉及一种包括程序代码的计算机程序产品,该程序代码用于执行上述方法。
附图说明
将参考附图更详细地描述以下实施例,在附图中:
图1是示出用于实现本发明的实施例的视频编解码系统的示例的框图。
图2是示出用于实现本发明的实施例的视频编码器的示例的框图。
图3是示出用于实现本发明的实施例的视频解码器的示例结构的框图。
图4是示出67个帧内预测模式的示意图。
图5是示出用于MPM导出的相邻块的示意图。
图6是示出视频解码方法的示例的示意图。
图7是示出视频解码方法的示例的另一示意图。
图8是示出用于导出剩余模式列表中的前三个模式的第二级相邻块帧内模式的示意图。
图9是示出剩余模式列表生成过程中的前三个模式的示例的示意图。
图10示出了装置的框图。
在下文中,如果没有另外明确规定,则相同的附图标记表示相同的或至少功能上等同的特征。
具体实施方式
在以下描述中,参考附图,附图形成本公开的一部分,并且通过图示示出可以使用本发明的特定方面。应理解,本发明的实施例可以用在其他方面,并且包括附图中未示出的结构或逻辑变化。因此,以下具体实施方式不应被理解为限制性的,并且本发明的范围由所附权利要求限定。
例如,应理解,与所描述的方法有关的公开内容对于用于执行该方法的对应设备或系统也是适用的,反之亦然。例如,如果描述了特定方法步骤,则对应的设备可以包括单元以执行所描述的方法步骤,即使这样的单元未在附图中明确地描述或示出。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述特定装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或者多个步骤中的每一个执行多个单元中的一个或多个单元的功能),即使这种一个或多个步骤未在图中明确地描述或示出。此外,应理解,除非另外特别指出,否则本文所述的各种示例性方面的特征可彼此组合。
视频编解码(video coding)通常是指对形成视频或视频序列的图像序列的处理。在视频编解码领域以及在本申请中,术语“图像(picture)”,“帧(frame)”或“图片(image)”可以用作同义词。视频编解码(或一般编解码)包括两个部分:视频编码和视频解码。视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图像以减少表示视频图像所需的数据量(以便更有效地存储和/或传输)。视频解码在目的地侧执行,并且通常包括与编码器相比的反处理,以重建视频图像。涉及视频图像(或一般图像)的“编解码”的实施例应当被理解为涉及视频图像或相应的视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为CODEC(Coding和Decoding)。
在无损视频编解码的情况下,可以重建原始视频图像,即,重建的视频图像具有与原始视频图像相同的质量(假设在存储或传输期间没有传输损失或其他数据损失)。在有损视频编解码的情况下,例如通过量化执行进一步压缩,以减少表示视频图像的数据量,该视频图像不能在解码器处完全重建,即,重建的视频图像的质量与原始视频图像的质量相比更低或更差。
图1是示出了可以使用本申请(本公开)的技术的示例编解码系统10(例如视频编解码系统10)的概念或示意框图。视频编解码系统10的编码器20(例如视频编码器20)和解码器30(例如视频解码器30)表示可以用于执行根据本申请中描述的各种示例的技术的设备的示例。如图1所示,编解码系统10包括源设备12,源设备12用于将例如编码图像13的编码数据13提供给目的地设备14以便对编码数据13进行解码。
源设备12包括编码器20,并且可以附加地即可选地包括图像源16、预处理单元18(例如图像预处理单元18)、以及通信接口或通信单元22。
图像源16包括或者可以是任何种类的图像捕获设备(例如用于捕获真实世界图像)、和或任何种类的图像或评论(对于屏幕内容编码,屏幕上的一些文本也被认为是要被编码的图像(picture)或图片(image)的一部分)生成设备(例如用于生成计算机动画图像的计算机图像处理器)、或者任何种类的用于获得和/或提供真实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)、和/或其任何组合(例如,增强现实(augmented reality,AR)图像)的设备。
(数字)图像是或者可以被认为是具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的短形式)或“pel”。阵列或图像的水平方向和垂直方向(或轴)上的样本数目定义了图像的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即,图像可以用三个样本阵列表示或包括三个样本阵列。在RBG格式或颜色空间中,图像包括相应的红色、绿色、和蓝色样本阵列。然而,在视频编解码中,每一像素通常以亮度/色度格式或色彩空间(例如,YCbCr)表示,其包括由Y指示的亮度分量(有时也替代地使用L)和由Cb和Cr指示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰阶强度(例如,在灰度图像中),而两个色度(或简称chroma)分量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封装为适当格式(例如包)以供经由通信链路或通信网络传输。
形成通信接口22的对应部分的通信接口28例如可以用于对编码数据13进行解封装以获得编码图像数据21。
通信接口22和通信接口28两者都可以被配置为如图1中的编码图像数据13的从源设备12指向目的地设备14的箭头所指示的单向通信接口,或者双向通信接口,并且可以用于例如发送和接收消息,例如以建立连接,确认并交换与通信链路和/或数据传输(例如,编码图像数据传输)相关的任何其他信息。
解码器30用于接收编码图像数据21并且提供解码图像数据31或解码图像31(以下将例如基于图3描述进一步的细节)。
目的地设备14的后处理器32用于对解码图像数据31(也称为重建图像数据)(例如,解码图像31)进行后处理,以获得后处理图像数据33(例如,后处理图像33)。由后处理单元32执行的后处理可以包括例如颜色格式转换(例如,从YCbCr到RGB)、颜色校正、裁剪、或重采样、或任何其他处理,例如用于准备解码图像数据31以供例如显示设备34显示。
目的地设备14的显示设备34用于接收后处理图像数据33以用于将图像显示给例如用户或观看者。显示设备34可以是或包括用于表示重建图像的任何种类的显示器,例如集成或外部显示器或监视器。显示器可以例如包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子体显示器、投影仪、微型LED显示器、液晶覆硅(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)、或任何种类的其他显示器。
虽然图1将源设备12和目的地设备14描绘为单独的设备,但是设备的实施例还可以包括两个设备或两种功能,源设备12或对应的功能以及目的地设备14或对应的功能。在这样的实施例中,源设备12或对应的功能和目的地设备14或对应的功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任何组合来实现。
如基于描述对本领域技术人员将显而易见的,如图1所示的源设备12和/或目的地设备14内的不同单元的功能或功能的存在和(精确)划分可以取决于实际设备和应用而变化。
编码器20(例如视频编码器20)和解码器30(例如视频解码器30)各自可以被实现为各种合适电路中的任何一个电路,例如一个或多个微处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、或其任何组合。如果上述技术被部分地在软件中实现,则设备可以将用于该软件的指令存储在合适的非暂时性计算机可读存储介质中,并且可以使用一个或多个处理器在硬件中执行指令以执行本公开的技术。前述任何一个(包括硬件、软件、硬件和软件的组合等)都可以被认为是一个或多个处理器。视频编码器20和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,其中,编码器和解码器中的任何一个可以集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
源设备12和目的地设备14可以包括各种各样的设备中的任何一种,包括任何种类的手持式或固定设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流送设备(例如内容服务服务器或内容传送服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何种类的操作系统。在一些情况下,源设备12和目的地设备14可以配备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1中示出的视频编解码系统10仅仅是示例,并且本申请的技术可以应用于视频编解码设备(例如,视频编码或视频解码),该视频编解码设置不必包括编码设备和解码设备之间的任何数据通信。在其他示例中,从本地存储器检索数据,通过网络流送数据等。视频编码设备可以对数据进行编码并将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并对数据进行解码。在一些示例中,由设备来执行上述编码和解码,这样的设备不彼此通信,而是简单地将数据编码到存储器和/或从存储器检索和对数据进行解码。
图2示出了用于实现本申请的技术的示例视频编码器20的示例/概念框图。在图2的示例中,视频编码器20包括残差计算单元204、变换处理单元206、量化单元208、反量化单元210、以及反变换单元212、重建单元214、缓冲器216、环路滤波器单元220、解码图像缓冲器(decoded picture buffer,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,其可以是帧间预测块245或帧内预测块255。
模式选择单元262可以用于选择预测模式(例如,帧内预测模式或帧间预测模式)和/或对应的预测块245或255用作预测块265,以用于残差块205的计算和用于重建块215的重建。
模式选择单元262的实施例可以用于选择预测模式(例如,从预测单元260所支持的预测模式中选择),该预测模式提供最佳匹配或换句话说最小残差(最小残差意味着更好的压缩以用于传输或存储),或最小信令开销(最小信令开销意味着更好的压缩以用于传输或存储),或考虑或平衡两者。模式选择单元262可以用于基于率失真优化(ratedistortion optimization,RDO)来确定预测模式,即,选择提供最小率失真优化或相关联的率失真至少满足预测模式选择标准的预测模式。
帧内预测单元254还用于基于帧内预测参数(例如,选择的帧内预测模式)来确定帧内预测块255。在任何情况下,在为块选择帧内预测模式之后,帧内预测单元254还用于向熵编码单元270提供帧内预测参数,即,指示为块选择的帧内预测模式的信息。在一个示例中,帧内预测单元254可以用于执行后面描述的帧内预测技术的任何组合。
编码器20的实施例可以包括图像划分单元(图2中未示出),图像划分单元用于将图像划分为多个(通常不重叠的)图像块。这些块也称为根块(root block)、宏块(macroblock)(H.264/AVC)、或编码树块(coding tree block,CTB)或编码树单元(coding treeunit,CTU)(H.265/HEVC及VVC)。图像划分单元可以用于对视频序列的所有图像使用相同的块尺寸,并使用界定上述块尺寸的对应网格,或在图像或图像子集或图像组之间改变块尺寸,并且将每一图像划分为对应的块。
与图像类似,图像块也被视为或者可以被视为具有强度值(样本值)的样本的二维阵列或矩阵,但其维度小于图像。换句话说,块可以包括例如一个样本阵列(例如,在单色图像的情况下的亮度阵列,或在彩色图像的情况下的亮度阵列或色度阵列)或三个样本阵列(例如,在彩色图像的情况下的一个亮度阵列和两个色度阵列)或任何其他数量和/或种类的阵列,这取决于所应用的颜色格式。块的水平方向和垂直方向(或轴)上的样本数量定义块的尺寸。因此,块例如可以是MxN(M列乘N行)样本阵列或MxN变换系数阵列。
图2所示的视频编码器的实施例可以用于对每个图像块进行编码,例如,针对每个块执行编码和预测。
图2所示的视频编码器的实施例还可以用于通过使用切片(也称为视频切片)来划分图片(image)和/或对图像(picture)进行编码,其中,图像可以被划分为一个或多个切片(通常是不重叠的)或使用一个或多个切片(通常是不重叠的)进行编码,并且每个切片可以包括一个或多个块(例如CTU)。
图2所示的视频编码器的实施例还可以用于通过使用区块组(title group)(也称为视频区块组)和/或区块(也称为视频区块)来划分图像和/或对图像进行编码,其中,图像可以被划分为一个或多个区块组(通常是不重叠的)或使用一个或多个区块组(通常是不重叠的)来进行编码,并且每个区块组可以包括例如一个或多个块(例如CTU)或一个或多个区块,其中,每个区块例如可以是矩形形状并且可以包括一个或多个块(例如CTU),例如完整块或部分块。
图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可以在功能上类似于帧内预测单元154。预测处理单元360通常用于执行块预测和/或从编码数据21获得预测块365,并且例如从熵解码单元304(显式地或隐式地)接收或获得预测相关参数和/或关于选择的预测模式的信息。
当视频切片被编码为帧内编码(I)切片时,预测处理单元360的帧内预测单元354用于基于信令通知的帧内预测模式和来自当前帧或图像的先前解码的块的数据来生成当前视频切片的图像块的预测块365。当视频帧被编码为帧间编码(即,B或P)时,预测处理单元360的帧间预测单元344(例如,运动补偿单元)用于基于从熵解码单元304接收的运动矢量和其他语法元素来产生当前视频切片的视频块的预测块365。对于帧间预测,可以从参考图像列表中的一个列表内的参考图像中的一个图像产生上述预测块。视频解码器30可以使用基于DPB 330中存储的参考图像的默认构建技术来构建参考帧列表(列表0(List 0)和列表1(List1))。
预测处理单元360用于通过解析运动矢量和其他语法元素来确定当前视频切片的视频块的预测信息,并且使用预测信息来产生正在进行解码的当前视频块的预测块。例如,预测处理单元360使用接收到的语法元素中的一些语法元素来确定用于对视频切片的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测切片类型(例如,B切片、P切片、或GPB切片)、用于切片的一个或多个参考图像列表的构建信息、用于切片的每个帧间编码视频块的运动矢量、用于切片的每个帧间编码视频块的帧间预测状态、以及用于对当前视频切片中的视频块进行解码的其他信息。
反量化单元310用于对在位流中提供并由熵解码单元304进行解码的量化变换系数进行反量化,即,去量化。反量化过程可以包括使用由视频编码器100针对视频切片中的每个视频块计算的量化参数来确定量化度,并且类似地,确定应当应用的反量化度。
反变换处理单元312用于对变换系数应用反变换(例如反DCT、反整数变换、或概念上类似的反变换处理),以在像素域中产生残差块。
重建单元314(例如,加法器314)用于将反变换块313(即,重建残差块313)与预测块365相加(例如,通过将重建残差块313的样本值与预测块365的样本值相加),以获得样本域中的重建块315。
环路滤波器单元320(在编解码环路中或在编解码环路之后)用于对重建块315进行滤波以获得滤波块321,例如以使像素过渡平滑或提高视频质量。在一个示例中,环路滤波器单元320可以用于执行后面描述的滤波技术的任何组合。环路滤波器单元320旨在表示一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器、或其他滤波器(例如双边滤波器、或自适应环路滤波器(adaptive loopfilter,ALF)、或锐化或平滑滤波器、或协作滤波器)。尽管环路滤波器单元320在图3中示为环路内滤波器(in loop filter),但是在其他配置中,环路滤波器单元320可以实现为环路后滤波器(post loop filter)。
然后,将给定帧或图像中的解码视频块321存储在解码图像缓冲器330中,解码图像缓冲器330存储用于后续运动补偿的参考图像。
解码器30用于例如经由输出332输出解码图像331,用于向用户显示或观看。
视频解码器30的其他变型可以用于对压缩的位流进行解码。例如,解码器30可以在没有环路滤波单元320的情况下产生输出视频流。例如,对于某些块或帧,基于非变换的解码器30可以在没有反变换处理单元312的情况下直接对残差信号进行反量化。在另一实施方式中,视频解码器30可以将反量化单元310和反变换处理单元312组合成单个单元。
图3所示的视频解码器的实施例可以用于通过使用切片(也称为视频切片)来划分图片(image)和/或对图像(picture)进行编码,其中,图像可以被划分为一个或多个切片(通常是不重叠的)或使用一个或多个切片(通常是不重叠的)进行编码,并且每个切片可以包括一个或多个块(例如CTU)。
图3所示的视频解码器的实施例还可以用于通过使用区块组(也称为视频区块组)和/或区块(也称为视频区块)来划分图像和/或对图像进行编码,其中,图像可以被划分为一个或多个区块组(通常是不重叠的)或使用一个或多个区块组(通常是不重叠的)来进行编码,并且每个区块组可以包括例如一个或多个块(例如CTU)或一个或多个区块,其中,每个区块例如可以是矩形形状并且可以包括一个或多个块(例如CTU),例如完整块或部分块。
应理解,在编码器和解码器中,可以进一步处理当前步骤的处理结果,然后输出到下一步骤。例如,在插值滤波、运动矢量导出、或环路滤波之后,可以对插值滤波、运动矢量导出、或环路滤波的处理结果执行进一步操作(例如截取(clip)或移位(shift))。
根据HEVC/H.265标准,有35种帧内预测模式可用。如图4所示,该组帧内预测模式包括以下模式:平面模式(帧内预测模式索引为0)、DC模式(帧内预测模式索引为1)、以及图4中黑色箭头所示的覆盖180°范围并且帧内预测模式索引值范围为2至34的方向(角度)模式。为了捕获自然视频中存在的任意边缘方向,将方向帧内模式的数量从HEVC中使用的33个扩展到65个。附加的方向模式在图4中描绘为虚线箭头,并且平面模式和DC模式保持不变。值得注意的是,帧内预测模式所覆盖的范围可以大于180°。特别地,索引值为3至64的62个方向模式覆盖大约230°的范围,即,若干对模式的方向相反。在HEVC参考模型(HEVCreference mode,HM)和JEM平台的情况下,如图4所示,只有一对角度模式(即,模式2和模式66)方向相反。为了构建预测器(predictor),传统的角度模式获取参考样本并且(如果需要的话)对参考样本进行滤波以得到样本预测器。构建预测器所需的参考样本的数量取决于用于插值的滤波器的长度(例如,双线性滤波器和三次滤波器的长度分别为2和4)。
视频编解码方案(例如H.264/AVC和HEVC)遵循基于块的混合视频编解码的成功原理而设计。使用该原理,首先将图像划分为块,然后通过使用图像内预测或图像间预测对每个块进行预测。
自H.261以来的若干视频编解码标准属于“有损混合视频编解码器”组(即,将样本域中的空间预测和时间预测与用于在变换域中应用量化的2D变换编解码相结合)。视频序列的每个图像通常被划分为一组非重叠的块,并且通常在块级别上执行编解码。换言之,在编码器处,视频通常在块级别上处理(即,编码),例如,通过使用空间(图像内)预测和时间(图像间)预测来生成预测块,从当前块(当前处理/待处理的块)中减去预测块以获得残差块,对残差块进行变换并在变换域中对残差块进行量化以减少要发送的数据量(压缩),而在解码器处,相对于编码器的逆处理部分地应用于编码块或压缩块以重建当前块以用于表示。此外,编码器重复解码器的处理步骤,使得编码器和解码器都将生成相同的预测(例如,帧内预测和帧间预测)和/或重建样本,用于处理(即,编解码)后续块。
如本文所使用的,术语“块”可以指图像或帧的一部分。为了方便描述,本文参考由ITU-T视频编码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频编码联合协助小组(joint collaboration team on video coding,JCT-VC)开发的高效视频编码(HEVC)或通用视频编码(VVC)的参考软件来描述本公开的实施例。本领域普通技术人员将理解,本公开的实施例不限于HEVC或VVC。“块”可以指CU、PU、以及TU。在HEVC中,通过使用表示为编码树的四叉树结构将CTU分割为CU。在CU的级别做出是否使用图像间(时间)预测或图像内(空间)预测来对图像区域进行编解码的决策。根据PU分割类型,每个CU可以进一步被分割为一个、两个、或四个PU。在一个PU内,应用同一预测过程,并以PU为基础将相关信息传送到解码器。在通过应用基于PU分割类型的预测处理获得残差块之后,可以根据类似于CU的编码树的另一四叉树结构将CU划分为变换单元(TU)。在视频压缩技术的最新发展中,使用四叉树和二叉树(quad-tree and binary tree,QTBT)划分编码块。在QTBT块结构中,CU可以为正方形或矩形。例如,编码树单元(CTU)首先由四叉树结构划分。四叉树叶节点进一步由二叉树结构划分。二叉树叶节点称为编解码单元(CU),并且上述分割用于进行预测和变换处理,而不进行任何进一步的划分。这意味着CU、PU、以及TU在QTBT编码块结构中具有相同的块尺寸。同时,还提出了与QTBT块结构相结合的多重划分方法(例如,三叉树划分方法)。
ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)正在研究未来视频编解码技术标准化的潜在需求,所需的压缩能力显著超过当前HEVC标准(包括其针对屏幕内容编码和高动态范围编码的近期扩展和当前扩展)的压缩能力。这两个小组正在联合合作(称为联合视频探索小组(JVET))进行这一研究活动,以评估这两个小组在这一领域的专家所提出的压缩技术设计。
通用测试模型(VTM)使用35个帧内模式,而基准集(BMS)使用67个帧内模式。为了对67个帧内模式进行编解码,BMS中当前的帧内模式编解码方案使用以下方法:
为了适应BMS中方向帧内模式数量的增加,使用了具有6个最可能模式(MPM)的帧内模式编解码方法。涉及以下两个主要技术方面:
1)6个MPM的导出,以及
2)6个MPM和非MPM模式的熵编码。
在BMS中,包含在MPM列表中的模式被分为三组:相邻帧内模式、导出帧内模式、以及默认帧内模式。
使用五个相邻帧内预测模式来形成MPM列表。5个相邻块的那些位置与在合并模式中使用的那些位置相同,即,如图5所示的左(left,L)、上(above,A)、左下(below left,BL)、右上(above right,AR)、以及左上(above left,AL)。通过在MPM列表中插入5个相邻帧内模式、平面模式、以及DC模式来形成初始MPM列表。修剪过程(pruning process)用于移除重复的模式,从而包括在MPM列表中的模式都是唯一的。初始模式被包括的顺序为左、上、平面、DC、左下、右上、以及左上。
如果MPM列表未满(即在列表中具有少于6个MPM候选),则添加导出模式,这些帧内模式通过将MPM列表中已包括的角度模式-1或+1来获得。导出不适用于非角度模式,即DC模式或平面模式。
最后,如果MPM列表仍未完整,则按以下顺序添加默认模式:垂直、水平、帧内模式2、以及对角线模式。这一过程的结果是,生成了一个包含6种MPM模式的唯一列表。
对于6个MPM的熵编解码,使用了MPM的截断一元二值化(truncated unarybinarization)。前三个二元符号(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 GDA0002938426920000121
表1:BMS中的当前亮度帧内模式信令
在另一示例中,使用具有3个最可能模式(MPM)的帧内模式编解码方法。在示例中,语法元素intra_luma_mpm_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]、以及intra_luma_mpm_remainder[x0][y0]规定亮度样本的帧内预测模式。阵列索引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:
·以被设置为等于(xPb,yPb)的位置(xCurr,yCurr)和被设置为等于(xNbX,yNbX)相邻位置(xNbY,yNbY)作为输入来调用块的可用性导出过程,并且将输出分配给availableX。
·如下导出候选帧内预测模式candIntraPredModeX:
如果以下一个或多个条件为真,则candIntraPredModeX被设置为等于INTRA_DC:
ο变量availableX等于假。
ο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])(8-11)
·通过以下有序步骤导出IntraPredModeY[xPb][yPb]:
IntraPredModeY[xPb][yPb]被设置为等于intra_luma_mpm_remainder[xPb][yPb]。
对于i等于0到2(包括0和2),当IntraPredModeY[xPb][yPb]大于或等于candModeList[i]时,IntraPredModeY[xPb][yPb]的值递增1。
在本公开的一个方面中,提供了一种构建6条目MPM列表的简化方法,包括:(a)检查当前编解码单元的左块的可用性。左块的位置如图5所示,其中,左块由“L”标记。
如果不能从左块导出帧内预测信息(即,帧内预测模式),则左块不可用。这包括以下情况:
·左块不是帧内预测的块;
·左块不存在,例如,当前块是位于帧最左侧的编码块;
·如果编码器或解码器支持并行处理,则如果左块位于当前块的不同区块或与当前块不同的区块中,即当前编码块位于区块的最左侧,则可以认为左块不存在(或不可用)。
在另一示例中,如果编码器或解码器不支持并行处理,则如果左块位于当前块的不同区块中,即当前编码块位于区块的最左侧,则可以认为左块可用。
·如果编码器或解码器支持并行处理,则如果左块位于与当前块不同的切片中,即当前编码块位于切片的最左侧,则可以认为左块不存在。
在另一示例中,如果编码器或解码器不支持并行处理,则如果左块位于与当前块不同的切片中,即当前编码块位于切片的最左侧,则左块可能被认为可用。
否则(即,左块可用),(b)在6条目MPM列表中包括左块的帧内预测模式。
(c)检查当前编解码单元的上块的可用性。上块的位置如图5所示,其中,上块由“A”标记。
如果不能从上块导出帧内预测信息(即,帧内预测模式),则上块不可用。这包括以下情况:
·上块不是帧内预测的块。
·上块不存在。例如,当前块是位于帧最顶部的编码块。
·如果编码器或解码器支持并行处理,则如果顶部(即,上)块位于与当前块不同的区块中,即当前编码块位于区块的最顶部,则可以认为顶部(即,上)块不存在。
在另一示例中,如果编码器或解码器不支持并行处理,则如果顶部块位于与当前块不同的区块中,即当前编码块位于区块的最顶部,则可以认为顶部块可用。
·如果编码器或解码器支持并行处理,则如果顶部块位于与当前块不同的切片中,即当前编码块位于切片的最顶部,则可以认为顶部块不存在。
在另一示例中,如果编码器或解码器不支持并行处理,则如果顶部块位于与当前块不同的切片中,即当前编码块位于切片的最顶部,则可以认为顶部块可用。
如果需要在编码器或解码器中限制行缓冲器尺寸,则如果顶部块位于与当前块不同的CTU中,即当前编码块位于当前CTU的最顶部,则可以认为顶部块不存在。
在示例中,如果解码器侧或编码器侧支持行缓冲器限制,则认为位于与当前块的CTU不同的CTU的上块不存在。如果不支持行缓冲器限制,则认为上块存在。
否则(即,上块可用),(d)在6条目MPM列表中包括顶部(即,上)块的帧内预测模式。
(e)检查平面(PLANAR_IDX=0)模式是否已插入到MPM列表中(即,检查左块或顶部块的帧内模式是否为平面模式),只有当平面模式未插入到MPM列表中时,才将平面模式插入到MPM列表中。(f)检查DC(DC_IDX=1)模式是否已插入到MPM列表中(即,检查左块或顶部块的帧内模式是否为DC模式),只有当DC模式未插入到MPM列表中时,才将DC模式插入到MPM列表中。
(g)如果左块可用并且如果左块的帧内预测模式为角度模式,即(模式>DC_IDX,并且该模式为angularLeft),则通过执行angularLeft-1、angularLeft+1来获得最靠近的两个角度模式。注意,当执行-1或+1时,这可能涉及向上叠加(wrap up)操作和向下叠加(wrapdown)操作,例如,
如果angularLeft为2,则angularLeft-1将为66(向上叠加情况),或者如果angularLeft为66,则angularLeft+1将为2(向下叠加情况)。
(h)如果angularLeft-1的预测模式尚未插入到MPM列表中,则将其(angularLeft-1)插入到MPM列表中。
(i)如果angularLeft+1的预测模式尚未插入到MPM列表中,则将其(angularLeft+1)插入到MPM列表中。
(j)如果MPM列表未满,如果上块可用,以及如果其(上块的)帧内预测模式为角度模式(即,模式>DC_IDX,并且该模式为angularAbove),则通过执行angularAbove-1、angularAbove+1来获得最靠近的两个角度模式。注意,当执行-1或+1时,这可能涉及向上叠加操作和向下叠加操作,在示例中,如果angularAbove为2,则angularAbove-1将为66(向上叠加情况),或者如果angularAbove为66,则angularAbove+1将为2(向下叠加情况)。
(k)如果angularAbove-1的预测模式尚未插入到MPM列表中,则将其(angularAbove-1)插入到MPM列表中。
(l)如果MPM列表未满(例如,如果MPM列表中的预测模式的数量小于6),并且如果angularAbove+1的预测模式尚未插入到MPM列表中,则将其(angularAbove+1)插入到MPM列表中。
(m)如果MPM列表未满,则将以下模式插入到MPM列表中,直到MPM列表满为止(例如,MPM列表中预测模式的数量等于6):
·垂直模式(VER_IDX),
·水平模式(HOR_IDX),
·帧内模式2(2),
·垂直对角线模式(VDIA_IDX)或对角线模式(DIA_IDX)。
在所描述的方法中,MPM列表是有限长度的列表。例如,列表的长度(即,条目的数量)可以是预定的。例如,MPM列表的条目数量可以为6。然而,MPM列表不限于6个条目,并且可以包括另一数量的条目。
下面,描述了所提供的方法的变型的概要:
左块的可用性应同时考虑支持或不支持并行处理。
上块的可用性应同时考虑支持或不支持并行处理。
导出左块和上块的两个最靠近的模式的顺序也可以是先+1后-1。即,可以首先通过将相应的模式索引加1,然后通过从相应的模式索引中减1来确定左块和上块的最靠近的模式。
例如,如图9所示,MPM列表的最后一个候选可以是VIDA_IDX或DIA_IDX。
插入顺序也可以是左、上、平面、DC、以及默认模式(VER_IDX、HOR_IDX、2、VDIA_IDX、或DIA_IDX)。
对于mpm_idx的信令,使用了截断一元二值化。允许mpm_idx的前三个bin使用三个不同的独立的上下文,或者mpm_idx的所有bin都是CABAC by pass编码的。
在本申请的一个实施方式中,根据图6,本申请公开了一种视频解码方法,包括:
S801:对图像块的编码数据进行解码,以从用于图像块的多个帧内预测模式中获得帧内预测模式;用于图像块的多个帧内预测模式包括一组最可能模式(MPM)以及一组非MPM,其中,该组非MPM包括第一组帧内预测模式和第二组帧内预测模式,其中,第一组帧内预测模式中的模式使用N个比特进行编码,并且第二组帧内预测模式中的模式使用M个比特进行编码,N和M是正整数并且N小于M。
换言之,在步骤S801中,从解码的图像块数据中检索关于当前图像块的帧内预测模式的信息。全部帧内预测模式被分为一组最可能模式(MPM)、第一组帧内预测模式、以及第二组帧内预测模式。例如,可以根据以上描述的方法之一来确定该组MPM。如果用于当前块的帧内预测模式包括在第一组帧内预测模式中,则使用比用于图像块的帧内预测模式包括在第二组预测模式中的情况更少的比特来对该帧内预测模式进行编码。
步骤S801的细节在图中示出,并在下文中描述为步骤S802至步骤S805。
对图像块的编码数据进行解码以从用于图像块的多个帧内预测模式中获得帧内预测模式(S801)包括:
S802:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在该组MPM中的指示。如上面参考表1中的MPM标志所描述的,可以使用标志来指示帧内预测模式是否包括在该组MPM中。如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则进行到步骤S803。
S803:生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系。在示例中,在步骤S803中,确定第一组帧内预测模式内的帧内预测模式与第二组帧内预测模式中包括的帧内预测模式之间的一一对应关系。
S804:对编码数据进行解码以获得用于图像块的帧内预测模式码字。即,在步骤S804中,对编码数据进行解码,并获得指示帧内预测模式的码字。
S805:根据上述映射关系和上述帧内预测模式码字获得用于图像块的帧内预测模式。例如,在对应于码字的帧内预测模式包括在第一组帧内预测模式中的情况下,将包括在第二组模式中的相关联的帧内预测模式确定为用于图像块的帧内预测模式。另一方面,在对应于码字的帧内预测模式包括在第二组帧内预测模式中并且对应于码字的帧内预测模式存在映射关系的情况下,根据该映射关系将与对应于码字的帧内预测模式相关联的帧内预测模式确定为用于图像块的帧内预测模式。此外,在对应于码字的帧内预测模式包括在第二组帧内预测模式中并且对应于码字的帧内预测模式不存在映射关系的情况下,将对应于码字的帧内预测模式确定为用于图像块的帧内预测模式。
根据本申请的视频解码方法,可以使用截断二值化方案来对该组非MPM中的预测模式进行编码,并且生成映射关系,因此用于当前块的预测模式更可能使用较少的比特进行编码,并且降低了解码器侧的计算复杂度。
换言之,通过生成映射关系,可以使用较少的比特进行编码的模式被映射到较可能的模式,使得能够减少编码数据的数据量。
在本申请的一个实施方式中,根据图7,本申请公开了一种视频解码方法,包括:
S901:接收图像块的编码数据。
解码器侧可以用于经由编码器侧和解码器侧之间的直接通信链路(例如,直接有线或无线连接),或者经由任何种类的网络(例如有线网络或无线网络或其任何组合、或任何种类的专用网络或公用网络或其任何组合)来接收编码图像数据。
S902:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在一组MPM中的指示。
指示用于图像块的帧内预测模式是否在该组MPM中的指示可以是标志,当标志的值为1时,可以指示用于图像块的帧内预测模式在该组MPM中,当标志的值为0时,可以指示用于图像块的帧内预测模式不在该组MPM中。例如,在编码器侧,如果MPM列表(一组MPM)是一组帧内模式,例如[25,42,63],并且当前块的帧内模式值为42,则因为在MPM列表的第二条目处找到当前块的帧内模式,所以MPM标志指示符被设置为1。例如,如果当前块的帧内模式值为41而不是42,则MPM标志指示符被设置为0,MPM标志在编码数据中被发送到解码器侧。
如果上述指示指示用于图像块的帧内预测模式在该组MPM中,则执行步骤S903。
如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则执行步骤S904。
S903:根据该组MPM对编码数据进行解码,以获得用于图像块的帧内预测模式。即,根据指示MPM列表内的帧内预测模式的解码指示来确定包括在MPM中的用于图像块的帧内预测模式。
在一个示例中,如果上述指示指示用于图像块的帧内预测模式在该组MPM中,如下定义用于图像块的帧内预测模式(IntraPredModeY[xPb][yPb])的导出过程:
如果intra_luma_mpm_flag[xPb][yPb]等于1(其指示用于图像块的帧内预测模式在该组MPM中),则IntraPredModeY[xPb][yPb]被设置为等于candModeList[intra_luma_mpm_idx[xPb][yPb]],其中,(xPb,yPb)规定当前亮度预测块相对于当前图像左上亮度样本的左上样本,candModeList为实际的MPM列表,对编码数据进行解码以获得MPM索引,根据MPM索引和MPM列表获得用于图像块的帧内预测模式。
在特定示例中,该组MPM为(15,0,20),MPM索引的值为2,因此用于图像块的帧内预测模式是平面模式(值0)。在另一特定示例中,该组MPM为(15,36,0,1,21,19),MPM索引的值为5,因此用于图像块的帧内预测模式是角度模式21。MPM索引指示用于图像块的帧内预测模式在一组MPM内的位置。
S904:生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系。在示例中,在步骤S904中,在解码数据指示帧内预测模式不在该组MPM内的情况下,生成第一组帧内预测模式中包括的帧内预测模式与第二组帧内预测模式中包括的帧内预测模式之间的一一对应关系。
在示例中,如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则构建两个列表:即,码字列表和导出模式列表。
码字列表和导出模式列表可以是有限长度的列表。换言之,码字列表和导出模式列表各自具有有限数量的条目。此外,码字列表和导出模式列表可以包括同一数量的条目。码字列表的长度和导出模式列表的长度可以是预定的。
例如,如下构建第一码字列表:
1.在MPM列表中找到最小模式,假设最小模式为Ms。
2.设置初始增量变量Inc=1。
3.将候选模式Mc设置为(Ms+Inc),检查模式Mc是否也在MPM列表中。
如果Mc不在MPM列表中,则将Mc添加到码字列表中
否则,转到步骤4
4.检查码字列表中插入的条目是否已满(插入的长度等于码字列表的长度):否则,如果已满,则终止;
否则,设置Inc=Inc+1,并且转到步骤3。
总之,码字列表将包含除了在MPM列表中已经出现的模式之外的最小模式。给定MPM列表的长度为L,则码字列表的长度为64-(67-L)=L-3。例如,如果MPM列表为(15,36,0,1,21,19),则构建的码字为(2,3,4)。
本公开不限于所描述的确定码字列表的条目的特定方法。可以通过应用不同的方法来确定码字列表的条目。例如,可以根据帧内预测模式的预定序列来填充码字列表,其中,码字列表不包括该组MPM中已经包括的帧内预测模式。
如下构建第二导出模式列表:
1.在MPM列表中找到前两个角度模式,假设找到的角度模式为angular0和angular1。
2.设置初始增量变量Inc=1。
3.导出新模式M0minus=angular0-Inc。注意,应保证M0minus也为角度模式(即,66>=M0minus>=2)。因此,如果angular0等于2,Inc为1;则导出的M0minus将为66;如果Inc为2,则M0minus将为65,以此类推。该减去操作将向上叠加到最大角度模式。
4.检查M0minus是否在MPM列表中,如果不在MPM列表中并且导出模式列表未满,则将M0minus插入到导出模式列表。
如果导出模式列表已满,则终止。
否则,转到步骤5。
5.导出新模式M0plus=angular0+Inc。注意,应保证M0plus也为角度模式(即,66>=M0plus>=2)。因此,如果angular0等于66,Inc为1,则导出的M0plus将为2,如果Inc为2,则M0plus将为3,以此类推。该相加操作将向下叠加到最小角度模式。
6.检查M0plus是否在MPM列表中,如果不在MPM列表中并且导出模式列表未满,则将M0plus插入到导出模式列表。否则,
如果导出模式列表已满,则终止。
否则,转到步骤7。
7.通过将angular0替换为angular1重复步骤3至步骤6
8.设置Inc=Inc+1,并且重复步骤3至步骤7
总之,导出模式列表获得MPM列表中的前两个角度模式的相邻模式。如果MPM列表中已经包含这些相邻模式,那么从导出模式列表中排除这些相邻模式。给定MPM列表的长度为L,则导出模式列表的长度为64-(67-L)=L-3。例如,如果MPM列表为(15,36,0,1,21,19),则构建的导出模式列表为(14,16,35)。
本公开不限于所描述的确定导出列表的条目的特定方法。可以通过应用不同的方法来确定导出列表的条目。例如,可以根据帧内预测模式的预定序列来填充导出列表,其中,导出列表不包括该组MPM中已经包括的帧内预测模式。
上述增量值Inc不限于等于1,可以使用不同的增量值。
当构建了码字列表和导出模式列表时,建立了码字列表和导出模式列表之间的双向映射关系。即,给定上述示例码字列表(2,3,4)和示例导出模式列表(14,16,35),则双向映射关系将为2←→14、3←→16、以及3←→35,其中,←→表示双向映射。
构建码字列表和导出列表之间的双向映射关系有两个选项。第一个选项是,以允许元素同时存在于导出模式列表和码字列表中的方式构建导出模式列表。另一选项是不允许导出模式列表与码字列表中的模式重叠。
在另一示例中,给定MPM列表为(2,15,0,1,66,3),码字列表为(4,5,6),如果映射关系允许重叠,则导出模式列表为(65,4,14),在对齐后将为(4,65,14);如果映射关系不允许重叠,则导出模式列表为(65,14,16),在这种情况下,因为从2+2导出的模式4已经包括在码字列表中,所以模式4被排除。
即,在导出模式列表和码字列表不允许重叠的情况下,当构建导出模式列表时,进一步检查帧内预测模式是否已经在码字列表中。如果该帧内预测模式已经在码字列表中,则该帧内预测模式不包括在导出模式列表中。
此外,在导出模式列表和码字列表允许重叠的情况下,当生成双向映射时,码字列表和导出模式列表中都包括的帧内预测模式彼此映射。这可以通过重新排列码字列表和/或导出模式列表来实现。
在另一示例中,在本申请的一个实施方式中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中落入每个帧内预测模式类别内的帧内预测模式的数量和/或方向来对多个帧内预测模式类别进行排序;以及根据排序最高的帧内预测模式类别生成映射关系。
在示例中,提供了5个角度帧内预测模式类别,即垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。例如,最可能模式列表的角度帧内预测模式落入每个角度帧内预测模式类别内对应于:将最可能模式列表中的每个角度帧内预测模式关联到与最可能模式列表中的对应角度帧内预测模式最接近的角度帧内预测模式类别。换言之,可以确定根据类别的帧内预测模式中的哪一个最接近于MPM列表中包括的帧内预测模式。接近于该帧内预测模式类别(大多数MPM所接近的帧内预测模式类别)的帧内预测模式可以被确定为用于映射的帧内预测模式。在另一示例中,对排序次高的角度帧内预测模式类别重复该步骤。
在示例中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据将偏移量添加到对应于该组MPM的多个值来生成初始的一组帧内预测模式;对该组MPM进行分类以获得排序最高的帧内预测模式类别;根据排序最高的帧内预测模式类别和该初始的一组帧内预测模式来生成映射关系。
在示例中,根据将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM的多个值来生成该初始的一组帧内预测模式。
在示例中,根据预定的默认模式列表生成上述映射关系,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
S905:对编码数据进行解码以获得用于图像块的帧内预测模式码字;
在编码侧使用N个比特或M个比特对该码字进行编码。在示例中,因为是双向映射关系,所以对应于码字的帧内预测模式可以被映射到该组非MPM中的另一帧内预测模式。
S906:根据映射关系和帧内预测模式码字获得用于图像块的帧内预测模式。
在示例中,在建立双向映射关系之后,检查帧内预测模式码字对应的帧内预测模式是否在码字列表或导出模式列表中:
如果解析的帧内预测模式既不在码字列表中,也不在导出模式列表中,则将最终的预测模式设置为解析的帧内预测模式。
如果解析的帧内预测模式仅在码字列表中或仅在导出模式列表中,则将最终的预测模式设置为解析的帧内预测模式对应的映射的帧内预测模式。
如果解析的帧内预测模式同时存在于码字列表和导出模式列表中,则在建立这两个列表时引入一种机制,使得调整双向映射关系,并且使重叠的模式被映射到另一模式列表中的自身模式。例如:MPM列表为(0 1 2 3 50 66),码字列表为(4 5 6),导出模式列表为(4 65 5)。在构建导出模式列表或码字列表时,确保4←→4、5←→5、以及6←→65。
总之,使用这种方法,在图像块的帧内预测模式在该组MPM中的情况下,这例如被指示为接收到的数据中的标志。随后,根据MPM索引和该组MPM来确定帧内预测模式。另一方面,如果该帧内预测模式不在该组MPM中,则生成第一组帧内预测模式中的帧内预测模式与第二组帧内预测模式中的帧内预测模式之间的一一对应关系。如果上述模式之间的对应关系指示了所确定的帧内预测模式的映射,则将映射的帧内预测模式设置为图像块的帧内预测模式。
因为第一组帧内预测模式可以包括可以用编码数据内的有限数量的比特指示的帧内预测模式,并且导出模式可以包括更可能的帧内预测模式,因此可以使用第一组帧内预测模式中包括的帧内预测模式的指示的有限数量的比特来发送可能模式的指示。由于生成的映射关系,由解码器确定用于图像块的预期帧内预测模式。
换言之,更可能的帧内预测模式的指示被映射到需要较少比特进行编码的帧内预测模式的指示。因此,可以减少要发送的数据量。
还提供了一种解码器,该解码器包括用于执行上述方法的处理电路。
在本公开中,公开了一种用于执行上述方法的包括程序代码的计算机程序产品。
在本公开中,公开了一种用于对视频数据进行解码的解码器,该解码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储用于由处理器执行的程序,其中,当由处理器执行时,该程序配置解码器以执行上述方法。
在本公开中,提供了一种视频解码方法和视频解码器。该视频解码方法包括:接收编解码单元的图像块的编码数据;对编码数据进行解码以从用于图像块的多个帧内预测模式中识别帧内预测模式,上述多个帧内预测模式包括一组最可能模式(MPM)、第一组帧内预测模式、以及第二组帧内预测模式,其中,第一组帧内预测模式中的一个模式使用N个比特进行编码,第二组帧内预测模式中的一个模式使用M个比特进行编码,N和M为正整数并且N小于M,该方法包括:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在该组MPM中的指示;如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,
则获得用于图像块的帧内预测模式码字,该帧内预测模式码字对应于初始帧内预测模式;
如果用于图像块的帧内预测模式码字是使用N个比特进行编码的,则对初始帧内预测模式进行映射以获得映射的帧内预测模式,使用映射的帧内预测模式作为识别的用于图像块的帧内预测模式;
如果用于图像块的帧内预测模式码字是使用M个比特进行编码的,则使用初始帧内预测模式作为识别的用于图像块的帧内预测模式。
在本申请的一个实施方式中,用于图像块的多个帧内预测模式的数量为67,67个帧内预测模式中的多个帧内预测模式包括:平面模式(值0)、DC模式(值1)、以及索引为2至66的角度模式。
在示例中,该组MPM的数量为6,第一组帧内预测模式的数量为3,并且第二组帧内预测模式的数量为58。然而,该组MPM的数量不限于6,并且可以是任何其他数量。此外,第一组帧内预测模式的数量不限于3,并且可以是任何其他数量。此外,用于图像块的帧内预测模式的数量不限于67,而是可以是任何其他数量。
在本申请的一个实施方式中,第一组帧内预测模式中的每个模式使用N个比特进行编码,第二组帧内预测模式中的每个模式使用M个比特进行编码。
在一个示例中,第一组帧内预测模式中的帧内预测模式使用截断二值化方案进行编码,第一组帧内预测模式中的至少一个模式使用N个比特进行编码,并且第一组帧内预测模式中的至少一个模式使用少于N个比特进行编码。
在一个示例中,指示用于图像块的帧内预测模式是否在该组MPM中的上述指示是标志,当标志的值为1时,可以指示用于图像块的帧内预测模式在该组MPM中,当标志的值为0时,可以指示用于图像块的帧内预测模式不在该组MPM中。
在示例中,指示用于图像块的帧内预测模式是否在该组MPM中的上述指示是标志,当标志的值为1时,可以指示用于图像块的帧内预测模式在该组MPM中,当标志的值为0时,可以指示用于图像块的帧内预测模式不在该组MPM中。例如,在解码器侧,如果MPM列表是一组帧内模式,例如[20,40,60],并且当前块的帧内模式值为40,则因为在MPM列表的第二条目处找到当前块的帧内模式,所以MPM标志指示符被设置为1。如果例如当前块的帧内模式值为41而不是40,则MPM标志指示符被设置为0。
在一个示例中,如果上述指示指示用于图像块的帧内预测模式在该组MPM中,如下定义导出过程:通过应用以下过程导出IntraPredModeY[xPb][yPb]:如果intra_luma_mpm_flag[xPb][yPb]等于1,则IntraPredModeY[xPb][yPb]被设置为等于candModeList[intra_luma_mpm_idx[xPb][yPb]],其中,(xPb,yPb)规定当前亮度预测块相对于当前图像左上亮度样本的左上样本,并且candModeList为实际的MPM列表。例如,对编码数据进行解码以获得MPM索引,根据MPM索引和该组MPM获得用于图像块的帧内预测模式。在特定示例中,该组MPM为(15,0,20),MPM索引的值为2,因此用于图像块的帧内预测模式为平面模式(值0)。在另一特定示例中,该组MPM为(15,36,0,1,21,19),MPM索引的值为5,因此用于图像块的帧内预测模式是角度模式21。
在一个示例中,对编码数据进行解码以获得用于图像块的帧内预测模式码字。如果用于图像块的帧内预测模式码字是使用M个比特进行编码的,则使用初始帧内预测模式作为识别的用于图像块的帧内预测模式。例如,如果帧内预测模式码字被编码为010011(例如,6个比特),则M为6,其对应于角度模式19,因此,识别的用于图像块的帧内预测模式为角度模式19。
在本申请的一个实施方式中,如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则构建两个列表:即,码字列表和导出模式列表。
如下构建第一码字列表:
1.在MPM列表中找到最小模式,假设最小模式为Ms。
2.设置初始增量变量Inc=1。
3.将候选模式Mc设置为(Ms+Inc),检查模式Mc是否也在MPM列表中。
如果Mc不在MPM列表中,则将Mc添加到码字列表中
否则,转到步骤4
4.检查码字列表中插入的条目是否已满(插入的长度等于码字列表的长度):
如果已满,则终止;
否则,设置Inc=Inc+1,并且转到步骤3。
总之,码字列表将包含除了在MPM列表中已经出现的模式之外的最小模式。给定MPM列表的长度为L,则码字列表的长度为64-(67-L)=L-3。例如,如果MPM列表为(15,36,0,1,21,19),则构建的码字为(2,3,4)。
如下构建第二导出模式列表:
1.在MPM列表中找到前两个角度模式,假设找到的角度模式为angular0和angular1。
2.设置初始增量变量Inc=1。
3.导出新模式M0minus=angular0-Inc。注意,应保证M0minus也为角度模式(即,66>=M0minus>=2)。因此,如果angular0等于2,Inc为1;则导出的M0minus将为66;如果Inc为2,则M0minus将为65,以此类推。该减去操作将向上叠加到最大角度模式。
4.检查M0minus是否在MPM列表中,如果不在MPM列表中并且导出模式列表未满,则将M0minus插入到导出模式列表。否则,
如果导出模式列表已满,则终止。
否则,转到步骤5。
5.导出新模式M0plus=angular0+Inc。注意,应保证M0plus也为角度模式(即,66>=M0plus>=2)。因此,如果angular0等于66,Inc为1,则导出的M0plus将为2,如果Inc为2,则M0plus将为3,以此类推。该相加操作将向下叠加到最小角度模式。
6.检查M0plus是否在MPM列表中,如果不在MPM列表中并且导出模式列表未满,则将M0plus插入到导出模式列表。否则,
如果导出模式列表已满,则终止。
否则,转到步骤7。
7.通过将angular0替换为angular1重复步骤3至步骤6;
8.设置Inc=Inc+1,并且重复步骤3至步骤7。
总之,导出模式列表获得MPM列表中的前两个角度模式的相邻模式。如果MPM列表中已经包含这些相邻模式,那么从导出模式列表中排除这些相邻模式。给定MPM列表的长度为L,则导出模式列表的长度为64-(67-L)=L-3。例如,如果MPM列表为(15,36,0,1,21,19),则构建的导出模式列表为(14,16,35)。
当构建了码字列表和导出模式列表时,建立码字列表和导出模式列表之间的双向映射关系。即,给定上述示例码字列表(2,3,4)和示例导出模式列表(14,16,35),则2←→14、3←→16、以及3←→35,其中,←→表示双向映射。
在建立双向映射关系之后,检查接收到的帧内预测模式是否在码字列表或导出模式列表中:
如果解析的帧内预测模式既不在码字列表中,也不在导出模式列表中,则将最终的预测模式设置为解析的帧内预测模式。
如果解析的帧内预测模式仅在码字列表中或仅在导出模式列表中,则将最终的预测模式设置为解析的帧内预测模式对应的映射的帧内预测模式。
如果解析的帧内预测模式同时存在于码字列表和导出模式列表中,则在建立这两个列表时引入一种机制,使得调整双向映射关系,并且使所有重叠的模式被映射到另一模式列表中的这些重叠模式。例如:MPM列表为(0 1 2 3 50 66),码字列表为(4 5 6),导出模式列表为(4 65 5)。在构建导出模式列表或码字列表时,确保4←→4、5←→5、以及6←→65。
在本申请的一个实施方式中,根据对编码数据进行解码来提供用于图像块的帧内预测模式码字。如果用于图像块的帧内预测模式码字是使用N个比特进行编码的,则对初始帧内预测模式进行映射以获得映射的帧内预测模式,使用映射的帧内预测模式作为识别的用于图像块的帧内预测模式。例如,如果帧内预测模式码字被编码为00011(例如,5个比特),则N为5,其对应于角度模式3,则在该示例中,初始帧内预测模式为角度模式3,映射的帧内预测模式可以是DC模式(预定义值1)或角度模式47;在另一示例中,映射的帧内预测模式可以与初始预测模式相同,例如,映射的帧内预测模式也为角度模式3。
在示例中,提供了具有6个MPM和剩余的61个模式的帧内模式信令方案,其中,使用截断二值化方案对剩余的61个模式进行编码。也可以使用6位定长码对剩余的61个帧内模式进行编码,但是使用6位定长码的缺点是:在64个可能的码字中,仅使用61个码字,并且未使用3个剩余码字。代替定长码,提出了截断二值化,截断二值化将只使用5个比特来信令通知前三个剩余模式,然后使用6个比特来对剩余的58个模式进行编码。
与发送较大码字相比,截断二值化允许使用较少的比特来发送较小码字。例如,如图4所示,通常使用5个比特来信令通知从“帧内模式2、3、4…”开始的水平模式。因此,为了高效地信令通知剩余模式(非MPM模式),前几个非MPM码字被映射到更可能的导出模式。例如,假设MPM列表大小为6,并且MPM列表中包括的帧内模式为[18,30,0,1,66,24],则非MPM中只需要5个比特来进行信令通知的前三个模式为模式[2,3,4]。假设模式[2,3,4]被命名为“码字帧内模式(code word intra mode)”。由于模式2、3、4并不总是可能性较高的模式,所以这些模式被映射以表示更可能的三个其他帧内模式。例如,假设在MPM中的6个最可能模式之后,更可能的三个其他模式为模式号[19,17,21]。假设模式[19,17,21]被命名为“导出的非MPM模式(derived non-MPM mode)”。则确保模式19、17、21仅消耗5个比特的一种简单方法是将帧内模式[2,3,4]与帧内模式[19,17,21]映射。通常,编码器进行映射并使用帧内模式2信令通知帧内模式19,然后,解码器进行反映射并将使用帧内模式19映射帧内模式2。此外,与通过使用列表并信令通知列表的索引来信令通知非MPM模式相比,这种简单的映射减少了用于信令通知非MPM模式的修剪过程的数量。在特殊情况下,如果“导出的非MPM模式”和具有最小码字的“码字帧内模式”有重叠,则确保将两个列表中的公共帧内模式映射到一起。例如,如果“码字帧内模式”为[2,3,4]并且“导出的非MPM模式”列表为[2,4,17],则帧内模式2被映射到帧内模式2,模式3被映射到模式17,模式4被映射到模式4。
在另一示例中,提供了若干解决方案以填充剩余模式列表的前三个模式。
第一,通过使用预定的默认模式列表中的模式来填充剩余模式列表的前三个模式,预定的默认模式列表中的模式为{平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)}(括号中的术语示出了图4中的对应术语,下面提出关于图4的进一步细节);
第二.通过使用MPM列表中已存在的角度模式的偏移模式来填充剩余模式列表的前三个模式。在本文中,偏移量可以是+/-N,其中,N是一个可能的整数值,其值为{1,2,3,4}。上述偏移量只能添加到MPM列表中的前两个角度模式。此外,上述偏移量不限于值{1,2,3,4},并且可以是任何其他整数值。
第三,非邻接相邻块的帧内模式也可以用来填充这三个模式。如图8所示,可以使用第二级相邻帧内模式。
换言之,与当前块的相邻块邻接的块的帧内预测模式可以包括在第一组帧内模式中。
第四,如图9所示,在第一步骤中,从MPM列表中取一个给定的模式,并检查该模式是否“靠近”以下模式类别{DC_IDX,HOR_IDX,DIA_IDX,VER_IDX,VDIA_IDX}之一,在第二步骤中,基于接近于该模式类别的“大多数”模式来对模式类别“进行排序”。在第三步骤中,通过插入靠近步骤2的获胜模式类别(winning mode category,也称为排序最高的模式类别)来生成剩余模式列表。术语“靠近(nearby)”可以指MPM列表中的模式到上述模式类别之一的最大距离。此外,MPM列表中的帧内模式可以被认为是靠近在到所有模式类别的距离中具有最小距离的模式类别。在角度模式的情况下,可以根据模式索引号或角度差来确定距离。
图9示出了67个帧内预测模式的示例,例如,如针对VVC所提出的,67个帧内预测模式的多个帧内预测模式包括:平面模式(索引0)、DC模式(索引1)、以及索引为2至66的角度模式,其中,图9中的左下角度模式指的是索引2,并且索引的编号递增,直到索引66是图9中的最右上角度模式。
如果大多数MPM模式靠近模式类别VER_IDX,则可以将该类别周围的模式插入到第一组模式中。例如,可以添加该模式类别+/-1的偏移模式。该偏移量不限于+/-1,可以是任何数字。
下面描述适用于实现所公开的实施例的网络设备。该网络设备包括用于接收数据的入口端口和接收器单元(Rx);用于处理数据的处理器、逻辑单元、或中央处理单元(central processing unit,CPU);用于发送数据的发射器单元(Tx)和出口端口;以及用于存储数据的存储器。该网络设备还可以包括耦合到入口端口、接收器单元、发射器单元、以及出口端口的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于输出或输入光信号或电信号。
上述处理器由硬件和软件实现。处理器可以被实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以及数字信号处理器(DSP)。处理器与入口端口、接收器单元、发射器单元、出口端口、以及存储器进行通信。处理器包括编解码模块。该编解码模块实现上述公开的实施例。例如,编解码模块实现、处理、准备、或提供各种网络功能。因此,包括编解码模块对网络设备的功能提供了实质性改进,并且实现了网络设备到不同状态的转换。或者,编解码模块被实现为存储在存储器中并由处理器执行的指令。
上述存储器包括一个或多个磁盘、磁带驱动器、以及固态驱动器,并且可以用作溢出(over-flow)数据存储设备,以在选择程序执行时存储这些程序,并且存储在程序执行期间读取的指令和数据。存储器可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容可寻址存储器(ternary content-addressable memory,TCAM)、和/或静态随机存取存储器(static random-access memory,SRAM)。
图10是可以用于实现各种实施例的装置1500的框图。装置1500可以是如图1所示的源设备12、或如图2所示的视频编码器20、或如图1所示的目的地设备14、或如图3所示的视频解码器30。另外,装置1500可以托管上述单元中的一个或多个单元。在一些实施例中,装置1500配备有一个或多个输入/输出设备,例如扬声器、麦克风、鼠标、触摸屏、小键盘、键盘、打印机、显示器等。装置1500可以包括连接到总线的一个或多个中央处理单元(CPU)1510、存储器1520、大容量存储器1530、视频适配器1540、以及I/O接口1560。总线是包括存储器总线或存储器控制器、外围总线、视频总线等的任何类型的若干总线架构中的一个或多个。
CPU 1510可以具有任何类型的电子数据处理器。存储器1520可以具有(或是)任何类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(dynamicrandom access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(ROM)、或这些存储器的组合等。在实施例中,存储器1520可以包括在启动时使用的ROM和在执行程序时使用的用于存储程序和数据的DRAM。在实施例中,存储器1520是非暂时性的。大容量存储器1530包括存储数据、程序、以及其他信息并且使这些信息可以经由总线访问的任何类型的存储设备。大容量存储器1530包括例如以下中的一个或多个:固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等。
视频适配器1540和I/O接口1560提供接口以将外部的输入设备和输出设备耦合到装置1500。例如,装置1500可以向客户端提供SQL命令接口。如图所示,输入设备和输出设备的示例包括耦合到视频适配器1540的显示器1590和耦合到I/O接口1560的鼠标/键盘/打印机1570的任何组合。其他设备可以耦合到装置1500,并且可以使用更多或更少的接口卡。例如,可以使用串行接口卡(未示出)为打印机提供串行接口。
装置1500还包括一个或多个网络接口1550,该网络接口1550包括到接入节点或一个或多个网络1580的有线链路(例如以太网电缆等)和/或无线链路。网络接口1550允许装置1500经由网络1580与远程单元进行通信。例如,网络接口1550可以提供到数据库的通信。在实施例中,装置1500耦合到局域网或广域网以进行数据处理和与远程设备(例如其他处理单元、互联网、远程存储设施等)进行通信。
为了计算预测给定块内的像素所需的加权系数的值,引入了分段线性逼近(piecewise linear approximation)。一方面,与直接的加权系数计算相比,分段线性逼近显著地降低了距离加权预测机制的计算复杂度,并且另一方面,与现有技术的简化相比,分段线性逼近有助于实现加权系数值的高精度。
实施例可以应用于其他双向帧内预测技术和基于位置的帧内预测技术(例如,PDPC的不同修改),也可以应用于使用基于从一个像素到另一像素的距离的加权系数来混合图像的不同部分的机制(例如,图像处理中的一些混合方法)。
实施例包括例如一种装置,该装置用于基于最可能模式(MPM)列表和具有第一部分和第二部分的剩余模式列表来确定所采用的帧内预测模式,其中,所采用的帧内预测模式是多个帧内预测模式中的一个帧内预测模式,上述多个帧内预测模式包括用于预测当前图像块的样本值的多个角度帧内预测模式,其中,该装置包括处理电路,该处理电路用于:通过包括基于上述最可能模式列表确定的一个或多个角度帧内预测模式来生成上述剩余模式列表的第一部分,使得剩余模式列表的第一部分的一个或多个角度帧内预测模式接近于上述最可能模式列表的对应角度帧内预测模式;以及用于在所采用的帧内预测模式是剩余模式列表的第一部分的一部分的情况下,使用比在所采用的帧内预测模式是剩余模式列表的第二部分的一部分的情况下更少的比特来确定所采用的帧内预测模式(例如,这些比特用于对所采用的帧内预测模式进行编码或解码)。
在示例中,其中,上述处理电路用于通过以下生成剩余模式列表的第一部分:根据最可能模式列表中落入每个角度帧内预测模式类别内的角度帧内预测模式的数量和/或方向来对多个角度帧内预测模式类别进行排序;以及通过包括来自剩余模式列表中排序最高的角度帧内预测模式类别的一个或多个角度帧内预测模式来生成剩余模式列表的第一部分。
实施例包括例如5个角度帧内预测模式类别,即垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX),其中,最可能模式列表中的角度帧内预测模式落入每个角度帧内预测模式类别内对应于:将最可能模式列表中的每个角度帧内预测模式关联到与最可能模式列表中的对应角度帧内预测模式最接近的角度帧内预测模式类别。
在示例中,上述处理电路还用于通过对排序次高的角度帧内预测模式类别重复上述步骤来完成剩余模式列表的第一部分。
在示例中,每个帧内预测模式由帧内预测模式索引标识,并且上述处理电路用于:基于与水平方向、垂直方向、以及一个或多个对角线方向相关联的相应角度帧内预测模式来定义多个角度帧内预测模式类别。
在示例中,每个帧内预测模式由帧内预测模式索引标识,并且上述处理电路用于:通过在剩余模式列表的第一部分中包括一个或多个角度帧内预测模式来生成剩余模式列表的第一部分,上述一个或多个角度帧内预测模式的相应帧内预测模式索引相对于最可能模式列表的角度帧内预测模式的帧内预测模式索引具有偏移量+1、-1、+2、-2、+3、-3、+4、或-4。
在示例中,最可能模式列表的每个列表元素由最可能模式索引标识,并且上述处理电路用于:通过在剩余模式列表的第一部分中包括一个或多个角度帧内预测模式来生成剩余模式列表的第一部分,上述一个或多个角度帧内预测模式的相应帧内预测模式索引相对于最可能模式列表的角度帧内预测模式的帧内预测模式索引具有偏移量+1、-1、+2、-2、+3、-3、+4、或-4。
在示例中,上述处理电路用于:通过基于处理循环在剩余模式列表的第一部分中包括一个或多个角度帧内预测模式来生成剩余模式列表的第一部分,该处理循环从相对于最可能模式列表的角度帧内预测模式的帧内预测模式索引的偏移量+1开始,该偏移量在处理循环的每一轮期间递增,或者,该处理循环从相对于最可能模式列表的角度帧内预测模式的帧内预测模式索引的偏移量-1开始,该偏移量在处理循环的每一轮期间递减。
在示例中,上述处理电路用于:相较于针对最可能模式列表中具有最大最可能模式索引的角度帧内预测模式的处理循环,更多地重复针对最可能模式列表中具有最小最可能模式索引的角度帧内预测模式的处理循环。
在示例中,上述处理电路用于:通过在剩余模式列表的第一部分中包括一个或多个角度帧内预测模式来生成剩余模式列表的第一部分,上述一个或多个角度帧内预测模式的相应帧内预测模式索引相对于最可能模式列表的角度帧内预测模式的帧内预测模式索引具有偏移量+2、-2、+4、-4、+6、-6、+8、或-8。
在示例中,上述处理电路还用于:通过在剩余模式列表的第二部分中包括上述多个帧内预测模式中不是最可能模式列表和剩余模式列表的第一部分的一部分的那些帧内预测模式,来生成剩余模式列表的第二部分。
在示例中,上述处理电路还用于:使用所采用的帧内预测模式来预测当前图像块的样本值,并提供预测图像块。
在示例中,上述装置是编码装置,并且其中,上述处理电路还用于:基于预测图像块和所采用的帧内预测模式来对当前图像块进行编码。
在示例中,上述处理电路还用于:如果用于当前图像块的帧内预测模式属于剩余模式列表,则信令通知该帧内预测模式的截断二元码。
在示例中,上述装置是解码装置,并且其中,上述处理电路还用于:基于预测图像块和所采用的帧内预测模式来对当前图像块进行解码。
在示例中,上述处理电路还用于:如果用于当前图像块的帧内预测模式属于剩余模式列表,则解析截断二元码以确定该帧内预测模式。
在示例中,提供了一种用于基于最可能模式列表和具有第一部分和第二部分的剩余模式列表来确定所采用的帧内预测模式的方法,其中,所采用的帧内预测模式是多个帧内预测模式中的一个帧内预测模式,上述多个帧内预测模式包括用于预测当前图像块的样本值的多个角度帧内预测模式,其中,该方法包括:通过包括基于上述最可能模式列表确定的一个或多个角度帧内预测模式来生成上述剩余模式列表的第一部分,使得剩余模式列表的第一部分的一个或多个角度帧内预测模式接近于上述最可能模式列表的对应角度帧内预测模式;以及用于在所采用的帧内预测模式是剩余模式列表的第一部分的一部分的情况下,使用比在所采用的帧内预测模式是剩余模式列表的第二部分的一部分的情况下更少的比特来确定所采用的帧内预测模式(例如,这些比特用于对所采用的帧内预测模式进行编码或解码)。
在示例中,提供了一种包括程序代码的计算机程序产品,当在计算机或处理器上执行时,该程序代码用于执行上述示例。
在示例中,上述处理电路还用于从预定的默认模式列表中确定剩余模式列表的第一部分,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
在示例中,上述处理电路还用于:通过包括当前图像块的第二级相邻块的帧内预测模式来确定剩余模式列表的第一部分。
在示例中,在编码器和解码器处,通过对非MPM帧内模式使用截断二值化来信令通知帧内模式。
在示例中,由于截断二值化可以用于对61个非MPM模式进行编码,所以需要5个比特来信令通知前三个模式,并且因此基于MPM列表中已包括的帧内模式来生成非MPM模式列表中的前三个模式。
在示例中,通过简单码字映射来信令通知非MPM模式列表中的前三个模式,其中,编码器处的映射被定义为如下步骤:将已知消耗较少比特的帧内模式码字与已知消耗较多比特且同时更有可能的“不同帧内模式”进行映射。在解码器处,反映射被定义为如下步骤:将已从位流中解析的帧内模式与“不同帧内模式”进行映射,该“不同帧内模式”随后被用作用于当前图像块的实际帧内预测模式。
在示例中,提供了一种对视频数据进行解码的方法,该方法包括:接收编解码单元的图像块的编码数据;对编码数据进行解码以从用于图像块的多个帧内预测模式中识别帧内预测模式,上述多个帧内预测模式包括一组最可能模式(MPM)、第一组帧内预测模式、以及第二组帧内预测模式,其中,第一组帧内预测模式中的一个模式使用N个比特进行编码,第二组帧内预测模式中的一个模式使用M个比特进行编码,N和M为正整数并且N小于M,对编码数据进行解码以从用于图像块的多个帧内预测模式中识别帧内预测模式包括:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在该组MPM中的指示;如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则获得用于图像块的帧内预测模式码字,该帧内预测模式码字对应于初始帧内预测模式;如果用于图像块的帧内预测模式码字是使用N个比特进行编码的,则对初始帧内预测模式进行映射以获得映射的帧内预测模式,使用映射的帧内预测模式作为识别的用于图像块的帧内预测模式;或者,如果用于图像块的帧内预测模式码字是使用M个比特进行编码的,则使用初始帧内预测模式作为识别的用于图像块的帧内预测模式。
在示例中,如果用于图像块的帧内预测模式码字是使用N个比特进行编码的,则用于图像块的帧内预测模式码字的值小于对应于第二组帧内预测模式的多个值中的任何一个值。
在示例中,对初始帧内预测模式进行映射以获得映射的帧内预测模式包括:根据该组MPM对初始帧内预测模式进行映射,以获得映射的帧内预测模式。
在示例中,根据该组MPM对初始帧内预测模式进行映射包括:根据该组MPM中落入每个角度帧内预测模式类别内的角度帧内预测模式的数量和/或方向来对多个角度帧内预测模式类别进行排序;根据排序最高的帧内预测模式类别来对初始帧内预测模式进行映射。
在示例中,根据该组MPM对初始帧内预测模式进行映射包括:根据将偏移量添加到对应于该组MPM的多个值来生成初始的一组帧内预测模式;对该组MPM进行分类以获得排序最高的帧内预测模式类别;根据排序最高的帧内预测模式类别和该初始的一组帧内预测模式来对初始帧内预测模式进行映射。
在示例中,根据将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM的多个值来生成该初始的一组帧内预测模式。
在示例中,对初始帧内预测模式进行映射以获得映射的帧内预测模式包括:根据预定的默认模式列表来对初始帧内预测模式进行映射以获得映射的帧内预测模式,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
以下概述其他方面:
上述视频解码方法包括:对图像块的编码数据进行解码,以从用于图像块的多个帧内预测模式中获得帧内预测模式,用于图像块的多个帧内预测模式包括一组最可能模式(MPM)以及一组非MPM,其中,该组非MPM包括第一组帧内预测模式和第二组帧内预测模式,其中,第一组帧内预测模式中的模式使用N个比特进行编码,并且第二组帧内预测模式中的模式使用M个比特进行编码,其中,N和M是正整数,N小于M,其中,对图像块的编码数据进行解码以从用于图像块的多个帧内预测模式中获得帧内预测模式包括:对编码数据进行解码以获得指示用于图像块的帧内预测模式是否在该组MPM中的指示;如果上述指示指示用于图像块的帧内预测模式不在该组MPM中,则生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系;对编码数据进行解码以获得用于图像块的帧内预测模式码字;根据映射关系和帧内预测模式码字获得用于图像块的帧内预测模式。
根据本申请的视频解码方法,使用截断二值化方案对该组非MPM中的预测模式进行编码,并且生成映射关系,因此用于当前块的预测模式更可能使用较少的比特进行编解码,并且降低了解码器侧的计算复杂度。
在本申请的一个实施方式中,上述方法还包括接收图像块的编码数据。在示例中,在对编码数据进行解码之前,由解码器侧接收编码数据。在示例中,由接收器接收编码数据。
本申请的一个实施方式中,用于图像块的多个帧内预测模式的数量为67,67个帧内预测模式中的多个帧内预测模式包括:平面模式(值0)、DC模式(值1)、以及索引为2至66的角度模式。用于图像块的多个帧内预测模式的数量可以是其他值(例如35、48、71等)。
在示例中,该组MPM的数量为6,该组非MPM的数量为61,第一组帧内预测模式的数量为3,并且第二组帧内预测模式的数量为58。
在示例中,N=5,M=6。
在本申请的一个实施方式中,使用N个比特对第一组帧内预测模式中的每个模式进行编码,使用M个比特对第二组帧内预测模式中的每个模式进行编码。在另一示例中,使用N个比特对第一组帧内预测模式中的至少一个模式进行编码,使用M个比特对第二组帧内预测模式中的至少一个模式进行编码。
在一个示例中,使用截断二值化方案对第一组帧内预测模式中的帧内预测模式进行编码,使用N个比特对第一组帧内预测模式中的至少一个模式进行编码,并且使用少于N个比特对第一组帧内预测模式中的至少一个模式进行编码。
在本申请的一个实施方式中,指示用于图像块的帧内预测模式是否在该组MPM中的上述指示是标志,当标志的值为1时,可以指示用于图像块的帧内预测模式在该组MPM中,当标志的值为0时,可以指示用于图像块的帧内预测模式不在该组MPM中。例如,在解码器侧,如果MPM列表是一组帧内模式[20,40,60],并且当前块的帧内模式值为40,则因为在MPM列表的第二条目处找到当前块的帧内模式,所以MPM标志指示符被设置为1。如果例如当前块的帧内模式值为41而不是40,则MPM标志指示符被设置为0,MPM标志在编码数据中被发送到解码侧。
在一个示例中,如果上述指示指示用于图像块的帧内预测模式在该组MPM中,如下定义用于图像块的帧内预测模式(IntraPredModeY[xPb][yPb])的导出过程:
如果intra_luma_mpm_flag[xPb][yPb]等于1(其指示用于图像块的帧内预测模式在该组MPM中),则IntraPredModeY[xPb][yPb]被设置为等于candModeList[intra_luma_mpm_idx[xPb][yPb]],其中,(xPb,yPb)规定当前亮度预测块相对于当前图像左上亮度样本的左上样本,candModeList为实际的MPM列表,对编码数据进行解码以获得MPM索引,根据MPM索引和MPM列表获得用于图像块的帧内预测模式。
在特定示例中,该组MPM为(15,0,20),MPM索引的值为2,因此用于图像块的帧内预测模式是平面模式(值0)。在另一特定示例中,该组MPM为(15,36,0,1,21,19),MPM索引的值为5,因此用于图像块的帧内预测模式是角度模式21。
在本申请的一个实施方式中,其中,第一组帧内预测模式中的至少一个帧内预测模式之一对应于该组非MPM中的至少一个帧内预测模式之一。
在示例中,第一组帧内预测模式中的预测模式为(17,25,6),并且该组非MPM中的映射的预测模式为(2,3,4),17←→2、25←→3、6←→4。
在另一示例中,第一组帧内预测模式中的预测模式为(2,16,28),并且该组非MPM中的映射的预测模式为(2,3,4),2←→2、16←→3、28←→4。
在另一示例中,第一组帧内预测模式中的预测模式为(28),并且该组非MPM中的映射的预测模式为(3),28←→3。
在本申请的一个实施方式中,其中,根据该组MPM生成上述映射关系。
在本申请的一个实施方式中,根据对该组MPM中的预测模式进行分类来生成上述映射关系。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中落入每个帧内预测模式类别内的帧内预测模式的数量和/或方向来对多个帧内预测模式类别进行排序;根据排序最高的帧内预测模式类别生成映射关系。
在示例中,提供了5个角度帧内预测模式类别,即垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX),其中,最可能模式列表中的角度帧内预测模式落入每个角度帧内预测模式类别内对应于:将最可能模式列表中的每个角度帧内预测模式关联到与最可能模式列表中的对应角度帧内预测模式最接近的角度帧内预测模式类别。在另一示例中,对排序次高的角度帧内预测模式类别重复该步骤。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:对该组MPM进行分类以获得排序最高的帧内预测模式类别;根据排序最高的帧内预测模式类别以及将偏移量添加到对应于该组MPM的多个值来生成映射关系。
在本申请的一个实施方式中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM的多个值。
在本申请的一个实施方式中,其中,根据预定的默认模式列表生成上述映射关系,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
图9示出了67个帧内预测模式的示例,例如,如针对VVC所提出的,67个帧内预测模式中的多个帧内预测模式包括:平面模式(索引0)、DC模式(索引1)、以及索引为2至66的角度模式,其中,图4中的左下角度模式指的是索引2,并且索引的编号递增,直到索引66是图4中的最右上角度模式。
在示例中,提供了具有6个MPM和剩余的61个模式的帧内模式信令方案,其中,使用截断二值化方案对剩余的61个模式进行编码。也可以使用6位定长码对剩余的61个帧内模式进行编码,但是使用6位定长码的缺点是:在64个可能的码字中,仅使用61个码字,并且未使用3个剩余码字。代替定长码,提出了截断二值化,截断二值化将只使用5个比特来信令通知前三个剩余模式,然后使用6个比特来对剩余的58个模式进行编码。
与发送较大码字相比,截断二值化总是允许使用较少的比特来发送较小码字。例如,如图9所示,通常使用5个比特来信令通知从“帧内模式2、3、4…”开始的水平模式。因此,为了高效地信令通知剩余模式(非MPM),前几个非MPM码字被映射到更可能的导出模式。例如,在MPM列表大小为6并且MPM列表中包括的帧内模式为[18,30,0,1,66,24]的示例中,则非MPM中只需要5个比特来进行信令通知的前三个模式为模式[2,3,4]。模式[2,3,4]被命名为“码字帧内模式”。由于模式2、3、4并不总是可能性较高的模式,所以这些模式被映射以表示更可能的三个其他帧内模式。例如,在MPM中的6个最可能模式之后,更可能的三个其他模式为模式号[19,17,21]。模式[19,17,21]被命名为“导出的非MPM”。则确保模式19、17、21仅消耗5个比特的一种简单方法是将帧内模式[2,3,4]与帧内模式[19,17,21]映射。通常,编码器进行映射并使用帧内模式2信令通知帧内模式19,然后,解码器进行反映射并使用帧内模式19映射帧内模式2。此外,与通过使用列表并信令通知列表的索引来信令通知非MPM相比,这种简单的映射减少了用于信令通知非MPM的修剪过程的数量。在特殊情况下,如果“导出的非MPM”和具有最小码字的“码字帧内模式”有重叠,则确保将两个列表中的公共帧内模式映射到一起。例如,如果“码字帧内模式”为[2,3,4]并且“导出的非MPM”列表为[2,4,17],则帧内模式2被映射到帧内模式2,模式3被映射到模式17,模式4被映射到模式4。
提出了若干解决方案以填充剩余模式列表的前三个模式。
可以使用若干可能的方式来填充剩余模式列表中的前三个模式。
第一,通过使用预定的默认模式列表中的模式来填充剩余模式列表的前三个模式,预定的默认模式列表中的模式为{平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX)}(括号中的术语示出了图9中的对应术语,下面提出关于图9的进一步细节);
第二.通过使用MPM列表中已存在的角度模式的偏移模式来填充剩余模式列表的前三个模式。在本文中,偏移量可以是+/-N,其中,N是一个可能的整数值,其值为{1,2,3,4}。上述偏移量只能添加到MPM列表中的前两个角度模式。
第三,非邻接相邻块的帧内模式也可以用来填充这三个模式。如图8所示,可以使用第二级相邻帧内模式。
第四,如图9所示,在第一步骤中,从MPM列表中取一个给定的模式,并检查该模式是否“靠近”以下模式类别{DC_IDX,HOR_IDX,DIA_IDX,VER_IDX,VDIA_IDX}之一,在第二步骤中,基于接近于该模式类别的“大多数”模式来对模式类别“进行排序”。在第三步骤中,通过插入靠近步骤2的获胜模式类别来生成剩余模式列表。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据将偏移量添加到该组MPM中的至少一个预测模式的值来生成第二组值;根据第一组值和第二组值生成映射关系。
在本申请的一个实施方式中,解码器侧首先获得当前块的该组MPM,生成过程可以参考ITU H.264、ITU H.265中的相关部分或上述关于构建candModeList的描述。在获得该组MPM后,解码器侧选择该组非MPM中预测模式的最小值作为第一组值中的一个值。
在示例中,第一组值包括该组非MPM中的最小的三个值,如果该组MPM中的预测模式的值为(0,1,3,5,8,10),则第一组值为(2,4,6)。
在另一示例中,第一组值包括该组非MPM中的最小的两个值,如果该组MPM中的预测模式的值为(0,1,3,5,8,10),则第一组值为(2,4)。
在示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM的多个值。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据将偏移量添加到该组MPM中的至少一个角度预测模式的值来生成第二组值;根据第一组值和第二组值生成映射关系。
在示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM中的至少一个角度预测模式的至少一个值。
在另一示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于该组MPM中的两个角度预测模式的值。
在本申请的一个实施方式中,用于图像块的多个帧内预测模式中的预测模式的数量为67,该组MPM中的预测模式的数量为6,该组非MPM中的第一组帧内预测模式中的预测模式的数量为3,并且该组非MPM中的第二组帧内预测模式中的预测模式的数量为58,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值获得该组非MPM中的三个预测模式的最小的三个值;获得该组MPM中的两个角度预测模式的两个值,将偏移量添加到这两个值以获得偏移值;根据该组MPM中的预测模式的值和偏移值获得第二组值;根据第一组值和第二组值生成映射关系。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据预定的默认模式列表生成第二组值,预定的默认模式列表包括以下模式或由以下模式组成:垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX);根据第一组值和第二组值生成映射关系。
在示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于预定的默认模式列表中的至少一个预测模式的至少一个值。
在示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于预定的默认模式列表中的至少一个角度预测模式的至少一个值。
在示例中,将偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于预定的默认模式列表中的两个角度预测模式的两个值。
在本申请的一个实施方式中,其中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系包括:根据该组MPM中的预测模式的值生成第一组值,第一组值中的一个值是该组非MPM中的预测模式的最小值;根据预定的默认模式列表生成第二组值,预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、对角线模式(DIA_IDX);根据第一组值和第二组值生成映射关系。
在本申请的一个实施方式中,其中,帧内预测模式码字使用5个比特进行编码,并且帧内预测模式码字是00000、00001、或00010之一。
在示例中,解码侧对码字进行解码以获得初始值,例如,如果码字为00001,则初始值为1;然后,将初始值与对应于该组MPM中的预测模式的每个值进行比较,如果初始值大于或等于对应于该组MPM中的预测模式的值,则初始值递增1,重复该步骤直到该组MPM中的所有值都已经与初始值进行比较,并获得中间值。
例如,按升序调整对应于该组MPM的值,调整后的对应于该组MPM的值为(0,1,4,6,8,10);码字为00001,在第一步骤中,因为1大于对应于该组MPM的第一值,所以将初始值1递增1,修改值为2;在第二步骤中,因为2大于对应于该组MPM的第二值,通过将2递增1获得另一修改值3;并且因为3小于对应于该组MPM的第三值,所以获得中间值3。并且如果中间值3不在映射集中,则中间值3是对应于用于图像块的帧内预测模式的值,因此用于图像块的帧内预测模式是角度模式3。
如果中间值3在映射集中,则映射值(例如17)是对应于用于图像块的帧内预测模式的值,因此用于图像块的帧内预测模式是角度模式17。在一些示例中,映射值可以与最终值相同,例如,如果中间值3在映射集中,映射值也是3,则因此用于图像块的帧内预测模式是角度模式3。
在本申请的另一方面中,公开了一种包括处理电路的解码器,该处理电路用于执行上述解码方法。
在本申请的另一方面中,公开了一种包括程序代码的计算机程序产品,该程序代码用于执行上述解码方法。
在本申请的另一方面中,公开了一种用于对视频数据进行解码的解码器,该解码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储用于由处理器执行的程序,其中,当由处理器执行时,该程序配置解码器以执行上述方法。
可以以硬件或硬件和软件的组合(例如通过软件可编程处理器等)来实现上述处理电路。
在本申请的另一方面中,公开了一种编码方法,该方法包括:
从多个帧内预测模式中获得图像块的帧内预测模式,用于图像块的多个帧内预测模式包括一组最可能模式(MPM)和一组非MPM,其中,该组非MPM包括第一组帧内预测模式和第二组帧内预测模式;
如果图像块的帧内预测模式在该组非MPM中,则生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系;
根据映射关系对图像块的帧内预测模式进行编码以获得帧内预测模式码字。
在本申请的一个实施方式中,获得图像块的帧内预测模式的过程可以参考以下实施例部分的具体实施方式中的相关公开内容,或者视频编解码技术(例如,ITU-T H.264、ITU-T H.265)领域中的相关公开内容。
在本申请的一个实施方式中,上述编码方法还包括:生成一组MPM,确定图像块的帧内预测模式是否在该组MPM中。因此,如果图像块的帧内预测模式不在该组MPM中,则图像块的帧内预测模式在该组非MPM中。
生成该组MPM的过程可以参考描述部分中的相关公开内容,或者视频编解码技术(例如ITU-T H.264、ITU-T H.265)领域中的相关公开内容。
在本申请的一个实施方式中,生成第一组帧内预测模式中的至少一个帧内预测模式与该组非MPM中的至少一个帧内预测模式之间的映射关系的过程可以参考解码侧的相关公开内容。
在本申请的一个实施方式中,第一组帧内预测模式使用5个比特进行编码,并且第二组帧内预测模式使用6个比特进行编码。
在本申请的另一方面中,公开了一种包括处理电路的编码器,该处理电路用于执行上述编码方法。
在本申请的另一方面中,公开了一种包括程序代码的计算机程序产品,该程序代码用于执行上述编码方法。
在本申请的另一方面中,公开了一种用于对视频数据进行编码的编码器,该编码器包括:一个或多个处理器;以及非暂时性计算机可读存储介质,耦合到处理器并存储用于由处理器执行的程序,其中,当由处理器执行时,该程序配置编码器以执行上述编码方法。
可以以硬件或硬件和软件的组合(例如通过软件可编程处理器等)来实现上述处理电路。
在本公开中描述的主题和操作的实施方式可以在数字电子电路中实现,或者在计算机软件、固件、或硬件中实现,包括在本公开中公开的结构及其等价结构或这些结构中的一个或多个的组合。本公开描述的主题的实施方式可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,这些程序指令编码在计算机存储介质上,以便由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,上述程序指令可以编码在人工生成的传播信号(例如,机器生成的电信号、光信号、或电磁信号)中,生成这些信号来编码信息以传输到合适的接收器装置,以便由数据处理装置执行。计算机存储介质(例如计算机可读介质)可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备、或这些设备的一个或多个组合,也可以包括在这些设备中。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质可以是一个或多个单独的物理和/或非暂时性组件或介质(例如,多个CD、磁盘、或其他存储设备),也可以包括在这些介质中。
在一些实施方式中,本公开中描述的操作可以实现为云计算网络中的服务器上提供的托管服务。例如,上述计算机可读存储介质可以在云计算网络内逻辑分组和访问。云计算网络中的服务器可以包括用于提供基于云的服务的云计算平台。“云”、“云计算”和“基于云”等术语可以适当地互换使用而不脱离本公开的范围。基于云的服务可以是由服务器提供并通过网络传送到客户端平台的托管服务,以增强、补充、或替换在客户端计算机上本地执行的应用。电路可以使用基于云的服务来快速接收软件升级、应用、以及其他资源,否则需要很长的时间才能将资源传送到电路。
计算机程序(也称为程序、软件、软件应用、脚本、或代码)可以以任何形式的编程语言(包括编译或解释语言、声明或程序语言)编写,并且可以以任何形式部署,包括部署为独立程序或部署为适合在计算环境中使用的模块、组件、子例程、对象、或其他单元。计算机程序可以(但不需要)对应于文件系统中的文件。程序可以存储在包含其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中,可以存储在专用于该程序的单个文件中,或者存储在多个协调文件(例如存储一个或多个模块、子程序或、部分代码的文件)中。计算机程序可以部署为在位于一个站点的一台计算机或分布在多个站点并通过通信网络互连的多个计算机上执行。
本公开中描述的过程和逻辑流可以由一个或多个可编程处理器执行,上述一个或多个可编程处理器执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行动作。上述过程和逻辑流也可以由专用逻辑电路(例如现场可编程门阵列(FPGA)或专用集成电路(ASIC))执行,并且装置也可以实现为专用逻辑电路。
适合执行计算机程序的处理器包括例如通用微处理器、专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器和/或随机访问存储器接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储器(例如,磁盘、磁光盘、或光盘),或者计算机将可操作地耦合到上述大容量存储器,以从这些大容量存储设备接收数据和/或向这些大容量存储设备发送数据。然而,计算机不需要具有这样的设备。此外,计算机可以嵌入到其他设备中,例如移动电话、个人数字助理(personal digital assistant,PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(global positioning system,GPS)接收器、或便携式存储设备(例如通用串行总线(universal serial bus,USB)闪存驱动器),这里仅举几个例子。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质、以及存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM、以及闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路。
虽然本公开包含许多具体的实施方式细节,但这些细节不应解释为对任何实施方式或可能要求保护的范围的限制,而应为特定于特定实施方式的特定特征的描述。在本公开中,在单独的实施方式的上下文中描述的某些特征也可以在单个实施方式中结合实现。相反地,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中单独实现,或者在任何合适的子组合中实现。此外,尽管可以将特征描述为在某些组合中起作用,甚至最初所要求保护的为这样,但在一些情况下,可以从组合中删除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描述了操作,但这不应理解为要求以所示特定顺序或先后顺序执行这样的操作,也不应理解为要求执行所有所示的操作以实现期望的结果。在某些情景中,多任务处理和并行处理可能是有利的。此外,不应将上述实施方式中的各种系统组件的分离理解为在所有实施方式中都需要这样的分离,并且应理解,所描述的程序组件和系统通常可以共同集成在单个软件产品中,或者封装到多个软件产品中。
因此,已经描述了主题的特定实施方式。其他实施方式在所附权利要求的范围之内。在一些情况中,权利要求中提到的动作可以以不同的顺序执行,并且仍然实现期望的结果。此外,附图中描述的过程不一定需要所示的特定顺序或先后顺序来实现期望的结果。在某些实施方式中,多任务处理和并行处理可能是有利的。
虽然在本公开中已经提供了若干实施例,然而应理解,所公开的系统和方法可以以许多其他的具体形式来实施。本示例应被认为是说明性的而非限制性的,并且其意图不旨在限制本文中所给出的细节。例如,各种元件或组件可被组合或集成在另一系统中,或可以省略或不实现某些特征。
此外,在不脱离本公开的范围的情况下,可以将在各种实施例中不连续地或单独地描述和示出的技术、系统、子系统以及方法与其他的系统、模块、技术或方法相组合或集成。示出或讨论的彼此耦合或直接耦合或通信的其他项可通过不管是电、机械或其他的某个接口、设备、或中间组件间接耦合或通信。
缩略语的定义和术语表
CTU/CTB Coding Tree Unit(编码树单元)/Coding Tree Block(编码树块)
CU/CB Coding Unit(编解码单元)/Coding Block(编码块)
PU/PB Prediction Unit(预测单元)/Prediction Block(预测块)
TU/TB Transform Unit(变换单元)/Transform Block(变换块)
HEVC High Efficiency Video Coding(高效视频编码)
在整个公开文本中,术语“帧内预测模式”和“帧内模式”被用作同义词。相应地,术语“帧间预测模式”和“帧间模式”被用作同义词。

Claims (15)

1.一种对视频数据进行解码的方法,所述方法包括:
对图像块的编码数据进行解码,以从用于所述图像块的多个帧内预测模式中获得帧内预测模式,其中,用于所述图像块的所述多个帧内预测模式包括一组最可能模式(MPM)以及一组非MPM,其中,所述一组非MPM包括第一组帧内预测模式和第二组帧内预测模式,其中,所述第一组帧内预测模式中的模式使用N个比特进行编码,并且所述第二组帧内预测模式中的模式使用M个比特进行编码,其中,N和M是正整数并且N小于M,
其中,对所述图像块的所述编码数据进行所述解码以从用于所述图像块的多个帧内预测模式中获得所述帧内预测模式包括:
对所述编码数据进行解码以获得指示用于所述图像块的所述帧内预测模式是否在所述一组MPM中的指示;
如果所述指示指示用于所述图像块的所述帧内预测模式不在所述一组MPM中,
则生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的映射关系,其中,所述映射关系包括所述第一组帧内预测模式内的帧内预测模式与所述第二组帧内预测模式中包括的帧内预测模式之间的一一对应关系;
对所述编码数据进行解码以获得用于所述图像块的帧内预测模式码字;
根据所述映射关系和所述帧内预测模式码字获得用于所述图像块的所述帧内预测模式。
2.根据权利要求1所述的方法,其中,根据所述一组MPM生成所述映射关系。
3.根据权利要求1所述的方法,其中,根据预定的默认模式列表生成所述映射关系,所述预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
4.根据权利要求1或2所述的方法,其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中落入每个帧内预测模式类别内的帧内预测模式的数量和/或方向来对多个帧内预测模式类别进行排序;以及
根据排序最高的帧内预测模式类别生成所述映射关系;
其中,所述帧内预测模式类别包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
5.根据权利要求1或2所述的方法,其中,所述生成所述第一组帧内预测模式中的所述帧内预测模式与所述第二组帧内预测模式中的帧内预测模式之间的所述映射关系包括:
对所述一组MPM进行分类以获得排序最高的帧内预测模式类别;以及
根据所述排序最高的帧内预测模式类别并将偏移量添加到对应于所述一组MPM的多个值来生成所述映射关系;
其中,所述帧内预测模式类别包括垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX)。
6.根据权利要求5所述的方法,其中,将所述偏移量-1、+1、+2、-2、+3、-3、+4、或-4添加到对应于所述一组MPM的多个值。
7.根据权利要求1所述的方法,其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中的预测模式的值生成第一组值,其中,所述第一组值中的一个值是所述一组非MPM中的预测模式的最小值;
通过将偏移量添加到所述一组MPM中的至少一个预测模式的值来生成第二组值;以及
根据所述第一组值和所述第二组值生成所述映射关系。
8.根据权利要求1所述的方法,其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中的预测模式的值生成第一组值,其中,所述第一组值中的一个值是所述一组非MPM中的预测模式的最小值;
通过将偏移量添加到所述一组MPM中的至少一个角度预测模式的值来生成第二组值;以及
根据所述第一组值和所述第二组值生成所述映射关系。
9.根据权利要求1所述的方法,其中,用于所述图像块的所述多个帧内预测模式中的预测模式的数量为67,所述一组MPM中的预测模式的数量为6,所述一组非MPM中的所述第一组帧内预测模式中的预测模式的数量为3,并且所述一组非MPM中的所述第二组帧内预测模式中的预测模式的数量为58,
其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中的预测模式的值获得所述一组非MPM中的三个预测模式的最小的三个值,所述最小的三个值为第一组值;
获得所述一组MPM中的两个角度预测模式的两个值,将偏移量添加到所述两个值以获得偏移值;
根据所述一组MPM中的所述预测模式的值和所述偏移值获得第二组值;以及
根据所述第一组值和所述第二组值生成所述映射关系。
10.根据权利要求1所述的方法,其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中的预测模式的值生成第一组值,其中,所述第一组值中的一个值是所述一组非MPM中的预测模式的最小值;
根据预定的默认模式列表生成第二组值,所述预定的默认模式列表包括以下模式或由以下模式组成:垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX);以及
根据所述第一组值和所述第二组值生成所述映射关系。
11.根据权利要求1所述的方法,其中,所述生成所述第一组帧内预测模式中的至少一个帧内预测模式与所述一组非MPM中的至少一个帧内预测模式之间的所述映射关系包括:
根据所述一组MPM中的预测模式的值生成第一组值,其中,所述第一组值中的一个值是所述一组非MPM中的预测模式的最小值;
根据预定的默认模式列表生成第二组值,所述预定的默认模式列表包括以下模式或由以下模式组成:平面模式(PLANAR_IDX)、DC模式(DC_IDX)、垂直模式(VER_IDX)、水平模式(HOR_IDX)、帧内模式2(2)、垂直对角线模式(VDIA_IDX)、以及对角线模式(DIA_IDX);以及
根据所述第一组值和所述第二组值生成所述映射关系。
12.根据权利要求1所述的方法,其中,所述帧内预测模式码字使用5个比特进行编码,并且所述帧内预测模式码字是00000、00001、或00010之一。
13.根据权利要求1所述的方法,其中,所述第一组帧内预测模式中的所述至少一个帧内预测模式之一对应于所述一组非MPM中的所述至少一个帧内预测模式之一。
14.一种包括处理电路的解码器,所述处理电路用于执行根据权利要求1至13中任一项所述的方法。
15.一种非暂时性计算机可读存储介质,存储有指令,当被一个或多个处理器执行时,所述指令使所述一个或多个处理器执行根据权利要求1至13中任一项所述的方法。
CN201980052689.3A 2018-08-29 2019-07-30 用于帧内预测的方法和装置 Active CN112567740B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862724359P 2018-08-29 2018-08-29
US62/724,359 2018-08-29
PCT/CN2019/098322 WO2020042853A1 (en) 2018-08-29 2019-07-30 Method and apparatus for intra prediction

Publications (2)

Publication Number Publication Date
CN112567740A CN112567740A (zh) 2021-03-26
CN112567740B true CN112567740B (zh) 2023-03-10

Family

ID=69644985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980052689.3A Active CN112567740B (zh) 2018-08-29 2019-07-30 用于帧内预测的方法和装置

Country Status (4)

Country Link
US (1) US11277608B2 (zh)
EP (1) EP3804311A4 (zh)
CN (1) CN112567740B (zh)
WO (1) WO2020042853A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3562158A1 (en) * 2018-04-27 2019-10-30 InterDigital VC Holdings, Inc. Method and apparatus for combined intra prediction modes
JP2022500916A (ja) * 2018-09-13 2022-01-04 フラウンホファー ゲセルシャフト ツール フェールデルンク ダー アンゲヴァンテン フォルシュンク エー.ファオ. アフィン線形加重イントラ予測

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107736022A (zh) * 2015-06-18 2018-02-23 高通股份有限公司 帧内预测及帧内模式译码
WO2018074812A1 (ko) * 2016-10-19 2018-04-26 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10841593B2 (en) * 2015-06-18 2020-11-17 Qualcomm Incorporated Intra prediction and intra mode coding
KR20180040319A (ko) * 2016-10-12 2018-04-20 가온미디어 주식회사 영상 처리 방법, 그를 이용한 영상 복호화 및 부호화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107736022A (zh) * 2015-06-18 2018-02-23 高通股份有限公司 帧内预测及帧内模式译码
WO2018074812A1 (ko) * 2016-10-19 2018-04-26 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CE3: Results on secondary MPM in JVET-J0024;Narae Choi;《JVET-K0181-v1》;20180703;第1节 *
Non-EE1: Priority List Based Intra Mode Coding with 5 MPM;Yue Yu等;《JVET-H0051》;20180703;1-2节 *
基于模式分组的帧内预测模式快速选择算法;谢晓燕等;《电视技术》;20151117(第22期);全文 *

Also Published As

Publication number Publication date
EP3804311A4 (en) 2021-07-28
CN112567740A (zh) 2021-03-26
EP3804311A1 (en) 2021-04-14
WO2020042853A1 (en) 2020-03-05
US11277608B2 (en) 2022-03-15
US20210144369A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
AU2019335453B2 (en) Method and apparatus for intra prediction
CN113840143A (zh) 编码器、解码器以及使用ibc专用缓冲区的对应方法
AU2023202684B2 (en) Method and apparatus for intra prediction
US11277608B2 (en) Method and apparatus for intra prediction
CN112425165B (zh) 基于邻块的帧内预测模式推导
RU2780222C2 (ru) Способ и устройство для внутреннего предсказания
RU2785106C2 (ru) Способ и устройство для внутреннего предсказания
CN117998095A (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