回転する地球儀のアニメーションGIF | |
| ファイル名拡張子 | .gif |
|---|---|
| インターネットメディアの種類 | image/gif |
| タイプコード | GIFf |
| 統一型識別子 (UTI) | com.compuserve.gif |
| 魔法の数字 | GIF87a/GIF89a |
| 開発者 | コンピュサーブ |
| 初回リリース | 1987年6月15日[1] |
| 最新リリース | 89a 1989年[2] |
| フォーマットの種類 | ロスレスビット マップ 画像形式 |
| Webサイト | www.w3.org/Graphics/GIF/spec-gif89a.txt |
グラフィックス・インターチェンジ・フォーマット(GIF、/ ɡɪf / GHIFまたは/ dʒɪf / JIF、)は、アメリカのコンピュータ科学者スティーブ・ウィルハイトが率いるオンラインサービスプロバイダーCompuServeのチームによって開発され、 1987年6月15日にリリースされたビットマップ画像フォーマットである。 [1]
この形式はピクセルあたり最大 8 ビットを含むことができるため、1 つの画像で24 ビットRGB 色空間から選択した最大 256 色の独自のパレットを参照できます。また、1 つのファイルで複数の画像を表すことができ、アニメーションに使用できます。また、フレームごとに最大 256 色の個別のパレットを使用できます。これらのパレット制限により、GIF はカラー写真や色のグラデーションのあるその他の画像の再現にはあまり適していませんが、単色の領域があるグラフィックやロゴなどの単純な画像には適しています。
GIF 画像は、Lempel–Ziv–Welch (LZW)ロスレス データ圧縮技術を使用して圧縮され、視覚的な品質を低下させることなくファイル サイズが削減されます。
この形式は、アプリケーションやオペレーティングシステム間での幅広い実装と移植性のため、かつてはワールドワイドウェブで広く使用されていましたが、スペースと品質上の理由から使用が減少し、 MP4ファイル形式などのビデオ形式に置き換えられることが多くなりました。これらの置き換えは、元のファイル形式とは関係がないにもかかわらず、「GIF」と呼ばれることがあります。[3]
歴史
CompuServe は、 1987 年 6 月 15 日に、ファイル ダウンロード領域にカラー画像形式を提供するために GIF を導入しました。これは、白黒のみだった以前のランレングス エンコード形式に代わるものです。GIF が普及したのは、 Lempel–Ziv–Welch データ圧縮を使用したためです。これは、 PCXやMacPaintで使用されていたランレングス エンコードよりも効率的であったため、かなり大きな画像でも、低速モデムでもかなり速くダウンロードできました。
GIFのオリジナルバージョンは87aと呼ばれていました。[1]このバージョンでは、すでにストリーム内で複数の画像がサポートされていました。
1989年にCompuServeは89aと呼ばれる拡張バージョンをリリースしました。[2]このバージョンでは以下の機能が追加されました。
- アニメーション遅延のサポート
- 透明な背景色
- アプリケーション固有のメタデータの保存
- テキスト ラベルをテキストとして許可します (グラフィック データに埋め込むことはできません)。ただし、表示フォントを制御できないため、この機能はほとんど使用されません。
2 つのバージョンは、ファイルの最初の 6バイト(「マジック ナンバー」または署名) を調べることで区別できます。ASCII として解釈すると、それぞれ「GIF87a」または「GIF89a」と表示されます。
CompuServe は、多くのコンピュータにダウンロード可能な変換ユーティリティを提供することで、GIF の採用を奨励しました。たとえば、1987 年 12 月までに、Apple IIGSユーザーはAtari STまたはCommodore 64で作成された画像を表示できるようになりました。[4] GIF は、Web サイトで一般的に使用された最初の 2 つの画像形式の 1 つであり、もう 1 つは白黒のXBMでした。[5]
1995 年 9 月、 Netscape Navigator 2.0にアニメーション GIF をループする機能が追加されました。
GIF はCompuServeによって開発されましたが、 1985 年にUnisysが特許を取得したLempel-Ziv-Welch (LZW)ロスレス データ圧縮アルゴリズムを使用していました。1994 年にUnisysとCompuServeの間でライセンス契約をめぐる論争が起こり、 Portable Network Graphics (PNG) 標準の開発が促進されました。2004 年に、GIF に使用されていた独自の圧縮に関するすべての特許が失効しました。
複数の画像を制御データとともに 1 つのファイルに保存する機能は、単純なアニメーションを作成するために Web 上で広く使用されています。
オプションのインターレース機能は、画像の走査線を順序通りに保存しないため、部分的にダウンロードされた画像でもある程度認識できるようになり、ユーザーが必要なものでない場合はダウンロードを中止できるため 、GIFの人気にも貢献しました[6] 。
2015年5月にFacebookはGIFのサポートを追加しました。[7] [8] 2018年1月にはInstagramもストーリーモードにGIFステッカーを追加しました。[9]
用語
名詞としてのGIFという単語は、多くの辞書の新しい版に載っている。2012年、オックスフォード大学出版局のアメリカ支局は、 GIFを「GIFファイルを作成する」という意味の動詞としても認めた。例えば、「GIFは夏季オリンピックのシーンを共有するのに最適な媒体だった」などである。同出版局の辞書編集者は、GIFが「研究やジャーナリズムを含む本格的な用途を持つツール」に進化したとして、これを今年の言葉に選んだ。 [10] [11]
発音

GIFの最初の文字の発音は1990年代から議論されてきました。英語で最も一般的な発音は/ dʒ ɪ f /です。 (ginのよう軟音のg)と/ ɡɪf / (giftのように硬いg)と発音され、文字Gで音素。フォーマットの作成者は、頭字語GIF を/ dʒ ɪ f /(軟音のg )と。ウィルハイトは、発音がアメリカのピーナッツバターブランドJif を、CompuServe の従業員はよく「こだわりのある開発者は GIF を選ぶ」と冗談を言っていました。これは Jif のテレビコマーシャルのパロディーです。[12]/ ɡ ɪ f /硬音のg )と発音され、[13]g の発音の方が一般的であることが示されています[14][15]
Dictionary.com [16]は両方の発音を引用しており、 / dʒ ɪ f / を主な発音としている一方、 Cambridge Dictionary of American English [17] は硬いg の発音のみを提供している。Merriam -Webster's Collegiate Dictionary [18]とOxford Dictionariesは両方の発音を引用しているが、硬いg を最初に置いている: / ɡ ɪ f、dʒ ɪ f / 。 [19] [20] [21] [22] New Oxford American Dictionary は第2版では/ dʒ ɪ f /のみを掲載していたが[23] 、第3版では/ dʒ ɪ f、ɡ ɪ f / に更新した。 [24]
発音をめぐる意見の相違は、インターネット上で白熱した議論を巻き起こした。 2013年のウェビー賞授賞式で生涯功労賞を受賞した際、ウィルハイトは公に硬いgの発音を否定した。[13] [25] [26]彼のスピーチは、 Twitterで17,000件以上の投稿と数十のニュース記事を生んだ。[27]ホワイトハウス[13]とテレビ番組「ジェパディ!」も2013年にこの議論に加わった。[26] 2020年2月、Jifブランドの所有者であるJMスマッカーカンパニーは、アニメーション画像データベースおよび検索エンジンのGiphyと提携して、限定版の「Jif vs. GIF」(ハッシュタグ#JIFvsGIF)ピーナッツバター瓶を発売した。この瓶には、ソフトgの発音はピーナッツバターのみを指し、GIFは硬いgの発音でのみ発音するとユーモラスに宣言するラベルが付いていた。[28]
使用法
GIFは、ロゴなど、色数が限られているシャープなエッジの線画に適しています。これは、輪郭がはっきりした均一な色の平坦な領域を好む形式のロスレス圧縮の利点を活用しています。[29]また、ゲーム用の低色スプライトデータの保存にも使用できます。[30] GIFは、小さなアニメーションや低解像度のビデオクリップに使用したり、言葉の代わりに感情や気持ちを伝えるオンラインメッセージの反応として使用したりできます。Tumblr 、[31] Facebook、Twitterなどのソーシャルメディアプラットフォームで人気があります。[32]
ファイル形式
概念的には、GIF ファイルは、0 個以上の「画像」が配置された固定サイズのグラフィック領域 (「論理画面」) を表します。多くの GIF ファイルには、論理画面全体を占める 1 つの画像があります。論理画面を個別のサブ画像に分割するファイルもあります。画像は、アニメーション GIF ファイル内のアニメーション フレームとして機能する場合もありますが、この場合も、論理画面全体を占める必要はありません。
GIF ファイルは、バージョンを示す固定長のヘッダー ("GIF87a" または "GIF89a") で始まり、その後に論理画面のピクセル寸法やその他の特性を示す固定長の論理画面記述子が続きます。画面記述子は、グローバル カラー テーブル (GCT) の存在とサイズも指定できます。GCT は、存在する場合は次に続きます。
その後、ファイルは次のタイプのセグメントに分割され、各セグメントは 1 バイトのセンチネルで始まります。
- 画像(ASCII カンマ 0x2C で始まる
',') - 拡張ブロック(ASCII感嘆符0x21で始まる
'!') - トレーラー (値 0x3B の 1 バイト、ASCII セミコロン
';')。ファイルの最後のバイトになります。
画像は固定長の画像記述子で始まり、ローカル カラー テーブル (存在する場合は次に続く) の存在とサイズを指定できます。その後に画像データが続きます。エンコードされていないシンボルのビット幅を示す 1 バイト (2 色画像の場合でも少なくとも 2 ビット幅である必要があります) に、LZW エンコードされたデータを含む一連のサブブロックが続きます。
拡張ブロック (87a 仕様で既に定義されているメカニズムを介して 87a 定義を「拡張」するブロック) は、センチネル、拡張の種類を指定する追加バイト、および拡張データを含む一連のサブブロックで構成されます。画像を変更する拡張ブロック (オプションのアニメーション遅延時間とオプションの透明な背景色を指定するグラフィック コントロール拡張など) は、参照する画像を含むセグメントの直前に配置する必要があります。
各サブブロックは、サブブロック内の後続のデータ バイト数 (1 ~ 255) を示すバイトで始まります。一連のサブブロックは、空のサブブロック (0 バイト) で終了します。
この構造により、すべての部分が理解されない場合でもファイルを解析できます。87a とマークされた GIF には拡張ブロックが含まれている場合があります。これは、デコーダーが理解できない拡張機能でカバーされている機能なしでファイルを読み取って表示できるようにするためです。
ファイル形式の詳細についてはGIF仕様に記載されています。[2]
パレット

GIF はパレットベースです。ファイル内の画像 (フレーム) で使用される色のRGB値は、最大 256 エントリを保持できるパレット テーブルで定義され、画像のデータはパレット テーブルのインデックス (0 ~ 255) によって色を参照します。パレットの色定義は、数百万の色合い (2 24の色合い、各原色に 8 ビット) の色空間から描画できますが、フレームで使用できる色の最大数は 256 です。GIF が開発された当時は、256 色を超える色を同時に表示できるハードウェアは珍しかったため、この制限は妥当なものでした。単純なグラフィックス、線画、漫画、グレースケールの写真では、通常、256 色未満しか必要ありません。
各フレームでは、1 つのインデックスを「透明な背景色」として指定できます。このインデックスが割り当てられたピクセルは、背景の同じ位置にあるピクセルの色を取得します。この色は、アニメーションの前のフレームによって決定されている場合があります。
ディザリングと総称される多くの技術が開発され、2 色以上のピクセルを使用して中間色を近似することにより、小さなカラー パレットでより広い範囲の色を近似します。これらの技術は、より深い色解像度を近似するために空間解像度を犠牲にします。GIF 仕様の一部ではありませんが、ディザリングは、後で GIF 画像としてエンコードされる画像で使用できます。これは、空間解像度の損失によって画面上の画像がぼやけて見えることが多く、また、ディザリング パターンによって画像データの圧縮性が妨げられ、GIF の主な目的に反するため、GIF 画像には理想的なソリューションではないことがよくあります。
グラフィカル Web ブラウザーの初期の頃[いつ? ]には、8 ビット バッファー (256 色のみ使用可能) を備えたグラフィック カードが一般的で、Web セーフ パレットを使用して GIF 画像を作成するのが一般的でした。[誰によると? ]これにより、予測可能な表示が保証されましたが、色の選択肢が大幅に制限されました。24 ビット カラーが標準になると、代わりに個々の画像に最適な色でパレットを設定できるようになりました。
小さな画像には小さなカラー テーブルで十分であり、カラー テーブルを小さくしておくと、ファイルのダウンロードが速くなります。87a 仕様と 89a 仕様はどちらも、 1 から 8 までの任意のnに対して 2 n色のカラー テーブルを許可しています。ほとんどのグラフィック アプリケーションは、これらのテーブル サイズの GIF 画像を読み取り、表示しますが、画像を作成するときにすべてのサイズをサポートしないアプリケーションもあります。2、16、および 256 色のテーブルが広くサポートされています。
本当の色
GIF はトゥルーカラー画像にはほとんど使用されませんが、使用することは可能です。[33] [34] GIF 画像には複数の画像ブロックを含めることができ、各ブロックには独自の 256 色パレットを含めることができ、ブロックを並べて完全な画像を作成することができます。また、GIF89a 仕様では、各画像ブロックに独自の 255 色の可視色と 1 色の透明色のパレットを含めることができる「透明」色の概念が導入されました。画像ブロックを重ねて、各レイヤーの可視部分を上のレイヤーの透明部分を通して表示することで、完全な画像を作成できます。

フルカラー画像を GIF としてレンダリングするには、元の画像を 255 色または 256 色以下の小さな領域に分割する必要があります。これらの各領域は、独自のローカル パレットを持つ個別の画像ブロックとして保存され、画像ブロックを一緒に表示すると (タイル表示または部分的に透明な画像ブロックを重ねる)、完全なフルカラー画像が表示されます。たとえば、画像を 16 x 16 ピクセルのタイルに分割すると (合計 256 ピクセル)、タイルの色がローカル パレットの制限である 256 色を超えることはありません。ただし、より大きなタイルを使用して同様の色を結合すると、色情報が失われることがあります。[33]
各画像ブロックは独自のローカルカラーテーブルを持つことができるため、多くの画像ブロックを含むGIFファイルは非常に大きくなり、フルカラーGIFの有用性が制限されます。[34]さらに、すべてのGIFレンダリングプログラムがタイルまたはレイヤー化された画像を正しく処理するわけではありません。多くのレンダリングプログラムはタイルまたはレイヤーをアニメーションフレームとして解釈し、アニメーションとして順番に表示します[33]ほとんどのWebブラウザーは0.1秒以上の遅延時間でフレームを自動的に表示します。[35] [36] [より良いソースが必要]
GIFファイルの例
次の表の 16 進数は、フォーマット仕様で規定されているように、 リトルエンディアンのバイト順になっています。
画像コーディング
左上から水平にスキャンされた画像ピクセル データは、LZW エンコードによってコードに変換され、ファイルに保存するためにバイトにマッピングされます。ピクセル コードは通常、バイトの 8 ビット サイズと一致しないため、コードは「リトル エンディアン」方式でバイトにパックされます。つまり、最初のコードの最下位ビットは最初のバイトの最下位ビットに保存され、コードの上位ビットはバイトの上位ビットに保存され、必要に応じて次のバイトの下位ビットに波及します。後続の各コードは、まだ使用されていない最下位ビットから保存されます。
このバイト ストリームは、一連の「サブブロック」としてファイルに保存されます。各サブブロックの最大長は 255 バイトで、サブブロック内のデータ バイト数を示すバイトが先頭に付きます。一連のサブブロックは、空のサブブロック (データ バイトが 0 のサブブロックを示す単一の 0 バイト) で終了します。
上記のサンプル画像では、9 ビット コードとバイト間の可逆マッピングが以下に示されています。
わずかな圧縮が明らかです。最初に 15 バイトで定義されたピクセル カラーは、制御コードを含む 12 コード バイトで正確に表されます。9 ビット コードを生成するエンコード プロセスを以下に示します。ローカル文字列はパレットからピクセル カラー番号を蓄積しますが、ローカル文字列がコード テーブル内にある限り、出力アクションは行われません。文字列の追加によってテーブルが初期サイズから大きくなる前に到着する最初の 2 つのピクセルには特別な処理が行われます。各出力コードの後に、ローカル文字列は最新のピクセル カラー (出力コードに含めることができなかったもの) に初期化されます。
表 9ビット
文字列 --> コードコード アクション
#0 | 000h 9ビットコードのルートテーブルを初期化
パレット | :
色 | :
#255 | 0FFh
クリア | 100時間
終了 | 101時間
| 100時間クリア
ピクセルローカル |
カラーパレット文字列 |
BLACK #40 28 | 028h 常に出力される最初のピクセル
WHITE #255 FF | テーブル内に見つかった文字列
28 FF | 102h 常に最初の文字列をテーブルに追加する
FF | ローカル文字列を初期化する
WHITE #255 FF FF | テーブルに文字列が見つかりません
| 0FFh - 前の文字列の出力コード
FF FF | 103h - 最新の文字列をテーブルに追加
FF | - ローカル文字列を初期化する
WHITE #255 FF FF | テーブル内に見つかった文字列
BLACK #40 FF FF 28 | テーブルに文字列が見つかりません
| 103h - 前の文字列の出力コード
FF FF 28 | 104h - 最新の文字列をテーブルに追加
28 | - ローカル文字列を初期化する
WHITE #255 28 FF | テーブルに見つかった文字列
WHITE #255 28 FF FF | テーブルに文字列が見つかりません
| 102h - 前の文字列の出力コード
28 FF FF | 105h - 最新の文字列をテーブルに追加
FF | - ローカル文字列を初期化する
WHITE #255 FF FF | テーブル内に見つかった文字列
WHITE #255 FF FF FF | テーブルに文字列が見つかりません
| 103h - 前の文字列の出力コード
FF FF FF | 106h - 最新の文字列をテーブルに追加
FF | - ローカル文字列を初期化する
WHITE #255 FF FF | テーブル内に見つかった文字列
WHITE #255 FF FF FF | テーブル内に見つかった文字列
WHITE #255 FF FF FF FF | テーブルに文字列が見つかりません
| 106h - 前の文字列の出力コード
FF FF FF FF| 107h - 最新の文字列をテーブルに追加
FF | - ローカル文字列を初期化する
WHITE #255 FF FF | テーブル内に見つかった文字列
WHITE #255 FF FF FF | テーブル内に見つかった文字列
WHITE #255 FF FF FF FF | テーブルに見つかった文字列
ピクセルはもう不要
107h - 最後の文字列の出力コード
101h 終了
わかりやすくするために、上記の表は長さが増加する文字列で構成されているように示されています。この方式は機能しますが、表は予測できない量のメモリを消費します。保存される新しい文字列はそれぞれ、以前に保存された文字列に 1 文字追加したもので構成されることに注意することで、実際にはメモリを節約できます。各アドレスには、既存のアドレスと 1 文字の 2 つのワードのみを保存するのが経済的です。
LZW アルゴリズムでは、各ピクセルのテーブルを検索する必要があります。最大 4096 個のアドレスを線形検索すると、コーディングが遅くなります。実際には、コードは数値順に格納できます。これにより、各検索は SAR (一部のADCで使用される逐次近似レジスタ) によって実行され、大きさの比較は 12 回のみで済みます。この効率性を実現するには、コードと実際のメモリ アドレスを変換するための追加のテーブルが必要です。追加のテーブル管理は、ピクセル レートよりはるかに低いレートで発生する新しいコードが格納される場合にのみ必要です。
画像のデコード
デコードは、保存されたバイトを 9 ビット コードにマッピングすることから始まります。これらは、以下に示すようにピクセルの色を復元するためにデコードされます。エンコーダーで使用されるものと同じテーブルは、次の規則に従って文字列を追加することで構築されます。
9ビット
シフト----> ローカルテーブル ピクセルコード コードコード --> 文字列 パレットカラー アクション
100h 000h | #0 9ビットコードのルートテーブルを初期化
: | パレット
: | 色
0FFh | #255
100時間 | クリア
101時間 | 終了
028h | #40 BLACK 最初のピクセルをデコード
0FFh 028h | テーブルに着信コードが見つかりました
| #255 WHITE - テーブルから文字列を出力する
102h | 28 FF - テーブルに追加
103h 0FFh | 受信コードがテーブルに見つかりません
103h | FF FF - テーブルに追加
| - テーブルから文字列を出力する
| #255 ホワイト
| #255 ホワイト
102h 103h | テーブルに着信コードが見つかりました
| - テーブルから文字列を出力する
| #40 ブラック
| #255 ホワイト
104h | FF FF 28 - テーブルに追加
103h 102h | テーブルに着信コードが見つかりました
| - テーブルから文字列を出力する
| #255 ホワイト
| #255 ホワイト
105h | 28 FF FF - テーブルに追加
106h 103h | 受信コードがテーブルに見つかりません
106h | FF FF FF - テーブルに追加
| - テーブルから文字列を出力する
| #255 ホワイト
| #255 ホワイト
| #255 ホワイト
107h 106h | 受信コードがテーブルに見つかりません
107h | FF FF FF FF - テーブルに追加
| - テーブルから文字列を出力する
| #255 ホワイト
| #255 ホワイト
| #255 ホワイト
| #255 ホワイト
101h | 終了
LZW コードの長さ
例の 256 色よりも小さいパレットには、より短いコード長を使用できます。パレットが 64 色のみの場合 (つまり、色インデックスの幅が 6 ビットの場合)、シンボルの範囲は 0 から 63 までで、シンボルの幅は 6 ビット、コードは 7 ビットから始まると見なすことができます。実際、シンボルの幅はパレットのサイズと一致する必要はありません。デコードされた値が常にパレットの色数よりも小さい限り、シンボルの幅は 2 から 8 まで、パレットのサイズは 2 の累乗で 2 から 256 までとすることができます。たとえば、パレットの最初の 4 色 (値 0 から 3) のみを使用する場合、シンボルの幅は 2 ビット、コードは 3 ビットから始まると見なすことができます。
逆に、値 0 と 1 のみが使用される場合でも、シンボル幅を 8 に設定できます。これらのデータには 2 色テーブルのみが必要です。ファイルをそのようにエンコードしても意味はありませんが、2 色画像では通常、同様のことが起こります。値 0 と 1 のみが使用される場合でも、最小シンボル幅は 2 です。
コード テーブルには、2 つの特殊コードclrとend、および処理中に追加された文字列のコードに対応するために、シンボル サイズより 1 ビット長いコードが最初に含まれています。テーブルがいっぱいになると、より多くの文字列のためのスペースを確保するためにコード長が増加し、最大コード 4095 = FFF(hex) になります。デコーダーがテーブルを作成すると、コード長の増加を追跡し、それに応じて受信バイトをアンパックできます。
非圧縮GIF
GIF エンコード プロセスを変更して、LZW 圧縮なしでも GIF 画像として表示可能なファイルを作成できます。この手法は、もともと特許侵害を回避する方法として導入されました。非圧縮 GIF は、個々のピクセルにアクセスして読み取りやペイントができるため、グラフィックス プログラマーにとって便利な中間形式にもなります。非圧縮 GIF ファイルは、画像エディタに渡すだけで通常の GIF ファイルに変換できます。
修正されたエンコード方式では、LZW テーブルの構築は無視され、ルート パレット コードと CLEAR および STOP のコードのみが出力されます。これにより、エンコードはよりシンプルになります (コード値とパレット コードは 1 対 1 で対応) が、圧縮はすべて犠牲になります。画像内の各ピクセルは、そのカラー インデックスを示す出力コードを生成します。圧縮されていない GIF を処理する場合、標準の GIF デコーダーは、辞書テーブルに文字列を書き込むことを妨げられませんが、コード幅が大きくなると、ビットからバイトへの異なるパッキングがトリガーされるため、コード幅が大きくなることはありません。
シンボル幅がnの場合、幅n +1のコードは自然に 2 つのブロックに分類されます。1つは単一のシンボルをコーディングするための2 nコードの下部ブロック、もう 1 つは長さが 1 より大きいシーケンスに対してデコーダーによって使用される2 nコードの上部ブロックです。上部ブロックの最初の 2 つのコードはすでに使用されています。2 nは CLEAR、2 n + 1は STOP です。デコーダーは上部ブロックの最後のコード 2 n +1 − 1 も使用しないようにする必要があります。デコーダーがそのスロットを埋めると、コード幅が増加するためです。したがって、上部ブロックには、コード幅の増加をトリガーしない2 n − 3 個のコードがデコーダーで使用できます。デコーダーはテーブルの維持で常に 1 ステップ遅れているため、エンコーダーから最初のコードを受信してもテーブル エントリは生成されませんが、後続のコードごとに 1 つ生成します。したがって、エンコーダーはコード幅の増加をトリガーせずに2 n − 2 個のコードを生成できます。したがって、エンコーダは、デコーダがコーディング辞書をリセットするように、 2 n − 2コード以下の間隔で追加の CLEAR コードを発行する必要があります。GIF 標準では、このような追加の CLEAR コードをいつでも画像データに挿入できます。複合データ ストリームは、それぞれ 1 ~ 255 バイトのサブブロックに分割されます。
上記の 3×5 のサンプル画像の場合、次の 9 ビット コードは「クリア」(100) を表し、その後にスキャン順に画像ピクセルが続き、「停止」(101) となります。
100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101
上記のコードがバイトにマッピングされた後、非圧縮ファイルは圧縮ファイルと次のように異なります。
圧縮例
単色の大きな画像の単純な例は、GIF ファイルで使用される可変長 LZW 圧縮を示しています。
表示されるコード値はバイトにパックされ、最大 255 バイトのブロックにパックされます。イメージ データのブロックは、後続のバイト数を宣言するバイトで始まります。イメージの最後のデータ ブロックは、ブロック長が 0 のバイトでマークされます。
インターレース

GIF 仕様では、GIF ファイルの論理画面内の各画像がインターレースであること、つまり、データ ブロック内のラスター ラインの順序が連続していないことを指定できます。これにより、画像全体が描画される前に、画像の部分的な表示を認識できるようになります。
インターレース画像は上から下まで 8 ピクセルの高さのストリップに分割され、画像の行は次の順序で表示されます。
- パス 1: 各ストリップの行 0 (一番上の行)。
- パス 2: 各ストリップから 4 行目。
- パス 3: 各ストリップの行 2 と 6。
- パス 4: 各ストリップの行 1、3、5、および 7。
各ライン内のピクセルはインターレースされず、左から右へ連続して表示されます。非インターレース画像と同様に、1 ラインのデータと次のラインのデータの間には中断はありません。画像がインターレースされていることを示すインジケーターは、対応する画像記述子ブロックに設定されたビットです。
アニメーションGIF

GIF はアニメーション メディアとして設計されたわけではありませんが、1 つのファイルに複数の画像を保存できるため、当然、アニメーション シーケンスのフレームを保存するためにこの形式を使用することが考えられました。アニメーションの表示を容易にするために、GIF89a 仕様では Graphic Control Extension (GCE) が追加されました。これにより、ファイル内の画像 (フレーム) を時間遅延でペイントして、ビデオ クリップを形成できます。アニメーション GIF 内の各フレームは、フレームが描画された後に待機する時間遅延を指定する独自の GCE によって導入されます。ファイルの先頭にあるグローバル情報は、既定ですべてのフレームに適用されます。データはストリーム指向であるため、各 GCE の開始のファイル オフセットは、先行するデータの長さによって異なります。各フレーム内では、LZW コード化されたイメージ データが最大 255 バイトのサブブロックに配置されます。各サブブロックのサイズは、その前のバイトによって宣言されます。
デフォルトでは、アニメーションはフレームのシーケンスを一度だけ表示し、最後のフレームが表示されると停止します。アニメーションをループさせるために、Netscape は1990 年代にアプリケーション拡張ブロック (ベンダーがアプリケーション固有の情報を GIF ファイルに追加できるようにするため) を使用して Netscape アプリケーション ブロック (NAB) を実装しました。[37]アニメーション フレームのシーケンスの直前に配置されたこのブロックは、フレームのシーケンスを再生する回数 (1 ~ 65535 回) または連続して繰り返す回数 (0 は永久にループすることを示す) を指定します。これらの繰り返しアニメーションのサポートは、Netscape Navigatorバージョン 2.0 で初めて登場し、その後他のブラウザーにも広がりました。[38]現在、ほとんどのブラウザーが NAB を認識してサポートしていますが、厳密には GIF89a 仕様の一部ではありません。
次の例は、記事のインフォボックスに(サムネイルとして)表示される アニメーション ファイルRotating earth (large).gifの構造を示しています。
各フレームのアニメーション遅延は、GCE で 100 分の 1 秒単位で指定されます。イメージ記述子は、イメージ全体ではなく、再スキャンする小さな四角形を定義できるため、フレームがディスプレイのピクセルの一部のみを書き換える必要がある場合は、ある程度のデータの節約が可能です。アニメーション GIF をサポートしていないブラウザーやその他のディスプレイでは、通常、最初のフレームのみが表示されます。
アニメーション GIF ファイルのサイズと色の品質は、作成に使用したアプリケーションによって大きく異なります。ファイル サイズを最小化するための戦略としては、すべてのフレームに共通のグローバル カラー テーブルを使用する (各フレームの完全なローカル カラー テーブルではなく)、連続するフレームでカバーされるピクセルの数を最小化する (あるフレームから次のフレームに変化するピクセルのみが後のフレームに含まれるようにする) などがあります。より高度な手法では、既存の LZW 辞書 (非可逆圧縮の一種) とよりよく一致するようにカラー シーケンスを変更します。一連の独立したフレーム画像を合成アニメーションに単純にパックすると、ファイル サイズが大きくなる傾向があります。既存の GIF のファイル サイズを最小化するツールが用意されています。
メタデータ
メタデータは、コメント ブロック、プレーン テキスト ブロック、またはアプリケーション固有のアプリケーション拡張ブロックとして GIF ファイルに保存できます。いくつかのグラフィック エディターでは、非公式のアプリケーション拡張ブロックを使用して、画像の生成に使用されたデータを含め、さらに編集するために復元できるようにしています。
これらの方法はすべて技術的にメタデータをサブブロックに分割して、アプリケーションがメタデータ ブロックの内部構造を知らなくてもそのブロック内を移動できるようにする必要があります。
Extensible Metadata Platform (XMP) メタデータ標準では、GIF ファイルに XMP データを含めるための非公式ながら現在では広く普及している「XMP データ」アプリケーション拡張ブロックが導入されました。[39] XMP データはNUL 文字なしのUTF-8 を使用してエンコードされるため、データには 0 バイトはありません。データを正式なサブブロックに分割するのではなく、拡張ブロックは「マジック トレーラー」で終了し、データをサブブロックとして扱うアプリケーションをサブブロック チェーンを終了する最後の 0 バイトにルーティングします。
ユニシスとLZWの特許執行
1977年と1978年に、ジェイコブ・ジヴとアブラハム・レンペルは、現在LZ77とLZ78と総称される新しいクラスのロスレスデータ圧縮アルゴリズムに関する2つの論文を発表しました。1983年にテリー・ウェルチはLZ78の高速版を開発し、レンペル・ジヴ・ウェルチ(LZW)と名付けました。[40] [41]
ウェルチは1983年6月にLZW法の特許を申請した。その結果得られた特許US4558302 [42]は1985年12月に付与され、スペリー社に譲渡された。スペリー社はその後1986年にバロウズ社と合併し、ユニシス社となった。[40]さらにイギリス、フランス、ドイツ、イタリア、日本、カナダでも特許が取得された。
上記の特許に加えて、ウェルチの 1983 年の特許には、それに影響を与えた他のいくつかの特許の引用も含まれています。
- NECの金津潤による1980年の日本特許2件、 [43] [44]
- ジョン・S・ホーニングの米国特許4,021,782 (1974年)、
- クラウス・E・ホルツの米国特許4,366,551(1977年)、および
- 1981年にカール・エックハルト・ハインツが取得したドイツの特許。[45] [46]
1984年6月、ウェルチによる論文がIEEE誌に掲載され、初めてLZW技術が公表された。[47] LZWは人気のデータ圧縮技術となり、特許が認められると、ユニシスは100社を超える企業とライセンス契約を結んだ。[40] [48]
LZW の人気を受けて、CompuServe は1987 年に開発した自社バージョンの GIF の圧縮技術としてこれを選択した。当時、CompuServe はこの特許を知らなかった。[40] Unisys は、GIF のバージョンが LZW 圧縮技術を使用していることを知り、1993 年 1 月に CompuServe とライセンス交渉に入った。その後の合意は 1994 年 12 月 24 日に発表された。[41] Unisys は、LZW 特許を採用しているすべての主要な商用オンライン情報サービス企業が Unisys から妥当な価格でこの技術のライセンスを取得することを期待しているが、オンライン サービスで使用するものも含め、非商用、非営利の GIF ベースのアプリケーションについては、ライセンスや料金の支払いは要求しないと述べた。[48]
この発表の後、CompuServeとUnisysに対する非難が広まり、多くのソフトウェア開発者がGIFの使用をやめると脅した。1995年に代替としてPNG形式(下記参照)が開発された。 [40] [41] [47]しかし、ウェブブラウザやその他のソフトウェアのメーカーからPNG形式に対するサポートを得るのは困難であることが判明し、PNGの人気は徐々に高まったものの、GIFを置き換えることはできなかった。[40]そのため、LZW圧縮のないGIFのバリエーションが開発された。たとえば、Eric S. Raymondのgiflibに基づくlibungifライブラリは、データ形式に準拠しながらも圧縮機能を回避したGIFの作成を可能にし、UnisysのLZW特許の使用を回避している。[49] 2001年のDr. Dobbの記事では、特許を侵害することなくLZW互換のエンコードを実現する方法が説明されている。[50]
1999 年 8 月、ユニシスはライセンス慣行の詳細を変更し、特定の非営利および個人ウェブサイトの所有者が 5,000 ドルまたは 7,500 ドルの 1 回限りのライセンス料を支払うことでライセンスを取得できるオプションを発表しました。[51]このようなライセンスは、ライセンスされたソフトウェアを使用して GIF を生成したウェブサイト所有者やその他の GIF ユーザーには必要ありませんでした。しかし、ユニシスは、ウェブサイトで GIF を使用したために 5,000 ドルを請求されるか訴訟を起こされると思っているユーザーからの何千ものオンライン攻撃や嫌がらせメールにさらされました。[52]何百もの非営利団体、学校、政府にライセンスを無料で提供したにもかかわらず、ユニシスは良い評判を得ることができず、1999 年に「すべての GIF を燃やせ」キャンペーンを開始したLeague for Programming Freedomなどの個人や組織から非難され続けました。 [53] [54]
米国のLZW特許は2003年6月20日に失効した。[55]英国、フランス、ドイツ、イタリアの対応する特許は2004年6月18日に失効し、日本の特許は2004年6月20日に失効し、カナダの特許は2004年7月7日に失効した。[55]その結果、ユニシスはLZW技術の改良に関するさらなる特許と特許出願を保有しているが、[55] LZW自体(そして結果としてGIF)は2004年7月から自由に使用できるようになった。[56]
代替案
PNG
ポータブルネットワークグラフィックス(PNG)は、LZW圧縮技術に関するUnisysの特許の侵害を避けるために、GIFの代替として設計されました。[40] PNGはGIFよりも優れた圧縮とより多くの機能を提供しますが、[57]アニメーションが唯一の大きな例外です。PNGは、トゥルーカラーイメージングとアルファ透明度が必要な場合にGIFよりも適しています。
PNG形式のサポートはゆっくりと進んできましたが、新しいウェブブラウザはPNGをサポートしています。Internet Explorerの古いバージョンはPNGのすべての機能をサポートしていません。バージョン6以前では、Microsoft固有のHTML拡張機能を使用しないとアルファチャンネルの透明度をサポートしていません。 [58] PNG画像の ガンマ補正はバージョン8より前ではサポートされておらず、以前のバージョンではこれらの画像の表示に間違った色合いが生じる可能性があります。[59]
同一の8ビット(またはそれ以下)の画像データの場合、PNGファイルは、PNGエンコードで使用されるより効率的な圧縮技術により、通常、同等のGIFよりも小さくなります。[60] GIFの完全なサポートは、主に複雑なキャンバス構造によって複雑になっていますが、これによりコンパクトなアニメーション機能が可能になります。
アニメーション形式
ビデオは、ウェブ上での一般的な使用によって GIF がもたらす多くの問題を解決します。これには、ファイル サイズが大幅に小さいこと、 8 ビット カラー制限を超える機能、インターフレーム コーディングによるフレーム処理と圧縮の向上が含まれます。ウェブ ブラウザーでの GIF 形式に対するほぼ普遍的なサポートと、 HTML標準でのビデオの公式サポートの欠如により、ウェブ上で短いビデオのようなファイルを表示する目的で GIF が注目されるようになりました。
- MNG (「Multiple-image Network Graphics」) は、もともとアニメーション用の PNG ベースのソリューションとして開発されました。MNG は 2001 年にバージョン 1.0 に到達しましたが、それをサポートするアプリケーションはほとんどありません。
- APNG(「Animated Portable Network Graphics」)は、 2006年にMozillaによって提案されました。APNGは、MNG形式の代替としてPNG形式の拡張です。APNGは、2019年現在、ほとんどのブラウザでサポートされています。[61] APNGは、アニメーションチャンクを理解できないデコーダー(MNGとは異なります)での下位互換性を維持しながら、PNGファイルをアニメーション化する機能を提供します。古いデコーダーは、アニメーションの最初のフレームをレンダリングするだけです。
- PNGグループは2007年4月20日にAPNGを公式拡張機能として正式に拒否した。[62]
- その後、PNGをベースにしたシンプルなアニメーショングラフィックフォーマットが、いくつかの異なるアプローチで提案されました。[63]しかし、APNGはMozillaによってまだ開発中であり、Firefox 3.0でサポートされています。 [64] [65] MNGのサポートは廃止されました。[66] [67] APNGは現在、Chrome(バージョン59.0以降)、Opera、Firefox、Edgeを含むすべての主要なWebブラウザーでサポートされています。
- 一部の Web サイトでは、単純なビデオを表示するために埋め込みのAdobe FlashオブジェクトとMPEGファイルが使用されていましたが、追加のブラウザ プラグインの使用が必要でした。
- ウェブアニメーションの他のオプションとしては、AJAXを使用して個々のフレームを提供したり、JavaScriptまたはSMIL (「同期マルチメディア統合言語」)を使用してSVG (「スケーラブルベクターグラフィックス」)画像をアニメーション化したりすることが挙げられる。[69]
- ほとんどの Web ブラウザーでHTML ビデオ( ) タグが広くサポートされるようになったため、一部の Web サイトではJavaScript
<video>関数によって生成されたビデオ タグのループ バージョンが使用されています。これにより、GIF のような外観になりますが、圧縮されたビデオのサイズと速度の利点が得られます。
- 注目すべき例としては、GfycatとImgurとそのGIFVメタフォーマットが挙げられます。これは実際にはループされたMP4またはWebM圧縮ビデオを再生するビデオタグです。 [70]
- HEIF(「高効率画像ファイル形式」)は、2015年に完成した画像ファイル形式で、HEVCビデオ形式に基づく離散コサイン変換(DCT)非可逆圧縮アルゴリズムを使用し、JPEG画像形式に関連しています。JPEGとは対照的に、HEIFはアニメーションをサポートしています。[71]
- DCT圧縮のないGIF形式と比較すると、HEIFははるかに効率的な圧縮が可能です。HEIFはより多くの情報を保存し、同等のGIFサイズのほんの一部でより高品質のアニメーション画像を生成します。[72]
- VP9は4:2:0クロマサブサンプリングによるアルファ合成のみをサポートしており[73]、これは透明部分と細かい色の詳細を持つラスタライズされたベクターグラフィックスを組み合わせたGIFには適さない可能性があります。
用途
2014年4月、4chanはサイズが3MB以下で長さが2分以下の無音WebMビデオのサポートを追加しました。 [74] [75]また、2014年10月には、ImgurはサイトにアップロードされたGIFファイルをH.264ビデオに変換し、HTMLプレーヤーへのリンクに拡張子付きの実際のファイルの外観を与え始めました.gifv。[76] [77]
2016年1月、TelegramはすべてのGIFをMPEG-4ビデオに再エンコードし始めました。これにより「同じ画質で最大95%のディスク容量を削減」できます。[78]
参照
- AVIF
- シネマグラフ、GIF形式であることが多い部分的にアニメーション化された写真
- クリアGIFはコンテンツへのアクセスをチェックするために使用される技術です
- グラフィックファイル形式の比較
- GIFアート、 GIFに関連するデジタルアートの形式
- GIFBuilder、初期のアニメーションGIF作成プログラム
- GNU plotutils ( LZW ではなくランレングス エンコーディングを使用する疑似 GIF をサポート)
- Microsoft GIF Animator は、シンプルなアニメーション GIF を作成するための歴史的なプログラムです。
- ソフトウェア特許
参考文献
- ^ abc 「Graphics Interchange Format, Version 87a」。W3C。1987年6月15日。2018年12月22日時点のオリジナルよりアーカイブ。2012年10月13日閲覧。
- ^ abc 「Graphics Interchange Format, Version 89a」。W3C。1990年7月31日。2018年12月22日時点のオリジナルよりアーカイブ。2009年3月6日閲覧。
- ^ ティファニー、ケイトリン(2022年10月7日)。「GIFは死の床にある」アトランティック誌。 2023年10月21日閲覧。
- ^ 「オンラインアート」。Compute! の Apple アプリケーション。1987 年 12 月。p. 10。2016年9 月 14 日閲覧。
- ^ Holdener III, Anthony (2008). Ajax: The Definitive Guide: Interactive Applications for the Web . O'Reilly Media. ISBN 978-0596528386。
- ^ Furht, Borko (2008).マルチメディア百科事典. Springer. ISBN 978-0387747248。
- ^ McHugh, Molly (2015年5月29日). 「ついに、FacebookにGIFを投稿できるようになりました」。Wired。2015年5月30日時点のオリジナルよりアーカイブ。 2015年5月29日閲覧。
- ^ Perez, Sarah (29 May 2015). "Facebook Confirms It Will Officially Support GIFs". TechCrunch. Archived from the original on 30 May 2015. Retrieved 29 May 2015.
- ^ "Introducing GIF Stickers". Instagram. 23 January 2018. Archived from the original on 12 December 2019. Retrieved 19 September 2019.
- ^ "Oxford Dictionaries USA Word of the Year 2012". OxfordWords blog. Oxford American Dictionaries. 13 November 2012. Archived from the original on 3 August 2014. Retrieved 1 May 2013.
- ^ Flood, Alison (27 April 2013). "Gif is America's word of the year? Now that's what I call an omnishambles". Books blog. The Guardian. London. Archived from the original on 1 December 2016. Retrieved 1 May 2013.
- ^ Olsen, Steve. "The GIF Pronunciation Page". Archived from the original on 25 February 2009. Retrieved 6 March 2009.
- ^ a b c "Gif's inventor says ignore dictionaries and say 'Jif'". BBC News. 22 May 2013. Archived from the original on 27 June 2018. Retrieved 22 May 2013.
- ^ Buck, Stephanie (21 October 2014). "70 percent of people worldwide pronounce GIF with a hard g". Mashable. Archived from the original on 23 December 2021. Retrieved 24 December 2021.
- ^ van der Meulen, Marten (22 May 2019). "Obama, SCUBA or gift?: Authority and argumentation in online discussion on the pronunciation of GIF". English Today. 36 (1): 45–50. Archived from the original on 24 May 2022. Retrieved 22 May 2022.
- ^ "GIF". The American Heritage Abbreviations Dictionary, Third Edition. Houghton Mifflin Company. 2005. Archived from the original on 3 September 2011. Retrieved 15 April 2007.
- ^ "GIF". The Cambridge Dictionary of American English. Cambridge University Press. Archived from the original on 27 February 2014. Retrieved 19 February 2014.
- ^ "Gif - Definition from the Merriam-Webster Dictionary". Merriam-Webster Dictionary. Merriam-Webster, Incorporated. Archived from the original on 22 October 2013. Retrieved 6 June 2013.
- ^ "GIF". Oxford Dictionaries Online. Oxford University Press. Archived from the original on 12 October 2014. Retrieved 7 October 2014.
- ^ "gif noun - Definition, pictures, pronunciation and usage notes | Oxford Advanced Learner's Dictionary". Oxford Learner's Dictionaries. Archived from the original on 24 November 2020. Retrieved 6 February 2021.
- ^ "GIF | Definition of GIF by Oxford Dictionary". Lexico. Archived from the original on 13 February 2021. Retrieved 6 February 2021.
- ^ Stevenson, Angus, ed. (2010). Oxford Dictionary of English (3rd ed.). Oxford University Press. ISBN 9780199571123. OCLC 729551189. Archived from the original on 23 August 2022. Retrieved 6 February 2021.
- ^ The New Oxford American Dictionary (2nd ed.). Oxford University Press. 2005. p. 711.
- ^ The New Oxford American Dictionary (3rd ed.). 2012. (part of the Macintosh built-in dictionaries).
- ^ O'Leary, Amy (21 May 2013). "An Honor for the Creator of the GIF". The New York Times. Archived from the original on 22 May 2013. Retrieved 22 May 2013.
- ^ a b Rothberg, Daniel (4 December 2013). "'Jeopardy' wades into 'GIF' pronunciation battle". Los Angeles Times. Archived from the original on 6 December 2013. Retrieved 4 December 2013.
- ^ O'Leary, Amy (23 May 2013). "Battle Over 'GIF' Pronunciation Erupts". The New York Times. Archived from the original on 16 December 2013. Retrieved 5 December 2013.
- ^ Valinsky, Jordan (February 25, 2020). "Jif settles the great debate with a GIF peanut butter jar". CNN. Archived from the original on February 25, 2020. Retrieved February 25, 2020.
- ^ Marur, D.R.; Bhaskar, V. (March 2012). "2012 International Conference on Devices, Circuits and Systems (ICDCS)". Devices, Circuits and Systems (ICDCS). International Conference on Devices, Circuits and Systems (ICDCS). Karunya University; Coimbatore, India: IEEE. pp. 297–301. doi:10.1109/ICDCSyst.2012.6188724. ISBN 9781457715457. Archived from the original on 2 July 2017. Retrieved 11 March 2015.
- ^ S. Chin; D. Iverson; O. Campesato; P. Trani (2011). Pro Android Flash (PDF) . ニューヨーク: Apress. p. 350. ISBN 9781430232315. 2015年4月2日時点のオリジナルよりアーカイブ(PDF) 。2015年3月11日閲覧。
- ^ Bakhshi, Saeideh; Shamma, David A.; Kennedy, Lyndon; Song, Yale; de Juan, Paloma; Kaye, Joseph "Jofish" (2016 年 5 月 7 日)。「高速、安価、高品質: アニメーション GIF がユーザーを魅了する理由」。2016年 CHI 会議「コンピューティング システムにおけるヒューマン ファクター」の議事録。pp. 575–586。doi : 10.1145 / 2858036.2858532。ISBN 9781450333627. S2CID 7417853 . 2022年8月17日閲覧。
- ^ Highfield, Tim; Leaver, Tama (2016). 「Instagrammaticsとデジタル手法:自撮りやGIFからミームや絵文字まで、ビジュアルソーシャルメディアの研究」. Communication Research and Practice . 2 (1): 47–62. doi :10.1080/22041451.2016.1155332. hdl : 20.500.11937/36939 . S2CID 148538216. 2022年8月17日閲覧。
- ^ abc Andreas Kleinert (2007). 「GIF 24 ビット (トゥルーカラー) 拡張機能」。2012 年 3 月 16 日時点のオリジナルよりアーカイブ。2012 年3 月 23 日閲覧。
- ^ ab Philip Howard. 「True-Color GIF の例」。2015年2月22日時点のオリジナルよりアーカイブ。 2012年3月23日閲覧。
- ^ 「Nullsleep - Jeremiah Johnson - Animated GIF Minimum Frame Delay Browser Compatibility Study」。2014年10月10日時点のオリジナルよりアーカイブ。2015年5月26日閲覧。
- ^ 「それらは異なります! ブラウザ間で GIF ファイルのアニメーション レートを一致させる方法」。開発者ブログ。2012 年 2 月 14 日。2017 年 2 月 1 日時点のオリジナルよりアーカイブ。2017年6 月 15 日閲覧。
- ^ Royal Frazier. 「All About GIF89a」。1999年4月18日時点のオリジナルよりアーカイブ。2013年1月7日閲覧。
- ^スコット・ウォルター ( 1996)。Webスクリプティングの秘密兵器。Que Publishing。ISBN 0-7897-0947-3。
- ^ 「XMP仕様パート3:ファイルへの保存」(PDF)。Adobe。2016年。pp.11~12。2018年2月25日時点のオリジナルよりアーカイブ(PDF) 。 2018年8月16日閲覧。
- ^ abcdefg Greg Roelofs. 「Portable Network Graphics (PNG) 形式の歴史」。2012年3月7日時点のオリジナルよりアーカイブ。2012年3月23日閲覧。
- ^ abc Stuart Caie. 「悲しい日…GIFの特許が20歳で消滅」。2012年2月10日時点のオリジナルよりアーカイブ。2012年3月23日閲覧。
- ^ US 4558302、Welch、Terry A.、1985-12-10公開、Sperry Corp.に譲渡。
- ^ JP 特許 S5719857A、金津 慈雲、「データ圧縮記憶装置」、1982 年 2 月 2 日公開、日本電気株式会社に譲渡。
- ^ JP 特許 S57101937A、金津 慈雲、「データ記憶装置」、1986-20-24 公開、日本電気株式会社に譲渡。
- ^ DE 特許 3118676、Eckhart、Heinz Karl、「Verfahren zur Kompression redundanter Folgen serieller Datenelemente [シリアル データ要素の冗長シーケンスを圧縮する方法]」、1982 年 12 月 2 日発行
- ^ 米国特許 4,558,302
- ^ ab 「GIF論争: ソフトウェア開発者の視点」 1995年1月27日。2016年8月23日時点のオリジナルよりアーカイブ。2015年5月26日閲覧。
- ^ ab 「Unisys がオンライン サービス提供における特許使用に関するポリシーを明確化」。2007 年 2 月 7 日時点のオリジナルよりアーカイブ。–プログラミング自由連盟によってアーカイブ
- ^ “Libungif”. 2015年4月13日時点のオリジナルよりアーカイブ。2015年5月26日閲覧。
- ^ Cargill, Tom (2001年10月1日). 「辞書を平方根に置き換える」. Dr. Dobb's Journal . 2017年6月28日時点のオリジナルよりアーカイブ。 2017年1月20日閲覧。
- ^ 「LZW ソフトウェアおよび特許情報」。2009 年 6 月 8 日時点のオリジナルよりアーカイブ。2007 年1 月 31 日閲覧。– 1999年9月2日の説明
- ^ Unisys は GIF の使用に関して (ほとんどの) ウェブマスターを訴えていない Archived 10 May 2017 at the Wayback Machine – Slashdot の論争に関する調査
- ^ 「Burn All GIFs Day」。1999年10月13日時点のオリジナルよりアーカイブ。
- ^ Burn All GIFs 2007年2月3日アーカイブ-プログラミング自由連盟のプロジェクト(最新バージョン)
- ^ abc 「GIF およびその他の LZW ベースのテクノロジに関するライセンス情報」。2009 年 6 月 2 日時点のオリジナルよりアーカイブ。2005年4 月 26 日閲覧。
- ^ "Why There Are No GIF Files on GNU Web Pages". Free Software Foundation. Archived from the original on 19 May 2012. Retrieved 19 May 2012.
- ^ "PNG versus GIF Compression". 31 March 2007. Archived from the original on 15 July 2009. Retrieved 8 June 2009.
- ^ "AlphaImageLoader Filter". Microsoft. 4 September 2012. Archived from the original on 3 October 2014. Retrieved 26 May 2015.
- ^ "What's New in Internet Explorer 7". MSDN. Archived from the original on 1 March 2009. Retrieved 6 March 2009.
- ^ "PNG Image File Format". Archived from the original on 14 June 2009. Retrieved 8 June 2009.
- ^ "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Archived from the original on 19 February 2018. Retrieved 10 April 2020.
- ^ "VOTE FAILED: APNG 20070405a". SourceForge mailing list. 20 April 2007. Archived from the original on 13 February 2013. Retrieved 14 July 2013.
- ^ "Discussion for a simple "animated" PNG format". Archived from the original on 26 February 2009. Retrieved 12 July 2011.
- ^ "APNG Specification". Archived from the original on 5 July 2010. Retrieved 26 May 2015.
- ^ "Mozilla Labs » Blog Archive » Better animations in Firefox 3". 13 August 2007. Archived from the original on 7 March 2016. Retrieved 3 February 2016.
- ^ "195280 – Removal of MNG/JNG support". Archived from the original on 25 February 2021. Retrieved 26 May 2015.
- ^ "18574 – (mng) restore support for MNG animation format and JNG image format". Archived from the original on 17 March 2021. Retrieved 26 May 2015.
- ^ "Chromium Blog: Chrome 32 Beta: Animated WebP images and faster Chrome for Android touch input". Blog.chromium.org. 21 November 2013. Archived from the original on 17 July 2018. Retrieved 1 February 2014.
- ^ Calou, Juan. "SVG Animation - A Guide". Toptal. Retrieved 15 March 2024.
- ^ "Introducing GIFV - Imgur Blog". imgur.com. 9 October 2014. Archived from the original on 14 December 2014. Retrieved 14 December 2014.
- ^ Thomson, Gavin; Shah, Athar (2017). "Introducing HEIF and HEVC" (PDF). Apple Inc. Archived (PDF) from the original on 19 January 2020. Retrieved 5 August 2019.
- ^ "HEIF Comparison - High Efficiency Image File Format". Nokia Technologies. Archived from the original on 25 July 2019. Retrieved 5 August 2019.
- ^ "#3271 (Allow using additional pixel formats with libvpx-vp9) – FFmpeg". trac.ffmpeg.org. Archived from the original on 16 June 2020. Retrieved 10 April 2020.
- ^ Dewey, Caitlin. "Meet the technology that could make GIFs obsolete". The Washington Post. Archived from the original on 11 May 2015. Retrieved 4 February 2015.
- ^ "WebM support on 4chan". 4chan Blog. Archived from the original on 6 April 2014. Retrieved 4 February 2015.
- ^ "Introducing GIFV". Imgur. 9 August 2014. Archived from the original on 5 May 2020. Retrieved 21 July 2016.
- ^ Allan, Patrick (9 October 2014). "Imgur Revamps GIFs for Faster Speeds and Higher Quality with GIFV". Lifehacker. Archived from the original on 3 February 2015. Retrieved 4 February 2015.
- ^ "GIF Revolution". Official Telegram Blog. 4 January 2016. Archived from the original on 10 January 2016. Retrieved 4 January 2016.
External links
- The GIFLIB project
- spec-gif89a.txt GIF 89a specification on w3.org
- GIF 89a specification reformatted into HTML
- LZW and GIF explained
- Animated GIFs: a six-minute documentary produced by Off Book (web series)
- GifCities (The GeoCities Animated GIF Search Engine)
