メインコンテンツへスキップ

ファイル形式

GIFとは?256色、アニメーション、LZW圧縮

GIFは1987年から使われている形式です。256色という制限がありながら、アニメーションのおかげで今も生き残っています。その仕組み、ファイルが大きくなる理由、別の形式を選ぶべき場面を解説します。

著者: Hemen Dönüştür Editör Ekibi公開日: 9 分で読めます

GIF形式ガイドのカバー画像

GIF(Graphics Interchange Format)は、Webで最も古い画像形式の一つです。写真ではとうの昔にJPGに、図ではPNGに主役の座を譲りましたが、短くループするアニメーションといえば今も真っ先に思い浮かぶ形式です。この記事では、GIFの始まり、圧縮とアニメーションの仕組み、256色の制限が実際に意味すること、代わりに検討できる形式を説明します。

簡単な歴史

GIFを開発したのは、当時の大手オンラインサービスの一つCompuServeです。英国国立公文書館のPRONOMレジストリによれば、最初のバージョンGIF87aは1987年6月15日に公開されました。次のバージョンGIF89aの名前は1989年に由来し、PRONOMに掲載されW3Cがホストしている仕様の文書は1990年7月31日付けです。89aでは、フレームの表示時間、透明、破棄方法を定めるGraphic Control Extensionが加わり、コメント、プレーンテキスト、アプリケーションの各拡張も追加されました。現在のアニメーションGIFは、これらの拡張の上に成り立っています。

GIFの歴史で最も有名なのは特許問題です。GIFは、Unisysが特許を持つLZWというアルゴリズムで圧縮されます。米国議会図書館の形式解説によれば、1994年にUnisysがLZWのライセンス料を求め始めたことで、GIFは悪い意味で有名になりました。これが、特許フリーの代替としてPNGが開発されるきっかけになります。同じ情報源によれば、Unisysの米国特許は2003年6月に、欧州と日本の特許は2004年6月に失効しており、今日GIFを使うのにライセンスは必要ありません。

GIFの仕組み

パレットと256色の制限

GIFは各ピクセルの色を直接記録するのではなく、カラーテーブル(パレット)への番号を記録します。仕様によれば、カラーテーブルが持てるのは最大256色で、各色は24ビットのRGBです。ファイル全体に適用されるグローバルなテーブルのほか、フレームごとにローカルなテーブルを持つこともできます。色数の少ないロゴやイラストはこの制限に楽に収まりますが、何千もの色調を持つ写真を256色に減らすと、色の段差(バンディング)やディザのパターンが現れます。

LZW圧縮

ピクセルの番号はLZWで可逆に圧縮されます。LZWは可変長の符号を使い、仕様では符号を最大12ビットまで伸ばせます。LZWは繰り返し現れるピクセルの並びを辞書に追加していく方式なので、大きな単色の部分には強く、ノイズの多い写真には弱いのです。

透明

GIF89aでは、Graphic Control Extensionでパレットの1色を「透明」に指定できます。これはオン・オフ(2値)の透明で、ピクセルは完全に見えるか完全に透明かのどちらかです。そのためGIFでは半透明の影ややわらかい輪郭がギザギザに見え、色付きの背景に置くと輪郭のまわりに明るい「縁取り」が出るのがよくある問題になっています。

アニメーション

アニメーションGIFは、1つのファイルの中に並んだフレームの連続です。各フレームのGraphic Control Extensionが、画面に表示する時間(100分の1秒単位)と、次のフレームの前にその領域をどう消すかを決めます。ループの情報はアプリケーション拡張に保存されます。任意のインターレースを使うと、読み込み中に画像が少しずつ現れます。

フレームの破棄方法

仕様は、表示し終えたフレームの領域をどう扱うかについて4つの値を定めています。指定なし、フレームをそのまま残す、領域を背景色に戻す、領域を前の状態に戻す、の4つです。よくできたアニメーションでは、変化する部分だけが新しいフレームとして書かれ、残りは前のフレームから引き継がれます。これがファイルを小さく保つ仕組みです。そのため、GIFを編集するツールは生のフレームを1枚ずつ扱うのではなく、これらの規則で合成した完全な画像を扱う必要があります。

GIFはどれくらい使われているのか

W3Techsの2026年10月のデータでは、GIFは監視対象のWebサイトの13.2%で使われています。HTTP ArchiveのWeb Almanac 2024によれば、モバイルページの画像の16.8%がGIFで、そのうち32%がアニメーションだとしています。また、すべての画像リクエストの約6%が1x1ピクセルの画像で、その多くはトラッキング用のビーコンやスペーサーGIFだと考えられるため、GIFの高い割合はアニメーションだけによるものではありません。

効率の面では、GIFは大きく見劣りします。同じレポートでは、GIFの中央値は1ピクセルあたり6.7ビットで、PNGは3.8、JPEGは2.0、WebPは1.3です。アニメーションGIFでは中央値が32.6ビットまで上がり、アニメーションでないGIFは3.5ビットにとどまります。

GIFの代わりになる形式

MDNの画像形式ガイドは、GIFを基本的な画像やアニメーションにはよい選択肢としつつ、可逆やインデックスカラーの静止画にはPNGを、アニメーションのシーケンスにはWebP、AVIF、APNGを勧めています。長いアニメーションや実写の映像から作ったアニメーションなら、動画のほうがはるかに効率的です。web.devの例では、3.7MBのGIFが、MP4では551KB、WebMでは341KBになっています。

用途おすすめ
静止画のロゴ、アイコン、単色主体の図PNGまたはSVG
色数の少ない短いアニメーション(読み込み中のスピナーなど)GIF、APNG、アニメーションWebP
動画や画面録画から作ったアニメーション音声なしでループするMP4またはWebMの動画
どこでも再生される必要があるアニメーション(メール、メッセージ)GIF。今も最も互換性の広い形式

メールソフトや一部のメッセージアプリは、動画を再生したりアニメーションWebPを表示したりしません。この普遍的な互換性こそが、GIFが30年以上生き残ってきた本当の理由です。

よくあるトラブル

GIFが大きすぎる

フレーム数、ピクセルサイズ、動きの量は、どれもファイルサイズを直接大きくします。寸法を小さくする、フレームをトリミングする、短い部分だけを切り出す、というのが最も効果的な対策です。長いクリップなら、動画に切り替えるほうがよい選択です。

色が段になったり点々になったりする

256色の制限による当然の結果です。空や肌の色のようななめらかなグラデーションが最も影響を受けます。写真のような内容には、GIFではなくJPG、WebP、動画を使いましょう。

輪郭のまわりに白い縁取りが出る

透明なGIFは半透明にできないため、明るい背景で作った画像を暗い背景に置くと、輪郭の中間色が見えてしまいます。輪郭のやわらかい透明な画像には、PNGかWebPを使ってください。

変換したらアニメーションが止まった

PNGとJPGはアニメーションを持てないため、アニメーションGIFをどちらかに変換すると、残るのは1フレームだけです。

GIFを扱うときのコツ

  • 静止画を取り出すには、GIFからPNGへの変換を使いましょう。GIFの最初のフレームが、透明を保ったまま可逆のPNGとして保存されます。
  • アニメーションGIFの寸法を小さくするには、画像リサイズツールを使います。アニメーションGIFは、リサイズしてもすべてのフレームと表示時間が保たれます(最大600フレーム)。
  • アニメーションをトリミングするには、画像トリミングツールがすべてのフレームに同じトリミングを適用し、フレームのタイミングも保ちます。
  • ファイルサイズを減らすには、画像圧縮ツールを使います。アニメーションGIFはすべてのフレームを持ったままGIFとして残り、静止画のGIFは小さくするために標準でWebPに変換されます。
  • 別の画像をGIFにするには、画像変換ツールで変換先にGIFを選びます。出力は最大256色の1フレームで、半透明の部分はオン・オフの透明に減らされます。
  • これらはすべてブラウザー内で行われるため、ファイルが端末の外に出ることはありません。

よくある質問

GIFは非可逆ですか?

LZW圧縮は可逆です。ただし、フルカラーの画像をGIFにするには256色に減らす必要があり、劣化が起きるのはその減色の段階です。

GIFとアニメーションGIFに違いはありますか?

形式は同じです。フレームが1つのGIFは静止画で、複数あればアニメーションになります。フレームの表示時間やループの情報は、ファイル内の拡張に保存されます。

GIFが今も使われているのはなぜですか?

設定なしで、ほぼどこでも再生されるからです。ブラウザー、メールソフト、チャットアプリ、古いソフトでも動きます。より効率的な代替の形式は、まだすべての環境でこの互換性を実現できていません。

GIFをMP4に変換する意味はありますか?

自分のWebサイトで表示するなら、たいていはあります。web.devの例では、動画版のサイズはGIFのおよそ7分の1から10分の1です。autoplay、loop、muted、playsinlineの属性を付けて再生する動画は、ページ上でGIFとまったく同じように振る舞います。

GIFは何色まで使えますか?

カラーテーブル1つにつき最大256色です。技術的には、フレームごとにローカルなテーブルを持てるため、複数フレームのGIF全体ではもっと多くの色を表示できますが、1つのフレームの中では256色が上限です。

出典

関連する変換ツール

すべての記事