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

用于视频译码的参数化基于图的可分离变换的制作方法

2022-06-01 19:01:20 来源:中国专利 TAG:

用于视频译码的参数化基于图的可分离变换
1.相关申请的交叉引用
2.本技术要求享有于2020年10月22日提交的美国申请号17/077,587的优先权,该美国申请要求享有于2019年10月25日提交的美国临时专利申请号62/926,284的权益,上述每个美国申请的全部内容通过引用的方式合并入本文。
技术领域
3.本公开内容涉及视频编码和视频解码。


背景技术:

4.数字视频能力可以被合并到各种各样的设备中,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议设备、视频流设备等。数字视频设备实现视频译码技术(诸如在由mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4(第10部分,高级视频译码(avc))、itu-th.265/高效率视频译码(hevc)所定义的标准以及此类标准的扩展中描述的那些技术)。通过实现这样的视频译码技术,视频设备可以更加高效地发送、接收、编码、解码和/或存储数字视频信息。
5.视频译码技术包括空间(图片内)预测和/或时间(图片间)预测以减少或去除在视频序列中固有的冗余。对于基于块的视频译码,视频切片(例如,视频图片或视频图片的一部分)可以被分割为视频块,视频块也可以被称为译码树单元(ctu)、译码单元(cu)和/或译码节点。图片的经帧内译码(i)的切片中的视频块是使用相对于同一图片中的相邻块中的参考样本的空间预测来编码的。图片的经帧间译码(p或b)的切片中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。


技术实现要素:

6.一般而言,本公开内容描述了用于基于图的可分离变换的技术,该技术可以由视频编码器用于将残差值从样本域(也称为像素域)变换到变换域(也称为频域)并且由视频解码器用于从变换域变换(例如,逆变换)回到样本域。在示例视频译码系统中,可分离变换(例如,二维dct-2)已经用于对预测之后获得的块残差信号进行译码。本公开内容描述了建立用于视频译码的基于图的可分离变换(gbst)的参数方法的示例。举一个例子,gbst可以从一对线形图中推导出来,其权重是基于两个非负参数而被确定的。本公开内容描述了可以优化用于gbst的图参数以更好地捕获残差块统计并且因此提高视频压缩效率的示例技术。
7.在一个示例中,本公开内容描述了一种解码视频数据的方法,该方法包括:在应用于视频数据的当前块的语法结构中接收图相关信息;基于所接收的图相关语法信息来确定
变换矩阵;基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块;以及,基于残差块来重构视频数据的当前块。
8.在另一个示例中,本公开内容描述了一种用于对视频数据进行解码的设备,该设备包括存储器和处理电路,所述存储器被配置为存储视频数据;所述处理电路被配置为:在应用于视频数据的当前块的语法结构中接收图相关信息;基于所接收的图相关语法信息来确定变换矩阵;基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块;以及,基于残差块来重构视频数据的当前块。
9.在另一个示例中,本公开内容描述了一种其上存储有指令的计算机可读存储介质,当执行这些指令时将处理器配置为:在应用于视频数据的当前块的语法结构中接收图相关信息;基于所接收的图相关语法信息来确定变换矩阵;基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块;以及,基于残差块来重构视频数据的当前块。
10.在另一个示例中,本公开内容描述了一种用于解码视频数据的设备,该设备包括:用于在应用于视频数据的当前块的语法结构中接收图相关信息的单元;用于基于所接收的图相关语法信息来确定变换矩阵的单元;用于基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块的单元;以及,用于基于残差块来重构视频数据的当前块的单元。
11.在附图和以下描述中阐述了一个或多个示例的细节。根据说明书、附图和权利要求,其它特征、目的和优点将是清楚的。
附图说明
12.图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的框图。
13.图2a和图2b是示出示例四叉树二叉树(qtbt)结构以及相应的译码树单元(ctu)的概念图。
14.图3a-图3e是示出变换类型的示例的表格。
15.图4是示出基于残差四叉树的变换方案的示例的概念图。
16.图5是示出用于推导针对给定图和图参数的整数变换的示例的流程图。
17.图6是示出具有n个顶点的线形图的概念图。
18.图7a和图7b是示出与广义图拉普拉斯(ggl)矩阵相对应的图权重的示例的概念图。
19.图8a-图8d示出了基于n点图的可分离变换(gbst)的平均和每一类别性能。
20.图9是示出可以执行本公开内容的技术的示例视频编码器的框图。
21.图10是示出可以执行本公开内容的技术的示例视频解码器的框图。
22.图11是示出用于对当前块进行编码的示例方法的流程图。
23.图12是示出用于对视频数据的当前块进行解码的示例方法的流程图。
24.图13是示出根据本公开内容的一种或多种技术的对视频数据进行解码的示例操作的流程图。
具体实施方式
25.视频编码(例如,视频编码和/或视频解码)通常涉及从同一图片中已编码的视频
数据块(例如,帧内预测)或不同图片中的已编码的视频块(例如,帧间预测)来预测视频数据块。在一些情况下,视频编码器还通过将预测块与原始块进行比较来计算残差数据。因此,残差数据表示预测块和原始块之间的差异。为了减少用信号发送残差数据所需要的比特的数量,视频编码器对残差数据进行变换和量化,并在经编码的比特流中用信号发送经变换和量化的残差数据。
26.视频解码器对接收到的经变换和量化的残差数据进行反量化和逆变换,以近似地再现由视频编码器计算的残差。视频解码器将残差数据添加到预测块以产生与单独预测块相比更匹配原始视频块的经重建的视频块。然而,通过变换和量化过程实现的压缩可能是有损的,这意味着变换和量化过程可能会将伪影或失真引入经解码的视频数据。一种常见类型的伪影或失真被称为块效应(blockiness),其中,用于对视频数据进行译码的块的边界是可见的。
27.为了进一步提高解码视频的质量,视频解码器可以对经重建的视频块执行一个或多个滤波操作。这些滤波操作的示例包括去块滤波、样本自适应偏移(sao)滤波和自适应环路滤波(alf)。用于这些滤波操作的参数可以由视频编码器来确定并在经编码的视频比特流中显式地用信号发送,或者可以由视频解码器隐式确定而不需要在经编码的视频比特流中显式地用信号发送。
28.本公开内容涉及变换译码,并且更具体地,涉及用于设计变换的参数化方法。本公开内容中描述的技术可以用于高级视频编解码器和诸如vvc之类的下一代视频译码标准。几种多重变换选择(mts)设计扩展了通用视频译码(vvc)标准中的当前mts工具。本公开内容中描述的技术允许视频编码器和视频解码器通过使视频编码器和视频解码器能够使用更大数量的不同变换来更好地捕捉残差块统计并因此提高译码效率。然而,通过在应用于当前块的语法结构中接收图相关信息并且基于所接收的图相关语法信息来确定变换矩阵,本公开内容的技术允许视频编码器和视频解码器实施该更大数量的不同转换,而不会显著地增加信令开销或者用于存储额外转换的存储器需求。
29.在早于高效视频译码(hevc)标准(g.j.sullivan,j.-r.ohm,w.-j.han,and t.wiegand,“overview of the high efficiency video coding(hevc)standard,”ieee trans.circuits syst.video technol.,vol.22,no.12,pp.1649

1668,dec.2012)的一些视频压缩系统中,仅使用类型2离散余弦变换(dct-2)以可分离的方式变换残差块信号的行和列。使用dct-2作为唯一变换选项的一个问题是隐含假设所有残差块共享相同的统计属性。然而,在实践中,残差块可能具有不同的统计特性,取决于视频内容、预测模式和块尺寸。
30.测试已经表明:可分离类型7离散正弦变换(dst-7)可以为小块提供比dct-2可观的译码增益,并且在hevc中采用dst-7来对4x4帧内预测块进行译码。为了进一步增加具有译码益处的变换选择的多样性,目前处于开发阶段的通用视频译码标准(vvc)在基于dct-2、dct-8和dst-7的五个候选中采用mts,其中mts可以被应用于包括多达尺寸为32x32的块,如在itu-t sg16 wp3和iso/iec jtc 1/sc29/wg11的联合视频研究组在2018年7月斯洛文尼亚共和国卢布尔雅那的输入文档jvet-k0026,a.said和x.zhao,“ce6:summary report on transforms and transform signalling”中所描述的。
31.本公开内容描述了基于图可分离变换(gbst)作为用于vvc中的mts设计的dst-7和
dct-8的替代或补充。基于图变换(gbt)可以通过为各种块统计提供更好的适应性来提高译码效率,如在h.e.egilmez,a.said,y.-h.chao,and a.ortega,“graph-based transforms for inter predicted video coding,”in ieee international conference on image processing(icip),sept 2015,pp.3992

3996,e.pavez,h.e.egilmez,y.wang,and a.ortega,“gtt:graph template transforms with applications to image coding,”in picture coding symposium(pcs),2015,may 2015,pp.199

203,h.e.egilmez,y.h.chao,a.ortega,b.lee,and s.yea,“gbst:separable transforms based on line graphs for predictive video coding,”in 2016ieee international conference on image processing(icip),sept 2016,pp.2375

2379,h.e.egilmez,y.h.chao,and a.ortega,“graph-based transforms for video coding,”corr,vol.abs/arxiv:1909.00952,2019.[online].available:https://arxiv.org/abs/1909.00952,以及h.e.egilmez,o.teke,a.said,v.seregin,m.karczewicz,“parametric graph-based separable transforms for video coding,”ieee international conference on image processing(icip),2020中描述的。
[0032]
在“gbst:separable transforms based on line graphs for predictive video coding,”and“graph-based transforms for video coding”中,可分离gbt(即,gbst)可以通过从h.e.egilmez,e.pavez,and a.ortega,“graph learning from data under laplacian and structural constraints,”ieee journal of selected topics in signal processing,vol.11,no.6,pp.825

841,sept 2017描述的数据中学习一对线形图而被优化,以便对块残差信号的基本按行和列统计进行建模,其中,相关联的图拉普拉斯矩阵用于推导gbst。
[0033]“graph-based transforms for video coding”表明:gbt在译码效率方面可以优于从样本协方差矩阵推导的karhunen-loeve变换(klt),因为与使用样本协方差来推导klt相比,图学习方法提供了更好的模型估计(例如,如在v.n.vapnik,“an overview of statistical learning theory,”ieee transactions on neural networks,vol.10,no.5,pp.988

999,sep 1999and u.von luxburg and b.sch
¨
olkopf,statistical learning theory:models,concepts,and results.amsterdam,netherlands:elsevier north holland,may 2011,vol.10,pp.651

706中描述的更好的泛化和方差-偏差权衡)。来自“graph-based transforms for video coding”的一种可能性是:具有较少参数的学习模型(这缓解过度拟合问题)通常导致更通用和稳健的模型估计,因此可以使用图学习技术来设计更好的变换用于视频译码。
[0034]
本公开内容描述了用于一种或多种参数化方法来确定线形图的技术,所述线形图的权重是根据两个非负参数确定的。例如,gbst可以从具有常数边权重(由wc表示)和单个顶点权重vc(也称为自环路)的线形图推导出来,如更详细描述的。与允许“graph-based transforms for video coding”中的任意图权重的gbst构建技术相比,参数化方法的示例可以是更受约束的变量,其导致由更少参数定义的更简单的模型。此外,“gbst:separable transforms based on line graphs for predictive video coding”和“graph-based transforms for video coding”中的经验结果可能已经在简单的模拟设置中提供了它们的理论依据。本公开内容在更实际的设置中呈现了实验结果,其中,在vvc参考软件上测试
了建议的gbst。
[0035]
图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的框图。概括而言,本公开内容的技术涉及对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的未经编码的视频、经编码的视频、经解码(例如,经重构)的视频、以及视频元数据(例如,信令数据)。
[0036]
如图1中所示,在该示例中,系统100包括源设备102,源设备102提供将要被目的地设备116解码和显示的、经编码的视频数据。具体地,源设备102经由计算机可读介质110来将视频数据提供给目的地设备116。源设备102和目的地设备116可以包括各种各样的设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、移动设备、平板计算机、机顶盒、诸如智能电话之类的电话手机、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、广播接收机设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并且因此可以被称为无线通信设备。
[0037]
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200以及输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120以及显示设备118。根据本公开内容,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用本文所述的用于参数变换推导的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从诸如外部相机之类的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备对接,而不是包括集成显示设备。
[0038]
如图1所示的系统100仅是一个示例。通常,任何数字视频编码和/或解码设备可以执行所描述的用于参数变换推导的技术。源设备102和目的地设备116仅是这样的译码设备的示例,其中,源设备102生成经译码的视频数据以用于传输给目的地设备116。本公开内容将“译码”设备指代为执行对数据的译码(例如,编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示译码设备(具体地,视频编码器和视频解码器)的示例。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式进行操作,使得源设备102和目的地设备116中的每一个都包括视频编码和解码组件。因此,系统100可以支持在源设备102与目的地设备116之间的单向或双向视频传输,例如,以用于视频流、视频回放、视频广播或视频电话。
[0039]
通常,视频源104表示视频数据(即原始的未经译码的视频数据)的源,并且将视频数据的顺序的一系列图片(也被称为“帧”)提供给视频编码器200,视频编码器200对用于图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如相机、包含先前捕获的原始视频的视频存档单元、和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代方式,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、被存档的视频和计算机生成的视频的组合。在每种情况下,视频编码器200可以对被捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收的顺序(有时被称为“显示顺序”)重新排列为用于译码的译码顺序。视频编码器200可以生成包括经编码的视频数据的比特流。然后,源设备102可以经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以便由例如目的地设备116的输入接口122接收和/或检索。
[0040]
源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频以及来自视频解码器300的原始的经解码的视频数据。补充或替代地,存储器106、120可以存储可由例如视频编码器200和视频解码器300分别执行的软件指令。尽管在该示例中存储器106和存储器120被示为与视频编码器200和视频解码器300分开,但是应当理解的是,视频编码器200和视频解码器300还可以包括用于在功能上类似或等效目的的内部存储器。此外,存储器106、120可以存储例如从视频编码器200输出并且输入到视频解码器300的经编码的视频数据。在一些示例中,存储器106、120的部分可以被分配为一个或多个视频缓冲器,例如,以存储原始的经解码和/或经编码的视频数据。
[0041]
计算机可读介质110可以表示能够将经编码的视频数据从源设备102输送到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,其使得源设备102能够例如经由射频网络或基于计算机的网络,来实时地向目的地设备116直接发送经编码的视频数据。根据诸如无线通信协议之类的通信标准,输出接口108可以对包括经编码的视频数据的传输信号进行调制,并且输入接口122可以对所接收的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,例如,射频(rf)频谱或者一条或多条物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的一部分:局域网、广域网、或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站、或对于促进从源设备102到目的地设备116的通信而言可以有用的任何其它设备。
[0042]
在一些示例中,源设备102可以将经编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112访问经编码的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。
[0043]
在一些示例中,源设备102可以将经编码的视频数据输出到文件服务器114或者可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。目的地设备116可以经由流或下载来从文件服务器114存取被存储的视频数据。
[0044]
文件服务器114可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以表示(例如,用于网站的)网络服务器,服务器被配置为提供文件传输协议服务(例如,文件传输协议(ftp)或通过单向传输进行文件传递(flute)协议、内容传递网络(cdn)设备、超文本传输协议(http)服务器、多媒体广播多播服务(mbms)或增强型mbms(embms)服务器、和/或网络附加存储(nas)设备。附加地或替代地,文件服务器114可以实施一个或多个http流传输协议,比如通过http的动态自适应流(dash)、http实时流(hls)、实时流协议(rtsp)、http动态流等等。
[0045]
目的地设备116可以通过任何标准数据连接(包括互联网连接)来从文件服务器114访问经编码的视频数据。这可以包括适于访问被存储在文件服务器114上的经编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线(dsl)、电缆调制解调器等)、或这两者的组合。输入接口122可以被配置为根据上面讨论的用于从文件服务器114检索或接收媒体数据的各种协议中的任何一个或多个协议或用于检索媒体数据的其他此类协议进行操作。
16wp 3和iso/iec jtc1/sc 29/wg 11的联合视频专家组(jvet)于2019年1月9-18日在摩洛哥马拉喀什举行的第13次会议,jvet-m1001-v7(后面被称为“vvc草案10”),由bross等人的“versatile video coding(draft 4)”中描述的。然而,本公开内容的技术不限于任何具体译码标准。
[0052]
通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指代包括将要被处理的(例如,在编码和/或解码过程中将要被编码、被解码或以其它方式使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以yuv(例如,y、cb、cr)格式表示的视频数据进行译码。也就是说,并不是对用于图片的样本的红色、绿色和蓝色(rgb)数据进行译码,视频编码器200和视频解码器300可以对亮度和色度分量进行译码,其中,色度分量可以包括红色色相和蓝色色相色度分量两者。在一些示例中,视频编码器200在进行编码之前将所接收的经rgb格式化的数据转换为yuv表示,并且视频解码器300将yuv表示转换为rgb格式。可选地,预处理和后处理单元(未图示)可以执行这些转换。
[0053]
本公开内容可以通常涉及对图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开内容可以涉及对图片的块的译码以包括对用于块的数据进行编码或解码(例如,预测和/或残差译码)的过程。经编码的视频比特流通常包括用于表示译码决策(例如,译码模式)以及将图片分割为块的语法元素的一系列值。因此,关于对图片或块进行译码的引用通常应当被理解为对用于形成图片或块的语法元素的值进行译码。
[0054]
hevc定义了各种块,包括译码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频译码器(诸如视频编码器200)根据四叉树结构来将译码树单元(ctu)分割为cu。也就是说,视频译码器将ctu和cu分割为四个相等的、不重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频译码器可以进一步分割pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu的分区。在hevc中,pu表示帧间预测数据,而tu表示残差数据。经帧内预测的cu包括帧内预测信息,比如,帧内模式指示。
[0055]
举另一个例子,视频编码器200和视频解码器300可以被配置为根据vvc进行操作。根据vvc,视频译码器(比如,视频编码器200)将图片分割为多个译码树单元(ctu)。视频编码器200可以根据树结构(比如,四叉树-二叉树(qtbt)结构或多类型树(mtt)结构)来分割ctu。qtbt结构去除了多种分割类型的概念,诸如在hevc的cu、pu和tu之间的分隔。qtbt结构包括两个级别:根据四叉树分割而被分割的第一级别、以及根据二叉树分割而被分割的第二级别。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于译码单元(cu)。
[0056]
在mtt分割结构中,可以使用四叉树(qt)分割、二叉树(bt)分割以及一种或多种类型的三叉树(tt)(也被称为三元树(tt))分割来对块进行分割。三叉树或三元树分割是其中块被分为三个子块的分割。在一些示例中,三叉树或三元树分割将块划分为三个子块,而不通过中心划分原始块。mtt中的分割类型(例如,qt、bt和tt)可以是对称的或不对称的。
[0057]
在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度分量和色度分量中的每一者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个qtbt或mtt结构,诸如用于亮度分量的一个qtbt/mtt结构以及用于
两个色度分量的另一个qtbt/mtt结构(或者用于相应色度分量的两个qtbt/mtt结构)。
[0058]
视频编码器200和视频解码器300可以被配置为使用每hevc的四叉树分割、qtbt分割、mtt分割、或其它分割结构。为了解释的目的,关于qtbt分割给出了本公开内容的技术的描述。然而,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树分割或者还使用其它类型的分割的视频译码器。
[0059]
在一些示例中,ctu包括:亮度样本的编码树块(ctb)、具有三个样本阵列的图片的色度样本的两个相应ctb,或者黑白图片或使用三个独立的色彩平面和用于对样本进行编码的语法结构进行编码的图片的样本的ctb。一个ctb可以是针对某个n值的样本的nxn块,使得一个分量到多个ctb的划分是一次分割。一个分量是来自以4:2:0、4:2:2或4:4:4颜色格式构成一张图片的三个阵列(亮度和两个色度)之一的阵列或单个样本、或者是构成黑白格式的图片的阵列或阵列的单个样本。在一些示例中,译码块是针对一些值m和n的样本的m
×
n块,使得一个ctb到多个译码块的划分是一次分割。
[0060]
可以以各种方式在图片中对块(例如,ctu或cu)进行分组。举一个例子,砖块(brick)可以指代图片中的特定瓦片(tile)内的ctu行的矩形区域。瓦片可以是图片中的特定瓦片列和特定瓦片行内的ctu的矩形区域。瓦片列指代ctu的矩形区域,其具有等于图片的高度的高度以及由语法元素(例如,诸如在图片参数集中)指定的宽度。瓦片行指代ctu的矩形区域,其具有由语法元素指定的高度(例如,诸如在图片参数集中)以及与图片的宽度相等的宽度。
[0061]
在一些示例中,可以将一个瓦片分割为多个砖块,每个砖块可以包括瓦片内的一个或多个ctu行。没有被分割为多个砖块的瓦片也可以被称为砖块。然而,作为瓦片的真实子集的砖块可以不被称为瓦片。
[0062]
图片中的砖块也可以以切片来排列。切片可以是图片的整数个砖块,其可以唯一地被包含在单个网络抽象层(nal)单元中。在一些示例中,切片包括多个完整的瓦片或者仅包括一个瓦片的完整砖块的连续序列。
[0063]
本公开内容可以互换地使用“n
×
n”和“n乘n”来指代块(诸如cu或其它视频块)在垂直和水平维度方面的样本尺寸,例如,16
×
16个样本或16乘16个样本。通常,16
×
16cu将在垂直方向上具有16个样本(y=16),并且在水平方向上将具有16个样本(x=16)。同样地,nxn cu通常在垂直方向上具有n个样本,并且在水平方向上具有n个样本,其中n表示非负整数值。cu中的样本可以按行和列来排列。此外,cu不一定需要在水平方向上具有与在垂直方向上相同的数量的样本。例如,cu可以包括n
×
m个样本,其中,m不一定等于n。
[0064]
视频编码器200对用于cu的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示将如何预测cu以便形成用于cu的预测块。残差信息通常表示在编码之前的cu的样本与预测块之间的逐个样本差。
[0065]
为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成用于cu的预测块。帧间预测通常指代根据先前译码的图片的数据来预测cu,而帧内预测通常指代根据同一图片的先前译码的数据来预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索,以识别例如在cu与参考块之间的差异方面与cu紧密匹配的参考块。视频编码器200可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)、或其它这种差计算来计算差度
量,以确定参考块是否与当前cu紧密匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前cu。
[0066]
vvc的一些示例还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式下,视频编码器200可以确定表示非平移运动(比如,放大或缩小、旋转、透视运动或其它不规则的运动类型)的两个或更多个运动矢量。
[0067]
为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。vvc的一些示例提供六十七种帧内预测模式,包括各种方向性模式、以及平面模式和dc模式。通常,视频编码器200选择帧内预测模式,帧内预测模式描述要根据其来预测当前块(例如,cu的块)的样本的、当前块的相邻样本。假定视频编码器200以光栅扫描顺序(从左到右、从上到下)对ctu和cu进行译码,则这样的样本通常可以是在与当前块相同的图片中在当前块的上方、左上方或左侧。
[0068]
视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一种的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动矢量预测(amvp)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似的模式来对用于仿射运动补偿模式的运动矢量进行编码。
[0069]
在诸如对块的帧内预测或帧间预测之类的预测之后,视频编码器200可以计算用于该块的残差数据。残差数据(诸如残差块)表示在块与用于该块的预测块之间的逐个样本差,该预测块是使用对应的预测模式来形成的。视频编码器200可以将一个或多个变换应用于残差块,以在变换域中而非在样本域中产生经变换的数据。例如,视频编码器200可以将离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在第一变换之后应用二次变换,诸如模式相关的不可分离二次变换(mdnsst)、信号相关变换、karhunen-loeve变换(klt)等。视频编码器200在应用一个或多个变换之后产生变换系数。
[0070]
如上所述,在任何变换以产生变换系数之后,视频编码器200可以执行对变换系数的量化。量化通常指代如下的过程:在该过程中,对变换系数进行量化以可能减少用于表示这些变换系数的数据量,从而提供进一步的压缩。通过执行量化过程,视频编码器200可以减小与一些或所有变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特的值向下舍入为m比特的值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要被量化的值的按位右移。
[0071]
在量化之后,视频编码器200可以扫描变换系数,从而从包括经量化的变换系数的二维矩阵产生一维矢量。扫描可以被设计为将较高能量(并且因此较低频率)的变换系数放在矢量的前面,并且将较低能量(并且因此较高频率)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来扫描经量化的变换系数以产生经串行化的矢量,并且然后对矢量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术译码(cabac)来对一维矢量进行熵编码。视频编码器200还可以对用于描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器300在对视频数据进行解码时使用。
[0072]
为了执行cabac,视频编码器200可以将上下文模型内的上下文分配给要被发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以是基于被分配给符号的上下文的。
[0073]
视频编码器200还可以例如在图片报头、块报头、切片报头中为视频解码器300生成语法数据(比如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据)、或其它语法数据(比如,序列参数集(sps)、图片参数集(pps)或视频参数集(vps))。同样地,视频解码器300可以对这样的语法数据进行解码以确定如何解码对应的视频数据。
[0074]
以这种方式,视频编码器200可以生成比特流,其包括经编码的视频数据,例如,描述将图片分割为块(例如,cu)以及用于该块的预测和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并且对经编码的视频数据进行解码。
[0075]
通常,视频解码器300执行与由视频编码器200执行的过程相反的过程,以对比特流的经编码的视频数据进行解码。例如,视频解码器300可以使用cabac,以与视频编码器200的cabac编码过程基本上类似的、但是相反的方式来对用于比特流的语法元素的值进行解码。语法元素可以定义图片到ctu的用于分割的分割信息,以及根据对应的分割结构(比如,qtbt结构)对每个ctu进行分割,以便定义ctu的cu。语法元素还可以定义用于视频数据的块(例如,cu)的预测和残差信息。
[0076]
残差信息可以由例如经量化的变换系数来表示。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换以重构用于该块的残差块。视频解码器300使用经信号发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成用于该块的预测块。视频解码器300然后可以对预测块和残差块(在逐个样本的基础上)进行组合以重构原始块。视频解码器300可以执行额外处理,诸如执行去块过程以减少沿着块的边界的视觉伪影。
[0077]
本公开内容可以通常涉及“用信号发送”某些信息(诸如语法元素)。术语“用信号发送”通常可以指代对用于语法元素的值和/或用于对经编码的视频数据进行解码的其他数据的传送。也就是说,视频编码器200可以在比特流中以信号发送用于语法元素的值。通常,以信号发送指代在比特流中生成值。如上所述,源设备102可以基本上实时地或不是实时地(比如,可能在将语法元素存储到存储设备112以供目的地设备116稍后检索时发生)将比特流传输给目的地设备116。
[0078]
图2a和图2b是示出示例四叉树二叉树(qtbt)结构130以及对应的译码树单元(ctu)132的概念图。实线表示四叉树拆分,而虚线指示二叉树拆分。在二叉树的每个拆分(即非叶)节点中,以信号发送一个标志以指示使用哪种拆分类型(即,水平或垂直),其中,在该示例中,0指示水平拆分,而1指示垂直拆分。对于四叉树拆分,因为四叉树节点将一个块水平地并且垂直地拆分为具有相等尺寸的4个子块,所以无需指示拆分类型。因此,视频编码器200可以对以下各项进行编码,而视频解码器300可以对以下各项进行解码:用于qtbt结构130的区域树级别(即实线)的语法元素(诸如拆分信息)、以及用于qtbt结构130的预测树级别(即虚线)的语法元素(诸如拆分信息)。视频编码器200可以对用于由qtbt结构130的终端叶节点表示的cu的视频数据(诸如预测和变换数据)进行编码,而视频解码器300可以对视频数据进行解码。
[0079]
通常,图2b的ctu 132可以与定义与qtbt结构130的处于第一和第二级别的节点相
对应的块的尺寸的参数相关联。这些参数可以包括ctu尺寸(表示样本中的ctu 132的尺寸)、最小四叉树尺寸(minqtsize,其表示最小允许四叉树叶节点尺寸)、最大二叉树尺寸(maxbtsize,其表示最大允许二叉树根节点尺寸)、最大二叉树深度(maxbtdepth,其表示最大允许二叉树深度)、以及最小二叉树尺寸(minbtsize,其表示最小允许二叉树叶节点尺寸)。
[0080]
qtbt结构的与ctu相对应的根节点可以在qtbt结构的第一级别处具有四个子节点,每个子节点可以是根据四叉树分割来分割的。也就是说,第一级别的节点是叶节点(没有子节点)或者具有四个子节点。qtbt结构130的示例将这样的节点表示为包括具有实线分支的父节点和子节点。如果第一级别的节点不大于最大允许二叉树根节点尺寸(maxbtsize),则可以通过相应的二叉树进一步对节点进行分割。可以对一个节点的二叉树拆分进行迭代,直到从拆分产生的节点达到最小允许二叉树叶节点尺寸(minbtsize)或最大允许二叉树深度(maxbtdepth)。qtbt结构130的示例将这样的节点表示为具有虚线分支。二叉树叶节点被称为译码单元(cu),其用于预测(例如,图片内或图片间预测)和变换,而不进行任何进一步分割。如上所讨论的,cu也可以被称为“视频块”或“块”。
[0081]
在qtbt分割结构的一个示例中,ctu尺寸被设置为128
×
128(亮度样本和两个对应的64
×
64色度样本),minqtsize被设置为16
×
16,maxbtsize被设置为64
×
64,minbtsize(对于宽度和高度两者)被设置为4,并且maxbtdepth被设置为4。首先对ctu应用四叉树分割以生成四叉树叶节点。四叉树叶节点可以具有从16
×
16(即minqtsize)到128
×
128(即ctu尺寸)的尺寸。如果四叉树叶节点为128
×
128,则因为该尺寸超过maxbtsize(即,在该示例中为64
×
64),因此叶四叉树节点将不被二叉树进一步拆分。否则,四叉树叶节点将被二叉树进一步分割。因此,四叉树叶节点也是用于二叉树的根节点,并且具有为0的二叉树深度。当二叉树深度达到maxbtdepth(在该示例中为4)时,不允许进一步拆分。二叉树节点具有等于minbtsize(在该示例中为4)的宽度意味着不允许对该二叉树节点进行进一步垂直拆分(即,对宽度进行划分)。类似地,具有等于minbtsize的高度的二叉树节点意味着不允许对该二叉树节点进行进一步水平拆分(即,对高度进行划分)。如上所述,二叉树的叶节点被称为cu,并且根据预测和变换而被进一步处理,而无需进一步分割。
[0082]
如上所述,视频译码标准可以在视频编码器200处利用诸如离散正弦变换(dst)和离散余弦变换(dct)之类的变换来将样本域中的残差数据变换到变换域,并且在视频解码器300处将变换域中的残差数据变换(例如,逆变换)回到样本域。以下描述了dct和dst的概述并且还描述了在hevc中使用的变换方案。
[0083]
假设输入n点向量表示为x=[x0,x1,

,x
n-1
]
t
,并且通过乘以矩阵被变换成表示为y=[y0,y1,

,y
n-1
]
t
的另一个n点变换系数向量,可以根据以下变换公式之一进一步说明其过程,其中,k的范围从0到n-1,所述变换公式包括:
[0084]
dct类型-i(dct-1):
[0085][0086]
其中,
[0087]
dct类型-ii(dct-2):
[0088][0089]
其中
[0090]
dct类型-iii(dct-3):
[0091][0092]
其中
[0093]
dct类型-iv(dct-4):
[0094][0095]
dct类型-v(dct-5):
[0096][0097]
其中
[0098]
dct类型-vi(dct-6):
[0099][0100]
其中
[0101]
dct类型-vii(dct-7):
[0102][0103]
其中
[0104]
dct类型-viii(dct-8):
[0105][0106]
dst类型-i(dst-1):
[0107][0108]
dst类型-ii(dst-2):
[0109][0110]
其中
[0111]
dst类型-iii(dst-3):
[0112][0113]
其中
[0114]
dst类型-iv(dst-4):
[0115][0116]
dst类型-v(dst-5):
[0117][0118]
dst类型-vi(dst-6):
[0119][0120]
dst类型-vii(dst-7):
[0121][0122]
dst类型-viii(dst-8):
[0123][0124]
其中
[0125]
变换类型是由变换基函数的数学公式规定的,例如4点dst-vii和8点dst-vii具有相同的变换类型,与n的值无关。不失一般性,可以使用以下通用公式来表示上述变换类型:
[0126][0127]
在上面公式中,t是由一个特定变换的定义(例如,dct类型-i~dct类型-viii,或dst类型-i~dst类型-viii)所规定的变换矩阵,并且t的行向量,例如,[t
i,0
,t
i,1
,t
i,2
,

,t
i,n-1
]是第i个变换基向量。应用于n点输入向量的变换被称为n点变换。
[0128]
应用于1-d输入数据x的上述变换公式可以表示成矩阵乘法形式,如下所示:
[0129]
y=t
·
x
[0130]
在上述等式中,t表示变换矩阵,x表示输入数据向量,并且y表示输出变换系数向量。
[0131]
下面描述了针对二维(2-d)输入数据的变换。上述变换应用于1-d输入数据,并且也可以针对2-d输入数据源来扩展变换。假设x是输入mxn数据数组。对2-d输入数据应用变换的典型方法包括可分离和不可分离的2-d变换。
[0132]
可分离2-d变换对x的水平向量和垂直向量依次应用1-d变换,公式如下:
[0133]
y=c
·
x
·rt
[0134]
在上述等式中,c和r分别表示给定的mxm和nxn变换矩阵。从公式可见,c对x的列向量应用1-d变换,而r对x的行向量应用1-d变换。在本公开内容中,为了简单起见,可以使用c和r来表示左(垂直)变换和右(水平)变换,这两者形成一个变换对。有些情况下,c等于r并
且是正交矩阵。在这种情况下,可分离2-d变换仅由一个变换矩阵来确定。
[0135]
例如,通过进行以下数学映射,不可分离的2-d变换首先将x的所有元素重新组织成单个向量,即x':
[0136]
x

(i
·
n j)
=x
i,j
[0137]
然后对x'应用1-d变换t',如下所示:
[0138]
y=t

·
x
[0139]
在上述等式中,t’是(m*n)x(m*n)变换矩阵。
[0140]
在视频译码中,可以始终应用可分离的2-d变换,因为与1-d变换相比,2-d变换需要少得多的操作(加法、乘法)计数。
[0141]
下面描述在hevc中应用的变换类型。在一些视频译码标准(例如,h.264/avc)中,4点和8点离散余弦变换(dct)类型-ii的整数近似值始终应用于帧内预测残差和帧间预测残差两者。为了更好地适应残差样本的各种统计,在新一代视频编解码器中使用了与dct类型-ii不同的更灵活类型的变换。例如,在hevc中,4点类型vii离散正弦变换(dst)的整数近似值用于帧内预测残差,这在j.han,a.saxena and k.rose,“towards jointly optimal spatial prediction and adaptive transform in video/image coding,”ieee international conference on acoustics,speech and signal processing(icassp),march 2010,pp.726-729中既用理论证明又用实验验证了:dst类型vii比dct类型ii更有效用于沿帧内预测方向生成的残差向量,例如,对于由水平帧内预测方向生成的行残差向量,dst类型vii比dct类型ii更有效。
[0142]
在hevc中,4点dst类型-vii的整数近似值仅应用于4x4亮度帧内预测残差块。图3a中示出了用于hevc的4点dst-vii。在hevc中,对于不是4x4亮度帧内预测残差块的残差块,还应用了4点、8点、16点和32点dct类型-ii的整数近似值,如图3b-图3e中所示。
[0143]
为了适应残差块的各种特性,在hevc中应用了使用残差四叉树(rqt)的变换译码结构,其在x.zhao,j.chen,m.karczewicz,l.zhang,x.li,and w.-j.chien,“enhanced multiple transform for video coding,”proc.data compression conference,pp.73-82,march 2016中被简述。
[0144]
每个图片被划分为多个译码树单元(ctu),针对具体瓦片或切片以光栅扫描顺序对ctu进行译码。一个ctu是方形块,并且表示四叉树的根,即,译码树。ctu尺寸的范围可以从8
×
8到64
×
64亮度样本,但是通常使用64
×
64。每个ctu可以进一步分成更小的方形块,称为译码单元(cu)。在ctu递归地拆分为cu之后,每个cu被进一步划分为预测单元(pu)和变换单元(tu)。cu到tu的分割是基于四叉树方法递归执行的,因此由树结构(即,残差四叉树(rqt))对每个cu的残差信号进行译码。rqt允许从4
×
4到32
×
32亮度样本的tu尺寸。
[0145]
图4示出了一个示例,其中,一个cu包括用字母a到j标记的10个tu、以及相应的块分割。rqt的每个节点实际上是变换单元(tu)。各个tu是以深度优先树遍历顺序进行处理,所述深度优先树遍历顺序在图中显示为字母顺序,其遵循具有深度优先遍历的递归z扫描。四叉树方法能够使变换适应残差信号的变化的空间频率特性。通常,具有较大空间支持的较大变换块尺寸提供更好的频率分辨率。然而,具有较小空间支持的较小变换块尺寸提供更好的空间分辨率。在空间分辨率和频率分辨率这两者之间的折衷由编码器模式决策例如基于率失真优化技术进行选择的。率失真优化技术为每种编码模式(例如,具体rqt分裂结
构)计算译码比特和重构失真的加权和,即,率失真成本,以及,选择具有率失真成本最小的译码模式作为最佳模式。
[0146]
rqt中定义了三个参数:树的最大深度、最小允许变换尺寸和最大允许变换尺寸。最小和最大变换尺寸可以在4
×
4到32
×
32个样本的范围内变化,这对应于上一段中提到的支持的块变换。rqt的最大允许深度限制了tu的数量。最大深度等于0意味着:如果所包含的每个tb都达到最大允许变换尺寸,例如32x32,则不能进一步拆分cb。
[0147]
所有这些参数相互作用并影响rqt结构。考虑一种情况,其中,根cb尺寸为64
×
64,最大深度等于0,并且最大变换尺寸等于32
×
32。在这种情况下,cb至少被分割一次,因为分割不会导致64
×
64tb,这是不允许的。rqt参数,即,最大rqt深度、最小和最大变换尺寸,是在序列参数集级别的比特流中发送的。关于rqt深度,可以为帧内和帧间译码的cu指定和用信号发送不同的值。
[0148]
四叉树变换被应用于帧内和帧间残差块。通常,向残差块应用与当前残差四叉树分割相同尺寸的dct-ii变换。但是,如果当前残差四叉树块是4x4并且是通过帧内预测而生成的,则应用上述4x4 dst-vii变换。在hevc中,主要由于鉴于针对相对较小分辨率视频的相对较高复杂度,益处有限,所以没有采用较大尺寸的变换,例如64x64变换。
[0149]
vvc中的当前mts设计使用基于dct-2、dst-7和dct-8的组合推导出的五个变换候选。本公开内容中描述的技术允许推导出更普遍的一维变换,并且在译码增益方面,使用更多变换可以胜过vvc中的现有mts设计。
[0150]
还如更详细地描述的,可以通过基于参数集合定义的图拉普拉斯矩阵的特征分解来推导出变换矩阵。图5示出了该过程的流程图。在图5的例子中,图拉普拉斯矩阵l是基于图参数集合(140)而被定义的。l的特征分解(即,对角化)给出了l=uλu
t
,因此u的列是双精度的变换的基向量,并且λ是由l(142)的特征值组成的对角矩阵。由于u的条目是实数值,因此u可以通过缩放值(即,通过乘以其每个条目)并且然后四舍五入到最接近的整数值(144),来转换为整数变换。例如,缩放可以取决于变换的尺寸(例如,长度)。
[0151]
视频编码器200可以将图、图参数或相关联的图拉普拉斯矩阵用信号发送给视频解码器300,并且视频解码器300可以通过按照图5的示例来生成用于解码过程的逆变换集合。对于正被解码的特定块,视频解码器300可以从生成的集合中选择一个或多个变换。在这种情况下,图可以指广义图拉普拉斯,如下面更详细讨论的。图可以有效地设置用于图参数的形式。图、图参数或图拉普拉斯矩阵可以由视频编码器200使用诸如sps或pps之类的高级语法用信号发送。作为pps级信令的一部分,可以基于与先前译码的元素(例如,帧)来推断或预测图相关语法。图、图参数或图拉普拉斯矩阵也可以作为低级语法用信号发送。
[0152]
例如,信令可以在cu/tu的基础上完成。可以通过发送与图相关信息的表格相关联的索引值来完成信令。例如,可以在表格中列出图参数,并且可以通过对指向特定图参数集的索引值进行译码来完成信令。用信号发送的图信息可以取决于块尺寸(即,tu、cu或变换尺寸)。可以针对不同的块尺寸用信号发送不同的图参数集。
[0153]
替代地,变换推导所需要的图、图参数或它们相关联的图拉普拉斯矩阵可以在编码器和解码器两者处是预定义和已知的。预定义的图拉普拉斯可以取决于块尺寸。
[0154]
示例技术被描述为利用参数化的基于图可分离变换(gbst)。在一些示例中,gbst是从具有由wc和单个顶点权重vc(也称为自环路)表示的常数边权重的线形图推导出的,如
图7a和图7b所示。例如,图7a示出了与在第一顶点处具有常数边权重(wc)和单个自环路权重(vc)的第一线形图的广义图拉普拉斯(ggl)相对应的图权重的示例。图7b示出了与在最后一个顶点处具有常数边权重(wc)和单个自环路权重(vc)的第二线形图的ggl相对应的图权重的示例。下面描述ggl、ggl矩阵以及第一和第二线形图的示例。参数wc和vc表示图参数的示例。
[0155]
在本公开内容中,感兴趣的图可以由ggl矩阵用代数表示。ggl矩阵的一个例子如下。假设加权图g(w,v),广义图拉普拉斯可以定义为:l=d

w v(等式1),其中w是具有非负边权重的邻接矩阵,d是对角度数矩阵,并且v是表示加权自环路的对角矩阵(例如,顶点权重)。d

w项可以是在f.r.k.chung,“spectral graph theory.”usa:american mathematical society,1997中描述的组合的拉普拉斯矩阵,并且ggl是通过在v中加上顶点权重得到的。
[0156]
gbst可以由从与两个加权线形图相关联的ggl推导出的一对gbt来定义。gbt和gbst的示例如下。图g(w,v)的gbt是由广义图拉普拉斯的特征分解得到,l=d

w v=uλu
t
(等式2),其中,u的列是gbt的基向量,而λ是对角特征值矩阵。对于gbst,令u
row
和u
col
是与具有n个顶点的两个线形图相关联的nxn gbt,则nxn矩阵x的gbst是其中u
row
和u
col
是分别应用于块信号x的行和列的变换。
[0157]
在一个示例中,具有n个顶点的线形图可以用于定义图6中所示的图拉普拉斯矩阵。权重可以而被分配给边和/或顶点。
[0158]
下面描述了用于gbst构建的参数化框架的例子。例如,可以存在表示线形图的目标ggl。线形图的示例可以是图7a和图7b的第一线形图和第二线形图。
[0159]
下面表示线形图的两组ggl矩阵可以被视为推导gbst,其中,第一ggl矩阵用于第一线形图,而第二ggl矩阵用于第二线形图。下面可以是图拉普拉斯的集合,也被称为广义图拉普拉斯。
[0160][0161]

[0162][0163]
在上文中,wc表示线形图的常数边权重,而vc是顶点权重(例如,自环路权重)。例如,如图7a和7b中所示,ggl集合中的结构差异以及可能唯一的结构差异是加权顶点的位置(例如,图7a中的开头和图7b中的末尾)。
[0164]
由于可以基于参数wc和vc来充分地定义图信息,因此视频编码器200可以用信号发送仅仅wc和vc以构建用于在解码器侧(例如,在视频解码器300处)推导相应逆变换的图拉普拉斯)。为了确定使用的图拉普拉斯集合,可以使用另一信令元素。例如,还可以用信号发送
标志来识别:除了参数wc和vc以外,是否还使用了或集合。依据块尺寸,可以使用、用信号发送和推断不同的wc和vc对。
[0165]
下面将dct和dst描述为从线形图推导出的gbt。gbst的一些示例(例如,具有某些参数选择的示例)可以与视频译码标准(包括dct-2、dst-7和dct-8)中使用的离散正弦变换(dst)和离散余弦变换(dct)类型一致。例如,某些类型的dct和dst,包括dct-2、dct-8和dst-7,实际上是可以从某种形式的ggl推导的gbt。基于g.strang,“the discrete cosine transform,”siam rev.,vol.41,no.1,pp.135

147,mar.1999 and m.p
¨
uschel and j.m.f.moura,“algebraic signal processing theory:1-d space,”ieee transactions on signal processing,vol.56,no.8,pp.3586

3599,2008中的结果,参数vc和wc可以被选择为使得l1或l2中的指定ggl集合对应于不同类型的dct和dst。l1和l2是具有上面所示矩阵的线形图的相应示例。
[0166]
例如,针对ggl集合l1和l2的vc和wc的不同选择导致以下五种dct/dst类型:
[0167]
·
dct-2是通过在l1或l2中设置vc=0推导出的;
[0168]
·
dst-7是通过在l1中设置vc=wc推导出的;
[0169]
·
dct-8是通过在l2中设置vc=wc推导出的;
[0170]
·
dst-4是通过在l1中设置vc=2wc推导出的;以及
[0171]
·
dct-4是通过在l2中设置vc=2wc推导出的。
[0172]“the discrete cosine transform”中可能讨论了不同类型的dct与图拉普拉斯之间的关系,其中,dct-2被示出为等于从以下形式的组合图拉普拉斯唯一获得的gbt:
[0173][0174]
上述等式表示没有自环路的均匀加权线形图(例如,所有边权重等于正的常数,而顶点权重为零)。也可以通过针对上述目标ggl集合l1和l2,设置vc=0以及wc》0,来获得针对lc的上述等式的形式。此外,“gbst:separable transforms based on line graphs for predictive video coding,”“graph-based transforms for video coding,”and w.hu,g.cheung,and a.ortega,“intra-prediction and generalized graph fourier transform for image coding,”ieee signal processing letters,vol.22,no.11,pp.1913

1917,nov 2015示出了dst-7等于从l1中的ggl推导出的gbt,其中vc=wc。类似地,dct-8是从l2中的ggl推导出的gbt,其中vc=wc。dst-7和dct-8可以被认为是密切相关的变换,其中一个的基向量是另一个的逆(翻转)版本,如在a.said,h.e.egilmez,and y.chao,“low-complexity transform adjustments for video coding,”in 2019 ieee international conference on image processing (icip),sep.2019,pp.1188

1192中所述,因为它们关联图中的唯一区别是自环路的位置。dst-4和dct-4也共享此属性。
[0175]
为了从数据学习图,用公式表示以下参数化ggl估计问题:
[0176]
[0177]
受限于
[0178]
在等式5中,s表示从数据得到的样本协方差矩阵,l(wc,vc)是参数vc和wc定义的ggl变量。由于在h.e.egilmez,e.pavez,and a.ortega,“graph learning from data under laplacian and structural constraints,”ieee journal of selected topics in signal processing,vol.11,no.6,pp.825

841,sept 2017中所述,最小化准则是基于其精度矩阵是ggl的高斯-马尔可夫随机场(gmrf)的负对数似然的,这是用于在由参数vc和wc定义的约束集合lt上估计ggl的受约束的最大似然(ml)问题。
[0179]
本公开内容描述求解(等式5)的实例,其中,约束集合lt可以是上述l1或l2。由于如在s.boyd and l.vandenberghe,“convex optimization”new york,ny,usa:cambridge university press,2004中所述,(等式5)是凸优化问题,并且该问题的维度很小,cvx软件(例如,m.grant and s.boyd,“cvx:matlab software for disciplined convex programming,version 2.1,”http://cvxr.com/cvx,mar.2014)可以用于找到针对wc和vc的最优解。
[0180]
作为对cvx的更有效替代,在“graph learning from data under laplacian and structural constraints”and h.e.egilmez,e.pavez,and a.ortega,“gll:graph laplacian learning package,version1.0,”https://github.com/stac-usc/graph learning,2017中提出的ggl估计算法可以通过引入预计下降步骤而被修改为适应l1和l2中的约束。
[0181]
为了设计gbst,举一个例子,本公开内容描述了优化用于推导变换的ggl矩阵的两步过程。在第一步骤中,解决(等式5)中的问题,以找到在最大似然的意义上最佳地捕获输入数据统计(样本协方差s)的最优参数(和)。残差数据是使用vvc参考软件(版本2)vtm-2.0来收集的,其中,行和列统计(s)是从帧内译码的残差块获得的。
[0182]
在求解(等式5)之后,第二步骤通过对ggl的条目进行归一化,然后将已归一化的顶点权重四舍五入到允许精度的值,从而细化经优化的ggl矩阵细化步骤可能需要限制用于译码系统的参数的精度。此外,ggl的归一化可以使具有不同顶点数量(维度)的模型的分析更容易。
[0183]
举一个例子,估计的ggl通过除以而被归一化为因此,与相关联的图的边权重等于1,并且其非零顶点权重等于ggl的归一化可能不会对其对应的gbt有影响,因为在(等式2)中的特征向量集合(即,u)对于l的缩放是不变的。对于四舍五入,归一化的顶点权重被四舍五入到最接近的0.25的整数倍。所得到的四舍五入顶点权重可以表示为αn,其中n是变换长度(或顶点数量)。
[0184]
所提出的两步法可以应用于设计gbst,作为对vvc中的dst-7和dct-8的替代。由于vvc允许4、8、16和32-点dst-7/dct-8,gbst可以针对相同的变换长度进行优化。对于4、8、16和32-点gbst,示例技术可能分别导致α4=2、α8=1、α
16
=0.75和α
32
=0.25。
[0185]
(简称l1)或(简称l2)中的wc参数可以设置为1,并且只有αn=vc可以用于定义图拉普拉斯并推导出相关联的变换。在这种情况下,可以仅用信号发送αn=vc值。
[0186]
对于不同的块尺寸(即,对于不同的n),可以用信号发送不同的αn值。αn可以使用一元或固定长度码直接用信号发送。可以基于对列出了αn个候选者的表格的索引来用信号发
送αn。对于不同的n(即,块尺寸),表格的条目可以不同。一个表格可以包含αn的列表,其值范围为0到3。例如,该表格可以包含以下值:[0 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3]。索引可以是一元译码或固定长度译码。替代地,对于某些块尺寸(n),可以推断索引并且不用信号发送索引。
[0187]
在一些示例中,可以依据块尺寸(n)来推断αn值。例如,针对4点变换,α4可以设置为2,针对8点变换,α8可以设置为1,针对16点变换,α
16
可以设置为0.75,并且针对32点变换,α
32
可以设置为0.25。
[0188]
基于上文将dct和dst描述为从线形图导出的gbt,所提出方法的结果可以被解释如下:
[0189]
·
由于针对l1和l2的α4=2分别对应于dst-4和dct-4,因此所提出的方法可以表明用dst-4取代dst-7并且用dct-4取代dct-8以用于4点变换以提高译码增益。
[0190]
·
对于8点变换,该方法可以指示保留dst-7和dct-8,因为针对l1和l2的α8=1分别导致dst-7和dct-8。
[0191]
·
由于αn=0指示使用dct-2,并且αn=1对应于dst-7/dct-8,从α16=0.75推导出的16点gbst引起与dct-2相比更接近dst-7/dct-8的变换,还有α
32
=0.25生成32点gbst,所述32点gbst比dst-7/dct-8更接近dct-2。
[0192]
下面描述与上述示例技术相关的一些性能数据。性能数据仅作为示例提供,不应被视为示例技术必须生成示例性能数据的限制或要求。
[0193]
在f.bossen,j.boyce,k.s
¨
uhring,x.li,and v.seregin,“jvet common test conditions and software reference configurations for sdr video,”joint video exploration team(jvet)of itu-t sg16wp3 and iso/iec jtc 1/sc29/wg11,macao,cn,output document jvet l1010,oct.2018on the vvc reference software(version 2),vtm-2.0中描述的常见测试条件下,通过针对不同的变换长度(即,4、8、16和32点变换)将dst-7和dct-8替换为gbst,来测试所提议的gbst的性能。
[0194]
下面的表1示出了:在使用在g.“calculation of average psnr differences between rd-curves,”itu-t sg16 q.6,austin,tx,tech.rep.vceg-m33,apr.2001中描述的计算技术在bd率方面具有dst-7和dct-8的vtm-2.0锚上,通过使用提议的gbst集合所获得的译码增益。在表1中,示出了在bd率(bdr)方面在全部帧内配置下,gbst在vtm-2.0上的译码性能。负百分比值指示译码增益改进。
[0195][0196]
表1
[0197]
平均而言,本公开内容中描述的技术可以提供0.36%(在y分量中)的亮度译码增益。实际上,没有观察到色度通道(在u和v分量中)的损失,因为vtm-2.0仅在亮度块上应用多个可分离变换候选。对于ctc中的所有序列,观察到亮度译码增益,并且对于类别a1中的一些超高清(uhd)序列,实现高达0.6%的增益。
[0198]
图8a-图8d示出了在vtm-2.0上跨不同αn值的n点gbst的平均和每一类别的亮度bd率性能。例如,图8a-图8d示出了对于不同αn值,仅用n点gbst取代n点dst-7和dct-8的bd率。例如,在图8c中,只有16点变换被源自不同α
16
的gbst取代,同时保持4、8和32点dst-7和dct-8(即,α4=α8=α
32
=1)。结果实践验证了本公开内容中描述的技术,引起α4=2、α8=1、α
16
=0.75和α
32
=0.25,所有这些都非常接近于图8a-图8d中具有最小bdr(y)的最佳αn。
[0199]
图8a-图8d还示出了改变αn对bdr(y)的影响取决于序列的分辨率。例如,在图8a中,针对具有高分辨率的类别a1和a2的译码增益是非常有限的,而对于具有较低分辨率的类别(例如,类别c),增益针对较大α4是显著的。然而,在图8d中,较小的α32导致针对类别a1和a2的显著译码增益,但针对类别c,增益可以忽略不计。
[0200]
因此,本公开内容描述了一种用于建立与dst-7和dct-8相比更好地捕获残差块统计的基于图的可分离变换(gbst)的参数化方法。通过取代vvc中的dst-7和dct-8,在vvc参考软件vtm-2.0上构建并测试了一组优化的gbst。实验结果表明:提议的gbst大大提高了vtm-2.0锚的译码效率。
[0201]
以下参考文献可以提供与变换有关的附加信息:美国专利号10,306,229、美国专利公开号2018/0020218和美国专利序列号16/426,749。
[0202]
图9是示出可以执行本公开内容的技术的示例性视频编码器200的框图。图9是出于解释的目的而提供的,并且不应当被认为对在本公开内容中泛泛地举例说明和描述的技
术进行限制。出于解释的目的,本公开内容在诸如开发中的hevc视频译码标准和h.266视频译码标准之类的视频译码标准的上下文中描述视频编码器200。然而,本公开内容的技术不限于这些视频译码标准,并且一般可适用于视频编码和解码。
[0203]
在图9的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(dpb)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、dpb 218和熵编码单元220中的任何一者或全部可以在一个或多个处理器中或者在处理电路中实现。例如,视频编码器200的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、asic或fpga的一部分。此外,视频编码器200可以包括额外或替代的处理器或处理电路以执行这些和其它功能。
[0204]
视频数据存储器230可以存储要由视频编码器200的组件来编码的视频数据。视频编码器200可以从例如视频源104(图1)接收被存储在视频数据存储器230中的视频数据。dpb 218可以充当参考图片存储器,其存储参考视频数据以在由视频编码器200对后续视频数据进行预测时使用。视频数据存储器230和dpb 218可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(dram)(包括同步dram(sdram))、磁阻ram(mram)、电阻性ram(rram)、或其它类型的存储器设备。视频数据存储器230和dpb 218可以由相同的存储器设备或单独的存储器设备来提供。在各个示例中,视频数据存储器230可以与视频编码器200的其它组件在芯片上(如图所示),或者相对于那些组件在芯片外。
[0205]
在本公开内容中,对视频数据存储器230的引用不应当被解释为限于在视频编码器200内部的存储器(除非如此具体地描述),或者不限于在视频编码器200外部的存储器(除非如此具体地描述)。确切而言,对视频数据存储器230的引用应当被理解为存储视频编码器200接收以用于编码的视频数据(例如,用于要被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。
[0206]
示出了图9的各个单元以帮助理解由视频编码器200执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合。固定功能电路指代提供特定功能并且关于可以执行的操作而预先设置的电路。可编程电路指代能够被编程以执行各种任务并且以能够执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,所述单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,所述单元中的一个或多个单元可以是集成电路。
[0207]
视频编码器200可以包括由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核。在其中使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收并且执行的软件的指令(例如,目标代码),或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
[0208]
视频数据存储器230被配置为存储所接收的视频数据。视频编码器200可以从视频
数据存储器230检索视频数据的图片,并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
[0209]
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括额外功能单元,其根据其它预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。
[0210]
模式选择单元202通常协调多个编码遍历(pass),以测试编码参数的组合以及针对这样的组合所得到的率失真值。编码参数可以包括将ctu分割为cu、用于cu的预测模式、用于cu的残差数据的变换类型、用于cu的残差数据的量化参数等。模式选择单元202可以最终选择编码参数的具有比其它测试的组合更佳的率失真值的组合。
[0211]
视频编码器200可以将从视频数据存储器230检索的图片分割为一系列ctu,并且将一个或多个ctu封装在切片内。模式选择单元202可以根据树结构(诸如上述hevc的qtbt结构或四叉树结构)来分割图片的ctu。如上所述,视频编码器200可以通过根据树结构来分割ctu,从而形成一个或多个cu。这样的cu通常也可以被称为“视频块”或“块”。
[0212]
通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成用于当前块(例如,当前cu,或者在hevc中为pu和tu的重叠部分)的预测块。为了对当前块进行帧间预测,运动估计单元222可以执行运动搜索以识别在一个或多个参考图片(例如,被存储在dpb 218中的一个或多个先前译码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)等,来计算表示潜在参考块将与当前块的类似程度的值。运动估计单元222通常可以使用在当前块与所考虑的参考块之间的逐个样本差来执行这些计算。运动估计单元222可以识别从这些计算所得到的具有最低值的参考块,其指示与当前块最紧密匹配的参考块。
[0213]
运动估计单元222可以形成一个或多个运动矢量(mv),所述运动矢量限定相对于当前块在当前图片中的位置而言参考块在参考图片中的位置。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样本精度,则运动补偿单元224可以根据一个或多个插值滤波器来对用于预测块的值进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索用于由相应的运动矢量标识的两个参考块的数据并且例如通过逐个样本平均或加权平均来将所检索的数据进行组合。
[0214]
举另一个例子,对于帧内预测或帧内预测译码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于方向性模式,帧内预测单元226通常可以在数学上将相邻样本的值进行组合,并且跨当前块在所定义的方向上填充这些计算出的值以产生预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算当前块的相邻样本的平均值,并且生成预测块以包括针对预测块的每个样本的该得到的平均值。
[0215]
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未经编码的版本,并且从模式选择单元202接收预测块。
残差生成单元204计算在当前块与预测块之间的逐个样本差。所得到的逐个样本差定义了用于当前块的残差块。在一些示例中,残差生成单元204可以残差块中的样本值之间的差,以使用残差差分脉冲译码调制(rdpcm)来生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
[0216]
在其中模式选择单元202将cu分割为pu的示例中,每个pu可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的pu。如上所指出的,cu的尺寸可以指代cu的亮度译码块的尺寸,而pu的尺寸可以指代pu的亮度预测单元的尺寸。假定特定cu的尺寸为2n
×
2n,则视频编码器200可以支持用于帧内预测的2n
×
2n或n
×
n的pu尺寸、以及用于帧间预测的2n
×
2n、2n
×
n、n
×
2n、n
×
n或类似的对称pu尺寸。视频编码器200和视频解码器300还可以支持针对用于帧间预测的2n
×
nu、2n
×
nd、nl
×
2n和nr
×
2n的pu尺寸的非对称分割。
[0217]
在其中模式选择单元不将一个cu进一步分割为pu的示例中,每个cu可以与亮度译码块和对应的色度译码块相关联。如上所述,cu的尺寸可以指代cu的亮度译码块的尺寸。视频编码器200和视频解码器300可以支持2n
×
2n、2n
×
n或n
×
2n的cu尺寸。
[0218]
对于其它视频译码技术(举几个示例,诸如块内复制模式译码、仿射模式译码和线性模型(lm)模式译码),模式选择单元202经由与译码技术相关联的相应单元来生成用于正被编码的当前块的预测块。在一些示例中(诸如调色板模式译码),模式选择单元202可以不生成预测块,而是替代地生成指示基于所选择的调色板来重构块的方式的语法元素。在这样的模式下,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
[0219]
如上所述,残差生成单元204接收用于当前块和对应的预测块的视频数据。然后,残差生成单元204为当前块生成残差块。为了生成残差块,残差生成单元204计算在预测块与当前块之间的逐个样本差。
[0220]
变换处理单元206将一种或多种变换应用于残差块,以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块,以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(dct)、方向变换、karhunen-loeve变换(klt)、或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多种变换,例如,主变换和二次变换(比如,旋转变换)。在一些示例中,变换处理单元206不对残差块应用变换。
[0221]
量化单元208可以对变换系数块中的变换系数进行量化,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的qp值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整被应用于与当前块相关联的变换系数块的量化程度。量化可能引起信息损失,并且因此,经量化的变换系数可能具有与变换处理单元206所产生的原始变换系数相比更低的精度。
[0222]
逆量化单元210和逆变换处理单元212可以将逆量化和逆变换分别应用于经量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于经重构的残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将经重构的残差块的样本与来自模式选择单元202所生成的预测块的对应样本相加,以产生经重构的块。
[0223]
滤波器单元216可以对经重构的块执行一个或多个滤波器操作。例如,滤波器单元
216可以执行去块操作以减少沿着cu的边缘的块效应伪影。在一些示例中,可以跳过滤波器单元216的操作。
[0224]
视频编码器200将经重构的块存储在dpb 218中。例如,在其中不需要滤波器单元216的操作的示例中,重构单元214可以将经重构的块存储到dpb 218中。在其中需要滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重构块存储到dpb 218中。运动估计单元222和运动补偿单元224可以从dpb 218检索由经重构的(并且潜在地经滤波的)块形成的参考图片,以对后续编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用在dpb 218中的当前图片的经重构的块来对当前图片中的其它块进行帧内预测。
[0225]
通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码的数据。例如,熵编码单元220可以执行上下文自适应变长译码(cavlc)操作、cabac操作、可变-可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间分割熵(pipe)译码操作、指数哥伦布编码操作、或对数据的另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在其中语法元素未被熵编码的旁路模式下操作。
[0226]
视频编码器200可以输出比特流,其包括用于重构切片或图片的块所需要的经熵编码的语法元素。具体地,熵编码单元220可以输出比特流。
[0227]
关于块描述了上述操作。这样的描述应当被理解为用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是cu的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是pu的亮度分量和色度分量。
[0228]
在一些示例中,不需要针对色度译码块重复关于亮度编码块执行的操作。作为一个示例,不需要重复用于识别用于亮度译码块的运动矢量(mv)和参考图片的操作来识别用于色度块的mv和参考图片。确切而言,可以对用于亮度译码块的mv进行缩放以确定用于色度块的mv,并且参考图片可以是相同的。作为另一示例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。
[0229]
视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括存储器以及一个或多个处理单元,所述存储器被配置为存储视频数据,所述一个或多个处理单元在电路中实现并且被配置为:确定样本域中的残差信息,确定要使用的图拉普拉斯集合,针对所确定的图拉普拉斯来确定线形图的边权重和顶点权重中的至少一项,基于边权重和顶点权重以及图拉普拉斯来确定图拉普拉斯矩阵,以及,对残差信息应用基于图的可分离变换(gbst)以将残差信息从样本域变换到变换域,其中,应用gbst包括:基于图拉普拉斯矩阵来应用gbst。
[0230]
图10是示出可以执行本公开内容的技术的示例性视频解码器300的框图。图10是出于解释的目的而提供的,并且不对在本公开内容中泛泛地举例说明和描述的技术进行限制。出于解释的目的,本公开内容根据jem、vvc和hevc的技术,描述了视频解码器300。然而,本公开内容的技术可以由被配置用于其它视频译码标准的视频译码设备来执行。
[0231]
在图10的示例中,视频解码器300包括经译码图片缓冲器(cpb)存储器320、熵解码
单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓冲器(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和dpb 134中的任何一者或全部可以在一个或多个处理器中或者在处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、asic或fpga的一部分。此外,视频解码器300可以包括额外或替代的处理器或处理电路以执行这些和其它功能。
[0232]
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括根据其它预测模式来执行预测的附加单元。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
[0233]
cpb存储器320可以存储要由视频解码器300的组件解码的视频数据,诸如经编码的视频比特流。例如,可以从计算机可读介质110(图1)获得被存储在cpb存储器320中的视频数据。cpb存储器320可以包括存储来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的cpb。此外,cpb存储器320可以存储除了经译码的图片的语法元素之外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。dpb 314通常存储经解码的图片,视频解码器300可以输出经解码的图片,和/或在解码经编码的视频比特流的后续数据或图片时使用经解码的图片作为参考视频数据。cpb存储器320和dpb 314可以由各种存储器设备中的任何一种形成,比如,dram(包括sdram)、mram、rram、或者其它类型的存储器设备。cpb存储器320和dpb 314可以由相同的存储器设备或单独的存储器设备来提供。在各个示例中,cpb存储器320可以与视频解码器300的其它组件在芯片上,或者相对于那些组件在芯片外。
[0234]
补充地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)检索经译码的视频数据。也就是说,存储器120可以如上文所讨论地利用cpb存储器320来存储数据。同样,当视频解码器300的一些或全部功能是用要被视频解码器300的处理电路执行的软件来实现时,存储器120可以存储要被视频解码器300执行的指令。
[0235]
示出了图10中示出的各个单元以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路、或其组合。类似于图9,固定功能电路指代提供特定功能并且关于可以执行的操作而预先设置的电路。可编程电路指代可以被编程以执行各种任务并且以可以执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
[0236]
视频解码器300可以包括由可编程电路形成的alu、efu、数字电路、模拟电路和/或可编程核。在其中由在可编程电路上执行的软件执行视频解码器300的操作的示例中,片上或片外存储器可以存储视频解码器300接收并且执行的软件的指令(例如,目标代码)。
[0237]
熵解码单元302可以从cpb接收经编码的视频数据,并且对视频数据进行熵解码以
重构语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成经解码的视频数据。
[0238]
通常,视频解码器300逐个块地重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正在被重构(即,被解码)的块可以被称为“当前块”)。
[0239]
熵解码单元302可以对定义经量化的变换系数块的经量化的变换系数的语法元素以及诸如量化参数(qp)和/或变换模式指示之类的变换信息进行熵解码。例如,熵解码单元302可以在应用于当前块的语法结构中接收图相关信息,如上所述。逆量化单元306可以使用与经量化的变换系数块相关联的qp来确定量化程度,并且同样地,确定供逆量化单元306应用的逆量化程度。逆量化单元306可以例如执行按位左移操作以对经量化的变换系数进行逆量化。逆量化单元306从而可以形成包括变换系数的变换系数块。
[0240]
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一种或多种逆变换应用于变换系数块,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。逆变换单元308可以例如基于接收到的图相关语法信息来确定变换矩阵,以及基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块。
[0241]
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是经帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示在dpb 314中的要从其检索参考块的参考图片、以及标识相对于当前块在当前图片中的位置而言参考块在参考图片中的位置的运动矢量。运动补偿单元316通常可以以与关于运动补偿单元224(图9)所描述的方式基本类似的方式来执行帧间预测过程。
[0242]
举另一示例,如果预测信息语法元素指示当前块是经帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以以与关于帧内预测单元226(图9)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314检索当前块的相邻样本的数据。
[0243]
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本与预测块的对应样本相加来重构当前块。
[0244]
滤波器单元312可以对经重构的块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去块操作以减少沿着经重构的块的边缘的块效应伪影。不一定在所有示例中都执行滤波器单元312的操作。
[0245]
视频解码器300可以将经重构的块存储在dpb 314中。例如,在不执行滤波器单元312的操作的示例中,重构单元310可将重构块存储到dpb 314。在执行滤波器单元312的操作的示例中,滤波器单元312可以将滤波后的重构块存储到dpb 314。如上所讨论的,dpb 314可以将参考信息(诸如用于帧内预测的当前图片以及用于后续运动补偿的先前解码的图片的样本)提供给预测处理单元304。此外,视频解码器300可以从dpb 314输出经解码的图片(例如,经解码的视频),以用于在诸如图1的显示设备118之类的显示设备上的后续呈现。
[0246]
以此方式,视频解码器300表示视频解码设备的示例,所述视频解码设备包括存储器以及一个或多个处理单元,所述存储器被配置为存储视频数据,所述一个或多个处理单
元在电路中实现并且被配置为:接收变换域中的残差信息,以及,对残差信息应用基于图的可分离变换(gbst)以便将残差信息从变换域变换到样本域。为了应用gbst,视频解码器300可以被配置为:确定要使用的图拉普拉斯集合,针对所确定的图拉普拉斯来确定线形图的边权重和顶点权重中的至少一项,基于边权重和顶点权重以及图拉普拉斯来确定图拉普拉斯矩阵,以及,基于图拉普拉斯矩阵来应用gbst。
[0247]
图11是示出用于对当前块进行编码的示例方法的流程图。当前块可以包括当前cu。尽管针对视频编码器200(图1和图9)进行了描述,但是应当理解的是,其它设备可以被配置为执行与图11的方法类似的方法。
[0248]
在本示例中,视频编码器200起初预测当前块(350)。例如,视频编码器200可以形成用于当前块的预测块。然后,视频编码器200可以计算用于当前块的残差块(352)。为了计算残差块,视频编码器200可以计算在原始的未经编码的块与用于当前块的预测块之间的差。然后,视频编码器200可以对残差块的系数进行变换和量化(354)。接下来,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac来对变换系数进行编码。然后,视频编码器200可以输出所述块的经熵编码的数据(360)。熵编码数据可以包括:用于确定由视频编码器200用于变换量化系数的变换的图形相关信息。
[0249]
图12是示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前cu。尽管针对视频解码器300(图1和图10)进行了描述,但是应当理解的是,其它设备可以被配置为执行与图12的方法类似的方法。
[0250]
视频解码器300可以接收用于当前块的经熵编码的数据(例如,经熵编码的预测信息和用于与当前块相对应的残差块的系数的经熵编码的数据)(370)。视频解码器300可以对经熵编码的数据进行熵解码以确定用于当前块的预测信息并且再现残差块的系数(372)。视频解码器300可以例如使用如用于当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(374),以便计算用于当前块的预测块。然后,视频解码器300可以对经再现的系数进行逆扫描(376),以创建经量化的变换系数的块。然后,视频解码器300可以对变换系数进行逆量化和逆变换,以产生残差块(378)。视频解码器300可以例如基于所接收的图相关信息来确定要应用于变换系数的逆变换,如本公开内容通篇所描述的。视频解码器300可以通过组合预测块和残差块来最终解码当前块(380)。
[0251]
图13是示出根据本公开内容的一种或多种技术的解码视频数据的示例操作的流程图。如在图13的示例中看到,视频解码器300最初可以在应用于当前块的语法结构中接收图相关信息(400)。如上所述,图相关信息可以例如包括图、图参数或图拉普拉斯矩阵中的一项或多项。语法结构例如可以是sps或pps。在一些示例中,为了接收图相关语法信息,视频解码器300可以被配置为接收在查找表中针对图相关信息的索引。
[0252]
接下来,视频解码器300可以基于接收到的图相关语法信息来确定变换矩阵(405)。为了基于接收到的图相关语法信息来确定变换矩阵,视频解码器300可以被配置为基于图相关信息来确定图拉普拉斯矩阵;对图拉普拉斯矩阵执行特征分解操作以确定一个或多个基向量;一个或多个基向量的缩放值;以及,将缩放值四舍五入到整数值以确定变换矩阵。在一些示例中,图相关信息可以包括一个或多个常数边权重和一个或多个顶点权重,并且为了基于图相关信息来确定图拉普拉斯矩阵,视频解码器300可以被配置为向广义图
拉普拉斯矩阵应用一个或多个常数边权重以及一个或多个顶点权重以确定图拉普拉斯矩阵。图相关信息还可以包括:标识在广义图拉普拉斯矩阵集合中的广义图拉普拉斯矩阵的语法元素。
[0253]
接下来,视频解码器300可以基于一个或多个系数值的所确定的变换矩阵来执行逆变换以生成残差块(410)。
[0254]
接下来,视频解码器300可以基于残差块来重构视频数据的当前块(415)。例如,视频解码器300可以输出经滤波的重构块,作为经解码的视频数据的图片的一部分。视频解码器300可以在输出之前对重构块执行一个或多个滤波操作。视频解码器300可以通过以下方式来输出经解码的视频数据的图片:显示经解码的视频数据的图片,存储经解码的视频数据的图片以供稍后显示,或者存储经解码的视频数据的图片以用于解码视频数据的其他图片。
[0255]
以下条款位于以上描述的范围内并且表示用于视频编码器200和/或视频解码器300的示例技术和实施方式。
[0256]
条款1:一种对视频数据进行解码的方法,包括:在变换域中接收残差信息;以及,对残差信息应用基于图的可分离变换(gbst),以便将残差信息从变换域变换到样本域;其中,应用gbst包括:确定要使用的图拉普拉斯集合;针对所确定的图拉普拉斯,来确定线形图的边权重和顶点权重中的至少一项;基于边权重和顶点权重以及图拉普拉斯来确定图拉普拉斯矩阵;以及,基于图拉普拉斯矩阵,对变换域中的残差信息应用gbst。
[0257]
条款2:根据条款1所述的方法,其中,确定要使用的图拉普拉斯集合包括:接收指示要使用的图拉普拉斯集合的信息。
[0258]
条款3:根据条款1和2中任一项所述的方法,其中,针对所确定的图拉普拉斯来确定所述线形图的边权重和顶点权重中的至少一项包括:接收指示所述线形图的边权重和顶点权重中的至少一项的信息。
[0259]
条款4:根据条款1所述的方法,其中,确定要使用的图拉普拉斯集合包括:推断指示要使用的图拉普拉斯集合的信息。
[0260]
条款5:根据条款1和4中任一项所述的方法,其中,针对所确定的图拉普拉斯来确定线形图的边权重和顶点权重中的至少一项包括:推断指示所述线形图的边权重和顶点权重中的至少一项的信息。
[0261]
条款6:一种对视频数据进行编码的方法,包括:确定样本域中的残差信息;确定要使用的图拉普拉斯集合;针对所确定的图拉普拉斯,来确定线形图的边权重和顶点权重中的至少一项;基于边权重和顶点权重以及图拉普拉斯,来确定图拉普拉斯矩阵;以及,对样本域中的残差信息应用基于图的可分离变换(gbst),以便将残差信息从样本域变换到变换域,其中,应用gbst包括:基于图拉普拉斯矩阵来应用gbst。
[0262]
条款7:根据条款6所述的方法,还包括:指示要使用的图拉普拉斯、边权重、以及顶点权重中的一项或多项的信令信息。
[0263]
条款8:一种用于对视频数据进行解码的设备,包括被配置为存储视频数据的存储器;以及被配置为执行根据条款1-5中任一项所述的方法的处理电路。
[0264]
条款9:一种用于对视频数据进行编码的设备,包括被配置为存储视频数据的存储器;以及被配置为执行根据条款6和7中任一项所述的方法的处理电路。
[0265]
条款10:条款8和9中任一项所述的设备,还包括:被配置为显示经解码视频数据的显示器。
[0266]
条款11:条款8-10中任一项所述的设备,其中,所述设备包括以下各项中的一项或多项:相机、计算机、移动设备、广播接收机设备、或者机顶盒。
[0267]
条款12:一种其上存储有指令的计算机可读存储介质,所述指令当被执行时使得一个或多个处理器执行条款1-5或者条款6和7中任一项所述的方法。
[0268]
条款13:一种用于对视频数据进行译码的设备,该设备包括:用于执行条款1-5或者条款6和7中任一项所述的方法的单元。14.本公开内容中描述的技术的任何组合。
[0269]
要认识到,依据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件是对于实施所述技术都是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并发地而不是顺序地执行。
[0270]
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质上或者通过其进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质或者通信介质,所述通信介质包括例如根据通信协议来促进计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以取得用于实现在本公开内容中描述的技术的指令、代码和/或数据结构的任何可用的介质。计算机程序产品可以包括计算机可读介质。
[0271]
举例来说而非进行限制,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者能够用于以指令或数据结构形式存储期望的程序代码以及能够由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(dsl)或者无线技术(例如,红外线、无线电和微波)从网站、服务器或其它远程源传输指令,则同轴电缆、光纤光缆、双绞线、dsl或者无线技术(例如,红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它临时性介质,而是替代地针对非临时性的有形存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述各项的组合也应当被包括在计算机可读介质的范围之内。
[0272]
指令可以由一个或多个处理器来执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指代前述结构中的任何一者或者适于实现本文描述的技术的任何其它结构。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被并入经组合的编解码器中。此外,所述技术可以完全在一个或多个电路或逻辑元件中实现。
[0273]
本公开内容的技术可以在多种多样的设备或装置中实现,包括无线手机、集成电
路(ic)或一组ic(例如,芯片组)。在本公开内容中描述了各种组件、模块或单元以强调被配置为执行所公开的技术的设备的功能性方面,但是不一定需要通过不同的硬件单元来实现。确切而言,如上所述,各种单元可以被组合在编解码器硬件单元中,或者由可互操作的硬件单元的集合(包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
[0274]
已经描述了各个示例。这些和其它示例在所附的权利要求的范围内。
再多了解一些

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

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

相关文献