CN101010959B - 传送数据流的方法和系统 - Google Patents

传送数据流的方法和系统 Download PDF

Info

Publication number
CN101010959B
CN101010959B CN2005800235576A CN200580023557A CN101010959B CN 101010959 B CN101010959 B CN 101010959B CN 2005800235576 A CN2005800235576 A CN 2005800235576A CN 200580023557 A CN200580023557 A CN 200580023557A CN 101010959 B CN101010959 B CN 101010959B
Authority
CN
China
Prior art keywords
frame
data flow
information
data
time slot
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
Application number
CN2005800235576A
Other languages
English (en)
Other versions
CN101010959A (zh
Inventor
贾克斯·佩弗斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MIDSTREAM TECHNOLOGIES Inc
Original Assignee
MIDSTREAM TECHNOLOGIES Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MIDSTREAM TECHNOLOGIES Inc filed Critical MIDSTREAM TECHNOLOGIES Inc
Publication of CN101010959A publication Critical patent/CN101010959A/zh
Application granted granted Critical
Publication of CN101010959B publication Critical patent/CN101010959B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/434Disassembling 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
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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
    • H04N21/44004Processing 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 involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

公开的实施方式考虑用于传送数据流的技术。本发明的技术包括确定第一数据流的第一时隙和确定第二数据流的第二时隙。如果第二数据流比第二时隙大,第二数据流的一部分移至第一时隙。此外,此技术可包括控制数据存储量随移动部分的变化。同样,此技术可监控第二数据流的大小和第二时隙的大小。

Description

传送数据流的方法和系统
交叉参考
本申请要求保护2004年7月23日提交的题目为“缓冲器最优化技巧模式和速度转换”、序列号为60/590,504的美国临时申请的优先权权益,并在此全文引入作为参考。 
技术领域
本公开一般涉及用于传输视频数据的技术。 
背景技术
视频帧可用于表示能够快进、倒退、暂停、停止和播放的数据。对于给定的时间周期或时隙,与那些视频帧相关联的传输或接收的数据量可用于确定可用的带宽。一种类型的视频帧可以称之为“技巧模式”帧,它用于许多不同视频传输方法。 
需要考虑在视频传输中的视频帧的传输管理以便获得希望的视频产品质量。对于技巧模式帧,与给定帧相关联的数据量存在不可预知性和变化,这将促成管理问题。例如,为保证技巧模式帧拟合在可用时隙内,在每个时隙具有足够大的固定带宽量来传输最大技巧模式帧的情况下可使用时隙技术。然而,对于其它短的技巧模式帧,可以不用带宽,其中,时隙比要求的大。这可导致未用带宽量的上升。 
在传输缓冲技巧模式帧之前,估计缓冲技巧模式帧所需要的存储量通常也很困难。结果,在某些时刻需要缓冲的数据量可能比可用存储器大,导致“缓冲器溢出”情况。缓冲器溢出情况可导致多种不希望的视觉情形,如跳格(jump)和抖动(jitter)。 
附图说明
图1提供了视频缓冲器电平的例子; 
图2提供了增加图像主体群(subject Group of Pictures)的长度的举例技术; 
图3说明了在某缓冲器电平视频帧序列的效果; 
图4提供了视频流分布曲线; 
图5提供了技巧模式信息包调整的说明; 
图6是在缓冲器电平上移动一个技巧模式信息包的效果的图形描述; 
图7说明了如何使用缓冲器最优化来产生技巧模式流; 
图8提供了技巧模式视频流的输出; 
图9提供了拼接技术的说明; 
图10是用于传送数据流的系统; 
图11是用于传送数据流的方法的流程图;和 
图12是用于控制数据存储电平的方法的流程图。 
具体实施方式
公开的实施方式提供技术以获得在传送诸如技巧模式视频流的视频数据中的高效的带宽使用,同时保持缓冲器电平以提供希望的视频重放条件。应认识到,虽然在运动图像专家组(MPEG)技术的环境下讨论实施方式,但是还可以与其它类型的数据压缩/解压缩技术一起使用这里所描述的技术。 
在一些视频压缩/解压缩技术中,视频可被分割为帧。例如,MPEG使用至少三种不同类型的视频帧:I-帧、P-帧和B-帧。I-帧或“帧内编码帧”包括帧内宏块,允许解码I-帧而不需要序列中任何其它以前或将来的帧。对于MPEG视频的随机播放,解码器可以从I-帧开始解码。I- 帧可以是插入的每12到15个帧且可用于开始一个序列,允许从随机位置开始并针对诸如象快进和快退之类的技巧模式特性来播放视频。 
P-帧编码为不同于以前的帧。通过取出一个以前的帧并预测当前帧的新像素的值可以预测新的P-帧。根据运动表示的量,P-帧可提供更高的压缩比率。 
B-帧或“双向帧”编码为不同于以前或后续B-帧,为准确解码,可以使用以前和后续帧。这样,读取的帧的顺序可以和显示的顺序不一致。这意味着可以在当前B-帧之前传输和解码后续帧,但在当前帧之后显示。例如,帧I1B2B3P4B5B6P7的显示顺序可以被重新排序并传输为I1P4B2 B3P7B5B6。 
MPEG视频的序列包括一个图像组(GOP)。每个GOP包括视频帧。GOP结构与它们包含的帧的数量(N)和两个参考帧之间的距离(M)相关。例如,通常的GOP结构可以是IBBPBBPBBPBBPBBP,其中N=15而M=3,和/或IBBPBBPBBPBB,其中N=12而M=3。当然,这些结构可以变化而其中的一些可以包括例如只有P-帧的流,如PPPPPPPP。 
技巧模式GOP是一个视频序列,包括一个I-帧和多种数量的虚拟B-帧和P-帧。技巧模式GOP大小可以与技巧模式GOP中的帧的数量相关。例如,IBBPPP的GOP结构的GOP大小为6。GOP或技巧模式信息包的时隙可以是从I-帧DTS(解码时间标记)到下一个I-帧DTS的时间段。 
技巧模式信息包可以与技巧模式GOP相关,且可以包含修整有效传输流的数据。技巧模式信息包可以包括程序配置表(PAT)、程序映射表(PMT)、传输流信息包、技巧模式GOP和具有不同大小的填充符空信息包,所述传输流信息包具有只为进行同步(记为“Sync”信息包)的程序时钟基准(PCR)(如:无数据)。 
技巧模式信息包的大小基于技巧模式信息包自身。技巧模式信息包的大小也要适应存储开销、网络开销和比特率控制。例如,包括I-帧的文件分段也可以包括其它信息包标识或在传输流电平被复用的“PID”(例如PAT、PMT、音频)。将模块读入存储器,而非视频信息包可以 用零代替(例如,“静音”)。 
技巧模式信息包也可以是1316字节的倍数(例如用户数据报传输流协议或UDP的MPEG2传输流)。 
图1提供了使用固定时隙分配基于I-帧技巧模式的视频缓冲器电平的例子。如图1所示,每个GOP包括7个帧。可以使用GOP的其它大小。在帧周期内(例如1/30秒)给出图1描绘的水平刻度(t)。例如,“技巧模式GOP”结构可以是IBBPPPP或跟随有2个虚拟B-帧和4个P-帧的一个I-帧。此结构每30秒产生7个I-帧,或每秒4.28个I-帧。 
如图1中虚垂直线所示,在t=2时接收到第一个GOP。因为GOP结构设置为7帧,所以直到t=7时才解码并显示。第二个GOP结构在t=13接收到。在这一例子中,从t=7到t=13解码器显示第一个GOP,而第二个GOP被传输并缓冲。在t=14,第二个GOP已经缓冲完毕并准备好被解码。 
GOP在其准备好被解码和显示的时间间隔之前被接收,不会发生解码过程的中断。然而,因为在GOP准备好被解码和显示的时间间隔之前接收,所以有未用的带宽。此未用带宽描述为图1中矩形斜线阴影部分区域。 
试图解决这一浪费带宽问题的一个方法是每秒发送更多的I-帧,例如,通过减少时隙和/或GOP大小。例如,参照图1,减少GOP至6帧可以使第一GOP的未用带宽量减少一个帧。然而,在第一GOP被解码和显示之后,直至t=13.5第二GOP才准备好被传输。因为第二GOP花费约6.5帧间隔(即13.5-7)被传输,所以第一GOP将导致在t=12呈现给解码器一个不完整的第二GOP。提供一个不完整的GOP给解码器可带来“缓冲器下溢”。在一个实施方式中,时隙和GOP的长度可以是序列GOP的大小的函数。例如,如图1中样品分布所反映的,一些I-帧可以要求短如2帧的时隙,而其它帧可要求长如6帧的时隙。 
图2提供一种举例的技术,此技术基于跟随主体GOP的GOP来增加主体GOP的长度。如图2所示,使用同一个GOP序列,可以通过使全部间隔对每个GOP都是随机的,使未用带宽(如斜线阴影矩形部分所示)减少至刚好一个间隔的长度。具体来说,第一GOP有3个帧的间隔,第二GOP有5个帧的间隔。生成的技巧模式序列可以引入新I-帧,这个新I-帧在随机的间隔出现。
图1和图2所示的技术可以在假定视频缓冲器在每个GOP被解码后为空的情况下操作,因为缓冲器包括具有可忽略大小的余下的虚拟B-帧和P-帧。 
数据接收过程可以在接收到的每个第“N”帧解码一帧以生成一个“N速(N-speed)”技巧模式流。例如,为了生成一个8倍的流,接收过程可以解码帧1,9,17,25......(8n+1)。可以使用这些帧来生成MPEG2传输流,使得结果流可以包括例如每秒30个唯一的帧。然后,可以将帧序列编码成新的MPEG2传输流,它可以保留原始传输流的一些特性,例如帧速率、比特率、PID赋值、视频格式和视频缓冲器特性(如:用于平滑速度转换的缓冲器电平和缓冲器大小)。此技术可提供更好的技巧模式质量。此技术也可使用更大的处理器功率和额外的存储开销(如:通常为30%)。 
在一些实施方式中,基于I-帧的技巧模式也可以插入虚拟B-帧和P-帧。同样,在一些这样的实施方式中,P-和B-帧可以利用帧预测来编码,这将导致帧抖动。例如,在那些使用广播电视(如:国家电视系统委员会(NTSC))的实施方式中,每个帧可以由两个交错字段构成,给出总数为每秒60个字段。作为在电影中24fps和电视中30fps帧速率之间的不同的结果,可以使用一种“3:2下拉式(pulldown)”方法将电影转换成电视内容。 
“3:2下拉式”方法可以交替地将一帧转换成3和2个字段。例如,24fps的4帧(即每6秒一帧)将以30fps生成10个字段或5个完整帧。当为编码使用交错模式时(对比于渐近模式),一帧将包括两个字段-在顶部的A和在底部的B。如果使用帧预测来生成虚拟B-帧和P-帧,解码器可以从参考图像或I-帧复制这两个字段。因此,例如,带有结构IBBPP的技巧模式GOP会使解码器产生具有ABABABABAB结构的5个字段序列(每帧两个AB)。 
I-帧可以包括起源于两个不同图像的字段,字段序列ABABABABAB可以带来一个“抖动”的印象。 
在一些实施方式中,启动技巧模式特征时,当将B和P-帧复制至输出流时,B和P-帧使用的参考帧可能受到破坏。这部分地是由于通过从N帧中挑出一帧可以生成技巧模式文件的事实。结果,因为B和P-帧不再出现在输出流中,所以,丢失基准的这些帧必须充分解码,并随即在技巧模式流的环境下利用不同的参考帧重新编码。 
例如,可以由关于技巧模式序列的IBBPBBP来表示视频帧序列IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBIBBP。在原始视频帧序列中的B-帧可依赖于以前和后续的I和P帧,这些帧并不是技巧模式序列文件的一部分。还有,根据一些帧在何处插入序列,在技巧模式文件中的这些帧可以被不同地编码。例如,原始序列中的I-帧可以编码为技巧模式文件中的P-帧,而B-帧可变为P-帧或甚至带有完全不同参考帧的另一个B-帧。 
在有线电缆工业中使用的典型的带宽速率包括3.75兆比特/秒(3.75Mbits/s),以3.75Mbits/s接收每秒30帧的流,如CablelabsTM ContentSpecification 1.0[4]所描述的。对于可要求4个技巧模式文件(如:速率为15x、-15x、60x和-60x)的视频点播(VOD)服务器,可使用4个编码器通过处理从原始视频流抽取并解码的帧,生成并行的多至4个的不同技巧模式文件。 
每个技巧模式编码器可用每秒2帧(fps)(30/15)、2fps(30/15)、0.5fps(30/60)和0.5fps(30/60)接收,所有4个编码器每秒为总共5帧。通常,例如,使用例如来自2.4GHz PentiumTM 4处理器的几乎所有处理能力可以用近似45Mbits/s的接收带宽对12个流进行编码。得到的技巧模式文件分别约为原始文件大小的6.7%、6.7%、2.2%和2.2%,总数约为16.6%的存储量。因此,在一些实施方式中,生成的标准技巧模式文件可以要求大量的计算机处理功率和复杂的计算机逻辑。此外,这一过程可以充分解码一些帧,而另一些如B-帧可能不能解码。 
可为随机访问机制使用I-帧,因为显示这些帧不依赖于以前或后续的帧。因此,对于一些实施方式,可以通过将I-帧并入新生成的流并插入空信息包以控制比特率来使用技巧模式。
传送I-帧的时间可以比一个帧间隔长。例如,对40kb的平均I-帧大小,30fps的单独I-帧技巧模式流将要求至少9.8Mbits/s(40kb x 8x30),或在有线电缆工业中通常使用的3.75Mbits/s速率的约2.6倍。 
在一些实施方式中,为了保持如30fps较高的帧速率,I-帧速率可以减少至约每秒10个I-帧。例如,可以通过插入另一些帧来代替余下的I-帧来保持速率。例如,可以2个或更多个帧周期或间隔显示I-帧,以便允许后续I-帧被传输和缓冲。可以是上一个显示帧的复制品的“虚拟”B-帧或P-帧可插入视频流。在一个实施方式中,“虚拟”或复制的帧可以是和平均I-帧大小相比具有减少了的大小的“非运动(no-motion)”帧。虚拟帧可以提供处理器的高效率,因为它们在基本上相同的时刻可以编码,并可以插入输出流以扩展GOP的规模。 
速率为10I-帧/秒的技巧模式流可以通过“技巧模式GOP”或视频帧技巧模式序列的生成来完成。例如,可以以一个I-帧生成“技巧模式GOP”序列,所述I-帧的后面有2个虚拟B-帧以生成下面的序列:如IBBIBBIBBIBBIBB。如果,例如虚拟B-帧的大小为近似1.2kb,输出流的平均比特率为3.5Mbits/s((40kb*8*10I-帧/s)+(1.2kb*8*20B-帧/s)),或在最大带宽速率3.75Mbits/s之内。 
在一些实施方式中,时隙分配和技巧模式GOP大小在基于I-帧的技巧模式流中动态调整以方便有效的带宽使用。通过检查并防止缓冲器的溢出,这些技术进一步监视视频缓冲器的使用。在某个方面,可插入“虚拟”P-帧。 
还可以使用这些技术来最大化带宽使用,同时将缓冲器电平保持在最小电平并在处理速度变化时增加系统响应。例如,为了生成8倍流,这些技术可提供平均每秒近似10个单独I-帧。剩下的帧(如:在每秒30帧的流中的每秒20帧)可以是虚拟的或非运动的B-帧和P-帧。 
在一个实施方式中,这些技术合并在视频流软件产品中。也可使用硬件、固件或任何它们的组合来实现这些技术。 
可使用一个数据结构来分析视频接收流。例如,“Hinter”结构和所分析的数据(即I-帧和流信息)可以存储在叫“HINT”文件的一个文件中。应该注意,例如由典型的Pentium 4TM 2.4GHz处理器以近似300Mbits/s可以管理视频接收。HINT文件可以包括一个大约为64k的标题。HINT文件也可包括一个每I-帧大约为128字节的I-帧表且可有一个相关的I-帧位置的指针。3.75Mbits/s的两小时长的电影具有2.0I-帧/s(即总共14400I-帧),将生成大小为大约1.9M字节的HINT文件,此文件小于原始文件规模大约0.06%。然而,因为技巧模式不可在接收时生成,诸如在流动软件和/或硬件中使用的技术可以动态生成技巧模式流。 
图3说明了在缓冲器电平上的I-帧序列的效果。垂直轴代表I-帧的解码时间。如图3所示,技巧模式信息包通过利用缓冲“打包(packed)”。I-帧的大序列可以使缓冲器电平在短时段增加,而对帧速率有小的或无影响。即使虚拟P-和B-帧也被传输和解码,但它们比I-帧小大约30倍或每个大约为1.3k。 
在一些实施方式中,所使用的用来调整缓冲器电平的技术可以从一个固定时隙技巧模式序列得到。这样的序列可以与图1讨论的序列类似。同样,为了获得相对较高的视觉质量,这些技术试图生成I-帧的基本不变的速率。虽然视频流可以包括具有任意分布的I-帧,为了理解和说明,下面的描述假定输入的视频流包括如图4中描述的具有确定大小分布曲线的I-帧。 
预期的技术可以重新分配时隙内未使用的带宽,包括尺寸过小的I-帧以容纳尺寸过大的I-帧。例如,通过选择足够的技巧模式时隙大小(即基于GOP大小)和选择足够大的时隙调整或窗口以保证一组技巧模式信息包可以被调整或重排而不会使缓冲器溢出,可以实现上述技术。 
通过在传输之前重排技巧模式信息包序列,可以改善带宽利用率。同样,预期技术可以使用统计平均以容纳技巧模式信息包的任意序列的GOP大小。在一个实施方式中,通过保证GOP大小小于或至少等于调整信息包的大小来实现平均。 
作为此重分配和来自其基本固定时隙的I-帧的重新排列的结 果,此技术可以包括解码和相关的缓冲。而且,可以完成对缓冲数据的量的管理以防止缓冲器溢出或下溢情况。 
图5提供了技巧模式信息包调整的说明。如图5所示,上窗口501说明了某个过大的技巧模式信息包如何无法装入固定可用时隙。例如,虽然技巧模式信息包506装入固定时隙503,但技巧模式信息包504未能装入后续时隙505。结果,技巧模式信息包504的一部分跑到时隙507中。 
下窗口502说明了时隙如何被重新安排或重新排序。这样的重排允许可用带宽或“空信息包(nulls)”的使用,它们来自将用于较大技巧模式信息包的以前或后续的技巧模式信息包。 
下面的讨论以数学术语量化所描述的概念。然而,应该认识到,本公开不限于这些方程的处理或使用。作为替代,提供下面的讨论以获得对新概念的进一步理解,举例的方程提供了实施方式所关注的仅一种可能的方法。 
对于具有比特率br、帧速率fr和GOP大小为q个帧的数据流,在给定时隙内可被传输的数据量Q可以表示如下:  Q = q b r 8 f r I-帧速率r可以计算为:  r = f r q
在一些环境下可以希望,为得到更好的视觉质量,通过提供每GOP恒定数量的帧来保持q为整数。可选择地,也可以允许q在不同的GOP中变化(即GOP大小变化)。其它可能的实施方式可以对q使用平均值。例如,为具有大小2,3,2,2,3并提供每秒12.5I-帧的GOP序列可建立2.4个帧的q值。 
对视频流应用上述等式,其中br=3.75Mbits/s,fr=30fps且q=3,允许以I-帧速率r=10I-帧/秒在每个时隙内传输46875个字节。 
为了对具有n个技巧模式信息包的调整窗口估计所需要的带宽,需要考虑许多方面的估算值。例如,I-帧的大小、虚拟B-帧和P-帧的数目和它们的大小、以及开销数据如PAT、PMT、PCR信息包的大小,需要考虑的磁盘和网络开销。可以估计这些数值。例如,可以估计,原始流中的I-帧大小可具有确定的大小分布(I,σ1),这个分布可不必遵循任何特定的分布曲线。磁盘或存储开销可以在确定技巧模式信息包大小中估计。 
以上估计可导致视频缓冲器电平的大约10%的过度估计。结果,在一些实施方式中,在直接从存储器获得的40KB块中,必须传输小于或等于36KB的存储在视频缓冲器中的实际视频数据。余下的4kB可以包括其它PID(如音频、PMT、PAT),它们嵌入块中并在发送之前为“空(nulled)”或“静音(muted)”。可选择地,可以重排视频数据并可发送大约36KB的视频数据。 
为了保证避免缓冲器溢出,公开的技术可以设立缓冲器容量90%的限制。此90%的限制可避免在所描述的方法中更大的错误。缓冲器电平达到其限制90%的概率是相对低的,因为它需要在技巧模式序列中的过大I-帧的相对大的序列。此外,通过过大估计缓冲器电平,检测缓冲器溢出的可能性增加了,然而不会在技巧模式性能中产生更多的降级。 
在确定n个随机I-帧序列中的每个I-帧的大小时,总的大小  S n = Σ i = 0 n - 1 Ii 是随机变量,它的分布为(nI, 
Figure G05823557620070116D000102
)。n的值越大,随机分布(Sn)就更接近正态分布。任何由此估计产生的误差可由P-帧插入来纠正。 
此外,通过估计虚拟P-帧和B-帧的大小(P)和开销数据(OH),包含在n时隙的调整窗口内的流数据(Tn)的总量可以通过下列等式来表示: Tn=Sn+nOH+n(q-1)P=n(I+OH+(q-1)P)  σ T = σ s = nσ 1 在调整窗口中的可用带宽可以通过下列等式来表示: Qn=nQ=nqbr/8fr 为了使在分配的调整窗口内装入技巧模式信息包序列的概率最大,在 一些实施方式中公开的技术可以试图保持必须执行纠正的低概率ε,其中ε>P(Tn>Qn)值在10-3量级。 
考虑到n值足够大以使得Sn可以认为是正态分布,n足够大以满足下列等式:  erf ( Q n - T n &sigma;T ) < &epsiv;
在上面的等式中插入下列真实值:Br=3.75Mbits/s,fr=29.97fps,q=3帧,I=40491字节,σT=10835字节,P=1.0kb,OH=2.0kb,生成下列等式:  Q n = n . 3.3.75.106 8.29.97 = 46921.92 &CenterDot; n T n = ( 40491 + 2048 + 2.1024 ) &CenterDot; n &CenterDot; &sigma; T = 10835 n T n = 44587 &CenterDot; n &CenterDot; &sigma; T = 10835 &CenterDot; n 如果ε=10-3,调整窗口为:  erf ( ( 45922 - 44587 ) &CenterDot; n 10835 &CenterDot; n ) < 10 - 2 erf ( 0.1232 &CenterDot; n ) < 10 - 3 0.1232 &CenterDot; n > = 3.08 n>=625 
当一个I-帧的平均大小仅略低于所选的时隙大小时,所描述的技术允许技巧模式流为大约10I-帧/秒。同样,在此例中,带宽利用率大约为97%(即44587字节除以45922字节)。实际的带宽利用率百分比可以由根据缓冲器溢出做出修正的需要(即P-帧插入)来降低。 
下面的例子通过选择调整窗口大小和确定最大技巧模式速度或最小GOP大小(q)而采用了不同的方法:  Q 64 = 64 q &CenterDot; 3.75 &CenterDot; 10 6 8 &CenterDot; 29.97 = 1.001 &CenterDot; 10 6 &CenterDot; q T64=(2.657+0.066·q)·106,σT=86680  erf ( 1.001 &CenterDot; q - ( 2.657 + 0.066 &CenterDot; q ) 0.086680 ) < 10 - 3 0.935 &CenterDot; q - 2.657 0.086680 > 3.08 q>3.127帧 
这里,调整窗口大小(N)设为64个采样而ε为10-3,并计算允许的I-帧速率。通过从流中选择统计变量并计算最大技巧模式速度来完成此任务。如前所述,I-帧的统计变量可存储在与流相关联的“HINT”文件中。q=3.127的结果可以近似为9.6I-帧/秒,允许生成不规则的GOP大小如3,3,3,3,3,4,3,3。在其它实施方式中,这个结果可以舍入为下个整数q=4,进而为7.5I-帧/秒。 
缓冲器调整技术可以要求一组自每个技巧模式信息包计算所得的参数。这些参数可指示给I-帧选择、I-帧数据收集和控制变量的初始化。 
关于I-帧选择,可以确定以一定速度(如15倍,30倍,-10倍等)生成技巧模式流的I-帧序列。可以根据速度(s)、所选择的GOP大小(q)和从原始流提取的信息,如帧速率(fr)和在流中每秒I-帧的平均值(Ir)来确定I-帧序列。当MPEG2文件第一次被接收并存储在HINT文件中时,可以计算Ir作为提示过程的一部分。 
下面举例的实施方式为更好的理解做准备。假定采用平均2I-帧/秒和在10I-帧/秒产生的技巧模式流,如果选择了每个I-帧,技巧模式流将以5倍速度x生成。可选择地,如果选择了每隔一个I-帧(即增量为2),可生成10倍速度的技巧模式流。从最后一个到第一个(反向顺序,增量为2)选择每隔一个I-帧,给出了-10倍的技巧模式速度。 
对于一个具有技巧模式速度(s)的平均I-帧/秒(Ir)的视频流,浮点索引增量(i)可计算为i=sqIr/fr。可使用索引增量计算I-帧索引(x)的序列,它也为变量。可以通过循环在下面例子中提供的索引的序列来得到实际的I-帧。 
Ir=2I-帧/秒,b=3或10I-fps而fr=30fps。如果技巧模式以速度为-16倍(即快退)运行,在I-帧号码600开始(即从电影的开始大约5分钟),I-帧索引的序列为600且I=3.2=-16x3x2/30。因此,产生的索引序列为600.0,596.8,593.6,590.4,587.2,584.0等等。同样,为缓冲器调整算法选择的I-帧序列为600,597,594,590,587,584等等。 
当技巧模式播放速度较小时,例如4倍,得到的索引增量可小于1.0并导致重复帧。在这些情况下,在根据计算的索引增量的I-帧选择期间,可修改GOP大小(q)。例如,使用上面的值,GOP大小(q)可修改为3.75并舍入成4.0。这可以将每秒I-帧的平均数量从每秒10帧减少至每秒7.5帧。这使索引增量在大约i=1.067。 
应该注意到,一些实施方式将GOP大小(q)处理为变量或浮点,以便使索引增量的界限限制为1.0而可以假定q为非整数值如3.75。这将产生GOP序列,其大小为4,4,4,3,等等。 
关于I-帧数据收集,一旦确定了I-帧序列,就可以收集关于I-帧的信息并可以初始化一些数据结构(如每技巧模式信息包的一个或多个)。通过简单地指向合适的I-帧条目可以从HINT文件中获得数据。 
下面的讨论提供了可使用的数据信息类型的一些例子。可以收集“起始”数据。起始数据是传输流信息包的偏移量,它包括与I-帧相关联的PES标题。这可为I-帧开始时的偏移量。也可以收集“结束”数据。结束数据可以是文件中的I-帧的最后一个偏移量。这为经过最后I-帧视频数据过后的偏移量。应该注意到,在起始和结束偏移之间,其它非视频传输流信息包可以出现在文件中。在流动之前,这些信息包可转换为空。 
也可以收集“大小”数据。可以计算大小数据作为差值(结束减去起始),这个差值为可发送的包含整个I-帧的数据量。也可收集“时间码”数据。时间码数据可提供与最终询问流动的当前时间码的其它成分的连接。可以在GOP标题中找到时间码并在提示过程中将其抽取。 
也可以收集“文件PCR”数据。文件PCR数据可与起始偏移相关以允许流动软件完成PCR重新标记。可以收集“文件DTS”数据且“文件DTS”数据与在原始资源中的I-帧相关联以完成DTS重新标记并 完成在正常播放和技巧模式之间的平滑缓冲转换并回到正常播放。可以收集“文件PTS”数据且“文件PTS”数据与在原始资源中的I-帧相关联以完成展示时间标记(PTS)的重新标记并保持在所有转换中的帧间隔。 
可以收集“CC Start”和“CC End”数据。CC Start数据是起始信息包的传输流连续计数器。CC End数据是结束信息包的连续计数器。在一些实施方式中需要CC Start和CC End数据以便完成CC重新标记。 
可以收集“下一字段”数据。通过下一字段数据,使用“重复第一字段”标志可以对I-帧编码,因而它们包含3个字段而不是2个。为了在转换期间保持字段序列,在转换后的第一虚拟B-帧中可以使用字段调整机制。 
关于控制变量的初始化,期望跟踪某些流动变量。例如,流偏移、流PCR、流DTS和流PTS。流偏移可以是由流动软件产生的数据的总和,它不同于文件偏移。在PCR重新标记机制后,流PCR可以是在输出流观察到的实际PCR。因为流动软件以不变的比特率操作,流偏移增量可以与流PCR增量相关。 
可以初始化的确定字段。例如,“frames”是帧的数目或可以是当前技巧信息包的GOP大小。如果最初设置为以前计算出的数目q,则帧的数目可根据需要增加(如P-帧插入机制)。如果将q实施为浮点或变量,可以根据如下所示的误差传播机制(即q error初始化为数值0)来计算帧的数目:Frames[i]-truncate(q+q_error);Q_error=q+q_error-fremes[i];如果q=2.6666......,生成的序列为:frames={2,3,3,2,3,3等等} 
信息包大小字段表示总的信息包大小。信息包大小可基于以前的信息包的时隙并可以产生非整数的TS信息包。这可以通过误差传播机制来纠正,其中考虑了以前技巧模式信息包的超额。在此,可以对整个技巧模式信息包强制一个确定的颗粒性,如188字节(传输流信息包大小)或1316字节(UDP上MPEG2信息包大小)。 
根据流动引擎状态,可以按不同的方式处理第一技巧模式信息包。例如,如果流动引擎是无效的(即暂停和停止),则由于解码器是无效的因而没有缓冲器下溢的风险。信息包大小可设为0且通过调整技术可修正。另一方面,如果流动引擎正在播放,根据以正常速率显示的上一帧的DTS和当前PCR之间的不同可计算第一时隙。换言之,在缓冲器自“正常播放”数据开始基本耗尽之后,可以对第一技巧信息包解码。这可以是用于从“播放”到“技巧模式”转换的“解缓冲(debuffering)”技术。 
在此例中,计算技巧模式信息包大小的序列可基于以前信息包(frames[j-1]*fr)的时隙。信息包大小和信息包超额可以是浮点或变量且可以如下计算: If(j=0 and StreamState=STOPPED)/*完全停止后的第一技巧模式信息                                          包*/       Packet_size[j]=0 if(j=0 and StreamState=PLAYING)/*播放后的第一技巧模式信息包*/       packet_size[j]=((StreamDTS-StreamPCR)/27000000.0)*br/8.0; else       packet_size[j]=(frame[j-1]/fr*(bI/8)+packet_excess[j-1];       packet_excess[j]=packet_size[j]-truncate)packet_size[j]/granularity)                                          *granularity       packet_size[j]=packet_size[j]-packet_excess[j]; 
信息包超额可以是用于实现技巧模式信息包的确定颗粒性的控制变量,且通过P-帧插入技术用于当延展信息包大小时保持颗粒性。数据大小可以代表总的数据大小,包括I-帧、虚拟B-和P-帧、PAT、PMT和与装配技巧模式信息包相关联的开销。Data_size可按如下计算:data_sized]=size[j]+(frames[j]-1)*P+OH。 
“Bw_balance”可以表示缓冲器调整的可用带宽。它可以是packet_size和data_size之间的差。未用带宽可用空信息包填充,保持流比特率。 
在一些实施方式中,技巧模式信息包的最小大小可以是强制的。这可以通过使用于调整的可用带宽比实际计算的可用带宽小来完成。在一些实施方式中,当确定技巧模式信息包的大小时,可以考虑诸如最小“查找时间”或在技巧模式信息包之间的由硬件约束强制的最小延时之类的硬件限制。同样,这些考虑可以包括在q的计算中,因为q改变了关于如何使用技巧模式带宽的一些假定。 
此外,可在空信息包上强制确定的颗粒性,颗粒性为调整可用,例如用于UDP信息包上的传输流的1316。这可依赖于流动软件或硬件的特定实施方案。可用带宽可按如下计算:     if(ddata_size[j]<min_size)      then bw_balance[j]=packet_size[j]-min_size;     else      bw_balance[j]=packet_size[j]-data_size[j];   if(bw_balance[j]<0)      bw_balance[j]=granularity*(truncate(bw_balance[j]/granularity-1);     else      bw_balance[j]=granularity*truncate(bw_balance[j]/granularity); 
Bw_balance经常可以假定代表过大大小信息包的负值。负值可以是需要从其它技巧模式信息包取出的技巧模式信息包的缺失带宽的数量。这可以通过使用来自小信息包的可用带宽平衡大信息包需要的带宽来完成。根据参数ε,可以使用统计分析来保证在调整窗口中的可用带宽的总体平衡是正的(∑bw_balance[i]>0)。 
“Stream offset”可以是信息包的所期望的当前流偏移。如果当前信息包是第一个发送的,此信息包可以是从如上所述流动引擎取出的流偏移。 If(j=0)        Stream_offset[j]=StreamOffset; Else      Stream_offset[j]=stream_offset[j-1]+packet_size[j-1]。 
对于从磁盘检索的视频数据的精确PCR重新标记,“StreamPCR”可能是必要的。 If(j=0) Stream_PCR[j]=StreamPCR; Else Stream_PCR[j]=StreamPCR[j-1]+round(27000000*packet_size[j-1]*8/br); 
“Stream DTS”可以代表I-帧的解码时间,I-帧作为技巧模式GOP的一部分发送。通过乘以300,DTS和PTS可与PCR具有相同的时基。如果有一个从播放到技巧模式的转换,DTS可需要通过一半帧来纠正以便允许如前所述的字段调整。否则,技巧模式信息包计算为: if(j=0)   stream_DTS[j]=StreamDTS;  else   stream_DTS[j]=StreamDTS[j-1]+round(27000000*frames[j-1]/fr); 
“Stream PTS”代表I-帧的精确表示时间如下: if(j=0)   stream_PTS[j]=StreamPTS;  else   stream_PTS[j]=StreamPTS[j-1]+round(27000000*frames[H]/fr); 
“Buffer level”可以是解码器上的最大缓冲器电平,并且,缓冲器电平可以在视频数据的最后一个块被解码器接收的时刻、并且在给出的偏移为: peak_offset[j]=stream_offsetQ]+data_size[j]时达到。 
缓冲器可以包括一些自以前GOP的虚拟B-和P-帧,而最大缓冲器电平可计算为:bufferlevel[j]=size[j]+(frames[i]-1*P+(frames[i-1]-1)*P。考虑到当传输当前技巧模式信息包时,消耗来自以前GOP的虚拟B-和P-帧,实际的缓冲器电平可以小于上面的值。可高估缓冲器电平以预防溢出。在当前技巧模式信息包的DTS(即I-帧DTS),可以消耗来自以前GOP的数据,而缓冲器电平可以是:bufferlevel[j]=size[j]=size[j]+(frames[j]-1)*P。 
图2说明了解码缓冲器超时。在I-帧解码之前,在DTS[j]给出的时刻,所描述的实施方式可以控制缓冲器电平。这是由于缓冲器调整使得缓冲器电平峰值移动至这一位置。因为来自以前的技巧模式信息包的虚拟B-和P-帧的大小可以是比较小的,可使用代表解码时间的”StreanDTS”公式而没有风险,特别是因为I-帧大小是如上所述高估的。可选择的,为保证缓冲器不会溢出,可以使用其中“Stream offset”是当前流的公式。 
正如所讨论的,图5说明了技巧模式信息包如何被调整以便重新安排可用时隙间隔。如述,当控制变量bw_balance[j]是负的,这表示信息包不能在其最初的颠倒时隙中传输。如图5所示,发明的技术改变和延展信息包大小并消耗自以前信息包的可用带宽,同时缩短信息包。 
改变和延展信息包大小并消耗自以前信息包的可用带宽同时缩短信息包的C代码例子如下: int bw_adjust; for(int j=n-1;j>0;j--) {   bw_adjust=bw_balance[j];    if(bw_adjust<0)       {        packet_size=bw_adjust;      //Extends the Packet to perfectly fit the trickmode data        bw_balance[j]=0;            //No BW available,no BW needed        stream_offset[j]+=bw_adjust;//Shifts the packets to allow buffering before DTS is due        stream_PCR[j]+=27000000*(bw_adjust*8/bitrate);//adjust the packet PCR       packet_size[j-1]+=bw_adjust;//shorten the previous packet by the same amount      bw_balance[j-1]+=bw_adjust;//Consume the B W from the previous packet     } } 
此代码段可允许可用带宽在调整的窗口中被重新安排,并可以保证技巧模式信息包在其预计的解码时间之前被完全传输。 
此外,希望除重新安排带宽之外考虑缓冲器电平。同样,在一些实施方式中,第一技巧模式信息包bw_balance[j]可以是负的,因为其为序列中的第一信息包,没有以前的信息包自其分配带宽。如下所述,可使用P-帧插入和转移技术。此外,当控制技术计算每个技巧模式信息包参数时,可不必生成流。这可以通过使用调整技术以生成技巧模式流的流动引擎来完成。 
图6是表示在缓冲器电平上转移技巧模式信息包的效果的图形描述。虽然图6讨论了关于转移技巧模式信息包在缓冲器电平上的效果,应该注意到,在一些实施方式中,其它带宽控制技术和其它数据处理技术一样可要求缓冲器控制。 
如图6所示,在技巧模式信息包转移之前,顶部窗600反映了缓冲器电平,而按照带宽控制转移技巧模式信息包之后,底部窗601反映了缓冲器电平。如在顶部窗600中所示,直到DTS在点603(即到预计的解码时间)以后,信息包602才被完全接收。转移信息包可以在DTS生成最大缓冲器存储等级。此外,最大缓冲器电平可以和被转移的技巧模式信息包605中的数据量相等。在时刻DTS[j-1],于解码器缓冲器,其差异(data_size[j]-packet_size[j])准备完毕以便允许在其能被解码之前技巧模式信息包的完全缓冲。 
下面的代码仅是估计最大缓冲器电平的一个例子: int bw_adjust;for(int j=n-1;j>0;j--) {   bw_adjust=bw_balance[j];    if(bw_adjust<0)       {   packet_size=bw_adjust;      //Extends the Packet to perfectly fit the trickmode data   bw_balance[j]=0;            //No BW available,no BW needed   stream_offset[j]+=bw_adjust; //Shifts the packets to allow buffering before DTS is due   stream_PCR[j]+=27000000*(bw_adjust*8/bitrate);//adjust the packet PCR  packet_size[j-1]+=bw_adjust; //shorten the previous packet by the same amount   bw_balance[j-1]+=bw_adjust;   //comsume the BW from the previous packet   buffer_level[j-1]-=bw_adjust;//estimate buffer level at the previous packet  } } 
每次发送一个过大大小的帧(即大小超出上述颠倒的时隙)时,存储器电平可增加。当调整过大大小帧的长序列时,会发生缓冲器的溢出。一旦确定了比可用时隙大的数据量,应采取措施容纳缓冲器溢出。这可以通过许多技术来实现。下面的例子不意味着排除实施方式关注的其它技术。 
一种用于处理缓冲器溢出的技术可以包括P-帧插入。P-帧插入增加P-帧并依此扩大了以前GOP的大小,以便生成额外的带宽。插入额外的P-帧可以以许多方式完成。将讨论一种用于插入P-帧以生成额外带宽的技术。然而,公开的实施方式不限于这种方法。如下是一个例子。 
具有3.75Mbits/s视频流的技巧模式流可请求传输6帧的时间,所述视频流有大的技巧模式信息包。然而,如以前信息包的GOP大小所确定的,时隙可以是仅4个帧。如上讨论,信息包可以通过两个帧周期被转移和延展以容纳传输的额外周期。如讨论的,移动技巧信息包两帧可以使以前信息包的最高缓冲器电平增加约30kb。对于100kb的视频缓冲器大小和90kb的以前信息包大小,使用缓冲器的另一个30kb将导致缓冲器溢出。 
虚拟P-帧可以加入到一个实施方式中。例如,如果加入两个额外的P-帧,其中每个大约是每P-帧1kb,以前的GOP大小可以增加至6。缓冲器电平仅增加了2kb达到92kb,但仍在100kb限制范围内。通过对以前的GOP增加两个额外虚拟P-帧,当前的信息包大小可以延展以允许传输整个“过大”信息包。换言之,此技术将屏幕中的以前帧保持额外 的两个帧周期,允许过大帧被全部传输。此外,因为插入的每个额外P-帧可以将随后的技巧模式信息包扩展大约一个帧周期,因而可以获得额外带宽。在此例中,虚拟P-帧的每大约1kb生成大约15kb的带宽,这代表能够在一个帧周期内传输的数据量。 
同样,通过插入虚拟P-帧,可以降低总的I-帧速率,而调整窗口可扩展一个帧。下面显示了每次检测到缓冲器溢出时能够插入额外帧的代码段例子。 int bw_adjust; for(int j=window-1;j>0;j--) {   bw_adjust=bw_balance[j];    if(bw_adjust<0)       {         packet_size=bw_adjust;     //Extends the Packet to perfectly fit the trickmode data         bw_balance[j]=0;           //No BW available,no BW needed        stream_offset[j]+=bw_adjust;//Shifts the packets to allow buffering before DTS is due        stream_PCR[j]+=27000000*(bw_adjust*8/bitrate);//adjust the packet PCR        packet_size[j-1]+=bw_adjust;//shorten the previous packet by the same amount        bw_balance[j-1]+=bw_adjust; //comsume the BW from the previous packet       buffer_level[j-1]-=bw_adjust;//estimate buffer level at the previous packet     /*perform p-frame insertion until the buffer overflow is fixed*/     while(buffer_level[j-1]>video_buffer_level)      {      double increment         //Insert a P-frame in the packet where the overflow was detected         frames[j-1]++;           //Insert a p-frame in the pervious packet         data_size[j-1]+=P;      //Account for an extra p-frame         bw_balance[j-1]-=P;    //Take it from the bandwidth balance         buffer_level[j-1]+=P; //update the buffer level estimation       /*Use all the bandwidth created to revert the buffer overflow*/       increment=(1/frame_rate)*(bitrate/8);  //calculate the amount of bandwidth created       packet_size[j-1]+=increment             //restore the packet size(bw insertion is here!!)       bw_balance[j-1]+=increment              //restore the bandwidth(and here!)     buffer_level[j-1]-+increment           //restore the buffer level     /*shift the current and subsequent packet by one frame*/     for(int k=j;k<window-1;k++)        {        stream_offset[k]+=increment;//move packet back        stream_PCR[k]+=27000000*(increment*8/bitrate);//move packet back        stream_DTS[k]+=27000000/frame_rate;//account for an extra frame        stream_PTS[k]+=27000000/frame_rate;//account for an extra frame        }        /*end of the p-frame insertion algorithm*/   } } 
一些实施方式也可能涉及分析技巧信息包的颗粒性,所说技巧信息包例如可以为至少一个传输流信息包(如:通常188字节)。通过插入P-帧生成的带宽可由如下等式确定:increment=(b/8)*(1/fr); 
在上面的例子中,增量为15625个字节。因为使用误差传播技术最初确定了每个技巧信息包大小,可以考虑类似的方法来计算更精确的存储量。例如,这可确定为技巧模式GOP大小是q=4、视频缓冲器大小为110kb、技巧模式数据大小为25kb、90kb、40kb、70kb、80kb和具有信息包颗粒性1316字节(如在单个UDP信息包中的7个传输流信息包)的80kb。 
计算的时隙为62500字节=4*15625字节。因此,误差传播技术可生成下面的信息包大小序列61852、61852、63168、61852、61852、63168和61852。此技术也可生成信息包偏移0、61852、123164、186332、248184、310036和373204,它们有bw_balance值35532、-31584、21056、-10528、-21056、-19740和-21056。应用起始自上个信息包(索引6,基于0的索引)的缓冲器调整技术,其中缓冲器电平最初估计为与技巧模式数据大小一致,空的大小可计算为差(packet_size减去data_size),如下所示(注意:此时时间标记被忽略(PCR、DTS、PTS)): packet_size[6]-=bw_balance[6]=>packet_size[6]=61852+21056=82908 bw_balance[6]=0 stream_offset[6]+=-21056    =>stream_offset[6]=373204-21056=352148packet_size[5]+=-21056       =>packet_size[5]=63168-21056=42112 bw_balance[5]+=-21056         =>bw_balance[5]=-19740-21056=-40796 buffer_level[5]-=-21056      =>buffer_level[5]=81920+21056=102976 在第二阶段,可发生以下面的内容: packet_size[5]-=bw_balance[5]=>packet_size[5]=42112+40796=82908 bw_balance[5]=0 stream_offset[5]+=-40796    =>stream_offset[5]=310036-40796=269240 packet_size[4]+=-40796     =>packet_size[4]=61852-40796=20876 bw_balance[4]+=-40796       =>bw_balance[4]=-21056-40796=-61852 bufferlevel[4]-=-40796     =>buffer_level[4]=81920+40796=122716(buffer overflow) 在这一点,额外的虚拟P-帧可以插入技巧模式信息包4,这样其GOP大小改变至5。假定P-帧大小为1316字节,提供下面的序列: (P-帧插入) frames[4]=5; data_size[4]+=1316=>data_size[4]=81920+1316=83236 bw_balance[4]-=1316=>bw_balance[4]=-61852-1316=-63168 buffer_level[4]+=1316=>buffer_level[4]=122716+1316=124032(看上去有些差,但等待) 由于插入P-帧,可提供下述的额外的带宽: (P-帧插入) frames[4]=5; data_size[4]+=1316=>data_size[4]=81920+1316=83236 bw_balance[4]-=1316=>bw_balance[4]=-61852-1316=-63168 buffer_level[4]+=1316=>buffer_level[4]=122716+1316=124032(看上去有些差,但等待) (归功于插入的P-帧增加带宽) increment=(1/30)*(3750000/8)=15625 packet_size[4]+=15625=>packet_size[4]=20876+15625=36501 bw_balance[4]=15625=>bw_balance[4]=-63618+15625=-47543 buffer_level[4]-=1316=>buffer_level[4]=124032-15625=108407(溢出是固定的!) (传播插入帧至随后的信息包)stream_offset[5]+=15625       =>stream_offset[5]=269240+15625=284865 stream_offset[6]+=15625       =>stream_offset[6]=352148+15625=367773 
在关注颗粒性的实施方式中,使用上文关于packet_size所描述的同样的误差传播技术,可基于新的GOP大小重新计算信息包大小。 
图7说明了如何使用缓冲器最优化产生技巧模式流。如图7所示,要求调整的信息包显示阴影,而成功调整的信息包显示为点。上窗口700显示技巧模式信息包,它们在使用缓冲器最优化技术之前首先计算。第二个窗口701显示了上个过大帧是如何移动和扩展的,使以前的帧消耗它的可用带宽。第二窗口701也显示了移动同样信息包如何影响缓冲器电平。第三窗口702说明了成功调整的信息包。图8提供使用这些技术生成的技巧模式流的举例输出。 
应该认识到,基于I-帧的技术可工作于“低延时”模式,因此缓冲器电平在解码器保持低状态。为了使电影恢复正常播放,解码器可以缓冲0.5秒至1.0秒数据。缓冲器电平的不同可导致缓冲器下溢,可使屏幕滚动或闪烁甚至变成一会儿黑屏。 
基于文件的技巧模式可以在技巧模式文件和常规文件之间转换。此技术要求缓冲器电平在传输点匹配,因此当生成技巧模式文件时可以控制缓冲器电平。可以添加额外的逻辑以在传输点调整缓冲器电平。 
在一个实施方式中,当继续正常播放时,缓冲器管理技术可操作以通过为更精确转换而增加缓冲器电平来修改最后的技巧模式帧(通常2-4个帧)。这种叫做“拼接”的技术可以降低最后帧的速率,产生可用于重复缓冲的过度(in excess)帧,并允许视频缓冲器返回正常电平。可以按不打断运动感觉的方式来实现这种技术,因而这种转换是相对连续的。 
为了在播放序列之后开始播放技巧模式,可以存储在视频缓冲器中的播放数据由解码器使用。当技巧模式流开始被解码时发生此过程,在视频缓冲器中出现的数据是由技巧模式流动引擎产生的数据。可发送第一技巧模式信息包,使其DTS设置为显示的最后帧的DTS加上一帧的间隔。同样,PTS可设置为显示的最后帧的PTS加上一帧。如果最后帧的“重复第一字段(repeat first field)”标志设置为1,PTS和DTS增加帧周期的一半。 
可以通过将第一技巧模式信息包大小设置为从当前位置(PCR)传输至播放缓冲器为空的时刻的数据量来实现解缓冲技术,并且,期望使用下列等式得到第一技巧模式帧(如:上面描述的DTS): frame_size[0]=((streamDTS-StreamPCR)/27000000.0)*(bI/8)。[0122]应该注意,一些视频流(如MPEG2)可使用一些特殊标志“repeat first field”和“top field first”作为实现3:2下拉的方法。为了在这些流中保持字段连贯性,可在转换序列中使用确定的技术。 
例如,可使用一项技术,其中显示的最后一帧将其“top fieldfirst”设为0(底部第一个)并将其“repeat first field”设为0。这表示最后字段完成显示顶部字段。如果最后帧将其“top field first”设为1(顶部第一个)并将其“repeat first field”设为1,同样可表示显示的最后字段是顶部字段。在每一情况下,下一期望字段可以是底部字段。因为这些技术假定“top field first”,可以插入字段调整帧。 
可以通过在所说的第一技巧模式帧中设置“top field first”标志为0并设置“repeat first field”标志为1来实现这些技术,所说的第一技巧模式帧可为虚拟B-帧。序列(底部、顶部、底部)不仅保持来自播放序列的字段序列而且也可允许随后的帧从顶部字段开始。 
此字段调整技术将GOP大小扩展了半个帧(即一个字段)。为了保证从磁盘读出的所有I-帧有合适的字段排序,通过将I-帧从磁盘读至存储器之后发生的重新标记技术,在I-帧中“top field first”,标志可设为1而“repeat first field”标志可设为0。 
在一些实施方式中,当播放序列以比较低的缓冲器电平操作 时,可能没有足够的时间传输第一技巧模式信息包。当使用了来自播放序列的最后帧时,第一技巧模式信息包可能仍在传输过程中。一种解决办法是将P-帧序列附加至技巧模式信息包的起始,与P-帧插入技术类似。这些P-帧可以不是技巧模式GOP的一部分,但扩展了以前的GOP(即播放序列)并使解码器重复上个帧几个帧间隔时间,以便技巧模式帧完全传输。 
此外,通过延伸技巧模式序列的最后GOP以生成额外的可用带宽,可以实现为从技巧模式返回到正常播放的转变所使用的方法。为重新缓冲来自新播放序列的视频数据,例如在高延时模式中操作,可使用获得的带宽。 
重新缓冲技术试图保持技巧模式信息包足够长时间,使得当解码器忙于播放虚拟P-帧时,缓冲器能够存储新的播放序列。通过增加末尾的技巧模式信息包的GOP大小,重新缓冲技术可逐步地产生带宽。如果所选的GOP大小是4,这意味着末尾的技巧模式信息包将具有GOP大小5、7、10等等,带来放慢的视觉效果而不是完全停止。 
直到所有可用带宽匹配或经过必需的带宽以允许播放序列的完全重新缓冲,才可以插入末尾的技巧模式信息包。I-帧选择机制也可为末尾的技巧模式信息包改变。为了避免自需要的播放偏移离开得太远,这是必要的。可以设置索引增量最小为1.0,以便每个变换的技巧模式信息包使流只移动到距离要求位置大约1/Ir。典型的结果显示,必需有大约3至5个转换信息包才能进行重新缓冲,这表示在Ir=2I-帧/秒的流中仅偏离请求的播放位置1.5秒到2.5秒。 
另一个方法可以是利用索引增量-1.0计算自精确播放偏移开始但倒退的技巧模式信息包序列的可用带宽。当净带宽匹配或通过必需带宽时,最后的信息包将是在转换序列中使用的第一个信息包。此技术可保证转换序列在请求的播放偏移处结束。 
在相同技术中,如果技巧模式以负速度播放(即REW),可从向前的方向(增量+1.0)选择I-帧直至有足够的可用带宽。转换信息包序列可以从当前位置取出,倒退至实际播放序列开始的位置。一旦确定了转换技巧模式信息包序列并将其装入缓冲器最优化技术,可在调整技术中 插入“虚拟技巧模式信息包”,其数据大小设为0,技巧模式信息大小设为0,但bw_balance设为缓冲所需数据量。 
使用缓冲器最优化技术可以使技巧模式信息包的可用带宽被使用并移动转换信息包,为新的播放序列生成空间。此技术可以引起如图8底部图形所示的缓冲器变换,其中可观察到4个传输信息包,它们的GOP大小为6、7、8和9。使用此方法播放自技巧模式的转换可以带来“放慢”的印象,没有帧序列的打断。 
快进和倒退可使用上述技术。在此例中,例如当用户释放FF按钮时,视频点播(VOD)服务器可以接收来自机顶盒的反馈。服务器的缓冲器管理算法在转换回正常播放过程中建立了一个延时。为了填充缓冲器,进来的帧的数目可以超过正在播放的帧的数目,因此在缓冲器从用户接收信号后,可逐步增加帧的发送以填充缓冲器。在这一点上,可切换至正常流。 
通过生成少量额外的B-和P-帧,这些技术可降低末尾的帧的速度,所述额外的B-和P-帧是比较小的、容易生成、且可用比显示它们少的时间传输,这样可使它们充满解码器的缓冲器。“放慢”可以代表每秒发送更少的帧,并由此对实际帧速率没有影响,帧速率通常为常数30fps。通过增加和每个I-帧(比较小)一起发送的B-和P-帧的数目,平均比特率可以通过技巧模式技术来降低。然后可以使用超出的带宽来恢复缓冲器至正常电平。 
在一些例子中,暂停和恢复可以不使用上述技术,因为这些模式是使用正常传输流的一种转换。另一方面,跳格可以要求缓冲器调整,因为缓冲器电平在转换点可以是不同的。同样,通过允许解缓冲或通过插入虚拟B-帧和P-帧以允许解缓冲,应用于技巧模式的相同的技术可应用于跳格。因为缓冲控制与诸如PCR、DTS和PTS的流参数的适当调整相关,速度转换和跳格一样需要通过保证这些控制变量匹配来实现。 
当在转换点后的缓冲器电平比以前的缓冲器电平低时,可以插入一系列空信息包以允许缓冲器电平达到适当的电平。此技术保持了在转换后原始流的差异(DTS减去PCR)。在以前序列的最后一帧被解码之 后大约一帧,新序列的解码开始。为了避免帧序列中的中断,在以前序列的最后一帧显示之后一帧,转换后的第一信息包的PTS可出现。 
跳格技术也可考虑一些GOP是开放的。换言之,在新播放序列中的I-帧之前显示的第一个B-帧可以使用关于来自未传输的以前的GOP帧的前进基准。此外,跳格技术可以纠正字段排序以避免序列中的两个顶部字段或两个底部字段的出现。例如,错误的字段排序可使机顶盒中的屏幕出现令人讨厌地滚动。 
跳格技术可以包括一种拼接方法,这种方法保证完全发送以前的GOP,避免不完整的图像或序列在解码器接收缓冲器出现。同样,拼接方法可确定新序列的DTS减去PCR小于当前流的DTS减去PCR(即来自旧序列),因此,缓冲器电平必须减少。此外,拼接方法可以检索I-帧并附加虚拟B-帧序列。虚拟B-帧的数目可匹配在I-帧之前于原始序列中发现的B-帧的数目。这就避免了关于开放GOP描述的问题。 
通过在第一虚拟B-帧中适当设置“top field first”和“repeat firstfield”标志,拼接技术可以调整字段排序。如果字段调整是必要的,DTS和PTS可相应调整。在此例中,新的播放序列可以包括一个I-帧,随后虚拟B-帧可被重新标记以匹配新的播放序列(PBBPBBP等等)的余下部分,避免不连续。拼接方法使用下面的等式来计算为调整缓冲器电平而插入的空信息包的数量: nulls=(br/8)*((StreamDTS-StreamPCR)-(DTSnew-PCRnew))/27000000.0 
使用下面的等式,拼接技术可以计算重新标记的偏移,所述偏移必须加至新序列以保持流的连续性: PCR_restamp=(StreamPCR+(nulls*8/br)*27000000.0)-PCRnew
通过增加PCR_restamp量至PCR并增加量(PCR_restamp/300)至DTS和PTS,转换点后的流动数据可以被重新标记,所述DTS和PTS是在与节目相关的基础流中发现的,包括音频流。 
图9说明了拼接技术如何操作。当在新序列的缓冲器电平比以前序列的缓冲器电平高时使用另一技术。例如,可使用在P-帧插入技术中和在从技巧模式到播放的转换中的类似过程来“冻结”最后一个图像,,以便允许缓冲新序列。 
重新缓冲技术可包括在短的空信息包序列之后插入许多P-帧。如果新序列正好在以前序列的末尾之后,在流PCR开始传输,则第一帧可以在由StreamPCR+(DTSa-w-PCRnew)给定的时刻解码。希望新序列的第一帧在由StreamDTS给定的时刻解码,这是自以前序列开始的最后解码时间之后的一帧。用等式表示,即,如果StreamPCR+(DTSnew-PCRnew)>StreamDTS    或(DTSnew-PCRnew)>(StreamDTS-StreamPCR),则存在一个间隔,其中解码器停止解码(即缓冲器下溢)。 
应该注意,预知没有活动P-帧和B-帧或虚拟帧的字段可以以图像结构作为“帧”进行编码,宏块以预知类型作为“字段”进行编码。可实现此操作,其中P-帧宏块以“top field”编码,前向参考具有运动向量(0,0)的“top field”,并以“bottom field”编码,前向参考具有运动向量(0,0)的“top field”。B-帧宏块以“top field”编码,后向参考具有运动向量(0,0)的“top field”,并以“bottom field”编码,后向参考具有运动向量(0,0)的“top field”。 
图10说明了用于传送数据流的系统。如图10所示,机顶盒1002与数据服务器1003连接并与带宽调整模块1004连接。当其分配的时隙对于处理数据流不是足够大,带宽调整模块1004能够移动数据流的一部分(如技巧模式信息包)至另一时隙。举例的技巧模式信息包可以包括一系列I-帧,它们可以每秒大约10帧的速率传送。同样带宽调整模块1004可将虚拟数据(如:B-帧和P-帧)插入技巧模式信息包。 
系统1000也可包括与机顶盒1002联系的压缩/解压缩编码器 1005。压缩/解压缩编码器1005可以根据MPEG标准操作。系统1000也可包括用于显示来自机顶盒1002图像的显示器1006和一个用户接口1007,所述接口能够连接机顶盒以开始技巧模式播放(如快进、倒退、播放、暂停和停止)。显示器1006可以是常规的电视机。用户接口1007可利用无线技术与机顶盒连接。用户接口1007可以是常规的远程控制,能够使用如红外线(IR)、射频(RF)的无线连接或任何其它合适类型的连接来传送。公开的方法、设备和系统可以与计算机或便携式或手提式的能够显示视频数据的设备一道使用,如个人数字助理(PDA),笔记本电脑和移动电话。 
图11是传送数据流方法的流程图。在1101,确定第一数据流的第一时隙并在1102确定第二数据流的第二时隙。在1103,确定第二数据流是否比第二时隙大。如果第二数据流不比第二时隙大,在1104,在第二时隙传输第二数据流。另一方面,如果第二数据流比第二时隙大,在1105,第二数据流的一部分移动至第一时隙。在1106,传输第二数据流。 
此外,描述的方法可以进一步控制数据存储量随移动部分的变化并监控第二数据流的大小和第二时隙的大小。这些方法可以按照MPEG标准压缩和解压缩数据流,并进行操作以重新分配在第一时隙到第二时隙的未用带宽。所描述的方法可以监控数据流以确定用于传送数据流的最大速率。 
图12是用于控制数据存储或缓冲器电平的方法流程图。在1201,数据帧(如B-或P-虚拟帧)加至包含I-帧的数据流。在1202,改变数据流的传输速率。在1203,接收从第一模式切换到第二模式的命令,而在1204进行从第一模式到第二模式的转换。第一和第二模式可以是技巧播放模式和/或正常播放模式。 
本公开的实际范围不限于在此公开的说明性的实施方式。例如,用于产生高效技巧模式重放的不同技术的前述公开可单独地使用或结合在一起使用。此外,应该注意,公开的实施方式以广泛的图像大小(如HDTV)和帧速率操作。应该注意,预期技术允许在不同播放速率和正常播放速率之间平滑转换,不产生视频的人为干扰、黑屏、下溢、通常与存 储器溢出相关的宏块或一般在没有缓冲器管理情况下执行的转换中出现的不连续。同样,作为公开技术的一部分,可使用不同的B-帧和P-帧编码。例如,在一些实施方式中,如所讨论的,不使用预知的B-帧和P-帧作为“非运动”的帧,而是在本发明范围内使用不同的编码。对于某些类型的格式,如交错的图像,可以提供这样的编码。 
另外,本领域技术人员应理解,在此公开的发明的许多方面可在计算机系统中应用,作为软件或硬件解决方案,它们不用作流动媒体或视频点播目的。类似地,实施方式不限于使用VOD概念的系统,或使用特殊类型计算机、处理器、开关、存储设备、存储器、算法等的系统。如果考虑到数字处理过程、连网和存储功能的快速下降的成本,可以很容易地例如将对于特定功能的处理过程和存储从在此所述的一个功能单元转换成另一个功能单元,不需要改变系统的发明的操作。在许多情况下,在此描述的有关实施方案的地方(即功能元件)仅是设计者的偏好而不是硬性要求。为此,除非明显地如此限制,不期望保护的范围限定于上述的特定实施方式。 

Claims (22)

1.一种传送数据流的方法,包括:
确定以第一模式传输第一数据流的第一时隙;
确定以第一模式传输第二数据流的第二时隙;
确定与所述第二数据流的技巧模式信息包大于第二时隙;
移动所述第二数据流的技巧模式信息包至所述第一时隙;
改变所述第一数据流和所述第二数据流的传输的速率;
从所述第一模式切换到第二模式;所述第一模式是正常播放模式,所述第二模式是技巧模式播放模式。
2.根据权利要求1所述的方法,进一步包括控制数据存储的量随移动部分的变化并监控第二数据流的大小和第二时隙的大小。
3.根据权利要求1所述的方法,进一步包括监控所述第二数据流的大小和所述第二时隙的大小。
4.根据权利要求1所述的方法,进一步包括按照运动图像专家组标准压缩和解压缩所述数据流。
5.根据权利要求1所述的方法,其中所述第一数据流是正常流,所述第二数据流是技巧模式流。
6.根据权利要求1所述的方法,进一步包括将在所述第一时隙内的未用带宽重新分配至所述第二时隙。
7.根据权利要求1所述的方法,其中通过包含在计算机可读介质中的计算机可执行指令执行所述方法。
8.根据权利要求1所述的方法,其中所述第一时隙和所述第二时隙是固定长度的时隙。
9.根据权利要求1所述的方法,进一步包括监控所述数据流以确定传送所述数据流的最大速率。
10.用于传送数据流的一种系统,包括:
一个数据服务器,其与机顶盒通信;
一个带宽调整模块,其与所述机顶盒和所述数据服务器通信,其中,所述带宽调整模块设置为:
确定以第一模式从所述数据服务器发送到所述机顶盒的第一数据流的第一时隙;
确定以所述第一模式从所述数据服务器发送到所述机顶盒的第二数据流的第二时隙;
确定与所述第二数据流的技巧模式信息包大于第二时隙;
移动所述第二数据流的技巧模式信息包至所述第一时隙;
改变所述第一数据流和所述第二数据流的传输的速率;
从第一模式切换到第二模式;所述第一模式是正常播放模式,所述第二模式是技巧模式播放模式。
11.根据权利要求10所述的系统,其中所述第一数据流是正常流,第二数据流是技巧模式流。
12.根据权利要求10所述的系统,其中所述第二数据流的技巧模式信息包包括多个I-帧中的一个。
13.根据权利要求12所述的系统,其中所述I-帧以每秒10帧的速率传送。
14.根据权利要求10所述的系统,其中所述带宽调整模块在所述技巧模式信息包中插入虚拟数据。
15.根据权利要求14所述的系统,其中所述虚拟数据包括B-帧和P-帧。
16.根据权利要求10所述的系统,进一步包括一个压缩/解压缩解码器。
17.根据权利要求16所述的系统,其中所述压缩/解压缩解码器按照运动图像专家组标准操作。
18.根据权利要求10所述的系统,进一步包括一个用户接口,所述用户接口能够与所述机顶盒通信来开始技巧模式播放。
19.根据权利要求18所述的系统,其中所述用户接口是无线的。
20.根据权利要求18所述的系统,其中所述技巧模式播放包括下述的至少一个:快进、倒退、播放、暂停和停止。
21.根据权利要求10所述的系统,其中所述数据服务器提供视频流。
22.根据权利要求10所述的系统,进一步包括与所述机顶盒通信的显示设备。
CN2005800235576A 2004-07-23 2005-07-22 传送数据流的方法和系统 Expired - Fee Related CN101010959B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US59050404P 2004-07-23 2004-07-23
US60/590,504 2004-07-23
PCT/US2005/026011 WO2006012496A2 (en) 2004-07-23 2005-07-22 Trickmodes and speed transitions

Publications (2)

Publication Number Publication Date
CN101010959A CN101010959A (zh) 2007-08-01
CN101010959B true CN101010959B (zh) 2012-01-25

Family

ID=35057113

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800235576A Expired - Fee Related CN101010959B (zh) 2004-07-23 2005-07-22 传送数据流的方法和系统

Country Status (6)

Country Link
US (1) US20060146780A1 (zh)
EP (1) EP1772016A2 (zh)
JP (2) JP4729570B2 (zh)
KR (1) KR100868820B1 (zh)
CN (1) CN101010959B (zh)
WO (1) WO2006012496A2 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US9456243B1 (en) 2003-06-06 2016-09-27 Arris Enterprises, Inc. Methods and apparatus for processing time-based content
JP4409401B2 (ja) * 2004-10-08 2010-02-03 株式会社日立製作所 パケット転送装置及びストレージシステム
US20060098739A1 (en) * 2004-11-09 2006-05-11 Lsi Logic Corporation Video frame encoder driven by repeat decisions
US8145778B2 (en) * 2006-07-28 2012-03-27 Cisco Technology, Inc. Method and system for transitioning streamed digital video content between stream servers in a digital video network
JP4827669B2 (ja) * 2006-09-19 2011-11-30 株式会社ソニー・コンピュータエンタテインメント 動画再生方法および装置
KR20080035891A (ko) * 2006-10-20 2008-04-24 포스데이타 주식회사 움직임의 스마트 서치를 지원하는 영상 재생 장치 및 방법
US8009687B2 (en) * 2007-03-28 2011-08-30 Ixia Measurement of network performance in transporting packet streams
US8249141B1 (en) * 2007-07-13 2012-08-21 Sprint Spectrum L.P. Method and system for managing bandwidth based on intraframes
US8301793B2 (en) 2007-11-16 2012-10-30 Divx, Llc Chunk header incorporating binary flags and correlated variable-length fields
TW200923780A (en) * 2007-11-26 2009-06-01 Realtek Semiconductor Corp System and method for remote live pause
US8966103B2 (en) * 2007-12-21 2015-02-24 General Instrument Corporation Methods and system for processing time-based content
US8238341B2 (en) * 2008-04-25 2012-08-07 Chi Mei Communication Systems, Inc. Apparatus and method for processing voice over internet protocol packets
JP5322518B2 (ja) * 2008-07-08 2013-10-23 キヤノン株式会社 通信方法
WO2010051545A1 (en) * 2008-10-31 2010-05-06 Divx, Inc. System and method for playing content on certified devices
US9060187B2 (en) * 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
US8463108B2 (en) 2009-01-06 2013-06-11 Microsoft Corporation Client-side ad insertion during trick mode playback
JP5257319B2 (ja) * 2009-10-09 2013-08-07 株式会社Jvcケンウッド 画像符号化装置及び画像符号化方法
KR101613241B1 (ko) * 2009-10-16 2016-04-29 삼성전자 주식회사 디스플레이장치 및 영상재생방법
US20110268427A1 (en) * 2010-04-30 2011-11-03 Brelay Herve Methods and apparatuses for a projected pvr experience
US8543724B2 (en) 2010-04-30 2013-09-24 Digital Keystone, Inc. Methods and apparatuses for a projected PVR experience
US20110271001A1 (en) * 2010-04-30 2011-11-03 Herve Brelay Methods & apparatuses for a projected pvr experience
US20120030723A1 (en) * 2010-07-27 2012-02-02 Motorola, Inc. Method and apparatus for streaming video
CN102118270B (zh) * 2011-03-04 2014-04-30 华为技术有限公司 一种度量用户体验质量QoE的方法及装置
EP2498494A1 (en) * 2011-03-11 2012-09-12 Thomson Licensing Decoder and method at the decoder for synchronizing the rendering of contents received through different networks
EP2536143B1 (en) * 2011-06-16 2015-01-14 Axis AB Method and a digital video encoder system for encoding digital video data
US20140344410A1 (en) * 2013-05-14 2014-11-20 Morega Systems Inc. Fixed-length segmentation for segmented video streaming to improve playback responsiveness
WO2015088265A1 (en) * 2013-12-13 2015-06-18 Samsung Electronics Co., Ltd. Storage medium, reproducing apparatus and method for recording and playing image data
US10804958B2 (en) 2015-02-24 2020-10-13 Comcast Cable Communications, Llc Multi-bitrate video with dynamic blocks
US10298475B2 (en) * 2015-07-24 2019-05-21 Nvidia Corporation System and method for jitter-aware bandwidth estimation
US10033709B1 (en) * 2017-11-20 2018-07-24 Microsoft Technology Licensing, Llc Method and apparatus for improving privacy of communications through channels having excess capacity
US20210096904A1 (en) * 2019-09-28 2021-04-01 Tencent America LLC Method and apparatus for a step-enabled workflow

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731783A (en) * 1985-05-20 1988-03-15 Alcatel Espace Method and system for time division multiple access satellite telecommunications
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
CN1156366A (zh) * 1995-12-21 1997-08-06 汤姆森多媒体公司 使具有包时隙优先权的信息包传输系统中性能优化的方法
US6535557B1 (en) * 1998-12-07 2003-03-18 The University Of Tokyo Method and apparatus for coding moving picture image
CN1484898A (zh) * 2000-11-17 2004-03-24 使用可变长度数据包的单点对多点无源光网络

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800431A (en) * 1984-03-19 1989-01-24 Schlumberger Systems And Services, Inc. Video stream processing frame buffer controller
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
US5367636A (en) * 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5857109A (en) * 1992-11-05 1999-01-05 Giga Operations Corporation Programmable logic device for real time video processing
US5768598A (en) * 1993-09-13 1998-06-16 Intel Corporation Method and apparatus for sharing hardward resources in a computer system
EP0790739B1 (en) * 1993-09-16 2001-03-14 Kabushiki Kaisha Toshiba Digital video signal
US5515379A (en) * 1993-10-18 1996-05-07 Motorola, Inc. Time slot allocation method
US5638516A (en) * 1994-08-01 1997-06-10 Ncube Corporation Parallel processor that routes messages around blocked or faulty nodes by selecting an output port to a subsequent node from a port vector and transmitting a route ready signal back to a previous node
US5848192A (en) * 1994-08-24 1998-12-08 Unisys Corporation Method and apparatus for digital data compression
KR100197847B1 (ko) * 1994-11-11 1999-06-15 니시무로 타이죠 패킷데이타의 기록장치 및 재생장치
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5793927A (en) * 1995-06-07 1998-08-11 Hitachi America, Ltd. Methods for monitoring and modifying a trick play data stream to insure MPEG compliance
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US6112226A (en) * 1995-07-14 2000-08-29 Oracle Corporation Method and apparatus for concurrently encoding and tagging digital information for allowing non-sequential access during playback
US6138147A (en) * 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US5751951A (en) * 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
US5815516A (en) * 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
US6088360A (en) * 1996-05-31 2000-07-11 Broadband Networks Corporation Dynamic rate control technique for video multiplexer
US5781227A (en) * 1996-10-25 1998-07-14 Diva Systems Corporation Method and apparatus for masking the effects of latency in an interactive information distribution system
US6208335B1 (en) * 1997-01-13 2001-03-27 Diva Systems Corporation Method and apparatus for providing a menu structure for an interactive information distribution system
US6166730A (en) * 1997-12-03 2000-12-26 Diva Systems Corporation System for interactively distributing information services
US6253375B1 (en) * 1997-01-13 2001-06-26 Diva Systems Corporation System for interactively distributing information services
WO1998034224A2 (en) * 1997-02-03 1998-08-06 Koninklijke Philips Electronics N.V. Direction identifier for recording of trick play signals on a record carrier
US5819049A (en) * 1997-02-28 1998-10-06 Rietmann; Sandra D. Multi-media recording system and method
US6101255A (en) * 1997-04-30 2000-08-08 Motorola, Inc. Programmable cryptographic processing system and method
US6108695A (en) * 1997-06-24 2000-08-22 Sun Microsystems, Inc. Method and apparatus for providing analog output and managing channels on a multiple channel digital media server
US6023731A (en) * 1997-07-30 2000-02-08 Sun Microsystems, Inc. Method and apparatus for communicating program selections on a multiple channel digital media server having analog output
US6222838B1 (en) * 1997-11-26 2001-04-24 Qwest Communications International Inc. Method and system for delivering audio and data files
US6697846B1 (en) * 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6246683B1 (en) * 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6498897B1 (en) * 1998-05-27 2002-12-24 Kasenna, Inc. Media server system and method having improved asset types for playback of digital media
US6314573B1 (en) * 1998-05-29 2001-11-06 Diva Systems Corporation Method and apparatus for providing subscription-on-demand services for an interactive information distribution system
US6314572B1 (en) * 1998-05-29 2001-11-06 Diva Systems Corporation Method and apparatus for providing subscription-on-demand services, dependent services and contingent services for an interactive information distribution system
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6157051A (en) * 1998-07-10 2000-12-05 Hilevel Technology, Inc. Multiple function array based application specific integrated circuit
US7035278B2 (en) * 1998-07-31 2006-04-25 Sedna Patent Services, Llc Method and apparatus for forming and utilizing a slotted MPEG transport stream
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6618363B1 (en) * 1998-10-09 2003-09-09 Microsoft Corporation Method for adapting video packet generation and transmission rates to available resources in a communications network
KR100618961B1 (ko) * 1998-12-16 2006-09-01 삼성전자주식회사 패킷 데이터의 고속 탐색을 위한 정보 생성 방법과 이 정보를 저장하는 기록 매체, 이를 이용하는 기록 및/또는 재생 장치
US6785338B1 (en) * 1999-01-19 2004-08-31 Sarnoff Corporation Constraining video production based on compression-related information
US6240553B1 (en) * 1999-03-31 2001-05-29 Diva Systems Corporation Method for providing scalable in-band and out-of-band access within a video-on-demand environment
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6820144B2 (en) * 1999-04-06 2004-11-16 Microsoft Corporation Data format for a streaming information appliance
US6502194B1 (en) * 1999-04-16 2002-12-31 Synetix Technologies System for playback of network audio material on demand
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
IL130796A (en) * 1999-07-05 2003-07-06 Brightcom Technologies Ltd Packet processor
US6496692B1 (en) * 1999-12-06 2002-12-17 Michael E. Shanahan Methods and apparatuses for programming user-defined information into electronic devices
US7327761B2 (en) * 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US6757291B1 (en) * 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
WO2001065774A1 (en) * 2000-03-01 2001-09-07 Integrated Telecom Express, Inc. Scaleable architecture for multiple-port, system-on-chip adsl communications systems
US7200670B1 (en) * 2000-06-30 2007-04-03 Lucent Technologies Inc. MPEG flow identification for IP networks
GB2366709A (en) * 2000-06-30 2002-03-13 Graeme Roy Smith Modular software definable pre-amplifier
EP1340376A1 (en) * 2000-11-10 2003-09-03 Prediwave Corp. Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices
US6940873B2 (en) * 2000-12-27 2005-09-06 Keen Personal Technologies, Inc. Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
US20030223735A1 (en) * 2001-02-28 2003-12-04 Boyle William B. System and a method for receiving and storing a transport stream for deferred presentation of a program to a user
WO2002085030A1 (en) * 2001-04-11 2002-10-24 Cyber Operations, Llc System and method for preconditioning analog video signals
US7042899B1 (en) * 2001-05-08 2006-05-09 Lsi Logic Corporation Application specific integrated circuit having a programmable logic core and a method of operation thereof
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US7174086B2 (en) * 2001-10-23 2007-02-06 Thomson Licensing Trick mode using dummy predictive pictures
US20030095783A1 (en) * 2001-11-21 2003-05-22 Broadbus Technologies, Inc. Methods and apparatus for generating multiple network streams from a large scale memory buffer
US6789123B2 (en) * 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
US7657917B2 (en) * 2002-05-23 2010-02-02 Microsoft Corporation Interactivity emulator for broadcast communication
US7596298B2 (en) * 2002-10-10 2009-09-29 Koninklijke Philips Electronics N.V. Synchronizing interactive applications during trick-play
US7260576B2 (en) * 2002-11-05 2007-08-21 Sun Microsystems, Inc. Implementing a distributed file system that can use direct connections from client to disk
US20030108030A1 (en) * 2003-01-21 2003-06-12 Henry Gao System, method, and data structure for multimedia communications
US7298741B2 (en) * 2003-02-27 2007-11-20 Sharp Laboratories Of America, Inc. Robust MPEG-2 multiplexing system and method using an adjustable time stamp
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7460531B2 (en) * 2003-10-27 2008-12-02 Intel Corporation Method, system, and program for constructing a packet

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731783A (en) * 1985-05-20 1988-03-15 Alcatel Espace Method and system for time division multiple access satellite telecommunications
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
CN1156366A (zh) * 1995-12-21 1997-08-06 汤姆森多媒体公司 使具有包时隙优先权的信息包传输系统中性能优化的方法
US6535557B1 (en) * 1998-12-07 2003-03-18 The University Of Tokyo Method and apparatus for coding moving picture image
CN1484898A (zh) * 2000-11-17 2004-03-24 使用可变长度数据包的单点对多点无源光网络

Also Published As

Publication number Publication date
KR100868820B1 (ko) 2008-11-14
KR20070064316A (ko) 2007-06-20
EP1772016A2 (en) 2007-04-11
CN101010959A (zh) 2007-08-01
JP2008507922A (ja) 2008-03-13
US20060146780A1 (en) 2006-07-06
WO2006012496A2 (en) 2006-02-02
JP2011050117A (ja) 2011-03-10
WO2006012496A3 (en) 2006-06-15
JP4729570B2 (ja) 2011-07-20

Similar Documents

Publication Publication Date Title
CN101010959B (zh) 传送数据流的方法和系统
US6658199B1 (en) Method for temporally smooth, minimal memory MPEG-2 trick play transport stream construction
US6034731A (en) MPEG frame processing method and apparatus
US8659607B2 (en) Efficient video decoding migration for multiple graphics processor systems
US7023924B1 (en) Method of pausing an MPEG coded video stream
US8837660B2 (en) Handling video transition errors in video on demand streams
JP4223567B2 (ja) 符号化ビデオシーケンスの切り替え方法及び装置
US20060023729A1 (en) Apparatus and method for adaptively controlling buffering amount according to content attribute in receiving audio-video data
WO2006066182A1 (en) Media player with high-resolution and low-resolution image frame buffers
JP3828053B2 (ja) 受信されたマルチメディアデータを保存するバッファの容量を可変できるマルチメディアデータ復元装置及び方法
US8904426B2 (en) Preconditioning ad content for digital program insertion
KR20060085071A (ko) 동기화 이더넷 시스템에서 지터없이 데이터를 전송하는 방법
EP1411522A3 (en) Determining a scene change point
KR20130109969A (ko) 단일 디코더로 채널 변경을 가능하게 하기 위한 수신기 및 수신기에서의 방법
JP2010171919A (ja) 映像表示装置
RU2526370C2 (ru) Устройство и способ для передачи множества информационных сигналов с разделенным по времени мультиплексированием
WO2001045402A1 (en) Image reproducing method and image processing method, and image reproducing device, image processing device, and television receiver capable of using the methods
JP2004221900A (ja) 画像情報復号装置及び画像情報復号方法
US20170318258A1 (en) Image processing device, image processing method, and program
JP2001128165A (ja) 映像信号切替え装置及びその映像信号切替え方式
JP4016215B2 (ja) ディジタル信号符号化方法および装置、並びにディジタル信号伝送方法および装置
US6943707B2 (en) System and method for intraframe timing in multiplexed channel
EP2015305A1 (en) A device and method for smooth reverse playback of media
Psannis et al. QoS for wireless interactive multimedia streaming
JP3543716B2 (ja) ストリーム生成方法及び装置

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

Granted publication date: 20120125

CF01 Termination of patent right due to non-payment of annual fee