CN113891084B - 帧内预测模式相关的编码器、解码器、对应方法及计算机可读介质 - Google Patents

帧内预测模式相关的编码器、解码器、对应方法及计算机可读介质 Download PDF

Info

Publication number
CN113891084B
CN113891084B CN202110976891.4A CN202110976891A CN113891084B CN 113891084 B CN113891084 B CN 113891084B CN 202110976891 A CN202110976891 A CN 202110976891A CN 113891084 B CN113891084 B CN 113891084B
Authority
CN
China
Prior art keywords
luma
cbwidth
cbheight
block
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
CN202110976891.4A
Other languages
English (en)
Other versions
CN113891084A (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
Priority claimed from CN202080015671.9A external-priority patent/CN113796078A/zh
Publication of CN113891084A publication Critical patent/CN113891084A/zh
Application granted granted Critical
Publication of CN113891084B publication Critical patent/CN113891084B/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/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/186Methods 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 a colour or a chrominance component
    • 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

Abstract

一种由解码设备或编码设备实现的译码方法,包括:获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度;当所述指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix‑based intra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值;根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。

Description

帧内预测模式相关的编码器、解码器、对应方法及计算机可读 介质
相关申请案交叉申请
本申请要求于2019年8月23日提交的第PCT/EP2019/072611号PCT申请的优先权,所述PCT申请要求于2019年7月24日提交的第PCT/EP2019/069944号PCT申请的优先权。这两个申请通过引用的方式并入本文中。
技术领域
本申请(本发明)的实施例涉及图像处理领域,更具体地,涉及通过使用对应的亮度分量的帧内预测模式来执行色度帧内预测模式推导。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字TV、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、DVD和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。
即使在视频较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中发送或以其它方式发送时,这样会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源有限,当在存储设备中存储视频时,视频的大小也会成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,压缩数据在目的侧由用于对视频数据进行解码的视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
本申请实施例提供根据独立权利要求请求保护的用于编码和解码的装置和方法。
上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式从从属权利要求、说明书和附图中是显而易见的。
本发明的第一方面涉及一种由解码设备或编码设备实现的译码方法。所述方法包括:获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度。对应地,cbWidth/2以亮度分量为单位表示所述当前译码块的宽度的一半,cbHeight/2以所述亮度分量为单位表示所述当前译码块的高度的一半。所述亮度位置(cbWidth/2,cbHeight/2)的绝对位置为(xCb+cbWidth/2,yCb+cbHeight/2),即,对应的亮度预测块的“中间”。
所述方法还包括:当所述指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix-based intra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为默认值;根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。
从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取预测模式信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式MIP的位置和亮度帧内预测模式的位置对齐,其中,模式MIP的位置代表获得MIP模式的位置,亮度帧内预测模式的位置代表获得亮度帧内预测模式的位置。
本发明的第二方面涉及一种由解码设备或编码设备实现的译码方法。所述方法包括:获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度。对应地,cbWidth/2以亮度分量为单位表示所述当前译码块的宽度的一半,cbHeight/2以所述亮度分量为单位表示所述当前译码块的高度的一半。所述亮度位置(cbWidth/2,cbHeight/2)的绝对位置为(xCb+cbWidth/2,yCb+cbHeight/2),即,对应的亮度预测块的“中间”。
所述方法还包括:当所述指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用帧内块复制(intra block copy,IBC)模式或调色板模式时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值;根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。
从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取预测模式信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式IBC的位置和亮度帧内预测模式的位置对齐,其中,模式IBC的位置代表获得IBC模式的位置,亮度帧内预测模式的位置代表获得亮度帧内预测模式的位置。
或者,从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取预测模式信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式调色板的位置和亮度帧内预测模式的位置对齐,其中,模式调色板的位置代表获得调色板模式的位置,亮度帧内预测模式的位置代表获得亮度帧内预测模式的位置。
当在给定的块大小中,亮度分量的划分与色度分量的划分不同时,从位置(cbWidth/2、cbHeight/2)获取模式信息的对齐是必要的。否则,可能会导致未定义的行为,如图7所示。
本发明第一方面提供的方法可以由本发明第三方面提供的装置执行。本发明第三方面提供的方法的其它特征和实现方式对应于本发明第一方面提供的装置的特征和实现方式。
本发明第二方面提供的方法可以由本发明第四方面提供的装置执行。本发明第四方面提供的方法的其它特征和实现方式对应于本发明第二方面提供的装置的特征和实现方式。
第五方面,本发明实施例涉及一种用于对视频流进行解码或编码的装置,所述装置包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第一方面提供的方法。
第六方面,本发明实施例涉及一种用于对视频流进行解码或编码的装置,所述装置包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第二方面提供的方法。
第七方面,提供一种计算机可读存储介质,其中存储有指令,当所述指令被执行时,使一个或多个处理器编码视频数据。所述指令使所述一个或多个处理器执行第一或第二方面或第一或第二方面的任何可能的实施例提供的方法。
第八方面,本发明实施例涉及一种计算机程序,所述计算机程序包括程序代码,当所述程序代码在计算机上执行时,执行第一方面和第二方面或第一方面和第二方面的任何可能实施例中所述的方法。
第九方面,本发明实施例涉及一种用于获取色度帧内预测模式的设备,包括:一个或多个处理器;非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,使所述解码器:获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第一指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度。对应地,cbWidth/2以亮度分量为单位表示所述当前译码块的宽度的一半,cbHeight/2以所述亮度分量为单位表示所述当前译码块的高度的一半。所述亮度位置(cbWidth/2,cbHeight/2)的绝对位置为(xCb+cbWidth/2,yCb+cbHeight/2),即,对应的亮度预测块的“中间”。
所述一个或多个处理器还用于:当所述第一指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix-based intra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值;或当所述第一指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量不使用所述MIP时,获取所述当前译码块的所述亮度位置(cbWidth/2,cbHeight/2)的第二指示信息。
所述一个或多个处理器还用于:当所述第二指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用帧内块复制(intra block copy,IBC)模式或调色板模式时,将与所述当前译码块相关联的所述亮度帧内预测模式的所述值设置为第二默认值;根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。
从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第一指示信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式MIP的位置和亮度帧内预测模式的位置对齐。当所述第一指示信息未表示亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用MIP时,从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第二指示信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式IBC的位置和亮度帧内预测模式的位置对齐。或者,从所述对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第二指示信息确保了当在给定的块大小中,所述亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式调色板的位置和亮度帧内预测模式的位置对齐。
附图及以下说明中将详细描述一个或多个实施例。其它特征、目标和优点在说明书、附图以及权利要求中显而易见。
附图说明
下面结合附图对本发明实施例进行详细描述。
图1A为用于实现本发明实施例的视频译码系统的示例的框图。
图1B为用于实现本发明实施例的视频译码系统的另一个示例的框图。
图2为用于实现本发明实施例的视频编码器的示例的框图。
图3为用于实现本发明实施例的视频解码器的示例性结构的框图。
图4为编码装置或解码装置的一个示例的框图。
图5为编码装置或解码装置的另一个示例的框图。
图6示出了帧内预测模式的示例。
图7为使用当前规范的色度帧内预测模式推导中未定义的行为的潜在问题的框图。
图8示出了译码块的亮度位置值的示例。
图9示出了本发明提供的方法900的实施例。
图10示出了本发明使用的设备1000的实施例。
图11为实现内容分发服务的内容供应系统3100的示例性结构的框图。
图12为终端设备的一个示例的结构的框图。
下文中,除非另外明确说明,否则相同的附图标记指代相同或至少功能等同的特征。
具体实施方式
在以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明实施例的特定方面或可以使用本发明实施例的具体方面。应理解,本发明实施例可以用于其它方面,并且包括在附图中未描绘的结构上或逻辑上的变化。因此,以下详细描述不作为限制意义,并且本发明的范围由所附权利要求限定。
例如,应理解,参考所描述的方法公开的内容对于用于执行该方法的对应的设备或系统也可以成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可以包括一个或多个单元,例如用于执行所描述的一个或多个方法步骤的功能单元(例如,执行一个或多个步骤的一个单元;或者多个单元,每个单元执行多个步骤中的一个或多个),即使一个或多个单元在附图中未明确描述或示出时也是如此。此外,例如,如果根据一个或多个单元(例如功能单元)来描述特定装置,则对应的方法可以包括用于执行一个或多个单元的功能的一个步骤(例如执行一个或多个单元的功能的一个步骤,或多个步骤,每个步骤执行多个单元中的一个或多个单元的功能),即使一个或多个步骤在附图中未明确描述或示出时也是如此。此外,应理解,除非特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
视频译码通常是指对构成视频或视频序列的图像序列进行处理。在视频译码领域中,术语“帧(frame)”可以代替术语“图像(picture或image)”。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,并且通常包括处理(例如,通过压缩)原始视频图像,以减少表示视频图像所需的数据量(以获得更高效的存储和/或传输)。视频解码在目的端执行,并且通常包括相对于编码器的逆处理以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码器(编码和解码,CODEC)。
在无损视频译码的情况下,可以对原始视频图像进行重建,即,重建的视频图像与原始视频图像具有相同的质量(假设在存储或传输期间没有传输损失或其它数据损失)。在有损视频译码的情况下,通过量化等方式进行进一步压缩,以减少表示视频图像所需的数据量,在解码端无法完全重建视频图像,即,重建的视频图像的质量比原始视频图像的质量低或差。
若干视频编码标准属于“有损混合视频编解码”组(即,将样本域中的空间和时间预测与2D变换译码相结合,以在变换域中进行量化)。视频序列的每个图像通常划分为一组不重叠的块,并且通常在块级别上进行译码。换句话说,在编码端,通常在块(视频块)级别上对视频进行处理(即,编码),例如,通过使用空间(帧内图像)预测和/或时间(帧间图像)预测来生成预测块,从当前块(当前处理/待处理块)中减去预测块以获得残差块,变换残差块并在变换域中量化残差块以减少待发送(压缩)的数据量,而在解码端,相对于编码器的逆处理用于编码的或压缩的块,以重建当前块用于表示。此外,编码器按照解码器处理循环来处理,使得两者生成相同的预测(例如,帧内和帧间预测)和/或重建,用于进行处理,即,对后续块进行译码。
在以下视频译码系统10的实施例中,视频编码器20和视频解码器30根据图1至图3进行描述。
图1A为示例性译码系统10的示意性框图,例如可以使用本申请的技术的视频译码系统10(或简称为译码系统10)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可以用于根据本申请中描述的各种示例执行技术的设备的示例。
如图1A所示,译码系统10包括源设备12,源设备12用于向目的地设备14等提供编码图像数据21,以对编码数据13进行解码。
源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
图像源16可以包括或可以是:任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机;和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器;或用于获取和/或提供真实世界图像、计算机动画图像(例如屏幕内容、虚拟现实(virtual reality,VR)图像),和/或其任何组合(例如增强现实(augmented reality,AR)图像)的任何类型的设备。图像源可以为存储上述图像中任何图像的任何类型的存储器或存储装置。
为了与预处理单元18和由预处理单元18执行的处理进行区分,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得预处理图像19或预处理图像数据19。预处理器18执行的预处理可以包括修正(trimming)、颜色格式转换(例如从RGB到YCbCr)、颜色校正或去噪等。可以理解的是,预处理单元18可以是可选的组件。
视频编码器20用于接收预处理的图像数据19并提供编码图像数据21(例如,下文根据图2进一步详细描述)。
源设备12中的通信接口22可以用于:接收编码图像数据21并通过通信信道13向目的地设备14等另一个设备或任何其它设备发送编码图像数据21(或任何其它处理后的版本),以用于存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理单元32(或后处理单元32)和显示设备34。
目的地设备14的通信接口28用于例如直接从源设备12,或从任何其它源(例如存储设备,例如编码图像数据存储设备)接收编码图像数据21或(或任何其它处理后的版本),并将编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如直接有线或无线连接),或者通过任何类型的网络(例如有线网络、无线网络、有线网络和无线网络的任何组合、任何类型的私网和公网、任何类型的私网和公网的组合),发送或接收编码图像数据21或编码数据13。
例如,通信接口22可以用于将编码图像数据21封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理编码图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可以用于接收所发送数据,并使用任何类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得编码图像数据21。
通信接口22和通信接口28均可配置为如图1A中从源设备12指向目的地设备14的通信信道13的箭头所指示的单向通信接口,或配置为双向通信接口,并且可用于发送和接收消息,建立连接,确认并交换与通信链路和/或数据传输(例如编码图像数据传输)相关的任何其它信息等。
解码器30用于接收编码图像数据21并提供解码图像数据31或解码图像31(例如,下文根据图3或图5进一步详细描述)。
目的地设备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)或任何类型的其它显示器。
尽管图1A将源设备12和目的地设备14描绘为的设备,但是设备的实施例也可以包括这两种设备或这两种设备的功能,即包括源设备12或对应的功能与目的地设备14或对应的功能。在此类实施例中,源设备12或对应的功能与目的地设备14或对应的功能可以通过相同的硬件和/或软件、通过单独的硬件和/或软件或其任何组合来实现。
根据以上描述,对于本领域技术人员来说显而易见的是,图1A中所示的源设备12和/或目的地设备14的不同单元或功能的存在和(精确)功能划分可以根据实际设备和应用而变化。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或两者都可通过如图1B所示的处理电路如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任何组合来实现。编码器20可以通过处理电路46实现,以实现结合图2的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以实现结合图3的解码器30所讨论的各种模块和/或本文所描述的任何其它解码器系统或子系统。处理电路可以用于执行本文所描述的各种操作。如图5所示,如果这些技术部分地在软件中实现,则设备可以将软件指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器在硬件中执行这些指令,以执行本发明的技术。视频编码器20和视频解码器30中任何一个可以作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中,如图1B所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以使用或不使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅是示例,本申请的技术可以应用于视频译码设置(例如,视频编码或视频解码),不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据可以从本地存储器检索、通过网络流式传输等。视频编码设备可以对数据进行编码并将数据存储到存储器,和/或视频解码设备可以从存储器检索和解码数据。在一些示例中,编码和解码由不彼此通信但简单地将数据编码到存储器和/或从存储器检索和解码数据的设备执行。
为便于描述,例如,参考由ITU-T视频编码专家组(video coding experts group,VCEG)和ISO/IEC运动图像专家组(motion picture experts group,MPEG)的视频编码联合工作组(joint collaboration team on video coding,JCT-VC)开发的高效视频编码(high-efficiency video coding,HEVC)、通用视频编码(versatile video coding,VVC)参考软件、下一代视频编码标准描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。
编码器和编码方法
图2为用于实现本申请的技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波单元220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵译码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和划分单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。根据混合视频编解码器,图2所示的视频编码器20也可以称为混合视频编码器或视频编码器。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲区216、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254组成视频编码器20的反向信号路径,其中,视频编码器20的反向信号路径对应于解码器(参见图3的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
图像和图像划分(图像和块)
编码器20可以用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是预处理图像19(或预处理图像数据19)。为简单起见,以下描述中称为图像17。图像块17还可以称为当前图像或待编码图像(特别是在视频编码中,将当前图像与其它图像区分开来,其它图像例如是同一视频序列(即,也包括当前图像的视频序列)中之前编码和/或解码的图像)。
(数字)图像是或可以看作具有强度值的二维样本阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像的水平和垂直方向(或轴线)上的样本的数量定义图像的大小和/或分辨率。通常使用三个颜色分量来表示颜色,即,可以通过三个样本阵列来表示图像或图像可以包括三个样本阵列。在RBG格式或色彩空间中,图像包括对应的红、绿、蓝样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如YCbCr,其包括Y表示的亮度分量(有时也用L代替)以及Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰度强度(例如在灰度级图像中),而两个色度分量Cb和Cr表示色度或颜色信息分量。对应地,YCbCr格式的图像包括亮度样本值的亮度样本阵列(Y)和色度值的两个色度样本阵列(Cb和Cr)。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如单色格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
在视频编码器20的实施例中,视频编码器20可以包括图像划分单元(图2中未示出),用于将图像17划分为多个(通常是不重叠的)图像块203。这些块也可以称为根块或宏块(H.264/AVC标准)或称为编码树块(coding tree block,CTB)或译码树单元(codingtree unit,CTU)(H.265/HEVC和VVC标准)。图像划分单元可以用于对视频序列中的所有图像和定义块大小的对应的栅格使用相同的块大小,或者改变图像或子集或图像组之间的块大小,并将每个图像划分为对应的块。
在其它实施例中,视频编码器可以用于直接接收图像17的块203,例如,组成图像17的一个、若干个或所有块。图像块203也可以称为当前图像块或待编码图像块。
尽管图像块203的尺寸小于图像17,但是与图像17一样,块203也是或也可以被认为是具有强度值(样本值)的样本的二维阵列或矩阵。换句话说,块203例如可以包括一个样本阵列(例如,在单色图像17的情况下,亮度阵列)、三个样本阵列(例如,在彩色图像17的情况下,一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列,这取决于应用的颜色格式。块203在水平和垂直方向(或轴线)上的样本的数量定义了块203的大小。相应地,某图像块可以为M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
在图2所示的视频编码器20的实施例中,视频编码器20可以用于对图像17逐块地进行编码,例如对每个块203执行编码和预测。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于采用条带(slice)(也称为视频条带)对图像进行划分和/或编码,其中,图像可以采用一个或多个条带(通常是不重叠的条带)进行划分或编码,每个条带可以包括一个或多个块(如CTU)。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用分块(tile)组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行划分和/或编码,其中,可以使用一个或多个分块组(通常是不重叠的)对图像进行编码或可以将图像划分为一个或多个分块组,并且每个分块组可以包括一个或多个块(例如CTU)或一个或多个分块,其中,每个分块可以是矩形并且可以包括一个或多个块(例如CTU),例如全部或部分块。
残差计算
残差计算单元204可以用于根据图像块203和预测块265(后面会详细描述预测块265)计算残差块205(也称为残差205),例如,逐样本(逐像素)从图像块203的样本值中减去预测块265的样本值,以获得样本域中的残差块205。
变换
变换处理单元206可以用于对残差块205的样本值进行变换,例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST),以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,并且表示变换域中的残差块205。
变换处理单元206可以用于应用DCT/DST的整数近似,例如针对H.265/HEVC指定的变换。与正交DCT变换相比,此类整数近似通常通过某个因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经过前向变换和反向变换处理的残差块的范数。通常根据某些限制来选择缩放因子,例如缩放因子为移位运算的2的幂次方、变换系数的位深、准确度和实现成本之间的权衡等。例如,通过逆变换处理单元212指定用于逆变换的特定缩放因子(以及在视频解码器30中通过逆变换处理单元312等为对应的逆变换指定缩放因子),在编码器20中可以相应地通过变换处理单元206等指定用于正向变换的对应的缩放因子。
在视频编码器20的实施例中,例如,视频编码器20(对应地,变换处理单元206)可以用于直接输出或通过熵译码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
量化
量化单元208可以用于对变换系数207进行量化(例如进行标量量化或矢量量化),以获得量化系数209。量化系数209也可以称为量化变换系数209或量化残差系数209。
量化过程可以减小与部分或全部变换系数207相关的位深。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中,n大于m,可以通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以进行不同的缩放来实现更精细或更粗略的量化。量化步长大小越小,量化越精细;量化步长大小越大,量化越粗略。合适的量化步长大小可以通过量化参数(quantization parameter,QP)来表示。例如,量化参数可以是适用于预定义的一组合适的量化步长大小的索引。例如,小的量化参数可以对应精细的量化(小量化步长大小),而大的量化参数可以对应粗略的量化(大量化步长大小),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的对应解量化和/或反解量化操作可以包括乘以量化步长。根据一些标准(例如HEVC),实施例中可以使用量化参数来确定量化步长大小。通常,可以通过包括除法的方程的定点近似、根据量化参数计算量化步长大小。可以将其它缩放因子引入量化和解量化,用于恢复残差块的范数,因为量化步长大小和量化参数的方程的定点近似中使用缩放,所以可以修改该范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义量化表,并且例如在码流中将该自定义量化表从编码器发送到解码器。量化为有损操作,损耗随量化步长大小的增加而增加。
在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可以用于,例如,直接输出或经熵译码单元270进行编码后输出量化参数(quantization parameter,QP),使得视频解码器30可以接收并使用量化参数进行解码。
反量化
反量化单元210用于对量化系数执行量化单元208所执行的量化的反量化,以获得解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,所以解量化系数211通常与变换系数不完全相同。
逆变换
逆变换处理单元212用于执行变换处理单元206所执行的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sinetransform,DST),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
重建
重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐样本进行相加,以获得样本域中的重建块215。
滤波
环路滤波单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,以获得滤波块221,或通常用于对重建样本进行滤波,以获得滤波样本。例如,环路滤波单元用于平滑像素的突变或提高视频质量。环路滤波单元220可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任和组合。尽管在图2中环路滤波单元220示出为环内滤波器,但在其它配置中,环路滤波单元220可以实现为后环路滤波器。滤波块221也可以称为滤波重建块221。
例如,视频编码器20(相应地,环路滤波单元220)的实施例可以用于直接输出或通过熵译码单元270编码后输出环路滤波器参数(例如样本自适应偏移信息),使得解码器30可以接收并应用相同或不同的环路滤波参数进行解码。
解码图像缓冲区
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。DPB 230可以由各种存储器设备中的任一种形成,例如动态随机存取存储器(dynamic random accessmemory,DRAM)(包括同步DRAM(synchronous DRAM,SDRAM))、磁阻RAM(magneto resistiveRAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,DPB)230可用于存储一个或多个滤波块221。解码图像缓冲区230还可以用于存储相同的当前图像或不同图像(例如之前重建的图像)的其它之前滤波的块(例如之前重建的和滤波的块221),并且可以提供完整的之前重建的(即解码的)图像(以及对应的参考块和样本)和/或部分重建的当前图像(以及对应的参考块和样本),以例如用于帧间预测。解码图像缓冲区230还可以用于存储一个或多个未滤波的重建块215,或通常存储未滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
模式选择(划分和预测)
模式选择单元260包括划分单元262、帧间预测单元244和帧内预测单元254,并且用于从解码图像缓冲区230或其它缓冲区(例如,行缓冲区,图中未示出)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据如同一(当前)图像和/或一个或多个之前解码的图像的滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,以获得预测块265或预测值265。
模式选择单元260可以用于为当前块预测模式(包括不划分模式)和预测模式(例如帧内或帧间预测模式)确定或选择划分模式,并生成对应的预测块265,该预测块用于残差块205的计算以及重建块215的重建。
在模式选择单元260的实施例中,模式选择单元260可以用于选择划分和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。划分和预测模式提供最佳匹配,即最小残差(最小残差更有利于压缩,以便传输或存储),或提供最小指示(signaling)开销(最小的指示开销更有利于压缩,以便传输或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可用于根据率失真优化(rate distortion optimization,RDO)确定划分和预测模式,即选择提供最小率失真的预测模式。本文中“最佳”、“最小”、“最优”等术语不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
换句话说,划分单元262可以用于例如,通过迭代地使用四叉树划分(quad-tree-partitioning,QT)、二叉树划分(binary partitioning,BT)或三叉树划分(triple-tree-partitioning,TT)或其任何组合,将块203划分为较小的块部分或子块(它们再次形成块),以及用于例如对块部分或子块中的每一个执行预测,其中,模式选择包括划分的块203的树结构的选择,并且每个块部分或子块使用预测模式。
下文详细描述由视频编码器20执行的划分(例如,由划分单元260执行)处理和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
划分模块
划分单元262可以将当前块203划分(或分割)为较小的部分,例如较小的正方形或矩形块。这些较小的块(也可以称为子块)可以进一步划分为更小的部分。这也称为树划分或分层树划分,其中,在根树层级0(层级0、深度0)等的根块可以递归地划分为两个或多个下一较低树层级的块,例如树层级1(层级1、深度1)的节点,这些块又可以划分为两个或多个下一较低层级的块,例如树层级2(层级2、深度2)等,直到由于满足结束标准(例如达到最大树深度或最小块大小)而结束划分。未进一步划分的块也称为树的叶块或叶节点。划分为两个部分的树称为二叉树(binary-tree,BT),划分为三个部分的树称为三叉树(ternary-tree,TT),划分为四个部分的树称为四叉树(quad-tree,QT)。
如上所述,本文中使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,结合HEVC和VVC,块可以是或对应于译码树单元(coding tree unit,CTU)、译码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU)和/或对应于对应的块,例如,编码树块(coding tree block,CTB)、译码块(coding block,CB)、变换块(transform block,TB)或预测块(prediction block,PB)。
例如,译码树单元(coding tree unit,CTU)可以是或包括:亮度样本的CTB、具有三个样本阵列的图像的色度样本的两个对应的CTB、单色图像或使用三个单独的颜色平面和用于对样本进行译码的语法结构译码的图像的样本的CTB。对应地,编码树块(codingtree block,CTB)可以是N×N的样本块,其中,N可以设为某个值以将分量划分为CTB,这是一种划分。译码单元(coding unit,CU)可以是或包括:亮度样本的译码块、具有三个样本阵列的图像的色度样本的两个对应的译码块、单色图像或使用三个单独的颜色平面和用于对样本进行译码的语法结构译码的图像的样本的译码块。对应地,译码块(coding block,CB)可以是M×N的样本块,其中,M和N可以设为某些值以将CTB划分为译码块,这是一种划分。
在实施例中,例如,根据HEVC,可以通过表示为编码树的四叉树结构将译码树单元(coding tree unit,CTU)划分为CU。在CU级别上决定是通过帧间(时间)预测还是通过帧内(空间)预测对图像区域进行译码。每个CU还可以根据PU划分类型划分为1个、2个或4个PU。在一个PU内,进行相同的预测过程,并且以PU为单位将相关信息发送到解码器。在通过进行预测过程而获得残差块后,根据PU划分类型,可以根据与CU的编码树类似的另一种四叉树结构将CU划分为变换单元(transform unit,TU)。
在实施例中,例如,根据当前正在开发的最新视频编码标准(称为通用视频编码(versatile video coding,VVC)),使用组合四叉树和二叉树(quad-tree and binarytree,QTBT)划分对译码块进行划分。在QTBT块结构中,CU可以具有正方形或矩形形状。例如,首先通过四叉树结构划分译码树单元(coding tree unit,CTU)。进一步通过二叉树或三叉树结构对四叉树叶节点进行划分。划分树叶节点称为译码单元(coding unit,CU),该段用于预测和变换处理,无需进一步划分。即,CU、PU和TU在QTBT译码块结构中具有相同的块大小。同时,三叉树划分等多重划分可以与QTBT块结构结合使用。
在一个示例中,视频编码器20的模式选择单元260可以用于执行本文划分技术的任何组合。
如以上所描述,视频编码器20用于从一组(例如,预定的)预测模式中确定或选择最佳或最优预测模式。该组预测模式可以包括例如帧内预测模式和/或帧间预测模式。
帧内预测
该组帧内预测模式可以包括35种不同的帧内预测模式,例如DC(或均值)模式和平面模式等非定向模式,或HEVC中定义的定向模式等,或者可以包括67种不同的帧内预测模式,例如DC(或均值)模式和平面模式等非定向模式,或VVC中定义的定向模式等。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式使用同一当前图像的相邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或通常为模式选择单元260)还用于以语法元素266的形式向熵译码单元270输出帧内预测参数(或通常为表示块的选定帧内预测模式的信息),以将该帧内预测参数包括到编码图像数据21中,从而视频解码器30可以,例如,接收并使用该预测参数进行解码。
帧间预测
该组(或可能的)帧间预测模式取决于可用的参考图像(即,例如存储在DPB 230中的之前至少部分解码的图像)和其它帧间预测参数,例如是整个参考图像还是仅参考图像的一部分(例如,当前块的区域周围的搜索窗口区域)用于搜索最佳匹配的参考块,和/或例如是否应用像素插值,例如半像素和/或四分之一像素插值,或不应用像素插值。
除了上述预测模式之外,还可以应用跳过模式和/或直接模式。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(两者均未在图2中示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和解码图像231,或者至少一个或多个之前重建的块(例如一个或多个其它/不同的之前解码的图像231的重建块),以用于运动估计。例如,视频序列可以包括当前图像和之前解码的图像231,或者,换句话说,当前图像和之前解码的图像231可以是构成视频序列的图像序列的一部分或可以构成该序列。
例如,编码器20可以用于从多个其它图像的相同或不同图像的多个参考块中选择参考块并提供参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移),作为运动估计单元的帧间预测参数。这个偏移也称为运动矢量(motion vector,MV)。
运动补偿单元用于获取(例如,接收)帧间预测参数,并根据或通过帧间预测参数进行帧间预测,以获得帧间预测块265。运动补偿单元所执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量提取或生成预测块(可能执行插值以提高子像素精度)。插值滤波可以通过已知样本生成其它样本,从而潜在地增加可以用于对图像块进行译码的候选预测块的数量。在接收到当前图像块的PU的运动矢量时,运动补偿单元可以定位运动矢量在一个参考图像列表中指向的预测块。
运动补偿单元还可以生成与块和视频条带相关的语法元素,该语法元素由视频解码器30用来解码视频条带的图像块。除了或作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应语法元素。
熵编码
例如,熵译码单元270用于将熵编码算法或方案(例如,可变长度译码(variablelength coding,VLC)方案、上下文自适应VLC方案(context adaptive VLC,CALVC)、算术译码方案、二值化算法、上下文自适应二进制算术译码(context adaptive binaryarithmetic coding,CABAC)、基于语法的上下文自适应二进制算术译码(syntax-basedcontext-adaptive binary arithmetic coding,SBAC)、概率区间划分熵(probabilityinterval partitioning entropy,PIPE)译码或其它熵编码方法或技术)或旁路(无压缩)方案应用于量化系数209、帧间预测参数、帧内预测参数、环路滤波参数和/或其它语法元素,以获得可以通过输出单元272以编码码流21等形式输出的编码图像数据21,使得视频解码器30可以接收并使用这些参数进行解码。可以将编码码流21发送到视频解码器30,或者将其存储在存储器汇总,以便随后由视频解码器30发送或检索。
视频编码器20的其它结构变化可以用于编码视频流。例如,对于某些块或帧,基于非变换的编码器20可以在没有变换处理单元206的情况下直接量化残差信号。在另一种实现方式中,编码器20可以将量化单元208和反量化单元210组合成单个单元。
解码器及解码方法
图3为用于实现本申请的技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20编码的编码图像数据21(例如,编码码流21),以获得解码图像331。编码图像数据或码流包括用于对编码图像数据进行解码的信息,例如,表示编码视频条带的图像块的数据(和/或分块组或分块)以及相关的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decoded picturebuffer,DPB)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以是或包括运动补偿单元。在一些示例中,视频解码器30可以执行与图2中关于视频编码器100描述的编码通道大体上互逆的解码通道。
如关于编码器20所解释的,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354还组成视频编码器20的“内置解码器”。因此,反量化单元310可以与反量化单元110具有相同的功能,逆变换处理单元312可以与逆变换处理单元212具有相同的功能,重建单元314可以与重建单元214具有相同的功能,环路滤波器320可以与环路滤波器220具有相同的功能,解码图像缓冲区330可以与解码图像缓冲区230具有相同的功能。因此,对视频编码器20的对应单元和功能的解释对应地适用于视频解码器30的相应单元和功能。
熵解码
熵解码单元304用于解析码流21(或通常称为编码图像数据21),并对编码图像数据21进行熵解码,以获得量化系数309和/或解码译码参数(图3中未示出)等,例如帧间预测参数(如参考图像索引和运动矢量)、帧内预测参数(如帧内预测模式或索引)、变换参数、量化参数、环路滤波参数和/或其它语法元素等中的任一者或全部。熵解码单元304可以用于进行对应于编码器20的熵译码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以在视频条带级和/或视频块级接收语法元素。除了或作为条带和相应语法元素的替代,可以接收和/或使用分块组和/或分块以及相应语法元素。
反量化
反量化单元310可以用于从编码图像数据21(例如,通过熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,QP)(或通常为与反量化相关的信息)和量化系数,并根据量化参数对解码量化系数309进行反量化,以获得解量化系数311,解量化系数311也可以称为变换系数311。反量化过程可以包括:使用视频编码器20确定的视频条带(或分块或分块组)中的每个视频块的量化参数,以确定应应用的量化程度以及反量化程度。
逆变换
逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。变换可以是逆变换,例如,逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从编码图像数据21接收变换参数或对应的信息(例如,通过解析和/或解码,例如,通过熵解码单元304),以确定要应用于解量化系数311的变换。
重建
重建单元314(例如,加法器或求和器314)可以用于将重建残差块313添加到预测块365,以获得样本域中的重建块315,例如,通过将重建残差块313的样本值添加到预测块365的样本值。
滤波
环路滤波单元320(在译码环路中或译码环路之后)用于对重建块315进行滤波,以获得滤波块321,以平滑像素的突变或提高视频质量。环路滤波单元320可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loopfilter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任和组合。尽管在图3中环路滤波单元320示出为环内滤波器,但在其它配置中,环路滤波单元320可以实现为后环路滤波器。
解码图像缓冲区
之后,将一个图像的解码视频块321存储在解码图像缓冲区330中。解码图像331作为参考图像存储在解码图像缓冲区330中,用于后续对其它图像进行运动补偿和/或后续相应输出以进行显示。
解码器30用于例如通过输出端312输出解码图像311,以呈现给用户或由用户观看。
预测
帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同;帧内预测单元354的功能可以与帧间预测单元254相同,并根据从编码图像数据21接收到的划分和/或预测参数或相应信息(例如,通过熵解码单元304等解析和/或解码)决定划分或划分模式并执行预测。模式应用单元360可以用于根据重建图像、重建块或相应的样本(已滤波的或未滤波的)按块进行预测(帧内预测或帧间预测),以获得预测块365。
当视频条带译码为帧内译码(I)条带时,模式应用单元360的帧内预测单元354用于:根据所指示的帧内预测模式和来自当前图像的之前解码的块的数据来为当前视频条带的图像块生成预测块365。当视频图像译码为帧间译码(即,B或P)条带时,模式应用单元360的帧间预测单元344(例如,运动补偿单元)用于根据从熵解码单元304接收到的运动矢量和其它语法元素生成当前视频条带的视频块的预测块365。对于帧间预测,预测块可以从一个参考图像列表中的一个参考图像中生成。视频解码器30可以根据DPB 330中存储的参考图像通过默认构建技术构建参考帧列表,列表0和列表1。除了应用于使用条带(例如视频条带)的实施例外,相同或相似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如可以使用I、P或B分块组和/或分块对视频进行译码。
模式应用单元360用于通过解析运动矢量或相关信息和其它语法元素确定当前视频条带的视频块的预测信息,并使用预测信息来生成正在解码的当前视频块的预测块。例如,模式应用单元360使用接收到的一些语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,B条带,P条带或GPB条带)、条带的参考图像列表中的一个或多个的构建信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间译码视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。除了应用于使用条带(例如视频条带)的实施例外,相同或相似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例,例如可以使用I、P或B分块组和/或分块对视频进行译码。
在图3所示的视频解码器30的实施例中,视频解码器30可以用于采用条带(slice)(也称为视频条带)对图像进行划分和/或解码,其中,图像可以采用一个或多个条带(通常是不重叠的条带)进行划分或解码,每个条带可以包括一个或多个块(如CTU)。
在图3所示的视频解码器30的实施例中,视频解码器30可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行划分和/或解码,其中,可以使用一个或多个分块组(通常是不重叠的)对图像进行解码或可以将图像划分为一个或多个分块组,并且每个分块组可以包括一个或多个块(例如CTU)或一个或多个分块,其中,每个分块可以是矩形并且可以包括一个或多个块(例如CTU),例如全部或部分块。
视频解码器30的其它变型可以用于解码编码图像数据21。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,对于某些块或帧,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接量化残差信号。在另一种实现方式中,视频解码器30可以将反量化单元310和逆变换处理单元312组合成单个单元。
应理解,在编码器20和解码器30中,可以针对当前环节的处理结果进行进一步处理,然后输出到下一环节。例如,在插值滤波、运动矢量推导或环路滤波等之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行限幅(clip)或移位(shift)等操作。
需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射、平面、ATMVP模式下的子块运动矢量、时间运动矢量等)进行进一步操作。例如,根据运动矢量的表示位将该运动矢量的值限制在预定义范围。如果运动矢量的表示位为bitDepth,则运动矢量的取值范围为–2^(bitDepth–1)至2^(bitDepth–1)–1,其中,“^”符号表示指数运算。例如,如果bitDepth设置为等于16,则该取值范围为–32768至32767;如果bitDepth设置为18,则该取值范围为–131072至131071。例如,对推导的运动矢量(例如一个8×8块中的四个4×4子块的MV)的值进行限制,使得四个4×4子块MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。这里提供了两种根据bitDepth限制运动矢量的方法。
方法一:通过流操作移除溢出MSB(most significant bit,最高有效位)。
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (4)
其中,mvx为图像块或子块的运动矢量的水平分量,mvy为图像块或子块的运动矢量的垂直分量,ux和uy表示中间值;
例如,如果mvx的值为–32769,则应用公式(1)和(2)后,所得到的值为32767。在计算机系统中,十进制数以二的补码的形式存储。–32769的二的补码为1,0111,1111,1111,1111(17位),然后丢弃MSB,因此所得到的二的补码为0111,1111,1111,1111(十进制数为32767),与公式(1)和(2)的输出相同。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (8)
如公式(5)至(8)所示,在求mvp与mvd之和期间,可以应用这些运算。
方法二:通过对值进行限幅移除溢出MSB。
vx=Clip3(–2bitDepth–1,2bitDepth–1–1,vx)
vy=Clip3(–2bitDepth–1,2bitDepth–1–1,vy)
其中,vx为图像块或子块的运动矢量的水平分量,vy为图像块或子块的运动矢量的垂直分量;x、y和z分别对应MV修正过程的三个输入值,函数Clip3的定义如下:
Figure GDA0003637555010000161
图4为本发明的一个实施例提供的视频译码设备400的示意图。如本文所描述,视频译码设备400适合于实现所公开的实施例。在一个实施例中,视频译码设备400可以是解码器(例如,图1A中的视频解码器30)或编码器(例如,图1A中的视频编码器20)。
视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,CPU)430;用于发送数据的发送器单元(Tx)440和出端口450(或输出端口450);以及用于存储数据的存储器460。视频译码设备400还可以包括耦合到入端口410、接收器单元420、发送器单元440和出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、发送器单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述公开的实施例。例如,译码模块470实现、处理、准备或提供各种译码操作。因此,包括译码模块470大大提高了视频译码设备400的功能,并影响视频译码设备400到不同状态的转换。或者,译码模块470实现为存储在存储器460中并由处理器430执行的指令。
存储器460可以包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图5为一个示例性实施例提供的装置500的简化框图,该装置500可以用作图1中的源设备12和目的地设备14中的一者或两者。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是能够操纵或处理现在存在或以后开发的信息的任何其它类型的设备或多个设备。尽管所公开的实现方式可以通过单个处理器(例如处理器502)实施,但是可以通过一个以上的处理器来提高速度和效率。
装置500中的存储器504在一种实现方式中可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。可以使用任何其它合适类型的存储设备作为存储器504。存储器504可以包括由处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括使处理器502执行本文描述的方法的至少一个程序。例如,应用程序510可以包括应用程序1至N,其还包括执行本文所描述的方法的视频译码应用程序。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是触摸敏感显示器,触摸敏感显示器将显示器与可操作以感测触摸输入的触摸敏感元件相结合。显示器518可以通过总线512耦合到处理器502。
尽管在这里描述为单个总线,但装置500的总线512可以由多个总线组成。此外,辅助存储装置514可以直接耦合到装置500的其它组件,或者可以通过网络访问,并且可以包括单个集成单元(例如存储卡)或多个单元(例如多个存储卡)。因此,可以以多种配置实现装置500。
背景参考色度帧内预测模式。
基于矩阵的帧内预测(matrix-based intra prediction,MIP)和帧内块复制(intra block copy,IBC)是两种预测方法。MIP根据预定义的系数执行帧内预测。在IBC中,样本值是通过称为块矢量的位移矢量从同一图像中的其它样本预测的,其方式在概念上类似于运动补偿预测。
调色板模式是屏幕内容译码(screen content coding,SCC)的译码工具,用于提高计算机等生成的具有大量文本和图形的视频等屏幕内容的译码效率。在调色板模式中,译码单元(coding unit,CU)中的像素根据屏幕内容的特征由选定的代表性颜色表示,其中,像素值通常集中在少数颜色值上。
在一些示例中,亮度分量使用MIP(或IBC,或调色板)模式。当使用DM模式(从对应的亮度分量推导该模式)执行色度帧内预测模式推导时,如果对应的亮度块应用MIP或IBC或调色板模式,则为DM模式(lumaIntraPredMode)分配特殊模式。
有很多文献提到色度帧内预测模式推导过程。例如,ITU JVET-O0925公开了如果启用基于矩阵的帧内预测(matrix-based intra prediction,MIP),则将色度推导模式(derive mode,DM)设置为平面模式。ITU JVET-O0258公开了禁用色度分量的帧内块复制(intra block copy,IBC)。ITU JVET-O0651公开了如果启用IBC,则将色度DM模式设置为DC。
在一个示例中,色度推导的过程如下:
该过程的输入为:
–亮度位置(xCb,yCb),表示相对于当前图像的左上亮度样本的当前色度译码块的左上样本,
–变量cbWidth,表示以亮度样本为单位的当前译码块的宽度,
–变量cbHeight,表示以亮度样本位单位的当前译码块的高度。
在该过程中,推导色度帧内预测模式IntraPredModeC[xCb][yCb]。
对应的亮度帧内预测模式lumaIntraPredMode的推导过程如下:
–如果intra_mip_flag[xCb][yCb]等于1,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,如果CuPredMode[xCb][yCb]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在上述过程中,intra_mip_flag[xCb][yCb]等于1表示亮度样本的帧内预测类型为基于矩阵的帧内预测,intra_mip_flag[xCb][yCb]等于0表示亮度样本的帧内预测类型不是基于矩阵的帧内预测。
CuPredMode[xCb][yCb]等于MODE_IBC表示当前预测块应用IBC模式。
IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]表示预测块的亮度帧内预测模式,包括位置(xCb+cbWidth/2,yCb+cbHeight/2),即,对应的亮度预测块的“中间”。
在一个示例中,色度帧内预测模式IntraPredModeC[xCb][yCb]使用如表8-5或表8-6所示的intra_chroma_pred_mode[xCb][yCb]和lumaIntraPredMode推导,也可以使用许多其它示例或表来推导色度帧内预测模式IntraPredModeC[xCb][yCb]。在上述过程中,
intra_chroma_pred_mode[x0][y0]表示色度样本的帧内预测模式(索引)。需要说明的是,它不是最终的帧内预测模式,更合适的是将该值视为中间索引,作为获得色度样本的最终帧内预测模式的输入。
表8-5–当sps_cclm_enabled_flag的值等于0时,IntraPredModeC[xCb][yCb]的规范取决于intra_chroma_pred_mode[xCb][yCb]和lumaIntraPredMode。
Figure GDA0003637555010000181
Figure GDA0003637555010000191
表8-6–当sps_cclm_enabled_flag的值等于1时,IntraPredModeC[xCb][yCb]的规范取决于intra_chroma_pred_mode[xCb][yCb]和lumaIntraPredMode
Figure GDA0003637555010000192
在上表8-5和8-6中,sps_cclm_enabled_flag等于0表示禁用从亮度分量到色度分量的跨分量线性模型(cross-component linear model,CCLM)帧内预测。sps_cclm_enabled_flag等于1表示启用从亮度分量到色度分量的跨分量线性模型帧内预测。
在上述过程中公开的示例中,例如从码流获得亮度帧内预测模式(lumaIntraPredMode),然后获得色度帧内预测模式(intra_chroma_pred_mode)。根据亮度帧内预测模式(lumaIntraPredMode)的值和语法intra_chroma_pred_mode的值,根据表8-5和8-6推导输出预测模式。
在一些示例中,根据表8-5和表8-6,输出模式可以是70种模式中的一种。70种模式可分为67种普通模式和3种跨分量线性模型(cross-component linear model,CCLM)模式。67种普通模式可以进一步划分为非角度模式(平面和DC模式)和65种角度模式(模式2至66),如图6所示。模式81、82、83对应于三种跨分量线性模型(cross-component linearmodel,CCLM)模式,对应于左上线性模式(INTRA_LT_CCLM)、左线性模式(INTRA_L_CCLM),和上线性模式(INTRA_T_CCLM)。表8-3总结了这些模式。
表8-3帧内预测模式和相关名称的规范
帧内预测模式 相关名称
0 INTRA_PLANAR
1 INTRA_DC
2..66 INTRA_ANGULAR2..INTRA_ANGULAR66
81..83 INTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLM
MIP(或IBC)标志的位置与亮度帧内预测模式的位置之间的不对齐可能会导致色度帧内预测模式推导中的潜在问题。
即,intra_mip_flag(或CuPredMode)的标志从亮度位置(xCb,yCb)获取,而亮度块的帧内预测模式从位置(xCb+cbWidth/2,yCb+cbHeight/2)获取,过程如下(定义为色度帧内预测模式推导的VVC过程)。
–如果intra_mip_flag[xCb][yCb]的值等于1,则将lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,如果CuPredMode[xCb][yCb]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
当CUPredMode[xCb][yCb]等于MODE_IBC时,VVC的工作草案中不定义帧内预测模式。
在图7所示的示例中,启用二叉树译码方法时(一个用于树划分亮度,一个用于树划分色度),编码区域(例如,编码区域为CTU)中亮度预测块和色度预测块的划分不对齐。为了简单起见,假设CTU中的色度分量被划分为两部分,即,左子部分和右子部分(图7中的左CTU)。CTU中的亮度分量也被划分为两部分,即上子部分和下子部分。亮度分量的上子部分应用普通帧内预测模式,下部分应用IBC模式(图7中的右CTU)。
在图7所示的示例中,色度分量执行色度帧内预测模式推导。根据前面定义的色度帧内预测模式推导的VVC过程,intra_mip_flag[xCb][yCb]的值等于0,因为亮度分量内的上子部分使用普通帧内预测模式,其左上位置为(xCb,yCb)。出于同样的原因,CuPredMode[xCb][yCb]也不等于MODE_IBC,其中,位置(xCb,yCb)属于亮度分量的上子部分,这里的块应用普通帧内预测。因此,色度帧内预测模式推导将在(xCb+cbWidth/2,yCb+cbHeight/2)处获取普通亮度帧内预测模式的值(即IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2])。但是,位置(xCb+cbWidth/2,yCb+cbHeight/2)现指向亮度分量中下子部分中的位置(如图7中下CTU所示)。亮度分量的下子部分应用IBC,没有定义亮度帧内预测模式。因此,在当前规范中,IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]的值是未定义的值。在这种情况下,打破了色度帧内预测模式推导过程。
图7中提出的示例示出了一个极端情况,其中,亮度分量中的两个子部分分别应用普通帧内预测模式和IBC模式。可以推断,当IBC被MIP或调色板模式替换时,也打破了色度推导过程。
亮度位置(xCb,yCb),表示相对于当前图像的左上亮度样本的当前色度译码块的左上样本。
获取当前译码块的色度分量的左上位置的亮度位置值(xCb,yCb),亮度位置值(xCb,yCb)以当前译码块的亮度样本为单位进行表示;获取当前译码块的第一指示信息(例如,intra_mip_flag)的值,推导当前译码块的第一指示信息的值,对应于相对于当前译码块的左上亮度样本的亮度位置(cbWidth/2,cbHeight/2),cbWidth以亮度样本为单位表示当前译码块的宽度,cbHeight以亮度样本为单位表示当前译码块的高度(在一个示例中,第一指示信息从亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)推导)。
在图8所示的示例中,当前图像的左上位置的位置值为(0,0),当前译码块的左上位置的位置值为(128,64)。当前译码块的宽度为64,当前译码块的高度为32。因此,用于推导帧内预测模式的位置值为((128+64/2,64+32/2)),即(160,80)。
在本发明的一个实施例中,IBC或MIP标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,如果CuPredMode[xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在这种情况下,再次以图7为例,色度帧内预测模式推导将落入第二个分支(即,否则,如果CuPredMode[xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC),lumaIntraPredMode设置为等于DC模式。
该方法确保使用对齐位置首先检测IBC模式和MIP模式,因此变量lumaIntraPredMode将始终被分配有效的亮度帧内预测模式。
在一个实施例中,IBC或MIP标志的位置与亮度帧内预测模式的位置对齐,并且它们对应的帧内预测模式都设置为平面模式,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,或CuPredMode[xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在一个实施例中,IBC或MIP标志的位置与亮度帧内预测模式的位置对齐,并且它们对应的帧内预测模式都设置为DC模式,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,或CuPredMode[xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在本发明的一个实施例中,IBC或MIP标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,如果CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在本发明的一个实施例中,IBC或MIP或调色板标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,如果CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在本发明的一个实施例中,IBC或MIP或调色板标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,或如果CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在本发明的一个实施例中,IBC或MIP或调色板标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,或如果CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在本发明的一个实施例中,IBC或MIP或调色板标志的位置与亮度帧内预测模式的位置对齐,以下过程适用:
–如果CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT,则lumaIntraPredMode设置为等于INTRA_DC。
–否则,如果intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1,则lumaIntraPredMode设置为等于INTRA_PLANAR。
–否则,lumaIntraPredMode设置为等于IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在上述实施例中,使用CuPredMode[xCb+cbWidth/2][yCb+cbHeight/2]或CuPredMode[i][xCb+cbWidth/2][yCb+cbHeight/2]。事实上,它们表示相同的东西,即亮度分量位置(xCb+cbWidth/2,yCb+cbHeight/2)的预测模式。需要说明的是,CuPredMode[i][xCb+cbWidth/2][yCb+cbHeight/2]与指定亮度或色度分量的另一个维度一起使用,其中,i=0或1。CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]表示亮度分量的预测模式,因为其维度索引为0。如果使用色度信道,则对应的变量将是CuPredMode[1][xCb+cbWidth/2][yCb+cbHeight/2]。
在上述实施例中,当CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_PLT时,它表示亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用调色板模式。亮度位置(cbWidth/2,cbHeight/2)表示相对于当前译码块左上亮度样本的位置。当前译码块的左上样本(xCb,yCb)表示相对于当前图像的左上样本的位置。
亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)的示例如图7所示,其中,xCb=128,yCb=64,cbWidth=64,cbHeight=32。
具体地,以下方法和实施例由解码设备或编码设备实现。解码设备可以为图1A的视频解码器30或图3的解码器30。编码设备可以为图1A的视频编码器20或图2的编码器20。
根据实施例900(见图9),在步骤901中,设备获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第一指示信息,其中,cbWidth以亮度分量为单位表示当前译码块的宽度,cbHeight以亮度分量为单位表示当前译码块的高度。对应地,cbWidth/2以亮度分量为单位表示当前译码块的宽度的一半,cbHeight/2以亮度分量为单位表示当前译码块的高度的一半。亮度位置(cbWidth/2,cbHeight/2)的绝对位置为(xCb+cbWidth/2,yCb+cbHeight/2),即,对应的亮度预测块的“中间”。
例如,亮度位置(cbWidth/2,cbHeight/2)的第一指示信息可以是intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]。
在步骤902中,当第一指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用基于矩阵的帧内预测(matrix-based intra prediction,MIP)时,设备将与当前译码块相关联的亮度帧内预测模式的值设置为第一默认值。例如,第一个默认值是平面模式的值。
当intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]等于1时,第一指示信息表示亮度分量使用MIP。
在步骤903中,当第一指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量不使用MIP时,设备获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第二指示信息。
当intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]等于0时,第一指示信息表示亮度分量不使用MIP。
亮度位置(cbWidth/2,cbHeight/2)的第二信息可以为CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]。
在步骤905中,当第二指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用帧内块复制(intra blockcopy,IBC)模式或调色板模式时,设备将与当前译码块相关联的亮度帧内预测模式的值设置为第二默认值。例如,第二默认值是DC模式的值。
当CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC时,第二指示信息表示亮度分量使用IBC模式。当CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_PLT时,第二指示信息表示亮度分量使用调色板模式。
当第二指示信息表示亮度位置(cbWidth/2,cbHeight/2)的亮度分量不使用IBC模式或调色板模式时,与当前译码块相关联的亮度帧内预测模式设置为等于位置[xCb+cbWidth/2][yCb+cbHeight/2]的亮度帧内预测模式,即,IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]。
在步骤907中,设备根据当前译码块的亮度帧内预测模式的值,获取色度帧内预测模式的值。如果当前译码块的亮度帧内预测模式的值为步骤902中所示的第一默认值,则设备根据第一默认值获取色度帧内预测模式的值。如果当前译码块的亮度帧内预测模式的值为步骤905中所示的第二默认值,则设备根据第二默认值获取色度帧内预测模式的值。
上述实施例中示出了通过使用来自对应的亮度分量的帧内预测模式推导色度帧内预测模式的详细信息。
图10示出了设备1000的实施例。设备1000可以为图1A的视频解码器30或图3的解码器30,或可以为图1A的视频编码器20或图2的编码器20。设备1000可以用于实现实施例900和上述其它实施例。
用于获取色度帧内预测模式的设备1000包括获取单元1001、设置单元1002和色度帧内预测模式单元1003。获取单元1001用于获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第一指示信息,其中,cbWidth以亮度分量为单位表示当前译码块的宽度,cbHeight以亮度分量为单位表示当前译码块的高度。设置单元1002用于当第一指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用基于矩阵的帧内预测(matrix-based intra prediction,MIP)时,将与当前译码块相关联的亮度帧内预测模式的值设置为第一默认值。
获取单元1001还用于当第一指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量不使用MIP时,获取当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第二指示信息。
设置单元1002还用于当第二指示信息表示相对于当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用帧内块复制(intrablock copy,IBC)模式或调色板模式时,将与当前译码块相关联的亮度帧内预测模式的值设置为第二默认值。
色度帧内预测模式单元1003用于根据当前译码块的亮度帧内预测模式的值,获取色度帧内预测模式的值。
本发明提供以下一组实施例或方面:
根据第一方面,本发明涉及一种由解码设备实现的译码方法,包括:
获取当前译码块的第一指示信息的值,其中,当前译码块的第一指示信息的值从相对于当前译码块的左上亮度样本(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)对应的亮度分量推导,cbWidth以亮度样本为单位表示当前译码块的宽度,cbHeight以亮度样本为单位表示当前译码块的高度。
当第一指示信息的值表示相对于当前译码块的左上亮度样本(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用基于矩阵的帧内预测(matrix-based intraprediction,MIP)时,将与当前译码块相关联的亮度帧内预测模式的值设置为第一默认值;
根据当前译码块的亮度帧内预测模式的值,获取色度帧内预测模式的值。
根据第二方面,本发明涉及一种由解码设备实现的译码方法,包括:
获取当前译码块的第一指示信息的值,其中,当前译码块的第一指示信息的值从相对于当前译码块的左上亮度样本(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)对应的亮度分量推导,其中,cbWidth以亮度样本为单位表示当前译码块的宽度,cbHeight以亮度样本为单位表示当前译码块的高度。
当第一指示信息的值表示相对于当前译码块的左上亮度样本(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用帧内块复制(intra block copy,IBC)模式或调色板模式时,将与当前译码块相关联的亮度帧内预测模式的值设置为第一默认值;
根据当前译码块的亮度帧内预测模式的值,获取色度帧内预测模式的值。
如上所述,在与MIP或IBC或调色板相关的传统情况下(如图7所示的示例),当亮度分量的划分与色度分量的划分不同时(例如,当启用二叉树译码方法时),模式MIP(或IBC,或调色板)的位置与亮度帧内预测模式的位置之间不对齐。在本发明的各方面和实现方式中,从对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第一指示信息确保了当在给定的块大小中,亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式MIP的位置和亮度帧内预测模式的位置对齐。当第一指示信息未表示亮度位置(cbWidth/2,cbHeight/2)的亮度分量使用MIP时,从对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第二指示信息确保了当在给定的块大小中,亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式IBC的位置和亮度帧内预测模式的位置对齐。或者,从对应的亮度分量中的固定位置(cbWidth/2,cbHeight/2)获取第二指示信息确保了当在给定的块大小中,亮度分量的划分不同于色度分量的划分时(例如当启用二叉树译码方法时),模式调色板的位置和亮度帧内预测模式的位置对齐。
下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。
图11为用于实现内容分发服务的内容供应系统3100的框图。该内容供应系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102与终端设备3106通过通信链路3104进行通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、电缆、无线(3G/4G/5G)、USB或者其任何组合等。
捕获设备3102生成数据,并且可以通过如上述实施例所示的编码方法对数据进行编码。或者,捕获设备3102可以将数据分发给流服务器(图中未示出),服务器对数据进行编码并将编码数据发送给终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备,或它们的任何组合等。例如,捕获设备3102可以包括如以上所描述的源设备12。当数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当数据包括音频(即,语音)时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将编码视频和音频数据复用在一起来进行分发。对于其它实用场景,例如在视频会议系统中,不复用编码音频数据和编码视频数据。捕获设备3102将编码音频数据和编码视频数据分别分发给终端设备3106。
在内容提供系统3100中,终端设备310接收并再现编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任何组合,或者能够解码上述编码数据的设备。例如,终端设备3106可以包括如以上所描述的目的地设备14。当编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码。当编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。
对于带有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络录像机(network video recorder,NVR)/数字录像机(digital videorecorder,DVR)3112、TV 3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将解码数据馈送到该终端设备的显示器。对于没有显示器的终端设备(例如STB 3116、视频会议系统3118或视频监控系统3120),连接外部显示器3126以接收并显示解码数据。
该系统中的每个设备在进行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
图12为终端设备3106的一个示例的结构的图。在终端设备3106从捕获设备3102接收流之后,协议处理单元(protocol proceeding unit)3202分析流的传输协议。协议包括但不限于实时流协议(real time streaming protocol,RTSP)、超文本传输协议(hypertext transfer protocol,HTTP)、HTTP直播协议(HTTP live streaming protocol,HLS)、MPEG-DASH、实时传输协议(real-time transport protocol,RTP)、实时消息协议(realtime messaging protocol,RTMP)或其任何组合等。
协议处理单元3202对流进行处理后,生成流文件。将文件输出到解复用单元3204。解复用单元3204可以将复用数据分为编码音频数据和编码视频数据。如以上所描述,对于一些实际场景,例如在视频会议系统中,不复用编码音频数据和编码视频数据。在这种情况下,将编码数据发送到视频解码器3206和音频解码器3208,无需经过解复用单元3204。
通过解复用处理,生成视频基本流(elementary stream,ES)、音频ES和可选的字幕。视频解码器3206包括如上述实施例中所说明的视频解码器30,通过如上述实施例中所示的解码方法对视频ES进行解码以生成视频帧,并将该数据馈送到同步单元3212。音频解码器3208,解码音频ES以生成音频帧,并将该数据馈送到同步单元3212。或者,在将视频帧馈送到同步单元3212之前,可以将该视频帧存储在缓冲区(图Y中未示出)中。类似地,在将音频帧馈送到同步单元3212之前,可以将该音频帧存储在缓冲区(图Y中未示出)中。
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频和音频信息的呈现。可以使用关于译码音频和视频数据的表示的时间戳和关于数据流本身的传递的时间戳在语法中对信息进行译码。
如果流中包括字幕,则字幕解码器3210解码字幕,并使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以结合到其它系统,例如汽车系统。
数学运算符
本申请中使用的数学运算符与C编程语言中使用的数学运算符类似。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如指数运算和实值除法运算。编号和计数规范通常约定从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
算术运算符
以下算术运算符定义如下:
+ 加法
– 减法(用作双参数运算符)或者非运算(用作一元前缀运算符)。
* 乘法,包括矩阵乘法。
xy 指数运算,表示x的y次幂。在其它上下文中,该表示形式也可以用作上标,而不应解释为是指数运算。
/ 向零方向对结果进行截断的整数除法。例如,7/4和–7/–4被截断成1,–7/4和7/–4被截断成–1。
÷ 用来表示数学等式中的除法运算,但没有截断或者四舍五入操作。
Figure GDA0003637555010000271
用来表示数学等式中的除法运算,但没有截断或者四舍五入操作。
Figure GDA0003637555010000272
f(i)的和,i取从x到y的所有整数值,包括x和y。
x%y 取模运算,x除以y得到的余数,仅针对x>=0且y>0的整数x和y定义。
逻辑运算符
以下逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”操作
x||y x和y的布尔逻辑“或”操作
! 布尔逻辑“非”
x?y:z 如果x为真或不等于0,则等于y的值;否则,等于z的值。
关系运算符
以下关系运算符定义如下:
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
当关系运算符用于一个已赋值为“na”(不适用)的语法元素或变量时,则将值“na”视为该语法元素或变量的唯一值。值“na”不等于任何其它值。
按位运算符
以下按位运算符的定义如下:
& 按位“与”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
| 按位“或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
^ 按位“异或”。对整数参数进行运算时,对整数值的二的补码表示进行运算。当对二进制参数进行运算时,如果它包括的位比另一个参数少,则通过添加等于0的更多有效位来扩展较短的参数。
x>>y 将x的二的补码整数表示算法右移y个二进制数字。该函数仅针对y的非负整数值定义。右移的结果是移到最高有效位(most significant bit,MSB)的位的值等于移位操作前的x的MSB。
x<<y 将x的二的补码整数表示算法左移y个二进制数字。该函数仅针对y的非负整数值定义。左移的结果是移到最低有效位(least significant bit,LSB)的位的值等于0。
赋值运算符
以下算术运算符定义如下:
= 赋值运算符
++ 递增,即,x++等价于x=x+1;当用于数组索引时,等于递增操作之前变量的值。
–– 递减,即,x––等价于x=x–1;当用于数组索引时,等于递减操作之前变量的值。
+= 按指定数量递增,即,x+=3等价于x=x+3,x+=(–3)等价于x=x+(–3)。
–= 按指定数量递减,即,x–=3等价于x=x–3,x–=(–3)等价于x=x–(–3)。
范围表示法
以下表示法用于指定值的范围:
x=y..z x取从y到z的整数值(包括y和z),其中,x、y和z是整数,并且z大于y。
数学函数
数学函数定义如下:
Figure GDA0003637555010000281
Asin(x)三角反正弦函数,对参数x进行运算,x在–1.0至1.0的范围内(包括端值),输出值在–π÷2至π÷2的范围内(包括端值),单位为弧度。
Atan(x)三角反正切函数,对参数x运算,输出值在–π÷2至π÷2的范围内(包括端值),单位为弧度。
Figure GDA0003637555010000282
Ceil(x)表示大于或等于x的最小整数值。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)–1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)–1,x)
Figure GDA0003637555010000291
Cos(x)三角余弦函数,对参数x运算,单位为弧度。
Floor(x)表示小于或等于x的最大整数值。
Figure GDA0003637555010000292
Ln(x)x的自然对数(以e为底的对数,其中,e是自然对数底数常数2.718281828……)。
Log2(x)以2为底x的对数。
Log10(x)以10为底x的对数。
Figure GDA0003637555010000293
Figure GDA0003637555010000294
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure GDA0003637555010000295
Sin(x)三角正弦函数,对参数x进行运算,单位为弧度。
Figure GDA0003637555010000296
Swap(x,y)=(y,x)
Tan(x)三角正切函数,对参数x进行运算,单位为弧度。
运算优先级顺序
当没有使用括号来显式的表示优先顺序时,则遵循如下规则:
–高优先级的运算在低优先级的运算之前进行。
–相同优先级的运算从左到右依次进行。
下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。
如果在C编程语言中也使用这些运算符,则本文中采用的优先级顺序与C编程语言中采用的优先级顺序相同。
表:运算优先级从最高(表格顶部)到最低(表格底部)进行排序
Figure GDA0003637555010000297
Figure GDA0003637555010000301
逻辑运算的文字描述
文本中,逻辑运算中的语句以数学形式描述如下:
Figure GDA0003637555010000302
可以通过如下方式进行描述:
……如下/……以下为准:
–如果条件0,则语句0
–否则,如果条件1,则语句1
-……
–否则(剩余条件的提示性说明),则语句n
文本中的每个“如果……否则,如果……否则,……”语句由“……如下”或“……以下为准”(后面紧跟着“如果……”)引入。最后一个条件“如果……否则,如果……否则,……”总有一个“否则,……”。插入的“如果……否则,如果……否则,……”语句可以通过匹配“……如下”或“……以下为准”,以“否则,……”结尾来识别。
文本中,逻辑运算中的语句以数学形式描述如下:
Figure GDA0003637555010000303
可以通过如下方式进行描述:
……如下/……以下为准:
–如果以下所有条件都为真,则语句0:
–条件0a
–条件0b
–否则,如果以下一个或多个条件为真,则语句1:
–条件1a
–条件1b
-……
–否则,语句n
文本中,逻辑运算中的语句以数学形式描述如下:
if(condition 0)
statement 0
if(condition 1)
statement 1
可以通过如下方式进行描述:
如果条件0,则语句0
如果条件1,则语句1。
尽管本发明实施例已经主要根据视频译码进行描述,但需要说明的是,译码系统10、编码器20和解码器30(以及对应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即独立于视频译码中任何前面或连续的图像的处理或译码。通常,在图像处理译码限于单个图像17的情况下,可能只有帧间预测单元244(编码器)和344(解码器)不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)可以同样用于静止图像处理,例如残差计算204/304,变换206,量化208,反量化210/310,(逆)变换212/312,划分262/362,帧内预测254/354和/或环路滤波220、320,熵编码270和熵解码304。
编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则功能可以存储在计算机可读介质中或作为一个或多个指令或代码通过通信介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,对应数据存储介质等有形介质,或包括便于例如根据通信协议将计算机程序从一个地方传输到另一个地方的任何介质的通信介质。在这种方式中,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质或(2)通信介质,例如信号或载波。数据存储介质可以是任何可用介质,可由一个或多个计算机或一个或多个处理器访问以检索用于实现本发明所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存,或可以用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以称为计算机可读介质。例如,如果指令是从网站、服务器或其它远程源通过同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(例如红外、无线电、微波等)发送的,则介质的定义包括同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外、无线电和微波等)。但是,应理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬时介质,而是指非瞬时有形存储介质。本文使用的磁盘和光盘包括压缩光盘(compact disc,CD)、激光光盘、光盘、数字通用光盘(digital versatile disc,DVD)、软盘和蓝光光盘,盘通常磁性地再现数据,而光盘则用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,例如一个或多个数字信号处理器(digitalsignal processor,DSP)、通用微处理器、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程逻辑阵列(field programmable logic array,FPGA)或其它等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何上述结构或任何适合于实现本文所描述的技术的任何其它结构。此外,在一些方面中,本文所描述的功能可以在用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本发明的技术可以在多种设备或装置中实现,包括无线手持电话、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明描述各种组件、模块或单元以强调用于执行所公开技术的设备的功能方面,但这些组件、模块或单元不一定要求通过不同的硬件单元实现。相反,如以上所描述,各种单元可以组合在编解码器硬件单元中,或者由包括如以上所描述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。

Claims (17)

1.一种由解码设备或编码设备实现的译码方法,其特征在于,包括:
获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度;
当所述指示信息表示相对于所述当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix-basedintra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值,所述第一默认值为平面(Planar)模式的值;
当相对于所述当前译码块的左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)使用帧内块复制(intra block copy,IBC)模式或调色板(palette)模式,并且所述指示信息表示所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量不使用MIP时,将与所述当前译码块相关联的所述亮度帧内预测模式的值设置为第二默认值,所述第二默认值为DC模式的值;
根据所述当前译码块的所述亮度帧内预测模式的值,获取色度帧内预测模式的值。
2.根据权利要求1所述的方法,其特征在于,所述当前译码块的所述亮度分量的划分色度分量的划分亮度分量的划分和色度分量的划分不对齐。
3.根据权利要求1所述的方法,其特征在于,所述亮度位置(cbWidth/2,cbHeight/2)的绝对位置为(xCb+cbWidth/2,yCb+cbHeight/2),所述绝对位置(xCb+cbWidth/2,yCb+cbHeight/2)表示相对于当前图像的左上样本的位置;所述亮度位置(cbWidth/2,cbHeight/2)表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的位置。
4.根据权利要求1至3中任一项所述的方法,其特征在于,亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用所述IBC模式或调色板模式包括:
CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]分别等于MODE_IBC或MODE_PLT。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述指示信息表示亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用所述MIP包括:
intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]的值等于1。
6.一种获取色度帧内预测模式的设备,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,与所述处理器耦合并存储由所述处理器执行的程序,其中,当所述程序由所述处理器执行时,使所述设备:
获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第一指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度;
当所述第一指示信息表示相对于所述当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix-basedintra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值,所述第一默认值为平面(Planar)模式的值;
当所述第一指示信息表示相对于所述当前译码块的左上亮度样本位置(xCb,yCb)的亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量不使用所述MIP时,获取所述当前译码块的所述亮度位置(cbWidth/2,cbHeight/2)的第二指示信息;
当所述第二指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用帧内块复制(intra blockcopy,IBC)模式或调色板模式时,将与所述当前译码块相关联的所述亮度帧内预测模式的所述值设置为第二默认值,所述第二默认值为DC模式的值;
根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。
7.根据权利要求6所述的设备,其特征在于,所述第一指示信息为intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2],
当intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]等于1时,所述第一指示信息表示所述亮度分量使用所述MIP。
8.根据权利要求6所述的设备,其特征在于,所述第二指示信息为CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2],
当CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT时,所述第二指示信息表示所述亮度分量使用IBC模式或调色板模式。
9.根据权利要求6至8中任一项所述的设备,其特征在于,所述设备是解码器或编码器。
10.根据权利要求6至8中任一项所述的设备,其特征在于,所述当前译码块的所述亮度分量的划分色度分量的划分亮度分量的划分和色度分量的划分不对齐。
11.一种编码器(20),其特征在于,包括处理电路,用于执行根据权利要求1至5中任一项所述的方法。
12.一种解码器(30),其特征在于,包括处理电路,用于执行根据权利要求1至5中任一项所述的方法。
13.一种计算机可读介质,其特征在于,存储计算机程序,所述计算机程序被处理器执行以实现权利要求1至5中任一项所述的方法。
14.一种获取色度帧内预测模式的设备,其特征在于,包括:
获取单元(1001),用于获取相对于当前译码块的左上亮度样本位置(xCb,yCb)的所述当前译码块的亮度位置(cbWidth/2,cbHeight/2)的第一指示信息,其中,cbWidth以亮度分量为单位表示所述当前译码块的宽度,cbHeight以所述亮度分量为单位表示所述当前译码块的高度;
设置单元(1002),用于当所述第一指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用基于矩阵的帧内预测(matrix-based intra prediction,MIP)时,将与所述当前译码块相关联的亮度帧内预测模式的值设置为第一默认值,所述第一默认值为平面(Planar)模式的值;
所述获取单元(1001),还用于当所述第一指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量不使用所述MIP时,获取所述当前译码块的所述亮度位置(cbWidth/2,cbHeight/2)的第二指示信息;
所述设置单元(1002),还用于当所述第二指示信息表示相对于所述当前译码块的所述左上亮度样本位置(xCb,yCb)的所述亮度位置(cbWidth/2,cbHeight/2)的所述亮度分量使用帧内块复制(intra block copy,IBC)模式或调色板模式时,将与所述当前译码块相关联的所述亮度帧内预测模式的所述值设置为第二默认值,所述第二默认值为DC模式的值;
色度帧内预测模式单元(1003),用于根据所述当前译码块的所述亮度帧内预测模式的所述值,获取色度帧内预测模式的值。
15.根据权利要求14所述的设备,其特征在于,所述第一指示信息为intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2],
当intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2]等于1时,所述第一指示信息表示所述亮度分量使用所述MIP。
16.根据权利要求14所述的设备,其特征在于,所述第二指示信息为CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2],
当CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2]等于MODE_IBC或MODE_PLT时,所述第二指示信息表示所述亮度分量使用IBC模式或调色板模式。
17.根据权利要求14至16中任一项所述的设备,其特征在于,所述设备是解码器或编码器。
CN202110976891.4A 2019-07-24 2020-07-17 帧内预测模式相关的编码器、解码器、对应方法及计算机可读介质 Active CN113891084B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EPPCT/EP2019/069944 2019-07-24
EP2019069944 2019-07-24
EP2019072611 2019-08-23
EPPCT/EP2019/072611 2019-08-23
CN202080015671.9A CN113796078A (zh) 2019-07-24 2020-07-17 帧内预测模式相关的编码器、解码器及对应方法
PCT/CN2020/102524 WO2021013053A1 (en) 2019-07-24 2020-07-17 An encoder, a decoder and corresponding methods related to intra prediction mode

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080015671.9A Division CN113796078A (zh) 2019-07-24 2020-07-17 帧内预测模式相关的编码器、解码器及对应方法

Publications (2)

Publication Number Publication Date
CN113891084A CN113891084A (zh) 2022-01-04
CN113891084B true CN113891084B (zh) 2022-11-11

Family

ID=79011429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110976891.4A Active CN113891084B (zh) 2019-07-24 2020-07-17 帧内预测模式相关的编码器、解码器、对应方法及计算机可读介质

Country Status (1)

Country Link
CN (1) CN113891084B (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595121A (zh) * 2011-01-15 2012-07-18 华为技术有限公司 帧内预测模式二进制化的方法、解码方法、装置和系统
WO2017034331A1 (ko) * 2015-08-27 2017-03-02 엘지전자 주식회사 영상 코딩 시스템에서 크로마 샘플 인트라 예측 방법 및 장치
CN109862353B (zh) * 2018-12-29 2022-11-22 浙江大华技术股份有限公司 色度块预测模式获取方法、装置、编解码器及存储装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Kai Zhang等.Non-CE3: Fixed MPMs for MIP(JVET-O0255).《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting》.2019, *
Non-CE3: Fixed MPMs for MIP(JVET-O0255);Kai Zhang等;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting》;20190626;第8.4.4节 *
Versatile Video Coding (Draft 6)( JVET-O2001-v11);Benjamin Bross等;《Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting》;20190723;第8.4.3节 *

Also Published As

Publication number Publication date
CN113891084A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
WO2020221203A1 (en) An encoder, a decoder and corresponding methods of intra prediction
CN114650419B (zh) 进行帧内预测的编码器、解码器和对应方法
AU2020318106B2 (en) An encoder, a decoder and corresponding methods related to intra prediction mode
CN113785573A (zh) 编码器、解码器和使用自适应环路滤波器的对应方法
CN113597761A (zh) 帧内预测方法和装置
CN113170202A (zh) 用于构建应用多假设预测的块的mpm列表的编码器、解码器及相应方法
CN115039406A (zh) 编码器、解码器和用于在序列参数集中指示子图像的对应方法
CN113660489B (zh) 用于帧内子划分的解码方法、装置、解码器和存储介质
CN113348665A (zh) 编码器、解码器及色度帧内模式推导的对应方法
CN113574870B (zh) 编码器、解码器及其实现的对当前块进行预测译码的方法
CN113727120B (zh) 译码方法、装置、编码器和解码器
CN113302929A (zh) 几何分割模式的样本距离计算
CN113692740A (zh) 用于无除法帧内预测的方法和装置
CN113891084B (zh) 帧内预测模式相关的编码器、解码器、对应方法及计算机可读介质
CN114830652A (zh) 用于方向性帧内预测的参考样本插值滤波的方法及装置
CN113330741A (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