用于通用视频编解码的无损模式的制作方法

文档序号:29466133发布日期:2022-04-02 03:25阅读:266来源:国知局
用于通用视频编解码的无损模式的制作方法

1.本公开属于视频压缩领域,并且至少一个实施例更具体地涉及用于通用视频编解码(versatile video coding,vvc)的无损模式。


背景技术:

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


技术实现要素:

3.在包括多个编解码工具的视频编解码系统中提出了无损编解码模式,其中一些编解码工具通过设计是有损的,一些编解码工具可以适于成为无损或近无损的。为了在这种视频编解码系统中启用无损模式,提出禁用通过设计有损的工具并且仅使用无损工具,以适配一些工具以启用无损编解码,并且适配一些工具以启用近无损编解码,使得可以在残差编解码之后应用二次无损编解码,从而提供无损编解码。
4.在特定实施例中,用于确定残差编解码类型的方法包括,在信息指示使用变换跳过残差编解码(transform skip residual coding)的情况下,获得表示特殊模式的标志,并且当表示特殊模式的标志为真时,确定必须使用常规残差编解码而不是应该使用的变换跳过残差编解码。
5.根据第一方面,一种用于确定残差编解码类型的方法包括,在信息指示使用变换跳过残差编解码的情况下,获得表示特殊模式的标志,并且当表示特殊模式的标志为真时,确定必须使用常规残差编解码而不是应该使用的变换跳过残差编解码。
6.根据第二方面,一种视频编码方法包括,对于视频块,根据第一方面的方法确定残差编解码的类型。
7.根据第三方面,一种视频解码方法包括,对于视频块,根据第一方面的方法确定残差编解码的类型。
8.根据第四方面,一种视频编码装置包括,编码器,该编码器被配置为根据第一方面的方法来确定残差编解码的类型。
9.根据第五方面,一种视频解码装置包括,解码器,该解码器被配置为根据第一方面的方法来确定残差编解码的类型。
10.本实施例的一个或多个实施例还提供了一种非暂时性计算机可读存储介质,其上存储有用于根据上述任何方法中的至少一部分对视频数据进行编码或解码的指令。一个或多个实施例还提供了一种计算机程序产品,包括用于执行上述任何方法中的至少一部分的
指令。
附图说明
11.图1a示出了根据一实施例的视频编码器的框图。
12.图1b示出了根据一实施例的视频解码器的框图。
13.图2示出了其中实现了各种方面和实施例的系统的示例的框图。
14.图3a和3b示出了与角度帧内预测相关的符号。
15.图4示出了每个sbt位置的水平和竖直变换。
16.图5从解码器的角度示出了lmcs架构。
17.图6示出了二次变换的应用。
18.图7示出了简化二次变换(rst)。
19.图8示出了正向和反向简化变换。
20.图9示出了利用16x48矩阵的正向rst8x8处理的示例。
21.图10a和10b示出了根据至少一个实施例的示例流程图。
22.图11示出了用于亮度整形(reshaping)的正向然后反向函数的应用。
23.图12示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当变换跳过对于无损编解码块被推断为真时的残差编解码的实施例的示例流程图。
24.图13示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当变换跳过对于无损编解码块被推断为假时的残差编解码的实施例的示例流程图。
25.图14示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当对于无损编解码块总是解析变换跳过时的残差编解码的实施例的示例流程图。
26.图15示出了二次无损编解码的简化的框图的示例。
27.图16示出了在使用区域级信令时对region_transquant_bypass_flag和split_cu_flag的解析处理的示例流程图。
28.图17示出了在双树情况下对亮度和色度的不同分割。
具体实施方式
29.各种实施例涉及一种用于图像块的采样的预测值的后处理方法,该值是根据帧内预测角度预测的,其中采样的值在该预测之后被修改,使得其基于左参考采样的值和所获得的采样的预测值之间的差的加权来确定,其中左参考采样是基于帧内预测角度确定的。提出了基于该后处理方法的编码方法、解码方法、编码装置、解码装置。
30.此外,尽管描述了与vvc(通用视频编解码)或hevc(高效视频编解码)规范的特定草案相关的原理,但是本方面不限于vvc或hevc,并且可以应用于例如其他标准和推荐,无论是现有的还是未来开发的,以及任何这种标准和推荐(包括vvc和hevc)的扩展。除非另有说明,或者技术上被排除,否则本技术中描述的各方面可以单独使用或者组合使用。
31.图1a示出了视频编码器100。预期了该编码器100的变型,但是为了清楚起见,下面描述了编码器100而未描述所有预期的变型。在经编码之前,视频序列可以经过预编码处理(101),例如,对输入颜色画面应用颜色变换(例如,从rgb 4:4:4转换为ycbcr 4:2:0),或者执行输入画面分量的重新映射,以便获得对压缩更有弹性的信号分布(例如使用颜色分量
之一的直方图均衡)。可将元数据与预处理相关联,并将元数据附接到比特流。
32.在编码器100中,由编码器元件对画面进行编码,如下所述。例如以cu为单位对要编码的画面进行分割(102)和处理。使用例如帧内或者帧间模式对每个单元进行编码。当以帧内模式对单元进行编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器判断(105)使用帧内模式或帧间模式中的哪一个用于对单元进行编码,并通过例如预测模式标志来指示该帧内/帧间判断。例如,通过从原始图像块中减去(110)预测块,来计算预测残差。
33.然后对预测残差进行变换(125)和量化(130)。对经量化的变换系数、以及运动矢量和其他语法元素进行熵编解码(145)以输出比特流。编码器可以跳过变换,并对未变换的残差信号直接应用量化。编码器可以绕过变换和量化,即,直接对残差进行编解码,而不应用变换或量化处理。
34.编码器对已编码的块进行解码,以为进一步的预测提供参考。对量化的变换系数进行去量化(140)并进行逆变换(150)以解码预测残差。在组合(155)已解码的预测残差和已预测块的情况下,重构图像块。环内滤波器(165)被应用于重构的画面,以执行例如去块/sao(采样自适应偏移)、自适应环路滤波器(alf)滤波以减少编码伪影。滤波后的图像存储在参考画面缓冲器(180)中。
35.图1b示出了视频解码器200的框图。在解码器200中,由解码器元件对比特流进行解码,如下所述。视频解码器200通常执行与图1b中描述的编码遍历相反(reciprocal)的解码遍历。编码器100通常还执行视频解码作为编码视频数据的一部分。特别地,解码器的输入包括视频比特流,其可以由视频编码器100生成。首先对该比特流进行熵解码(230)以获得变换系数、运动矢量和其他编解码信息。画面分割信息指示如何对画面进行分割。因此,解码器可以根据经解码的画面分割信息来对画面进行划分(235)。对变换系数进行去量化(240)和逆变换(250)以解码预测残差。通过组合(255)经解码的预测残差和预测块,重构图像块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)中获得(270)预测块。对经重构的图像应用环内滤波器(265)。将经滤波的图像存储在参考画面缓冲器(280)中。
36.经解码的画面可以进一步经过后解码处理(285),例如逆颜色变换(例如,从ycbcr 4:2:0转换为rgb 4:4:4)、或执行在预编码处理(101)中所执行的重新映射处理的逆的逆重新映射。后解码处理可以使用从预编码处理中导出并在比特流中用信号通知的元数据。
37.图2示出了其中实现了各个方面和实施例的系统的示例的框图。系统1000可以被实施为包括以下描述的各种组件的设备,并且被配置为执行本文档中描述的各方面中的一个或多个。这种设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器、以及服务器。系统1000的元件可以单独或组合地实施在单个集成电路(ic)、多个ic、和/或分立组件中。例如,在至少一个实施例中,系统1000的处理和编码器/解码器元件被分布在多个ic和/或分立组件上。在各种实施例中,系统1000经由例如通信总线或通过专用输入和/或输出端口来通信地耦合到一个或多个其他系统或其他电子设备。在各种实施例中,系统1000被配置为实现本文档中描述的各方面中的一个或多个。
38.系统1000包括至少一个处理器1010,其被配置为执行加载在其中的用于实现例如本文档中描述的各个方面的指令。处理器1010可以包括嵌入式存储器、输入输出接口、和本
领域已知的各种其他电路。系统1000包括至少一个存储器1020(例如,易失性存储器件和/或非易失性存储器件)。系统1000包括存储设备1040,该存储设备1040可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(eeprom)、只读存储器(rom)、可编程只读存储器(prom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备、附接存储设备(包括可拆卸和不可拆卸存储设备)和/或网络可访问存储设备。
39.系统1000包括编码器/解码器模块1030,其被配置为例如处理数据以提供编码的视频或解码的视频,并且编码器/解码器模块1030可以包括其自己的处理器和存储器。编码器/解码器模块1030表示可以被包括在设备中以执行编码和/或解码功能的(多个)模块。如已知的,设备可以包括编码和解码模块中的一个或两者。此外,编码器/解码器模块1030可以被实现为系统1000的分离元件,或者可以作为本领域技术人员已知的硬件和软件的组合被合并在处理器1010内。
40.要加载到处理器1010或编码器/解码器1030上以执行本文档中描述的各个方面的程序代码可以被存储在存储设备1040中,并随后加载到存储器1020上以供处理器1010运行。根据各种实施例,处理器1010、存储器1020、存储设备1040和编码器/解码器模块1030中的一个或多个可以在执行本文档中描述的处理期间存储各种项目中的一个或多个。这种存储的项目可以包括但不限于输入视频、解码的视频或解码的视频中的部分、比特流、矩阵、变量、以及来自等式、公式、运算和运算逻辑的处理的中间或最终结果。
41.在一些实施例中,处理器1010和/或编码器/解码器模块1030内部的存储器用于存储指令,并为编码或解码期间所需的处理提供工作存储器。然而,在其他实施例中,可以使用处理设备(例如,处理设备可以是处理器1010或编码器/解码器模块1030)外部的存储器用于这些功能中的一个或多个。外部存储器可以是存储器1020和/或存储设备1040,例如动态易失性存储器和/或非易失性闪存。在几个实施例中,使用外部非易失性闪存来存储例如电视的操作系统。在至少一个实施例中,诸如ram的快速外部动态易失性存储器被用作用于视频编解码和解码操作的工作存储器,诸如用于mpeg-2(mpeg是指动态画面专家组,mpeg-2也被称为iso/iec 13818,而13818-1也被称为h.222,并且13818-2也被称为h.262)、hevc(hevc是指高效视频编解码,也被称为h.265和mpeg-h第2部分)、或vvc(通用视频编解码,联合视频专家小组jvet正在开发的新标准)。
42.如块1130中所示,可以通过各种输入设备提供到系统1000的元件的输入。这种输入设备包括但不限于:(i)接收例如由广播者通过空中发送的射频(rf)信号的rf部分,(ii)组件(comp)输入端(或comp输入端集合),(iii)通用串行总线(usb)输入端,和/或(iv)高清晰度多媒体接口(hdmi)输入端。图18中未示出的其他示例包括复合视频。
43.在各种实施例中,块1130的输入设备具有相关联的相应的本领域已知的输入处理元件。例如,rf部分可以与适用于以下操作的元件相关联:(i)选择期望的频率(也称为选择信号,或者将信号频带限制到频带),(ii)下变换所选择的信号,(iii)再次频带限制到较窄的频带,以选择(例如)信号频带(在某些实施例中可以称为信道),(iv)解调经下变换和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据分组的流。各种实施例的rf部分包括执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、
信道选择器、滤波器、下变换器、解调器、误差校正器、和解复用器。rf部分可以包括执行这些功能中的各种功能的调谐器,这些功能包括例如将接收的信号下变换至较低频率(例如,中频或近基带频率)或基带。在一个机顶盒实施例中,rf部分及其相关联的输入处理元件接收通过有线(例如,电缆)介质发送的rf信号,并通过滤波、下变换和再次滤波至期望的频带来执行频率选择。各种实施例重新排列上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同的功能的其他元件。添加元件可以包括在现有元件之间插入元件,诸如,例如,插入放大器和模数转换器。在各种实施例中,rf部分包括天线。
44.此外,usb和/或hdmi终端可以包括相应的接口处理器,以用于通过usb和/或hdmi连接将系统1000连接至其他电子设备。应当理解,可以根据需要在例如单独的输入处理ic内或处理器1010内实现输入处理的各个方面,例如里德-所罗门纠错。类似地,可以根据需要在单独的接口ic内或处理器1010内实现usb或hdmi接口处理的各方面。将经解调、纠错和解复用的流提供至各种处理元件,包括例如处理器1010、和编码器/解码器1030,其与存储器和存储元件组合操作以根据需要处理数据流以用于在输出设备上呈现。
45.可以将系统1000的各种元件提供在集成外壳内。在集成外壳内,各种元件可以使用合适的连接布置1140(例如,本领域已知的内部总线,包括ic间(i2c)总线、布线、和印刷电路板)互连并在其间发送数据。
46.系统1000包括实现经由通信信道1060与其他设备通信的通信接口1050。通信接口1050可以包括但不限于被配置为通过通信信道1060发送和接收数据的收发器。通信接口1050可以包括但不限于调制解调器或网卡,并且通信信道1060可以在例如有线和/或无线介质内实现。
47.在各种实施例中,使用诸如wi-fi网络的无线网络(例如ieee 802.11(ieee指电气和电子工程师协会)),将数据流式传输或以其他方式提供至系统1000。这些实施例的wi-fi信号是通过适于wi-fi通信的通信信道1060和通信接口1050来接收的。这些实施例的通信信道1060通常被连接至提供对包括互联网的外部网络的接入的接入点或路由器,以用于允许流式传输的应用和其他过顶通信(over-the-top communication)。其他实施例使用机顶盒向系统1000提供流式传输的数据,机顶盒通过输入块1130的hdmi连接传送数据。还有其他实施例使用输入块1130的rf连接向系统1000提供流式传输的数据。如上所述,各种实施例以非流式传输的方式提供数据。此外,各种实施例使用除wi-fi外的无线网络,例如蜂窝网络或蓝牙网络。
48.系统1000可以向各种输出设备提供输出信号,输出设备包括显示器1100、扬声器1110和其他外围设备1120。各种实施例的显示器1100包括例如触摸屏显示器、有机发光二极管(oled)显示器、弯曲显示器、和/或可折叠显示器中的一个或多个。显示器1100可以用于电视机、平板计算机、膝上型计算机、蜂窝电话(移动电话)、或其他设备。显示器1100也可以与其他组件集成(例如,如在智能电话中),或者分离(例如,用于膝上型计算机的外部监视器)。在实施例的各种示例中,其他外围设备1120包括独立运行的数字视频盘(或数字多功能盘)(对于两个术语均为dvr)、盘播放器、立体声系统、和/或照明系统中的一个或多个。各种实施例使用基于系统1000的输出提供功能的一个或多个外围设备1120。例如,盘播放器执行播放系统1000的输出的功能。
49.在各种实施例中,使用诸如av.link、消费电子控制(cec)、或在有或没有用户干预
的情况下实现设备到设备的控制的其他通信协议的信令来在系统1000和显示器1100、扬声器1110、或其他外围设备1120之间通信控制信号。输出设备可以通过相应的接口1070、1080和1090经由专用的连接通信地耦合至系统1000。可替代地,输出设备可以使用通信信道1060经由通信接口1050连接至系统1000。在电子设备(诸如,例如,电视机)中,显示器1100和扬声器1110可以与系统1000的其他组件集成在单一单元中。在各种实施例中,显示接口1070包括显示驱动器,诸如,例如,时序控制器(t con)芯片。
50.显示器1100和扬声器1110可以可替代地与其他组件中的一个或多个分离,例如如果输入1130的rf部分是单独的机顶盒的部分。在显示器1100和扬声器1110是外部组件的各种实施例中,可以经由包括例如hdmi端口、usb端口、或comp输出的专用输出连接来提供输出信号。
51.这些实施例可以通过由处理器1010实现的计算机软件、或通过硬件、或通过硬件和软件的组合来实现。作为非限制性示例,实施例可以由一个或多个集成电路来实现。作为非限制性示例,存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,诸如光存储设备、磁存储设备、基于半导体的存储设备、固定存储器、和可移除存储器。作为非限制性示例,处理器1010可以是适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个。
52.无损模式在hevc是可用的。在这种模式下,变换和量化旁路(bypass)由cu语法结构的开始处的标志在cu级别处指示。如果旁路开启,则变换和量化器缩放操作被跳过,并且残差信号被直接编解码而没有任何降级。因此,这种模式实现了对编解码块的无损表示的完美重构。采样差如同其是量化的变换系数级别那样被编码,即,利用变换子块、系数扫描和最后有效系数信令来重新使用变换块编解码。这种模式可以例如对于图形内容的局部编解码是有用的,其中量化伪像可能是高度可见的或者完全不可容忍的。如果通常变换编解码的速率失真成本(通常在使用低量化参数时)恰好超过旁路编解码的速率成本,编码器也可以切换到该模式。对于以无损模式编解码的cu,后置滤波器被禁用。
53.如果在序列参数集(sps)中激活,pcm编解码可以在cu级别上被指示。如果对所考虑的cu有效,则不应用预测、量化和变换。相反,对应编解码块中的采样的采样值以在sps中配置的pcm采样比特深度被直接编解码到比特流中。pcm编解码的应用的粒度可以被配置在高端上的亮度编解码树块尺寸和32
×
32的最小值与低端上的最小亮度编解码块尺寸之间。如果编解码单元被以pcm模式编解码,则同一编解码树单元中其他编解码单元的尺寸不得小于pcm单元的尺寸。因为根据定义,pcm编解码实现对对应块的无损表示,所以为编解码单元的pcm编解码所花费的比特可以被认为是对cu进行编码所需的比特量的上限。因此,在基于变换的残差编解码的应用将超过该限制的情况下(例如对于异常嘈杂的内容),编码器可以切换到pcm编解码。
54.hevc的无损模式是使用画面参数集(pps)中编解码的transquant_bypass_enabled_flag标志激活的(见下表1)。该标志实现在cu级别处对cu_transquant_bypass_flag的编解码(表2)。cu_transquant_bypass_flag指定绕过量化、变换处理和环路滤波器。
55.表1:hevc中用于在画面级用信号通知无损编解码的pps语法
[0056][0057]
表2:hevc中用于无损编解码的编解码单元语法
[0058][0059][0060]
如果对于所有cu来说cu_transquant_bypass_flag为真,则可以对整个帧使用无损编解码,但也可能仅对一区域进行无损编解码。对于具有重叠的文本和图形的混合的内容与自然视频通常是这种情况。文本和图形区域可以无损编解码以最大化可读性,而自然内容可以以有损方式编解码。
[0061]
此外,由于量化按照定义是有损的,所以对于无损编解码是禁用的。在hevc中,变换处理(hevc中使用dct-2和dst-4)由于舍入运算而是有损的。如果重构的信号是无损的,则如去块滤波器和采样自适应偏移的后置滤波器是无用的。
[0062]
图3示出了用于pcm、无损和变换跳过模式的解码处理的简化框图的示例。解码处理300的输入是比特流。在步骤310中,从比特流中解码数据。特别地,这提供了量化的变换系数和变换类型。在步骤320中,逆量化被应用于量化的变换系数。在步骤330中,逆变换被应用于所得的变换系数。所得的残差在步骤350中被添加到来自步骤340的帧内或帧间预测的预测信号中。结果是重构的块。当在步骤305中选择了i_pcm模式时,采样值被直接解码而无需熵解码。当选择无损编解码模式时,跳过步骤320和330。当选择变换跳过模式时,跳过步骤330。
[0063]
在最近的通用视频编解码(vvc)测试模型4(vtm4)中,启用了高达64
×
64的大变换尺寸,这主要用于更高分辨率的视频,例如1080p和4k序列。对于尺寸(宽度或高度,或者宽度和高度两者)等于64的变换块,高频变换系数被归零,使得仅保留低频系数,因此丢失该信息。更准确地,该信息由于没有被编码在所得的比特流中而丢失,因此对解码器是不可用的。例如,对于m
×
n变换块,其中以m为块宽,并且n为块高,当m等于64时,仅保留变换系数的左侧32列。类似地,当n等于64时,仅保留变换系数的顶部32行。在这两个示例中,变换系数的剩余的32列或32行被丢失。当对大的块使用变换跳过模式时,使用整个块而不归零任何值。实际上,这包括设置变换的最大尺寸(设置为5),如下表3中示出的从当前vvc规范摘录的语法所示(相关行被设置为粗体)。因此,使用最大实际变换尺寸,例如在当前vvc规范中设置为32(2^5)。在下面该参数将被命名为“max_actual_transf_size”。
[0064]
表3
[0065][0066]
除了在hevc使用的dct-2之外,vvc还增加了用于帧间和帧内编解码块的残差编解码的多变换选择(mts)方案。新引入的变换矩阵是dst-7和dct-8。为了控制mts方案,在sps级别分别为帧内和帧间指定了单独的启用标志。当在sps级别启用mts时,cu级别的mts索引被用信号通知以指示在dct-2、dst-7和dct-8中用于cu的可分离变换对。mts仅适用于亮度。当满足以下条件时,cu级mts索引被用信号通知:宽度和高度都小于或等于32,并且cbf标志等于1。
[0067]
为了降低大尺寸dst-7和dct-8的复杂性,对于尺寸(宽度或高度,或者宽度和高度两者)等于32的dst-7和dct-8块,高频变换系数被归零。仅保留16x16低频区域内的系数。
[0068]
对变换跳过的块尺寸限制与mts的块尺寸限制相同,这规定当块宽度和高度都等于或小于32时,变换跳过适用于cu。
[0069]
对于cu_cbf等于1的帧间预测cu,可以用信号通知cu_sbt_flag来指示是解码整个残差块还是解码残差块的子部分。在前一种情况下,进一步解析帧间mts信息以确定cu的变换类型。在后一种情况下,残差块的一部分被用推断的自适应变换进行编解码,而残差块的其他部分被归零。
[0070]
图4示出了每个sbt位置的水平和竖直变换。子块变换是应用于亮度变换块的位置相关变换。sbt-h(水平)和sbt-v(竖直)的两个位置与不同的核心变换相关联。更具体地,在图4中指定了每个sbt位置的水平和竖直变换。例如,sbt-v位置0的水平和竖直变换分别是dct-8和dst-7。当残差tu的一侧大于32时,对应的变换被设置为dct-2。因此,子块变换联合地指定残差块的tu平铺(tiling)、cbf以及水平和竖直变换,这可以被认为是在块的主要残差在块的一侧的情况下的语法捷径。
[0071]
在vtm4中,在环路滤波器之前添加了称为亮度映射和色度缩放(lmcs)的编解码工具,作为新的处理块。lmcs有两个主要部分:1)亮度分量的基于自适应分段线性模型的环内映射;2)对于色度分量,应用亮度相关的色度残差缩放。
[0072]
图5从解码器的角度示出了lmcs架构。图5中浅灰色阴影块指示处理在映射域中应用的位置;并且这些包括逆量化、逆变换、亮度帧内预测以及亮度预测与亮度残差的相加。图5中的无阴影块指示处理在原始(即,未映射)域中应用的位置;并且这些包括诸如去块、alf和sao的环路滤波器、运动补偿预测、色度帧内预测、色度预测与色度残差的相加以及将经解码的画面作为参考画面的存储。图5中的深灰色阴影块是新的lmcs功能块,包括亮度信号的正向和反向映射以及亮度相关的色度缩放处理。像vvc的大多数其他工具一样,可以使用sps标志在序列级别启用/禁用lmcs。
[0073]
也已知为不可分离二次变换(nsst)或简化二次变换(rst),二次变换被应用于正向主变换和量化之间(在编码器处)以及去量化和反向主变换之间(在解码器侧)。
[0074]
图6示出了二次变换的应用。在jem中,如图所示,对于每个8
×
8块,4
×
4二次变换被应用于小块(即,min(宽度,高度)《8),并且8
×
8二次变换被应用于较大块(即,min(宽度,高度)》4)。
[0075]
下面以输入为例描述不可分离变换的应用。4x4输入块被表示为以下矩阵:
[0076][0077]
为了应用不可分离变换,这个4x4输入块x首先被表示为矢量为了应用不可分离变换,这个4x4输入块x首先被表示为矢量
[0078]
不可分离变换被计算为其中表示变换系数矢量,并且t是16
×
16变换矩阵。16
×
1系数矢量随后被使用该块的扫描顺序(水平、竖直或对角)而重新组织为4
×
4块。具有较小索引的系数将与较小扫描索引一起放置在4x4系数块中。一共存在35个变换集,并且每个变换集使用3个不可分离的变换矩阵(核)。从帧内预测模式到变换集的映射是预先定义的。对于每个变换集,所选择的不可分离的二次变换候选进一步由显式用信号通知的二次变换索引来指定。该索引在每帧内cu在变换系数之后被在比特流中用信号通知一次。
[0079]
图7示出了简化二次变换(rst)。利用这种技术,16x48和16x16矩阵分别被用于8
×
8和4
×
4块。为了便于标注,16x48变换被表示为rst8x8,并且16x16变换被表示为rst4x4。简化变换(rt)的主要思想是将n维矢量映射到不同空间中的r维矢量,其中r/n(r《n)是简化因子。
[0080]
图8示出了正向和反向简化变换。rt矩阵是r
×
n矩阵,如下:
[0081][0082]
其中变换的r行是n维空间的r个基。rt的逆变换矩阵是其正变换的转置。
[0083]
图9示出了利用16x48矩阵的正向rst8x8处理的示例。在所采用的配置中,应用了16x48矩阵,而不是具有相同变换集配置的16x64矩阵,每个矩阵从左上8x8块中的三个4x4
块(不包括右下4x4块)获取48个输入数据(图4)。在降维的帮助下,用于存储所有rst矩阵的内存使用从10kb减少到8kb,同时性能合理下降。
[0084]
此外,在vtm5中,已采用了称为色度残差联合编解码的编解码工具。当该工具被激活时,单个联合残差块被用于描述同一变换单元中cb和cr块两者的残差,如等式1所示。
[0085]
res
joint
=(res
cb-res
cr
)/2
[0086]
等式1:根据cb和cr残差计算的联合残差
[0087]
然后,通过减去cb的联合残差并将其与cr相加来重构cb和cr信号,如等式2所示。
[0088][0089]
等式2:从联合残差编解码重构cb和cr信号
[0090]
在tu级别编解码标志,以启用色度残差的联合编解码,如果该标志被禁用,则使用cb和cr残差的单独编解码。
[0091]
下文描述的实施例是已经考虑到前述内容而设计的。图1a的编码器100、图1b的解码器200和图2的系统1000适于实现下述实施例中的至少一个。
[0092]
在至少一个实施例中,本技术针对视频编解码系统中的无损编解码模式,该视频编解码系统包括多个编解码工具,其中一些通过设计是有损的,其中一些可以适于成为无损或近无损的。为了在例如vvc的视频编解码系统中启用无损模式,提出了以下策略:
[0093]-禁用通过设计有损的工具并且仅使用无损工具,
[0094]-适配一些工具以启用无损编解码,
[0095]-适配一些工具以启用近无损编解码(与原始信号的差有限且较小),使得可以在残差编解码之后应用二次无损编解码,从而提供无损编解码。
[0096]
无损编解码可以在帧级或区域级处理。
[0097]
图10a和10b示出了根据至少一实施例的示例流程图。该图示出了通用处理的示例,该通用处理用于决定给定工具是否应该在帧级、块级被禁用,是否应该被适配为无损的,或者二次无损编解码是否应该被执行以使用该被适配为近无损的工具。这种处理可以例如在图1a的编码器设备100中实现。
[0098]
在第一步(图10a的400),评估工具是否通过设计而是有损的。
[0099]

如果工具是有损的,则第二检查(图10b的402)测试工具是否可以在块级禁用(在这种情况下,只能在帧级进行控制)。
[0100]

如果该工具不能在块级被禁用,则在图10b的步骤404中检查标志transquant_bypass_enabled_flag(通常在pps级用信号通知)的值。如果transquant_bypass_enabled_flag为真,则在图10b的步骤410中禁用该工具(这例如适用于lmcs)。如果transquant_bypass_enabled_flag为假,则在图10b的步骤411中启用该工具。一旦应用了步骤410或411,处理结束。
[0101]

如果该工具可以在块级被禁用,则在图10b的步骤405中检查cu级标志cu_transquant_bypass_flag的值。如果cu_transquant_bypass_flag为真,则在图10b的步骤408中在cu级禁用工具(这适用于例如sbt、mts、lfnts)。如果cu_transquant_bypass_flag为假,则在图10b的步骤409中,可以在cu级启用该工具。一旦应用了步骤408或409,处理结束。
[0102]

如果工具通过设计是无损的,则在图10a的步骤401中执行测试,
[0103]
以检查是否无损。
[0104]

如果工具是无损的,则无特别应用,并且流程进行到处理的结束。
[0105]

如果工具不是无损的,则在图10a的步骤403中检查工具是否近无损的。
[0106]

如果该工具不是近无损的,由于其也不是通过设计有损的,这意味着它可以适于成为无损的(图10a的步骤406)。这可以适用于例如在mts变换集中仅使用无损变换的mts。
[0107]

如果该工具是近无损的,则应用附加的(二次)无损编解码步骤(图10a的步骤407)。例如,可以应用没有量化的无损变换。
[0108]

一旦应用了步骤306或307,处理结束。
[0109]
在本公开的下文中,描述了该处理对vvc规范的特定工具的应用。
[0110]
禁用与无损编解码不兼容的工具
[0111]
第一种情况对应于图10a的步骤410(画面级)和408(cu级)。第一元素与具有大cu的归零变换有关。在实施例中,在无损编解码的cu的情况下或者如果使用变换跳过,则不能使用归零变换。表4中的语法规范对此进行了说明,其以斜体文本突出了与当前vvc语法相比所提出的变化。如果块大于max_actual_transf_size x max_actual_transf_siz(实际上在当前的vvc版本中是32x32)并且是无损编解码的,则所有的系数都被编解码,这与只有一部分系数被编解码的有损编解码块的情况相反。
[0112]
实际上,与当前的vvc规范相比,仅当transform_skip_flag为假且cu_transquant_bypass_flag为假时,才应用变换尺寸限制。
[0113]
表4:用于如果对当前cu使用了变换跳过或无损编解码则不使用归零变换的修改的语法
[0114][0115]
在变型中,如果画面级transquant_bypass_enabled_flag被启用,并且如果块大于max_actual_transf_size x max_actual_transf_size(例如,在当前vvc中为32x32),则推断或强制四叉树划分。换句话说,当希望无损编解码时,大于64x64的块被系统地划分,使得块尺寸变为32x32,并因此不经受归零。表5示出了修改的语法。
[0116]
表5:在画面级启用无损的情况下四叉树划分推断的语法
[0117]
[0118]
[0119][0120]
在另一变型中,只有当前cu小于或等于max_actual_transf_size xmax_actual_transf_size(例如,在当前vvc中为32x32)时,才对cu_transquant_bypass_flag进行编解码。这意味着较大的块不能被无损编解码。表6示出了相关联的语法。
[0121]
表6:用于仅针对小于或等于32x32的块编解码cu_transquant_bypass的所提出的语法
[0122][0123]
第二元素与子块变换(sbt)相关。由于sbt使用变换树细分,其中变换单元中的一个被推断为没有残差,因此该工具不能保证在无损的情况下重构cu。在实施例中,当无损模式被激活时(即,当transquant_bypass_enabled_flag为真时),sbt在cu级被禁用。对应的语法变化如表7所示。只有当transquant_bypass_enabled_flag为假时,才可能解码sbt相关语法并激活sbt。
[0124]
表7:当对于无损编解码cu禁用sbt时的编解码单元语法
[0125]
[0126][0127]
在替代实现方式中,sbt只能用作tu平铺(tiling)。在该实施例中,可以针对每个子块编解码残差,而在初始设计中,一些块被强制具有值为0的系数。水平和竖直变换被推断为变换跳过。对应的语法变化如表8所示。
[0128]
表8:当没有为sbt编解码的cu中的两个cu推断残差时的编解码单元语法
[0129]
[0130]
[0131][0132]
图11示出了用于亮度整形的正向然后反向函数的应用。事实上,第三元素与亮度整形(lmcs)有关。整形是有损变换,因为由于舍入操作,应用正向然后反向函数不保证给出原始信号。在lmcs中,参考画面被存储在原始域中。在帧内情况下,预测处理在“整形”域中实现,并且一旦采样被重构,就在环路滤波步骤之前应用逆整形。在帧间情况下,在运动补偿之后,预测信号被正向整形。然后,一旦采样被重构,就在环路滤波步骤之前应用逆整形。
[0133]
在实施例中,如果在pps中允许无损编解码,则在条带(slice)级禁用lmcs。对应的语法变化如表9所示。
[0134]
表9:用于如果在pps中启用了transquant旁路则禁用lmcs的条带头语法修改
[0135][0136]
第四元素与多变换选择(mts)和变换跳过相关,并且实施例涉及推断变换跳过为真。即使量化步长等于1,dct和dst变换也是有损的,因为舍入误差会导致轻微的损失。在第一实施例中,如果cu被无损编解码(由cu级标志cu_transquant_bypass_flag的值检查),则只能使用变换跳过。transform_skip_flag被推断为1,并且tu_mts_idx未被编解码。对应的语法变化如表10中所示。在transform_skip_flag被推断为1的情况下,对无损块使用用于
变换跳过的残差编解码。
[0137]
表10:用于在启用cu无损时禁用mts和变换跳过的编解码的变换单元语法
[0138][0139]
在vtm-5.0中,可以使用两种不同的残差编解码处理,第一种用于非变换跳过残差编解码,并且对于编解码自然内容块的残差是有效的,第二种用于变换跳过残差编解码,其对于编解码屏幕内容块是有效的。残差编解码语法选择如表11所示。
[0140]
表11:vtm-5.0中的残差编解码语法
[0141][0142][0143]
图12示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当变换跳过对于无损编解码块被推断为真时的残差编解码的实施例的示例流程图。在第一步骤800,解析cu_transquant_bypass_flag,如果该标志为真,则在步骤801将transform_skip_flag推断为真,否则在步骤802解析transform_skip_flag。如果transform_skip_flag等于假,则在步骤803解析常规残差,否则如果该标志为真,则在步骤
804解析变换跳过残差。
[0144]
图13示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当变换跳过对于无损编解码块被推断为假时的残差编解码的实施例的示例流程图。在第一步骤900,解析cu_transquant_bypass_flag,如果该标志为真,则在步骤901将transform_skip_flag推断为假,并且在步骤904使用常规残差编解码,否则在步骤902解析transform_skip_flag。如果transform_skip_flag等于假,则在步骤904解析常规残差,否则如果该标志为真,则在步骤903解析变换跳过残差。
[0145]
由于用于变换跳过的残差编解码被设计用于对来自屏幕内容编解码块的残差进行编解码,因此对于针对无损块的自然内容进行编解码可能效率较低。因此,在另一实施例中,如果cu被无损编解码,则transform_skip_flag被推断为0,并且tu_mts_idx不被编解码。用于常规变换的残差编解码被用于无损编解码块。因此,在这种特殊模式下(即,当cu_transquant_bypass_flag为真时),即使在transform_skip_flag为真的情况下,也将使用常规编解码,而通常在transform_skip_flag为真时,应使用变换跳过残差编解码。
[0146]
换句话说,图13中描述的该实施例提出,在信息指示使用变换跳过残差编解码的情况下,通过以下来确定残差编解码的类型:获得表示特殊模式的标志,并且在该标志为真时为残差编解码选择常规残差编解码,而不是应该使用的变换跳过残差编解码。表示特殊模式的标志可以从其他信息中导出,诸如编解码是无损的指示(例如cu_transquant_bypass_flag),或者量化、变换处理和环路滤波器被绕过(未使用)的指示,或者残差编解码被强制为常规残差编解码的指示。
[0147]
图14示出了包括对cu_transquant_bypass_flag、transform_skip_flag的解析以及当对于无损编解码块总是解析变换跳过时的残差编解码的实施例的示例流程图。
[0148]
在这样的实施例中,为了保持无损编解码块的设计接近有损编解码块,可以使用常规残差编解码和变换跳过编解码。在这种情况下,transform_skip_flag针对无损编解码块进行编解码。这允许对残差系数进行编解码的两种不同方式之间的竞争,并使残差编解码更好地适应于内容。
[0149]
在第一步骤1400,解析cu_transquant_bypass_flag,然后在步骤1401解析transform_skip_flag。如果transform_skip_flag等于假,则在步骤1403解析常规残差,否则如果该标志为真,则在步骤1402解析变换跳过残差。
[0150]
实际上,变换跳过残差编解码方法被优化来编解码计算机生成的内容,其中空间相邻系数的值之间的相关性很强。一般地,在有损编解码中,当内容是计算机生成的并且对这种内容有效时,变换跳过系数编解码是最常用的。
[0151]
但是在该实施例中,提出使用标志在选择常规系数编解码方法和变换跳过系数编解码方法之间进行选择。实际上,变换跳过系数编解码可以用于计算机生成的内容,并且常规系数编解码方法可以用于常规内容。这允许对残差系数进行编解码的两种不同方式之间的竞争,并使残差编解码方法更好地适应于内容。该标志仅改变用于对块的残差进行编解码的系数编解码方法。
[0152]
在vvc,使用2种方法来对残差进行编解码:
[0153]-当使用变换和量化时,使用常规系数编解码方法。该方法继承了hevc加一些改进,它已被设计成在变换后对残差进行编解码,其中能量被压缩在信号的低频部分。
[0154]-当仅使用量化时,使用变换跳过系数编解码方法。该方法是针对计算机生成的内容设计的,其中,由于系数之间存在大量的空间相关性,所以变换经常被跳过。变换跳过残差编解码方法的主要特性在于它们不用信号通知最后的非零系数,从块的左上角开始,使用先前系数的缩减模板来编解码当前系数,并且系数的符号是cabac上下文编解码的。
[0155]
图12、13和14示出,与当前的vvc规范不同,残差编解码方法可以与变换是否已经被跳过的事实解耦。实际上,在当前的vvc规范中,transform_skip_flag语法元素等于真意味着不对块的残差应用变换,并且使用变换跳过系数编解码方法。而在所提出的方法中,如果当前块被无损编解码(跳过了变换和量化),则使用常规系数编解码方法,通过将transform_skip_flag推断为假,在编解码自然内容的情况下使用更好的系数编解码方法。在变型中,即使cu_transquant_bypass_flag为真(在这种情况下,跳过了变换和量化),也会对标志(这里transform_skip_flag被重新使用以用于此目的)进行编解码,以仅指示使用哪种残差编解码方法。
[0156]
一实施例涉及低频不可分离变换(lfnts)。在该实施例中,如果当前cu被无损编解码,则lfnts被禁用。对应的语法变化如表12所示。
[0157]
表12:用于在cu被无损编解码时禁用lfnts的编解码单元语法
[0158][0159]
一实施例涉及联合cb-cr编解码。cb和cr残差的联合编解码处理是不可逆的。通过使用等式1和等式2,其中rescb=rescr,我们得到resjoint=0,并且reccb=predcb,reccr=predcr。在一实施例中,如果cu_transquant_bypass_flag为真,则在cu级禁用联合cb-cr编解码。对应的语法变化如表13所示。
[0160]
表13:用于如果cu_transquant_bypass_flag为真则禁用联合cb-cr编解码的残差编解码语法
[0161][0162][0163]
当等式1将resjoint_cb与res joint_cr分离时,如等式3所示。
[0164]
等式3:对n0347中提出的联合残差计算的修改
[0165][0166]
通过该提出的修改,该处理是可逆的,但由于舍入误差而是有损的,如等式4所示。
[0167]
等式4:对从联合残差编解码重构cb和cr信号的修改
[0168][0169]
当如下所述执行二次无损编解码处理时,该变型可以用于无损编解码。
[0170]
用于无损编解码的vvc工具的适配
[0171]
参考图10a,这种情况对应于步骤406。
[0172]
在一实施例中,无损变换被添加到mts变换集中。对于无损编解码,应选择那些变换。无损变换的示例是非归一化沃尔什-哈达玛(walsh-hadamard)变换、非归一化哈尔(haar)变换。近无损变换的示例是归一化沃尔什-哈达玛变换、归一化哈尔变换。
[0173]
无损变换可以通过沃尔什-哈达玛变换或哈尔变换获得。沃尔什-哈达玛和哈尔的非归一化变换由
±
1和零构成,如等式5和等式6所示。例如,非归一化4
×
4沃尔什-哈达玛矩阵为:
[0174]
等式5:非归一化4x4沃尔什-哈达玛矩阵
[0175][0176]
而非归一化4x4哈尔矩阵为:
[0177]
等式6:非归一化4x4哈尔矩阵
[0178][0179]
利用沃尔什-哈达玛变换或哈尔变换可以实现无损重构。为了解释这一点,考虑
2x2变换的示例,它采用残差采样(r0和r1)。哈尔和沃尔什-哈达玛的变换矩阵为:
[0180]
等式7:非归一化2x2沃尔什-哈达玛或哈尔矩阵
[0181][0182]
变换系数(c0和c1)通过下式获得:
[0183]
等式8:利用2x2沃尔什-哈达玛或哈尔非归一化变换计算的变换系数
[0184][0185]
逆变换以这种方式执行:
[0186]
等式9:利用2x2沃尔什变换或哈尔非归一化变换的逆变换
[0187][0188]
在4
×
4沃尔什-哈达玛变换的另一示例中,为了变换4个残差采样(r0、r1、r2、r3),将矩阵乘以系数矢量以获得变换系数c0、c1、c2和c3:
[0189]
等式10:利用4x4沃尔什-哈达玛非归一化变换计算的变换系数
[0190][0191]
逆变换以这种方式执行
[0192]
等式11:利用4x4沃尔什变换非归一化变换的逆变换
[0193][0194]
最后,为了使用哈尔变换来变换4个残差采样,使用以下等式等式12:利用4x4哈尔变换计算的变换系数
[0195][0196]
逆变换以这种方式执行
[0197]
等式13:利用4x4哈尔非归一化变换的逆变换
[0198][0199]
非归一化哈尔或沃尔什-哈达玛变换有时可以增加比特率,因为系数的动态性增加了。例如,当使用4
×
4非归一化沃尔什-哈达玛矩阵时,系数能量可以高达残差采样能量
的2倍。因此,归一化矩阵是通过将非归一化矩阵除以2来实现的。然而,这样做会导致整数表示的损失。考虑使用“归一化”沃尔什-哈达玛变换来变换4个残差采样的相同示例:
[0200]
等式14:利用4x4沃尔什-哈达玛归一化变换计算的变换系数
[0201][0202]
由于整数表示被用于变换系数,所以舍入会导致+-1/2的误差。因此,需要附加编解码步骤,以在除以2后对提示进行编解码。这可以通过以下方式完成:
[0203]
首先,计算对每个系数的除法的提示:
[0204]
等式15:对使用4x4沃尔什-哈达玛归一化变换计算的每个系数的除法的提示
[0205][0206]
其中提示(rem_c0、rem_c1、rem_c2和rem_c3)可以取值(-1、0或1)。
[0207]
然后该提示被编解码到比特流中。首先,对有效提示位进行编码,其指示提示是否不为零,然后,如果有效,则对提示的符号进行编码(负为0,并且正为1)。语法如表15所示。差分脉冲编解码调制(dpcm)也可以用来利用提示之间的相关性。一旦提示被解码,解码器可以以这种方式计算逆变换:
[0208]
等式16:利用4x4沃尔什-哈达玛归一化变换的逆变换
[0209][0210]
这种技术可以用于其他变换尺寸,但是不能总是实现归一化。例如,尺寸为2x2的沃尔什-哈达玛变换矩阵需要除以2的平方根以进行归一化,这总是会导致损失,因为提示部分不仅仅是+-0.5。然而,像4x4的情况中那样除以2是有益的,因为它降低了变换系数的增加的动态性。
[0211]
该技术也适用于哈尔变换,尽管由于哈尔变换矩阵的非均匀范数,该技术不会导致归一化变换。为了说明,解释了4x4哈尔变换。
[0212]
等式17:利用4x4哈尔归一化变换计算的变换系数
[0213][0214]
提示以这种方式计算:
[0215]
等式18:对利用4x4哈尔归一化变换计算的每个系数的除法的提示
[0216][0217]
其中提示取值为(0,-1和1)。在解码器侧,解码后的提示以这种方式用于逆变换处理:
[0218]
等式19:利用4x4哈尔归一化变换的逆变换
[0219][0220]
通过哈尔、沃尔什-哈达玛和无变换工具,我们可以有多种方法来以无损方式变换残差数据。总的来说,对于二维残差信号的水平和竖直变换,我们有9种选择。下表提供了它们的细节:
[0221]
表14
[0222]
水平变换竖直变换沃尔什-哈达玛沃尔什-哈达玛沃尔什-哈达玛哈尔沃尔什-哈达玛无变换哈尔沃尔什-哈达玛哈尔哈尔哈尔无变换无变换沃尔什-哈达玛无变换哈尔无变换无变换
[0223]
利用这些变换的直接方式是让编码器选择降低速率的最佳变换对,并对所使用的对的索引进行编码,以便解码器可以推导所使用的对并执行逆变换。
[0224]
在vtm中,当前的变换对要么是用于水平和竖直变换的核心dct2变换,要么是称为多变换选择(mts)的dst7和dct8变换的附加集合。mts可以通过高级标志开启/关闭。为了符合这种设计,水平和竖直两者的默认无损变换都是无变换,而“多变换”是沃尔什-哈达玛变换和哈尔变换。它们也可以由高级标志“lossless_mts_flag”来控制。因此,变换选择表可以修改为:
[0225]
表15
[0226][0227]
通常,两个非归一化变换很好地拟合了具有小维度的残差。例如,它们可以使用高达8x8或4x4的尺寸。
[0228]
具有二次无损编解码的块级
[0229]
参考图10a,这种情况对应于步骤407。
[0230]
如果cu是有损编解码的,但误差限制在给定阈值以下(通常是如果误差的绝对值小于或等于1,如等式20所示),则可以引入附加编解码阶段来允许无损编解码。误差被测量为原始像素和重构采样之间的差值。
[0231]
等式20:可对其应用二次无损编解码的有损编解码单元的有限误差
[0232]-1≤error≤1
[0233]
例如,如果使用dct或dst变换,其中量化步长等于1,则可以在有损编解码之后应用二次无损编解码。
[0234]
图15示出了二次无损编解码的简化框图的示例。该处理的输入是比特流。在步骤700中,从比特流中解码数据。特别地,这提供了量化的变换系数、变换类型和新引入的二次系数。在步骤701中,逆量化被应用于量化的变换系数。在步骤702中,逆变换被应用于所得的变换系数。所得的残差在步骤703中被添加到来自步骤704的帧内或帧间预测的预测信号中。结果是重构的块。当在步骤710中选择i_pcm模式时,采样值被直接解码而不需要熵解码。当选择无损编解码模式时,跳过步骤701和702。当选择变换跳过模式时,跳过步骤702。当选择具有二次变换模式的块级时,跳过步骤701,在步骤720应用逆变换以获得第一残差,将二次无损残差添加到第一残差。然后,在步骤703中,将所得的残差和添加到预测信号。
[0235]
由于误差被限制在给定阈值之下,因此用于编解码这个小残差的语法非常简单,基本上,如果阈值为1,则可能只需要有效标志和符号标志来编解码二次残差,语法如表16所示。
[0236]
表16:对于阈值为1的二次残差语法
[0237][0238]
这种二次无损编解码也可以按区域而不是按块来进行应用。
[0239]
区域级信令
[0240]
在无损编解码的用例中,很可能对整个区域无损地编解码,并且不将一些无损编解码块与有损编解码块混合在一起。为了处理这种情况,实际的语法需要为每个cu编解码cu_transquant_bypass_flag,这可能是高成本的。
[0241]
在第一实施例中,我们提出移动该标志,并将其编解码在split_cu_flag之前,以便来自父cu的所有子cu可以共享region_transquant_bypass_flag,相关联的语法如表17所示。
[0242]
表17:region_transquant_bypass_flag的所提出的语法
[0243]
[0244][0245]
图16示出了在使用区域级信令时对region_transquant_bypass_flag和split_cu_flag的解析处理的示例流程图。在解析编解码树单元的语法时,第一步骤(500)是将两个变量初始化为假,其中isregiontransquantcoded指示用于指示无损编解码的标志是否已针对当前区域被编解码,并且isregiontransquant指示当前区域是否被无损编解码。然后步骤501检查无损编解码是否在画面级被启用(transquant_bypass_enabled_flag为真)并且region_transquant_bypass_flag还未针对当前区域被编解码(isregiontransquantcoded为假)。如果这些条件为真,则在步骤502中解析标志region_transquant_bypass_flag。否则,步骤504解析split_cu_flag。在步骤502之后,步骤503检查region_transquant_bypass_flag是否为真。如果region_transquant_bypass_flag为真,则在步骤504中将变量isregiontransquant设置为真。然后在步骤504中解析split_cu_flag。如果split_cu_flag为真,则处理返回到步骤500,否则树不再被划分,并且处理结束(步骤505)。可以解析当前编解码单元的语法。
[0246]
双树情况下的无损编解码
[0247]
图17示出了在双树情况下对亮度和色度的不同分割。在vvc中,称为双树的编解码结构允许对帧内条带的亮度树和色度树单独进行编码。
[0248]
在一实施例中,单独为每个树解析cu_transquant_bypass_flag,这允许更灵活地
用信号通知无损编解码。
[0249]
在变型实施例中,cu_transquant_bypass_flag不是为色度树编解码的,而是从亮度树推断的。对于给定的色度cu,如果同位亮度cu中的一个被无损编解码,则当前色度cu也被无损编解码。该图示出了亮度树和色度树的不同分割,例如,如果亮度cu l4被无损编解码,则色度cu c3和c4被无损编解码。在另一示例中,如果亮度cu l3被无损编解码,则色度cu c2也被无损编解码,即使同位的亮度cu l2不被无损编解码。
[0250]
本技术描述了各种方面,包括工具、特征、实施例、模型、方法等。这些方面中的多个方面被具体地描述,并且至少为了显示各自特性而通常被以听起来可能是限制性的方式进行描述。然而,这是出于描述清楚的目的,而并不限制那些方面的应用或范围。事实上,所有不同的方面都可以被组合和互换以提供进一步的方面。此外,这些方面也可以与更早的文件中描述的各方面相结合和互换。
[0251]
本技术中描述和预期的方面可以以多种不同的形式实现。图1a、1b和2提供了一些实施例,但是可以预期其他实施例,并且这些图的讨论并不限制实现方式的广度。这些方面中的至少一个通常涉及视频编码和解码,并且至少一个其他方面通常涉及发送生成或编码的比特流。这些和其他方面可以被实现为方法、装置、其上存储有用于根据所述方法中的任何一个来对视频数据进行编码或解码的指令的计算机可读存储介质、和/或其上存储有根据所述方法中的任何一个生成的比特流的计算机可读存储介质。
[0252]
本文描述了各种方法,并且这些方法中的每一种都包括用于实现所述方法的一个或多个步骤或动作。除非该方法的正确操作需要步骤或动作的特定顺序,否则特定步骤和/或动作的顺序和/或使用可以被修改或组合。
[0253]
本技术中描述的各种方法和其他方面可用于修改如图1a和图1b所示的视频编码器100和解码器200的模块,例如运动补偿和运动估计模块(170、175、275)。此外,本方面不限于vvc或hevc,并且可以应用于例如其他标准和推荐,无论是现有的还是未来开发的,以及任何这种标准和推荐(包括vvc和hevc)的扩展。除非另有说明,或者技术上被排除,否则本技术中描述的各方面可以单独使用或者组合使用。
[0254]
在本技术中使用了各种数值。这些特定值是出于示例的目的,并且所描述的各方面不限于这些特定值。
[0255]
各种实现方式涉及解码。如本技术中使用的“解码”可以包含例如对接收的编码序列执行的全部或部分处理,以便产生适于显示的最终输出。在各种实施例中,这种处理包括通常由解码器执行的处理中的一个或多个。在各种实施例中,这种处理也包括或者可替代地包括由本技术中描述的各种实现方式的解码器执行的处理。
[0256]
作为进一步的示例,在一个实施例中,“解码”仅指代熵解码,在另一实施例中,“解码”仅指代差分解码,而在另一实施例中,“解码”指代熵解码和差分解码的组合。基于具体描述的上下文,短语“解码处理”旨在具体指代操作的子集还是泛指更广泛的解码处理将会是清楚的,并且被认为是由本领域技术人员完全理解的。
[0257]
各种实现方式涉及编码。以类似于上面关于“解码”的讨论的方式,本技术中使用的“编码”可以包含例如对输入视频序列执行的全部或部分处理,以便产生编码的比特流。在各种实施例中,这种处理包括通常由编码器执行的处理中的一个或多个。在各种实施例中,这种处理也包括或者可替代地包括由本技术中描述的各种实现方式的编码器执行的处
理。
[0258]
作为进一步的示例,在一个实施例中,“编码”仅指代熵编码,在另一实施例中,“编码”仅指代差分编码,而在另一实施例中,“编码”指代差分编码和熵编码的组合。基于具体描述的上下文,短语“编码处理”旨在具体指代操作的子集还是泛指更广泛的编码处理将会是清楚的,并且被认为是由本领域技术人员完全理解的。
[0259]
注意,如本文使用的语法元素是描述性术语。因此,它们不排除对其他语法元素名称的使用。
[0260]
当图被呈现为流程图时,应当理解其也提供了对应的装置的框图。类似地,当图被呈现为框图时,应当理解其也提供了对应的方法/处理的流程图。
[0261]
各种实施例涉及速率失真优化。特别是,在编码处理期间,通常会考虑速率和失真之间的平衡或权衡,通常会给定计算复杂性的限制。速率失真优化通常被公式化为最小化速率失真函数,其是速率和失真的加权和。存在不同的方法来解决速率失真优化问题。例如,这些方法可以基于对所有编码选项的广泛测试,包括所有考虑的模式或编解码参数值,以及对它们的编解码成本与编解码和解码后重构的信号的相关失真的完整评估。还可以使用更快的方法来节省编码复杂性,特别是基于预测或预测残差信号而不是重构信号来计算近似失真。也可以使用这两种方法的混合,诸如通过只对可能的编码选项中的一些使用近似失真,而对其他编码选项使用完全失真。其他方法只评估可能的编码选项的子集。更一般地,许多方法采用多种技术中的任何一种来执行优化,但是优化不一定是对编解码成本和相关失真的完整评估。
[0262]
本技术描述了各种方面,包括工具、特征、实施例、模型、方法等。这些方面中的多个方面被具体地描述,并且至少为了显示各自特性而通常被以听起来可能是限制性的方式进行描述。然而,这是出于描述清楚的目的,而并不限制那些方面的应用或范围。事实上,所有不同的方面都可以被组合和互换以提供进一步的方面。此外,这些方面也可以与更早的文件中描述的各方面相结合和互换。
[0263]
本文描述的实现方式和各方面可以例如以方法或处理、装置、软件程序、数据流、或信号来实现。即使仅在单一形式的实现方式的上下文中进行讨论(例如,仅作为方法讨论),所讨论的特征的实现方式也可以其他形式(例如,装置或程序)来实现。装置可以例如以适当的硬件、软件和固件来实现。所述方法可以在例如处理器中实现,该处理器一般指代处理设备,包括例如计算机、微处理器、集成电路、或可编程逻辑器件。处理器还包括通信设备,诸如,例如计算机、平板计算机、智能手机、手机、便携式/个人数字助理、和有助于终端用户之间的信息通信的其他设备。
[0264]
对“一个实施例”或“实施例”或“一种实现方式”或“实现方式”、及其其他变型的引用意味着结合实施例所描述的特定特征、结构、特性等等被包括在至少一个实施例中。因此,贯穿本技术在各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一种实现方式中”或“在实现方式中”、以及任何其他变型的出现并不一定全都指代相同的实施例。
[0265]
此外,本技术可指代“确定”各条信息。确定信息可以包括例如估计信息、计算信息、预测信息、或从存储器中检索信息中的一个或多个。
[0266]
此外,本技术可指代“访问”各条信息。访问信息可以包括例如接收信息、(例如,从存储器中)检索信息、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息、或估
计信息中的一个或多个。
[0267]
此外,本技术可指代“接收”各条信息。与“访问”一样,接收意欲为广义的术语。接收信息可以包括例如访问信息、或(例如,从存储器中)检索信息中的一个或多个。此外,通常在诸如例如存储信息、处理信息、发送信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息、或估计信息的操作期间,以一种方式或另一方式涉及“接收”。
[0268]
在本技术中,术语“重构”和“解码”可以互换使用,术语“像素”和“采样”可以互换使用,术语“图像”、“画面”、“帧”、“条带”和“图块”可以互换使用。通常,但不是必须的,术语“重构”被用于编码器侧,而“解码”被用于解码器侧。
[0269]
应当理解,例如在“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)。正如本领域和相关领域的普通技术人员所清楚的那样,这可以扩展到所列出的尽可能多的项目。
[0270]
此外,如本文所使用的,“信号(signal)”一词除了其他以外是指向对应解码器指示某物。例如,在某些实施例中,编码器用信号通知照明补偿参数中的特定一个。以这种方式,在实施例中,在编码器侧和解码器侧均使用相同的参数。因此,例如,编码器可以向解码器发送(显式信令)特定参数,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其他参数,则可以使用信令而不发送(隐式信令)来简单地允许解码器知道并选择特定参数。通过避免任何实际功能的传输,在各种实施例中实现了比特节省。应当理解,信令可以以多种方式完成。例如,在各种实施例中,一个或多个语法元素、标志等被用于向对应的解码器用信号通知信息。虽然前面提到了“信号”一词的动词形式,但是“信号”一词在本文也可以用作名词。
[0271]
对于本领域普通技术人员来说将显而易见的是,各实现方式可以产生各种信号,这些信号被格式化以携带可被例如存储或发送的信息。该信息可以包括,例如用于执行方法的指令、或由所述实现方式中的一种所产生的数据。例如,信号可以被格式化以携带所述实施例的比特流。这种信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并用经编码的数据流来调制载波。信号携带的信息可以是,例如模拟或数字信息。如已知的,信号可以通过各种不同的有线或无线链路来发送。信号可以被存储在处理器可读介质上。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1