Portable Network Graphics
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Portable Network Graphics(ポータブル・ネットワーク・グラフィックス)はコンピュータ上で扱われる画像を格納するためのファイルフォーマットの一つ。PNGの読み方は「ピング [/pɪŋ/]」<ref>Intro to PNG Features</ref>。
目次 |
[編集] 概説
可逆圧縮の画像ファイルフォーマット。既存のGIFの機能を拡張、さらにネットワークでの使用を想定した機能強化が図られている。ブラウザやグラフィックソフトでのサポートも進み、インターネットを中心に利用が広がっている。
最大16ビットのグレイスケール、24ビットと48ビットのRGBカラー、8ビット、または16ビットのアルファチャンネル、さらに最大8ビットのインデックスカラーモードをサポートする。画像に付属するテキストなどのメタデータ、ガンマ値などを個別に記録できる。
アニメーション機能は定義されていない。PNGを拡張してアニメーション機能を持たせたMNGやAPNGが別に開発されている。
[編集] 歴史
PNGフォーマットの開発は1995年の初頭から始められた。これは、米UNISYS社がGIFフォーマットに使われている圧縮アルゴリズムLZWの特許行使を発表した後のことであり、PNGの頭文字には、非公式には「PNG is Not GIF」という意味が込められている[1]。これ以外にも、当時256色以上表示可能なコンピュータが主流になってきていたため、GIFフォーマットの256色という制限解消も目的とされた。1999年8月、UNISYS社は非商用ソフトについても特許使用料を請求することを決めると、PNGはさらに注目を集めることになった。
- 1996年10月1日 - PNG Version 1.0の仕様リリース。後にRFC 2083として承認。同日、W3Cによる勧告。
- 1998年12月31日 - Version 1.1リリース。小規模な変更と、3種類の新しいチャンクを追加。
- 1999年8月11日 - Version 1.2リリース。1種類の追加チャンク。
- 2003年11月10日 - 国際標準化 (ISO/IEC 15948:2003)。このバージョンは1.2とわずかな差異あり。新規追加チャンクはなし。
- 2004年3月3日 - 国際標準化 (ISO/IEC 15948:2004) [2]
[編集] 技術詳細
[編集] ファイルヘッダ
PNGファイルはヘッダに8バイトのシグネチャを持つ。16進数の値は 89 50 4E 47 0D 0A 1A 0A となる(制御文字で表すと HTJ "PNG" CR LF SUB LF)。各値の意味は次の通り。
| 値 | 説明 |
|---|---|
| 89 | 8ビットデータをサポートしない転送システムを検知するためのハイビット値。また、テキストファイルが誤ってPNGと認識されるのを防ぐ。 |
| 50 4E 47 | アスキー文字でPNGを表す。テキストエディタで開いた場合などに、フォーマットをわかりやすくするため。 |
| 0D 0A | DOSスタイルの改行(CR+LF)。DOS→UNIXでの行末データ変換が行われていないかを検知する。 |
| 1A | DOSでTYPEコマンドを使ってファイル表示をさせた場合、SUB(EOF)として表示を停止させるバイト。 |
| 0A | UNIXスタイルの行末(LF)。UNIX→DOSでの行末変換が行われていないかを検知する。 |
[編集] GIFとの比較
GIFの代替物として開発された経緯があるため、GIFと比較されることが多い。主な差異は以下の通り。
- ほとんどの画像でPNGはGIFより圧縮率が高い。
- GIFは1色透過だが、PNGはアルファチャンネルを持ち半透明の表現が可能。
- PNGはフルカラーが可能なため256色のGIFより精細な色表現が可能。
- GIFはアニメーションをサポートしているが、PNGはサポートしていない(アニメーションにはPNGの発展フォーマットであるMNG形式を用いる)。
- GIFと比較すると圧縮・展開に多少時間が掛かる(ただし前述の通り容量はGIFより小さいため、転送時間の短縮を加味すれば劣点とはならない。サーバーが動的に画像を生成するような使用法では注意を要する)。
- インターレースGIFとインターレースPNGを比較すると、インターレースPNGの方が圧縮率が低い。
[編集] ブラウザの対応
前述の特許権問題によりGIF排斥運動が起こったが、GIFは依然として広く使われている。それは主に以下の理由からである。
- 当時のWebブラウザでPNGに正しく対応していないものがあった。
- 広告(バナー)には当時、GIFアニメがよく用いられたが、PNGの仕様そのものにはアニメーション機能が含まれていないため、代替することができない(MNGは多くのブラウザで未対応である)。
- PNGの機能はweb上でフルに使われていない。例えばInternet Explorer 6及びそれ以前のバージョンは複数のアルファチャンネルに対応していない。
- GIFで間にあった。
Internet Explorerはバージョン6までアルファチャンネルを持つPNG画像を正しく描画できない。2006年11月にリリースされたバージョン7で、正確に描画できるようになった。
PNGはGIFと同様な1色透過も扱え、こちらはInternet Explorer 5でも対応している。なお、IE5.5はアルファチャンネル付きPNGを正しく表示できるActiveXプラグイン(AlphaImageLoader)を搭載しているため、この機能を使うようHTMLファイルに記述すれば表示できる。ただしIEの設定によってはアルファチャンネルとして機能せず、また他ブラウザとの互換を考えると、わざわざこの機能を利用する価値はほとんど無い。
UNISYS社の主張するLZW圧縮アルゴリズムに関する特許は、米国時間2003年6月20日をもって無効(期限切れ)になった。PNGはLZW圧縮アルゴリズム特許の有効期間内で全てのGIFファイルを代替するには至らなかった。特許問題が事実上消失したため、「特許に抵触しないGIFを代替可能なフォーマットのひとつ」としての存在意義は消失した。現在、PNGは「GIFを代替可能なフォーマットのひとつ」という見方ができる。
[編集] ファイルサイズ
正しくエンコード処理を行ってメタデータを含まないように作成したPNG画像は、同じように処理して作成したGIF画像より小さくなるはずである。しかしPNGはGIFより機能が多いため、無駄に大きなサイズになってしまわないよう気をつける必要がある。
GIFは256色に制限されているため、多くのソフトはフォーマットの変換を行うとき自動的に256色に減色して保存する。そのためフルカラーの画像をPNGとGIFに保存した場合、GIFの方がサイズが小さくなる(かわりに画質は落ちている)。GIF同様256色のPNGを作ればGIFよりサイズが小さくなるにも関わらず、PNGは256色より多い色数を利用できるため変換時に自動で減色されない場合がある。結果同じ画像をGIFにした場合よりサイズが大きくなってしまい、これによりPNGはGIFよりもサイズが大きくなるのだと誤解してしまう人が多い。
Adobe Photoshopはバージョンによっては無駄に大きいPNGファイルを出力する場合がある。
インターレースPNGはインターレースGIFに比べ、圧縮率が低くファイルサイズが大きくなる場合が多い。また、インターレースPNGは通常のPNGより、ファイルサイズが大きくなりがちであり、注意が必要である。
PNGのファイルサイズを減らすにはPNG最適化ソフトウェアなどでPNGファイルを最適化するとよい。最適化の為のソフトウェアとしては、 OptiPNG、PNGOUT、pngrewrite、Pngcrushなどがある。また、Windows用ながらもBlastPNGのような複数の最適化ソフトウェアを一度に扱えるフロントエンドなどもある。
PNGはJPEGに取って代わるものではない。JPEGは写真の圧縮に適した非可逆圧縮方式であり、写真画像に限ってはJPEGのほうがファイルサイズが小さくなる。一方で、文字や線画などの保存はJPEGだと圧縮ノイズが目立ってしまうのでPNGのほうが適している上、ファイルサイズもかなり小さくなる。また、加工を繰り返す予定のある画像はJPEGでは劣化が進んでしまうのでPNG保存が望ましい。
[編集] 出典
<references />
[編集] 外部リンク
- PNGの公式サイト
- PNG仕様書(英語)
- なぜGIFはだめなのか(GNUプロジェクト)
| 圧縮フォーマット |
| 動画ファイルフォーマット |
| ISO/IEC : MPEG-1 | MPEG-2 | MPEG-4 | MPEG-4/AVC (H.264) ITU-T : H.261 | H.262 | H.263 | H.264 SMPTE : VC-1 その他 : RealVideo | WMV | Indeo | MJPEG | VP3 | Theora | VP6 | VP7 | Dirac | Flash Video | DivX | Xvid |
| 音声ファイルフォーマット |
| ISO/IEC MPEG : MPEG-1 Layer III (MP3) | MPEG-1 Layer II | AAC | HE-AAC ITU-T : G.711 | G.722 | G.722.1 | G.722.2 | G.723 | G.723.1 | G.726 | G.728 | G.729 | G.729a その他 : WavPack | FLAC | TTA | Monkey's Audio | iLBC | RealAudio | WMA | Apple Lossless | SHN | Speex | Musepack | Vorbis | ATRAC | AC-3 | Cwav |
| 画像ファイルフォーマット |
| ISO/IEC/ITU-T : JPEG | JPEG 2000 | JPEG-LS | JBIG | JBIG2 その他 : GIF | PNG | TIFF | PCX | TGA | BMP | HD Photo | ILBM |
| マルチメディアコンテナフォーマット |
| 音声専用 : AU | AIFF | WAV 汎用 : NUT | MXF | Matroska | Ogg | Ogg Media | MP4 | QuickTime | RealMedia | AVI | ASF | 3GP | 3G2 |
カテゴリ: 画像ファイルフォーマット | RFC

