一种基于h.264分层b帧编码结构的码率控制方法

文档序号:7750569阅读:263来源:国知局
专利名称:一种基于h.264分层b帧编码结构的码率控制方法
技术领域
本发明涉及视频压缩技术,特别涉及视频压缩技术中的一种基于H. 264分层B帧 编码结构的码率控制方法。
背景技术
码率控制在视频压缩技术中起着至关重要的作用,其最终目的是在给定的目标比 特率及缓存容量的条件下,使得传输的视频质量最优化。H. 264是由联合视频组(JVT)推出的最新视频编码标准,在对其进行码率控制的 时候,由于压缩过程中产生的量化参数(QP)既用于码率控制过程,又用于率失真优化过 程,因此会产生“蛋鸡悖论”的问题一方面,为了计算当前宏块的率失真优化(RDO),需要 利用当前宏块的QP作为输入;另一方面,当前宏块的QP的计算则需要利用该宏块的平均绝 对差(MAD)来揭示其编码复杂度,然而,每个当前宏块的MAD只有在得知其RDO后才能计算 出。因此,如何解决“蛋鸡悖论”成了 H. 264码率控制过程中的难题。目前,应用较为广泛的H. 264码率控制算法是JVT-G012,其要点是为保证码率控 制精度,分为图像组(GOP)级别、帧级别、基本单元(BU)级别的比特数分配,并通过流量模 型计算某个时刻的缓冲器占用量以辅助调整分配的比特数大小;通过线性MAD预测模型来 预测当前编码单元的MAD值,以解决“蛋鸡悖论”;使用MPEG-2中经典的二次码率-量化步 长(R-Q)模型来计算量化步长(Q),从而得到最后的QP。虽然JVT-G012码率控制算法解决 了“蛋鸡悖论”的问题并在多数情况下取得较好的编码效果,但是该算法并不能很好地支持 分层B帧这种特殊的编码结构。在分层B帧编码结构中,关键帧直接或者间接地作为二个连续的GOP之间的分层 B帧的参考帧;较低层的B帧作为较高层的B帧的参考帧。换句话说,越低层的编码帧对整 体的编码效率贡献越大。在这种编码结构中,应当给低层编码帧分配较多的编码比特数,以 保证整体的编码效率。但是,在JVT-G012中,B帧的QP值是对两个相邻P帧的QP值进行 插值计算得到,没有考虑属于不同时域编码层的编码帧的重要性。因此,若仍沿用JVT-G012 中的算法,就会由于没有很好地利用分层B帧的编码特性而导致最终码率控制不准确以及 编码视频质量下降。为了提高JVT-G012算法在分层B帧编码结构下的码率控制性能,可以采用如下的 改进的算法1、采用层叠量化(Cascading QP)的方法首先利用相邻P帧的QP插值得到低层 B帧的QP值,其次对其上层B帧逐层加大QP值,以此保证低层编码帧分配到较多比特数。 这种方法存在的问题是控制结果较为粗糙,并且不同编码帧之间的峰值信噪比(PSNR)波 动很大。2、通过预先定义不同层B帧与P帧编码比特数的目标比例来分配编码比特数,并 伸缩(Scale)由P帧的统计结果得到的二次R-Q模型用于不同时域层的B帧。该方法虽然 可以获得较为精确的码率控制结果,但是,由于不同层B帧与P帧编码比特数的目标比例、二次R-Q模型的伸缩比例都需要预先设定,并不能自适应于不同的编码序列。 综上所述,针对分层B帧编码结构的码率控制,目前的JVT-G012算法及其改进算
法在性能上都存在缺陷。

发明内容
本发明的目的在于克服现有技术的不足,提供一种基于H. 264分层B帧编码结构 的码率控制方法,能够克服JVT-G012码率控制算法及其改进算法在性能上存在的缺陷,实 现对分层B帧编码结构最有效的码率控制。本发明解决其技术问题是采取以下技术方案实现的一种基于H. 264分层B帧编码结构的码率控制方法,用于依次对当前GOP中的每 个编码帧进行码率控制,包括如下步骤(1)在编码第i个GOP的初始阶段,利用可用信道带宽、第i_l个GOP的目标比特 数和实际编码比特数之差计算为每个GOP分配的目标比特数;(2)在为第i个GOP分配目标比特数之后,进行时域层级比特分配,利用第i-Ι个 GOP的编码结果计算第i个GOP的所有时域层的权重系数,并以此计算为每个时域层分配的 目标比特数;(3)在完成第k个时域层编码之后根据其编码结果对剩余未编码时域层分配的目 标比特数进行调整;(4)在编码当前时域层第1个编码帧的初始阶段,通过利用目标缓冲器水平、实际 的缓冲器占用量、可用信道带宽、帧率和当前时域层剩余比特数计算给当前编码帧分配的 比特数;(5)在计算出为当前编码帧分配的比特数之后,采用多MAD预测模型来预测当前 编码帧MAD,采用多二次R-Q模型计算当前编码帧量化步长并转换为QP,最后将QP值经过 调整得到码率控制模块的输出。而且,在步骤⑵中,第i个(i = 2,3...)G0P第k个时域层的权重系数按如下公 式计算
n(k)r(k) . --U 1 = 2 a(i, k)=
^ n(m)/(m)
m=0
0.5 χ T x^dlelse
lTL
Z Xfl (/-1, w)
m=0其中,Xtl(i-1, k)是第i-1个GOP中第k层的编码复杂度,n(k)是第k层的编码 帧数目,&代表GOP中最高的时域层号,Y (k)是第k层编码帧的初始权重系数。而且,所述的第k层编码帧的初始权重系数Y (k)是通过实验得到的,其取值如 下Il
Q
21 2
Oo ___
'1 if k = 0 0.5 if k = \ 0.4 if k = 2 0.3 if k 二 3 0.2 if k 而且,在步骤(3)中,在完成第k个时域层编码之后根据其编码结果对剩余未编码 时域层分配的比特数进行调整的方法为对时域层为第k+j层(j = 1. . . LTL-k)按如下公式 计算
T(i,k + j): 二(“ + ■/)_χ_s、i,h) + T(i,k + j) ^ a(i, k + m)
m=\其中,ABits(i,k)是第k层的目标编码比特数与实际编码比特数之差。而且,在步骤(4)中,在计算给当前编码帧分配的比特数过程中所涉及的第i 1 GOP第k个时域层的目标缓冲区水平下降幅度按如下公式计算
k) χ (^tbl (/ -1) - ^tbl (0) ABTBL(i,k) =
n(k) 其中BTBL(i)表示第i个GOP的目标缓冲器水平,其计算如下
ζ/ / = 2
else
「BL(Z.)“
buffer (2, 0,0)
N -\其中Np是二个I帧之间的P中贞总数,BBuffer (i,k,1)是在完成第i个GOP第k层中 的第,1帧编码后的缓冲器占用量。而且,在步骤(5)中,对于当前编码帧是关键帧的QP值按如下公式进行调整QP(i, 0,0) 二 mm{QP{i — 1,0,0) + v1 xmx{QP{i — 1,0,0)-v QP(i, 0,0)}}其中QP (i,k,1)和分别是调整前及调整后的QP值,V1取值如下 V,= <对于当前编码帧是B帧的QP值按如下公式进行调整QP{u k,l) = min{QPR (i, k, /) + V2,max{QPR (/, k, /), QP(i, k,l)}}其中 =3力 1^,^1)是QP(i,k,l)的参考值,其定义如下QPk (i,k, 1) = max (QP1, QP2I其中,QP1和QP2分别是当前编码帧的二个最邻近参考帧的QP值。
6ifLTL =5ifLtl ~4if^TL =3ifLTL =
6
本发明的优点和积极效果是本发明码在对当前编码帧进行码率控制时,首先计算为GOP分配的编码比特数, 然后计算为当前时域层分配的编码比特数,再计算帧级别编码比特数,最后计算出QP。相对 于现有的码率控制算法,本发明充分地利用分层B帧编码结构的特点,可以更精确合理地 控制属于不同时域层的编码帧比特数,克服了 JVT-G012码率控制算法及其改进算法在性 能上存在的缺陷,提高了码率控制的准确性和编码制质量,避免了不同编码帧之间的峰值 信噪比(PSNR)的波动,能够自适应不同的编码序列,实现了对分层B帧编码结构更有效的 码率控制。


图1为本发明所采用的码率控制方法的流程图;图2为对QCIF的“Container”序列采用本实施例方法与JVT-G012算法及其它改 进算法仿真后的编码性能比较示意图;图3为对QCIF的“Foreman”序列采用本实施例方法与JVT-G012算法及其它改进 算法仿真后的编码性能比较示意图;图4为对CIF的“Bus”序列采用本实施例方法与JVT-G012算法及其它改进算法 仿真后的编码性能比较示意图;图5为对CIF的“Football”序列采用本实施例方法与JVT-G012算法及其它改进 算法仿真后的编码性能比较示意图;图6为对QCIF的“Foreman”序列在196kbps下采用本实施例方法与JVT-G012改 进算法仿真后的逐帧PSNR比较示意图;图7为对CIF的“Bus”序列在1500kbps下采用本实施例方法与JVT-G012改进算 法仿真后的逐帧PSNR比较示意图。
具体实施例方式以下结合实例对本发明做进一步描述。为解决现有技术中存在的问题,本发明提出一种全新的基于H. 264分层B帧编码 结构的码率控制方法。由于低层编码帧对整体编码效率有相对更高的贡献,所以应该给低 层的编码帧分配更多的比特数,以提高高层编码帧在进行运动估计时的效率;相反,应该给 高层编码帧分配较少的比特数,因为高层编码帧影响到的编码帧相对低层而言要少。本发 明提出的方法充分利用了这些编码结构特性,针对每个G0P,根据信道带宽、帧率和缓冲器 状态计算分配的目标比特数;采用了时域层级的比特数分配,保证不同的时域层分配到合 理的目标比特数;在此之后,在帧级别给关键帧以及分层B帧分配相应的目标比特数;最 后,根据目标比特数计算相应的QP并进行调整。相对于现有JVT-G012算法及其改进算法, 本控制方法对分层B帧编码结构下的码率控制更加有效。基于上述介绍,本发明所述方案的具体实现包括以下步骤(1)在编码第i个GOP的初始阶段,利用可用信道带宽、第i_l个GOP的目标比特 数和实际编码比特数之差计算为每个GOP分配的目标比特数;(2)在为第i个GOP分配目标比特数之后,进行时域层级比特分配,利用第i-Ι个GOP的编码结果计算第i个GOP的所有时域层的权重系数,并以此计算为每个时域层分配的 目标比特数;(3)在完成第k个时域层编码之后根据其编码结果对剩余未编码时域层分配的目 标比特数进行调整;(4)在编码当前时域层第1个编码帧的初始阶段,通过利用目标缓冲器水平、实际 的缓冲器占用量、可用信道带宽、帧率和当前时域层剩余比特数计算给当前编码帧分配的 比特数;(5)在计算出为当前编码帧分配的比特数之后,采用多MAD预测模型来预测当前 编码帧MAD,采用多二次R-Q模型计算当前编码帧量化步长并转换为QP,最后将QP值经过 调整得到码率控制模块的输出。为使本发明的目的、技术方案及优点更加清楚明白,以下举实施例,对本发明进一 步详细说明。如图1所示,本发明所采用的码率控制方法包括以下步骤步骤101 序列的第1帧为立即刷新帧(IDR),该帧独立构成第1个G0P,采用 JVT-GO12中的方法分配初始QP,直接编码该帧。步骤102 在编码第i个GOP的初始阶段,计算给整个GOP分配的目标比特数。考 虑了可用信道带宽、帧率以及缓冲器状态,其计算如下^gop (/) =X TVoop + Δ5 (/ -1)(1)其中TroP(i)表示分配给第i个GOP的比特数,u(i,0,0)是第i个GOP初始时刻可 用信道带宽,F是帧率,Ntop是一个GOP里总的帧数,ΔΒ( -Ι)是第i_l个GOP的目标比特数 与实际编码比特数之差。从该公式可以看到,后续GOP的编码结果取决于之前的GOP——如 果上一个GOP目标编码比特数大于实际值,那么当前GOP就可以多分配一些比特数,反之少 分配一些。换句话说,如果上一个GOP的实际编码比特数超支,那么为本GOP分配的比特数 就要“承受”这种超支;如果上一个GOP的实际编码比特数比目标值少,那么剩余的比特数 就可以留给本GOP使用,这样就可以保证总体码率控制的精度。需要注意的是,若当前GOP 是第二个G0P,由于第1个GOP只包含一个IDR帧,故公式(1)中的后半部分不考虑,采用下 式计算rG0P (2) =χ TVgop(2)步骤103 在为第i个GOP分配目标比特数之后,进行时域层级比特分配,利用第 i-Ι个GOP的编码结果计算第i个GOP的所有时域层的权重系数。一方面,属于不同层的编 码帧有不同的R-D特性,另一方面,不同层包含的编码帧数目也各不相同。考虑以上两点因 素,第k个时域层的目标比特数计算如下T(i, k) = α (i, k) XTgop(i) (3)其中α (i,k)是第i个GOP (第1个GOP只含一个IDR帧,不予以计算)中第k层 的权重系数,在本发明中,其计算如下
8
其中Q(i,k,1)是第i个GOP第k层第1帧的QP值,B(i,k,1)是编码该帧产生 的实际比特数。公式(3)和(6)中的n(k)是第k层的编码帧数。采用公式(3)进行计算的原因是首先,若当前GOP为编码序列中的第二个GOP中 (i = 2),通过实验设定合适的权重系数初始值,使前几个GOP的编码性能有所保证;其次, 若当前GOP非编码序列中的第二个G0P,其权重系数计算依赖于为之前一个GOP分配的权重 系数及该权重系数下的编码结果(编码复杂度),使得当前GOP的权重系数计算更为准确。步骤104 在完成第k个时域层编码后,进行时域层级比特调整。与GOP级比特分 配相似,假如某层有剩余比特,余下的比特将被按比例分配给未编码的时域层,以保证编码 质量的最大化;假如该层实际的编码比特数比预期多,那么余下的未编码层将共同承受该 层比特数超支的影响。根据以上分析,在完成第k个时域层编码之后,本发明采用如下公式 来对高于其的剩余未编码时域层分配比特数进行更新
m-\
其中,ABits(i,k)是第k层的目标编码比特数与实际编码比特数之差,j = 1, 步骤105 在编码第i个GOP的第k层的第1帧初始阶段,进行帧级比特分配。与 JVT-G012相似,通过预先为每个编码帧定义目标缓冲器占用量来实现比特分配。分配给i 个GOP第k层的第1帧的比特数通过目标缓冲器水平、帧率、可用信道带宽以及实际的缓冲器占用量计算如下
(8)其中Y是常数,其典型值为0.25。F是帧率,u(i,k,l)是编码第i个GOP第k层 的第1帧时的信道带宽,Beuffer(i, k,1)是在完成第i个GOP第k层中的第1帧编码后的缓 冲器占用量,Bm(i,k,1)表示目标缓冲器水平,其更新如下
(9)不同于JVT-G012,本发明中,目标缓冲区水平下降幅度ABm(i,k)计算如下
10)其中BTBL(i)表示第i个GOP的目标缓冲器水平,其计算如下 其中Np是二个I帧之间的P帧总数。从公式(10)可以看到,与JVT-G012不同,由于不同时域层的B帧编码产生出的比 特数各不相同,因此本发明中的缓冲器控制方法并不是控制整个缓冲器占用量在完成每帧 编码后以相同的幅度下降。不同层的缓冲器下降幅度根据各层权重系数决定,在相同层内 的下降幅度相同。同时,分配给每帧的比特数必须考虑时域层的目标比特数 其中尹和分别代表编码第i个GOP第k层中第1帧前的剩余比特数 及剩余未编码帧数目。最终分配给每帧的目标比特数是PFrame(i·,、/)和fFrame(/,A;,/)的一个加权和
(13)其中β是常数且典型值为0. 9,该值的选取与JVT-G012 —致。步骤106 在第i个GOP的第k层的第1个编码帧比特数分配完成之后,进行QP计 算。采用经典的二次R-Q模型计算量化参数
(14)其中R'是分配给当前编码帧的总比特数,H代表头信息,Mf是当前帧MAD的预测 值,X1和X2是两个模型参数。计算得到的量化步长Q经过转化得到QP。
因为不同时域层内的编码帧具有不同的R-D特性,因此针对不同层,采用不同的 R-Q模型。也就是说,模型参数是将与当前编码帧相同层内的已编码帧的实际编码比特数及 量化步长作为历史数据,使用线性回归方法更新得到。头信息采用相同层内前一个编码帧的实际头信息值作为预测值。MAD预测方法采 用的是JVT-G012中提出的线性预测模型。为了获得准确的预测结果,编码帧在各自层上使 用各自的线性预测模型进行更新。为获得较为平滑的编码质量,通过R-Q模型计算得到的QP还要进行调整。如果当
前编码帧是关键帧,调整过程如下
QPiU 0,0) = mm{QP{i — 1,0,0) + v max {QP(i -1,0,0)-v,, QP(i, 0,0)}} (15)其中QP(i,k,1)和分别是调整前及调整后的QP值。在JVT-G012中,
V1设置为2。对于分层B帧编码结构,在两个关键帧之间插入的B帧数越多,意味着两个关 键帧之间的距离就越远,两者间的相关度就越低,故V1的值就应该越大。本发明通过实验 得到以下经验值 V1 = <
ifLfl = 4if厶 TL = 3ifLpl = 2(16)ifLjl = 1
5 4 3
ν如果当前编码帧是B帧,其调整流程如下
QP(i, k, /) = min {QPR (ζ, k,l) + v2, max {QPR (i, kj), QP(i, k,l)}} (17)其中 为经验值,在本发明中取值为3;QPK(i,k,l)是QP(i,k,l)的参考值,其定 义如下QPk (i,k, 1) = max (QP1, QP2I (18)其中QP1和QP2是当前编码帧的二个最邻近参考帧的QP值。由公式(17)及(18) 可以看到,处于上层的B帧分配到的QP值必须大于或者等于较低的时域层,这是因为越上 层的B帧对整个序列的编码效率贡献越小,所以应该给它们分配更大的QP。步骤107 采用分配到的QP值编码当前帧。步骤108 判断序列是否结束,是则结束码率控制流程,否则进入步骤109。步骤109 判断当前GOP是否编码完毕,是则转入步骤102,否则进入步骤110。步骤110 判断当前时域层是否编码完毕,是则转入步骤104,否则转入步骤105。至此,即完成了本发明所述的分层B帧码率控制方法的过程。以H. 264参考软件JM14. 2作为平台,仿真了所提出的码率控制算法。为了验证该 算法的性能,本发明还与码率控制算法JVT-G012、针对分层B帧编码结构的码率控制改进 算法JVT-W042中的模式3以及JVT-P014中所提出的Cascading QP算法性能进行比较。实验的编码帧率为30fps,两个关键帧之间插入的B帧数目为7 ;运动估计的精度 设置为1/4,搜索范围为16,参考帧的个数为1。开启CABAC编码模式以及RD0。实验选择
11的测试序列为 QCIF 序列 “Container” 和 “Foreman” 以及 CIF 序列 “Bus” 和 “Football”。图2 图5展示了 4个测试序列的R-D性能曲线。其中,JVT-GO12, JVT-PO14中 的Cascading QP的方法、JVT-W042中的模式3以及本发明所提出的码率控制算法在图中 分别标识为“6012”,叩014”,“1042”以及“本发明算法”。从图中可以看出,针对分层B帧 编码结构,与传统码率控制JVT-G012相比,本发明所提出的码率控制算法可以获得相当可 观的编码增益,例如2000kbps下的“Football”序列PSNR增益达到1. 4dB。与Cascading QP的方法以及JVT-W042里的模式3比较,本发明提出的算法也获得了更高的编码质量。图6及图7分别展示了“Foreman”序列在目标码率为196kbps下以及“Bus”序列 在1500kbps下前16个GOP的逐帧亮度PSNR比较图。图中给出了 W042模式3、Cascading QP的算法以及本发明算法的测试结果。从图中可以看出,绝大部分情况下,本发明算法的 PSNR都要高于另外两种算法。同时可以观察到,在同一个GOP内,Cascading QP算法PSNR 波动很大,W042次之,而本发明算法获得的结果相对稳定。表1 表4分别列出了 4个序列的具体编码结果,从中可以看到,本发明所提出的 码率控制方法可以得到比其它方法更精确的控制结果,目标码率与实际码率之间的误差在 2%以内;同时,针对不同序列的不同目标码率值,本发明算法都可以获得比另外3种算法 更高的亮度PSNR值。表1 “Container”序列编码结果 表2 “Foreman”序列编码结果
表3 “Bus”序列编码结果 总之,本发明码率控制方法在对分层B帧编码结构进行码率控制时,首先,利用缓 冲器状态、信道带宽、帧率计算为每个GOP分配的比特数;其次,利用之前一个GOP的编码信 息计算为当前GOP中的每个时域层分配的比特数,并在完成每个时域层编码之后根据该时 域层的编码结果对剩余未编码时域层分配的比特数进行调整;接着,根据目标缓冲器水平 以及实际缓冲器充溢状态、信道带宽、帧率,对每个编码帧分配编码比特数;最后,采用线性 MAD预测模型及二次R-Q模型计算当前编码帧量化步长,在将该量化步长转换成QP之后,做 进一步的调整。采用本发明所述的方法,相对于现有的码率控制方法,可以更有效地利用分 层B帧编码结构特点,克服了 JVT-G012码率控制算法应用于分层B帧编码结构时存在的缺 陷,实现最有效的码率控制。需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并 不限于具体实施方式
中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出 的其他实施方式,同样属于本发明保护的范围。
1权利要求
一种基于H.264分层B帧编码结构的码率控制方法,其特征在于用于依次对当前GOP中的每个编码帧进行码率控制,包括如下步骤(1)在编码第i个GOP的初始阶段,利用可用信道带宽、第i 1个GOP的目标比特数和实际编码比特数之差计算为每个GOP分配的目标比特数;(2)在为第i个GOP分配目标比特数之后,进行时域层级比特分配,利用第i 1个GOP的编码结果计算第i个GOP的所有时域层的权重系数,并以此计算为每个时域层分配的目标比特数;(3)在完成第k个时域层编码之后根据其编码结果对剩余未编码时域层分配的目标比特数进行调整;(4)在编码当前时域层第l个编码帧的初始阶段,通过利用目标缓冲器水平、实际的缓冲器占用量、可用信道带宽、帧率和当前时域层剩余比特数计算给当前编码帧分配的比特数;(5)在计算出为当前编码帧分配的比特数之后,采用多MAD预测模型来预测当前编码帧MAD,采用多二次R Q模型计算当前编码帧量化步长并转换为QP,最后将QP值经过调整得到码率控制模块的输出。
2.根据权利要求1所述的一种基于H.264分层B帧编码结构的码率控制方法,其特征 在于在步骤(2)中,第i个(i = 2,3...)G0P第k个时域层的权重系数按如下公式计算 其中,Xtl(i-l, k)是第i-1个GOP中第k层的编码复杂度,n(k)是第k层的编码帧数 目,&代表GOP中最高的时域层号,Y (k)是第k层编码帧的初始权重系数。
3.根据权利要求2所述的一种基于H. 264分层B帧编码结构的码率控制方法,其特征 在于所述的第k层编码帧的初始权重系数γ (k)是通过实验得到的,其取值如下
4.根据权利要求1所述的-种基于H. 264分层B帧编码结构的码率控制方法,其特征 在于在步骤(3)中,在完成第k个时域层编码之后根据其编码结果对剩余未编码时域层分 配的比特数进行调整的方法为对时域层为第k+j层(j = 1. . . LTL-k)按如下公式计算 其中,ABits(i,k)是第k层的目标编码比特数与实际编码比特数之差。
5.根据权利要求1所述的一种基于H.264分层B帧编码结构的码率控制方法,其特征 在于在步骤(4)中,在计算给当前编码帧分配的比特数过程中所涉及的第i个GOP第k个 时域层的目标缓冲区水平下降幅度按如下公式计算 其中Bm(i)表示第i个GOP的目标缓冲器水平,其计算如下 召孤⑴召孤⑵-W2’0’0)x(/-1) else 其中Np是二个I帧之间的P帧总数,BBuffCT(i,k,1)是在完成第i个GOP第k层中的第 1帧编码后的缓冲器占用量。
6.根据权利要求1所述的一种基于H.264分层B帧编码结构的码率控制方法,其特征 在于在步骤(5)中,对于当前编码帧是关键帧的QP值按如下公式进行调整 其中QP (i,k,1)和A:,/)分别是调整前及调整后的QP值,V1取值如下 对于当前编码帧是B帧的QP值按如下公式进行调整QPiUKI) = min{QPr(i,k,l) + v2,max{QPK(i,k,I),QP{i,k,l)}}其中V2 = 3 ;QPE(i,k, 1)是QP(i,k,1)的参考值,其定义如下 QPk (i,k,D=HiaxiQP1, QP2I其中,QP1和QP2分别是当前编码帧的二个最邻近参考帧的QP值。
全文摘要
本发明公开了一种基于H.264分层B帧编码结构的码率控制方法,用于依次对当前GOP中的每个编码帧进行码率控制,包括步骤(1)根据信道带宽、帧率和之前一个GOP的目标比特数和实际编码比特数之差计算为每个GOP分配的比特数;(2)利用之前一个GOP的时域层编码信息计算为当前GOP中的时域层分配的比特数;(3)在对时域层完成编码之后根据其编码结果对剩余未编码时域层分配的比特数进行调整;(4)对每个编码帧分配编码比特数;(5)计算当前编码帧量化步长,在将该量化步长转换成QP之后,做进一步的调整得到码率控制模块的输出。本发明充分利用了分层B帧编码结构的特点,克服了JVT-G012码率控制算法及其改进算法在性能上的缺陷,实现对分层B帧编码结构更有效的码率控制。
文档编号H04N7/50GK101917614SQ201010190719
公开日2010年12月15日 申请日期2010年6月3日 优先权日2010年6月3日
发明者叶锋, 宗晓飞, 常侃, 张文豪, 杨波, 邸金红, 门爱东, 韩钰 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1