降低视频编码和解码中的延迟的制作方法

文档序号:7978123阅读:232来源:国知局
降低视频编码和解码中的延迟的制作方法
【专利摘要】通过约束由于视频帧的重排序导致的延迟并且通过利用伴随该视频帧的编码数据的一个或多个语法元素指示对帧重排序延迟的约束来减低视频编码和解码中的延迟的技术和工具。例如,具有视频编码器的实时通信工具设置指示对帧重排序延迟的约束的语法元素,其中对帧重排序延迟的该约束与视频序列的多个帧之间的帧间相关性一致,然后该工具输出该语法元素。具有视频解码器的对应实时通信工具接收指示对帧重排序延迟的约束的该语法元素,基于该语法元素确定对帧重排序延迟的约束,并且使用对帧重排序延迟的该约束来确定重建帧何时为输出做好准备(根据输出顺序)。
【专利说明】降低视频编码和解码中的延迟
【背景技术】
[0001]工程师们使用压缩(也被称作源编码或信源编码)来降低数字视频的比特率。压缩通过将视频信息转换成较低比特率的形式来减少存储和传输该信息的成本。解压缩(也被称作解码)从被压缩的形式中重建一个版本的原始信息。“编解码器”是编码器/解码器系统。
[0002]在过去的二十年中,已经采用了各种视频编解码器标准,包含H.261、H.262(MPEG-2 或 IS0/IEC 13818_2)、Η.263 和 H.264 (AVC 或 IS0/IEC 14496-10)标准和 MPEG-1(IS0/IEC 11172-2),MPEG-4 Visual (IS0/IEC 14496-2)和 SMPTE 421M 标准。最近,正在开发HEVC标准。视频编解码器标准典型地定义了编码视频比特流的语法选项,其详述了当在编码和解码中使用特定特征时该比特流中的参数。在许多情况下,视频编解码器标准还提供了关于解码器应当执行以便在解码中获得正确结果的解码操作的详情。
[0003]压缩的基本目标是提供良好的速率失真性能。因此,针对特定的比特率,编码器试图提供最高质量的视频。或者,针对特定的质量水平/对原始视频的保真度水平,编码器试图提供最低比特率的编码视频。在实践中,根据使用的情境,对诸如编码时间、编码复杂度、编码资源、解码时间、解码复杂度、解码资源、总延时、和/或回放中的平滑度之类的考虑也影响编码和解码期间所做出的决定。
[0004]例如,考虑诸如从存储装置回放视频、从在网络连接上流传送的编码数据回放视频,以及视频转码(从一种比特率到另一种比特率,或者从一种标准到另一种标准)之类的使用情境。在编码器端,这样的应用可以准许对时间完全不敏感的离线编码。因此,编码器可以增加编码时间并且增加编码期间使用的资源来找到最有效的方式压缩视频,并且从而改进速率失真性能。如果在解码器端还可以接受少量的延时,那么该编码器可以例如通过采用来自序列中更前面的各图像的图像间相关性来进一步改善速率失真性能。
[0005]另一方面,考虑诸如远程桌面会议、监控视频、视频电话和其它实时通信情境之类的使用情境。这样的应用对时间敏感。输入图像的录制与输出图像的回放之间的低延迟是性能的一个关键因素。当适配于非实时通信的编码/解码工具被应用于实时通信情境中时,总延迟通常高得难以接受。这些工具在编码和解码期间引入的延时可以改善常规视频回放的性能,但是它们破坏了实时通信。

【发明内容】

[0006]总之,【具体实施方式】部分提出了用于降低视频编码和解码中的延迟的技术和工具。该技术和工具可以降低延迟以便改善实时通信中的响应性。例如,该技术和工具通过约束由于视频帧重排序导致的延迟,并且通过利用伴随用于该视频帧的编码数据的一个或多个语法元素指示对帧重排序延迟的约束来降低总延迟。
[0007]根据本文描述的技术和工具的一个方面,诸如视频编码器之类的工具、具有视频编码器的实时通信工具或其它工具设置指示对延迟的约束(例如与视频序列的多帧之间的帧间相关性一致的对帧重排序延迟的约束)的一个或多个语法元素。该工具输出该(多个)语法元素,从而促进更简单和更快速地确定按照帧的输出顺序重建帧何时为输出做好准备。
[0008]根据本文描述的技术和工具的另一个方面,诸如视频解码器之类的工具、具有视频解码器的实时通信工具或其它工具接收并解析指示对延迟的约束(例如对帧重排序延迟的约束)的一个或多个语法元素。该工具还接收用于视频序列的多个帧的编码数据。解码该编码数据中的至少一些来重建多帧中的一个。该工具可以基于该(多个)语法元素确定对延迟的约束,然后使用对延迟的约束来确定重建帧何时为输出做好准备(按照输出顺序)。该工具输出该重建帧。
[0009]本发明前述的和其它的目的、特征和优点将在下文参考附图进行的详细描述中变得更加显而易见。
【专利附图】

【附图说明】
[0010]图1是其中可以实现一些所描述的实施例的示例计算系统的图示。
[0011]图2a和2b是其中可以实现一些所描述的实施例的示例网络环境的图示。
[0012]图3是与之结合可以实现一些所描述的实施例的示例编码器系统的图示。
[0013]图4是与之结合可以实现一些所描述的实施例的示例解码器系统的图示。
[0014]图5a_5e是示出了用于若干示例系列中的帧的编码顺序和输出顺序的图示。
[0015]图6是示出了用于设置和输出指示对延迟的约束的一个或多个语法元素的示例技术的流程图。
[0016]图7是示出用于降低延迟的解码的示例技术的流程图。
【具体实施方式】
[0017]【具体实施方式】部分提出了用于减低视频编码和解码中的延迟的技术和工具。该技术和工具可以帮助降低延迟以便改善实时通信中的响应性。
[0018]在视频编码/解码情境中,接收到输入视频帧的时间与回放该帧的时间之间的一些延时是不可避免的。该帧由编码器编码,被输送到解码器并且由解码器解码,并且一些量的延迟由关于编码资源、解码资源和/或网络带宽的实际限制所导致。但是,其它的延迟是可以避免的。例如,为了改善速率失真性能(例如为了采用来自序列中更前面的图像的帧间相关性),编码器和译码器可能引入延迟。这样的延迟可以被降低,尽管可能在速率失真性能、处理器使用或回放平滑度方面有所损失。
[0019]利用本文所描述的技术和工具,通过约束延迟(因此,限制帧间相关性的时间范围)并且向解码器指示对延迟的该约束来减少延迟。例如,对延迟的该约束是对帧重排序延迟的约束。可替换地,对延迟的该约束是按照秒、毫秒或另一种时间量度的约束。解码器之后可以确定对延迟的该约束并且当确定哪些帧为输出做好准备时使用该约束。这样,可以为远程桌面会议、视频电话、视频监控、摄像头视频和其它实时通信应用降低延时。
[0020]本文描述的一些创新通过参考专用于H.264和/或HEVC标准的语法元素和操作来说明。这样的创新也可以被实现用于其它标准或格式。
[0021]更一般地,对本文描述的示例的各种替换是可能的。可以通过改变流程图中示出的阶段排序,通过拆分、重复或忽略某些阶段等等来变更参考流程图描述的某些技术。针对视频编码和解码的延迟降低的各方面可以组合使用或者单独使用。不同的实施例使用一种或多种所描述的技术和工具。本文描述的一些技术和工具解决了【背景技术】中指出的一个或多个问题。典型地,一种给定的技术/工具不能解决所有这样的问题。
[0022]1.示例计算系统
图1图示了合适的计算系统(100)的一般化示例,其中可以实现若干所描述的技术和工具。计算系统(100)并不旨在暗示对使用或功能性的范围的任何限制,这是因为该技术和工具可以被实现在多种多样的通用或专用计算系统中。
[0023]参考图1,该计算系统(100)包含一个或多个处理单元(110,115)和存储器(120,125)。在图1中,这种最基本的配置(130)被包含在虚线内。该处理单元(110,115)运行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或其它类型的处理器。在多路处理系统中,多个处理单元运行计算机可执行指令来增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120,125)可以是该(多个)处理单元可访问的易失性存储器(例如寄存器、高速缓存、RAM)、非易失性存储器(例如R0M、EEPR0M、闪速存储器等等),或这二者的一些组合。该存储器(120,125)以适于由该(多个)处理单元运行的计算机可执行指令的形式存储了实现用于降低视频编码和解码中的延迟的一个或多个创新的软件(180)。
[0024]计算系统可以具有附加的特征。例如,该计算系统(100)包含存储装置(140)、一个或多个输入设备(150)、一个或多个输出设备(160),以及一个或多个通信连接(170)。诸如总线、控制器或网络之类的互连机制(未示出)互连了该计算系统(100)的各组件。典型地,操作系统软件(未示出)提供用于运行在该计算系统(100)中的其它软件的操作环境,并且协调该计算系统(100)的各组件的活动。
[0025]该有形存储装置(140 )可以是可移动或不可移动的,并且包含可以被用于以非暂时的方式存储信息并且可以在该计算系统(100)内被访问的磁盘、磁带或磁盒、CD-ROM、DVD或任何其它的媒介。该存储装置(140)存储用于实现用于在视频编码和解码中的延迟降低的一个或多个创新的该软件(180)的指令。
[0026]该(多个)输入设备(150)可以是诸如键盘、鼠标、手写笔或跟踪球之类的触摸输入设备、声音输入设备、扫描设备或另一种为该计算系统(100)提供输入的设备。对于视频编码,该(多个)输入设备(150)可以是摄像机、视频卡、电视调谐器卡,或接受模拟或数字形式的输入的类似设备,或者将视频样本读入该计算系统(100)的⑶-ROM或⑶-RW。该(多个)输出设备(160)可以是显示器、打印机、扬声器、CD刻录机,或另一种提供来自该计算系统(100)的输出的设备。
[0027]该(多个)通信连接(170)使得能够实现通过通信媒介到另一计算实体的通信。该通信媒介传送诸如计算机可执行指令、音频或视频输入或输出、或调制数据信号中的其它数据之类的信息。调制数据信号是这样一种信号:它的一个或多个特性以使得便于在该信号中编码信息的方式被设置或改变。作为示例而非限制,通信介质可以使用电学的、光学的、RF或其它的载体。
[0028]可以在计算机可读介质的一般背景下描述该技术和工具。计算机可读介质是任何可以在计算环境内被访问的可用有形介质。作为示例而非限制,对于计算系统(100),计算机可读介质包含存储器(120,125)、存储装置(140)和任何上述的组合。[0029]可以在计算机可执行指令的一般背景下描述该技术和工具,诸如被包含在程序模块中并在计算系统中被运行在真实或虚拟的目标处理器上的那些指令之类。一般地,程序模块包含执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等等。根据各种实施例中的期望,该程序模块的功能性可以在程序模块之间组合或拆分。可以在本地或分布式计算系统内运行用于程序模块的计算机可执行指令。
[0030]本文中术语“系统”和“设备”被可互换地使用。除非上下文明确指出,否则任何一个术语都不暗示任何对计算系统或计算设备的类型的限制。一般地,计算系统或计算设备可以是本地的或是分布式的,并且可以包含具有实现本文所描述功能性的软件的专用硬件和/或通用硬件的任何组合。
[0031]出于演示的目的,具体描述使用了类似“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是对计算机执行的操作的高度抽象,并且不应该与人执行的动作相混淆。对应于这些术语的实际计算机操作根据实现而变化。
[0032]I1.示例网络环境
图2a和2b示出包含视频编码器(220)和视频解码器(270)的示例网络环境(201,202)。通过使用适当的通信协议在网络(250)上连接该编码器(220)和解码器(270)。该网络(250)可以包含因特网或其它计算机网络。
[0033]在图2a中示出的网络环境(201)中,每个实时通信(“RTC”)工具(210)包含编码器(220)和解码器(270) 二者以用于双向通信。给定的编码器(220)可以产生服从SMPTE421M标准、ISO-1EC 14496-10标准(也被称为H.264或AVC)、HEVC标准、其它标准、或私有格式的输出,对应的解码器(270)接受来自该编码器(220)的编码数据。该双向通信可以是视频会议、视频电话呼叫或其它两方通信情境的一部分。尽管图2a中的网络环境(201)包含两个实时通信工具(210),但是作为替换,该网络环境(201)可以包含参与多方通信的三个或更多实时通信工具(210)。
[0034]实时通信工具(210)管理编码器(220)的编码。图3示出了能够被包含在该实时通信工具(210)中的示例编码器系统(300)。可替换地,该实时通信工具(210)使用另一种编码器系统。实时通信工具(210)还管理解码器(270)的解码。图4示出了可以被包含在该实时通信工具(210)中的示例解码器系统(400)。可替换地,该实时通信工具(210)使用另一种编码器系统。
[0035]在图2b示出的网络环境(202)中,编码工具(212)包含编码用于输送到多个回放工具(214)的视频的编码器(220),其中该多个回放工具包含解码器(270)。可以为视频监控系统、摄像头监视系统、远程桌面会议演示或其中视频被编码并从一个位置发送到一个或多个其它位置的其它情境提供单向通信。尽管图2b中的网络环境(202)包含两个回放工具(214),该网络环境(202)可以包含更多或更少的回放工具(214)。一般地,回放工具(214)与该编码工具(212)通信来为该回放工具(214)确定要接收的视频流。该回放工具(214)接收该流,将所接收的编码数据缓冲适当时间周期,然后开始解码和回放。
[0036]图3示出了可以被包含在该编码工具(212)中的示例编码器系统(300)。可替换地,该编码工具(212)使用另一种编码器系统。该编码工具(212)还可以包含用于管理与一个或多个回放工具(214)的连接的服务器端控制器逻辑。图4示出了可以被包含在该回放工具(214)中的示例解码器系统(400)。可替换地,该回放工具(214)使用另一种解码器系统。回放工具(214)还可以包含用于管理与该编码工具(212)的连接的客户端控制器逻辑。
[0037]在一些情况下,指示延迟(例如帧重排序延迟)的语法元素的使用专用于特定的标准或格式。例如,编码数据可以含有指示对延迟的约束的一个或多个语法元素,该一个或多个语法元素作为根据该标准或格式定义的基本编码视频比特流的语法的一部分,或者作为有关该编码数据的所定义的媒体元数据。在这些情况下,具有降低延迟的该实时通信工具(210)、编码工具(212)和/或回放工具(214)可以是编解码器相关的,因为它们做出的决定可以取决于用于特定标准或格式的比特流语法。
[0038]在其它情况下,指示对延迟(例如帧重排序延迟)约束的语法元素的使用在特定标准或格式之外。例如,指示对延迟的约束的(多个)语法元素作为媒体传输流、媒体存储文件或更一般地,媒体系统多路复用协议或传输协议的语法的一部分可以通过发信号来通知。或者可以根据媒体属性协商协议在实时通信工具(210)、编码工具(212)和/或回放工具(214)之间协商指示延迟的(多个)语法元素。在这些情况下,具有降低延迟的该实时通信工具(210)、编码工具(212)和回放工具(214)可以是编解码器无关的,因为它们可以与任何可用的视频编码器和解码器一起工作,假设对帧间相关性的控制水平在编码期间固定。
[0039]II1.示例编码器系统
图3是与之结合可以实现一些所描述的实施例的示例编码器系统(300)的框图。该编码器系统(300)可以是能够工作在诸如用于实时通信的低延迟编码模式、转码模式、以及用于回放自文件或流的媒体的常规编码模式之类的多个编码模式中的任何一个中的通用编码工具,或者它可以是被适配用于一个这样的编码模式的专用编码工具。该编码器系统(300)可以被实现为操作系统模块、应用库的一部分或者独立的应用。大体来说,该编码器系统(300 )接收来自视频源(310 )的源视频帧(311)序列并且产生作为被输出到信道(390 )的编码数据。被输出 到该信道的编码数据可以包含指示对延迟(例如帧重排序延迟)的约束的一个或多个语法元素来促进降低延迟的解码。
[0040]该视频源(310)可以是摄像机、调谐器卡、存储介质、或其它数字视频源。该视频源(310)产生帧率在例如每秒30帧的视频帧序列。正如本文中所使用的,术语“帧”一般指源、编码或重建的图像数据。对于逐行扫描视频,一帧是一个逐行扫描视频帧。对于隔行扫描视频,在示例实施例中,在编码之前对隔行扫描视频帧去隔行。可替换地,两个互补隔行扫描视频场被编码为一个隔行扫描视频帧或单独的场。除了指示逐行扫描视频帧之外,术语“帧”可以指示单个非配对视频场、视频场的互补对、代表给定时间处的视频对象的视频对象平面、或在较大图像中感兴趣的区域。该视频对象平面或区域可以是包含场景的多个对象或区域的较大图像的一个部分。
[0041]到达源帧(311)被存储在包含多个帧缓冲存储区(321,322,…32η)的源帧临时存储器存储区(320 )中。一个帧缓冲器(321,322等等)保存该源帧存储区(320 )中的一个源帧。在已经将一个或多个源帧(311)存储在帧缓冲器(321,322等等)中后,帧选择器(330)周期性地从该源帧存储区(320)中选择一个单独的源帧。该帧选择器(330)选择帧来输入到该编码器(340)的顺序可以与该视频源(310)产生帧的顺序不同,例如一帧的顺序可以在前面来促进时间后向预测。在该编码器(340 )前,该编码器系统(300 )可以包含在编码前对所选择的帧(331)执行预处理(例如滤波)的预处理器(未示出)。[0042]该编码器(340 )编码所选择的帧(331)来产生编码帧(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格式或其它格式。
[0043]编码帧(341)和存储器管理控制信号(342)由解码过程模拟器(350)来处理。该解码过程模拟器(350)实现解码器的一些功能性,例如重建由编码器(340)使用在运动估计和补偿中的参考帧的解码任务。该解码过程模拟器(350)使用该存储器管理控制信号(342)来确定给定编码帧(341)是否需要被重建和存储以用作要被编码的后续帧的帧间预测中的参考帧。如果该控制信号(342)指示需要存储编码帧(341),该解码过程模拟器(350)对解码过程进行建模,该解码过程可以由接收该编码帧(341)并产生对应解码帧(351)的解码器实施。在这样做时,当该编码器(340)已经使用已经被存储在解码帧存储区(360 )中的(多个)解码帧(369 )时,该解码过程模拟器(350 )还使用来自该存储区(360 )的该(多个)解码帧(369),作为该解码过程的一部分。
[0044]该解码帧临时存储器存储区(360)包含多个帧缓冲存储区(361,362,…,36η)。该解码过程模拟器(350 )使用该存储器管理控制信号(342 )来管理该存储区(360 )的内容,以便识别任何具有不再被编码器(340)需要用作参考帧的帧的帧缓冲器(361,362等等)。在对该解码过程建模后,该解码过程模拟器(350)存储以这种方式已经被识别的帧缓冲器(361,362等等)中的新近 解码的帧(351)。
[0045]该编码帧(341)和存储器管理控制信号(342)也在临时编码数据区(370)中被缓冲。在该编码数据区(370)中聚集的编码数据可以含有作为基本编码视频比特流的语法的一部分的一个或多个指示对延迟的约束的语法元素。或者,聚集在该编码数据区(370)中的该编码数据可以包含作为与该编码视频数据有关的媒体元数据的一部分(例如作为一条或多条补充增强信息(“SEI”)消息或视频可用信息(“VUI”)消息中的一个或多个参数)的指示对延迟的约束的(多个)语法元素。
[0046]来自该临时编码数据区(370)的聚集数据(371)由信道编码器(380)处理。该信道编码器(380)可以将被聚集的数据打包以便作为媒体流传输,在这种情况下该信道编码器(380)可以添加作为该媒体传输流的语法的一部分的指示对延迟的约束的(多个)语法元素。或者该信道编码器(380)可以组织被聚集的数据以便作为文件存储,在这种情况下该信道编码器(380)可以添加作为该媒体存储文件的语法的一部分的指示对延迟的约束的(多个)语法元素。或者,更一般地,该信道编码器(380)可以实现一个或多个媒体系统多路复用协议或传输协议,在这种情况下该信道编码器(380)可以添加作为该(多个)协议的语法的一部分的指示对延迟的约束的(多个)语法元素。该信道编码器(380)提供到信道(390)的输出,该信道(390 )代表存储、通信连接或用于该输出的另一信道。
[0047]IV.示例解码器系统 图4是与之结合可以实现一些所描述的实施例的示例解码器系统(400)的框图。该解码器系统(400)可以是通用解码工具,其能够工作在诸如用于实时通信的低延迟解码模式和用于回放来自文件或流的媒体的常规解码模式之类的多个解码模式的任何一个中,或者它可以是适配用于一个这样的解码模式的专用解码工具。该解码器系统(400)可以被实现为操作系统模块,作为应用库的一部分或者作为独立的应用。大体来说,该解码器系统(400)接收来自信道(410)的编码数据并且产生作为针对输出目的地(490)的输出的重建帧。该编码数据可以包含一个或多个指示对延迟(例如帧重排序延迟)的约束的语法元素来促进降低延迟的解码。
[0048]该解码器系统(400)包含信道(410),其可以代表存储、通信连接、或用于作为输入的编码数据的另一信道。该信道(410)产生已经被信道编码的编码数据。信道解码器(420)可以处理该编码数据。例如,该信道解码器(420)将已经被聚集用于作为媒体流传输的数据拆包,在这种情况下该信道解码器(420)可以解析作为该媒体传输流的语法的一部分的指示对延迟的约束的(多个)语法元素。或者,该信道解码器(420)分离已经被聚集来用于作为文件存储的编码视频数据,在这种情况下该信道解码器(420)可以解析作为该媒体存储文件的语法的一部分的指示对延迟的约束的(多个)语法元素。或者,更一般地,该信道解码器(420)可以实现一个或多个媒体系统多路解复用协议或传输协议,在这种情况下该信道解码器(420)可以解析作为该(多个)协议的语法的一部分的指示对延迟的约束的(多个)语法元素。
[0049]从该信道解码器(420)输出的编码数据(421)被存储在临时编码数据区(430)直到已经接收到充足量的这种数据。该编码数据(421)包含编码帧(431)和存储器管理控制信号(432)。在该编码数据区(430)中的该编码数据(421)可以含有作为基本编码视频比特流的语法的一部分的指示对延迟的约束的一个或多个语法元素。或者,在该编码数据区(430)中的该编码数据(421)可以包含作为与编码视频数据有关的媒体元数据的一部分(例如,作为在一条或多条SEI消息或VUI消息中的一个或多个参数)的指示对延迟的约束的(多个)语法元素。一般地,该编码数据区(430 )临时存储编码数据(421)直到解码器(450 )使用这样的编码数据(421)。在那时,将用于该编码帧(431)和存储器管理控制信号(432)的编码数据从该编码数据区(430)传递到该解码器(450)。随着解码的继续,新的编码数据被添加到该编码数据区(430)并且剩余在该编码数据区(430)中的最老的编码数据被传递到该解码器(450)。
[0050]该解码器(450)周期性地解码编码帧(431)来产生对应的解码帧(451)。如果合适的话,当执行它的解码过程时,该解码器(450)可以使用一个或多个在先的解码帧(469)作为用于帧间预测的参考帧。该解码器(450)从解码帧临时存储器存储区(460)读取这样的在先解码帧(469 )。一般地,该解码器(450 )包含执行诸如熵解码、逆量化、频率逆变换和运动补偿之类的解码任务的多个解码模块。该解码器(450)执行的准确操作可以根据压缩格式而变化。
[0051]该解码帧临时存储器存储区(460)包含多个帧缓冲存储区(461,462,...,46η)。该解码帧存储区(460)是解码图像缓冲器的一个示例。该解码器(450)使用该存储器管理控制信号(432)来识别它可以在其中存储解码帧(451)的帧缓冲器(461,462等等)。该解码器(450 )在该帧缓冲器中存储解码帧(451)。[0052]输出定序器(sequencer) (480)使用该存储器管理控制信号(432)来识别按照输出顺序要产生的下一帧何时在该解码帧存储区(460)中可用。为了降低该编码-解码系统的延迟,该输出定序器(480)使用指示对延迟的约束的语法元素来加快按照输出顺序要产生的帧的识别。当按照输出顺序要产生的下一帧(480)在该解码帧存储区(460)中可用时,它被该输出定序器(480)读取并被输出到输出目的地(490)(例如显示器)。一般地,该输出定序器(480)从该解码帧存储区(460)输出帧的顺序可以不同于该解码器(450)解码帧的顺序。
[0053]V.促进降低延迟的编码和解码的语法元素
在大多数视频编解码器系统中,编码顺序(也被称作解码顺序或比特流顺序)是在比特流中的编码数据中表示视频帧并且因此在解码期间处理视频帧的顺序。该编码顺序可以不同于编码前摄像机捕捉帧的顺序并且不同于解码后显示、存储或者以它方式输出解码帧的顺序(输出顺序或显示顺序)。与输出顺序有关的帧重排序是有益处的(主要在压缩能力方面),但是它提高了编码和解码过程的端到端的延迟。
[0054]本文描述的技术和工具降低了由于视频帧的重排序导致的延迟,并且,通过向解码器系统提供关于对重排序延迟的约束的信息,还促进了该解码器系统的延迟降低。这样的延迟降低出于许多目的都是有用的。例如,它可以被用于降低发生在使用视频会议系统的交互式视频通信中的时滞,从而使得远程参与者之间的对话流和通信交互更加迅速和自然。
[0055]A.输出时序和输出排序的方法
根据H.264标准,解码器可以使用两种方法来确定解码帧何时准备好被输出。解码器可以使用以解码时间戳和输出时间戳形式的时序信息(例如在图像时序SEI消息中用发信号通知)。或者,该解码器可以使用利用各种语法元素发信号通知的缓冲容量限制来确定解码中贞何时准备好被输出。
[0056]时序信息可以与每个解码帧相关联。该解码器可以使用时序信息来确定解码帧何时可以被输出。但是,在实际上,这样的时序信息对于解码器来说可能是不可用的。而且,甚至当时序信息可用时,一些解码器实际上并不使用该信息(例如因为解码器已经被设计成不论时序信息是否可用都工作)。
[0057]根据H.264标准(以及HEVC标准的草稿版本)缓冲容量限制由若干语法元素指示,包含语法兀素max_dec_frame_buffering、语法兀素num—reorder-frames、相关的排序信息(称作“图像顺序计数”信息)和其它在比特流中发信号通知的存储器管理控制信息。语法元素max_dec_frame_buffering (或被指定为MaxDpbFrames的衍生变量)指定在巾贞缓冲器单元中所需的解码图像缓冲器(“DPB”)尺寸。同样地,语法元素max_dec_frame_buffering表示用于编码视频序列的顶级存储器容量,以便使得解码器能够以正确的顺序输出图像。语法兀素num_reorder_frames (或者max_num_reorder_frames)指不按照编码顺序能够先于任何帧(或互补场对,或非配对场)并且按照输出顺序跟随该任何帧的帧(或互补场对,或非配对场)的最大数目。换言之,num_reorder_frames指定了对图像重排序所必需的存储器容量的约束。语法元素max_num_ref_frames指定了可以被解码过程用于该序列中任何图像的帧间预测的短期和长期参考帧(或互补参考场对,或非配对参考场)的最大数目。语法元素max_num_ref_frames还确定了用于解码参考图像标记的滑动窗口的尺寸。像num_reorder_frames 一样,max_num_ref_frames指定了对所需存储器容量的约束。
[0058]解码器使用max_dec_frame_buffering (或 MaxDpbFrames)和 num_reorder_frames语法元素来确定何时超出缓冲容量限制。这发生在例如当新的解码帧需要被存储在DPB中,但是该DPB中没有剩余的可用空间的时候。在这种情形下,该解码器使用图像顺序计数信息来识别在已经被解码的图像中哪个按照输出顺序最早。按照输出顺序最早的图像之后被输出。这样的处理有时也被称作“碰撞(bumping)”,因为需要被存储的新图像的到来将一幅图像“碰撞出”该DPB。
[0059]由 max_dec_frame_buffering (或 MaxDpbFrames)和 num_reorder_frames 语法兀素指示的信息足够用于确定在解码器中需要的存储器容量。但是,当被用于控制用于图像输出的“碰撞”过程时,这种信息的使用会引入不必要的延迟。正如在H.264标准中定义的那样,max_dec_frame_buffering和num_reorder_frames语法兀素没有建立对可以被用于任何特定图像的重排序数量的限制并且,因此,没有建立对端到端的延迟的限制。不论这些语法元素的值是多少,可以在输出一幅特定的图像前将其保留在DPB中任意长的时间,这对应于由编码器对源图像预缓冲而添加的大量延迟。
[0060]B.指示对帧重排序延迟的约束的语法元素
本文描述的技术和工具降低了视频通信系统中的延迟。编码工具、实时通信工具,或其它工具设置了对可以被用于编码视频序列中的任何帧的重排序范围的限制。例如,可以将该限制表示为在编码视频序列中按照输出顺序可以先于任何给定帧并且按照编码顺序跟随该给定帧的帧的数目。该限制约束了对于该序列中的任何特定帧所允许的重排序延迟。换言之,该限制约束了可以被用于任何特定帧的编码顺序和输出顺序之间的重排序的时间范围(以帧为单位)。限制重排序的范围帮助降低端到端的延时。同样地,建立这样的限制在实时系统协商协议或用于其中降低延迟非常重要的使用情境的应用规范中可以是有用的。
[0061]一个或多个语法元素指示对帧重排序延迟的约束。发信号通知对帧重排序延迟的约束促进用于交互式实时通信或其它使用情境的系统级协商。它提供了一种直接表示对帧重排序延迟的约束并且表征媒体流或会话的特性的方式。
[0062]视频解码器可以使用所指示的对帧重排序延迟的约束来使得能够实现解码视频帧的降低延迟的输出。具体地,相比于帧“碰撞”过程,发信号通知对帧重排序延迟的约束使得解码器能够更加简单和快速地识别DPB中准备好被输出的帧。例如,解码器可以通过计算针对该帧的编码顺序与输出顺序之间的差来确定DPB中帧的延迟状态。通过将该帧的延迟状态与对帧重排序延迟的约束相比较,解码器可以确定何时已经达到对帧重排序延迟的约束。该解码器可以立即输出已经达到该限制的任何帧。相比于使用多种语法元素和跟踪结构的“碰撞”过程,这可以帮助该解码器更加迅速地识别为输出做好准备的帧。这样,该解码器可以迅速地(并且更早地)确定何时解码帧可以被输出。该解码器越快(并且越早)识别何时帧可以被输出,该解码器可以越快(并且越早)将视频输出到显示器或后续处理阶段。
[0063]因此,通过使用对帧重排序延迟的约束,解码器可以在解码帧存储区满之前开始输出来自该解码帧存储区的帧,但是仍然提供符合标准的解码(即解码所有帧从而使得该帧与使用另外的常规方案解码的帧比特精确匹配)。当由延迟语法元素指示的延时(以帧为单位)远远小于该解码帧存储区的尺寸(以帧为单位)时,这显著地降低了延时。[0064]图5a_5e图不了具有不同帧间相关性的帧的系列(501-505)。该系列通过以下约束的不同值来表征:(I)对图像重排序必需的存储器容量的约束(也就是,用于存储出于重排序目的的参考帧的帧缓冲器的数目,例如,由语法元素num_reorder_frames),以及(2)对中贞重排序延迟的约束,例如由变量MaxLatencyFrames指定。在图5a_5e中,对于给定的帧F/,下标j指示该帧按照输出顺序的位置并且上标k指示该帧按照编码顺序的位置。按照输出顺序示出各帧一输出顺序下标值从左至右增加。箭头图示了用于运动补偿的帧间相关性,根据该帧间相关性使用按照编码顺序在先的帧来预测按照编码顺序的后续帧。出于简化的目的,图5a_5e示出了帧级的帧间相关性(而不是参考帧可能改变的宏块级别、块级别等等),并且图5a_5e示出了对于一个给定帧至多两帧作为参考帧。实际上,在一些实现中,在给定帧中不同的宏块、块等等可以使用不同的参考帧,并且对于该给定帧可以使用多于两个参考帧。
[0065]在图5a中,系列(501)包含九帧。按照输出顺序的最后一巾JjJF81使用第一帧Fc^作为参考帧。在该系列(501)中的其它帧使用最后一帧F81和第一帧Fc^ 二者作为参考帧。这意味着最先解码帧匕°,然后是帧F81,然后是帧F12,等等。在图5a中示出的系列(501)中,num_reorder_frames的值是I。在该解码器系统处理中的任何点处,在图5a中示出的各帧中,只有一帧(F81)汸樣夢游#游被存储在解码帧存储区中。(第一帧Fc^也被用作参考帧并且被存储,但是不是出于重排序的目的被存储。因为第一帧Fc^的输出顺序小于中间帧的 输出顺序,因此不把第一帧F00算入出于num_reorder_frames的目的。)尽管num_reorder_
frames的值较小,该系列(501)具有相对较高的延迟-MaxLatencyFrames的值为7。在
编码第一帧之后,该编码器等待,直到在编码按照输出顺序的下一帧匕2之前它已经缓冲了另八个源帧,这是因为下一帧F12取决于该系列(501)中的最后帧F81O MaxLatencyFrames的值实际上是对于任何特定编码帧的下标值与上标值之间允许的最大差。
[0066]在图5b中,系列(502)包含九帧,像图5a中的系列(501) —样,但是帧间相关性是不同的。帧的时间重排序发生在短范围中。结果,该系列(502)具有低得多的延迟——MaxLatencyFrames 的值为 I。num_reorder_frames 的值仍然是 I。
[0067]在图5c中,系列(503)包含十帧。最长的帧间相关性(在时间范围中)比图5a中最长的帧间相关性短,但是长于图5b中最长的帧间相关性。该系列(503)对于num_reorder_frames具有相同的低值I,并且它对于MaxLatencyFrames具有相对低的值2。该系列(503)因此允许比图5a的系列(501)更低的端到端的延迟,尽管没有图5b的系列(501)能允许的延迟低。
[0068]在图5d中,系列(504)包含根据帧间相关性组织在具有三个时间层的时间层次中的中贞。最低时间分辨率层包含第一帧Fc^和最后一帧F81O下一层时间分辨率层添加帧F42,其取决于第一帧和最后一帧F8^最高时间分辨率层添加其余帧。图5d中示出的系列(504)对于num_reorder_frames具有相对低的值2但是对于MaxLatencyFrames具有相对高的值7,至少对于最高时间分辨率层来说是这样,这是由于最后一帧F81的编码顺序与输出顺序之间的差导致的。如果只解码中间时间分辨率层或最低时间分辨率层,那么对帧重排序延时的约束可以被降低到I (对于该中间层)或O (对于该最低层)。为了促进在各种时间分辨率中的降低延迟的解码,语法元素可以指示针对时间层次中的不同层的对帧重排序延迟的约束。[0069] 在图5e中,系列(505)包含根据不同帧间相关性组织在具有三层时间层的时间层次中的帧。最低时间分辨率层包含第一帧Ftlc^中间帧F41和最后一帧F85。下一层时间分辨率层添加帧F22 (其取决于第一帧F00和中间帧F41)和F66 (其取决于中间帧F41和最后一中贞F85)。最高时间分辨率层添加其余的帧。相比于图5d的系列(504),图5e的系列(505)对于num_reorder_frames仍然具有相对低的值2但是对于MaxLatencyFrames具有较低的值3,至少对于最高时间分辨率层来说是这样,这是由于中间帧F41和最后一帧F85的编码顺序与输出顺序之间的差导致的。如果只解码中间时间分辨率层或最低时间分辨率层,那么对帧重排序延时的约束可以被降低到I (对于该中间层)或O (对于该最低层)。
[0070]在图5a_5e示出的示例中,如果已知MaxLatencyFrames的值,则解码器可以识别准备好一旦接收到按照输出顺序的在先帧就立即被输出的某些帧。对于一个给定帧,该帧的输出顺序值减去该帧的编码顺序值可以等于MaxLatencyFrames的值。在这种情况下,只要按照输出顺序该给定帧的在先帧被接收到,该给定帧就为输出做好准备。(相反地,单独使用num_reorder_frames,直到附加帧被接收到或者到达该序列的尽头前,这样的帧都不能被识别为为输出做好准备。)具体地,解码器可以使用MaxLatencyFrames的值来使得能够较早地输出下列帧:
?在图5a的系列(501)中,帧F18。 ?在图5b的系列(502)中,帧F12、F34、F56和F78。
?在图5c的系列(503)中,帧F13、F46和F79。
?在图5d的系列(504)中,帧F18。 ?在图5e的系列(505)中,帧F14和F58。
[0071]另外,在系统级声明或协商MaxLatencyFrames的值可以以一种测量重排序存储容量并使用num_reorder_frames来指示该容量所不能实现的方式提供对比特流或会话的延迟特性的概要表示。
[0072]C.示例实现
指示对帧重排序延迟的约束的语法元素可以以各种方式来发信号通知,这取决于实现。该语法元素可以作为序列参数集(“SPS”)、图像参数集(“PPS”)的一部分,或该比特流的其它元素来发信号通知,作为SEI消息、VUI消息或其它元数据的一部分发信号通知,或者以一些其它方式发信号通知。在任何一种实现中,可以通过使用无符号的指数哥伦布编码(unsigned exponential-Golomb coding)、一些其它形式的熵编码,或固定长度编码来编码并且之后发信号通知指示约束值的语法元素。解码器在接收该语法元素后执行对应的解码。
[0073]在第一种实现中,发信号通知标记max_latency_limitation_flag。如果该标记具有第一个二进制值(例如0),则不对帧重排序延迟施加任何约束。在这种情况下,不发信号通知max_latency_frames语法元素的值或者将其忽略。否则(该标记具有第二个二进制值,比如I),发信号通知max_latency_frames语法元素的值来指示对帧重排序延迟的约束。例如,在这种情况下,发信号通知的max_latency_frames语法元素的值可以是任何非负整数值。
[0074]在第二种实现中,发信号通知语法元素max_latency_frames_plusl来指示对中贞重排序延迟的约束。如果max_latency_frames_plusl具有第一值(例如O),不对帧重排序延迟施加任何约束。对于其它的值(例如非零值),对帧重排序延迟的约束的值被设置为max_latency_frames_plusl_l。例如,max_latency_frames_plusl 的值在 O 到 232_2 范围内,包括端点值。
[0075]类似地,在第三种实现中,发信号通知语法元素max_latency_frames来指示对中贞重排序延迟的约束,如果max_latency_frames具有第一值(例如最大值),对巾贞重排序延迟不施加任何约束。对于其它值(例如小于最大值的值),对帧重排序延迟的约束的值被设置为 max_latency_framesο
[0076]在第四种实现中,相对于帧存储器最大尺寸指示对帧重排序延迟的约束。例如,延迟约束作为相对于num_reorder_frames语法元素的增加被发信号通知。通常,对巾贞重排序延迟的约束(以巾贞为单位)大于或等于num_reorder_frames。为了节省延迟约束的信令中的比特,编码(例如通过使用无符号的指数哥伦布编码、一些其它形式的熵编码)并且之后发信号通知该延迟约束和num_reorder_frames之间的差。发信号通知语法元素max_latency_increase_plusl来指不对巾贞重排序延迟的约束。如果max_latency_increase_Plusl具有第一值(例如0),则对帧重排序延迟不施加任何约束。对于其它值(例如非零值),对巾贞重排序延迟的约束的值被设置为num_reorder_frames+max_latency_increase_plusl-1。例如,max_latency_increase_plusl 的值在 O 到 232_2 范围中,包括端点值。
[0077]可替换地,指示对帧重排序延迟的约束的一个或多个语法元素以一些其它方式发信号通知。
[0078]D.指示对延迟的约束的其它方式
在许多前述的示例中,对延迟的约束是以帧计数为单位表示的对帧重排序延迟的约束。更一般地,对延迟的约束是以帧计数为单位表示或以秒、毫秒或另一时间量度为单位表示的对延时的约束。例如,对延迟的约束可以被表示为绝对的时间量度,比如I秒或0.5秒之类。编码器可以将这样的时间量度转换为帧计数(考虑视频的帧率),之后编码该视频从而使得视频序列的多个帧之间的帧间相关性与该帧计数一致。或者,不论帧重排序和帧间相关性如何,该编码器可以使用该时间量度来限制延时可以被用于平滑编码视频的比特率、编码复杂度、网络带宽等等中的短期波动的程度。解码器可以使用该时间量度来确定何时可以从解码图像缓冲器中输出帧。
[0079]对延迟的约束可以在传输器端和接收器端之间协商,以便在响应度(缺少延时)与平滑编码视频的比特率中的短期波动的能力、平滑编码复杂度中的短期波动的能力、平滑网络带宽中的短期波动的能力和/或其它从增加的延时中获益的因素之间做出权衡。在这样的协商中,以独立于帧率的方式建立和表征对延迟的约束可能是有帮助的。之后可以考虑该视频的帧率,在编码和解码期间应用该约束。或者,可以不管该视频的帧率如何,在编码和解码期间应用该约束。
[0080]E.用于设置和输出语法元素的一般化技术
图6示出了用于设置和输出促进降低延迟的解码的语法元素的示例技术(600)。例如,参考图2a和2b描述的实时通信工具或编码工具执行该技术(600)。可替换地,另一工具执行该技术(600)。
[0081 ] 首先,该工具设置(610)指示与视频序列的多个帧之间的帧间相关性一致的对延迟(例如帧重排序延迟、以时间量度为单位的延迟)的约束的一个或多个语法元素。当该工具包含视频编码器时,相同的工具还可以接收帧,编码帧来产生编码数据(使用与对帧重排序延迟的约束一致的帧间相关性)并且输出该编码数据来用于存储或传输。
[0082]典型地,对帧重排序延迟的约束是对该视频序列中的任何帧都允许的重排序延迟。可以以各种方式来表示该约束,但是,不同的方式具有不同的其它含义。例如,可以用按照输出顺序可以先于一个给定帧但是按照编码顺序跟随该给定帧的帧的最大计数来表示该约束。或者,该约束可以被表示为在该视频序列中的任何帧的编码顺序与输出顺序之间的最大差。或者,集中在单独的帧上,该约束可以被表示为与该视频序列中给定的特定帧相关联的重排序延迟。或者,集中在一组帧上,该约束可以被表示为与该视频序列的该组帧相关联的重排序延迟。或者可以以一些其它方式来表示该约束。
[0083]接下来,该工具输出(620)该(多个)语法元素。这促进了对于按照多个帧的输出顺序何时重建帧为输出做好准备的确定。该(多个)语法元素可以被输出为基本编码视频比特流中的序列参数集或图像参数集的一部分、还包含用于该帧的编码数据的媒体存储文件或媒体传输流的语法的一部分、媒体特性协商协议的一部分(例如在系统级协商中流或会话参数值的交换期间)、与用于该帧的编码数据多路复用的媒体系统信息的一部分、或与用于该帧的编码数据有关的媒体元数据的一部分(例如在SEI消息或VUI消息中)。可以输出不同的语法元素来指示存储器容量需求。例如,缓冲器尺寸语法元素(例如maX_dec_frame_buffering)可以指示DPB的最大尺寸,而巾贞存储器语法元素(例如num_reorder_frames)可以指示用于重排序的帧存储器的最大尺寸。
[0084]可以以各种方式来表示对延迟的约束值,如章节V.C中描述的那样。例如,该工具输出指示该(多个)语法元素存在和不存在的标记。如果该标记指示该(多个)语法元素不存在,那么对延迟的约束是未定义的或者具有默认值。否则,该(多个)语法元素遵循并指示对延迟的约束。或者,该(多个)语法元素的一个值指示对延迟的约束是未定义的或具有默认值,而该(多个)语法元素的其它可能值指示对延迟的约束的整数计数。或者,对于其中对延迟的约束是对帧重排序延迟的约束的情况,该(多个)语法元素的一个给定值相对于用于重排序的帧存储器的最大尺寸指示对帧重排序延迟的约束的整数值,其由诸如num_reorder_frames之类的不同语法元素指示。可替换地,以一些其它方式来表示对延迟的约束。
[0085]在一些实现中,根据时间层次来组织视频序列的各帧。在这种情况下,不同的语法元素可以针对该时间层次的不同时间层来指示对帧重排序延迟的不同约束。
[0086]F.用于接收和使用语法元素的一般化技术
图7示出了用于接收和使用促进降低延迟的解码的语法元素的示例技术(700)。例如,参考图2a和2b描述的实时通信工具或回放工具执行该技术(700)。可替换地,另一工具执行该技术(700)。
[0087]首先,该工具接收和解析(710)指示对延迟(例如帧重排序延迟、以时间量度为单位的延迟)的约束的一个或多个语法元素。例如,该解析包含从比特流中读取指示对延迟的约束的一个或多个语法元素。该工具还接收(720)用于视频序列的多个帧的编码数据。该工具可以解析该(多个)语法元素并且,基于(多个)语法元素,确定对延迟的约束。典型地,对帧重排序延迟的约束是对于该视频序列中的任何帧所允许的重排序延迟。可以以各种方式表不该约束,但是,不同方式具有不同的其它含义,正如前一章节描述的那样。该(多个)语法元素可以作为基本编码视频比特流中的序列参数集或图像参数集的一部分、用于媒体存储文件或媒体传输流的语法的一部分、媒体特性协商协议的一部分、与该编码数据多路复用的媒体系统信息的一部分、或与该编码数据有关的媒体元数据的一部分来发信号通知。该工具可以接收和解析指示存储器容量需求的不同语法元素,例如诸如max_deC_frame_buffering之类的缓冲器尺寸语法元素和诸如num_reorder_frames之类的巾贞存储器语法元素。
[0088]可以以各种方式表示对延迟的约束值,正如章节V.C中描述的那样。例如,该工具接收指示该(多个)语法元素存在或不存在的标记。如果该标记指示该(多个)语法元素不存在,那么对延迟的约束是未定义的或者具有默认值。否则,该(多个)语法元素遵循并指示对延迟的约束。或者,该(多个)语法元素的一个值指示对延迟的约束是未定义的或具有默认值,而该(多个)语法元素的其它可能值指示对延迟的约束的整数计数。或者,对于其中对延迟的约束是对帧重排序延迟的约束的情况,该(多个)语法元素的一个给定值相对于用于重排序的帧存储器的最大尺寸指示对帧重排序延迟的约束的整数计数,其由诸如num_reorder_frames之类的不同语法元素指示。可替换地,以一些其它方式发信号通知对延迟的约束。
[0089]回到图7,该工具至少解码(730)编码数据中的一些来重建一帧。该工具输出(740)所重建的帧。在这样做时,该工具可以使用对延迟的约束来确定例如根据该视频序列的各帧的输出顺序所重建的帧何时为输出做好准备。
[0090]在一些实现中,根据时间层次来组织该视频序列中的各帧。在这种情况下,不同的语法元素可以针对该时间层次的不同时间层指示对帧重排序延迟的不同约束。该工具可以根据该输出的时间分辨率来选择对帧重排序延迟的不同约束中的一个。
[0091]考虑到可以将所公开的本发明的原理应用到许多可能的实施例中,应当认识到所说明的实施例仅仅是本发明的优选示例并且不应当被看作是对本发明范围的限制。相反地,本发明的范围由随附的权利要求限定。因此本人要求进入这些权利要求的范围和精神内的所有发明作为我的发明来保护。
【权利要求】
1.在实现视频解码器的计算系统中,一种方法包括: 接收和解析一个或多个指示对延迟的约束的语法元素; 接收视频序列的多个帧的编码数据; 利用该视频解码器,至少解码该编码数据中的一些来重建该多个帧中的一个;以及 输出该重建中贞。
2.根据权利要求1所述的方法,其中对延迟的约束是对帧重排序延迟的约束,该方法还包括: 解析该一个或多个语法元素; 基于该一个或多个语法元素确定对帧重排序延迟的约束;以及 使用对帧重排序延迟的该约束来确定根据该视频序列的该多个帧的输出顺序该重建帧何时为输出做好准备。
3.根据权利要求2所述的方法,其中根据时间层次组织该视频序列的该多个帧,其中不同的语法元素针对该时间层次的不同时间层指示对帧重排序延迟的不同约束,该方法还包括根据输出的时间分辨率选择对帧重排序延迟的不同约束中的一个。
4.根据权利要求1所述的方法,其中对延迟的约束是对帧重排序延迟的约束,并且其中对帧重排序延迟的该约束是对于该视频序列中的任何帧所允许的重排序延迟。
5.根据权利要求1所述的方法,其中该一个或多个语法元素和该编码数据作为用于编码视频比特流的语法的一部分而被发信号通知,该方法还包括:` 接收和解析指示解码图像缓冲器的最大尺寸的缓冲器尺寸语法元素和指示用于重排序的帧存储器的最大尺寸的帧存储器语法元素,其中该缓冲器尺寸语法元素和该帧存储器语法元素不同于指示对延迟的约束的该一个或多个语法元素。
6.根据权利要求1所述的方法,其中该一个或多个语法元素作为序列参数集、图像参数集、用于还包含该编码数据的媒体存储文件的语法、用于还包含该编码数据的媒体传输流的语法、媒体特性协商协议、与该编码数据多路复用的媒体系统信息或与该编码数据有关的媒体元数据的一部分而被发信号通知。
7.根据权利要求1所述的方法,其中: 该一个或多个语法元素的一个可能值指示对延迟的约束是未定义的或具有默认值,并且其中该一个或多个语法元素的其它可能值指示对延迟的约束的整数计数;或者 该一个或多个语法元素的一个值相对于用于重排序的帧存储器的最大尺寸指示对延迟的约束的整数计数,用于重排序的帧存储器的最大尺寸由不同的语法元素指示。
8.在计算系统中,一种方法包括: 设置一个或多个指示对延迟的约束的语法元素,对延迟的该约束与视频序列的多个帧之间的帧间相关性一致;以及 输出该一个或多个语法元素,从而促进对于根据该多个帧的输出顺序重建帧何时为输出做好准备的确定。
9.根据权利要求8所述的方法,其中对延迟的约束是对帧重排序延迟的约束,并且其中该计算系统实现视频编码器,该方法还包括: 接收该视频序列的该多个帧; 利用该视频编码器,编码该多个帧来产生编码数据,其中该编码使用与对帧重排序延迟的约束一致的帧间相关性;以及
输出该编码数据以用于存储或传输。
10.一种包括处理器、存储器和存储装置的计算系统,该计算系统被适配成执行包括以下步骤的方法: 接收和解析一个或多个指示对帧重排序延迟的约束的语法元素; 基于该一个或多个语法元素确定对帧重排序延迟的约束,其中对帧重排序延迟的该约束用按照输出顺序能够先于一个给定帧但是按照编码顺序跟随该给定帧的帧的最大计数来表示; 接收用于视频序列的多个帧的编码数据; 利用该视频解码器,至少解码该编码数据中的一些来重建该多个帧中的一个;以及输出该重建帧,包含使用对帧重排序延迟的约束来确定根据该视频序列的该多个帧的输出顺序该重建帧何时为输出做好准备。
【文档编号】H04N19/46GK103621085SQ201180071993
【公开日】2014年3月5日 申请日期:2011年10月11日 优先权日:2011年6月30日
【发明者】G.J.萨利文 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1