{
  "schemaVersion": 1,
  "contentVersion": "ca42e61ede0a24f789d7287a0001244ad22f4abf",
  "id": "docs/codecs/video/avs3",
  "collection": "docs",
  "title": "AVS3",
  "description": "AVS3 is China's third-generation video standard, adopted by DVB, with open-source baseline-profile tools (uavs3e, uavs3d) and no browser support.",
  "canonicalUrl": "https://encode.wiki/codecs/video/avs3/",
  "apiUrl": "https://encode.wiki/api/v1/documents/docs/codecs/video/avs3.json",
  "markdownUrl": "https://encode.wiki/api/v1/markdown/docs/codecs/video/avs3.md",
  "status": "current",
  "tags": [
    "migrated",
    "video"
  ],
  "license": "CC BY-SA 4.0",
  "dates": {
    "lastVerified": "2026-10-08T00:00:00.000Z"
  },
  "authors": [],
  "sources": [
    {
      "title": "uavs3e AVS3 encoder",
      "url": "https://github.com/uavs3/uavs3e",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "uavs3d AVS3 decoder",
      "url": "https://github.com/uavs3/uavs3d",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "DVB adds AVS3 to its video coding specification",
      "url": "https://dvb.org/?p=26060",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "CSI: AVS3 added to DVB codec toolkit (profile history)",
      "url": "https://csimagazine.com/csi/AVS3-added-to-DVB-codec-toolkit.php",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    },
    {
      "title": "FFmpeg Changelog (AVS3 demuxer and libuavs3d decoder)",
      "url": "https://github.com/FFmpeg/FFmpeg/blob/n9.0.2/Changelog",
      "accessedAt": "2026-10-08T00:00:00.000Z"
    }
  ],
  "provenance": {
    "originUrl": "https://github.com/av1-community-contributors/codec-wiki/blob/37c3317fd058b23c71a87679bed5619a98f77752/docs/video/AVS3.mdx",
    "originCommit": "37c3317fd058b23c71a87679bed5619a98f77752",
    "migratedAt": "2026-08-21T00:00:00.000Z",
    "modified": true,
    "originPath": "docs/video/AVS3.mdx"
  },
  "headings": [
    {
      "depth": 2,
      "text": "Implementations",
      "anchor": "implementations"
    },
    {
      "depth": 2,
      "text": "Encode and decode",
      "anchor": "encode-and-decode"
    },
    {
      "depth": 2,
      "text": "Pitfalls",
      "anchor": "pitfalls"
    }
  ],
  "sections": [
    {
      "id": "_preamble",
      "title": "Page introduction",
      "depth": 0,
      "canonicalUrl": "https://encode.wiki/codecs/video/avs3/",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/_preamble.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/_preamble.md",
      "checksum": "59f6e984368cdc89103687d199f81762e5d9a0bc3231bbde802c5acbc3e91f04",
      "bytes": 911
    },
    {
      "id": "implementations",
      "title": "Implementations",
      "depth": 2,
      "anchor": "implementations",
      "canonicalUrl": "https://encode.wiki/codecs/video/avs3/#implementations",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/implementations.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/implementations.md",
      "checksum": "badb4edc022452be1ecafc57b8110aac5952e3923a4eca4f4e3ad12b78f8e83c",
      "bytes": 996
    },
    {
      "id": "encode-and-decode",
      "title": "Encode and decode",
      "depth": 2,
      "anchor": "encode-and-decode",
      "canonicalUrl": "https://encode.wiki/codecs/video/avs3/#encode-and-decode",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/encode-and-decode.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/encode-and-decode.md",
      "checksum": "78f6699e8b34e588e7cc885242345ae99c120ca06f8f5b5c9ad40c83125fc455",
      "bytes": 598
    },
    {
      "id": "pitfalls",
      "title": "Pitfalls",
      "depth": 2,
      "anchor": "pitfalls",
      "canonicalUrl": "https://encode.wiki/codecs/video/avs3/#pitfalls",
      "apiUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/pitfalls.json",
      "markdownUrl": "https://encode.wiki/api/v1/sections/docs/codecs/video/avs3/pitfalls.md",
      "checksum": "8d85bcaac500d627b734d45bc835de0b111693ed2d0ff15fb85422239c2f7238",
      "bytes": 382
    }
  ],
  "outboundReferences": [
    "/codecs/video/hevc/",
    "/codecs/video/vvc/",
    "/reference/video-codec-support/",
    "/tools/software-encoders/uavs3e/",
    "https://github.com/uavs3/uavs3d",
    "https://github.com/uavs3/uavs3e"
  ],
  "checksum": "81b30f652379f3f2820d17b5ff1659dd70dacee65396847696ebdd022120a7ea",
  "contentFormat": "markdown",
  "markdown": "AVS3 is the third-generation video standard from China's Audio Video coding Standard (AVS) Workgroup, in the same efficiency class as [HEVC](/codecs/video/hevc/) and [VVC](/codecs/video/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.\n\nIn 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.\n\nYou will meet AVS3 mainly in Chinese broadcast and streaming. Outside that, tooling is thin and there is no browser support.\n\n## Implementations\n\n| Project | Role | Notes |\n| --- | --- | --- |\n| [uavs3e](https://github.com/uavs3/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](/tools/software-encoders/uavs3e/) for building and options. |\n| [uavs3d](https://github.com/uavs3/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). |\n| 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. |\n\nBoth 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.\n\n## Encode and decode\n\nBuild uavs3e as described on its [page](/tools/software-encoders/uavs3e/); current CMake and GCC need extra flags. The decoder builds with stock CMake once the old minimum-version check is overridden, and produces `uavs3dec`:\n\n```sh\ncmake -S uavs3d -B uavs3d/build -DCMAKE_POLICY_VERSION_MINIMUM=3.5 && cmake --build uavs3d/build\n```\n\nThe encoder reads only raw planar YUV, so give it the size, frame rate and bit depth. `-q` is the QP:\n\n```sh\nuavs3enc -i input.yuv -w 1920 -h 1080 --fps_num 24 --fps_den 1 -d 8 -q 32 -o output.avs3\nuavs3dec -i output.avs3 -o decoded.yuv\n```\n\n## Pitfalls\n\n- A 10-bit stream needs a decoder built with `-DCOMPILE_10BIT=1`. The default 8-bit build cannot decode it.\n- Raw YUV output carries no dimensions, frame rate or bit depth. Take them from the encode or the decoder's log.\n- Do not plan web delivery around AVS3. Make an AVC, VP9 or AV1 rendition for browsers; see [video codec support](/reference/video-codec-support/).\n"
}
