JPEGSnoop(源代码现在可在sourceforge上获得)在我们甚至到达Y'CbCr到RGB转换之前就报告了大量亮度溢出。我在其他一些文件上也遇到过这些错误,但是溢出通常很小——256或257与最大值255相比。在此计算的亮度为729!
JPEGSnoop作者对YCC溢出的评论:
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...