用于帧内预测模式与块差分脉冲编码调制模式之间交互的方法和装置

文档序号:174677 发布日期:2021-10-29 浏览:28次 >En<

阅读说明:本技术 用于帧内预测模式与块差分脉冲编码调制模式之间交互的方法和装置 (Method and apparatus for interaction between intra prediction mode and block differential pulse code modulation mode ) 是由 赵欣 李翔 赵亮 刘杉 于 2020-04-30 设计创作,主要内容包括:一种在视频解码器中执行的视频解码方法,包括:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码。方法进一步包括:响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联。方法进一步包括:使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值。方法进一步包括:使用所确定的帧内预测模式值对第二块进行重建。(A video decoding method performed in a video decoder, comprising: a determination is made whether to encode a first block associated with a second block using a Block Differential Pulse Code Modulation (BDPCM) mode. The method further comprises the following steps: in response to determining to encode the first block using the BDPCM mode, the first block is associated with an intra-prediction mode value based on the BDPCM direction flag. The method further comprises the following steps: an intra-prediction mode value associated with the first block is used to determine an inter-prediction mode value for the second block. The method further comprises the following steps: reconstructing the second block using the determined intra prediction mode value.)

用于帧内预测模式与块差分脉冲编码调制模式之间交互的方 法和装置

援引并入

本申请要求于2020年4月29日提交的题为“METHOD AND APPARATUS FORINTERACTION BETWEEN INTRA PREDICTION MODE AND BLOCK DIFFERENTIAL PULSE-CODEMODULATION MODE”的美国专利申请第16/862,221号(其要求于2019年4月30日提交的题为“INTERACTION BETWEEN INTRA PREDICTION MODE AND BLOCK DIFFERENTIAL PULSE-CODEMODULATION MODE”的美国临时申请第62/841,003号的优先权权益)的优先权权益。在先申请的全部内容通过引用整体并入本文。

技术领域

本公开描述了总体上涉及视频编码的实施例。

背景技术

本文所提供的背景描述是出于总体上呈现本公开的环境的目的。在该背景部分中描述作品的范围内,目前命名的发明人的作品以及提交之时不可另行具备现有技术资格的本描述的各方面既未明确、亦未默示地承认为本公开的现有技术。

可使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可包括一系列图片,每个图片具有例如1920×1080亮度样本及相关联的色度样本的空间维度。该一系列图片可具有固定的或可变的图片速率(也非正式地称为帧率),例如每秒60幅图片或60Hz。未压缩的视频具有很高的比特率要求。例如,在每样本8比特下,1080p60 4:2:0的视频(在60Hz帧率下具有1920×1080亮度样本分辨率)需要接近1.5Gbit/s的带宽。一小时的此类视频需要600GB以上的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可有助于减小上述带宽或存储空间需求,在某些情况下可减小两个数量级或大于两个数量级。可采用无损压缩和有损压缩以及它们的组合。无损压缩是指可从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建信号可能与原始信号不同,但是原始信号和已重建信号之间的失真足够小,以使已重建信号可用于预期应用。在视频的情况下,广泛使用有损压缩。可容忍的失真量取决于应用;例如某些消费流式应用的用户相比电视分布应用的用户来说可容忍更高的失真。可实现的压缩率可反映:更高的可允许/可容许的失真可产生更高的压缩率。

视频编码器和解码器可利用来自若干广泛类别的技术,例如包括运动补偿、变换、量化和熵编码。

视频编解码器技术可包括称为帧内编码的技术。在帧内编码中,样本值在没有参考来自先前已重建参考图片的样本或其它数据的情况下被表示。在一些视频编解码器中,图片在空间上被细分成样本块。当以帧内模式对所有样本块进行编码时,该图片可以是帧内图片。帧内图片及其派生物(例如,独立的解码器刷新图片)可用于重置解码器状态,并因此可用作已编码视频比特流和视频会话中的第一图片,或用作静止图像。帧内块的样本可暴露于变换,且变换系数可在熵编码之前量化。帧内预测可以是最小化预变换域中的样本值的技术。在一些情况下,变换之后的DC值越小且AC系数越小,在给定的量化步长下表示熵编码之后的块所需的比特越少。

传统的帧内编码(例如,从例如MPEG-2代编码技术中已知的帧内编码)不使用帧内预测。然而,一些较新的视频压缩技术包括从例如周围样本数据和/或元数据进行尝试的技术,该样本数据和/或元数据在进行空间上相邻的编码/解码期间获得且解码顺序在数据块之前。这种技术此后被称为“帧内预测”技术。需要注意的是,在至少一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自参考图片的参考数据。

可以有许多不同形式的帧内预测。当在给定的视频编码技术中可使用一种以上这样的技术时,可以以帧内预测模式对所使用的技术进行编码。在某些情况下,模式可具有子模式和/或参数、以及模式可被单独编码或包括在模式码字中。哪个码字用于给定的模式/子模式/参数组合,可能对通过帧内预测的编码效率增益具有影响,且熵编码技术也可用于将码字转换成比特流。

某些帧内预测模式随着H.264被引入,在H.265中进行改进,并进一步在更新的编码技术(例如,联合探测模型(JEM)、下一代视频编码(VVC)和基准集(BMS))中进行改进。可使用属于已有的可用样本的相邻样本值来形成预测器块。根据方向将相邻样本的样本值复制到预测器块中。对使用中的方向的参考可被编码在比特流中或者自身可被预测。

参考图1A,在右下方描绘了从H.265的33种可能的预测方向(对应于35个帧内模式的33个角模式)已知的9个预测方向的子集。箭头汇聚的点(101)表示被预测的样本。箭头表示预测样本所沿的方向。例如,箭头(102)指示从在右上方、与水平方向成45度角的一个或多个样本预测样本(101)。类似地,箭头(103)指示从在样本(101)的左下方、与水平方向成22.5度角的一个或多个样本预测样本(101)。

仍然参考图1,在左上方描绘了4×4个样本的方形块(104)(由虚黑体线指示)。方形块(104)包括16个样本,每个样本用“S”、其在Y维度上的位置(例如,行索引)和其在X维度上的位置(例如,列索引)来标记。例如,样本S21是在Y维度上(从上方开始)的第二个样本和在X维度上(从左侧开始)的第一个样本。类似地,样本S44是在Y和X维度上、块(104)中的第四样本。由于块的大小为4×4个样本,因此S44位于右下角。还示出了遵循类似编号方案的参考样本。参考样本用R、其相对于块(104)的Y位置(例如,行索引)和X位置(列索引)来标记。在H.264和H.265中,预测样本都与正在重建的块相邻;因此,无需使用负值。

帧内图片预测可通过适合于用信号表示的预测方向从相邻样本复制参考样本值来工作。例如,假设已编码视频比特流包括信令,该信令针对该块指示与箭头(102)一致的预测方向,即从在右上方、与水平方向成45度角的一个或多个预测样本来预测样本。在那种情况下,从相同的参考样本R05预测样本S41,S32,S23和S14。然后从参考样本R08预测样本S44。

在一些情况下,可例如通过插值来组合多个参考样本的值,以计算参考样本;尤其是当方向无法以45度均匀分开时。

随着视频编码技术的发展,可能的方向的数量增加。在H.264(2003年)中,可以表示九个不同的方向。在H.265(2013年)中,增加到33个方向,以及在本公开时,JEM/VVC/BMS可支持多达65个方向。已进行实验以识别最可能的方向,且熵编码中的一些技术用于以少量比特表示那些可能的方向,对于不太可能的方向,接受一定的代价。此外,有时可从已经解码的相邻块中使用的相邻方向来预测方向本身。

图1B示出了用于HEVC(高性能视频编码)中的帧内预测模式。在HEVC中,总共有35个帧内预测模式,其中模式10是水平模式,模式26是垂直模式,而模式2、模式18和模式34是对角模式。通过三个最可能模式(most probable mode,MPM)和32个剩余的模式来用信号表示帧内预测模式。

图1C示出了用于VVC中的帧内预测模式。如图1C所示,在VVC中,总共有95个帧内预测模式,其中模式18是水平模式,模式50是垂直模式,而模式2、模式34和模式66是对角模式。模式-1~-14和模式67~80被称为广角帧内预测(WAIP)模式。

已编码视频比特流中表示方向的帧内预测方向比特的映射可能因视频编码技术而不同;例如,其范围可以从预测方向简单直接映射到帧内预测模式,映射到码字,映射到涉及MPM的复杂自适应方案,以及类似技术。然而,在所有情况下,可存在某些方向,这些方向与某些其他方向相比,在统计上在视频内容中出现的可能性较小。由于视频压缩的目标是减少冗余,因此在一种运行良好的视频编码技术中,那些不太可能的方向将由比更大可能的方向更大的位数表示。

发明内容

根据示例性实施例,一种在视频解码器中执行的视频解码方法,包括:确定是否使用块差分脉冲编码调制(block differential pulse code modulation,BDPCM)模式对与第二块相关联的第一块进行编码。方法进一步包括:响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联。方法进一步包括:使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值。方法进一步包括:使用所确定的帧内预测模式值对第二块进行重建。

根据示例性实施例,一种用于视频解码的视频解码器,包括处理电路,该处理电路被配置为:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码。响应于确定使用BDPCM模式对第一块进行编码,处理电路进一步被配置为:基于BDPCM方向标志将第一块与帧内预测模式值相关联。处理电路进一步被配置为:使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值。处理电路进一步被配置为:使用所确定的帧内预测模式值对第二块进行重建。

根据示例性实施例,一种非暂时性计算机可读介质,存储有指令,该指令在由视频解码器中的处理器执行时使得处理器执行方法,该方法包括:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码。方法进一步包括:响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联。方法进一步包括:使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值。方法进一步包括:使用所确定的帧内预测模式值对第二块进行重建。

附图说明

通过以下详细描述和附图,所公开的主题的其它特征、性质和各种优点将更加明显,在附图中:

图1A是帧内预测模式的示例性子集的示意图;

图1B是示例性帧内预测方向的图示。

图1C是示例性帧内预测方向的图示。

图2是根据一个实施例的通信系统(200)的简化框图的示意图。

图3是根据一个实施例的通信系统(300)的简化框图的示意图。

图4是根据一个实施例的解码器的简化框图的示意图。

图5是根据一个实施例的编码器的简化框图的示意图。

图6示出了根据另一实施例的编码器的框图。

图7示出了根据另一实施例的解码器的框图。

图8是当前块及其周围相邻块的示意图。

图9是由解码器执行的过程的实施例的图示。

图10是根据本公开的实施例的计算机系统的示意图。

具体实施方式

图2示出了根据本公开的一个实施例的通信系统(200)的简化框图。通信系统(200)包括多个终端装置,该终端装置可通过例如网络(250)彼此通信。举例来说,通信系统(200)包括通过网络(250)互连的第一终端装置对(210)和(220)。在图2的示例中,第一终端装置对(210)和(220)执行单向数据传输。举例来说,终端装置(210)可对视频数据(例如由终端装置(210)采集的视频图片流)进行编码以通过网络(250)传输到另一终端装置(220)。已编码视频数据可以以一个或多个已编码视频比特流的形式传输。终端装置(220)可从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。

在另一示例中,通信系统(200)包括执行已编码视频数据的双向传输的第二终端装置对(230)和(240),该双向传输可例如在视频会议期间发生。对于双向数据传输,在一示例中,终端装置(230)和终端装置(240)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(250)传输到终端装置(230)和终端装置(240)中的另一终端装置。终端装置(230)和终端装置(240)中的每个终端装置还可接收由终端装置(230)和终端装置(240)中的另一终端装置传输的已编码视频数据,并可对该已编码视频数据进行解码以恢复视频图片,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。

在图2的示例中,终端装置(210)、终端装置(220)、终端装置(230)和终端装置(240)可被示出为服务器、个人计算机和智能电话,但本公开的原理可不限于此。本公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在终端装置(210)、终端装置(220)、终端装置(230)和终端装置(240)之间传送已编码视频数据的任何数量的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本讨论的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本公开的操作来说可能是无关紧要的。

作为所公开的主题的应用的示例,图3示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开的主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。

流式传输系统可包括采集子系统(313),该采集子系统可包括例如数码相机的视频源(301),该视频源创建例如未压缩的视频图片流(302)。在一个示例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码视频数据(304)(或已编码视频比特流),被描绘为粗线以强调高数据量的视频图片流(302)可由电子装置(320)处理,该电子装置包括耦接到视频源(301)的视频编码器(303)。视频编码器(303)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开的主题的各方面。相较于视频图片流(302),被描绘为细线以强调较低数据量的已编码视频数据(304)(或已编码视频比特流(304))可存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端子系统,例如图3中的客户端子系统(306)和客户端子系统(308),可访问流式传输服务器(305)以检索已编码视频数据(304)的副本(307)和副本(309)。客户端子系统(306)可包括例如电子装置(330)中的视频解码器(310)。视频解码器(310)对已编码视频数据的传入副本(307)进行解码,且产生可在显示器(312)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(311)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码视频数据(304)、已编码视频数据(307)和已编码视频数据(309)(例如视频比特流)进行编码。该些标准的示例包括ITU-T建议书H.265。在一个示例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC)。所公开的主题可用于VVC的上下文中。

应注意,电子装置(320)和电子装置(330)可包括其它组件(未示出)。举例来说,电子装置(320)可包括视频解码器(未示出),且电子装置(330)还可包括视频编码器(未示出)。

图4示出了根据本公开的一个实施例的视频解码器(410)的框图。视频解码器(410)可包括在电子装置(430)中。电子装置(430)可包括接收器(431)(例如接收电路)。视频解码器(410)可用于代替图3的示例中的视频解码器(310)。

接收器(431)可接收将由视频解码器(410)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列的解码。可从信道(401)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(431)可接收可转发到它们各自的使用实体(未描绘)的已编码视频数据以及其它数据,例如已编码音频数据和/或辅助数据流。接收器(431)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(415)可耦接在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,缓冲存储器(415)可设置在视频解码器(410)外部(未描绘)。而在其它情况下,在视频解码器(410)的外部可设置缓冲存储器(未描绘)以例如防止网络抖动,且在视频解码器(410)的内部可配置另一缓冲存储器(415)以例如处理播出定时。当接收器(431)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲存储器(415),或可将该缓冲存储器做得较小。为了尽力在互联网等业务分组网络上使用,可能需要缓冲存储器(415),该缓冲存储器可相对较大并可有利地具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(410)外部的类似元件(未描绘)中。

视频解码器(410)可包括解析器(420)以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及用于控制呈现装置(412)(例如,显示屏)等呈现装置的潜在信息,该呈现装置不是电子装置(430)的整体部分,但可耦接到电子装置(430),如图4所示。用于呈现装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)的参数集片段(未描绘)的形式。解析器(420)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(420)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(420)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。

取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(421)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息来控制。为了简洁起见,未描绘解析器(420)与下文的多个单元之间的此类子群控制信息流。

除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互且可至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成下文的功能单元是适当的。

第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可输出包括样本值的块,该样本值可输入到聚合器(455)中。

在一些情况下,缩放器/逆变换(451)的输出样本可属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)采用从当前图片缓冲器(458)提取的周围已重建信息生成大小和形状与正在重建的块相同的块。举例来说,当前图片缓冲器(458)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。

在其它情况下,缩放器/逆变换单元(451)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可访问参考图片存储器(457)以提取用于预测的样本。在根据属于块的符号(421)对提取的样本进行运动补偿之后,这些样本可由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从参考图片存储器(457)内的地址获取预测样本可受到运动矢量控制,且该运动矢量以符号(421)的形式而供运动补偿预测单元(453)使用,符号(421)可具有例如X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(457)提取的样本值的内插、运动矢量预测机制等等。

聚合器(455)的输出样本可经受环路滤波器单元(456)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频比特流)中且作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(456)的输出可以是样本流,该样本流可输出到呈现装置(412)以及存储在参考图片存储器(457)中,以用于后续的帧间图片预测。

一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(320))被识别为参考图片,则当前图片缓冲器(458)可变为参考图片存储器(457)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。

视频解码器(410)可根据例如ITU-T建议书H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。对于合规性,还可要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在一个实施例中,接收器(431)可连同已编码视频的接收一起接收附加(冗余)数据。该附加数据可被包括作为已编码视频序列的一部分。该附加数据可由视频解码器(410)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。

图5示出了根据本公开的一个实施例的视频编码器(503)的框图。视频编码器(503)包括在电子装置(520)中。电子装置(520)包括传输器(540)(例如传输电路)。视频编码器(503)可用于代替图3的示例中的视频编码器(303)。

视频编码器(503)可从视频源(501)(并非图5的示例中的电子装置(520)的一部分)接收视频样本,该视频源可采集将由视频编码器(503)编码的视频图像。在另一示例中,视频源(501)是电子装置(520)的一部分。

视频源(501)可提供将由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适采样结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的采样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可容易理解像素与样本之间的关系。下文侧重于描述样本。

根据一个实施例,视频编码器(503)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下文所描述的其它功能单元且在功能上耦接到所述其它功能单元。为了简洁起见,图中未描绘耦接。由控制器(550)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。控制器(550)可被配置为具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。

在一些实施例中,视频编码器(503)被配置为在编码环路中进行操作。作为简单的描述,在一个示例中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)重建符号以用类似于(远程)解码器还可创建样本数据的方式创建样本数据(因为在所公开的主题所考虑的视频压缩技术中,符号与已编码视频比特流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。

“本地”解码器(533)的操作可与例如已在上文结合图4详细描述的视频解码器(410)的“远程”解码器的操作相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)可无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分,可能无法完全在本地解码器(533)中实施。

此时可观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,所公开的主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并在下文提供。

在操作期间,在一些示例中,源编码器(530)可执行运动补偿预测编码,参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(532)对输入图片的像素块与参考图片的像素块之间的差异进行编码,该参考图片可被选作该输入图片的预测参考。

本地视频解码器(533)可基于源编码器(530)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作可有利地为有损过程。当已编码视频数据可在视频解码器(图5中未示)处被解码时,已重建视频序列通常可以是源视频序列的副本,但带有一些误差。本地视频解码器(533)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使重建参考图片存储在参考图片高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建参考图片的副本,该副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。

预测器(535)可针对编码引擎(532)执行预测搜索。即,对于将要编码的新图片,预测器(535)可在参考图片存储器(534)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的那样,输入图片可具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。

控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将该符号变换成已编码视频序列。

传输器(540)可缓冲由熵编码器(545)创建的已编码视频序列,从而为通过通信信道(560)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。传输器(540)可将来自视频编码器(503)的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(550)可管理视频编码器(503)的操作。在编码期间,控制器(550)可给每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:

帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。本领域技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联的元数据以用于重建单个块。

源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,该其它块由应用于块的相应图片的编码分配来确定。举例来说,I图片的块可进行非预测性编码,或该块可参考同一图片的已编码块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时间预测进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时间预测进行预测性编码。

视频编码器(503)可根据例如ITU-T建议书H.265的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(503)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。

在一个实施例中,传输器(540)可在传输已编码视频时传输附加数据。源编码器(530)可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、SEI消息、VUI参数集片段等。

采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。该运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,该运动矢量可具有识别参考图片的第三维度。

在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。

此外,合并模式技术可用于帧间图片预测中以改善编码效率。

根据本公开的一些实施例,例如帧间图片预测和帧内图片预测的预测以块为单位执行。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(coding treeunit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),这三个编码树块是一个亮度CTB和两个色度CTB。可将每个CTU递归地以四叉树拆分为一个或多个编码单元(CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在一个示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在一个实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块的示例,预测块包括针对像素的值(例如,亮度值)的矩阵,所述像素为例如8×8像素、16×16像素、8×16像素、16×8像素等等。

图6示出了根据本公开的另一实施例的视频编码器(603)的图。视频编码器(603)被配置为接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将该处理块编码到作为已编码视频序列的一部分的已编码图片中。在一个示例中,视频编码器(603)用于代替图3的示例中的视频编码器(303)。

在HEVC示例中,视频编码器(603)接收用于处理块的样本值的矩阵,该处理块为例如8×8样本的预测块等。视频编码器(603)使用例如率失真(rate-distortion,RD)优化来确定是否使用帧内模式、帧间模式或双向预测模式来最佳地编码该处理块。当在帧内模式中编码处理块时,视频编码器(603)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(603)可分别使用帧间预测或双向预测技术以将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中在不借助预测器外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测器导出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的运动矢量分量。在一个示例中,视频编码器(603)包括其它组件,例如用于确定处理块的模式的模式决策模块(未示出)。

在图6的示例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。

帧间编码器(630)被配置为接收当前块(例如处理块)的样本、比较该块与参考图片中的一个或多个参考块(例如先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些示例中,参考图片是基于已编码视频信息解码的已解码参考图片。

帧内编码器(622)被配置为接收当前块(例如处理块)的样本、在一些情况下比较该块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还生成帧内预测信息(例如根据一个或多个帧内编码技术生成帧内预测方向信息)。在一个示例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。

通用控制器(521)被配置为确定通用控制数据,且基于该通用控制数据控制视频编码器(603)的其它组件。在一个示例中,通用控制器(621)确定块的模式,且基于该模式将控制信号提供到开关(626)。举例来说,当该模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,且控制熵编码器(625)以选择帧内预测信息且将该帧内预测信息包括在比特流中;以及当该模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,且控制熵编码器(625)以选择帧间预测信息且将该帧间预测信息包括在比特流中。

残差计算器(623)被配置为计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)被配置为基于残差数据操作,以对残差数据进行编码以生成变换系数。在一个示例中,残差编码器(624)被配置为将残差数据从空间域转换至频域,且生成变换系数。变换系数接着经受量化处理以获得量化的变换系数。在各实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)被配置为执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(622)和帧间编码器(630)使用。举例来说,帧间编码器(630)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(622)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些示例中,该已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。

熵编码器(625)被配置为将比特流格式化以包括已编码块。熵编码器(625)被配置为根据例如HEVC标准的合适标准而包括各种信息。在一个示例中,熵编码器(625)被配置为将通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和其它合适的信息包括在比特流中。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。

图7示出了根据本公开的另一实施例的视频解码器(710)的图。视频解码器(710)被配置为接收作为已编码视频序列的一部分的已编码图片,且对该已编码图片进行解码以生成重建图片。在一个示例中,视频解码器(710)用于代替图3的示例中的视频解码器(310)。

在图7的示例中,视频解码器(710)包括如图7所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。

熵解码器(771)可被配置为根据已编码图片来重建某些符号,这些符号表示构成该已编码图片的语法元素。此类符号可包括例如用于对该块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可识别分别供帧内解码器(772)或帧间解码器(780)使用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在一个示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(772)。残差信息可经受逆量化并提供到残差解码器(773)。

帧间解码器(780)被配置为接收帧间预测信息,且基于该帧间预测信息生成帧间预测结果。

帧内解码器(772)被配置为接收帧内预测信息,且基于该帧内预测信息生成预测结果。

残差解码器(773)被配置为执行逆量化以提取解量化的变换系数,且处理该解量化的变换系数,以将残差从频域变换到空间域。残差解码器(773)还可能需要某些控制信息(用以包括量化器参数(QP)),且该信息可由熵解码器(771)提供(未描绘数据路径,因为这仅仅是低量控制信息)。

重建模块(774)被配置为在空间域中组合由残差解码器(773)输出的残差与预测结果(根据具体情况可由帧间预测模块或帧内预测模块输出)以形成重建块,该重建块可以是重建图片的一部分,该重建图片继而可以是重建视频的一部分。应注意,可执行例如解块操作等其它合适的操作来改善视觉质量。

应注意,可使用任何合适的技术来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在一个实施例中,可使用一个或多个集成电路来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(303)、视频编码器(503)和视频编码器(503)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。

根据一些实施例,对于相邻参考线(例如,零参考线)和不相邻参考线(例如,非零参考线),将最可能模式(MPM)列表的大小设置为等于6。如图8所示,对于相邻参考线和不相邻参考线,用于导出6个MPM候选的相邻模式的位置也可以相同。在图8中,块A和块B分别表示当前块800的上方和左侧相邻的编码单元,以及变量candIntraPredModeA和candIntraPredModeB分别表示块A和块B的相关联的帧内预测模式。变量candIntraPredModeA和candIntraPredModeB最初可被设置为等于INTRA_PLANAR。如果块A(或块B)被标记为可用,则可将candIntraPredModeA(或candIntraPredModeB)设置为等于块A(或块B)的实际帧内预测模式。

对于相邻参考线和不相邻参考线,MPM候选导出过程可以不同。例如,对于零参考线,如果用于两个相邻块的模式是平面模式或DC模式,则使用默认模式来构建MPM列表,其中,前两个候选是平面模式和DC模式,而其余四个模式是角模式(例如,角默认模式)。对于非零参考线,如果两个相邻块的模式是平面模式或DC模式,则可使用6个角默认模式来构建MPM列表。在附录1中示出了MPM列表导出过程的实施例,其中candModeList[x](x=0..5)表示6个MPM候选,IntraLumaRefLineIdx[xCb][yCb]表示要预测的块的参考线索引,且IntraLumaRefLineIdx[xCb][YCb]可以是0、1或3。在一些示例中,实现统一的帧内模式编码方法,其中,平面模式被设置为第一MPM。

块差分脉冲编码调制(BPDCM)是在块层级使用差分脉冲编码调制(differentialpulse code modulation,DPCM)方法的帧内编码工具。在一些实施例中,每当存在每一维度都小于或等于32的亮度帧内CU时,在CU层级传输bdpcm_flag。该标志指示是使用常规帧内编码还是DPCM。可使用单个基于上下文的自适应二进制算术编码(Context-basedAdaptive Binary Arithmetic Coding,CABAC)上下文对该标志进行编码。

在一些实施方案中,BDPCM使用LOCO-I(用于JPEG-LS)的中值边缘检测器(MedianEdge Detector)。对于以像素A作为左侧相邻像素、像素B作为上方相邻像素、以及像素C作为左上方相邻像素的当前像素X,预测P(X)可由下式确定:

等式(1):P(X)=min(A,B)如果C≥max(A,B)

max(A,B)如果C≤min(A,B)

A+B-C 其它情况。

当从CU的上方行和左侧列进行预测时,预测器可使用未滤波的参考像素。然后,预测器可将已重建的像素用于CU的其余部分。可在CU内以光栅扫描顺序来处理像素。在重新缩放之后,可以以与变换跳过(Transform Skip)量化器相同的方式,在空间域中对预测误差进行量化。可通过将解量化的预测误差添加到预测来对每个像素进行重建。因此,已重建的像素可用于预测光栅扫描顺序中的下一个像素。可以对已量化的预测误差的幅度和符号单独进行编码。

在一些实施例中,对cbf_bdpcm_flag进行编码。如果该标志等于0,则块的所有幅度可被解码为0。如果该标志等于1,则可以按照光栅扫描顺序单独对块的所有幅度进行编码。为了保持低复杂度,在一些示例中,幅度可被限制为至多31(包括31)。可使用一元二值化(unary binarization)对幅度进行编码,其中第一个二进制位(bin)具有三个上下文,然后一直到第12个二进制位的每个附加二进制位具有一个上下文,且所有剩余二进制位具有一个上下文。可以以针对每个零残差的旁路模式对符号进行编码。

在一些实施例中,为了保持常规帧内模式预测的一致性,MPM列表中的第一模式与BDPCM CU(没有被发送)相关联,并可用于后续块的MPM生成。可在两个BDPCM块之间的边界上不激活解块滤波器,因为这两个块都不使用通常负责块效应(blocking artifact)的变换阶段。在一些实施例中,BDPCM不使用本文公开的步骤以外的任何其它步骤。例如,BPDCM不使用任何变换。

根据一些实施例,BDPCM方法使用已重建的样本来逐行预测CU的行或列。用信号表示的BDPCM方向可指示是否使用垂直预测或水平预测。所使用的参考像素可以是未滤波的样本。可在空间域中对预测误差进行量化。可通过将解量化的预测误差添加到预测来重建像素。

在一些实施例中,作为BDPCM的可选方案,可执行已量化的残差域BDPCM。在已量化的残差BDPCM中使用的信令和预测方向可以与BPCM方案相同。可通过在类似于帧内预测的预测方向(水平预测或垂直预测)上进行样本复制来对整个块执行帧内预测。残差可被量化,且可以对已量化的残差和已量化的残差的预测器(水平或垂直)量化值之间的差量进行编码,这可以在以下公开的实施例中描述。

对于大小为M(行)×N(列)的块,假设ri,j,0≤i≤M-1,0≤j≤N-1是在使用来自上方或左侧块边界样本的未滤波样本水平地(逐行地复制预测块中的左侧相邻像素值)或垂直地(将上方相邻行复制到预测块中的每一行)执行帧内预测之后的预测残差。假设Q(ri,j),0≤i≤M-1,0≤j≤N-1表示残差ri,j的已量化版本,其中,残差是原始块值和预测块值之间的差值。然后,将BDPCM应用于已量化的残差样本,得到改进的具有元素的M×N阵列在一些示例中,当用信号表示垂直BDPCM时:

等式(2):

在一些示例中,对于水平预测,应用类似的规则,残差量化的样本可以通过以下等式获得:

等式(3):

可将残差量化的样本发送到解码器。在解码器侧,在一些示例中,对上述计算进行反向处理以生成Q(ri,j),0≤i≤M-1,0≤j≤N-1。在一些实施例中,对于垂直预测情况:

等式(4):

在一些实施例中,对于水平预测情况:

等式(5):

可将逆量化的残差Q-1(Q(ri,j))添加到帧内块预测值以产生已重建的样本值。该方案的一个优点是:通过在系数被解析时添加预测器,可以在系数解析期间快速地执行逆DPCM,或者可以在解析之后执行逆DPCM。因此,可消除将4×N和N×4块分割成2个并行处理的块。

在一些实施例中,BDPCM编码的块与作为第一MPM(即MPM0)的帧内预测模式相关联。如此,当导出MPM列表时,如果以BDPCM模式对相邻块进行编码,则使用与相邻块相关联的帧内预测模式(即MPM0)。此外,当使用DM模式对色度块进行编码且使用BDPCM模式对同位亮度块进行编码时,将与同位亮度块相关联的帧内预测模式(即MPM0)用作当前色度块的帧内预测模式。

表1(在下面)示出了BDPCM方法的语法和语义的实施例:

表1

在一些实施例中,变量bdpcm_flag[x0][y0]等于1指定在位置(x0,y0)处包括亮度编码块的编码单元中存在bdpcm_dir_flag。在一些实施例中,bdpcm_dir_flag[x0][y0]等于0指定要在bdpcm块中使用的预测方向是水平方向,否则预测方向是垂直方向。

如本领域的普通技术人员所理解的,BDPCM在通常以强边缘为特征的屏幕视频内容上贡献了显著的编码增益。然而,当BDPCM与MPM模式或DM模式一起使用时,BDPCM编码的块总是与平面模式相关联,这可能对屏幕视频内容的编码增益造成损害。本公开的实施例解决了这些缺点。

本公开的实施例可单独使用或以任何顺序组合使用。此外,根据本公开实施例的方法、编码器和解码器中的每一个可由处理电路(例如,一个或多个处理器或者一个或多个集成电路)来实现。在一个示例中,一个或多个处理器运行存储在非暂时性计算机可读介质中的程序。根据本公开的实施例,术语“块”可解释为预测块、编码块或编码单元(即,CU)。

根据一些实施例,当bdpcm_dir_flag等于0时,水平预测用于BDPCM残差预测,且当bdpcm_dir_flag等于1时,垂直预测用于BDPCM残差预测。然而,在其它实施例中,当等于0和1的bdpcm_dir_flag的预测方向被交换时,相反的方法也适用。

在一些实施例中,使用HOR_IDX来表示水平帧内预测模式,其中,在VVC中,HOR_IDX对应于帧内预测模式INTRA_ANGULAR18,而在HEVC中,HOR_IDX对应于帧内预测模式INTRA_ANGULAR10。在一些实施例中,使用VER_IDX来表示垂直帧内预测模式,其中,在VVC中,VER_IDX对应于帧内预测模式INTRA_ANGULAR50,而在HEVC中,VER_IDX对应于帧内预测模式INTRa_ANGULAR26。

根据一些实施例,当导出最可能的帧内预测模式时,如果通过BDPCM模式对相邻块进行编码,则将相邻块与帧内预测模式ipm相关联,该帧内预测模式ipm使用应用于该BDPCM编码的相邻块的bdpcm_dir_flag的值导出,如下:

等式(6):ipm=bdpcm_dir_flag==0?HOR_IDX:VER_IDX,其中,HOR_IDX和VER_IDX分别表示水平帧内预测模式和垂直帧内预测模式,且bdpcm_dir_flag等于0表示水平预测用于BDPCM残差预测,以及bdpcm_dir_flag等于1表示垂直预测用于BDPCM残差预测。在给帧内预测模式值ipm赋值之后,该帧内预测模式值视为相邻块帧内预测模式,且用于导出当前块的最可能帧内预测模式。

附录2示出了MPM列表导出过程的实施例,其中,粗体部分说明了如何基于bdpcm_dir_flag来确定BDPCM编码的块的帧内预测模式。该过程的示例输入可包括:(i)亮度位置(xCb,yCb),其指定当前亮度编码块的左上方样本相对于当前图片的左上方亮度样本;(ii)变量cbWidth,其指定亮度样本中的当前编码块的宽度;(iii)变量cbHeight,其指定亮度样本中的当前编码块的高度。在附录2的该过程中,导出亮度帧内预测模式IntraPredModeY[xCb][yCb]。

表2指定了帧内预测模式IntraPredModeY[xCb][yCb]的值和相关联的名称。在表2中,在一些示例中,帧内预测模式INTRA_LT_CCLM、INTRA_L_CCLM和INTRA_T_CCLM仅适用于色度分量。

表2

根据一些实施例,当导出色度块的帧内预测模式同时使用BDPCM模式对色度块的同位亮度块进行编码时,如果使用DM模式对色度块进行预测,则如下导出用于执行该色度块的帧内预测模式的帧内预测模式:

等式(7):dm=bdpcm_dir_flag==0?HOR_IDX:VER_IDX,

其中,HOR_IDX和VER_IDX分别表示水平帧内预测模式和垂直帧内预测模式,且bdpcm_dir_flag等于0表示水平预测用于BDPCM残差预测,以及bdpcm_dir_flag等于1表示垂直预测用于BDPCM残差预测。因此,在赋值dm之后,该值用作色度块的帧内预测模式。

根据一些实施例,用于对bdpcm_dir_flag进行熵编码的上下文取决于相邻块的bdpcm_dir_flag的值和/或是通过水平帧内预测模式还是垂直帧内预测模式对相邻块进行编码。

在一个实施例中,只有相邻块的bdpcm_dir_flag值和bdpcm_flag值用于导出应用于对当前块的bdpcm_dir_flag进行熵编码的上下文。在一个示例中,使用两个相邻块(即,图8中左侧是块A,图8中上方是块B),且如下导出上下文值(ctx):

等式(8):dpcm_left=dpcm_flagleft?(bdpcm_dir_flagleft?1:2):0

等式(9):dpcm_top=dpcm_flagtop?(bdpcm_dir_flagtop?1:2):0

等式(10):ctx=dpcm_left*3+dpcm_top,

其中,dpcm_flagleft和dpcm_flagtop分别指的是左侧相邻块和上方相邻块的dpcm_flag,以及bdpcm_dir_flagleft和bdpcm_dir_flagtop分别指的是左侧相邻块和上方相邻块的bdpcm_dir_flag。在对ctx进行赋值之后,该值可用作用于选择多个上下文模型中的一个上下文模型的索引。

除了前面的示例之外,可以以预定义方式对9个上下文进行分组,从而使得应用更少的上下文。例如,在前面的示例中,ctx=8和ctx=7可被合并,且只有一个上下文可用于这两个ctx值。

在一些实施例中,使用两个相邻块(即,左侧相邻块和上方相邻块),且如下导出上下文值(ctx),其中,dpcm_flagleft和dpcm_flagtop分别指的是左侧相邻块和上方相邻块的dpcm_flag,且bdpcm_dir_flagleft和bdpcm_dir_flagtop分别指的是左侧相邻块和上方相邻块的bdpcm_dir_flag。

等式(11):dpcm_left=dpcm_flagleft?(bdpcm_dir_flagleft?1:2):0

等式(12):dpcm_top=dpcm_flagtop?(bdpcm_dir_flagtop?1:2):0

等式(13):ctx=(dpcm_left==dpcm_top)?dpcm_left:0。

图9示出了由诸如视频解码器(710)的解码器执行的过程的实施例。该过程可以从步骤(S900)开始,以确定是否使用BDPCM模式对与第二块相关联的第一块进行编码。在一些示例中,第一块可以是与第一块位于同一图片中的第二块的空间相邻块。在其它示例中,第一块可以是亮度块,而第二块是色度块,其中亮度块与色度块同位。

如果以BDPCM模式对第一块进行编码,则过程从步骤(S900)进行到步骤(S902),其中,第一块基于BDPCM方向标志与帧内预测模式值相关联。例如,bdpcm_flag可指示以BDPCM模式对块进行编码,且bdpcm_dir_flag可用于确定是使用水平方向还是垂直方向。过程进行到步骤(S904),以使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值。例如,基于BDPCM方向标志,帧内预测模式值可以是水平帧内预测模式值和垂直帧内预测模式值之一。此外,如果第一块是第二块的空间相邻块,则第一块的帧内预测模式值可用于创建MPM列表,其中,MPM列表用于导出第二块的帧内预测模式值。此外,如果第二块是使用DM模式预测的色度块,且第一块是同位亮度块,则可基于第一块的帧内预测模式值来确定第二块的帧内预测模式值。

过程进行到步骤(S906),其中,使用第二块的所确定的帧内预测模式值对第二块进行重建。图9所示的过程可以在步骤(S906)完成之后结束。此外,返回到步骤(S900),如果第一块没有以BDPCM模式编码,则图9所示的过程可以结束。

可将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图10示出了适合于实施所公开的主题的某些实施例的计算机系统(1000)。

可使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码执行等执行。

指令可在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。

图10所示的计算机系统(1000)的组件本质上是示例性的,并不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统(1000)的示例性实施例中所示的组件中的任何一个组件或组件的组合相关的任何依赖或要求。

计算机系统(1000)可包括某些人机接口输入装置。此类人机接口输入装置可响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘)。人机接口装置还可用于捕获不一定与人的意识输入直接相关的某些媒介,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

输入人机接口装置可包括下述中的一项或多项(每种中仅示出一个):键盘(1001)、鼠标(1002)、触控板(1003)、触摸屏(1010)、数据手套(未示出)、操纵杆(1005)、麦克风(1006)、扫描仪(1007)、相机(1008)。

计算机系统(1000)还可包括某些人机接口输出装置。此类人机接口输出装置可例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可包括触觉输出装置(例如触摸屏(1010)的触觉反馈、数据手套(未示出)或操纵杆(1005),但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(1009)、耳机(未描绘))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1010),每种屏幕都有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘)、全息显示器和烟箱(未描绘)以及打印机(未描绘)来输出二维视觉输出或超过三维的输出。

计算机系统(1000)还可包括人类可访问存储装置及其关联介质,例如,包括具有CD/DVD等介质(1021)的CD/DVD ROM/RW(1020)的光学介质、指状驱动器(1022),可拆卸硬盘驱动器或固态驱动器(1023)、诸如磁带和软盘之类的传统磁性介质(未描绘)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未描绘)等。

本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其它暂时性信号。

计算机系统(1000)还可包括通到一个或多个通信网络的接口。一个或多个网络可以例如是无线网络、有线网络、光网络。一个或多个网络可进一步是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。一个或多个网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(1049)的外部网络接口适配器(例如,计算机系统(1000)的USB端口);如下所述,其它网络接口通常通过连接到系统总线而集成到计算机系统(1000)的内核中(例如,连接到PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1000)可使用这些网络中的任何一个网络与其它实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其它计算机系统。如上所述,可在那些网络和网络接口中的每一个上使用某些协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口可附接到计算机系统(1000)的内核(1040)。

内核(1040)可包括一个或多个中央处理单元(CPU)(1041),图形处理单元(GPU)(1042),现场可编程门区域(FPGA)(1043)形式的专用可编程处理单元、用于某些任务的硬件加速器(1044)等。这些装置以及只读存储器(ROM)(1045)、随机存取存储器(1046)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1047)可通过系统总线(1048)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1048),以能够通过附加的CPU、GPU等进行扩展。外围装置可直接连接到内核的系统总线(1048)或通过外围总线(1049)连接到内核的系统总线(1048)。外围总线的体系结构包括PCI、USB等。

CPU(1041)、GPU(1042)、FPGA(1043)和加速器(1044)可执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可存储在ROM(1045)或RAM(1046)中。过渡数据也可存储在RAM(1046)中,而永久数据可例如存储在内部大容量存储器(1047)中。可通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可与下述紧密关联:一个或多个CPU(1041)、GPU(1042)、大容量存储器(1047)、ROM(1045)、RAM(1046)等。

计算机可读介质可在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(1000),特别是内核(1040)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性的内核(1040)的存储器,例如内核内部大容量存储器(1047)或ROM(1045)。可将实施本公开的各实施例的软件存储在此类装置中并由内核(1040)执行。根据特定需要,计算机可读介质可包括一个或多个存储装置或芯片。软件可使得内核(1040),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1046)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可由于硬连线或以其它方式体现在电路(例如,加速器(1044))中的逻辑而使得计算机系统提供功能,该电路可替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可包括存储用于执行的软件的电路(例如集成电路(IC))、体现用于执行的逻辑的电路或包括两者。本公开包括硬件和软件的任何合适的组合。

尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多虽然未在本文中明确示出或描述,但是体现了本公开的原理,因此落入本公开的精神和范围内的系统和方法。

(1)一种在视频解码器中执行的视频解码方法,该方法包括:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码;响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联;使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值;以及使用所确定的帧内预测模式值对第二块进行重建。

(2)根据特征(1)所述的方法,其中,BDPCM方向标志是以下之一:(i)与水平帧内预测方向模式相关联的第一值,以及(ii)与垂直帧内预测方向模式相关联的第二值。

(3)根据特征(2)所述的方法,其中,帧内预测模式的总数是67,其中,水平帧内预测方向模式与角模式18相关联,以及垂直帧内预测方向模式与角模式50相关联。

(4)根据特征(1)-(3)中任一项所述的方法,其中,确定是否使用BDPCM模式对第一块进行编码是基于指示BDPCM方向标志的存在的BDPCM标志的值。

(5)根据特征(1)-(4)中任一项所述的方法,其中,第一块和第二块包括在同一图片中,且第一块在空间上与第二块相邻。

(6)根据特征(5)所述的方法,进一步包括:针对第二块,使用最可能模式(MPM)导出过程来导出候选列表,该导出过程包括:确定是否使用BDPCM模式对第一块进行编码,其中,确定针对第二块的帧间预测模式值进一步包括:使用所导出的候选列表。

(7)根据特征(6)所述的方法,其中,候选列表包括:与第一块的帧内预测模式对应的第一候选帧内预测模式值(Mode1);以及根据来自第一候选帧内预测模式值的预定偏移和对M取余运算而确定的第二候选帧内预测模式值(Mode2)和第三候选帧内预测模式值(Mode3),其中,M是2的幂。

(8)根据特征(1)-(7)中任一项所述的方法,其中,第二块是色度块,以及第一块是与色度块同位的亮度块。

(9)根据特征(8)所述的方法,该方法进一步包括:确定是否使用直接复制模式(DM)对第二块进行编码;以及响应于确定用直接复制模式对第二块进行编码,确定是否使用BDPCM模式对第一块进行编码。

(10)一种用于视频解码的视频解码器,包括处理电路,该处理电路被配置为:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码;响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联;使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值;以及使用所确定的帧内预测模式值对第二块进行重建。

(11)根据特征(10)所述的视频解码器,其中,BDPCM方向标志是以下之一:(i)与水平帧内预测方向模式相关联的第一值,以及(ii)与垂直帧内预测方向模式相关联的第二值。

(12)根据特征(11)所述的视频解码器,其中,帧内预测模式的总数是67,其中,水平帧内预测方向模式与角模式18相关联,以及垂直帧内预测方向模式与角模式50相关联。

(13)根据特征(10)-(12)中任一项所述的视频解码器,其中,确定是否使用BDPCM模式对第一块进行编码是基于指示BDPCM方向标志的存在的BDPCM标志的值。

(14)根据特征(10)-(13)中任一项所述的视频解码器,其中,第一块和第二块包括在同一图片中,且第一块在空间上与第二块相邻。

(15)根据特征(14)所述的视频解码器,其中,处理电路进一步被配置为:针对第二块,使用最可能模式(MPM)导出过程来导出候选列表,该导出过程包括:确定是否使用BDPCM模式对第一块进行编码,其中,确定针对第二块的帧间预测模式值进一步包括:使用所导出的候选列表。

(16)根据特征(15)所述的视频解码器,其中,候选列表包括:与第一块的帧内预测模式对应的第一候选帧内预测模式值(Mode1),以及根据来自第一候选帧内预测模式值的预定偏移和对M取余运算而确定的第二候选帧内预测模式值(Mode2)和第三候选帧内预测模式值(Mode3),其中,M是2的幂。

(17)根据特征(10)中的任一项所述的视频解码器,其中,第二块是色度块,以及第一块是与色度块同位的亮度块。

(18)根据特征(17)所述的视频解码器,其中,处理电路进一步被配置为:确定是否使用直接复制模式(DM)对第二块进行编码;以及响应于确定用直接复制模式对第二块进行编码,确定是否使用BDPCM模式对第一块进行编码。

(19)一种非暂时性计算机可读介质,该非暂时性计算机可读介质存储有指令,该指令在由视频解码器中的处理器执行时使得视频解码器执行方法,该方法包括:确定是否使用块差分脉冲编码调制(BDPCM)模式对与第二块相关联的第一块进行编码;响应于确定使用BDPCM模式对第一块进行编码,基于BDPCM方向标志将第一块与帧内预测模式值相关联;使用与第一块相关联的帧内预测模式值来确定针对第二块的帧间预测模式值;以及使用所确定的帧内预测模式值对第二块进行重建。

(20)根据特征(19)所述的非暂时性计算机可读介质,其中,BDPCM方向标志是以下之一:(i)与水平帧内预测方向模式相关联的第一值,以及(ii)与垂直帧内预测方向模式相关联的第二值。

附录1

–如果candIntraPredModeB等于candIntraPredModeA,且candIntraPredModeA大于INTRA_DC,则如下导出candModeList[x],其中x=0..5:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0,则应用以下内容:

candModeList[0]=candIntraPredModeA (A1_4)

candModeList[1]=INTRA_PLANAR (A1_5)

candModeList[2]=INTRA_DC (A1_6)

candModeList[3]=2+((candIntraPredModeA+61)%64) (A1_7)

candModeList[4]=2+((candIntraPredModeA-1)%64) (A1_8)

candModeList[5]=2+((candIntraPredModeA+60)%64) (A1_9)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0),应用以下内容:

candModeList[0]=candIntraPredModeA (A1_10)

candModeList[1]=2+((candIntraPredModeA+61)%64) (A1_11)

candModeList[2]=2+((candIntraPredModeA-1)%64) (A1_12)

candModeList[3]=2+((candIntraPredModeA+60)%64) (A1_13)

candModeList[4]=2+(candIntraPredModeA%64) (A1_14)

candModeList[5]=2+((candIntraPredModeA+59)%64) (A1_15)

–否则,如果candIntraPredModeB不等于candIntraPredModeA,且candIntraPredModeA或candIntraPredModeB大于INTRA_DC,则应用以下内容:

–如下导出变量minAB和maxAB:

minAB=

candModeList[(candModeList[0]>candModeList[1])?1:0](A1_16)

maxAB=

candModeList[(candModeList[0]>candModeList[1])?0:1](A1_17)

–如果candIntraPredModeA和candIntraPredModeB都大于INTRA_DC,则如下导出candModeList[x],其中x=0..5:

candModeList[0]=candIntraPredModeA (A1_18)

candModeList[1]=candIntraPredModeB (A1_19)

–如果IntraLumaRefLineIdx[xCb][yCb]等于0,则应用以下内容:

candModeList[2]=INTRA_PLANAR (A1_20)

candModeList[3]=INTRA_DC (A1_21)

–如果maxAB-minAB在2至62的范围内(包括2和62在内),则应用以下内容:

candModeList[4]=2+((maxAB+61)%64) (A1_22)

candModeList[5]=2+((maxAB-1)%64) (A1_23)

–否则,应用以下内容:

candModeList[4]=2+((maxAB+60)%64) (A1_24)

candModeList[5]=2+((maxAB)%64) (A1_25)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0),应用以下内容:

–如果maxAB-minAB等于1,则应用以下内容:

candModeList[2]=2+((minAB+61)%64) (A1_26)

candModeList[3]=2+((maxAB-1)%64) (A1_27)

candModeList[4]=2+((minAB+60)%64) (A1_28)

candModeList[5]=2+(maxAB%64) (A1_29)

–否则,如果maxAB-minAB等于2,则应用以下内容:

candModeList[2]=2+((minAB-1)%64) (A1_30)

candModeList[3]=2+((minAB+61)%64) (A1_31)

candModeList[4]=2+((maxAB-1)%64) (A1_32)

candModeList[5]=2+((minAB+60)%64) (A1_33)

–否则,如果maxAB-minAB大于61,则应用以下内容:

candModeList[2]=2+((minAB-1)%64) (A1_34)

candModeList[3]=2+((maxAB+61)%64) (A1_35)

candModeList[4]=2+(minAB%64) (A1_36)

candModeList[5]=2+((maxAB+60)%64) (A1_37)

–否则,应用以下内容:

candModeList[2]=2+((minAB+61)%64) (A1_38)

candModeList[3]=2+((minAB-1)%64) (A1_39)

candModeList[4]=2+((maxAB+61)%64) (A1_40)

candModeList[5]=2+((maxAB-1)%64) (A1_41)

–否则(candIntraPredModeA或candIntraPredModeB大于INTRA_DC),

如下导出candModeList[x],其中x=0..5:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0,则应用以下内容:

candModeList[0]=candIntraPredModeA (A1_42)

candModeList[1]=candIntraPredModeB (A1_43)

candModeList[2]=1-minAB (A1_44)

candModeList[3]=2+((maxAB+61)%64) (A1_45)

candModeList[4]=2+((maxAB-1)%64) (A1_46)

candModeList[5]=2+((maxAB+60)%64) (A1_47)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0),应用以下内容:

candModeList[0]=maxAB (A1_48)

candModeList[1]=2+((maxAB+61)%64) (A1_49)

candModeList[2]=2+((maxAB-1)%64) (A1_50)

candModeList[3]=2+((maxAB+60)%64) (A1_51)

candModeList[4]=2+(maxAB%64) (A1_52)

candModeList[5]=2+((maxAB+59)%64) (A1_53)–否则,应用以下内容:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0,则应用以下内容:

candModeList[0]=candIntraPredModeA (A1_54)

candModeList[1]=

(candModeList[0]==INTRA_PLANAR)?INTRA_DC:(A1_55)INTRA_PLANAR

candModeList[2]=INTRA_ANGULAR50 (A1_56)

candModeList[3]=INTRA_ANGULAR18 (A1_57)

candModeList[4]=INTRA_ANGULAR46 (A1_58)

candModeList[5]=INTRA_ANGULAR54 (A1_59)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0),应用以下内容:

candModeList[0]=INTRA_ANGULAR50 (A1_60)

candModeList[1]=INTRA_ANGULAR18 (A1_61)

candModeList[2]=INTRA_ANGULAR2 (A1_62)

candModeList[3]=INTRA_ANGULAR34 (A1_63)

candModeList[4]=INTRA_ANGULAR66 (A1_64)

candModeList[5]=INTRA_ANGULAR26 (A1_65)

附录2

IntraPredModeY[xCb][yCb]通过以下顺序步骤得到:

1.相邻位置(xNbA,yNbA)和(xNbB,yNbB)分别设置为等于(xCb-1,yCb+cbHeight-1)和(xCb+cbWidth-1,yCb-1)。

2.对于X被A或B替换,如下导出变量candIntraPredModeX:

–用设置为等于(xCb,yCb)的位置(xCurr,yCurr)和设置为等于(xNbX,yNbX)的相邻位置(xNbY,yNbY)作为输入,调用针对块的可用性导出过程,且将输出分配给availableX。

–如下导出候选帧内预测模式candIntraPredModeX:

–如果一个或多个以下条件为真,则candIntraPredModeX设置为等于INTRA_PLANAR。

–变量availableX等于FALSE。

–CuPredMode[xNbX][yNbX]不等于MODE_INTRA,且ciip_flag[xNbX][yNbX]不等于1。

–pcm_flag[xNbX][yNbX]等于1。

–X等于B且yCb-1小于

((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)。

–否则,candIntraPredModeX设置为等于

IntraPredModeY[xNbX][yNbX]。

3.如下定义变量ispDefaultMode1和ispDefaultMode2:

–如果IntraSubPartitionsSplitType等于ISP_HOR_SPLIT,则ispDefaultMode1设置为等于INTRA_ANGULAR18,以及ispDefaultMode2设置为等于INTRA_ANGULAR5。

–否则,ispDefaultMode1设置为等于INTRA_ANGULAR50,以及ispDefaultMode2设置为等于INTRA_ANGULAR63。

4.如下导出candModeList[x],其中,x=0..5:

–如果candIntraPredModeB等于candIntraPredModeA,且

candIntraPredModeA大于INTRA_DC,则如下导出candModeList[x],其中x=0..5:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0且

IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则应用以下内容:

candModeList[0]=candIntraPredModeA (A2_9)

candModeList[1]=INTRA_PLANAR (A2_10)

candModeList[2]=INTRA_DC (A2_11)

candModeList[3]=2+((candIntraPredModeA+61)%64) (A2_12)

candModeList[4]=2+((candIntraPredModeA-1)%64) (A2_13)

candModeList[5]=2+((candIntraPredModeA+60)%64) (A2_14)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0或

IntraSubPartitionsSplitType不等于ISP_NO_SPLIT),应用以下内容:

candModeList[0]=candIntraPredModeA (A2_15)

candModeList[1]=2+((candIntraPredModeA+61)%64) (A2_16)

candModeList[2]=2+((candIntraPredModeA-1)%64) (A2_17)

–如果下列条件之一为真,

–IntraSubPartitionsSplitType等于ISP_HOR_SPLIT且

candIntraPredModeA小于INTRA_ANGULAR34;

–IntraSubPartitionsSplitType等于ISP_VER_SPLIT且

candIntraPredModeA大于或等于INTRA_ANGULAR34;

–IntraLumaRefLineIdx[xCb][yCb]不等于0,

应用以下内容:

candModeList[3]=2+((candIntraPredModeA+60)%64) (A2_18)

candModeList[4]=2+(candIntraPredModeA%64) (A2_19)

candModeList[5]=2+((candIntraPredModeA+59)%64) (A2_20)

–否则,应用以下内容:

candModeList[3]=ispDefaultMode1 (A2_21)

candModeList[4]=ispDefaultMode2 (A2_22)

candModeList[5]=INTRA_PLANAR (A2_23)

–否则,如果candIntraPredModeB不等于candIntraPredModeA,且

candIntraPredModeA或candIntraPredModeB大于INTRA_DC,则应用以下内容:

–如下导出变量minAB和maxAB:

minAB=Min(candIntraPredModeA,candIntraPredModeB) (A2_24)

maxAB=Max(candIntraPredModeA,candIntraPredModeB) (A2_25)

–如果candIntraPredModeA和candIntraPredModeB都大于INTRA_DC,则如下导出candModeList[x],其中x=0..5:

candModeList[0]=candIntraPredModeA (A2_26)

candModeList[1]=candIntraPredModeB (A2_27)

–如果IntraLumaRefLineIdx[xCb][yCb]等于0且

IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则应用以下内容:

candModeList[2]=INTRA_PLANAR (A2_28)

candModeList[3]=INTRA_DC (A2_29)

–如果maxAB-minAB在2至62的范围内(包括2和62在内),则应用以下内容:

candModeList[4]=2+((maxAB+61)%64) (A2_30)

candModeList[5]=2+((maxAB-1)%64) (A2_31)

–否则,应用以下内容:

candModeList[4]=2+((maxAB+60)%64) (A2_32)

candModeList[5]=2+((maxAB)%64) (A2_33)

–否则(IntraLumaRefLineIdx[xCb][yCb]不等于0或

IntraSubPartitionsSplitType不等于ISP_NO_SPLIT),应用以下内容:

–当IntraSubPartitionsSplitType不等于ISP_NO_SPLIT,且abs(candIntraPredModeB-ispDefaultMode1)小于abs(candIntraPredModeA-ispDefaultMode1)时,应用以下内容:

candModeList[0]=candIntraPredModeB (A2_34)

candModeList[1]=candIntraPredModeA (A2_35)

–如果maxAB-minAB等于1,则应用以下内容:

candModeList[2]=2+((minAB+61)%64) (A2_36)

candModeList[3]=2+((maxAB-1)%64) (A2_37)

candModeList[4]=2+((minAB+60)%64) (A2_38)

candModeList[5]=2+(maxAB%64) (A2_39)

–否则,如果maxAB-minAB等于2,则应用以下内容:

candModeList[2]=2+((minAB-1)%64) (A2_40)

candModeList[3]=2+((minAB+61)%64) (A2_41)

candModeList[4]=2+((maxAB-1)%64) (A2_42)

candModeList[5]=2+((minAB+60)%64) (A2_43)

–否则,如果maxAB-minAB大于61,则应用以下内容:

candModeList[2]=2+((minAB-1)%64) (A2_44)

candModeList[3]=2+((maxAB+61)%64) (A2_45)

candModeList[4]=2+(minAB%64) (A2_46)

candModeList[5]=2+((maxAB+60)%64) (A2_47)

–否则,应用以下内容:

candModeList[2]=2+((minAB+61)%64) (A2_48)

candModeList[3]=2+((minAB-1)%64) (A2_49)

candModeList[4]=2+((maxAB+61)%64) (A2_50)

candModeList[5]=2+((maxAB-1)%64) (A2_51)

–否则(candIntraPredModeA或candIntraPredModeB大于

INTRA_DC),如下导出candModeList[x],其中x=0..5:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0且

IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则应用以下内容:

candModeList[0]=candIntraPredModeA (A2_52)

candModeList[1]=candIntraPredModeB (A2_53)

candModeList[2]=1-minAB (A2_54)

candModeList[3]=2+((maxAB+61)%64) (A2_55)

candModeList[4]=2+((maxAB-1)%64) (A2_56)

candModeList[5]=2+((maxAB+60)%64) (A2_57)

–否则,如果IntraLumaRefLineIdx[xCb][yCb]不等于0,则应用以下内容:

candModeList[0]=maxAB (A2_58)

candModeList[1]=2+((maxAB+61)%64) (A2_59)

candModeList[2]=2+((maxAB-1)%64) (A2_60)

candModeList[3]=2+((maxAB+60)%64) (A2_61)

candModeList[4]=2+(maxAB%64) (A2_62)

candModeList[5]=2+((maxAB+59)%64) (A2_63)

–否则(IntraSubPartitionsSplitType不等于ISP_NO_SPLIT),应用以下内容:

candModeList[0]=INTRA_PLANAR (A2_64)

candModeList[1]=maxAB (A2_65)

candModeList[2]=2+((maxAB+61)%64) (A2_66)

candModeList[3]=2+((maxAB-1)%64) (A2_67)

candModeList[4]=2+((maxAB+60)%64) (A2_68)

candModeList[5]=2+(maxAB%64) (A2_69)

–否则,应用以下内容:

–如果IntraLumaRefLineIdx[xCb][yCb]等于0且

IntraSubPartitionsSplitType等于ISP_NO_SPLIT,则应用以下内容:

candModeList[0]=candIntraPredModeA (A2_70)

candModeList[1]=

(candModeList[0]==INTRA_PLANAR)?INTRA_DC:(A2_71)INTRA_PLANAR

candModeList[2]=INTRA_ANGULAR50 (A2_72)

candModeList[3]=INTRA_ANGULAR18 (A2_73)

candModeList[4]=INTRA_ANGULAR46 (A2_74)

candModeList[5]=INTRA_ANGULAR54 (A2_75)

–否则,如果IntraLumaRefLineIdx[xCb][yCb]不等于0,则应用以下内容:

candModeList[0]=INTRA_ANGULAR50 (A2_76)

candModeList[1]=INTRA_ANGULAR18 (A2_77)

candModeList[2]=INTRA_ANGULAR2 (A2_78)

candModeList[3]=INTRA_ANGULAR34 (A2_79)

candModeList[4]=INTRA_ANGULAR66 (A2_80)

candModeList[5]=INTRA_ANGULAR26 (A2_81)

–否则,如果IntraSubPartitionsSplitType等于ISP_HOR_SPLIT,则应用以下内容:

candModeList[0]=INTRA_PLANAR (A2_82)

candModeList[1]=INTRA_ANGULAR18 (A2_83)

candModeList[2]=INTRA_ANGULAR25 (A2_84)

candModeList[3]=INTRA_ANGULAR10 (A2_85)

candModeList[4]=INTRA_ANGULAR65 (A2_86)

candModeList[5]=INTRA_ANGULAR50 (A2_87)

–否则,如果IntraSubPartitionsSplitType等于ISP_VER_SPLIT,则应用以下内容:

candModeList[0]=INTRA_PLANAR (A2_88)

candModeList[1]=INTRA_ANGULAR50 (A2_89)

candModeList[2]=INTRA_ANGULAR43 (A2_90)

candModeList[3]=INTRA_ANGULAR60 (A2_91)

candModeList[4]=INTRA_ANGULAR3 (A2_92)

candModeList[5]=INTRA_ANGULAR18 (A2_93)

5.IntraPredModeY[xCb][yCb]通过应用以下过程得到:

–如果bdpcm_flag[xCb][yCb]等于1,则IntraPredModeY[xCb][yCb]设置为等于bdpcm_dir_flag[xCb][yCb]==0?INTRA_ANGULAR18:

INTRA_ANGULAR50。

–否则,如果intra_luma_mpm_flag[xCb][yCb]等于1,则

IntraPredModeY[xCb][yCb]设置为等于

candModeList[intra_luma_mpm_idx[xCb][yCb]]。

–否则,IntraPredModeY[xCb][yCb]通过应用以下顺序步骤得到:

1.当candModeList[i]大于candModeList[j]时(i=0..4,且对于每个i,

j=(i+1)..5),两个值如下交换:

(candModeList[i],candModeList[j])=Swap(candModeList[i],

candModeList[j]) (A2_94)

2.IntraPredModeY[xCb][yCb]通过以下顺序步骤得到:

i.IntraPredModeY[xCb][yCb]设置为等于

intra_luma_mpm_remainder[xCb][yCb]。

ii.对于i等于0到5(包括0和5在内),当

IntraPredModeY[xCb][yCb]大于或等于candModeList[i]时,

IntraPredModeY[xCb][yCb]的值增加1。

变量IntraPredModeY[x][y]设置为等于IntraPredModeY[xCb][yCb],其中x=xCb..xCb+cbWidth–1和y=yCb..yCb+cbHeight-1。

45页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:帧间位置相关的预测组合模式的改进

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类