持ち込みカラオケの作り方やその他Tipsを紹介します。
Home > 赤色の劣化について
赤色が劣化するのはAviutlとH264の仕様で
すw
と言ってしまっては終わってしまうので、劣化軽減のために調べてみました。
@原因
ニコニコ動画で現在主流となってる映像規格はH.264/MPEG-4 AVCで、
普段はmp4動画と言っているものです。
このmp4はAviutlでx264エンコーダを用いて作られているものが多く、
色々なオプションをGUI形式で手軽に使用できる為だと思います。
ここで色空間の話をします。
無圧縮Aviの色空間フォーマットはRGBです。
*RGBとは赤(Red)緑(Green)青(Blue)の原色を混ぜて色を再現する方法です。
Aviutlがx264に橋渡しする際はYUY2(YUV422)が色空間フォーマットに用いられていま
す。
*YUY2(YUV422)とは
2x2の4ピクセルから輝度情報(Y)を4サンプル、
輝度と青色成分の差(U)、輝度と赤色成分の差(V)をそれぞれ2サンプル採る方式。
Y U V = Y Cb Crの表記です。
mp4動画の色空間フォーマットはYV12(YUV420)です。
*YV12(YUV420)とは
2x2の4ピクセルの中から輝度情報(Y)を4サンプル、
最初のラインの2ピクセルから輝度と青色成分の差(U)を1サンプル、
次のラインの2ピクセルから輝度と赤色成分の差(V)を1サンプルをとり、
UVを各フレームごとに反転させる方式。
無圧縮aviをmp4動画にエンコードする際の色空間処理は以下の工程
1.Aviutlに無圧縮aviを読み込む(RGB)
2.x264エンコーダでH264/AVCにエンコード{RGB→YUY2→YV12)}
カラオケ動画編集において実際の工程例
1.Aviutlに元動画(mp4)をmp4input.auiで読み込む(YV12→YUY2)
2.編集用にHuffyuvでavi出力(YUY2→RGB)
3.VirtualDubでHuffyuv出力(RGB)
4.Aviutlでx264エンコーダでH264/AVCにエンコード{RGB→YUY2→YV12)}
このように、RGBからYUV系に変換するときに横のピクセル情報が参照されることと、
赤のような高周波成分のエッジ(輪郭)部分は量子化された際にゼロとなるので黒ずんで劣化します。
またニコニコ動画で用いられる再生手段のフラッシュプレーヤーは
色の補完処理がなされていないためさらに劣化して見えます。
ffdshowなどを用いる再生ソフトでは補完処理され綺麗に見えるのはこのためです。
@対策
劣化を軽減するために色々検証してみましたが、効果があったのは以下の2つのみでした。
1.大きなサイズにリサイズしてからエンコードする方法。
これは最も効果があります。
ピクセル数を多くすることにより間引きによる劣化が抑えられてます。
下の画像では640x480から無理やり1024x768にリサイズしているので若干輪郭にシャギーが見られます。
またクオリティを維持するためのビットレートも必然と高い数値が要求されるため、
動画容量が増える欠点があります。
検証はしてませんが、同じ理由で字幕を大きめに作るのも効果があると思います。
2.UVダウンサンプリングフィルタを使用する方法。
設定はN=0 YUV420(YV12)相当で使用。
N=0の場合は画像平均法
N=1以上の場合はダウンサンプリングにLanczosを使用するようです。
Nの値を大きくすると輪郭にノイズが出るようですが
私の環境ではほとんど変化が見られませんでした。
下の画像は640x480の無圧縮aviをmp4動画にエンコードしたものを
Media Player Classicで再生中にBMPでキャプチャーした後pixiaにてgifにしました。
1.オリジナル640x480 2.リサイズ(Spline36)1024x768
3.ノンフィルター 4.UVダウンサンプリングフィルターON
N=0 YUV420(YV12)相当
並べて見るとわかりにくいですが、劣化が少ない順に並べると2>4>3となります。
※Aviutlフィルター
うえぽんさんのUVダウンサンプリングフィルター
http://auf.jpn.xxxxxxxx.jp/
解説など
http://shinshu.fm/MHz/14.30/archives/0000238428.html
http://shinshu.fm/MHz/14.30/archives/0000274447.html
※参考サイト
wikipedia 色空間
http://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93
ぼくんちのTV 色空間の話
http://www.boktv.x0.com/bokblog/2007/03/post_6.html
カラーフォーマットの謎
http://www.nnet.ne.jp/~hi6/lab/pixel/
貧乏人のためのCG講座
http://www.nnet.ne.jp/~hi6/lab/pixel/
Aviutlでx264GUIを使用したh264mp4エンコードをする場合の注意点について
http://d.hatena.ne.jp/penciler/20090329/1238309164
お絵描き研究室:JPEG(原理編1)
http://webs.lanset.com/crazy17/jp/lab/jpeg1.htm
YUVフォーマット及び YUVとRGBの変換
http://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/yuv.html
ビデオエンコード(aviutlの色ゴースト)の話
http://www10.plala.or.jp/p205tb16/colorghost.html