CN103843352A - 用于在编码的比特流之间动态切换的技术 - Google Patents

用于在编码的比特流之间动态切换的技术 Download PDF

Info

Publication number
CN103843352A
CN103843352A CN201280042391.2A CN201280042391A CN103843352A CN 103843352 A CN103843352 A CN 103843352A CN 201280042391 A CN201280042391 A CN 201280042391A CN 103843352 A CN103843352 A CN 103843352A
Authority
CN
China
Prior art keywords
frame
video flowing
video
time point
group
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.)
Pending
Application number
CN201280042391.2A
Other languages
English (en)
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN103843352A publication Critical patent/CN103843352A/zh
Pending legal-status Critical Current

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/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/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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available

Landscapes

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

Abstract

用于在编码的比特流中动态切换的技术被描述。一种装置可以包括切换构件,其操作来确定从广播第一视频流切换至广播第二视频流的时间点,所述第一视频流是视频源以第一质量水平的第一编码以及所述第二视频流是所述视频源以第二质量水平的第二编码。其它实施例被描述并且要求保护。

Description

用于在编码的比特流之间动态切换的技术
背景技术
随着流式传输(streaming)的视频的使用已经增加,确保数字传送的视频数据的可靠递送已变得日益重要。诸如事件的实况广播之类的一些应用需要使用流式传输的视频。诸如点播娱乐(on-demand entertainment)之类的其它应用可能因为及时性而受益于流式传输而不是下载的使用,流式传输的视频的重放能够以所述及时性开始。在一些应用中,单个视频源可以被编码成两个或更多个质量水平,其中不同的质量水平要求不同的带宽量或处理能力来接收和解码。在这些应用中,接收流的设备由于可用处理能力或可用带宽的改变可以被从一个编码切换至另一编码。然而,预测编码的流式传输的视频取决于用于解码的参考,其在用户从一个编码切换至另一编码的条件下则可能引起预测误差。这创建了对于视频流式传输的需求,其在没有或有减少的预测误差的情况下能够动态地从一个流切换至另一流。相对于这些和其它考虑事项,当前的改进是需要的。
发明内容
下文呈现了简化的发明内容以便提供对本文中所描述的一些新颖实施例的基本理解。本发明内容不是广泛综述,并且它不旨在识别主要/关键元件或者描绘其范围。其唯一目的是以简化的形式呈现一些概念作为以后被呈现的更详细描述的前奏。
各种实施例一般地针对用于在编码的比特流中动态切换的技术。一些实施例特别针对用于确定从广播第一视频流切换至广播第二视频流的时间点(timepoint)的技术。在一个实施例中,例如,装置可以包括操作来确定从广播第一视频流切换至广播第二视频流的时间点的切换构件。其它实施例被描述并且要求保护。
为了实现前面的和相关目的,特定的说明性方面在本文中结合以下描述和附图被描述。这些方面指示本文中所公开的原理能够以其被实践的各种方式,并且所有方面及其等同物旨在为在所要求保护的主题的范围内。其它优点和新颖特征当被与附图相结合地考虑时从以下具体实施方式将变得明显。
附图说明
图1说明了针对具有动态切换的视频广播的系统的实施例。
图2说明了针对图1的系统的逻辑流程的实施例。
图3说明了针对图1的系统的集中式系统的实施例。
图4说明了针对图1的系统的分布式系统的实施例。
图5说明了计算架构的实施例。
图6说明了通信架构的实施例。
具体实施方式
各种实施例针对用于在编码的比特流中动态切换的技术。流式传输的视频是其中视频流的重放在完整的流已下载之前是可能的视频流的传输和接收。在一些实施例中,诸如一旦缓冲器已足够地填充有缓冲帧,流式传输的视频就可以允许视频流几乎立刻地重放。
流式传输的视频可以适于许多不同的应用。一些应用可以流式传输已经编码的视频,而其它应用可以在基本上与传输相同的时间流式传输正被编码的视频。视频点播服务利用流式传输的视频以便更直接地满足对特定视频的用户需求。诸如如体育、娱乐或新闻这样的实况事件的流式传输之类的实况视频应用可以使用流式传输的视频以便满足对事件的现场直播的需求。诸如群会议或一对一视频聊天之类的会议应用可以使用流式传输的视频,以便允许会议或聊天的成员之间的实况的自然的来回(back-and-forth)。
因为流式传输的视频可以随着它被接收而被播放,所以它被传送网络递送包括流式传输的视频的比特流的能力限制。因此,视频流的质量可以被视频广播装置与视频接收机之间的可用带宽限制。比特流可以指的是比特的序列,所述比特包括视频的编码。视频流可以处于特定的质量水平。质量水平可以指的是视频流的视觉质量的任何量度。在各种实施例中,质量水平可以指的是视频流的比特率、用来对视频流进行编码的格式、视频流中失真的水平或者这些或其它质量因素的任何组合。
在一些实施例中,视频源可以被编码成多个视频流。这些不同的视频流可以具有不同的质量水平并且可以使用不同的带宽量以用于传输。因为设备或网络局限性或用户偏好,不同质量水平的视频流可以被传送到不同的设备,或者特定设备可以要求或者请求特定质量水平的流,或者可以要求或者请求至多规定质量水平的流。一些接收设备在可供它们接收视频流的带宽的量上可能是有限的,并且因此在它们能够接收的视频流的质量上可能是有限的。一些接收设备在可供它们对视频流进行解码的处理资源的量上可能是有限的,并且因此在它们能够接收的视频流的质量上可能是有限的。对接收的视频质量的其它局限性也可能存在。虽然对于一些设备和一些网络配置来说,这些局限性可能是恒定的,使得适当质量的流可以在传输之前被确定,但是对于一些设备和网络配置来说,这些局限性可能是可变的或者可能难以预测,使得动态地调整接收到的流的质量水平的能力是所希望的。
在诸如用于视频压缩的H.264标准(替换地被称为MPEG-4部分10或高级视频编码(AVC)标准)之类的用于视频编码的各种标准中,不同类型的帧编码可以被使用。在视频编码中,帧内(intra)帧可以指的是仅使用对属于当前帧的视频数据的预测参考以及各种常数和通知编码方案的变量而不用参考任何其它帧的视频数据被编码的视频数据的帧。编码为帧内帧的帧可以说已被在帧内模式下操作的编码器使用帧内预测编码了。帧间(inter)帧可以指的是附加于各种常数和通知编码方案的变量、参考属于除当前帧以外的帧的视频数据而被编码的视频数据的帧。编码为帧间帧的帧可以说已被在帧间模式下操作的编码器使用帧间预测编码了。特别地,在H.264标准中,存在使用帧内预测编码的I-帧、参考至多一个其它帧使用帧间预测编码的P-帧以及参考至多两个其它帧的B-帧。因此,在H.264标准中,I-帧在帧内模式下被编码,而P-帧和B-帧在帧间模式下被编码。
在一些实施例中,流可以使用平面预测结构被编码。在一些实施例中,流可以包括帧的序列。在平面预测结构中,帧的序列被编码使得每个帧仅参考或者取决于序列中的紧接的先前帧。为了说明,如果P-帧的序列是{P1, P2, P3, P4, P5,..},则每个帧Pn的解码至多取决于帧Pn-1的已解码数据。如上面所描述的那样,在任何编码结构中,P-帧取决于序列中的至多一个先前的帧。在平面预测结构中,帧仅取决于序列中的紧接的先前帧,而不取决于除紧接的先前帧之外的任何帧。在各种实施例中,帧取决于的帧可以被称为父帧。当前帧的父帧是当前帧取决于的帧;P-帧的编码参考至多一个其它帧的视频数据,所述帧是父帧。在各种实施例中,当前帧的祖先是当前帧的父帧和该父帧的祖先。在平面预测结构中,给定帧的祖先是视频流中整个前面的帧的序列。
在一些实施例中,流可以使用层次预测结构被编码。在层次预测结构中,帧的序列被编码使得每个帧取决于序列中的紧接的先前帧或序列中的紧接先前帧的祖先。层次预测结构可以由两种类型的帧组成:初级帧和次级帧。初级帧可以是作为帧的序列中的第一帧的那些帧或作为帧的序列中取决于特定初级帧的最后一帧的帧。次级帧可以是所有其它帧,并且因此可以是取决于另一次级帧或者取决于初级帧但不是序列中取决于该初级帧的最后一帧的那些帧。
在一些实施例中,层次预测结构可以被组织使得初级帧以规则间隔发生。这个间隔可以用包括间隔的帧的数目来测量。例如,如果每三帧是初级帧,则间隔尺寸将是三。每个间隔可以定义一群帧。一群帧可以包括一组帧(以初级帧开始的帧的序列的一部分)。一群帧可以具有等于该群中的帧的数目的尺寸,等于上面所描述的间隔的尺寸。在一些实施例中,一群帧可以包括后面是次级帧的序列的初级帧,所述次级帧全部取决于初级帧或该群帧的另一成员。在各种实施例中,视频流可以使用帧群被编码,其中每一群帧具有相同的尺寸。在各种实施例中,相同视频源的两个不同的编码可以对于它们的对应帧群使用两个不同的尺寸。
在一些实施例中,视频广播装置也许能动态地调整它正在广播的流以便变化该流使用的带宽的量。在各种实施例中,这个动态地调整的能力可以通过使用利用规则尺寸的帧群的层次预测结构而被准许。如上面所描述的那样,在层次预测结构中,一些次级帧将没有取决于它们的帧。没有帧取决于的帧可以被称为无子女帧。在各种实施例中,为了节省传输带宽,视频广播系统可以丢弃(即从广播抑制)一个或多个无子女帧。这可以降低传输的所感知到的视觉质量,因为有效的帧速率将被减低。然而,因为没有帧取决于这些无子女帧,所以预测解码可以无阻地进行而不管所丢弃的帧如何。进一步地,如果没有其它帧取决于父帧,则丢弃一个无子女帧可以在父帧中创建伪无子女帧。伪无子女帧可以是其中取决于该帧的所有帧(若有的话)已被丢弃的帧。在各种实施例中,一群帧可以包括正好一个初级帧,该群的剩余部分由次级帧组成。在这种情况下,该群帧可以通过丢弃无子女或伪无子女帧而被减少直到仅一个帧(初级帧)保持被广播为止,全部次级帧被丢弃。应了解,如果一群帧包括正好一个初级帧,则在一与该群的尺寸之间的任何数目的帧可以被广播同时仍然允许所有广播帧的适当预测。因此,相当的灵活性可以通过使用层次预测结构来实现。
如先前陈述的那样,在一些实施例中,视频源可以被编码成多个视频流。这些不同的视频流可以具有不同的质量水平并且可以使用不同的带宽量以用于传输。在各种实施例中,可以在可用带宽和处理资源的基础上为特定客户端设备选择特定流。在各种实施例中,针对相同视频源的多个视频流中的一个或多个可以使用层次预测结构被编码。如上面所描述的那样,这可以在视频流的传输中允许带宽使用的动态调整。然而,管理带宽和处理资源使用(诸如改变视频流的分辨率)的一些方法可能未被层次预测结构准许。类似地,管理存储器使用(诸如改变一群帧的尺寸)的一些方法可能未被层次预测结构准许。因此,尽管使用层次预测结构,管理带宽、处理以及存储器使用的另外的方法可能是所希望的。因此,如果针对相同视频源的多个视频流是可用的,则可能期望能够在视频流之间动态地切换以便切换至在网络或客户端设备的带宽、处理以及存储器局限性内最大化视频流的视觉质量的视频流。
然而,特别地当层次预测结构被使用时,在视频流之间切换可以是复杂的。如果平面预测结构被使用,则每个帧取决于紧接的先前帧。在一些实施例中,如果第一流和第二流每个是相同视频源的编码,则包括所述流的帧的每个序列的一些帧将对应于来自视频源的相同源帧的编码。例如,如果视频源包括帧{R1, R2, R3, R4, R5,..}并且第一流包括帧{P1, P2, P3, P4, P5,..}以及第二流包括帧{Q1, Q2, Q3, Q4, Q5,..},则Pn和Qn可以每个都包括源帧Rn的不同编码。因此,在一些实施例中,从第一流到第二流的切换可以在时间3处通过广播序列{P1, P2, Q3, Q4, Q5,..}而被执行。虽然Q3最初使用帧Q2被预测,但是帧P2由于基于相同源帧R2很可能基本上与帧Q2类似。因此,通过将Q3预测信息与经解码的帧P2组合而创建的输出帧很可能基本上与如果Q3预测信息与经解码的帧Q2组合而被创建的输出帧类似。上述例子可以表示其中第一流和第二流两者都被以与视频源相同的帧速率编码的情形。在一些实施例中,第一和第二视频流中的一个或两者可以被以与视频源不同的帧速率编码。在一些实例中,较低质量的流可以被以较低帧速率编码以便节省带宽。在该实例中,第一流中的一些帧可能在从相同源帧编码的第二流中不具有对应的帧。
然而,当层次预测结构被使用时,选择适当的时间点以便进行切换可能是有利的。如果层次预测结构被使用,则来自不同流的两个帧可以是相同源帧的编码,同时其取决于不同的父帧。为了修改以上例子,如果帧P3取决于帧P2同时帧Q3取决于帧Q1,则广播序列{P1, P2, Q3, Q4, Q5,..}可能从视频源漂移(drift)很大,因为当视频解码器可能已丢弃了其视频数据时P1可能不再可供Q3参考。虽然视频解码器可以被配置成缓冲将被将来的帧参考的所有帧,但是要求视频解码器缓冲不仅在当前视频流中被将来的帧参考的而且可以在视频解码器可能切换至的所有可能的视频流中被用作参考的所有帧可能是不切实际的。
因此,在各种实施例中,用于切换的时间点可以通过确定在第二流中的作为初级帧的下一个即将到来的帧而被确定,其同样在第一流中被编码为参考帧。例如,为了修改以上例子,假设帧Q3是第二流中的初级帧并且帧P3可供帧P4参考。在那种情况下,如果序列{P1, P2, P3, P4, Q5,..}被传送了,则我们知道帧{Q4, Q5, Q6,..}中的每一个都取决于帧Q3或该序列中后面的帧。因此,每个帧将具有适当的参考帧,即按照正常解码过程被缓冲的它所取决于的帧,但是取决于帧Q3的任何帧将必须使用帧P3。因此,在各种实施例中,视频广播系统可以在所述时间点处从第一流切换至第二流,使得从第一流广播的最后一帧可供后面的帧参考并且是来自视频源的在第二流中被编码为初级帧的帧的编码。因此,在各种实施例中,同样在第一流中被编码的第二流中的初级帧的时间点可以包括一组有效的切换时间点。如果第一和第二流被以相同的帧速率并且用相同的预测结构编码,则这可以将全部初级帧中包括在第二流中。如果第一流和第二流被以不同的帧速率或/和用不同的预测结构编码,则这可以将被从同样在第一视频流中编码为参考帧的源帧所编码的全部初级帧包括在第二流中,源帧是来自源视频的帧。
如上面所陈述的那样,从第一流到第二流的切换可以牵涉参考来自第二流的正参考来自第一流的帧被解码的帧而被编码的一些帧。因此,虽然这个编码可以与使用预定参考帧的解码类似,但是它可能不是相同的,从而引起视觉赝像。在各种实施例中,这些赝像可以使用用于解决漂移的已知技术而被减少或者消除。例如,在各种实施例中,这些赝像可以通过对I-帧的请求而被减少或者消除。在各种实施例中,切换帧可以被使用。切换帧可以包括具体地编码成允许从一个视频流切换至另一视频流而没有漂移或视觉赝像的一组帧。切换帧可以是特定于从一个特定流到另一特定流的切换的。为了继续上述例子,视频流{P1, P2, P3, P4, P5,..}和视频流{Q1, Q2, Q3, Q4, Q5,..}可能已经与它们{S1, S4, S7,..}相关联了,其中Sn是对源帧Rn进行编码的切换帧。时间1、4以及7可以对应于先前所描述的有效的切换时间点,使得{Q1, Q4, Q7,..}是从同样在第一流中被编码的源帧所编码的第二流中的初级帧。因此,从第一流到第二流的切换可以针对时间4被定时,从而产生广播序列{P1, P2, P3, S4, Q5,..}。
现参考附图,其中相同的附图标记被用来自始至终指代相同的元件。在以下描述中,出于解释的目的,许多特定细节被阐述以便提供其彻底理解。然而,可能显然的是,新颖实施例能够在没有这些特定细节的情况下被实践。在其它实例中,众所周知的结构和设备被以框图形式示出以便便于其描述。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等同物以及替代方案。
图1说明了针对视频广播系统100的框图。
在一个实施例中,视频广播系统100可以包括具有一个或多个软件应用和/或构件的计算机实施的视频广播系统100。尽管图1中所示出的系统视频广播系统100在特定拓扑中具有有限数目的元件,但是应了解,视频广播系统100可以在如对于给定实施方案所期望的替代拓扑中包括更多或更少的元件。
在所说明的图1中示出的实施例中,视频广播系统100包括编码构件110、切换构件120、广播构件130以及数据储存器150。编码构件110一般地操作来将视频源105编码成在第一质量水平的第一视频流和在第二质量水平的第二视频流。切换构件120一般地操作来确定从广播第一视频流切换至广播第二视频流的时间点。广播构件130一般地操作来广播输出视频流140。
在各种实施例中,构件中的一个或多个可以被体现在集中式系统中。例如,编码构件110、切换构件120、广播构件130以及数据储存器150全部可以被实施在单个计算实体中,诸如完全在单个计算设备内。在各种实施例中,构件中的一个或多个可以被体现在分布式系统中。例如,编码构件110、切换构件120以及广播构件130可以每个都跨越不同的计算实体被实施,使得每个都是在不同的计算设备内。在其它实例中,编码构件110可以被实施在第一计算实体中并且切换构件120和广播构件130可以被一起实施在第二计算实体中。
在各种实施例中,编码构件110一般地操作来将视频源105编码成在第一质量水平的第一视频流和在第二质量水平的第二视频流。在各种实施例中,第一和第二视频流可以是以不同的质量水平编码的多个流的一部分。编码构件110可以操作来根据诸如H.264视频编码标准之类的任何适当的已知视频编码标准来对视频源105进行编码。第一视频流可以包括第一组初级帧。第二视频流可以包括第二组初级帧。在各种实施例中,初级帧可以是这样的帧,即所关联的视频流中的后面的帧将不取决于或参考在该初级帧之前的视频流中的帧。
在各种实施例中,编码构件110可以操作来用层次预测结构对第一和第二视频流进行编码。第一视频流可以包括第一层次预测结构以及第二视频流可以包括第二层次预测结构。第一层次预测结构可以包括第一组初级帧和第一组次级帧。第二层次预测结构可以包括第二组初级帧和第二组次级帧。第一视频流可以被划分成第一尺寸的第一帧群。第二视频流可以被划分成第二尺寸的第二帧群。一群帧的尺寸可以对应于该群中帧的数目。每群帧可以包括正好一个初级帧和多个次级帧。因此,一群帧的尺寸可以是比该群帧中的次级帧的数目大一。第一视频流可以具有第一帧速率。第二视频流可以具有第二帧速率。帧速率可以对应于编码的视频流中每秒的帧的数目。
在各种实施例中,编码构件110可以操作来对一组切换帧进行编码。编码构件110可以操作来对特定于一对编码的视频流(诸如第一视频流和第二视频流)的一组切换帧进行编码。编码构件110可以操作来对特定于所有对的编码的视频流的一组切换帧进行编码。在各种实施例中,切换帧可以针对所有有效的切换时间点被编码。在各种实施例中,切换帧可以仅针对有效的切换时间点被编码。
在各种实施例中,切换构件120一般地操作来确定从广播第一视频流切换至广播第二视频流的时间点。第一视频流和第二视频流可以包括编码构件110的输出。第一和第二视频流可以包括从视频源105编码的多个视频流中的两个,第一视频流被以第一质量水平编码并且第二视频流被以第二质量水平编码。
在各种实施例中,切换构件120一般地操作来通过确定针对第二视频流的该组初级帧中的从同样在第一视频流中编码为参考帧的源帧所编码的最近即将到来的帧来确定时间点。该组初级帧中的最近即将到来的帧可以对应于视频流中的作为初级帧的下一个帧。初级帧可以是作为帧的序列中的第一帧的帧或作为帧的序列中的取决于或者参考特定初级帧的最后一帧的帧,所述特定的初级帧被从同样在第一视频流中编码的源帧所编码。
在各种实施例中,切换构件120一般地操作来确定在第一视频流和第二视频流中的每一个中的初级帧之间的最小间隔。切换构件120可以一般地操作来基于所述最小间隔来确定时间点。这个最小间隔可以用包括该最小间隔的帧的数目来测量。这个最小间隔可以用组成该最小间隔的时间的长度(诸如秒或毫秒的数目)来测量。切换构件120可以将时间点确定为新的最小间隔的开始的下一次发生。与最小间隔的开始相对应的时间点的集合可以包括一组切换时间点,其是适于从第一视频流切换至第二视频流的时间点。
在各种实施例中,切换构件120一般地操作来将最小间隔确定为第一值和第二值的最大值,第一值等于第一视频流的第一帧速率除以第一视频流的第一群帧的第一尺寸,第二值等于第二视频流的第二帧速率除以第二视频流的第二群帧的第二尺寸。
在各种实施例中,广播构件130一般地操作来广播输出视频流140。在广播视频流140中传送的帧的序列可以对应于来自由编码构件110所编码的多个视频流的帧。输出视频流140的广播可以包括诸如在实况广播中当帧被编码构件110编码时广播帧。输出视频流140的广播可以包括广播来自存储的视频流或多个视频流的帧,其诸如可以被存储在数据储存器150上。
在各种实施例中,广播构件130一般地操作来在时间点之前广播来自第一视频流的帧并且在时间点处切换至广播来自第二视频流的帧。当切换帧不是可用的时,诸如当编码格式不支持切换帧时或者当编码器不产生切换帧时,广播构件130可以直接地从第一视频流切换至第二视频流。广播构件130可以一般地操作来在不使用切换帧的情况下直接地从一个视频流切换至另一视频流之后使用帧内帧刷新或其它漂移调节技术。
在各种实施例中,广播构件130一般地操作来在时间点之前广播来自第一视频流的帧,在时间点处广播切换帧,并且在时间点之后广播来自第二视频流的帧。当切换帧是可用的时,广播构件130可以优先地使用切换帧。切换帧可以选自切换帧的序列。切换帧的序列可以是特定于诸如第一视频流和第二视频流之类的一对编码的视频流的。特定于所有对的编码的视频流的切换帧的序列可能是可用的,广播构件130为第一和第二视频流选择切换帧的适当序列。特定于第一和第二视频流的切换帧的序列可以仅由与来自该组切换时间点的切换时间点相对应的切换帧构成。
本文中包括的是表示用于执行所公开的架构的新颖方面的示范性方法的一组流程图。虽然出于解释简单的目的,例如形式为流程图或流程图标的本文中所示出的一个或多个方法被示出和描述为一系列动作,但是应当理解和了解,方法不被动作的顺序限制,因为一些动作可以依据其以不同的顺序和/或与来自本文中所示出和所描述的动作的其它动作同时发生。例如,本领域的技术人员应理解和了解,方法替换地能够诸如在状态图中被表示为一系列相互有关的状态或事件。而且,并非在方法中所说明的所有动作对于新颖实施方案可能是需要的。
图2说明了逻辑流程200的一个实施例。逻辑流程200可以表示由本文中所描述的一个或多个实施例所执行的操作中的一些或全部。
记载在逻辑流程200中的操作可以被体现为例如驻留在数据存储特征中的计算机可读和计算机可执行指令,所述数据存储特征诸如计算机可用的易失性存储器、计算机可用的非易失性存储器和/或数据存储单元。计算机可读和计算机可执行指令可以被用来与例如处理器和/或多个处理器相结合地控制或者操作。尽管在逻辑流程200中公开的特定操作可以被体现为这样的指令,但是这样的操作是示范性的。即,指令可能很适于执行记载在逻辑流程200中的操作的变化或各种其它操作。应了解,体现逻辑流程200中的操作的指令可以被以不同于所呈现的顺序执行,并且并非逻辑流程200中的全部操作都可以被执行。
在操作210中,针对逻辑流程200的操作被启动。
在操作220中,视频源被编码成在第一质量水平的第一视频流和在第二质量水平的第二视频流。在各种实施例中,第一和第二视频流可以是以不同的质量水平编码的多个流的一部分。编码构件110可以操作来根据诸如H.264视频编码标准之类的任何适当的已知视频编码标准来对视频源105进行编码。第一视频流可以包括第一组初级帧。第二视频流可以包括第二组初级帧。在各种实施例中,初级帧可以是这样的帧,即在所关联的视频流中的后面的帧将不取决于或参考在初级帧之前的视频流中的帧。
在各种实施例中,第一和第二视频流可以被用层次预测结构编码。第一视频流可以包括第一层次预测结构并且第二视频流可以包括第二层次预测结构。第一层次预测结构可以包括第一组初级帧和第一组次级帧。第二层次预测结构可以包括第二组初级帧和第二组次级帧。第一视频流可以被划分成第一尺寸的第一帧群。第二视频流可以被划分成第二尺寸的第二帧群。一群帧的尺寸可以对应于该群中帧的数目。每群帧可以包括正好一个初级帧和多个次级帧。因此,一群帧的尺寸可以比该群帧中的次级帧的数目大一。第一视频流可以具有第一帧速率。第二视频流可以具有第二帧速率。帧速率可以对应于编码的视频流中每秒的帧的数目。
在各种实施例中,一组切换帧可以被编码。该组切换帧可以特定于诸如第一视频流和第二视频流之类的一对编码的视频流被编码。一组切换帧可以特定于所有对的编码的视频流被编码。
在操作230中,第二视频流的一组初级帧中的被从同样在第一视频流中编码为参考帧的源帧所编码的最近即将到来的帧被确定。该组初级帧中的最近即将到来的帧可以对应于视频流中的作为初级帧的下一个帧,所述初级帧是被从同样在第一视频流中编码为参考帧的源帧所编码的。初级帧可以是作为帧的序列中的第一帧的帧或作为帧的序列中的取决于或者参考特定初级帧的最后一帧的帧。
在操作240中,从广播第一视频流切换至第二视频流的时间点被确定。第一和第二视频流可以包括从视频源105编码的多个视频流中的两个,第一视频流被以第一质量水平编码并且第二视频流被以第二质量水平编码。
在各种实施例中,时间点可以被确定为与被从同样在第一视频流中编码为参考帧的源帧所编码的针对第二视频流的该组初级帧中的最近即将到来的帧相对应,诸如用于广播最近即将到来的帧的时间点。该组初级帧中的最近即将到来的帧可以对应于视频流中的作为初级帧的下一个帧。在各种实施例中,在第一视频流和第二视频流中的每一个中的初级帧之间的最小间隔可以被确定。时间点可以基于该最小间隔被确定。这个最小间隔可以用包括该最小间隔的帧的数目来测量。这个最小间隔可以用组成该最小间隔的时间的长度(诸如秒或毫秒的数目)来测量。时间点可以被确定为新的最小间隔的开始的下一次发生。与最小间隔的开始相对应的时间点的集合可以包括一组切换时间点,其是适于从第一视频流切换至第二视频流的时间点。
在各种实施例中,最小间隔可以被确定为第一值和第二值的最大值,第一值等于第一视频流的第一帧速率除以第一视频流的第一群帧的第一尺寸,第二值等于第二视频流的第二帧速率除以第二视频流的第二群帧的第二尺寸。
在操作250中,来自第一视频流的帧在时间点之前被广播并且来自第二视频流的帧在时间点之后被广播。在各种实施例中,来自第二视频流的帧可以在时间点处被广播。当切换帧不是可用的时,诸如当编码格式不支持切换帧时或者当编码器不产生切换帧时,从第一视频流到第二视频流的直接切换可以被做出。帧内帧刷新或其它漂移调节技术可以在不使用切换帧的情况下直接地从一个视频流切换到另一视频流之后被使用。
在各种实施例中,切换帧可以在时间点处被广播。当切换帧是可用的时,切换帧可以被优先地使用。切换帧可以选自切换帧的序列。切换帧的序列可以是特定于诸如第一视频流和第二视频流之类的一对编码的视频流的。特定于所有对的编码的视频流的切换帧的序列可能是可用的,使得切换帧的适当序列针对第一和第二视频流被选择。特定于第一和第二视频流的切换帧的序列可以仅由与来自该组切换时间点的切换时间点相对应的切换帧构成。
在操作260中,针对逻辑流程200的操作被终止。
图3说明了集中式系统300的框图。集中式系统300可以将针对视频广播系统100的结构和/或操作中的一些或全部实施在单个计算实体中,诸如完全实施在单个计算设备320内。
计算设备320可以使用处理构件330来执行针对视频广播系统100的处理操作或逻辑。处理构件330可以包括各种硬件元件、软件元件或两者的组合。硬件元件的例子可以包括设备、逻辑设备、构件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的例子可以包括软件构件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例行程序、子例行程序、函数、方法、过程、软件接口、应用程序接口(API)、指令组、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定实施例是否使用硬件元件和/或软件元件被实施可以依据任何数目的因素而变化,所述因素诸如如对于给定实施方案所期望的期望计算速率、功率等级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
计算设备320可以使用通信构件340来执行针对系统100的通信操作或逻辑。通信构件340可以实施任何众所周知的通信技术和协议,诸如适合于与分组交换网络(例如,诸如因特网之类的公用网络、诸如企业内联网之类的私有网络等等)、电路交换网络(例如,公共交换电话网)或分组交换网络和电路交换网络的组合(具有适合的网关和转换器)一起使用的技术。通信构件340可以包括各种类型的标准通信元件,诸如一个或多个通信接口、网络接口、网络接口卡(NIC)、无线电设备、无线发射机/接收机(收发机)、有线和/或无线通信媒体、物理连接器等等。通过例子而非限制,通信媒体352、362、372包括有线通信媒体和无线通信媒体。有线通信媒体的例子可以包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光导纤维、传播的信号等等。无线通信媒体的例子可以包括声、射频(RF)光谱、红外线以及其它无线媒体352、362、372。
计算设备320可以经由通信构件340通过相应的通信媒体352、362以及372使用相应的通信信号354、364以及374与其它设备350、360以及370进行通信。
在各种实施例中,并且关于图1,处理构件330可以包括编码构件110和切换构件120中的全部或一些。在各种实施例中,并且关于图1,通信构件340可以包括广播构件130。
在各种实施例中,并且关于图1,通信构件340可以被用来接收视频源105。在各种实施例中,并且关于图1,通信构件340可以被用来传送输出视频流140。在各种实施例中,设备350可以对应于将视频源105提供给视频广播系统100的用户设备、服务器或其它视频存储和传输设备。在各种实施例中,通过媒体352传送的信号354可以包括视频源105到视频广播系统100的传输。
在各种实施例中,设备360和370可以对应于从视频广播系统100接收输出视频流140的用户设备、服务器或其它视频观看设备。在各种实施例中,通过媒体362和372传送的信号364和374可以包括输出视频流140到一个或多个目的视频设备的传输。在各种实施例中,通信构件340可以包括用于视频流式传输服务的视频服务器构件。在各种实施例中,通信构件340可以操作来将输出视频流140流式传输到多个观看设备。
图4说明了分布式系统400的框图。分布式系统400可以跨越多个计算实体来分布针对视频广播系统100的结构和/或操作的部分。分布式系统400的例子可以包括但不限于客户端-服务器架构、3层架构、N层架构、紧耦合的或集群化的架构、对等架构、主-从架构、共享数据库架构以及其它类型的分布式系统。实施例在这个上下文中未被限制。
客户端系统410和服务器系统450可以使用处理构件430来处理信息,所述处理构件430与参考图3所描述的处理构件330类似。客户端系统410和服务器系统450可以经由通信构件440通过通信媒体420使用通信信号422与彼此进行通信,所述通信构件440与参考图3所描述的通信构件340类似。
在一个实施例中,例如,分布式系统400可以被实施为客户端-服务器系统。客户端系统410可以实施设备350、360或370。服务器系统450可以实施编码构件110、切换构件120以及广播构件130。
在各种实施例中,服务器系统450可以包括视频广播系统100。在各种实施例中,处理构件430可以包括编码构件110、切换构件120以及广播构件130中的全部或一些。
在各种实施例中,服务器系统450可以包括或者采用一个或多个服务器计算设备和/或服务器程序,所述一个或多个服务器计算设备和/或服务器程序操作来依据所描述的实施例执行各种方法。例如,当被安装和/或部署时,服务器程序可以支持用于提供特定服务和特征的服务器计算设备的一个或多个服务器角色。示范性的服务器系统450可以包括例如独立的和企业级的服务器计算机,其操作诸如MICROSOFT® OS、UNIX® OS、LINUX® OS或其它适合的基于服务器的OS之类的服务器OS。示范性服务器程序可以包括例如诸如用于管理传入和传出消息的Microsoft® Office通信服务器(OCS)之类的通信服务器程序、诸如用于为电子邮件、语音邮件、VoIP、即时消息传送(IM)、群IM、增强存在以及音频-视频会议提供统一消息传送(UM)的Microsoft® Exchange服务器之类的消息传送服务器程序、和/或依据所描述的实施例的其它类型的程序、应用或服务。
在各种实施例中,通信构件440可以被用来接收视频源105。在各种实施例中,通信构件440可以被用来传送输出视频流140。在各种实施例中,在媒体420上传送的信号422可以包括输出视频流140。在各种实施例中,服务器系统450可以包括视频服务器,其操作来根据诸如H.264之类的定义的视频编码编解码器对视频源105进行编码、以及使用通信构件440将经编码的视频流作为输出视频流140来传送。在各种实施例中,服务器系统450可以操作来将输出视频流140从第一视频流切换至第二视频流。切换可以响应于这样的服务器,其诸如通过检测网络条件已足够劣化到激发质量降低而确定质量水平的降低是要求的或所希望的,使得第二视频流比第一视频流具有更低的质量。切换可以响应于这样的服务器,其诸如通过检测网络条件已足够改进到激发质量改进而确定质量水平的增加是要求的或所希望的,使得第二视频流比第一视频流具有更高的质量。
在各种实施例中,客户端系统410可以包括或者采用一个或多个客户端计算设备和/或客户端程序,所述一个或多个客户端计算设备和/或客户端程序操作来依据所描述的实施例执行各种方法。在各种实施例中,客户端系统410可以包括视频解码系统415。在各种实施例中,客户端系统410可以使用通信构件440来通过媒体420作为信号422来接收输出视频流140。在各种实施例中,视频解码系统415可以操作来使用处理构件430来对所接收到的输出视频流140进行解码。在各种实施例中,视频解码系统可以操作来使用处理构件430根据诸如H.264之类的定义的视频编码编解码器对所接收到的输出视频流140进行解码。在各种实施例中,客户端系统450可以操作来请求输出视频流140被从第一视频流切换至第二视频流,其诸如通过在媒体420上使用信号422将改变质量水平的请求发送到服务器系统450来实现。切换可以响应于这样的客户端,其诸如通过检测网络条件已足够劣化或者处理或存储器资源已变得愈发有限到激发质量降低而确定质量水平的降低是要求的或所希望的,使得第二视频流比第一视频流具有更低质量。切换可以响应于这样的客户端,其诸如通过检测网络条件已足够改进或者处理或存储器资源已变得足够可用来激发质量改进而确定质量水平的增加是要求的或所希望的,使得第二视频流比第一视频流具有更高质量。
图5说明了适合于实施如先前所描述的各种实施例的示范性计算架构500的实施例。如本申请中所用的那样,术语“系统”和“构件”旨在指的是计算机相关实体,或者是硬件、硬件和软件的组合、软件,或者是执行中的软件,其例子由示范性的计算架构500来提供。例如,构件可以是但不限于在处理器上运行的进程、处理器、硬盘驱动器、(光学和/或磁存储介质的)多个存储驱动器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是构件。一个或多个构件能够驻留在进程和/或执行的线程内,并且构件能够位于一个计算机上和/或分布在两个或更多个计算机之间。进一步地,构件可以通过各种类型的通信媒体被通信地耦合到彼此以便协调操作。协调可能牵涉信息的单向或双向交换。例如,构件可以以通过通信媒体传送的信号的形式来传送信息。信息能够被实施为分配给各种信号线路的信号。在这样的分配中,每个消息是信号。然而,另外的实施例可以替换地采用数据消息。这样的数据消息可以跨越各种连接被发送。示范性的连接包括并行接口、串行接口以及总线接口。
在一个实施例中,计算架构500可以包括或者被实施为电子设备的一部分。电子设备的例子可以包括但不限于移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息传送设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本电脑、手持式计算机、平板计算机、服务器、服务器阵列或服务器群、web服务器、网络服务器、因特网服务器、工作站、小型计算机、主机计算机、超级计算机、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统、消费电子装置、可编程消费电子装置、电视、数字电视、机顶盒、无线接入点、基站、订户站、移动订户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器或其组合。实施例在这个上下文中未被限制。
计算架构500包括各种公共计算元件,诸如一个或多个处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)构件等等。然而,实施例不限于通过计算架构500的实施方案。
如图5中所示,计算架构500包括处理单元504、系统存储器506以及系统总线508。处理单元504可以是各种商业上可用的处理器中的任一个。双微处理器和其它多处理器架构也可以被采用为处理单元504。系统总线508将接口提供给系统构件,其包括但不限于系统存储器506至处理单元504。系统总线508可以是数个类型的总线结构中的任一个,其可以进一步互连到使用各种商业上可用的总线架构中的任一个的存储器总线(具有或没有存储器控制器)、外围总线以及局部总线。
计算架构500可以包括或者实施各种制品。制品可以包括存储逻辑的计算机可读存储介质。计算机可读存储介质的例子可以包括能够存储电子数据的任何有形媒体,包括易失性存储器或非易失性存储器、可拆卸或不可拆卸存储器、可擦或不可擦存储器、可写或可再写存储器等等。逻辑的例子可以包括使用任何适合类型的代码所实施的可执行计算机程序指令,所述任何适合类型的代码诸如源代码、编译代码、解释过的代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等等。
系统存储器506可以包括形式为一个或多个较高速存储器单元的各种类型的计算机可读存储媒体,诸如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM (DRAM)、双数据率DRAM (DDRAM)、同步DRAM (SDRAM)、静态RAM (SRAM)、可编程ROM (PROM)、可擦可编程ROM (EPROM)、电可擦可编程ROM (EEPROM)、闪速存储器、诸如铁电聚合物存储器之类的聚合物存储器、双向(ovonic)存储器、相变或铁电存储器、硅氧化氮氧化硅(SONOS)存储器、磁或光学卡、适合于存储信息的任何其它类型的媒体。在所说明的图5中示出的实施例中,系统存储器506能够包括非易失性存储器510和/或易失性存储器512。基本输入/输出系统(BIOS)能够被存储在非易失性存储器510中。
计算机502可以包括形式为一个或多个较低速存储器单元的各种类型的计算机可读存储媒体,包括内部硬盘驱动器(HDD) 514、用来从可拆卸磁盘518读取或者写入可拆卸磁盘518的磁软盘驱动器(FDD) 516、用来从可拆卸光盘522 (例如,CD-ROM或DVD)读取或者写入可拆卸光盘522的光盘驱动器520。HDD 514、FDD 516以及光盘驱动器520能够分别通过HDD接口524、FDD接口526以及光驱接口528而被连接到系统总线508。用于外部驱动器实施方案的HDD接口524能够包括通用串行总线(USB)和IEEE 1394接口技术中的至少一个或两者。
驱动器和关联的计算机可读媒体提供数据、数据结构、计算机可执行指令等等的易失性和/或非易失性存储。例如,包括操作系统530、一个或多个应用程序532、其它程序模块534以及程序数据536的许多程序模块能够被存储在驱动器和存储器单元510、512中。
一个或多个应用程序532、其它程序模块534以及程序数据536能够包括例如编码构件110、切换构件120以及广播构件130。
用户能够通过一个或多个有线/无线输入设备(例如键盘538和诸如鼠标540的指示设备)将命令和信息键入到计算机502中。其它输入设备可以包括话筒、红外线(IR)遥控器、操纵杆、游戏板、触针笔、触摸屏等等。这些和其它输入设备常常通过被耦合到系统总线508的输入设备接口542而被连接到处理单元504,但能够通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等来连接。
监视器544或其它类型的显示设备经由诸如视频适配器546之类的接口同样被连接到系统总线508。除监视器544之外,计算机典型地包括其它外围输出设备,诸如扬声器、打印机等等。
计算机502可以经由到诸如远程计算机548之类的一个或多个远程计算机的有线/无线通信使用逻辑连接在联网的环境中操作。远程计算机548可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其它公共网络节点,并且典型地包括相对于计算机502所描述的元件中的许多或全部,但是出于简洁的目的,仅存储器/存储设备550被说明了。所描绘的逻辑连接包括到局域网(LAN) 522和/或较大网络(例如广域网(WAN) 554)的有线/无线连通性。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且便于实现企业范围的计算机网络,诸如内联网,其全部都可以连接到全球通信网络,例如,因特网。
当被用在LAN联网环境中时,计算机502通过有线和/或无线通信网络接口或适配器556被连接到LAN 552。适配器556能够便于实现到LAN 552的有线和/或无线通信,所述LAN 552还可以包括置于其上以用于与适配器556的无线功能性进行通信的无线接入点。
当被用在WAN联网环境中时,计算机502能够包括调制解调器558,或者被连接到WAN 554上的通信服务器,或者具有用于通过WAN 554 (诸如通过因特网)建立通信的其它装置。可以是内部的或外部的调制解调器558以及有线和/或无线设备经由输入设备接口542连接到系统总线508。在联网的环境中,相对于计算机502所描绘的程序模块或其部分能够被存储在远程存储器/存储设备550中。应了解,所示出的网络连接是示范性的,并且在计算机之间建立通信链路的其它手段能够被使用。
计算机502可操作来与使用IEEE 802标准族的有线和无线设备或实体进行通信,所述有线和无线设备或实体诸如在操作上与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、与无线地可检测的标签相关联的任一件设备或位置(例如,报亭、报摊、休息室)以及电话无线通信地(例如,IEEE 802.11空中调制技术)布置的无线设备。这至少包括Wi-Fi (或无线保真)、WiMax以及Bluetooth™(蓝牙™)无线技术。因此,通信可以是与常规网络一样的预定义结构或简单地为至少两个设备之间的自组织通信。Wi-Fi网络使用称作IEEE 802.1 1x(a、b、g、n等)的无线电技术来提供安全的、可靠的、快速的无线连通性。Wi-Fi网络能够被用来将计算机连接到彼此、连接到因特网以及连接到有线网络(其使用IEEE 802.3相关的媒体和功能)。
图6说明了适合于实施如先前所描述的各种实施例的示范性的通信架构600的框图。通信架构600包括各种公共通信元件,诸如发射机、接收机、收发机、无线电设备、网络接口、基带处理器、天线、放大器、滤波器等等。然而,实施例不限于通过通信架构600的实施方案。
如图6中所示,通信架构600包括一个或多个客户端602和服务器604。客户端602可以实施设备350、360或370。服务器604可以实施服务器系统450。客户端602和服务器604被在操作上连接到一个或多个相应的客户端数据储存器608和服务器数据储存器610,其能够被采用来存储相应客户端602和服务器604本地的信息(诸如cookies和/或关联的上下文信息)。
客户端602和服务器604可以使用通信框架606在彼此之间传送信息。通信框架606可以实施任何众所周知的通信技术和协议,诸如参考系统100、300以及400所描述的那些。通信框架606可以被实施为分组交换网络(例如,诸如因特网之类的公用网络、诸如企业内联网之类的私有网络等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(具有适合的网关和转换器)。
一些实施例可以使用表达“一个实施例”或“实施例”连同它们的派生词来描述。这些术语意味着结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在本说明书中的各个地方中的出现未必全部指相同的实施例。进一步地,一些实施例可以使用表达“被耦合”或“被连接”连同它们的派生词来描述。这些术语对于彼此来说未必当作同义词。例如,一些实施例可以使用术语“被连接”和/或“被耦合”来描述以便指示两个或更多个元件与彼此直接物理接触或电接触。然而,术语“被耦合”还可以意味着两个或更多个元件不与彼此直接接触,但又仍然与彼此协作或者交互。
应强调,本公开的摘要被提供来允许读者迅速地确定本技术公开的本质。本着不被用来解释或者限制权利要求的范围或意义的理解来提交摘要。此外,在前面的具体实施方式中,能够看出的是,各种特征被一起分组在单个实施例中以用于精简化本公开的目的。公开的这个方法将不被解释为反映所要求保护的实施例要求比每个权利要求中所明确地记载的更多特征的意图。相反,如以下权利要求反映的,发明主题在于少于单个公开的实施例的所有特征。因此,以下权利要求从而被并入到具体实施方式中,每个权利要求作为单独的实施例独立存在。在所附权利要求中,术语“包括(including)”和“其中(in which)”被分别用作相应术语“包括(comprising)”和“其中(wherein)”的通俗英文等同物。而且,术语“第一”、“第二”、“第三”等等仅仅被用作标记,并且不旨在将数值要求强加于它们的目标。
上面已经描述的内容包括所公开的架构的例子。当然,描述构件和/或方法的每个可以想象的组合是不可能的,但本领域的普通技术人员可以认识到,许多另外的组合和排列是可能的。因此,新颖架构旨在包含落入所附权利要求的精神和范围内的所有这样的变更、修改以及变化。

Claims (10)

1. 一种装置,包括:
逻辑设备;以及
切换构件,其在所述逻辑设备上操作来确定从广播第一视频流切换至广播第二视频流的时间点,所述第一视频流是视频源以第一质量水平的第一编码以及所述第二视频流是所述视频源以第二质量水平的第二编码。
2. 根据权利要求1所述的装置,所述第二视频流包括一组初级帧,所述切换构件用来通过确定该组初级帧中的被从同样在所述第一视频流中编码为参考帧的源帧所编码的最近即将到来的帧来确定所述时间点。
3. 根据权利要求1所述的装置,包括流广播构件,其操作来在所述时间点之前广播来自所述第一视频流的帧并且操作来做以下各项中的一个:
在所述时间点处切换至广播来自所述第二视频流的帧;或者
在所述时间点处广播切换帧,并且在所述时间点之后广播来自所述第二视频流的帧。
4. 一种方法,包括:
确定从广播第一视频流切换至第二视频流的时间点,所述第一视频流是视频源以第一质量水平的第一编码以及所述第二视频流是所述视频源以第二质量水平的第二编码;以及
在所述时间点之前广播来自所述第一视频流的帧并且在所述时间点之后广播来自所述第二视频流的帧。
5. 根据权利要求4所述的方法,包括通过确定所述第二视频流的一组初级帧中的被从同样在所述第一视频流中编码为参考帧的源帧所编码的最近即将到来的帧来确定所述时间点。
6. 根据权利要求4所述的方法,所述第一视频流包括第一层次预测结构并且所述第二视频流包括第二层次预测结构,所述第一层次预测结构包括第一组初级帧,所述第二层次预测结构包括第二组初级帧。
7. 根据权利要求6所述的方法,包括:
确定在所述第一视频流和所述第二视频流中的每一个中的初级帧之间的最小间隔;以及
基于所述最小间隔来确定所述时间点。
8. 根据权利要求7所述的方法,所述第一视频流被划分成第一尺寸的第一帧群,所述第二视频流被划分成第二尺寸的第二帧群,所述第一视频流具有第一帧速率,并且所述第二视频流具有第二帧速率。
9. 根据权利要求8所述的方法,包括将所述最小间隔确定为第一值和第二值的最大值,所述第一值等于所述第一帧速率除以所述第一尺寸,所述第二值等于所述第二帧速率除以所述第二尺寸。
10. 一种包括存储介质的制品,所述存储介质包含指令,当所述指令被执行时使系统执行根据权利要求4、5、6、7、8或9中任一项所述的方法。
CN201280042391.2A 2011-08-30 2012-08-09 用于在编码的比特流之间动态切换的技术 Pending CN103843352A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/221,603 US20130055326A1 (en) 2011-08-30 2011-08-30 Techniques for dynamic switching between coded bitstreams
US13/221603 2011-08-30
PCT/US2012/050201 WO2013032662A1 (en) 2011-08-30 2012-08-09 Techniques for dynamic switching between coded bitstreams

Publications (1)

Publication Number Publication Date
CN103843352A true CN103843352A (zh) 2014-06-04

Family

ID=47745651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280042391.2A Pending CN103843352A (zh) 2011-08-30 2012-08-09 用于在编码的比特流之间动态切换的技术

Country Status (7)

Country Link
US (1) US20130055326A1 (zh)
EP (1) EP2730093A4 (zh)
JP (1) JP6174582B2 (zh)
KR (1) KR20140056296A (zh)
CN (1) CN103843352A (zh)
TW (1) TWI575949B (zh)
WO (1) WO2013032662A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307248A (zh) * 2018-02-01 2018-07-20 腾讯科技(深圳)有限公司 视频播放方法、装置、计算设备及存储介质
CN111669596A (zh) * 2020-06-17 2020-09-15 展讯通信(上海)有限公司 视频压缩方法及装置、存储介质、终端

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9306813B2 (en) 2009-12-23 2016-04-05 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with cooperative advertisement
US20150138300A1 (en) 2011-09-02 2015-05-21 Microsoft Technology Licensing, Llc Mobile Video Calls
US9462306B2 (en) * 2013-07-16 2016-10-04 The Hong Kong University Of Science And Technology Stream-switching in a content distribution system
US8879858B1 (en) * 2013-10-01 2014-11-04 Gopro, Inc. Multi-channel bit packing engine
US10298987B2 (en) 2014-05-09 2019-05-21 At&T Intellectual Property I, L.P. Delivery of media content to a user device at a particular quality based on a personal quality profile
GB2549970A (en) * 2016-05-04 2017-11-08 Canon Europa Nv Method and apparatus for generating a composite video from a pluarity of videos without transcoding
US10873775B2 (en) 2017-06-12 2020-12-22 Netflix, Inc. Staggered key frame video encoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1236527A (zh) * 1997-07-22 1999-11-24 皇家菲利浦电子有限公司 在视频序列之间进行切换的方法及相应的装置
CN1307781A (zh) * 1998-04-06 2001-08-08 希昌国际公司 同步、切换和编辑mpeg文件
US20100118697A1 (en) * 2008-11-12 2010-05-13 General Instrument Corporation Multi-rate statistical multiplexing
US20100178026A1 (en) * 2007-09-28 2010-07-15 Sanyo Electric Co., Ltd. Video Recording And Playback Device, Video Recording Device And Video Encoding Device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3207095B2 (ja) * 1995-12-13 2001-09-10 松下電器産業株式会社 動き補償フレーム間/フレーム内符号化装置
US7072394B2 (en) * 2002-08-27 2006-07-04 National Chiao Tung University Architecture and method for fine granularity scalable video coding
US20060061682A1 (en) * 2004-09-22 2006-03-23 Bradley Bruce R User selectable content stream
JP4615958B2 (ja) * 2004-10-15 2011-01-19 クラリオン株式会社 デジタル放送の送出装置、受信装置およびデジタル放送システム
US8291463B2 (en) * 2007-06-04 2012-10-16 At&T Intellectual Property I, L.P. System and method of delivering video content
US20090052540A1 (en) * 2007-08-23 2009-02-26 Imagine Communication Ltd. Quality based video encoding
US9060208B2 (en) * 2008-01-30 2015-06-16 Time Warner Cable Enterprises Llc Methods and apparatus for predictive delivery of content over a network
US8370887B2 (en) * 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
TW201123881A (en) * 2009-12-31 2011-07-01 Vivotek Inc Multimedia stream recording method and program product and device for implementing the same.
US20110176496A1 (en) * 2010-01-15 2011-07-21 Roy Rabinda K On-the-fly video quality switching for video distribution networks and methods therefor
US9015783B2 (en) * 2010-03-05 2015-04-21 Time Warner Cable Enterprises Llc Bandwidth conservation
US20120113323A1 (en) * 2010-11-04 2012-05-10 International Business Machines Corporation Comparing low quality broadcasts to high quality braodcasts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1236527A (zh) * 1997-07-22 1999-11-24 皇家菲利浦电子有限公司 在视频序列之间进行切换的方法及相应的装置
CN1307781A (zh) * 1998-04-06 2001-08-08 希昌国际公司 同步、切换和编辑mpeg文件
US20100178026A1 (en) * 2007-09-28 2010-07-15 Sanyo Electric Co., Ltd. Video Recording And Playback Device, Video Recording Device And Video Encoding Device
US20100118697A1 (en) * 2008-11-12 2010-05-13 General Instrument Corporation Multi-rate statistical multiplexing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ULF JENNEHAG ET: "《Improving Transmission Efficiency in H.264 Based IPTV Systems》", 《IEEE TRANSACTIONS ON BROADCASTING》 *
WEI ZHANG,BING ZENG: "An efficient bit-stream switching in multi-rate based video streaming systems", 《VISUAL COMMUNICATIONS AND IMAGE PROCESSING》 *
XIAOSONG ZHOU,C.-C.JAY KUO: "《Enhanced Video Stream Switching Schemes for H.264》", 《 2005 IEEE 7TH WORKSHOP ON MULTIMEDIA SIGNAL PROCESSING》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108307248A (zh) * 2018-02-01 2018-07-20 腾讯科技(深圳)有限公司 视频播放方法、装置、计算设备及存储介质
CN108307248B (zh) * 2018-02-01 2019-10-29 腾讯科技(深圳)有限公司 视频播放方法、装置、计算设备及存储介质
CN111669596A (zh) * 2020-06-17 2020-09-15 展讯通信(上海)有限公司 视频压缩方法及装置、存储介质、终端
CN111669596B (zh) * 2020-06-17 2022-08-12 展讯通信(上海)有限公司 视频压缩方法及装置、存储介质、终端

Also Published As

Publication number Publication date
EP2730093A4 (en) 2015-01-21
TWI575949B (zh) 2017-03-21
JP2014529248A (ja) 2014-10-30
TW201315241A (zh) 2013-04-01
WO2013032662A1 (en) 2013-03-07
EP2730093A1 (en) 2014-05-14
US20130055326A1 (en) 2013-02-28
JP6174582B2 (ja) 2017-08-02
KR20140056296A (ko) 2014-05-09

Similar Documents

Publication Publication Date Title
CN103843352A (zh) 用于在编码的比特流之间动态切换的技术
KR102448635B1 (ko) 비디오 인코딩 방법, 비디오 디코딩 방법, 및 단말
CN101009830B (zh) 用来改善时间搜索操作的技术
US9241197B2 (en) System and method for video delivery over heterogeneous networks with scalable video coding for multiple subscriber tiers
US20150058494A1 (en) Transcoding system and method
US20180014010A1 (en) Method and apparatus for reference frame management for video communication
CN102318348A (zh) 数据流的块划分
CN107223334B (zh) 用于将mmtp流转换为mpeg-2ts的方法和装置
CN102143385A (zh) 媒体播放处理方法、数字媒体服务器和系统
CN104685873B (zh) 编码控制设备以及编码控制方法
TW201210267A (en) Method and system for providing selected layered video service via a broadband gateway
US20190387039A1 (en) Apparatus, storage medium and method for heterogeneous segmentation of video streaming
US10200437B2 (en) Device and method for streaming service
US20220286736A1 (en) Dynamic processing and display of multi-stream video content
WO2018040427A1 (zh) 屏幕界面共享方法和系统
Chen et al. Optimized viewport‐adaptive 360‐degree video streaming
CN103716596A (zh) 图像处理装置和图像处理方法
US10002644B1 (en) Restructuring video streams to support random access playback
CN101729855B (zh) 数字内容流的传送方法和对应的接收方法
US20180160168A1 (en) System for providing hybrid user interfaces and method thereof
US20170163990A1 (en) Video transcoding method and system
CN109479121A (zh) 视频监控系统、客户端和信令交互服务器及控制方法
CN101515934A (zh) 转发可伸缩视频编码数据报文的方法、设备和通信系统
CN103716651A (zh) 图像处理装置、图像处理方法和图像处理系统
CN101399905A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150618

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150618

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

AD01 Patent right deemed abandoned

Effective date of abandoning: 20180713

AD01 Patent right deemed abandoned