カテゴリー「エンコード関連」の13件の記事

2010年10月30日 (土)

VFRなmp4を綺麗かつ手軽に再エンコしてみる思索

 

 前置き 

Dscf6130

かつてWalkman/iPhone 3G新調時に再生可能な動画の作成方法を調べまくり、当時は「Walkmanのまとめwikiで公開されていた携帯動画変換君・改(と言ってもini弄って外部プログラム導入しただけのものだけど)を使う」というところに落ち着いていた。

最初こそポータブル機をフル活用しようとあれこれやっていたが、気付くと動画なんて見なくなってしまっているのはいつものことで(^-^; 長らく放置プレイ状態にあったが、ふとしたことでiPhoneで動画を扱う機会が再来。久々に上記変換君を引っ張り出し使ってみたところ、エンコにある程度慣れてしまった今では色々と粗が目立つ。あまりにあんまりであったため、色々と試した結果最終的に至った結論をここに書いておこうと思う。

 

 課題 

New_3gp

まず画質とか処理速度とか以前に、今更ながら気付いた一番の問題点が「自分の残しているmp4動画はすべて自動フィールドシフトでインタレ解除しているため、VFR(可変フレームレート)になっている」ということ。上記変換君ではVFRなんて当然考慮されていないので、当時満足していた変換動画は余すことなくカクカクしていた。なんで気付かなかったあの頃の自分orz

これに加えてリサイズ処理のボケ具合も大きく、「フレーム数を全く弄らずに再エンコ出来ること」「優秀なリサイズアルゴリズムが使えること」そして「H.264(理想はx264)が扱え詳細なエンコード設定が出来ること」を条件とすると、便利そうな動画変換ソフトは軒並み対象外に。あまり手間を掛けたくなかったので常用しているAviUtlは使わない方向で考えていたが、結局今回もこいつに頼ることになってしまった。

 

 思索 

用意するものとして、AviUtl側は本体の他に拡張x264出力(gui)[x264gui.auo]、MP4 File Reader[mp4input.aui]、Lanczos 3-lobed 拡大縮小[lanczos3.auf]のプラグイン3点。そしてneroAacEnc.exeとDtsEdit.exe。※saraphyさんのサイトがダウンしていて上記がすべて揃わない人は、当記事最下段[最後に]にミラーへのリンクがあるので、そちらも要確認。

1_2

上記をすべてインストールしたら、まずファイル>環境設定>システム設定で「追加読み込みしたファイルのfpsを変換しない」にチェック。あとは普通に再エンコしたいVFRなmp4をAviUtlでファイル>開く。DirectShow File Reader プラグインも入れているような場合は、ファイル>環境設定>入力プラグイン優先度の設定でMP4 File Readerの優先順位が前者の上に来るようにしておくこと。

2

読み込んだらAviUtlデフォルト設定の「サイズ」やら「フレームレート変更」やら「インターレースの解除」やらの設定をあらかた“なし”にして、Lanczos 3-lobed 拡大縮小で最適な解像度を設定。上記はiPhone 3Gの例で480x270だが、再生したいデバイスのモニタ解像度に合わせて適宜調整を。

3

あとはエンコするだけなので、ファイル>プラグイン出力>拡張x264出力(gui)>ビデオ圧縮でx264の設定画面を出し、ビットレートタブでプロファイルをBaselineにして適用をクリック。

4

コマンドタブに移動し、空欄に-- level 3と記述して画面に反映をクリック。これだけでとりあえずはBaseline profile、level 3準拠の比較的綺麗なmp4が出来る。なお、これはWalkmanやiPhone 3Gにも共通する割とメジャーなラインだと思うが、もしprofileやlevel要件が異なるようならそれに合わせてやればOK。

実際にエンコ→再生してみて画質に不満があるようなら、ここに「ビットレート品質を上げる」「mb-treeレート制御のチェックを外す」という作業も追加するといいだろう。ただ下手に弄るとデバイスの再生可能要件から外れてしまう恐れがあるので、上記以外は触らない方が吉。

5

拡張設定タブに移動し、自動フィールドシフトv7対応にチェックが入っているようなら外しておく。右側の音声設定ではneroAacEnc.exeのパスを指定し、設定はQ-Based AAC 125~~190~kbpsあたりを推奨。音声を再エンコしたくないなら、予めYamb(mp4box)なりで映像と音声を分離しておき映像のみエンコ→分離した音声と合成がベストではあるが、いささか面倒でもある。右下の「mp4box.exeの指定」は、してもしなくてもどちらでもいいだろう。

6

OKを押して設定画面を閉じたら、ファイル名を付けて保存でエンコが始まる。しばらくかかるので、終わるまで放置。

7

AviUtlでのエンコしている間に、DtsEdit.exeにて変換元VFRmp4からタイムコードを抽出しておく。抽出だけならmp4を直接DtsEdit.exeにD&DしてやるだけでOK。mp4と同フォルダ内にタイムコード(txt)ファイルが自動生成される。

これはmp4input.auiで入力されたファイルが平均fps値を参照したCFRとして扱われてしまうことへの対処。そのままでは所々音ズレが生じてしまうが、フレーム数自体はオリジナルと不変であるので、元のVBR情報(=タイムコード:各フレームごとの絶対時間)に補正してやることで音ズレは解消される。

8

エンコが終わったら、再びDtsEdit.exeを使って先程抽出したタイムコードをエンコしたmp4に埋め込む。本来DtsEdit.exeはコマンドラインにて使用するものなので、上記のように「DtsEdit.exeのパス -tc “タイムコード(txt)ファイルのパス” “エンコしたmp4のパス”」と記述してやる必要があるが、パスの箇所は該当ファイルをコマンドプロンプトのウィンドウ内にD&Dしてやれば勝手に記述されるため、手順としては①DtsEdit.exeをD&D②“ -tc ”と記述③タイムコードファイルをD&D④スペース⑤mp4をD&DでOK。

9

あとはエンターキーを押すだけで、mp4ファイル名末尾に“_tc_input”が付加されたタイムコード埋め込み済みmp4ファイルが同フォルダ内に自動作成される。もし自分でファイル名や出力パス決めたいなら“ -o ”コマンドで指定も出来るが、手間を考えると自動作成された“_tc_input”付mp4を弄る方が早いだろう。もし処理に失敗するようなら、コマンドに間違いがなかったかの確認&上記のように“ -no-dc”の追記(初期ディレイカットの無効)を試してみて欲しい。

 

 最後に 

以上、初心者でもわかる(と思う)VFRなmp4再エンコ思索終了。今回は“手軽さと綺麗さ(画質)のバランス”ということが前提にあったので、突き詰めれば「フィルタの併用」「x264の詳細設定」「batを使った作業効率化」等々改善の余地は多分にあるが、まあポータブルデバイス向けの再エンコだし、そこまで拘る必要もないように思う。

ただ現在、肝心のx264gui.auoやmp4input.aui、DtsEdit.exeを開発、配布しているseraphyさんのサイトが数カ月間サーバー落ちっぱなし状態にあるため、すでに上記ツールを入手している人以外はそれらを揃えるのに苦労するかもしれない。とりあえず当記事記載時点においては、x264gui.auoはこちら、mp4input.auiはこちら、DtsEdit.exeはこちらから、それぞれ入手可能となっている。

 

…ちなみにだが、(たまにならともかく)頻繁に動画を持ち歩くような人は、いちいち↑こんなことやるよりサクっとフルHD再生できるAndroidデバイスでも買った方が幸せになれると思う。GALAXY S欲しいわ( ̄o ̄;)ボソッ

 

 

   

| | コメント (2) | トラックバック (0)

2010年8月28日 (土)

何気にかなり使いやすい音楽ファイル変換ソフト「EcoDecoTooL」

 

 前置き 

今まで音声変換にはaacなら「neroAacEnc」を「Simple NeroAacEnc GUI」で、mp3なら「Lame」を「Lame Ivy Frontend Encoder」でといったように、変換元ファイルをwavにした上でそれぞれのGUIツールを使用してきた。が、知らないうちにかなり便利なマルチコーデック対応の音声ファイル変換ソフトが出ていたため、それを紹介しておこうと思う。

 

 紹介 

1

その名も「EcoDecoTooL」。AAC/HE-AAC/AC-3/FLAC/Monkey's Audio/MP2/MP3/Musepack/PCM/ADPCM/Real Audio/TTA/WMA/Vorbisと、ほとんどの音声フォーマットの入力に対応しながらその画面は至ってシンプル。基本は出力形式と基本設定をドロップメニューから選択し、音声ファイルを画面内にD&Dするだけで、自動的に入力ファイルと同フォルダに変換出力される(出力フォルダの変更も可能)。

2

出力も汎用性の高いwavの他、neroAacEncを使ったaacやLameを使ったmp3のエンコード出力に対応し、入力可能なフォーマットに比べれば少ないながらも実用的な機能を誇る。おまけに動画から音声を抽出することも可能。

3

aac出力設定画面。aac出力の際にはEcoDecoTooL.exeと同フォルダ内にneroAacEnc.exeを配置してやる必要がある。設定は [AVR / CBR / VBR] と [LC-AAC / HE-AAC / HE-AACv2] 、そしてABR、CBRの場合は [16-320kbps(18段階)] から、VBRの場合は [0.0-1.0(11段階)] からビットレートを決めるだけのシンプルなものだが、2passなど細かなことを言わなければ必要十分だろう。出力形式はm4aで、オススメ設定はLC-AACでVBRの0.5(およそ190kbps相当)かCBRの128kbps。

4

こちらはLameによるmp3出力設定画面。aac同様lame_enc.dllをEcoDecoTooL.exeと同フォルダ内に配置し、 [AVR / CBR / VBR] と、ABR、CBRの場合は [16-320kbps(18段階)] から、VBRの場合は [Q9-Q0(10段階)] から選択するだけ。オススメ設定はCBRの320kbpsかVBRのQ2(およそ190kbps相当)。なおmp3やwavは音量レベルも設定できるので、ノーマライズ用途としても使用可能(入力と同じ音量も可、音量を直接加工しないためやり直しの効くリプレイゲインにも対応)。

5

試しにwavファイルをaacに変換しているところ。複数ファイルの連続出力にも対応し、結果は右上に表示される。変換中にはCPU使用率が変更可能で、すべてが終了すると「チン」と言ったレンジのような音と共に自動的にアプリが終了する。

 

といったように、変換入門向けのシンプル・イズ・ベストな構成ながら、なかなかに使い勝手の良いソフトとなっている。何よりすべてが日本語表記で、なおかつ日本語名のファイルも何の問題もなく変換してくれるのはかなり嬉しいところ(海外のGUIツールやコマンドプロンプトを使う場合、日本語名のファイルは受け付けられないことが多い)。

その他にもセットアップ不要でレジストリを弄らないzip形式採用、変換後のファイル名が重複する場合は自動で回避、デスクトップにショートカットを作り、そこにファイルをD&Dするだけのコマンドライン・ダイレクト変換に対応(設定は最後に記憶されたものを自動適用)と、ビットレートをより細かく設定したい、特殊なオプションを使いたいというコアなユーザーでなければ、まさに至れり尽くせりの仕様と言えよう。

 

 

" + __flash__argumentsToXML(arguments,0) + "")); }" reinitswf="function () { return eval(instance.CallFunction("" + __flash__argumentsToXML(arguments,0) + "")); }">

| | コメント (0) | トラックバック (0)

2010年8月25日 (水)

動画ファイルの音量を平滑化してみる思索

 

 前置き 

地デジなどのテレビ番組では一応平均的な音量が決まっているとは言え、やはり番組によっては音量の小さいものから大きなもの、中には音量の最大~最小差が大きく視聴中でも音量の上げ下げが必要なものすら存在する。

今までは自分に“優先すべきは原音に忠実であること”と言い聞かせ、特に音量部分には手をつけずに来た。が、現在放送中のアニメ「今日からマ王」や「PEACE MAKER鐵」がどうにも聞きづらく、また録り逃し回をDVDで補完しようとするとどうしてもその分だけ地デジ番組との音量差が(思いのほか大きく)出てしまうため、いい加減なんとかしようと思い立ち今回の思索へ。

 

 地デジの平均的な音量に合わせる方法 

1

使うソフトはSoundEngine Free(フリーソフト)。なお普段からこのようなソフト使ってWAVを弄り回している人にしてみれば、「何を当たり前なことを」と感じるような超基本的なことしかやっていないので、初心者以外は問答無用に引き返したほうが吉。

2

まずは何より先に、ファイルを読み込むと自動再生してしまう機能を停止させておく(いちいち再生されてもアレなので)。方法は上記の通り[設定>演奏>開くと同時に再生]のチェックを外すだけ。

4_2

次にグラフとメニューの間にある編集タブの[解析]を押し、TSであればBonTsDemuxなりで分離した、音量調整したい目的の音声ファイル(wav)を画面内にD&D。するとそのファイルが読み込まれ、自動的に解析が行われるので暫し待つ。

3

こんな感じの画面になったら、まずチェックすべきは解析結果のオートマキシマイズ平均音量。これが実際に聞こえている音量レベルの指標であり、自分が調べたところテレビ番組は平均で-22.00前後であった。上記サンプルファイルは-19.70なので、他の番組に比べ音量が大きいことが分かる。

5

そこで[音量>オートマキシマイズ]をクリック。なおこの項目は、解析を行わないとグレーアウトしており選択できないようになっている(ノーマライズでも似たようなことが出来るが、こちらは最大音量を揃えるだけなので、実際の視聴音量は揃わない可能性がある)。

6

出てきた設定画面でレベルを-22.0に設定し、OKをクリック。

7

オートマキシマイズ処理→処理結果再解析と行われ、上記が終わったところ。オートマキシマイズ平均音量が-19.70から-22.00へ変わっており、それに伴い最大音量と平均音量も変わっている。必要に応じて編集タブの[再生]にて視聴を行い、問題ないようなら保存ボタンクリックで完了。あとはエンコード編集時に読み込ませるなり、TMPGEnc MPEG Editor 3のMPEGツールを使って映像(m2v)と合成させるなりご自由にどうぞ。

 

 同ファイル内の音量差を少なくする方法 

要は最大音量と最小音量に差があり、場面によってセリフが小さすぎて聞きづらい、またいきなり大きくなって困るというときの対処法。

8

今度は解析する必要がないので、起動してそのままD&Dでファイル読込→[音量>コンプレッサー]をクリック(こちらもリミッターが似たような機能を持つが、小さな箇所を底上げしつつ大きな箇所を下げたい、ということでコンプレッサーを選択)。

9

とは言え不自然にならない範囲で仕上げたいということで、今回はリミッター的な要素も兼ね揃えたソフトリミッターを選択しOKをクリック(スレッショルドが-15だとあまり効果がない場合も多いので、状況に応じて要設定。-18くらいまでは下げた方がいいかも)。

10

あとは先ほどと同様にコンプレッサー処理が始まるので、作業バーが完了するまで待った上で保存ボタンをクリックして完了。

 

 最後に一言 

使いこなせれば更に設定を煮詰めたりスクリプトやらで作業を効率化したりも出来るが、とりあえず上記でもある程度自然な補正結果が得られると思う。もしこうした音量問題で困っており、適当な解決法が見つからないようなら、是非一度試してみて欲しい。

 

   

| | コメント (0) | トラックバック (0)

2010年3月24日 (水)

TSを5.1ch音声のままMP4にしたい思索

Ccsakuraps3cap

今まではTSの5.1ch(aac)番組をエンコする際、BonTsDemuxで扱いやすい2ch(wave)に変換することでとりあえずのmp4動画へとしてきていた。

だが今回、BS2の劇場版カードキャプターさくらが5.1chで放送されたことをきっかけに、5.1ch音声のままmp4コンテナに収めることも覚えておいた方がいいなということで今回の思索。

そもそも自分の環境では5.1chくらいはかなり前から揃っていたのだが、地デジでは5.1chソースが少ないこと、また5.1chでもその効果が微妙な作品が多かったことから、あえて調べようとすらしていなかったのがこれまでの現状で、もっぱらPS3やXbox360のゲーム専用と成り下がっていた。しかしこのカードキャプターさくらは、アニメながらに四方八方から音が出る出るwこれはそのまま残すべき、と思わせるだけの力があった。

さて本題に入る前にちょっとわからないことがあったので調べてみたのがこちら↓

 

①何よりmp4コンテナに5.1chのマルチチャンネル音声が格納できるのか?

②出来たとして、2chPCで普通に再生できるのか?

③PS3ではちゃんと5.1ch再生されるのか?

 

①はちょっと調べたら、MP4boxの更新の中で格納機能がついたらしいことが判明。

②は普通にPCで視聴できること、③は5.1ch再生環境を活かすための手段が現状これしかなかったため、これが不可ならそもそもやる意味がない、ということで調べてみた。まあ検索段階ではあまり確証を得られなかったが、結果として②③もなんの問題もなかったことだけは先に明記しておくことにしよう(本記事トップに貼ったPS3再生画像参照、きちんと5.1ch出力されていることがわかる)。

 

ではここからが本題。

自分なりに色々と試した結果、最も有力な方法として以下の2パターンに落ち着いた。

 

[1] TSを映像部分を先にエンコ、音声部分は分離時に6つのwaveにsplitし、それぞれを映像の編集内容と同期。これをひとつの5.1ch(6ch)waveに格納し、そのままaacにエンコ。最後に映像部と結合(mux)。一般的にはこっち。

[2] PS3にてTSを再生し、PV4でキャプ。その際PS3側の音声出力設定でaacにチェックを入れておき、5.1chのままDVファイルに格納。AviUtlでエンコする際、x264guiにて音声出力をext_bs.exeにて処理してやれば、映像に合わせて編集済みの5.1ch音声(再エンコなし)がそのままmuxされる。BS2のようなSDものの場合は、PS3によるアプコンの恩恵も受けられるためこちらの方が有利。作業工程も[1]より圧倒的に少なく、[1]で上手く映像と同期が取れない時の最終手段としても重宝する。

 

でまあその方法だが、[1]から順に記載していく。

[1]1st TSの映像と音声をdemux

BonTsDemuxを使う。その際設定を変えて2回に分けてやっておくと吉。

1

最初がこちら。ほぼデフォルトの状態で、純粋に映像+音声に分離する。後の検証、保険として、ここでの出力音声は2ch:wave

2

次がこちら。今度は音声のみで、メインの強制5.1ch(split)を選ぶ。なお最終的にどうしても映像と音声の同期が狂ってしまう場合、右側のVideo Frame補完にチェックを入れることで解決できることもある。今回のケースでは特にチェックを入れなくても同期出来たので、通常はノーチェックで良いだろう。同期出来ている状態でチェックを入れても悪影響でしかない。

 

[1]2nd AviUtlで映像部の編集

ここではメインではないためAviUtlの使い方やらx264でのエンコ方法やらは省くが、重要なのは以下の2つ。

・一応音声読み込みにて2ch:waveを読み込んで、映像と一緒に編集しておく。音声の波形表示にて映像と同期が取れているかも一応確認。

・一通りの編集が終わったら、エンコせずに編集プロジェクトの保存を行う。その後エンコを行うが、あえて映像のみにしないで、音声も一緒にエンコ→muxしてしまった方がいいように思う(保険的な意味で)。まあmp4のdemuxなんていつでも出来るし…。

 

[1]3rd splitした6つのwaveをそれぞれ編集

[1]2ndにて保存した編集プロジェクトを使う。まずはsplitした6つのwaveを見てみよう。ここではあえて入力ファイル(TS)の名前を“a”としておくと、

a-C.wav(定位:センター)

a-FL.wav(定位:フロントレフト)

a-FR.wav(定位:フロントライト)

a-LFE.wav(定位:ウーファー)

a-SL.wav(定位:サラウンドレフト)

a-SR.wav(定位:サラウンドライト)

という6つに分かれていると思う(それぞれの定位はカッコ内を参照)。

まずは[1]2ndの編集に使われたwave:2ch(仮に“a.wav”とし、上記6waveと同一のフォルダにあることを前提とする)のファイル名を“a-2ch.wav”とでも変更しておき(いらないようなら削除してしまっても構わない)、上記6つのwaveのどれかひとつのファイル名を“a.wav”に変更し、AviUtlで先ほどの編集プロジェクトを開く。

そこで「ファイル>WAV出力」を選び、オーディオ圧縮を選択。

3

上記のように設定(16ビット:モノラルPCM)し、ファイル名を元のファイル名(仮に“a-C.wav”を“a.wav”と変更して読み込んでいた場合は、“a-C.wav”)にして出力。これと同作業を6つのwaveすべてに行うことで、すべてのwaveが映像と同期した状態に編集されたことになる。

 

[1]4th 6つのwaveを1つの5.1ch(6ch)waveに格納

これにはBeSweet(リンクページ内右上のstable:安定版かbeta:ベータ版をクリックした先にてDL可)と、そのGUIツールであるBeLight(リンクページ内DownloadクリックにてDL可、バージョンはお好きなものをチョイス)を使う。とりあえずはDLしたBeSweet.exeをBeLight.exeと同フォルダに配置しよう。念のため、解凍したBeSweet.exeと同フォルダ内にあるすべてのファイルをBeLight.exeと同フォルダに移動させておくと吉。

4

BeLight.exeを起動したら、「Options>Language>Japanese」で日本語表示にしたあと「ファイル>多重化ファイルの作成」をクリックし、上記のウィザードを表示させる。出力形式の選択で「WAV」を選択し、「この.muxファイルを入力ファイルとして自動的に読み込みます。」にチェック。あとは右上の図のFL、C、FR、…をそれぞれクリックし、[1]3rdで編集した該当ファイルを各々指定。「保存」をクリックし、出力先と出力ファイル名(“a-5.1ch.mux”とでもしておけばよい)を決めたら「OK」を押す。

5

上の四角いスペースにチェックの入った状態で先ほどのmuxファイルが登録されているはずなので、上の画像ように設定(左側の設定はお好みで、ノーチェックでもOK)し、「処理開始」を押せば、先ほど設定した.muxファイルと同名の.wavファイル(上記の例だと“a-5.1ch.wav”)が出力される。なおこの先のMP4boxやneroAACEncでもそうだが、ファイル名やフォルダ名が日本語だったりすると上手く処理できない(読み込めない)可能性が高いので、その場合は上記例のようにファイル名を“a”などとし、デスクトップにでも“test”などの簡易的な臨時フォルダを作ってそこにコピーしてやるといいだろう。

※今回はwave出力→aacへと変換(次の[2]5th)としたが、普通はBeLight(BeSweet)だけで5.1ch:aacに直接出力出来る。ただなぜか自分の環境ではaacがどうしても出力されなかったため、そうした人のための記事だと思ってもらいたい。普通に出力できる人はそちらでいいだろう。

 

[1]5th 5.1ch:waveを5.1ch:aacに変換

ここから先は簡単。neroAACEncを使ってそのまま上記で作成した5.1ch(6ch)waveを普通にaacエンコしてやれば、5.1chのaacが出来上がる。なおneroAACEncの使い方についてはこちらの記事を参照。

 

[1]6th 映像(mp4)と音声(5.1ch:aac)をmux

この際、[1]2ndで音声をすでにmuxしたmp4を作成していた場合は、(これも念のため)別フォルダにコピーしておき、MP4boxで音声と分離(demux)したのち、上記で作成した5.1ch:aacと再度結合(mux)する。MP4boxの使用にはYambを使うか、muxのみは先ほどと同様こちらの記事を参照。

 

[1]7th 完成と検証

これで5.1ch:aacなmp4が出来上がったと思う。しかし5.1chソースの編集は何かと同期ミスが起こりやすいようなので、出力されたmp4を再生して要チェック。もし同期が取れていないようなら、[1]1stのVideo Frame補完やAviUtlの音声の位置調整などを試してみよう。それでも解決しないようなら、素直にここでの5.1chは諦めて最初にエンコした2chなmp4で我慢しておいた方が賢明だろう。一応2ch:waveでもmuxしておいた方がいいと書いたのは、このためである。

ただ、それでもどうしても5.1chが諦めきれないという場合、もうひとつの[2]でなんとかなる場合もあるので、そちらも紹介しておこう。

  

[2] PV3/4を使う

FriioやPT1/2によりTSそのものの取り込みが可能になる以前、大変重宝がられたアースソフトのPVシリーズ。それが今回も活躍する。

このPVシリーズ、音声の通常デコードはwaveで取り込んだものにしか対応しないのだが、長年の台頭から数々の便利なソフトが登場し、ビットストリーム出力(TSならaac出力)された音声を格納したDVファイルからも、そのままaacを取り出すことが可能となっている。それを利用したのがこの方法。

使うのはおなじみAviUtlとx264guiのセット、それにext_bs.exeによる処理を加えてやることで達成する。ext_bs.exeの使い方はx264guiがGUIの役目も果たしてくれるので、こちらで設定してやれるだけでOK。

6

右側の音声設定で、エンコーダに「PVシリーズ AAC分離用」を選択し、ext_bs.exeの場所を指定してやればいい。あとは普通にx264エンコすれば、自動的に音声のmuxまで行ってくれる。当然5.1chなら5.1chのままで、しかも編集も反映されるので、どちらが楽かと言われれば文句なしに[1]よりこちらだろう。前にも述べたが、特に今回のようなBS2というSD映像の場合、PS3を用いることができるこちらの方がすべてにおいて有利なように感じている。

また仮に[1]で映像との同期が取れなくても、こちらでは再生機側がきちんと再生さえしてくれれば問題ないため、改善される可能性が極めて高いという点も特筆すべき事項だろう。

 

以上、よりオーソドックス方法として[1]を中心に書いてきたが、「あくまでPV3/4を持っていれば」という前提が必要となるものの、「より手軽に」という観点からなら[2]の方が実は現実的かもしれないという結論に。TS時代となった今でも、PV3/4は何かと使い道があることを再確認した今回の思索。PT1/2含め、時代は変わってもアースソフト様々である。

 

(2010/7/31追記)

どうせできないと思っていたのでやらなかったが、やってみたら5.1chAC3も普通にMP4コンテナに格納でき、またPS3とMPCでも再生できることを確認した。

WAVEは4GB制限があり、2時間を超える映画などには上記の方法では対応できないことがある(BeLightがRF64をサポートしていない?ことから、1つの5.1chWAVEファイルにする段階でぶつ切りになってしまう)ため、どうしても対策が打てないようならBeLightの段階で5.1chAC3にしてしまうのも手かもしれない。

 

| | コメント (3) | トラックバック (0)

2010年3月 6日 (土)

AviUtlの「透過性ロゴフィルタプラグイン」 ロゴが消える箇所への対処法

要はデジタル放送で付加された局ロゴを取るための作業ということになるのだが、初めて使った人がまず躓くであろう点が「ロゴのない部分だと逆に変に暗転したロゴが付加されてしまう」ことだと思う。

AviUtlとこの透過性ロゴフィルタの使い方さえ熟知していれば自己解決に至ることも可能であろうが、そこに至らなかった人のためにその対処法を以下に記載することにする。

 

まずはBS11放送アニメ『.hack//SIGN』から、10フレームのみをサンプルとして挙げてみる。※見やすいようロゴ部分のみを3倍に拡大表示済み。

1

この時点では放送時そのままのロゴが表示されている。

さてこれに透過性ロゴフィルタをかけてみよう。

1_2

このフィルタならではの特徴でもあるが、解析さえきちんとされたデータを使えばここまで綺麗に消すことが出来る。

しかしフレームを徐々に移動させていくと…

5

4フレーム目までは1フレーム目同様綺麗に消えているが、5フレーム目でうっすらと反転表示されたようなロゴが浮かび上がってくる。透過性ロゴフィルタを切ってみるとどうだろうか。

5_2

こちらもうっすら。つまりロゴがフェードアウトする、まさにその中間にあたる部分だいうことがわかる。

※なおBS11のロゴについては、このフェードアウト部分が1フレーム以内であるために、場所によってあったりなかったりするので注意が必要。今回は説明のため、あえてある部分を抜粋することにした。

一応更にフレーム移動させてみると…

6

6フレーム目から最終フレーム(10フレーム目)にかけて、今度ははっきりと暗転したような表示が続く。これは6フレーム目以降は完全にロゴが無くなっているためだ。ちなみにこちらも透過性ロゴを切ってみると…

6_2

当然のごとくロゴはない。

このサンプル動画の構成をまとめると以下の図のようになる。

71

ここで解決すべき内容をあげてみると、以下のようになる。

①ロゴのない部分だけ透過性ロゴフィルタを切る。

②フェード部分の対処。

 

まずは①からだが、結論から言うとAviUtlの一時プロファイル作成機能がその答えとなる。では実際に順を追ってやってみよう。

なお以下の解説は、あらかじめ透過性ロゴを適用した状態から始めるものとする。

1_3

※画像をクリックで別ウィンドウに等倍表示。

AviUtlでロゴの全くない6フレーム目を開始地点、10フレーム目を終了地点に設定し、編集項目から「選択範囲を新しいプロファイルにする」を選択する。

2

すると選択範囲のみ、画像のように#temp○[○]という表示になり、一時プロファイルが作成される。ここでは初めて作った一時プロファイルなので#temp1[1]となっているが、一時プロファイルを作る毎に○の中の数字は2、3、4、…と上がっていく。

また、試しに選択範囲外のフレーム(この場合は1~5フレーム)を選んでみるとわかるが、選択外のフレームにはこの表示はなく、デフォルトのプロファイル名が表示されている。

3

確認が出来たら先ほど選択した一時プロファイルのフレームに戻り(選択範囲内ならどのフレームでもOK)、ここで初めて「透過性ロゴ」フィルタのチェックを外し、非適用にする。この際「透過性ロゴ」の設定画面から、「プロファイル境界をフェード基点にする」にチェックをしておこう。 これは次に説明する、フェード部分の対処で必要な処理となる。

※追記 上記の「プロファイル境界をフェード基点にする」へのチェックタイミングですが、これだとデフォルトのプロファイル設定でノーチェックとなる可能性がありますので、AviUtlを起動したらすぐ(動画ファイル読み込み前)にチェックをしておくようにして下さい。一度チェックを入れたら以降はずっとそのままでOKです。

フィルタはプロファイル毎個別に適用されるため、これでデフォルトの1~5フレームでは「透過性ロゴ」がON、6~10フレームでは「透過性ロゴ」がOFFに設定されたと思う。なお作成される一時プロファイルの設定は作成される直前のプロファイル設定を踏襲(コピー)するため、その他の設定を最初から見直す必要はない。

 

これで①の対処は完了したが、まだ②のフェード部分の処理が残っている。

4

今度はフェード部分の1フレームのみの変更なので、該当部分の5フレーム目のみを開始&終了地点に設定し、先ほどと同様に「編集>選択範囲を新しいプロファイルにする」を選択。

52

前述したように、今度は2つめの一時プロファイルとなるので表示が#temp2[2]となる。

6_3

透過性ロゴの設定だが、これも前述したように一時プロファイルの設定は直前のプロファイル(ここではデフォルト)を踏襲するため、今回もすでに「透過性ロゴ」フィルタにチェックが入った(適用済み)状態になっていると思う。しかし今回の処理は、透過性ロゴを適用した上でその透過レベルを弄る必要があるため、チェックを外さずにFadeIn(Outでも可)を0→1に変更する。これで通常の透過率を50%にした「1フレームフェード」の設定は完了する。

ただ、今後のためにもここでひとつ注意して欲しいことがある。それは局ロゴによってはフェードするフレーム数が1フレームとは限らないということである。まあ具体名を言ってしまえばTBSがその最たる例(というか自分の環境ではTBSが唯一)なのだが、この場合は始まりと終わり(フェードインかアウトか)、およびその開始地点と終了地点を見極める必要があり、しかもフェード工程が透過性ロゴの規則性と一致しないため、完璧を求めるなら1フレームごと一時プロファイルにして設定を変更していく必要がある。

一応上記に該当する人もいると思うのでその場合の設定方法も書いておくが、FadeIn(Out)を使えない1フレームずつの処理の場合、「透過性ロゴ」フィルタ設定の「深度」を弄ることでなんとかなる。この場合はデジタル思考の規則性などは一切考えず、アナログ思考に切り替え、実際に目でロゴ部分を見ながら深度バーをスライド(主に左方向)させていき、上手く消える数値を見つけ出す。

しかしこの作業は、ロゴ自体が緩やかにフェードしている(動いている)ためすべてのフレームで完全に消すことが困難なことに加え、典型的なアニメひとつをとっても出だしとOP終了時、Aパートの開始時と終了時、Bパートの開始時と終了時、EDおよび次回予告の開始時と終了時と、8回×それぞれ10数フレームを処理する必要がある。すべてをやろうとするとこのアナログ作業だけで100回近くに上り、かなり現実的とは言い難い。すべてを残したい気持ちもわかるが、効率の面を考えるとTBSロゴのような場合

・基本的にロゴのフェード部分は(ロゴがない部分も含め)該当フレーム自体を削除することで対処。

※その際オーディオ波形を表示しておき、無音部分であることを確認しながらやると以下の作業が楽になる。

・都度削除5秒前くらいから再生ウィンドウで再生してみて、本編に著しい瑕疵が出ているような場合(音声の繋がり方に違和感があるなど)のみ、違和感がない程度まで削除フレーム数を減らし、ロゴが残ってしまう部分のみを手動で設定。

・画面が真っ白or真っ黒など、ロゴ自体が見えなくなっている箇所は最初から考えない。

などの妥協が必要だろう(最後は当たり前かw)。

 

さてこれで一通りの作業は完了したので、結果を見てみよう。

1_4

これが1フレーム目。単に透過性ロゴをONにしただけのデフォルトプロファイル。

4_2

そしてこの状態が4フレーム目まで続き…

5_but_fadein1

ロゴフェード部分の5フレーム目。透過性ロゴはONにしたままFadeIn=1にした、#temp2[2]の一時プロファイル。

6_4

完全にロゴが消えた6フレーム目。透過性ロゴをOFFにした#temp1[1]の一時プロファイル。

10

当然10フレーム目まで同じ。

これで1~10フレームすべてのロゴが消えたことになる。

 

最後にすべての処理をまとめてみた図がこちら↓

82

 

今回は説明用として10フレームのみをサンプルとして挙げたので一時プロファイルは#temp2[2]までしか作らずに済んだが、実際には二桁に近い数の一時プロファイルを作ることも多々あると思う。TBSロゴでは独自の妥協点も挙げたが、それを考えなくてもある程度はアナログな作業が必要なこのフィルタ。一度に多くの数をエンコするときほど億劫になりがちなため、NHKやテレビ東京などロゴのない部分が開始2~4レームほどしかないものは、いっそのこと該当フレーム自体を削除してしまうなど、色々と自分なりの妥協点を見つけていくといいだろう。

 

| | コメント (0) | トラックバック (0)

2010年2月26日 (金)

Vistaと7でx264のエンコード速度を比較してみる思索

ということでやってみました。

 

【理由】

以前どこかのブログで「Windows7にしたら速くなった」という趣旨の記事を見つけ、実際OSによってエンコードの処理速度に差が出るものなのか気になったため。

 

【条件】

OS

・Windows Vista Home Premium SP2 32bit

・Windows 7 Professional 32bit

CPU

Intel Core i7 920(定格2.66GHzにて使用、HTon)

使用ソフト

AviUtl(99i3)+x264gui(1442release01)

使用ストレージ

・AviUtl本体配置場所=SSD

(INTEL SSDSA2M240G2GC、OSと同ストレージ)

以下テスト時のストレージ情報

Ssd

・動画ファイル読書先=HDD(WESTERN DIGITAL WD10EADS)

以下テスト時のストレージ情報

Hdd

( ゚д゚) 最近デフラグしてなかったからかな…それにしてもHDD酷いw

AviUtl関連設定

・優先度:ノーマル

・使用スレッド:

 設定できるものはすべて8

 x264設定のみ0(自動設定=通常8)

・x264設定:

x264gui内蔵設定:高画質に--level 4.1と--no-mbtreeオプションを追加し、自動フィールドシフトの項目にチェック

・フィルタ設定:

詳細は後述するが、SSE関連や使用スレッド数を選べるものは最も速いと思われるものを選択

 

【検証内容】

上記の条件で、フィルタを(通常かけるであろう範囲内で)必要最小限しかかけないHDアニメと、最も多くかけた(重いマルチコア非対応フィルタ含む)SDアプコンアニメのOP(動きの激しい場面1分30秒程度)とED(動きの少ない場面1分30秒程度)をx264でエンコードし、Windows Vistaと7それぞれの処理速度を比較する。比較にはx264guiのlogを使用。

なお上記条件の他、電源のパフォーマンスや裏処理関連など、AviUtl関連以外の条件も出来うる限り同一にしてある…が、これらは基本OSインストール時に設定を統一したためぶっちゃけあまり覚えていないし、仮に覚えていてもかなり膨大な量になるため、ここでの記載は省略するものとする。

 

【検証用動画とフィルタの詳細】

①HDアニメOP

・『鋼の錬金術師 FULLMETAL ALCHEMIST』第44話のOP

Fullmetal_alchemist_op_r

・フィルタ:

 自動フィールドシフト(プリセット設定:映画/アニメ)

 クロップ

 Lanczos3(1280x720)

②HDアニメED

・『クロスゲーム』第46話のED

Ed_r

・フィルタ:①と同一

③SDアプコンアニメOP

・『はじめの一歩』(1期)第28話のOP

Op_r

・フィルタ:

 自動フィールドシフト(プリセット設定:映画/アニメ)

 透過性ロゴ

 ノイズ除去(時間軸)フィルタ(192-2-30)

 そらかけのシュート潰し(0-2-2)

 クロップ

 Lanczos3(960x720)

 DeDotMT(7-20)

 NL-Means Lite(2-50)

 prefilter for nonlinear sharpen(100)

 nonlinear sharpen(30-0-25-20、チェックはデフォルト)

 WarpSharpMT(110-3-70- -6)

 ※カッコ内は設定(基本上から順に)

④SDアプコンアニメED

・『はじめの一歩』(1期)第28話のED

Ed_r_2

・フィルタ:③と同一

 

【検証結果】

※画像クリックで別ウィンドウに拡大表示されます。

①HDアニメOP

・Vista

Fullmetal_alchemist_op_winvista

・7

Fullmetal_alchemist_op_win7

②HDアニメED

・Vista

Ed_winvista

・7

Ed_win7

③SDアプコンアニメOP

・Vista

Op_winvista

・7

Op_win7

④SDアプコンアニメED

・Vista

Ed_winvista_2

・7

Ed_win7_2

 

fps(1秒間あたりの処理フレーム数)のみでの単純比較となるが、それぞれを書き出すと

①WindowsVista:7.89 > Windows7:7.52 (95.3%)

②WindowsVista:13.14 > Windows7:12.48 (94.9%)

③WindowsVista:3.24 < Windows7:3.33 (102.7%)

④WindowsVista:3.23 < Windows7:3.32 (102.7%)

となり、処理速度に多少なりとも誤差以上の差が出た。

※カッコ内はVistaでの処理速度を100%とした場合の値。

時間の関係もあり、それぞれ1ケースずつしかテストできなかったため信憑性は非常に微妙なところだが、一応規則性が出来ている。どうやら一概に「どちらのOSが速い」とは言えないようだ。

上記をまとめるとするなら、「単純なエンコードだけならVistaの方が速いが、フィルタを使うほど7が優位になってくる」といったところだろうか。ただし動きの激しさによる処理速度の差は、(実用上の範囲に限ればであるが)フィルタをかけるほどに小さくなっている。

 

【考察】

さて、ではどうして上記のような結果になったのか。自分なりに考える上で、それぞれのエンコード時のCPU使用率を見てみることにする。

①HDアニメOP

・Vista

Cpu_fullmetal_alchemist_op_winvista

・7

Cpu_fullmetal_alchemist_op_win7_r

②HDアニメED

・Vista

Cpu_ed_winvista_r

・7

Cpu_ed_win7_r

この2つからわかるのは、明らかにWindows7の方が上下幅が大きいということだ。エンコード中CPU使用率の平均値を見ていると、Vistaの方が常に高い使用率を維持しており、希に100%に張り付くこともあったのに対し、7では100%に張り付くことはまずなく、常に数値が揺れていた。

③SDアプコンアニメOP

・Vista

Cpu_op_winvista_r

・7

Cpu_op_win7_r

④SDアプコンアニメED

・Vista

Cpu_ed_winvista_r_2

・7

Cpu_ed_win7_r_2

次にこの2つだが、こちらは①と②より違いがはっきりと出ている。③④共に共通しており、Vistaでは多少の揺れこそあれ、どのコアも一定の値(なぜか1コアだけがやたらと高い数値を維持しているが)を示しているのに対し、7では各コアの上下幅が大きいことに加え、右2つのコアに至っては使用率が0%になることすらあった。

これらから推測するに、7はおそらくOSレベルでパフォーマンス<省電力に特化しているため、CPUをほぼフルに使う処理同士の比較ではVistaよりも1つのアプリが発揮するパフォーマンスを抑える傾向にある(極力100%に張り付かないよう、どこかのコアにわざと余裕を持たせている?)が、CPU使用率が低く、シングルコアの方がパフォーマンスを発揮する要素が内包されているアプリでは、HT(Hyper Threading Technology:i7 920は物理4コアに、物理4コアの未使用領域を使用した論理4コアを加えた、論理8コア構成となっている)を使った各コアへの割り振りが最適化され、全体的な処理能力が向上している――ということが考えられる。

Vistaでひとつのコアだけが高い数値を維持していたのは、もしかしたらこのコアにのみマルチコア非対応フィルタの処理が集中していたためかもしれない。

 

【感想】

他にもかなりのパターンを試行錯誤してみなくては正確な結果も理由も出ないだろうが、簡単な思索ながらも比較的明確な違いが出てくれたことは一つの答えに繋がったように感じている。使うパーツや環境にもよるだろうが、とりあえず「Vistaと7でエンコード速度は違うのか」と言う命題に対しての答えは、「確かにOSによりエンコード速度に違いが出る可能性はあるが、必ずしもどちらかが速く、どちらかが遅いというわけではない」ということでいいだろう。大抵の場合ほとんど気になるほどの差にはならないだろうが、これからエンコPCを組むという人は、こうしたことも参考にしてみるといいかもしれない。

 

| | コメント (0) | トラックバック (0)

2010年2月14日 (日)

AviUtlで地デジの古いアニメを補正してみる思索 & NL-Meansの使い所

更新はもとより久々すぎるエンコのお話。今回はテレビ欄を探せば必ずひとつは見つかるであろう、十数年以上前のビデオ時代全盛期アニメの補正についてである。

この頃のアニメと言えば、デジタル処理でないため常にブレが発生していたり、現在残っている元映像自体状態があまりよくはない。そのため(ほぼ)強制的にアプコン処理されて放送される現在の地デジ放送では、変に拡大処理が入ることで更に酷いことになっている場合も多い。だからといって、古いアニメには古いアニメなりの良さがあり、せっかく放送されているのにみすみす保存を諦めるというのも癪である。そこで自分なりに試行錯誤してみた結果、なんとか保存しておこうと思えるレベルには補正することが出来たので、それを以下に記載していこうと思う。

この手のアニメでよくみられる画質劣化要素として、過度の輪郭強調によるリンギングと、当時のアナログ処理によるノイズが共に盛大に発生している点が挙げられる。これから話す補正処理は主にこの2点に着目し、画面ブレ等その他の要素は(手間や処理速度などにより)効率の面から除外するものとする。

検証素材として、先日までTOKYO MXで放送されていた宮崎アニメ「未来少年コナン」を例として挙げてみる。

Before

これは第25話「インダストリアの最期」の1シーン。画像をクリックして等倍表示(AviUtlにより縮小のみした状態のため、画像サイズは960×720)にしてもらえばわかりやすいと思うが、上記悪要素が漏れなく搭載されているのがわかる。まずこのリンギングをどうにかするため、「そらかけのシュート潰し」フィルタをかけてみる。

Photo

フィルタ設定はデフォルトのままだが、幾分か改善された。が、まだ中途半端だ。次に「リンギング低減」フィルタを重ねてかけてみることにする。

Photo_2

こちらの設定は数値はすべて0で、Highにのみチェック。リンギングに関してはかなり改善された印象で、これ以上やってもボケ方向への劣化が目立ってしまうだけなので、これで良しとした。ちなみに「そらかけ」「リンギング」各フィルタをそれぞれだけでも色々と設定を弄ってみたのだが、縦方向と横方向のリンギングをバランス良く低減するためには併用するのがもっとも効果的であった。

あとはこれまた盛大にのったノイズだ。これだけではわかりにくいかもしれないが、単一色部分(空や服、機械部など)を見てもらうとわかりやすいと思う。前後1フレームずつ動かしていくだけでもザラザラとしたノイズがわかるレベルだ。ここまでくると、もはや内蔵のノイズ除去だけではどうしようもない。そこで活躍するのが「NL-Means」フィルタである。ただこのフィルタはかなり重いため、GPU支援の期待出来ない自分の環境では上記フィルタからGPU機能を省いた「NL-Means Lite」を使っている。設定は上から2,52。ちなみにこのフィルタは、強力すぎるため使用には注意が必要な反面、先に補正したリンギング低減箇所を更に自然と溶け込ませる作用もある。

最後にリンギング対策の代償としてボケた輪郭を(リンギングが再発しない程度に)補正し直すため、「非線形処理な先鋭化」とその前置きフィルタをかけ(設定はデフォルト)、「WarpSharpMT」フィルタ(設定は上から110,3,70,-6)で仕上げて完成。

After

これが完成図。一応下記にbefore、afterとして再度アップしておく(内容は最初の補正前画像とすぐ上の完成図と同じ)。

before

Before

after

After

(2010/2/15追加UP)

before(顔部分切り出し3倍拡大版)

Beforeup

after(顔部分切り出し3倍拡大版)

Afterup

画像をクリックしてそれぞれを等倍表示し、重ねて比べてみて欲しい(※顔部分切り出し3倍拡大版画像も追加UPしたので、そちらの方が比較しやすいかも<2010/2/15追記>)。ややのっぺりしてしまった感も受けるが、まあ最初の見るに堪えない画像に比べればかなり改善出来たと思っている。ただ(お決まりの文句ではあるが)何を重視するのかによって意見は人それぞれであるため、あくまで参考程度ということで。

 

とりあえず古いアニメの補正というメインテーマはここまでとするが、ついでに今回使用した「NL-Means」というフィルタの使い所についても話しておきたいと思う。

前述したように、このフィルタは強力故に弊害も大きいため、使い所には注意しなければならない。特にアニメ絵では、あきらかに目に見えるだけのノイズ低減処理をさせていると、確かにノイズは内蔵フィルタとは比較にならないほど消えているのだが、同時に必要な情報まで欠落してしまったり、のっぺりした油絵のような状態になってしまうことがある。以下の画像がその例だ。

Nlbig

これは「鋼の錬金術師 FULLMETAL ALCHEMIST」のとある場面で、ランプの一部をわかりやすく拡大表示したものだ。ちなみに元画像はこれ↓

Nlori

これに先ほどの「未来少年コナン」と同設定の「NL-Means Lite」を当ててみると…

Nlbig_2

おわかりいただけるだろうか?ランプの輪郭、特に横に二本ある線のうち、下の方が明らかに消えかかっている(※比較用として、下の方に別途横並べした画像あり)。設定としては決して強くはないのだが、それでもここまでの効果があるためあまり常用はオススメできない。私は必要に応じて使い分けているが、基本は内蔵のノイズ除去フィルタを弄って使っている。仮に常用するのなら、(おそらく思っているよりも)かなり弱くかける程度にしておいた方が無難だろう。明らかにノイズが減っているとわかる程度にまで設定を上げる(基準はデフォルト設定以上)と、このランプの輪郭はほとんど消滅してしまう。

最後に蛇足ではあるが、このNL-Meansフィルタ、見た目の効果は高いが、ノイズ除去系の特徴でもある「完成後のファイル容量節約に繋がる」という観念がなぜか当てはまらず、むしろファイル容量が肥大化してしまう傾向にある。正確な理由はわからないが、どうも「特殊な処理により目に見えない余計な高周波成分が残ってしまう」ためだそうだ。こいつをどうにかする方法は、NLのあとに通常のノイズ除去系フィルタをほんのりと上乗せしてやるしかない。多少ベストな設定が見つけづらくなるかもしれないが、私としてはこの方法もオススメしたいところである。

以上となるが、おなじみ(?)のbefore、afterで締めとする。

左=before(NLなし)、右=after(NLあり)

Nlbig_3 Nlbig_4

 

 

 

 

 

 

 

 

 

上=before(NLなし)、下=after(NLあり)

 Nlori_2

Nlori_3

 

| | コメント (0) | トラックバック (0)

2009年3月11日 (水)

PS3によるアプコン画質を更に昇華させてみる思索

【はじめに】

かなりの高評価を受けているPS3のDVDアプコン機能。巷では20~30万の専用機並とも言われており、自分もその恩恵にあやかってDVDはPS3のアプコンをキャプ→エンコという手順を踏み、HDDに残している。しかしそのPS3のアプコンもリアルタイム処理故にすべてが完全というわけにはいかない。

というわけで、主にAviUtlのフィルタを通して画質をより向上させよう、というのが今回の目的。

なお「最近このブログ、趣旨から外れて雑記ばっかじゃね?」というツッコミはなんとか飲み込んでもらいたい。

 

【考察】

0 準備

・テスト用DVD:『らき☆すた』第9巻

・使用シーン:第18話「十人十色」OP

・DVD再生機:PS3(HDD60GB初期型)

・キャプチャーボード:PV4(EARTH SOFT製)

・エンコード&編集ソフト:AviUtl(version0.99g4)

 

1 PS3側の設定

まずはPCにキャプする前にPS3自体の設定。一概に「PS3でアプコン」と言っても、多岐に渡るアップデートも加わりその設定項目もそれなりに重要な意味を持ってきた。以下にざっと自分の設定を見てみることにする。

 

・設定>ビデオ設定>BD/DVDアップコンバート>2倍

[理由]

自分の場合アプコンエンコは最終解像度を1280x720としており、1920x1080よりも720x480の2倍、つまり1440x960にした方が何かと都合がいいため。画質的にもこちらの方が(微妙にだが)上かと。

・設定>ビデオ設定>BD/DVDダイナミックレンジコントロール>自動

[理由]

DVD音声の場合爆発シーンなどで異常に音量が大きい一方、通常の会話シーンは音量が小さくなりがち。それを補正するために自分の場合はこれが必須だが、人によっては元の音を極力弄りたくない人もいるかと思うので、まあ好きなようにすればいいと思う。なお“入”ではなく“自動”にしているのは、特にこれでも問題が見あたらなかったからというだけ。

・設定>ディスプレイ設定>映像出力設定>コンポーネント/D端子>1080i(1080p以外のすべて)にチェック

[理由]

720pでもいいのかもしれないが、エンコ前提なら画像編集でインターレース解除をした方が効率がいいため。

・設定>サウンド設定>音声出力設定>光デジタル>必須のLinearPCM 2ch 44.1kHz、48kHzのみにする(それ以外のすべてのチェックを外す)

[理由]

DVDの場合PCM音源のものもあればAC3(Dolby Digital)音源のものもあるため、後者であってもPS3側でリアルタイムPCM変換させてPV4に認識させるため。

・DVD再生時△ボタン>映像音声設定>フレームノイズリダクション>2

[理由]

あまりかけすぎてもボケるが、できるだけかけた方がいいため。

・DVD再生時△ボタン>映像音声設定>ブロックノイズリダクション>1

[理由]

DVDのMPEG-2自体が度々ビットレート不足を起こすため、そのときに発生するブロックノイズ対策。ただ頻度は少ないため、弊害度も考えて最小値の1。

・DVD再生時△ボタン>映像音声設定>モスキートノイズリダクション>3

[理由]

アニメに対してもっとも効果が大きく、弊害も少ないため。

 

2 キャプチャーボード(ソフト:PV.eve)の設定

次にキャプチャー側の設定。こちらはあまり重要ではないので特に特筆すべきことはないが、一応書いておくとこんな感じ。

・基本は規定値でQuantizerMatrixそのまま、インタレ解除もなし。

・解像度は1920x1080。これに関してはCPU性能とHDD性能、容量との相談になるが、できるだけ出力先の解像度のままキャプった方がいい。まあ素材がアプコンということもありそれほど神経筆になるほどの違いは出ないが、2倍にした横解像度が1440であるため、最低でも1280よりは小さくならないよう1600x1080、ケチりたくても1440x1080を下限として考えておいた方がいいだろう。せっかくPS3でアプコンしたのに、AviUtlで再び拡大処理をするはめになるのは本末転倒以外の何ものでもない。

 

3 AviUtlの設定

さてここからが肝心のフィルター部分の設定。何はともあれ、まずはこれを見て欲しい。

Rakisuta1b

これがPS3側の設定だけで、AviUtlではインタレ解除、クリッピング、リサイズ、色調補正をしただけの代物。いわゆる比較のBeforeにあたる画像である。

まあこれでも十分綺麗なアプコンではあるのだが、よく見るとリンギングが目立っていたりノイズがあったりと更に改善の余地がありそうに思える。

そこで色々と試行錯誤した結果求められたAviUtlの使用フィルタと各種設定がこちら。

※なお紹介順はフィルタ順に則した形で行い、比較のためビデオフィルタのみの紹介とする。またBeforeとの違い(Afterで新たに適用したフィルタ)のみを太字で記載するものとする。

 

自動フィールドシフト(Beforeも適用済み)

[設定]プリセット設定の“映画/アニメ”に準拠。

[理由]お手軽24/30fps混合(の可能性あり)インタレ解除。

そらかけのシュートつぶし(新たに適用)

[設定]閾値:63 縦強度:3 横強度:3

[理由]PS3のアプコンで発生しやすいリンギング(シュート)の低減。意外とかなり使える。

クリッピング&リサイズ(Beforeも適用済み)

[設定]上:77 下:77 左:153 右:147

[理由]クリッピングのみ使用。PS3側の2倍設定で超黒縁化しているため、これの除去。なお左が右より6ピクセル多いのは、何故かいつも左側にのみ輝度変化が見られるため。

※なおBeforeと若干設定を変えてしまったために、最終画像(比較画像のBeforeとAfter)でやや画像位置がずれてしまっている。まあ並べて比較する分には問題ないだろうし、もう一度エンコし直すのも億劫だしで、ここは妥協することにした。申し訳ない。

Lanczos 3-lobed 拡大縮小(Beforeも適用済み)

[設定]X:1280 Y:720 SIMD:SSE2整数

[理由]処理速度重視。アプコン画質のためこれ以上の解像度は必要なしと判断。

ノイズ除去フィルタ(新たに適用)

[設定]強さ:256 範囲:3 しきい値:36 (デフォルト値)

[理由]ノイズ除去。そらかけで除去しきれなかった分のリンギング低減効果もあり。

アンシャープマスク(新たに適用)

[設定]適応量:15 範囲:10 閾値:50

[理由]全体的にシャープさを出すため。やりすぎてリンギングが再発しない程度の値で。

prefilter for nonlinear sharpen & nonlinear sharpen(新たに適用)

[設定]

prefilter for nonlinear sharpen = wight:100 (デフォルト値)

nonlinear sharpen = under:30 noise:20 他:0 参照範囲拡大 underの値をgainに合わせる p-pでノイズ判定する (デフォルト値)

[理由]輪郭強調、後にかけるWarpSharpの効果アップ。

エッジレベル調整 Ver0.7(新たに適用)

[設定]特性:3 閾値:16 他0

[理由]かけ過ぎると新たにリンギングが発生するため、かけてるかな?程度。後にかけるWarpSharpとはまた違ったシャープな輪郭になる。かけ過ぎに注意。

WarpSharp(新たに適用)

[設定]depth:110 blur:3 bump:55 cubic:-6 他0

[理由]上記nonlinenr sharpenやエッジレベル調整、アンシャープマスクとの兼ね合いも考えてデフォルトよりbump値を大幅に減少&depthをやや減少。形が変わらないのを前提に、できるだけシャープな輪郭を実現しつつリンギングの発生を抑えたつもり。

拡張色調補正(Beforeも適用済み)

[設定]Y(offs)19 Y(gain)-41 TV->PCスケール補正

[理由]とりあえず真っ黒画面と真っ白画面を抽出し、ヒストグラムがそれぞれ最端になるように調節しただけ。地デジキャプ時との色調の差異を少なくするのが主な目的。

 

4 エンコードの設定

まああまり関係ないのだが一応書いとく。

使用プラグイン:拡張 x264 出力(GUI) ver 0.3 by seraphy(with afs 7.5a)

設定:プリセット設定“高画質”に準拠。使用しているx264はrev1125。

 

5 完成画像(After)の公開とまとめ

これが完成したAfter画像

Rakisuta1a

ちなみにこっちがBefore

Rakisuta1b

※比較する場合は画像クリック

Beforeと見比べるとぱっと見の印象もかなり変わったんじゃなかろうか。リンギングやノイズも目に見えて減っており、かなりすっきりした感じになった。まあその代償としてエンコ時間が2倍近くになってしまったわけだが…。

人によってはマイナスだという人(とりわけ元の画を重視するような人)もいるだろうが、少なくとも自分としては満足の出来ではある。もしこれを見て自分以外にも「良い」と感じる人がいるようなら、是非一度トライしてみて欲しい。もしかしたらこれよりもずっといい設定が見つかるかもしれない。

※なお前述したとおり、クリッピングの関係で若干BeforeとAfterで画像位置がずれてしまってる。まあご愛敬ってことで勘弁^^;

 

5.5 その他比較用画像一覧

最後におまけとして、(OP部だけだが)その他の比較用画像もうp。

Before

Rakisuta2b

After

Rakisuta2a

Before

Rakisuta3b

After

Rakisuta3a

Before

Rakisuta4b

After

Rakisuta4a

Before

Rakisuta5b

After

Rakisuta5a

Before

Rakisuta6b

After

Rakisuta6a

 

   

| | コメント (1) | トラックバック (0)

2009年3月 2日 (月)

MP4動画ファイルの扱いについて

【はじめに】

最近やたらとプッシュされてきているMP4(H.264)。自分も随分と世話になり、もはや動画圧縮ならこれしかないという位置付けにまできているのだが、PC分野ではまだまだハードウェア支援も完璧とは言えず(一応製品として出てはいるが完璧とはほど遠い)、自由度を考えても激重のソフトウェアエンコが主流なのは当分変わりそうもない。

と、前置きはこれくらいにして今回の本題。このMP4ファイルなのだが、確かにH.264(x264)は圧縮面において他を寄せ付けないクオリティを持っており、その質も日々進化し続けている。しかしその反面、AVIなどに比べると色々と取り扱いが面倒な点があるのも事実であり、自分も導入当初は何かとググりまくった一人だ(というか今も結構ググっているのだが)。

そこで今回、自分が何かと壁に当たった点についてここにまとめてみようと思う。あくまで初心者用のため当たり前なことが多いだろうが、少しでも自分のようにつまずいてしまった人の助けになれば幸いだ。

 

【MP4(映像)ファイルの音声合成(MUX)】

まずは基本のMP4+AACのMUX方法から。これは当然の如くMP4Boxを使うのだが、問題は使い方。Yambという便利なGUIソフトがあるのでこれを導入する人が多いと思うのだが、なぜか自分の環境(Vista 32bit)ではうまく動作してくれなかったため、そういう人のために常人にはかなり敷居の高い(と思われる)コマンドラインでの実行をできるだけ簡単に説明したいと思う。

手順

1 まずはコマンドプロンプト(コマンドライン)を実行する。これは左下のウィンドウズボタン→アクセサリフォルダ内にある。

1 で、こんな感じの画面になったと思う。

2 2 今度はここにMP4Boxを実行するためのコマンドを記述する。だいたいの人はここでつまずいてしまうだろう。

…いや自分がそうだっただけなんだが。

とりあえず意味がわからずとも、次のようにしてみればやりたいことはできるとおもうのでやってみて欲しい。

まずはMP4BoxをDLしたら「C:\Users\(ユーザー名)\MP4Box-0.4.5\MP4Box.exe」となるようにDLしたフォルダの名前変更&移動。別にこれでなければ駄目というわけでもないのだが、以下の説明を簡略にするため今はこうしておいて欲しい。なおMP4Boxはver.0.4.5を使用した場合を想定している。

次に、いきなりコマンドラインに書き出すのではなく、メモ帳を開いてここに書きたいコマンドを書いてみる。これはコピペや修正をしやすくするためだ。メモ帳もアクセサリフォルダにあると思うので、何も考えずそこに「MP4Box-0.4.5\MP4Box.exe -add "(場所\ビデオファイル名).mp4"#video -add "(場所\オーディオファイル名).aac"#audio -new "(場所\新ファイル名).mp4"」をコピペ。()には「D:\動画\インデックス」など、合成したい素のmp4とaacの所在を記載する(わからなかったら対象ファイルを右クリック→プロパティ→場所をコピペし、そこに\ファイル名を書き足せばOK。なおカッコ自体は記載しないこと)。

メモ帳に書き出したコマンドをコマンドラインにコピペ。

例としてはこんな感じ。

3_2

この場合は「Dドライブの動画フォルダにあるインデックス.mp4とインデックス.aacを合成し、インデックスmux.mp4というファイルを同フォルダに生成する」ことを意味している。なお上書き対策のためにも生成ファイル名は合成前の映像ファイル名と変えておいた方がいいだろう。

あとはこれでエンターキーを押すだけでMUXは完了する。

 

【aacファイルの生成-neroAacEncの利用-】

合成するためのaacファイルを生成するための説明。これも基本はコマンドラインを使用するが、aacファイルの生成くらいなら色々なフリーソフトが対応しているので、どうしてもneroAacEncを使いたい人だけ見て欲しい。まあ例によって基本だけなのだが。

手順

1 まずMP4Boxの時と同様にコマンドラインを開く。

2 次にDLしたneroAacEncのフォルダ名を「neroAacEnc」にしてCドライブ直下に置く。

3 メモ帳開いて「neroAacEnc\neroAacEnc.exe -q 0.365 -if (場所\入力ファイル名).wav -of (場所\出力ファイル名).aac」をコピペ。

4 ()に入力したいwavファイルの所在と出力したいファイルの所在を記載(カッコ自体は記載しない)。

5 3で赤文字になっている部分=変換オプションなので、ここを自分の好きなように変える。とりあえず基本はこんな感じ。

 

VBR

AAC 300~kbps="-q 0.740"

AAC 250~kbps="-q 0.625"

AAC 190~kbps="-q 0.515"

AAC 160~kbps="-q 0.430"

AAC 125~kbps="-q 0.365"

AAC 100~kbps="-q 0.315"

AAC 65~kbps="-q 0.220"

AAC 56~kbps="-q 0.190"

AAC 48~kbps="-q 0.170"

AAC 32~kbps="-q 0.125"

 
LC

(ex)AAC-LC 320kbps="-lc -br 320000"

 

HE

(ex)AAC-HE 128kbps="-he -br 128000"

 

HEv2

(ex)AAC-HEv2 48kbps="-hev2 -br 48000"

 

6 メモ帳からコマンドラインにコピペ。

例としてはこんな感じ。

4 この場合はCドライブ直下にneroAacEncFinというフォルダを作り、そこに変換したいindex.wavというWAVファイルを移動させた状態で、同フォルダにAACファイルを生成することを意味している。これはneroAacEnc.exeが日本語のフォルダ指定でエラーをはいたため、あえてアルファベット表記のみにしたため(おそらく回避方法もあるのだろうが)。

7 エンターを押して実行、完了。

 

【MP4(動画)ファイルの結合・分割】

これも最初はかなりの人がやろうと思って四苦八苦するところだと思う。またしてもMP4Boxが大活躍するわけだが、さすがにこうコマンドラインを連発していてもきついものがあるため、今回はUniteMovei&CutMovieを使ってみる。これはMP4Boxを組み込んだGUIのようなものでもあるのだが、ほぼすべての動画形式に対応しており、これ一つあれば大抵の動画の結合&分割ができてしまう優れものだ。ただプレビューできないのが唯一の難点であり、分割については何か他の動画再生ツールで分割場所の時間を確認する必要がある。

まあこれは作者様のサイトに詳細な説明があり内容もシンプルなので、手順の記載は省くものとする。おそらく起動してみればなんとなくわかるだろう。

 

【x264を使ったエンコードについて】

記事エンコードのお話を参照。

 

【最後に】

さてここまで主にMP4(H.264)の映像と音声のMUX、AAC音声ファイルの生成、MP4(H.264)の編集について見てきたわけだが、基本的にAviUtlは使わない前提で書いてきた。というのも、ここまで書いておいてあれなのだが、AviUtlを使えばこれらすべてのことが一通りできてしまうのである。seraphyさんのx264guiを使えばこれらが一括して行えてしまうほか、同氏が別に公開しているMP4Pluginにより編集もサポートされている。

ではなぜあえてそれ以外の方法を示したのか。それはseraphyさんのツールではMP4生成処理が一括で行え便利な反面、その途中で瑕疵が起こりプログラムが停止してしてしまった場合途中からのやり直しは利かず、一からのやり直しをせざるを得ないためである。たとえば長いx264エンコードを終えて音声の処理に入ったとき、そこでプログラムの切り替えがうまくいかず音声ファイルだけが生成されなかったり、音声ファイルの生成に成功してもMUX処理で落ちてしまったりといったことがある。そうしたとき、また長い長い映像部分のエンコードからやり直すというのは非常に億劫というものだ。よって、そうした場合の救済措置というのが今回の主な趣旨だと思って欲しい。

ただ編集作業においては「そもそもx264guiすら関係ねえじゃん」って感じだし、MP4Pluginを使ったAviUtlでの編集の方が何かとやりやすいしで、UniteMovei&CutMovieは「数少ない無圧縮出力可能なMP4編集ツールとして留意しておいてもいいんじゃね?」程度でしかない気もしたりしなかったり。

| | コメント (0) | トラックバック (0)

2009年2月21日 (土)

初MAD作成

気まぐれで作り出したMADに予想以上にハマってしまい、一時的にブログ更新を後回しに―――というのが今回更新が途絶えてしまった言い訳。

まあ今までほとんど毎日更新し続けてきたのだから3日くらいいいじゃないと開き直り、とりあえずこの3日かけた成果をアップしてみる。

ちなみにこれが初自作の堂々第一号であるため、間違ってもクオリティは期待しないように。

 

ではどうぞ↓

<ノーマルver>

<字幕なしver>

 

【MAD情報】

タイトル

【MAD】涼宮ハルヒの憂鬱 × UVERworld

コメント

アニメ『涼宮ハルヒの憂鬱』をUVERworldの2ndアルバム『BUGRIGHT』収録曲『LIFEsize』に合わせてみたMAD。シングルではないものの、イイ感じの曲だったため勢いで作ってしまった記念すべき自作第一号です。

【動画情報】
映像=H.264(x264)_512x288_330kbps(3pass)、音声=AAC-LC_320kbps(2pass)

 

 

   

| | コメント (0) | トラックバック (0)