ちょうど資料作りをしてたので、
「可逆圧縮コーデックといえども、途中で色空間の変換が入ると可逆じゃなくなるよ」
っていう件についてのサンプル画像をアップしてみます。
■サンプル画像1
「赤・緑・青・黒のピクセルを敷き詰めたRGB画像」を、
ULY2(YUV422)やULY0(YUV420)で圧縮した場合の劣化パターン
ttp://www1.axfc.net/uploader/Img/so/70968.bmp 左がYUV422、右がYUV420。上下の違いは「コーデックの設定」の「YUY2圧縮する」がON(上)かOFF(下)か。(※1)
ピクセルを拡大してみると、色の変わりっぷりがよくわかります。(拡大しなくてもわかるけど)
RGBソースなら、ちゃんとULRGなどを使わないと可逆にはなりません。
※1・・・YUY2圧縮がONだとAviutlがRGB→YC48→YUY2(YUV422)変換したYUV値(この時点で既に劣化)を、
ULY2やULY0が受け取って使う。ULY0の場合はここから更にYUV420化(ここでも劣化)する。
YUY2圧縮がOFFだとAviutlがRGB→YC48→RGB変換したRGB値(この時点では劣化なし)を
ULY2やULY0が受け取り、それぞれの内部でYUV化(ここで劣化)する。
■サンプル画像2
文字を描いたRGB画像をULY0(YUV420)や、x264(YV12=YUV420)でエンコードした場合の劣化
ttp://www1.axfc.net/uploader/Img/so/70976.bmp ニコニコ動画とかで赤い文字がつぶれて見えたりするのも、ほとんどの場合これが原因。
黒背景に赤文字もかなり劣化しますが、灰色背景はもっとすごいことに。
→以前ニコニコ動画に上げてテストした例
ttp://www.nicovideo.jp/watch/sm7534784 上のサンプルではRGB→YUVの劣化にしか触れてませんが、他にもBT.601とかBT.709とかが絡んでくると色々面倒ですね。