基于变换系数直方图的视频速率控制的制作方法

文档序号:7850238阅读:120来源:国知局
专利名称:基于变换系数直方图的视频速率控制的制作方法
基于变换系数直方图的视频速率控制
背景技术
视频速率控制动态地调节经编码的视频质量以便帮助在给定变化的联网条件中提供满意的用户体验。一般而言,给视频编码器将恒定比特率或局部恒定的比特率与变化的联网条件匹配的任务。由运动或者电影摄像改变造成的场景复杂度的改变,可以导致与基线明显的偏差,从而预测的压缩率将导致降级的视频质量。

发明内容
提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
使用通过变换的视频帧产生的变换系数的直方图信息来确定量化因子。该直方图用来估计当前正处于编码过程中的视频帧的经编码的帧大小。基于该直方图的信息为当前视频帧调节在视频编码的量化步骤中使用的量化因子。选择合适的量化因子有助于响应视频帧中的改变(例如,运动、场景变化),从而提供了对视频显示质量的平稳调节。针对所需的经编码的帧大小的长度来平衡该直方图。直方图中的截止阈值与对量化因子的不同选择相关联,并且那些阈值以上或者以下的点的比率用来估计经编码的帧的大小。历史趋势还可以用来调节相关性公式的系数从而提高计算的准确性。


图I示出计算机的计算机架构;图2示出将直方图的使用合并到视频速率控制中的视频编码系统;图3示出压缩率对比量化步长值以及压缩率对比非零系数的百分比的示例图;图4示出使用变换系数的直方图来调节量化因子的示例性基于块的帧内/帧间压缩路径;以及图5示出使用通过未量化的变换系数创建的直方图信息来更新量化因子的过程500。
具体实施例方式现在参考其中相同的标号代表相同的元素的附图,描述各实施例。具体地,图I和相应的讨论旨在提供对在其中可以实现各实施例的合适计算环境的简要、概括描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。也可使用其他计算机系统配置,包括多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等等。也可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。现在参考图1,将描述在各实施例中利用的计算机100的说明性计算机架构。图I所示的计算机架构可被配置为台式计算机、服务器或移动计算机,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9 (“RAM”)和只读存储器(“ROM”)11在内的系统存储器7、以及将存储器耦合至CPU 5的系统总线12。基本输入/输出系统存储在ROM 11中,它包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机100还包括用于存储操作系统16、应用程序和其他程序模块的大容量存储设备14,这将在以下更为详细地描述。大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接到CPU
5。大容量存储设备14及其相关联的计算机可读介质为计算机100提供非易失性存储。虽然此处包含的对计算机可读介质的描述针对诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由计算机100访问的任何可用介质存储设备。
此处所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器7、可移动存储和不可移动存储都是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPR0M)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备100访问的任何其他介质。任何这样的计算机存储介质可以是设备100的一部分。计算设备100还可具有输入设备28,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。也可包括输出设备28,诸如显示器、扬声器、打印机等等。上述设备是示例且可以使用其他设备。此处所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。根据各实施例,计算机100使用通过诸如因特网等网络18至远程计算机的逻辑连接在联网环境中操作。计算机100可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其他类型的网络和远程计算机系统。计算机100还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图I中示出)。类似地,输入/输出控制器22可以为显示屏28、打印机或其他类型的输出设备提供输出。显示器28被设计成在视频会议期间显示视频,诸如视频馈送。如前简述,多个程序模块和数据文件可以存储在计算机100的大容量存储设备14和RAM 9内,包括适于控制联网计算机的操作的操作系统16,如华盛顿州雷蒙德市的微软公司的WINDOWS 7 操作系统。大容量存储设备14和RAM 9还可存储一个或多个程序模块。具体地,大容量存储设备14和RAM 9可以存储一个或多个应用程序。应用程序之一是会议应用24,诸如视频会议应用。一般而言,会议应用24是用户在参与两个或更多个用户之间的视频会议时使用的应用。应用还可涉及编码视频的其他程序。例如,应用可编码向web浏览器传递的视频。视频管理器26被配置为部分地基于当前视频帧未量化的变换系数的直方图来确定当前视频帧的量化因子。变换系数的直方图用来估计当前视频帧经编码的帧大小。针对经编码的帧大小的所需的大小来平衡该直方图。直方图中的截止阈值与对量化因子的不同选择相关联,并且那些阈值以上或者以下的点的比率被用来估计经编码的帧的大小。历史趋势还可被用来调节相关性公式的系数从而提高计算的准确性。根据一个实施例,所选择的量化因子导致与先前产生的其他经编码的帧大小类似的经编码的帧大小。图2示出将直方图的使用合并到视频速率控制中的视频编码系统。如示,系统200包括显示器28、视频管理器26、输入205、视频应用220、数据存储240、以及其他应用230。视频管理器26可以如图2所示在视频应用220中实现,或者可以如图I所示从应用220外部地实现。为了便于与视频管理器26的通信,可实现在图2中示为回调代码210的一个或多个回调例程。通过使用回调代码210,视频管理器26可查询编码视频中使用的额外信息。·例如,视频管理器26可以向诸如存储器240等缓冲器或某个其他位置请求视频。还可提供与视频应用的特征有关的其他信息。显示器28被配置为将经编码的视频的可视显示提供给用户。输入205被配置为从诸如摄像机、键盘、鼠标、触摸屏、和/或某个其他输入设备等一个或多个输入源接收输入。例如,输入可以来自支持诸如(正、¥64、720 、10801、1080 等一种或多种视频分辨率的摄像机。存储器240被配置为存储视频应用220可以在操作期间利用的数据。视频管理器26还可被耦合至其他应用230从而使该视频数据还可被提供给其他应用和/或从其他应用接收。例如,视频管理器26可被耦合至另一视频应用和/或联网站点。如示,视频管理器26包括视频速率控制器225,示出在视频帧的编码过程中使用的示例性步骤212、214、216和218。在编码过程期间执行的步骤可取决于所执行的编码的类型来改变。与标准编码方案(例如H. 26*和WMV*)比较,在编码过程期间包括了直方图阶段216。直方图阶段216被用来确定量化器218使用的量化因子。在执行初步的功能之后并且有时是在量化器218之前,可确定或不确定对量化因子“QP”的估计。例如,可以使用先前编码的历史信息以及试探法来确定QP。现在将描述示例性编码过程的一部分。当前帧212被接收并且被传递到变换过程214。取决于所利用的编码过程,帧可被拆分成像素块,诸如8x8、4x4等等。根据一个实施例,变换是离散余弦变换(“DCT”)。DCT是将块(空间信息)转换成DCT系数块的一类频率变换,DCT系数是频率信息。DCT操作本身是无损的或几乎无损的。然而,与原始像素值相比,DCT系数压缩起来更高效,因为大部分重要信息集中在低频系数中。修改所得DCT变换以将所得AC系数映射到阶段216的直方图。在收集到系数之后,视频速率控制器225分析该直方图以确定正被处理的当前帧估计的经编码的帧大小。然后使用估计的经编码的帧大小来更新/确定将在量化过程期间使用的量化因子(见图5更详细的描述)。量化器218使用所确定的量化因子来量化经变换的系数。一般而言,量化因子被应用于每个系数,这类似于将每个系数除以相同值并舍入。例如,若系数值为130且量化因子为10,则经量化的系数值为13。由于低频DCT系数往往具有更高的值,因此量化导致精度的损失,但是不会完全损失关于系数的信息。另一方面,由于高频DCT系数往往具有零或接近零的值,因此高频系数的量化通常导致连续的零值区域。基于当前帧调节量化因子旨在为用户提供更一致的视频体验。图3示出压缩率对比量化步长值以及压缩率对比非零系数的百分比的示例图。图310示出压缩率对比量化步长值的图。图310包括了 12个不同视频的绘图。可以看到,针对压缩率来绘出量化步长值不能导致一致或总体的趋势。此外,可以看到某些视频之间的差异明显。图350示出基于未量化的变换值的直方图的压缩率对比非零系数的百分比的示图。图350包括了也在图310中绘出的12个不同视频的绘图。参考图350,可以看到非零系数百分比和最终经编码的大小之间的相关性。这一关系也是线性的。尽管图350的趋势线有一些误差余量,但是它明显小于图310。每像素比特数的值可近似为特定量化因子的非 零系数比率的仿射函数·Μ> = k*^Mi+c θ根据一个实施例,尽管可使用训练数据和试
iV所冇系数
探法来近似常数k和C,但是可以跨视频馈送(诸如视频会议)的期间连续调节这些值。这帮助了确保那些因子的作用不直接与非零系数比率有关(例如,DC-面复杂度、通过频率域预测来保存,等等)。根据一个实施例,已经发现在示例性视频会议中k的值大约为I. 1875。图4示出使用变换系数的直方图来调节量化因子的示例性基于块的帧内/帧间压缩路径。编码器系统接收包括当前帧的视频帧序列,并产生经压缩的视频作为输出。所示的编码器系统压缩预测帧和关键帧。图4示出了关键帧通过编码器系统的路径410以及前向预测帧的路径470。该编码器系统的许多组件既用于压缩关键帧也用于压缩预测帧。由那些组件执行的确切操作可以依据正在被压缩的信息的类型而变化。一般而言,关键帧对比特率的贡献比预测帧更大。在低或中比特率应用中,关键帧可能成为性能瓶颈。预测帧(也被称为P帧、用于双向预测的b帧、或帧间编码帧)按照从一个或多个其他帧进行的预测(或差)来表示。预测残差是所预测的和原始帧之差。相反,关键帧(也被称为i帧、帧内编码帧)是在不参考其他帧的情况下压缩的。在当前帧420是前向预测帧时,运动估计器425估计当前帧420的宏块或其他像素集相对于参考帧的运动,其中参考帧是可缓冲在帧存储中的重构的先前帧。在替换实施例中,参考帧是后帧,或者当前帧是双向预测的。运动估计器425可按照像素、1/2像素、1/4像素或其他增量来估计运动,并可在逐帧基础或其他基础上切换运动估计的分辨率。运动估计的分辨率在水平和垂直上可以相同或不同。运动补偿器430将运动估计信息应用于重构的先前帧以形成经运动补偿的当前帧。一般而言,运动估计器425和运动补偿器435可被配置成应用任何类型的运动估计/补偿。频率变换器435将空间域视频信息转换为频率域(即频谱)数据。对于基于块的视频帧,频率变换器435向像素数据或预测残差数据的各块应用DCT或DCT的变体,从而产生DCT系数块。或者,变换器435应用诸如傅立叶变换等另一常规频率变换或使用小波或子带分析。频率变换器435可被配置成向各帧应用8χ8、8χ4、4χ8或其他大小的频率变换(例如,DCT) ο
变换系数直方图步骤440被配置为部分地基于通过当前视频帧未量化的变换系数创建的直方图来调节当前视频帧的量化因子。变换系数的直方图用来确定估计的当前视频帧经编码的帧大小。针对经编码的帧大小的所需的大小来平衡该直方图。直方图中的截止阈值与对量化因子的不同选择相关联,并且那些阈值以上或者以下的点的比率用来估计经编码的帧的大小。如直方图步骤440所确定的,基于估计的经编码的帧大小来选择量化因子。量化445使用由直方图440确定的量化因子来量化频谱数据系数块。当后续的运动估计/补偿需要重构的当前帧时,参考帧重构器447对量化的频谱数据系数执行反量化。频率反变换器然后执行频率变换器435的操作的逆操作,从而产生重构的预测残差(对于预测帧)或重构的关键帧。在当前帧420是关键帧时,取重构的关键帧作为重构的当前帧(未示出)。如果当前帧420是预测帧,则将重构的预测残差加到经运动补偿的当前帧以形成重构的当前帧。帧 存储可被用于缓冲重构的当前帧,以供在预测下一帧时使用。熵编码器450压缩量化器445的输出以及某些辅助信息(例如,运动信息、空间外插模式、量化步长)。典型的熵编码技术包括算术编码、差分编码、霍夫曼编码、游程长度编码、LZ编码、词典编码,和以上的组合。熵编码器450通常对不同种类的信息(例如,DC系数、AC系数、不同种类的辅助信息)使用不同的编码技术,并可从特定编码技术内的多个代码表中进行选择。熵编码器450将经压缩的视频信息置于缓冲器455中。一般而言,以恒定或相对恒定的比特率从缓冲器455中耗尽经压缩的视频信息,该信息被存储以用于以该比特率进行的后续流传送。现在参考图5,描述了使用未量化的变换系数的直方图信息来编码视频帧的说明性过程。当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(I)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑,及其任何组合来实现。图5示出使用通过未量化的变换系数创建的直方图信息来更新量化因子的过程500。在开始操作之后,过程流动至操作510,在该操作处接收用于处理的视频帧。在执行取决于架构和算法的任何初始功能之后,过程流动至操作520。在操作520,确定对将在量化操作期间使用的量化因子“QP”的估计。该估计的QP可以是任何选择的QP并且可对应于在不同压缩标准(即MPEG-1、MPEG-2、MPEG-4 ASP、
H.26*、VC-3、WMV7、WMV8、VP5、VP6、MJPEG等)中使用的QP值。例如,可使用历史信息和试探法确定QP。QP因子被用于减小变换系数的幅度以便提供对帧更压缩的表示。移动至操作530,将帧从一个域变换到另一个域。根据一个实施例,应用于帧的变换是DCT。流动至操作540,修改所得DCT以将所得AC系数映射到直方图。根据一个实施例,直方图跨与量化水平对应的所有值的范围,量化水平可以被或者可以不被分为各个柱在收集各系数之后,分析直方图以确定对量化因子的更新。移动到操作550,计算量化因子与非零系数的比率。每个可能的量化因子将系数分为两组(I)在量化步骤之后将被舍入到O的系数;以及(2)在量化步骤之后将不会被舍入到O的系数。根据一个实施例,创建其中在对应量化步骤之后将每个量化因子映射到非零系数与零系数的比率的表。流动至操作560,使用多参数多项式将该比率映射到经编码的每像素比特数值。已知帧大小(即图像大小),则那些值可被映射到预测的经编码的帧大小。转到操作570,更新初始估计的量化因子以反映在操作540-560获得的信息。根据一个实施例,修改量化因子以使得经编码的帧大小与先前经编码的帧大小相似。将经编码的帧大小保持在可接受值的范围内帮助维护经编码的视频质量水平而不超出缓冲器。相比于仅使用历史,基于当前帧调节量化因子帮助更快地对场景复杂度中的改变做出反应,从 而导致更好的终端用户体验、更少的丢失帧,并且QP水平信息波动量的减少被用来提高初始的量化因子估计。移动至操作580,当前帧用更新的量化因子来量化并且接着进行熵编码。过程然后流动至结束操作并且返回至处理其他动作。以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。
权利要求
1.一种用于在编码视频帧期间确定量化因子的方法,包括 接收包括像素的视频帧; 将变换应用到所述视频帧;其中所述变换是产生变换系数的频率变换; 使用经变换的视频帧的变换系数创建直方图;以及 使用所述直方图的信息确定量化因子;所述量化因子在量化变换系数期间使用。
2.如权利要求I所述的方法,其特征在于,还包括在视频帧被编码之前使用直方图估计视频帧经编码的大小。
3.如权利要求2所述的方法,其特征在于,所述视频帧是正在被编码的过程中的当前视频帧,并且其中创建直方图包括通过当前视频帧的变换系数来创建直方图。
4.如权利要求2所述的方法,其特征在于,其中创建直方图包括使用截止阈值以确定量化因子。
5.如权利要求2所述的方法,其特征在于,还包括使用历史趋势来调节确定的量化因子。
6.如权利要求2所述的方法,其特征在于,还包括在量化之后使用不同的量化值计算非零系数的比率,以及将非零系数比率映射到经编码的每像素比特数值,并且其中确定量化因子包括修改在创建直方图之前确定的估计的量化因子。
7.一种用于确定量化因子的系统,包括 处理器和计算机可读介质; 存储在所述计算机可读介质上并在所述处理器上执行的操作环境; 在所述处理器上操作并被配置为执行任务的视频应用以及视频管理器,所述任务包括 接收包括像素的视频帧,其中所述视频帧是正在被编码的过程中的当前视频帧; 将频率变换应用到所述视频帧;其中所述变换产生变换系数; 在量化所述变换系数之前,使用所述变换系数创建直方图;以及 使用所述直方图的信息确定量化因子,以及确定所述视频帧的估计的经编码的大小。
8.如权利要求7所述的系统,其特征在于,还包括在量化之后使用不同的量化值确定非零AC系数的比率;以及将所述比率映射到经编码的每像素比特数值。
9.如权利要求7所述的系统,其特征在于,其中确定量化因子包括更新在创建直方图之前确定的估计的量化值。
10.一种具有用于确定量化因子的计算机可执行指令的计算机存储介质,包括 接收包括像素的视频帧; 将频率变换应用到所述视频帧;所述变换产生变换系数; 估计将在量化所述变换系数期间使用的量化因子; 在量化所述变换系数之前,使用所述变换系数创建直方图; 在编码所述视频帧之前使用所述直方图估计视频帧经编码的大小;以及 使用所述直方图的信息更新量化因子。
全文摘要
使用通过变换的视频帧产生的变换系数的直方图信息来确定量化因子。该直方图用来估计当前正处于被编码过程中的视频帧的经编码的帧大小。基于该直方图的信息为当前视频帧调节在视频编码的量化步骤中使用的量化因子。针对所需的经编码的帧大小的长度来平衡该直方图。直方图中的截止阈值与对量化因子的不同选择相关联,并且那些阈值以上或者以下的点的比率用来估计经编码的帧的大小。
文档编号H04N1/387GK102948147SQ201180029273
公开日2013年2月27日 申请日期2011年6月2日 优先权日2010年6月17日
发明者R·博斯科维奇, 钱挺 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1