由视频描述长度引导的视频编码的速率-失真-复杂性优化的制作方法

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

【发明内容】

[0005]一种方法、系统和计算机程序产品为视频托管服务提供由视频描述长度引导的具有恒定质量和比特率约束的优化的视频代码转换。
[0006]在一个实施例中,该方法为输入视频获得总复杂性、时间复杂性和空间复杂性的测量并且比较总复杂性、时间和空间复杂性测量与参考复杂性、时间和空间复杂性测量。输入视频的复杂性(总、时间和空间)的测量由输入视频的某个视频描述长度(VDL)代表。VDL是以某个可视质量对视频编码而需要的比特率。总VDL指示输入视频的总内容复杂性。输入视频的时间VDL反映视频的时间复杂性。输入视频的空间VDL反映视频的空间复杂性。基于比较,该方法调整输入视频的总编码复杂性、时间和空间编码复杂性并且用输入视频的调整的总编码复杂性、时间和空间编码复杂性对输入视频编码。
[0007]可以通过使用训练的CRF参考比特率模型和修正的CRF比特率模型来进一步增强用输入视频的调整的总编码复杂性、时间和空间编码复杂性对输入视频编码。对大型视频全集训练CRF参考比特率模型以对在CRF编码的CRF值与平均比特率之间的关系建模。修正的CRF比特率模型被适配为用优化对输入视频编码。
[0008]另一实施例包括一种用于优化输入视频的编码比特率、失真和复杂性的包括视频描述长度模块和代码转换模块的计算机系统。又一实施例包括一种存储用于按照以上描述的方式压缩图像的可执行计算机程序指令的非瞬态计算机可读介质。
[0009]在说明书中描述的特征和优点并非囊括性的,并且特别地,许多附加特征和优点将鉴于附图、说明书和权利要求而为本领域普通技术人员所清楚。另外,应当注意,在说明书中使用的言语已经主要出于可读性和指导目的而被选择并且可能尚未被选择用于界定或者限制公开的主题内容。
【专利附图】

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