用于解码图片缓冲器和参考图片列表的状态信息的信号通知的制作方法

文档序号:7993040阅读:222来源:国知局
用于解码图片缓冲器和参考图片列表的状态信息的信号通知的制作方法
【专利摘要】本发明涉及用于用信号通知解码图片缓冲器(DPB)和参考图片列表(RPL)的状态的创新。在示例性实现中,并非依赖于解码器的内部状态来管理和更新DPB与RPL,而是明确地用信号通知关于DPB和RPL的状态信息。这允许解码器从用信号通知的状态信息确定预期可得到哪些图片以用于参考。例如,编码器确定标识哪些图片可得到以用作参考图片的状态信息(可选地,考虑来自解码器的关于哪些图片可得到的反馈信息)。编码器设置表示状态信息的语法元素。在这样做时,编码器设置用于长期参考图片(LTRP)的标识信息,其中所述标识信息是用于LTRB的图片顺序计数最低有效位的值。编码器然后将所述语法元素输出为位流的一部分。
【专利说明】用于解码图片缓冲器和参考图片列表的状态信息的信号通知
【背景技术】
[0001]工程师使用压缩(也称为信源编码)来减少数字视频的位速率。压缩通过将信息转换成较低位速率形式来降低存储和传送视频信息的成本。解压缩(也称为解码)从压缩形式重构原始信息的某个版本。“编解码器”是编码器/解码器系统。
[0002]在过去二十年间,已经采用各种视频编解码器标准,包括H.261、H.262 (MPEG-2或IS0/IEC 13818-2)、H.263 和 H.264 (AVC 或 IS0/IEC 14496-10)标准,以及 MPEG-1 (ISO/IEC 11172-2)、MPEG-4 Visual (IS0/IEC 14496-2)和 SMPTE 421M 标准。更近一些,HEVC标准已经在研发中。视频编解码器标准典型地定义用于已编码视频位流的语法的选项,当在编码和解码中使用特定特征时详述位流中的参数。在许多情形中,视频编解码器标准还提供关于解码器为了在解码中达到正确结果而应当执行的解码操作的细节。
[0003]压缩的基本目标是提供良好的速率失真(rate-distortion)性能。因此,对于特定的位速率,编码器试图提供视频的最高质量。或者,对于相对原始视频的特定质量/保真度水平,编码器试图提供最低位速率的编码视频。实际中,取决于使用情景,诸如编码时间、编码复杂性、编码资源、解码时间、解码复杂性、解码资源、总体延迟、丢失恢复能力和/或回放时的平滑度之类的考虑也影响在编码和解码期间所做出的判决。
[0004]典型地,视频编码器或解码器缓冲之前解码的图片,视频编码器或解码器在编码或解码其他图片时可以使用这些之前解码的图片。这样的重构的和缓冲的图片通常称为参考图片。一些视频编解码器标准描述了详尽的规则,用于管理和更新哪些参考图片被缓冲,而哪些参考图片不再用于参考。这可以允许编码器通过做出关于使用哪些参考图片的良好判决来改善压缩效率,但是管理和更新参考图片的过程对于编码器和解码器可能是复杂的。另外,解码器使用编码视频数据的位流中的各种信息片来追踪和更新其参考图片缓冲器和参考图片列表的状态。如果用于其参考图片缓冲器和/或参考图片列表的解码器的内部状态偏离于预期状态,则信息从位流中丢失(例如,由于分组丢失或损坏)可在相当长的时段内不利地影响解码,并且解码器不再使用适当的参考图片。

【发明内容】

[0005]总的来说,本详细说明给出了用于用信号通知解码图片缓冲器(DPB)和参考图片列表的状态的创新。所述创新可以减少与用于DPB和参考图片列表(RPL)管理的状态信息的信号通知相关联的位速率,并且在各种其他方面改善DPB管理和/或RPL管理,同时仍提供对抗状态影响信息的丢失的鲁棒性。
[0006]并非依赖于解码器的内部状态来管理和更新DPB与RPL,而是明确地用信号通知关于DPB和RPL的状态信息。这允许解码器从用信号通知的状态信息确定DPB中的哪些图片预期可用于参考,所述用信号通知的状态信息标识哪些图片当前可用于参考。这样的状态/[目息可以被称为缓冲器描述列表(BDL)彳目息,其通常是指明确指不DPB和/或RPL的状态的任何形式信息。[0007]本文描述的创新包括但不限于以下内容:
?在BDL信息中使用按每一个参考图片的将来参考标志,其中将来参考标志指示该参考图片是仅用于(与BDL信息相关联的)当前图片的解码,还是替代地用于按编码顺序的至少一个随后图片的解码。使用该标志可以允许在DPB中存储附加的参考图片。
?对于将来参考标志的使用,使用开/关判决标志。例如,开/关判决标志可被用信号通知为序列参数集合(SPS)的一部分,并且指示将来参考标志在BDL信息中的存在/不存在。这可以允许编码器决定是否在BDL信息中使用将来参考标志。
?在对于与较高时间层(temporal layer)相关联的图片的BDL信息中,允许参考图片标记信息来将较低时间层中的一个或多个图片标记为不用于参考。尽管这样的行为在实际中可能不常见,但是在一些情景中,对用于较高时间层中的图片的参考图片管理允许这样的选项可能是有用的。并且,当后来的m)L信息缺少用于之前利用对于较高时间层处图片的BDL信息而移除的参考图片的状态信息时,解码器可以推断出这样的参考图片的移除。
?在BDL信息中使用按较高时间层的每一个图片的较高层图片指定标志,其中较高层图片指定标志把某个图片指定为涉及较高时间层以用于BDL信息的目的。在许多情景中,较高时间层的图片很少或者不用作参考图片,并且管理和更新DPB的过程对于这样的图片可以简化。在BDL信息完全用于较高时间层的图片的场合,BDL信息中的每一个图片的简单标志可足以把该图片指定为与较高时间层相关联,其中暗示了管理和更新DPB的动作。
?使用开/关判决标志以用于在BDL信息中包括关于较高时间层图片的状态信息。例如,开/关判决标志可被用信号通知为SPS的一部分,并且指示关于较高时间层图片的状态信息在BDL信息中的存在/不存在。
#可以在自适应片参数集合(adaptive slice parameter set, APS)级别上用信号通知BDL信息。BDL信息的单个集合与某个APS相关联。
?简化在BDL信息中用于长期参考图片(LTRP)的状态信息的信号通知。LTRP提供用于视频编码和解码的有用设计元素,但是在BDL信息中计及LTRP的管理和更新提出了挑战。特别地,对于长时间保留在DPB中的LTRP,用于该LTRP的标识信息的信号通知可能消耗大量的位,并且造成要在位流解析和解码中解决的特殊情况。本文提出在BDL信息中用于LTRP的各种版本的简化语法,其减少用于LTRP状态信息的位速率并且简化DPB管理。例如,在BDL信息中用于某个图片的LTRP标志将该图片标记为LTRP以用于DPB管理的目的。
?使用用于标志的开/关判决以用于在BDL信息中包括关于LTRP的状态信息。例如,开/关判决标志可被用信号通知为SPS的一部分,并且指示关于LTRP的状态信息在BDL信息中的存在/不存在,这在编码器已经决定不使用LTRP时简化了 BDL信息的信号通知。
?减少在BDL信息中用来标识LTRP的位数量。在许多使用情景中,参考图片(以及LTRP)的数量较少,并且较少数量的位足以标识LTRP。对于其他使用情景,编码器可以增加用来标识LTRP的位数量。
?以用于构建RPL的顺序来组织BDL信息。这简化了用于RPL构建目的的语法。
?用信号通知是否允许图片顺序计数(POC)值中的间断。例如,SPS中的标志指示是否允许POC值中的间断。如果不允许间断,那么解码器可以在其确定POC值缺失时识别出图片丢失,并且解码器可以基于POC值来做出关于图片准备好输出的判决。
?可以使用截短的指数哥伦布(Exp-Golomb)编码(B卩,te(v))而非无符号的指数哥伦布编码来编码BDL信息中的语法元素。这对于具有较少数量可能值的语法元素更有效。
[0008]根据本文所描述的创新的一个方面,计算系统确定标识哪些图片可得到以用作参考图片的状态信息。计算系统设置表示所述状态信息的语法元素。特别地,在这样做时,计算系统设置用于LTRP的标识信息,其中该标识信息是用于该LTRB的POC最低有效位(P0CLSB)的值。计算系统然后将语法元素作为位流的一部分输出。
[0009]根据本文所描述的创新的另一个方面,计算系统接收位流的至少一部分。计算系统从位流解析语法元素,该语法元素表示标识哪些图片可得到以用作参考图片的状态信息。特别地,所述语法元素包括用于LTRP的标识信息,其中所述标识信息是用于该LTRB的POC LSB的值。计算系统在解码期间使用所述标识信息。
[0010]本发明的前述的和其他的目标、特征和优点将从以下参照附图继续进行的详细说明变得更为明显。
【专利附图】

【附图说明】
[0011]图1是在其中可以实现所描述的一些实施例的示例性计算系统的图。
[0012]图2a和2b是在其中可以实现所描述的一些实施例的示例性网络环境的图。
[0013]图3是可以与之结合来实现所描述的一些实施例的示例性编码器系统的图。
[0014]图4a是如本文所描述的用于输出语法元素的一般化技术的流程图,而图4b是用于在位流中用信号通知对于LTRP的标识信息的示例性技术的流程图。
[0015]图5是可以与之结合来实现所描述的一些实施例的示例性解码器系统的图。
[0016]图6a是如本文所描述的用于解析语法元素的一般化技术的流程图,而图6b是用于从位流解析对于LTRP的标识信息的示例性技术的流程图。
[0017]图7a是用于导出变量PicOrderCntMsb的伪代码列表,而图7b是用于导出变量PicOrderCntVal的伪代码列表。
【具体实施方式】
[0018]本详细说明给出了用于用信号通知DPB和RPL的状态的创新。所述创新可以帮助减少与BDL信息相关联的位速率,和/或简化DPB管理或RPL构建的过程,同时仍支持丢失恢复。
[0019]本文描述的一些创新是参照特定于H.264和/或HEVC标准的语法元素和操作阐述的。对于其他标准或格式也可以实现这样的创新。
[0020]更一般性地,对本文所描述的例子的各种替代是可能的。参照流程图描述的某些技术可以通过改变流程图中所示的阶段的排序、通过拆分、重复或省略某些阶段等而变更。用信号通知DPB和RPL的状态的各个方面可以组合地或单独地使用。不同的实施例使用所描述的创新中的一个或多个。本文描述的一些创新解决了在【背景技术】中指出的问题中的一个或多个。典型地,已知技术/工具没有解决所有这样的问题。
[0021]1、示例性计算系统
图1图示在其中可以实现所描述的若干创新的适当计算系统(100)的一般性例子。计算系统(100)并不打算对使用或功能性的范围提出任何限制,这是因为所述创新可以在多种通用或专用计算系统中实现。
[0022]参照图1,计算系统(100)包括一个或多个处理单元(110,115)和存储器(120,125)。在图1中,这个最基本的配置(130)被包括在虚线内。处理单元(110,115)执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、在专用集成电路(ASIC)中的处理器、或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1显示中央处理单元(110)以及图形处理单元或协处理单元
(115)。有形的存储器(120,125)可以是可由(多个)处理单元访问的易失性存储器(例如,寄存器、高速缓冲器、RAM)、非易失性存储器(例如,ROM、EEPR0M、闪存等)、或二者的某种组合。存储器(120,125)存储实现用于用信号通知BDL信息的一个或多个创新的软件(180),该软件具有适合于由(多个)处理单元执行的计算机可执行指令的形式。
[0023]计算系统可以具有附加特征。例如,计算系统(100)包括存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160)、以及一个或多个通信连接(170)。诸如总线、控制器或网络的互连机制(未示出)互连计算系统(100)的组件。典型地,操作系统软件(未示出)提供用于在计算系统(100)中执行的其他软件的操作环境,并且协调计算系统
(100)的组件的活动。
[0024]有形的存储装置(140)可以是可拆卸或不可拆卸的,并且包括磁盘、磁带或盒式磁带、CD-ROM、DVD、或者可以用来存储可在计算系统(100)内被访问的信息的任何其他介质。存储装置(140)为实现对于用信号通知BDL信息的一个或多个创新的软件(180)存储指令。
[0025](多个)输入设备(150)可以是诸如键盘、鼠标、笔或轨迹球的触摸输入设备、话音输入设备、扫描设备或者向计算系统(100)提供输入的另外的设备。对于视频编码,(多个)输入设备(150)可以是:诸如摄像机、视频卡、电视调谐器卡、或接受模拟或数字形式的视频输入的类似设备的视频捕获组件;诸如将计算机产生的屏幕图像捕获为视频的屏幕捕获模块的视频捕获组件、或者捕获计算机产生的图像内容的类似组件;或者将视频采样读取到计算系统(100)中的⑶-ROM或⑶-RW。(多个)输出设备(160)可以是显示器、打印机、扬声器、CD-刻录机、或者从计算系统(100)提供输出的另外的设备。
[0026](多个)通信连接(170)使能在通信介质上到另一计算实体的通信。通信介质在调制的数据信号中传达诸如计算机可执行指令、音频或视频输入或输出、或者其他数据的信息。调制的数据信号是使它的特性中的一个或多个以如下方式设置或改变的信号,即:将信息编码在信号中。作为例子而非限制,通信介质可以使用电学、光学、射频或其他载体。
[0027]可以在计算机可读介质的一般上下文中来描述所述创新。计算机可读介质是可在计算环境中被访问的任何可用的有形介质。作为例子而非限制,对于计算系统(100),计算机可读介质包括存储器(120,125)、存储装置(140)以及以上的任何的组合。
[0028]可以在计算机可执行指令的一般上下文中来描述所述创新,诸如包括在程序模块中的、在计算系统中在目标真实或虚拟处理器上被执行的那些指令。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能性可以视各种实施例的期望而在程序模块之间组合或拆分。用于程序模块的计算机可执行指令可以在本地或分布式的计算系统内执行。
[0029]术语“系统”和“设备”在本文中可互换地使用。除非上下文清楚地另外指明,否则两个术语都不暗示对计算系统或计算设备的类型的任何限制。一般性地,计算系统或计算设备可以是本地的或分布式的,并且可以包括专用硬件和/或通用硬件与实现本文所述功能性的软件的任何组合。
[0030]为了陈述的目的,本详细说明使用像“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是对计算机所执行的操作的高级别抽象,并且不应与人类所执行的动作混淆。对应于这些术语的实际计算机操作取决于具体实施而变化。
[0031]I1、示例性网络环境
图2a和2b显示包括视频编码器(220)和视频解码器(270)的示例性网络环境(201,202)。编码器(220)和解码器(270)在网络(250)上使用适当的通信协议连接。网络(250)可以包括因特网或别的计算机网络。
[0032]在图2a所示的网络环境(201)中,每一个实时通信(RTC)工具(210)包括用于双向通信的编码器(220)和解码器(270) 二者。给定的编码器(220)可以产生遵从于SMPTE421M标准、IS0/IEC 14496-10标准(也称为H.264或AVC)、HEVC标准、另外的标准、或专有格式的输出,有对应的解码器(270)接受来自编码器(220)的编码数据。双向通信可以是视频会议、视频电话呼叫、或其他两方通信情景的一部分。尽管图2a中的网络环境(201)包括两个实时通信工具(210),但是网络环境(201)可以替代地包括参与多方通信的三个或更多个实时通信工具(210)。
[0033]实时通信工具(210)通过编码器(220)管理编码。图3显示可被包括在实时通信工具(210)中的示例性编码器系统(300)。替代性地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还通过解码器(270)管理解码。图5显示了示例性解码器系统(500),其可以被包括在实时通信工具(210)中。替代性地,实时通信工具(210)使用另一解码器系统。
[0034]在图2b所示网络环境(202)中,编码工具(212)包括编码器(220),其编码视频以用于递送到多个回放工具(214),所述回放工具包括解码器(270)。单向通信可被提供用于视频监视系统、web摄像机监控系统、远程桌面会议演示、或者其中视频被编码且从一个位置发送到一个或多个其他位置的其他场景。尽管图2b中的网络环境(202)包括两个回放工具(214 ),但是网络环境(202 )可以包括更多或更少的回放工具(214 )。一般性地,回放工具(214)与编码工具(212)通信以确定该回放工具(214)将接收的视频流。回放工具(214)接收所述流,在适当的时段上缓冲接收到的编码数据,并且开始解码和回放。
[0035]图3显示可被包括在编码工具(212)中的示例性编码器系统(300)。替代性地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括服务器侧控制器逻辑,用于管理与一个或多个回放工具(214)和/或网络视频传送工具的连接。图5显示了示例性解码器系统(500),其可被包括在回放工具(214)中。替代性地,回放工具(214)使用另一解码器系统。回放工具(214)还可以包括客户机侧控制器逻辑,用于管理与编码工具(212)的连接。
[0036]II1、示例性编码器系统
图3是可以与之结合来实现所描述的一些实施例的示例性编码器系统(300)的框图。编码器系统(300)可以是通用编码工具,能够在诸如用于实时通信的低等待时间编码模式、转码模式和用于从文件或流的媒体回放的常规编码模式之类的多种编码模式的任何一种中操作,或者它可以是适于一个这样的编码模式的专用编码工具。编码器系统(300)可被实现为操作系统模块、应用库的一部分、或者独立的应用。总体来说,编码器系统(300)接收来自视频源(310)的源视频帧(311)的序列,并且产生输出到信道(390)的编码数据。输出到信道的编码数据可以包括如章节V描述的一个或多个语法元素。
[0037]视频源(310)可以是摄像头、调谐器卡、存储介质或其他数字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。当在这里使用时,术语“帧”通常指源、编码或重构的图像数据。对于逐行式(progressive)视频,帧是逐行式视频帧。对于隔行式(interlaced)视频,在示例性实施例中,隔行式视频帧在编码之前被解除隔行(de-1nterlaced)。替代性地,两个互补的隔行式视频场(field)被编码为隔行式视频帧或者单独的场。除了指示逐行式视频帧之外,术语“帧”还可以指示单个非配对的视频场、互补的一对视频场、表示在给定时间的视频对象的视频对象平面、或者在较大图像中的感兴趣区。视频对象平面或区可以是包括某个场景的多个对象或区的较大图像的一部分。
[0038]抵达的源帧(311)被存储在包括多个帧缓冲器存储区域(321,322,…,32/?)的源帧临时存储器存储区域(320)中。帧缓冲器(321,322等)在源帧存储区域(320)中持有一个源帧。在源帧(311)中的一个或多个已经被存储在帧缓冲器(321,322等)中后,帧选择器(330)从源帧存储区域(320)周期性地选择独个源帧。帧选择器(330)选择帧来输入到编码器(340)中的顺序可以不同于视频源(310)产生帧的顺序,例如某个帧可以在顺序上提前,以利于在时间上向后的预测。在编码器(340)之前,编码器系统(300)可以包括预处理器(未示出),其在编码之前对所选择的帧(331)执行预处理(例如,过滤)。
[0039]编码器(340)编码所选择的帧(311)以产生已编码的帧(341),并且还产生存储器管理控制信号(342)。如果当前帧不是已经被编码的第一帧,那么在执行其编码过程时,编码器(340)可以使用已经被存储在解码帧临时存储器存储区域(360)中的一个或多个之前编码/解码的帧(369)。这样的已存储的解码帧(369)被用作为参考帧以用于当前源帧(331)的内容的帧间预测。通常,编码器(340)包括多个编码模块,其执行诸如运动估计和补偿、频率转换、量化和熵编码之类的编码任务。由编码器(340)执行的确切操作可以取决于压缩格式而变化。输出的编码数据的格式可以是Windows Media Video格式、VC_1格式、MPEG-x 格式(例如 MPEG-1,MPEG-2 或 MPEG-4)、H.26x 格式(例如 H.261,H.262,H.263,H.264)、HEVC格式或者其他格式。
[0040]由解码过程模拟器(350)处理已编码的帧(341)和BDL信息(342)。解码过程模拟器(350)实施解码器功能性中的某些一例如解码任务一以重构编码器(340)在运动估计和补偿时所使用的参考帧。解码过程模拟器(350)使用BDL信息(342)来确定给定的编码帧(341)是否需要被重构和存储以在有待编码的随后帧的帧间预测中用作参考帧。当BDL信息(342 )指示需要存储某个编码帧(341)时,解码过程模拟器(350 )模仿将由解码器进行的解码过程,该解码器接收该编码帧(341)并产生对应的解码帧(351)。在这样做时,当编码器(340)已经使用已存储于解码帧存储区域(360)中的(多个)解码帧(369)时,解码过程模拟器(350)也使用来自存储区域(360)的该(多个)解码帧(369)作为解码过程的一部分。
[0041]解码帧临时存储器存储区域(360)包括多个帧缓冲器存储区域(361,362,…,36/7)。解码过程模拟器(350)使用BDL信息(342)来管理存储区域(360)的内容,以便标识具有编码器(340)不再需要将其用作参考帧的帧的任何帧缓冲器(361,362等)。在模仿解码过程之后,解码过程模拟器(350)将新解码的帧(351)存储于已经以此方式标识的帧缓冲器(361,362等)中。
[0042]已编码的帧(341)和BDL信息(342)还被缓冲在临时编码数据区域(370)中。汇集在该编码数据区域(370)中的已编码数据可以包含如章节V中所描述的一个或多个语法元素以作为基本(elementary)编码视频位流的语法的一部分。替代性地,汇集在编码数据区域(370)中的已编码数据可以包括诸如在章节V中所描述的那些的(多个)语法元素,作为与已编码视频数据有关的媒体元数据的一部分(例如,作为在一个或多个补充增强信息(SEI)消息或视频可用性信息(VUI)消息中的一个或多个参数)。
[0043]由信道编码器(380)处理来自临时编码数据区域(370)的汇集数据(371)。信道编码器(380)可以对汇集的数据打包以便作为媒体流传送,在这种情形中,信道编码器(380)可以在某些情况下添加诸如在章节V中所描述的那些的(多个)语法元素作为媒体传送流的语法的一部分。或者,信道编码器(380)可以组织汇集的数据以便作为文件存储,在这种情形中,信道编码器(380)可以在某些情况下添加诸如在章节V中所描述的那些的(多个)语法元素作为媒体存储文件的语法的一部分。或者,更一般性地,信道编码器(380)可以实施一个或多个媒体系统复用协议或传输协议,在这种情形中,信道编码器(380 )可以在某些情况下添加诸如在章节V中所描述的那些的(多个)语法元素作为(多个)协议的语法的一部分。信道编码器(380)向信道(390)提供输出,所述信道代表用于输出的存储装置、通信连接或者另一信道。
[0044]图4a显示用于设置和输出如在章节V中所描述的一个或多个语法元素的示例性技术(400)。例如,参照图2a和2b描述的实时通信工具或编码工具执行该技术(400)。替代性地,另一工具执行该技术(400)。首先,该工具设置(410)如在章节V中所描述的一个或多个语法元素。然后该工具输出(420)所述一个或多个语法元素。
[0045]图4b显示技术(400)的一个具体例子(401),其主要关注用于长期参考图片(LTRP)的标识信息的信号通知。例如,参照图2a和2b描述的实时通信工具或编码工具执行该技术(401)。替代性地,另一工具执行该技术(401)。
[0046]首先,该工具确定(405)标识哪些图片可得到以用作参考图片(S卩,当前视频编码器可得到以用作参考图片;预期在解码中的该时刻视频解码器可得到以用作参考图片)的状态信息。然后该工具设置(411)表示所述状态信息的语法元素。特别地,该工具设置用于LTRP的标识信息。用于LTRP的标识信息是用于LTRB的图片顺序计数最低有效位(P0CLSB)的值。可得到以用作参考图片的图片还可以包括短期参考图片(STRP)。在该情形中,工具可以将用于LTRB的POC LSB的值再用作用于STRB的POC LSB的值,但是将LTRB标记为使用于长期参考,以区分LTRP和STRP。
[0047]在位流中被用信号通知的语法元素可以包括其他的和/或附加的语法元素。例如,工具确定是否将关于LTRP的状态信息包括在用于某个序列的图片的位流中,并且将指示在用于该序列的图片的位流中是否存在关于LTRP的状态信息的标志输出为序列参数集合的一部分。或者,工具设置要用于LTRB的POC LSB的值的、POC LSB的位数目,然后输出指示该POC LSB的位数目的语法元素(例如,表示相对于某个恒定值的、用于POC LSB的回绕点(wrapping point)的以2为底的对数的语法元素,诸如log2_max_pic_order_cnt_Isb_minus4语法元素)。或者,工具使用并且用信号通知如章节V所描述的其他语法元素。
[0048]然后工具将语法元素输出(421)为位流的一部分。例如,工具在用于当前图片的基本编码视频位流中用信号通知语法元素。替代性地,语法元素在位流语法的某个其他级别上被用信号通知。
[0049]IV、示例性解码器系统
图5是可以与之结合来实现所描述的一些实施例的示例性解码器系统(500)的框图。解码器系统(500)可以是通用解码工具,其能够在诸如用于实时通信的低等待时间解码模式和用于从文件或流回放媒体的常规解码模式的多种解码模式的任何一种中操作,或者它可以是适于一个这样的解码模式的专用解码工具。解码器系统(500)可被实现为操作系统模块、应用库的一部分、或者独立的应用。总体来说,解码器系统(500)接收来自信道(510)的已编码数据,并且产生重构帧作为给输出目的地(590)的输出。已编码数据可以包括如在章节V中所描述的一个或多个语法元素。
[0050]解码器系统(500)包括信道(510),其可以代表用于作为输入的编码数据的存储装置、通信连接、或者另一信道。信道(510)产生已经被信道编码的编码数据。信道解码器(520)可以处理该编码数据。例如,信道解码器(520)对已经汇集以便作为媒体流传送的数据拆包(de-packetize),在这种情形中,信道解码器(520)可以将诸如在章节V中所描述的那些的(多个)语法元素作为媒体传送流的语法的一部分进行解析。或者,信道解码器(520)将已经汇集以便作为文件存储的已编码视频数据分开,在这种情形中,信道解码器(520)可以将诸如在章节V中所描述的那些的(多个)语法元素作为媒体存储文件的语法的一部分进行解析。或者更一般性地,信道解码器(520)可以实施一个或多个媒体系统解复用协议或传输协议,在这种情形中,信道解码器(520)可以将诸如在章节V中所描述的那些的(多个)语法元素作为(多个)协议的语法的一部分进行解析。
[0051]从信道解码器(520)输出的编码数据(521)被存储在临时编码数据区域(530)中,直到已经接收到足够数量的这样的数据。编码数据(521)包括编码帧(531)和BDL信息(532)。在编码数据区域(530)中的编码数据(521)可以包含诸如在章节V中那些语法元素的一个或多个语法元素作为基本编码视频位流的语法的一部分。或者,在编码数据区域(530)中的编码数据(521)可以包括诸如在章节V中所描述的那些的(多个)语法元素作为与已编码视频数据有关的媒体元数据的一部分(例如,作为一个或多个SEI消息或VUI消息中的一个或多个参数)。通常,编码数据区域(530)临时存储编码数据(521),直到解码器(550)使用这样的编码数据(521)。在这个时候,用于编码帧(531)和BDL信息(532)的编码数据可以从编码数据区域(530)传递到解码器(550)。随着解码的继续,新的编码数据被添加到编码数据区域(530),而保留在编码数据区域(530)中的最老的编码数据被传递到解码器(550)。
[0052]解码器(550)周期性地解码已编码的帧(531),以产生对应的解码帧(551)。在适当的时候,解码器(550)可以在执行其解码过程时使用一个或多个之前解码的帧(569)作为用于帧间预测的参考帧。解码器(550)从解码帧临时存储器存储区域(560)读取这样的之前解码的帧(569)。通常,解码器(550)包括多个解码模块,其执行诸如熵解码、逆量化、逆频率转换和运动补偿之类的解码任务。由解码器(550)执行的确切操作可以取决于压缩格式而变化。[0053]解码帧临时存储器存储区域(560)包括多个帧缓冲器存储区域(561,562,…,56/7)。解码帧存储区域(560)是DPB的例子。解码器(550)使用BDL信息(532)来识别它可以在其中存储解码帧(551)的帧缓冲器(561,562等)。解码器(550)将解码帧(551)存储在所述帧缓冲器中。
[0054]输出定序器(sequencer) (580)使用BDL信息(532)来识别按输出顺序要被产生的下一个帧何时在解码帧存储区域(560)中可得到。当按输出顺序要被产生的下一个帧(581)在解码帧存储区域(560)中可得到时,其被输出定序器(580)读取并且输出到输出目的地(590)(例如,显示器)。通常,输出定序器(580)从解码帧存储区域(560)输出帧的顺序可以不同于解码器(550)解码帧的顺序。
[0055]图6a显示用于接收和解析如在章节V中所描述的语法元素的示例性技术(600)。例如,参照图2a和2b描述的实时通信工具或回放工具执行该技术(600)。替代性地,另一工具执行该技术(600 )。首先,工具接收(610 )如在章节V中所描述的一个或多个语法元素。然后工具解析(620)所述一个或多个语法元素。然后工具可以使用所述语法元素,如章节V中所解释的。
[0056]图6b显示该技术(600)的一个具体例子(601),其重点关注对用于LTRP的标识信息的解析。例如,参照图2a和2b描述的实时通信工具或回放工具执行该技术(601)。替代性地,另一工具执行该技术(601)。
[0057]首先,工具接收(611)位流的至少一部分。例如,位流是基本编码视频位流。工具从位流解析(621)语法元素。所述语法元素表示标识哪些图片可得到以用作参考图片(即,当前视频编码器可得到以用作参考图片;预期在解码时的该时刻视频解码器可得到以用作参考图片)的状态信息。例如,表示所述状态信息的语法元素在用于当前图片的位流中被用信号通知。替代性地,所述语法元素在位流语法的某个其他级别上被用信号通知。
[0058]特别地,语法元素包括用于LTRP的标识信息。用于LTRP的标识信息是用于LTRB的POC LSB的值。可得到以用作参考图片的图片还可以包括STRP。在这种情形中,工具可以将用于LTRB的POC LSB的值再用作用于STRB的POC LSB的值,但是将LTRB标记为用于长期参考,以区分LTRP和STRP。
[0059]被在位流中用信号通知的语法元素可以包括其他的和/或附加的语法元素。例如,工具从序列参数集合解析指示用于某个序列的图片的位流中是否存在关于LTRP的状态信息的标志。或者,工具解析指示要用于LTRB的POC LSB的值的、POC LSB的位数目的语法元素,在解析用于LTRP的标识信息时使用该POC LSB的位数目。
[0060]工具在解码期间使用(631)标识信息。例如,作为解码的一部分,工具使用状态信息来管理视频解码器的解码图片存储区域。
[0061]V、用信号通知DBP和RPL的状态的创新
已经提出各种方法来结合HEVC标准使用BDL信息。在标题为“Absolute Signaling ofReference Pictures(参考图片的绝对信号通知)”且包括“Proposed Changes to the HEVCWorking Draft(对HEVC工作草案提出的改变)”的文档JCTVC-F493中描述了一种方法。在标题为“WD4: Working Draft 4 of High-Efficiency Video Coding (WD4:高效视频编码的工作草案 4)”的 JCTVC_F803_dl_Buffer_Descriptions_r0,以及标题也为 “WD4: WorkingDraft 4 of High-Efficiency Video Coding” 的 JCTVC-F803_dl_BufTer_Desc;riptions_display_process_suggestion_rl中描述了其他的方法。本节描述相对于JCTVC_F803_dl的文档所示的方法的具体改变。这些改变延伸了在JCTVC-F493中提出的一些概念。本节所描述的不同的创新可以组合地或单独地使用。
[0062]A、将来参考标志
根据本文描述的一个创新,编码器和解码器使用BDL信息的按每一个参考图片的将来参考标志,其中将来参考标志指示该参考图片是仅用于当前图片的解码,还是用于按编码顺序的至少一个将来图片的解码。因此将来参考标志指示在当前图片被解码之后是否保留该参考图片。在示例性实现中,将来参考标志是在BDL中针对每一个图片添加的被称为mark_unused_after_decoding_flag的新语法元素。该语法元素允许与BDL信息结合采用全DPB大小。
[0063]如果参考图片标记操作的位置在解码过程中被移动得更早,那么它可能减少可被存储于缓冲器中的参考图片的数量。如果DPB容量是#个图片且当前图片是参考图片,那么将没有空间来把当前图片存储于缓冲器中,除非BDL的总大小不超过Λ/-1个图片。这比使用AVC语法可能的情况少一f MZf,因为在AVC语法中:(I)首先,参考处于缓冲器中的图片以用于解码过程,(2)#后,丢弃不再需要的任何图片(即,标记为“不用于参考”,这在缓冲器中腾出空间以用于新图片),以及(3)之后,将当前图片存储于缓冲器中以用于随后图片的解码过程中的潜在使用。通过使标记过程移到将图片用作参考之前,对于给定的总缓冲器容量来说可以被参考的图片数量减少了 I。降低总的缓冲器容量是极不希望的。[0064]可以使用将来参考标志来解决对DPB容量的使用的这个限制。在示例性实现中,针对每一个所列出的图片,在BDL中用信号通知称为mark_unused_after_decoding_flag的一位标志。mark_unused_after_decoding_flag指示该参考图片是仅用于(与BDL信息相关联的)当前图片的解码,还是也用于按编码顺序的至少一个后来图片的解码。如果参考图片只用于当前图片的解码,那么它可以被解码的当前图片盖写。用等于I的mark_unuSed_after_deCOding_flag将图片标记为“不用于参考”是在当前图片的解码过程之后且在当前图片存储于DPB中之盧执行的。例如,如果DPB最多存储五个参考图片并且是满的,则如果五个参考图片中的一个不用于将来图片的解码(如用mark_unused_after_decoding_flag所指示的),那么所述参考图片可以被解码的当前图片盖写。以此方式,便可以使用DPB的总缓冲器容量一编码器和解码器不需要在DPB中保留一个空位置以用于解码的当前图片。
[0065]B、用于将来参考标志的开/关判决标志
根据本文描述的另一创新,针对将来参考标志用信号通知开/关判决标志。编码器可能不希望利用将来参考标记。为了避免发送不必要的位,编码器可以使用用于将来参考标志的开/关判决标志。如果开/关判决标志是“开”,则使用将来参考标志。否则,如果开/关判决标志是“关”,则不使用将来参考标志。
[0066]例如,在示例性实现中,一些编码器可能不希望利用mark_unused_after_decoding_flag。为了避免这样的编码器发送不必要的位,在SPS级别上添加称为no_final_referencing_flag 的标志。当 no_final_referencing_flag 等于 I ?mark_unused_after_decoding_flag语法元素从位流省略。在这种情形中,解码器不对mark_unused_after_decoding_flag语法元素进行接收、解析、使用等。否则,解码器对mark_unused_after_decoding_flag语法元素进行接收、解析、使用等。[0067]C、标记较低时间层的图片
根据本文描述的另一创新,在用于与较高时间层(temporal layer)相关联的图片的BDL信息中,参考图片标记信息可以将较低时间层中的一个或多个图片标记为不用于参考。在一些情景中,对用于较高时间层中的图片的参考图片管理允许这样的选项可以是有用的。并且,当后来的BDL信息缺少之前利用用于较高时间层的图片的BDL信息而移除的参考图片的状态信息时,解码器可以推断出这样的参考图片的移除。
[0068]在用信号通知DPB的状态的一些方法中,禁止较高时间层中的图片将较低时间层中的图片标记为“不用于参考”。然而当使用本文描述的BDL型语法时,这样的禁止没有意义。一旦图片已经从BDL省略,它也就不出现在任何随后的BDL中,因此就不存在解码器错过标记该图片为“不用于参考”的通知的危险。
[0069]D、较高层图片指定标志
根据本文描述的另一创新,在BDL信息中,编码器和解码器使用按每一个较高时间层的图片的较高层图片指定标志,其中较高层图片指定标志指定图片为涉及较高时间层以用于BDL信息的目的。在许多情景中,较高时间层的图片并不用作参考图片。管理和更新DPB的过程对于这样的图片可以简化。在BDL信息完全用于较高时间层的图片的场合,BDL信息中的按每一个图片的简单标志可足以指定该图片为与较高时间层相关联,其中暗示了管理和更新DPB的动作。
[0070]在示例性实现中,可以在BDL中针对每一个图片发送简单的higher_layer_picture_flag以指示该图片是否处于较高时间层中。在一些情景中,可能期望的是在BDL信息中包括用于较高时间层中的图片的信息,以便能够明确地指示这样的一些图片将被标记为“不用于参考”。然而,即使这些图片在DBL信息中列出,也不必发送诸如实际层号的细节。替代地,在BDL中针对每一个图片发送简单的higher_layer_picture_flag以指示该图片是否处于较高时间层中。当higher_layers_not_listed__flag等于I时,建议较高时间层中的任何图片保持不受当前图片的解码过程的影响一即简单地保持它们现有的标记状态。
[0071]E、用于较高层图片指定标志的开/关判决标志
根据本文描述的另一创新,编码器和解码器使用开/关判决标志来在BDL信息中包括关于较高时间层的图片的状态信息。例如,开/关判决标志可以被用信号通知为SPS的一部分,并且指示关于较高时间层的图片的状态信息在BDL信息中的存在/不存在。
[0072]在示例性实现中,在SPS级别上添加称为higher_layers_not_listed_flag的标志。当所述标志等于I时,较高时间层的图片不包括在CVS的BDL中。在之前的提议中,较高时间层的图片包括在BDL中。这样的图片在当前图片的解码过程中从未被实际地参考,并且这是解码器已知的。由于这些图片与当前图片以及在当前时间层和任何较低时间层中的任何随后图片的解码无关,所以在许多使用情形中将它们包括在BDL中的价值值得怀疑,并且因此期望避免给语法加上这个与被解码的层的解码过程无关的额外数据的负担。
[0073]F、APS级别上的BDL信息
根据本文描述的另一创新,BDL信息在自适应片参数集合(APS)级别上被用信号通知。BDL信息的单个集合与某个APS相关联。
[0074]在参数集合中具有多个缓冲器列表的想法并不精巧(elegant)且不必要。具有用以标识所选BDL的索引的多列表概念有点像新的混合级别的语法,它看起来是不必要地复杂的,并且预见了一种以看起来不必要的方式提前预规划其BDL结构的编码器设计。此外,通过让BDL驻留在APS中,便可能不需要在片头部级别中跳过(Override)APS级别BDL的能力。因此,在没有适当理由的情况下,BDL信息只在APS级别或更高级别上被用信号通知。
[0075]G、在BDL信息中用于LTRP的简化语法
根据本文描述的另一创新,编码器和解码器在BDL信息中使用用于LTRP的状态信息。LTRP提供用于视频编码和解码的有用设计元素。然而,在BDL信息中管理和更新LTRP提出了挑战。本文提出在BDL信息中用于LTRP的各种版本的简化语法,其减少了用于LTRP状态信息的位速率,并且简化了 DPB管理。
[0076]LTRP是有用的设计元素,其实际上用在一些产品中,尤其用于鲁棒的实时通信。如AVC中所见的LTRP的各方面不仅包括长时间地将图片保持在DPB中的能力,而且包括使用用于运动矢量缩放和加权预测计算的不同处置。
[0077]在示例性实现中,LTRP功能性得以保留,并且DBL信息计及LTRP管理。用来在BDL信息中用信号通知LTRP状态信息的一些现有方法过于费事,因为它们牵涉到完全分离LTRP的列出和总POC差的信号通知,这是不恰当的。例如,LTRP由其总POC差标识。对于已经在DPB中保留了很长时间的LTRP,发送其POC差所需的码字长度可能变得非常大——浪费位且导致解码器的解析问题,并且最终限制使用该语法时LTRP可以被保留的持续时间。
[0078]相比来说,在示例性实现中,编码器和解码器使用具有用于LTRP状态信息的简化语法的BDL信息,其中只有POC值的最低有效位(LSB)之间的差值,对最高有效位(MSB)回绕点取模(modulo),被发送以标识LTRP,而非整个POC差被发送。实际上不需要追踪POC值的MSB值一只有相对顺序是真正需要建立的,并且避免明确要求MSB追踪可以易于将这样的预期的功能性解译为随机访问解码。另外,通过避免表示差值的MSB,被发送以标识LTRP的POC差值将不需要随时间变得越来越大。利用适当的设计选择,编码器甚至不需要担心以下情况:其中发送了重新使用与现有LTRP所用相同的POC LSB的新图片。
[0079]以下是在此精神内的两种可能方法。二者都牵涉到针对BDL信息中的每一个图片发送long_term_reference_flag语法元素。第二种方法(以下的方案B)稍微简单一些。第一种方法(以下的方案A)允许更多的编码器灵活性。
[0080]根据方案A,当对于POC LSB的给定值long_term_reference_f lag语法元素的值从O变到I时,这把图片标记为如同AVC中的“用于长期参考”。之后,相同的POC LSB值可以无混淆地再次用于短期参考图片。对于相同的POC LSB,相比于具有等于O的long_term_reference_flag的图片,具有等于I的long_term_reference_flag的图片保持明确地被标识。只有在将LTRP标记为“不用于参考”之后,编码器(或解码器)才将能够用具有相同POC LSB值的另一 LTRP替换它。
[0081]对于方案A,牵涉到LTRP和短期参考图片(STRP)的病态(pathological)和过渡情况被如下地处理:
?在解码新图片之前,如果缓冲器只包含对于POC LSB的某值的STRP,然后接收到BDL信息,其只包含对于所述值的LTRP,那么在解码当前图片之前STRP被标记为“用于长期
参考”。
?在解码新图片之前,如果缓冲器只包含对于POC LSB的某值的LTRP,然后接收到BDL信息,其只包含对于所述值的STRP,那么该位流是不合规定的。
?在解码新图片之前,如果缓冲器包含对于相同POC LSB值的LTRP和STRP 二者,然后接收到BDL信息,其只包含对于所述值的STRP,那么LTRP被标记为“不用于参考”。
?在解码新图片之前,如果缓冲器包含对于相同POC LSB值的LTRP和STRP 二者,然后接收到BDL信息,其只包含对于所述值的LTRP,那么STRP被标记为“不用于参考”。
[0082]根据方案B,仅通过设置标志(例如,被称为used_for_long_term_flag的标志)来将图片标记为“用于长期参考”,该标志在图片解码时被发送。在BDL信息中所述图片的所有随后包含物都具有等于 I 的 long_term_reference_flag,并且 long_term_reference_flag的值将被使用来区分LTRP和具有相同POC LSB值的任何假定的短期参考图片。
[0083]H、用于LTRP标志的开/关判决标志
根据本文描述的另一创新,编码器和解码器使用针对标志的开/关判决来在BDL信息中包括关于LTRP的状态信息。例如,开/关判决标志被用信号通知为SPS的一部分,并且指示关于LTRP的状态信息在BDL信息中的存在/不存在。
[0084]由于一些编码器可能不希望利用LTRP,在示例性实现中,在SPS级别上发送称为no_long_term_pictures_flag 的标志。当该标志为 O 时,long_term_reference_flag 值(并且,在以上方案 B的情况中是used_for_long_term_flag)不存在于语法中。
[0085]1、减少用于LTRP标识信息的位
根据本文描述的另一创新,在BDL信息中用来标识LTRP的位数量得以减少。在许多使用情景中,LTRP的数量较少,并且较少数量的位足以标识LTRP。对于其他使用情景,编码器可以增加用来标识LTRP的位数量。
[0086]在示例性实现中,对于方案A或B,在被发送的POC LSB的数量较少的情形中,语法甚至可以变得更有效。例如,如果用于待发送的POC LSB的位数量是4 (如同在AVC POC类型O中的log2_max_pic_order_cnt_lsb_minus4 —样)而不是某个更大的数(诸如8),那么可以减少BDL信息中与LTRB识别信息相关联的位速率。在许多使用情景中,使用比4大的位数量可能是不必要的负担。然而在更大的位数量是恰当的情况下,编码器可以简单地使用 log2_max_pic_order_cnt_lsb_minus4 (或其等价物)的更大值。
[0087]J、BDL信息的有效组织
根据本文描述的另一创新,以构建RPL所用的顺序来组织并发送BDL信息。这简化了用于RPL构建目的的语法。
[0088]在示例性实现中,由于BDL信息本身是图片的列表,所以它可以潜在地以从所传送列表的首先列出的图片直接构建列表O所需的顺序发送。如果图片是按照列表O顺序列出的,那么实际上不需要用于列表O的参考图片列表修改语法。
[0089]K、用信号通知是否允许POC值的间断
根据本文描述的另一创新,编码器用信号通知是否允许POC值中的间断。如果不允许间断,那么解码器可以在其确定POC值缺失时识别出图片丢失,并且解码器可以基于POC值做出关于图片准备好输出的判决。
[0090]在示例性实现中,在SPS级别上发送称为poc_gaps_allowed_flag的标志。当该标志等于O时,在输出顺序中的所有连续图片具有连续的POC LSB值,而没有间断。因此,解码器可以通过识别缺失的POC值来识别图片丢失。另外,编码器对p0C_gapS_all0Wed_flag语法元素的使用将使得解码器能够识别出准备好从遵守输出顺序的解码器输出的图片串。如果具有某个POC值#的图片已经准备好输出,并且具有POC值#+1的图片存在于DPB中,那么解码器将能够检测到这个具有POC LSB值#+1的图片将是要输出的下一个图片。并且,如果DPB中不存在这样的具有POC LSB值#+1的图片,那么解码器将知道某个后来图片将带有所述POC LSB值抵达,除非有什么已经出错了。
[0091]L、用于BDL信息的语法元素的熵编码和解码
根据本文描述的另一创新,可以使用截短的指数哥伦布编码(即,te(v))而非无符号的指数哥伦布编码来编码BDL信息中的语法元素。已经提出将用于BDL信息的各种语法元素作为ue(v)编码值发送。通常,可用于这些语法元素的选择的数量较少。因此,将这样的语法元素编码为te (V)值可以改善效率。解码器执行对应的熵解码。
[0092]V1、用信号通知DBP和RPL的状态的另外创新
在一些实现中,视频编码器和视频解码器可以遵循附加约束来简化并改善POC计算的鲁棒性。在具有或不具有这样的约束的情况下,在各种使用情景中,视频编码器和视频解码器可以使用标识哪些图片可得到以用作参考图片的用信号通知的状态信息。
[0093]A、改善POC计算的鲁棒性的第一种方法
在第一组示例性方法中,引入以下约束:用作参考或等待输出的所有图片具有可以相对于当前图片的POC而被明确地算出的相对POC位置。这解决了在POC值的MSB被追踪的方式中的潜在鲁棒性问题。
[0094]例如,假设POC回绕值(wrap value)是16 (并且DPB尺寸大得足以使图片输出延迟,并且所有图片都是参考图片)。如果用于解码顺序中的连续图片的POC LSB值是5、11、2,那么当具有POC LSB值2的图片被解码时,具有POC LSB值5的图片的位置相对于具有POC LSB值2的当前图片是不明确的。如果具有POC LSB值11的图片丢失,那么另外两个图片将以错误的相对顺序输出。(另外,运动矢量的时间缩放将不正确,参考图片列表构建将是错误的,并且时间加权预测将变得不正确。)。
[0095]通过强加该约束并且参考对于当前图片的POC值的所有相对POC值,消除了对于追踪缓冲器中所述图片的实际POC MSB的需要。在该方法中,只要图片停留在缓冲器中,相对POC位置就保持正确。这缓解了某些关于在对POC使用较少数量LSB时可能出现的问题的担心,但是相比于强制要求(mandate)更大的最小数量POC LSB来说,它以更全面的方式解决了问题。
[0096]B、改善POC计算的鲁棒性的第二种方法
当解码器推断与每一个解码图片相关联的POC的MSB值时,可能存在若干问题。MSB值是从解码过程的历史挨个图片地、贯穿整个编码视频序列而推断出的,并且从位流移除一个或多个图片可能导致MSB值的损坏。这进而又可能引起剩余图片的乱序回放、不正确的参考图片列表构建以及不正确的时间加权预测。通过推断来指明MSB值还可能造成随机访问困难,这是因为执行对位流的随机访问的解码器不能访问编码视频序列中在前的图片。
[0097]在第二组示例性方法中,类似于第一组示例性方法,对相对POC计算的约束被引入到位流中的图片的POC LSB的值上(其中POC LSB值由pic_order_cnt_lsb语法元素表达)。遵循该约束对编码效率具有可忽略的影响,简化了用于建立相对POC顺序的解码过程,消除了对于推断POC MSB值的需要,并且改善了图片丢失的鲁棒性。因此,为了解决鲁棒性问题并且消除对于追踪实际POC MSB值的需要,引入以下约束:用作参考或等待输出的所有图片具有可以相对于当前图片的POC明确地算出的相对POC位置。
[0098]例如,假设被发送的POC LSB的数量是4,并且因此POC回绕值是16 (并且DPB尺寸大得足以使图片输出延迟,且所有图片都是参考图片)。如果用于解码顺序中的连续图片的POC LSB值是5、11、2,那么当具有POC LSB值2的图片被解码时,具有POC LSB值5的图片的位置相对于具有POC LSB值2的当前图片可能变得不明确。如果具有POC LSB值11的图片丢失,那么另外两个图片将以错误的相对顺序输出,运动矢量的时间缩放将不正确,参考图片列表构建将是错误的,并且时间加权预测将变得不正确。
[0099]通过强加该约束并且参考对于当前图片的POC LSB值的所有相对POC值,消除了对于追踪缓冲器中图片的实际POC MSB的需要。在该方法中,为了短期参考或输出排序的目的,只要图片停留在缓冲器中,相对POC位置就保持正确。这缓解了某些关于当为POC使用较少数量的LSB时可能出现的问题的担心,但是相比于强制要求更大的最小数量POC LSB来说,它以更全面的方式解决了问题。
[0100]与这个用于相对POC计算的约束组合,或者与计算POC值的另一方法组合,编码器可以应用对POC值的范围的约束。例如,编码器在编码期间设置POC值,以使得POC值的范围(最大值与最小值之间的差,对于给定图片及其参考图片)由取决于POC LSB可能的最大值的阈值来限制。下面描述该约束的例子。
[0101]参照图2a和2b描述的实时通信工具或编码工具可以执行服从于这些对POC值的约束中的一个或二者的编码。替代性地,另一工具执行该技术。首先,工具设置服从于该(多个)约束的用于图片的POC值。例如,某个约束限制当前图片及其参考图片的POC LSB值的范围,如以下所描述的那样。然后工具编码对于图片的视频,产生一致的(conformant)位流。在位流中,工具可以用信号通知与所应用的(多个)约束相符的POC值(例如,使用指示POC LSB的语法元素)。
[0102]1、没有相对POC计算的示例性方法
在没有相对POC计算的示例性方法中,POC值被如下地解码。该过程的输出是PicOrderCntVal,当前图片的POC。POC被用来标识图片,用于在时间或空间直接模式中导出运动参数,用来表示帧之间的图片顺序差以用于运动矢量导出,用于在B片中的隐含模式加权预测,以及用于解码器一致性检查。每一个编码图片与称为PicOrderCntVal的一个POC相关联,所述POC指示在解码顺序中对应图片相对于之前的IDR图片的图片顺序。
[0103]变量prevPicOrderCntLsb和prevPicOrderCntMsb被如下地导出。如果当前图片是IDR图片,那么prevPicOrderCntLsb和prevPicOrderCntMsb 二者都设置成等于O。否则(当前图片不是IDR图片):Ca)令prevRefPic是解码顺序中之前的参考图片,其具有等于O 的 temporal_id ; (b)变量 prevPicOrderCntLsb 设置成等于 prevRefPic 的 pic_order_cnt_lsb,并且变量 prevPicOrderCntMsb 设置成等于 prevRefPic 的 PicOrderCntMsb。
[0104]当前图片的PicOrderCntMsb按照图7a所示伪代码列表(700)所规定的来导出。替代性地,可以使用等价逻辑来确定当前图片的PicOrderCntMsb。然后,PicOrderCntVal的值如下导出:
PicOrderCntVal = PicOrderCntMsb + pic_order_cnt_lsb。
[0105]在示例性方法中,IDR图片具有等于O的PicOrderCntVal,这是因为对于IDR图片来说,pic_order_cnt_lsb 被推断为 O,并且 prevPicOrderCntLsb 和 prevPicOrderCntMsb二者都设置成等于O。在给定的编码视频序列中,任何两个编码图片的PicOrderCntVal值都应当不同。
[0106]与示例性方法组合,编码器可以应用对POC值的范围的约束。例如,编码器在编码期间设置POC值,以使得POC值的范围(最大值与最小值之间的差,对于给定图片及其参考图片)由取决于对于POC LSB可能的最大值的阈值来限制。
[0107]2、具有相对POC计算的示例性方法
在另一示例性方法中,POC值被如下地解码。该过程的输出是用于当前图片并且用于DPB中被标记为“用于短期参考”或“输出所需”的每一个图片的PicOrderCntVal。POC被用来标识图片,以用于在时间或空间直接模式中导出运动参数,用来表示帧之间的图片顺序差以用于运动矢量导出,用于在B片中的隐含模式加权预测,以及用于解码器一致性检查。
[0108]变量currPicOrderCntLsb被设置为与当前图片相关联的pic_order_cnt_lsb语法元素的值。对于当前图片且对于DPB中当前被标记为“用于短期参考”或“输出所需”的每一个图片来说,相关联的变量thatPicOrderCntLsb被设置为与所述图片相关联的pic_order_cnt_lsb语法元素的值,并且相关联的变量PicOrderCntVal被如图7b所示的伪代码列表(701)所示的那样来设置。
[0109]变量maxPicOrderCnt被设置成等于在用于当前图片以及DPB中当前被标记为“用于短期参考”或“输出所需”的所有图片的相关联值中PicOrderCntVal的最大值。变量minPicOrderCnt被设置成等于在用于当前图片以及DPB中当前被标记为“用于短期参考”或“输出所需”的所有图片的相关联值中PicOrderCntVal的最小值。在该方法中的约束取决于变量maxPicOrderCnt和minPicOrderCnt,考虑对于POC LSB可能的最大值。例如,位流一致性的要求是 maxPicOrderCnt - minPicOrderCnt 的值应小于 MaxPic0rderCntLsb/2。替代性地,以某种其他形式实现该约束,以使得POC值的范围(最大值与最小值之间的差)由取决于对于POC LSB可能的最大值的阈值来限制。
[0110]函数PicOrderCnt (picX)被规定为 PicOrderCnt (picX)=图片 picX 的PicOrderCntVal。函数 DiffPicOrderCnt (picA, picB)被规定为 DiffPicOrderCnt (picA,picB)= Pic0rderCnt(picA)-Pic0rderCnt(picB)。例如,令 picX 是当前图片且 picY 和 picZ是在相同序列中的两个其他图片;当DiffPicOrderCnt (picX, picY)和DiffPicOrderCnt(picX, picZ)二者都是正的或二者都是负的时,picY和picZ被视为在相对于picX的相同输出顺序方向上。许多编码器指派piC_0rder_Cnt_lsb语法元素值,以使得在解码过程中使用的DiffPicOrderCnt (picA, picB)的值与相关联的图片picA和picB的采样时间之间的时间差(精确地或大致地)成比例。
[0111]在该示例性方法中,除了当前图片的pic_order_cnt_lsb和与(多个)PicOrderCntVal 变量相关联的(多个)相应图片的 pic_order_cnt_lsb 外,PicOrderCntVal的值不取决于在SPS级别以下的位流中的任何数据的语法或解码过程。此外,不需要强加对PicOrderCntVal的范围的约束,这是因为它自然地具有有限的范围(在-MaxPicOrderCntLsb 到 2*MaxPic0rderCntLsb 的范围内)。
[0112]C、使用情景
在各种使用情景中,视频编码器和视频解码器可以使用标识哪些图片可得到以用作参考图片的用信号通知的状态信息。对于单向通信,如参照图2b—般性地描述的,视频编码器可以在视频监视系统、web摄像机监控系统、远程桌面会议演示或其他场景中提供编码的视频。对于双向通信,如参照图2a—般性地描述的,视频编码器可以提供用于视频会议、视频电话呼叫、或其他两方通信情景的编码视频。
[0113]视频编码器可以选择一个或多个LTRP,其描绘在视频序列中重现的场景的元素。例如,对于视频监视系统或web摄像机监控系统,视频编码器选择描绘在整个序列中始终出现的场景的背景元素的一个或多个LTRP。或者,对于远程桌面会议演示,视频编码器选择描绘桌面用户界面或应用软件的元素的一个或多个LTRP。或者,对于视频会议或视频电话呼叫,视频编码器选择描绘场景的背景元素或参与者的相对静止元素(例如,坐着的人的特征)的一个或多个LTRP。在编码期间,视频编码器可以基于LTRP被使用于运动补偿的频率来确定将哪些LTRP保留为可用的参考图片,所述LTRP由视频解码器和/或其他代理者(factor)成功重构。
[0114]视频编码器可以周期性地重设LTRP以便于在客户计算设备切换流时(例如,在信道改变到不同流之后、或者在切换到相同序列的不同位速率/质量下的流之后)回放。LTRP的这样的周期性重设还可以帮助客户计算设备从分组丢失或损坏中恢复,分组丢失或损坏会阻碍视频解码器具有那些它为了正确解码而应该具有的参考图片。当视频编码器重设LTRP时,它可以使用帧内编码图片,这可以帮助提供随机访问和恢复的功能性,但也趋于具有比运动补偿图片更高的位速率。
[0115]在实时视频通信情景(例如,视频会议、视频电话呼叫、远程桌面会议演示)中,视频编码器和视频解码器可以交互以促进具有更快的恢复和改善的编码效率的错误恢复和错误隐藏。例如,在服务器计算设备处,视频编码器确定标识哪些图片在视频编码器处可得到以用作参考图片的状态信息。(假设分组丢失或损坏不会不利地影响任何参考图片的重构,则这样的图片还被预期当解码到达该处时可得到以由视频解码器用作参考图片。)然后,服务器计算设备设置表示状态信息的语法元素,并且输出所述语法元素。
[0116]在客户计算设备处,视频解码器接收并解析表示状态信息的语法元素,所述状态信息标识哪些图片在视频编码器处可得到以用作参考图片(其还被预期当解码到达该处时可得到以由视频解码器用作参考图片)。解码器可以在解码期间使用该状态信息来确定参考图片集合。或者,解码器可以使用该状态信息来启动错误恢复或隐藏操作。分组丢失或损坏可能阻碍视频解码器对一个或多个所指示的参考图片的正确重构。视频解码器确定标识哪些图片实际上可得到以由视频解码器用作参考图片的状态信息(其可被称之为新状态信息、解码器状态信息等)。视频解码器设置用于表示解码器状态信息的反馈信息的语法元素。视频解码器发送所述反馈信息,以供视频编码器在后续编码期间使用。这允许视频编码器通过使用之前的用信号通知的状态信息以及来自视频解码器的反馈信息而确定哪些图片实际上在视频解码器处可得到以用于参考。
[0117]在服务器计算设备处,视频编码器接收表示解码器状态信息的反馈信息,并且在编码期间使用该反馈信息。例如,视频编码器使用反馈信息来移除视频解码器未能正确重构的一个或多个LTRP。或者,在决定如何相对于LTRP (反馈信息确认所述LTRP在视频解码器处可得到)来编码一个或多个接下来的图片时,视频编码器以其他方式使用反馈信息。视频编码器确定与反馈信息相符的状态信息,设置表示所述状态信息的语法元素,并且在位流中输出那些语法元素。以此方式,视频编码器可以帮助视频解码器以与基础编码和解码特征相一致的方式从分组丢失或损坏中更快速地恢复,具有由于使用LTRP而导致的高的编码效率。
[0118]视频解码器可以周期性地(例如,对于每一个图片,对于每z个图片的组)将反馈信息提供给视频编码器。或者,视频解码器可以按需提供反馈信息(例如,当视频解码器标识出在接收到的状态信息与实际上视频解码器可得到的参考图片之间的差异时)。视频解码器可以在单独的反馈信道中提供反馈信息,或者对于双向通信,与编码视频数据在传出的媒体流中复用。
[0119]鉴于所公开的发明原理可适用的许多可能实施例,应当认识到所示实施例只是本发明的优选例子,而不应视为本发明的范围的限制。更确切地,本发明的范围由以下权利要求限定。我们因此将所有处于这些权利要求的范围和精神内的都主张为我们的发明。
【权利要求】
1.一种实现视频编码器的计算系统,其中所述计算系统适合于执行包括以下步骤的方法: 确定标识哪些图片可得到以用作参考图片的状态信息; 设置表示所述状态信息的语法元素,包括设置用于长期参考图片(LTRP)的标识信息,其中用于LTRP的所述标识信息是用于LTRB的图片顺序计数最低有效位(POC LSB)的值;以及 将所述语法元素输出为位流的一部分。
2.根据权利要求1所述的计算系统,其中所述方法还包括: 确定是否在用于图片序列的位流中包括关于LTRP的状态信息;以及将指示在用于图片序列的位流中是否存在关于LTRP的状态信息的标志输出为序列参数集合的一部分。
3.根据权利要求1所述的计算系统,其中可得到以用作参考图片的图片包括短期参考图片(STRP),并且其中所述方法还包括: 将用于LTRB的POC LSB的值再用作用于STRB的POC LSB的值;以及 将LTRB标记为用于长期参考以区分LTRP和STRP。
4.根据权利要求1所述的计算系统,其中所述方法还包括: 设置用于LTRB的POC LSB的值的、POC LSB的位数目;以及 输出指示该POC LSB的位数目的语法元素。
5.一种在实现视频解码器的计算系统中的方法,包括: 接收位流的至少一部分; 从所述位流解析语法元素,其中所述语法元素表示标识哪些图片可得到以用作参考图片的状态信息,所述语法元素包括用于长期参考图片(LTRP)的标识信息,其中用于LTRP的所述标识信息是用于LTRB的图片顺序计数最低有效位(POC LSB)的值;以及在解码期间使用所述标识信息。
6.根据权利要求5所述的方法,还包括: 从序列参数集合解析指示在用于图片序列的位流中是否存在关于LTRP的状态信息的标志。
7.根据权利要求5所述的方法,其中可得到以用作参考图片的图片包括短期参考图片(STRP),并且其中所述方法还包括: 将用于LTRB的POC LSB的值再用作用于STRB的POC LSB的值;以及 将LTRB标记为用于长期参考以区分LTRP和STRP。
8.根据权利要求5所述的方法,还包括: 解析指示用于LTRB的POC LSB的值的、POC LSB的位数目的语法元素;以及 在解析用于LTRP的标识信息时使用该POC LSB的位数目。
9.一种或多种计算机可读存储介质,其存储计算机可执行指令以使得由此编程的计算系统执行包括以下步骤的方法: 接收位流的至少一部分; 从所述位流解析语法元素,其中所述语法元素表示标识哪些图片可得到以用作参考图片的状态信息,所述语法元素包括用于长期参考图片(LTRP)的标识信息,其中用于LTRP的所述标识信息是用于LTRB的图片顺序计数最低有效位(POC LSB)的值;以及 在解码期间使用所述标识信息。
10.一种包括视频编码器、 视频解码器、话音输入设备、扬声器、视频捕获组件、显示器和通信连接的实时通信工具; 其中所述实时通信工具适合于处理位流中表示状态信息的语法元素,其中所述状态信息标识哪些图片可得到以用作参考图片,所述语法元素包括用于长期参考图片(LTRP)的标识信息,其中用于LTRP的所述标识信息是用于LTRB的图片顺序计数最低有效位(POC LSB)的值。
【文档编号】H04N19/70GK103918268SQ201280054626
【公开日】2014年7月9日 申请日期:2012年11月6日 优先权日:2011年11月7日
【发明者】G.J.萨利文, 吴勇军 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1