同步预测的视频帧的动态插入的制作方法

文档序号:7791749阅读:176来源:国知局
同步预测的视频帧的动态插入的制作方法
【专利摘要】能够编码和在计算机网络上发送视频比特流到解码计算机系统。当没有将比特流中丢失的数据通知编码计算机系统时,该比特流能够遵循常规预测结构。能够接收比特流中丢失的数据的通知。丢失的数据能够至少包括该比特流的参考帧的一部分。在响应中,能够利用参考比特流中的一个或多个其他的以前发送的帧且没有参考丢失的数据的预测来动态地编码同步预测的帧。能够在该比特流中在其中常规预测结构将已决定插入具有将已根据常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入同步预测的帧。
【专利说明】同步预测的视频帧的动态插入

【背景技术】
[0001]视频数据的预测编码能够改善编码效率。然而,当在传输中(诸如由于根本没有到达或太晚到达)丢失一些视频数据时,预测编码能够引起“漂移(drift)”。“漂移”指的是由于在随后的帧中遗失数据而引起的错误的传播。例如,当第一视频帧(有时称为画面)丢失时,跟随在第一帧后面的第二帧可以使用参考那个第一帧的预测来编码。相应地,解码计算机系统可能不能正确地解码那个第二帧。第三帧可以使用参考那个第二帧的预测来编码,等等。实际上,由于预测编码对于丢失的帧的依赖,在解码随后的帧时由于丢失的帧(即,其中丢失至少帧的数据的一部分的帧)而引起的错误可能变得更糟。在会议系统中,可以在比特流中插入帧内编码的帧来对抗这个漂移问题。例如,可以在比特流中周期性地插入帧内编码的帧。作为另一示例,当将比特流中的数据已丢失通知编码计算机系统时,编码计算机系统可以动态地插入帧内编码的帧。


【发明内容】

[0002]该披露涉及动态地插入同步预测的视频帧。如在此所用的,动态插入的同步视频帧是动态插入的且避免具有依赖于指定数据诸如丢失数据的预测的视频帧。因为这些动态插入的帧能够参考以前的帧来预测编码,所以与可比拟的帧内编码的帧相比而言,这些帧可以是更有效的。然而,这些同步预测的视频帧能够虑及(allow for)同步来通过避免参考丢失数据的预测而切断(cut off)漂移。
[0003]在一个实施例中,这些工具和技术能够包括:编码计算机系统编码和在计算机网络上发送视频比特流到解码计算机系统。当没有将比特流中丢失的数据通知编码计算机系统时,比特流能够遵循常规预测结构。编码计算机系统能够接收比特流中丢失的数据的通知。丢失的数据能够至少包括比特流的参考帧的一部分。并且,编码计算机系统能够通过利用参考比特流中的一个或多个其他的以前发送的帧且没有参考丢失的数据的预测动态地编码同步预测的帧来响应该通知。编码计算机系统能够在比特流中在其中常规预测结构将已决定(dictate)插入具有将已根据常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入同步预测的帧。
[0004]提供这个
【发明内容】
部分来以简化的形式介绍概念的选择。下面在具体描述部分中进一步描述这些概念。这个
【发明内容】
部分并不打算用于识别所请求保护的主题的关键特性或基本特性,也不打算用于限制所请求保护的主题的范畴。类似地,本发明不限于解决在【背景技术】部分、具体描述部分或附图中讨论的特别的技术、工具、环境、缺点或优点的实现方式。

【专利附图】

【附图说明】
[0005]图1是其中可以实现所描述的实施例之中的一个或多个实施例的合适的计算环境的方框图。
[0006]图2是视频传输环境的示意图。
[0007]图3是具有周期性的关键帧的常规预测结构(顶部)和具有动态关键帧的相应预测结构(底部)的示例的示意图。
[0008]图4是没有周期性的关键帧的常规预测结构(顶部)和具有动态的长期预测的关键帧的相应预测结构(底部)的示例的示意图。
[0009]图5是没有预测的关键帧的常规预测结构(顶部)和具有动态的锚(anchor)预测的帧的相应预测结构(底部)的示例的示意图。
[0010]图6是用于同步预测的视频帧的动态插入的技术的流程图。
[0011]图7是用于同步预测的视频帧的动态插入的另一技术的流程图。
[0012]图8是用于同步预测的视频帧的动态插入的又一技术的流程图。

【具体实施方式】
[0013]在此描述的实施例针对用于当将比特流中的数据已经丢失通知编码计算机系统时改善视频比特流的编码的技术和工具。这样的改善可以起因于单独或组合使用各种技术和工具。
[0014]这样的技术和工具可以包括:对于不同类型的常规预测结构,动态地插入不同类型的同步预测的视频帧。例如,在具有周期性的关键帧的比特流中,其中周期性的关键帧具有限于参考其他的关键帧的预测,在将比特流中丢失的数据通知编码计算机系统时,能够动态地插入关键帧。作为另一示例,在没有周期性的关键帧但允许长期参考关键帧的比特流中,在将比特流中丢失的数据通知编码计算机系统时,能够动态地插入长期参考关键帧。长期参考关键帧是比常规帧更长时间保持在活跃的帧窗口(将保持在解码器帧缓冲器中的帧的窗口)中的关键帧。例如,长期参考关键帧可以保持在活跃的帧窗口中,直至编码计算机系统发送从活跃的帧窗口中移除那个关键帧的明确通知。作为另一示例,在具有基础层和增强层的比特流中,能够使用参考前一帧的基础层但是没有参考前一帧的增强层的预测来编码帧的基础层,并且能够使用参考前一帧的增强层但是没有参考前一帧的基础层的预测来编码帧的增强层。利用这个常规预测结构,当将帧的增强层中的数据已丢失但是帧的基础层中的数据还没有丢失通知编码计算系统时,编码计算系统能够动态地插入锚帧。如在此所用的,锚帧是这样的帧,其中利用参考前一帧的基础层的预测来预测编码基础层并且增强层被帧内编码,以致增强层仅参考该参考帧内的其他层(例如,基础层)。
[0015]相应地,利用在此描述的工具和技术可以实现一个或多个好处。例如,同步预测的视频帧的动态插入能够虑及同步来切断漂移,同时通过使用其中预测参考以前的帧中的数据的某一预测编码来保存一些效率。
[0016]在所附的权利要求书中定义的主题不一定限于在此描述的好处。本发明的特别实现方式可以提供在此描述的好处之中的所有好处、一些好处或完全不提供在此描述的好处。虽然为了演示而在此以特别的顺序描述用于各种技术的操作,但是应该明白:这种描述的方式包含操作的顺序的重新安排,除非要求特别的排序。例如,顺序描述的操作在某些情况下可以进行重新安排或同时执行。此外,为了简单起见,流程图可能没有显示其中能够结合其他的技术来使用特别的技术的各种方式。
[0017]在此描述的技术可以与在此描述的系统之中的一个或多个系统和/或与一个或多个其他的系统一起使用。例如,在此描述的各种程序可以利用硬件或软件或二者的组合来实现。例如,专用硬件实现方式诸如专用集成电路、可编程逻辑阵列和其他的硬件设备能够被构建来至少实现在此描述的技术之中的一个或多个技术的一部分。可以包括各种实施例的设备和系统的应用能够大致地包括各种各样的电子和计算机系统。可以使用两个或多个特定的相互连接的硬件模块或设备和能够在这些模块之间并通过这些模块传送的相关的控制与数据信号一起或作为专用集成电路的部分来实现技术。另外,在此描述的技术可以利用由计算机系统可执行的软件程序来实现。作为示例,实现方式能够包括分布式处理、组件/对象分布式处理和并行处理。此外,虚拟计算机系统处理能够被构建来实现这些技术或功能之中的一个或多个,如在此所描述的。
[0018]1.示例性的计算环境
图1说明合适的计算环境(100)的一般示例,其中可以实现所描述的实施例之中的一个或多个实施例。例如,一个或多个这样的计算环境能够被用作编码计算机环境、解码计算机环境和/或有助于视频比特流在编码计算机系统和一个或多个解码计算机系统之间的传输的服务器。一般地,能够使用各种不同的通用或专用计算系统配置。可能适于和在此描述的工具与技术一起使用的公知的计算系统配置的示例包括但不限于服务器农场与服务器集群、个人计算机、服务器计算机、手持设备或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、可编程消费电子设备、网络PC、小型计算机、大型计算机、包括上面的系统或设备之中的任何一个的分布式计算环境等等。
[0019]计算环境(100)并不打算针对本发明的使用或功能的范畴提出任何的限制,这是因为可以在不同的通用或专用计算环境中实现本发明。
[0020]参考图1,计算环境(100)包括至少一个处理单元或处理器(I 10)和存储器(120)。在图1中,在虚线内包括这个最基本的配置(130)。处理单元(I 10)执行计算机可执行指令并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令来增加处理能力。存储器(120)可以是易失性存储器(例如,寄存器,高速缓存,RAM)、非易失性存储器(例如,ROM, EEPR0M,闪存)或这两者的某种组合。存储器(120)存储实现同步预测的视频帧的动态插入的软件(180 )。
[0021]虽然为了清晰起见而利用线条来显示图1的各个块,但是实际上,勾画各个组件并不是如此清楚的,且隐喻地,图1和下面讨论的其他图的线条将更确切地是灰色的和模糊的。例如,人们可以将呈现组件诸如显示设备视为I/o组件。并且,处理器具有存储器。本发明的发明人认识到这就是技术的本性并且重申图1的图表仅说明能够结合本发明的一个或多个实施例来使用的示例性的计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等等之类的类别之间不进行区分,这是因为全部被设想在图1的范畴之内且称为“计算机”、“计算环境”或“计算设备”。
[0022]计算环境(100)可以具有附加的特性。在图1中,计算环境(100)包括存贮器
(140)、一个或多个输入设备(150)、一个或多个输出设备(160)和一个或多个通信连接(170)。互连机制(未示出)诸如总线、控制器或网络互连计算环境(100)的组件。典型地,操作系统软件(未示出)提供用于在计算环境(100)中执行的其他软件的操作环境,并且协调计算环境(100)的组件的活动。
[0023]存贮器(140)可以是可移动的或不可移动的,并且可以包括计算机可读存储媒体诸如磁盘、磁带或盒式磁带、CD-ROM、CD-RW、DVD或能够用于存储信息且能够在计算环境(100)内访问的任何其他媒介。存贮器(140)存储用于软件(180)的指令。
[0024](一个或多个)输入设备(150)可以是触摸输入设备诸如键盘、鼠标、笔或跟踪球;话音输入设备;扫描设备;网络适配器AD/DVD阅读器;或提供输入至计算环境(100)的另一设备。(一个或多个)输出设备(160)可以是显示器、打印机、扬声器、⑶/DVD复写器、网络适配器或从计算环境(100)中提供输出的另一设备。
[0025](一个或多个)通信连接(170)允许通信在通信媒介上至另一计算实体。因而,计算环境(100)可以使用至一个或多个远程计算设备诸如个人计算机、服务器、路由器、网络PC、对等设备或另一公共网络节点的逻辑连接而操作在连网的环境中。通信媒介在调制的数据信号中传递信息诸如数据或计算机可执行指令或请求。调制的数据信号是这样的信号,其使得其特征之中的一个或多个特征以在该信号中编码信息的方式进行设置或改变。通过示例而非限制,通信媒体包括利用电、光、RF、红外、声或其他载体实现的有线或无线技术。
[0026]能够以可以是存储媒体或通信媒体的计算机可读媒体的一般上下文来描述这些工具和技术。计算机可读存储媒体是能够在计算环境内访问的任何可利用的存储媒体,但是术语计算机可读存储媒体并不是指传播的信号本身。通过示例而非限制,利用计算环境
(100),计算可读存储媒体包括存储器、存贮器(140)以及上面的组合。
[0027]能够以诸如在程序模块中包括的、在目标真实或虚拟处理器上在计算环境中执行的计算机可执行指令的一般上下文来描述这些工具和技术。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等等。这些程序模块的功能可以在各个实施例中根据需要进行组合或在程序模块之间进行拆分。可以在本地或分布式计算环境内执行用于程序模块的计算机可执行指令。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒体二者中。
[0028]为了便于演示,具体的描述使用如同“确定”、“挑选”、“调节”和“操作”之类的术语来描述计算环境中的计算机操作。这些和其他类似的术语是用于由计算机执行的操作的高层次抽象,并且不应该和人所执行的动作相混淆,除非明确指明由人(诸如“用户”)执行动作。和这些术语相对应的实际的计算机操作取决于实现方式而改变。
[0029]I1.同步预测的视频帧的动态插入 A.系统和环境
图2是视频传输环境(200)的示意图,其中结合该视频传输环境可以实现所描述的实施例之中的一个或多个实施例。该环境(200)能够包括编码计算机系统(210)。编码计算机系统(210)能够根据标准或协议来编码视频数据并发送比特流(220)中的视频数据到一个或多个解码计算机系统(230)。这能够使用各种不同的编码标准和技术之中的任何一个来完成。例如,可以使用可缩放(scalable)视频标准。这样的可缩放视频编码标准的示例是 H.264 SVC (可缩放视频编码),如在 Recommendat1n ITU-T H.264 (06/2011)中所述的,尽管在此描述的技术能够与其他的标准一起使用。能够在计算机网络(240)上发送比特流(220),其中计算机网络可以包括全球计算机网络(例如,因特网)和/或一个或多个其他的网络(例如,外联网,局域网,广域网等等)。并且,可以利用传输服务器(250)来辅助传输。例如,传输服务器(250)可以充当编码计算机系统(210)和(一个或多个)解码计算机系统之间(230)的中介。并且,(一个或多个)解码计算机系统(210)可以编码其自己的比特流并将它们发送到其他的计算机系统诸如编码计算机系统(210),而且编码计算机系统(210)可以接收和解码视频比特流。在一个示例中,计算机系统(210和230)可以参与实时视听事件,诸如视频会议,其中视频比特流在多个计算机系统之间进行发送。
[0030]有可能在至(一个或多个)解码计算机系统(230)的传输期间可能丢失比特流(220)中的数据。例如,丢失的数据可能被延迟,以致该数据到达(一个或多个)解码计算机系统太晚以致无法使用,或者该数据可能从未到达(一个或多个)解码计算机系统。无论哪种方式,都能够认为该数据丢失。(一个或多个)解码计算机系统(230)和/或传输服务器(250)可以发送一个或多个损失通知(260)到编码计算机系统(210)来识别丢失的数据(例如,识别哪些帧和/或帧层包括在所有的或部分的丢失的数据中)。可以在传输中使用与比特流(220 )相同的协议或在一个或多个带外通信中发送这些损失通知(260 )。一旦接收到这样的损失通知(260),编码计算机系统(210)能够编码并在比特流(220)中插入使用预测来编码的同步预测的视频帧(270),但是其中该预测并没有直接地或间接地参考在损失通知(260)中识别的数据(该预测没有参考在损失通知(260)中识别的数据,没有参考本身参考在损失通知(260 )中识别的数据的数据,等等)。这样的视频帧(270 )能够用于将(一个或多个)解码计算机系统(230)和编码计算机系统(210)同步,这些计算机系统可能由于丢失的数据而已失去同步。
[0031]相应地,视频帧(270)能够切断可能由于丢失的数据而已出现的漂移。同步预测的视频帧(270)可以是在包括丢失的数据的帧之后的下一帧,或者它可以是某一稍后的帧。例如,在编码计算机系统(210)已经编码和发送比特流(220)中的一个或多个随后帧之前,编码计算机系统(210)可能没有接收到损失通知(260)。对于在包括丢失的数据的帧和同步预测的视频巾贞(270)之间的介入(intervening)巾贞,诸如通过丢弃或隐藏那些介入巾贞,解码计算机系统(230)可以采取措施来避免或减少由于对丢失的数据的依赖而引起的不利影响。
[0032]B.同步预测的视频帧的动态插入的示例
编码计算机系统(210)可以使用不同的技术和/或不同类型的插入的同步预测的视频帧(270)来虑及同步。对于可缩放编码的视频诸如H.264 SVC,通过分析损失的位置(诸如通过接收数据损失的通知和数据损失的位置(例如,哪个帧和/或哪个层))和基于层间依赖性与预测编码结构来插入合适的同步信息,可以改善性能。在下面的描述中,将参考H.264SVC中的一些预测编码结构作为示例来讨论动态的同步视频帧插入,尽管这些工具和技术也能够应用于其他的标准。现在将参考图3-5来讨论这样的技术和工具之中的一些示例。
[0033]现在参考图3,说明具有周期性的关键帧的常规预测结构(300)的示例。每个帧能够包括基础层(302)和增强层(304)(或多个增强层,未示出),其中在相同帧和不同帧中的层之间利用箭头来说明预测的参考。能够通过添加或从帧中省略增强层来缩放视频。例如,增强层可以添加附加的质量特性(例如,较小的量化步长)和/或较高的空间分辨率。例如,预测结构(300)可以是具有周期性的关键帧的H.264中等粒度可缩放性(MGS)比特流的预测结构。所说明的常规预测结构(300)显示按顺序以O到10编号的帧,并且对于图3-5的其他预测结构中的帧,显示类似的顺序。
[0034]常规预测结构(300 )能够开始于瞬时解码刷新(instantaneous decodingrefresh) (IDR)型关键帧(310)(帧O),这是帧内编码的关键帧。如在此所用的,关键帧是限制于没有帧间预测或仅具有参考其他关键帧的帧间预测的帧。IDR型关键帧(310)能够具有帧内预测,其中增强层(304)(诸如质量增强层)利用(直接地或间接地)参考那个帧的基础层以及可能地参考那个帧的较低增强层的预测来编码。另外,IDR型关键帧(310)能够用信号通知:随后帧不应包括参考在IDR型关键帧(310)之前的帧的预测。
[0035]IDR型关键帧(310)的后面能够跟随着常规预测的帧(330)(帧1、2、3、4、6、7、8和9)。常规预测的帧(330)各自能够包括基础层(302)和增强层(304)。常规预测的帧(330)的每个基础层(302)能够利用参考前一帧的最高增强层的预测来编码。常规预测的帧(330)的每个增强层(304)能够利用也参考前一帧的最高增强层并且参考那个同一帧的基础层(302)和/或一个或多个较低增强层的预测来编码。
[0036]图3的常规预测结构(300)能够包括预测的关键帧(320)(帧5和10)的周期性插入。每个预测的关键帧(320)能够包括参考其他的关键帧(320和/或310)但是没有参考常规预测的帧的预测。相应地,只要还没有丢失以前的关键帧,预测的关键帧(320)就能够虑及在编码计算机系统和(一个或多个)解码计算机系统之间的同步。相应地,与用于常规预测的帧(330)的保护相比,针对损失的额外保护可以用于预测的关键帧(320)。如果关键帧(310或320)丢失的话,则编码计算机系统能够在被通知那个损失时插入IDR型关键帧(320)。
[0037]仍然参考图3,将讨论具有动态预测的关键帧的预测结构(350)。预测结构(350)能够和上面讨论的常规预测结构(300)相同,除非(except when)编码计算机系统接收到丢失数据(360 )的通知,这利用包括丢失数据的层在图3-5中被涂黑来说明。在帧6中,丢失数据(360)位于增强层(304)中,但是没有丢失基础层(302)。如果遵循常规预测结构(330)的话,下一个常规预测的帧(330)(帧7)将已具有参考了丢失的增强层(B卩,具有丢失数据的增强层)的预测。然而,编码计算机系统能够接收丢失数据的通知并能够编码和插入预测的关键帧(320)作为帧7。那个预测的关键帧(320)能够包括参考以前的关键帧(帧5)但是没有参考具有丢失数据(360)的常规预测的帧(330)的预测(因为预测的关键帧(320)限于不参考这样的常规预测的帧(330))。相应地,作为帧7插入的预测的关键帧(320)能够充当同步预测的视频帧来切断可能由于帧6的增强层(304)中丢失的数据(360)而已发生的漂移。
[0038]仍然参考图3,在帧9中,在帧9的基础层(302)中具有丢失的数据(360)。因为基础层(302)中的数据丢失并且帧9的增强层(304)包括参考基础层(302)的预测,所以增强层(304)不能正确地被解码(如利用环绕帧9的增强层(304)的虚线所描绘的)。相应地,具有参考帧9的增强层(304)的预测的随后帧将不能被正确解码,导致那些随后帧中的漂移。然而,编码计算机系统能够接收帧9中丢失的数据(360)的通知,并且能够通过编码和插入预测的关键帧(320)作为比特流中的帧10来响应,以致帧10能够充当同步预测的视频帧,如同预测的关键帧(320)被编码并被插入作为帧7 —样。因为预测的关键帧(320)使用某一帧间预测,所以它们可以比帧内编码的帧诸如IDR型关键帧更有效地被编码,并且它们仍然能够虑及同步和切断由于丢失的数据而引起的漂移。
[0039]现在参考图4,将讨论同步预测的视频帧的动态插入的使用的另一示例。例如,这可以根据H.264 SVC标准与中等粒度可缩放性(MGS)结构一起使用。在图4的顶部说明没有周期性的关键帧的常规预测结构(400)。常规预测结构(400)能够开始于如所示的常规IDR型关键帧(410)或者可供选择地开始于LIDR型关键帧(412)(参见图4的底部)。除了长期帧能够比不是长期帧的帧(例如,常规IDR型关键帧)更长时间保持在活跃的帧窗口中之外,LIDR型关键帧(412)能够类似于上面讨论的IDR型关键帧(410)。IDR帧(410)的后面能够跟随着常规预测的帧(430),而常规预测的帧能够和上面讨论的常规预测的帧(330)相同。这些帧(410和430)各自能够具有基础层(402)和一个或多个增强层(404),如上面所讨论的。
[0040]图4的底部说明最初具有LIDR型关键巾贞(412)和稍后具有动态预测的关键巾贞的预测结构(450)。如所示的,帧6的增强层(404)和帧9的基础层(402)包括丢失的数据(460)。在这些情况中,编码计算机系统能够通过编码和在比特流中插入长期预测的关键帧(420)来响应丢失数据的每个通知。能够比常规帧更长时间保持这样的帧,如上面参考LIDR型关键帧(412)所讨论的。相应地,最新的关键帧能够保留在解码缓冲器中,至少直至编码和发送另一关键帧。并且,长期预测的关键帧(420)能够包括能够参考其他的关键帧但是限于不参考常规预测的帧(430)的预测。相应地,每个长期预测的关键帧(420)能够充当同步预测的帧,以允许在数据丢失之后编码和解码计算机系统的同步,这能够切断所产生的漂移。
[0041]现在参考图5,将讨论具有不同预测结构的同步预测的视频帧的使用的另一示例。在图5的顶部说明没有预测的关键帧的常规预测结构(500)。常规预测结构(500)能够类似于上面讨论的常规预测结构(400)。然而,每个常规预测的帧(530)能够具有包括参考前一帧的基础层(502)而不是参考前一帧的增强层(504)的预测的基础层(502)。作为示例,可以依据H.264 SVC标准、根据粗粒度可缩放(CGS)比特流或空间可缩放比特流来构造常规预测结构(500)。
[0042]图5的底部说明具有动态锚预测的帧的预测结构(550)。如图5所示,帧6的增强层(504)和帧9的基础层(502)包括丢失的数据(560)。响应于接收到帧6的增强层(504)中丢失的数据(560)的通知,编码计算机系统能够编码和插入锚预测的帧(520)作为帧7。锚预测的帧能够包括具有参考帧6的基础层(502)的预测的基础层(502)。锚预测的帧(520)的基础层(502)能够被编码在常规预测的帧(520)中,而帧7的增强层(504)能够包括限于仅包括帧内参考的预测。相应地,锚预测的帧能够包括参考前一帧的基础层(502)的帧间预测来改善编码效率,但是能够避免参考包括丢失的数据(560)的帧6的增强层(504)的帧间预测。
[0043]响应于接收到帧9的基础层(502)中丢失的数据(560)的通知,编码计算机系统能够编码和插入IDR型关键帧(510)作为帧10来切断由于帧9中丢失的数据(560)而引起的漂移。
[0044]注意:能够使用上面类型的同步预测的帧的组合。例如,锚预测的帧(520)和长期预测的关键帧(420)的组合能够用于对付同一比特流(例如,在H.264 CGS比特流中)的损失。
[0045]II1.用于同步预测的视频帧的动态插入的技术
现在将讨论用于同步预测的视频帧的动态插入的若干技术。能够在计算环境中执行这些技术之中的每个技术。例如,可以在计算机系统中执行每个技术,其中计算机系统包括至少一个处理器和存储器,其中存储器包括在其上面存储的指令,这些指令当由至少一个处理器执行时引起至少一个处理器执行该技术(存储器存储指令(例如,目标代码),并且当(一个或多个)处理器执行那些指令时,(一个或多个)处理器执行该技术)。类似地,一个或多个计算机可读存储媒体可以具有在其上面收录的计算机可执行指令,这些指令当由至少一个处理器执行时引起至少一个处理器执行该技术。
[0046]参考图6,将描述用于同步预测的视频帧的动态插入的技术。该技术能够包括:编码系统编码(605)和在计算机网络上发送(610)视频比特流到解码计算机系统。当没有将比特流中丢失的数据通知编码计算机系统时,视频比特流能够遵循常规预测结构。编码计算机系统能够接收(620)比特流中丢失的数据的通知。丢失的数据能够包括至少比特流的参考帧的一部分。响应于该通知,编码计算机系统能够利用参考比特流中的一个或多个其他的以前发送的帧而没有参考丢失的数据的预测来动态地编码(630)同步预测的帧。编码计算机系统能够在该比特流中在其中常规预测结构将已决定插入具有将已根据常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入(640)同步预测的帧。
[0047]同步预测的帧能够包括预测的关键帧,其预测限于参考在参考帧之前的一个或多个其他的关键帧。预测的关键帧的预测能够参考一个或多个帧内编码的关键帧(例如,(一个或多个)IDR帧)和/或一个或多个预测的关键帧。
[0048]同步预测的帧能够是长期预测的关键帧,其预测限于参考在丢失的数据之前的一个或多个其他的关键帧。长期预测的关键帧能够参考一个或多个其他的长期关键帧。
[0049]将已依据常规结构编码和发送的不同的预测帧可能是将已参考了参考帧的增强层的帧。同步预测的帧可以是关键帧,其预测参考在丢失的数据之前的一个或多个关键帧。丢失的数据可以包括至少参考帧的增强层的一部分和/或至少参考帧的基础层的一部分。基础层能够利用增强层的预测来参考。
[0050]丢失的数据能够包括至少丢失的增强层的一部分,并且同步预测的帧能够包括参考同步预测的帧的基础层的增强层。同步预测的帧的增强层的预测能够避免参考丢失的增强层。另外,不同的预测帧的增强层可以是将已参考了具有至少丢失的数据的一部分的增强层的帧。同步预测的帧的基础层的预测可以参考包括至少丢失的数据的一部分的帧的基础层。
[0051]现在参考图7,将描述用于同步预测的视频帧的动态插入的技术。该技术能够包括编码(705)和在计算机网络上发送(710)视频比特流到解码计算机系统。当没有将比特流中丢失的数据通知编码系统时,视频比特流能够遵循常规预测结构。能够接收(720)比特流中丢失的数据的通知,其中丢失的数据能够包括至少比特流的参考帧的一部分。响应于该通知,通过编码和在比特流中插入具有没有参考丢失的数据的预测的同步预测的帧,能够动态地修改(730)常规预测结构。
[0052]插入同步预测的帧能够包括在比特流中在其中常规预测结构将已决定插入具有将已根据常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入同步预测的帧。不同的帧能够是将已参考了参考帧的增强层的帧。例如,参考帧的增强层可以是质量增强层或空间增强层。丢失的数据可以包括至少增强层的一部分,并且同步预测的帧的预测可以参考在增强层下面的基础层而没有参考增强层。同步预测的帧可以包括关键帧,其预测参考在比特流中丢失的数据之前的一个或多个关键帧。
[0053]现在参考图8,将描述用于同步预测的视频帧的动态插入的又一技术。该技术能够包括:编码计算机系统编码(805)和在计算机网络上经由传输服务器发送(810)实时视频比特流到解码计算机系统。当没有将比特流中丢失的数据通知编码计算机系统时,视频比特流能够在帧之间遵循常规预测结构。编码计算机系统能够接收(820)比特流中丢失的数据的通知。丢失的数据能够包括至少比特流的参考帧的一部分。响应于该通知,编码计算机系统能够动态地编码(830)预测的关键帧,其预测参考该比特流中在参考帧之前的一个或多个其他的关键帧并且没有参考该参考帧。能够在该比特流中在其中常规预测结构将已决定插入具有将已根据常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入(840)预测的关键帧。
[0054]虽然以结构特性和/或方法动作特定的语言描述了主题,但是将明白:在所附的权利要求书中定义的主题不一定限于上述的特定特性或动作。相反,上述的特定特性和动作被披露为实现这些权利要求的示例形式。
【权利要求】
1.一种计算机实现的方法,包括: 编码计算机系统编码和在计算机网络上发送视频比特流到解码计算机系统,当没有将所述比特流中丢失的数据通知所述编码计算机系统时,所述视频比特流遵循常规预测结构; 所述编码计算机系统接收所述比特流中丢失的数据的通知,丢失的数据至少包括所述比特流的参考巾贞的一部分; 响应于所述通知,所述编码计算机系统利用参考所述比特流中的一个或多个其他的以前发送的帧并且没有参考丢失的数据的预测来动态地编码同步预测的帧;和 所述编码计算机系统在所述比特流中在其中所述常规预测结构将已决定插入具有将已根据所述常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入所述同步预测的中贞。
2.根据权利要求1的方法,其中所述同步预测的帧包括预测的关键帧,所述预测的关键帧的预测限于参考在所述参考帧之前的一个或多个其他的关键帧。
3.根据权利要求1的方法,其中所述同步预测的帧是长期预测的关键帧,所述长期预测的关键帧的预测限于参考在丢失的数据之前的一个或多个其他的关键帧。
4.根据权利要求1的方法,其中不同的预测帧将已参考了所述参考帧的增强层,并且其中所述同步预测的帧是关键帧,所述关键帧的预测参考在丢失的数据之前的一个或多个关键中贞。
5.根据权利要求4的方法,其中丢失的数据至少包括所述参考帧的增强层的一部分。
6.根据权利要求4的方法,其中丢失的数据至少包括所述参考帧的基础层的一部分,所述增强层的预测参考所述基础层。
7.根据权利要求1的方法,其中丢失的数据至少包括丢失的增强层的一部分,其中所述同步预测的帧是锚帧,所述锚帧包括参考所述锚帧的基础层的增强层,其中所述锚帧的增强层的预测避免参考丢失的增强层,以及其中不同的预测帧的增强层将已参考了丢失的增强层。
8.根据权利要求7的方法,其中所述锚帧的基础层的预测参考至少包括丢失的数据的一部分的巾贞的基础层。
9.一种计算机系统,包括: 至少一个处理器;和 存储器,其包括在其上面存储的指令,所述指令当由至少一个处理器执行时引起至少一个处理器执行包括以下的动作: 编码和在计算机网络上发送视频比特流到解码计算机系统,当没有将所述比特流中丢失的数据通知所述编码计算机系统时,所述视频比特流遵循常规预测结构; 接收所述比特流中丢失的数据的通知,丢失的数据至少包括所述比特流的参考帧的一部分;和 响应于所述通知,通过编码和在所述比特流中插入具有没有参考丢失的数据的预测的同步预测的帧,动态地修改所述常规预测结构。
10.一个或多个计算机可读存储媒体,其具有在其上面收录的计算机可执行指令,所述计算机可执行指令当由至少一个处理器执行时引起至少一个处理器执行包括以下的动作: 编码计算机系统编码和在计算机网络上经由传输服务器发送实时视频比特流到解码计算机系统,当没有将所述比特流中丢失的数据通知所述编码计算机系统时,所述视频比特流在帧之间遵循常规预测结构; 所述编码计算机系统接收所述比特流中丢失的数据的通知,丢失的数据至少包括所述比特流的参考巾贞的一部分; 响应于所述通知,所述编码计算机系统动态地编码预测的关键帧,所述预测的关键帧的预测参考所述比特流中在所述参考帧之前的一个或多个其他的关键帧并且没有参考所述参考巾贞;和 在所述比特流中在其中所述常规预测结构将已决定插入具有将已根据所述常规预测结构参考了丢失的数据的预测的不同的预测帧的位置中插入所述预测的关键帧。
【文档编号】H04N19/172GK104137543SQ201380011737
【公开日】2014年11月5日 申请日期:2013年2月13日 优先权日:2012年2月29日
【发明者】卢玫萱, 李明杰 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1