なぜ人々はJPG画像を使用するのですか?


17

どこにでもJPG画像が表示されます。しかし、なぜ?

PNGファイルには不透明度がありますが、JPGファイルにはありません。サイズを比較するためにいくつかの画像をPNGとJPGにエクスポートしてみましたが、両方とも一致するか、PNGが小さくなります(もちろん画像によって異なります)。

ここに画像の説明を入力してください

これは「JPG」という512x512のJPG画像です

ここに画像の説明を入力してください

そして、これは「PNG」という512x512のPNG画像です。

JPGは31.7kb、PNGは25.9kbでした

それで何が得られますか?


3
知っておくべきことは、.pngは無損失で、.jpgは無損失であることです。したがって、.pngはソース画像により適し、.jpgは出版により適しています。
誰も

1
@Nobody PNGは、非可逆または可逆です。エクスポート方法によって異なります。
DA01

8
参考までに、ここで使用する例のように、ラインアートにJPGを使用することはほとんどありません。したがって、純粋にこれらの例に基づいているため、JPG 使用しません。ただし、これらが写真である場合は、まったく異なる結果が得られることがわかります。
DA01

7
この質問が10秒以上生き延びたとは信じられません。
私服

2
@ DA01 PNGは損失を伴うことはありませんが、PNGにエクスポートする前に画像を損失的に操作して小さくすることができます。PNG仕様はこれについて何も知りません。
誰も

回答:


35

それは、写真のように色が多く不規則な形の写真を圧縮するのに優れているからです。

あなたがやったのと同じエピソードを試しましたが、その後写真を撮りましたか?.pngの圧縮係数に関係なく、.pngはおそらく.jpgよりも著しく大きくなります。

例:

png画像
.png画像、110k

100品質のjpeg
100%品質の.jpg、63k

30品質のjpeg
30%品質の.jpg、わずか9k

よく見ると、30%品質の.jpgにいくつかのアーティファクトがありますが、それは主に、滑らかな緑の背景に対する電球のハードエッジが圧縮アルゴリズムにあまり適していないためです。一目でわかるような損失なしに、通常の写真を10または5%の品質にまで低下させることができます。


3
FWIW:PNGを最適化した後、認識可能な損失なしに34 KBになります。
マリオ

うわー、私はそれを知らなかった。撮った写真をPNGに変換してみたところ、550kから2933kになりました。何がそうなのか知っていますか?
JediBurrell

10
@JediBurrell PNG圧縮は常にロスレス(AFAIK)ですが、JPGの圧縮は最終的に画像情報をドロップします。あなたの場合、見栄えの良い画像ではあるが既に圧縮されたJPGには各バケット(JPG画像を構成する圧縮された小さな正方形)の周囲にエッジが含まれ、PNGはこれらのアーティファクトを失わないようにピックアップします。したがって、PNGは元のJPGよりもはるかに大きくなります。JPGを使用してJPGを再圧縮すると、これが何度も悪化します。その効果は「メタブロック」と呼ばれます。
ジェイVersluis

2
@JediBurrell技術的および数学的な詳細に興味がある場合は、Computerphileによるこのビデオをご覧ください。
ポールマンタ

2
「滑らかな緑の背景は、圧縮アルゴリズムにはあまり適していません」:反対に、グラデーションはJPEGで非常によく表現されますが、ハードエッジは近くにないため、アーティファクトが生成されます。好奇心For盛な方は、正方形信号のフーリエ変換について読んでください。
Lloeki

13

JPEGは写真業界から支援を受けており、PNGよりも半年ほど前に作成されていますが、PNGはGIFの代わりとして設計されており、CompuServeによって熱心に保護されています。たとえば、CompuServeによってライセンス供与されたプログラムを使用してこれらの画像を作成しなかったという理由だけで、人々はWebサイトでGIFを使用したとして訴えられました。

JPEGは最初から、ピクセル単位の完璧な品質を犠牲にして、ファイルを小さくすることでスペースを回復するように設計されていました。Qを100に設定しても、ほとんど目に見えない軽微なアーティファクトが発生します。損傷が発生し、ファイルが変更されて保存されるたびに、さらなる損傷が発生します。ただし、度も実行しない限り、探してみないと効果に気付かないでしょう。

一方、PNGは完全にロスレスです。ファイルが何度変更され保存されても、すべてのピクセルは毎回忠実に再現されます。ただし、PNGはできるだけ多くの情報をできるだけ少ないデータにパックするためにいくつかのトリックを採用していますが、データを損失なく圧縮する方法には限界があります。高品質のJPEGは、おそらく最適化なしのPNGとほぼ同じサイズか、それ以上のサイズになります。たとえば、フィルターの使用やウィンドウサイズの調整によってPNGが最適化を開始すると、ファイルは損失なく小さくなりますが、JPEGは維持するために視覚情報の破棄を開始する必要があります。

では、なぜJPEGが使用されるのですか?結局のところ、それは一般的に忠実度とストレージスペースの点で劣っています。もちろん、主な理由は、それが業界標準であり、非常に幅広いサポートがあることです。世界のほぼすべてのカメラは、RAW(文字通り、生データ)またはJPEGを使用します。JPEGデータを可能な限り高速に圧縮するために、これらのカメラにはハードウェアデータプロセッサが組み込まれています。

これは、GIFがまだどこにでもあるのと同じ理由です。ほとんどのソフトウェアはGIFをサポートしていますが、PNGは古いソフトウェアではあまりサポートされていません(たとえば、古いInternet ExplorerバージョンはPNGファイルを表示するためにプラグインを必要としました)。色のサポートは粗末ですが、アニメーションはサポートしていますが、PNGはサポートしていません(関連するファイル形式、APNGがありますが、PNGのように完全に外れることはありません)。GIFは、広くサポートされている唯一のファイル形式であるため、依然としてアニメーション画像のチャンピオンです。

JPEGからPNGに変更するためのコストは、ハードウェアの見込みから非常に高くなります。カメラは、たとえば、現在のJPEGを使用するためにハードコーディングされているため、高速PNG圧縮をサポートするために構築された新しいプロセッサを必要とします。PNGチップを内蔵した新しいカメラを購入する必要があるため、古いカメラは価値がありません。それはまた、メーカーに業界標準に反してそのようなデバイスの製造を開始するよう説得する必要があることを意味します。つまり、正当化するのに十分な需要がなければならず、そのようなカメラは最初はJPEGベースよりも高価になるでしょうカウンターパート。業界を変えることは非常に困難です。


PNGは潜在的にロスレスです。保存ソフトウェアは、圧縮可能な形式を改善するためにデータを失うことを選択する場合があります。jpegのvaveletの性質により、ロスレスにすることは不可能です。
joojaa

@joojaa PNG圧縮は「タフなデータを失う可能性がある」という声明をバックアップできますか?
CJデニス

@joojaa JPEGは、ウェーブレットではなくDCT圧縮を使用します。あなたはJPEG 2000の思考であるかもしれない
bcrist

7
画像がPNGコーデックに渡される前に減色が行われることは私の理解です。フォーマットが既に損失の多いデータを保存できるからといって、損失を発生させません。32ビットRGBのアルファ画像を1ビットの白黒画像に変更すると、大量のデータが失われますが、PNGではありません。色深度の低減は、非可逆圧縮ではなく非可逆変換です。
CJデニス

2
私の間違いはDCTです。私のポイントは、PNGはロスレスですが、すべてのPNGオプティマイザーがそうではないということです!したがって、あなたが何を使用したかを知らなくても、プロセスが損失を伴うかどうかはわかりません。したがって、非損失性についての質問は、考えているほど単純ではありません。PNGオプティマイザーを保存する前に色深度の変更が行われるように、フットプリントを小さくするために、保存する前に他の方法で画像を変更する場合があります。@JCDennisこれらのクランチャーは、マニュアルページを見るだけで存在します。
joojaa

7

詳細に言及されていないのは、これらの圧縮アルゴリズムの動作方法です。JPEGは、ピクセルの色のわずかな変化に気づかない写真を直接対象としています。PNGは、単色の大きな領域を含む加工画像をよりターゲットにしています。ここでは、単純な黒のレタリングを含む巨大な全白の写真の例のように、圧縮が最大限に活用されています。同じ写真を撮って、白い背景を白から灰色にフェードインして左右に均等に並べると、PNGサイズが大幅に増加し、jpgにはほとんど変化がありません。これらのファイルタイプをbmpに解凍するために、10年ほど前にこれらの両方の形式で直接コーディングを行いました。JPEGは非常に高度で複雑です。PNGは非常にシンプルで、水平線の色が変わらない特定の画像でのみ効果的です


1
実際にこれを試しましたか?PNGはされていない、単にレングス符号化を実行すると、あなたがお勧めよりもはるかに洗練されています。適応アルゴリズムを使用し、ベタ領域と繰り返しパターンの両方を効果的に圧縮します。
z7sg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.