YCbCr→RGB の処理で double から unsigned char に落としているときに
値が 256 を超えるかどうかチェックしてみては?
書き込みを読んだ限りではそこが一番危なそうな気がします.

あと,念のためその「お決まりのあの式」も晒してみた方がよいかと・・・