Jump to content

Draft:Dav1d

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Trudluc (talk | contribs) at 13:26, 7 May 2024 (Expanded on the name). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

dav1d
Developer(s)VideoLAN and FFmpeg communities
Repositorycode.videolan.org/videolan/dav1d.git
Written inAssembly language
C99
TypeVideo decoder
LicenseBSD 2-clause "Simplified" License
Websitewww.videolan.org/projects/dav1d.html

dav1d is a free and open-source software library and a command-line utility to decode video streams in the AV1 video coding format. It is developed by the VideoLAN and FFmpeg communities and sponsored by the Alliance for Open Media.[1] It is designed to be fast, small, cross-platform and multithreaded.[2]

The name dav1d is derived from a combination of factors. Pronounced "David", it merges the recursive acronym "dav1d is an AV1 decoder" with the leetspeak transformation of the name David, where the "i" is replaced by a "1" due to the visual similarity of their glyphs. This playful adaptation captures both the essence of the project as an AV1 decoder and pays homage to the hacker culture, where recursive acronyms and leetspeak are common occurrences.

dav1d is released under the BSD 2-clause "Simplified" License, a distinction from the Copyleft licensing favored by projects like FFmpeg and VideoLAN. This strategic choice of a more permissive license was made to encourage wider adoption of AV1. The decision to adopt a permissive license model for dav1d finds its roots in the Vorbis project, where similar licensing strategies were employed to promote adoption and prevent the entrenchment of proprietary formats.[3]

History

The Alliance for Open Media released AV1 in June 2018 with a production grade and SIMD optimized software decoder called aomdec as part of libaom. A widespread opinion was that the libaom software implementation was slow[4] both in terms of encoding and decoding speeds. The VideoLAN and FFmpeg communities, who had previously written faster software decoders for both VP8[5] and VP9[6] video formats, saw this as a barrier to entry for AV1 and decided to resolve this by writting a faster software decoder.

In October 2018, Ronald Bultje and Jean-Baptiste Kempf announced dav1d at the VideoLAN Developer Days 2018 conference.[7] The goal of the project being to develop a fast AV1 software decoder to jumpstart the AV1 ecosystem and act as a stopgap solution until AV1 hardware decoders are common place.

The first usable version of dav1d, called 0.1.0 Gazelle, was released in December 2018.[8] Releases 0.1.0 to 0.7.1 were primarily dedicated to low-bitdepth SIMD optimizations, aimed at enhancing decoding efficiency on x86 and ARM.[9] In 2019, benchmarks showed that dav1d 0.5 was the fastest AV1 decoder in comparison to libgav1 and libaom.[10] Subsequent releases, from 0.7.1 to 1.0, shifted focus to high-bitdepth SIMD optimizations.[11]

From the beginning, dav1d was designed to be multithreaded, allowing for a combination of both frame-level parallelism and tile-level parallelism. The 1.0.0 release introduced a thread pool design, where each component in the decoding loop runs as a generic task with a simple dependency management mechanism[12]. In this design, worker threads iterate over a list of available tasks, allowing for a more resource-efficient parallel decoding scheme that is independent of bitstream features like tiles.

References

  1. ^ "dav1d - dav1d is an AV1 decoder - VideoLAN". www.videolan.org. Retrieved 2024-04-26.
  2. ^ "Introducing dav1d: a new AV1 decoder - Jean-Baptiste Kempf's Website". jbkempf.com. Retrieved 2024-04-26.
  3. ^ "LWN.net: RMS on the Ogg Vorbis license". lwn.net. Retrieved 2024-04-29.
  4. ^ Ozer, Jan (2018-08-31). "AV1: A First Look".{{cite web}}: CS1 maint: url-status (link)
  5. ^ "Diary Of An x264 Developer » Announcing the world's fastest VP8 decoder: ffvp8". web.archive.org. 2010-08-11. Retrieved 2024-05-03.
  6. ^ "The world's fastest VP9 decoder: ffvp9 | Ronald S. Bultje". Retrieved 2024-05-03.
  7. ^ Video Dev Days 2018: Dav1d: a fast new AV1 decoder. Retrieved 2024-04-29 – via www.youtube.com.
  8. ^ "First release of dav1d, the AV1 decoder - Jean-Baptiste Kempf's Website". jbkempf.com. Retrieved 2024-04-29.
  9. ^ "dav1d 0.7.1 - Jean-Baptiste Kempf's Website". jbkempf.com. Retrieved 2024-04-29.
  10. ^ Hoeven, Ewout ter (2019-10-10). "AV1 is ready for prime time Part 2: Decoding performance". Medium. Retrieved 2024-04-29.
  11. ^ "dav1d 0.9.1: a ton of asm - Jean-Baptiste Kempf's Website". jbkempf.com. Retrieved 2024-04-29.
  12. ^ Ronald S. Bultje - Low-level wizardry in dav1d. Retrieved 2024-05-03 – via www.youtube.com.