发明名称 基于率失真优化的HEVC码率控制方法
摘要 本发明公开了一种基于率失真优化的HEVC码率控制方法,主要解决视频编码标准HEVC的现有码率控制方法得到的重建视频质量差的问题。其实现步骤是:(1)设置编码器参数;(2)依次读入每个图像组,并对每个图像组的每一帧进行码率控制;(3)对于每一帧,如果不需要编码树单元层码率控制则计算帧的量化参数并进行编码,如果需要则计算帧的目标比特并进行编码树单元层码率控制;(4)采用一种基于率失真优化的量化参数计算方法,依次计算每个编码树单元的量化参数并进行编码,实现对编码树单元层的码率控制。本发明提高了视频编码标准HEVC的重建视频的质量,可用于视频点播、远程教育、远程医疗、会议电视、可视电话和流媒体等。
申请公布号 CN103281530A 申请公布日期 2013.09.04
申请号 CN201310165259.7 申请日期 2013.05.07
申请人 西安电子科技大学 发明人 吴炜;宋彬;王杰;姬瑞旭
分类号 H04N7/26(2006.01)I;H04N7/64(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 王品华;朱红星
主权项 一种基于率失真优化的HEVC码率控制方法,包括如下步骤:(1)读取编码器配置文件,设置编码参数:(1a)根据配置文件,分别设置初始量化参数Qin和所有图像组GOP的大小,并将编码的时域结构设置为随机接入或者低时延,根据配置文件中的原始视频文件路径打开原始视频文件;(1b)设第i个图像组的初始值i=0,设图像组中第j帧的初始值j=0;(2)判断原始视频文件中是否有未编码的图像组,如果原始视频文件中有未编码的图像组,则进入步骤(3);否则,编码器编码结束;(3)读入一个图像组GOP,令i=i+1,j=0;(4)令j=j+1,计算编码器的输出缓冲区占用值Vi,j和图像组GOP的剩余比特Bi,j;(5)根据时域结构配置,判断第i个GOP的第j帧是否需要编码树单元CTU层的码率控制:5a)对于随机接入配置:若i=1,j=1或者i=2,j=1或者i=2,j=2或者i=2,j=3,则不需要编码树单元CTU层码率控制,即把第i个图像组第j帧的所有编码树单元CTU的量化参数设为配置中的初始量化参数Qin,对该j帧的所有编码树单元CTU进行编码后,执行步骤(8);若第i个图像组的第j帧是帧内编码帧,则不需要编码树单元层码率控制,即把其所有编码树单元CTU的量化参数设为上一个图像组中参考帧量化参数的平均值,再对第i个图像组的第j帧所有编码树单元CTU进行编码后,执行步骤(8);若第i个GOP的第j帧是非参考帧,则不需要编码树单元层码率控制,即根据播放顺序的前一帧的所有编码树单元的量化参数和后一帧的所有编码树单元的量化参数来计算第i个图像组第j帧的所有编码树单元CTU的量化参数,再对第i个图像组第j帧的所有编码树单元CTU编码后,执行步骤(8);若第i个图像组GOP的剩余比特Bi,j小于0,则不需要编码树单元层码率控制,即把第i个图像组第j帧的所有编码树单元CTU的量化参数设为前一帧的所有编码树单元CTU的量化参数的平均值加2,再对第i个图像组第j帧的所有编码树单元CTU 进行编码后,执行步骤(8);若第i个图像组第j帧为除上述情况外的其它情况,则需要编码树单元层码率控制,执行步骤(6);5b)对于低时延配置:若i=1,j=1或者i=2,j=1,则不需要编码树单元CTU层码率控制,即把第i个图像组第j帧的所有编码树单元CTU的量化参数设为初始量化参数Qin,再对第i个图像组第j帧的所有编码树单元CTU进行编码后,执行步骤(8);若第i个图像组GOP的剩余比特Bi,j小于0,则不需要编码树单元CTU层码率控制,即把第i个图像组第j帧的所有编码树单元CTU的量化参数设为第i个图像组GOP的第j‑1帧的所有编码树单元CTU的量化参数的平均值加2,再对第i个图像组第j帧的所有编码树单元CTU进行编码后,执行步骤(8);若第i个图像组第j帧为上述情况外的其它情况,则需要编码树单元层CTU码率控制,执行步骤(6);(6)计算第i个图像组的第j帧的目标比特Ti,j;(7)令第i个图像组第j帧的剩余编码树单元的目标比特Tr,i,j=Ti,j,进行编码树单元层码率控制:(7a)设第k个编码树单元k=1,将第i个图像组第j帧的第k个编码树单元的量化参数QPi,j,k设为上一个参考帧的所有编码树单元的量化参数的平均值,并对其进行编码,得到第k个编码树单元的实际编码比特bi,j,k;(7b)令Tr,i,j=Tr,i,j‑bi,j,k,k=k+1;如果Tr,i,j≤0,则令第i个图像组第j帧的第k个编码树单元的量化参数QPi,j,k等于上一个参考帧的所有编码树单元的量化参数的平均值加2,执行步骤(7d);否则,执行步骤(7c);(7c)根据平均绝对差值预测模型,用同一时域层的前一帧的相应位置的编码树单元的实际平均绝对差值预测第i个图像组第j帧每一个剩余的的编码树单元的平均绝对差值,根据码率‑量化参数模型和失真‑量化参数模型,采用拉格朗日方法,通过使剩余编码树单元的失真的倒数和最大化,来计算第k个编码树单元的量化步长QSi,j,k,根据量化步长与量化参数的对应关系得到第i个图像组第j帧的第k个编码树单元的 量化参数QPi,j,k;(7d)用第i个图像组第j帧的第k个编码树单元的量化参数QPi,j,k对第i个图像组第j帧的第k个编码树单元编码,得到第i个图像组第j帧的第k个编码树单元的实际编码比特bi,j,k;(7e)比较k与一帧所包含的编码树单元个数NCTU的大小,如果k<NCTU,返回步骤(7b);如果k≥NCTU,则编码树单元层码率控制结束,执行步骤(8);(8)如果第i个图像组的第j帧是第i个图像组的最后一帧,则返回步骤(2);否则返回步骤(4)。
地址 710071 陕西省西安市太白南路2号