7

何かが私を困惑させています-なぜこの画像はすべてのブラウザで異なって見えるのですか?

IE9(およびWindowsフォトビューアー)の画像:
IE9の画像

Firefox(およびPhotoshop)の画像:
Firefoxの画像

Chrome(およびIrfanview)の画像:
Chromeの画像

最終的な出力を大きく変えるために、JPEGのデコードプロセスで何が起こっているのでしょうか。

(IE、Firefox、Chromeなどで表示して、意味を確認してください。)

4

4 に答える 4

6

JPEGSnoop (source now available @ sourceforge) は、Y'CbCr から RGB への変換に到達する前に、大きな輝度オーバーフローを報告します。他のいくつかのファイルでこれらのエラーが発生しますが、オーバーフローは通常小さく、256 または 257 対最大 255 です。ここで計算された輝度は 729 です!

YCC オーバーフローに関する JPEGSnoop の作成者のコメント:

DC での YCC クリッピング - 各 MCU は、前の MCU の DC (平均) 値を加算または減算します。これらはすべて 8 ビットの範囲内に収まる必要がありますが、DC 係数の破損により、この値が範囲外になることがあります。このタイプのエラーにより、画像の色や明るさが突然大幅に変化します。このタイプのエラーは通常回復しないため、JPEGsnoop はログ ファイルでこれらのうち最初の 10 件のみを報告します。

私は MCU 間 DC について詳しく知りませんでしたが、Pennebaker と Mitchelは同意見です。

*** Decoding SCAN Data ***
  OFFSET: 0x00000160
  Scan Decode Mode: Full IDCT (AC + DC)

  Scan Data encountered marker   0xFFD9 @ 0x00027CA9.0

*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  729,  109,  171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  682,  109,  172) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  741,  109,  173) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  629,  109,  174) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  841,  109,  175) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  319,  109,  176) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  928,  109,  177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  624,  109,  177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   1,   0) YCC=(  785,  107,  171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   1,   0) YCC=(  559,  107,  171) Y Overflow @ Offset 0x00027CA8.2
    Only reported first 10 instances of this message...
于 2011-02-17T22:38:17.813 に答える
2

JPEG は RGB または CMYK でエンコードできます。これらの問題は通常、CMYK の場合に発生します。画像編集プログラムでファイルを開き、RGB JPEG として保存し、CMYK プリンターに敬意を表します。これにより、ブラウザーで以前とは異なる結果が得られます。

于 2010-10-14T21:56:46.643 に答える
1

私は推測しているだけです。
これらの違いを示すために画像が作成された場合、エンコードされたのは通常の画像ではなく、計算された色が 0 ~ 255 の範囲外であり、異なるデコーダーがこれらを異なる方法で処理する無効な画像である可能性があります。

于 2010-10-14T21:58:48.180 に答える
1

たとえば、その特定の画像のカラー プロファイルを Photoshop で CMYK から sRGB に変更すると、すべてのブラウザでほぼ同じように表示されます。

于 2010-10-14T22:02:22.087 に答える