发明名称 视频编码比特率的控制方法
摘要 视频编码比特率的控制方法,属于视频信息传输与处理领域,克服现有码率控制方法的不足,在低码率下准确有效地控制输出码率。本发明步骤为:(1)进行整数离散余弦变换,求取输入图像变换参数;(2)定义GOP第一帧和整个序列第二帧的量化参数;(3)确定当前P帧图像的目标编码比特数;(4)计算码率预测模型中的待定系数a和b;(5)求取当前P帧的量化参数;(6)使用量化参数进行后续编码工作,同时将当前图像帧的有关参数保存于滑动窗口中;(7)重复步骤(1)~(6),直到全部图象编码结束。本发明基于低码率情况实现快速、准确的码率控制,输出码率波动小、PSNR值平稳,接近于目标码率,鲁棒性好,适用于所有的测试序列。
申请公布号 CN100574427C 申请公布日期 2009.12.23
申请号 CN200510019352.2 申请日期 2005.08.26
申请人 华中科技大学 发明人 朱光喜;李宵;戴声奎;刘文予;喻莉
分类号 H04N7/24(2006.01)I 主分类号 H04N7/24(2006.01)I
代理机构 华中科技大学专利中心 代理人 方 放
主权项 1.一种视频编码比特率的控制方法,包括下述步骤:(1):对输入的二维图像序列进行整数离散余弦变换,得到相应的变换参数,即帧有效比特位VF;然后,根据图像帧排序进行操作:图像帧是GOP的第一帧或第二帧,转步骤(2);否则,转步骤(3);(2):确定特殊帧的量化参数,当前帧是GOP中第一帧I帧,进入步骤(2.1),当前帧是图像序列第一个P帧,进入步骤(2.2);(2.1):GOP中第一帧I帧,其量化参数QP_I1根据经验公式确定,然后转步骤(6),计算量化参数QP_I1的经验公式为:<maths id="math0001" num="0001" ><math><![CDATA[ <mrow> <msub> <mrow> <mi>QP</mi> <mo>_</mo> <mi>I</mi> </mrow> <mn>1</mn> </msub> <mo>=</mo> <mfenced open='' close=''> <mtable> <mtr> <mtd> <mfenced open='{' close=''> <mtable> <mtr> <mtd> <mn>40</mn> </mtd> <mtd> <mn>0</mn> <mo>&lt;</mo> <mi>bpp</mi> <mo>&le;</mo> <mi>l</mi> <mn>1</mn> </mtd> </mtr> <mtr> <mtd> <mn>30</mn> </mtd> <mtd> <mi>l</mi> <mn>1</mn> <mo>&lt;</mo> <mi>bpp</mi> <mo>&le;</mo> <mi>l</mi> <mn>2</mn> </mtd> </mtr> <mtr> <mtd> <mn>25</mn> </mtd> <mtd> <mi>l</mi> <mn>2</mn> <mo>&lt;</mo> <mi>bpp</mi> <mo>&le;</mo> <mi>l</mi> <mn>3</mn> </mtd> </mtr> <mtr> <mtd> <mn>15</mn> </mtd> <mtd> <mi>l</mi> <mn>3</mn> <mo>&lt;</mo> <mi>bpp</mi> </mtd> </mtr> </mtable> </mfenced> </mtd> <mtd> </mtd> </mtr> </mtable> </mfenced> <mi>bpp</mi> <mo>=</mo> <mfrac> <mrow> <mi>bit</mi> <mo>_</mo> <mi>rate</mi> </mrow> <mrow> <mi>frame</mi> <mo>_</mo> <mi>rate</mi> <mo>&times;</mo> <msub> <mi>N</mi> <mi>pixel</mi> </msub> </mrow> </mfrac> </mrow>]]></math></maths>其中,bit_rate为控制的目标码率,frame_rate为目标帧率,Npixel为图像中像素的个数;视频序列为QCIF格式时,l1=0.1,l2=0.3,l3=0.6;视频序列为CIF格式时,l1=0.2,l2=0.6,l3=1.2;(2.2):GOP中第一个P帧,即图象序列第二帧,其量化参数为QP_I1+5,然后转步骤(6);(3):根据目标缓冲区和虚拟缓冲区大小,确定当前P帧图像的目标编码比特数:当前P帧在图像序列的第一个GOP内,进入(3.1);否则,进入(3.2);(3.1):计算当前P帧的虚拟缓冲区占用率V1(j)以及目标缓冲区占用率S1(j),j>1,然后转(3.3);(3.2):计算第i个GOP中第j帧的虚拟缓冲区占用率Vi(j)和目标缓冲区占用率S1(j),i>1,j>1;(3.3):求取第j帧编码前GOP中剩余可编码比特数UnAllocated_Bit(i,j);(3.4):计算第i个GOP中第j帧的目标编码比特数Ti(j),i≥1,j>1;(4):计算码率预测模型中的待定系数a和b;设立码率预测模型如下:<maths id="math0002" num="0002" ><math><![CDATA[ <mrow> <mi>Frame</mi> <mo>_</mo> <mi>actual</mi> <mo>_</mo> <mi>bit</mi> <mo>=</mo> <mrow> <mo>(</mo> <mfrac> <mi>a</mi> <mi>QP</mi> </mfrac> <mo>+</mo> <mfrac> <mi>b</mi> <msup> <mi>QP</mi> <mn>2</mn> </msup> </mfrac> <mo>)</mo> </mrow> <mo>&times;</mo> <msub> <mi>V</mi> <mi>F</mi> </msub> </mrow>]]></math></maths>根据滑动窗口中保存的数据,计算待定系数a和b;(5):求取第i个GOP第j帧的量化参数QPi(j);把当前P帧的目标比特数Ti(j)作为Frame_actual_bit,同时将求出的待定系数a和b、帧有效比特位VF代入码率预测模型中,求出理想量化参数Ideal_QP(j);将理想量化参数Ideal_QP(j)与滑动窗口中其他帧量化参数的平均值作为最终的量化参数QPi(j);(6):使用求取的量化参数,进行量化、熵编码后续的编码工作;同时将当前图像帧的编码比特数、量化参数和变换参数保存于滑动窗口中;滑动窗口采用先进先出的内存管理策略,保存与当前帧最近的图像编码参数;(7):重复步骤(1)到步骤(6),直到全部图象编码结束。
地址 430074湖北省武汉市洪山区珞喻路1037号