用于视频编码的方法和装置与流程
未命名
08-07
阅读:97
评论:0
用于视频编码的方法和装置
1.优先权信息
2.本技术要求于2018年8月3日提交的美国临时申请62/714,546号和2019年4月24日提交的美国专利申请第16/393,587号的优先权,其全部公开内容通过引用并入本文中。
3.本技术对申请号为201980021172.8,申请日为2019年7月15日,发明名称为“用于视频解码的方法和装置”的中国专利申请提出分案申请。
技术领域
4.本公开内容描述了一般地与视频编码有关的实施方式。
背景技术:
5.本文提供的背景技术描述是出于大概呈现本公开内容的上下文的目的。就本背景技术部分中描述的工作而言,目前署名的发明人的工作以及在提交时可能不符合作为现有技术的说明书的各方面,既没有明确地也没有隐含地被承认为针对本公开内容的现有技术。
6.可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片的空间维度为例如1920
×
1080亮度样本和相关联的色度样本。该一系列图片可以具有例如每秒60个图片或60hz的固定的或可变的图片速率(也被非正式地称为帧速率)。未压缩的视频具有显著的比特率要求。例如,每样本8比特的1080p60 4:2:0视频(60hz帧速率下1920
×
1080亮度样本分辨率)需要接近1.5gbit/s的带宽。一小时的这样的视频需要大于600gb的存储空间。
7.视频编码和解码的目的之一是通过压缩来减少输入视频信号中的冗余。压缩可以帮助减少以上提及的带宽或存储空间需求,在一些情况下减少两个数量级或更多。可以采用无损和有损压缩及其组合。无损压缩是指可以根据压缩的原始信号重建原始信号的精确副本的技术。当使用有损压缩时,重建的信号可能与原始信号不同,但是原始信号与重建的信号之间的失真足够小,以使重建的信号对于预期应用有用。在视频的情况下,有损压缩应用广泛。容忍的失真量取决于应用;例如,某些消费者流式应用的用户可能比电视分配应用的用户容忍更高的失真。可达到的压缩比可以反映出:更高的可允许/可容忍的失真可以产生更高的压缩比。
8.运动补偿可以是有损压缩技术,并且可以涉及下述技术:来自先前重建的图片或其一部分(参考图片)的样本数据的块在由运动矢量(此后被称为mv(motion vector,mv))指示的方向上被空间移位之后,被用来预测新重建的图片或图片部分。在一些情况下,参考图片可以与当前处于重建中的图片相同。mv可以具有两个维度x和y,也可以具有三个维度,第三维度是使用中的参考图片的指示(后者间接地可以是时间维度)。
9.在一些视频压缩技术中,可以根据其他mv预测适用于样本数据的特定区域的mv,例如,根据与在空间上相邻于重建中的区域的样本数据的另一区域有关、并且在解码顺序上先于该mv的mv。这样做可以大幅减少对mv进行编码所需的数据量,从而消除冗余并且增
加压缩。mv预测可以有效地工作,例如,因为在对从摄像装置得到的输入视频信号(被称为自然视频)进行编码时,存在统计上的可能性,即,比单个mv适用的区域大的区域在相似的方向上移动,并且因此可以在一些情况下使用根据邻近区域的mv得到的相似运动矢量被进行预测。这使得针对给定区域找到的mv与根据周围mv预测的mv相似或相同,并且又可以在熵编码之后以比直接对mv进行编码的情况下将使用的比特数小的比特数来表示。在一些情况下,mv预测可以是根据原始信号(即:样本流)得到的信号(即:mv)的无损压缩的示例。在其他情况下,mv预测本身可以是有损的,例如由于根据若干周围mv计算预测器时的舍入误差。
10.在h.265/hevc(itu-t h.265建议书,“high efficiency video coding”,2016年12月)中描述了各种mv预测机制。在h.265提供的多种mv预测机制中,本文描述的是在下文被称为“空间合并”的技术。
11.参照图1,当前块(101)包括在运动搜索处理期间已经由编码器发现的能够根据已经进行空间移位的相同大小的先前块被预测的样本。替代直接对mv进行编码,mv可以根据与例如来自(按解码顺序)最近的参考图片的一个或更多个参考图片相关联的元数据、使用与被表示为a0、a1和b0、b1、b2(分别地,102到106)的五个周围样本中的任一样本相关联的mv来得到。在h.265中,mv预测可以使用来自相邻块正在使用的相同参考图片的预测器。
技术实现要素:
12.本公开内容的各方面提供了用于视频解码的方法和装置。在一些示例中,用于视频解码的装置包括处理电路。该处理电路从已编码视频比特流解码当前图片中的当前块的预测信息并且预测信息指示帧间预测。该处理电路针对当前块确定运动信息,运动信息包括第一运动矢量(mv),第一运动矢量具有x分量和y分量,其中,x分量和y分量中的每一个具有分数mv精度,分数mv精度为当前块中的样本大小的2-n
,并且x分量和y分量中的每一个具有拥有分数mv精度的2
l+1
个mv值中的一个。n为大于2的整数并且l为正整数。该处理电路基于运动信息来重建当前块的至少一个样本。
13.在实施方式中,第一mv的x分量和y分量中的每一个由(l+1)比特来表示,(l+1)比特包括用于量值(magnitude)的l比特和用于方向的1比特,并且2
l+1
个mv值在mv范围[-2
l
,2
l-1
]内。
[0014]
在实施方式中,处理电路将运动信息存储在存储空间中。存储空间的大小为至少j比特,j比特是为第一mv和第二mv、第一参考索引、第二参考索引及用于帧间预测方向的指示符而保留的。第二mv的x分量和y分量中的每一个由(l+1)比特表示,第一参考索引由k比特表示并且指示第一参考列表中与第一mv相关联的第一参考图片,第二参考索引由k比特表示并且指示第二参考列表中与所述第二mv相关联的第二参考图片,指示符由i比特表示。帧间预测方向是以下之一:与第一mv和第一参考图片相关联的前向单向预测、与第二mv和第二参考图片相关联的后向单向预测、以及与第一mv和第二mv及第一参考图片和第二参考图片相关联的双向预测。k为正整数,i是以下之一:0和2,并且j等于(4(l+1)+2k+i)。
[0015]
在示例中,l为17,n为4,k为4,i为2,并且为存储空间保留的j比特为82,将18比特用于第一mv和第二mv的x分量和y分量中的每一个。
[0016]
在示例中,l为18,n为4,k为4,并且i为2。因此,将19比特用于第一mv和第二mv的x
分量和y分量中的每一个,将4比特用于第一参考索引和第二参考索引中的每一个,将2比特用于指示符,并且为存储空间保留的j比特为86。
[0017]
在示例中,l为18,n为4,k为5,并且i为0。在示例中,l为19,n为4,k为4,并且i为2。在示例中,l为22,n为4,k为4,并且i为2。在示例中,l为22,n为4,k为5,并且i为0。在示例中,l为23,n为5,k为4,并且i为2。
[0018]
在实施方式中,运动信息还包括:第二mv、第一参考索引、第二参考索引及指示双向预测的指示符。
[0019]
在实施方式中,处理电路基于mv差和mv预测器的对应的x分量和y分量分别确定第一mv的x分量和y分量。在示例中,预测信息指示用于帧间预测的合并模式。处理电路在没有mv差的情况下基于mv预测器的对应的x分量和y分量来确定x分量和y分量。
[0020]
在实施方式中,运动信息还包括第一参考索引,第一参考索引指示第一参考列表中与第一mv相关联的第一参考图片。处理电路从当前块的时间候选获得当前块的初始mv,第一时间距离在第一参考图片与当前图片之间,第二时间距离在时间候选的第三参考图片与当前图片之间。处理电路基于第一时间距离和第二时间距离,分别对初始mv的x分量和y分量进行缩放,以获得第一mv的x分量和y分量。对于第一mv的x分量和y分量中的每一个,当相应分量在mv范围[-2l,2l-1]之外时,该处理电路将相应分量裁剪到mv范围[-2l,2l-1]内。
[0021]
在实施方式中,具有整数mv精度的整数mv范围是[-2m,2m-1]并且对应于mv范围,mv范围中的2l+1个mv值中的2n个对应于整数mv范围中的2m+1个mv值中的一个,其中,整数mv精度为样本大小并且m为(l-n)。
[0022]
本公开内容的方面还提供了存储指令的非暂态计算机可读介质,该指令在由计算机执行以用于视频解码时使计算机执行用于视频解码的方法。
附图说明
[0023]
根据以下详细描述和附图,所公开的主题的另外的特征、性质和各种优点将更明显,在附图中:
[0024]
图1是在一个示例中当前块及其周围的空间合并候选的示意图。
[0025]
图2是根据实施方式的通信系统(200)的简化框图的示意图。
[0026]
图3是根据实施方式的通信系统(300)的简化框图的示意图。
[0027]
图4是根据实施方式的解码器的简化框图的示意图。
[0028]
图5是根据实施方式的编码器的简化框图的示意图。
[0029]
图6示出了根据另一实施方式的编码器的框图。
[0030]
图7示出了根据另一实施方式的解码器的框图。
[0031]
图8示出了根据本公开内容的一些实施方式的当前块的空间候选和时间候选的示例。
[0032]
图9示出了根据本公开内容的实施方式的用于mvd二进制化的示例性语法。
[0033]
图10示出了概述根据本公开内容的实施方式的处理(1000)的流程图。
[0034]
图11是根据实施方式的计算机系统的示意图。
具体实施方式
[0035]
图2示出了根据本公开内容的实施方式的通信系统(200)的简化框图。通信系统(200)包括可以经由例如网络(250)彼此通信的多个终端设备。例如,通信系统(200)包括经由网络(250)互连的第一对终端设备(210)和(220)。在图2的示例中,第一对终端设备(210)和(220)执行单向数据传输。例如,终端设备(210)可以对视频数据(例如,由终端设备(210)捕获的视频图片流)进行编码,以用于经由网络(250)传输到另一终端设备(220)。已编码视频数据可以以一个或更多个已编码视频比特流的形式进行传输。终端设备(220)可以从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并且根据恢复的视频数据显示视频图片。单向数据传输在媒体服务应用等中可以是常见的。
[0036]
在另一示例中,通信系统(200)包括执行已编码视频数据的双向传输的第二对终端设备(230)和(240),该双向传输可以例如在视频会议期间发生。对于双向数据传输,在示例中,终端设备(230)和(240)中的每个终端设备可以对视频数据(例如,由终端设备捕获的视频图片流)进行编码,以用于经由网络(250)传输到终端设备(230)和(240)中的另一终端设备。终端设备(230)和(240)中的每个终端设备还可以接收由终端设备(230)和(240)中的另一终端设备传输的已编码视频数据,并且可以对已编码视频数据进行解码以恢复视频图片,并且可以根据所恢复的视频数据在可访问的显示设备上显示视频图片。
[0037]
在图2示例中,终端设备(210)、(220)、(230)和(240)可以被示出为服务器、个人计算机和智能电话,但是本公开内容的原理可以不限于此。本公开内容的实施方式适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在终端设备(210)、(220)、(230)和(240)之间传送已编码视频数据的任何数目的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/或互联网。出于本论述的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本公开内容的操作来说可能是无关紧要的。
[0038]
作为所公开的主题的应用的示例,图3示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开的主题可以同等地适用于其他支持视频的应用,包括例如视频会议,数字tv,在包括cd、dvd、存储棒等的数字介质上存储压缩视频等。
[0039]
流式传输系统可以包括采集子系统(313),该采集子系统可以包括诸如数码相机的视频源(301),该视频源创建例如未压缩的视频图片流(302)。在示例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码的视频数据(304)(或已编码视频比特流),被描绘为粗线以强调高数据量的视频图片流(302)可以由包括耦接至视频源(301)的视频编码器(303)的电子设备(320)进行处理。视频编码器(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的上下文中。
[0040]
应当注意,电子设备(320)和(330)可以包括其他部件(未示出)。例如,电子设备(320)可以包括视频解码器(未示出),并且电子设备(330)也可以包括视频编码器(未示出)。
[0041]
图4是根据本公开内容的实施方式的视频解码器(410)的框图。视频解码器(410)可以被包括在电子设备(430)中。电子设备(430)可以包括接收器(431)(例如,接收电路)。视频解码器(410)可以用于代替图3示例中的视频解码器(310)。
[0042]
接收器(431)可以接收将由视频解码器(410)解码的一个或更多个已编码视频序列;在同一实施方式或另一实施方式中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。可以从信道(401)接收已编码视频序列,信道(401)可以是通向存储已编码视频数据的存储设备的硬件/软件链路。接收器(431)可以接收已编码视频数据以及其它数据,例如,可以转发到它们各自的使用实体(未描绘)的已编码音频数据和/或辅助数据流。接收器(431)可以将已编码视频序列与其他数据分开。为了防止网络抖动,缓冲存储器(415)可以耦接在接收器(431)与熵解码器/解析器(420)(此后称为”解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其他应用中,缓冲存储器(415)可以在视频解码器(410)的外部(未描绘)。在又一些其他应用中,在视频解码器(410)的外部可以存在缓冲存储器(未描绘)以例如防止网络抖动,此外在视频解码器(410)的内部可以存在另外的缓冲存储器(415)以例如处理播出定时。当接收器(431)从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可能不需要缓冲存储器(415),或者缓冲存储器(415)可以是小的。为了在诸如互联网的业务分组网络上使用,可能需要缓冲存储器(415),缓冲存储器可以相对较大并且可以有利地具有自适应性大小,并且可以至少部分地在操作系统或视频解码器(410)的外部的类似元件(未描绘)中实现。
[0043]
视频解码器(410)可以包括解析器(420),以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及潜在地包括用以控制诸如呈现设备(412)(例如,显示屏)的呈现设备的信息,该呈现设备不是电子设备(430)的组成部分,但是可以耦接至电子设备(430),如图4所示。用于呈现设备的控制信息可以是辅助增强信息(sei(supplemental enhancement information,sei)消息)或视频可用性信息(video usability information,vui)参数集片段(未描绘)。解析器(420)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码(huffman coding)、具有或不具有上下文灵敏度的算术编码等。解析器(420)可以基于与群组相对应的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可以包括:图片群组(groups of picture,gop)、图片、图块、切片、宏块、编码单元(coding unit,cu)、块、变换单元(transform unit,tu)、预测单元(prediction unit,pu)等。解析器(420)还可以从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等。
[0044]
解析器(420)可以对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。
[0045]
取决于已编码视频图片或部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其他因素,符号(421)的重建可以涉及多个不同的单元。涉及哪些单元以及涉及方式可以通过由解析器(420)从已编码视频序列解析的子群控制信息来控制。出于简洁起见,未描述解析器(420)与下面的多个单元之间的这样的子群控制信息流。
[0046]
除了已经提及的功能块以外,视频解码器(410)可以在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实现方式中,这些单元中的许多单元彼此紧密交互并且至少可以部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分为下面的功能单元是适当的。
[0047]
第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可以输出包括可以输入到聚合器(455)中的样本值的块。
[0048]
在一些情况下,缩放器/逆变换单元(451)的输出样本可以属于帧内编码块;即:不使用来自先前重建的图片的预测性信息,但可以使用来自当前图片的先前重建部分的预测性信息的块。这样的预测性信息可以由帧内预测单元(452)提供。在一些情况下,帧内预测单元(452)使用从当前图片缓冲器(458)提取的已重建信息,生成大小和形状与重建中的块的大小和形状相同的周围块。例如,当前图片缓冲器(458)对部分重建的当前图片和/或完全重建的当前图片进行缓冲。在一些情况下,聚合器(455)基于每个样本将帧内预测单元(452)已经生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息。
[0049]
在其他情况下,缩放器/逆变换单元(451)的输出样本可以属于帧间编码块和潜在运动补偿块。在这样的情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以提取用于预测的样本。在根据属于块的符号(421)对提取的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在该情况下被称为残差样本或残差信号),以生成输出样本信息。运动补偿预测单元(453)从其提取预测样本的参考图片存储器(457)内的地址可以由运动矢量控制,运动矢量以符号(421)的形式供运动补偿预测单元(453)使用,符号(421)可以具有例如x、y和参考图片分量。运动补偿还可以包括在使用子样本精确运动矢量时,从参考图片存储器(457)提取的样本值的插值、运动矢量预测机制等。
[0050]
聚合器(455)的输出样本可以在环路滤波器单元(456)中被各种环路滤波技术采用。视频压缩技术可以包括环路内滤波器技术,环路内滤波器技术由包括在已编码视频序列(也被称为已编码视频比特流)中的参数控制并且作为来自解析器(420)的符号(421)可用于环路滤波器单元(456),但是视频压缩技术还可以响应于在对已编码图片或已编码视频序列的先前(按解码次序)部分进行解码期间获得的元信息,以及响应于先前重建的并经环路滤波的样本值。
[0051]
环路滤波器单元(456)的输出可以是样本流,样本流可以输出到呈现设备(412)以及存储在参考图片存储器(457)中以在将来的帧间图片预测中使用。
[0052]
一旦完全重建,某些已编码图片就可以用作参考图片以用于将来预测。例如,一旦
与当前图片相对应的已编码图片被完全重建,并且编码图片(通过例如解析器(420))被识别为参考图片,当前图片缓冲器(458)就可以成为参考图片存储器(457)的一部分,并且可以在开始重建随后的已编码图片之前重新分配新的当前图片缓冲器。
[0053]
视频解码器(410)可以根据诸如itu-t h.265建议书的标准中的预定的视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,已编码视频序列可以符合由使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中,选择某些工具作为在配置文件下能够供使用的仅有工具。对于合规性,还要求已编码的视频序列的复杂度在由视频压缩技术或标准的层级限定的范围内。在一些情况下,层级限制最大图片大小、最大帧速率、最大重建样本速率(以例如每秒兆个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设置的限制可以通过假想参考解码器(hypothetical reference decoder,hrd)规范以及在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。
[0054]
在实施方式中,接收器(431)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以被包括为已编码视频序列的一部分。附加数据可以由视频解码器(410)使用来正确地对数据进行解码和/或较准确地重建原始视频数据。附加数据可以是例如时间、空间或信噪比(signal noise ratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式。
[0055]
图5示出了根据本公开内容的实施方式的视频编码器(503)的框图。视频编码器(503)被包括在电子设备(520)中。电子设备(520)包括传输器(540)(例如,传输电路)。视频编码器(503)可以用于代替图3示例中的视频编码器(303)。
[0056]
视频编码器(503)可以从采集要由视频编码器(503)编码的视频图像的视频源(501)(并非图5示例中的电子设备(520)的一部分)接收视频样本。在另一示例中,视频源(501)是电子设备(520)的一部分。
[0057]
视频源(501)可以提供要由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如:8位、10位、12位等)、任何色彩空间(例如,bt.601y crcb、rgb等)和任何合适的采样结构(例如y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(501)可以是用于存储先前已准备的视频的存储设备。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可以将视频数据提供为多个单独的图片,当按顺序观看时这些图片被赋予运动。图片自身可以被组织为空间像素阵列,其中,取决于所使用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易地理解像素与样本之间的关系。以下描述侧重于样本。
[0058]
根据实施方式,视频编码器(503)可以实时或在由应用所要求的任何其他时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施方式中,控制器(550)控制如下所述的其他功能单元并且在功能上耦接至其他功能单元。出于简洁起见,未描绘耦接。由控制器(550)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(gop)布局、最大运动矢量搜索范围等。控制器(550)可以被配置成具有其他合适的功能,这些功能属于针对某些系统设计优化的视频编码器(503)。
[0059]
在一些实施方式中,视频编码器(503)被配置成在编码环路中进行操作。作为过于简单化的描述,在示例中,编码环路可以包括源编码器(530)(例如,负责基于要编码的输入图片和参考图片创建符号,例如符号流)以及嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本公开主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入至参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是位精确的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器在解码期间使用预测时将“看到”的样本值完全相同。该参考图片同步性基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。
[0060]“本地”解码器(533)的操作可以与已经在上面结合图4详细描述的“远程”解码器(例如视频解码器(410))的操作相同。然而,还简要参照图4,当符号可用并且熵编码器(545)和解析器(420)可以无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)的视频解码器(410)的熵解码部分可能无法完全在本地解码器(533)中实现。
[0061]
此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术也必定以基本上相同的功能形式存在于对应的编码器中。因此,所公开的主题侧重于解码器操作。由于编码器技术与全面地描述的解码器技术互逆,因此可以简化对编码器技术的描述。仅在某些区域中需要并且在下面提供更详细的描述。
[0062]
在操作期间,在一些示例中,源编码器(530)可以执行运动补偿预测编码,该运动补偿预测编码参考来自视频序列中的被指定为“参考图片”的一个或更多个先前已编码图片,对输入图片进行预测性编码。以此方式,编码引擎(532)对输入图片的像素块与可以被选作输入图片的预测参考的参考图片的像素块之间的差异进行编码。
[0063]
本地视频解码器(533)可以基于由源编码器(530)创建的符号对可以被指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作可以有利地是有损处理。当已编码视频数据可以在视频解码器(图5中未示出)处被解码时,重建的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(533)复制解码处理,该解码处理可以由视频解码器对参考图片执行,并且可以使重建的参考图片存储在参考图片存储器(534)中。以此方式,视频编码器(503)可以本地存储重建的参考图片的副本,该副本与将由远端视频解码器获得的重建的参考图片具有共同内容(不存在传输误差)。
[0064]
预测器(535)可以针对编码引擎(532)执行预测搜索。也就是说,对于要编码的新图片,预测器(535)可以在参考图片存储器(534)中搜索可以用作新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可以基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。
[0065]
控制器(550)可以管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群组参数。
[0066]
所有以上提及的功能单元的输出可以在熵编码器(545)中经历熵编码。熵编码器(545)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩,将符号转换成已编码视频序列。
[0067]
传输器(540)可以缓冲由熵编码器(545)创建的已编码视频序列,从而为经由通信信道(560)进行传输做准备,通信信道(560)可以是通向将存储已编码视频数据的存储设备的硬件/软件链路。传输器(540)可以将来自视频编码器(503)的已编码视频数据与要传输的其他数据例如已编码音频数据和/或辅助数据流(未示出源)进行合并。
[0068]
控制器(550)可以管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图片分配可能影响可以应用于相应的图片的编码技术的某一已编码图片类型。例如,通常可以将图片分配为以下图片类型中之一:
[0069]
帧内图片(i图片),其是在不将序列中的任何其他图片用作预测源的情况下可以被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。本领域技术人员了解i图片的这些变型及其相应的应用和特征。
[0070]
预测性图片(p图片),其是可以使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0071]
双向预测性图片(b图片),其是可以使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联的元数据以用于单个块的重建。
[0072]
源图片通常可以在空间上细分成多个样本块(例如,每个4
×
4、8
×
8、4
×
8或16
×
16个样本的块)并且逐块进行编码。这些块可以参考其他(已编码的)块被预测性编码,其他块通过应用于块的相应的图片编码分配被确定。例如,i图片的块可以被非预测性地编码,或者这些块可以参考同一图片的已编码的块被预测性地编码(空间预测或帧内预测)。p图片的像素块可以参考一个先前已编码参考图片,经由空间预测或经由时间预测被预测性地编码。b图片的块可以参考一个或两个先前已编码参考图片,经由空间预测或经由时间预测被预测性地编码。
[0073]
视频编码器(503)可以根据诸如itu-t h.265建议书的预定的视频编码技术或标准执行编码操作。在视频编码器的操作中,视频编码器(503)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,已编码视频数据可以符合由使用的视频编码技术或标准指定的语法。
[0074]
在实施方式中,传输器(540)可以在传输已编码的视频时传输附加数据。源编码器(530)可以将包括这样的数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/snr增强层、诸如冗余图片和切片的其他形式的冗余数据、sei消息、vui参数集片段等。
[0075]
视频可以被采集为呈时间序列的多个源图片(视频图片)。帧内图片预测(通常被简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的(时间或其他)相关性。在示例中,被称为当前图片的编码/解码中的特定图片被划分成块。在当前图片中的块类似于视频中先前已编码的并且仍被缓冲的参考图片中的参考块时,可以通过被称为运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并
且在使用多个参考图片的情况下,运动矢量可以具有识别参考图片的第三维度。
[0076]
在一些实施方式中,双向预测技术可以用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序均在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量以及指向第二参考图片中的第二参考块的第二运动矢量,对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来预测块。
[0077]
此外,合并模式技术可以用于帧间图片预测中以提高编码效率。
[0078]
根据本公开内容的一些实施方式,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,根据hevc标准,视频图片序列中的图片被分割成编码树单元(coding tree unit,ctu)以用于压缩,图片中的ctu具有相同大小,例如,64
×
64像素、32
×
32像素或16
×
16像素。一般来说,ctu包括三个编码树块(coding tree block,ctb),该三个编码树块是一个亮度ctb和两个色度ctb。可以将每个ctu递归地以四叉树拆分成一个或多个编码单元(coding unit,cu)。例如,可以将64
×
64像素的ctu拆分成一个64
×
64像素的cu,或4个32
×
32像素的cu,或16个16
×
16像素的cu。
[0079]
在示例中,分析每个cu以确定用于cu的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间的可预测性,将cu拆分成一个或更多个预测单元(prediction unit,pu)。通常,每个pu包括亮度预测块(pb)和两个色度pb。在实施方式中,以预测块为单位来执行编码(编码/解码)中的预测操作。使用亮度预测块作为预测块的示例,预测块包括像素值(例如,亮度值)的矩阵,例如8
×
8像素、16
×
16像素、8
×
16像素、16
×
8像素等。
[0080]
图6示出了根据本公开内容的另一实施方式的视频编码器(603)的图。视频编码器(603)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码到作为已编码视频序列的一部分的已编码图片中。在示例中,视频编码器(603)用于代替图3示例中的视频编码器(303)。
[0081]
在hevc示例中,视频编码器(603)接收用于处理块的样本值的矩阵,处理块为例如8
×
8样本的预测块等。视频编码器(603)使用例如率失真优化来确定是否使用帧内模式、帧间模式或双向预测模式对处理块进行最佳地编码。当要在帧内模式下对处理块进行编码时,视频编码器(603)可以使用帧内预测技术,以将处理块编码到已编码图片中;并且当要在帧间模式或双向预测模式下对处理块进行编码时,视频编码器(603)可以分别使用帧间预测或双向预测技术,以将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助于预测器外部的已编码的运动矢量分量的情况下,从一个或更多个运动矢量预测器得出运动矢量。在某些其他视频编码技术中,可以存在适用于主题块的运动矢量分量。在示例中,视频编码器(603)包括其他部件,例如用于确定处理块的模式的模式决策模块(未示出)。
[0082]
在图6示例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。
[0083]
帧间编码器(630)被配置成:接收当前块(例如,处理块)的样本,将该块与参考图片中的一个或更多个参考块(例如,先前图片和之后图片中的块)进行比较,生成帧间预测信息(例如,根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息),以及基于帧间
预测信息使用任何合适的技术计算帧间预测结果(例如,预测的块)。在一些示例中,参考图片是基于已编码的视频信息被解码的已解码参考图片。
[0084]
帧内编码器(622)被配置成:接收当前块(例如,处理块)的样本,在一些情况下,将该块与同一图片中已编码的块进行比较,在变换之后生成量化系数,以及在一些情况下,还生成帧内预测信息(例如,根据一个或更多个帧内编码技术的帧内预测方向信息)。在示例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如,预测的块)。
[0085]
通用控制器(621)被配置成:确定通用控制数据并且基于通用控制数据控制视频编码器(603)的其他部件。在示例中,通用控制器(621)确定块的模式,并且基于该模式将控制信号提供给开关(626)。例如,当模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,并且控制熵编码器(625)以选择帧内预测信息,并且将帧内预测信息包括在比特流中;以及当模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,并且控制熵编码器(625)以选择帧间预测信息,并且将帧间预测信息包括在比特流中。
[0086]
残差计算器(623)被配置成:计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。
[0087]
残差编码器(624)被配置成:基于残差数据进行操作,以对残差数据进行编码从而生成变换系数。在实施方式中,残差编码器(624)被配置成:将残差数据从空间域转换到频域并且生成变换系数。然后,变换系数经受量化处理,以获得量化的变换系数。
[0088]
在各种实施方式中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)被配置成:执行逆变换,并且生成已解码残差数据。已解码残差数据可以适当地由帧内编码器(622)和帧间编码器(630)使用。例如,帧间编码器(630)可以基于已解码残差数据和帧间预测信息生成已解码块,并且帧内编码器(622)可以基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,并且在一些示例中,已解码图片可以在存储器电路(未示出)中缓冲并且用作参考图片。
[0089]
熵编码器(625)被配置成:将比特流格式化以包括已编码的块。熵编码器(625)被配置成:根据诸如hevc标准的合适标准包括各种信息。在示例中,熵编码器(625)被配置成:包括通用控制数据、选择的预测信息(例如帧内预测信息或帧间预测信息)、残差信息和比特流中的其他合适的信息。注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式下对块进行编码时,不存在残差信息。
[0090]
图7示出了根据本公开内容的另一实施方式的视频解码器(710)的图。视频解码器(710)被配置成接收作为已编码视频序列的一部分的已编码图片,并且对已编码图片进行解码以生成重建的图片。在示例中,视频解码器(710)用于代替图3示例中的视频解码器(310)。
[0091]
在图7示例中,视频解码器(710)包括如图7所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)以及帧内解码器(772)。
[0092]
熵解码器(771)可以被配置成:根据已编码图片来重建用于表示构成已编码图片的语法元素的某些符号。这样的符号可以包括:例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、帧间模式和双向预测模式的合并子模式或另一子模式)、可以分
别识别供帧内解码器(772)或帧间解码器(780)使用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、呈例如量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供给帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供给帧内解码器(772)。残差信息可以经受逆量化并且被提供给残差解码器(773)。
[0093]
帧间解码器(780)被配置成:接收帧间预测信息并且基于帧间预测信息生成帧间预测结果。
[0094]
帧内解码器(772)被配置成:接收帧内预测信息并且基于帧内预测信息生成预测结果。
[0095]
残差解码器(773)被配置成:执行逆量化以提取去量化的变换系数,并且对去量化的变换系数进行处理以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(以包括量化器参数(quantizer parameter,qp)),并且信息可以由熵解码器(771)提供(由于这仅是低量控制信息,因此未描绘数据路径)。
[0096]
重建模块(774)被配置成:在空间域中组合由残差解码器(773)输出的残差与预测结果(由帧间预测模块或帧内预测模块输出,视情况而定)以形成重建的块,该重建的块可以是重建的图片的一部分,该重建的图片继而可以是重建的视频的一部分。应当注意,可以执行诸如分解块操作等其他合适的操作来提高视觉质量。
[0097]
应当注意,可以使用任何合适的技术来实现视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施方式中,可以使用一个或更多个集成电路来实现视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器(303)、视频编码器(503)和视频编码器(503)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。
[0098]
根据一些实施方式,当前块的mv可以以明确方式被编码,以用信号表示mv预测器与mv之间的差,或者以隐含方式被编码,以被指示为从一个先前已编码或生成的mv得出。替选地,当使用双向预测时,可以以明确方式或隐含方式对mv对进行编码。mv的明确编码可以被称为高级运动矢量预测(advanced motion vector prediction,amvp)或残差模式。mv的隐含编码可以被称为合并模式(或帧间合并模式),在该合并模式中,通过共享先前已编码块的运动信息,来将当前块合并到先前已编码块中。
[0099]
在合并模式中,可以基于来自当前块的空间相邻块或时间相邻块的运动信息形成合并候选。参照图8,示出了根据本公开内容的一些实施方式中用于形成当前图片中的当前块(801)的空间合并候选和时间合并候选(或空间合并候选的位置和时间合并候选的位置)的示例。可以在合并模式中对当前块(801)进行编码。位置包括a(803)、b(805)、c(804)、d(802)和e(806)。为了简洁起见,与位置a(803)、b(805)、c(804)、d(802)和e(806)相关联的空间合并候选,也可以被使用相应的位置来进行参考。可以在合并候选列表中顺序地检查空间合并候选。在示例中,对于每个空间合并候选,根据诸如{a、b、c、d、e}的顺序或另一顺序检查相应空间合并候选的可用性。例如,如果位于被检查的位置处的空间相邻块被帧内预测,在当前图片、当前切片、当前图块(tile)等之外,则对应的空间合并候选被认为是不可用的。可以执行修剪操作以从合并候选列表中移除一个或更多个重复的空间合并候选。
[0100]
在一些实施方式中,在将空间合并候选包括到合并候选列表中之后,在合并候选列表中检查一个或更多个时间合并候选。例如,在指定参考图片中识别当前块的并置块(collocated block)。参照图8,当前块(801)的指定参考图片中的并置块可以具有与当前块(801)的位置坐标相同的位置坐标(例如,x坐标和y坐标)。时间合并候选可以是来自位于并置块的c0位置(807)处的时间相邻块。在c0位置(807)处的时间相邻块的左上角可以是当前块(801)的外右下角。在实施方式中,在c0位置(807)处的时间相邻块的左上角不与当前块(801)的右下角重叠。例如,当前块(801)的右下角位于位置(x,y)处,并且因此,在c0位置(807)处的时间相邻块的左上角位于位置(x+l,y+l)处,该位置(x+l,y+l)为当前块(801)的外右下角。如果c0位置(807)处的时间相邻块不是以帧间模式被编码或者是不可用的,则时间合并候选可以是来自并置块的c1位置(808)处的时间相邻块。在c1位置(808)处的时间相邻块可以被并置在当前块(801)的中心位置的附近或当前块(801)的中心位置处。当2w和2h分别是当前块(801)的宽度和高度,并且当前块(801)的左上角在位置(0,0)处时,当前块(801)的中心位置可以位于位置(w,h)、位置(w-1,h)、位置(w,h-1)或位置(w-1,h-1)处。在示例中,c1位置(808)处的时间相邻块的左上角被并置在当前块(801)的中心位置(w,h)处。特别地,位置c1(808)处的时间相邻块可以是参考图片中的并置块的子块。根据一些实施方式,合并候选列表中的附加合并候选可以包括经组合的双向预测性候选和/或零运动矢量候选。
[0101]
amvp模式可以使用空间相邻块和时间相邻块的运动信息(例如,mv),来预测当前块的运动信息(例如,mv预测器),同时运动预测残差进一步被编码。图8还示出了用于amvp模式的空间候选预测器和时间候选预测器的示例。为了简洁起见,在amvp模式中使用的时间候选预测器和在合并模式中使用的时间合并候选可以被称为时间候选。类似地,在amvp模式中使用的空间候选预测器和在合并模式中使用的空间合并候选可以被称为空间候选。在amvp模式的示例中,形成双候选mv预测器列表。然而,在其他实施方式中,mv预测器列表可以包括不同数目的候选。第一候选预测器来自从当前块(801)的左边缘(或侧面)起分别按照位置d和a的顺序的第一可用mv。第二候选预测器来自从当前块(801)的上边缘(或侧面)起分别以位置c、b和e的顺序的第一可用mv。如果从左边缘或上边缘的检查位置都不能识别到有效的mv,则在双候选mv预测器列表中不能填充来自左边缘和上边缘的空间候选预测器。在示例中,如果第一候选预测器与第二候选预测器相同,则仅将第一候选预测器与第二候选预测器中之一保留在双候选mv预测器列表中。
[0102]
如果该双候选mv预测器列表并未被填充两个不同的候选预测器,则将参考图片中c0位置(807)处的时间并置块的mv用作另一候选预测器。如果用于c0位置(807)的mv不可用,则可以使用参考图片中的c1位置(808)的mv。在示例中,在c0位置(807)的mv和c1位置(808)的mv被包括在双候选mv预测器列表中之前,可以对上述两个位置的mv进行缩放。如果在分别检查空间候选和时间候选a、b、c、d、e、c0和c1之后,在双候选mv预测器列表中仍然不存在足够的候选预测器,则可以使用零mv来填满双候选mv预测器列表。
[0103]
根据一些实施方式,在amvp模式下,在通过来自双候选mv预测器列表的mv预测器对mv进行预测之后,残差部分被称为具有x分量和y分量的mv差(mv difference,mvd)。mvd是mv与mv预测器之间的差。mvd的编码可以涉及(i)mvd的每个分量的差值的二进制化,和/或(ii)某些二进制化的二进制文件(bin)的上下文建模。
[0104]
在双向预测切片(也被称为b_slice)中,可以以如下各项中的一项对每个块进行编码:前向单向预测(即,从第一参考列表0或l0中的第一参考图片起进行预测)、后向单向预测(即,从第二参考列表1或l1中的第二参考图片起进行预测)和双向预测(即,从第一和第二参考图片起进行预测)。前向单向预测和后向单向预测可以被称为单向预测。在一些实施方式中,当在已编码块中使用双向预测时,使用分别与第一和第二参考图片相关联的两个mv。此外,可以对与两个mv相关联的两个mvd进行编码。例如可以根据任何合适的视频编码标准对这两个mvd进行独立编码。
[0105]
图9示出了根据本公开内容的用于mvd二进制化的示例性语法。图9中示出的mvd二进制化语法可以用于hevc标准中。
[0106]
在一些实施方式中,对于在诸如解码处理的编码处理中使用的mv,如下所述应用mv范围约束。当前块的mv可以具有x分量和y分量。在实施方式中,x分量和y分量中的每一个具有分数mv精度,例如当前块中的样本大小的1/4。1/4分数mv精度也被称为四分之一像素(pel)精度。当使用包括用于方向(或符号)的1比特的16比特来指定mv时,x分量和y分量中的每一个都在mv范围[-215,215-1]内。mv范围具有作为样本大小的1/4的分数mv精度,并且也可以被称为分数mv范围。mv范围包括范围从-215到215-1的增量为1的216个整数mv值。替选地,x分量和y分量中的每一个可以具有整数mv精度,例如当前块中的样本大小的1倍,并且因此,x分量和y分量中的每一个在整数mv范围[-213,213-1]内。整数mv范围包括范围从-213到213-1的增量为1的214个整数mv值。因此,当将mv范围约束应用于mv时,mv的每个分量在特定范围内,该特定范围为例如具有分数mv精度的mv范围[-215,215-1]或具有整数mv精度的整数mv范围[-213,213-1]。
[0107]
在实施方式中,要被编码的当前块可以是当前图片的切片中的亮度pb。用于该切片的参考图片在参考图片列表lx中并且由切片的参考索引refidx指示,其中x为0或1。因此,该参考图片可以在第一参考列表l0中或者在第二参考列表l1中。
[0108]
在示例中,当第一标志predflaglx等于1,参考图片不是当前图片,并且第二标志use_integer_mv_flag等于0时,当前块的亮度mv可以按照如下得出:
[0109]
ulx[0]=(mvplx[0]+mvdlx[0]+2
16
)%2
16
ꢀꢀ
(1)
[0110]
mvlx[0]=(ulx[0]>=2
15
)?(ulx[0]-2
16
):ulx[0]
ꢀꢀ
(2)
[0111]
ulx[1]=(mvplx[1]+mvdlx[1]+2
16
)%2
16
ꢀꢀ
(3)
[0112]
mvlx[1]=(ulx[1]》=2
15
)?(ulx[1]-2
16
):ulx[1]
ꢀꢀꢀ
(4)
[0113]
其中第二标志为0指示分数mv精度被用于与亮度mv相关联的mvd。在该示例中,使用16比特来指定与亮度mv相关联的mv预测器、mvd和亮度mv的x分量和y分量中的每一个。
[0114]
如上所述,x为0或1。当亮度mv与第一参考列表0中的第一参考图片相关联时,x为0。当亮度mv与第二参考列表1中的第二参考图片相关联时,x为1。式(1)以及式(2)示出了得出亮度mv(即mvlx)的x分量mvlx[0]的示例。在示例中,使用amvp模式,并且亮度mv可以为mv预测器(即,mvplx)与mvd(即mvdlx)之和。因此,获得mv预测器的x分量mvplx[0]与mvd的x分量mvdlx[0]之和,并且将该和调整到[0,216-1]的范围内,如式(1)所述。随后,在式(2)中,通过将经调整的和ulx[0]移位到mv范围[-215,215-1]内,获得亮度mv的x分量mvlx[0]。类似地,式(3)以及式(4)示出了得出亮度mv的y分量mvlx[1]的示例。
[0115]
在另一示例中,当第一标志predflaglx等于1,参考图片不是当前图片,并且第二
标志use_integer_mv_flag等于1时,当前块的亮度mv可以按照如下得出:
[0116]
ulx[0]=((((mvplx[0]》》2)+mvdlx[0])<<2)+2
16
)%2
16
ꢀꢀꢀꢀ
(5)
[0117]
mvlx[0]=(ulx[0]》=2
15
)?(ulx[0]-2
16
):ulx[0]
ꢀꢀ
(6)
[0118]
ulx[1]=((((mvplx[1]>>2)+mvdlx[1])<<2)+2
16
)%2
16
ꢀꢀ
(7)
[0119]
mvlx[1]=(ulx[1]>=2
15
)?(ulx[1]-2
16
):ulx[1]
ꢀꢀ
(8)
[0120]
其中第二标志为1指示整数mv精度被用于mvd。在示例中,使用16比特来指定具有四分之一像素精度的mv预测器及亮度mv的x分量和y分量中的每一个,以及使用14比特来指定具有整数mv精度的mvd的x分量和y分量中的每一个。
[0121]
式(5)和式(6)示出了得出亮度mv的x分量mvlx[0]的示例。特别地,在式(5)中,通过将mv预测器的x分量除以4,例如通过将用于表示mv预测器的x分量的16比特移位2比特,将mv预测器的x分量mvplx[0]从四分之一像素精度调整为整数mv精度。获得经调整的mv预测器的x分量mvplx[0]和mvd的x分量mvdlx[0]之和,并且将该和调整到[0,216-1]的范围内。在式(6)中,通过将经调整的和ulx[0]移位到mv范围[-215,215-1]内,获得亮度mv的x分量mvlx[0]。类似地,式(7)以及式(8)示出了得出亮度mv的y分量mvlx[1]的示例。
[0122]
当参考图片是当前图片时,可以针对在帧内块复制中使用的块矢量来执行与参考式(5)-(8)描述的计算相似的计算。
[0123]
当上述亮度mv来自当前块的时间候选时,可以对亮度mv进行缩放,并且将经缩放的亮度mv调整为受相同mv范围约束的限制。例如,经调整的亮度mv的每个分量在相同mv范围内或者在整数mv范围内。在实施方式中,当前图片的参考图片与时间候选的参考图片不同。在示例中,当前图片的参考图片为第一参考列表l0中的第一参考图片并且由第一参考索引指示,并且时间候选的参考图片被称为第三参考图片。因此,第一时间距离tb在第一参考图片与当前图片之间,并且第二时间距离td在第三图片图片与当前图片之间。当第一时间距离和第二时间距离满足条件时,可以基于第一时间距离tb和第二时间距离td来对根据时间候选得出的亮度mv的x分量和y分量进行缩放。例如,该条件可以包括以下的至少一个:第一时间距离tb和第二时间距离td小于阈值,第一参考图片和第三参考图片是短期参考图片等。如上所述,还可以将经缩放的亮度mv调整为受相同mv范围约束的限制。在示例中,当经缩放的亮度mv的分量在mv范围约束之外时,经缩放的亮度mv的分量被裁剪到mv范围约束之内,如下所示。
[0124]
在示例中,标志availableflaglxa等于1,当前图片的第一参考图片与第三参考图片不同,并且第一参考图片和第三参考图片是短期参考图片,因此,可以对亮度mv进行缩放并且进一步进行调整,使得经调整的mv的每个分量在mv范围[-215,215-1]内,如下使用式(9)-(13)所示出的。在示例中,当经缩放的亮度mv的分量在mv范围[-215,215-1]之外时,经缩放的亮度mv的分量被裁剪到mv范围[-215,215-1]内,如式(11)所示出的。
[0125]
tx=(16384+(abs(td)》》1))/td
ꢀꢀꢀꢀ
(9)
[0126]
distscalefactor=clip3(-4096,4095,(tb*tx+32)》》6)
ꢀꢀ
(10)
[0127]
mvlxa=clip3(-32768,32767,sign(distscalefactor*mvlxa)*((abs(distscalefactor*mvlxa)+127)》》8))
ꢀꢀ
(11)
[0128]
tb=clip3(-128,127,diffpicordercnt(currpic,refpiclistx[refidxlx])
ꢀꢀ
(12)
[0129]
td=clip3(-128,127,diffpicordercnt(currpic,refpiclista[refidxla])
ꢀꢀ
(13)
[0130]
可以使用式(12)和式(13)获得第一时间距离和第二时间距离。可以使用式(9)和式(10)基于第一时间距离和第二时间距离获得缩放因子(即,distscalefactor)。更具体地,在式(12)中的函数diffpicordercnt计算第一参考图片与当前图片之间的第一图片次序计数(picture order count,poc)差,该第一poc差表示第一时间距离tb。类似地,式(13)中的函数diffpicordercnt计算第三参考图片与当前图片之间的第二poc差,并且该第二poc差表示第二时间距离td。当使用第一参考图片时,式(12)中x为0,并且refidxlx为refidxl0,表示第一参考索引,refpiclistx为refpiclist0,表示第一参考列表0。currpic表示当前图片。当当前块的参考图片为第二参考图片时,例如,可以通过将x设置为1来适当地适应性调整以上描述。在式(11)中,基于缩放因子distscalefactor对亮度mv进行缩放,并且还将其调整到mv范围[-215,215-1]内。
[0131]
上面参考式(1)至(13)的描述可以被适当地适应性调整以确定各种mv,例如与色度pb相关联的色度mv。替选地,在一些示例中,可以获得亮度pb的亮度mv,并且随后,可以根据亮度mv得出与亮度pb相关联的色度pb的色度mv。
[0132]
在相关的视频编码技术中,分数mv精度最高达四分之一像素精度,例如1/2和1/4,并且使用16比特来表示mv的x分量和y分量。然而,当目标视频分辨率增加,或分数mv精度增加时,相关视频编码技术中的mv范围约束,例如具有216个整数mv值的[-215,215-1],可能是不够的。需要设计适当的mv范围约束以支持新的视频编码技术。
[0133]
对于具有分数mv精度2-n的mv范围,当n增加时,mv范围可以更准确地指定mv。例如,具有当前块中的样本大小的1/16(即,n为4)的分数mv精度的第一mv范围,可以比具有分数mv精度1/4(即,n为2)的第二mv范围更准确地表示mv。因此,根据本公开内容的方面,分数mv精度可以增加到样本大小的2-n,其中n可以为大于2的整数。例如,当n为4时,分数mv精度为样本大小的1/16且可以比样本大小的1/4(即,n为2)更准确。
[0134]
在实施方式中,使用整数mv精度的整数mv范围可以由具有整数mv范围[-2m,2m-1]的(m+1)个比特指定。整数mv范围包括从-2m到2m-l的增量为1的2m+1个不同的整数mv值。mv的x分量和y分量中的每一个可以使用整数mv范围来表示。此外,mv的x分量和y分量中的每一个可以使用分数mv精度2-n来表示,并且因此是2l+1个mv值中的一个,其中l是正整数以及m与n之和。
[0135]
在各种实施方式中,mv的x和y分量中的每一个可以由包括用于量值的l比特和用于方向(或符号)的1比特的(l+1)比特来表示,并且2l+1个mv值在[-2l,2l-1]的mv范围内。2l+1个mv值的范围从-2l到2l-1,增量为1。l和n可以是任何合适的正整数,例如,l可以大于或等于17并且n等于4。若mv是从当前块的时间相邻块得出的,可以对得出的mv进行缩放。
[0136]
根据本公开内容的方面,经缩放的mv的x分量和y分量中的每一个可以被调整到相同mv范围[-2l,2l-1]内,并且由(l+1)个比特表示。例如,当经缩放的mv的分量在mv范围[-2l,2l-1]之外时,经缩放的mv的分量可以被剪裁到相同mv范围[-2l,2l-1]内。因此,可以以更高的精度(例如,样本大小的1/16而不是1/4)表示mv,并且,与分数mv精度是例如1/4或1/2的视频编码技术相比,可以更准确地指定mv。此外,当l大于或等于17时,诸如由[-2l,2l-1]表示的mv范围大于l为16或更小的其他视频编码技术的mv范围。因此,本公开内容的视频
编码技术例如在指定具有较高视频分辨率及更准确的mv精度的mv时更有利。
[0137]
如上所述,可以在多个帧间预测方向中的一个方向上,对双向预测切片中的当前块进行编码:与第一mv和第一参考图片相关联的前向单向预测、与第二mv和第二参考图片相关联的后向单向预测、以及与第一mv和第二mv及第一参考图片和第二参考图片相关联的双向预测。在示例中,当前块以双向预测进行编码,且当前块的运动信息可以包括第一mv和第二mv、第一参考索引、第二参考索引及用于双向预测的指示符。第一参考索引可以指示第一参考列表0中与第一mv相关联的第一参考图片。第二参考索引可以指示第二参考列表1中与第二mv相关联的第二参考图片。在示例中,使用前向单向预测对当前块进行编码,并且当前块的运动信息可以包括第一mv、第一参考索引和用于前向单向预测的指示符。在示例中,使用后向单向预测对当前块进行编码,并且当前块的运动信息可以包括第二mv、第二参考索引和用于后向单向预测的指示符。
[0138]
因此,根据本公开内容的实施方式,为了将当前块的运动信息存储在例如编码器或解码器的存储空间中,存储空间的大小可以为至少j比特,其中,为第一mv和第二mv、第一参考索引和第二参考索引保留存储空间。如上所述,第一mv和第二mv的x分量和y分量中的每一个可以由(l+1)比特表示,并且在mv范围[-2l,2l-1]内。第一参考索引可以由k个比特表示。第二参考索引可以由k个比特表示。在一些实施方式中,指示符由2个比特表示,还为指示符保留存储空间,并且因此,j等于(4(l+1)+2k+2)比特。替选地,可以根据第一参考索引或第二参考索引得出指示符。因此,j等于(4(l+1)+2k)比特。
[0139]
在实施方式中,使用整数mv精度的整数mv范围可以由具有整数mv范围[-2m,2m-1]的(m+1)个比特来指定。整数mv范围包括从-2m到2m-1的增量为1的2m+1个不同的整数mv值。另一方面,由(l+1)个比特指定的具有分数mv精度的mv范围[-2l,2l-1]包括从-2l到2l-1的增量也为1的2l+1个不同的整数mv值。当分别由整数mv范围和分数mv范围表示相同的mv时,该相同的mv可以具有两个不同的mv值,即,分别来自整数mv范围和分数mv范围的第一mv值和第二mv值。在一些示例中,由于具有分数mv精度的mv范围具有比整数mv范围的精度(或分辨率)更高的精度(或分辨率),所以第二mv值可以比第一mv值更准确地表示mv。对于分数mv精度2-n,具有分数mv精度2-n的、具有2l+1个mv值的mv范围,对应于具有2m+1个mv值的整数mv范围,其中2l+1个mv值的2n个对应于2m+1个mv值中的一个,并且m等于(l-n)。
[0140]
在各种实施方式中,可以类似于参考式(1)至式(4)描述的mv范围约束实现上述mv范围约束,以获得第一mv和/或第二mv。当使用l比特表示mv分量的量值时,可以使用如下式(14)至式(15)获得第一mv和第二mv的x分量:
[0141]
ulx[0]=(mvplx[0]+mvdlx[0]+2
(l+1)
)%2
(l+1)
ꢀꢀ
(14)
[0142]
mvlx[0]=(ulx[0]》=2
l
)?(ulx[0]-2
(l+1)
):ulx[0]
ꢀꢀꢀꢀ
(15)
[0143]
其中当x为0时mvlx指第一mv,当x为1时mvlx指第二mv,并且mv范围是由包括用于方向的1比特的(l+1)比特指定的[-2l,2l-1]。类似地,可以使用如下式(16)至式(17)获得第一mv和第二mv的y分量:
[0144]
ulx[1]=(mvplx[1]+mvdlx[1]+2
(l+1)
)%2
(l+1)
ꢀꢀ
(16)
[0145]
mvlx[1]=(ulx[1]》=2
l
)?(ulx[1]-2
(l+1)
):ulx[1]
ꢀꢀꢀꢀ
(17)
[0146]
使用式(14)至式(17)如上得出的第一mv和第二mv的x分量和y分量可以是mv范围中的2(l+1)个mv值中的一个。
[0147]
根据本公开内容的实施方式,例如,如以上参考式(14)和式(16)所描述的,当利用amvp模式对诸如第一mv或第二mv的mv进行编码时,可以基于分别与mv相关联的mvd和mv预测器的相对应的x分量和y分量来确定mv的x分量和y分量。当利用合并模式对mv进行编码时,mvd可以为零且不需要传输。例如,式(14)中的mvd的x分量mvdlx[0]以及式(16)中mvd的y分量mvdlx[l]为零。因此,可以在没有mvd的情况下基于mv预测器的x分量和y分量来确定mv的x分量和y分量。
[0148]
如上所述,当根据当前块的时间候选得出诸如第一mv或第二mv的mv预测器时,例如,当当前块的参考图片与时间候选不相同并且是短期参考图片时,可以对所得出的mv预测器进行缩放。此外,与参考式(9)至式(13)所描述的类似地,可以进一步将经缩放的mv的x分量和y分量调整到相同mv范围[-2l,2l-1]内。式(18)示出了将经缩放的mv(即,缩放的mvlxa)调整到mv范围[-2l,2l-1]内的示例。例如,当经缩放的mv的分量在mv范围[-2l,2l-1]之外时,经缩放的mv的分量可以被剪裁(clip)到mv范围[-2l,2l-1]内。
[0149]
mvlxa=clip3(-2-l
,2
l-1,scaled mvlxa)
ꢀꢀ
(18)
[0150]
在各种实施方式中,可以使用多于17比特来指定mv,并且多于17比特对应于大于16的l,在实施方式中,可以使用18比特来指定诸如第一mv或第二mv的mv的具有分数mv精度2-4的分量,其中m为13,n为4,并且l为17。因此,mv范围是[-217,217-1],并且包括从-217到217-1的增量为1的218个整数mv值。对于一个样本大小的整数mv精度,对应的整数mv范围是[-213,213-1],并且包括从-213到213-1的增量为1的214个整数mv值。mv范围中的16个mv值对应于整数mv范围中的一个mv值。可以使用式(14)至式(18)、通过在式(14)至式(18)中将l设置为17来获得mv的x分量和y分量中的每一个。mv的结果x分量和y分量在mv范围[-217,217-1]中,因此满足mv范围约束。
[0151]
在实施方式中,可以使用19比特来指定具有分数mv精度2-4的mv的分量,其中m为14,n为4,并且l为18。因此,mv范围是[-218,218-1]并且包括从-218到218-1的增量为1的219个整数mv值。对于一个样本大小的整数mv精度,对应的整数mv范围是[-214,214-1]并且包括从-214到214-1的增量为1的215个整数mv值。mv范围中的16个mv值对应于整数mv范围中的一个mv值。可以使用式(14)至式(18)、通过在式(14)至式(18)中将l设置为18来获得mv的x分量和y分量中的每一个。mv的结果x分量和y分量在mv范围[-218,218-1]中,因此满足mv范围约束。在示例中,k为4,2比特用于指定指示符,并且因此j是86。在示例中,k为5,可以根据第一参考索引和/或第二参考索引得出指示符,并且因此j是86。
[0152]
在实施方式中,可以使用20比特来指定具有分数mv精度2-4的mv的分量,其中m为15,n为4,并且l为19。因此,mv范围是[-219,219-1]并且包括从-219到219-1的增量为1的220个整数mv值。对于一个样本大小的整数mv精度,对应的整数mv范围是[-215,215-1]并且包括从-215到215-1的增量为1的216个整数mv值。mv范围中的16个mv值对应于整数mv范围中的一个mv值。可以使用式(14)至式(18)、通过在式(14)至式(18)中将l设置为19来获得mv的x分量和y分量中的每一个。mv的结果x分量和y分量在mv范围[-219,219-1]中,因此满足mv范围约束。在示例中,k为4,2比特用于指定指示符,并且因此j是90。
[0153]
在实施方式中,可以使用23比特来指定具有分数mv精度2-4的mv的分量,其中m为18,n为4,并且l为22。因此,mv范围是[-222,222-1]并且包括从-222到222-1的增量为1的223个整数mv值。对于一个样本大小的整数mv精度,对应的整数mv范围是[-218,218-1]并且
包括从-218到218-1的增量为1的219个整数mv值。mv范围中的16个mv值对应于整数mv范围中的一个mv值。可以使用式(14)至式(18)、通过在式(14)至式(18)中将l设置为22来获得mv的x分量和y分量中的每一个。mv的结果x分量和y分量在mv范围[-222,222-1]中,因此满足mv范围约束。在示例中,k为4,2比特用于指定指示符,并且因此j是102。在示例中,k为5,可以根据第一参考索引和/或第二参考索引得出指示符,并且因此j是102。
[0154]
在实施方式中,可以使用24比特来指定具有分数mv精度2-5的mv的分量,其中m为18,n为5,并且l为23。因此,mv范围是[-223,223-1]并且包括从-223到223-1的增量为1的224个整数mv值。对于一个样本大小的整数mv精度,对应的整数mv范围是[-218,218-1]并且包括从-218到218-1的增量为1的219个整数mv值。mv范围中的32个mv值对应于整数mv范围中的一个mv值。可以使用式(14)至式(18)、通过在式(14)至式(18)中将l设置为23来获得mv的x分量和y分量中的每一个。mv的结果x分量和y分量在mv范围[-223,223-1]中,因此满足mv范围约束。在示例中,k为4,2比特用于指定指示符,并且因此j是106比特。
[0155]
图10示出了概述根据本公开内容的实施方式的处理(1000)的流程图。处理(1000)可以用于重建以帧内模式进行编码的当前块,从而针对重建中的当前块生成预测块。在各种实施方式中,处理(1000)由诸如以下的处理电路执行:终端设备(210)、(220)、(230)和(240)中的处理电路,执行视频编码器(303)的功能的处理电路,执行视频解码器(310)的功能的处理电路,执行视频解码器(410)的功能的处理电路,执行帧内预测模块(452)的功能的处理电路,执行视频编码器(503)的功能的处理电路,执行预测器(535)的功能的处理电路,执行帧内编码器(622)的功能的处理电路,执行帧内解码器(772)的功能的处理电路等。在一些实施方式中,处理(1000)以软件指令来实现,因此,当处理电路执行软件指令时,处理电路执行处理(1000)。处理在(s1001)处开始,并且进行至(s1010)。
[0156]
在(s1010)处,从已编码的视频比特流解码当前图片中的当前块的预测信息。预测信息指示帧间预测。在示例中,预测信息还(例如,明确地或隐含地)指示用于帧间预测的合并模式、amvp模式等。在示例中,预测信息还指示如上所述的帧间预测方向。
[0157]
在(s1020)处,确定当前块的mv。mv具有x分量和y分量,其中x分量和y分量中的每一个具有作为当前块中的样本大小的2-n的分数mv精度,并且具有拥有分数mv精度的2l+1个mv值中的一个。n为大于2的整数,并且l为正整数。在示例中,针对mv具有分数mv精度的mv范围是[-2l,2l-1]。mv范围具有从-2l到2l-1的增量为1的2l+1个整数mv值。mv的每个分量可以由(l+1)比特指定,其中1比特表示方向。
[0158]
可以根据来自相应参考图片列表(例如,如上文所描述的l0或l1)的空间候选或时间候选确定mv。当预测信息指示合并模式时,可以在没有mvd的情况下在合并模式中确定mv。替选地,当预测信息指示amvp模式时,可以在amvp模式中利用与mv相关联的mvd来确定mv。
[0159]
在(s1030)处,确定mv是否满足要缩放的条件。在实施方式中,确定mv是否是根据时间候选得出的。当确定mv不是根据时间候选得出的时,处理(1000)进行至(s1050)。否则,确定mv是根据时间候选得出的。此外,确定当前图片的参考图片是否与时间候选的参考图片不同。当参考图片相同时,处理(1000)进行至(s1050)。否则,例如基于参考图片距当前图片的时间距离来确定参考图片是否是短期参考图片。当参考图片是短期参考图片时,处理(1000)进行至(s1040)。否则,处理(1000)进行至(s1050)。
[0160]
在(s1040)处,如上所述,例如参考式(9)至式(13)和式(18),可以基于时间距离对mv的x分量和y分量中的每一个进行缩放,并且进一步将其调整到诸如mv范围的mv范围约束内。
[0161]
在(s1050)处,基于包括mv的运动信息来重建当前块中的至少一个样本。例如,如果帧间预测方向指示单向预测,例如前向或后向单向预测,则基于mv和用于mv的参考图片来重建当前块中的至少一个样本。此外,如果帧间预测方向指示双向预测,则运动信息还包括另一mv和另一参考图片的参考索引。因此,基于mv、用于mv的参考图片、另一mv和另一mv的参考图片来重建当前块中的至少一个样本。然后,处理(1000)进行至(s1099)并且终止。
[0162]
注意,可以适当地适应性调整处理(1000)。例如,可以组合(s1020)、(s1030)和(s1040),并且可以使用任何合适的顺序来执行组合的步骤(s1020)、(s1030)和(s1040)中的步骤。在另一示例中,在(s1010)处,帧间预测方向为双向预测。因此,在(s1020)处,可以获得mv和其他mv。可以适当地重复某些步骤,例如,可以重复步骤(s1020)以计算另一mv。
[0163]
可以将上述技术实现为使用计算机可读指令并且被物理地存储在一个或更多个计算机可读介质中的计算机软件。例如,图11示出了适于实现所公开的主题的某些实施方式的计算机系统(1100)。
[0164]
计算机软件可以使用任何合适的机器代码或计算机语言来编码,机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,该指令可以由一个或更多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或者通过解译、微代码执行等来执行。
[0165]
指令可以在下述各种类型的计算机或其部件上执行:包括例如个人计算机、平板电脑、服务器、智能电话、游戏设备、物联网设备等。
[0166]
图11中示出的用于计算机系统(1100)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的功能或使用范围提出任何限制。部件的配置也不应当被解释为具有与计算机系统(1100)的示例性实施方式中示出的部件中的任何一个部件或部件的组合有关的任何依赖性或要求。
[0167]
计算机系统(1100)可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于由一个或更多个人类用户通过例如触觉输入(诸如:击键、滑动、数据手套移动)、音频输入(诸如:语音、拍打)、视觉输入(诸如:姿势)、嗅觉输入(未示出)的输入。人机接口设备还可以用于捕获不一定与人的有意识输入直接有关的某些媒体,例如,音频(诸如:语音、音乐、环境声音)、图像(诸如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(诸如二维视频、包括立体视频的三维视频)。
[0168]
输入人机接口设备可以包括以下中的一个或更多个(描述的每个中的仅一个):键盘(1101)、鼠标(1102)、触控板(1103)、触摸屏(1110)、数据手套(未示出)、操纵杆(1105)、麦克风(1106)、扫描仪(1107)、摄像装置(1108)。
[0169]
计算机系统(1100)还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感觉。这样的人机接口输出设备可以包括触觉输出设备(例如,通过触摸屏(1110)、数据手套(未示出)或操纵杆(1105)的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(诸如:扬声器(1109)、头戴式耳机(未示出))、视觉输出设备(诸如屏幕(1110),包括
crt屏幕、lcd屏幕、等离子屏幕、oled屏幕,每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力——其中的一些屏幕可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘)、全息显示器和烟罐(未描绘))和打印机(未描绘)。
[0170]
计算机系统(1100)还可以包括人类可访问存储设备及其相关联的介质,例如包括具有cd/dvd等介质(1121)的cd/dvd rom/rw(1120)的光学介质、拇指驱动器(1122)、可移除硬盘驱动器或固态驱动器(1123)、遗留磁性介质(诸如磁带和软盘(未描绘))、基于专用rom/asic/pld的设备(诸如安全加密狗(未描绘))等。
[0171]
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬时信号。
[0172]
计算机系统(1100)还可以包括到一个或更多个通信网络的接口。网络可以是例如无线的、有线的、光学的。网络还可以是本地的、广域的、城市的、车载的和工业的、实时的、延迟容忍的等。网络的示例包括:诸如以太网的局域网,无线lan,包括gsm、3g、4g、5g、lte等的蜂窝网络,包括有线电视、卫星电视和地面广播电视的电视有线连接或无线广域数字网络,包括canbus的车载的和工业的等。某些网络通常需要附接至某些通用数据端口或外围总线(1149)(例如,计算机系统(1100)的usb端口)的外部网络接口适配器;其他网络通常通过如下所述(例如,到pc计算机系统的以太网接口或到智能电话计算机系统的蜂窝网络接口)附接至系统总线而集成到计算机系统(1100)的核中。使用这些网络中的任何网络,计算机系统(1100)可以与其他实体进行通信。这样的通信可以是单向的、仅接收的(例如,广播电视)、单向仅发送的(例如,到某些canbus设备的canbus)、或双向的(例如使用局域或广域数字网络到其他计算机系统)。可以在如上所述的这些网络和网络接口中的每个网络和网络接口上使用某些协议和协议栈。
[0173]
以上提及的人机接口设备、人类可访问存储设备和网络接口可以附接至计算机系统(1100)的核(1140)。
[0174]
核(1140)可以包括一个或更多个中央处理单元(central processing unit,cpu)(1141)、图形处理单元(graphics processing unit,gpu)(1142)、现场可编程门区(field programmable gate area,fpga)(1143)形式的专用可编程处理单元、用于某些任务的硬件加速器(1144)等。这些设备,连同只读存储器(read-only memory,rom)(1145)、随机存取存储器(1146)、内部大容量存储装置(诸如内部非用户可访问硬盘驱动器、ssd等)(1147),可以通过系统总线(1148)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(1148),以使得能够由附加的cpu、gpu等进行扩展。外围设备可以直接地或通过外围总线(1149)附接至核的系统总线(1148)。外围总线的架构包括pci、usb等。
[0175]
cpu(1141)、gpu(1142)、fpga(1143)和加速器(1144)可以执行某些指令,这些指令组合起来可以构成以上提及的计算机代码。该计算机代码可以存储在rom(1145)或ram(1146)中。过渡数据也可以存储在ram(1146)中,而永久数据可以存储在例如内部大容量存储装置(1147)中。可以通过使用缓存存储器来实现对存储设备中的任何存储设备的快速存储和检索,该缓存存储器可以与一个或更多个cpu(1141)、gpu(1142)、大容量存储装置(1147)、rom(1145)、ram(1146)等紧密相关联。
[0176]
计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。
介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者可以是计算机软件领域的技术人员公知且可用的类型的介质和计算机代码。
[0177]
作为示例而非限制,具有架构(1100)的计算机系统——特别是核(1140)——可以由于处理器(包括cpu、gpu、fpga、加速器等)执行以一个或更多个有形计算机可读介质实施的软件而提供功能。这样的计算机可读介质可以是与如以上所介绍的用户可访问的大容量存储装置相关联的介质,以及具有非暂态性的核(1140)的某些存储装置,例如,核内部大容量存储装置(1147)或rom(1145)。可以将实现本公开内容的各种实施方式的软件存储在这样的设备中并且由核(1140)执行。根据特定需要,计算机可读介质可以包括一个或更多个存储设备或芯片。软件可以使核(1140)——特别是其中的处理器(包括cpu、gpu、fpga等)——执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在ram(1146)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或替选地,计算机系统可以由于硬连线逻辑或不然以电路(例如:加速器(1144))实施的逻辑而提供功能,该电路可以代替软件或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及软件可以包含逻辑,反之提及逻辑也可以包含软件。在适当的情况下,提及计算机可读介质可以包含存储用于执行的软件的电路(例如,集成电路(ic))、实施用于执行的逻辑的电路或上述两者。本公开内容包含硬件和软件的任何合适的组合。
[0178]
附录a:首字母缩略词
[0179]
jem:联合探索模型(joint exploration model,jem)
[0180]
vvc:多功能视频编码(versatile video coding,vvc)
[0181]
bms:基准集(benchmark set,bms)
[0182]
mv:运动矢量(motion vector,mv)
[0183]
hevc:高效视频编码(high efficiency video coding,hevc)
[0184]
sei:辅助增强信息(supplementary enhancement information,sei)
[0185]
vui:视频可用性信息(video usability information,vui)
[0186]
gop:图片群组(groups of picture,gop)
[0187]
tu:变换单元(transform unit,tu)
[0188]
pu:预测单元(prediction unit,pu)
[0189]
ctu:编码树单元(coding tree unit,ctu)
[0190]
ctb:编码树块(coding tree block,ctb)
[0191]
pb:预测块(prediction block,pb)
[0192]
hrd:假想参考解码器(hypothetical reference decoder,hrd)
[0193]
snr:信噪比(signal noise ratio,snr)
[0194]
cpu:中央处理单元(central processing unit,cpu)
[0195]
gpu:图形处理单元(graphics processing unit,gpu)
[0196]
crt:阴极射线管(cathode ray tube,crt)
[0197]
lcd:液晶显示器(liquid-crystal display,lcd)
[0198]
oled:有机发光二极管(organic light-emitting diode,oled)
[0199]
cd:光盘(compact disc,cd)
[0200]
dvd:数字视频光盘(digital video disc,dvd)
[0201]
rom:只读存储器(read-only memory,rom)
[0202]
ram:随机存取存储器(random access memory,ram)
[0203]
asic:专用集成电路(application-specific integrated circuit,asic)
[0204]
pld:可编程逻辑设备(programmable logic device,pld)
[0205]
lan:局域网(local area network,lan)
[0206]
gsm:全球移动通信系统(global system for mobile communication,gsm)
[0207]
lte:长期演进(long-term evolution,lte)
[0208]
canbus:控制器区域网络总线(controller area network bus,canbus)
[0209]
usb:通用串行总线(universal serial bus,usb)
[0210]
pci:外围部件互连(peripheral component interconnect,pci)
[0211]
fpga:现场可编程门阵列(field programmable gate area,fpga)
[0212]
ssd:固态驱动器(solid-state drive,ssd)
[0213]
ic:集成电路(integrated circuit,ic)
[0214]
cc:编码单元(coding unit,cc)
[0215]
amvp:高级运动矢量预测(advanced motion vector prediction,amvp)
[0216]
尽管本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的改变、置换和各种替换等效物。因此将认识到,虽然本文中没有明确示出或描述,但是本领域技术人员将能够设想实施本公开内容的原理并且因此在其精神和范围内的许多系统和方法。
技术特征:
1.一种视频编码的方法,其特征在于,所述方法包括:接收当前图片中当前块的至少一个样本;确定所述当前块的运动信息;所述运动信息包括第一运动矢量(mv),所述第一运动矢量具有x分量和y分量,其中,所述x分量和所述y分量中的每一个具有分数mv精度,所述分数mv精度是所述当前块中的样本大小的2-n
,并且所述x分量和所述y分量中的每一个具有所述分数mv精度的2
l+1
个mv值中的一个,n为4,其指示分数mv精度,l为17,其指示分数mv范围,且所述x分量和所述y分量中的每一个都在具有所述分数mv精度的所述分数mv范围内;基于所述当前块的运动信息,确定所述当前块的预测信息;所述预测信息指示帧间编码;基于所述当前块的预测信息,对所述当前块的至少一个样本进行编码。2.根据权利要求1所述的方法,其特征在于,所述第一mv的x分量和y分量中的每一个由(l+1)比特来表示,所述(l+1)比特包括用于量值的l比特和用于指示方向的1比特,并且所述2
l+1
个mv值在所述分数mv范围[-2
l
,2
l-1]内。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:将所述运动信息存储在存储空间中,所述存储空间的大小为至少j比特,所述j比特是为所述第一mv和第二mv、第一参考索引、第二参考索引以及用于表征帧间预测方向的指示符保留的;其中,所述第二mv的x分量和y分量中的每一个由(l+1)比特表示,所述第一参考索引由k比特表示,并且指示第一参考列表中与所述第一mv相关联的第一参考图片,所述k为正整数,所述第二参考索引由k比特表示,并且指示第二参考列表中与所述第二mv相关联的第二参考图片,所述指示符由i比特表示,所述i以下之一:0和2,并且,所述j等于(4(l+1)+2k+i),所述帧间预测方向是以下任一种:与所述第一mv和所述第一参考图片相关联的前向单向预测、与所述第二mv和所述第二参考图片相关联的后向单向预测、以及与所述第一mv和所述第二mv及所述第一参考图片和所述第二参考图片相关联的双向预测。4.根据权利要求3所述的方法,其特征在于,所述l为17,所述k为4,所述i为2,并且为所述存储空间保留的j比特为82,将18比特用于存储所述第一mv和所述第二mv的x分量和y分量中的每一个。5.根据权利要求3所述的方法,其特征在于,所述l、所述k和所述i对应于以下任一种:所述l为18,所述k为4并且所述i为2;所述l为18,所述k为5并且所述i为0;所述l为19,所述k为4并且所述i为2;所述l为22,所述k为4并且所述i为2;所述l为22,所述k为5并且所述i为0。6.根据权利要求3所述的方法,其特征在于,所述运动信息还包括:所述第二mv、所述第一参考索引、所述第二参考索引、以及指示所述双向预测的所述指示符。7.根据权利要求2所述的方法,其特征在于,所述确定所述当前块的运动信息,包括:基于mv差和mv预测器对应的x分量和y分量,分别确定所述第一mv的x分量和y分量。
8.根据权利要求7所述的方法,其特征在于,所述预测信息指示用于所述帧间预测的合并模式;并且,所述确定所述第一mv的x分量和y分量,包括:在没有所述mv差的情况下,基于所述mv预测器对应的x分量和y分量,确定所述第一mv的x分量和y分量。9.根据权利要求2所述的方法,其特征在于,所述运动信息还包括第一参考索引,所述第一参考索引指示第一参考列表中与所述第一mv相关联的第一参考图片;所述确定所述当前块的运动信息,包括:从所述当前块的时间候选获得所述当前块的初始mv,第一时间距离在所述第一参考图片与所述当前图片之间,第二时间距离在所述时间候选的第三参考图片与所述当前图片之间;基于所述第一时间距离和所述第二时间距离,分别对所述初始mv的x分量和y分量进行缩放,获得所述第一mv的x分量和y分量;以及,对于所述第一mv的x分量和y分量中的每一个,当相应分量在所述分数mv范围[-2
l
,2
l-1]之外时,将所述相应分量裁剪到所述分数mv范围[-2
l
,2
l-1]内。10.根据权利要求2所述的方法,其特征在于,具有整数mv精度的整数mv范围是[-2
m
,2
m-1],并且对应于所述分数mv范围,所述分数mv范围中的2
l+1
个mv值中的2
n
个对应于所述整数mv范围中的2
m+1
个mv值中的一个,所述整数mv精度为所述样本大小,并且m为(l-n)。11.根据权利要求5所述的方法,其特征在于,将19比特用于所述第一mv和所述第二mv的x分量和y分量中的每一个,将4比特用于所述第一参考索引和所述第二参考索引中的每一个,将2比特用于所述指示符,并且为所述存储空间保留的j比特为86,l为18,k为4,并且i为2。12.根据权利要求1所述的方法,其特征在于,l大于17。13.根据权利要求2所述的方法,其特征在于,所述确定所述当前块的运动信息,还包括:对从所述当前块的时间候选获得的mv进行缩放;以及,基于所述分数mv范围[-2
l
,2
l-1]之外的x分量和y分量中的一个,将缩放后的mv的所述x分量和y分量中的一个裁剪到所述分数mv范围[-2
l
,2
l-1]内,以确定第一mv。14.一种视频编码的装置,其特征在于,所述处理电路,所述处理电路被配置成:接收当前图片中当前块的至少一个样本;确定所述当前块的运动信息;所述运动信息包括第一运动矢量(mv),所述第一运动矢量具有x分量和y分量,其中,所述x分量和所述y分量中的每一个具有分数mv精度,所述分数mv精度是所述当前块中的样本大小的2-n
,并且所述x分量和所述y分量中的每一个具有所述分数mv精度的2
l+1
个mv值中的一个,n为4,其指示分数mv精度,l为17,其指示分数mv范围,且所述x分量和所述y分量中的每一个都在具有所述分数mv精度的所述分数mv范围内;基于所述当前块的运动信息,确定所述当前块的预测信息;所述预测信息指示帧间编码;基于所述当前块的预测信息,对所述当前块的至少一个样本进行编码。15.一种存储程序的非暂态计算机可读存储介质,其特征在于,所述程序能够由至少一个处理器执行以执行如权利要求1-13任一项所述的方法。
技术总结
本公开内容的各方面提供了用于视频解码的方法和装置。在一些示例中,该装置包括处理电路。该处理电路从已编码视频比特流解码当前图片中的当前块的预测信息并且预测信息指示帧间预测。该处理电路针对当前块确定运动信息,运动信息包括第一运动矢量(MV),第一运动矢量具有x分量和y分量,其中,x分量和y分量中的每一个具有分数MV精度,分数MV精度为当前块中的样本大小的2-N,并且x分量和y分量中的每一个具有拥有分数MV精度的2L+1个MV值中的一个。N为大于2的整数并且L为正整数。该处理电路基于运动信息来重建当前块的至少一个样本。基于运动信息来重建当前块的至少一个样本。基于运动信息来重建当前块的至少一个样本。
技术研发人员:许晓中 李翔 刘杉
受保护的技术使用者:腾讯美国有限责任公司
技术研发日:2019.07.15
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
