2019年3月25日月曜日

PNGのチャンク 第5回 APNG拡張チャンク


こんにちは、きまぐれソフトです。

前回はPLTEチャンクを紹介しました。PNGの仕様で定められている必須チャンクは前回までの4つのチャンク(IDAT、PLTE、IDAT、IEND)です。その他に10個のチャンクが定められていますが、今回からは仕様から外れてAPNGで拡張されたチャンクを紹介します。

APNG拡張はPNG仕様に含まない事が決定されていて、あくまでもMozilla.orgが独自拡張した物との扱いになっています。PNG仕様はISO(ISO/IEC 15948:2003)として公開されていますが、APNGはMozilla.orgが公開(Animated PNG graphics)として公開しています。

APNGでは3つのチャンク(acTL、fcTL、fdAT)が定義され、アニメーションに対応します。acTLチャンクでアニメ再生全般に関わる情報、fcTLチャンクで各コマに関わる情報、fdATで各コマの画像を扱います。
また、IDATチャンクはアニメーション非対応環境で表示されるデフォルト画像としていますが、アニメーションの1コマ目として使用する事も出来ます。

チャンクの出現順は2種類有りますが、基本として最初にacTL、表示する画像情報の直前にfcTL、そして表示画像としてのfdATの順で並びます。

チャンク順1:デフォルト画像を1コマ目に使う場合
IHDR - fcTL - IDAT - fcTL - fdAT -...- fcTL - fdAT - IEND
チャンク順2:デフォルト画像を1コマ目に使わない場合
IHDR - IDAT - fcTL - fdAT -...- fcTL - fdAT - IEND
 単純にIDATチャンクの前にfcTLチャンクが有るかどうかの違いだけですが、fcTLチャンクがIDATチャンクの前に有ればデフォルト画像と1コマ目が兼用できてデータ量が小さくでき、IDATチャンクの前にfcTLチャンクが無ければ1コマ目よりももっとアニメの内容を表す画像をデフォルト画像とする事ができます。

次回はacTLチャンクとfdATチャンクを紹介します。


0 件のコメント:

コメントを投稿