フィルタ処理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/11 03:06 UTC 版)
「Portable Network Graphics」の記事における「フィルタ処理」の解説
PNGのイメージデータはzlibにより圧縮されるが、画像の特徴を利用して圧縮の効率を良くするために、フィルタで事前に処理を行えるようになっている。(展開時には、逆のフィルタがかかる) 例えば、ピクセルの値が次のように並んでいたとする。 100,101,102,103,104,105 このデータには冗長な値が無く、このままDeflate圧縮を行っても効果は得られない。しかし例えば「左の値との差」をとると、データは以下のようになる。 100,1,1,1,1,1 この状態で圧縮すれば、最初の状態よりも高い効果が得られる。上記は極端な例であるが、このように事前に簡単な演算を行うことは、データによっては圧縮率の改善に役立つ。 PNGでは5種類のフィルタを定義している。 Sub 左隣のバイトとの差をとる(上記)。 Up 真上のバイトとの差をとる。 Average 左隣と真上のバイトの平均値との差をとる。 Paeth 左隣、真上、左上の3つのバイトからPaeth値を計算し、その値との差をとる。 None 何もしない。 このフィルタは横一ライン毎に変更できる。どのフィルタをどこに使うかは使用する圧縮プログラムが選択できるため、プログラムによって同じ画像でも異なるサイズになりうる。
※この「フィルタ処理」の解説は、「Portable Network Graphics」の解説の一部です。
「フィルタ処理」を含む「Portable Network Graphics」の記事については、「Portable Network Graphics」の概要を参照ください。
- フィルタ処理のページへのリンク