PNG形式は圧縮パラメータを持っているので無損失ですか?
PNG形式は可逆形式であることが想定されていますが、PNGファイルとして画像を保存するときは、圧縮レベルを選択するように求められます。これは、PNG形式が実際には無損失ではないという意味ですか?今日のSuperUser Q&Aの投稿は、好奇心旺盛な読者の混乱を解消するのに役立ちます.
本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.
質問
SuperUserリーダーのpkoutは、PNG画像の品質が選択した圧縮レベルの影響を受けるかどうかを知りたいです。
私が理解しているように、PNGファイルはロスレス圧縮を使います。しかし、Gimpなどの画像エディタを使用していて、画像をPNGファイルとして保存しようとすると、0〜9の範囲の圧縮レベルが要求されます。.
圧縮された画像の視覚的な精度に影響を与える圧縮パラメータがある場合、PNGはどのようにロスレスになりますか?誰かが私にこれを説明してもらえますか?圧縮レベルを9に設定した場合にのみロスレス動作になりますか?
選択した圧縮レベルに応じて画像の品質に違いがありますか?
答え
SuperUserの貢献者であるLordNeckbeardとjjlinが私たちに答えてくれます。最初に、LordNeckbeard:
PNGは圧縮されているが無損失
圧縮レベルは、ファイルサイズとエンコード/デコード速度の間のトレードオフです。過度に一般化すると、FLACのような非画像フォーマットでも同様の概念があります。.
異なる圧縮レベル、同じデコード出力
ファイルサイズは圧縮レベルが異なるため異なりますが、実際にデコードされた出力は同じになります。 MD5マルチプレクサを使用して、デコードされた出力のMD5ハッシュをffmpegと比較できます。これはいくつかの例で最もよく示されています.
PNGファイルを作成する
- デフォルトでは、ffmpegはPNG出力に-compression_level 100を使用します。.
- この例では、100(最高の圧縮レベル)が0(最低の圧縮レベル)よりもエンコードに約3倍、デコードに5倍長い時間がかかりました。.
ファイルサイズを比較する
PNGファイルをデコードしてMD5ハッシュを表示する
両方のハッシュが同じなので、デコードされた出力(圧縮されていない生ファイル)はまったく同じであることを保証できます。.
jjlinからの回答が続きます。
PNGは無損失です。この場合、GIMPは最も適切な表現を使用していない可能性があります。.
と考えて 圧縮品質 または 圧縮レベル. 圧縮率が低いと大きいファイルになりますが、生成するのにかかる時間が短くなります。圧縮率が高いと、ファイルが小さいほど生成に時間がかかります.
通常、あなたは収益を減少させます、すなわち、最高の圧縮レベルに上がるときにかかる時間の増加と比較してサイズの減少はそれほど大きくありませんが、それはあなた次第です。.
説明に追加するものがありますか?コメントで音を消す。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.