CN103733632B - 带宽变化连接上的动态比特率调节 - Google Patents
带宽变化连接上的动态比特率调节 Download PDFInfo
- Publication number
- CN103733632B CN103733632B CN201280039692.XA CN201280039692A CN103733632B CN 103733632 B CN103733632 B CN 103733632B CN 201280039692 A CN201280039692 A CN 201280039692A CN 103733632 B CN103733632 B CN 103733632B
- Authority
- CN
- China
- Prior art keywords
- time
- transcoding
- interval
- bit rate
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/64322—IP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
通过保持转码进程与挂钟同步,实时地对媒体文件的音频和视频流进行转码。转码被初始配置为稍快于实时。一旦转码帧被转码,则将其从所述转码器通过可变带宽连接进行推送。然后对转码进行周期性地监控,以估计在转码缓冲器的传输期间可用的带宽。测量两个时间间隔:缓冲器间隔,其是之前的两个传输的转码缓冲器时间戳中的差别,以及对应于上一个转码缓冲器的实时传输时间的时钟间隔。如果观测到明显差别,则通过从该差别导出的参数来调整转码器比特率。
Description
技术领域
本发明涉及实时媒体传输。
背景技术
图1示出了现有技术的媒体传输系统100,其包括媒体服务器子系统102,该媒体服务器子系统102通过网络106(例如因特网)连接到移动单元或目的地单元104。
每个移动单元104可以是例如被装配以便建立媒体会话的智能手机或笔记本电脑。
媒体服务器子系统102可包括用于生成媒体文件的媒体服务器计算装置108、用于处理媒体文件的因特网内容调节协议(ICAP)服务器计算装置110、以及用于处理来自移动单元或终端104的请求以及用来执行其它功能的超文本传输协议(HTTP)代理服务器计算装置112。
可由移动(目的地)单元104请求媒体会话。媒体会话的目标是从媒体服务器子系统102向移动单元104发送媒体分组(媒体文件)的流。
当请求移动单元104和媒体服务器子系统102之间的网络106上的连接的带宽低于实时发送原始媒体文件所需的带宽时,所述媒体文件可被位于ICAP服务器110中的设备(其一般为HTTP代理服务器112的附属物)调节为该较低的带宽。
网络106上的连接的带宽还可在出现针对媒体文件调节的附加问题时进行改变。
从而,需要用来针对在具有改变带宽的连接上的传输改进媒体文件的带宽调节的方法和系统。
发明内容
本发明的一个目的是,提供用于对媒体文件或媒体文件的一部分进行编码以用于在到移动单元的变化带宽链路上实时进行传输的方法和系统。
根据本发明的一个方面,提供了用于对媒体文件或媒体文件的一部分进行编码以用于在到移动单元、或目的地单元的变化带宽链路上实时进行传输的方法,该方法包括:
采用至少一个处理器,以用于:
(i)将所述媒体文件的一个或多个片段编码成转码媒体片段,以形成流片段;
(ii)确定之前形成的流片段的估计传送时间,该估计传送时间是将所述之前形成的流片段从转码器传递并由所述变化带宽链路消耗所需的时间间隔;以及
(iii)将所述转码媒体片段的当前编码率作为所述估计传送时间的函数来调整。
在上述方法中,步骤(i)包括:
以初始编码率将所述媒体文件的至少第一片段编码成相应的第一转码媒体片段;以及
将所述当前编码率设置为等于所述初始编码率;
并且步骤(iii)包括以经过调整的当前编码率将所述媒体文件的随后片段编码成相应的转码媒体片段。
在上述方法中,步骤(iii)还包括将所述当前编码率作为所述流片段在所述移动单元处的估计显示时间的函数进行调节,所述估计显示时间是从与两个之前形成的流片段相关联的时间戳导出的。
步骤(iii)还包括将所述当前编码率作为所述当前编码率的函数进行调整。
在本方面的一种实施方式中,所述函数是所述当前编码率与调整参数的乘积,其中所述调整参数取决于所述估计显示时间和所述估计传送时间。
为了方便起见,所述调整参数是所述估计显示时间除以所述估计传送时间。
所述方法还包括将所述转码媒体片段传送到所述移动单元以用于显示。
在上述方法中,对所述当前编码率的调整可随时执行。例如,所述调整可周期性地执行。
在本发明的实施方式中,步骤(ii)还包括将所述估计传送时间估计为当前时间和上一次编码的之前时间之间的当前时钟间隔,并且所述步骤(iii)还包括:
确定当前缓冲器间隔,其表示之前流片段在所述移动单元处的估计显示时间,所述当前缓冲器间隔是从嵌入到两个之前形成的流片段中的时间戳导出的;
将所述当前时钟间隔与所述当前缓冲器间隔进行比较;以及
将所述当前编码率作为所述当前时钟间隔和所述当前缓冲器间隔的函数进行调整。
为了便利起见,所述两个之前形成的流片段包括最后两个流片段。
在上述方法中,所述调整包括,在所述当前时钟间隔与所述当前缓冲器间隔之间有预定量的差别的情况下对所述当前编码率进行调整。
例如,步骤(iii)可包括在N秒的当前时钟间隔已经逝去之后对所述当前编码率进行调整。在本发明的实施方式中,N在2到5秒的范围内,例如N=3秒。
将所述当前编码率作为所述当前时钟间隔和所述当前缓冲器间隔进行的调整可按以下步骤执行:
在所述当前缓冲器间隔和所述当前时钟间隔之间的第一相对差别超出第一预定阈值TH1的情况下,将所述当前编码率增加第一增量值,其中所述第一增量值是从所述第一相对差别计算得到的;以及
在所述当前时钟间隔和所述当前缓冲器间隔之间的第二相对差别超出第二预定阈值TH2的情况下,将所述当前编码率减少第二增量值,其中所述第二增量值是从所述第二相对差别计算得到的。
为了方便起见,可将TH1选为至少0.05,并将TH2选为至少0.02。
在上述方法中,所述第一增量值等于所述第一相对差别除以第一衰减参数AF1,且所述第二增量值等于所述第二相对差别除以第二衰减参数AF2,其中选择所述第一衰减参数AF1和所述第二衰减参数AF2以使得防止对所述当前编码率的过度或快速过调并且确保所述调整步骤的稳定性。
在本发明的另一实施方式中,步骤(iii)包括只有在未检测到所述转码媒体片段的传输中存在暂停的条件下才对所述当前编码率进行调整。
在本发明的所述另一实施方式中,步骤(iii)还包括检测所述暂停,其中包括:
计算时钟间隔平均和当前时钟间隔,其中所述时钟间隔平均是自对所述媒体文件的编码已经开始以来的过去当前时钟间隔的平均,所述当前时钟间隔是在当前时间和上次编码的之前时间之间测量的;以及
在所述当前时钟间隔超出所述当前间隔平均预定差额XC的情况下,确定检测到所述暂停。
上述方法还包括在满足下列条件的情况下确定检测到所述暂停:
已经出现了至少两个当前时钟间隔;以及
所述暂停已经被检测到的次数小于检测到暂停的最大次数(MP)。
所述方法还包括在所述当前时钟间隔超出所述时钟间隔平均乘以参数M的情况下确定检测到暂停。所述方法还包括在检测到所述暂停的情况下以所述平均时钟间隔取代所述当前时钟间隔。在本发明的实施方式中,MP是3,XC是1,且M是4。
根据本发明的另一方面,提供了用于对媒体文件或媒体文件的一部分进行编码以用于在到移动单元的变化带宽链路上进行实时传输的媒体处理系统,该媒体处理系统包括:
处理器和具有存储在其上的用于由所述处理器执行的计算机可读指令的非瞬时性计算机可读存储媒介,形成:
转码器,被配置为将所述媒体文件的一个或多个片段转码成转码媒体片段,以形成流片段;以及
动态比特率适配器,被配置为将所述转码器的当前编码比特率作为之前形成的流片段的估计传送时间的函数进行调整,所述估计传送时间是将所述之前形成的媒体片段从所述转码器传递并由所述变化带宽链路消耗所需的时间间隔。
在上述媒体处理系统中,所述动态比特率适配器还被配置为将所述当前编码率作为所述流片段在所述移动单元处的估计显示时间的函数进行调整,该估计显示时间是从与两个之前形成的流片段相关联的时间戳导出的。
所述媒体处理系统还包括转码器缓冲器,该转码器缓冲器适于将转码媒体片段转发到网络、以及将与所述转码媒体片段中的至少一些转码媒体片段相关联的时间戳发送到所述动态比特率适配器。
所述动态比特率适配器包括:
挂钟模块,用于追踪所述当前时间;以及
服务质量(QoS)调整器,被配置为将所述当前时间和所述时间戳处理成QoS值,该QoS值将被发送到所述转码器以用于随时对所述转码器的编码比特率进行调整。
在上述媒体处理系统中,动态比特率适配器还包括暂停检测器,该暂停检测器被配置为检测所述转码媒体片段的传输的中断、以及在检测到所述中断的情况下抑制所述动态比特率适配器对所述当前编码率的调整。
所述动态比特率适配器还被配置为将所述当前编码率作为所述当前编码率的函数进行调整。
在本方面的一种实施方式中,所述动态比特率适配器还被配置为将所述估计传送时间估计为当前时间和上次编码的之前时间之间的当前时钟间隔。
所述动态比特率适配器还被配置为:
确定当前缓冲器间隔,该当前缓冲器间隔表示之前流片段在所述移动单元处的估计显示时间,所述当前缓冲器间隔是从嵌入在两个之前形成的流片段中的时间戳导出的;
将所述当前时钟间隔与所述当前缓冲器间隔进行比较;以及
将所述当前编码率作为所述当前时钟间隔和所述当前缓冲器间隔的函数进行调整。
所述动态比特率适配器还被配置为在所述当前时钟间隔与所述当前缓冲器间隔之间有预定量的差别的情况下对所述当前编码率进行调整。
根据本发明的另一方面,其中提供了用于对媒体文件或媒体文件的一部分进行编码以用于在到移动单元的变化带宽链路上进行实时传输的方法,该方法包括:
采用至少一个处理器,以用于:
(a)以等于初始编码率的当前编码率将所述媒体文件的至少第一片段编码成转码媒体片段以形成流片段,以及传送所述流片段;
(b)基于之前传送的流片段的估计传送时间将所述当前编码率重新评估成新编码率,所述估计传送时间是将被所述变化带宽链路消耗的所述流片段所需要的时间间隔;
(c)将所述当前编码率设置为等于所述新编码率;
(d)以所述当前编码率将所述媒体文件的另一片段编码成转码媒体片段;以及
(e)重复步骤(b)到(d),直到所述媒体文件或媒体文件的一部分已经被完全转码。
在上述方法中,步骤(b)包括将所述估计传送时间估计为当前时间和上次重新评估的之前时间之间的当前时钟间隔。
所述步骤(b)还包括:
确定当前缓冲器间隔,该当前缓冲器间隔表示上一个流片段在所述移动单元处的估计显示时间,所述当前缓冲器间隔是从嵌入在所述上一个和之前的流片段的所述转码媒体片段中的至少一些转码媒体片段中的时间戳导出的;
将所述当前时钟间隔与所述当前缓冲器间隔进行比较;以及
在所述当前时钟间隔不同于所述当前缓冲器间隔的情况下,对所述当前编码率进行修改。
在上述方法中,所述当前编码率是作为所述当前时钟间隔和所述当前缓冲器间隔的函数被修改的。
在上述方法中,步骤(b)还包括将所述新编码率作为所述当前编码率、以及上一个流片段在所述移动单元处的估计显示时间的函数进行计算,所述估计显示时间是嵌入在所述上一个和之前的流片段的所述转码媒体片段中的至少一些转码媒体片段中的时间戳的函数。
例如,所述函数可以是当前编码率和调整参数的乘积,其中所述调整参数取决于所述估计显示时间和所述估计传送时间。
在本发明的实施方式中,步骤(b)包括仅在N秒的当前时钟间隔过去后重新评估当前编码率。
在本发明的替换实施方式中,步骤(b)还包括检测所述转码媒体片段的传输的中断,以及在检测到所述中断的情况下抑制对所述当前编码率的调整。
从而,提供了用于对媒体文件或媒体文件的一部分进行编码以用于在到移动单元的带宽改变的链路上进行实时传输的改进方法和系统。
附图说明
现在通过具体示例的方式结合附图对本发明的实施方式进行描述,其中:
图1示出了现有技术的媒体传输系统100;
图2示出了根据本发明的实施方式的媒体传递系统200,其中包括可变比特率转码器202;
图3示出了可变比特率转码器系统300的简化框图,其中包括图2的可变比特率转码器202;
图4示出了根据本发明的实施方式的动态比特率调节进程400的流程图;
图5是图4的QoS重新评估步骤408的更为详细的流程图;
图6示出了图5的步骤508“初始化QoS计算”的扩展流程图;
图7示出了图5的步骤520“检测暂停”的扩展流程图;
图8示出了图5的步骤524“处理暂停”的扩展流程图;
图9是图5的步骤528“计算QoS”的扩展流程图;
图10是图4的步骤412“应用新的QoS值”的扩展流程图;
图11示出了根据本发明的另一实施方式的修改动态比特率调节进程1100的流程图;
图12是图11的分段QoS重新评估步骤1108的更为详细的流程图;以及
图13是图12的“初始化分段QoS计算”步骤1206的更为详细的流程图。
具体实施方式
本发明的实施方式的目标是提高通过带宽随时间改变的网络的HTTP多媒体传递中的用户体验。这通过动态改变多媒体文件的编码率以匹配可用带宽来实现。
可在ICAP协议上实施所述方案,但到装置的最终传递是基于HTTP的,并且所述方案均等地适用于两种协议。
当用户通过移动网络流传输视频时,网络经常不具有足够的可用带宽来提供近乎实时的传递。结果,由于视频在端装置上拖延,观看体验的质量很差。
为了避免这一问题,根据发明的实施方式,通过随时调整当前编码率以近似地匹配可用带宽来调节媒体的编码率。当使用HTTP协议进行流传输时,客户端应用不向服务器发送任何反馈,并且基本的传输控制协议(TCP)连接信息不能被可靠地使用。
现有方案将实时流传输协议(RTSP)用作控制协议,其中通过用户数据报协议(UDP)的实时传输协议(RTP)用于数据传递。当使用这些协议时,视频播放器每秒若干次将反馈从移动单元发送到服务器。该反馈还包括关于网络修复(分组丢失、抖动等)的信息,而且允许自动调整编码率。授权给Francis R.Labonte等人的题为“DATA STREAMING THROUGHTIME-VARYING TRANSPORT MEDIA”的美国专利7,844,725的全部内容在这里通过引用而视为加入,其公开了用于在随时间变化的连接上进行数据流传输的方法。
使用HTTP来代替RTSP和RTP的组合是让人期待的,这是因为HTTP是普遍的网页协议。其用来传输几乎任何类型的数据。由于HTTP支持是针对网页客户端和服务器两者的要求,通过HTTP传输视频对于在不使用诸如RTSP/RTP的只为更特定目的提供服务的并行协议的情况下最大化客户端和服务器之间的互操作性来讲是天然合适的。类似的示例,可考虑文件下载。文件传输协议(FTP)是特别针对该目的设计的,但如今,网页上的相当比例的文件都是通过HTTP而不是FTP传输的。
另一考虑是设备的互操作性。HTTP是广泛互操作的。其在服务器侧和客户端侧都具有数不尽的实施。Apache作为其实际的参考实施,每个客户端都可与之互操作。另一方面,RTSP则在许多商业实施中产生非兼容性问题(还可参见关于HTTP与RTSP/RTP比较的文章:http://www.remlab.net/op/vod.shtml)。
然而,当在音频和视频流传输中使用HTTP时,关于所述传递的唯一可用信息来自TCP连接,其在操作系统层被管理,并且未意识到多媒体。同样,在多媒体服务器和客户端之间还经常发现代理服务器。这些代理服务器处理与客户端装置之间的连接,并且它们建立它们自己的连接。本发明的实施方式在不需要从接收客户端到流传输服务器的显性反馈的情况下使得能够在HTTP连接上进行有效的音频和视频流传输。
图2示出了根据本发明的实施方式的媒体传递系统200,该媒体传递系统200包括可变比特率转码器202,可变比特率转码器202为在可变带宽链路204上从媒体服务器计算装置108传送到移动单元104中的移动视频应用206的媒体文件提供动态比特率调节。优选地,到移动(目的地)单元104的可变带宽链路204提供到HTTP代理服务器计算装置112的HTTP连接。在图2中,我们示出到移动单元104的HTTP链路204。该链路可以是直接链路,例如实验室中,或者通过因特网,包括到移动单元104自身的无线点(wireless drop)。
移动单元104是例如智能手机、膝上电脑、平板、或用来设置媒体会话的另一像计算机一样的装置之类的装置。
移动视频应用206包括存储在诸如存储器的计算机可读存储媒介中用于供处理器执行的计算机可读指令。
在一种实施方式中,可变比特率转码器202包括存储在诸如存储器的计算机可读存储媒介中用于供处理器执行的计算机可读指令。可替换地,可在固件中实施可变比特率转码器202。
可变比特率转码器202被示为嵌入在ICAP服务器110中,该ICAP服务器110通过ICAP链路耦合到HTTP代理服务器112,应该理解的是,可变比特率转码器202还可以替换地被嵌入在HTTP代理服务器112中或媒体服务器108中。
图3示出了可变比特率转码器系统300的简化框图,可变比特率转码器系统300包括媒体处理服务器302,媒体处理服务器302是计算装置,至少包括程序存储存储器304、CPU306和网络接口308,以及图2的可变比特率转码器202。可变比特率转码器202被优选地实现为包括存储在程序存储存储器304中并由CPU306执行的指令的软件模块。在本发明的各种实施方式中,媒体处理器服务器302可表示媒体服务器108、因特网内容调节协议(ICAP)服务器108、或超文本传输协议(HTTP)代理服务器112。
可变比特率转码器202包括动态比特率适配器310、会话变量存储模块312、转码器314、转码缓冲器316和挂钟318。动态比特率适配器310包括QoS调整器模块320和暂停检测器模块322。会话变量存储模块312包括配置文件324和保存变量存储326。从而,在本发明的一种实施方式中,可变比特率转码器202的上述模块310、312、314、316、318、320、322和324包括存储在计算机存储器中供处理器执行的计算机可读指令。
网络接口308包括硬件(物理接口)和软件(协议)。
CPU306运行操作系统(OS,未示出),例如Linux,其中包括协议。
OS还提供基于在计算机中可用的时钟芯片的定时服务,可从其中导出当前时间(CT)。这在挂钟318模块中展现。
DBRA310模块在需要时从OS软件(核)读取时间(挂钟时间),但挂钟318模块可能对其进行修饰,例如对其进行缩放或偏移,以及保持本地“挂钟”变量,该变量在转码媒体片段传输开始时从零开始计时,并从而使得当前时间(CT)对DBRA310可用。
在操作过程中,通过转码缓冲器316、网络接口308和通过可变带宽链路204(其中网络接口308的功能是实施作为诸如HTTP的应用协议的基础的可靠传输控制协议(TCP)),转码器314接收媒体文件328、将媒体文件328转码或编码成适于向移动单元104传输的比特率。
在传送一个或多个转码媒体片段(还将被称作流片段)的过程中使用的时间间隔,依赖于可变带宽链路204上可用的带宽并受到可靠传输控制协议(TCP)的控制。从而,可通过在连续流片段离开转码器缓冲器316时观测时刻(instance)来计算在流片段的传输过程中使用的近似时间,其中从挂钟318的输出获得时间值。计算的传送时间被称为“估计传送时间”。
为了阐明表示“传送时间”或“估计传送时间”,应该注意的是,这可以有效地作为以可变带宽链路204的比特率顺次传送转码片段所需的时间段,即转码片段在离开可变比特率转码器202的同时所占用的时间。其并不是可变比特率转码器202和移动单元104之间的延迟时间,该延迟时间是未知的且与本发明的实施方式的操作无关。
估计传送时间是将从转码器传递并由带宽变化链路所消耗的一个或多个之前的流片段所需的时间间隔。
应该理解的是,在优选实施方式的变形中,还可从较早的流片段中导出估计传送时间,其中所述较早的流片段并不紧挨在估计的时间之前。
动态比特率适配器310监控来自转码器缓冲器316的时间戳,并使用挂钟和会话变量存储模块312执行算法,以用于估计可变带宽链路204上的可用带宽以及相应地调整当前服务质量(QoS)值。转码器314然后相应地应用当前QoS值来调整当前编码比特率。在下文中,术语“转码比特率”、“编码率”和“QoS值”在本申请中可交替使用。“转码比特率”和“编码率”直接指的是来自转码器314的转码操作的结果比特率;“QoS值”是输入到转码器314的参数,其用于控制编码率,从而间接地指明编码率。
当发起会话时,包括初始QoS值的会话参数被确定并被存储在配置文件324中。
在QoS调整器模块320中周期性地计算新的QoS值,其使用比特率调节功能来比较估计传送时间,即把流片段(包括一个或多个转码片段)从可变比特率转码器202传送所花费的时间。估计传送时间还被称作当前时钟间隔,并且估计显示时间是在移动单元104中显示相同流片段所需的时间,正如嵌入在流中的时间戳所指示的一样。估计显示时间(还被称为当前缓冲器间隔)是在流片段的时间戳中隐式指明的时间,其中所述流片段的时间戳供移动单元的显示功能在实时显示所述流片段的过程中使用。之前观测和计算的值(比如在开始发送流片段时的挂钟时间和时间戳)以及在计算间隔平均的过程中需要的值被保留在保存变量存储326中。在本发明的实施方式中,当前时钟间隔等于至少3秒的调节刷新间隔。
应该理解的是,链路204上可用的比特率并不是直接可观测的,而且关于移动单元104中的任何缓冲器的占用情况的任何信息也都不是可用的。然而,在按照所嵌入的时间戳所指示实时接收、缓冲以及显示所述视频流的时候,移动单元104将随时自动接收附加流片段。在这种情况中,举例来讲,由基础网络协议(TCP)来管辖传输速率。只要可变比特率转码器202能够如挂钟时间所测那样实时发送每个这种片段,则链路比特率是足够的。但如果比特率不够,则这将在可变比特率转码器202中被检测到,这是因为之前的流片段不能在足够短的时间内被发送。当假定移动单元104具有用来平滑比特率变化的接收缓冲器时,如果链路比特率长时间不够,则该接收缓冲器将饿死(starve)。为了避免这一情况,可变比特率转码器202将需要缩减编码率(QoS)。
类似地,当可用比特率大得多时,传送一个流片段比时间戳所指示的时间间隔所花时间要少,并且QoS值能够增加。下文在图9中对QoS调整器模块320的功能进行详细描述。
当在移动单元104中对流的显示被临时暂停时,即转码媒体片段的传输中断发生时,可变比特率转码器202将不能发送附加流片段。提供了暂停检测器模块322,以检测这一状况以及避免错误地调整QoS值。
如在针对给定的原始和转码媒体文件格式的格式标准文档中所规定的那样将时间戳嵌入到原始和转码媒体中。时间戳被嵌入到至少一些转码媒体片段中,而不管其格式如何。下表1示出了支持时间戳的公共媒体文件格式和标准编解码器的部分列表。定义相关实时时刻的时间戳被用来将移动单元104中的接收的视频序列的实时显示锁定为原始视频序列的相应的实时序列。作为结果,可通过在转码媒体片段被传送时观测在这些转码媒体片段中的时间戳并从而计算“估计显示时间”来在可变比特率转码器202处估计所述“显示时间”,即通过在移动单元处常规(非快进)显示一个或多个转码媒体分段所占用的时间间隔。
表1:文件格式和编解码器标准
表1包括用来对各种标准和相应的编解码器进行命名的公知缩写。
F4V和FLV是已知为来自Adobe系统的Flash视频的视频文件格式。3GPP(第三代合作伙伴计划)和3GPP2(第三代合作伙伴计划2)分别基于UMTS(通用移动电信系统)和CDMA2000(码分多址)技术提供针对蜂窝电话网络的3G技术。MOV是在Quicktime(苹果公司)中使用的文件格式。MPEG(移动图像专家组)TS(传输流)定义针对MPEG流的文件格式。WebM是被设计用来提供用于HTML5视频的开放视频压缩格式的音视频格式,其由Google资助。
这里所列的音频编解码器的缩写扩展是:AAC(高级音频编码)、AMR(适应多速率音频编解码)、AMR-WB(适应多速率音频编解码-宽带)、MP2(MPEG-2音频标准)和MP3(其中MP代表MPEG-部分)。
Vorbis是音频格式的名称,其定义了Xiph.Org机构的编解码实施。
视频编解码器中存在根据在H.263和H.264中定义的ITU(国际电信联盟)标准的编解码器,而MPEG-2和MPEG-4是MPEG编解码标准的不同版本。VP6是来自On2科技的视频编解码实施,而VP8则是由Google所发布的开放视频压缩格式,其最初由On2科技所创建。
转码器314可对任何所列格式实施转码(毫无偏见),其中这些格式如今在各种系统中可用并正被使用。然而,转码器314的细节并不属于本发明的范围,本发明专注于为了使转码比特率适应可用网络带宽而向转码器314提供QoS(或编码比特率)参数。
由动态比特率适配器310所提供的动态比特率调节(DBRA)用于在空中转码的会话。这意味着,通过保持转码进程与挂钟同步,正好及时对媒体文件的音频和视频流进行转码。将转码配置成比实时稍快以使DBRA算法起作用是很重要的。转码器314将即将被发送的转码数据存储在转码器缓冲器316中。一旦转码帧被转码,就将它们从转码器缓冲器316通过HTTP连接进行推送。
当允许DBRA时,随时对转码会话(转码会话还将被简称为会话)进行监控,例如周期性地(例如以3秒的间隔)监控,以访问在所述间隔期间可用的带宽,这可通过将其传送表示一个或多个视频片段的一定量的转码数据所花费的时间(传送时间、或估计传送时间,如前文所定义)(由挂钟318所测量)与视频帧在移动单元104处实时显示所花费的时间(显示时间、或估计显示时间,如前文所定义)(由嵌入在视频片段中的时间戳所指示)相比较来实现。
换言之,传送时间由网络链路的可用比特率(带宽)管辖,而显示时间是接收装置(例如移动单元104)显示所接收的片段的时间。很明显,为了防止拖延,需要在不长于实际视频片段的显示时段的时段中传送所述片段。
从而,本发明的实施方式提出以开放回路的方式来估计在片段传输期间可用的带宽;将其与片段的显示时间进行比较;以及如果需要的话相应地调整针对下一将被发送的片段的转码比特率。下文中,术语“片段”和“缓冲器”或“转码缓冲器”可替换使用。
将根据其文件格式使用时间戳进行标记的转码数据(片段)通过转码器缓冲器316转发到网络接口308。当转码器缓冲器216中的转码数据被发出时,对它们的时间戳进行检查,以计算间隔(间隔A,还被称为当前缓冲器间隔(CurrentBufferInterval),参见下表2中的变量名称)。系统在转码器缓冲器316中向客户端发送转码数据,一旦这一步完成,DBRA检查缓冲器的时间戳是什么。
确定两个时间间隔:
间隔A=上次发送的缓冲器的时间戳,减去(-)在之前的重复中发送的最后一个缓冲器的时间戳;以及
间隔B=当前挂钟时间减去(-)之前的重复的挂钟时间。
间隔B还被称为当前时钟间隔(CurrentClockInterval),参见下表2中的变量名称。
随时对两个间隔进行比较,且如果计算得到重大差别(或正或负),则以与该差别相关的参数来调整(增加或降低)比特率。需要注意的是,比特率永远不被增加到在会话开始时建立的初始比特率之上。
-如果间隔A大于间隔B,则这意味着能够以比实时在当前比特率更快的速度传递所述媒体,从而能够增加比特率。
-如果间隔B大于间隔A,则这意味着不能在实时使用所述可用带宽传递所述媒体,并且所述编码比特率必须被降低。
当前时钟间隔(间隔B)提供估计传送时间或上限,即在该间隔期间从缓冲器向移动单元传送转码媒体片段所花费的时间(即用来离开缓冲器且被链路消耗的时间,如前所述)。当前缓冲器间隔(间隔A)是对在当前时钟间隔期间传送的转码媒体片段的显示时间的估计。被假定显示所述媒体的移动单元中的视频播放器不能被本发明的实施方式的系统直接或间接访问。但嵌入在所述转码媒体片段的至少一些转码媒体片段中的且移动单元中的视频播放器用来实时显示视频的时间戳提供该信息。
本说明书中,为了清楚起见,将术语“片段”与各种限定词一起使用。媒体文件328(在转码之前)包括片段,还被称为“媒体片段”,每个媒体片段对应于例如一个或多个视频帧、或特定最小数量毫秒的音频,其足够供转码器进行操作。每个媒体片段具有足够的尺寸,从而其能被转码。在转码之后,相应的“转码媒体片段”与“媒体片段”具有相同的语义内容,但通常包括较少的比特。“转码媒体片段”被发送(流传输)到移动单元,其中一组多个连续的“转码媒体片段”形成“流片段”。根据本发明的实施方式,“流片段”包括多个“转码媒体片段”,其表示约3秒的实时视频或音频,这是将花费约3秒在移动单元处实时显示的转码媒体片段的量。该“显示时间”由嵌入在原始“媒体片段”以及“转码媒体片段”中的时间戳指明。由于将“转码媒体片段”发送通过转码缓冲器,所以转码媒体的这些经过缓冲的片段还可被简称作“转码缓冲器”或“转码缓冲器片段”。
由于HTTP连接不提供来自视频播放器的反馈,所以DBRA算法还尝试检测或“猜测”视频播放器被暂停的情况。在这些情况中,远程单元中的播放器缓冲器将最终填满,而且播放器将停止读取数据,这将随后引起间隔比较返回编码率和传递速率之间的大差别。这将不是网络或带宽问题,且不是降低比特率的理由。
用户暂停的以下属性被识别出,这是因为它们被估计为用户暂停的指示符:
1.挂钟间隔大于在每次重复都被调整的平均挂钟间隔。
2.挂钟间隔大出多于一秒。
3.挂钟间隔大于平均挂钟间隔乘以参数4。
4.暂停尚未发生过多于两次。
当检测到暂停情况时,不修改比特率且丢弃针对这一不规则重复的挂钟间隔,即为了防止影响进一步的重复,重新调整挂钟间隔平均。
在以下的附图中的流程图的辅助下提供了对DBRA310的功能性的更为具体的描述。
图4示出了动态比特率调节进程400的流程图,其中包括以下步骤:
402:“开始转码”;
404:“生成下一转码缓冲器”;
406:“发送转码缓冲器”;
408:“重新评估QoS”;
410:“QoS值改变了吗?”;
412:“应用新的QoS值”;
414:“转码完成?”;以及
416:“结束”。
步骤404“生成下一转码缓冲器”到414“转码完成?”形成动态比特率调节回路418,其中执行该回路,直到媒体已被完全转码和发送为止。如果会话终止,则也可停止回路。
步骤402“开始转码”是对媒体进行转码的起始点。其表示为将被转码以及被发送到客户端的媒体创建新会话的时间点。
步骤404“生成下一转码缓冲器”表示通过生成转码媒体的缓冲片段(还被简称为“转码缓冲器”)将媒体文件328的片段转码成转码媒体片段的步骤。通过在原始媒体(即媒体文件328)上的转码器314中应用编码算法对其进行创建。
在步骤406“发送转码缓冲器”中,一旦已经从原始媒体生成一个转码缓冲器(转码媒体片段),则通过已经建立的会话将其发送到客户端。
在步骤408中“重新评估”中,当前QoS值被重新评估或调整。在下图5中对这一步进行详细扩展。潜在地,每次发送转码缓冲器时都对QoS值进行重新评估(调整)。这使得比特率能够随着缓冲器被发出而被动态地调整。
在步骤410“QoS值改变了吗?”中,确定作为之前步骤中重新评估的结果QoS值是否已被改变。如果QoS值已被改变(步骤410的结果是“是”),则使用新的QoS值来改变针对下一转码缓冲器的生成的编码比特率,如在步骤412“应用新的QoS值”中所详述,其将在下图10中详细扩展,否则执行继续到步骤414:“转码完成?”(步骤410的结果是“否”)。
步骤414“转码完成?”中,确定是否已经将媒体完全转码并发送。如果是这一情况(步骤414以“是”结束),则动态比特率调节进程400以步骤416“结束”结束,否则执行回路回到步骤404:“生成下一转码缓冲器”。
在DBRA算法中使用的会话变量存储在会话变量模块312(图3)中并且列于下表2中。
表2:DBRA算法中使用的会话变量
图5是图4的QoS重新评估步骤408的更为详细的流程图,其中包括步骤:
502:“进入”;
504:“TTR>=1.0?”
506:“是第一次QoS计算?”;
508:“初始化QoS计算”;
510:“计算当前时钟间隔(CCI)和当前缓冲器间隔(CBI)”:
512:“CCI>N秒?”;
514:“增加间隔索引”;
516:“计算时钟间隔和”;
518:“计算时钟间隔平均”;
520:“检测暂停”;
522:“是否检测到暂停?”;
524:“处理暂停”;
526:“CCI等于CBI?”;
528:“计算QoS”;以及
530:“返回”。
QoS重选估计步骤408以步骤502“进入”开始,在步骤504到528中计算新的QoS值,并使用步骤530“返回”返回。
在步骤504“TTR>=1.0?”中,确定当前转码节流率是否大于或等于1.0。如果是的话(步骤504以是结束),则执行继续下一步骤506,否则(步骤504以否结束)不需要转码以减小比特率且过程返回(步骤530)。
TTR是在配置会话时建立的参数。当TTR小于1.0时,不执行转码,且过程立即返回。TTR提供一种途径来控制原始媒体将被转码的速度。使用等于1.0的TTR,1分钟的媒体将在约1分钟之内被转码。使用等于2.0的TTR,该媒体将在约30秒内被转码。该值提供一种用来调节转码速度vs.CPU使用率的途径。增加TTR可以更快地提供转码媒体但使用更多的CPU。比特率适用于原始和转码媒体两者。两者都具有编码比特率,但DBRA310的工作是按照需要动态修改转码媒体的比特率,例如通过告知转码器314以导致具有比原始更低的比特率的转码媒体的较低比特率进行转码来实现。
在步骤506“是第一次QoS计算?”中,确定这是否是针对该会话的第一次QoS计算。如果是的话(步骤506以是结束),则执行继续步骤508“初始化QoS计算”,其中对各种会话变量进行初始化。在下图6中对步骤508进行扩展。如果这不是针对该会话的第一次QoS计算(步骤506以否结束),则执行继续进行步骤510。
在步骤510“计算当前时钟间隔(CCI)和当前缓冲器间隔(CBI)”中,按如下计算当前时钟间隔和当前缓冲器间隔:
CCI:=CT-PQCT,
其中CT是当前时间,且
PQCT是之前的QoS计算时间;
以及
CBI:=(CBT-PBT)/TTR,
其中PBT是之前的缓冲器时间戳,以及
TTR是转码节流率。
在计算新的QoS值的过程中使用CCI和CBI。当前时钟间隔是跨度从如步骤528中计算的之前的QoS计算时间到当前时间的时间段。当前缓冲器间隔是通过分割跨度从如步骤528中计算的之前的缓冲器时间戳到当前缓冲器时间戳的时间段获得的,其除以转码节流率。当建立媒体会话时(图4,步骤402),在配置文件中规定转码节流率(TTR)。
在步骤512“CCI>N秒?”中,确定当前时钟间隔(CCI)是否超过N秒的最小当前时钟间隔,其中N被优选地设置为等于3的值,但其范围可从例如2到5。如果是的话(步骤512以是结束),则执行继续进行下一步骤514,否则(步骤512以否结束)过程返回(步骤530)。值N被选择以针对可用带宽中的改变提供足够迅速的响应,这是为了保护视频缓冲器不经受溢出或不足。步骤512确保周期性地(大约每N秒)有效执行对当前编码率的实际评估(步骤528,“计算QoS”)。
在步骤514“增加间隔索引”中,增加当前间隔索引(CII)。在每次重新计算QoS时必须增加间隔索引。当计算间隔平均时其被用作除数。
在步骤516“计算时钟间隔之和”中,通过使用新的时钟间隔(当前时钟间隔CCI)进行增加来更新当前时钟间隔之和(CIS)。保留时钟间隔之和,从而可在下一步骤中计算时钟间隔平均。
在步骤518“计算时钟间隔平均”中,将时钟间隔的当前和(CIS)除以在上述步骤514中已经设置的当前间隔索引(CII)得到的结果计算为时钟间隔平均(CIA)。
在步骤520“检测暂停”中,对状况进行分析,其足以启发指示(作为猜测)用户很可能已经暂停了媒体。这是通知的猜测,但不确定。在下图7中对步骤520进行扩展。
在步骤522“检测到暂停?”中,之前的步骤520的结果被用来确定用户是否很可能已经暂停了媒体。如果检测到暂停(步骤522以是结束),则在下一步骤524中处理暂停,否则(步骤522以否结束)执行继续进行步骤526。
在步骤524“处理暂停”中,为了使可用带宽不被错误地低估,对算法变量进行调整。在下图8中对步骤524进行详细的扩展,为了尝试将带宽问题与由用户发起的媒体的暂停进行区分,这是必需的。两者都会导致慢速或停止的缓冲器传送。
在步骤526“CCI等于CBI?”中,确定上一个转码器缓冲器的传送时间是否对应于由挂钟所指示的实时。这由当前缓冲器间隔(CBI)等于当前时钟间隔(CCI)相等所表明。如果它们相等(步骤526以是结束),则不需要重新计算QoS并且通过返回步骤530终结步骤408,否则(步骤526以否结束)在下一步骤528中计算新的QoS值。
在步骤528“计算QoS”中,在准备动态比特率调节回路418的下一重复的过程中计算新的QoS值,但只有当时钟和缓冲器间隔(如之前步骤526中所确定的)之间存在差别时且如果在步骤522中确定没有检测到任何暂停的情况下才计算。在步骤528之后,通过返回步骤530来终结步骤408的进程。在下图9中更为详细的扩展步骤528。
图6示出了图5的步骤508“初始化QoS计算”的扩展流程图,其中包括步骤:
602:“之前的QoS计算时间:=当前时间”;
604:“之前的缓冲器时间戳:=当前缓冲器时间戳”;
606:“间隔索引:=0”;以及
608:“时钟间隔和:=0”。
当发出转码缓冲器时,保存PreviousQoSCalculation Time、PreviousBufferTimestamp、IntervalIndex、和ClockIntervalSum的值,但当开始新的会话时并且在发出第一转码缓冲器之前,必须对这些保存的值进行初始化(在步骤602-608)。
在步骤602“之前的QoS计算时间:=当前时间”中,将PreviousQoSCalculationTime初始化为当前时间。由于这仅是第一次QoS计算,所以不存在任何真实的之前的QoS计算时间。该值被保存以用于下一次QoS计算。
在步骤604“之前的缓冲器时间戳:=当前缓冲器时间戳”中,将之前的缓冲器时间戳初始化为当前缓冲器时间戳。由于这是第一个缓冲器,所以不存在任何真实的之前的缓冲器时间戳。该值被保存以用于下一次QoS计算。
在步骤606“间隔索引:=0”中,间隔索引被初始化为0。这不是第一个间隔,这是由于第一个间隔是从前两个缓冲器计算出的。
在步骤608“时钟间隔和:=0”中,时钟间隔和被初始化为0。由于如步骤606中所解释的那样,第一间隔尚不存在,所以还不存在任何时钟间隔和。
图7示出了图5的步骤520“检测暂停”的扩展流程图,其中包括步骤:
702:“间隔索引>1?”
704:“暂停猜测计数<MP?”;
706:“(CCI-CIA)>XC秒?”;
708:“CCI>(CIA*M)?”;
710:“检测到暂停:=‘真(TRUE)’;和
712:“检测到暂停:=‘假(FALSE)’。
步骤702到708包括多个条件,对这些条件进行测试以确定是否检测到暂停。只有所有这些条件都为真的情况下,才认为已经发生了暂停。
在步骤702“间隔索引>1?”中,确定间隔索引是否大于一。如果不是(步骤702以“否”结束),则执行跳到步骤712,否则在步骤704中测试下一条件。
在步骤704“暂停猜测计数<MP?”中,确定暂停猜测计数(即检测到的暂停的数量)是否小于检测到的暂停的最大数量“MP”,MP的值优选地被设为3。如果不是的话(步骤704以“否”结束),则执行跳到步骤712,否则在步骤706中测试下一条件。
在步骤706“(CCI-CIA)>XC秒?”中,确定当前时钟间隔(CCI)是否比计算的时钟间隔平均(CIA)要大多于差额“XC”的秒数,差额XC的值被优选地设置为1。如果不是的话(步骤706以“否”结束),则执行跳到步骤712,否则在步骤708中测试下一条件。
在步骤708“CCI>(CIA*M)?”中,确定当前时钟间隔(CCI)是否大于参数“M”乘以计算的时钟间隔平均(CIA)。如果不是的话(步骤708以“否”结束),则执行跳到步骤712,否则执行继续到步骤710。参数“M”被优选地设置为等于4的值。
在步骤710“检测到暂停:=‘真(TRUE)’”中,布尔变量“检测到暂停”(PauseDetected)(PD)被设置为“TRUE”,并且步骤520的进程完成。
在步骤712“检测到暂停:=‘伪(FALSE)’”中,布尔变量“检测到暂停”(PauseDetected)(PD)被设置为“FALSE”,并且步骤520的进程完成。
需要注意的是,常量“MP”、“XC”和“M”的优选值被选择为在检测何时发生暂停的过程中提供合理的“猜测”,并且不是简单的在可用带宽中的缩减。不同的值也可被发现是有效的。
图8示出了图5的步骤524“处理暂停”的扩展流程图,其中包括步骤:
802:“之前的时钟间隔和:=时钟间隔和-当前时钟间隔”;
804:“时钟间隔和:=之前的时钟间隔和+(之前的时钟间隔和/(间隔索引-1));以及
806:“增加暂停猜测计数”。
在步骤524的进程中,通过更新相关变量来处理检测到的用户暂停。
步骤802“之前的时钟间隔和:=时钟间隔和-当前时钟间隔”可被更简洁的表示为PCIS:=CIS–CCI。之前的时钟间隔和的值被重置为其以前的值,其是当前时钟间隔和减去当前时钟间隔的值。
步骤804“时钟间隔和:=之前的时钟间隔和+(之前的时钟间隔和/(间隔索引-1))可被更简洁的表示为CIS:=PCIS+(PCIS/(II-1))。当前时钟间隔和的值被设置为从增加了平均增量的修正的之前的时钟间隔和估计的值,其中所述平均增量计算为之前的时钟间隔和除以间隔的数量减一(目前的暂停间隔)。
在步骤806“增加暂停猜测计数”中,其还可被更简洁的表示为PGC:=PGC+1,对暂停猜测计数加一,以防止在特定限制之上检测到暂停(参见以上步骤704)。
步骤524的进程主要是在不正常的长时钟间隔已经导致检测到用户暂停后对时钟间隔和的修正重新计算(以及因此时钟间隔平均)。这种时钟检测被丢弃且被平均时钟间隔取代,从而它们不对后续的计算产生影响。由于用户暂停不是带宽问题且不应导致对比特率的修改,所以它们被基本忽略。
图9是图5的步骤528“计算QoS”的扩展流程图,其中包括步骤:
902:“CBI>CCI?”;
904:“Delta1:=CBI-CCI”;
906:“Difference1:=Delta1/CBI”;
908:“Difference1>TH1?”;
910:“QoS:=1.0+Difference1/AF1”;
912:“Delta2:=CCI-CBI”;
914:“Difference2:=Delta2/CCI”;
916:“Difference2>TH2?”;
918:“QoS:=1.0-Difference2/AF2”;
920:“之前的QoS计算时间:=当前时间”;以及
922:“之前的缓冲器时间戳:=当前缓冲器时间戳”。
在步骤528的进程中,QoS值是通过评估显然的链路带宽中的任何改变并且相应地增加或减少QoS以遵循所述改变来重新计算的,其中所述改变是从当前时钟间隔(CCI)和当前缓冲器间隔(CBI)之间的差别估计出的。
步骤902到918是在比特率调节功能924中提供的,该比特率调节功能924对图3的QoS调整器模块320的功能性进行描述。
在步骤902“CBI>CCI?”中,确定CBI(当前缓冲器间隔)的值是否大于CCI(当前时钟间隔)的值。如果CBI大于CCI,则将如步骤904到910中计算的那样增加QoS的值,否则QoS的值将按步骤912到918中所计算的那样减少。按照较早的步骤526(图5)中所确定的,只有CBI不等于CCI时才进入步骤902。
步骤904“Delta1:=CBI–CCI”说明了当当前缓冲器间隔大于当前时钟间隔时(即当应该增加比特率时)对当前时钟间隔和当前缓冲器间隔之间的差值(Delta1)的计算。
步骤906“Difference1:=Delta1/CBI”说明了对第一相对差别(Difference1)的计算,以指示当前缓冲器间隔与当前时钟间隔相比成比例地大多少。Difference1的值是通过步骤904中计算的差值(Delta1)除以当前缓冲器间隔来获得的。然后,在步骤910中计算新的QoS,但只有如步骤908“Difference1>TH1?”中所确定的那样Difference1大于第一阈值“TH1”时才这样做。所述阈值有助于避免对非常低的波动进行比特率修改。
在步骤908“Difference1>TH1?”中,确定在之前的步骤中计算的第一相对差别超过第一阈值。第一阈值TH1被优选地设置为至少等于0.05的值,对应于等于5%的相对差别。如果第一相对差别不超过第一阈值(步骤908以“是”结束),则执行继续进行下一步骤910,其中将对QoS的值进行调整,否则QoS将不被调整并且执行跳到步骤920。
步骤910“QoS:=1.0+Difference1/AF1”说明了当确定比特率应该增加第一增量值时如何计算新的QoS值。由于等于1.0的值不指示任何修改,较小的QoS值将指示比特率减少,而较大的QoS值将指示比特率增加。从而,在这一情况中,经过调整的QoS值将大于1.0。在步骤910中,通过将上述步骤906中的第一相对差别(Difference1)除以第一衰减参数“AF1”来计算所述第一增量值,其中所述AF1优选地具有约8.0的值。第一增量值加上1.0是将被发送(在图4的步骤412中)到编码器的新的QoS值,从而其对QoS参数(对应于编码比特率)增加第一增量值。
步骤912“Delta2:=CCI–CBI”说明了当当前缓冲器间隔不大于当前时钟间隔时(即当比特率应该减少或保持不变时)对当前时钟间隔和当前缓冲器间隔之间的差值(Delta2)的计算。
步骤914“Difference2:=Delta2/CCI”说明了对第二相对差别的计算,其作为指示当前时钟间隔比当前缓冲器间隔大多少的比值。Difference2的值是通过步骤912中计算的差值(Delta2)除以当前时钟间隔来获得的。然后,在步骤918中计算新的QoS值,但只有如步骤916“Difference1>TH1?”中所确定的那样Difference2大于第二阈值“TH2”时才这样做。这有助于避免对非常低的波动进行比特率修改。
在步骤916“Difference2>TH2?”中,确定在之前的步骤中计算的第二相对差别超过第二阈值。第二阈值TH2被优选地设置为至少等于0.02的值,对应于等于2%的相对差别。如果第二相对差别不超过第二阈值(步骤916以“是”结束),则执行继续进行下一步骤918,其中将对QoS的值进行调整,否则QoS将不被调整并且执行跳到步骤920。
阈值TH1和TH2有助于对非常低的波动进行不必要的比特率修改。
步骤918“QoS:=1.0-Difference2/AF2”说明了当确定比特率应该降低第二增量值时如何计算新的QoS值。在步骤918中,通过将上述步骤914中的第二相对差别(Difference1)除以第二衰减参数“AF2”来计算所述第二增量值,其中所述AF2优选地具有约为6.0的值。从1.0减去第二增量值获得的值是将被发送(在图4的步骤412中)到编码器的新的QoS值,从而其对QoS参数(对应于编码比特率)降低第二增量值。
衰减参数AF1和AF2的值被选为确保调整算法的稳定性,这是为了防止对编码率(QoS值)进行过度或过快的过修正。在没有任何调整参数的情况下,对编码率的每次调整将引起编码率随着每次调整连续地从过高反弹到过低。调整参数减小每次修正的影响并具有一定的阻尼效应,从而理想地,编码率通过多个调整间隔逐渐接近传输比特率。另一方面,如果调整参数过大(过阻尼),则编码率接近传输比特率的过程将过于缓慢。通过审慎的选择调整参数AF1和AF2,能够实现足够快速的修正。
在步骤920“之前的QoS计算时间:=当前时间”中,当前时间在每次QoS计算后被保存为之前的QoS计算时间(PQCT),从而可在动态比特率调节回路418(图4)的下一重复的计算步骤510(图5)中使用PQCT的值。
类似地,在步骤922“之前的缓冲器时间戳:=当前缓冲器时间戳”中,当前缓冲器时间在每次QoS计算后被保存为之前的缓冲器时间戳(PBTS),从而可在动态比特率调节回路418(图4)的下一重复的计算步骤510(图5)中使用PBTS的值。
参数“TH1”、“TH2”、“AF1”和“AF2”的优选值被选择用来提供如所述的期望调整行为。其它值可以工作地同样好或更好。例如,建议“TH1”和“TH2”分别被设置为至少0.05和0.02,而为“AF1”和“AF2”所提出的值(分别为8.0和6.0)只是近似的。
图10是图4的步骤412“应用新的QoS值”的扩展流程图,其中包括步骤:
1002:“向编码器通知QoS修改请求”;
1004:“接受QoS修改请求”;
1006:“将QoS应用到当前编码比特率”;以及
1008:“限制编码比特率”。
步骤1002在动态比特率适配器310(图3)中执行,此时将经过更新的QoS值传递到转码器314(图3),其中在转码器314中执行剩余步骤1004到1008。需要注意的是,转码器314具有从可变比特率转码器子系统202内的DBRA调节器310接收QoS修改通知的能力。
在步骤1002“向编码器通知QoS修改请求”中,事件包括将QoS通知从动态比特率适配器310发送到转码器314。
在步骤1004“接受QoS修改请求”中,由转码器314接收并接受QoS通知。
在步骤1006“将QoS应用到当前编码比特率”中,当接收到这一改变通知时,转码器314将通知活动编码比特率。比特率中的差别取决于新的QoS值,并且与之成正比。
在步骤1008“限制编码比特率”中,在将编码率修改成对应于新的QoS值的同时,确保实际编码比特率被限制在配置的最小和最大值之内,即使应用所述新的QoS值将在数学上导致比特率位于范围之外也是如此。
本发明的实施方式的DBRA算法(还被称为原始服务)可被概括为如下步骤:
(a1)在服务器或代理服务器与移动单元之间建立HTTP会话(转码会话或简单“会话”);
(b1)用移动单元建立初始比特率(编码率);
(c1)移动单元使用HTTP–GET请求媒体文件;
(d1)从服务器对转码媒体的全部进行传送,按如上所述对比特率进行操纵;不从移动单元接收任何附加GET请求;
(e1)当已经发送了转码媒体时,HTTP会话关闭。
初始比特率是从被转码的原始媒体的比特率和会话配置中的移动单元的简档确定的。原始服务将媒体逐渐转码并发送到客户端,而并不接收任何附加HTTP请求。一旦已经发送了所述媒体(或客户端退出),则会话关闭。在发送每个缓冲器之后可修改比特率。
在本发明的另一实施方式中,提出了经过修改的DBRA算法(还被称作经过修改的服务),并概括如下:
(a2)在服务器或代理服务器与移动单元之间建立转码(HTTP)会话;
(b2)与移动单元建立初始比特率;
(c2)移动单元使用HTTP–GET只请求媒体文件的分段;
(d2)从服务器对转码媒体分段进行传送,在传输分段期间不对所述比特率进行操纵;
(e2)当已经发送了分段时,会话被中断,直到移动单元决定请求(GET)另一分段为止,此时:
(f)从之前的分段传输的保存参数中针对下一分段计算新的比特率,以及
(g)继续转码会话,进行步骤(c2)。
需要注意的是,移动单元所请求的每个分段由一个或多个媒体片段构成。经过修改的服务的转码媒体分段根据编码率调整有效地对应于原始服务的流片段,差别在于原始服务的流片段由时间(大约N秒的间隔)来刻画,而在修改的服务中,随着分段被移动单元请求而通过分段的方式来定义转码媒体分段(流片段)。
经过修改的DBRA算法被设计为匹配特定智能手机(例如Apple公司制造的iPhone)的使用惯例,其中为了下载媒体内容建立转码会话(HTTP会话)内的单独但相关的短分段会话(TCP会话)。
在经过修改的DBRA算法中,初始比特率是从被转码的原始媒体的比特率和移动单元的简档(配置)确定的。客户端(即移动单元)使用HTTP请求媒体。其首先接收播放列表,该播放列表对其告知哪些分段离开并且它们被安放在哪;尚未涉及任何转码。客户端随后使用HTTP请求分段。一旦接收到第一个这种请求,则通过修改的服务在服务器上创建转码会话。将应用到每个分段的连续比特率调整是基于保存在转码分段状态中的信息(即时间间隔等)确定的。经过修改的服务在转码媒体片段中转码并发送转码分段;转码媒体片段(转码缓冲器)被发送到客户端,直到达到分段的结尾为止。客户端随后请求下一分段,除非这是播放列表的最后一个分段或客户端退出(此时在服务器上终结转码会话)。经过修改的服务认识到每个转码分段是相同转码会话的一部分并使用重新调整的比特率对每个下一请求分段进行转码并对其进行发送。
在对分段进行转码之前,转码分段状态被用来确定将应用到初始(原始)比特率的百分比。转码比特率不能高于初始比特率,从而百分比不能高于100%。
原始服务在单个会话中提供对媒体文件的传输,其中在所述单个会话期间,可在每个转码流片段(其可包含尽可能少的单个转码媒体片段)被发送之后调整转码器比特率,而在所述经过修改的服务中,除了在使用原始建立的比特率的第一会话之前,在分离的相关分段会话中传送单独的分段(还被称为媒体分段)并且在每个分段会话之前调整转码器比特率。虽然还将分段作为一串转码缓冲器(转码媒体片段)进行发送,但并未提出在相同分段中从缓冲器到缓冲器进行任何比特率修改。
针对初始分段的QoS值(比特率)是由移动单元建立的,并且它是移动单元的性质的函数。在开始对每个后续分段进行转码之前,如下图12中所详细描述那样计算QoS(上一分段的持续时间除以分段开始间隔,并且乘以在请求之前的分段时上一次保存的QoS)。每次请求分段时通过将“累积”保存的QoS值乘以基于上一分段计算的值来对转码器比特率(即QoS)进行重新调整。该值提供用来在开始对下一分段进行转码之前应用到所述分段的初始比特率的参数。由于分段请求对于具有在所述请求中指示的(原始)初始比特率的分段文件来讲是新的连接,所以需要记住应该以百分之多少的初始比特率对下一分段进行转码。然后在每次请求另一分段时对该百分比进行调整。
经过修改的服务的“起始间隔”对应于原始服务的“当前时钟间隔”;两者都用于为了与估计显示时间进行比较而对估计传送时间进行计算的过程中,即(经过修改的服务的)片段的分段的显示时间vs.流片段(即在每个约3秒的间隔(原始服务)中传送的转码媒体片段)的显示时间。
在经过修改的服务中,假定媒体分段足够短,从而比特率不需要在所述分段期间发生变化,即以在发送之前的媒体分段之后建立的比特率来发送多个转码缓冲器(转码媒体片段)。比特率可以只在分段之间发生变化。
原始服务中的暂停检测使用时钟间隔平均来确定上一个时钟间隔是否是“不正常”地长。经过修改的服务中的暂停检测使用起始间隔(两个分段请求之间的时间)的相应平均来确定上一个起始间隔是否过长。因此,在传输分段期间,不尝试任何暂停检测。如果检测到暂停,则这将是何时请求分段的案例,且认识到自请求上一个分段以来已经过了很长时间。如果满足其他条件(检测到暂停的次数,以及间隔如何不寻常等),则假定或猜测视频被暂停且没有进行任何比特率修改。
将两种实施方式合并或至少部分地合并是可能的,即针对每个分段的转码缓冲器运行原始服务包括在分段期间进行暂停检测,然后根据积累的平均分段比特率针对下一分段重置QoS。针对在分段内部处理缓冲器来集成一些原始服务是可能的。
图11示出了根据本发明的另一实施方式的修改动态比特率调节进程1100的流程图,其中包括步骤:
1102:“移动连接以下载一个分段”;
1104:“会话存在?”;
1106:“创建会话”;
1108:“重新评估分段QoS”;
1110:“保存分段QoS值”.
1112:“应用保存的分段QoS”;
1114:“开始对分段进行转码”;
1116:“生成下一转码缓冲器”;(=404)
1118:“发送转码缓冲器”;以及(=406)
1120:“到达分段的结尾?”。
经过修改的动态比特率调节(MDBRA)进程1100包括包含步骤1102至1120的回路,这些步骤在移动单元已经从媒体处理服务器302(图3)获得分段的播放列表之后开始。MDBRA进程1100覆盖在接收到由移动单元发出的请求时对媒体分段进行转码和传输,其中所述移动单元进行连接以按需下载分段。当建立第一连接时创建转码会话,并且该转码会话用于后续请求。当移动单元关闭与服务器的连接或者退出时(未在图11中示出),MDBRA进程1100结束。
从第二个分段开始,刚好在转码之前,在请求每个新的分段之后,进行步骤1108“重新评估分段QoS”和1110“保存分段QoS值”,这是由于这是知道当前分段的其实间隔的时间。此时,可通过将上次(即之前一次请求分段)保存的QoS值与QoS调整参数相乘,按照步骤1108中的描述来计算新的QoS值(编码比特率),其中所述QoS调整参数是通过将上一分段的持续时间除以当前分段其实间隔来计算的。换言之,每次计算时都存储所述QoS值,并且每次请求另一分段时通过将所保存的值乘以基于上一分段计算的值来重新调整所述QoS值。该值提供用来在进行转码之前应用到分段的初始比特率的参数。由于每个分段请求是针对具有(原始)初始比特率的分段文件的新的连接,所以需要记住应该以百分之多少的初始比特率从分段到分段进行转码。然后在每次请求分段时对该百分比进行调整。
在步骤1102“移动连接以下载一个分段”中,移动单元连接并请求一个分段。
在步骤1104“会话存在?”中,确定服务器和移动单元之间的转码会话是否已经存在。如果是的话(步骤1104以“是”结束)则执行继续进行步骤1108,否则(步骤1104以“否”结束)在下一步骤1106中创建转码会话。
在步骤1106“创建会话”中,根据移动单元的简档(配置)建立初始转码比特率(QoS=1.0)。然后执行继续进行步骤1114。
在步骤1108“重新评估分段QoS”中,基于上一完成的分段和之前的分段之间的时间间隔,在对该上一完成的分段进行转码的过程中使用的所保存的QoS值被重新评估。在下图12中对步骤1108进行更为详细的扩展。
在步骤1110“保存分段QoS值”中,在为对下一分段进行转码进行准备的过程中对新计算的分段QoS值进行保存。
在步骤1112“应用保存的分段QoS”中,应用新保存的QoS值,即将其发送到转码器314,类似于图10中所详细描述的步骤412。
在步骤1114“开始对分段进行转码”中,开始对当前分段进行转码。该步骤类似于步骤402。
MDBRA进程1100的步骤1116“生成下一转码缓冲器”和步骤1118“发送转码缓冲器”分别类似于DBRA进程400的步骤404和406。
在步骤1120“到达分段的结尾?”中,确定是否已经达到当前传送的分段的结尾。如果不是这一情况(步骤1120以“否”结束),则执行回路回到步骤1116,以处理下一缓冲器,否则(步骤1120以“是”结束)执行过程继续进行步骤1102,以等待由移动单元请求下一分段。
图12是图11的分段QoS重新评估步骤1108的更为详细的流程图,其中包括步骤:
1202:“TTR>=1.0?”
1204:“是第一次分段QoS计算吗?”;
1206:“初始化分段QoS计算”;
1208:“计算当前起始间隔(CSI)和输出分段持续时间(OSD)”;
1210:“增加间隔索引”;
1212:“计算起始间隔和”;
1214:“计算起始间隔平均”;
1216:“检测分段暂停”;
1218:“是否检测到分段暂停(SP)?”;
1220:“处理分段暂停”;
1222:“上一分段QoS:=OSD/CSI”;以及
1224:“SQoS:=SQoS*上一分段QoS”。
分段QoS重新评估步骤1108与图4的DBRA进程的步骤重新评估步骤408(在图5中扩展)相似,其中的差别在于使用分段起始间隔和输出分段持续时间值分别代替时钟间隔和缓冲器间隔。
在步骤1202“TTR>=1.0?”中,确定当前转码节流率是否大于或等于1.0。如果是的话(步骤1202以是结束),则执行继续下一步骤1204,否则(步骤1202以否结束)不需要转码以减小比特率且过程返回。
在步骤1204“是第一次分段QoS计算吗?”中,确定这是否是对分段的第一次QoS评估。所述分段评估不同于图5中的简单QoS,这是因为分段QoS确定整个分段的转码比特率,而不仅仅是转码器缓冲器传输。如果这是第一次分段QoS计算(步骤1204以是结束),则执行继续步骤1206“初始化分段QoS计算”,其在下文图13中进行扩展。如果这不是第一次分段QoS计算(步骤1204以否结束),则执行继续进行步骤1208。
在步骤1208“计算当前起始间隔(CSI)和输出分段持续时间(OSD)”中,按如下计算当前起始间隔和输出分段持续时间:
CSI:=CT-PSST,
其中CT是当前时间,且
PSST是之前分段起始时间;
以及
OSD:=上一输出分段的持续时间。
步骤1208与图5的步骤510在一定程度上类似,但仅依赖于上一分段的起始时间(当前起始间隔)和持续时间(显示时间),其由嵌入在上一分段的转码媒体片段中的时间戳提供。
在步骤1210“增加间隔索引”中,增加当前间隔索引(CII)。在每次重新计算QoS时增加间隔索引。当计算间隔平均时所述间隔索引被用作除数。步骤1210与图5的步骤514相同。
在步骤1212“计算起始间隔和”中,起始间隔和(SIS)增加当前起始间隔。步骤1212与图5的步骤516相似,但提供对起始间隔(CSI)的求和而不是对时钟间隔(CCI)的求和。
在步骤1214“计算起始间隔平均”中,将起始间隔和除以间隔索引来计算起始间隔平均(SIA)。步骤1214与图5的步骤518相似,但提供对起始间隔的平均而不是对时钟间隔的平均。
步骤1216“检测分段暂停”类似于图5的步骤520“检测暂停”,但分别使用CSI和SIA来确定PauseDetected(检测到暂停)的布尔值,而不是使用CCI和CIA。
步骤1218“是否检测到分段暂停(SP)?”类似于图5的步骤522“检测暂停”。在步骤1218中,之前的步骤1216的结果被用来确定用户是否很可能已经暂停了媒体。当请求分段时将检测分段暂停并且意识到自请求上一分段以来已经过了很长时间。如果检测到分段暂停(步骤1218以是结束),则在下一步骤1220中处理分段暂停,否则(步骤1218以否结束)执行继续进行步骤1222。
步骤1220“处理分段暂停”类似于图5的步骤524“处理暂停”,并且其主要是在非正常地长分段间隔已经导致检测到用户暂停之后对分段起始间隔和(而不是步骤524中的时钟间隔和,参见图8)的修正重新计算。
在步骤1222“上一分段QoS:=OSD/CSI”中,作为在对上一分段进行转码的过程中使用的QoS调整参数(对应于相对比特率),变量“上一分段QoS”是通过将上一输出的分段(OSD)的持续时间(即上一分段的估计显示时间)除以当前起始间隔(即上一分段的估计传送时间)来计算的。
在步骤1224“分段QoS(SQoS):=SQoS*上一分段QoS”中,将上一分段QoS乘以当前分段QoS,以达到将在对下一分段进行转码的过程中使用的分段QoS。在步骤1224中,分段QoS重新评估进程1108完成,并且保存新计算的分段QoS值(在步骤1110中,图11)。
图13是图12的“初始化分段QoS计算”步骤1206的更为详细的流程图,其中包括步骤:
1302:“分段QoS:=1.0”,用于将分段QoS初始化为1.0;
1304:“之前的分段起始时间:=N/A”,用于将之前的分段起始时间初始化为等于“不可用”的值,这是因为还未存在任何之前的分段;
1306:“间隔索引:=0”,用于将间隔索引初始化为0;以及
1308:“起始间隔和:=0”,用于将起始间隔和初始化为0。
步骤1206的目标类似于图5的步骤508的目标,用于在对第一分段进行转码之前初始化变量。
由本发明的实施方式来提供用来针对与变化带宽的连接上的传输提供媒体文件的带宽调节的方法和系统,从而改进带宽随时间变化的网络上的HTTP多媒体传递中的用户体验。
除了HTTP之外,在网络上对媒体文件进行流传输的协议属于本发明的范围之内。这种协议不需要从移动单元向动态比特率适配器提供应用级别反馈,但被认为是提供了可靠的传输机制。
还可基于理论考虑或纯实验地设想并研发用于检测暂停的附加参数和方法。这类改进被认为属于本公开的范围。
在本发明的实施方式中,转码器314包括具有存储在存储器中以供处理器执行的计算机可读指令的软件,但可替换地,转码器314还可被实施为数字信号处理器(DSP)芯片或应用特定集成电路(ASIC)中的单独处理器(比如协处理器)上的硬件。
虽然详细描述了本发明的特定实施方式,但应该理解的是,所描述的实施方式只是说明性的而不进行限制。在广义上不偏离本发明的范围的情况下,可在权利要求的范围内对实施方式进行各种修改和修正。
Claims (16)
1.一种用于对媒体文件或媒体文件的一部分进行编码以用于在到目的地单元的变化带宽链路上进行实时传输的方法,该方法包括:
采用转码器的至少一个处理器,以用于:
(i)将所述媒体文件的一个或多个片段编码成转码媒体片段,以形成流片段;
(ii)发送流片段到所述转码器的传输缓冲器;
(iii)确定之前形成的流片段的估计传送时间,该估计传送时间是将所述之前形成的流片段从所述传输缓冲器传递并由所述变化带宽链路消耗所需的时间间隔;
(iv)确定所述流片段的估计显示时间,所述估计显示时间是在所述流片段从所述传输缓存器被传递之前确定的,并且是从嵌入在两个之前形成的流片段中的时间戳导出的;以及
(v)将所述转码媒体片段的当前编码率作为所述估计传送时间和所述估计显示时间的函数来调整。
2.根据权利要求1所述的方法,其中步骤(i)包括:
以初始编码率将所述媒体文件的至少第一片段编码成相应的第一转码媒体片段;以及
将所述当前编码率设置为等于所述初始编码率。
3.根据权利要求1或2所述的方法,其中步骤(v)包括以经过调整的当前编码率将所述媒体文件的随后片段编码成相应的转码媒体片段。
4.根据权利要求1所述的方法,其中步骤(ii)还包括将所述估计传送时间作为当前时间与上次编码的之前的时间之间的当前时钟间隔进行估计。
5.根据权利要求4所述的方法,其中步骤(iii)还包括:
将所述估计显示时间表示为当前缓冲器间隔;
将所述当前时钟间隔与所述当前缓冲器间隔进行比较;以及
将所述当前编码率作为所述当前时钟间隔和所述当前缓冲器间隔的函数进行调整。
6.根据权利要求5所述的方法,其中所述调整还包括:
在所述当前缓冲器间隔与所述当前时钟间隔之间的第一相对差别超出第一预定阈值TH1的情况下,将所述当前编码率增加第一增量值,所述第一增量值是从所述第一相对差别计算得到的;以及
在所述当前时钟间隔与所述当前缓冲器间隔之间的第二相对差别超出第二预定阈值TH2的情况下,将所述当前编码率减少第二增量值,所述第二增量值是从所述第二相对差别计算得到的。
7.根据权利要求1所述的方法,其中步骤(v)还包括检测所述转码媒体片段的传输的中断、以及在检测到所述中断的情况下抑制对所述当前编码率的调整。
8.根据权利要求7所述的方法,其中检测所述传输的中断包括:
计算时钟间隔平均、当前时钟间隔,所述时钟间隔平均是自对所述媒体文件的编码已经开始以来的过去的当前时钟间隔的平均,所述当前时钟间隔是在当前时间与上次编码的之前的时间之间测量的;以及
在所述当前时钟间隔超出所述当前间隔平均预定差额XC的情况下,确定检测到所述中断。
9.一种用于对媒体文件或媒体文件的一部分进行编码以用于在到目的地单元的变化带宽链路上进行实时传输的媒体处理系统,该媒体处理系统包括:
处理器和具有存储在其上的用于由所述处理器执行的计算机可读指令的非瞬时性计算机可读存储媒介,形成:
转码器,被配置为将所述媒体文件的一个或多个片段转码成转码媒体片段,以形成流片段;发送流片段到所述转码器的传输缓冲器;以及
动态比特率适配器,被配置为将所述转码器的当前编码比特率作为之前形成的流片段的估计传送时间和所述估计显示时间的函数进行调整,所述估计传送时间是将所述之前形成的媒体片段从所述传输缓冲器传递并由 所述变化带宽链路消耗所需的时间间隔,并且所述估计显示时间是在所述流片段从所述传输缓存器被传递之前确定的,并且是从嵌入在两个之前形成的流片段中的时间戳导出的。
10.根据权利要求9所述的媒体处理系统,其中所述动态比特率适配器还被配置为将所述估计传送时间估计为当前时间与上次编码的之前的时间之间的当前时钟间隔。
11.根据权利要求9或10所述的媒体处理系统,其中所述动态比特率适配器还被配置为:
以初始编码率将所述媒体文件的至少第一片段编码成相应的第一转码媒体片段;以及
将所述当前编码率设置为等于所述初始编码率。
12.根据权利要求9所述的媒体处理系统,该媒体处理系统还包括转码器缓冲器,该转码器缓冲器适于将转码媒体片段转发到网络、以及将与所述转码媒体片段中的至少一些转码媒体片段相关联的时间戳发送到所述动态比特率适配器。
13.根据权利要求10所述的媒体处理系统,其中所述动态比特率适配器还被配置为:
将所述估计显示时间表示为当前缓冲器间隔;
将所述当前时钟间隔与所述当前缓冲器间隔进行比较;以及
将所述当前编码率作为所述当前时钟间隔和所述当前缓冲器间隔的函数进行调整。
14.根据权利要求10所述的媒体处理系统,其中所述动态比特率适配器包括:
挂钟模块,用于追踪所述当前时间;以及
服务质量QoS调整器,被配置为将所述当前时间和所述时间戳处理成QoS值,该QoS值将被发送到所述转码器以用于对所述转码器的当前编码比特率进行调整。
15.根据权利要求9所述的媒体处理系统,其中所述动态比特率适配 器还被配置为将所述当前编码率作为所述当前编码率的函数进行调整。
16.根据权利要求9所述的媒体处理系统,其中所述动态比特率适配器还包括暂停检测器,该暂停检测器被配置为检测所述转码媒体片段的传输的中断、以及在检测到所述中断的情况下禁止所述动态比特率适配器对所述当前编码率进行调整。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/210,652 | 2011-08-16 | ||
US13/210,652 US9137551B2 (en) | 2011-08-16 | 2011-08-16 | Dynamic bit rate adaptation over bandwidth varying connection |
PCT/CA2012/000658 WO2013023271A1 (en) | 2011-08-16 | 2012-07-10 | Dynamic bit rate adaptation over bandwidth varying connection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103733632A CN103733632A (zh) | 2014-04-16 |
CN103733632B true CN103733632B (zh) | 2017-09-22 |
Family
ID=47712649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280039692.XA Active CN103733632B (zh) | 2011-08-16 | 2012-07-10 | 带宽变化连接上的动态比特率调节 |
Country Status (8)
Country | Link |
---|---|
US (2) | US9137551B2 (zh) |
EP (1) | EP2745523B1 (zh) |
JP (1) | JP6255342B2 (zh) |
KR (1) | KR101996877B1 (zh) |
CN (1) | CN103733632B (zh) |
CA (1) | CA2842391C (zh) |
IL (1) | IL230995A (zh) |
WO (1) | WO2013023271A1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MX336608B (es) | 2011-08-29 | 2016-01-25 | Sling Media Pvt Ltd | Sistemas y metodos para controlar la codificacion de una corriente de medio segmentada utilizando tiempos de transmision de segmento. |
US20130304934A1 (en) * | 2011-09-29 | 2013-11-14 | Avvasi Inc. | Methods and systems for controlling quality of a media session |
US9462302B2 (en) * | 2012-02-23 | 2016-10-04 | Mobitv, Inc. | Efficient delineation and distribution of media segments |
CN104641638B (zh) * | 2012-06-28 | 2018-08-03 | 阿克西斯股份公司 | 使用虚拟帧内帧对视频内容进行编码的系统和方法 |
WO2014026323A1 (en) * | 2012-08-14 | 2014-02-20 | Nokia Corporation | Method and apparatuses for adjusting time, computer-readable storage media and a computer program product |
US9699103B2 (en) * | 2012-09-05 | 2017-07-04 | Flash Networks, Ltd | Method and system for flow controlling |
US9560392B2 (en) | 2012-09-07 | 2017-01-31 | Google Inc. | Dynamic bit rate encoding |
WO2014117775A1 (en) * | 2013-01-31 | 2014-08-07 | Codemate A/S | Network content delivery method using a delivery helper node |
US20140286438A1 (en) * | 2013-03-19 | 2014-09-25 | Nvidia Corporation | Quality of service management server and method of managing streaming bit rate |
US9462032B2 (en) * | 2013-07-24 | 2016-10-04 | Google Inc. | Streaming media content |
US9137285B2 (en) | 2013-10-21 | 2015-09-15 | Broadcom Corporation | Adaptive audio video (AV) stream processing |
ITBA20130077A1 (it) * | 2013-11-25 | 2015-05-26 | Cicco Luca De | Meccanismo per il controllo del bitrate di codifica in un sistema di video streaming adattivo basato su buffer di playout e sulla stima di banda. |
EP3108684B1 (en) * | 2014-02-21 | 2019-02-06 | Telefonaktiebolaget LM Ericsson (publ) | Service delivery in a communication network |
US10708328B2 (en) * | 2014-03-17 | 2020-07-07 | Intel Corporation | Hardware assisted media playback and capture synchronization |
FR3022426A1 (fr) | 2014-06-16 | 2015-12-18 | Orange | Gestion par un equipement intermediaire de la qualite de transmission d'un flux de donnees vers un terminal mobile |
JP2016005095A (ja) * | 2014-06-16 | 2016-01-12 | 三菱電機株式会社 | 通信装置及び通信レート調整装置及びアプリケーション実行装置及び通信システム及びプログラム |
CN104038816B (zh) * | 2014-06-20 | 2017-06-23 | 深圳市九洲电器有限公司 | 一种视频同步方法及系统 |
US9769235B2 (en) * | 2014-06-26 | 2017-09-19 | Arris Enterprises Llc | Server side adaptive bit rate control for HTTP streaming clients |
US20160191598A1 (en) * | 2014-08-04 | 2016-06-30 | Likqid Media, Inc. | System and methods that enable embedding, streaming, and displaying video advertisements and content on internet webpages accessed via mobile devices |
US9635069B2 (en) * | 2014-08-06 | 2017-04-25 | Verizon Patent And Licensing Inc. | User feedback systems and methods |
CN105376176B (zh) * | 2014-08-21 | 2019-03-19 | 中国电信股份有限公司 | 保障移动互联网视频业务服务质量的方法、装置和系统 |
CN105791735B (zh) * | 2014-12-24 | 2018-11-27 | 中国电信股份有限公司 | 用于视频通话码流动态调整的方法和系统 |
KR101942208B1 (ko) * | 2015-01-08 | 2019-01-24 | 애리스 엔터프라이지즈 엘엘씨 | Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어 |
US9756112B2 (en) * | 2015-02-11 | 2017-09-05 | At&T Intellectual Property I, L.P. | Method and system for managing service quality according to network status predictions |
US9935993B2 (en) * | 2015-03-31 | 2018-04-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Streaming video over a hybrid network |
EP3391654B1 (en) * | 2016-01-28 | 2019-11-13 | ARRIS Enterprises LLC | Variable buffer handling for adaptive bitrate streaming |
CA3035086C (en) * | 2016-09-19 | 2021-07-13 | Arris Enterprises Llc | Http streaming apparatus and system with pseudo manifest file and just-in-time encoding |
US10832735B2 (en) * | 2017-01-03 | 2020-11-10 | Ayre Acoustics, Inc. | System and method for improved transmission of digital data |
US10812559B2 (en) * | 2017-01-18 | 2020-10-20 | Amazon Technologies, Inc. | Just-in-time variable adaptive encoding and delivery of media content |
JP6922267B2 (ja) * | 2017-03-07 | 2021-08-18 | 株式会社リコー | 端末、プログラム、データ送信方法 |
CN106993237B (zh) * | 2017-04-13 | 2019-05-10 | 中北大学 | 基于mpeg-dash协议的动态自适应码率选择方法 |
KR102307447B1 (ko) * | 2017-05-02 | 2021-09-30 | 삼성전자주식회사 | 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말 |
US10801678B1 (en) * | 2017-10-30 | 2020-10-13 | Race, LLC | Modular emitting device and light emission system |
US10944808B2 (en) * | 2018-07-27 | 2021-03-09 | Verizon Digital Media Services Inc. | Server-side reproduction of client-side quality-of-experience |
CN116095336A (zh) * | 2019-09-23 | 2023-05-09 | 谷歌有限责任公司 | 用于转码视频的方法、设备和计算机可读介质 |
WO2021063488A1 (en) * | 2019-10-01 | 2021-04-08 | Streamonkey Gmbh | Server-side adaptive media streaming |
US11438545B2 (en) | 2019-12-23 | 2022-09-06 | Carrier Corporation | Video image-based media stream bandwidth reduction |
US11463651B2 (en) | 2019-12-23 | 2022-10-04 | Carrier Corporation | Video frame-based media stream bandwidth reduction |
CN113596377A (zh) * | 2021-08-02 | 2021-11-02 | 北京数码视讯技术有限公司 | 卫星通信的监控视频转换装置和系统 |
CN114221870B (zh) * | 2021-12-16 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 用于服务器的带宽分配方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7609645B2 (en) * | 2003-03-24 | 2009-10-27 | Kddi R&D Laboratories, Inc. | Moving picture compression encoding transceiver apparatus |
CN102123303A (zh) * | 2011-03-25 | 2011-07-13 | 天脉聚源(北京)传媒科技有限公司 | 一种音视频文件播放方法、系统及传输控制装置 |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3236000A1 (de) * | 1982-09-29 | 1984-03-29 | Blaupunkt-Werke Gmbh, 3200 Hildesheim | Verfahren zum klassifizieren von audiosignalen |
US4893197A (en) * | 1988-12-29 | 1990-01-09 | Dictaphone Corporation | Pause compression and reconstitution for recording/playback apparatus |
JP3042102B2 (ja) * | 1991-11-22 | 2000-05-15 | 日本電気株式会社 | 多重化送信装置 |
US6633609B1 (en) * | 1996-12-24 | 2003-10-14 | Intel Corporation | Method and apparatus for bit rate control in a digital video environment for arbitrary bandwidth |
US7041941B2 (en) | 1997-04-07 | 2006-05-09 | Patented Medical Solutions, Llc | Medical item thermal treatment systems and method of monitoring medical items for compliance with prescribed requirements |
US7184426B2 (en) | 2002-12-12 | 2007-02-27 | Qualcomm, Incorporated | Method and apparatus for burst pilot for a time division multiplex system |
US6400954B1 (en) | 1998-05-15 | 2002-06-04 | Tlelefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for mode selection based on access network capacity |
US6563517B1 (en) * | 1998-10-02 | 2003-05-13 | International Business Machines Corp. | Automatic data quality adjustment to reduce response time in browsing |
US6208620B1 (en) | 1999-08-02 | 2001-03-27 | Nortel Networks Corporation | TCP-aware agent sublayer (TAS) for robust TCP over wireless |
JP3841256B2 (ja) | 2000-02-15 | 2006-11-01 | 三菱電機株式会社 | 通信システム及び通信方法及び送信端末 |
US7299291B1 (en) | 2000-05-18 | 2007-11-20 | Akamai Technologies, Inc. | Client-side method for identifying an optimum server |
US7260826B2 (en) | 2000-05-31 | 2007-08-21 | Microsoft Corporation | Resource allocation in multi-stream IP network for optimized quality of service |
AU2001276731A1 (en) | 2000-08-25 | 2002-03-04 | Matsushita Electric Industrial Co., Ltd. | Data transmission method and data relay method |
US20020173315A1 (en) | 2001-05-17 | 2002-11-21 | Mazen Chmaytelli | Method and apparatus for adapting capabilities of a wireless communication system to load requirements |
US7460629B2 (en) | 2001-06-29 | 2008-12-02 | Agere Systems Inc. | Method and apparatus for frame-based buffer control in a communication system |
JP2003046976A (ja) * | 2001-07-31 | 2003-02-14 | Matsushita Electric Ind Co Ltd | 映像配信装置、映像配信方法及びプログラム |
CA2464508A1 (en) | 2001-11-30 | 2003-06-12 | Rory Stewart Turnbull | Method and apparatus for critical time multimedia data transmission |
JP3900413B2 (ja) | 2002-02-14 | 2007-04-04 | Kddi株式会社 | 映像情報伝送方式およびプログラム |
US7596373B2 (en) | 2002-03-21 | 2009-09-29 | Mcgregor Christopher M | Method and system for quality of service (QoS) monitoring for wireless devices |
JP4000895B2 (ja) | 2002-04-23 | 2007-10-31 | 日本電気株式会社 | リアルタイム通信のためのビットレート制御方法および装置 |
US20030229693A1 (en) | 2002-06-06 | 2003-12-11 | International Business Machines Corporation | Self-correcting monitor |
KR20030095995A (ko) | 2002-06-14 | 2003-12-24 | 마츠시타 덴끼 산교 가부시키가이샤 | 미디어 전송방법 및 그 송신장치 및 수신장치 |
US7418037B1 (en) * | 2002-07-15 | 2008-08-26 | Apple Inc. | Method of performing rate control for a compression system |
EP1418764A1 (en) * | 2002-11-05 | 2004-05-12 | STMicroelectronics S.A. | Method and apparatus for transcoding sub-picture data, and video display system comprising such apparatus |
SG111978A1 (en) | 2002-11-20 | 2005-06-29 | Victor Company Of Japan | An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
JP4069444B2 (ja) | 2002-12-10 | 2008-04-02 | ソニー株式会社 | 符号化制御方法及び符号化制御プログラム |
AU2003288595A1 (en) | 2002-12-18 | 2004-07-09 | Koninklijke Philips Electronics N.V. | Adaptive encoding of digital multimedia information |
JP2006518948A (ja) | 2003-02-13 | 2006-08-17 | ノキア コーポレイション | マルチメディア・ストリーミングにおけるストリーミング品質適合と制御機構のシグナリング方法 |
US7444425B2 (en) | 2003-03-10 | 2008-10-28 | Meetrix, Inc. | Applying multicast protocols and VPN tunneling techniques to achieve high quality of service for real time media transport across IP networks |
US20050060364A1 (en) | 2003-07-07 | 2005-03-17 | Rakesh Kushwaha | System and method for over the air (OTA) wireless device and network management |
US7400588B2 (en) | 2003-08-01 | 2008-07-15 | Thomson Licensing | Dynamic rate adaptation using neural networks for transmitting video data |
US7016409B2 (en) * | 2003-11-12 | 2006-03-21 | Sony Corporation | Apparatus and method for use in providing dynamic bit rate encoding |
SE526535C2 (sv) | 2003-12-22 | 2005-10-04 | Operax Ab | Förfarande och nod för att kontrollera vidarebefordringskvaliteten i ett datanät |
JP2005217199A (ja) | 2004-01-29 | 2005-08-11 | Sanyo Electric Co Ltd | 信号線回路装置 |
EP1580914A1 (en) * | 2004-03-26 | 2005-09-28 | STMicroelectronics S.r.l. | Method and system for controlling operation of a network |
US7720983B2 (en) | 2004-05-03 | 2010-05-18 | Microsoft Corporation | Fast startup for streaming media |
US7353466B2 (en) | 2004-05-28 | 2008-04-01 | Microsoft Corporation | System and method for generating message notification objects on dynamically scaled timeline |
US8099755B2 (en) * | 2004-06-07 | 2012-01-17 | Sling Media Pvt. Ltd. | Systems and methods for controlling the encoding of a media stream |
BRPI0511858B1 (pt) | 2004-06-07 | 2020-12-22 | Sling Media, Inc. | transmissor de mídia pessoal e respectivo sistema de transmissão, métodos de provimento de acesso a fonte áudio/visual em localização remota da fonte áudio/visual e de fluxo (streaming) de sinal de mídia para local de assinante remoto |
US7474707B2 (en) * | 2004-09-09 | 2009-01-06 | Ibiquity Digital Corporation | Bandwidth reduction of an FM broadcast signal using a baseband precompensation technique |
JP2006129439A (ja) | 2004-09-28 | 2006-05-18 | Kyocera Corp | 通信システム、基地局装置、サーバ装置、移動局装置、及び送信データ量決定方法 |
EP1821442A4 (en) | 2004-11-17 | 2011-07-20 | Sharp Kk | TRANSMITTER APPARATUS, RECEIVER APPARATUS AND COMMUNICATION SYSTEM |
KR20060065482A (ko) * | 2004-12-10 | 2006-06-14 | 마이크로소프트 코포레이션 | 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스 |
JP2006180036A (ja) * | 2004-12-21 | 2006-07-06 | Matsushita Electric Ind Co Ltd | 動画符号化伝送制御装置および動画符号化伝送制御方法 |
GB2423219B (en) | 2005-02-10 | 2007-04-18 | Motorola Inc | A network proxy client, a communication system and a method for providing a service between a server and an end client |
JP4697525B2 (ja) | 2005-04-20 | 2011-06-08 | ソニー株式会社 | 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム |
JP4516496B2 (ja) * | 2005-07-27 | 2010-08-04 | 株式会社日立製作所 | マルチキャスト配信方法及びシステム、コンテンツサーバ |
US8218657B2 (en) | 2005-09-02 | 2012-07-10 | Netgear, Inc. | System and method for automatic adjustment of streaming video bit rate |
US8548048B2 (en) | 2005-10-27 | 2013-10-01 | Qualcomm Incorporated | Video source rate control for video telephony |
US8842555B2 (en) | 2005-10-21 | 2014-09-23 | Qualcomm Incorporated | Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems |
KR100735373B1 (ko) | 2006-02-06 | 2007-07-04 | 삼성전자주식회사 | 통신 시스템에서 데이터 전송 방법 및 시스템 |
WO2007130695A2 (en) | 2006-05-05 | 2007-11-15 | Globstream, Inc. | Method and apparatus for streaming media to a plurality of adaptive client devices |
KR101330631B1 (ko) * | 2006-08-21 | 2013-11-18 | 삼성전자주식회사 | 통신 환경에 대한 정보를 이용한 데이터 전송 방법 및 장치 |
US8606966B2 (en) | 2006-08-28 | 2013-12-10 | Allot Communications Ltd. | Network adaptation of digital content |
US20080062322A1 (en) | 2006-08-28 | 2008-03-13 | Ortiva Wireless | Digital video content customization |
US8014470B2 (en) | 2006-09-13 | 2011-09-06 | Marvell World Trade Ltd. | Decoding method for Alamouti scheme with HARQ and/or repetition coding |
US8780717B2 (en) | 2006-09-21 | 2014-07-15 | General Instrument Corporation | Video quality of service management and constrained fidelity constant bit rate video encoding systems and method |
US7743161B2 (en) | 2006-10-10 | 2010-06-22 | Ortiva Wireless, Inc. | Digital content buffer for adaptive streaming |
US7652993B2 (en) * | 2006-11-03 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Multi-stream pro-active rate adaptation for robust video transmission |
JP2008125063A (ja) | 2006-11-09 | 2008-05-29 | Innowireless Co Ltd | 基地局エミュレーティング機能を有する携帯インターネット計測器及びこれを利用したul同期取得及び端末のテスト方法 |
US8116805B2 (en) | 2006-12-17 | 2012-02-14 | Qualcomm Incorporated | Uplink scheduling for OFDM systems |
US7843824B2 (en) | 2007-01-08 | 2010-11-30 | General Instrument Corporation | Method and apparatus for statistically multiplexing services |
US8139487B2 (en) * | 2007-02-28 | 2012-03-20 | Microsoft Corporation | Strategies for selecting a format for data transmission based on measured bandwidth |
US20080300025A1 (en) | 2007-05-31 | 2008-12-04 | Motorola, Inc. | Method and system to configure audio processing paths for voice recognition |
JP2009005193A (ja) * | 2007-06-22 | 2009-01-08 | Panasonic Corp | 通信端末 |
US8532164B2 (en) | 2008-03-12 | 2013-09-10 | Panasonic Corporation | Wireless communication apparatus, wireless communication system, and wireless communication method |
US7844725B2 (en) | 2008-07-28 | 2010-11-30 | Vantrix Corporation | Data streaming through time-varying transport media |
EP2204954B1 (en) * | 2009-01-06 | 2017-12-27 | Alcatel Lucent | Optimised bandwidth utilisation in networks |
US8396114B2 (en) | 2009-01-29 | 2013-03-12 | Microsoft Corporation | Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming |
WO2010111261A1 (en) | 2009-03-23 | 2010-09-30 | Azuki Systems, Inc. | Method and system for efficient streaming video dynamic rate adaptation |
US9501329B2 (en) | 2009-05-08 | 2016-11-22 | Rackspace Us, Inc. | Methods and systems for cloud computing management |
US20100312828A1 (en) * | 2009-06-03 | 2010-12-09 | Mobixell Networks Ltd. | Server-controlled download of streaming media files |
-
2011
- 2011-08-16 US US13/210,652 patent/US9137551B2/en active Active
-
2012
- 2012-07-10 CA CA2842391A patent/CA2842391C/en active Active
- 2012-07-10 JP JP2014525264A patent/JP6255342B2/ja active Active
- 2012-07-10 EP EP12824490.2A patent/EP2745523B1/en active Active
- 2012-07-10 KR KR1020147003664A patent/KR101996877B1/ko active IP Right Grant
- 2012-07-10 CN CN201280039692.XA patent/CN103733632B/zh active Active
- 2012-07-10 WO PCT/CA2012/000658 patent/WO2013023271A1/en active Application Filing
-
2014
- 2014-02-16 IL IL230995A patent/IL230995A/en active IP Right Grant
-
2015
- 2015-09-14 US US14/853,868 patent/US10499071B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7609645B2 (en) * | 2003-03-24 | 2009-10-27 | Kddi R&D Laboratories, Inc. | Moving picture compression encoding transceiver apparatus |
CN102123303A (zh) * | 2011-03-25 | 2011-07-13 | 天脉聚源(北京)传媒科技有限公司 | 一种音视频文件播放方法、系统及传输控制装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2745523A1 (en) | 2014-06-25 |
US10499071B2 (en) | 2019-12-03 |
JP6255342B2 (ja) | 2017-12-27 |
US20160007033A1 (en) | 2016-01-07 |
KR101996877B1 (ko) | 2019-07-08 |
CA2842391C (en) | 2017-04-04 |
CA2842391A1 (en) | 2013-02-21 |
JP2014529931A (ja) | 2014-11-13 |
EP2745523B1 (en) | 2020-03-18 |
EP2745523A4 (en) | 2015-03-18 |
CN103733632A (zh) | 2014-04-16 |
WO2013023271A1 (en) | 2013-02-21 |
KR20140062465A (ko) | 2014-05-23 |
US20130044801A1 (en) | 2013-02-21 |
IL230995A0 (en) | 2014-03-31 |
US9137551B2 (en) | 2015-09-15 |
IL230995A (en) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103733632B (zh) | 带宽变化连接上的动态比特率调节 | |
US11089347B2 (en) | Adaptation logic for varying a bitrate | |
US10389780B2 (en) | Managed adaptive streaming | |
CN104956631B (zh) | 用于执行链路感知自适应流传输的设备和方法 | |
EP3125498B1 (en) | Estimating processor load | |
US10003626B2 (en) | Adaptive real-time transcoding method and streaming server therefor | |
KR20150042191A (ko) | 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들 | |
US20160037176A1 (en) | Automatic and adaptive selection of profiles for adaptive bit rate streaming | |
CN105684390B (zh) | 用于为自适应流传输客户端预留带宽的方法和设备 | |
GB2519835A (en) | Calibration system | |
Zhang et al. | A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http | |
Thang et al. | Video streaming over HTTP with dynamic resource prediction | |
Kesavan et al. | Improvement of adaptive HTTP streaming using advanced real-time rate adaptation | |
Ognenoski et al. | Segment-based teletraffic model for MPEG-DASH | |
WO2018021950A1 (en) | Device and method for controlling media streaming from a server to a client | |
Jalloul | Dynamic adaptation for video streaming over mobile devices.(c2013) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |