?
Ali266是阿里巴巴开发的实时H.266/VVC软件编码器,在JVET-W0127提案中有相关介绍(公众号回复W0127可以获取提案)。
为了提高编码速度,Ali266应用了多种适用于VVC的快速编码算法。对于很多耗时高的模块例如运动估计和运动补偿,会在多个数据上应用同一组操作,所以Ali266使用SIMD指令集来减少时钟周期数。现代的平台都是基于多核架构,例如4核、8核等,Ali266支持图像级、模块级多线程和波前并行处理等。此外,Ali266还重新设计了软件架构以提升访存效率和克服性能瓶颈。
为了提高编码效率,Ali266采用了一些高层实现,例如运动补偿时域滤波(motion-compensated temporal filtering,MCTF),自适应GOP size决策,场景切换检测,屏幕内容检测等。此外,应用量化控制算法来提升视频主观质量,例如CU-tree,自适应QP offset决策,色度QP offset决策等。
使用Ali266编码的码流符合VVC标准,能够被VTM11.0解码。
Ali266共有两个档次,slow preset和fast preset。
Ali266 slow preset:
-
使用VTM-13.0作为anchor
-
使用JVET CTC序列,包括lass A1, class A2, class B 和 class C,QP={22,27,32,37}
-
使用 Random Access configuration配置
Ali266 fast preset:
-
使用x265 medium preset作为anchor
-
使用VOD视频作为测试序列
-
使用 Random Access configuration配置
综上,Ali266 slow preset 对于{Y, U, V, YUV} ?相对于VTM-13.0的BD-Rate为{10.95%, -6.11%,-4.50%, 7.11%} ?,加速比227倍。Ali266 fast preset对于{Y, U, V, YUV} 相对于x265 medium preset的BD-Rate为{-32.87%, -46.07%,-42.70%, -35.35%} ?,对于720p视频的平均编码速度为37.72fps。
Ali266 支持多线程编码,下图是线程数量分别为1,4,12时相对于单线程的加速比。
?
?