CN101427572B - 用于在mpeg视频流中构建完整图像所需的帧的动态确定的方法和装置 - Google Patents
用于在mpeg视频流中构建完整图像所需的帧的动态确定的方法和装置 Download PDFInfo
- Publication number
- CN101427572B CN101427572B CN2006800012784A CN200680001278A CN101427572B CN 101427572 B CN101427572 B CN 101427572B CN 2006800012784 A CN2006800012784 A CN 2006800012784A CN 200680001278 A CN200680001278 A CN 200680001278A CN 101427572 B CN101427572 B CN 101427572B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- video flowing
- dependence
- stream
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 239000012634 fragment Substances 0.000 claims description 47
- 230000004044 response Effects 0.000 claims description 8
- 230000010365 information processing Effects 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 4
- 238000011835 investigation Methods 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000002457 bidirectional effect Effects 0.000 abstract description 2
- 230000014509 gene expression Effects 0.000 description 16
- 238000009825 accumulation Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008707 rearrangement Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100035087 Ectoderm-neural cortex protein 1 Human genes 0.000 description 1
- 101000877456 Homo sapiens Ectoderm-neural cortex protein 1 Proteins 0.000 description 1
- 101001006871 Homo sapiens Kelch-like protein 25 Proteins 0.000 description 1
- 102100027800 Kelch-like protein 25 Human genes 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
一种用于动态确定在MPEG视频流(60)中构建完整图像所需的帧的方法包括根据依赖矢量模型解码(70)MPEG视频流(80)中的帧的次序。依赖矢量模型被配置用于确定依赖矢量(102),作为用于在几种类型的MPEG流上无缝操作的解码次序视频流(80)的函数。方法还包括以双向方式执行对MPEG流的帧准确表示(131),作为根据依赖矢量模型确定的依赖矢量的函数。
Description
技术领域
本公开一般涉及MPEG视频流,更具体涉及在MPEG视频流内构建完整图像所需的帧的动态确定。
背景技术
MPEG是运动图像专家组(Moving Picture Experts Group)的简称,是国际标准化组织的一个工作组,并且还指由该组开发的一类数字视频压缩标准和文件格式。MPEG通常产生比竞争格式更好质量的视频。此外,MPEG文件可以由特殊硬件或软件解码。
在MPEG视频流中,视频数据重新排序以帮助消除时间相似度并因此增加数据流中的压缩。尽管这样的压缩帮助,并且设计用于允许,流的前向播放,但在试图倒序播放流或者在流中随机位置开始播放流的时候会出现问题。特别是,该问题出现在个人视频录制器(PVR)应用的环境中。PVR系统必须能够停止流、缓慢或快速地推进、以及倒序播放MPEG流。对于所有这些回放操作,需要准确构建图像的能力,因此需要视频流内的所有依赖(dependency)。
大多数PVR解决方案如今解决这些问题的方式是非常强力、密集计算的。例如,一种已知的解决方案包括颠倒若干帧,迫使该流进入视频解码器,有希望拿出合理的流。
因此,希望提供一种改进的方法,用于在MPEG视频流中构建完整图像所需的帧的确定,以便克服现有技术中的问题。
发明内容
根据本发明的一方面,提供了一种用于动态确定在MPEG视频流中构建完整图像所需的帧的方法,包括:
根据依赖矢量模型,对MPEG视频流中帧的次序进行解码,所述依赖矢量模型配置用于确定依赖矢量,作为用于在几种类型的MPEG流上无缝操作的解码次序视频流的函数,其中,通过以反方向考察解码次序视频流的帧、直到能够得出完整内编码图像,来确定依赖矢量,并且其中,将依赖矢量的给定帧标识作为要显示的帧的绝对依赖,所述依赖矢量模型进一步包括(i)确定以显示次序显示MPEG视频流中帧的相对成本,其中,确定所述相对成本,作为从帧的开始到该帧的绝对依赖的字节数的函数,(ii)使用差滤波器来修改以显示次序显示MPEG视频流中帧的相对成本,以及(iii)选择拼接点,作为具有超过阈值量的修改的相对成本的帧的函数;以及
以双向方式执行对MPEG流的帧准确表示,作为根据所述依赖矢量模型确定的依赖矢量的函数,其中所述依赖表示帧之间的关系,从而当帧依赖于一个或多个其它帧时,该帧使用基于所述一个或多个其它帧的预测来进行编码或者解码,其中所述解码次序视频流表示按解码次序排序的视频流。
根据本发明的另一方面,提供了一种信息处理系统,包括:
输入,用于接收视频流,其中所述视频流包括与通道选择相关的解码次序视频流,所述解码次序视频流表示按解码次序排序的视频流;
帧处理器,响应于所述解码次序视频流来在输出上提供显示次序的未压缩视频帧的信号,其中所述帧处理器适于执行根据本发明的方法;以及
数字视频编码器,响应于显示次序的未压缩视频帧,用来提供适于在显示设备上显示的视频信号。
附图说明
本公开的实施例将通过举例方式图示说明,而并不受到附图的限制,在附图中,类似的附图标记指示相似的元件,其中:
图1是图示说明现有技术已知的用于产生视频流的通道的各种配置的框图视图表示;
图2是根据本发明一个实施例的包括帧处理器的信息处理系统的框图视图表示;
图3是按解码次序的压缩视频流的连续视频帧以及按显示次序的相关联视频流的表示视图;
图4是图示说明各个帧的相对依赖及绝对依赖的按解码次序的压缩视频流的连续视频帧的表示视图;
图5是按解码次序的I片段视频流实现的连续视频帧的表示视图,图示说明了对创建由视频流编码器的不同配置设定引起的依赖矢量的不同要求的一个例子;
图6是根据本发明的一个实施例的依赖矢量确定算法的流程图视图;
图7是图示说明根据本发明的另一个实施例的视频片段的扩展的视图;
图8图示说明了按显示次序显示MPEG视频流中帧的相对成本的图示;以及
图9图示说明了从图8的图示中得出的按显示次序显示MPEG视频流中帧的相对成本的修改图示。
不同图中相同附图标记的使用表示相似或相同的项。技术人员还将认识到,附图中的元件都是出于简化和清楚的目的而图示的,没有必要按比例绘制。例如,图中某些元件的尺寸可能相对于其他元件较为夸大,这是为了有助于改善对本发明的实施例的理解。
具体实施方式
本发明的实施例使用依赖矢量来确定视频流中给定帧的依赖。尽 管容易理解怎样将依赖矢量用于使回放简单,但确定矢量是更加困难的。本发明的实施例允许从随机MPEG流中确定和构建单独帧。
对于标准MPEG视频流(IPB流),通过回过头来观察视频流,从流中特定点到出现的最后一个I帧,来确定依赖矢量。在流中的这一点上,由于是I帧,所有线都是内部编码的,可以显示完整图像。同时需要该帧与当前帧(P帧)之间的增量变化。
对于开放GOP(图像组)情况,确定稍微困难一些。当有开放GOP时,在给定I帧之后立即出现的B帧具有一直延伸回两个I帧的依赖。这使得这些B帧的依赖矢量相当长。尽管看上去描述简单,实现起来要更复杂一些,因为这种情况不被流中帧位置以外的任何东西所标识。一旦确定,相当易于创建依赖矢量。
最后的例子是目前为止最困难的。也就是I片段流的情况。在I片段流中,没有对流中完整图像的绝对参考。这样的完整参考是由若干个P帧确定的。必须检查所有P帧以确定其各个内编码线的放置,以及怎样组合各个内编码线来构建完整帧。还必须回想起,尽管大多数I片段MPEG流具有依次内编码的P帧,这样的次序不是要求。因此,用于确定依赖的算法必须能够确定何时从任意间隔的内编码线中构建完整帧。考虑到视频流可以在所有上述提及的格式之间变化,整个依赖矢量的确定必须是使用完整集成的公式来完成。
图1是图示说明通道1、2到N的各种配置框图视图,其中配置分别由对应附图标记12、14和16来表示。通道的各种配置适于产生视频流,分别如附图标记28、34和44所表示的,进一步如本领域所公知。如所示,通道1,附图标记为12,包括多个输入编码器(ENC1、ENC2到ENCN),如附图标记18、20和22分别所表示。输入编码器耦合到复用器24以便多路复用到输出26上和解码次序视频流28中。换句话说,编码器18、20和22用来提供单一视频节目输出作为视频 流28。因此,每一编码器可以提供占用不同量的视频流28的视频。例如编码器18可以用来提供主节目,编码器20可以用来提供商业暂停。而且,编码器18具有第一组设定来提供对应编码信号,而编码器20具有不同于编码器18的第一组设定的第二组设定来提供不同编码的信号。
关于通道2,由附图标记14所表示,输入编码器(ENCX)30具有输出32并且在输出32上提供解码次序视频流34。关于通道N,由附图标记16所表示,该通道包括两个输入编码器(ENCY、ENCZ),分别如附图标记36和38所表示。输入编码器耦合到复用器40,用于多路复用到输出42上和解码次序视频流44中。换句话说,编码器36和38用于提供单一视频节目输出作为视频流44。因此,有关通道16,每一编码器(36、38)可以提供占用不同量的视频流44的视频。编码器36具有第一组设定来提供对应编码信号,而编码器38可以具有不同于编码器36的第一组设定的第二组设定来提供不同编码的信号。
有可能一个或多个编码器18、20、22、30、36和38可具有不同的配置,即,第一配置不同于第二配置,等等。还有可能信息处理系统可以根据通道选择来接收通道1、2或N(分别由附图标记12、14和16所表示)的视频流中任意一个。进而,一个或多个编码器18、20、22、30、36和38可以配置为根据例如视频信号输入来实时改变其编码器设定。
图2是根据本发明一个实施例的包括帧处理器52的信息处理系统50的框图视图表示。信息处理系统50经由输入58接收解码次序视频流。输入58可以得自在输入54上从天线53接收并由前端56处理的射频(RF)信号。前端56可以包括调谐器、解调器、放大器等等,如本领域所公知。可替换地,输入58也可以是直接从其他来源提供的,诸如因特网、计算机网络等等。
帧处理器52在输出60上提供显示次序的未压缩视频帧。输出60输入到数字视频编码器62中。数字视频编码器62响应于输出60,在输出64上提供视频信号。视频信号适合于显示设备65上的显示。显示设备65包括任何合适的显示器,诸如CRT、LCD、等离子等。
帧处理器52包括主处理器66、解复用器68、视频解码器70和存贮器72。在一个实施例中,主处理器66包括可执行计算机代码,用来根据本发明的实施例执行依赖矢量确定,这里要进一步讨论。可替换地,执行依赖矢量确定可以出现在其他处理器类型实现、硬件实现、或硬件和软件实现的组合中。
在一个实施例中,主处理器66经由合适的总线67耦合到解复用器68、视频解码器70和存贮器72。解复用器68经由信号线69耦合到视频解码器70。而且,解复用器68经由信号线71耦合到存贮器72。信号线69和71还可以包括信号总线。其他实施例也是可能的。例如,主处理器、解复用器、视频解码器和存贮器中一个或多个之间的耦合可以与上述讨论不同地进行配置。
根据一个实施例,在操作中,视频流包括在进入解复用器68的输入58上的信号内。响应于输入58上信号内的视频流的检测,解复用器68创建索引。该索引提供了一种查找视频流中依赖的方式。尽管索引对寻找依赖并不关键,但其提供了一种实现根据本发明实施例的方法和装置的方式。索引和视频流储存在存贮器72中。索引和视频流的存贮位置和信号路由受到主处理器66的管理。一旦请求主处理器66,可以从存贮器中复制视频流,传递到解复用器68,然后转发到视频解码器70上。视频解码器70对视频流解压缩,以显示次序对解压缩的视频流重新排序,如这里进一步讨论的。以显示次序对解压缩的视频流重新排序之后,视频解码器70在输出60上提供显示次序的视频流。输出60输入到数字视频编码器62中。
对于典型视频处理,不需要存贮器。换句话说,当标准视频处理进行中时,由前端56通过输入或接口58提供解码次序MPEG流。解复用器68寻找主处理器66所请求的视频流,并且将其经由接口69递送给视频解码器70。视频解码器70翻译MPEG解码次序压缩视频流并且经由接口60将其以显示次序输出到数字视频编码器62。
对于倒序视频处理,需要最小存贮器和累加寄存器。换句话说,当以倒序解码压缩视频流时,视频流来自存贮器72。压缩视频流近来放置在存贮器中还是通过对节目重新排序而放置在那儿对解码来说并不重要。主处理器66从存贮器72获取索引。该索引用来确定需要由视频解码器70向数字视频编码器62给出哪些视频帧。主处理器66使用索引和累加寄存器73来确定需要压缩视频流的哪些段来利用这里所讨论的方法而输出合适的视频帧。压缩视频流的这些段取自存贮器72,通过解复用器68,传递到视频解码器70。每一模块(72、68和70)怎样处理压缩视频流的细节是由主处理器66确定的,并经由接口67传送给它们。只要请求视频流的反向播放,确定输出帧、以及用于构建它们的压缩视频流的段的处理就继续。
图3是解码次序的压缩视频流80的连续视频帧的表示视图。图3还图示说明了显示次序的视频流80,如视频流100所表示。压缩视频流80包括一系列帧,出于图示的简化,示出了其中的八个。八个帧用附图标记82-96表示。此外,在八个所示的帧之前和之后出现的帧都被标为省略号“...”。特别地,在视频流80中,帧82包括I帧,帧84包括B帧,帧86包括P帧,帧88包括B帧,帧90包括P帧,帧92包括B帧,帧94包括P帧,帧96包括B帧。
在MPEG标准中,可以以三种模式之一来对每一帧进行编码:内帧(I)、前向预测(P)、和双向预测(B)。I帧定义为完全独立的帧,没有任何依赖。在I帧中,帧的每个宏块必须以内帧模式编码,即,不使用预测。因此,I帧是独立于其他帧而编码的。P帧依赖预测,基 于前面的锚帧(I或P帧)。在P帧中,帧的每一宏块可以以前向预测编码或者以内帧模式编码。B帧依赖预测,基于前面和后面的I或P帧。注意,每一B帧依赖来自未来帧的数据,即,未来帧必须在当前B帧能被编(解)码之前被编(解)码。因此,编码次序不同于显示次序。在B帧中,帧的每一宏块可以以前向、后向、或双向预测进行编码。一个运动矢量(MV)指定每一前向和后向预测的宏块,而两个MV指定每一双向预测的宏块。因此,每一P帧具有前向运动矢量字段和一个锚帧,每一B帧具有前向和后向运动矢量字段和两个锚帧。
因此,MPEG需要将编码视频数据以编码次序放置在数据流中。而且,锚帧可以包括I帧或P帧。表示某些MPEG流中的视频帧的最小内部参考集合的逻辑结构被称为图像组(GOP)。GOP没有规定GOP中I、P或B帧的数量,也没有规定GOP中帧的次序。GOP的结构完全由流中数据的次序确定。尽管没有任何限制GOP的大小和结构的规则,但应该满足缓冲器限制。
仍参看图2和3,视频解码器70对流80的解码次序帧重新排序为显示次序流100,作为各个帧依赖的函数。特别地,显示次序视频流100包括一系列帧,出于图示的简化,示出了其中的八个。在八个所示的帧之前和之后出现的帧都被标为省略号“...”。流100的显示次序视频中的八个帧包括84、82、88、86、92、90、96和94。作为对压缩视频流解码的函数,完成重新排序,进一步如编码的特性所确定。例如,帧88是B帧,依赖于I帧82和P帧86。
图4是按解码次序的压缩视频流80的连续视频帧的表示视图,图示说明各个帧的相对依赖和绝对依赖。如这里上面所述,压缩视频流80包括一系列帧,出于图示的简化,示出了其中的八个。八个帧用附图标记82-96表示。此外,在八个所示的帧之前和之后出现的帧都被标为省略号“...”。
相对依赖由依赖矢量102图示说明。例如,P帧86相对依赖I帧82。B帧92相对依赖P帧90和P帧86。P帧94相对依赖P帧90,等等。另一方面,用依赖矢量104来图示说明绝对依赖。例如,P帧86绝对依赖I帧82。B帧92经由P帧90和86而绝对依赖I帧82。P帧94相对依赖P帧90,P帧90相对依赖P帧86,P帧86相对依赖I帧82,因此,P帧94绝对依赖于I帧82。帧88、90和96类似地绝对依赖于I帧82。但是,注意,B帧84具有所图示帧以外的相对依赖以及绝对依赖。通过将B帧84紧接着放在I帧82之后,所显示的GOP被视为开放GOP,意味着需要GOP以外的依赖。
通过跟随依赖链,直到可以显示整个帧,而针对每一帧来确定绝对依赖。在压缩视频流80中,这是通过I帧82、完全内编码的帧完成的。例如,P帧90依赖于P帧86,而P帧86又依赖于I帧82。这使得P帧90的绝对依赖就是I帧82。
图5从左至右是作为时间的函数的按解码次序的I片段视频流实现的连续P帧的表示视图。图5图示说明了视频流编码器的不同配置设定所造成的创建依赖矢量的不同要求的一个例子。I片段视频流通常指的是包含部分I帧的P帧的视频流,其中包含部分I帧的给定数量的P帧需要产生完整I帧。典型地,I片段流不包含任何I帧。如图5所示,帧105、106、107、108和109表示包含部分I帧的P帧。在这个例子中,部分I帧包括五分之一的I帧。进一步,结合图5,在附图标记111、113、115和117所表示的视频流的部分中,在所图示的P帧之间,可能出现(i)0个或(ii)一个或多个的(a)B帧或(b)P帧,而没有内编码(即,没有任何部分I帧)。如依赖矢量119所示,P帧109相对依赖P帧108,而且,绝对依赖于P帧105,如依赖矢量121所示。
对于反向播放,考虑下面的内容。给定MPEG数据流,反向播放的目标是在帧处理器的输出上以倒序播放这些帧。这样的解决方案的 简单性依赖于两个属性:每一视频帧的数据独立(self-contained)并且其与其在数据流中的放置位置无关。但是,这样的属性典型地不适用于MPEG编码视频数据。
反向播放解码困难的原因在于,MPEG压缩对于帧次序的变化不恒定,例如,颠倒输出MPEG码流的次序。而且,颠倒输入视频帧的次序不会导致“反向”的运动矢量字段。同时,存在实际限制,因为不能轻易地解压缩、然后倒序简单显示整个流。
图6是根据本发明一个实施例使用的依赖矢量确定处理110的流程图视图。依赖矢量确定处理110开始于步骤112,进行到步骤114。在步骤114,处理选择想要显示的帧。处理随后继续,在步骤115确定当前帧是否是B帧。如果该帧不是B帧,则处理继续到步骤116来评估该帧。另一方面,如果所想要的帧是B帧,则在步骤117寻找作为B帧相对依赖的第一锚帧。第一锚帧对应于按解码次序最紧接着在B帧之前的锚帧,尽管锚帧与所想要的B帧之间可以相隔有a)0个、b)一个、或c)许多个B帧。寻找第一锚帧之后,处理继续进行到步骤119。在步骤119,寻找按解码次序的下一帧,此后到步骤116。
步骤116执行对所选帧的评估,包括根据0个、或一个或多个内编码部分出现在所选帧的哪里,来确定在哪里标记累加缓冲器。注意,累加缓冲器可以包括例如,累加寄存器或RAM 73或帧处理器52内的任何其他合适的存储器,诸如存贮器72。在选择和/或接收I帧的情况下,累加缓冲器整个被标记,因为I帧的所有部分都是内编码的。在其他例子中,具有部分I帧的P帧可包括I帧的某些片段。回想到,I帧是完全内编码的帧。在这样的情况中,累加缓冲器被标记,作为包括部分I帧的P帧的内编码部分的函数。在具有四分之一I帧内容的P帧的情况中,在代表P帧的I帧内容的对应位置,四分之一的累加缓冲器被标记。类似地,在具有五分之一I帧内容的P帧的情况中,在代表P帧的I帧内容的对应位置,五分之一的累加缓冲器被标记。关于视频流 内B帧的出现,评估导致没有标记累加缓冲器,因为B帧不包含内编码部分。
注意,某些时候,视频流的帧内的片段的数量不必一致。因此,需要进行调节来补偿不同帧内的不同数量的片段。如果需要,这样的调节在步骤118中执行;否则,处理进行到步骤120。在步骤118,所选帧内的实际数量的片段可以扩展到不同数量的片段,如果需要的话。片段的数量可以是片段的静态数量,或者可以根据输入视频流而动态地确定。扩展片段数量到统一片段数量的进一步的讨论将结合图7提供,如这里下面所讨论的。
仍参看图6,在步骤120,询问确定累加缓冲器的状态是否指示已经累加了足够的内编码片段,由此允许输出完整帧或图像。可以根据特定帧处理实现的要求来确定是否足够。也就是,“足够”等于视频帧内总片段的给定百分比。在一个例子中,“足够”对应于大约百分之九十(90%)的总片段的百分比。再者,如所提及的,根据特定帧处理实现的要求来确定是否足够。
响应于确定还没有累加足够内编码片段,处理进行到步骤122。在步骤122,处理选择视频流中的下一帧来评估。在一个实施例中,对于以前向或反向次序显示解码次序的视频流,下一选择的帧对应于解码次序中的前一帧。处理随后以下一选择的帧继续进行步骤116,此后如这里上面所讨论地进行。
响应于确定对于要在步骤120中观察的完整帧或图像已经累加了足够内编码片段数量,处理进行到步骤124。在步骤124,当前所选帧被确定为在步骤114中选择的帧的绝对依赖,处理在步骤126结束。
图7是图示说明结合本发明实施例的视频片段的扩展的视图。如上所指出的,注意,某些时候,视频流的帧在各个帧之中可以包含不 同数量的片段。也就是,不保证片段的数量在视频流的图像之间是统一的。因此,可能需要进行调节来补偿不同帧中的片段的不同数量。
如果当前评估的帧中和累加缓冲器中的片段的数量具有不同的片段数量的话,则将两个中较小的一个扩展到较大的尺寸,从而为了评估而生成统一的片段数量。如图7所示,较小数量的片段由附图标记130表示。附图标记132、134、136和138表示累加缓冲器的片段或数据位置。如所示,表示130被扩展到表示131。
更具体地,表示130的四个片段或数据位置(132、134、136和138)被扩展成表示131的七个片段或数据位置(140、142、144、146、148、150和152)。片段132被扩展为片段140和一部分片段142。片段134被扩展为片段142的剩余部分、片段144、和一部分片段146。片段136被扩展为片段146的剩余部分、片段148和一部分片段150。最后,片段138被扩展为片段150的剩余部分和片段52。扩展包括上采样的形式。如这里上面所指示的,统一数量的片段可以是静态数量的片段,或者可以基于视频流而动态确定。
本发明的实施例有利地提供了一种连续方法来确定MPEG视频流的帧怎样互相相关,特别是倒序相关。此外,本发明的实施例要求只有一个MPEG视频流的本地副本用于动态确定在视频流中构建完整图像所需的帧。因此,实施例要求只有最小量的存储来确定帧之间怎样以倒序互相相关。本发明的实施例还提供了视频流的前向和/或反向回放中的小的跳跃。
图8图示说明了MPEG视频流中以显示次序显示帧的相对成本的图160。在一个实施例中,相对成本是使用从帧的开始到该帧的绝对依赖的字节数来确定或计算的。Y轴162表示相对成本,条170表示解码次序流164的每一帧的相对成本。更具体地,可以注意到,显示来自流164的特定帧的成本增加,远远高于作为特定帧的I帧82。而且, 可以注意到,锚帧的成本小于其之前的B帧,如所示,例如,B帧86和P帧88的成本之差。该原因在于B帧88的双向依赖,其中之一就是P帧86。因此,为了显示B帧88,除了B帧88本身的数据外,P帧86的所有要求都是必需的。
图9图示说明了以显示次序显示MPEG视频流中的帧的相对成本的修改图,从图8的图得到。图180是取图160并且对每一帧施加简单差(即,差滤波器)的结果。换句话说,将特定帧值替换为图160中其项目的高度与图160中其之前的项目的高度之差。所有差进行归一化。例如,从图160中的帧82的值减去帧84的值,随后归一化以产生新的值。新的值用于图9的图180中的帧82的值。
仍参考图9,图180还包括阈值184。确定阈值184,使得一个值超过给定范围。阈值184被动态确定为输入流的函数,例如输入视频流188的函数。根据对阈值184的知识,可以确定视频流中的优化拼接。图180中呈现的高值的位置标识在流内放置拼接点的优化位置。通过计算显示流中帧的成本,施加差滤波器,以及确定阈值,可以对于流来优化反向播放的拼接点的选择或确定。
当反向播放压缩视频流时,由于视频帧解码器的实现中的限制,需要拼接点。这样的限制将取决于所使用的视频帧处理器的细节,因此将改变阈值确定。但是,在所有情况中,必须确定拼接。甚至如果以倒序播放压缩视频流所需的存储空间大于可用存储空间,希望将拼接(以及对应的拼接点)配置为保证进行该存储空间的优化使用。
根据另一实施例,输入到视频解码器的每一拼接段都以拼接头开始。拼接头指示对应段中的帧的数量。但是,在跨越多个GOP的拼接段中出现了问题。如果拼接段跨越一个以上的GOP,则依赖的列表急剧增长。因此,本发明的方法要求拼接段不跨过从一个GOP到另一GOP的边界,以保持依赖的列表在根据特定MPEG解码器系统实现要求而 选择的给定大小参数内。
此外,确定帧的成本可以包括下面的内容。例如,将额外帧添加到拼接段中可以对系统造成若干不利的影响。首先,增加帧的数量使得视频解码器必须对更多帧解码。在这样的实施例中,这仅对锚帧施加,因为视频解码器不会对系统不显示的B帧解码,但是,对于实现根据本发明的实施例,不需要这样的优化。其次,额外的帧还可意味着,可能必须从系统硬驱动器中提取额外数据,然后通过存储器路由。因此,在一个实施例中,帧的成本与传输分组计数相关联,其中传输分组计数对应于适当显示给定图像所需的传输分组的数量。传输分组计数的使用是因为硬驱动器带宽是许多PVR操作的选通因素(gatingfactor),并且因为易于使用本实施例的索引标注的方法来计算。
而且,计算GOP的大小可以包括下面的步骤。例如,当一组帧依赖于单独一个I帧时,GOP的各个帧的成本随着对应的各个帧与I帧的接近而下降。但是,当下一GOP出现时,帧的成本会急剧增加。使用这个成本的特性,可以发现GOP的大小。在一个实施例中,创建各个帧的成本的阵列。尽管阵列的大小不关键,但其必须大于正在检测的GOP。但是,可以在阵列较小的情况下检测GOP大小,但是不能保证GOP大小的检测,除非阵列大小大于GOP。而且,尽管GOP大小检测对于1X速度(即,拼接头将在获得GOP结尾之前完成)不关键,在较高速度下,全GOP的检测更加重要。因此,得到的成本阵列将表现得类似于图8中所示,其中成本值通过阵列缓慢增加。此外,在图8的成本图的开始附近,可以看出,存在成本急剧下降的点。成本的大幅度下降表示GOP的边缘。
此外,为了协助边缘检测,主处理器被配置为通过利用边缘检测滤波器来寻找成本的显著变化。在处理的结束处,成本阵列由低于阈值量出现的成本以及具有至少一个高于阈值量出现的成本的阵列组成。高于阈值量出现的成本对应于GOP的边缘。
本发明的实施例可以用于任何PVR系统,其中需要帧准确反向和各种不同的速度。很可能将需要所有MPEG视频解码器用于PVR型应用,不管其出现在传统机顶盒环境、诸如蜂窝电话的较小缓存环境、还是其他端使用应用。
在前面的说明书中,已经结合各种实施例描述了本公开。但是,本领域普通技术人员将认识到,可以进行各种修改和变化,而不偏离如权利要求所阐述的本实施例的范围。因此,说明书和附图都被视为是说明性的,而不是限制性的,所有这样的修改都希望被包含在本实施例的范围之内。例如,本实施例可以适应于机顶盒、蜂窝电话、PDA、便携视频播放器、车载视频系统等等。
益处、优点、问题的解决方案,以及可使得任何益处、优点、或解决方案发生或变得更加显著的任何元素,都不应被解释为任意或所有权利要求的关键、所需或必要的特征或元素。所使用的术语“包括”、“包含”或其任何其他变形,都希望覆盖非排他性的包涵,因此,包括一系列元素的过程、方法、物品或装置不仅仅包括列出的元素,还可包括未明确列出或者这样的过程、方法、物品或装置所固有的其他元素。
Claims (10)
1.一种用于动态确定在MPEG视频流中构建完整图像所需的帧的方法,包括:
根据依赖矢量模型,对MPEG视频流中帧的次序进行解码,所述依赖矢量模型配置用于确定依赖矢量,作为用于在几种类型的MPEG流上无缝操作的解码次序视频流的函数,其中,通过以反方向考察解码次序视频流的帧、直到能够得出完整内编码图像,来确定依赖矢量,并且其中,将依赖矢量的给定帧标识作为要显示的帧的绝对依赖,所述依赖矢量模型进一步包括(i)确定以显示次序显示MPEG视频流中帧的相对成本,其中,确定所述相对成本,作为从帧的开始到该帧的绝对依赖的字节数的函数,(ii)使用差滤波器来修改以显示次序显示MPEG视频流中帧的相对成本,以及(iii)选择拼接点,作为具有超过阈值量的修改的相对成本的帧的函数;以及
以双向方式执行对MPEG流的帧准确表示,作为根据所述依赖矢量模型确定的依赖矢量的函数,
其中所述依赖表示帧之间的关系,从而当帧依赖于一个或多个其它帧时,该帧使用基于所述一个或多个其它帧的预测来进行编码或者解码,
其中所述解码次序视频流表示按解码次序排序的视频流。
2.权利要求1的方法,进一步,其中考察包括:
将解码次序视频流的当前帧加载到缓冲器中;
询问是否当前帧的所有线都是内编码的;以及
如果当前帧的所有线都是内编码的,则把当前帧指定为绝对依赖帧,否则,如果当前帧的所有线并非都是内编码的,则将前一帧加载到缓冲器中,其中所述前一帧变为当前帧,此后重复所述询问。
3.权利要求2的方法,其中所述解码次序视频流包括第一图像和第二图像,第一图像包括第一数量的内编码片段,第二图像包括第二数量的内编码片段,其中所述第一数量不同于所述第二数量。
4.权利要求2的方法,其中,解码次序视频流的图像之间的片段的数量是不同的。
5.权利要求1的方法,其中所述的MPEG流的类型包括(i)标准MPEG视频流,(ii)开放图像组(GOP)和(iii)I片段流,所述I片段流表示包含I帧的一部分的P帧的视频流,其中需要包含I帧的一部分的给定数量的P帧来产生完整的I帧。
6.权利要求1的方法,其中确定依赖矢量包括确定包括相对依赖和绝对依赖的MPEG帧依赖,其中相对依赖包括依赖于解码次序视频流内前一出现的锚帧的锚帧,进一步,其中绝对依赖包括探寻到解码次序视频流内图像组(GOP)的I帧的依赖。
7.权利要求1的方法,其中所述拼接点指示GOP的边缘。
8.权利要求1的方法,其中所述依赖矢量确定是下述之一:(i)硬件实现,(ii)软件实现,或(iii)硬件和软件实现的组合。
9.权利要求1的方法,进一步包括:
确定图像组(GOP)内的帧的相对依赖,其中所述GOP包括显示次序的多个帧。
10.一种信息处理系统,包括:
输入,用于接收视频流,其中所述视频流包括与通道选择相关的解码次序视频流,所述解码次序视频流表示按解码次序排序的视频流;
帧处理器,响应于所述解码次序视频流来在输出上提供显示次序的未压缩视频帧的信号,其中所述帧处理器适于执行根据权利要求1的方法;以及
数字视频编码器,响应于显示次序的未压缩视频帧,用来提供适于在显示设备上显示的视频信号。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/065,403 | 2005-02-24 | ||
US11/065,403 US7522667B2 (en) | 2005-02-24 | 2005-02-24 | Method and apparatus for dynamic determination of frames required to build a complete picture in an MPEG video stream |
PCT/US2006/002645 WO2006091313A2 (en) | 2005-02-24 | 2006-01-25 | Method and apparatus for dynamic determination of frames required to build a complete picture in an mpeg video stream |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101427572A CN101427572A (zh) | 2009-05-06 |
CN101427572B true CN101427572B (zh) | 2011-12-14 |
Family
ID=36912690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800012784A Expired - Fee Related CN101427572B (zh) | 2005-02-24 | 2006-01-25 | 用于在mpeg视频流中构建完整图像所需的帧的动态确定的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7522667B2 (zh) |
JP (1) | JP5226325B2 (zh) |
KR (1) | KR101238277B1 (zh) |
CN (1) | CN101427572B (zh) |
WO (1) | WO2006091313A2 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9100702B2 (en) | 2006-09-11 | 2015-08-04 | Tivo Inc. | Personal content distribution network |
SG184748A1 (en) | 2006-10-31 | 2012-10-30 | Tivo Inc | Method and apparatus for downloading ancillary program data to a dvr |
US8270819B2 (en) * | 2006-10-31 | 2012-09-18 | Tivo Inc. | Performing trick play functions in a digital video recorder with efficient use of resources |
CN101523911B (zh) | 2006-10-31 | 2013-08-28 | Tivo有限公司 | 用于将辅助节目数据下载到dvr的方法和装置 |
US8179976B2 (en) * | 2008-01-11 | 2012-05-15 | Apple Inc. | Control of video decoder for reverse playback operation |
US8359612B2 (en) | 2008-08-13 | 2013-01-22 | Tivo Inc. | Content distribution system using transportable memory devices |
US9407970B2 (en) * | 2009-04-28 | 2016-08-02 | Vubites India Private Limited | Method and apparatus for splicing a compressed data stream |
US9307261B2 (en) * | 2012-08-13 | 2016-04-05 | Hulu, LLC | Splicing of video for parallel encoding |
CN104243920B (zh) * | 2014-09-04 | 2017-09-26 | 浙江宇视科技有限公司 | 一种基于基本流视频数据封装的图像拼接方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112767A (zh) * | 1993-07-16 | 1995-11-29 | 大宇电子株式会社 | 用于帧抽样视频编码器中检测运动矢量的方法和装置 |
CN1117241A (zh) * | 1993-09-14 | 1996-02-21 | 株式会社金星社 | 图象解码器中包括半象素单元运动补偿装置的b帧处理装置 |
CN1128098A (zh) * | 1993-07-30 | 1996-07-31 | 英国电讯有限公司 | 图象数据编码 |
EP1377040A1 (en) * | 2002-06-19 | 2004-01-02 | STMicroelectronics S.r.l. | Method of stabilizing an image sequence |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091782A (en) * | 1990-04-09 | 1992-02-25 | General Instrument Corporation | Apparatus and method for adaptively compressing successive blocks of digital video |
US6920175B2 (en) * | 2001-01-03 | 2005-07-19 | Nokia Corporation | Video coding architecture and methods for using same |
US20030079228A1 (en) | 2001-10-23 | 2003-04-24 | Shu Lin | Searching for frames to perform a trick mode |
US7787746B2 (en) | 2001-10-23 | 2010-08-31 | Thomson Licensing | Fast motion trick mode using non-progressive dummy bidirectional predictive pictures |
US6738980B2 (en) | 2001-11-15 | 2004-05-18 | Industrial Technology Research Institute | Methods and systems for video streaming with VCR functionality |
US20040260827A1 (en) * | 2003-06-19 | 2004-12-23 | Nokia Corporation | Stream switching based on gradual decoder refresh |
-
2005
- 2005-02-24 US US11/065,403 patent/US7522667B2/en not_active Expired - Fee Related
-
2006
- 2006-01-25 CN CN2006800012784A patent/CN101427572B/zh not_active Expired - Fee Related
- 2006-01-25 JP JP2007557026A patent/JP5226325B2/ja not_active Expired - Fee Related
- 2006-01-25 WO PCT/US2006/002645 patent/WO2006091313A2/en active Application Filing
- 2006-01-25 KR KR1020077019370A patent/KR101238277B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1112767A (zh) * | 1993-07-16 | 1995-11-29 | 大宇电子株式会社 | 用于帧抽样视频编码器中检测运动矢量的方法和装置 |
CN1128098A (zh) * | 1993-07-30 | 1996-07-31 | 英国电讯有限公司 | 图象数据编码 |
CN1117241A (zh) * | 1993-09-14 | 1996-02-21 | 株式会社金星社 | 图象解码器中包括半象素单元运动补偿装置的b帧处理装置 |
EP1377040A1 (en) * | 2002-06-19 | 2004-01-02 | STMicroelectronics S.r.l. | Method of stabilizing an image sequence |
Non-Patent Citations (1)
Title |
---|
EP 1377040 A1,全文. |
Also Published As
Publication number | Publication date |
---|---|
KR101238277B1 (ko) | 2013-03-04 |
CN101427572A (zh) | 2009-05-06 |
KR20070104920A (ko) | 2007-10-29 |
WO2006091313A2 (en) | 2006-08-31 |
JP2008536349A (ja) | 2008-09-04 |
JP5226325B2 (ja) | 2013-07-03 |
WO2006091313A3 (en) | 2008-08-14 |
US20060188016A1 (en) | 2006-08-24 |
US7522667B2 (en) | 2009-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427572B (zh) | 用于在mpeg视频流中构建完整图像所需的帧的动态确定的方法和装置 | |
KR101885008B1 (ko) | 스크린 컨텐츠 코딩을 위한 스크린 맵 및 표준 기반의 프로그레시브 코덱 | |
CN100424997C (zh) | 编码器冗余选择系统和方法 | |
CN103621085B (zh) | 降低视频解码中的延迟的方法和计算系统 | |
US8890874B2 (en) | Changing visual content communication | |
CN101616318B (zh) | 用于渲染或译码已压缩多媒体数据的方法及相关的装置 | |
CN104243982A (zh) | 一种视频编解码处理方法及装置 | |
CN103430565A (zh) | 将一个或一个以上矩阵码同步到与多媒体呈现有关的内容 | |
CN105325009A (zh) | 用于流式传输视频质量分析的改进技术 | |
TW200917671A (en) | Data compression/decompression apparatus and method | |
CN103002288A (zh) | 一种视频图像的编解码方法及装置 | |
CN108429924A (zh) | 用于播放替换用广告的显示装置及其控制方法 | |
CN104662903A (zh) | 包括置信度水平和混合内容信息的补充增强信息 | |
CN103379333A (zh) | 编解码方法、视频序列码流的编解码方法及其对应的装置 | |
US8463062B2 (en) | Image transmission apparatus, method, recording medium, image output apparatus and image transmission system including pattern determination unit | |
CN101288314A (zh) | 动态图像编码装置、动态图像解码装置、动态图像编码方法、动态图像解码方法、动态图像编码程序以及动态图像解码程序 | |
CN100385958C (zh) | 用于容错视频编码的循环再同步标记 | |
CN102379087B (zh) | 压缩方法、解压缩方法、压缩单元、解压缩单元以及压缩文档 | |
CN101375609B (zh) | 适应性的编码和解码 | |
CN101640805A (zh) | 一种视频解码方法及视频解码器 | |
CN103716638A (zh) | 表示视频图像显示顺序的方法 | |
CN101119440B (zh) | 帧转换设备和方法以及帧类型检测设备和方法 | |
CN105847822A (zh) | 一种视频解码方法及装置 | |
US20060204117A1 (en) | Encoding device, encoding method, and program | |
CN100534200C (zh) | 视频解码器的错误检测装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111214 Termination date: 20180125 |