Dirac (video compression format)

Revision as of 02:11, 8 January 2025 by imported>Randy Kryn (uppercase per direct link (Nobel Prize in Physics))
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description Template:Update Template:Use British English Template:Use dmy dates Template:Infobox file format

Dirac (and Dirac Pro, a subset standardised as SMPTE VC-2) is an open and royalty-free video compression format, specification and software video codec developed by BBC Research & Development.<ref name="bbc-wp-159">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="FAQ">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="bbc-vc-2">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Dirac aimed to provide high-quality video compression for Ultra HDTV and competed with existing formats such as H.264.<ref name="bbc-wp-124"/>

The specification was finalised in January 2008, and further developments were only bug fixes and constraints.<ref name="Dirac-2.2.3"/> In September of that year, version 1.0.0 of an I-frame only subset known as Dirac Pro was released and was standardised by the SMPTE as VC-2.<ref name="Dirac-1.0.0">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="bbc-wp-159" /><ref name="smpte-vc2" >{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Version 2.2.3 of the full Dirac specification, including motion compensation and inter-frame coding, was issued a few days later.<ref name="Dirac-2.2.3">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Dirac Pro was used internally by the BBC to transmit HDTV pictures at the Beijing Olympics in 2008.<ref name="broadcast-2008">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>Template:Cite news</ref>

Two open source and royalty-free video codec software implementations, libschrodinger and dirac-research, were developed. The format implementations were named in honour of the theoretical physicists Paul Dirac and Erwin Schrödinger, who shared the 1933 Nobel Prize in Physics.

TechnologyEdit

Dirac supports resolutions of HDTV (1920×1080) and greater, and is claimed to provide significant savings in data rate and improvements in quality over video compression formats such as MPEG-2 Part 2, MPEG-4 Part 2 and its competitors such as Theora and WMV. Dirac's implementers made a preliminary claim of "a two-fold reduction in bit rate over MPEG-2 for high definition video", which makes it comparable to VC-1 and simpler profiles of H.264.<ref name="dirac-overview">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Dirac supports both constant bit rate and variable bit rate operation. When the low delay syntax is used, the bit rate will be constant for each area (Dirac slice) in a picture to ensure constant latency. Dirac supports lossy and lossless compression modes.<ref name="Dirac-2.2.3"/>

Dirac employs wavelet compression, like the JPEG 2000 and PGF image formats and the Cineform professional video codec, instead of the discrete cosine transforms used in MPEG compression formats. Two of the specific wavelets Dirac can use are nearly identical to JPEG 2000's (known as the 5/3 and 9/7 wavelets), as well as two more derived from them.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Dirac can be used in Ogg and Matroska container formats and is also registered for use in the ISO base media (MP4) file format and MPEG transport streams.<ref name="MP4RA-codecs">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="TS-ids">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

PatentsEdit

The BBC does not own any patents on Dirac. They previously had some patent applications with plans to irrevocably grant a royalty-free licence for their Dirac-related patents to everyone, but they let the applications lapse. In addition, the developers have said they will try to ensure that Dirac does not infringe on any third party patents, enabling the public to use Dirac for any purpose.<ref name="FAQ"/>

VC-2Edit

Dirac Pro, an I-frame only subset of the Dirac specification, was proposed to the SMPTE for standardisation.<ref name="bbc-wp-159" /><ref name="smpte-conf-2008">Template:Cite conference</ref> Dirac Pro is designed for professional and studio use of high definition video in high bitrate applications.<ref name="bbc-vc-2"/> In 2010, the SMPTE standardised Dirac Pro as VC-2.<ref name="smpte-vc2" /><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Although work on the original Dirac codec has largely stopped, the VC-2 codec has continued to be adapted and updated for HD and UHD post-production environments. The SMPTE standards (ST) and recommended practices (RP) are as follows:<ref name="smpte-2042">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="smpte-2047">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

  • SMPTE ST 2042-1:2022 – VC-2 Video Compression
  • SMPTE ST 2042-2:2017 – VC-2 Level Definitions
  • SMPTE RP 2042-3:2022 – VC-2 Conformance Specification
  • SMPTE ST 2042-4:2018 — Mapping a VC-2 Stream into the MXF Generic Container
  • SMPTE RP 2047-1:2023 – VC-2 Mezzanine Level Compression of 1080P High Definition Video Sources
  • SMPTE ST 2047-2:2010 — Carriage of VC-2 Compressed Video over HD-SDI
  • SMPTE RP 2047-3:2023 — VC-2 Level 65 Compression of High Definition Video Sources for Use with a Standard Definition Infrastructure
  • SMPTE ST 2047-4:2011 — Carriage of Level 65 VC-2 Compressed Video Over the SDTV SDI
  • SMPTE RP 2047-5:2022 — VC-2 Level 66 Compression of Ultra-High Definition Video Sources for Use with a High Definition Infrastructure
  • IETF Template:IETF RFC — RTP Payload Format for VC-2 High Quality (HQ) Profile

Software implementationsEdit

Template:Update

{{#invoke:Infobox|infobox}}Template:Template other{{#invoke:Check for unknown parameters | check | showblankpositional=1 | unknown = Template:Main other | preview = Page using Template:Infobox software with unknown parameter "_VALUE_"|ignoreblank=y | AsOf | author | background | bodystyle | caption | collapsetext | collapsible | developer | discontinued | engine | engines | genre | included with | language | language count | language footnote | latest preview date | latest preview version | latest release date | latest release version | latest_preview_date | latest_preview_version | latest_release_date | latest_release_version | licence | license | logo | logo alt | logo caption | logo upright | logo size | logo title | logo_alt | logo_caption | logo_upright | logo_size | logo_title | middleware | module | name | operating system | operating_system | other_names | platform | programming language | programming_language | released | replaced_by | replaces | repo | screenshot | screenshot alt | screenshot upright | screenshot size | screenshot title | screenshot_alt | screenshot_upright | screenshot_size | screenshot_title | service_name | size | standard | title | ver layout | website | qid }}Template:Main other

Two software implementations were initially developed. The BBC's reference implementation, initially called Dirac but renamed dirac-research to avoid confusion, was written in C++ and released under the Mozilla Public License, GNU GPL 2 and GNU LGPL free software licenses. Version 1.0.0 of this implementation was released on 17 September 2008 and defines the Dirac bitstream format.<ref name="Dirac-1.0.0"/>

A second implementation called Schrödinger was funded by the BBC and aimed to provide a high-performance, portable version of the codec whilst remaining 100% bitstream compatible. Schrödinger was written in ANSI C and released under the same licenses as dirac-research, as well as the highly-permissive MIT License. GStreamer plugins were included to enable the library to be used with that framework. On 22 February 2008, Schrödinger 1.0.0 was released, and was able to decode HD720/25p in real-time on a Core Duo laptop.<ref name="schrodinger-1.0.0">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

By the March 2010 release of Schrödinger version 1.0.9, it was outperforming dirac-research "in most encoding situations, both in terms of encoding speed and visual quality".<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> With that release, most of the encoding tools in dirac-research were ported over to Schrödinger, giving Schrödinger the same as or better compression efficiency than dirac-research. Development of Schrödinger ceased after the 1.0.11 release in 2012.

After the standardisation of Dirac Pro as SMPTE VC-2, development began on an open source reference VC-2 encoder. The code is provided in a git repository by the BBC and is available on GitHub.<ref name="vc2-ref">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

An encoder quality testing system has been put in place at BBC to check how well new encoding tools work and to make sure bugs that affect quality are quickly fixed.<ref name="testing-tools">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

Desktop playback and encodingEdit

Dirac video playback is supported by VLC media player since version 0.9.2 (2008), and by applications using the GStreamer framework. Support has also been added to FFmpeg. Applications which can encode to Dirac include FFmpeg, MediaCoder, LiVES and OggConvert.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

PerformanceEdit

The algorithms in the original Dirac specification were intended to provide compression performance comparable to mainstream video compression standards of the time. A 2009 comparison of the Dirac and H.264 codecs, which used implementations from the second quarter of 2008, showed x264 scoring slightly higher than Dirac.<ref name=etil>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Another 2009 comparison found similar results for standard definition content, but did not compare high definition (HD) video content.<ref name="Ravi-MS-thesis">Template:Cite journal</ref> These studies show that Dirac compression performance is close to that of MPEG-4 Part 2 Advanced Simple Profile (ASP, popularised as DivX). While also approaching low complexity H.264 encodes, a High Profile H.264 encoded video will have better compression for the same perceived quality.

Since 2010, royalty-free, open source video codecs such as VP8, VP9, and AV1 have been developed with better compression performance and more widespread adoption, including dominant streaming services such as YouTube and Netflix.<ref name="cnet-google-vp9">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref name="verge-nexflix-av1">{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

ReferencesEdit

Template:Reflist

External linksEdit

Template:Portal Template:Compression formats Template:Compression Software Implementations