-128 ????

昨日までの結果で、画像の柄は復元できているっぽいのに、
色味が変なので、YCbCr⇒RGB の変換がミスっているっぽい。

変換式は間違ってないと思うけど・・

R = Y + 1.40200 × Cr (V)
G = Y - 0.34414 × Cb (U) - 0.71414 × Cr (V)
B = Y + 1.77200 × Cb (U)

(※↑変換式としては正しいですが、JPEG的には間違っています)


・・・!!!!


JFIFの仕様書に、

R = Y + 1.402 (Cr-128)
G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
B = Y + 1.772 (Cb-128)

128ってなんだぁぁぁぁぁ!


そもそも、RGB⇒YCbCrの変換の時に、+128しているようです。
それは、YCbCrにした時に正の値のみで表現できるようにする為のようです。(符号ビットがモッタイナイのかな?)



という事で、色味が綺麗に復元できるようになりました。


テスト画像

修正前

修正後


次は、縦縞ですね☆