2005年09月01日

妖精現実さん8/31の記事コピペ::[SNOW] 5/3 wavelet 2パス で XviDには勝てるが…

妖精現実8/31の記事コピペ
元ネタには画像がある。

[SNOW] 5/3 wavelet 2パス で XviDには勝てるが…
2005年8月31日


[[サンプル画 像]]

Huffyuv RGB 圧縮前のソースです。

[[サンプル画 像]]
XviD: 1.1.0 beta2, 2200.4 kbps: 2-pass: MPEG, VHQ4 (also for bvop), qpel, Chroma, Trellis, No Turbo, No Cartoon mode
圧縮時間、再生時負荷、安定性などトータルでのコストパフォーマンスは最高のXviD。 300%で1コマずつ調べると微細なブロックノイズが出てるが、ハイモーション・シーンでこの程度は人間の目では見えない。

[[サンプル画像]]

SNOW: dev-CVS-050813-01:18-3.4.4, 2199.9 kbps: 2-pass: cmp=SSD+Chroma, pred=5/3 wavelet, last_pred=3, qpel, v4mv
細部のテクスチャが冴えているが、再 生時負荷もものすごい。ソフトカラオケと合わせると、P4 3G+で100%サイズでさえコマ落ち。現在のマシンではウェーブレットのqpelはきつい。

[[サンプル画像]]

x264: revision291: 2198 kbps: 2-pass: me 6, umh 64, bframes 6, pyramid, ref 15, analyse all+8x8dct, temporal, weightb
x264は軽い。全画面でソフトカラオケもできる。XviDのようなブロックノイズは消されていて一見きれいだが、デブロッキング でのっぺり、と両刃の 剣。アニメだとあまり気にならないが

XviD は一応の最善設定だが、300%に拡大すると、微細なブロックノイズが確認できる。 MPEGの宿命で仕方ない。 ウェーブレット・ベースのSNOWには、この問題はない。 x264と、ほぼ互角だが、再生時負荷が違う。SNOWに比べるとAVCははるかに軽い

実写はデブロッキングと相性が悪いが、アニメはデブロッキングと相性が良いことから、 基本的に、アニメではAVCが有利。とはいえ全然未完成のくせに、完成度の高い XviD を越えられるのは前途有望だ。

まだ基本的な部分もできてないSNOWだが、特に13/7 waveletはバグだらけで画面が破綻、まったく使い物にならない。 比較関数はSSDかSAD。比較関数の5/3 waveletと9/7 waveletは良くない。 SSDの方がSADよりわずかに良い感じだが微妙。

「9/7 waveletのqpelオン」が最善手とも思えるが、残念ながらコーデックのバグで正常動作しない。 chroma motionのオンオフと無関係にv4mvがオフのとき、qpel有効ではエンコードに失敗する。 qpelかつv4mvではエンコードはできるが、 9/7 waveletを使った場合、横の点線または、青い横の実線のアーティファクトが散在、実用にならない。 つまり事実上、9/7 waveletではqpelが使えない。 9/7 waveletのqpelオフも、コントラストが強い横エッジにそって横線アーティファクトが出る。 消去法で、5/3 wavelet(+qpel)(+v4mv)(+chroma motion) しかない。

アニメ特有かもしれないが、2パスで同じサイズに作った場合、フレームによっては、qpel無効の方が良くなるケースがある。

実験はmplayer2005.08.13で 行った。 比較サンプルは配布できないが、 下にコマンドを書いておくので、 アニメの1分半のOPを映像のみ24MBくらいで作って、XviD などと比較したら良い。

[[以下、適当に改行を挟 んだ。原文には無い]]

@rem <1st Pass>
mencoder "input.avs" -ovc lavc -passlogfile "pass.log" -lavcopts vcodec=snow\
:vstrict=-2:vpass=1:pred=1:cmp=257:subcmp=257:mbcmp=257:last_pred=3:qpel:v4mv:vqscale=2.0 \
-of avi -ffourcc SNOW -o "snowq2.avi"

@rem <2nd Pass>
mencoder "input.avs" -ovc lavc -passlogfile "pass.log" -lavcopts vcodec=snow\
:vstrict=-2:vpass=2:pred=1:cmp=257:subcmp=257:mbcmp=257:last_pred=3:qpel:v4mv:vbitrate=2200 \
-of avi -ffourcc SNOW -o "snow.avi"

@rem x264
x264 --pass 1 --keyint 240 --min-keyint 6 --bframes 6 --b-pyramid --ref 15 --filter 0:-1 \
--bitrate 2200 --qpstep 12 --vbv-maxrate 10000 --stats "stats.log" --analyse all --8x8dct \
--direct temporal --weightb --me umh --merange 64 --subme 6 --cqm flat --fps 23.976 --progress \
-o NUL "input.avs"

x264 --pass 2 --keyint 240 --min-keyint 6 --bframes 6 --b-pyramid --ref 15 --filter 0:-1 \
--bitrate 2200 --qpstep 12 --vbv-maxrate 10000 --stats "stats.log" --analyse all --8x8dct \
--direct temporal --weightb --me umh --merange 64 --subme 6 --cqm flat --fps 23.976 --progress \
-o "output.mp4" "input.avs"
x264の例で、このモードではたぶん --vbv-maxrate は無意味だが一応。デブロッキングを0:-1にしたのはデフォだと完全に消えなかったので。
、、、見える、わたしにも話のスジが見える ぞ!

■XviDの設 定推測
XviD 1.1.0 beta2, 2200.4 kbps: 2-pass: MPEG, VHQ4 (also for bvop), qpel, Chroma, Trellis, No Turbo, No Cartoon mode
妖精さんの最善設定という事だが、記載されてないので、推 測で再現。
-ovc xvid -xvidencopts \
bitrate=2200:pass=「1と2」:quant_type=mpeg:vhq=4:max_bframes=1:bvhq=1:\
qpel:chroma_me:chroma_opt:trellis:hq_ac:nocartoon \
不明箇所、考察など
  • 1stのTurboの切り方不明。-xvidencoptsに見当たらない。
  • max_key_interval:削った。SNOWの方には書いてない為。デフォルト=fpsの10 倍になる。
  • max_bframes:1のまま。デフォルトは2。2以上だと再生できない機器類があるらしい。
  • chroma_opt:残した。見かけの画質を上げるがPSNRは下がる。書かれているのは視力での比較だけで、数値比較がない 為。
  • 素材解像度、fps。
    • 720 x 480, 24000/1001fpsなら、bpp=0.266。0.25超えは、ビットの無駄とされる範囲。しかし、差は僅かなので実験目的として妥当。
    •  30000/1001fpsならbpp=0.212。0.2「まずまずだがブロックノイズが見え る」範囲。300%拡大でブロックを云々するには不適。
    • そもそも本文中にアニメとある。比較サンプルを配布できないともある。
    • 従って、MPEG2-Main Profile(720 x 480), 24000/1001fpsのアニメDVD。少なくともそれ相当。と、今見たら画像が追加されてる。
  • 素材も結果も720x480のまま見比べている?
常用設定との違い
  • cartoon:一応常用してるが、素材映像が細かい場合、テクスチャバリバリのCGとか、なんか背景が和紙だとかの場合は切っ ている。
  • qpel:非対応の家電再生機があるとか効果不安定とかで、使った事が無い。これは自分の目で確かめた事が無い。
  • 最大の疑問は-vfチェイン。-xvidencopts以外の部分、-vfや-ofpsはSNOWのコマンドにも無い。
    • SNOWの入力素材の拡張子.avsはAviSynthと いうビデオデオ・ポストプロダクション用ツール。win専用、機 能もなんかすごそう。
    • MacではJES Deinterlacerが有名だが、まともに使えた事が無い。linux用でなんかないのか。
■SNOWとは なんぞや
SNOW: dev-CVS-050813-01:18-3.4.4, 2199.9 kbps: 2-pass: cmp=SSD+Chroma, pred=5/3 wavelet, last_pred=3, qpel, v4mv
XviD は一応の最善設定だが、300%に拡大すると、微細なブロックノイズが確認できる。 MPEGの宿命で仕方ない。 ウェーブレット・ベースのSNOWには、この問題はない。
そういえばmencoderのソースにsnowてのがあっ て、これ妖精現実に書いてあったヤツだよなぁ、と思ってたんだけど、マニュアルサイトになんも書 いてないんでそのままだった。今確認したらhttp://www.mplayerhq.hu/DOCS/man/en/mplayer.1.htmlが 復活してる。言祝ぎつつコマンドを見ると、libavcodecファミリーだったのか。libavcodec-AVCとか、libavcodec- 264とか出てこねぇなと思ってたら、あらあらそうゆうことなの。

って事で記事中の1stパスのみ実験。MPlayer OSXで再生OK。G5,2Ghz dualだが、100%表示でそこはかとなく再生が遅い気がする。'Show statics'は効かない。素材は15秒の車のCM。-vf抜きなのでインターレース縞がシマシマ。ソフトカラオケなんてできない。画質も vqscale=2で良いも悪いも無い。ffmpegX0.0.9t版 mencoderで作ってMPlayer OSXで再生できたってだけ。

ffmpegXの使い始めからXvidオンリーなのでコマンドの意味がよくわからない。libavcodec系はオプションコマンドが共通なので潰しが効 くのだが。

、、、、ってこれ、.mp4にいれられるのだろうか。MKVtoolnixのMac版ビルドを配布してた人はMac手放しちゃったとかで、更新止まってる し。


■X264
x264: revision291: 2198 kbps: 2-pass: me 6, umh 64, bframes 6, pyramid, ref 15, analyse all+8x8dct, temporal, weightb
x264は軽い。全画面でソフトカラオケもできる。XviDのようなブロックノイズは消されていて一見きれいだが、デブロッキング でのっぺり、と両刃の 剣。アニメだとあまり気にならないが
記事でmp4出力に使っているx264というのは、mencoder の外部ライブラとしてx264をビルドするとできる。mp4出力機能はその前にgpacというライブラリのビルドが必要だが、自分は 成功していない。したがって、自分の環境ではrawvideo(拡張子.264)しか出力できない。
ffmpegX0.0.9t版mencoderも一旦rawvideoを吐いてmp4boxでmp4にmuxしてるから、困難なのかも。でも 'mp4box -version'て打つとgpacて出てくるぞ。

画質については、一 昨日のエントリで、デブロッキングは画面を水槽越しに見るような印象。新しいマクロブロックサイズは物体が歪んで見える。とか書い た。

Xvidまでのデブロックフィルタとの違いは、x264には隣接ブロックとの画質差を少なくしようとするオプションが多く、新しい小さなマクロブロックサ イズとの絡みで、ビットレートが不足すると画面全体を水を含んだ刷毛で叩きまくったような、印象派の絵画調になる。それはそれで趣深いが(なんか光沢も出 て綺麗だし)、まぁ、毎回オモムキフカイですねと言ってるわけにもいかないよな。

これを切ったら切ったでブロックノイズが出るわけで、最高画質はロスレスなわけで、妥当なビットレートはどのへんなのよってのは 大変そうだ。

なお、x264を起動したらこんなんでてきた。
Infile can be raw YUV 4:2:0 (in which case resolution is required),

or AVI or Avisynth if compiled with AVIS support (no).
あるんだな?linuxでビルドできるやつがあるんだな?
posted by ばる at 23:30| Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

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

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

コメント: [必須入力]

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


※画像の中の文字を半角で入力してください。

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

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