CN116962809A - 自适应位速率视频流式传输的重新缓冲减少 - Google Patents

自适应位速率视频流式传输的重新缓冲减少 Download PDF

Info

Publication number
CN116962809A
CN116962809A CN202310141866.3A CN202310141866A CN116962809A CN 116962809 A CN116962809 A CN 116962809A CN 202310141866 A CN202310141866 A CN 202310141866A CN 116962809 A CN116962809 A CN 116962809A
Authority
CN
China
Prior art keywords
play
threshold
level
next video
video segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310141866.3A
Other languages
English (en)
Inventor
周敏华
陈学敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies General IP Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avago Technologies General IP Singapore Pte Ltd filed Critical Avago Technologies General IP Singapore Pte Ltd
Publication of CN116962809A publication Critical patent/CN116962809A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/267Flow control; Congestion control using explicit feedback to the source, e.g. choke packets sent by the destination endpoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • 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/756Media network packet handling adapting media to device capabilities
    • 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
    • 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/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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/439Processing of audio elementary streams
    • 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/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/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开涉及自适应位速率视频流式传输的重新缓冲减少。提供一种方法,包含由控制器设置下一视频片段的第一位速率级别及比较播放缓冲器的填充级别与第一阈值。如果播放缓冲器的填充级别满足第一阈值,那么所述下一视频片段的第一位速率级别通过设置所述下一视频的第二位速率级别来取代。向服务器发出对以第一位速率级别编码或如果所述播放缓冲器的填充级别满足第一阈值那么以所述第二位速率级别编码的下一视频片段的第一请求,及下载经请求下一视频片段及将经请求视频片段存储于播放缓冲器中。解码器解码来自播放缓冲器的下一视频片段用于在下一视频片段已被下载且存储于播放缓冲器中之后在显示器装置上播放。

Description

自适应位速率视频流式传输的重新缓冲减少
技术领域
本描述大体上涉及视频流式传输,包含例如自适应位速率视频流式传输。
背景技术
基于因特网的视频技术可依赖于基于超文本传送协议(HTTP)的自适应流式传输。此类协议已在基于HTTP的动态自适应流式传输(DASH)的保护伞下被标准化。在DASH***中,视频内容被分成多个片段或分块,每一片段或分块对应于一播放时间段。视频内容以多个离散位速率编码,且来自不同位速率流的片段或分块经对准使得视频播放器可响应于网络带宽条件的变化在分块边界处切换到不同位速率。
发明内容
一方面,本公开涉及一种方法,其包括:由控制器设置下一视频片段的第一位速率级别;比较播放缓冲器的填充级别与第一阈值;如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别;向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求;启动从所述服务器下载所述经请求下一视频片段及将所述下一视频片段存储于所述播放缓冲器中;及由解码器解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器中之后在显示器装置上播放。
另一方面,本公开涉及一种存储指令的非暂时性计算机可读媒体,所述指令当由一或多个处理器执行时致使所述一或多个处理器执行包括以下的操作:向服务器发出对以第一位速率级别编码的下一视频片段的第一请求;启动从所述服务器下载以所述第一位速率级别编码的所述下一视频片段及将所述下一视频片段存储于播放缓冲器中;比较所述播放缓冲器的填充级别与第一阈值;如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;及解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二播放速度在显示器装置上播放。
又一方面,本公开涉及一种电子装置,其包括:存储器,其包括播放缓冲器;及处理器,其耦合到所述存储器且经配置以:由控制器设置下一视频片段的第一位速率级别;比较播放缓冲器的填充级别与第一阈值;如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器为所述下一视频片段设置的所述第一位速率级别;向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求;启动从所述服务器下载所述下一视频片段及将所述下一视频片段存储于播放缓冲器中;比较所述播放缓冲器的所述填充级别与第二阈值;如果所述播放缓冲器的所述填充级别满足所述第二阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;及由解码器解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第二阈值那么以所述第二播放速度在显示器装置上播放。
附图说明
本技术的某些特征在所附权利要求书中陈述。然而,出于解释目的,本技术的若干实施例在附图中陈述。
图1是说明根据本技术的方面的视频内容的自适应位速率流式传输的图。
图2说明根据本技术的方面的ABR视频流式传输***可实施于其中的网络环境200的实例。
图3是说明根据本技术的方面的电子装置的组件的框图。
图4是说明根据本技术的方面的实例自适应位速率流式传输过程的流程图。
图5是说明根据本技术的方面的在自适应视频播放器操作期间重新缓冲的发生的曲线图。
图6是说明根据本技术的方面的电子装置的组件的框图。
图7是说明根据本技术的方面的用于设置视频片段的位速率级别的实例过程的流程图。
图8是说明根据本技术的方面的电子装置的组件的框图。
图9是说明根据本技术的方面的针对视频片段使用播放速度控制的实例过程的流程图。
图10是说明根据本技术的方面的针对视频片段使用播放速度控制的实例过程的流程图。
图11是说明本技术的方面可用其实施的电子***的框图。
具体实施方式
下文陈述的详细描述希望作为对本技术的各种配置的描述,且不希望表示可实践本技术的唯一配置。附图并入于本文中且构成详细描述的部分。详细描述包含用于提供本技术的透彻理解的特定细节。然而,本技术不限于本文中陈述的特定细节且可在没有特定细节中的一或多者的情况下实践。在一些例子中,结构及组件以框图形式展示以便避免模糊本技术的概念。
基于因特网的视频技术可依赖于基于超文本传送协议(HTTP)的自适应流式传输。此类协议已在基于HTTP的动态自适应流式传输(DASH)的保护伞下被标准化。在DASH***中,视频内容被分成多个片段或分块,每一片段或分块含有对应于一播放时间段(例如2秒、5秒、10秒等)的视频内容数据的一部分。术语“播放”是指经解码视频内容(其可包含视觉内容及音频内容两者)在可为电视、膝上型计算机、平板计算机、智能电话等的显示器装置上的演示。视频内容以多个离散位速率级别编码,且来自不同位速率流的分段或分块经对准使得视频播放器可响应于网络带宽条件的变化在分块边界处切换到不同位速率级别。位速率级别指示视频内容在其下被编码且应被可用网络带宽调节用于视频内容的不间断流式传输的每单位时间的数据量(例如,每秒兆位)。由更高位速率级别提供的增加的数据量可用于通过例如提高分辨率及/或提高帧速率来改进流式传输视频内容的质量。术语“片段”及“分块”在本文中互换使用。
举例来说,图1是说明根据本技术的方面的视频内容的自适应位速率流式传输的图。如图1中描绘,视频内容的M个副本被存储于服务器上。视频内容的每一副本被分成K个分段或分块且以来自一组可用位速率级别的不同相应位速率级别进行编码,从而导致以不同相应位速率级别编码的视频内容的M个流被存储于服务器上。经绘制通过视频内容的各个流的实线表示说明在流式传输视频内容时作出的位速率级别的变化的实例路径。以不同位速率级别编码的视频内容的经流式传输的K个片段或分块沿着图1的底部处说明的时间线布置。
体验质量(QoE)在因特网视频应用中扮演着关键角色,这是因为其最终影响内容提供者的收益流。明确来说,例如重新缓冲持续时间(例如,播放器的播放缓冲器没有内容要播放)、起动延迟(即,用户点击与可以开始播放的时间之间的滞后)、平均播放位速率及所递送的位速率的可用性的度量已成为关键因素。在所有那些因素当中,重新缓冲时间是最重要的,这是因为过长或过于频繁的重新缓冲可致使用户放弃观看当前频道且切换到其它节目。
本技术处理经设计以在视频内容的自适应位速率流失传输期间减少重新缓冲时间量及重新缓冲事件频率两者的控制算法。根据本技术的方面,在现存ABR控制算法上引入控制算法,现存ABR控制算法可基于播放缓冲器的填充级别取代由ABR控制算法作出的位速率级别决策以便减少重新缓冲时间及频率。替代地或作为补充,可采用另一控制算法,其在流式传输期间基于播放缓冲器的填充级别控制视频内容的播放速度以便减少重新缓冲时间及频率。这些控制算法及其相关联改进在下文更详细论述。
图2说明根据本技术的方面的ABR视频流式传输***可实施于其中的网络环境200的实例。然而,可能并非需要所有所描绘的组件,且一或多个实施方案可包含图中未展示的额外组件。可作出组件的布置及类型的变化,而不会背离如本文中陈述的权利要求书的精神或范围。可采用额外组件、不同组件或更少组件。
实例网络环境200包含例如通过网络208通信地耦合到电子装置220的内容递送网络(CDN)210。CDN 210可包含及/或可通信地耦合到内容服务器212、天线216及/或卫星发射装置218。内容服务器212可经由网络208编码及/或传输经编码数据流,例如MPEG AVC(高级视频编码)/ITU-T H.264经编码视频流、MPEG HEVC(高效视频编码)/ITU-T H.265经编码视频流、VP9经编码视频流、AOM AV1经编码视频流及/或MPEG VVC(通用视频编码)/ITU-TH.266经编码视频流。天线216经由空中传输经编码数据流,且卫星发射装置218可将经编码数据流发射到卫星215。
电子装置220可包含及/或可耦合到从卫星215接收经编码数据流的卫星接收装置222,例如卫星碟。在一或多个实施方案中,电子装置220可进一步包含用于经由空中从CDN210的天线216接收经编码数据流(例如经编码视频流)的天线。内容服务器212及/或电子装置220可为或可包含下文关于图3、6、8及/或11论述的电子***的一或多个组件。
网络208可为公共通信网络(例如因特网、蜂窝数据网络或经由电话网络的拨号调制解调器)或私密通信网络(例如私密局域网(LAN)或租用线路)。网络208还可包含(但不限于)以下网络拓扑中的任一或多者,包含总线网络、星形网络、环形网络、网状网络、星形总线网络、树形或阶层网络及类似物。在一或多个实施方案中,网络208可包含通信地耦合内容服务器212及电子装置220的传输线路,例如同轴传输线路、光纤传输线路或大体上任何传输线路。
内容服务器212可包含或可耦合到一或多个处理装置、数据存储区214及/或编码器。一或多个处理装置执行存储于数据存储区214中的计算机指令,例如以实施内容递送网络。数据存储区214可将计算机指令存储于非暂时性计算机可读媒体上。数据存储区214可进一步存储以不同相应位速率级别编码的被CDN210递送的视频内容的多个副本。编码器可使用编码解码器编码视频流,例如AVC/H.264编码解码器、HEVC/H.265编码解码器、VP9编码器解码、AV1编码解码器、VVC/H.266编码解码器或任何其它合适编码解码器。
在一或多个实施方案中,内容服务器212可为单个计算装置,例如计算机服务器。替代地,内容服务器212可表示一起工作以执行服务器计算机(例如计算机云及/或分布式***)的动作的多个计算装置。内容服务器212可与可与内容服务器212并置或与内容服务器212分开定位的各种数据库、存储服务或其它计算装置耦合,例如自适应位速率(ABR)服务器。
电子装置220可包含或可耦合到一或多个处理装置、存储器及/或解码器,例如硬件解码器。电子装置220可为能够解码经编码数据流(例如VVC/H.266经编码视频流)的任何装置。
在一或多个实施方案中,电子装置220可为或可包含膝上型或桌面计算机、智能电话、平板装置、穿戴式电子装置(例如具有耦合到其及/或嵌入于其中的一或多个处理器的一对眼镜或手表)、机顶盒、具有耦合到其及/或嵌入于其中的一或多个处理器的电视或其它显示器、视频游戏机或可用于接收及解码经编码数据流(例如经编码视频流)的其它电子装置中的全部或部分。
在图2中,电子装置220被描绘为机顶盒,例如,耦合到显示器224且能够在显示器224上显示视频内容的装置,例如能够显示视频内容的电视、监测器或任何装置。在一或多个实施方案中,电子装置220可集成到显示器224中,及/或显示器224可能能够输出除了视频内容外的音频内容。电子装置220可从CDN210接收流,例如经编码数据流,其包含视频内容流,例如电视节目、电影或大体上任何内容项。电子装置220可经由天线216、经由网络208及/或经由卫星215从CDN 210接收经编码数据流及例如使用硬件解码器解码经编码数据流。
图3是说明根据本技术的方面的电子装置(例如图2中表示的电子装置220)的组件的框图。然而,可能并非需要所有所描绘的组件,且一或多个实施方案可包含图中未展示的额外组件。可作出组件的布置及类型的变化,而不会背离如本文中陈述的权利要求书的精神或范围。所描绘或描述的组件之间的连接不限于直接连接且可用一或多个中介组件来实施。
图3中描绘的电子装置(例如自适应视频播放器)包含HTTP引擎302、播放缓冲器304、处理量预测器306、ABR控制器308及解码器310。根据本技术的方面,HTTP引擎302经由网络314(例如因特网)向服务器312发出对以所选择的位速率级别编码的视频内容分块的请求(“GET”)。HTTP引擎302经由网络314从服务器312下载经请求分块及将分块存储于播放缓冲器304中。HTTP引擎302还可报告在从服务器312下载分块时体验的网络处理量(即带宽)。
ABR控制器308为将由HTTP引擎302下载的下一分块选择位速率级别及向HTTP引擎302通知选择。ABR控制器308基于从电子装置的其它组件接收的一或多个输入作出位速率级别选择。举例来说,处理量预测器306基于由HTTP引擎302递送到处理量预测器306的先前带宽测量估计预期可用于下载下一分块的网络带宽。播放缓冲器304依据来自缓冲于播放缓冲器中的视频内容分块的可用播放时间量报告或可用于查询播放缓冲器的填充级别。例如缓冲于播放缓冲器中的分块或视频分段的数目的其它度量例如可用于测量播放缓冲器的填充级别。经估计网络带宽及播放缓冲器的填充级别中的一者或两者可由ABR控制器308用于作出位速率级别选择。除了或代替上文描述的两个输入,ABR控制器308还可使用其它输入。
解码器310消耗且解码来自播放缓冲器304的视频内容分块及将经解码视频内容提供到显示器316用于向观看者播放视频内容。解码器310还可报告用户感知的体验质量(QoE)分数以帮助ABR控制器308中的决策作出逻辑。上文概述的过程的实例在下文提供的描述中更详细解释。
图3中描绘的组件中的每一者或其一或多个部分可实施于软件(例如指令、子例程、代码)中、可实施于硬件(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、状态机、门控逻辑、离散硬件组件或任何其它合适装置)中及/或可实施为两者的组合。
图4是说明根据本技术的方面的实例自适应位速率流式传输过程的流程图。出于解释目的,图4中说明的过程的框在本文中描述为串行或线性发生。然而,过程的多个框可并行发生。另外,过程的框无需按展示的顺序执行及/或过程的一或多个框无需执行及/或可由其它操作取代。
出于描述图4中说明的过程的目的,经下载视频内容被建模为一组连续视频分段或分块V={1,2,…,K},其中L是片段时间(即,每一片段含有L秒视频)。视频内容的多个副本被存储于服务器上,其中每一副本以从一组可用位速率级别选择的不同位速率进行编码,其中r1<r2<...,<rM。自适应视频播放器可选择以所选择的位速率级别/>下载视频片段k。B(t)∈[0,Bmax]是时间t(即,播放缓冲器中剩余的视频内容的播放时间)处的填充级别,Bmax是可缓冲于播放缓冲器中的视频内容的最大播放时间量。Bk=B(tk)表示时间tk处的播放缓冲器的填充级别,时间tk是自适应视频播放器开始从服务器下载视频片段k的时间。
在图4中的过程开始时,跟踪参数total_rebuffering_time(tr_time)及total_rebuffering_events(tr_events)两者都被复位到0。Total_rebuffering_time保持跟踪自适应视频播放器在视频内容播放期间花费在重新缓冲的总时间量,且因此不会播放视频以响应于播放缓冲器被解码器排空来将一或多个视频片段添加到播放缓冲器。Total_rebuffering_events在发生重新缓冲的视频内容播放期间保持跟踪例子的总数目。另外,当前视频片段数目被设置为1 (k=1),为第一视频片段选择的位速率级别被设置为可用最低位速率级别(R1=r1),其它播放缓冲器的填充级别被初始化为0(B1=0)。有了这些值,HTTP引擎发出对以位速率r1编码的视频片段1的请求,且填充级别经更新到B2=B1+L。在上文概述的参数初始化之后,开始由解码器进行播放。
在过程已经开始时,检查播放缓冲器的占用级别以确定在播放缓冲器中是否存在可以附加视频片段k的空间(框402)。如果播放缓冲器中不存在用于视频片段k的足够空间,那么播放缓冲器的占用级别使用Playback((Bk+1+L-Bmax)+)来降低,其中Playback(t)是消耗播放缓冲器中的长度为t的视频内容的函数,且(x)+=max(x,0)确保项可以从不为负(框404)。接着,播放缓冲器的填充级别经更新到Bk+1=Bk+1-(Bk+1+L-Bmax)+
αtk表示HTTP引擎在分块k的下载已经完成之后可以开始下载分块k+1之前的等待时间。在一些ABR控制算法中采用Δtk来改进多播放器视频流式传输的公平性。如果采用Δtk,那么播放缓冲器的填充级别使用Playback(Δtk)来降低且填充级别被更新到Bk+1=Bk+1-Δtk(框406)。
下一视频片段的位速率级别(Rk+1)由ABR控制器确定(框408)。举例来说,下一视频片段的位速率级别可使用函数来确定,其中/> 是预测用于下载下一视频片段的带宽,且Bk+1是下载视频片段k+1开始时播放缓冲器的填充级别。经预测处理量或带宽可依赖于网络带宽的先前测量。举例来说,C={Ck-N+1,Ck-N+2,...,Ck-1,Ck}可表示在最后N个视频片段下载期间体验的经测量网络带宽,且可表示为最后N个视频片段确定的经预测网络带宽。预测用于下载下一视频片段(即视频片k+1)的带宽/>是C及/>的函数,即/> 举例来说,经预测带宽/>可通过取用如下文等式中展示的先前测量的带宽的谐波平均值来确定。
本技术不限于使用经预测带宽及填充级别两者的算法。举例来说,一些算法可仅使用经预测带宽来选择及设置下一视频片段的位速率级别。替代地,其它算法可仅使用填充级别来选择及设置下一视频片段的位速率级别。
关于为下一视频片段设置的位速率级别,使k递增(k=k+1)(框410),且HTTP引擎向服务器发出对下一视频片段的请求(框412)。
ABR控制器可周期性地监测在视频片段下载期间经历的网络带宽且可作出决策来放弃以当前位速率级别下载视频片段,及如果满足某些条件,那么以新的更低位速率级别重起视频片段的下载(框414)。条件可包含在当前位速率级别下经过的下载时间是否满足第一预定义阈值、在当前位速率级别下的剩余下载时间是否满足另一预定义阈值、基于在视频片段下载期间迄今为止体验的网络带宽估计的位速率级别是否小于为视频片段设置的当前位速率级别及/或更低位速率级别下的视频片段的经估计大小是否小于剩余被下载的当前位速率级别下的视频片段的大小。针对是否放弃下载视频片段及开始以更低位速率级别下载视频片段的评估,本技术不限于这些条件。
如果放弃以当前位速率级别进行的视频片段的下载(框414),那么重新缓冲时间量及重新缓冲事件的数目在下载被放弃之前的时间段内确定且播放缓冲器的占用级别经更新以反映播放缓冲器中被解码器消耗的视频内容量(框416)。这些更新可基于以下等式来进行:
其中sdk(Rk)是在放弃下载之前以当前位速率级别下载的视频片段的部分的大小,SCk是在放弃下载之前在以当前位速率级别下载视频片段期间体验的平均网络带宽(处理量),且
关于以被放弃的当前位速率级别Rk进行的视频片段的下载,确定新的位速率级别且将视频片段的Rk设置为/>(框418)。举例来说,新的位速率级别/>(其中/>)可为迄今为止下载的视频片段大小sdk(Rk)、当前视频片段大小dk(Rk)、迄今为止体验的网络带宽SCk及当前位速率级别Rk的函数,即:
本技术不限于用于确定新的位速率级别的任何特定函数。另外,函数可为基于比上文概述的更少的因子或更多的因子。关于为视频片段k设置的新的位速率级别,过程返回到HTTP引擎向服务器发出对以新的位速率级别编码的视频片段的请求(框412)。
如果允许下载视频片段k完成而非放弃(框414),那么重新缓冲时间量及重新缓冲事件的数目在发生下载的时间段内确定且播放缓冲器的占用级别经更新以反映播放缓冲器中在那个时间段期间被解码器消耗的视频内容量(框420)。这些更新可基于以下等式来进行:
其中dk(Rk)是以位速率级别Rk编码的视频片段k的大小,且Ck是在下载视频片段k期间体验的平均网络带宽(处理量)。
过程通过确定视频内容的任何视频片段是否保持从服务器下载来继续(k<K)(框422)。如果视频片段在服务器上保持被下载,那么过程返回以检查播放缓冲器的占用级别以确定播放缓冲器中是否存在可以附加视频片段k的空间(框402)。如果视频内容V的全部K的视频片段都已从服务器下载,那么保持在播放缓冲器中的视频片段由解码器解码用于播放,且视频内容的播放结束。
如上所述,重新缓冲是评估因特网视频应用中的QoE的重要因素。图5是说明根据本技术的方面的在自适应视频播放器操作期间重新缓冲的发生的曲线图。在时间tk,自适应视频播放器开始下载分块(视频片段)k。此分块的下载时间将是dk(Rk)/Ck,即,其取决于以位速率Rk选择的分块的大小以及平均下载带宽(处理量)Ck。一旦分块k被完全下载,视频播放器等待Δtk且在时间tk+1处开始下载下一分块k+1。填充级别B(t)随着分块被下载及视频被播放而进化。明确来说,填充级别在分块k被下载之后增加L秒且随着播放器消耗来自播放缓冲器的分块而减少dk(Rk)/Ck秒。缓冲器动力学可如下表述:
如图5中说明,如果那么播放缓冲器变为空,同时自适应视频播放器仍在下载分块k,从而导致重新缓冲事件。在视频内容V播放期间体验的总重新缓冲时间量可被定义为:
类似地,在视频内容V播放期间体验的重新缓冲事件的总数目可被定义为:
可用于评估自适应视频***的性能的QoE度量的一个实例考虑用户体验,包含所有经下载分块内的平均视频质量及由从一个分块到另一分块的平均质量变化、重新缓冲时间及起动延迟致使的损失。QoE度量被定义为:
其中q(.)是将所选择的位速率级别Rk映射到由用户感知的视频质量q(Rk)的非减函数,且其中α、β、γ是分别对应于视频质量变化、重新缓冲时间及起动延迟的非负加权参数。
通过假定质量映射函数q(Rk)=Rk及设置α=1、及γ=0,QoE度量可被简化为有效位速率(即,平均播放位速率减去重新缓冲时间及流式传输视频质量变化的损失)。接着,用于流式传输K个分块的有效位速率可被定义为:
在此,初始起动延迟未包含于有效位速率度量中,这是由于其通常是固定时间量,无论使用哪一ABR控制算法。
图6是说明根据本技术的方面的电子装置的组件的框图。然而,可能并非需要所有所描绘的组件,且一或多个实施方案可包含图中未展示的额外组件。可作出组件的布置及类型的变化,而不会背离如本文中陈述的权利要求书的精神或范围。所描绘或描述的组件之间的连接不限于直接连接且可用一或多个中介组件来实施。
图6中描绘的电子装置类似于上文结合图3描述的电子装置。举例来说,两个电子装置都包含HTTP引擎302、播放缓冲器304、处理量预测器306、ABR控制器308及解码器310,将不再重复其描述。然而,已经修改图6中描绘的电子装置以包含不足及足够缓冲器控制器602,其在由ABR控制器308应用的控制算法上应用控制算法以设置经由网络314从服务器312请求及下载的视频片段的位速率级别。由不足及足够缓冲器控制器602应用的新控制算法减少重新缓冲时间及事件且使用播放缓冲器304的填充级别改进QoE以识别可以用对对应填充级别更适当的位速率级别取代由ABR控制器308设置的位速率级别的条件。由不足及足够缓冲器控制器602执行的过程在下文结合图7更详细描述。
图6中描绘的组件中的每一者或其一或多个部分可实施于软件(例如指令、子例程、代码)中、可实施于硬件(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、状态机、门控逻辑、离散硬件组件或任何其它合适装置)中及/或可实施为两者的组合。
图7是说明根据本技术的方面的用于设置视频片段的位速率级别的实例过程的流程图。出于解释目的,图7中说明的过程的框在本文中描述为串行或线性发生。然而,过程的多个框可并行发生。另外,过程的框无需按展示的顺序执行及/或过程的一或多个框无需执行及/或可由其它操作取代。
图7中说明的过程取代或增补上文结合图4的框408描述的操作。在图7的过程中,ABR控制器以上文关于图4中的框408描述的方式确定及设置将由HTTP引擎下载的下一视频片段的位速率级别(框702)。特定来说,下一视频片段的位速率级别可使用函数来确定,其中/> 是预测用于下载下一视频片段的带宽,且Bk+1是视频片段k+1开始下载时播放缓冲器的填充级别。
将填充级别Bk+1与表示播放缓冲器的相对低填充级别的第一阈值Thlow进行比较。如果填充级别Bk+1小于第一阈值Thlow(框704),那么由ABR控制器设置的下一视频片段的第一位速率级别用预先确定的第二位速率级别来取代(框706)。举例来说,ABR控制器可将经设置第一位速率级别写入于HTTP引擎可存取的控制寄存器中。当填充级别满足第一阈值时,第二位速率级别可取代控制寄存器中的第一位速率级别。预定第二位速率级别是将允许下一视频片段更快被下载到播放缓冲器中的相对低位速率级别且有望避免重新缓冲事件。举例来说,预定第二位速率级别可为来自的最低位速率级别,使得Rk+1=r1
如果填充级别Bk+1不小于第一阈值Thlow(框704),那么填充级别Bk+1与表示播放缓冲器的相对高填充级别的第二阈值Thhigh进行比较。如果填充级别Bk+1大于第二阈值Thhigh(框708),那么由ABR控制器设置的下一视频片段的第一位速率级别用预先确定的第三位速率级别来取代(框710)。预定第三位速率级别是将利用由相对高填充级别提供的播放时间缓冲来提高下一视频片段的位速率级别且借此在播放期间提高下一视频片段的质量的相对高位速率级别。举例来说,预定第三位速率级别可为来自 的最高位速率级别,使得Rk+1=rM
如果填充级别Bk+1不满足第二阈值(框708),那么由ABR控制器设置的下一视频片段的位速率级别保持不变。总之,不足及足够缓冲器控制器修改自适应视频播放器使得为下一视频片段Rk+1设置的位速率级别根据以下准则来设置:
第一及第二阈值Thlow及Thhigh可为可配置的。根据本技术的方面,两个阈值可被如下设置:
图8是说明根据本技术的方面的电子装置的组件的框图。然而,可能并非需要所有所描绘的组件,且一或多个实施方案可包含图中未展示的额外组件。可作出组件的布置及类型的变化,而不会背离如本文中陈述的权利要求书的精神或范围。所描绘或描述的组件之间的连接不限于直接连接且可用一或多个中介组件来实施。
图8中描绘的电子装置类似于上文结合图3及6描述的电子装置。举例来说,所有三个电子装置都包含HTTP引擎302、播放缓冲器304、处理量预测器306、ABR控制器308及解码器310,将不再重复其描述。另外,图8中描绘的电子装置包含不足及足够缓冲器控制器602,也将不再重复其描述。然而,已经修改图8中描绘的电子装置以包含播放速度控制器802。应注意,图8的电子装置中不足及足够缓冲器控制器602的并入是任选的,且播放速度控制器802可并入到具有或没有不足及足够缓冲器控制器602的电子装置中。
根据本技术的方面,播放速度控制器802实施基于播放缓冲器的填充级别调整视频片段的播放速度的控制算法。控制算法利用人类视觉***的性质,其中观看者通常不会注意到在实时播放速度的约10%(高或低10%)内的视频内容的播放速度。举例来说,如果填充级别小于预定义低阈值,即Thlow,或如果填充级别小于预定义中间阈值,即Thmid,且先前视频片段下载被放弃,那么解码器被设置到视频片段的缓慢播放模式(例如,实时播放速度的90%)。减慢解码器用于视频片段的播放速度提供更多时间来在当前视频片段播放完成之前将下一视频片段下载到播放缓冲器中且因此减少重新缓冲事件的机会或潜在地缩短重新缓冲事件的持续时间。如果填充级别高于预定义高阈值,即Thhigh,且播放由于先前使用了缓慢播放模式而落后于实时播放速度,那么解码器切换到视频片段的快速播放模式(例如,实时播放速度的110%)以赶上播放速度。否则,解码器被设置到正常实时播放模式。播放速度控制器802的操作在下文结合图9及10更详细描述。
图8中描绘的组件中的每一者或其一或多个部分可实施于软件(例如指令、子例程、代码)中、可实施于硬件(例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、状态机、门控逻辑、离散硬件组件或任何其它合适装置)中及/或可实施为两者的组合。
图9是说明根据本技术的方面的针对视频片段使用播放速度控制的实例过程的流程图。出于解释目的,图9中说明的过程的框在本文中描述为串行或线性发生。然而,过程的多个框可并行发生。另外,过程的框无需按展示的顺序执行及/或过程的一或多个框无需执行及/或可由其它操作取代。
图9中说明的过程取代或增补上文针对图4的框416描述的过程。如上文论述,过程的此阶段遵循放弃视频片段的下载的决定以便使用更低位速率级别重新开始视频片段。最初,播放缓冲器的填充级别与阈值PThlow进行比较(框902)。如果填充级别小于PThlow,那么播放速度控制器802通过将播放速度降低指定量(例如10%、5%、3%等)来改变为视频片段设置的播放速度,从而将第一播放速度的播放速度改成第二播放速度(框904)。
如果播放缓冲器的填充级别不满足阈值PThlow,那么播放缓冲器的填充级别与大于PThlow的阈值PThmid进行比较(框906)。另外,过程确定先前视频片段的下载是否被放弃及以更低位速率级别重新开始(框906)。此确定可通过检查指定存储器位置中的旗标是否已被设置来作出。如果确定填充级别小于阈值PThmid且先前视频片段的下载被放弃,那么播放速度控制器802通过将播放速度降低指定量(例如10%、5%、3%等)来改变视频片段的播放速度,从而将第一播放速度改成第二播放速度(框904)。播放速度被降低的量可与用于其中填充级别满足阈值PThlow的条件相同,或其可被降低不同量。
如果播放缓冲器的填充级别不满足阈值PThmid,那么播放缓冲器的填充级别与大于PThmid的阈值PThhigh进行比较(框908)。另外,过程作出关于播放滞后时间量是否大于0的确定(框908)。播放滞后时间跟踪当前视频内容的时间播放由于一或多个先前视频片段的播放速度被降低而滞后于视频内容的实时播放的量。如果填充级别大于阈值PThhigh且当前播放滞后时间量大于零,那么播放速度控制器802通过将播放速度提高指定量(例如10%、5%、3%等)来改变为视频片段的播放速度,从而将第一播放速度的播放速度改成第三播放速度(框910)。如果播放缓冲器的填充级别不大于PThhigh,或不存在播放滞后时间,那么不改变视频片段的播放速度。
在降低视频片段的播放速度之后(框904),提高视频片段的播放速度(框910),或如果不改变播放速度,那么过程继续更新视频片段k在其期间开始下载直到放弃的周期内的重新缓冲时间量、重新缓冲事件的数目、填充级别及播放滞后时间量(框912)。这些参数以其进行更新的方式取决于视频片段的播放速度是降低、提高还是保持不变而有所不同。
如果视频片段的播放速度降低,那么以下等式用于更新参数:
其中δ是播放速度被改变的小数量(例如0.1、0.05、0.03等),且pt_lag是在视频内容播放期间积累的播放滞后时间量。播放滞后时间在播放视频内容开始(例如,图4中表示的过程开始)时被初始化为0。δ可为可配置值。如果视频片段的播放速度提高且播放滞后时间大于0,那么以下等式用于更新参数:
如果没有改变视频片段的播放速度,那么参数以上文关于图4中的框416描述的方式进行更新。接着,过程将先前视频片段放弃旗标设置为真以反映放弃下载视频片段(框914)。
图10是说明根据本技术的方面的针对视频片段使用播放速度控制的实例过程的流程图。出于解释目的,图10中说明的过程的框在本文中描述为串行或线性发生。然而,过程的多个框可并行发生。另外,过程的框无需按展示的顺序执行及/或过程的一或多个框无需执行及/或可由其它操作取代。
图10中说明的过程取代或增补上文针对图4的框420描述的过程。如上文论述,过程的此阶段遵循不放弃下载视频片段k的决策。基于播放缓冲器的填充级别调整视频片段k的播放速度的过程的部分(框1002、1004、1006、1008及1010)遵循上文关于图9描述的过程的相同对应部分(框902、904、906、908及910)且将不再重复过程的此部分的描述。
在降低视频片段的播放速度(框1004)之后,提高视频片段的播放速度(框1010),或如果不改变播放速度,那么过程继续在视频片段k已完成下载之后更新重新缓冲时间量、重新缓冲事件的数目、填充级别及播放滞后时间量(框1012)。类似于上文关于图9论述的内容,这些参数进行更新的方式依据视频片段的播放速度是降低、提高还是保持不变而有所不同。
如果视频片段的播放速度降低,那么以下等式用于更新参数:
如果视频片段的播放速度提高且播放滞后时间大于0,那么以下等式用于更新参数:
/>
如果没有改变视频片段的播放速度,那么参数以上文关于图4中的框420描述的方式进行更新。接着,过程将先前视频片段放弃旗标设置为假以反映下载视频片段k完成(框1014)。
阈值PThlow、PThmid及PThhigh可为可配置的。举例来说,这些阈值可设置如下:
虽然上文指示的PThlow及PThhigh的值与用于上文结合图7描述的实施方案的PThlow及PThhigh的值相同,但本技术不限于针对这些不同控制算法使用相同阈值且可实施具有不同阈值的不同控制算法。
改变由解码器用于解码来自播放缓冲器的视频片段的播放速度可依赖于技巧模式以降低播放速度或提高播放速度,同时匹配目标显示器帧速率。举例来说,帧速率转换(FRC)可在播放速度降低以在视频片段中的现存帧之间***额外帧时在解码器中打开。类似地,解码器可在播放速度提高时在播放期间周期性地从视频片段丢弃一或多个现存帧。另外,音频/语音音调校正可经应用到视频片段的音频部分以匹配在播放速度不变期间体验的预期声音音调。
图11在概念上说明本技术的一或多个实施方案可用其实施的电子***1100。电子***1100例如可为数据装置、媒体转换器、桌面计算机、膝上型计算机、平板计算机、服务器、电话或能够经由网络传递信号且以上文描述的方式实施自适应视频播放器的大体上任何电子装置。此电子***1100包含各种类型的计算机可读媒体及用于各种其它类型的计算机可读媒体的接口。在一或多个实施方案中,电子***1100是或包含服务器112及/或电子装置120中的一或多者。电子***1100包含总线1108、一或多个处理单元1112、***存储器1104、只读存储器(ROM)1110、永久存储装置1102、输入装置接口1114、输出装置接口1106及网络接口1116或其子集及变型。
总线1108共同表示通信连接电子***1100的众多内部装置的所有***、***及芯片组总线。在一或多个实施方案中,总线1108通信连接一或多个处理单元1112与ROM1110、***存储器1104及永久存储装置1102。一或多个处理单元1112从这些各种存储器单元检索要执行的指令及要处理的数据以便执行本公开的过程。在不同实施方案中,一或多个处理单元1112可为单个处理器或多核处理器。
ROM 1110存储电子***的一或多个处理单元1112及其它模块所需的静态数据及指令。另一方面,永久存储装置1102是读写存储器装置。永久存储装置1102是即使当电子***1100关闭时也存储指令及数据的非易失性存储器单元。本公开的一或多个实施方案将大容量存储装置(例如固态驱动器或磁盘或光盘及其对应磁盘驱动器)用作永久存储装置1102。
其它实施方案将可卸除式存储装置(例如快闪存储器驱动器及其对应磁盘驱动器、外部磁性硬驱动器等)用作永久存储装置1102。如同永久存储装置1102,***存储器1104是读写存储器装置。然而,不同于永久存储装置1102,***存储器1104是易失性读写存储器,例如随机存取存储器。***存储器1104存储一或多个处理单元1112在运行时需要的指令及数据中的任一者。在一或多个实施方案中,本公开的过程存储于***存储器1104、永久存储装置1102及/或ROM 1110中。一或多个处理单元1112从这些各种存储器单元检索要执行的指令及要处理的数据以便执行一或多个实施方案的过程。
总线1108还连接到输入装置接口1114及输出装置接口1106。输入装置接口1114使用户能将信息及选择命令传达给电子***。与输入装置接口1114一起使用的输入装置包含例如字母数字键盘及指向装置(还称为“光标控制装置”)。输出装置接口1106实现例如由电子***1100产生的图像的显示。与输出装置接口1106一起使用的输出装置包含例如打印机及显示器装置,例如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、柔性显示器、平板显示器、固态显示器、投影仪或用于输出信息的任何其它装置。一或多个实施方案包含既用作输入装置又用作输出装置的装置,例如触摸屏。在这些实施方案中,提供给用户的反馈可为任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;且可接收来自用户的呈任何形式(包含声学、语音或触觉输入)的输入。
最终,如图11中展示,总线1108还通过一或多个网络接口1116将电子***1100耦合到一或多个网络(未展示)。以此方式,计算机可为一或多个计算机网络的部分(例如局域网(LAN)、广域网(WAN)或内联网或网络中的网络,例如因特网)。电子***1100的任何或所有组件可结合本公开一起使用。
本公开的范围内的实施方案可使用编码一或多个指令的有形计算机可读存储媒体(或一或多种类型的多个有形计算机可读存储媒体)部分或完全实现。有形计算机可读存储媒体的性质也可为非暂时性的。
计算机可读存储媒体可为可由通用或专用计算装置读取、写入或以其它方式存取的任何存储媒体,包含能够执行指令的任何处理电子器件及/或处理电路***。举例来说(而非限制),计算机可读媒体可包含任何易失性半导体存储器,例如RAM、DRAM、SRAM、T-RAM、Z-RAM及TTRAM。计算机可读媒体还可包含任何非易失性半导体存储器,例如ROM、PROM、EPROM、EEPROM、NVRAM、快闪、nvSRAM、FeRAM、FeTRAM、MRAM、PRAM、CBRAM、SONOS、RRAM、NRAM、赛道存储器、FJG及Millipede存储器。
此外,计算机可读存储媒体可包含任何非半导体存储器,例如光盘存储装置、磁盘存储装置、磁带、其它磁性存储装置或能够存储一或多个指令的任何其它媒体。在一些实施方案中,有形计算机可读存储媒体可直接耦合到计算装置,而在其它实施方案中,有形计算机可读存储媒体可间接耦合到计算装置,例如,经由一或多个有线连接、一或多个无线连接或其任何组合。
指令可为直接可执行的或可用于开发可执行指令。举例来说,指令可实现为可执行或不可执行机器代码或呈可经编译以生成可执行或不可执行机器代码的高级语言形式的指令。此外,指令还可实现为数据或可包含数据。计算机可执行指令还可以任何格式组织,包含例程、子例程、程序、数据结构、对象、模块、应用程序、小应用程序、函数等。如所属领域的技术人员应认识到,包含(但不限于)指令的数目、结构、序列及组织的细节可显著改变,而不会改变底层逻辑、功能、处理及输出。
虽然上文论述主要涉及执行软件的微处理器或多核处理器,但一或多个实施方案由例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的一或多个集成电路执行。在一或多个实施方案中,此集成电路执行存储于电路本身上的指令。
根据本技术的方面,提供一种方法,其包含由控制器设置下一视频片段的第一位速率级别及比较播放缓冲器的填充级别与第一阈值。如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别。向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求,及启动从所述服务器下载所述经请求下一视频片段及将所述下一视频片段存储于所述播放缓冲器中。来自所述播放缓冲器的所述下一视频片段经解码用于在所述下一视频片段已被下载且存储于所述播放缓冲器中之后在显示器装置上播放。
所述方法可进一步包含:比较所述播放缓冲器的所述填充级别与第二阈值;及如果所述播放缓冲器的所述填充级别满足所述第二阈值,那么通过设置所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别。向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第二阈值那么以所述第三位速率级别编码的所述下一视频片段的所述第一请求。所述第二阈值可大于所述第一阈值,且所述填充级别可通过超过所述第二阈值来满足所述第二阈值且通过小于所述第一阈值来满足所述第一阈值。所述第三位速率级别可大于所述第二位速率级别。所述第二位速率级别可为来自一组位速率级别的所述下一视频片段以其被编码于所述服务器上的最低位速率级别,且所述第三位速率级别可为来自所述一组位速率级别的所述下一视频片段以其被编码于所述服务器上的最高位速率级别。所述播放缓冲器的所述填充级别可在将所述下一视频片段存储于所述播放缓冲器中之前被确定。
所述方法可进一步包含:基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;比较所述播放缓冲器的所述填充级别与第三阈值;及如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度。所述方法可进一步包含:设置所述下一视频片段的第四位速率级别;及向所述服务器发出对以所述第四位速率级别编码的所述下一视频片段的第二请求,其中所述下一视频片段由所述解码器解码用于以为所述下一视频片段设置的所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第三阈值那么以所述第二播放速度在所述显示器装置上播放。
所述方法可进一步包含:如果所述播放缓冲器的所述填充级别不满足所述第三阈值那么比较所述播放缓冲器的所述填充级别与第四阈值;及如果所述播放缓冲器的所述填充级别满足所述第四阈值,那么将所述下一视频片段的第一播放速度改成第三播放速度,其中所述第四阈值大于所述第三阈值且所述第三播放速度大于所述第二播放速度。所述方法可进一步包含确定当前播放滞后时间是否大于0,其中如果所述填充级别满足所述第四阈值且所述当前播放滞后时间大于0那么将为所述下一视频片段设置的所述播放速度改成所述第三播放速度。
所述方法可进一步包含:比较所述播放缓冲器的所述填充级别与第五阈值,其中所述第五阈值大于所述第三阈值且小于所述第四阈值;确定下载先前视频片段是否已停止;及如果所述播放缓冲器的所述填充级别满足所述第五阈值且下载所述先前视频片段已停止,那么将为所述下一视频片段设置的所述第一播放速度改成所述第二播放速度。所述播放速度可由所述解码器使用帧速率转换将一或多个帧***到所述下一视频片段中来降低,且所述播放速度可由所述解码器周期性地从所述下一视频片段丢弃一或多个帧来提高。所述方法可进一步包含基于对为所述下一视频片段设置的所述播放速度进行的改变来将音调校正应用到所述下一视频片段的音频部分。
根据本技术的方面,提供一种存储当由一或多个处理器执行时致使所述一或多个处理器执行操作的指令的非暂时性计算机可读媒体。所述操作包含:向服务器发出对以第一位速率级别编码的下一视频片段的第一请求;启动从所述服务器下载以所述第一位速率级别编码的所述下一视频片段及将所述下一视频片段存储于播放缓冲器中。所述操作进一步包含:比较所述播放缓冲器的填充级别与第一阈值;如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;及解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二播放速度在显示器装置上播放。
所述操作可进一步包含:比较所述播放缓冲器的所述填充级别与第二阈值;确定当前播放滞后时间是否大于0;及如果所述播放缓冲器的所述填充级别满足所述第二阈值且如果所述当前播放滞后时间大于0,那么将为所述下一视频片段设置的所述第一播放速度改成第三播放速度,其中所述第二阈值大于所述第一阈值且所述第三播放速度大于所述第二播放速度。所述操作可进一步包含:比较所述播放缓冲器的所述填充级别与第三阈值,其中所述第三阈值大于所述第一阈值且小于所述第二阈值;确定下载先前视频片段是否已停止;及如果所述播放缓冲器的所述填充级别满足所述第三阈值且下载所述先前视频片段已停止,那么将所述下一视频片段的所述第一播放速度改成所述第二播放速度。
操作可进一步包含:基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;将所述下一视频片段的所述位速率级别设置为第二位速率级别;向所述服务器发出对以所述第二位速率级别编码的所述下一视频片段的第二请求;及启动下载以所述第二位速率级别编码的所述下一视频片段及将所述下一视频片段存储于所述播放缓冲器中。
所述操作可进一步包含:由控制器设置所述下一视频片段的所述第一位速率级别;比较所述播放缓冲器的所述填充级别与第三阈值;及如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么通过设置所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别,其中向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第三阈值那么以所述第三位速率级别编码的所述下一视频片段的所述第一请求。
所述操作可进一步包含:比较所述播放缓冲器的所述填充级别与大于所述第三阈值的第四阈值;及如果所述播放缓冲器的所述填充级别满足所述第四阈值,那么通过设置大于所述第三位速率级别的所述下一视频片段的第四位速率级别来取代由所述自适应位速率控制器设置的所述下一视频片段的所述位速率级别,其中向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第四阈值那么以所述第四位速率级别编码的所述下一视频片段的所述第一请求,且其中所述填充级别通过超过所述第四阈值来满足所述第四阈值且通过小于所述第三阈值来满足所述第三阈值。
根据本技术的方面,提供一种电子装置,其包含:存储器,其包括播放缓冲器;及处理器,其耦合到所述存储器。所述处理器经配置以:由控制器设置下一视频片段的第一位速率级别;比较播放缓冲器的填充级别与第一阈值;及如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器为所述下一视频片段设置的所述第一位速率级别。所述处理器进一步经配置以:向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求;启动从所述服务器下载所述下一视频片段及将所述下一视频片段存储于播放缓冲器中;及比较所述播放缓冲器的所述填充级别与第二阈值。如果所述播放缓冲器的所述填充级别满足所述第二阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度,及由解码器解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第二阈值那么以所述第二播放速度在显示器装置上播放。
所述处理器可进一步经配置以:比较所述播放缓冲器的所述填充级别与大于所述第一阈值的第三阈值;及如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么通过设置大于所述第二位速率级别的所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别,其中所述填充级别通过超过所述第三阈值来满足所述第三阈值且通过小于所述第二阈值来满足所述第二阈值。
所述处理器可进一步经配置以:基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;设置所述下一视频片段的第三位速率级别;及向所述服务器发出对以所述第三位速率级别编码的所述下一视频片段的第二请求,其中以所述第三位速率级别编码的所述下一视频片段被下载且存储于所述播放缓冲器中且从所述播放缓冲器解码用于在所述显示器装置上播放。
提供先前描述以使所属领域的任何技术人员能实践本文中描述的各个方面。所属领域的技术人员将容易地明白对这些方面的各种修改,且本文中定义的通用原理可应用到其它方面。因此,权利要求书不希望限于本文中展示的方面,但将符合与权利要求书的语言一致的全范围,其中除非明确如此说明,否则对呈单数的元件的引用不希望意味着“一个且仅一个”,而是“一或多个”。除非另有明确说明,术语“一些”是指一或多个。呈男性(例如他)的代名词包含女性及中性性别(例如她及它),且反之亦然。标题及子标题(如果存在)仅为了方便才使用且不限制本公开。
谓语词“经配置以”、“可操作以”及“经编程以”不暗含主体的任何特定有形或无形修改,而是希望可以互换地使用。举例来说,经配置以监测及控制操作或组件的处理器还可意味着所述处理器经编程以监测及控制操作或所述处理器可操作以监测及控制操作。同样地,经配置以执行代码的处理器可被解释为经编程以执行代码或可操作以执行代码的处理器。
例如“方面”的短语不暗含此方面对本技术是必不可少的或此方面适用于本技术的所有配置。与一方面相关的公开内容可适用于所有配置或一或多个配置。例如一方面的短语可指一或多个方面,且反之亦然。例如“配置”的短语不暗含此配置对本技术是必不可少的或此配置适用于本技术的所有配置。与配置相关的公开内容可适用于所有配置或一或多个配置。例如配置的短语可指一或多个配置,且反之亦然。
词语“实例”在本文中用于意味着“用作实例或说明”。本文中描述为“实例”的任何方面或设计不一定被解释为比其它方面或设计优选或有利。
贯穿本公开描述的所属领域的一般技术人员已知或以后将知晓的各个方面的元件的所有结构及功能等效物通过引用方式明确并入本文中且希望被权利要求书涵盖。此外,本文中公开的事物都不希望贡献给公众,无论此公开内容在权利要求书中是否明确引述。没有权利要求元素应依据35 U.S.C.§112(f)的规定来解释,除非要素使用短语“用于...的构件”明确引述,或在方法权利要求书的情况中,要素使用短语“用于...的步骤”引述。此外,在术语“包含”、“具有”或类似物用于描述或权利要求书中的程度上,此术语希望以类似于术语“包括”的方式是包含性的,正如“包括”在权利要求中用作过渡词时被解译的那样。
所属领域的技术人员应了解,本文中描述的各种说明性框、模块、元件、组件、方法及算法可实施为电子硬件、计算机软件或两者的组合。为了说明硬件与软件的此可互换性,各种说明性框、模块、元件、组件、方法及算法在上文通常依据其功能性来描述。此功能性是被实施为硬件还是软件取决于特定应用及强加于整个***上的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述功能性。各种组件及框可不同地布置(例如,以不同顺序布置或以不同方式分割),这全都不背离本技术的范围。
谓语词“经配置以”、“可操作以”及“经编程以”不暗含主语的任何特定有形或无形修改,而是希望可以互换使用。举例来说,经配置以监测及控制操作或组件的处理器还可意味着所述处理器经编程以监测及控制操作或所述处理器可操作以监测及控制操作。同样地,经配置以执行代码的处理器可被解释为经编程以执行代码或可操作以执行代码的处理器。

Claims (20)

1.一种方法,其包括:
由控制器设置下一视频片段的第一位速率级别;
比较播放缓冲器的填充级别与第一阈值;
如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别;
向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求;
启动从所述服务器下载所述经请求下一视频片段及将所述下一视频片段存储于所述播放缓冲器中;及
由解码器解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器中之后在显示器装置上播放。
2.根据权利要求1所述的方法,其进一步包括:
比较所述播放缓冲器的所述填充级别与第二阈值;及
如果所述播放缓冲器的所述填充级别满足所述第二阈值,那么通过设置所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别,
其中向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第二阈值那么以所述第三位速率级别编码的所述下一视频片段的所述第一请求。
3.根据权利要求2所述的方法,其中:
所述第二阈值大于所述第一阈值,
所述填充级别通过超过所述第二阈值来满足所述第二阈值且通过小于所述第一阈值来满足所述第一阈值,且
所述第三位速率级别大于所述第二位速率级别。
4.根据权利要求3所述的方法,其中所述第二位速率级别是来自一组位速率级别的所述下一视频片段以其编码于所述服务器上的最低位速率级别,且
其中所述第三位速率级别是来自所述一组位速率级别的所述下一视频片段以其编码于所述服务器上的最高位速率级别。
5.根据权利要求1所述的方法,其中所述播放缓冲器的所述填充级别在将所述下一视频片段存储于所述播放缓冲器中之前被确定。
6.根据权利要求1所述的方法,其进一步包括:
基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;
比较所述播放缓冲器的所述填充级别与第三阈值;
如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;
设置所述下一视频片段的第四位速率级别;及
向所述服务器发出对以所述第四位速率级别编码的所述下一视频片段的第二请求,
其中所述下一视频片段由所述解码器解码用于以为所述下一视频片段设置的所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第三阈值那么以所述第二播放速度在所述显示器装置上播放。
7.根据权利要求6所述的方法,其进一步包括:
如果所述播放缓冲器的所述填充级别不满足所述第三阈值,那么比较所述播放缓冲器的所述填充级别与第四阈值;及
如果所述播放缓冲器的所述填充级别满足所述第四阈值,那么将所述下一视频片段的第一播放速度改成第三播放速度,
其中所述第四阈值大于所述第三阈值且所述第三播放速度大于所述第二播放速度。
8.根据权利要求7所述的方法,其进一步包括:
确定当前播放滞后时间是否大于0,
其中如果所述填充级别满足所述第四阈值且所述当前播放滞后时间大于0那么将为所述下一视频片段设置的所述播放速度改成所述第三播放速度。
9.根据权利要求8所述的方法,其进一步包括:
比较所述播放缓冲器的所述填充级别与第五阈值,其中所述第五阈值大于所述第三阈值且小于所述第四阈值;
确定下载先前视频片段是否已停止;及
如果所述播放缓冲器的所述填充级别满足所述第五阈值且下载所述先前视频片段已停止,那么将为所述下一视频片段设置的所述第一播放速度改成所述第二播放速度。
10.根据权利要求9所述的方法,其中为所述下一视频片段设置的所述播放速度通过所述解码器使用帧速率转换将一或多个帧***到所述下一视频片段中来降低,且其中所述下一视频片段的所述播放速度通过所述解码器周期性地从所述下一视频片段丢弃一或多个帧来提高。
11.根据权利要求10所述的方法,其进一步包括:
基于对为所述下一视频片段设置的所述播放速度进行的改变来将音调校正应用到所述下一视频片段的音频部分。
12.一种存储指令的非暂时性计算机可读媒体,所述指令当由一或多个处理器执行时致使所述一或多个处理器执行包括以下的操作:
向服务器发出对以第一位速率级别编码的下一视频片段的第一请求;
启动从所述服务器下载以所述第一位速率级别编码的所述下一视频片段及将所述下一视频片段存储于播放缓冲器中;
比较所述播放缓冲器的填充级别与第一阈值;
如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;及
解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二播放速度在显示器装置上播放。
13.根据权利要求12所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
比较所述播放缓冲器的所述填充级别与第二阈值;
确定当前播放滞后时间是否大于0;及
如果所述播放缓冲器的所述填充级别满足所述第二阈值且如果所述当前播放滞后时间大于0,那么将为所述下一视频片段设置的所述第一播放速度改成第三播放速度,
其中所述第二阈值大于所述第一阈值且所述第三播放速度大于所述第二播放速度。
14.根据权利要求13所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
比较所述播放缓冲器的所述填充级别与第三阈值,其中所述第三阈值大于所述第一阈值且小于所述第二阈值;
确定下载先前视频片段是否已停止;及
如果所述播放缓冲器的所述填充级别满足所述第三阈值且下载所述先前视频片段已停止,那么将所述下一视频片段的所述第一播放速度改成所述第二播放速度。
15.根据权利要求12所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;
将所述下一视频片段的所述位速率级别设置为第二位速率级别;
向所述服务器发出对以所述第二位速率级别编码的所述下一视频片段的第二请求;及
启动下载以所述第二位速率级别编码的所述下一视频片段及将所述下一视频片段存储于所述播放缓冲器中。
16.根据权利要求12所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
由控制器设置所述下一视频片段的所述第一位速率级别;
比较所述播放缓冲器的所述填充级别与第三阈值;及
如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么通过设置所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述
第一位速率级别,
其中向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第三阈值那么以所述第三位速率级别编码的所述下一视频片段的所述第一请求。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述操作进一步包括:
比较所述播放缓冲器的所述填充级别与大于所述第三阈值的第四阈值;及
如果所述播放缓冲器的所述填充级别满足所述第四阈值,那么通过设置大于所述第三位速率级别的所述下一视频片段的第四位速率级别来取代由自适应位速率控制器设置的所述下一视频片段的所述位速率级别,
其中向所述服务器发出对如果所述播放缓冲器的所述填充级别满足所述第四阈值那么以所述第四位速率级别编码的所述下一视频片段的所述第一请求,且
其中所述填充级别通过超过所述第四阈值来满足所述第四阈值且通过小于所述第三阈值来满足所述第三阈值。
18.一种电子装置,其包括:
存储器,其包括播放缓冲器;及
处理器,其耦合到所述存储器且经配置以:
由控制器设置下一视频片段的第一位速率级别;
比较播放缓冲器的填充级别与第一阈值;
如果所述播放缓冲器的所述填充级别满足所述第一阈值,那么通过设置所述下一视频片段的第二位速率级别来取代由所述控制器为所述下一视频片段设置的所述第一位速率级别;
向服务器发出对以所述第一位速率级别编码或如果所述播放缓冲器的所述填充级别满足所述第一阈值那么以所述第二位速率级别编码的所述下一视频片段的第一请求;
启动从所述服务器下载所述下一视频片段及将所述下一视频片段存储于播放缓冲器中;
比较所述播放缓冲器的所述填充级别与第二阈值;
如果所述播放缓冲器的所述填充级别满足所述第二阈值,那么将为所述下一视频片段设置的第一播放速度改成第二播放速度;及
由解码器解码来自所述播放缓冲器的所述下一视频片段用于在所述下一视频
片段已被下载且存储于所述播放缓冲器之后以所述第一播放速度或如果所述播放缓冲器的所述填充级别满足所述第二阈值那么以所述第二播放速度在显示器装置上播放。
19.根据权利要求18所述的电子装置,其中所述处理器进一步经配置以:
比较所述播放缓冲器的所述填充级别与大于所述第一阈值的第三阈值;及
如果所述播放缓冲器的所述填充级别满足所述第三阈值,那么通过设置大于所述第二位速率级别的所述下一视频片段的第三位速率级别来取代由所述控制器设置的所述下一视频片段的所述第一位速率级别,
其中所述填充级别通过超过所述第三阈值来满足所述第三阈值且通过小于所述第二阈值来满足所述第二阈值。
20.根据权利要求18所述的电子装置,其中所述处理器进一步经配置以:
基于一或多个网络带宽条件在完成之前停止从所述服务器进行所述下一视频片段的所述下载;
设置所述下一视频片段的第三位速率级别;及
向所述服务器发出对以所述第三位速率级别编码的所述下一视频片段的第二请求,
其中以所述第三位速率级别编码的所述下一视频片段被下载且存储于所述播放缓冲器中且从所述播放缓冲器解码用于在所述显示器装置上播放。
CN202310141866.3A 2022-04-25 2023-02-17 自适应位速率视频流式传输的重新缓冲减少 Pending CN116962809A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/728,368 2022-04-25
US17/728,368 US20230345075A1 (en) 2022-04-25 2022-04-25 Rebuffering reduction in adaptive bit-rate video streaming

Publications (1)

Publication Number Publication Date
CN116962809A true CN116962809A (zh) 2023-10-27

Family

ID=86095693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310141866.3A Pending CN116962809A (zh) 2022-04-25 2023-02-17 自适应位速率视频流式传输的重新缓冲减少

Country Status (3)

Country Link
US (1) US20230345075A1 (zh)
EP (1) EP4270969A1 (zh)
CN (1) CN116962809A (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630612B2 (en) * 2003-02-10 2009-12-08 At&T Intellectual Property, I, L.P. Video stream adaptive frame rate scheme
US8804515B2 (en) * 2005-04-11 2014-08-12 Telefonaktiebolaget Lm Ericsson (Publ) Technique for dynamically controlling data packet transmissions
US7711841B2 (en) * 2006-02-28 2010-05-04 Sharp Laboratories Of America, Inc. Systems and methods for reducing the effects of variations on the playback of streaming media
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
EP2209240A1 (en) * 2009-01-20 2010-07-21 Deutsche Thomson OHG Method for controlling a flow in a packet switched network
US9313512B2 (en) * 2009-11-25 2016-04-12 Vudu, Inc. Multiple bit rate encoding by segments
US20150033277A1 (en) * 2012-03-23 2015-01-29 Thomson Licensing Method of buffer management for synchronization of correlated media presentations
US9369513B2 (en) * 2013-04-12 2016-06-14 Futurewei Technologies, Inc. Utility-maximization framework for dynamic adaptive video streaming over hypertext transfer protocol in multiuser-multiple input multiple output long-term evolution networks
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
WO2017095276A1 (en) * 2015-11-30 2017-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and receiving device for adapting a play-out rate of a jitter buffer
WO2021167531A1 (en) * 2020-02-21 2021-08-26 National University Of Singapore Methods and systems for bandwidth estimation

Also Published As

Publication number Publication date
US20230345075A1 (en) 2023-10-26
EP4270969A1 (en) 2023-11-01

Similar Documents

Publication Publication Date Title
JP5302463B2 (ja) デジタルコンテンツの配布のための適応型ストリーミング
US9781183B2 (en) Accelerated playback of streaming media
US9769505B2 (en) Adaptive streaming for digital content distribution
JP6054427B2 (ja) プレイバックレート選択を伴う改良されたdashクライアントおよび受信機
US8782276B2 (en) Method and system for selecting a delivery method for media on demand
US8997160B2 (en) Variable bit video streams for adaptive streaming
US20170034233A1 (en) Pre-Buffering Audio Streams
CA2888218C (en) Playback stall avoidance in adaptive media streaming
JP2015513840A5 (zh)
CN104967884A (zh) 一种码流切换方法和装置
US9313243B2 (en) Video streaming over data networks
EP2656560B1 (en) A method for delivering video content encoded at one or more quality levels over a data network
EP3895352B1 (en) Method and system for reducing drop-outs during video stream playback
US10356159B1 (en) Enabling playback and request of partial media fragments
CN116962809A (zh) 自适应位速率视频流式传输的重新缓冲减少
US10313759B1 (en) Enabling playback and request of partial media fragments

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication