SVT-AV1 2.0(可扩展视频技术 AV1)库已发布,其中包含 AV1 视频编码格式的编码器和解码器的实现。 该项目由英特尔与 Netflix 合作创建,旨在实现适合即时视频转码和视频点播 (VOD) 服务使用的性能水平。 目前,开发工作是在开放媒体联盟 (AOMedia) 的支持下进行的,该联盟负责监督 AV1 视频编码格式的开发。 此前,该项目是在 OpenVisualCloud 项目框架内开发的,该项目还开发了 SVT-HEVC 和 SVT-VP9 编码器。 该代码是在 BSD 许可证下分发的。
SVT-AV1 可以针对任何具有支持 C99 标准的编译器的体系结构的系统进行汇编,但最佳性能是在 x86_64 系统上实现的,该系统使用基于 SIMD 指令的汇编优化(最好有CPU 中支持 AVX2,但作为最低配置和 SS2 就足够了)。内存消耗取决于编码期间使用的处理器内核的数量,由“-lp”选项调节。由于 AV1 中使用的算法的复杂性,编码这种格式需要比其他格式更多的资源,这不允许使用标准 AV1 编码器进行实时转码。例如,与 x1(“main”配置文件)、x5721(“high”配置文件)和 libvpx-vp5869 编码器相比,AV658 项目中的库存编码器需要 264、264 和 9 倍的计算量。
新 SVT-AV1 版本的变化包括:
- 已过渡到新的版本编号,根据该编号,版本中的第一位数字将随着每次 API/ABI 更改而更改。
- 对最后一帧中过渡到流结束指示(EOS - End Of Stream)相关的 API 进行了更改,而不是使用空帧,从而消除了等待额外帧的延迟。 API 更改已反映在 FFmpeg 代码库中。
- 三通道可变比特率模式 (3-pass VBR) 已被删除,现在由多通道 VBR 机制取代。 VBR 多通道模式已减少为两通道,以确保与 FFmpeg 集成。
- 编码器进行了优化,M9-M13 预设的压缩效率提高了 1-4%,M5 预设的内存消耗在 LP 20 模式下降低了 35-8%,其他模式下增加 1-5%。其他预设中的内存消耗减少了 1-5%。
- 已针对设置高水平质量的预设进行了质量/速度折衷的优化。参考质量 MR 预设已加速 100%。
- ARM 特定的优化已添加到仅限 C 的函数中。
此外,我们还可以注意到 dav1d 1.4.1 项目的发布,其中 VideoLAN 和 FFmpeg 社区正在开发一个库,其中实现了 AV1 视频编码格式的替代免费解码器。 dav1d 库支持 AV1 的所有功能,包括高级类型的子采样以及规范中规定的所有颜色深度控制参数(8、10 和 12 位)。 dav1d 的主要特点是专注于实现尽可能高的解码性能并确保多线程模式下的高质量工作。该项目代码是用 C (C99) 编写的,带有汇编插入 (NASM/GAS),并在 BSD 许可证下分发。已实现对 x86、x86_64、ARMv7 和 ARMv8 架构以及操作系统 FreeBSD、Linux、Windows、macOS、Android 和 iOS 的支持。
dav1d 1.4 版本的显着之处在于支持新的 Loongarch 和 RISC-V 架构,以及引入基于 AVX-512 指令的额外优化,加速 6tap 滤波器在 ARM 系统上的运行,提高多线程工作的效率并降低ARM64、ARM32 和 RISC 系统 V 上的二进制数据大小。修复了漏洞 CVE-2024-1580,该漏洞在处理非常大的帧大小时由于整数溢出而导致越界写入。
来源: opennet.ru
