AV1: Difference between revisions
→Coding tools: Add all explanations I had brewing |
→Current experiments: Remove unexplained tools (see discussion) |
||
Line 149: | Line 149: | ||
====Current experiments==== |
====Current experiments==== |
||
''Only explained experiments are listed.'' |
|||
{{Importance section|date=December 2017}} |
|||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Enabled by default !! Build-time flag<ref name="cmake"/> !! Explanation |
! Enabled by default !! Build-time flag<ref name="cmake"/> !! Explanation |
||
|- |
|||
| {{No}} || <code>adapt_scan</code> || |
|||
|- |
|||
| {{No}} || <code>add_4bytes_obusize</code> || |
|||
|- |
|||
| {{No}} || <code>amvr</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>aom_qm</code> || ''Quantization Matrices''<ref name="enab-aom-qm"/> |
| {{Yes}} || <code>aom_qm</code> || ''Quantization Matrices''<ref name="enab-aom-qm"/> |
||
|- |
|||
| {{No}} || <code>bgsprite</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>cdef_singlepass</code> || An optimization of cdef<ref name="netvc99"/> |
| {{Yes}} || <code>cdef_singlepass</code> || An optimization of cdef<ref name="netvc99"/> |
||
|- |
|- |
||
| {{Yes}} || <code>cfl</code> || ''Chroma from Luma''<ref name="ittiam-ibc"/> |
| {{Yes}} || <code>cfl</code> || ''Chroma from Luma''<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>colorspace_headers</code> || |
|||
|- |
|- |
||
| {{No}} || <code>daala_tx</code> || Shorthand for daala_tx{4,8,16,32,64}<ref name="add-daala-tx"/> |
| {{No}} || <code>daala_tx</code> || Shorthand for daala_tx{4,8,16,32,64}<ref name="add-daala-tx"/> |
||
Line 186: | Line 177: | ||
|- |
|- |
||
| {{Yes}} || <code>daala_tx_dst32</code> |
| {{Yes}} || <code>daala_tx_dst32</code> |
||
|- |
|||
| {{No}} || <code>dct_only</code> || |
|||
|- |
|||
| {{Yes}} || <code>deblock_13tap</code> || |
|||
|- |
|||
| {{No}} || <code>dependent_horztiles</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>dist_8x8</code> || A merge of former experiments cdef_dist and daala_dist.<ref name="merge-dist"/> Daala_dist is ''Daala's distortion function''.<ref name="tb_lca_slides"/> |
| {{Yes}} || <code>dist_8x8</code> || A merge of former experiments cdef_dist and daala_dist.<ref name="merge-dist"/> Daala_dist is ''Daala's distortion function''.<ref name="tb_lca_slides"/> |
||
|- |
|- |
||
| {{Yes}} || <code>dual_filter</code> || Ability to choose a different horizontal and vertical interpolation filters for sub­pixel motion compensation<ref name="ittiam-ibc"/> |
| {{Yes}} || <code>dual_filter</code> || Ability to choose a different horizontal and vertical interpolation filters for sub­pixel motion compensation<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>eighth_pel_mv_only</code> || |
|||
|- |
|||
| {{No}} || <code>entropy_stats</code> || |
|||
|- |
|||
| {{No}} || <code>eob_first</code> || |
|||
|- |
|||
| {{Yes}} || <code>ext_comp_refs</code> || |
|||
|- |
|||
| {{Yes}} || <code>ext_delta_q</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>ext_intra</code> || ''Extended intra'':<ref name="ittiam_decodes_av1_jargon"/> 65 angular intra prediction modes<ref name="ittiam-ibc"/> |
| {{Yes}} || <code>ext_intra</code> || ''Extended intra'':<ref name="ittiam_decodes_av1_jargon"/> 65 angular intra prediction modes<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>ext_intra_mod2</code> || |
|||
|- |
|||
| {{Yes}} || <code>ext_intra_mod</code> || |
|||
|- |
|||
| {{Yes}} || <code>ext_partition</code> || |
|||
|- |
|||
| {{Yes}} || <code>ext_partition_types</code> || |
|||
|- |
|||
| {{No}} || <code>ext_partition_types_ab</code> || |
|||
|- |
|||
| {{No}} || <code>ext_qm</code> || |
|||
|- |
|||
| {{No}} || <code>ext_skip</code> || |
|||
|- |
|- |
||
| {{No}} || <code>ext_tile</code> || Option of no dependency across tile rows<ref name="ittiam-ibc"/> |
| {{No}} || <code>ext_tile</code> || Option of no dependency across tile rows<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>ext_warped_motion</code> || |
|||
|- |
|- |
||
| {{No}} || <code>filter_intra</code> || Interpolate the reference samples before prediction to reduce the impact of quantization noise<ref name="ittiam-ibc"/> |
| {{No}} || <code>filter_intra</code> || Interpolate the reference samples before prediction to reduce the impact of quantization noise<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>fp_mb_stats</code> || |
|||
|- |
|||
| {{Yes}} || <code>frame_marker</code> || |
|||
|- |
|||
| {{No}} || <code>frame_refs</code> || |
|||
|- |
|||
| {{No}} || <code>frame_sign_bias</code> || |
|||
|- |
|||
| {{Yes}} || <code>frame_size</code> || |
|||
|- |
|||
| {{No}} || <code>fwd_kf</code> || |
|||
|- |
|||
| {{No}} || <code>hash_me</code> || |
|||
|- |
|||
| {{No}} || <code>horzonly_frame_superres</code> || |
|||
|- |
|||
| {{No}} || <code>inter_stats_only</code> || |
|||
|- |
|||
| {{No}} || <code>intrabc</code> || |
|||
|- |
|||
| {{Yes}} || <code>intra_edge</code> || |
|||
|- |
|||
| {{No}} || <code>jnt_comp</code> || |
|||
|- |
|||
| {{Yes}} || <code>kf_ctx</code> || |
|||
|- |
|||
| {{Yes}} || <code>loopfiltering_across_tiles</code> || |
|||
|- |
|||
| {{Yes}} || <code>loopfilter_level</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>loop_restoration</code> || Remove blur artifacts due to block processing<ref name="ittiam-ibc"/> |
| {{Yes}} || <code>loop_restoration</code> || Remove blur artifacts due to block processing<ref name="ittiam-ibc"/> |
||
|- |
|||
| {{No}} || <code>lpf_sb</code> || |
|||
|- |
|||
| {{No}} || <code>lv_map</code> || |
|||
|- |
|||
| {{No}} || <code>lv_map_multi</code> || |
|||
|- |
|||
| {{Yes}} || <code>max_tile</code> || |
|||
|- |
|||
| {{No}} || <code>mfmv</code> || |
|||
|- |
|||
| {{No}} || <code>mono_video</code> || |
|||
|- |
|||
| {{Yes}} || <code>mv_compress</code> || |
|||
|- |
|||
| {{No}} || <code>new_quant</code> || |
|||
|- |
|||
| {{No}} || <code>no_frame_context_signaling</code> || |
|||
|- |
|||
| {{Yes}} || <code>obu</code> || |
|||
|- |
|||
| {{No}} || <code>obu_no_ivf</code> || |
|||
|- |
|||
| {{No}} || <code>opt_ref_mv</code> || |
|||
|- |
|||
| {{Yes}} || <code>palette_throughput</code> || |
|||
|- |
|||
| {{Yes}} || <code>parallel_deblocking</code> || |
|||
|- |
|||
| {{Yes}} || <code>q_adapt_probs</code> || |
|||
|- |
|||
| {{No}} || <code>rd_debug</code> || |
|||
|- |
|||
| {{No}} || <code>rect_tx_ext</code> || |
|||
|- |
|||
| {{No}} || <code>rect_tx_ext_intra</code> || |
|||
|- |
|||
| {{Yes}} || <code>reference_buffer</code> || |
|||
|- |
|||
| {{No}} || <code>ref_adapt</code> || |
|||
|- |
|||
| {{Yes}} || <code>segment_globalmv</code> || |
|||
|- |
|||
| {{No}} || <code>segment_pred_last</code> || |
|||
|- |
|||
| {{Yes}} || <code>short_filter</code> || |
|||
|- |
|||
| {{Yes}} || <code>simple_bwd_adapt</code> || |
|||
|- |
|||
| {{Yes}} || <code>simplify_tx_mode</code> || |
|||
|- |
|||
| {{No}} || <code>spatial_segmentation</code> || |
|||
|- |
|||
| {{Yes}} || <code>striped_loop_restoration</code> || |
|||
|- |
|||
| {{Yes}} || <code>tempmv_signaling</code> || |
|||
|- |
|||
| {{Yes}} || <code>tmv</code> || |
|||
|- |
|||
| {{No}} || <code>tx64x64</code> || |
|||
|- |
|||
| {{No}} || <code>txk_sel</code> || |
|||
|- |
|- |
||
| {{Yes}} || <code>txmg</code> || Merge high/low bitdepth transforms<ref name="add-txmg"/> |
| {{Yes}} || <code>txmg</code> || Merge high/low bitdepth transforms<ref name="add-txmg"/> |
Revision as of 00:42, 3 January 2018
Internet media type | video/AV1, video/webm; codecs="av01.*" |
---|---|
Developed by | Alliance for Open Media |
Type of format | Compressed video |
Contained by | |
Extended from | |
Free format? | Yes |
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 standardization by the video standard working group NetVC of the Internet Engineering Task Force (IETF).[3] The group has put together a list of criteria to be met by the new video standard.[4] It is meant to succeed its predecessor VP9 and compete with HEVC/H.265 from the Moving Picture Experts Group.[5]
AV1 can be used together with the audio format Opus in a future version of the WebM format for HTML5 web video and WebRTC.[6]
History
The first official announcement of the project came with the press release on the formation of the Alliance on 1 September 2015.[7] 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 HEVC (High Efficiency Video Coding).[8][9]
The roots of the project precede the Alliance, however. Individual contributors started experimental technology platforms years before: Xiph's/Mozilla's Daala already published code in 2010, VP10 was announced on 12 September 2014,[1] and Cisco's Thor was published on 11 August 2015. The first version 0.1.0 of the AV1 reference codec was published on 7 April 2016.
Soft feature freeze was at the end of October 2017, but a few significant features were decided to continue developing beyond this. The bitstream format is projected to be frozen in January 2018.[10]
According to Mukund Srinivasan, chief business officer of AOM member Ittiam, early hardware support will be dominated by software running on non-CPU hardware (such as GPGPU, DSP or shader programs, as is the case with some VP9 hardware implementations), as fixed-function hardware will take 12–18 months after bitstream freeze until chips are available, plus 6 months for products based on those chips to hit the market.[11]
The Firefox web browser started releasing nightly builds with AV1 support on November 28, 2017.[12]
Purpose
AV1 aims to be a video format for the web that is both state of the art and royalty free.[13] The mission of the Alliance for Open Media remains the same as the mission of the WebM project.[14]
To fulfill the goal of being royalty free, the development process is such that no feature is adopted before it has been independently double checked that it does not infringe on patents of competing companies.[14] This contrasts to its main competitor HEVC, for which IPR review was not part of the standardization process.[8] 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.[15][16]
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 does not engage in patent litigation.[17] As a defensive condition, anyone engaging in patent litigation loses the right to the patents of all patent holders.[8]
The performance goals include "a step up from VP9 and HEVC" in efficiency for a low increase in complexity.[14] NETVC's efficiency goal is 25% improvement over HEVC.[4] The primary complexity concern is for software decoding, since hardware support will take time to reach users.[14] However, for WebRTC, live encoding performance is also relevant, which is Cisco's agenda: Cisco is a manufacturer of videoconferencing equipment, and their Thor contributions aim at "reasonable compression at only moderate complexity".[16]
Feature wise, 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.[18] AV1 is primarily intended for lossy encoding, although lossless compression is supported as well.[19]
Technology
AV1 is a traditional block-based frequency transform format featuring new techniques taken from several experimental formats that have been testing technology for a next-generation format after HEVC and VP9.[20] Based on Google's experimental VP9 evolution project VP10,[2] AV1 incorporates additional techniques developed in Xiph's/Mozilla's Daala and Cisco's Thor.
AV1 performs internal processing in higher precision (10 or 12 bits per sample), which 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.[21][22]
Two different non-binary arithmetic coding entropy coders were considered for replacing VP9's binary entropy coder: Daala's entropy coder (Daala EC) and Asymmetric Numeral Systems. The use of non-binary coding helps evade patents, but also adds bit-level parallelism to an otherwise serial process, reducing clock rate demands on hardware implementations.[9] Of the two contenders, ANS is the fastest to decode in software, but Daala EC is more hardware friendly.[8] As of late 2017, Daala EC has replaced VP9's entropy coder, with ANS still retained.
The integration of Daala's Perceptual Vector Quantization proved too complex within the framework of AV1, encoding-wise.[9] The Rate Distortion heuristic framework aims to speed up the encoder by a sizable factor, PVQ or not,[9] but PVQ was ultimately dropped.
For the in-loop filtering step, the integration of Thor's constrained low-pass filter and Daala's directional deringing filter has been fruitful: The combined Constrained Directional Enhancement Filter (CDEF) exceeds the results of using the original filters separately or together.[23][24]
More encoder parallelism is possible thanks to configurable prediction dependency between tile rows.[25]
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.[26]
Coding tools
As of mid December 2017, 35 of 86 experimental coding tools are enabled by default in the developmental software codebase.[27] In addition to current experiments, some have also been fully integrated by having their build-time flags removed.
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.[11]
Experiment names are lowercased in the configure script and uppercased in conditional compilation flags.[28][29]
Former experiments that have been fully integrated
This list may or may not be complete.
Historic build-time flag | Explanation |
---|---|
alt_intra [30] |
A new prediction mode suitable for smooth regions[31] |
cb4x4 [32] |
|
cdef [33] |
Constrained Directional Enhancement Filter: The merge of Daala's directional deringing filter + Thor's constrained low pass filter[23][34] |
chroma_sub8x8 [35] |
|
compound_segment [36] |
|
convolve_round [37] |
|
delta_q [38] |
Delta quantization step: Arbitrary adaptation of quantizers within a frame[31] |
daala_ec [39] |
The Daala entropy coder (a non-binary arithmetic coder)[40] |
ec_adapt [41] |
Adapts symbol probabilities on the fly.[31] As opposed to per frame, as in VP9.[8] |
ec_smallmul [42] |
A hardware optimization of daala_ec[34] |
ext_inter [43] |
Extended inter[25][31] |
ext_refs [44] |
Extended reference frames:[31] Adds more reference frames, as described in Adaptive multi-reference prediction using a symmetric framework[45] |
ext_tx [46] |
Ability to choose different horizontal and vertical transforms[31] |
filter_7bit [47] |
7-bit interpolation filters[48] |
global_motion [49] |
Global Motion[25][31] |
interintra [50] |
Inter-intra prediction, part of wedge partitioned prediction[22] |
motion_var [51] |
Renamed from obmc.[52] Overlapped Block Motion Compensation: Reduce discontinuities at block edges using different motion vectors[31] |
new_multisymbol [53] |
|
one_sided_compound [54] |
|
palette [55] |
Palette prediction: Intra codig tool for screen content.[56] |
palette_delta_encoding [57] |
|
rect_intra_pred [58] |
|
rect_tx [59] |
Rectangular transforms[60] |
ref_mv [61] |
Better methods for coding the motion vector predictors through implicit list of spatial and temporal neighbor MVs[31] |
smooth_hv [62] |
|
tile_groups [63] |
|
var_tx [64] |
|
warped_motion [65] |
Warped Motion[31] |
wedge [36] |
Wedge partitioned prediction[22] |
Current experiments
Only explained experiments are listed.
Enabled by default | Build-time flag[27] | Explanation |
---|---|---|
Yes | aom_qm |
Quantization Matrices[66] |
Yes | cdef_singlepass |
An optimization of cdef[24] |
Yes | cfl |
Chroma from Luma[31] |
No | daala_tx |
Shorthand for daala_tx{4,8,16,32,64}[28] |
No | daala_tx4
|
Daala Transforms[67][68][69][70] |
No | daala_tx8
| |
No | daala_tx16
| |
No | daala_tx32
| |
No | daala_tx64
| |
No | daala_tx_dst8
| |
Yes | daala_tx_dst32
| |
Yes | dist_8x8 |
A merge of former experiments cdef_dist and daala_dist.[29] Daala_dist is Daala's distortion function.[9] |
Yes | dual_filter |
Ability to choose a different horizontal and vertical interpolation filters for subpixel motion compensation[31] |
Yes | ext_intra |
Extended intra:[25] 65 angular intra prediction modes[31] |
No | ext_tile |
Option of no dependency across tile rows[31] |
No | filter_intra |
Interpolate the reference samples before prediction to reduce the impact of quantization noise[31] |
Yes | loop_restoration |
Remove blur artifacts due to block processing[31] |
Yes | txmg |
Merge high/low bitdepth transforms[71] |
No | xiphrc |
Xiph Rate Controller[72] |
Quality and efficiency
A first comparison from the beginning of June 2016[73] found AV1 roughly on par with HEVC, as did one using code from late January 2017.[74]
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.[75] 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".[76]
Ozer noted that his and Bitmovin's results contradicted a comparison by Fraunhofer Institute for Telecommunications from late 2016[77] that had found AV1 38.4% less efficient than HEVC, underperforming even H.264/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.
Tests from Netflix showed that – based on measurements with PSNR and VMAF at 720p –, AV1 could be about 25% more efficient than HEVC, at the expense of a 4–10 fold increase in encoding time.[78]
Adoption
Nightly builds of the Firefox web browser contain preliminary support for AV1.[12]
It is expected that Alliance members have interest in adopting the format, in respective ways, once the bitstream is frozen.[18][75] 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).[8][9]
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.[18]
Netflix "expects to be an early adopter of AV1".[14]
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).
Notes
References
- ^ a b Stephen Shankland (12 September 2014). "Google's Web-video ambitions bump into hard reality". CNET. Retrieved 13 September 2014.
- ^ a b Jan Ozer, 26 May 2016: What Is VP9?
- ^ Rick Merritt (EE Times), 30 June 2016: Video Compression Feels a Pinch
- ^ a b Sebastian Grüner (19 July 2016). "Der nächste Videocodec soll 25 Prozent besser sein als H.265" (in German). golem.de. Retrieved 1 March 2017.
- ^ 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.
- ^ Tsahi Levent-Levi (3 September 2015). "WebRTC Codec Wars: Rebooted". BlogGeek.me. Retrieved 1 March 2017.
The beginning of the end of HEVC/H.265 video codec
- ^ "Alliance for Open Media established to deliver next-generation open media formats" (Press release). Alliance for Open Media. 1 September 2015. Retrieved 5 September 2015.
- ^ a b c d e f Timothy B. Terriberry (18 January 2017). "Progress in the Alliance for Open Media" (video). linux.conf.au. Retrieved 1 March 2017.
- ^ a b c d e f Timothy B. Terriberry (18 January 2017). "Progress in the Alliance for Open Media (slides)" (PDF). Retrieved 22 June 2017.
- ^ Krishnan, Jai (22 November 2017). "Jai Krishnan from Google and AOMedia giving us an update on AV1". YouTube. Retrieved 22 December 2017.
- ^ a b Ozer, Jan (30 August 2017). "AV1: A status update". Retrieved 14 September 2017.
- ^ a b Shankland, Stephen (28 November 2017). "Firefox now lets you try streaming-video tech that could be better than Apple's". CNET. Retrieved 25 December 2017.
- ^ Daede, Thomas (5 October 2017). "Thomas Daede - AV1 Update". YouTube. Retrieved 21 December 2017.
- ^ a b c d e Frost, Matt (31 July 2017). "VP9-AV1 Video Compression Update". Retrieved 21 November 2017.
Obviously, if we have an open source codec, we need to take very strong steps, and be very diligent in making sure that we are in fact producing something that's royalty free. So we have an extensive IP diligence process which involves diligence on both the contributor level – so when Google proposes a tool, we are doing our in-house IP diligence, using our in-house patent assets and outside advisors – that is then forwarded to the group, and is then again reviewed by an outside counsel that is engaged by the alliance. So that's a step that actually slows down innovation, but is obviously necessary to produce something that is open source and royalty free.
- ^ "Standards are Failing the Streaming Industry". 4 May 2017. Retrieved 20 May 2017.
- ^ a b "Integrating Thor tools into the emerging AV1 codec" (PDF). 13 September 2017. Retrieved 2 October 2017.
Royalty-free video codecs: The deployment of recent compression technologies such as HEVC/H.265 may have been delayed or restricted due to their licensing terms. (…) What can Thor add to VP9/AV1? Since Thor aims for reasonable compression at only moderate complexity, we considered features of Thor that could increase the compression efficiency of VP9 and/or reduce the computational complexity.
{{cite web}}
: Unknown parameter|authors=
ignored (help) - ^ 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
- ^ a b c Ozer, Jan (3 June 2016). "What is AV1?". Streaming Media. Information Today, Inc. Archived from the original on 26 November 2016. Retrieved 26 November 2016.
... 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) - ^ "examples/lossless_encoder.c - aom - Git at Google". aomedia.googlesource.com. Retrieved 29 October 2017.
- ^ Romain Bouqueau (12 June 2016). "A view on VP9 and AV1 part 1: specifications". GPAC Project on Advanced Content. Retrieved 1 March 2017.
- ^ 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
- ^ 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.
- ^ a b "Constrained Directional Enhancement Filter". 28 March 2017. Retrieved 15 September 2017.
- ^ a b "Thor update". July 2017. Retrieved 2 October 2017.
- ^ a b c d "Decoding the Buzz over AV1 Codec". 9 June 2017. Retrieved 22 June 2017.
- ^ https://aomedia.googlesource.com/aom/+/master/LICENSE
- ^ a b "AV1 experiment flags". 29 September 2017. Retrieved 2 October 2017.
- ^ a b Egge, Nathan (13 September 2017). "Add the DAALA_TX experiment". Retrieved 2 October 2017.
- ^ a b Cho, Yushin (30 August 2017). "Delete daala_dist and cdef-dist experiments in configure". Retrieved 2 October 2017.
Since those two experiments have been merged into the dist-8x8 experiment
- ^ Joshi, Urvang (1 June 2017). "Remove ALT_INTRA flag". Retrieved 19 September 2017.
- ^ a b c d e f g h i j k l m n o p "Analysis of the emerging AOMedia AV1 video coding format for OTT use-cases" (PDF). Retrieved 19 September 2017.
- ^ Mukherjee, Debargha (21 October 2017). "Remove CONFIG_CB4X4 config options". Retrieved 29 October 2017.
- ^ Barbier, Frederic (10 November 2017). "Remove experimental flag of CDEF". Retrieved 23 October 2017.
- ^ a b "NETVC Hackathon Results IETF 98 (Chicago)". Retrieved 15 September 2017.
- ^ Su, Hui (23 October 2017). "Remove experimental flag of chroma_sub8x8". Retrieved 29 October 2017.
- ^ a b Mukherjee, Debargha (29 October 2017). "Remove compound_segment/wedge config flags". Retrieved 23 November 2017.
- ^ Wang, Yunqing (12 December 2017). "Remove convolve_round/compound_round config flags". Retrieved 17 December 2017.
- ^ Davies, Thomas (19 September 2017). "Remove delta_q experimental flag". Retrieved 2 October 2017.
- ^ Egge, Nathan (25 May 2017). "This patch forces DAALA_EC on by default and removes the dkbool coder". Retrieved 14 September 2017.
- ^ Egge, Nathan (14 February 2017). "Daala Entropy Coder in AV1" (PDF).
- ^ Egge, Nathan (18 June 2017). "Remove the EC_ADAPT experimental flags". Retrieved 23 September 2017.
- ^ Terriberry, Timothy (25 August 2017). "Remove the EC_SMALLMUL experimental flag". Retrieved 15 September 2017.
- ^ Alaiwan, Sebastien (2 October 2017). "Remove compile guards for CONFIG_EXT_INTER". Retrieved 29 October 2017.
This experiment has been adopted
- ^ Alaiwan, Sebastien (16 October 2017). "Remove compile guards for CONFIG_EXT_REFS". Retrieved 29 October 2017.
This experiment has been adopted
- ^ Zoe Liu; Debargha Mukherjee; Wei-Ting Lin; Paul Wilkins; Jingning Han; Yaowu Xu (4 July 2017). "Adaptive Multi-Reference Prediction Using A Symmetric Framework". Retrieved 29 October 2017.
- ^ Alaiwan, Sebastien (2 November 2017). "Remove experimental flag of EXT_TX". Retrieved 23 November 2017.
- ^ Davies, Thomas (19 September 2017). "Remove filter_7bit experimental flag". Retrieved 29 October 2017.
- ^ Fuldseth, Arild (26 August 2017). "7-bit interpolation filters". Retrieved 29 October 2017.
Purpose: Reduce dynamic range of interpolation filter coefficients from 8 bits to 7 bits. Inner product for 8-bit input data can be stored in a 16-bit signed integer.
- ^ Alaiwan, Sebastien (30 October 2017). "Remove experimental flag of GLOBAL_MOTION". Retrieved 23 November 2017.
- ^ Chen, Yue (30 October 2017). "Remove CONFIG_INTERINTRA". Retrieved 23 November 2017.
- ^ Alaiwan, Sebastien (31 October 2017). "Remove experimental flag of MOTION_VAR". Retrieved 23 November 2017.
- ^ Chen, Yue (13 October 2017). "Renamings for OBMC experiment". Retrieved 19 September 2017.
- ^ Barbier, Frederic (15 November 2017). "Remove experimental flag of NEW_MULTISYMBOL". Retrieved 23 October 2017.
- ^ Liu, Zoe (7 November 2017). "Remove ONE_SIDED_COMPOUND experimental flag". Retrieved 23 November 2017.
- ^ Joshi, Urvang (1 June 2017). "Remove PALETTE flag". Retrieved 19 September 2017.
- ^ "Overview of the Decoding Process (Informative)". Retrieved 12 November 2017.
For certain types of image, such as PC screen content, it is likely that the majority of colors come from a very small subset of the color space. This subset is referred to as a palette. AV1 supports palette prediction, whereby non-inter frames are predicted from a palette containing the most likely colors.
- ^ Barbier, Frederic (15 December 2017). "Remove experimental flag of PALETTE_DELTA_ENCODING". Retrieved 17 December 2017.
- ^ Yoshi, Urvang (26 September 2017). "Remove rect_intra_pred experimental flag". Retrieved 2 October 2017.
- ^ Mukherjee, Debargha (29 October 2017). "Remove experimental flag for rect-tx". Retrieved 23 November 2017.
- ^ Mukherjee, Debargha (1 July 2016). "Rectangular transforms 4x8 & 8x4". Retrieved 14 September 2017.
- ^ Alaiwan, Sebastien (27 April 2017). "Merge ref-mv into codebase". Retrieved 23 September 2017.
- ^ Joshi, Urvang (9 November 2017). "Remove smooth_hv experiment flag". Retrieved 23 November 2017.
- ^ Davies, Thomas (18 July 2017). "Remove the CONFIG_TILE_GROUPS experimental flag". Retrieved 19 September 2017.
- ^ Alaiwan, Sebastien (24 October 2017). "Remove compile guards for VAR_TX experiment". Retrieved 29 October 2017.
This experiment has been adopted
- ^ Alaiwan, Sebastien (31 October 2017). "Remove experimental flag of WARPED_MOTION". Retrieved 23 November 2017.
- ^ Davies, Thomas (9 August 2017). "AOM_QM: enable by default". Retrieved 19 September 2017.
- ^ "Daala-TX" (PDF). 22 August 2017. Retrieved 26 September 2017.
Replaces the existing AV1 TX with the lifting implementation from Daala. Daala TX is better in every way: ● Fewer multiplies ● Same shifts, quantizers for all transform sizes and depths ● Smaller intermediaries ● Low-bitdepth transforms wide enough for high-bitdepth ● Less hardware area ● Inherently lossless
- ^ Egge, Nathan (27 October 2017). "Daala Transforms in AV1".
- ^ Egge, Nathan (1 December 2017). "Daala Transforms Update".
- ^ Egge, Nathan (15 December 2017). "Daala Transforms Evaluation".
- ^ Chiang, Angie (31 July 2017). "Add txmg experiment". Retrieved 3 January 2018.
This experiment aims at merging lbd/hbd txfms
- ^ Pehlivanov, Rostislav (15 February 2017). "Implement a new rate control system". Retrieved 19 September 2017.
This commit implements a new rate control system which was ported from Daala's rate control system (which was based off of Theora's rate control system) (…) Bitrate targeting works much better than the current rate control system's targeting and will actually closely match the rate specified by the user without the current rate control system's bursty behaviour.
- ^ Sebastian Grüner (9 June 2016). "Freie Videocodecs teilweise besser als H.265" (in German). golem.de. Retrieved 1 March 2017.
- ^ "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
- ^ a b "Bitmovin Supports AV1 Encoding for VoD and Live and Joins the Alliance for Open Media". 18 April 2017. Retrieved 20 May 2017.
- ^ Ozer, Jan. "HEVC: Rating the contenders" (PDF). Streaming Learning Center. Retrieved 22 May 2017.
- ^ 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]
- ^ "Netflix on AV1". Streaming Learning Center. 30 November 2017. Retrieved 8 December 2017.
External links
- Source code repository
- Source code review
- Issue tracker
- Requirements to be met for the IETF NetVC