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

用于视频译码的变换单元分割方法与流程

2021-11-10 05:29:00 来源:中国专利 TAG:

用于视频译码的变换单元分割方法
1.相关申请的交叉引用
2.本专利申请要求陈建乐等人于2019年3月22日递交的发明名称为“用于视频译码的变换单元分割(transform unit partitioning for video coding)”的第62/822,533号美国临时专利申请案的权益,该申请案通过引用的方式并入本文中
技术领域
3.本发明大体上描述了视频译码中的视频压缩技术。更具体地,本发明描述了可以在不破坏流水线块结构的情况下进行变换单元分割的技术。


背景技术:

4.即使在视频较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中传输或以其它方式传送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中传送。由于内存资源可能有限,当在存储设备中存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。


技术实现要素:

5.第一方面涉及一种视频解码器实现的对经编码视频码流进行解码的方法。所述方法包括:当第一变换树节点(transform tree node,ttn)尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,所述视频解码器使用垂直二叉树划分分割所述ttn;在所述ttn被分割后,所述视频解码器将变换单元(transform unit,tu)应用于变换系数,以生成残差;所述视频解码器根据所述残差生成重建块。
6.所述方法提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误
或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
7.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述分割所述ttn生成子ttn,所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。
8.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:当所述第一子ttn尺寸和所述第二子ttn尺寸大于所述最大tu大小时,所述视频解码器使用四叉树划分分割所述子ttn,以生成所述tu;当所述第一子ttn尺寸和所述第二子ttn尺寸小于或等于所述最大tu大小时,所述视频解码器确定所述子ttn为所述tu。
9.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一ttn尺寸和所述第二ttn尺寸以亮度样本数量测量。
10.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一子ttn尺寸和所述第二子ttn尺寸以亮度样本数量测量。
11.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn中所有tu的ttn深度设置为一(1)。
12.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn中所有tu的ttn深度是根据获得所述tu所需的划分次数设置的。
13.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述垂直二叉树划分根据以下语法实现:versplitfirst=(tbwidth>maxtbsizey&&tbwidth>tbheight)?1:0。
14.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn是当所述第一ttn尺寸为2n个亮度样本,所述第二ttn尺寸为n个亮度样本,并且所述最大tu大小为1/2n个亮度样本时,使用所述垂直二叉树划分进行分割的。
15.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:n=64个亮度样本。
16.第二方面涉及一种视频编码器实现的编码方法。所述方法包括:当第一变换树节点(transform tree node,ttn)尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,所述视频编码器使用垂直二叉树划分分割所述ttn;在所述ttn被分割后,所述视频编码器将变换单元(transform unit,tu)应用于残差,以生成变换系数;所述视频编码器将所述变换系数编码到码流中;所述视频编码器存储用于向视频解码器发送的所述码流。
17.所述方法提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误
或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
18.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述分割所述ttn生成子ttn,所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。
19.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:当所述第一子ttn尺寸和所述第二子ttn尺寸大于所述最大tu大小时,所述视频解码器使用四叉树划分分割所述子ttn,以生成所述tu;当所述第一子ttn尺寸和所述第二子ttn尺寸小于或等于所述最大tu大小时,所述视频解码器确定所述子ttn为所述tu。
20.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一ttn尺寸和所述第二ttn尺寸以亮度样本数量测量。
21.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一子ttn尺寸和所述第二子ttn尺寸以亮度样本数量测量。
22.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn中所有tu的ttn深度设置为一(1)。
23.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn中所有tu的ttn深度是根据获得所述tu所需的划分次数设置的。
24.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述垂直二叉树划分根据以下语法实现:versplitfirst=(tbwidth>maxtbsizey&&tbwidth>tbheight)?1:0。
25.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述ttn是当所述第一ttn尺寸为2n个亮度样本,所述第二ttn尺寸为n个亮度样本,并且所述最大tu大小为1/2n个亮度样本时,使用所述垂直二叉树划分进行分割的。
26.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:n=64个亮度样本。
27.第三方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经编码视频码流;耦合到所述接收器的存储器,所述存储器存储指令;耦合到所述存储器的处理器,其中,所述处理器用于执行所述指令,以使得所述解码设备:当第一变换树节点(transform tree node,ttn)尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,使用垂直二叉树划分分割所述ttn;在所述ttn被分割后,将变换单元(transform unit,tu)应用于变换系数,以生成残差;根据所述残差生成重建块。
28.所述解码设备提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错
误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
29.可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述解码设备还包括显示器,所述显示器用于显示使用所述重建块生成的图像。
30.第四方面涉及一种编码设备。所述编码设备包括:存储器,包含指令;耦合到所述存储器的处理器,其中,所述处理器用于实现所述指令,以使所述编码设备:当第一变换树节点(transform tree node,ttn)尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,使用垂直二叉树划分分割所述ttn;在所述ttn被分割后,所述视频编码器将变换单元(transform unit,tu)应用于残差,以生成变换系数;将所述变换系数编码到码流中;耦合到所述处理器的发送器,其中,所述发送器用于向视频解码器发送所述码流。
31.所述编码设备提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
32.可选地,在任一上述方面中,提供了所述方面的另一种实现方式:所述存储器在所述发送器向所述视频解码器发送所述码流之前存储所述码流。
33.第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;耦合到所述接收器的发送器,其中,所述发送器用于向解码器发送所述码流或向显示器发送经解码图像;耦合到所述接收器或所述发送器中的至少一个的存储器,其中,所述存储器用于存储指令;耦合到所述存储器的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文公开的任何方法。
34.所述译码装置提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
35.第六方面涉及一种系统。所述系统包括:编码器;与所述编码器通信的解码器,其中,所述编码器或所述解码器包括本文公开的所述解码设备、所述编码设备或所述译码装置。
36.所述系统提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
37.第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收图像进行编码或接收码流进行解码;耦合到所述接收模块的发送模块,所述发送模块用于向解码模块发送所述码流或向显示模块发送经解码图像;耦合到所述接收模块或所述发送模块中的至少一个的存储模块,其中,所述存储模块用于存储指令;耦合到所述存储模块的处理模块,其中,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文公开的任何方法。
38.所述译码模块提供了一类技术,其中,当ttn的最大变换单元(transform unit,tu)大小小于第一ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割具有不同于第二ttn尺寸的第一ttn尺寸的变换树节点(transform tree node,ttn)(例如,矩形ttn),以生成子ttn(例如,正方形子ttn),所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。当所述第一子ttn尺寸和所述第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
附图说明
39.为了更全面地理解本发明,现在参考以下结合附图和具体实施方式进行的简要描述,其中,相似的附图标记表示相似的部件。
40.图1为可以采用分割技术的示例性译码系统的框图;
41.图2为可以实现分割技术的示例性视频编码器的框图;
42.图3为可以实现分割技术的示例性视频解码器的框图;
43.图4中的(a)至(e)共同示出了受各种分割类型中的一种分割类型影响的块;
44.图5示出了破坏s
×
s流水线结构的变换单元分割技术的示例;
45.图6示出了保持s
×
s流水线结构完整性的变换单元分割技术的实施例;
46.图7示出了保持s
×
s流水线结构完整性的变换单元分割技术的实施例;
47.图8为对经编码视频码流进行解码的方法的一个实施例;
48.图9为对视频码流进行编码的方法的一个实施例;
49.图10为视频译码设备的示意图;
50.图11为译码模块的一个实施例的示意图。
具体实施方式
51.首先应当理解,尽管下文提供一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任意数量的技术来实施,无论这些技术是当前已知的还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物的完整范围内修改。
52.图1为可以采用本文描述的视频译码技术的示例性译码系统10的框图。如图1所示,译码系统10包括源设备12,其中,所述源设备12提供稍后由目的地设备14解码的经编码视频数据。具体地,源设备12可以通过计算机可读介质16将视频数据提供给目的地设备14。源设备12和目的地设备14可以包括各种设备中的任一种,包括台式电脑、笔记本(例如,膝上型)电脑、平板电脑、机顶盒、“智能”手机和“智能”板(pad)等电话手机、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可以用于无线通信。
53.目的地设备14可以通过计算机可读介质16接收待解码的经编码视频数据。计算机可读介质16可以包括任何类型的能够将经编码视频数据从源设备12移动到目的地设备14的介质或设备。在一个示例中,计算机可读介质16可以包括一个通信介质,以使源设备12能够实时将经编码视频数据直接发送给目的地设备14。经编码视频数据可以根据通信标准(例如,无线通信协议)来调制,然后发送给目的地设备14。该通信介质可以包括任何无线或有线通信介质,例如,射频(radio frequency,rf)频谱或一个或多个物理传输线。该通信介质可以形成基于分组的网络的一部分,分组网络例如为局域网、广域网或全球网络(例如,互联网)。该通信介质可以包括路由器、交换机、基站或任何其它可以促进源设备12与目的地设备14之间通信的设备。
54.在一些示例中,经编码数据可以从输出接口22输出到存储设备。类似地,经编码数据可以通过输入接口从存储设备中存取。该存储设备可以包括各种分布式或本地存取的数据存储介质中的任一种,例如,硬盘驱动器、蓝光光盘、数字视频光盘(digital video disk,dvd)、只读光盘存储器(compact disc read

only memory,cd

rom)、闪存、易失性或非易失性存储器,或任何其它合适的用于存储经编码视频数据的数字存储介质。在又一示例中,存储设备可以对应于文件服务器或可以存储由源设备12生成的经编码视频的另一中间存储设备。目的地设备14可以通过流式传输或下载方式从存储设备中存取所存储的视频数据。文件服务器可以是任何类型的能够存储经编码视频数据并将该经编码视频数据发送给目的地设备14的服务器。示例性文件服务器包括万维网服务器(例如,用于网站)、文件传
输协议(file transfer protocol,ftp)服务器、网络附属存储(network attached storage,nas)设备或本地磁盘驱动器。目的地设备14可以通过包括互联网连接的任何标准数据连接存取经编码视频数据。标准数据连接可以包括无线信道(例如,wi

fi连接)、有线连接(例如,数字用户线(digital subscriber line,dsl)、电缆调制解调器等)或适于存取在文件服务器中存储的经编码视频数据的两者组合。经编码视频数据从存储设备的传输可以是流式传输、下载传输或其组合。
55.本发明中的技术不一定限于无线应用或设置。这些技术可以应用于:视频译码,以支持各种多媒体应用中的任一种,例如,空中电视广播、有线电视传输、卫星电视传输、http动态自适应流媒体(dynamic adaptive streaming over http,dash)等互联网流式视频传输;将数字视频编码以存储于数据存储介质中;对存储于数据存储介质上的数字视频解码;或其它应用。在一些示例中,译码系统10可以用于支持单向或双向视频传输,以支持视频流式传输、视频回放、视频广播和/或视频电话等应用。
56.在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12中的视频编码器20和/或目的地设备14中的视频解码器30可以用于应用上述视频译码技术。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(例如,外部相机)接收视频数据。类似地,目的地设备14可以与外部显示设备连接,而不是包括集成显示设备。
57.图1所示的译码系统10仅是一个示例。视频译码技术可以由任何数字视频编码和/或解码设备执行。尽管本发明中的技术通常由视频译码设备执行,但这些技术还可以由视频编码器/解码器(通常称为“编解码器(codec)”)执行。此外,本发明中的技术还可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理单元(graphics processing unit,gpu)或类似设备。
58.源设备12和目的地设备14仅仅是此类译码设备的示例,其中,源设备12生成经译码视频数据,以发送给目的地设备14。在一些示例中,源设备12和目的地设备14可以基本上对称地操作,使得源设备12和目的地设备14都包括视频编码和解码组件。因此,译码系统10可以支持视频设备12和14之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
59.源设备12中的视频源18可以包括视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频档案库,和/或从视频内容提供方接收视频的视频馈送接口。在另一替代方案中,视频源18可以生成基于计算机图形的数据作为源视频,或直播视频、存档视频和计算机生成视频的组合。
60.在一些情况下,当视频源18是摄像机时,源设备12和目的地设备14可以组成摄像头手机或可视电话。但是,如上所述,本发明中描述的技术通常可以适用于视频译码,并且可以应用于无线应用和/或有线应用。在每种情况下,所捕获、预捕获或计算机生成的视频都可以由视频编码器20进行编码。然后,经编码视频信息可以通过输出接口22输出到计算机可读介质16。
61.计算机可读介质16可以包括瞬态介质,例如,无线广播或有线网络传输,还可以包括存储介质(即,非瞬时性存储介质),例如,硬盘、闪存盘、光盘、数字视频光盘、蓝光光盘或
其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码视频数据,并且通过网络传输等将经编码视频数据提供给目的地设备14。类似地,介质生产设施(例如,光盘冲压设施)中的计算设备可以从源设备12接收经编码视频数据,并产生包含经编码视频数据的光盘。因此,在各种示例中,计算机可读介质16可以理解为包括一个或多个各种形式的计算机可读介质。
62.目的地设备14中的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息。该语法信息还由视频解码器30使用,包括描述块和其它编码单元(例如,图像组(group of picture,gop))的特征和/或处理的语法元素。显示设备32将经解码视频数据显示给用户,并且可以包括各种显示设备中的任一种,如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)、等离子体显示器、有机发光二极体(organic light emitting diode,oled)显示器或其它类型的显示设备。
63.视频编码器20和视频解码器30可以根据视频编码标准(例如,目前开发的高效视频编码(efficiency video coding,hevc)标准)进行操作,并且可以遵守hevc测试模型(hevc test model,hm)。或者,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,这些标准例如为国际电信联盟电信标准化部门(international telecommunications union telecommunication standardization sector,itu

t)h.264标准(还称为运动图像专家组(motionpicture expert group,mpeg)

4第10部分、高级视频编码(advanced video coding,avc))、h.265/hevc及此类标准的扩展版本。但是,本发明中的技术不限于任何特定的编码标准。视频编码标准的其它示例包括mpeg

2和itu

t h.263。尽管在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可以分别与音频编码器和音频解码器集成,并且可以包括合适的复用器

解复用器(multiplexer

demultiplexer,mux

demux)单元或其它硬件和软件,以对共同数据流或单独数据流中的音频和视频都进行编码处理。如果适用,mux

demux单元可以遵守itu h.223复用器协议,或用户数据报协议(user datagram protocol,udp)等其它协议。
64.视频编码器20和视频解码器30可以分别实现为各种合适的编码器电路中的任一种,例如,一个或多个微处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)、离散逻辑、软件、硬件、固件或其任何组合。当上述技术部分以软件实现时,一种设备可以将该软件的指令存储在合适的非瞬时性计算机可读介质中,并且在硬件中使用一个或多个处理器来执行这些指令,以执行本发明中的技术。视频编码器20和视频解码器30都可以包括在一个或多个编码器或解码器中,其中任一个可以集成为相应设备中的组合编码器/解码器(encoder/decoder,codec)的一部分。包括视频编码器20和/或视频解码器30的设备可以包括集成电路、微处理器和/或无线通信设备(例如,蜂窝电话)。
65.图2是示出了可以实施视频译码技术的视频编码器20的示例的框图。视频编码器20可以对视频条带(slice)内的视频块执行帧内译码和帧间译码。帧内译码依赖于空间预测来减少或去除给定视频帧或图像内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的相邻帧或图像内的视频中的时间冗余。帧内模式(i模式)可以指若干
种基于空间的译码模式中的任一种。帧间模式(例如,单向预测(uni

prediction/uni prediction)(p模式)或双向预测(bi

prediction/bi prediction)(b模式))可以指若干种基于时间的译码模式中的任一种。
66.如图2所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、加法器50、变换处理单元52、量化单元54以及熵编码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测(intra

predition/intra prediction)单元46和分割单元48。为了视频块重建,视频编码器20还包括反量化单元58、逆变换单元60和加法器62。去块效应滤波器(图2中未示出)也包括在内,以对块边界进行滤波,从而从重建视频中去除块效应。如果需要,去块效应滤波器通常对加法器62的输出进行滤波。除去块效应滤波器之外,还可以使用其它(环内或环后)滤波器。为了简洁起见而未示出此类滤波器,但是如果需要,此类滤波器(作为环内滤波器)可以对加法器50的输出进行滤波。
67.在编码过程期间,视频编码器20接收待译码的视频帧或条带。可以将帧或条带划分成多个视频块。运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个块对接收到的视频块执行帧间预测译码,以提供时间预测。帧内预测单元46还可以相对于与待译码块位于同一帧或条带中的一个或多个相邻块对接收到的视频块执行帧内预测译码,以提供空间预测。视频编码器20可以执行多个译码回合,例如以选择用于视频数据的每一块的适当译码模式。
68.此外,分割单元48可以根据先前译码回合中对先前分割方案的评估而将视频数据的块分割成子块。例如,分割单元48可以最初将一帧或条带分割成多个最大编码单元(largest coding unit,lcu),并且根据率失真分析(例如,率失真优化)将多个lcu中的每一个分割成多个子编码单元(sub

coding unit,sub

cu)。模式选择单元40可以进一步产生指示将lcu分割为子cu的四叉树数据结构。四叉树中的叶节点cu可以包括一个或多个预测单元(prediction unit,pu)和一个或多个变换单元(transform unit,tu)。tu包含用于空间块变换和量化的系数。即,tu是一种空间变换,可用于将残差值转换为变换系数或将变换系数转换回残差值。
69.本发明使用术语“块”来指hevc上下文中的cu、pu或tu中的任一个或其它标准上下文中的类似数据结构(例如,h.264/avc中的宏块及其子块)。一个cu包括编码节点、与该编码节点相关联的pu和tu。cu的大小与编码节点的大小对应,呈正方形。cu的大小范围可以为8
×
8个像素到最大值为64
×
64个像素或更大的树块大小。每个cu可以包括一个或多个pu和一个或多个tu。与cu相关联的语法数据可以描述例如将cu分割为一个或多个pu。对cu进行跳过模式或直接模式编码、进行帧内预测模式编码或进行帧间预测(inter

predictio/inter prediction)模式编码,分割模式可能有所不同。pu可以分割成非正方形。与cu相关联的语法数据还可以描述例如根据四叉树将cu分割为一个或多个tu。一个tu可以是正方形或非正方形(例如,矩形)。
70.模式选择单元40可以根据误差结果等选择帧内或帧间译码模式中的一种,将所得到的经帧内或帧间译码块提供给加法器50以生成残差块数据,并提供给加法器62以重建经编码块以用作参考帧。模式选择单元40还将语法元素(例如,运动矢量、帧内模式指示符、分割信息和其它此类语法信息)提供给熵编码单元56。
71.运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而分别说明。由运动估计单元42执行的运动估计为生成运动矢量的过程,这些运动矢量估计视频块的运动。例如,运动矢量可以表示当前视频帧或图像内的视频块的pu相对于参考帧(或其它经译码单元)内的预测块(其相对于当前帧(或其它经译码单元)内的正被译码的当前块)的位移。预测块为发现在像素差方面与待译码块高度匹配的块。所述像素差可以通过绝对差和(sum of absolute difference,sad)、平方差和(sum of square difference,ssd)或其它差度量进行确定。在一些示例中,视频编码器20可以计算存储于参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以执行相对于整数像素位置和分数像素位置的运动搜索,并以分数像素精度输出运动矢量。
72.运动估计单元42通过将经帧间译码条带中的视频块的pu的位置与参考图像的预测块的位置进行比较而计算该pu的运动矢量。参考图像可以选自第一参考图像列表(列表0)或第二参考图像列表(列表1),其中每一个列表标识存储于参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算得到的运动矢量发送给熵编码单元56和运动补偿单元44。
73.由运动补偿单元44执行的运动补偿可以包括根据运动估计单元42确定的运动矢量来提取或生成预测块。另外,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。在接收到当前视频块的pu的运动矢量时,运动补偿单元44可以在其中一个参考图像列表中找到运动矢量所指向的预测块。加法器50通过从正被译码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值来形成残差视频块,如下所述。通常,运动估计单元42执行关于亮度分量的运动估计,运动补偿单元44将根据亮度分量计算得到的运动矢量用于色度分量和亮度分量两者。模式选择单元40还可以生成与视频块和视频条带相关联的语法元素,以供视频解码器30在解码视频条带的视频块时使用。
74.帧内预测单元46可以对当前块进行帧内预测,以替代由运动估计单元42和运动补偿单元44执行的帧间预测,如上文所述。具体地,帧内预测单元46可以确定帧内预测模式,以用于编码当前块。在一些示例中,帧内预测单元46可以在单独的编码回合中等使用各种帧内预测模式对当前块进行编码,而帧内预测单元46(或者在一些示例中,模式选择单元40)可以从测试模式中选择适当的帧内预测模式进行使用。
75.例如,帧内预测单元46可以使用针对各种经测试的帧内预测模式的速率失真分析而计算率失真值,并在经测试模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定经编码块与原始未经编码块(曾经被编码以产生经编码块)之间的失真(或误差)量以及用以产生经编码块的码率(即位数)。帧内预测单元46可以根据各个经编码块的失真和速率计算比率,以判断哪种帧内预测模式对于该块表现最佳率失真值。
76.另外,帧内预测单元46可以用于使用深度建模模式(depth modeling mode,dmm)对深度图像的深度块进行译码。模式选择单元40可以判断可用dmm模式是否比帧内预测模式和其它dmm模式(例如,使用率失真优化(rate

distortion optimization,rdo))产生更好的译码结果。与深度图像对应的纹理图像的数据可以存储于参考帧存储器64中。运动估计单元42和运动补偿单元44还可以用于对深度图像的深度块进行帧间预测。
77.在选择块的帧内预测模式(例如,传统的帧内预测模式或其中一个dmm模式)之后,
帧内预测单元46可以将信息提供给熵编码单元56,该信息表示为块选择的帧内预测模式。熵编码单元56可以对表示所选帧内预测模式的信息进行编码。视频编码器20可以在所发送的码流中携带配置数据,所述配置数据可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),各种块的编码上下文的定义,待用于每个编码上下文的最有可能帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。
78.视频编码器20通过从正被译码的原始视频块中减去来自模式选择单元40的预测数据而形成残差视频块。加法器50表示执行这种减法运算的一个或多个组件。
79.变换处理单元52将离散余弦变换(discrete cosine transform,dct)或概念上类似的变换等变换应用于残差块,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于dct的其它变换。还可以使用小波变换、整数变换、子频带变换或其它类型的变换。
80.变换处理单元52将变换应用于残差块,从而产生残差变换系数块。变换可以将残差信息从像素值域转换到变换域,例如,频域。变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低码率。量化过程可以减小与部分或全部系数相关联的位深度。量化程度可以通过调整量化参数来修改。在一些示例中,量化单元54可以接着对包括量化变换系数的矩阵执行扫描。或者,熵编码单元56可以执行扫描。
81.在量化之后,熵编码单元56对量化变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编码(context adaptive variable length coding,cavlc)、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,cabac)、基于语法的上下文自适应二进制算术编码(syntax

based context

adaptive binary arithmetic coding,sbac)、概率区间分割熵(probability interval partitioning entropy,pipe)编码或其它熵编码技术。在基于上下文的熵编码的情况中,上下文可以基于相邻块。在由熵编码单元56执行熵编码之后,经编码码流可以发送给另一设备(例如,视频解码器30)或存档以供稍后发送或检索。
82.反量化单元58和逆变换单元60分别应用反量化和逆变换,以在像素域中重建残差块,例如以供稍后用作参考块。运动补偿单元44可以通过将残差块加到参考帧存储器64内的其中一个帧的预测块中来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建残差块,以计算子整数像素值以供用于运动估计中。加法器62将重建残差块加到由运动补偿单元44产生的运动补偿预测块中,以产生重建视频块以供存储于参考帧存储器64中。重建视频块可以由运动估计单元42和运动补偿单元44用作参考块,以对后续视频帧中的块进行帧间译码。
83.图3为可以实现视频译码技术的视频解码器30的示例的框图。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和加法器80。在一些示例中,视频解码器30可执行通常与关于视频编码器20(图2)描述的编码回合大体互逆的解码回合。运动补偿单元72可以根据从熵解码单元70接收到的运动矢量来生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收到的帧内预测模式指示符来生成预测数据。
84.在解码过程期间,视频解码器30从视频编码器20接收经编码视频码流,该经编码视频码流表示经编码视频条带的视频块及相关联的语法元素。视频解码器30中的熵解码单元70对码流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符和其它语法元素。熵解码单元70将运动矢量和其它语法元素转发给运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
85.当视频条带经译码为帧内译码(i)条带时,帧内预测单元74可以根据指示的帧内预测模式和来自当前帧或图像中的先前经解码块的数据为当前视频条带的视频块生成预测数据。当视频帧经译码为帧间译码(例如,b、p或gpb)条带时,运动补偿单元72根据从熵解码单元70接收到的运动矢量和其它语法元素为当前视频条带的视频块产生预测块。这些预测块可以根据其中一个参考图像列表内的其中一个参考图像而产生。视频解码器30可以根据存储于参考帧存储器82中的参考图像,使用默认构建技术来构建参考帧列表0和列表1。
86.运动补偿单元72通过解析运动矢量和其它语法元素为当前视频条带的视频块确定预测信息,并使用所述预测信息为正被解码的当前视频块产生预测块。例如,运动补偿单元72使用接收到的一些语法元素来确定用于对视频条带中的视频块进行译码的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,b条带、p条带或gpb条带)、条带的一个或多个参考图像列表的构建信息、条带中的每个经帧间编码视频块的运动矢量、条带中的每个经帧间译码视频块的帧间预测状态和用于对当前视频条带中的视频块进行解码的其它信息。
87.运动补偿单元72还可以根据插值滤波器进行插值。运动补偿单元72可以使用由视频编码器20在视频块的编码期间使用的插值滤波器来计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元72可以根据接收到的语法元素来确定由视频编码器20使用的插值滤波器,并使用这些插值滤波器来产生预测块。
88.与深度图像对应的纹理图像的数据可以存储于参考帧存储器82中。运动补偿单元72还可以用于对深度图像的深度块进行帧间预测。
89.图像和视频压缩发展迅速,由此产生了各种编码标准。这些视频编码标准包括itu

th.261、国际标准化组织/国际电工委员会(international organization for standardization/international electrotechnical commission,iso/iec)mpeg

1第2部分、itu

th.262或iso/iec mpeg

2第2部分、itu

t h.263、iso/iec mpeg

4第2部分、高级视频编码(advanced video coding,avc)(也称为itu

t h.264或iso/iec mpeg

4第10部分)以及高效视频编码(high efficiency video coding,hevc)(也称为itu

t h.265或mpeg

h第2部分)。avc包括可分级的视频编码(scalable video coding,svc)、多视图视频编码(multiview video coding,mvc)和多视图视频编码加深度(multiview video coding plus depth,mvc d)、3d avc(3d

avc)等扩展版本。hevc包括可分级的hevc(scalable hevc,shvc)、多视图hevc(multiview hevc,mv

hevc)、3d hevc(3d

hevc)等扩展版本。还存在由itu

t和iso/iec的联合视频专家组(joint video experts team,jvet)开发的一种新视频编码标准,即通用视频编码(versatile video coding,vvc)。虽然vvc标准有几个工作草案(working draft,wd),但本文中特别参考vvc的一个工作草案,即b.bross、j.chen和s.liu的“通用视频编码(草案4)(versatile video coding(draft 4))”,jvet

m1001,第13届jvet会议,2019年1月(vvc草案4)。
90.在执行视频译码时,视频被分离为帧。这些帧被分割为像素块。然后,通过帧内预测和/或帧间预测压缩每个像素块,这些像素块可以被称为编码树单元(coding tree unit,ctu)或图像块。帧内预测将每个图像块与帧中的一个或多个参考样本匹配。然后对帧内预测模式进行编码以指示图像块与(一个或多个)参考样本之间的关系。经编码帧内预测模式比图像像素占用更少的空间。对于在帧之间匹配的图像块,帧间预测以类似的方式进行。
91.分割系统用于将图像块划分为子块。例如,可以使用采用各种划分模式的树结构将节点(例如,块)划分为子节点(例如,子块)。可以采用不同的划分模式获得不同的部分。此外,划分模式也可以递归地应用于进一步细分节点。
92.图4中的(a)至(e)共同示出了受各种分割类型中的一种分割类型影响的块400(例如,ctu)。图4中的(a)中的块400已经被四叉树(quad

tree,qt)分割(又名划分)为四个子块402。图4中的(b)和(c)中的块400已经被二叉树(binary

tree,bt)分割为两个子块402。对于二叉树划分,有两种划分类型。图4中的(b)示出了垂直二叉树分割,图4中的(c)示出了水平二叉树分割。支持除四叉树和二叉树以外的树类型。例如,图4中的(d)示出垂直中心侧三叉树(triple

tree,tt)分割,图4中的(e)示出水平中心侧tt分割。tt分割也可以称为三叉树分割或中心侧tt分割。在图4中的(d)和(e)中,块400被划分为子块402中的三个子块。分割过程可以迭代以划分块400,直到达到最小允许的四叉树叶节点大小。
93.上述qt

bttt译码结构(又名,四叉树加多树(quad tree plus multitree,qt

mtt))可以用于将根节点分割为多个叶节点。首先,可以仅通过四叉树分割将根节点递归地分割为一个或多个四叉树叶节点,并且可以使用二叉树分割或三叉树分割将所述四叉树叶节点进一步划分为编码树的叶节点。该编码树结构在以下文献中描述:x.li、h.

c.chuang、j.chen、m.karczewicz、l.zhang、x.zhao、a.said的“多类型树(multi

type

tree)”jvet

d0117,第4届jvet会议(中国成都),2016年10月。
94.编码树节点(例如,ctu)可以通过四叉树分割(如图4中的(a)中)、垂直二叉树分割(如图4中的(b)中)、水平二叉树分割(如图4中的(c))、垂直三叉树分割(如图4中的(d))和水平三叉树分割(如图4中的(e))来划分。编码树的叶节点通常被称为编码单元(coding unit,cu)。编码树节点可以与变换树节点(transform tree node,ttn)相关联。ttn是编码树从ctu分割的区域。当变换树节点的宽度或高度大于最大tu大小时,将变换树节点隐式分割为多个较小的子变换树节点。最大tu是tu在视频序列中可以使用的最大尺寸。变换树的叶节点通常被称为变换单元(transform unit,tu)。
95.在vvc草案4中,最大编码树单元(coding tree unit,ctu)大小为128
×
128,最大tu大小(表示为maxtrsize)固定为64
×
64。宽度(tbwidth)或高度(tbheight)大于最大tu大小的变换树节点被分割为宽度等于min(tbwidth,maxtrsize)和高度等于min(tbheight,maxtrsize)的多个tu,其中,min(a,b)是介于a与b之间的最小值。vvc草案4中的tu分割如下。
96.当变换树节点的宽度和高度(表示为tbwidth和tbheight)都大于maxtrsize时,四叉树划分用于将变换树节点分割为四个大小相等的子变换树节点,这些子变换树节点的宽度等于tbwidth/2,高度等于tbheight/2。
97.当变换节点的宽度大于maxtrsize,但变换树节点的高度不大于maxtrsize时,垂
直二叉树划分用于将变换树节点分割为两个大小相等的子树节点,这些子树节点的宽度等于tbwidth/2,高度等于tbheight。
98.当变换节点的高度大于maxtrsize,但变换树节点的宽度不大于maxtrsize时,水平二叉树划分用于将变换树节点分割为两个大小相等的子树节点,这些子树节点的宽度等于tbwidth,高度等于tbheight/2。
99.maxtrsize值可以在序列参数集(sequence parameter set,sps)中指示,而不是固定值64。例如,在hevc中,maxtrsize通过两个语法元素,即log2_min_transform_block_size_minus2和log2_diff_max_min_transform_block_size在sps中指示。可能的maxtrsize值可以是64、32和16。
100.在硬件视频编解码器流水线设计中,块通常布置在基于s
×
s块的流水线结构中,其中,s=64。编码树单元对应于一个或多个s
×
s非重叠区域,每个区域被命名为流水线块。tu处理顺序不应破坏s
×
s流水线结构。即,在处理下一个s
×
s流水线块中的tu之前,一个s
×
s流水线块中的所有tu都应被处理。
101.在128
×
64变换树节点和maxtrsize为32的情况下,128
×
64变换树节点对应于两个64
×
64流水线块。使用vvc草案4中的tu分割方法,首先通过四叉树划分将128
×
64变换树节点划分为四个64
×
32变换树节点,每个64
×
32变换树节点通过垂直二叉树划分进一步划分为32
×
32变换树节点。
102.图5示出了破坏s
×
s流水线结构的示例变换单元分割技术500。图5的示例描绘了具有宽度w=128和高度h=64的ttn 502。宽度和高度以亮度样本数量测量。ttn 502已经被分割或划分成第一64
×
64流水线块504和第二64
×
64流水线块506,这些流水线块可以被称为ttn 502的子ttn 508、510、512、514。子ttn 508、510、512、514的大小为64
×
32。第一64
×
64流水线块504和第二64
×
64流水线块506各自已经被分割或划分成多个32
×
32tu,标记为从0到7。虽然图5中的示例提供了某些尺寸,但本领域技术人员将认识到,在实际应用中可能会遇到其它尺寸。
103.如图5所示,(用箭头)示出128
×
64ttn中的tu处理顺序,其中,tu
n
在tu
n
‑1(n=1、
……
、7)之后被处理。在图5中,tu0、tu1、tu4和tu5在第一64
×
64流水线块504中,tu2、tu3、tu6和tu7在第二64
×
64流水线块506中。如图所示,第二64
×
64流水线块506中的tu2紧随第一64
×
64流水线块504中的tu1之后被处理。但是,当处理第二64
×
64流水线块506中的tu2时,第一流水线块504中的所有tu并非都已经过处理。即,当处理第二64
×
64流水线块506中的tu2时,第一64
×
64流水线块504中的tu4和tu5还没有被处理。这是一个问题,因为tu2可能需要参考tu4和tu5才能正确处理。因此,vvc草案4中的tu分割技术500破坏了64
×
64流水线结构。
104.本文公开了一种改进的tu分割方法,其保持s
×
s流水线结构的完整性。如下面将更全面地解释的,该方法提供了一类技术,其中,当变换树节点(transform tree node,ttn)的最大tu大小小于第一ttn尺寸和第二ttn尺寸时,最初使用垂直二叉树划分或水平二叉树划分分割矩形ttn。这将生成子ttn(例如,正方形子ttn)。当第一子ttn尺寸和第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割所述子ttn,以生成变换单元(transform unit,tu)。否则,当第一子ttn尺寸和第二子ttn尺寸与最大tu大小相同时,如最初划分,子ttn为tu。通过以这种方式(例如,在任何四叉树划分之前,对ttn进行垂直或水平二叉树划
分)分割ttn,不会破坏通用视频编码(versatile video coding,vvc)标准中使用的流水线块结构。因此,相对于当前编解码器,视频译码中的编码器/解码器(又名“编解码器”)得到了改进(例如,保持了s
×
s流水线结构或过程的完整性)。实际上,改进的视频译码过程可以消除编解码器中的错误或故障,这在发送、接收和/或查看视频时为用户提供更好的用户体验。
105.图6示出了用于保持s
×
s流水线结构完整性的ttn 602的变换单元分割技术600的实施例。在图6的实施例中,使用了vvc草案4的qt

mtt编码树结构(参见图4),ctu大小为128
×
128,并且最大tu大小小于ttn 602的宽度和高度(例如,边)。在一个实施例中,最大tu大小在码流中(例如,在sps中)指示。
106.当ttn 602具有宽度w=128和高度h=64并且最大tu大小小于64(例如,32)时,最初使用垂直bt划分分割ttn 602,以生成各自大小为64
×
64的两个子ttn 608、610。这与图5的变换单元分割技术500形成对比,在图5中,最初使用qt划分分割ttn 502,生成四个子ttn 508、510、512、514,大小为64
×
32,如vvc草案4中规定。
107.在图6所示的最初垂直bt划分之后,当子ttn 608和子ttn 610大于最大tu大小时,使用qt划分进一步分割每个子ttn 608、610,以生成tu(例如,标记为0到7的tu)。根据子ttn 608、610相对于最大tu大小的大小,在达到最大tu大小之前,可以执行多次qt划分。当子ttn 608和子ttn 610小于或等于最大tu大小时,子ttn 608、610对应于tu。即,子ttn 608、610被确定为tu。在图6中,32
×
32tu从0到7标记。
108.使用图6的变换单元分割技术600,保持s
×
s流水线结构的完整性(如箭头所示)。即,第一64
×
64流水线块604中的所有tu在第二64
×
64流水线块606中的任何tu之前被处理。
109.值得注意的是,图6的变换单元分割技术600非常适合于分割第一ttn尺寸(例如,128)不同于第二ttn尺寸(例如,64)的矩形ttn(例如,ttn 602)。如图所示,当tu的最大tu大小(例如,32)小于第一ttn尺寸和第二ttn尺寸时,变换单元分割技术600能够生成第一子ttn尺寸(例如,64)等于第二子ttn尺寸(例如,64)的子ttn(例如,子ttn 608、610)。
110.在实际应用中,ttn 602和子ttn 608、610的尺寸可以不同于图6中所示的尺寸。此外,在实际应用中,最大tu大小可能不同于32。在一个实施例中,ttn 602、子ttn 608、610和最大tu大小以亮度样本数量测量。
111.在一个实施例中,当第一ttn尺寸为2n个亮度样本,第二ttn尺寸为n个亮度样本,并且最大tu大小为1/2n个亮度样本时,使用图6所示的垂直bt划分分割ttn 602。在一个实施例中,n=64。但是,其它尺寸或大小可用于实际应用中。
112.在一个实施例中,ttn(例如,ttn 602)中的所有tu(例如,标记为0

7的tu)的ttn深度设置为一(1)。在一个实施例中,ttn中所有tu的ttn深度是根据获得tu所需的划分次数设置的。
113.下面的表1中提供了基于vvc草案4中的transform_tree()语法表的修改后的transform_tree()语法表。在表中,改进的tu分割方法对应于斜体部分(即从第4行到第21行)。在表1中,tbwidth和tbheight表示变换树节点(例如,ttn 602)的宽度和高度,maxtbsizey表示最大tu大小。vvc草案4中的隐式tu分割方法在第8行至第20行中。
114.对于128
×
64变换树节点(例如,ttn 602)和maxtbsizey小于64(例如,32),条件

tbwidth>64&&tbheight==64&&maxtbsizey<64”为真(true)。因此,变换树节点通过垂直二叉树划分进一步划分为两个64
×
64变换树节点。两个64
×
64子变换树节点中的每一个进一步以四叉树划分划分为多个变换单元。
115.当变换树节点的条件“tbwidth>64&&tbheight==64&&maxtbsizey<64”为假(false)时,使用vvc草案4中的tu分割方法。
116.表1:变换树语法的示例
[0117][0118][0119]
图7示出了用于保持s
×
s流水线结构完整性的ttn 702的变换单元分割技术700的实施例。在图7的实施例中,利用vvc草案4的qt

mtt编码树结构(参见图4),ctu大小为128
×
128,并且最大tu大小小于ttn 702的两个尺寸(例如,边)。在一个实施例中,最大tu大小在码流中(例如,在sps中)指示。
[0120]
当ttn 702具有宽度w=64和高度h=128并且最大tu大小小于64(例如,32)时,最
初使用水平bt划分分割ttn 702,以生成各自大小为64
×
64的两个子ttn 708、710。这与图5的变换单元分割技术500形成对比,在图5中,最初使用qt划分分割ttn 502,生成四个子ttn 508、510、512、514,大小为64
×
32,如vvc草案4中规定。
[0121]
在图7所示的最初水平bt划分之后,当子ttn 708和子ttn 710大于最大tu大小时,使用qt划分进一步分割每个子ttn 708、710,以生成tu(例如,标记为0到7的tu)。根据子ttn 708、710相对于最大tu大小的大小,在达到最大tu大小之前,可以执行多次qt划分。当子ttn 708和子ttn 710小于或等于最大tu大小时,子ttn 708、710对应于tu。即,子ttn 708、710被确定为tu。在图7中,32
×
32tu从0到7标记。
[0122]
使用图7的变换单元分割技术700,保持s
×
s流水线结构的完整性(如箭头所示)。即,第一64
×
64流水线块704中的所有tu在第二64
×
64流水线块706中的任何tu之前被处理。
[0123]
下面的表2中提供了基于vvc草案4中的transform_tree()语法表的修改后的transform_tree()语法表。在表中,改进的tu分割方法对应于斜体部分(即从第4行到第24行)。在表2中,tbwidth和tbheight表示变换树节点(例如,ttn 702)的宽度和高度,maxtbsizey表示最大tu大小。
[0124]
对于64
×
128变换树节点(例如,ttn 702)和maxtbsizey小于64(例如,32),条件“tbwidth==64&&tbheight>64&&maxtbsizey<64”为真。因此,变换树节点通过水平二叉树划分进一步划分为两个64
×
64变换树节点。两个64
×
64子变换树节点中的每一个进一步以四叉树划分划分为变换单元,与vvc草案4中相同。
[0125]
表2:变换树语法的示例
[0126]
[0127][0128]
表3中提供了基于vvc草案4中的transform_tree()语法表的修改后的transform_tree()语法表。该表提供了与表2中使用语法表相同的tu分割结果。这是因为当maxtrsize为64时,vvc中的tu分割方法也会将128
×
64变换树节点或64
×
128变换树节点划分为64
×
64子节点。因此,删除表2中的条件检查“maxtbsizey<64”,以降低计算复杂性。
[0129]
类似地,也可以删除表1中的条件检查“maxtbsizey<64”,得到与使用表1相同的tu结果。
[0130]
表3:变换树语法的示例
[0131][0132]
表4中提供了基于vvc草案4中的transform_tree()语法表的修改的transform_tree(),它提供了与表2中使用语法表相同的tu分割结果。
[0133]
表4:变换树语法的示例
[0134][0135]
图8是对由视频解码器(例如,视频解码器30)实现的经编码视频码流进行解码的方法800的实施例。方法800可以在从视频编码器(例如,视频编码器20)直接或间接接收到所述经解码码流之后执行。方法800改进了解码过程,因为保持了s
×
s流水线结构或过程的完整性。因此,实际上,提高了编解码器的性能,从而提供了更好的用户体验。
[0136]
在步骤802中,当第一ttn尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,使用垂直二叉树划分分割变换树节点(例如,ttn 602)。在一个实施例中,分割ttn生成子ttn,所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。在一个实施例中,方法还包括:当第一子ttn尺寸和第二子ttn尺寸大于最
大tu大小时,使用四叉树划分分割子ttn,以生成tu;当第一子ttn尺寸和第二子ttn尺寸小于或等于最大tu大小时,确定子ttn为tu。
[0137]
在一个实施例中,垂直二叉树划分根据以下语法实现:versplitfirst=(tbwidth>maxtbsizey&&tbwidth>tbheight)?1:0。
[0138]
在一个实施例中,ttn是当第一ttn尺寸为2n个亮度样本,第二ttn尺寸为n个亮度样本,并且最大tu大小为1/2n个亮度样本时,使用垂直二叉树划分进行分割的。在一个实施例中,n=64个亮度样本。
[0139]
在一个实施例中,第一ttn尺寸、第二ttn尺寸、第一子ttn尺寸和第二子ttn尺寸以亮度样本数量测量。
[0140]
在步骤804中,在ttn被分割后,将变换单元(transform unit,tu)应用于变换系数,以生成残差。在一个实施例中,ttn中所有tu的ttn深度设置为一(1)。在一个实施例中,ttn中所有tu的ttn深度是根据获得tu所需的划分次数设置的。
[0141]
在步骤806中,根据残差生成重建块。
[0142]
图9是对视频编码器(例如,视频编码器20)实现的视频码流进行编码的方法900的实施例。方法900可以在(例如,视频中的)图像要编码在视频码流中并接着向视频解码器(例如,视频解码器30)发送时执行。方法900改进了编码过程,因为保持了s
×
s流水线结构或过程的完整性。因此,实际上,提高了编解码器的性能,从而提供了更好的用户体验。
[0143]
在块902中,当第一ttn尺寸大于ttn的最大变换单元(transform unit,tu)大小时并且当所述第一ttn尺寸大于第二ttn尺寸时,使用垂直二叉树划分分割变换树节点(例如,ttn 602)。在一个实施例中,分割ttn生成子ttn,所述子ttn具有等于第二子ttn尺寸的第一子ttn尺寸。在一个实施例中,方法还包括:当第一子ttn尺寸和第二子ttn尺寸大于最大tu大小时,使用四叉树划分分割子ttn,以生成tu;当第一子ttn尺寸和第二子ttn尺寸小于或等于最大tu大小时,确定子ttn为tu。
[0144]
在一个实施例中,垂直二叉树划分根据以下语法实现:versplitfirst=(tbwidth>maxtbsizey&&tbwidth>tbheight)?1:0。
[0145]
在一个实施例中,ttn是当第一ttn尺寸为2n个亮度样本,第二ttn尺寸为n个亮度样本,并且最大tu大小为1/2n个亮度样本时,使用垂直二叉树划分进行分割的。在一个实施例中,n=64个亮度样本。
[0146]
在一个实施例中,第一ttn尺寸、第二ttn尺寸、第一子ttn尺寸和第二子ttn尺寸以亮度样本数量测量。
[0147]
在步骤904中,在ttn被分割后,将变换单元(transform unit,tu)应用于残差,以生成变换系数。在一个实施例中,ttn中所有tu的ttn深度设置为一(1)。在一个实施例中,ttn中所有tu的ttn深度是根据获得tu所需的划分次数设置的。
[0148]
在步骤906中,将变换系数编码到码流中。在步骤908中,存储用于向视频解码器发送的码流。视频码流也可以称为经编码视频码流或经编码视频码流。所述视频解码器接收到经编码视频码流之后,就可以进行解码(例如,如上所述),以生成或产生一个图像,在电子设备(例如,智能手机、平板电脑、膝上型电脑、个人计算机等)的显示器或屏幕上显示给用户。
[0149]
图10为本发明一个实施例提供的视频译码设备1000(例如,视频编码器20或视频
解码器30)的示意图。视频译码设备1000适用于实现本文描述的公开实施例。视频译码设备1000包括:入端口1010和接收单元(rx)1020,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,cpu)1030,用于处理数据;发送单元(tx)1040和出端口1050,用于传输数据;以及存储器1060,用于存储数据。视频译码设备1000还可以包括耦合到入端口1010、接收单元1020、发送单元1040和出端口1050耦合的光电(optical

to

electrical,oe)组件和电光(electrical

to

optical,eo)组件,用于光信号或电信号的出入。
[0150]
处理器1030通过硬件和软件实现。处理器1030可以实现为一个或多个cpu芯片、核(例如,多核处理器)、现场可编程门阵列(field

programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)和数字信号处理器(digital signal processor,dsp)。处理器1030与入端口1010、接收单元1020、发送单元1040、出端口1050和存储器1060通信。处理器1030包括译码模块1070。译码模块1070实现上文描述的公开实施例。例如,译码模块1070实现、处理、准备或提供各种编解码功能。因此,包括译码模块1070使得视频译码设备1000功能得到了显著改进,实现了视频译码设备1000不同状态的转换。或者,以存储在存储器1060中并由处理器1030执行的指令来实现译码模块1070。
[0151]
视频译码设备1000还可以包括输入和/或输出(input/output,i/o)设备1080,用于与用户进行数据通信。i/o设备1080可以包括输出设备,如用于显示视频数据的显示器、用于输出音频数据的扬声器等。i/o设备1080还可以包括输入设备,如键盘、鼠标、轨迹球等,和/或用于与此类输出设备交互的对应接口。
[0152]
存储器1060包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储此类程序,并且存储在程序执行过程中读取的指令和数据。例如,存储器1060可以是易失性和/或非易失性的,并且可以是只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、三态内容寻址存储器(ternary content

addressable memory,tcam)和/或静态随机存取存储器(static random

access memory,sram)。
[0153]
图11为译码模块1100的一个实施例的示意图。在本实施例中,译码模块1100在视频译码设备1102(例如,视频编码器20或视频解码器30)中实现。视频译码设备1102包括接收模块1101。接收模块1101用于接收图像进行编码或接收码流进行解码。视频译码设备1102包括耦合到接收模块1101的发送模块1107。发送模块1107用于将码流发送到解码器或将解码图像发送到显示模块(例如,i/o设备1080中的一个)。
[0154]
视频译码设备1102包括存储模块1103。存储模块1103耦合到接收模块1101或发送模块1107中的至少一个。存储模块1103用于存储指令。视频译码设备1102还包括处理模块1105。处理模块1105耦合到存储模块1103。处理模块1105用于执行存储在存储模块1103中的指令以执行本文公开的方法。
[0155]
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应当理解为仅仅是示例性的。同理,在与本发明各种实施例相一致的方法中,这样的方法可以包括其它步骤,并且某些步骤可以省略或组合。
[0156]
虽然本发明提供了若干个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例将被视为说明
性而非限制性的,且本发明并不限于本文中所给出的详细内容。例如,各种元件或组件可以组合或集成在另一系统中,或者一些特征可以省略或不实施。
[0157]
另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法组合或集成。示出或描述为彼此耦合、或直接耦合、或彼此通信的其它项目可通过某种接口、设备或中间组件以电方式、机械方式或其它方式间接耦合或通信。变化、替换和变更的其它示例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。
再多了解一些

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

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

相关文献