语法控制的已解码图片缓冲器管理的方法与流程

专利2022-05-10  33


语法控制的已解码图片缓冲器管理的方法
1.相关申请的交叉引用
2.本技术要求于2018年12月26日在美国专利商标局提交的美国临时专利申请第62/785,067号和于2019年12月11日在美国专利商标局提交的美国专利申请第16/710,915号的优先权,这两个申请的公开内容通过引用以其整体并入本文中。
技术领域
3.所公开的主题涉及视频编码和解码,并且更具体地,涉及在已解码图片缓冲器中包括一个或更多个语法元素,一个或更多个语法元素标识未使用的参考图片或将来使用的参考图片。


背景技术:

4.使用的视频编码和解码可以使用带有运动补偿的帧间图片预测。未压缩的数字视频可以包括一系列图片,每个图片的空间尺寸为例如1920x 1080亮度样本和相关联的色度样本。该系列图片可以具有固定的或可变的图片速率,其可以被称为帧速率,例如每秒60幅图片或60hz。未压缩的视频具有很高的比特率要求。例如,每样本8比特下的1080p60 4:2:0视频(60hz帧速率下的1920x1080亮度样本分辨率)需要接近1.5千兆比特/秒的带宽。一小时的此类视频需要超过600千兆字节的存储空间。
5.视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。在一些情况下,压缩可以帮助将前述带宽或存储空间要求减少两个数量级或更多。可以采用无损压缩和有损压缩二者以及它们的组合。无损压缩是指可以根据压缩后的原始信号重构原始信号的精确副本的技术。当使用有损压缩时,重构的信号可能与原始信号不相同,但是原始信号与重构的信号之间的失真很小,足以使重构的信号对于预期的应用有用。在视频的情况下,有损压缩被广泛采用。可容忍的失真量取决于应用;例如,某些消费者流媒体应用的用户可能比电视贡献应用的用户容忍更高的失真。可达到的压缩率可以反映出:更高的可允许/可容忍的失真可以产生更高的压缩率。
6.视频编码器和解码器可以利用来自几种广泛类别的技术,包括例如运动补偿、变换、量化和熵编码,其中的一些将在下面讨论。
7.可以将已编码视频比特流划分为分组以通过分组网络进行传输。早期,大多数视频编码标准和技术已针对面向比特的传输及经定义的比特流进行了优化。分组发生在例如以实时传输协议(rtp

)有效载荷格式指定的系统层接口中。随着适于在因特网上大量使用视频的因特网连接的出现,视频编码标准通过视频编码层(vcl)和网络提取层(nal)的概念区别反映了该突出的使用情况。nal单元是2003年在h.264中引入的,并且由于此后仅作了一些修改就保留在某些视频编码标准和技术中。
8.在许多情况下,nal单元可以看作是解码器可以在其上作用的最小实体,而不必对已编码视频序列的所有先前nal单元进行解码。就此而言,nal单元通过诸如选择性转发单元(sfu)或多点控制单元(mcu)的媒体感知网络元素(mane)使某些错误恢复技术以及某些
比特流操纵技术能够包括比特流修剪。
9.在h.264和h.265的nal单元报头中,forbidden_zero_bit是用于在某些系统层环境中防止启动代码仿真的零比特。nal_unit_type语法元素是指nal单元携带的数据的类型,其可以是例如某些切片类型、参数集类型、补充增强信息(sei

)消息等中的一种。h.265nal单元报头还包括nuh_layer_id和nuh_temporal_id_plus 1,这两个指示nal单元所属的已编码图片的空间/snr和时间层。
10.可以观察到,nal单元报头仅包括可容易解析的固定长度的码字,其对比特流中的其他数据诸如例如其他nal单元报头、参数集等不具有任何解析依赖性。当nal单元报头是在nal单元中的第一八位字节时,mane可以容易地对它们进行提取,对它们进行解析,并对它们进行作用。相比之下,其他高级语法元素例如切片或图块报头是mane不太容易接触到的,因为它们可能需要保存参数集上下文和/或处理可变长度或算术编码的代码点。
11.还可以观察到,nal单元报头可以不包括可以将nal单元与包括多个nal单元的已编码图片相关联的信息,该已编码图片诸如例如包括多个图块或切片,所述多个图块或切片中的至少一些被分组在单独的nal单元中。
12.某些传输技术可以包括通常以定时信息的形式的某些信息,传输技术诸如rtp(rfc 3550)、mpeg系统标准、iso文件格式等,例如呈现时间(在mpeg和iso文件格式的情况下)或捕获时间(在rtp的情况下),mane可以容易访问这些信息,并且这些信息可以帮助将其各自的传输单元与已编码图片相关联。然而,这些信息的语义会从一种传输或存储技术到另一种传输或存储技术而不同,并且可能与视频编码中使用的图片结构没有直接关系。因此,这些信息可能至多是启发式,并且也可能不是特别适合于标识nal单元流中的nal单元是否属于同一已编码图片。


技术实现要素:

13.在实施方式中,一种管理已解码图片缓冲器的方法,已解码图片缓冲器用于视频解码,该方法使用至少一个处理器执行,包括:对至少一个语法元素进行解码,该至少一个语法元素与已解码图片缓冲器中存储的参考图片有关;以及使用参考图片来重构当前图片,其中,至少一个语法元素指示参考图片是可用于将来参考或不可用于将来参考中的至少一种。
14.在实施方式中,一种用于管理已解码图片缓冲器的设备,该已解码图片缓冲器用于视频解码,包括:至少一个存储器,其被配置成存储程序代码;以及至少一个处理器,其被配置成读取程序代码并按照程序代码指示的进行操作,程序代码包括:解码代码,其被配置成使至少一个处理器对至少一个语法元素进行解码,至少一个语法元素与已解码图片缓冲器中存储的参考图片有关;以及重构代码,其被配置成使至少一个处理器使用参考图片来重构当前图片,其中,至少一个语法元素指示参考图片是可用于将来参考或不可用于将来参考中的至少一种。
15.在实施方式中,一种存储指令的非暂态计算机可读介质,所述指令包括:一个或更多个指令,所述一个或更多个指令在由设备的一个或更多个处理器执行时,使至少一个处理器进行以下操作,该设备使用至少一个处理器来管理用于视频解码的已解码图片缓冲器:对至少一个语法元素进行解码,至少一个语法元素与已解码图片缓冲器中存储的参考
图片有关;以及使用参考图片来重构当前图片,其中,至少一个语法元素指示参考图片是可用于将来参考或不可用于将来参考中的至少一种。
附图说明
16.通过下面的详细描述和附图,所公开的主题的其他特征、性质和各种优点将更加明显,在附图中:
17.图1是根据实施方式的通信系统的简化框图的示意图示。
18.图2是根据实施方式的通信系统的简化框图的示意图示。
19.图3是根据实施方式的解码器的简化框图的示意图示。
20.图4是根据实施方式的编码器的简化框图的示意图示。
21.图5是根据实施方式的指示语法元素的集合的存在的语法元素的示意图示,该语法元素的集合指示未使用的参考图片。
22.图6是根据实施方式的指示未使用的参考图片的语法元素的集合的示意图示。
23.图7是根据实施方式的指示语法元素的集合的存在的语法元素的示意图示,该语法元素的集合指示将来使用的参考图片。
24.图8是根据实施方式的指示将来使用的参考图片的语法元素的集合的示意图示。
25.图9是根据实施方式的用于语法控制的已解码图片缓冲器管理的示例过程的流程图。
26.图10是根据实施方式的计算机系统的示意图示。
27.待解决的问题
28.视频编码语法可能缺少易于识别或可解析的语法元素,该语法元素标识未使用的参考图片和将来使用的参考图片。
具体实施方式
29.图1示出了根据本公开内容的实施方式的通信系统(100)的简化框图。通信系统(100)可以包括经由网络(150)互连的至少两个终端(110至120)。为了数据的单向传输,第一终端(110)可以对本地位置的视频数据进行编码,以经由网络(150)传输至另一终端(120)。第二终端(120)可以从网络(150)接收另一终端的已编码视频数据,对已编码数据进行解码并显示恢复的视频数据。单向数据传输在媒体服务应用等中可能是常见的。
30.图1示出了被提供以支持已编码视频的双向传输的第二对终端(130,140),该双向传输可以例如在视频会议期间发生。对于数据的双向传输,每个终端(130,140)可以对在本地位置捕获的视频数据进行编码,以经由网络(150)传输至另一终端。每个终端(130,140)还可以接收由另一终端发送的已编码视频数据,可以对已编码数据进行解码并且可以在本地显示设备上显示恢复的视频数据。
31.在图1中,终端(110至140)可以被示为服务器、个人计算机和智能电话,但是本公开内容的原理不限于此。本公开内容的实施方式找到了与膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备一起的应用。网络(150)表示在终端(110至140)之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络(150)可以在电路交换和/或分组交换信道中交换数据。代表性网络包括电信网络、局域网、广域网和/
或因特网。出于本讨论的目的,除非本文在下面说明,否则网络(150)的架构和拓扑对于本公开内容的操作可能是不重要的。
32.作为用于所公开的主题的应用的示例,图2示出了视频编码器和解码器在流式传输环境例如流式传输系统200中的放置。所公开的主题可以同等地适用于其他启用视频的应用,其包括例如视频会议;数字电视;压缩视频在包括cd、dvd、记忆棒等的数字介质上的存储等。
33.流式传输系统可以包括捕获子系统(213),该捕获子系统可以包括视频源(201),例如数字相机,从而创建例如未压缩的视频样本流(202)。与已编码视频比特流相比,该样本流(202)被描绘为强调高数据量的粗线,该样本流(202)可以由耦合至相机(201)的编码器(203)来处理。编码器(203)可以包括硬件、软件或其组合,以使得实现或实现所公开主题的各方面,如下面更详细地描述的。与样本流相比,已编码视频比特流(204)被描绘为强调较低数据量的细线,已编码视频比特流(204)可以被存储在流式传输服务器(205)上以供将来使用。一个或更多个流式传输客户端(206,208)可以访问流式服务器(205)以检索已编码视频比特流(204)的副本(207,209)。客户端(206)可以包括视频解码器(210),该视频解码器对已编码视频比特流的传入副本(207)进行解码并且创建可以在显示器(212)或其他呈现设备(未描绘)上呈现的输出视频样本流(211)。在一些流式传输系统中,可以根据某些视频编码/压缩标准来对视频比特流(204,207,209)进行编码。这些标准的示例包括itu

t h.265建议书。正在开发的视频编码标准被非正式地称为通用视频编码(vvc)。所公开的主题可以在vvc的背景下使用。
34.图3可以是根据本发明的实施方式的视频解码器(210)的功能框图。
35.接收器(310)可以接收要由解码器(210)解码的一个或更多个编解码器视频序列;在相同实施方式或另一实施方式中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。可以从信道(312)接收已编码视频序列,该信道可以是到存储已编码视频数据的存储设备的硬件/软件链路。接收器(310)可以在接收其他数据时接收已编码视频数据,其他数据例如已编码音频数据和/或辅助数据流,所述其他数据可以被转发至它们各自的使用实体(未描绘)。接收器(310)可以将已编码视频序列与其他数据分开。为了对抗网络抖动,可以在接收器(310)与熵解码器/解析器(320)(此后称为“解析器”)之间耦接缓冲器存储器(315)。当接收器(310)正在从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,可以不需要缓冲器(315)或者缓冲器(315)可以很小。为了尽可能地使用诸如因特网的分组网络,可能需要缓冲器(315),该缓冲器可以相对较大并且可以有利地具有自适应大小。
36.视频解码器(210)可以包括解析器(320),该解析器根据经熵编码的视频序列来重构符号(321)。这些符号的类别包括用于管理解码器(210)的操作的信息以及潜在地用于控制诸如显示器(212)的呈现设备的信息,该呈现设备不是解码器的组成部分而是可以与其耦合,如图3中所示。用于呈现设备的控制信息可以是补充增强信息(sei消息)或视频可用性信息(vui)参数集片段(未描绘)的形式。解析器(320)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循本领域技术人员公知的原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等等。解析器(320)可以基于与组相对应的至少一个参数,从已编码视频序列中提取
针对视频解码器中的像素子组中的至少一个子组的子组参数集。子组可以包括图片组(gop)、图片、图块、切片、宏块、编码单元(cu)、块、变换单元(tu)、预测单元(pu)等。熵解码器/解析器还可以从已编码视频序列中提取诸如变换系数、量化器参数(qp)值、运动矢量等的信息。
37.解析器(320)可以对从缓冲器(315)接收的视频序列执行熵解码/解析操作,从而创建符号(321)。解析器(320)可以接收已编码数据,并且选择性地对特定符号(321)进行解码。此外,解析器(320)可以确定特定符号(321)是否将被提供给运动补偿预测单元(353)、缩放器/逆变换单元(351)、帧内预测单元(352)或环路滤波器(356)。
38.符号(321)的重构可以根据已编码视频图片或其部分的类型(例如:帧间和帧内图片、帧间和帧内块)以及其他因素而涉及多个不同的单元。可以由解析器(320)从已编码视频序列解析的子组控制信息来控制涉及哪些单元以及如何控制。为了清晰起见,未描绘这种子组控制信息在解析器(320)与下面的多个单元之间的流动。
39.除了已经提到的功能块,解码器(210)可以在概念上细分为如下所述的多个功能单元。在商业限制下的实际实现操作中,这些单元中的许多单元彼此紧密地相互作用并且可以至少部分地彼此集成。然而,出于描述所公开的主题的目的,概念上细分成以下功能单元是适当的。
40.第一单元是缩放器/逆变换单元(351)。缩放器/逆变换单元(351)从解析器(320)接收作为符号(321)的量化变换系数以及控制信息,包括要使用哪个变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(351)可以输出包括样本值的块,所述样本值可以输入到聚合器(355)中。
41.在一些情况下,缩放器/逆变换(351)的输出样本可以属于帧内编码的块;即:这个块不使用来自先前重构的图片的预测性信息,但是可以使用来自当前图片的先前重构的部分的预测性信息。这样的预测性信息可以由帧内图片预测单元(352)提供。在一些情况下,帧内图片预测单元(352)使用从当前(部分重构)图片(358)获取的周围已经重构的信息来生成与正在重构的块相同大小和形状的块。在一些情况下,聚合器(355)基于每个样本将帧内预测单元(352)已经生成的预测信息添加至如由缩放器/逆变换单元(351)提供的输出样本信息。
42.在其他情况下,缩放器/逆变换单元(351)的输出样本可以属于经帧间编码的且可能是运动补偿的块。在这种情况下,运动补偿预测单元(353)可以访问参考图片存储器(357)以获取用于预测的样本。在根据属于块的符号(321)对获取的样本进行运动补偿之后,这些样本可以由聚合器(355)添加至缩放器/逆变换单元的输出(在这种情况下,称为残差样本或残差信号),以生成输出样本信息。可以通过运动矢量来控制运动补偿单元获取预测样本的参考图片存储器形式内的地址,所述运动矢量以符号(321)的形式可用于运动补偿单元,所述符号可以具有例如x、y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时如从参考图片存储器中获取的样本值的内插、运动矢量预测机制等。
43.聚合器(355)的输出样本可以经受环路滤波器单元(356)中的各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,所述环路内滤波器技术由已编码视频比特流中包括的且使得作为来自解析器(320)的符号(321)可用于环路滤波器单元(356)的参数来控制,但是也可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解
码期间获得的元信息,以及响应于经先前重构和环路滤波的样本值。
44.环路滤波器单元(356)的输出可以是样本流,其可以被输出至呈现设备(212)以及被存储在参考图片存储器(358)中以用于将来的帧间图片预测。
45.某些已编码图片一旦完全重构,就可以用作参考图片以供将来预测。一旦已编码图片被完全重构并且已编码图片已被标识为参考图片(例如,通过解析器(320)),当前参考图片(358)就可以成为参考图片缓冲器(357)的一部分,并且可以在开始重构随后已编码图片之前重新分配新的当前图片存储器。
46.视频解码器(210)可以根据可以记录在诸如itu

t h.265建议书的标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法的意义上,如在视频压缩技术文档或标准中且明确地在其中的配置文件文档中指定的,已编码视频序列可以符合由正使用的视频压缩技术或标准指定的语法。对于合规性,还要求的可以是已编码视频序列的复杂度在视频压缩技术或标准的层级限定的范围内。在一些情况下,层级会限制最大图片大小、最大帧速率、最大重构样本率(以例如每秒兆样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设置的限制可以通过假想参考解码器(hypothetical reference decoder,hrd)规范以及在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限制。
47.在实施方式中,接收器(310)可以在接收已编码视频时接收附加(冗余)数据。附加数据可以被包括为已编码视频序列的一部分。视频解码器(210)可以使用附加数据来适当地对数据进行解码以及/或者更准确地对原始视频数据进行重构。附加数据可以是例如时间、空间或信噪比(snr)增强层、冗余切片、冗余图片、前向纠错码等的形式。
48.图4可以是根据本公开内容的实施方式的视频编码器(203)的功能框图。
49.编码器(203)可以从视频源(201)(不是编码器的一部分)接收视频样本,该视频源可以捕获将由编码器(203)编码的视频图像。
50.视频源(201)可以提供要由编码器(203)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如:8位、10位、12位、...)、任何色彩空间(例如,bt.601 y crcb、rgb、...)和任何合适的采样结构(例如,y crcb 4:2:0、y crcb 4:4:4)。在媒体服务系统中,视频源(201)可以是存储先前准备的视频的存储设备。在视频会议系统中,视频源(203)可以是捕获本地图像信息作为视频序列的相机。视频数据可以被提供为在顺序观看时赋予运动的多个单独图片。图片本身可以被组织为像素的空间阵列,其中,根据使用中的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易地理解像素与样本之间的关系。下面的描述集中于样本。
51.根据实施方式,编码器(203)可以实时地或在应用所要求的任何其他时间约束下对源视频序列的图片进行编码并将其压缩为已编码视频序列(443)。施行适当的编码速度是控制器(450)的一个功能。控制器控制如下所述的其他功能单元并且在功能上耦合至这些单元。为了清楚起见,未描绘该耦合。控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值...)、图片大小、图片组(gop)布局、最大运动矢量搜索范围等。本领域技术人员可以容易地标识控制器(450)的其他功能,因为它们可能属于针对特定系统设计而优化的视频编码器(203)。
52.一些视频编码器以本领域技术人员容易理解为“编码环路”的方式进行操作。作为
简化的描述,编码环路可以由以下项组成:编码器(430)(此后称为“源编码器”)的编码部分(负责基于要编码的输入图片和参考图片来创建符号);以及(本地)解码器(433),其嵌入在编码器(203)中,重构符号以创建(远程)解码器也会创建的样本数据(因为在所公开的主题中考虑的视频压缩技术中,符号与已编码视频比特流之间的任何压缩都是无损的)。该重构的样本流被输入至参考图片存储器(434)。当符号流的解码导致独立于解码器位置(本地或远程)的位精确结果时,参考图片缓冲器内容在本地编码器与远程编码器之间也是位精确的。换言之,编码器的预测部分将与解码器在解码期间使用预测时将“看到”的完全相同的样本值“视为”参考图片样本。这种参考图片同步性的基本原理(以及如果例如由于信道错误而不能保持同步性,则导致漂移)是本领域技术人员公知的。
[0053]“本地”解码器(433)的操作可以与“远程”解码器(210)的操作相同,上面已经结合图3对“远程”解码器进行了详细描述。然而,另外简要地参照图4,当符号可用并且由熵编码器(445)和解析器(320)进行的符号与已编码视频序列之间的编码/解码可以是无损的时,包括信道(312)、接收器(310)、缓冲器(315)和解析器(320)的解码器(210)的熵解码部分可能没有完全在本地解码器(433)中实现。
[0054]
此时可以观察到的是,除了存在于解码器中的解析/熵解码之外的任何解码器技术也都必须以基本上相同的功能形式存在于相应的编码器中。编码器技术的描述可以简略,因为它们与全面描述的解码器技术互逆。仅在某些区域中需要并在下面提供更详细的描述。
[0055]
作为其操作的一部分,源编码器(430)可以执行运动补偿的预测性编码,其参考来自视频序列的被指定为“参考帧”的一个或更多个先前编码的帧来对输入帧进行预测性地编码。以这种方式,编码引擎(432)对输入帧的像素块与参考帧的像素块之间的差异进行编码,该参考帧可以被选择为对输入帧的预测参考。
[0056]
本地视频解码器(433)可以基于由源编码器(430)创建的符号来对可以被指定为参考帧的帧的已编码视频数据进行解码。编码引擎(432)的操作可以有利地是有损过程。当可以在视频解码器(图4中未示出)处对已编码视频数据进行解码时,重构的视频序列通常可以是源视频序列的副本,其中存在一些错误。本地视频解码器(433)复制可以由视频解码器在参考帧上执行的解码过程,并且可以使重构的参考帧被存储在参考图片高速缓存(434)中。以这种方式,编码器(203)可以在本地存储重构的参考帧的具有共同内容的副本作为将由远端视频解码器获得的重构的参考帧(不存在传输错误)。
[0057]
预测器(435)可以对编码引擎(432)执行预测搜索。也就是说,对于要被编码的新帧,预测器(435)可以在参考图片存储器(434)中搜索样本数据(作为候选参考像素块)或某些元数据,诸如参考图片运动矢量、块形状等,这些数据可以用作新图片的合适预测参考。预测器(435)可以基于样本块逐像素块进行操作以找到合适的预测参考。在一些情况下,如由预测器(435)获得的搜索结果所确定的,输入图片可以具有从存储在参考图片存储器(434)中的多个参考图片中得出的预测参考。
[0058]
控制器(450)可以管理视频编码器(430)的编码操作,包括例如用于对视频数据进行编码的参数和子组参数的设置。
[0059]
所有前述功能单元的输出可以在熵编码器(445)中经受熵编码。熵编码器通过根据本领域技术人员已知的技术,对符号进行无损压缩来将由各种功能单元生成的符号转换
为已编码视频序列,该已知的技术例如霍夫曼编码、可变长度编码、算术编码等。
[0060]
传输器(440)可以缓冲由熵编码器(445)创建的已编码视频序列,以便为经由通信信道(460)进行传输做准备,该通信信道可以是到将存储已编码视频数据的存储设备的硬件/软件链路。传输器(440)可以将来自视频编码器(430)的已编码视频数据与要传输的其他数据例如已编码音频数据和/或辅助数据流(未示出的源)合并。
[0061]
控制器(450)可以管理编码器(203)的操作。在编码期间,控制器(450)可以向每个已编码图片分配某种已编码图片类型,这可能影响可以应用于相应图片的编码技术。例如,图片经常可能被分配为以下帧类型之一:
[0062]
帧内图片(i图片)可以是在不使用序列中的任何其他帧作为预测源的情况下可以被编码和解码的图片。一些视频编解码器允许不同类型的帧内图片,包括例如独立解码器刷新图片。本领域技术人员知道i图片的那些变型以及它们各自的应用和特征。
[0063]
预测性图片(p图片)可以是可以使用帧内预测或帧间预测来进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0064]
双向预测性图片(b图片)可以是可以使用帧内预测或帧间预测来进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多预测性图片可以使用超过两个的参考图片和相关联的元数据来重构单个块。
[0065]
通常,源图片可以在空间上细分为多个样本块(例如,各自4x4、8x8、4x8或16x16样本的块)并逐块被编码。可以参考如由应用于块的相应图片的编码分配确定的其他(已经编码的)块来对块进行预测性地编码。例如,可以对i图片的块进行非预测性地编码,或者可以参考相同图片的已经编码的块对它们进行预测性地编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片、经由空间预测或经由时间预测对p图片的像素块进行非预测性地编码。可以参考一个或两个先前编码的参考图片、经由空间预测或经由时间预测对b图片的块进行非预测性地编码。
[0066]
视频编码器(203)可以根据预定视频编码技术或标准例如itu

t h.265建议书执行编码操作。在其操作中,视频编码器(203)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,已编码视频数据可以符合由正使用的视频编码技术或标准指定的语法。
[0067]
在实施方式中,传输器(440)可以在传输已编码视频时传输附加数据。视频编码器(430)可以包括这样的数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/snr增强层、其他形式的冗余数据例如冗余图片和切片、补充增强信息(sei)消息、视觉可用性信息(vui)参数集片段等。
[0068]
在实施方式中,先前图片中的参考图片样本可以用于对当前图片中的单元进行编码,以进行帧间预测。当图片被解码时,已解码图片可以被存储到已解码图片缓冲器(dpb)。可以将dpb中先前存储的图片用作参考图片,以对当前图片或后续图片进行解码。在大多数情况下,dpb中的已解码图片在它们已被输出后会被移除,该输出也可以被称为撞出(bump out),并且对于对后续图片进行解码而言不再需要。
[0069]
在实施方式中,参考图片集(rps)定义哪些已解码图片存储在dpb中以及哪些已解码图片可以用于对当前图片或后续图片进行解码。通过对rps语法元素进行解析和解释,可以构造要用于对当前图片进行解码的一个或更多个参考图片列表。可以从rps语法元素中
明确确定存储在dpb中的已解码图片。然而,在一些相关技术中,用于实现当前参考图片列表的rps语法元素的解码过程可能招致显著的实现复杂性。
[0070]
在实施方式中,可以在高级语法结构中直接用信号表示要用于对当前图片进行解码的参考图片列表,其可以包括例如图片报头、切片报头、图块报头、图块组报头、gop报头等。用于直接用信号表示参考图片列表的语法元素的解码过程会是有效的。然而,在这种情况下,可能无法从那些语法元素中明确确定要存储在dpb中的已解码图片。
[0071]
在实施方式中,可以在对当前图片进行解码之前,但是在对某些高级语法结构进行解析之后,从已解码图片缓冲器(dpb)中移除未用于解码且已经被撞出的图片,包括例如(第一个出现的)图片/切片/图块/图块组报头或与当前图片或其部分有关的其他瞬态报头。
[0072]
以下描述的是根据实施方式的用于撞出和移除已解码图片的示例技术,该已解码图片未被用作当前图片和后续图片的参考。已解码图片缓冲器可以包含图片存储缓冲器。图片存储缓冲器中的每一个可以包含已解码图片,该已解码图片可以用于参考以及/或者可以被保存以用于将来的输出。在例如图片报头、切片报头、图块报头、图块组报头(此后称为切片报头)中用信号表示的语法元素可以明确地指示哪些已解码图片从dpb撞出以及哪些已解码图片从已解码图片缓冲器中移除。通过那些语法元素,可以管理已解码图片从已解码图片缓冲器的输出和移除。可以消除图片移除定时的不确定性和已解码图片移除的不必要延迟。
[0073]
在实施方式中,可以直接用信号表示参考图片列表,而不是用信号表示在例如itu

t h.265中指定的参考图片集。直接地指示参考图片列表的某些语法元素可能无法标识要从dpb中移除的已解码图片,因为一些已解码图片可能不会用于对当前图片进行解码,而是可能用于对后续图片进行解码。下面描述的是用于在对当前图片进行解码之前或之后明确地用信号表示可能需要从dpb中移除的已解码图片的示例机制。
[0074]
参照图5,在实施方式中,在序列参数集(sps)(501)或在任何其他合适的高级语法结构(此后的sps)中用信号表示语法元素unused_ref_pic_signaling_enabled_flag(502),其标识是否使用明确指示移除图片的机制。当使用该机制时,在例如切片报头或任何其他期望的语法结构中可以存在一个或更多个语法元素,所述一个或更多个语法元素指示在对当前图片进行解码之前(或之后)移除了哪些已解码图片。由以上语法元素指示的已解码图片可以在对当前图片进行解码之前或之后立即从dpb中移除。
[0075]
参照图5和图6,如上所述,在实施方式中,以下语法元素可以存在于任何参数集(501)例如dps、vps、sps或pps以及报头(601)例如切片报头、图块报头、图块组报头中:等于0的unused_ref_pic_signaling_enabled_flag(502)可以指定num_unused_ref_pic(602)、delta_poc_unused_ref_pic[i](603)和sign_unused_ref_pic[i](604)不存在于切片报头(或图块/图块组报头)中,并且已解码图片从dpb的移除定时反而可以被隐式地确定。等于1的unused_ref_pic_signaling_enabled_flag(502)可以指定num_unused_ref_pic(602)、delta_poc_unused_ref_pic[i](603)和sign_unused_ref_pic[i](604)存在于报头(601)中,并且已解码图片从dpb的移除定时可以通过对delta_poc_unused_ref_pic[i](603)和sign_unused_ref_pic[i](604)进行解析和解释来明确地确定。num_unused_ref_pic(602)可以指定未使用的参考图片条目的数目。delta_poc_unused_ref_pic[i](603)可以指定被
第i条目所提及的未使用的已解码图片与当前图片的图片顺序计数值之间的绝对差。delta_poc_unused_ref_pic[i](603)的值可以在包括0至215

1在内的范围内。等于1的unused_ref_pic_sign_flag[i](604)可以指定第i条目的图片顺序计数值大于当前图片的图片顺序计数的值。等于0的unused_ref_pic_sign_flag[i](604)可以指定第i条目的图片顺序计数值小于当前图片的图片顺序计数的值。
[0076]
在实施方式中,由以上语法元素或类似语法元素指示的已解码图片可以例如在已解码图片已经作为输出图片(例如,被裁剪并显示的)被撞出的条件下从dpb中移除。如果其尚未被撞出,则可以在一定时间撞出之后将其移除。
[0077]
在实施方式中,由以上语法元素或类似语法元素指示的已解码图片可以立即被撞出并从dpb中移除。
[0078]
在实施方式中,将来要被撞出并显示的已解码图片可以被标记为“对于输出而言需要”,而已经被撞出但存储在dpb中的图片可以被标记为“对于输出而言不需要”。标记为“对于输出而言需要”的已解码图片可能会在图片被显示之前的某个时间被撞出。在撞出之后,已解码图片可以立即被标记为“对于输出而言不需要”。
[0079]
在实施方式中,在已解码图片被标记为“对于输出而言不需要”的情况下,由以上语法元素或类似语法元素指示的已解码图片可以从dpb中移除,而不会发生撞出。
[0080]
在实施方式中,由以上语法元素或类似语法元素标识的已解码图片可以被标记为“不用于参考”。一旦已解码图片被标记为“不用于参考”,其可能就不再再次被标记为“用于参考”。
[0081]
在实施方式中,如果已解码图片被标记为“不用于参考”和“对于输出而言不需要”,则可以立即移除该图片,而可以将被标记为“用于参考”或“对于输出而言需要”的已解码图片存储在dpb中。
[0082]
在本文中描述的技术中,在实施方式中,撞出过程可以包括以下有序步骤:
[0083]
1.首先用于输出的图片可以被选择为所有图片中具有picordercntval的最小值的图片,该所有图片为dpb中被标记为“对于输出而言需要”的图片。
[0084]
2.可以使用一致性裁剪窗口来裁剪图片,该一致性裁剪窗口可以是在例如图片的有效sps中指定的,裁剪的图片可以被输出,并且图片可以被标记为“对于输出而言不需要”。
[0085]
3.当包括被裁剪和/或输出的图片的图片存储缓冲器包含被标记为“不用于参考”的图片时,图片存储缓冲器可能会被清空。
[0086]
在实施方式中,在报头(601)中用信号表示的语法元素可以明确地指示哪些已解码图片可以包含在当前dpb中。具体地,语法元素可以指示哪些已解码图片没有被包括在当前图片的参考图片列表中,但是可能需要被存储在dpb中以供后续图片参考。通过这些语法元素,系统、播放器或解码器可以标识哪些图片被存储在dpb中。
[0087]
在实施方式中,可以直接用信号表示参考图片列表,而不是用信号表示例如在h.265中指定的参考图片集。在这种情况下,直接地指示参考图片列表的语法元素可能不能确定地标识哪些已解码图片可以用于后续图片并需要存储在dpb中,因为一些已解码图片可能不用于对当前图片进行解码,而是可以用于对后续图片进行解码。以下实施方式描述了如何明确地用信号表示已解码图片,该已解码图片不用于对当前图片进行解码,而是用
于对后续图片进行解码,并因此可能需要存储在dpb中。
[0088]
现在参照图7和图8,在实施方式中,在sps(701)或在任何其他合适的高级语法结构中用信号表示语法元素(例如,future_used_ref_signaling_enabled_flag(702))。例如,当语法元素被设置为1时,语法元素可以指示其他语法元素可以存在于图片/切片/图块/图块组报头或与已编码图片或其部分(此后为切片报头)有关的其他瞬态语法结构中,所述其他语法元素指示在对当前图片进行解码之前或之后哪些已解码图片被移除。由以上语法元素指示的已解码图片可以在对当前图片进行解码之前或之后立即从dpb中移除。
[0089]
如上所述,在实施方式中,以下语法元素可以存在于任何参数集(701)例如dps、vps、sps或pps以及报头(801)例如切片报头、图块报头、图块组报头中:等于0的future_used_ref_signaling_enabled_flag(702)可以指定num_future_used_ref_pic(802)、delta_poc_future_used_ref_pic[i](803)和sign_future_used_ref_pic[i](804)可以不存在于切片报头中,并且用于对后续图片进行解码的已解码图片可以隐式地确定。等于1的future_used_ref_signaling_enabled_flag(702)可以指定num_future_used_ref_pic(802)、delta_poc_future_used_ref_pic[i](803)和sign_future_used_ref_pic[i](804)可以存在于切片报头(801)中,并且要用于对后续图片进行解码但不用于对当前图片进行解码的已解码图片可以通过对delta_poc_future_used_ref_pic[i](803)和sign_future_used_ref_pic[i](804)进行解析和处理来明确地确定。num_future_used_ref_pic(802)可以指定将来使用的参考图片条目的数目。delta_poc_future_used_ref_pic[i](803)可以指定由第i条目涉及的将来使用的已解码图片与当前图片的图片顺序计数值之间的绝对差。delta_poc_future_used_ref_pic[i](803)的值可以在包括0至215

1在内的范围内。等于1的future_used_ref_pic_sign_flag[i](804)可以指定第i条目的图片顺序计数值大于当前图片的图片顺序计数的值。等于0的future_used_ref_pic_sign_flag[i](804)可以指定第i条目的图片顺序计数值小于当前图片的图片顺序计数的值。
[0090]
在实施方式中,由以上语法元素或类似语法元素指示的已解码图片可能需要存储在dpb中,即使已解码图片已经作为输出图片(即,被裁剪和/或显示的)被撞出。
[0091]
在实施方式中,当例如从此以后不再使用已解码图片来对当前图片或后续图片进行解码时,可以从dpb中移除由以上语法元素或类似语法元素指示的已解码图片。
[0092]
在实施方式中,将来要被撞出和显示的已解码图片可以被标记为“对于输出而言需要”,而已经被撞出但存储在dpb中的图片可以被标记为“对于输出而言不需要”。被标记为“对于输出而言需要”的已解码图片可能会在图片被显示之前的某个时刻被撞出。在撞出之后,已解码图片可以立即被标记为“对于输出而言不需要”。
[0093]
在实施方式中,由以上语法元素或类似语法元素指示的已解码图片可以被标记为“用于参考”。参考图片列表中包括的用于对当前图片进行解码的其他图片可以被标记为“用于参考”。其他图片可以被标记为“不用于参考”。一旦已解码图片被标记为“不用于参考”,其就可能不会再次被标记为“用于参考”。
[0094]
在实施方式中,如果已解码图片被标记为“不用于参考”和“对于输出而言不需要”,则可以立即移除图片,而被标记为“用于参考”或“对于输出而言需要”的已解码图片可以存储在dpb中。
[0095]
图9是流程图,其是用于语法控制的已解码图片缓冲器管理的示例过程900的流程
图。在一些实现方式中,图9的一个或更多个处理框可以由解码器210执行。在一些实现方式中,图9的一个或更多个处理框可以由与解码器210分离或包括解码器210的另一设备或一组设备例如编码器203执行。
[0096]
如图9中所示,过程900可以包括对至少一个语法元素进行解码,至少一个语法元素与存储在已解码图片缓冲器中的参考图片有关(框910)。至少一个语法元素可以指示参考图片是可用于将来参考或不可用于将来参考中的至少一种。
[0097]
此外,如图9中所示的,过程900可以包括使用参考图片来重构当前图片(框920)。
[0098]
此外,如图9中所示的,过程900可以包括确定参考图片对于将来的参考而言是否是需要的(框930)。如果是,则过程900可以包括将参考图片保持在已解码图片缓冲器中(框930)。如果否,则过程900可以进行至框950。
[0099]
此外,如图9中所示的,过程900可以包括确定参考图片对于将来的输出而言是否是需要的(框950)。如果是,则过程900可以包括将参考图片保持在已解码图片缓冲器中(框930)。如果否,则过程900可以进行至框960。
[0100]
此外,如图9中所示的,过程900可以包括从已解码图片缓冲器中移除参考图片(框960)。
[0101]
在实施方式中,可以基于参考图片不可用于将来参考而将参考图片标记为不用于参考。
[0102]
在实施方式中,参考图片可以被先前输出,并且可以基于参考图片被先前输出而将参考图片标记为对于输出而言不需要。
[0103]
在实施方式中,基于参考图片被标记为不用于参考并且被标记为对于输出而言不需要,可以从已解码图片缓冲器中移除参考图片。
[0104]
在实施方式中,可以基于参考图片可用于将来参考而将参考图片标记为用于参考,并且基于参考图片被标记为用于参考,参考图片可以被保持在已解码图片缓冲器中。
[0105]
在实施方式中,至少一个语法元素可以被包括在语法结构中,并且语法结构可以包括图片报头、切片报头、图块报头、图块报头组或参数集中的至少一种。
[0106]
在实施方式中,至少一个语法元素可以包括第一语法元素,其可以被包括在参数集中并且指示第二语法结构中是否包括第二语法元素和至少一个第三语法元素。
[0107]
在实施方式中,第二语法元素可以指示第二语法结构中包括的至少一个第三语法元素的数目。
[0108]
在实施方式中,至少一个第三语法元素可以指示当前图片与参考图片之间的图片顺序计数差。
[0109]
在实施方式中,至少一个第三语法元素可以指示图片顺序计数差的符号。
[0110]
尽管图9示出了过程900的示例框,但是在一些实现方式中,过程900可以包括与图9中描绘的示例框相比额外的框、更少的框、不同的框或不同地布置的框。另外地或可替选地,可以并行地执行过程900的框中的两个或更多个框。
[0111]
此外,所提出的方法可以通过处理电路系统(例如,一个或更多个处理器或一个或更多个集成电路)来实现。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序,以执行所提出的方法中的一个或更多个。
[0112]
可以使用计算机可读指令将上述技术实现为计算机软件,并且将其物理地存储在
一个或更多个计算机可读介质中。例如,图10示出了适合于实现所公开的主题的某些实施方式的计算机系统1000。
[0113]
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,所述指令可以由计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过解释、微代码执行等执行。
[0114]
指令可以在如下各种类型的计算机或其组件上执行,其包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
[0115]
图10中示出的关于计算机系统1000的组件性质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。组件的配置也不应解释为对计算机系统1000的示例性实施方式中示出的组件中的任何一个或组合具有任何依赖性或相关要求。
[0116]
计算机系统1000可以包括某些人机接口输入设备。这样的人机接口输入设备可以响应于一个或更多个人类用户通过例如触觉输入(例如:击键、划动、数据手套的移动)、音频输入(例如:语音、拍手)、视觉输入(例如:姿势)、嗅觉输入(未描绘)的输入。人机接口设备还可以用于捕获不一定与人的如下意识输入直接有关的某些媒体:例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止图像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0117]
输入人机接口设备可以包括以下中的一项或更多项(每个描绘中的仅一个):键盘1001、鼠标1002、触控板1003、触摸屏1010、数据手套1204、操纵杆1005、麦克风1006、扫描仪1007、相机1008。
[0118]
计算机系统1000还可以包括某些人机接口输出设备。这样的人机接口输出设备可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感觉。这样的人机接口输出设备可以包括触觉输出设备(例如,触摸屏1010、数据手套1204或操纵杆1005的触觉反馈,但是也可以存在不用作输入设备的触觉反馈设备)、音频输出设备(例如:扬声器1009、耳机(未描绘))、视觉输出设备(例如包括阴极射线管(crt)屏幕、液晶显示(lcd)屏幕、等离子屏幕、有机发光二极管(oled)屏幕的屏幕1010,每个屏幕具有或不具有触摸屏输入能力,每个屏幕具有或不具有触觉反馈能力,其中一些屏幕可能能够通过诸如立体图像输出、虚拟现实眼镜(未描绘)、全息显示器和烟罐(未描绘)以及打印机(未描绘)的方式输出二维视觉输出或超过三维输出)。
[0119]
计算机系统1000还可以包括人类可访问的存储设备及其相关联介质,例如包括带有cd/dvd或类似介质1021的cd/dvd rom/rw 1020的光学介质、拇指驱动器1022、可移动硬盘驱动器或固态驱动器1023、诸如磁带和软盘(未描绘)的传统磁性介质、诸如安全加密狗(未描绘)的基于专用rom/asic/pld的设备等。
[0120]
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他瞬时信号。
[0121]
计算机系统(1000)还可以包括到一个或更多个通信网络(1055)的接口。网络(1055)可以例如是无线的、有线的、光学的。网络(1055)还可以是本地、广域、城域、车辆和工业、实时、耐延迟等。网络(1055)的示例包括诸如以太网的局域网,无线lan,包括gsm、3g、
4g、5g、lte等的蜂窝网络,包括线缆电视、卫星电视和地面广播电视的电视有线或无线广域数字网络,包括canbus的车辆和工业网络等。某些网络(1055)通常需要附接至某些通用数据端口或外围总线(1049)的外部网络接口适配器(1054)(诸如,例如计算机系统(1000)的usb端口);其他网络通常通过附接至如下所述的系统总线而集成到计算机系统(1000)的核心中(例如,以太网接口到pc计算机系统中或蜂窝网络接口到智能手机计算机系统中)。使用这些网络(1055)中的任一个,计算机系统(1000)可以与其他实体进行通信。这样的通信可以是单向的;仅接收的(例如,广播电视);单向仅发送的(例如,到某些canbus设备的canbus);或双向的,例如使用局域或广域数字网络到其他计算机系统。可以在如上所述的这些网络(1055)和网络接口(1054)中的每一个上使用某些协议和协议栈。
[0122]
前述人机接口设备、人机可访问的存储设备和网络接口可以附接至计算机系统1000的核心1040。
[0123]
核心1040可以包括一个或更多个中央处理单元(cpu)1041、图形处理单元(gpu)1042、现场可编程门区域(fpga)1043形式的专用可编程处理单元、某些任务的硬件加速器1044等。这些设备以及只读存储器(rom)1045、随机存取存储器(ram)1046、例如内部非用户可访问的硬盘驱动器、固态驱动器(ssd)等的内部大容量存储装置1047可以通过系统总线1248连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线1248,以通过附加cpu、gpu等实现扩展。外围设备可以直接附接至核心的系统总线1248,或者通过外围总线1049附接至核心的系统总线1248。外围总线的架构包括外围组件互联(pci)、usb等。
[0124]
cpu 1041、gpu 1042、fpga 1043和加速器1044可以执行某些指令,所述指令可以组合起来构成前述计算机代码。该计算机代码可以存储在rom 1045或ram 1046中。瞬时数据也可以存储在ram 1046中,而永久性数据可以存储在例如内部大容量存储装置1047中。到存储器设备中的任何存储器设备的快速存储和检索可以通过使用高速缓冲存储器来实现,该高速缓冲存储器可以与一个或更多个cpu 1041、gpu 1042、大容量存储装置1047、rom 1045、ram 1046等紧密相关联。
[0125]
计算机可读介质可以在其上具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的那些,或者它们可以是计算机软件领域的技术人员公知且可用的种类。
[0126]
作为示例但不作为限制,具有架构的计算机系统1000,特别是核心1040可以提供如下功能,其作为处理器(包括cpu、gpu、fpga、加速器等)执行在一种或更多种有形的计算机可读介质中实施的软件的结果。这样的计算机可读介质可以是与以下各项相关联的介质:如上所述的用户可访问的大容量存储装置、以及核心1040的具有非暂态性质的某些存储例如核心内部大容量存储装置1047或rom 1045。实现本公开内容的各种实施方式的软件可以存储在这样的设备中并由核心1040执行。根据特定需要,计算机可读介质可以包括一个或更多个存储器设备或芯片。软件可以使核心1040特别是其中的处理器(包括cpu、gpu、fpga等)执行本文中所述的特定过程或特定过程的特定部分,包括根据由软件定义的过程来定义ram 1046中存储的数据结构和修改这样的数据结构。另外地或者作为替选方案,计算机系统可以提供作为逻辑硬连线或以其他方式实施在电路(例如:加速器1044)中的结果的功能,该电路可以代替软件或与软件一起运行以执行本文中所述的特定过程或特定过程
的特定部分。在适当的情况下,对软件的引用可以涵盖逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可以涵盖存储用于执行的软件的电路(例如集成电路(ic))、实施用于执行的逻辑的电路或二者。本公开内容涵盖硬件和软件的任何合适的组合。
[0127]
虽然本公开内容描述了几个示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等效物。因此,将认识到,本领域技术人员将能够设计出尽管未在本文中明确示出或描述但实施了本公开内容的原理并因此在本公开内容的精神和范围内的许多系统和方法。
转载请注明原文地址:https://doc.8miu.com/read-1450278.html

最新回复(0)