用于视频编码的有效速率控制技术的制作方法

文档序号:7620684阅读:121来源:国知局
专利名称:用于视频编码的有效速率控制技术的制作方法
技术领域
本申请要求2004年7月8提交的美国临时申请专利号60/586,963的优先权。
本发明公开的内容涉及数字视频处理,更具体地涉及视频序列的速率控制编码。
背景技术
数字视频能力可以被结合到范围广泛的设备中,这些设备包括数字电视、数字直播系统、无线通信设备、个人数字助理(PDA)、膝上型计算机、台式计算机、数码相机、数字记录设备、蜂窝式或卫星无线电话,等等。数字视频设备在创建、修改、传输、存储、记录和播放全动态视频序列方面与常规的模拟视频系统相比提供了显著的改进。
已建立了许多不同的视频编码标准用于数字视频序列的编码。例如,运动图像专家组标准(MPEG)已开发了包括MPEG-1、MPEG-2和MPEG-4的许多标准。其它标准包括国际电联(ITU)H.263标准,由Cupertino California的苹果计算机公司研发的QuickTimeTM技术,由华盛顿的雷德蒙(Redmond)的微软公司研发的WindowTM视频,英特尔公司研发的IndeoTM,华盛顿西雅图的RealNetworks公司的RealVideoTM,以及SuperMac公司研发的CinepakTM。而且,新标准不断出现和演变,包括ITU H.264标准和大量专用标准。
许多视频编码标准通过以压缩方式对数据进行编码,允许来改善视频序列的传输速率。压缩可降低需要被传输的数据总量,以有效地传输视频帧。例如,多数视频编码标准利用设计的图形与视频压缩技术来协助视频与图像在与没有压缩时获得的带宽相比更窄的带宽上传输。
例如,MPEG标准以及ITU H.263和ITU H.264标准支持这样的视频编码技术,这些技术利用了连续视频帧之间的相似性,这被称为时间或帧间相关,以提供帧间压缩。该帧间压缩技术通过把视频帧的基于像素的表示转变为运动表示利用这些帧上的数据冗余。另外,一些视频编码技术可利用被称为空间或帧内相关的帧内的相似性进一步压缩视频帧。
为支持压缩,数字视频设备通常包括压缩数字视频序列的编码器和对数字视频序列解压缩的解码器。在许多情况下,编码器和解码器形成一个集成的编码器/解码器(CODEC),它在定义视频序列的帧内部的像素块上操作。例如,在MPEG-4标准中,编码器通常把要传输的一个视频帧分成被称作“宏块”的视频块。ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块、和4×4视频块。其它标准可支持不同大小的视频块。
对于视频帧中的每个视频块来说,编码器寻找一个或多个直接在前的视频帧(或在后的帧)的类似大小的视频块,以识别最相似的视频块,这被称为“最佳预测”。对当前视频块与其它帧的视频块相比较的过程通常被称为运动估算。一旦一个视频块的“最佳预测”被识别,编码器可以对当前视频块与该最佳预测之间的差值进行编码。对当前视频块与该最佳预测之间的差值进行编码的过程包括被称为运动补偿的过程。运动补偿包括创建差值块的过程,该差值块表示要被编码的当前视频块与最佳预测之间的差值。具体地,运动补偿通常指的是利用运动矢量取得最佳预测块,然后从一个输入块减去最佳预测以生成一个差值块的行为。
在运动补偿已创建差值块之后,典型地执行一系列另外的编码步骤,以对该差值块进行编码。这些另外的编码步骤可取决于使用的编码标准。例如,在MPEG4兼容的编码器中,这些另外的编码步骤可包括8×8离散余弦变换,然后是标量量化(scalar quantization),然后是光栅-Z字形(raster-to-zigzag)重排,然后是行程编码,然后是霍夫曼编码。被编码的差值块可以与一个运动矢量一起被传输,该运动矢量指出来自前面帧的哪个视频块用于编码。解码器接收该运动矢量和该编码的差值块,对收到的信息进行解码,以重建该视频序列。
为视频编码已经开发了许多速率控制技术。为了视频序列的实时传输的便利,速率控制技术特别地重要,但速率控制技术也可用于非实时编码环境中。对于速率控制,编码技术动态地调节每帧被编码的位数。具体地,速率控制可限制每帧被编码的位数,以确保视频序列可以给定的速率被有效地编码并通过分配的带宽来传输。如果编码技术不响应视频序列的场景变换,则视频序列的实时传输的比特率可随场景变换而有很大改变。因此,为了定义基本不变的比特率,每帧的位数在编码过程中被动态地调节。
实现速率控制编码的一种方式是使得在视频编码过程中调节量化参数(QP)。QP直接影响每秒被编码的位数。当QP增加时,较少的数据被保存,并且视频编码的质量可能会降低。当QP减小时,较多的数据被保存,并且视频编码的质量会提高。然而,如果QP太小,则每秒被编码的位数可超过分配的带宽,并且损害在限定量带宽内传输帧的能力。通过以动态方式选择QP,可使传输视频帧的比特率大体不变。

发明内容
本公开内容描述了可提高视频编码的速率控制技术。具体地,所描述的速率控制技术利用每帧被编码的位数与量化后视频块的非零系数的数量之间的关系。量化后帧的视频块的非零系数的数量被称作ρ。ρ的值通常与视频编码过程中所用的位数成比例。本公开利用ρ与量化参数(QP)之间的一个关系,以实现速率控制视频编码。更具体来说,本公开提供生成一个查询表(LUT)的技术,该查询表将ρ的值映射到不同的QP。然后,可选择QP,以获得期望的编码速率,该编码速率与ρ线性相关。所描述的技术可简化视频编码器,并大大地降低生成速率控制视频编码中使用的LUT所要求的计算数量。
本公开也描述了实现这里所述的速率控制技术的视频编码设备。在一个实施例中,该视频编码设备包括一个编码器,计算视频块的未量化的系数的阈值,其中阈值识别对于不同的量化参数(QP的)量化系数何时变为非零,并生成一个ρ-QP查询表(LUT),其利用阈值将量化(ρ的)后大量非零系数映射到QP。视频编码设备还包括一个存储器,存储ρ-QP LUT。在一个更特定的实施例中,编码器生成一个将阈值映射到QP的阈值-QP LUT,并利用阈值-QP LUT生成ρ-QPLUT。在任何情形下,通过利用识别对于不同的量化参数(QP的)量化系数何时变为非零的阈值,所述技术可大大简化ρ-QP LUT的生成。
在此描述的这些技术和其它技术可在硬件、软件、固件或其组合的数字视频设备中应用。如果是在软件中实现,软件可在数字信号处理器(DSP)中执行。在这种情形下,执行技术的软件起初可存储在计算机可读介质中,并在DSP中被载入和执行,用于数字视频设备中的有效速率控制编码。各种实施例的其它细节是在附图和下文的描述中被阐述。从本文的描述、附图和权利要求中可明显看到其它的特点、目标和优点。


图1是一个框图,表示一个示例性的系统,其中源数字视频设备将视频数据的编码序列传输到接收数字视频设备。
图2是根据本公开的实施例的数字视频设备的一个示例性框图。
图3是表示每帧的位数与ρ之间的近似线性关系的图表。
图4示意一个示例性的电路图,该电路可按照MPEG-4标准或ITUH.263标准直接计算ρ(OP)查询表(LUT)。
图5A和5B是示意电路的示例性电路图,该电路可用来按照ITUH.264标准直接计算ρ(0P)LUT。
图6是内DC系数的直方图,示意对于内ac系数使用单独等式(或表查找)是不必要的,因为量化后这些系数变为零的机会极少。
图7是一个典型电路的示例性电路图,该电路可用于按照ITUH.264标准计算在阈值-OP LUT的创建中所使用的阈值。
图8A和8B是示意把为计算阈值LUT而使用的偏差舍入效果的图表。
图9是可用于累加阈值QP以形成一个阈值-QP表的电路的示例性电路图。
图10包括四条不同的曲线,表示由常规的基线方法和这里所述的ρ-域速率控制方法获得的每帧使用的位和每帧的峰值信噪比(PSNR)。
图11是利用基线方法、这里所述的ρ-域方法、和这里所述的适应的ρ-域方法的用于不同视频片断的位的标准偏差的图形。
图12包括图形和相应视频帧,示意由ρ-域速率控制引起的帧级位-速率变化的显著降低没有导致编码视频序列质量的任何下降。
具体实施例方式
本公开描述可用于提高视频编码的速率控制技术。这些技术可用于各种视频编码标准中的任何一种,如MPEG-4标准、ITU H.263标准、ITU H.264标准或其它标准。具体来说,这些技术利用每帧被编码的位数(编码速率)与量化后帧的视频块的非零系数的数量之间的关系。量化后帧的视频块的非零系数的数量被称作ρ。ρ的值通常与视频编码中使用的量化参数(QP)成比例。因此,本公开利用ρ与QP之间的关系,以实现速率控制视频编码。更具体来讲,本公开提供生成查询表(LUT)的技术,该查询表将ρ的值映射到不同QP。所述的技术可简化视频编码器,并大大降低生成ρ-域中速率控制视频编码中使用的LUT所要求的计算数量。视频编码器利用LUT选择QP,确保达到期望的编码速率。
图1是一个框图,表示一个示例性的系统10,其中源设备12通过通信链路15发送视频数据的一个编码序列到接收设备14。源设备12和接收设备14都是数字视频设备。具体地,源设备12以一个视频标准,如MPEG-4标准、ITU H.263标准、ITU H.264标准或可使用速率控制视频编码的各种其它标准中的任何一个对视频数据进行编码。系统10的设备12、14中的一个或两者实现如下文中详细描述的速率控制技术,以提高视频编码过程。对于通过限定带宽通信链路15(如无线通信链路)的视频序列的实时传输,这样的速率控制技术是特别有用的。
通信链路15可包括无线链路、物理传输线路、光纤、如局域网、广域网或诸如因特网的全球网的基于数据分组的网络、公用交换电话网(PSTN),或任何其它能够传输数据的通信链路。因而,通信链路15代表任何合适的通信介质,或不同网络和链路的可能的组合,以从源设备12向接收设备14传输视频数据。如上文所述,通信链路15可具有限定的带宽,使得速率控制对于通过链路15的视频序列的实时传输非常重要。
源设备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视频块重建较大的视频块。
视频块中的每个像素可由不同n-位值(如8位)来表示,这以色度和亮度值来定义该像素的可视特征,如颜色和亮度。对于色度和亮度值,每个像素可具有一个或多个8-位值。但本文的原理不限于该像素的格式,可扩展到使用更简单的较少位的像素格式或更复杂的较多位的像素格式。这些像素也可根据其它彩色坐标系统来定义。
对于视频帧中的每个视频块,源设备12的视频编码器18通过在存储于存储器16中的视频块中搜索一个或多个已被传输的在前视频帧(或在后视频帧)以识别一个相似的视频块(被称作预测视频块),从而执行运动估算。在一些情形下,预测视频块可包括根据在前或在后的视频帧的“最佳预测”,尽管本公开并不限于该方面。视频编码器18执行运动补偿,以创建指示出当前要被编码的视频块与最佳预测之间的差值的一个差值块。运动补偿通常指的是利用运动矢量取得最佳预测视频块,随后从一个输入块中减去最佳预测以生成一个差值块的行为。
在运动补偿过程创建差值块之后,典型地执行一系列另外的编码步骤,以对差值块编码。这些另外的编码步骤取决于使用的编码标准。例如,在MPEG4兼容的编码器中,另外的编码步骤可包括一个8×8离散余弦变换,然后是标量量化,接着是光栅-Z字形(raster-to-zigzag)重排序,然后是行程编码,然后是霍夫曼编码。
一旦被编码,被编码的差值块可与运动矢量一起被传输,该运动矢量从用于编码的在前的帧(或在后的帧)识别视频块。以该方式,并非是将每个帧作为一个独立图像来编码,而是视频编码器18对相邻帧之间的差值进行编码。这样的技术显著地降低了要精确表示视频序列的每个帧所需的数据量。
尽管可以使用运动矢量的其它格式,不过运动矢量可相对于被编码的视频块的左上角定义一个像素位置。在任何情况下,通过利用运动矢量对视频块编码,可极大地降低传输视频数据流所用的带宽。
在一些情况下,视频编码器18除了支持帧间编码之外,还支持帧内编码。帧内编码利用了帧内部的相似性,这称为空间或帧内相关,以进一步压缩视频帧。帧内压缩典型地基于压缩静止图像的纹理编码,如离散余弦变换(DCT)编码。帧内压缩常常结合帧间压缩来使用,但在一些实施中也可被用作一个替代方案。
接收设备14的接收器22可接收编码的视频数据,其形式是运动矢量和表示被编码的视频块与运动估算中使用的最佳预测之间的编码差值的编码差值块。然而,在一些情形下,不是发送运动矢量,而是传送运动矢量与先前计算的运动矢量预测器(MVP)之间的差值。在任何情形下,解码器24可执行视频解码,来生成通过显示设备26显示给用户的视频序列。接收设备14的解码器24也可实现为一个编码器/解码器(CODEC)。在这一情况下,源设备12和接收设备14都能够对数字视频序列进行解码、传输、接收和解码。
根据本公开内容,为了实现有效的速率控制编码,视频编码器18以动态方式选择量化参数(QP)。基于视频块或视频帧,视频编码器生成一个查询表(LUT),以将ρ的值映射到视频编码中所使用的量化参数(QP)。量值ρ表示量化后视频块的非零系数的数量,并通常与视频编码中所使用的位数成比例。因此,视频编码器18利用ρ与QP之间的关系,以达到速率控制视频编码。更具体来讲,视频编码器18执行生成查询表(LUT)的技术,该查询表将ρ的值映射到不同QP。因为ρ与速率近似线性相关,ρ-QP LUT可用于选择QP,导致有效速率控制视频编码。ρ-QP LUT在这里也可被称为ρ(QP)。
图2是设备30的一个示例性的框图,设备30可对应于源设备12。一般而言,设备30包括一个能够执行这里所述的速率控制编码技术的数字视频设备。设备30可符合视频编码标准,如MPEG-4,ITU H.263,ITUH.264,或支持帧内视频编码的运动估计和运动补偿技术的另一个视频编码标准。
如图2所示,设备30包括对视频序列进行编码的一个视频编码装置32和在编码之前与之后存储视频序列的一个视频存储器34。设备30还可包括发送被编码的序列到另一设备的发送器36,也可能包括视频捕捉设备38,如摄像机,以捕捉视频序列并在存储器34中存储捕捉的序列。设备30的各种元件通过通信总线35可进行通信上的连接。各种其它的元件,如帧内编码器元件、各种滤波器或其它元件也可包括在设备30中,但为了简明起见,这些器件没有被具体地示出。
视频存储器34典型地包括一个相对较大的存储空间。例如,视频存储器34可包括动态随机存取存储器(DRAM)或闪存。在其它例子中,视频存储器34可包括非易失性存储器或任何其它数据存储设备。
视频编码装置32可包括用于移动无线电话的一个芯片组,包括硬件、软件、固件、和/或处理器或数字信号处理器(DSP)的组合。视频编码装置32通常包括一个连接到本地存储器37的编码器28。本地存储器37可包括相对视频存储器34更小、更快的存储空间。作为一个例子,本地存储器37可包括同步随机存取存储器(SRAM)。本地存储器37可包括与视频编码装置32的其它部件集成在一起的“片上(on-chip)”存储器,以在处理器高强度的编码处理过程中提供非常快速的数据存取。在给定视频帧的编码过程中,被编码的当前视频块可以从视频存储器34加载到本地存储器37。定位最佳预测所用的搜索空间也可从视频存储器34加载到本地存储器37。
该搜索空间可包括一个或多个在前视频帧(或在后帧)的像素的子集。选择的子集可被预先识别作为最佳预测识别的一个相似位置,其与被编码的当前视频块非常匹配。而且,如果使用不同的搜索级(search stage),搜索空间可通过粗略的运动估计而变化。在这一情形下,搜索空间在搜索空间的大小方面可逐步变小,这些稍后的搜索相比先前的搜索以更大的分辨率被执行。
本地存储器37加载有要被编码的当前视频块和搜索空间,该搜索空间包括部分或全部的在帧间编码中使用的一个或多个视频帧。运动估算器40把当前视频块与搜索空间中的各种视频块进行比较,以识别一个最佳预测。但在一些情况下,用于编码的适当匹配(adequate match)可被更快地识别,而不用特别地校验每个可能的候选者,在该情况下,虽然该适当匹配对于有效的视频编码已足够,但实际上该适当匹配可能并不是“最佳”预测。一般而言,短语“预测视频块”指的是一个适当匹配,它可以是最佳预测。
运动估算器40执行要被编码的当前视频块与存储器37的搜索空间中的候选视频块之间的比较。在一些情形下,候选视频块可包括为分数插值所生成的非整数像素值。作为示例,运动估算器40可执行绝对误差和(SAD)技术、平方差和(SSD)技术、或其它比较技术,以定义候选视频块的不同值。较低的差值一般表示候选视频块是一个更好的匹配,因此与生成较高差值的其它候选视频块相比,是用于运动估算编码的更好的候选者。
最后,运动估算器识别一个“最佳预测”,这是与要被编码的视频块最匹配的候选视频块。但可以理解的是,在许多情况下,在该最佳预测之前可以定位一个适当匹配,在这样的情况下,该适当匹配可用于编码。此外,预测视频块指的是一个适当匹配,其可以是最佳预测。
一旦一个视频块的最佳预测被运动估算器40所识别,运动补偿器42就创建一个差值块,该差值块表示当前视频块与最佳预测之间的差值。差值块编码器44可进一步对该差值块编码,来压缩该差值块,并且传送该编码的差值块,以便沿运动矢量(或运动矢量与运动矢量预测器之间的差值)传输到另一台设备,从而确认来自搜索空间的哪一个候选视频块被用于编码。因为具体的部件会随着所支持的具体标准而变化,为描述的简明起见,用于在运动补偿后执行编码的另外部件被概括为差值块编码器44。换言之,差值块编码器44可对上述生成的差值块执行一个或多个常规的编码技术。
包括运动估算和运动补偿的编码过程计算起来强度很大。但是,进行速率控制所必需的计算数量可以是有限的。为执行这样的速率控制,视频编码器28包括一个速率控制单元46。速率控制单元46利用每帧被编码的位数与量化后视频块的非零系数的数量之间的关系。表示量化后视频块的非零系数的数量的ρ的值,一般是与每帧被编码的位数成比例(并因此与恒定帧速率下每秒被编码的位数成比例)。因而,速率控制单元46利用ρ与QP之间的关系,以获得速率控制视频编码。更特别地,速率控制单元46生成一个或多个LUT48,把ρ的值映射到不同的QP。然后可选择QP,用于对应于希望的视频编码速率的所希望的ρ的值。
如后文中更详细描述的,视频编码器28的速率控制单元46计算一个视频块的未量化的系数的阈值,其中阈值识别对于不同的量化参数(QP’s),量化的系数何时变为非零。然后速率控制单元46生成一个ρ-QP LUT,利用阈值把量化后(ρ’s)非零系数的数量映射到QP’s。本地存储器37存储ρ-QP LUT。在一个更具体的实施例中,视频编码器28的速率控制单元46可生成一个把阈值映射到QP’s的阈值QP LUT,利用该阈值-QP LUT生成ρ-QP LUT。LUT48一般表示一个或多个LUT,如本文所列出的,如ρ-QP LUT,可能还有用以生成ρ-QP LUT的阈值-QP LUT。
生成ρ-QP LUT之后,视频编码器28从ρ-QP LUT中选择一个QP用于视频块的速率控制视频编码。视频编码器28然后基于选择的QP量化视频块的系数,根据如上文所述的帧间视频编码技术对视频块编码。
ρ-QP LUT的创建可以在视频块基础或视频帧基础上进行。在前一种情况下,视频编码器28为一个视频帧的不同视频块生成不同的ρ-QP LUT,利用给定视频块的一个相应的ρ-QP LUT,为一个给定视频块的速率控制视频编码选择一个QP。在后一种情况下,视频编码器28为一个视频序列的不同视频帧生成不同的ρ-QP LUT,利用给定视频帧的一个相应的ρ-QP LUT,为一个给定视频帧的视频块的速率控制视频编码选择一个QP。
在视频编码中,通常希望具有一个精确的速率-失真模型。精确的速率-失真模型可导致一个速率控制方案,它不仅获得目标比特率,而且产生每帧位数的较低变化。与许多其它的速率控制算法相比,尤其是与采用固定二次速率-失真模型的算法相比,利用非零系数(ρ)的数量来预测比特率的速率控制方案可获得显著改善的性能。利用固定二次速率-失真模型的常规算法在本文中称之为常规的基线方法或基线方法。
基本上,ρ-域速率控制是基于两个简单的原理1、ρ是与使用的位数线性相关;以及2、生成一个特定ρ值的QP值可从未量化的的变换系数来估计。
如果R是在一个帧上需要使用的位数,则量化后应生成的非零系数的数量是由下列等式给出R=Aρ+B等式1在上述等式1中,由于非纹理信息,参数B可被认为是位,参数A可被看作对非零系数进行编码所需的位的平均数量。参数A和B可从前一帧的R和ρ的值来估计。从上述等式1,如果R给定,可以很直接地估计出ρ。图3绘出每帧使用的位数和不同帧的ρ。从图3可看出,R与ρ之间的关系是近似线性的。
因此,速率控制技术可选择产生ρ的希望值的一个QP值。然而,为选择这样的一个QP值,需要知道非零变换系数的数量,该系数可从由使用的标准所支持的每个可容许的QP得出。如果变换系数以Ti给出,对应于QP的量化步骤以SQP给出,则ρ-QP表可由下面给出ρ(QP)=Σi=0N-1f(Ti,SQP)]]>其中 等式2
f(Ti,SQp)=1 iff|Ti+rqp|≥SQP=Ootherwise在上述等式2中,步长SQp和舍入因子rqp取决于下列因素1、编码标准,如ITU H.264、MPEG-4或ITU H.263;2、是执行帧内编码还是帧间编码;以及3、系数下标。
例如,在MPEG-4中,所有系数SQP的帧间编码宏块是由2QP给出,rQP是由-(QP/2)给出。用于生成ρ-QP表的等式2可由加法器和比较器来实现。需要对所有QP的值计算表条目ρ(QP)。对于MPEG-4来说,QP范围是从1到31,对于H.264来说,其范围是0到51。通常需要重复这些计算,以计算出所有可能的QP值。如果一个特定的量化参数ρ是0,则对于所有较大的量化参数值,ρ被保证保持在0,因此不需要被计算。也就是说如果ρ(QPi)=0则对于所有QP>QPi,ρ(QP)=0从一个宏块得到的ρ-QP表可在整个帧上被累计,以得到该帧的ρ-QP表。“宏块”通常是指一个16像素乘16像素的视频块。如果假定一个视频序列的图像是非常平稳的,则从前一帧估算的ρ-QP表可被用于预测当前帧的QP。而且,利用宏块级的速率控制在宏块基础上可改变QP的初始值。
可利用下列步骤,执行一个基本的ρ-域速率控制算法。
步骤1估算当前帧的位预算Rf步骤2利用上述等式1,估算对应的ρf。对于第一帧,使用A与B的初始值步骤3利用ρf(QP),选择一个QP=QPf,QPf给定一个最接近ρf的ρ步骤4(a)执行宏块级速率控制初始化ρa=0;i=0,其中N是每帧宏块的数量,i是宏块下标。
步骤4(b)ρm=(ρf-ρa)/(N-i)。利用ρm(QP),选择一个QP=QPm,QPm给定最接近ρm的一个ρ。ρm(QP)可以是ρf(QP)的一个比例版本,或从之前的宏块来估计。定位QPm,使得其从前一个宏块(对于MPEG-4)的变化在[-2+2]内(对于MPEG-4)。
步骤4(c)对于每个QP,利用上述等式2计算ρi(QP)步骤4(d)对于每个QP,以ρ(QP)+ρi(QP)替代ρ(QP)步骤4(e)以ρa+ρi(QPm)替代ρa;以i+1替代i步骤4(f)循环到步骤4(b)直到(i<n=步骤5以ρ(QP)替代ρf(QP)。利用ρa和当前帧中所用的纹理位(Rt)和非纹理(Rn)位,重新估算A和B。B=Rn和A=(Rt/ρa)步骤6循环到步骤(1),直到所有帧都完成。
对于兼容MPEG-4和ITU H.263的编码器,ρ-QP表的计算可以利用比兼容ITU H.264的编码器更直接的方式来进行。下面的伪代码表示根据MPEG-4或ITU H.263标准的一个这样的视频块的计算。
<pre listing-type="program-listing">For QP=1 to 31  {   ρ(QP)=0;   If(INTRA)   {   if(|(DCT(0)+(dc_scalar>>1))|>=dc_scalar)  ρ(QP)++;   for i=0 to 63  if(|DCT(i)|>=(QP<<1))   ρ(QP)++;  end  }  else  {  for i=0 to 63   if(|(|DCT(i)|-(QP>>1))|>=(QP<<1))  ρ(QP)++;   end  }  if(ρ(QP))=0)   break;  }</pre>
图4表示典型的硬件电路图,可用于计算符合MPEG-4或ITU H.263编码标准的一个编码器的ρ(QP)表。图4中所示的累加需要被重复,以用于所有光亮度(亮度)和色度(色度)块,如4个亮度和2个色度块。
如图4所示,电路400接收DCT(i)作为输入。DCT(i)代表具有下标(i)的离散余弦变换系数。块401生成DCT(i)的绝对值,其被发送到加法器402。DCT(i)的绝对值然后被加到复用器403的输出。复用器403选择三个值中的一个。到复用器403的输入是右移1个的dc_scaler值、0值和右移1个的量化参数QP的负数。当I与DC都是1时,复用器403选择右移1个的dc_scaler值,当I是1,DC是0时选择值0,当I是0,无论DC值如何,选择右移1个的量化参数QP的负数。当输入块是一个帧内块时,I值是1,当输入块是一个帧间块时,I值为0。当输入参数是DC时,DC值为1,当输入参数是AC时,DC值为0。DC系数表示一个视频块的平均值,而AC系数是该视频块的其余系数。
复用器403的输出由加法器402加到块401的输出。块404则生成加法器402的输出的绝对值,并提供该值的负数作为到加法器405的输入,被加到复用器406的输出。复用器406接收dc_scaler值和左移1个的量化参数QP。当I和DC都是1时,复用器406选择dc_scaler值作为输出,否则选择左移1个的量化参数QP作为输出。
加法器405从复用器406的输出减去块404的输出。块407检查加法器405的输出的第12个位(符号位),并提供该位到加法器408。块409通过把符号位加到每个前面的条目累加ρ(QP)表。因而,加法器408和ρ(QP)表块409可一起被看作生成ρ(QP)表的累加器。电路400可重复这些计算,从I=1到63,以及QP=1到31。
在兼容ITU H.264的编码器中,量化步骤与依赖变换比例的系数合并。这使ρ(QP)表的计算更复杂。利用下列等式可执行量化。
Fij=(MWij+A)>>S等式3其中Fij是量化系数,Wij是未量化的变换系数。乘法因子M、加法因子A和移位因子S取决于QP、系数下标i,j、帧内预测模式,以及块是亮度还是色度。从等式3,可观察到,量化值Fij将是非零值,只有当Wij>=(2s-A)/M,等式4>=C
其中S=16+(QP/6)对于Intra_16×16的DC 以及色度S=15+(QP/6)对于其它的A=2s-1对于帧内A=2s-2对于帧间量化可被设计,以使QP增加6时量化步骤加倍。因此,M具有一组6个唯一的值,M值的范围是作为(QP%6)和下标i,j的函数,符号%表示MOD函数,提供余数。因而,QP%6与QP MOD 6相同,这是QP被6除,产生除法的余数。M对下标的依赖是由于整数变换所需要的比例在量化处理中被吸收这一事实。下面的表1表示了M的值。具体地,表1列出了乘数值(也称为乘法因子),M,用于不同的下标和QP%6。
表1

从等式4,可以看到,如果未量化的值Wij大于或等于C,结果将是一个非零系数。由于等式4的右侧是一个分数,与Wij比较的整数值由下面给出

等式5下面的表2是各种下标以及帧内和帧间宏块的QP%6的比较器值C的列表。
表2

具体地,表2给出了各个QP%6的S=24的最大移位值时的比较器C的值。这些值可从左到右存储在36×13ROM的列乘列中。图5A和5B是表示示例性电路的电路图,该电路可用于根据ITU H.264标准计算ρ(QP)表。
如图5A所示,值15被加法器501加到值QP/6。加法器501的输出被提供给复用器505以及加法器501的输出,对加法器501的输出加1。复用器505的输出基于来自“与”门503与“或”门504的控制信号被选择。输入到“与”门503的i和j是输入系数的下标值,并被倒置。到“或”门504的输入指示当前块是否是帧内块,以及当前块是否是色度块。当两个到复用器505的输入都是1时,加法器502的输出被复用器选择,否则,选择加法器501的输出。电路500的输出S由图5B中的电路600来使用。
如图5B所示,复用器603基于“与”门601和“或非”门602的输入信号选择值0、1或2中的一个。到门601和602的输入是在i与j各自维度中下标系数的第0位。如果门601的输出是0,且门602的输出是1,复用器603选择值0。如果门601的输出是1,并且门602的输出是0,复用器603选择值1。如果门601的输出是0,并且门602的输出是0,复用器603选择值2。
乘法器604把复用器603的输出乘以6,且输入该值到存储器605和606。IROM605对应于帧内块,而PROM对应于帧间块。当帧间块正在被处理时,到复用器607的输入值P是1。
复用器607基于输入P从存储器605、606中的一个中进行选择。复用器607的输出提供到加法器608。从15减去电路5A的值S。值511由块609的(15-S)的结果右移,块609的输出提供到加法器608。加法器608把块609和复用器607的输出相加。然后加法器608的输出由24-S右移,其由变量C表示,代表一个比较器值。值C提供到加法器611。值Wij表示输入系数。块612生成值Wij的绝对值,被加法器从值C中减去。
块613生成加法器611的输出的符号位(第15位)。然后,符号位被提供到加法器614。块615通过把符号位加到每个前项而累加ρ(QP)表。因而,加法器614和ρ(QP)表615可一起被看作一个生成ρ(QP)表的累加器。电路500和600可重复这些计算,从i,j=1到3,以及QP=1到51。
如图5A和5B概括所示,一个舍入因子在其向下移位之前被加到存储的比较器值。该因子的选择是使从除法得到的分数总是向上取整运算。通过这样做,可保证对于15到24之间的每个值,得到的C是等式5中分数的取整运算。另外,图5A和5B所示电路的多数已经位于硬件部件中,这些部件执行根据ITU H.264标准的正向量化,包括地址发生器和计算S的部件。图5A和5B所示的累加可对所有亮度和色度块(16亮度和8色度块)而被重复。
上面在图4、图5A与5B中所描述和说明的ρ-QP表的直接计算在计算上是复杂的。在最坏的情况下,该直接的计算可包括对每个QP每个系数的一次比较和一次加法。如果QP具有M个可能的值,并有N个系数,则直接计算ρ-QP表所需的操作数量则是M×N。下面将描述更简化的方法,包括各种“阈值”方法。
在一种“阈值”方法中,ρ-QP表可包括对每个未量化的系数Ci的计算QP阈值τi。阈值τi可以是一个量化参数,以使,对于所有QP>τi,Q(C1,QP)=0和对于所有QP≤τi,Q(Ci,QP)≠0 等式6函数Q(Ci,QP)表示利用量化参数QP的系数Ci的量化操作。阈值-QP表T(QP)可利用下面的伪代码来计算for QP=1 to 31T(QP)=0
EndFir I=1 to NT(τi)++;End然后,利用下面的伪代码,可容易地从T(QP)计算一个ρ-QP表for QP=QPMAX-1 to QPMINT(QP)=T(QP+1)+T(QP)Endρ(QP)=T(QP)与直接计算所需的N×M次计算相比,利用阈值方法(也称为一种阈值方式)计算ρ-QP表需要的操作的总数量可降低到2N+M。这通常是假定需要N次操作来查找一个表以计算每个系数的阈值,还需要N次操作来累加N系数的阈值,然后需要M次操作来累计T(OP)表,最后得到ρ-QP表。
如果每个宏块都执行ρ-QP表的计算,则阈值方法将计算降低90%以上。而且,如果该表只是每帧计算一次的话,计算的减少会更大。计算ρ-QP表的阈值方法对于硬件执行也是非常有利的,因为它避免了提供M个并行运行的累加器的需要。如果在硬件中执行,硬件可为每个宏块计算T(QP)表,并把它传送到DSP。DSP将使用该阈值表来计算ρ-QP表。
对于MPEG-4和H.263,τi的计算可执行如下τi=|Ci|>>1,对于帧内AC和DC系数&tau;i=|2Ci|5]]>=(|Ci|×0x666+0x4CD)>>12对于帧间AC和DC系数对于帧内的情况,|Ci|限于
,而对于帧间情况,|Ci|限于
。在012中0x666是(2/5)而0x4CD是(3/10)。从这些等式,可看出,对于MPEG-4和H.263来说,估计τi所必要的计算是微不足道的。由于在量化之后这些系数变为零的机会极少,因此没有必要利用单独的用于帧内AC系数的等式(或查询表)。这可从图6中所示的帧内DC系数的直方图中可以看出。
下面,表3是用于寻找MPEG4帧间系数的阈值的一个示例性查询表(LUT)。
表3

下面,表4是用于寻找MPEG4帧内系数的阈值的一个示例性查询表(LUT)。
表4

具体地,如果由于硬件方面的考虑,需要利用一个表执行MPEG-4的阈值计算,则分别在表3和4中给出帧内和帧间系数的示例性条目。
对于ITU H.264标准,从未量化的系数直接计算阈值更为困难,因为在ITU H.264标准中,除数不但取决于QP,而且取决于其它因素。在图7中表示了根据ITU H.264标准的可用于计算阈值的一个通常的硬件结构。
如图7所示,输入系数Wii被输入到块701,生成Wij的绝对值。块702限制Wij的绝对值到2047,并把其输出发送到加法器707。块702的输出也由块703右移5。块703的输出是到复用器704的输入信号。到复用器704的输入的最高有效位用于从值0、1、2、3、4、5和6中选择输出。
加法器705从复用器704的输出减去1。然后加法器705的输出被左移1。块706的输出被提供到加法器707,并加到块702的输出。加法器707的输出然后右移复用器704输出的值。块709将块708的值限定到31。块709的输出然后被提供到地址发生器710。
地址发生器710生成LUT711使用的地址。具体地,地址发生器接收块709的输出,以及i,j和帧内值,以生成馈送到LUT711的地址。在下面的表6和7中提供了LUT711的示例。表6表示帧内值的一个LUT,表7表示帧间值的一个示例LUT。到地址发生器710的各自输入值可被映射到多个LUT中的一个的特定值。给定一个地址(addr),可从LUT711选择适当的数据。
各个LUT711的输出被提供到加法器717。复用器704的输出也被提供到复用器715。加法器712从复用器704的输出减去1,并将该值作为其它输入提供到复用器715。复用器715的输出是基于来自“与”门713和“或”门714的控制信号而被选择的。到“与”门713的输入i和j是输入系数的下标值,并被倒置。到“或”门714的输入指示当前块是否是一个帧内块,以及当前块是否是一个色度块。当到复用器715的两个输入都是1时,加法器712的输出被复用器选择,其它情况下,复用器715选择复用器704的输出。
复用器715的输出然后被乘法器716乘以6。乘法器716的输出由加法器717添加LUT711中一个的选择输出。加法器717的输出由块718限制其下限为0,上限为52。电路700的输出是量化参数阈值QPT。值QPT可用作给图9的电路900的输入,下文将作讨论。
在图7的硬件电路图中,限制因子L用于限制未量化的系数的绝对值为小于量化所用的最大除数。对于所有大于L的Wij,通常保证τij(QPT)等于QPmax。因此,不需要在对应于大于L的Wij的LUT中存储条目。L的值取决于系数下标以及宏块(帧内或帧间)的模式。下面的表5示出了L的各种值。具体地,表5列出了QP阈值将定位到QPmax之上的绝对值。
表5

在一些实施例中,2的乘方(2047)的最大限制值被用作通用的削波因子。只为32个输入值
存储LUT。在ITU H.264中,在QP中每次增加6时,量化步长(除数)加倍。因此,为映射输入值,最小除数(乘方或2),D=2s可被计算,它将把削波输入转换成0与31之间的一个数。这是通过将输入除以32,并且通过对用于表示输出(由移位移位寄存器和复用器执行)的位的数量计数来完成。削波值然后下移S,如果对该除法进行舍入,可使得查询中的误差的偏差较小。图8A和8B是表示用于阈值LUT的地址计算的舍入偏差效果的图表。
移位因子乘以6,然后加到查询的结果,以得到最终的阈值QP。LUT取决于宏块是帧内块还是帧间块,也取决于系数的下标。表6和7分别给出了帧内和帧间系数的示例性条目。具体来说,表6是为ITUH.264帧内系数寻找阈值的一个示例性查询表,而表7是为ITU H.264帧间系数寻找阈值的一个示例性查询表。
表6

表7

为进一步简化阈值-QP表的创建,可设计硬件以累加全部系数上的阈值QP,形成T(QP)表。可用于累加阈值QP以形成T(QP)表的示例性电路图表示在图9中。
如图9所示,电路900接收量化参数阈值QPT输入。加法器901从QPT减去30,并把该值提供给色度QP LUT902,其一个示例在表8中被给出。复用器904基于对应加法器901的输出符号的输入信号(如由块903所确定的),以及Luma和H264输入信号在QPT的值与存储在色度QP LUT902中的值之间选择。如果符号值是零,存储在色度QP LUT902中的值被选择,亮度值为零指示该块不是一个亮度块,而H264值是1指示编码标准是ITU H.264。否则,复用器904选择QPT作为输出。复用器904的输出包括存储在T(QP)表905中的一个输入地址。但是,来自复用器904的原始地址值输出被输出到加法器906,被加1,并在T(QP)表905中的原始地址值之上存储。为每个系数和这些QPT中的每一个,生成一个特定的QPT。
在表8中给出根据ITU H.264标准的用于把色度QP值转换为QP值的LUT。具体来说,表8示出了映射色度-QP阈值到QP阈值的一个表。
表8

表9列出了不同视频片断的比特率变化的实验结果。表9列出了利用常规基线方法和利用在此所述的ρ-域方法获得的结果进行比较。表9列出了实验中使用的5个不同的视频片断。不同的片断是以4种不同的速率控制方式被编码64千比特/秒(Kbps)和四分之一通用中间格式(QCIF)-15帧/秒(FPS);28Kbps和QCIF-15FPS;55Kbps和QCIF-10FPS;以及35Kbps和QCIF-10FPS。基线方法一般是指上文提到的固定二次方法。
表9

从表9可以看到,常规基线方法和本发明提出的ρ-域方法都足以获得目标比特率。ρ-域方法降低了不同片断之间比特率的变化。
表10列出为以不同目标比特率对各种视频片断进行编码,量化每帧所用位的标准偏差的实验结果。表10列出了利用常规基线方法获得的结果和利用在此所述的ρ-域方法获得的结果。表10包括以不同目标比特率进行编码的5个不同视频片断的数据。这些不同的片断以4个不同的速率控制方式被编码28千比特/秒(Kbps)和四分之一通用中间格式(QCIF)-15帧/秒(FPS);35Kbps和QCIF-10FPS;55Kbps和QCIF-10FPS;以及64Kbps和QCIF-15FPS。
表10

从表10可以看到,ρ-域技术比常规基线系统在性能上显著地要好。平均来说,ρ-域技术把标准偏差降低50%以上。对于一些片断(mother_daughter)来说,这一降低可高达85%。
图10包括4个不同的绘图,表示由常规的基线方法和这里所述的ρ-域速率控制方法得到的每帧使所用的位和每帧的峰值信噪比(PSNR)。图10中的绘图对应64Kbps的mother_daughter片断的编码。
从图10的绘图中可以看出,尽管帧上的位的变化大大降低,但ρ-域速率控制对PSNR并没有负面影响。在该例中,ρ-域速率控制甚至对时间上的PSNR轨迹起到了平滑作用,而这是希望得到的结果。
对编码性能的进一步改善还可通过修正上文中列出的等式1中的参数A与B来获得。具体地,修正等式1中的参数A与B,通过降低帧级的位波动可以进一步改善速率控制,如图11所示。这一修正进一步再将变化平均降低37%。在该例中,对于ρ适应技术中的每个帧,参数被更新一次。参数A与B的修正结合在此所述的阈值方法,被称为适应的阈值方法。
降低帧内QP的变化也是重要的,因为降低帧内QP的变化有助于降低编码delta_QP需要的位,并且通过使帧上的质量相对稳定,QP变化的降低可改善编码质量。降低帧内QP变化的这一目标可通过利用前一帧的按比例的ρ-QP表以执行宏块级的速率控制而获得。这有助于降低ρ-QP表估算的变化,因而降低帧内QP值的波动。如果前一宏块的ρ-QP表被用于速率控制,只有约25%的宏块具有未改变的QP值。可以看到,通过使用前一帧的按比例的ρ-QP表,对于大约80%的宏块来说,QP的值没有变化。
由ρ-域速率控制引起的帧级比特率变化的显著降低不会导致编码视频序列质量的降低,如表11所示。表11提供了从各种编码序列获得的PSNR的比较。
表11


图12进一步示出了由ρ-域速率控制引起的帧级比特率变化的显著降低并不会导致编码视频序列质量的任何降低。尽管已经示出通过利用ρ-域方法,获得一种更精密的速率控制,但从图12可看出,ρ-域速率控制也能保持较低的QP值。平均来说,这不会增加PSNR。而且,质量上的变化可由本发明提出的速率控制方案而被降低。
已经描述了各种实施例。具体来说,已经证明ρ-域速率控制产生了极佳的效果,与常规基线方法相比,把每帧位的变化降低了50到80%。还说明了比特率波动的这一降低不会对PSNR和所看到图像的质量带来任何降低。已说明了可简化生成ρ-QP LUT的多种技术,这包括一种阈值方法,其中创建一个阈值-QP LUT,然后该阈值-QP LUT被用来创建ρ-QP LUT。
这里描述的技术可以在硬件、软件、固件或其任何组合中实现。如果以软件来实现,这些技术可针对包括程序代码的计算机可读介质,当在对视频序列进行编码的设备中执行时,执行上文提到的一个或多个方法。在该情形下,计算机可读介质可包括诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦写可编程只读存储器(EEPROM)、闪存,等等。
程序代码可以计算机可读指令的形式存储在存储器上。在该情形下,诸如DSP的处理器可执行存储在存储器中的指令,来执行这里所述的一个或多个技术。在一些情形下,这些技术可由DSP来执行,该DSP调用各种硬件组件,以加速编码过程。在其它情形下,视频编码器可作为微处理器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、或一些其它硬件-软件组合来实现。这些和其它实施例都包含在所附权利要求的范围内。
权利要求
1.一种视频编码设备包括编码器,其计算视频块的未量化的系数的阈值,其中所述阈值识别对于不同的量化参数(QP’s),量化系数何时变为非零,并且所述编码器生成一个ρ-QP查询表(LUT),所述查询表利用所述阈值将量化后非零系数的数量(ρ’s)映射到所述QP’s;以及存储器,其存储所述ρ-QP LUT。
2.如权利要求1所述的视频编码设备,其中所述编码器使用所述ρ-QP LUT为所述视频块的速率控制视频编码选择一个QP。
3.如权利要求2所述的视频编码设备,其中所述编码器基于所述选择的QP量化所述视频块的系数,并且根据帧间视频编码技术对所述视频块进行编码。
4.如权利要求1所述的视频编码设备,其中所述编码器生成将所述阈值映射到QP’s的阈值-QP LUT;以及使用所述阈值-QP LUT生成所述ρ-QP LUT,其中所述存储器存储所述阈值-QP LUT和所述ρ-QP LUT。
5.如权利要求4所述的视频编码设备,其中所述编码器通过累加从最大QP到最小QP的QP’s的阈值,生成阈值-QP LUT。
6.如权利要求4所述的视频编码设备,其中给定的阈值(Ti)使得对于所有QP>Ti,Q(Ci,QP)=0以及对于所有QP≤Ti,Q(Ci,QP)≠0其中Q(Ci,QP)利用所述量化参数QP表示给定系数Ci的量化操作。
7.如权利要求1所述的视频编码设备,其中所述编码器为一个视频帧的不同视频块生成不同的ρ-QP LUT,并且使用所述给定视频块的相应ρ-QP LUT为给定视频块的速率控制视频编码选择一个QP。
8.如权利要求1所述的视频编码设备,其中所述编码器为一个视频序列的不同视频帧生成不同的ρ-QP LUT,并且使用所述给定视频帧的相应ρ-QP LUT为给定视频帧的速率控制视频编码选择一个QP。
9.如权利要求1所述的视频编码设备,其中所述编码器生成所述ρ-QP LUT所需要的的计算总数大约为2N+M,其中N表示系数的数量,而M表示QP的可能值的数量。
10.一种为视频编码提供速率控制的方法,包括为一个视频块的未量化的系数计算阈值,其中所述阈值识别对于不同的量化参数(QP’s),量化系数何时变为非零;以及生成一个ρ-QP查询表(LUT),所述查询表使用所述阈值将量化后非零系数的数量(ρ’s)映射到所述QP’s。
11.如权利要求10所述的方法,还包括使用所述ρ-QP LUT为所述视频块的速率控制视频编码选择一个QP。
12.如权利要求11所述的方法,还包括基于所述选择的QP量化所述视频块的系数,并且根据帧间视频编码技术对所述视频块进行编码。
13.如权利要求10所述的方法,还包括生成将所述阈值映射到量化参数(QP’s)的阈值-QP LUT;以及使用所述阈值-QP LUT生成所述ρ-QP LUT。
14.如权利要求13所述的方法,其中生成所述阈值-QP LUT包括累加从最大QP到最小QP的所述量化参数(QP’s)的阈值。
15.如权利要求10所述的方法,还包括为视频帧的不同视频块生成不同的ρ-QP LUT,并且使用所述给定视频块的相应ρ-QP LUT为给定视频块的速率控制视频编码选择一个QP。
16.如权利要求10所述的方法,还包括为视频序列的不同视频帧生成不同的ρ-QP LUT,并且使用所述给定视频帧的相应ρ-QPLUT为给定视频帧的视频块的速率控制视频编码选择一个QP。
17.如权利要求10所述的方法,其中给定的阈值(Ti)使得对于所有QP>Ti,Q(Ci,QP)=0和对于所有QP≤Ti,Q(Ci,QP)≠0其中Q(Ci,QP)利用所述量化参数QP表示给定系数Ci的量化操作。
18.如权利要求10所述的方法,其中生成所述ρ-QP LUT所需要的计算总数大约为2N+M,其中N表示系数的数量,而M表示QP的可能值的数量。
19.一种装置包括为视频块的未量化的系数计算阈值的装置,其中所述阈值识别对于不同的量化参数(QP’s),量化系数何时变为非零;以及生成ρ-QP查询表(LUT)的装置,所述查询表使用所述阈值将量化后非零系数的数量(ρ’s)映射到所述QP’s。
20.如权利要求10所述的装置,还包括使用所述ρ-QP LUT为所述视频块的速率控制视频编码选择一个QP的装置。
21.如权利要求20所述的装置,还包括基于所述选择的QP量化所述视频块的系数,并且根据帧间视频编码技术对所述视频块进行编码的装置。
22.如权利要求19所述的装置,还包括用来生成将所述阈值映射到量化参数(QP’s)的阈值-QP LUT的装置;以及使用所述阈值-QP LUT生成所述ρ-QP LUT的装置。
23.如权利要求22所述的装置,其中用来生成所述阈值-QP LUT的装置包括累加从最大QP到最小QP的所述量化参数(QP’s)的阈值的装置。
24.如权利要求22所述的装置,其中给定的阈值(Ti)使得对于所有QP>Ti,Q(Ci,QP)=0以及对于所有QP≤Ti,Q(Ci,QP)≠0其中Q(Ci,QP)利用所述量化参数QP表示给定系数Ci的量化操作。
25.如权利要求19所述的装置,还包括为视频帧的不同视频块生成不同的ρ-QP LUT的装置,和使用所述给定视频块的相应ρ-QPLUT为给定视频块的速率控制视频编码选择一个QP的装置。
26.如权利要求19所述的装置,还包括为视频序列的不同视频帧生成不同的ρ-QP LUT的装置,和使用所述给定视频帧的相应ρ-QP LUT为给定视频帧的视频块的速率控制视频编码选择一个QP的装置。
27.如权利要求19所述的装置,其中生成所述ρ-QP LUT所需要的计算总数大约为2N+M,其中N表示系数的数量,而M表示QP的可能值的数量。
28.如权利要求19所述的装置,其中为视频块的未量化的系数计算阈值的装置包括在数字信号处理器上执行的软件。
29.如权利要求19所述的装置,其中为视频块的未量化的系数计算阈值的装置包括固件。
30.如权利要求19所述的装置,其中为视频块的未量化的系数计算阈值的装置包括硬件。
31.如权利要求30所述的装置,其中生成ρ-QP LUT的装置包括在数字信号处理器上执行的软件。
全文摘要
本公开内容描述了可改善视频编码的速率控制技术。具体来说,所描述的速率控制技术利用每帧被编码的位数与量化后视频块的非零系数的数量之间的关系。量化后视频块的非零系数的数量被称作ρ。ρ的值通常与视频编码中所使用的位数成比例。本公开利用ρ与量化参数(QP)之间的关系,来实现速率控制视频编码。更具体来说,本公开提供生成一个查询表(LUT)的技术,该查询表将ρ的值映射到不同的QP。
文档编号H04N7/24GK1722832SQ20051008410
公开日2006年1月18日 申请日期2005年7月8日 优先权日2004年7月8日
发明者N·马拉亚斯, S·莫洛伊, Y·常 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1