使用基于块区域的量化矩阵进行视频编码和解码的制作方法

文档序号:30711861发布日期:2022-07-10 19:23阅读:122来源:国知局
使用基于块区域的量化矩阵进行视频编码和解码的制作方法

1.本公开属于视频压缩领域,并且至少一个实施方案更具体地涉及使用基于块区域的量化矩阵进行的视频编码和解码。


背景技术:

2.为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。一般来讲,帧内或帧间预测用于利用帧内或帧间相关性,然后对原始图像块与预测图像块之间的差异(通常表示为预测误差或预测残差)进行变换、量化和熵编码。在编码期间,通常使用例如四叉树等各种分区将原始图像块分区/分割为子块。为了重构视频,通过对应于预测、变换、量化和熵编码的逆过程对压缩数据进行解码。


技术实现要素:

3.在至少一个实施方案中,视频编码系统包括基于块区域而不是基于块大小尺寸(宽度或高度)的最大值来确定样本的块的量化矩阵。在至少一个实施方案中,基于块区域标识符来选择用于视频编码或解码的量化矩阵,该块区域标识符的值被确定为块宽度和高度的log2的平均值的整数值。
4.第一方面涉及一种用于对图片数据进行编码的方法,该方法包括图片的块的量化,其中基于表示该块的区域的值来选择用于该块的量化的量化矩阵。第一方面的变体形式还包括获得表示图片的块的信息,使用所选择的量化矩阵来执行图片的块的量化,并对图片的量化的块进行编码。
5.第二方面涉及一种用于对图片数据进行解码的方法,该方法包括图片的块的逆量化,其中基于表示该块的区域的值来选择该块的逆量化的量化矩阵。第二方面的变体形式还包括获得表示图片的量化的块的信息,使用所选择的量化矩阵来执行图片的块的逆量化,并对图片的逆量化的块进行解码。
6.第三方面涉及一种用于对图片数据进行编码的装置,该装置包括编码器,该编码器被配置为执行图片的块的量化,其中基于表示该块的区域的值来选择用于该块的量化的量化矩阵。在第三方面的变体形式中,编码器被进一步配置为获得表示图片的块的信息,使用所选择的量化矩阵来执行图片的块的量化,并对图片的量化的块进行编码。
7.第四方面涉及一种用于对图片数据进行解码的装置,该装置包括解码器,该解码器被配置为执行图片的块的逆量化,其中基于表示该块的区域的值来选择用于该块的逆量化的量化矩阵。在第四方面的变体形式中,解码器被进一步配置为获得表示图片的量化的块的信息,使用所选择的量化矩阵来执行图片的块的逆量化,并对图片的逆量化的块进行解码。
8.在第一、第二、第三和第四方面的另外的变体形式中,基于块宽度和高度的log2的平均值来确定表示块区域的值。
9.本实施方案中的一个或多个实施方案涉及一种非暂态计算机可读存储介质,该非
暂态计算机可读存储介质具有存储在其上的用于根据上述第一或第二方面的方法中的任一种方法的至少一部分对视频数据进行编码或解码的指令。本实施方案中的一个或多个实施方案涉及一种计算机程序产品,该计算机程序产品包括用于执行上述第一或第二方面的方法中的任一种方法的至少一部分的指令。
附图说明
10.图1示出了根据实施方案的视频编码器的框图。
11.图2示出了根据实施方案的视频解码器的框图。
12.图3示出了在其中实现各种方面和实施方案的系统的示例的框图。
13.图4示出了将变换系数推断为零的示例。
14.图5描述了根据实施方案的编码方法。
15.图6描述了根据实施方案的解码方法。
具体实施方式
16.各种实施方案涉及一种用于图像的块的样本的预测值的后处理方法,值根据帧内预测角度进行预测,其中样本的值在预测之后被修改,使得基于左侧参考样本的值与获得的样本预测值之间的差的加权来确定该样本的值,其中基于帧内预测角度来确定左侧参考样本。提出了基于该后处理方法的编码方法、解码方法、编码装置、解码装置。
17.此外,尽管描述了与vvc(通用视频编码)或hevc(高效视频编码)规范的特别草案相关的原理,但是本发明的方面不限于vvc或hevc,并且可以例如应用于其他标准和推荐(无论是预先存在的还是未来开发的)以及任何此类标准和推荐的扩展(包括vvc和hevc)。除非另外指明或技术上排除在外,否则本技术中所述的方面可单独或组合使用。
18.图1示出了视频编码器100。设想了这一编码器100的变型,但是为了清楚起见,下文描述了编码器100而不描述所有预期的变型。在编码之前,视频序列可经过预编码处理(101),例如,将颜色变换应用于输入彩色图片(例如,从rgb 4:4:4到ycbcr 4:2:0的转换),或执行输入图片分量的重新映射,以便获得对压缩更具弹性的信号分布(例如,使用颜色分量中的一个颜色分量的直方图均衡化)。元数据可与预处理相关联并且附接到比特流。
19.在编码器100中,图片由编码器元件进行编码,如下所述。以例如cu为单位对要编码的图片进行分区(102)和处理。例如,使用帧内模式或帧间模式对每个单元进行编码。当单元以帧内模式进行编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)帧内模式或帧间模式中的哪一者用于对单元进行编码,并且通过例如预测模式标志来指示帧内/帧间决策。例如通过从原始图像块减去(110)预测块来计算预测残差。
20.然后对预测残差进行变换(125)和量化(130)。对经量化的变换系数以及运动向量和其他语法元素进行熵编码(145),以输出比特流。编码器可跳过变换,并对未变换的残余信号直接应用量化。编码器可绕过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。
21.编码器对编码块进行解码以提供用于进一步预测的参考。对量化的变换系数进行去量化(140)和逆变换(150)以解码预测残差。组合(155)经解码的预测残差和预测块,重构
图像块。向重构图片应用环路滤波器(165)以执行例如解块/sao(样本自适应偏移)和自适应环路滤波器(alf)滤波,以减少编码伪影。经滤波的图像存储在参考图片缓冲器(180)中。
22.图2示出了视频解码器200的框图。在解码器200中,比特流由解码器元件进行解码,如下所述。视频解码器200一般执行与编码程相反的解码程。编码器100通常还执行视频解码作为对视频数据编码的一部分。具体地,解码器的输入包括视频比特流,该视频比特流可由视频编码器100生成。首先对比特流进行熵解码(230)以获得变换系数、运动向量和其他经编码的信息。图片分区信息指示如何对图片进行分区。因此,解码器可以根据解码图片分区信息划分(235)图片。对变换系数进行去量化(240)和逆变换(250)以对预测残差进行解码。组合(255)经解码的预测残差和预测块,重构图像块。可从帧内预测(260)或运动补偿预测(即帧间预测)(275)获得(270)预测块。向重构图像应用环路滤波器(265)。经滤波的图像存储在参考图片缓冲器(280)中。
23.经解码的图片还可经过解码后处理(285),例如,逆颜色变换(例如,从ycbcr 4:2:0到rgb 4:4:4的变换)或执行在预编码处理(101)中执行的重新映射过程的逆重新映射。解码后处理可使用在预编码处理中导出并且在比特流中发信号通知的元数据。
24.图3示出了在其中实现各种方面和实施方案的系统的示例的框图。系统1000可体现为包括下文所述的各个部件的设备,并且被配置为执行本文档中所述的一个或多个方面。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板电脑、数字多媒体机顶盒、数字电视机接收器、个人视频录制系统、连接的家用电器和服务器。系统1000的元件可单独地或组合地体现在单个集成电路(ic)、多个ic和/或分立部件中。例如,在至少一个实施方案中,系统1000的处理元件和编码器/解码器元件分布在多个ic和/或分立部件上。在各种实施方案中,系统1000经由例如通信总线或通过专用输入和/或输出端口通信地耦接到一个或多个其他系统或其他电子设备。在各种实施方案中,系统1000被配置为实现本文档中描述的一个或多个方面。
25.系统1000包括至少一个处理器1010,该处理器被配置为执行加载到其中的指令,以用于实现例如本文档中所述的各个方面。处理器1010可包括嵌入式存储器、输入输出接口和本领域已知的各种其他电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备和/或非易失性存储器设备)。系统1000包括存储设备1040,该存储设备可包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(eeprom)、只读存储器(rom)、可编程只读存储器(prom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可包括内部存储设备、附接存储设备(包括可拆和不可拆的存储设备)和/或网络可访问的存储设备。
26.系统1000包括编码器/解码器模块1030,该编码器/解码器模块被配置为例如处理数据以提供编码视频或解码视频,并且编码器/解码器模块1030可包括其自身的处理器和存储器。编码器/解码器模块1030表示可被包括在设备中以执行编码和/或解码功能的模块。众所周知,设备可包括编码模块和解码模块中的一者或两者。此外,编码器/解码器模块1030可实现为系统1000的独立元件,或者可结合在处理器1010内作为本领域技术人员已知的硬件和软件的组合。
27.要加载到处理器1010或编码器/解码器1030上以执行本文档中所述的各个方面的
程序代码可存储在存储设备1040中,并且随后被加载到存储器1020上以供处理器1010执行。根据各种实施方案,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一者或多者可在本文档中所述过程的执行期间存储各个项目中的一个或多个项目。此类存储项目可包括但不限于输入视频、解码的视频或部分解码的视频、比特流、矩阵、变量以及处理等式、公式、运算和运算逻辑的中间或最终结果。
28.在一些实施方案中,处理器1010和/或编码器/解码器模块1030内部的存储器用于存储指令和提供工作存储器以用于在编码或解码期间需要的处理。然而,在其他实施方案中,处理设备外部的存储器(例如,处理设备可以是处理器1010或编码器/解码器模块1030)用于这些功能中的一个或多个功能。外部存储器可以是存储器1020和/或存储设备1040,例如动态易失性存储器和/或非易失性闪存存储器。在若干实施方案中,外部非易失性闪存存储器用于存储例如电视机的操作系统。在至少一个实施方案中,快速外部动态易失性存储器诸如ram用作视频编码和解码操作的工作存储器,诸如mpeg-2(mpeg是指运动图片专家组,mpeg-2也称为iso/iec13818,并且13818-1也称为h.222,13818-2也称为h.262)、hevc(hevc是指高效视频编码,也称为h.265和mpeg-h部分2)或vvc(通用视频编码,由联合视频专家小组(jvet)开发的新标准)。
29.对系统1000的元件的输入可通过如框1130中所示的各种输入设备提供。此类输入设备包括但不限于:(i)射频(rf)部分,其接收例如由广播器通过空中传输的rf信号;(ii)分量(comp)输入端子(或一组comp输入端子);(iii)通用串行总线(usb)输入端子;和/或(iv)高清晰度多媒体接口(hdmi)输入端子。图3中未示出的其他示例包括复合视频。
30.在各种实施方案中,框1130的输入设备具有如本领域已知的相关联的相应输入处理元件。例如,rf部分可与适用于以下的元件相关联:(i)选择所需的频率(也称为选择信号,或将信号频带限制到一个频带),(ii)下变频选择的信号,(iii)再次频带限制到更窄频带以选择(例如)在某些实施方案中可称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择所需的数据包流。各种实施方案的rf部分包括用于执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。rf部分可包括执行这些功能中的各种功能的调谐器,这些功能包括例如下变频接收信号至更低频率(例如,中频或近基带频率)或至基带。在一个机顶盒实施方案中,rf部分及其相关联的输入处理元件接收通过有线(例如,电缆)介质发射的rf信号,并且通过滤波、下变频和再次滤波至所需的频带来执行频率选择。各种实施方案重新布置上述(和其他)元件的顺序,移除这些元件中的一些元件,和/或添加执行类似或不同功能的其他元件。添加元件可包括在现有元件之间插入元件,例如,插入放大器和模数变换器。在各种实施方案中,rf部分包括天线。
31.此外,usb和/或hdmi端子可包括用于跨usb和/或hdmi连接将系统1000连接到其他电子设备的相应接口处理器。应当理解,输入处理(例如reed-solomon纠错)的各个方面可根据需要例如在单独的输入处理ic内或在处理器1010内实现。类似地,usb或hdmi接口处理的方面可根据需要在单独的接口ic内或在处理器1010内实现。将解调流、纠错流和解复用流提供给各种处理元件,包括例如处理器1010以及编码器/解码器1030,该处理元件与存储器和存储元件结合操作以根据需要处理数据流以呈现在输出设备上。
32.系统1000的各种元件可设置在集成外壳内。在集成外壳内,各种元件可使用合适
的连接布置1140(例如,如本领域已知的内部总线,包括ic间(i2c)总线、布线和印刷电路板)互连并且在其间发射数据。
33.系统1000包括能够经由通信信道1060与其他设备通信的通信接口1050。通信接口1050可包括但不限于被配置为通过通信信道1060发射和接收数据的收发器。通信接口1050可包括但不限于调制解调器或网卡,并且通信信道1060可例如在有线和/或无线介质内实现。
34.在各种实施方案中,使用无线网络诸如wi-fi网络(例如ieee 802.11(ieee是指电气和电子工程师协会))将数据流式发射或以其他方式提供给系统1000。这些实施方案的wi-fi信号通过适用于wi-fi通信的通信信道1060和通信接口1050接收。这些实施方案的通信信道1060通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以用于允许流式应用和其他云上通信。其他实施方案使用机顶盒向系统1000提供流式数据,该机顶盒通过输入块1130的hdmi连接递送数据。还有其他实施方案使用输入块1130的rf连接向系统1000提供流式数据。如上所述,各种实施方案以非流式的方式提供数据。此外,各种实施方案使用除了wi-fi以外的无线网络,例如蜂窝网络或蓝牙网络。
35.系统1000可将输出信号提供到各种输出设备,包括显示器1100、扬声器1110和其他外围设备1120。各种实施方案的显示器1100包括例如触摸屏显示器、有机发光二极管(oled)显示器、曲面显示器和/或可折叠显示器中的一者或多者。显示器1100可用于电视机、平板、笔记本、蜂窝电话(移动电话)或其他设备。显示器1100还可与其他部件集成在一起(例如,如在智能电话中),或者是单独的(例如,笔记本电脑的外部监视器)。在实施方案的各种示例中,其他外围设备1120包括独立数字视频光盘(或数字多功能光盘,两个术语都是dvr)、光盘播放器、立体声系统和/或照明系统中的一者或多者。各种实施方案使用提供基于系统1000的输出的功能的一个或多个外围设备1120。例如,盘播放器执行播放系统1000的输出的功能。
36.在各种实施方案中,控制信号使用诸如av.link、消费电子产品控制(cec)或其他通信协议的信令在系统1000与显示器1100、扬声器1110或其他外围设备1120之间传送,该其他通信协议使得能够在有或没有用户干预的情况下进行设备到设备控制。输出设备可通过相应接口1070、1080和1090经由专用连接通信地耦接到系统1000。另选地,输出设备可使用通信信道1060经由通信接口1050连接到系统1000。显示器1100和扬声器1110可与电子设备(诸如例如,电视机)中的系统1000的其他部件集成在单个单元中。在各种实施方案中,显示接口1070包括显示驱动器,诸如例如定时控制器(t con)芯片。
37.另选地,如果输入1130的rf部分是单独机顶盒的一部分,则显示器1100和扬声器1110可选地与其他部件中的一个或多个部件分开。在显示器1100和扬声器1110为外部部件的各种实施方案中,输出信号可经由专用输出连接(包括例如hdmi端口、usb端口或comp输出)提供。
38.这些实施方案可由处理器1010或由硬件或由硬件和软件的组合实现的计算机软件执行。作为非限制性示例,这些实施方案可由一个或多个集成电路实现。作为非限制性示例,存储器1020可以是适合于技术环境的任意类型,并且可使用任何适当的数据存储技术实现,
39.诸如光学存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可
移动存储器。作为非限制性示例,处理器1010可以是适合于技术环境的任意类型,并且可涵盖微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一者或多者。
40.本发明的技术领域涉及视频压缩方案的量化步骤。
41.常规视频编码系统在逆量化过程中使用量化矩阵,在该逆量化过程中经编码的块频率-经变换系数通过当前量化步骤进行缩放并通过量化矩阵(qm)进行进一步缩放,例如如下:
42.d[x][y]=clip3(coeffmin,coeffmax,((transcoefflevel[xtby][ytby][cidx][x][y]*m[x][y]*levelscale[qp%6]《《(qp/6))+(1《《(bdshift-1)))》》bdshift)
[0043]
其中:
[0044]
·
transcoefflevel[

]是当前块的由其空间坐标xtby、ytby和其分量索引cidx识别的经变换系数绝对值。
[0045]
·
x和y是水平/垂直频率索引。
[0046]
·
qp是当前量化参数。
[0047]
·
乘以levelscale[qp%6]和左偏移(qp/6)等同于乘以量化步骤qstep=(levelscale[qp%6]《《(qp/6))
[0048]
·
m[

][

]是二维量化矩阵
[0049]
·
bdshift是用于考虑图像样本位深度的附加缩放因数。项(1《《(bdshift-1))用于四舍五入到最接近的整数。
[0050]
·
d[

]是所得逆量化的经变换系数绝对值
[0051]
在hevc视频编码系统的示例中,在表1中示出的语法用于传输量化矩阵。
[0052][0053]
表1
[0054]
在该上下文中:
[0055]
·
针对每个变换大小(sizeid)指定不同矩阵
[0056]
·
针对给定变换大小,指定6个矩阵,用于帧内/帧间编码和y/cb/cr分量
[0057]
·
矩阵可以是下列中的任一种矩阵
[0058]
ο相同大小的先前传输的矩阵的副本,如果scaling_list_pred_mode_flag为零(参考项matrixid获得为matrixid-scaling_list_pred_matrix_id_delta)
[0059]
ο标准中指定的默认值的副本(如果scaling_list_pred_mode_flag和scaling_list_pred_matrix_id_delta都为零)
[0060]
ο使用exp-golomb熵编码,按右上对角线扫描顺序,在dpcm编码模式中完全指定。
[0061]
·
针对大于8x8的块大小,仅传输8x8系数以发信号通知量化矩阵,以便节省经编码的位。然后使用zero-hold(即,repetition)对系数(除了显式传输的dc系数之外)进行插值。
[0062]
在vvc视频编码系统的示例中,由于块大小的数量较大,需要更多的量化矩阵。
[0063]
常规地,qm由两个参数(matrixid和sizeid)标识。这在以下两个表中示出。表2示出了在vvc草案6的示例中使用的块大小标识符。
[0064]
亮度色度sizeid
‑‑
0-2
×
214
×
44
×
428
×
88
×
8316
×
1616
×
16432
×
3232
×
32564
×
64-6
[0065]
表2
[0066]
应注意,在vvc草案6的该示例中,mode_inter qm也用于mode_ibc(帧内块复制)。
[0067]
表3示出了在该示例中使用的量化矩阵标识符。
[0068]
cupredmodecidx(颜色分量)matrixidmode_intra0(y)0mode_intra1(cb)1mode_intra2(cr)2mode_inter0(y)3mode_inter1(cb)4mode_inter2(cr)5
[0069]
表3
[0070]
表4中示出了两个标识符(matrixid、sizeid)的组合。
[0071][0072]
表4
[0073]
针对大于8x8的块大小,仅传输8x8系数和dc系数。使用zero-hold插值来重构正确大小的qm。例如,针对16x16块,每个系数在两个方向上重复两次,然后将dc系数替换为传输的系数。
[0074]
针对矩形块,针对qm选择而保留的大小(sizeid)是较大的尺寸,即最大宽度和高度。例如,针对4x16块,选择16x16块大小的qm。然后,重构的16x16矩阵用因数4进行垂直抽取,以获得最终的4x16量化矩阵(即,跳过4行中的3行)。
[0075]
vvc草案6语义章节的示例中的相关文本如下所示,其中qm选择被加下划线:
[0076]
对于具有矩形大小的量化矩阵,五维阵列scalingfactor[wid][hid][matrixid][x][y](其中wid=0..6,hid=0..6,matrixid=0..5,x=0..(1《《wid)-1,y=0..(1《《hid)-1并且wid!=hid)针对大小(1《《wid)x(1《《hid)指定缩放因子阵列。通过使用scalinglist[maxsizeid][matrixid][i](其中maxsizeid=max(wid,hid))生成scalingfactor[wid][hid][matrixid][x][y]的元素,如下:
[0077][0078]
对于以下情况,我们把给定系列的块大小(方形或矩形)的qm称为size-n,相对于
sizeid和方形块大小,其用于:例如,针对块大小16x16或16x4,qm被标识为size-16(vvc草案6中为sizeid 4)。符号size-n用于区分确切的块形状,以及发信号通知的qm系数(限制为8x8,如表4中所示)的数量。
[0079]
此外,在vvc草案6的示例中,针对size-64,不传输右下象限的qm系数(这些系数被推断为0,其在下面被称为“zero-out”)。这在语法scaling_list_data中通过条件“x》=4&&y》=4”实现。这避免传输变换/量化过程不使用的qm系数:实际上,在vvc中,针对在任何维度上大于32的变换块大小(64xn,nx64,其中n《=64),具有大于或等于32的x/y频率坐标的任何经变换系数不被传输并且不被推断为零,因此不需要量化矩阵系数用于量化该系数。
[0080]
图4示出了将变换系数推断为零的示例。在该图中,阴影线区域对应于在水平方向(左侧图片)和垂直方向(右侧图片)推断为零的变换系数。
[0081]
jvet-o0223和ep申请19305802.1中已经提出了对qm语法和预测的修改。本公开中还考虑了该替代技术。
[0082]
在jvet-o0223中,qm按从大到小的顺序进行传输,并允许从所有先前传输的qm(包括预期来自较大块大小的qm)中预测。这里的预测意指复制或抽取(如果参考项较大)。这利用了相同类型的qm(y/cb/cr、intra/inter)之间的相似性,但旨在针对不同的块大小。
[0083]
由jvet-o0223提出的qm索引matrixid是大小标识符sizeid(表5中示出)与类型标识符matrixtypeid(表6中示出)的复合体,这些标识符使用以下等式1-2进行组合,从而得到在表7中示出的唯一标识符matrixid。
[0084]
matrixid=6*sizeid+matrixtypeid
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-2)
[0085]
亮度色度sizeid64
×
6432
×
32032
×
3216
×
16116
×
168
×
828
×
84
×
434
×
42
×
24
[0086]
表5
[0087]
cupredmodecidx(颜色分量)matrixtypeidmode_intra0(y)0mode_inter0(y)1mode_intra1(cb)2mode_inter1(cb)3mode_intra2(cr)4mode_inter2(cr)5
[0088]
表6
[0089]
[0090][0091]
表7
[0092]
如通过表8中的下划线文本所突出显示,修改语法。
[0093][0094]
表8
[0095]
如在称为“缩放矩阵推导过程”的单独章节中所述,执行给定变换块的qm选择和对块大小的适配:
[0096]
·
qm的选择基于tu的最大尺寸,如以下等式所示,其中blkwidth和blkheight是当前变换块宽度和高度,cidx是分量索引(0用于亮度),subwidthc和subheightc是水平方向和垂直方向上的色度的抽取因数,并且predmode是块预测模式。相关部分被加下划线:
[0097]
matrixid=6*sizeid+matrixtypeid
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-2)
[0098]
其中log2tuwidth=log2(blkwidth)+((cidx》0)?log2(subwidthc):0),
[0099]
log2tuheight=log2(blkheight)+((cidx》0)?log2(subheightc):0),
[0100]
sizeid=6

max(log2tuwidth,log2tuheight)并且
[0101]
matrixtypeid=(2*cidx+(predmode==mode_intra?0:1))
[0102]
·
然后通过在扫描所选择的qm时将适当的位移位应用到x/y坐标来执行对块大小的适配,如以下等式所示,其中scalingmatrix[matrixid]是所选择的qm,log2matrixsize是scalingmatrix[matrixid]方形阵列的大小的log2,并且m[][]是与当前块大小匹配的推导出的量化矩阵:
[0103]
m[x][y]=scalingmatrix[matrixid][i][j]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-3)
[0104]
其中i=(x《《log2matrixsize)》》log2(blkwidth),并且
[0105]
j=(y《《log2matrixsize)》》log2(blkheight))
[0106]
下文描述的实施方案已经在考虑前述内容的情况下进行了设计。图1的编码器100、图2的解码器200和图3的系统1000被适配为实现下面描述的实施方案中的至少一个实施方案,并且更具体地,实现编码器100的量化元件130和逆量化元件140以及编码器200的逆量化元件240。
[0107]
在至少一个实施方案中,基于块区域而不是基于块大小尺寸(宽度或高度)的最大值来确定量化矩阵。针对每个块大小具有特定qm实际上允许对图像内容进行适配,并且因此产生更好的视觉质量。实际上,选择相等面积的qm比选择矩形块的最大尺寸的qm更好地匹配“大小”的理念。这遵循以下理念:相等面积块比具有相等最大尺寸的块有更好的相似性(即,16x4比16x16更相似于8x8)。这里的“大小”被理解为块的“区域”,但也可以指“样本计数”或“像素计数”。本文引入的原理也将适用于此类情况。
[0108]
在至少一个实施方案中,基于块区域标识符来选择用于视频编码或解码的量化矩阵,该块区域标识符的值被确定为块宽度和高度的log2的平均值的整数值。
[0109]
sizeid=(log2(width)+log2(height))/2
[0110]
例如,16x4块将给出sizeid=3,正如8x8块或4x16块,其具有相同数量的样本。类似地,64x4块将给出等于4的sizeid,如16x16块或32x8块,其具有相同数量的样本。表9示出了根据至少该实施方案的块大小与sizeid之间的对应关系。可基于相同原理使用对应关系的其他示例。
[0111][0112]
表9
[0113]
可以将偏移应用于表9,以便改变sizeid的值的范围。例如,偏移-2将产生从0开始的值的范围。
[0114]
图5示出了用于编码的量化过程的示例性实施方案,其中基于块区域确定量化矩阵。该过程500例如在图1的编码器100的量化模块130中实现。在步骤510中,访问块信息。此类信息至少包括块的尺寸(宽度和高度)和待编码的经变换系数。
[0115]
在步骤520中,确定表示块区域的值。换句话说,确定在表2的选择中使用的sizeid。允许确定表示块的表面(或表示样本的数量(等同))的值的多个实施方案可用于该步骤。例如,在至少一个实施方案中,sizeid被确定为如上文所阐述的块宽度和高度的log2的平均值,并且基于来自表(诸如上文所示的表4)的确定的sizeid来选择对应的量化矩阵,该表将sizeid与量化矩阵相关联。
[0116]
在一个示例性实施方案中,该值选择如下:sizeid=sqrt(宽度x高度)。在其他示例中,基于块的细分部分的数量(类似于量化组)或使用对样本数量的一系列比较或使用表或使用值的范围,来选择该值。
[0117]
在步骤530中,基于表示块区域的值来选择量化矩阵。然后,在步骤540中,使用所选择的量化矩阵来执行块信息的量化。然后此外,在编码过程中,对量化的变换系数进行编码。
[0118]
图6示出了用于解码的逆量化过程的示例性实施方案,其中基于块区域确定逆量化矩阵。该过程600例如在图2的编码器200的逆量化模块240中实现。在步骤610中,访问块信息。此类信息至少包括块的尺寸(宽度和高度)和待解码的经编码的系数。在步骤620中,确定表示块区域的值。换句话说,确定在表2的选择中使用的sizeid。上文针对步骤520所描述的不同实施方案也适用于步骤620。在步骤630中,基于表示块区域的值来选择量化矩阵。然后,在步骤640中,使用所选择的量化矩阵来执行块信息的逆量化。
[0119]
当应用于vvc或jvet-o0223时,块大小标识符的该选择提供更好的视觉质量,同时在规范中需要最小的更改和复杂性。此外,使用log2是非常方便的,因为其可以用于位移位,如下所示。
[0120]
在至少第一变体实施方案中,该原理应用于vvc。在此类上下文中,在vvc草案6的语义章节中发现并且在上面引入的文本进行如下更改。更改或添加的文本被加下划线,同时移除被移除的文本,并且在本文档中不再可见。
[0121]
对于具有矩形大小的量化矩阵,五维阵列scalingfactor[wid][hid][matrixid][x][y](其中wid=0..6,hid=0..6,matrixid=0..5,
[0122]
x=0..(1《《wid)-1,y=0..(1《《hid)-1并且wid!=hid)针对大小(1《《wid)x(1《《hid)指定缩放因子阵列。通过使用scalinglist[avgsizeid][matrixid][i](其中avgsizeid=(wid+hid+1)/2)生成scalingfactor[wid][hid][matrixid][x][y]的元素,如下:
[0123]
k=min(avgsizeid,3),
[0124]
scalingfactor[wid][hid][matrixid][x][y]=
[0125]
scalinglist[avgsizeid][matrixid]
[0126]
[raster2diagscanpos[k][k][(((y《《k)》》hid)《《k)+((x《《k)》》wid)]]
[0127]
该示例性实施方案使用表示块区域的值作为块宽度和高度的log2的平均值,但是可以使用允许确定表示块的表面或表示样本的数量的值的任何其他实施方案,诸如上文针对图5的步骤520所述的那些。
[0128]
在至少第二变体实施方案中,该原理应用于jvet-o0223。在此类上下文中,基于块类型和大小执行qm的选择的方程(在章节“缩放矩阵推导过程”中发现并在上文引入)如下进行修改。更改或添加的文本被加下划线,而移除的文本被删除。
[0129]
matrixid=6*sizeid+matrixtypeid(错误!文档中没有指定风格的文本。-1)
[0130]
其中log2tuwidth=log2(blkwidth)+((cidx》0)?log2(subwidthc):0),
[0131]
log2tuheight=log2(blkheight)+((cidx》0)?log2(subheightc):0),
[0132]
sizeid=6

(log2tuwidth+log2tuheight+1)/2并且
[0133]
matrixtypeid=(2*cidx+(predmode==mode_intra?0:1))
[0134]
应注意,修改的增量“+1”用于四舍五入。这使得更可能选中更大的qm,出于数据保留原因这是优选的。实际上,这减少了系数重复的发生,这意味着保留了更多的重要系数。例如,对于16x2的块,(log2(16)+log2(2))/2=2。因此,选择4x4系数的矩阵(如表2所示),
但需要在块的宽度中重复4次。只有4个不同的系数。当使用具有增量的版本时,(log2(16)+log2(2)+1)/2=3,并且这里选择了8x8的矩阵。在该情况下,仅有两次重复并且有8个不同的系数,因此,改进了该解决方案。
[0135]
本技术描述了各个方面,包括工具、特征、实施方案、模型、方法等。具体描述了这些方面中的许多方面,
[0136]
并且至少示出个体特性,通常以可能听起来有限的方式描述。然而,这是为了描述清楚,并不限制这些方面的应用或范围。实际上,所有不同的方面可组合和互换以提供进一步的方面。此外,这些方面也可与先前提交中描述的方面组合和互换。
[0137]
本技术中描述和设想的方面可以许多不同的形式实现。图1、图2和图3提供了一些实施方案,但是设想了其他实施方案,并且这些图的讨论不限制实施方式的广度。这些方面中的至少一个方面通常涉及视频编码和解码,并且至少一个其他方面通常涉及发射生成或编码的比特流。这些和其他方面可实现为方法、装置、其上存储有用于根据所述方法中任一种对视频数据编码或解码的指令的计算机可读存储介质,和/或其上存储有根据所述方法中任一种生成的比特流的计算机可读存储介质。
[0138]
本文描述了各种方法,并且每种方法包括用于实现所述方法的一个或多个步骤或动作。除非正确操作方法需要特定顺序的步骤或动作,否则可修改或组合特定步骤和/或动作的顺序和/或用途。
[0139]
本技术中所述的各种方法和其他方面可用于修改模块,例如编码器100的量化元件130和逆量化元件140以及编码器200的逆量化元件240,如图1和图2所示。此外,本发明方面不限于vvc或hevc,并且可应用于例如其他标准和推荐(无论是预先存在的还是未来开发的)以及任何此类标准和推荐的扩展(包括vvc和hevc)。除非另外指明或技术上排除在外,否则本技术中所述的方面可单独或组合使用。
[0140]
在本技术中使用各种数值。具体值是为了示例目的,并且所述方面不限于这些具体值。
[0141]
各种具体实施参与解码。如本技术中所用,“解码”可涵盖例如对所接收的编码序列执行的过程的全部或部分,以便产生适于显示的最终输出。在各种实施方案中,此类过程包括通常由解码器执行的过程中的一个或多个过程。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的解码器执行的过程。
[0142]
作为进一步的示例,在一个实施方案中,“解码”仅是指熵解码,在另一个实施方案中,“解码”仅是指差分解码,并且在又一个实施方案中,“解码”是指熵解码和差分解码的组合。短语“解码过程”是具体地指代操作的子集还是广义地指代更广泛的解码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。
[0143]
各种具体实施参与编码。以与上面关于“解码”的讨论类似的方式,如在本技术中使用的“编码”可涵盖例如对输入视频序列执行以便产生编码比特流的全部或部分过程。在各种实施方案中,此类过程包括通常由编码器执行的过程中的一个或多个过程。在各种实施方案中,此类过程还包括或另选地包括由本应用中所述的各种具体实施的编码器执行的过程。
[0144]
作为进一步的示例,在一个实施方案中,“编码”仅是指熵编码,在另一个实施方案中,“编码”仅是指差分编码,并且在又一个实施方案中,“编码”是指差分编码和熵编码的组
合。短语“编码过程”是具体地指代操作的子集还是广义地指代更广泛的编码过程基于具体描述的上下文将是清楚的,并且据信将被本领域的技术人员很好地理解。
[0145]
注意,本文所用的语法元素是描述性术语。因此,它们不排除使用其他语法元素名称。
[0146]
当附图呈现为流程图时,应当理解,其还提供了对应装置的框图。类似地,当附图呈现为框图时,应当理解,其还提供了对应的方法/过程的流程图。
[0147]
各种实施方案是指率失真优化。具体地,在编码过程期间,通常考虑速率和失真之间的平衡或权衡,这常常考虑到计算复杂性的约束。率失真优化通常表述为最小化率失真函数,该率失真函数是速率和失真的加权和。存在不同的方法解决率失真优化问题。例如,这些方法可基于对所有编码选项(包括所有考虑的模式或编码参数值)的广泛测试,并且完整评估其编码成本以及重构信号在编码和解码之后的相关失真。更快的方法还可用于降低编码复杂性,特别是对基于预测或预测残差信号而不是重构的残差信号的近似失真的计算。也可使用这两种方法的混合,诸如通过针对可能的编码选项中的仅一些编码选项使用近似失真,而针对其他编码选项使用完全失真。其他方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中任一种来执行优化,但是优化不一定是对编码成本和相关失真两者的完整评估。
[0148]
本技术描述了各个方面,包括工具、特征、实施方案、模型、方法等。具体描述了这些方面中的许多方面,
[0149]
并且至少示出个体特性,通常以可能听起来有限的方式描述。然而,这是为了描述清楚,并不限制这些方面的应用或范围。实际上,所有不同的方面可组合和互换以提供进一步的方面。此外,这些方面也可与先前提交中描述的方面组合和互换。
[0150]
本文所述的具体实施和方面可在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法讨论),讨论的特征的具体实施也可以其他形式(例如,装置或程序)实现。装置可在例如适当的硬件、软件和固件中实现。该方法可在例如处理器(一般是指处理设备)中实现,
[0151]
该处理器包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、平板电脑、智能电话、蜂窝电话、便携式/个人数字助理以及便于最终用户之间信息通信的其他设备。
[0152]
提及“一个实施方案”或“实施方案”或“一个具体实施”或“具体实施”以及它们的其他变型,意味着结合实施方案描述的特定的特征、结构、特性等包括在至少一个实施方案中。因此,短语“在一个实施方案中”或“在实施方案中”或“在一个具体实施中”或“在具体实施中”的出现以及出现在本技术通篇的各个地方的任何其他变型不一定都是指相同的实施方案。
[0153]
另外,本技术可涉及“确定”各种信息。确定信息可包括例如估计信息、计算信息、预测信息或从存储器检索信息中的一者或多者。
[0154]
此外,本技术可涉及“访问”各种信息。访问信息可包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一者或多者。
[0155]
另外,本技术可涉及“接收”各种信息。与“访问”一样,接收旨在为广义的术语。接
收信息可包括例如访问信息或检索信息(例如,从存储器)中的一者或多者。此外,在诸如例如存储信息、处理信息、发射信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,“接收”通常以一种方式或另一种方式参与。
[0156]
在本技术中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”、“图片”、“帧”、“切片”和“瓦片”可以互换使用。通常,但不一定,术语“重构”在编码端使用,而“解码”在解码端使用。
[0157]
应当理解,例如,在“a/b”、“a和/或b”以及“a和b中的至少一者”的情况下,使用以下“/”、“和/或”和“至少一种”中的任一种旨在涵盖仅选择第一列出的选项(a),或仅选择第二列出的选项(b),或选择两个选项(a和b)。作为进一步的示例,在“a、b和/或c”和“a、b和c中的至少一者”的情况下,此类短语旨在涵盖仅选择第一列出的选项(a),或仅选择第二列出的选项(b),或仅选择第三列出的选项(c),或仅选择第一列出的选项和第二列出的选项(a和b),或仅选择第一列出的选项和第三列出的选项(a和c),或仅选择第二列出的选项和第三列出的选项(b和c),或选择所有三个选项(a和b和c)。如对于本领域和相关领域的普通技术人员显而易见的是,这可扩展到所列出的尽可能多的项目。
[0158]
而且,如本文所用,词语“发信号通知”是指(除了别的以外)向对应解码器指示某物。例如,在某些实施方案中,编码器发信号通知照明补偿参数中的特定一个参数。这样,在一个实施方案中,在编码器侧和解码器侧两者均使用相同的参数。因此,例如,编码器可将特定参数发射(显式信令)到解码器,使得解码器可使用相同的特定参数。相反,如果解码器已具有特定参数以及其他,则可在不发射(隐式信令)的情况下使用信令,以简单允许解码器知道和选择特定参数。通过避免发射任何实际功能,在各种实施方案中实现了位节省。应当理解,信令可以各种方式实现。例如,在各种实施方案中,使用一个或多个语法元素、标志等将信息发信号通知至对应解码器。虽然前面涉及词语“signal(发信号通知)”的动词形式,但是词语“signal(信号)”在本文也可用作名词。
[0159]
对于本领域的普通技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,可格式化信号以携带所述实施方案的比特流。可格式化此类信号例如为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对数据流编码并且用编码的数据流调制载体。信号携带的信息可以是例如模拟或数字信息。已知的是,信号可通过各种不同的有线或无线链路发射。信号可存储在处理器可读介质上。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1