从经压缩的正常播放图像比特流中建立特技播放图像流的系统和方法

文档序号:7575013阅读:286来源:国知局
专利名称:从经压缩的正常播放图像比特流中建立特技播放图像流的系统和方法
技术领域
本发明全面地引用了称为ISO/IEC 13818的ISO/IEC MPEG规范,该规范列作本发明的参考。
本发明属于点播电视系统和图像压缩技术领域。具体地说,本发明涉及从一个正常播放的经压缩的图像比特流中建立经压缩的快进和快退图像比特流的方法和系统。
点播电视系统能使许多用户或观众有选择地观看存储在一个或多个电视服务器或媒体服务器上的电影或其他声/像节目。电视服务器通过诸如广播网之类的数据传送信道接至各用户。例如,电视服务器可以通过电缆广播系统或卫星广播系统接至各用户。电视服务器存有大量的电影或其他声/像节目,每个用户可以从中选择一个或多个电影进行观看。每个用户有一个电视机或其他观看装置以及相应的解码逻辑,以便选择和观看所要观看的电影。当一个用户选择某个电影时,所选的电影就通过数据传送信道之一传送给这个用户的电视机。
全运动数字图像需要大的存储容量和传输带宽。因此,点播电视系统采用各种图像压缩算法来减小必需的存储容量和传输带宽。通常,对于静止图形图像和全运动图像所采用的图像压缩方法是不同的。静止图形图像或单个图像帧的图像压缩方法称为帧内压缩方法,而运动图像的压缩方法称为帧间压缩方法。
静止图形图像的图像数据压缩的例子有RLE(行程长编码)和JPEG(联合图象专家组)压缩。RLE压缩方法对比特图的单行中重复的像素进行测试,存储的是连续重复像素的个数而不是像素本身的数据。JPEG压缩是一组有关标准,提供无损(无图像质量退化)或有损(察觉不到有严重退化)的压缩方式。虽然JPGE压缩原来是为压缩静止图像而不是运动图像设计的,但JPEG压缩也用于某些运动图像的压缩。
与静止图像压缩算法相反,大多数运动图像压缩算法是为压缩全运动图像设计的。运动图像的图像压缩算法利用了一个称为帧间压缩的概念,在数据文件中只存储相继帧之间的差别。帧间压缩通常以适度压缩的格式存储关键帧或基准帧的整幅图像。后继帧与关键帧加以比较后,可只将关键帧与后继帧之差存储起来。周期性地,如在显示新场景时,存储新关键帧,再从这个新的基准点开始相继进行比较。应注意的是,帧间压缩比可以保持恒定,但图像质量就不是恒定的。或者,帧间压缩比可以是与内容有关的,也就是说如果要压缩的运动图像含有许多从一个图像到另一个图像场景变化很大的突然转换,那么压缩比就要小一些。采用帧间压缩技术的图像压缩有MPEG、DVI、Indo等。MPEG技术背景称为MPEG(运动图像专家组)压缩的压缩标准是一组采用上述帧间压缩技术对全运动图像进行压缩和解压缩的方法。MPEG压缩利用了运动补偿和离散余弦变损(DCT)处理,压缩比可以达到200∶1以上。
MPEG压缩要求伴音与图像数据同时录取,图像和伴音数据交织在单个文件内,以保证在播放期间图像和伴音同步。伴音数据通常也是压缩的,MPEG标准规定了一种伴音压缩方法,诸如MPEG LayerⅡ,Philips商标名为“MUSICAN”。
在大多数的图像序列中,背景保持相对稳定,而行动发生在前景中。背景可以运动,但在一个图像序列中的相继帧的大部分是冗余的。在产生MPEG流的过程中,MPEG编码器产生一系列I(帧内编码)帧、P(预测)帧和B(双向内插)帧。I帧含有整帧图像的图像数据,通常每10至15帧有一个I帧。P帧仅包括相对上一帧(I帧或P帧)的变化。I帧和P帧都用作下一帧的基准帧。通常,在一个I帧或P帧后的帧(也就是基准帧后的帧)只有少部分与基准帧的相应部分有所不同。因此,对于这些帧来说,只要获取差值加以压缩和存储。
建立了I帧后,MPEG编码器将每个I帧划分成称为宏块的一些16×16像素的正方形,构成一个网格。各I帧划分成宏块是为了进行运动补偿。每个I帧后的后继画面也划分成这样的一些宏块。然后,编码器对基准画面宏块与在相应后继画面中的那些宏块之间的精确或接近精确匹配的进行搜索。如果发现一个匹配点,就产生一个向量位移码或运动向量。向量位移码或运动向量只包括I帧与相应后继画面之间的差别的信息。后继画面中相对基准画面或I帧中的宏块没有改变的那些宏块不予处理。因此,对于这些帧实际存储的数据量就大大减少。
产生运动向量后,编码器就利用空间冗余性跟踪这些变化。因此,在发现宏块位置变化后,MPEG算法通过反映相应宏块之间的差别进一步减少数据。这是通过一个称为离散余弦变换(DCT)的匹配过程来实现的。这个过程将宏块分成四个子块,找出在彩色和亮度上的变化。由于人对亮度变化比彩色变化更为敏感,因此MPEG算法对色彩空间的压缩要比亮度更为大一些。
一个MPEG流包括三种画面,分别称为帧内编码(I)帧、预测(P)帧和双向内插(B)帧。帧内编码帧提供随机接入文件的入口点,通常只受到适度压缩。预测帧以上一帧(即上一个帧内编码帧或预测帧)为基准编码。通常,预测帧受到较大压缩,用作后继预测帧的基准。双向内插画面受到压缩最大,编码需要利用前一个和后一个基准帧。双向内插帧从不用作其他帧的基准帧。
每个画面或帧还包括一个标识本帧的画面标题以及本帧的信息。MPEG标准还包括一些各标识一个图像序列的起点的序列标题。序列标题只在一个图像序列开始前需要。然而,MPEG-2标准允许在任何I帧或P帧前传输一个序列标题。序列标题包括与图像序列有关的信息,如帧速率和画面大小及其他信息。
在数字电视应用中所用的MPEG比特流通常在每个I帧和P帧前有一个序列标题。这有利于满足一个重要的用户要求--在不同的电视信道之间进行信道扫视(channel surfing)。通常,在用户切换到一个新的信道时,这个新信道上的图像一直要到比特流中的下一个序列标题出现时才能显示。这是因为序列标题中含有解码器所需的有关这个图像序列的重要信息。如果在每个I帧和/或P帧前没有一个序列标题,那么在用户切换到一个新的信道时,这个新信道上的图像就不能立即显示,也就是说要到下一个序列标题到来后才能显示。
一个MPEG流还包括用来对MPEG比特流中的I帧进行解码的加权矩阵。每个加权矩阵包括一个由作用于用来对帧进行编码的离散余弦变换(DCT)的不同参数的系数构成的矩阵。在每个图像序列的开始处有新加权矩阵值,这些值用于后继各帧,直至MPEG流中出现下一个新加权矩阵。加权矩阵通常包含在序列标题或画面标题内。然而,加权矩阵也可以插在P帧或B帧内。特技播放流在交互式点播电视系统中,用户非常希望在观看电影的过程中能有选择地快进和/或快退。因此,有些电视点播系统为每个电影备有称为特技播放流的快进和快退流。在用户希望使电影快进或快退时,选择快进或快退选项。于是,就将相应的快进或快退特技播放流从用户刚才观看点开始传送给用户,从而模拟正在观看的电影的快进或快退。
含有特技播放流的交互式点播电视系统需要有从正常播放比特流中产生特技播放流的方法。现有的一种从正常播放比特流中产生快进和快退比特流的方法利用了一个植入多比特流中的查找表。查找表中列有一系列注明各I帧位置的索引,而图像服务器要跳转到逐个索引上,每次跳转就只播放相应的I帧。也就是说,图像服务器参照查找表只播放I帧,形成快进和快退特技播放流。这种方法的一个问题是,在请求快进或快退时需要执行表查找和跳转到逐个索引上,从而大大加重了图像服务器的负担。此外,这种方法还具有与比特率增大有关的一系列问题。
另一种已知方法播放的快进和快退比特流的已知方法是产生一个不包括DCT的AC系数而只包括DC系数的图像流。这会产生一个马赛克形的特技播放流,因此不如其他的特技播放流的产生方法。
所以,希望有一种改善的系统和方法,能有效地从经压缩的正常播放比特流中产生特技播放的图像流,也就是快进和快退的图像流。
本发明提出了一种从一个经压缩的正常播放比特流中产生特技播放图像流(即快进和快退图像流)的系统和方法。本发明有效地产生满足降低对存储和数据传输带宽的要求的经压缩的特技播放图像流。此外,本发明也不要求对图像数据进行诸如索引查找那样的实时处理。
本发明的系统首先接收一个经压缩的正常播放比特流,可以是存储在本地媒体上的,也可以是从远地接收的。然后,系统通过只提取和保存这个比特流的一些部分来过滤比特流。系统最好从MPEG比特流中提取各个I帧和序列标题,包括所有的加权矩阵,将这些信息存入一个或多个新的文件。因此,这种过滤就滤除了MPEG数据流中的一些部分,包括各预测(P)帧和双向内插(B)帧。
然后,系统将经过滤的数据汇编或重排成成正向顺序或反向顺序,产生一个单比特流。系统还保证各加权矩阵与相应I帧正确对应。对于快进特技播放流来说,汇编后的比特流包括各序列标题、I帧和相应加权矩阵,它们的时间或先后顺序与在原MPEG流中的相同。对于快退特技播放比特流来说,系统颠倒各标题/I帧元组的先后顺序,形成一个倒放流。这样就产生了一个包括一系列序列标题和I帧以及相应的加权矩阵的汇编比特流。
接着,通过对汇编比特流进行MPEG-2解码,产生一个新的图像流。这个新图像流只包括原来经压缩的正常播放比特流的每X个画面或帧的一个帧,其中1/X为在原经压缩的正常播放流中的I帧的频率。然后,这个输出的图像流用为特技播放流所需的MPEG参数重新编码,从而产生一个特技播放流,这是一个真正的MPEG编码流。这个新的MPEG编码的特技播放流在解码后就形成一个快进或快退图像序列,这个序列只包括原未经压缩的正常播放比特流中的每X个帧的一个帧。
因此,本发明能更为有效地从一个经压缩的正常播放比特流中产生特技播放流。所得到的特技播放流是一个真正的MPEG编码流,因此满足减小存储容量和数据传输带宽的要求,这种特技播放流可用任何MPEG解码器解码。
通过参照以下结合附图对优选实施例的详细说明就可对本发明有更深入的理解。在这些附图中

图1示出了一个能按照本发明产生图像特技播放流的计算机系统;图1A为图1所示计算机系统的方框图2为示出本发明的工作情况的流程图;图3为示出图2中的过滤器的工作情况的流程图;图4为示出图2中的检验/汇编器的工作情况的流程图;图5为示出本发明的另一个实施例的工作情况的流程图;以及图6a-6c为按照本发明产生反白特技播放流的优选实施例的流程图。
图1所示为一个从一个经压缩的正常播放比特流中产生特技播放图像流的系统。这个系统可以产生用于点播电视系统的特技播放流。然而,本发明的这个系统按需要也可用来产生用于各种应用的特技播放流。
如图所示,在一个实施例中,特技播放产生系统包括一个通用计算机系统60。计算机系统60接收到一个经压缩的正常播放比特流后产生一个或多个特技播放流。在本说明中,所谓“特技播放流”是指快进和/或快退图像流,特别是经压缩的图像流,它们是从一个正常播放的比特流,特别是从一个经压缩的正常播放的比特流中产生的。
计算机系统60最好包括各种标准的组成部分,如一个或多个处理器、一个或多个总线、一个硬盘驱动器和存储器。图1A示出了图1所示的计算机系统中的各组成部分的方框图。应指出的是,图1A只是例示性的,按需要也可使用其他计算机体系结构。如图所示,计算机系统包括至少一个处理器80,通过芯片组逻辑82与系统存储器84相连。芯片组82最好包括一个PCI(外围部件互连)桥,用来与PCI总线86对接。MPEG解码器74和MPEG编码器76示为与PCI总线86连接。在另一种实施方式中,MPEG解码和编码用软件实现。各种其他部件,如图像卡88和硬盘驱动器90,可以包括在计算机系统内。
再来看图1。在这个优选实施例中,计算机系统60包括或接至一个或多个数字存储或媒体存储装置。例如,在图1所示实施例中,计算机系统60通过电缆64接至一个媒体存储单元62。媒体存储单元62包括一个或多个CD-ROM和/或一个或多个数字视盘(DVD)存储单元,用来存储数字图像。计算机系统还可以包括一个或多个内部的CD-ROM驱动器,或者可以接至一个或多个分开的数字视盘(DVD)存储单元。计算机系统60也可以按需要与其他类型的数字或模拟存储装置连接。
经压缩的正常播放比特流可以是存储在诸如CD-ROM或数字视盘(DVD)那样的存储媒体上的。在这个实施例中,存有经压缩的正常播放比特流的存储媒体插入含于或接至计算机系统60的相应存储装置,由计算机系统60从存储媒体读出经压缩的正常播放比特流。例如,经压缩的正常播放比特流可以存储在一个CD-ROM上,这个CD-ROM插入媒体存储单元62或计算机系统60后,计算机系统60就能读出这个经压缩的正常播放比特流。此外,经压缩的正常播放比特流也可以存储在一个DVD上,由计算机系统60从DVD读出。
或者,经压缩的正常播放比特流也可以是从一个诸如远地存储装置或远地计算机系统的外部源接收到的。在这种实施方式中,计算机系统最好包括一个用来接收经压缩的正常播放比特流的输入装置,如ATM(异步传输模式)适配卡或ISDN(综合业务数字网)终端适配器,或者其他数字数据接收器。经压缩的正常播放比特流也可以在计算机系统60外或内存储或以模拟形式接收再变换成数字数据。
如上所述,计算机系统60从一个经压缩的正常播放比特流中产生特技播放图像流。如下面还要详细说明的那样,计算机系统60执行过滤和检验/汇编以及MPEG-2解码和编码这些功能。在这个优选实施例中,过滤和检验/汇编功能由计算机系统60用软盘72提供的软件执行。在另一个实施例中,计算机系统60包括执行过滤和/或检验/汇编功能的专用硬件。
在图1的实施例中,计算机系统60更为可取地配置了一个硬件MPEG(MPEG-2)解码卡74和一个硬件MPEG(MPEG-2)编码卡76。MPEG解码卡74和MPEG编码卡76都有一个接至计算机系统内的总线的适配卡,但在图1中为了清楚起见将卡74和76在计算机系统60外单独示出。MPEG解码器和/或MPEG编码器也可以配置在计算机系统60外。在另一个实施例中,计算机系统60用软盘72上的软件来执行MPEG解压缩和/或MPEG压缩。在这样的实施例中,计算机系统60就不需要配置硬件的MPEG解码器或MPEG编码器。
应该指出的是,产生特技播放图像流的系统可以按需要包括两个或更多个互连的计算机。产生特技播放图像流的系统也可以包括专用硬件,无论是单独的还是结合通用可编程计算机使用的。还应该指出的是,按需要可以采用任何类型的系统根据本发明产生特技播放图像流。流程2所示为例示本发明工作情况的流程图。如图所示,本发明包括过滤操作102、检验/汇编操作104、MPEG-2解码操作106和MPEG-2编码操作108。如上所述,这些操作可以按需要用硬件或软件实现。
如图所示,本发明的系统接收正常播放比特流。正常播放比特流是一个图像数据比特流,用来在诸如电视机或计算机系统之类的屏幕上显示一个图像序列,如一段电视节目或电影。在这个优选实施例中,正常播放比特流是一个经压缩的比特流。经压缩的正常播放比特流最好是一个经MPEG压缩的比特流,特别是一个经MPEG-1或MPEG-2压缩的比特流。如果需要的话,也可以使用其他类型的压缩。
如图所示,本发明包括一个称为“I画面、序列标题过滤器”的过滤器102,用来对经压缩的比特流进行过滤。过滤器102仅保存比特流的一些部分,也就是滤除掉MPEG数据流的一些部分。确切地说,过滤器102从MPEG比特流中提取各I帧和序列标题以及所有加权矩阵,将这些信息存入一个新文件。因此,过滤器102滤除了I帧、序列标题和加权矩阵以外的所有MPEG图像数据。因此过滤器102滤除了MPEG数据流中的包括预测(P)帧和双向内插(B)帧在内的一些部分。
如前面所述,一个MPEG编码比特流包括一系列帧内编码的I帧和一系列帧间编码的B帧和P帧。I帧各含有整帧图像的图像数据,周期性地列在序列内。P帧和B帧含有相对上一帧或下一帧的变化的信息。每个画面或帧还包括标识本帧的画面标题和本帧的信息。一个MPEG编码比特流还包括一个或多个序列标题,含有一定的有关本图像序列的信息,包括帧速率和画面大小以及其他信息。
一个MPEG编码流还包括一些加权矩阵,用来从MPEG比特流中的DCT系数恢复像素值。每个加权矩阵包括一个系数矩阵,这些系数施加到在对帧进行编码中所用的不同的离散余弦变换(DCT)参数上。在解码器中,矩阵在每个图像序列的开始处重新初始化,这些系数值用于MPEG流中出现下一个新加权矩阵以前的各帧。应该注意的是,一个MPEG编码流包括帧间矩阵和帧内矩阵。特技播放产生系统在产生特技播放流中只利用帧内矩阵。
加权矩阵通常包含在各I帧的画面标题内或包含在相应I帧前的序列标题内。然而,在有些情况下,相应I帧的加权矩阵可以不包含在I帧画面标题或序列标题内,而是包含在前面一个P帧或B帧内。也就是说,在有些情况下,一个相应I帧的加权矩阵中的各系数的新值可以包含在前面一个P帧或B帧内。这发生在这个P帧或B帧含有一个或多个用一个I帧语法编码的宏块的场合。因此,过滤器102要对P帧和B帧进行检查,找出加权矩阵,存储起来供检验/汇编块104使用。
如图所示,过滤器102向检验/汇编器104提供一个包括MPEG流的一些部分的存储输出。检验/汇编器104将过滤器102产生的数据汇编或整理成一个单比特流。检验汇编器104将存储的数据以适当顺序汇编或链接,产生一个编汇比特流。检验/汇编器104利用过滤器102提供的信息来保证各序列标题与相应I帧对应。
检验/汇编器104还保证在比特流中,诸如在一个P帧或B帧中,发现的加权矩阵包含在相应的比特流内,并且与相应I帧正确对应。也就是说,检验汇编器104还保证加权矩阵或量化矩阵的变化正确地结合入新的汇编比特流内。在这个优选实施例中,检验/汇编器104为在P帧和B帧中发现的加权矩阵建立新的序列标题,再将这些新的序列标题与正确的I帧串联。
对于一个快进特技播放流来说,汇编比特流包括各序列标题、I帧和相应加权矩阵,它们的时间或先后顺序与在原MPEG流中的相同。对于一个快退特技播放比特流序列来说,检验/汇编器104颠倒各序列标题/I帧元组的先后顺序,形成一个倒放序列。因此,检验/汇编器104还以颠倒先后顺序方式重新对各序列标题/I帧元组排序,保证各矩阵与相应I帧对应。
这样,检验/汇编器104的输出是一个包括一系列序列标题和I帧的汇编比特流。因此,检验/汇编器104产生了是一个真正MPEG编码流的合成比特流。
这个输出的汇编比特流送至解码块106,最好是MPEG-2解码块106。MPEG-2解码块106对汇编比特流(即各I帧)进行,产生一个新的图像序列。这个新图像序列是一个无压缩的序列,只包括原未经压缩的正常播放流中每X个画面的一个画面。因此,如果原正常播放比特流中I帧的频率是每X个帧一帧,那么新图像序列就只包括原未经压缩的正常播放比特流中每X个画面或帧的一个画面。例如,如果在过滤器的输入端接收的原经MPEG-2压缩的比特流中每7个帧有一个I帧,那么MPEG-2解码块106就产生一个由无压缩的图像数据构成的比特流,但其中只包括原未经压缩的比特流中每7个帧的一个帧。
然后,这个输出的画面流送至编码块108,用特技播放流所需的相应MPEG参数重新编码。这些MPEG参数包括比特率、画面大小和其他参数。在这个优选实施例中,编码块108用比正常播放流小的画面尺寸和低一些的数据率对这个比特流进行编码,以减小数据存储量和传输带宽。
MPEG-2编码器108产生一个特技播放流,它是一个真正的MPEG编码流,但只包括原比特流中每X个帧的一个帧。因此,编码器108输出的特技播放流包括I帧、P帧和B帧。在这个新的经MPEG编码的特技播放流以后传送给用户后,经MPEG解码器解码,所产生的比特流就只包括原未经压缩的正常播放比特流中每X个帧的一个帧。过滤器流程图现在参见图3,所示为例示过滤器102按本发明的一个实施例进行工作的流程图。在步骤202,过滤器102检验一个MPEG数据块。假设这个MPEG数据块是一个序列标题或是一个画面标题。如果受检验的这个MPEG数据块是一个序列标题,就在步骤212,过滤器102存储这个序列标题。然后,过滤器102返回步骤202,开始检验下一个MPEG数据块。
如果在步骤202中受检验的帧或数据是一个画面标题或画面,就在步骤214,过滤器102检验这个画面标题和与这个画面标题对应的后继帧。如果受检验的帧或数据是一个I帧,就在步骤222,过滤器102存储这个画面标题和I帧。最好,过滤器102还在步骤224存储指示与要存储的I帧对应的相应序列标题或画面标题的对应数据。存储了I帧和对应数据后,过滤器102返回步骤202,检验下一个MPEG数据块。
如果受检验的帧是一个P帧或B帧,就在步骤232,过滤器102确定这个P帧或B帧是否含有一个加权矩阵。如果没有,就不存储这个P帧或B帧的数据,过滤器102返回步骤202,检验下一个MPEG数据块。如果受检验的D帧或B帧含有一个加权矩阵,就在步骤234,过滤器102存储这个加权矩阵。在步骤236,过滤器102将这个加权矩阵与相应I帧(即后继的I帧)关联。在步骤236,过滤器102最好还存储指示与这个加权矩阵对应的相应I帧的对应数据。过滤器102存储了加权矩阵和对应数据后,就返回步骤202,检验下一个MPEG数据块。
因此,过滤器102对MPEG流中的所有标题和帧都进行了检验。这是必需的,因为加权矩阵可能出现在MPEG流中的任何一个标题或帧内。过滤器102存储的只是序列标题和I帧以及位于MPEG流的其他地方(如在P帧或B帧内)的加权矩阵。过滤器102不存储P帧或B帧数据。过滤器102还将序列标题和加权矩阵与各对应的I帧相关联。
因此,如果一个矩阵包含在插在I帧之间的那些P帧或B帧之一内,过滤器102就将这个矩阵存入一个在重建特技播放原始序列时使用的文件。如下面要详细说明的那样,在构建特技播放流期间,产生一个伪序列标题,否则将新矩阵插入汇编比特流。
检验了一个序列标题或帧后,过滤器102检验下一个MPEG数据块,重复以上操作。这样,过滤器102就对MPEG序列中的每个标题和帧进行检验,存储各个序列标题、I帧和加权矩阵,而不存储P帧和B帧。因此,过滤器102存储了部分MPEG数据流,只包括序列标题、画面标题、I帧和加权矩阵。
在一个实施例中,将过滤器102所得结果串接起来,形成特技播放比特流。然而,应该指出的是,如果直接链接滤波器102的结果,所得到的比特流将不是一个真正的MPEG比特流。在本优选实施例中,本发明产生的是一个经MPEG压缩的比特流,因为所希望的是产生的特技播放比特流能通过一个标准的MPEG解码器。检验/汇编器流程图现在参见图4,所示为例示汇编一个特技播放流的检验/汇编器104的工作情况的流程图。在步骤302,检验/汇编器104检验一个存储的MPEG数据块,即由过滤器102存储的MPEG数据块。在这里要注意的是这个MPEG数据块是一个序列标题、画面标题、I帧或加权矩阵。如果在步骤302受检验的是一个序列标题、画面标题或I帧,就在步骤304,检验汇编器104检验由过滤器102产生的对应数据,将画面标题或序列标题与适当的I帧相关联。在步骤306,检验/汇编器104将I帧与相应的画面标题和/或序列标题链接成组,这样形成的组称为标题/I帧元组。在步骤308,检验/汇编器104将这个新的标题/I帧元组链接到正在汇编的比特流上,以便汇编成新的比特流。执行了步骤308后,检验/汇编器104就返回步骤302,检验下一个存储的MPEG数据块,重复上述操作。
如果系统正在产生一个快进流,就在步骤308,检验汇编器104将称为标题/I帧元组的各由I帧及其相应画面标题和/或序列标题构成的组按正向时间顺序(即它们在原比特流中出现的时间顺序)链接起来。如果系统正在产生一个快退流,则在步骤308检验/汇编器104按反向时间顺序链接这些标题/I帧元组。由此可见,对于一个快退序列来说,与相应I帧对应的画面标题和序列标题时间上仍在相应I帧前链接。然而,各标题/I帧元组则按反向时间顺序链接。
如果在步骤302受检验的MPEG数据是一个加权矩阵,就在步骤312,检验/汇编器104最好产生一个包括这个加权矩阵的新序列标题。然后,检验/汇编器104进至步骤304,检验由过滤器102产生的对应数据,再在步骤306将这个新序列标题与相应I帧结合成组。在步骤306,检验/汇编器104将新产生的序列标题置于对应的I帧之前。在步骤308,检验/汇编器104将这个新的序列标题/I帧元组链接到正在汇编的比特流上,以便汇编成新的比特流。
如果一个I帧没有加权矩阵,检验/汇编器104就利用前一个I帧的加权矩阵或者一个缺少值。在本优选实施例中,所用的缺省矩阵根据比特流明显不含有矩阵隐含确定,这种操作是MPEG标准的一部分。其他实施例在本发明的第一候选实施例中,对于快进特技播放流来说,特技播放产生系统在快进特技播放流中纳入了P帧和I帧。这个实施例最好用于2X、3X或4X快进特技播放流,特别是3X快进播放流。在这个实施例中,系统检验MPEG流,寻找B帧中的帧间矩阵,将这些帧间矩阵移动到后继的P帖。应该指出的是,这个实施例只能用于快进特技播放流,因为在原MPEG流中的P帧只包含相对前P帧的变化。
现在参见图5,所示为例示本发明的另一个实施例的工作情况的方框图。如图所示,本发明的这个实施例包括MPEG-2解码操作502、提取操作504和MPEG-2编码操作506。这些操作都可以按需要用硬件或用软件实现。
如图所示,本发明的这个系统接收一个正常播放比特流,最好是一个经MPEG压缩的正常播放比特流。这个经压缩的正常播放比特流送至解码块502,最好是MPEG-2解码块502。MPEG-2解码块502对各帧进行解码,产生原未经压缩的图像序列。原未经压缩的图像序列送至提取块504,由它从这个图像序列中每X个帧提取一帧。提取块504还将这些提取的帧按正向或反向时间顺序链接起来。这样链接的这些帧就构成了一个只包括原未经压缩的正常播放流中每X个画面的一个画面的比特流。因此,如果原正常播放比特流的I帧的频率为每X个帧一帧,那么这个新的图像序列只包括原未经压缩的正常播放比特流中的每X个画面的一个画面。
然后,这个输出的画面流送至编码块506,用特技播放流所需的相应MPEG参数重新编码。这些MPEG参数包括比特率、画面大小以及其他参数。MPEG-2编码块506产生一个特技播放流,它是一个真正的MPEG编码流,但只包括每X个帧的一个帧。在这个新的经MPEG编码的特技播放流以后传送给用户时,经MPEG解码器解码后,所得到的比特流只包括原未经压缩的正常播放比特流中的每X个帧的一个帧。产生反向特技播放流的另一个实施例现在参见图6,所示为另一个按本发明产生一个反向特技播放流的优选实施例。为方便起见,图6分为三个部分,即图6A、6B和6C。在图6所示的实施例中,通过从末端到始端扫描图像流来产生反向特技播放流。这个实施例还利用了一个存储堆栈,暂时存储MPEG数据的元组,使这些元组按正确顺序纳入反向特技播放流。
如图6所示,在步骤602执行初始化,对堆栈清零。在步骤604,执行搜索,在图像序列中寻找第一个画面起始代码。步骤604的搜索是从图像流的末端向始端进行的。当在从末端向始端的搜索中发现第一个画面起始代码时,就在步骤606将一个标志推入堆栈。如下面还要说明的那样,这个标志用来标识图像流的不同的块或部分。在步骤606后,就开始了搜索阶段。
在步骤612,本方法在图像流中搜索一个起始代码。在步骤614,确定在步骤612搜索起始代码期间是否发现了文件终止条件。如果是,就在步骤616关闭输出的数据流,退出这个程序,操作结束。如果在步骤614发现的不是文件终止条件,就在步骤620,本方法认为发现的是图像流中的一个起始代码。
注意,发现的起始代码可能是一个用户数据块的起始代码、一个扩展块的起始代码、一个B帧或P帧画面标题块的起始代码,或是一个I帧画面标题的起始代码。如图6所示,根据在步骤620发现的起始代码的类型将执行不同的操作。还要注意的是,图6中的椭圆方框只是标题性方框,并不是操作性方框。
如果在步骤620发现的是一个用户数据块的起始代码,就在步骤622按需要调整这个用户数据块的内容。用户数据块的内容调整到符合在准备特技播放流中可能使用的新参数,如前面所述。在步骤622调整了内容后,就在步骤624将用户数据块的坐标推入堆栈。然后,操作返回步骤612,像上述那样执行对一个新的起始代码的搜索。
如果在步骤620发现的是一个扩展块的起始代码,就在步骤632将这个扩展块的坐标推入堆栈,然后返回步骤612,搜索下一个起始代码。
如果在步骤620发现的是一个B帧或P帧画面标题块的起始代码,就在步骤642弹出堆栈中的所有坐标直至检测到标志。也就是说,如果检测到B帧或P帧画面标题块的起始代码,就将堆栈中在标志上面的所有坐标在步骤642全都弹出堆栈。然后,在步骤644将标志推入或返回堆栈。操作返回步骤612,搜索一个新的起始代码,如前面所述。
如果在步骤620发现的是一个I帧画面标题的起始代码,就在步骤652按需要调整这个I帧画面标题信息。I帧画面标题信息调整到符合在准备特技播放流中可能使用的新参数,如前面所述。调整了I帧画面标题后,在步骤654将这个I帧画面标题块的坐标推入堆栈。在步骤656,弹出推入堆栈的各坐标,直至检测到标志。在步骤658,随着每组坐标的弹出将相应图像流中数据写至输出的反向特技播放流。这里要注意的是,步骤656和658依次和基本上并行进行,随着在步骤656从堆栈弹出坐标,相应图像流中与堆栈弹出的坐标相应的数据就写至输出的反向特技播放流。
在所有坐标都在步骤656从堆栈弹出而相应数据都在步骤658写至输出的反向特技播放流之后,就在步骤660将标志推回堆栈。然后,在步骤662搜索第一个(???)序列标题起始代码。在发现这个第一序列标题起始代码时,返回步骤612,开始搜索下一个起始代码,重复上述操作。
因此,本发明提出了一种从一个经压缩的正常播放图像流产生特技播放图像流的系统和方法。本发明检验一个MPEG序列中的每个标题或帧,存储各序列标题、I帧和相应加权矩阵。然后,系统灵活地将所存储的这些部分汇编成一个新的快进或快退比特流。这个新汇编的比特流于是经解码后形成一系列无压缩的帧。这些无压缩的帧再按MPEG标准重新编码,从而产生一个新的MPEG流。这个新的MPEG流是一个快进或快退特技播放流。
虽然本发明的系统和方法是结合以上这些实施例加以说明的,但并不是说本发明只局限于这里所提出的这种特定具体形式。相反,本发明包括了所有应认为在所附权利要求列出的本发明的精神和专利保护范围内的种种替换、修改和等效形式。
权利要求
1.一种用计算机实现的从一个经压缩的正常播放比特流中产生特技播放流的方法,所述方法包括下列步骤接收一个包括一系列帧内编码帧和一系列帧间编码帧的经压缩的正常播放比特流;从所述经压缩的正常播放比特流中提取所述帧内编码帧,其中包括将所述帧内编码帧存入一个存储器;汇编所提取的所述帧内编码帧,形成一个汇编比特流;对所述汇编比特流进行解码,产生一系列无压缩的帧;以及对经解码的所述这些无压缩的帧进行编码,产生一个经压缩的特技播放比特流,所述经压缩的特技播放比特流只包括所述正常播放比特流中的一部分帧。
2.权利要求1的方法,其中所述经压缩的正常播放比特流包括的所述这些帧内编码帧以一个规定频率出现;其中所述提取步骤包括以所述规定频率提取与所述帧内编码帧相应的数据比特。
3.权利要求1的方法,其中所述经压缩的正常播放比特流包括一系列各含有有关至少若干个所述帧内编码帧的信息的序列标题;其中所述提取步骤包括从所述经压缩的正常播放比特流中提取所述序列标题,所述提取步骤还包括将所述序列标题存入一个存储器;以及其中所述汇编步骤包括汇编所述序列标题和所述帧内编码帧,形成所述汇编比特流。
4.权利要求1的方法,其中所述方法产生一个快进特技播放比特流;其中所述汇编步骤包括按正向时间顺序汇编所述帧内编码帧。
5.权利要求1的方法,其中所述方法产生一个快退特技播放比特流;其中所述汇编步骤包括按反向时间顺序汇编所述帧内编码帧。
6.权利要求1的方法,其中所述经压缩的正常播放比特流包括一系列与所述帧内编码帧对应的矩阵;所述方法还包括确定在所述经压缩的正常播放比特流中的所述矩阵的步骤;其中所述汇编所述帧内编码帧形成所述汇编比特流的步骤包括将所述矩阵纳入所述汇编比特流。
7.权利要求1的方法,其中所述这些矩阵各与所述帧内编码帧之一对应;其中所述汇编步骤包括将各所述矩阵分别与对应的相应所述帧内编码帧汇编在一起。
8.权利要求1的方法,其中所述经压缩的正常播放比特流是一个经MPEG压缩的比特流;其中所述对所述汇编比特流进行解码的步骤包括对所述汇编比特流进行MPEG解码,产生所述这些无压缩的帧;以及其中所述对所述这些无压缩的帧进行编码的步骤包括对所述这些无压缩的帧进行MPEG编码,产生一个经MPEG压缩的特技播放比特流。
9.一种从一个经压缩的正常播放比特流中产生特技播放流的系统,所述系统包括一个存储媒体,用来存储一个包括一系列帧内编码帧和一系列帧间编码帧的经压缩的正常播放比特流;一个过滤器,用来从所述经压缩的正常播放比特流中提取所述帧内编码帧;一个存储器,用来存储所提取的所述帧内编码帧;一个检验/汇编器,用来汇编所存储的所述帧内编码帧,形成一个汇编比特流;一个解码器,用来对所述汇编比特流进行解码,产生一系列无压缩的帧;以及一个编码器,用来对所述这些无压缩的帧进行编码,产生一个经压缩的特技播放比特流,所述经压缩的特技播放比特流只包括所述正常播放比特流中的一部分帧。
10.权利要求9的系统,其中所述经压缩的正常播放比特流包括的所述这些帧内编码帧以一个规定频率出现;其中所述过滤器以所述规定频率提取与所述帧内编码帧相应的数据比特。
11.权利要求9的系统,其中所述经压缩的正常播放比特流包括一系列各含有有关至少若干个所述帧内编码帧的信息的序列标题;其中所述过滤器从所述经压缩的正常播放比特流中提取所述序列标题,将所述序列标题存入所述存储器;以及其中所述检验/汇编器汇编所述序列标题和所述帧内编码帧,形成所述汇编比特流。
12.权利要求9的系统,其中所述系统产生一个快进特技播放比特流;其中所述检验/汇编器按正向时间顺序汇编所述帧内编码帧。
13.权利要求9的系统,其中所述系统产生一个快退特技播放比特流;其中所述检验/汇编器按反向时间顺序汇编所述帧内编码帧。
14.权利要求9的系统,其中所述经压缩的正常播放比特流包括一系列与所述帧内编码帧对应的矩阵;其中所述过滤器确定在所述经压缩的正常播放比特流中的所述矩阵,将所述矩阵存入所述存储器;以及其中所述检验/汇编器汇编所述帧内编码帧和所述矩阵,形成所述汇编比特流。
15.权利要求9的系统,其中所述这些矩阵各与所述帧内编码帧之一对应;其中所述检验/汇编器将各所述矩阵分别与对应的相应所述帧内编码帧汇编在一起。
16.权利要求9的系统,其中所述经压缩的正常播放比特流是一个经MPEG压缩的比特流;其中所述解码器是一个MPEG解码器;以及其中所述编码器是一个MPEG编码器。
17.一种从一个经MPEG压缩的正常播放比特流中产生特技播放流的方法,所述方法包括下列步骤接收一个包括一系列帧内编码帧、一系列预测帧和一系列双向内插帧的经压缩的正常播放比特流;从所述经压缩的正常播放比特流中提取所述帧内编码帧,其中包括将所述帧内编码帧存入一个存储器;汇编所提取的所述帧内编码帧,形成一个汇编比特流;对所述汇编比特流进行解码,产生一系列无压缩的帧;以及对经解码的所述这些无压缩的帧进行编码,产生一个经压缩的特技播放比特流,所述经压缩的特技播放比特流只包括所述正常播放比特流中的一部分帧。
18.一种用计算机实现的从一个经压缩的正常播放比特流中产生特技播放流的方法,所述方法包括下列步骤接收一个包括一系列帧内编码帧和一系列帧间编码帧的经压缩的正常播放比特流;从所述经压缩的正常播放比特流中提取所述帧内编码帧,其中包括将所述帧内编码帧存入一个存储器;汇编所提取的所述帧内编码帧,形成一个汇编比特流;以及存储所述汇编比特流。
19.权利要求18的方法,其中所述经压缩的正常播放比特流包括一系列各含有有关至少若干个所述帧内编码帧的信息的序列标题;其中所述提取步骤包括从所述经压缩的正常播放比特流中提取所述序列标题,所述提取步骤还包括将所述序列标题存入一个存储器;以及其中所述汇编步骤包括汇编所述序列标题和所述帧内编码帧,形成所述汇编比特流。
20.权利要求18的方法,其中所述方法产生一个快进特技播放比特流;其中所述汇编步骤包括按正向时间顺序汇编所述帧内编码帧。
21.权利要求18的方法,其中所述方法产生一个快退特技播放比特流;其中所述汇编步骤包括按反向时间顺序汇编所述帧内编码帧。
22.权利要求18的方法,其中所述经压缩的正常播放比特流包括一系列与所述帧内编码帧对应的矩阵;所述方法还包括确定在所述经压缩的正常播放比特流中的所述矩阵的步骤;其中所述汇编所述帧内编码帧、形成所述汇编比特流的步骤包括将所述矩阵纳入所述汇编比特流。
23.权利要求18的方法,其中所述这些矩阵各与所述帧内编码帧之一对应;其中所述汇编步骤包括将各所述矩阵分别与对应的相应所述帧内编码帧汇编在一起。
24.权利要求18的方法,所述方法还包括下列步骤对所存储的所述汇编比特流进行解码,产生一系列无压缩的帧;对经解码的所述这些无压缩的帧进行编码,产生一个经压缩的特技播放比特流,所述经压缩的特技播放比特流只包括所述正常播放比特流中的一部分帧;以及存储所述经压缩的特技播放比特流。
25.权利要求24的方法,其中所述经压缩的正常播放比特流是一个经MPEG压缩的比特流;其中所述对所述汇编比特流进行解码的步骤包括对所述汇编比特流进行MPEG解码,产生所述这些无压缩的帧;以及其中所述对所述这些无压缩的帧进行编码的步骤包括对所述这些无压缩的帧进行MPEG编码,产生一个经MPEG压缩的特技播放比特流。
26.一种用于包括一个中央处理单元和存储器的计算机系统的计算机可读存储媒体,所述计算机可读存储媒体包括一个具有一种表示数据的物理形态的基片,所述存储媒体上驻留有一个提取程序,用来从一个经压缩的正常播放比特流中提取各帧内编码帧,将所提取的所述帧内编码帧存入一个存储器;一个汇编程序,用来汇编所述帧内编码帧,形成一个汇编比特流;一个解码程序,用来对所述汇编比特流进行解码,产生一系列无压缩的帧;以及一个编码程序,用来对经解码的所述这些无压缩的帧进行编码,产生一个经压缩的特技播放比特流,所述经压缩的特技播放比特流只包括所述正常播放比特流中的一部分帧。
27.权利要求26的计算机可读存储媒体,其中所述经压缩的正常播放比特流包括一系列各含有有关至少若干个所述帧内编码帧的信息的序列标题;其中所述提取程序从所述经压缩的正常播放比特流中提取所述序列标题,将所提取的所述序列标题存入一个存储器;以及其中所述汇编程序汇编所述序列标题和所述帧内编码帧,形成所述汇编比特流。
28.一种用计算机实现的从一个经压缩的正常播放图像流中产生一个反向特技播放流的方法,所述方法包括下列步骤接收一个包括图像数据的经压缩的正常播放图像流;将一个标志存入一个存储堆栈;在图像流中搜索一个起始代码,所述搜索包括从所述经压缩的正常播放图像流的末端到始端的搜索;根据所述搜索步骤,在图像流中发现一个起始代码;如果所述发现步骤发现的是一个用户数据块的起始代码,将所述用户数据块的坐标存入存储堆栈;如果所述发现步骤发现的是一个扩展块的起始代码,将所述扩展块的坐标存入存储堆栈;如果所述发现步骤发现的是一个B帧或P帧画面标题块的起始代码,从存储堆栈中弹出坐标直至检测到所述标志,所述标志留在堆栈;如果所述发现步骤发现的是一个I帧画面标题的起始代码,将所述I帧画面标题块的坐标存入存储堆栈;如果所述发现步骤发现的是一个I帧画面标题的起始代码,在所述将所述I帧画面标题块的坐标存入存储堆栈的步骤后,弹出当前存在存储堆栈内的坐标直径检测到所述标志;如果所述发现步骤发现的是一个I帧画面标题的起始代码,随着在所述弹出步骤中从存储堆栈弹出所述坐标,将所述经压缩的正常播放图像流中的由从存储堆栈弹出的所述坐标指明的数据写至一个输出的反向特技播放流;如果所述发现步骤发现的是一个I帧画面标题的起始代码,搜索第一个序列标题的起始代码;以及多次重复所述在图像流中搜索一个起始代码的步骤和后继各步骤,产生所述反向特技播放流。
全文摘要
一种从一个经MPEG压缩的正常播放比特流中产生诸如快进和快退的特技播放图像流的系统和方法。系统接收到经压缩的正常播放比特流后,通过只提取和保存比特流中的一些部分对比特流进行过滤。系统最好从MPEG比特流中提取各I帧和序列标题,包括所有的加权矩阵,将这些信息存入一个新文件。然后,系统按适当顺序汇编或排列经过滤的数据,产生一个单独的汇编比特流。系统还保证加权矩阵与相应I帧相对应。这样就产生了一个包括一系列序列标题和I帧的比特流。这个汇编比特流经MPEG-2解码后形成一个新的图像序列,它只包括原无压缩的正常播放比特流中的每X个画面的一个画面。这个输出的画面流再用特技播放流所需的相应MPEG参数重新编码,产生一个特技播放比特流。这个比特流是一个真正的MPEG编码流,但只包括每X个帧的一个帧。因此,本发明产生满足减小存储量和数据传输带宽要求的经压缩的特技播放图像流。
文档编号H04N5/783GK1220065SQ97194904
公开日1999年6月16日 申请日期1997年4月25日 优先权日1996年4月25日
发明者乔尔·齐德斯基, 拉玛·卡鲁瑞, 霍华德·佩奇, 沃尔夫-哈索·考比希 申请人:太阳微系统公司, 汤姆森消费者电子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1