一种基于HEVC 和AVC 改进的码率控制算法
2021-01-21何德龙
何德龙
(瑞芯微电子股份有限公司,福建 福州350001)
1 概述
21 世纪是数字化时代,数字化布局世界各个角落,改善了人类的生活质量,提升了人类的工作效率。信息化的核心特征为多媒体技术的广泛应用,不断拓展多媒体技术业务成为当今学术界和工业界长期的热点。与此同时,随着数字信号处理技术、超大规模集成电路技术、有线和无线网络技术、双通道VRAM的快速发展,极大推动了数字视频处理器结构的改进和数字视频压缩算法,使多媒体技术的快速布局、应用成为了可能。
视频通信系统基本采用运动MC-DPCM/DCT 的视频压缩策略,因此编码得到每一帧的码率彼此之间波动较大,如果保持压缩过程中的量化参数不变,帧与帧之间编码消耗比特会明显不同,然而,这种变码率的码流不适合存储或网络传输。
视频传输过程有各种不同的渠道,归纳起来分为有线传输和无线传输两大类,不论是有线传输还是无线传输带宽都有上限,超过带宽上限,视频信息在传输过程会有丢包现象,一旦丢包会破坏视频的完整性。因此,在传输码流之前所有的码率波动需要经过有效的控制,稳定后的码流才能在实际的有线/无线网络上传输,所有的视频系列在编码过程要对码率进行稳定性调节从而满足存储、网络带宽的需求[1-5]。
本文针对CBR 的要求,在普通做法的基础上,增加两帧之间的相似性判断,按区域进行合理的码率分配,即使得每帧的码率波动更小,从而得到视频质量更好、码率更稳定的码率控制方案。仿真结果表明了这种方法的有效性。
2 普通CBR
普通CBR 的做法[8],主要看一帧内码率控制调整的区域大小,有些可以允许调整到每个宏块(MB)/编码树单元(CTU),有些则按多个MB/CTU 进行调整,本文介绍每个MB/CTU 都调整的CBR 方案,其中图1 介绍到帧级为止码率控制流程:
图1 中介绍,首先由整体目标码率,如在1080p 30fps 规格下,码率为1000kps,确定图像组(GOP)级的目标码率即确定GOP 级的qp,接着编码完成每帧获得实际码率后计算当前GOP还剩下多少码率,确定下一帧的帧级delta 值(frame_delta_qp),下一帧的frame_qp 由式(1)确定:
图1 码率控制的整体流程
图2 介绍宏块级码率控制的流程,用于跟本文提出的改进算法进行比较。首先需要计算单帧的目标码率会根据用户配置码率平摊到每帧,再计算每帧内的MB/CTU 个数从而得到每个MB/CTU 的目标码率,编码过程中,接着根据到当前MB/CTU(包括当前MB/CTU)的目标码率总和,减去到当前MB/CTU 为止(不包括当前MB/CTU)实际码率的总和得到码率差值,由码率差值查找事先调试好的表格确定当前MB/CTU 的delta_qp0,其它方式(包括但不局限于)根据当前MB/CTU 的纹理特性查找得到delta_qp1,当前MB/CTU 的qp,block_qp 由式(2)确定:
图2 帧内码率控制的流程
3 本文改进的CBR
经过分析,普通CBR 中的delta_qp0 环节对整个码率的稳定性影响较大,可以调整delta_qp0 从而提升单帧内的码率控制的稳定性,具体流程如图3 所示:
图3 改进的delta_qp0 计算方案
其中,multi_a + multi_b = 1、multi_a 和multi_b 取值[0,1],且multi_b 会根据当前帧跟参考帧相似性强弱进行调整,当前帧和参考帧相似性可以用该两帧的原始帧进行帧差计算绝对值并累加得到frame_sad,根据frame_sad 值的大小进行判断multi_b 的取值,默认值multi_b 取0.2。
4 实验结果
分别对HEVC/AVC 的普通CBR 和本文改进的CBR 进行实验,四组实验都对10 个标准测试源[6][7]进行测试,HEVC 按1080p 30fps 2000kbps 作为目标码率,AVC 按1080p 30fps 4000kbps 作为目标码率,实际测试得到普通CBR 和本文改进的CBR,图4 为HEVC 测试结果。
图5 为AVC 的测试结果。
从图4、图5 两图可以看出,不论是HEVC 还是AVC,改进后的CBR 都比普通CBR 更稳定,且改进后的CBR 码率波动严格控制在5%以内,对有线/无线的传输更友好。
图4 普通CBR vs 本文改进CBR
图5 普通CBR vs 本文改进CBR
5 结论
本文针对普通CBR 中,增加前面参考帧的帧内码率分布的参考,作为另一个稳定性的参考,改进的CBR 可以有效的提升稳定性,把码率波动严格的控制在目标码率的5%以内,对有线/无线传输更友好。下一步的工作将进一步分析其它方式调整帧内码率分配的机制,也可以考虑增加深度学习的方式稳定码率,同时结合GOP 级、帧级、帧内码率控制一起考虑,整体上提升码率控制的稳定性。