视频编码的速率-失真-复杂性优化的制作方法

文档序号:7993642阅读:134来源:国知局
视频编码的速率-失真-复杂性优化的制作方法
【专利摘要】一种用于为视频托管服务优化编码比特率、失真和复杂性的视频编码系统。该系统包括编码模块,编码模块被配置用于:用比特率控制策略、一对复杂性分配控制参数和包括目标分辨率、目标比特率和目标质量信息的一个或者多个目标输出视频格式规范对多个视频进行编码。编码模块从编码中获得编码比特率、失真和复杂性性能采样。编码模块被配置用于从编码比特率、失真和复杂性性能采样选择最优编码比特率、失真和复杂性性能采样。编码计算简档映射模块被配置用于从最优编码比特率、失真和复杂性性能采样获得多个计算级别。对于每个计算级别,选择一对优化的复杂性分配控制参数和编码通道的数目。
【专利说明】视频编码的速率-失真-复杂性优化
【技术领域】
[0001]本发明主要地涉及视频托管系统,并且更具体地涉及一种用于在编码时间和比特率约束之下用优化的视觉质量对视频进行转码的视频编码系统。
【背景技术】
[0002]视频托管服务、比如Y0UTUBE,允许用户发表视频。多数视频托管服务将原有源视频从它的原生编码格式(例如MOV)转码成一个或者多个输出格式(例如ADOBE FLASH或者Windows Media Video (WMV))。转码包括使用用于原生格式的视频编码解码器将源视频从原生格式解码成未编码的表示、然后利用用于输出格式的视频编码解码器对未编码的表示进行编码。转码可以用来减少存储要求并且也减少用于向客户端供应视频的带宽要求。
[0003]在为具有数以百万计的视频的视频托管服务设计视频编码系统时的一个挑战是用可接受的视觉质量并且在合理计算成本对视频进行转码和存储。一个具体问题是高效分配编码比特和计算以实现源视频的优化的速率失真(R-D)和计算时间。一般而言,给定目标分辨率和帧速率,视频的视觉质量由它的使用速率控制算法而计算的编码比特率确定。常规视频编码系统使用多种编码策略以获得源视频的优化的速率失真,这些编码策略包括单通道(one-pass)和多通道(mult1-pass)平均比特率编码(ABR)、恒定比特率编码(CBR)、恒定量化器编码(CQP)和恒定速率因子编码(CRF)。
[0004]常规编码策略无法向编码的视频提供恒定视觉质量而又满足与视频关联的比特率约束并且未联合地优化比特率、失真和复杂性。例如ABR编码策略使用伸缩因子以及长期和短期补偿以实现目标比特率并且满足网络带宽约束。但是ABR编码的视觉质量可能在视频场景改变时波动。CBR编码策略被设计用于由具有固定大小的存储缓冲器控制的具有恒定比特率的实时流式传输。CBR在以上提到的常规编码策略之中提供最高编码速度、但是最低R-D性能。CQP编码策略维持恒定量化器并且使用相同量化参数(QP)来压缩每个帧。CQP可能尤其在它对具有密集场景改变的视频使用大型量化器时引起编码的视频的时间感知波动。CRF编码策略以用恒定速率因子实现恒定视觉质量为目标。CRF用标称量化器对视频进行编码、但是在场景具有大量动作和运动时增加QP并且反之亦然。CRF编码的缺点在于输出视频文件大小由于视频内容中的可变场景而不可预测。因此难以选择适当恒定速率因子值以满足网络或者存储系统的所需比特率约束。

【发明内容】

[0005]一种方法、系统和计算机程序产品为视频托管服务用适当编码计算简档提供速率-失真-复杂性优化的转码。
[0006]在一个实施例中,与实际编码比特率和失真一起用比特率控制策略以及一个或者多个复杂性分配控制参数、目标比特率对视频集合进行编码。从编码中获得复杂性性能采样。从这一信息确定最优编码比特率、失真和复杂性性能采样,并且从所有编码比特率、失真和复杂性性能采样获得多个计算级别。对于每个计算机级别,选择优化的复杂性分配控制参数和编码通道的数目。
[0007]另一实施例包括计算机系统,该计算机系统包括用于为视频托管服务优化编码比特率、失真和复杂性的包括编码模块和编码计算简档映射模块。另一实施例包括一种存储用于用以上描述的方式压缩视频的可执行计算机程序指令的非瞬态计算机可读介质。
[0008]在说明书中描述的特征和优点并非总括,并且具体而言,许多附加特征和优点将鉴于附图、说明书和权利要求而为本领域普通技术人员所清楚。另外,应当注意在说明书中使用的言语已经主要出于可读性和指导目的而加以选择,并且可以尚未被选择用于界定或者限制公开的主题内容。
【专利附图】

【附图说明】
[0009]图1是图示具有视频编码系统的视频托管服务的系统概况的框图,该视频编码系统具有速率-失真-复杂性(RDC)优化。
[0010]图2是图示利用RDC优化在比特率约束之下的由视频描述长度引导的恒定质量视频编码策略的流程图。
[0011]图3是利用RDC优化在比特率约束之下的输入视频的由视频描述长度引导的恒定质量视频编码的流程图。
[0012]图4是在比特率约束之下的多通道恒定质量视频编码策略的编码步骤的流程图。
[0013]图5是调整用于示例视频的修正的CRF比特率模型的因子、目标比特率、实际比特率的示例数据。
[0014]图6是用于RDC优化的离线训练编码计算简档(ECP)映射模块的流程图。
[0015]图7是用于训练CRF参考比特率模型的相对于恒定速率因子(CRF)和空间分辨率的平均比特率的示例数据。
[0016]各图仅出于示例的目的而描绘本发明的各种实施例,并且本发明不限于这些所示实施例。本领域技术人员将从以下讨论容易认识可以运用这里所示结构和方法的备选实施例而未脱离这里描述的本发明的原理。
【具体实施方式】
[0017]1.系统概沭
[0018]图1是图不具有基于速率-失真_复杂性(RDC)的视频编码系统102的视频托管服务100的系统视图的框图。多个用户/查看者使用客户端110A-N以向视频托管服务100发送视频托管请求、比如向视频托管网站上传视频、并且从视频托管服务100接收请求的服务。视频托管服务100经由网络130与一个或者多个客户端110A-N通信。视频托管服务100从客户端110A-N接收视频托管服务请求、通过基于RDC的视频编码系统102对源视频进行转码并且向客户端110A-N返回转码的源视频。视频托管服务100可以驻留于云计算网络内。
[0019]转向图1中所示个别实体,每个客户端110由用户用来请求视频托管服务。例如用户使用客户端110以发送对于上传视频用于共享或者播放视频的请求。客户端110可以是任何类型的计算机设备、比如个人计算机(例如桌面型、笔记本、膝上型)计算机以及设备、比如移动电话、个人数字助理、具有IP功能的视频播放器。客户端110通常包括处理器、显示设备(或者向显示设备的输出)、客户端110将用户在执行任务时使用的数据存储到的本地存储装置、比如硬驱动器或者闪存设备和用于经由网络130耦合到视频托管服务100的网络接口。
[0020]客户端110也具有用于播放视频流的视频播放器120 (例如来自AdobeSystems, Inc.的Flasher?播放器等)。视频播放器120可以是单独应用或者是另一应用、比如网络浏览器的插件。可以在硬件或者硬件和软件的组合中实现播放器120。所有这些实现方式关于本发明在功能上等效。播放器120包括用于选择视频馈送、开始、停止和倒回视频馈送的用户界面控件(和对应应用编程接口)。播放器120也可以在它的用户界面中包括被配置用于指示哪个视频显示格式(例如标准清晰度TV或者高清晰度TV)的视频显示格式选择。其它类型的用户界面控件(例如按钮、键盘控件)也可以用来控制播放器120的回放和视频格式选择功能。
[0021]网络130实现在客户端110与视频托管服务100之间的通信。在一个实施例中,网络130是因特网并且使用现在已知或者随后开发的标准化的网间通信技术和协议,这些网间通信技术和协议使客户端110能够与视频托管服务100通信。
[0022]视频托管服务100包括基于RDC的视频编码系统102、视频服务器104、摄取服务器106和视频数据库108。摄取服务器106接收用户上传的视频并且在视频数据库108中存储视频。视频服务器104响应于用户视频托管服务请求从视频数据库108供应视频。视频数据库108存储用户上传的视频和基于RDC视频编码系统102转码的视频。在一个实施例中,视频数据库108存储用于基于RDC的视频编码系统102的大型视频全集(例如20,000个由用户上传的视频)以训练速率-失真-复杂性优化模型。
[0023]基于RDC的视频编码系统102包括RDC训练模块200和基于RDC的视频转码视频400。RDC训练模块200从存储于视频数据库108中的视频离线训练恒定速率因子(CRF)比特率模型和编码计算简档(ECP)映射模块。如以下进一步说明的那样,基于RDC的视频转码模块400利用RDC优化在比特率约束之下用视频描述长度(VDL)引导的恒定质量视频编码策略对给定的源视频进行转码。通过经由CRF比特率模型和ECP映射模块用帕雷托最优集合找到用于每个编码复杂性级别的RDC最优编码策略来实现RDC优化。作为有益结果,将源视频转码成具有在与源视频的目标输出视频格式关联的比特率约束之下具有优化的视觉质量的输出视频。
[0024]为了进一步举例说明视频托管服务100的系统操作,图2是图示在视频托管服务100内的基于RDC的视频编码系统102的流程图。用户向视频托管服务100发送对于上传源视频150的请求。基于RDC的视频编码系统102以原生格式接收源视频150并且通过基于RDC的视频转码模块400处理源视频150。原生格式的源视频150具有多个视频编码参数和例如包括真速率、空间分辨率和比特率的视频源信息。
[0025]源视频150也可以存储于视频数据库(例如图1的视频数据库180)中并且变成存储于视频数据库中的视频全集160的部分。视频全集160由RDC训练模块200处理。在一个实施例中,RDC训练模块200包括视频编码器210、CRF参考比特率模型220和ECP映射模块230。RDC训练模块200使用CRF编码对视频全集160中的视频进行编码并且对视频全集160离线训练CRF参考比特率模型220和ECP映射模块230。CRF参考比特率模型220对在CRF编码的恒定速率因子与比特率之间的关系进行建模。ECP映射模块230将计算复杂性级别从CRF编码映射到编码计算简档和编码通道(pass)的数目。
[0026]基于RDC的视频转码模块400对RDC训练模块200的CRF参考比特率模型220和ECP模块230引导的源视频150进行转码。在一个实施例中,基于RDC的视频转码模块400包括修正的CRF比特率模型410、视频描述长度模块420和基于RDC的转码器430。修正的CRF比特率模型410描述在恒定速率因子与实际比特率之间的关系以对源视频150进行编码。修正的CRF比特率模型410基于用于对输入视频进行编码的CRF参考比特率模型220来修正。视频描述长度模型420描述对源视频150进行编码的包括总体、时间和空间内容复杂性的计算复杂性。基于RDC的视频转码模块400基于在恒定速率因子和实际比特率与源视频150的视频描述长度代表的计算复杂性之间的关系对源视频150进行转码。
[0027]11.对视频比特率-质量关系讲行律樽:CRF参考比特率樽型
[0028]CRF编码策略以恒定速率因子对视频进行编码的恒定视觉质量为目标。一般而言,为视频选择的CRF代表用于在一个编码通道中对视频进行编码的期望的视觉质量级别。用于对视频进行编码的大CRF值造成大量化参数(“QP”)、高压缩比并且因此造成低视觉质量。小CRF造成小QP、低压缩比并且因此造成高视觉质量。为零的CRF值意味着无损压缩并且因此意味着最高视觉质量。CRF编码通过根据视频帧中的运动数量动态调整QP来不同地压缩视频的不同帧。
[0029]使用CRF编码的视频压缩性能可以由CRF参考比特率模型(例如图2的CRF参考比特率模型220)建模,其中视频压缩质量可以由适当CRF值代表。使用训练的CRF参考比特率模型,基于RDC的视频编码系统102选择用于源视频的适当CRF值,该CRF值使在对源视频进行编码时使用的实际比特率能够接近与源视频的目标输出视频格式关联的目标比特率。另外,训练的CRF参考比特率模型提供关于需要多少平均比特率以使用CRF编码策略对视频进行编码的指示。用于用从训练的CRF参考比特率获得的CRF对源视频进行编码的实际比特率可以用来在对给定的源视频进行编码时修正CRF比特率模型以在与源视频的目标输出视频格式关联的比特率约束内实现恒定视觉质量。
[0030]以图2的RDC训练模块200作为示例,RDC训练模块200对视频全集160中的视
频训练RCF参考比特率模型220。视频全集160存储具有多个空间分辨率、真速率和比特率的大量多场景视频序列。RDC训练模块200的视频编码器210使用CRF编码用预先选择的CRF值对从视频全集160选择的每个视频进行编码并且从编码中获得实际比特率。本领域普通技术人员已知的任何存在的视频编码方案可以由视频编码器210用来对视频进行编码。在一个实施例中,视频编码器210是将选择的视频编码成HD.264/MPEG-4AVC格式的X.264视频编码器。视频编码器210的其它实施例可以使用VP8编码器或者其它可用的视频编码器。
[0031]CRF参考比特率模型220使用来自对视频全集160中的视频进行编码的(crf,bitrate)对作为训练采样以对在CRF与CRF编码的比特率之间的关系进行建模。在CRF与视频全集的视频的平均比特率之间的关系依赖于视频的空间分辨率、时间分辨率和在默认X.264CRF编码中固定的编码算法。描述在平均比特率和空间分辨率、时间分辨率与CRF之间的关系如下:
[0032]B = f (crf, Μ, T), (I)
[0033]其中B是平均比特率,M是视频的帧的亮度分量的像素数目、即空间分辨率,并且T是每秒的帧数目、即时间分辨率。由于参数crf、M和T基本上相互独立,所以可以表示等式(I)中描述的平均比特率如下:
[0034]B = fi (crf) X f2 (M) X f3 (T).(2)
[0035]CRF参考比特率模型220将拟合采样表示为通过最小平方法找到的四元组(crf,Μ, Τ, B)。
[0036]对于对单场景和多场景视频进行编码的视频编码的平均性能,CRF参考比特率模型220按照视频中的场景数目对来自对视频进行编码的所得比特率进行加权并且按照在选择的数目的训练视频中的场景总数归一化比特率如下:
【权利要求】
1.一种用于为视频托管服务优化编码比特率、失真和复杂性的计算机系统,所述系统包括: 编码模块,所述编码模块被配置用于: 用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码; 从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样; 从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样;以及 编码计算简档映射模块,所述编码计算简档映射模块耦合到所述编码模块,被配置用于: 从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别;以及对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性采样对应的一对优化的复杂性分配控制参数和编码通道的数目。
2.根据权利要求1所述的系统,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
3.根据权利要求1所述的系统,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括: 对所述视频进行编码的编码比特率; 对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及 由每帧编码时间代表的编码复杂性。
4.根据权利要求1所述的系统,其中所述编码模块还被配置用于: 在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;以及 找到帕雷托最优编码比特率、失真和复杂性性能采样。
5.根据权利要求1所述的系统,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
6.根据权利要求5所述的系统,其中用于比特率控制策略的所述最快计算级别的编码通道的数目为I。
7.根据权利要求1所述的系统,其中所述编码计算简档映射模块还被配置用于验证用于所述比特率控制策略的选择的所述复杂性分配控制参数和编码通道的数目的有效性。
8.一种用于为视频托管服务优化编码比特率、失真和复杂性的方法,所述方法包括: 用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码; 从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样; 从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样;并且从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别;以及 对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性性能采样对应的一对优化的复杂性分配控制参数和编码通道的数目。
9.根据权利要求8所述的方法,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
10.根据权利要求8所述的方法,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括: 对所述视频进行编码的编码比特率; 对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及 由每帧编码时间代表的编码复杂性。
11.根据权利要求8所述的方法,其中选择最优编码比特率、失真和复杂性性能采样还包括: 在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;以及 找到帕雷托最优编码比特率、失真和复杂性性能采样。
12.根据权利要求8所述的方法,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
13.根据权利要求12所述的方法,其中用于比特率控制策略的所述最快计算级别的编码通道的数目为I。
14.根据权利要求8所述的方法,其中选择所述一对优化的复杂性分配控制参数和编码通道的数目还包括验证用于所述比特率控制策略的选择的所述复杂性分配控制参数和编码通道的数目的有效性。
15.一种非瞬态计算机可读存储介质,具有在其上记录的用于为视频托管服务优化编码比特率、失真和复杂性的可执行计算机程序指令,所述计算机程序指令包括用于以下操作的指令: 用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码; 从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样; 从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样;并且 从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别;以及 对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性性能采样对应的一对优化的复杂性分配控制参数和编码通道的数目。
16.根据权利要求15所述的计算机可读存储介质,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
17.根据权利要求15所述的计算机可读存储介质,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括: 对所述视频进行编码的编码比特率; 对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及 由每帧编码时间代表的编码复杂性。
18.根据权利要求15所述的计算机可读存储介质,其中所述用于选择最优编码比特率、失真和复杂性性能采样的计算机程序指令还包括用于以下操作的指令: 在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;以及 找到帕雷托最优编码比特率、失真和复杂性性能采样。
19.根据权利要求15所述的计算机可读存储介质,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
20.根据权利要求15所述的计算机可读存储介质,其中所述用于选择所述一对优化的复杂性分配控制参数和编码通道的数目的计算机程序指令还包括用于验证用于所述比特率控制策略的所述选择的复杂性分配控制参数和编码通道的数目的有效性的指令。
【文档编号】H04N21/234GK103975601SQ201280060744
【公开日】2014年8月6日 申请日期:2012年10月8日 优先权日:2011年10月17日
【发明者】杨蕾, D·穆克赫吉 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1