CN102439989A - 用于直播视频编码的流同步 - Google Patents

用于直播视频编码的流同步 Download PDF

Info

Publication number
CN102439989A
CN102439989A CN2009801538273A CN200980153827A CN102439989A CN 102439989 A CN102439989 A CN 102439989A CN 2009801538273 A CN2009801538273 A CN 2009801538273A CN 200980153827 A CN200980153827 A CN 200980153827A CN 102439989 A CN102439989 A CN 102439989A
Authority
CN
China
Prior art keywords
frame
coding
subsystem
video
video capture
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.)
Granted
Application number
CN2009801538273A
Other languages
English (en)
Other versions
CN102439989B (zh
Inventor
S·C·拉布罗兹
P·G·贾科布森
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.)
Cisco Technology Inc
Inlet Technologies LLC
Original Assignee
Cisco Technology 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 Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN102439989A publication Critical patent/CN102439989A/zh
Application granted granted Critical
Publication of CN102439989B publication Critical patent/CN102439989B/zh
Active 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/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
    • H04N21/234363Processing 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 by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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
    • H04N21/23439Processing 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 for generating different versions
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种在包括多个视频捕捉和编码子系统的视频编码系统中对直播视频信号进行编码的方法,所述方法包括:提供直播视频信号和相关联的时间码信号给所述多个视频捕捉和编码子系统;在直播视频信号的第一帧处在所述子系统的第一个中开始视频捕捉和编码;在晚于第一帧的直播视频信号的第二帧处在所述子系统的第二个中开始视频捕捉和编码;在第一和第二视频捕捉和编码子系统两者中产生用于第二帧的编码帧时间戳,所述编码帧时间戳横跨第一和第二子系统被同步;以及在第一和第二子系统两者中使编码帧时间戳与第二帧相关联。还公开了相关的系统。

Description

用于直播视频编码的流同步
相关申请的交叉引用
本申请要求2008年10月28日提交的名为“LIVE VIDEOENCODER STREAM SYNCHRONIZATION”的美国临时专利申请No.61/108,946的权益和优先权,在此将该美国临时专利申请的内容通过参引的方式全部并入本文。
技术领域
本发明涉及视频编码,以及更具体地,本发明涉及用于对直播视频流进行编码的系统和/或方法。
背景技术
用户宽带互联网访问的速度普遍不同。在2008年9月,美国的领先DSL提供商向用户提供了最大下载速度从768Kb/s到6Mb/s的四种DSL选择。在同时期,领先的电缆提供商提供最大下载速度从768Kb/s到10Mb/s的调制解调器服务。在这两种情况下,所引用的下载速度是最大速率而非得到保证的速率。另外,通常不能保证下载速度可被持续任何时长。
品质视频资源(video asset)在如互联等网数据通信网络上的传输受到用户宽带互联网访问速度的广泛差异以及对于任何给定的用户,不保证下载速率以一致或已知的速率持续这一事实的妨碍。这些限制已经迫使在线视频内容的制作商以多个数据速率(也称作比特率或编码率)制作的给定视频资源,这些视频资源可被作为替代选择提供给用户。当用户选择观看在线视频内容时,向他们提供了在具有不同比特率的多个版本的内容之间进行选择的选择权。然后,用户可以选择观看在低于其已知的最大数据速率的最高比特率的内容。例如,在2008年间,对于每场比赛,主要的体育广播公司制作大约1.2Mb/s、800Kb/s和400Kb/s的比特率的直播内容。
一般地,编码的比特率越高,视频质量则越高。用户的观看体验的总体质量已经受到阻碍,因为用户一般需要从一小组的数据速率中进行选择,并且还因为在这些速率中,用户必须选择恰好小于其期望的可持续宽带因特网下载速度的速率。如果用户的下载速度在至少等于视频比特率的速度处不持续,则观看体验将会在从视频源获取更多的视频时被暂停不时地中断。这些暂停——通常称作再缓冲——还影响观看体验的质量。由于终端用户实际上不太可能体验到其可实现的最大下载速度,所以他们被迫选择比其最大下载速度低得多的比特率,除非他们愿意忍受间歇性的数据流再缓冲。不得不选择较低的视频比特率的言外之意意味着用户的实际下载能力可能未被完全利用,并且因此视频服务的品质可能未最大化。
自适应流(adaptive streaming)是试图时刻优化用户的实际比特率的技术。该技术涉及以一定范围的视频比特率对给定视频资源进行编码。在用户的回放期间,传输系统根据用户在观看内容时体验的实际下载速度,在各种速率之间动态地切换。在该方案中,用户不需要在一开始选择较低质量的视频体验。用户简单选择观看给定的视频资源,而基于其瞬时下载速度可实现的最佳质量视频流被动态地传输给用户。如果其下载速度降低,则正在传输给用户的视频流被切换到较低比特率流。如果用户的下载速度升高,则传输较高比特率流。
数字视频信号——也称为视频流——包括一系列的视频帧。每个帧具有与其相关联的描述相对于视频流中的其他帧该帧要在何时被显示的时间的时间戳(timestamp)。在提供具有不同比特率的同一视频信号的两个流时,如在自适应流中那样,流之间的切换应当是无缝的,使得帧继续以适当的顺序显示,并且在时间戳中所指定的时间显示。为了干净地切换到新的流,在当前的流和新的流之间应当存在精确到帧(frame-accurate)的关系。也就是说,视频信号的适当显示需要知道新的流中的下一帧。因此,如果传输系统当前正在显示流的帧N,则传输系统需要知道帧N+1在要切换到的新的流中存在于什么位置。在视频流之间具有精确到帧的关系意味着在多个不同的视频流中的帧之间存在帧与帧的对应,所述多个不同的视频流从同一个输入源产生,但是可以具有不同的编码参数,如比特率、图像尺寸等。
当被编码的源视频资源是基于文件的资源时,具有精确到帧的关系的任务是简单的,意味着所有的帧已经存在于诸如硬盘的存储介质上。文件资源具有固定的一组帧和与这些帧相关联的时间戳。资源可以被编码多次,或许甚至在不同的机器上编码,并且在每个输出文件中,给定的帧N在编码输出中将具有的相同时间戳。
例如,参照图1,包括M个帧的源视频文件资源10被第一编码系统12A和第二编码系统12B编码。第一编码系统12A将源视频10编码成包括M个帧的第一编码视频资源20A,并且第二编码系统12B将源视频10编码成同样包括M个帧的第二编码视频资源20B。第一编码视频资源20A的M个帧通过相同的时间戳与第二编码视频资源20B的M个帧逐帧地对应。
诸如直播视频供给的直播资源不具有固定组的帧以及与这些帧相关联的时间戳。然而,当对直播视频的捕捉开始时,一般将所捕捉的第一帧认作具有为0的时间戳的帧1。然后,帧的编号和时间戳正如该资源来自文件一样地渐增。例如,图2示出了对来自直播视频源的视频的捕捉。参照图2,捕捉开始于源直播流的帧A+1。所捕捉的视频文件中的第一捕捉帧一般称作帧1,并且具有为0的时间戳。
因此,当正被编码的源视频资源是直播的以及在供应多个编码器的帧源自单个捕捉系统的情况下,具有精确到帧的关系的任务是简单的。总的编码构架可以是包括多个编码器(如图3所示)或多个编码系统(如图3所示)的单个系统,但是在每种情况下,都保留用于视频帧的单个捕捉源。在图3和图4所示的系统中,捕捉的视频流被使用第一和第二编码器(编码器1和编码器2)以不同的比特率编码。在图3的系统中,两个编码器被实现在单个捕捉和编码系统中,而在图4中,两个编码器被实现为从一个共同捕捉系统接收所捕捉的视频帧的单独的编码系统。
自适应流模型的质量和/或可扩展性(scalability)可以直接与可为给定资源所产生的编码率的数量有关。例如,产生诸如200Kb/s、800Kb/s和1.4Mb/s(例如,编码率之间的间隔是600Kb/s)的刚好三个编码率不如具有200Kb/s、500Kb/s、800Kb/s、1.1Mb/s和1.4Mb/s(300Kb/s间隔)的5个编码率那样可扩展,而后者不如具有200Kb/s、350Kb/s、500Kb/s、650Kb/s、800Kb/s、950Kb/s、1Mb/s、1.25Mb/s和1.4Mb/s(150Kb/s间隔)的9个编码率那样可扩展。从回放的角度来看,更多的比特率更好,因为流之间的视觉变换可以更不容易察觉。
图3所示的单个直播编码系统中的输出流的数量受到编码系统(处理器、内存、I/O等)的整体处理能力的限制。该系统构架也不能良好地处理故障。如果在单个直播捕捉系统中出现故障,则所有的输出流可能被丢失。
乍一看,图4描绘的系统提供了明显无限的可扩展性和更稳健的故障处理。任何数量的编码器都可以添加到所述构架,并且如果单个系统故障,仅仅单个自适应流丢失,尽管如果单个捕捉系统故障,如构架,所有的自适应流都可能丢失。然而,由于存在提供帧以及相关的时间戳的单个捕捉系统,该构架确实允许出现故障的系统重启。重启的系统能够再次开始编码,并开始提供相对于其他编码器产生的流精确到帧的流。
然而,在实际中,图4所示的构架可能是不切实际的,因为其依赖给多个编码系统供应未压缩的捕捉视频的单个捕捉系统。未压缩的视频非常大(4:2:2的HD未压缩视频,8位格式需要近1Gb/秒以便传输),并且向可扩展数量的编码机器传输未压缩视频供给的网络需要是不切实际的。
在图5中示出了修改的系统构架。该构架使用共同的直播编码系统(直播编码系统1和直播编码系统2),该共同的直播编码系统不被供应来自单个捕捉系统的未压缩视频。如果单个捕捉和编码系统出现故障,则自适应流的一个子集可能丢失。在捕捉和编码部件中也没有影响所有自适应流的单个故障点。然而,该构架仍具有大量局限。例如,为了在已编码的输出之间具有精确到帧的关系,每个直播的编码系统必须完全在相同的帧上开始编码。通过这样做,一个输出的帧N将是另一个输出中的同一个帧N。如果编码系统不彼此同步地开始,则该要求将不被满足。
在特定时间码处开始捕捉能够解决横跨多个编码器的同步开始的问题,因为所有的编码器完全在相同的帧上开始。然而,这样的方法排除了系统在出现故障之后重启的可能性。
发明内容
一些实施例提供在包括多个视频捕捉和编码子系统的视频编码系统中对直播视频信号进行编码的方法。所述方法包括:提供直播视频信号和相关联的时间码信号给所述多个视频捕捉和编码子系统;在直播视频信号的第一帧处在所述多个视频捕捉和编码子系统的第一个中开始视频捕捉和编码;在直播视频信号的晚于第一帧的第二帧处在所述多个视频捕捉和编码子系统的第二个中开始视频捕捉和编码;在第一和第二视频捕捉和编码子系统两者中产生用于第二帧的编码帧时间戳,所述编码帧时间戳横跨第一和第二视频捕捉和编码子系统被同步;以及在第一和第二视频捕捉和编码子系统两者中使编码帧时间戳与第二帧相关联。
在第二视频捕捉和编码子系统中产生编码帧时间戳可以包括:接收与直播视频信号的第二帧相关联的时间码;响应于时间码产生用于第二帧的帧计数;响应于帧计数产生基时间戳;产生用于第二帧的捕捉时间戳;以及将用于第二帧的捕捉时间戳作为初始捕捉时间戳进行存储。
所述方法还可包括:产生用于第二帧之后的第二视频捕捉和编码子系统所接收的第三帧的捕捉时间戳;响应于第三帧的捕捉时间戳、初始时间戳和基时间戳产生用于第三帧的编码帧时间戳;以及利用用于第三帧的编码帧时间戳在第二视频捕捉和编码子系统中对第三帧进行编码。
用于第三帧的编码帧时间戳可以根据下式产生:
编码帧时间戳=基时间戳+(捕捉时间戳-初始时间戳)
所述方法还可包括:确定第二帧是否是响应于直播视频信号与第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧;以及响应于所确定的第二帧不是与第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧,丢弃第二帧并接收直播视频信号中的后续帧。
第一和第二视频捕捉和编码子系统配置成利用不同的编码参数对直播视频信号进行编码。
产生用于第二帧的帧计数可以包括响应于与第二帧相关联的时间码、基时间码以及视频帧速率来产生帧计数。
所述方法还可包括调节帧计数以用于下落时间码(drop time code)的使用。调节帧计数可以包括根据下式调节帧计数:
帧计数=帧计数-2*总分钟+2*(总分钟/10)
其中,总分钟表示从基时间码到与第二帧相关联的时间码的分钟的总数。
与第二帧相关联的时间码可以包括线性时间码(LTC)。
根据一些实施例的视频编码系统包括第一和第二视频捕捉和编码子系统。第一和第二视频捕捉和编码子系统中的每一个被配置成接收直播视频信号和相关联的时间码信号,并且包括捕捉子系统、自适应的同步子系统、以及至少一个编码系统。第一视频捕捉和编码子系统被配置成在直播视频信号的第一帧处开始视频捕捉和编码,并且第二视频捕捉和编码子系统被配置成在比第一帧晚的直播视频信号的第二帧处开始视频捕捉和编码。第一和第二视频捕捉和编码子系统配置成在第一和第二视频捕捉和编码子系统两者中产生横跨第一和第二视频捕捉和编码子系统被同步的用于第二帧的相应编码帧时间戳,并且利用编码帧时间戳编码第二帧。
第二视频捕捉和编码子系统的自适应同步子系统可以配置成接收与直播视频信号的第二帧相关联的时间码,并响应于该时间码产生用于第二帧的帧计数,响应于该帧计数产生基间戳,产生用于第二帧的捕捉时间戳,以及将用于第二帧的捕捉时间戳作为初始捕捉时间戳存储。
第二视频捕捉和编码子系统的自适应同步子系统还可以配置成产生用于第二帧之后的第二视频捕捉和编码子系统所接收的第三帧的捕捉时间戳,并且响应于第三帧的捕捉时间戳、初始时间戳和基时间戳产生用于第三帧的编码帧时间戳,并且第二视频捕捉和编码子系统的编码子系统配置成利用用于第三帧的编码帧时间戳对第三帧进行编码。
第二视频捕捉和编码子系统的自适应同步子系统可以配置成根据下式产生用于第三帧的编码帧时间戳:
编码帧时间戳=基时间戳+(捕捉时间戳-初始时间戳)
第二视频捕捉和编码子系统的自适应同步子系统还可以配置成确定第二帧是否是响应于直播视频信号与第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧,以及响应于确定出第二帧不是与第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧,丢弃第二帧并接收直播视频信号中的后续帧。
第一和第二视频捕捉和编码子系统可被配置成利用不同的编码参数对直播视频信号进行编码。
第二视频捕捉和编码子系统的自适应同步子系统还可以配置成响应于与第二帧相关联的时间码、基时间码以及视频帧速率产生用于第二帧的帧计数。
第二视频捕捉和编码子系统的自适应同步子系统还可以配置成调节帧计数以用于下落时间码的使用。
第二视频捕捉和编码子系统的自适应同步子系统还可以配置成调节帧计数,并且可以包括根据下式调节帧计数:
帧计数=帧计数-2*总分钟+2*(总分钟/10)
其中,总分钟表示从基时间码到与第二帧相关联的时间码的总分钟。
与第二帧相关联的时间码可以包括线性时间码(LTC)。
根据进一步的实施例的在包括多个视频捕捉和编码子系统的视频编码系统中对直播视频信号进行编码的方法包括:提供直播视频信号和相关联的时间码信号给所述多个视频捕捉和编码子系统;在直播视频信号的第一帧处,在所述多个视频捕捉和编码子系统的第一个中开始视频捕捉和编码;在晚于第一帧的直播视频信号的第二帧处,在所述多个视频捕捉和编码子系统的第二个中开始视频捕捉和编码;在第二视频捕捉和编码子系统中确定直播视频信号的第二帧是否为正由第一视频捕捉和编码子系统编码的一组图像的第一帧;以及响应于确定直播视频信号的第二帧不是正由第一视频捕捉和编码子系统编码的一组图像的第一帧,丢弃直播视频信号的第二帧并接收直播视频信号中的第三帧。
所述方法还可包括响应于确定直播视频信号的第二帧是正由第一视频捕捉和编码子系统编码的一组图像的第一帧,在第二视频捕捉和编码子系统中产生用于第二帧的编码帧时间戳,并且在第二视频捕捉和编码子系统中将编码帧时间戳与第二帧相关联。
产生用于直播视频信号的第二帧的编码帧时间戳可包括产生与直播视频信号的第二帧相关联的帧计数以及响应于该帧计数产生编码帧时间戳。
确定直播视频信号的第二帧是否为正由第一视频捕捉和编码子系统编码的一组图像(GOP)的第一帧可以包括产生与直播视频信号的第二帧相关联的帧计数以及在帧计数和GOP尺寸上执行模运算(modulus operation)。
附图说明
图1是示出传统的视频编码系统的框图。
图2示出了对直播视频信号的逐帧捕捉。
图3是示出包括单个捕捉子系统和多个编码器的传统捕捉和编码系统的框图。
图4是示出包括单个直播捕捉系统和与捕捉系统分开的多个编码器的传统捕捉和编码系统的框图。
图5是示出包括多个直播捕捉子系统的传统捕捉和编码系统的框图,每个直播捕捉子系统具有多个编码器。
图6示出了仅包括I-和P-帧的视频流之间的切换。
图7示出了包括I-、P-和B-帧的GOP对齐视频流之间的切换。
图8示出了对于仅包括I-和P-帧的视频流的GOP对齐和未对齐切换。
图9示出了对于包括I-和P-和B-帧的视频流的GOP对齐切换。
图10是示出了根据一些实施例的直播视频捕捉和编码系统的框图。
图11示出了根据一些实施例的用于从直播视频流捕捉的帧的时间戳和时间码的分配。
图12是示出根据一些实施例的用于产生同步时间戳的系统/方法的流程图。
图13A和13B示出了产生同步时间戳的示例性实施例。
图14是示出根据进一步的实施例的用于产生同步时间戳的系统/方法的流程图。
具体实施方式
下面将参照附图更全面地描述本发明的实施例,在附图中示出了本发明的实施例。然而,本发明可以以多种不同的形式实施,不应理解为限制于此处阐释的实施例。相反,提供这些实施例是为了使本公开透彻且完整,并将本发明的范围完整地呈现给本领域普通技术人员。相似的附图标记在通篇中表示相似的元件。
应当理解的是,尽管术语“第一”、“第二”等在此处可以用来描述多种元件,但这些元件不应受限于这些术语。这些术语仅仅用来将一个元件与另一个元件区分开。例如,第一元件可以表述为第二元件,而类似地,第二元件也可以表述为第一元件,这都不偏离本发明的范围。如此处所使用的,术语“和/或”包括相关的所列项目中的一个或多个的任何和所有组合。
这里使用的术语是用于仅描述特定实施例的目的,并不意在限制本发明。如此处所使用的,单数形式“一”、“一个”和“该”意在也包括复数形式,除非上下文中明确地另有说明。还应理解,术语“包括”、“包含”和/或“包括有”在本文使用时指明所声明的特征、整体、步骤、操作、元件和/或部件的存在,但不排除存在或增加一个或多个其他特征、整体、步骤、操作、元件、部件和/或它们的组。
除非另有限定,否则此处所使用的所有术语(包括技术和科学术语)都具有与本发明所属领域的普通技术人员所普遍理解的相同的含义。还应当理解,此处所使用的术语应被解释为具有与其在本说明的上下文中以及相关领域中的含义相一致的含义,并且不应被以理想化或过于正式的含义进行解释,除非这里明确地进行了这样的限定。
本领域技术人员将理解到,本发明可以实施为方法、数据处理系统和/或计算机程序产品。因此,本发明可以呈全硬件实施例、全软件实施例或者组合软件和硬件方面的实施例的形式,所有这些在这里都统称为“电路”或“模型”。另外,本发明可以呈有形的计算机可用尺寸介质上的计算机程序产品的形式,其具有实现在所述介质中能够由计算机执行的计算机程序代码。任何适当的有形计算机刻度介质都可以被使用,包括硬盘、CD ROM、光学存储设备或者磁性存储设备。
下面参照根据本发明实施例的方法、系统和计算机程序产品的流程示意和/或框图来描述本发明的一些实施例。将理解到,这些流程示意和/或框图的每个框,以及流程示意和/或框图中的方框的组合能够通过计算机程序指令来执行。这些计算机程序指令可以提供给通用计算机、特殊用途计算机的处理器,或者提供给其他可编程数据处理装置,以制造机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于执行在流程图和/或框图的一个或多个方框中指定的功能/动作的装置。
这些计算机程序指令也可以存储在计算机可读存储器中,所述计算机可读存储器以特定的方式引导计算机或其他可编程数据处理装置发挥功能,使得存储在计算机可读存储器中的指令产生包括指令装置的制品,所述指令装置执行在流程图和/或框图的一个或多个方框中指定的功能/动作。
计算机程序指令也可以加载到计算机或其他可编程数据处理装置上,以使一系列的操作步骤在计算机或其他可编程装置上执行,以产生计算机执行过程,使得在计算机或其他可编程装置上执行的指令提供用于执行在流程图和/或框图的一个或多个方框中指定的功能/动作的步骤。
应当理解,方框中标出的功能/动作可以不按照操作图中标出的顺序发生。例如,连续示出的两个方框可以实际上可以基本同时地被执行,或者方框有时候可以以相反的顺序执行,这取决于所涉及的功能性/动作。尽管一些图包括在通信路径上表示主要通信方向的箭头,但是应当理解,通信可以在与所描绘的箭头相反的方向上发生。
用于执行本发明的操作的计算机程序代码可以用面向对象的编程语言如JavaSmalltalk或C++来写。然而,用于执行本发明的操作的计算机程序代码也可以用传统的程序化编程语言如“C”编程语言来写。程序码可以完全在使用者的计算机上执行,部分地在使用者的计算机上执行,作为独立的软件包,部分地在使用者的计算机上并且部分地在远程计算机上或者完全在远程计算机上执行。在后一种方案中,远程计算机可以通过局域网(LAN)或者广域网(WAN)连接到用户的计算机,或者可以进行对外部计算机的连接(例如,使用网络服务提供商通过因特网进行)。
在此所描述的一些实施例通过允许在保持从一个编码系统到另一个编码系统的输出帧的精确到帧、基于时间的关联时,两个或更多个直播编码系统彼此异步启动来解决这些问题。能够异步地启动可以允许在系统故障之后重启和恢复。
通常,自适应流技术不能在任何的任意帧N上从一个编码流简单地切换到另一个。这是因为视频编码涉及压缩。为了实现视频压缩,利用来自早先和/或将来的帧的信息来编码一些帧。
图6描绘了含有I-帧(不取决于其他帧的帧)和P-帧(取决于一个或多个在先帧的帧)的视频流(流1和流2)。当在流1和流2之间进行切换时,切换点不能出现在流2的下一个帧是P-帧的点,因为该帧取决于流2的还没有被传输的在先的帧。切换点必须在流2的I-帧处,因为新的流的I-帧不取决于其所在的流中的其他帧。
图7描绘了含有I-帧、P-帧和B-帧(取决于一个或多个在先或将来的帧的帧)的视频流(流1和流2)。另外,这是图像组(GOP)被认为封闭的特殊情况,因为在比特流顺序(即,帧发送的顺序,其不同于其显示的顺序)中,没有取决于来自在先和接下来的GOP的帧的编码帧。在视频编码领域,该封闭的GOP属性是在GOP I-帧边界处切换或拼接流的能力所需的限制。如在前面的示例中,干净的切换必须在I-帧GOP边界处,因为新的流的I-帧不依赖于其所在的流中的其他帧以及因为封闭的GOP属性,切换的流的将来的帧也不取决于在I-帧之前的帧。
当编码系统仅仅产生I-帧和P-帧时,在流之间不需要存在特别的GOP关系。当切换到新的流时,切换只不过需要到I-帧。
在图8中,流1和流2仅仅包括I-帧和P-帧,因此流的比特流顺序与显示顺序相同。流1和流2具有对齐的GOP。然而,流3是不同的(其I-帧未与流1和2的I-帧位于相同的帧上)。如图8所示允许例如从流2切换到流3,因为切换仅仅是到新的流的I-帧。
当编码系统产生具有B-帧的流时,为了干净地从一个流的帧N切换到另一个流的帧N+1,流在切换点处必须是对齐的封闭GOP。也就是说,I-帧必须出现在两个流中的同一点。在图9中,从流1切换到流2是允许的,但是切换到流3是不允许的,因为流3的GOP与其他流的GOP不对齐。
因此,除了提供允许直播编码系统彼此异步启动、同时维持输出帧的精确到帧、基于时间的关联的系统/方法之外,一些实施例还提供用于使这些输出流成为彼此对齐的GOP的系统/方法。
本发明的一些实施例提供用于产生横跨两个或更多个编码系统被同步的精确到帧的时间戳、并将该精确到帧的时间戳应用到多个输出流中的编码视频帧的系统/方法。一些实施例使用多个捕捉和编码系统来处理直播视频流,以产生多个编码视频资源,所述多个编码视频资源被使用不同的编码参数(比特率、图像尺寸等)进行编码,但是被以共同的精确到帧的时间戳编码,该精确到帧的时间戳从资源到资源是相同的。
一些实施例响应于与视频信号一起被提供的时间码产生共同时间戳。可与视频信号一起被提供的时间码的两个例子是VITC(竖直间距时间码,其嵌入在视频信号中)和LTC(线性时间码,其位于视频信号外部但与其同步)。其他形式的时间码也可以使用,只要它们是精确到帧的。除此之外,VITC和LTC时间码对于给定帧,还提供关于小时、分钟、秒和帧数的信息。
在“非下降(non-drop)”时间码中,时间码对每帧渐增一次。对于每秒整数个帧的视频速率,非下降时间码可精确地代表视频帧的时间。然而,很多视频编码格式不以每秒刚好整数个帧来编码帧。因此,经常使用另一种形式的时间码,也称作“下降(drop)”时间码。下降时间码不时地降低帧计数。例如,除了在第10分钟上外,下降时间码可以每分钟降低两个帧计数。这有助于解释非整数帧速率。然而,每个时间码仍不精确地代表每个给定帧的实际时间。本发明的一些实施例对此进行了解释并对下降时间码和非下降时间码两者都起作用。为了下面论述的目的,将使用LET时间码。然而,将理解到,VITC时间码或其他时间码可以在一些实施例中使用。
如图10所示,根据一些实施例的捕捉和编码系统100包括一个或多个捕捉和编码子系统110A、110B。每个捕捉和编码子系统110A、110B包括捕捉子系统112A、用于每个捕捉子系统的自适应同步子系统114A、114B、以及用于每个捕捉子系统的一个或多个编码子系统116A-1、116A-2、116B-1、116B-2。每个捕捉和编码子系统110A、110B可以例如使用可编程数字计算机来执行,所述可编程数字计算机包括存储器、处理器和用于接收视频信号和相关联的时间码的适当的通信接口。捕捉和编码子系统110A、110B产生的编码视频信号可以通过捕捉和编码子系统110A、110B输出,存储在存储器、或其他存储系统、或该两者中。尽管在图10中示出了两个捕捉子系统和相关联的自适应同步和编码子系统,但应理解到,根据一些实施例,可以设置不止两个捕捉子系统。另外,尽管对图10中的每个捕捉子系统示出了两个编码子系统,但应理解到,根据一些实施例,可以对每个捕捉子系统设置不止两个编码子系统。
每个捕捉和编码系统接收直播视频信号和时间码(LTC)两者。LTC可以是被同时地提供给捕捉和编码系统100中的每个捕捉子系统112A、112B的同步“室内时间(house time)”。
根据一些实施例,每个编码子系统116A-1、116A-2、116B-1、116B-2给基于LTC的每个编码帧分配共同帧时间戳,使得由每个编码子系统分配给帧的帧时间戳可以相同。
在一些实施例中,不同于提供LTC给捕捉或编码系统100,每个编码子系统可以基于同步的外部时钟信号(诸如原子钟、GPS系统、或者其他的同步时钟源提供的时钟信号)来产生共同的帧时间戳。
图11描绘了根据一些实施例的视频捕捉子系统112。一系列的直播视频帧被馈送给视频捕捉系统112。该系统还被提供诸如LTC信息的时间码信息。在某个时间点,捕捉系统112开始捕捉视频帧。第一个捕捉到的帧在此被称为帧1。其具有为0的捕捉时间戳并具有与其相关联的时间码。帧1的时间码在图11中示出为时间码A。然而,应当理解到,时间码可以是诸如SMPTE格式的标准时间码格式的数字码,其包括小时、分钟、秒和帧的字段。捕捉到的下一个帧是帧2。其同样具有与其相关联的时间码,并且其时间戳表示从时间0参照的其被捕捉时的时间。所示的时间戳是百纳秒单元(hundred-nano-second,HNS)形式的。
为了允许多个捕捉/编码系统具有同步的流,根据一些实施例的编码流中的任何给定帧的时间戳在所有流中都是相同的,与系统何时开始捕捉和编码无关。为了实现此,一些实施例使用提供给捕捉和编码系统的时间码和基时间码来计算要被编码的帧的时间戳。
根据一些实施例的用于产生编码帧时间戳的系统/方法示出在图12中。参照图12,当帧被捕捉时(方框210),其被捕捉子系统112和从LTC输入所获得的时间码分配捕捉时间戳。如果编码器仍未对视频帧进行编码(当系统首次开始捕捉帧时将是这样的情况),系统/方法首先计算从由基时间码表示的某个具体的较早基时间以来已经处于直播流中的帧的数量(帧计数)(方框215)。这里为示例性目的,具有在同一天上的为0:0:0:0的基时间码的基时间被假定(或者可以使用结合有日期信息的时间码),尽管使用其他基时间也是可能的。为了计算帧计数,首先利用来自LTC时间码的含有小时、分钟、秒和帧(除了其他数据之外)的信息计算从基时间的秒数。
总秒=小时*3600+分钟*60+秒                (1)
总分钟=总秒/60                           (2)
然后计算帧计数。首先,按照下式计算表达为整数帧每秒的帧速率:
(整数)帧速率=(整数)((双倍)帧速率+.5)    (3)
然后,帧计数简单地是帧速率与从基时间以来流逝的总秒数的乘积,再加上来自时间码的帧字段的帧数,如下:
帧计数=总秒数*整数帧速率+帧数           (4)
如果时间码不是下降帧时间码,则给定日内的帧计数精确地代表总帧数。然而,如果时间码是下降帧时间码,则帧计数被如下地调节,以解释下降帧时间码的周期性帧计数降低:
帧计数=帧计数-2*总分钟+2*(总分钟/10)    (5)
为了提供横跨多个编码系统被同步的GOP结构,在从捕捉子系统传递到编码子系统的第一帧上施加限制。这仅在需要GOP对齐时才是必需的。该限制为:
帧计数对GOP尺寸取模(Frame Count mod GOP size)必须等于0
这确保了传递到编码系统的第一帧是图像组的第一帧。
因此,在帧计数在方框215中计算之后,在方框217中进行检查,以查看是否必需横跨多个编码流对齐GOP。如果不必要,则操作继续到方框220。然而,如果需要GOP对齐,则进行检查,以通过将量(帧计数对GOP尺寸取模)与零比较来查看当前的帧是否在GOP的开始处。如果(帧计数对GOP尺寸取模)为零,则当前的帧位于图像组的开始处,并且操作前进到方框220。
然而,如果(帧计数对GOP尺寸取模)不为零(即,所述限制未被满足),则捕捉的帧被忽略,并且对下一个捕捉的帧重新计算帧计数。如果限制在第一捕捉帧上未被满足(帧计数对GOP尺寸取模=0)的,则当条件被满足时,捕捉时间戳将不为0。为了对此进行解释,满足(帧计数属性GOP尺寸=0)条件的第一帧的捕捉时间戳被存储为初始时间戳(方框220)。在该点处也计算基时间戳(方框225)。
基时间戳=帧计数*10000*毫秒每帧的#        (6)
也就是说,基于的第一帧(对于其,帧计数对GOP尺寸取模=0)的帧计数以HNS单元建立基时间戳。由于基时间戳是基于从基本时间以来的总帧计数来计算的,而捕捉和编码系统可能已经在基时间之后的时间点启动(或者重启),所以基时间戳可能不同于初始时间戳。然而,基时间戳、捕捉时间戳以及初始时间戳可以都以HNS单元来表达。
最后的步骤是产生编码帧时间戳(方框230),对任何给定的帧,该编码帧时间戳在所有编码系统之间是相同的。这是从当前捕捉时间戳、初始捕捉时间戳以及基时间戳以如下方式计算的:
编码帧时间戳=基本时间戳+(捕捉时间戳-初始时间戳)  (7)
也就是说,用来对帧进行编码的编码帧时间戳等于基时间戳加上捕捉时间戳与初始时间戳之间的偏差。和基时间戳相似,捕捉时间戳和初始时间戳、编码帧时间戳可以以HNS单元的形式来表达。
示例性实施例示出在图13A和13B中。如此处所示,定义了具有基时间码=(0:0:0:0)的基时间。在某一稍后的时间点,捕捉系统开始从视频信号捕捉帧。捕捉系统接收参照基时间的时间码,如LTC或VITC时间码。当系统捕捉到第一帧时,其计算帧计数FCn,FCn表示从基时间以来已经位于直播视频流中的帧的总数(见图12,方框215)。然后,第一个捕捉到的帧被分配帧计数FCn+0。下一个帧被分配FCn+1的帧计数,等等。在使用中每个帧被分配对特定的捕捉系统特有的唯一时间戳。因此,第一帧被捕捉和编码子系统分配CTS0的捕捉时间戳,第二帧被捕捉和编码子系统分配CTS1的捕捉时间戳,等等。系统的捕捉时间戳可以根据系统何时开始接收帧。因此,捕捉时间戳可以在子系统与子系统之间不同。
假定需要GOP对齐,则系统检查每个捕捉帧的帧计数,以确定下一个帧是否与其他捕捉和编码子系统编码的帧GOP对齐(即,查看FC对GOP取模是否等于零)。在图13A-B所示的示例中,该条件直到被分配FCn+5的第六个捕捉到的帧才被满足。在该点处,帧的捕捉时间戳CTS5被作为初始时间戳。另外,基时间戳被按照FCn+5的函数如下进行计算:
基本时间戳=FCn+5*10000*毫秒每帧的#            (8)
因此,基于从基时间直到初始时间戳被存储时已经在直播视频流中的帧的总数来计算基时间戳。
然后,用于初始帧(具有帧计数FCn-5)的编码帧时间戳根据的等式(7)计算如下:
编码帧时间戳=基时间戳+(CTS5-CTS5)        (9)
也就是说,用于初始帧的编码帧时间戳仅仅是基时间戳。
参照图13B,用于具有帧计数FCn+8的帧的编码帧时间戳根据等式(7)计算如下:
编码帧时间戳=基时间戳+(CTS8-CTS5)        (10)
利用基时间戳、初始时间戳以及捕捉帧的捕捉时间戳,以相似的方式更新每个相继的捕捉帧的编码帧时间戳。
在具有两个捕捉系统并使用下降时间码的NTSC视频处理系统中使用样本数的示例如下:
NTSC视频:30/1.001帧/秒
整数帧速率=30
使用的下降时间码
第一系统开始捕捉:
第一捕捉帧时间码(下降帧):01:25:32:07
总秒=1*3600+25*60+32=5132
总分钟=5132/60=85
帧计数=5132*30+7=153967
对下降时间码调节的帧计数=153967-2*85+2*(85/10)=153813
基时间戳=153813*10000*1000*1.001/30=51322271000
第二系统晚于第一系统开始捕捉944帧:
第一捕捉帧时间码(下降帧):01:26:03:23
总秒=5136
总分钟=86
帧计数=154913
对下降时间码调节的帧计数=154757
基本时间戳=154757*10000*1000*1.001/30=51637252333
第二系统的第一帧具有为51637252333的编码帧时间戳。第一系统的第944帧将具有编码时间戳:51322271000+944*10000*1000*1.001/30=51637252333。这示出了对应于同一源帧的两种流的帧具有相同的时间戳。因此,即使它们彼此异步启动,两个捕捉流具有精确到帧的同步时间戳。另外,输出编码视频流可以GOP对齐。因此,从一个编码流切换到另一个编码流以适应带宽的改变变得更容易。
根据本发明一些实施例的系统/方法可以以计算高效的方式产生编码帧时间戳,因为可以仅仅使用捕捉时间戳、初始时间戳和基时间戳的加/减对每个帧计算编码帧时间戳。初始时间戳和基时间戳在进行编码的开始处被产生,并且可以存储在例如所紧密耦接的如缓存等存储器中,以便快速存取。因此,不必在每次捕捉新的帧时,基于基时间码计算考虑了下降帧和非整数帧速率的时间戳。见新的图12.
另外,图12所示的系统/方法可以仅仅需要从捕捉开始直到GOP对齐点的时间码取样。从该点开始,系统/方法不再需要对时间码取样。这在源时间码可能具有周期的不稳定或与源视频的不连续(例如,如果时间码的源失败)的情况下可能是有益的。在时间码被确保总是可用并与源视频完美同步的情况下,帧的编码时间戳可以作为帧的时间码的函数计算,如在图14所示的系统/方法中示出的那样,见下文。
根据进一步的实施例的用于产生编码帧时间戳的系统/方法示出在图14中。参照图14,当视频的帧被捕捉时(方框310),其被分配时间码,在该图中,该时间码从LTC输入获得。系统/方法首先计算由基时间码表示的自从某一具体的较早基时间以来已经位于直播流中的帧的数量(帧计数)。为了示例的目的,这里假定具有同一天上的为0:0:0:0的时间码的基时间,尽管使用其他基本时间也是可以的。为了计算帧计数,首先利用来自LTC时间码的含有小时、分钟、秒和帧(除了其他数据之外,诸如日期)的信息计算自基时间的秒数。
总秒=小时*3600+分钟*60+秒                (1)
总分钟=总秒/60                           (2)
然后如下计算帧计数。首先,按照下式计算表达为整数帧每秒的帧速率:
(整数)帧速率=(整数)((双倍)帧速率+.5)     (3)
然后,帧计数简单地是帧速率与从基时间以来流逝的总秒数的乘积,加上来自时间码的帧字段的帧数,如下:
帧计数=总秒*整数帧速率+帧                (4)
如果时间码不是下降帧时间码,则给定日内的帧计数精确地代表总帧数。然而,如果时间码是下降帧时间码,则帧计数如下地被调节,以解释下降帧时间码的周期性帧计数降低:
帧计数=帧计数-2*总分钟+2*(总分钟/10)     (5)
在方框315中,系统/方法确定编码是否已经在发生。如果已经在发生,则系统/方法前进到在方框320中计算编码帧时间戳。然而,如果编码仍未开始,则系统/方法前进到方框317以确定是否需要GOP对齐。
为了横跨多个编码系统提供同步的GOP结构,在从捕捉子系统传递到编码子系统的第一帧上施加限制。这仅在需要GOP对齐的情况下才是必需的。该限制为:
帧计数对GOP尺寸取模必须等于0
这确保了被传递到编码系统的第一帧是图像组的第一帧。
因此,在帧计数在方框322中被计算之后,如果没有已经在编码,则进行检查以查看是否必需在多个编码流之间对齐GOP。如果不是必需,则操作继续到方框320。然而,如果需要GOP对齐,则进行检查,以通过将量(帧计数对GOP尺寸取模)与零比较来查看当前的帧是否在GOP的开始处(方框319)。如果(帧计数对GOP尺寸取模)为零,则当前的帧是在GOP的开始处,并且操作前进到方框320。
然而,如果(帧计数对GOP尺寸取模)不为零(即,所述限制未被满足),则所捕捉的帧被忽略,并且操作返回到在其中新的帧被捕捉且对下一个捕捉到的帧重新计算帧计数的方框310。
在方框320,编码可以在当前帧上开始。
最后的步骤是产生编码帧时间戳(方框330),该编码帧时间戳对于任何给定的帧,在所有编码系统之间将是相同的。这是从当前帧的帧计数计算的并且在此以HNS单元产生。
时间戳=帧计数*10000*毫秒每帧的#
在附图和说明书中已经公开了本发明的典型实施例,并且尽管使用了特定的术语,但它们仅被以一般和描述性的意义使用且不用于限制的目的,本发明的范围由下面的权利要求阐释。

Claims (24)

1.一种在包括多个视频捕捉和编码子系统的视频编码系统中对直播视频信号进行编码的方法,所述方法包括:
提供直播视频信号和相关联的时间码信号给所述多个视频捕捉和编码子系统;
在所述直播视频信号的第一帧处在所述多个视频捕捉和编码子系统的第一个中开始视频捕捉和编码;
在晚于第一帧的所述直播视频信号的第二帧处在所述多个视频捕捉和编码子系统的第二个中开始视频捕捉和编码;
在所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统两者中产生用于第二帧的编码帧时间戳,所述编码帧时间戳横跨所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统被同步;以及
在所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统两者中使所述编码帧时间戳与第二帧相关联。
2.如权利要求1所述的方法,其中,在所述第二视频捕捉和编码子系统中产生编码帧时间戳包括:
接收与所述直播视频信号的第二帧相关联的时间码;
响应于所述时间码产生用于第二帧的帧计数;
响应于所述帧计数产生基时间戳;
产生用于第二帧的捕捉时间戳;以及
将用于第二帧的捕捉时间戳存储为初始捕捉时间戳。
3.如权利要求2所述的方法,还包括:
产生用于第三帧的捕捉时间戳,所述第三帧由所述第二视频捕捉和编码子系统在所述第二帧之后接收;
响应于第三帧的捕捉时间戳、所述初始时间戳和所述基时间戳产生用于第三帧的编码帧时间戳;以及
使用用于第三帧的编码帧时间戳在所述第二视频捕捉和编码子系统中对第三帧进行编码。
4.如权利要求3所述的方法,其中,用于第三帧的编码帧时间戳根据下式产生:
编码帧时间戳=基时间戳+(捕捉时间戳-初始时间戳)
5.如权利要求2所述的方法,还包括:
确定第二帧是否是响应于所述直播视频信号与由所述第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧;以及
响应于确定出该第二帧不是与由所述第一视频捕捉和编码子系统产生的编码视频信号的该组图像对齐的帧,丢弃该第二帧并接收所述直播视频信号中的后续帧。
6.如权利要求1所述的方法,其中,所述第一视频捕捉和编码子系统与所述第二视频捕捉和编码子系统配置成利用不同的编码参数对所述直播视频信号进行编码。
7.如权利要求2所述的方法,其中,产生用于第二帧的帧计数可以包括响应于与第二帧相关联的时间码、基时间码以及视频帧速率产生所述帧计数。
8.如权利要求7所述的方法,还包括调节帧计数以解释下落时间码的使用。
9.如权利要求8所述的方法,其中,调节帧计数包括根据下式调节帧计数:
帧计数=帧计数-2*总分钟+2*(总分钟/10)
其中,总分钟表示从所述基时间码到与第二帧相关联的时间码的总分钟数。
10.如权利要求2所述的方法,其中,与第二帧相关联的时间码包括线性时间码(LTC)。
11.一种视频编码系统,包括:
第一视频捕捉和编码子系统和第二视频捕捉和编码子系统,其中所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统中的每一个均配置成接收直播视频信号和相关联的时间码信号,并且包括捕捉子系统、自适应的同步子系统、以及至少一个编码子系统;
其中,所述第一视频捕捉和编码子系统配置成在所述直播视频信号的第一帧处开始视频捕捉和编码,并且所述第二视频捕捉和编码子系统配置成在比第一帧晚的所述直播视频信号的第二帧处开始视频捕捉和编码;并且
其中,所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统配置成在所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统中产生横跨所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统被同步的用于第二帧的相应编码帧时间戳,并且利用所述编码帧时间戳对第二帧进行编码。
12.如权利要求11所述的视频编码系统,其中,所述第二视频捕捉和编码子系统的所述自适应同步子系统配置成接收与所述直播视频信号的第二帧相关联的时间码、响应于所述时间码产生用于第二帧的帧计数、响应于所述帧计数产生基时间戳、产生用于第二帧的捕捉时间戳、以及将用于第二帧的捕捉时间戳存储作为初始捕捉时间戳。
13.如权利要求12所述的视频编码系统,其中,所述第二视频捕捉和编码子系统的所述自适应同步子系统还被配置成产生用于由所述第二视频捕捉和编码子系统在第二帧之后所接收的第三帧的捕捉时间戳,并且响应于第三帧的捕捉时间戳、所述初始时间戳和所述基时间戳产生用于第三帧的编码帧时间戳,并且
其中,所述第二视频捕捉和编码子系统的所述编码子系统配置成利用用于第三帧的编码帧时间戳对第三帧进行编码。
14.如权利要求13所述的视频编码系统,其中,所述第二视频捕捉和编码子系统的所述自适应同步子系统配置成根据下式产生用于第三帧的编码帧时间戳:
编码帧时间戳=基时间戳+(捕捉时间戳-初始时间戳)
15.如权利要求12所述的视频编码系统,所述第二视频捕捉和编码子系统的所述自适应同步子系统进一步配置成确定第二帧是否是响应于所述直播视频信号与由所述第一视频捕捉和编码子系统产生的编码视频信号的一组图像对齐的帧,以及响应于确定出该第二帧不是与由所述第一视频捕捉和编码子系统产生的编码视频信号的该组图像对齐的帧,丢弃该第二帧并接收所述直播视频信号中的后续帧。
16.如权利要求11所述的视频编码系统,其中,所述第一视频捕捉和编码子系统和所述第二视频捕捉和编码子系统配置成利用不同的编码参数对所述直播视频信号进行编码。
17.如权利要求12所述的视频编码系统,其中,所述第二视频捕捉和编码子系统的所述自适应同步子系统配置成响应于与第二帧相关联的时间码、基时间码以及视频帧速率产生用于第二帧的帧计数。
18.如权利要求17所述的视频编码系统,所述第二视频捕捉和编码子系统的所述自适应同步子系统进一步配置成调节所述帧计数以解释下落时间码的使用。
19.如权利要求18所述的视频编码系统,其中,所述第二视频捕捉和编码子系统的所述自适应同步子系统进一步配置成调节所述帧计数,调节所述帧计数包括根据下式调节帧计数:
帧计数=帧计数-2*总分钟+2*(总分钟/10)
其中,总分钟表示从所述基时间码到与第二帧相关联的时间码的总分钟数。
20.如权利要求12所述的视频编码系统,其中,与第二帧相关联的时间码可以包括线性时间码(LTC)。
21.一种在包括多个视频捕捉和编码子系统的视频编码系统中对直播视频信号进行编码的方法,包括:
提供直播视频信号和相关联的时间码信号给所述多个视频捕捉和编码子系统;
在所述直播视频信号的第一帧处在所述多个视频捕捉和编码子系统的第一个中开始视频捕捉和编码;
在晚于第一帧的所述直播视频信号的第二帧处在所述多个视频捕捉和编码子系统的第二个中开始视频捕捉和编码;
在所述第二视频捕捉和编码子系统中确定所述直播视频信号的第二帧是否为正由所述第一视频捕捉和编码子系统编码的一组图像的第一帧;以及
响应于确定出所述直播视频信号的第二帧不是正由所述第一视频捕捉和编码子系统编码的一组图像的第一帧,丢弃所述直播视频信号的第二帧并接收所述直播视频信号的第三帧。
22.如权利要求21所述的方法,还包括:
响应于确定出所述直播视频信号的第二帧是正由所述第一视频捕捉和编码子系统编码的该组图像的第一帧,在所述第二视频捕捉和编码子系统中产生用于第二帧的编码帧时间戳;以及
在所述第二视频捕捉和编码子系统中将所述编码帧时间戳与第二帧相关联。
23.如权利要求21所述的方法,其中,产生用于所述直播视频信号的第二帧的编码帧时间戳包括产生与所述直播视频信号的第二帧相关联的帧计数以及响应于所述帧计数产生所述编码帧时间戳。
24.如权利要求21所述的方法,其中,确定所述直播视频信号的第二帧是否为正由所述第一视频捕捉和编码子系统编码的一组图像(GOP)的第一帧包括产生与所述直播视频信号的第二帧相关联的帧计数以及在所述帧计数和GOP尺寸上执行模运算。
CN200980153827.3A 2008-10-28 2009-10-27 用于直播视频编码的流同步 Active CN102439989B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10894608P 2008-10-28 2008-10-28
US61/108946 2008-10-28
PCT/US2009/062206 WO2010062596A1 (en) 2008-10-28 2009-10-27 Stream synchronization for live video encoding

Publications (2)

Publication Number Publication Date
CN102439989A true CN102439989A (zh) 2012-05-02
CN102439989B CN102439989B (zh) 2014-12-10

Family

ID=41557516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980153827.3A Active CN102439989B (zh) 2008-10-28 2009-10-27 用于直播视频编码的流同步

Country Status (4)

Country Link
US (1) US9060201B2 (zh)
EP (1) EP2351372B1 (zh)
CN (1) CN102439989B (zh)
WO (1) WO2010062596A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106416262A (zh) * 2014-05-09 2017-02-15 思科技术公司 辅助多媒体流的同步的方法和系统
CN109995963A (zh) * 2019-05-17 2019-07-09 张剑飞 一种无线同步时码方法
CN110213617A (zh) * 2019-04-01 2019-09-06 腾讯科技(深圳)有限公司 视频流转码迁移方法、装置和系统
CN110493627A (zh) * 2018-05-15 2019-11-22 优酷网络技术(北京)有限公司 多媒体内容同步方法及装置
CN111181569A (zh) * 2019-12-31 2020-05-19 山东信通电子股份有限公司 一种时序数据的压缩方法、装置以及设备
WO2022082457A1 (zh) * 2020-10-20 2022-04-28 深圳市大疆创新科技有限公司 视频处理方法、装置和设备、无人机、图传系统

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9043829B2 (en) * 2009-10-07 2015-05-26 At&T Intellectual Property I, Lp Synchronization of user interactive events with on-screen events during playback of multimedia stream
US9596504B2 (en) * 2010-07-23 2017-03-14 Unify Gmbh & Co. Kg Method for encoding of a video stream
WO2013089769A1 (en) * 2011-12-16 2013-06-20 Intel Corporation Collaborative cross-platform video capture
US8867896B2 (en) 2012-02-03 2014-10-21 Vispx, Inc. Video frame marking
US20140104493A1 (en) * 2012-10-11 2014-04-17 Tangome, Inc. Proactive video frame dropping for hardware and network variance
US9813325B2 (en) 2012-12-27 2017-11-07 Comcast Cable Communications, Llc Information stream management
US9294530B2 (en) 2013-05-24 2016-03-22 Cisco Technology, Inc. Producing equivalent content across encapsulators in a network environment
US10423481B2 (en) 2014-03-14 2019-09-24 Cisco Technology, Inc. Reconciling redundant copies of media content
US10264043B2 (en) * 2014-04-23 2019-04-16 Ericsson Ab Outage notification with client control modification in an ABR streaming network
JP6239472B2 (ja) * 2014-09-19 2017-11-29 株式会社東芝 エンコード装置、デコード装置、ストリーミングシステム、および、ストリーミング方法
CA2912461C (en) 2014-11-17 2020-11-24 Skotel Corporation Method and apparatus for deterministic date and time alignment of media signals and generation of time-related labels
US10277928B1 (en) * 2015-10-06 2019-04-30 Amazon Technologies, Inc. Dynamic manifests for media content playback
US10148989B2 (en) * 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10652625B1 (en) * 2016-06-27 2020-05-12 Amazon Technologies, Inc. Synchronization of multiple encoders for streaming content
US10812558B1 (en) 2016-06-27 2020-10-20 Amazon Technologies, Inc. Controller to synchronize encoding of streaming content
US10652292B1 (en) * 2016-06-28 2020-05-12 Amazon Technologies, Inc. Synchronization of multiple encoders for streaming content
US10771855B1 (en) 2017-04-10 2020-09-08 Amazon Technologies, Inc. Deep characterization of content playback systems
US10522190B2 (en) * 2017-05-09 2019-12-31 Echo360, Inc. Methods and apparatus for ordered serial synchronization of multimedia streams upon sensor changes
US11736687B2 (en) * 2017-09-26 2023-08-22 Qualcomm Incorporated Adaptive GOP structure with future reference frame in random access configuration for video coding
US10848538B2 (en) 2017-11-28 2020-11-24 Cisco Technology, Inc. Synchronized source selection for adaptive bitrate (ABR) encoders
US10820066B2 (en) 2018-06-20 2020-10-27 Cisco Technology, Inc. Reconciling ABR segments across redundant sites
US11750865B1 (en) 2022-04-08 2023-09-05 CodeShop, B.V. Method and system for synchronization of adaptive streaming transcoder and packager outputs
US11962825B1 (en) 2022-09-27 2024-04-16 Amazon Technologies, Inc. Content adjustment system for reduced latency
US11695815B1 (en) 2022-12-06 2023-07-04 CodeShop, B.V. Method and system for redundant media presentation generation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000076222A1 (en) * 1999-06-09 2000-12-14 Sarnoff Corporation Flow control, latency control and bitrate conversions in a timing correction and frame synchronization apparatus
US20020035732A1 (en) * 2000-09-15 2002-03-21 International Business Machines Corporation System and method of timecode repair and synchronization in MPEG streams
US20020116361A1 (en) * 2000-08-15 2002-08-22 Sullivan Gary J. Methods, systems and data structures for timecoding media samples

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2550856B2 (ja) * 1993-05-17 1996-11-06 日本電気株式会社 動画像符号化前処理装置
DE69719828T2 (de) * 1996-07-05 2003-12-24 Matsushita Electric Ind Co Ltd Verfahren zum Anzeigezeitstempeln und zur Synchronisation mehrerer Videoobjektebenen
US6360234B2 (en) * 1997-08-14 2002-03-19 Virage, Inc. Video cataloger system with synchronized encoders
US6738427B2 (en) * 2000-09-15 2004-05-18 International Business Machines Corporation System and method of processing MPEG streams for timecode packet insertion
US6870887B2 (en) * 2001-04-09 2005-03-22 International Business Machines Corporation Method and system for synchronization between different content encoding formats
US7280738B2 (en) * 2001-04-09 2007-10-09 International Business Machines Corporation Method and system for specifying a selection of content segments stored in different formats
SE0201008D0 (sv) 2002-04-03 2002-04-03 Teracom Ab A method and a system for synchronising digital data streams
EP1657835A4 (en) * 2003-10-30 2008-12-10 Panasonic Corp MOBILEND DEVICE ORIENTED TRANSMISSION PROCESS AND DEVICE
US7743161B2 (en) * 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
EP2087702A1 (en) 2006-11-27 2009-08-12 NDS Limited Transport stream migration method and system
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000076222A1 (en) * 1999-06-09 2000-12-14 Sarnoff Corporation Flow control, latency control and bitrate conversions in a timing correction and frame synchronization apparatus
US20020116361A1 (en) * 2000-08-15 2002-08-22 Sullivan Gary J. Methods, systems and data structures for timecoding media samples
US20020035732A1 (en) * 2000-09-15 2002-03-21 International Business Machines Corporation System and method of timecode repair and synchronization in MPEG streams

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106416262A (zh) * 2014-05-09 2017-02-15 思科技术公司 辅助多媒体流的同步的方法和系统
CN106416262B (zh) * 2014-05-09 2019-07-05 思科技术公司 辅助多媒体流的同步的方法和系统
CN110493627A (zh) * 2018-05-15 2019-11-22 优酷网络技术(北京)有限公司 多媒体内容同步方法及装置
CN110493627B (zh) * 2018-05-15 2022-06-14 阿里巴巴(中国)有限公司 多媒体内容同步方法及装置
CN110213617A (zh) * 2019-04-01 2019-09-06 腾讯科技(深圳)有限公司 视频流转码迁移方法、装置和系统
CN109995963A (zh) * 2019-05-17 2019-07-09 张剑飞 一种无线同步时码方法
CN111181569A (zh) * 2019-12-31 2020-05-19 山东信通电子股份有限公司 一种时序数据的压缩方法、装置以及设备
WO2022082457A1 (zh) * 2020-10-20 2022-04-28 深圳市大疆创新科技有限公司 视频处理方法、装置和设备、无人机、图传系统

Also Published As

Publication number Publication date
US20110235703A1 (en) 2011-09-29
EP2351372B1 (en) 2020-08-05
WO2010062596A1 (en) 2010-06-03
EP2351372A1 (en) 2011-08-03
CN102439989B (zh) 2014-12-10
US9060201B2 (en) 2015-06-16

Similar Documents

Publication Publication Date Title
CN102439989B (zh) 用于直播视频编码的流同步
CN109792545B (zh) 从服务器向客户端装置传送视频内容的方法
JP6928038B2 (ja) ライブビデオエンコーディングおよびストリーミングにおけるフレーム複写およびフレーム拡張のためのシステムおよび方法
CN108293145B (zh) 视频分发同步
CN107615756B (zh) 一种用于实现快速平滑视点切换的视频服务器、方法及视频系统
JP5086285B2 (ja) 映像配信システム,映像配信装置,及び同期補正処理装置
CN101518082B (zh) 用于数字视频的快速频道转换的方法和装置
US7298741B2 (en) Robust MPEG-2 multiplexing system and method using an adjustable time stamp
EP2409475B1 (en) Delivering cacheable streaming media presentations
CN107409234A (zh) 基于lct利用dash格式的基于文件格式的流式传输
CN110248204A (zh) 一种直播缓存的处理方法、装置、设备和存储介质
CN104969560A (zh) 确定对于网络流式传输可用的媒体数据
CN109089130A (zh) 一种调整直播视频的时间戳的方法和装置
CN109905730A (zh) 用于经由http的动态自适应流式传输(dash)的实况定时方法
CN102752669A (zh) 多通道实时流媒体文件的传送处理方法与系统、接收装置
KR20120101710A (ko) 코덱이 적용된 프레임 크기로의 오디오 분할
JP2014529970A (ja) 適応httpストリーミングのための表示の改善された切り替えを提供する切替シグナリング方法
EP2866451A1 (en) Method and apparatus for IP video signal synchronization
US10148722B2 (en) Methods and nodes for synchronized streaming of a first and a second data stream
US9282360B2 (en) System and method for maintaining integrity of audio data in a multiplexed audio/video stream over a low-latency network connection
KR20180032917A (ko) 클라이언트 장치 및 그 로컬 클럭 스큐 보정 방법
CN112805940A (zh) 传输流自动切换
CN105916011A (zh) 视频实时播放方法及装置
US10904588B1 (en) Stitching content streams together
WO2011123821A1 (en) Real-time or near real-time streaming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: American California

Applicant after: Cisco Tech Ind.

Address before: American California

Applicant before: Cisco Technology, Inc.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: SYSCO TECHNOLOGY CORP. TO: CISCO TECH IND.

C14 Grant of patent or utility model
GR01 Patent grant