CN110268717B - 使用播放统计信息对多表示编码的比特率优化 - Google Patents
使用播放统计信息对多表示编码的比特率优化 Download PDFInfo
- Publication number
- CN110268717B CN110268717B CN201780072261.6A CN201780072261A CN110268717B CN 110268717 B CN110268717 B CN 110268717B CN 201780072261 A CN201780072261 A CN 201780072261A CN 110268717 B CN110268717 B CN 110268717B
- Authority
- CN
- China
- Prior art keywords
- segment
- quality
- encoding
- probability distribution
- representation
- 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
- 238000005457 optimization Methods 0.000 title abstract description 43
- 238000009826 distribution Methods 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000013442 quality metrics Methods 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims description 34
- 238000005259 measurement Methods 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 15
- 230000001186 cumulative effect Effects 0.000 claims description 8
- 238000013500 data storage Methods 0.000 description 21
- 230000003044 adaptive effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 235000019580 granularity Nutrition 0.000 description 3
- 238000001303 quality assessment method Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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
- 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 or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/23439—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- 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/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
-
- 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/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
各实施方式公开了使用播放统计信息对多表示编码的比特率优化。一种方法包括生成源视频的片段的多个版本,所述版本包括针对所述片段的每个分辨率以不同编码比特率对所述片段的编码;测量所述片段的每个版本的质量度量;基于与所述分辨率对应的测量的质量度量而生成用于所述片段的每个分辨率的速率‑质量模型;生成概率模型,以预测请求了所述片段的表示的请求概率,所述概率模型基于网络速度和视口大小的联合概率分布,所述联合概率分布是根据与其它视频的先前播放相关联的客户端侧反馈统计信息生成的;基于所述速率‑质量模型和所述概率模型而确定用于所述片段的所述表示中的每个表示的编码比特率;以及将所确定的编码比特率指派给所述片段的对应表示。
Description
技术领域
本公开涉及视频流传输领域,且确切地,涉及用于使用播放统计信息对多表示编码的比特率优化。
背景技术
通过网络将多媒体(例如,视频)流传输到客户端装置可以基于自适应比特率流传输。例如,可以实时检测客户端装置的带宽和处理能力。响应于检测到的带宽和视口大小的改变,可以相应地调整客户端装置访问的视频流。举例来说,可以以不同的比特率对视频进行编码。响应于客户端装置的改变的资源或能力,客户端装置可以从视频的第一表示切换到视频的第二表示。
发明内容
以下是本公开的简化概述,以便提供对本公开的一些方面的基本理解。该概述不是本公开的广泛概述。意图不在于识别本公开的主要或关键要素,也不在于描绘本公开的特定实施方式的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现本公开的一些概念,作为稍后呈现的更详细描述的序言。
在本公开的一个方面中,一种方法包括:生成源媒体项目(诸如,例如,源视频)的片段的多个版本,所述版本包括针对所述片段的每个分辨率以不同编码比特率对片段的编码;测量所述片段的每个版本的质量度量;基于对应于分辨率的测量的质量度量而生成用于片段的每个分辨率的速率-质量模型;生成概率模型,以预测请求了片段的表示的请求概率,所述概率模型基于网络速度和视口大小的联合概率分布,所述联合概率分布是根据与其它媒体项目(视频)的先前播放相关联的客户端侧反馈统计信息生成的;基于速率-质量模型和概率模型而确定用于片段的表示中的每个的编码比特率;以及将所确定的编码比特率指派给片段的对应表示。
在一个实施方式中,所述片段可以包括整个源媒体项目(视频)。另外,用于表示中的一个的请求概率还基于表示的编码比特率和该编码比特率与联合概率分布中的网络速度的关系,以及表示的分辨率和该分辨率与联合概率分布中的视口大小的关系。
在一些实施方式中,客户端侧反馈统计信息包括从客户端装置处的媒体播放器传输的播放痕迹,所述播放痕迹包括网络速度测量结果和视口大小,其中所述联合概率分布是根据从播放痕迹确定的网络速度的累积测量结果和根据从播放痕迹确定的视口大小的累积测量结果生成的。此外,播放痕迹可以从位于第一限定地理区域的客户端装置处的媒体播放器收集,并且联合概率分布可以特定于第一限定地理区域。(在另一实施方式中,播放痕迹可以从位于第二限定地理区域的客户端装置处的媒体播放器收集,并且此处可能有特定于第二限定地理区域的另一联合概率分布,)另外或可选地,播放痕迹可以针对源媒体项目(视频)的类型而被收集,并且联合概率分布可以特定源媒体项目(视频)的类型。
在一个实施方式中,确定用于表示中的每个的编码比特率还包括使片段的平均出口流量最小化,以使得(如由任何合适的质量度量所确定的)片段的平均质量维持在限定的质量水平或高于限定的质量水平,并且其中平均出口流量是不同编码比特率和请求概率的函数,并且其中,平均质量是质量度量和请求概率的函数。在一些实施方式中,确定用于表示中的每个的编码比特率还包括使片段的平均质量最大化,以使得片段的平均出口流量被维持在限定的媒体项目(视频)出口流量水平处或低于限定的媒体项目(视频)出口流量水平,其中平均质量是质量度量和请求概率的函数,并且其中平均出口流量是多个比特率和请求概率的函数。
此外,将所确定的编码比特率指派给对应表示还可以包括将所选择的编码比特率提供给用于以对应比特率对片段的表示中的每个进行编码的至少一个代码转换器。另外,表示可以包括片段的比特率/分辨率组合,并且其中所述片段可以包括用于片段的分辨率中的每个的一个或多个表示。在一些实施方式中,质量度量可以包括峰值信噪比(PSNR)测量结果或结构相似度(SSIM)测量结果。
在本公开的另一方面中,一种方法包括基于从客户端系统接收的反馈统计信息而确定用于网络速度和视口大小的联合概率分布;基于针对媒体项目的片段测量的质量度量而生成用于片段的分辨率的速率-质量模型;基于所生成的速率-质量模型并且基于请求了片段的表示的请求概率而估计用于片段的表示的递送质量和出口,其中所述请求概率基于联合概率分布;以及确定与片段的表示中的每个表示相对应的比特率的比特率集合,所述比特率集合被确定以在将递送质量维持在质量阈值处或高于质量阈值的同时使出口最小化。
在本公开的另一方面中,一种方法包括基于从客户端系统接收的反馈统计信息而确定用于网络速度和视口大小的联合概率分布;基于针对媒体项目的片段测量的质量度量而生成用于片段的分辨率的速率-质量模型;通过处理装置基于所生成的速率-质量模型并且基于请求了片段的表示的请求概率而估计用于片段的表示的递送质量和出口,其中所述请求概率基于联合概率分布;以及通过处理装置确定包括与片段的表示中的每个相对应的比特率的比特率集合,所述比特率集合被确定以在将出口保持在出口阈值处或低于出口阈值的同时使递送质量最大化。
在本公开的其它方面中,一种系统包括处理装置,所述处理装置被配置成执行根据本公开的任何方面或实施方式的方法。所述系统还可以包括存储器,并且处理装置可以耦接到存储器。
在本公开的其它方面中,一种机器可读存储介质(可以是非暂时性机器可读存储介质,虽然本发明并不限于此)存储指令,当所述指令被执行时使得处理装置来执行包括根据本公开的任何方面或实施方式的方法的操作。
公开了用于执行上述方法的操作和本文所描述的各种实施方式的计算装置。还公开了存储用于执行与上述方法相关联的操作和本文所描述的各种实施方式的指令的计算机可读介质。
附图说明
在附图中的各图中,通过举例而非限制的方式示出了本公开。
图1是示出其中可以实现本公开的实施方式的示例性网络架构的框图。
图2是根据本公开的实施方式的编码比特率优化部件的框图。
图3是示出根据实施方式的用于使用播放统计信息的多表示编码的比特率优化的方法的流程图。
图4是示出根据实施方式的基于播放统计信息而进行多表示编码比特率优化以使出口最小化的方法的流程图。
图5是示出根据实施方式的用于基于播放统计信息而进行多表示编码比特率优化以使质量最大化的方法的流程图。
图6是示出根据实施方式的计算机系统的一个实施方式的框图。
具体实施方式
针对使用播放统计信息的多表示编码的比特率优化,描述了本公开的各方面和实施方式。自适应比特率流传输可以用于通过网络将多媒体(例如,视频)从服务器(例如,自适应视频流传输系统)流传输到客户端系统(例如,客户端装置上的媒体播放器)。自适应视频流传输系统将源视频编码成不同编码比特率和/或分辨率的若干表示。也就是说,媒体项目的片段可以被转换(例如,代码转换)成多个分辨率(例如,多个空间分辨率)。然后,可以以多个不同的比特率对片段的多个分辨率中的每个进行编码,以产生媒体项目的片段的多个“表示(representation)”。表示可以表示使用一个比特率以一个分辨率对视频和/或视频片段进行编码的结果。该编码的表示集合允许客户端系统在视频流传输期间根据网络带宽和视口大小自适应地选择适当的编码表示。例如,客户端装置的媒体播放器可以响应于与客户端装置相关联的改变的条件(例如,CPU、网络带宽、视口大小等)而从视频的第一表示或编码切换到不同质量的视频的第二表示或编码。
为了支持视频的质量水平或格式之间的切换,可能会导致可以通过自适应视频流传输系统将视频(或视频的各个片段)代码转换成多个分辨率(例如,1080p、720p、480p、360p等)。此外,视频的每个分辨率可以以一个或多个编码比特率(编码比特率在本文中也可以称为“比特率”)编码。多表示编码可以指代针对每个分辨率具有一个或多个编码比特率表示。比特率可以指代视频的每单位播放时间所存储的信息或数据量。例如,视频流传输中的比特率可以在400kbits/s与40MBits/s之间变化。在一些情况下,较高比特率与观看者的视频的更好清晰度和/或更高质量相关。
用于自适应比特率流传输的常见系统可以利用通用编码配置(例如,用于每个表示的编码比特率)来编码视频或视频片段(也称为视频的“部分”、“块”或“剪辑”)。通用编码配置可以指代针对要编码的视频或视频片段的每个表示选择的预定义比特率。在常见系统中,针对特定分辨率的视频或视频片段,通用编码配置被选择成是“平均良好”(例如,在多个客户端装置处基于聚合的质量测量结果满足确定的视频质量测量结果)。
然而,与上述常见方法相反,已经认识到每个视频和/或视频片段是不同的,并且应当选择编码器的编码配置,以使得针对每个视频片段创建的编码版本适合于特定的视频片段。对编码配置(例如,分辨率,比特率等)的选择对所传递的视频质量以及用于存储和传输的成本具有影响。例如,针对分辨率选择较高的编码比特率可以得到更好的视频质量,但是它也可能会增加自适应视频流传输系统所需的系统资源,因为系统需要更多的资源来提供更高的性能以便将视频流量递送到客户端系统和用于存储数据(即,比特率越高,传输和存储的数据越多,对系统资源的要求越高(另外还增加了视频流传输系统的财务成本)。此外,因为编码比特率增加,递送给用户装置的视频质量可能会下降。这是因为网络容量可能是有限的。如果编码比特率高于用户装置的网络吞吐量,则在不重新缓冲的情况下视频无法递送到用户装置,这会对用户体验的视频质量产生负面影响。另外,不同的视频具有不同的特征,并且对于所有视频,一般和/或通用编码设置不太可能是普遍最佳的。
本公开的实施方式基于从客户端系统接收的关于播放统计信息的信息而分析编码配置的成本(例如,传输和存储成本)与递送的视频质量之间的折衷。播放统计信息可以指代客户端测量的带宽(也称为网络速度)和/或客户端视口大小。这些播放统计信息用于确定每个视频和/或视频片段的编码配置的最佳集合(例如,针对要编码的每个表示定义的比特率)。编码配置的最佳集合用于使从自适应视频流传输系统到客户端系统的出口流量最小化,同时维持视频和/或视频片段的递送质量(与常见系统相比)。“出口流量”或“出口”可以指代使数据从数据源和/或网络传输的速率(每单位时间的数据量)。
常见系统不考虑客户端侧反馈,以便确定特定视频和/或视频片段的最佳编码比特率。本公开的实施方式通过提高编码过程的效率(经由优化的编码配置选择)提供对自适应视频流传输系统的技术改进,从而减小传输的大小和/或数量(提高传输带宽的效用)以及用于自适应比特率流传输的存储空间,同时维持客户端系统的视频质量。
为了简单和简洁,本公开通常引用视频。然而,本公开的教示通常应用于媒体项目,并且可以应用于各种类型的内容或媒体项目,包括例如视频、音频、文本、图像等。
图1示出根据本公开的一个实施方式的示例性系统架构100。系统架构100包括客户端装置110A到110Z、网络105、数据存储装置106、内容共享平台120和服务器130。在一个实施方式中,网络105可以包括公用网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))、有线网络(例如,以太网)、无线网络(例如,802.11网络或Wi-Fi网络)、蜂窝网络(例如,长期演进(LTE)网络)、路由器、集线器、交换机、服务器计算机和/或以上的组合。在一个实施方式中,数据存储装置106可以是存储器(例如,随机存取存储器)、高速缓冲存储器、驱动器(例如,硬盘驱动器)、快闪驱动器、数据库系统或能够存储数据的另一种类型的部件或装置。数据存储装置106还可以包括多个存储部件(例如,多个驱动器或多个数据库),所述多个存储部件还可以跨多个计算装置(例如,多个服务器计算机)。
客户端装置110A到110Z可以各自包括计算装置,诸如个人计算机(PC)、笔记本计算机、移动电话、智能电话、平板计算机、上网本计算机、网络电视等。在一些实施方式中,客户端装置110A到110Z还可以被称为“用户装置”。每个客户端装置包括媒体查看器111。在一个实施方式中,媒体查看器111可以是允许用户查看内容(诸如图像、视频、网页、文件等)的应用。例如,媒体查看器111可以是网页浏览器,所述网页浏览器可以访问、检索、呈现和/或导航由网络服务器服务的内容(例如网页,诸如超文本标记语言(HTML)页面、数字媒体项目等)。媒体查看器111可以向用户渲染、显示和/或呈现内容(例如,网页、媒体查看器)。媒体查看器111还可以显示嵌入式媒体播放器(例如,播放器或HTML5播放器),所述嵌入式媒体播放器嵌在网页(可以提供关于由在线商家出售的产品的信息的网页)中。在另一示例中,媒体查看器111可以是独立应用(例如,移动应用或app),所述独立应用允许用户查看数字媒体项目(例如,数字视频、数字图像、电子书等)。根据本公开的各方面,媒体查看器111可以是内容共享平台应用,所述内容共享平台应用具有使用播放统计信息的多表示编码的比特率优化。
媒体查看器111可以通过服务器130和/或内容共享平台120提供给客户端装置110A到110Z。例如,媒体查看器111可以是嵌入式媒体播放器,所述嵌入式媒体播放器嵌在由内容共享平台120提供的网页中。在另一示例中,媒体查看器111可以是从服务器130下载的和/或从单独的服务器(未图示)下载的应用。
应当注意,一个实施方式中描述的由内容共享平台120执行的功能也可以视需要以其它实施方式在客户端装置110A到110Z中执行。另外,归于特定部件的功能可以由一起操作的不同或多个部件执行。内容共享平台120还可以作为通过适当的应用程序编程接口提供给其它系统或装置的服务来访问,并且因此不限于在网站中使用。
在一个实施方式中,内容共享平台120可以是一个或多个计算装置(诸如机架式服务器、路由器计算机、服务器计算机、个人计算机、主机计算机、笔记本计算机、平板计算机、台式计算机等)、数据存储装置(例如,硬盘、存储器、数据库)、网络、软件部件和/或硬件部件,其可以用于向用户提供对媒体项目的访问和/或向用户提供媒体项目。例如,内容共享平台120可以允许用户消费、上传、搜索、点赞(“喜欢”)、不点赞和/或评价媒体项目。内容共享平台120还可以包括网站(例如,网页)或应用后端软件,其可以用于向用户提供对媒体项目的访问。
在本公开的实施方式中,“用户”可以被表示成单独的个体。然而,本公开的其它实施方式涵盖“用户”作为由一组用户和/或自动化资源控制的实体。例如,联合为社交网络中的社区的一组个体用户可以被视为“用户”。在另一示例中,自动化消费者可以是内容共享平台120的自动摄取管道,诸如主题频道。
内容共享平台120可以托管数据内容,诸如媒体项目121。数据内容可以是用户选择的数字内容、用户可用的数字内容、用户上传的数字内容、由内容提供商选择的数字内容、由广播公司选择的数字内容等。媒体项目121的示例可以包括但不限于数字视频、数字电影、数字照片、数字音乐、网站内容、社交媒体更新、电子书(ebook)、电子杂志、数字报纸、数字有声读物、电子期刊、网络博客、简易信息聚合(RSS)订阅源、电子漫画书等。在一些实施方式中,媒体项目121也被称为内容项目。
媒体项目121可以经由互联网和/或经由移动装置应用而被消费。为了简洁和简单起见,在整个文档中使用在线视频(下文中也称为视频)作为媒体项目121的示例。如本文所使用的,“媒体”、“媒体项目”、“在线媒体项目”、“数字媒体”“数字媒体项目”、“内容”和“内容项目”可以包括电子文件,所述电子文件可以使用软件、固件或硬件执行或加载,所述软件、固件或硬件被配置成向实体呈现数字媒体项目。在一个实施方式中,内容共享平台120可以使用数据存储装置106来存储媒体项目121。
在一个实施方式中,服务器130可以是一个或多个计算装置(例如,机架式服务器、服务器计算机等)。在一个实施方式中,服务器130可以包括在内容共享平台120中。举例来说,客户端装置110A到110Z的用户可以各自通过网络105向服务器130传输对存储在数据存储装置106处的一个或多个视频的请求。在一些实施方式中,视频可以基于每个视频的分辨率和针对每个视频的每个分辨率确定的最佳比特率而以片段的形式存储在数据存储装置106中,如下面进一步详细讨论的。例如,视频的每个片段可以被单独解码以用于视频播放。此外,已经被划分成各片段的视频可以与相同的片段边界(例如,时间边界)相关联,以能够实现在片段边界处的不同比特率和/或分辨率之间的切换。
因此,数据存储装置106可以存储多个视频,其中每个视频被分成多个片段。在一些实施方式中,数据存储装置106还可以包括可以由服务器130传输到客户端装置110A到110Z的清单文件。在一些实施方式中,清单文件可以识别视频的可用表示(例如,可用比特率下的可用分辨率)和视频的每个片段的片段边界。清单文件可以由服务器130响应于客户端装置110A到110Z对数据存储装置106中的视频的流传输的请求而传输。客户端装置110A到110Z中的每个可以使用清单文件来基于相应客户端装置110A到110Z的可用资源(例如,CPU和带宽)而在来自服务器130的流的编码版本之间切换。例如,可以基于客户端装置110A的视口大小和与客户端装置110A相关联的网络带宽而将视频流的第一编码版本从服务器130传输到客户端装置110A。此外,可以基于客户端装置110Z的视口大小和与客户端装置110Z相关联的网络带宽而将同一个视频的流的第二编码版本从服务器130传输到不同的客户端装置110Z。
在本公开的实施方式中,服务器130可以包括编码比特率优化部件140。编码比特率优化部件140确定用于源视频的编码比特率集合(即,用于每个分辨率的一个或多个比特率)。在一些实施方式中,编码比特率优化部件140可以确定用于视频的每个片段的编码比特率集合。在一个实施方式中,所确定的编码比特率集合中的每个比特率对应于片段的不同分辨率。在一些实施方式中,可能存在与分辨率相关联的多个比特率(例如,3个版本的720p,各自处于不同的比特率)。然后,可以基于每个视频片段的表示和针对视频片段的表示确定的最佳编码比特率,将视频以片段的形式存储在数据存储装置106中。在一些实施方式中,除了视频片段之外和/或代替视频片段,可以针对整个视频确定最佳编码比特率。
在一些实施方式中,编码比特率优化部件140基于播放统计信息(例如,媒体播放器反馈)和视频的速率-质量特征而确定视频的编码比特率集合。播放统计信息可以指代客户端测量的带宽和客户端视口大小。带宽可以指代通过通信路径的成功数据传递的平均速率,并且可以以每秒比特数为单位来度量。在研究的时间间隔期间,比特流的带宽与以赫兹为单位的平均消耗信号带宽(表示比特流的模拟信号的平均频谱带宽)成比例。视口大小可以指代在渲染特定于装置的坐标(例如屏幕坐标的像素)时表示的其中将渲染感兴趣的对象的区域(通常是矩形的)。
本公开的实施方式基于视频的质量特征而生成要编码的视频片段的速率-质量模型。使用了该生成的速率-质量模型与反馈统计信息一起用于预测到客户端系统110A到110Z的视频的出口和递送质量。基于这些预测,可以应用非线性优化过程来确定用于源视频的不同表示的优化的编码比特率。
然后,代码转换部件150可以使用优化的编码比特率来针对视频和/或视频片段的每个表示以特定比特率对视频和/或视频片段进行编码。代码转换部件150可以位于与编码比特率优化部件140相同的计算装置(例如,服务器130)中,或者可以位于远离编码比特率优化部件140和/或服务器130的位置。代码转换部件150包括部件(例如,硬件和/或可由处理装置执行的指令),所述部件将媒体文件从源格式转换为可以在客户端装置(诸如台式计算机、移动装置、平板电脑等)上播放的版本。代码转换部件150可以是单个主代码转换器部件150,或者可以是本地和/或远程分散到服务器130的多个不同代码转换部件。代码转换部件150可以利用优化的编码比特率作为输入来指导针对视频和/或视频片段执行的代码转换操作,并且生成可以经由自适应比特率流传输过程递送到客户端装置110A到110Z处的媒体播放器(例如,媒体查看器111)的视频和/或视频片段的最终流。由本公开的实施方式确定的优化编码比特率使从服务器130到客户端系统110A到110Z的出口流量最小化,而不损害递视频的递送质量。
在一些实施方式中,服务器130的编码比特率优化部件140可以与内容共享平台120交互,以基于播放统计信息而提供多表示编码比特率优化。下面参考图2更加详细地描述了编码比特率优化部件140以及其特定功能的进一步描述。
虽然在内容共享平台和促进内容共享平台上的内容项目的社交网络共享方面讨论了本公开的实施方式,但是实施方式通常也可以应用于在用户之间提供连接的任何类型的社交网络。本公开的实施方式不限于向用户提供频道订阅的内容共享平台。
在本文讨论的系统收集关于用户的个人信息(例如,从媒体查看器111收集反馈统计信息,收集反馈数据等)或者可以利用个人信息的情况下,可以向用户提供以下机会:控制内容共享平台120是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息),或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容。另外,某些数据在被存储或使用之前可以用一种或多种方式进行处理,以使得移除个人可识别信息。例如,可以处理用户的身份,以使得无法确定用户的个人可识别信息,或者可以将获得了位置信息(诸如城市、邮政编码或州级)的用户的地理位置广义化,以使得就无法确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息以及信息如何被内容共享平台120使用。
图2是示出根据本公开的一个实施方式的编码比特率优化部件140的框图。如上面所讨论的,编码比特率优化部件140可以与单个社交网络交互,或者可以在多个社交网络中利用(例如,作为被其它第三方社交网络利用的内容共享平台的服务)。在一个实施方式中,编码比特率优化部件140包括概率分布模块210、速率-质量模型生成模块220、请求概率确定模块230和编码比特率选择模块240。在不失一般性的情况下,可以在编码比特率优化部件140中包括更多或更少的部件。例如,模块中的两个可以组合到单个模块中,或者所述模块中的一个可以划分成两个或更多个模块。在一个实施方式中,所述模块中的一个或多个可以驻留在不同计算装置上(例如,不同服务器计算机,在单个客户端装置上,或者分布在多个客户端装置中等)。此外,所述模块中的一个或多个可以驻留在不同内容共享平台、第三方社交网络和/或外部服务器上。
编码比特率优化部件140可通信地耦接到数据存储装置106。例如,编码比特率优化部件140可以经由网络(例如,经由如图1中示出的网络105)耦接到数据存储装置106。数据存储装置106可以是存储器(例如,随机存取存储器)、高速缓冲存储器、驱动器(例如,硬盘驱动器)、快闪驱动器、数据库系统或能够存储数据的另一种类型的部件或装置。数据存储装置106还可以包括多个存储部件(例如,多个驱动器或多个数据库),所述多个存储部件还可以跨多个计算装置(例如,多个服务器计算机)。数据存储装置106包括媒体项目数据290、反馈数据291、概率分布数据292、速率质量模型数据293、质量数据295和出口约束数据296。
如上面所讨论的,编码比特率优化部件140确定和/或计算用于视频和/或视频片段的最佳编码比特率集合(即,用于每个表示的一个或多个比特率)。在一个实施方式中,所确定的编码比特率集合中的每个比特率对应于视频或视频片段的不同表示。在一些实施方式中,可能存在与分辨率相关联的多个比特率。然后,可以基于每个视频片段的表示而以针对视频片段的表示确定的最佳一个或多个比特率,将视频以片段形式存储在数据存储装置106中。为了便于以下讨论,编码比特率优化部件140被描述为确定视频的片段的最佳编码比特率集合。
首先,为了确定所述编码比特率集合,编码比特率优化部件140启动概率分布模块210,以基于来自媒体播放器的反馈统计信息(在本文中也称为客户端侧反馈统计信息)而生成概率分布。概率分布可以指代将统计实验的每个结果与其发生概率相链接的等式或函数。例如,概率分布模块210利用播放统计信息来估计网络速度的第一概率分布和视口大小的第二概率分布。在一些实施方式中,可以利用带宽和视口大小的联合概率分布。就联合概率分布而言,带宽可以独立于视口大小。此外,第一概率分布和第二概率分布的乘积可以用作联合概率分布的近似值。在一个实施方式中,P[X,V]可以被称作联合概率分布。变量X可以表示客户端装置处的网络速度,而变量V可以表示客户端装置的视口大小。
播放统计信息可以指代客户端测量的带宽(在本文中也称作网络速度)和客户端视口大小。在一个实施方式中,变量X可以表示客户端处的网络速度,而变量V可以表示客户端的视口大小。概率分布模块210可以访问数据存储装置106处的反馈数据291,以生成第一概率分布和第二概率分布。反馈数据291可以包括根据从客户端系统处的媒体播放器接收的体验质量(QoE)查验获得的统计信息。QoE查验可以包括例如媒体播放器处的吞吐量的测量结果(例如,带宽和/或网络速度)和媒体播放器处采用的视口大小。可以在媒体播放器的至少一次播放提供QoE查验。可以聚合来自反馈数据291的网络速度数据,以估计网络速度X的第一概率分布。类似地,可以聚合来自反馈数据291的视口大小数据,以估计视口大小V的第二概率分布。第一概率分布和第二概率分布和/或X和V的联合概率分布(即,P[X,V])可以作为概率分布数据292存储在数据存储装置106中。
在一些实施方式中,可以基于诸如地理位置、类型、频道、内容类型等不同的粒度而估计概率分布。例如,可以分析来自特定地理区域中的媒体播放器的反馈数据291以估计第一概率分布和第二概率分布,从而提供针对特定地理区域的网络速度和视口大小的聚合概率的视图。
在估计网络速度和视口大小的概率分布之后或同时,速率-质量模型生成模块220针对要编码的视频生成一个或多个速率-质量模型。该视频在本文中可以称为源视频,所述源视频可以存储在数据存储装置106的媒体项目数据290中。在一些实施方式中,源视频首先被划分为片段,其中每个片段含有几秒的视频。然后,速率-质量模型生成模块220可以处理视频的每个视频片段。
速率-质量模型生成模块220可以以每个支持的分辨率将视频的片段编码为不同的比特率。例如,可以分别以分辨率240p、360p、480p、720p和1080p中的每个将片段编码成不同的比特率。出于讨论的目的,速率-质量模型生成模块220可以针对每个分辨率将源视频编码为具有M个比特率的版本。可以使用变量m对版本进行编索引,其中较大的m对应于较高的编码比特率。第m版本的编码比特率可以表示为b_m。本文描述的编码比特率b_m可以指代作为速率-质量模型生成过程的一部分使用的编码比特率,而本文所描述的编码比特率x_i可以指代作为下面描述的速率质量测量过程的一部分使用的编码比特率。
对于片段的每个编码版本,速率-质量模型生成模块220可以测量对应的质量度量。质量度量可以是从视频质量评估得出的测量结果。可以执行视频质量评估以描述正在研究的视频序列集合的质量。可以客观地(例如,通过数学模型)或主观地(例如,通过向用户询问他们的评价)评估视频质量。而且,可以离线(即,在开发新的编解码器或服务的实验室环境中)或在服务中(以监测和确保特定水平的质量)确定系统的质量。用于视频质量评估(包括但不限于峰值信噪比(PSNR)或结构相似性(SSIM))的一些模型是图像质量模型,所述图像质量模型的输出是针对视频序列中的每个帧计算的。然后可以随时间推移记录每个帧的这种质量测量,以评估整个视频序列的质量。出于讨论的目的,对于给定分辨率,q_m可以表示具有编码比特率b_m的编码版本的测量质量。
在一个示例中,PSNR模型可以用于测量质量度量,其中PSNR提供信号的最大可能功率与影响其表示的保真度的破坏性噪声功率之间的比率。在另一示例中,SSIM模型可以用于测量质量度量。SSIM模型是测量两个图像之间的相似度的索引,其中图像质量的测量结果或预测基于初始未压缩或无失真图像作为参考。举另一例来说,PSNR模型和SSIM模型的组合可以用于测量质量度量。任何类型的质量度量可以被应用来测量本公开的实施方式中的质量。
使用得到的比特率-质量测量结果(b_1,q_1),…,(b_M,q_M),速率-质量生成模块220匹配速率-质量模型Q_r_i(x_i),其中Q_r_i表示以x_i编码比特率编码的第i个表示(即,r_i)的分辨率下的质量测量结果。为此,所述片段的每个分辨率/比特率版本具有用匹配的速率-质量模型表示的对应质量测量结果。或者,换句话说,所述片段中的每个分辨率具有对应于表示的潜在编码比特率的质量测量结果(用速率-质量模型Q_i(x_i)表示)。可以使用与上述过程不同的过程获得本公开的实施方式的速率-质量模型。例如,可以通过分析视频的内容和根据得到的分析创建速率-质量模型来获得速率-质量模型。在一个实施方式中,针对源视频生成的速率-质量模型可以存储在数据存储装置106的速率-质量模型数据293中。
请求概率确定模块230利用(由概率分布模块210生成的)概率分布来预测以特定比特率编码的片段的每个表示i的概率,所述概率是请求将片段流传输给媒体播放器的概率。该预测的概率可以表示成P_i。存在媒体播放器可能会请求第i个分辨率的两种情况。
第一种情况是当带宽X落在x_i与x_i+1之间并且视口大小大于r_i(“i”处的分辨率)时。这种情况的概率是P[x_i<=X<x_i+1,V>=v_i]。
第二种情况是当带宽高于x_i+1且r_i+1大于r_i但是视口大小等于r_i时。因此,该种情况的概率是 是指示函数,其中如果条件满足,则函数操作等于1,否则等于零。简而言之, P_i在这里可以称为请求概率。
如上面讨论的,X和V的概率分布(例如,联合概率分布P[X,V])是由概率分布模块210先前估计的,并且可以作为数据存储装置106中的概率分布数据292来访问。在一个实施方式中,如果基于特定粒度(诸如地理区域、类型等)而估计了概率分布,则预测的概率可以表示由被分组到特定粒度(例如,地理区域中的客户端系统,请求这种类型的视频的客户端系统等)中的客户端系统选定该片段的版本的概率。
P_i(即,请求概率)是编码比特率的函数{x_i:1<=i<=N}。使用上面的等式,在给定任何任意编码比特率设置{x_i:1<=i<=N}的情况下,请求概率确定模块230可以估计P_i。在一些实施方式中,当请求了视频片段的这些表示时,请求概率确定模块230预测任何编码比特率矢量(x_1,…,x_N)下的请求概率。
编码比特率选择模块240可以利用由请求概率确定模块230确定的请求概率以及由速率-质量模型生成模块220生成的速率-质量模型293,以确定用于源视频的片段的最佳编码比特率集合。编码比特率选择模块240可以应用非线性优化过程,以确定用于源视频的片段的不同表示的优化的编码比特率。
在一个示例中,递送给客户端系统的片段(诸如源视频的片段)的平均质量可以由Q_avg=Q_1*P_1+Q_2*P_2+...+Q_N*P_N估计,其中Q_i=Q_r_i(x_i)是编码版本i的质量。类似地,来自服务器的平均视频比特率(出口流量)是R_avg=x_1*P_1+x_2*P_2+x_N*P_N,其中x_i是版本i的编码比特率。编码比特率选择模块240可以实现非线性优化器以使R_avg最小化,以使得Q_avg大于或等于质量阈值Q(在本文中也称为质量阈值)。质量阈值可以由自适应比特率流传输系统的管理员进行配置,并且存储在数据存储装置106中的质量数据295中。
在上面的示例中,质量阈值Q是服务器旨在实现的平均质量。P_i是由请求概率确定模块230估计的编码比特率-分辨率概率。Q_i由通过速率-质量模型生成模块220生成的速率-质量模型给出的,并且存储在速率-质量模型数据293中。为了解决该优化,编码比特率选择模块240可以实现一般非线性编程求解器(也称作非线性优化器),以获得x_i值集合,所述x_i值集合表示在表示i=1,…,N下的最佳编码比特率。由编码比特率选择模块240确定的解决方案提供在允许平均视频质量高于质量阈值Q的同时使出口视频流量最小化的编码比特率。
在一些实施方式中,编码比特率选择模块240还可以解决双重问题:使Q_1*P_1+Q_2*P_2+...+Q_N*P_N最大化,以使得(x_1*P_1+x_2*P_2+...+x_N*P_N)<=R。在该上面的示例中,R是对平均视频出口流量的约束(在本文中也称为出口阈值或出口约束阈值),其可以在数据存储装置106的出口约束数据296中找到。该问题的解决方案给出了在允许平均视频流量出口不超过R的同时使平均视频质量流量最大化的编码比特率。
本公开的实施方式不限于基于上面两个示例的优化。在其它实施方式中,可以解决其它优化。例如,编码比特率选择模块240可以确定优化的编码比特率集合,所述优化的编码比特率集合在维持质量的同时使存储大小最小化。在另一示例中,编码比特率选择模块240可以添加时间方向约束,诸如相邻的视频片段之间的质量差异小于阈值。在一个示例中,编码比特率选择模块240可以利用其它网络度量来选择优化的编码比特率集合,诸如添加最低表示应当具有小于(或者在一些实施方式中高于)阈值的比特率的约束。
由编码比特率选择模块240确定的优化的编码比特率可以被用来使从服务器到客户端系统的出口流量最小化,而不影响视频的递送质量。编码比特率优化部件140可以作为整体应用于单个视频和/或可以应用于视频的片段。例如,编码比特率优化部件140可以将视频划分成各片段,并且将上述过程应用于每个片段,以确定适应于视频的不同内容的最佳编码比特率选择。
图3是示出根据本公开的一些实施方式的用于使用播放统计信息的多表示编码的比特率优化的方法300的流程图。方法300可以由处理逻辑执行,所述处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行以执行硬件仿真的指令)或以上的组合。
为了简化解释,将本公开的方法描绘和描述成一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其它动作一起发生。此外,可能不需要所有示出的动作来实现根据所公开的主题的方法。另外,本领域技术人员应当理解并了解,所述方法可以替代地经由状态图或事件表示为一系列相互关联的状态。另外,本领域技术人员应当理解,本说明书中公开的方法能够存储在制品上,以便于将这些方法传输和传递到计算装置。如本文所使用的术语“制品”意图涵盖可从任何计算机可读装置或存储介质访问的计算机程序。在一个实施方式中,方法300可以由如图2中示出的编码比特率优化部件140执行。
方法300在框310处开始,其中生成了源视频的片段的多个版本。所述版本可以包括针对与所述片段相关联的每个分辨率以不同编码比特率对片段进行编码。在框320处,测量片段的每个版本的质量度量。举几个例子来说,质量度量可以是PSNR测量结果或SSIM测量结果。在一个实施方式中,测量的质量度量被用于针对不同的分辨率中的每个生成速率-质量模型。
随后,在框330处,生成概率模型以预测请求了片段的表示的请求概率。概率模型可以基于网络速度和视口大小的经验联合概率分布,所述经验联合概率分布是根据与其它视频的先前播放相关联的客户端侧反馈统计信息生成的。如上面讨论的,片段的表示可以指代针对单个分辨率选择的多个编码比特率中的一个(例如,针对240p选择的2个比特率:240p_100kbps和240p_200kbps)。
在框340处,针对所述片段的表示中的每个确定编码比特率。基于(在框320处确定的)速率-质量模型和(在框330处确定的)概率模型来确定用于表示的编码比特率。在一个实施方式中,非线性优化器被用于确定所述片段的表示的编码比特率集合。最后,在框350处,将所确定的编码比特率指派给所述片段的表示的对应表示。该比特率/表示指派可以被编码器用作视频片段的编码配置。
图4是示出根据本公开的实施方式的基于播放统计信息而进行多表示编码比特率优化以使出口最小化的方法400的流程图。方法400可以由处理逻辑执行,所述处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行以执行硬件仿真的指令)或以上的组合。在一个实施方式中,方法400可以由如图2中示出的编码比特率优化部件140执行。
方法400在框410处开始,其中确定了用于网络速度和视口大小的联合概率分布。联合概率分布可以基于从客户端系统接收的反馈统计信息。在一些实施方式中,可以通过利用对应于这些类别的反馈统计信息(例如,从位于地理区域中的媒体播放器收集的反馈统计数据等)来估计用于地理区域和/或其它类别的联合概率分布。
在框420处,用于视频的片段的分辨率的速率-质量模型是基于针对片段测量的质量度量而生成的。
随后,在框430处,基于生成的速率-质量模型并且基于请求了表示的请求概率而估计用于编码的递送质量和出口。请求概率可以基于联合概率分布。在一个实施方式中,递送质量是编码的质量的加权和,其中权重是请求了编码的概率。出口可以是比特率的加权和,其中权重是请求了编码的概率。可以选择用于每个表示的任意比特率,以生成估计的递送质量和出口,从而产生不同的可能递送质量和出口结果。
最后,在框440处,确定了在将(在框430处的)递送质量维持在质量阈值处或高于质量阈值的同时使(在框430处的)出口最小化的比特率集合。所述比特率集合包括对应于片段的每个表示的比特率。在一个实施方式中,非线性优化器被用来确定用于对应表示的比特率集合,所述比特率集合在维持所确定的质量的同时使所确定的出口最小化。
图5是示出根据本公开的实施方式的用于基于播放统计信息而进行多表示编码比特率优化以使质量最大化的方法500的流程图。方法500可以由处理逻辑执行,所述处理逻辑包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理装置上运行以执行硬件仿真的指令)或以上的组合。在一个实施方式中,方法500可以由如图2中示出的编码比特率优化部件140执行。
方法500的框510到530类似于方法400的框410到430。上面针对框410到430提供的描述可以类似地应用于方法500的框510到530。在方法500的框540处,确定了在将(在框530处)确定的出口保持在出口阈值处或保持低于出口阈值的同时使(在框530处的)递送质量最大化的比特率集合。所述比特率集合包括对应于所述片段的每个表示的比特率。在一个实施方式中,非线性优化器用于确定用于对应表示的比特率集合,所述比特率集合在将所确定的出口保持在出口阈值或保持低于出口阈值的同时使递送质量最大化。
图6示出呈计算机系统600的示例性形式的机器的图示,其中可以执行一组指令,以致使机器执行本文所讨论的方法论中的任何一个或多个。在替换实施方式中,机器可以连接(例如,网络连接)到局域网(LAN)、内联网、外联网或互联网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、服务器、网络路由器、交换机或桥接器或者任何机器,它们能够执行指定将被该机器采取的动作的一组指令(顺序或其它)。此外,虽然示出仅单个机器,但是术语“机器”还应被视为包括单独或联合执行一组(或多组)指令以执行本文所讨论的方法论中的任何一个或多个的任何机器集合。在一个实施方式中,计算机系统600可以代表诸如服务器102等服务器,所述服务器执行编码比特率优化部件140,如相关于图1和图2所描述的。
示例性计算机系统600包括经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或总线结构DRAM(RDRAM))等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储装置618。通过本文描述的各种总线提供的信号中的任一个可以与其它信号时间复用并且通过一个或多个公共总线提供。另外,电路部件或块之间的互连可以被显示为总线或单个信号线路。或者,所述总线中的每个可以是一个或多个单个信号线路,并且所述单个信号线路中的每个也可以是总线。
处理装置602表示一个或多个通用处理装置,诸如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器或实现其它指令集的处理器或实现指令集的组合的处理器。处理装置902还可以是一个或多个专用处理装置,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602被配置成执行处理逻辑626,以用于执行本文所讨论的操作和步骤。
计算机系统600还可以包括网络接口装置608。计算机系统600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入装置612(例如,键盘)、光标控制装置614(例如,鼠标)和信号生成装置616(例如,扬声器)。
数据存储装置618可以包括计算机可读存储介质628(也称为机器可读存储介质),其上存储有体现本文所描述的功能的方法论中的任何一个或多个的一个或多个指令集622(例如,软件)。指令622在其由计算机系统600执行期间还可以完全或至少部分驻留在主存储器604内和/或在处理装置602内;主存储器604和处理装置602还构成机器可读存储介质。还可以经由网络接口装置608通过网络620传输或接收指令622。
如本文所描述,计算机可读存储介质628还可以用于存储指令以使用播放统计信息来执行用于多表示编码的比特率优化的方法。虽然计算机可读存储介质628在示例性实施方式中被示出为单个介质,但是术语“机器可读存储介质”应当被视为包括单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓冲存储器和服务器),所述单个介质或多个介质存储一个或多个指令集。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁性存储介质(例如,软盘);光存储介质(例如,CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM);快闪存储器;或适合于存储电子指令的其它类型的介质。
前面的描述阐述了众多具体细节,诸如特定系统、部件、方法等的示例,以便提供对本公开的若干实施方式的良好理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本公开的至少一些实施方式。在其它实例中,没有详细描述公知的部件或方法,或者以简单的框图格式呈现公知的部件或方法,以便避免不必要地模糊本公开。因此,阐述的具体细节仅仅是示例性的。特定实施方式可以与这些示例性细节不同,并且仍然预期在本公开的范围内。
本说明书中对“一个实施方式”或“实施方式”的引用意味着结合实施方式描述的特定特征、结构或特性包括在至少一个实施方式中。因此,贯穿本说明书在各种地方出现的短语“在一个实施方式中”或“在实施方式中”不一定都指代相同的实施方式。另外,术语“或”意图表示包含性的“或”而不是排他性的“或”。
虽然以特定顺序示出和描述了本文的方法的操作,但是可以改变每个方法的操作的顺序,以使得可以以相反的顺序执行某些操作,或者以使得可以至少部分地与其它操作同时进行执行某些操作。在另一实施方式中,不同操作的指令或子操作可以呈间歇和/或交替的方式。另外或可选地,本文中参考一个方面或实施方式描述的特征可以应用于本文描述的任何其它方面或实施方式。
Claims (23)
1.一种方法,所述方法包括:
生成源媒体项目的片段的多个版本,所述版本包括针对所述片段的每个分辨率以不同编码比特率对所述片段的编码;
测量所述片段的每个版本的质量度量;
基于与所述分辨率对应的测量的质量度量而生成用于所述片段的每个分辨率的速率-质量模型;
获得与所述源媒体项目不同的其他媒体项目的先前播放相关联的客户端侧反馈统计信息,其中所述客户端侧反馈统计信息包括从处于所述源媒体项目的相同地理区域中的客户端装置处的媒体播放器传输的播放痕迹,所述播放痕迹针对所述先前播放中的每一个包括:在相应的客户端装置上所利用的相应的网络速度和相应的视口大小;
通过处理装置生成特定于所述地理区域的概率模型,以预测请求所述片段的表示的请求概率,所述概率模型基于网络速度和视口大小的联合概率分布,所述联合概率分布是根据与其它媒体项目的先前播放相关联的客户端侧反馈统计信息生成的;
通过所述处理装置基于所述速率-质量模型和所述概率模型而确定用于所述片段的所述表示中的每个表示的编码比特率;以及
将所确定的编码比特率指派给所述片段的对应表示。
2.根据权利要求1所述的方法,其中,所述片段包括所述源媒体项目的全部。
3.根据权利要求1或2所述的方法,其中,用于所述表示中的一个表示的请求概率还基于:
该表示的编码比特率和所述编码比特率与所述联合概率分布中的网络速度的关系;以及
该表示的分辨率和所述分辨率与所述联合概率分布中的视口大小的关系。
4.根据权利要求1或2所述的方法,其中,所述联合概率分布是根据从所述播放痕迹确定的所述网络速度的累积测量结果和根据从所述播放痕迹确定的所述视口大小的累积测量结果生成的。
5.根据权利要求4所述的方法,其中,所述联合概率分布特定于所述源媒体项目的所述地理区域。
6.根据权利要求4所述的方法,其中,所述播放痕迹针对所述源媒体项目的类型而被收集,并且其中所述联合概率分布特定于所述源媒体项目的类型。
7.根据权利要求1或2所述的方法,其中,确定用于所述表示中的每个表示的所述编码比特率还包括使用于所述片段的平均出口流量最小化,以使得所述片段的平均质量被维持在限定的质量水平处或高于限定的质量水平,其中所述平均出口流量是所述不同编码比特率和所述请求概率的函数,并且其中所述平均质量是所述质量度量和所述请求概率的函数。
8.根据权利要求1或2所述的方法,其中,确定用于所述表示中的每个表示的所述编码比特率还包括使用于所述片段的平均质量最大化,以使得所述片段的平均出口流量被维持在限定的媒体项目出口流量水平处或低于限定的媒体项目出口流量水平,其中所述平均质量是所述质量度量和所述请求概率的函数,并且其中所述平均出口流量是所述多个比特率和所述请求概率的函数。
9.根据权利要求1或2所述的方法,其中,将所确定的编码比特率指派给所述对应表示还包括将所选择的编码比特率提供给用于以对应的比特率对所述片段的所述表示中的每个表示进行编码的至少一个代码转换器。
10.根据权利要求1或2所述的方法,其中,所述表示包括所述片段的比特率/分辨率组合,并且其中所述片段包括用于所述片段的所述分辨率中的每个分辨率的一个或多个表示。
11.根据权利要求1或2所述的方法,其中,所述质量度量包括峰值信噪比测量结果或结构相似度测量结果中的至少一个。
12.一种系统,所述系统包括:
存储器;以及
耦接到所述存储器的处理装置,其中,所述处理装置用来:
获得与源媒体项目不同的多个媒体项目的先前播放相关联的客户端侧反馈统计信息,其中所述客户端侧反馈统计信息包括从处于所述源媒体项目的相同地理区域中的客户端装置处的媒体播放器传输的播放痕迹,所述播放痕迹针对所述先前播放中的每一个包括:在相应的客户端装置上所利用的相应的网络速度和相应的视口大小;
基于从客户端系统接收的反馈统计信息而确定用于网络速度和视口大小的联合概率分布,所述联合概率分布特定于所述地理区域;
基于针对所述源媒体项目的片段测量的质量度量而生成用于所述片段的分辨率的速率-质量模型;
基于所生成的速率-质量模型并且基于请求所述片段的表示的请求概率而估计用于所述表示的递送质量和出口,其中所述请求概率基于所述联合概率分布;以及
确定包括与所述片段的所述表示中的每个表示相对应的比特率的比特率集合,所述比特率集合被确定以在将所述递送质量维持在质量阈值处或高于质量阈值的同时使所述出口最小化。
13.根据权利要求12所述的系统,其中请求所述表示中的一个表示的请求概率还基于:
该表示的比特率和所述比特率与所述联合概率分布中的网络速度的关系;以及
该表示的分辨率和所述分辨率与所述联合概率分布中的视口大小的关系。
14.根据权利要求12或13所述的系统,其中,所述联合概率分布是根据从所述播放痕迹确定的所述网络速度的累积测量结果和根据从所述播放痕迹确定的所述视口大小的累积测量结果生成的。
15.根据权利要求14所述的系统,其中,所述播放痕迹针对所述媒体项目的类型而被收集,并且其中所述联合概率分布特定于所述媒体项目的所述类型。
16.根据权利要求12或13所述的系统,其中,所述处理装置还将所确定的比特率集合提供给用于以对应的比特率对所述片段的所述表示中的每个表示进行编码的至少一个代码转换器。
17.根据权利要求16所述的系统,其中,所述递送质量基于所述编码的峰值信噪比测量结果或所述编码的结构相似度测量结果中的至少一个。
18.一种存储指令的机器可读存储介质,所述指令当被执行时使得处理装置执行操作,所述操作包括:
获得与源媒体项目不同的多个媒体项目的先前播放相关联的客户端侧反馈统计信息,其中所述客户端侧反馈统计信息包括从处于所述源媒体项目的相同地理区域中的客户端装置处的媒体播放器传输的播放痕迹,所述播放痕迹针对所述先前播放中的每一个包括:在相应的客户端装置上所利用的相应的网络速度和相应的视口大小;
基于从客户端系统接收的反馈统计信息而确定用于网络速度和视口大小的联合概率分布,所述联合概率分布特定于所述地理区域;
基于针对所述源媒体项目的片段测量的质量度量而生成用于所述片段的分辨率的速率-质量模型;
通过所述处理装置基于所生成的速率-质量模型并且基于请求所述片段的表示的请求概率而估计用于所述表示的递送质量和出口,其中所述请求概率基于所述联合概率分布;以及
通过所述处理装置确定包括与所述片段的所述表示中的每个表示相对应的比特率的比特率集合,所述比特率集合被确定以在将所述出口保持在出口阈值处或低于出口阈值的同时使所述递送质量最大化。
19.根据权利要求18所述的机器可读存储介质,其中,请求所述表示中的一个表示的请求概率还基于:
该表示的比特率和所述比特率与所述联合概率分布中的网络速度的关系;以及
该表示的分辨率和所述分辨率与所述联合概率分布中的视口大小的关系。
20.根据权利要求18或19所述的机器可读存储介质,其中,所述联合概率分布是根据从所述播放痕迹确定的所述网络速度的累积测量结果和根据从所述播放痕迹确定的所述视口大小的累积测量结果生成的。
21.根据权利要求20所述的机器可读存储介质,其中,所述播放痕迹针对所述媒体项目的类型而被收集,并且其中所述联合概率分布特定于所述媒体项目的所述类型。
22.根据权利要求18或19所述的机器可读存储介质,其中,所述处理装置还将所确定的比特率集合提供给用于以对应的比特率对所述片段的所述表示中的每个表示进行编码的至少一个代码转换器。
23.根据权利要求18或19所述的机器可读存储介质,其中,所述递送质量基于所述片段的峰值信噪比测量结果或所述片段的结构相似度测量结果中的至少一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/337,806 US10454987B2 (en) | 2016-10-28 | 2016-10-28 | Bitrate optimization for multi-representation encoding using playback statistics |
US15/337,806 | 2016-10-28 | ||
PCT/US2017/053318 WO2018080688A1 (en) | 2016-10-28 | 2017-09-25 | Bitrate optimization for multi-representation encoding using playback statistics |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110268717A CN110268717A (zh) | 2019-09-20 |
CN110268717B true CN110268717B (zh) | 2021-08-27 |
Family
ID=60117754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780072261.6A Active CN110268717B (zh) | 2016-10-28 | 2017-09-25 | 使用播放统计信息对多表示编码的比特率优化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10454987B2 (zh) |
EP (1) | EP3533232B1 (zh) |
CN (1) | CN110268717B (zh) |
WO (1) | WO2018080688A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10148989B2 (en) * | 2016-06-15 | 2018-12-04 | Divx, Llc | Systems and methods for encoding video content |
US10798387B2 (en) * | 2016-12-12 | 2020-10-06 | Netflix, Inc. | Source-consistent techniques for predicting absolute perceptual video quality |
US11019349B2 (en) * | 2017-01-20 | 2021-05-25 | Snap Inc. | Content-based client side video transcoding |
US10306250B2 (en) * | 2017-06-16 | 2019-05-28 | Oath Inc. | Video encoding with content adaptive resource allocation |
US11146608B2 (en) * | 2017-07-20 | 2021-10-12 | Disney Enterprises, Inc. | Frame-accurate video seeking via web browsers |
TW201931866A (zh) * | 2017-12-29 | 2019-08-01 | 圓剛科技股份有限公司 | 影音串流控制裝置及其控制方法 |
US11983623B1 (en) * | 2018-02-27 | 2024-05-14 | Workday, Inc. | Data validation for automatic model building and release |
US10778938B2 (en) * | 2018-12-20 | 2020-09-15 | Hulu, LLC | Video chunk combination optimization |
US10887660B2 (en) * | 2018-12-27 | 2021-01-05 | Comcast Cable Communications, Llc | Collaborative media quality determination |
EP3989502B1 (en) * | 2019-07-26 | 2023-12-27 | Mitsubishi Electric Corporation | Subchannel encoding device, subchannel decoding device, subchannel encoding method, subchannel decoding method, and subchannel multiplexing optical communication system |
US11343567B1 (en) * | 2019-08-07 | 2022-05-24 | Meta Platforms, Inc. | Systems and methods for providing a quality metric for media content |
EP4074058A1 (en) * | 2019-12-11 | 2022-10-19 | Google LLC | Methods, systems, and media for selecting formats for streaming media content items |
US11425184B2 (en) * | 2020-04-21 | 2022-08-23 | Google Llc | Initial bitrate for real time communication |
WO2021236059A1 (en) * | 2020-05-19 | 2021-11-25 | Google Llc | Dynamic parameter selection for quality-normalized video transcoding |
US11190826B1 (en) * | 2020-06-25 | 2021-11-30 | Disney Enterprises, Inc. | Segment quality-guided adaptive stream creation |
WO2022013326A1 (en) * | 2020-07-16 | 2022-01-20 | Nokia Technologies Oy | Viewport dependent delivery methods for omnidirectional conversational video |
CN113382241A (zh) * | 2021-06-08 | 2021-09-10 | 北京奇艺世纪科技有限公司 | 视频编码方法、装置、电子设备和存储介质 |
US20210400277A1 (en) * | 2021-09-01 | 2021-12-23 | Intel Corporation | Method and system of video coding with reinforcement learning render-aware bitrate control |
CN113747245A (zh) * | 2021-09-06 | 2021-12-03 | 北京字跳网络技术有限公司 | 多媒体资源上传方法、装置、电子设备以及可读存储介质 |
US20230089154A1 (en) * | 2021-09-22 | 2023-03-23 | Netflix, Inc. | Virtual and index assembly for cloud-based video processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104272289A (zh) * | 2012-03-13 | 2015-01-07 | 谷歌公司 | 预测性自适应媒体流式传输 |
CN104429041A (zh) * | 2012-06-28 | 2015-03-18 | 阿尔卡特朗讯公司 | 使能够进行平滑质量转换的自适应流感知节点、编码器以及客户端 |
CN105191334A (zh) * | 2013-03-14 | 2015-12-23 | 思科技术公司 | 用于自适应比特率视频回放的基于调度器的网络虚拟播放器 |
CN105308957A (zh) * | 2013-07-24 | 2016-02-03 | 华为技术有限公司 | 用于网络协助自适应流媒体的系统和方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8875208B1 (en) * | 2007-11-21 | 2014-10-28 | Skype | High quality multimedia transmission from a mobile device for live and on-demand viewing |
US20110249954A1 (en) * | 2010-04-09 | 2011-10-13 | Microsoft Corporation | Capturing presentations in online conferences |
US20110262102A1 (en) * | 2010-04-13 | 2011-10-27 | Lahr Nils B | System and methods for optimizing buffering heuristics in media |
US8812662B2 (en) | 2011-06-29 | 2014-08-19 | Sonic Ip, Inc. | Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content |
US20130223509A1 (en) | 2012-02-28 | 2013-08-29 | Azuki Systems, Inc. | Content network optimization utilizing source media characteristics |
US20150341411A1 (en) * | 2013-01-10 | 2015-11-26 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and Method for Controlling Adaptive Streaming of Media |
US9106934B2 (en) * | 2013-01-29 | 2015-08-11 | Espial Group Inc. | Distribution of adaptive bit rate live streaming video via hyper-text transfer protocol |
US9167311B2 (en) * | 2013-09-25 | 2015-10-20 | Verizon Patent And Licensing Inc. | Variant playlist optimization |
US9904936B2 (en) * | 2013-11-19 | 2018-02-27 | Adobe Systems Incorporated | Method and apparatus for identifying elements of a webpage in different viewports of sizes |
US20160073106A1 (en) | 2014-09-08 | 2016-03-10 | Apple Inc. | Techniques for adaptive video streaming |
US11451798B2 (en) | 2015-01-05 | 2022-09-20 | Arris Enterprises Llc | Method of encoding video with film grain |
CN107211193B (zh) * | 2015-02-07 | 2021-04-13 | 视觉波公司 | 感知体验质量估计驱动的智能适应视频流传输方法和系统 |
EP3466079B1 (en) * | 2016-05-24 | 2023-07-12 | Nokia Technologies Oy | Method and an apparatus and a computer program for encoding media content |
-
2016
- 2016-10-28 US US15/337,806 patent/US10454987B2/en active Active
-
2017
- 2017-09-25 CN CN201780072261.6A patent/CN110268717B/zh active Active
- 2017-09-25 EP EP17784732.4A patent/EP3533232B1/en active Active
- 2017-09-25 WO PCT/US2017/053318 patent/WO2018080688A1/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104272289A (zh) * | 2012-03-13 | 2015-01-07 | 谷歌公司 | 预测性自适应媒体流式传输 |
CN104429041A (zh) * | 2012-06-28 | 2015-03-18 | 阿尔卡特朗讯公司 | 使能够进行平滑质量转换的自适应流感知节点、编码器以及客户端 |
CN105191334A (zh) * | 2013-03-14 | 2015-12-23 | 思科技术公司 | 用于自适应比特率视频回放的基于调度器的网络虚拟播放器 |
CN105308957A (zh) * | 2013-07-24 | 2016-02-03 | 华为技术有限公司 | 用于网络协助自适应流媒体的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018080688A1 (en) | 2018-05-03 |
US10454987B2 (en) | 2019-10-22 |
CN110268717A (zh) | 2019-09-20 |
EP3533232B1 (en) | 2021-06-09 |
EP3533232A1 (en) | 2019-09-04 |
US20180124146A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110268717B (zh) | 使用播放统计信息对多表示编码的比特率优化 | |
CN109964488B (zh) | 利用聚合网络统计来提高来自移动设备的直播视频流传输的质量和用户体验 | |
CN103999471B (zh) | 由视频描述长度引导的视频编码的速率-失真-复杂性优化 | |
Toni et al. | Optimal set of video representations in adaptive streaming | |
US11463750B2 (en) | Method and apparatus for transmitting adaptive video in real time using content-aware neural network | |
KR102316968B1 (ko) | 복잡도 적응형 단일 패스 대 2-패스 트랜스코딩 | |
JP2020502898A (ja) | メディアストリーミングのためのコーディングプロファイルの最適化 | |
CN103975601A (zh) | 视频编码的速率-失真-复杂性优化 | |
US20130111512A1 (en) | Method to evaluate the geographic popularity of geographically located user-generated content items | |
CN104822068A (zh) | 流媒体代理缓存替换方法及装置 | |
EP4027616B1 (en) | Global constraint-based content delivery network (cdn) selection in a video streaming system | |
CN114982227A (zh) | 使用机器学习基于预测的视觉质量为视频播放器的最优格式选择 | |
Erfanian et al. | LwTE: Light-weight transcoding at the edge | |
Koziri et al. | Efficient cloud provisioning for video transcoding: Review, open challenges and future opportunities | |
Zabrovskiy et al. | ComplexCTTP: complexity class based transcoding time prediction for video sequences using artificial neural network | |
US20160234555A1 (en) | Relevance Table Aggregation in a Database System | |
Bulkan et al. | Predicting quality of experience for online video service provisioning | |
Li et al. | Delay-power-rate-distortion optimization of video representations for dynamic adaptive streaming | |
EP4171037A1 (en) | Dynamic parameter adjustment for adaptive bitrate algorithm | |
Carmona et al. | Video loss prediction model in wireless networks | |
CN113411628B (zh) | 直播视频的码率自适应方法、装置、电子设备及可读介质 | |
Rodrigues et al. | Audiovisual quality of live music streaming over mobile networks using MPEG-DASH | |
Kim et al. | Efficient video quality assessment for on-demand video transcoding using intensity variation analysis | |
Bouraqia et al. | Solving startup-delay-QoE dilemma for video streaming services in 5G networks | |
US20200184358A1 (en) | Video Content Valuation Prediction Using A Prediction Network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |