替换受损视频帧的制作方法

文档序号:11290719阅读:422来源:国知局
替换受损视频帧的制造方法与工艺

提出了一种用于替换受损视频帧的视频流提供器、方法、计算机程序和计算机程序产品。



背景技术:

主要卫星使用基于常规的协议向规定的地面地理区域,即通常被称为‘卫星覆盖区’,转发中继(re-transmit)从地面站上行链路传送(uplink)的数字电视信号。

具有类似上行链路的次要卫星向与主要卫星覆盖区重叠的覆盖区转发中继相同的数字电视信号。一个或多个地面站从主要卫星和次要卫星下行链路传送(downlink)数字电视信号。

卫星无线电信号弱,并易于受到干扰而中断。

干扰源包括太阳和地球的天气条件、地面无线电干扰和物理对象。上行链路和下行链路均可受到影响,故障也可能与设备相关。

在下行链路站接收困难的时间期间,操作人员具有选择能提供最可靠接收的卫星下行链路的选择权。由于选择通常是手动过程,短期中断经常被忽略,只有当更长时间故障看起来即将发生时,才作出改变下行链路站的决定,即从主要卫星接收切换到次要卫星接收,反之亦然。

该切换周期可以是几秒,因为接收机需要重新锁定发送信号,这会导致数据丢失。通信路径是单向的,因此没有向发起的上行链路站的立即反馈。设备可监视通信路径的可靠性,切换过程可以是自动的,但是这种切换是随意的,并不保护数据丢失。



技术实现要素:

目的是减少卫星无线电传输系统中的数据丢失。

根据第一方面,提供了一种用于提供视频输出流的视频流提供器。该视频流提供器包括:处理器;以及存储指令的存储器,该指令当被处理器执行时使得视频流提供器:接收包括多个视频帧的第一视频流,第一视频流为主视频流;接收包括多个视频帧的第二视频流,其中第二视频流的视频帧对应第一视频流的视频帧,第二视频流为补充视频流;确定主视频流的受损视频帧;用补充视频流中的对应视频帧替换受损视频帧,以生成视频输出流;以及输出视频输出流。

确定受损视频帧的指令可包括当被处理器执行时使得视频流提供器确定受损视频帧缺失节目参考时钟戳或呈现时间戳、确定失序的连续性计数器、确定循环冗余校验错误、或获得传输错误指示符的指令。

视频流提供器可进一步包括当被处理器执行时使得视频流提供器解码主视频流和补充视频流的指令。在这种情况下,受损视频帧在解码主视频流中,对应视频帧在解码补充视频流中。

受损视频帧可在解码主视频流中,并且主视频流和补充视频流均包括压缩视频帧。

替换受损视频帧的指令可包括当被处理器执行时,使得视频流提供器用对应视频帧的数据分组替换受损视频帧的数据分组的指令。

主视频流的视频帧和补充视频流的视频帧均可包括时间戳信息。在这种情况下,替换受损视频帧的指令包括当被处理器执行时使得视频流提供器基于时间戳信息替换的指令。

视频流提供器可进一步包括当被处理器执行时使得视频流提供器从用于主视频流和补充视频流的辅助数据分组中提取时间戳信息的指令。

视频流提供器可以是卫星集成接收机和解码器(ird)。

根据第二方面,提供了一种用于提供视频输出流的方法。该方法在视频流提供器中进行并包括以下步骤:接收包括多个视频帧的第一视频流,第一视频流为主视频流;接收包括多个视频帧的第二视频流,其中第二视频流的视频帧对应第一视频流的视频帧,第二视频流为补充视频流;确定主视频流的受损视频帧;

用补充视频流中的对应视频帧替换受损视频帧,以生成视频输出流;以及输出视频输出流。

确定受损视频帧的步骤可包括确定受损视频帧缺失节目参考时钟戳或呈现时间戳、确定失序的连续性计数器、确定循环冗余校验错误、或获得传输错误指示符。

在确定受损视频帧的步骤之前,该方法可进一步包括解码主视频流和补充视频流的步骤。在这种情况下,在确定受损视频帧的步骤中,受损视频帧在解码主视频流中,对应视频帧在解码补充视频流中。

在确定受损视频帧的步骤中,受损视频帧可以在主视频流中。在这种情况下,主视频流和补充视频流均包括压缩视频帧。

替换受损视频帧的步骤可包括用对应视频帧的数据分组替换受损视频帧的数据分组。

主视频流的视频帧和补充视频流的视频帧均可包括时间戳信息。在这种情况下,替换受损视频帧的步骤包括基于时间戳信息替换。

该方法可进一步包括:从用于主视频流和补充视频流的辅助数据分组提取时间戳信息的步骤。

主视频流可使用时间戳信息与补充视频流同步。

主视频流可与补充视频流同步。

该方法可进一步包括如下步骤:基于受损视频帧确定一组连续的受损视频帧;以及用补充视频流的对应的连续的视频帧的组替换连续的受损视频帧的组,以形成视频输出流的一部分。

确定连续的受损视频帧的组的步骤可包括基于可恢复帧的百分比确定连续的受损视频帧的组。

在替换受损视频帧的步骤之前,该方法可进一步包括如下步骤:对主视频流的受损视频帧的数量进行计数;以及当给定的时间段中受损视频帧的数量大于阈值数时,使第一视频流成为补充视频流,使第二视频流成为主视频流。

根据第三方面,提供了一种用于提供视频输出流的计算机程序。该计算机程序包括计算机程序代码,当该计算机程序代码在视频流提供器上运行时,使得视频流提供器:接收包括多个视频帧的第一视频流,第一视频流为主视频流;接收包括多个视频帧的第二视频流,其中第二视频流的视频帧对应第一视频流的视频帧,第二视频流为补充视频流;确定主视频流的受损视频帧;用补充视频流中的对应视频帧替换受损视频帧,以产生视频输出流;以及输出视频输出流。

根据第四方面,提供了一种包括根据第三方面的计算机程序的计算机程序产品以及和其上存储该计算机程序的计算机可读装置。

通常,除非本文另有明确定义,否则权利要求中使用的所有术语应根据本领域中其普通含义来解释。除非另有明确表述,否则对于“一/一个/该元件、设备、组件、装置、步骤等”的所有引用将开放地解释为指的是元件、设备、组件、装置、步骤等的至少一个实例。除非明确表述,否则本文公开的任何方法的步骤不必按照所公开的确切顺序执行。

附图说明

现在将参照附图,通过示例的方式,对本发明进行描述,附图中:

图1示出了相关技术的mpeg(运动图像专家组)传输流;

图2示出了简化为发送单个电视频道的相关技术的卫星电视广播环境;

图3示出了采用两个卫星提供备份传输路径的相关技术的卫星电视广播环境;

图4示出了根据示例性实施例的卫星电视广播系统配置的示例;

图5示出了根据示例性实施例的卫星电视广播系统配置的示例;

图6示出了根据示例性实施例的通过替换损坏的数据分组的视频帧修复;

图7示出了根据示例性实施例的损坏的数据分组替换方法;

图8示出了根据另一个示例性实施例的通过使用专用视频编码器采用两个卫星传输路径的示例配置;

图9更详细地示出了图8中卫星电视广播系统的上行链路侧;

图10示出了在图9的上行链路侧应用时间戳信息;

图11示出了图8的卫星电视广播系统的视频流提供器;

图12更详细地示出了图11的压缩帧选择器;

图13为示出了根据另一个示例性实施例的方法的示例的流程图;

图14示出了根据另一个示例性实施例的视频流提供器;

图15更详细地示出了图14中的视频流提供器的视频解码器;

图16为示出了根据示例性实施例的视频数据重建的示例处理的流程图;

图17为根据示例性实施例的计算机系统的框图。

具体实施方式

现在将参考附图对示例性实施例进行描述。前述的附图通过图示的方式而非限制的方式示出了特定的示例性实施例和实现方式。应理解,在不背离本公开的范围和精神的情况下,可以使用其他的示例性实施例和实现方式,并且可以对各种元件进行结构变化和/或替换。因此,以下详细的说明不应解释为限制的含义。另外,可以用在通用计算机上运行的软件的形式、特定硬件的形式、或者用软件和硬件组合的形式实现所描述的不同示例性实施例。

在本说明书和所附权利要求中使用的,单数形式的“一”、“一个”和“所述”包括复数引用,除非上下文明确地指出。因此,例如,本领域技术人员在阅读本公开等内容之后,对“方法”的引用包括本文中所描述类型的一个或多个方法、和/或步骤将是明显的。

与“包含”、“含有”或“其特征在于”可互换使用的术语“包括”是包含式或开放性的语言,并不排除另外的、未提到的元件或方法步骤。短语“由......组成”排除了未在权利要求中指定的任何元件、步骤或成分。

除非另有定义,本文使用的所有技术和科学术语与本公开所属领域任何一个技术人员通常理解的意义相同。

目的是提供通过卫星发送的视频流中数据错误修复或隐藏。

另一个目的是当在适当的硬件平台上部署新的错误隐藏软件时提供性能改进。

图1示出了相关技术的mpeg传输流环境。如图1所示,mpeg传输流环境100可含有来自多个节目的多路复用数据分组。在本示例中,mpeg传输流120中含有两个mpeg节目。mpeg传输流120通常用于经由电缆、无线电天线杆或卫星向机顶盒发送数字电视。因此,术语“节目”通常指的是被发送的内容,例如,可指的是电视节目。

图1示出了两个节目,节目a和节目b,其可以是每个压缩帧具有相关呈现时间戳(pts)和节目参考时钟(pcr)的分组化的基本流(pes)。因此,节目a有一个pts/pcr序列,节目b也有一个。包括节目a和节目b的mpeg压缩帧的视频流110被输入到数据分组化器和多路复用器115,产生数据段比压缩帧更小的分组化的数字数据(传输流分组)的mpeg传输流120。节目a和节目b传输流分组被多路复用,从而在传输系统的最大可用带宽中均匀地分散节目带宽负荷。

接收设备可为传输流组装(assemble)数据分组,以便使用已建立的协议重建节目a的压缩帧和节目b的压缩帧。应理解,为了简洁和便于描述,以下描述经常提到压缩帧。然而,使用将分组和压缩帧相关联的分组报头信息,可发生对包括压缩帧的数据分组的操作,数据可保持为分组,而不用完全组装为分组作为其一部分的压缩帧。

图2示出了简化为发送单个电视频道的卫星电视广播环境。如图2所示,卫星电视广播环境200包括卫星a210、上行链路卫星天线(上行链路a)220和下行链路卫星天线(下行链路a)230,其共同使电视节目能够在较大地理区域进行广播。例如,卫星a210、上行链路卫星天线220和下行链路a卫星天线230在卫星覆盖区295内广播。卫星电视广播环境200容易产生例如由地面天气、太阳活动和/或扰乱传输路径的物理对象导致的上行链路和下行链路错误。通信地连接至上行链路a220的视频编码器240将数字视频数据转化为可以流传送的格式,例如mpeg-2或mpeg-4。然而,应理解,mpeg-2和mpeg-4仅仅是示例,可以使用任何当前或未来的流传送格式,例如hevc(高效视频编码)。可以向视频编码器240提供来自视频摄像机250的直播视频或视频存储260存储的预先录制的材料。下行链路a卫星天线230用可通信地耦接至视频流提供器280。视频流提供器例如可以是卫星集成接收机和解码器(ird)。视频流提供器280可以通信地耦接至视频存储270和电视广播系统290,并可输出直接用于电视广播系统290广播和/或用于视频存储270记录的信号。

图3示出了采用两个卫星提供备份传输路径的卫星电视广播环境。如图3所示,卫星电视广播环境300包括卫星a310和卫星b305。卫星a310从上行链路a315接收发送信号,并向下行链路a325发送接收信号。

卫星a310、上行链路a315和下行链路a325具有标示为卫星a地面覆盖区380的地理区域。类似地,卫星b305从上行链路b320接收发送信号,并向下行链路b330发送接收信号。卫星b305、上行链路b320和下行链路b330具有指示为卫星b地面覆盖区375的地理区域。

在卫星电视广播环境300中,上行链路a315通过上行链路交换机335通信地耦接至上行链路b320,下行链路a325通过下行链路交换机360通信地耦接至下行链路b330。在卫星电视广播环境300中,当上行链路a315、卫星a310和下行链路a325形成的传输路径发生故障时,使用上行链路交换机335和下行链路交换机360,可采用上行链路b320、卫星b305和下行链路b330的传输路径b。切换是手动启动的,被发送的数据会丢失几秒。上行链路交换机335和下行链路交换机360本身可以是电子的,但是过程是手动启动的。上行链路侧传输例如需要上行链路a315在有效数据可被发送到卫星a310之前,锁定视频编码器340提供的信号。卫星a310反过来必须锁定卫星a310从上行链路a315接收的发送数据。最终,下行链路a325必须锁定来自卫星a310的传输中含有的数据。因此,当传输路径断开并由人工介入重新建立时,在视频流再次被传送至视频流提供器365之前,会发生几秒的数据丢失。在直播视频的情况下,观看者在此期间会经历黑屏或静态画面。如果传输的是存储以供以后播放的电视节目,可需要节目的重新传输,会导致卫星转发器带宽和广播时间表可能扰乱的成本。

图4示出了根据示例性实施例的卫星电视广播系统配置的示例。如图4所示,卫星电视广播系统400包括卫星a410和卫星b405。卫星a410从上行链路a415接收发送信号,并向下行链路a425发送接收信号。卫星a410、上行链路a415和下行链路a425具有标示为卫星a地面覆盖区475的地理区域。类似地,卫星b405从上行链路b420接收发送信号,并向下行链路b430发送接收信号。卫星b405、上行链路b420和下行链路b430具有标示为卫星b地面覆盖区480的地理区域。卫星a地面覆盖区475和卫星b地面覆盖区480可部分或完全重叠。上行链路a415和上行链路b420各自用通信地耦接至视频编码器440。视频编码器440可通信地耦接至视频摄像机455和视频存储460。下行链路a425和下行链路b430各自通信地耦接至双输入视频流提供器435,双输入视频流提供器435通信地耦接至视频存储465和电视广播系统470。

图4的卫星电视广播系统400示出了根据示例性实施例的数据冗余。卫星a410和卫星b405为可替代的传输路径。卫星a475的覆盖区和卫星b480的覆盖区重叠,使得视频流提供器435从两者中的一个卫星接收传输。具有多个视频流提供器输入的视频流提供器435与多个下行链路点、下行链路a425和下行链路b430结合使用。该配置为被发送的卫星电视广播产生冗余能力。上行链路a415和上行链路b420具有共同的视频编码器源440,提供到各个上行链路的数据是相同的。视频流提供器435为软件和/或硬件平台。视频流提供器435连续地监视来自下行链路a425和下行链路b430各自的卫星输入,监视数据分组错误和数据丢失。视频流提供器435将卫星数据分组组装成mpeg数据分组,只选择已知良好分组,组装成用于通过电视广播系统470的电视广播或用于视频存储465中记录的mpeg传输流。可替代地,视频流提供器435通过选择具有最少错误的分组,可将卫星数据分组组装成mpeg数据分组。

通过不同的当前或未来的方法,例如可被附加到传输流数据分组等的失序连续性计数器(cc)、循环冗余校验(crc)、或传输错误指示符(tei)和/或错误检测数据估计可确定数据分组错误。

图5示出了根据另一个示例性实施例的卫星电视广播系统配置的示例。图5的配置除视频节目545之外与图4的配置相同。为了便于描述,图5的附图标号已经更改成5xx,并且为了简洁,此处省略了重复描述。在此处的卫星电视广播系统500中,提供多个视频节目545,作为多路复用器540的输入。视频节目545例如包括视频频道1到视频频道n上的节目。在这种情况下,在使用建立的广播协议被上行链路传送到卫星a510和卫星b505的多路复用器540生成的mpeg传输流中封装多个视频节目545。下行链路a525和下行链路b530接收相同的数据,并为mpeg传输流中所有的视频节目产生数据冗余。

图6示出了根据示例性实施例的替换损坏的数据分组。视频流提供器640可表示图4的视频流提供器435或图6的视频流提供器435。视频流提供器640可比较来自卫星a和卫星b的基本类似的数据分组,并结合数据完整性测试,拒绝有错误的数据分组,并用已知的良好数据分组将其替换。因此,可构建修复的视频输出流650,用于本地广播系统的进一步传输或用于存储。

视频流提供器640也可组装来自较小传输流数据分组的mpeg压缩视频帧,并使用诸如pcr/pts的定时信息对齐来自卫星a的第一视频流630的视频帧和来自卫星b的第二视频流610的视频帧。由于上行链路传送的数据具有共同的来源,两个传输路径(以及因而两个视频流610、630)的视频数据是相同的。卫星a和卫星b的pts帧位置信息是相同的。这使得两个视频流610、630的视频帧数据被同步625。例如,第一视频流630中的pts_9a值和第二视频流610的pts_9b值将相同。为了清楚起见,针对视频流中的一个节目频道示出了mpeg数据,但是正如上文所解释的,每个视频流可含有多个节目频道。在该示例中,第一视频流630中有第一错误帧620a,第二视频流610中有第二错误帧620b。可通过检测组成该帧的一个或多个分组的错误来标识错误帧620a-b。分组错误是在视频流提供器640解调器的硬件/固件中为从卫星下行链路馈送的信号建立的数据完整性测试方法。数据完整性测试例如可包括循环冗余校验(crc)、连续性计数器(cc)、前向纠错(fec)和里德-索罗门(reedsolomon)纠错。这些测试可用于给定数据分组的信号传输流错误指示符(tei)。

图6示出了来自卫星a的第一传输流630中的第一错误帧620a如何用来自卫星b的第二传输流610的对应良好帧替换。第一传输流630的阴影部分显示了pcr/pts7a在帧序列中丢失,指示了损坏的数据。接着,视频流提供器640用第二传输流610的被标记为pts/pcr_7b的帧替换第一传输流630中损坏的数据。这样,构建了输出传输流650,其是来自第一传输流630和第二传输流610视频帧的组合。一个卫星下行链路的损坏数据帧可用组成其他卫星下行链路的对应帧的已知良好数据分组单独地取代,而不用替换整个传输流。

如上概述的损坏帧替换原则可扩展到对损坏帧的组的替换。

图6示出的处理可应用到mpeg传输流中所有的节目频道。也就是说,如图5所示,可存在多个视频频道,即视频频道1到视频频道n,图6的处理可用于替换跨所有n个视频频道的损坏的帧。

输出传输流650可被传送到硬件/软件平台中的视频解码系统,用于视频帧解压缩,或下行链路发送到与硬件/软件平台分离的远程设备。

图7示出了根据示例性实施例的损坏的数据分组的替换方法。在损坏的数据分组的替换方法700中,从主卫星710接收第一视频流数据。确定数据是否含有错误720。如果不存在数据错误720(否),组装mpeg数据分组735。然而,如果存在数据错误720(是),记录数据错误725。组装没有数据错误的分组并构建mpeg数据分组730。不可用的mpeg分组根据错误指示符而被标识,分组序列的间隙可根据丢失的pts/pcr/cc信息确定740。被标识的不可用或丢失的mpeg分组用来自补充卫星的补充视频流中的良好分组替换745。接着确定来自主卫星的主视频流中数据错误是否过多755。如果确定了数据错误不过多755(否),mpeg数据分组作为视频输出流被输出770。然而,如果确定了数据错误过多755(是),补充卫星与主卫星交换。也就是说,假定卫星a是主卫星,卫星b是补充卫星,如果来自卫星a的数据错误被确定过多,卫星a成为补充卫星,卫星b成为主卫星。接着,mpeg数据分组作为视频输出流被输出770。经由处理755和760的流程图700示出了当来自主卫星的数据错误达到不可接受的水平时,补充卫星b可接管主卫星a的角色。

参照图4至图7描述的实施例均依赖于共同的视频编码器。这样,两个传送路径(经由主卫星和补充卫星)中传输流的数据分组彼此完全对应的,或甚至是相同的。因此,当数据错误发生时,可逐个分组地替换数据。

图8示出了根据另一个示例性实施例的通过使用专用视频编码器采用两个卫星传输路径的示例配置。如图8所示,卫星电视广播系统800包括卫星a810和卫星b815。卫星a810从上行链路a820接收发送信号,并向下行链路a830发送接收信号。卫星a810、上行链路a820和下行链路a830具有标示为卫星a地面覆盖区890的地理区域。类似地,卫星b815从上行链路b825接收发送信号,并向下行链路b840发送接收信号。卫星b815、上行链路b825和下行链路b840具有标示为卫星b地面覆盖区895的地理区域。卫星a地面覆盖区890和卫星b地面覆盖区895可部分或完全重叠。

上行链路a820通信地耦接至产生传输流的多路复用器a850,多路复用器a860通信地耦接至视频编码器a860。上行链路b825通信地耦接至产生传输流的多路复用器b855,多路复用器b855通信地耦接至视频编码器b865。视频编码器a860和视频编码器b865均可通信地耦接至视频存储872和/或视频摄像机870。下行链路a830和下行链路b840各自通信地耦接至双输入视频流提供器875,双输入视频流提供器875通信地耦接至视频存储880和电视广播系统885。在这种情况下,独立的mpeg编码器860、865和多路复用器850、855向卫星上行链路820、825馈送。编码器和多路复用器不需要被同样地配置。尽管视频编码器860和865的实际数据输出可以不同,每个mpeg帧的图像内容会在很大程度上匹配。

图9更详细地示出了图8中卫星电视广播系统的上行链路侧。如图9所示,时间码发生器900通信地耦接至视频编码器a860和视频编码器b865。时间码发生器900为卫星馈送a和b的每个视频编码器输出提供时间戳。也就是说,时间戳被输出到视频编码器a860和视频编码器b865,时间戳作为辅助数据被插入到视频编码器a860和视频编码器b865的输出数据。时间码发生器900中的时间戳被同时提供到视频编码器a860和视频编码器b865两者,以便在卫星馈送的下行链路之后实现视频流提供器中的同步。

图10示出了在图9的上行链路侧应用时间戳信息。如图10所示,时间码发生器900向视频编码器a860和视频编码器b865的每一个提供时间戳。编码器860、865使用时间码发生器900中的时间戳为辅助数据打上时间戳。视频编码器a860产生数据分组1015,视频编码器b865产生数据分组1030。时间戳信息用于将帧位置信息插入到节目频道的数据分组1015和数据分组1030,从而每个卫星上行链路的压缩视频帧的时间戳信息相同。

被插入到形成mpeg传输流的节目流的辅助数据分组atct1和atct2携带每个帧的时间戳信息。辅助数据是与可形成传输流一部分的音频数据和视频数据相分离的一种数据类型。

每个卫星上行链路的压缩节目频道视频帧数据不需要匹配,但是相应的卫星馈送中帧的时间戳值必须是类似的。可替代地,相应的卫星馈送中帧的时间戳值必须是相同的。在该示例性实施例中,有利的是,实现冗余保护的节目频道以此方式被打上时间戳,以便提供用于同步在下行链路端具有冗余保护的节目频道的机制。另外,节目数据分组1015和1030的比特率可被配置成大约相同的比特率,使得卫星数据馈送a和b的总体平均比特率是相似的,以便当来自卫星a和卫星b的卫星馈送之间切换时,在传输带宽限制内保持传输带宽。

图11示出了图8的卫星电视广播系统的视频流提供器。如图11所示,视频流提供器875包括数据分组和时间戳监视器1145、压缩帧组装器b1150、压缩帧组装器a1155和压缩帧选择器1160。数据分组和时间码监视器1145从卫星a接收下行链路传输流1110,从卫星b接收下行链路传输流1130,分别将下行链路传输流传递到压缩帧组装器a1155和压缩帧组装器b1150。压缩帧组装器a1155的输出被传递到压缩帧选择器1160,压缩帧组装器b1150的输出被传递到压缩帧选择器1160。压缩帧选择器1160的输出被传递到pes分组选择器1170,pes分组选择器的输出被传递到传输流分组选择器1172。

来自卫星a的下行链路传输流1110对应视频编码器a的图像数据分组。来自卫星b的下行链路传输流1130对应视频编码器b的图像数据分组。如图11所示,来自卫星a的下行链路传输流1110和来自卫星b的下行链路传输流1130在当前时间1125不具有相同的帧布置(placement)。上行链路路径中可以有不同的延迟,从而当下行链路发生时,到视频流提供器875的两个传输流存在偏移。有利的是,在视频流提供器875中提供足够的用于数据存储的缓冲存储器,以便使用在卫星上行链路之前插入的时间戳对齐每一个馈送的视频帧。

图11显示了来自卫星a的下行链路流1110和来自卫星b的下行链路流1130均存在帧时间戳atct1和atct2。视频流提供器875同步来自卫星下行链路传输流的节目频道视频帧。压缩帧组装器a1155和压缩帧组装器b1150分别组装来自所接收的数据分组的数据流1110和1130中被编码的压缩视频。

数据分组和时间码监视器1145使用分组错误指示符1125和时间戳1120建立错误在组装的压缩帧中发生的位置。通过该方法,损坏的压缩帧可被标识。压缩帧选择器1160向pes分组选择器1170和传输流分组选择器提供信息,从而可从卫星下行链路1110和1130的每一个选择之后能用于构建已知良好压缩帧的分组。因此,可向传输系统1180馈送包括已知良好压缩帧的新的输出mpeg传输流,不用更改数据分组中的数据。也就是说,压缩帧选择器1160向pes分组选择器1170提供信息,pes分组选择器1170向传输流选择器1172提供信息,指示传输流分组选择器1172应该从哪一个下行链路传输流1110、1130中选择单个分组,以产生新的复合mpeg传输流。

在图11所示的示例中,压缩帧选择器1160将指示导致损坏帧的a传输流1110的丢失分组a4应该用b传输流1130的分组替换,接着pes分组选择器1170应添加b分组代替分组a4和组成损坏帧的流1110的其他分组的信息。

相反地,丢失分组b7指示的b传输流中发生损坏的地方,a传输流的已知良好分组可以替换由丢失分组b7导致的b传输流中的帧损坏。

根据pes分组构建传输流分组。因此,可基于pes分组替换1172选择传输流分组。输出mpeg传输流1175可被传送到视频帧解压缩的硬件/软件平台中的视频解码系统,或下游传输到与硬件/软件平台分离的远程设备。

需要指出的是,重建的输出mpeg传输流1175是主视频流,在这种情况下,来自卫星a的下行链路传输流1110的特定分组由来自卫星b的下行链路传输流1130的分组替换。然而,如上所述,在下行链路传输流1110的错误数量大于或等于阈值数的情况下,pes分组选择器1170可将输出mpeg传输流1175切换成基于来自卫星b流的下行链路传输流1130,其中的分组用来自卫星a的下行链路传输流1110的分组替换。

图12更详细地示出了图11的压缩帧选择器1160及其操作。图12提供了关于压缩帧是如何被选择的进一步细节。在该示例性实施例中,卫星a的视频与卫星b的视频被不同地编码,使得尽管每个帧的图像内容类似或相同,压缩帧类型的序列是不同的。在该情况下,不能进行单个数据分组的替换,数据替换经常发生在帧组的帧边界上。

来自卫星a的视频流1210用时间戳序列被标记为t1_a至tx_a。因而,在示出11个帧的该示例中,帧被标记为t1_a至t11_a。来自卫星b的视频流1220用时间戳序列被标记为t1_b至tx_b。因而,在示出11个帧的该示例中,帧被标记为t1_b至t11_b。

使用数据分组错误标识方法(如上所述),帧组的分组被损坏。这些组的视频帧由于帧之间的编码依赖性而被记录为损坏的。例如,b帧包含差分信息,并且在视频编码期间,由p帧和/或i帧生成。因此,丢失的p帧可妨碍跨越几个帧的重建。例如,组1235和组1240被记录为损坏的。在组1235的情况下,受损损坏帧t6_a导致不能够重建压缩视频的四个附加帧,在这种情况下,帧t4_a、t5_a、t6_a、t7_a和t8a。因而,t4_a、t5_a、t6_a、t7_a和t8_a被标记为受损坏帧t6_a影响的视频帧组1235。类似地,受损帧t9_b和t10_b导致t9_b和t10_b的组被一起标记为受损坏帧t9_b和t10_b影响的压缩视频帧组1240。

压缩帧选择器1160在选定帧点(framepoint)处,通过在卫星a的组装帧1210和卫星b的组装帧1220之间切换,构建新的视频输出流1245输出。mpeg视频有三种帧类型:i帧、p帧和b帧。i帧以及关于其他帧对帧重建具有最小依赖性的特定p帧可被用作切换点。如图12所示,帧选择器1160利用来自卫星a的已知良好帧部分1250、来自卫星b的已知良好帧部分1255和由时间戳序列标示的已知良好帧1260构建了复合压缩帧输出1245。

图11和图12示出的节目频道重建可应用于mpeg传输流的任何多路复用的节目频道,该mpeg传输流具有同步时间戳并包含卫星上行链路的相同视频。重建处理能够使用多个卫星下行链路的数据来构建具有大大减少数据错误的mpeg传输流,从而不会发生向终端用户传输的间隙。如果视频编码器产生具有相似平均比特率的数据输出,以便当从任一卫星馈送选择帧时,都不会超过传输带宽要求,该处理就不需要解复用和再复用传输流中含有的频道。

图13为示出了根据示例性实施例,例如根据图11至图12的节目频道重建处理的流程图。当从主卫星接收1305主视频流的数据并且从补充卫星接收1370补充视频流的数据时,节目频道重建处理1300开始。接着确定补充视频流1375中是否存在数据错误。如果存在数据错误1380,记录数据错误1390,处理前进到操作1335。如果不存在数据错误1385,处理前进到操作1335。

同时,在确定补充卫星数据中是否存在数据错误的相同或相似的时刻,从主卫星接收1305主视频流的数据,也确定1305主视频流数据中是否存在数据错误。如果不存在数据错误1310,从主卫星接收的数据组装mpeg视频帧1365,作为视频输出流输出1395组装的mpeg视频帧。如果存在1317数据错误,记录1320数据错误,组装1325来自主卫星的mpeg视频帧,处理转到操作1335。

在操作1335中,组装来自补充卫星的补充视频流的mpeg视频帧。来自主卫星的具有数据错误的主视频流的帧由来自补充卫星1340的补充视频流的已知良好帧替换。在替换过程中,使用时间码戳替换帧,来对齐两个帧集。接着确定来自主卫星的数据错误是否过多1345。为了确定数据错误是否过多,可以对一段时间内数据错误的数量进行计数并将其与阈值进行比较。如果错误数量等于或大于阈值,则确定数据错误过多;否则,确定数据错误不过多。阈值可以用实验方法设置,并且可以是预先确定的。如果确定1350数据错误不过多,输出1395替换了数据错误的mpeg帧。如果确定1355数据错误过多,主卫星和补充卫星的角色互换1360。也就是说,在生成输出流时,使补充卫星的数据流成为主要的,使主卫星的数据流成为补充的。一旦角色被反转,则输出1395mpeg帧。因而,根据节目频道重建处理1300,当主卫星在其输出中具有过多数据错误时,主卫星和补充卫星可互换角色。

参照图8至图13描述的实施例采用两个单独的视频编码器,但是单独的视频编码器也使用相同的编码方案,例如,mpeg-2、mpeg-4或hevc。不能假定两个传送路径(经由主卫星和补充卫星)中的数据分组是彼此完全对应的。然而,可以假定视频帧组中的视频能在两个传送路径中找出对应关系。由于i帧不依赖于任何其他帧,视频帧组,例如可由i帧定界,以允许视频流的切换。这样,虽然不大可能在逐个分组的基础上替换单个视频帧,但是可以在分组级别上替换压缩视频帧组,而不需要解压缩。由此得到的系统不需要解码两个视频流,但仍允许冗余编码器。

图14示出了根据另一个示例性实施例的视频流提供器及其操作。如图14所示,视频流提供器1430包括数据分组和时间戳监视器1435、视频b解码器1440、视频a解码器1445和未压缩帧选择器1450。视频流提供器1430可用于代替图8中的双输入视频流提供器875。

在该示例性实施例中,卫星上行链路a和b的编码器可被独立地配置,且可以选择任何输出比特率。卫星上行链路a和b中被复制的每个视频节目都被打上时间戳,用于冗余保护。在视频流提供器1430中,卫星a和b的mpeg传输流中下行链路传送的节目分别被视频解码器a1445和视频解码器b1440完全地解压缩成准备呈现的未压缩帧。可对来自卫星下行链路a和b的具有相同视频节目并具备用于冗余保护的同步时间戳的频道进行错误分析,从而实现冗余保护。数据分组和时间戳监视器1435使用由如前所述的数据完整性测试建立的分组错误指示符1415以及时间戳1420,以确定错误出现在组装的未压缩帧中的位置。与上述示例性实施例相比较,在该示例性实施例中,损坏或受损未压缩帧可被标识。未压缩帧选择器1450在视频解码器a1445和视频解码器b1440的输出之间切换,以产生含有未受损帧的未压缩视频1460输出。未压缩帧选择器1450基于传输系统已经遭受的损坏来选择帧。

图15更详细地示出了图14中视频流提供器的视频解码器。如图15所示,从卫星a输出的视频流1505和从卫星b输出的视频流1510被同步。来自卫星a的视频流1505的帧用时间序列被标记为t1_a至tx_a。因而,在示出11个帧的该情况下,来自卫星a的视频流1505的帧被标记为t1_a至t11_a。来自卫星b的视频流1510的帧用时间戳序列被标记为t1_b至tx_b。因而,在示出来自卫星b的视频流1510的11个帧的该情况下,被组装的帧用时间序列被标记为t1_b至t11_b。

视频解码器a1445解码来自卫星a的视频流1505的压缩帧,并产生未压缩视频帧输出1550序列。在解码视频帧输出1550中,未压缩帧被标记为t2_a、t3a、t4a、t5_a,t6_a是不完整的,显示了表示每个帧可恢复数据的量的百分比值。类似地,视频解码器b1440解码来自卫星b的视频流1510的压缩帧,并产生未压缩视频帧输出1545序列,其中标记为t7_b和t8_b的帧是不完整的,显示了表示每个帧可恢复数据的量的百分比值。

未压缩帧选择器1450使用损坏帧的知识,即表示每个帧可恢复数据的量的百分比值,以产生输出帧序列1555。例如,图15中复合帧序列1555只使用序列1545和1550的完整帧。复合帧序列1555显示了帧t1_a由卫星a提供。t2_b、τ3_β、t4_b、t5_b和t6_b帧由卫星b提供,后续帧由卫星a提供。可替换地,输出帧序列1555可包括其中可恢复数据的百分比大于或等于阈值百分比的帧。因而,可组装来自卫星馈送a和b的、已知良好帧和最少损坏帧的序列,用于最终呈现。在本实施例中,需要指出的是,输出帧序列1555由未压缩帧组成。

图16为示出了根据示例性实施例对应图14和图15的实施例的视频数据重建的示例处理的流程图。视频数据重建1600的处理开始于从主卫星接收1610数据,同时,在相同或相似的时刻,从补充卫星接收1640数据。来自补充卫星的数据被解码成未压缩视频帧,并记录错误帧1645。操作1645可包括类似于图13中操作1390和1375的操作,除了数据是解码数据因而是未压缩的。来自主卫星的数据也被解码成未压缩视频帧,记录1615错误帧。操作1615可包括类似于图13中操作1315和1320的操作,除了数据是解码数据因而是未压缩的。

接着,来自操作1645和1615的解码数据被转到操作1620。在操作1620中,包括数据错误的主卫星数据的帧用来自补充卫星数据的已知良好帧替换。该替换可使用时间码戳,以对齐两个帧集。接着确定1625来自主卫星数据的数据错误是否过多。为了确定数据错误是否过多,可以对预定的一段时间内数据错误的数量进行计数并将其与阈值进行比较。如果错误数量等于或大于阈值,则确定数据错误过多;否则,确定数据错误不过多。阈值可以用实验方法设置,并且可以是预先确定的。如果数据错误不过多1630,输出1650未压缩视频帧。然而,如果数据错误过多1630,主卫星和补充卫星被交换。换句话说,使主卫星成为补充卫星,使补充卫星成为主卫星。接着,输出1650未压缩视频帧。

因而,图16中的处理类似于图13中的处理,除了首先解码数据以产生未压缩数据,并使用未压缩数据的帧。因此,对图13中的处理的描述也适用于此处,并不再重复。因而,根据处理1600,在良好的接收条件下,一个卫星被选择为主数据馈送1610,解码输出中的错误帧用补充卫星的视频流的已知良好帧替换。当来自主卫星的错误被确定为过多时,补充卫星可与主卫星调换角色。

图14至图16中描述的实施例采用两个单独的视频编码器,每个视频编码器可使用任何适当的编码方案,例如,mpeg-2、mpeg-4或hevc。因而,由于压缩视频帧可具有不同的编码方案,不能可靠地假定压缩视频帧是彼此完全对应的。通过首先解码视频帧并替换未压缩帧,对编码器的唯一要求是所得到的压缩视频可由视频流提供器解码。由此得到的系统非常灵活,不依赖于编码器之间的对应关系。

图17为根据一个示例性实施例的视频流提供器的框图。以上描述的处理可在图17中的视频流提供器上实现。例如,以上描述的视频流提供器可使用图17中的视频流提供器实现。如图17所示,视频流提供器1700包括平台1710,平台1710包括操作以执行指令的处理器1714和存储器1716。例如,处理器1714可以是微控制器或微处理器。另外,平台1710可从多个输入设备1720,诸如键盘、鼠标、触摸设备或语音命令接收输入。平台1710可另外与可移动存储设备1730连接,所述可移动存储设备1730诸如便携式硬盘驱动器、光学介质(cd(致密盘)或dvd(数字多功能盘))、磁盘介质或处理器1714可从其读取可执行计算机程序代码的任何其他有形介质。

平台1710进一步包括通信地耦接至网络1790的网络接口(i/f)1770。这样,视频流提供器可与外部资源(例如,视频存储和/或电视广播系统)通信,以接收和/或发送视频流。这使得视频流提供器根据以上所描述来处理视频流。平台1710可通信地耦接至连接到互联网或诸如lan或wlan等本地网络的其他组件的网络资源1780。本地网络可以是公共或专用网络。网络资源1780可从网络1790上的远程位置向平台1710提供指令和数据。到网络资源1780的连接可通过诸如802.11标准、蓝牙或蜂窝协议等无线协议,或通过诸如电缆或光纤等物理传输介质来实现。网络资源1780可在与平台1710分离的位置包括用于存储数据和可执行指令的存储设备。平台1710与显示器1750进行交互,以向用户输出包括视频数据流和其他信息的图形用户界面和/或视频数据,并且从用户请求附加指令和输入。显示器1750还可以进一步充当用于与用户交互的输入设备1720,例如当显示器1750包括触敏屏幕时。

本文所用的术语“计算机可读存储介质”是指参与向处理器1714提供指令用于执行的任何有形介质,例如盘或半导体存储器。例如,计算机可读存储介质可以是由可移动存储设备1730或存储器1716或位于网络1790的设备上的存储设备可读的可移动磁盘,每个存储设备可由视频流提供器1700的处理器1714访问。

此处的示例性实施例通过使用来自第二视频流的数据分组来校正第一损坏的视频,使得通过数据分组替换而不用组装视频帧,或通过组装压缩视频帧和替换压缩视频帧,或通过解压缩视频帧和替换解压缩视频帧进行校正。

上述示例性实施例和优点仅仅是示例性的,而不应被解释为限制本发明的概念。本发明的概念可以容易地应用到其他类型的装置上。此外,示例性实施例的描述旨在说明而非限制权利要求的范围,并且许多替换、修改和变化对于本领域技术人员将是明显的。虽然已经参照特定示例性实施例描述了本发明的概念,但是应当理解,在不脱离由所附权利要求限定的本发明构思的精神和范围的情况下,可以对其进行修改和变化。

现在,将在这里从稍微不同的角度,用罗马数字列举一组实施例。

i.一种存储指令的非瞬态计算机可读存储介质,当该指令被计算机的处理器执行时,使得计算机:

接收包括多个第一视频帧的第一视频流;接收包括多个第二视频帧的第二视频流,其中第二视频帧对应所述第一视频帧;

确定第一视频帧的受损视频帧,受损视频帧具有数据错误;

用来自多个第二视频帧的对应视频帧替换受损视频帧,以产生校正的视频流;以及

输出校正的视频流。

ii.根据权利要求i所述的计算机可读介质,其中缺失节目参考时钟(pcr)戳、呈现时间戳(pts)、失序连续性计数器(cc)、循环冗余校验(crc)错误、或传输错误指示符(tei)的第一视频帧的视频帧被确定为受损视频帧。

iii.根据权利要求i所述的计算机可读介质,在确定受损视频帧之前,进一步包括解码第一视频流和第二视频流,

其中从解码的第一视频帧确定受损视频帧。

iv.根据权利要求i所述的计算机可读介质,其中第一视频帧是压缩视频帧,第二视频帧是压缩视频帧。

v.根据权利要求i所述的计算机可读介质,其中第一视频帧和第二视频帧均包括时间戳信息,以及

受损视频帧基于第一视频帧和第二视频帧中包括的时间戳信息被替换。

vi.根据权利要求v所述的计算机可读介质,其中时间戳信息被插入到第一视频流和第二视频流,作为预留给辅助时间码信息的辅助数据分组。

vii.根据权利要求vi所述的计算机可读介质,其中第一视频流使用时间戳信息与第二视频流同步。

viii.根据权利要求i所述的计算机可读介质,其中第一视频流和第二视频流同步。

ix.根据权利要求i所述的计算机可读介质,包括另外的指令,当该指令被执行时,使得计算机:

基于所确定的受损视频帧确定一组连续的受损视频帧,

其中所确定的一组连续的受损视频帧用来自多个第二视频帧的对应的连续视频帧的组替换,以生成校正的视频流。

x.根据权利要求ix所述的计算机可读介质,其中所确定的连续受损视频帧的组根据可恢复的帧的百分比来确定。

xi.一种集成的接收机和解码器(ird)计算机,包括:

数据分组监视器,被配置为确定包括多个主要视频帧的主要视频流的受损视频帧,并且确定包括多个次要视频帧的次要视频流的受损视频帧,其中受损视频帧具有数据错误,并且次要视频流对主要视频流是冗余的;

帧选择器,被配置为对受损主要视频帧的数量进行计数,并输出指示受损主要视频帧的数量是否大于或等于阈值数的帧选择信息;以及

pes分组选择器,被配置为,基于帧选择信息,当受损主要视频帧的数量大于阈值数时,用次要视频帧的对应视频帧替换受损主要视频帧,以产生校正的视频流,当受损次要视频帧的数量大于或等于阈值数时,用主要视频帧的对应视频帧替换受损次要视频帧,以产生校正的视频流,并输出校正的视频流。

xii.根据权利要求xi所述的ird,其中缺失节目参考时钟(pcr)戳、呈现时间戳(pts)、失序连续性计数器(cc)、循环冗余校验(crc)错误、或传输错误指示符(tei)的主要视频帧的视频帧被确定为受损视频帧。

xiii.根据权利要求xi所述的ird,其中主要视频帧和次要视频帧均包括时间戳信息,以及

受损视频帧基于主要视频帧和次要视频帧中包括的时间戳信息被替换。

xiv根据权利要求xiii所述的ird,其中时间戳信息被插入到主要视频流和次要视频流,作为预留给辅助时间码信息的辅助数据分组。

xv.根据权利要求xi所述的ird,其中主要视频流使用时间戳信息与次要视频流同步。

xvi.根据权利要求xi所述的ird,其中主要视频流和次要视频流同步。

xvii.根据权利要求xi所述的ird,其中主要视频帧是压缩视频帧,次要视频帧是压缩视频帧,以及

ird进一步包括:

主要压缩帧组装器,通信地耦接到数据分组监视器和帧选择器,并且被配置为组装压缩的主要视频帧,并为帧选择器提供组装帧;以及

次要压缩帧组装器,通信地耦接到数据分组监视器和帧选择器,并且被配置为组装压缩的次要视频帧,并为帧选择器提供组装帧。

xviii.根据权利要求xi所述的ird,进一步包括:

主要视频解码器,通信地耦接到数据分组监视器和帧选择器,并且被配置为将主要视频帧解码成解压缩的主要视频帧,并将解压缩的主要视频帧提供给帧选择器;以及

次要视频解码器,通信地耦接到数据分组监视器和帧选择器,并且被配置为将次要视频帧解码成解压缩的次要视频帧,并将解压缩的次要视频帧提供给帧选择器。

xix.一种方法,包括:

从主要卫星下行链路接收包括多个主要视频数据分组的主要视频流;

从次要卫星下行链路接收包括多个次要视频数据分组的次要视频流,次要视频流对主要视频流是冗余的;

确定主要视频数据分组的受损视频数据分组;

通过用对应的已知良好次要视频数据分组替换主要视频流的受损主要视频数据分组,来产生校正的视频流;以及

输出校正的视频流。

xx.根据权利要求xix所述的方法,其中通过替换受损主要视频帧分组,来产生校正的视频流包括:

对受损主要视频帧分组的数量进行计数;并且当受损主要视频帧分组的数量大于或等于阈值数时,通过将主要视频流更改为次要视频流来产生校正的视频流,当受损主要视频帧分组的数量小于阈值数时,用对应已知良好次要视频帧分组替换主要视频流的受损主要视频帧分组,以产生校正的视频流。

上文主要参照几个实施例描述了本发明。然而,本领域技术人员容易理解的是,在由所附专利权利要求所限定的本发明的范围内,同样可能存在除了上述公开的实施例之外的其他实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1