AVS3
37c3317fd058; modified for Encode Wiki · CC BY-SA 4.0AVS3 is the third-generation video standard from China’s Audio Video coding Standard (AVS) Workgroup, in the same efficiency class as HEVC and VVC. Work started in December 2017; the main profile was finalised in March 2019 and the High profile in August 2021, published as T/AI 109.2-2021. FFmpeg labels it AVS3-P2/IEEE 1857.10. It is a conventional block-based hybrid codec that nothing built for AVC or HEVC can decode.
In July 2022 DVB added AVS3 to its video coding specification (BlueBook A001r20) with four conformance points matching those defined for VVC: a 4K HDR baseline receiver plus high-frame-rate and 8K points. DVB’s announcement cites submitted results of about 40% bitrate savings over HEVC at equal subjective quality.
You will meet AVS3 mainly in Chinese broadcast and streaming. Outside that, tooling is thin and there is no browser support.
Implementations
Section titled “Implementations”| Project | Role | Notes |
|---|---|---|
| uavs3e | Encoder | Baseline profile, 4:2:0. 8-bit by default; 10-bit only without SIMD. BSD 4-clause. Last release v1.3 (2022), last commit August 2023. See the uavs3e page for building and options. |
| uavs3d | Decoder | Baseline profile, 8-bit by default and 10-bit when built with -DCOMPILE_10BIT=1. SSE4/AVX2 and ARM optimisations. BSD 3-clause. Latest release 1.2 (August 2026). |
| FFmpeg | Decoder | Decodes through libuavs3d (--enable-libuavs3d, since FFmpeg 4.4) and has a raw .avs3 demuxer. There is no AVS3 encoder, and most distribution builds do not include libuavs3d. |
Both uavs3 projects come from Peking University Shenzhen Graduate School, Peng Cheng Laboratory and Guangdong Bohua UHD Innovation. They implement only the baseline profile, not the High profile used for DVB’s conformance points.
Encode and decode
Section titled “Encode and decode”Build uavs3e as described on its page; current CMake and GCC need extra flags. The decoder builds with stock CMake once the old minimum-version check is overridden, and produces uavs3dec:
cmake -S uavs3d -B uavs3d/build -DCMAKE_POLICY_VERSION_MINIMUM=3.5 && cmake --build uavs3d/buildThe encoder reads only raw planar YUV, so give it the size, frame rate and bit depth. -q is the QP:
uavs3enc -i input.yuv -w 1920 -h 1080 --fps_num 24 --fps_den 1 -d 8 -q 32 -o output.avs3uavs3dec -i output.avs3 -o decoded.yuvPitfalls
Section titled “Pitfalls”- A 10-bit stream needs a decoder built with
-DCOMPILE_10BIT=1. The default 8-bit build cannot decode it. - Raw YUV output carries no dimensions, frame rate or bit depth. Take them from the encode or the decoder’s log.
- Do not plan web delivery around AVS3. Make an AVC, VP9 or AV1 rendition for browsers; see video codec support.