Release of SVT-AV1 encoder 2.0 and dav1d 1.4 decoder for the AV1 video format

The release of the SVT-AV1 2.0 library (Scalable Video Technology AV1) has been published, featuring implementations of the encoder and decoder for the AV1 video coding format, accelerated by the hardware parallel processing capabilities of modern Intel CPUs. The project was created by Intel in partnership with Netflix to achieve a performance level suitable for real-time video transcoding and use in video-on-demand (VOD) services. Currently, development is under the aegis of the Open Media Alliance (AOMedia), which oversees the evolution of the AV1 video coding format. Previously, the project was part of the OpenVisualCloud initiative, which also develops the SVT-HEVC and SVT-VP9 encoders. The code is distributed under the BSD license.

SVT-AV1 can be built for systems based on any architecture for which a compiler supporting the C99 standard is available, but the best performance is achieved on x86_64 systems, where assembler optimizations based on SIMD instructions are used (preferably with CPU support for AVX2, but SS2 is sufficient as a minimum). Memory consumption depends on the number of processor cores engaged in encoding, regulated by the "—lp" option. Due to the complexities of the algorithms used in AV1, significantly more resources are required for encoding in this format compared to others, which does not allow for the use of the standard AV1 encoder for real-time transcoding. For example, the standard encoder from the AV1 project requires 5721, 5869, and 658 times more computations compared to the x264 encoders ("main" profile), x264 ("high" profile), and libvpx-vp9.

Among the changes in the new SVT-AV1 release:

  • A new version numbering system has been implemented, under which the first digit in the version will change with each API/ABI change.
  • Changes have been made to the API related to the transition to End Of Stream (EOS) indication in the last frame instead of using an empty frame, which has eliminated the delay waiting for an unnecessary frame. This API change is already reflected in the FFmpeg codebase.
  • The three-pass variable bitrate mode (3-pass VBR) has been removed, and a multi-pass VBR mechanism is now used instead. The multi-pass VBR mode has been reduced to two passes to ensure integration with FFmpeg.
  • The encoder has been optimized, resulting in a 1-4% improvement in compression efficiency for presets M9-M13, while memory consumption in preset M5 has decreased by 20-35% in LP 8 mode and by 1-5% in other modes. Memory usage in the other presets has dropped by 1-5%.
  • Optimization of the quality/speed trade-offs has been carried out for presets that set a high-quality level. The MR preset, which provides reference quality, has been accelerated by 100%.
  • Optimizations specific to the ARM architecture have been added to functions written solely in C.

Additionally, it is worth noting the release of the dav1d 1.4.1 project, in which the VideoLAN and FFmpeg communities are developing a library implementing an alternative open-source decoder for the AV1 video encoding format. The dav1d library supports all AV1 features, including expanded sub-sampling types and all specified parameters for color depth control (8, 10, and 12 bits). A key feature of dav1d is its focus on achieving maximum possible decoding performance and ensuring quality operation in multithreaded mode. The project code is written in C (C99) with assembler inserts (NASM/GAS) and is distributed under the BSD license. Support for x86, x86_64, ARMv7, and ARMv8 architectures, as well as operating systems FreeBSD, Linux, Windows, macOS, Android, and iOS has been implemented.

Version dav1d 1.4 is notable for supporting new architectures Loongarch and RISC-V, as well as utilizing additional optimizations based on AVX-512 instructions, accelerating the performance of 6tap filters on ARM systems, improving multithreading efficiency, and reducing binary size on ARM64, ARM32, and RISC-V systems. The CVE-2024-1580 vulnerability, which allowed for writing to memory outside buffer boundaries due to integer overflow when processing very large frames, has been resolved.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster