通过重采样执行运动补偿插值的滤波器的制作方法

文档序号:30520918发布日期:2022-06-25 04:53阅读:104来源:国知局
通过重采样执行运动补偿插值的滤波器的制作方法
通过重采样执行运动补偿插值的滤波器
相关申请的交叉引用
1.本技术要求于2019年9月23日提交的申请号为62/904,608的美国临时申请和2019年9月27日提交的申请号为62/906,930的美国临时申请的优先权,该两份申请均以引用方式并入本技术。


背景技术:

2.本技术涉及视频处理,更具体地说,涉及用于通过重采样执行运动补偿插值的滤波器。
3.视频是捕捉视觉信息的一组静态图片(或“帧”)。为了减少存储内存和传输带宽,可以在存储或传输之前对视频进行压缩,并在显示之前解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。目前有多种采用标准化视频编码技术的视频编码格式,最常见的是基于预测、变换、量化、熵编码和环路内滤波的视频编码格式。规定了具体的视频编码格式的视频编码标准,如高效视频编码(hevc/h.265)标准、通用视频编码(vvc/h.266)标准、avs标准等,是由标准化组织制定。随着越来越多的先进视频编码技术在视频标准中被采用,新的视频编码标准的编码效率也越来越高。申请内容
4.本技术实施例提供了一种通过重采样执行运动补偿插值的计算机实现方法。所述方法可以包括:针对具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;以及使用所述参考块处理所述目标图片的块。
5.本技术实施例还提供了一种用于执行运动补偿插值的系统。所述系统可以包括:存储一组指令的存储器;以及至少一个处理器,其被配置为执行一组指令以使所述设备执行:针对具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;以及使用所述参考块处理所述目标图片的块。
6.本技术实施例还提供了一种非暂时性计算机可读介质,该介质存储一组指令,该指令可由计算机系统的至少一个处理器执行,以使所述计算机系统执行用于处理视频内容的方法。该方法可以包括:针对具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;以及使用所述参考块处理所述目标图片的块。
附图说明
7.本技术的实施例和各个方面在以下详细描述和附图中示出。图中所示的各种特征未按比例绘制。
8.图1示出了与本技术实施例一致的示例性视频序列的结构。
9.图2a示出了与本技术实施例一致的混合视频编码系统的示例性编码过程的示意图。
10.图2b示出了与本技术实施例一致的混合视频编码系统的另一示例性编码过程的示意图。
11.图3a示出了与本技术实施例一致的混合视频编码系统的示例性解码过程的示意图。
12.图3b示出了与本技术实施例一致的混合视频编码系统的另一示例性解码过程的示意图。
13.图4是与本技术实施例一致的用于编码或解码视频的示例性装置的框图。
14.图5示出了与本技术实施例一致的参考图片和当前图片的示意图。
15.图6示出了与本技术实施例一致的用于4
×
4亮度分量的基于6抽头dct的示例性内插滤波器系数表。
16.图7示出了与本技术实施例一致的用于亮度分量的示例性8抽头插值滤波器系数表。
17.图8示出了与本技术实施例一致的色度分量的示例性4抽头32相位插值滤波器系数表。
18.图9示出了与本技术实施例一致的示例性理想低通滤波器的频率响应。
19.图10示出了与本技术实施例一致的用于2:1下采样的示例性12抽头余弦窗函数差值插值滤波器系数表。
20.图11示出了与本技术的实施例一致的用于1.5:1下采样的示例性12抽头余弦窗函数差值插值滤波器系数表。
21.图12示出了与本技术实施例一致的用于参考下采样的示例性亮度样本插值滤波过程。
22.图13示出了与本技术实施例一致的用于参考下采样的示例性色度样本插值滤波过程。
23.图14示出了与本技术实施例一致的用于参考下采样的示例性亮度样本插值滤波过程。
24.图15示出了与本技术实施例一致的用于参考下采样的示例性色度样本插值滤波过程。
25.图16示出了与本技术实施例一致的用于参考下采样的示例性亮度样本插值滤波过程。
26.图17示出了与本技术实施例一致的用于参考下采样的示例性色度样本插值滤波过程。
27.图18示出了与本技术实施例一致的用于参考下采样的示例性色度样本插值滤波过程。
28.图19示出了与本技术的实施例一致的用于执行mc插值的示例性8抽头滤波器,其参考下采样率为2:1。
29.图20示出了与本技术的实施例一致的用于执行mc插值的示例性8抽头滤波器,其参考下采样率为1.5:1。
30.图21示出了与本技术的实施例一致的用于执行mc插值的示例性8抽头滤波器,其参考下采样率为2:1,相位为32。
31.图22示出了一个与本技术的实施例一致的用于执行mc差值的示例性的8抽头滤波器,其参考下采样率为1.5:1,相位为32。
32.图23示出了与本技术的实施例一致的4
×
4luma块mc插值的示例性6抽头滤波器系数表,其参考下采样比为2:1,相位为16个相位。
33.图24示出了与本技术的实施例一致的参考下采样率为1.5:1、具有16个相位的luma 4
×
4块mc插值的示例性6抽头滤波器系数表。
34.图25示出了一个与本技术的实施例一致的示例性8抽头滤波器的表,该滤波器用于以2:1的比率进行参考下采样的mc插值。
35.图26示出了与本技术的实施例一致的用于mc插值的示例性8抽头滤波器,其参考下采样率为1.5:1。
36.图27示出了与本技术的实施例一致的用于mc插值的示例性6抽头滤波器,其具有16个相位,以2:1的比率进行参考下采样。
37.图28示出了与本技术的实施例一致的用于mc插值的示例性6抽头滤波器,其具有16个相位,以1.5:1的比率进行参考下采样。
38.图29示出了与本技术的实施例一致的用于mc插值的示例性4抽头滤波器,该滤波器具有32个相位,以2:1的比率进行参考下采样。
39.图30示出了与本技术的实施例一致的用于mc插值的示例性4抽头滤波器,其具有32个相位,以1.5:1的比率进行参考下采样。
40.图31示出了与本技术的实施例一致的用于mc插值的示例性8抽头滤波器,其参考下采样率为2:1。
41.图32示出了与本技术的实施例一致的用于mc插值的示例性8抽头滤波器,其参考下采样率为1.5:1。
42.图33示出了与本技术的实施例一致的用于mc插值的示例性6抽头滤波器,其具有16个相位,以2:1的比率进行参考下采样。
43.图34示出了与本技术的实施例一致的用于mc插值的示例性6抽头滤波器,其具有16个相位,以1.5:1的比率进行参考下采样。
44.图35示出了与本技术的实施例一致用于mc插值的示例性4抽头滤波器,该滤波器具有32个相位,以2:1的比率进行参考下采样。
45.图36示出了与本技术的实施例一致的用于mc插值的示例性4抽头滤波器,其参考下采样率为1.5:1,具有32个相位。
46.图37示出了与本技术实施例一致的滤波器系数信令的示例。
47.图38示出了与本技术的实施例一致的用于标记重采样率和相应滤波器组的示例性语法结构。
48.图39是与本技术实施例一致的用于处理视频内容的示例性方法的流程图。
49.图40是与本技术实施例一致的用于对余弦窗函数差值滤波器的滤波器系数进行舍入的示例性方法的流程图。
具体实施方式
50.现在可以详细参考示例实施例,其示例如附图所示。以下描述参考附图,其中不同
附图中相同的数字表示相同或相似的元件,除非另有说明。以下示例实施例的描述中阐述的实施方式并不代表与本技术一致的所有实施方式。相反,它们仅仅是与所附权利要求中所述的与本技术相关的方面一致的装置和方法的示例。下文更详细地描述了本技术的特定方面。如果与通过引用并入的术语和/或定义相冲突,则以本文提供的术语和定义为准。
51.视频编码系统通常用于压缩数字视频信号,例如减少存储空间消耗或减少与此类信号相关的传输带宽消耗。随着高清(hd)视频(例如,分辨率为1920
×
1080像素)在视频压缩的各种应用中越来越流行,例如在线视频流、视频会议或视频监控,不断需要开发能够提高视频数据压缩效率的视频编码工具。
52.例如,视频监控应用在许多应用场景(例如,安全、交通、环境监控等)中得到越来越广泛的使用,监控设备的数量和分辨率保持快速增长。许多视频监控应用场景更喜欢向用户提供高清视频以捕获更多信息,每帧有更多像素来捕获此类信息。然而,高清视频比特流可能具有高比特率,这需要高带宽传输和大空间存储。例如,平均分辨率为1920
×
1080的监控视频流可能需要高达4mbps的带宽进行实时传输。此外,视频监控通常连续监控7
×
24,如果要存储视频数据,这会极大地挑战存储系统。因此,高清视频对高带宽和大存储的需求已经成为其在视频监控中大规模部署的主要限制。
53.视频是按时间序列排列以存储视觉信息的一组静态图片(或“帧”)。视频捕获设备(例如,相机)可用于按时间顺序捕获和存储这些图片,并且视频播放设备(例如,电视、计算机、智能手机、平板电脑、视频播放器或任何具有显示功能的终端用户终端)可用于按时间顺序显示此类图片。此外,在一些应用中,视频捕获设备可以实时地将捕获的视频传输到视频播放设备(例如,具有监视器的计算机),例如用于监控、会议或直播。
54.为了减少此类应用所需的存储空间和传输带宽,可以在存储和传输之前对视频进行压缩,并在显示之前对其进行解压缩。压缩和解压缩可以通过处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现。用于压缩的模块通常称为“编码器”,用于解压的模块通常称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以被实现为多种合适的硬件、软件或其组合中的任何一种。例如,编码器和解码器的硬件实现可以包括电路,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、或其任何组合。编码器和解码器的软件实现可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现算法或过程。视频压缩和解压缩可以通过各种算法或标准来实现,例如mpeg-1、mpeg-2、mpeg-4、h.26x系列等。在一些应用中,编解码器可以从第一编码标准解压视频,并使用第二编码标准重新压缩解压后的视频,在这种情况下,编解码器可以称为“转码器”。
55.视频编码过程可以识别和保留可以用于重构图片的有用信息,并且忽略重构过程中的不重要的信息。如果无法完全重构被忽视的、不重要的信息,则这种编码过程可以称为“有损”。否则,它可以被称为“无损”。大多数编码过程都是有损的,这是为了减少所需的存储空间和传输带宽而做出的权衡。
56.正在编码的图片(称为“当前图片”)的有用信息包括相对于参考图片(例如,先前编码和重构的图片)的变化。这种变化可以包括像素的位置变化、亮度变化或颜色变化,其中位置变化最受关注。代表对象的一组像素的位置变化可以反映对象在参考图片和当前图片之间的运动。
57.在不参考另一个图片的情况下编码的图片(即,它是它自己的参考图片)被称为“i-图片”。使用先前图片作为参考图片编码的图片被称为“p-图片”。使用先前图片和未来图片作为参考图片(即,参考是“双向”)编码的图片被称为“b-图片”。
58.如前所述,使用高清视频的视频监控面临着高带宽和大存储需求的挑战。为了应对这些挑战,可以降低编码视频的比特率。在i-、p-和b-图片中,i-图片的比特率最高。由于大多数监控视频的背景几乎是静态的,因此降低编码视频的整体比特率的一种方法是使用较少的i图片进行视频编码。
59.然而,使用较少i图片的改进可能微不足道,因为i图片通常在编码视频中不占主导地位。例如,在典型的视频比特流中,i、b和p图片的比率可以是1:20:9,其中i图片可以占总比特率的不到10%。换句话说,在这样的示例中,即使删除了所有i图片,降低的比特率也不能超过10%。
60.图1图示了根据本技术的一些实施例的示例视频序列100的结构。视频序列100可以是实时视频或已被捕获和存档的视频。视频100可以是现实生活中的视频、计算机生成的视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的现实生活中的视频)。视频序列100可以从视频捕获设备(例如,相机)、包含先前所捕获视频的视频档案(例如,存储在存储设备中的视频文件)或视频输入接口(例如,视频广播收发器)输入,以接收来自视频内容提供商的视频。
61.如图1所示,视频序列100可以包括沿时间线时间排列的一系列图片,包括图片102、104、106和108。图片102-106是连续的,并且在图片106和108之间存在更多图片。在图1中,图片102是i图片,其参考图片是图片102本身。图片104是p-图片,如箭头所示,其参考图片是图片102。图片106是b图片,如箭头所示,其参考图片是图片104和108。在一些实施例中,图片(例如,图片104)的参考图片可以不直接位于图片之前或之后。例如,图片104的参考图片可以是图片102之前的图片。需要说明的是,图片102-106的参考图片仅为示例,本技术并不将参考图片的实施例限制为图1中所示的示例。
62.由于此类任务的计算复杂性,视频编解码器通常不会一次对整个图片进行编码或解码。相反,他们可以将图片分割成基本的片段,并逐段对图片进行编码或解码。在本技术中,这些基本的片段被称为基本处理单元(“bpu”)。例如,图1中的结构110示出了视频序列100的图片(例如,图片102-108中的任一个)的示例结构。在结构110中,图片被划分为4
×
4个基本处理单元,其边界显示为虚线。在一些实施例中,基本处理单元在一些视频编码标准(例如,mpeg系列、h.261、h.263或h.264/avc)中可以被称为“宏块”,或者在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中被称为“编码树单元”(“ctu”)。图片中的基本处理单元可以有不同的尺寸,例如128
×
128、64
×
64、32
×
32、16
×
16、4
×
8、16
×
32或任意形状和尺寸的像素。可以基于编码效率和要保留在基本处理单元中的细节水平的平衡来为图片选择基本处理单元的大小和形状。
63.基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器中(例如,在视频帧缓冲器中)的一组不同类型的视频数据。例如,彩色图片的基本处理单元可以包括表示消色差亮度信息的亮度分量(y)、表示颜色信息的一个或多个色度分量(例如,cb和cr)以及相关联的语法元素,其中亮度和色度分量可以具有相同大小的基本处理单元。在一些视频编码标准(例如,h.265/hevc或h.266/vvc)中,亮度和色度分量可以称为“编码树块”(“ctb”)。
对基本处理单元执行的任何操作都可以对其每个亮度和色度分量重复执行。
64.视频编码具有多个操作阶段,其示例在图2a-2b和图3a-3b中示出。对于每个阶段,基本处理单元的大小仍然可能太大而无法处理,因此可以进一步划分为本技术中称为“基本处理子单元”的段。在一些实施例中,基本处理子单元在一些视频编码标准中可以被称为“块”(例如,mpeg系列、h.261、h.263或h.264/avc),或在某些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中被称为“编码单元”(“cu”)。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)。对基本处理子单元执行的任何操作都可以对其每个亮度和色度分量重复执行。应该注意的是,可以根据处理需要将这种划分执行到更进一步的层级。还需要注意的是,不同的阶段可以使用不同的方案来划分基本处理单元。
65.例如,在模式决定阶段(其示例在图2b中示出),编码器可以决定为一个基本处理单元使用何种预测模式(例如,图片内预测或图片间预测),而该基本处理单元可能太大而无法做出这样的决策。编码器可以将基本处理单元拆分为多个基本处理子单元(例如,h.265/hevc或h.266/vvc中的cu),并为每个单独的基本处理子单元确定预测类型。
66.对于另一示例,在预测阶段(其示例在图2a-2b中示出),编码器可以在基本处理子单元(例如,cu)的层级执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元拆分为更小的片段(例如,在h.265/hevc或h.266/vvc中称为“预测块”或“pb”),在该段的层级上可以执行预测操作。
67.对于另一示例,在变换阶段(其示例在图2a-2b中示出),编码器可以对残差基本处理子单元(例如,cu)执行变换操作。但是,在某些情况下,这些基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在h.265/hevc或h.266/vvc中称为“变换块”或“tb”),在该段的层级上可以执行变换操作。需要说明的是,同一基本处理子单元的划分方案在预测阶段和变换阶段可以不同。例如,在h.265/hevc或h.266/vvc中,同一个cu的预测块和变换块可以具有不同的大小和数量。
68.在图1的结构110中,基本处理单元112进一步划分为3
×
3个基本处理子单元,其边界如虚线所示。在不同方案中,同一张图片的不同基本处理单元可以划分为不同的基本处理子单元。
69.在一些实施方式中,为了对视频编码和解码提供并行处理和容错能力,可以将图片划分为多个处理区域,这样,使得对于图片的某个区域,编码或解码过程可以不依赖于来自图片任何其他区域的信息。换句话说,图片的每个区域都可以独立处理。通过该种方式,编解码器可以并行处理图片的不同区域,从而提高编码效率。此外,当一个区域的数据在处理过程中被破坏或在网络传输中丢失时,编解码器可以在不依赖损坏或丢失的数据的情况下正确地对同一图片的其他区域进行编码或解码,从而提供容错能力。在一些视频编码标准中,可以将图片划分为不同类型的区域。例如,h.265/hevc和h.266/vvc提供了两种类型的区域;“切片”和“拼贴”。还应注意,视频序列100的不同图片可以具有用于将图片划分为区域的不同划分方案。
70.例如,在图1中,结构110被划分为三个区域114、116和118,其边界在结构110内部显示为实线。区域114包括四个基本处理单元。区域116和118中的每一个都包括六个基本处
理单元。应当注意的是,图1中的结构110的基本处理单元、基本处理子单元和区域仅是示例,并且本技术不限制其实施。
71.图2a示出了与本申的实施例一致的示例编码过程200a的示意图。例如,编码过程200a可以由编码器执行。如图2a所示,编码器可以根据编码过程200a将视频序列202编码成视频码流228。类似于图1中的视频序列100,视频序列202可以包括按时间顺序排列的一组图片(称为“原始图片”)。类似于图1中的结构110,编码器可以将视频序列202的每个原始图片划分为基本处理单元、基本处理子单元或用于处理的区域。在一些实施例中,编码器可以针对视频序列202的每个原始图片在基本处理单元层级执行编码过程200a。例如,编码器可以以迭代方式执行编码过程200a,其中编码器可以在过程200a的一次迭代中对基本处理单元进行编码。在一些实施例中,编码器可以针对视频序列202的每个原始图片的区域(例如,区域114-118)并行执行过程200a。
72.在图2a中,编码器可以将视频序列202的原始图片的基本处理单元(称为“原始bpu”)输入到预测阶段204,以生成预测数据206和预测bpu 208。编码器可以从原始bpu中减去预测bpu 208,以生成残差bpu 210。编码器可以将残差bpu 210输入到变换阶段212和量化阶段214以生成量化变换系数216。编码器可以将预测数据206和量化变换系数216输入到二进制编码阶段226,以生成视频码流228。组件202、204、206、208、210、212、214、216、226和228可以称为“前向路径”。在过程200a期间,在量化阶段214之后,编码器可以将量化变换系数216输入到逆量化阶段218和逆变换阶段220,以生成重构残差bpu 222。编码器可以将重构残差bpu 222添加到预测bpu 208,以生成预测参考224,其在预测阶段204中用于过程200a的下一次迭代。过程200a的组件218、220、222和224可以被称为“重构路径”。重构路径可用于确保编码器和解码器都使用相同的参考数据进行预测。
73.编码器可以迭代地执行过程200a,以对原始图片的每个原始bpu(在前向路径中)进行编码,并且生成用于编码原始图片的下一个原始bpu(在重构路径中)的预测参考224。在对原始图片的所有原始bpu进行编码之后,编码器可以继续对视频序列202中的下一张图片进行编码。
74.参考过程200a,编码器可以接收由视频捕获设备(例如,相机)生成的视频序列202。此处使用的术语“接收”可以指接收、输入、获取、检索、获取、读取、访问或以任何方式用于输入数据的任何动作。
75.在预测阶段204,在当前迭代中,编码器可以接收原始bpu和预测参考224,并且执行预测操作以生成预测数据206和预测bpu 208。可以从过程200a的上一次迭代的重构路径生成预测参考224。预测阶段204的目的是通过从预测数据206和预测参考224提取可用于将原始bpu重构为预测bpu 208的预测数据206来减少信息冗余。
76.理想情况下,预测的bpu 208可以与原始bpu相同。然而,由于非理想的预测和重构操作,预测的bpu 208通常与原始bpu略有不同。为了记录这种差异,在生成预测的bpu 208之后,编码器可以从原始bpu中减去它,以生成残差bpu 210。例如,编码器可以从预测的bpu 208对应的像素的值(例如,灰度值或rgb值)中减去原始bpu对应像素的值。残差bpu 210的每个像素可以具有作为原始bpu和预测bpu 208的对应像素之间的这种相减结果的残差值。与原始bpu相比,预测数据206和残差bpu 210可以具有更少的比特,但是它们可用于重构原始bpu而不会显着降低质量,从而对原始bpu进行压缩。
77.为了进一步压缩残余bpu 210,在变换阶段212中,编码器可以通过将残余bpu 210分解为一组二维“基本模式”来减少其空间冗余,每个基本模式与“变换系数”相关联。基本模式可以具有相同的大小(例如,剩余bpu 210的大小)。每个基本模式可以表示残差bpu 210的变化频率(例如,亮度变化的频率)分量。任何基本模式都不能从任何其他基本模式的任何组合(例如,线性组合)中再现。换言之,所述分解可以将残差bpu 210的变化分解成频域。这种分解类似于函数的离散傅里叶变换,其中基本模式类似于离散傅里叶变换的基函数(例如,三角函数),并且变换系数类似于与基函数相关的系数。
78.不同的变换算法可以使用不同的基本模式。在变换阶段212中,可以使用各种变换算法,例如离散余弦变换、离散正弦变换等。在变换阶段212的变换是可逆的。也就是说,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差bpu 210。例如,为了恢复残差bpu 210的像素,逆变换可以是将基本模式的对应像素的值乘以相应的相关系数,并且将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此基本模式相同)。因此,编码器可以仅记录变换系数,解码器可以从变换系数重构残差bpu 210,而无需从编码器接收基本模式。与残差bpu 210相比,变换系数可以具有更少的比特,但它们可以用于重构残差bpu 210而不会显着降低质量。因此,残差bpu 210被进一步压缩。
79.所述编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的基本模式可以表示不同的变化频率(例如,亮度变化频率)。由于人眼通常更擅长识别低频变化,因此编码器可以忽略高频变化的信息,而不会导致解码质量明显下降。例如,在量化阶段214,编码器可以通过将每个变换系数除以整数值(称为“量化参数”),并将商四舍五入到其最接近的整数来生成量化变换系数216。经过该种操作,可以将高频基本模式的一些变换系数转换为零,而低频基本模式的变换系数可以转换为更小的整数。编码器可以忽略零值量化变换系数216,通过该变换系数进一步压缩变换系数。量化过程也是可逆的,其中量化变换系数216可以在量化的逆运算(称为“逆量化”)中重构为变换系数。
80.因为编码器在舍入操作中忽略这种除法的余数,所以量化阶段214可能是有损的。通常,量化阶段214可以在过程200a中造成最大的信息损失。信息损失越大,量化变换系数216可能需要的比特就越少。为了获得不同程度的信息损失,编码器可以使用不同的量化参数值或量化过程中的任何其他参数。
81.在二进制编码阶段226,编码器可以使用二进制编码技术(例如熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码,或任何其他无损或有损压缩算法)对预测数据206和量化变换系数216进行编码。在一些实施例中,除了预测数据206和量化变换系数216之外,编码器可以在二进制编码阶段226编码其他信息,例如在预测阶段204使用的预测模式、预测操作的参数、变换阶段212的变换类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频码流228。在一些实施例中,视频码流228可以被进一步打包用于网络传输。
82.参考过程200a的重构路径,在逆量化阶段218,编码器可以对量化变换系数216执行逆量化以生成重构的变换系数。在逆变换阶段220,编码器可以基于重构的变换系数生成重构的残差bpu 222。编码器可以将重构的残差bpu 222添加到预测的bpu 208,以生成将在过程200a的下一次迭代中使用的预测参考224。
83.应当注意的是,过程200a的其他变体也可以用于编码视频序列202。在一些实施例中,编码器可以以不同的顺序执行过程200a的各个阶段。在一些实施例中,过程200a的一个或多个阶段可以组合成单个阶段。在一些实施例中,过程200a的单个阶段可以分为多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200a可以包括附加阶段。在一些实施例中,过程200a可以省略图2a中的一个或多个阶段。
84.图2b示出了与本技术的实施例一致的另一示例编码过程200b的示意图。可以从过程200a修改过程200b。例如,过程200b可由符合混合视频编码标准(例如,h.26x系列)的编码器使用。与过程200a相比,过程200b的前向路径额外包括模式判定阶段230,并将预测阶段204分为空间预测阶段2042和时间预测阶段2044。过程200b的重构路径额外包括环路滤波器阶段232和缓冲器234。
85.通常,预测技术可以分为两种类型:空间预测和时间预测。空间预测(例如,图片内预测或“帧内预测”)可以使用来自同一图片中一个或多个已编码相邻bpu的像素来预测当前bpu。也就是说,空间预测中的预测参考224可以包括相邻的bpu。空间预测可以减少图片固有的空间冗余。时间预测(例如,图片间预测或“帧间预测”)可以使用来自一个或多个已编码图片的区域来预测当前bpu。也就是说,时间预测中的预测参考224可以包括编码图片。时间预测可以减少图片的固有时间冗余。
86.参考过程200b,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正被编码的图片的原始bpu,预测参考224可以包括已经在相同图片中编码(在前向路径中)和重构(在重构路径中)的一个或多个相邻bpu。编码器可以通过外推相邻的bpu来生成预测的bpu 208。外推技术可以包括例如线性外推或内插、多项式外推或内插等。在一些实施例中,编码器可以在像素级执行外推,例如通过为预测的bpu 208的每个像素外推相应像素的值。用于外推的相邻bpu可以相对于原始bpu从各个方向定位,例如在垂直方向(例如,在原始bpu的顶部)、水平方向(例如,在原始bpu的左侧)、对角线方向(例如,原始bpu的左下、右下、左上或右上),或在使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括例如使用的相邻bpu的位置(例如坐标)、使用的相邻bpu的大小、外推参数、使用的相邻bpu相对于原始bpu的方向等。
87.对于另一示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图片的原始bpu,预测参考224可以包括已经编码(在前向路径中)和重构(在重构路径中)的一个或多个图片(称为“参考图片”)。在一些实施例中,可以通过bpu对参考图片进行编码和重构。例如,编码器可以将重构的残差bpu 222添加到预测的bpu 208以生成重构的bpu。当生成相同图片的所有重构bpu时,编码器可以生成重构的图片作为参考图片。编码器可以执行“运动估计”操作,以在参考图片的范围(称为“搜索窗口”)中搜索匹配区域。参考图片中搜索窗口的位置可以根据当前图片中原始bpu的位置来确定。例如,搜索窗口可以在参考图片中与当前图片中的原始bpu具有相同坐标的位置居中,并且可以向外延伸预定距离。当编码器在搜索窗口中识别(例如,通过使用像素递归算法、块匹配算法等)类似于原始bpu的区域时,编码器可以确定这样的区域作为匹配区域。匹配区域可以具有与原始bpu不同的尺寸(例如,小于、等于、大于或形状不同)。由于参考图片和当前图片在时间轴中被暂时分离(例如,如图1所示),因此可以认为,随着时间的推移,匹配区域“移动”到原始bpu的位置。编码器可
以将这种运动的方向和距离记录为“运动矢量”,当使用多个参考图片(例如,如图1中的图片106)时,编码器可以搜索匹配区域,并为每个参考图片确定其相关联的运动矢量。在一些实施例中,编码器可以将权重分配给各个匹配参考图片的匹配区域的像素值。
88.运动估计可用于识别各种类型的运动,例如平移、旋转、缩放等。对于帧间预测,预测数据206可以包括例如匹配区域的位置(例如坐标)、与匹配区域相关联的运动矢量、参考图片的数量、与参考图片相关联的权重等。
89.为了生成预测的bpu 208,编码器可以执行“运动补偿”操作。运动补偿可用于基于预测数据206(例如,运动矢量)和预测参考224来重构预测的bpu 208。例如,编码器可以根据运动矢量移动参考图片的匹配区域,其中编码器可以预测当前图片的原始bpu。当使用多个参考图片时(例如,如图1中的图片106),编码器可以根据匹配区域的相应运动矢量和平均像素值来移动参考图片的匹配区域。在一些实施例中,如果编码器已将权重分配给各个匹配参考图片的匹配区域的像素值,则编码器可以添加移动的匹配区域的像素值的加权和。
90.在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以在与当前图片相同的时间方向上使用一个或多个参考图片。例如,图1中的图片104是单向帧间预测图片,其中参考图片(即,图片102)在图片104之前。双向帧间预测可以在相对于当前图片的两个时间方向上使用一个或多个参考图片。例如,图1中的图片106是双向帧间预测图片,其中参考图片(即图片104和108)相对于图片104处于两个时间方向。
91.仍然参考过程200b的前向路径,在空间预测阶段2042和时间预测阶段2044之后,在模式决定阶段230,编码器可以对过程200b的当前迭代选择预测模式(例如,帧内预测或帧间预测之一)。例如,编码器可以执行率失真优化技术,其中编码器可以根据候选预测模式的比特率和在候选预测模式下重构的参考图片的失真来选择预测模式,以最小化代价函数的值。根据选择的预测模式,编码器可以生成对应的预测bpu 208和预测数据206。
92.在过程200b的重构路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,在当前图片中已经被编码和重构的当前bpu)之后,编码器可以直接将预测参考224输入到空间预测阶段2042以供以后使用(例如,用于外推当前图片的下一个bpu)。如果已在前向路径中选择了帧间预测模式,则在生成预测参考224(例如,其中所有bpu已被编码和重构的当前图片)之后,编码器可以将预测参考224输入到环路滤波器阶段232,此时,编码器可以将环路滤波器应用于预测参考224,以减少或消除由帧间预测引入的失真(例如,块效应)。编码器可以在环路滤波器阶段232应用各种环路滤波器技术,例如去块、采样自适应偏移、自适应环路滤波器等。环路滤波的参考图片可以存储在缓冲器234(或“解码的图片缓冲器”)中以供以后使用(例如,用作视频序列202的未来图片的帧间预测参考图片)。编码器可以将一个或多个参考图片存储在缓冲器234中以在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226编码环路滤波器的参数(例如,环路滤波器强度),以及量化变换系数216、预测数据206和其他信息。
93.图3a示出了与本技术的实施例一致的示例解码过程300a的示意图。过程300a可以是对应于图2中的压缩过程200a的解压缩过程。在一些实施例中,过程300a可以类似于过程200a的重构路径。解码器可以根据过程300a将视频码流228解码成视频流304。视频流304可以与视频序列202非常相似。然而,由于压缩和解压缩过程中的信息丢失(例如,图2a-2b中
的量化阶段214),通常,视频流304与视频序列202不同。类似于图2a-2b中的过程200a和200b,解码器可以在基本处理单元(bpu)层级对视频码流228中编码的每个图片执行过程300a。例如,解码器可以以迭代方式执行过程300a,其中解码器可以在解码过程300a的一次迭代中解码基本处理单元。在一些实施例中,解码器可以对视频码流228中编码的每个图片的区域(例如,区域114-118)并行执行过程300a。
94.在图3a中,所述解码器可以将与编码图片的基本处理单元(称为“编码bpu”)相关联的视频码流228的一部分输入到二进制解码阶段302。在二进制解码阶段302,解码器可以将该部分解码为预测数据206和量化变换系数216。所述解码器可以将量化变换系数216输入到逆量化阶段218和逆变换阶段220以生成重构的残差bpu 222。解码器可以将预测数据206输入到预测阶段204以生成预测的bpu 208.解码器可以将重构的残差bpu 222添加到预测的bpu 208以生成预测的参考224。在一些实施例中,可以将预测的参考224存储在缓冲器中(例如,计算机存储器中的解码图片缓冲器)。解码器可以将预测参考224输入到预测阶段204,用于在过程300a的下一次迭代中执行预测操作。
95.解码器可以迭代地执行过程300a,以解码编码图片的每个编码bpu,并且生成用于对编码图片的下一个编码bpu进行编码的预测参考224。在对编码图片的所有编码bpu进行解码后,解码器可以将图片输出到视频流304以供显示,并继续对视频码流228中的下一个编码图片进行解码。
96.在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术的逆运算(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损压缩算法)。在一些实施例中,除了预测数据206和量化变换系数216之外,解码器还可以在二进制解码阶段302解码其他信息,例如预测模式、预测操作的参数、变换类型、量化参数过程(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频码流228通过网络以分组的形式传输,则解码器可以在将视频码流228输入到二进制解码阶段302之前对其进行解包。
97.图3b示出了与本技术的实施例一致的另一示例解码过程300b的示意图。过程300b可以从过程300a修改而来。例如,过程300b可由符合混合视频编码标准(例如,h.26x系列)的解码器使用。与过程300a相比,过程300b另外将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并且另外包括环路滤波器阶段232和缓冲器234。
98.在过程300b中,对于正被解码的编码图片(称为“当前图片”)的编码基本处理单元(称为“当前bpu”),由解码器从二进制解码级302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式对当前bpu进行编码。例如,如果编码器使用帧内预测来编码当前bpu,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标识值)、帧内预测操作的参数等。帧内预测操作的参数可以包括,例如,用作参考的一个或多个相邻bpu的位置(例如,坐标)、相邻bpu的大小、外推参数、相邻bpu相对于原始bpu的方向等。例如,如果编码器使用帧间预测来编码当前bpu,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标识值)、帧间预测操作的参数等,帧间预测操作的参数可以包括例如与当前bpu相关联的参考图片的数量、分别与参考图片相关联的权重、相应参考图片中一个或多个匹配区域的位置(例如坐标)、一个或多个分别与匹配区域相关联的运动矢量等。
99.基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例
如,帧内预测)还是在时间预测阶段2044执行时间预测(例如,帧间预测)。执行这种空间预测或时间预测的细节在图2b中描述,以下不再赘述。在执行这种空间预测或时间预测之后,解码器可以生成预测的bpu 208。解码器可以添加预测的bpu 208和重构的残差bpu 222以生成预测参考224,如图3a中所描述的。
100.在过程300b中,解码器可以将预测参考224输入到空间预测阶段2042或时间预测阶段2044,以在过程300b的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测对当前bpu进行解码,则在生成预测参考224(例如,解码的当前bpu)之后,解码器可以将预测参考224直接输入到空间预测阶段2042以供以后使用(例如,用于外推当前图片的下一个bpu)。如果当前bpu在时间预测阶段2044使用帧间预测被解码,则在生成预测参考224(例如,其中所有bpu已被解码的参考图片)之后,编码器可以将预测参考224输入到环路滤波器阶段232,以减少或消除失真(例如,块状伪影)。解码器可以以图2b中描述的方式将环路滤波器应用于预测参考224。环路滤波的参考图片可以存储在缓冲器234中(例如,计算机存储器中的解码图片缓冲器)以供以后使用(例如,用作视频码流228的未来编码图片的帧间预测参考图片)。解码器可以在缓冲器234中存储一个或多个参考图片以在时间预测阶段2044使用。在一些实施例中,当预测数据206的预测模式指示符指示帧间预测被用于编码当前bpu时,预测数据可以进一步包括环路滤波器的参数(例如,环路滤波器强度)。
101.图4是与本技术的实施例一致的用于对视频进行编码或解码的示例装置400的框图。如图4所示,装置400可以包括处理器402。当处理器402执行此处描述的指令时,装置400可以成为用于视频编码或解码的专用机器。处理器402可以是能够操纵或处理信息的任何类型的电路。例如,处理器402可以包括任何数量的中央处理单元(或“cpu”)、图形处理单元(或“gpu”)、神经处理单元(“npu”)、微控制器单元(“mcu”)、光处理器、可编程逻辑控制器、微控制器、微处理器、数字信号处理器、知识产权(ip)核、可编程逻辑阵列(pla)、可编程阵列逻辑(pal)、通用阵列逻辑(gal)、复杂可编程逻辑器件(cpld)、现场可编程门阵列(fpga)、片上系统(soc)、专用集成电路(asic)等。在一些实施例中,处理器402也可以是被分组为单个逻辑控制器的一组处理器。例如,如图4所示,处理器402可以包括多个处理器,包括处理器402a、处理器402b和处理器402n。
102.设备400还可以包括被配置为存储数据(例如,一组指令、计算机代码、中间数据等)的存储器404。例如,如图4所示,所存储的数据可以包括程序指令(例如,用于实现过程200a、200b、300a或300b中的阶段的程序指令)和用于处理的数据(例如,视频序列202、视频码流228或视频流304)。处理器402可以访问程序指令和数据以进行处理(例如,通过总线410),并执行程序指令以对数据进行操作或操纵以进行处理。存储器404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,存储器404可以包括任意数量的随机存取存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(sd)卡、记忆棒、紧凑型闪存(cf)卡等。存储器404也可以是分组为单个逻辑组件的一组存储器(图4中未示出)。
103.总线410可以是在装置400内部的组件之间传输数据的通信设备,诸如内部总线(例如,cpu-存储器总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)等。
104.为了便于解释而不引起歧义,在本技术中将处理器402和其他数据处理电路统称为“数据处理电路”。数据处理电路可以完全实现为硬件,或者软件、硬件或固件的组合。此
外,数据处理电路可以是单个独立模块,或者可以完全或部分组合到装置400的任何其他组件中。
105.设备400还可包括网络接口406,以提供与网络(例如,因特网、内联网、局域网、移动通信网络等)相关的有线或无线通信。在一些实施例中,网络接口406可以包括任意数量的网络接口控制器(nic)、射频(rf)模块、转发器、收发器、调制解调器、路由器、网关、有线网络适配器的任意组合、无线网络适配器、蓝牙适配器、红外适配器、近场通信(“nfc”)适配器、蜂窝网络芯片等。
106.在一些实施例中,可选地,装置400可以进一步包括外围接口408,以提供到一个或多个外围设备的连接。如图4所示,外围设备可以包括但不限于光标控制设备(例如鼠标、触摸板或触摸屏)、键盘、显示器(例如阴极射线管显示器、液晶显示器)。显示器或发光二极管显示器)、视频输入设备(例如,摄像机或通信耦合到视频档案的输入接口)等。
107.应当注意,视频编解码器(例如,执行过程200a、200b、300a或300b的编解码器)可以实现为装置400中的任何软件或硬件模块的任何组合。例如,一些或所有阶段的过程200a、200b、300a或300b可以被实现为装置400的一个或多个软件模块,例如可以加载到存储器404中的程序指令。再例如,过程200a、200b、300a或300b的部分或所有阶段可以被实现为装置400的一个或多个硬件模块,例如专用数据处理电路(例如,fpga、asic、npu等)。
108.vvc标准的关键要求之一是为视频会议应用程序提供容忍网络和设备多样性的能力,并能够迅速适应变化的网络环境,包括在网络条件恶化时迅速降低编码比特率,并能在网络条件改善时迅速提高视频质量。预期的视频质量可能从非常低到非常高。该标准还应支持自适应流媒体服务的快速表示切换,这些服务提供相同内容的多个表示,每个表示具有不同的属性(例如空间分辨率或采样位深)。在从一种表示转换到另一种表示时(例如从一种分辨率转换到另一种分辨率),该标准应能够在不损害快速无缝切换能力的情况下使用有效的预测结构。
109.自适应分辨率变化(arc)的目的是允许一个流在同一视频序列中的编码图片之间改变空间分辨率,如在可伸缩视频编解码器中是否需要新的idr帧,以及是否需要多层。相反,在切换点,图片的分辨率会发生变化,并且可以从具有相同分辨率(如果可用)的参考图片和具有不同分辨率的参考图片中进行预测。如果参考图片具有不同的分辨率,则对参考图片重新采样,如图5所示。例如,如图5所示,参考图片506的分辨率与当前图片502的分辨率相同,而参考图片504和508的分辨率与当前图片502的分辨率不同。在参考图片504和508被重新采样到当前图片502的分辨率之后,就可以对这些参考图片进行运动补偿预测。因此,自适应分辨率变化(arc)有时也被称为参考图片重采样(rpr),这两个术语在本技术中互换使用。
110.当参考帧的分辨率当前帧的分辨率不同时,生成运动补偿预测信号的一种方法是基于图片的重采样,其中参考图片首先被重采样到与当前图片相同的分辨率,并且可以应用现有的带有运动矢量的运动补偿过程。运动矢量可以缩放(如果在应用重采样之前以单位发送),也可以不缩放(如果在应用重采样之后以单位发送)。对于基于图片的重采样,尤其是对于参考图片的下采样(即,参考图片的分辨率大于当前图片的分辨率),在运动补偿插值之前的参考重采样步骤中可能会丢失信息,因为下采样通常通过低通滤波和抽取来实现)。
111.另一种方法是基于块的重采样,即,在块级别执行重采样。这是通过检查当前块使用的参考图片来完成的,如果其中一个或两个参考图片与当前图片具有不同的分辨率,则结合子像素运动补偿插值过程来执行重采样。
112.在基于块的重采样中,将重采样和运动补偿插值结合到一个滤波操作中,可以减少上述信息损失。以如下情况为例:当前块的运动矢量在一个维度(例如水平维度)上具有半像素精度,且参考图片的宽度是当前图片的2倍。在这种情况下,与将参考图片的宽度减少一半以匹配当前图片的宽度,然后进行半像素运动插值的图片级重采样相比,基于块的重采样方法可以直接取参考图片中的奇数位置作为半像素精度的参考块。在第15次jvet会议上,vvc采用了基于块的arc重采样方法,其中运动补偿(mc)插值和参考重采样在一步滤波器中组合并执行。在vvc草案6中,用于无参考重采样的mc插值的现有滤波器被重新用于带参考重采样的mc插值。相同的滤波器用于参考向上采样和参考向下采样。选择过滤器的细节如下所述。
113.对于亮度分量,如果选择半像素amvr模式,且插值位置为半像素,则使用6抽头滤波器[3,9,20,20,9,3]。如果运动补偿块大小为4
×
4,则使用如图6的表6所示的6抽头滤波器。否则,使用图7的表7所示的8抽头滤波器。
[0114]
对于色度分量,使用下图8的表8所示的4抽头滤波器。
[0115]
在vvc中,相同的滤波器用于无参考重采样的mc插值和带参考重采样的mc插值。虽然vvc运动补偿插值滤波器(mcif)是基于dct上采样设计的,但将其用作结合参考下采样和mc插值的一步滤波器可能并不合适。例如,对于相位0滤波(例如,缩放运动矢量为整数),vvc 8-tap mcif系数为[0,0,0,64,0,0,0,0],这意味着预测样本直接从参考样本中复制。虽然在没有参考下采样或参考上采样的情况下,mc插值可能不会出现问题,但在参考下采样的情况下,由于在抽取之前缺乏低通滤波器,这可能会导致混叠伪影。
[0116]
本技术提供了使用余弦窗函数差值滤波器进行参考下采样的mc插值的方法。
[0117]
窗函数差值滤波器是将一个频带与其他频带分开的带通滤波器。窗函数差值滤波器是一种低通滤波器,其频率响应允许截止频率以下的所有频率在振幅未1时通过,并在振幅为0时停止截止频率以上的所有频率,如图9所示。
[0118]
滤波器核,也称为滤波器的脉冲响应,是通过对理想低通滤波器的频率响应进行傅里叶逆变换获得的。低通滤波器的脉冲响应是基于以下公式(1)的插值函数(sinc函数)的一般形式。其中fc是截止频率,其值在[0,1]中,r是下采样率,即1.5:1下采样为1.5,2:1下采样为2。插值函数是基于以下公式(2)定义的。
[0119]
插值函数是无限的。为了使滤波器核具有有限长度,使用窗口函数将滤波器核截断为l点。为了获得平滑的锥形曲线,使用了基于以下公式(3)的余弦加窗函数。
[0120]
余弦窗函数差值滤波器的核是理想响应函数h(n)与余弦加窗函数w(n)的乘积,由下式(4)得到。
[0121]
窗函数差值核有两个参数可供选择,即截止频率fc和核长度l。通过调整l和fc的值,可以获得所需的滤波器响应。例如,对于可伸缩hevc测试模型(shm)中使用的下采样过滤器,fc=0.9,l=13。
[0122]
公式(4)中得到的滤波器系数是实数。应用滤波器相当于计算参考样本的加权平均值,权重为滤波器系数。为了在数字计算机或硬件中进行高效计算,将系数归一化,乘以一个标量,并四舍五入为整数,这样系数之和等于2^n,其中n是整数。过滤后的样本除以2^n(相当于右移n位)。例如,在vvc草案6中,插值滤波器系数之和为64。
[0123]
在一些实施例中,对于亮度和色度分量,可以在shm中使用下采样滤波器进行参考下采样的vvc运动补偿插值,并且可以使用现有的mcif进行参考上采样的运动补偿插值。当核长度l=13时,第一个系数很小,并四舍五入为零,滤波器长度可以减少到12,而不会影响滤波器性能。
[0124]
例如,图10的表10和图11的表11分别显示了2:1下采样和1.5:1下采样的滤波器系数。
[0125]
除了系数的值之外,shm滤波器的设计与现有mcif之间还有一些其他差异。
[0126]
作为第一个区别,shm滤波器需要在整数采样位置和分数采样位置进行滤波,而mcif只需要在分数采样位置进行滤波。下面图12的表12描述了用于参考下采样情况对vvc草案6亮度样本的插值滤波过程的修改示例。
[0127]
下面图13的表13中描述了用于参考下采样情况对vvc草案6色度样本的插值滤波过程的修改示例。
[0128]
作为第二个区别,对于shm滤波器,滤波器系数之和为128,而对于现有mcif,滤波器系数之和为64。在vvc草案6中,为了减少舍入误差造成的损失,中间预测信号保持在比输出信号更高的精度(以更高的位深表示)。中间信号的精度称为内部精度。在一些实施例中,为了保持内部精度与vvc草案6中的精度相同,与使用现有mcif相比,shm滤波器的输出需要右移额外的1位。下面图14的表14中显示了用于参考下采样情况对vvc草案6的亮度样本的插值滤波过程的修改示例。
[0129]
下面图15的表15中显示了用于参考下采样情况对vvc draft 6的色度样本的插值滤波过程的修改示例。
[0130]
根据一些实施例,将内部精度增加1位,并且可以使用加1位右移来将内部精度转换为输出精度。图16的表16中显示了用于参考下采样情况对vvc草案6的亮度样本的插值滤波过程的修改示例。
[0131]
下面图17的表17中显示了用于参考下采样情况对vvc草案6的色度样本的插值滤波过程的修改示例。
[0132]
作为第三个区别,shm过滤器有12个抽头。因此,要生成插值样本,需要11个相邻样本(左侧5个,右侧6个,或上方5个或下方6个)。与mcif相比,会提取更多的相邻样本。在vvc草案6中,色度mv精度为1/32。然而,shm滤波器只有16个相位。因此,色度mv可以四舍五入到
1/16,用作参考下采样。这可以通过将色度mv的最后5位右移1位来实现。图18的表18中显示了用于参考下采样情况对vvc草案6色度分数采样位置进行计算的修改示例。
[0133]
根据一些实施例,为了与vvc草案中现有的mcif设计保持一致,建议使用8抽头余弦窗函数差值滤波器。可通过在公式(4)中的余弦窗函数差值函数中设置l=9来导出滤波器系数。滤波器系数之和可以设置为64,以进一步对准现有mcif滤波器。在所公开的实施例中,用于互补相位的滤波器可以是对称的(例如,互补相位的滤波器系数是反向的)或非对称的。图19的表19和图20的表20分别显示了2:1和1.5:1比率的示例滤波器系数。
[0134]
根据一些实施例,为了适应色度分量的1/32采样精度,可以在参考下采样的色度运动补偿插值中使用32相位余弦窗函数差值滤波器组。图21的下表21和图22的表22分别给出了2:1和1.5:1比率的滤波器系数示例。
[0135]
根据一些实施例,对于4
×
4亮度块,可以使用6抽头余弦窗函数差值滤波器进行参考下采样的mc插值。图23的下表23和图24的表24分别给出了滤波器系数为2:1和1.5:1比率的示例。
[0136]
在vvc中,在不同的运动补偿情况下使用不同的插值滤波器。例如,在常规运动补偿中,使用基于8抽头dct的插值滤波器。在4
×
4子块的运动补偿中,使用了基于6抽头dct的插值滤波器。在mvd精度为1/2、mvd相位为1/2的运动补偿中,使用不同的6抽头滤波器。在色度运动补偿中,使用基于4抽头dct的插值滤波器。
[0137]
在一些实施例中,当参考图片具有比当前编码图片更高的分辨率时,基于dct的内插滤波器可以替换为具有相同滤波器长度的余弦窗函数差值滤波器。在这些实施例中,基于8抽头dct的内插滤波器可以替换为8抽头余弦窗函数差值滤波器,以进行常规运动补偿;基于6抽头dct的插值滤波器可以替换为6抽头余弦窗函数差值滤波器,以进行4
×
4子块运动补偿。基于4抽头dct的插值滤波器可以替换为4抽头余弦窗函数差值滤波器,以进行色度运动补偿。此外,当mvd精度为1/2且相位为1/2时,基于6抽头dct的插值滤波器可用于运动补偿。滤波器选择可能取决于参考图片分辨率和当前图片分辨率之间的比率。用于2:1和1.5:1下采样率的示例性8抽头、6抽头和4抽头余弦窗函数差值滤波器如图19-24的表19-24所示。如图25-30的表25-30中所示的过滤器在互补相位上是对称的。
[0138]
公式(4)中获得的滤波器系数是实数值。经过归一化、缩放之后,滤波器系数可以四舍五入为整数。滤波器系数之和,也称为滤波器增益,表示滤波器精度。在数字处理中,滤波器增益通常设置为2^n。由于舍入运算,滤波器系数之和可能不等于滤波器增益(2^n)。对滤波器系数进行额外调整,使得滤波器系数之和等于增益(2^n)。在一些实施例中,上述调整包括确定适当的舍入方向,所述舍入方向可以包括向上舍入或向下舍入。因此,可以将调整后的滤波器系数相加为滤波器增益,以最小化/最大化代价函数。在一些实施例中,代价函数可以是舍入后的滤波器系数与舍入前的真实滤波器系数之间的绝对差之和(sad)或平方误差之和(sse)。在一些实施例中,代价函数可以是舍入滤波器系数的频率响应和参考值的频率响应之间的sad或sse。参考值可以是四舍五入前的真实滤波器系数,或者是理想滤波器的频率响应,或者是比所设计的滤波器更长的滤波器的频率响应。例如,在设计8抽头滤波器时,参考可能是12抽头滤波器。基于上述舍入方法,另一组长度为8抽头、6抽头和4抽头的余弦窗函数差值滤波器如图31-36的表31-36所示。
[0139]
由于在自适应分辨率变化应用中,源图像下采样和重构图像上采样过程在标准中
可能没有规范定义,这意味着用户可以使用任何重采样过滤器。由于用户选择的过滤器可能与参考重采样过滤器不匹配,因此性能可能会因过滤器不匹配而降低。在一些公开的实施例中,参考重采样滤波器的系数在比特流中被标记。并且编码器/解码器可以使用用户定义的滤波器进行参考重采样。滤波器系数的信令如图37和38的表37-38所示。
[0140]
表37和38中所示例的语法结构可以以高级语法呈现,例如序列参数集(sps)、图片参数集(pps)、自适应参数集(aps)、切片报头等。
[0141]
用户定义的rpr滤波器的使用和上述示例性语法结构的存在可由高级语法中的标志控制,包括sps、pps、aps、切片报头等。
[0142]
与公开的实施例一致,当一个或多个标记的滤波器使用固定的滤波器长度和滤波器范数时,硬件实现可能更有效。因此,在一些实施例中,滤波器范数和/或滤波器抽头可以不被标记,而是隐含的(例如,隐含为标准中定义的默认值)。滤波器规格、滤波器抽头、滤波器精度或最大位深可能是编码器一致性要求的一部分。
[0143]
在一些实施例中,编码器可发送补充增强信息(sei)消息,以建议在解码图片后,接收设备应使用何种非标准上采样滤波器。此类sei消息是可选的。然而,通过sei消息,使用建议的上采样滤波器的解码器可以获得更好的视频质量。表31(图31)中的过滤器系数()语法结构可用于指定此类sei消息中建议的上采样滤波器。
[0144]
图39是与本技术实施例一致的用于处理视频内容的示例性方法3900的流程图。在一些实施例中,方法3900可以由编解码器执行(例如,使用图2a-2b中的编码过程200a或200b的编码器,或使用图3a-3b中的解码过程300a或300b的解码器)。例如,编解码器可以实现为用于编码或转码视频序列的设备(例如,设备400)的一个或多个软件或硬件组件。在一些实施例中,视频序列可以是未压缩视频序列(例如,视频序列202)或解码的压缩视频序列(例如,视频流304)。在一些实施例中,视频序列可以是监控视频序列,其可以由与设备的处理器(例如,处理器402)相关联的监控设备(例如,图4中的视频输入设备)捕获。所述视频序列可以包括多张图片。该设备可以在图片级别执行方法3900。例如,在方法3900中,该设备一次可以处理一张图片。例如,在方法3900中,该设备可以一次处理多个图片。方法3900可包括以下步骤。
[0145]
在步骤3902,针对具有不同分辨率的目标图片和参考图片,可以对所述参考图片应用带通滤波器,以使用参考下采样执行运动补偿插值,以生成参考块。
[0146]
所述带通滤波器可以是基于理想低通滤波器和窗函数生成的余弦窗函数差值滤波器。例如,余弦窗函数差值滤波器的核函数f(n)可以是理想低通滤波器h(n)和窗口函数w(n)的乘积,其可以基于公式(4)求得。
[0147]
因此,其中fc是余弦窗函数差值滤波器f(n)的截止频率,l是核长度,r是参考下采样的下采样率。
[0148]
所述余弦窗函数差值滤波器的滤波器系数可在应用前四舍五入。图40是与本技术实施例一致的用于对余弦窗函数差值滤波器的滤波器系数进行舍入的示例性方法4000的流程图。可以理解,方法4000可独立实施或作为方法3900的一部分实施。方法4000可包括以下步骤。
[0149]
在步骤4002,可以获得带通滤波器的真实滤波器系数。
[0150]
在步骤4004,可以分别确定真实滤波器系数的多个舍入方向。
[0151]
在步骤4006,通过分别根据多个舍入方向舍入真实滤波器系数,可生成舍入滤波器系数的多个组合。
[0152]
在步骤4008,在多个组合中,可以选择使代价函数最小或最大的舍入滤波器系数的组合。在一些实施例中,代价函数可以与舍入滤波器系数和参考值相关联。参考值可以是舍入前带通滤波器的真实滤波器系数、理想滤波器的频率响应或比带通滤波器长的滤波器的频率响应。例如,当参考值可以是四舍五入之前的带通滤波器的真实滤波器系数时,代价函数可以是四舍五入之前的舍入滤波器系数和真实滤波器系数之间的绝对差之和(sad)或平方误差之和(sse)。作为另一个例子,当参考值是理想滤波器的频率响应时,代价函数可以是舍入滤波器系数的频率响应和理想滤波器的频率响应之间的sad或sse。如上所述,参考值还可以是比带通滤波器更长的滤波器的频率响应。例如,如果带通滤波器是8抽头滤波器,则参考可以是12抽头滤波器,其长度比8抽头带通滤波器长。
[0153]
可以连同与滤波器系数相关联的语法结构一起,在序列参数集(sps)、图片参数集(pps)、自适应参数集(aps)和切片报头中的至少一个中,标记带通滤波器的舍入滤波器系数的选定组合。
[0154]
应了解,如表19-36(图19-36)所示,余弦窗函数差值滤波器是8抽头滤波器、6抽头滤波器或4抽头滤波器。在一些实施例中,基于参考图片的分辨率和目标图片的分辨率之间的比率,可以将带通滤波器确定为8抽头滤波器、6抽头滤波器和4抽头滤波器中的一种。
[0155]
在对参考图片应用带通滤波器时,可以在分数采样位置获得亮度样本或色度样本。可参考使用分数采样位置的查找表(例如,表19-36)来确定所获得的亮度样本或色度样本的滤波器系数。
[0156]
回到图39,在步骤3904,可以使用参考块处理目标图片的块。例如,可以使用参考块对目标图片的块进行编码或解码。
[0157]
在一些实施例中,还提供了一种包括指令的非暂时性计算机可读存储介质,并且这些指令可以由用于执行上述方法的设备(例如本技术公开的编码器和解码器)执行。非暂时性介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、任何具有孔洞图案的物理介质、ram、prom和eprom、flash-eprom或任何其他闪存、nvram、高速缓存、寄存器、任何其他存储芯片或盒式存储器,以及相同的网络版本。该设备可以包括一个或多个处理器(cpu)、输入/输出接口、网络接口和/或存储器。
[0158]
可以使用以下条款进一步描述上述实施例:1.一种用于执行运动补偿插值的计算机实现方法,包括:针对具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;和使用所述参考块处理所述目标图片的块。2.根据第1条所述的方法,其中,所述带通滤波器是基于理想低通滤波器和窗函数生成的余弦窗函数差值滤波器。3.根据第2条所述的方法,其中,所述余弦窗函数差值滤波器是基于核函数
其中其中,fc是余弦窗函数差值滤波器的截止频率,l是核长度,r是参考下采样的下采样率。4.根据第1条所述的方法,还包括:获取所述带通滤波器的真实滤波器系数;分别确定所述真实滤波器系数的多个舍入方向;通过根据所述多个舍入方向舍入所述真实滤波器系数,生成舍入滤波器系数的多个组合;和在所述多个组合中,选择使代价函数最小或最大的舍入滤波器系数的组合。5.根据第4条所述的方法,其中,所述代价函数与舍入滤波器系数和参考值相关联。6.根据第5条所述的方法,其中,所述参考值是舍入前的带通滤波器的真实滤波器系数、理想滤波器的频率响应、或比带通滤波器长度更长的滤波器的频率响应。7.根据第2条所述的方法,其中,所述余弦窗函数差值滤波器是8抽头滤波器、6抽头滤波器或4抽头滤波器。8.根据第1条所述的方法,其中,所述对所述参考图片应用带通滤波器,包括:在分数采样位置获取亮度样本或色度样本。9.根据第1条所述的方法,还包括:基于参考图片的分辨率和目标图片的分辨率之间的比率,将带通滤波器确定为8抽头滤波器、6抽头滤波器和4抽头滤波器中的一种。10.根据第4条所述的方法,还包括:在序列参数集(sps)、图片参数集(pps)、自适应参数集(aps)和切片报头中的至少一个中,标记带通滤波器的舍入滤波器系数的选定组合。11.一种用于执行运动补偿插值的系统,包括:存储一组指令的存储器;和至少一个配置为执行一组指令的处理器,以使所述系统执行:针对具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;和使用所述参考块处理所述目标图片的块。12.根据第11条所述的系统,其中,所述带通滤波器是基于理想低通滤波器和窗函数生成的余弦窗函数差值滤波器。13.根据第12条所述的系统,其中,所述余弦窗函数差值滤波器是基于核函数其中其中,fc是余弦窗函数差值滤波器的截止频率,l是核长度,r是参考下采样的下采样率。14.根据第11条所述的系统,其中,所述至少一个处理器被配置为执行一组指令,以使所述系统进一步执行:获取所述带通滤波器的真实滤波器系数;分别确定所述真实滤波器系数的多个舍入方向;
通过根据所述多个舍入方向舍入所述实滤波器系数,生成舍入滤波器系数的多个组合;和在所述多个组合中,选择使代价函数最小或最大的舍入滤波器系数的组合。15.根据第14条的系统,其中,所述代价函数与舍入滤波器系数和参考值相关联。16.根据第15条的系统,其中,所述参考值是舍入前带通滤波器的真实滤波器系数、理想滤波器的频率响应、或比带通滤波器长度更长的滤波器的频率响应。17.根据第12条所述的系统,其中,所述余弦窗函数差值滤波器是8抽头滤波器、6抽头滤波器或4抽头滤波器。18.根据第11条所述的系统,其中,所述对所述参考图片应用带通滤波器包括:在分数采样位置获取亮度样本或色度样本。19.根据第11条所述的系统,其中,至少一个处理器被配置为执行一组指令,以使所述系统进一步执行:基于参考图片的分辨率和目标图片的分辨率之间的比率,将带通滤波器确定为8抽头滤波器、6抽头滤波器和4抽头滤波器中的一种。20.一种存储一组指令的非暂时性计算机可读介质,该指令集可由计算机系统的至少一个处理器执行,以使计算机系统执行用于处理视频内容的方法,该方法包括:响应于具有不同分辨率的目标图片和参考图片,对所述参考图片应用带通滤波器,通过参考下采样执行运动补偿插值,以生成参考块;和使用所述参考块处理所述目标图片的块。
[0159]
需要说明的是,本文中的“第一”和“第二”等关系术语仅用于区分一个实体或操作与另一个实体或操作,并不要求或暗示这些实体或操作之间有任何实际关系或顺序。此外,“包含”、“具有”、“包含”和“包括”等词语以及其他类似形式具有相同的含义,并且是开放式的,因为这些词语中的任何一个之后的一个或多个项目都不是旨在详尽列出此类项目,或仅限于列出的项目。
[0160]
如本文所用,除非另有明确说明,否则术语“或”涵盖所有可能的组合,除非不可行。例如,如果声明一个组件可以包括a或b,那么除非另有明确说明或不可行,否则该组件可以包括a,或b,或a和b。作为第二个示例,如果声明一个组件可以包括a、b或c,则除非另有明确说明或不可行,否则该组件可以包括a、或b、或c、或a和b、或a和c、或b和c、或a和b和c。
[0161]
可以理解,上述实施例可以通过硬件或软件(程序代码)或硬件和软件的组合来实现。如果通过软件实现,则可以存储在上述计算机可读介质中。在由处理器执行时,该软件可以执行所公开的方法。本技术中描述的计算单元和其他功能单元可以通过硬件实现,也可以通过软件实现,也可以通过硬件和软件的结合来实现。本领域普通技术人员也可以理解,上述多个模块/单元可以组合为一个模块/单元,并且上述每个模块/单元还可以进一步划分为多个子模块/子单元。
[0162]
在前述说明书中,已经参照许多具体细节描述了实施例,这些具体细节可以随不同的实施方式而变化。可以对所描述的实施例进行某些调整和修改。对于本领域技术人员来说,考虑了本文公开的本技术的规范和实践的其他实施例是显而易见的。上述说明书和实施例仅被视为示例,本技术的真实范围和精神由权利要求指示。图中所示的步骤顺序也
意在仅用于说明目的,并不意在限制于任何特定的步骤顺序。因此,本领域的技术人员可以理解,在实现相同方法的同时,可以以不同的顺序执行这些步骤。
[0163]
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行诸多变化和修改。因此,虽然使用了特定的术语,但它们仅用于一般和描述性意义,而非出于限制目的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1