CN103004190A - 视频流传送 - Google Patents

视频流传送 Download PDF

Info

Publication number
CN103004190A
CN103004190A CN2011800313922A CN201180031392A CN103004190A CN 103004190 A CN103004190 A CN 103004190A CN 2011800313922 A CN2011800313922 A CN 2011800313922A CN 201180031392 A CN201180031392 A CN 201180031392A CN 103004190 A CN103004190 A CN 103004190A
Authority
CN
China
Prior art keywords
preload
time
video
minimum
transfer rate
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
CN2011800313922A
Other languages
English (en)
Other versions
CN103004190B (zh
Inventor
迈克尔·埃尔林·尼尔森
伊恩·巴里·克拉布特里
斯蒂芬·克利福德·阿普尔比
罗里·斯图尔特·特恩布尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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
Priority claimed from GBGB1011047.6A external-priority patent/GB201011047D0/en
Priority claimed from EP10251246A external-priority patent/EP2408204A1/en
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN103004190A publication Critical patent/CN103004190A/zh
Application granted granted Critical
Publication of CN103004190B publication Critical patent/CN103004190B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/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/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel 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/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/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/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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

网络包含通过共享网络与一个或多个视频接收机相连接的一个或多个基于网络的视频服务器。多个视频内容中的每一个被在多个恒定质量等级上进行编码并存储在一个或多个所述基于网络的服务器上。响应于来自接收机的请求,视频内容在服务器上被选择并被通过共享网络传送到接收机。系统根据当前正在传送的视频流的特性、已缓存在视频接收器中的比特数和可用网络吞吐量来选择要传送的流的质量等级。目的在于根据可用的网络吞吐量来选择要传送的视频质量,从而使质量最大化,同时确保所有视频数据在网络上及时传送从而使其被解码且显示时不中断。

Description

视频流传送
技术领域
本发明涉及视频流传送,具体而言,其中所述流传送是在具有不确定的带宽可用性的网络上进行的。本发明特别地但不是排他地,适用于对已在多个不同的恒定质量等级上编码的视频进行的传送。
背景技术
传统上,视频点播服务如申请人的BT视觉服务,是以恒定比特率对视频进行编码并将其以相同的恒定比特率通过网络传送来得到支持的。这通常需要在网络上预留带宽,提供这些带宽可能是昂贵的。
使用压缩技术进行编码的视频天然地具有可变的比特率,这是因为在编码图片时所产生的比特数取决于图片的内容:与先前编码的图片的相似程度以及所包含的细节多少。某些视频场景可被编码为具有较少比特数的给定质量,而相反地,其它场景会需要显著更多的比特以获得相同的质量。当使用恒定比特速率编码时,视频必须以随时间变化的质量被编码以满足比特率限制。对于更喜欢观看恒定质量的用户来说,这已经被证明是次优的。而且,通过固定独立于所述视频内容类型的比特率,某些类型的内容诸如新闻和戏剧可被很好地编码,而其他例如快速移动的体育和音乐视频以及音乐只能被编码地很差。利用可变比特速率编码的自适应视频传送可以用来克服这些问题。
自适应传送系统中,由于视频传送系统适应了根据可用的网络吞吐量而传送的视频的比特率,所以对带宽预留的需求被取消。内容可以以对应于多个质量等级的多个比特速率进行编码,并通过网络传送而无需预留带宽。通常,视频数据会被尽可能快地传送,而质量等级(编码比特速率)适于根据达到的网络吞吐量而改变,以便使所传送的视频的质量最大化,同时确保所有视频数据在网络上及时传送从而使其被解码和显示时不中断。
国际专利申请WO2009/112801描述了一种保持恒定的感知质量的可变比特速率编码方法。在视频编码器中使用感知质量度量(其通过考虑掩蔽效应获得与实际观看者的感知之间良好的相关性)来进行具有恒定感知质量的编码。在每一帧内基于相对对比度考虑掩蔽效应为每一帧单独地设置编码参数,特别是量化参数。所得到的编码比特流具有可变的比特速率。
国际专利申请WO2005/093995描述了一种具有视频服务器的网络,该视频服务器通过共享回程与多个客户机装置相连。在多个恒定质量等级上对视频内容进行编码且所编码的比特流存储在基于网络的服务器上。响应于来自客户机的请求,服务器选择已编码的比特流并将其通过共享网络传送到客户机。不同的比特流从而不同的质量之间的切换取决于实际的网络吞吐量,目标是使流的质量最大化。
然而,当对以两个或更多个质量等级进行编码的视频内容进行传送时,需要确定每个可用质量等级上传送视频内容的剩余部分所需的最小比特速率,从而可以根据实际网络传送速率来确定是否要切换到一个不同质量的比特流。
对于给定的视频流确定最小传送比特速率的一种方式是在开始传递之前分析已编码视频流的统计资料。因此,对于每一个视频流内的多个位置中,成对的数据可以被预计算,每对都包含传送比特速率和在传送速率被用于及时传送给定视频流的剩余部分的情况下所需的最小启动延迟。然后该数据用于随后的流传送过程中,基于接收机已经缓存的数据量及网络实际传送速率确定是否可以切换到一个不同质量的流。优选地,所选择的流的质量与可支持的网络传送速率同样高。
发明内容
本发明的实施方式的一个目的是提供一种在网络上对视频序列进行流传送的改进方法。特别是视频序列以多个不同的质量等级进行编码时,本发明的实施方式的目的在于提供一种确定将视频序列切换成特定的质量等级,同时确保及时传送所述视频序列的改进方法。
按照本发明的一个方面,提供了一种通过网络中的传输链路将视频序列从服务器传输到接收机的方法,包括:
(a)在多个质量等级上对媒体序列进行编码;
(b)为每个编码的媒体序列确定一组预计算的数据,包括:对于序列中的多个时间位置的每一个,i)针对多个传输速率中的每一个,为了从序列的所述时间位置到结尾将所述序列及时传送,接收机所需的最小预载,和ii)当接收机上不存在预载时,为了从序列的时间位置到结尾将序列及时传送所需要的传输速率,其中,所述预载是在所述接收机处缓存的数据的用尽时长(playout duration);
(c)将所述视频流之一传输到所述接收机;并且在传输期间,
(d)确定所述接收机的当前预载,并且对于以多个质量等级之一进行编码的媒体序列;
从与相应的质量等级相关的预计算的数据组中选择高于当前预载的第一预载和低于当前预载的第二预载,以及各自的第一和第二传输速率;
计算当考虑相应的第一最小预载和第二最小预载时以第一传输速率和第二传输速率传送的比特总数相等时的时间,作为相交时间;
计算所述相交时间所传送的比特数;
计算所述相交时间所传送的比特数除以当前预载和相交时间之和作为及时传送该流所需的可接受的传送速率;以及
在跟随步骤(d)的经过时间之后,
(e)计算足够的传送速率,其等于所述相交时间所传送的比特数与经过时间期间传送的实际比特数之差,除以当前预载和相交时间的和减去经过时间;并且通过重复步骤(d)计算一个新的可接受的传送速率;以及
(f)确定新的可接受的传送速率和足够的传送速率中的最小值,作为确保及时传送所述序列的剩余部分所需的最小传送速率。
优选地,该媒体流是视频流。所述质量等级对于每个被编码的序列可以是固定的。所述质量等级是感知质量等级。
所述接收机优选的执行步骤(d)到(f)。
相交时间的计算可以被确定为第二预载和第二传输速率的乘积与第一预载和第一传输速率的乘积之差,其中,所述第一相交时间等于所述乘积之差除以第一和第二传输速率之差。
相交时间传送的比特数的计算可以被确定为第二传输速率和第二预载与相交时间之和的乘积,或者是第一传输速率和第一预载与相交时间之和的乘积。
该方法进一步包括:(g)确定所述流在传输链路上的实际传输速率,并基于与实际传输速率相比最小所需的传送速率,确定是否切换到以不同的质量等级编码的序列。
所述时间位置是已编码视频流中的图片组的一个位置。
根据本发明的另一个方面,提供了一种在接收机中处理视频流的方法,包括:
(a)接收一组用于在多个质量等级上编码的媒体序列的预计算的数据,所述组包括:对于所述流中的多个时间位置中的每一个,i)针对多个传输速率中的每一个,为了从序列的时间位置到结尾将序列及时传送,接收机所需的最小预载,和ii)当接收机上不存在预载时,为了从视频流的时间位置到结尾将视频流及时传送所需要的传输速率,其中,所述预载是缓存在所述接收机中的数据的用尽时长;
(b)接收已编码的视频流;以及在接收期间,
(c)确定接收机的当前预载,并且对于以多个质量等级之一进行编码的媒体序列;
从与相应的质量等级相关联的预计算的数据组中选择高于当前预载的第一预载和低于当前预载的第二预载,以及各自的第一和第二传输速率;
计算当考虑相应的第一最小预载和第二最小预载时以第一传输速率和第二传输速率传送的比特总数相等时的时间,作为相交时间;
计算所述相交时间所传送的比特数目;
计算为及时传送该流所需的可接受的传送速率,其作为所述相交时间所传送的比特数量除以当前预载和相交时间之和;以及
在跟随步骤(c)的运行时间之后,
(d)计算足够的传送速率,其等于所述相交时间所传送的比特数量与运行时间期间传送的实际比特数量之差,除以当前预载和相交时间减去经过时间的和;并且通过重复步骤(c)计算一个新的可接受的传送速率;以及
(e)确定新的可接受的传送速率和足够的传送速率中的最小值,作为确保及时传送所述序列的剩余部分所需的最小传送速率。
附图说明
为了更好地理解本发明,现在将仅通过例子对以下附图进行参考,其中:
图1示出了能够自适应传送视频的视频服务器;
图2示出了能够接收自适应视频的接收机;
图3是一个曲线图,显示了针对以可变比特速率编码的视频序列的累积比特曲线及其分段恒定、单调递减,传送调度,称为″下楼传送调度″;
图4是一个流程图,表示在各种质量等级上的视频内容的编码和与每个这些比特流相关的参数的预计算;
图5是一个曲线图,示出了如何对于给定的传送速率来计算预载时间;
图6是一个表格,示出了与比特流相关联的预计算的数据的示例;
图7是一个流程图,示出了接收机如何请求和接收一个包含预计算的数据的视频流;
图8是一个流程图,示出了接收机如何使用预计算的数据来确定流传送每个质量的视频所需的最小传送速率。
图9是一个曲线图,示出了当给定量的数据已缓存在该客户机时,由与较小和较大的传送速率相关的两组预计算的数据可以估计出所需的传送速率;
图10是一曲线图,示出了传送调度,其中通过使用预计算的数据使用插值来计算所述传送速率,并且其中传送是在所述计算的速率上进行,并且在传送每组图片组后计算一个新的速率;
图11是一个曲线图,示出了图8中计算出的所需的传送速率随时间变化的情况;
图12是一个流程图,示出了使用改进的插值方法确定最小的所需传送速率的执行步骤;
图13是示出了当以大于实际所需的传送速率的固定速率进行传送时,插值的所需的传送速率以及改进的计算的所需的传送速率随时间变化的曲线图。
具体实施方式
这里参照特定的示例对本发明进行说明。然而,本发明不限于这些示例。
网络包含通过共享网络与一个或多个视频接收机相连接的一个或多个基于网络的视频服务器。多个视频内容中的每一个在多个恒定质量等级上进行编码并存储在一个或多个所述基于网络的服务器上。响应于来自接收机的请求,视频内容在服务器上被选择并被通过共享网络被传送到接收机。系统根据当前正在传送的视频流的特性、已缓存在视频接收器中的比特数和可用网络吞吐量来选择要传送的流的质量等级。其目的在于根据可用的网络吞吐量选择将要传送的视频质量,从而使质量最大化,同时确保所有视频数据在网络上及时传送从而使其被解码且显示时不中断。
如图1所示,服务器100包括接收非压缩形式的数字编码视频信号104的视频输入接口102。处理器106在本地存储器108如硬盘中存储的程序模块的控制下进行操作,并且可以访问存储器110和经由电信网络与多个客户机设备连接的视频输出接口112。视频输出接口112可以包括缓冲器,其用于在输出编码比特流114之前临时存储视频处理器106所编码的视频。所述存储器包括用于存储已编码的视频和与已编码的视频有关的参数的存储区域150。
程序模块包括通用操作系统120和执行将在稍后进行说明的一个或多个视频编码方法的多个视频编码软件模块。所述软件模块包括几个程序类型,即:
-控制模块122;
-压缩模块124:在本例中,压缩软件执行符合ITUH.264标准的编码算法;
-感知质量评估模块126;
-比特流评估模块128;
应该理解的是,所述多个视频流可被接收、编码和存储在存储器110中,以便随后经由输出接口112进行流传送。
服务器100将已编码的视频传输至包括视频解码器的接收机。图2示出了示例性的接收机200。接收机200通过适当的网络连接到所述视频服务器100,并能够接收和解码由服务器100传输的已编码的视频流。
具体地,接收机200包括视频输入接口202,视频输入接口202可接收已编码的视频信号204,如由服务器100传输的已编码比特流。处理器206在本地存储器208如硬盘中存储的程序模块的控制下进行操作,并且可以访问存储器210和用于连接到适当的输出装置如监视器或电视的视频输出接口212。视频输入接口202包括缓冲器203,其可暂时存储接收到的已编码视频直到所述已编码视频已准备好由所述处理器206进行解码为止。
所述程序模块包括通用操作系统220和执行对所接收的已编码视频数据流进行解码的方法的各种视频解码软件模块。所述软件模块包括几个程序类型,即:
-控制模块222;
-解码模块224:在本实施例中,所述解码软件执行符合ITUH.264标准的解码算法;
-插值模块226;
-比特流切换模块228;
以可变比特速率进行编码的视频序列可以以每一段单调递减的分段恒定比特速率在网络上进行传送。这是Mohammed Ghanbari教授首先注意到的。他将所得到的比特率曲线称为“下楼”函数。
本申请人的国际专利申请WO2004/047455描述了一种对以可变比特速率编码的视频序列进行分析以确定视频传送调度的方法,其中所述序列由一个或更多个单调递减的恒定比特速率传送周期组成。
在一个可选择的显示中,在所述已编码视频序列中的累积比特数是相对于对时间进行绘制的。所述的累积比特曲线的一个示例如图3所示。图3示出了累积比特曲线,其是一个已编码视频序列中的总比特数关于日期和时间的曲线。该流的初始传送所需的“下楼”传送速率是通过原点的最低斜率的线的斜率,且从不到累积比特曲线的右侧,也即,确保所有的比特在它们需要被解码前被传送。这样一种传送线(或传送调度)将在一个或多个位置接触累积比特曲线,但通常仅一次。当视频序列传送到那一点(或这些点的最后)时,所有被传送的视频比特将被解码并且没有比特将被缓冲等待后续解码。从这点向前,新的最低斜率线可被计算,并且下一个已编码的视频比特将以该较低的速率进行传送。
以恒定比特速率编码的视频具有接近于一条直线的累积比特曲线。那些不是以恒定比特率编码的视频,例如,具有恒定量化索引或具有恒定感知质量的已编码视频具有通常不是一条直线的累积比特曲线。这种视频可以以类似于累积比特曲线的传送调度通过网络进行传送,因而在接收机中几乎不需要缓冲,或者若接收机具有无限的缓冲,该视频可以对于正在接收的每一个比特需要被解码之前以任何的传送调度进行传送。在绘图时,时间沿着水平轴且累积比特在垂直轴上,这一要求可以表示为传送调度绝对不能到累积比特曲线的右侧。当接收机中具有无限制的缓冲时,总是能够在任何恒定速率上使用恒定比特速率传送任何比特流:这对于以确保解码被充分延迟以保持传送调度位于累积比特曲线的左侧是必需的。在极端情况下,整个视频序列可被传送得非常缓慢,且只有在传送接近完成时才开始解码。
在这里所考虑的例子中,我们考虑离散“块”中的每一个包括一个或多个帧。块的选择是服从于如下考虑:为了使块间质量的相互依赖保持在最小值,一个块可以是独立于任何其它的块被编码的一个或多个帧,通常从I帧开始(编码时不从任何其它帧进行预测)。在这里的所有实施例中,所选择的块是IBBP格式的图片组(GOP),并且示出的所有图表是按照图片组索引进行绘制的关于每个图片组的累积比特,∑b,其中b是图片组中的比特数。
在设想的流传送系统中,每个视频序列都由视频服务器100进行多次编码,每次使用不同等级的感知质量。以固定等级的感知质量进行编码优先地按照申请人的国际申请WO2009/112801所描述的那样执行。然而,也可以使用其它编码方法,如具有恒定的量化索引的编码。
我们假定接收机具有足够的缓冲能够存储完整的视频流。如果我们确保数据在其被解码之前被传送,这允许传送视频数据的时序与解码视频数据之间是解耦的。
及时传送视频流所需的传送比特速率取决于有多少数据已缓存于接收机处以及将要被解码的比特的比特速率曲线。通过分析传送之前的视频服务器100上的已编码视频流,并通过监视由服务器100传送之后缓存在接收机200上的数据量,我们可以确定对于每个可以被传送的可能的质量等级、及时传送所需的最小比特速率。
在图4的流程图中对视频服务器100执行的编码和预计算进行了概述。在图4的步骤400中,服务器100接收视频序列。在步骤402中,服务器100中的压缩模块124以多个固定质量等级Lq(其中q=1...Q)来编码所述视频序列。为每个图片组g(其中g=1...G)产生的数据量(比特)bqg也被比特流评估模块确定,并连同每个已编码的比特流一起存储在存储器150中。质量等级例如可以被如下设置:为编码过程选择适当的量化参数。
在步骤404中,比特流评估模块128对每个已编码的比特流进行分析,以针对每个图片组中对内容进行编码的每个质量创建给出如下信息的预计算的数据文件。
1)首先我们计算如果没有视频在解码器中被初始缓存且接收机200不发生解码器缓冲器下溢时,传送(传输)图片组和所有后续的图片组所需的最小传送速率Dqg。对于给定的图片组,这个速率可以称为零启动延迟传送速率或零预载传送速率。术语“预载”和启动延迟将可互换使用,指的是视频被缓存在接收机中为回放做好准备的时长。
因此,我们使用先前计算的比特数量bqg从图片组g至图片组K计算传送质量a所需的传送速率aqgk
a qgk = { 1 k - g + 1 Σ j = g k b qj } - - - [ 1 ]
最小传送速率Dqg可被计算为aqgk的最大值,所有的k满足g≤k≤G:
D qg = Max k = g G { Σ j = g k b qj k - g + 1 } - - - [ 2 ]
对序列中的每个图片组g和对在每个质量Lq上编码的所有序列计算该最小传送速率Dqg
2)其次,我们计算为传送(传输)图片组和在一组传送速率Dqr(r=1...rmax)的每一个中不发生解码器缓冲器下溢的所有后续图片组必须在接收机中进行缓存的最小时间量,或预载Tqgr,其中传送速率的测量单位为比特每图片组周期。为了方便起见,并且使得每个序列将具有相同范围的相对的传送速率,所述速率Dqr可以定义为在该质量的平均编码比特速率的固定倍数Cr
D qr = { C r G Σ j = 1 G b qj } - - - [ 3 ]
该时间Tqgr可以显现为通过对图片组g-1基于所述累积比特曲线在图5上画具有原点X和斜率Dqr的线而获得。对于每个后续图片组,测量该直线与累积比特曲线之间的垂直距离,并且确定该直线在累积比特曲线下方的最大距离Pqgr。这表示以速率Dqr开始传送具有索引g的图片组的比特所需的预载。该最大距离Pqgr除以斜率Dqr以获得预载Tqgr
因此
P qgr = Max k = g G { Σ j = g k ( b qj - D qr ) } - - - [ 4 ]
以及
T qgr = P qgr D qr - - - [ 5 ]
注意,如果图5中的线总是在累积比特曲线上方并且所有距离都是负的,则所需预载为零。
因此,公式5可以重写为:
T qgr = Max { 0 , P qgr D qr } - - - [ 6 ]
在图4的步骤406,在步骤404中预计算的参数可以在存储器150中被存储为适当的文件。因此,我们有效地具有关于每个已编码视频流(在每个质量Lq)的数据表,每GOP g具有如下数据——零启动延迟所需的传送速率,和多个传输速率中的每一个所需的预载(基于整个流的平均比特速率的固定倍数Cr)。
图6示出了一个10GOP视频序列的预计算数据的示例表,其在两个不同的质量等级Lq=2.7和3.7下被编码。在该示例中使用的速率倍数Cr=0.6、0.8、1.0和1.2。
所述预计算的数据可用于确定在接收机处给定预载量时将要传输的每个质量流所需的速率。例如,如果在接收机处预载量被测定为10秒,或10000ms,并且下一个要传送的GOP是g=6,则我们可以从图6看出在Lq=2.7下传送所需的速率在Cr=1.0和1.2之间。类似地,对于Lq=3.7,所需的速率在Cr=0.8和1.0之间。因此,(Cr=)1.2倍于Lq=2.7时的平均比特率的实际流速率将足以支持Lq=2.7流。然而,(Cr=)1.0倍于Lq=2.7时的平均比特率的实际流速率将不足以支持Lq=2.7流。类似地,(Cr=)1.0倍于Lq=3.7时的平均比特率的实际流速率将足以支持Lq=3.7流。然而,(Cr=)0.8倍于Lq=3.7时的平均比特率的实际流速率将不足以支持Lq=3.7流。
实际被预计算的数据量是有限的,因此对于预载的所有可能值来说,都具有预计算数据是不可能的。因此,在接收机中特定预载存在时,为了更准确地确定支持给定质量等级的视频所需的流速率,提出一种如下所描述的插值方法。
现在,一旦服务器已经完成如前所述的数据的预计算,服务器100就可以开始传输已编码视频到接收机200。图7示出了当从服务器100请求视频内容的接收机200中的处理过程。从步骤700开始,接收机200向服务器100请求某些视频内容。服务器100向接收机200传输与所请求的视频相关联的预计算的数据,此数据在步骤702中由接收机200接收。接收机200将该预计算的数据存储在存储器210中。然后,服务器100通过选择合适的质量Lq比特流,开始将所请求的视频流传输到接收器200。因此,在步骤704中,接收机200开始接收以质量Lq编码的视频流。
要被传输到接收机200的比特流的初始质量的选择可以根据任何适当的方法由服务器100或由接收机200确定,例如以最低可用质量启动,或者选择对于当时的可用网络带宽最合适的质量。
一旦接收机200已经开始接收已编码的视频流,所述接收机就可以使用所存储的预计算的数据来执行图8所示的步骤。
在图8的步骤800,待传送的下一组图片具有索引g。接收机按照时间计算有多少数据τg被缓存在接收机的缓冲器203中。τg是预载或换一种说法,要被传送的下一数据的启动延迟。它是所接收的图片组的数量减去视频用尽的时长的简单计数(假定时间的单位是图片组周期)。
然后,对于每个视频质量等级Lq,在步骤802开始于最高质量并逐步向下,在步骤804,使用插值模块226用插值法以及基于存储在接收机处的预计算的数据,如下计算足够传送具有索引g的图片组以及在没有发生解码器缓冲下溢时所有有此质量的后续图片组的传送速率Aqg
我们需要知道已经被缓冲在接收机中的给定数据量所需的传送速率,而如果该传送速率是按照它表示的用尽时间进行测量的,则对应于所述预载或下一个将要传送数据的启动延迟的。因为对启动延迟的所有可能值都生成预计算的数据是不可行的,所以我们可以使用我们预计算的信息通过插值法来估计所需的传送速率。
图9示出了当给定量的数据已缓存于客户机时所需的传送速率可以如何由两组预计算的数据安全地估计得出:一个对于较小的传送速度给出了所需的预载,另一个对于较大的传送速率给出了所需的预载。
图9示出了对于三个传送比特率A1、A2和A3的累积比特曲线和传送调度。预计算了预载所需要的最小数量,其对于传送速率A1和A3分别表示为要传送的下一数据的启动延迟S1和S3。存在于接收机的实际启动延迟S2的最佳速率(测量为τg)将会是A2,并以点划线示出,其中S2介于S1和S3之间。然而,对于预载S2和因此所需的传送速率A2我们没有任何预计算的数据。这产生的问题是为启动延迟S2所需的传送速率A2提供一个安全的估计值A2′,即A2′≥A2。解决的办法是选择我们确实具有的预计算数据,特别是大于S2的预载S1,以及小于S2和它们各自的传送速率A1和A3的预载S3,且应用列于下面的插值方法。
为了确保比特的及时传送,传送调度A2′必须位于累积比特曲线之上或左侧。如果传送调度A2′经过传送调度A1和A3在时间T的交叉处,这是被确保的。由每个传送调度传送的总比特数B相等时(考虑相应的预载),发生传送调度A1和A3的交叉。因此,我们可以说:
A1.(T+S1)=A3.(T+S3)                   [7]
公式7可以重写为下面给出了交叉时间T的公式8。
T = S 3 · A 3 - S 1 · A 1 A 1 - A 3 - - - [ 8 ]
对于启动延迟S2可接受的传送速率是穿过这一点的斜率为A2′的直线`,由下面的公式9给出。如图9所示,这可能不是最佳的。
A 2 ′ = ( S 1 + T ) · A 1 S 2 + T - - - [ 9 ]
因此,公式9给出了最小传送速率Aqg的安全的估计,即该速率足够传送具有索引g的图片组和在接收器200处没有解码器缓冲下溢的后续所有的图片组,但使用比该速率更大的速率可能是完全必要的。
参考与图6相关的上述说明的示例,其中下一个GOP g=6,并且所测量的预载为10000ms。假定对于Lq=2.7的平均比特率为262kbps。对于Lq=2.7流,设定S1=11799ms,S3=1127ms,A1=262(1.0×262),A3=314.4(1.2×262)。因此,应用公式8,我们得到T=52233。现在,使用公式9,该计算的值T和S2=10000ms,我们得到A2′=269.6kbps。因此,最小传送速率Aqg=269.6kbps。如果网络吞吐量为至少269.6kbps,则Lq=2.7流可以由GOP g=6向前来支持。
在步骤806中,可以比较Aqg与实际的网络吞吐量D,以确定是否满足所要求的最小速率。如果D至少等于Aqg,那么所考虑的质量为Lq的流可以由所述网络来流传送。因此,在步骤810中,可以确定是切换还是保持该Lq质量等级的流。可以基于其他因素来判定到底何时切换,如相对于所计算的最小Aqg的公差和阈值。如果D至少不是Aqg,则处理转到步骤808,可以分析对于下一个最低Lq流的预计算数据,并且向前重复步骤804来确定下一个流Lq所需的最小传送速率Aqg
如果需要获得每个质量等级流所需的速率的图片,则可以对全部质量等级重复步骤804和806。
从图9中可以看出,当传送调度A1和A3的交点在所述累积比特曲线之上时,所述插值方法将提供精确的所需速率,否则将提供高估的所需速率。
现在考虑在传送所述具有索引g的图片组以及零个或更多后续的图片组之后,重复计算所需的传送速率。如果所实现的传送速率恰好达到Aqg,则传送调度跟随线A2′,并且每次重复插值时,会计算出相同的截距时间T和相同的所需传送速率Aqg。如果所实现的传送速率不同于Aqg,则传送调度将偏离线A2′。但在传送调度保持在线A1和A3之间的时段,从图9中可以看出,每次重复插值时,将计算出相同的截距时间T,并且将计算出不同的但一致的所需传送速率Aqg
现在考虑如下情况:A3是已执行了预计算的最高传送速率,当前传送点位于线A3的右侧,并且位于累计比特曲线的左侧,否则将呈现无效的传送点,这是因为比特无法被及时传送而解码。这种情况下,使用速率A3和相关的预计算启动延迟S3作为一组数据,预计算的零启动延迟速率作为另一组数据来执行插值。图10示出了这样一个传送调度,其以计算的速率进行传送,并且在传送了每一图片组之后计算一个新的速率。图11示出了计算出的传送速率如何随时间而变化。
图11示出了即使当传送是以由插值计算的速率(对于产生一个大于或等于实际所需速率而言是已知的)进行时,在传送一个图片组之后再次进行计算时该速率可能会更高。并且当该更高的速率用于传送下一图片组时,下一个计算的速率仍然会更高。这种永远增加速率的计算情况并不是无限地持续的,而是在对于以零启动延迟传送的预计算速率相对于其先前的值减少时停止。这出现在图10中的累计比特曲线的尖顶。当到达第一个这样的点时,新计算的速率实际上低于初次计算的速率,如图11所示,由于该时间的平均传送速率比所需要的高,因此从该时间开始的较低速率是可能的。但是由于更多的图片组被传送,该计算的传送速率由于以零启动延迟传送的预计算速率的增加而再一次增加。
将插值与有限数量的传送速率的所需的启动延迟的预计算进行组合是一个问题。虽然对于具有零启动延迟的传送来说使用预计算的传送速率是有用的,因为它允许对于低值的启动延迟计算传送速率,然而速率可以从一个图片组到另一个迅速地改变的事实,将在基础所需速率实际上没有变化时导致计算的传送速率快速变化的问题。在实际的视频传送系统中,这种所计算的传送速率的变化可能导致在以不同的质量编码的视频流之间不必要的切换。这将给观众带来不必要的视频质量的变化,以及为执行上述切换给视频传送系统带来的不必要的影响。我们可以通过以以下方式采用我们的插值方法来克服这一问题。
当使用具有最高比特率的预计算的数据和零启动延迟所需的预计算的数据利用公式8和9执行插值计算时,按照如下的公式10还计算了要在相交点T传送的比特数量B:
B=(S3+T)·A3=(S1+T)·A1                   [10]
随着下一个和后续图片组被传送,对被传送的后续比特数b进行计数,对经过的时间t进行测量。计算二者之间的比率,以给出所达到的实际传送速率r。当该值大于或等于以前计算的插值的所需的传送速率A2’时,随着所需的速率从当前传送点(t,b)到达先前计算的相交点(T,B),我们可以计算足够的传送速率a,如公式(10)中所示。
a = ( B - b ) ( S 2 + T - t ) - - - [ 11 ]
由于B已经被算出,所以这种计算可以被重复施加直到B个比特已经被传送为止,而r被计算为大于或等于插值的所需的传送速率A2′。另外,在传送每个图片组后,可以使用具有最高比特率的预计算的数据和零启动延迟所需的预计算速率进行插值计算,以给出一个新的插值的所需的传送速率A2′,并使用如下公式计算出两个计算出的所需传送速率中较低的A2″:
A2″=Min(a,A2′)                     [12]
在该改进的插值方法中,公式10、11和12作为一部分被包含在步骤804中以确定A2″,这是所需的最小传送速率Aqg的更精确的测量。这种在图8的步骤804的基础上有效扩展的改进的方法也在图12中展示。
在图12的步骤1200中,根据较早的方法使用公式8和9估计所需的最小传送速率。在步骤1202中,使用公式10和11估计足够的传送速率。在步骤1204中,使用公式12估计最小传送速率。
图13中示出了一个例子,其中累积比特曲线如图10所示。以恒定的速率1.4兆比特每图片组周期进行实际传送,如标记为“r”的线所示。标记为“A2′”的曲线示出了使用具有最高比特率的预计算的数据和零启动延迟所需的预计算速率利用公式7和8进行插值而计算出的所需的传送速率。该曲线不同于图11,原因在于在这种情况下是以固定速率进行实际传送,而在早先的情况下是以所计算的所需传送速率进行实际传送。标记为“A2″”的曲线示出了使用公式10和11时所需的传送速率。可以看出这是一个平滑的曲线,精确地反映出传送是在一个快于所必需的速率上持续进行的。其还总是低于实际传送速率r,因此表明所需的速率总是小于实际传送速率,因此不需要切换到较低比特率、较低质量的视频流。而如果所需的速率被简单地从插值而导出,其结果是A2’,将可推断有时实际传送速率r不足以传送该流,并且将执行到较低比特率、较低质量的视频流的切换。这样的切换不是必需的,可以使用改进的计算公式11和12来避免。
需要注意的是,当所计算的速率落到等级A3(预计算启动延迟值的最高速率)时,图13中标记为A2′和A2″的曲线停止。在实践中,对于一些较低速率A1,启动延迟值被预计算,并且从这点向前,插值在所述预计算的速率数据A3和A1之间执行,而不会使用零启动延迟的传送速率。
用于计算最小所需的传送速率方法可总结如下。首先我们如步骤402所示在多个质量等级下对视频序列进行编码。然后在步骤404中,我们为每个图片组预计算传送速率,这是及时传送图片组和没有时间被最初缓冲在解码器中的情况下所有随后的图片组所需要的。还是在步骤404中,我们选择一组传送比特速率,并且对于每个速率我们预计算为了及时传送图片组和后续图片组而必须在解码器中缓存的最小时间量(预载)。预计算的数据在步骤702被提供给解码器。然后,在视频传送期间,按照公式8或9利用预计算的数据执行插值,且在适用时使用公式11和12计算图8和12所示的最小所需的传送速率的安全估计值。
在为每个视频质量的视频编码计算最小所需的传送速率后,视频流系统(在优选的实施例中,接收机)会考虑预期的网络吞吐量,确定下一个要传输的视频的质量。预期的网络吞吐量可以从实际吞吐量的过去测量结果或通过其他手段来估计。也可以在确定下一个要传输的视频的质量时考虑其它因素,如接收机所缓冲的数据量。例如,如果接收机中缓存的数据小于一个数据阈值,例如将花费5秒进行播放,则可以确定不切换到更高质量,或者不论预期的网络吞吐量与对每个质量的编码视频所需的传送速率相比如何,只要接收机中缓存的数据小于一个阈值就可以确定切换到较低质量。由于在每个图片组的开始在不同的编码之间切换是可能的,所以可以对每个图片组确定要切换到何种质量的视频。
通过比特流切换模块228做出切换到不同质量的流的确定。接收机200能够传输一个请求到服务器100请求其开始传输所选择的不同质量的视频流(接收机所选择的)。服务器可以立即切换和传输新的流,其可以被延迟直到一个合适的切换点例如在新GOP的开始。然后,服务器能够传输数据到所述接收机,以指示已经进行了切换,并且开始传送新的视频流。
上述实施例描述了接收机200所执行的确定所需的最小比特率的计算和何时切换流,但是服务器也可以执行相同的操作。这要求服务器获知接收机缓存器的预载以便执行所需的计算。
此外,虽然参照是以GOP为间隔确定所述预计算的数据,并在各种GOP位置确定所需的最小比特速率需要,但是本发明同样可以基于流内的任何时间位置而不是GOP位置,例如一些其他适合的帧间隔。
本发明的示例性实施例至少部分地由可执行计算机程序代码来实现,其可以包含在服务器和接收机的程序模块中提供的应用程序数据。当这种计算机程序代码被加载到服务器或接收机的存储器,用于由对应处理器执行,它提供了一种计算机程序代码结构,其能够根据上述本发明的示例性实施例执行至少部分的方法。
此外,本领域技术人员将会理解,所述计算机程序结构可以对应于图4、图7、图8和图12所示的处理流程图,其中流程图的每个步骤可以对应于至少一条计算机程序代码,并且与置于各个服务器或接收机中的处理器相结合,提供了一种用于实现所描述的过程的设备。
一般来说,应当注意到,虽然上面描述了本发明的实施例,还存在可对所描述的示例作出的多种变化和修改而不偏离由所附权利要求限定的本发明的范围。例如,本发明也可以应用于音频流或其它媒体流而不是视频。本领域技术人员将能够辨别对所描述的示例的修改。

Claims (9)

1.一种通过网络中的传输链路将视频序列从服务器传输到接收机的方法,该方法包括以下步骤:
(a)通过在相应多个质量等级上对视频序列进行编码来生成多个视频流;
(b)为每个视频流确定一组预计算的数据,该组预计算的数据包括:对于所述视频流中的多个时间位置的每一个,i)针对多个传输速率中的每一个,为了从所述时间位置到所述视频流的结尾将所述视频流及时传送,所述接收机处所需的最小预载,和ii)当所述接收机处不存在预载时,为了从所述时间位置到所述视频流的结尾将所述视频流及时传送所需的传输速率,其中,所述预载是在所述接收机处缓存的数据的用尽时长,并且及时传送是指在所述接收机处不发生缓冲器下溢;
(c)将所述视频流之一传输到所述接收机;并且在传输期间,
(d)确定所述接收机处的当前预载,并且对于在所述多个质量等级之一上进行编码的视频流;
从与相应质量等级相关联的所述一组预计算的数据中选择高于所述当前预载的第一最小预载和低于所述当前预载的第二最小预载,其中,第一传输速率是与第一最小预载相关联的传输速率,并且第二传输速率是与第二最小预载相关联的传输速率;
计算当考虑相应的第一最小预载和第二最小预载时以第一传输速率和第二传输速率传送的比特总数相等时的时间,作为相交时间;
计算到所述相交时间为止所传送的比特数;
计算到所述相交时间为止所传送的比特数除以所述当前预载与相交时间之和,作为及时传送该流所需的可接受传送速率;以及
在步骤(d)之后的经过时间后,
(e)计算足够的传送速率,其等于到所述相交时间为止所传送的比特数与所述经过时间期间传送的实际比特数之差除以所述当前预载与所述相交时间之和减去所述经过时间;并且通过重复步骤(d)来计算新的可接受传送速率;以及
(f)确定新的可接受传送速率与所述足够的传送速率中的最小值,作为确保及时传送所述流的剩余部分的最小所需传送速率。
2.根据权利要求1所述的方法,其中,所述质量等级对于每个所编码的视频流是固定的。
3.根据权利要求1或2所述的方法,其中,所述质量等级是感知质量等级。
4.根据任一在前权利要求所述的方法,其中,所述接收机执行步骤(d)到(f)。
5.根据任一在前权利要求所述的方法,其中,所述相交时间的计算被确定为第二预载和第二传输速率的乘积与第一预载和第一传输速率的乘积之差,其中,所述第一相交时间等于所述乘积之差除以第一传输速率和第二传输速率之差。
6.根据任一在前权利要求所述的方法,其中,到所述相交时间为止所传送的比特数的计算被确定为第二传输速率和第二预载与所述相交时间之和的乘积,或者第一传输速率和第一预载与所述相交时间之和的乘积。
7.根据任一在前权利要求所述的方法,该方法还包括以下步骤:(g)确定所述流在传输链路上的实际传输速率,并基于与所述实际传输速率相比的最小所需传送速率,来确定是否切换到在不同质量等级上编码的流。
8.根据任一在前权利要求所述的方法,其中,所述时间位置是图片组的位置。
9.一种在接收机处对视频流进行处理的方法,该方法包括以下步骤:
(a)接收针对在多个质量等级上编码的视频流的一组预计算的数据,该组预计算的数据包括:对于所述视频流中的多个时间位置的每一个,i)针对多个传输速率中的每一个,为了从所述时间位置到所述视频流的结尾将所述序列及时传送,所述接收机处所需的最小预载,和ii)当所述接收机处不存在预载时,为了从所述时间位置到所述视频流的结尾将所述视频流及时传送所需的传输速率,其中,所述预载是在所述接收机处缓存的数据的用尽时长,并且及时传送是指在所述接收机处不发生缓冲器下溢;
(b)接收所编码的视频流;并且在接收期间,
(c)确定所述接收机处的当前预载,并且对于在所述多个质量等级之一上进行编码的视频流;
从与相应质量等级相关联的所述一组预计算的数据中选择高于所述当前预载的第一最小预载和低于所述当前预载的第二最小预载,其中,第一传输速率是与第一最小预载相关联的传输速率,并且第二传输速率是与第二最小预载相关联的传输速率;
计算当考虑相应的第一最小预载和第二最小预载时以第一传输速率和第二传输速率传送的比特总数相等时的时间,作为相交时间;
计算到所述相交时间为止所传送的比特数;
计算到所述相交时间为止所传送的比特数除以所述当前预载与所述相交时间之和,作为及时传送该流所需的可接受传送速率;以及
在步骤(c)之后的经过时间后,
(d)计算足够的传送速率,其等于到所述相交时间为止所传送的比特数与所述经过时间期间传送的实际比特数之差除以所述当前预载与所述相交时间之和减去所述经过时间;并且通过重复步骤(c)来计算新的可接受传送速率;以及
(e)确定新的可接受传送速率与所述足够的传送速率中的最小值,作为确保及时传送所述流的剩余部分的最小所需传送速率。
CN201180031392.2A 2010-06-30 2011-05-27 视频流传送 Active CN103004190B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GBGB1011047.6A GB201011047D0 (en) 2010-06-30 2010-06-30 Video streaming
GB1011047.6 2010-06-30
EP10251246.4 2010-07-12
EP10251246A EP2408204A1 (en) 2010-07-12 2010-07-12 Video streaming
PCT/GB2011/000821 WO2012001339A1 (en) 2010-06-30 2011-05-27 Video streaming

Publications (2)

Publication Number Publication Date
CN103004190A true CN103004190A (zh) 2013-03-27
CN103004190B CN103004190B (zh) 2016-09-07

Family

ID=44202109

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180031392.2A Active CN103004190B (zh) 2010-06-30 2011-05-27 视频流传送

Country Status (4)

Country Link
US (1) US8996713B2 (zh)
EP (1) EP2589223B1 (zh)
CN (1) CN103004190B (zh)
WO (1) WO2012001339A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110089119A (zh) * 2016-10-18 2019-08-02 奈飞公司 用于分布式编码的恒定斜率比特率分配
CN110622480A (zh) * 2017-05-19 2019-12-27 华为技术有限公司 移动视频流的流量画像系统、设备和方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2426923A1 (en) 2010-09-02 2012-03-07 British Telecommunications Public Limited Company Adaptive streaming of video at different quality levels
CN103650375B (zh) 2011-07-06 2017-05-03 Sk 普兰尼特有限公司 基于多播的内容传输系统和方法以及用于高速地估算运动的设备和方法
KR101931653B1 (ko) * 2011-07-06 2018-12-21 에스케이플래닛 주식회사 멀티캐스트 기반 컨텐츠 전송 시스템 및 방법
GB2500245B (en) 2012-03-15 2014-05-14 Toshiba Res Europ Ltd Rate optimisation for scalable video transmission
US10051519B2 (en) * 2012-08-27 2018-08-14 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
US9247448B2 (en) * 2012-08-27 2016-01-26 Qualcomm Incorporated Device and method for adaptive rate multimedia communications on a wireless network
CN103929684B (zh) * 2013-01-14 2018-06-15 华为技术有限公司 一种基于流媒体选择码流分段的方法、播放器和终端
US11076187B2 (en) 2015-05-11 2021-07-27 Mediamelon, Inc. Systems and methods for performing quality based streaming
WO2016183251A1 (en) 2015-05-11 2016-11-17 Mediamelon, Inc. Systems and methods for performing quality based streaming
US10063895B2 (en) 2015-12-27 2018-08-28 Comigo Ltd. System and method for allocating bandwidth in a network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004047455A1 (en) * 2002-11-18 2004-06-03 British Telecommunications Public Limited Company Transmission of video
CN101690078A (zh) * 2007-04-02 2010-03-31 英国电讯有限公司 多视频流传输中的带宽分配控制

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
FI115418B (fi) 2001-09-20 2005-04-29 Oplayo Oy Adaptiivinen mediavirta
EP1359722A1 (en) 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
WO2003098935A2 (en) 2002-05-22 2003-11-27 Koninklijke Philips Electronics N.V. Transmission method using a virtual reception buffer to absorb fluctuation of the channel transmission rate
DE60208474T2 (de) 2002-08-27 2006-07-13 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren zur Übertragung von Datenströmen abhängig vom überwachten Zustand des Anwendungsspeichers des Nutzers
US7343291B2 (en) 2003-07-18 2008-03-11 Microsoft Corporation Multi-pass variable bitrate media encoding
GB0406901D0 (en) 2004-03-26 2004-04-28 British Telecomm Transmitting recorded material
JP2008504793A (ja) 2004-06-07 2008-02-14 スリング メディア,インク. パーソナルメディア放送システム
US7640352B2 (en) 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
EP2101503A1 (en) 2008-03-11 2009-09-16 British Telecommunications Public Limited Company Video coding
US8375140B2 (en) 2008-12-04 2013-02-12 Google Inc. Adaptive playback rate with look-ahead
EP2200319A1 (en) 2008-12-10 2010-06-23 BRITISH TELECOMMUNICATIONS public limited company Multiplexed video streaming
US8392600B2 (en) * 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004047455A1 (en) * 2002-11-18 2004-06-03 British Telecommunications Public Limited Company Transmission of video
CN101690078A (zh) * 2007-04-02 2010-03-31 英国电讯有限公司 多视频流传输中的带宽分配控制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CRABTREE B ET AL: "Equitable Quality Video Streaming", 《IEEE》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110089119A (zh) * 2016-10-18 2019-08-02 奈飞公司 用于分布式编码的恒定斜率比特率分配
CN110089119B (zh) * 2016-10-18 2021-11-30 奈飞公司 用于比特率分配的方法、系统及存储介质
CN110622480A (zh) * 2017-05-19 2019-12-27 华为技术有限公司 移动视频流的流量画像系统、设备和方法
US10999204B2 (en) 2017-05-19 2021-05-04 Huawei Technologies Co., Ltd. System, apparatus, and method for traffic profiling for mobile video streaming

Also Published As

Publication number Publication date
WO2012001339A1 (en) 2012-01-05
EP2589223A1 (en) 2013-05-08
CN103004190B (zh) 2016-09-07
US8996713B2 (en) 2015-03-31
US20130111060A1 (en) 2013-05-02
EP2589223B1 (en) 2016-03-09

Similar Documents

Publication Publication Date Title
CN103004190A (zh) 视频流传送
US9313529B2 (en) Video streaming
US6910079B2 (en) Multi-threshold smoothing
CN102246531B (zh) 复用视频流传输
US10298985B2 (en) Systems and methods for performing quality based streaming
CN107211193B (zh) 感知体验质量估计驱动的智能适应视频流传输方法和系统
US20190327510A1 (en) Systems and Methods for Performing Quality Based Streaming
CN101084678B (zh) 防止缓冲器下溢的速率控制方法和设备
CN102238433A (zh) 控制数字内容的自适应流传输
US11159834B2 (en) Managing congestion response during content delivery
US20020090029A1 (en) System for real time transmission of variable bit rate MPEG video traffic with consistent quality
CN101686383A (zh) 通过网络传输媒体的方法及系统
US20110299589A1 (en) Rate control in video communication via virtual transmission buffer
JP2006115477A (ja) メディアストリームから得られるメディアの提示を行う方法およびシステム
CN111886875B (zh) 一种通过网络传送媒体内容的方法及服务器
CN103548318A (zh) 用于动态地适配接收比特率的方法和相关的接收器
EP2656560B1 (en) A method for delivering video content encoded at one or more quality levels over a data network
CN102369732B (zh) 视频流传输
CN104717500B (zh) 一种视频编码码率控制方法和系统
CN114640851B (zh) 基于质量感知的自适应全向视频流的传输方法
EP2408204A1 (en) Video streaming
Stapenhurst et al. Adaptive HRD parameter selection for fixed delay live wireless video streaming
CN109889836A (zh) 优化无线视频接收器能效的方法
JP2004040739A (ja) ハイポセティカルレファレンスデコーダモデルのための適切なビットストリーム制約条件の選択方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant