掌桥专利:专业的专利平台
掌桥专利
首页

用于视频编解码的基于树的变换单元(TU)分割

文献发布时间:2023-06-19 11:55:48


用于视频编解码的基于树的变换单元(TU)分割

相关申请的交叉引用

本申请要求于2019年12月16日提交的编号为16/715,274的美国申请以及于2018年12月19日提交的编号为62/782,292的美国临时申请的权益,上述申请中的每一个通过引用而被整体并入本文。

技术领域

本公开涉及视频编码和视频解码。

背景技术

数字视频能力可以被并入广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流式传输(streaming)设备等。数字视频设备实现视频编解码(coding)技术,诸如在以下各项所定义的标准中描述的那些技术:MPEG-2;MPEG-4;ITU-T H.263;ITU-T H.264/MPEG-4第10部分,高级视频编解码(AdvancedVideo Coding,AVC);ITU-T H.265/高效视频编解码(High Efficiency Video Coding,HEVC)以及此类标准的扩展。通过实施此类视频编解码技术,视频设备可以更高效地发射、接收、编码、解码和/或存储数字视频信息。

视频编解码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频编解码,视频条带(slice)(例如,视频图片或视频图片的部分)可以被分割为视频块,这些视频块也可以被称为编解码树单元(codingtree unit,CTU)、编解码单元(coding unit,CU)和/或编解码节点。图片的帧内编解码的(I)条带中的视频块是使用相对于相同图片中相邻块中的参考样本的空间预测来编码的。图片的帧间编解码的(P或B)条带中的视频块可以使用相对于相同图片中相邻块中的参考样本的空间预测,或相对于其他参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。

发明内容

通常,本公开描述与变换编解码相关的技术,变换编解码是现代视频压缩标准的元素。示例技术可以提供对诸如变换单元(TU)之类的残差块的更灵活的分割,并且可改进编解码增益。

在一个示例中,一种对视频数据进行解码的方法包括:在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差。该方法还包括:基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块。该方法还包括:至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据。该方法还包括:使用残差数据来对当前块进行解码。

在另一示例中,一种用于对视频数据进行解码的设备包括被配置为存储视频数据的存储器。该设备还包括以电路系统实施并且被配置为进行以下操作的处理器:在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差;基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块;至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据;以及使用残差数据来对当前块进行解码。

在另一示例中,一种其上存储有指令的计算机可读存储介质,这些指令在被执行时使得处理器:在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差;基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块;至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据;以及使用残差数据来对当前块进行解码。

在另一示例中,一种用于对视频数据进行解码的设备包括:用于在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息的部件,其中残差块指示当前块与预测块之间的差。该设备还包括:用于基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块的部件。该设备还包括:用于至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据的部件。该设备还包括:用于使用残差数据来对当前块进行解码的部件。

在另一示例中,一种对视频数据进行编码的方法包括:确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块。该方法还包括:对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知(signal)指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。

在另一示例中,一种用于对视频数据进行编码的设备包括被配置为存储视频数据的存储器。该设备还包括以电路系统实施并且被配置为进行以下操作的处理器:确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块;以及对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。

在下文的附图和描述中阐述了一个或多个示例的细节。其他的特征、目标和优点将根据描述、附图和权利要求而变得显而易见。

附图说明

图1是示出可以执行本公开的技术的示例视频编码和解码系统的框图。

图2A和图2B是示出示例四叉树二叉树(quadtree binary tree,QTBT)结构以及对应的编解码树单元(CTU)的概念图。

图3A和图3B是示出基于HEVC的残差四叉树的示例变换方案的概念图。

图4是示出用于具有自适应变换选择的混合视频编码的示例系统的框图。

图5A和图5B是示出作为分开的变换实施的水平变换和垂直变换的概念图。

图6是示出变换信令通知的概念图。

图7是示出对块的相应的基于树的分割的概念图。

图8是示出基于四叉树的分割、二叉树分割和三叉树分割的示例的概念图。

图9是示出可以执行本公开的技术的示例视频编码器的框图。

图10是示出可以执行本公开的技术的示例视频解码器的框图。

图11是示出用于对当前块进行编码的示例方法的流程图。

图12是示出用于对视频数据的当前块进行解码的示例方法的流程图。

图13是示出用于对具有根据分割树类型而被分割的残差块的数据的当前块进行解码的示例方法的流程图。

图14是示出用于对具有根据分割树类型而被分割的残差块的数据的当前块进行编码的示例方法的流程图。

具体实施方式

本公开涉及变换编解码。在变换编解码中,对于视频编码器,存在残差数据的块(例如,正被编码的当前块与预测块之间的残差)。残差数据从空间域被变换到频率域,产生变换系数的变换系数块。视频解码器接收变换系数块(或者可能是量化后的变换系数块),并且执行逆量化(如果需要)和逆变换,以将残差数据重构回值的空间域。

变换单元(TU)包括亮度样本的变换块和对应色度样本的变换块。变换块可以是从解码过程中的变换所得的样本的矩形M×N块,并且该变换可以是解码过程的部分,通过变换,变换系数的块被转换为空间域值的块。因此,残差块可以是TU的示例。残差块可以是从样本域变换到频率域的残差数据,并且包括多个变换系数。在2015年柏林Springer-Verlag的M.Wien的High Efficiency Video Coding:Coding Tools and Specification(高效视频编解码:编解码工具和规范)中更详细地描述了变换编解码。

如更详细地描述的,在本公开中描述的一个或多个示例中,若干基于树的分割设计可以被用于利用被称为自适应多(或多核)变换(AMT)或多变换集(MTS)的变换方案的变换编解码。AMT和MTS可以指代相同的变换工具,由于视频编解码标准之间的名称改变,AMT现在被称为MTS。

示例变换方案被描述于编号为2016/0219290的美国专利公开以及2015年1月的X.Zhao,S.Lee,J.Chen,L.Zhang,X.Li,Y.Chen,M.Karczewicz和H.Liu的EnhancedMultiple Transforms for Prediction Residuals(用于预测残差的增强多变换)中,还被描述于编号为2018/0020218的美国专利公开以及2016年7月的X.Zhao,V.Seregin,M.Karczewicz和J.Chen的Improved Look-up Table for Enhanced Multiple Transform(用于增强多变换的改进的查找表)中,并且还被描述于2019年5月30日提交的编号为16/426,749的美国申请以及H.E.Egilmez,Y.-H.Chao,A.Said,V.Seregin和M.Karczewicz的Adaptive multiple transforms with reduced signaling overhead(具有减少的信令通知开销的自适应多变换)中。

如更详细地描述的,在某些示例中,残差块可以被分割成多个残差子块(例如,子TU)。本公开描述了视频编码器可以信令通知残差块被分割成残差子块和视频解码器可以确定残差块被分割成残差子块的方式,以及残差块被分割的方式(例如,分割类型)的示例技术。此外,可以存在视频编码器可以利用来将样本域中的残差数据变换到频率域的多个变换类型,以及视频解码器可以利用来将频率域数据变换(例如,逆变换)回样本域中的残差数据的多个变换类型。本公开描述了确定变换类型的示例方式。

图1是示出可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常涉及对视频数据进行编解码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始未编码视频、经编码视频、经解码(例如,经重构)视频、以及视频元数据,诸如信令通知数据。

如图1所示,在此示例中,系统100包括提供经编码视频数据以供目的地设备116解码和显示的源设备102。具体地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括广泛的设备中的任何一种,包括桌上型计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能电话之类的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在某些情况下,源设备102和目的地设备116可以被装备用于无线通信,并且因此可以被称为无线通信设备。

在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200、以及输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用针对用于视频编解码的基于树的变换单元分割的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备102可以从诸如外部相机之类的外部视频源接收视频数据。同样,目的地设备116可以与外部显示设备接口连接(interface),而不是包括集成的显示设备。

如图1所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备可以执行针对用于视频编解码的基于树的变换单元分割的技术。源设备102和目的地设备116仅仅是此类编解码设备的示例,其中源设备102生成经编解码视频数据以用于向目的地设备116传输。本公开将“编解码”设备指代为执行数据的编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示编解码设备的示例,具体地,分别表示视频编码器和视频解码器的示例。在某些示例中,源设备102和目的地设备116可以用基本对称的方式操作,使得源设备102和目的地设备116中的每一个包括视频编码和解码组件。因此,系统100可以支持源设备102与目的地设备116之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。

通常,视频源104代表视频数据的源(即,原始、未编码的视频数据),并且向视频编码器200提供视频数据的连续系列的图片(也被称为“帧”),视频编码器200对针对这些图片的数据进行编码。源设备102的视频源104可以包括诸如视频相机之类的视频捕捉设备、包含先前捕捉的原始视频的视频存档、和/或用于从视频内容提供者接收视频的视频馈送接口。作为进一步的替代,视频源104可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成视频的组合。在每一情况下,视频编码器200对所捕捉的、预捕捉的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收次序(有时被称为“显示次序”)重新布置成用于编解码的编解码次序。视频编码器200可以生成包括经编码视频数据的比特流。源设备102随后可以经由输出接口108将经编码视频数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或检索。

源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在某些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频以及来自视频解码器300的原始、经解码的视频数据。附加地或替代地,存储器106、120可以分别存储能由例如视频编码器200和视频解码器300执行的软件指令。尽管在此示例中存储器106和存储器120与视频编码器200和视频解码器300分开地示出,但应理解,视频编码器200和视频解码器300还可以包括用于功能上类似或等同目的的内部存储器。此外,存储器106、120可以存储例如从视频编码器200输出且被输入到视频解码器300的经编码视频数据。在某些示例中,存储器106、120的部分可以被分配为一个或多个视频缓冲器,例如以存储原始、经解码和/或经编码的视频数据。

计算机可读介质110可以表示能够从源设备102向目的地设备116传送经编码视频数据的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络而直接向目的地设备116实时地发送经编码视频数据的通信介质。根据诸如无线通信协议之类的通信标准,输出接口108可以调制包括经编码视频数据的传输信号,而输入接口122可以解调所接收的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(radio frequency,RF)频谱或一条或多条物理传输线。通信介质可以形成诸如以下各项的基于分组的网络的部分:局域网、广域网、或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或者对促进从源设备102到目的地设备116的通信可能有用的任何其它装备。

在某些示例中,源设备102可以从输出接口108向存储设备112输出经编码数据。类似地,目的地设备116可以经由输入接口122从存储设备112访问经编码数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬驱动器、蓝光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或者用于存储经编码视频数据的任何其它合适的数字存储介质。

在某些示例中,源设备102可以向文件服务器114或者可以存储由源设备102生成的经编码视频的另一中间存储设备输出经编码视频数据。目的地设备116可以经由流式传输或下载来从文件服务器114访问所存储的视频数据。文件服务器114可以是能够存储经编码视频数据并且向目的地设备116传输此经编码视频数据的任何类型的服务器设备。文件服务器114可以表示(例如,用于网站的)web服务器、文件传输协议(File TransferProtocol,FTP)服务器、内容递送网络设备或网络附连存储(network attached storage,NAS)设备。目的地设备116可以通过包括互联网连接的任何标准数据连接从文件服务器114访问经编码视频数据。这可以包括适合用于访问存储在文件服务器114上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字订户线(digital subscriberline,DSL)、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输传输协议、下载传输协议或其组合来操作。

输出接口108和输入接口122可以代表无线发送器/接收器、调制解调器、有线连网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任一种操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据诸如4G、4G-LTE(长期演进)、高级LTE、5G之类的蜂窝通信标准来传递诸如经编码视频数据之类的数据。在输出接口108包括无线发送器的某些示例中,输出接口108和输入接口122可以被配置为根据诸如IEEE 802.11规范、IEEE802.15规范(例如,ZigBee

本公开的技术可以被应用于支持诸如以下各项的各种多媒体应用中的任一种的视频编解码:空中电视广播、电缆电视传输、卫星电视传输、诸如基于HTTP的动态自适应流式传输(dynamic adaptive streaming over HTTP,DASH)之类的互联网流式传输视频传输、被编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码、或其它应用。

目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码视频比特流。经编码视频比特流可以包括由视频编码器200定义、还由视频解码器300使用的信令通知信息,诸如具有描述视频块或其它经编解码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示经解码视频数据的经解码图片。显示设备118可以表示各种显示设备中的任一种,诸如阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light emitting diode,OLED)显示器或另一类型的显示设备。

尽管图1中未示出,但在某些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或者其它硬件和/或软件,以处理公共数据流中包括音频和视频两者的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其它协议,诸如用户数据报协议(user datagramprotocol,UDP)。

视频编码器200和视频解码器300各自可以被实施为各种合适的编码器和/或解码器电路系统中的任一个,诸如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当该技术部分地以软件来实施时,设备可以将用于该软件的指令存储在合适的非暂态计算机可读介质中,且使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,这一个或多个编码器或解码器中的任一个可以被集成为相应设备中的组合编码器/解码器(combined encoder/decoder,CODEC)的部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。

视频编码器200和视频解码器300可以根据视频编解码标准来操作,视频编解码标准诸如ITU-T H.265,也被称为高效视频编解码(HEVC),或者其扩展,诸如多视图和/或可缩放视频编解码扩展。替代地,视频编码器200和视频解码器300可以根据其他私有或工业标准来操作,其他私有或工业标准诸如联合探索测试模型(Joint Exploration Test Model,JEM)或者ITU-T H.266,也被称为通用视频编解码(Versatile Video Coding,VVC)。在ITU-T SG 16WP3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第15次会议:哥德堡,SE,2019年7月3-12日,JVET-O2001-vE,Bross等人在“(通用视频编解码(草案6))”中描述了VVC标准的草案(以下简称“VVC草案6”)。在ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第16次会议:日内瓦,CH,2019年10月1-11日,JVET-P2001-v9,Bross等人在“通用视频编解码(草案7)”中描述了VVC标准的较新的草案(以下简称“VVC草案7”)。然而,本公开的技术不限于任何特定编解码标准。

通常,视频编码器200和视频解码器300可以执行图片的基于块的编解码。术语“块”通常是指包括将被处理(例如,编码、解码或在编码和/或解码过程中以其它方式使用)的数据的结构。例如,块可以包括亮度数据和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对YUV(例如,Y、Cb、Cr)格式表示的视频数据进行编解码。即,视频编码器200和视频解码器300可以对亮度分量和色度分量进行编解码,而不是对针对图片的样本的红、绿和蓝(RGB)数据进行编解码,其中色度分量可以包括红色调和蓝色调色度分量两者。在某些示例中,视频编码器200在编码之前将所接收的RGB格式化数据转换为YUV表示,而视频解码器300将YUV表示转换为RGB格式。替代地,预处理单元和后处理单元(未示出)可以执行这些转换。

本公开通常可以涉及对图片的编解码(例如,编码和解码),旨在包括对图片的数据进行编码或解码的过程。类似地,本公开可以将对图片的块的编解码指代为包括对针对块的数据进行编码或解码的过程,例如,预测和/或残差编解码。经编码视频比特流通常包括针对语法元素的一系列值,这些语法元素表示编解码决策(例如,编解码模式)以及图片到块的分割。因此,对图片或块进行编解码的引用通常应被理解为对针对形成图片或块的语法元素的值进行编解码。

HEVC定义各种块,包括编解码单元(CU)、预测单元(prediction unit,PU)以及变换单元(transform unit,TU)。根据HEVC,视频编解码器(诸如视频编码器200)根据四叉树结构将编解码树单元(CTU)分割成CU。即,视频编解码器将CTU和CU分割成四个相等的非重叠的方形,且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且此类叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频编解码器可以进一步分割PU和TU。例如,在HEVC中,残差四叉树(residual quadtree,RQT)表示对TU的分割。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。被帧内预测的CU包括帧内预测信息,诸如帧内模式指示。

作为另一实例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC操作。根据JEM或VVC,视频编解码器(诸如视频编码器200)将图片分割成多个编解码树单元(CTU)。视频编码器可以根据诸如四叉树-二叉树(QTBT)结构或多类型树(Multi-TypeTree,MTT)结构之类的树结构来分割CTU。QTBT结构移除了多种分割类型的概念,诸如HEVC的CU、PU和TU之间的区分。然而,在某些示例中,TU和CU可以被不同地分割。即,TU可以包括具有不同于CU的形状和尺寸的多个子TU。QTBT结构包括两个层级:根据四叉树分割来分割的第一层级,以及根据二叉树分割来分割的第二层级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编解码单元(CU)。

在MTT分割结构中,可以使用四叉树(quadtree,QT)分割、二叉树(binary tree,BT)分割以及一种或多种类型的三叉树(triple tree,TT)(也被称为三元树(ternarytree,TT)分割来分割块。三叉树或三元树分割是其中块被分割成三个子块的分割。在某些示例中,三叉树或三元树分割将块划分成三个子块而非穿过中心来划分原始块。MTT中的分割类型(例如,QT、BT和TT)可以是对称的或非对称的。

在某些示例中,视频编码器200和视频解码器300可以使用单个QTBT结构或MTT结构来表示亮度分量和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT结构或MTT结构,诸如一个QTBT/MTT结构用于亮度分量而另一QTBT/MTT结构用于两个色度分量(或者两个QTBT/MTT结构用于相应的色度分量)。

视频编码器200和视频解码器300可以被配置为使用按照HEVC的四叉树分割、QTBT分割、MTT分割,或者其它分割结构。出于解释的目的,对本公开技术的描述是相对于QTBT分割来呈现的。然而,应理解,本公开的技术还可以被应用于被配置为使用四叉树分割或其它类型的分割的视频编解码器。

块(例如,CTU或CU)可以在图片中以各种方式被分组。作为一个示例,区块(brick)可以指代图片中的特定图块(tile)内的CTU行的矩形区域。图块可以是图片中的特定图块列和特定图块行内的CTU的矩形区域。图块列是指具有与图片的高度相等的高度以及由语法元素(例如,诸如在图片参数集中)指定的宽度的CTU的矩形区域。图块行是指具有由语法元素(例如,诸如在图片参数集中)指定的高度以及与图片的宽度相等的宽度的CTU的矩形区域。

在某些示例中,图块可以被分割成多个区块,区块中的每一个可以包括图块内的一个或多个CTU行。未被分割成多个区块的图块也可以被称为区块。然而,作为图块的真实子集的区块不可以被称为图块。

图片中的区块也可以被布置在条带(slice)中。条带可以是图片的可以被排他地包含在单个网络抽象层(network abstraction layer,NAL)单元中的整数个区块。在某些示例中,条带包括多个完整图块或者仅一个图块的完整区块的连续序列。

本公开可互换地使用“N×N”和“N乘N”来指代块(诸如CU或其他视频块)的就垂直和水平维度而言的样本维度,例如,16×16样本或者16乘16样本。通常,16×16CU将在垂直方向上具有16个样本(y=16)且在水平方向上具有16个样本(x=16)。同样,N×N CU通常在垂直方向上具有N个样本且在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以按行和列来布置。此外,CU在水平方向上不一定需要具有与垂直方向上相同数目的样本。例如,CU可以包括N×M样本,其中M不一定等于N。

视频编码器200对针对CU的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示将如何预测CU以便形成针对CU的预测块。残差信息通常表示编码之前的CU的样本与预测块之间的逐样本差。

为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成针对CU的预测块。帧间预测通常指从先前经编解码图片的数据来预测CU,而帧内预测通常指从相同图片的先前经编解码数据来预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动向量来生成预测块。视频编码器200通常可以执行运动搜索以例如根据CU与参考块之间的差来标识紧密匹配CU的参考块。视频编码器200可以使用绝对差之和(sum ofabsolute difference,SAD)、平方差之和(sum of squared differences,SSD)、平均绝对差(mean absolute difference,MAD)、均方差(mean squared difference,MSD)或其它此类差计算来计算差度量以确定参考块是否紧密匹配当前CU。在某些示例中,视频编码器200可以使用单向预测或双向预测来预测当前CU。

JEM和VVC的某些示例还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示诸如以下各项的非平移运动的两个或更多个运动向量:放大或缩小、旋转、透视运动或其它不规则运动类型。

为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM和VVC的某些示例提供六十七个帧内预测模式,包括各种方向模式,以及平面模式和DC模式。通常,视频编码器200选择以下帧内预测模式:描述当前块(例如,CU的块)的相邻样本,以此来预测当前块的样本。假设视频编码器200以光栅扫描次序(从左到右,从上到下)对CTU和CU进行编解码,则此类样本通常可以位于与当前块相同的图片中的当前块的上方、左上方、或左方。

视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示以下内容的数据进行编码:使用各种可用帧间预测模式中的哪一个,以及用于对应模式的运动信息。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动向量预测(advanced motion vector prediction,AMVP)或合并模式对运动向量进行编码。针对仿射运动补偿模式,视频编码器200可以使用类似模式来对运动向量进行编码。

在对块的预测之后,诸如在对块的帧内预测或帧间预测之后,视频编码器200可以计算针对块的残差数据。诸如残差块之类的残差数据表示块与使用对应预测模式形成的针对该块的预测块之间的逐样本差。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换数据。对残差块的变换的结果可以是变换域(也被称为频率域)中的残差块。残差块是TU的示例,并且在一个或多个实例中,TU可以进一步被分割成多个子TU(例如,残差子块)。

作为一个示例,视频编码器200可以将离散余弦变换(discrete cosinetransform,DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。附加地,视频编码器200可以在初级变换之后应用次级变换,诸如模式相关不可分离次级变换(mode-dependent non-separable secondary transform,MDNSST)、信号相关变换、卡南-洛伊夫变换(Karhunen-Loeve transform,KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。DCT的使用是作为一个示例而被提供的,并且不应被认为是限制性的。可能存在其它变换类型,并且本公开中所描述的示例可以利用这些变换类型中的一个或多个。例如,视频编码器200可以被配置为选择变换类型以用于从样本域到变换(例如,频率)域的变换,并且视频解码器300可以被配置为选择变换类型以用于从变换域回到样本域的变换(例如,逆变换)。在某些示例中,视频编码器200可以被配置为选择变换类型,而视频解码器300可以被配置为基于各种准则来推断待使用的变换类型,使得视频编码器200和视频解码器300选择相同的变换类型。通过推断变换类型,视频编码器200可以不需要明确地信令通知指示变换类型的信息,并且视频解码器300可以不需要接收指示变换类型的信息。

如上所述,在用于产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常是指如下过程:对变换系数进行量化以可能地减少用于表示变换系数的数据量,从而提供进一步压缩。通过执行量化过程,视频编码器200可以减小与变换系数中的某些或全部相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下舍入成m比特值,其中n大于m。在某些示例中,为了执行量化,视频编码器200可以执行对待量化的值的逐位右移。

在量化之后,视频编码器200可以扫描变换系数,从包括经量化变换系数的二维矩阵产生一维向量。扫描可以被设计成将较高能量(并且因此较低频率)变换系数置于向量的前方而将较低能量(并且因此较高频率)变换系数置于向量的后方。在某些示例中,视频编码器200可以利用预定义扫描次序来扫描经量化变换系数以产生串行化(serialized)向量,且随后对向量的经量化变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术编解码(context-adaptive binary arithmetic coding,CABAC)来对一维向量进行熵编码。视频编码器200还可以对针对语法元素的值进行熵编码,这些语法元素描述与经编码视频数据相关联的,供视频解码器300在解码视频数据时使用的元数据。

为了执行CABAC,视频编码器200可以将上下文模型内的上下文指派给待发送的符号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于指派给符号的上下文。

视频编码器200可以进一步例如在图片头部,块头部,条带头部中向视频解码器300生成诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据或诸如序列参数集(sequence parameter set,SPS)、图片参数集(picture parameter set,PPS)或视频参数集(video parameter set,VPS)之类的其它语法数据。视频解码器300可以同样解码此类语法数据以确定如何解码对应的视频数据。

以此方式,视频编码器200可以生成比特流,该比特流包括经编码视频数据,例如,描述图片到块(例如,CU)的分割的语法元素以及针对块的预测和/或残差信息。最终,视频解码器300可以接收比特流并对经编码视频数据进行解码。

通常,视频解码器300执行与视频编码器200所执行的过程相反的过程以解码比特流的经编码视频数据。例如,视频解码器300可以以虽然与视频编码器200的CABAC编码过程相反但基本上类似的方式使用CABAC来解码比特流的针对语法元素的值。语法元素可以定义图片到CTU的分割信息,以及根据诸如QTBT结构之类的对应分割结构进行的对每个CTU的分割,以定义CTU的CU。语法元素可以进一步定义针对视频数据的块(例如,CU)的预测和残差信息。

残差信息可以由例如经量化变换系数表示。视频解码器300可以对块的经量化变换系数进行逆量化和逆变换以再现针对块的残差块。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)来形成针对块的预测块。视频解码器300随后可以(在逐样本基础上)组合预测块和残差块以再现原始块。视频解码器300可以执行附加处理,诸如执行去块(deblocking)过程以减少沿块的边界的视觉伪影。

根据本公开的技术,残差块(例如,TU)可以被分割以形成多个残差子块(例如,子TU)。例如,TU可以被分割成以下之一:四个方形子TU(诸如四叉树分割),两个矩形子TU(诸如二元分割),或三个矩形子TU(诸如三元分割)。另一示例可以是被分割成四个矩形子TU的TU。此外,可以存在多种不同的变换类型(例如,不同类型的离散余弦变换(DCT)和离散正弦变换(discrete sine transforms,DST)。

本公开描述了视频编码器200可以信令通知残差块(例如,TU)是否被分割和视频解码器300可以确定残差块是否被分割的示例方式,以及残差块被分割的方式(例如,确定分割树类型)。同样,本公开描述了确定要使用的变换类型(也被称为变换内核)的示例方式。

例如,视频解码器300可以在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差。视频解码器300可以基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块。视频解码器300可以至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据。视频解码器300可以使用残差数据来对当前块进行解码。

在另一示例中,视频编码器200可以确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块。视频编码器200可以对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。

本公开通常可以涉及“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以涉及用于对经编码视频数据进行解码的针对语法元素的值和/或其它数据的通信。即,视频编码器200可以在比特流中信令通知针对语法元素的值。通常,信令通知涉及在比特流中生成值。如上所述,源设备102可以基本上实时地或者非实时地向目的地设备116传送比特流,诸如可以在将语法元素存储到存储设备112以供目的地设备116稍后检索时发生。

图2A和图2B是示出示例四叉树二叉树(QTBT)结构130,以及对应的编解码树单元(CTU)132的概念图。实线表示四叉树划分,而虚线指示二叉树划分。在二叉树的每个划分(即,非叶)节点中,一个标志被信令通知以指示使用哪种划分类型(即,水平或垂直),其中在此示例中,0指示水平划分,而1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树节点将块水平和垂直地划分成4个尺寸相等的子块。相应地,视频编码器200可以编码而视频解码器300可以解码针对QTBT结构130的区域树层级(即,实线)的语法元素(诸如划分信息)以及针对QTBT结构130的预测树层级(即,虚线)的语法元素(诸如划分信息)。视频编码器200可以编码而视频解码器300可以解码针对由QTBT结构130的终端叶节点表示的CU的诸如预测和变换数据之类的视频数据。

通常,图2B的CTU 132可以与定义同QTBT结构130中第一和第二层级的节点相对应的块的尺寸的参数相关联。这些参数可以包括CTU尺寸(以样本来表示CTU 132的尺寸)、最小四叉树尺寸(MinQTSize,表示最小允许四叉树叶节点尺寸)、最大二叉树尺寸(MaxBTSize,表示最大允许二叉树根节点尺寸)、最大二叉树深度(MaxBTDepth,表示最大允许二叉树深度)、以及最小二叉树尺寸(MinBTSize,表示最小允许二叉树叶节点尺寸)。

对应于CTU的QTBT结构的根节点在QTBT结构的第一层级可以具有四个子节点,这些子节点中的每一个可以根据四叉树分割来进行分割。即,第一层级的节点是叶节点(没有子节点)或者具有四个子节点。QTBT结构130的示例将此类节点表示为包括具有用于分支的实线的父节点和子节点。如果第一层级的节点不大于最大允许二叉树根节点大小(MaxBTSize),则这些节点可以被相应的二叉树进一步分割。一个节点的二叉树划分可以被迭代,直到划分所得的节点达到最小允许二叉树叶节点尺寸(MinBTSize)或最大允许二叉树深度(MaxBTDepth)。QTBT结构130的示例将此类节点表示为具有用于分支的虚线。二叉树叶节点被称为编解码单元(CU),其用于预测(例如,图片内或图片间预测)和变换,而无需任何进一步的分割。如上所述,CU也可以被称为“视频块”或“块”。

在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,并且根据预测和变换被进一步处理而无需进一步分割。

如上所述,视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换数据(例如,以在变换域中生成残差块)。下文描述了诸如离散正弦变换(DST)和离散余弦变换(DCT)之类的变换的示例。还描述了在HEVC中使用的变换方案。

变换指示导出输入信号的替代表示的过程。给定N点向量x=[x

在上文中,

在视频编解码的情况下,变换系数是大致上不相关的和稀疏的。例如,输入向量x的能量仅集中于若干变换系数上,而剩余的多数变换系数典型地接近于0。

由视频编码器200和视频解码器300使用的用于变换的输入数据可以是不同的。例如,对于视频编码器200,被变换的输入数据是残差数据,以通过将残差的空间域值转换为变换系数块的频率域值(例如,系数值)来生成变换系数块。对于视频解码器300,被变换的输入数据是变换系数块(例如,可能在去量化之后),以通过将变换系数块的频率域值转换为残差的空间域值来生成残差数据。因为视频解码器300执行视频编码器200的过程的逆过程,所以由视频解码器300执行的变换可以被视为逆变换。为方便起见,本公开描述了输入数据的变换,同时应理解,用于视频编码器200和视频解码器300的输入数据是不同的,并且视频解码器300进行的变换可以是视频编码器200的变换的逆。

给定特定的输入数据,在能量集中(energy compaction)方面的最优变换是所谓的卡南-洛伊夫变换(KLT),其使用输入数据的协方差矩阵的特征向量作为变换基向量。因此,KLT是数据依赖的(data-dependent)变换,并且不具有一般的数学公式。然而,在某些假设下(例如,诸如在输入数据形成一阶平稳马尔科夫过程(first-order stationaryMarkov processes)的情况下),对应的KLT实际上是酉变换的正弦族(sinusoidal familyof unitary transforms)的成员,其在2019年5月30日提交的编号为16/426,749的美国申请以及H.E.Egilmez,Y.-H.Chao,A.Said,V.Seregin和M.Karczewicz的Adaptive multipletransforms with reduced signaling overhead(具有减少的信令通知开销的自适应多变换)中被介绍。酉变换的正弦族指示使用公式如下的变换基向量的变换:

Φ

在上文中,e是近似等于2.71828的自然对数的底数,A、B和θ通常是复数,并且取决于m的值。

包括离散傅立叶、余弦、正弦和KLT(对于一阶平稳马尔科夫过程)的若干公知的变换是这种酉变换的正弦族的成员。根据1979年的IEEE模式分析与机器智能汇刊(IEEETrans.on Pattern Analysis and Machine Intelligence),1,356的,Jain,A.K的酉变换的正弦族,离散余弦变换(DCT)和离散正弦变换(DST)族的全集包括总共16个基于不同类型(即,A,B和θ的不同值)的变换,并且下文给出了不同类型的DCT和DST的完整定义。

假设输入N点向量被表示为x=[x

DCT类型-I(DCT-1):

其中,

DCT类型-II(DCT-2):

其中,

DCT类型-III(DCT-3):

其中,

DCT类型-IV(DCT-4):

DCT l类型-V(DCT-5):

其中,

DCT类型-VI(DCT-6):

其中,

DCT类型-VII(DCT-7):

其中,

DCT类型-VIII(DCT-8):

DST类型-I(DST-1):

DST类型-II(DST-2):

其中,

DST类型-III(DST-3):

其中,

DST类型-IV(DST-4):

DST类型-V(DST-5):

DST类型-VI(DST-6):

DST类型-VII(DST-7):

DST类型-VIII(DST-8):

其中,

变换类型由变换基函数的数学公式指定,例如,不管N的值如何,4点DST-VII和8点DST-VII具有相同的变换类型。

在不失通用性的情况下,可以使用以下通用公式来表示所有上述变换类型:

在上述等式中,T是由一个特定变换的定义(例如,DCT类型-I~DCT类型-VIII,或者DST类型-I~DST类型-VIII)指定的变换矩阵,而T的行向量(例如,[T

还要注意,应用于1-D输入数据x的上述变换公式可以以如下的矩阵乘法形式来表示

y=T·x

在上述等式中,T指示变换矩阵,x指示输入数据向量,而y指示输出变换系数向量。

下面描述用于二维(2-D)输入数据的变换。上文描述的变换可以被应用于1-D输入数据,并且变换也可以被扩展用于2-D输入数据源。例如,假设X是输入M×N数据阵列。对2-D输入数据应用变换的某些方法包括可分离的和不可分离的2-D变换。

可分离的2-D变换顺序地对X的水平向量和垂直向量应用1-D变换,公式如下:

Y=C·X·R

在上述等式中,C和R分别表示给定的M×M和N×N变换矩阵。从公式中,C对X的列向量应用1-D变换,而R对X的行向量应用1-D变换。在本公开中,为了简单起见,将C和R表示为左(垂直)变换和右(水平)变换,并且它们两者形成变换对。存在C等于R且为正交矩阵的情况。在此类情况下,可分离的2-D变换仅由一个变换矩阵来确定。

不可分离的2-D变换首先通过进行以下数学映射(作为示例),将X的所有元素重组成单个向量,即X’:

X′

随后1-D变换T’如下被应用于X’:

Y=T′·X

在上述等式中,T’是(M*N)×(M*N)变换矩阵。

在视频编解码中,可分离的2-D变换总是被应用,因为与1-D变换相比,2-D变换需要更少的运算(加法,乘法)计数。

以下描述了在HEVC中应用的变换类型。在诸如H.264/AVC之类的某些视频编解码器中,总是对帧内预测残差和帧间预测残差两者应用4点和8点离散余弦变换(DCT)类型-II的整数近似。为了更好地适应残差样本的各种统计,除DCT类型-II之外的更灵活的变换类型被用于后代的视频编解码器中。例如,在HEVC中,4点类型-VII离散正弦变换(DST)的整数近似被用于帧内预测残差,其在IEEE信号处理汇刊(IEEE Trans.Sig.Processing)SP-42,1038-1051(1994)的,S.A.Martucci的“对称卷积以及离散正弦和余弦变换(Symmetricconvolution and the discrete sine and cosine transforms)”中即被理论上证实又被实验上验证为:对于沿帧内预测方向生成的残差向量,DST类型-VII比DCT类型-II更高效(例如,对于由水平帧内预测方向生成的行残差向量,DST类型-VII比DCT类型-II更高效)。在HEVC中,对于4×4的亮度帧内预测残差块,仅应用4点DST类型-VII的整数近似。用于HEVC中的4点DST-VII如下所示,

4x4 DST-VII:

{29,55,74,84}

{74,74,0,-74}

{84,-29,-74,55}

{55,-84,74,-29}

在HEVC中,对于不是4×4的亮度帧内预测残差块的残差块,4点、8点、16点和32点的DCT类型-II的整数近似也被应用,如下所示:

4点DCT-II:

{64,64,64,64}

{83,36,-36,-83}

{64,-64,-64,64}

{36,-83,83,-36}

8点DCT-II:

{64,64,64,64,64,64,64,64}

{89,75,50,18,-18,-50,-75,-89}

{83,36,-36,-83,-83,-36,36,83}

{75,-18,-89,-50,50,89,18,-75}

{64,-64,-64,64,64,-64,-64,64}

{50,-89,18,75,-75,-18,89,-50}

{36,-83,83,-36,-36,83,-83,36}

{18,-50,75,-89,89,-75,50,-18}

16点DCT-II:

{64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64}

{90,87,80,70,57,43,25,9,-9,-25,-43,-57,-70,-80,-87,-90}

{89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89}

{87,57,9,-43,-80,-90,-70,-25,25,70,90,80,43,-9,-57,-87}

{83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83}

{80,9,-70,-87,-25,57,90,43,-43,-90,-57,25,87,70,-9,-80}

{75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75}

{70,-43,-87,9,90,25,-80,-57,57,80,-25,-90,-9,87,43,-70}

{64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64}

{57,-80,-25,90,-9,-87,43,70,-70,-43,87,9,-90,25,80,-57}

{50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50}

{43,-90,57,25,-87,70,9,-80,80,-9,-70,87,-25,-57,90,-43}

{36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36}

{25,-70,90,-80,43,9,-57,87,-87,57,-9,-43,80,-90,70,-25}

{18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18}

{9,-25,43,-57,70,-80,87,-90,90,-87,80,-70,57,-43,25,-9}

32点DCT-II:

{64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,6,64,64,64,64}

{90,90,88,85,82,78,73,67,61,54,46,38,31,22,13,4,-4,-13,-22,-31,-38,-46,-54,-61,-67,-73,-78,-82,-85,-88,-90,-90}

{90,87,80,70,57,43,25,9,-9,-25,-43,-57,-70,-80,-87,-90,-90,-87,-80,-70,-57,-43,-25,-9,9,25,43,57,70,80,87,90}

{90,82,67,46,22,-4,-31,-54,-73,-85,-90,-88,-78,-61,-38,-13,13,38,61,78,88,90,85,73,54,31,4,-22,-46,-67,-82,-90}

{89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89,89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89}

{88,67,31,-13,-54,-82,-90,-78,-46,-4,38,73,90,85,61,22,-22,-61,-85,-90,-73,-38,4,46,78,90,82,54,13,-31,-67,-88}

{87,57,9,-43,-80,-90,-70,-25,25,70,90,80,43,-9,-57,-87,-87,-57,-9,43,80,90,70,25,-25,-70,-90,-80,-43,9,57,87}

{85,46,-13,-67,-90,-73,-22,38,82,88,54,-4,-61,-90,-78,-31,31,78,90,61,4,-54,-88,-82,-38,22,73,90,67,13,-46,-85}

{83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83}

{82,22,-54,-90,-61,13,78,85,31,-46,-90,-67,4,73,88,38,-38,-88,-73,-4,67,90,46,-31,-85,-78,-13,61,90,54,-22,-82}

{80,9,-70,-87,-25,57,90,43,-43,-90,-57,25,87,70,-9,-80,-80,-9,70,87,25,-57,-90,-43,43,90,57,-25,-87,-70,9,80}

{78,-4,-82,-73,13,85,67,-22,-88,-61,31,90,54,-38,-90,-46,46,90,38,-54,-90,-31,61,88,22,-67,-85,-13,73,82,4,-78}

{75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75,75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75}

{73,-31,-90,-22,78,67,-38,-90,-13,82,61,-46,-88,-4,85,54,-54,-85,4,88,46,-61,-82,13,90,38,-67,-78,22,90,31,-73}

{70,-43,-87,9,90,25,-80,-57,57,80,-25,-90,-9,87,43,-70,-70,43,87,-9,-90,-25,80,57,-57,-80,25,90,9,-87,-43,70}

{67,-54,-78,38,85,-22,-90,4,90,13,-88,-31,82,46,-73,-61,61,73,-46,-82,31,88,-13,-90,-4,90,22,-85,-38,78,54,-67}

{64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64}

{61,-73,-46,82,31,-88,-13,90,-4,-90,22,85,-38,-78,54,67,-67,-54,78,38,-85,-22,90,4,-90,13,88,-31,-82,46,73,-61}

{57,-80,-25,90,-9,-87,43,70,-70,-43,87,9,-90,25,80,-57,-57,80,25,-90,9,87,-43,-70,70,43,-87,-9,90,-25,-80,57}

{54,-85,-4,88,-46,-61,82,13,-90,38,67,-78,-22,90,-31,-73,73,31,-90,22,78,-67,-38,90,-13,-82,61,46,-88,4,85,-54}

{50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50,50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50}

{46,-90,38,54,-90,31,61,-88,22,67,-85,13,73,-82,4,78,-78,-4,82,-73,-13,85,-67,-22,88,-61,-31,90,-54,-38,90,-46}

{43,-90,57,25,-87,70,9,-80,80,-9,-70,87,-25,-57,90,-43,-43,90,-57,-25,87,-70,-9,80,-80,9,70,-87,25,57,-90,43}

{38,-88,73,-4,-67,90,-46,-31,85,-78,13,61,-90,54,22,-82,82,-22,-54,90,-61,-13,78,-85,31,46,-90,67,4,-73,88,-38}

{36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36}

{31,-78,90,-61,4,54,-88,82,-38,-22,73,-90,67,-13,-46,85,-85,46,13,-67,90,-73,22,38,-82,88,-54,-4,61,-90,78,-31}

{25,-70,90,-80,43,9,-57,87,-87,57,-9,-43,80,-90,70,-25,-25,70,-90,80,-43,-9,57,-87,87,-57,9,43,-80,90,-70,25}

{22,-61,85,-90,73,-38,-4,46,-78,90,-82,54,-13,-31,67,-88,88,-67,31,13,-54,82,-90,78,-46,4,38,-73,90,-85,61,-22}

{18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18,18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18}

{13,-38,61,-78,88,-90,85,-73,54,-31,4,22,-46,67,-82,90,-90,82,-67,46,-22,-4,31,-54,73,-85,90,-88,78,-61,38,-13}

{9,-25,43,-57,70,-80,87,-90,90,-87,80,-70,57,-43,25,-9,-9,25,-43,57,-70,80,-87,90,-90,87,-80,70,-57,43,-25,9}

{4,-13,22,-31,38,-46,54,-61,67,-73,78,-82,85,-88,90,-90,90,-90,88,-85,82,-78,73,-67,61,-54,46,-38,31,-22,13,-4}

图3A和图3B是示出基于HEVC的残差四叉树的示例变换方案的概念图。在HEVC中,使用残差四叉树(RQT)的变换编解码结构被应用以适应残差块的各种特性,这被简要描述于2010年3月的IEEE声学、语音和信号处理国际会议(IEEE International Conference onAcoustics,Speech and Signal Processing,ICASSP)第726-729页的,J.Han,A.Saxena和K.Rose的“关于视频/图像编解码中的联合最优空间预测以及自适应变换(Towardsjointly optimal spatial prediction and adaptive transform in video/imagecoding)”中。有关RQT的附加信息可以在以下网址获得:http://www.hhi.fraunhofer.de/fields-of-competence/image-processing/research-groups/image-video-coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual-quadtree-rqt.html。

在RQT中,每个图片被划分成编解码树单元(CTU),针对特定图块或条带以光栅扫描次序对CTU编解码。CTU是方形块并且表示四叉树(即,编解码树)的根。CTU的尺寸可以在8×8到64×64亮度样本的范围内,但是典型地使用64×64。每个CTU可以进一步被划分成被称为编解码单元(CU)的更小的方形块。在CTU被递归地划分成CU后,每个CU被进一步划分为预测单元(PU)和变换单元(TU)。CU到TU的分割是基于四叉树方法而被递归地执行的,因此每个CU的残差信号通过树结构(即,残差四叉树(RQT))进行编解码。RQT允许的TU尺寸为从4×4到32×32亮度样本。

图3A描绘了其中CU 134包括用字母a至j标记的10个TU的示例,以及对应的块分割。图3B所示的RQT 136的每个节点实际上是对应于图3A的变换单元(TU)。各个TU以深度优先树遍历次序被处理,该次序在图3A中被示为字母次序,其遵循具有深度优先遍历的递归Z扫描。四叉树方法使得变换能够适应残差信号的变化的空间频率特性。

通常,具有更大空间支持的更大变换块尺寸提供更好的频率分辨率。然而,具有更小空间支持的更小变换块尺寸提供更好的空间分辨率。空间分辨率和频率分辨率两者之间的折衷由编码器模式决策例如基于速率失真优化(rate-distortion optimization)技术来选取。速率失真优化技术针对每个编解码模式(例如,特定RQT划分结构)计算编解码比特和重构失真的加权和,即速率失真成本,并选择具有最小速率失真成本的编解码模式作为最佳模式。

RQT中定义了三个参数:树的最大深度、最小允许变换尺寸和最大允许变换尺寸。最小和最大变换尺寸可以在从4×4到32×32个样本的范围内变化,这对应于上一段落中提到的所支持的块变换。RQT的最大允许深度限制了TU的数量。等于零的最大深度意味着,如果每个所包括的TB达到最大允许变换尺寸(例如,32×32),则编解码块(CB)不能被进一步划分。

所有这些参数相互作用并影响RQT结构。考虑以下情况:其中根CB尺寸为64×64,最大深度等于零,并且最大变换尺寸等于32×32。在这种情况下,CB必须被分割至少一次,因为否则其将导致64×64的TB,这是不允许的。RQT参数,即最大RQT深度,最小和最大变换尺寸在序列参数集层级的比特流中被发送。关于RQT深度,可以针对帧内和帧间编解码的CU指定和信令通知不同的值。

四叉树变换被应用于帧内残差块和帧间残差块两者。典型地,当前残差四叉树分割的相同尺寸的DCT-II变换被应用于残差块。然而,如果当前残差四叉树块为4×4,并且由帧内预测生成,则上述4×4DST-VII变换被应用。

在HEVC中,较大尺寸的变换(例如,64×64变换)不被采用,主要是由于其有限的益处考量以及对于相对较小分辨率的视频的相对高的复杂度。

图4是示出用于具有自适应变换选择的混合视频编码的示例系统140的框图。本公开中描述的示例技术适用于图4所示的典型自适应变换编解码方案,其中对于预测残差的每个块,编码器可以选取不同的变换,并且变换的选取被编码为用于信令通知的边信息(side information)。

在此示例中,系统140包括块分离单元142、块变换单元144、量化单元146、块预测单元148、变换库(transform bank)150、熵编解码单元152、帧缓冲器154、逆变换单元156、逆量化单元158、残差生成单元160和块再现单元162。

通常,块分离单元142从视频数据的图片(即,帧)产生块。块预测单元148生成针对当前块的预测块(p),而残差生成单元160从当前(未编码的)块和预测块(p)生成残差块(r)。帧缓冲器154(也被称为经解码图片缓冲器(DPB)存储当前图片和先前经解码的帧(如果有的话)的经解码数据。块预测单元148可以从存储在帧缓冲器154中的一个或多个图片的先前经解码的数据生成预测块。

块变换单元144将一个或多个变换(T

根据本公开的技术,块变换单元144可以根据分割树类型(诸如以下中的一者:四叉树分割、二叉树分、三元树分割或四TU分割)将当前块的残差块分割成多个残差子块,并且块变换单元可以向熵编解码单元152提供残差块的分割的指示。

量化单元146对变换块的变换系数进行量化,并且向熵编解码单元152和逆量化单元158提供经量化的变换块。熵编解码单元152对表示例如变换指示(t)、经量化变换系数、预测信息(例如,预测模式和对应信息,诸如将被用于该预测模式中的参考数据的位置,例如,用于帧间预测的运动信息)的语法元素进行编码。

熵编解码单元152可以使用本公开的技术来对语法元素进行熵编码,这些语法元素表示:对于残差块,该残差块是否被分割,以及如果残差块被分割,该残差块被如何分割。熵编解码单元152可以针对残差块对信令通知该残差块是否被分割的标志进行编码。当残差块被分割成多个子块时,熵编解码单元152还可以对指示用于残差块的分割类型的索引值进行编码。例如,块变换单元144可以被配置为构造包括针对树类型的集合的信息的列表。树类型的集合包括四叉树分割和二叉树分割中的一个或多个。树类型的集合还可以包括三元树分割和四TU分割。下文更详细地描述了不同的树类型的示例。块变换单元144可以从树类型的集合中确定标识分割类型的索引值,并且熵编解码单元152可以对该索引值进行编码。熵编解码单元152还可以对用于残差块的任何其它分割信息进行编码,这些信息诸如是:残差块是被水平分割还是垂直分割,分割是对称的还是不对称的等。

逆量化单元158可以对从量化单元146接收的经量化变换系数进行逆量化(即,去量化)。逆变换单元156可以基于指示分割块是否被分割以及其如何被分割的经熵编解码的语法元素来确定残差块的分割,以确定残差块的分割,并且可以将逆变换方案应用于从逆量化单元158接收的变换系数以再现针对当前块的残差块(r’)。块再现单元162进一步将来自块预测单元148的预测块(p)与所再现的残差块(r’)组合以形成经解码块,该经解码块被存储在帧缓冲器154中。

本公开的技术可以由系统140或对应的解码系统执行。通常,本公开的技术适用于自适应变换编解码方案,其中对于预测残差的每个块,不同的变换可以由视频编码器200选择,作为边信息而被信令通知,并且由视频解码器300使用边信息来确定。边信息是一个示例,并且不应被认为是限制性的。

在实践中,为了降低计算复杂度,块变换常常是以可分离的方式来计算的,即,水平的和垂直的线是被独立地变换的,如图5A和图5B所示。图5A和图5B是示出作为分离的变换实施的水平变换和垂直变换的概念图。图5A表示H个水平变换170的集合,而图5B表示W个垂直变换172的集合。具体地,可以分别使用水平变换170和垂直变换172来独立地变换残差值的水平线和垂直线。

在HEVC之前的视频编解码标准中,仅固定的可分离变换被使用,其中DCT-2即被垂直地使用又被水平地使用。在HEVC中,除了DCT-2之外,DST-7也作为固定的可分离变换而被用于4×4块。编号为2016/0219290的美国专利公开以及编号为2018/0020218的美国专利公开涵盖了那些固定变换的自适应扩展,并且编号为2016/0219290的美国专利公开中的AMT的示例已被采用于联合视频专家组(JVET)的联合实验模型(JEM)中,见2016年3月的数据压缩会议会刊(Proc.Data Compression Conference)的第73-82页的X.Zhao,J.Chen,M.Karczewicz,L.Zhang,X.Li和W.-J.Chien的“用于视频编解码的增强多变换(Enhancedmultiple transform for video coding)”。

在编号为2016/0219290的美国专利公开和编号为2018/0020218的美国专利公开中描述的AMT设计为视频编码器200提供5个变换选项,以在每块的基础上进行选择(这种选择通常是基于速率失真度量而做出的)。随后,所选择的变换索引被信令通知给视频解码器300。

图6是示出变换信令通知的概念图。例如,图6示出了在编号为2016/0219290的美国专利公开和编号为2018/0020218的美国专利公开中提出的信令通知,其中1比特被用于信令通知默认变换,并且2个附加比特(即,总共3个比特)被用于信令通知4个变换。例如,使用0(即,1比特)来信令通知五个变换(默认变换)中的一个,并且使用3比特(即,100、101、110和111)来信令通知其他四个变换。

在编号为2016/0219290的美国专利公开和编号为2018/0020218的美国专利公开中,默认变换被选择为可分离的2-D DCT,其即垂直地又水平地应用DCT-2。AMT的剩余部分是基于编号为2016/0219290的美国专利公开中的帧内模式信息来定义的。编号为2018/0020218的美国专利公开通过基于预测模式和块尺寸信息来定义那4个变换的集合,而提出了对编号为2016/0219290的美国专利公开的扩展。

在VVC参考软件的版本VTM 3.0中,图6所示的信令通知方案被使用。具体地,对于每个编解码单元(CU),单个比特(标志)被用于确定是(i)DCT2被用于水平方向和垂直方向两者上,还是(ii)两个附加比特(被称为AMT/MTS索引)被用于指定水平应用或垂直应用的1-D变换。这4个变换通过指派DST-7/DCT-8来应用于给定块的行/列上而被定义。例如,MTS索引=0对应于即水平又垂直地应用DST-7的可分离变换,而MTS索引=1对应于水平地应用DCT-8而垂直地应用DST-7。

当前在VVC(以及参考软件VTM-3.0)中,变换方案可能不具有用于变换单元(TU)的灵活分割方法,其中变换块尺寸与编解码单元(CU)尺寸相同。实际上,可以使用诸如(上述)RQT之类的TU分割技术来实现较好的压缩性能,因为分割允许变换经由更灵活的分割来捕获定位于不同区域中的能量。本公开公开了适应当前在VVC(VTM-3.0)中采用的AMT/MTS方案的各种基于树的分割设计。

本公开的各方面描述了用于变换单元(TU)的更灵活的分割方案,该分割方案使得能够实现更好的压缩性能,并且描述了如何针对此类分割选择变换。示例技术可以由视频编码器200和/或视频解码器300执行。例如,结合图7和图8来描述示例。例如,图7是示出对块的相应的基于树的分割的概念图。同时,图8是示出基于四叉树的分割、二叉树分割和三叉树分割的示例的概念图。如图8所示,在基于三叉树的分割中,诸如块192A或块192B之类的变换单元(TU)被分割成三个子TU(例如,P0、P1和P2)。在四叉树分割中,诸如块192C之类的TU被分割成方形的四个子TU(例如,P0、P1、P2和P3)。在二叉树分割中,诸如块192D、块192E、块192F和/或块192D之类的TU被分割成两个子TU(例如,P0和P1)。

TU可以被分割到一个层级中或多个层级中(深度>0)。因此,TU可以被分割成多个子TU,并且多个子TU中的一个或多个自身可以被进一步分割,诸如此类。替代地,TU可以不被分割,并且针对TU的块尺寸可以与针对CU的块尺寸相同(深度=0)。贯穿本公开,术语“残差块”和“残差子块”被使用。应理解,TU是残差块的示例,而多个子TU是多个残差子块的示例,并且本文中所讨论的关于残差块的技术同样适用于TU。类似地,本文所讨论的关于TU的技术同样适用于残差块。

在分割的特定层级处的TU可以基于树而被分割。树和对应分割的示例包括图7所示的示例。例如,四叉树分割181A是基于四叉树182的块的分割,其中方形或非方形的TU通过即水平又垂直地分割TU而被分割成四个子TU。例如,块190A根据四叉树分割181A而被分割成四个尺寸相等的方形块。四TU分割181B是基于四叉树184的块的分割,其中方形或非方形的TU通过仅水平地分割TU或仅垂直地分割TU而被分割成四个子TU。例如,块190B根据四TU分割而被垂直地分割为四个垂直矩形分割,而块190C根据四TU分割而被水平地分割为四个水平矩形分割。如此,诸如TU之类的残差块可以根据四叉树分割181A、四TU分割181B中的至少一者而被分割。

二叉树分割181C是基于二叉树186的块的分割,其中方形或非方形的TU被分割成两个子TU,这两个子TU是通过水平地或垂直地分割TU而获得的。块190D和190G各自根据二叉树分割181C而被垂直分割成两个垂直矩形分割,而块190E和190F各自根据二叉树分割181C而被水平分割成两个水平矩形分割。块190D和190E被对称地分割,以导致块190D和190E各自具有相同尺寸的两个分割。同时,块190F和190G被非对称地分割,以导致块190F和190G各自具有两个不同尺寸的分割。如此,诸如TU之类的残差块可以根据二叉树分割181C而被分割。三叉树分割181D(也被称为三元树分割)是基于三叉树188(也被称为三元树)的块的分割,其中方形或非方形的TU被分割成三个子TU,这三个子TU是通过在两个分离的位置处水平地或垂直地分割TU而获得的。例如,块190H根据三叉树分割而被水平地分割为三个水平矩形分割,而块190I根据三叉树分割而被垂直地分割为三个垂直矩形分割。如此,诸如TU之类的残差块可以根据三叉树分割181D而被分割。

TU分割可以被应用于方形或非方形的TU块。图7示出方形块的示例分割,但这些技术也适用于非方形块,使得矩形并且因此非方形的TU可以根据贯穿本公开所描述的分割树而被同样地分割。例如,如果方形TU根据二叉树而被分割为两个矩形TU,则矩形TU中的一个或两者也可以根据分割树中的一个而被分割。如此,诸如TU之类的残差块可以是方形或非方形,并且方形和非方形的残差块两者可以根据本文中所公开的技术而被同样地分割。

为了信令通知分割信息,可以在比特流中信令通知标志(例如,划分标志),以确定TU中是否存在划分。如果TU被分割(即,如果划分标志被启用),则附加的分割/划分信息可以被信令通知,以用于指定分割的类型。此类附加索引信息可以是树的类型(例如,四叉树、二叉树、三元树和/或四TU划分)。

例如,视频编码器200可以确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块;并且可以对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。类似的,视频解码器可以在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差。

针对给定的/信令通知的树类型,分割类型可以进一步被信令通知。例如,对于三叉树情况(例如,三叉树分割181D),单个比特可以被用于指定TU是被水平划分(诸如块190H中)还是被垂直划分(诸如块190I中)。对于二叉树情况(例如,二叉树分割181C),信令通知可以指定TU是被水平划分(诸如块190E和190F中),还是被垂直划分(诸如块190D和190G中),以及TU是被对称地划分(诸如块190D和190E中),还是被非对称地划分(诸如块190F和190G中)。

例如,信令通知指示用于残差块的分割树类型的信息的比特流可以包括到树类型的集合中的索引信息,并且树类型的集合信息可以包括四叉树分割和二叉树分割中的一个或多个。此外,当指示用于残差块的分割树类型的信息指示分割树类型是二叉树分割中的一个时,比特流可以进一步信令通知指示残差块是被水平划分还是被垂直划分的信息。

在某些示例中,给定在分割TU之后获得的子TU的集合,经编解码块标志(在VVC中被称为cbf)可以取决于预测模式、分割树类型、分割类型或者被编码于比特流中的任何其它边信息而被推断和/或限制。例如,在图8的块192A和192B中被表示为P1的子TU可以被限制为总是具有禁用cbf标志(标志=0),使得对于P1不需要cbf信令通知。类似的方案还可以被用于推断或限制用于每个子TU的变换跳过标志。

在某些示例中,给定在分割之后获得的子TU的集合,可以针对每个子TU信令通知AMT/MTS索引以指定应用于该子TU的可分离变换。以此方式,多个变换可以被应用于每个子TU。

在某些示例中,即使TU被分割成子TU,仍可以以TU层级来信令通知诸如AMT/MTS索引和/或标志之类的变换选择。在这些示例中,每个子TU可以使用信令通知的变换选择。在此情况下,可以为每个子TU节省开销,并且仍然可以利用精细粒度变换(finer granulartransform)的优点。

在某些示例中,给定在分割之后获得的子TU的集合,可以在水平方向、垂直方向或两个方向上限制或推断用于子TU的变换核。限制或推断的一个示例是基于预测模式、分割树类型、分割类型或任何其它边信息来做出的。在这种情况下,可以基于预测模式、分割树类型、分割类型或任何其它边信息来限制或推断AMT/MTS索引(或变换定义)。

在某些示例中,代替限制或推断特定的变换基础,可以基于限制/推断规则来应用上下文建模。在一个示例中,当限制规则被应用时,为情况指派上下文,在此情况下,变换选择仍然是可能的(在此变换选择由于限制而不可能时有所不同),但上下文被指派以信令通知此变换选择,结果,变换开销可能被更高效地编解码并且所有的变换选择是可用的。所指派的上下文可以是与变换选择信令通知中已经存在的上下文不同的单独的上下文。

在限制的以下示例中,相同的规则可以被用于变换选择开销信令通知中的上下文指派。此类设计的示例包括以下内容。

给定四叉树分割的TU(如在图7中被示为块190A而在图8中被示为块192C),子TUP0的变换可以被限制,使得DCT-8即被垂直地又被水平地使用,子TU P1的变换可以被限制,使得DCT-7被水平地应用而DST-8被垂直地使用,子TU P2的变换可以被限制,使得DCT-8被水平地应用而DST-7被垂直地使用,子TU P3的变换可以被限制,使得DST-7即被垂直地又被水平地使用。

给定四叉树分割的TU(如在图7中被示为块190A而在图8中被示为块192C),所有子TU(P0、P1、P2和P 3)可以被限制,使得DST-7即被垂直地又被水平地使用。在另一示例中,可以使用DCT-2而非DST-7或DCT-8。

给定二叉树分割的TU(如在图7中被示为块190D-190G而在图8中被示为块192D-192G),子TU的变换可以被如下推断/限制。对于诸如图7中的块190E和190F以及图8中的块192E和192F的水平划分,DCT-2可以被水平地使用而DCT-8可以被垂直地使用以对子TU P0进行变换,并且DCT-2可以被水平地使用而DST-7可以被垂直地使用以对子TU P1进行变换。对于诸如在图7中被示为块190D和190G以及在图8中被示为块192D和192G的垂直划分,DCT-8可以被水平地使用而DCT-2可以被垂直地使用以对子TU P0进行变换,并且DST-7可以被水平地使用而DCT-2可以被垂直地使用以对子TU P1进行变换。代替DCT-2,DST-7或DCT-8也可以被用作针对上述两种情况的变换。

上述方法中的一种或组合可以仅被用于帧内预测的CU。上述方法中的一种或组合可以仅被用于帧间预测的CU。上述方法中的一种或组合可以被用于帧内预测的和帧间预测的CU两者。上述方法中的一种或组合可以被用于亮度通道或色度通道或两者。TU分割和相关联的变换方案可以是基于上述方法的一种或组合来定义的。

图9是示出可以执行本公开的技术的示例视频编码器200的框图。图9是出于解释的目的而被提供的,并且不应被视为对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开在诸如HEVC视频编解码标准以及开发中的H.266视频编解码标准之类的视频编解码标准的上下文中描述视频编码器200。然而,本发明的技术不限于这些视频编解码标准,而且通常可适用于视频编码和解码。

在图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的单元可以被实施为作为硬件电路系统的部分的一个或多个电路或逻辑元件,或者被实现为FPGA的处理器、ASIC的部分。此外,视频编码器200可以包括附加或替代的处理器或处理电路系统以执行这些和其它功能。

视频数据存储器230可以存储将由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB218可以充当存储用于由视频编码器200进行的对后续视频数据的预测的参考视频数据的参考图片存储器。视频数据存储器230和DPB 218可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM),或其它类型的存储器设备。视频数据存储器230和DPB218可以由同一个存储器设备或单独的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其它组件一起位于片上,如图示的那样,或者相对于那些组件而位于片外。

在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非如此具体描述,或者视频编码器200外部的存储器,除非如此具体描述。确切地说,对视频数据存储器230的引用应被理解为存储视频编码器200接收以用于编码的视频数据(例如,用于将被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各种单元的输出的临时存储。

图9的各种单元被示出用于帮助理解由视频编码器200执行的操作。这些单元可以被实施为固定功能电路、可编程电路或其组合。固定功能电路指的是提供特定功能性并且对可被执行的操作进行了预设的电路。可编程电路指的是可以被编程以执行各种任务,并且在可以被执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在某些示例中,单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),而在某些示例中,单元中的一个或多个可以是集成电路。

视频编码器200可以包括由可编程电路形成的算术逻辑单元(ALU)、初等函数单元(EFU)、数字电路、模拟电路和/或可编程核。在其中使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收并执行的软件的指令(例如,目标代码),或者视频编码器200内的另一存储器(未示出)可以存储此类指令。

视频数据存储器230被配置为存储所接收的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片并且向残差生成单元204和模式选择单元202提供视频数据。视频数据存储器230中的视频数据可以是将被编码的原始视频数据。

模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括用于根据其它预测模式执行视频预测的附加功能单元。作为示例,模式选择单元202可以包括调色板单元、帧内块复制单元(其可以是运动估计单元222和/或运动补偿单元224的部分)、仿射单元、线性模型(LM)单元等等。

模式选择单元202通常协调多个编码通道(pass)以测试编码参数的组合以及针对此类组合的所得速率-失真值。编码参数可以包括CTU到CU的分割、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比其它经测试组合更好的速率-失真值的编码参数的组合。

视频编码器200可以将从视频数据存储器230检索的图片分割成一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据诸如上述HEVC的QTBT结构或四叉树结构之类的树结构来分割图片的CTU。如上所述,视频编码器200可以通过根据树结构分割CTU来形成一个或多个CU。此类CU通常还可以被称为“视频块”或“块”。

通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前CU、或HEVC中的PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以标识一个或多个参考图片(例如,被存储在DPB 218中的一个或多个先前经编解码图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差之和(SAD)、平方差之和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多类似的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样本差来执行这些计算。运动估计单元222可以标识具有这些计算所得的最低值的参考块,指示最紧密匹配当前块的参考块。

运动估计单元222可以形成一个或多个运动向量(MV),这一个或多个MV定义参考图片中的参考块的位置相对于当前图片中的当前块的位置。运动估计单元222随后可以向运动补偿单元224提供运动向量。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224随后可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一示例,如果运动向量具有分数样本精度,则运动补偿单元224可以根据一个或多个插值滤波器来对针对预测块的值进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索针对由相应运动向量标识的两个参考块的数据,并例如通过逐样本的平均或加权平均来组合所检索的数据。

作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以从与当前块相邻的样本生成预测块。例如,对于方向模式,帧内预测单元226通常可以数学地组合相邻样本的值,并且在跨当前块的所定义方向上填充这些计算值,以产生预测块。作为另一示例,对于DC模式,帧内预测单元226可以计算针对当前块的相邻样本的平均,并且生成预测块以至于对于该预测块的每个样本,都包括此所得平均。

模式选择单元202向残差生成单元204提供预测块。残差生成单元204从视频数据存储器230接收当前块的原始未编码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差。所得逐样本差定义针对当前块的残差块。在某些示例中,残差生成单元204还可以确定残差块中的样本值之间的差,以使用残差差分脉冲编解码调制(residual differential pulse code modulation,RDPCM)来生成残差块。在某些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。

在其中模式选择单元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的非对称分割来用于帧间预测。

在其中模式选择单元202不进一步将CU分割成PU的示例中,每个CU可与亮度编解码块和对应色度编解码块相关联。如上所述,CU的尺寸可以指CU的亮度编解码块的尺寸。视频编码器200和视频解码器300可以支持尺寸为2N×2N、2N×N或N×2N的CU。

对于诸如帧内块复制模式编解码、仿射模式编解码和线性模型(LM)模式编解码之类的其它视频编解码技术,作为若干示例,模式选择单元202经由与编解码技术相关联的相应单元生成针对正被编码的当前块的预测块。在某些示例中,诸如调色板模式编解码,模式选择单元202可以不生成预测块,而是生成指示用于基于所选调色板来重构块的方式的语法元素。在此类模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。

如上所述,残差生成单元204接收针对当前块和对应预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差。

根据本公开的技术,作为生成针对当前块的残差块(即,变换单元)的部分,残余生成单元204可以根据分割树类型而将针对当前块的残差块分割成多个残差子块(即,变换单元)。残差生成单元204可以对方形残差块以及非方形残差块(例如,矩形残差块)执行此类分割,以生成方形以及非方形的残差子块,并且残差生成单元204还可以分割残差子块中的一个或多个。

如上所述,分割块可以根据诸如图7和图8中所示的四叉树分割、二叉树分割、三元树分割或四TU分割中的一个或多个而被分割成残差子块。在某些示例中,分割块可以根据四叉树分割或二叉树分割中的一个或多个而被分割成残差子块。

当残差生成单元204根据二叉树分割、三元树分割或四TU分割来分割残差块时,残差生成单元204可以水平地划分残差块或垂直地划分残差块。例如,图7的块190C、190E、190F和190H示出了水平划分的示例,而图7的块190B、190D、190G和190I示出了垂直划分的示例。

当残差生成单元204根据二叉树分割或三元树分割来水平地划分或垂直地划分残差块时,残差生成单元204可以对称地划分残差块或者可以不对称地划分残差块。例如,图7的块190D和190E示出了对称划分的示例,而图7的块190F和190G示出了不对称划分的示例。

变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、卡南-洛伊夫变换(KLT)或概念上类似的变换应用于残差块。在某些示例中,变换处理单元206可以对残差块执行多个变换,例如,初级变换和次级变换,诸如旋转变换。在某些示例中,变换处理单元206不将变换应用于残差块。

在某些实例中,变换处理单元206可以将多变换(MT)方案的多个变换应用于针对当前块的残差块,包括将MT方案的多个变换应用于从残差块的分割所得的多个残差子块中的每一个。MT方案可以定义例如要应用于残差块的初级变换和次级变换。附加地或替代地,MT方案可以定义水平变换和垂直变换,诸如在上文讨论的图5A和图5B中所示的那些。在任何情况下,变换处理单元206可以将MT方案的每个变换应用于残差块以生成变换系数块的变换系数。

例如,变换处理单元206可以选择用于多个残差子块中的每一个的变换,其中对用于多个残差子块中的相应残差块的变换的选择是针对相应残差块的多变换选择(multipletransform selection,MTS)索引。以此方式,可以针对每个残差子块选择多变换。

在另一示例中,变换处理单元206可以选择用于残差块的变换,该变换被应用于从残差块的分割所得的多个残差子块中的每一个。例如,可以针对残差块选择被应用于从残差块的分割所得的每个残差子块的多变换。在图8中的块192C的示例中,针对块192C的所选择的多变换可以被应用于残差子块P0、P1、P2和P3中的每一个。

根据本公开的技术,变换处理单元206可以确定针对多个残差子块中的每一个的经编解码块标志(cbf)和/或变换跳过标志。经编解码块标志可以信令通知关于是否针对残差子块发送了至少一个非零系数变换级别(non-zero coefficient transform level)的信息。变换跳过标志可以信令通知关于是否针对残差子块跳过了变换的信息。

根据本公开的技术,变换处理单元206可以至少部分地基于以下之一来确定用于从分割残差块所得的多个残差子块的变换核:用于残差块的分割树类型或者用于残差块的分割类型。

根据本公开的技术,变换处理单元206可以至少部分地基于以下之一来确定用于多个残差子块的上下文指派:用于残差块的分割树类型或者用于残差块的分割类型。在某些示例中,变换处理单元206可以确定针对当前块的亮度分量和/或当前块的色度分量的用于多个残差子块的上下文指派。

在一个示例中,当变换处理单元206确定残差块根据四叉树分割而被分割成四个残差子块时,变换处理单元206可以确定:对于多个残差子块中的第一残差子块,DCT-8被用作水平变换和垂直变换两者;对于多个残差子块中的第二残差子块,DST-7被用于水平变换,而DST-8被用作垂直变换;对于多个残差子块中的第三残差子块,DCT-8被用于水平变换,而DST-7被用作垂直变换;以及对于多个残差子块中的第四残差子块,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当变换处理单元206确定残差块根据四叉树分割而被分割成四个残差子块时,变换处理单元206可以确定对于多个残差子块中的每一个,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当变换处理单元206确定残差块根据四叉树分割而被分割成四个残差子块时,变换处理单元206可以确定对于多个残差子块中的一个或多个,DCT-2被用作水平变换或垂直变换中的至少一个。因此,例如,对于多个残差子块中的一个或多个,DCT-2可以被用作水平变换,而DST-7或DCT-8可以被用作垂直变换,并且对于多个残差子块中的一个或多个,DCT-2可以被用作垂直变换,而DST-7或DCT-8可以被用作水平变换。

在另一示例中,当变换处理单元206确定残差块根据二叉树分割而被分割两个残差子块,并且用于残差块的分割类型是水平划分时,变换处理单元206可以确定:对于多个残差子块中的第一残差子块,DCT-2被用作水平变换,而DCT-8被用作垂直变换;并且对于多个残差子块中的第二残差子块,DCT-2被用作水平变换,而DST-7被用作垂直变换。

在另一示例中,当变换处理单元206确定残差块根据二叉树分割而被分割两个残差子块,并且用于残差块的分割类型是垂直划分时,变换处理单元206可以确定:对于多个残差子块中的第一残差子块,DCT-8被用作水平变换,而DCT-2被用作垂直变换;并且对于多个残差子块中的第二残差子块,DST-7被用作水平变换,而DCT-2被用作垂直变换。

在另一示例中,当变换处理单元206确定残差块根据二叉树分割而被分割成两个残差子块时,变换处理单元206可以确定对于多个残差子块中的一个或多个,DST-7或DCT-8中的一个被用作水平变换或垂直变换中的至少一个。在上述二叉树分割的示例中,对DST-7或DCT-8的使用可以代替DCT-2。

在某些示例中,逆变换处理单元206可以至少部分地基于残差块的尺寸来确定用于残差块的上下文指派。例如,当残差块具有小的尺寸,诸如小于或等于16个样本时(例如,尺寸为16个样本的4×4块),并且当残差块根据二叉树分割而被分割时,逆变换处理单元206可以确定用于多个残差子块的上下文指派,使得对于多个残差子块中的每一个,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当残差块具有大的尺寸,诸如大于或等于16个样本时(例如,尺寸为32个样本的4×8块),并且当残差块根据二叉树分割而被分割时,变换处理单元206可以确定用于多个残差子块的上下文指派,使得对于多个残差子块中的第一残差子块,DCT-2被用作水平变换而DST-7被用作垂直变换,并且对于多个残差子块中的第二残差子块,DCT-2被用作垂直变换而DST-7被用作水平变换。

在另一示例中,当残差块具有小于或等于2个样本的水平尺寸或垂直尺寸时(例如,2×8块),变换处理单元206可以确定没有变换被应用于多个残差子块。

在某些示例中,变换处理单元206可以基于当前块是帧内预测的块来确定用于多个残差子块的上下文指派。在某些示例中,变换处理单元206可以基于当前块是帧间预测的块来确定用于多个残差子块的上下文指派。

量化单元208可以量化变换系数块中的变换系数,以产生经量化变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能引入信息损失,并且因此,经量化变换系数可能具有比由变换处理单元206产生的原始变换系数更低的精度。

逆量化单元210和逆变换处理单元212可以分别将逆量化和逆变换应用于经量化变换系数块,以从变换系数块重构残差块。重构单元214可以基于经重构残差块以及由模式选择单元202生成的预测块来产生对应于当前块的经重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将经重构残差块的样本与来自模式选择单元202所生成的预测块的对应样本相加,以产生经重构块。

滤波器单元216可以对经重构块执行一个或多个滤波器操作。例如,滤波器单元216可以执行去方块操作以减少沿CU边缘的块效应伪影(blockiness artifact)。在某些示例中,可以跳过滤波器单元216的操作。

视频编码器200将经重构块存储在DPB 218中。例如,在其中不需要滤波器单元216的操作的示例中,重构单元214可以将经重构块存储至DPB218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的经重构块存储至DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218检索由经重构(并且可能经滤波)的块形成的参考图片,以对后续经编码图片的块进行帧间预测。此外,帧内预测单元226可以使用当前图片的在DPB218中的经重构块来对当前图片中的其它块进行帧内预测。

通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度编解码(context-adaptivevariable length coding,CAVLC)操作、CABAC操作、可变到可变(variable-to-variable,V2V)长度编解码操作、基于语法的上下文自适应二进制算术编解码(syntax-basedcontext-adaptive binary arithmetic coding,SBAC)操作、概率区间分割熵(Probability Interval Partitioning Entropy,PIPE)编解码操作、指数-哥伦布编码操作、或另一类型的熵编码操作。在某些示例中,熵编码单元220可以在其中语法元素不被熵编码的旁路模式中操作。

根据本公开的技术,熵编码单元220可以针对残差块而对与残差块相关联的分割信息进行熵编码。与残差块相关联的此类分割信息可以指示残差块是否被分割。如果残差块被分割,则经熵编码的分割信息可以进一步指示用于残差块的分割树类型。分割树类型可以是以下之一:四叉树分割、二叉树分割、三元树分割或四TU分割。为了指示分割树类型,经熵编码的分割信息可以包括到可能的分割类型的列表中的索引。如果分割树类型是二叉树分割、三元树分割或四TU分割中的一个,则经熵编码的分割信息可以进一步信令通知指示用于残差块的分割类型的信息,该信息指示残差块是被水平划分还是被垂直划分。此外,如果用于残差块的分割树类型是二叉树分割或三元树分割,则经熵编码的信息可以进一步信令通知指示TU是被对称划分还是被不对称划分的信息。

熵编码单元220还可以针对残差块而对与残差块相关联的其它信息进行熵编码。例如,熵编码单元220可以对针对从残差块的分割所得的多个残差子块中的每一个选择的变换的指示(诸如,针对相应残差子块中的每一个的MTS索引)进行编码。在另一示例中,熵编码单元220可以对针对残差块而选择的变换的指示进行编码,其中所选择的变换被应用于从残差块的分割所得的多个残差子块中的每一个。

根据本公开的某些方面,熵编码单元220可以抑制(refrain)对与用于从残差块的分割所得的多个残差子块的上下文指派或者用于多个残差子块的变换核相关联的信息进行编码。相反,视频解码器300可以基于与由熵编码单元220编码的残差块相关联的其它信息推断关于残差块的此类信息,这些其他信息诸如:残差块是否被分割、分割残差块所根据的分割树类型、残差块的分割类型以及由熵编码单元220熵编码的其它边信息。

视频编码器200可以输出包括重构条带或图片的块所需的经熵编码语法元素的比特流。具体地,根据本公开的技术,熵编码单元220可以输出包括例如与残差块相关联的经熵编码的分割信息的比特流。如此,一旦编码器200已确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块,熵编码单元220便可以对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。

以上描述的操作是相对于块而描述的。此类描述应当被理解为是用于亮度编解码块和/或色度编解码块的操作。如上所述,在某些示例中,亮度编解码块和色度编解码块是CU的亮度分量和色度分量。在某些实例中,亮度编解码块和色度编解码块是PU的亮度分量和色度分量。

在某些示例中,相对于亮度编解码块执行的操作不需要对色度编解码块重复。作为一个示例,用于标识针对亮度编解码块的运动向量(MV)和参考图片的操作不需要被重复用于标识针对色度编解码块的MV和参考图片。确切地说,针对亮度编解码块的MV可以被缩放以确定针对色度块的MV,而参考图片可以相同。作为另一示例,对于亮度编解码块和色度编解码块,帧内预测处理可以是相同的。

视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器,以及以电路系统实施并且被配置为进行以下操作的一个或多个处理单元:确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块,以及对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于残差块的分割树类型的信息。

图10是示出可以执行本公开的技术的示例视频解码器300的框图。图10是出于解释的目的而被提供的,且并非对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开描述了根据JEM、VVC和HEVC的技术的视频解码器300。然而,本公开的技术可由被配置为其它视频编解码标准的视频编解码设备执行。

在图10的示例中,视频解码器300包括经编解码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任一个或全部可以被实施于一个或多个处理器或处理电路系统中。例如,视频解码器300的单元可以被实施为作为硬件电路系统的部分的一个或多个电路或逻辑元件,或者被实现为FPGA的处理器、ASIC的部分。此外,视频解码器300可以包括附加或替代的处理器或处理电路系统以执行这些和其它功能。

预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括用于根据其它预测模式执行预测的附加单元。作为示例,预测处理单元304可以包括调色板单元、帧内块复制单元(其可以是运动补偿单元316的部分)、仿射单元、线性模型(LM)单元等等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。

CPB存储器320可以存储将由视频解码器300的组件解码的视频数据,诸如经编码视频比特流。存储在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括存储来自经编码视频比特流的经编码视频数据(例如,语法元素)的CPB。同样,CPB存储器320可以存储除经编解码图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各种单元的输出的临时数据。DPB 314通常存储经解码图片,视频解码器300可以将该经解码图片输出和/或在解码经编码视频比特流的后续数据或图片时用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种形成,诸如DRAM,包括SDRAM、MRAM、RRAM,或其它类型的存储器设备。CPB存储器320和DPB 314可以由同一个存储器设备或单独的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件一起位于片上,或者相对于那些组件而位于片外。

附加地或替代地,在某些示例中,视频解码器300可以从存储器120(图1)检索经编解码视频数据。即,存储器120可以存储如上文与CPB存储器320一起讨论的数据。同样地,当视频解码器300的功能性中的某些或全部以用于由视频解码器300的处理电路系统执行的软件来实施时,存储器120可以存储用于由视频解码器300执行的指令。如此,CPB存储器320连同图10的视频解码器300的其它组件一起表示用于接收比特流的部件的示例。

图10中示出的各种单元被示出用于帮助理解由视频解码器300执行的操作。这些单元可以被实施为固定功能电路、可编程电路或其组合。与图9类似,固定功能电路指的是提供特定功能性并且对可被执行的操作进行了预设的电路。可编程电路指的是可以被编程以执行各种任务,并且在可以被执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不可变的。在某些示例中,单元中的一个或多个可以是不同的电路块(固定功能的或可编程的),而在某些示例中,单元中的一个或多个可以是集成电路。

视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。

熵解码单元302可以从CPB接收经编码视频数据并对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素来生成经解码视频数据。

通常,视频解码器300在逐块的基础上重构图片。视频解码器300可以单独地对每个块执行重构操作(其中当前正被重构(即被解码)的块可以被称作“当前块”)。

熵解码单元302可以对定义经量化变换系数块的经量化变换系数的语法元素以及诸如量化参数(QP)和/或(一个或多个)变换模式指示之类的变换信息进行熵解码。

根据本公开的技术,视频解码器300可以在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差。指示残差块是否被分割的信息和指示用于残差块的分割树类型的信息可以是信令通知以下内容的语法元素:残差块是否被分割,以及如果是,用于残差块的分割树类型。

在某些示例中,指示用于残差块的分割树类型的信息可以是到树类型的集合中的索引信息,并且熵解码单元302可以基于所接收的索引信息来确定分割树类型。例如,树类型的集合信息可以包括四叉树分割和二叉树分割中的一个或多个。

在某些示例中,由视频解码器300接收的比特流可以进一步包括指示残差块是被水平划分还是被垂直划分,和/或残差块是被对称划分还是被不对称划分的信息。

例如,针对残差块,比特流可以包括信令通知该残差块是否被分割的标志。如果标志被启用,则比特流可以包括到分割树类型的列表中的索引,以指示用于分割残差块的分割树类型,诸如经由多个比特来索引到以下分割树类型的列表中:四叉树分割、二叉树分割、三元树分割和四TU分割。如果必要,则比特流随后还可以包括信令通知残差块是被水平划分还是被垂直划分,以及残差块是被对称划分还是被不对称划分的标志。

熵解码单元302可以对与针对正从比特流解码的数据的当前块的残差块相关联的分割信息进行熵解码。具体地,熵解码单元302可以解码分割信息以确定残差块是否被分割。如果比特流中的用于残差块的分割信息信令通知残差块被分割,则熵解码单元302可以进一步解码分割信息以确定用于残差块的分割树类型。取决于残差块的分割树类型,熵解码单元302可以解码比特流中的用于残差块的分割信息以确定残差块是被水平划分还是被垂直划分,以及残差块是被对称划分还是被不对称划分。如此,熵解码单元302连同图10的视频解码器300的其它组件一起表示用于确定残差块根据分割树类型而被分割成多个残差子块的部件的示例。

另外,在某些示例中,熵解码单元302还可以针对数据的当前块的残差块而对与残差块相关联的其它信息进行熵解码。例如,熵解码单元302可以对针对从残差块的分割所得的多个残差子块中的每一个选择的变换的指示(诸如,用于相应残差子块中的每一个的MTS索引)进行解码。

在另一示例中,熵解码单元302可以对针对残差块而选择的变换的指示进行解码,其中所选择的变换被应用于从残差块的分割所得的多个残差子块中的每一个。针对残差块选择的此类变换可以在残差块层级的比特流中被信令通知,由此节省了由于必须指示用于残差子块中的每一个的单独的变换而造成的开销,同时保持了将残差块分割成多个残差子块的能力。

根据本公开的技术,熵解码单元302可以基于诸如用于当前块的预测模式、用于残差块的分割树类型、用于残差块的分割类型,或者比特流中包括的任何其它边信息之类的信息来推断或限制用于多个残差子块中的每一个的经编解码块标志(cbf)和/或变换跳过标志。经编解码块标志可以信令通知关于是否针对残差子块发送了至少一个非零系数变换级别的信息。变换跳过标志可以信令通知关于是否针对残差子块跳过变换的信息。例如,熵解码单元302可以将残差子块限制为总是具有禁用的经编解码块标志(标志=0),使得对于残差子块不需要cbf信令通知。

熵解码单元302可以向逆变换处理单元308提供与残差块相关联的此类信息。因此,在逆量化单元306形成变换系数块之后,逆变换处理单元308可以使用与残差块相关联的此类信息连同由逆量化单元306提供的一个或多个变换系数块来生成与当前块相关联的残差块。

逆量化单元306可以使用与经量化变换系数块相关联的QP来确定量化程度,并且同样地,确定供逆量化单元306应用的逆量化程度。逆量化单元306例如可以执行逐位左移操作以对经量化变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。

在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆卡南-洛伊夫变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。如此,逆变换处理单元308连同图10的视频解码器300的其它组件一起表示用于至少部分地基于残差块根据分割树类型而被分割成多个残差子块而产生针对当前块的残差数据的部件的示例。

根据本公开的技术,逆变换处理单元308可以从熵解码单元302接收与针对数据的当前块的残差块相关联的分割信息,并且可以确定残差块到多个残差子块的分割。如上所述,熵解码单元302可以对用于当前块的残差块的分割信息进行解码,该分割信息指示残差块是否被分割,残差块是被水平划分还是被垂直划分,以及残差块是被对称划分还是被不对称划分。逆处理单元308可以使用此类信息来确定针对当前块数据的从残差块的分割所得的多个残差子块。

逆变换处理单元308可以至少部分地基于分割信息将一个或多个逆变换应用于一个或多个变换系数块以生成针对视频数据的当前块的残差块,包括生成针对当前块数据的残差块的从分割所得的多个残差子块。以此方式,逆变换处理单元308产生针对视频数据的当前块的残差数据。

在某些示例中,逆变换处理单元308可以应用由熵解码单元302从比特流解码的信息所指示的一个或多个逆变换。例如,如果比特流包括指示针对从残差块的分割所得的多个残差子块中的每一个而选择的变换的信息,诸如针对相应残差子块中的每一个的MTS索引,则逆变换处理单元308可以将所选择的变换应用于多个残差子块。在另一示例中,如果比特流包括指示针对残差块选择的变换的信息,则逆变换处理单元308可以将所选择的变换应用于残差块中的多个残差子块中的每一个。

在某些示例中,逆变换处理单元308可以至少部分地基于被包括在比特流中的用于残差块的分割信息和/或其它边信息而推断或限制在水平方向或垂直方向中的至少一个上的用于多个残差子块的变换核。推断或限制用于多个残差子块的变换核包括至少部分地基于被包括在比特流中的用于残差块的分割信息和/或其它边信息来推断或限制用于多个残差子块的MTS索引或变换定义。

推断或限制变换核意味着变换核没有在比特流中被明确地信令通知。反之,变换核可以至少部分地基于比特流中的其他信息而被推断或限制。在一个示例中,变换核可以基于由比特流信令通知的残差块的分割树类型(诸如基于残差块是根据二叉树分割、四TU分割还是三元树分割而被分割),基于残差块的分割类型(诸如基于残差树是被水平划分还是被垂直划分),和/或基于在比特流中信令通知的任何其他边信息而被推断或限制。逆变换处理单元308可以至少部分地基于用于多个残差子块的所推断或限制的变换核而将一个或多个逆变换应用于一个或多个变换系数块以生成针对视频数据的当前块的残差块。

在某些示例中,逆变换处理单元308可以至少部分基于被包括在比特流中的用于残差块的分割信息和/或其它边信息而推断或限制用于多个残差子块的上下文指派,并且逆变换处理单元308可以至少部分地基于所推断或限制的用于多个残差子块的上下文指派而将一个或多个逆变换应用于一个或多个变换系数块以生成针对视频数据的当前块的残差块。

当上下文指派被推断或限制时,用于多个残差子块的变换选择可以仍然是可能的,其中上下文被指派以信令通知此类变换选择。所指派的上下文可以是与变换选择信令通知中已经存在的上下文不同的单独的上下文。作为结果,变换开销可以被更高效地编解码并且所有变换选择可以是可用的。

推断或限制用于多个残差子块的上下文指派意味着上下文指派没有在比特流中被明确地信令通知。反之,上下文指派可以至少部分地基于比特流中的其他信息而被推断或限制。在一个示例中,上下文指派可以基于由比特流信令通知的残差块的分割树类型(诸如基于残差块是根据四叉树分割、二叉树分割、四TU分割还是三元树分割而被分割),基于残差块的分割类型(诸如基于残差树是被水平划分还是被垂直划分),和/或基于在比特流中信令通知的任何其他边信息而被推断或限制。在某些示例中,逆变换处理单元308可以推断或限制针对当前块的亮度分量和/或当前块的色度分量的用于多个残差子块的上下文指派。

在一个示例中,当逆变换处理单元308确定残差块根据四叉树分割而被分割成四个残差子块时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得:对于多个残差子块中的第一残差子块,DCT-8被用作水平变换和垂直变换两者;对于多个残差子块中的第二残差子块,DST-7被用于水平变换,而DST-8被用作垂直变换;对于多个残差子块中的第三残差子块,DCT-8被用于水平变换,而DST-7被用作垂直变换;以及对于多个残差子块中的第四残差子块,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当逆变换处理单元308确定残差块根据四叉树分割而被分割成四个残差子块时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得:对于多个残差子块中的每一个,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当逆变换处理单元308确定残差块根据四叉树分割而被分割成四个残差子块时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得:对于多个残差子块中的一个或多个,DCT-2被用作水平变换和垂直变换中的至少一个。因此,例如,对于多个残差子块中的一个或多个,DCT-2可以被推断或限制为水平变换,而DST-7或DCT-8可以被推断或限制为垂直变换,并且对于多个残差子块中的一个或多个,DCT-2可以被推断或限制为垂直变换,而DST-7或DCT-8可以被推断或限制为水平变换。

在另一示例中,当逆变换处理单元308确定残差块根据二叉树分割而被分割两个残差子块,并且用于残差块的分割类型是水平划分时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得:对于多个残差子块中的第一残差子块,DCT-2被用作水平变换,而DCT-8被用作垂直变换;并且对于多个残差子块中的第二残差子块,DCT-2被用作水平变换,而DST-7被用作垂直变换。

在另一示例中,当逆变换处理单元308确定残差块根据二叉树分割而被分割两个残差子块,并且用于残差块的分割类型是垂直划分时,变换逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得:对于多个残差子块中的第一残差子块,DCT-8被用作水平变换,而DCT-2被用作垂直变换;并且对于多个残差子块中的第二残差子块,DST-7被用作水平变换,而DCT-2被用作垂直变换。

在另一示例中,当逆变换处理单元308确定残差块根据二叉树分割而被分割成两个残差子块时,逆变换处理单元308可以推断或限制用于多个分割子块的上下文指派,使得:对于多个残差子块中的一个或多个,DST-7或DCT-8中的一个被用作水平变换和垂直变换中的至少一个。在上述二叉树分割的示例中,对DST-7或DCT-8的使用可以代替DCT-2。

在某些示例中,逆变换处理单元308可以至少部分地基于残差块的尺寸来推断或限制用于残差块的上下文指派。例如,当残差块具有小的尺寸,诸如小于或等于16个样本时(例如,具有16个样本的尺寸的4×4块),以及当残差块根据二叉树分割而被分割时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得对于多个残差子块中的每一个,DST-7被用作水平变换和垂直变换两者。

在另一示例中,当残差块具有大的尺寸,诸如大于或等于16个样本时(例如,尺寸为32个样本的4×8块),并且当残差块根据二叉树分割而被分割时,逆变换处理单元308可以推断或限制用于多个残差子块的上下文指派,使得对于多个残差子块中的第一残差子块,DCT-2被用作水平变换而DST-7被用作垂直变换,并且对于多个残差子块中的第二残差子块,DCT-2被用作垂直变换而DST-7被用作水平变换。

在另一示例中,当残差块具有小于或等于2个样本的水平尺寸或垂直尺寸时(例如,2×8块),逆变换处理单元308可以推断或限制没有变换被应用于多个残差子块。

在某些示例中,逆变换处理单元308可以基于当前块是帧内预测的视频块来推断用于多个残差子块的上下文指派。在其他示例中,逆变换处理单元308可以基于当前块是帧间预测的视频块来推断用于多个残差子块的上下文指派。在另一示例中,逆变换处理单元308可以基于当前块是帧间预测的视频块或帧内预测的视频块来推断用于多个残差子块的上下文指派。

此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中的从其检索参考块的参考图片,以及相对于当前块在当前图片中的位置标识参考块在参考图片中的位置的运动向量。运动补偿单元316通常可以用与相对于运动补偿单元224(图9)而描述的方式基本类似的方式来执行帧间预测过程。

作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再次,帧内预测单元318通常可以用与相对于帧内预测单元226(图9)而描述的方式基本类似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索针对当前块的相邻样本的数据。

重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本与预测块的对应样本相加以重构当前块。如此,重构单元310连同图10的视频解码器300的其它组件一起表示用于使用残差数据来对当前块进行解码的部件的示例。

滤波器单元312可以对经重构块执行一个或多个滤波器操作。例如,滤波器单元312可以执行去方块操作以减少沿经重构块边缘的块效应伪影。滤波器单元312的操作不必在所有示例中执行。

视频解码器300可以将经重构块存储在DPB 314中。例如,在不执行滤波器单元312的操作的示例中,重构单元310可以将经重构块存储至DPB 314。在执行滤波器单元312的操作的示例中,滤波器单元312可以将经滤波的经重构块存储至DPB 314。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片和用于后续运动补偿的先前经解码图片的样本。而且,视频解码器300可以从DPB 314输出经解码图片(例如,经解码视频)以用于诸如图1的显示设备118之类的显示设备上的后续呈现。

以此方式,视频解码器300表示视频解码设备的示例,包括被配置为存储视频数据的存储器,以及以电路系统实施并被配置为进行以下操作的一个或多个处理单元:在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差;基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块;至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据;以及使用残差数据来对当前块进行解码。

图11是示出用于对当前块进行编码的示例方法的流程图。当前块可以包括当前CU。尽管相对于视频编码器200(图1和图9)进行描述,但应理解,其它设备可以被配置为执行与图11的方法类似的方法。

在此示例中,初始地,视频编码器200预测当前块(350)。例如,视频编码器200可以形成针对当前块的预测块。视频编码器200随后可以计算针对当前块的残差块(352)。为了计算残差块,视频编码器200可以计算针对当前块的原始未编码块与预测块之间的差。作为计算残差块的部分,视频编码器200可以根据四叉树分割或二叉树分割中的至少一个将残差块分割成多个残差子块。如果视频编码器200根据二叉树分割来分割残差块,则视频编码器200可以水平地分割或垂直地分割残差块。此外,如果视频编码器200根据二叉树分割来分割残差块,则视频编码器200可以对称地分割或不对称地分割残差块。

视频编码器200随后可以对残差块的系数进行变换并量化(354)。接下来,视频编码器200可以扫描残差块的经量化变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC对变换系数进行编码。视频编码器200随后可以输出块的经熵编码数据(360)。视频编码器200可以将块的经熵编码数据输出为比特流。比特流可以针对残差块而信令通知残差块是否被分割,用于分割残差块的分割树类型,指示残差块是否被分割的信息以及指示用于被分割的残差块的分割树类型的信息。

图12是示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前CU。尽管相对于视频解码器300(图1和图10)进行描述,但应理解,其它设备可以被配置为执行与图12的方法类似的方法。

视频解码器300可以接收针对当前块的经熵编码数据,诸如包括对应于当前块的经熵编码预测信息和针对残差块的系数的经熵编码数据的比特流(370)。视频解码器300可以对经熵编码数据进行熵解码以确定针对当前块的预测信息并且再现残差块的系数(372)。视频解码器300可以确定用于当前块的残差块的比特流是否包括指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息。

视频解码器300可以例如使用如针对当前块的预测信息所指示的帧内预测或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。视频解码器300随后可以对所再现的系数进行逆扫描(376),以创建经量化变换系数的块。视频解码器300随后可以对变换系数进行逆量化和逆变换以产生残差块(378)。视频解码器300可以使用关于残差块的分割的此类信息来推断或限制用于残差块的上下文指派和变换选择,以便对变换系数进行逆变换以产生残差块。视频解码器300最终可以通过组合预测块和残差块来对当前块进行解码(380)。

图13是示出用于对具有根据分割树类型而被分割的残差块的数据的当前块进行解码的示例方法的流程图。尽管相对于视频解码器300(图1和图10)进行描述,但应理解,其它设备可以被配置为执行与图13的方法类似的方法。在某些示例中,视频解码器300可以包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。在某些示例中,视频解码器300包括以下中的至少一个:集成电路、微处理器或无线通信设备。在某些示例中,视频解码器300包括被配置为显示经解码视频数据的显示器。

视频解码器300可以在包括视频数据的经编码表示的比特流中接收指示残差块是否被分割的信息,以及基于残差块被分割的、指示用于残差块的分割树类型的信息,其中残差块指示当前块与预测块之间的差(400)。

在某些示例中,接收指示分割树类型的信息可以包括接收到树类型的集合中的索引信息,并且视频解码器300可以基于所接收的索引信息来确定分割树类型。在某些示例中,树类型的集合信息包含四叉树分割和二叉树分割中的一个或多个。在某些示例中,确定分割树类型可以包括确定分割树类型是二叉树分割中的一个,并且视频解码器300可以接收指示残差块是被水平划分还是被垂直划分的信息。

视频解码器300可以基于所接收的信息,即残差块被分割以及用于残差块的分割树类型,确定残差块根据分割树类型而被分割成的多个残差子块(402)。

视频解码器300可以至少部分地基于残差块根据分割树类型而被分割成多个残差子块来产生针对当前块的残差数据(404)。在某些示例中,视频解码器300可以至少部分地基于用于残差块的分割树类型或者用于残差块的分割类型而从比特流推断在水平方向或垂直方向中的至少一个上的用于多个残差子块的变换核,其中产生针对当前块的残差数据可以进一步包括至少部分地基于用于多个残差子块的变换核而产生残差数据。

视频解码器300可以使用残差数据来对当前块进行解码(406)。

在某些示例中,为了使用残差数据对当前块进行解码,视频解码器300可以对表示用于当前块的预测模式的数据进行解码,使用预测模式生成针对当前块的预测块,并且将预测块与残差数据组合以再现当前块。

在某些示例中,当前块是帧间预测的或帧内预测的。在某些示例中,当前块包括编解码单元(CU)的亮度块。在某些示例中,当前块是编解码单元(CU)或CU的块,针对当前块的残差是变换单元(TU)或TU的块,并且多个残差子块是非方形子TU并且具有与CU不同的尺寸。

图14是示出用于对具有根据分割树类型而被分割的残差块的数据的当前块进行编码的示例方法的流程图。尽管相对于视频编码器200(图1和图9)进行描述,但应理解,其它设备可以被配置为执行与图14的方法类似的方法。在某些示例中,视频编码器200包括以下中的至少一个:集成电路、微处理器或无线通信设备。在某些示例中,视频编码器200可以包括被配置为捕捉视频数据的相机。在某些示例中,视频编码器200可以包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。

视频编码器200可以确定针对视频数据的当前块的残差块根据分割树类型而被分割成多个残差子块(450)。视频编码器200可以对作为视频数据的经编码表示的比特流进行编码,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息(452)。

在某些示例中,作为视频数据的经编码表示的比特流,该比特流信令通知指示残差块是否被分割的信息,并且进一步信令通知指示用于被分割的残差块的分割树类型的信息。在某些示例中,树类型的集合信息包括四叉树分割和二叉树分割中的一个或多个。在某些示例中,当指示用于残差块的分割树类型的信息指示分割树类型是二叉树分割中的一个时,比特流进一步信令通知指示残差块是被水平划分还是被垂直划分的信息。

在某些示例中,当前块是编解码单元(CU)或CU的块,针对当前块的残差块是变换单元(TU)或TU的块,并且多个残差子块是非方形子TU并且具有与CU不同的尺寸。

应认识到,取决于示例,本文中所描述的技术中的任一个的某些动作或事件可以以不同序列来执行,可以被添加、合并或完全省去(例如,并非所有所描述的动作或事件对于技术的实践是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器来并发执行,而不是顺序执行。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么这些功能可以作为一个或多个指令或代码在计算机可读介质上被存储或发送,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其与诸如数据存储介质之类的有形介质相对应;或者通信介质,包括例如根据通信协议而促进计算机程序从一处到另一处的传递的任何介质。以此方式,计算机可读介质通常可对应于(1)非暂态的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是能由一个或多个计算机或一个或多个处理器访问以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,此类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者可被用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的任何其它介质。同样,任何连接适当地被称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(DSL)、或者诸如红外、无线电、微波之类的无线技术来从网站、服务器或其他远程源发送指令,则同轴电缆、光缆、双绞线、DSL或诸如红外、无线电和微波之类的无线技术被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂态介质,而是针对非暂态的、有形的存储介质。本文使用的磁盘和光盘包括紧凑盘(CD)、激光盘、光盘、数字通用光盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再生数据,而光盘则用激光以光学方式再生数据。上述项的组合也应被包括在计算机可读介质的范围内。

指令可以由诸如以下各项的一个或多个处理器执行:一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或离散逻辑电路。相应地,如本文中所使用的术语“处理器”和“处理电路”可以指前述结构中的任一个或适于实现本文中所描述的技术的任何其它结构。另外,在某些方面,本文中所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内被提供,或被并入组合编解码器中。同样,该技术可以以一个或多个电路或逻辑元件中来完全实现。

本公开的技术可以被实现于各种设备或装置中,包括无线手持设备、集成电路(IC)或IC集(例如,芯片集)。在本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不必需要由不同硬件单元实现。更确切地,如上所述,各种单元可以被组合在编解码器硬件单元中或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合适当的软件和/或固件来提供。

各种示例已被描述。这些示例和其他示例处于所附权利要求的范围之内。

相关技术
  • 用于视频编解码的基于树的变换单元(TU)分割
  • 基于幂次变换的SAR图像Ostu分割方法
技术分类

06120113104850