- 元々は JPEG データ(非可逆圧縮)を格納するタグ
- 転じて、JPEG, PNG, GIF を生のまま保存するタグ
(6) DefineBitsJPEG (公式には DefineBits)
- JPEG データが image_data にそのまま入る
- JPEG データから圧縮用テーブルだけ抜かれたデータが入る事もある
- その場合、圧縮用テーブルは JPEGTables タグを参照する。
+-------------------------------------------------------------+
| tag | length | length | image_id | image_data |
| 6 | 0x3f | | | |
+-------------------------------------------------------------+
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-contents 残り全部->
<------------------ length ---->
(8) JPEGTables
- JPEG データの圧縮用テーブルだけ入る (SWF 中に1つのみ)
- 圧縮用テーブルが入っていない DefineBitsJPEG から参照される。
+---------------------------------------------------+
| tag | length | length | encoding_tables |
| 6 | 0x3f | | |
+---------------------------------------------------+
<-- 2 bytes --> <- 4 bytes ->
<------ length ------>
(21) DefineBitsJPEG2
- JPEG データの圧縮テーブルに関するセグメントが encoding_tables (又は、別の tag である JPEGTables の方)に、それ以外のセグメントが image_data に入る。
- そのまま取り出しても JPEG ファイルにはならず、セグメントを並び替える必要がある。
- 各々、SOI(Start of Image)、EOI(End of Image) マーカーでくくるので、SOI,EOI が2つある妙な JPEG に見える。
- JPEG データのセグメント構造については (Flash/JPEG)参考のこと。
+-----------------------------------------+------------------------------+
| tag | length | length | image_id | encoding_tables | image_data |
| 21 | 0x3f | | | |
+------------------------------------------------------------------------+
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <--- contents 残り全部 --->
<---------------- length ---------------->
(35) DefineBitsJPEG3
+---------------------------------------------------------------
| tag | length | length | image_id | offset_to_alpha | ..
| 35 | 0x3f | | | |
+---------------------------------------------------------------
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-- 4 bytes -->
<--- length (最後まで) ---
---+------------------------------+-------------------+
.. | encoding_tables | image_data | alpha(zlib圧縮) |
---+------------------------------+-------------------+
<-- offse_to_alpha --> <-contents 残り全部->
(90) DefineBitsJPEG4
+---------------------------------------------------------------
| tag | length | length | image_id | offset_to_alpha | ..
| 90 | 0x3f | | | |
+---------------------------------------------------------------
<-- 2 bytes --> <- 4 bytes -> <-2 bytes-> <-- 4 bytes -->
<--- length (最後まで) ---
---+-------------+-----------------+------------+-------------------+
.. |deblock_param| encoding_tables | image_data | alpha(zlib圧縮) |
---+-------------+-----------------+------------+-------------------+
<- 2 bytes -> <-contents 残り全部->
<------------ offset_to_alpha ------------->
参考
関連