├── .gitignore ├── .rbenv-version ├── .ruby-version ├── 00.abstract.md ├── 00.cover-legend.md ├── 00.draft-legend.md ├── 00.html-legend.md ├── 00.title.md ├── 00.toc.md ├── 00.version.md ├── 01.scope.md ├── 02.terms.md ├── 03.symbols.md ├── 04.conventions.md ├── 06.bitstream.syntax.md ├── 07.bitstream.semantics.md ├── 08.decoding.process.md ├── 09.parsing.process.md ├── 10.additional.tables.md ├── 98.testing.md ├── 99.function-reference-links.md ├── AUTHORS.md ├── Gemfile ├── Gemfile.lock ├── Gruntfile.coffee ├── LICENSE ├── PATENTS.md ├── README.md ├── _config.yml ├── _layouts ├── pdf.html └── web.html ├── annex.a.levels.md ├── annex.b.superframes.md ├── annex.c.experiments.md ├── annex.d.large.scale.tile.md ├── annex.e.decoder.model.md ├── assets ├── css │ ├── av1-spec-print.sass │ ├── av1-spec.sass │ ├── bootstrap.min.css │ ├── bootstrap.min.css.map │ ├── syntax-monokai.css │ └── syntax-tango.css ├── favicon.ico ├── images │ ├── av1-logo-297x142.png │ ├── av1-logo.svg │ ├── buffer_fullness.png │ ├── buffer_pool.png │ ├── formula-abs.corrected.png │ ├── formula-abs.svg │ ├── formula-abs.svg.png │ ├── formula-all.svg │ ├── formula-clip1.svg │ ├── formula-clip1.svg.png │ ├── formula-clip3.svg │ ├── formula-clip3.svg.png │ ├── formula-max.svg │ ├── formula-max.svg.png │ ├── formula-min.svg │ ├── formula-min.svg.png │ ├── formula-round2.svg │ ├── formula-round2.svg.png │ ├── formula-round2signed.svg │ ├── formula-round2signed.svg.png │ ├── icons │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── image00.png │ ├── image01.png │ ├── image02.png │ ├── image03.png │ ├── image04.png │ ├── image05.png │ ├── image11.png │ ├── image13.png │ ├── image14.png │ ├── image15.png │ ├── large_scale_camera_frames.png │ ├── large_scale_tile.png │ ├── mhoro │ │ ├── SCALABILITY_L3T2_KEY.png │ │ ├── SCALABILITY_L3T2_KEY_SHIFT.png │ │ ├── SCALABILITY_L3T3_KEY.png │ │ ├── SCALABILITY_L3T3_KEY_SHIFT.png │ │ ├── SCALABILITY_L4T5_KEY.png │ │ ├── SCALABILITY_L4T5_KEY_SHIFT.png │ │ ├── SCALABILITY_L4T7_KEY.png │ │ └── SCALABILITY_L4T7_KEY_SHIFT.png │ ├── scalability_L1T2.png │ ├── scalability_L1T3.png │ ├── scalability_L2T1.png │ ├── scalability_L2T2.png │ ├── scalability_L2T3.png │ ├── scalability_S2T1.png │ ├── scalability_S2T2.png │ └── scalability_S2T3.png └── js │ ├── anchor.min.js │ ├── bootstrap.min.js │ ├── bootstrap.min.js.map │ └── toc.js ├── bibliography.md ├── browserconfig.xml ├── docs ├── assets │ ├── css │ │ ├── av1-spec.css │ │ ├── bootstrap.min.css │ │ ├── bootstrap.min.css.map │ │ ├── syntax-monokai.css │ │ └── syntax-tango.css │ ├── favicon.ico │ ├── images │ │ ├── av1-logo-297x142.png │ │ ├── av1-logo.svg │ │ ├── buffer_fullness.png │ │ ├── buffer_pool.png │ │ ├── formula-abs.corrected.png │ │ ├── formula-abs.svg │ │ ├── formula-abs.svg.png │ │ ├── formula-all.svg │ │ ├── formula-clip1.svg │ │ ├── formula-clip1.svg.png │ │ ├── formula-clip3.svg │ │ ├── formula-clip3.svg.png │ │ ├── formula-max.svg │ │ ├── formula-max.svg.png │ │ ├── formula-min.svg │ │ ├── formula-min.svg.png │ │ ├── formula-round2.svg │ │ ├── formula-round2.svg.png │ │ ├── formula-round2signed.svg │ │ ├── formula-round2signed.svg.png │ │ ├── icons │ │ │ ├── android-icon-144x144.png │ │ │ ├── android-icon-192x192.png │ │ │ ├── android-icon-36x36.png │ │ │ ├── android-icon-48x48.png │ │ │ ├── android-icon-72x72.png │ │ │ ├── android-icon-96x96.png │ │ │ ├── apple-icon-114x114.png │ │ │ ├── apple-icon-120x120.png │ │ │ ├── apple-icon-144x144.png │ │ │ ├── apple-icon-152x152.png │ │ │ ├── apple-icon-180x180.png │ │ │ ├── apple-icon-57x57.png │ │ │ ├── apple-icon-60x60.png │ │ │ ├── apple-icon-72x72.png │ │ │ ├── apple-icon-76x76.png │ │ │ ├── apple-icon-precomposed.png │ │ │ ├── apple-icon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── ms-icon-144x144.png │ │ │ ├── ms-icon-150x150.png │ │ │ ├── ms-icon-310x310.png │ │ │ └── ms-icon-70x70.png │ │ ├── image00.png │ │ ├── image01.png │ │ ├── image02.png │ │ ├── image03.png │ │ ├── image04.png │ │ ├── image05.png │ │ ├── image11.png │ │ ├── image13.png │ │ ├── image14.png │ │ ├── image15.png │ │ ├── large_scale_camera_frames.png │ │ ├── large_scale_tile.png │ │ ├── mhoro │ │ │ ├── SCALABILITY_L3T2_KEY.png │ │ │ ├── SCALABILITY_L3T2_KEY_SHIFT.png │ │ │ ├── SCALABILITY_L3T3_KEY.png │ │ │ ├── SCALABILITY_L3T3_KEY_SHIFT.png │ │ │ ├── SCALABILITY_L4T5_KEY.png │ │ │ ├── SCALABILITY_L4T5_KEY_SHIFT.png │ │ │ ├── SCALABILITY_L4T7_KEY.png │ │ │ └── SCALABILITY_L4T7_KEY_SHIFT.png │ │ ├── scalability_L1T2.png │ │ ├── scalability_L1T3.png │ │ ├── scalability_L2T1.png │ │ ├── scalability_L2T2.png │ │ ├── scalability_L2T3.png │ │ ├── scalability_S2T1.png │ │ ├── scalability_S2T2.png │ │ └── scalability_S2T3.png │ └── js │ │ ├── anchor.min.js │ │ ├── bootstrap.min.js │ │ ├── bootstrap.min.js.map │ │ └── toc.js ├── av1-spec.pdf └── index.html ├── favicon.ico ├── index.md ├── manifest.json ├── package-lock.json ├── package.json ├── pdf.md └── section.links.md /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | _tmp/ 3 | _build/ 4 | .sass-cache/ 5 | node_modules/ 6 | .jekyll-metadata 7 | docs/av1-spec.html 8 | docs/assets/css/av1-spec-print.css 9 | -------------------------------------------------------------------------------- /.rbenv-version: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/.rbenv-version -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.2.0 2 | -------------------------------------------------------------------------------- /00.abstract.md: -------------------------------------------------------------------------------- 1 | 2 | ## Abstract 3 | {:.no_toc .no_count } 4 | 5 | This document defines the bitstream formats and decoding process for the 6 | [Alliance for Open Media][AOM] AV1 video codec. 7 | 8 | [AOM]: http://aomedia.org/ 9 | -------------------------------------------------------------------------------- /00.cover-legend.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | **Version 1.0.0 with Errata 1** 4 | {:.no_toc .no_count style="font-size: 1.2rem"} 5 | 6 | This version 1.0.0 with Errata 1 of the AV1 Bitstream Specification supercedes 7 | all previous versions of the AV1 Bitstream Specification, most notably version 8 | 1.0.0, which is now obsolete. 9 | 10 | This version 1.0.0 with Errata 1 of the AV1 Bitstream Specification corresponds 11 | to the Git tag **[v1.0.0-errata1]** in the **[AOMediaCodec/av1-spec]** project. 12 | Its content has been validated as consistent with the reference decoder provided 13 | by **[libaom v1.0.0-errata1]**. 14 | 15 | To comment on this document, use the [mailing list] or the [issue tracker]. 16 | 17 | [v1.0.0-errata1]: https://github.com/AOMediaCodec/av1-spec/releases/tag/v1.0.0-errata1 18 | [AOMediaCodec/av1-spec]: https://github.com/AOMediaCodec/av1-spec 19 | [libaom v1.0.0-errata1]: https://aomedia-review.googlesource.com/admin/repos/aom,tags 20 | [issue tracker]: https://github.com/AOMediaCodec/av1-spec/issues 21 | [mailing list]: https://groups.google.com/a/aomedia.org/forum/#!forum/av1-discuss 22 | 23 |
24 | -------------------------------------------------------------------------------- /00.draft-legend.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | **Draft Document** 4 | {:.no_toc .no_count .text-center style="font-size: 2rem"} 5 | 6 | This is a **draft document** that will change substantially before release. Do 7 | not rely on its current contents. To comment on the document, use the 8 | **[issue tracker]**. 9 | 10 | [issue tracker]: https://github.com/AOMediaCodec/av1-spec/issues 11 | [project homepage]: https://github.com/AOMediaCodec/av1-spec#readme 12 | [README]: https://raw.githubusercontent.com/AOMediaCodec/av1-spec/master/README.md 13 | [Google Chrome]: https://www.google.com/chrome/ 14 | 15 |
16 | -------------------------------------------------------------------------------- /00.html-legend.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | **Notice** 4 | {:.no_toc .no_count .text-center style="font-size: 2rem"} 5 | 6 | This is an internal AOMedia working document and **not an approved version** of 7 | the AV1 specification. The approved AV1 bitstream specification can be found 8 | here: 9 | 10 |
11 | -------------------------------------------------------------------------------- /00.title.md: -------------------------------------------------------------------------------- 1 | 2 | # {{ site.title }} 3 | {:.no_toc} 4 | -------------------------------------------------------------------------------- /00.toc.md: -------------------------------------------------------------------------------- 1 | 2 | ## Contents 3 | {:.no_toc .no_count} 4 | 5 | * TOC 6 | {:toc} 7 | -------------------------------------------------------------------------------- /00.version.md: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | _Copyright 2019, The [Alliance for Open Media][AOM]_ 3 | {% endcomment %} 4 | _Last modified: {{ site.time | date: "%Y-%m-%d %H:%M" }} PT_ 5 | -------------------------------------------------------------------------------- /01.scope.md: -------------------------------------------------------------------------------- 1 | 2 | ## Scope 3 | 4 | This document specifies the Alliance for Open Media AV1 bitstream formats and 5 | decoding process. 6 | -------------------------------------------------------------------------------- /02.terms.md: -------------------------------------------------------------------------------- 1 | 2 | ## Terms and definitions 3 | 4 | For the purposes of this document, the following terms and definitions apply: 5 | 6 | AC coefficient 7 | 8 | : Any transform coefficient whose frequency indices are non-zero in at least 9 | one dimension. 10 | 11 | Altref 12 | 13 | : (Alternative reference frame) A frame that can be used in inter coding. 14 | 15 | Base layer 16 | 17 | : The layer with spatial_id and temporal_id values equal to 0. 18 | 19 | Bitstream 20 | 21 | : The sequence of bits generated by encoding a sequence of frames. 22 | 23 | Bit string 24 | 25 | : An ordered string with limited number of bits. The left most bit is the most 26 | significant bit (MSB), the right most bit is the least significant bit (LSB). 27 | 28 | Block 29 | 30 | : A square or rectangular region of samples. 31 | 32 | Block scan 33 | 34 | : A specified serial ordering of quantized coefficients. 35 | 36 | Byte 37 | 38 | : An 8-bit bit string. 39 | 40 | Byte alignment 41 | 42 | : One bit is byte aligned if the position of the bit is an integer multiple of 43 | eight from the position of the first bit in the bitstream. 44 | 45 | CDEF 46 | 47 | : Constrained Directional Enhancement Filter designed to adaptively filter 48 | blocks based on identifying the direction. 49 | 50 | CDF 51 | 52 | : Cumulative distribution function representing the probability times 32768 that 53 | a symbol has value less than or equal to a given level. 54 | 55 | Chroma 56 | 57 | : A sample value matrix or a single sample value of one of the two color 58 | difference signals. 59 | 60 | **Note:** Symbols of chroma are U and V. 61 | {:.alert .alert-info } 62 | 63 | Coded frame 64 | 65 | : The representation of one frame before the decoding process. 66 | 67 | Component 68 | 69 | : One of the three sample value matrices (one luma matrix and two chroma 70 | matrices) or its single sample value. 71 | 72 | Compound prediction 73 | 74 | : A type of inter prediction where sample values are computed by blending 75 | together predictions from two reference frames (the frames blended can be the 76 | same or different). 77 | 78 | DC coefficient 79 | 80 | : A transform coefficient whose frequency indices are zero in both dimensions. 81 | 82 | Decoded frame 83 | 84 | : The frame reconstructed out of the bitstream by the decoder. 85 | 86 | Decoder 87 | 88 | : One embodiment of the decoding process. 89 | 90 | Decoding process 91 | 92 | : The process that derives decoded frames from syntax elements, including any processing 93 | steps used prior to and for the film grain synthesis process. 94 | 95 | Dequantization 96 | 97 | : The process in which transform coefficients are obtained by scaling the 98 | quantized coefficients. 99 | 100 | Encoder 101 | 102 | : One embodiment of the encoding process. 103 | 104 | Encoding process 105 | 106 | : A process not specified in this Specification that generates the bitstream 107 | that conforms to the description provided in this document. 108 | 109 | Enhancement layer 110 | 111 | : A layer with either spatial_id greater than 0 or temporal_id greater than 0. 112 | 113 | Flag 114 | 115 | : A binary variable - some variables and syntax elements (e.g. 116 | obu_extension_flag) are described using the word flag to highlight that the 117 | syntax element can only be equal to 0 or equal to 1. 118 | 119 | Frame 120 | 121 | : The representation of video signals in the spatial domain, composed of one 122 | luma sample matrix (Y) and two chroma sample matrices (U and V). 123 | 124 | Frame context 125 | 126 | : A set of probabilities used in the decoding process. 127 | 128 | Golden frame 129 | 130 | : A frame that can be used in inter coding. Typically the golden frame is 131 | encoded with higher quality and is used as a reference for multiple inter 132 | frames. 133 | 134 | Inter coding 135 | 136 | : Coding one block or frame using inter prediction. 137 | 138 | Inter frame 139 | 140 | : A frame compressed by referencing previously decoded frames and which may use 141 | intra prediction or inter prediction. 142 | 143 | Inter prediction 144 | 145 | : The process of deriving the prediction value for the current frame using 146 | previously decoded frames. 147 | 148 | Intra coding 149 | 150 | : Coding one block or frame using intra prediction. 151 | 152 | Intra frame 153 | 154 | : A frame compressed using only intra prediction which can be independently 155 | decoded. 156 | 157 | Intra prediction 158 | 159 | : The process of deriving the prediction value for the current sample using 160 | previously decoded sample values in the same decoded frame. 161 | 162 | Inverse transform 163 | 164 | : The process in which a transform coefficient matrix is transformed into a 165 | spatial sample value matrix. 166 | 167 | Key frame 168 | 169 | : An Intra frame which resets the decoding process when it is shown. 170 | 171 | Layer 172 | 173 | : A set of tile group OBUs with identical spatial_id and identical temporal_id 174 | values. 175 | 176 | Level 177 | 178 | : A defined set of constraints on the values for the syntax elements and 179 | variables. 180 | 181 | Loop filter 182 | 183 | : A filtering process applied to the reconstruction intended to reduce the 184 | visibility of block edges. 185 | 186 | Luma 187 | 188 | : A sample value matrix or a single sample value representing the monochrome 189 | signal related to the primary colors. 190 | 191 | **Note:** The symbol representing luma is Y. 192 | {:.alert .alert-info } 193 | 194 | Mode info 195 | 196 | : Syntax elements sent for a block containing an indication of how a block is 197 | to be predicted during the decoding process. 198 | 199 | Mode info block 200 | 201 | : A luma sample value block of size 4x4 or larger and its two corresponding 202 | chroma sample value blocks (if present). 203 | 204 | Motion vector 205 | 206 | : A two-dimensional vector used for inter prediction which refers the current 207 | frame to the reference frame, the value of which provides the coordinate 208 | offsets from a location in the current frame to a location in the reference 209 | frame. 210 | 211 | OBU 212 | 213 | : All structures are packetized in "Open Bitstream Units" or OBUs. Each OBU has 214 | a header, which provides identifying information for the contained data 215 | (payload). 216 | 217 | Parse 218 | 219 | : The procedure of getting the syntax element from the bitstream. 220 | 221 | Prediction 222 | 223 | : The implementation of the prediction process consisting of either inter or 224 | intra prediction. 225 | 226 | Prediction process 227 | 228 | : The process of estimating the decoded sample value or data element using a 229 | predictor. 230 | 231 | Prediction value 232 | 233 | : The value, which is the combination of the previously decoded sample values or 234 | data elements, used in the decoding process of the next sample value or data 235 | element. 236 | 237 | Profile 238 | 239 | : A subset of syntax, semantics and algorithms defined in a part. 240 | 241 | Quantization parameter 242 | 243 | : A variable used for scaling the quantized coefficients in the decoding 244 | process. 245 | 246 | Quantized coefficient 247 | 248 | : A transform coefficient before dequantization. 249 | 250 | Raster scan 251 | 252 | : Maps a two dimensional rectangular raster into a one dimensional raster, in 253 | which the entry of the one dimensional raster starts from the first row of the 254 | two dimensional raster, and the scanning then goes through the second row and 255 | the third row, and so on. Each raster row is scanned in left to right order. 256 | 257 | Reconstruction 258 | 259 | : Obtaining the addition of the decoded residual and the corresponding 260 | prediction values. 261 | 262 | Reference 263 | 264 | : One of a set of tags, each of which is mapped to a reference frame. 265 | 266 | Reference frame 267 | 268 | : A storage area for a previously decoded frame and associated information. 269 | 270 | Reserved 271 | 272 | : A special syntax element value which may be used to extend this part in the 273 | future. 274 | 275 | Residual 276 | 277 | : The differences between the reconstructed samples and the corresponding 278 | prediction values. 279 | 280 | Sample 281 | 282 | : The basic elements that compose the frame. 283 | 284 | Sample value 285 | 286 | : The value of a sample. This is an integer from 0 to 255 (inclusive) for 8-bit 287 | frames, from 0 to 1023 (inclusive) for 10-bit frames, and from 0 to 4095 288 | (inclusive) for 12-bit frames. 289 | 290 | Segmentation map 291 | 292 | : One 3-bit number per 4x4 block in the frame specifying the segment affiliation of that block. 293 | A segmentation map is stored for each reference frame to allow new frames to use a previously coded map. 294 | 295 | Sequence 296 | 297 | : The highest level syntax structure of coding bitstream, including one or 298 | several consecutive coded frames. 299 | 300 | Superblock 301 | 302 | : The top level of the block quadtree within a tile. All superblocks within a 303 | frame are the same size and are square. The superblocks may be 128x128 luma samples 304 | or 64x64 luma samples. A superblock may contain 1 or 2 or 4 mode info blocks, or may be 305 | bisected in each direction to create 4 sub-blocks, which may themselves be 306 | further subpartitioned, forming the block quadtree. 307 | 308 | Switch Frame 309 | 310 | : An inter frame that can be used as a point to switch between sequences. Switch 311 | frames overwrite all the reference frames without forcing the use of intra 312 | coding. The intention is to allow a streaming use case where videos can be 313 | encoded in small chunks (say of 1 second duration), each starting with a 314 | switch frame. If the available bandwidth drops, the server can start sending 315 | chunks from a lower bitrate encoding instead. When this happens 316 | the inter prediction uses the existing higher quality reference frames 317 | to decode the switch frame. This approach allows a bitrate switch without 318 | the cost of a full key frame. 319 | 320 | Syntax element 321 | 322 | : An element of data represented in the bitstream. 323 | 324 | Temporal delimiter OBU 325 | 326 | : An indication that the following OBUs will have a different 327 | presentation/decoding time stamp from the one of the last frame prior to the 328 | temporal delimiter. 329 | 330 | Temporal unit 331 | 332 | : A Temporal unit consists of all the OBUs that are associated with a specific, 333 | distinct time instant. It consists of a temporal delimiter OBU, and all the 334 | OBUs that follow, up to but not including the next temporal delimiter. 335 | 336 | Temporal group 337 | 338 | : A set of frames whose temporal prediction structure is used periodically in a 339 | video sequence. 340 | 341 | Tier 342 | 343 | : A specified category of level constraints imposed on the values of the syntax elements 344 | in the bitstream. 345 | 346 | Tile 347 | 348 | : A rectangular region of the frame that can be decoded 349 | and encoded independently, although loop-filtering across tile edges is still 350 | applied. 351 | 352 | Transform block 353 | 354 | : A rectangular transform coefficient matrix, used as input to the inverse transform 355 | process. 356 | 357 | Transform coefficient 358 | 359 | : A scalar value, considered to be in a frequency domain, contained in a 360 | transform block. 361 | 362 | Uncompressed header 363 | 364 | : High level description of the frame to be decoded that is encoded without the 365 | use of arithmetic encoding. 366 | -------------------------------------------------------------------------------- /98.testing.md: -------------------------------------------------------------------------------- 1 | * * * 2 | 3 | **This area is for format testing, and not part of the AV1 bitstream document.** 4 | {:.alert .alert-danger style="margin-top: 120px;"} 5 | 6 | 7 | **Small table example** 8 | 9 | | --------------------------------------------------------- | ---------------- | 10 | | obu_header() { | **Type** 11 | | @@obu_forbidden_bit | f(1) 12 | | @@obu_type | f(4) 13 | | @@obu_reserved_2bits | f(2) 14 | | @@obu_extension_flag | f(1) 15 | | if ( obu_extension_flag == 1 ) 16 | | obu_extension_header() 17 | | } 18 | {:.syntax } 19 | 20 | 21 | **Long lines example** 22 | 23 | | --------------------------------------------------------- | ---------------- | 24 | | read_delta_qindex( ) { | **Type** 25 | | sbSize = use_128x128_superblock ? BLOCK_128X128 : BLOCK_64X64 26 | | if ( MiSize == sbSize && skip ) 27 | | return 28 | | if ( ReadDeltas ) { 29 | | @@delta_q_abs | S() 30 | | if ( delta_q_abs == DELTA_Q_SMALL ) { 31 | | @@delta_q_rem_bits | L(3) 32 | | delta_q_rem_bits++ 33 | | @@delta_q_abs_bits | L(delta_q_rem_bits) 34 | | delta_q_abs = delta_q_abs_bits + (1 \<\< delta_q_rem_bits) + 1 35 | | } 36 | | if ( delta_q_abs ) { 37 | | @@delta_q_sign_bit | L(1) 38 | | reducedDeltaQIndex = delta_q_sign_bit ? -delta_q_abs : delta_q_abs 39 | | CurrentQIndex = Clip3(1, 255, CurrentQIndex + (reducedDeltaQIndex \<\< delta_q_res)) 40 | | } 41 | | } 42 | | } 43 | {:.syntax } 44 | 45 | -------------------------------------------------------------------------------- /99.function-reference-links.md: -------------------------------------------------------------------------------- 1 | {% comment %} 2 | |--------------------------------------------- 3 | | 4 | | Link targets for cross-referencing function 5 | | names. 6 | | 7 | | Reference-style kramdown links 8 | | https://kramdown.gettalong.org/syntax.html#reference-links 9 | | 10 | | Provided a function name is listed here, links 11 | | are created by enclosing the function name in 12 | | [square] brackets. 13 | | 14 | | Use only in narrative text, not in code blocks 15 | | or samples. 16 | | 17 | |--------------------------------------------- 18 | {% endcomment %} 19 | 20 | 21 | [6.0]: #6-bitstream-syntax 22 | [6.1]: #61-frame-syntax 23 | [6.1.1]: #611-trailing-bits-syntax 24 | [6.1.2]: #612-refresh-probs-syntax 25 | [6.2]: #62-uncompressed-header-syntax 26 | [6.2.1]: #621-frame-sync-syntax 27 | [6.2.2]: #622-color-config-syntax 28 | [6.2.3]: #623-frame-size-syntax 29 | [6.2.4]: #624-render-size-syntax 30 | [6.2.5]: #625-frame-size-with-refs-syntax 31 | [6.2.6]: #626-compute-image-size-function 32 | [6.2.7]: #627-interpolation-filter-syntax 33 | [6.2.8]: #628-loop-filter-params-syntax 34 | [6.2.9]: #629-quantization-params-syntax 35 | [6.2.10]: #6210-delta-quantizer-syntax 36 | [6.2.11]: #6211-segmentation-params-syntax 37 | [6.2.12]: #6212-probability-syntax 38 | [6.2.13]: #6213-tile-info-syntax 39 | [6.2.14]: #6214-tile-size-calculation-function 40 | [6.3]: #63-compressed-header-function 41 | [6.3.1]: #631-tx-mode-syntax 42 | [6.3.2]: #632-tx-mode-probs-function 43 | [6.3.3]: #633-diff-update-prob-syntax 44 | [6.3.4]: #634-decode-term-subexp-syntax 45 | [6.3.5]: #635-inv-remap-prob-function 46 | [6.3.6]: #636-inv-recenter-noneg-function 47 | [6.3.7]: #637-coef-probs-syntax 48 | [6.3.8]: #638-skip-probs-function 49 | [6.3.9]: #639-inter-mode-probs-function 50 | [6.3.10]: #6310-interp-filter-probs-function 51 | [6.3.11]: #6311-intra-inter-probs-function 52 | [6.3.12]: #6312-frame-reference-mode-function 53 | [6.3.13]: #6313-frame-reference-mode-probs-function 54 | [6.3.14]: #6314-y-mode-probs-function 55 | [6.3.15]: #6315-uv-mode-probs-function 56 | [6.3.16]: #6316-segmentation-probs-function 57 | [6.3.17]: #6317-partition-probs-function 58 | [6.3.18]: #6318-y-intra-mode-probs-function 59 | [6.3.19]: #6319-mv-probs-function 60 | [6.3.20]: #6320-setup-compound-reference-mode-syntax 61 | [6.4]: #64-decode-tiles-syntax 62 | [6.4.1]: #641-get-tile-offset-function 63 | [6.4.2]: #642-decode-tile-function 64 | [6.4.3]: #643-decode-partition-function 65 | [6.4.4]: #644-decode-block-syntax 66 | [6.4.5]: #645-mode-info-syntax 67 | [6.4.6]: #646-intra-frame-mode-info-syntax 68 | [6.4.7]: #647-intra-segment-id-syntax 69 | [6.4.8]: #648-skip-syntax 70 | [6.4.9]: #649-segmentation-feature-active-function 71 | [6.4.10]: #6410-tx-size-syntax 72 | [6.4.11]: #6411-inter-frame-mode-info-function 73 | [6.4.12]: #6412-inter-segment-id-syntax 74 | [6.4.13]: #6413-is-inter-syntax 75 | [6.4.14]: #6414-get-segment-id-syntax 76 | [6.4.15]: #6415-intra-block-mode-info-syntax 77 | [6.4.16]: #6416-inter-block-mode-info-syntax 78 | [6.4.17]: #6417--ref-frames-syntax 79 | [6.4.18]: #6418--assign-mv-function 80 | [6.4.19]: #6419--mv-syntax 81 | [6.4.20]: #6420--mv-component-syntax 82 | [6.4.21]: #6421--residual-syntax 83 | [6.4.22]: #6422--get-uv-size-function 84 | [6.4.23]: #6423--get-plane-block-size-function 85 | [6.4.24]: #6424--token-syntax 86 | [6.4.25]: #6425--get-scan-function 87 | [6.4.26]: #6426--coef-syntax 88 | [6.5]: #65-motion-vector-prediction 89 | [6.5.1]: #651-find-mv-refs-function 90 | [6.5.2]: #652-is-inside-function 91 | [6.5.3]: #653-clamp-mv-row-function 92 | [6.5.4]: #654-clamp-mv-col-function 93 | [6.5.5]: #655-add-mv-ref-list-function 94 | [6.5.6]: #656-if-same-ref-frame-add-function 95 | [6.5.7]: #657-if-diff-ref-frame-add-function 96 | [6.5.8]: #658-scale-mv-function 97 | [6.5.9]: #659-get-block-mv-function 98 | [6.5.10]: #6510--get-sub-block-mv-function 99 | [6.5.11]: #6511--find-best-ref-mvs-function 100 | 101 | [7.0]: #7-bitstream-semantics 102 | [7.1]: #71-frame-semantics 103 | [7.1.1]: #711-trailing-bits-semantics 104 | [7.1.2]: #712-refresh-probs-semantics 105 | [7.2]: #72-uncompressed-header-semantics 106 | [7.2.1]: #721-frame-sync-semantics 107 | [7.2.2]: #722-color-config-semantics 108 | [7.2.3]: #723-frame-size-semantics 109 | [7.2.4]: #724-render-size-semantics 110 | [7.2.5]: #725-frame-size-with-refs-semantics 111 | [7.2.6]: #726-compute-image-size-semantics 112 | [7.2.7]: #727-interpolation-filter-semantics 113 | [7.2.8]: #728-loop-filter-semantics 114 | [7.2.9]: #729-quantization-params-syntax 115 | [7.2.10]: #7210-segmentation-params-syntax 116 | [7.2.11]: #7211-tile-info-semantics 117 | [7.3]: #73-compressed-header-semantics 118 | [7.3.1]: #731-tx-mode-semantics 119 | [7.3.2]: #732-diff-update-prob-semantics 120 | [7.3.3]: #733-decode-term-subexp-semantics 121 | [7.3.4]: #734-inv-remap-prob-semantics 122 | [7.3.5]: #735-coef-prob-semantics 123 | [7.3.6]: #736-frame-reference-mode-semantics 124 | [7.4]: #74-tile-level 125 | [7.4.1]: #741-decode-tiles-semantics 126 | [7.4.2]: #742-decode-tile-semantics 127 | [7.4.3]: #743-decode-partition-semantics 128 | [7.4.4]: #744-decode-block-semantics 129 | [7.4.5]: #745-intra-frame-mode-info-semantics 130 | [7.4.6]: #746-intra-and-inter-segment-id-semantics 131 | [7.4.7]: #747-skip-semantics 132 | [7.4.8]: #748-tx-size-semantics 133 | [7.4.9]: #749-is-inter-semantics 134 | [7.4.10]: #7410-intra-block-mode-info-semantics 135 | [7.4.11]: #7411-inter-block-mode-info-semantics 136 | [7.4.12]: #7412-ref-frames-semantics 137 | [7.4.13]: #7413-mv-semantics 138 | [7.4.14]: #7414-mv-component-semantics 139 | [7.4.15]: #7415-residual-semantics 140 | [7.4.16]: #7416-token-semantics 141 | [7.4.17]: #7417-coef-semantics 142 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | 2 | **Authors** 3 | Peter de Rivaz, Argon Design Ltd 4 | Jack Haughton, Argon Design Ltd 5 | 6 | **Codec Working Group Chair** 7 | Adrian Grange, Google LLC 8 | 9 | **Document Design** 10 | Lou Quillio, Google LLC 11 | 12 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | ruby RUBY_VERSION 3 | 4 | # Hello! This is where you manage which Jekyll version is used to run. 5 | # When you want to use a different version, change it below, save the 6 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 7 | # 8 | # bundle exec jekyll serve 9 | # 10 | # This will help ensure the proper Jekyll version is running. 11 | # Happy Jekylling! 12 | gem "jekyll", "3.9.2" 13 | 14 | # This is the default theme for new Jekyll sites. You may change this to anything you like. 15 | gem "minima", "~> 2.0" 16 | 17 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 18 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 19 | # gem "github-pages", group: :jekyll_plugins 20 | 21 | # If you have any plugins, put them here! 22 | #group :jekyll_plugins do 23 | # gem "jekyll-feed", "~> 0.6" 24 | #end 25 | 26 | gem "kramdown-parser-gfm", "~> 1.1" 27 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.4) 5 | public_suffix (>= 2.0.2, < 6.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.2.2) 8 | em-websocket (0.5.3) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0) 11 | eventmachine (1.2.7) 12 | ffi (1.15.5) 13 | forwardable-extended (2.6.0) 14 | http_parser.rb (0.8.0) 15 | i18n (0.9.5) 16 | concurrent-ruby (~> 1.0) 17 | jekyll (3.9.2) 18 | addressable (~> 2.4) 19 | colorator (~> 1.0) 20 | em-websocket (~> 0.5) 21 | i18n (~> 0.7) 22 | jekyll-sass-converter (~> 1.0) 23 | jekyll-watch (~> 2.0) 24 | kramdown (>= 1.17, < 3) 25 | liquid (~> 4.0) 26 | mercenary (~> 0.3.3) 27 | pathutil (~> 0.9) 28 | rouge (>= 1.7, < 4) 29 | safe_yaml (~> 1.0) 30 | jekyll-feed (0.11.0) 31 | jekyll (~> 3.3) 32 | jekyll-sass-converter (1.5.2) 33 | sass (~> 3.4) 34 | jekyll-seo-tag (2.6.1) 35 | jekyll (>= 3.3, < 5.0) 36 | jekyll-watch (2.2.1) 37 | listen (~> 3.0) 38 | kramdown (2.4.0) 39 | rexml 40 | kramdown-parser-gfm (1.1.0) 41 | kramdown (~> 2.0) 42 | liquid (4.0.4) 43 | listen (3.8.0) 44 | rb-fsevent (~> 0.10, >= 0.10.3) 45 | rb-inotify (~> 0.9, >= 0.9.10) 46 | mercenary (0.3.6) 47 | minima (2.5.1) 48 | jekyll (>= 3.5, < 5.0) 49 | jekyll-feed (~> 0.9) 50 | jekyll-seo-tag (~> 2.1) 51 | pathutil (0.16.2) 52 | forwardable-extended (~> 2.6) 53 | public_suffix (5.0.1) 54 | rb-fsevent (0.11.2) 55 | rb-inotify (0.10.1) 56 | ffi (~> 1.0) 57 | rexml (3.2.5) 58 | rouge (3.30.0) 59 | safe_yaml (1.0.5) 60 | sass (3.7.4) 61 | sass-listen (~> 4.0.0) 62 | sass-listen (4.0.0) 63 | rb-fsevent (~> 0.9, >= 0.9.4) 64 | rb-inotify (~> 0.9, >= 0.9.7) 65 | 66 | PLATFORMS 67 | x86_64-linux 68 | 69 | DEPENDENCIES 70 | jekyll (= 3.9.2) 71 | kramdown-parser-gfm (~> 1.1) 72 | minima (~> 2.0) 73 | 74 | RUBY VERSION 75 | ruby 3.2.0p0 76 | 77 | BUNDLED WITH 78 | 2.4.13 79 | -------------------------------------------------------------------------------- /Gruntfile.coffee: -------------------------------------------------------------------------------- 1 | module.exports = (grunt) -> 2 | # Initial grunt configurations 3 | grunt.initConfig 4 | pkg: grunt.file.readJSON('package.json') 5 | clean: [ 'docs', '_tmp' ] 6 | replace: 7 | boldSyntaxElements: 8 | options: patterns: [ { 9 | match: /@@[a-zA-Z_0-9]*(\[[^\]]*\])*/g 10 | replacement: (match) -> 11 | '' + match.substring(2) + '' 12 | } ] 13 | files: [ 14 | { src: '_site/index.html', dest: 'docs/index.html' }, 15 | { src: '_site/pdf.html', dest: 'docs/av1-spec.html' } 16 | ] 17 | preserveIndents: 18 | options: 19 | patterns: [ { 20 | match: /^\|([ ]){2,}/gm 21 | replacement: (match) -> 22 | '| ' + ' '.repeat(match.substring(1).length - 1) 23 | } ] 24 | files: [ 25 | { src: '98.testing.md', dest: '_tmp/' }, 26 | { src: '04.conventions.md', dest: '_tmp/' }, 27 | { src: '06.bitstream.syntax.md', dest: '_tmp/' } 28 | { src: 'annex.b.superframes.md', dest: '_tmp/' } 29 | ] 30 | copy: 31 | docs: 32 | files: [ { 33 | expand: true 34 | cwd: '_site' 35 | src: 'assets/**' 36 | dest: 'docs/' 37 | } ] 38 | readme: 39 | files: [ { 40 | expand: true # Not intuitive 41 | flatten: true # Not intuitive 42 | src: '_site/README.html' 43 | dest: 'docs/' 44 | } ] 45 | deprecated: # Preserves ArgonDesign webserver scheme 46 | files: [ { 47 | src: 'docs/index.html' 48 | dest: '_site/av1-spec.html' 49 | } ] 50 | jekyll: 51 | options: 52 | bundleExec: true 53 | skip_initial_build: false 54 | verbose: false 55 | src: '.' 56 | dest: '_site' 57 | serve: options: 58 | serve: false 59 | connect: 60 | remote: 61 | options: 62 | hostname: '*' 63 | port: process.env.AV1_SPEC_PORT ? 4000 64 | base: '.' 65 | keepalive: true 66 | livereload: false 67 | local: 68 | options: 69 | hostname: '*' 70 | port: 4000 71 | base: '.' 72 | keepalive: true 73 | open: 'http://127.0.0.1:4000/docs/' 74 | livereload: false 75 | nospawn: 76 | options: 77 | hostname: '*' 78 | port: 4000 79 | base: '.' 80 | keepalive: true 81 | livereload: false 82 | exec: 83 | pdf: 84 | cmd: 'prince docs/av1-spec.html -o docs/av1-spec.pdf' 85 | stderr: false 86 | # Load the NPM tasks. 87 | grunt.loadNpmTasks 'grunt-contrib-clean' 88 | grunt.loadNpmTasks 'grunt-contrib-connect' 89 | grunt.loadNpmTasks 'grunt-contrib-copy' 90 | grunt.loadNpmTasks 'grunt-jekyll' 91 | grunt.loadNpmTasks 'grunt-replace' 92 | grunt.loadNpmTasks('grunt-exec'); 93 | # Register the default tasks. 94 | grunt.registerTask 'default', [ 95 | 'clean' 96 | 'replace:preserveIndents' 97 | 'jekyll' 98 | 'replace:boldSyntaxElements' 99 | 'copy' 100 | ] 101 | return 102 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018, The Alliance for Open Media 2 | 3 | Licensing information is available at 4 | 5 | The MATERIALS ARE PROVIDED "AS IS." The Alliance for Open Media, its members, 6 | and its contributors expressly disclaim any warranties (express, implied, or 7 | otherwise), including implied warranties of merchantability, non-infringement, 8 | fitness for a particular purpose, or title, related to the materials. The 9 | entire risk as to implementing or otherwise using the materials is assumed by 10 | the implementer and user. IN NO EVENT WILL THE ALLIANCE FOR OPEN MEDIA, ITS 11 | MEMBERS, OR CONTRIBUTORS BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY 12 | FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY 13 | CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS 14 | DELIVERABLE OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, 15 | TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER 16 | HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 17 | -------------------------------------------------------------------------------- /PATENTS.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: web 3 | title: Alliance for Open Media Patent License 1.0 4 | --- 5 | 6 | # Alliance for Open Media Patent License 1.0 7 | 8 | ## 1. License Terms 9 | 10 | ### 1.1. Patent License 11 | 12 | Subject to the terms and conditions of this License, each Licensor, on behalf 13 | of itself and successors in interest and assigns, grants Licensee a non- 14 | sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, 15 | irrevocable (except as expressly stated in this License) patent license to its 16 | Necessary Claims to make, use, sell, offer for sale, import or distribute any 17 | Implementation. 18 | 19 | ### 1.2. Conditions 20 | 21 | #### 1.2.1. Availability 22 | 23 | As a condition to the grant of rights to Licensee to make, sell, offer for 24 | sale, import or distribute an Implementation under Section 1.1, Licensee must 25 | make its Necessary Claims available under this License, and must reproduce 26 | this License with any Implementation as follows: 27 | 28 | a. For distribution in source code, by including this License in the root 29 | directory of the source code with its Implementation. 30 | 31 | b. For distribution in any other form (including binary, object form, and/or 32 | hardware description code (e.g., HDL, RTL, Gate Level Netlist, GDSII, 33 | etc.)), by including this License in the documentation, legal notices, 34 | and/or other written materials provided with the Implementation. 35 | 36 | #### 1.2.2. Additional Conditions 37 | 38 | This license is directly from Licensor to Licensee. Licensee acknowledges as a 39 | condition of benefiting from it that no rights from Licensor are received from 40 | suppliers, distributors, or otherwise in connection with this License. 41 | 42 | ### 1.3. Defensive Termination 43 | 44 | If any Licensee, its Affiliates, or its agents initiates patent litigation or 45 | files, maintains, or voluntarily participates in a lawsuit against another 46 | entity or any person asserting that any Implementation infringes Necessary 47 | Claims, any patent licenses granted under this License directly to the 48 | Licensee are immediately terminated as of the date of the initiation of action 49 | unless 1) that suit was in response to a corresponding suit regarding an 50 | Implementation first brought against an initiating entity, or 2) that suit was 51 | brought to enforce the terms of this License (including intervention in a 52 | third-party action by a Licensee). 53 | 54 | ### 1.4. Disclaimers 55 | 56 | The Reference Implementation and Specification are provided "AS IS" and 57 | without warranty. The entire risk as to implementing or otherwise using the 58 | Reference Implementation or Specification is assumed by the implementer and 59 | user. Licensor expressly disclaims any warranties (express, implied, or 60 | otherwise), including implied warranties of merchantability, non-infringement, 61 | fitness for a particular purpose, or title, related to the material. IN NO 62 | EVENT WILL LICENSOR BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM 63 | OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER 64 | FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS LICENSE, WHETHER 65 | BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND 66 | WHETHER OR NOT THE OTHER PARTRY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 67 | DAMAGE. 68 | 69 | ## 2. Definitions 70 | 71 | ### 2.1. Affiliate 72 | 73 | "Affiliate" means an entity that directly or indirectly Controls, is Controlled 74 | by, or is under common Control of that party. 75 | 76 | ### 2.2. Control 77 | 78 | "Control" means direct or indirect control of more than 50% of the voting power 79 | to elect directors of that corporation, or for any other entity, the power to 80 | direct management of such entity. 81 | 82 | ### 2.3. Decoder 83 | 84 | "Decoder" means any decoder that conforms fully with all non-optional portions 85 | of the Specification. 86 | 87 | ### 2.4. Encoder 88 | 89 | "Encoder" means any encoder that produces a bitstream that can be decoded by a 90 | Decoder only to the extent it produces such a bitstream. 91 | 92 | ### 2.5. Final Deliverable 93 | 94 | "Final Deliverable" means the final version of a deliverable approved by the 95 | Alliance for Open Media as a Final Deliverable. 96 | 97 | ### 2.6. Implementation 98 | 99 | "Implementation" means any implementation, including the Reference 100 | Implementation, that is an Encoder and/or a Decoder. An Implementation also 101 | includes components of an Implementation only to the extent they are used as 102 | part of an Implementation. 103 | 104 | ### 2.7. License 105 | 106 | "License" means this license. 107 | 108 | ### 2.8. Licensee 109 | 110 | "Licensee" means any person or entity who exercises patent rights granted under 111 | this License. 112 | 113 | ### 2.9. Licensor 114 | 115 | "Licensor" means (i) any Licensee that makes, sells, offers for sale, imports or 116 | distributes any Implementation, or (ii) a person or entity that has a licensing 117 | obligation to the Implementation as a result of its membership and/or 118 | participation in the Alliance for Open Media working group that developed the 119 | Specification. 120 | 121 | ### 2.10. Necessary Claims 122 | 123 | "Necessary Claims" means all claims of patents or patent applications, (a) that 124 | currently or at any time in the future, are owned or controlled by the Licensor, 125 | and (b) (i) would be an Essential Claim as defined by the W3C Policy as of 126 | February 5, 2004 127 | () as if 128 | the Specification was a W3C Recommendation; or (ii) are infringed by the 129 | Reference Implementation. 130 | 131 | ### 2.11. Reference Implementation 132 | 133 | "Reference Implementation" means an Encoder and/or Decoder released by the 134 | Alliance for Open Media as a Final Deliverable. 135 | 136 | ### 2.12. Specification 137 | 138 | "Specification" means the specification designated by the Alliance for Open 139 | Media as a Final Deliverable for which this License was issued. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | This document provides instructions for working with the [draft] AV1 Bitstream 3 | & Decoding Process Specification. 4 | 5 | The specification document is built from plaintext section and subsection 6 | [Markdown] files (more specifically, [kramdown] files) using the [Jekyll] static 7 | site generator tool. 8 | 9 | The document build process employs a common [NodeJS]-based web development 10 | toolchain, requiring Node, [npm] (the Node package manager), and [GruntJS], a Node-based task runner. 11 | 12 | **Note:** As a general rule, the packages described below should be installed 13 | in user space, not at the system level -- in other words, **do not** install 14 | them as root or via `sudo`. An exception is Ruby development headers, which are 15 | usually needed to build Ruby and certain Ruby gems. 16 | {:.alert .alert-info } 17 | 18 | 19 | ### Ruby and rbenv 20 | 21 | This project currently depends on Ruby v3.2.0. Because your distro may lack this 22 | version -- or installing it may conflict with your system's installed version -- 23 | first **[install rbenv]**, then install Ruby v3.2.0 within it. 24 | 25 | ~~~~~ bash 26 | # list all available versions: 27 | $ rbenv install -l 28 | 3.1.4 29 | 3.2.0 30 | 3.2.2 31 | jruby-9.4.2.0 32 | mruby-3.2.0 33 | 34 | # install a Ruby version: 35 | $ rbenv install 3.2.0 36 | ~~~~~ 37 | 38 | Depending on your distro and environment, you may have trouble building a 39 | particular Ruby version. The rbenv project site maintains a 40 | [wiki page with troubleshooting help](https://github.com/rbenv/ruby-build/wiki). 41 | 42 | 43 | ### Bundler 44 | 45 | Gem dependencies are managed with **[bundler]**. 46 | 47 | ~~~~~ bash 48 | $ gem install bundler 49 | 50 | # Filesystem location where gems are installed 51 | $ gem env home 52 | # => ~/.rbenv/versions//lib/ruby/gems/... 53 | ~~~~~ 54 | 55 | 56 | ### Clone the Repo 57 | 58 | ~~~~~ bash 59 | git clone git@github.com:AOMediaCodec/av1-spec.git 60 | cd av1-spec 61 | ~~~~~ 62 | 63 | 64 | ### Set Local Ruby Version (rbenv) 65 | 66 | In the directory of your local clone, do: 67 | 68 | ~~~~~ bash 69 | rbenv local 3.2.0 70 | ~~~~~ 71 | 72 | Regardless of any other Rubies installed on your system, the project environment 73 | will now use v3.2.0 and gems appropriate for it. 74 | 75 | 76 | ### Install Gem Dependencies with Bundler 77 | 78 | In the directory of your local clone, run 79 | 80 | ~~~~~ bash 81 | bundle install 82 | ~~~~~ 83 | 84 | Bundler will set dependencies and install needed gems as listed in 85 | [`Gemfile.lock`]. 86 | 87 | 88 | ### NodeJS, npm and GruntJS 89 | 90 | Follow **[these instructions]** for installing NodeJS and npm. 91 | 92 | Next -- from the project directory -- update npm, install the grunt package, 93 | and install the project's Node dependencies: 94 | 95 | ~~~~~ bash 96 | ## Update npm globally 97 | npm update -g npm 98 | 99 | ## Install grunt globally 100 | npm install -g grunt-cli 101 | 102 | ## Install the project's Node dependencies 103 | ## (uses package.json and Gruntfile) 104 | npm install 105 | ~~~~~ 106 | 107 | 108 | ### Grunt Tasks 109 | 110 | Building the document is done via Grunt tasks, configured in the CoffeeScript 111 | file [`Gruntfile.coffee`]. 112 | 113 | There are tasks to 114 | 115 | * clean output directories 116 | * perform some automated text transformations on the content files 117 | * build the document with Jekyll 118 | * copy output files to the correct directories for serving and viewing 119 | 120 | These tasks are invoked in turn by the Grunt default task: 121 | 122 | ~~~~~ 123 | $ grunt 124 | ~~~~~ 125 | 126 | 127 | #### PDF 128 | 129 | Additionally, there is a task `grunt exec` for generating the spec as a PDF 130 | file. It invokes the commercial tool [Prince] (formerly PrinceXML), which must 131 | first be installed on your system. PDF generation can then be done with: 132 | 133 | ~~~~~ 134 | $ grunt && grunt exec 135 | ~~~~~ 136 | 137 | Note that while we are generating PDF as a convenience format during document 138 | development, the canonical spec will likely be served as HTML, not PDF. 139 | {:.alert .alert-info } 140 | 141 | 142 | [draft]: https://aomediacodec.github.io/av1-spec/ 143 | [Markdown]: https://daringfireball.net/projects/markdown/ 144 | [kramdown]: https://kramdown.gettalong.org/ 145 | [Jekyll]: https://jekyllrb.com/ 146 | [rbenv]: https://github.com/rbenv/rbenv 147 | [bundler]: http://bundler.io/ 148 | [install rbenv]: https://github.com/rbenv/rbenv#installation 149 | [GruntJS]: https://gruntjs.com/ 150 | [NodeJS]: https://nodejs.org/ 151 | [npm]: https://www.npmjs.org/ 152 | [`Gemfile.lock`]: https://github.com/AOMediaCodec/av1-spec/blob/master/Gemfile.lock 153 | [these instructions]: https://www.taniarascia.com/how-to-install-and-use-node-js-and-npm-mac-and-windows/ 154 | [`Gruntfile.coffee`]: https://github.com/AOMediaCodec/av1-spec/blob/master/Gruntfile.coffee 155 | [Prince]: https://www.princexml.com/ 156 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Welcome to Jekyll! 2 | # 3 | # This config file is meant for settings that affect your whole blog, values 4 | # which you are expected to set up once and rarely edit after that. If you find 5 | # yourself editing this file very often, consider using Jekyll's data files 6 | # feature for the data you need to update frequently. 7 | # 8 | # For technical reasons, this file is *NOT* reloaded automatically when you use 9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 10 | 11 | # Site settings 12 | # These are used to personalize your new site. If you look in the HTML files, 13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. 14 | # You can create any custom variable you would like, and they will be accessible 15 | # in the templates via {{ site.myvariable }}. 16 | title: AV1 Bitstream & Decoding Process Specification 17 | 18 | email: webmaster@webmproject.org 19 | description: > 20 | Description here 21 | baseurl: "/av1-spec" # the subpath of your site, e.g. /blog 22 | url: "" # the base hostname & protocol for your site, e.g. http://example.com 23 | twitter_username: webm 24 | github_username: webmproject 25 | timezone: America/Los_Angeles 26 | 27 | # Build settings 28 | highlighter: none 29 | markdown: kramdown 30 | kramdown: 31 | syntax_highlighter: rouge 32 | syntax_highlighter_opts: 33 | disable: false 34 | #gems: 35 | # - jekyll-github-metadata 36 | exclude: 37 | - Gemfile 38 | - Gemfile.lock 39 | - node_modules 40 | sass: 41 | style: compressed 42 | 43 | # GitHub metadata 44 | #repository: AOMediaCodec/av1-spec 45 | -------------------------------------------------------------------------------- /_layouts/pdf.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ site.title }} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | {{ content }} 19 | 20 | 21 | -------------------------------------------------------------------------------- /_layouts/web.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ site.title }} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
36 |
37 |
38 | {{ content }} 39 |
40 |
41 |
42 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /annex.b.superframes.md: -------------------------------------------------------------------------------- 1 | ## Annex B: Length delimited bitstream format 2 | {:.no_count} 3 | 4 | ### Overview 5 | {:.no_count} 6 | 7 | [Section 5][] defines the syntax for OBUs. 8 | [Section 5.2][] defines the low-overhead bitstream format. 9 | This annex defines a length-delimited format for packing OBUs into a format that 10 | enables skipping through temporal units and frames more easily. 11 | 12 | ### Length delimited bitstream syntax 13 | {:.no_count} 14 | 15 | | --------------------------------------------------------- | ---------------- | 16 | | bitstream( ) { | **Type** 17 | | while ( more_data_in_bitstream() ) { 18 | | @@temporal_unit_size | leb128() 19 | | temporal_unit( temporal_unit_size ) 20 | | } 21 | |} 22 | {:.syntax } 23 | 24 | | --------------------------------------------------------- | ---------------- | 25 | | temporal_unit( sz ) { | **Type** 26 | | while ( sz > 0 ) { 27 | | @@frame_unit_size | leb128() 28 | | sz -= Leb128Bytes 29 | | frame_unit( frame_unit_size ) 30 | | sz -= frame_unit_size 31 | | } 32 | |} 33 | {:.syntax } 34 | 35 | | --------------------------------------------------------- | ---------------- | 36 | | frame_unit( sz ) { | **Type** 37 | | while ( sz > 0 ) { 38 | | @@obu_length | leb128() 39 | | sz -= Leb128Bytes 40 | | open_bitstream_unit( obu_length ) 41 | | sz -= obu_length 42 | | } 43 | |} 44 | {:.syntax } 45 | 46 | 47 | ### Length delimited bitstream semantics 48 | {:.no_count} 49 | 50 | **more_data_in_bitstream()** is a system-dependent method of determining whether 51 | the end of the bitstream has been reached. It returns 1 when there is more data 52 | to be read, or 0 when the end of the bitstream has been reached. 53 | 54 | **temporal_unit_size** specifies the length in bytes of the next temporal unit. 55 | 56 | **frame_unit_size** specifies the length in bytes of the next frame unit. 57 | 58 | **obu_length** specifies the length in bytes of the next OBU. 59 | 60 | **Note:** It is allowed for the OBU to set obu_has_size_field equal to 1 to indicate 61 | that the obu_size syntax element is present. In this case, the decoding process 62 | assumes that obu_size and obu_length are set consistently. 63 | If obu_size and obu_length are both present, but inconsistent, then the packed bitstream 64 | is deemed invalid. 65 | {:.alert .alert-info } 66 | 67 | The first OBU in the first frame_unit of each temporal_unit must be a temporal delimiter OBU (and this is the only place temporal delimiter OBUs can appear). 68 | 69 | All the frame header and tile group OBUs required for decoding a single frame must be within the same frame_unit (and a frame_unit must not contain frame headers for more than one frame). 70 | 71 | -------------------------------------------------------------------------------- /annex.c.experiments.md: -------------------------------------------------------------------------------- 1 | ## Annex C: Error resilience behavior (informative) 2 | {:.no_count} 3 | 4 | ### General 5 | 6 | This annex defines additional starting points for decoding. 7 | 8 | It is recommended that decoders should support these starting points. 9 | (This annex is marked as informative because it is not mandatory for a conformant decoder to support these starting points.) 10 | 11 | The intention is to allow decoders to start even when the decoded output may be corrupted. 12 | 13 | A property of a bitstream is defined in [section C.2][]. 14 | 15 | The recommendations are expressed in [section C.3][]. 16 | 17 | The consequences for encoders are specified in [section C.4][]. 18 | 19 | The consequences for decoders are specified in [section C.5][]. 20 | 21 | ### Definition of processable frames 22 | 23 | This section defines a property of frames that is called being "processable". 24 | 25 | Informally, a frame is processable if it is certain (based on the current state and information in the frame header) 26 | that everything other than the sample values can be decoded correctly. 27 | 28 | In particular, a frame that is processable will have correct values for: 29 | 30 | * All syntax elements 31 | 32 | * The size, bitdepth, subsampling structure of any output frames 33 | 34 | * All values written in the reference frame update process specified in [section 7.20][], except for the contents of FrameStore 35 | (which may or may not be correct). 36 | 37 | In most codecs, this concept is unnecessary because it is trivial to determine if frames are processable (either because all frames are automatically processable, or because the conditions are straightforward). 38 | However, AV1 makes greater use of state in the reference frames and so the condition for being processable is more complicated. 39 | 40 | Formally, the property of being processable is defined as follows. 41 | 42 | A frame with show_existing_frame equal to 0 is defined to be processable if the following conditions are met: 43 | 44 | * Either primary_ref_frame is equal to PRIMARY_REF_NONE or ref_frame_idx[ primary_ref_frame ] indicates a frame that has been processed 45 | 46 | * Either use_ref_frame_mvs is equal to 0, or ref_frame_idx[ i ] indicates a frame that has been processed for all i = 0..REFS_PER_FRAME-1 47 | 48 | * Either allow_warped_motion is equal to 0, or ref_frame_idx[ i ] indicates a frame that has been processed for all i = 0..REFS_PER_FRAME-1 49 | (this is necessary because the motion_mode syntax parsing depends on whether the reference frame 50 | has been scaled - but this is not known unless the frame has been processed) 51 | 52 | * The decoding process for the frame does not use values in RefOrderHint before they have been written 53 | (written either by the decoding process for the current frame, or written when a previous frame was processed) 54 | 55 | * If the syntax element found_ref is equal to 1, ref_frame_idx[ i ] indicates a frame that has been processed 56 | (this is necessary because the frame dimensions are only correct for processed frames) 57 | 58 | A frame with show_existing_frame equal to 1 is processable if the following condition is met: 59 | 60 | * frame_to_show_map_idx indicates a frame that has been processed 61 | 62 | (A frame being "processed" means that the frame was processable and has been decoded.) 63 | 64 | ### Recommendation for processable frames 65 | 66 | It is recommended that decoders should support decoding bitstreams if the first temporal unit contains a sequence header 67 | and all frames contained in the bitstream are processable according to the definition above. 68 | 69 | As the inter prediction may depend on missing reference frames, there is not a requirement that exactly 70 | the same output samples as the reference code are produced. 71 | 72 | In certain cases (e.g. when the first frame only contains intra coded blocks), it is possible that correct output is produced, 73 | but, in general, error concealment techniques may be required. 74 | 75 | ### Encoder consequences of processable frames 76 | 77 | If an application chooses to use a non-key frame starting point, then the encoder needs to be careful 78 | that the resulting bitstream is processable. 79 | 80 | There are some features of the bitstream specification that make this easier to achieve: 81 | 82 | * primary_ref_frame, use_ref_frame_mvs, and allow_warped_motion can be controlled at a frame level to satisfy the corresponding conditions 83 | 84 | * setting error_resilient_mode equal to 1 causes the order hints to be transmitted if necessary 85 | 86 | * found_ref can be cleared to allow the frame resolution to be sent explicitly 87 | 88 | ### Decoder consequences of processable frames 89 | 90 | For the decoding process to handle this mode of operation, the following modifications should be used: 91 | 92 | * RefValid[ i ] should be set equal to 0 for i = 0..NUM_REF_FRAMES-1 before the decoding process begins 93 | 94 | * If frame_id_numbers_present_flag is equal to 1, for the first frame current_frame_id should not be 95 | compared to PrevFrameID (because PrevFrameID is uninitialized). 96 | 97 | * When the syntax element ref_order_hint[ i ] is read, RefOrderHint[ i ] is set equal to ref_order_hint[ i ]. 98 | 99 | * The requirement for bitstream conformance described in the semantics for 100 | ref_frame_idx[ i ] 101 | (that uses RefValid to check that the reference frames are available) 102 | should be ignored 103 | 104 | * When using the inter prediction process, if RefValid[ refIdx ] is equal to 0, then 105 | the motion vector scaling and block inter prediction processes are not followed. 106 | Instead, preds[ refList ] should be generated using an alternative approach. 107 | For conformance testing, it may help to define the predicted samples in a standard way. 108 | The suggested approach is to fill preds[ refList ] 109 | with neutral gray samples, i.e. all values equal to 1 \<\< ( BitDepth - 1 ) . 110 | 111 | -------------------------------------------------------------------------------- /annex.d.large.scale.tile.md: -------------------------------------------------------------------------------- 1 | ## Annex D: Large scale tile use case (informative) 2 | {:.no_count} 3 | 4 | One potential use-case for this process is the representation and rendering of a 3-dimensional environment 5 | as seen through an array of cameras that together capture a 360 degree view of the surrounding environment. 6 | One such arrangement of cameras is shown in the figure below where each small rectangle represents a full 7 | frame captured by a camera placed at a given latitude (row in the diagram) or longitude (column in the diagram), but other variants are possible. 8 | 9 |
10 | 11 |
Example array of 15x20 "camera" frames partitioned into 5x5 sub-arrays, 12 | where each sub-array has a central "anchor" frame (in red). Each small rectangle represents a frame.
13 |
14 | 15 | In order to create a rendered view in an arbitrary direction in the 3-D scene the decoder will potentially need a small number of pixels from many of these frames. Providing a process to decode only a sparsely distributed subset of small regions, each defined as an AV1 tile, can significantly improve efficiency. 16 | 17 | The algorithm for constructing the 3-dimensional view from the set of decoded tiles is beyond the scope of this specification; 18 | two possible schemes can be found in [8][9]. 19 | 20 | To reduce the amount of memory required and to improve decoder efficiency, a certain subset of the frames are denoted as "Anchor Frames" 21 | and it is assumed that the application makes these frames available to the decoder in uncompressed form. 22 | The example presented in the figure above highlights anchor frames in red. 23 | 24 | The other (non-anchor) frames are referred to as "Camera Frames" and each one is encoded using only the nearest anchor 25 | frame as a reference. Camera frames are highlighted in gray in the figure above, 26 | and are shown clustered into 5x5 groups to indicate which anchor fame each uses for prediction. 27 | 28 | The application is required to render a new 3-dimensional view at a rate of 90 fps. Each rendered frame may require at most two tile list OBU as defined in [section 5.12][] to be decoded, resulting in a maximum decode rate of 180 tile list OBU per second. Each decoded tile list OBU produces one output frame. 29 | -------------------------------------------------------------------------------- /assets/css/av1-spec-print.sass: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | // av1-spec-print.sass 4 | 5 | body 6 | //width: 100% 7 | //margin: .5in 8 | padding: 0 9 | font-size: 10pt 10 | color: #000 11 | background-color: #fff 12 | 13 | // General page rules 14 | 15 | @page 16 | size: letter portrait 17 | margin: .75in .5in 18 | @top-right 19 | content: string(doctitle) 20 | font-size: 10pt 21 | font-family: Arial, sans-serif 22 | font-style: italic 23 | color: #333 24 | @top-left 25 | content: "" 26 | font-size: 10pt 27 | font-family: Arial, sans-serif 28 | font-style: italic 29 | font-weight: bold 30 | color: #c00 31 | @bottom-right 32 | content: "Page " counter(page) " of " counter(pages) 33 | font-size: 10pt 34 | font-family: Arial, sans-serif 35 | font-style: italic 36 | color: #333 37 | @bottom-left 38 | content: "Section: " string(sectiontitle) 39 | font-size: 10pt 40 | font-family: Arial, sans-serif 41 | font-style: italic 42 | color: #333 43 | 44 | // Cover page -- Uses `:first` to undo normal page styling 45 | 46 | @page:first 47 | width: 100vw 48 | height: 100vh 49 | margin-top: 10% 50 | @top-right 51 | content: normal 52 | @top-left 53 | content: normal 54 | @bottom-right 55 | content: normal 56 | @bottom-left 57 | content: normal 58 | 59 | // End Cover page 60 | 61 | // Front matter 62 | 63 | div#frontmatter 64 | page: frontmatter 65 | 66 | @page frontmatter 67 | page-break-after: always 68 | counter-reset: page 69 | @bottom-right 70 | content: normal 71 | 72 | // End front matter 73 | 74 | // Page breaks, strings, colors, Bootstrap overrides 75 | 76 | h1 77 | string-set: doctitle content() 78 | h2 79 | string-set: sectiontitle content() 80 | h1, h2, h3, dt 81 | page-break-after: avoid 82 | h2 + table, 83 | h2 + pre.syntax 84 | page-break-before: avoid 85 | dd 86 | page-break-before: avoid 87 | img, figure 88 | max-width: 100% !important 89 | page-break-inside: avoid // Don't break within images 90 | table 91 | max-width: 100% !important 92 | page-break-inside: auto // Do break within tables 93 | pre 94 | border: 0 95 | .noprint 96 | display: none !important 97 | a 98 | color: #0a3f77 99 | code 100 | color: #1c561e 101 | 102 | -------------------------------------------------------------------------------- /assets/css/av1-spec.sass: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | //av1-spec.sass 4 | 5 | @import url('https://fonts.googleapis.com/css?family=Inconsolata') 6 | 7 | $monofont: 'Inconsolata', monospace 8 | $gridcolor: #ddd 9 | $gridweight: 2px 10 | 11 | pre.syntax 12 | background-color: #fff 13 | background-image: linear-gradient(90deg, transparent 40em, #abced4 40em, #abced4 40.1em, transparent 40.1em), linear-gradient($gridcolor .1em, transparent .1em) 14 | background-size: 100% 1.3em 15 | border-left: $gridweight solid $gridcolor 16 | border-right: $gridweight solid $gridcolor 17 | border-bottom: $gridweight solid $gridcolor 18 | white-space: pre 19 | font-family: $monofont 20 | font-size: 1em 21 | padding: 0 1em 22 | line-height: 1.3 23 | width: 50em 24 | // Generate a "Type" heading above 2nd column. 25 | &:before 26 | content: "Type\A" 27 | font-weight: bold 28 | padding-left: 39.5em 29 | code 30 | font-family: $monofont 31 | 32 | table 33 | .table-conventions 34 | th 35 | display: none 36 | td:first-child 37 | white-space: nowrap 38 | .table-xyhead 39 | th, td:first-child 40 | background-color: #9bbb59 41 | th 42 | color: #000 43 | font-weight: normal 44 | 45 | b.syntax-element // Temporary: adjust syntax element columnar spacing 46 | padding-right: 1em 47 | 48 | figure 49 | figcaption 50 | text-align: center 51 | font-style: italic 52 | margin: 1em auto 53 | 54 | // Start Experimental 55 | table.syntax 56 | width: 100% 57 | font-size: 1em 58 | margin-bottom: 1em 59 | td, th 60 | font-family: $monofont 61 | border: 1px solid #ccc 62 | padding-left: .5em 63 | padding-right: .5em 64 | line-height: 1.3 65 | td code 66 | color: #333 67 | background-color: #fff 68 | font-size: 1em 69 | padding: 0 70 | td:first-child 71 | width: 80% 72 | white-space: pre 73 | //width: 100% 74 | td:nth-child(2) 75 | width: 20% 76 | text-align: center 77 | th 78 | display: none 79 | // End Experimental 80 | 81 | // Rules that vary with viewport size 82 | // 83 | // Custom, iPhone Retina 84 | @media only screen and (min-width : 320px) 85 | 86 | // Extra Small Devices, Phones 87 | @media only screen and (min-width : 480px) 88 | 89 | // Small Devices, Tablets 90 | @media only screen and (min-width : 768px) 91 | 92 | // Medium Devices, Desktops 93 | @media only screen and (min-width : 992px) 94 | figure 95 | max-width: 80% 96 | 97 | // Large Devices, Wide Screens 98 | @media only screen and (min-width : 1200px) 99 | figure 100 | max-width: 60% 101 | 102 | 103 | // Auto heading-number styles 104 | 105 | body 106 | counter-reset: h2 107 | 108 | h2 109 | counter-reset: h3 110 | 111 | h3 112 | counter-reset: h4 113 | 114 | h4 115 | counter-reset: h5 116 | 117 | h5 118 | counter-reset: h6 119 | 120 | h2:before 121 | counter-increment: h2 122 | content: counter(h2) ". " 123 | 124 | h3:before 125 | counter-increment: h3 126 | content: counter(h2) "." counter(h3) ". " 127 | 128 | h4:before 129 | counter-increment: h4 130 | content: counter(h2) "." counter(h3) "." counter(h4) ". " 131 | 132 | h5:before 133 | counter-increment: h5 134 | content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". " 135 | 136 | h6:before 137 | counter-increment: h6 138 | content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". " 139 | 140 | h2.no_count:before, h3.no_count:before, h4.no_count:before, h5.no_count:before, h6.no_count:before 141 | content: "" 142 | counter-increment: none 143 | 144 | div.annex 145 | counter-reset: h2 146 | h2:before 147 | counter-increment: h2 148 | content: "" 149 | h3:before 150 | counter-increment: h3 151 | content: counter(h2, upper-alpha) "." counter(h3) ". " 152 | h4:before 153 | counter-increment: h4 154 | content: counter(h2, upper-alpha) "." counter(h3) "." counter(h4) ". " 155 | h5:before 156 | counter-increment: h5 157 | content: counter(h2, upper-alpha) "." counter(h3) "." counter(h4) "." counter(h5) ". " 158 | h6:before 159 | counter-increment: h6 160 | content: counter(h2, upper-alpha) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". " 161 | 162 | // Bootstrap-style documentation callouts 163 | 164 | .bs-callout 165 | padding: 20px 166 | margin: 20px 0 167 | border: 1px solid #eee 168 | border-left-width: 5px 169 | border-radius: 3px 170 | h4 171 | margin-top: 0 172 | margin-bottom: 5px 173 | p:last-child 174 | margin-bottom: 0 175 | code 176 | border-radius: 3px 177 | + .bs-callout 178 | margin-top: -5px 179 | 180 | .bs-callout-default 181 | border-left-color: #777 182 | h4 183 | color: #777 184 | 185 | .bs-callout-primary 186 | border-left-color: #428bca 187 | h4 188 | color: #428bca 189 | 190 | .bs-callout-success 191 | border-left-color: #5cb85c 192 | h4 193 | color: #5cb85c 194 | 195 | .bs-callout-danger 196 | border-left-color: #d9534f 197 | h4 198 | color: #d9534f 199 | 200 | .bs-callout-warning 201 | border-left-color: #f0ad4e 202 | h4 203 | color: #f0ad4e 204 | 205 | .bs-callout-info 206 | border-left-color: #5bc0de 207 | h4 208 | color: #5bc0de 209 | 210 | #markdown-toc 211 | list-style: none 212 | counter-reset: toc-item-main 213 | ul 214 | list-style: none 215 | counter-reset: toc-item-main toc-item-annex 216 | li.annex:before 217 | content: attr(data-annexid) "." counters(toc-item-annex, ".") ". " 218 | counter-increment: toc-item-annex 219 | li:before 220 | content: counters(toc-item-main, ".") ". " 221 | counter-increment: toc-item-main 222 | li.annex:before 223 | content: attr(data-annexid) ". " 224 | li.bibliography:before 225 | content: none 226 | 227 | // Bootstrap overrides 228 | 229 | code, kbd, pre, samp 230 | font-family: $monofont 231 | font-size: 1em 232 | line-height: 1.3 233 | 234 | div.highlighter-rouge 235 | pre.highlight // Very specific selector 236 | padding: 1rem 237 | -------------------------------------------------------------------------------- /assets/css/syntax-monokai.css: -------------------------------------------------------------------------------- 1 | pre.highlight { background-color: #272822; } 2 | .highlight .hll { background-color: #272822; } 3 | .highlight .c { color: #75715e } /* Comment */ 4 | .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ 5 | .highlight .k { color: #66d9ef } /* Keyword */ 6 | .highlight .l { color: #ae81ff } /* Literal */ 7 | .highlight .n { color: #f8f8f2 } /* Name */ 8 | .highlight .o { color: #f92672 } /* Operator */ 9 | .highlight .p { color: #f8f8f2 } /* Punctuation */ 10 | .highlight .cm { color: #75715e } /* Comment.Multiline */ 11 | .highlight .cp { color: #75715e } /* Comment.Preproc */ 12 | .highlight .c1 { color: #75715e } /* Comment.Single */ 13 | .highlight .cs { color: #75715e } /* Comment.Special */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 16 | .highlight .kc { color: #66d9ef } /* Keyword.Constant */ 17 | .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ 18 | .highlight .kn { color: #f92672 } /* Keyword.Namespace */ 19 | .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ 20 | .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ 21 | .highlight .kt { color: #66d9ef } /* Keyword.Type */ 22 | .highlight .ld { color: #e6db74 } /* Literal.Date */ 23 | .highlight .m { color: #ae81ff } /* Literal.Number */ 24 | .highlight .s { color: #e6db74 } /* Literal.String */ 25 | .highlight .na { color: #a6e22e } /* Name.Attribute */ 26 | .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ 27 | .highlight .nc { color: #a6e22e } /* Name.Class */ 28 | .highlight .no { color: #66d9ef } /* Name.Constant */ 29 | .highlight .nd { color: #a6e22e } /* Name.Decorator */ 30 | .highlight .ni { color: #f8f8f2 } /* Name.Entity */ 31 | .highlight .ne { color: #a6e22e } /* Name.Exception */ 32 | .highlight .nf { color: #a6e22e } /* Name.Function */ 33 | .highlight .nl { color: #f8f8f2 } /* Name.Label */ 34 | .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ 35 | .highlight .nx { color: #a6e22e } /* Name.Other */ 36 | .highlight .py { color: #f8f8f2 } /* Name.Property */ 37 | .highlight .nt { color: #f92672 } /* Name.Tag */ 38 | .highlight .nv { color: #f8f8f2 } /* Name.Variable */ 39 | .highlight .ow { color: #f92672 } /* Operator.Word */ 40 | .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ 41 | .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ 42 | .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ 43 | .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ 44 | .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ 45 | .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ 46 | .highlight .sc { color: #e6db74 } /* Literal.String.Char */ 47 | .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ 48 | .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ 49 | .highlight .se { color: #ae81ff } /* Literal.String.Escape */ 50 | .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ 51 | .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ 52 | .highlight .sx { color: #e6db74 } /* Literal.String.Other */ 53 | .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ 54 | .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ 55 | .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ 56 | .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ 57 | .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ 58 | .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ 59 | .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ 60 | .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ 61 | 62 | .highlight .gh { } /* Generic Heading & Diff Header */ 63 | .highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */ 64 | .highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */ 65 | .highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */ 66 | -------------------------------------------------------------------------------- /assets/css/syntax-tango.css: -------------------------------------------------------------------------------- 1 | pre.highlight { border: 1px solid #ccc } 2 | .highlight .hll { background-color: #ffffcc } 3 | .highlight .c { color: #8f5902; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ 5 | .highlight .g { color: #000000 } /* Generic */ 6 | .highlight .k { color: #204a87; font-weight: bold } /* Keyword */ 7 | .highlight .l { color: #000000 } /* Literal */ 8 | .highlight .n { color: #000000 } /* Name */ 9 | .highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ 10 | .highlight .x { color: #000000 } /* Other */ 11 | .highlight .p { color: #000000; font-weight: bold } /* Punctuation */ 12 | .highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ 14 | .highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ 16 | .highlight .gd { color: #a40000 } /* Generic.Deleted */ 17 | .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ 18 | .highlight .gr { color: #ef2929 } /* Generic.Error */ 19 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 21 | .highlight .go { color: #000000; font-style: italic } /* Generic.Output */ 22 | .highlight .gp { color: #8f5902 } /* Generic.Prompt */ 23 | .highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ 24 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 25 | .highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ 26 | .highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ 32 | .highlight .ld { color: #000000 } /* Literal.Date */ 33 | .highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ 34 | .highlight .s { color: #4e9a06 } /* Literal.String */ 35 | .highlight .na { color: #c4a000 } /* Name.Attribute */ 36 | .highlight .nb { color: #204a87 } /* Name.Builtin */ 37 | .highlight .nc { color: #000000 } /* Name.Class */ 38 | .highlight .no { color: #000000 } /* Name.Constant */ 39 | .highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ 40 | .highlight .ni { color: #ce5c00 } /* Name.Entity */ 41 | .highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ 42 | .highlight .nf { color: #000000 } /* Name.Function */ 43 | .highlight .nl { color: #f57900 } /* Name.Label */ 44 | .highlight .nn { color: #000000 } /* Name.Namespace */ 45 | .highlight .nx { color: #000000 } /* Name.Other */ 46 | .highlight .py { color: #000000 } /* Name.Property */ 47 | .highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ 48 | .highlight .nv { color: #000000 } /* Name.Variable */ 49 | .highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ 50 | .highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ 51 | .highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ 52 | .highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ 53 | .highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ 54 | .highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ 55 | .highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ 56 | .highlight .sc { color: #4e9a06 } /* Literal.String.Char */ 57 | .highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ 58 | .highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ 59 | .highlight .se { color: #4e9a06 } /* Literal.String.Escape */ 60 | .highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ 61 | .highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ 62 | .highlight .sx { color: #4e9a06 } /* Literal.String.Other */ 63 | .highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ 64 | .highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ 65 | .highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ 66 | .highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ 67 | .highlight .vc { color: #000000 } /* Name.Variable.Class */ 68 | .highlight .vg { color: #000000 } /* Name.Variable.Global */ 69 | .highlight .vi { color: #000000 } /* Name.Variable.Instance */ 70 | .highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ 71 | -------------------------------------------------------------------------------- /assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/favicon.ico -------------------------------------------------------------------------------- /assets/images/av1-logo-297x142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/av1-logo-297x142.png -------------------------------------------------------------------------------- /assets/images/av1-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 34 | 36 | 40 | 44 | 45 | 55 | 57 | 61 | 65 | 66 | 76 | 86 | 87 | 109 | 111 | 112 | 114 | image/svg+xml 115 | 117 | 118 | 119 | 120 | 121 | 126 | AV 138 | 1 150 | 151 | 152 | -------------------------------------------------------------------------------- /assets/images/buffer_fullness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/buffer_fullness.png -------------------------------------------------------------------------------- /assets/images/buffer_pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/buffer_pool.png -------------------------------------------------------------------------------- /assets/images/formula-abs.corrected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-abs.corrected.png -------------------------------------------------------------------------------- /assets/images/formula-abs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /assets/images/formula-abs.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-abs.svg.png -------------------------------------------------------------------------------- /assets/images/formula-clip1.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-clip1.svg.png -------------------------------------------------------------------------------- /assets/images/formula-clip3.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-clip3.svg.png -------------------------------------------------------------------------------- /assets/images/formula-max.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-max.svg.png -------------------------------------------------------------------------------- /assets/images/formula-min.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /assets/images/formula-min.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-min.svg.png -------------------------------------------------------------------------------- /assets/images/formula-round2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /assets/images/formula-round2.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-round2.svg.png -------------------------------------------------------------------------------- /assets/images/formula-round2signed.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/formula-round2signed.svg.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /assets/images/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /assets/images/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/apple-icon.png -------------------------------------------------------------------------------- /assets/images/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/favicon-16x16.png -------------------------------------------------------------------------------- /assets/images/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/favicon-32x32.png -------------------------------------------------------------------------------- /assets/images/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/favicon-96x96.png -------------------------------------------------------------------------------- /assets/images/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /assets/images/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /assets/images/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /assets/images/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /assets/images/image00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image00.png -------------------------------------------------------------------------------- /assets/images/image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image01.png -------------------------------------------------------------------------------- /assets/images/image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image02.png -------------------------------------------------------------------------------- /assets/images/image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image03.png -------------------------------------------------------------------------------- /assets/images/image04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image04.png -------------------------------------------------------------------------------- /assets/images/image05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image05.png -------------------------------------------------------------------------------- /assets/images/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image11.png -------------------------------------------------------------------------------- /assets/images/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image13.png -------------------------------------------------------------------------------- /assets/images/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image14.png -------------------------------------------------------------------------------- /assets/images/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/image15.png -------------------------------------------------------------------------------- /assets/images/large_scale_camera_frames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/large_scale_camera_frames.png -------------------------------------------------------------------------------- /assets/images/large_scale_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/large_scale_tile.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L3T2_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L3T2_KEY.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L3T2_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L3T2_KEY_SHIFT.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L3T3_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L3T3_KEY.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L3T3_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L3T3_KEY_SHIFT.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L4T5_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L4T5_KEY.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L4T5_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L4T5_KEY_SHIFT.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L4T7_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L4T7_KEY.png -------------------------------------------------------------------------------- /assets/images/mhoro/SCALABILITY_L4T7_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/mhoro/SCALABILITY_L4T7_KEY_SHIFT.png -------------------------------------------------------------------------------- /assets/images/scalability_L1T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_L1T2.png -------------------------------------------------------------------------------- /assets/images/scalability_L1T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_L1T3.png -------------------------------------------------------------------------------- /assets/images/scalability_L2T1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_L2T1.png -------------------------------------------------------------------------------- /assets/images/scalability_L2T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_L2T2.png -------------------------------------------------------------------------------- /assets/images/scalability_L2T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_L2T3.png -------------------------------------------------------------------------------- /assets/images/scalability_S2T1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_S2T1.png -------------------------------------------------------------------------------- /assets/images/scalability_S2T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_S2T2.png -------------------------------------------------------------------------------- /assets/images/scalability_S2T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/assets/images/scalability_S2T3.png -------------------------------------------------------------------------------- /assets/js/anchor.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AnchorJS - v4.1.1 - 2018-07-01 3 | * https://github.com/bryanbraun/anchorjs 4 | * Copyright (c) 2018 Bryan Braun; Licensed MIT 5 | */ 6 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function d(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function f(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],d(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,r,a,c,h,l,u=[];if(d(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=f(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}}); -------------------------------------------------------------------------------- /assets/js/toc.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $("#markdown-toc > li").each(function() { 3 | var content = $(this).children(":first").html(); 4 | if (content.indexOf("Annex") == 0) { 5 | var annexID = content.substring(6, 7) 6 | var items = $(this).find("li").add(this); 7 | 8 | items.attr("data-annexid", annexID); 9 | items.addClass("annex"); 10 | } 11 | if (content.indexOf("Bibliography") == 0) { 12 | $(this).find("li").add(this).addClass("bibliography"); 13 | } 14 | }); 15 | }); -------------------------------------------------------------------------------- /bibliography.md: -------------------------------------------------------------------------------- 1 | 2 | ## Bibliography 3 | {:.no_count} 4 | 5 | 6 | 1. Recommendation ITU-R BT.601-7 (2011), Studio encoding parameters of digital 7 | television for standard 4:3 and wide screen 16:9 aspect ratios. 8 | 9 | 2. Recommendation ITU-R BT.709-6 (2015), Parameter values for the HDTV 10 | standards for production and international programme exchange. 11 | 12 | 3. SMPTE ST 170 (2004), Television – Composite Analog Video Signal – NTSC for 13 | Studio Applications. 14 | 15 | 4. SMPTE ST 240 (1999), For Television – 1125-Line High-Definition Production 16 | Systems – Signal Parameters. 17 | 18 | 5. Recommendation ITU-R BT.2020-2 (2015), Parameter values for ultra-high 19 | definition television systems for production and international programme 20 | exchange. 21 | 22 | 6. IEC 61966-2-1 (1999), Multimedia systems and equipment – Colour measurement 23 | and management – Part 2-1: Colour management – Default RGB colour space – 24 | sRGB. 25 | 26 | 7. ISO/IEC 23091-4/ITU-T H.273, Coding-independent code points for video 27 | signal type identification. 28 | 29 | 8. Zhang, Cha, and Jin Li. "Compression of lumigraph with multiple reference frame (MRF) prediction and just-in-time rendering." Data Compression Conference, 2000. Proceedings. DCC 2000. IEEE, 2000. 30 | 31 | 9. Birklbauer, Clemens, Simon Opelt, and Oliver Bimber. "Rendering gigaray light fields." Computer Graphics Forum. Vol. 32. No. 2pt4. Blackwell Publishing Ltd, 2013. 32 | 33 | -------------------------------------------------------------------------------- /browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /docs/assets/css/av1-spec.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Inconsolata");pre.syntax{background-color:#fff;background-image:linear-gradient(90deg, transparent 40em, #abced4 40em, #abced4 40.1em, transparent 40.1em),linear-gradient(#ddd .1em, transparent .1em);background-size:100% 1.3em;border-left:2px solid #ddd;border-right:2px solid #ddd;border-bottom:2px solid #ddd;white-space:pre;font-family:"Inconsolata",monospace;font-size:1em;padding:0 1em;line-height:1.3;width:50em}pre.syntax:before{content:"Type\a";font-weight:bold;padding-left:39.5em}pre.syntax code{font-family:"Inconsolata",monospace}table .table-conventions th{display:none}table .table-conventions td:first-child{white-space:nowrap}table .table-xyhead th,table .table-xyhead td:first-child{background-color:#9bbb59}table .table-xyhead th{color:#000;font-weight:normal}b.syntax-element{padding-right:1em}figure figcaption{text-align:center;font-style:italic;margin:1em auto}table.syntax{width:100%;font-size:1em;margin-bottom:1em}table.syntax td,table.syntax th{font-family:"Inconsolata",monospace;border:1px solid #ccc;padding-left:.5em;padding-right:.5em;line-height:1.3}table.syntax td code{color:#333;background-color:#fff;font-size:1em;padding:0}table.syntax td:first-child{width:80%;white-space:pre}table.syntax td:nth-child(2){width:20%;text-align:center}table.syntax th{display:none}@media only screen and (min-width: 992px){figure{max-width:80%}}@media only screen and (min-width: 1200px){figure{max-width:60%}}body{counter-reset:h2}h2{counter-reset:h3}h3{counter-reset:h4}h4{counter-reset:h5}h5{counter-reset:h6}h2:before{counter-increment:h2;content:counter(h2) ". "}h3:before{counter-increment:h3;content:counter(h2) "." counter(h3) ". "}h4:before{counter-increment:h4;content:counter(h2) "." counter(h3) "." counter(h4) ". "}h5:before{counter-increment:h5;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". "}h6:before{counter-increment:h6;content:counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "}h2.no_count:before,h3.no_count:before,h4.no_count:before,h5.no_count:before,h6.no_count:before{content:"";counter-increment:none}div.annex{counter-reset:h2}div.annex h2:before{counter-increment:h2;content:""}div.annex h3:before{counter-increment:h3;content:counter(h2,upper-alpha) "." counter(h3) ". "}div.annex h4:before{counter-increment:h4;content:counter(h2,upper-alpha) "." counter(h3) "." counter(h4) ". "}div.annex h5:before{counter-increment:h5;content:counter(h2,upper-alpha) "." counter(h3) "." counter(h4) "." counter(h5) ". "}div.annex h6:before{counter-increment:h6;content:counter(h2,upper-alpha) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "}.bs-callout{padding:20px;margin:20px 0;border:1px solid #eee;border-left-width:5px;border-radius:3px}.bs-callout h4{margin-top:0;margin-bottom:5px}.bs-callout p:last-child{margin-bottom:0}.bs-callout code{border-radius:3px}.bs-callout+.bs-callout{margin-top:-5px}.bs-callout-default{border-left-color:#777}.bs-callout-default h4{color:#777}.bs-callout-primary{border-left-color:#428bca}.bs-callout-primary h4{color:#428bca}.bs-callout-success{border-left-color:#5cb85c}.bs-callout-success h4{color:#5cb85c}.bs-callout-danger{border-left-color:#d9534f}.bs-callout-danger h4{color:#d9534f}.bs-callout-warning{border-left-color:#f0ad4e}.bs-callout-warning h4{color:#f0ad4e}.bs-callout-info{border-left-color:#5bc0de}.bs-callout-info h4{color:#5bc0de}#markdown-toc{list-style:none;counter-reset:toc-item-main}#markdown-toc ul{list-style:none;counter-reset:toc-item-main toc-item-annex}#markdown-toc ul li.annex:before{content:attr(data-annexid) "." counters(toc-item-annex,".") ". ";counter-increment:toc-item-annex}#markdown-toc li:before{content:counters(toc-item-main,".") ". ";counter-increment:toc-item-main}#markdown-toc li.annex:before{content:attr(data-annexid) ". "}#markdown-toc li.bibliography:before{content:none}code,kbd,pre,samp{font-family:"Inconsolata",monospace;font-size:1em;line-height:1.3}div.highlighter-rouge pre.highlight{padding:1rem} 2 | -------------------------------------------------------------------------------- /docs/assets/css/syntax-monokai.css: -------------------------------------------------------------------------------- 1 | pre.highlight { background-color: #272822; } 2 | .highlight .hll { background-color: #272822; } 3 | .highlight .c { color: #75715e } /* Comment */ 4 | .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ 5 | .highlight .k { color: #66d9ef } /* Keyword */ 6 | .highlight .l { color: #ae81ff } /* Literal */ 7 | .highlight .n { color: #f8f8f2 } /* Name */ 8 | .highlight .o { color: #f92672 } /* Operator */ 9 | .highlight .p { color: #f8f8f2 } /* Punctuation */ 10 | .highlight .cm { color: #75715e } /* Comment.Multiline */ 11 | .highlight .cp { color: #75715e } /* Comment.Preproc */ 12 | .highlight .c1 { color: #75715e } /* Comment.Single */ 13 | .highlight .cs { color: #75715e } /* Comment.Special */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 16 | .highlight .kc { color: #66d9ef } /* Keyword.Constant */ 17 | .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ 18 | .highlight .kn { color: #f92672 } /* Keyword.Namespace */ 19 | .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ 20 | .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ 21 | .highlight .kt { color: #66d9ef } /* Keyword.Type */ 22 | .highlight .ld { color: #e6db74 } /* Literal.Date */ 23 | .highlight .m { color: #ae81ff } /* Literal.Number */ 24 | .highlight .s { color: #e6db74 } /* Literal.String */ 25 | .highlight .na { color: #a6e22e } /* Name.Attribute */ 26 | .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ 27 | .highlight .nc { color: #a6e22e } /* Name.Class */ 28 | .highlight .no { color: #66d9ef } /* Name.Constant */ 29 | .highlight .nd { color: #a6e22e } /* Name.Decorator */ 30 | .highlight .ni { color: #f8f8f2 } /* Name.Entity */ 31 | .highlight .ne { color: #a6e22e } /* Name.Exception */ 32 | .highlight .nf { color: #a6e22e } /* Name.Function */ 33 | .highlight .nl { color: #f8f8f2 } /* Name.Label */ 34 | .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ 35 | .highlight .nx { color: #a6e22e } /* Name.Other */ 36 | .highlight .py { color: #f8f8f2 } /* Name.Property */ 37 | .highlight .nt { color: #f92672 } /* Name.Tag */ 38 | .highlight .nv { color: #f8f8f2 } /* Name.Variable */ 39 | .highlight .ow { color: #f92672 } /* Operator.Word */ 40 | .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ 41 | .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ 42 | .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ 43 | .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ 44 | .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ 45 | .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ 46 | .highlight .sc { color: #e6db74 } /* Literal.String.Char */ 47 | .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ 48 | .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ 49 | .highlight .se { color: #ae81ff } /* Literal.String.Escape */ 50 | .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ 51 | .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ 52 | .highlight .sx { color: #e6db74 } /* Literal.String.Other */ 53 | .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ 54 | .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ 55 | .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ 56 | .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ 57 | .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ 58 | .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ 59 | .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ 60 | .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ 61 | 62 | .highlight .gh { } /* Generic Heading & Diff Header */ 63 | .highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */ 64 | .highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */ 65 | .highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */ 66 | -------------------------------------------------------------------------------- /docs/assets/css/syntax-tango.css: -------------------------------------------------------------------------------- 1 | pre.highlight { border: 1px solid #ccc } 2 | .highlight .hll { background-color: #ffffcc } 3 | .highlight .c { color: #8f5902; font-style: italic } /* Comment */ 4 | .highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ 5 | .highlight .g { color: #000000 } /* Generic */ 6 | .highlight .k { color: #204a87; font-weight: bold } /* Keyword */ 7 | .highlight .l { color: #000000 } /* Literal */ 8 | .highlight .n { color: #000000 } /* Name */ 9 | .highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ 10 | .highlight .x { color: #000000 } /* Other */ 11 | .highlight .p { color: #000000; font-weight: bold } /* Punctuation */ 12 | .highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ 14 | .highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ 16 | .highlight .gd { color: #a40000 } /* Generic.Deleted */ 17 | .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ 18 | .highlight .gr { color: #ef2929 } /* Generic.Error */ 19 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 20 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 21 | .highlight .go { color: #000000; font-style: italic } /* Generic.Output */ 22 | .highlight .gp { color: #8f5902 } /* Generic.Prompt */ 23 | .highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ 24 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 25 | .highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ 26 | .highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ 27 | .highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ 28 | .highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ 29 | .highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ 30 | .highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ 31 | .highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ 32 | .highlight .ld { color: #000000 } /* Literal.Date */ 33 | .highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ 34 | .highlight .s { color: #4e9a06 } /* Literal.String */ 35 | .highlight .na { color: #c4a000 } /* Name.Attribute */ 36 | .highlight .nb { color: #204a87 } /* Name.Builtin */ 37 | .highlight .nc { color: #000000 } /* Name.Class */ 38 | .highlight .no { color: #000000 } /* Name.Constant */ 39 | .highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ 40 | .highlight .ni { color: #ce5c00 } /* Name.Entity */ 41 | .highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ 42 | .highlight .nf { color: #000000 } /* Name.Function */ 43 | .highlight .nl { color: #f57900 } /* Name.Label */ 44 | .highlight .nn { color: #000000 } /* Name.Namespace */ 45 | .highlight .nx { color: #000000 } /* Name.Other */ 46 | .highlight .py { color: #000000 } /* Name.Property */ 47 | .highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ 48 | .highlight .nv { color: #000000 } /* Name.Variable */ 49 | .highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ 50 | .highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ 51 | .highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ 52 | .highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ 53 | .highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ 54 | .highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ 55 | .highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ 56 | .highlight .sc { color: #4e9a06 } /* Literal.String.Char */ 57 | .highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ 58 | .highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ 59 | .highlight .se { color: #4e9a06 } /* Literal.String.Escape */ 60 | .highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ 61 | .highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ 62 | .highlight .sx { color: #4e9a06 } /* Literal.String.Other */ 63 | .highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ 64 | .highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ 65 | .highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ 66 | .highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ 67 | .highlight .vc { color: #000000 } /* Name.Variable.Class */ 68 | .highlight .vg { color: #000000 } /* Name.Variable.Global */ 69 | .highlight .vi { color: #000000 } /* Name.Variable.Instance */ 70 | .highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ 71 | -------------------------------------------------------------------------------- /docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/favicon.ico -------------------------------------------------------------------------------- /docs/assets/images/av1-logo-297x142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/av1-logo-297x142.png -------------------------------------------------------------------------------- /docs/assets/images/av1-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 34 | 36 | 40 | 44 | 45 | 55 | 57 | 61 | 65 | 66 | 76 | 86 | 87 | 109 | 111 | 112 | 114 | image/svg+xml 115 | 117 | 118 | 119 | 120 | 121 | 126 | AV 138 | 1 150 | 151 | 152 | -------------------------------------------------------------------------------- /docs/assets/images/buffer_fullness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/buffer_fullness.png -------------------------------------------------------------------------------- /docs/assets/images/buffer_pool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/buffer_pool.png -------------------------------------------------------------------------------- /docs/assets/images/formula-abs.corrected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-abs.corrected.png -------------------------------------------------------------------------------- /docs/assets/images/formula-abs.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/assets/images/formula-abs.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-abs.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-clip1.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-clip1.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-clip3.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-clip3.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-max.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-max.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-min.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /docs/assets/images/formula-min.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-min.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-round2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /docs/assets/images/formula-round2.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-round2.svg.png -------------------------------------------------------------------------------- /docs/assets/images/formula-round2signed.svg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/formula-round2signed.svg.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /docs/assets/images/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /docs/assets/images/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/apple-icon.png -------------------------------------------------------------------------------- /docs/assets/images/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/favicon-16x16.png -------------------------------------------------------------------------------- /docs/assets/images/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/favicon-32x32.png -------------------------------------------------------------------------------- /docs/assets/images/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/favicon-96x96.png -------------------------------------------------------------------------------- /docs/assets/images/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/images/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /docs/assets/images/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /docs/assets/images/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /docs/assets/images/image00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image00.png -------------------------------------------------------------------------------- /docs/assets/images/image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image01.png -------------------------------------------------------------------------------- /docs/assets/images/image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image02.png -------------------------------------------------------------------------------- /docs/assets/images/image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image03.png -------------------------------------------------------------------------------- /docs/assets/images/image04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image04.png -------------------------------------------------------------------------------- /docs/assets/images/image05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image05.png -------------------------------------------------------------------------------- /docs/assets/images/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image11.png -------------------------------------------------------------------------------- /docs/assets/images/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image13.png -------------------------------------------------------------------------------- /docs/assets/images/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image14.png -------------------------------------------------------------------------------- /docs/assets/images/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/image15.png -------------------------------------------------------------------------------- /docs/assets/images/large_scale_camera_frames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/large_scale_camera_frames.png -------------------------------------------------------------------------------- /docs/assets/images/large_scale_tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/large_scale_tile.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L3T2_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L3T2_KEY.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L3T2_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L3T2_KEY_SHIFT.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L3T3_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L3T3_KEY.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L3T3_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L3T3_KEY_SHIFT.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L4T5_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L4T5_KEY.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L4T5_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L4T5_KEY_SHIFT.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L4T7_KEY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L4T7_KEY.png -------------------------------------------------------------------------------- /docs/assets/images/mhoro/SCALABILITY_L4T7_KEY_SHIFT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/mhoro/SCALABILITY_L4T7_KEY_SHIFT.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_L1T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_L1T2.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_L1T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_L1T3.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_L2T1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_L2T1.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_L2T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_L2T2.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_L2T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_L2T3.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_S2T1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_S2T1.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_S2T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_S2T2.png -------------------------------------------------------------------------------- /docs/assets/images/scalability_S2T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/assets/images/scalability_S2T3.png -------------------------------------------------------------------------------- /docs/assets/js/anchor.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * AnchorJS - v4.1.1 - 2018-07-01 3 | * https://github.com/bryanbraun/anchorjs 4 | * Copyright (c) 2018 Bryan Braun; Licensed MIT 5 | */ 6 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function d(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function f(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],d(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,i,n,o,s,r,a,c,h,l,u=[];if(d(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(e=f(A)).length)return this;for(function(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link { opacity: 0; text-decoration: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus { opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after { content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face { font-family: "anchorjs-icons"; src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype"); }',e.sheet.cssRules.length)}}(),t=document.querySelectorAll("[id]"),i=[].map.call(t,function(A){return A.id}),o=0;o\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),t=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||t||!1}}}); -------------------------------------------------------------------------------- /docs/assets/js/toc.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $("#markdown-toc > li").each(function() { 3 | var content = $(this).children(":first").html(); 4 | if (content.indexOf("Annex") == 0) { 5 | var annexID = content.substring(6, 7) 6 | var items = $(this).find("li").add(this); 7 | 8 | items.attr("data-annexid", annexID); 9 | items.addClass("annex"); 10 | } 11 | if (content.indexOf("Bibliography") == 0) { 12 | $(this).find("li").add(this).addClass("bibliography"); 13 | } 14 | }); 15 | }); -------------------------------------------------------------------------------- /docs/av1-spec.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/docs/av1-spec.pdf -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AOMediaCodec/av1-spec/5e04f3f75e73a5898d7616c47c52f032144b8f80/favicon.ico -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: web 3 | title: AV1 Bitstream & Decoding Process Specification 4 | version_date: Released 2017-xx-xx 5 | --- 6 | 7 | {% include_relative section.links.md %} 8 | {% include_relative 00.title.md %} 9 | {% include_relative 00.version.md %} 10 | {% include_relative AUTHORS.md %} 11 | {% include_relative 00.html-legend.md %} 12 | {% include_relative 00.abstract.md %} 13 | {% include_relative 00.toc.md %} 14 | {% include_relative 01.scope.md %} 15 | {% include_relative 02.terms.md %} 16 | {% include_relative 03.symbols.md %} 17 | {% include_relative _tmp/04.conventions.md %} 18 | {% include_relative _tmp/06.bitstream.syntax.md %} 19 | {% include_relative 07.bitstream.semantics.md %} 20 | {% include_relative 08.decoding.process.md %} 21 | {% include_relative 09.parsing.process.md %} 22 | {% include_relative 10.additional.tables.md %} 23 | 24 | {::options parse_block_html="true" /} 25 |
26 | {::options parse_block_html="false" /} 27 | {% include_relative annex.a.levels.md %} 28 | {% include_relative _tmp/annex.b.superframes.md %} 29 | {% include_relative annex.c.experiments.md %} 30 | {% include_relative annex.d.large.scale.tile.md %} 31 | {% include_relative annex.e.decoder.model.md %} 32 |
33 | 34 | {% include_relative bibliography.md %} 35 | 36 | {% comment %} 37 | {% include_relative _tmp/98.testing.md %} 38 | {% include_relative 99.function-reference-links.md %} 39 | {% endcomment %} 40 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "av1-spec", 3 | "title": "AV1 Bitstream & Decoding Process Specification", 4 | "description": "", 5 | "version": "0.2.0", 6 | "homepage": "http://aomedia.org/", 7 | "contributors": { 8 | "name": "Lou Quillio " 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "https://aomedia.googlesource.com/av1-spec" 13 | }, 14 | "bugs": { 15 | "url": "https://bugs.chromium.org/p/aomedia/issues/list" 16 | }, 17 | "license": "BSD-2-Clause", 18 | "dependencies": { 19 | "anchor-js": "^4.1.1", 20 | "lodash": "^4.17.19" 21 | }, 22 | "devDependencies": { 23 | "grunt": "^1.6.1", 24 | "grunt-cli": "^1.2.0", 25 | "grunt-contrib-clean": "^1.1.0", 26 | "grunt-contrib-connect": "^1.0.2", 27 | "grunt-contrib-copy": "^1.0.0", 28 | "grunt-exec": "^3.0.0", 29 | "grunt-jekyll": "^0.4.7", 30 | "grunt-replace": "^2.0.2", 31 | "minimatch": "^3.0.2" 32 | }, 33 | "keywords": [] 34 | } 35 | -------------------------------------------------------------------------------- /pdf.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: pdf 3 | title: AV1 Bitstream & Decoding Process Specification 4 | version_date: Released 2017-xx-xx 5 | --- 6 | 7 | {% include_relative section.links.md %} 8 |
9 |
10 | {% include_relative 00.title.md %} 11 | {% include_relative 00.version.md %} 12 | {% include_relative AUTHORS.md %} 13 | {% include_relative 00.cover-legend.md %} 14 | {% include_relative LICENSE %} 15 |
16 | {% include_relative 00.abstract.md %} 17 |
18 | {% include_relative 00.toc.md %} 19 |
20 |
21 |
22 |
23 | {% include_relative 01.scope.md %} 24 | {% include_relative 02.terms.md %} 25 |
26 | {% include_relative 03.symbols.md %} 27 |
28 | {% include_relative _tmp/04.conventions.md %} 29 |
30 | {% include_relative _tmp/06.bitstream.syntax.md %} 31 |
32 | {% include_relative 07.bitstream.semantics.md %} 33 |
34 | {% include_relative 08.decoding.process.md %} 35 |
36 | {% include_relative 09.parsing.process.md %} 37 |
38 | {% include_relative 10.additional.tables.md %} 39 | 40 | {::options parse_block_html="true" /} 41 |
42 | {::options parse_block_html="false" /} 43 |
44 | {% include_relative annex.a.levels.md %} 45 |
46 | {% include_relative _tmp/annex.b.superframes.md %} 47 |
48 | {% include_relative annex.c.experiments.md %} 49 |
50 | {% include_relative annex.d.large.scale.tile.md %} 51 |
52 | {% include_relative annex.e.decoder.model.md %} 53 |
54 | 55 |
56 | {% include_relative bibliography.md %} 57 |
58 | 59 | {% comment %} 60 | {% include_relative _tmp/98.testing.md %} 61 | {% endcomment %} 62 | --------------------------------------------------------------------------------