日々の仕事や趣味やらを気が向いたらぶちまけるブログ

2006/09123456789101112131415161718192021222324252627282930312006/11

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
●よろしかったらクリックお願いします●
少しでも綺麗にエンコしようと思い、元ソースのビットレートを平均15Mbps最大15Mbps VBRにしてキャプチャーしたのをx264 QT20でエンコしたのですが、ビットレートが上がりすぎてファイルサイズが増大^^;
仕方ないので、2passでエンコしてファイルサイズを抑えることにしましたが、これなら、今までのキャプチャー設定(平均4Mbps最大6Mbps VBR)でキャプチャーしたほうがいいかもしれない^^;
単純に2passだとエンコ時間は2倍になります。
たしかに高画質とファイルサイズを両立するには2passにするのがいいのでしょうが、低ビットレートソースを1passQT20でエンコした場合と大差あるのかと言われるとあまりないかもしれません。
このへんは画質、ファイルサイズ、時間と相談ですね。

まぁ~他にも15Mbpsだと30分アニメ1本あたり約3.2GBになってHDDきついし^^;
スポンサーサイト
●よろしかったらクリックお願いします●
まだまだ半人前のエンコ素人なためさらにいろいろと調べていくと、フィルタの順序があまりよくないっぽいことがわかりました。
ということで、現在のところAviSynthのスクリプトは以下になってます。



#Pluginの読み込み
PluginDir = "C:\AviSynthのプラグインがあるフォルダ\plugins\"
LoadPlugin(PluginDir + "AddRange_for_25.dll") #VirtualDubModのvcf読み込み
LoadPlugin(PluginDir + "De.dll")
LoadPlugin(PluginDir + "IT.dll") #インターレス解除
LoadPlugin(PluginDir + "MPEG2DEC.dll") #DVD2AVI経由MPEG2読み込み(Ver1.76)
LoadPlugin(PluginDir + "Convolution3D.dll") #3Dノイズ除去(YUY2)
LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") #色調補正(YUY2)
LoadPlugin(PluginDir + "_2DCleanYUY2_for_25.dll") #2Dノイズ除去(YUY2)
LoadPlugin(PluginDir + "warpsharp.dll") #warpsharp

#DVD2AVI経由MPEG2読み込み
Mpeg2Source("C:\趣味\d2vがあるフォルダ\src_yuy2.d2v")
#WAVと結合
AudioDub(last,WavSource("C:\wavがあるフォルダ\src_yv12.wav"))

#フィールドオーダー
#トップ>ボトム
AssumeFrameBased().ComplementParity()

#vcf読み込み
#CMカット情報のため
#一番最初にソースをVirtualDubModで読み込むときはないのでコメントアウト
#CMカット後、VCFファイルを作成したらコメントアウト解除して再読み込み
AddRange("C:\vcfがあるフォルダ\vcf_yv12.vcf")

#クロスカラー除去
#デフォルト設定
#DeDot.txtによるとインターレス解除、リサイズ前に使用とあるので
#DeDot(20,20,0,255)だとドット妨害除去のみとなるらしい
DeDot(20,20,15,5)

#インターレス解除
#ITによるインタレ解除
IT(fps = 30, ref = "TOP", blend = false)

#クロップ
#ソースは720*480なので、左右8dotカット
Crop(8,0,704,480)

#3Dノイズ除去
FrameCache(9).Convolution3D(preset="animeHQ")

#2Dノイズ除去
FrameCache(3)._2DCleanYUY2(0,2,2,2,0,2,2)

#リサイズ
LanczosResize(640,480)

#色調補正
ColorYUY2(levels = "TV->PC",interpolation = "411->422")

ConvertToYV12()

return last



入力はYUY2にしました。
前回、差がないように書きましたが、ソースによっては、_2DCleanYUY2が結構大きいです。
スクリプト最後でYV12にコンバートしているのは、VirtualDubModの高速再圧縮の場合、YV12の方が処理が早くなるようです。
●よろしかったらクリックお願いします●
YUY2とYV12用のAviSynthテンプレができたので、試しにどこが違うのかエンコしてみました。
設定は以下です。



#YV12
#Pluginの読み込み
PluginDir = "C:\AviSynthのプラグインがあるフォルダ\plugins\"
LoadPlugin(PluginDir + "AddRange_for_25.dll") #VirtualDubModのvcf読み込み
LoadPlugin(PluginDir + "De.dll")
LoadPlugin(PluginDir + "IT.dll") #インターレス解除
LoadPlugin(PluginDir + "MPEG2DEC3.dll") #DVD2AVI経由MPEG2読み込み(Ver1.77.3)
LoadPlugin(PluginDir + "Convolution3DYV12.dll") #3Dノイズ除去(YV12)

#DVD2AVI経由MPEG2読み込み
MPEG2Source("C:\d2vがあるフォルダ\src_yv12.d2v")
#WAVと結合
AudioDub(last,WavSource("C:\wavがあるフォルダ\src.wav"))

#フィールドオーダー
#トップ>ボトム
AssumeFrameBased().ComplementParity()

#vcf読み込み
#CMカット情報のため
#一番最初にソースをVirtualDubModで読み込むときはないのでコメントアウト
#CMカット後、VCFファイルを作成したらコメントアウト解除して再読み込み
AddRange("C:\vcfがあるフォルダ\src.vcf")

#クロスカラー除去
#デフォルト設定
#DeDot.txtによるとインターレス解除、リサイズ前に使用とあるので
#DeDot(20,20,0,255)だとドット妨害除去のみとなるらしい
DeDot(20,20,15,5)

#インターレス解除
#ITによるインタレ解除
IT(fps = 30, ref = "TOP", blend = false)

#クロップ
#ソースは720*480なので、左右8dotカット
Crop(8,0,704,480)

#3Dノイズ除去
#Convolution3D(preset="animeHQ")

#リサイズ
LanczosResize(640,480)

return last




#YUY2
#Pluginの読み込み
PluginDir = "C:\AviSynthのプラグインがあるフォルダ\plugins\"
LoadPlugin(PluginDir + "AddRange_for_25.dll") #VirtualDubModのvcf読み込み
LoadPlugin(PluginDir + "De.dll")
LoadPlugin(PluginDir + "IT.dll") #インターレス解除
LoadPlugin(PluginDir + "MPEG2DEC.dll") #DVD2AVI経由MPEG2読み込み(Ver1.76)
LoadPlugin(PluginDir + "Convolution3D.dll") #3Dノイズ除去(YUY2)

#DVD2AVI経由MPEG2読み込み
Mpeg2Source("C:\趣味\d2vがあるフォルダ\src_yuy2.d2v")
#WAVと結合
AudioDub(last,WavSource("C:\wavがあるフォルダ\src.wav"))

#フィールドオーダー
#トップ>ボトム
AssumeFrameBased().ComplementParity()

#vcf読み込み
#CMカット情報のため
#一番最初にソースをVirtualDubModで読み込むときはないのでコメントアウト
#CMカット後、VCFファイルを作成したらコメントアウト解除して再読み込み
AddRange("C:\vcfがあるフォルダ\src.vcf")

#クロスカラー除去
#デフォルト設定
#DeDot.txtによるとインターレス解除、リサイズ前に使用とあるので
#DeDot(20,20,0,255)だとドット妨害除去のみとなるらしい
DeDot(20,20,15,5)

#インターレス解除
#ITによるインタレ解除
IT(fps = 30, ref = "TOP", blend = false)

#クロップ
#ソースは720*480なので、左右8dotカット
Crop(8,0,704,480)

#3Dノイズ除去
Convolution3D(preset="animeHQ")

#リサイズ
LanczosResize(640,480)

return last


フィルタ等極力同じになるように設定
さて、エンコ結果は・・・

エンコ時間:x264でVirtualDubModで高速再圧縮
YV12:約39分
YUY2:約54分

ファイルサイズ
YV12:約214MB
YUY2:約197MB

画質にはさして大きな違いは見受けられません。
エンコ時間短縮を狙うならYV12で処理した方が早いみたいですねぇ
ファイルサイズが若干大きくなるようですが。
しかし、この差はどこから出てるのだろう^^;

YV12で処理する場合の問題は2DNRと色調補正をどうするかだな
_2DCleanYUY2はYV12用のもあるらしいのですが発見できませんでした^^;
ColorYUY2はもう名前からしてYUY2ですね^^;
でも、今回、エンコ設定を揃えるために2DNRをかけていないのですが、かけた場合と大きな差があるように思えないんだよあぁ・・・
ちなみに、YUY2で2DNRと色調補正をした場合は約1時間20分かかって、ファイルサイズは約193MBでした。
●よろしかったらクリックお願いします●
さらにいろいろとAviSynthの設定を見直して、以下のようになりました^^;



#Pluginの読み込み
PluginDir = "C:\AviSynthのpluginを置いてるフォルダ\plugins\"
LoadPlugin(PluginDir + "AddRange_for_25.dll") #VirtualDubModのvcf読み込み
LoadPlugin(PluginDir + "De.dll")
LoadPlugin(PluginDir + "IT.dll") #インターレス解除
LoadPlugin(PluginDir + "MPEG2DEC.dll") #DVD2AVI経由MPEG2読み込み(Ver1.76)
LoadPlugin(PluginDir + "Convolution3D.dll") #3Dノイズ除去(YUY2)
LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") #色調補正(YUY2)
LoadPlugin(PluginDir + "_2DCleanYUY2_for_25.dll") #2Dノイズ除去(YUY2)

#DVD2AVI経由MPEG2読み込み
Mpeg2Source("C:\d2vのあるフォルダ\src_yuy2.d2v")
#WAVと結合
AudioDub(last,WavSource("C:\wavのあるフォルダ\src.wav"))

#フィールドオーダー
#トップ>ボトム
AssumeFrameBased().ComplementParity()

#vcf読み込み
#CMカット情報のため
#一番最初にソースをVirtualDubModで読み込むときはないのでコメントアウト
#CMカット後、VCFファイルを作成したらコメントアウト解除して再読み込み
AddRange("C:\vcfのあるフォルダ\src.vcf")

#クロスカラー除去
#デフォルト設定
#DeDot.txtによるとインターレス解除、リサイズ前に使用とあるので
#DeDot(20,20,0,255)だとドット妨害除去のみとなるらしい
DeDot(20,20,15,5)

#インターレス解除
#ITによるインタレ解除
IT(fps = 30, ref = "TOP", blend = false)

#クロップ
#ソースは720*480なので、左右8dotカット
Crop(8,0,704,480)

#2Dノイズ除去
_2DCleanYUY2(0,2,2,2,0,2,2)

#3Dノイズ除去
Convolution3D(preset="animeHQ")

#リサイズ
LanczosResize(640,480)

#輝度調整
#16-235>0-255
Levels(16, 1, 235, 0, 255, coring=false)

#色調補正
ColorYUY2( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 )

return last



2DNRと色調補正を追加、2DNRがYUY2なので、前回まではYV2で読み込んでいたため、DVD2AVIもVer1.77.3からVer1.76に変更
ついでにインタレ解除をITにしてみました。
これでどのくらい変わるかは現在エンコ中なので、完了してみて変だったらまたいじるかもw
とりあえず2DNRと色調補正を追加したので若干エンコ時間が増えましたが、まだAviUtlでエンコするよりは短い時間ですみそうです。
2DNRと3DNRをリサイズ後にもってくれば多少は時間が短くなりそうですが、リサイズすることによってノイズも変化するので仕上がりにも影響がでそうですね

さて、次はx264のコマンドラインでのエンコ方法を覚えなきゃなぁ
●よろしかったらクリックお願いします●
やっとのことで、音声圧縮の方法がわかりました^^;
しかし、VirtualDubModはwavのヘッダー情報拾ってないのかな?^^;
さて、これでようやくエンコ環境が整ったので、次は各種フィルタ用の設定です。
あれこれと調べ試した結果、以下のテンプレとなりました。



#Pluginの読み込み
PluginDir = "C:\AviSynthのpluginを置いてるフォルダ\"
LoadPlugin(PluginDir + "AddRange_for_25.dll") #VirtualDubModのvcf読み込み
LoadPlugin(PluginDir + "De.dll")
LoadPlugin(PluginDir + "TomsMoComp.dll") #インターレス解除
LoadPlugin(PluginDir + "MPEG2DEC3.dll") #DVD2AVI経由MPEG2読み込み
LoadPlugin(PluginDir + "Convolution3DYV12.dll") #2D+時間軸ノイズ除去

#DVD2AVI経由MPEG2読み込み(YV12)
MPEG2Source("C:\d2vがあるフォルダ\src.d2v")
#WAVと結合
AudioDub(last,WavSource("C:\wavがあるフォルダ\src.wav"))

#フィールドオーダー
#トップ>ボトム
AssumeFrameBased().ComplementParity()

#vcf読み込み
#CMカット情報のため
#最初avsをVirtualDubModで読み込むときはないのでコメントアウト
#CMカット後、VCFファイルを作成したらコメントアウト解除して再読み込み
AddRange("C:\vfcがあるフォルダ\src.vcf")

#クロスカラー除去
#デフォルト設定
#DeDot.txtによるとインターレス解除、リサイズ前に使用とあるので
#DeDot(20,20,0,255)だとドット妨害除去のみとなるらしい
DeDot(20,20,15,5)

#インターレス解除
#トップ、動き補償閾値5、垂直フィルターoff
TomsMoComp(1,5,0)

#クロップ
#ソースは720*480なので、左右8dotカット
Crop(8,0,704,480)

#ノイズ除去
#まだ勉強中なのでプリセットを利用
Convolution3D(preset="animeHQ")

#リサイズ
LanczosResize(640,480)

#輝度調整
#16-235>0-255
#いわゆるYC伸張
Levels(16, 1, 235, 0, 255, coring=false)

return last


こんな感じでエンコしています。
さて、ここで出来上がったものを試聴していて気になったのが、一部の白飛びです。
YC伸張することで輝度が増して、鮮やかになるのですが、その分、明るいところはより明るく、暗いところはより暗くなるため、白飛びや黒飛びといった問題がでてきます。
全体的にはいい感じなのですが、細部で微妙に飛んでいるのが気になってしまいます^^;
YC伸張をするべきかしないべきか・・・
●よろしかったらクリックお願いします●
画質を左右する設定にQuantizerがあります。
x264の設定を説明しているページなんかだと、アニメの場合20~22が適正といった説明を見かけます。
実際どのくらい変わるものなのか試しに、20と22でエンコしたものを見比べてみたところ、あまり差を感じないのだがファイルサイズは如実に変化します。
Quantizer20の場合、約271MB
Quantizer22の場合、約207MB
その差、約64MB
これは結構でかい差です。
WMPが二つ開けないので同時再生での見比べができないのでよほどの差が無い限り画質に大きな差はない気がします。
もう少しいろいろな数値で比べてみたいところですが、エンコに約1時間40分程度かかるのでなかなか難しいです^^;
AviSynth+VirtualDubModでのエンコができるようになったら比べてみたいと思います。

なお、ソースは違いますが、x264で一番最初にエンコしたものはデフォルト設定でエンコして、Quantizer26でしたが、ファイルサイズは実に約76MBになり画質もそれなりに綺麗でした。
わずかな差であるならばもう少しQuantizerの数値を上げてファイルサイズを小さくするのもありかなと思ってます。
●よろしかったらクリックお願いします●
さらなる高画質化&高速化を求めて調べると、AviSynth+VirtualDubModという方法でのエンコを発見。
さらに調べてみるとx264VFWでは本来のx264エンコではなく互換フォーマットらしいことが判明。
正しくx264でエンコするには、x264Cliというコマンドライン版を使ってエンコしないといけないことがわかりました。
このため、AviSynth+VirtualDubMod+x264Cliでのエンコ環境を整えるべくさらにgoogle先生で調べてみると・・・

[AviSynth + VirtualDubMod + x264Cli]の続きを読む
●よろしかったらクリックお願いします●
相当ごぶさたな更新です^^;

ここ最近の趣味は、録り溜めたアニメのエンコードです。
マシンを新調したついでにTVキャプチャーボードを導入したことで、デジタル録画環境が出来上がったのはいいですが、標準画質で通常の30分アニメを録画すると1本あたり約900~1000MBとなってしまい、非常にHDDを圧迫することとなってしまいました。
まぁ見たら消せばいいのでしょうが、暇なときにまた見たくなったりした場合も考えて、MPEG2からAVIへエンコードして圧縮を図ろうということにしたのです。
しかし、そっちの分野はほとんど知識がなく、まずはgoogle様から情報を得ることに・・・。

[初心者のエンコ]の続きを読む
●よろしかったらクリックお願いします●
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。