CN101911698B - 用于接合编码多媒体数据流的方法 - Google Patents

用于接合编码多媒体数据流的方法 Download PDF

Info

Publication number
CN101911698B
CN101911698B CN200980101770.2A CN200980101770A CN101911698B CN 101911698 B CN101911698 B CN 101911698B CN 200980101770 A CN200980101770 A CN 200980101770A CN 101911698 B CN101911698 B CN 101911698B
Authority
CN
China
Prior art keywords
data stream
coding
decoder
encoded
buffer
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
CN200980101770.2A
Other languages
English (en)
Other versions
CN101911698A (zh
Inventor
K·N·马修斯
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.)
Nokia of America Corp
Original Assignee
Alcatel Lucent USA 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 Alcatel Lucent USA Inc filed Critical Alcatel Lucent USA Inc
Publication of CN101911698A publication Critical patent/CN101911698A/zh
Application granted granted Critical
Publication of CN101911698B publication Critical patent/CN101911698B/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/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/44016Processing 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 splicing one content stream with another content stream, e.g. for substituting a video clip
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/2625Content 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 for delaying content or additional data distribution, e.g. because of an extended sport event
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

本发明提供了一种接合在编码器与解码器之间流动的数据流的方法。该方法包括访问第一编码数据流。该第一编码数据流是由编码器基于关联于解码器的第一缓冲器大小来编码的。该方法还包括将第一编码数据流延迟一个偏移量,该偏移量是基于关联于解码器的第二缓冲器大小来确定的。第二缓冲器大小大于第一缓冲器大小。该方法还包括将一个或多个第二编码数据流接合到被延迟的第一编码数据流中。

Description

用于接合编码多媒体数据流的方法
技术领域
本发明一般地涉及通信系统,具体地涉及在通信系统中传输多媒体数据流。
背景技术
数字多媒体已经变成传统模拟视频和/或音频数据传输的可行的可选方案。例如,例如互联网协议电视(IPTV)的基于分组的技术可被用来提供数字多媒体体服务,例如电视、视频点播等。在传统的数字多媒体广播系统中,图像序列被转换成图像的数字表示。数字数据然后被编码并发送至接收的单元,例如电视或计算机,该单元包括用于在提供编码信息给用于解码及可能地显示图像的解码器之前,存储几个图像的接收信息的缓冲器。如果发送器尝试发送过多的数字数据给接收单元,则解码器缓冲器可能溢出,这导致数据丢失及可能的图片丢弃。相反,如果发送器未发送足够的数字数据给接收单元,则解码器缓冲器可能下溢(underflow)。下溢会造成解码器拖延以及一个或多个图像的重复。由于解码器缓冲器的溢出和下溢会使得用户体验降级,因此传统的数字多媒体系统为了影响比特率而改变每个图像的编码质量,从而将解码器缓冲器级别维持在选定范围内。
服务提供商可能想要将多个数据流接合在一起以广播附加的信息给用户。例如,服务提供商可能想要将编码广告信息接合成服务提供商在编码数据流中广播或组播给一个或多个用户的编码多媒体内容。一种接合技术是解码多媒体数据流并且广告数据流。解码的数据流然后可以被接合在一起并且被重新编码以发送给接收单元。这个方法的优点是接合数据流中的信息是由单个编码器以能将解码器缓冲器级别维持在选定范围内的选定比特率来编码的。缓冲器溢出和/或下溢因而可以通过选择合适的比特率来避免。然而,这个方法需要附加的硬件和/或软件来解码多个数据流。例如,接合器可能包括针对每个数据流的一个解码器、用于接合两个解码数据流的视频转换器、以及用于重新编码接合的数据流的编码器。
一种可选的方法是简单地在选定的接合点将编码数据流接合在一起。尽管这个方法相比将解码数据流接合在一起的技术而言需要较少的硬件和/或软件,然而简单地将编码数据流接合在一起会导致解码器缓冲器下溢和/或溢出。例如,编码数据流可能已经利用不同的解码缓冲器模型而分别被编码。解码缓冲器模型通常假设初始解码缓冲器级别,该初始解码缓冲器级别在多媒体流中从编码器被周期性地发送至解码器以使得解码器能够在开始解码流时适当地调整它们的解码缓冲器状态。然而,在实践中,接合点处的解码缓冲器级别与所假设的初始解码缓冲器级别的差异是随机的且不可预测的,因为预测从第一数据流的解码中得出的解码缓冲器级别通常是不可行的。
图1A和1B概念性地示出了针对将两个数据流接合在一起的实施例的随时间变化的解码缓冲器级别100。在所说明的实施例中,解码缓冲器级别向上增加并且时间从左到右增加。当解码缓冲器级别100下降到最小缓冲器阈值105以下时发生缓冲器下溢,而当解码缓冲器级别100升高到最大缓冲器阈值110以上时发生缓冲器溢出。第一和第二数据流之间的接合点由线条115指示。第一数据流的比特率是基于第一解码缓冲器模型和解码缓冲器的充满来确定的,所述充满是通过信息到达缓冲器并且随后被放出的相对速率来确定的。因此,解码缓冲器在接合点115之前不溢出或下溢。
在图1A中,当解码缓冲器级别100低于由用于编码第二数据流的第二模型所假设的初始解码缓冲器级别时,出现接合点115。用于编码第二数据流的比特率是基于第二模型和解码缓冲器的大小(或充满)来确定的。然而,由于所假设的初始解码缓冲器级别高于实际的初始解码缓冲器级别,因此用于编码第二数据流的编码器比特率过低,这导致解码缓冲器在时刻120、125、130的下溢。
在图1B中,当解码缓冲器级别100高于由用于编码第二数据流的第二模型所假设的初始解码缓冲器级别时,出现接合点115。用于编码第二数据流的编码器比特率因而过高,这是因为所假设的初始解码缓冲器级别高于实际的初始解码缓冲器级别。采用相对较高的编码器比特率导致过量的信息被发送,这造成解码缓冲器在时刻135、140、145的溢出。
图2概念性地示出了说明将两个数据流接合在一起的时序图200的第一实施例。在图2中,时间从左到右增加。在所说明的实施例中,时序图200示出了从分组205中的编码数字信息中构成然后被呈现给用户的未压缩帧210和编码数字信息的压缩帧205。箭头215指示了压缩帧分组205和利用分组205所构成的未压缩帧210之间的关联。为了清楚,只用号码205、210、215分别指示了一个分组、帧和箭头。第一编码数据流220(例如用来呈现音频和/或视频给用户的多媒体数据流)被提供并且可以与第二编码数据流225(例如服务提供商可能想要在音频和/或视频呈现期间显示给用户的多媒体广告内容)接合在一起。
在所说明的实施例中,接合的数据流230是通过将第一编码数据流220和第二编码数据流225级联来构成的。在通过第一编码数据流220的最后一个分组的结束所定义的接合点235进行级联。第二编码数据流225的编码并未考虑接合点235处的解码器缓冲器的状态。因此,分组240到达的过迟以至于不能用来构成帧245,如朝后的箭头250所指示的那样。这个条件是解码器缓冲器的下溢的另一个表示,即解码器缓冲器在分组240到达之前已放出所有内容,因此没有信息可用来被解码并且被用来构成帧245。帧245因而可能是前一个帧的复制或未完全构成的帧。
图3概念性地示出了说明将两个数据流接合在一起的时序图300的第二实施例。在图3中,时间从左到右增加。在所说明的实施例中,时序图300示出了从分组305中的编码数字信息中构成然后被呈现给用户的帧310和编码数字信息的分组305。箭头315指示了分组305和利用分组305所构成的帧310之间的关联。为了清楚,只用号码305、310、315分别指示了一个分组、帧和箭头。第一编码数据流320(例如用来呈现音频和/或视频给用户的多媒体数据流)被提供并且可以与第二编码数据流325(例如服务提供商可能想要在音频和/或视频呈现期间显示给用户的多媒体广告内容)接合在一起。
在所说明的实施例中,接合的数据流330是通过将第一编码数据流320和第二编码数据流325级联来构成的。在通过第一编码数据流320的最后一个分组的结束所定义的接合点335进行级联。第二编码数据流325的编码并未考虑接合点335处的解码器缓冲器的状态,并且解码缓冲器的充满大于预期。分组340到达的过早以至于不能立即(或在选定的延迟时期内)被用来构成帧345,如伸出的箭头350所指示的那样。这个条件是解码器缓冲器的溢出的另一个表示,即解码器缓冲器必须将包含于分组340中的信息存储相当长的时间。随后接收的分组因而在分组340中的信息能被读出和解码之前才可能填充解码器缓冲器。因此,解码器缓冲器中的信息可能丢失,因为最新收到的信息被拒绝或之前收到的信息被排出解码器缓冲器。
发明内容
本发明涉及解决一个或多个上述问题。下面介绍本发明的简单概要以提供对本发明一些方面的基本理解。这个概要不是穷举的。它并不旨在标识本发明的关键元素或限定本发明的范围。它唯一的目的是以简单的形式介绍一些概念作为后面的更详细描述的前导。
在本发明的一个实施例中,提供了一种用于组合在编码器和解码器之间流动的数据流的方法。该方法包括访问第一编码数据流。第一编码数据流是由编码器基于关联于解码器的第一缓冲器大小来编码的。该方法还包括将第一编码数据流延迟一偏移量,该偏移量是基于关联于解码器的第二缓冲器大小来确定的。第二缓冲器大小大于第一缓冲器大小。该方法还包括将一个或多个第二编码数据流接合成延迟的第一编码数据流。
在本发明的另一个实施例中,提供了一种用于组合在编码器和解码器之间流动的数据流的方法。该方法包括访问以第一传输速率发送的第一编码数据流并且访问以第二传输速率发送的至少一个第二编码数据流。该方法还包括基于第一编码数据流中的间隙的持续时间来增加第二传输速率并将第二编码数据流接合到第一编码数据流的这个间隙中。
附图说明
参考附图,通过参考下面的描述,可以理解本发明,其中相同的参考号码标识相同的元素,其中:
图1A和1B概念性地示出了将两个数据流接合在一起的实施例的随时间变化的解码缓冲器级别;
图2概念性地示出了说明接合两个数据流的时序图的第一实施例;
图3概念性地示出了说明接合两个数据流的时序图的第二实施例;
图4概念性地示出了根据本发明的多媒体通信系统的第一示例性实施例;
图5A、5B、5C和5D概念性地示出了根据本发明的指示定时调整的时序图,其可以用在将次级数据流接合到主数据流中时;
图6A、6B、56C和6D概念性地示出了根据本发明的指示延迟的解码器延迟图,其可以用在将次级数据流接合到主数据流中时;
图7概念性地示出了根据本发明的指示延迟的解码器延迟图,其可以用在将次级数据流接合到主数据流中时;和
图8概念性地示出了根据本发明的指示延迟的解码器延迟图,其可以用在将多个次级数据流接合到一个主数据流中时。
尽管可以对本发明实现各种不同的修改和可选形式,然而其特定实施例在附图中作为例子而被显示并且在这里详细描述。然而,应当理解,这里对特定实施例的描述并不旨在将本发明限于特定的公开形式,而是相反,其旨在覆盖落入由所附权利要求限定的本发明范围内的所有的修改、等价物和可选方案。
具体实施方式
下面描述本发明的说明性实施例。为了清楚,本说明书中并未描述实际实现的所有特征。当然,应当认识到,在开发任何这种实际实施例时,应当做出许多实现特定的判定来达到开发者的特定目标,例如与系统相关及商业相关的约束相容,所述特定目标对于每个实现都是不同的。此外,应当认识到,这种开发工作可能相当复杂且耗时,但却是已受益于本公开的本领域技术人员的例行任务。
现在将参考附图描述本发明。各种不同的结构、系统和设备在附图中只出于说明的目的而被示意性地显示,从而不以本领域技术人员已知的细节使得本发明变得晦涩。然而,附图用来描述和说明本发明的说明性实例。这里使用的词语和短语应当被理解和解释成具有与本领域技术人员对这些词语和短语的理解相一致的含义。这里对术语或短语的一致性使用并不意味着该术语或短语的特殊定义,即与本领域技术人员所理解的通常含义所不同的定义。至于具有特殊含义的术语或短语,即与本领域技术人员所理解的不同的含义,这种特殊定义将在本说明书中以直接明确地提供对该术语或短语的特殊定义的定义性方式明确阐明。
图4概念性地示出了多媒体通信系统400的第一示例性实施例。在所说明的实施例中,多媒体通信系统包括多媒体源设备405,其用于生成多媒体内容并将所生成的内容提供给多媒体通信系统400。多媒体源设备405可以是模拟的或数字的视频录像机(如图4所示),或任何其他能够生成多媒体内容的设备,例如用来捕获视频和/或音频输入或创建视频和/或音频内容的硬件、固件和/或软件,例如设备405可以是用于创建动画和有关音频的设备。在所说明的实施例中,由多媒体源设备405所生成的多媒体内容可以称作主内容并且可以包括电影、电视节目、视频点播和/或可由用户观看的其他内容。由多媒体源设备405生成的多媒体内容的数字表示可以被提供给编码器410,该编码器可以编码该数字表示从而以选定的传输或数据速率在网络415上传输。
一个或多个附加的多媒体源设备420也可以提供多媒体内容以传输给用户。例如,多媒体源设备420可以用来生成并提供次级多媒体内容,例如要插入由多媒体源设备405生成的主内容中的多媒体广告内容。然而,受益于本公开的本领域技术人员应当认识到,本发明不限于将广告内容接合到用户请求的电影中。在可选的实施例中,这里描述的技术可以用来插入、接合、交织、或组合任何数量的独立多媒体数据流。由多媒体源设备420生成的多媒体内容的数字表示可以被提供给一个或多个编码器425,这些编码器可以编码该数字表示从而以选定的传输或数据速率在网络430上传输。
多媒体通信系统400包括接合器435,其可以用来组合由编码器410、425提供的编码多媒体数据流。例如,服务提供商可以在由编码器410提供的主内容中定义一个或多个接合点,并且接合器435可以将由编码器425提供的编码多媒体内容的各部分插入主内容中的各接合点。例如,可以在主内容中构造间隙,并且由编码器425提供的多媒体内容的各部分可以被接合到所述间隙中。包括编码主内容和编码次级内容的所接合的数据流然后可以经由网络445被提供给解码器440。解码器440可以在读出所述数据并用它来提供图像数据给显示设备445之前将所提供的接合数据流存储在解码器缓冲器450中。
编码器410、425使用解码器缓冲器450的模型来判定如何编码数据流,例如选择用来编码接收自多媒体源设备405、420的数据流的比特率。例如,编码器410、425可以基于解码器缓冲器450的假定大小和对解码器缓冲器450的充满的估计来编码数据流。用于建模和/或编码提供给解码器缓冲器的数据流的技术在现有技术中是已知的,并且为了清楚这里将只讨论建模和/或编码数据流中与本发明相关的那些方面。在根据本发明的一个实施例中,编码器410可以基于解码器缓冲器450的假定大小来编码主数据流,该假定大小与解码器缓冲器450的实际大小不同。例如,编码器410可以被配置成假定解码器缓冲器450的大小是其实际大小的三分之一。假定缩减的解码器缓冲器450大小可以为多媒体通信系统400提供调整编码数据流的定时的自由度。
在所说明的实施例中,接合器435包括耦合到用于在主和次级数据流之间切换的切换器470的组合单元460。接合器435也包括用于调整接收自编码器410的主数据流的定时的重新定时单元475。在一个实施例中,重新定时单元475用于将主编码数据流延迟一偏移量,该偏移量可以基于解码器缓冲器450的假定的和/或实际的大小来选择。例如,重新定时单元475可以延迟主编码数据流以使得主编吗数据流中的延迟范围分布于由编码器缓冲器450的实际大小所支持的延迟范围的中点附近。尽管重新定时单元475在所说明的实施例中被显示在接合器435中,然而受益于本公开的本领域技术人员应当认识到,本发明不限于将重新定时单元475实现在这个位置中。在可选的实施例中,重新定时单元475可以被实现在其他的位置中,例如编码器410、网络415,或作为沿数据流路径的独立单元。
调整主编码数据流的定时可以在次级数据流被接合到主数据流中时降低解码器缓冲器450的下溢和/或溢出的可能性。第二数据流也可以被修改以降低解码器缓冲器450的下溢和/或溢出的可能性。在所说明的实施例中,接合器435包括可用来修改由网络430提供的数据流的传输或数据速率的传输速率单元480。例如,传输速率可以被增加一个通过网络415所提供的数据流中的一个或多个间隙而确定的量,以使得次级数据流可以被接合到该间隙中。在一个实施例中,编码器425可以以比编码主数据流所使用的比特率更低的比特率来编码次级数据流。新的编码速率可以被用来补偿由传输速率单元480引入传输速率中的更改。次级数据流的定时参考也可以被调整以使得该次级数据流能被接合到主数据流中。调整次级编码数据流的传输速率、比特率和/或定时参考可以在次级数据流结束并且接合器435切换回主数据流时降低解码器缓冲器450的下溢和/或溢出的可能性。
图5A、5B、5C和5D概念性地示出了指示定时调整的时序图500、505、510、515,其可以用在接合次级数据流到主数据流中时。在图5A-5D中,时间从左向右增加。在所说明的实施例中,时序图500、505、510、515描述了编码数字信息的分组520和从分组520中的编码数字信息中构造且然后被呈现给用户的帧525。箭头530指示了分组520与利用分组520构成的帧525之间的关联。为了清楚,每个图中只用号码520、525、530分别指示了一个分组、帧和箭头。
图5A概念性地示出了说明第一编码数据流535和第二编码数据流540的简单接合的时序图500。例如,第一编码数据流可以是用于呈现音频和/或视频给用户的多媒体数据流,并且第二编码数据流540可以包括服务提供商可能想要在音频和/或视频呈现期间显示给用户的多媒体广告内容。在所说明的实施例中,第一编码数据流535和第二编码数据流540在区域545重叠至少一部分,因为使用不同的模型来编码数据流。尽管图5A将第二数据流540显示成在第一数据流535结束之前开始,然而受益于本公开的本领域技术人员应当认识到,实际的重叠可能是随机的和/或不可预测的。在一个实施例中,根据本发明,第一编码数据流535可以被延迟一选定的时期以减小与第二编码数据流540的重叠并且降低在接合点发生缓冲器溢出和/或下溢的可能性。
图5B概念性地示出了说明延迟的第一编码数据流550与第二编码数据流540的接合的时序图505。在所说明的实施例中,延迟的第一编码数据流550已经被延迟一选定的时期以减小接合点的重叠。在一些情况中,引入第一编码数据流550中的延迟可能增加这样的可能性,即第二编码数据流540与第一编码数据流550大约在第一延迟编码数据流545重新开始的时刻在区域555中重叠。当第一延迟编码数据流545重新开始从编码器传输到解码器时,这个重叠会导致解码器缓冲器的溢出和/或下溢。第二编码数据流540的编码比特率因而可以降低。例如,第二编码数据流540的编码速率可以按照下面的表达式相对于第一编码数据流540的编码速率而降低:
Figure BPA00001178956000091
在这个表达式中,N是由编码器针对解码器延迟而假定的秒数,并且D是接合的多媒体内容的持续时间。在一个实施例中,用于第二编码数据流540的编码器速率大约是网络速率的90%。
图5C概念性地示出了说明延迟的第一编码数据流550与以较低编码速率被编码的第二编码数据流560的接合的时序图510。以较低速率编码第二数据流560可以减小编码数据流560中的单独压缩帧的大小,这会导致分组之间的时间间隙。然而,一些分组的各部分仍会与第一编码数据流550大约在第一延迟编码数据流545重新开始的时刻在区域555中重叠。当第一延迟编码数据流545重新开始从编码器传输到解码器时,这个重叠会导致解码器缓冲器的溢出和/或下溢。第二编码数据流560因而可以通过以更快的速率发送这个数据流来被调整,以使得第二编码数据流560“嵌入”第一延迟编码数据流545的间隙中。在一个实施例中,嵌入第二数据流中的定时参考也可以基于对传输速率和/或编码速率的修改而被修改。例如,用于发送第二编码数据流560中的压缩数据的节目时钟基准可以被修改,以例如减小第二编码数据流560中的分组之间的时间。传输速率、编码速率和/或定时参考的调整或修改可以静态地或动态地执行,例如基于指示系统条件的更改的反馈。
图5D概念性地示出了说明延迟的第一编码数据流550与以较低编码速率、利用修改的定时参考和更快的传输速率而被编码的第二编码数据流565的接合的时序图515。在所说明的实施例中,对第二编码数据流565的修改确保它完全与延迟的第一编码数据流550的间隙嵌合。因此,延迟的第一编码数据流550和第二编码数据流565既不在接合点重叠也不在延迟的第一编码数据流550重新开始传输的那一点重叠。因此,解码器缓冲器的下溢和/或溢出的可能性可以通过延迟第一编码数据流550和/或使用更低的编码速率和针对第二编码数据流565的不同的定时参考而被降低或消除。
图6A、6B、6C和6D概念性地示出了指示延迟的解码器延迟图600、605、610、615,其可以用在将次级数据流接合到主数据流中时。在解码器延迟图600、605、610、615中,时间从左到右增加并且在该时间的关联于传输的延迟从图的底部到顶部增加。图的阴影部分指示了有关解码器中的实际缓冲器大小所支持的延迟,其在这个情况下被设置成3N秒。N的值是在设计时设定的。然而,可以使用的N的一个典型值是N=1秒,以使得实际解码器缓冲器所支持的延迟是三秒。受益于本公开的本领域技术人员应当认识到,缓冲器的大小确定了可由缓冲器支持的有关延迟。增加缓冲器大小将增加缓冲器支持的延迟大小,而降低缓冲器大小将降低缓冲器支持的延迟大小。
图6A示出了描述由编码器使用的随时间变化的延迟620的解码器延迟图600。延迟620对应于编码器用来编码第一数据流的比特率,其是基于解码器缓冲器的假定大小来调整的。在所说明的实施例中,解码器缓冲器被假定成具有支持最大N秒延迟的大小,因此关联于编码第一数据流的延迟620保持小于N秒。如这里讨论的那样,由于将第二数据流接合到第一数据流中所导致的解码器缓冲器的下溢和/或溢出的可能性可以通过延迟第一数据流而降低或消除。
图6B示出了描述在第一数据流已被延迟附加的N秒后的编码第一数据流延迟625的解码器延迟图605。实现附加的延迟转移了与第一数据流有关的延迟625,以使得关联于第一数据流的延迟625的范围的中点大约对应于由缓冲器实际大小支持的延迟范围的中点,其在这种情况下是3N秒。当延迟增加时缓冲器占用率增加,这是因为收到的信息被存储更长的时间以调和延迟的增加。
图6C示出了描述要被接合到编码第一数据流中的编码第二数据流的延迟630的解码器延迟图610。第二数据流的编码器使用解码器缓冲器的实际大小来确定用于编码第二数据流的延迟和/或相应比特率。要接合到第一数据流中的第二数据流的持续时间是D秒,其中D是可以基于要接合到第一数据流中的信息来选择的值。例如,30秒长的广告可以被插入第一数据流,在该情况下D的值是30。在所说明的实施例中,第二数据流的传输速率增加(如这里讨论的那样),这导致缓冲器占有率的增加超出分配给接合的第二数据流的间隙持续时间。对传输速率的所选修改因而可以考虑缓冲器大小。在一个实施例中,第二数据流可以以稍小于网络速率的编码速率被编码。第二编码数据流的定时因而可以通过调整用于第二编码数据流的定时参考和/或传输速率而被调整,如这里讨论的那样。
图6D示出了描述包括第一编码数据流和接合的第二编码数据流的数据流的延迟635的解码器延迟图615。在所说明的实施例中,修改第一编码数据流以及在一些情况下的第二编码数据流的定时使得第二编码数据流能够被接合到第一编码数据流中而不会造成解码器缓冲器的溢出和/或下溢。
图7概念性地示出了指示延迟705的解码器延迟图700,其可以用在将次级数据流接合到主数据流中时。在所说明的实施例中,解码器缓冲器支持直到2*N秒的延迟,并且关联于主数据流的延迟被设置在0-N秒之间直到接近接合点。例如,关联于主数据流的延迟可以保持在范围0-N秒中,直到接合点之前的时间间隔720。在一个实施例中,时间间隔720的持续时间可以基于对等待时间、信道改变次数等的考虑来选择。
在时间间隔720期间,关联于主编码数据流的延迟705可以增加到近似范围1*N-2*N秒中,以使得在时间间隔720结束时关联于主编码数据流的延迟705的可能范围近似地对应于由解码器缓冲器支持的延迟的上半部分。关联于编码次级数据流的延迟710可以利用这里描述的技术来调整,例如以较低的编码速率编码次级数据流,然后调整传输速率、定时参考和/或编码速率。次级编码数据流因而可以被接合到主编码数据流中。一旦次级编码数据流已完成传输,主编码数据流的传输就可以重新开始。在所说明的实施例中,关联于主数据流的延迟715在接合的次级编码数据流之后被设置于0-N秒之间。
图8概念性地示出了指示延迟805、810、815、820的解码器延迟图,其可用在将多个次级数据流接合到主数据流中时。在所说明的实施例中,关联于主数据流的延迟805被设置在0-N秒之间,直到接合点之前的时间间隔825。在时间间隔825期间,关联于主编码数据流的延迟805可以增加到范围1*N-2*N秒中。次级数据流然后可以被接合到主数据流中并且次级数据流可以利用延迟810、815被编码。在发送次级数据流之后,主编码数据流的发送可以重新开始。在所说明的实施例中,关联于主数据流的延迟820被设置在所接合的次级编码数据流之后的0-N秒之间。
就计算机存储器内的软件或数据比特的操作的算法和符号表示而介绍了本发明的各部分和相应的详细描述。这些描述和表示由本领域技术人员用来向其他本领域技术人员有效传达其工作的实质。如这里使用的且如通常使用的术语算法被认为是导向期望结果的有条理的步骤序列。这些步骤需要对物理量进行物理操纵。通常,尽管并非必要,这些量采取能被存储、传送、组合、比较和操纵的光、电或磁信号的形式。出于公共使用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、项、数字等有时是便利的。
然而应当理解,所有这些类似的术语都关联于适当的物理量并且只是施加于这些量的方便标签。除非特别说明,否则如从本公开中可以看出的那样,例如“处理”或“计算”或“确定”或“显示”等的术语是指计算机系统或类似电子计算设备的动作和进程,所述电子计算设备操纵计算机系统寄存器和存储器内的表示成物理、电子量的数据并将其转换成计算机系统寄存器或存储器内或其它这种信息存储、传输或显示设备内的类似地表示成物理量的数据。
还应当指出,本发明的软件实现的方面通常被编码在一些形式的程序存储介质上或通过一些类型的传输介质来实现。程序存储介质可以是磁的(例如软盘或硬驱)或光的(例如光盘只读存储器CD ROM),并且可以是只读的或随机访问的。类似地,传输介质可以是双绞线、同轴电缆、光纤或现有技术中已知的一些其他合适的传输介质。本发明不限于任何给定实现的各方面。
上面公开的特定实施例只是说明性的,因为本发明可以以不同但等效的方式被修改和实施,这对于受益于本公开的本领域技术人员而言是显而易见的。此外,除了下面的权利要求中所描述的内容之外,对于这里显示的构造或设计的细节没有限制。因此,显然上面公开的特定实施例可以被改变或修改并且所有这种变型都被看作是在本发明范围内。因此,本发明的保护范围由下面的权利要求限定。

Claims (8)

1.一种用于组合在编码器与解码器之间流动的数据流的方法,包括:
访问第一编码数据流,该第一编码数据流是以第一传输速率被发送的并且是基于接收该第一编码数据流的所述解码器中的缓冲器的第一缓冲器大小而被编码的;
将所述第一编码数据流延迟一个基于关联于所述解码器的第二缓冲器大小而确定的偏移量;
编码至少一个第二数据流以构成至少一个第二编码数据流,该编码是利用第二数据速率来执行的,其中,所述第二数据速率低于所述第一编码数据流的第一数据速率,由此引入了所述至少一个第二编码数据流的分组之间的时间间隙;和
将所述至少一个第二编码数据流接合到所述第一编码数据流的间隙中,
其中,所述第二缓冲器大小大于所述第一缓冲器大小。
2.根据权利要求1所述的方法,其中,编码至少一个第二数据流是利用基于增加的第二传输速率而选择的第二数据速率来执行的。
3.根据权利要求1或2所述的方法,包括向所述解码器发送包含所述第一编码数据流和所接合的第二编码数据流的数据流。
4.根据权利要求2所述的方法,包括:
基于所述第一编码数据流中的间隙的持续时间来增加所述第二传输速率。
5.一种被配置成接收来自编码器的输入编码数据流并且向解码器提供至少一个输出编码数据流的接合器,所述接合器被配置成:
访问第一编码数据流,该第一编码数据流是以第一传输速率被发送的并且是基于接收该第一编码数据流的所述解码器中的缓冲器的第一缓冲器大小而被编码的;
将所述第一编码数据流延迟一个基于关联于所述解码器的第二缓冲器大小而确定的偏移量;
编码至少一个第二数据流以构成至少一个第二编码数据流,该编码是利用第二数据速率来执行的,其中,所述第二数据速率低于所述第一编码数据流的第一数据速率,由此引入了所述至少一个第二编码数据流的分组之间的时间间隙;和
将所述至少一个第二输入编码数据流接合到被延迟的第一编码数据流中以构成所述至少一个输出编码数据流,
其中,所述第二缓冲器大小大于所述第一缓冲器大小。
6.根据权利要求5所述的接合器,其中,编码至少一个第二数据流是利用基于增加的第二传输速率而选择的第二数据速率来执行的。
7.根据权利要求5或6所述的接合器,所述接合器被配置成向所述解码器发送包含所述第一编码数据流和所接合的第二编码数据流的数据流。
8.根据权利要求6所述的接合器,所述接合器被配置成:
基于所述第一编码数据流中的间隙的持续时间来增加所述第二传输速率;和
将所述至少一个第二编码数据流接合到所述第一编码数据流的间隙中。
CN200980101770.2A 2008-01-10 2009-01-05 用于接合编码多媒体数据流的方法 Expired - Fee Related CN101911698B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/972,188 2008-01-10
US11/972,188 US8411569B2 (en) 2008-01-10 2008-01-10 Method of splicing encoded multimedia data streams
PCT/US2009/030082 WO2009089135A2 (en) 2008-01-10 2009-01-05 Method of splicing encoded multimedia data streams

Publications (2)

Publication Number Publication Date
CN101911698A CN101911698A (zh) 2010-12-08
CN101911698B true CN101911698B (zh) 2014-05-07

Family

ID=40651327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980101770.2A Expired - Fee Related CN101911698B (zh) 2008-01-10 2009-01-05 用于接合编码多媒体数据流的方法

Country Status (6)

Country Link
US (1) US8411569B2 (zh)
EP (1) EP2241109A2 (zh)
JP (1) JP5198581B2 (zh)
KR (1) KR101309935B1 (zh)
CN (1) CN101911698B (zh)
WO (1) WO2009089135A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8613013B2 (en) * 2008-06-12 2013-12-17 Cisco Technology, Inc. Ad splicing using re-quantization variants
US8046623B2 (en) * 2009-01-12 2011-10-25 Mediatek Inc. Timing recovery apparatus and method thereof
FR2960320B1 (fr) * 2010-05-21 2012-05-04 Canon Kk Procede de gestion d'une transmission de donnees depuis un dispositif emetteur, produit programme d'ordinateur, moyen de stockage et dispositif emetteur correspondants
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
KR101917174B1 (ko) * 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
EP3005712A1 (en) 2013-06-06 2016-04-13 ActiveVideo Networks, Inc. Overlay rendering of user interface onto source video
US9437236B2 (en) * 2013-11-04 2016-09-06 Michael Hugh Harrington Encoding data
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN104536700B (zh) * 2014-12-22 2017-07-07 深圳市博瑞得科技有限公司 一种码流数据的快速存储/读取方法及系统
US9524249B2 (en) * 2014-12-23 2016-12-20 Intel Corporation Memory encryption engine integration
US10523985B2 (en) * 2014-12-24 2019-12-31 Activevideo Networks, Inc. Managing deep and shallow buffers in a thin-client device of a digital media distribution network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002009425A1 (en) * 2000-07-25 2002-01-31 Agilevision, L.L.C. Splicing compressed, local video segments into fixed time slots in a network feed
US7139241B1 (en) * 1998-09-14 2006-11-21 Optibase Ltd. Method for preventing buffer underflow during digital transport stream transmission, multiplexing and splicing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2369518B (en) * 1997-07-18 2002-07-17 British Broadcasting Corp Switching compressed video bitstreams
US6049569A (en) * 1997-12-09 2000-04-11 Philips Electronics N.A. Corporation Method and apparatus for encoding digital video bit streams with seamless splice points and method and apparatus for splicing such digital video bit streams
US7031348B1 (en) * 1998-04-04 2006-04-18 Optibase, Ltd. Apparatus and method of splicing digital video streams
CA2386941C (en) * 1999-10-20 2005-04-19 Expanse Networks, Inc. Method and apparatus for inserting digital media advertisements into statistical multiplexed streams
FI109393B (fi) * 2000-07-14 2002-07-15 Nokia Corp Menetelmä mediavirran enkoodaamiseksi skaalautuvasti, skaalautuva enkooderi ja päätelaite
JP2002077251A (ja) * 2000-08-28 2002-03-15 Nec Corp データ伝送システム、データ中継装置、およびデータ中継方法
KR100385331B1 (ko) * 2000-12-19 2003-05-27 주식회사 코스모탄 변속재생 시에도 음색변화를 유발하지 않도록 하는오디오신호 재생방법과 이를 위한 재생장치
WO2004019530A1 (en) 2002-02-15 2004-03-04 Visible World, Inc. System and method for seamless switching through buffering
CN1650629B (zh) * 2002-04-26 2010-10-06 索尼株式会社 编码设备和方法、编辑设备和方法
US7606928B2 (en) * 2003-03-21 2009-10-20 Nokia Corporation Method and device for controlling receiver buffer fullness level in multimedia streaming
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US7477692B2 (en) * 2005-12-16 2009-01-13 Tut Systems, Inc. Video encoding for seamless splicing between encoded video streams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139241B1 (en) * 1998-09-14 2006-11-21 Optibase Ltd. Method for preventing buffer underflow during digital transport stream transmission, multiplexing and splicing
WO2002009425A1 (en) * 2000-07-25 2002-01-31 Agilevision, L.L.C. Splicing compressed, local video segments into fixed time slots in a network feed

Also Published As

Publication number Publication date
KR101309935B1 (ko) 2013-09-17
KR20100092502A (ko) 2010-08-20
US20090183197A1 (en) 2009-07-16
JP2011509640A (ja) 2011-03-24
WO2009089135A2 (en) 2009-07-16
WO2009089135A4 (en) 2010-02-25
US8411569B2 (en) 2013-04-02
JP5198581B2 (ja) 2013-05-15
CN101911698A (zh) 2010-12-08
EP2241109A2 (en) 2010-10-20
WO2009089135A3 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
CN101911698B (zh) 用于接合编码多媒体数据流的方法
CN105075273B (zh) 自适应流式传输技术
JP4819126B2 (ja) 携帯放送システムにおける多重ストリーム受信装置及び方法
EP2869569A1 (en) Method and apparatus for transmitting adaptive media structure in multimedia system
KR100837720B1 (ko) 디지털 멀티미디어 방송에서 비디오 서비스와 동기화된 데이터 서비스를 제공하는 방법 및 그 장치와 데이터 서비스의 실행 방법
CN102130886B (zh) 网络视频流媒体系统及传输处理方法、发送端
CN103200461A (zh) 一种多台播放终端同步播放系统及播放方法
TWI770583B (zh) 用於使用廣播調度資料來促進執行內容修改操作之方法、非暫時性電腦可讀儲存介質及計算系統
CN113767639B (zh) 接收媒体数据的方法、装置和非易失性计算机可读介质
CN101917613A (zh) 一种流媒体采集编码服务系统
CN110708579B (zh) 可执行视频播放的电子装置
US20210235170A1 (en) System and Method for Optimizing Playlist Information for Ultra Low Latency Live Streaming
CN103763588A (zh) 一种用于视频广告插播的推流方法、装置、服务器及系统
CN115398924A (zh) 用于媒体流传输的方法和设备
CN100471267C (zh) 从属数据流传输方法
CN113796089A (zh) 具有问题检测和响应动作特征的内容修改系统
CN102740139A (zh) 信息处理装置、信息处理方法和程序
KR20060120285A (ko) 정보 배신 시스템 및 방법과 그 정보 배신 장치, 수신단말기, 정보 중계 장치
CN104935595A (zh) 内容项聚合方法和相关装置及通信系统
CN113940086A (zh) 具有广播调度利用特征的内容修改系统
CN113132806B (zh) 一种播放终端及其节目播放方法
KR102401372B1 (ko) 이종 네트워크를 통해 수신한 콘텐츠의 삽입 방법 및 장치
KR102131741B1 (ko) 다수의 사이니지의 영상 동기화 방법
CN115426503A (zh) 一种转码服务切换方法、装置、设备及存储介质
CN113841415A (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

Granted publication date: 20140507

Termination date: 20210105

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