专利名称:使用参数方程式进行视频编码的速率控制技术的利记博彩app
技术领域:
本发明涉及数字视频处理,且更具体而言,涉及对视频序列的速率受控编码。
背景技术:
数字视频功能可包含于各种各样的装置中,包括数字电视、数字直接广播系统、无线通信装置、个人数字助理(PDA)、膝上型计算机、桌上型计算机、数字照相机、数字录制装置、移动电话或卫星无线电电话、及类似装置中。数字视频装置可在形成、修改、传输、存储、记录及播放全动态视频序列方面提供优于常规模拟视频系统的显著改良。
人们已制订了若干种用于编码数字视频序列的不同视频编码标准。例如,动画专家组(the Moving Picture Experts Group,MPEG)已开发出若干种标准,包括MPEG-1、MPEG-2及MPEG-4。其它标准包括国际电信联盟(International TelecommunicationUnion,ITU)H.263标准、由位于Cupertino California的Apple Computer公司开发的QuickTimeTM技术、由位于Redmond,Washington的Microsoft公司开发的Video forWindowsTM、由Intel公司开发的IndeoTM、来自位于Seattle,Washington的RealNetworks公司的RealVideoTM、及由SuperMac公司开发的CinepakTM。此外,新标准也在持续地涌现及演进,包括ITU H.264标准及若干种专属标准。
许多视频编码标准可通过以压缩方式对数据编码来实现提高的视频序列传输速率。压缩可减小需要传输的数据总量以便有效地传输视频帧。例如,大多数视频编码标准利用图形及视频压缩技术,所述图形及视频压缩技术设计成利于在一无需压缩即可获得的变窄带宽上传输视频及图像。例如,MPEG标准及ITU H.263及ITU H.264标准支持那些利用各顺序性视频帧之间相似性(称作时间或帧间相关)来提供帧间压缩的视频编码技术。此种帧间压缩通常是通过运动估计及运动补偿编码技术来实现。此外,某些视频编码技术可利用帧内相似性(称作空间或帧内相关)来进一步压缩视频帧。
人们已开发出若干种用于视频编码的速率控制技术。速率控制技术对于为利于视频序列的实时传输而言尤其重要,但也可用于非实时编码设定。对于速率控制,所述编码技术动态地调整每帧所编码的位数量。具体而言,速率控制可限制每帧所编码的位数量,以便确保可以既定速率有效地对视频序列实施编码并因此在所分配带宽上传输。如果所述编码技术不可响应于视频序列的景物变化,则视频序列实时传输的位速率可随着景物变化而显著变化。因此,为界定一基本恒定的位速率,在编码期间动态地调整每帧的位数量。
一种实现速率受控编码的方法是容许调整在视频编码过程中所用的量化参数(QP)。QP界定在视频编码期间出现的量化,并直接影响每秒所编码的位数量。当QP增大时,保存较少的数据且视频编码的质量可能会降低。而当QP减小时,保存较多的数据且视频编码的质量提高。然而,如果QP过小,则每秒所编码的位数量可能会超出所分配的带宽,并损害在该有限大小的带宽内传送帧的能力。通过以一动态方式选择QP,可使视频帧传输的位速率基本恒定。对于某些视频应用而言,非常期望位速率具有小的变化。
发明内容
本发明说明可改良视频编码的速率控制技术。具体而言,所述速率控制技术是利用每帧所编码的位数量与量化后视频块的非零系数数量之间的关系。量化后帧的视频块的非零系数数量称作rho(ρ)。ρ的值大体正比于在视频编码中所用位的数量。为实现速率受控的视频编码,本发明利用ρ与一量化参数(QP)之间的关系。更具体而言,本发明利用参数方程式将预测的ρ的值映射至一QP。该参数方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表欧拉(Euler)数(常数2.71828182845904523536028747135…),ρ代表预测的在量化后帧视频块的非零系数数量,nc代表以所考虑的单位表示的系数数量(例如一帧或视频块中系数的数量),且f(qp)是该量化参数的参数函数。例如,f(qp)可包含一简单的多项式或指数函数。在某些情形中,可使用不同的常数来取代欧拉数(e),例如值2或者可能其它常数(k)。
在速率受控视频编码过程中,可根据用于界定f(qp)的可编程变量将该参数方程式初始化。然后,可针对所选QP值来计算ρ的实际值(实际ρ)。然后,可调整用于界定f(qp)的可编程变量,以便更佳地逼近预测的ρ与QP之间的关系。所述技术可应用于视频块级速率控制(例如宏块级)、或者帧级速率控制。在一个较佳实施方案中,应用视频块级速率控制,但在帧级调整该参数方程式中的变量。
在一个实施例中,本发明提供一种视频编码装置,其包括一存储视频序列的存储器及一编码器,该编码器使用参数方程式来选择用于对该视频序列进行速率受控视频编码的量化参数(QP),该参数方程式将量化后非零系数的预测数量(预测的ρ)映射至量化参数(QP)。
在另一实施例中,本发明提供一种速率受控视频编码方法,其包括使用一将量化后非零系数的预测数量(预测的ρ)映射至量化参数(QP)的参数方程式来选择一量化参数(QP),并使用该所选QP对一个或多个视频块实施编码。
本文所述的这些及其它技术可按硬件形式、软件形式、固件形式、或其任一组合形式实施于数字视频装置中。如果以软件形式实施,则该软件可在例如数字信号处理器(DSP)等可编程处理器中执行。在此种情形中,用于执行所述技术的软件可首先存储于计算机可读媒体中、加载于该可编程处理器中并在该可编程处理器中执行,以在数字视频装置中实施有效的速率受控编码。
各个实施例的其它详情将在附图及下文说明中提及。根据本说明及图式及根据权利要求书,将易知其它特征、目的及优点。
图1是一方块图,其显示一其中源数字视频装置向接收数字视频装置传输经编码的视频数据序列的实例性系统; 图2是根据本发明一实施例的数字视频装置的实例性方块图; 图3是一流程图,其显示一种使用一将ρ的预测值映射至量化参数(QP)的参数方程式进行帧级速率控制的技术; 图4是一流程图,其显示一种使用一将ρ的预测值映射至量化参数(QP)的参数方程式进行视频块级速率控制的技术; 图5是一流程图,其显示一种使用一在帧级加以调整的参数方程式进行视频块级速率控制的技术。
具体实施例方式 本发明说明可用于改良视频编码的速率控制技术。所述技术可与各种各样的视频编码标准(例如MPEG-4标准,ITU H.263,ITU H.264标准或其它标准)中的任一种标准一起使用。所述技术利用每帧所编码的位数量(编码速率)与量化后帧的视频块的非零系数数量之间的关系。量化后帧的视频块的非零系数数量称作rho(ρ)。ρ的值大体正比于在视频编码中所用的量化参数(QP)。相应地,本发明说明一种利用ρ与QP之间的关系来实现速率受控视频编码的技术。
更具体而言,本发明中所述的技术利用一将ρ的预测值映射至一量化参数(QP)的参数方程式。由于ρ大体正比于编码速率,因而可界定一所需的ρ并用其来选择一应产生所需编码速率的所期望QP。可将该参数方程式初始化,但然后在视频编码过程中加以调整,以使由该参数方程式所界定的预测的ρ更佳地逼近自一所选QP得到的实际ρ。通过此种方式,在视频编码过程中动态地调整该参数方程式,以使所选QP更精确地映射至实际ρ并因此更精确地得到所需编码速率。
用于界定预测的ρ的参数方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表一通常称作欧拉(Euler)数(2.71828182845904523536028747135...)的算术常数,ρ代表预测的量化后帧的视频块的非零系数数量,nc代表以所考虑的单位表示的系数数量(例如一帧或视频块中系数的数量),且f(qp)是该量化参数的参数函数。例如,f(qp)可包含一简单的多项式或指数函数。在某些情形中,可使用不同的常数来取代e的值,例如使用值2或者更一般而言使用另一常数(k)。总之,可适用的f(qp)的实例包括如下 f(qp)=α×qp, f(qp)=α×qp+β, f(qp)=α×qp2+β×qp+δ, 或者指数函数 f(qp)=α×qpβ。
在这些实例中,qp代表量化参数(在本文中也称作QP)。
变量α、β及δ包含可编程参数,这些可编程参数可在速率控制技术过程中加以调整,以更佳地逼近该参数方程式中ρ与qp之间的关系。具体而言,在编码过程期间,调整所述可编程参数,以使对于不同的QP,预测的ρ实质上对应于实际ρ。本文中阐述可由本发明的技术使用的参数方程式的若干实例,当然许多其它参数方程式也可适用。
图1是一方块图,其显示一其中源装置12通过通信链路15向接收装置14传输经编码视频数据序列的实例性系统10。源装置12与接收装置14二者均为数字视频装置。具体而言,源装置12依据一种可利用速率受控视频编码的视频标准(例如MPEG-4标准,ITU H.263,ITU H.264标准或各种各样其它标准中的任一种标准)对视频数据编码。如下文所更详细说明,系统10的装置12、14中的一者或二者均执行速率控制技术,以便改良视频编码过程。此等速率控制技术尤其适用于在例如无线通信链路等有限带宽通信链路15上实时传输视频序列。
通信链路15可包括无线链路、实体传输线、光纤、基于数据包的网络,例如局域网、广域网、或例如因特网等全球网络、公共交换电话网络(PSTN)、或者任何其它能够传送数据的通信链路。因此,通信链路15代表用于自源装置12向接收装置14传输视频数据的任何适合的通信媒体、或者可能不同网络及链路的集合。然而,如上所述,通信链路15可能具有有限的带宽,从而使速率控制对于在链路15上实时传输视频序列而言极其重要。该有限的带宽可能归因于对通信链路15的实体约束、或者可能归因于由通信链路15的提供商所施加的服务质量(QoS)限制。
源装置12可包含任一能够编码及传输视频数据的数字视频装置。源装置12可包括一用于存储数字视频序列的视频存储器16、一用于对所述序列编码的视频编码器18、及一用于将所述已编码序列通过通信链路15传输至源装置14的发射器20。视频编码器18可包含(例如)各种硬件、软件或固件、或者一个或多个执行可编程软件模块以如本文所述控制所述视频编码技术的数字信号处理器(DSP)。可提供相关联存储器及逻辑电路以在控制所述视频编码技术方面支持DSP。
源装置12也可包括一视频捕获装置23,例如视频照相机,以捕获视频序列并将所捕获序列存储于存储器16中。具体而言,视频捕获装置23可包括电荷耦合装置(CCD)、电荷注入装置、光电二极管阵列、互补金属氧化物半导体(CMOS)装置、或者任何其它能够捕获视频图像或数字视频序列的光敏装置。
再例如,视频捕获装置23可包含视频转换器,用于例如自电视机、录像机、摄录机、或另一视频装置将模拟视频数据转换成数字视频数据。在某些实施例中,源装置12可配置成通过通信链路15传输实时视频序列。在此种情形中,接收装置14可接收所述实时视频序列并向使用者显示所述视频序列。另一选择为,源装置12可捕获并编码以视频数据文件(即不为实时形式)形式发送至接收装置14的视频序列。因而,源装置12及接收装置14可在例如移动无线网络中支持例如视频通信、视频剪辑播放、视频邮件、或者视频会议等应用。装置12及14可包括未在图1中具体显示的各种其它元件。
接收装置14可呈任一种能够接收及解码视频数据的数字视频装置形式。例如,接收装置14可包括接收器22,以经由例如中间链路、路由器、其它网络设备及类似物自发射器20接收经编码的数字视频序列。接收装置14也可包括一用于解码所述序列的视频解码器24、及一用于向使用者显示所述序列的显示装置26。然而,在某些实施例中,接收装置14可不包括集成显示装置14。在这些情形中,接收装置14可用作接收器来解码所接收视频数据以驱动一分立显示装置,例如电视机或监视器。
源装置12及接收装置14的实例性装置包括位于计算机网络上的服务器、工作站或其它桌上型计算装置、及例如膝上型计算机或个人数字助理(PDA)等移动计算装置。其它实例包括数字电视广播卫星及例如数字电视、数字照相机、数字摄像机或其它数字记录装置等接收装置、例如具有视频功能的移动电话等数字视频电话、具有视频功能的直接双向通信装置、其它无线视频装置、及类似装置。
在某些情形中,源装置12及接收装置14各自包括一用于对数字视频数据实施编码及解码的编码器/解码器(CODEC)。具体而言,源装置12与接收装置14二者均可包括发射器和接收器以及存储器和显示器。下文所概述的编码技术中的许多种是在包含编码器的数字视频装置上下文中加以说明。然而,应了解,该编码器可构成CODEC的一部分。在此种情形中,该CODEC可构建于硬件、软件、固件、DSP、微处理器、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散硬件组件、或其各种组合中。
源装置12内的视频编码器18对一视频帧序列内的像素块实施处理,以便编码该视频数据。例如,视频编码器18可执行运动估计及运动补偿技术-其中将欲传输的视频帧划分成若干像素块(称作视频块)。为便于例示,所述视频块可包含任意大小的块并可在一既定视频序列中有所变化。作为一实例,ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块及4×4视频块。在视频编码中使用愈小的视频块可在编码中产生愈佳的分辨率,并可专门用于包含愈高详细程度的视频帧位置。此外,视频编码器18可设计成对4×4视频块实施处理,并根据需要自所述4×4视频块重构更大的视频块。对于例如MPEG-4等标准,视频块可包括16×16视频块-有时称作「宏块」。
视频块中的每一像素可由各种可界定像素的可视特性(例如以色度及发光度值表示的色彩及亮度)的n-位值(例如8个位)来表示。每一像素均可具有一个或多个用于色度及发光度二者的8-位值。然而,本发明的技术并不受限于像素格式,并可以更简单的更少位像素格式或更复杂的更多位像素格式来扩充。也可根据其它颜色座标系来界定像素。此外,视频块可由离散余弦变换(DCT)系数后跟由像素值表示的所述视频块的DCT来表示。另一选择为,视频块可由非零小波值后跟像素值的小波变换来表示。简单地说,本文所述的速率控制技术可应用于各种各样的编码标准、像素格式及视频块大小及形状。所选量化参数(QP)界定并限制在对一既定视频帧实施编码中将产生的非零系数的数量。
所述速率控制技术可在视频编码过程中执行,并可在此种编码过程中加以修改或调整。为对视频帧实施编码,对于该视频帧中的每一视频块,源装置12的视频编码器18均可通过如下方式实施运动估计查找存储于存储器16中的视频块有无一个或多个早已传输的先前视频帧(或者后续视频帧),以识别一类似视频块-称作一预测视频块。在某些情形中,该预测视频块可包含来自前一或后一视频帧的“最佳预测”,当然本发明并不受限于该方面。视频编码器18实施运动补偿来创建一表示欲编码的当前视频块与该最佳预测之间的差异的差异块。运动补偿通常是指使用一运动向量拿取该最佳预测、然后自一输入块中减去该最佳预测以产生一差异块的作业。所述速率控制技术界定用于在视频编码过程中用于量化经编码视频块的量化参数(QP)。如本文所述,本发明涵盖使用参数方程式来界定在视频块级或帧级上进行速率受控编码的QP。
在该运动补偿过程已创建该差异块之后,通常实施一系列额外编码步骤对该差异块进行编码。这些额外编码步骤可相依于所用的编码标准。在符合MPEG-4的编码器中,例如,所述额外编码步骤可包括一8×8离散余弦变换、随后实施纯量量化、随后再实施一光栅至锯齿形重排序、随后实施行程长度编码、随后再实施霍夫曼编码。然而,在某些情形中,可使用对视频块的小波变换或其它变换来代替DCT变换。量化后非零系数的数量是极为重要的问题,因为该值会影响为对一既定块或帧实施编码所需的位数量。
在编码之后,可将经编码的差异块连同运动向量一起传输,该运动向量可将该视频块与用于编码的前一帧(或后一帧)鉴别开。通过此种方式,并非将每一帧作为一独立的图片实施编码,视频编码器18是对相邻帧之间的差异实施编码。此等技术可明显减少为精确地表示视频序列中每一帧所需的数据量。
该运动向量可界定关于所编码视频块的左上角的像素位置,当然也可使用其它格式的运动向量。总之,通过使用运动向量对视频块实施编码,可明显减小为传输视频数据流所需的带宽。
在某些情形中,视频编码器18除可支持帧间编码外,也可支持帧内编码。帧内编码是利用帧内的相似性(称作空间或帧内相关)来进一步压缩视频帧。帧内压缩通常是基于用于压缩静止图像的纹理编码,例如离散余弦变换(DCT)编码。帧内压缩常常与帧间压缩结合使用。
接收装置14的接收器22可接收呈运动向量形式的经编码视频数据及可表示所编码视频块与在运动估计中所用最佳预测之间的经编码差异的经编码差异块。然而,在某些情形中,并非发送运动向量,而是传输运动向量与一先前计算出的运动向量预测值(MVP)之间的差异。总之,解码器24可执行视频解码,以便产生视频序列来通过显示装置26显示给使用者。接收装置14的解码器24也可构建为一编码器/解码器(CODEC)。在此种情形中,源装置12与接收装置14二者均能够对数字视频序列实施编码、传输、接收及解码。
根据本发明,视频编码器18以一种动态方式选择用于视频编码的量化参数(QP),以便实现速率受控编码。QP会界定当对视频块编码时将产生的位数量。因而,所选QP会直接影响每秒所编码的位数量。当QP增大时,保存较少的数据且视频编码的质量可能会降低。而当QP减小时,保存较多的数据且视频编码的质量提高。然而,如果QP过小,则每秒所编码的位数量可能会超出一所分配的带宽,并损害在该有限大小的带宽内传送帧的能力。通过以一动态方式选择QP,可使视频帧传输的位速率基本恒定。
更具体而言,视频编码器18根据一参数方程式来选择QP,以便将rho(ρ)的值映射至在视频编码中所用的量化参数(QP)。同样,量(ρ)代表量化后视频块的非零系数的数量,并大体正比于在视频编码中所用位的数量。相应地,视频编码器18利用ρ与QP之间的关系,以便实现速率受控视频编码。由于ρ近似与位速率线性相关,因而该ρ-QP参数方程式可用于选择会得到有效速率受控视频编码的QP。
可将该参数方程式初始化,但然后在视频编码过程中加以调整,以使由该参数方程式所界定的预测的ρ更佳地逼近自一所选QP得到的实际ρ。对该参数方程式的此种调整可对每一视频块或者对每一帧进行。在一个较佳实施方案中,采用视频块级速率控制,但在帧级上调整该参数方程式中的变量。
图2是一装置30的实例性方块图,装置30可对应于源装置12。一般而言,装置30包括一能够执行本文所述的速率受控编码技术的数字视频装置。装置30可符合一种视频编码标准,例如MPEG-4、ITU H.263、ITU H.264、或者另一种可受益于本文所述速率控制技术的视频编码标准。
如图2所示,装置30包括一用于对视频序列实施编码的视频编码装置32、及一用于在编码之前及之后存储所述视频序列的视频存储器34。装置30也可包括一用于将经编码的序列传输至另一装置的发射器36、及可能一用于捕获视频序列并将所捕获视频序列存储于存储器34中的视频捕获装置38(例如摄像机)。装置30的各种元件可经由一通信总线35以通信方式相耦接。在装置30中也可包含各种其它元件,例如帧内编码元件、各种滤波器、或者其它元件,但为简明起见未具体显示。
视频存储器34通常包括相对大的存储空间。视频存储器34,例如,可包含动态随机存取存储器(DRAM)、或者FLASH(闪速)存储器。在其它实例中,视频存储器34可包含非易失性存储器或任一其它数据存储装置。
视频编码装置32可包含一用于移动无线电电话的芯片组,该芯片组包括硬件、软件、固件、及/或处理器或数字信号处理器(DSP)的一组合。视频编码装置32一般包括一耦接至本地存储器37的视频编码器28。本地存储器37可包括一相对于视频存储器34更小且更快的存储空间。例如,本地存储器37可包括同步随机存取存储器(SRAM)。本地存储器37可包括与视频编码装置32的其它组件集成于一起的“单芯片”存储器,以在处理器密集的编码过程期间实现对数据的极快速存取。在对一既定视频帧编码过程中,可将要编码的当前视频块自视频存储器34加载至本地存储器37。也可将一在对该最佳预测进行定位时所用的查找空间自视频存储器34加载至本地存储器37。然而,执行本文所述的技术并非必需使用不同的存储器。换句话说,视频编码器28可存取一单芯片或芯片外存储器来获得所述视频块及该查找空间。
该查找空间可包含一个或多个先前视频帧(或后续帧)的一像素子集。所选子集可被预识别为一可能的位置以用于识别一与要编码的当前视频块紧密匹配的最佳预测。此外,如果使用不同的查找级,则该查找空间可能会在运动估计过程中有所变化。在此种情形中,该查找空间可在查找空间的大小方面逐渐变小,其中这些后面的查找是以较前面的查找更高的分辨率来实施。
本地存储器37加载有一要编码的当前视频块及一查找空间一其包含在帧间编码中所用的某些或所有一个或多个视频帧。运动估计器40将当前视频块与该查找空间中的各个视频块相比较,以便识别出一最佳预测。然而,在某些情形中,无需具体地检查每一可能的候选者即可更快速地为该编码识别出一恰当匹配者。在此种情形中,该恰当匹配者可实际上并非“最佳”预测,但对于实施有效视频编码而言已足够。一般而言,用语“预测视频块”是指一恰当匹配者,该恰当匹配者可为最佳预测。
运动估计器40实施所要编码的当前视频块与存储器37的查找空间中的候选视频块之间的比较,在某些情形中,候选视频块可包括针对分数内插而产生的非整数像素值。例如,运动估计器40可执行绝对差求和(SAD)技术、平方差求和(SSD)技术、或者其它比较技术,以便为候选视频块界定差值。差值愈小,通常表示候选视频块是愈佳的匹配者,因而是一较其它会产生更高差值的候选视频块更佳的供用于运动估计编码的候选者。
最后,运动估计器识别一“最佳预测”-其是与要编码的视频块最紧密匹配的候选视频块。然而,应了解,在许多情形中,可在最佳预测之前对恰当匹配者进行定位,且在这些情形中,可使用恰当匹配者来实施编码。同样,一预测视频块是指一恰当匹配者,该恰当匹配者可为最佳预测。
一旦运动估计器40为视频块识别出最佳预测,运动补偿器42即形成一指示当前视频块与该最佳预测之间的差异的差异块。差异块编码器44可进一步对该差异块编码,以压缩该差异块,且可转接经编码的差异块,以将其连同一运动向量(或者该运动向量与一运动向量预测值的差)一起传输至另一装置,以识别该查找空间中哪一候选视频块曾用于实施编码。为简明起见,将用于在运动补偿后实施编码的其它组件归纳为差异块编码器44,因为具体组件将视所支持的具体标准而异。换句话说,差异块编码器44可对如本文所述而产生的差异块执行一种或多种常规编码技术。
在编码过程中,速率控制可确保用于对一既定序列实施编码的位数量不会超过一与发射器36相关联的通信通道的带宽限制。为执行此种速率控制,视频编码器28包含一速率控制单元46。速率控制单元46利用每帧的所编码位数量与量化后视频块的非零系数数量之间的关系。ρ的值代表量化后视频块的非零系数数量,其大体正比于每帧所编码的位数量(并因而大体正比于在一恒定帧速率下每秒所编码的位数量)。相应地,为实现速率受控视频编码,速率控制单元46利用ρ与QP之间的关系。
更具体而言,速率控制单元46应用一将ρ的值映射至不同QP的参数方程式。然后,可为对应于视频编码所期望速率的ρ值选择QP。在编码过程期间,可更新该参数方程式以更佳地反映ρ与QP之间的实际关系。换句话说,可将该参数方程式初始化,但然后在视频编码过程中加以调整,以使由该参数方程式所界定的预测的ρ更佳地逼近自一所选QP得到的实际ρ。对该参数方程式的此种调整可对每一视频块或者对每一帧进行。在一个较佳实施方案中,采用视频块级速率控制,但在帧级上调整该参数方程式中的变量。
由速率控制单元46用于界定预测的ρ的参数方程式可呈如下形式 ρ=nc×e-f(qp), 其中e代表一通常称作欧拉(Euler)数(2.71828182845904523536028747135)的算术常数,ρ代表预测的量化后帧的视频块的非零系数数量,nc代表以所考虑的单位表示的系数数量(例如一帧或视频块中系数的数量),且f(qp)是该量化参数的参数函数。例如,f(qp)可包含一简单的多项式或指数函数。在某些情形中,可使用不同的常数来取代e的值,例如使用值2或者类似值。
同样,可适用的f(qp)的实例包括如下 f(qp)=α×qp, f(qp)=α×qp+β, f(qp)=α×qp2+β×qp+δ, 或者指数函数 f(qp)=α×qpβ。
在这些实例中,qp代表量化参数(在本文中也称作QP)。变量α、β及δ包含可编程参数,这些可编程参数可在速率控制技术过程中加以调整,以更佳地逼近ρ与qp之间的关系。具体而言,在编码过程期间,调整所述可编程参数,以使对于不同的QP,预测的ρ实质上对应于实际ρ。
在另一实例中,速率控制单元46所用的参数方程式可实质上对应于 ρ=nc×2-α×qp-β, 其中ρ界定预测的ρ,nc代表以所考虑的单位表示的系数数量并界定预测的ρ的最大值,且α及β包含可调参数。该参数方程式可尤其适用于MPEG-4及H.263速率控制。在此种情形中,为使该实施方案更为有效而不会在曲线精度中引起任何严重损失,以常数2来取代方程式ρ=nc×e-f(qp)中的欧拉数(e)。
此外,也对于MPEG-4及H.263速率控制,可优先于f(qp)的其它候选项而使用f(qp)=α×qp+β,因为其代表曲线精确度与实施该方程式的复杂度之间的折衷。曾在各种模拟中对参数方程式家族中其它成员(例如指数方程式、二次多项式及一次多项式方程式)的精确度实施比较。尽管发现指数曲线最为精确,然而也发现与其他方程式相比,指数曲线具有最高阶复杂度。一次参数方程式f(qp)=α×qp+β,与二次方程式之间在精确度方面的差异可忽略不计。然而,二次方程式具有3个未知量且其实施更为复杂,而一次方程式却仅具有2个未知量且也较不复杂。
在某些实施方案中,如果视频编码器早已产生一ρ-QP表,则本发明的技术可利用该ρ-QP表。例如,如果速率控制单元48需要求解两个未知量α及β,则其可在两个点处对一ρ-QP表取样(如果早已得到该表)。该第一点可包含QP,而该第二点可近似为2×QP。速率控制技术的此种变化形式的例外可为当QP>25时的情形,例如对于MPEG-4及H.263而言,在此种情形中,仅取样一个点并可将β设定为零。速率控制单元48也可处理其它例外情形,例如当第二取样处的表值或者这两个取样处的表值为零时的情形。可每帧对这两个未知量α及β实施一次更新,当然在不同实施方案中也可更频繁或更不频繁的实施更新。
然而,ρ-QP表并非为执行本文所述速率控制技术所必需的。如果例如在一传统上使用一ρ-QP表的遗留编码器中可得到ρ-QP表,则仍可利用ρ-QP表来加速对参数方程式中可调参数的选择。然而,无需使用该表即可容易地确定所述可调参数。
事实上,传统速率控制技术与本文所述参数速率控制技术之间的一个主要区别在于并非产生并查找一ρ-QP查询表(LUT)中来得到qp的最佳值,而是可使用一例如以下的参数方程式来计算量化参数qp的值 qp=(-log2(ρ/nc)-β)/α, 其中ρ界定预测的ρ,nc代表以所考虑的单位表示的系数数量(例如一帧中系数的数量)并界定预测的ρ的最大值,且α及β包含可调参数。同样,在编码过程期间,对可编程参数加以调整,以使对于不同的QP,预测的ρ均实质上对应于实际ρ。如果早已得到一ρ-QP表,则可使用该ρ-QP表来调整所述可编程参数,但如果不具有一ρ-QP表,则可根据用于界定自特定QP得到的实际ρ的特定取样点来选择所述可编程参数。
对f(qp)使用指数函数背后的直觉化知识是基于ρ-QP曲线与一广义高斯(Gaussian)分布的一半的相似性,而使用一次及二次多项式函数背后的直觉化知识则分别对应于使用一类似于拉普拉斯分布(Laplacian-distribution)或高斯分布的曲线。
图3是一流程图,其显示一种使用一将ρ的预测值映射至量化参数(QP)的帧级速率控制技术。如图3所示,视频编码器28的速率控制单元46使用一参数方程式为一帧确定一QP(301)。首先,可使用初始化值对该参数方程式编程,以使该参数方程式将ρ的预测值映射至QP。然后,速率控制单元46对视频块实施编码(302)。如果该帧包含更多要编码的视频块(303的否(no)分支),则速率控制单元46使用该帧的量化参数对其他视频块实施编码(302)。
一旦到达该帧的末尾(303的是(yes)分支),便将下一帧加载至本地存储器37中实施编码(304)。此时,速率控制单元46更新参数方程式(305)。具体而言,速率控制单元46可确定自为前一帧的视频块所选的QP得到的ρ的实际值,该ρ的实际值可略微不同于由该参数方程式映射至所选QP的预测ρ。通过此种方式,将使用一更为精确的参数方程式对下一帧实施编码。
在更新该参数方程式(305)后,对任何后续帧重复该过程(306的是(yes)分支)。在此种情形中,使用已更新的参数方程式为下一帧确定一QP(301)。可对一视频序列中的所有帧重复该过程,以实现对该序列的帧级速率受控视频编码。同样,如果需要,则该过程可对一既定视频帧实施多遍,例如,当该过程开始时,以便更精确地界定该参数方程式而不使用初始化方程式来实际编码视频块。然而,在大多数情形中,在几个帧之后,该参数方程式将迅速收敛,因而无需每一帧实施多遍编码。
图4是一流程图,其显示一种使用一将ρ的预测值映射至量化参数(QP)来进行视频块级速率控制的技术。如图4所示,视频编码器28的速率控制单元46使用参数方程式为视频块确定一QP(401)。首先,可使用初始化值对该参数方程式编程,以使该参数方程式将ρ的预测值映射至QP。然后,速率控制单元46对视频块实施编码(402),并更新参数方程式(403)。具体而言,速率控制单元46可确定自为该帧中一个或多个前面视频块所选的QP得到的ρ的实际值,该ρ的实际值可略微不同于由该参数方程式映射至所选QP的预测ρ。通过此种方式,将使用一更为精确的参数方程式对后续视频块实施编码。
如果该帧包含更多要编码的视频块(403的否(no)分支),则速率控制单元46使用通过已更新参数方程式确定出的量化参数对其他视频块实施编码(402)。可对一帧中的所有视频块重复该过程,以实现对该序列的视频块级速率受控视频编码。如同图3一样,图4所示过程可经调整以实施多遍编码,在此种情形中是对一既定视频块实施多遍编码,例如,当该过程开始时,以便更精确地界定该参数方程式而不使用初始化方程式来实际编码视频块。然而,在大多数情形中,在几个帧之后,该参数方程式将迅速收敛,因而无需每一视频块实施多遍编码。
一旦到达该帧的末尾(404的是(yes)分支),则将下一帧加载至本地存储器37中实施编码(405)。此时,速率控制单元46对任何后续帧重复该过程(406的是(yes)分支)。对于下一帧,使用最近所更新的参数方程式来确定一QP(401)。
图5是一流程图,其说明一种使用一在帧级上加以调整的参数方程式进行视频块级速率控制的技术。出于举例及说明目的,将在以参数方程式ρ=nc×e-f(qp)编程的速率控制单元46的情境中描述图5,其中e代表欧拉数,ρ代表量化后帧的视频块的非零系数的预测数量,nc代表一视频块中的系数数量,且f(qp)是由f(qp)=α×qp+β给定的量化参数的参数函数,其中qp是量化参数,且α及β界定该参数方程式的可调参数。当然,也可使用许多其它参数方程式,例如上文所界定各方程式之一或者一不同的参数方程式。
如图5所示,将速率控制初始化(501)。该初始化界定α及β的初始值,并可依据在制造及测试装置30期间通过仿真所确定的α及β的平均值。为开始该速率受控编码过程,将一帧自视频存储器34加载至本地存储器37(502)。速率控制单元使用该参数方程式确定一用于对视频块实施编码的QP(503)。然后,速率控制单元406使用所确定QP对该视频块实施编码(504)。如果该帧包含更多要编码的视频块(505的否(no)分支),则速率控制单元46使用该参数方程式为每一视频块确定各自的QP(503)并使用各自的QP对所述视频块实施编码。在此种意义上,是在视频块级上确定QP,但对于一既定帧而言,用于界定QP的参数方程式未发生变化。
一旦到达该帧的末尾(505的是(yes)分支),速率控制单元即会更新参数方程式的可调参数(α及β)(305)。具体而言,速率控制单元46可确定自为前一帧的视频块所选的QP得到的ρ的实际值,该ρ的实际值可略微不同于由该参数方程式映射至所选QP的预测ρ。速率控制单元46可选择新的α及β值以便由参数方程式将ρ的实际值更准确地映射至QP的值。通过此种方式,将使用一可更佳地反映ρ与QP之间实际关系的更为精确的参数方程式对下一帧实施编码。
在更新该参数方程式的参数(506)后,对该视频序列中的任何后续帧重复该过程(507的是(yes)分支)。在此种情形中,将下一帧加载至本地存储器37内(502),且速率控制单元46使用参数方程式为每一视频块确定各自的QP(503)并使用各自的QP对所述视频块实施编码(504)。
可对一视频序列中的所有帧重复该过程,以实现对该序列的视频块级速率受控视频编码,其中对于每一帧均实施参数方程式调整。同样,该过程可对一既定视频帧实施多遍,例如,当该过程开始时,以便更精确地界定序列中前几个帧的参数方程式而不使用初始化方程式来实际编码视频块。此可提高速率控制的精确度,代价是计算量增加。然而,在大多数情形中,在已对几个帧实施编码之后,该参数方程式将迅速收敛至一精确的ρ-QP关系表示式。因此,通常可无需每一帧实施多遍。
至此已阐述了各个实施例。具体而言,已提出各种使用一参数方程式来代表量化参数QP与非零系数数量ρ之间的映射的速率控制技术。已识别出能够精确地代表此种关系的某些适用参数方程式的一非穷尽性列表。所述技术可用于限制用于界定所编码视频块的量化DCT系数的数量,当然也可使用其它类型的系数,例如经小波变换的系数。此外,可仅就P-Frames(预测的帧)方面、或者可就I-Frames(帧间)与P-Frames两个方面来采用本文所述技术。例如,诸如H.263、MPEG-4及H.264等许多种编码标准是利用此等I-Frames及P-Frames。在此种情形中,可仅就P-Frames(预测的帧)方面、或者可就I-Frames(帧间)与P-Frames两个方面来采用本文所述技术。
本文所述参数速率控制具有可提供帧级速率控制或者视频块级速率控制的灵活性。在一较佳实施例中,是将视频块级速率控制与对参数方程式的帧级更新一起使用。此外,所述视频块级速率控制技术就可设定两个QP偏移量(此又决定可容忍的变化量)而言是可配置的。通常,所述偏移量的值愈高,即会保证变化量水平愈低,代价是视频质量愈低。仿真已表明,通过本文所述的速率控制技术,可显著减小变化量,同时保持几乎相同水平的视频质量。此外,使用一参数方程式为每一视频块计算qp可比产生及/或查找一ρ-QP表更为精确及更具计算有效性。
本文所述的技术可构建于硬件、软件、固件、或其任一组合中。如果构建于软件中,则所述技术可涉及一种包含程序代码的计算机可读媒体,该程序代码当在一对视频序列实施编码的装置中执行时会执行上文所述的一种或多种方法。在此种情形中,该计算机可读媒体可包括随机存取存储器(RAM)-例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPROM)、FLASH(快闪)存储器、及类似存储器。
该程序代码可以计算机可读指令形式存储于存储器上。在彼种情形中,一处理器(例如DSP)可执行存储于存储器中的指令,以便执行本文所述的一种或多种技术。在某些情形中,所述技术可由一会调用各种硬件组件来加速编码过程的DSP来执行。在其它情形中,该视频编码器可构建为一微处理器、一个或多个应用专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、或者某些其它硬件-软件组合。这些及其它实施例归属于下述权利要求书的范畴内。
权利要求
1.一种视频编码装置,其包括
存储器,其存储视频序列;及
编码器,其使用参数方程式来选择用于对所述视频序列进行速率受控视频编码的量化参数(QP),所述参数方程式将预测数量的量化后非零系数(预测的ρ)映射至量化参数(QP)。
2.如权利要求1所述的视频编码装置,其中所述编码器为所述视频序列的不同的各个帧选择各自的QP,并使用所述不同的各个帧各自的QP对所述视频序列实施帧级速率受控视频编码。
3.如权利要求1所述的视频编码装置,其中所述编码器为所述视频序列中的视频帧的不同的各个视频块选择各自的QP,并使用所述不同的各个视频块各自的,对所述视频序列实施视频块级速率受控视频编码。
4.如权利要求1所述的视频编码装置,其中所述参数方程式包括一个或多个可调参数,且所述编码器确定从一个或多个选择的QP中产生的一个或多个实际数量的量化后非零系数(实际ρ)并调整所述参数方程式的所述可调参数,以使所述预测的ρ更佳地对应于所述实际ρ。
5.如权利要求4所述的视频编码装置,其中所述参数方程式实质上对应于
ρ=nc×e-f(qp),
其中e代表欧拉(Euler)数,ρ界定所述预测的ρ,nc代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且f(qp)是所述量化参数(QP)的参数函数。
6.如权利要求5所述的视频编码装置,其中f(qp)包括多项式函数与指数函数中的一者。
7.如权利要求5所述的视频编码装置,其中f(qp)包括实质上对应于下式的一次多项式函数
f(qp)=α×qp,
其中qp对应于所述量化参数(QP)且α界定一次可调参数。
8.如权利要求5所述的视频编码装置,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp+β,
其中qp对应于所述量化参数(QP)且α界定一次可调参数,且β界定二次可调参数。
9.如权利要求5所述的视频编码装置,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp2+β×qp+δ,
其中qp对应于所述量化参数(QP)且α界定一次可调参数,β界定二次可调参数,且δ界定三次可调参数。
10.如权利要求5所述的视频编码装置,其中f(qp)包括实质上对应于下式的指数函数
f(qp)=α×qpβ,
其中qp对应于所述量化参数(QP)且α及β界定所述可调参数。
11.如权利要求4所述的视频编码装置,其中所述参数方程式实质上对应于
ρ=nc×2-α×qp-β,
其中ρ界定所述预测的ρ,nc代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且α及β包含所述可调参数。
12.一种速率受控视频编码方法,其包括
使用参数方程式选择量化参数(QP),所述参数方程式将预测数量的量化后非零系数(预测的ρ)映射至量化参数(QP);及
使用所述选择的QP对一个或多个视频块进行编码。
13.如权利要求12所述的方法,其进一步包括选择拟用于视频序列的不同视频帧的不同QP,以对所述视频序列进行帧级速率受控视频编码。
14.如权利要求12所述的方法,其进一步包括选择拟用于视频帧的不同视频块的不同QP,以对视频序列进行视频块级速率受控视频编码。
15.如权利要求12所述的方法,其中所述参数方程式包括一个或多个可调参数,所述方法进一步包括
确定从一个或多个选择的QP中产生的一个或多个实际数量的量化后非零系数(实际ρ);及
调整所述参数方程式的可调参数,以使所述预测的β更佳地对应于所述实际ρ。
16.如权利要求15所述的方法,其中所述参数方程式实质上对应于
ρ=nc×e-f(qp),
其中e代表欧拉(Euler)数,ρ界定所述预测的ρ,nc代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且f(qp)是所述量化参数(QP)的参数函数。
17.如权利要求16所述的方法,其中f(qp)包括多项式函数与指数函数中的一者。
18.如权利要求16所述的方法,其中f(qp)包括实质上对应于下式的一次多项式函数
f(qp)=α×qp,
其中qp对应于所述量化参数(QP)且α界定一次可调参数。
19.如权利要求16所述的方法,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp+β,
其中qp对应于所述量化参数(QP)且α界定一次可调参数,且β界定二次可调参数。
20.如权利要求16所述的方法,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp2+β×qp+δ,
其中qp对应于所述量化参数(QP)且α界定一次可调参数,β界定二次可调参数,且δ界定三次可调参数。
21.如权利要求16所述的方法,其中f(qp)包括实质上对应于下式的指数函数
f(qp)=α×qpβ,
其中qp对应于所述量化参数(QP),且α及β界定所述可调参数。
22.如权利要求15所述的方法,其中所述参数方程式实质上对应于
ρ=nc×2-α×qp-β,
其中ρ界定所述预测的ρ,nc代代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且α及β包含所述可调参数。
23.一种包含程序代码的计算机可读媒体,所述程序代码在被执行时会使可编程处理器
使用参数方程式选择量化参数(QP),所述参数方程式将预测数量的量化后非零系数(预测的ρ)映射至量化参数(QP);及
使用所述选择的QP对一个或多个视频块进行编码。
24.如权利要求23所述的计算机可读媒体,所述媒体进一步包括致使所述可编程处理器选择拟用于视频序列的不同视频帧的不同QP以对所述视频序列进行帧级速率受控视频编码的指令。
25.如权利要求23所述的计算机可读媒体,所述媒体进一步包括致使所述可编程处理器选择拟用于视频帧的不同视频块的不同QP以对视频序列进行视频块级速率受控视频编码的指令。
26.如权利要求23所述的计算机可读媒体,其中所述参数方程式包括一个或多个可调参数,所述媒体进一步包括使所述可编程处理器执行如下操作的指令
确定从一个或多个选择的QP中产生的一个或多个实际数量的量化后非零系数(实际ρ);及
调整所述参数方程式的可调参数,以使所述预测的ρ更佳地对应于所述实际ρ。
27.如权利要求26所述的计算机可读媒体,其中所述参数方程式实质上对应于
ρ=nc×e-f(qp),
其中e代表欧拉(Euler)数,ρ界定所述预测的ρ,nc代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且f(qp)是所述量化参数(QP)的参数函数。
28.如权利要求27所述的计算机可读媒体,其中f(qp)包括多项式函数与指数函数中的一者。
29.如权利要求27所述的计算机可读媒体,其中f(qp)包括实质上对应于下式的一次多项式函数
f(qp)=α×qp,
其中qp对应于所述量化参数(QP),且α界定一次可调参数。
30.如权利要求27所述的计算机可读媒体,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp+β,
其中qp对应于所述量化参数(QP),且α界定一次可调参数,且β界定二次可调参数。
31.如权利要求27所述的计算机可读媒体,其中f(qp)包括实质上对应于下式的二次多项式函数
f(qp)=α×qp2+β×qp+δ,
其中qp对应于所述量化参数(QP),且α界定一次可调参数,且β界定二次可调参数,且δ界定三次可调参数。
32.如权利要求27所述的计算机可读媒体,其中f(qp)包括实质上对应于下式的指数函数
f(qp)=α×qpβ,
其中qp对应于所述量化参数(QP),且α及β界定所述可调参数。
33.如权利要求26所述的计算机可读媒体,其中所述参数方程式实质上对应于
ρ=nc×2-α×qp-β,
其中ρ界定所述预测的ρ,nc代代表以所考虑的单位表示的系数数量并界定所述预测的ρ的最大值,且α及β包含所述可调参数。
全文摘要
本发明说明可改良视频编码的速率控制技术。所述速率控制技术利用每帧所编码位的数量与量化后视频块的非零系数的数量之间的关系,量化后视频块的非零系数的数量被称作rho(ρ)。ρ的值大体上与视频编码中所使用位的数量成比例。本发明利用ρ与量化参数(QP)之间的关系,以便实现速率受控的视频编码。更具体来说,本发明利用参数方程式将预测的ρ的值映射至QP。
文档编号H04N7/30GK101112101SQ200580047232
公开日2008年1月23日 申请日期2005年11月22日 优先权日2004年11月29日
发明者普拉桑吉特·潘达 申请人:高通股份有限公司