CN103975601B - 视频编码的速率‑失真‑复杂性优化 - Google Patents

视频编码的速率‑失真‑复杂性优化 Download PDF

Info

Publication number
CN103975601B
CN103975601B CN201280060744.1A CN201280060744A CN103975601B CN 103975601 B CN103975601 B CN 103975601B CN 201280060744 A CN201280060744 A CN 201280060744A CN 103975601 B CN103975601 B CN 103975601B
Authority
CN
China
Prior art keywords
video
complexity
coding
bit rate
distortion
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
Application number
CN201280060744.1A
Other languages
English (en)
Other versions
CN103975601A (zh
Inventor
杨蕾
D·穆克赫吉
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN103975601A publication Critical patent/CN103975601A/zh
Application granted granted Critical
Publication of CN103975601B publication Critical patent/CN103975601B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种用于为视频托管服务优化编码比特率、失真和复杂性的视频编码系统。该系统包括编码模块,编码模块被配置用于:用比特率控制策略、一对复杂性分配控制参数和包括目标分辨率、目标比特率和目标质量信息的一个或者多个目标输出视频格式规范对多个视频进行编码。编码模块从编码中获得编码比特率、失真和复杂性性能采样。编码模块被配置用于从编码比特率、失真和复杂性性能采样选择最优编码比特率、失真和复杂性性能采样。编码计算简档映射模块被配置用于从最优编码比特率、失真和复杂性性能采样获得多个计算级别。对于每个计算级别,选择一对优化的复杂性分配控制参数和编码通道的数目。

Description

视频编码的速率-失真-复杂性优化
技术领域
本发明主要地涉及视频托管系统,并且更具体地涉及一种用于在编码时间和比特率约束之下用优化的视觉质量对视频进行转码的视频编码系统。
背景技术
视频托管服务、比如YOUTUBE,允许用户发表视频。多数视频托管服务将原有源视频从它的原生编码格式(例如MOV)转码成一个或者多个输出格式(例如ADOBE FLASH或者Windows Media Video(WMV))。转码包括使用用于原生格式的视频编码解码器将源视频从原生格式解码成未编码的表示、然后利用用于输出格式的视频编码解码器对未编码的表示进行编码。转码可以用来减少存储要求并且也减少用于向客户端供应视频的带宽要求。
在为具有数以百万计的视频的视频托管服务设计视频编码系统时的一个挑战是用可接受的视觉质量并且在合理计算成本对视频进行转码和存储。一个具体问题是高效分配编码比特和计算以实现源视频的优化的速率失真(R-D)和计算时间。一般而言,给定目标分辨率和帧速率,视频的视觉质量由它的使用速率控制算法而计算的编码比特率确定。常规视频编码系统使用多种编码策略以获得源视频的优化的速率失真,这些编码策略包括单通道(one-pass)和多通道(multi-pass)平均比特率编码(ABR)、恒定比特率编码(CBR)、恒定量化器编码(CQP)和恒定速率因子编码(CRF)。
常规编码策略无法向编码的视频提供恒定视觉质量而又满足与视频关联的比特率约束并且未联合地优化比特率、失真和复杂性。例如ABR编码策略使用伸缩因子以及长期和短期补偿以实现目标比特率并且满足网络带宽约束。但是ABR编码的视觉质量可能在视频场景改变时波动。CBR编码策略被设计用于由具有固定大小的存储缓冲器控制的具有恒定比特率的实时流式传输。CBR在以上提到的常规编码策略之中提供最高编码速度、但是最低R-D性能。CQP编码策略维持恒定量化器并且使用相同量化参数(QP)来压缩每个帧。CQP可能尤其在它对具有密集场景改变的视频使用大型量化器时引起编码的视频的时间感知波动。CRF编码策略以用恒定速率因子实现恒定视觉质量为目标。CRF用标称量化器对视频进行编码、但是在场景具有大量动作和运动时增加QP并且反之亦然。CRF编码的缺点在于输出视频文件大小由于视频内容中的可变场景而不可预测。因此难以选择适当恒定速率因子值以满足网络或者存储系统的所需比特率约束。
发明内容
一种方法、系统和计算机程序产品为视频托管服务用适当编码计算简档提供速率-失真-复杂性优化的转码。
在一个实施例中,与实际编码比特率和失真一起用比特率控制策略以及一个或者多个复杂性分配控制参数、目标比特率对视频集合进行编码。从编码中获得复杂性性能采样。从这一信息确定最优编码比特率、失真和复杂性性能采样,并且从所有编码比特率、失真和复杂性性能采样获得多个计算级别。对于每个计算机级别,选择优化的复杂性分配控制参数和编码通道的数目。
另一实施例包括计算机系统,该计算机系统包括用于为视频托管服务优化编码比特率、失真和复杂性的包括编码模块和编码计算简档映射模块。另一实施例包括一种存储用于用以上描述的方式压缩视频的可执行计算机程序指令的非瞬态计算机可读介质。
在说明书中描述的特征和优点并非总括,并且具体而言,许多附加特征和优点将鉴于附图、说明书和权利要求而为本领域普通技术人员所清楚。另外,应当注意在说明书中使用的言语已经主要出于可读性和指导目的而加以选择,并且可以尚未被选择用于界定或者限制公开的主题内容。
附图说明
图1是图示具有视频编码系统的视频托管服务的系统概况的框图,该视频编码系统具有速率-失真-复杂性(RDC)优化。
图2是图示利用RDC优化在比特率约束之下的由视频描述长度引导的恒定质量视频编码策略的流程图。
图3是利用RDC优化在比特率约束之下的输入视频的由视频描述长度引导的恒定质量视频编码的流程图。
图4是在比特率约束之下的多通道恒定质量视频编码策略的编码步骤的流程图。
图5是调整用于示例视频的修正的CRF比特率模型的因子、目标比特率、实际比特率的示例数据。
图6是用于RDC优化的离线训练编码计算简档(ECP)映射模块的流程图。
图7是用于训练CRF参考比特率模型的相对于恒定速率因子(CRF)和空间分辨率的平均比特率的示例数据。
各图仅出于示例的目的而描绘本发明的各种实施例,并且本发明不限于这些所示实施例。本领域技术人员将从以下讨论容易认识可以运用这里所示结构和方法的备选实施例而未脱离这里描述的本发明的原理。
具体实施方式
I.系统概述
图1是图示具有基于速率-失真-复杂性(RDC)的视频编码系统102的视频托管服务100的系统视图的框图。多个用户/查看者使用客户端110A-N以向视频托管服务100发送视频托管请求、比如向视频托管网站上传视频、并且从视频托管服务100接收请求的服务。视频托管服务100经由网络130与一个或者多个客户端110A-N通信。视频托管服务100从客户端110A-N接收视频托管服务请求、通过基于RDC的视频编码系统102对源视频进行转码并且向客户端110A-N返回转码的源视频。视频托管服务100可以驻留于云计算网络内。
转向图1中所示个别实体,每个客户端110由用户用来请求视频托管服务。例如用户使用客户端110以发送对于上传视频用于共享或者播放视频的请求。客户端110可以是任何类型的计算机设备、比如个人计算机(例如桌面型、笔记本、膝上型)以及设备、比如移动电话、个人数字助理、具有IP功能的视频播放器。客户端110通常包括处理器、显示设备(或者向显示设备的输出)、客户端110将用户在执行任务时使用的数据存储到的本地存储装置、比如硬驱动器或者闪存设备和用于经由网络130耦合到视频托管服务100的网络接口。
客户端110也具有用于播放视频流的视频播放器120(例如来自Adobe Systems,Inc.的FlasherTM播放器等)。视频播放器120可以是单独应用或者是另一应用、比如网络浏览器的插件。可以在硬件或者硬件和软件的组合中实现播放器120。所有这些实现方式关于本发明在功能上等效。播放器120包括用于选择视频馈送、开始、停止和倒回视频馈送的用户界面控件(和对应应用编程接口)。播放器120也可以在它的用户界面中包括被配置用于指示哪个视频显示格式(例如标准清晰度TV或者高清晰度TV)的视频显示格式选择。其它类型的用户界面控件(例如按钮、键盘控件)也可以用来控制播放器120的回放和视频格式选择功能。
网络130实现在客户端110与视频托管服务100之间的通信。在一个实施例中,网络130是因特网并且使用现在已知或者随后开发的标准化的网间通信技术和协议,这些网间通信技术和协议使客户端110能够与视频托管服务100通信。
视频托管服务100包括基于RDC的视频编码系统102、视频服务器104、摄取服务器106和视频数据库108。摄取服务器106接收用户上传的视频并且在视频数据库108中存储视频。视频服务器104响应于用户视频托管服务请求从视频数据库108供应视频。视频数据库108存储用户上传的视频和基于RDC视频编码系统102转码的视频。在一个实施例中,视频数据库108存储用于基于RDC的视频编码系统102的大型视频全集(例如20,000个由用户上传的视频)以训练速率-失真-复杂性优化模型。
基于RDC的视频编码系统102包括RDC训练模块200和基于RDC的视频转码视频400。RDC训练模块200从存储于视频数据库108中的视频离线训练恒定速率因子(CRF)比特率模型和编码计算简档(ECP)映射模块。如以下进一步说明的那样,基于RDC的视频转码模块400利用RDC优化在比特率约束之下用视频描述长度(VDL)引导的恒定质量视频编码策略对给定的源视频进行转码。通过经由CRF比特率模型和ECP映射模块用帕雷托最优集合找到用于每个编码复杂性级别的RDC最优编码策略来实现RDC优化。作为有益结果,将源视频转码成具有在与源视频的目标输出视频格式关联的比特率约束之下具有优化的视觉质量的输出视频。
为了进一步举例说明视频托管服务100的系统操作,图2是图示在视频托管服务100内的基于RDC的视频编码系统102的流程图。用户向视频托管服务100发送对于上传源视频150的请求。基于RDC的视频编码系统102以原生格式接收源视频150并且通过基于RDC的视频转码模块400处理源视频150。原生格式的源视频150具有多个视频编码参数和例如包括帧速率、空间分辨率和比特率的视频源信息。
源视频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)的数目。
基于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进行转码。
II.对视频比特率-质量关系进行建模:CRF参考比特率模型
CRF编码策略以恒定速率因子对视频进行编码的恒定视觉质量为目标。一般而言,为视频选择的CRF代表用于在一个编码通道中对视频进行编码的期望的视觉质量级别。用于对视频进行编码的大CRF值造成大量化参数(“QP”)、高压缩比并且因此造成低视觉质量。小CRF造成小QP、低压缩比并且因此造成高视觉质量。为零的CRF值意味着无损压缩并且因此意味着最高视觉质量。CRF编码通过根据视频帧中的运动数量动态调整QP来不同地压缩视频的不同帧。
使用CRF编码的视频压缩性能可以由CRF参考比特率模型(例如图2的CRF参考比特率模型220)建模,其中视频压缩质量可以由适当CRF值代表。使用训练的CRF参考比特率模型,基于RDC的视频编码系统102选择用于源视频的适当CRF值,该CRF值使在对源视频进行编码时使用的实际比特率能够接近与源视频的目标输出视频格式关联的目标比特率。另外,训练的CRF参考比特率模型提供关于需要多少平均比特率以使用CRF编码策略对视频进行编码的指示。用于用从训练的CRF参考比特率获得的CRF对源视频进行编码的实际比特率可以用来在对给定的源视频进行编码时修正CRF比特率模型以在与源视频的目标输出视频格式关联的比特率约束内实现恒定视觉质量。
以图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编码器或者其它可用的视频编码器。
CRF参考比特率模型220使用来自对视频全集160中的视频进行编码的(crf,bitrate)对作为训练采样以对在CRF与CRF编码的比特率之间的关系进行建模。在CRF与视频全集的视频的平均比特率之间的关系依赖于视频的空间分辨率、时间分辨率和在默认x.264CRF编码中固定的编码算法。描述在平均比特率和空间分辨率、时间分辨率与CRF之间的关系如下:
B=f(crf,M,T), (1)
其中B是平均比特率,M是视频的帧的亮度分量的像素数目、即空间分辨率,并且T是每秒的帧数目、即时间分辨率。由于参数crf、M和T基本上相互独立,所以可以表示等式(1)中描述的平均比特率如下:
B=f1(crf)×f2(M)×f3(T). (2)
CRF参考比特率模型220将拟合采样表示为通过最小平方法找到的四元组(crf,M,T,B)。
对于对单场景和多场景视频进行编码的视频编码的平均性能,CRF参考比特率模型220按照视频中的场景数目对来自对视频进行编码的所得比特率进行加权并且按照在选择的数目的训练视频中的场景总数归一化比特率如下:
其中B是平均比特率,Bi是对第i个视频进行编码的实际比特率,并且Si是第i个视频中的场景数目。模型的残值误差是ri=Bi-f(crfi,Mi,Ti)。CRF参考比特率模型220的拟合度由平方和误差(SSE)和均方根误差(RMSE)评估如下:
其中ri是残值误差,并且n是拟合采样数目。
一般而言,按照以帧每秒为(fps)单位的帧速率评估时间分辨率。为了研究时间分辨率对CRF参考比特率模型220的影响,沿着时间轴对选择的用于训练CRF参考比特率模型220的视频进行下采样,并且用视频的原有帧速率的一半对下采样的视频进行编码。以这一方式,原有视频及其下采样的版本具有相同显示时间。训练CRF参考比特率模型220以关于每个空间分辨率获得对视频的平均比特率、例如fps=12.5和fps=25、fps=15和fps=30。
训练结果表明比特率随着编码帧速率(fps)几乎线性增加、换而言之:
基于等式(6)中所示线性关系,描述在平均比特率与帧速率之间的关系如下:
y=a×T, (7)
其中参数a包括来自空间分辨率和CRF的影响。
图7图示具有固定帧速率(即fps=25)的CRF参考比特率模型220的示例性训练结果。图7中所示训练结果还表明平均比特率在固定CRF值和平均比特率时是空间分辨率的近似幂函数并且在固定空间分辨率时是CRF的近似指数函数。在帧速率不同于fps=25时,可以因子fps/25缩放模型。训练CRF参考比特率模型220的一个实施例是使用帧速率fps=25。
为了探索在等式(4)中描述在平均比特率与空间分辨率M之间的关系,用通过对原有视频的低通滤波和下采样而获得的分级空间分辨率对仿真/推导的视频训练CRF参考比特率模型220。例如视频编码器210将低通滤波器应用于具有空间分辨率704x576的原有视频用于防混叠。视频编码器210对这些视频进行下采样以获得具有大小352x288和176x144的视频的更低分辨率版本。视频编码器210用相同CRF值对原有704x576视频及其下采样的更低分辨率版本进行编码以确定相对于每个CRF值在比特率与空间分辨率之间的关系。训练结果表明与不同CRF值对应的比特率-空间分辨率折线接近平行。比特率增加速率在减少CRF值时与空间分辨率的增加一起逐渐减少。用具有多种空间分辨率的视频进一步训练CRF参考比特率模型220,并且训练结果表明与用于仿真的视频的在比特率、空间分辨率和CRF值之间的关系相似的关系。
基于训练结果,CRF参考比特率模型220对在平均比特率与空间分辨率之间的关系建模如下:
y=b×xc, (8)
其中对于每个CRF值为0<c<1。函数y=b×xc通过坐标框的原点,这意味着零空间分辨率造成零比特率。0<c<1指示在比特率与空间分辨率之间的单调增加关系,并且平均比特率具有比空间分辨率更小的增加速率,因为具有更高空间分辨率的视频在运动估计中具有更有效的帧内和帧间预测。在一个实施例中,参数c在对训练采样适合时平均为0.65。可以从对使用在等式(8)中描述的幂函数对在平均比特率与空间分辨率之间的映射进行建模中获得用于每个CRF值的参数b。
CRF值可以取浮点值。在一个实施例中,CRF值在范围[0,51]中用于x.264CRF编码的。CRF=0用于无损编码,并且CRF=51用于具有最小文件大小和最小峰值与噪声之比(PSNR)的有损压缩。使用浮点RF值以训练CRF参考比特率模型220,仅改变CRF值,并且默认固定其它编码参数(例如帧速率)用于将视频编码成某些目标空间和时间分辨率。采样CRF值12、14、…和34以将视频编码成28-55dB的PSNR而具有视觉上可接受和令人满意的压缩质量。
可以在以下等式(9)中描述在某个空间和时间分辨率之下在平均速率与CRF之间的关系:
y=m×enx. (9)
为了对等式(9)进行建模,将参数m设置成1380,并且将参数n设置成-0.20。拟合误差由SSE=540.3和RMSE=7.351评估。在等式(4)中描述的平均比特率B和CRF关系(crf,M,T,B)可以由以下等式(10)表示:
给定经常用默认帧速率对视频进行编码,忽略参数T获得修改的等式(10)如下:
B=f1(crf)×f2(M)=m×en·crf×Mc. (11)
因而可以使用以下等式(12)从比特率B获得CRF:
相对拟合误差每空间分辨率由以下等式评估:
其中:
M是空间分辨率,是对具有空间分辨率M的视频的CRF平均的实际比特率,ΩM是具有空间分辨率M的视频集合,并且|ΩM|是ΩM的基数。Er代表相对误差,代表平均实际比特率,并且代表从等式(10)估计的比特率。
III.使用修正的CRF比特率模型的视频编码
为了用从训练的CRF参考比特率模型220获得的CRF对输入视频进行编码,来自对输入视频进行编码的实际比特率可以从与输入视频关联的目标比特率偏离。需要在CRF与实际比特率之间的修正的CRF比特率模型以朝着用于对输入视频进行编码的目标比特率调整实际比特率。在一个实施例中,基于RDC的视频转码模块400使用修正的CRF比特率模型410以适配用于对输入视频进行编码的CRF值。修正的CRF比特率模型410可以使用以下等式(15)来修正:
B=k×f1(crf)×f2(M)=k×m×en·crf×Mc, (15)
其中k是与将编码的输入视频关联的修正因子。
为了进一步举例说明修正,修正的CRF比特率模型410先通过用与输入视频关联的目标比特率替换参数B来从在等式(12)中描述的在CRF与平均比特率之间的映射中获得CRF。对输入视频进行编码的所得实际比特率及其对应CRF、即(实际比特率,CRF)用来确定等式(15)的修正因子k如下:
图5是用于示例视频序列的调整因子k、目标比特率Bt、示例比特率Ba的示例数据,其中参数M代表视频序列的空间分辨率。
使用训练的CRF参考比特率模型220和修正的CRF比特率模型410,基于RDC的视频转码模块400可以在与输入视频关联的比特率约束内用恒定视觉质量对输入视频进行编码。以下算法代表在与输入视频关联的比特率约束内用恒定视觉质量对输入视频进行编码的一个实施例。
//*输入:未压缩的视频及其目标比特率Bt
//*输出:在它的目标比特率内具有恒定视觉质量的压缩的视频
1:通过用Bt替换B来从等式(12)中的CRF参考比特率模型220找到crft
2:用crft对视频进行编码并且获得实际比特率Ba
3:通过(crft,Ba)对在等式(15)中获得修正的CRF比特率模型410;
4:通过用Bt替换B来从等式(15)的修正的CRF比特率模型找到crfa
5:用crfa对视频进行编码并且获得修正的实际比特率B′a
6:如果B′a未接近Bt,则重复步骤3直至收敛。
这里描述的算法是用从训练和修正的CRF比特率模型评估的CRF值的一个类型的多通道CRF编码。步骤6中的收敛判据是在实际比特率B′a与目标比特率Bt之间的差值落在目标比特率的±10%中。
图4是将输入视频编码成在目标比特率内具有恒定视觉质量的输出视频的的流程图。初始地,基于RDC的视频转码模块400接收401输入视频,并且输入视频具有用于对输入视频进行编码的作为比特率约束的目标比特率。在一个实施例中,输入视频的目标比特率与输入视频的目标输出视频格式关联。在另一实施例中,基于以下描述的视频描述长度(VDL)分析来修正输入视频的目标比特率。视频转码模块400相对于输入视频的目标比特率找到403恒定速率因子(例如使用等式(12)而用目标比特率替换平均比特率参数B)。转码模块400用获得的CRF对输入视频进行编码405并且获得407用于对输入视频进行编码的实际比特率。视频转码模块用实际比特率计算409修正因子(例如使用等式(15))并且用修正因子找到411修改的恒定速率因子。视频转码模块400用修改的恒定速率因子对输入视频进行编码413并且确定415来自编码413的实际比特率是否在目标比特率的范围内。响应于实际比特率在目标比特率的范围内,视频转码模块400输出417编码的视频。响应于实际比例特未在目标比特率的范围内,视频转码模块400重复操作步骤409至417。
朝着与输入视频关联的目标比特率对输入视频进行编码,测试结果表明编码通道的数目平均为1.8。如果输入视频具有与平均值接近的内容复杂性,则利用由CRF参考比特率模型220找到的CRF值的单通道CRF编码将朝着目标比特率对视频进行编码。如果输入视频具有从平均值偏离的内容复杂性,则需要利用由自适应地修正的CRF比特率模型410找到的CRF值的多通道CRF编码。
IV.编码计算简档(ECP)
在视频序列捕获的场景中的可变内容造成在视频序列中包含的各种数量的信息。给定视频托管服务的大型视频全集,将相同编码比特率应用于不同视频内容造成不同视频质量。另外,视频托管服务100为向视频供应服务100上传的每个视频供应多种视频输出格式。不同输出格式在目标播放平台(例如移动电话和高清晰度电视)、递送约束(例如实时视频流式传输和点播视频)和用户预期方面具有不同视频处理目标。
一种对具有多种视频格式和内容复杂性的视频进行转码的解决方案是将不同比特率控制策略应用于不同视频。在一个实施例中,基于RDC的视频编码系统102为给定的视频输出格式选择三个不同比特率控制策略和编码参数中的至少一个比特率控制策略和编码参数:
控制_比特率,
控制_质量,
控制_质量_有界_比特率。
控制_比特率策略是实现与视频的目标比特率尽可能接近的对视频进行编码的实际比特率。这一比特率控制策略适合用于移动视频流式传输和使用拨号因特网连接的视频流式传输。
控制_质量策略是实现恒定目标视觉质量而无论为了实现它而需要的比特率如何。用于用可变复杂性对视频进行编码的控制_质量策略面临可变实际比特率、例如用于对复杂视频进行编码的高比特率和用于对简单视频进行编码的低比特率。这一比特率控制策略适合用于在分布式视频处理环境中的视频处理和流式传输以及用于高视觉编码质量转码(例如无损编码质量)。
控制_质量_有界_比特率策略是尽可能实现恒定目标视觉质量而又维持对比特率的上界。因此,允许视觉质量仅对于复杂视频降至目标质量级别以下,其中这一质量在分配的最大比特率约束内不可实现。对于更简单视频,只要实现希望的目标质量级别,比特率就可以低于这一最大比特率。
为了进一步提高视频转码性能,基于RDC的视频编码系统102对于使用给定的比特率控制策略的转码器支持等级计算级别。具体而言,对于比特率控制策略(例如控制_质量_有界_比特率策略),可以例如有基于RDC的视频编码系统102支持的五个不同编码计算级别:
最快:提供最快转码时间、但是对于相同比特率未必产生最紧凑输出比特流或者最高视觉质量。对于多数比特率控制策略和输出格式,进行单通道编码。
快速:提供合理快速编码。对于多数比特率控制策略和输出格式,进行单通道编码。
中等:提供适合用于多数比特率控制策略和输出格式的编码时间比对编码效率的折衷。
慢速:使用更高计算成本的编码工具以便在更高编码效率、例如在相同比特率的更高视觉质量产生转码的视频。例如视频编码解码器x.264设置压缩效率控制参数“预设=更慢”或者“预设=placebo”以用高视觉质量对视频进行编码。
最慢:使用计算要求高和复杂的编码工具以便产生最紧凑输出比特流和最高感知质量视频、比如电影工作室质量视频。在PSNR方面测量时,在这一编码计算级别的视觉质量可以等于或者低于慢速模式实现的视觉质量。
有了可用于转码器的多个编码计算级别,基于RDC的视频编码系统102实施各种转码策略以根据因素、比如在网络(例如云计算网络)中的服务器上的当前系统负荷、对于实况流式传输的需求或者可允许的转码延时适配编码计算级别。例如可以在低计算级别进行多个初始流式传输转码以减少用于实况视频流式传输的延时。在另一方面,可以用具有可接受的延时的更高计算级别进行视频流式传输重新运行,其中重新运行是对视频的增加的受欢迎度做出响应。
为了优化各种比特率控制策略并且支持用于每个比特率控制策略的等级编码计算级别,基于RDC的视频编码系统102遵循系统过程,该系统过程不仅评估多种实施不同比特率控制策略的方式而且考虑用于每个比特率控制策略的最优计算分配。在一个实施例中,基于RDC的视频编码系统102训练编码计算简档(ECP)映射模块230以用细粒度方式对计算-效率折衷进行建模。
ECP是可以容易地集成在x.264编码中的计算复杂性分配控制参数。ECP参数取在0与1之间的浮点值并且可以用来微调在比特率、失真和计算复杂性之间的折衷。现有比特率控制策略聚焦于在视频编码的速率与失真之间的折衷。然而在编码计算视为用于评估编码效率的判据时,需要与编码计算一起调整在速率与失真之间的折衷。
例如在双通道编码方案中,通常比第二个编码通道更快进行第一个编码通道,因为第一个编码通道用来获得视频的一些统计信息。整个双通道编码一般消耗比单通道编码方案更高的计算。然而并不清楚具有高计算复杂性的单通道编码是否比具有更少计算复杂性的双通道编码更高效率或者更低效率。基于RDC的视频编码系统102的ECP映射模块230被设计用于找到用于基于多通道的视频转码(例如基于x.264的多通道转码)的最优计算分配以及用于给定的编码计算级别的编码通道的数目。
现在转向图2,对存储于视频全集160中的视频训练RDC训练模块200的ECP映射模块230。对于每个编码策略,针对用于多通道转码的不同可能实现方式和不同可能计算级别训练ECP映射模块230以获得原始速率-失真-复杂性数据。例如使用对原始速率、失真、复杂性数据的多判据帕雷托最优集合分析来进一步优化ECP映射模块230以推导在多个相等间距的编码计算级别用于每个比特率控制策略的最佳转码实施和计算分配(例如在一个实施例中,可以有五个编码计算级别:最快、快速、中等、慢速和最慢计算级别)。
以多通道x.264转码作为示例,ECP映射模块230通过{ecp0,ecp1}代表用于双通道编码的计算分配。ecp0代表单通道比特率编码或者双通道比特率编码的第一通道的计算复杂性。ecp1代表双通道比特率编码的第二通道的计算复杂性。例如{0.07,NULL}代表单通道比特率编码实施的计算复杂性,并且{0.07,0.71}是双通道比特率编码实现方式的计算复杂性。
对于每个比特率控制策略,对来自视频全集160的视频集合离线训练ECP映射模块230。每个训练采样与速率-失真-复杂性性能、{R,D,C}三元组关联,其中从训练中获得实际编码比特率(R),失真(D)由视频帧的亮度分量的均方误差(MSE)测量,并且复杂性(C)由每帧编码时间代表。以下是用于利用多通道x.264转码方案对于控制_比特率控制策略训练EPC映射模块230的算法:
1:用所有可能{ecp0,ecp1}对和不同目标比特率使用控制_比特率策略对训练视频进行编码;
2:从训练中获得{R,D,C}性能采样;
3:对于训练视频对于每个{ecp0,ecp1}对针对速率R对失真D和计算时间C平滑地插值;
4:找到在{R,D,C}采样之中的帕雷托最优集合并且对帕雷托集合进行插值以获得分段连续{R,D,C}表面;
5:将计算时间C划分成5个均匀间隔的连续级别;
6:选择速率值并且在选择的比特率值对于五个计算级别中的每个计算级别在帕雷托最优表面上选择{ecp0,ecp1};
7:通过回归测试来验证优化的策略对视频的有效性。
在下表1中举例说明利用控制_比特率控制策略的用于五个计算级别的优化的计算分配:
表1:利用x.264的用于控制_比特率控制策略的ECP参数
计算级别 ecp0 ecp1
最快 0.14 空值
快速 0.35 空值
中等 0.07 0.50
慢速 0.07 0.71
最慢 0.42 0.71
如表1中所示,对于每个计算级别,ECP映射模块230提供一对ECP值{ecp0,ecp1},该对ECP值指示编码通道的数目和所需计算复杂性分配控制参数值。例如对于使用控制_比特率控制策略来对具有中等计算复杂性的视频进行编码,两个编码通道可以用来实现优化的速率-失真-复杂性折衷,并且对于第一编码通道,ECP值为0.05,而对于第二编码通道为0.50。为了对用于实时流式传输的视频进行编码,编码时间需要快速而无不可接受的延迟。基于RDC的视频编码系统102可以选择具有ECP值0.35的单通道编码以平衡速率-失真-复杂性折衷。
在另一实施例中,使用另一视频编码方案VP8(也称为WebM)来训练ECP映射模块230。取代使用编码计算简档参数(即ecp0、ecp1),VP8使用编码速度控制(ES)参数以管理在速率、失真和计算复杂性之间的折衷。表2示出使用VP8编码方案、利用控制_比特率控制策略的用于五个计算级别的计算分配的示例:
表2:利用VP8的用于控制_比特率控制策略的ECP参数
计算级别 ES0 ES1
最快 219 空值
快速 218 空值
中等 220 217
慢速 220 218
最慢 218 216
对于其它比特率控制策略、比如控制_质量策略和控制_质量_有界_比特率策略对来自视频全集160的视频相似地训练ECP映射模块230。表3示出利用x.264编码方案、利用控制_质量控制策略的用于五个计算级别的优化的计算分配和用于VP8编码方案的对应计算分配。为了实现恒定目标质量,ECP映射模块230向基于RDC的视频转码仅建议单通道编码。表4示出利用x.264编码方案、利用控制_质量_有界_比特率控制策略的用于五个计算级别的优化的计算分配和用于VP8编码方案的对应计算分配。
表3:用于控制_质量控制策略的ECP参数和ES参数
表4:用于控制_质量_有界_比特率控制策略的ECP参数和ES参数
图6是离线训练EPC映射模块230用于速率-失真复杂性优化的流程图。初始地,RDC训练模块200从视频全集160接收610视频。RDC训练模块200的视频编码器210对选择的视频的集合进行编码620并且从训练中获得630{R,D,C}采样。EPC映射模块230从获得的{R,D,C}采样中找到640最优{R,D,C}采样。例如ECP映射模块230找到在{R,D,C}采样之中的帕雷托最优集合并且对帕雷托集合进行插值以获得分段连续{R,D,C}表面。ECP映射模块230将最优{R,D,C}采样空间划分650成多个计算复杂性级别(例如以上描述的五个计算级别)。ECP映射模块230选择660用于每个计算级别的RDC最优编码策略(例如控制_质量_有界_比特率策略)并且获得670用于每个计算级别的ECP参数和编码通道的数目。
基于RDC的视频编码系统102可以通过基于先前编码调整后续编码通道的编码参数来优化多通道编码性能。例如在用于对输入视频进行编码的双通道编码方案中,基于RDC的视频编码系统102可以基于第一编码通道的编码参数(例如比特率、运动估计方法和运动矢量搜索范围)适配第二编码通道的编码参数。如果第一编码通道的实际比特率小于用相同ECP值编码的平均比特率,则它指示输入视频具有比平均视频更简单的视频内容,可以减少第二编码通道的ECP值以节省用于对输入视频进行编码的计算而保持相同速率-失真性能。如果第一编码通道的实际比特率大于用相同ECP值编码的平均比特率,则可以增加第二编码通道的ECP值以实现用于对输入视频进行编码的更多速率-失真性能增益。
V.用视频描述长度(VDL)进行编码
在最小成本用可接受的视觉质量对源视频进行转码需要有效地评估源视频的视频编码复杂性。忽略视频内容复杂性对转码视频的影响降低转码的视频的视觉质量和用户体验。关于需要多少比特率以对在某个视觉质量对视频进行编码的信息对于视频编码效率优化有用,因为用于对输入视频进行编码的比特率信息反映源视频的视频内容复杂性。
在一个实施例中,基于RDC的视频编码系统102使用视频描述长度以代表视频的视频内容复杂性。VDL是为了在某个视觉质量对视频进行编码而需要的比特率。不同视频具有不同VDL。具有慢速运动和平滑图像的视频具有短VDL,这指示视频易于用小比特率、但是高视觉质量来编码。在另一方面,具有密集运动和复杂文本内容的视频具有长VDL,这指示视频难以编码。
视频描述长度对于许多应用、比如自适应视频编码和解码有用。对于视频转码,VDL引导基于RDC的视频转码器以选择目标比特率或者目标恒定速率因子以将视频高效地编码成它的输出视频格式。基于RDC的视频转码器可以将输入视频的复杂性与参考视频在它们的关联VDL方面进行比较并且通过引用参考视频的现有合理编码参数来确定用于输入视频的恰当编码参数。
视频的VDL信息可以具有至少三个形式:
总VDL,
时间VDL,以及
空间VDL。
总VDL是视频在用‘CRF=26,复杂性=最快’对它进行编码时的实际比特率。CRF值是可配置的参数,并且实验数据表明视频在用CRF编码、用CRF=26对视频进行编码时有良好视觉质量。
时间VDL是视频在它用两个不同复杂性、例如‘CRF=26,复杂性=快速’和‘CRF=26,复杂性=最快’对它进行编码时的实际比特率差值。具有不同时间复杂性的视频大量不同在于多么快地处理在视频中检测到的运动。将多么快地处理视频中的检测到的运动依赖于一个或者多个因素、比如用于运动估计的运动估计方法和参考帧数目。表示时间VDL的一个实施例是使用视频在不同复杂性水平对视频进行编码时的比特率差值。
空间VDL是比特率在它用两个不同CRF、例如‘CRF=26,复杂性=最快’和‘CRF=28,复杂性=最快’对它进行编码时的实际比特率差值。一般而言,运动估计算法预测的残值信号复杂性反映视频帧的复杂性,并且残值信号的变换系数经历CRF值代表的量化。因此,用不同CRF值、但是相同复杂性级别编码的视频的比特率差值减少时间因素影响并且反映视频的空间复杂性。具有更大空间VDL的视频在视频中具有更复杂空间内容。
视频的总VDL、时间VDL和空间VDL可以用来引导基于RDC的视频转码。例如参照图4,基于RDC的视频转码模块400的视频描述长度模块420从对输入视频进行编码中获得输入视频的总VDL、时间VDL和空间VDL。输入视频的获得的VDL数据存储于动态VDL数据库中作为用于输入视频的参考VDL。例如视频描述长度模块420维持用于总VDL的动态参考表,其中每个表条目存储输入视频的标识、输入视频的总VDL、输入视频的时间分辨率和空间分辨率。在对视频进行转码之后,视频描述长度模块420删除输入视频的VDL参考。视频描述长度模块420相似地分别维持用于时间VDL和空间VDL的动态参考表。为用于输入视频的一个视频输出格式获得的总VDL可以用来引导视频的用于其它视频输出格式的编码。为输入视频的一个视频输出格式获得的时间和空间VDL可以相似地用于输入视频的其它视频输出格式。
在另一实施例中,基于RDC的视频编码系统102基于存储于动态VDL参考表中的VDL数据为视频全集160的视频的总VDL、时间VDL和空间VDL生成静态VDL参考表。例如用于总VDL的静态VDL参考表对于选择的时间分辨率存储每个个别输入数据的平均总VDL数据,并且另一静态VDL参考表对于选择的空间分辨率用于总VDL。可以相似地生成对于选择的时间分辨率或者空间分辨率的用于时间VDL和空间VDL的静态VDL参考表。可以每当生成或者更新在动态VDL参考表中的记录时更新静态VDL参考表。
对于给定的输入视频,视频描述长度模块420如以上描述的那样计算输入视频的总VDL、时间VDL和空间VDL并且与基于RDC的转码器430通信用于速率-失真复杂性优化。例如响应于输入视频的总VDL小于输入视频的目标比特率,视频描述长度模块420设置输入视频的总VDL作为目标比特率。设置总VDL作为输入视频的目标比特率帮助获得良好视觉质量。响应于输入视频的空间VDL大于参考视频的空间VDL,视频描述长度模块420指令基于RDC的转码器430增加关于空间处理的编码复杂性水平(例如将复杂性水平从例如“中等”改变成“快速”)。相似地,视频描述长度模块420指令基于RDC的转码器430基于在输入视频的时间VDL与参考视频的时间VDL之间的比较关于输入视频的时间处理来调整编码复杂性水平。
图3进一步图示以上描述的VDL引导的视频转码。初始地,基于RDC的视频转码模块400接收310输入视频并且经由修正的CRF比特率模型410对输入视频进行编码。视频描述长度模块420获得320输入视频的总VDL、时间VDL和空间VDL。视频描述长度模块420从修正的CRF比特率模型420的编码中获得输入视频的VDL信息或者自行计算输入视频的VDL信息。
视频描述长度模块420比较330输入视频的总VDL与输入视频的目标比特率并且基于比较来调整340输入视频的目标比特率(例如响应于总VDL小于目标比特率来设置输入视频的总VDL作为输入视频的目标比特率)。视频描述长度模块420比较350输入视频的时间VDL与参考时间VDL并且基于比较在时间上调整360视频编码复杂性。视频描述长度模块420比较370输入视频的空间VDL与参考空间VDL并且基于比较在空间上调整380视频编码复杂性。基于RDC的转码器430如图4中所示用调整的目标比特率、时间编码复杂性和空间编码复杂性对输入视频进行编码390。调整的目标比特率、时间或者空间编码复杂性指示需要不同ECP值和编码通道的数目以反映目标比特率和编码复杂性更新。
包括以上描述以举例说明优选实施例的操作而并非为了限制本发明的范围。本发明的范围将仅由所附权利要求限制。从以上讨论,许多变化将为相关领域技术人员所清楚而仍将为本发明的精神实质和范围所涵盖。
已经关于一个可能实施例用具体细节描述本发明。本领域技术人员将理解还可以在其它实施例中实现本发明。首先,部件的特定命名、术语的大写、属性、数据结构或者任何其它编程或者结构方面并非必需或者重要的,并且实现本发明或者它的特征的机制可以具有不同名称、格式或者协议。另外,可以如描述的那样经由硬件与软件的组合或者完全在硬件单元中实施系统。在这里描述的各种系统部件之间的特定功能划分也仅为举例而非必需;单个系统部件执行的功能可以代之以由多个部件执行,并且多个部件执行的功能可以代之以由单个部件执行。
以上描述的一些部分在对信息的操作的算法和符号表示方面呈现本发明的特征。这些算法描述和表示是本领域技术人员用来向本领域其他技术人员最有效地传达他们的工作实质的手段。这些操作在功能或者逻辑上被描述之时被理解为由计算机程序实施。另外,将这些操作布置称为模块或者冠以功能名称也已经证实有时是便利的而不失一般性。
除非如从当前讨论中清楚的那样另有具体明示,要理解贯穿说明书,利用诸如“处理”或者“计算”或者“运算”或者“确定”或者“显示”等术语的讨论指代计算机系统或者相似电子计算设备的动作和过程,该计算机系统或者相似电子计算设备操控和变换在计算机系统存储器或者寄存器或者其它这样的信息存储装置、传输或者显示设备内表示为物理(电子)数量的数据。
本发明的某些方面以算法的形式包括这里描述的过程步骤和指令。应当注意可以在软件、固件或者硬件中体现本发明的过程步骤和指令,并且在呈现为软件时可以下载这些过程步骤和指令以驻留于实时网络操作系统使用的不同平台上并且从这些不同平台操作这些过程步骤和指令。
本发明也涉及一种用于执行这里的操作的装置。这一装置可以被具体构造用于所需目的,或者它可以包括在计算机可以访问的计算机可读介质上存储的计算机程序有选择地激活或者重新配置的通用计算机。这样的计算机程序可以存储于计算机可读存储介质、比如但不限于包括软盘、光盘、DVD、CD-ROM、光磁盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或者光卡、专用集成电路(ASIC)或者适合用于存储电子指令并且各自耦合到计算机系统总线的任何类型的介质中。另外,在说明书中指代的计算机可以包括单个处理器或者可以是运用多处理器设计用于增加计算能力的架构。
这里呈现的算法和显示并非固有地与任何特定计算机或者其它装置有关。各种通用系统也可以与根据这里的教导的程序一起使用,或者构造更专门化的装置以执行方法步骤可以证实是便利的。用于多种这些系统的结构将与等效变化一起为本领域技术人员所清楚。此外,未参照任何特定编程语言描述本发明。理解多种编程语言可以用来实现如这里描述的本发明的教导并且提供对具体语言的任何引用以便公开本发明的实现和最佳实施方式。
本发明良好的适合于在许多拓扑之上的广泛多种计算机网络系统。在这一领域内,大型网络的配置和管理包括存储设备和通过网络、比如因特网通信地耦合到不相似计算机和存储设备的计算机。
最后应当注意在说明书中使用的言语已经主要出于可读性和教导的目的而加以选择并且可以未被选择用来界定或者限制发明主题内容。因而,本发明的公开内容旨在于举例说明而非限制在所附权利要求中阐述的本发明的范围。

Claims (23)

1.一种用于为视频托管服务优化编码比特率、失真和复杂性的计算机系统,所述系统包括:
编码模块,所述编码模块被配置用于:
用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码;
从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样,所述复杂性性能采样代表对由每帧编码时间所测量的复杂性进行编码;
从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样,其中选择最优编码比特率、失真和复杂性性能采样包括:
在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;和
基于插值选择最优编码比特率、失真和复杂性性能采样;以及
编码计算简档映射模块,所述编码计算简档映射模块耦合到所述编码模块,被配置用于:
从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别;和
对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性采样对应的一对优化的复杂性分配控制参数和编码通道的数目。
2.根据权利要求1所述的系统,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
3.根据权利要求1所述的系统,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括:
对所述视频进行编码的编码比特率;
对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及
由每帧编码时间代表的编码复杂性。
4.根据权利要求1所述的系统,其中所述编码模块还被配置用于:
找到帕雷托最优编码比特率、失真和复杂性性能采样。
5.根据权利要求1所述的系统,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
6.根据权利要求5所述的系统,其中用于比特率控制策略的所述最快计算级别的编码通道的数目为1。
7.根据权利要求1所述的系统,其中所述编码计算简档映射模块还被配置用于验证用于所述比特率控制策略的选择的所述复杂性分配控制参数和编码通道的数目的有效性。
8.根据权利要求1所述的系统,其中一对复杂性分配控制参数代表双通道比特率编码中的第一通道的计算复杂性和双通比特率编码中的第二通道的计算复杂性。
9.一种用于为视频托管服务优化编码比特率、失真和复杂性的方法,所述方法包括:
用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码;
从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样,所述复杂性性能采样代表对由每帧编码时间所测量的复杂性进行编码;
从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样,其中选择最优编码比特率、失真和复杂性性能采样包括:
在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;和
基于插值选择最优编码比特率、失真和复杂性性能采样;以及
从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别;和
对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性性能采样对应的一对优化的复杂性分配控制参数和编码通道的数目。
10.根据权利要求9所述的方法,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
11.根据权利要求9所述的方法,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括:
对所述视频进行编码的编码比特率;
对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及
由每帧编码时间代表的编码复杂性。
12.根据权利要求9所述的方法,其中选择最优编码比特率、失真和复杂性性能采样还包括:
找到帕雷托最优编码比特率、失真和复杂性性能采样。
13.根据权利要求9所述的方法,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
14.根据权利要求13所述的方法,其中用于比特率控制策略的所述最快计算级别的编码通道的数目为1。
15.根据权利要求9所述的方法,其中选择所述一对优化的复杂性分配控制参数和编码通道的数目还包括验证用于所述比特率控制策略的选择的所述复杂性分配控制参数和编码通道的数目的有效性。
16.根据权利要求9所述的方法,其中一对复杂性分配控制参数代表双通道比特率编码中的第一通道的计算复杂性和双通比特率编码中的第二通道的计算复杂性。
17.一种用于为视频托管服务优化编码比特率、失真和复杂性的设备,所述设备包括:
用比特率控制策略、一对复杂性分配控制参数和一个或者多个目标输出视频格式规范对多个视频进行编码的装置;
从所述多个视频的所述编码中获得编码比特率、失真和复杂性性能采样的装置,所述复杂性性能采样代表对由每帧编码时间所测量的复杂性进行编码;
从所述编码比特率、失真和复杂性性能采样中选择最优编码比特率、失真和复杂性性能采样的装置,其中选择最优编码比特率、失真和复杂性性能采样包括:
在针对每对复杂性分配控制参数的所述编码比特率上,对所述编码失真和编码复杂性进行插值;和
基于插值选择最优编码比特率、失真和复杂性性能采样;以及
从选择的所述最优编码比特率、失真和复杂性性能采样获得多个计算级别的装置;和
对于每个计算级别,选择与选择的所述最优编码比特率、失真和复杂性性能采样对应的一对优化的复杂性分配控制参数和编码通道的数目的装置。
18.根据权利要求17所述的设备,其中所述复杂性分配控制参数对于选择的比特率控制策略对编码视频的编码计算-效率折衷进行建模。
19.根据权利要求17所述的设备,其中所述多个视频中的视频的编码比特率、失真和复杂性性能采样包括:
对所述视频进行编码的编码比特率;
对所述视频进行编码的失真测量,所述失真借助于所述视频的帧的亮度分量的均方误差来测量;以及
由每帧编码时间代表的编码复杂性。
20.根据权利要求17所述的设备,其中所述用于选择最优编码比特率、失真和复杂性性能采样的装置还包括:
找到帕雷托最优编码比特率、失真和复杂性性能采样的装置。
21.根据权利要求17所述的设备,其中所述计算级别包括以下五个计算级别中的至少一个计算级别:最快、快速、中等、慢速和最慢,其中所述最快计算级别用于在所述多个计算级别之中用最快转码时间对视频进行编码,并且所述最慢计算级别用于在所述多个计算级别之中用最高感知视觉质量生成视频。
22.根据权利要求17所述的设备,其中所述用于选择所述一对优化的复杂性分配控制参数和编码通道的数目的装置还包括用于验证用于所述比特率控制策略的所述选择的复杂性分配控制参数和编码通道的数目的有效性的装置。
23.根据权利要求17所述的设备,其中一对复杂性分配控制参数代表双通道比特率编码中的第一通道的计算复杂性和双通比特率编码中的第二通道的计算复杂性。
CN201280060744.1A 2011-10-17 2012-10-08 视频编码的速率‑失真‑复杂性优化 Active CN103975601B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/275,084 2011-10-17
US13/275,084 US8934538B2 (en) 2011-10-17 2011-10-17 Rate-distortion-complexity optimization of video encoding
PCT/US2012/059192 WO2013059014A1 (en) 2011-10-17 2012-10-08 Rate-distortion-complexity optimization of video encoding

Publications (2)

Publication Number Publication Date
CN103975601A CN103975601A (zh) 2014-08-06
CN103975601B true CN103975601B (zh) 2018-01-05

Family

ID=48085983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280060744.1A Active CN103975601B (zh) 2011-10-17 2012-10-08 视频编码的速率‑失真‑复杂性优化

Country Status (4)

Country Link
US (1) US8934538B2 (zh)
EP (1) EP2769553B1 (zh)
CN (1) CN103975601B (zh)
WO (1) WO2013059014A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103327330B (zh) * 2013-06-14 2016-08-10 中国计量学院 基于系列算法参数取值选择的视频编码算法优化方法
US10123036B2 (en) 2014-06-27 2018-11-06 Microsoft Technology Licensing, Llc Motion vector selection for video encoding
US11076153B2 (en) * 2015-07-31 2021-07-27 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
GB2543492B (en) * 2015-10-16 2021-11-10 Digital Barriers Services Ltd Data Compression
CN106856571B (zh) 2015-12-09 2019-12-06 阿里巴巴集团控股有限公司 一种转码方法及装置
US10812550B1 (en) 2016-08-03 2020-10-20 Amazon Technologies, Inc. Bitrate allocation for a multichannel media stream
GB2600040B8 (en) * 2016-12-01 2023-01-11 Brightcove Inc Optimization of encoding profiles for media streaming
US10771789B2 (en) 2017-05-19 2020-09-08 Google Llc Complexity adaptive rate control
US10924812B2 (en) * 2018-02-15 2021-02-16 Cisco Technology, Inc. Constant quality video encoding with encoding parameter fine-tuning
US10679070B1 (en) * 2018-02-23 2020-06-09 Facebook, Inc. Systems and methods for a video understanding platform
CN108924555B (zh) * 2018-05-04 2019-12-27 上海交通大学 一种适用于视频切片的码率控制比特分配方法
US11128869B1 (en) * 2018-10-22 2021-09-21 Bitmovin, Inc. Video encoding based on customized bitrate table
CN111163314A (zh) * 2018-11-07 2020-05-15 合肥图鸭信息科技有限公司 一种图像压缩方法及系统
CN111161363A (zh) * 2018-11-07 2020-05-15 合肥图鸭信息科技有限公司 一种图像编码模型训练方法及装置
CN112468816B (zh) * 2019-09-06 2022-07-19 上海哔哩哔哩科技有限公司 固定码率系数预测模型建立及视频编码的方法
JP7490764B2 (ja) 2019-11-14 2024-05-27 インテル コーポレイション コンテンツおよびネットワーク解析を使用してビデオフレームを適応的にエンコードする
CN111083473B (zh) * 2019-12-28 2022-03-08 杭州当虹科技股份有限公司 一种基于机器学习的内容自适应视频编码方法
CN111556316B (zh) * 2020-04-08 2022-06-03 北京航空航天大学杭州创新研究院 一种基于深度神经网络加速的快速块分割编码方法和装置
CN112422967B (zh) * 2020-09-24 2024-01-19 北京金山云网络技术有限公司 视频的编码方法及装置、存储介质、电子设备
US11451790B2 (en) * 2020-10-09 2022-09-20 Tencent America LLC Method and apparatus in video coding for machines
US11490127B2 (en) * 2020-12-31 2022-11-01 Ati Technologies Ulc Method and apparatus for providing cloud-based video encoding
CN112995672B (zh) * 2021-02-04 2022-11-18 杭州电子科技大学 一种基于参数选择的视频编码算法优化方法
US11445252B1 (en) * 2021-07-08 2022-09-13 Meta Platforms, Inc. Prioritizing encoding of video data received by an online system to maximize visual quality while accounting for fixed computing capacity

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628300B2 (en) 2001-11-30 2003-09-30 International Business Machines Corporation Transcoding proxy and method for transcoding encoded streams
US6700935B2 (en) 2002-02-08 2004-03-02 Sony Electronics, Inc. Stream based bitrate transcoder for MPEG coded video
US6980695B2 (en) 2002-06-28 2005-12-27 Microsoft Corporation Rate allocation for mixed content video
US7330509B2 (en) 2003-09-12 2008-02-12 International Business Machines Corporation Method for video transcoding with adaptive frame rate control
US20050232497A1 (en) 2004-04-15 2005-10-20 Microsoft Corporation High-fidelity transcoding
EP1615447B1 (en) * 2004-07-09 2016-03-09 STMicroelectronics Srl Method and system for delivery of coded information streams, related network and computer program product therefor
TWI301953B (en) * 2005-03-14 2008-10-11 Qisda Corp Methods and apparatuses for video encoding
US8238424B2 (en) * 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
US8213498B2 (en) 2007-05-31 2012-07-03 Qualcomm Incorporated Bitrate reduction techniques for image transcoding
CN101102495B (zh) * 2007-07-26 2010-04-07 武汉大学 一种基于区域的视频图像编解码方法和装置
WO2010048524A1 (en) 2008-10-24 2010-04-29 Transvideo, Inc. Method and apparatus for transrating compressed digital video
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
US8588296B2 (en) 2009-07-02 2013-11-19 Dialogic Corporation Bitrate control algorithm for video transcoding systems

Also Published As

Publication number Publication date
CN103975601A (zh) 2014-08-06
WO2013059014A1 (en) 2013-04-25
US8934538B2 (en) 2015-01-13
EP2769553B1 (en) 2019-09-18
US20130094564A1 (en) 2013-04-18
EP2769553A4 (en) 2015-06-17
EP2769553A1 (en) 2014-08-27

Similar Documents

Publication Publication Date Title
CN103975601B (zh) 视频编码的速率‑失真‑复杂性优化
CN105847807B (zh) 用于优化输入视频的编码的计算机系统、方法
CN104641651B (zh) 用于编码和交付视频内容的分布式体系结构
CN106537923B (zh) 自适应视频流的技术
CN105187835B (zh) 基于内容的自适应视频转码方法及装置
CN102461169B (zh) 基于运动的动态分辨率多比特率视频编码
KR101894420B1 (ko) 적응적 비디오 트랜스코딩 방법 및 시스템
CN102450014B (zh) 用于质量感知视频优化的方法和视频优化器
US20170140513A1 (en) Efficient Image Processing on Content-Adaptive PQ Signal Domain
US10542257B2 (en) Encoders, decoders and methods employing quantization
CN104539948A (zh) 视频处理系统和视频处理方法
JP2023524000A (ja) 品質正規化ビデオコード変換のための動的パラメータ選択
US9313243B2 (en) Video streaming over data networks
CN109922340A (zh) 图像编解码方法、装置、系统及存储介质
Yang et al. Sur-driven video coding rate control for jointly optimizing perceptual quality and buffer control
CN100515021C (zh) 基于图像质量和码率约束的jpeg2000码率控制方法
Al-Abri et al. Optimal H. 264/AVC video transcoding system
US11582462B1 (en) Constraint-modified selection of video encoding configurations
JP7310212B2 (ja) データ中継装置、データ中継方法及びプログラム
Katsenou et al. Rate-Quality or Energy-Quality Pareto Fronts for Adaptive Video Streaming?
Joset et al. Visual quality and file size prediction of H. 264 videos and its application to video transcoding for the multimedia messaging service and video on demand
Yang et al. Power-aware adaptive video streaming from the set-top-box to mobile devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.