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

增加经帧内译码的块的解码吞吐的制作方法

2022-02-22 02:53:47 来源:中国专利 TAG:

增加经帧内译码的块的解码吞吐
1.本技术要求享受于2020年6月18日提交的申请号为16/905,467的美国申请的优先权,该美国申请要求享受于2019年6月21日提交的申请号为62/864,855的美国临时申请的权益,每项申请的全部内容通过引用并入本文。
技术领域
2.本公开内容涉及视频编码和视频解码。


背景技术:

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


技术实现要素:

5.一般来说,本公开内容描述了用于处理视频数据块(例如,较小的经帧内译码的块)的技术。视频编码器可以被配置为将视频数据划分成多个块。例如,视频编码器不处理具有64x64个样本(例如,像素)的大块,而是可以将块拆分成两个或更多个较小的块,诸如,例如,四个32x32块、十六个16x16块或其它块大小。在一些示例中,视频编码器可以被配置为将块拆分成相对较小的大小(例如,2x2块、2x4块、4x2块等)。类似地,视频解码器可以被配置为确定将视频数据划分成多个块的划分。
6.根据本公开内容的示例技术,视频译码器(例如,视频编码器或视频解码器)可以确定图片大小,该图片大小应用图片大小限制以减少或消除在图片的右下角处的较小的色度块(例如,2x2色度块、2x4色度块、4x2色度块)。也就是说,在用于将较大的视频数据块拆分成较小的块的对视频数据的图片进行的划分期间,图片大小限制可以防止一个或多个拆分,该拆分会导致在图片(例如,视频图片、视频图片的条带或其它视频数据)的一角处的相
对较小的块大小。例如,视频编码器可以限制视频数据的图片大小。在一些示例中,视频解码器可以确定应用图片大小限制的图片大小。在对图片进行划分之后,视频译码器可以确定针对图片的块的预测块。预测块可以依赖于相邻块。例如,视频译码器可以基于上相邻块和左相邻块来确定针对块的预测块。通过防止导致在图片的角处的相对较小的块大小的拆分,视频译码器可以以较少的块依赖性确定针对视频数据的图片的块的预测块,从而潜在地增加关于译码(例如,编码或解码)图片的块的并行性,并在预测精度和/或复杂度方面几乎没有损失。
7.在一个示例中,一种解码视频数据的方法包括:由在电路中实现的一个或多个处理器确定图片的图片大小,其中,图片大小应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;由所述一个或多个处理器确定关于将所述图片划分成多个块的划分;由所述一个或多个处理器生成针对所述多个块中的块的预测块;由所述一个或多个处理器解码针对所述块的残差块;以及由所述一个或多个处理器合并所述预测块和所述残差块以解码所述块。
8.在另一个示例中,一种编码视频数据的方法包括:通过在电路中实现的一个或多个处理器设置图片的图片大小,其中,设置所述图片大小包括应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;通过在电路中实现的一个或多个处理器将所述图片划分成多个块;由所述一个或多个处理器生成针对所述多个块中的块的预测块;由所述一个或多个处理器基于所述块和所述预测块之间的差来生成针对所述块的残差块;以及由所述一个或多个处理器编码所述残差块。
9.在一个示例中,一种用于解码视频数据的设备包括一个或多个处理器,其在电路中实现并被配置为:确定图片的图片大小,其中,所述图片大小应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;确定关于将所述图片划分成多个块的划分;生成针对所述多个块中的块的预测块;解码针对所述块的残差块;以及合并所述预测块和所述残差块以解码所述块。
10.在另一个示例中,一种用于编码视频数据的设备包括一个或多个处理器,其在电路中实现并被配置为:设置图片的图片大小,其中,为了设置所述图片大小,所述一个或多个处理器被配置为应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;将所述图片划分成多个块;生成针对所述多个块中的块的预测块;基于所述块和所述预测块之间的差来生成针对所述块的残差块;以及编码所述残差块。
11.在一个示例中,一种用于解码视频数据的装置包括:用于确定图片的图片大小的单元,其中,所述图片大小应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;用于确定关于将所述图片划分成多个块的划分的单元;用于生成针对所述多个块中的块的预测块的单元;用于解码针对所述块的残差块的单元;以及用于合并所述预测块和所述残差块以解码所述块的单元。
12.在另一示例中,一种用于编码视频数据的装置包括:用于设置图片的图片大小的单元,其中,用于设置所述图片大小的单元包括用于应用图片大小限制,以将所述图片的宽
度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数的单元;用于将所述图片划分成多个块的单元;用于生成针对所述多个块中的块的预测块的单元;用于基于所述块和所述预测块之间的差来生成针对所述块的残差块的单元;以及用于编码所述残差块的单元。
13.在一个示例中,一种计算机可读存储介质,在其上存储了指令,所述指令在被执行时使得一个或多个处理器进行如下操作:确定图片的图片大小,其中,所述图片大小应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;确定关于将所述图片划分成多个块的划分;生成针对所述多个块中的块的预测块;解码针对所述块的残差块;以及合并所述预测块和所述残差块以解码所述块。
14.在另一个示例中,一种计算机可读存储介质,在其上存储了指令,所述指令在被执行时使得一个或多个处理器进行如下操作:设置图片的图片大小,其中,为了设置所述图片大小,所述指令使得所述一个或多个处理器应用图片大小限制,以将所述图片的宽度和所述图片的高度各自设置为8与针对所述图片的最小译码单元大小中的最大值的相应倍数;将所述图片划分成多个块;生成针对所述多个块中的块的预测块;基于所述块和所述预测块之间的差来生成针对所述块的残差块;以及编码所述残差块。
15.一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图以及权利要求书,其它特征、目标和优点将是显而易见的。
附图说明
16.图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的框图。
17.图2a和2b是示出示例四叉树二叉树(qtbt)结构和对应的译码树单元(ctu)的概念图。
18.图3a-3e是示出多个示例树拆分模式的概念图。
19.图4是示出用于对色度分量的帧内预测的示例参考样本阵列的概念图。
20.图5是示出将2x2块扩展为4x4块、将2x4块扩展为4x4块以及将4x2块扩展为4x4块的示例的概念图。
21.图6是示出可以执行本公开内容的技术的示例视频编码器的框图。
22.图7是示出可以执行本公开内容的技术的示例视频解码器的框图。
23.图8是示出用于编码当前块的示例方法的流程图。
24.图9是示出用于解码视频数据的当前块的示例方法的流程图。
25.图10是示出根据本公开内容的技术,使用图片大小限制的示例过程的流程图。
具体实施方式
26.一般而言,本公开内容描述了用于处理视频数据块(例如,经帧内译码的块)的技术。在本公开内容的示例中,视频编码器可以被配置为将视频数据划分成多个块。例如,视频编码器不处理具有64x64个样本(例如,像素)的大块,而是可以将块拆分成两个或更多个较小的块,诸如,例如,四个32x32块、十六个16x16块或其它块大小。在一些示例中,视频编码器可以被配置为将块拆分成相对较小的大小(例如,2x2块、2x4块、4x2块等)。例如,视频
编码器可以将16x8块拆分为两个8x8块。类似地,视频解码器可以被配置为确定将视频数据划分成多个块的划分。
27.为了降低译码的复杂度,且在译码精度上损失很少或没有损失,视频译码器(例如,视频编码器或视频解码器)可以被配置为使用亮度分量表示视频数据块的亮度,以及使用色度分量表示视频数据块的颜色特征。色度分量可以包括蓝色减亮度值(“cb”)和/或红色减亮度值(“cr”)。例如,视频译码器(例如,视频编码器或视频解码器)可以被配置为通过亮度分量的8x8亮度块(例如,“y”)、色度分量的第一4x4色度块(例如,“cr”)和色度分量的第二4x4色度块(例如,“cb”),来表示8x8块。也就是说,视频数据块的色度分量可以被下采样,以具有比视频数据块的亮度分量少的样本。这样,对色度分量进行下采样可以在译码精度损失很少或没有损失的情况下提高译码效率。
28.视频译码器(例如,视频编码器或视频解码器)可以被配置为经帧内译码的块,其中预测块依赖于其它块。例如,视频译码器可以使用上相邻块和左相邻块来预测当前块,以提高译码精度。于是,视频译码器可能不与预测上相邻块和左相邻块并行地预测当前块。相反,视频译码器可能等待以预测当前块,直到完成对上相邻块和左相邻块的预测为止。块依赖性可能增加译码复杂度,该译码复杂度随着块大小的减小而增加。
29.根据本公开内容的技术,视频译码器(例如,视频编码器或视频解码器)可以应用图片大小限制,以防止导致相对较小的块大小的拆分。如本文所使用的,拆分可以指将块划分成较小的块。例如,视频译码器可以被配置为应用图片大小限制以防止对图片的拆分,该拆分会导致在图片的一角(例如,右下角)处的较小的色度块。应用图片限制可以有助于提高译码块的译码并行性,同时对译码精度和/或复杂度没有或几乎没有影响。
30.在划分或拆分视频数据之后,视频译码器(例如,视频编码器或视频解码器)可以生成针对图片的块的预测信息,并基于预测信息来确定针对该块的预测块。同样,在帧内预测的情况下,预测块可以依赖于相邻块。例如,视频译码器可以基于上相邻块和左相邻块来确定针对块的预测块。通过防止导致相对较小的块大小的拆分,视频译码器可以以较少的块依赖性确定视频数据的图片的块的预测信息,因此,潜在地增加可以并行译码(例如,编码或解码)的块的数量,而在预测精度和/或复杂度几乎没有损失。
31.图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的框图。本公开内容的技术通常针对对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经编码的视频、经编码的视频、经解码的(例如,经重构的)视频以及视频元数据(诸如信令数据)。
32.如图1所示,在本示例中,系统100包括源设备102,该源设备102提供要由目的地设备116解码并显示的经编码的视频数据。具体地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能手机的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并从而可以被称为无线通信设备。
33.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据
本公开内容,源设备102的视频编码器200和目的设备116的视频解码器300可以被配置为应用用于扩展共享树配置中的色度拆分限制,限制图片大小,和/或在图片的一角处处理2x2、2x4或4x2色度块的技术。从而,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的地设备116可以与外部显示设备以接口进行连接,而不是包括集成显示设备。
34.如图1所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行用于扩展共享树配置中的色度拆分限制,限制图片大小,和/或在图片的一角处处理2x2、2x4或4x2色度块的技术。源设备102和目的地设备116仅仅是这样的译码设备的示例,其中源设备102生成经译码的视频数据以用于到目的地设备116的传输。本公开内容将“译码”设备称为执行数据译码(编码和/或解码)的设备。从而,视频编码器200和视频解码器300分别表示译码设备的示例,具体地,分别表示视频编码器和视频解码器的示例。在一些示例中,设备102和116可以以基本对称的方式进行操作,使得设备102和116中的每一个都包括视频编码和解码组件。因此,系统100可以支持视频设备102和116之间的单向或双向视频传输,例如,用于视频流传送、视频回放、视频广播或视频电话。
35.通常,视频源104表示视频数据的源(即,原始的、未经编码的视频数据),并向视频编码器200提供视频数据的一些列连续图片(也称为“帧”),其中视频编码器200对针对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如视频相机、包含先前捕获的原始视频的视频存档、和/或用以从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、经存档的视频和经计算机生成的视频的组合。在每种情况下,视频编码器200都对经捕获的、预捕获的或经计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重布置成译码顺序以用于进行译码。视频编码器200可以生成包括经编码的视频数据的比特流。源设备102随后可以经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或获取。
36.源设备102的存储器106和目的设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的经解码的原始视频数据。另外或替代地,存储器106、120可以存储分别由例如视频编码器200和视频解码器300可执行的软件指令。尽管在本示例中,存储器106和存储器120与视频编码器200和视频解码器300分开示出,但是视频编码器200和视频解码器300还可以包括用于功能相似或等效目的的内部存储器。此外,存储器106、120可以存储经编码的视频数据,例如,从视频编码器200输出并输入到视频解码器300的经编码的视频数据。在一些示例中,存储器106、120的部分可以被分配作为一个或多个视频缓冲器,例如,用于存储原始视频数据、经解码的视频数据和/或经编码的视频数据。
37.计算机可读介质110可以表示能够将经编码的视频数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地将经编码的视频数据直接发送到目的地设备116的通信介质。根据诸如无线通信协议的通信标准,输出接口108可以调制包括经编码的视频数据的传输信号,并且输入接口122可以解调所接收的传输信号。通信介质可以
包括任何无线或有线通信介质,例如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网的全球网络。通信介质可包括路由器、交换机、基站或可以用于促进从源设备102向目的地设备116的通信的任何其它设备。
38.在一些示例中,计算机可读介质110可以包括储存设备112。源设备102可以将经编码的数据从输出接口108输出到储存设备112。类似地,目的地设备116可以经由输入接口122从储存设备112访问经编码的数据。储存设备112可以包括各种分布式的或本地访问的数据储存介质中的任何一种,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器、或者用于存储经编码的视频数据的任何其它合适的数字储存介质。
39.在一些示例中,计算机可读介质110可以包括文件服务器114或可以存储由源设备102生成的经编码的视频数据的另一中间储存设备。源设备102可以将经编码的视频数据输出到文件服务器114或另一中间储存设备,其可以储存源设备102生成的经编码的视频。目的地设备116可以经由流传送或下载来从文件服务器114访问经储存的视频数据。文件服务器114可以是能够储存经编码的视频数据并将该经编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,对于网站)、文件传输协议(ftp)服务器、内容递送网络设备或网络附属储存(nas)设备。目的地设备116可以通过包括因特网连接的任何标准数据连接来从文件服务器114访问经编码的视频数据。这可以包括无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线(dsl)、电缆调制解调器等)或两者的组合,其适于访问储存在文件服务器114上的经编码的视频数据。文件服务器114和输入接口122可以被配置为根据流传送传输协议、下载传输协议或其组合进行操作。
40.输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线网络组件(例如,以太网卡)、根据各种ieee 802.11标准中的任何一种进行操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4g、4g-lte(长期演进)、lteadvanced、5g等)传送数据,诸如经编码的视频数据。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如ieee 802.11规范、ieee 802.15规范(例如zigbee
tm
)、bluetooth
tm
标准等)传送数据,诸如经编码的视频数据。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(soc)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能的soc设备,并且目的地设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的soc设备。
41.本公开内容的技术可以应用于视频译码,以支持各种多媒体应用中的任何一种,诸如,空中电视广播、有线电视传输、卫星电视传输、因特网流传送视频传输(例如http上的动态自适应流(dash))、编码到数据储存介质上的数字视频、对储存在数据储存介质上的数字视频的解码、或其它应用。
42.目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的信令信息(其也由视频解码器300使用),例如具有用于描述视频块或其它经译码的单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设
备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示各种显示设备中的任何一种,诸如,阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示设备。
43.尽管未在图1中示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的mux-demux单元或其它硬件和/或软件,以处理包括公共数据流中的音频和视频的复用流。当适用时,mux-demux单元可以遵照ituh.223复用器协议或诸如用户数据报协议(udp)的其它协议。
44.视频编码器200和视频解码器300可以各自被实现为各种合适的编码器电路和/或解码器电路中的任何一种,诸如,一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当技术部分地实现在软件中时,设备可以将用于软件的指令储存在适合的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行所述指令以执行本公开内容的技术。视频编码器200和视频解码器300中的每一个可以包括在一个或多个编码器或解码器中,其中任何一个都可以作为组合式编码器/解码器(codec)的一部分集成在相应的设备中。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。
45.视频编码器200和视频解码器300可以根据视频译码标准(诸如,itu-th.265,也称为高效视频译码(hevc))或其扩展(诸如,多视图和/或可分级视频译码扩展)进行操作。或者,视频编码器200和视频解码器300可以根据其它专有标准或行业标准(诸如,itu-th.266,也称为通用视频译码(vvc))进行操作。vvc标准的草案在bross等人的“versatile video coding(draft 8)”(其提出于itu-tsg 16wp 3和iso/iecjtc 1/sc 29/wg11的联合视频专家组(jvet)的第17次会议:比利时布鲁塞尔,2020年1月7-17日,jvet-q2001-va(以下简称“vvc草案8”))中进行了描述。然而,本公开内容的技术不限于任何特定的译码标准。
46.通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指包括要经处理的(例如,经编码的、经解码的或在编码和/或解码过程中以其它方式使用的)数据的结构。例如,块可以包括亮度(luminance)数据和/或色度(chrominance)数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以yuv(例如,y,cb,cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对用于图片的样本的红、绿和蓝(rgb)数据进行译码,其中,色度分量可以包括红色调色度分量和蓝色调色度分量。在一些示例中,视频编码器200在进行编码之前将接收到的rgb格式的数据转换为yuv表示,并且视频解码器300将yuv表示转换为rgb格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。
47.本公开内容通常涉及对图片的译码(例如,编码和解码)以包括关于对图片的数据进行编码或解码的过程。类似地,本公开内容可以涉及对图片的块的译码以包括关于对针对块的数据进行编码或解码的过程,例如,预测译码和/或残差译码。经编码的视频比特流通常包括针对用于表示译码决策(例如,译码模式)以及将图片划分成块的语法元素的一系列值。从而,提及对图片或块进行译码通常应被理解为对针对形成图片或块的语法元素的值进行译码。
48.hevc定义了各种块,包括译码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频译码器(例如视频编码器200)根据四叉树结构将译码树单元(ctu)划分为cu。也就是说,视频译码器将ctu和cu划分为四个相等的、不重叠的正方形,四叉树的每个结点有零个或四个子结点。没有子结点的结点可以被称为“叶子结点”,并且此类叶子结点的cu可以包括一个或多个pu和/或一个或多个tu。视频译码器可以进一步划分pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu进行的划分。在hevc中,pu表示帧间预测数据,tu表示残差数据。经帧内预测的cu包括帧内预测信息,诸如,帧内模式指示。
49.作为另一示例,视频编码器200和视频解码器300可以被配置为根据jem或vvc进行操作。根据jem或vvc,视频译码器(诸如,视频编码器200)将图片划分成多个译码树单元(ctu)。视频编码器200可以根据树结构(诸如,四叉树二叉树(qtbt)结构或多类型树(mtt)结构)来划分ctu。qtbt结构消除了多种划分类型的概念,诸如,在hevc的cu、pu和tu之间的分开。qtbt结构包括两个级:根据四叉树划分来被划分的第一级、以及根据二叉树划分来被划分的第二级。qtbt结构的根结点对应于ctu。二叉树的叶子结点对应于译码单元(cu)。
50.在mtt划分结构中,可以使用四叉树(qt)划分、二叉树(bt)划分和一种或多种类型的三叉树(tt)划分来对块进行划分。三叉树划分是用于将块拆分成三个子块的划分。在一些示例中,三叉树划分将块分割成三个子块,其中不通过中心分割原始块。mtt中的划分类型(例如qt、bt和tt)可以是对称的或不对称的。
51.在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度分量和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个qtbt或mtt结构,诸如,用于亮度分量的一个qtbt/mtt结构和用于两个色度分量的另一个qtbt/mtt结构(或用于相应的色度分量的两个qtbt/mtt结构)。
52.视频编码器200和视频解码器300可以被配置为使用根据hevc的四叉树划分、qtbt划分、mtt划分或其它划分结构。为了解释的目的,关于qtbt划分来呈现对本公开内容的技术的描述。然而,本公开内容的技术还可以应用于被配置为使用四叉树划分或其它类型的划分的视频译码器。
53.本公开内容可以互换地使用“nxn”和“n
×
n”来表示块(诸如cu或其它视频块)的在垂直维度和水平维度上的样本尺寸,例如,16x16样本或16
×
16样本。通常,16x16cu将在垂直方向上有16个样本(y=16),在水平方向上有16个样本(x=16)。同样,nxn cu通常在垂直方向上有n个样本,在水平方向上有n个样本,其中,n表示非负整数值。cu中的样本可以按行和列来布置。此外,cu在水平方向上不必有与在垂直方向上相同数量的样本。例如,cu可以包括nxm个样本,其中,m不一定等于n。
54.视频编码器200对针对表示预测信息和/或残差信息以及其它信息的cu的视频数据进行编码。预测信息指示如何预测cu以便形成针对cu的预测块。残差信息通常表示在进行编码之前的cu的样本与预测块之间的逐样本差异。
55.为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成针对cu的预测块。帧间预测通常指根据经先前译码的图片的数据来预测cu,而帧内预测通常指根据相同图片的经先前编码的数据来预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动向量来生成预测块。视频编码器200通常可以执行运动搜索,以识别与cu例如就cu与参考块之间的差异而言接近地匹配的参考块。视频编码器200可以使用绝对差的和
(sad)、平方差的和(ssd)、平均绝对差(mad)、均方差(msd)或其它此类差计算以计算差异度量,以确定参考块是否与当前cu接近地匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前cu。
56.jem和vvc的一些示例还提供仿射运动补偿模式,其可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或多个运动向量,例如,放大或缩小、旋转、透视运动或其它不规则运动类型。
57.为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。jem和vvc的一些例子提供了67种帧内预测模式,包括各种方向模式、以及平面模式和dc模式。通常,视频编码器200选择帧内预测模式,该帧内预测模式描述对当前块(例如,cu的块)的相邻样本,其中从相邻样本预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对ctu和cu进行译码,这样的样本通常可以在与当前块相比相同的图片中的当前块的上方、上方和左、或者左。
58.视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用了各种可用的帧间预测模式中的哪一种帧间预测模式、以及针对对应的模式的运动信息的数据进行编码。例如,对于单向帧间预测或双向帧间预测,视频编码器200可以使用高级运动向量预测(amvp)或合并模式对运动向量进行编码。视频编码器200可以使用类似的模式,以编码针对仿射运动补偿模式的运动向量。
59.在诸如对块的帧内预测或帧间预测之类的预测之后,视频编码器200可以计算针对块的残差数据。诸如残差块的残差数据表示块与使用对应的预测模式形成的针对块的预测块之间的逐样本差异。视频编码器200可以对残差块应用一个或多个变换,以在变换域而不是样本域中产生经变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换。另外,视频编码器200可以在第一变换之后应用第二变换,诸如,模式相关的不可分二次变换(mdnsst)、信号相关变换、karhunen-loeve变换(klt)等。视频编码器200在应用一个或多个变换之后产生变换系数。
60.如上所述,在用以产生变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常指用于将变换系数量化以可能减少用于表示变换系数的数据的量,从而提供进一步的压缩的过程。通过执行量化过程,视频编码器200可以减小与部分或全部变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n-比特的值向下舍入成m-比特的值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要被量化的值的逐比特右移。
61.在量化之后,视频编码器200可以扫描变换系数,根据包括经量化的变换系数的二维矩阵来产生一维向量。扫描可以被设计为:在向量的前面放置较高能量的(并从而较低频率的)系数,并在向量的后面放置较低能量的(并从而较高频率的)变换系数。在一些示例中,视频编码器200可以利用预定义的扫描顺序,以扫描经量化的变换系数,以产生序列化的向量,并且然后对向量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器200可以例如根据上下文自适应二进制算术编码(cabac),来对一维向量进行熵编码。视频编码器200还可以对针对用于描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器300在解码视频数据时使用。
62.为了执行cabac,视频编码器200可以将上下文模型内的上下文指派给要发送的符号。例如,上下文可以涉及符号的相邻值是否为零值。概率确定可以是基于被指派给符号的上下文的。
63.视频编码器200还可以例如在图片头、块头、条带头或其它语法数据(诸如,序列参数集(sps)、图片参数集(pps)、或视频参数集(vps))中,生成去往视频解码器300的语法数据,诸如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300同样可以解码这样的语法数据,以确定如何解码对应的视频数据。
64.以这种方式,视频编码器200可以生成比特流,该比特流包括经编码的视频数据,例如,用于描述将图片划分成块(例如,cu)的划分以及针对块的预测信息和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并解码经编码的视频数据。
65.通常,视频解码器300执行与视频编码器200执行的过程互易的过程,以解码比特流的经编码的视频数据。例如,视频解码器300可以使用cabac以与视频编码器200的cabac编码过程基本类似的(尽管互易的)方式,来解码针对比特流的语法元素的值。语法元素可以定义:用于将图片划分成ctu的划分信息、以及根据对应的划分结构(诸如qtbt结构)对每个ctu进行划分以定义ctu的cu。语法元素还可以定义针对视频数据的块(例如,cu)的预测和残差信息。
66.残差信息可以由例如经量化的变换系数来表示。视频解码器300可以将块的经量化的变换系数逆量化(inverse quantize)和逆变换(inverse transform),以再生针对该块的残差块。视频解码器300使用以信令发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。然后,视频解码器300可以(在逐样本的基础上)合并预测块和残差块以再生原始块。视频解码器300可以执行另外的处理,诸如执行去块过程以减少沿块的边界的视觉伪影(visual artifacts)。
67.为了提高译码精度,视频译码器(例如,视频编码器200或视频解码器300)可以划分数据块。例如,视频译码器可以使用四叉树拆分、二叉树拆分或另一种拆分来划分块。视频译码器(例如,视频编码器200或视频解码器300)可以基于块的亮度分量来确定针对视频数据(例如,视频数据条带)的单个树。例如,一个块可以由8x8亮度块(例如“y”)、第一4x4色度块(例如“cr”)和第二4x4色度块(例如“cb”)表示。在此示例中,视频译码器可以生成单个树以拆分块,从而将8x8亮度块拆分成两个4x4亮度块。视频译码器可以根据单个树将第一4x4色度块(例如,“cr”)拆分成两个2x2色度块,并将第二4x4色度块(例如,“cb”)拆分成两个2x2色度块。以这种方式,视频译码器可以提高针对块的产生的预测块的精度,这可以提高视频数据的预测精度。
68.然而,当划分视频数据块(例如,经帧内译码的块)时,视频译码器(例如,视频编码器200或视频解码器300)可以将块(例如,该块的色度分量,在本文中称为“色度块”,和/或该块的亮度分量,在本文中称为“亮度块”)拆分成较小的块(例如,2x2块、2x4块、4x2块等)。此外,每个较小的块可以具有对相邻块的译码依赖性。例如,视频译码器可以使用一个或多个相邻块(例如,左相邻块和/或上相邻块)的样本来确定针对每个较小的块的预测块。因此,较小的块以及数据依赖性可能导致视频译码器顺序地确定针对每个较小的块的预测块,这可能导致较低的译码并行性。
69.根据本公开内容的示例技术,视频译码器(例如,视频编码器200)可以被配置为将
图片的宽度和图片的高度各自设置为8与针对图片的最小编码单元大小中的最大值的相应倍数。例如,视频编码器200可以被配置为将图片的宽度计算为x1*n,其中,x1是第一整数倍,n=max(8,mincusize),mincusize是最小译码单元值。视频编码器可以被配置为将图片的高度计算为x2*n,其中,x2是第二整数倍。也就是说,如果8大于mincusize,则图片宽度被限制为x1*8,且图片高度限制为x2*8。然而,如果mincusize大于8,则图片宽度被限制为x1*mincusize,且图片高度被限制为x2*mincusize。以此方式,视频编码器可以设置图片的宽度和图片的高度,以帮助确保图片的右下角块包括至少8个样本的宽度和至少8个样本的高度(即,至少8x8块),这可以导致针对右下角块的色度块,该色度块包括当视频编码器应用对色度块进行向下采样的颜色格式(例如,4:2:2或4:2:0)时至少4x4的大小、以及当视频编码器不应用对色度块进行向下采样的颜色格式时至少8x8的大小。
70.视频解码器(例如,视频解码器300)可以被配置为确定图片大小,其中,图片大小应用图片大小限制。图片大小限制可以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。例如,视频解码器可以被配置为对指示图片的图片大小及关于将图片划分成多个块的划分的一个或多个划分语法元素进行解码。在此示例中,图片大小可以帮助确保:视频解码器识别图片的包括至少64个亮度样本(或16个色度样本)的宽度的右下角块,这可能导致右下角块的包括至少16个样本的大小的色度块。也就是说,视频解码器可以不解码进一步的拆分标志或其它用于将图片的右下角块拆分为小于8x8的拆分语法元素。这样,视频解码器可以确定图片大小以及确定对图片的划分,以帮助确保图片的右下角块包括至少8个样本的宽度和至少8个样本的高度(即,至少8x8块),这可以导致针对右下角块的色度块,该色度块包括当视频编码器应用对色度块进行向下采样的颜色格式(例如,4∶2∶2或4∶2∶0)时至少4x4的大小、以及当视频编码器不应用对色度块进行向下采样的颜色格式时至少8x8的大小。
71.在划分视频数据之后,视频译码器(例如,视频编码器200或视频解码器300)可以生成针对块的预测信息,以及基于预测信息来确定针对块的预测块。同样,预测块可以依赖于相邻块。例如,视频译码器可以基于上相邻块和左相邻块来确定针对当前块的预测块。通过防止导致相对较小的块大小的块拆分(例如,色度分量和/或亮度分量),视频译码器可以以较少的块依赖性确定视频数据块的预测信息,从而潜在地增加可以被并行译码(例如,编码或解码)的块的数量,并在预测精度和/或复杂度上几乎没有损失。
72.本公开内容通常可以提及“以信号发送”特定信息,例如语法元素。术语“以信号发送”通常可以指对针对被用于解码经编码的视频数据的语法元素和/或其它数据的值的传送。即,视频编码器200可以以信号发送针对比特流中的语法元素的值。通常,信号发送指生成比特流中的值。如上所述,源设备102可以基本上实时地或不实时地将比特流传输给目的地设备116,诸如,可能发生在将语法元素储存到储存设备112以供目的地设备116稍后获取时。
73.图2a和2b是示出示例四叉树二叉树(qtbt)结构130和对应的译码树单元(ctu)132的概念图。实线表示四叉树拆分,虚线表示二叉树拆分。在二叉树的每个经拆分的(即,非叶)结点中,一个标志被以信号发送以指示使用了哪种拆分类型(即,水平或垂直),其中,在此示例中,0表示水平拆分,1表示垂直拆分。对于四叉树拆分,不需要指示拆分类型,这是因为四叉树结点将块水平地且垂直地拆分成大小相等的4个子块。相应地,视频编码器200可
以编码并且视频解码器300可以解码针对qtbt结构130中的区域树级(即,实线)的语法元素(例如,拆分信息)和针对qtbt结构130中的预测树级(即,虚线)的语法元素(例如,拆分信息)。视频编码器200可以编码并且视频解码器300可以解码针对由qtbt结构130中的终端叶子结点表示的cu的视频数据,诸如,预测数据和变换数据。
74.通常,图2b的ctu 132可以与用于定义与在第一级和第二级处的qtbt结构130中的结点对应的块的大小的参数相关联。这些参数可以包括ctu大小(表示样本中ctu 132的大小)、最小四叉树大小(minqtsize,表示允许的最小四叉树叶子结点大小)、最大二叉树大小(maxbtsize,表示允许的最大二叉树根结点大小)、最大二叉树深度(maxbtdepth,表示允许的最大二叉树深度)和最小二叉树大小(minbtsize,表示允许的最小二叉树叶子结点大小)。
75.与ctu对应的qtbt结构的根结点可以在qtbt结构的第一层级处具有四个子结点,每个子结点可以按照四叉树划分来被划分。也就是说,第一级的结点要么是叶子结点(没有子结点),要么有四个子结点。qtbt结构130的示例表示这样的结点包括父结点和具有用于分支的实线的子结点。如果第一级的结点不大于允许的最大二叉树根结点大小(maxbtsize),则可以通过相应的二叉树来进一步划分这些结点。可以迭代地进行对一个结点的二叉树拆分,直到通过拆分产生的结点达到允许的最小二叉树叶子结点大小(minbtsize)或允许的最大二叉树深度(maxbtdepth)为止。qtbt结构130的示例表示这样的节点具有用于分支的虚线。二叉树叶子结点被称为译码单元(cu),其被用于预测(例如,图片内预测或图片间预测)和变换,而不需要进行任何进一步的划分。如上所述,cu也可以被称为“视频块”或“块”。
76.在qtbt划分结构的一个示例中,ctu大小被设为128x128(亮度样本和两个对应的64x64色度样本),minqtsize被设为16x16,maxbtsize被设为64x64,minbtsize(对于宽度和高度两者)被设为4,maxbtdepth被设为4。首先对ctu应用四叉树划分,以生成四叉树叶子结点。四叉树叶子结点可以具有从16x16(即minqtsize)到128x128(即ctu大小)的大小。如果四叉树叶子结点是128x128,则其将不通过二叉树被进一步拆分,这是因为其大小超过了maxbtsize(在本例中为64x64)。否则,四叉树叶子结点将通过二叉树被进一步划分。因此,四叉树叶子结点也是二叉树的根结点,并且具有为0的二叉树深度。当二叉树深度达到maxbtdepth(本例中为4)时,不允许进行进一步拆分。当二叉树结点的宽度等于minbtsize(本例中为4)时,这意味着不允许进行进一步的水平拆分。类似地,二叉树结点的高度等于minbtsize意味着不允许针对该二叉树结点执行进一步的垂直拆分。如上所述,二叉树的叶子结点被称为cu,并且根据预测和变换进行进一步处理而无需进一步划分。
77.图3a-3e是示出多个树拆分模式的示例的概念图。图3a示出了四叉树划分,图3b示出了垂直二叉树划分,图3c示出了水平二叉树划分,图3d示出了垂直三叉树划分,图3e示出了水平三叉树划分。
78.在vvcwd5中,通过使用被表示为译码树的四叉树结构将ctu拆分成cu,以适应各种局部特征。在叶子cu级别作出是使用图片间(时间)还是使用图片内(空间)预测对图片区域进行译码的决定。根据pu拆分类型,每个叶子cu可以被进一步拆分成一个、两个或四个pu。在一个pu内,应用相同的预测过程,并且基于pu将相关信息发送给解码器。在通过应用基于pu拆分类型的预测过程获得残差块之后,可以根据另一四叉树结构(如针对cu的译码树)将
叶子cu划分成变换单元(tu)。hevc结构的一个特征是:hevc结构具有多个划分概念,包括cu、pu和tu。
79.在vvc中,具有使用二叉树和三叉树拆分分割结构的嵌套多类型树的四叉树取代了多个划分单元类型的概念,即,vvc移除了将cu、pu和tu概念的分离(当对于大小对于最大变换长度来说太大的cu需要时除外),并且支持针对cu划分形状的较大灵活性。在译码树结构中,cu可以是方形或矩形。译码树单元(ctu)首先通过四分树(又称,四叉树)结构被划分。然后通过多类型树结构对四叉树叶子节点进行进一步划分。
80.图3a是示出四叉树划分的示例的概念图,包括垂直二叉树拆分140(“split_bt_ver”)和水平二叉树拆分141(“split_bt_hor”)。图3b是示出包括垂直二叉树拆分142的垂直二叉树划分的示例的概念图。图3c是示出包括水平二叉树拆分143的水平二叉树划分的示例的概念图。图3d是示出包括垂直三叉树拆分144、145(“split_tt_ver”)的垂直三叉树划分的示例的概念图。图3e是示出包括水平三叉树拆分146、147(“split_tt_hor”)的水平三叉树划分的示例的概念图。
81.多类型树叶子节点被称为译码单元(cu),并且,除非cu对于最大变换长度来说太大,否则此分割被用于预测和变换处理,而无需进行进一步划分。这意味着:在某些情况下,cu、pu和tu在具有嵌套多类型树译码块结构的四叉树中具有相同的块大小。当所支持的最大变换长度小于cu的颜色分量的宽度或高度时,可能出现例外情况。
82.ctu可以包括亮度译码树块(ctb)和两个色度译码树块。在cu级别,cu与亮度译码块(cb)和两个色度译码块相关联。正如在vtm(vvc的参考软件)中一样,亮度树和色度树在条带内是分离的(称为双树结构),而它们在条带间是共享的(称为单树或共享树结构)。ctu的大小可以高达128x128(亮度分量),而译码单元的大小可以从4x4到ctu的大小。在这种情况下,色度块的大小可以是4:2:0颜色格式下的2x2、2x4或4x2。
83.图4是示出用于色度分量的帧内预测的参考样本阵列的概念图。视频译码器(例如,视频编码器200或视频解码器300)可以将译码块640附近的样本用于对块的帧内预测。通常,视频译码器使用最靠近译码块150的左边界和上边界的所重构的参考样本线作为针对帧内预测的参考样本。例如,视频译码器可以使用上行152和/或左行154的重建样本。然而,vvc还使得译码块150附近的其它样本能够用作参考样本(例如,左上、左下、右上)。例如,视频译码器可以使用左上像素158、左下行160和/或右上行156的重建样本。
84.在vvc中,视频译码器(例如,视频编码器200或视频解码器300)可以对于亮度分量仅使用mrlidx等于0、1和3的参考线。对于色度分量,视频译码器可以仅使用mrlidx等于0的参考线,如图4所示。视频译码器可以将索引译码成被用于利用经截短的一元码字对块(分别指示具有mrlidx 0、1和3的行的值0、1和2)进行译码的参考线。对于mrlidx》0的参考线,视频译码器可以不使用平面模式和dc模式。在一些示例中,视频译码器可以仅将译码块附近的可用样本添加到参考阵列以用于帧内预测。
85.为了提高帧内译码的处理吞吐,提出了几种方法。在z.-y.lin、t.-d.chuang、c.-y.chen、y.-w.huang、s.-m.lei的“ce3-related:shared reference samples for multiple chroma intra cbs”(jvet-m0169)和t.zhou,t.ikai的“non-ce3:intra chroma partitioning and prediction restriction”(jvet-m0065)中,在双树中禁用较小的块大小,例如,2x2、2x4和4x2。对于单树,建议共享针对较小的块的参考样本(jvet-m0169)。
86.在一些硬件视频编码器和视频解码器中,当图片具有较多的较小的块时,降低了处理吞吐。这种处理吞吐下降可能是由于使用较小的帧内块引起的,这是因为可以并行地处理较小的帧间块,而帧内块具有在相邻块之间的数据依赖性(例如,帧内块的预测器生成需要来自相邻块的上边界和左边界的经重构的样本)并且必须按顺序被处理。
87.在hevc中,最坏情况下的处理吞吐发生在处理4x4色度帧内块时。在vvc中,最小色度帧内块的大小为2x2,并且由于采用了新的工具,色度帧内块的重建过程可能变得复杂。
88.在于2020年3月9日提交的美国专利申请第16/813,508号“reconstruction of blocks of video data using block size restriction、于2019年3月12日提交的序列号为62/817,457的美国临时专利申请“enabling parallel reconstruction of intra-coded blocks”、以及于2019年3月27日提交的序列号为62/824,688的美国临时专利申请“enabling parallel reconstruction of intra-coded blocks”中已提出了为了增加最坏情况下的吞吐的若干技术,其中每个申请均通过引用并入。在这些专利申请中,通常有三种主要方法,包括:移除帧内预测依赖性、帧内预测模式限制、以及对于导致较小的块的色度拆分的限制。特别地,对于在共享树配置下的色度拆分限制,可以在拆分对应的亮度块区域的同时不拆分色度块。
89.在vvc中,亮度的图片宽度和高度被限制为最小译码单元大小的倍数,而最小亮度译码unisize可以是4。
90.pic_width_in_luma_samples指定以亮度样本为单位的每个被解码图片的宽度。pic_width_in_luma_samples不应等于0,且应为mincbsizey的整数倍。
91.pic_height_in_luma_samples指定以亮度样本为单位的每个被解码图片的高度。pic_height_in_luma_samples不应等于0,且应为mincbsizey的整数倍。
92.在这种情形下,4x4或4x8或8x4亮度区域可能出现在图片的角处。换句话说,这种情况下,图片的右下角可能有2x2或2x4或4x2色度块。
93.本公开内容提出了用于扩展在共享树配置下的色度拆分限制,以使得能够并行地处理较小的经帧内译码的块,并从而提高处理吞吐的技术。此外,还提出了用于处理在图片的角处的2x2和2x4色度块的若干方法。
94.本公开内容扩展了在于2019年3月12日提交的序列号为62/817,457的美国临时专利申请“enabling parallel reconstruction of intra-coded blocks”、以及于2019年3月27日提交的序列号为62/824,688的美国临时专利申请“enabling parallel reconstruction of intra-coded blocks”中提出的在共享树配置下的色度拆分限制。
95.例如,视频译码器(例如,视频编码器200或视频解码器300)可以限制针对非拆分色度块的模式。也就是说,在一些示例中,视频译码器可以被配置为应用共享树(在本文中也称为“单树”)。在该示例中,可以根据共享树将第一亮度块(例如,8x8亮度块)拆分成第二亮度块(例如,四个4x4亮度块)。然而,由于色度拆分限制(例如,非拆分色度块),对应的色度块(例如,4x4色度块)可能不被进一步拆分。
96.当对应的亮度区域中的所有块都被帧内译码时,视频译码器可以强制色度块被帧内译码。例如,视频译码器(例如,视频编码器200或视频解码器300)可以确定:由于色度拆分限制(例如,4x4色度块)而没有拆分色度块,并且所有对应的亮度块(例如,四个4x4亮度块)都被帧内译码。响应于确定由于色度拆分限制而没有拆分色度块并且所有对应的亮度
块都被帧内译码,视频译码器可以强制对色度块(例如,4x4色度块)被帧内译码。以此方式,视频译码器可以降低视频译码器的复杂度。
97.在一些示例中,当对应的亮度区域同时包含帧间和帧内(包括帧内和ibc模式)时,视频译码器(例如,视频编码器200或视频解码器300)可以被配置为使用默认模式对色度进行编码。例如,视频译码器(例如,视频编码器200或视频解码器300)可以确定由于色度拆分限制(例如,4x4色度块)而没有拆分色度块并且所有对应的亮度块(例如,四个4x4亮度块)都被帧内译码。响应于确定由于色度拆分限制而没有拆分色度块并且所有对应的亮度块都被帧内译码,视频译码器可以强制在默认模式下对色度块(例如,4x4色度块)进行译码。例如,默认模式可以是帧内译码。在一些示例中,默认模式可以是帧间译码。在该示例中,色度块的运动矢量可以是亮度块间的运动矢量,或者亮度块间的平均运动矢量。当使用默认模式时,视频编码器(例如,视频编码器200)可以不以信号发送对默认模式的指示,并且视频解码器(例如,视频解码器300)可以使用配置数据以推断译码模式为默认模式。
98.视频译码器(例如,视频编码器200或视频解码器300)可以限制图片大小,以避免在图片的角处的2x2和2x4/4x2色度块。也就是说,视频译码器可以被配置为确定图片的右下角处的色度块包括至少4x4的大小。在一些示例中,视频译码器可以被配置为确定图片的右下角处的亮度块包括至少64个像素的大小。
99.例如,图片的块宽度和高度可以是8与最小cu大小中的最大值的倍数。例如,视频编码器200可以被配置为将图片的宽度计算为x1*n,其中x1是第一整数倍,n=max(8,mincusize),并且mincusize是最小译码单元值。视频编码器可以被配置为将图片的高度计算为x2*n,其中,x2是第二整数倍。也就是说,如果8大于mincusize,则图片宽度被限制为x1*8,且图片高度被限制为x2*8。然而,如果mincusize大于8,则图片宽度被限制为x1*mincusize,且图片高度被限制为x2*mincusize。
100.也就是说,视频编码器(例如,视频编码器200)可以被配置为应用图片大小限制,以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小(例如,mincbsizey)中的最大值的相应倍数。针对图片的最小译码大小可以包括针对图片的译码单元的最小宽度或针对图片的译码单元的最小高度。视频解码器(例如,视频解码器300)可以被配置为确定图片的图片大小,其中,图片大小应用图片大小限制,以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。虽然前面的示例涉及图片,但是图片可以包括一个或多个条带,每个条带包括一个或多个块。也就是说,图片的块可以包括在图片的条带中。
101.关于vvc wd中的图片宽度和高度的对应文本可以被修改为:
102.pic_width_in_luma_samples指定以亮度样本为单位的每个被解码图片的宽度。pic_width_in_luma_samples不应等于0,且应为8和mincbsizey中的最大值的整数倍。
103.pic_height_in_luma_samples指定以亮度样本为单位的每个被解码图片的高度。pic_height_in_luma_samples不应等于0,且应为8和mincbsizey中的最大值的整数倍。
104.其中,mincbsizey指定针对图片的译码单元的最小宽度和/或针对图片的译码单元的最小高度。
105.也就是说,视频编码器(例如,视频编码器200)可以被配置为设置图片的宽度,以包括第一数量的亮度样本(例如,pic_width_in_luma_samples),该第一数量是8与针对图
片的最小译码单元大小中的最大值的第一倍数。在一些示例中,视频编码器可以被配置为设置图片的高度(例如,pic_height_in_luma_samples),以包括第二数量的亮度样本,该第二数量是8与针对图片的最小译码单元大小中的最大值的的第二倍数。应当理解,pic_width_in_luma_samples和pic_height_in_luma_samples的值可以相同也可以不同。视频编码器可以以信号发送语法元素,该语法元素指示针对pic_width_in_luma_samples和/或pic_height_in_luma_samples的值。本文描述的技术可以减少许多可能的值(例如,防止小于8的值),从而潜在地减少比特流的大小,而在预测精度和/或复杂度上几乎没有损失。
106.视频解码器(例如,视频解码器300)可以被配置为确定图片大小。例如,图片大小可以应用图片大小限制,以设置图片的宽度以包括第一数量的亮度样本,该第一数量是8与针对图片的最小译码单元大小中的最大值的第一倍数。例如,视频解码器可以解码指示pic_width_in_luma_samples的语法元素的值,以确定图片的宽度。在一些示例中,图片大小可以应用图片大小限制,以设置图片的高度,以包括第二数量的亮度样本,该第二数量是8与针对图片的最小译码单元大小中的最大值的的第二倍数。例如,视频解码可以解码指示pic_height_in_luma_samples的语法元素的值,以确定图片的高度。
107.在划分视频数据之后,视频译码器(例如,视频编码器200或视频解码器300)可以生成针对块的预测信息,并基于预测信息来确定针对块的预测块。同样,预测块可以依赖于相邻块。例如,视频译码器可以基于上相邻块和左相邻块来确定针对当前块的预测块。通过防止导致相对较小的块大小的块拆分(例如,色度分量和/或亮度分量),视频译码器可以以较少的块依赖性确定视频数据块的预测信息,从而潜在地增加可以被并行地译码(例如,编码或解码)的块的数量,而在预测精度和/或复杂度上几乎没有损失。
108.视频译码器(例如,视频编码器200或视频解码器300)可能不对角处的2x2和2x4/4x2块进行译码(例如,编码或解码)。为了重建这些块,视频译码器可以应用填充方法。在一些示例中,视频译码器可以使用当前块的左上像素的经重构的像素来重构块。在填充的一些示例中,视频译码器可以通过例如重复相邻的经重构的左列,来重构块。在填充的一些示例中,视频译码器可以通过例如重复相邻的经重构的上行,来重构块。
109.视频译码器(例如,视频编码器200或视频解码器300)可以通过填充位于图片右下角处的2x2和2x4/4x2块,来将2x2和2x4/4x2块扩展为4x4样本的大小。填充区域可以包含零或另一适当常量值(例如,最大样本值的一半,例如,针对10比特样本的512),或重复或再现块样本等。例如,视频译码器可以用填充区域来填充2x2和2x4/4x2块,该填充区域可以包含零或另一适当常量值(例如,最大样本值的一半,例如,针对10比特样本为512),或重复或再现块样本等。
110.视频译码器(例如,视频编码器200或视频解码器300)可以像其它4x4块一样对产生的4x4块进行译码(例如,编码或解码)。视频译码器可以被配置为在重建4x4块后,将其裁剪为在图片角中的该块的原始的2x2或2x4/4x2大小。
111.视频译码器(例如,视频编码器200或视频解码器300)可以将角处的2x2和2x4/4x2块的块大小扩展为4x4。在这种情况下,视频译码器可以将经扩展区域的残差设置为等于默认值(例如,0)。与对4x4块进行编码相比,对经扩展的4x4块的变换和量化可以保持不变。在关于角处的2x2和2x4/4x2块的块大小的经重构过程中,视频译码器可以被配置为不使用经扩展区域处的预测值,而使用未经扩展的预测值。
112.图5是示出将2x2块170扩展到4x4块、将2x4块172扩展到4x4块以及将4x2块174扩展到4x4块的示例的概念图。图5的具有灰色形状的块可以表示实际数据,而图5的白色区域可以表示经扩展区域。
113.图6是示出可以执行本公开内容的技术的示例视频编码器200的框图。图6是为了解释的目的而提供的,并且不应被认为是对本公开内容中广泛例示和描述的技术的限制。为了解释的目的,本公开内容在视频译码标准(例如,正在开发的hevc视频译码标准和h.266视频译码标准)的上下文中描述了视频编码器200。然而,本公开内容的技术不限于这些视频译码标准,并且通常适用于视频编码和解码。
114.在图6的示例中,视频编码器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可以包括另外的或替代的处理器或处理电路用以执行这些和其它功能。
115.视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收储存在视频数据存储器230中的视频数据。dpb 218可以充当储存参考视频数据的参考图片存储器,参考视频数据用于由视频编码器200预测后续的视频数据。视频数据存储器230和dpb 218可以由多种存储器设备(诸如,动态随机存取存储器(dram)(包括同步dram(sdram))、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器设备)中的任何一种形成。视频数据存储器230和dpb 218可以由相同的存储器设备或分别的存储器设备提供。在各种示例中,如图所示,视频数据存储器230可以与视频编码器200的其它组件在芯片上,或者相对于那些组件在芯片外。
116.在本公开内容中,对视频数据存储器230的提及不应被解释为仅限于视频编码器200内部的存储器,除非专门描述为这样,或视频编码器200外部的存储器,除非专门描述为这样。相反,对视频数据存储器230的提及应被理解为提及储存视频编码器200接收到用于进行编码的视频数据(例如,用于要编码的当前块的视频数据)的存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时储存。
117.图6的各个单元被示出以帮助理解由视频编码器200执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能的电路,并被预设在可以执行的操作上。可编程电路是指可以被编程以执行各种任务,并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
118.视频编码器200可以包括算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或由可编程电路形成的可编程核。在使用由可编程电路执行的软件执行视频编码器200的操作的示例中,存储器106(图1)可以储存视频编码器200接收并执行的软件的目
标代码,或者视频编码器200(未示出)内的另一存储器可以存储这样的指令。
119.视频数据存储器230被配置为储存接收到的视频数据。视频编码器200可以从视频数据存储器230获取视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要编码的原始视频数据。
120.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括用于根据其它预测模式执行视频预测的另外的功能单元。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。
121.模式选择单元202通常协调多个编码通路(pass)以测试编码参数的组合以及针对这种组合的结果率失真值(resulting rate-distortion value)。编码参数可以包括将ctu划分为cu、针对cu的预测模式、针对cu的残差数据的变换类型、针对cu的残差数据的量化参数等。模式选择单元202可以最终选择具有与其它经测试的组合相比而言较好的率失真值的编码参数的组合。
122.视频编码器200可以将从视频数据存储器230获取的图片划分成一系列ctu,并将一个或多个ctu封装在条带内。模式选择单元202可以根据树结构(诸如上述hevc的qtbt结构或四叉树结构)来划分图片的ctu。如上所述,视频编码器200可以通过根据树结构划分ctu,来形成一个或多个cu。这样的cu通常也可以被称为“视频块”或“块”。在一些示例中,模式选择单元202可以被配置为基于色度拆分限制来确定视频数据的非拆分色度块的多个子块,并处理多个子块以生成针对非拆分色度块的预测信息。在一些示例中,模式选择单元202可以被配置为限制图片大小以避免在图片的一角处的2x2和2x4/4x2色度块。在一些示例中,模式选择单元202可以被配置为禁止处理图片的一角处的2x2和2x4/4x2块。
123.通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前cu、或在hevc中的pu和tu的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,在dpb 218中储存的一个或多个先前经译码的图片)中的一个或多个接近地匹配的参考块。具体地,运动估计单元222可以例如根据绝对差的和(sad)、平方差和(ssd)、平均绝对差(mad)、均方差(msd)等来计算表示潜在参考块与当前块的相似程度的值。运动估计单元222通常可以使用当前块与正在考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,该最低值指示与当前块最接近地匹配的参考块。
124.运动估计单元222可以形成一个或多个运动向量(mv),其定义相对于当前图片中的当前块的位置的参考图片中的参考块的位置。然后,运动估计单元222可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。然后,运动补偿单元224可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来获取参考块的数据。作为另一示例,如果运动向量具有分数样本精度(fractional sample precision),则运动补偿单元224可以根据一个或多个内插滤波器来对针对预测块的值进行内插。此外,对于双向帧间预测,运动补偿单元224可以获取由相应的运动向量标识的针对两个参考块的数据,并且例如通过逐样本平均或加权平均来合并获取的数据。
125.作为另一示例,对于帧内预测或帧内预测编码,帧内预测单元226可以根据与当前块相邻的样本来生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上合并相邻样本的值,并在当前块上在所定义的方向上填充这些计算值,以产生预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算当前块的相邻样本的平均值,并且生成预测块以针对预测块的每个样本包括得到的此平均值。
126.模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的未经编码的原始版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差异。得到的逐样本差异定义了针对当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的采样值之间的差异,以使用残差差分脉冲编码调制(rdpcm)生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。
127.在模式选择单元202将cu划分成pu的示例中,每个pu可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的pu。如上所述,cu的大小可以指cu的亮度译码块的大小,pu的大小可以指pu的亮度预测单元的大小。假设特定cu的大小是2nx2n,视频编码器200可以支持针对帧内预测的2nx2n或nxn的pu大小,以及针对帧间预测的2nx2n、2nxn、nx2n、nxn或类似的对称pu大小。视频编码器200和视频解码器300还可以支持对于针对帧间预测的2nxnu、2nxnd、nlx2n和nrx2n的pu大小的非对称划分。
128.在模式选择单元不将cu进一步划分成pu的示例中,每个cu可以与亮度译码块和对应的色度译码块相关联。如上所述,cu的大小可以指cu的亮度译码块的大小。视频编码器200和视频解码器300可以支持2nx2n、2nxn或nx2n的cu大小。
129.模式选择单元202可以限制图片大小。例如,模式选择单元202可以被配置为将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。以此方式,模式选择单元202可以考虑对块的色度分量进行下采样,这可以在译码精度损失很少或没有损失的情况下降低译码复杂度。例如,模式选择单元202可以限制图片大小,以防止将块划分的色度分量拆分成相对较小的色度块(例如,2x2色度块、2x4色度块或4x2色度块)。限制图片大小可以帮助降低源于块依赖性的译码复杂度,同时对译码精度没有或几乎没有影响。
130.对于其它视频译码技术(诸如,块内复制模式译码、仿射模式译码和线性模型(lm)模式译码,作为少数示例),模式选择单元202经由与译码技术相关联的相应单元来生成正被编码的当前块的预测块。在一些示例中,例如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示用于基于被选择的调色板来重构块的方式的语法元素。在这种模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
131.如上所述,残差生成单元204接收针对当前块和对应的预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差异。
132.变换处理单元206将一个或多个变换应用于残差块,以生成变换系数块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(dct)、方向变换、karhunen-loeve变换(klt)或概念
上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,主变换和辅变换,诸如旋转变换。在一些示例中,变换处理单元206不对残差块应用变换。
133.量化单元208可以量化变换系数块中的变换系数,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整被应用于与当前块相关联的变换系数块的量化的程度。量化可能造成信息的损失,并且因此,经量化的变换系数可以具有与由变换处理单元206产生的原始变换系数相比而言较低的精度。
134.逆量化单元210和逆变换处理单元212可以对经量化的变换系数块分别应用逆量化和逆变换,以根据变换系数块重构残差块。重构单元214可以基于所重构的残差块和由模式选择单元202生成的预测块来生成与当前块对应的经重构的块(尽管可能具有一定程度的失真)。例如,重构单元214可以将所重构的残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本中,以产生经重构的块。
135.滤波单元216可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元216可以执行去块操作以减少沿cu的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。
136.视频编码器200将经重构的块储存在dpb 218中。例如,在当不需要滤波器单元216的操作时的示例中,重构单元214可以将经重构的块储存到dpb 218。在当需要滤波器单元216的操作时的示例中,滤波器单元216可以将经滤波的经重构的块储存到dpb 218。运动估计单元222和运动补偿单元224可以从dpb 218获取由所重构的(和潜在地经滤波的)块形成的参考图片,以对经随后编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的dpb 218中的经重构的块,以对当前图片中的其它块进行帧内预测。
137.通常,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码的数据。例如,熵编码单元220可以执行上下文自适应可变长度译码(cavlc)操作、cabac操作、可变到可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间划分熵(pipe)编码操作、指数golomb编码操作、或对数据的另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未经熵编码的旁路模式下进行操作。
138.视频编码器200可以输出比特流,该比特流包括为重构条带或图片的块所需的经熵编码的语法元素。具体地,熵编码单元220可以输出比特流。
139.以上描述的操作是关于块来描述的。这种描述应被理解为是用于亮度译码块和/或色度译码块的操作。如上所述,在一些示例中,亮度译码块和色度译码块是cu的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是pu的亮度分量和色度分量。
140.在一些示例中,对于色度译码块,不需要重复相对于亮度译码块执行的操作。作为一个示例,对于识别针对色度块的运动向量(mv)和参考图片,不需要重复用于识别针对亮
度译码块的运动向量(mv)和参考图片的操作。而是,可以放缩针对亮度译码块的mv,以确定针对色度块的mv,并且参考图片可以相同。作为另一示例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。
141.视频编码器200表示被配置为编码视频数据的设备的示例,所述设备包括被配置为存储视频数据的存储器、在电路中实现并被配置为进行如下操作的一个或多个处理单元:基于色度拆分限制来确定视频数据的非拆分色度块的多个子块,并对多个子块进行编码以生成针对非拆分色度块的预测信息。在一些示例中,视频编码器200可以被配置为限制图片大小以避免图片的一角处的2x2和2x4/4x2色度块。在一些示例中,视频编码器200和视频解码器300可以被配置为禁止处理图片的一角处的2x2和2x4/4x2块。
142.视频编码器200表示被配置为编码视频数据的装置的示例,该装置包括被配置为存储视频数据的存储器(例如,视频数据存储器230)和在电路中实现的一个或多个处理器。模式选择单元202可以被配置为限制视频数据的图片大小。为了限制视频数据的图片大小,模式选择单元202可以被配置为将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。模式选择单元202可以被配置为确定针对图片的块的预测块。残差生成单元204可以被配置为基于块和预测块之间的差来生成针对块的残差块。熵编码单元220可以对残差块进行编码。
143.图7是示出可以执行本公开内容的技术的示例视频解码器300的框图。图7是为了解释的目的而提供的,并且不限制在本公开内容中泛泛例示和描述的技术。为了解释的目的,本公开内容描述了根据jem、vvc和hevc的技术的视频解码器300。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。
144.在图7的示例中,视频解码器300包括经译码图片缓存(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓存(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和dpb 314中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。此外,视频解码器300可以包括另外的或替代的处理器或处理电路,用以执行这些和其它功能。
145.预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括用于根据其它预测模式执行预测的另外的单元。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。在一些示例中,预测处理单元304可以被配置为基于色度拆分限制来确定视频数据的非拆分色度块的多个子块,并处理多个子块以生成针对非拆分色度块的预测信息。在一些示例中,预测处理单元304可以被配置为限制图片大小以避免在图片的一角处的2x2和2x4/4x2色度块。在一些示例中,预测处理单元304可以被配置为禁止处理图片的一角处的2x2和2x4/4x2块。
146.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的其它组件在芯片上,或者相对于这些组件在芯片外。
147.另外或替代地,在一些示例中,视频解码器300可以从存储器120(图1)获取经译码的视频数据。即,存储器120可以如上所述与cpb存储器320一起储存数据。同样,当视频解码器300的部分或全部功能实现在要由视频解码器300的处理电路执行的软件中时,存储器120可以储存要由视频解码器300执行的指令。
148.图7所示的各种单元被示出以帮助理解由视频解码器300执行的操作。这些单元可以被实现为固定功能电路、可编程电路或其组合。类似于图6,固定功能电路是指提供特定功能的电路,并被预设在可以执行的操作上。可编程电路是指可以被编程以执行各种任务,并在可以被执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以由软件或固件的指令所定义的方式进行操作的软件或固件。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常是不变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
149.视频解码器300可以包括alu、efu、数字电路、模拟电路和/或由可编程电路形成的可编程核。在当视频解码器300的操作由在可编程电路上执行的软件执行时的示例中,片上或片外存储器可以储存视频解码器300接收和执行的软件的指令(例如,目标代码)。
150.熵解码单元302可以从cpb接收经编码的视频数据,并且对视频数据进行熵解码以再生语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素生成经解码的视频数据。
151.通常,视频解码器300逐块地重构图片。视频解码器300可以单独地对每个块执行重构操作(其中,当前正经重构的即经解码的块可以被称为“当前块”)。
152.熵解码单元302可以对语法元素进行熵解码,其中,语法元素定义经量化的变换系数块的经量化的变换系数、以及变换信息(诸如量化参数(qp)和/或变换模式指示)。逆量化单元306可以使用与经量化的变换系数块相关联的qp以确定量化的程度,并且同样地,确定供逆量化单元306要应用的逆量化的程度。逆量化单元306可以例如执行逐比特左移操作以对经量化的变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。
153.在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一个或多个逆变换,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对变换系数块应用逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换。
154.预测处理单元304可以确定图片大小限制。例如,图片大小限制可以包括将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。以此方式,预测处理单元304可以考虑对块的色度分量进行下采样,这可以在译码精度损失
很少或没有损失的情况下降低译码复杂度。例如,预测处理单元304可以应用图片大小限制,其防止将块划分的色度分量拆分成相对较小的色度块(例如,2x2色度块、2x4色度块或4x2色度块)。应用图片大小限制可以帮助降低源于块依赖性的译码复杂度,同时对译码精度没有或几乎没有影响。
155.此外,预测处理单元304根据由熵解码单元302熵解码了的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是相互预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示dpb 314中要从其获取参考块的参考图片、以及标识相对于当前图片中的当前块的位置的参考图片中的参考块的位置的运动向量。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图6)所描述的方式的方式来执行帧间预测过程。
156.作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318可以以与关于帧内预测单元226(图6)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314获取当前块的相邻样本的数据。
157.重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本添加到预测块的对应样本中,以重构当前块。
158.滤波单元312可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿经重构的块的边缘的块性伪影。并非在所有示例中都必须执行滤波单元312的操作。
159.视频解码器300可以将经重构的块储存在dpb 314中。例如,在当不执行滤波单元312的操作时的示例中,重构单元310可以将经重构的块储存到dpb 314。在当执行滤波单元312的操作时的示例中,滤波单元312可以将经滤波的经重构的块储存到dpb 314。如上所述,dpb 314可以向预测处理单元304提供参考信息,诸如,针对帧内预测的当前图片的样本和针对后续运动补偿的经先前解码的图片的样本。此外,视频解码器300可以从dpb 314输出经解码的图片,以便随后在诸如图1的显示设备118的显示设备上呈现。
160.以这种方式,视频解码器300表示装置的示例,该装置包括被配置为存储视频数据的存储器(例如,视频数据存储器230)和在电路中实现并配置为确定图片大小限制的一个或多个处理单元。图片大小限制可以包括将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。模式选择单元202可以被配置为确定针对图片的块的预测块。残差生成单元204可以被配置为基于块和预测块之间的差来生成针对块的残差块。熵编码单元220可以对残差块进行编码。预测处理单元304可以被配置为确定针对图片的块的预测块。熵解码单元302可以被配置为对针对块的残差块进行解码。重构单元310可以被配置为合并预测块和残差块以解码该块。
161.图8是示出用于编码当前块的示例方法的流程图。当前块可以包括当前cu。尽管关于视频编码器200(图1和6)进行了描述,但是其它设备可以被配置为执行类似于图8的方法的方法。
162.模式选择单元202可以设置图片的图片大小(348)。例如,模式选择单元202可以应用图片大小限制,以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。通过防止导致相对较小的块大小的拆分,模式选择单元202可
以以较少的块依赖性确定针对视频数据的图片(例如,视频图片、条带或另一部分)的块的预测块,从而潜在地增加可以被并行地译码(例如,编码或解码)的块的数量,而在预测精度和/或复杂度上几乎没有损失。
163.模式选择单元202可以预测当前块(350)。模式选择单元202可以限制对图片进行的划分。例如,模式选择单元202可以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数,这可以帮助防止对块的拆分,该拆分会产生在图片的一角处的较小的色度块。
164.例如,模式选择单元202可以形成针对当前块的预测块。然后,残差生成单元204可以计算针对当前块的残差块(352)。为了计算残差块,残差生成单元204可以计算原始的未经编码的块与针对当前块的预测块之间的差异。变换处理单元206和量化单元208随后可以变换并量化残差块的变换系数(354)。熵编码单元220可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,熵编码单元220可以对变换系数进行熵编码(358)。例如,熵编码单元220可以使用cavlc或cabac对变换系数进行编码。熵编码单元220可以输出块的经熵编码的数据(360)。
165.图9是示出用于解码视频数据的当前块的示例方法的流程图。当前块可以包括当前cu。尽管关于视频解码器300(图1和7)进行了描述,但是其它设备可以被配置为执行类似于图9的方法的方法。
166.预测处理单元304可以确定图片的图片大小(368)。例如,预测处理单元304可以确定图片大小,该图片大小应用图片大小限制,以将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的相应倍数。配置预测处理单元304以确定用于应用图片大小限制的图片大小可以帮助防止导致相对较小的块大小的拆分。防止导致相对较小的块大小的拆分可以帮助以较少的块依赖性确定针对视频数据的图片的块(例如,视频图片、条带或另一部分)的预测块,因此,潜在地增加可以并行地译码(例如,编码或解码)的块的数量,而在预测精度和/或复杂度上几乎没有损失。
167.熵解码单元302可以接收针对当前块的经熵译码的数据,诸如,经熵译码的预测信息和针对对应于当前块的残差块的系数的经熵编码的数据(370)。熵解码单元302可以对经熵译码的数据进行熵解码,以确定针对当前块的预测信息并再生残差块的系数(372)。预测处理单元304可以例如使用由针对当前块的预测信息指示的帧内或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。预测处理单元304可以使用图片大小限制来确定对视频数据进行的划分。图片大小限制可以包括:将图片的宽度和图片的高度各自设置为8与针对图片的最小译码单元大小中的最大值的倍数。例如,预测处理单元304可以应用图片大小限制以确定用于防止对块的拆分的分区,其中该拆分会导致在图片的角处的较小的块色度块。
168.然后,熵解码单元302可以逆扫描再生的系数(376),以创建经量化的变换系数的块。逆量化单元306和逆变换处理单元308可以对变换系数进行逆量化和逆变换以产生残差块(378)。重构单元310可以通过合并预测块和残差块来解码当前块(380)。
169.图10是示出根据本公开内容的技术,使用图片大小限制的示例过程的流程图。当前块可以包括当前cu。尽管关于视频解码器300(图1和图7)进行了描述,但是其它设备可以被配置为执行类似于图9的方法的方法。
170.视频译码器(例如,视频编码器200或视频解码器300,或更具体地,例如,视频编码器200的模式选择单元202或视频解码器300的预测处理单元304)可以确定最小cu大小(390)。例如,视频译码器可以确定mincbsizey。视频译码器可以将乘数值确定为max(8,mincusize)(391)。例如,如果8大于mincusize,则视频译码器可以将乘数值确定为8,如果mincusize大于8,则视频译码器可以将乘数值确定为mincusize。
171.视频译码器可以使用乘数值来确定图片大小(392)。例如,视频译码器可以根据整数(例如,x1)和乘数值(例如,max(8,mincusize))来确定针对图片的宽度,并根据整数(例如,x2)和乘数值(例如,max(8,mincusize))来确定针对图片的高度。
172.视频译码器可以使用图片大小来识别图片的右下角块(393)。例如,视频译码器可以确定划分(例如,对指示划分的一个或多个语法值进行划分或解码),该划分基于图片大小将图片拆分成整数个块,其包括图片的右下角块。
173.视频译码器可以根据图片大小来确定右下角块的大小(394)。例如,视频译码器可以确定划分(例如,对指示划分的一个或多个语法值进行划分或解码),该划分基于图片大小将右下角块设置为包括至少8个样本的宽度和至少8个样本的高度。
174.视频译码器可以对右下角块进行译码(例如,编码或解码)(395)。例如,视频译码器可以生成针对右下角块的预测块。在视频译码器是视频编码器的示例中,视频编码器可以生成针对右下角块的残差块。在该示例中,视频编码器可以基于右下角块和预测右下角块之间的差来生成针对右下角块的残差块,并对残差块进行编码。在视频译码器是视频解码器的示例中,视频解码器可以生成针对右下角块的预测块。在该示例中,视频解码器可以解码针对右下角块的残差块,并将预测块和残差块合并以解码右下角块。
175.在图10的示例中,视频译码器(例如,视频编码器200或视频解码器300)可以执行对图片的右下角的编码和/或解码,该右下角可以包括至少64个亮度样本。在一些示例中,视频译码器(例如,视频编码器200或视频解码器300)可以使用局部双树方案对右下角块进行编码和/或解码,其中,用于图片的右下角的亮度块可以被拆分成亮度子块(例如,一个8x8块可以被拆分成两个4x8块)。视频译码器可以使用相同的帧间模式对所有亮度子块进行编码和/或解码。在一些示例中,视频译码器可以使用帧内模式、帧内块复制(ibc)和/或调色板模式对亮度子块进行编码和/或解码。
176.响应于确定使用帧间模式对所有亮度子块进行编码或解码,视频译码器(例如,视频编码器200或视频解码器300)可以在拆分亮度块时将图片右下角的色度块拆分成色度子块,并从亮度块继承运动信息以编码和/或解码色度子块。然而,响应于确定使用帧内模式、帧内块复制(ibc)和/或调色板模式对亮度子块进行编码或解码,视频译码器可以不拆分色度块,并且视频译码器可以使用帧内预测对色度块进行编码和/或解码。
177.下文提供了本公开内容的技术的示例的非限制性说明性列表。
178.示例1、一种处理视频数据的方法,该方法包括:通过视频译码器,基于色度拆分限制,来确定视频数据的经帧间译码的条带的非拆分色度块的多个子块;以及通过所述视频译码器,处理所述多个子块以生成针对所述非拆分色度块的预测信息。
179.示例2、根据示例1所述的方法,包括:当对应的亮度区域中的所有块都被帧内译码时,强制对所述多个子块中的每个子块进行帧内译码。
180.示例3、根据示例1-2中任一示例所述的方法,包括:当对应的亮度区域包含经帧间
译码的亮度块和经帧内译码的亮度块时,使用默认模式对每个子块进行编码。
181.示例4、根据示例3所述的方法,其中,默认模式包括帧内模式。
182.示例5、根据示例3所述的方法,其中,默认模式包括帧间模式。
183.示例6、根据示例5所述的方法,还包括:根据针对所述对应的亮度区域的经帧间译码的亮度块中的一个的运动矢量,确定针对所述多个子块中的一个或多个子块的运动矢量。
184.示例7、根据示例5所述的方法,还包括:根据针对所述对应的亮度区域的每个经帧间译码的亮度块的运动向量的平均,来确定所述多个子块中的一个或多个的运动向量。
185.示例8、一种处理视频数据的方法,该方法包括:限制图片大小以避免所述图片的角处的2x2和2x4/4x2色度块;通过视频译码器,确定视频数据的所述图片的多个块;以及通过所述视频译码器,处理所述多个块。
186.示例9、根据示例8所述的方法,其中,限制所述图片大小包括将所述图片的宽度和所述图片的高度设置为8与最小cu大小中的最大值的倍数。
187.示例10、一种处理视频数据的方法,该方法包括:通过视频译码器,确定视频数据的图片的多个块;以及通过所述视频译码器,处理所述多个块,其中,处理所述多个块包括禁止处理在所述图片的角处的2x2和2x4/4x2块。
188.示例11、根据示例10所述的处理视频数据的方法,其中,禁止处理所述图片的角处的2x2和2x4/4x2块包括:重建在所述图片的所述角处的所述2x2和2x4/4x2块。
189.示例12、根据示例10所述的处理视频数据的方法,其中,禁止处理所述图片的角处的2x2和2x4/4x2块包括:通过填充位于图片右下角处的2x2和2x4/4x2块,来将所述2x2和2x4/4x2块扩展为4x4样本的大小。
190.示例13、根据示例10所述的处理视频数据的方法,其中,禁止处理所述图片的角处的2x2和2x4/4x2块包括:将所述角处的2x2和2x4/4x2块的块大小扩展为4x4,以及将所扩展的区域的残差设置为默认值。
191.示例14、一种用于对视频数据进行译码的设备,该设备包括用于执行根据示例1-13中任一示例所述的方法的一个或多个单元。
192.示例15、根据示例14所述的设备,其中,所述一个或多个单元包括在电路中实现的一个或多个处理器。
193.示例16、根据示例14和15中任一示例所述的设备,还包括用于存储视频数据的存储器。
194.示例17、根据示例14-16中任一示例所述的设备,还包括:被配置为显示经解码的视频数据的显示器。
195.示例18、根据示例14-17中任一示例所述的设备,其中,所述设备包括照相机、计算机、移动设备、广播接收机设备或机顶盒中的一个或多个。
196.示例19、根据示例14-18中任一示例所述的设备,其中,所述设备包括视频解码器。
197.示例20、根据示例14-19中任一示例所述的设备,其中,所述设备包括视频编码器。
198.示例21、一种计算机可读存储介质,其上存储有指令,所述指令在被执行时使一个或多个处理器执行示例1-13中任一示例所述的方法。
199.应当认识到,根据示例,在本文描述的任何技术的特定行为或事件可以以不同的
顺序执行,可以一起添加、合并或省略(例如,并非所有描述的行为或事件对于技术的实践都是必需的)。此外,在特定的示例中,动作或事件可以并发地执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
200.在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为计算机可读介质上的一个或多个指令或代码储存在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读储存介质,其对应于诸如数据储存介质之类的有形介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读储存介质或(2)诸如信号或载波的通信介质。数据储存介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以获取用于实现在本公开内容中描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
201.作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或任何其它可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(诸如红外、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电和微波)都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是指向非暂时性有形储存介质。本文所使用的磁盘和光盘包括光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则以激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。
202.指令可以由一个或多个处理器(诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效集成或分立逻辑电路)执行。因此,如本文所使用的术语“处理器”和“处理电路”可以指上述结构或适于实现本文所描述的技术的任何其它结构中的任何一个。另外,在一些方面中,本文所描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或并入组合式codec中。此外,这些技术可以完全实现在一个或多个电路或逻辑元件中。
203.本公开内容的技术可以实现在多种设备或装置(包括无线手持设备、集成电路(ic)或一组ic(例如,芯片组))中。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各种单元可以组合在codec硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合适合的软件和/或固件来提供。
204.已描述了各种示例。这些和其它示例在以下权利要求的范围内。
再多了解一些

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

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

相关文献