2012年01月06日

ToWaveとFakeAacWav

2012冬アニメが始まるのに合わせてFakeAacWavを使ってみようと思いAvisynthテンプレを少し改変しました。
大まかな流れは、
1.ts -> d2v + aac
2. aac -> wav(FakeAacWav)
3. avs2wav -> wav切り出し
4. wav切り出し -> aac(FakeAacWavで偽装解除)
でmp4boxで動画ファイルと結合して終わりです。

tsエンコードでは付き纏う「音ずれ」問題ですが、結局のところ認識できるほどずれないので従来のToWaveでもFakeAacWavでも好きなほうでよさそうです。


20111028-ギルティクラウン#03_v06Hr1_cut.avs.png
ToWave使用


20111028-ギルティクラウン#03_v07H_cut.avs_Frame3375.png
FakeAacWav使用

ただし、FakeAacWav使用のほうは切り出したAACを標準のWave形式に変換した物を読み込んでます。

AviUtlで音声波形を見ると同じフレーム箇所で若干ズレがありますが、1フレームが約33.37msで波形のズレは約5ms前後かと思います。
60fpsのゲームで1フレームを視認して操作するような人は気になる世界かもしれませんが、視認できないわたしは気にしたら負けかなと思いました・・・。
posted by nyaanyaaa at 22:14| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2011年05月15日

60iテロをCropで捨てて逆テレシネしたら滑らかになった

春アニメから60iテロップ処理を無視していたけれども、テロ+背景スクロールの場面で背景がカクカクしていまう問題で探していたところ、以下の方のサイトが見つかった。

つれづれ〜努力と根性?〜: そうか、cropしてしまえばよいのか
http://299792458m.blogspot.com/2011/03/crop.html
アニメをエンコードする人ならだれでも1度は悩んだことがあるであろうテロップでの誤爆問題。
その時だけ60fpsや120fpsにするのもなんだなぁ、と思っていたのですが、テロップがかくつこうが構わないのであれば判定にcropしたものを使ってしまえばよいのではないかと思い至りました。

具体的にはこんな感じで

元    :TFM(mode=1,order=-1,PP=7,slow=2).TDecimate(mode=1)

修正後  :temp1=TFM(mode=1,order=-1,PP=7,slow=2)
      temp1.CropBottom(200).TDecimate(mode=1,clip2=temp1)


ちょうど60iテロと背景スクロールが重なるシーンがあったので試したところ、Cropしたほうが滑らかになった。
問題点はCropで切り離した部分だけが動いたときにどうなるか。当分は「エンコしてすぐ見る」作品だけに試そうと思う。
posted by nyaanyaaa at 12:29| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2010年10月09日

2010秋アニメ、の前に楽をする準備

CMカットをVirtualDubで「Frame 11679 (0:08:07.112) [K]」をコピーしてAvisynthファイルに貼り付けてから、「Trim(11679,xxxxx)」と毎回手作業をしてて面倒だったので楽をする方向に向かってみたε=(ノ‥)ノ

○今までは
VirtualDubでのFrame番号のコピーは手作業なのは諦めて、コピーしてまとめたものが下のもの。
# -----------------
# Frame 944 (0:00:31.498) [K]
# Frame 21592 (0:12:00.453) [K]
# -----------------
# Frame 25190 (0:14:00.506) [K]
# Frame 47396 (0:26:21.447) [K]
# -----------------
# Frame 50095 (0:27:51.503) [K]
# Frame 50846 (0:28:16.562) [K]
# -----------------
後は「Trim(944,21592)+Trim(25190,47396)+Trim(50095,50846)」を書けば終わりだけど、この部分だけ楽をしてみることに。

○楽をした
PHPでちまちま書いて上のをPOSTすると
# -----------------
# Frame 944 (0:00:31.498) [K]
# Frame 21592 (0:12:00.453) [K]
# ----------------- 20648 / 16518
# Frame 25190 (0:14:00.506) [K]
# Frame 47396 (0:26:21.447) [K]
# ----------------- 42854 / 34282
# Frame 50095 (0:27:51.503) [K]
# Frame 50846 (0:28:16.562) [K]
# ----------------- 43605 / 34882
# ----------------- 43605 / 34882
Trim(944,21592)+Trim(25190,47396)+Trim(50095,50846)
と出力するようにしてコピペするだけですむようになった(σ'-')σ
多少見栄えが悪いとか多少の手作業ぐらいとかあるけど、楽を出来る部分は楽をしたいので。
あとは60iテロ用にdefを書くのも出てくるようすれば完成だ。

○PHPは楽でいいなー
初めはC++で書き出して、途中でPHPの文字列関数が楽過ぎてすぐ逃げた。
自分用だからエラーや例外処理ほとんど無いノーセキュリティコードだけど('ヮ'*)
posted by nyaanyaaa at 20:39| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2010年07月13日

インタレ解除選び

オリジナルソース、yadifmod、TIVTC24P2、DoubleWeave().SelectEvery()でインタレ解除したものを4フレーム切り出して張り並べた。オリジナルに合わせるために、逆テレシネはせずTIVTC24P2は逆テレシネ部を無効化した。
下から上にスクロールするスタッフロールで「檜山修之」さんの「修」の字が綺麗になるかならないかが目安になった。
deinterlace_frame140-143_4types_2010070701450201-[新]学園黙示録ハイスクール・オブ・ザ・デッド_CHECK-HD_v04HUv_trim_v39HD_mux.png

deinterlacer_2010070701450201-[新]学園黙示録ハイスクール・オブ・ザ・デッド_CHECK-HD_v04HUv_trim_v39HD_mux.png

deinterlacer_2010070301550201-[新]黒執事U#01[字]_HD_v04Hv_trim.png
どれもフレーム単位で見ると差が少なくて分かりにくい。DoubleWeave.SelectEveryは今回初めて使ったので、元が次の画像を作るための引数を30pになるように弄っただけなので、引数を把握せずに使ってるので結果の画像は怪しい。
deinterlace_frame140-143_SelectEvery(5,1,3)_2010070701450201-[新]学園黙示録ハイスクール・オブ・ザ・デッド_CHECK-HD_v04HUv_trim_v39HD_mux.png
こちらは24p用に設定された物を拾ってきて使ってみたDoubleWeave().SelectEvery(5,1,3)。こちらは「修」の字が綺麗になってる。

yadifmod、TIVTC24P2、DoubleWeave().SelectEvery()でインタレ解除と逆テレシネしたサンプル動画をアップしてみる。yadifmodは単独ではインタレ解除のみなので、TDecimate(mode=1)を併せて使用した。

DoubleWeave().SelectEvery()
使った引数は「DoubleWeave().SelectEvery(5,3,5)」
http://www.mediafire.com/file/vlw2tjimlmi/deinterlacer_DoubleWeave.SelectEvery.mp4

TIVTC24P2
http://www.mediafire.com/file/zzb2jmtnkbm/deinterlacer_TIVTC24P2.mp4

yadifmod(edeint=nnedi2())
TDecimate(mode=1)
http://www.mediafire.com/file/anmmjk3efzy/deinterlacer_yadifmod.mp4

結果としてはDoubleWeave().SelectEvery()がスタッフ名が綺麗になってると思う。2:50からの麗の口の動きは斜め曲線で網が見られて、DoubleWeave().SelectEvery()、TIVTC24P2、yadifmodの順で滑らかな口になって見える。
周期一定であればDoubleWeave().SelectEvery()が良さそうだけど、周期不定や作業エンコならば他の2択が良さそうだ。

参考までにCPU利用率は
DoubleWeave().SelectEvery()が100%
TIVTC24P2()が25%
yadifmod()が100%
となっていた。

deinterlacer_DoubleWeave.SelectEvery.mp4のx264ログ。処理時間約9分
x264 [info]: using SAR=40/33
x264 [info]: using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT

x264 [info]: profile High, level 4.1
x264 [info]: frame I:36 Avg QP:20.74 size:141838 PSNR Mean Y:46.94 U:51.55
V:52.30 Avg:48.02 Global:47.69
x264 [info]: frame P:1537 Avg QP:22.85 size: 69315 PSNR Mean Y:44.83 U:49.81
V:50.43 Avg:45.95 Global:45.30
x264 [info]: frame B:3618 Avg QP:24.71 size: 18481 PSNR Mean Y:43.70 U:49.10
V:49.79 Avg:44.86 Global:43.99
x264 [info]: consecutive B-frames: 1.4% 5.9% 27.8% 64.9%
x264 [info]: mb I I16..4: 22.4% 75.4% 2.2%
x264 [info]: mb P I16..4: 3.3% 6.3% 0.3% P16..4: 56.2% 15.9% 10.8% 0.0% 0
.0% skip: 7.2%
x264 [info]: mb B I16..4: 0.2% 0.3% 0.1% B16..8: 17.2% 4.2% 1.2% direct:
3.8% skip:73.2% L0:31.5% L1:42.3% BI:26.2%
x264 [info]: 8x8 transform intra:65.1% inter:96.8%
x264 [info]: direct mvs spatial:99.8% temporal:0.2%
x264 [info]: coded y,uvDC,uvAC intra: 62.9% 63.0% 24.9% inter: 27.4% 17.0% 3.2%
x264 [info]: i16 v,h,dc,p: 33% 27% 21% 19%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 21% 22% 3% 4% 5% 4% 5% 6%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 45% 23% 9% 3% 3% 4% 4% 4% 4%
x264 [info]: ref P L0: 73.4% 25.5% 1.1%
x264 [info]: ref B L0: 91.7% 8.3%
x264 [info]: ref B L1: 95.0% 5.0%
x264 [info]: SSIM Mean Y:0.9852130
x264 [info]: PSNR Mean Y:44.057 U:49.330 V:49.999 Avg:45.205 Global:44.357 kb/s:
6595.87

encoded 5191 frames, 10.19 fps, 6595.90 kb/s

-------------------------------------------------------------------------------

deinterlacer_TIVTC24P2.mp4のx264ログ。処理時間約53分
x264 [info]: using SAR=40/33
x264 [info]: using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT

x264 [info]: profile High, level 4.1
x264 [info]: frame I:36 Avg QP:20.82 size:127654 PSNR Mean Y:48.27 U:52.26
V:53.00 Avg:49.25 Global:48.41
x264 [info]: frame P:1615 Avg QP:22.90 size: 61289 PSNR Mean Y:45.30 U:49.92
V:50.63 Avg:46.38 Global:45.66
x264 [info]: frame B:3541 Avg QP:24.70 size: 16781 PSNR Mean Y:43.84 U:49.01
V:49.71 Avg:44.98 Global:44.18
x264 [info]: consecutive B-frames: 1.1% 7.4% 43.3% 48.1%
x264 [info]: mb I I16..4: 24.2% 73.8% 2.0%
x264 [info]: mb P I16..4: 3.2% 5.8% 0.3% P16..4: 57.1% 15.9% 10.3% 0.0% 0
.0% skip: 7.4%
x264 [info]: mb B I16..4: 0.2% 0.3% 0.1% B16..8: 16.0% 4.1% 1.4% direct:
3.9% skip:74.1% L0:33.8% L1:44.6% BI:21.6%
x264 [info]: 8x8 transform intra:64.0% inter:97.8%
x264 [info]: direct mvs spatial:99.9% temporal:0.1%
x264 [info]: coded y,uvDC,uvAC intra: 60.7% 62.5% 24.6% inter: 27.4% 17.7% 3.3%
x264 [info]: i16 v,h,dc,p: 34% 26% 21% 18%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 21% 23% 3% 4% 5% 4% 5% 5%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 47% 20% 8% 3% 4% 5% 4% 5% 4%
x264 [info]: ref P L0: 72.5% 25.9% 1.6%
x264 [info]: ref B L0: 89.1% 10.9%
x264 [info]: ref B L1: 92.7% 7.3%
x264 [info]: SSIM Mean Y:0.9862619
x264 [info]: PSNR Mean Y:44.326 U:49.320 V:50.016 Avg:45.444 Global:44.606 kb/s:
6021.67

encoded 5192 frames, 1.65 fps, 6021.70 kb/s

-------------------------------------------------------------------------------

deinterlacer_yadifmod.mp4のx264ログ。処理時間約20分
x264 [info]: using SAR=40/33
x264 [info]: using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT

x264 [info]: profile High, level 4.1
x264 [info]: frame I:37 Avg QP:20.82 size:120422 PSNR Mean Y:48.79 U:51.63
V:52.36 Avg:49.56 Global:49.22
x264 [info]: frame P:1542 Avg QP:22.97 size: 61837 PSNR Mean Y:45.80 U:49.54
V:50.21 Avg:46.74 Global:46.10
x264 [info]: frame B:3613 Avg QP:24.74 size: 16907 PSNR Mean Y:44.37 U:48.68
V:49.41 Avg:45.40 Global:44.65
x264 [info]: consecutive B-frames: 0.8% 5.5% 35.3% 58.4%
x264 [info]: mb I I16..4: 23.0% 75.5% 1.5%
x264 [info]: mb P I16..4: 3.5% 6.0% 0.3% P16..4: 57.0% 17.0% 9.9% 0.0% 0
.0% skip: 6.2%
x264 [info]: mb B I16..4: 0.2% 0.3% 0.1% B16..8: 17.3% 4.5% 1.4% direct:
3.8% skip:72.5% L0:35.0% L1:44.5% BI:20.5%
x264 [info]: 8x8 transform intra:63.0% inter:98.9%
x264 [info]: direct mvs spatial:99.9% temporal:0.1%
x264 [info]: coded y,uvDC,uvAC intra: 59.0% 62.7% 25.5% inter: 28.0% 18.6% 3.7%
x264 [info]: i16 v,h,dc,p: 35% 25% 22% 18%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 21% 22% 4% 4% 5% 4% 5% 5%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 51% 16% 9% 3% 4% 5% 4% 4% 4%
x264 [info]: ref P L0: 71.7% 27.4% 0.9%
x264 [info]: ref B L0: 88.5% 11.5%
x264 [info]: ref B L1: 92.7% 7.3%
x264 [info]: SSIM Mean Y:0.9877248
x264 [info]: PSNR Mean Y:44.829 U:48.955 V:49.667 Avg:45.824 Global:45.057 kb/s:
5943.86

encoded 5192 frames, 4.35 fps, 5943.90 kb/s
posted by nyaanyaaa at 15:36| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2010年04月05日

薄桜鬼

アプコンの傾向が見られてるのでフィルタ調整を試行。

TIVTC24P2()
vinverse()
BCSInterlacedResize_mod(mode=1, dest_height=486, crop=0.75, shift=0.32, blur=-0.50)
dh = 486
x = 8.0
y = x * dh / Width()
hqdn3d(2)
ConvertToYUY2()
ConvertToAviUtlYCFix()
AU_smoothing(6,true)
AU_edgelevelMT(7,20,2,1)
ConvertAviUtlYCToYUY2Fix()
ConvertToYV12()
ResizeBCS(1280, 720, 4, 6, -4, -2, dest_height=486, crop=0.75, scale=true, interlaced=false)
WarpSharp(103,3,92,0)
LSFmod(defaults="slow")
MT( "GradFun2DBmod(mode=2,thr=1.01,str=0.80,temp=0,adapt=1,radius=2,range=4)", 4, 8, false )

2010040400300101-薄桜鬼_frame13211_typef.png
2010040400300101-薄桜鬼_frame45000_typef.png


VirtualDubで下のAvisynthを開いて眺めているとY成分が右端まで現れてて気になった。
video = DGDecode_MPEG2Source( TSFilePath + "薄桜鬼.d2v")
audio = WavSource( TSFilePath + "薄桜鬼.wav")
AudioDub(video, audio)
Histogram(mode="Levels")

ほとんどの部分では16-235範囲?に収まっているけど
2010040400300101-薄桜鬼_14513.png

OPやEDの一部で255まで広がってて
2010040400300101-薄桜鬼_8771.png
2010040400300101-薄桜鬼_45509.png
このヒストグラム表示では広がっていても正常なのか否かが良く分かってないところ。

色空間や色域とか難しい(==)
posted by nyaanyaaa at 18:32| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2010年03月03日

3月なのに1月から使ってるフィルタとかメモ

2010年1月から使ってるフィルタ。60iテロがあるのはITSを使って手動で60p部と24p部を指定して、60i部はBob化しています。
BCSInterlacedResize関数の改造版が出てるので調べた後に考え直したい・・・、4月期までには・・・。

あと設定値は最初の頃に参考にさせて頂いたところのままのがほとんどです(・ヮ・)


*HV放送
Trim()
TIVTC24P2()
hqdn3d(2)
Spline36Resize(1280,720)
WarpSharp(95,3,85,0)
GradFun2DBmod()

*アプコン放送
Trim()
BCSInterlacedResize(486,2,0.32,0.75,-0.5)
TIVTC24P2()
hqdn3d(2)
Spline36Resize(1280,720)
LSFmod(defaults="slow")
WarpSharp(64,3,70,-0.6)
GradFun2DBmod()

*超額縁放送(エンコは720*480のsar 32:27)
Trim()
ColorMatrix(mode="Rec.709->Rec.601")
BCSInterlacedResize(486,2,0.32,0.75,-0.5)
TIVTC24P2()
Crop(182,62,-182,-64)
ConvertToYV12()
hqdn3d(2)
LSFmod(defaults="slow",strength=70)
Spline36Resize(720,480)
WarpSharp(64,3,70,-0.6)
posted by nyaanyaaa at 20:31| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年10月23日

LSFmod v1.9

SDアプコン放送のエンコでシャープ化に使うことにした「LSFmod v1.9」のdefault設定でfastとslow、strengthを0から100まで20ステップで適用してみました。
default設定なので煮詰め度0です(・x・)

LSFmod_fast_and_slow_mux_strength0-100-20step.png

SDアプコン放送用にと言ったそばから、元がSD放送のBS2ソースを持ってきてる辺りダメダメ感が漂います。
edgelevelMT.aufは「キリッ」とした絵が出来上がりましたが、LSFmodのほうは「きりっ」としたやわらかめなシャープ絵が出来上がる感じがします。

defaultsのfastとslowのx264でのエンコ速度差は0.5fpsです。HD放送用avsでは8fpsで、LSFmodを使用するSDアプコン放送用avsではHD放送用avs+LSFmod+BCSInterlacedResizeでfastは4fps、slowは3.5fpsです(fpsの数字はどれも「だいたい」の値です)。
edgelevelMT.aufを使っていたときは2fpsだったので、やわらかシャープで十分なのでこっちを使っていこうと思います。

(LSFmodと関係ないですが、ノイズ除去にMVDFTDenoise関数を使おうと思って試したところ、1fpsを切ったので断念・・・。fft3dfilterより気に入った除去具合だったけれどMT化も出来ずに倉庫の片隅に行きました。)
posted by nyaanyaaa at 17:33| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年08月12日

Convolution3Dとfft3Dfilter

普段はノイズ除去で「Convolution3D」のプリセット「animeHQ」だけで済ましているけれど、唐突にアップにしてみたらノイズが目立って見えたから、fft3Dfilterを試してみることに。
というのも参考にしている「エビフにゃイ」さんのところでConvolution3DとFFT3DFilterを使っているといったことが書いてあったので真似させていただきました(σ'-')σ

画像をクリックしたら画像だけが開けるとタブブラウザで見やすいのに、画像専用ページが生成されて見難い(o_ _)o

* 読み込み
ソースはTSファイルなので、DGIndexでd2vファイルを作って読み込むことにしてます。この時の解像度は1440*1080です。

----avs
video = DGDecode_MPEG2Source( TSFilePath + "2009070602300001-[新]化物語_HD.d2v", idct=5)
audio = WavSource( TSFilePath + "2009070602300001-[新]化物語_HD PID 110 DELAY 0ms.wav")
AudioDub(video, audio)
AssumeTFF
----end

ここは普段とまったく変わらず、というよりもエンコに手を出してから変わってない('ヮ'*)


* ノイズ除去
今回試した設定は以下の通り。

1:Convolution3D(preset="animeHQ")

2:fft3dfilter(sigma=1.5, plane=4 , bt=5, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)

3:fft3dfilter(sigma=1.5, plane=4 , bt=3, bw=16, bh=16, ow=8, oh=8, sharpen=0.4)

4:fft3dGPU(sigma=1.5, plane=4 , bt=4, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)

4番はfft3dfilterのGPU版です。


* 感想
フィルタ無しで境界部分にノイズが乗っているのが見えるけれど、fft3dfilterを使うとノイズが綺麗に消えるのが分かった。エッジ強調のような効果が線の付近に見られるけれど、3番設定だとそれも弱まり悪くない感じになった。
換わりにバンディングが発生してるのが戦場ヶ原の頬部分に見える。が、ソースの時点でバンディングが出てるので、バンディング軽減フィルタの併用で減らせるかな、と思っていたり。

文字部分はConvolution3D、fft3Dfilterの3番設定がいいかな。キャラ画より違いが少なくて、どっちもどっちに見える(・・;

静止画としてはfft3Dfilterがノイズ除去しっかりしているけれど、処理が重いのがつらい!x264に投げてないので分からないけれど、2,3倍以上は重いと思う・・・。
ただ、GPU版の設定がやっつけなのでfft3Dfilterと近くならなかったけど、近い設定を見つければConvolution3D並の速度で利用できそう。


* サンプル1
化物語01_frame5115.png
フィルター無し
---------------------------------------------------------------

化物語01_frame5115_Convolution3D-animeHQ.png
1:Convolution3D
---------------------------------------------------------------

化物語01_frame5115_fft3dfilter-1.png
2:fft3Dfilter その1
---------------------------------------------------------------

化物語01_frame5115_fft3dfilter-2.png
3:fft3Dfilter その2
---------------------------------------------------------------

化物語01_frame5115_fft3dgpu-1.png
4:fft3dGPU
---------------------------------------------------------------

** サンプル1の拡大
サンプル1の口元のアップ画像。Paint.NETで「Nearest Neighbor」拡大です。

化物語01_frame5115_x3.png
フィルター無し
---------------------------------------------------------------

化物語01_frame5115_x3_Convolution3D-animeHQ.png
1:Convolution3D
---------------------------------------------------------------

化物語01_frame5115_x3_fft3dfilter-1.png
2:fft3Dfilter その1
---------------------------------------------------------------

化物語01_frame5115_x3_fft3dfilter-2.png
3:fft3Dfilter その2
---------------------------------------------------------------

化物語01_frame5115_x3_fft3dgpu-1.png
4:fft3dGPU
---------------------------------------------------------------

* サンプル2

化物語01_frame450.png
フィルター無し
---------------------------------------------------------------

化物語01_frame450_Convolution3D-animeHQ.png
1:Convolution3D
---------------------------------------------------------------

化物語01_frame450_fft3dfilter-1.png
2:fft3Dfilter その1
---------------------------------------------------------------

化物語01_frame450_fft3dfilter-2.png
3:fft3Dfilter その2
---------------------------------------------------------------

化物語01_frame450_fft3dgpu-1.png
4:fft3dGPU
---------------------------------------------------------------

** サンプル2の拡大 その1
化物語01_frame450_x3.png
フィルター無し
---------------------------------------------------------------

化物語01_frame450_x3_Convolution3D-animeHQ.png
1:Convolution3D
---------------------------------------------------------------

化物語01_frame450_x3_fft3dfilter-1.png
2:fft3Dfilter その1
---------------------------------------------------------------

化物語01_frame450_x3_fft3dfilter-2.png
3:fft3Dfilter その2
---------------------------------------------------------------

化物語01_frame450_x3_fft3dgpu-1.png
4:fft3dGPU
---------------------------------------------------------------

** サンプル2の拡大 その2

化物語01_frame450_x5.png
フィルター無し
---------------------------------------------------------------

化物語01_frame450_x5_Convolution3D-animeHQ.png
1:Convolution3D
---------------------------------------------------------------

化物語01_frame450_x5_fft3dfilter-1.png
2:fft3Dfilter その1
---------------------------------------------------------------

化物語01_frame450_x5_fft3dfilter-2.png
3:fft3Dfilter その2
---------------------------------------------------------------

化物語01_frame450_x5_fft3dgpu-1.png
4:fft3dGPU
---------------------------------------------------------------
posted by nyaanyaaa at 18:54| Comment(2) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年07月12日

0907期(09年夏)のavsテンプレ rev1

* HV作品
0904期から変更点
・tsをDGIndex v1.55でd2v保存してDGDecode.dllで読み込むようにした
・VFAPIを経由しないためtsからx264に渡す間にRGB変換が無いと思うので、GradFun2DBmodはオプション扱いにした。
 ただし、tsで視聴してバンディングがあった場合だけ適用する。

#avsテンプレ開始
set out_name=""
PluginPath=""
TSFilePath=""
LoadPlugin("\dgmpgdec155\DGDecode.dll")
LoadPlugin( PluginPath + "Convolution3DYV12.dll")
LoadPlugin( PluginPath + "EEDI2.dll")
LoadPlugin( PluginPath + "TDeint.dll")
LoadPlugin( PluginPath + "TIVTC.dll")

LoadPlugin( PluginPath + "gradfun2db.dll")
LoadPlugin( PluginPath + "AddGrainC.dll")
LoadPlugin( PluginPath + "RemoveGrain.dll")
LoadPlugin( PluginPath + "mt_masktools-25.dll")
Import( PluginPath + "GradFun2DBmod.avs")

LoadPlugin( PluginPath + "warpsharp.dll")
LoadPlugin( PluginPath + "LoadPluginEx.dll")
video = DGDecode_MPEG2Source( TSFilePath + %video_file%, idct=5)
audio = WavSource( TSFilePath + "%audio_file%.wav")
AudioDub(video, audio)

AssumeTFF
# Trim
# -----------------
#
#
# -----------------
#
#
# -----------------
#
#
# -----------------
#
#
# -----------------
Trim(,)+Trim(,)+Trim(,)+Trim(,)
#

TIVTC24P2()
Convolution3D(preset="animeHQ")
Spline36Resize(1280,720)
WarpSharp(95,3,85,0)
#GradFun2DBmod()
function TIVTC24P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}
return last

(09/07/14追加)* HV作品(可変フレームレート用)
PluginPath=""
TSFilePath=""
LoadPlugin("\dgmpgdec155\DGDecode.dll")
LoadPlugin( PluginPath + "Convolution3DYV12.dll")
LoadPlugin( PluginPath + "EEDI2.dll")
LoadPlugin( PluginPath + "TDeint.dll")
LoadPlugin( PluginPath + "TIVTC.dll")
LoadPlugin( PluginPath + "Its.dll")
LoadPlugin( PluginPath + "gradfun2db.dll")
LoadPlugin( PluginPath + "AddGrainC.dll")
LoadPlugin( PluginPath + "RemoveGrain.dll")
LoadPlugin( PluginPath + "mt_masktools-25.dll")
Import( PluginPath + "GradFun2DBmod.avs")
LoadPlugin( PluginPath + "warpsharp.dll")
LoadPlugin( PluginPath + "LoadPluginEx.dll")
video = DGDecode_MPEG2Source( TSFilePath + ".d2v", idct=5)
audio = WavSource( TSFilePath + ".wav")
AudioDub(video, audio)
AssumeTFF
# Trim
# -----------------
#
#
# -----------------
#
#
# -----------------
#
#
# -----------------
#
#
# -----------------
Trim(,)+Trim(,)+Trim(,)+Trim(,)
#
its(def=".def", fps=-1, output=".tmc")
#TIVTC30P2()
Convolution3D(preset="animeHQ")
Spline36Resize(1280,720)
WarpSharp(95,3,85,0)
GradFun2DBmod()
function TIVTC24P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}
function TIVTC30P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
return clip
}
return last
--avs file end
TIVTC30P2関数はTIVTC24P2関数の最後の行「clip = clip.TDecimate(mode=1) 」を消しただけの手抜き。

defファイルのテンプレ
--def file start
set [24] 24f = 'TIVTC24P2()'
set [30] 30f = 'TIVTC30P2()'
set [60] 60f = 'TDeint(mode=1)'
default 24 = 24f
default 30 = 30f
default 60 = 60f
-[24]
-[30]
-[24]
mode fps_adjust = on
--def file end
[60]は0904期の名残。

* SD作品
tvkがまさかのHV放送で今期はSD作品のエンコが無さそう。
SDがあった場合は、0904期をベースにしてd2v読み込みに変更して終わるつもり。


* SD放送(BS2)
現在はグイン・サーガのみ。
解像度は720x480のままにし、x264オプションのSARでアスペクト比を設定することにした。結果、HV作品に比べて恐ろしく早いエンコード速度になった。HV二比べ4倍速(6〜8fps)ほどで終わる。avsテンプレは画面サイズ変更が無いだけHV作品と同じ。
(修正)そもそも画像サイズが違うのでエンコ速度の違いはあまり意味は無いかもしれない。画像サイズがHV(1280*720)の1/3程でもあるし・・。
posted by nyaanyaaa at 13:01| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年02月15日

テンプレートavsの変更(20090215)

#動画と音声ファイルを指定。ソースがMPEG2-TSの場合は、DGIndexで分離して動画はd2v形式、音声は分離したaacをToWaveでディレイを解消したwavを指定する。
DGDecode_MPEG2Source( )
AudioDub( )

# フィールドオーダーはトップ
AssumeTFF


# TrimでCMカット
# -----------------

# VFAPIを通してるのでRGB形式をx264にも渡せるようにYV12に変換している。VFAPIの設定でストレート変換してるから、matrixはRec709でたぶんあってると思う。
#ConvertToYV12(matrix="Rec709",interlaced=true)
#d2vに変更したことで不要になった

# 少々補正
ColorYUY2(matrix="rec709s", interpolation="411->422",interlaced=true)

# ColorMatrixでSMPTE 240Mに変換するとともに、フルレンジに変換。
#ColorMatrix(mode="Rec.709->SMPTE 240M",source=0, dest=3, clamp=3, interlaced=true, inputFR=false , outputFR=true, hints=false, d2v="", debug=false, thrdmthd=0, opt=0)
#Rec709のままx264に入力するので使用しなくなった。

# インタレ解除
TDeint(mode=2, type=2, mtnmode=3, full=false, chroma=true, tryweave=true, link=1, slow=2)

# 間引き
TDecimate(mode=7, hybrid=0, dupThresh=0.7, blockx=8, blocky=8, chroma=true, batch=true)

# 2Dノイズ、時間軸ノイズ除去
Convolution3D(preset="animeHQ")

# 1440*1080からリサイズ。超額縁のときは1024,576
Spline36Resize(1280,720)

# シャープ化
WarpSharp(95,3,85,0)

# 使おうかどうしようかでコメントアウト中、今のところとらドラに使う予定。
#MSharpen(15,40,true,false,false)

# バンディング処理
gradfun2db(thr=1.8)
posted by nyaanyaaa at 12:54| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年01月09日

非線形処理な先鋭化フィルタ

ぼんやりした線を先鋭化するのにAviUtl用フィルタの「非線形処理な先鋭化フィルタ」を試してみた。相変わらずソースはとらドラに。

avsでの記述は、WarpSharpの前に下のソースを差し込んで試してみた。「非線形処理な先鋭化フィルタ」の値はdefaultのまま。
----ここから
ConvertToYUY2()
ConvertYUY2ToAviUtlYCFix()
AU_prefilter(100,false,false)
AU_nlsharpen(30,0,30,20,0,0,true,true,false,true)
ConvertAviUtlYCToYUY2Fix()
ConvertToYV12()
----ここまで

上が「非線形処理な先鋭化フィルタ」を有効、下は無効の画像。
au_nlsharpen_off_ps.png
au_nlsharpen_on_ps.png
PSのロゴはあまり変化していないけど、右下にある「Rマーク」がぼんやりしてしまった。ソースでも1か2pxしかなかった○やRの白部分が先鋭化で薄くなってしまったみたい。


au_nlsharpen_off_toradora.png
au_nlsharpen_on_toradora.png
拡大すると先鋭化したほうは白背景との境界で濃い色の縁取りが出来てる。等倍で見るとその影響か若干くっきりしてる。

au_nlsharpen_off_toradora_main1.png
au_nlsharpen_on_toradora_main1.png
口元の線や目元がくっきりしたのが等倍でわかるほどになってる。

エンコードして再生したときに、視覚的に変わるかはまだ試していないけれど効果はあるんじゃないかと期待してみたい。

欠点は「非線形処理な先鋭化フィルタ」を適用するとエンコード速度が(当環境で)0.3fps落ちる。
posted by nyaanyaaa at 19:14| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009年01月06日

ColorMatrixでレンジ調整

ColorMatrixのinputFRとoutputFRでfull-range [0-255]とlimited-range [16-235/240]の指定があったので、これを使ってレンジの調整を行うように2009/01版は変更を加えてみた。

#avsに記述してあるColorMatrix行
ColorMatrix(mode="Rec.709->SMPTE 240M",source=0, dest=3, clamp=3, interlaced=true, inputFR=false , outputFR=true, hints=false, d2v="", debug=false, thrdmthd=0, opt=0)

上図はColorMatrix行をコメントアウトしてVirtualDubで開いたもの、下図はColorMatrix行を有効にして開いたもの。
vfapi_straight_ps.png

colormatrix_fullrange_ps.png

もう一個サンプル
vfapi_straight_toradora.png

colormatrix_fullrange_toradora.png

PSロゴの背景がRGB=(0,0,0)、ロゴ部分がRGB=(255,255,255)じゃないかと仮定して調節したから、仮定が崩れると色がおかしいことになってしまう(="=)
posted by nyaanyaaa at 18:01| Comment(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2009/01版Avisynthアニメ用テンプレ

#プラグインのロードを明示化
Import( PPath + "vfapi2.avs")
LoadPlugin( PPath + "Convolution3DYV12.dll") #ドット妨害・クロスカラー低減
LoadPlugin( PPath + "gradfun2db.dll") #バンディング除去
Import( PPath + "GradFunkMirror.avs")
LoadPlugin( PPath + "warpsharp.dll") #WarpSharp
LoadPlugin( PPath + "MSharpen.dll") #MSharpen

#動画と音声ファイルを指定。ソースがMPEG2-TSの場合は、TSDemuxで分離して動画はm2v形式、音声はToWaveでディレイを解消したwavを指定する。
VFAPISource( )
AudioDub( )

# フィールドオーダーはトップ
AssumeTFF


# TrimでCMカット
# -----------------

# VFAPIを通してるのでRGB形式をx264にも渡せるようにYV12に変換している。VFAPIの設定でストレート変換してるから、matrixはRec709でたぶんあってると思う。
ConvertToYV12(matrix="Rec709",interlaced=true)

# 少々補正
ColorYUY2(matrix="rec709s", interpolation="411->422",interlaced=true)

# ColorMatrixでSMPTE 240Mに変換するとともに、フルレンジに変換。
ColorMatrix(mode="Rec.709->SMPTE 240M",source=0, dest=3, clamp=3, interlaced=true, inputFR=false , outputFR=true, hints=false, d2v="", debug=false, thrdmthd=0, opt=0)

# インタレ解除
TDeint(mode=2, type=2, mtnmode=3, full=false, chroma=true, tryweave=true, link=1, slow=2)

# 間引き
TDecimate(mode=7, hybrid=0, dupThresh=0.7, blockx=8, blocky=8, chroma=true, batch=true)

# 2Dノイズ、時間軸ノイズ除去
Convolution3D(preset="animeHQ")

# 1440*1080からリサイズ。超額縁のときは1024,576
Spline36Resize(1280,720)

# シャープ化
WarpSharp(95,3,85,0)

# 使おうかどうしようかでコメントアウト中、今のところとらドラに使う予定。
#MSharpen(15,40,true,false,false)

# バンディング処理
gradfun2db(thr=1.8)
posted by nyaanyaaa at 17:47| Comment(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2008年11月28日

今期テンプレート



PPath = "" #Avisynth Plugin Directory


VPath = "" #動画ファイルディレクトリ


LoadPlugin( PPath + "DGDecode.dll") #D2Vファイル読み込み


LoadPlugin( PPath + "MPEG2Dec3dg.dll") #MPEG2読み込み


Import( PPath + "vfapi2.avs")


LoadPlugin( PPath + "ColorMatrix.dll") #色空間変換


LoadPlugin( PPath + "Autocrop.dll") #フレームサイズ検出


LoadPlugin( PPath + "Convolution3DYV12.dll") #ドット妨害・クロスカラー低減


LoadPlugin( PPath + "gradfun2db.dll") #バンディング除去


Import( PPath + "GradFunkMirror.avs")


LoadPlugin( PPath + "warpsharp.dll") #WarpSharp


VFAPISource( VPath + ".m2v" )


AudioDub(last,WAVSource( VPath + ".wav"))


AssumeTFF


Trim(1812,20361) ++ Trim(23959,48473) ++ Trim(51172,52159)


ConvertToYV12(interlaced=true)


ColorMatrix(mode="Rec.709->smpte 240m", source=0, dest=3, clamp=2, interlaced=true, hints=false, debug=false, threads=0, thrdmthd=0, opt=3)


TDeint(mode=2, type=2, mtnmode=3, full=false, chroma=true, tryweave=true, link=1, slow=2)


TDecimate(mode=7, hybrid=0, dupThresh=0.7, blockx=8, blocky=8, chroma=true, batch=true)


Convolution3D(preset="animeHQ")


Lanczos4Resize(1280,720)


WarpSharp(95,3,85,0)


ConvertToYV12(interlaced=false)


gradfun2db(thr=1.8)


アニメ用共通avsテンプレート。今のところは24/30混合でも24にしてエンコード。次期クールにはvfsに手を出してみたいな。そうすると作品別テンプレート作らないといけなくなりそうだけど。


gradfun2dbのバンディング低減フィルタを利用すると、階調飛びの段数が増えて改善されてると思う。mp4を1フレーム毎に見られる環境を整えて確認してみたい。VirtualDubで開ける方法転がってないかなぁ。


ドラマにはアニメ用に使っているテンプレートから


TDecimate(mode=7, hybrid=0, dupThresh=0.7, blockx=8, blocky=8, chroma=true, batch=true)


gradfun2db(thr=1.8)


を削除して、


Convolution3D(preset="animeHQ")  を Convolution3D(preset="movieHQ")


に変更しただけのものを使ってる。


posted by nyaanyaaa at 10:54| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2008年11月08日

色空間変換修正



色空間変換をやり過ぎてたようだ。


フィルタの都合でやっていたけれど、よく見るとLoadPluginで記述が抜けていてYV12対応Pluginを読んでいなかった。致命的すぎる・・・。


修正を加えてYV12に1度変換して出力まで変換無しで済ませられた。


VitrualDubで開いた段階で確認できる程度に改善できた気がする。


posted by nyaanyaaa at 10:46| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2008年11月07日

色空間変換



エンコしたかんなぎを見たところ、顔のアップのところで口や目の周りなどで肌色の急激な変化が見られて不自然になってることに気づいた。普通に再生していても気になるから、修正したい。


エンコ用PCのメンテが終わり次第、エンコ前、VirtualMobで開いた段階、で該当部分を確認してみよう。


もしエンコしなおしになると時間が厳しい、1話4時間かかっているから。


http://av.watch.impress.co.jp/docs/20081106/thomson.htm


こういうアクセラレータがほしくなる。avsやx264で使える製品で。


posted by nyaanyaaa at 17:52| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

2008年11月02日

avisynthテンプレファイル(2008/10)



今期使用しているavisynthテンプレファイル。


# ディレクトリ設定


PPath = "\\" #Avisynth Plugin Directory


VPath = "\\" #動画ファイルディレクトリ


# Plugin読み込み


LoadPlugin( PPath + "DGDecode.dll")


LoadPlugin( PPath + "MPEG2Dec3dg.dll")


Import( PPath + "vfapi2.avs")


#


LoadPlugin( PPath + "ColorMatrix.dll")


LoadPlugin( PPath + "AutoYUY2.dll")


LoadPlugin( PPath + "Convolution3D.dll")


LoadPlugin( PPath + "gradfun2db.dll")


Import( PPath + "GradFunkMirror.avs")


LoadPlugin( PPath + "warpsharp.dll")


# 読み込み


VFAPISource( VPath + "video.m2v" )


AudioDub(last,WAVSource( VPath + "audio.wav"))


# フィルタ開始


# フィールド指定


AssumeTFF


# CMフレームカット


Trim(2748,7452) ++ Trim(9252,24385) ++ Trim(26184,48750) ++ Trim(50550,51298)


# 色空間変換


ConvertToYV12(interlaced=true , matrix="rec709")


ColorYUY2(interpolation = "411->422R")


AutoYUY2()


# インターレース解除


TDeint(mode=2, type=2, mtnmode=3, full=false, chroma=true, tryweave=true, link=1, slow=2)


# 逆テレシネ - 24fps化


TDecimate(mode=7, hybrid=0, dupThresh=0.7, blockx=8, blocky=8, chroma=true, batch=true)


# ノイズ除去 - プリセットanimeHQ


Convolution3D(preset="animeHQ")


# リサイズ


Lanczos4Resize(1280,720)


# シャープ化


WarpSharp(95,3,85,0)


# 色空間変換


ColorMatrix(mode="Rec.709->SMPTE 240M",source=0,dest=3,clamp=2,interlaced=false)


ConvertToYV12(interlaced=false)


# バンディング低減


GradFunkMirror()


--ここまで--


使用順序が怪しい部分がある、特に色空間変換。


1回目でYV12に変換後YUY2にさらに変換しているけど、これが良いのかよく分かってない。


変換回数は少ないほうがいいって見かけたけれども、YV12->YUY2と2回していいものか。


バンディング低減フィルタの場所も微妙な気がする。


リサイズ前に掛けたほうが良いのかなあ。


インターレース解除と逆テレシネのオプション設定はx264の設定時に参考にした場所から、


そのまま書き写して使ってる。


可変フレームレートはまだ手が出てなくて、24/30混合でも上の設定でエンコしちゃっている。


posted by nyaanyaaa at 20:22| Comment(0) | TrackBack(0) | Avisynth | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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