RE:JPEGプラグインとPhotoshopのRGB値の違い (みやさか) 2000/06/22 15:35
> VC6&MFCでifjpeg.spiを使用してJPEG画像を読み込み、GetPixel等である部分の
> RGB値を取得した場合と、Photoshop(ver5)での同じ部分のRGB値が1~2LSB違う
> 場合があります。

これは、ある意味で正常な動作です。

というのは、JPEG の場合、(画像の圧縮時だけではなく) 展開する場合にも
小数点以下の精度を持つ数値の演算が多く行われます。その演算を浮動小数点演算で
行うにしろ、固定小数点演算(整数命令を使った小数点演算)で行うにしろ、
数値の丸め誤差は必然的に発生しますし、プログラムの構造によって誤差の
発生の仕方も違ってきます。

要するに、JPEG が「非可逆圧縮」である理由は、展開側にもその要因がある、
というわけです。というか、「そもそも圧縮前と完全に同一に復元することは
できないのだから、展開するソフトによって結果が若干違っても問題ないでしょ?」
っていう考えで設計されています。展開結果がたまたま同じになることはあるかも
しれないけれど、一般的には「異なるのが普通」と考えてください。

JPEG をサポートしているソフトの多くは、Independent JPEG Group の JPEG ライブラリ
(libJPEG.dll は、そのライブラリの DLL 版でしょう)を利用しているので、
それらのソフトの間では、結果が完全に同じになることが多いです。一方で、
ifjpeg.spi は、たけちんさんオリジナルの JPEG 展開コードを使っています。

どうしても結果が完全に同じでなければならないならば、他の可逆圧縮の
画像フォーマットを使う必要があります。一般的な JPEG (DCT方式) では、
どんな手段を以てしても、結果の同一性を保証することは不可能です。


--「RE:JPEGプラグインとPhotoshopのRGB値の違い」に対するコメント--
タイトル(Subject):
お名前(Your name):
Mail address:
Password: :入力しておくとあとで削除できます
Your message:




7thBridge P ver0.26 (c)Takechin