LoginSignup
37
24

More than 5 years have passed since last update.

AV1 specification を読む 2018-03-26 .. 04-17

Last updated at Posted at 2017-08-07

AOMedia Video 1 (AV1)はインターネット上での動画配信を目的として設計されたオープンかつロイヤリティフリーな動画圧縮コーデックである。このコーデックはGoogleのVP9、そしてMPEGのHEVC/H.265の置き換えを目指している。

2018年3月28日に、AV1仕様がFreezeしました。
Freezeとはいっても、ドキュメントは更新され続けていますし、リファレンス実装もデバグ・最適化が続けられている状態です。
大きな仕様変更や追加はもうないよ、程度に考えているとよさそうです。

AV1仕様書はgithubで公開されています。

自分自身がAV1仕様を理解するために、日本語訳を作っています。
「とりあえず」2018-03-26 版で進めてみます。
(ほぼ毎日更新されているので、気が向いたら更新します)


まずは、章ごとにどんな内容が書いてあるかを簡単に説明します。
章ごとの日本語訳は、別ページで記述します。

1. Scope

本ドキュメントのスコープが定義されています。

2. Terms and Definitions

用語定義です。
我々は雰囲気で規格書を読んではいけません。
一般名詞ではない意味が込められていたりするので、気が向いたときにでも参照してみましょう。

3. Symbols and Abbreviated Terms

略語と定数定義です。
(定数をまとめて定義されても、参照されているところでは忘れてしまいますが・・・)

4. Conventions

算術演算子・論理演算子・関係演算子・ビット操作・代入・数学関数・ビットストリーム記法・関数記法などが定義されます。
まあ、雰囲気でだいたい理解したつもりにはなれるので、気が向いたときに細かく読むとよいでしょう。

5. Syntax Structures

AV1規格に適合するビットストリームの文法構造の定義です。
表形式で定義されていて、読むには慣れが必要です。
(AVC, HEVC の規格書も、ほぼ同じ形式で書かれています)

文法の定義とデコード処理が一体となって記述されています。
(個人的には、分離したほうが理解しやすいのではないのかなと思っています。)

  • 5.1. OBU Syntax
  • 5.2. Reserved OBU Syntax
  • 5.3. Sequence Header OBU Syntax
  • 5.4. Temporal Delimiter OBU Syntax
  • 5.5. Padding OBU Syntax
  • 5.6. Metadata OBU Syntax
  • 5.7. Frame Header OBU Syntax
  • 5.8. Frame OBU Syntax
  • 5.9. Tile Group OBU Syntax

6. Syntax Structures Semantics

5章で定義された文法構造について、それぞれの要素の意味を説明しています。

処理の内容がわからないのに使うパラメータを説明されても、まったく意味が分からないと思います。
実際のデコード処理は7章以降で定義されているので、そちらを先に読むことをお勧めします。

  • 6.1. OBU Semantics
  • 6.2. Reserved OBU Semantics
  • 6.3. Sequence Header OBU Semantics
  • 6.4. Temporal Delimiter OBU Semantics
  • 6.5. Padding OBU Semantics
  • 6.6. Metadata OBU Semantics
  • 6.7. Frame Header OBU Semantics
  • 6.8. Frame OBU Semantics
  • 6.9. Tile Group OBU Semantics

7. Decoding Process

5章・6章で定義された変数を使って、画像をデコードする処理を説明しています。

8. Parsing Process

8章では、AV1ビットストリームから、どのように値を抽出するかについて説明をしています。

ヘッダやパラメータ類は、固定長・可変長の符号が使われています。
(がんばれば、目視でエンコード・デコード可能です)

画像情報(変換係数や動きベクトルの値)は、算術符号化が使われています。
(人間がビット列を解釈することは無理です)

  • 8.1. Parsing Process for f(n)
  • 8.2. Parsing Process for Symbol Decoder
  • 8.3. Parsing process for CDF encoded syntax elements

9. Additional Tables

処理で使う様々なテーブルの定義です。
(わざわざ規格書に乗せなくても良いのでは・・・と思います)

10. Annex A: Profiles and Levels

おそらく・・・

プロファイル:AV1で定義されている符号化ツールの使用を制約すること
レベル:パラメータの値域を制約すること

(まだ工事中らしい)

11. Annex B: Bitstream Format

符号化した情報をどのようにビットストリームとして構成するかについて説明しています。

12. Annex C: Included Experiments

AV1策定時の符号化ツールが列挙されています。
(いずれ消えるのでは・・・)

13. Bibliography

参考文献

37
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
24