用于质量感知视频优化的框架的制作方法

文档序号:7911526阅读:148来源:国知局
专利名称:用于质量感知视频优化的框架的制作方法
用于质量感知视频优化的框架相关专利的交叉引用
本申请要求保护于2009年3月31日提交的名称为“A Framework for Quality-Aware Video Optimization”的美国临时申请No. 61/165, 224的优先权和权益,该美国临时申请的全部内容并入此处以供参考。
背景技术
量化与感觉质量(perceptual Quality)的关系
在视频处理中,量化是通过将值的范围压缩至单个量子值而实现的有损压缩技术。当在任何系统中量化视频帧时,信息丢失。例如,典型的视频编码器(如MPEG-2)可以通过丢弃在解码期间对表示原始图像的图像的重构没有贡献的信息来压缩视频帧。在编码期间丢弃的信息的量取决于如何量化每个视频帧。每个视频压缩格式定义了离散的量化设置集合,并且,每个量化设置具有抽象的标识符,被表示为量化参数(QP)。QP可以被任意定义为例如对量化设置的阵列编索引的整数,使得较小QP值X所引入的量化噪声小于较大QP值 X+1所引入的量化噪声。对于每个视频编解码器,由给定的QP值编索引的量化设置可以不同。如果在量化期间丢弃过多信息,则当在重放期间解压缩视频帧时,该视频帧可以显出失真。这捕获了量化与感觉质量之间的关系。因此,QP可以用作感觉质量的指示符, 这是由于QP指示了在对视频帧进行编码时丢弃多少信息。为了说明QP仅是用于估计视频帧的感觉质量的启发式算法,应当考虑利用精细的量化设置而量化的“低质量”视频帧。如果利用精细的量化设置对视频帧进行编码(这意味着丢弃非常少的信息),则由解码器重构的视频帧将与原始视频帧非常接近地匹配。重构的视频帧中的量化噪声非常低,但是重构的视频帧仍显得具有低质量,这是由于原始视频帧具有低质量。这仅是其中QP不精确指示视频的感觉质量的一个示例。量化与比特率的关系
在视频处理中,比特率指的是每重放时间单位使用的比特数,以用于表示编码(数据压缩)后的连续视频。当然,不同图像或视频帧可能需要即使在它们共享相同像素尺寸且利用相同QP而编码时表示的不同比特数。然而,对于给定的视频帧,QP与压缩字节大小之间的关系更加可预测。如果较高的QP值表示较粗糙的量化(更多信息损失),则利用较高QP值 X+1而量化的帧将决不会比利用较小QP值X而量化的相同帧需要更多比特(这忽略了通常应用于量化系数数据的熵编码方案中的边角情况)。实际上,这意味着当增大用于对帧进行量化的QP时,帧的平均比特率需求降低。图3示出了视频序列的比特率如何随着QP的增大而降低。图3中的比特率数和QP值仅是示例。在现实生活中,这些数和值可以不同, 并且,对于不同视频序列,QP值与比特率之间的相关性可以有变化。


图1图示了示例性系统的框图。
图2是图示了图1的示例性系统中的示例性质量感知视频优化器的实施例的框图。图3图示了针对各种视频帧序列的、比特率与QP之间的示例性相关性。图4图示了从QPlnput至Δ QP的示例性映射。图5是图示了图2的实施例中的示例性处理流程的功能图。图6是表示了质量感知视频优化的示例性方法的流程图。图7是图示了图1的示例性系统中的示例性质量感知视频优化器的另一实施例的框图。图8是图示了图7的实施例中的示例性处理流程的功能图。图9是表示了质量感知视频优化的另一示例性方法的流程图。
具体实施例方式现在将详细参照示例性实施例,这些示例性实施例的示例在附图中图示。在任何可能的地方,在全部附图中将使用相同的参考标记来指代相同或相似的部分。这里公开的示例性实施例涉及用于质量感知视频优化的方法和系统。质量感知视频优化是一种技术,用于修改视频帧序列,使得尽可能多地减小视频流的字节大小,而且同时将感觉质量下降限制于可控制的水平。质量感知视频优化技术可以对先前编码的视频帧序列仅需要单遍(single pass),以便优化视频帧序列。现有单遍速率控制技术的问题在于视频帧的压缩字节大小与其量化参数之间的关系仅在对帧进行编码之后已知。为了在单遍中实现字节减少和可控制的质量下降,质量感知视频优化器可以参考与如何在视频帧的初始编码期间量化视频帧有关的信息,并使用该信息来优化视频帧序列。用于质量感知视频优化的框架可以调整图像量化,从而通过实验测试来允许在字节减少的内容中对质量下降的精细控制。通过进一步的实验测试,还有可能将量化调整优化应用于代码转换情形,在该情形中,输入和输出压缩格式是不同的。图1图示了示例性系统100的框图。示例性系统100可以是在本地连接或网络 (如无线网络、互联网、广播网络等)上提供视频内容的任何类型的系统。除了别的之外,示例性系统100还可以包括用户设备102、网关104、一个或多个网络106和110、视频优化器 108以及一个或多个媒体服务器112至114。用户设备102可以是硬件设备,例如计算机、PDA、蜂窝电话、膝上型计算机、桌上型计算机、VCR、激光盘播放器、DVD播放器、蓝光盘播放器、包括广播调谐器的电视机、或者能够访问数据网络和/或能够播放视频的任何电子设备。用户设备102可以包括软件应用,其允许用户设备102与数据网络(如网络106)进行通信并从该数据网络接收视频内容。 例如,用户设备102可以向媒体服务器发送下载特定视频流传送文件的请求数据,并且,媒体服务器可以向用户设备102传输视频流传送文件。在一些实施例中,视频流传送文件可以路由通过视频优化器108。用户设备102可以提供用于向用户设备的用户显示视频流的显示器以及一个或多个软件应用,如媒体播放器。在一些实施例中,用户设备102还可以是或包括用于对视频内容进行存储或归档的存储设备。例如,该存储设备可以被提供为视频CD、DVD、蓝光盘、硬盘、磁带、闪速存储器卡/驱动器、易失性或非易失性存储器、全息摄影数据存储器以及任何其他存储介质。
网关104是用作入口或接入装置的一个或多个设备,并且可以或不可以将在一种类型的网络中提供的格式化数据转换成另一种类型的网络所需的特定格式。例如,网关104 可以是服务器、路由器、防火墙服务器、主机或视频优化器。例如,网关104可以具有以下能力将从用户设备102接收到的信号变换为网络106或110可以理解的信号,并且反之亦然。然而,在一些数据网络(如第四代(4G)或全球微波接入互操作性(WiMAX))中不需要该变换能力。网关104可能能够单独地或以任何组合的方式处理音频、视频和T. 120传输,并能够进行全双工媒体转换。此外,网关104可以包括用于质量感知视频优化的视频优化器 108。网络106和110可以包括适于分组类型通信(如互联网通信)的广域网(WAN)、局域网(LAN)或无线网络或者适于分发视频内容的广播网络的任何组合。视频优化器108可以被实现为提供质量感知视频优化的软件程序和/或硬件设备。视频优化器108是提供用户设备102与媒体服务器112至114之间的通信的服务器。 视频优化器108可以执行对先前编码的视频帧序列的单遍、即时的质量感知优化,如下所述。由于视频优化方法对视频帧序列仅需要一遍(one pass),因此视频优化器108完全适于在许多种环境中进行操作。例如,视频优化器108可以是媒体服务器112至114中的任一个或者用户设备102与媒体服务器112至114之间的任何网络设备的一部分。这样,视频优化器108在遍历低容量网络段之前优化现场直播视频馈送。此外,视频优化器108还可以被安装在存储阵列的前部,以在对监视视频进行归档之前优化该监视视频,并且从而节省存储空间。媒体服务器112至114可以是以下计算机服务器其从用户设备102接收针对视频内容的请求,处理该请求,并在一些实施例中通过视频优化器108向用户设备102提供视频内容。例如,媒体服务器112至114可以是网络服务器、企业服务器或者任何其他类型的计算机服务器。媒体服务器112至114可以是被编程为接受来自用户设备102的请求(例如HTTP、RTSP或可发起视频会话的其他协议)并利用视频流给用户设备102提供服务的计算机。此外,媒体服务器112至114可以是PDA、蜂窝电话、膝上型计算机、桌上型计算机、 或者被配置为在一些实施例中通过一个或多个网络106和110向用户设备102传送视频内容的任何设备。此外,媒体服务器112至114可以是用于在一些实施例中通过视频优化器 108向用户设备102分发视频内容的广播设施,如免费节目、电缆、卫星以及其他广播设施。 此外,媒体服务器112至114可以是视频源,例如监视设备,其被配置为捕获视频并在一些实施例中通过视频优化器108向用户设备102传送所捕获的视频。此外,作为图1所示的系统100的配置的备选,媒体服务器112至114中的任一个可以包括用于质量感知视频优化的视频优化器108。图2是图示了图1的示例性系统中的示例性质量感知视频优化器108的实施例的框图。为了简明,图2仅图示了视频优化器108,压缩视频帧作为输入(202)并且优化压缩视频帧作为输出(204)。除了别的之外,视频优化器108还可以包括解码器210、QP调整模块220和编码器230。视频优化器108的所示配置仅是示例性的,并可以被修改为提供分立的元件或将多个元件组合为单个的一个元件,并且被提供为硬件和软件组件的任何组合。参照图2,解码器210可以是对传入的压缩视频帧进行截取和解码(解压缩)的软件程序和/或硬件设备。除了别的之外,每个传入的压缩视频帧还可以包括报头和压缩帧视频。除了别的之外,报头还可以包括已经用于对帧进行压缩的输入QP (QPlnput)0除了别的之外,解码器210还可以包括逆量化器212。对于每个解压缩视频帧,逆量化器212可以从解压缩视频帧中提取QPlnput,并将QPlnput转发至QP调整模块220。然后, 解码器210可以向编码器230传送解压缩视频帧。在一些实施例中,可以将解压缩视频帧存储在数据库(例如缓冲器或队列)中。此外,作为图2所示的视频优化器108的配置的备选,逆量化器212可以位于将解码器210的外部。质量感知视频优化QP调整
QP调整模块220可以是用于基于QPlnput导出用于对解压缩视频帧进行压缩的输出QP (QPaltput)的软件程序和/或硬件设备。如前所述,由于可以在QP值与视频帧的感觉质量之间以及还可以在QP与视频帧的比特率之间建立关系,因此QP调整模块220可以使用QPlnput 与QPtxitput之间的差(AQP)以便同时控制优化压缩视频帧(204)的输出视频帧的比特率降低和感觉质量下降。参数Δ QP可以被定义为例如
QPlnput + AQP = QP0utput
其中QPlnput是在最初对输入(压缩)视频帧(202)进行编码时使用的量化参数,并且 QPftltput是由QP调整模块220导出以在对解压缩帧进行重新量化时使用的量化参数。对于每个输入视频帧,已知QPlnput和压缩字节大小。QP调整模块220可以选择AQP值以导出用于对可满足字节大小减小的需求且保持原始感觉质量的输出视频帧进行量化的QPftltputt5 Δ QP值越小,QPaitput值越小,并且从而将在编码期间丢弃越少信息——感觉质量的下降越少。相反,Δ QP值越大,则QPaitput值越大,并且从而将在编码期间丢弃更多信息一感觉质量的下降更多。可以利用图3所示的QP与比特率的关系曲线的两个属性来实现对输入视频帧的优化。第一属性是利用以下事实当QPlnput为高时,小AQP对比特率几乎没有影响。这在图3中的曲线的最右侧平坦部分中示出。利用高QPtatput值对视频帧进行量化丢弃了来自原始视频帧的更多信息。为了维持视频帧的原始感觉质量,不能使用高QPtatput值。这与减小字节大小的目标矛盾,这是由于当QPftltput小于QPlnput时,帧的字节大小仅可以增大。给定了图3中的QP与比特率的关系曲线的形状,那么当QPlntput为高时,可以使用负AQP来导出丢弃更少信息且维持感觉质量的相对较小QPtxitput,同时仅以较小量增大字节大小。要利用的第二属性是当QPlnput为低时,小AQP对比特率有较大影响。这在图3 中的曲线的最左侧较陡部分中示出。当QPlnput为低时,甚至小的正AQP也将导致大的字节减小——在编码期间丢弃大量的信息。这些观察得到了新的函数F,根据QPlnput的值来定义Δ QP。Δ QP与QPlnput之间的这种关系可以被写为例如
AQP = F(QPlnput)
函数F可以是根据上述观察以及对实际视频源的感觉分析来以实验方式导出的。除了别的之外,函数F还可以是例如QPlnput与Δ QP之间的映射表。函数F还可以是根据包含例如QPlnput与△ QP之间的映射的数据库来导出的。返回参照图2,QP调整模块220可以利用函数F来获取Δ QP,并进而使用Δ QP来导出用于对解压缩视频帧进行量化的QP^t。例如,当QPlnput为低或低于预定阈值时,QP
9调整模块220可以选择正AQP。正AQP可以在对高质量帧进行重新量化时产生大量的字节节省。基于正Δ QP, QP调整模块220可以导出比QPlnput更高的QPtatput值,以便大量地减小字节大小,同时最低限度地降低高质量输入视频帧的原始感觉质量。另一方面,当QPlnput 为高或高于预定阈值——在对输入视频帧进行原始压缩期间丢弃大量信息时,QP调整模块 220可以选择负Δ QP。基于负Δ QP, QP调整模块220可以导出比QPlnput更低的QP0utput值, 以便保持输入视频帧的原始感觉质量,同时仅最低限度地扩大字节大小。当利用该方法对包括各种质量的帧的正常视频帧序列(202)进行优化时,净字节减小可以是正的。质量感知视频优化控制质量下降
在一些实施例中,QP调整模块220还可以获取质量下降偏移(其是指示质量下降量的参数),以在对解压缩视频帧进行优化期间控制质量下降。可以从用于对视频帧进行重新量化的、AQP值之间的映射中观察到质量下降。图4示出了AQP之间的
两个示例性映射。图4中的Δ QP和QPlnputW值仅是示例。在现实生活中,对于不同视频序列,这些值可以不同,并且QPlnput与AQP之间的映射可以变化。在图4中,更高的曲线产生更多的质量下降,这是由于更高的Δ9Ρ意味着在对帧进行重新量化时丢弃更多信息。返回参照图2,QP调整模块220可以向Δ QP添加质量下降偏移,以调整在优化期间引入的恒定质量下降。例如,QP调整模块220可以利用以下修正函数来获取AQP:
AQP = F(QPlnput) + D
如上所述,F是公开QPlnput与AQP之间的相关性的函数。质量下降偏移D是指示质量下降量的参数。除了别的之外,该参数可以基于例如对优化视频的历史数据分析而获得。如果要最小化在优化期间引入的质量下降,则可以将质量下降偏移D的缺省值设置为0。QP调整模块220可以从例如包含例如对优化视频的历史数据分析的数据库获得质量下降偏移。 基于QPlnput和质量下降偏移,QP调整模块220可以导出AQP。然后,QP调整模块220可以使用Δ QP来计算与QPlnput相对应的QPtxitpi^质量感知视频优化编解码器之间映射量化参数
在一些实施例中,QP调整模块220还可以考虑输入和输出压缩格式(编解码器)的任意组合之间的差异,并计算考虑输入和输出压缩格式(编解码器)之间的差异的编解码器调整。对于每个视频编解码器,由给定QP指示的量化设置可以不同。两个不同视频编解码器的呈现相同感觉质量的等效或对应量化设置可以由具有不同尺度的两个不同QP值表示。 例如,编解码器A中的视频帧的量化设置由QP值20表示,并且编解码器B中的对应量化设置由QP值15表示。为了获得编解码器B中与编解码器A中的由QP值(如20)表示的量化设置相对应的量化设置,QP调整模块220可以将QP值(如20)从编解码器A中的QP尺度转换为编解码器B中的QP尺度,并得到转换后的QP值(如15)。通过具有该功能,质量感知视频优化器108可以在任何代码转换情形中提供优化收益。如果由解码器210检测到的输入(压缩)视频帧(202)的压缩格式(编解码器)与由编码器230用于对解压缩视频帧进行压缩的压缩格式不同,则在可以计算AQP之前,QP 调整模块220可以将QPlnput从解码器的QP尺度转换为编码器的QP尺度。这可以通过例如以下操作而进行维持质量感知视频优化器所支持的解码器和编码器的每个组合的QP尺度之间的映射。例如,QP尺度之间的映射使来自编解码器A的所有QP与编解码器B的那些QP相关,使得利用编解码器A编码的视频帧可以产生与在利用编解码器B进行编码时相同的感觉质量。这些映射可以是以实验方式确定的,并可以由QP调整模块220在QP调整步骤中实现。如果输入编解码器与输出编解码器相同,则可以不转换QPlnput或者转换后的
明 Input 与所述QPlnput相同。基于转换后的QPlnput、质量下降偏移,QP调整模块220可以导出Δ QP。备选地,QP 调整模块220可以基于对输入和输出压缩格式是否相同的确定来获得考虑输入和输出压缩格式(编解码器)之间的差异的编解码器调整。基于QPInput、编解码器调整和质量下降偏移,QP调整模块220可以计算AQP。然后,QP调整模块220可以基于Δ QP来计算QPftjtput, 并将QPcxltput转发至编码器230。编码器230可以是接收解压缩视频帧并对视频帧进行编码(压缩)的软件程序和/ 或硬件设备。除了别的之外,编码器230还可以包括量化器232。量化器232接收QPaitput和对应的解压缩视频帧,并通过将由QPtatput表示的量化设置应用于对视频帧的编码(压缩)来优化视频帧。然后,视频优化器108将优化压缩视频帧输出并传输(204)至目的地。此外, 作为图2所示的视频优化器108的配置的备选,量化器232可以位于编码器MO的外部。视频优化器可以逐一地处理传入的压缩视频帧(202),并即时地且在单遍中将上述视频质量感知优化过程应用于每个视频帧。在需要时可以将视频优化器安装在任何位置处,并且在任何需要的时候,视频优化器可以应用质量感知视频优化。图5是图示了图2的实施例中的示例性处理流程的功能图。在不脱离示例性实施例的情况下,可以更改该示例性处理流程以删除步骤、改变步骤顺序或包括附加步骤。在从数据网络接收到(202)压缩视频帧之后,视频优化器108可以将压缩视频帧引导至解码器210。解码器210可以对传入的压缩视频帧进行截取和解码(解压缩)。解码器210的逆量化器212可以从解压缩视频帧中提取最初用于对传入的压缩视频帧进行压缩的QPIn_。然后,解码器210或逆量化器212可以将所提取的QPlnput传递(502)至QP调整模块220,并将解压缩视频帧传送(504)至编码器230。如果输入压缩视频帧(202)和输出压缩视频帧(204)具有不同压缩格式(编解码器),那么基于QPlnput,QP调整模块220可以将QPlnput从解码器210的QP尺度转换为编码器 230的QP尺度。该转换可以基于质量感知视频优化器所支持的输入编解码器和输出编解码器的每个组合的QP尺度之间的映射。如果输入编解码器与输出编解码器相同,则可以不转换QPlnput或者转换后的QPlnput与所述QPlnput相同。此外,在一些实施例中,QP调整模块220可以获取指示质量下降量的质量下降偏移,以控制在对解压缩视频帧进行优化期间引入的质量下降。可以将质量下降偏移的缺省值设置为0,这表示引入了最小质量下降。可以例如从包含例如对优化视频的历史数据分析的数据库获得质量下降偏移。基于转换后的QPlnput和质量下降偏移,QP调整模块220可以计算用于导出与传入的QPlnput相对应的QPtxitput的AQP,并将QPaitput转发(506)至编码器 230。在接收到(504、506)解压缩视频帧和对应的QPtatput之后,编码器230的量化器232 通过将由QPftltput指示的量化设置应用于对解压缩视频帧的编码(压缩)来优化视频帧。该优化可以包括例如,在试图保持压缩视频帧的原始感觉质量的同时减小压缩视频帧的字节大小。在该优化之后,视频优化器108将优化压缩视频帧输出并传输(204)至目的地(如用户设备102)。
11
图6是表示了质量感知视频优化的示例性方法的流程图。在不脱离示例性实施例的情况下,可以更改该示例性处理流程以删除步骤、改变步骤顺序或包括附加步骤。在接收到(602 )压缩视频帧之后,视频优化器对视频帧进行解码(解压缩)(604 ), 并从解码(解压缩)视频帧中提取(606 )输入QP值。此外,视频优化器可以获得(608 )编解码器调整,该编解码器调整考虑输入和输出压缩格式(编解码器)之间的差异。视频优化器可以基于对编码编解码器(输出视频压缩格式)是否与解码编解码器(输入视频压缩格式) 不同的确定来执行该步骤。如果输入编解码器与输出编解码器相同,则可以将编解码器调整的缺省值设置为0。在步骤610,视频优化器可以获取指示质量下降量的质量下降偏移,以控制在对解压缩视频帧进行优化期间引入的质量下降。如果要最小化质量下降,则可以将质量下降偏移的缺省值设置为0。可以基于例如对优化视频的历史数据的分析来获得质量下降偏移。 基于输入QP、编解码器调整和质量下降偏移,视频优化器可以计算Δ9Ρ。AQP与用于优化解压缩视频帧的、输入QP和输出QP之间的差异相对应。然后,视频优化器可以基于AQP 来导出(612)输出QP。备选地,视频优化器可以基于对编码编解码器是否与解码编解码器不同的确定, 将输入QP值从解码(输入)QP尺度转换为编码(输出)QP尺度。如果解码编解码器与编码编解码器相同,则可以不转换输入QP或者转换后的输入QP与所述输入QP相同。基于转换后的输入QP和质量下降偏移,视频优化器可以计算AQP,并从而使用AQP来导出(612)用于对解压缩视频帧进行优化的输出QP。在已导出输出QP之后,视频优化器可以通过基于与所导出的输出QP相对应的量化设置对解码(解压缩)视频帧进行编码(压缩),来优化(614)该解码(解压缩)视频帧。该优化可以修改解压缩视频帧,从而尽可能多地减小压缩视频帧的字节大小,而且同时将感觉质量下降限制于可控制的水平。视频优化器可以将优化视频帧传输(616)至目的地。然后,该方法可以结束(618)。图7是图示了图1的示例性系统中的示例性质量感知视频优化器108的另一实施例的框图。图7中的系统具有与图2中的组件类似的组件,除了在图7中,视频优化器108 具有用于补偿可在优化期间引入的字节大小扩大的扩大防止模块710。图7中的视频优化器108的所示配置仅是示例性的,并可以被修改为提供分立的元件或将多个元件组合为单个元件,并且可以被提供为硬件和软件的任何组合。质量感知视频优化应用压缩反馈以防止扩大
可以发生如下情形其中视频流(202)的输入视频帧中的至少一些的QPlnput值为高,并因此QP调整模块220可以针对这些帧选择负Δ QP值,以保持视频流的原始感觉质量。高 QPlnput值指示输入视频帧(202)在其原始压缩期间已经丢失大量信息。在质量感知视频优化过程期间,不期望另外丢弃来自输入视频帧的更多信息。QP调整模块220可以选择用于导出低QPcxltput值的负AQP值,从而保持视频流的原始感觉质量。然而,负△ QP值和低QPftltput 值可以扩大视频流的字节大小。尽管字节大小扩大的程度可能较小,但是通常不期望提高视频流的字节存储需求。扩大防止模块710可以利用反馈机制来调整任何潜在扩大的AQP值。在一些实施例中,对于当前正在处理的视频流,扩大防止模块710可以利用以下补偿函数,该补偿函数考虑了到目前为止编码的至少一些视频帧的总字节大小和到目前为止解码的至少一些视频帧的总子节大小。在一些实施例中,对于当前正在处理的视频流,扩大防止模块710可以利用以下补偿函数,该补偿函数考虑了到目前为止编码的所有视频帧的总字节大小和到目前为止解码的所有视频帧的总字节大小。补偿函数可以输出正值以补偿字节大小扩大。 然后,扩大防止模块710还可以基于字节大小扩大调整(补偿函数的输出)来调整AQP值, 以保持输入视频帧的原始感觉质量,同时避免或最小化字节大小扩大。对于要编码的每个视频帧,Δ QP可以被计算为例如 AQP = F (QPlnput) + D + CdnputBytes, OutputBytes)
如先前在这里所述,F是公开QPlnput与Δ QP之间的相关性的函数,并且参数D是指示要在重新量化期间引入的质量下降量的质量下降偏移。函数C是补偿函数。在一些实施例中,符号hputBytes (输入字节)表示先前针对当前正在处理的视频流而解码的至少一些帧的总字节大小,并且符号OutputBytes (输出字节)表示先前针对当前正在处理的视频流而编码的至少一些帧的总字节大小。在一些实施例中,符号hputBytes表示先前针对当前正在处理的视频流而解码的所有帧的总字节大小,并且符号OutputBytes表示先前针对当前正在处理的视频流而编码的所有帧的总字节大小。视频优化器108可以跟踪当前正在处理的视频帧流的hputBytes和OutputBytes。还可以从包含例如针对当前正在处理的视频帧流而到目前为止编码的视频帧的总字节大小和到目前为止解码的视频帧的总字节大小的数据库获得hputBytes和OutputBytes。如果未发生字节大小扩大,则补偿函数可以输出0值。在QP调整模块220已经基于QPlnput和质量下降偏移计算出AQP之后,扩大防止模块710可以基于字节大小扩大调整来调整AQP。然后,基于调整后的AQP,扩大防止模块710可以导出用于对正在处理的解压缩视频帧进行优化的QPaitpuP在一些实施例中,QP 调整模块220和扩大防止模块710可以被组合为一个组件。组合组件可以基于QPlnput、质量下降偏移和字节大小扩大调整来计算Δ QP,并且还使用AQP来导出用于对解压缩视频帧
进行优化的 ^*1 Output °组件的其余部分以与以上在图2中提供的组件类似的方式运行。扩大防止机制可以帮助保持已经在原始压缩期间丢失大量信息的视频流的原始感觉质量,同时尽可能多地减小视频流的字节大小。图8是图示了图7的实施例中的示例性处理流程的功能图。图8中的系统具有与图5中的组件类似的组件,除了在图8中,视频优化器108提供了用于在计算AQP时补偿字节大小扩大的扩大防止模块710。在不脱离示例性实施例的情况下,可以更改该示例性处理流程以删除步骤、改变步骤顺序或包括附加步骤。在已经计算出输入压缩视频帧的AQP之后,QP调整模块220将计算出的AQP 提供(802)给扩大防止模块710。扩大防止模块710可以检索历史字节大小数据或历史扩大数据。历史字节大小数据可以包括例如由视频优化器108保存或在数据库中保存的 InputBytes (先前针对当前正在处理的视频帧流而解码的所有或一些帧的总字节大小)和 OutputBytes (先前针对当前正在处理的视频帧流而编码的所有或一些帧的总字节大小)。 历史扩大数据可以包括例如已经在当前正在处理的视频帧流的一些帧的视频优化期间引入的字节大小扩大。基于历史字节大小数据或历史扩大数据,扩大防止模块710可以基于由QP调整模块220提供的Δ QP来估计要在视频优化期间引入的字节大小扩大。然后,扩大防止模块710可以通过补偿所估计出的字节大小扩大来调整AQP。调整后的AQP可以帮助保持输入压缩视频帧的原始感觉质量,同时尽可能多地减小视频帧的字节大小。基于调整后的Δ QP,扩大防止模块710可以导出与传入的QPlnput相对应的QPQutput,并将QPftjtput 转发(506)至编码器230。通信流程的其余部分与以上在图5中提供的通信流程类似。图9是表示了质量感知视频优化的另一示例性方法的流程图。在不脱离示例性实施例的情况下,可以更改示例性处理流程以删除步骤、改变步骤顺序或包括附加步骤。
在接收到(902 )压缩视频帧之后,视频优化器对视频帧进行解码(解压缩)(904 ), 并从解码(解压缩)视频帧中提取(906 )输入QP值。此外,视频优化器可以基于对编码编解码器(输出视频压缩格式)与解码编解码器(输入视频压缩格式)不同的确定,将输入QP值从解码QP尺度转换(908)为编码QP尺度。该转换考虑输入和输出压缩格式(编解码器)之间的差异。如果编码编解码器与解码编解码器相同,则不转换输入QP值或者转换后的输入 QP值与所述输入QP值相同。在步骤910,视频优化器还可以获取质量下降偏移,其指示要在对解压缩视频帧进行优化期间引入的质量下降量。如果要最小化质量下降,则可以将质量下降偏移的缺省值设置为0。可以基于例如对优化视频的历史数据的分析来获得质量下降偏移。视频优化器还可以基于当前正在处理的视频流的历史数据来获得(912)字节大小扩大调整。历史数据可以包括视频流的历史字节大小数据或历史扩大数据。历史字节大小数据可以包括例如先前针对视频流而解码的所有或一些帧的总字节大小以及先前针对视频流而编码的所有或一些帧的总子节大小。历史扩大数据可以包括例如已经在当前处理视频帧流的一些帧的视频优化期间引入的字节大小扩大。在一些实施例中,可以从数据库检索历史数据。字节大小扩大调整可以补偿要在对解压缩视频帧进行优化期间引入的字节大小扩大。如果未引入字节大小扩大,则可以将字节大小扩大调整的缺省值设置为0。基于转换后的输入QP、质量下降偏移和字节大小扩大调整,视频优化器可以计算 Δ QP。△ QP与用于对解压缩视频帧进行优化的、输入QP和输出QP之间的差异相对应。然后,视频优化器可以基于Δ QP来导出(914)输出QP。备选地,视频优化器可以首先基于转换后的输入QP和质量下降偏移来计算AQP, 并且然后基于字节大小扩大调整来调整Δ9Ρ。基于调整后的Δ9Ρ,视频优化器可以导出 (914)用于对解压缩视频帧进行优化的输出QP。在已导出输出QP之后,视频优化器可以通过基于与所导出的输出QP相对应的量化设置对解码(解压缩)视频帧进行编码(压缩),来优化(916)解码(解压缩)视频帧。该优化可以修改解压缩视频帧,从而尽可能多地减小压缩视频帧的字节大小,而且同时将感觉质量下降限制于可控制的水平。视频优化器可以将优化视频帧传输(918)至目的地。然后, 该方法可以结束(920)。这里公开的方法可以被实现为计算机程序产品,S卩,有形体现在信息载体中(例如,有形体现在机器可读存储器件中以由数据处理设备(如可编程处理器、计算机或多个计算机)执行或者以便控制所述数据处理设备的操作)的计算机程序。计算机程序可以是以任何形式的编程语言编写的,该编程语言包括编译或解译后的语言,并且,计算机程序可以
14是以任何形式布置的,该形式包括作为独立程序或作为模块、组件、子例程或适于用在计算环境中的其他单元。计算机程序可以被布置为在一个计算机上执行或者在处于一个站点处或分布在多个站点上且由通信网络互连的多个计算机上执行。这里公开的方法的部分或全部还可以由专用集成电路(ASIC)、现场可编程门阵列 (FPGA)、复杂可编程逻辑器件(CPLD)、印制电路板(PCB)、数字信号处理器(DSP)、可编程逻辑组件和可编程互连的组合、单个中央处理单元(CPU)芯片、在母板上组合的CPU芯片、通用计算机、或者能够执行这里公开的质量感知视频优化的设备或模块的任何其他组合来实现。在以上说明书中,已参照具体示例性实施例描述了本发明。然而,显而易见,在不脱离所跟随的权利要求中阐述的本发明的更宽精神和范围的情况下,可以进行各种修改和改变。说明书和附图相应地被视为说明性的而非限制性的。在考虑了这里公开的本发明的说明书和实施的情况下,其他实施例对于本领域技术人员来说显而易见。
1权利要求
1.一种计算机实现的方法,包括 接收编码视频帧;对接收到的编码视频帧进行解压缩;从解压缩视频帧中提取第一量化参数(QP),其中,第一 QP与最初用于对编码视频帧进行压缩的量化设置相对应;基于所述第一 QP来获取Δ QP ;基于所述△ QP和所述第一 QP来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;基于所述第二 QP来对解压缩视频帧进行压缩;以及提供压缩视频帧。
2.根据权利要求1所述的方法,还包括确定接收到的编码视频帧的压缩格式是否与要用于对解压缩视频帧进行压缩的压缩格式不同;基于所述确定,将所述第一 QP从输入QP尺度转换为输出QP尺度,其中,所述输入QP 尺度与接收到的编码视频帧的压缩格式相对应,并且所述输出QP尺度与所述要用于对解压缩视频帧进行压缩的压缩格式相对应;以及基于转换后的第一 QP和所述△ QP来获取所述第二 QP。
3.根据权利要求2所述的方法,其中,转换所述第一QP还基于所述输入QP尺度与所述输出QP尺度之间的映射。
4.根据权利要求1所述的方法,其中,获取ΔQP还基于所述第一 QP与所述Δ QP之间的映射。
5.根据权利要求1所述的方法,其中,获取AQP包括 如果所述第一 QP的值低于阈值,则针对所述Δ QP选择正值。
6.根据权利要求1所述的方法,其中,获取AQP包括 如果所述第一 QP的值高于阈值,则针对所述Δ QP选择负值。
7.根据权利要求1所述的方法,还包括获取质量下降偏移,所述质量下降偏移用于控制要在对解压缩视频帧进行压缩期间引入的视频质量下降的量;以及基于所述质量下降偏移、所述第一 QP和所述△ QP来获取所述第二 QP。
8.根据权利要求7所述的方法,其中,获取质量下降偏移能够基于对压缩视频的历史数据的分析。
9.根据权利要求7所述的方法,其中,如果在压缩期间引入最小质量下降,则能够将所述质量下降偏移的缺省值设置为0。
10.根据权利要求1所述的方法,还包括基于先前解压缩的帧的总字节大小与先前压缩之后的帧的总字节大小之间的比较来获取扩大调整,其中,接收到的编码视频帧和先前解压缩的帧是包括多个视频帧的序列的一部分;以及基于所述△ QP、所述第一 QP和所述扩大调整来获取所述第二 QP。
11.一种计算机实现的方法,包括对作为包括多个视频帧的序列的一部分的接收到的编码视频帧进行解压缩; 从解压缩视频帧中提取第一量化参数(QP),其中,第一 QP与最初用于对编码视频帧进行压缩的量化设置相对应;基于所述第一 QP来获取Δ QP ;基于关于所述序列的历史数据来获取扩大调整;基于所述Δ QP和所述扩大调整来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;以及基于所述第二 QP来对解压缩视频帧进行压缩。
12.根据权利要求11所述的方法,其中,关于所述序列的历史数据包括已经在对序列帧的至少一些进行压缩期间引入的字节大小扩大。
13.根据权利要求11所述的方法,其中,关于所述序列的历史数据包括先前解压缩的序列帧的至少一些的字节大小和先前压缩之后的序列帧的至少一些的字节大小。
14.根据权利要求11所述的方法,其中,获取扩大调整基于先前解压缩的序列帧的至少一些的字节大小与先前压缩之后的序列帧的至少一些的字节大小之间的比较。
15.一种视频优化器,包括解码器,其被配置为对接收到的编码视频帧进行解压缩,其中,解压缩视频帧包括与最初用于对编码视频帧进行压缩的量化设置相对应的第一量化参数(QP);QP调整模块,其被配置为基于第一 QP来获得△ QP并基于所述△ QP和所述第一 QP来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;以及编码器,其被配置为基于所述第二 QP来对解压缩视频帧进行压缩。
16.根据权利要求15所述的视频优化器,还包括逆量化器,其被配置为对接收到的编码视频帧进行解压缩并从解压缩视频帧中提取所述第一 QP。
17.根据权利要求15所述的视频优化器,其中,所述QP调整模块还被配置为获取压缩格式调整,所述压缩格式调整考虑接收到的编码视频帧的压缩格式与要用于对解压缩视频帧进行压缩的压缩格式之间的差异;基于所述压缩格式调整,将所述第一 QP从输入QP尺度转换为输出QP尺度,其中,所述输入QP尺度与接收到的编码视频帧的压缩格式相对应,并且所述输出QP尺度与所述要用于对解压缩视频帧进行压缩的压缩格式相对应;以及基于转换后的第一 QP和所述△ QP来获得所述第二 QP。
18.根据权利要求15所述的视频优化器,其中,所述QP调整模块还被配置为从包含所述输入QP尺度与所述输出QP尺度之间的映射的数据库获得所述压缩格式调整。
19.根据权利要求15所述的视频优化器,其中,所述QP调整模块还被配置为从包含所述第一 QP与所述AQP之间的映射的数据库获得所述AQP。
20.根据权利要求15所述的视频优化器,其中,所述QP调整模块还被配置为获取质量下降偏移,所述质量下降偏移用于控制要在对解压缩视频帧进行压缩期间引入的视频质量下降的量;以及基于所述质量下降偏移和所述△ QP来获得所述第二 QP。
21.根据权利要求20所述的视频优化器,其中,所述QP调整模块还被配置为从包含压缩视频的历史数据分析的数据库获取所述质量下降偏移。
22.根据权利要求15所述的视频优化器,还包括扩大防止模块,所述扩大防止模块被配置为基于先前解压缩的帧的总字节大小与先前压缩之后的帧的总字节大小之间的比较来获取扩大调整,其中,接收到的编码视频帧和先前解压缩的帧是包括多个视频帧的序列的一部分;以及基于所述△ QP、所述第一 QP和所述扩大调整来获取所述第二 QP。
23.根据权利要求15所述的视频优化器,还包括量化器,其被配置为通过将由所述第二 QP表示的量化设置应用于对解压缩视频帧的压缩来对解压缩视频帧进行压缩。
24.一种视频优化器,包括解码器,其被配置为对作为多个视频帧的序列的一部分的接收到的编码视频帧进行解压缩,其中,解压缩视频帧包括与最初用于对编码视频帧进行压缩的量化设置相对应的第一量化参数(QP);QP调整模块,其被配置为基于第一 QP来获取△ QP ;扩大防止模块,其被配置为基于关于所述序列的历史数据来获取扩大调整并基于所述 Δ QP和所述扩大调整来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;以及编码器,其被配置为基于所述第二 QP来对解压缩视频帧进行压缩。
25.根据权利要求M所述的视频优化器,其中,关于所述序列的历史数据包括已经在对序列帧的至少一些进行压缩期间引入的字节大小扩大。
26.根据权利要求M所述的视频优化器,其中,关于所述序列的历史数据包括先前解压缩的序列帧的至少一些的字节大小和先前压缩之后的序列帧的至少一些的字节大小。
27.根据权利要求M所述的视频优化器,其中,所述扩大防止模块还被配置为基于先前解压缩的序列帧的至少一些的字节大小与先前压缩之后的序列帧的至少一些的字节大小之间的比较来获取扩大调整。
28.一种存储指令的计算机可读介质,所述指令在被执行时使得计算机执行用于视频优化的方法,所述方法包括接收编码视频帧;对接收到的编码视频帧进行解压缩;从解压缩视频帧中提取第一量化参数(QP),其中,第一 QP与最初用于对编码视频帧进行压缩的量化设置相对应;基于所述第一 QP来获取Δ QP ;基于所述△ QP和所述第一 QP来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;基于所述第二 QP来对解压缩视频帧进行压缩;以及提供压缩视频帧。
29.一种存储指令的计算机可读介质,所述指令在被执行时使得计算机执行用于视频优化的方法,所述方法包括对作为多个视频帧的序列的一部分的接收到的编码视频帧进行解压缩;从解压缩视频帧中提取第一量化参数(QP),其中,第一 QP与最初用于对编码视频帧进行压缩的量化设置相对应;基于所述第一 QP来获取Δ QP ;基于关于所述序列的历史数据来获取扩大调整;基于所述Δ QP和所述字节大小扩大调整来获取第二 QP,其中,所述第二 QP与用于对解压缩视频帧进行压缩的量化设置相对应;以及基于所述第二 QP来对解压缩视频帧进行压缩。
全文摘要
一种计算机实现的方法,包括接收编码视频帧;对接收到的编码视频帧进行解压缩;从解压缩视频帧中提取第一量化参数(QP);以及基于第一QP来获取ΔQP。所述方法还包括基于所述ΔQP和所述第一QP来获取第二QP;基于所述第二QP来对解压缩视频帧进行压缩;以及提供压缩视频帧。所述第一QP与最初用于对编码视频帧进行压缩的量化设置相对应。并且,所述第二QP与用于对解压缩视频帧进行压缩的量化设置相对应。
文档编号H04N7/26GK102450014SQ201080023636
公开日2012年5月9日 申请日期2010年3月31日 优先权日2009年3月31日
发明者彭纳 A., 泰德曼 J., A. 梅利尼克 M. 申请人:拜特移动网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1