PNG(Portable Network Graphics)
PNG(ポータブル・ネットワーク・グラフィックス)は、主にインターネットで使用される
ビットマップ画像の
ファイルフォーマットです。
1996年に登場し、GIFフォーマットの後継として開発されました。このフォーマットは、
Deflateアルゴリズムを用いた圧縮技術を採用しており、
可逆圧縮を実現しています。そのため、
画像品質が劣化することなくデータを圧縮することが可能です。
特徴と機能
PNGは、最大16ビットのグレースケール、24ビットおよび48ビットの
RGBカラーモデル、さらに8ビットまでの
インデックスカラーモードをサポートしています。透明性についてもサポートしており、クロマキーや
アルファチャンネルによる透過処理が可能です。さらに、
画像に関連する
メタデータやガンマ値を記録する機能も備えています。
ただし、
アニメーション機能はPNGには組み込まれていないため、
アニメーションが必要な場合にはMNG(
Multiple-image Network Graphics)やAPNG(Animated PNG)といった別の形式が開発されています。また、特に立体視用に設計されたステレオPNG(PNS)というフォーマットも存在します。
歴史
PNGは、1994年にGIFに使用されていたLZW(Lempel-Ziv-Welch)アルゴリズムの特許問題が発生したことを受けて開発が始まりました。この特許によりGIFの使用が制限される恐れがあり、より自由に使用できる
画像フォーマットを求める声が高まりました。PNGの名前は「PNG is not GIF」という意味が込められた非公式なもので、その後、特許が無効になったことでPNGは普及が加速しました。
1996年にはPNG Version 1.0がリリースされ、その後、バージョンアップが重ねられています。国際標準化も進み、
2003年にはISO/IEC 15948として承認されました。
画像データの構造
PNGファイルは8バイトのシグネチャから始まります。続いてIHDRチャンクと呼ばれる必須のチャンクがあり、これには
画像の幅や高さ、
色深度、カラーモデルなどの情報が含まれています。その後、各種のデータブロック(チャンク)が続き、これによってPNGフォーマットの拡張性がもたらされています。各チャンクは型式に応じて任意に配置可能で、必須の情報が欠けている場合にはエラーとなります。
圧縮技術とフィルタ
PNGはzlibを用いた
Deflateアルゴリズムでデータを圧縮します。この圧縮方式は可逆的であり、元の
画像データを外部から再現するのが可能です。また、PNGは圧縮効率の改善を図るため、
画像データに対してフィルタ処理を行うことができます。フィルタ処理には、隣接バイトとの相違を利用する手法などがあり、これによりより効率的な圧縮を実現しています。
他のフォーマットとの比較
PNGはGIFと比較されることが多く、その際の主な違いは圧縮効率や色の深度です。PNGはフルカラーをサポートし、透明度も持つため、より豊かな色合いを表現できます。一方、GIFは256色に制限されるため、色数が多い
画像ではPNGが優れた選択肢となります。
JPEGとの比較では、
JPEGが非
可逆圧縮であるのに対して、PNGは
可逆圧縮を提供します。これにより、編集作業を行う際はPNGの方が適しており、劣化を気にせずに保存することができます。さらに、TIFFフォーマットとの比較においても、PNGは一貫してより小さなファイルサイズで
画像を保存できる点が評価されています。
ブラウザと普及
PNGの普及は、初期のブラウザがPNGに正しく対応していなかったために遅れました。特に、GIFの
アニメーションが人気であったため、PNGの
アニメーション機能の欠如が影響しました。しかし、2000年代以降に対応ブラウザが増えるにつれて、PNGの普及が進みました。特に、PNGの透過処理がサポートされるようになると、クリエイティブなウェブデザインに不可欠な存在となりました。
PNGは、ウェブサイトでの
画像表示やデザインにおいて、現在も非常に人気のあるフォーマットです。その高品質な
画像保存能力と機能性により、多くのクリエイターやデザイナーに利用されています。