2006年03月21日

hqdn3dとx264のnr、とか

【概要】MPlayer-dev-eng から

MEncoder の-x264encoptsにノイズリダクション(nr)が追加されている。
いつ頃追加されたものかまではチェックしていない。
x264とMEncoderをビルドするのは、週一くらい。その週の録画をまとめてエンコードする直前だから。
手許で常用している-vf hqdn3dとどうちがうんだろうなぁ、、、と思っていたら、開発者メーリ ングリストにこんなん出てました。

Re: [MPlayer-dev-eng] Re: h264+aac in lavf mp4
IIRC the noise reduction x264 works using a different approach then hqdn3d (dropping high-frequency component vs smoothing neighbouring and previous pixels). 
って事で、デノイズ方式には以下の二種類があるようだ。
  1. 「高周波成分を除去。」
  2. 「隣接、および時間軸で前後のピクセルを混ぜる。」
 で、自分の英語力ではどっちがどっちかちと迷う^^;。一応、MPlayer/MEncoderの-vf hqdn3d(てゆうかその元のdenoise3d、ffmpegXが使うもの)を読み直すと、こっちがピ クセルまぜまぜ系っぽい。

 「高周波成分」てのがナニかはわからないが、ノイズというものは高周波なものらしい。んでもって高周波成分は人間の目にはとまりにくいので、ちょっとく らい省略してもわからないものらしい。というかそれがJPEGの、ひいてはMPEGの基本らしい。つまり「画像を波形で表現する考え方」ってのを把握した ほうがいいらしい。

 一応、上記スレにはx264のnrの方が速いが、TVキャプチャでは-vf hqdn3dの方が有用とあった。これは手許での実感とも一致する。

/*/
  • AVIにPTSは無い(従って、Bフレームが無い時代に、AVI作成目的で書かれたmencoderはPTSを扱えない。1から 書き直さねばという声は時折見かける)。
  • Bフレーム自体はMPEG1で登場。
  • これよりより古いVfW/AVIでBを扱うにはハックが必要。
このへんから推測すっと、PTS・DTSってのはプレゼンテーションタイムスタンプ・デコーディングタイムスタンプ。ってあたりだろうか。

/*/

Macでx264+aac.mp4を作ろうと思ったら、こんな感じになると思う。
  1. 素材が生YUV4:2:0
    1. x264cliをgpac付きでビルドして.mp4を吐く(ffmpegX 内蔵版はこれ。常にちょいと古い。手許ではgpacのビルドが壁)
    2. x264cliで映像のみ.h264を吐く。
  2. 素材がMPEG2-PS
    1. ffmpegをデコーダ(AviSynth代わり)に使い、x264cliにpipeで繋ぐ。出力形式は上記と一緒(同様にApple-H.264にも繋げる。raw2qt264yuv4qtを使う)
    2. ffmpegだけで全部やっちゃう(iPodのお かげでGUIが結構ある)
    3. mencoderで映像のみ.h264を吐く。ffmpegでaac.mp4を吐く。mp4boxでmuxffmpegX でもできるが、インタレ解除とデノイズでCUIを常用。
GUIは内部的にだいたいこのどれか。
ffmpegX, D-volution, 国産だと携帯動画変換ちゃん、MPEG exporter TNG、などなど。
シンプルなGUIラッパーだったり携帯向けだったりすんのでTVキャプチャを640x480にというにはちょいと不向きなとこがあったりする。
GUIで個人的に肩入れしてるのは、Esperance 。ffmpeg,x264,mpeg4ipに手を入れてらっさるのでx264が最新に近く、crfを使った実用的な「1パス画質固定」ができる。(手許のmencoderではcrfとbitrate指定を組み合わすといい感じなんで、crf は厳密には「1パス画質固定」と「1パスビットレート固定」の中間的なモノかもしれない。)

AVIとQTが異質なのだから当たり前だが、vfw/AVIインフラの無いMacではGUI(QTインフラ)への移植がなかなか進まない。とゆうか libavcodec(ええと、ffdshowだっけ)すら頓挫したままだったりする(動きはある)。AVIインフラが万能無欠とは思わないが、Macに はもうちょい自由が欲しいw。

mencoderだけで全部済めば楽なのだがなぁ。
で、上記スレ。Re: h264+aac in lavf mp4という表題の通り、mencoderの-of  lavfについてだ。このへんとかこのへんの続き臭い。読まねば。

/*/

画質について

手許ではインタレ解除とデノイズに執着してmencoder(上記2.3)。横幅640固定の1000kbps,2パス。
640x352だとPのavg QPが下手すっと15切るからかなり過剰画質。640x480はだいたい20プラマイ2程度。
bpp(bits per piccel)という尺度を使うと、
bpp = vbitrate * 1000 / (width * height * fps)
縦横(16:9) ピクセル数 bitrate fps bpp
640x352 230,400 1024 23.976 0.19
854x480 409,920 2048 23.976 0.21
いわゆるWVGA(下段)とそんなに画質差はないハズだ。少なくともx264設定を弄ったときのに結果は似た傾向が出ると思われ。

bppはxvidでは0.20〜0.25程度あれば十分とされる。どうも経験則らしい。開発が進んだ現在ではもっと少なくて良いだろう。x264の適正値 をまとめたものは見た事が無いが、ffmpegXのビットレート計算機で数字が緑になるあたりが近いと思われ。
posted by ばる at 01:32| Comment(0) | TrackBack(0) | mencoder-x264 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/15176381
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。