CN102447906B - 低延时视频解码 - Google Patents

低延时视频解码 Download PDF

Info

Publication number
CN102447906B
CN102447906B CN201110414227.7A CN201110414227A CN102447906B CN 102447906 B CN102447906 B CN 102447906B CN 201110414227 A CN201110414227 A CN 201110414227A CN 102447906 B CN102447906 B CN 102447906B
Authority
CN
China
Prior art keywords
picture
decoding
syntactic element
delay
instrument
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110414227.7A
Other languages
English (en)
Other versions
CN102447906A (zh
Inventor
吴勇军
G.纪
S.萨瓦尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102447906A publication Critical patent/CN102447906A/zh
Application granted granted Critical
Publication of CN102447906B publication Critical patent/CN102447906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/1883Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

用于针对强调低延迟的实时通信应用减少视频解码中的延时的技术和工具。例如,工具(比如视频解码器)选择低延时解码模式。基于所选解码模式,工具调节输出定时确定、画面边界检测、飞行中的画面数目和/或抖动缓冲器利用。对于低延时解码,工具可以使用帧计数语法元素来设置用于解码画面缓冲器的初始输出延迟,并且工具可以使用辅助定界符语法元素来检测画面边界。为了进一步减少低延时解码时的延迟,工具可以减少用于多线程解码的飞行中的画面数目并且减少或者去除抖动缓冲器。工具接收编码数据、根据所选解码模式执行解码以重建画面、并且输出画面用于显示。

Description

低延时视频解码
背景技术
工程师使用压缩(也称为源码化或者源编码)来减少数字视频的位率。压缩通过将视频信息转换为更低位率形式来减少存储和传送信息的成本。解压缩(也称为解码)从压缩的形式重构原信息的版本。“编解码器(codec)”为编码器/解码器系统。
在过去二十年,已经采用包括H.261、H.262(MPEG-2)和H.263标准以及MPEG-1和MPEG-4标准的各种视频编解码器标准。近来,已经采用H.264标准(有时称为AVC或者14496-10)和VC-1标准。关于更多细节,参见相应标准的代表性版本。视频编解码器标准通常为编码视频位流的语法定义选项,从而详述当在编码和解码中使用特定特征时必须在用于视频序列的位流中的参数。在许多情况下,视频编解码器标准也提供与解码器为了在解码时实现正确结果而应当执行的解码操作有关的细节。
压缩的基本目标在于提供良好的速率-失真性能。因而,对于特定位率,编码器尝试提供最高视频质量。或者对于原视频的特定质量/保真度水平,编码器尝试提供最低位率的编码视频。在实践中,根据使用场景,比如编码时间、编码复杂度、编码资源、解码时间、解码复杂度、解码资源、总延迟和/或回放流畅度之类的考虑也影响在编码和解码期间作出的决定。
例如,考虑比如从存储设备的视频回放、从通过网络连接流化的编码数据的视频回放和视频转码(从一种位速率到另一位率或者从一个标准到另一标准)之类的使用场景。在编码器侧,这样的应用可以允许完全对时间不敏感的离线编码。因此,编码器可以增加编码时间并且增加在编码期间使用的资源,以发现最高效的视频压缩方式,并且由此提高速率-失真性能。如果在解码器侧也可接受少量延迟(例如在启动时3-10秒),则编码器可以例如通过利用来自序列中的向前更远画面的画面间相关性来进一步提高速率-失真性能。
对于多数视频回放场景,在解码器侧,在回放开始之前可接受3-10秒或者更多延迟,只要回放在开始之后无中断即可。受制于这个流畅回放约束,解码器免于贡献附加资源用于多线程解码或者多处理器解码。事实上,在一些情况下,解码器可以增加延时以便允许更高效利用解码资源。
另一方面,考虑比如远程桌面会议、监控视频、视频电话和其它实时通信场景之类的使用场景。这样的应用对时间敏感。在记录输入画面与回放输出画面之间的低延时是性能方面的关键因素。当在实时通信场景中应用适合于非实时通信的编码/解码工具时,总延时经常高到不可接受。这些工具在编码和解码期间引入的延迟可以提高普通视频回放的性能,但是它们破坏实时通信。
发明内容
概括而言,具体实施方式给出了用于减少视频解码时的延时的技术和工具。该技术和工具帮助减少延时以便提高实时通信中的响应度。例如,这些技术和工具通过移除或者甚至消除在解码期间的各种阶段处的缓冲来减少总延时,这提高了响应度,但是可能在其它方面引起某个量的性能损失。
根据这里描述的技术和工具的一个方面,一种工具(比如视频解码器、具有视频解码器的实时通信工具或者具有视频解码器的其它工具)选择低延时解码模式,该解码模式的特征在于与其他解码模式相比的更低延时解码。至少部分基于所选解码模式,工具调节一个或者多个解码方面以有助于低延时解码。例如工具调节输出定时确定、画面边界检测、飞行中的画面数目和/或抖动缓冲器利用率。工具接收用于视频序列的位流中的编码数据,并且利用视频解码器根据所选的解码模式对编码数据中的至少一些编码数据进行解码以重建画面。工具然后输出画面用于显示。
在低延时解码模式中,输出定时确定可以使用位流中的的帧计数语法元素(如果存在)来设置用于解码画面缓冲器(DPB)(例如,如在H.264标准中定义)的初始输出延迟。帧计数语法元素指示帧重新排序延迟。例如,帧重新排序延迟是按照编码顺序可以先于给定帧、但是按照显示顺序跟随给定帧的帧的最大计数。在一些实施方式中,帧计数语法元素作为用于视频序列的视频可用性信息(VUI)参数而用信号通知的num_recorder_frames语法元素。
比较而言,其它解码模式向视频回放提供更高延时。在其它解码模式中,例如当DPB已满时开始从DPB输出画面,因而初始输出延迟依赖于DPB的大小。使用帧计数语法元素来确定初始输出延迟可以允许输出更早5帧或者更多帧(在许多情况下高达16帧)开始。
在低延时解码模式中,画面边界检测可以使用位流中的辅助定界符语法元素来发现在画面之间的边界。在一些实施方式中,辅助定界符语法元素为具有网络抽象层(NAL)单元类型的网络抽象层(NAL)单元,该NAL单元类型向解码器指定它们为画面边界定界符。比较而言,其它解码模式例如使用分片层语法元素来检测画面边界,这由于缓冲一个附加单位的分片层编码数据用于画面边界发现而增添延迟。
在用于多线程解码实施方式的低延时解码模式中,飞行中的画面数目可以被减少或者甚至设置成单个画面。比较而言,其它解码模式允许用于多线程解码实施方式的飞行中的多个画面,这提高处理器利用率、但是增添延迟和附加画面缓冲。
在低延时解码模式中,可以调节对一个或者多个抖动缓冲器的使用以使总延时减少优先于回放流畅度。例如抖动缓冲器为输入缓冲器(该缓冲器通常在解码之前存储编码数据以便平滑编码数据递送时的波动和/或在画面之间的位率波动),并且一旦用于给定画面的编码数据在输入缓冲器中可用就针对给定画面开始解码。或者,抖动缓冲器为输出缓冲器(该缓冲器通常存储来自解码的输出以便平滑解码复杂度的波动),并且输出缓冲器被设置成最小大小或者被完全绕过。比较而言,在其它解码模式中,输入缓冲器和输出缓冲器被设置为使回放流畅度优先于总延时减少。例如在解码开始之前将输入缓冲器填充至阈值充满度,并且输出缓冲器在显示之前存储3-5个解码画面。
根据这里描述的技术和工具的另一方面,一种工具(比如视频编码器、具有视频编码器的实时通信工具或者具有视频编码器的其它工具)选择有助于低延时解码的编码模式。工具至少部分基于所选编码模式调节一个或者多个编码方面以便有助于低延时解码。例如工具针对输出定时确定和/或画面边界检测来调节编码。工具接收用于视频序列的画面,并且利用视频编码器来根据所选编码模式对画面进行编码以产生编码数据。工具然后在位流中输出编码数据,其中位流包括解码器可以用于低延时解码的语法元素。可以将位流中的编码数据构造为在其它方面有助于低延时解码。例如可以根据画面组(GOP)布置(比如IPPPIPPP…)来编码画面,其中在仅有帧内编码内容的画面(I画面)之后有具有某些参考先前画面的前向预测内容、但是无画面内容参考按照显示顺序更晚的画面的画面(P画面)。
根据这里描述的技术和工具的另一方面,一种工具接收用于视频序列的画面并且对画面进行编码以产生编码数据。编码可以通过设置与帧重新排序延迟一致的画面间相关性来有助于低延时解码。编码也可以通过在位流中插入辅助定界符语法元素来有助于低延时解码,其中每个辅助定界符语法元素标识画面边界。工具在位流中输出编码数据,该位流包括指示帧重新排序延迟的帧计数语法元素和/或包括辅助定界符语法元素。
根据这里描述的技术和工具的另一方面,一种工具接收在用于视频序列的位流中的编码数据。位流包括指示帧重新排序延迟的帧计数语法元素(例如在视频可用性信息中)。位流也包括辅助定界符语法元素(例如作为由解码器理解为指示画面边界的NAL单元)。当工具对编码数据进行解码以重建画面时,工具使用辅助定界符语法元素来检测画面边界。工具输出画面用于显示,其中使用帧计数语法元素来确定用于DPB的初始输出延迟。为了进一步减少延时,工具可以将飞行中的画面数目设置成一(由此限制可以同时对多少画面解码)和/或设置抖动缓冲器的使用以使延时减少优先于回放流畅度。
本发明的前述和其它目的、特征和优点将根据参照附图进行的下文具体实施方式而变得更清楚。
附图说明
图1是本发明的一些描述实施例可以在其中实现的示例计算环境的图。
图2a和2b是一些描述的实施例可以在其中实现的示例网络环境的图。
图3是与之结合可以实现一些描述的实施例的示例编码器的图。
图4是与之结合可以实现一些描述的实施例的示例解码器的图。
图5是示出经受与帧计数语法元素一致的延迟的、用于示例系列中的画面的编码顺序和显示顺序的图。
图6是包括辅助定界符语法元素的示例位流的图。
图7是示出了用于以有助于低延时解码的方式对视频进行编码的示例技术的流程图。
图8是示出了用于低延时解码的示例技术的流程图。
图9是示出了用于以有助于低延时解码的方式对视频有选择地进行编码的示例技术的流程图。
图10是示出了用于在低延时解码模式中对视频有选择地进行解码的示例技术的流程图。
具体实施方式
具体实施方式给出用于减少视频解码时的延时的技术和工具。这些技术和工具帮助减少延时以便提高实时通信中的响应度。
在视频编码/解码场景中,一些在接收输入画面的时间与回放画面的时间之间的延迟不可避免。画面由编码器编码、向解码器递送并且由解码器解码,并且由对编码资源、解码资源和/或网络带宽的实际限制导致某一数量的延时。
然而可避免其它延时。例如编码器和解码器可以引入延时以提高速率-失真性能(例如利用来自序列中的向前更远画面的画面间相关性)、允许更高效利用处理能力(例如为多线程创造更多机会)或者使流畅回放更加可能(例如通过在解码之前缓冲更多编码数据,以及在解码之后缓冲更多解码数据)。虽然可能有在速率-失真性能、处理器利用或者回放流畅度方面的代价,但是可以减少这样的延时。
利用这里描述的技术和工具,解码延时通过减少或者甚至消除在一个或者多个不同解码阶段的延迟来减少。例如通过使用以下特征中的一个或者多个特征来减少解码延时:
根据帧计数语法元素设置的初始输出延迟。在一些解码系统中,解码器在解码画面缓冲器(DPB)中存储解码画面。解码器可以使用缓冲画面作为用于运动补偿的参考画面。缺省地,解码器也延迟用于显示的输出直至DPB已满。为了减少延时,解码器可以代之以使用帧计数语法元素来确定用于DPB的初始输出延迟。以这一方式,解码器可以加速从DPB的初始输出。
使用辅助定界符语法元素的画面边界检测。在一些解码系统中,解码器通过评估用于画面部分(分片)的语法元素并且确定该部分是下一画面而非当前画面的部分,来检测用于位流中的下一画面的边界。为了减少延时,解码器可以代之以通过扫描寻找编码器在画面边界插入的定界符语法元素来检测画面边界。以这一方式,解码器可以通过避免缓冲下一画面的分片来加速画面边界发现。
减少输入和输出缓冲器。在一些解码系统中,解码器在解码之前在输入缓冲器中存储编码数据(以平滑递送速率或者位率的波动)并且在输出缓冲器中存储解码画面(以平滑解码复杂度的波动)。为了减少延时,解码器可以代之以一旦在输入缓冲器中针对给定画面的编码数据可用就开始进行针对该画面的解码,并且解码器可以消除输出缓冲器。
限制飞行中的画面数目。在一些解码系统中,解码器使用多线程并且同时执行针对多个画面的解码任务。这通常提高处理器利用率但是增加了延迟。为了减少延时,解码器可以减少同时解码的画面数目或者甚至限制解码为一次单个画面。
利用这些减少解码延时的方式,可以针对远程桌面会议、视频电话、视频监控、网络摄像视频和其它实时通信应用来改善延迟。仅考虑延时,用于实时通信应用的理想延迟是可以利用上述设置来实现0画面延迟(一个压缩画面输入、一个解码/未压缩画面输出)。受制于低延时约束,解码器仍然可以通过使用多线程或者多个处理核心来提高解码性能,但是低延时约束可将这样的机会限于利用附加解码资源。
在实时通信场景中,编码器和解码器通常为端到端通信系统的部分。即使未按照标准或者格式指定符合低延时解码的决定,编码器仍然做出这些决定,并且解码器预计视频被相应地编码。对于这里描述的一些创新,编码器在位流中插入语法元素以有助于低延时解码。作为选择,另一处理工具可以插入这样的语法元素。这里描述的其它创新无需来自编码器或者其它处理工具的这种协作以插入有助于低延时解码的语法元素。
这里描述的一些创新参照H.264标准特有的语法元素和操作来说明。例如帧计数语法元素可以是用于视频序列的视频可用性信息(VUI)中的num_recorder_frames语法元素。作为另一示例,定界符语法元素可以是网络抽象层(NAL)单元类型为9的NAL单元。也可以针对其它标准或者格式实现这样的创新。
更一般而言,对这里描述的示例的各种替代是可能的。可以通过改变流程图中所示阶段次序、通过拆分、重复或者省略某些阶段等来更改参照流程图描述的某些技术。可以组合或者单独使用针对视频解码的减少延时的各种方面。不同实施例使用所描述的技术和工具中的一种或者多种技术或者工具。这里描述的技术和工具中的一些技术和工具解决背景技术中提到的问题中的一个或者多个问题。通常,一种给定的技术/工具未解决所有这样的问题。
I.示例计算环境。
图1图示了所描述的技术和工具中的若干技术和工具可以在其中实现的适当计算环境(100)的广义示例。计算环境(100)并非意图暗示关于使用或者功能范围的任何限制,因为这些技术和工具可以在多种通用或者专用计算环境中实现。
参照图1,计算环境(100)包括一个或者多个处理单元(110,115)和存储器(120,125)。在图1中,在虚线内包括这个最基本配置(130)。处理单元(110,115)执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、在专用集成电路(ASIC)中的处理器或者任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或者协处理单元(115)。存储器(120,125)可以是处理单元(多个)可访问的易失性存储器(例如寄存器、高速缓存器、RAM)、非易失性存储器(例如ROM、EEPROM、闪存等)或者二者的某一组合。存储器(120,125)以适合于由处理单元(多个)执行的计算机可执行指令这一形式存储实现用于低延时解码的一种或者多种创新的软件(180)。
计算机环境可以具有附加特征。例如计算环境(100)包括存储设备(140)、一个或者多个输入设备(150)、一个或者多个输出设备(160)和一个或者多个通信连接(170)。互连机制(未示出)(比如总线、控制器或者网络)互连计算环境(100)的部件。通常,操作系统软件(未示出)为在计算环境(100)中执行的其它软件提供操作环境,并且协调计算环境(100)的部件的活动。
有形存储设备(140)可以可移动或者不可移动并且包括可以用来以非瞬态方式存储信息并且可以在计算机环境(100)内访问的磁盘、磁带或者盒、CD-ROM、DVD或者任何其它介质。存储设备(140)存储用于实现用于低延时解码的一种或者多种创新的软件(180)的指令。
输入设备(多个)(150)可以是向计算环境(100)提供输入的触摸输入设备(比如键盘、鼠标、笔或者跟踪球)、语音输入设备、扫描设备或者其他设备。对于视频编码,输入设备(多个)(150)可以是接受以模拟或者数字形式的视频输入的视频卡、TV调谐器卡或者相似设备,或者将视频样本读入计算环境(100)中的CD-ROM或者CD-RW。输出设备(多个)(160)可以是从计算环境(100)提供输出的显示器、打印机、扬声器、CD-写入器或者其他设备。
通信连接(多个)(170)使能通过通信介质与另一计算实体的通信。通信介质在调制数据信号中传送信息(比如计算机可执行指令、音频或者视频输入或者输出或者其它数据)。调制数据信号是如下信号,该信号的一个或者多个特性以在信号中编码信息这样的方式来设置或者改变。举例而言而非限制,通信介质包括用电、光学、RF或者其它载体实现的有线或者无线技术。
可以在计算机可读介质的一般背景中描述技术和工具。计算机可读介质是可以在计算环境内访问的任何可用的有形介质。举例而言而非限制,就计算环境(100)而言,计算机可读介质包括存储器(120)、存储设备(140)和任何上述介质的组合。
可以在目标实际或者虚拟处理器上的计算环境中执行的计算机可执行指令(比如在程序模块中包括的那些计算机可执行指令)的一般背景中描述技术和工具。一般而言,程序模块包括执行特定任务或者实现特定抽象数据类型的例程、程序、库、对象、类、部件、数据结构等。可以在各种实施例中根据希望在程序模块之间组合或者拆分程序模块的功能。可以在本地或者分布式计算环境内执行用于程序模块的计算机可执行指令。
这里可互换使用术语“系统”和“设备”。除非上下文另有明示,任何术语都不意味着对计算系统或者计算设备类型的任何限制。一般而言,计算系统或者计算设备可以是本地或者分布式的,并且可以包括专用硬件和/或通用硬件与实现这里描述的功能的软件的任何组合。
为了陈述,具体实施方式使用比如“确定”和“选择”这样的术语来描述计算环境中的计算机操作。这些术语是针对由计算机执行的操作的高级抽象化而不应与人类执行的动作混淆。与这些术语对应的实际计算机操作根据实施方式而变化。
II.示例网络环境。
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境。编码器(220)和解码器(270)使用适当通信协议通过网络(250)连接。网络(250)可以包括因特网或者另一计算机网络。
在图2a所示网络环境(200)中,每个实时通信(RTC)工具(210)包括用于双向通信的编码器(220)和解码器(270)。双向通信可以是视频会议、视频电话呼叫或者其它两方通信场景的部分。虽然图2a中的网络环境(200)包括两个实时通信工具(210),但是网络环境(200)可以代之以包括参与多方通信的三个或者更多实时通信工具(210)。
实时通信工具(210)管理编码器(220)的编码。图3示出了可以包括在实时通信工具(210)中的示例编码器(300)。作为选择,实时通信工具(210)使用其他编码器。实时通信工具(210)也管理解码器(270)的解码。图4示出了可以包括在实时通信工具(210)中的示例解码器(400)以及输入和输出缓冲器。作为选择,实时通信工具(210)使用其他解码器。
在图2b所示网络环境(201)中,编码工具(212)包括编码器(220),该编码器编码用于向包括解码器(270)的多个回放工具(214)递送的视频。可以针对视频监控系统、网络摄像监视系统、远程桌面会议演示或者其中对视频编码并且从一个位置向一个或者多个其它位置发送视频的其它场景提供单向通信。虽然图2b中所示网络环境(201)包括两个回放工具(214),但是网络环境(201)可以包括更多或者更少的回放工具(214)。一般而言,回放工具(214)与编码工具(212)进行通信以确定回放工具(214)要接收的视频流。回放工具(214)接收流、缓冲所接收的编码数据适当时段并且开始解码和回放。
图3示出了可以包括在编码工具(212)中的示例编码器(300)。作为选择,编码工具(212)使用其他编码器。编码工具(212)也可以包括用于管理与一个或者多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出了可以包括在回放工具(214)中的示例解码器(400)以及输入和输出缓冲器。作为选择,回放工具(214)使用其他解码器。回放工具(214)也可以包括用于管理与编码工具(212)的连接的客户端侧控制器逻辑。
在一些方面,实时通信工具(210)、编码工具(212)和回放工具(214)独立于编解码器,因为它们可以与任何可用的视频编码器和解码器一起工作。例如给定编码器(220)可以产生与SMPTE421M标准(也称为VC-1标准)、ISO-IEC14496-10标准(也称为H.264或者AVC)、其他标准或者专用格式相符的输出,而对应解码器(270)接受来自编码器(220)的编码数据。
在其它方面,实时通信工具(210)、编码工具(212)和回放工具(214)依赖于编解码器,因为它们做出的决定可能依赖于用于特定标准或者格式的位流语法。例如使用语法元素来标记画面边界或者使用语法元素来指示最大帧计数值可以是给定标准或者格式特有的。
III.示例编码器。
图3是与之结合可以实现一些描述的实施例的示例编码器系统(300)的框图。编码器系统(300)接收源视频画面序列(305)并且产生位流中的编码数据(395)作为向存储设备、缓冲器或者通信连接的输出。编码数据(395)包括有助于低延时解码的语法元素。
术语“画面”一般是指源、编码或者重建的图像数据。对于渐进视频,画面为渐进视频帧。对于交织视频,画面根据上下文可以指示交织视频帧、帧的顶场或者帧的底场。源视频画面一般为来自视频源(比如相机、存储介质或者通信连接)的视频画面。图3按照显示顺序示出了输入帧F7、F8和F9
编码器系统(300)可以包括在编码之前执行视频画面预处理(例如滤波)的预处理器(未示出)。编码系统(300)包括压缩视频画面(305)并且输出编码数据位流(395)的核心编码器(330)。一般而言,核心编码器(330)包括执行编码任务(比如运动估计和补偿、频率变换、量化和熵编码)以及用于重建在运动估计和补偿时使用的参考画面的解码任务的多个编码模块(340)。画面缓冲器(350)存储用于在运动估计和补偿时使用的重建画面。图3示出了在画面缓冲器(350)中的重建帧F0、F2、F3、F3、F4和F6。核心编码器(330)和编码模块(340)执行的确切操作可以根据压缩格式而变化。输出位流的格式可以是WindowsMediaVideo格式、VC-1格式、MPEG-x格式(例如MPEG-1、MPEG-2或者MPEG-4)、H.26x格式(例如H.261、H.262、H.263或者H.264)或者其它格式。
在封闭的端到端系统中,解码器和编码器系统(300)可以被配置成使用扩展或者偏离压缩格式的附加特征。具体而言,来自编码器系统300的输出位流可以包括有助于低延时解码的附加语法元素。例如位流包括对应解码器可以使用来减少解码延时的帧计数语法元素和/或辅助定界符语法元素。
编码器系统(300)可以是能够以多个编码模式(比如用于实时通信的低延时编码模式、转码转模式和用于从文件或者流回放的媒体的普通编码模式)中的任何编码模式进行操作的通用编码工具。核心编码器(330)可以实现为操作系统模块、应用库的部分或者独立应用。
在图3中,核心编码器(330)显露接口(332),其它软件(例如实时通信工具、媒体编码工具)可以通过该接口控制对用于编码器系统(300)的编码模式的选择。例如,其它软件可以设置或者不设置低延时模式标志,该标志又控制其它编码参数/操作。如果设置低延时模式标志,则核心编码器(330)在位流中的画面边界处插入辅助定界符语法元素并且发信号通知在位流中的帧计数语法元素以控制DPB输出定时。在低延时模式中,核心编码器(330)也可以做出符合低延时编码和解码的各种编码决定。例如核心编码器(330)设置编码类型使得画面按照诸如IPPPIPPP…之类的GOP布置,其中在I画面(仅有帧内编码内容)之后有一个或者多个P画面(每个P画面具有参考先前画面的前向预测内容),但是无画面内容参考根据显示顺序的更晚画面。如果未设置低延时模式标志,则核心编码器(330)不发信号通知辅助定界符语法元素以指示画面边界。更一般而言,通过接口(332),其它软件可以控制用于编码器系统(300)的其它编码参数或者设置。
IV.示例解码器。
图4是与之结合可以实现一些描述的实施例的示例解码器系统(400)的框图。解码器系统(400)接收位流中的编码数据(405)并且产生重建画面(495)作为用于显示、存储或者通信连接的输出。编码数据(405)包括有助于低延时解码的语法元素。
解码系统(400)包括接收编码数据(405)(例如来自网络连接)并且暂存编码数据(405)的输入缓冲器(410)。在常规解码场景中,缺省地,输入缓冲器(410)暂存编码数据(405)直至达到充满度阈值(406)为止。在那一点处,在逐个画面的基础上(按照编码顺序)从输入缓冲器(410)向核心解码器(430)传送编码数据(405)。随着解码继续,向输入缓冲器添加新编码数据,而向解码器传送剩余在输入缓冲器中的最旧编码数据。
对于常规解码场景,输入缓冲器(410)平滑网络递送速率的波动(例如由网络带宽的改变引起)、平滑在视频序列中的画面之间的输入间隔的变化和/或平滑画面编码大小的波动(例如由相应画面的复杂度差异引起)。可以根据用于位流的预计数据速率和/或缓冲器(410)的大小设置充满度阈值(406)。输入缓冲器(410)因此引入解码和回放延迟,而目的在于提高回放流畅度,以便回放一旦开始就无中断。输入缓冲器(410)引入的延迟也可以向解码器(430)提供使用附加解码资源用于多线程解码的机会。在低延时解码场景中,可以明显减少输入缓冲器(410)引入的延迟。
解码系统(400)包括解压编码数据(405)并且输出重建画面(495)的核心解码器(430)。一般而言,核心解码器(430)包括执行解码任务(比如熵解码、逆量化、逆频率变换和运动补偿)的多个解码模块(440)。DPB(450)存储用于在运动补偿时使用的重建画面。图4示出了在画面缓冲器(450)中的重建帧F0、F2、F3、F3、F4和F6。核心解码器(430)和解码模块(440)执行的确切操作可以根据压缩格式而变化。输入位流的格式可以是WindowsMediaVideo格式、VC-1格式、MPEG-x格式(例如MPEG-1、MPEG-2或者MPEG-4)、H.26x格式(例如H.261、H.262、H.263或者H.264)或者其它格式。
DPB(450)暂存在运动补偿时使用的重建画面。在常规视频解码和回放中,缺省地,一旦DPB(450)已满就从DPB(450)输出重建画面。用于输出定时的规则依赖于DPB(450)的大小(如在位流中的语法元素所指示)和在位流中的其它语法元素(例如画面顺序计数语法元素)。例如DPB(450)在向输出缓冲器(480)输出任何帧之前缓冲10帧。DPB(450)因此添加在回放开始之前的延迟。对照而言,在低延时解码场景中,输出定时可以依赖于位流中的帧计数语法元素,并且可以在DPB(450)已满之前从DPB(450)输出重建画面。
输出缓冲器(480)在解码之后暂存重建画面。输出缓冲器(480)由重建画面填充直至达到默认画面数目为止,在这一点处,按照显示顺序输出重建画面。随着解码继续,向输出缓冲器(480)添加新重建画面,而输出该输出缓冲器(480)中剩余的最旧重建画面用于显示。
对于常规解码场景,缓冲重建画面帮助平滑用于相应画面的解码时间的波动(例如归因于解码复杂度的差异)。输出缓冲延迟例如为解码器设置的恒定画面数目。图4示出了在输出缓冲器(480)中缓冲的用于常规解码的三帧F2、F3和F4。输出缓冲器(480)因此引入目的在于提高回放流畅度以便回放一旦开始就无中断的延迟。在低延时解码场景中,可以明显减少输出缓冲器(480)引入的延迟或者绕过输出缓冲器(480)。图4示出了无用于低延时解码的输出缓冲器,因而回放更早三帧开始。
在封闭的端到端系统中,解码器系统(400)和编码器可以被配置成使用扩展或者偏离压缩格式的附加特征。具体而言,到解码器系统(400)的输入位流可以包括有助于低延时解码的附加语法元素。例如位流包括对应解码器可以使用来减少解码延时的帧计数语法元素和/或辅助定界符语法元素。作为封闭的端到端系统的部分,解码器系统(400)以在编码器将适合于低延时解码地编码视频并且在位流中包括可用于低延时解码的语法元素这样的理解来进行操作。在一些实施方式中,在封闭的端到端系统以外的解码器可以忽略这样的附加语法元素而仍然对编码数据进行解码。
解码器系统(400)可以是能够以多个编码模式(比如用于实时通信的低延时解码模式、转码模式和用于从文件或者流回放的媒体的普通解码模式)中的任何编码模式进行操作的通用解码工具。核心解码器(430)可以实现为操作系统模块、应用库的部分或者独立应用。
在图4中,核心解码器(430)显露如下接口(432),其它软件(例如实时通信工具、媒体回放工具)可以通过该接口控制对用于解码器系统(400)的解码模式的选择。例如,其它软件可以设置或者不设置低延时模式标志,该标志又控制其它解码参数/操作。如果设置低延时模式标志,则核心解码器(430)根据帧计数语法元素控制DPB输出定时、检查辅助定界符语法元素以标识画面边界,并且禁用或者减少用于抖动缓冲器的延迟。如果未设置低延时模式标志,则核心解码器(430)根据传统回放设置使用用于DPB输出的缺省定时、使用分片层语法元素来标识画面边界并且使用缺省抖动缓冲器延迟值。作为另一示例,通过接口(432),其它软件可以单独地设置用于解码的飞行中的画面数目。更一般而言,通过接口(432),其它软件可以根据解码模式或者独立于解码模式控制用于解码器系统(400)的其它解码参数或者设置。
V.低延时解码适配。
利用这里描述的技术和工具,通过减少或者甚至消除在一个或者多个不同解码阶段的延迟来减少解码延时,以便与为了媒体回放流畅和解码资源利用而初始优化的解码相比,减少或者完全消除整个解码中的延迟源。
A.减少从DPB的输出延迟。
H.264标准意味着从DPB输出的定时应当依赖于DPB大小和画面顺序计数信息。传统上,H.624解码器在DPB已满之后开始输出画面,这引入在回放开始之前的延迟、但是提供可靠的回放。
对于低延时视频解码和回放,解码器可以代之以使用帧计数语法元素来控制从DPB输出的定时。使用帧计数语法元素来设置从DPB初始输出的延迟帮助减少延时。具体而言,使用帧计数语法元素,从DPB输出画面可以在DPB已满之前开始、但是仍然可以提供相符的解码(即对所有画面进行解码,以使得画面是与使用另一常规方案来解码的画面逐位匹配)。这在当帧计数语法元素指示的延迟(以帧为单位)比DPB的大小(以帧为单位)低得多时明显减少延迟。
一般而言,帧计数语法元素指示帧重新排序延迟。帧重新排序延迟对应于根据编码顺序(或者解码顺序)可以先于给定帧、但是根据显示顺序(或者输出顺序)跟随给定帧的帧的最大计数。根据帧计数语法元素的值设置在从DPB输出之前的初始延迟。例如,如果帧计数语法元素为零(这意味着没有画面可以参考按照显示顺序更晚的画面以便为了解码目的),则初始DPB延迟为零帧。或者如果帧计数语法元素为二,则初始DPB延迟为两帧。
图5示出了用于示例帧系列(500)的编码顺序和显示顺序。帧的显示顺序为它们的数字顺序F0、F1、F2、…并且一般对应于它们的原顺序。帧的编码顺序为F0、F3、F1、F2、F6、F5、F4、F8、F7和F9。这意味着先对F0解码、继而为可以依赖于F0的F3。接着对F1和F2解码。即使F3按照显示顺序更晚,当仍然在F1和F2之前对F3解码,因为对F1和F2的解码可以使用F3的重建版本。类似地,F5和F4按照编码顺序跟随F6并且可以依赖于F6(或者在理论上为按照编码顺序的任何其它先前帧)。在图5的示例中,两个帧F5和F6按照编码顺序先于F4、但是按照输出顺序跟随F4,这在帧重新排序延迟为二时是有效的。
对于图5中的示例系列(500),用于从DPB输出的初始延迟为两帧。当对F1解码并且添加到DPB时从DPB输出F0,当对F2解码并且添加到DPB时从DPB输出F1,当对F6解码并且添加到DPB时从DPB输出F2,以此类推。给定两帧的初始延迟,帧F0至F9可用于在适当时间从DPB输出。
对照而言,如果初始输出延迟减少至一帧,则当在对F3进行解码并且添加到DPB时会从DPB输出F0。会类似地正确输出F1、F2和F3,但是F4会未准备好及时输出。这是因为,两帧F5和F6按照编码顺序先于F4、但是按照输出顺序跟随F4
在使用H.264解码的实施方式中,帧计数语法元素为num_recorder_frames语法元素。用信号通知num_recorder_frames语法元素作为用于视频序列的VUI参数。num_recorder_frames语法元素指示按照解码顺序先于视频序列中的任何帧(或者互补场对或者非配对场)、但是按照输出顺序跟随该帧的帧(或者场对或者非配对场)的最大数目。作为选择,对于另一格式或者标准,帧计数语法元素为适合于另一格式或者标准的另一语法元素。
num_recorder_frames语法元素并非强制,并且H.264编码器在理论上可以向num_recorder_frames语法元素赋以任意值。(如果语法元素不存在,则解码器根据在H.264标准中指定的规则赋以缺省值。)这样,一般而言,解码器不能依赖于存在并且用有意义的值设置的num_recorder_frames语法元素。然而在典型实时通信场景中,编码器和解码器为封闭系统的部分。编码器因此可以为num_recorder_frames语法元素分配的符合在编码期间关于画面之间相关性做出的决定有意义的值,其中理解解码器将使用该值来减少从DPB输出的画面延时。以这一方式,编码器和解码器将用于DPB输出定时的传统机制替换为用于控制从DPB输出的定时的更低延时机制。
在其它解码模式中,解码器仍然可以使用DPB大小和画面顺序计数信息来根据常规DPB管理规则控制从DPB输出的定时。在一些情况下,DPB在输出任何帧用于显示之前存储7-16帧。
B.辅助定界符语法元素。
根据H.264标准,解码器使用分片层参数来检测在用于位流中的不同画面的编码数据之间的边界。为了检测当前画面的结尾,解码器在位流中向前扫描以评估用于下一分片的编码数据。如果下一分片为当前画面的部分,则解码器继续在位流中向前扫描以发现画面边界。当解码器发现并非当前画面的部分的下一分片时,解码器已经检测到当前画面的结尾和下个画面的开始。以这一方式检测画面边界涉及到缓冲和扫描一个附加单位的用于下一画面的分片的编码数据,以便检测当前画面的结尾,这引入一个附加画面的解码延迟。
对于低延时视频解码和回放,解码器可以代之以使用辅助定界符语法元素来在位流中检测用于不同画面的编码数据之间的边界。编码器在在位流中适当位置插入辅助定界符语法元素,并且解码器向前扫描以基于辅助定界符语法元素来标识画面边界。例如,在使用H.264解码的实施方式中,辅助定界符语法元素是网络抽象层(NAL)单元类型为9的四字节NAL单元,该单元类型将NAL单元标记为辅助单元定界符(AUD)。作为选择,对于其他格式或者标准,辅助定界符语法元素为适合于其他格式或者标准的另一语法元素。使用辅助定界符语法元素来检测画面边界可以通过避免缓冲用于接下来的分片的编码数据来减少延迟、但是在位流中引入了少量附加数据。
图6示出了包括辅助定界符语法元素的示例H.264位流(600)。位流(600)包括序列参数集(SPS)元素和画面参数集(PPS)元素以及用于画面的编码数据。对于给定画面,编码数据事实上为用于画面的相应分片0…n的编码数据。位流(600)包括对用于相应画面的编码数据之间的边界进行标记的AUD语法元素。
H.264标准未指定类型为9的NAL单元应当以这一方式标记画面边界。这样,一般而言,解码器不能依赖于存在这样的NAL单元来标记画面边界。然而在典型的实时通信场景中,编码器和解码器为封闭的端到端系统的部分。编码器因此可以在适当位置插入辅助定界符语法元素,而解码器可以可靠地使用辅助定界符语法元素来检测画面边界。以这个方式,编码器和解码器将用于画面边界检测的常规机制替换为更低延时机制。
当解码器也能够以不同于低延时解码模式的解码模式进行操作时,对于常规视频解码和回放,解码器可以使用传统的画面边界检测机制、通过扫描编码数据中的分片层语法元素来标识当前画面的结尾和下个画面的开始。
C.限制飞行中的画面数目。
解码器可以使用多线程以在解码期间同时执行不同任务、甚至将任务分布到不同处理单元以便利用更多可用计算资源。关于H.264解码的多线程实施方式的附加细节,例如参见公开号为2009/0003447的美国专利申请。
一般而言,术语“飞行中的画面数目”指示可以在解码期间针对其同时执行解码任务的不同画面的最大数目。例如,如果解码允许飞行中的四个画面,则可以同时执行针对多达四个画面的解码任务。具有飞行中的一个画面可能造成计算资源利用不充分,因为针对画面的解码任务经常拖延从而致使针对画面的其它解码任务暂停完成。具有飞行中的更多画面趋向提供更多利用可用计算资源的机会,因为可能有更多解码任务准备好处理。然而具有飞行中的多个画面引入解码延迟。
在示例多线程实施方式中,对于常规视频解码和回放,将飞行中的画面数目设置为高效地利用可用计算资源,而代价为在解码期间由于飞行中的多个画面所致的延迟。对于低延时解码,将飞行中的画面数目设置成更低数目或者甚至设置成一。当飞行中的画面数目设置成1时,如果针对画面的不同解码任务在它们之间无相关性,则解码器可能仍然能够在多个处理核心之间分布这样的解码任务。然而在多数情况下,减少飞行中的画面数目在减少延迟的同时不利于资源利用。
D.抖动缓冲器利用。
如图4中所示,解码器通常使用一个或者多个抖动缓冲器来提高多线程性能和/或提高回放流畅度。一般而言,抖动缓冲器为了平滑在到缓冲器的输入中的波动的目的而添加延迟。
对于常规视频解码和回放,解码器可以使用被设置成缺省值的输入缓冲器。输入缓冲器由编码数据填充直至达到阈值充满度为止,在这一点处,在逐个画面的基础上(按照编码顺序)向解码器传送编码数据用于解码。例如,阈值充满度值对应于用于序列的按照平均位率的八帧的编码数据,这向整个解码添加约八帧的预计延迟。在解码之前的输入缓冲因此添加延迟、但是趋向于提高对解码资源的利用并且使回放更流畅。
对于低延时解码,解码器可以减少输入缓冲器引入的延迟。例如减少用于输入缓冲器的阈值充满度值。或者一旦用于给定画面的编码数据在输入缓冲器中可用,就向解码器传送用于画面的编码数据用于解码。在这个情况下,解码器未等待直至达到固定阈值为止以保证流畅回放体验。
关于在解码之后对输出缓冲器的使用,对于常规视频解码和回放,解码器可以使用被设置成缺省大小的输出缓冲器。输出缓冲器存储n个重建画面。例如输出缓冲器缺省存储三个重建画面,这增添三帧的恒定延迟。同样,在解码之后的输出缓冲添加延迟、但是趋于提高对解码资源的利用并且使回放更流畅。对于低延时解码,解码器可以减少输出缓冲器引入的延迟。例如可以减少存储于输出缓冲器中的重建画面的数目或者可以绕过/去除输出缓冲器。
E.结果。
前述机制可以组合用来减少解码延迟。例如,编码器将帧计数语法元素设置成零(在该情况下,对于当前画面,运动补偿不使用按照显示顺序的任何更晚画面作为参考画面),并且插入用于画面边界检测的辅助定界符语法元素。对应解码器使用帧计数语法元素来控制DPB输出定时、使用辅助定界符语法元素来检测画面边界、将飞行中的画面数目设置成一、一旦可用就从输入缓冲器去除用于画面的编码数据,以及不使用输出缓冲器用于重建画面。在四核心机器上的示例实施方式中,利用这些改变,将解码延迟从(W-1)+X+Y+(Z-1)帧的延迟减少至零帧的延迟。X指示输入缓冲中的延迟(以帧为单位),其中X可以是0至8。Y指示输出缓冲中的延迟(以帧为单位),其中Y可以是0至8。Z指示由于DPB中的缓冲所致的延迟(以帧为单位),其中Z可以是1至16。W-1是由于飞行中的画面数目所致的延迟,其中W为1至16。简言之,X+Y+(Z-1)+(W-1)可以是高达8+8+15+15=46帧的延迟。对照而言,利用如这里描述的所有用于针对低延时模式减少延迟的设置,延迟可以是0帧(对于飞行中的一帧)。然而,利用这样的最小延迟设置,多线程解码示出20-30%的性能损失。当然可以引入延迟以提高多线程解码中的资源利用。
VI.具有针对低延时解码的适配的编码。
图7示出了用于具有针对低延时解码的适配的编码的示例技术(700)。例如,参照图2a和2b描述的实时通信工具或者编码工具执行技术(700)。作为选择,另一工具执行技术(700)。
开始时,工具接收(710)用于视频序列的一个或者多个画面。例如工具从视频源(比如相机或者其它捕获设备、存储介质或者通信连接)按照显示顺序接收画面。
工具对一个或者多个画面进行编码(720)以产生在位流中的编码数据,其中编码(720)有助于低延时解码。例如,作为编码(720)的部分,工具设置符合为序列设置的帧重新排序延迟的画面间相关性。或者,作为编码(720)的部分,工具在位流中插入辅助定界符语法元素以指示画面边界。作为选择,编码以其它和/或附加方式有助于低延时解码。
工具输出(730)位流中的编码数据。位流可以包括指示帧重新排序延迟的帧计数语法元素、在画面边界处的辅助定界符语法元素和/或为了有助于低延时解码而添加的其它语法元素。
工具检查(740)是否完成编码,而如果没有则以序列中接下来的画面(多个)继续。为了描述起见,图7示出了在逐个画面的基础上或者针对画面组重复的技术(700)。作为选择,在某个其它基础上重复该技术。在任何情况下,可以针对整个序列发信号通知影响整个序列的编码决定(例如帧计数语法元素)。
VII.针对低延时解码的适配。
图8示出了针对低延时解码的示例技术(800)。例如,参照图2a和2b描述的实时通信工具或者回放工具执行该技术(800)。作为选择,另一工具执行该技术(800)。
开始时,工具接收(810)位流中的编码数据。位流可以包括指示帧重新排序延迟的帧计数语法元素、在画面边界处的辅助定界符语法元素和/或为了有助于低延时解码而添加的其它语法元素。
工具使用如在第V节中描述的一个或者多个低延时解码机制对一个或者多个画面进行解码(820)。例如工具使用位流中的帧计数语法元素来确定用于DPB的初始输出延迟。或者,工具使用辅助定界符语法元素来检测位流中的画面边界。或者,工具将飞行中的画面数目设置成一,由此限制可以同时对多少画面进行解码。或者,工具设置用于抖动缓冲器的抖动缓冲器利用率以使总延时减少优先于回放流畅度。作为选择,工具使用其它和/或附加低延时解码机制。
工具输出(830)一个或者多个解码画面用于显示。当工具已经根据帧计数语法元素确定初始输出延迟时,工具输出(830)受到该初始输出延迟的画面。
工具检查(840)是否完成解码,而如果未完成则利用针对序列中的接下来的画面(多个)的解码来继续。为了描述起见,图8示出了在逐个画面的基础上或者针对画面组重复该技术(800)。作为选择,在某一其它基础上重复该技术。在任何情况下,可以针对整个序列做出对整个序列的解码有影响的解码决定(例如根据帧计数语法元素确定延迟、设置抖动缓冲器利用率、设置飞行中的画面数目)。
VIII.在多个编码模式之间选择。
图9示出了用于在有助于低延时解码的模式中有选择地编码的示例技术(900)。例如,参照图2a和2b描述的实时通信工具或者编码工具执行技术(900)。作为选择,另一工具执行技术(900)。
开始时,工具选择(910)有助于低延时解码的编码模式,该编码模式的特征在于与根据另一编码模式产生的结果相比更低的延时解码。工具至少部分基于所选编码模式调节(920)编码。例如,工具针对解码器的输出定时确定和/或画面边界检测来调节编码。作为选择,工具基于所选编码模式以其它和/或附加方式调节编码。
工具接收(930)一个或者多个画面、根据所选编码模式执行(940)编码并且输出(950)位流中的编码数据。工具检查(960)编码是否完成,而如果未完成,则利用对序列中的接下来的画面(多个)的编码来继续。
对于有助于低延时解码的编码,作为编码的部分(940),工具有助于使用如在第V节中描述的一个或者多个低延时解码机制。例如对于输出定时确定,工具在位流中插入指示帧重新排序延迟的帧计数语法元素,并且工具设置符合允许的帧重新排序延迟的画面间相关性。或者,对于画面边界检测,工具在位流中插入用于标记画面边界的辅助定界符语法元素。作为选择,作为编码(940)的部分,工具有助于使用其它和/或附加低延时解码机制。输出位流可以包括指示帧重新排序延迟的帧计数语法元素、在画面边界的辅助定界符语法元素和/或为了有助于低延时解码而添加的其它语法元素。
另一方面,对于其他编码模式,作为编码(940)的部分,工具使用传统编码机制。
IX.在多个解码模式之间选择。
图10示出了用于有选择地使用低延时解码模式的示例技术(1000)。例如,参照图2a和2b描述的实时通信工具或者回放工具执行技术(1000)。作为选择,另一工具执行技术(1000)。
开始时,工具选择(1010)特征在于与另一解码模式相比的更低延时解码的低延时解码模式。工具至少部分基于所选解码模式调节(1020)解码。例如工具调节输出定时确定、画面边界检测、飞行中的画面数目和抖动缓冲器利用率的任何组合。作为选择,工具基于所选解码模式以其它和/或附加方式调节解码。
工具接收(1030)位流中的编码数据并且根据所选解码模式执行(1040)解码。解码产生工具输出(1050)的一个或者多个重建画面。工具检查(1060)解码是否完成,而如果未完成,则利用对序列中的接下来的画面(多个)的解码来继续。
对于低延时解码,位流可以包括指示帧重新排序延迟的帧计数语法元素、在画面边界的辅助定界符语法元素和/或为了有助于低延时解码而添加的其它语法元素。作为解码(1040)的部分,工具使用如在第V节中描述的一个或者多个低延时解码机制。例如,对于输出定时确定,工具使用位流中的帧计数语法元素来确定帧重新排序延迟,工具使用该帧重新排序延迟来设置用于DPB的初始输出延迟。或者,对于画面边界检测,工具使用辅助定界符语法元素来检测位流中的画面边界。或者工具将飞行中的画面数目设置成一,从而允许飞行中的单个画面用于解码。或者,对于抖动缓冲器利用率,工具设置用于输入缓冲器和/或输出缓冲器的利用率以使总延时减少优先于回放流畅度。作为选择,作为在低延时解码模式中的解码(1040)的部分,工具使用其它和/或附加的低延时解码机制。当工具已经根据帧计数语法元素确定初始输出延迟时,工具输出(1050)受到初始输出延迟的画面(多个)。
另一方面,对于其他解码模式,作为解码(1040)的部分,工具使用传统解码机制。例如,对于输出定时确定,工具使用DPB大小和画面顺序计数信息来管理DPB并且控制从DPB输出的定时。或者,对于画面边界检测,工具使用分片层语法元素来检测画面边界。或者,工具将飞行中的画面数目设置成两个、三个或者更多画面。或者,对于抖动缓冲器利用率,工具设置用于输入缓冲器和/或输出缓冲器的利用率以使回放流畅度优先于总延时减少。
鉴于公开的本发明原理可以应用于的多个可能实施例,应当认识到,所示实施例仅为本发明的优选实施例而不应视为限制本发明的范围。实际上,本发明的范围由所附权利要求限定。因此要求保护全部落入这些权利要求的范围和精神实质内的发明。

Claims (9)

1.一种在实现视频解码器的计算设备中的方法,包括:
选择低延时解码模式,所述低延时解码模式的特征在于与其他解码模式相比的更低延时解码;
至少部分基于所选择的低延时解码模式调节输出定时确定、画面边界检测、飞行中的画面数目和抖动缓冲器利用率中的一个或者多个,其中,调节所述飞行中的画面数目,使得允许飞行中的单个画面用于解码;
接收用于视频序列的位流中的编码数据;
利用实现所述视频解码器的计算设备根据所选择的低延时解码模式来对所述编码的数据中的至少一些进行解码以重建视频序列的画面;以及
输出所述画面用于显示。
2.根据权利要求1所述的方法,其中调节所述输出定时确定,其中所述位流中的帧计数语法元素指示帧重新排序延迟,并且其中用于解码画面缓冲器的初始输出延迟至少部分依赖于帧重新排序延迟。
3.根据权利要求1所述的方法,其中调节所述画面边界检测,所述方法还包括在解码期间使用所述位流中的辅助定界符语法元素来检测画面边界。
4.根据权利要求1所述的方法,其中调节对所述抖动缓冲器的利用,使得将多个抖动缓冲器设置为以使总延时减少优于回放流畅度,所述多个抖动缓冲器包括输入缓冲器和输出缓冲器,将对所述输入缓冲器的利用设置为使得一旦用于给定画面的编码数据在输入缓冲器中可用就针对给定画面开始解码,而将对输出缓冲器的利用设置为使得绕过输出缓冲器。
5.根据权利要求1所述的方法,其中核心解码模块执行所述解码,并且显露接口,所述接口允许其它软件控制对解码模式的选择。
6.一种在计算设备中的方法,所述方法包括:
接收用于视频序列的多个画面;
从多个编码模式选择第一编码模式或第二编码模式;
对所述多个画面进行编码以产生位流中的编码数据,其中:
如果选择了第一编码模式,则所述编码通过以下操作来有助于低延时解码:
设置符合帧重新排序延迟的第一值的画面间相关性;以及
在所述位流中插入多个辅助定界符语法元素,其中所述多个辅助定界符语法元素中的每个元素标识画面边界;以及
如果选择了用于具有比所述低延时解码更高的延时的常规解码的第二编码模式,则所述编码包括:
设置符合帧重新排序延迟的第二值的画面间相关性,其中第二值高于第一值;以及
跳过插入所述多个辅助定界符语法元素,其中分片层语法元素在所述常规解码期间可用于检测画面边界;以及
输出所述位流中的编码数据,其中所述位流包括:
指示帧重新排序延迟的第一值或第二值的帧计数语法元素;
分片层语法元素;以及
在选择了第一编码模式的情况下的所述多个辅助定界符语法元素。
7.根据权利要求6所述的方法,其中所述帧重新排序延迟是按照编码顺序可以先于给定帧、但是按照显示顺序跟随所述给定帧的帧的最大计数,并且其中所述多个辅助定界符语法元素中的每个为具有网络抽象层(NAL)单元类型的网络抽象层(NAL)单元。
8.一种实现视频解码器的在计算设备中的方法,所述计算设备包括一个或者多个处理单元和存储器,该计算设备适于执行方法,所述方法包括:
接收用于视频序列的位流中的编码数据,其中所述位流包括视频可用性信息中的帧计数语法元素,所述帧计数语法元素指示帧重新排序延迟,并且其中所述位流还包括用于指示画面边界的辅助定界符语法元素的网络抽象层(NAL)单元;
使用所述帧计数语法元素来确定用于解码画面缓冲器的初始输出延迟;
将飞行中的画面数目设置成一、由此限制可以同时对多少画面进行解码,其中,所述视频解码器能够以其他方式被适配为同时对飞行中的多个画面进行解码;
对编码数据中的至少一些进行解码以重建所述视频序列的画面,包括使用所述辅助定界符语法元素之一来检测画面边界;以及
输出所述画面用于显示,其中根据所述帧计数语法元素设置用于所述解码画面缓冲器的初始输出延迟。
9.根据权利要求8所述的方法,其中所述方法还包括:
设置用于抖动缓冲器的抖动缓冲器利用,以使总延时减少优先于回放流畅度。
CN201110414227.7A 2010-12-13 2011-12-13 低延时视频解码 Active CN102447906B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/966914 2010-12-13
US12/966,914 US8885729B2 (en) 2010-12-13 2010-12-13 Low-latency video decoding

Publications (2)

Publication Number Publication Date
CN102447906A CN102447906A (zh) 2012-05-09
CN102447906B true CN102447906B (zh) 2015-12-16

Family

ID=46009933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110414227.7A Active CN102447906B (zh) 2010-12-13 2011-12-13 低延时视频解码

Country Status (2)

Country Link
US (1) US8885729B2 (zh)
CN (1) CN102447906B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI587693B (zh) 2011-06-30 2017-06-11 微軟技術授權有限責任公司 用於減少視訊編碼及解碼中之延遲的方法、系統及電腦可讀取媒體
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
CN115442623B (zh) * 2012-06-29 2024-08-23 Ge视频压缩有限责任公司 解码视频数据流的方法、存储介质、编码器、解码器
US20140079116A1 (en) * 2012-09-20 2014-03-20 Qualcomm Incorporated Indication of interlaced video data for video coding
KR101561012B1 (ko) * 2012-09-28 2015-10-15 텔레폰악티에볼라겟엘엠에릭슨(펍) 비디오 시퀀스의 픽처의 디코딩 및 인코딩
US8937686B2 (en) * 2013-03-14 2015-01-20 Drs Rsta, Inc. Ultra low latency video fusion
US9578372B2 (en) * 2013-09-27 2017-02-21 Cisco Technology, Inc. Delay tolerant decoder
US20150281321A1 (en) * 2014-03-28 2015-10-01 Viachaslau Hrytsevich Real-time event monitoring and video surveillance web application based on data push
GB2521883B (en) * 2014-05-02 2016-03-30 Imagination Tech Ltd Media controller
US9813719B2 (en) * 2014-06-18 2017-11-07 Qualcomm Incorporated Signaling HRD parameters for bitstream partitions
US9800898B2 (en) 2014-10-06 2017-10-24 Microsoft Technology Licensing, Llc Syntax structures indicating completion of coded regions
CN105578180B (zh) * 2014-10-16 2019-01-15 联想(北京)有限公司 一种编码方法及装置
US9516147B2 (en) 2014-10-30 2016-12-06 Microsoft Technology Licensing, Llc Single pass/single copy network abstraction layer unit parser
US9979983B2 (en) * 2015-03-16 2018-05-22 Microsoft Technology Licensing, Llc Application- or context-guided video decoding performance enhancements
US10129566B2 (en) 2015-03-16 2018-11-13 Microsoft Technology Licensing, Llc Standard-guided video decoding performance enhancements
EP3292691A4 (en) * 2015-05-29 2019-01-23 HFI Innovation Inc. METHOD FOR MANAGING DECODED IMAGE PADS FOR THE INTRA-IMAGE BLOCKS COPYING METHOD
US10638192B2 (en) * 2017-06-19 2020-04-28 Wangsu Science & Technology Co., Ltd. Live streaming quick start method and system
WO2020048617A1 (en) * 2018-09-07 2020-03-12 Telefonaktiebolaget Lm Ericsson (Publ) Latency efficient streaming of video frames for machine vision over an ip network
US11553210B2 (en) 2018-12-07 2023-01-10 Interdigital Vc Holdings, Inc. Managing coding tools combinations and restrictions
CN110248192B (zh) * 2019-06-12 2021-10-15 腾讯科技(深圳)有限公司 编码器切换、解码器切换、屏幕分享方法和屏幕分享系统
CN110971908A (zh) * 2019-11-19 2020-04-07 湖南君瀚信息技术有限公司 基于fpga的h.264视频编码端、解码端、传输装置及传输方法
KR20230019845A (ko) 2020-06-08 2023-02-09 바이트댄스 아이엔씨 코딩된 비디오 픽처에서 슬라이스 카운트의 제약들
CN114615537B (zh) * 2020-11-24 2024-03-29 深圳市奥拓电子股份有限公司 一种零帧延时的视频控制系统及方法、led显示系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1960472A (zh) * 2006-08-14 2007-05-09 中兴通讯股份有限公司 一种多媒体移动终端及其接收多媒体数据的处理方法
CN101051465A (zh) * 2006-03-30 2007-10-10 西门子公司 用于解码被编码的有用数据的方法和解码装置
CN101569170A (zh) * 2007-05-17 2009-10-28 索尼株式会社 编码设备和编码方法以及解码设备和解码方法

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309754A (en) 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
US4642756A (en) 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
EP0537721B1 (en) 1991-10-15 1998-11-25 Hewlett-Packard Company Hardware-configured operating system kernel for a multitasking processor
US6002801A (en) 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
DE19530483A1 (de) 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US5861920A (en) 1996-11-08 1999-01-19 Hughes Electronics Corporation Hierarchical low latency video compression
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
US5909559A (en) 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6006303A (en) 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
EP0909094A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
CN1199471C (zh) 1997-11-28 2005-04-27 松下电器产业株式会社 提高了处理效率的图象声音处理装置
JP3935252B2 (ja) 1997-12-26 2007-06-20 キヤノン株式会社 画像形成装置及びジョブ処理方法
US6823016B1 (en) 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
JPH11252552A (ja) * 1998-03-05 1999-09-17 Sony Corp ビデオ信号の圧縮符号化方法及び圧縮符号化装置、並びに、圧縮符号化データの多重化方法及び多重化装置
US6298166B1 (en) 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6859496B1 (en) 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
JP4146950B2 (ja) 1998-11-04 2008-09-10 キヤノン株式会社 画像形成装置、画像形成装置における表示制御方法及び記憶媒体
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6249288B1 (en) 1998-12-14 2001-06-19 Ati International Srl Multi thread display controller
US7370325B1 (en) 1999-02-19 2008-05-06 Lucent Technologies Inc. Eager evaluation of tasks in a workflow system
US6771824B1 (en) 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6574279B1 (en) 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
JP2002010216A (ja) 2000-04-20 2002-01-11 Canon Inc 復号化装置及びその制御方法並びに記憶媒体
US7206016B2 (en) 2000-05-01 2007-04-17 Polycom, Inc. Filtering artifacts from multi-threaded video
EP1156674A1 (en) 2000-05-19 2001-11-21 THOMSON multimedia Method and device for decoding a video data stream in special reproduction modes
US6963347B1 (en) 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7366236B1 (en) 2001-06-04 2008-04-29 Cisco Sytems Canada Co. Source adaptive system and method for 2D iDCT
US6963613B2 (en) 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
US7920624B2 (en) * 2002-04-01 2011-04-05 Broadcom Corporation Inverse quantizer supporting multiple decoding processes
EP3054680B1 (en) 2002-04-19 2019-06-05 Panasonic Intellectual Property Corporation of America Motion vector calculating method
US7787539B2 (en) 2002-07-17 2010-08-31 Broadcom Corporation Decoding and presentation time stamps for MPEG-4 advanced video coding
JP3534742B1 (ja) 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
US7099389B1 (en) 2002-12-10 2006-08-29 Tut Systems, Inc. Rate control with picture-based lookahead window
JP4750350B2 (ja) 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7646817B2 (en) 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US7627039B2 (en) 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
JP4095559B2 (ja) 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
JP2007526687A (ja) 2004-02-19 2007-09-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変ブロック長信号の復号化スキーム
EP2184919A3 (en) 2004-04-28 2010-07-28 Panasonic Corporation Stream generation apparatus, stream generation method, coding apparatus, coding method, recording medium and program thereof
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20050289505A1 (en) 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
US8291448B2 (en) * 2004-09-15 2012-10-16 Nokia Corporation Providing zapping streams to broadcast receivers
JP4867235B2 (ja) 2004-10-26 2012-02-01 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4375305B2 (ja) 2004-10-26 2009-12-02 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US7430238B2 (en) 2004-12-10 2008-09-30 Micronas Usa, Inc. Shared pipeline architecture for motion vector prediction and residual decoding
US7817723B2 (en) 2004-12-14 2010-10-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E. V. Apparatus and method of optimizing motion estimation parameters for encoding a video signal
EP1675402A1 (en) 2004-12-22 2006-06-28 Thomson Licensing Optimisation of a quantisation matrix for image and video coding
US9219917B2 (en) 2005-01-19 2015-12-22 Thomson Licensing Method and apparatus for real time parallel encoding
US7565021B2 (en) 2005-03-01 2009-07-21 Microsoft Corporation Efficient implementation of block-based transform on graphics processing unit
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
JP4261508B2 (ja) 2005-04-11 2009-04-30 株式会社東芝 動画像復号装置
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US7920633B2 (en) 2005-04-22 2011-04-05 Broadcom Corporation Method and system for parallel processing video data
US8902989B2 (en) 2005-04-27 2014-12-02 Broadcom Corporation Decoder system for decoding multi-standard encoded video
EP1773063A1 (en) 2005-06-14 2007-04-11 Thomson Licensing Method and apparatus for encoding video data, and method and apparatus for decoding video data
US7119723B1 (en) 2005-07-28 2006-10-10 Texas Instruments Incorporated Decoding variable length codes while using optimal resources
KR100770704B1 (ko) 2005-08-04 2007-10-29 삼성전자주식회사 픽쳐 스킵 방법 및 장치
US8306112B2 (en) * 2005-09-20 2012-11-06 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
JP2009510962A (ja) 2005-10-03 2009-03-12 ノキア コーポレイション 独立変数のための適応性可変長コード
MX2008004760A (es) 2005-10-12 2008-11-13 Thomson Licensing Region de codificacion de video h .264 escalable de interes.
US8767836B2 (en) 2006-03-27 2014-07-01 Nokia Corporation Picture delimiter in scalable video coding
US7694102B2 (en) 2006-03-30 2010-04-06 International Business Machines Corporation Systems and methods for self-tuning memory
US7626518B2 (en) 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
US8369419B2 (en) 2006-06-16 2013-02-05 Via Technologies, Inc. Systems and methods of video compression deblocking
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
US7586425B2 (en) 2006-07-11 2009-09-08 Nokia Corporation Scalable video coding and decoding
US8218640B2 (en) * 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8121196B2 (en) 2006-11-02 2012-02-21 Corel Corporation Method and apparatus for multi-threaded video decoding
US7573407B2 (en) 2006-11-14 2009-08-11 Qualcomm Incorporated Memory efficient adaptive block coding
EP2092748A4 (en) 2006-12-14 2011-01-05 Thomson Licensing METHOD AND DEVICE FOR CODING AND / OR DECODING VIDEO DATA USING EXPANSION LAYER RESTRICTION FOR SOFTENCE SCALINGABILITY
WO2008079041A1 (en) 2006-12-27 2008-07-03 Intel Corporation Methods and apparatus to decode and encode video information
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
KR101132386B1 (ko) 2007-04-13 2012-07-16 노키아 코포레이션 비디오 코더
US8396082B2 (en) 2007-06-05 2013-03-12 Core Wireless Licensing S.A.R.L. Time-interleaved simulcast for tune-in reduction
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US20090109988A1 (en) * 2007-10-26 2009-04-30 Chowdhary Musunuri Video Decoder with an Adjustable Video Clock
US8121187B2 (en) 2007-12-05 2012-02-21 Alcatel Lucent Method and apparatus for performing multiple bit rate video encoding and video stream switching
TW201032597A (en) 2009-01-28 2010-09-01 Nokia Corp Method and apparatus for video coding and decoding
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20110002376A1 (en) 2009-07-01 2011-01-06 Wham! Inc. Latency Minimization Via Pipelining of Processing Blocks
US9237387B2 (en) 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051465A (zh) * 2006-03-30 2007-10-10 西门子公司 用于解码被编码的有用数据的方法和解码装置
CN1960472A (zh) * 2006-08-14 2007-05-09 中兴通讯股份有限公司 一种多媒体移动终端及其接收多媒体数据的处理方法
CN101569170A (zh) * 2007-05-17 2009-10-28 索尼株式会社 编码设备和编码方法以及解码设备和解码方法

Also Published As

Publication number Publication date
US20120147973A1 (en) 2012-06-14
CN102447906A (zh) 2012-05-09
US8885729B2 (en) 2014-11-11

Similar Documents

Publication Publication Date Title
CN102447906B (zh) 低延时视频解码
KR101944565B1 (ko) 비디오 인코딩 및 디코딩시의 레이턴시 저감 기법
TWI603609B (zh) 簡化視訊隨機存取之限制及單元類型
JP6312704B2 (ja) ビデオ・スプライシングを単純化する、バッファリング情報のためのシンタックス及びセマンティックス
JP6233984B2 (ja) マルチビュー・ビデオ符号化のための仮想参照デコーダ
CN116614645B (zh) 视频流的编码方法和设备
JP2012508485A (ja) Gpu加速を伴うソフトウエアビデオトランスコーダ
JP2015501098A (ja) 復号化されたピクチャのバッファおよび基準ピクチャのリストのための状態情報の信号化
US8867624B2 (en) H.264/AVC based approach to scalable video compression
KR20170065568A (ko) 샘플 메타데이터와 미디어 샘플들의 결합
JP6191886B2 (ja) 同期予測ビデオフレームの動的な挿入
KR20060027778A (ko) 베이스 레이어를 이용하는 영상신호의 엔코딩/디코딩 방법및 장치
CN111182308A (zh) 视频解码方法、装置、计算机设备及存储介质
KR20150067156A (ko) 신뢰 수준 및 혼합 컨텐츠 정보를 포함하는 부가 확장 정보 제공 기법
TWI735297B (zh) 具有初始化片段之視訊及音訊之寫碼
BR112015016254B1 (pt) Método realizado por um dispositivo de computação, mídia legível por computador e dispositivo de computação

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150611

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150611

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant