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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |