一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频信号的矩阵加权帧内预测的制作方法

2022-03-05 10:57:58 来源:中国专利 TAG:

视频信号的矩阵加权帧内预测
相关申请的交叉引用本公开要求于2019年8月30日提交的美国临时申请第62/894,489号的优先权,该申请的全部内容通过引用并入本文。
技术领域
2.本公开一般涉及视频处理,更具体地,涉及用于执行视频信号的简化矩阵加权帧内预测的方法和系统。


背景技术:

3.视频是一组捕捉视觉信息的静态图像(或“帧”)。为了减少存储内存和传输带宽,可以在存储或传输前压缩视频并在显示前解压缩。压缩过程通常称为编码,解压缩过程通常称为解码。有多种使用标准化视频编解码技术的视频编解码格式,最常见的是基于预测、变换、量化、熵编码和环路滤波。视频编解码标准,例如高效视频编解码(hevc/h.265)标准、通用视频编解码(vvc/h.266)标准avs标准,规定了具体的视频编解码格式,由标准化组织制定。随着越来越多的视频标准采用先进的视频编解码技术,新的视频编解码标准的编解码效率也越来越高。


技术实现要素:

4.本发明实施例提供了一种简化矩阵加权帧内预测的方法。该方法可以包括:确定目标块的分类;以及基于所述分类生成矩阵加权帧内预测(mip)信号,其中确定所述目标块的分类包括:响应于所述目标块的大小为4
×
4,确定所述目标块属于第一类;或者响应于所述目标块的大小为8
×
8、4
×
n或n
×
4,n为8到64之间的整数,确定所述目标块属于第二类。
5.本公开的实施例还提供了一种用于执行简化矩阵加权帧内预测的系统。该系统可以包括:用于存储指令集的存储器;以及至少一个处理器,所述至少一个处理器被配置为执行该指令集以使所述系统执行:确定目标块的分类;以及基于所述分类生成矩阵加权帧内预测(mip)信号,其中确定所述目标块的分类包括:响应于目标块的大小为4
×
4,确定所述目标块属于第一类;或者响应于所述目标块的大小为8
×
8、4
×
n或n
×
4,n为8到64之间的整数,确定所述目标块属于第二类。
6.本公开的实施例还提供一种非暂时性计算机可读介质,其存储可由计算机系统的至少一个处理器执行以使计算机系统执行用于处理视频内容的方法的指令集。该方法可以包括:确定目标块的分类;以及基于所述分类生成矩阵加权帧内预测(mip)信号,其中确定目标块的分类包括:响应于所述目标块的大小为4
×
4,确定所述目标块属于第一类;或者响应于所述目标块的大小为8
×
8、4
×
n或n
×
4,n为8到64之间的整数,确定所述目标块属于第二类。
附图说明
7.本公开的实施例和各个方面在以下详细描述和附图中示出。图中所示的各种特征未按比例绘制。
8.图1示出了与本公开的实施例一致的示例性视频序列的结构。
9.图2a示出了与本公开的实施例一致的由混合视频编解码系统执行的示例性编码过程的示意图。
10.图2b示出了与本公开的实施例一致的由混合视频编解码系统执行的另一示例性编码过程的示意图。
11.图3a示出了与本公开的实施例一致的由混合视频编解码系统执行的示例性解码过程的示意图。
12.图3b示出了与本公开的实施例一致的由混合视频编解码系统执行的另一示例性解码过程的示意图。
13.图4是与本公开实施例一致的用于对视频进行编码或解码的示例性装置的框图。
14.图5示出了与本公开的实施例一致的矩阵加权帧内预测的示例性示意图。
15.图6图示了与本公开的实施例一致的包括在矩阵加权帧内预测中使用的三个示例性类别的表格。
16.图7图示了与本公开的实施例一致的用于确定偏移“so”的示例性查找表。
17.图8图示了与本公开的实施例一致的用于确定偏移“sw”的示例性查找表。
18.图9示出了与本公开的实施例一致的示例性矩阵,其示出了示例性排除操作。
19.图10图示了与本公开的实施例一致的示出另一个示例性排除操作的另一个示例性矩阵。
20.图11是与本公开实施例一致的用于处理视频内容的示例性方法的流程图。
具体实施方式
21.现在将详细参考示例性实施例,其示例在附图中示出。以下描述均参照附图,除非另有说明,否则不同附图中的相同数字表示相同或相似的元件。在示例性实施例的以下描述中阐述的实施方式不代表与本发明一致的所有实施方式。相反,它们仅仅是与所附权利要求中记载的与本发明相关的方面一致的装置和方法的示例。除非另有特别说明,否则术语“或”涵盖所有可能的组合,除非不可行。例如,如果声明一个组件可以包括a或b,那么,除非另外明确说明或不可行,否则该组件可以包括a、或b、或a和b。作为第二个例子,如果声明一个组件可能包括a、b或c,然后,除非另有明确说明或不可行,否则组件可能包括a、或b、或c、或a和b、或a和c、或b和c、或a和b和c。
22.视频编码系统通常用于压缩数字视频信号,例如以减少与此类信号相关联的存储空间消耗或传输带宽消耗。随着高清(hd)视频(例如分辨率为1920
×
1080像素)在视频压缩的各种应用中越来越受欢迎,例如在线视频流、视频会议或视频监控,开发视频视频数据压缩效率的编码工具的需求不断增加。
23.例如,视频监控应用在很多场景(例如,安全、交通、环境监控等)中的应用越来越广泛,并且监控设备的数量和分辨率不断快速增长。很多视频监控应用场景更倾向于向用户提供高清视频来捕捉更多的信息,高清视频每帧有更多的像素来捕捉这些信息。然而,高
清视频位流可能具有高比特率,需要高带宽传输和大存储空间。例如,平均分辨率为1920
×
1080的监控视频流可能需要高达4mbps的带宽才能进行实时传输。另外,视频监控一般是7
×
24连续监控,如果要存储视频数据,这对存储系统是一个很大的挑战。因此,高清视频的高带宽、大存储需求成为其在视频监控中大规模部署的主要制约因素。
24.视频是按时间序列排列以存储视觉信息的一组静态图像(或“帧”)。视频采集设备(例如相机)可用于按时间序列采集和存储这些图像,视频播放设备(例如电视、计算机、智能手机、平板电脑、视频播放器或任何具有显示功能的终端用户终端都可以用于按时间顺序显示此类图像。此外,在一些应用中,视频采集设备可以将采集到的视频实时传输到视频播放设备(例如带显示器的电脑),用于监控、会议、直播等。
25.为了减少此类应用所需的存储空间和传输带宽,视频可以在存储和传输之前进行压缩,并在显示之前进行解压缩。压缩和解压缩可以通过软件并由处理器(例如,通用计算机的处理器)或专用硬件执行的来实现。压缩模块一般称为“编码器”,解压模块一般称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以实现为多种合适的硬件、软件中或其组合的任何一种。例如,编码器和解码器的硬件实现可以包括电路,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、或其任何组合。编码器和解码器的软件实现可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现算法或过程。视频压缩和解压缩可以通过各种算法或标准来实现,例如mpeg-1、mpeg-2、mpeg-4、h.26x系列等。在某些应用中,编解码器可以从第一编码标准解压缩视频,并使用第二个编码标准重新压缩解压缩的视频,在这种情况下,编解码器可以称为“转码器”26.视频编码过程可以识别并保留可用于重建图像的有用信息,而忽略重建的不重要信息。如果被忽视的、不重要的信息不能完全重建,这样的编码过程可以被称为“有损”。否则,它可以被称为“无损”。大多数编码过程都是有损的,这是减少所需存储空间和传输带宽的一种权衡。
27.正被编码的图像(称为“当前图像”)的有用信息包括相对于参考图像(例如,先前编码和重建的图像)的变化。这种变化可以包括像素的位置变化、亮度变化或颜色变化,其中位置变化是最受关注的。代表一个对象的一组像素的位置变化可以反映该对象在参考图像和当前图像之间的运动。
28.根据参考图像是当前图像本身还是其他图像,当前图像的编码可以分为“帧间预测”和“帧内预测”。帧内预测可以通过从已经编码的像素插值来计算预测值来利用空间冗余(例如,一帧内像素之间的相关性)。帧间预测可以利用相邻帧(例如,参考帧和目标帧)之间的时间差异(例如,运动向量),从而启用目标帧的编解码器。本公开涉及用于帧内预测的技术。
29.本公开提供用于执行视频信号的简化矩阵加权帧内预测的方法、装置和系统。通过去除mip预测过程中矩阵的额外遗漏操作,可以统一不同大小块的预测过程,也可以简化计算过程。
30.图1图示了与本公开的实施例一致的示例视频序列100的结构。视频序列100可以是实况视频或已被采集和存档的视频。视频100可以是真实视频、计算机生成视频(例如,计算机游戏视频)或其组合(例如,具有增强现实效果的真实视频)。视频序列100可以从视频
采集设备(例如,照相机)、包含先前采集的视频的视频档案(例如,存储在存储设备中的视频文件)或从视频内容提供商接收视频的视频提供接口(例如,视频广播收发器)。
31.如图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所示的示例。
32.通常,由于此类任务的计算复杂性,视频编解码器不会一次对整个图像进行编码或解码。相反,他们可以将图像分成基本段,并逐段对图像进行编码或解码。这种基本段在本公开中被称为基本处理单元(“bpu”)。例如,图1中的结构110。图1示出了视频序列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,或者任意形状和大小的像素。可以基于编码效率和要保持在基本处理单元中的细节水平的平衡来为图像选择基本处理单元的大小和形状。
33.基本处理单元可以是逻辑单元,其可以包括存储在计算机存储器中(例如,在视频帧缓冲区中)的一组不同类型的视频数据。例如,彩色图像的基本处理单元可以包括表示非彩色亮度信息的亮度分量(y)、表示颜色信息的一个或多个色度分量(例如,cb和cr)以及相关联的语法元素,其中亮度和色度分量可以具有与基本处理单元相同的大小。在一些视频编码标准(例如,h.265/hevc或h.266/vvc)中,亮度和色度分量可以称为“编码树块”(“ctb”)。对基本处理单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。
34.视频编码具有多个操作阶段,其示例将在图2a-2b和3a-3b中详述。对于每一阶段,基本处理单元的大小仍然可能太大而无法处理,因此可以进一步划分成段,在本公开中称为“基本处理子单元”。在一些实施例中,基本处理子单元在一些视频编码标准(例如,mpeg系列、h.261、h.263或h.264/avc)中可以被称为“块”,或者在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中被称为“编码单元”(“cu”)。基本处理子单元可以具有与基本处理单元相同或更小的尺寸。与基本处理单元类似,基本处理子单元也是逻辑单元,其可以包括存储在计算机存储器(例如,在视频帧缓冲区中)中的一组不同类型的视频数据(例如与语法元素相关联的y,cb,cr)。对基本处理子单元执行的任何操作都可以对其亮度和色度分量中的每一个重复执行。应当注意,这种划分可以根据处理需要进行到更深层次。还需要注意的是,不同的阶段可以使用不同的方案来对基本处理单元进行划分。
35.例如,在模式决策阶段(其示例将在图2b中详述),编码器可以决定对基本处理单元使用什么预测模式(例如,图像内预测或图像间预测),基本处理单元可能太大而无法做出该决定。编码器可以将基本处理单元拆分为多个基本处理子单元(例如,h.265/hevc或
h.266/vvc中的cu),并为每个单独的基本处理子单元决定预测类型。
36.作为另一示例,在预测阶段(其示例将在图2a中详述),编码器可以在基本处理子单元(例如,cu)的级别执行预测操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元拆分为更小的段(例如,在h.265/hevc或h.266/vvc中称为“预测块”或“pb”),可以在这些级别上执行预测操作。
37.作为另一示例,在变换阶段(其示例将在图2a中详述),编码器可执行用于残差基本处理子单元(例如,cu)的变换操作。但是,在某些情况下,基本处理子单元仍然可能太大而无法处理。编码器可以进一步将基本处理子单元拆分为更小的段(例如,在h.265/hevc或h.266/vvc中称为“变换块”或“tb”),可以在这些段上执行变换操作。需要说明的是,相同的基本处理子单元在预测阶段和变换阶段的划分方案可以不同。例如,在h.265/hevc或h.266/vvc中,同一cu的预测块和变换块可以具有不同的大小和数量。
38.在图的结构110中,基本处理单元112进一步分为3
×
3基本处理子单元,其边界用虚线表示。同一图像的不同基本处理单元可以可以以不同的方案将分成不同的基本处理子单元。
39.在一些实施方式中,为了为视频编码和解码提供并行处理和容错能力,可以将图像划分为多个区域进行处理,使得对于图像的一个区域,编码或解码过程可以不必取决于来自图像任何其他区域的信息。换句话说,图像的每个区域都可以独立处理。通过这样做,编解码器可以并行处理图像的不同区域,从而提高编码效率。并且,当一个区域的数据在处理过程中损坏或网络传输丢失时,编解码器可以正确编码或解码同一图像的其他区域,而不依赖于损坏或丢失的数据,从而提供了容错能力。在一些视频编码标准中,一张图像可以被划分为不同类型的区域。例如,h.265/hevc和h.266/vvc提供两种类型的区域:“slice(条带)”和“tile(块片)”。还应注意,视频序列100的不同图像可具有用于将图像划分为多个区域的不同分区方案。
40.例如,在图1中,结构110被分成三个区域114、116和118,其边界在结构110内部被示为实线。区域114包括四个基本处理单元。区域116和118中的每一个包括六个基本处理单元。需要说明的是,图1中的结构110的基本处理单元、基本处理子单元和区域均仅仅是示例,本公开不限于其中的实施例。
41.图2a图示了与本公开的实施例一致的示例编码过程200a的示意图。编码器可根据过程200a将视频序列202编码成视频位流228。类似于图1中的视频序列100,视频序列202可以包括按时间顺序排列的一组图像(称为“原始图像”)。类似于图1中的结构110,视频序列202的每个原始图像可由编码器划分为基本处理单元、基本处理子单元或区域进行处理。在一些实施例中,编码器可以针对视频序列202的每个原始图像在基本处理单元级别上执行过程200a。例如,编码器可以以迭代方式执行过程200a,其中在过程200a的一次迭代中,编码器可以对基本处理单元进行编码。在一些实施例中,编码器可以针对视频序列202的每个原始图像的区域(例如,区域114-118)并行地执行过程200a。
42.在图参考图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可以被称为“重建路径”。重建路径可用于确保编码器和解码器使用相同的参考数据进行预测。
43.编码器可以迭代地执行过程200a以对原始图像的每个原始bpu(在前向路径中)进行编码并且生成预测参考224以用于对原始图像的下一个原始bpu(在重建路径中)进行编码。在对原始图像的所有原始bpu进行编码后,编码器可以继续对视频序列202中的下一个图像进行编码。
44.参考过程200a,编码器可以接收由视频采集设备(例如,照相机)生成的视频序列202。这里使用的术语“接收”可以指接收、输入、获取、检索、获得、读取、访问或以任何方式输入数据的任何动作。
45.在预测阶段204,在当前迭代中,编码器可以接收原始bpu和预测参考224,并且执行预测操作以生成预测数据206和预测bpu 208。可以从过程200a的先前迭代的重建路径生成预测参考224。预测阶段204的目的是通过提取预测数据206来减少信息冗余,预测数据206可用于从预测数据206和预测参考224中将原始bpu重建为预测bpu 208。
46.理想地,预测bpu 208可以与原始bpu相同。然而,由于非理想的预测和重建操作,预测bpu 208通常与原始bpu略有不同。为了记录这种差异,在生成预测的bpu 208之后,编码器可以从原始bpu中减去它以生成残差bpu 210。例如,编码器可以从对应的原始bpu对应像素值减去预测bpu 208的像素值(例如,灰度值或rgb值)。残差210的每一个像素可以具有残差值作为原始bpu和预测bpu 208的对应像素之间的这种相减的结果。与原始bpu相比,预测数据206和残差bpu 210可以具有更少的比特,但是它们可用于重建原始bpu,而不会显着降低质量。因此,原始bpu被压缩。
47.为了进一步压缩残差bpu 210,在变换阶段212,编码器可以通过将残差bpu 210分解成一组二维“基本模式”来减少它的空间冗余,每个基本模式与一个“变换系数”相关联。”基本模式可以具有相同的大小(例如,残差bpu 210的大小)。每个基本模式可以代表残差bpu 210的变化频率(例如,亮度变化的频率)分量。基本图案不可以从任何其他基本模板的任何组合(例如,线性组合)复制。换言之,分解可以将残差bpu 210的变化分解到频域中。这种分解类似于函数的离散傅里叶变换,其中基本模式类似于离散傅里叶变换的基本函数(例如三角函数),并且变换系数类似于与基本函数相关联的系数。
48.不同的变换算法可以使用不同的基本模式。可以在变换阶段212使用各种变换算法,例如离散余弦变换、离散正弦变换等。变换阶段212处的变换是可逆的。即,编码器可以通过变换的逆运算(称为“逆变换”)来恢复残差bpu 210。例如,为了恢复残差bpu 210的像素,逆变换可以是将基本模式的对应像素的值乘以各自相关联的系数并将乘积相加以产生加权和。对于视频编码标准,编码器和解码器都可以使用相同的变换算法(因此具有相同的基本模式)。因此,编码器可以仅记录变换系数,解码器可以根据这些系数重建残差bpu 210,而无需从编码器接收基本模式。与残差bpu 210相比,变换系数可以具有更少的比特,但是它们可以用于重建残差bpu 210而不会显着降低质量。因此,残差bpu 210被进一步压
缩。
49.编码器可以在量化阶段214进一步压缩变换系数。在变换过程中,不同的基本模式可以表示不同的变化频率(例如,亮度变化频率)。由于人眼通常更擅长识别低频变化,因此编码器可以忽略高频变化的信息,而不会导致解码质量显着下降。例如,在量化阶段214,编码器可以通过将每个变换系数除以整数值(称为“量化参数”)并将商四舍五入为其最接近的整数来生成量化变换系数216。经过这样的操作,高频基本模式的一些变换系数可以被转换为零,而低频基础模式的变换系数可以被转换为更小的整数。编码器可以忽略零值量化变换系数216,通过该零值量化变换系数进一步压缩变换系数。量化过程也是可逆的,其中量化的变换系数216可以在量化的逆操作(称为“逆量化”)中重建为变换系数。
50.因为编码器在舍入操作中忽略这种除法的余数,所以量化级214是有损的。通常,量化级214在过程200a中贡献最多的信息损失。信息损失越大,量化变换系数216需要的位数越少。为了得到不同级别的信息损失,编码器可以使用量化参数或量化过程的任何其他参数的不同值。
51.在二进制编码阶段226,编码器可以使用二进制编码技术对预测数据206和量化变换系数216进行编码,这些二进制编码技术例如熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码,或任何其他无损或有损压缩算法。在一些实施例中,除了预测数据206和量化变换系数216之外,编码器可以在二进制编码阶段226对其他信息编码,例如,在预测阶段204使用的预测模式、预测操作的参数、变换类型在变换阶段212,量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。编码器可以使用二进制编码阶段226的输出数据来生成视频位流228。在一些实施例中,视频位流228可以被进一步打包以用于网络传输。
52.参考过程200a的重建路径,在逆量化阶段218,编码器可以对量化的变换系数216执行逆量化以生成重建的变换系数。在逆变换阶段220,编码器可以基于重建变换系数生成重建残差bpu 222。编码器可以将重建残差bpu 222添加到预测bpu 208以生成将在过程200a的下一次迭代中使用的预测参考224。
53.应当注意,过程200a的其他变量可以用于编码视频序列202。在一些实施例中,过程200a的阶段可以由编码器以不同的顺序执行。在一些实施例中,过程200a的一个或多个阶段可以组合成单个阶段。在一些实施例中,过程200a的单个阶段可以分成多个阶段。例如,变换阶段212和量化阶段214可以组合成单个阶段。在一些实施例中,过程200a可以包括附加阶段。在一些实施例中,过程200a可以省略图2a中的一个或多个阶段。
54.图2b示出了与本公开的实施例一致的另一示例编码过程200b的示意图。过程200b可以修改自过程200a。例如,过程200b可由符合混合视频编码标准(例如,h.26x系列)的编码器使用。与过程200a相比,过程200b的前向路径额外包括模式决策阶段230并将预测阶段204分为空间预测阶段2042和时间预测阶段2044。过程200b的重建路径额外包括环路滤波器阶段232和缓冲区234。
55.通常,预测技术可以分为两种类型:空间预测和时间预测。空间预测(例如,图像内预测或“帧内预测”)可以使用来自同一图像中一个或多个已编码的相邻bpu的像素来预测当前bpu。也就是说,空间预测中的预测参考224可以包括相邻的bpu。空间预测可以减少图像固有的空间冗余。时间预测(例如,图像间预测或“帧间预测”)可以使用来自一个或多个
已编码图像的区域来预测当前bpu。即,时间预测中的预测参考224可以包括编码图像。时间预测可以减少图像固有的时间冗余。
56.参考过程200b,在前向路径中,编码器在空间预测阶段2042和时间预测阶段2044执行预测操作。例如,在空间预测阶段2042,编码器可以执行帧内预测。对于正被编码的图像的原始bpu,预测参考224可以包括在同一图像中已经被编码(在前向路径中)和重建(在重建路径中)的一个或多个相邻bpu。编码器可以通过对相邻bpu插值来生成预测的bpu 208。插值技术可以包括例如线性外推或内插、多项式外推或内插等。在一些实施例中,编码器可以在像素级执行插值,例如通过对预测bpu 208的每个像素的对应像素的值进行插值操作。用于插值的相邻bpu可以从各个方向相对于原始bpu定位,例如在垂直方向(例如,在原始bpu的顶部)、水平方向(例如,在原始bpu的左侧)、对角线方向(例如,在原始bpu的左下、右下、上),或使用的视频编码标准中定义的任何方向。对于帧内预测,预测数据206可以包括例如所使用的相邻bpu的位置(例如坐标)、所使用的相邻bpu的大小、插值的参数、所使用的相邻bpu相对于原始的方向bpu等。
57.作为另一示例,在时间预测阶段2044,编码器可以执行帧间预测。对于当前图像的原始bpu,预测参考224可以包括已经编码(在前向路径中)和重建(在重建路径中)的一个或多个图像(称为“参考图像”)。在一些实施例中,参考图像可以由bpu编码和重建bpu。例如,编码器可以将重建残差bpu 222添加到预测bpu 208以生成重建bpu。当生成同一图像的所有重建bpu时,编码器可以生成重建图像作为参考图像。编码器可以执行“运动估计”的操作,以在参考图像的范围(称为“搜索窗口”)中搜索匹配区域。搜索窗口在参考图像中的位置可以根据原始bpu在当前图像中的位置来确定。例如,搜索窗口可以以参考图像中与当前图像中的原始bpu具有相同坐标的位置为中心,并且可以向外延伸预定距离。当编码器在搜索窗口中识别出(例如,通过使用像素递归算法、块匹配算法等)与原始bpu相似的区域时,编码器可以将这样的区域确定为匹配区域。匹配区域可以具有与原始bpu不同的尺寸(例如,小于、等于、大于或处于不同的形状)。因为参考图像和当前图像在时间线上是时间分离的(例如,如图1所示),可以认为匹配区域随着时间的推移“移动”到原始bpu的位置。编码器可以将这种运动的方向和距离记录为“运动向量”。当使用多个参考图像时(例如,如图1中的图像106),编码器可以搜索匹配区域并为每个参考图像确定其相关联的运动向量。在一些实施例中,编码器可以为各个匹配参考图像的匹配区域的像素值分配权重。
58.运动估计可用于识别各种类型的运动,例如平移、旋转、缩放等。对于帧间预测,预测数据206可以包括例如匹配区域的位置(例如坐标)、与匹配区域相关联的运动向量、参考图像的数量、与参考图像相关联的权重等。
59.为了生成预测bpu 208,编码器可以执行“运动补偿”的操作。运动补偿可用于基于预测数据206(例如,运动向量)和预测参考224重建预测bpu 208。例如,编码器可根据运动向量移动参考图像的匹配区域,其中编码器可以预测当前图像的原始bpu。当使用多个参考图像时(例如,如图1中的图像106),编码器可以根据各个运动向量和匹配区域的平均像素值移动参考图像的匹配区域。在一些实施例中,如果编码器已将权重分配给各个匹配参考图像的匹配区域的像素值,则编码器可以将移动的匹配区域的像素值的加权和相加。
60.在一些实施例中,帧间预测可以是单向的或双向的。单向帧间预测可以在与当前图像相同的时间方向上使用一个或多个参考图像。例如,图1中的图像104是单向帧间预测
图像,其中参考图像(即,图像102)在图像104之前。双向帧间预测可以在相对于当前图像的两个时间方向使用一个或多个参考图像。例如,图1中图像106是双向帧间预测图像,其中参考图像(即图像104和108)相对于图像104在两个时间方向上。
61.仍然参考过程200b的前向路径,在空间预测2042和时间预测阶段2044之后,在模式决策阶段230,编码器可以选择预测模式(例如,帧内预测或帧间预测之一)用于过程200b的当前迭代。例如,编码器可以执行率失真优化技术,其中编码器可以根据候选预测模式的比特率和重建参考图像在候选预测模式下的失真来选择预测模式以最小化成本函数的值。根据选择的预测模式,编码器可以生成对应的预测bpu 208和预测数据206。
62.在过程200b的重建路径中,如果在前向路径中选择了帧内预测模式,则在生成预测参考224(例如,在当前图像中已经编码和重建的当前bpu)之后,编码器可以直接将预测参考224提供给空间预测阶段2042以供稍后使用(例如,用于当前图像的下一个bpu的插值)。如果在前向路径中选择了帧间预测模式,则在生成预测参考224(例如,其中所有bpu已被编码和重建的当前图像)之后,编码器可以将预测参考224提供给环路滤波阶段232,在该阶段编码器可以将环路滤波器应用于预测参考224以减少或消除由帧间预测引入的失真(例如,块状伪影)。编码器可以在环路滤波阶段232处应用各种环路滤波技术,例如去块、样本自适应偏移、自适应环路滤波等。环路滤波参考图像可以存储在缓冲区234(或“解码图像缓冲区”)中以供以后使用(例如,用作视频序列202的未来图像的帧间预测参考图像)。编码器可以在缓冲区234中存储一个或多个参考图像以在时间预测阶段2044使用。在一些实施例中,编码器可以在二进制编码阶段226编码环路滤波的参数(例如,环路滤波器强度),连同量化变换系数216、预测数据206和其他信息。
63.图3a图示了与本公开的实施例一致的示例解码过程300a的示意图。流程300a可以是对应于图2a中的压缩流程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。
64.参考图3a,解码器可以将与编码图像的基本处理单元(称为“编码bpu”)相关联的视频位流228的一部分提供至二进制解码阶段302。在二进制解码阶段302,解码器可以解码该部分转换成预测数据206和量化变换系数216。解码器可以将量化变换系数216提供至逆量化阶段218和逆变换阶段220以生成重建的残差bpu 222。解码器可以将预测数据206提供至预测阶段204以生成预测bpu208。解码器可以将重建的残差bpu 222添加到预测的bpu 208以生成预测的参考224。在一些实施例中,预测参考224可以存储在缓冲区中(例如,计算机存储器中的解码图像缓冲区)。解码器可以将预测参考224提供到预测阶段204以在过程300a的下一次迭代中执行预测操作。
65.解码器可以迭代地执行过程300a以对编码图像的每个编码bpu进行解码并且生成预测参考224以用于对编码图像的下一个编码bpu进行编码。在对编码图像的所有编码bpu
进行解码后,解码器可以将图像输出到视频流304以供显示,并继续解码视频位流228中的下一个编码图像。
66.在二进制解码阶段302,解码器可以执行编码器使用的二进制编码技术(例如,熵编码、可变长度编码、算术编码、霍夫曼编码、上下文自适应二进制算术编码或任何其他无损压缩算法)。在一些实施例中,除了预测数据206和量化变换系数216之外,解码器可以在二进制解码阶段302解码其他信息,例如预测模式、预测操作的参数、变换类型、量化处理参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数)等。在一些实施例中,如果视频位流228以分组的形式通过网络传输,则解码器可以在将视频位流228提供至二进制解码级302之前对其进行解包。
67.图3b图示了与本公开的实施例一致的另一示例解码过程300b的示意图。过程300b可以修改自过程300a。例如,过程300b可由符合混合视频编码标准(例如,h.26x系列)的解码器使用。与过程300a相比,过程300b额外地将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并且额外地包括环路滤波器阶段232和缓冲区234。
68.在过程300b中,对于被解码的编码图像(称为“当前图像”)的编码基本处理单元(称为“当前bpu”),从二进制解码阶段302由解码器解码的预测数据206可以包括各种类型的数据,这取决于编码器使用什么预测模式对当前bpu进行编码。例如,如果编码器使用帧内预测来编码当前bpu,则预测数据206可以包括指示帧内预测的预测模式指示符(例如,标志值)、帧内预测操作的参数等。帧内预测操作的参数可以包括例如用作参考的一个或多个相邻bpu的位置(例如,坐标)、相邻bpu的大小、插值参数、相邻bpu相对于原始bpu的方向等。又例如,如果编码器使用帧间预测来对当前bpu进行编码,则预测数据206可以包括指示帧间预测的预测模式指示符(例如,标志值)、帧间预测操作的参数等的。帧间预测操作的参数可以包括例如与当前bpu相关联的参考图像的数量、分别与参考图像相关联的权重、分别参考图像中一个或多个匹配区域的位置(例如,坐标)、分别与匹配区域相关联的一个或多个运动向量等。
69.基于预测模式指示符,解码器可以决定是在空间预测阶段2042执行空间预测(例如,帧内预测)还是在时间预测阶段2044执行时间预测(例如,帧间预测)。执行这种空间预测或时间预测的细节在图2b中描述,以下不再赘述。在执行这样的空间预测或时间预测之后,解码器可以生成预测的bpu 208。解码器可以将预测bpu 208和重建残差bpu 222相加以生成预测参考224,如图3a中所述。
70.在过程300b中,解码器可以将预测参考224提供至空间预测阶段2042或时间预测阶段2044,用于在过程300b的下一次迭代中执行预测操作。例如,如果在空间预测阶段2042使用帧内预测对当前bpu进行解码,则在生成预测参考224(例如,解码的当前bpu)之后,解码器可以直接将预测参考224提供至空间预测阶段2042以供以后使用(例如,用于当前图像的下一个bpu的插值)。如果在时间预测阶段2044使用帧间预测对当前bpu进行解码,则在生成预测参考224(例如,其中所有bpu已被解码的参考图像)之后,编码器可以将预测参考224馈送到环路滤波阶段232以减少或消除失真(例如,块状伪影)。解码器可以以图2b中描述的方式将环路滤波器应用于预测参考224。环路滤波的参考图像可以存储在缓冲区234(例如,计算机存储器中的解码图像缓冲区)中以供以后使用(例如,用作视频位流228的未来编码图像的帧间预测参考图像)。解码器可以将一个或多个参考图像存储在缓冲区234中以在时
间预测阶段2044使用。在一些实施例中,当预测数据206的预测模式指示符指示使用帧间预测来编码当前bpu时,预测数据可以进一步包括环路滤波的参数(例如,环路滤波强度)。
71.图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。
72.装置400还可以包括被配置为存储数据(例如,一组指令、计算机代码、中间数据等)的存储器404。例如,如图4所示,存储的数据可以包括程序指令(例如,用于实现过程200a、200b、300a或300b中的阶段的程序指令)和用于处理的数据(例如,视频序列202、视频位流228或视频流304)。处理器402可以访问用于处理的程序指令和数据(例如,通过总线410),并且执行程序指令以对用于处理的数据执行操作或管理。存储器404可以包括高速随机存取存储设备或非易失性存储设备。在一些实施例中,存储器404可以包括任意数量的随机存取存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘驱动器、固态驱动器、闪存驱动器、安全数字(sd)卡、记忆棒、紧凑型闪存(cf)卡等。存储器404也可以是被分组为单个逻辑组件的一组存储器(图4中未示出)。
73.总线410可以是在装置400内部的组件之间传输数据的通信设备,例如内部总线(例如,cpu-存储器总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口)等。
74.为了便于说明而不引起歧义,在本公开中,处理器402和其他数据处理电路统称为“数据处理电路”。数据处理电路可以完全实现为硬件,也可以实现为软件、硬件或固件的组合。此外,数据处理电路可以是单个独立模块或者可以完全或部分地组合到装置400的任何其他组件中。
75.装置400还可包括网络接口406以提供与网络(例如,因特网、内联网、局域网、移动通信网络等)的有线或无线通信。在一些实施例中,网络接口406可以包括任意数量的网络接口控制器(nic)、射频(rf)模块、转发器、收发器、调制解调器、路由器、网关、有线网络适配器的任意组合、无线网络适配器、蓝牙适配器、红外适配器、近场通信(“nfc”)适配器、蜂窝网络芯片等的任意组合。
76.在一些实施例中,可选地,装置400还可包括外围接口408以提供到一个或多个外围设备的连接。如图所示。如图4所示,外围设备可以包括但不限于光标控制设备(例如鼠标、触摸板或触摸屏)、键盘、显示器(例如阴极射线管显示器、液晶显示器,或发光二极管显示器)、视频输入设备(例如,照相机或耦合到视频档案的输入接口)等。
77.应当注意,视频编解码器(例如,执行过程200a、200b、300a或300b的编解码器)可以实现为装置400中的任何软件或硬件模块的任何组合。例如,过程200a、200b、300a或300b的一些或所有阶段可以实现为装置400的一个或多个软件模块,例如可以加载到存储器404
中的程序指令。又例如,过程200a、200b、300a、或300b的一些或所有阶段可以被实现为装置400的一个或多个硬件模块,例如专用数据处理电路(例如,fpga、asic、npu等)。
78.本公开提供了可由编码器和/或解码器执行以简化矩阵加权帧内预测(mip)的方法。mip方法是vvc中新增的帧内预测技术。mip模式适用于纵横比max(width,height)/min(width,height)小于或等于4的块,而且只适用于亮度分量。与帧内子分区模式、多参考线帧内预测模式或最可能模式并行地用信号发送mip标志。
79.当使用mip模式对块进行编码时,类似于传统的帧内预测模式,块左侧的一行重建相邻边界样本和块顶部的一行重建相邻边界样本作为输入来预测块。当重建的相邻边界样本不可用时,可以像在传统的帧内预测中一样生成它们。为了预测亮度样本,首先对重建的相邻边界样本进行平均以生成缩减边界向量neighbor
red
,neighbor
red
[0]表示缩减边界向量的第一元素。然后使用缩减边界向量neighbor
red
生成输入向量input
red
,用于矩阵向量乘法过程,并可以获得缩减预测信号pred
red
。最后,对缩减后的预测信号pred
red
进行双线性插值,生成mip预测信号pred的输出。mip预测过程的图示在图5中示出。
[0080]
mip块根据块的宽度(w)和高度(h)分为三类:class0:对于w=h=4(即4
×
4块);class1:对于max{w,h}=8(即4
×
8、8
×
4、8
×
8块);和class2:对于max{w,h}》8。
[0081]
如图6中表6所示,三类的区别是模数、矩阵个数、矩阵大小、输入向量的大小input
red
(矩阵向量乘法过程的输入)、缩减预测信号input
red
的大小(矩阵向量乘法过程的输出)。
[0082]
在以下描述中,class0、class1和class2分别表示为s0、s1和s2。ni表示矩阵集合si(i=0,1,2)中的矩阵个数。对于mip模式k,矩阵用于矩阵乘法过程,其中表示矩阵集si中的第j个矩阵,j使用以下等式(1)导出。
[0083]
需要说明的是,当mip模式k大于等于ni时,在生成缩减边界向量neighbor
red
和缩减预测信号pred
red
的步骤中分别进行交换操作和转置操作。上面描述了这两个操作的细节。此外,以下等式(2)和(3)用于确定是否需要交换操作或转置操作。以下等式(2)和(3)用于确定是否需要交换操作或转置操作。
[0084]
如前所述,当前块的输出预测信号pred的生成基于以下三个步骤,即平均、矩阵向量乘法和线性插值。这些步骤的详细信息如下所述。
[0085]
在边界样本中,通过平均提取class0的4个样本和class1和class2的8个样本。例如,可以通过根据以下规则对重建的相邻边界样本进行平均来生成缩减边界向量neighbor
red

[0086]
class0:每两个样本取平均值。缩减边界向量的大小neighbor
red
是4
×
1。
[0087]
class1和class2:对于当前块上方重建的相邻边界样本,每w/4个样本进行平均。对于当前块左侧重建的相邻边界样本,每h/4个样本进行平均。缩减的边界向量neighbor
red
的大小为8
×
1。
[0088]
缩减的边界向量neighbor
red
是将当前块上方重建的相邻边界样本平均得到的向量与当前块左侧重建的相邻边界样本平均得到的向量的级联。如上所述,对于mip模式k大于或等于ni,执行交换操作。例如,和两个向量的级联顺序可以互换,如下式(4)所示
[0089]
然后,矩阵向量乘法的输入向量input
red
生成如下。
[0090]
对于class0和class1:input
red
[0]=neighbor
red
[0]-(1<<(bitdepth-1)),input
red
[j]=neighbor
red
[j]-neighbor
red
[0],j=1,

,size(neighbor
red
)-1,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式(5)
[0091]
对于class2input
red
[j]=neighbor
red
[j 1]-neighbor
red
[0],j=0,

,size(neighbor
red
)-2,
ꢀꢀ
等式(6)
[0092]
上述等式(5)和(6)中,neighbor
red
[0]表示向量neighbor
red
的第一元素。根据式等式(5)和(6)可知,class0、class1、class2的input
red
的insize大小分别为4、8、7。
[0093]
以向量input
red
作为输入进行矩阵向量乘法。结果是在当前块中的子采样样本集上的缩减预测信号pred
red
。例如,从缩减输入向量input
red
中,可以生成缩减预测信号pred
red,
,其是宽度w
red
和高度h
red
的下采样块上的信号。这里,w
red
和h
red
由下面的等式(7)和(8)定义为:(8)定义为:
[0094]
如前所述,当变量“istransposed”等于1时,对缩减预测信号pred
red
进行转置。假设最终缩减预测信号pred
red
的大小为w
red
×hred
,则未转置的w

red
×h′
red
的大小由如下方程(9)和(10)推导出:如下方程(9)和(10)推导出:
[0095]
通过根据以下等式(11)计算矩阵向量乘积来计算缩减预测信号pred

red
的向量:pred

red
=m
·
input
red
neighbor
red
0.ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式.(11)
[0096]
然后,向量pred

red
按照光栅扫描顺序排列在大小为4
×
4、4
×
8、8
×
4和8
×
8的矩阵pred
red
中。将大小为16
×
1的向量pred

red
排列在大小为4
×
4的矩阵pred
red
中的示例如下所示:pred

red
=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p]
t
[0097]
换句话说,对于x=0
…w′
red-1和y=0
…h′
red-1,可以使用如下等式(12)计算矩阵pred
red
[0098]
上述等式(12)中,变量“insize”是输入向量input
red
的大小,如上所述,用于生成缩减预测信号pred
red
的矩阵m是根据块大小分类和mip模式k从三个矩阵集合s0,s1,s2之一中获得的。
[0099]
变量ow和sw是两个预定义值,具体取决于用于矩阵向量乘法的矩阵。变量ow用于将矩阵中每个元素的精度限定为7位,用于使所有元素都大于或等于0。例如,因子ow可以定义为以下等式(13):
[0100]
在上面的等式(13)中,so是一个偏移量并且是从查找表中导出。例如,图7的表7示出了根据一些公开的实施例的用于so的示例性查找表。
[0101]
此外,变量“sw”是使用另一个查找表导出。图8的表8示出了根据一些公开实施例的用于sw的示例性查找表。
[0102]
在等式(12)中,用于留出4
×
16和16
×
4块的矩阵行的一半的两个变量“inch”和“incw”被定义为以下等式(14)和(15):被定义为以下等式(14)和(15):
[0103]
上述等式(15)中,变量predc用于将缩减后的预测信号pred
red
排列成w

red
×h′
red
矩阵,并定义为如下等式(16):
[0104]
输入向量input
red
,其中insize大小等于7,64行7列的矩阵用于属于class2的块,生成一64元素的向量。然而,根据等式
,4
×
16和16
×
4块只需要32个元素。这是因为class2的缩减预测信号pred
red
可以8
×
8排列,超过了4
×
16或16
×
4块的短边。因此,省略操作得以执行。
[0105]
图9示出了根据一些公开的实施例的示例性排除操作。如图9所示,对于istrnsposed=0的4
×
16块和istrnsposed=1的16
×
4块,每两行的第二行被排除在矩阵之外。因此,缩减后的预测信号pred
red
包含32个元素,这些元素以4
×
8的大小排列。
[0106]
图10示出了根据一些公开的实施例的示例性省略操作。如图10所示,对于istrnsposed=0的16
×
4块和istranspose=1的4
×
16块,每16行的最后8行被排除在矩阵之外。因此,缩减后的预测信号pred
red
包含32个元素,这些元素以8
×
4的大小排列。
[0107]
剩余位置的输出预测信号是通过线性插值从子采样集pred
red
上的缩减预测信号生成的,这是在每个方向上的单步线性插值。
[0108]
如上所述,mip模式的预测使用三个步骤生成,包括对相邻重建样本的平均、矩阵向量乘法和双线性插值。mip模式的预测过程不同于传统的帧内预测模式的过程。mip模式虽然提高了编码效率,但设计可能在以下两个方面比较复杂。
[0109]
关于第一方面,矩阵向量乘法过程中对4
×
16和16
×
4块的排除操作可能存在问题,原因有以下三个。首先,排除操作不仅增加了额外的操作,而且使预测过程变得不一致,因为排除操作仅适用于16
×
4和4
×
16块。其次,对于16
×
4和4
×
16块,缩减后的预测信号pred
red
的大小在转置前后可能不同。因此,需要对未转置的缩减预测信号(例如w

red
和h

red
)的大小进行额外推导。第三,对于16
×
4和4
×
16块,缩减后的预测信号pred
red
的大小可能不同,如下面的等式(17)所示。
[0110]
对于第二方面,为了将矩阵中每个元素的精度限制为7位并保证所有元素都是非负的,在矩阵乘法过程中将偏移量so添加到缩减的预测信号中。但是,由于以下三个原因,它可能是不必要且复杂的。首先,需要额外的内存来存储偏移量so的表。该表共包含34个元素,每个元素为7位。因此,总共需要238位内存。其次,需要进行查表操作来使用类索引和矩阵编号来确定so的值。第三,需要额外的乘法和加法运算来生成减少的预测信号pred
red
。除了计算矩阵m与输入向量input
red
之间的矩阵向量相乘之外,还进一步进行so与输入向量input
red
之间的相乘。对于4
×
4块,生成预测信号所需的每个样本的乘法总数增加到5。
[0111]
本公开提供在不影响比特率的情况下解决这些问题的方法。在一些示例性方法中,使用8位而不是7位来存储矩阵。然后,等式(12)可以重新表示为以下等式(18)。
[0112]
在上面的等式(18)中,矩阵中的所有元素都减去偏移量so。矩阵向量乘积的上述存储和计算方法可以产生位相同的结果。然而,存储矩阵的位数增加了4882(即5120
×
1-34
×
7)位,乘法运算的位宽扩大到8位。
[0113]
下面描述了去除排除操作和so查找表的方法。
[0114]
为了去除mip预测过程中矩阵的额外排除操作,提供了两种方法。根据第一种去除排除操作的方法,可以修改传统mip方法中不合理的分类方法,将4
×
16和16
×
4块从class2移动到class1,使得生成的缩减预测信号pred
red
不超过短边限制。
[0115]
在一个示例性实施例中,mip分类规则修改如下:class0:4
×
4;class1:4
×
n、8
×
8、n
×
4,n为8和64之间的整数;和class2:其他。
[0116]
通过此修改,可以将大小为8
×
8、4
×
8、4
×
16、4
×
32、4
×
64、8
×
4、16
×
4、32
×
4或64
×
4的块从class2中移动到class1。因此,大小为8
×
8、4
×
8、4
×
16、4
×
32、4
×
64、8
×
4、16
×
4、32
×
4或64
×
4的块可以使用集合s1中的矩阵,在矩阵乘法过程中,每个有16行和8列。这样,只需生成16个元素就可以形成一个4
×
4的缩减预测信号pred
red
,从而可以去除排除操作。这种修改可以用双删除线或斜体突出显示的变化表示如下:如果cbwidth和cbheight都等于4,则mipsizeid[x][y]设置为等于0。否则,如果,cbwidth*cbheight小于或等于64,则mipsizeid[x][y]设置为等于1。否则,mipsizeid[x][y]设置为等于2。
[0117]
这种解决方案至少有三个好处。
[0118]
首先,矩阵乘法过程被简化和统一。对于大小为4
×
16或16
×
4的块,排除操作被删除。因此,可以删除是否执行排除操作和两个变量“inch”和“incw”的检查。此外,在矩阵向量乘法过程中,所有块都不需要对矩阵进行额外的运算。因此,矩阵乘法过程是统一的。
[0119]
其次,减少了矩阵乘法过程中4
×
16和16
×
4块的乘法和加法次数。在一些实施例中,对于大小为4
×
16或16
×
4的块,可以使用32
×
7矩阵进行矩阵向量乘法,而在所提供的实施例中可以使用16
×
8矩阵。因此,4
×
16或16
×
4块的乘法和加法次数可以减少。
[0120]
第三,pred
red
的推导简化统一。对于所有块,缩减的预测信号pred
red
的大小在转置前后是一致的。因此删除了w

red
和h

red
的额外推导。例如,pred
red
的大小的推导可以简化为以下等式(19)和(20)。以下等式(19)和(20)。
[0121]
而缩减后的预测信号pred
red
的大小由下式(21)统一:
[0122]
根据第二种去除排除操作的方法,mip分类规则修改如下:class0:4
×
4;class1:4
×
8、8
×
4、4
×
16和16
×
4;和
class2:其他。
[0123]
将4
×
16和16
×
4块(在上述修改后的mip分类中斜体)移至class1,将8
×
8块移至class2。通过此修改,删除排除操作并进一步简化了mip分类规则。在一些实施例中,这种修改可以在下面用双删除线或斜体突出显示的变化来表达。如果cbwidth和cbheight都等于4,则mipsizeid[x][y]设置为等于0。否则,min(cbwidth,cbheight)等于4,则mipsizeid[x][y]设置为等于1。否则,mipsizeid[x][y]设置为等于2。
[0124]
为了去除偏移量so的表,本公开的实施例提供了修改矩阵m的值和偏移量so的方法,而无需查找表。
[0125]
在第一示例性实施例中,偏移量so被替换为对于class0的矩阵偏移量so被替换为对于class0的矩阵中的第一个元素、对于class1的矩阵中的第一个元素以及class2的矩阵中的第七个元素。矩阵中的第i个元素表示从矩阵的左上角开始按光栅扫描顺序计数的第i个数字。通过这样做,可以删除图7的表7中所示的取决于类索引和矩阵编号的偏移量s0的查找表。这样就可以节省238位的存储空间。
[0126]
在第二示例性实施例中,对于所有类别,偏移量s0被替换为每个矩阵中的第一个元素。另外,由于用于class2的矩阵的第一个元素与图7表7中对应的soi有相对较大的差异,因此,在图7中,对于x=0

6,y=0

63,使用以下等式(22)修改除第一个元素之外的元素。
[0127]
存储修改后的矩阵而不是原始矩阵,在编码和解码过程中没有添加额外的操作。至少有以下两个好处。首先,可以删除依赖于类索引和矩阵编号的偏移量so表,从而可以节省238位存储空间。其次,从矩阵中提取偏移量的过程对于所有类都是统一的。
[0128]
在第三示例性实施例中,每个矩阵的第一个元素被替换为根据图7的表7的对应偏移量so。这样就可以删除so表。执行矩阵向量乘法时,偏移量来自每个矩阵的第一个元素。存储修改后的矩阵而不是原始矩阵,在编码和解码过程中没有添加额外的操作。
[0129]
在第四示例性实施例中,偏移量s0被替换为固定值。因此,无需任何偏移量的推导过程就可以删除查找表。在一个例子中,固定值为66,它是所有矩阵中的最小值。所有矩阵修改如下。m

=m-so 66
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
等式(23)
[0130]
在上面的等式(23)中,so从表7(图7)中导出。然后,方程(12)中的矩阵向量量乘法过程可以修改如下。
[0131]
存储修改后的矩阵m'而不是原始矩阵,在编码和解码过程中没有添加额外的操作。
[0132]
再举一个例子,固定值为64。所有矩阵修改如下。m

=m-so 64
ꢀꢀꢀꢀ
eq.(25)
[0133]
在上面的等式(25)中,so从表7导出。然后,矩阵向量乘法过程可以修改如下。
[0134]
另外,修改后的矩阵中的负数需要修改为0,在实现本发明实施例时,只将一个值从-2改为0。保存修改后的矩阵m'而不是原来的矩阵,没有额外的在编码和解码过程中添加操作。乘以64的运算可以替换为移位运算。因此,so与输入向量input
red
之间的乘法可以用左移操作代替。对于4
×
4块,生成预测信号所需的每个样本的乘法总数从5次减少到4次。
[0135]
在第三个例子中,固定值是128。所有矩阵修改如下。m

=m-so 128
ꢀꢀꢀ
(27)
[0136]
在上述等式(27)中,so从表7中导出。然后矩阵向量乘法过程可以修改如下。
[0137]
存储修改后的矩阵m'而不是原始矩阵,在编码和解码过程中没有添加额外的操作。查找表被移除,用左移操作代替offset和输入向量的乘法。对于4
×
4块,生成预测信号所需的每个样本的乘法总数减少到4次。此外,编码性能不变。
[0138]
图11是与本公开的实施例一致的用于处理视频内容的示例性方法1100的流程图。方法1100可由编解码器(例如,使用图2a-2b的编码过程200a和200b的编码器或使用图3a-3b的解码过程300a和300b的解码器)来执行。例如,编解码器可被实现为用于对视频序列进行编码或转码的装置(例如,装置400)的一个或多个软件或硬件组件。在一些实施例中,视频序列可以是未压缩的视频序列(例如,视频序列202)或被解码的压缩的视频序列(例如,视频流304)。在一些实施例中,视频序列可以是监控视频序列,其可以由与装置的处理器(例如,处理器402)相关联的监控设备(例如,图4中的视频输入设备)采集。视频序列可以包括多张图像。该装置可以在图像级别执行方法1100。例如,在方法1100中设备可以一次处理一张图像。又例如,在方法1100中,设备可以一次处理多张图像。方法1100可以包括以下步骤。
[0139]
在步骤1102,可以确定目标块的分类。在一些实施例中,分类可以包括第一类(例如,class0)、第二类(例如,class1)和第三类(例如,class2)。对于给定块,可以基于给定块的大小来确定给定块的分类。例如,第一类可以与4
×
4大小的块相关联,第二类可以与8
×
8、4
×
n或n
×
4大小的块相关联,n可以是在8到64之间的整数。例如,n等于8、16、32或64。也就是说,第二类可以包括大小为8
×
8、4
×
8、4
×
16、4
×
32、4
×
64、8
×
4、16
×
4、32
×
4或64
×
4的块。第三类可以与其余的块相关联。
[0140]
在一些实施例中,响应于目标块的尺寸不是4
×
4、8
×
8、4
×
n或n
×
4,可以确定目标块属于第三类。
[0141]
在步骤1104,可以基于分类生成矩阵加权帧内预测(mip)信号。在一些实施例中,可以基于输入向量、矩阵和目标块的分类来生成目标块的第一帧内预测信号,并且可以使用第一帧内预测信号对目标块执行双线性插值,生成mip信号。
[0142]
例如,为了生成输入向量,可以根据目标块的分类对目标块的相邻重建样本进行平均。如上所述,对于第一类块,可以对该块的每两个相邻重建样本求平均以生成缩减的边界向量作为输入向量。例如,第一类输入向量的大小可以是4
×
1,第二类是8
×
1,第三类是7
×
1。并且对于第二类或第三类的块(例如,具有m
×
n的大小),可以平均块上方的每m/4个相邻重建样本和块左侧的每n/4个相邻重建样本。
[0143]
与输入向量不同,可以根据目标块的分类和mip模式索引从一组矩阵(例如,矩阵集s0、s1或s2)中选择矩阵。
[0144]
然后,可以通过对矩阵和输入向量进行矩阵向量乘法来生成第一帧内预测信号。在一些实施例中,第一帧内预测信号还与第一偏移量和第二偏移量相关联。例如,如等式(12)所讨论的,缩减的预测信号可以进一步由第一偏移(例如,ow)和第二偏移(例如,os)进行偏移。在一些实施例中,第一偏移量和第二偏移量可以基于矩阵集合中的矩阵索引来确定。例如,第一偏移量和第二偏移量可以分别参考表7和表8确定。
[0145]
目标块的分类也与第一帧内预测信号的大小有关。例如,响应于目标块属于第一类或第二类,确定第一帧内预测信号的大小为4
×
4;响应于目标块属于第三类,确定第一帧内预测信号的大小为8
×
8。
[0146]
在一些实施例中,还提供了一种包括指令的非暂时性计算机可读存储介质,并且该指令可以由用于执行上述方法的设备(例如所公开的编码器和解码器)来执行。非暂时性介质的常见形式包括例如软盘、软盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、任何带有孔洞图案的物理介质、ram、prom和eprom、flash-eprom或任何其他闪存、nvram、缓存、寄存器、任何其他内存芯片或盒式磁带,以及它们的网络版本。该设备可以包括一个或多个处理器(cpu)、输入/输出接口、网络接口和/或存储器。
[0147]
可以使用以下条款进一步描述实施例:1、一种用于处理视频内容的计算机实现的方法,包括:确定目标块的分类;和基于所述分类生成矩阵加权帧内预测(mip)信号,其中确定所述目标块的分类包括:响应于目标块的大小为4
×
4,确定目标块属于第一类;或者响应于目标块的大小为8
×
8、4
×
n或n
×
4,n为8到64之间的整数,确定目标块属于第二类。2、根据条款1的方法,其中生成所述mip信号包括:为所述目标块产生第一帧内预测信号,所述第一帧内预测信号的产生基于输入向量、矩阵和所述目标块的分类;和使用所述第一帧内预测信号对所述目标块进行双线性插值,生成所述mip信号。3、根据条款1或2的方法,进一步包括:根据所述目标块的分类,对所述目标块的相邻重建样本进行平均,生成所述输入向量。4、根据条款2或3的方法,其中当所述目标块属于所述第一类时,所述输入向量的大小为4
×
1,或者当所述目标块属于所述第二类时,输入向量的大小为8
×
1。
5、根据条款2-4中任一项所述的方法,其中,根据所述目标块的分类和mip模式索引,从矩阵集合中选择所述矩阵。6、根据条款5所述的方法,其中通过对所述矩阵和所述输入向量执行矩阵向量乘法来生成所述第一帧内预测信号。7、根据条款6的方法,其中所述第一帧内预测信号是基于一个或多个与矩阵相关联的偏移量而产生。8、根据条款7的方法,其中基于查找表中的矩阵的索引来确定所述一个或多个偏移。9、根据条款1-8任一项的方法,其中确定所述目标块的分类还包括:响应于目标块的尺寸不是4
×
4、8
×
n、4
×
n和n
×
4,确定所述目标块属于所述第三类。10、根据条款9的方法,其中为所述目标块生成所述第一帧内预测信号包括:响应于所述目标块属于第一类或第二类,确定所述第一帧内预测信号的大小为4
×
4;和响应于所述目标块属于第三类,确定所述第一帧内预测信号的大小为8
×
8。11、根据条款1-10中任一项的方法,其中n等于8、16、32或64。12、一种视频内容处理系统,包括:存储器,所述存储器用于存储指令集的存储器;和至少一个处理器,所述至少一个处理器被配置为执行一组指令以使系统执行:确定目标块的分类;和基于所述分类生成矩阵加权帧内预测(mip)信号,其中,在确定所述目标块的分类时,所述至少一个处理器还被配置为执行所述指令集以使得系统进一步执行:响应于所述目标块的大小为4
×
4,确定所述目标块属于第一类;或者响应于所述目标块的大小为8
×
8、4
×
n或n
×
4,n大于4,确定所述目标块属于第二类。13、根据条款12所述的系统,其中在生成所述mip信号时,所述至少一个处理器还被配置为执行所述指令集以使得所述系统进一步执行:为所述目标块生成第一帧内预测信号,所述第一帧内预测信号的生成基于输入向量、矩阵和所述目标块的分类;和使用所述第一帧内预测信号对所述目标块进行双线性插值,生成所述mip信号。14、根据条款12或13所述的系统,其中所述至少一个处理器还被配置为执行所述指令集以使得所述系统进一步执行:根据所述目标块的分类,对所述目标块的相邻重建样本进行平均,生成所述输入向量。15、根据条款13或14所述的系统,其中,当所述目标块属于第一类时,所述输入向量的大小为4
×
1,或者当所述目标块属于第二类时,所述输入向量的大小为8
×
1。16、根据条款13-15中任一项所述的系统,其中,根据所述目标块的分类和mip模式索引,从矩阵集合中选择所述矩阵。
17、根据条款16所述的系统,其中通过对所述矩阵和所述输入向量执行矩阵向量乘法来生成所述第一帧内预测信号。18、根据条款17所述的系统,其中基于与所述矩阵相关联的一个或多个偏移来生成所述第一帧内预测信号。19、根据条款18所述的系统,其中基于查找表中的矩阵的索引来确定所述一个或多个偏移。20、一种非暂时性计算机可读介质,其上存储有指令集,所述指令集可由计算机系统的至少一个处理器执行以使所述计算机系统执行用于处理视频内容的方法,所述方法包括:确定目标块的分类;和基于所述分类生成矩阵加权帧内预测(mip)信号,其中确定所述目标块的分类包括:响应于所述目标块的大小为4
×
4,确定所述目标块属于第一类;或者响应于所述目标块的大小为8
×
8、4
×
n或n
×
4,n为8到64之间的整数,确定所述目标块属于第二类。
[0148]
需要说明的是,本文中“第一”、“第二”等关系术语仅用于区分一个实体或操作与另一个实体或操作,并不要求或暗示这些实体或操作之间存在任何实际关系或顺序。此外,词语“包括”、“具有”、“包含”和“包括”以及其他类似形式在含义上是等效的并且是开放式的,因为这些词语中的任何一个之后的一个或多个项目不是旨在详尽列出此类项目或项目,或仅限于列出的项目。
[0149]
如本文所用,除非另有特别说明,否则术语“或”涵盖所有可能的组合,除非不可行。例如,如果声明一个数据库可能包含a或b,那么,除非另有明确说明或不可行,否则该数据库可能包含a,或b,或a和b。作为第二个例子,如果声明一个数据库可能包含a、b或c,然后,除非另有明确说明或不可行,否则数据库可能包含a、或b、或c、或a和b、或a和c、或b和c、或a和b和c。
[0150]
可以理解,上述实施例可以通过硬件、或软件(程序代码)、或硬件和软件的组合来实现。如果通过软件实现,它可以存储在上述计算机可读介质中。该软件在由处理器执行时可以执行所公开的方法。本公开中描述的计算单元和其他功能单元可以通过硬件、或软件、或硬件和软件的结合来实现。本领域普通技术人员也可以理解,上述模块/单元中的多个可以组合为一个模块/单元,上述每个模块/单元还可以进一步划分为多个子模块/子单位。
[0151]
在前述说明书中,已经参考可以随实现而变化的许多具体细节描述了实施例。可以对所描述的实施例进行某些修改和修改。考虑到本文公开的本发明的说明书和实践,其他实施例对于本领域技术人员来说是显而易见的。说明书和实施例仅被认为是示例性的,本发明的真正范围和精神由以下权利要求指示。图中所示的步骤顺序也旨在仅用于说明目的,并不旨在限于任何特定的步骤顺序。因此,本领域技术人员可以理解,在实现相同方法的同时,可以以不同的顺序执行这些步骤。
[0152]
在附图和说明书中,已经公开了示例性实施例。然而,可以对这些实施例进行许多变化和修改。因此,尽管使用了特定术语,但它们仅用于一般和描述性意义,而不是为了限制目的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献