视频处理方法和实施所述方法的视频设备的制作方法

文档序号:7791704阅读:388来源:国知局
视频处理方法和实施所述方法的视频设备的制作方法
【专利摘要】本发明涉及缓冲和解码原始视频流的编码帧,借以产生反向视频流。在原始视频流的帧之间选择将要显示的帧(602),所述帧的选择基于反向视频流的帧显示次序来进行。检查解码帧的列表中是否原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且相对解码帧是否实际上被缓冲(702-703)。如果是这种情况,那么解码所选择的帧。如果不是这种情况,那么解码所选择帧中不在解码帧的列表中的所有参考帧(706-707),并且缓冲所述相对解码的参考帧,其中如果没有缓冲存储区可使用,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧(901-912)。
【专利说明】视频处理方法和实施所述方法的视频设备

【技术领域】
[0001]本发明涉及视频处理方法的领域,并且具体来说,涉及用于视频流的反向播放(倒回(rewind))的视频处理方法。
[0002]本发明优选地应用于如机顶盒的视频设备中,所述视频设备具有可用于视频处理的有限存储器。

【背景技术】
[0003]数字视频流由应按顺序显示的多个视频帧组成;视频流的品质越高,对应流的大小(以字节为单位)越大。
[0004]为了减小所需的传输带宽或所需的存储空间,众所周知的是,根据不同的压缩标准来压缩视频流。
[0005]MPEG视频采用三种不同的压缩算法以用于压缩帧:1帧,无需其它的帧被解码(帧内编码巾贞);P巾贞,需要前一个P巾贞被解码(巾贞间编码巾贞);以及B巾贞,需要前一个和下一个I帧或P帧被解码(帧间编码帧)。
[0006]因此,MPEG视频流包括I帧、P帧和B帧的序列。视频序列的长度取决于视频流的内容,并且可多达几Mb。
[0007]尽管在正向播放中仅应缓冲少量视频帧以便显示视频帧的正确序列,但是倒回需要存储视频序列的所有帧以便解码所述序列的最后一个帧,即,应在反向模式中最先显示的帧。
[0008]如机顶盒(STB)和电视机的大多数视频设备不具有用于缓冲长视频序列的所有视频帧的这种大型RAM存储器,因此视频流的倒回需要一些技巧。
[0009]具体来说,当需要视频设备来支持“特技模式”时,即在不同速度下播放视频流(正向播放或反向播放)时,会更深刻地体会到这个问题。在这种情况下,如果速度高于xl,那么应其它的帧添加至将要显示的帧序列中。
[0010]为了减小反向播放MPEG视频所必需的缓冲量,已知的是在视频设备以倒回模式操作时仅显示I帧。然而,这种解决方案具有的缺点是:可使得用户不悦的差动视频输出。
[0011]IBM名下的美国专利US 6,327,421公开一种方法,所述方法用于在包括视频服务器和客户端的MPEG传输系统中实现快速正向播放和倒回。MPEG压缩画面的原始序列的比特流被存储来用于正常播放。随后,原始序列中由每一第η个画面组成的子序列被压缩成I画面,同时确保压缩流中的所有画面具有相等的比特数。这种流称为辅助流。对快速正向播放的客户端请求由视频服务器响应,所述视频服务器传输来自辅助流的I画面子集。快速反向播放请求以相同方式获得满足,例外之处在于I帧是以相反次序传输。
[0012]US 6,327,421所建议的解决方案并不令人满意,因为为了获得流畅的视频倒回,必需产生具有大量I帧的辅助视频流,已知所述辅助视频流未受过多压缩。
[0013]另外,US 6,327,421所公开的解决方案用于在相对于由用户操作的视频设备较远的一个位置中产生反向视频流。因此,这种解决方案无法用于视频流的局部倒回,即无法在未连接至远程视频服务器的单一视频设备中使用。
[0014]因此,存在对不需要分配巨大量资源的流畅倒回的需求。


【发明内容】

[0015]因此,本发明的一个目标是提出一种克服已知视频设备的倒回缺点的视频处理方法和视频设备。
[0016]具体来说,本发明的一个目标是提出一种用于视频流快速倒回的方法,所述方法允许对正在显示的视频流的流畅观看。
[0017]本发明的另一个目标是提出一种允许产生输出视频流的视频设备,并且具体来说是机顶盒,所述输出视频流一旦在屏幕上显示时就不存在从一个画面到另一个画面的匆促过渡(rush passage)。
[0018]本发明的这些目标和其它目标是借助于包括所附权利要求书的特征的视频处理方法和视频设备来实现,所述权利要求书是本说明书的整体部分。
[0019]发明人已想到一种用于从原始视频流产生反向视频流的视频处理方法。缓冲和解码原始视频流的编码帧,借以产生反向视频流,其中根据一个次序来组织解码帧,所述次序与原始视频流的显示次序相反。根据所述方法,在原始视频流的帧之间选择将要显示的帧,帧的选择基于反向视频流的帧显示次序来进行。所述方法进一步用于检查解码帧的列表中是否原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且相对解码帧是否实际上被缓冲。如果所有参考帧已被解码并且实际上被缓冲,那么解码所选择的帧。如果并非所有参考帧已被解码并且实际上被缓冲,那么所述方法用于解码所选择帧中不在解码帧的列表中的所有参考帧,并且缓冲所述相对解码的参考帧,其中如果没有缓冲存储区(buffermemory)可用于缓冲一个解码帧,那么就释放存储不存在于将要显示的帧的列表中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧。一旦所选择的帧被解码和缓冲,就以用于将所选择的解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的帧的列表。选择原始视频流的下一个视频帧作为反向视频流的下一个视频帧,随后针对所述下一个视频流重复所述方法的选择和解码步骤。
[0020]这种解决方案具有的优点是反向视频流的帧可在较短时间内用于显示,因为在可开始反向视频流的输出之前不必解码和存储原始视频流的所有视频帧。
[0021]在一个实施方案中,如果参考巾贞中的一个未被解码和缓冲,那么针对参考巾贞递归地重复所述方法的选择和解码步骤,直到所述一个参考帧已被解码和缓冲为止。
[0022]这种递归解决方案允许减小用于实施所述方法的所需缓冲存储区。
[0023]在优选的实施方案中,视频处理方法在单一设备中执行。因此无需产生辅助流的外部装置。
[0024]在优选的实施方案中,反向视频流的至少一个视频序列包括原始视频流的所有帧。这种解决方案用于流畅倒回。
[0025]在一个实施方案中,所述方法用于缓冲原始视频流的至少两个MPEG视频序列,并且如果没有缓冲存储区可用于存储所述两个MPEG视频序列,那么所述方法就用于根据不同的方法来产生反向视频流,例如,通过仅播放MPEG视频序列的I帧来产生反向视频流。这种解决方案灵活并且高效。
[0026]在一个优选的实施方案,所述方法进一步包括以下步骤:对所述原始视频流的所缓冲的编码帧编索引以便定义所述帧显示次序,并实施帧选择和帧解码的步骤。这种解决方案允许对将要显示的视频帧的快速选择。
[0027]在一个方面中,本发明还涉及计算机程序和视频设备,所述程序和视频设备适合于实施根据以下描述和权利要求中书中提出的教导内容的视频处理方法。

【专利附图】

【附图说明】
[0028]在视频处理方法和用于视频流反向播放的相关系统的优选、非排他性实施方案的详细描述中,本发明的其它特征和优点将变得明显,所述实施方案借助于附图而描述成本发明的非限制性实施例,在附图中:
[0029]-图1示意性地表示根据本发明的视频设备;
[0030]-图2示意性地表示MPEG视频流,
[0031]-图3为根据本发明的实施方案的视频处理方法的流程图;
[0032]-图4为显示图3的视频处理方法的线程的流程图,
[0033]-图5为显示图3的视频处理方法的序列加载线程的流程图。
[0034]-图6为显示图3的视频处理方法的序列解码线程的流程图。
[0035]-图7和图8为在图6的序列解码线程期间执行的帧解码线程的流程图。
[0036]-图9为在图7和图8的帧解码线程期间执行的缓冲区释放线程的流程图。
[0037]-图10示意性地表示将要显示的帧的列表。
[0038]这些图式例示出本发明的不同方面和实施方案,且在适当情况下,不同图中的相同结构、部件、材料和/或元件由相同参考数字指示。

【具体实施方式】
[0039]尽管本发明容许各种修改和替代构造,但是图式中已示出了本发明的某些说明性实施方案,并且将在以下详细描述。然而,应理解的是,不意图将本发明限制于所公开的特定形式,而相反的是,本发明将涵盖属于如权利要求书中所限定的本发明的精神和范畴内的所有修改、替代构造和等效物。
[0040]在以下描述和图式中,相同元件使用相同参考数字来标识。除非另有说明,否则“例如(e.g.) ”、“等(etc.) ”和“或(or) ”的使用指示无限制的非排他性替代物。除非另有说明,否则“包括(including) ”的使用意思是“包括但不限于”。
[0041]图1示意性地例示视频设备100。为清楚起见,图1中仅表示出视频设备100的最重要功能块,尽管意图在视频设备100上可提供其它特征。在以下实施例中,视频设备100为机顶盒,然而在其它实施方案中,视频设备100可为适合于输出视频信号或在屏幕上直接显示视频信号的任何装置;举例来说,所述视频设备可为电视机、DVR(数字视频录像机)、移动电话或掌上计算机。
[0042]视频设备100包括用于接收数字电视信号的前端101,所述数字电视信号特别是包括MPEG压缩视频包的传输流。前端101包括调谐器,所述调谐器用于调谐用户选择的视频信道并且向处理器102提供IF(中频)信号。
[0043]处理器102包括CPU (中央处理单元1020)、音频处理器1021、视频处理器1022、系统接口块1023、连接性块1024。这些块之间的通信借助于例如IC2总线的总线1025来实现。
[0044]来自前端101的电视信号由处理器102接收,其中这些电视信号在由CPU 1020执行的剖析程序(parser)之前被解调,以便分离所接收的传输流的视频包和音频包。视频包由视频处理器1022处理,而音频包由音频处理器1021处理。
[0045]系统接口块1023允许与包括不同类型的存储器的存储块103通信:非易失性存储器1030(例如,闪存(FLASH)、NAND, NOR)、易失性存储器1031 (RAM、DRAM)和存储装置1032 (例如,硬盘驱动器HDD或固态驱动器SDD)。
[0046]非易失性存储器存储供视频设备100的正确引导和操作所必需的驱动程序和应用程序,而存储装置优选地用于存储所记录的视频流。非易失性存储器存储计算机程序的代码部分,所述计算机程序由处理器102运行来用于视频流200的反向播放,如以下描述中更好地说明。
[0047]连接性块1024用于管理与外部部件104的连接,所述外部部件如USB端口 1040、通过以太网协议进行通信的网络接口卡1041等。
[0048]视频设备100进一步包括音频I/O块105和视频I/O块106。块105和块106用于从不同来源接收音频和视频,所述不同来源如DVD读出器、蓝光光盘读出器、模拟放大器、卡带式录像机等。块105和块106进一步表示音频输出和视频输出,例如将要提供至电视机的HDMI输出。
[0049]因此,处理器102被适配来处理存储在存储装置1032中的或通过前端101或通过块106或通过连接性块1024接收的MPEG A/V信号,例如IPTV(互联网协议电视)信号。
[0050]图2示意性地例示视频流200,所述视频流可由视频设备通过上述接收装置中的任何一个(例如通过前端101或视频I/O接口 106)来接收,或可存储于视频设备100的存储装置1032中。
[0051]示例性视频流200包括多个视频序列2001,每一个视频序列包括序列首部2002、视频和比特流参数2003和画面组(GOP) 2004。
[0052]GOP由利用参考数字201至20N指示的I帧、P帧和B帧的序列构成。在图2的实施方案中,帧的序列为1、B1、P1、B2、P2、B3、P3、B4。
[0053]当视频设备100接收命令来将视频流200倒回时,所述视频设备开始一种视频处理方法,在此参考图3至图9描述所述方法。
[0054]接收倒回命令(步骤301)之后,处理器102将缓冲区和存储列表初始化(步骤302),所述缓冲区和存储列表将用于视频流的反向播放(如下文更好地描述)。
[0055]接着,由处理器102并行地开始两个线程(303和304)。
[0056]一方面,处理器102开始将参考图4描述的帧显示线程303,而另一方面,处理器102开始视频处理线程304,所述视频处理线程意图输出将由帧显示线程303显示的视频帧。如以下描述中更好地详述,线程304主要集中在两个步骤:加载将要显示的视频序列(步骤3041)以及根据智能算法对其进行解码(步骤3042)。
[0057]当开始帧显示线程303 (步骤401)时,所述线程一直等待用于开始视频帧的显示的触发(步骤402)。在一个实施方案中,显示触发由时钟基于视频输出106上的帧显示频率产生。举例来说,对于50Hz的输出,将每20ms产生一次触发。
[0058]显示触发可例如在用户停止视频回放并停留在一个图像上的情况下中断。
[0059]如果接收到显示触发,那么线程303检查将要显示的帧的列表1000是否存在将要显示的帧(步骤403)。在一个实施方案中,将要显示的帧的列表为将帧ID映射到显示次序的表,如图10中所示出,图中指定了根据本发明的一个实施方案的将要显示的帧的列表。因为视频帧的显示次序还存储在其它表(例如,以下将描述的序列索引表)中,所以将要显示的帧的列表可精简为存储在缓冲存储区中并周期性更新的帧ID的序列。
[0060]如果列表上没有帧,那么过程回到步骤402,等待新的显示触发。如果将要显示的帧的列表1000不为空,那么将要显示的第一个帧被提供至视频I/O 106以用于显示(步骤404)。接着,从列表1000移去已显示的帧(步骤405)并且过程前进至决定步骤406,其中处理器102检查显示线程303是否应结束。可基于用户命令做出这个决定,例如由于已由处理器102通过用户接口接收到关闭视频设备的请求,所述用户接口例如从由视频设备的用户操作的遥控器接收命令的红外接收器。或者,可独立于用户的命令来做出这个决定,例如由于已达到流的末端,或已发生解码的严重错误。
[0061]如果未做出中断显示线程303的决定,那么过程返回至步骤402,等待新的显示触发。
[0062]处理视频流200的帧以用于反向回放并准备显示的方法取决于视频处理线程303,现参考图5至图9描述所述视频处理线程。
[0063]首先,视频处理线程检查是否存在足够的存储区可用于缓冲将要回放的视频序列2001 (步骤502)。在优选的实施方案中,视频设备100包括8Mb的缓冲存储区,所述存储区通常足以存储高清晰度(HD)视频流的两个1.5s长的视频序列2001。
[0064]如果存在可用的足够缓冲存储区,那么将要处理的视频序列被加载到缓冲存储区中(步骤503)并且对视频序列分析和编索引。具体来说,视频设备100将块103的预定存储区域分配用于存储序列索引表,在一个实施方案中,所述序列索引表为表1中例示的类型,并且一旦视频序列已加载,就对这个表进行填写:
[0065]

【权利要求】
1.一种用于从原始视频流产生反向视频流的视频处理方法,所述方法包括以下步骤: -缓冲所述原始视频流的编码帧; -将所缓冲的编码帧解码,以及 -产生反向视频流,其中根据一个次序组织所述解码帧,所述次序与所述原始视频流的显示次序相反; 其特征在于包括以下步骤: a)在所述原始视频流的帧之间选择将要显示的帧(602),所述帧的选择基于所述反向视频流的所述帧显示次序来进行; b)检查解码帧的列表中是否所述原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且所述相对解码帧是否实际上被缓冲(702-703); c)如果所有参考帧已被解码并且实际上被缓冲,那么去往步骤d);如果并非所有参考帧已被解码并且实际上被缓冲,那么解码所选择帧中不在解码帧的所述列表中的所有参考帧,并且缓冲所述相对解码的参考帧(706-707),其中如果没有缓冲存储区可用于缓冲一个解码帧,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧(901-912); d)将所选择的帧解码并缓冲所述解码帧; e)以用于将所选择的解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的中贞的列表(604), f)选择所述原始视频流的下一个视频帧¢02),所述下一个视频帧为所述反向视频流的所述下一个视频帧, g)针对所述下一个视频流重复步骤a)至步骤e)。
2.如权利要求1所述的方法,其中如果所述参考帧中的一个未被解码和缓冲,那么使所述将要解码的一个参考帧视为步骤b)的所选择的帧,并且递归地重复步骤c)至步骤d)直到所述一个参考帧已被解码和缓冲为止。
3.如权利要求1或2所述的方法,其中所述方法在一个单一设备中执行。
4.如权利要求1或2或3所述的方法,其进一步包括以下步骤:显示包括在将要显示的帧的所述列表中的解码帧。
5.根据前述权利要求中任一项所述的方法,其中所述反向视频流的至少一个视频序列包括所述原始视频流的所有帧。
6.根据前述权利要求中任一项所述的方法,其中所述方法用于缓冲所述原始视频流的至少两个MPEG视频序列,并且其中如果没有缓冲存储区可用于存储所述两个MPEG视频序列,那么所述方法就用于根据不同于步骤d)至步骤g)中的一个的方法来产生反向视频流。
7.根据前述权利要求中任一项所述的方法,其进一步包括以下步骤:对所述原始视频流的所缓冲的编码帧编索引以便定义所述帧显示次序,并实施帧选择和帧解码的步骤。
8.一种计算机程序产品,其可加载到视频设备的存储器中并且包括代码部分,所述代码部分一旦由所述视频设备的处理器运行就执行根据权利要求1至7中任一项所述的方法。
9.一种存储计算机可执行指令的计算机可读介质,当所述指令在计算机上执行时执行根据权利要求1至7中任一项所述的计算机实施方法的所述所有步骤。
10.一种视频设备,其包括: 存储缓冲区,其用于暂时存储原始视频流上的帧, 控制单元,其响应于反向播放命令来用于处理所述原始视频流,并且通过根据一个次序解码所述原始视频流的帧来产生反向视频流,所述次序与所述原始视频流的所述显示次序相反, 其特征在于,所述控制单元被适配来: a)在所述原始视频流的帧之间选择将要显示的帧(602),所述帧的选择基于所述反向视频流的所述帧显示次序来进行; b)检查解码帧的列表中是否所述原始视频流中对解码所选择的帧必需的所有参考帧已被解码,并且所述相对解码帧是否实际上被缓冲(702-703); c)如果所有参考帧已被解码并且实际上被缓冲,那么去往步骤d);如果并非所有参考帧已被解码并且实际上被缓冲,那么解码所选择帧中不在解码帧的所述列表中的所有参考帧,并且缓冲所述相对解码的参考帧(706-707),其中如果没有缓冲存储区可用于缓冲一个解码帧,那么就释放存储不存在于将要显示的帧的列表(1000)中的最早解码帧并且不存储所选择帧的参考帧的缓冲区,并在所释放的缓冲区中缓冲所述解码帧(901-912), d)将所选择的帧解码并缓冲所述解码帧; e)以用于将所选择的解码帧作为所述反向视频流的帧输出的次序信息更新将要显示的中贞的列表(604), f)选择所述原始视频流的下一个视频帧¢02),所述下一个视频帧为所述反向视频流的所述下一个视频帧, g)针对所述下一个视频流重复步骤a)至步骤e)。
11.如权利要求10所述的视频设备,其中如果所述参考帧中的一个未被解码和缓冲,那么所述控制单元被适配来使将要解码的一个参考帧视为步骤b)的所选择的帧,并且递归地重复步骤c)至步骤d)直到所述一个参考帧已被解码和缓冲为止。
12.如权利要求10或11所述的视频设备,其进一步包括显示装置,所述显示装置被适配来显示包括在将要显示的帧的所述列表中的解码帧。
13.根据权利要求10至12中任一项所述的视频设备,其中所述反向视频流的至少一个视频序列包括所述原始视频流的所有中贞。
14.根据权利要求10至13中任一项所述的视频设备,其中所述存储缓冲区被适配来缓冲所述原始视频流的至少两个连续MPEG视频序列,并且其中如果没有缓冲存储区可用于存储所述两个连续MPEG视频序列,那么所述控制单元被适配来根据不同于步骤d)至步骤g)中的一个的方法来产生反向视频流。
【文档编号】H04N9/804GK104185982SQ201380011149
【公开日】2014年12月3日 申请日期:2013年2月7日 优先权日:2012年2月29日
【发明者】马尔辛·扎莱夫斯基 申请人:远升科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1