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

视频编码和解码中的空间可扩展性支持的制作方法

2022-02-20 00:48:00 来源:中国专利 TAG:

视频编码和解码中的空间可扩展性支持
1.本技术要求于2020年6月4日提交的美国申请no.16/892,709的优先权,该篇申请要求于2019年6月7日提交的美国临时申请no.62/858,901的权益,这两篇申请的全部内容通过引用结合于此。
技术领域
2.本公开涉及视频编码和视频解码。


背景技术:

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


技术实现要素:

5.本公开的技术涉及多层视频数据编码和解码,并且更具体地,涉及用于管理用于多层视频数据编码和解码的解码的图片缓冲器的技术。本公开还描述了用于在多层视频数据编码和解码中检测新访问单元的开始的技术。多层视频数据可以用来使得空间可扩展性成为可能。
6.根据本公开的一个示例,一种对多层视频数据进行解码的方法,包括:获得多层视频数据,其中,多层视频数据至少包括第一层和第二层;确定针对第一层的层标识值和针对第二层的层标识值,其中,针对第二层的层标识值高于针对第一层的层标识值;将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中;以及响应于确定瞬时解码刷新(idr)图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。
7.根据本公开的另一示例,一种用于对多层视频数据进行解码的设备,包括:存储
器,该存储器被配置为存储多层视频数据;和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:获得多层视频数据,其中,多层视频数据至少包括第一层和第二层;确定针对第一层的层标识值和针对第二层的层标识值,其中,针对第二层的层标识值高于针对第一层的层标识值;将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中;以及响应于确定瞬时解码刷新(idr)图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。
8.根据本公开的另一示例,一种存储有指令的计算机可读存储介质,当指令由一个或多个处理器执行时,使一个或多个处理器:获得多层视频数据,其中,多层视频数据至少包括第一层和第二层;确定针对第一层的层标识值和针对第二层的层标识值,其中,针对第二层的层标识值高于针对第一层的层标识值;将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中;以及响应于确定瞬时解码刷新(idr)图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。
9.一种用于对多层视频数据进行解码的装置包括:用于获得多层视频数据的构件,其中,多层视频数据至少包括第一层和第二层;用于确定针对第一层的层标识值和针对第二层的层标识值的构件,其中,针对第二层的层标识值高于针对第一层的层标识值;用于将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中的构件;以及用于响应于确定瞬时解码刷新(idr)图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中的构件。
10.一个或多个示例的细节将在附图和以下描述中进行阐述。从说明书和附图中、以及权利要求书中,其他特征、目的和优点将变得显而易见。
附图说明
11.图1是图示可以执行本公开的技术的示例性视频编码和解码系统的框图。
12.图2a和图2b是图示示例性四叉树二叉树(qtbt)结构和对应的编解码树单元(ctu)的概念图。
13.图3示出了其中访问单元内的图片具有相同的poc值的示例。
14.图4示出了其中poc计数跨不同层是连续的并且访问单元内的图片具有不同的poc值的示例。
15.图5示出了访问单元的示例,其中并非所有层都存在于访问单元中。
16.图6是图示可以执行本公开的技术的示例性视频编码器的框图。
17.图7是图示可以执行本公开的技术的示例性视频解码器的框图。
18.图8是图示视频编码过程的流程图。
19.图9是图示视频解码过程的流程图。
20.图10是图示用于维护dpb的示例性过程的流程图。
具体实施方式
21.视频编解码(例如,视频编码和/或视频解码)通常涉及从相同图片中的已编解码
的视频数据块预测(例如,帧内预测)或从不同图片中的已编解码的视频数据块预测(例如,帧间预测)视频数据块。在一些实例下,视频编码器还通过将预测块与原始块进行比较来计算残差数据。因此,残差数据表示预测块和与原始块之间的差。为了减少信令通知残差数据所需的比特数,视频编码器对残差数据进行变换以及量化,并且在编码的比特流中信令通知变换的和量化的残差数据。由变换和量化过程实现的压缩可能是有损的,这意味着变换和量化过程可能将失真引入解码的视频数据中。
22.视频解码器对残差数据进行解码并且将其添加到预测块,以产生比只有预测块更接近地匹配原始视频块的重构的视频块。由于通过对残差数据的变换和量化而引入的损失,第一重构块可能具有失真或伪像。一种常见类型的伪像或失真被称为块效应(blockiness),其中用来对视频数据进行编解码的块的边界是可见的。
23.为了进一步提高解码的视频的质量,视频解码器可以对重构的视频块执行一个或多个滤波操作。这些滤波操作的示例包括去块滤波、样点自适应偏移(sao)滤波和自适应环路滤波(alf)。用于这些滤波操作的参数可以由视频编码器来确定并且在编码的视频比特流中被显式地信令通知,或者可以由视频解码器来隐式地确定,而不需要在编码的视频比特流中显示地信令通知这些参数。
24.为了允许可扩展性(通常指视频比特流用于支持多空间分辨率和/或多帧速率的能力),一些视频比特流包括多个层。多层比特流可以包括基础层和一个或多个非基础层。非基础层有时也被称为增强层。在可扩展的比特流中,基础层通常可以具有等于零的层标识符(例如,nuh_layer_id),并且可以是独立可解码的,这意味着基础层可以被解码而不需要来自其他层的信息。非基础层可以具有大于零的层标识符,并且可以提供没有被包括在基础层中的附加视频数据。该附加视频数据例如可以包括更多的样点值,这些样点值可以用来提高空间分辨率或帧速率。非基础层可以是独立可解码的,也可以不是独立可解码的。一些非基础层在不访问与其他层相关联的信息的情况下就不会被解码,因此被认为取决于那些其他层。视频编解码层(vcl)网络提取层(nal)单元通常指编解码的条带nal单元,其包括针对图片条带的视频数据。层总体上指vcl nal单元和相关联的非vcl nal单元的集合,所有vcl nal单元都具有特定的nuh_layer_id值。
25.nal单元是语法结构,包含要遵循的数据类型的指示以及包含按原始字节序列载荷(rbsp)的形式的数据的字节,必要时穿插有仿真防止字节。访问单元(au)是属于不同层的图片单元的集合,并且包含与相同时间相关联的编解码的图片。图片单元是一组nal单元,它们根据指定的分类规则彼此相关联,在解码顺序上是连续的,并且恰好包含一个编解码的图片。
26.瞬时解码刷新(idr)图片是在解码过程中不使用帧间预测的图片类型,并且因此可以是比特流中在解码顺序上的第一图片。idr图片也可以较晚出现在比特流中,并且可以被用于随机访问,该随机访问通常指在除了流的开头以外的点开始针对比特流的解码过程的动作。每个idr图片是解码顺序上编解码的视频序列(cvs)的第一图片。
27.视频编码器和视频解码器将解码的图片存储在解码的图片缓冲器(dpb)中,使得解码的图片可以用作参考图片来对比特流中的较晚图片进行编码和解码。参考图片包含可以用于在解码顺序上后续图片的解码过程中的帧间预测的样点。确定哪个图片要保留在dpb中以及哪个图片要移除,即“调出(bump)”,这可能会对于多层视频数据提出独特的挑
战,因为将来自一个层的图片添加到dpb可能会调出来自其他层的图片。本公开描述了用于当视频数据层包括idr图片时从dpb中调出图片的技术。
28.根据本公开的一些技术,响应于确定层的图片是idr图片,视频解码器可以从dpb中移除idr图片所属于的层的所有解码的图片,同时将具有较低层id的所有解码的图片留在解码的图片缓冲器中。通过以这种方式配置视频解码器,当那些较低层不包括idr图片时,视频解码器可以留存基于具有较低层id的解码的图片来对未来图片进行解码的能力。通过以这种方式管理dpb,视频解码器可以防止由于必要的参考图片不可用而导致无可解码的比特流的编解码情形。
29.根据本公开的一些技术,响应于确定(1)第二访问单元的vcl nal单元的层标识小于在解码顺序上紧接的前一个图片的层标识,以及(2)第二访问单元的vcl nal单元的图片顺序计数(poc)值不同于在解码顺序上针对紧接的前一个图片的poc值,视频解码器可以确定第二访问单元的vcl nal单元对应于第二访问单元的开始。该技术可以通过不给单层视频解码器带来过度的负担来表示用于检测新访问单元的开始的改进方式。
30.尽管可以从视频解码器的角度来对本公开的技术进行描述,但是应当理解,所描述的技术也可以由视频编码器来执行。例如,视频编码器通常还对视频数据进行解码,作为确定如何对视频数据进行编码的过程的一部分。结合该解码,视频编码器可以使用与视频解码器相同的技术来维护dpb。
31.图1是图示了可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术总体上涉及编解码(编码和/或解码)视频数据。总体上,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未编码的视频、编码的视频、解码的(例如,重构的)视频和视频元数据,诸如信令数据。
32.如图1所示,在该示例中,系统100包括源设备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可以被配置为应用本公开中描述的用于连续图片顺序计数(poc)编号的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或布置。例如,源设备102可以从诸如外部相机的外部视频源接收视频数据。类似地,目的地设备116可以与外部显示设备接合,而不包括集成的显示设备。
34.如图1所示出的系统100仅仅是一个示例。总体上,任何数字视频编码和/或解码设备都可以执行本公开中描述的用于连续poc编号以支持可扩展性的技术。源设备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执行的软件指令。尽管在该示例中,与视频编码器200和视频解码器300分开示出,但是应当理解的是,视频编码器200和视频解码器300还可以包括用于功能上类似或等同目的的内部存储器。此外,存储器106、120可以存储编码的视频数据,例如从视频编码器200输出并且输入到视频解码器300的数据。在一些示例中,存储器106、120的部分可以被分配作为一个或多个视频缓冲器,例如以存储原始的、解码的和/或编码的视频数据。
37.计算机可读介质110可以表示能够将编码的视频数据从源设备102传输到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质,以使得源设备102能够例如经由射频网络或基于计算机的网络实时地直接向目的地设备116发送编码的视频数据。根据通信标准,诸如无线通信协议,输出接口108可以输出(例如通过调制)包括编码的视频数据的传输信号,并且输入接口122可以接收(例如通过解调)所接收到的传输信号。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或全球网络(诸如因特网))的一部分。通信介质可以包括路由器、交换机、基站或有助于促进从源设备102到目的地设备116的通信的任何其他装置。
38.在一些示例中,源设备102可以从输出接口108向存储设备112输出编码的数据。类似地,目的地设备116可以经由输出接口122访问来自存储设备112的编码的数据,包括编码的多层视频数据。存储设备112可以包括多种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪速存储器、易失性或非易失性存储器,或者用于存储编码的视频数据的任何其他合适的数字存储介质。
39.在一些示例中,源设备102可以向文件服务器114或可以存储由源设备102生成的
编码的视频的另一中间存储设备输出编码的视频数据。目的地设备116可以经由流传输或下载从文件服务器114访问所存储的视频数据。文件服务器114可以是能存储编码的视频数据并向目的地设备116发送该编码的视频数据的任何类型的服务器设备。文件服务器114可以表示网页服务器(例如,用于网站的)、文件传输协议(ftp)服务器、内容递送网络设备或网络附加存储(nas)设备。目的地设备116可以通过任何标准数据连接(包括因特网连接)来访问来自文件服务器114的编码的视频数据。这可以包括无线信道(例如,wi-fi连接)、有线连接(例如,数字订户线(dsl)、电缆调制解调器等)、光纤连接或者二者的组合,它们适于访问存储在文件服务器114上的编码的视频数据。文件服务器114和输入接口122可以被配置为根据流传输协议、下载传输协议或它们的组合来操作。
40.输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据多种ieee 802.11标准中的任何一种标准操作的无线通信组件或其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准,诸如4g、4g-lte(长期演进)、高级lte、5g等,来传输数据,诸如编码的视频数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准,诸如ieee 802.11规范、ieee 802.15规范(例如,zigbee
tm
)、蓝牙
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单元可以符合itu h.223多路复用器协议,或其他协议,诸如用户数据报协议(udp)。
44.视频编码器200和视频解码器300各自可以被实施为多种合适的编码器和/或解码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或它们的任何组合。当这些技术部分地被实施在软件中时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并且在硬件中使用一个或多个处理器来运行这些指令以执行本公开的技术。
视频编码器200和视频解码器300中的每一个可以被包括在一个或多个编码器或解码器中,其中任一个可以被集成为相应设备中的组合的编码器/解码器(编解码器(codec))的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,诸如蜂窝电话。
45.视频编码器200和视频解码器300可以根据视频编解码标准来操作,诸如itu-t h.265,也被称为高效率视频编解码(hevc)或其扩展,诸如多视点和/或可缩放视频编解码扩展。可替代地,视频编码器200和视频解码器300可以根据其他专有或行业标准来操作,诸如联合勘探测试模型(jem)或itu-t h.266,也被称为通用视频编解码(vvc)。2019年3月19日至27日,在瑞士日内瓦举行的itu-t sg 16wp 3和iso/iec jtc 1/sc 29/wg 11的联合视频专家小组(jvet)第14次会议(jvet-n1001-v3)上,由bross等人提出的“versatile video coding(draft 5)”(在下文中简称“vvc草案5”)中描述了vvc标准的最新草案。然而,本公开的技术不限于任何特定的编解码标准。
46.总体上,视频编码器200和视频解码器300可以执行图片的基于块的编解码。术语“块”通常指包括要处理的数据(例如,编码的、解码的或用在编码过程和/或解码过程中的其他形式的数据)的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。总体上,视频编码器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.本公开可以互换地使用“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。
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的一些示例提供了六十七种帧内预测模式,包括各种方向的模式,以及平面模式和dc模式。通常,视频编码器200选择描述与当前块(例如,cu的块)相邻的样点的帧内预测模式,根据该模式来预测当前块的样点。假设视频编码器200以光栅扫描顺序(从左侧到右侧、从顶部到底部)来对ctu和cu进行编解码,此类样点通常可以在与当前块相同的图片中的当前块的上方、当前块的上方到左侧,或到当前块的左侧。
58.视频编码器200对表示用于当前块的预测模式的数据进行编码。例如,对于帧间预
测模式,视频编码器200可以对表示使用了各种可用帧间预测模式中的哪一种模式对数据进行编码,以及对用于对应的模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可以使用高级运动向量预测(amvp)或合并(merge)模式来编码运动向量。视频编码器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还可以生成语法数据,诸如例如在图片标头、块标头、条带标头中的通往视频解码器300的基于块的语法数据、基于图片的语法数据和基于序列的语法数据,或者其他语法数据,诸如序列参数集(sps)、图片参数集(pps)或视频参数集(vps)。视频解码器300可以类似地解码此类语法数据,以确定如何解码对应的视频数据。
64.以这种方式,视频编码器200可以生成比特流,该比特流包括编码的视频数据,例如描述了图片到块(例如,cu)的分割的语法元素以及用于块的预测和/或残差信息。最终,视频解码器300可以接收比特流并且对编码的视频数据进行解码。
65.通常,视频解码器300执行与由视频编码器200执行的过程反向的过程,以对比特流的编码的视频数据进行解码。例如,视频解码器300可以使用cabac、按与视频编码器200的cabac编码过程实质相似但反向的方式,对针对比特流的语法元素的值进行解码。语法元素可以定义图片到ctu的分割信息,以及根据对应的分割结构(诸如qtbt结构)的每个ctu的
分割,以定义ctu的cu。语法元素还可以定义用于视频数据的块(例如,cu)的预测和残差信息。
66.残差信息可以由例如量化的变换系数来表示。视频解码器300可以对块的量化的变换系数进行逆量化以及逆变换,以重新产生用于块的残差块。视频解码器300使用信令通知的预测模式(帧内预测或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息),以形成用于块的预测块。视频解码器300然后可以(在逐样点的基础上)组合预测块和残差块,以重新产生原始块。视频解码器300可以执行附加的处理,诸如执行去块过程以减少沿块的边界的视觉伪像。
67.根据本公开的技术,视频编码器200和视频解码器300可以被配置为响应于确定层的图片是idr图片,从dpb中移除idr图片所属于的层的所有解码的图片。响应于确定层的图片是idr图片,视频编码器200和视频解码器300还可以被配置为将具有比idr图片的层更低的层id的所有解码的图片留在解码的图片缓冲器中。通过以这种方式配置视频编码器200和视频解码器300,当那些较低层不包括idr图片时,视频编码器200和视频解码器300可以留存基于具有较低层id的解码的图片来对未来图片进行解码的能力。通过以这种方式管理dpb,视频编码器200和视频解码器300可以防止由于必要的参考图片不可用而导致不可解码的比特流的编解码情形。
68.本公开可以通常涉及“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以指用来对编码的视频数据进行解码的用于语法元素和/或其他数据的值的通信。也就是说,视频编码器200可以在比特流中信令通知用于语法元素的值。通常,信令通知指在比特流中生成值。如上所述,源设备102可以实质上实时地或者不实时地向目的地设备116传输比特流,诸如当将语法元素存储到存储设备112以供目的地设备116稍后撷取时可能发生的情况。
69.图2a和图2b是图示了示例四叉树二叉树(qtbt)结构130和对应的编解码树单元(ctu)132的概念图。实线表示四叉树划分,并且虚线指示二叉树划分。在二叉树的每个划分节点(即,非叶节点)中,一个标志被信令通知以指示使用哪种划分类型(即,水平或垂直),其中在该示例中,0指示水平划分,1指示垂直划分。对于四叉树划分,不需要指示划分类型,因为四叉树节点将块水平和垂直划分成4个尺寸相等的子块。相应地,视频编码器200可以对用于qtbt结构130的区域树层(即实线)的语法元素(诸如划分信息)和用于qtbt结构130的预测树层(即虚线)的语法元素(例如划分信息)进行编码,并且视频解码器300可以对这些语法元素进行解码。视频编码器200可以对用于由qtbt结构130的终端叶节点表示的cu的视频数据(诸如预测和变换数据)进行编码,并且视频解码器300可以对该视频数据进行解码。
70.通常,图2b的ctu 132可以与定义与第一和第二层的qtbt结构130的节点对应的块的尺寸的参数相关联。这些参数可以包括ctu尺寸(表示样点中ctu 132的尺寸)、最小四叉树尺寸(minqtsize,表示最小允许的四叉树叶节点尺寸)、最大二叉树尺寸(maxbtsize,表示最大允许的二叉树根节点尺寸)、最大二叉树深度(maxbtdepth,表示最大允许的二叉树深度)和最小二叉树尺寸(minbtsize,表示最小允许的二叉树叶节点尺寸)。
71.与ctu对应的qtbt结构的根节点可以在qtbt结构的第一层具有四个子节点,该子节点中的每一个可以根据四叉树分割来分割。也就是说,第一层的节点要么是叶节点(没有
子节点),要么具有四个子节点。qtbt结构130的示例将这样的节点表示为包括父节点和具有用于分支的实线的子节点。如果第一层的节点不大于最大允许的二叉树根节点尺寸(maxbtsize),则该节点可以进一步被相应的二叉树分割。可以迭代一个节点的二叉树划分,直到划分得到的节点达到最小允许的二叉树叶节点尺寸(minbtsize)或最大允许的二叉树深度(maxbtdepth)。qtbt结构130的示例将这样的节点表示为具有用于分支的虚线。二叉树叶节点被称为编解码单元(cu),其用于预测(例如,帧内图片或帧间图片预测)和变换,而无需任何进一步的分割。如上文所讨论的,cu也可以被称为“视频块”或“块”。
72.在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,并根据预测和变换被进一步处理,而不是进一步分割。
73.在vvc中,有一个参考图片重采样(rpr)工具在考虑中。此工具允许视频编码器使用图片尺寸不同于当前图片尺寸的(多个)参考图片。在此情况下,可以调用图片重采样过程来提供图片的上采样或下采样版本,以匹配当前图片尺寸,类似于例如如在hevc中实现的空间可扩展性。本公开描述了几种技术,这些技术可以单独使用或者彼此结合使用,以结合rpr工具来增加对vvc中的空间可扩展性的支持。
74.本公开描述了与vps信令有关的技术,该技术例如可以由中间盒(middle box)用来递送流传输视频数据。在该上下文中,中间盒通常指视频路由器、比特流拼接和提取设备,以及其他此类设备。
75.多层视频数据可以包括不同类型的层依赖性,该层依赖性可以从参考图片列表中推导,即可以用于帧间预测p条带和b条带的参考图片的列表。通常视频编码器200和视频解码器300可以维护两个参考图片列表,参考图片列表0和参考图片列表1,它们针对非idr图片的每个条带而生成。然而,当执行子比特流提取时,即当某一层或某些层被提取到分离的比特流中时,参考图片列表不是供中间盒使用的便利机制,因为在不执行实质解码操作的情况下,中间盒不能确定层之间的依赖性。因此,中间盒无法确认跨不同图片的依赖性是一致的。例如,中间盒无法简单地通过检查图层id来丢弃不需要的nal单元。
76.本公开描述了用于指示高级参数集(ps,诸如vps)中的层之间的依赖性的技术。中间盒可以使用这些指示来确定哪些层可以被独立解码,以及哪些层取决于其他层。视频编码器200和视频解码器300可以被配置为根据这些指示来维护参考图片列表,并且不使用其他层进行预测。利用此类技术,中间盒可以简单地通过检查针对那些nal单元的层id来丢弃不需要的nal单元。
77.参考图片结构是用于图片标记的结构,以标识哪些图片将被保留在dpb中,以及哪
些图片可以从dpb中被移除或被调出以释放存储器。参考图片结构可以允许不同于如ps中指示的依赖层的其他层。来自其他层的图片可能需要留在dpb中而不会被调出。
78.例如,假设有三个层,其中层0被独立编解码,并且层1和层2两者都取决于层0(即,层0图片可以被用于层1图片和层2图片的预测)。在该示例中,中间盒或视频解码器可以从比特流中提取层0,从比特流中提取层0和层1,或者从比特流中提取层0和层2。相应地,ps可以指示层0没有层依赖,层1取决于层0,并且层2取决于层0。在层的每个图片中,预测所需的来自所有层的所有参考图片可以被包括在参考图片结构中。例如,层2可以具有层0参考图片和层1参考图片。层1图片对于层2预测来说可以不需要,但是可以被包括在用于确定这些图片是被保留还是从dpb中被调出的标记过程中。然而,针对来自层2的图片的参考图片列表可以不具有层1图片,因为在该示例中层2不取决于层1。
79.本公开描述了用于从解码的图片缓冲器中移除参考图片的“调出过程”。在该上下文中,调出或移除仅仅意味着,参考图片不再可用于参考并且用于存储该参考图片的存储器位置可用来存储其他数据。术语“调出”或“移除”不要求或意指用于从存储器中删除或移除参考图片的任何种类的主动步骤。
80.如前一节所提及,当来自层的图片被解码时,解码的图片可以从dpb中调出其他层的图片。然而,根据本公开的技术,视频编码器200和视频解码器300可以被配置成实现约束,该约束即只有与当前图片相同的层或较高层的图片被调出。当较高层使用较低层进行预测时,图片可以被调出。例如,假设层0是比层1更低的层并且层1是比层2更低的层,视频编码器200和视频解码器300可以被配置为使得层1图片不能从dpb中调出层0的图片,但是层1图片可以调出层2图片。在该示例中,考虑了跨层的依赖性,因为较高层可以独立于较低层被编码。在此示例中,较低层图片不会调出或标记较高层图片。
81.根据本公开的技术,当层具有idr图片时,该层和较高层的所有图片都从dpb中被移除,但是较低层图片可以被保留,因为较低层可能不是idr,并且可能需要继续解码该层中的图片。在没有这种约束的情况下,视频解码器可以从dpb中移除所有图片,使得较低层不能被解码。为了实现这种约束,视频编码器200和视频解码器300可以被配置为确定针对第一层的层标识值和针对第二层的层标识值,其中针对第二层的层标识值高于针对第一层的层标识值,并且将第一层的解码的图片和第二层的解码的图片存储在dpb中。响应于确定idr图片属于第二层,视频编码器200和视频解码器300可以被配置为从dpb中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在dpb中。
82.本公开还描述了对被实现用于访问单元的约束的修改。在多层流中,可以有两种情况,如图3和图4所描绘的。在图3中,不同表示的图片可以具有与例如可扩展高效编解码(shvc)(h.265/hevc)标准中相同的poc值。在图3的示例中,访问单元150的层0图片和层1图片两者都具有poc值poc
n-1
,访问单元152的层0图片和层1图片两者都具有poc值pocn,并且访问单元154的层0图片和层1图片两者都具有poc值poc
n 1
。也就是说,相同访问单元的所有图片具有相同的poc值。此约束不会更改au的定义,但可能会给常见且广泛的单层解码器带来过度的处理负担。
83.可替代地,如图4所示,poc计数可以跨不同层是连续的。在图4中,例如,访问单元160包括具有poc值poc
n-1
的层0图片和具有poc值pocn的层1图片。访问单元162包括具有poc值poc
n 1
的层0图片和具有poc值poc
n 2
的层1图片。在这种情况下,不需要视频解码器来处理
相同poc号的图片,因为所有poc都是唯一的,但是需要改变au的定义来反映分层流。
84.在本公开的一个示例性技术中,au的定义包括层id检查。例如,当图片遇到层id低于前一个图片的层id或与之相同的图片时,新au开始。该定义与vvc草案5中目前定义的au的定义相反,后者仅检查poc值。
85.为了实施该示例,视频编码器200和视频解码器300可以被配置为实现要求层id按递增顺序编号的约束。
86.使用vvc草案5中的术语,au定义可以被改变为如下:
87.令firstvclnalunitinau为vcl nal单元,其是编解码的图片的第一个vcl nal单元,并且为此,所推导的picordercntval不同于前一个编解码的图片的picordercntval并且nuh_layer_id小于或等于前一个编解码的图片的nuh_layer_id。在firstvclnalunitinau之前和在firstvclnalunitinau之前的最后一个vcl nal单元之后的任何以下nal单元中的第一个(如果有)指定新访问单元的开始:
88.–
访问单元定界符nal单元(当存在时),
89.–
dps nal单元(当存在时),
90.–
vps nal单元(当存在时),
91.–
sps nal单元(当存在时),
92.–
pps nal单元(当存在时),
93.–
aps nal单元(当存在时),
94.–
前缀sei nal单元(当存在时),
95.–
nal单元,其中nalunittype等于rsv_nvcl_5、rsv_nvcl_6、rsv_nvcl_21或rsv_nvcl_22(当存在时),
96.–
nal单元,其中nalunittype在unspec28..unspec29的范围内(当存在时)。
97.当在firstvclnalunitinau之前和在firstvclnalunitinau之前的最后一个vcl nal之后没有一个上述nal单元(如果有)时,则如果《《nuh_layer_id小于或等于前一个编解码的图片的nuh_layer_id》》,firstvclnalunitinau开始新的访问单元。
98.上面的“《《”和“》》”符号内的文本是用于au确定的层id检查的示例。au确定特别需要知道哪个图片可以被输出或者被显示,因为笼统来讲,相同au的图片可以被认为具有相同的内容,但是具有不同的表示(分辨率)。
99.为了处理上述类型的au,视频编码器200和视频解码器300可以被配置为响应于确定(1)第二访问单元的vcl nal单元的层标识小于在解码顺序上紧接的前一个图片的层标识,以及(2)第二访问单元的vcl nal单元的poc值不同于在解码顺序上紧接的前一个图片的poc值,确定第二访问单元的vcl nal单元对应于第二访问单元的开始。在第二访问单元的vcl nal单元与紧接的前一个图片的最后一个vcl nal单元之间接收的nal单元是访问单元定界符nal单元。
100.视频解码器300可以被配置为处理非完整au。如图5的示例所示,可能存在并非所有层都存在于访问单元中的编解码情形。在这种情形中,应用au的上述定义可能无法提供图片之间的au划分,因为层1图片具有比层0图片更高的层id。视频解码器可以将此类编解码情形视为上述定义下的一个au,这可能是不期望的,因为那些图片可能不表示相同的内容。
101.为了解决这个潜在的问题,本公开阐述了以下可能的解决方案。视频编码器200可以被配置为在层0图片与层1图片之间插入au定界符,以指示缩进(indented)的au定界符。au定界符指示哪些nal单元属于前一个au,以及哪些nal单元属于下一个au。因此,视频解码器300可以处理au定界符以标识属于相同au的nal单元。
102.视频编码器200可以被配置为以与au中的其他层图片相同的方式继续对poc进行编号,即每个au可以具有针对层数的poc,并且au定义可以包括poc差检查。也就是说,新au的开始可以通过两个图片之间的poc差等于或超过阈值来信令通知,该阈值可以等于层数。换句话说,视频编码器200可以被配置为将poc值分派为num_layers*poc layer_id。
103.视频编码器200可以被配置为给层0和层1中的图片分派不同的时间id。对时间id的检查可以被添加到au定义中。例如,新au在nal单元开始,该nal单元的时间id不同于前一个nal单元的时间id。在上面的示例中,为了具有au定界符,视频编码器200可以为层0中的图片分派时间id 0,并且为层1图片分派时间id 1。视频解码器300然后可以在层1图片检测新au的开始。
104.本公开还描述了与输出图片有关的技术。最初,所有层中的图片可以被标记用于输出。例如,如果中间盒提取了层0,那么中间盒输出层0的所有图片。然而,例如,当比特流中存在多于一个层时,那么层0图片和层1图片可以全部被标记用于输出,但是相同au中的图片可以具有相同的内容,使得只需要从au输出一个图片。根据本公开的技术,中间盒可以被配置为仅输出au中具有最高层id的图片。在另一示例中,标志(flag)可以在任何参数集、条带标头或其他地方被信令通知,以指示输出哪些层,或者是否输出了所有层。在au中输出多于一个图片对于覆盖或多视点目的可以是有用的。
105.图6是图示可以执行本公开的技术的示例性视频编码器200的框图。图6是出于解释的目的而提供的,并且不应被认为是对如本公开广泛例示和描述的技术的限制。出于解释的目的,本公开在视频编解码标准(诸如h.265(hevc)视频编解码标准和正在开发的h.266(vvc)视频编解码标准)的上下文下描述了视频编码器200。然而,本公开的技术不限于这些视频编解码标准,并且通常适用于视频编码和解码。
106.在图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可以包括附加的或替代的处理器或处理电路来执行这些和其他功能。
107.视频数据存储器230可以存储要由视频编码器200的组件编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb 218可以用作参考图片存储器,其存储参考视频数据,用于由视频编码器200对后续视频数据的预测。视频数据存储器230和dpb 218可以由各种存储器设备中的任何一种形成,该存储器设备诸如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其他类型的存储器设备。视频数据存储器230和dpb 218可以由相同存储设备或分离的存储设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他
组件一起在芯片上,如所图示的,或者相对于那些组件在芯片外。
108.在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非具体描述如此,或者限于视频编码器200外部的存储器,除非具体描述如此。相反,对视频数据存储器230的引用应被理解为存储视频编码器200接收用于编码的视频数据(例如,用于要被编码的当前块的视频数据)的参考存储器。图1的存储器106也可以提供来自视频编码器200的各种单元的输出的临时存储。
109.图示了图6的各种单元,以帮助理解由视频编码器200执行的操作。这些单元可以被实施作为固定功能电路、可编程电路或它们的组合。固定功能电路指提供特定功能性的电路,并且被预设在可以被执行的操作上。可编程电路指可以被编程为执行各种任务并且在可以执行的操作中提供灵活功能性的电路。例如,可编程电路可以运行软件或固件,使可编程电路按由软件或固件的指令定义的方式操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
110.视频编码器200可以包括由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储此类指令。
111.视频数据存储器230被配置为存储所接收的视频数据。视频编码器200可以从视频数据存储器230中撷取视频数据的图片,并且向残差生成单元204和模式选择单元202提供视频数据。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
112.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加的功能单元,以根据其他预测模式来执行视频预测。作为示例,模式选择单元202可以包括调色板编解码单元、帧内块复制编解码单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射编解码单元、线性模型(lm)编解码单元等。
113.模式选择单元202通常协调多个编码过程,以测试编码参数的组合以及得到的用于此种组合的率失真值。编码参数可以包括ctu到cu的分割、用于cu的预测模式、用于cu残差数据的变换类型、用于cu残差数据的量化参数等。模式选择单元202可以最终选择具有比其他测试组合更好的率失真值的编码参数的组合。
114.视频编码器200可以将从视频数据存储器230中撷取的图片分割成一系列的ctu,并且将一个或多个ctu封装在条带内。模式选择单元202可以根据树结构(诸如上述hevc的qtbt结构或四叉树结构)来分割图片的ctu。如上所述,视频编码器200可以根据树结构通过分割ctu来形成一个或多个cu。此cu也可以通常被称为“视频块”或“块”。
115.通常,模式选择单元202也控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)来生成用于当前块(例如,当前cu,或者在hevc中,pu和tu的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索来标识一个或多个参考图片(例如,存储在dpb 218中的一个或多个先前编解码的图片)中的一个或多个紧密匹配的参考块。特别地,运动估计单元222可以例如根据绝对差和(sad)、平方差和(ssd)、平
均绝对差(mad)、均方差(msd)等来计算表示潜在参考块对当前块有相似程度的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐样点差来执行这些计算。运动估计单元222可以标识具有从这些计算得到的最低值的参考块,指示最紧密匹配当前块的参考块。
116.运动估计单元222可以形成一个或多个运动向量(mv),该一个或多个mv定义参考图片中的参考块相对于当前图片中的当前块的位置的位置。运动估计单元222然后可以向运动补偿单元224提供运动向量。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224然后可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来撷取参考块的数据。作为另一示例,如果运动向量具有分数采样精度,则运动补偿单元224可以根据一个或多个插值滤波器来插值用于预测块的值。此外,对于双向帧间预测,运动补偿单元224可以撷取由相应运动向量标识的用于两个参考块的数据,并且例如通过逐样点平均或加权平均来组合所撷取的数据。
117.作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以从与当前块相邻的样点中生成预测块。例如,对于方向的模式,帧内预测单元226通常可以数学上地组合相邻样点的值,并在跨越当前块的定义方向上填充这些计算出的值,以产生预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算与当前块相邻的样点的平均值,并生成预测块以包括该得到的用于预测块的每个样点的平均值。
118.模式选择单元202向残差生成单元204提供预测块。残差生成单元204从视频数据存储器230接收当前块的原始的、未编码的版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样点差。得到的逐样点差定义了用于当前块的残差块。在一些示例中,残差生成单元204也可以确定残差块中的样点值之间的差,以使用残差差分脉冲编解码调制(rdpcm)来生成残差块。在一些示例中,残差生成单元204可以使用执行二进制减法的一个或多个减法器电路来形成。
119.在模式选择单元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尺寸的非对称分割。
120.在模式选择单元没有进一步将cu分割成pu的示例中,每个cu可以与亮度编解码块和对应色度编解码块相关联。同上,cu的尺寸可以指cu的亮度编解码块的尺寸。视频编码器200和视频解码器300可以支持2n
×
2n、2n
×
n或n
×
2n的cu尺寸。
121.对于其它视频编解码技术,诸如帧内块复制模式编解码、仿射模式编解码和线性模型(lm)模式编解码,作为少数示例,模式选择单元202经由与编解码技术相关联的相应单元,生成用于正被编码的当前块的预测块。在一些示例中,诸如调色板模式编解码,模式选择单元202可以不生成预测块,而是生成指示以基于所选择的调色板来重构块的方式的语法元素。在此类模式下,模式选择单元202可以向熵编码单元220提供这些语法元素用以被
编码。
122.如上所述,残差生成单元204接收用于当前块和对应的预测块的视频数据。残差生成单元204然后生成用于当前块的残差块。为生成残差块,残差生成单元204计算预测块与当前块之间的逐样点差。
123.变换处理单元206对残差块应用一个或多个变换,以生成变换系数的块(本文中被称为“变换系数块”)。变换处理单元206可以对残差块应用各种变换,以形成变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(dct)、方向变换、karhunen-loeve变换(klt)或概念上类似的变换。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如一次变换和二次变换,诸如旋转变换。在一些示例中,变换处理单元206不对残差块应用变换。
124.量化单元208可以量化变换系数块中的变换系数,以产生量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整应用于与当前块相关联的变换系数块的量化程度。量化可能引入信息的损失,并且因此,量化的变换系数可能具有比由变换处理单元206产生的原始变换系数更低的精度。
125.逆量化单元210和逆变换处理单元212可以对量化的变换系数块分别应用逆量化和逆变换,以从变换系数块中重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块对应的重构块(尽管可能具有一定程度的失真)。例如,重构单元214可以将重构的残差块的样点添加到由模式选择单元202生成的预测块的对应的样点中,以产生重构块。
126.滤波器单元216可以对重构块执行一个或多个滤波操作。例如,滤波器单元216可以执行去块操作来减少沿cu的边缘的块效应伪影。在一些示例中,可以跳过滤波器单元216的操作。
127.视频编码器200将重构块存储在dpb 218中。例如,在执行滤波器单元216的操作的示例中,重构单元214可以将重构块存储至dpb 218。在不执行滤波器单元216的操作的示例中,滤波器单元216可以将滤波的重构块存储至dpb 218。运动估计单元222和运动补偿单元224可以从dpb 218中撷取参考图片,该参考图片由重构的(并且可能滤波的)块形成,以对后续编码的图片的块进行帧间预测。附加地,帧内预测单元226可以使用dpb 218中的当前图片的重构块来对当前图片中的其他块进行帧内预测。
128.通常,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度编解码(cavlc)操作、cabac操作、变量到变量(v2v)长度编解码操作、基于语法的上下文自适应二进制算术编解码(sbac)操作、概率区间分割熵(pipe)编解码操作、指数-golomb编解码操作或另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在旁路模式下操作,在旁路模式下,语法元素没有被熵编码。
129.视频编码器200可以输出比特流,该比特流包括条带或图片的重构块所需的熵编码的语法元素。特别地,熵编码单元220可以输出比特流。
130.上述操作是相对于块来描述的。此描述应当被理解为用于亮度编解码块和/或色度编解码块的操作。如上所述,在一些示例中,亮度编解码块和色度编解码块是cu的亮度分量和色度分量。在一些示例中,亮度编解码块和色度编解码块是pu的亮度分量和色度分量。
131.在一些示例中,对于色度编解码块,不需要重复相对于亮度编解码块执行的操作。作为一个示例,标识用于亮度编解码块的运动向量(mv)和参考图片的操作不需要被重复用于标识用于色度块的mv和参考图片。相反,用于亮度编解码块的mv可以被缩放以确定用于色度块的mv,并且参考图片可以是相同的。作为另一示例,对于亮度编解码块和色度编解码块,帧内预测过程可以是相同的。
132.视频编码器200表示视频编码器的示例,该视频编码器包括存储器和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:获得多层视频数据,该多层视频数据至少包括第一层、第二层和第三层;确定针对第一层的层标识值、针对第二层的层标识值和针对第三层的层标识值,其中针对第三层的层标识值高于针对第二层的层标识值,并且针对第二层的层标识值高于针对第二值的层标识;将第一层的解码的图片、第二层的解码的图片和第三层的解码的图片存储在解码的图片缓冲器中;响应于确定第二层的图片是idr图片,从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中;以及在从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片之后,撷取第一层的解码的图片的副本以预测多层视频数据的当前图片的块。
133.视频编码器200还表示视频编码器的示例,该视频编码器包括存储器和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:获得多层视频数据,该多层视频数据至少包括第一层和第二层;确定针对第一层的层标识值和针对第二层的层标识值,其中,针对第二层的层标识值高于针对第一层的层标识值;将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中;以及响应于确定idr图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。
134.图7是图示可以执行本公开的技术的示例性视频解码器300的框图。图7是出于解释的目的而提供的,并且不限制如本公开广泛例示和描述的技术。出于解释的目的,本公开描述了根据jem、vvc和hevc的技术的视频解码器300。然而,本公开的技术可以由被配置为其他视频编解码标准的视频编解码设备来执行。
135.在图7的示例中,视频解码器300包括编解码的图片缓冲器(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码的图片缓冲器(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和dpb 314中的任何一个或全部可以被实现在一个或多个处理器或处理电路中。此外,视频解码器300可以包括附加的或替代的处理器或处理电路来执行这些和其他功能。
136.预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加的单元,以根据其他预测模式来执行预测。作为示例,预测处理单元304可以包
括调色板编解码单元、帧内块复制编解码单元(其可以形成运动补偿单元316的一部分)、仿射编解码单元、线性模型(lm)编解码单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
137.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的其他组件在芯片上,或者相对于那些组件在芯片外。
138.附加地或可替代地,在一些示例中,视频解码器300可以从存储器120(图1)中撷取编解码的视频数据。也就是说,存储器120可以如上文所讨论的用cpb存储器320存储数据。类似地,存储器120可以当视频解码器300的一些或全部功能性被实现在要由视频解码器300的处理电路执行的软件中时,存储要由视频解码器300执行的指令。
139.图示了图7所示的各种单元,以帮助理解由视频解码器300执行的操作。这些单元可以被实现作为固定功能电路、可编程电路或它们的组合。类似于图6,固定功能电路指提供特定功能性的电路,并且被预设在可以被执行的操作上。可编程电路指可以被编程为执行各种任务并且在可以执行的操作中提供灵活功能性的电路。例如,可编程电路可以执行软件或固件,使可编程电路按由软件或固件的指令定义的方式操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能的或可编程的),并且在一些示例中,一个或多个单元可以是集成电路。
140.视频解码器300可以包括由可编程电路形成的alu、efu、数字电路、模拟电路和/或可编程核心。在视频解码器300的操作由在可编程电路上执行的软件来执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
141.熵解码单元302可以从cpb中接收编码的视频数据,并且对视频数据进行熵解码以重新产生语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码的视频数据。
142.通常,视频解码器300在逐块基础上重构图片。视频解码器300可以对每个块单独地执行重构操作(其中当前正在重构块,即解码的块可以被称为“当前块”)。
143.熵解码单元302可以对定义量化的变换系数块的量化变换系数的语法元素以及变换信息(诸如量化参数(qp)和/或(多个)变换模式指示)进行熵解码。逆量化单元306可以使用与量化的变换系数块相关联的qp来确定量化程度,并且类似地,确定对于逆量化单元306要应用的逆量化程度。逆量化单元306可以例如执行逐位左移操作来对量化的变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。
144.在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应
用一个或多个逆变换,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对系数块应用逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换。
145.此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示从中撷取参考块的dpb 314中的参考图片、以及标识参考图片中的参考块相对于当前图片中的当前块的位置的运动向量。运动补偿单元316通常可以按与相对于运动补偿单元224(图6)描述的方式实质上类似的方式来执行帧间预测过程。
146.作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。再有,帧内预测单元318通常可以以与相对于帧内预测单元226(图6)描述的方式实质上类似的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314中撷取与当前块相邻的样点的数据。
147.重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样点添加到预测块的对应样点中,以重构当前块。
148.滤波器单元312可以对重构块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作来减少沿重构块的边缘的块效应伪影。滤波器单元312的操作不一定在所有示例中执行。
149.视频解码器300可以将重构块存储在dpb 314中。如上所述,dpb 314可以向预测处理单元304提供参考信息,诸如用于帧内预测的当前图片的样点和用于后续运动补偿的先前解码的图片。此外,视频解码器300可以从dpb314中输出解码的图片,用于随后在显示设备上呈现,诸如图1的显示设备118。
150.视频解码器300表示视频解码器的示例,该视频编码器包括存储器和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:接收多层视频数据,该多层视频数据至少包括第一层、第二层和第三层;确定针对第一层的层标识值、针对第二层的层标识值和针对第三层的层标识值,其中,针对第三层的层标识值高于针对第二层的层标识值,并且针对第二层的层标识值高于针对第二值的层标识;将第一层的解码的图片、第二层的解码的图片和第三层的解码的图片存储在解码的图片缓冲器中;响应于确定第二层的图片是idr图片,从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中;以及在从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片之后,撷取第一层的解码的图片的副本以预测多层视频数据的当前图片的块。
151.视频解码器300还表示视频解码器的示例,该视频解码器包括存储器和一个或多个处理器,该一个或多个处理器被实施在电路中并且被配置为:获得多层视频数据,该多层视频数据至少包括第一层和第二层;确定针对第一层的层标识值和针对第二层的层标识值,其中,针对第二层的层标识值高于针对第一层的层标识值;将第一层的解码的图片和第二层的解码的图片存储在解码的图片缓冲器中;以及响应于确定idr图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。
152.视频解码器300还表示视频解码器的示例,该视频解码器包括存储器和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:接收视频数据中的第一图片;确定针对该第一图片的poc值;接收视频数据中的第二图片;确定针对该第二图片的poc值;以及基于针对第一图片的poc值和针对第二图片的poc值来检测新访问单元的开始。为了基于针对第一图片的poc值和针对第二图片的poc值来检测新访问单元的开始,视频解码器300可以例如将针对第一图片的poc值与针对第二图片的poc值进行比较,以及响应于针对第二图片的poc值与针对第一图片的poc值相差超过阈值量,检测新访问单元的开始。第二图片可以属于新访问单元,并且第一图片可以属于前一个访问单元。第一图片可以具有在前一个访问单元中的所有图片中最低poc值。
153.视频解码器300还表示视频解码器的示例,该视频解码器包括存储器和一个或多个处理器,该一个或多个处理器被实现在电路中并且被配置为:接收视频数据中的第一nal单元;确定针对第一nal单元的时间标识(id);接收视频数据中的第二nal单元;确定针对第二nal单元的时间id;以及基于针对第一nal单元的时间id和针对第二nal单元的时间id来检测新访问单元的开始。为了基于针对第一nal单元的时间id和针对第二nal单元的时间id来检测新访问单元的开始,视频解码器300可以将针对第一nal单元的时间id与针对第二nal单元的时间id进行比较,以及响应于针对第一个nal单元的时间id不同于针对第二个nal单元的时间id,检测新访问单元的开始。第二个nal单元可以属于新访问单元,并且第一nal单元可以属于前一个访问单元。
154.图8是图示用于对当前块进行编码的示例性过程的流程图。当前块可以包括当前cu。尽管相对于视频编码器200(图1和图6)进行了描述,但是应当理解的是,其他设备仍然可以被配置为执行与图8的过程类似的过程。
155.在该示例中,视频编码器200最初预测当前块(350)。作为预测当前块的一部分,视频编码器200可以根据本文描述的技术来维护dpb。例如,视频编码器200可以形成用于当前块的预测块。视频编码器200然后可以计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算原始的、未编码的块与用于当前块的预测块之间的差。视频编码器200然后可以对残差块的变换系数进行变换以及量化(354)。接下来,视频编码器200可以扫描残差块的量化的变换系数(356)。在扫描期间或扫描之后,视频编码器200可以对系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac来对系数进行编码。视频编码器200然后可以输出块的熵编解码的数据(360)。
156.图9是图示用于对当前视频数据块进行解码的示例性过程的流程图。当前块可以包括当前cu。尽管相对于视频解码器300(图1和图8)进行了描述,但是应当理解的是,其他设备仍然可以被配置为执行与图9的过程类似的过程。
157.视频解码器300可以接收用于当前块的熵编解码的数据,诸如用于与当前块相对应的残差块的系数的熵编解码的预测信息和熵编解码的数据(370)。视频解码器300可以对熵编解码的数据进行熵解码,以确定用于当前块的预测信息,并且以重新产生残差块的系数(372)。视频解码器300可以例如使用如用于当前块的预测信息所指示的帧内或帧间预测模式来预测当前块(374),以计算用于当前块的预测块。作为预测当前块的一部分,视频编码器200可以根据本文描述的技术来维护dpb。视频解码器300然后可以逆扫描重新产生的系数(376),以创建量化的变换系数的块。视频解码器300然后可以对系数进行逆量化以及
逆变换,以产生残差块(378)。视频解码器300可以通过组合预测块和残差块来最终对当前块进行解码(380)。
158.图10是图示用于维护dpb的示例性过程的流程图。将参考通用视频解码器来对图10的技术进行描述。该通用视频解码器可以例如对应于视频解码器300或者对应于视频编码器200的解码功能。通用视频解码器例如可以是无线通信设备的一部分,该无线通信设备包括被配置为接收多层视频数据的接收器。视频解码器可以是具有接收器的电话手机的一部分,该接收器被配置为根据无线通信标准对包括多层视频数据的信号进行解调。在其他示例中,通用视频解码器可以是相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个的部分。在一些示例中,通用视频解码器可以包括被配置为显示解码的多层视频数据的显示器或者与该显示器通信。
159.视频解码器获得多层视频数据,该多层视频数据至少包括第一层和第二层(400)。视频解码器300可以例如从被存储在cpb存储器320中的编码的比特流中获得多层视频数据。视频编码器200例如可以从滤波器单元216或dpb 218获得多层视频数据作为输出。例如,第一层可以是独立可解码的层,并且第二层可以取决于第一层,这意味着视频解码器300需要访问被包括在第一层中的信息以便对第二层进行解码。
160.视频解码器确定针对第一层的层标识值和针对第二层的层标识值(402)。在该示例中,层标识值是不同的。特别地,针对第二层的层标识值高于针对第一层的层标识值。
161.视频解码器将第一层的解码的图片和第二层的解码的图片存储在dpb中(404)。例如,dpb可以对应于图6的dpb 218或图7的dpb 314。
162.响应于确定idr图片属于第二层,视频解码器从dpb中移除(例如,丢弃或调出)第二层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中(406)。
163.在一个示例中,多层视频数据可以包括第三层,该第三层的层标识值高于针对第二层的层标识值,并且因此高于针对第一层的层标识。视频解码器将第三层的解码的图片存储在解码的图片缓冲器中,并且响应于确定idr图片属于第二层,从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片,同时将第一层的所有解码的图片留在解码的图片缓冲器中。在从解码的图片缓冲器中移除第二层的所有解码的图片和第三层的所有解码的图片之后,视频解码器撷取第一层的解码的图片的副本,以预测多层视频数据的当前图片的块。在撷取解码的第一层的图片的副本之后,视频解码器可以例如使用第一层的解码的图片的副本作为用于执行帧间预测的参考图片。视频解码器可以例如从多层视频数据中提取包括第一层和第三层而没有第二层的可解码的比特流。
164.视频解码器可以附加地被配置为通过接收包括一个或多个层的第一图片的第一访问单元并且接收包括层的一个或多个第二图片的第二访问单元来获得多层视频数据。视频解码器例如可以响应于确定(1)第二访问单元的vcl nal单元的层标识小于在解码顺序上紧接的前一个图片的层标识,以及(2)第二访问单元的vcl nal单元的poc值不同于在解码顺序上紧接的前一个图片的poc值,确定第二访问单元的vcl nal单元对应于第二访问单元的开始。在第二访问单元的vcl nal单元与紧接的前一个图片的最后一个vcl nal单元之间接收的nal单元可以是访问单元定界符nal单元。
165.可以认识到的是,取决于示例,本文描述的技术中的任何一种技术的某些动作或事件可以按不同的顺序来执行,可以被添加、合并或一起省略(例如,并非所有所描述的动
作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器同时执行,而不是顺序地执行。
166.在一个或多个示例中,所描述的功能可以被实现在硬件、软件、固件或其任何组合中。如果被实现在软件中,这些功能可以作为一个或多个指令或代码被存储或发送到计算机可读介质上并且由基于硬件的处理单元执行。计算机可读介质可以包括与诸如数据存储介质的有形介质对应的计算机可读存储介质,或包括例如根据通信协议促进将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性有形计算机可读存储介质,或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器存取以撷取指令、代码和/或数据结构以用于实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
167.举例来说而非限制,此计算机可读存储介质可以包括以下中的任何一个或多个:ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储或其他磁存储设备、闪速存储器,或者任何其他介质,这些介质可以用来存储以指令或数据结构的形式且可由计算机访问的期望的程序代码。此外,任何连接都被恰当地称作计算机可读介质。例如,如果指令是使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或无线技术(诸如红外线、无线电以及微波)从网站、服务器或其他远程源发送的,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外线、无线电以及微波)都被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时性介质,而是指向非暂时性有形存储介质。如本文所用,盘和碟包括压缩碟(cd)、激光碟、光碟、数字多功能碟(dvd)、软盘和蓝光碟,其中盘通常磁性地再现数据,而碟用激光光学地再现数据。上述的组合也应被包括在计算机可读介质的范围内。
168.指令可以由一个或多个处理器运行,诸如一个或多个dsp、通用微处理器、asic、fpga或其他等效的集成或离散逻辑电路。相应地,如本文所使用的术语“处理器”和“处理电路”可以指前述结构的任何一种或适合于实施本文描述的技术的任何其他结构。另外,在一些方面中,本文描述的功能性可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或者被结合在组合编解码器中。此外,这些技术可以完全被实现在一个或多个电路或逻辑元件中。
169.本公开的技术可以被实现在很多种设备或装置中,包括无线手机、集成电路(ic)或ic的集合(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的各功能方面,但是不一定要求通过不同的硬件单元来实现。相反,如上所述,各种单元可以结合合适的软件和/或固件被组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的收集来提供。
170.已经对各种示例进行了描述。这些和其他示例都在以下权利要求的范围内。
再多了解一些

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

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

相关文献