SVT-AV1 4.2.0(可扩展视频技术 AV1)库现已发布,其中包含 AV1 视频编码格式编码器和解码器的实现,并通过 x86_64 和 ARM 处理器中现有的硬件并行计算扩展进行加速。该项目由英特尔与 Netflix 合作创建,旨在实现适用于即时视频转码和视频点播 (VOD) 服务的性能水平。目前,该项目的开发工作正在开放媒体联盟 (AOMedia) 的主持下进行,该联盟负责监督 AV1 视频编码格式的开发。该项目之前是在 OpenVisualCloud 项目内开发的,该项目还开发了 SVT-HEVC 和 SVT-VP9 编码器。代码采用 BSD 许可证分发。
SVT-AV1 可以编译到任何架构的系统上,只要编译器支持 C99 标准即可。但在 x86_64 系统上性能最佳,因为该系统利用了基于 SIMD 指令的汇编优化(CPU 最好支持 AVX2,但 SSE2 也足够)。内存消耗取决于用于编码的处理器核心数,这由“--lp”选项控制。由于 AV1 中使用的算法非常复杂,因此编码这种格式需要比其他格式多得多的资源。
新 SVT-AV1 版本的变化包括:
- 新的 TUNE-VMAF 优化模式已经实现,根据 VMAF 指标(评估人类感知)可节省高达 15% 的比特率,同时保持相同的视觉质量水平;根据 PSNR 指标(评估像素级原始数据再现的准确性)可略微降低质量。
- 已实现单线程编码模式,可与随机访问模式一起使用。
- 在预设 M3-M5 中,随机访问模式下编码时的质量/速度权衡得到了优化。
- 新增命令行选项:--cqp、--enable-intrabc、--hbd-mds、--enable-kf-tf。
- 除了之前支持的 IVF 格式外,还增加了对原始 OBU 格式输出的支持。
- 在“—rtc”(实时通信)模式下编码时,优化了质量/速度的权衡,提高了压缩效率,并降低了低分辨率编码时的内存消耗。新增了“—max-intra-bitrate-pct”和“—max-inter-bitrate-pct”参数。
- 新增了实时恒定比特率编码模式——CBR(恒定比特率),采用卡尔曼滤波器实现,支持循环更新,将复杂的变化分散到多个帧中,如果帧不符合指定的比特率,则以较差的质量重新编码。
- 在“--rtc”模式下,增加了对动态更改比特率设置和预设值的支持。
- 新增了用于管理关键帧的 API,支持 LTR(长期参考)和两级参考图片集 (RPS) 结构。
- 熵编码的实现方式经过重新设计,可以直接写入瓦片缓冲区,简化算术编码器,并在量化后实现残余数据的修剪。
- 新增优化:CDEF(约束方向增强滤波器)用于消除对比度变化区域的模糊,MD(模式决策)和 ME(运动估计)用于快速处理静态对象。
- 优化检测视频中是否存在屏幕内容的图像,并应用特定的编码方法来保持文本清晰度。
- 添加了构建选项 ENABLE_STACK_PROTECTOR,用于禁用“-fstack-protector”标志,从而消除堆栈溢出检查的开销。
- 针对 ARM 架构增加了额外的优化,并利用扩展的 NEON 指令来加快计算速度。
来源: opennet.ru
