金曜日, 9月 04, 2015

BMP,JPG,GIF,PNG 画像フォーマットの違いまとめ

BMP,JPG,GIF,PNG 画像フォーマットの違いを歴史的背景から解説 


パソコン上で画像を扱うには、もちろん映像をデータ化しなくてはいけません。
どのように映像データを扱うか、それは各種フォーマットによって異なってくるため、それぞれに特徴があります。

基本の無圧縮「BMP」、圧縮率の指定が可能な「JPG」、透過が可能なWebページ向け「PNG」、アイコン等に最適な「GIF」などなど様々なフォーマット(規格)があります。
これら画像フォーマットは一般でもよく使われるため、策定の歴史を見てみるとより深く違いを理解できると思います。

「BMP , JPG , GIF , PNG」の4つのフォーマットの違いと特徴を、歴史的背景と一緒に解説していきます。


 

ビットマップ形式とベクター形式

本記事の内容とは少しずれますが、画像データの基本になりますので最初に書きます。
コンピューターで形式を扱う方法にはいくつかありますが、大きく分けると「ビットマップ形式」と「ベクター形式」のふたつに分けられます。

ビットマップ形式

形式を格子状に細かい点(ピクセル:画素)に分割し、それぞれの点に色や輝度情報を与えて表現する方法です。

ビットマップ形式

上の画像の拡大部分を見てください。
全体として見ると非常になめらかな画像ですが、これを拡大してみると正方形の小さな点の集合体であることが分かります。
この点ひとつひとつに色や濃度、輝度などの情報を与えています。それら点(ピクセル)を集めてひとつの画像として表示しているのが「ビットマップ形式:bitmap graphics」です。

1ピクセルに対して1~4バイトほどの情報が格納されています。
ラスター形式とも呼ばれることがありますが、定義まで話すと長くなるので割愛。
厳密には違う意味ですので、詳しく知りたい場合はお調べください。

 

ベクター形式

対して「ベクター形式:Vector graphics」と呼ばれる形式は、画像を点の集合で表現するのではなく、複雑な計算式によって色や曲線を表現しています。いわゆる「図形」として画像を扱っています。

たとえば、真円の真っ黒な画像があるとします。ビットマップではこの画像を細かく分割して表現しますが、ベクター形式では「半径○㎝の真円があり、中の色は黒である」といった感じで画像を図形としてすべて計算式によって表現します。

表現方法の違い

 

メリットとデメリット

ビットマップ形式とベクター形式には、ぞれぞれメリット・デメリットがあります。
ビットマップはその性質上、画像を拡大してしまうと1ピクセルの大きさも大きくなるため、どうしても画像がギザギザになり 荒くなってしまいます。つまり、ジャギが発生してしまうのです。これに対しベクター形式は、画像を計算式で表現しているため、画像を拡大縮小すると計算式 の値を変えながらその都度、描写をし直すことができます。
先ほどの黒い真円で例えると、ビットマップ形式で拡大してしまうとジャギが発生してしまいますが、ベクター形式ならば円の半径の値を変えればまた正確に再描写できるのでジャギが発生しません。

このように、拡大縮小などの変形に強いのがベクター形式のメリットです。
ただし、ベクター形式は計算式によって画像を表現しているため、複雑な画像の描写には完全に不向きです。

なぜなら、風景などの複雑な画像をすべて計算式によって図形として扱うには膨大な計算が必要になるからです。これでは負荷がかかりすぎて一般のコンピューターではまず扱えません。

いわゆるカメラで「写真」として手軽に残すには、ビットマップ形式の方が圧倒的に有利なのです。

なので現在は、写真のような形式にはビットマップ形式で編集・保存し、ロゴなどの単純な図形の作成にはベクター形式で保存するといった感じで使い分けられています。
今回紹介する「BMP/GIF/JPEG/PNG」はすべて「ビットマップ形式」の画像フォーマットとなります。

ベクター形式は編集ソフト独自の形式によって保存されることがほとんどだからです。
今回はそのような特殊なものではなく、広く利用されている画像フォーマットの解説になります。
 

BMP -Microsoft Windows Bitmap Image-

一般的に「BMP」と呼ばれる画像フォーマットがあります。正式名称は「Microsoft Windows Bitmap Image」です。
画像ファイルの拡張子は「.bmp」です。(まれに「.dib」としても見かけます。)

 

歴史

MS-DOS時代から扱うことができるWindows標準の画像ファイルフォーマットです。
MS-DOSというのはマイクロソフトが開発した16bitのOSです。1981年にIBMが開発した「IBM PC」に搭載するために作られたOSです。Microsoft Windowsがリリースされたのが「1985年11月20日」ですので、それ以前のOSでも扱えるという歴史的で基本的なフォーマットです。開発もマイ クロソフトとIBMが共同で行いました。
取りあえずWindowsならば必ず表示できる形式です。コンピューターの性能がまだまだ低く、高度な圧縮アルゴリズム(圧縮計算方法)が考えられていない時代でした。Windows 95が1995年に発売されて爆発的にパソコンが普及しましたね。
※IBMはアメリカに本社を置くコンピューター関連の会社です。

 

特徴

  • 基本的に無圧縮のため、画像の劣化がほとんどない。(圧縮できないわけではない)
  • モノクロ2階調(白と黒のみの2色)から24bitフルカラー(16,777,216色)までサポート。(最大ビット深度は24bit)
  • 無圧縮のため、データ容量が大きくなりがち。
  • 透過処理は不可。
  • 解像度とビット深度が同じならばデータ容量が同じ。

昔から存在している画像フォーマットのため、画像処理も単純明快です。
BMP画像は1つのピクセルに対して大真面目に、しかも単純に情報をひとつ記録しています。(圧縮処理をしていない)

色の指定方法ですが、まず色を 赤(R) / 緑(G) / 青(B) の3つに分割して、それぞれの濃度を0~255の全256段階で指定します。光の三原色ですね。これらの値を増減させることであらゆる色を表現します。(加法混色といいます)

このように、光の三原色を利用した色の表現法を「RGB」と呼んでいます。
白が「R:255 / G:255 / B:255」、黒が「R:0 / G:0 / B:0」です。

カラー 加法混色の例

▲赤、緑、青の色を256段階で増減させることで色を表現する。
パソコンで扱う数字はすべて二進数(0と1)で表現します。256段階で表すと「256の3乗=16,777,216色」まで扱うことができます。これを二進数で表現すると「2の24乗」になるので、フルカラーを「24bitカラー」とも呼びます。

BMP画像はフルカラーである24bitカラー以外にも「黒と白のみの1bit=2色(モノクロビットマップ)」、「4bit=16色」、「8bit=256色」と扱える色数を制限させることもできます。(ビット深度の違い)

また、BMP画像は1ピクセルに色情報を大真面目にひとつ記録しているので、真っ白の画像で も色々描かれている画像でも解像度が同じならばデータ容量も同じという特徴があります。白でも赤でも、1ピクセル上のデータはフルカラーならば一律 24bit=3Byteになるからです。データ容量は解像度とビット深度で決まるわけですね。

BMP画像 単純 BMP画像 詳細
▲上の2つの画像は、両方とも「66.2KB」です。解像度は150×150pxです。

 

用途

圧縮処理が全くされていないフォーマットなので、何度編集しようが保存しようが劣化は発生しません。

ですので、編集時の中間フォーマットとして利用するとよいでしょう。

ただし、RGBのみのサポートで印刷用途としてよく利用される「CMYK」はサポートしていないので注意。

また、容量がとても大きくなるのでメール添付や配布用としても適していません。
その場合はJPEG形式などの圧縮フォーマットを利用しましょう。

 

GIF -Graphics Interchange Format-

GIF【ジフ,ギフ】、正式名称「Graphics Interchange Format(グラフィックス・インターチェンジ・フォーマット」。
拡張子は「.gif」です。
設計者のSteve Wilhite氏はインタビューにて「jif(ジフ)」が正しい発音である、と語っていますが日本では「ジフ,ギフ」どちらでも使われています。

 

歴史

パソコンがやインターネットがちょっとずつ普及し始めた1987年、アメリカの大手パソコン通信会社「CompuServe」がインターネット上で負荷を少なくしながら画像データを転送するために開発・提唱された画像フォーマットです。
当時のインターネット回線の帯域は現在ほど大きいものではありませんでした。そんな中でデータ容量が大きいBMP画像を転送しようとしても、容量が大きすぎて帯域を圧迫しまともに転送ができなかったのです。

そこで、容量をできるだけ減らし、かつWebページによる表示も簡単にできるようにしよう!と開発が始まりました。

GIFは何度か規格を作り直され現在は「GIF87」「GIF87a」「GIF89a」の3種類が存在します。

「GIF87a」は1987年6月15日、「GIF89a」は1990年7月30日に公開されました。
圧縮技術に「LZW」を使用しているため、高圧縮かつ高速です。

 

GIFフォーマットの特許問題

GIFには圧縮技術として「LZW」が利用されています。この「LZW」ですが、1984年に発表されました。
LZWの特許は米UNISYS社が取得していましたが、発表当初はGIFにLZWアルゴリズムを利用していたことに対し、 利用料の請求をしない方針のようでした。しかし、GIFの利用が広まり、WebブラウザがGIFの表示にも対応し始めた1995年から特許料を要求するよ うになりました。

このため、GIFを使用するソフトウェアすべてに特許料の請求が来るのではないかという懸念が生じてしまったため、一時急速にGIFの利用が減少しました。
GIFの代替として「PNG」が開発されることとなった発端となる事件です。
しかし、LZWの特許は米国内で2003年6月20日、日本でも2004年6月20日に失効したため誰でも自由に使えるフォーマットとして復活しました。失効に伴い、GIFの利用も復活し現在はJPEGと双璧を成すほどにまで普及しました。

 

特徴

  • モノクロ2色から8bit=256色までサポート。(最大ビット深度は8bit)
  • 解像度65535x65535(=(2の16乗-1)の2乗)までサポート。
  • 色数が少ないため、フルカラーから圧縮すると元に戻せない。
  • 2段階の透過を扱える。(透過GIF)(GIF89aがサポート)
  • 1つのファイルに複数の画像を格納できる。(アニメーションGIF)(GIF89aがサポート)
  • インターレース対応。(GIF87a/GIF89aがサポート)
サポート機能 \ バージョン GIF87 GIF87a GIF89a
通常画像
インタレースGIF ×
透過GIF × ×
GIFアニメーション × ×

GIFの特徴ですが、まず最大ビット深度が8bitまでなので表現できる色は256色までという制限があります。

これにより、幅広い色彩のある画像では表現しきれない場合があります。
その代り、圧縮アルゴリズム「LZW」を使っている&256色しか表現できないためデータ容量が非常に小さくなります。

また、Webページとの親和性を高くする設計のため、インターネット経由の画像表示も負荷が少なくなっています。

転送のしやすさを目的に作られた形式ですが、この試みは非常にうまくいったといってもよいでしょう。

GIFの圧縮方法ですが、水平方向(横方向)に同じ色が連続していた場合に圧縮処理(走査)を実行します。

BMP画像が「赤赤赤赤赤」と表現するなら、GIF画像は「赤5」と表現しデータ容量を減らしています。

縦方向には圧縮しないので、GIF画像というのは横に同じ色が連続しているほど圧縮率が高くなります。

(これをランレングス圧縮といいます。GIFのLZWはこれを元にさらに効率化した圧縮方法です)
 
透過GIF
また、GIF89aは「透過」をサポートしているため、画像の一部またはすべてを透明にすることができます。

ただし、PNGと異なり「完全な透過」「不透明」の2段階のみサポートしています。つまり「半透明」は扱えません。

また、透過色の指定は1つのみです。

不透明GIF 透過GIF

▲右:不透明GIF 左:透過GIF
 
アニメーションGIF
他のも特徴があり、なんとGIF89aの画像は「アニメーション」を作ることができます。
つまり、ひとつのGIF形式のデータに複数の画像を入れることで、パラパラ漫画の原理で動画のように見せることができるのです。ただし、扱える色数は256色までですから、ちゃんとした動画としてはあまり機能しませんので注意。
アニメーションGIFについては、Wikipediaに例がありますので一度見てみるとよいでしょう。
 
インターレース
また、GIF87a/GIF89aの2つはインターレース【interlace】にも対応しています。
インターレースとは、ネット回線に負荷をかけずに転送するための技術です。一度にすべてのデータを転送せず、少しずつデータを小出しで転送して最後に描写を完了します。つまり、最初はぼやけた画像から始まりますが、転送が進むにつれて鮮明な画像になっていくのです。

インターレース

▲最初はぼやけているが、時間が経つと鮮明な画像になる。

 

用途

256色までしか表現できないので、風景写真など多彩な色を使う場面には不向きです。
どうしても扱えない色がでてきて、再現性に乏しくなるからです。
代わりに単色が多くなる「ロゴ」や簡単な「イラスト」に使うと、JPEG特有の「ブロックノイズ」が少なくなり線の境界 (輪郭)もきれいに作ることができます。データ容量も少なくなるため、Webサイトでよく使用されるボタン画像などはGIF画像で作ると軽いWebサイト ができあがります。
アニメーションも作ることができるため、アイディアによっては個性豊かなWebサイトができるかもしれません。
現在、JPEGに並びWeb上でよく利用されている画像です。

 

JPEG -Joint Photographic Experts Group-

JPEG【ジェイペグ】は、それを規定した組織の名前「Joint Photographic Experts Group」をそのまま使っています。
拡張子は「.jpg」または「.jpeg」です。「JPEG」「JPG」表記はどちらでもかまいません。

 

歴史

JPEG画像は国際標準化機構(ISO) 、国際電気標準会議(IEC)、国際電気通信連合(ITU) の合同グループ「Joint Photographic Experts Group」によって規格されました。グループ結成は1986年です。

規格書は1994年にISO/ICEから「ISO/IEC 10918」、ITU-Tから「ITU-T勧告 T.81」として出されました。後に日本工業規格(JIS)も1995年に「規格番号:JIS X 4301」として規格しました。JIS規格としても認可されたわけですね。

BMP/GIFと登場して次に規格されたのがこのJPEG形式。BMPでは容量が大きすぎ、GIFでは色数が少なすぎ。ということで「写真」や「CG」など色を多用する画像でも鮮明に記録することができ、かつ容量も落とすJPEGが開発されました。

しかし、まだ世の中はダイヤルアップ接続も多い時代です。いくら容量が小さくなったとはい え、GIFよりは格段に大きくなります。JPEGの圧縮方式は、同じ色が連続しているということでは圧縮しません。全体を広く見て人間の視覚に違和感を与 えないレベルで上手にデータを「カット」しているのです。

転送面の観点からCG絵などはまだまだGIFが優位だったのですが、GIFが特許問題によって自由に使うことができなく なったため、JPEGやPNGなどのフォーマットに移行することとなります。ただ、当時のPNGは開発されて間もないこともあり、Webブラウザが表示に 対応していなかったのです。そのため、多くの人はJPEGへ移行することとなりました。

「JPEG」という名前は組織名からそのまま取っています。また、この名前はフォーマット名ではなく「圧縮方式の名前」なのですが、今はもう混同しても問題ないでしょう。「JEPG画像」で意味は通ります。

JEPGは、現在は特許問題など起きていないので自由に使うことができます。その便利さから現在Web上に止まらずデジタルカメラや動画(Motion JPEG)としても利用されています。今一番普及している画像フォーマットといえるでしょう。

 

特徴

  • 非可逆圧縮のため、圧縮後元の画像には戻せない。
  • 圧縮率を指定できる。高いとデータ容量が少なくなり、低いと多くなる。
  • 24bitフルカラーまでサポート。(最大ビット深度は24bit)(16,777,216色)
  • RGBとCMYK、YCbCr、グレースケールをサポート。
  • プログレッシブJPEG対応。(GIFでいうインターレースのようなもの)
  • 透過は不可。

通常JPEGは非可逆圧縮のため、圧縮するとデータが欠損していきます。その代わり、データ容量も大きく削減することができます。GIFがデータの整理によって容量を小さくするのに対し、JPEGはデータをカットしていくことで容量を小さくします。

カットのアルゴリズムも、今までのような単純なものではなく「量子化」「エントロピー符号化」などの高度な技術を使って圧縮しています。これにより、JPEGは人間の視覚に大きな違和感を感じさせることなく、多くのデータをカットすることに成功しました。

実際、BMPとJPEGを比べてみても圧縮率がそんなに高くないJPEGなら違いを見つけることは難しいでしょう。
 
利用できる色空間が多い
JPEGはRGBの他に「CMYK」「YCbCr」「グレースケール」という色空間も扱うことができます。

RGBが「赤、緑、青」の三原色でした。CMYKは「シアン(Cyan)」「マゼンタ(Magenta)」「イエロー(Yellow)」「ブラック (black)」の4つを合成して色を表現する方法です。プリンターのインクがこのCMYKに対応しているため、印刷関連の事業ではCMYKが標準です。 因みに、CMYKの「K」はblackのkではなく、キー・プレート(Key Plate)の頭文字です。

「YCbCr」は輝度情報を加えて「輝度と色の差」によって表現します。「グレースケール」というのは、いわゆるモノクロですが、白と黒だけでなく灰色も扱えるのが特徴です。(白と黒のみはモノクロ2階調といいます)

CMYK グレースケール

▲左:パレット 右:グレースケール画像
 
圧縮率が指定できる
JPEGは圧縮率が指定できることでも有名です。JPEGの圧縮は、まず「ブロック」と呼ばれる8×8ピクセルの正方形に分割し、画像の変化の情報の一部を取り出します。そして、その色の変化の情報を一部切り捨てることで圧縮をしています。

この切り捨て度合いを圧縮率として指定できるのです。1/5~1/30の圧縮が可能です。
 
プログレッシブJPEG【progressive JPEG】
JPEG形式の拡張仕様の一つです。GIFのインターレースのようなもので、最初は画像を荒く表示し、ダウンロードが進むにつれて徐々に鮮明にしていくことでデータの転送帯域を抑える効果があります。

因みに、通常のJPEGを「ベースラインJPEG」といいます。こちらは表示に対応しているものがほとんどですが、プログレッシブJPEGは表示に対応していないソフト・機器がそこそこありますので注意してください。

 

GIFと比べての欠点

JPEGはフルカラーですので、写真のようななめらかにグラデーションが変化する画像には最も適した形式です。

しかし、ロゴや簡単なイラストの場合だと、この効率的な圧縮がかえって邪魔になることがあります。

ブロックノイズ
単純な色調で途中から色が極端に変わるような画像の場合です。色の変化をなめらかにしよとするJPEG圧縮は、極端な色の変化がある箇所も均一にしようと します。8×8ピクセルのブロック内で均一化されるため、ブロック単位で色が均一化されます。そのため、モザイクがかかったようにぼやけてしまう「ブロックノイズ」が発生しやすくなってしまうのです。

GIF画像ブロックノイズなし JPEG ブロックノイズあり

▲少々極端ではあるが左がGIF、右がブロックノイズが付いたJPEG画像
 
モスキートノイズ
また、JEPGは明確な色の境界線(エッジ周辺)に非常に弱いという特徴もあります。
これは空間周波数の内、高周波部分を量子化によって削減していくため急激な色の変化に追いつけなくなり生じるものなのですが、理論は難しいので実際に見てみましょう。

モスキートノイズ

上の画像は、JPEG画像を高圧縮で保存したものです。色の変化がそんなにない場所ではブロックノイズが、境界線では色が飛んでいる「モスキートノイズ」が発生していることがわかると思います。境界線で蚊が集まって飛んでいるように見えるということでこの名前がついています。

特に赤色で顕著に現れ、赤い部分では特にノイズが乗りやすいのも特徴です。

 

用途

以上のことから、JPEGは多彩な色がなめらかに広がっていく「写真」を保存することには最も適しています。

フルカラーであるため、GIFと比べても色数が圧倒的に多いですし、高度な圧縮技術で色の損失は極力小さくしながら抜群の圧縮率を実現しています。

最近のCGも実写レベルに近づいているため、最終的な配布用フォーマットとしても最適です。

圧縮率の指定も可能なため、場面によって容量を変化させながら保存・配布もできます。
現在Web上で最も広く使われている画像フォーマットといえるでしょう。
ただし、急激な色の変化があるロゴ画像やイラスト画像にJPEGはとても弱いです。
特に境界線付近でノイズが発生しやすく、それは容量を抑えようとするだけ顕著に現れます。こういったものにはGIFがまだまだ有利です。くっきりとした画 像を残したい場合は色数が落ちること前提に制作しながら、最終的にGIFで保存することを心がけましょう。

 

PNG -Portable Network Graphics-

Portable Network Graphics(ポータブル・ネットワーク・グラフィックス)、通称「PNG」。
ファイルの拡張子は「.png」です。英語で「pɪŋ」と発音するため、日本語では「ピン」「ピング」と呼ばれているようです。
「Ping」の「ピン」と混同するので、私は「ピング」と呼んでいます。

 

歴史

今回の記事で紹介した「BMP/GIF/JPEG/PNG」の中では、最後に発表されることとなった比較的新しいフォーマットです。

GIFが特許問題によって自由に利用できなくなってしまったため、GIFに代わるライセンスフリーの新しいフォーマットを作ろうと、インターネットとグラフィックの専門家が集まって結成した「PNG Group」により開発されました。

そのためPNGには、正式名称の他にも"PNG is Not GIF"という意味もあったようです。
PNG Version 1.0がリリースされたのが1996年10月1日です。RFC 2083として公開され、同日W3C勧告として承認もされました。(※W3C:World Wide Webで使用される各種技術の標準化と推進を進める非営利の標準化団体)
徐々にバージョンを上げ、2003年11月10日には「ISO/IEC 15948」として国際標準化もされました。

現在の最新規格は「ISO/IEC 15948」として規格されています。

 

特徴

  • 可逆圧縮の画像フォーマットのため、圧縮による画質劣化がない。
  • 圧縮アルゴリズムとしてフリーのDeflateを採用しているため、特許問題がない。
  • 最大16bitのグレースケール、フルカラーと最大48bit=281,474,976,710,656色のRGBをサポート。
  • 8bitまでのインデックスカラーモードをサポート。
  • 透過属性「アルファチャンネル」「透過色」をサポート。(8bitから16bitの透過)
  • ガンマ補正値を保有できる。
  • プログレッシブ対応。

GIFの代わりとして開発されたものですが、性能は大幅に向上されています。
まず、可逆圧縮のため何度PNGで圧縮しても画質的な劣化はありません。ZIPなどにも採用されているフリーの圧縮アルゴリズム「Deflate」を採用しているため、特許問題もなく自由に扱えるようになりました。
また、色数も今回紹介した4つの形式の中では最大の色数を保有でき、48bit=281,474,976,710,656色(約280兆色)を指定できます。ただし、RGBのみのサポートです。
また、アニメーションは標準で実装はされていません。
 
透過属性「アルファチャンネル」
GIFは透明か不透明かの2段階のみの透過が可能でしたが、PNGは1ピクセルに対して8bitから16bitの透過情報を付加できるようになっています。「アルファチャンネル(αチャンネル)」と呼ばれるものです。

α=0を透明、α=MAXを不透明と定義しています。αが 0<α<MAX の値を取ると、その色は「半透明」を表現することができるようになります。MAXの値ですが、8bitならば256段階、16bitならば65536段階の透過が利用できます。

つまり、RGB48bitカラーでさらにα情報を加えると、なんと最大で1ピクセル当り64bitを詰め込める計算になります。

透過PNG

▲透過PNG
といっても、ここまでの画像はあまり見かけませんね。
大体が「PNG-8(8bitRGB + 8bit αチャンネル)」や「PNG-24(24bitRGB + 8bit αチャンネル=32bit)」などになるかと思います。アルファチャンネルは便利ですが、容量も倍になることがほとんどですので無駄な透過はしない方が容量の無駄にならずよいのです。そもそも64bitPNGの表示に対応しているかどうかの問題もありますので。
 
透過色
こちらはアルファチャンネルより理屈が簡単です。
透過色とは、指定した色に対して透過情報を一括して加えることができる機能のことです。
背景が一色のみで背景を透明にしたい場合は、背景色を透過色に指定すれば一気に透明にすることができます。

透過GIFと似たようなものですが、透過色の指定が複数できるPNGの方が便利です。
注意点として、透過色は透明にすると いうよりも「指定した色を表示しない」という意味ですので、透過色をサポートしなソフトで読み込むと透過色で指定していても表示されてしまいます。合成などで透明にしたい場合はアルファチャンネルの方が確実で用途に合っているのでできればこちらを使いましょう。
透過色は、透過した色の編集も後ですることがある場合に指定してみてください。
 
ガンマ補正値の埋め込み
画像データを映像として確認するには、色のデータをディスプレイなどへ出力する必要があります。
しかし、ディスプレイの性質やOSの処理の違いにより同じ画像データでも出力された際の明るさが異なってしまう現象が発生してしまいます。WindowsとMac OSでは同じデータでも明るさが若干異なって見えるでしょう。
デザイナーなどの職業の方は、プラットフォームによるこの明るさの変化に頭を悩ませていました。
作業する環境によって色に違いがでてしまっては、まともに作業ができません。
そこで、どんなプラットフォームでも同じ明るさを表現するため、PNGには画像の明るさを調整する「ガンマ補正値」を画像自体に埋め込むことが可能となっています。このガンマ値を参照してプラットフォーム側で調整することで、どこでも同じ明るさで表示できるようになりまし た。
※因みに、Mac (ガンマ値1.8) / Windows (ガンマ値2.2)が標準らしいです。

 

用途

GIFの代替として開発されましたが、その性能差は圧倒的です。
可逆圧縮にも関わらず、同じ内容の画像ならばGIF画像より10%~30%程度ファイル容量が小さくなります。
また、フルカラー対応でアルファチャンネルによる透過もサポート、プログレッシブにも対応し、ガンマ補正値の埋め込みによるデザイナーへの配慮もできている高性能フォーマットです。
可逆圧縮を生かした編集時の中間フォーマットや、透過を利用した画像の合成などに最適でしょう。
Webとの親和性も高く、現在使用されているWebブラウザならば必ず表示に対応しているので、GIFの代わりに写真やボタン画像など広く利用できることでしょう。
ただし、アニメーションには基本非対応です。また、色数が同じ画像でGIFと比較した場合ならばPNGが容量的にも勝てることが多いですが、フルカラーのJPEGとフルカラーPNGでは、JPEGの方が圧倒的に容量を抑えることができます。
可逆圧縮は、元の情報に戻せるだけのデータを持っていなくてはいけないので、実際にデータをカットしているJPEGには勝てないのです。透過情報まで入っているならば尚更PNGの方がデータサイズが大きくなってしまいます。
ただ、BMPよりかは容量を抑えることができるので、フルカラー以上の場合で画質の劣化を許さない場面がありましたら、PNG形式を使用してみてください。

 

まとめ

内容 \ 形式 BMP GIF JPEG PNG
色数 モノクロ2階調
24bitフルカラー
モノクロ2階調
8bitカラー
24bitフルカラー 24bitフルカラー
48bitカラー
色空間 RGB RGB RGB,CMYK
YCbCr,グレースケース
RGB
グレースケール
透過 × ×
アニメーション × ×
画質劣化 なし 色数が同じなら
基本なし
あり なし
データサイズ 非常に大きい 非常に小さい 非常に小さい そこそこ小さい
用途 編集中など高画質
を求める場面
アイコン、ロゴ
など単調な画像
写真やCGなど多彩な
色を表現したい画像
透過を生かした
画像合成
劣化を許さない場面
不向き データの転送
(容量が大きい)
写真など
(色数が少ない)
ロゴ、イラスト
(ノイズ発生)
データ転送
(画像によっては
容量が大きくなりすぎ)

まとめるとこんな感じになるかと思います。

特に何も意識する場面ではないというならば、容量が大きくなりすぎるBMPの使用をさけるだけで基本はよいでしょう。

ただ、GIFは色数が少なすぎるので「写真」として残すならばJPEGが基本となります。
デジタルカメラも標準はJPEG形式で保存されるはずです。

また、カメラで撮影した画像を編集するのならば、最初に記録した画像情報を極力減らさない工夫が必要になります。

折角24bitフルカラーで撮影したのに、最後がGIFで8bitカラーになってしまったとなるともったいないですからね。

ただし、Webサイトの作成をしていたりするならば最適化も必要になります。あえて色数を落としてデータサイズを小さくする工夫も必要になることでしょう。高度な透過も使いたいならばPNGの使用も検討します。

各フォーマットには様々な特徴があり ます。それらをよく理解してデータを扱えるようになれば、フォーマット選びに困ることもなく最適な状態で保存・運用することができるようになります。デジ タルカメラも普及して、パソコンでの編集も簡単にだれでもできる時代です。だからこそ、これら知識を持っていることは強みになります。
身近であるからこそ、使いこなせれば楽しいパソコンライフを送れるはずです。

何かのお役に立てましたら幸いです。