https://www.livevideostack.cn/video/av1-real-time-mode/
1. 关于AV1
Profile必须设置为0;
Real-time的模式;
在实时视频编解码时必须是1Pass
lag-in-frame必须设定0,目标码率必须恒定,若目标码率上下波动的起伏很大对网络的要求很高;
最后比较重要的是速度设定必须大于等于6,目前我们有实时模式下6、7、8三个速度档,很多编码器的决策设定都需要根据CPU参数。
速度档6严格来讲与VP9的区别非常大,VP9的实时速度档使用的是Non-RD进行决策,因为RD ( rate-distortion)决策会很慢,但是在AV1中特意增加了速度档6,使用了RD(rate-distortion)优化来进行决策,因此速度档6的质量是最好的(速度越小质量越好)。
速度档7、8使用Non-RD进行决策,Non-RD即使用其他算法进行快速决策。但是速度越快质量越差。
AV1对于720P以及更高清视频使用了最大128×128的区块,低分辨率视频使用64×64分区。如果视频分辨率太小使用128×128分区后,区块很少,会降低质量,但是对于高清视频来讲,使用128×128可以提高编码速度。分区使用Variance进行决策,在VP9中的基于方差分区 (Variance based partition)使用的是机器学习中的CNN训练模型,通过计算Variance与提前设定的阈值进行比较。
AV1中加入了SVC支持,并且在libaom的代码中放入了SVC示例,该SVC支持比VP9更加灵活。
AV1目前的SIMD优化还没有完全结束,实时编码速度在未来还有比较大的提升空间,暂时还未对一些函数进行优化,目前正在手机端进行NEON的优化。
2. 测试成果
台式机上测试800Kbps HD的720P以上,单线程速度7挡的测试结果为35-45帧每秒,速度8的测试结果为40-70帧每秒,该速度较VP9差,因为AV1编码器的复杂程度较高,虽然速度较慢,但是视频质量高很多。
3. AV1编码器优势
SVC的AV1设定(比VP9直观很多):其中有三个变量:参考帧(设定不同分辨率的参考帧位置)、当前帧刷新哪一个缓存、模式设定,AV1的设定直接将所有的控制权交给用户,用户需要哪种模式即可设置哪种模式。
4. AV1编码器的未来