Jump to content

AV1: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Quality and efficiency: per cited source: "H.265/MPEG-HEVC ... provides ... average bit-rate savings of 38.4% and 32.8% compared to AOM/AV1 and H.264/MPEG-AVC, respectively"
Status on coding tools
Line 57: Line 57:


Like its predecessor VP9, AV1 will be used together with the [[WebM]] and [[Opus (audio format)|Opus]] formats. These are well supported among web browsers, with the exception of [[Safari (web browser)|Safari]] (desktop and mobile versions) and the discontinued Internet Explorer (prior to Edge) (see VP9 in [[HTML5 video#Browser support|HTML5 video § browser support]]).
Like its predecessor VP9, AV1 will be used together with the [[WebM]] and [[Opus (audio format)|Opus]] formats. These are well supported among web browsers, with the exception of [[Safari (web browser)|Safari]] (desktop and mobile versions) and the discontinued Internet Explorer (prior to Edge) (see VP9 in [[HTML5 video#Browser support|HTML5 video § browser support]]).


== Coding tools ==
As of late August 2017, 29 of 99 experimental coding tools are enabled by default in the developmental software codebase,<ref name="soft-enab-ext-comp-refs"/> and some have been fully integrated by having their build-time flags removed.<ref name="instate-daala-ec"/>

The development process is such that coding tools are added as ''experiments'' in the codebase, controlled by build-time flags, for review by hardware and legal teams. Once reviews are passed, the experiment can be enabled by default.<ref name="streamingmedia-august-update"/>

=== Fully integrated ===
''This list is non-exhaustive.''

{| class="wikitable"
|-
! Historic build-time flag !! Explanation
|-
| daala_ec<ref name="instate-daala-ec"/> || The ''Daala entropy coder'' (a non-binary [[arithmetic coder]])
|}

=== Default-enabled ===

{| class="wikitable"
|-
! Build-time flag<ref name="soft-enab-ext-comp-refs"/> !! Explanation
|-
| aom_qm ||
|-
| cb4x4 ||
|-
| cdef || In-loop filters:<ref name="ittiam_decodes_av1_jargon"/> Daala's ''directional deringing filter'' + Thor's ''constrained low pass filter''<ref name="ddering+clpf=cdef"/>
|-
| chroma_sub8x8 ||
|-
| compound_segment ||
|-
| convolve_round ||
|-
| delta_q ||
|-
| dual_filter ||
|-
| ext_comp_refs ||
|-
| ext_delta_q ||
|-
| ext_inter || ''Extended inter''<ref name="ittiam_decodes_av1_jargon"/>
|-
| ext_intra || ''Extended intra''<ref name="ittiam_decodes_av1_jargon"/>
|-
| ext_refs ||
|-
| ext_tx ||
|-
| filter_7bit ||
|-
| global_motion || ''Global motion''<ref name="ittiam_decodes_av1_jargon"/>
|-
| interintra || ''Inter-intra prediction'', part of wedge partitioned prediction<ref name="VP10_1_year_in_presentation"/>
|-
| loopfiltering_across_tiles ||
|-
| motion_var ||
|-
| mv_compress ||
|-
| one_sided_compound ||
|-
| parallel_deblocking ||
|-
| rect_intra_pred ||
|-
| rect_tx || ''Rectangular transforms''<ref name="rect-tx"/>
|-
| reference_buffer ||
|-
| smooth_hv ||
|-
| var_tx ||
|-
| warped_motion ||
|-
| wedge || ''Wedge partitioned prediction''<ref name="VP10_1_year_in_presentation"/>
|}

=== Default-disabled ===
''This list is non-exhaustive.''

{| class="wikitable"
|-
! Build-time flag !! Explanation
|-
| cfl || ''Chroma from luma''
|-
| pvq || ''Perceptual vector quantization''
|}


==References==
==References==
Line 134: Line 227:


<ref name="ittiam_decodes_av1_jargon">{{cite web|title=Decoding the Buzz over AV1 Codec|url=https://www.ittiam.com/blog/decoding-buzz-av1-codec/|accessdate=22 June 2017|date=9 June 2017}}</ref>
<ref name="ittiam_decodes_av1_jargon">{{cite web|title=Decoding the Buzz over AV1 Codec|url=https://www.ittiam.com/blog/decoding-buzz-av1-codec/|accessdate=22 June 2017|date=9 June 2017}}</ref>

<ref name="soft-enab-ext-comp-refs">{{cite web|last1=Liu|first1=Zoe|title=Enable ext-comp-refs by default|url=https://aomedia-review.googlesource.com/c/aom/+/19621/2/configure|accessdate=14 September 2017|date=29 August 2017}}</ref>

<ref name="streamingmedia-august-update">{{cite web|last1=Ozer|first1=Jan|url=http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/AV1-A-Status-Update-120214.aspx|title=AV1: A status update|accessdate=14 September 2017|date=30 August 2017}}</ref>

<ref name="instate-daala-ec">{{cite web|last1=Egge|first1=Nathan|title=This patch forces DAALA_EC on by default and removes the dkbool coder|url=https://aomedia.googlesource.com/aom/+/476c63c1ddd27c7a0da|accessdate=14 September 2017|date=25 May 2017}}</ref>

<ref name="ddering+clpf=cdef">{{cite web|last1=Valin|first1=Jean-Marc|title=Merging the dering and clpf experiments into a single experiment: CDEF|url=https://aomedia.googlesource.com/aom/+/0143513080a5402e497|accessdate=14 September 2017|date=18 February 2017}}</ref>

<ref name="rect-tx">{{cite web|last1=Mukherjee|first1=Debargha|title=Rectangular transforms 4x8 & 8x4|url=https://aomedia.googlesource.com/aom/+/e5848dea5a430763af4|accessdate=14 September 2017|date=01 July 2016}}</ref>


}}
}}

Revision as of 23:04, 14 September 2017

AOMedia Video 1 (AV1) is an open, royalty-free video coding format designed for video transmissions over the Internet. It is being developed by the Alliance for Open Media (AOMedia), a consortium of leading firms from the semiconductor industry, video on demand providers, and web browser developers, founded in 2015. It is the primary contender for standardisation by the video standard working group NetVC of the Internet Engineering Task Force (IETF).[1] The group has put together a list of criteria to be met by the new video standard.[2] It is meant to succeed its predecessor VP9 and compete with HEVC/H.265 from the Moving Picture Experts Group.[3]

AV1 can be used together with the audio format Opus in a future version of the WebM format for HTML5 web video and WebRTC.[4]

History

The first official announcement of the project came with the press release on the formation of the Alliance. The growing usage of its predecessor VP9 is attributed to confidence in the Alliance and (the development of) AV1 as well as the pricey and complicated licensing situation of MPEG's competitor HEVC.[5][6]

The roots of the project precede the Alliance, however. Individual contributors started experimental technology platforms years before: Daala already published code in 2010, VP10 was announced on September 12, 2014, and Thor was published on August 11, 2015. The first version 0.1.0 of the AV1 reference codec was published on April 7, 2016.

The bitstream format is projected to be frozen in Q3[7] or Q4[8] of 2017[needs update]. The first compatible hardware components are expected to become available within 12 months after that.

Purpose

The purpose of AV1 is to be as good as possible under royalty-free patent licensing. Crucial to this objective is therefore to ensure, during development, that it does not infringe on patents of competing companies. This contrasts to its main competitor HEVC, for which IPR review was not part of the standardization process.[5] The latter practice is stipulated in ITU-T's definition of an open standard. The case of HEVC's independent patent pools has been characterized by critical observers as a failure of price management.[9]

Under patent rules adopted from the World Wide Web Consortium (W3C), technology contributors license their AV1-connected patents to anyone, anywhere, anytime based on reciprocity, i.e. as long as the user doesn't engage in patent litigation.[10] As a defensive condition, anyone engaging in patent litigation loses the right to the patents of all patent holders.[5]

It aims for state of the art performance with a noticeable compression efficiency advantage at only slightly increased coding complexity. The efficiency goal is 25% improvement over HEVC.[2]

It is specifically designed for real-time applications (especially WebRTC) and higher resolutions (wider color gamuts, higher frame rates, UHD) than typical usage scenarios of the current generation (H.264) of video formats where it is expected to achieve its biggest efficiency gains. It is therefore planned to support the color space from ITU-R Recommendation BT.2020 and 10 and 12 bits of precision per color component.[11]

Technology

AV1 introduces "T-shaped" partitioning schemes for coding units, a feature from VP10

AV1 is a traditional block-based frequency transform format featuring new techniques taken from several experimental formats that are testing technology for a next-generation format after HEVC and VP9.[12] Based on Google's experimental VP9 evolution project VP10,[13] it will incorporate additional techniques developed in Xiph's/Mozilla's Daala and Cisco's Thor.

Doing internal processing in higher precision (10 or 12 bits per sample) leads to compression improvement due to smaller rounding errors in reference imagery. For intra prediction, there are more (than 8) angles for directional prediction and weighted filters for per-pixel extrapolation. Temporal prediction can use more references. Prediction can happen for bigger units (≤128×128) and they can be subpartitioned in more ways. Predictions can be combined in more advanced ways (than a uniform average) in a block, including smooth and sharp gradients in different directions. This allows either inter-inter or inter-intra predictions to be combined in the same block.[14][15] Conventional scalar quantisation with binary arithmetic coding is currently used, inherited from VP9, but experiments are ongoing to investigate other systems including multisymbol coding, and Perceptual Vector Quantization from Daala.[16] Asymmetric Numeral Systems coding is being considered for the entropy coding phase.[17] For the in-loop filtering step it has a deblocking filter and experimental deringing filters from both Thor and Daala.

Parallelism within a frame is possible in tiles (vertical) and tile rows (horizontal).

More encoder parallelism is possible thanks to configurable prediction dependency between tile rows.[18]

The Alliance publishes a reference implementation written in C and assembly language (aomenc, aomdec) as free software under the terms of the BSD 2-Clause License.[19]

Quality and efficiency

A first comparison from the beginning of June 2016[20] found AV1 on par with HEVC, as did one using code from late January 2017.[21]

As of April 2017, using the 8 currently enabled experimental features (of 77 total), Bitmovin was able to demonstrate favorable objective metrics, as well as visual results, compared to HEVC on the Sintel and Tears of Steel animated films.[7] A follow-up comparison by Jan Ozer of Streaming Media Magazine confirmed this, and concluded that "AV1 is at least as good as HEVC now."[22]

Ozer noted that his and Bitmovin's results contradicted a comparison by Fraunhofer Institute for Telecommunications from late 2016[23] that had found AV1 38.4% less efficient than HEVC, underperforming even AVC, and justified this discrepancy by having used encoding parameters endorsed by each encoder vendor, as well as having more features in the newer AV1 encoder.

Adoption

It is expected that Alliance members have interest in adopting the format, in respective ways, once the bitstream is frozen.[11][7] The member companies represent several industries, including browser vendors (Google, Mozilla, Microsoft), content providers (Google, Netflix, Amazon, Hulu) and hardware manufacturers (Intel, AMD, ARM, Nvidia).[5][6]

Video streaming service YouTube declared intent to transition to the new format as fast as possible, starting with highest resolutions within six months after the finalization of the bitstream format.[11]

Like its predecessor VP9, AV1 will be used together with the WebM and Opus formats. These are well supported among web browsers, with the exception of Safari (desktop and mobile versions) and the discontinued Internet Explorer (prior to Edge) (see VP9 in HTML5 video § browser support).


Coding tools

As of late August 2017, 29 of 99 experimental coding tools are enabled by default in the developmental software codebase,[24] and some have been fully integrated by having their build-time flags removed.[25]

The development process is such that coding tools are added as experiments in the codebase, controlled by build-time flags, for review by hardware and legal teams. Once reviews are passed, the experiment can be enabled by default.[26]

Fully integrated

This list is non-exhaustive.

Historic build-time flag Explanation
daala_ec[25] The Daala entropy coder (a non-binary arithmetic coder)

Default-enabled

Build-time flag[24] Explanation
aom_qm
cb4x4
cdef In-loop filters:[18] Daala's directional deringing filter + Thor's constrained low pass filter[27]
chroma_sub8x8
compound_segment
convolve_round
delta_q
dual_filter
ext_comp_refs
ext_delta_q
ext_inter Extended inter[18]
ext_intra Extended intra[18]
ext_refs
ext_tx
filter_7bit
global_motion Global motion[18]
interintra Inter-intra prediction, part of wedge partitioned prediction[15]
loopfiltering_across_tiles
motion_var
mv_compress
one_sided_compound
parallel_deblocking
rect_intra_pred
rect_tx Rectangular transforms[28]
reference_buffer
smooth_hv
var_tx
warped_motion
wedge Wedge partitioned prediction[15]

Default-disabled

This list is non-exhaustive.

Build-time flag Explanation
cfl Chroma from luma
pvq Perceptual vector quantization

References

  1. ^ Rick Merritt (EE Times), 30 June 2016: Video Compression Feels a Pinch
  2. ^ a b Sebastian Grüner (2016-07-19). "Der nächste Videocodec soll 25 Prozent besser sein als H.265" (in German). golem.de. Retrieved 2017-03-01.
  3. ^ Zimmerman, Steven (15 May 2017). "Google's Royalty-Free Answer to HEVC: A Look at AV1 and the Future of Video Codecs". XDA Developers. Archived from the original on 14 June 2017. Retrieved 10 June 2017.
  4. ^ Tsahi Levent-Levi (2015-09-03). "WebRTC Codec Wars: Rebooted". BlogGeek.me. Retrieved 2017-03-01. The beginning of the end of HEVC/H.265 video codec
  5. ^ a b c d Timothy B. Terriberry (2017-01-18). "Progress in the Alliance for Open Media" (video). linux.conf.au. Retrieved 2017-03-01.
  6. ^ a b Timothy B. Terriberry (2017-01-18). "Progress in the Alliance for Open Media (slides)" (PDF). Retrieved 22 June 2017.
  7. ^ a b c "Bitmovin Supports AV1 Encoding for VoD and Live and Joins the Alliance for Open Media". 18 April 2017. Retrieved 20 May 2017.
  8. ^ https://fosdem.org/2017/schedule/event/om_av1/
  9. ^ "Standards are Failing the Streaming Industry". 4 May 2017. Retrieved 20 May 2017.
  10. ^ Neil McAllister, 1 September 2015: Web giants gang up to take on MPEG LA, HEVC Advance with royalty-free streaming codec – Joining forces for cheap, fast 4K video
  11. ^ a b c Ozer, Jan (2016-06-03). "What is AV1?". Streaming Media. Information Today, Inc. Archived from the original on 2016-11-26. Retrieved 2016-11-26. ... Once available, YouTube expects to transition to AV1 as quickly as possible, particularly for video configurations such as UHD, HDR, and high frame rate videos ... Based upon its experience with implementing VP9, YouTube estimates that they could start shipping AV1 streams within six months after the bitstream is finalized. ... {{cite web}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  12. ^ Romain Bouqueau (2016-06-12). "A view on VP9 and AV1 part 1: specifications". GPAC Project on Advanced Content. Retrieved 2017-03-01.
  13. ^ Jan Ozer, May 26, 2016: What Is VP9?
  14. ^ Debargha Mukherjee, Hui Su, Jim Bankoski, Alex Converse, Jingning Han, Zoe Liu, Yaowu Xu (Google Inc.), International Society for Optics and Photonics, ed., "An overview of new video coding tools under consideration for VP10 – the successor to VP9", SPIE Optical Engineering+ Applications 9599, doi:10.1117/12.2191104 
  15. ^ a b c Converse, Alex (16 November 2015). "New video coding techniques under consideration for VP10 – the successor to VP9". YouTube. Retrieved 3 December 2016.
  16. ^ Jean-Marc Valin (Xiph.org/Mozilla), June 6, 2016: Revisiting Daala Technology Demos
  17. ^ https://aomedia.googlesource.com/aom/+/master/aom_dsp/ans.h
  18. ^ a b c d e "Decoding the Buzz over AV1 Codec". 9 June 2017. Retrieved 22 June 2017.
  19. ^ https://aomedia.googlesource.com/aom/+/master/LICENSE
  20. ^ Sebastian Grüner (2016-06-09). "Freie Videocodecs teilweise besser als H.265" (in German). golem.de. Retrieved 2017-03-01.
  21. ^ "Results of Elecard's latest benchmarks of AV1 compared to HEVC". 24 April 2017. Retrieved 14 June 2017. The most intriguing result obtained after analysis of the data lies in the fact that the developed codec AV1 is currently equal in its performance with HEVC. The given streams are encoded with AV1 update of 2017.01.31
  22. ^ Ozer, Jan. "HEVC: Rating the contenders" (PDF). Streaming Learning Center. Retrieved 22 May 2017.
  23. ^ D. Grois, T, Nguyen, and D. Marpe, "Coding efficiency comparison of AV1/VP9, H.265/MPEG-HEVC, and H.264/MPEG-AVC encoders", IEEE Picture Coding Symposium (PCS) 2016 [1]
  24. ^ a b Liu, Zoe (29 August 2017). "Enable ext-comp-refs by default". Retrieved 14 September 2017.
  25. ^ a b Egge, Nathan (25 May 2017). "This patch forces DAALA_EC on by default and removes the dkbool coder". Retrieved 14 September 2017.
  26. ^ Ozer, Jan (30 August 2017). "AV1: A status update". Retrieved 14 September 2017.
  27. ^ Valin, Jean-Marc (18 February 2017). "Merging the dering and clpf experiments into a single experiment: CDEF". Retrieved 14 September 2017.
  28. ^ Mukherjee, Debargha (01 July 2016). "Rectangular transforms 4x8 & 8x4". Retrieved 14 September 2017. {{cite web}}: Check date values in: |date= (help)