运动矢量差的自适应分辨率的制作方法

文档序号:35143703发布日期:2023-08-17 22:05阅读:37来源:国知局
运动矢量差的自适应分辨率的制作方法

本公开总体上涉及视频编码,尤其涉及用于在视频块的帧间预测中提供运动矢量差的自适应分辨率的方法和系统。


背景技术:

1、本文所提供的背景技术说明以对本公开的内容作一般性说明为目的。发明人的某些工作(即已在此背景技术部分中作出描述的工作)以及说明书中关于某些尚未成为申请日之前的现有技术的内容,无论是以明确或隐含的方式均不被视为相对于本公开的现有技术。

2、可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如为1920×1080的亮度样本及相关联的全采样或子采样的色度样本的空间大小。该一系列图片可具有例如每秒60幅图片或每秒60帧的固定或可变的图片速率(替代地,称为帧率)。未压缩的视频对流式传输或数据处理具有特定比特率要求。例如,具有1920×1080的像素分辨率、60帧/秒的帧率、以及每个颜色通道每个像素8位的4:2:0的色度子采样的视频需要接近1.5gbit/s的带宽。一小时的此类视频需要600gb以上的存储空间。

3、视频编码和解码的一个目的可以是通过压缩来减少未压缩的输入视频信号中的冗余。压缩可有助于减小上述带宽和/或存储空间需求,在某些情况下可减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩,以及它们的组合。无损压缩指的是可通过解码过程从已压缩的原始信号中重建原始信号的精确副本的技术。有损压缩指的是如下编码/解码过程,在该编码/解码过程中,在编码期间未完全保留原始视频信息,以及在解码期间未完全恢复原始视频信息。当使用有损压缩时,已重建的信号可能与原始信号不同,尽管丢失一些信息,但是原始信号和已重建的信号之间的失真足够小,以使已重建的信号可用于预期的应用。在视频的情况下,在许多应用中广泛使用有损压缩。可容忍的失真量取决于应用。例如,某些消费视频流式应用的用户相比电影或电视广播应用的用户来说可以容忍更高的失真。可以选择或调节可通过特定的编码算法达到的压缩率,以反映各种失真容忍度:更高的可容忍的失真通常允许编码算法产生更高的损失和更高的压缩率。

4、视频编码器和解码器可利用来自多个类别和步骤的技术,这些技术包括例如运动补偿、傅里叶变换、量化和熵编码。

5、视频编解码器技术可以包括称为帧内编码的技术。在帧内编码中,在不参考来自先前重建的参考图片的样本或其他数据的情况下表示样本值。在某些视频编解码器中,图片在空间上细分为样本块。当所有样本块都以帧内模式编码时,该图片可称为帧内图片。帧内图片及其派生物(例如,独立解码器刷新图片)可用于重置解码器状态,因此可用作已编码视频码流和视频会话中的第一张图片,或者用作静止图像。然后,帧内预测之后的块的样本可进行变换而处于频域中,且可在熵编码之前对如此生成的变换系数进行量化。帧内预测表示一种使预变换域中的样本值最小化的技术。在某些情况下,变换后的dc值越小,且ac系数越小,则在给定的量化步长尺寸下就需要越少的比特来表示熵编码后的块。

6、例如从诸如mpeg-2代编码技术已知的传统帧内编码不使用帧内预测。然而,一些更新的视频压缩技术包括基于例如在空间相邻的编码和/或解码期间获得的、按照解码顺序在帧内编码或解码的数据块之前的周围样本数据和/或元数据来尝试对块进行编码/解码的技术。此类技术此后称为“帧内预测”技术。应注意,至少在一些情况下,帧内预测仅使用来自正在重建的当前图片的参考数据,而不使用来自其它参考图片的参考数据。

7、帧内预测可以有许多不同的形式。当在给定的视频编码技术中可使用不止一种这样的技术时,使用中的技术可称为帧内预测模式。可以在特定的编解码器中提供一种或多种帧内预测模式。在一些情况下,模式可具有子模式,和/或可与各种参数相关联,且用于视频块的模式/子模式信息和帧内编码参数可单独编码或共同包含在模式码字中。对于给定模式、子模式和/或参数组合使用哪个码字可能会对通过帧内预测的编码效率增益产生影响,且用于将码字转换为码流的熵编码技术同样对其也可以产生影响。

8、h.264引入了某种帧内预测模式,并在h.265中对其进行了改进,并在诸如联合探索模型(joint exploration model,jem)、下一代视频编码(versatile video coding,vvc)、基准集(benchmark set,bms)等新的编码技术中进一步进行了改进。通常,对于帧内预测,可使用已经变成可用的相邻样本值来形成预测块。例如,相邻样本的特定集的可用值可沿着一些方向和/或线复制到预测块中。对使用方向的参考可以在码流中进行编码,或者可对其本身进行预测。对所使用方向的参考可以编码在码流中,或者可以对其本身进行预测。

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

10、仍然参考图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中,使用与正在重建的块相邻的预测样本。

11、块104的帧内图片预测可通过根据用信号通知的预测方向从相邻样本复制参考样本值来开始。例如,假设已编码视频码流包括信令(signaling),该信令针对该块104指示箭头(102)的预测方向,即从在右上方、与水平方向成45度角的一个或多个预测样本来预测样本。在这种情况下,从同一个参考样本r05预测样本s41、s32、s23和s14。然后,根据参考样本r08预测样本s44。

12、在某些情况下,可以例如通过插值来组合多个参考样本的值,以便计算参考样本,尤其是当方向不能被45度整除时。

13、随着视频编码技术继续发展,可能的方向的数量增加。例如,在h.264(2003年)中,九个不同的方向可用于帧内预测。在h.265(2013年)中,增加到33个方向,而在本公开时,jem/vvc/bms可支持多达65个方向。已进行实验研究来帮助识别最合适的帧内预测方向,且熵编码中的一些技术可用于以少量比特对那些最合适的方向进行编码,对于方向,接受一定的比特代价。此外,有时可以从已经解码的相邻块的帧内预测中使用的相邻方向来预测方向本身。

14、图1b示出了示意图(180),其描绘了根据jem的65个帧内预测方向,以说明随着时间的推移,开发出来的各种编码技术中的预测方向的数量增加。

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

16、帧间图片预测或帧间预测可基于运动补偿。在运动补偿中,来自先前重建的图片或其部分(参考图片)的样本数据在沿着由运动矢量(此后称为mv)指示的方向上空间偏移之后,可用于预测新重建的图片或图片部分(例如,块)。在某些情况下,参考图片可以与当前正在重建的图片相同。mv可具有x和y两个维度,或具有三个维度,第三个维度指示正在使用的参考图片(类似于时间维度)。

17、在一些视频压缩技术中,可根据其它mv,例如根据在空间上与正在重建的区域相邻的样本数据的其它区域相关的、且按解码顺序在当前mv之前的其它mv来预测适用于样本数据的某个区域的当前mv。这样做可通过消除相关mv中的冗余,而大大减少对mv进行编码所需的数据的总量,从而增加压缩效率。mv预测可有效地工作,例如,由于在对从相机获得的输入视频信号(称为自然视频)进行编码时,存在以下统计可能性:在视频序列中,比适用单个mv的区域更大的区域沿着相似的方向移动,因此,在某些情况下,可使用从相邻区域的mv导出的相似运动矢量来预测该更大的区域。这使得用于给定区域的实际mv与根据周围mv所预测的mv相似或相同。进而在熵编码之后,该mv可以用比直接对mv进行编码(而非根据相邻mv来预测mv)时使用的位数更少的位数来表示。在一些情况下,mv预测可以是无损压缩从原始信号(即样本流)中导出的信号(即mv)的示例。在其他情况下,例如由于根据多个周围mv计算预测值时出现舍入误差,mv预测本身可以是有损的。

18、h.265/hevc(itu-t h.265建议书,“高效视频编解码(high efficiency videocoding)”,2016年12月)中描述了各种mv预测机制。在h.265指定的多种mv预测机制中,本文描述的是下文称为“空间合并”的技术。

19、具体地,参考图2,当前块(201)包括在运动搜索过程期间已由编码器发现的样本,可以根据已产生空间偏移的相同大小的先前块来预测该样本。另外,可从一个或多个参考图片相关联的元数据中导出该mv,而非对mv直接编码。例如,使用关联于a0、a1和b0、b1、b2(分别对应202到206)五个周围样本中的任一样本的mv,(按解码次序)从最近的参考图片的元数据中导出该mv。在h.265中,mv预测可使用来自相邻块正在使用的相同参考图片的预测值。


技术实现思路

1、本公开总体上涉及视频编码,尤其涉及一种用于在视频块的帧间预测中提供运动矢量差的自适应分辨率的方法和系统。在示例实现中,公开了一种用于对视频流的帧间预测视频块进行解码的方法。该方法可以包括:接收所述视频流;确定与所述帧间预测视频块相关联的运动矢量和参考运动矢量之间的运动矢量差(motion vector difference,mvd)被写入所述视频流,其中,所述参考运动矢量对应于参考帧列表0和参考帧列表1中仅一个中的一个参考图片,除非所述mvd是针对两个参考图片联合写入的;从所述视频流中获得在多个预定义的运动矢量差大小范围中所述mvd的大小范围的指示;根据所述大小范围确定所述mvd的像素分辨率;基于所述像素分辨率识别所述视频流中的附加mvd信息;从所述视频流中提取所述附加mvd信息;以及基于所述像素分辨率、所述附加mvd信息、所述参考运动矢量以及与所述运动矢量相关联的参考帧,对所述帧间预测视频块进行解码。

2、在以上的示例实现中,所述像素分辨率是2n个像素,其中n是整数,取值范围介于-6至11之间且包括-6和11。

3、在以上任何一个示例实现中,所述多个预定义的运动矢量差大小范围以预定义的方式与按非升序顺序的像素分辨率相关联,其中,较高的像素分辨率与较小的像素分辨率值相关联。

4、在以上任何一个示例实现中,获得所述mvd的大小范围的指示包括:从所述视频流中提取第一预定义语法元素,所述第一预定义语法元素指示在预定义mvd类别集合中所述mvd的mvd类别,较低的mvd类别对应较小的mvd大小范围;以及根据所述mvd类别确定所述mvd的大小范围。

5、在以上任何一个示例实现中,根据所述大小范围确定所述mvd的像素分辨率包括:确定所述大小范围是否高于预设的mvd范围阈值水平;在确定所述大小范围高于所述预设的mvd范围阈值水平时,确定所述像素分辨率为整数个像素;以及在确定所述大小范围不高于所述预设的mvd范围阈值水平时,确定所述像素分辨率是小数个像素。

6、在以上任何一个示例实现中,基于所述像素分辨率识别所述视频流中的附加mvd信息包括:根据第二预定义语法元素解析所述视频流,以获得所述mvd的整数像素部分;以及在确定所述像素分辨率是小数个像素时,进一步根据至少第三预定义语法元素解析所述视频流以获得所述mvd的小数像素部分。

7、在以上任何一个示例实施例中,所述mvd范围阈值水平包括所述预定义mvd类别集合中的最低mvd或次最低mvd。

8、在以上任何一个示例实现中,大小范围高于所述预设的mvd范围阈值水平的所述预定义mvd类别集合中的每一个mvd与单个允许的整数mvd像素值相关联。

9、在以上任何一个示例实现中,所述单个允许的整数像素值包括与所述对应的大小范围中的较高值对应的像素值。

10、在以上任何一个示例实施例中,所述单个允许的整数像素值包括与所述对应的大小范围中的中点值对应的像素值。

11、在以上任何一个示例实现中,根据所述大小范围确定所述mvd的像素分辨率包括:确定所述大小范围是否低于、包含或高于预设的mvd阈值大小值;在确定所述大小范围高于所述预设的mvd阈值大小值时,确定所述像素分辨率为整数个像素;以及在确定所述大小范围不高于所述预设的mvd阈值大小值时,确定所述像素分辨率是小数个像素。

12、在以上任何一个示例实现中,该方法还包括:在确定所述大小范围包含所述预设的mvd阈值大小值时:从所述视频流中提取第二预定义语法元素,所述第二预定义语法元素指示所述mvd相对于所述mvd的大小范围的起始大小的mvd大小偏移;基于所述mvd的大小范围和所述mvd大小偏移获得所述mvd的整数大小;当所述mvd的整数大小不高于所述预设的mvd阈值大小值时,确定所述像素分辨率为小数;以及当所述mvd的整数大小高于所述预设的mvd阈值大小值时,确定所述像素分辨率为非小数。

13、在以上任何一个示例实现中,在确定所述像素分辨率为小数时,基于所述像素分辨率识别所述视频流中的附加mvd信息包括:根据第三预定义语法元素解析所述视频流以获得所述mvd的小数部分。

14、在以上任何一个示例实现中,所述mvd阈值大小值小于4个像素。

15、在以上任何一个示例实现中,与所述多个预定义的运动矢量差大小范围相关联的mvd像素分辨率从一个大小范围到另一个大小范围不同。

16、在一些其它示例实现中,公开了一种用于解码视频流的帧间预测视频块的方法。该方法可以包括:接收所述视频流;确定与所述帧间预测视频块相关联的运动矢量和参考运动矢量之间的运动矢量差(mvd)被写入所述视频流,其中,所述参考运动矢量对应于参考帧列表0和参考帧列表1中仅一个中的一个参考图片,除非所述mvd是针对两个参考图片联合写入的;从所述视频流中提取所述mvd的大小的整数部分;根据所述mvd的大小的整数部分确定所述mvd的像素分辨率;基于所述像素分辨率识别所述视频流中的附加mvd信息;以及基于所述像素分辨率、所述mvd的大小的整数部分、所述附加mvd信息、所述参考运动矢量以及与所述运动矢量相关联的参考帧,对所述帧间预测视频块进行解码。

17、在以上示例实现中,多个mvd的像素分辨率按降序顺序依赖于多个mvd的大小。

18、在以上任何一个示例实现中,根据所述mvd的大小的整数部分确定所述mvd的像素分辨率包括:确定所述mvd的大小的整数部分是否高于预设的mvd阈值大小值;在确定所述mvd的大小的整数部分高于所述预设的mvd阈值大小值时,确定所述像素分辨率为整数个像素;以及在确定所述mvd的大小的整数部分不高于所述预设的mvd阈值大小值时,确定所述像素分辨率是小数个像素。

19、本公开的各个方面还提供了一种视频编码或解码设备或装置,包括被配置为执行上述方法实现中的任一方法实现的电路。

20、本公开的各个方面还提供了存储指令的非临时计算机可读介质,当该指令被计算机执行用于视频解码和/或编码时,使得计算机执行上述用于视频解码和/或编码的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1