お前らのショボイAvisynthスクリプト貼ってくださいpart2

このエントリーをはてなブックマークに追加
1名無しさん@編集中
前スレ
お前らのショボイAvisynthスクリプト貼ってください
http://pc8.2ch.net/test/read.cgi/avi/1030537641/

関連スレ
Avisynthを絶讃ιょぅょ Part21
http://pc8.2ch.net/test/read.cgi/avi/1139403989/


もっと貼れ
2名無しさん@編集中:2006/07/21(金) 22:28:59 ID:ven1fJLR
ごめんなさい貼ってください
3名無しさん@編集中:2006/07/21(金) 22:50:28 ID:9ej62NjT
立ったのか次スレ
あれだけ遅かったスレが1000近くまで行くとは感無量ですぞ
4名無しさん@編集中:2006/07/21(金) 23:35:59 ID:ven1fJLR
前スレの962さんが指摘してる端数切捨て問題解決してくださいよぉ
5名無しさん@編集中:2006/07/22(土) 00:16:36 ID:y6VUOZnw
にーやんのところでは
a = src.Trim(0,100).IT(fps=24, ref="TOP")
b = src.Trim(101,200).IT(fps=30, ref="TOP")
c = src.Trim(201,300).IT(fps=24, ref="TOP")

tcpath = "c:\tmp\timecode.txt"
all = EasyVFR_Create(src, a, tcpath)
all = all.EasyVFR_Append(b, tcpath)
all = all.EasyVFR_Append(c, tcpath)
all
だけど以下のようにすることにした
Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
clip=Eval("clip."+IVTC)
ff=clip.framecount
clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}
a = src.Trim(0,100).mod_FPS("""IT(fps=24, ref="TOP")""")
b = src.Trim(101,200).mod_FPS("""IT(fps=30, ref="TOP")""")
c = src.Trim(201,300).mod_FPS("""IT(fps=24, ref="TOP")""")
61:2006/07/22(土) 00:17:36 ID:y6VUOZnw
tcpath = "c:\tmp\timecode.txt"
all = EasyVFR_Create(src, a, tcpath)
all = all.EasyVFR_Append(b, tcpath)
all = all.EasyVFR_Append(c, tcpath)
all

これで解決か?
7名無しさん@編集中:2006/07/22(土) 00:18:53 ID:y6VUOZnw
お・・・assumefpsのところEvalいらねぇやw
8名無しさん@編集中:2006/07/22(土) 00:23:19 ID:y6VUOZnw
お・・・www
阿呆だ('A`)こっちじゃないと動かんね
Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
sn=clip.FramerateNumerator
sd=clip.FramerateDenominator
clip=Eval("clip."+IVTC)
ff=clip.framecount

clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}
9名無しさん@編集中:2006/07/22(土) 07:44:56 ID:Tfq4UgGw
なくて寂しかった。>>1
前スレには大いに助けられたなあ
10名無しさん@編集中:2006/07/25(火) 19:54:19 ID:h5CHz3K4
AE並みの編集が可能なスクリプト群を暇な時に作ってください
11名無しさん@編集中:2006/08/08(火) 10:05:34 ID:ZLPqWeg6
新スレおめ
12名無しさん@編集中:2006/08/08(火) 13:51:27 ID:JWH0oHzQ
EasyVFR作ってくれたヒトアリガトー
マジ重宝してまつ
13名無しさん@編集中:2006/09/05(火) 19:44:23 ID:t9/4UIef
ffunction KeepAspectResize1(clip clip, int newW, int newH, int "bcolor")
{
aspect = (float(clip.width) / float(clip.height))
w = int(newH * aspect)
b = newW >= w
w = b ? w : newW
h = b ? newH : int(newW / aspect)
h = int(h / 2) * 2
c = clip.Lanczos4Resize(w, h)
borderW = newW - w
borderH = newH - h
c = c.AddBorders(borderW/2, borderH/2,
\ borderW-borderW/2, borderH-borderH/2, bcolor)
return c
}

14名無しさん@編集中:2006/09/20(水) 23:39:43 ID:JAZ7dmNq
     。 ο     ,.。 ο
   ο
     ,.  ゚   ο    o
   。   o
 ο     。    ゚  ο
  ,ヘ、 ,.:-一;:、ο人がまるでいない・・・
_,.-';:  ミ;;:;,. _,.;:゙ミ '^ー、 ο    。
    ,r( ´・ω・) ,.*。\,r'!  ο
.,。   ツィー=ニ彡'   ,.。 _j
   〜'l  つとノ  '" {-'
    ,.;:;u‐―u' ,.。* ._,.-!
-=、,r'        ,r='i:,ィ'
 ,.*。    ,__,.-=':トー'
ヘ_,、   /;;::-一'
‐-、`-'iニレ'^'
15名無しさん@編集中:2006/10/09(月) 15:29:33 ID:B67vZM4M
EasyVFRでタイムコードだしてtc2cfrに投げると
Number of data chunks does not match frame count.
とかでて止まる。ナニコレ。誰か助けて。

# timecode format v1
Assume 29.970030
0,4649,23.976025
4650,7341,29.970030
7342,35289,23.976025

タイムコードが↑でaviは29.97fpsでできてる模様。
16名無しさん@編集中:2006/10/12(木) 21:13:17 ID:ncqGs7PQ
前スレのdatキボンヌ
17名無しさん@編集中:2006/10/12(木) 21:32:16 ID:cRL49dXh
18名無しさん@編集中:2006/10/19(木) 01:38:47 ID:c0V6DE1P
に〜やんのところ池
19sage:2006/10/29(日) 23:24:45 ID:FuQtmUD3
>>15

それ多分、端数問題で引っかかってる。
俺もそのエラー出たけど

Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
sn=clip.FramerateNumerator
sd=clip.FramerateDenominator
clip=Eval("clip."+IVTC)
ff=clip.framecount

clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}

a = src.Trim(0,100).mod_FPS("""IT(fps=24, ref="TOP")""")
b = src.Trim(101,200).mod_FPS("""IT(fps=30, ref="TOP")""")
c = src.Trim(201,300).mod_FPS("""IT(fps=24, ref="TOP")""")

tcpath = "c:\tmp\timecode.txt"
result = EasyVFR_Create(src, a, tcpath)
result = all.EasyVFR_Append(b, tcpath)
result = all.EasyVFR_Append(c, tcpath)
result


ってな具合に>>8のをEasyVFRに加えたら出来た。
20名無しさん@編集中:2006/10/29(日) 23:28:25 ID:FuQtmUD3
うぉ・・・・
あまりに久しぶりだったからsageの書く場所間違えてしまった。
スミマセン・・・・。
21名無しさん@編集中:2006/10/30(月) 02:05:10 ID:Urc+xqmd
♪ ∧,_∧
   (´・ω・`) ))
 (( ( つ ヽ、   ♪
   〉 とノ )))
  (__ノ^(_)
22名無しさん@編集中:2006/11/13(月) 14:31:20 ID:O7l1lOuS
ITで30fpsのインタレ解除って出来ない?
6フレームに1フレームミスるんだけど・・・
2322:2006/11/13(月) 14:31:54 ID:O7l1lOuS
ごめん場所間違えた
24名無しさん@編集中:2006/11/15(水) 18:32:03 ID:wkPsdoUE
#ASYNTHER QuickTime 30.00fps
LoadVFAPIPlugin("C:\Program Files\AviSynth 2.5\plugins\QTReader.vfp","QTReader")
[QTReader("%f")]
ChangeFPS(30.00)
FlipVertical

でquicktimeをvirtualdubで読み込めたんですが。
ついでにwavで出力してる音声を読み込むのってどう書きますか?
25名無しさん@編集中:2006/11/15(水) 18:48:47 ID:nQ5D0RwA
ここは自慢のスクリプトを貼り付けてそれを肴に語らうところらしいよ。
どこかで聞いた話じゃ2chのAviSynth関連スレは初心者お断りなんだって。
26名無しさん@編集中:2006/11/15(水) 18:51:21 ID:kqED7NZk
とゆうかVDスレでも似たようなこともうきいてるじゃんか
27名無しさん@編集中:2006/11/15(水) 22:38:15 ID:OF+qTVTn
AudioDub(QTReader(), WaveSource() )
28名無しさん@編集中:2006/11/15(水) 22:39:36 ID:OF+qTVTn
WAVSource()
29名無しさん@編集中:2006/11/16(木) 00:24:48 ID:6IXOD+ie
>25
勉強する意欲があり、向上心があり、独力でできるところまでやっている事が伝わってくる
そんな初心者はとても歓迎されてるよ。
自分では調べもしない、試しもしない、他人を利用することしか頭に無い
そんな奴は初心者とは呼べない。synth関連スレに限らずね。

ま、ここはショボスクでも何でもいいからとにかく貼るスレだから、とりあえず貼れ。とっとと貼れ。
30名無しさん@編集中:2006/11/16(木) 21:39:56 ID:vTv912wj
>>29
だったら本スレで質問しろってことだ
それより早く貼ってくだちい
31名無しさん@編集中:2006/11/17(金) 01:51:26 ID:lo5LkW8J
手動逆テレシネフィルタ

function ITC(clip, order){

var a, l; //Declare variables.
a = new Array((1+2*order)%10 ,(4+2*order)%10 ,(6+2*order)%10, (8+2*order)%10);
l = a.sort() ;
AVS.inc=doubleweave(clip);//Sort the array.
AVS.inc=selectevery(inc,10,l[0],l[1],l[2],l[3]) ;
return AVS.inc;
}
32名無しさん@編集中:2006/11/17(金) 01:54:29 ID:lo5LkW8J
要warpsharp
もっと簡単なのあったらオシエテ
こんな感じでツカウ
ITCws = WScript("C:\Program Files\AviSynth 2.5\script\ITC.js", "JScript")
source=avisource("test.avi")
ITCws.WSInvoke("ITC",source,1)
33名無しさん@編集中:2006/11/24(金) 16:50:09 ID:+ASBD2Vz
IVTCの端数調整をした timecode v1 を出力するスクリプト
自分用なのでグローバル変数使いまくりの上,解り難いサンプル付属
意外に長くなったんでアップローダに上げました
直張りじゃないとまずいかな?

pass avisynth
http://www.uploda.org/uporg590915.zip.html
34名無しさん@編集中:2006/11/24(金) 16:59:03 ID:zPkmPH3s
オレはReena!->tbl->timecodev2->MP4ッス
35名無しさん@編集中:2006/11/25(土) 01:42:37 ID:+MzjhZT0
>>33
ここに貼ったら?そのためにあるんだし
36名無しさん@編集中:2006/11/25(土) 03:12:23 ID:evKmd4rO
単に長いことだけが理由なら、ここにも貼ってほしいね。
寂しいスレだし。
37名無しさん@編集中:2006/11/25(土) 08:34:28 ID:uiH2xf57
>>33
そこ早すぎ。もう流れてるよ。
38名無しさん@編集中:2006/11/25(土) 09:59:52 ID:oQBPEXFf
問題ないようなんで貼ってみる

function inittimecode ( clip c, string "filename" ) {
global timecode_filename = default( filename, "default-timecodes.txt" )
global sourceclip = c
global prevframe = -1
global tc_implicit = false
WriteFileStart( BlankClip(length=0), timecode_filename, """ "# timecode format v1"+chr(10)+"Assume "+string(sourceclip.framerate) """ )
}

function tcimplicit ( int a, int b, string "filter", bool "avg" ) {
global tc_implicit_filter = default( filter, "noop()" )
global tc_implicit_avg = default( avg, false )
global tc_implicit = true
global tc_implicit_st = a
global tc_implicit_ed = b
}

global a24d = """Auto24FPS( drop=false,mode="blend" )"""
global it = "IT( diMode=0 )"+a24d
global a24 = """Auto24FPS( mode="blend" )"""
global a602 = "DoubleWeave().a60224()"
global pd = "DoubleWeave().Pulldown( 1,3 )"
global td = "TDeint( mode=1 )"
global bd = """AutoDeint( "blend" )"""
global tf = "TFM().TDecimate()"+a24d
global ed = "SeparateFields() EEDI2(field=-2) merge(SelectEven(),SelectOdd())"
39名無しさん@編集中:2006/11/25(土) 10:00:15 ID:oQBPEXFf
function tc ( int a, int b, string "filter", bool "avg", bool "ignore" ) {
tc_implicit && (a >= tc_implicit_st) && (a <= tc_implicit_ed) && (tc_implicit_st != a) ? \
tc_main( tc_implicit_st,a-1,tc_implicit_filter,tc_implicit_avg ) : nop()

global tc_implicit_st = tc_implicit ? b+1 : 0
tc_main( a,b,filter,avg,ignore )

return last
}

function tc_main ( int a, int b, string "filter", bool "avg", bool "ignore" ) {
init = prevframe < 0 ? true : false
global prevframe = init ? a-1 : prevframe

ignore = default( ignore, false )
avg = default( avg, false )
ignore ? nop() : Assert( prevframe+1 == a, "tc: framenumber no much, "+string(a)+" - "+string(b) )
global prevframe = b

filter = default( filter, "noop()" )
orig = sourceclip.trim( a,b )
proc = eval( "orig."+filter )
proc.framecount > 1 && (avg ? false:true) ? \
maketimecode( init ? BlankClip(length=0) : cur, orig, proc ) : \
maketimecode2( init ? BlankClip(length=0) : cur, orig, proc )

global cur = init ? proc.AssumeFPS( sourceclip.framerate ) : cur + proc.AssumeFPS( sourceclip.framerate )

global audiosource = init ? orig : audiosource + orig
return sourceclip.HasAudio() ? AudioDubEx( proc,audiosource ) : proc
}
40名無しさん@編集中:2006/11/25(土) 10:00:36 ID:oQBPEXFf
function tcdraw () {
tc_implicit && (tc_implicit_st <= tc_implicit_ed) ? \
tc_main( tc_implicit_st,tc_implicit_ed,tc_implicit_filter,tc_implicit_avg ) \
: nop()

global tc_implicit = false
return sourceclip.HasAudio() ? AudioDubEx( cur,audiosource ) : cur
}

function noop ( clip c ) { return c }

function maketimecode (clip base, clip orig, clip ivtc) {
fps = ivtc.framerate
section = base.framecount + ivtc.framecount-2
fraction = fracivtc( orig, ivtc )
tc = string(base.framecount) + "," + string(section) + "," + string(fps) + chr(10) + string(section+1) + "," + string(section+1) + "," + string(1000 / (1000/fps + fraction))
WriteFileStart( orig, timecode_filename, "tc", append=true )
}

function fracivtc ( clip orig, clip ivtc ) {
originaltime = 1000 / orig.framerate * orig.framecount
ivtctime = 1000 / ivtc.framerate * ivtc.framecount
return originaltime - ivtctime
}
41名無しさん@編集中:2006/11/25(土) 10:00:58 ID:oQBPEXFf
function maketimecode2 (clip base, clip orig, clip ivtc) {
fps = ivtcfps( orig, ivtc )
tc = string(base.framecount) + "," + string(base.framecount+ivtc.framecount-1) + "," + string(fps)
WriteFileStart( orig, timecode_filename, "tc", append=true )
}

function ivtcfps ( clip orig, clip ivtc ) {
originaltime = 1000 / orig.framerate * orig.framecount
return 1000 / (originaltime / ivtc.framecount)
}

ここまで
ユーザ側で使うのは inittimecode, tc, tcimplicit, tcdraw の4つ

inittimecode ( clip c, string "filename" )
c ソースクリップ.このクリップが操作対象になる
filename 出力されるタイムコードファイル名

tc ( int a, int b, string "filter", bool "avg", bool "ignore" )
a 開始フレーム番号
b 終了フレーム番号
filter 区間(a から b)に掛けるフィルタ.主にIVTC
フィルタ後のフレーム数に合わせたタイムコードが出力されるので,ある程度自由にフレーム数を変えられる
"DoubleWeave().SelectEvery( 10, 0,5 )" とか,動かない場面なら "trim(0,-1)" でもいい
フィルタ後のクリップは勝手に保存される

tcdraw ()
tc() で保存してたクリップを引き出す.とりあえず最後に置く

42名無しさん@編集中:2006/11/25(土) 10:01:17 ID:oQBPEXFf
使用例
--
prefix="foo"
episode="1"
file=prefix+".d2v"
wav = prefix+" T01 48K 16bit 2ch.wav"

v = mpeg2source( file ).AssumeTFF()
a = WavSource( wav )
AudioDub( v,a )
inittimecode( prefix+episode+"-timecodes.txt" )
tc( 0,432,tf )
tc( 433,976,td )
tc( 977,1324,tf )
tc( 1325,1403,pd )
tc( 1404,1500,tf )
tcdraw()

crop( 8,0,-8,0 )
KenKunNRT()
return last
--

tcimplicit を使うと上のはこう書ける
--
inittimecode( prefix+episode+"-timecodes.txt" )
tcimplicit( 0,1500,tf )
tc( 433,976,td )
tc( 1325,1403,pd )
tcdraw()
--
43名無しさん@編集中:2006/11/25(土) 13:06:04 ID:aR3nnS3S
長いって言うから100レスくらい使うのかと思ってたのに
44名無しさん@編集中:2006/12/08(金) 01:05:46 ID:PxLpWLrv
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶.\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄.‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|      ∧ .∧  . ‖
II;; |        ||  .|!|___|!|      .(,,・ω・)<誰もいない・・・
II;; |        ||  .|     ...| ̄ ̄ ̄| ..(つ旦). ..‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i|| ̄∪∪ ̄l| |
""""''""" ""''"""''  ''""""""''  ''""" """"''
45名無しさん@編集中:2006/12/08(金) 22:15:27 ID:qwumTWsL
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶丶\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄ ̄‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|    ∧ .∧      ‖
II;; |        ||  .|!|___|!|    (,,・ω・) (´ー`)<いないねー
II;; |        ||  .|     ...| ̄ ̄ ̄(つ旦) (つ旦) ‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i||∪∪ ̄∪∪l| |
""""''""" ""''"""''  ''""""""''  ''""" """"'' """''
46名無しさん@編集中:2006/12/09(土) 10:05:02 ID:AYb83NR1
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶.\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄.‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|             ‖
II;; |        ||  .|!|___|!||            ‖
II;; |        ||  .|     ...| ̄ ̄ ̄|        ‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i|| ̄ ̄ ̄ ̄l| |
""""''""" ""''"""''  ''""""""''  ''""" """"''
47名無しさん@編集中:2006/12/09(土) 10:56:00 ID:X3D6jCD4
いるお
48名無しさん@編集中:2006/12/23(土) 03:25:02 ID:RI79Kt7w
ファイル読み込み関数。
一回作ればあとは楽出来るかな、と。

function LoadFile(string filename) {
_len = Findstr(RevStr(filename), ".") - 1
_ext = RightStr(filename, _len)
clip =
\ ((_ext == "avi")
\ ? LoadAvi(filename)
\ :(_ext == "d2v")
\ ? LoadD2v(filename)
\ :(_ext == "mpeg" || _ext == "mpg" || _ext == "vob")
\ ? LoadMpeg(filename)
\ :(_ext == "aup")
\ ? LoadAup(filename)
\ :(_ext == "tpr")
\ ? LoadTpr(filename)
\ :(_ext == "mov" || _ext == "3gp" || _ext == "3gp2")
\ ? LoadQt(filename)
\ :(_ext == "wav")
\ ? LoadWav(filename)
\ :(_ext == "mpa" || _ext == "mp3")
\ ? LoadMpa(filename)
\ : LoadDs(filename)
\ )
return clip
}
49名無しさん@編集中:2006/12/23(土) 03:25:52 ID:RI79Kt7w
function LoadDs(string filename) {
return DirectShowSource(filename)
}
function LoadAvi(string filename) {
LoadAviUtlInputPlugin(dir + "ds_input.aui", "DSInput")
return DSInput(filename)
}
function LoadD2v(string filename) {
LoadPlugin(dir + "DGDecode.dll")
return MPEG2Source(filename)
}
function LoadMpeg(string filename) {
LoadAviUtlInputPlugin(dir + "m2v.vfp", "MPEGInput")
return MPEGInput(filename)
}
50名無しさん@編集中:2006/12/23(土) 03:28:32 ID:RI79Kt7w
function LoadAup(string filename) {
LoadVFAPIPlugin(dir + "aviutl.vfp", "AUPInput")
return AUPInput(filename)
}
function LoadTpr(string filename) {
LoadVFAPIPlugin(dir + "TMPGEnc.vfp", "TPRInput")
return TPRInput(filename)
}
function LoadQt(string filename) {
return QTInput(filename, audio = true)
}
function LoadWav(string filename) {
return WavSource(filename)
}
function LoadMpa(string filename) {
LoadPlugin(dir + "NicAudio.dll")
return NicMPASource(filename)
}
51名無しさん@編集中:2006/12/23(土) 04:36:03 ID:AFfnCPQo
LoadAviでDSInput使う意味は?AVISourceじゃだめなん?
5248:2006/12/23(土) 20:00:56 ID:RI79Kt7w
LoadFile作ったのが半年ぐらい前で、
LoadAviは更にその半年前ぐらいに作ったでしょうか。
もう作った当時の思考が思い出せません。

擬似VFRでおかしかったか音ズレが起きたか、とかだったと思い、
由来をちょっと探してみました。

推測するに、携帯動画変換君Wikiの、
“可変フレームレートや120fpsのWMVファイルを読み込む”項を参考に作ってそのまま、
でしょうか。

下記の様に変えて様子みてみます。

function LoadDs(string filename) {
LoadAviUtlInputPlugin(dir + "ds_input.aui", "DSInput")
return DSInput(filename)
}
function LoadAvi(string filename) {
return AVISource(filename)
}
53名無しさん@編集中:2007/01/06(土) 21:38:42 ID:fyypBQ9Y
もう一つのFilterRange
function FilterRange2(clip clip,int "start",int "end",string "filter"){
global start=start
global end=end
clip=conditionalfilter(clip,Eval("clip."+filter),clip,"current_frame>=start&¤t_frame<=end","=","true",false)
return clip
}
54名無しさん@編集中:2007/01/21(日) 02:40:26 ID:Yk4jAhSw
#for…繰り返し処理を行う
#  start  値の初期値
#  end   値の終了値
#  step  刻み値
#  filter 繰り返し分適応させるフィルタ(省略すると何もしません、“""”でも省略扱いです。)
#      繰り返しの値は“i”もしくは“crnt”で取得出来ます
#  merge  クリップ結合関数(省略すると最後に作成したクリップを返します、“""”でも省略扱いです。)
#      繰り返し途中に作成したクリップは早めに生成されたクリップが“c1”、
#      遅めに生成されたクリップが“c2”になります
#      この2つのクリップを1つのクリップに結合します。
function for(clip clip, int start, int end, int step, string "filter", string "merge") {
  filter = default(filter, "")
  merge = default(merge, "")
  merge = (("" != merge)? merge: "c2")
  i = start
  crnt = start
  next = crnt + step

  c1 = clip
  c2 = (("" != filter)? Eval("clip." + filter): clip)
  c2 = ((next < end) ? c2.for(next, end, step, merge, filter): c2)
  return ((next < end)? Eval(merge): c2)
}
55名無しさん@編集中:2007/01/21(日) 02:41:12 ID:Yk4jAhSw
#OffsetFrame…現在のフレームとは違うフレームの画像を表示する
#  ofst  表示するフレームの位置(+1なら次のフレーム、-1なら前のフレーム)
function OffsetFrame(clip clip, int ofst) {
  return  ((0 < ofst)
    \    ? clip.Trim(ofst+1,0)
    \  :(ofst < 0)
    \    ? clip.Loop((-ofst)+1, 0, 0)
    \    : clip
    \  )
}

#MovieThumbnail…サムネイルを作成する
#  size_x 1画面の横サイズ
#  size_y 1画面の縦サイズ
#  rpt_x  横に敷き詰める個数
#  rpt_y  縦に敷き詰める個数(0なら動画が終わるまで)
#  itvl  表示する時間間隔(フレーム)
function MovieThumbnail(clip clip, int size_x, int size_y, int rpt_x, int rpt_y, int itvl) {
  itvl = ((0 < itvl)? itvl: 30)
  size_x = ((0 < size_x)? size_x: 40)
  size_y = ((0 < size_y)? size_y: 30)
  rpt_x = ((0 < rpt_x)? rpt_x: 4)
  rpt_y = ((0 <= rpt_y)? rpt_y: 4)
  rpt_y = ((0 != rpt_y)? rpt_y: clip.FrameCount() / (itvl * rpt_x))

  clip = clip.LanczosResize(size_x, size_y)
  return clip.for(0, rpt_y, 1, "StackVertical(c1, c2)"
      \         , "OffsetFrame(" + String(rpt_x * itvl) + ")")
      \  .for(0, rpt_x, 1, "StackHorizontal(c1, c2)"
      \         , "OffsetFrame(" + String(itvl) + ")")
}
56名無しさん@編集中:2007/01/21(日) 02:44:58 ID:Yk4jAhSw
リアルタイム再生はまず無理ですね。
MovieThumbnail(80, 45, 6, 0, Int(1 * Framerate()))

ttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi70983.jpg.html
57名無しさん@編集中:2007/01/21(日) 16:13:03 ID:rXgc3GFG
>>54
あまり考えずにレスするけど、Loopじゃダメなん?
58名無しさん@編集中:2007/01/21(日) 16:39:30 ID:hz2fdV50
関数名がforってのは若干違和感が
59名無しさん@編集中:2007/01/21(日) 17:45:04 ID:y+OVAsZB
flvやasfとかの音ズレ対策にフレームレート設定にAssumeFPS使うのだけ
覚えて関数とかはいまいちわからんけどとりあえず保存しときたい汚いファイル
があんまりないからアニメのOPやCM(実写)ぐらいにしか使っていないのがむなしい
60名無しさん@編集中:2007/02/18(日) 06:31:37 ID:oBuNzTjy
# 使用例: EEDI2Bob(type=3, mthreshL=8, mthreshC=6, mthresh=0, lthresh=0, vthresh=0, estr=0, dstr=0, maxd=24, nt=76, pp=1, ColorMatrix="Rec.709->Rec.601")
function EEDI2Bob(clip i, int "type", int "cthresh", int "MI", int "blockx", int "blocky", int "mthreshL", int "mthreshC",
\ int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "nt", int "pp", string "ColorMatrix")
{
TYPE = default(type, 0)
CTHRESH = default(cthresh, 6)
MI = default(MI, 64)
BLOCKX = default(blockx, 16)
BLOCKY = default(blocky, 16)
MTHRESHL = default(mthreshL, 6)
MTHRESHC = default(mthreshC, 6)

MTHRESH = default(mthresh, 10)
LTHRESH = default(lthresh, 20)
VTHRESH = default(vthresh, 20)
ESTR = default(estr, 2)
DSTR = default(dstr, 4)
MAXD = default(maxd, 24)
NT = default(nt, 50)
PP = default(pp, 1)
61名無しさん@編集中:2007/02/18(日) 06:32:36 ID:oBuNzTjy
#CM = default(ColorMatrix, string("Rec.709->Rec.601"))
CM = default(ColorMatrix, string(""))

TDeint_Bob_Ovrfile = "TDeint_bob_OvrFile.txt"

i
Exist("TDeint_bob_OvrFile.txt") == false ? WriteFileStart(TDeint_Bob_Ovrfile, """ "#TDeint v1.1 by tritical" """, append=false) : nop()
AssumeFrameBased()
GetParity(i) ? AssumeTFF() : nop()
interp = SeparateFields(i).EEDI2(field=-2, mthresh=MTHRESH, lthresh=LTHRESH, vthresh=VTHRESH, estr=ESTR, dstr=DSTR, maxd=MAXD, nt=NT, pp=PP)
TDeint(mode=1, order=-1, type=TYPE, cthresh=CTHRESH, MI=MI,
\ blockx=BLOCKX, blocky=BLOCKY, mthreshL=MTHRESHL, mthreshC=MTHRESHC, edeint=interp, ovr="TDeint_bob_OvrFile.txt")
vinverse()
(CM != "") ? ColorMatrix(mode=CM) : nop()
return last
}
62名無しさん@編集中:2007/02/18(日) 07:16:33 ID:oBuNzTjy
× interp = SeparateFields(i)
○ interp = SeparateFields()
63名無しさん@編集中:2007/02/19(月) 04:56:19 ID:HfRiMN2Q
Repairのうまい使い方、何かないでしょうか
64名無しさん@編集中:2007/03/16(金) 07:39:29 ID:mwglPUom
           |
       \  __  /
       _ (m) _ピコーン
          |ミ|
        /  `´  \
         ∧ ∧
        (・∀ ・)
        ノ(  )ヽ
         <  >

       \     /
       _ `゙`・;`' _バチュ--ン
          `゙`・;`
        /  `´  \
         ∧ ∧
        (・∀ ・)
        ノ(  )ヽ
         <  >


         ∧ ∧
        (・∀ ・) <何だっけ
        ノ(  )ヽ
         <  >
65名無しさん@編集中:2007/03/28(水) 17:57:09 ID:N7GC8pwl
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)     
     ノヽノヽ
       くく



       |
   \  __  /
   _ (m) _
      |ミ|
    /  `´  \
     `゙`・;`'
     `゙`・;`  バチュ--ン
     `´ 


      __
     (m)
      |ミ|
      `´


66名無しさん@編集中:2007/04/22(日) 07:08:24 ID:7JqcyONa
              /::.::.::/:// .::.::.::.::.::.:./ ! .::.::.::.::.::.::.::.::.::.:|::.::.::.::.::.::.::.::.
      \   ゝ‐<::./::./ .::.::.::.::\/  | .::.::.::.::.::.:: /::.::.:|::.::.::.::.::.::.::.:::
      \ 〃 / _  ヽ:/::.::.::.::.::.:/\  |::.::.::.::.::.:: /::.::.:: |::.::.::.::.::.ヽ::.::
      {{ / / __ ヽ ',.::/::./   `ー |::.::.::.::.:: / |::.::.:/|_::.::.::.::.:l::.::
.   ──  |  ! /r ) } |イ斤テ左≡ォz /::.::.::.::/ 斗七 !::.::.::.::.::.::.|::.::
.         ∧ ヽヽ _/ /::! レヘ :::::::::/ /::.::. /    j /  | .::.::.::.::.:: |::.::
.     , -―ヘ  `ー   /.::.| rー'゚:::::::/ /::.:/   テ左≠=ヵ::.::.::.::.::. |::.::
____/   {     /.::.::.| ゞ辷zン //    う。::::::7 /イ .::. |::.::.::.|::.::
彡_/     ヽ    イ ::.::. |             /ヘ:::::::/  |.::.::.:|::.::.:∧::.
〃   V    ヽ    ヽ.::.: |              ヾ辷:ン /:l::.::./!::.:/
 l    {      ∨  }__.::.|\     <!         ・ /::.l::|::./│/  DADADADADA!!
 ヽ   ヽ     {      ̄ ̄ ̄`ヽ _         イ::.: l::|:/ j/
、 \   \    }           ) / ̄ ̄ ̄l7::.:|::.::.j::l′ /
67名無しさん@編集中:2007/04/25(水) 21:22:16 ID:PwHuyyEg
ここはAAじゃなくてAvisynthのスクリプトを貼るスレだと思うんだw
68名無しさん@編集中:2007/04/25(水) 21:33:46 ID:8I3cmeoA
エエ
アア
69名無しさん@編集中:2007/04/26(木) 00:25:35 ID:oR/mgUAw
       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
    /  `´  \
     ('A`)     
     ノヽノヽ
       くく




   \     /
   _ `゙`・;`' _バチュ--ン
      `゙`・;`
    /  `´  \
     ('A`)     
     ノヽノヽ
       くく




     `゙`・;`'
     `゙`・;`  バチュ--ン
     `´ 
70名無しさん@編集中:2007/04/29(日) 09:35:43 ID:ig/9U22n
                 __
              / -―‐- 、:丶
             〃´      \:ヽ
             {{ __       }.::}
       _, - ―‐‐┤ \ー‐――'<
      /.::_/.::.::.::.::|.::.::.::.::.::.::.::.::.::.::.::\
______//_/____::/|.::{.::.::.::.::.::.::.::.::.ヽ::.::ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ~|lll|'.::|.::|.::.::.:|.::.::.::.::.::.::.l.::.::. ',
_             |lll「.::j.::l::.::.::l\⌒.::.::.::|.::.::.::l
│            |lll|::ハ.l:.::.:: |  ヽ.::.::.: |.::.::.::|
│            |lll|  ',.::.::.│  \.::.|.::.::. |
│            |lll|三 ヽ ::.:|三三7:ヽ|.::.::.`ヽ
│            |lll|"    \| ""・l.::.::|⌒l:ド、l
│            |lll|、 ‘ー'ー'     j.::.::|-イ.:|
│            |lll|:l>ー‐rーt< リ .::|.: l :|
│            |lll|:|_j;斗<_,>/.:: /! ::.: |
│            |lll|:| >、 __/.:: / ヽ.::. |
├‐tュ‐‐┬‐tュ――|lll|:| /     /.:: /   i.::.|
│ ‖  ‖ ll    |lll|:V      ,'.::.:/   .|.::.|
│ ‖  ‖ |!____ |lll|.::ヽ    i/.:/l    |.::.|
_j ̄|! ̄`|! ̄|! /  ̄ l\{     W /    |.::.|
71名無しさん@編集中:2007/05/19(土) 18:30:33 ID:VgCuQEq9
保守
72名無しさん@編集中:2007/06/11(月) 20:59:10 ID:OWCJwgNR
HOSYU
73名無しさん@編集中:2007/06/15(金) 23:03:39 ID:5b6j2Ot3
ho
74名無しさん@編集中:2007/06/15(金) 23:46:06 ID:yxu6x7yq

|  |
|  |∧_∧
|  |´・ω・`)
|  | o保守o
|  |―u'
""""""""""""""""""

|  |
|  |∧_∧
|  |´・ω・`)
|  | o ヽコト
|  |―u'  保守
""""""""""""""""""

|  |
|  |
|  |
|  |ミサッ
|  |    保守
""""""""""""""""""
75名無しさん@編集中:2007/06/19(火) 00:31:47 ID:xONiwqyF
function residue(int "a", int "b") { return ( a -(floor(a/b) * b) ) } # 剰余 r = a - q * b
function quotient(int "a", int "b") { return floor(a/b) } # 商
function lcm(int "a", int "b") { return ( (a * b) / gcm(a,b) ) } # 最小公倍数 a * b = gcm(a, b) * lcm(a, b)
# 最大公約数 gcm(a, b) = gcm(b, r)
function gcm(int "a", int "b", int "to")
{
to = default(to, 30)
_a  = (a > b) ? a : b
_b  = (a > b) ? b : a
r  = residue(_a, _b)
return (r == 0) || (to == 0) ? b : gcm2(_b, r, to) }
function gcm2(int "a", int "b", int "to") { 
to = to - 1
r  = residue(a, b)
a  = (r != 0) ? b : a
b  = (r != 0) ? r : b
return gcm(a, b, to)
}
76名無しさん@編集中:2007/06/19(火) 00:33:36 ID:xONiwqyF
function PARCrop(clip clip, int "mode", int "sar", string "crop_opt", string "dar", int "n", int "offset",
\ bool "interlaced", int "PAR_width",int "PAR_height", int "DAR_width", int "DAR_height", bool "show")
{
mode = default(mode, 1)
sar = default(sar, 14)
crop_opt = default(crop_opt, "0,0,0,0")
dar = default(dar, "16:9")
n = default(n, 2)
offset = default(offset, 0)
interlaced = default(interlaced, false)
show = default(show, true)

w = ( (sar == 3) || (sar == 5) ) && ( (dar == "4:3") || (dar == "16:9") ) ? 22 * n : 1
h = ( (sar == 3) || (sar == 5) ) && ( (dar == "4:3") || (dar == "16:9") ) ? 15 * n : 1
w = (sar == 14) && (dar == "16:9") ? 4 * n : w
h = (sar == 14) && (dar == "16:9") ? 3 * n : h
w = (sar == 14) && (dar == "4:3") ? 1 * n : w
h = (sar == 14) && (dar == "4:3") ? 1 * n : h
w = (sar == 1) && (dar == "16:9") ? 16 * n : w
h = (sar == 1) && (dar == "16:9") ? 9 * n : h
w = (sar == 1) && (dar == "4:3") ? 4 * n : w
h = (sar == 1) && (dar == "4:3") ? 3 * n : h
w = (sar == 11) && (dar == "16:9") ? 176 * n : w
h = (sar == 11) && (dar == "16:9") ? 135 * n : h
w = (sar == 11) && (dar == "4:3") ? 44 * n : w
h = (sar == 11) && (dar == "4:3") ? 15 * n : h
w = (sar == 17) && (dar == "16:9") ? 704 * n : w
h = (sar == 17) && (dar == "16:9") ? 405 * n : h
w = (sar == 17) && (dar == "4:3") ? 176 * n : w
h = (sar == 17) && (dar == "4:3") ? 135 * n : h
77名無しさん@編集中:2007/06/19(火) 00:39:10 ID:xONiwqyF
w  = ( defined(PAR_width) == true) ? n * ( (DAR_width  * PAR_height) 
\  / gcm(DAR_width * PAR_height, DAR_height * PAR_width) ) : w   
h  = ( defined(PAR_width) == true) ? n * ( (DAR_height * PAR_width)
\  / gcm(DAR_width * PAR_height, DAR_height * PAR_width) ) : h

Clip  = (clip.isYV12 == true)  && (interlaced == true) && (n == 1)
\  ?  clip.ConverttoRGB24(interlaced=true)
\  : (n == 1) ? clip.ConverttoRGB24
\  : clip
clip  = Eval( "clip.Crop(" + string(crop_opt) + ")" )

x  = (mode == 1) ? clip.width : clip.height 
z  = (mode == 1) ? w : h 
q  = quotient(x, z)
r  = residue (x, z)

x  = x - r  # new_x xが wの倍数になるよう修正
x_q  = quotient(r, 2) 
x_r  = residue (r, 2) # 1 or 0

y  = (mode == 1) ? h * q : w * q  # new_y
_y  = (mode == 1) ? clip.height - y : clip.width - y 
y_q  = quotient(_y, 2) 
y_r  = residue (_y, 2)
78名無しさん@編集中:2007/06/19(火) 00:41:14 ID:xONiwqyF
clip = (mode == 1) ? clip.Crop( x_q + x_r, y_q + y_r - offset, -x_q, -(y_q + offset) )
\ : clip.Crop( y_q + y_r -offset, x_q + x_r, -(y_q + offset), -x_q )

clip2 = clip.Subtitle("DAR_width x PAR_height " + string(w) + " / " + string(h) + " DAR_height x PAR_width", align=2)

(mode == 1) ? Clip2.Subtitle( string(x) + " x " + string(y) + ": Crop(" + string(int(x_q + x_r)) +", "
\ + string(int(y_q + y_r - offset)) + ", -" + string(x_q) + ", -" + string(y_q + offset) + ")", align=5)
\ : clip2.Subtitle( string(y) + " * " + string(x) + ": Crop(" + string(int(y_q + y_r -offset)) +", "
\ + string(int(x_q + x_r)) + ", -" + string(y_q + offset) + ", -" + string(x_q) + ")", align=5)
return (show == false) ? clip : last
}
Cropで整数解を求めるための関数。
79名無しさん@編集中:2007/06/19(火) 18:44:18 ID:xONiwqyF
w = ( (sar == 3) || (sar == 5) ) && ( (dar == "4:3") || (dar == "16:9") ) ? 22 * n : 1
h = ( (sar == 3) || (sar == 5) ) && ( (dar == "4:3") || (dar == "16:9") ) ? 15 * n : 1
この2行を消して下と交換 (計算間違いしてなければ正しいはず。PAR,DARを直接指定すれば常に正しい。)
w = (sar == 3) && (dar == "4:3") ? 22 * n : 1
h = (sar == 3) && (dar == "4:3") ? 15 * n : 1
w = (sar == 3) && (dar == "16:9") ? 88 * n : w
h = (sar == 3) && (dar == "16:9") ? 45 * n : h
w = (sar == 5) && (dar == "16:9") ? 22 * n : w
h = (sar == 5) && (dar == "16:9") ? 15 * n : h
w = (sar == 5) && (dar == "4:3") ? 11 * n : w
h = (sar == 5) && (dar == "4:3") ? 10 * n : h
w = (sar == 19) && (dar == "16:9") ? 3 * n : w
h = (sar == 19) && (dar == "16:9") ? 2 * n : h
w = (sar == 18) && (dar == "4:3") ? 9 * n : w
h = (sar == 18) && (dar == "4:3") ? 8 * n : h
80名無しさん@編集中:2007/06/19(火) 18:46:45 ID:xONiwqyF
720*480 PAR 40:33を縦の解像度を保持して横を削って、PAR 40/33にしたとき DAR 4/3にする。(16/9の額縁 4/3)
これを640*480にresizeすればDAR 4/3
PARCrop(mode=2, sar=5, crop_opt="0,0,0,0", dar="4:3", n=2, show=true)
1440*1080 PAR 4:3 額縁 16/9 横のCropだけ指定すると、一番近い整数解で縦も自動でcropする
PARCrop(mode=1, sar=14, crop_opt="186,0,-190,0", dar="16:9", n=2, show=true)
または、直接指定。このとき、modeとsarは書式に書かない。
PARCrop(mode=1, crop_opt="186,0,-190,0", PAR_width=4, PAR_height=3, DAR_width=16, DAR_height=9, n=1, offset=0, show=true)
mode 1 横はそのまま縦をCrop, mode 2: 縦はそのまま横をCrop
sar ソースのPARを指定 H.264のレファレンスで決められてるもの。 17,18,19は空き番号。 下のものだけ指定できる。
1: PAR 1/1 1920*1080, 3: PAR 10/11 720(704)*480 5 PAR 40/33 T720(704)*480, 11: PAR 15/11 1440*1080
14: PAR 4/3 1440*1080, 17: PAR 45/44 1920*1080 18 PAR 8/9 BT878A 720*480 19 PAR 32/27 BT878A 720*480
dar "16:9" or "4:3" 目標とするDAR
crop_opt Cropのオプションを入力。縦横をどちらかCropする。それに併せて、のこりのCropする量を決める。
n: 1, 2, 4, 8, 16 ,32 ... 縦横がどの倍数になるか指定。 n=1 のときはConverttoRGB24するので注意。
resizeするなら 1か2, インタレエンコなら 16(xvid)か32(x264)(cropのあとresizeはしない) そのままの大きさでエンコするなら 8 か 16。
show 情報を表示するかしないか。 true or false
81名無しさん@編集中:2007/06/19(火) 21:30:34 ID:xONiwqyF
使いにくかったので変更。
デフォルトでCropせずに情報だけ表示。
, bool "show" のあとに , bool "debug")
show = default(show, true)を
show = default(show, false)
debug = default(debug, true)
show = (debug == true) ? true : show
_clip = clip

clip2 = clip.Subtitle("DAR_width x PAR_height " を
clip = (debug == true) ? _clip : clip
clip2 = clip.Subtitle("DAR_width x PAR_height " + string(w) + " / " + string(h) + " DAR_height x PAR_width", align=5, y=clip.height/2+16)

ttp://www.uploda.net/cgi/uploader4/index.php?file_id=0000015101.txt
82名無しさん@編集中:2007/06/20(水) 18:55:12 ID:oigiMAG9
>>75
> return (r == 0) || (to == 0) ? b : gcm2(_b, r, to) }
_b にしないと a < b かつ gcm(a, b) = a の場合に結果を誤るかと

最大公約数を求めるならそんなに複雑に書かなくても
これだけで十分じゃないかな
function gcm (int a, int b) {
c = a % b
return c == 0 ? b : gcm(b, c)
}
83名無しさん@編集中:2007/06/20(水) 19:46:01 ID:wZUVC6r7
>>82
ありがとう。_bは打ち間違えた。
そして、Avisynthでmodが使えることを今知った。ちょっと感動。
よく見とけばよかった。
ttp://avisynth.org/mediawiki/Operators
84名無しさん@編集中:2007/06/20(水) 19:50:35 ID:N1+TPgqA
何言ってるかまったくわからんぜ
85名無しさん@編集中:2007/06/20(水) 20:02:47 ID:5Eh+cIQm
>>84
(・∀・)人(・∀・)
86名無しさん@編集中:2007/06/20(水) 22:05:59 ID:gasrkGbR
(・∀・)人(・∀・)人(・∀・)
87名無しさん@編集中:2007/06/21(木) 05:15:57 ID:7+ymaJOL
(・∀・)人(・∀・)人(・∀・)人(・∀・)
88名無しさん@編集中:2007/06/27(水) 23:02:29 ID:C06STsI0
#24FPSと30FPSが混合された動画を60FPS化する

LoadPlugin("Decomb521VFR1.3_P4-Athlon.dll")

#ここで動画を読み込む
#DirectShowSource以外でもいいが↓の逆テレシネで支障が出ないようにpixel_typeをYV12にしておくこと
DirectShowSource("*******.***",pixel_type="YV12")

AssumeTFF
DoubleWeave
Top=SelectEven
Bottom=SelectOdd

#とりあえず逆テレシネ pixel_typeをYV12以外にするとゴミが出る
Interleave(Top.Telecide(order=1,guide=0,post=0,show=false),Bottom.Telecide(order=0,guide=0,post=0,show=false))
89名無しさん@編集中:2007/06/30(土) 21:13:06 ID:97Pp0O3z
## {{{ PARCrop2
function PARCrop2(clip clip, int "mode", string "crop_opt", int "PAR_width",int "PAR_height", int "DAR_width", int "DAR_height", int "n",
\ int "offset", int "r_mode", int "resize_n", int "resize_m", bool "r_int", string "r_method",
\ string "dvd", int "border", bool "blank", bool "show", bool "debug")
{
mode = default(mode, 1)
crop_opt = default(crop_opt, "0,0,0,0")
PAR_width = default(PAR_width, 1)
PAR_height = default(PAR_height, 1)
DAR_width = default(DAR_width, 16)
DAR_height = default(DAR_height, 9)
n = default(n, 1)
resize_n = (clip.width <= 720) ? default(resize_n, 8)
\ : default(resize_n, 16)
resize_m = default(resize_m, 0)
offset = default(offset, 0)
r_mode = default(r_mode, 0)
show = default(show, false)
debug = default(debug, true)
r_mode = (debug == true) ? 0 : r_mode
show = (debug == true) ? true : show
show = (r_mode > 0) ? false : show
r_int = default(r_int, true)
dvd = default(dvd, "non")
r_method = (dvd == "non") && ( (r_mode == 1) || (resize_m > 0) )
\ ? default(r_method, "Lanczos4Resize") : default(r_method, "LanczosResize")
border = (dvd == "16/9") && ( ((DAR_width == 4) && (DAR_height == 3)) || ((DAR_width == 15) && (DAR_height == 11)) )
\ ? default(border, 1) : default(border, 0)
blank = default(blank, true)
_clip = clip
90名無しさん@編集中:2007/06/30(土) 21:14:14 ID:97Pp0O3z
# {{{ crop
w = (DAR_width * PAR_height) / gcm(DAR_width * PAR_height, DAR_height * PAR_width)
h = (DAR_height * PAR_width) / gcm(DAR_width * PAR_height, DAR_height * PAR_width)

_n = 32 / gcm(h, 32)
n = (clip.isYV12 == true) && (n == 1) ? 2 : n
n = (clip.isYUY2 == true) && (n == 1) && (w%2 != 0) ? 2 : n
n = (n == -32) && (_n != 32) ? _n * (16 / _n) : abs(n) # H.264 MBAFF

w = n * w
h = n * h

clip = Eval( "clip.Crop(" + string(crop_opt) + ")" )

x = (mode == 1) ? clip.width : clip.height
z = (mode == 1) ? w : h
q = quotient(x, z)
r = residue (x, z)

x = x - r # new_x xが wの倍数になるよう修正
x_q = quotient(r, 2)
x_r = residue (r, 2) # 1 or 0


y = (mode == 1) ? h * q : w * q # new_y
_y = (mode == 1) ? clip.height - y : clip.width - y
y_q = quotient(_y, 2)
y_r = residue (_y, 2)

xx = (mode == 1) ? x : y
yy = (mode == 1) ? y : x
# }}}
91名無しさん@編集中:2007/06/30(土) 21:15:16 ID:97Pp0O3z
# {{{ DVD
dvd_DAR_width = (dvd == "4/3") ? 4
\ : (dvd == "16/9") ? 16 : DAR_width
dvd_DAR_height = (dvd == "4/3") ? 3
\ : (dvd == "16/9") ? 9 : DAR_height

dvd_DAR_width = (dvd == "4/3") && (DAR_width == 15) && (DAR_height == 11) ? 15
\ : (dvd == "16/9") && (DAR_width == 20) && (DAR_height == 11) ? 20 : dvd_DAR_width
dvd_DAR_height = (dvd == "4/3") && (DAR_width == 15) && (DAR_height == 11) ? 11
\ : (dvd == "16/9") && (DAR_width == 20) && (DAR_height == 11) ? 11 : dvd_DAR_height

dvd_w = (dvd_DAR_width * PAR_height) / gcm(dvd_DAR_width * PAR_height, dvd_DAR_height * PAR_width)
dvd_h = (dvd_DAR_height * PAR_width) / gcm(dvd_DAR_width * PAR_height, dvd_DAR_height * PAR_width)

_dvd_width = (border == 0) ? xx : float(yy * dvd_w) / dvd_h
_dvd_height = (border == 0) ? float(xx * dvd_h) / dvd_w : yy
dvd_width = int(_dvd_width)
dvd_height = int(_dvd_height)

dvd_width_border = (border == 0) ? 0 : abs(dvd_width - xx)
dvd_height_border = (border == 0) ? abs(dvd_height - yy) : 0
dvd_width_border = dvd_width_border / 2
dvd_height_border = dvd_height_border / 2
# }}}
92名無しさん@編集中:2007/06/30(土) 21:16:34 ID:97Pp0O3z
# {{{ resize
resized_y = yy - residue( yy, lcm(DAR_height, resize_n) ) + ( lcm(DAR_height, resize_n) * resize_m )
resized_y = (r_int == false) ? yy - residue(yy, resize_n) + (resize_n * resize_m) : resized_y
resized_x2 = xx - residue( xx, lcm(DAR_width, resize_n) ) + ( lcm(DAR_width, resize_n) * resize_m )
resized_x2 = (r_int == false) ? xx - residue(xx, resize_n) + (resize_n * resize_m) : resized_x2

resized_y = (resize_n == -32) ? yy - residue( yy, lcm(DAR_height, 32) ) + ( lcm(DAR_height, 32) * resize_m ) : resized_y
resized_y = (r_int == false) && (resize_n == -32) ? yy - residue(yy, 32) + (32 * resize_m) : resized_y
resized_x2 = (resize_n == -32) ? xx - residue( xx, lcm(DAR_width, 16) ) + ( lcm(DAR_width, 16) * resize_m ) : resized_x2
resized_x2 = (r_int == false) && (resize_n == -32) ? xx - residue(xx, 16) + (16 * resize_m) : resized_x2

#_new_PAR_W = resized_y / DAR_height
#_new_PAR_H = resized_x2 / DAR_width
_new_PAR_W = resized_y * DAR_width
_new_PAR_H = resized_x2 * DAR_height
new_PAR_W = _new_PAR_W / gcm(_new_PAR_W, _new_PAR_H)
new_PAR_H = _new_PAR_H / gcm(_new_PAR_W, _new_PAR_H)

resized_x1 = (r_int == false) ? float(resized_y * DAR_width) / float(DAR_height) : (resized_y * DAR_width) / DAR_height
_resized_x3 = float(resized_y * w) / h
resized_x3 = int(_resized_x3)

resized_x = (r_mode == 2) ? resized_x2
\ : (r_mode == 3) ? resized_x3
\ : resized_x1
# }}}
93名無しさん@編集中:2007/06/30(土) 21:17:47 ID:97Pp0O3z
clip = (mode == 1) ? clip.Crop( x_q + x_r, y_q + y_r - offset, -x_q, -(y_q + offset) )
\ : clip.Crop( y_q + y_r - offset, x_q + x_r, -(y_q + offset), -x_q )


AddBorders_opt = (border == 0) ? "0, " + string(dvd_height_border) + ", 0, " + string(dvd_height_border)
\ : string(dvd_width_border) + ", 0, " + string(dvd_width_border) + ", 0"
clip = (dvd == "4/3") || (dvd == "16/9") ? Eval( "clip.AddBorders(" + string(AddBorders_opt) + ")" ) : clip

dvd_x = ( (DAR_width == 15) && (DAR_height == 11) ) || ( (DAR_width == 20) && (DAR_height == 11) ) ? 720 : 704
AddBorder = ( (DAR_width == 15) && (DAR_height == 11) ) || ( (DAR_width == 20) && (DAR_height == 11) ) ? 0 : 8
AddBorder = (blank == false) ? 0 : AddBorder
dvd_clip = clip

clip = (debug == true) ? _clip : clip
clip = (dvd == "4/3") || (dvd == "16/9") ? Eval( "clip." + r_method + "(dvd_x, 480).AddBorders(AddBorder, 0, AddBorder, 0)" )
\ : (r_mode > 0) ? Eval( "clip." + r_method + "(resized_x, resized_y)" ) : clip
94名無しさん@編集中:2007/06/30(土) 21:22:12 ID:97Pp0O3z
clip2 = clip.Subtitle("DAR_width x PAR_height " + string(w) + " / "
\ + string(h) + " DAR_height x PAR_width", align=5, y=clip.height/2+16)
clip2 = (n != -32) ? clip2.Subtitle("Resize mode 1 " + string(resized_x1) +" x " + string(resized_y)
\ + " PAR 1:1", align=5, y=clip.height/2+48) : clip2
clip2 = (n != -32) ? clip2.Subtitle("Resize mode 2 " + string(resized_x2) +" x " + string(resized_y)
\ + " PAR " + string(new_PAR_W) + ":" + string(new_PAR_H), align=5, y=clip.height/2+64) : clip2
clip2 = (n != -32) ? clip2.Subtitle("Resize mode 3 " + string(_resized_x3) +" x " + string(resized_y)
\ + " PAR " + string(PAR_width) + ":" + string(PAR_height), align=5, y=clip.height/2+80) : clip2
95名無しさん@編集中:2007/06/30(土) 21:22:55 ID:97Pp0O3z
(mode == 1) ? Clip2.Subtitle( string(x) + " x " + string(y) + " : Crop(" + string(int(x_q + x_r)) +", "
\ + string(int(y_q + y_r - offset)) + ", -" + string(x_q) + ", -" + string(y_q + offset) + ")", align=5)
\ : clip2.Subtitle( string(y) + " * " + string(x) + " : Crop(" + string(int(y_q + y_r - offset)) +", "
\ + string(int(x_q + x_r)) + ", -" + string(y_q + offset) + ", -" + string(x_q) + ")", align=5)
(dvd == "4/3") || (dvd == "16/9") ? dvd_clip.Subtitle( string(x) + " x " + string(y) + " : Crop(" + string(int(x_q + x_r)) +", "
\ + string(int(y_q + y_r - offset)) + ", -" + string(x_q) + ", -" + string(y_q + offset) + ")", align=5 )
\ .Subtitle( "AddBorders(" + AddBorders_opt + ")", align=5, y=dvd_clip.height/2+16 )
\ .Subtitle( " DVD " + string(dvd), align=5, y=dvd_clip.height/2+32 )
\ .Subtitle( "x PAR " + string(dvd_w) + ":" + string(dvd_h), align=5, y=dvd_clip.height/2+48 )
\ .Subtitle( string(_dvd_width) + " x " + string(_dvd_height), align=5, y=dvd_clip.height/2+64 ) : last
return (show == false) ? clip : last
}
## }}}
### }}}

ttp://www.uploda.net/cgi/uploader4/index.php?file_id=0000015685.txt
96名無しさん@編集中:2007/06/30(土) 22:57:02 ID:21nVVjVv
ぜんぜんショボくないぞ、このスレどうしちゃったんだ?
97名無しさん@編集中:2007/06/30(土) 23:09:15 ID:sDrxlz0v
AVIRead(C:\おれおれ.avi)
98名無しさん@編集中:2007/07/01(日) 00:51:50 ID:R+u2GNMU
('A`)
99名無しさん@編集中:2007/07/01(日) 04:49:44 ID:ptd8ZnxD
LoadAviUtlInputPlugin("C:\Program Files\EARTH SOFT\PV3 3.x\AviUtl\EARTH SOFT DV.aui", "EARTHSOFTDV")

EARTHSOFTDV(F:\動画.dv)
Auto24FPS(true,24,200,"",false)
Lanczos4Resize(704,396,190,144,-190,-144)
return last

超適当
100名無しさん@編集中:2007/07/01(日) 04:51:22 ID:V7aPxUMm
ぜんぜんショボイな、このスレどうしちゃったんだ?
101名無しさん@編集中:2007/07/01(日) 05:39:31 ID:X2+xlFy6
MPEG2Source(d2v="__vid__",idct=5)
ColorMatrix(scaling=2,interlaced=false,d2v="__vid__")
IT(fps = 24,ref="TOP",diMode=3)
FrameCache(6).FFT3DFilter(sigma=1.5,plane=4,bw=48,bh=48,bt=3,ow=24,oh=24,svr=0,sharpen=0,interlaced=false,wintype=1)
FrameCache(6)._2DCleanYUY2(interlaced=0,thresholdY=6,thresholdU=2,thresholdV=2,radiusX=2,radiusY=2,dmode=0)
FrameCache(6).hqdn3d(2)

俺様愛用
102名無しさん@編集中:2007/07/14(土) 22:05:21 ID:+g7vyJL5
#24,30FPSの分割が面倒な時用。全部60FPS化で片づける。

function VD_SmartSmoothHiQ(clip, int "diameter", int "threshold", int "amount", string "mode",
\ bool "grayscale", bool "weighted_difference", int "maintain_diffweight")

{
LoadVirtualdubPlugin("D:\data\AVI\Virturaldub\plugins\SmoothHiQ.vdf", "_VD_SmartSmoothHiQ")
mode = default(mode, "weighted")
mode = (mode=="average") ? 0 : (mode=="weighted") ? 1 : -1
Assert(mode>=0, """VD_SmartSmoothHiQ: "mode" parameter must be "average" or "weighted"""")
return clip._VD_SmartSmoothHiQ(default(diameter,5), default(threshold,50), 0, default(amount,254),
\ mode, default(grayscale,false)?1:0, default(weighted_difference,true)?1:0, default(maintain_diffweight,0))
}
LoadPlugin("MSharpen.dll")
LoadPlugin("BruteIVTC.dll")

#読むのはMPEG2だよね
DirectShowSource("**********", fps=29.97,audio=false,convertfps=true,pixel_type="YV12")
AssumeTFF
DoubleWeave

#とりあえず逆テレシネ
BruteIVTC()

#ブロックノイズ取り 非常に重い
ConvertToRGB()
VD_SmartSmoothHiQ(5,50,254,"weighted")
ConvertToYV12()

#シャープネスフィルタ
MSharpen(25,50,true,false,false)
103名無しさん@編集中:2007/07/28(土) 20:51:18 ID:iiYDjgNl
#ChangePlaySpeed…再生速度を変更する
#  speed  再生する速度(倍速指定、“1.0”なら変化無し)
#  fps    速度変更後のFPS設定(省略・負数なら変化無し)
#      “0”ならspeedで変化した分だけFPSも変化する
#      正数ならその値になる
#  pitch  音程を変化させるか(省略・偽なら変化なし、trueなら変化する)
function ChangePlaySpeed(clip clip, float speed, float "fps", bool "pitch") {
  fps = default(fps, -1.0)
  pitch = default(pitch, false)

  clip =
  \  ((pitch)
  \    ? clip.TimeStretch(rate=100.0*speed)
  \    : clip.TimeStretch(tempo=100.0*speed)
  \  )

  rate = clip.Framerate()
  clip =
  \  ((0.0 == fps)
  \    ? clip.AssumeFPS(rate*speed)
  \  :(fps < 0.0)
  \    ? clip.AssumeFPS(rate*speed).ChangeFPS(rate)
  \    : clip.AssumeFPS(rate*speed).ChangeFPS(fps)
  \  )

  return clip
}
104名無しさん@編集中:2007/07/28(土) 20:51:57 ID:iiYDjgNl
絶讃の方でちょうど再生速度が話題になってたので、依然作った関数をUP。

clip_29970fps_60m00s = ColorBars()

clip_29970fps_30m00s = clip_29970fps_60m00s.ChangePlaySpeed(2.0)
clip_59940fps_30m00s = clip_29970fps_60m00s.ChangePlaySpeed(2.0, fps=0)
clip_23976fps_30m00s = clip_29970fps_60m00s.ChangePlaySpeed(2.0, fps=24000.0/1001.0)
105名無しさん@編集中:2007/07/30(月) 08:11:25 ID:koRkCv2W
期待age
106名無しさん@編集中:2007/08/01(水) 18:05:14 ID:a1XCC8zN
Import("aufilters.avs")
LoadAviUtlInputPlugin("C:\EARTH SOFT DV.aui","EARTHSOFTDV")
EARTHSOFTDV("%V")
%t
#SwapUV()
#トップフィールド指定
AssumeFrameBased().ComplementParity()
ConvertYUY2ToAviUtlYC()
AU_afs(16,16,32,32,0,192,128,24,128,256,3,2,true,true,true,false,false,false,false,true,false,false,true,false)
ConvertAviUtlYCToYUY2()
Lanczos4Resize(1280,720)
ConvertToYV12()
#crop( 0, 0, 0, 0)
fft3dGPU(mode=1,precision=2)

x264afs用
107名無しさん@編集中:2007/08/07(火) 23:28:15 ID:XwFE/xCO
>>102
一ヶ月近くも前にレスするのも何だが
全部60fps化するくらいならインタレ保持でよくない?
108名無しさん@編集中:2007/08/15(水) 10:05:41 ID:ruyCAS/3
よーし張っちゃうぞー、EasyVFR汎用avs_export用
Filename = "%V"
Import("C:\Program Files\AviSynth 2.5\easyvfr.avs")
LoadAviUtlInputPlugin("C:\Program Files\AviSynth 2.5\plugins\m2v.aui" ,"Marumo")
src = Marumo(Filename)
SETMTMODE(2,2)
src = src.AssumeTFF().crop(8,0,-8,-0)

#a =src.trim(0 , ).IT(fps = 30, ref = "TOP", diMode = 1)
#a =src.trim(0 , ).IT(fps = 24, ref = "TOP", diMode = 1)
#a =src.trim(0 , ).Doubleweave().Autodeint()
a = a.Converttoyv12()

#b =src.trim(,).IT(fps = 30, ref = "TOP", diMode = 1)
#b =src.trim(,).IT(fps = 24, ref = "TOP", diMode = 1)
#b =src.trim(,).Doubleweave().Autodeint()

b = b.Converttoyv12()
#c =src.trim(,).IT(fps = 30, ref = "TOP", diMode = 1)
#c =src.trim(,).IT(fps = 24, ref = "TOP", diMode = 1)
#c =src.trim(,).Doubleweave().Autodeint()

c = c.Converttoyv12()
tcpath = "%u.txt"
result = EasyVFR_Create(src, a, tcpath)
result = result.EasyVFR_Append(b, tcpath)
result = result.EasyVFR_Append(c, tcpath)
result
return last
これだとavsのあるフォルダに同ファイル名でタイムコードが吐き出されて便利
109名無しさん@編集中:2007/08/31(金) 19:57:19 ID:/obMkNm5
('A`)

LoadPlugin("Decomb521VFR1.3_P4-Athlon.dll")
LoadPlugin("BruteIVTC.dll")

AssumeTFF
DoubleWeave

Top=SelectEven
Top=Top.AssumeTFF
Top=Top.Telecide(order=1,post=0)
Top=Top.BruteIVTC()

Bottom=SelectOdd
Bottom=Bottom.AssumeBFF
Bottom=Bottom.Telecide(order=0,post=0)
Bottom=Bottom.BruteIVTC()

Interleave(Top,Bottom)
110名無しさん@編集中:2007/09/03(月) 16:21:22 ID:o3DYiV3A
実用性はともかく、そこそこ綺麗な希ガス
function upconvByEedi2(clip c){
c
function upconvByEedi2_temp(clip c){
c
eedi2(field=0)
stackvertical(last,flipvertical)
try{
spline64resize(width,height/2,0,0.5,0,0.5-height/2)
}
catch(err_msg){
spline36resize(width,height/2,0,0.5,0,0.5-height/2)
}
}
upconvByEedi2_temp
turnright
upconvByEedi2_temp
turnleft
}
111名無しさん@編集中:2007/09/03(月) 20:29:18 ID:o3DYiV3A
二倍程度なら普通のリサイズで十分綺麗な気がしたんで作り直し、使う気は無いけど綺麗だと思うよ。
function eedi2upconv(clip clip,int "target_width",int "target_height",string "eedi2_arguments",string "resizer",string "resizer_arguments"){
clip
i0=default(target_width,width*4)
i1=default(target_height,round(height*33/40)*4)
s0=default(eedi2_arguments,",mthresh=0,lthresh=0,vthresh=0,estr=0,dstr=255,maxd=29,pp=3")
s1=default(resizer,"lanczosresize")
s2=default(resizer_arguments,",taps=17")
eval("eedi2(field=0"+s0+")")
turnright
eval("eedi2(field=0"+s0+")")
turnleft
function eedi2upconv_temp(clip c,int "i0",int "i1",string "s"){
c
eval("eedi2(field=1"+s+")")
turnright
eval("eedi2(field=1"+s+")")
turnleft
return (width<i0)||(height<i1)?eedi2upconv_temp(i0,i1,s):last
}
(width<i0)||(height<i1)?eedi2upconv_temp(i0,i1,s0):last
stackvertical(last,flipvertical)
eval(s1+"(width,height/2,0,0.5,0,0.5-height/2"+s2+")")
turnright
stackvertical(last,flipvertical)
eval(s1+"(width,height/2,0,0.5,0,0.5-height/2"+s2+")")
turnleft
eval(s1+"("+string(i0)+","+string(i1)+s2+")")
return last
}
112名無しさん@編集中:2007/09/04(火) 00:58:22 ID:lJ3C3e5W
eedi2を使って拡大するのか。なるほど。
鼻血が出るほど遅いが、綺麗と云えば綺麗だ。

アイディアは、気に入った。(;´Д`)ハァハァ
113名無しさん@編集中:2007/09/04(火) 06:50:03 ID:Bqnm6APc
doomで紹介されてるeedi2のサンプル映像見て吹いた
すごいなこのフィルタ。漏れも弄ってみるわ。(;´Д`)ハァハァ
114名無しさん@編集中:2007/09/04(火) 18:31:55 ID:YWyMK6kt
>>113
おいおい、そこまで言っておいてURL貼らないのかよ。
生殺しじゃねえか。俺にも(;´Д`)ハァハァさせろ。
115名無しさん@編集中:2007/09/04(火) 18:39:29 ID:rarS0dXf
>>113
漏れもずっと探してたんだが見つからない(;´Д`)
URLplz
116名無しさん@編集中:2007/09/04(火) 20:47:55 ID:YmAPmeD2
>>114-115
>>113じゃないけど、たぶんこれかな?
http://forum.doom9.org/showthread.php?p=744308#post744308
117名無しさん@編集中:2007/09/05(水) 20:34:16 ID:f1ztFbCm
>>116
THX!
ん〜・・・、なんか微妙じゃない?
そこまで綺麗じゃないきがする。
118名無しさん@編集中:2007/09/06(木) 00:09:43 ID:xll7yOhQ
綺麗にアプコンできるスクリプトorフィルタ随時募集中
119名無しさん@編集中:2007/09/06(木) 16:31:53 ID:AC2H2yAr
なんとなく修正
function eedi2upconv(clip clip,int "target_width",int "target_height",string "eedi2_arguments",string "resizer",string "resizer_arguments"){
clip
i0=default(target_width,width*2)
i1=default(target_height,height*2)
s0=default(eedi2_arguments,"")
s1=default(resizer,"spline16resize")
s2=default(resizer_arguments,"")
eval("eedi2(field=0"+s0+")")
turnright
eval("eedi2(field=0"+s0+")")
turnleft
function eedi2upconv_temp(clip c,int "i0",int "i1",string "s"){
c
eval("eedi2(field=1"+s+")")
turnright
eval("eedi2(field=1"+s+")")
turnleft
(width<i0)||(height<i1)?eedi2upconv_temp(i0,i1,s):last
}
(width<i0)||(height<i1)?eedi2upconv_temp(i0,i1,s0):last
stackhorizontal(last,fliphorizontal)
stackvertical(last,flipvertical)
eval(s1+"("+string(i0)+","+string(i1)+",0.5,0.5,0.5-width/2,0.5-height/2"+s2+")")
}
使用例
eedi2upconv(1920*2,1088*2,",mthresh=0,lthresh=0,vthresh=0,estr=0,dstr=0,maxd=29,nt=256,pp=3","lanczosresize",",taps=100")
アーティファクトなんて気にしないで補間重視+最強の縮小lanczos100、0.1fpsくらいは出るといいなぁww

>>118
EDIUpsizerとかって糞重いフィルタがあるよ、けっこう綺麗な感じ
ただ、素直にps3にやってもらった方がいいとは思うけどね
120名無しさん@編集中:2007/09/06(木) 21:44:31 ID:xll7yOhQ
ps3にやってもらうって選択肢はあまり素直ではないと思うw
121名無しさん@編集中:2007/09/07(金) 03:56:45 ID:PrghOHrm
122名無しさん@編集中:2007/09/07(金) 13:13:37 ID:4qAJvCDs
>>121
超既出だったんだねw
spline64resize(width,height,width/2,0,width,height)
↑みたいな事できるって知らなかった、教えてくれてアリガト

また誰もが思いつきそうなの張ってみる
function eedi2blend_sharp(clip c){
c
subtract(last,subtract(eedi2blend,last))
eedi2blend
}
function eedi2blend(clip c){
c
getparity==true?assumetff:assumebff
separatefields
eedi2(field=-2)
merge(selecteven,selectodd)
}

subtract(last,subtract(foo,last))
foo
↑二重化みたいな必ず成果の出る処理に使うと良い感じ、重さは二倍だけどね。
123名無しさん@編集中:2007/09/08(土) 22:47:14 ID:DDZ1iCx8
ふむ
124名無しさん@編集中:2007/09/24(月) 19:16:40 ID:3nx8T2E9
avis [error]: unsupported input format (DIB )

('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)('A`)
125名無しさん@編集中:2007/10/01(月) 08:33:09 ID:YkC43dtF
これで最終版としてみるか。
#とりあえず逆テレシネ
DoubleWeave
Top=SelectEven
Top=Top.AssumeTFF
Top=Top.Telecide(Order=1,Guide=0,Post=0)
Top=Top.BruteIVTC
Bottom=SelectOdd
Bottom=Bottom.AssumeBFF
Bottom=Bottom.Telecide(Order=0,Guide=0,Post=0)
Bottom=Bottom.BruteIVTC
Interleave(Top,Bottom)
BruteIVTC

#60i部分がなければ省略
Deinterlaced=Interleave(Top.TomsMoComp(1,5,0),Bottom.TomsMoComp(0,5,0))
ConditionalFilter(Telecided,Deinterlaced,Telecided,"IsCombed(40)","equals","true")
126名無しさん@編集中:2007/10/06(土) 20:18:19 ID:g9yBKZs6
超初心者です

# プラグインは C:\Program Files\AviSynth 2.5\plugins へ

# ソースの読み込み

# DVD2AVI 1.76
MPEG2Source("D:\AviSynth\test.d2v")

# インタレース解除
TomsMoComp(1, 5, 0)

# ノイズ除去
Convolution3D(preset="movieHQ")

LanczosResize(640, 480, 0, 8, 704, 480)
#Crop(8,0,-8,0)

#Lanczos3Resize(640,480)

ここまでできたけど・・・
これから、どう発展すればいいの?
ちなみにエロDVDをx264でエンコードするつもりです
127名無しさん@編集中:2007/10/06(土) 21:09:34 ID:wtmGkTwr
自分がやりたいように発展させればいいの
128名無しさん@編集中:2007/10/06(土) 21:15:14 ID:SsamG/ji
スレ死骸
129名無しさん@編集中:2007/10/06(土) 21:18:19 ID:uJWV4LnV
>>126
http://pc11.2ch.net/test/read.cgi/avi/1176745366/l50
こっちでやる方がいい。

とりあえず

# インタレース解除
AssumeTFF
DoubleWeave
Top=SelectEven
Bottom=SelectOdd
Interleave(Top.TomsMoComp(1,5,0),Bottom.TomsMoComp(0,5,0))

これをおすすめしてみる。
60FPSになって動きがなめらかになる。
130名無しさん@編集中:2007/10/06(土) 21:30:15 ID:g9yBKZs6
>>129
アドバイス、ありがとうございます

> 60FPSになって動きがなめらかになる。
サイズが増えると困るんだけど・・・

とりあえずスレを移動します
131名無しさん@編集中:2007/10/13(土) 17:18:33 ID:fae6ukTN
本スレでMCbobを知りめちゃ良かったけど、重くて挫折。0.75fps orz
MVbob1をちょこっち改造。
function MVbob2(clip c)
{
order=(c.getparity==true)? 1:0

bobd=c.leakkernelbob(order=order).verticalreduceby2()
fields=c.separatefields()
mvf=bobd.mvanalyse(blksize=4,pel=1,isb=false)
mvb=bobd.mvanalyse(blksize=4,pel=1,isb=true)

even1=c.separatefields().selecteven()
odd1a=fields.mvcompensate(mvf,mode=1,thscd1=300).selecteven()
odd1b=fields.mvcompensate(mvb,mode=1,thscd1=300).selecteven()
odd1=mergeluma(odd1a,odd1b,0.5).mergechroma(odd1b,0.5)

even2=c.separatefields().selectodd()
odd2a=fields.mvcompensate(mvf,mode=1,thscd1=300).selectodd()
odd2b=fields.mvcompensate(mvb,mode=1,thscd1=300).selectodd()
odd2=mergeluma(odd2a,odd2b,0.5).mergechroma(odd1b,0.5)

even=interleave(even1,odd1).weave()
odd=interleave(even2,odd2).weave()

interleave(even,odd)
}
AutoDeintよりはジャギとか消えたけど、格子模様とかはやっぱAutoDeintがいいかも。
4.00fpsに上がった。
132名無しさん@編集中:2007/10/15(月) 20:08:22 ID:Q9DGJv/m
ボケないデハロを目指してmasktoolsいじってたら、なぜかアニメ向け2DNRができましたww

function SevenFourThreeNR(clip c,int "i0",int "i1",int "i2",string "s",bool "b0",bool "b1"){
i0=default(i0,8)chr(13)i1=default(i1,1)chr(13)i2=default(i2,8)chr(13)s=default(s," 4 3 / ^")chr(13)b0=default(b0,true)chr(13)b1=default(b1,true)
function SevenFourThreeNR_f0(clip c,int "i0",int "i1"){mt_average(SevenFourThreeNR_f2(SevenFourThreeNR_f1(c,i1),i1),SevenFourThreeNR_f1(SevenFourThreeNR_f2(c,i1),i1),u=3,v=3)chr(13)1<i0?SevenFourThreeNR_f0(i0-1,i1):last}
function SevenFourThreeNR_f1(clip c,int "i"){mt_expand(c,u=3,v=3)chr(13)1<i?SevenFourThreeNR_f1(i-1):last}
function SevenFourThreeNR_f2(clip c,int "i"){mt_inpand(c,u=3,v=3)chr(13)1<i?SevenFourThreeNR_f2(i-1):last}
function SevenFourThreeNR_f3(clip c0,clip "c1",int "i",string "s"){mt_merge(c0,c1,mt_lutxy(c0,c1,"x y - abs"+s,u=3,v=3),u=3,v=3)chr(13)1<i?SevenFourThreeNR_f3(c1,i-1,s):last}
b0?mt_adddiff(mt_makediff(c,SevenFourThreeNR_f3(SevenFourThreeNR_f0(c,i0,i1),c,i2,s),u=3,v=3),c,u=3,v=3):c
SevenFourThreeNR_f3(SevenFourThreeNR_f0(last,i0,i1),last,i2,s)
b1?SevenFourThreeNR_f3(last,c,i2,s):last
}
デフォでの動作を簡単に説明するとFrFunっぽい
リンギングは結構取れます、弱いエッジしか消えないのでボケてる感じはあまりしません
てゆーか、シャープになったりしますww
ワープシャープ的に引き締めたりもします
肝心のヘイローには殆ど効いてないみたいだけど、結構面白い関数だと思います
133名無しさん@編集中:2007/10/17(水) 14:25:12 ID:wWZOhauC
itvfrで120fのやりかた教えて
134名無しさん@編集中:2007/10/26(金) 11:25:58 ID:9jv9MmMl
すまん、初心者的な質問で申し訳ないが、
ユーザ定義関数を作るとき、
一番最初のパラメータclipの名前は引用符なし、
その次のパラメータの名前からは引用符必要ということでいい?
135名無しさん@編集中:2007/10/30(火) 21:48:58 ID:kyAX7L9h
>>132
リンギングの取れ具合はすごくいいけど重くて常用はムリww
136名無しさん@編集中:2007/11/01(木) 03:54:40 ID:r/DJURjR
リンギングといや、3DNR・2DNRの前にアンシャープマスク掛けるのが好き
ボケないしリンギング増加も少ない
137名無しさん@編集中:2007/11/02(金) 14:16:03 ID:36XM6NYq
>>132使うと若干色変わる希ガス
138名無しさん@編集中:2007/11/03(土) 04:53:53 ID:jAWR3vCQ
>>132
> リンギングは結構取れます
> 肝心のヘイローには殆ど効いてないみたい

すみません、ringing と haloing の違い教えてください。
同じ物の単に違う呼び名だと思ってました。
昨晩放送された2001年宇宙の旅の最後のタイムスリップ後シーンとか
結構 haloing がひどいので使ってみましたが確かにあまり効いてないみたいです。
139名無しさん@編集中:2007/11/03(土) 15:30:17 ID:1bTpiF2G
140名無しさん@編集中:2007/11/08(木) 11:37:44 ID:ZtXxTKPP
本スレドコー!?
141名無しさん@編集中:2007/11/08(木) 13:05:30 ID:3r41SkE9
本スレDAT落ちしてた・・・
142名無しさん@編集中:2007/11/08(木) 17:43:40 ID:3nEhuLf1
またかよ!
143名無しさん@編集中:2007/11/08(木) 17:56:00 ID:3nEhuLf1
スレ立てようかと思うんだけど、何かテンプレに加えたい情報とか直したいこととかある?
144名無しさん@編集中:2007/11/08(木) 17:57:30 ID:yzzCvuLH
スレタイをAvisynth総合スレッドへ変更
145名無しさん@編集中:2007/11/08(木) 20:54:33 ID:2TD6BldN
何も足さない 何も引かない
146名無しさん@編集中:2007/11/10(土) 16:49:57 ID:VdBqE9fT
このスレ、要らないだろ...
147名無しさん@編集中:2007/11/10(土) 17:53:37 ID:fxCD51xA
このスレの方が適切(というか元々前スレのだけど)だと思う
KenKunNR2が本スレに貼られてるからね。
俺もたまに作るけど、ショボすぎて人に見せられない。
148名無しさん@編集中:2007/11/10(土) 22:51:06 ID:ya9MpQxM
このスレは自作関数を張るスレとして機能している
149名無しさん@編集中:2007/11/12(月) 03:42:17 ID:h1VJOAKs
GPU25
150名無しさん@編集中:2007/11/12(月) 18:16:13 ID:ArqytBGE
1080i -> 720pはとにかくプログレにしてリサイズ、だよね?
151名無しさん@編集中:2007/11/12(月) 19:13:56 ID:j020roWY
プログレって言うかデインタレね
152名無しさん@編集中:2007/11/12(月) 19:56:23 ID:dd4SilXy
いやその言い換えは全く必要ないというかどちらかと言えば逆というかw
153名無しさん@編集中:2007/11/12(月) 22:10:55 ID:jqnQi4tB
プログレ:60p
デインタレ:30p

俺の認識
154名無しさん@編集中:2007/11/13(火) 02:09:58 ID:natu9T7E
p はプログレの p
i はインタレースの i

俺の認識
155名無しさん@編集中:2007/11/13(火) 10:51:20 ID:6yLAz53/
インタレの話はしていない
156名無しさん@編集中:2007/11/18(日) 09:10:51 ID:njisWXGL
#GetPixelType…現在の色空間を取得する
function GetPixelType(clip clip) {
  return
  \  ((clip.IsYUY2())
  \    ? "YUY2"
  \  :(clip.IsYV12())
  \    ? "YV12"
  \  :(clip.IsRGB32())
  \    ? "RGB32"
  \  :(clip.IsRGB24())
  \    ? "RGB24"
  \  :(clip.IsYUV())
  \    ? "YUV"
  \  :(clip.IsRGB())
  \    ? "RGB"
  \    : "UNKNOWN"
  \  )
}
157名無しさん@編集中:2007/11/18(日) 09:11:50 ID:njisWXGL
#GetPixelType…色空間を設定する
#  type  色空間
function SetPixelType(clip clip, string type) {
  return
  \  ((type == "YUY2")
  \    ? clip.ConvertToYUY2()
  \  :(type == "YV12")
  \    ? clip.ConvertToYV12()
  \  :(type == "RGB32")
  \    ? clip.ConvertToRGB32()
  \  :(type == "RGB24")
  \    ? clip.ConvertToRGB24()
  \  :(type == "YUV")
  \    ? clip.ConvertToYUY()
  \  :(type == "RGB")
  \    ? clip.ConvertToRGB()
  \    : clip
  \  )
}
158名無しさん@編集中:2007/11/18(日) 09:12:49 ID:njisWXGL
#ColorMaskFilter…指定の色にフィルターを掛ける
#  filter    作用させるフィルタ
#  color    作用させる色
#  tolerance  作用させる色範囲(省略なら0)
#        負数なら色範囲外に作用させる
#  filter_lv  フィルタのレベル(省略なら255)
function ColorMaskFilter(clip clip, string filter, int color, int "tolerance", int "filter_lv") {
  tolerance = default(tolerance,0)
  filter_lv = default(filter_lv,255)
  width = clip.Width()
  height = clip.Height()
  type = clip.GetPixelType()

  fclip = Eval("clip." + filter)
  clip = clip.ConvertToRGB32()
  fclip = fclip.ConvertToRGB32()
  
  mask = clip.ColorKeyMask(color, Abs(tolerance))
  mask = ((0 <= tolerance)? mask.Invert("A"): mask)

  fclip = MergeARGB(mask, fclip, fclip, fclip)
  clip = clip.Layer(fclip, "add", filter_lv)
  
  return clip.SetPixelType(type)
}
159名無しさん@編集中:2007/11/18(日) 09:18:31 ID:njisWXGL
#ReplaceColor…色の置き換え
#  src_color  置き換え対象の色
#  dst_color  置き換え後の色
#  tolerance  作用させる色範囲(省略なら0)
#        負数なら色範囲外に作用させる
function ReplaceColor(clip clip, int src_color, int dst_color, int "tolerance") {
  tolerance = default(tolerance,0)
  return clip.ColorMaskFilter("BlankClip(color=" + string(dst_color) + ")", src_color, tolerance)
}


YUV2 や YV12 でも通りますが、精度は知りません。

RGB:808080 を RGB:00FF00 に置き換える
ReplaceColor($808080, $00FF00, 0)


>>134
引用符が付いているパラメータは省略出来る
引用符が無いパラメータは使用時に絶対に指定しなければならない
(先頭のclipだけ、もう少しややこしいけど省略)
160134:2007/11/19(月) 02:27:16 ID:q2R0Hp90
>>159
ありがとう。
WikiのAviSynth入門のスクリプトがうまく動かなかったので
どういうことだろうと思っていました。
161名無しさん@編集中:2007/12/01(土) 18:04:28 ID:zVMq7PtH
function SevenFourThreeNRv2(clip c,bool "b0",bool "b1",int "i0",string "s0",int "i1",int "i2",\
string "s1",string "s2",int "i3",bool "b2",string "s3"){
function SevenFourThreeNR_0(clip c,bool b1,int i0,string s0,int i1,int i2,string s1,string s2,int\
i3,bool b2,string s3){
function SevenFourThreeNR_0_0(clip c,int i0,string s0,int i1,int i2){
function SevenFourThreeNR_0_0_0(clip c,int i0,string s0,int i1){
i0==0?mt_expand(c,mode=s0):i0==1?mt_logic(c,mt_logic(duplicateframe(deleteframe(c,framecount(c)-1),\
0),deleteframe(duplicateframe(c,framecount(c)-1),0),"max"),"max"):mt_logic(mt_expand(c,mode=s0),\
mt_logic(duplicateframe(deleteframe(c,framecount(c)-1),0),deleteframe(duplicateframe(c,framecount(c\
)-1),0),"max"),"max")
1<i1?SevenFourThreeNR_0_0_0(i0,s0,i1-1):last
}
function SevenFourThreeNR_0_0_1(clip c,int i0,string s0,int i1){
i0==0?mt_inpand(c,mode=s0):i0==1?mt_logic(c,mt_logic(duplicateframe(deleteframe(c,framecount(c)-1),\
0),deleteframe(duplicateframe(c,framecount(c)-1),0),"min"),"min"):mt_logic(mt_inpand(c,mode=s0),\
mt_logic(duplicateframe(deleteframe(c,framecount(c)-1),0),deleteframe(duplicateframe(c,framecount(c\
)-1),0),"min"),"min")
1<i1?SevenFourThreeNR_0_0_1(i0,s0,i1-1):last
}
mt_average(SevenFourThreeNR_0_0_1(SevenFourThreeNR_0_0_0(c,i0,s0,i1),i0,s0,i1),\
SevenFourThreeNR_0_0_0(SevenFourThreeNR_0_0_1(c,i0,s0,i1),i0,s0,i1))
1<i2?SevenFourThreeNR_0_0(i0,s0,i1,i2-1):last
}
function SevenFourThreeNR_0_1(clip c0,clip c1,string s1,string s2,int i3){
mt_lutxy(c0,c1,"x y - abs"+s1+" "+s2+" < x y - abs"+s1+" x * "+s2+" x y - abs"+s1+" - y * + "+s2+\
" / x ?")
162名無しさん@編集中:2007/12/01(土) 18:04:55 ID:zVMq7PtH
1<i3?SevenFourThreeNR_0_1(c0,last,s1,s2,i3-1):last
}
b3=isyv12(c)
c0=b3?c:converttoyv12(c)
b1?mt_adddiff(mt_makediff(c0,SevenFourThreeNR_0_1(c0,SevenFourThreeNR_0_0(c0,i0,s0,i1,i2),s1,s2,i3)\
),c0):c0
SevenFourThreeNR_0_1(SevenFourThreeNR_0_0(i0,s0,i1,i2),s1,s2,i3)
b1?SevenFourThreeNR_0_1(c0,last,s1,s2,i3):last
b2?mt_clamp(last,mt_expand(c0,mode=s3),mt_inpand(c0,mode=s3)):last
b3?last:converttoyuy2
}
b0=default(b0,true)
b1=default(b1,true)
i0=default(i0,0)
s0=default(s0,"square")
i1=default(i1,1)
i2=default(i2,8)
s1=default(s1," 4 3 / ^")
s2=default(s2,"256")
i3=default(i3,8)
b2=default(b2,false)
s3=default(s3,"square")
i4=b0?8:4
i5=isyv12(c)&&b0?8:4
i6=ceil(width(c)/i4)*i4
i7=ceil(height(c)/i5)*i5
pointresize(c,i6,i7,0,0,i6,i7)
b0?ytouv(SevenFourThreeNR_0(utoy,b1,i0,s0,i1,i2,s1,s2,i3,b2,s3),SevenFourThreeNR_0(vtoy,b1,i0,s0,i1\
,i2,s1,s2,i3,b2,s3),SevenFourThreeNR_0(b1,i0,s0,i1,i2,s1,s2,i3,b2,s3)):mergeluma(SevenFourThreeNR_0\
(b1,i0,s0,i1,i2,s1,s2,i3,b2,s3))
crop(0,0,width(c),height(c))
}
163名無しさん@編集中:2007/12/01(土) 18:32:53 ID:Do9BIsOR
なんすかこれ
164名無しさん@編集中:2007/12/01(土) 18:57:33 ID:zVMq7PtH
久しぶりにとある板のとあるスレを見たらSevenFourThreeNR使ってる人がいたので、何となくヴァージョンあっぷ

変更点
YUY2に対応、Yのみを可能に、時間軸追加etc.

引数について
b0 UVをどうするか、trueでYUV、falseでYのみ
b1 foo(subtract(last,subtract(foo,last)))的な事をするかどうか、trueでやる
i0 ぼかし方、0で2D、1で時間軸、それ以外3D・・なのかなぁ?、2D以外はてきとーだから無駄が多い
s0 ぼかす時のmt_expandとmt_inpandのモード
i1 ぼかす範囲、大きくすると糞重い、1〜3程度で
i2 ぼかす回数、良く解らんけど8〜9回ぐらいで変化しなくなる、少ないと軽い、2〜4ぐらいで十分な気もする
s1 元に戻す強さに影響、s2,i3と一緒に弄る
s2 元に戻す強さに影響
i3 元に戻す回数、少ないと軽い
b2 時間軸用の制限の有無、trueで制限あり、2Dでは意味無し
s3 時間軸用の制限のmt_expandとmt_inpandのモード

使用例
SevenFourThreeNRv2#前の奴のデフォとほぼ同じ
SevenFourThreeNRv2(i1=2)#より強く
SevenFourThreeNRv2(s0=mt_square(2))#上と同じ、でもこっちの方が重い
SevenFourThreeNRv2(b1=false,s0="both",s1=" 1 2 / ^",s2="255 1 2 / ^",i3=10)#デハロ?
SevenFourThreeNRv2(b1=false,i0=1,s1=" 3 4 / ^",s2="255 3 4 / ^",i3=10,b2=true,s3="both")#ドット妨害クロスカラー除去?、メモリ食いすぎwwwSDで700Mとかwwwww
SevenFourThreeNRv2(b1=false,i0=743,s0="both",s1=" 3 4 / ^",s2="255 3 4 / ^",i3=10,b2=true,s3="both")#ほんとに3Dなの?、↑よりさらにメモリ食う

ノシ
165名無しさん@編集中:2007/12/01(土) 21:53:52 ID:zVMq7PtH
なんか知らんけど、一番最後の
crop(0,0,width(c),height(c))
がうまく機能してなさそうなんで
pointresize(width(c),height(c),0,0,width(c),height(c))
これに差し替えで・・・

>>163
>132をチョコッと弄ったデリンギングな関数のつもり、実際は良く解らん
166名無しさん@編集中:2007/12/04(火) 13:49:36 ID:Ns7x44F8
Vinverseもどき
mt_adddiff(last,mt_lutxy(mt_makediff(mt_convolution("1","1 2 1",u=3,v=3),last,u=3,v=3),mt_makediff(mt_convolution("1",\
"-1 1 4 1 -1",u=3,v=3),last,u=3,v=3),"x 128 - y 128 - * 0 > x 128 - abs y 128 - abs < x y ? 128 ?",u=3,v=3),u=3,v=3)
167名無しさん@編集中:2007/12/11(火) 20:05:46 ID:DLfn2Ofv
ほしゅ
168名無しさん@編集中:2007/12/12(水) 23:01:50 ID:ZNfNyDle
x264 カスタムマトリクス調整 & ノイズ調整 スクリプト 第3版
ttp://www.uploda.net/cgi/uploader4/index.php?file_id=0000023520.zip

lumimaskにint型指定できるSSIM.dllが必要。

SSIM / Lumimask For Measuring Codec Quality
ttp://forum.doom9.org/showthread.php?t=92532
source
ttp://forum.doom9.org/showthread.php?p=862104#post862104
binary
ttp://forum.doom9.org/showthread.php?p=698521#post698521
169名無しさん@編集中:2007/12/14(金) 02:11:44 ID:vuXQXNV+
色空間変換・Layer を使わずに指定範囲・指定エリアにフィルタをかける関数
ttp://www.uploda.net/cgi/uploader4/index.php?file_id=0000023573.zip
170名無しさん@編集中:2007/12/14(金) 18:16:13 ID:QDdKu/SO
皆さん、こんにちは〜
結構良い感じのドット妨害除去ができたんでうpってみます。
ttp://kininaruweb.sakura.ne.jp/uploader/src1/happa3796.rar
名前は「NR」、・・・そのまんまです
たぶんYV12でしか動かない
引数がclip1つだけなんで、使い方はNR() とか nr とか Nr とか nR(last) とかそんな感じで

実際の処理は
function NR_uf(clip c){
c
c0=duplicateframe(deleteframe(framecount-1),0)
c1=deleteframe(duplicateframe(framecount-1),0)
merge(\
mt_logic(mt_logic(mt_inpand(mode="horizontal",u=3,v=3),mt_inpand(mode="vertical",u=3,v=3),"max",u=3,v=3),mt_logic(last,mt_logic(c0,c1,"min",u=3,v=3),"min",u=3,v=3),"max",u=3,v=3),\
mt_logic(mt_logic(mt_expand(mode="horizontal",u=3,v=3),mt_expand(mode="vertical",u=3,v=3),"min",u=3,v=3),mt_logic(last,mt_logic(c0,c1,"max",u=3,v=3),"max",u=3,v=3),"min",u=3,v=3)\
)
}
こんなの、てか結果はまるっきり一緒
縦横時間でそれぞれ最大最小を求めて、最大の中の最小と、最小の中の最大の平均を返す・・みたいな?

コンパイラにSSEとSSE2使う様に頼んどいたんで、両方使える環境じゃないとまずい思う
c++触ったの初めてなんで動いたとか動かないとか教えてもらえるとうれしいです。
ノシ
171名無しさん@編集中:2007/12/14(金) 23:29:01 ID:m+fmtO/5
君らは来るスレを微妙に間違えてる気がしなくも無い
172名無しさん@編集中:2007/12/20(木) 11:55:17 ID:Ze2ZKlCQ
nürüpo守
173名無しさん@編集中:2007/12/20(木) 11:56:43 ID:LpNJZ0sg
ガッ (・∀・)
174名無しさん@編集中:2007/12/21(金) 16:17:29 ID:JHSDTI/N
NicAC3Source(***)
#音声の長さ分の映像を足す
function addvideo(clip c) {
blankclip(length = int(100.0 * AudioLengthF(c) / float(audiorate(c))), fps=100)
return audiodub(last,c)
}
addvideo()
#AudioDubEx(BlankClip(length=Int(120*AudioLengthF(last)/Audiorate(last)), width=32, height=32, pixel_type="RGB24", fps=120), last)

Soundout(output="cmd", filename="ぱす\audio.mp4", type=0, autoclose=true, executable="ぱす\neroaacenc.exe", prefilename="-ignorelength -q 0.5 -if - -of")
#SoundOut(output="WAV",filename="output.wav", autoclose = true, showprogress=true, overwritefile="Yes")
#AC3 6ch用
#Soundout(output="cmd", filename="ぱす\audio.mp4", type=0, autoclose=true, executable="ぱす\neroaacenc.exe", prefilename="-ignorelength -br 256000 -if - -of")


AvsPの拡張子別テンプレートに登録しておけば空白のタブにD&D後
プレビュー窓をだした瞬間エンコが始まります。
175名無しさん@編集中:2007/12/28(金) 05:13:27 ID:5UN9eizQ
>>89
これはどうやって使えばいいんだ?
176名無しさん@編集中:2008/01/01(火) 00:17:12 ID:UGGsjhoK
元日保守
177名無しさん@編集中:2008/01/01(火) 01:25:48 ID:5Qbvz5i3
元日保守
178名無しさん@編集中:2008/01/01(火) 14:40:44 ID:/o0090QP
function seven43upconv(clip c,int target_width,int target_height,float "src_left",float "src_top",float "src_width",float "src_height"){
src_left=default(src_left,0.)
src_top=default(src_top,0.)
src_width=default(src_width,width(c)*1.)
src_width=src_width<=0?width(c)-src_left+src_width:src_width
src_height=default(src_height,height(c)*1.)
src_height=src_height<=0?height(c)-src_top+src_height:src_height
rf="spline64resize"
try{
eval(rf+"(c,width(c),height(c))")
}
catch(err_msg){
rf="lanczosresize"
}
eval("bicubicresize(c,"+string(target_width*3)+","+string(target_height*3)+",1.,0.,"+string(src_left)+","+string(src_top)+","+string(src_width)+","+string(src_height)+")")
eval(rf+"(width(c),height(c),"+string(src_left*width/src_width*-1)+","+string(src_top*height/src_height*-1)+","+string(width(c)*width/src_width)+","+string(height(c)*height/src_height)+")")
mt_adddiff(c,mt_makediff(c,last,u=3,v=3),u=3,v=3)
eval("bicubicresize("+string(target_width*3)+","+string(target_height*3)+",1.,0.,"+string(src_left)+","+string(src_top)+","+string(src_width)+","+string(src_height)+")")
mt_adddiff(last,mt_makediff(last,mt_convolution("1 1 1","1 1 1",u=3,v=3),u=3,v=3),u=3,v=3)
mt_adddiff(last,mt_lutxy(mt_makediff(mt_expand(u=3,v=3),last,u=3,v=3),mt_makediff(mt_inpand(u=3,v=3),last,u=3,v=3),"x 128 - 128 y - < x x 128 - 128 y - > y 128 ? ?",u=3,v=3),u=3,v=3)
eval(rf+"(target_width,target_height)")
}
ボケるけどジャギら無いバイキュービックb=1.,c=0.の拡大にアンシャープマスク、ssxsharpenをあわせてみたら。。。。糞重い
179名無しさん@編集中:2008/01/01(火) 14:45:29 ID:xZtbbjdB
>>178
肝心の効果はどうなん?
180名無しさん@編集中:2008/01/01(火) 15:10:20 ID:/o0090QP
>>179
そこそこww
nnedi(0,true).turnleft.nnedi(0,true).turnright
には負ける(ssxsharpenのせいで>178の方が不自然)けど
lanczosresize(nnedi(0,true).turnright.nnedi(0,true).turnleft,width*2,height*2,.5,.5,width*2,height*2)
になら勝ってる(半ピクセルずらすとかなりへぼくなる)と思う。
181名無しさん@編集中:2008/01/01(火) 17:08:39 ID:/o0090QP
function seven43upconv(clip c,int target_width,int target_height,float "src_left",float "src_top",float "src_width",float "src_height",int "taps"){
src_left=default(src_left,0.)
src_top=default(src_top,0.)
src_width=default(src_width,width(c)*1.)
src_width=src_width<=0?width(c)-src_left+src_width:src_width
src_height=default(src_height,height(c)*1.)
src_height=src_height<=0?height(c)-src_top+src_height:src_height
taps=default(taps,3)
eval("bicubicresize(c,"+string(target_width*4)+","+string(target_height*4)+",1.,0.,"+string(src_left)+","+string(src_top)+","+string(src_width)+","+string(src_height)+")")
eval("lanczosresize(width(c),height(c),"+string(src_left*width/src_width*-1)+","+string(src_top*height/src_height*-1)+","+string(width(c)*width/src_width)+","+string(height(c)*height/src_height)+","+string(taps)+")")
mt_adddiff(c,mt_makediff(c,last,u=3,v=3),u=3,v=3)
eval("bicubicresize("+string(target_width*4)+","+string(target_height*4)+",1.,0.,"+string(src_left)+","+string(src_top)+","+string(src_width)+","+string(src_height)+")")
mt_adddiff(last,mt_lutxy(mt_makediff(mt_expand(u=3,v=3),last,u=3,v=3),mt_makediff(mt_inpand(u=3,v=3),last,u=3,v=3),"x 128 - 128 y - < x x 128 - 128 y - > y 128 ? ?",u=3,v=3),u=3,v=3)
mt_adddiff(last,mt_makediff(last,mt_convolution(u=3,v=3),u=3,v=3),u=3,v=3)
eval("lanczosresize(target_width,target_height,taps="+string(taps)+")")
}
とりあえず>178は無かったことに・・・
なんか二回目のアンシャープマスクが逆効果だったみたいだから順番入れ替え
ダウンサンプリングをspline64からlanczosに変更

結局eedi2にもnnediにも勝てそうに無いwwwww
プラグイン化したら速度でなら勝てそうだけどMitchellNetravaliとかウザイ
182名無しさん@編集中:2008/01/01(火) 18:43:45 ID:/o0090QP
何度もサーセン
予定とはかなり違うけど
seven43upconv(width,height)
こんな感じで使えばかなり良い感じのだったので報告
bicubic(b=1,c=0)+lanczosでssxsharpenすると適当にNR、dehaloがかかってアニメ的に綺麗なのは知ってたけど
それとは違ってLimitedSharpenみたいな方向に良い感じ、もちろん糞重いけど
あと、
mt_adddiff(last,mt_lutxy(mt_makediff(mt_expand(u=3,v=3),last,u=3,v=3),mt_makediff(mt_inpand(u=3,v=3),last,u=3,v=3),"x 128 - 128 y - < x x 128 - 128 y - > y 128 ? ?",u=3,v=3),u=3,v=3)
mt_adddiff(last,mt_makediff(last,mt_convolution(u=3,v=3),u=3,v=3),u=3,v=3)
↑をプラグイン化してみたけど焼け石にm(ryなかんじでしたOT2

てか俺のIDかっこよくね?
183名無しさん@編集中:2008/01/02(水) 13:30:06 ID:dT/7RLw8
一晩でAvisynth使えるようになった俺すげー

SourceDir = "D:\bs\"
SourceName = "1"

RangeName = "1"
MPEG2Source("D:\bs\1.d2v")

AC3source("D:\bs\1.ac3")

AssumeTFF() #フィールドオーダー指定(トップ先行)
FrameCache(9).AutoDeint("")
Crop(8, 0, 704, 480)
Convolution3D(preset="movieHQ")
LanczosResize(640,480)
return last #おわり
184名無しさん@編集中:2008/01/04(金) 21:28:48 ID:XJEnjgg3
AviSynthが使えるっていうのは
3項演算子と再帰呼び出しでループする関数が作れるレベルじゃねの?
185名無しさん@編集中:2008/01/05(土) 16:07:16 ID:+PGupEZ0
avisynth使い始めて、7,8年になるが、年々フィルターが減って、
今では、

video = mpeg2source("〜")
audio = wavSource("〜")
AudioDub(video, audio)

trim(1,100)

これだけ・・・
186名無しさん@編集中:2008/01/05(土) 16:17:04 ID:gIh2Q5cD
どんだけ〜
187名無しさん@編集中:2008/01/05(土) 16:25:48 ID:ih6R9AbJ
HDキャプでインターレース保持なら短いかも。
188名無しさん@編集中:2008/01/05(土) 18:05:02 ID:uirNb8/z
だよね、フィルタかけなくても奇麗だし
189名無しさん@編集中:2008/01/05(土) 18:19:24 ID:2bk43Qb0
>>188
眼科池
190名無しさん@編集中:2008/01/05(土) 20:41:22 ID:ih6R9AbJ
>>189
デコーダーの進化に興味はないのか?
191名無しさん@編集中:2008/01/05(土) 21:05:38 ID:/j7rleaz
画質は糞目だから何とも言わないが
アナログD3キャプチャだとfft3dgpu掛けると結構縮むよ。
192名無しさん@編集中:2008/01/05(土) 21:48:28 ID:XF0s/U/h
顔に見えるネ ("〜")
193名無しさん@編集中:2008/01/07(月) 15:33:49 ID:Dvrk4O3t
↓から
function nnediresize(clip c,int target_width,int target_height,float "src_left",float "src_top",\
float "src_width",float "src_height",int "taps",bool "merge_turn180",bool "merge_invert"){
src_left=default(src_left,0.)
src_top=default(src_top,0.)
src_width=default(src_width,float(width(c)))
src_height=default(src_height,float(height(c)))
src_width=src_width<=0.?float(width(c))-src_left+src_width:src_width
src_height=src_height<=0.?float(height(c))-src_top+src_height:src_height
taps=default(taps,3)
merge_turn180=default(merge_turn180,false)
merge_invert=default(merge_invert,false)
function nnediresize_resample(clip c,float subrange_left,float subrange_top,float subrange_width,\
float subrange_height,int target_width,int target_height,int taps){
subrange_width<float(target_width)||subrange_height<float(target_height)?subrange_height*float(\
target_width)<subrange_width*float(target_height)?nnediresize_resample(nnedi(c,0,true),\
subrange_left,subrange_top*2.+.5,subrange_width,subrange_height*2.,target_width,target_height,taps\
):nnediresize_resample(turnleft(nnedi(turnright(c),0,true)),subrange_left*2.+.5,subrange_top,\
subrange_width*2.,subrange_height,target_width,target_height,taps):lanczosresize(c,target_width,\
target_height,subrange_left,subrange_top,subrange_width,subrange_height,taps)
}
nnediresize_resample(c,src_left,src_top,src_width,src_height,target_width,target_height,taps)
merge_turn180?merge(last,turn180(nnediresize_resample(turn180(c),float(width(c))-src_left-\
src_width,float(height(c))-src_top-src_height,src_width,src_height,target_width,target_height,taps\
))):last
merge_invert?merge_turn180?merge(last,invert(merge(nnediresize_resample(invert(c),src_left,src_top\
,src_width,src_height,target_width,target_height,taps),turn180(nnediresize_resample(turn180(invert\
194名無しさん@編集中:2008/01/07(月) 15:34:06 ID:Dvrk4O3t
(c)),float(width(c))-src_left-src_width,float(height(c))-src_top-src_height,src_width,src_height,\
target_width,target_height,taps))))):merge(last,invert(nnediresize_resample(invert(c),src_left,\
src_top,src_width,src_height,target_width,target_height,taps))):last
}
↑まで
>184の言う"3項演算子と再帰呼び出しでループする関数"ってこんな感じで良いの?
もしかして俺ってAviSynth使えてる?
195名無しさん@編集中:2008/01/13(日) 05:31:59 ID:sImB7R5t
#MTp…MTiの擬似プログレッシブ対応
#    filter    実行するフィルタ
#
#    既知の不具合
#        時間軸系フィルタは上手く動作しません
#        YV12では上手く動作しません
#        MTiで使用出来ないフィルタは使用出来ません
function MTp(clip clip, string filter) {
    tff = clip.GetParity()
    clip = clip.AssumeTFF()
    clip = Interleave(clip.SelectEvery(2, 0), clip.SelectEvery(2, 1))
    clip = clip.AssumeFieldBased()
    clip = clip.Weave()
    clip = clip.AssumeFrameBased()
    clip = clip.MTi(filter)
    clip = clip.SeparateFields()
    clip = clip.AssumeFrameBased()
    clip = ((tff)? clip.AssumeTFF(): clip.AssumeBFF())
    return clip
}


MTp("""subtitle("保守")""")
196名無しさん@編集中:2008/01/14(月) 15:05:52 ID:pPBfz4B1
DVDアプコンをEDIUpsizer使ってやろうとしたら、死ぬほど重たいですね。
シングルスレッドでしか動かないので、クアッドコアとか持ち腐れ気味。
誰か、適度に使えるアプコンスクリプトplz
197名無しさん@編集中:2008/01/15(火) 22:55:44 ID:7Mxa1bv4
>>196
つPS3
198名無しさん@編集中:2008/01/15(火) 23:17:02 ID:KtRfAcqU
PS3のアプコンはDRCの劣化版ゴミ
199名無しさん@編集中:2008/01/15(火) 23:31:02 ID:vhrCFnTl
そのゴミの画質になかなか追いつけないし、画質的に追いつけても時間が・・・・
リアルタイム処理であれだけの画質をあれだけの値段の機器でやってしまうのは
あらためてすごいと思う今日この頃。
200名無しさん@編集中:2008/01/15(火) 23:33:46 ID:Wzuhq1ws
相手にするな
201名無しさん@編集中:2008/01/16(水) 09:11:04 ID:iGFrIdKa
1 名前:名無しさん@編集中[] 投稿日:2008/01/14(月) 18:46:44 ID:pPBfz4B1
アプコンに関する専門スレを立ててみた。
Avisynth等を用いて、PS3アプコンを越える画質を作る方法を
研究するスレ。語って下さい。
202名無しさん@編集中:2008/01/16(水) 09:15:56 ID:4S3cgOY/
>>201
[Avisnth]アプコン技術総合[PS3]
http://pc11.2ch.net/test/read.cgi/avi/1200304004/





snthwwwwwwwwwwwww
203名無しさん@編集中:2008/01/16(水) 09:44:01 ID:7OiAWSUR
糞スレ立てるなよw
204名無しさん@編集中:2008/01/16(水) 16:02:32 ID:aRaMhix6
↓から
function nnediresize(clip,int target_width,int target_height,float "src_left",float "src_top",float "src_width",float "src_height",int "taps",bool "merge_turn180",bool "merge_invert"){a=clip
b=target_width chr(13)c=target_height chr(13)d=default(src_left,0.)chr(13)d=isfloat(d)?d:float(d)chr(13)e=default(src_top,0.)chr(13)e=isfloat(e)?e:float(e)chr(13)f=float(width(a))
g=default(src_width,f)chr(13)g=isfloat(g)?g:float(g)chr(13)g=g<=0.?f-d+g:g chr(13)h=float(height(a))chr(13)i=default(src_height,h)chr(13)i=isfloat(i)?i:float(i)chr(13)i=i<=0.?h-e+i:i
j=default(taps,3)chr(13)k=default(merge_turn180,false)chr(13)l=k?f-d-g:0.chr(13)m=k?h-e-i:0.chr(13)n=default(merge_invert,false)
function nnediresize_(a,float b,float c,float d,float e,int f,int g,int h){i=float(f)chr(13)j=float(g)
d<i||e<j?e*i<d*j?nnediresize_(nnedi(a,0,true),b,c*2.+.5,d,e*2.,f,g,h):nnediresize_(turnleft(nnedi(turnright(a),0,true)),b*2.+.5,c,d*2.,e,f,g,h):lanczosresize(a,f,g,b,c,d,e,h)}
nnediresize_(a,d,e,g,i,b,c,j)chr(13)k?merge(last,turn180(nnediresize_(turn180(a),l,m,g,i,b,c,j))):last
n?k?merge(last,invert(merge(nnediresize_(invert(a),d,e,g,i,b,c,j),turn180(nnediresize_(turn180(invert(a)),l,m,g,i,b,c,j))))):merge(last,invert(nnediresize_(invert(a),d,e,g,i,b,c,j))):last}
↑まで

>193-194からの変更点
1 src_leftとかがint型も受け取るみたいだったのでfloat型にキャストを追加
2 同じ計算を何度もしてたのを変数に入れるようにした
3 変数の名前をシンプルにしてみた
4 改行位置を変えた

3と4はホントどーでも良いことで
nnediが重過ぎるから2もそれほど重要じゃないはずだし
割り算してないから1も実は無意味だったりします

てかfloat指定の引数にintが入るとかあるんだね、勝手にキャストしてくれると思ってたよ
int/floatのつもりが実はint/intだったりとか怖いなぁ
205名無しさん@編集中:2008/01/18(金) 00:14:56 ID:Iixs4I8W
>>55の修正・拡張
#OffsetFrame…現在のフレームとは違うフレームの画像を表示する
#    ofst    表示するフレームの位置(+1なら次のフレーム、-1なら前のフレーム)
#    audio    オーディオの同期(省略なら同期、偽なら非同期)
function OffsetFrame(clip clip, int ofst, bool "audio") {
    audio = default(audio, true)
    clip =    ((0 < ofst)
        \        ? clip.Trim(ofst,0)
        \    :(ofst < 0)
        \        ? clip.Loop((-ofst)+1, 0, 0)
        \        : clip
        \    )
    clip =    ((clip.HasAudio() && !audio)
        \        ? clip.DelayAudio(Float(ofst) / clip.Framerate())
        \        : clip
        \    )
    return clip
}
206名無しさん@編集中:2008/01/18(金) 00:15:23 ID:Iixs4I8W
>>54の修正・拡張
#for…繰り返し処理を行う
#    start    値の初期値
#    end        値の終了値
#    step    刻み値
#    filter    繰り返し分適応させるフィルタ(省略すると何もしません、“""”でも省略扱いです。)
#            繰り返しの値は“i”もしくは“crnt”で取得出来ます
#    merge    クリップ結合関数(省略すると最後に作成したクリップを返します、“""”でも省略扱いです。)
#            繰り返し途中に作成したクリップは早めに生成されたクリップが“c1”、
#            遅めに生成されたクリップが“c2”になります
#            この2つのクリップを1つのクリップに結合します。
function for(clip clip, int start, int end, int step, string "filter", string "merge") {
    filter = default(filter, "")
    merge = default(merge, "")
    merge = (("" != merge)? merge: "c1")
    i = start
    crnt = start
    next = crnt + step

    c1 = clip
    c2 = (("" != filter)? Eval("clip." + filter): clip)
    c2 = ((next < end) ? c2.for(next, end, step, filter, merge): c2)
    return ((next < end)? Eval(merge): c1)
}
207名無しさん@編集中:2008/01/18(金) 00:16:25 ID:Iixs4I8W
#FrameToStack…複数のフレームを1フレームに統合する
#    num            統合数
#    horizontal    横に並べる(省略・偽なら縦並べ、真なら横並べ)
function FrameToStack(clip clip, int num, bool "horizontal") {
    horizontal = default(horizontal, false)

    clip = clip.for(0, num, 1, "OffsetFrame(1)"
                \    , ((horizontal)? "StackHorizontal": "StackVertical") + "(c1, c2)")
    clip = clip.SelectEvery(num, 0)
    return clip
}
208名無しさん@編集中:2008/01/18(金) 00:20:24 ID:Iixs4I8W
#StackToFrame…1フレームに統合されたフレームを複数フレームに分離する
#    num            統合数
#    horizontal    横に並べられている(省略・偽なら縦並べ、真なら横並べ)
function StackToFrame(clip clip, int num, bool "horizontal") {
    horizontal = default(horizontal, false)

    width = ((!horizontal)? clip.Width(): clip.Width() / num)
    height = ((horizontal)? clip.Height(): clip.Height() / num)
    shiftx = ((horizontal)? width: 0)
    shifty = ((!horizontal)? height: 0)

    clip = clip.ChangeFPS(clip.FramerateNumerator() * num, clip.FramerateDenominator())
    clip = clip.OffsetFrame(-num / 2)
    clip = clip.ScriptClip("offset = current_frame%"+string(num)+chr(13)+
           \ "crop("+string(shiftx)+"*offset, "+string(shifty)+"*offset, "+string(width)+", "+string(height)+")"+chr(13)+
           \ "AddBorders(0, 0, "+string(shiftx*(num-1))+", "+string(shifty*(num-1))+")")
    clip = clip.crop(0, 0, width, height)
    return clip
}
209名無しさん@編集中:2008/01/18(金) 00:20:54 ID:Iixs4I8W
#MTv…MTを用いたフレーム別マルチスレッドフィルタ適応
#    filter            実行するフィルタ
#    threads            スレッド数(省略なら2)
#    splitvertical    縦に分割する(省略・偽なら横分割、真なら縦分割)
#
#    既知の不具合
#        時間軸系フィルタは上手く動作しません
#        MTで使用出来ないフィルタは使用出来ません
function MTv(clip clip, string filter, int "threads", bool "splitvertical") {
    threads = default(threads, 2)
    splitvertical = default(splitvertical, false)

    frame = clip.FrameCount()
    clip = clip.FrameToStack(threads, splitvertical)
    clip = clip.MT(filter, threads, 0, splitvertical)
    clip = clip.StackToFrame(threads, splitvertical)
    clip = clip.Trim(0, frame - 1)

    return     clip
}
210名無しさん@編集中:2008/01/18(金) 00:25:28 ID:Iixs4I8W
#NoResizeEDIUpsizer…画面サイズを変更しないEDIUpsizer
#    引数はEDIUpsizer準拠
function NoResizeEDIUpsizer(clip clip, int method, int window, float threshold4, float threshold8, float threshold16, int constraint, bool chroma, int cubic, int mvar) {
    clip = clip.Crop(0, 0, clip.Width() / 2, clip.Height() / 2)
    clip = clip.EDIUpsizer(method, window, threshold4, threshold8, threshold16, constraint, chroma, cubic, mvar)
    return clip
}
211名無しさん@編集中:2008/01/18(金) 00:27:03 ID:Iixs4I8W
#EDIUpsizerMt…EDIUpsizerのマルチスレッド対応
#    引数はEDIUpsizer準拠
#    以下追加引数
#    threads    スレッド数(省略なら2)
function EDIUpsizerMt(clip clip, int "method", int "window", float "threshold4", float "threshold8", float "threshold16", int "constraint", bool "chroma", int "cubic", int "mvar", int "threads") {
    method = default(method, 7)
    window = default(window, 0)
    threshold4 = default(threshold4, 1000.0)
    threshold8 = default(threshold8, 2000.0)
    threshold16 = default(threshold16, 4000.0)
    constraint = default(constraint, 2)
    chroma = default(chroma, false)
    cubic = default(cubic, 2)
    mvar = default(mvar, 8)
    threads = default(threads, 2)

    clip = clip.AddBorders(0, 0, clip.Width(), clip.Height())
    clip = clip.MTv("NoResizeEDIUpsizer("+string(method)+","+string(window)+","+
      \ string(threshold4)+","+string(threshold8)+","+string(threshold16)+","+
      \ string(constraint)+","+string(chroma)+","+string(cubic)+","+string(mvar)+")", threads)
    return clip
}
212名無しさん@編集中:2008/01/18(金) 00:34:12 ID:Iixs4I8W
EDIUpsizer() → EDIUpsizerMt(threads=4)
EDIUpsizer(9, 0) → EDIUpsizerMt(9, 0, threads=4)

時間軸に依存しないフィルタなら殆どマルチスレッド対応出来そうな気がする。
まぁ、使わない訳だが…。
213名無しさん@編集中:2008/01/18(金) 02:08:47 ID:RKNPVJi6
おお、早速使わせてもらいます
214名無しさん@編集中:2008/01/18(金) 10:18:38 ID:B3GQWsjd
神ktkr!
215名無しさん@編集中:2008/01/18(金) 23:09:54 ID:9w3YdqN2
ゴミばっかだな
216名無しさん@編集中:2008/01/18(金) 23:43:37 ID:B3GQWsjd
と思ったらうは重いなぁ。メモリ釈迦食うね
217名無しさん@編集中:2008/01/19(土) 00:02:04 ID:FgMPX7tq
メモリって・・・(・з・)
218名無しさん@編集中:2008/01/28(月) 18:15:29 ID:Iwy4cFh2
SetMTMode(2)で動いたりしないかなー試してみよ
219名無しさん@編集中:2008/01/30(水) 17:59:21 ID:qZmXxuAG
てst
220名無しさん@編集中:2008/02/07(木) 15:43:35 ID:NL8NsDwc
暇だったんで指定サイズ以内でPAR1:1にリサイズする為の関数を作ってみた
↓ここから
function getResizeArguments(clip clip,int limit_width,int limit_height,int"par_width",int"par_height",int"align"){
function getResizeArguments_g(int i,int j){
j==0?i:getResizeArguments_g(j,i%j)
}
function getResizeArguments_w(int sw,int lw,int dw,int dh,int a){
th=(lw*dh+dw*a-1)/(dw*a)*a
ln=(th*dw-lw*dh)*sw
ld=2*th*dw
g=getResizeArguments_g(ln,ld)
ln=ln/g
ld=ld/g
sl="float("+string(ln)+")/float("+string(ld)+")"
wn=sw*ld-2*ln
g=getResizeArguments_g(wn,ld)
sw="float("+string(wn/g)+")/float("+string(ld/g)+")"
a=string(lw)+","+string(th)
ln!=0?a+",src_left="+sl+",src_width="+sw:a
}
function getResizeArguments_h(int sh,int lh,int dw,int dh,int a){
tw=(lh*dw+dh*a-1)/(dh*a)*a
tn=(tw*dh-lh*dw)*sh
td=2*tw*dh
g=getResizeArguments_g(tn,td)
tn=tn/g
td=td/g
st="float("+string(tn)+")/float("+string(td)+")"
hn=sh*td-2*tn
g=getResizeArguments_g(hn,td)
sh="float("+string(hn/g)+")/float("+string(td/g)+")"
a=string(tw)+","+string(lh)
221名無しさん@編集中:2008/02/07(木) 15:44:08 ID:NL8NsDwc
tn!=0?a+",src_top="+st+",src_height="+sh:a
}
sw=width(clip)
sh=height(clip)
pw=default(par_width,1)
ph=default(par_height,1)
a=default(align,16)
lw=limit_width/a*a
lh=limit_height/a*a
dw=pw*sw
dh=ph*sh
g=getResizeArguments_g(dw,dh)
dw=dw/g
dh=dh/g
lw*dh>lh*dw?getResizeArguments_h(sh,lh,dw,dh,a):getResizeArguments_w(sw,lw,dw,dh,a)
}
↑ここまで

引数について
clip
 このクリップの横と縦をリサイズするつもりで計算します
limit_width,limit_height
 横と縦の限界、limit_widthxlimit_height以内になるように計算します
par_width,par_height
 clipのPARを指定できます(省略時1:1)
align
 alignの倍数になる様に計算します(省略時16)

使い方
Eval("LanczosResize("+getResizeArguments(width,height,10,11)+")")
 PAR10:11のクリップを16の倍数でPAR1:1になるように縮小、↓みたいな感じ
 ttp://nagamochi.info/src/up0814.png
222名無しさん@編集中:2008/02/07(木) 15:44:26 ID:NL8NsDwc
Eval("BicubicResize("+getResizeArguments(1920,1200,10,11)+",b=1,c=0)")
 PAR10:11のクリップを1920x1200以内の16の倍数でPAR1:1になるように拡大、↓みたいな感じ
 ttp://nagamochi.info/src/up0815.png
223名無しさん@編集中:2008/02/07(木) 15:57:02 ID:NL8NsDwc
拡大に使うつもりで作ったんで縮小には向きません。
224名無しさん@編集中:2008/02/07(木) 22:36:56 ID:FcbomYRA
いただき
225名無しさん@編集中:2008/02/11(月) 23:38:18 ID:VD/F6OOg
# 縦横を1倍から2倍までの間にアップサンプリングする関数。
# ニアレストネイバー法で縦横をそれぞれ4倍し離散コサイン変換したものを縮小。
# 要 AviSynth 2.57 YV12, プログレッシブ専用

# overlapped dct, proof of concept frequency lowpass and interpolator function
# ttp://forum.doom9.org/showthread.php?t=121939
# アップサンプリングはこのスレからの引用。

# ratio: 0以上の整数。0 で target_width, target_height の値に拡大。デフォルト 0
#     1 で縦横をそれぞれ2倍に拡大。2 を指定するとアップサンプリングされたものを元の大きさに縮小。
#     3 以上のとき、 n を ratio の値としたとき、src_clip.width*2 * n-1/n, src_clip.height*2 * n-1/n が
#             mod の倍数になるような値で自動で見つける。ピクセル比は保たれたままになる。
# 縦横を16の倍数にするとき、704*480 n=4, 720*480 n=3, 5, 6, 10, 15, 30 が 解。

# 720 x 480 のソースでの使用例:
# Crop(8, 0, -8, 0).DCTus2(1280, 720, sharpness=1.875, u64dct=false, warp=1.5, rx=1.2, ry=1.2, ratio=0) 正方ピクセル。
# DCTus2(sharpness=1.875, u64dct=false, warp=1.5, rx=1.2, ry=1.2, mod=16, ratio=5) ピクセル比は保たれたまま。

# いるもの。
# Import( PluginDir + "DeHalo_alpha.avs" ) # ttp://forum.doom9.org/showthread.php?p=777956#post777956
# LoadPlugin( PluginDir + "Average.dll" ) # ttp://forum.doom9.org/showthread.php?p=902012#post902012
# LoadPlugin( PluginDir + "aWarpSharp(Pruned).dll" )
# LoadPlugin( PluginDir + "DctFilter_test.dll" )
# LoadPlugin( PluginDir + "mt_masktools.dll" )
# LoadPlugin( PluginDir + "RepairSSE3.dll" )

# DctFilter_test.dll, dctlimit()
# ttp://forum.doom9.org/showthread.php?p=953353#post953353
226名無しさん@編集中:2008/02/11(月) 23:40:20 ID:VD/F6OOg
function DCTus2(clip clip, int "target_width", int "target_height", float "sharpness", bool "u64dct", float "warp", bool "rep", float "rx",
\ float "ry", float "sharpness2", int "ratio", int "mod", float "shift_left", float "shift_top", bool "show")
{
target_width = default( target_width, clip.width*2 )
target_height = default( target_height, clip.height*2 )
u64dct = default( u64dct, false )
warp = default( warp, 1.5 )
rep = default( rep, true )
sharpness = default( sharpness, 1.875 )
sharpness2 = default( sharpness2, 1.126 )
rx = default( rx, 1.4 )
ry = default( ry, 1.4 )
ratio = default( ratio, 0 )
mod = default( mod, 16 )
shift_left = default( shift_left, 0.0 )
shift_top = default( shift_top, 0.0 )
show = default( show, false )
dx = int(round(clip.width / 16.0) * 16) - clip.width
dy = int(round(clip.height / 16.0) * 16) - clip.height
#clip.EDIUpsizer(method=0, chroma=false).EDIUpsizer(method=0, chroma=false)
clip.PointResize(clip.width*4, clip.height*4)
(dx + dy >= 1) ? AddBorders(dx*4, dy*4, 0, 0) : last
dctlimit(dct2=sharpness, dct3=0, dct4=0, dct5=0, use64dct=u64dct, use8dct=true)
PointResize(last.width/2, last.height/2)
DeHalo_alpha(rx=rx, ry=ry, lowsens=0.0, highsens=0.0, ss=1.0)
(rep == true) ? dctlimit(use64dct=u64dct, dct2=1+(sharpness/11.6), dct3=1+(sharpness/8.1), dct4=sharpness,
\ dct5=sharpness2/8.1, dct6=sharpness2/11.6, dct7=sharpness2/16.1, dct8=sharpness2/23.1)
\ : last

(rep == true) ? DeHalo_alpha(rx=2.0, ry=2.0, lowsens=0.0, highsens=0.0, ss=1.0) : last
227名無しさん@編集中:2008/02/11(月) 23:47:44 ID:VD/F6OOg

awarpsharp(depth=warp, cm=0, blurlevel=1)
awarpsharp(depth=warp, cm=0, blurlevel=1)
awarpsharp(depth=warp, cm=0, blurlevel=1)
awarpsharp(depth=warp, cm=0, blurlevel=1)
(dx >= 1) ? Crop(dx*4, 0, 0, 0) : last
(dy >= 1) ? Crop(0, dy*4, 0, 0) : last
Spline36Resize(last.width, last.height, shift_left, shift_top, last.width, last.height)
MergeChroma(last, clip.Lanczos4Resize(clip.width*2, clip.height*2), 1)
ratio = abs(ratio)
ratio = (ratio > 0) ? abs( last.getRatio(-ratio, mod, mod) ) : ratio
num = (ratio == 1) ? 1 : ratio - 1
(show == true) && (ratio != 0) ? Subtitle(string(num) + "/" + string(ratio) + " " + string(width*num/ratio)
\ + " x " + string(height*num/ratio), x=32, y=64, size=32) : last

return (ratio < 1) ? Spline36Resize(target_width, target_height)
\ : Spline36Resize( clip.width*2 * num / ratio, clip.height*2 * num / ratio )
}
228名無しさん@編集中:2008/02/11(月) 23:49:45 ID:VD/F6OOg
function getRatio(clip clip, int "ratio", int "mod_x", int "mod_y", int "t")
{
ratio = default( ratio, 2 )
mod_x = default( mod_x, 16 )
mod_y = default( mod_y, 16 )
t = default( t, Min(clip.width, clip.height) )
t = t - 1
num = (ratio > 0) ? ratio : abs(ratio) - 1
den = (ratio > 0) ? ratio - 1 : abs(ratio)
W = clip.width * num
H = clip.height * num
rep = (W % den == 0) && (H % den == 0) && (W/den % mod_x == 0) && (H/den % mod_y == 0)
\ ? ratio
\ : ( (ratio > 0) ? ratio + 1 : ratio - 1 )
return (abs(ratio) < 2) || (t == 0) ? 1
\ : (rep != ratio) ? getRatio(clip, rep, mod_x, mod_y, t) : ratio
}

# AviSynth 2.58 Added Min()/Max() script functions.
function Max(a, b){ return (a > b) ? a : b }
function Min(a, b){ return (a < b) ? a : b }
229名無しさん@編集中:2008/02/13(水) 20:22:49 ID:mDcgCeWJ
>>226
間違っています。
以上。
はい次の方。
230名無しさん@編集中:2008/02/13(水) 23:19:10 ID:SwGa3dgi
>>227
(dx >= 1) ? Crop(dx*4, 0, 0, 0) : last
(dy >= 1) ? Crop(0, dy*4, 0, 0) : last

(dx >= 1) ? Crop(dx*2, 0, 0, 0) : last
(dy >= 1) ? Crop(0, dy*2, 0, 0) : last
に変更
231名無しさん@編集中:2008/02/23(土) 13:17:26 ID:ZNz580UE
SevenFourThreeNR普通に実写でも使えるな
もしかしてこれ最強のNRじゃね
232名無しさん@編集中:2008/03/02(日) 14:33:41 ID:Tvog8BKf
SevenFourThreeNR使ってみたいけど素人な俺にはよくわかんないんだぜ
↓書式はこれでいいの?
SevenFourThreeNRv2(clip c,bool "b0",bool "b1",int "i0",string "s0",int "i1",int "i2",\
string "s1",string "s2",int "i3",bool "b2",string "s3")

んでデフォはこれ↓?
b0=default(b0,true)
b1=default(b1,true)
i0=default(i0,0)
s0=default(s0,"square")
i1=default(i1,1)
i2=default(i2,8)
s1=default(s1," 4 3 / ^")
s2=default(s2,"256")
i3=default(i3,8)
b2=default(b2,false)
s3=default(s3,"square")

だとしたらi2、i3とかデフォですごい強くかかってるんだね
stringはどんなものがあるのかもわからんし
デフォで超重いから軽いSevenFourThreeNRのほう使おうかとか思ったけどそっちはv2以上に説明無くてわけわからん
俺みたいな素人向けの、フィルタに入ってるreadmeみたいなの誰か作ってくれ
233名無しさん@編集中:2008/03/03(月) 12:26:05 ID:IWQNXfjv
>>232
>161-162って>132と比べてそんなに重かったっけ?あんまり変わらなかったと思うけど・・
>132の方の引数についてちょっと書いてみる、>164とあわせて見て欲しいな
i0がv2のi2、i1がv2のi1、i2がv2のi3
sは元に戻す強さ"mt_merge(c0,c1,mt_lutxy(c0,c1,"x y - abs"+s,u=3,v=3),u=3,v=3)"c0がボケたクリップでc1は元のクリップ
デフォならmt_merge(c0,c1,mt_lutxy(c0,c1,"x y - abs 4 3 / ^",u=3,v=3),u=3,v=3)つまり(x*((x<y?y-x:x-y)^(4/3)>255?255:(x<y?y-x:x-y)^(4/3))+y*(256-((x<y?y-x:x-y)^(4/3)>255?255:(x<y?y-x:x-y)^(4/3))))/256
書いてて何のことか分からなくなったwww
ボケたクリップと元のクリップの差を元にどの程度復元するかの係数みたいなもの、v2ではmt_mergeやめてmt_lutxyだけでやってる
b0はアンシャープマスクの有無、v2のb1に近い
b1はb0がfalseならあまりい必要ない作業に関しての分岐
ぼかして戻して強調したクリップをぼかしてから強調したクリップの方に戻して、最後に大本のクリップの方に戻すかどうか、v2ではb1にまとめてたと思う

効果としてはSevenFourThreeNR(2,1,2," 8 5 / ^",true,false)ぐらいで十分だった気がする


ついでだから>162の訂正
i6=ceil(width(c)/i4)*i4
i7=ceil(height(c)/i5)*i5

i6=(width(c)+i4-1)/i4*i4
i7=(height(c)+i5-1)/i5*i5
これ作ってた頃はjavascriptの所為でintとfloatがごっちゃになってました、多分>165もcropで拡大しようとした所為なんだろうなぁ
無知ってこわいね。
234名無しさん@編集中:2008/03/05(水) 17:57:38 ID:TZT0J0vL
function ccSakura(clip clip,int target_width,int target_height,float"src_left",float"src_top",float"src_width",float"src_height",int"taps",bool"fast"){
function ccSakura_u(clip clip,int target_width,int target_height,float src_left,float src_top,float src_width,float src_height,int taps,bool fast){
bicubicresize(clip,target_width,target_height,1.,0.,src_left,src_top,src_width,src_height)
lanczosresize(width(clip),height(clip),-src_left*float(target_width)/src_width,-src_top*float(target_height)/src_height,float(width(clip)*target_width)/src_width,float(height(clip)*target_height)/src_height,taps=taps)
subtract(clip)
subtract(clip,last)
bicubicresize(target_width,target_height,1.,0.,src_left,src_top,src_width,src_height)
align=isyuy2?2:isyv12?4:1
tmp_width=ceil(float(target_width*target_width)/src_width)
tmp_width=isyuy2?(tmp_width+1)/2*2:tmp_width
tmp_width=isyv12?(tmp_width+3)/4*4:tmp_width
tmp_height=ceil(float(target_height*target_height)/src_height)
tmp_height=isyv12?(tmp_height+1)/2*2:tmp_height
fast?last:subtract(subtract(lanczosresize(bicubicresize(tmp_width,tmp_height,1.,0.),width,height,taps=taps),last))
}
function ccSakura_h(clip clip,int target_width,float src_left,float src_width,int taps,bool fast){
float(target_width)>src_width?ccSakura_u(clip,target_width,height(clip),src_left,0.,src_width,float(height(clip)),taps,fast):lanczosresize(clip,target_width,height(clip),src_left,src_width=src_width,taps=taps)
}
function ccSakura_v(clip clip,int target_height,float src_top,float src_height,int taps,bool fast){
float(target_height)>src_height?ccSakura_u(clip,width(clip),target_height,0.,src_top,float(width(clip)),src_height,taps,fast):lanczosresize(clip,width(clip),target_height,src_top=src_top,src_height=src_height,taps=taps)
}
src_left=default(src_left,0.)
235名無しさん@編集中:2008/03/05(水) 17:58:34 ID:TZT0J0vL
src_left=isfloat(src_left)?src_left:float(src_left)
src_top=default(src_top,0.)
src_top=isfloat(src_top)?src_top:float(src_top)
src_width=default(src_width,float(width(clip)))
src_width=isfloat(src_width)?src_width:float(src_width)
src_width=src_width<=0.?float(width(clip))-src_left+src_width:src_width
src_height=default(src_height,float(height(clip)))
src_height=isfloat(src_height)?src_height:float(src_height)
src_height=src_height<=0.?float(height(clip))-src_top+src_height:src_height
taps=default(taps,3)
fast=default(fast,false)
vf=float(target_width)*src_height<float(target_height)*src_width
vf?ccSakura_v(clip,target_height,src_top,src_height,taps,fast):ccSakura_h(clip,target_width,src_left,src_width,taps,fast)
vf?ccSakura_h(target_width,src_left,src_width,taps,fast):ccSakura_v(target_height,src_top,src_height,taps,fast)
}
synthの内蔵フィルタだけのシンプルなアプコンスクリプト
縮小はただのlanczosresizeで、拡大はbicubicとlanczosのコンボ
要約すると
bicubicresize(subtract(subtract(lanczosresize(bicubicresize(2*width,2*height,1,0),width,height),last)),2*width,2*height,1,0)
subtract(subtract(lanczosresize(bicubicresize(2*width,2*height,1,0),width,height),last))#fast=trueで省略

とりあえずサンプル
ソース
ttp://nagamochi.info/src/up1845.png
ccSakura(1600,1200)
ttp://nagamochi.info/src/up1846.png
nnedi+lanczos3
ttp://nagamochi.info/src/up1847.png
eedi2+lanczos3
ttp://nagamochi.info/src/up1848.png

まぁ、軽いだけで一番汚いです
236名無しさん@編集中:2008/03/05(水) 19:13:35 ID:TZT0J0vL
訂正です
eedi2+lanczos3
ttp://nagamochi.info/src/up1847.png
nnedi+lanczos3
ttp://nagamochi.info/src/up1848.png

あと、align=isyuy2?2:isyv12?4:1これ消し忘れ
237名無しさん@編集中:2008/03/05(水) 20:17:37 ID:mIkahBUx
>>233
両方デフォでかけたavs2種類をVDMで読み込むと、v2のほうは固まったかと思うくらいロード時間長かったからこっちの方はテラオモスなのかなーと
半分以上ワケワカランですけど参考にしてガンガリマス、サンクス
238名無しさん@編集中:2008/03/06(木) 21:30:43 ID:1WZbGJvh
# frameを、frame, source_frame1, source_frame2 の3frameをMergeしたものと入れ替える。
# weight, weight2, weight3 がそれぞれを混ぜる割合。weight + weight1 + weight2 = 1.0 と必ずならなければいけない。
# source_frame2 がないときは weight1 は必要なく weightのみ設定する。このときの weightの値はframe に対する frame1 の値。
# MergeFrame(43275, 3274, weight=0.0) # 43275 のみが表示。逆にweight=1.0 とすると 3274のみが表示、FreezeFrame(43275, 43275, 3274) と同じ動作。
# MergeFrame(10, 100, 1000, 0.0, 0.5, 0.5) frame 10を、100 と 1000 をMergeしたものと入れ替える。
# 要 Average.dll, http://forum.doom9.org/showthread.php?p=902012#post902012
function MergeFrame(clip clp, int frame, int source_frame1, int "source_frame2", float "weight",
\ float "weight2", float "weight3", int "field", int "source_field", string "pre", string "post")
{
field = default( field, 3 )
source_field = default( source_field, 3 )
pre = default( pre, "nul" )
post = default( post, "nul" )
source_frame2 = default( source_frame2, frame )
weight = default( weight, (source_frame2 == frame) ? 0.5 : 0.0 )
weight2 = default( weight2, (source_frame2 == frame) ? 1.0 - weight : 0.5 )
weight3 = default( weight3, (source_frame2 == frame) ? 0.0 : 0.5 )
(source_frame2 != frame) ? Assert(weight + weight2 + weight3 == 1.0, "weight + weight2 + weight3 should be equal to 1.0") : NOP
239名無しさん@編集中:2008/03/06(木) 23:42:32 ID:CHSXb3Wx
c0 = Eval("clp." + pre)
c1 = (frame != 1) ? clp.Trim(0, frame - 1) : clp.Trim(0, -1)
c2 = Merge(c0.Trim(frame, (frame != 0) ? frame : -1)._SelectField(field, weight2),
\ c0.Trim(source_frame1, (source_frame1 != 0) ? source_frame1 : -1)._SelectField(source_field, weight3), weight)
c2 = (source_frame2 == frame) ? c2
\ : Average(clp.Trim(frame, (frame != 0) ? frame : -1), weight,
\ clp.Trim(source_frame1, (source_frame1 != 0) ? source_frame1 : -1), weight2,
\ clp.Trim(source_frame2, (source_frame2 != 0) ? source_frame2 : -1), weight3,
\ clp.Trim(0, -1), 0.0)
c2 = Eval("c2." + post)
c = (frame != 0) ? c1 + c2 : c2
(frame == clp.Framecount - 1) ? c : c + clp.Trim(frame + 1, 0)
return clp.HasAudio ? AudioDubEx(last, clp.KillVideo) : last
}
240名無しさん@編集中:2008/03/06(木) 23:44:40 ID:CHSXb3Wx
# frameを、そのframeのEven,Odd fieldの高さを2倍にしてMergeしたものと入れ替える。
function MergeField(clip clp, int "frame", float "weight", string "pre", string "post")
{
frame = default( frame, clp.Framecount - 1 )
weight = default( weight, 0.5 )
pre = default( pre, "nul" )
post = default( post, "nul" )
return clp.MergeFrame(frame, frame, weight=0.0, field=2, source_field=3, pre=pre, post=post, weight2=weight)
}

# frameを、そのframeの片fieldの高さを2倍にしたものと入れ替える。
# field: 0 Odd, 1 Even
function SelectField(clip clp, int "frame", int "field", string "pre", string "post")
{
frame = default( frame, clp.Framecount - 1 )
field = default( field, 0)
pre = default( pre, "nul" )
post = default( post, "nul" )

return clp.MergeFrame(frame, frame, weight=0.0, field=field, source_field=3, pre=pre, post=post)
}
241名無しさん@編集中:2008/03/06(木) 23:46:33 ID:CHSXb3Wx
# source_field の値によって frame を source_frame と入れ替える。
# 0: Odd field, 1: Even field, 2: Odd と EvenをMerge, 3: source_frame デフォルト 3
function FreezeField(clip clp, int frame, int source_frame, int "source_field", float "weight", string "pre", string "post")
{
source_field = default( source_field, 3 )
weight = default( weight, 0.5 )
pre = default( pre, "nul" )
post = default( post, "nul" )
return clp.MergeFrame(frame, source_frame, weight=1.0, field=3, source_field=source_field, pre=pre, post=post, weight3=weight)
}

function eediMerge(clip clp, float "weight")
{
weight = default( weight, 0.5 )
clp.SeparateFields.EEDI2(field=-2) #, mthresh=0, lthresh=0, vthresh=0, estr=0, dstr=0, maxd=24, pp=3)
Merge(SelectEven, SelectOdd, weight)
#LimitedSharpenFaster(Smode=3, strength=40)
}
242名無しさん@編集中:2008/03/06(木) 23:47:50 ID:CHSXb3Wx
function _SelectField(clip clp, int "field", float "weight")
{
field = default( field, 0 )
weight = default( weight, 0.5 )
c = clp.SeparateFields.EEDI2(field=-2) # ここは好きなように変更する。
(field == 1) ? c.SelectEven : c.SelectOdd
#LimitedSharpenFaster(Smode=3, strength=20)
clp.GetParity ? AssumeTFF : NOP
return (field == 3) ? clp
\ : (field == 2) ? Merge(c.SelectEven, c.SelectOdd, weight)
\ : clp.GetParity ? AssumeTFF
\ : last
}

function nul(clip c) { return c }
243名無しさん@編集中:2008/03/07(金) 00:06:53 ID:fd0rVI1T
>>242 の clp.GetParity ? AssumeTFF : NOP はいらない。
244名無しさん@編集中:2008/03/10(月) 18:32:01 ID:+purmfXZ
ImageSource("Clipboard%02d.png", 1, 4, 29.97).ForLoop

function ForLoop(clip clip, int "i", clip "outclip"){
    i=default(i, 0)

    clip.trim(i, -1).loop(300)
    i>0 ?  outclip++last : last
    i<clip.framecount-1 ? ForLoop(clip, i+1, last) : last
}

0.1fps等は支障がある場合があるようなので、
png1枚に付き約10秒の動画を作るスクリプトを書いたのですが、
もう少しすっきり出来ないかと思うのですが、

(i>0 ?  outclip : NUL)++clip.trim(i, -1).loop(300)みたいに書けるNULクリップみたいなものは存在しないでしょうか?
245名無しさん@編集中:2008/03/11(火) 12:46:32 ID:sY4zBva9
ImageSource("Clipboard%02d.png", 0, 299)
#last++ImageSource(〜
AssumeFPS(30,1)
素直にこんな感じじゃだめなの?
246名無しさん@編集中:2008/03/12(水) 21:37:46 ID:+x0QGohj
ttp://ja.doukaku.org/165/
これ、やってみた。

# DF ドロップフレーム(1分間に2フレーム、カウントをとばす。ただし、10分間に一回は行わない)
# Current_Frame ≡ 0 (mod 1800)
# Current_Frame ≡ 1 (mod 1800)
# のときはフレームのカウントをとばす。
# 1,2, 3,4... --> 1,2, 5,6...

# ただし、
# Current_Frame ≡ 0 (mod 18000)
# Current_Frame ≡ 1 (mod 18000)
# のときはフレームをカウントをとばさない。

# 10分間のフレーム数
# 1800 + 1798 * 9 = 17982

# フレームレート
# 30 * 17982 / 18000 = 30 * 999 / 1000 = 2997 / 100 = 29.97
# 24 * 17982 / 18000 = 24 * 999 / 1000 = 2997 / 125 = 23.976
# これは放送用の編集ために用いるドロップフレームタイムコードから計算上出た
# 結果であってNTSC color(30000/1001)のフレームレートではない。
247名無しさん@編集中:2008/03/12(水) 21:38:47 ID:+x0QGohj
function ShowDropFrame(clip clp, bool "drop", float "fps", int "x", int "y")
{
global ShowDropFrame_drop = default( drop, true )
global ShowDropFrame_fps = default( fps, 30.0 )
global ShowDropFrame_x = default( x, 0 )
global ShowDropFrame_y = default( y, 0 )
return clp.ScriptClip("_ShowDropFrame(Current_Frame, ShowDropFrame_drop,
\ ShowDropFrame_fps, ShowDropFrame_x, ShowDropFrame_y)")
}
function _ShowDropFrame(clip clp, int n, bool drop, float fps, int x, int y)
{
Current_Frame = n
n = (drop == true) ? n + n / 1800 * 2 - n / 18000 * 2 : Current_Frame
time = (drop == true) ? n / float(fps)
\ : float(Current_Frame * clp.FramerateDenominator) / float(clp.FramerateNumerator)
time_h = int(time) / 3600
time_m = ( int(time) - (time_h * 3600) ) / 60
time_s = int(time) - (time_h * 3600) - (time_m * 60)
time_ms = Round( Frac(time) * 1000 )
hh = (time_h < 10) ? "0" + string(time_h) : string(time_h)
mm = (time_m < 10) ? "0" + string(time_m) : string(time_m)
ss = (time_s < 10) ? "0" + string(time_s) : string(time_s)
ms = (time_ms < 10) ? "00" + string(time_ms)
\ : (time_ms < 100) ? "0" + string(time_ms) : string(time_ms)
return clp.Subtitle(hh + ":" + mm + ":" + ss + "." + ms + ";" + string(n % 30)
\ + " " + string(n), x=ShowDropFrame_x, y=ShowDropFrame_y)
# \ .Subtitle(string(Current_Frame) + " diff " + string(n / 1800 * 2 - n / 18000 * 2), x=x, y=y+16)
}
248名無しさん@編集中:2008/03/13(木) 00:22:17 ID:5mYjS9tx
>>245
pngを大量にコピーするのは避けたいので
249名無しさん@編集中:2008/03/13(木) 21:13:43 ID:EGDcQ9L3
<<247を01frameだけをフレームカウントスキップするように修正。
function _ShowDropFrame(clip clp, int n, bool drop, float fps, int x, int y)
{
Current_Frame = n

n0 = (drop == true) ? n + n / 1800 * 2 - n / 18000 * 2 : n
n1 = (drop == true) ? n + n0 / 1800 * 2 - n0 / 18000 * 2 : n0

time = (drop == true) ? n1 / float(fps) : n / float(clp.Framerate)
time_h = int(time) / 3600
time_m = (int(time) - (time_h * 3600)) / 60
time_s = int(time) - (time_h * 3600) - (time_m * 60)
time_ms = round(frac(time) * 1000)
hh = (time_h < 10) ? "0" + string(time_h) : string(time_h)
mm = (time_m < 10) ? "0" + string(time_m) : string(time_m)
ss = (time_s < 10) ? "0" + string(time_s) : string(time_s)
ms = (time_ms < 10) ? "00" + string(time_ms)
\ : (time_ms < 100) ? "0" + string(time_ms) : string(time_ms)

return clp.Subtitle(hh + ":" + mm + ":" + ss + "." + ms + ";" + string(n1 % round(fps))
\ + " " + string(n1), x=ShowDropFrame_x, y=ShowDropFrame_y)
# \ .Subtitle(string(Current_Frame) + " diff " + string(n1 - Current_Frame), x=x, y=y+16)
}
250名無しさん@編集中:2008/03/14(金) 03:14:22 ID:8AYA49Rt
単純なループ関数で、>>54を簡易化したもの
n:ループ回数
filter:ループさせるフィルタ
start:ループさせるためだけの引数。変更してはいけない

function LoopFilter(clip clip, int "n", string "filter", int "start"){

n = default(n, 1)
filter = default(filter, "")
start = default(start, 0)
next = start+1

c = ((next <= n)? Eval("clip." + filter):clip)

return ((next >= n)? c: LoopFilter(c,n,filter,next))
}
251名無しさん@編集中:2008/03/14(金) 03:17:35 ID:8AYA49Rt
書いてから気づいたけど、>>54の修正版があったのか…
まぁいいや
252名無しさん@編集中:2008/03/14(金) 18:23:35 ID:IOEJq7o6
>>250
簡易と言う割には無駄が多過ぐる件

function LoopFilter(clip clip, int n, string filter){return n>0 ? LoopFilter(Eval("clip." + filter), n-1, filter) : clip}

使用例: LoopFilter(3, """Layer(clip.ReduceBy2, "add", 255, clip.width/2)""")
253名無しさん@編集中:2008/03/19(水) 18:08:44 ID:3KvBoAnM
WikiのShowTimeCodeを見ていてミリ秒等の算出が気になったので、

frametime=current_frame/FrameRate #秒単位の入力値(元:mod_time)
ms_digit=3 #秒未満の桁数

ms=string(round(frametime*pow(10,ms_digit))%int(pow(10,ms_digit)), "%0"+string(ms_digit)+".0f")


元:
# Calculate mili-seconds and convert to string.
ms = RightStr(String(mod_time), 6)
ms1 = Int(Value(LeftStr(ms, ms_digit)))
ms2 = MidStr(ms, ms_digit+1, 1)
ms2 = Round(Value(ms2)/10)
ms = ms1 + ms2
ms = ((ms_digit==3)&&(ms<10)) ? "00" + String(ms) :
\ (((ms_digit==3)&&(ms<100))||((ms_digit==2)&&(ms<10))) ? "0" + String(ms) :
\ String(ms)


それから、ms_digit=1、current_frame=29、FrameRate=29.97の場合等に、00:00:00:10と桁が狂うので、
int_time = round(frametime-value(ms)/pow(10,ms_digit))
254名無しさん@編集中:2008/03/20(木) 22:19:41 ID:OSD7JxDK
<< 246 の訂正。
30fps以外 (奇数 * 1000) frame をスキップ
Current_Frame' ≡ 0, 1 (mod 1000) のときはフレームのカウントをとばす。
Current_Frame' ≡ 0, 1 (mod 2000) のときはフレームのカウントをとばさない。
10000 frameのフレーム数
5000 + 998 * 5 = 9990
フレームレート
24 * 9990 / 10000 = 24 * 999 / 1000 = 2997 / 125 = 23.976

d1 = (round(fps) == 30) ? 1800 : 1000
d2 = (round(fps) == 30) ? 18000 : 2000
n0 = (drop == true) && (real == false) ? n + n / d1 * 2 - n / d2 * 2 : n
n1 = (drop == true) && (real == false) ? n + n0 / d1 * 2 - n0 / d2 * 2 : n0
255名無しさん@編集中:2008/03/20(木) 22:23:19 ID:OSD7JxDK
4コマ撮りを除く3:2 プルダウンの値を見るスクリプト。要 TIVTC.dll, VirtualDub

3:2 プルダウンの4コマ撮りは30p制作の5コマ撮りと同値。すべてのフレームで縞なしとなる。
オプション: int "display" ShowCombedTIVTCのdisplayと同じ。5 にすると、ShowCombedTIVTCの表示無し。
使い方: VirtualDubでスクリプトを読み込んで、周期を調べたいフレーム上で F2 key で VirtualDubを
更新。文字が水色に変わり そこを FrameNumber 0 として周期を見ることが出来る。
尚、マイナス方向に count を進めても SelectEvery の値を得る。
その場合、F2で更新した Frameから5の倍数で区切ったときの値。

SelectEvery(n, a,b,c...) は frame1 ≡ a (mod n), frame2 ≡ b (mod n), ... と定義することが出来る。
n, n+1 に縞 FrameNumber ≡ n (mod 5)
SelectEvery( 5, 2n + 3, 2n + 1 ) SelectEvery( 5, 2n + 1, 2n + 4 )
SelectEvery( 5, 2n - 2, 2n - 4 ) SelectEvery( 5, 2n - 4, 2n - 1 )

3:2 プルダウンされたもののframeを 5周期ずつ見たときのまとめ a1,a2,...an は 10進数でのFrameNumber, nは そのFrameNumberの mod 5 での値。
(34 xor 40) or (34 and 40, |a3-a0|>2) or 2コマずつ同じ絵で4のみに縞 or すべてのframeが縞無しで5コマずつ同じ絵で1,2が互いに違う絵 DoubleWeave.SelectEvery(5, 2,4)
(40 xor 01) or (40 and 01, |a4-a1|>2) or 2コマずつ同じ絵で0のみに縞 or すべてのframeが縞無しで5コマずつ同じ絵で2,3が互いに違う絵 DoubleWeave.SelectEvery(5, 1,4)
(01 xor 12) or (01 and 12, |a0-a2|>2) or 2コマずつ同じ絵で1のみに縞 or すべてのframeが縞無しで5コマずつ同じ絵で3,4が互いに違う絵 DoubleWeave.SelectEvery(5, 1,3)
(12 xor 23) or (12 and 23, |a1-a3|>2) or 2コマずつ同じ絵で2のみに縞 or すべてのframeが縞無しで5コマずつ同じ絵で4,0が互いに違う絵 DoubleWeave.SelectEvery(5, 0,3)
(23 xor 34) or (23 and 34, |a2-a4|>2) or 2コマずつ同じ絵で3のみに縞 or すべてのframeが縞無しで5コマずつ同じ絵で0,1が互いに違う絵 DoubleWeave.SelectEvery(5, 0,2)
2コマ撮りは3つ選べるうちの中心のみ記載。2コマずつ同じ絵で2のみに縞 だと、(5, 1,3) (5, 0,3) (5, 0,2)
256名無しさん@編集中:2008/03/20(木) 22:25:34 ID:OSD7JxDK
function ShowPulldown(clip clp, int "display")
{
global ShowPulldown_Start = -1
global ShowPulldown_Comb = -1
global ShowPulldown_koma = -1
global ShowPulldown_count = -1
global ShowPulldown_60i = -1
global ShowPulldown_display = default( display, 2 )
return clp.ScriptClip("_ShowPulldown(Current_Frame, ShowPulldown_display)")
}

function _ShowPulldown(clip clp, int n, int display)
{
Current_Frame = n
global ShowPulldown_Start = (ShowPulldown_Start == -1) ? n : ShowPulldown_Start
comb = clp.IsCombedTIVTC(cthresh=13, chroma=false, MI=128, blockx=32, blocky=32)
function toMOD5(n) { return (n >= 0) ? n % 5 : ( (n % 5) + 5 ) % 5 }
m = n - ShowPulldown_Start
i = toMOD5(m)
a = (comb == true) ? toMOD5( 2 * i + 1 ) : ShowPulldown_Comb
b = toMOD5( a + 3 )
global ShowPulldown_Comb = a
koma = (comb == true) && (ShowPulldown_count == 0) ? 1
\ : (comb == true) && (ShowPulldown_count == 4) ? 2
\ : (comb == true) && (ShowPulldown_count == 10) ? 3
\ : (comb == true) && (ShowPulldown_count == 14) ? 6
\ : ShowPulldown_koma
257名無しさん@編集中:2008/03/20(木) 22:27:48 ID:OSD7JxDK
global ShowPulldown_koma = koma
global ShowPulldown_count = (comb == false) ? ShowPulldown_count + 1 : 0
global ShowPulldown_60i = (comb == true) ? ShowPulldown_60i + 1 : 0
function _Max(a, b){ (a > b) ? a : b }
function _Min(a, b){ (a < b) ? a : b }
function n2s(n){ return (n == -1) ? "--" : string(n) }
pd = (a != -1) ? string(_Min(a, b)) + "," + string(_Max(a, b)) : "2, 0"
pd = (pd != "2, 0") ? "5, " + pd : pd
pd = string(ShowPulldown_Start) + " - " + string(n) + " " + string(m)
\ + " ≡ " + string(i) + " " + "SelectEvery(" + pd + ")"
\ + " " + ( (ShowPulldown_60i > 2) ? " 60i " : (ShowPulldown_count > 15)
\ ? " 30p " : " " + n2s(koma) + "コマ撮り " ) + string(ShowPulldown_count)
y = (display < 5) ? 80 : 0
(display < 5) ? clp.ShowCombedTIVTC(cthresh=13, chroma=false, MI=128, blockx=32, blocky=32, display=display) : clp
return Subtitle(pd, x=0, y=y, text_color=(m==0)?$00FFFF:$E0FFFF, font="MS_Gothic")
}
258名無しさん@編集中:2008/03/20(木) 23:14:15 ID:WaT1khHI
そろそろこのスレのまとめみたいの作ったほうがいいんじゃね
もしくはAvisynth wikiのユーザー定義関数の項目に記述
259にーやん:2008/03/22(土) 01:14:17 ID:Hzyg/olQ
もしAviSynth Wikiのユーザー定義関数のページに追加されるのであれば、雛型として「ユーザー定義関数投稿用テンプレート」を利用してください。
ユーザー定義関数のページに使用手順を書いておきました。
多少はページ作成の助けになるかと思います。

あるいは、具体的にどれを追加するのかを指定していただけたら、私の方でページを作成してもかまいません。
新しくまとめサイトを作られるのなら、そちらにおまかせします。


>>253
修正ありがとうございます。
253さんの修正を取り込んだものを、さきほどAviSynth Wikiのユーザー定義関数に追加しました。
260名無しさん@編集中:2008/03/22(土) 04:04:34 ID:0CF92uOe
#UnsharpResize…アンシャープリサイズ
#    width    横幅
#    height    縦幅
#    sharp    アンシャープ係数(弱 0.0 ← 1.0 → 2.0 強)
#            (省略なら1.0)
function UnsharpResize(clip clip, int width, int height, float "sharp") {
    sharp = default(sharp, 1.0)
    sharp = ((sharp < 0.0)? 0.0: ((2.0 < sharp)? 2.0: sharp))
    bicubic = ((1.0 < sharp)? 1.0: sharp)
    gauss = 10.0 - 9.0 * ((sharp < 1.0)? 0.0: sharp - 1.0)

    function SubtractClip(clip clip, clip sub) {
        return subtract(clip, subtract(sub, clip))
    }
    
    result = clip.LanczosResize(width, height, taps=16)
    result = ((0.0 < bicubic)
        \        ? result.SubtractClip(clip.BicubicResize(width, height, b=bicubic, c=(1.0 - bicubic) / 2.0))
        \        : result
        \    )
    result = ((gauss < 10.0)
        \        ? result.SubtractClip(clip.GaussResize(width, height, p=gauss))
        \        : result
        \    )
    return result
}
261名無しさん@編集中:2008/03/22(土) 04:18:22 ID:0CF92uOe
“ぼかした画像を引く事によりシャープな画像生み出す”と言う、
アンシャープマスクの考えの元に
リサイズしつつアンシャープマスク処理を行うフィルタを作成してみました。
非常に強いシャープ化をもたらすリサイズ処理になります。

>>235-236さんが行っていた、
subtractを2回連続して掛ける事により高速に減算を行う処理から思いつきました。

サンプルは>>235-236さんから拝借
UnsharpResize(1600, 1200)
http://nagamochi.info/src/up2382.png
262名無しさん@編集中:2008/03/22(土) 23:29:49 ID:QPs+7Z/I
>>255
書き間違い。
×3:2 プルダウンされたもののframeを 5周期ずつ
○ 3:2 プルダウンされたもののframeを 5コマずつ


>>244
NullClip つくってみた。

# 使用例:
src = ImageSource("./test.bmp", 1, 4, 29.97).ConvertToYUY2 # YUY2, 720*480, 29.97fps, no audio

#return blankclip(length=0) # RGB32, 640*480, 24.0fps, audio mono
#return blankclip(length=0).toPixelTypeOf(src) # YUY2, 640*480, 24.0fps, audio mono
#return NullClip(src) # YUY2, 720*480, 29.97fps, no audio

return src.ForLoop # YUY2, 720*480, 29.97fps, no audio

function ForLoop(clip clip, int "i", clip "outclip"){
i=default(i, 0)
(i>0 ? outclip : NullClip(clip))++clip.trim(i, -1).loop(300)
i<clip.framecount-1 ? ForLoop(clip, i+1, last) : last
}
263名無しさん@編集中:2008/03/22(土) 23:32:08 ID:QPs+7Z/I
### {{{ NullClip
# 要 AviSynth v2.56以上
# RGB24, RGB32, YUY2 or YV12
# 上記以外の色空間はエラー。
# srcに audioがある場合は 1ch(mono) または 2ch(stereo) でなければならない。
# 6ch などは KillAudio しておく。
function NullClip(clip src)
{
return src.toBlankClip
}

# srcの width, height, pixel_type, fps, audio と同じ FrameCountが lengthの BlankClipを生成する。
function toBlankClip(clip src, int "length")
{
length = default( length, 0 )

return (src.hasAudio == false)
\ ? BlankClip( length=length, width=src.width, height=src.height, pixel_type=PixelTypeOf(src), fps=src.Framerate ).KillAudio
\ : BlankClip( length=length, width=src.width, height=src.height, pixel_type=PixelTypeOf(src),
\ fps=src.Framerate, audio_rate=src.Audiorate, stereo=(src.Audiochannels < 2) ? false : true )
}
264名無しさん@編集中:2008/03/22(土) 23:32:51 ID:QPs+7Z/I
# clpの色空間を srcの色空間と同じにする。
function toPixelTypeOf(clip clp, clip src)
{
Eval( "clp.ConvertTo" + PixelTypeOf(src) )
}

function PixelTypeOf(clip clp)
{
return clp.IsYV12 ? "YV12"
\ : clp.IsYUY2 ? "YUY2"
\ : clp.IsRGB24 ? "RGB24"
\ : clp.IsRGB32 ? "RGB32"
\ : clp.IsRGB ? "RGB"
\ : nop
}
265名無しさん@編集中:2008/03/23(日) 11:24:00 ID:uOlrBNQp
>>262
長さ0のBlankClipを作れるの知りませんでした。


(i>0 ? outclip : clip.Nul)++clip.trim(i, -1).loop(300)

function Nul(clip c, int "inp_length"){
    inp_length=default(inp_length, 0)
    BlankClip(inp_length, c.width, c.height, c.PixelTypeOf, c.FramerateNumerator, c.FramerateDenominator, c.audiorate, c.Audiochannels==2)
Return c.HasAudio ? last : KillAudio
}

FramerateDenominatorも設定しないと上手く行かない動画が
266名無しさん@編集中:2008/03/23(日) 22:24:37 ID:x/H8WCET
>>265見てKillAudioなくてもいいということに気づいた。
>>263を変更。

# srcの width, height, pixel_type, fps, audio と同じ FrameCountが lengthの BlankClipを生成する。
# BlankClip: audio_rate=0 で no audio
# Audiorate(), Audiochannels(): 無音クリップの場合、出力値は 0。
function toBlankClip(clip src, int "length")
{
length = default( length, 0 )

return BlankClip( length=length, width=src.width, height=src.height, pixel_type=PixelTypeOf(src), fps=src.FramerateNumerator,
\ fps_denominator=src.FramerateDenominator, audio_rate=src.Audiorate, stereo=(src.Audiochannels < 2) ? false : true )
}
267名無しさん@編集中:2008/03/25(火) 22:12:50 ID:5jdy4i5f
#クリップ“src”と同様なBlankClipを作成する。
BlankClip(src)
#もしくは
src.BlankClip()

#クリップ“src”と同様な“length”フレームのBlankClipを作成する。
BlankClip(src, length)
#もしくは
src.BlankClip(length)

#クリップ“src”と同様な“600”フレームの、青一色のクリップを作成する。
BlankClip(src, 600, color=$0000FF)
#もしくは
src.BlankClip(600, color=$0000FF)
268名無しさん@編集中:2008/03/26(水) 14:02:43 ID:Hjc4qHM4
function nnediresize(clip clip,int target_width,int target_height,float"src_left",float"src_top",float"src_width",float"src_height",int"taps"){a=default(src_left,0.)chr(13)a=isfloat(a)?a:float(a)
b=default(src_top,0.)chr(13)b=isfloat(b)?b:float(b)chr(13)c=float(width(clip))chr(13)d=default(src_width,c)chr(13)d=isfloat(d)?d:float(d)d=d<=0.?c-a+d:d chr(13)c=float(height(clip))chr(13)e=default(\
src_height,c)chr(13)e=isfloat(e)?e:float(e)chr(13)e=e<=0.?c-b+e:e chr(13)c=default(taps,3)function nnediresize_(clip a,int b,int c,float d,float e,float f,float g,int h,float i,float j){k=float(b)
l=float(c)function nnediresize__(clip a,int b,int c,float d,float e,float f,float g,int h,float i,float j){k=lanczosresize(a,b,c,d+i,e+j,f,g,h)chr(13)l=(width(a)+7)/8*8chr(13)m=(height(a)+3)/4*4
pointresize(a,l,m,0,0,l,m)chr(13)n=(b+7)/8*8chr(13)o=(c+3)/4*4chr(13)f=f+float(n-b)*f/float(b)chr(13)g=g+float(o-c)*g/float(c)chr(13)ytouv(lanczosresize(utoy,n/2,o/2,d/2.+i,e/2.+j,f/2.,g/2.,h),\
lanczosresize(vtoy,n/2,o/2,d/2.+i,e/2.+j,f/2.,g/2.,h))chr(13)mergechroma(k,pointresize(b,c,0.,0.,float(b),float(c)))}k>f||l>g?k*g<l*f?nnediresize_(nnedi(a,0,true),b,c,d,2.*e,f,2.*g,h,i,2.*j+.5):\
nnediresize_(turnleft(nnedi(turnright(a),0,true)),b,c,2.*d,e,2.*f,g,h,2.*i+.5,j):isyv12(a)?nnediresize__(a,b,c,d,e,f,g,h,i,j):lanczosresize(a,b,c,d+i,e+j,f,g,h)}nnediresize_(clip,target_width,\
target_height,a,b,d,e,c,0.,0.)}
誰も使ってないと思うけど、ミスに気づいちゃったんで訂正
YV12の時YとUVでずらす値を変えるようにしました。
269名無しさん@編集中:2008/03/26(水) 15:22:10 ID:exH3H0Ao
そんな事はありませぬ。
乙であります!
270名無しさん@編集中:2008/03/28(金) 00:09:34 ID:dHhwInnL
function nnediresize(clip clip,int target_width,int target_height,float"src_left",float"src_top",float"src_width",float"src_height",int"taps"){a=default(src_left,0.)a=isfloat(a)?a:float(a)b=default(\
src_top,0.)b=isfloat(b)?b:float(b)c=float(width(clip))d=default(src_width,c)d=isfloat(d)?d:float(d)d=d<=0.?c-a+d:d c=float(height(clip))e=default(src_height,c)e=isfloat(e)?e:float(e)e=e<=0.?c-b+e:e
c=default(taps,3)function nnediresize_(clip a,int b,int c,float d,float e,float f,float g,int h,bool i,bool j){k=float(b)l=float(c)function nnediresize__(clip a,int b,int c,float d,float e,float f,\
float g,int h,float i,float j){k=lanczosresize(a,b,c,d+i,e+j,f,g,h)d=d/2.+i e=e/2.+j i=(width(a)+7)/8*8j=(height(a)+3)/4*4pointresize(a,i,j,0,0,i,j)a=(b+7)/8*8i=(c+3)/4*4f=(f+float(a-b)*f/float(b))/\
2.g=(g+float(i-c)*g/float(c))/2.a=a/2i=i/2mergechroma(k,crop(ytouv(lanczosresize(utoy,a,i,d,e,f,g,h),lanczosresize(vtoy,a,i,d,e,f,g,h)),0,0,b,c))}k>f||l>g?k*g<l*f?nnediresize_(nnedi(a,j?1:0,true),b,\
c,d,2.*e,f,2.*g,h,i,true):nnediresize_(turnleft(nnedi(turnright(a),i?1:0,true)),b,c,2.*d,e,2.*f,g,h,true,j):isyv12(a)?nnediresize__(a,b,c,d,e,f,g,h,i?.5:0.,j?.5:0.):lanczosresize(a,b,c,d+(i?.5:0.),e\
+(j?.5:0.),f,g,h)}nnediresize_(clip,target_width,target_height,a,b,d,e,c,false,false)}
早速ですいませんがチョットだけ処理を変えてみました
体感できるとは思いませんが計算量は減ってるはず・・・

ところで皆様は縮小って何使ってます?
縮小だけならspline64とかblackmanよりlanczosの方が良さそうだと思って↑ではlanczos使っていますが
もっと凄いのがあれば教えていただけないでしょうか?よろs(ry

改行ってあまり必要なかったんだね
まだまだ使えてなかったよ、AviSynth
271名無しさん@編集中:2008/03/28(金) 00:13:05 ID:dHhwInnL
>>269
そう仰ってて頂けると助かります、これからもよr(ry
272名無しさん@編集中:2008/03/28(金) 01:01:59 ID:DLAr9pAI
### {{{ TrueTears
# メイン画面とワイプの周期が異なるときの逆テレシネ用。
# x, y, w, h: 座標 (x, y) から 幅 w, 高さ h の範囲に フィルター string "top" を掛ける。
# 上記の範囲外にはフィルター string "bottom" を掛ける。
# bright: 0 以外の数値を指定すると "top" の範囲外に Tweakの brightが適用される。範囲特定用。YUY2, YV12のみ。
# show: "top" の部分だけ表示する。
# interlaced: YV12 のとき、縦の解像度が 4の倍数でないとき警告を出す。デフォルト true
function TrueTears(clip clp, int "x", int "y", int "w", int "h", string "top", string "bottom",
\ string "pre", float "bright", bool "show", bool "interlaced")
{
x = default( x, 0 )
y = default( y, 0 )
w = default( w, clp.width )
h = default( h, clp.height )
top = default( top, "nul" )
pre = default( pre, "nul" )
bright = default( bright, 0 )
show = default( show, false )
interlaced = default( interlaced, true )
bottom = default( bottom, "nul" )
bottom = (bright != 0) ? bottom + ".Tweak(bright=" + string(bright) + ")" : bottom
273名無しさん@編集中:2008/03/28(金) 01:03:24 ID:DLAr9pAI
x_end = x + w
y_end = y + h
x_end = (x_end >= clp.width) ? clp.width : x_end
y_end = (y_end >= clp.Height) ? clp.Height : y_end
(interlaced == true) && clp.isYV12 ? Assert(y % 4 == 0, "TrueTears: IsYV12 && (y % 4 == 0)") : NOP
(interlaced == true) && clp.isYV12 ? Assert(h % 4 == 0, "TrueTears: IsYV12 && (h % 4 == 0)") : NOP
TTx = "TrueTears_x(start=" + string(x) + ", end=" + string(x_end) + ", filter=" + chr34 + top + chr34
\ + ", filter2=" + chr34 + bottom + chr34 + ", pre=" + chr34 + pre + chr34 + ", show=" + string(show) + ")"
TTy = "TrueTears_y(start=" + string(y) + ", end=" + string(y_end) + ", filter=" + chr34 + top + chr34
\ + ", filter2=" + chr34 + bottom + chr34 + ", pre=" + chr34 + pre + chr34 + ", show=" + string(show) + ")"
#return clp.TrueTears_Y(start=y, end=y_end, filter=TTx, filter2=bottom, pre=pre, show=show)
return clp.TrueTears_X(start=x, end=x_end, filter=TTy, filter2=bottom, pre=pre, show=show)
}

function TrueTears_X(clip clp, int "start", int "end", string "filter",
\ string "filter2", string "pre", bool "show")
{
clp2 = Eval("clp." + filter2)
c1 = (start != 0) ? clp2.Crop( 0, 0, -(clp.width - start), -0) : nop
c2 = Eval("clp." + pre + ".Crop( start, 0, -(clp.width - end), -0 ) " + filter)
c3 = (end < clp.width) ? clp2.Crop( end, 0, -0, -0) : nop
c2 = (c2.Framecount > clp2.FrameCount) ? c2.DeleteFrame(lastFrameOf(clp2))
\ : (c2.Framecount < clp2.FrameCount) ? c2.DuplicateFrame(lastFrameOf(clp2)) : c2
c = (show == false) ? ( (start == 0) ? c2 : StackHorizontal(c1, c2) ) : nop
return (show == true) ? c2 : (end >= clp.width) ? c : StackHorizontal(c, c3)
}
274名無しさん@編集中:2008/03/28(金) 01:05:18 ID:DLAr9pAI
function TrueTears_Y(clip clp, int "start", int "end", string "filter",
\ string "filter2", string "pre", bool "show")
{
clp2 = Eval("clp." + filter2)
c1 = (start != 0) ? clp2.Crop( 0, 0, -0, -(clp.Height - start) ) : nop
c2 = Eval("clp." + pre + ".Crop( 0, start, -0, -(clp.Height - end) ) " + filter)
c3 = (end < clp.Height) ? clp2.Crop( 0, end, -0, -0) : nop
c2 = (c2.Framecount > clp2.FrameCount) ? c2.DeleteFrame(lastFrameOf(clp2))
\ : (c2.Framecount < clp2.FrameCount) ? c2.DuplicateFrame(lastFrameOf(clp2)) : c2
c = (show == false) ? ( (start == 0) ? c2 : StackVertical(c1, c2) ) : nop
return (show == true) ? c2 : (end >= clp.Height) ? c : StackVertical(c, c3)
}

function NulClip(clip src) { return src.BlankClip(length=0) } # >>267氏、Thanks.
function toParityOf(clip clp, clip src) { return src.GetParity ? clp.AssumeTFF : clp.AssumeBFF }
function toFramerateOf(clip clp, clip src) { return clp.AssumeFPS(src.Framerate) }
function lastFrameOf(clip clp) { return clp.Framecount - 1 }
function nul(clip clp) { return clp }
function chr34() { return chr(34) + chr(34) + chr(34) }
function SubtitleFilter(clip clp, string filter){ return Eval( "clp " + filter + " Subtitle(" + chr34 + filter + chr34 + ")" ) }

275名無しさん@編集中:2008/03/28(金) 01:07:11 ID:DLAr9pAI
使用例:
直接、TrueTears()を使うか、下のような関数を作る。

# toTrueTears TrueTears自身をstringに変換。3:2プルダウン用
#return TrueTears(x=458, y=148, w=200, h=288, top="""SelectEvery2("5, 2,4").vinverse""", bottom="""SelectEvery2("5, 0,2").nul""", bright=0, show=false)
#TT = toTrueTears(x=458, y=148, w=200, h=288, top="5, 2,4", bottom="5, 0,2", top_filter="vinverse", bottom_filter="nul", show=false, interlaced=true)
#return Eval(TT)
function toTrueTears(int "x", int "y", int "w", int "h", string "top", string "bottom", string "top_filter",
\ string "bottom_filter", float "bright", bool "show", bool "interlaced")
{
top_filter = default( top_filter, "nul" )
bottom_filter = default( bottom_filter, "nul" )
bright = default( bright, 0 )
show = default( show, false )
interlaced = default( interlaced, true )

# string を渡すフィルタによってこの部分を変える。
return "TrueTears(x=" + string(x) + ", y=" + string(y) + ", w=" + string(w) + ", h=" + string(h)
\ + ", top=" + chr34 + "SelectEvery2(" + chr(34) + top + chr(34) + ")." + top_filter + chr34
\ + ", bottom=" + chr34 + "SelectEvery2(" + chr(34) + bottom + chr(34) + ")." + bottom_filter + chr34
\ + ", bright=" + string(bright) + ", show=" + string(show) + ", interlaced=" + string(interlaced) + ")"
}
276名無しさん@編集中:2008/03/28(金) 01:08:14 ID:DLAr9pAI
string を同期のためのtimecodeを出力する関数に渡す。(ClipArray()はdebug中。)
True Tears のオープニング。
frame 1355から 2100までを 24000/1001 fps, 2101 frameの Framerateのみ修正。
ClipArray( start=1355, end=1519, ivtc="5, 0,2", pre="", post="", ff="em" )

TT1 = toTrueTears(x=60, y=96, w=202, h=292, top="5, 0,3", bottom="5, 0,2")
ClipArray( start=1520, end=1564, ivtc=TT1, pre="", post="", ff="", mode=2 )

ClipArray( start=1565, end=1669, ivtc="5, 0,2", pre="", post="MergeField(frame=82)", ff="e0" )

TT2 = toTrueTears(x=60, y=120, w=360, h=244, top="5, 1,3", bottom="5, 2,4")
ClipArray( start=1669, end=1759, ivtc=TT2, pre="", post="", ff="", mode=2 )

ClipArray( start=1760, end=1794, ivtc="5, 0,2", pre="", post="", ff="" )

TT3 = toTrueTears(x=458, y=144, w=204, h=296, top="5, 1,4", bottom="5, 0,2")
ClipArray( start=1795, end=1911, ivtc=TT3, pre="", post="", ff="", mode=2 )

TT4 = toTrueTears(x=226, y=48, w=270, h=388, top="5, 0,2", bottom="5, 1,3")
ClipArray( start=1912, end=1979, ivtc=TT4, pre="", post="", ff="", mode=2 )

ClipArray( start=1980, end=2101, ivtc="5, 0,2", pre="", post="", ff="" )
277名無しさん@編集中:2008/03/28(金) 21:00:54 ID:DLAr9pAI
>>246の応用。ドロップフレームより算出されたフレームレートをNTSCのものに変換。
function toNTSC(clip clp)
{
#return (clp.FramerateNumerator % 999 == 0) ? clp.AssumeFPS( clp.FramerateNumerator * 1000000, clp.FramerateDenominator * 999999 ) : clp
return (clp.FramerateNumerator % 999 == 0) && (clp.FramerateDenominator % 5 == 0)
\ ? clp.AssumeFPS( clp.FramerateNumerator/999 * 200000, clp.FramerateDenominator/5 * 1001 ) : clp
}


# frame: フィルタを適用する FrameNumber デフォルト -1 Last Frame
# func: フィルタ
function MapFrame(clip clp, int "frame", string "func")
{
frame = default( frame, lastFrameOf(clp) )
func = default( func, "nul" )

return clp.FilterRange(start=frame, pre=func)
}

## {{{ FilterRange
# FilterRangeを値が0より小さいときも使えるように変更。
#
# startから endまで filterを適用する。
# FilterRange(100, 200, "vinverse") 100 frame から 200 frameまでfilterを適用する。
# すべてのframeにfilterを適用するには、start=0, end=0 (end=clip.Framecount-1) を指定。
#
278名無しさん@編集中:2008/03/28(金) 21:01:50 ID:DLAr9pAI
# option
# start: filterを開始するframe。startのみ指定すると、その Frameのみfilterを適用する。
# start < 0 のとき、 LastFrame - abs(start) + 1 が start frameとなる。
# FilterRange(start=0, filter="vinverse") 1st frameだけにフィルターをかける。
# FilterRange(start=-1, filter="vinverse") start=-1 で Last frameだけにフィルターをかける。
# FilterRange(start=-5, filter="vinverse") Last frameから数えて 5frame分前のframeだけにフィルターをかける。
# FilterRange(start=-5, end=0, filter="vinverse") Last frameから数えて 5frame分前のframeからLast frameまでフィルターをかける。
#
# end: filterを適用する 終了frame。end < 0 のとき、start frameからFramecountがabs(end)となる範囲にfilterを適用する。
# FilterRange(start=100, end=-50, filter="vinverse") 100 frame から 50 frame分(149 frame)filterを適用する。
# FilterRange(start=-5, end=-1, filter="vinverse") Last frameから数えて 5frame分前のframeだけにフィルターをかける。
#
# filter: Trimのあとに適用するフィルタ。filterのみ指定すると一番最後の frameにみfilterを適用する。
# FilterRange(filter="vinverse") Last frameだけにフィルターをかける。
#
# pre: Trimの前に適用するフィルタ。自分自身以外(Trimの範囲外)の frameを参照するfilterを使うとき使用。
#
# show: filterを適用した部分だけ表示する。
#
# audio_dub: FilterRangeで audioにフィルタを使用するのが目的のとき falseを指定する。
function FilterRange(clip clp, int "start", int "end", string "filter", string "pre", bool "show", bool "audio_dub")
{
start = default( start, -1 )
end = default( end, -1 )
filter = default( filter, "nul" )
pre = default( pre, "nul" )
show = default( show, false )
audio_dub = default( audio_dub, true )
279名無しさん@編集中:2008/03/28(金) 21:02:49 ID:DLAr9pAI
non = (start < 0) && (clp.Framecount <= abs(start) - 1) ? true : false

filter = (non == true) ? "nul" : filter
pre = (non == true) ? "nul" : pre

start = (start < 0) ? ( (clp.Framecount > abs(start) - 1) ? lastFrameOf(clp) - abs(start) + 1 : 0 ) : start
end = (end < 0) ? ( (start != 0) || (end != -1) ? start - end - 1 : -1 ) : end
end = (end > lastFrameOf(clp)) ? lastFrameOf(clp) : end

c1 = (start != 0) ? clp.Trim( 0, ((start==1)?0:start) - 1 ) : NulClip(clp)
c2 = Eval("clp." + pre + ".Trim(start, end) " + filter + ".toFramerateOf(clp)")
c3 = (end != 0) && (end != lastFrameOf(clp)) && (clp.Framecount != 1)
\ ? clp.Trim( ((start!=0)||(end!=-1)?end:0) + 1, 0 ) : NulClip(clp)

(show == false) ? c1 + c2 + c3 : c2

return (audio_dub == true) ? AudioDubEx( last, !show?clp:clp.Trim(start,end) ) : last
}
280名無しさん@編集中:2008/03/28(金) 21:05:23 ID:DLAr9pAI
# string "frames" に属するフレームに フィルタ string "func" を適用する。
# FilterRange2(func="GreyScale", frames="0,-1, 1,1, 5,5, 100,200, 800,0")
# 0, 1, 5, 100-200, 800-lastFrame に filterを適用する。
function FilterRange2(clip clp, string "func", string "frames", int "start", int "pre_end", int "i", clip "clip2")
{
func = Default( func, "nul" )
frames = Default( frames, "0, 0" )
start = Default( start, 0 )
pre_end = Default( pre_end, 0 )
i = Default( i, 0 )
clip2 = Default( clip2, NulClip(clp) )

(i > 1) && (i % 2 == 1) ? Assert(pre_end < start, "Previous or Current End Frame: " + string(pre_end)
\ + " is larger than or equal to Start Frame: " + string(start) + "." ) : NOP

offset = FindStr(frames, ",")
281名無しさん@編集中:2008/03/28(金) 21:06:03 ID:DLAr9pAI
return (offset != 0)
\ ? Eval("""
j = int(Value(LeftStr(frames, offset-1)))
end = (i % 2 == 0) ? j - 1 : j
(j != start) || ((i % 2 == 1) && (j != 0)) ? clp.Trim( start, end ) : NulClip(clp)
(i % 2 == 1) ? Eval(func) : last
pre_end = (i % 2 == 1) ? end : pre_end
clp.FilterRange2( func=func, frames=MidStr(frames, offset+1), start=(j==0)?0:((end!=-1)?end:0)+1, pre_end=pre_end, i=i+1, clip2=clip2+last )
""")
\ : ((i != 0)
\ ? clip2 + Eval("""
end = int(Value(frames))
end = (end == 0) || (end > lastFrameOf(clp)) ? lastFrameOf(clp) : end
Assert(start <= end, "Start: " + string(start) + " is larger than End Frame: " + string(start) + "." )
clp.Trim(start, end) Eval(func)
\ + ((end != lastFrameOf(clp)) ? clp.Trim(end+1,0).subtitle(string(frames)) : NulClip(clp))
""")
\ : clp)
}
## }}}
282名無しさん@編集中:2008/03/28(金) 21:47:39 ID:DLAr9pAI
>>281
× \ + ((end != lastFrameOf(clp)) ? clp.Trim(end+1,0).subtitle(string(frames)) : NulClip(clp))
○ \ + ((end != lastFrameOf(clp)) ? clp.Trim(end+1,0) : NulClip(clp))
283にーやん:2008/04/03(木) 23:31:39 ID:T0mh+SLT
>>103
ChangePlaySpeedをAviSynth Wikiのユーザー定義関数のページに追加させていただきました。
もし何か問題やおかしな点があれば言ってください。
284名無しさん@編集中:2008/04/04(金) 04:43:20 ID:o/vsksLv
にーやん乙
285103:2008/04/04(金) 23:24:22 ID:eIjWKAmU
掲載ありがとうございます。
コードに全角スペースが含まれていますので、半角に差し替えさせて頂きました。
(当時は字下げの仕方を知らなかったもので…。)

それにしても、再生速度の話題は半年に1回ぐらいのペースで出てきますねぇ。
286名無しさん@編集中:2008/04/05(土) 15:23:07 ID:RfyLeg/f
アス非を変えず、余った空間は黒で塗りつぶしてクリップを指定した解像度にするスクリプト考えてるんですが
a=0
if(a==0){
MessageClip("おk")
}else{
MessageClip("ダメ")
}
AviSynthってこのif構文使えないんですか?
287名無しさん@編集中:2008/04/05(土) 15:40:48 ID:KohPCHpJ
3項演算は可能
288名無しさん@編集中:2008/04/05(土) 16:12:43 ID:RfyLeg/f
自分がif elseに頼り切ってる事が分かった
ループ系も無いのね
function rc(string "path" , float "from" , float "to" ){
c1 = AVISource(path)
mode = (Float(Height(c1)) / Float(Width(c1))>0.75) ? "A" : "B"
#modeがAなら左右に黒枠を付ける
#modeがBなら上下に黒枠を付ける
add_size = (mode=="A") ? (int(Height(c1)/0.75)-Width(c1))/2 : (int(Width(c1)*0.75)-Height(c1))/2
c1 = (mode=="AA")?AddBorders (c1, add_size,0,add_size,0):AddBorders (c1, 0,add_size,0,add_size)
c1 = BicubicResize(c1,640,480)
c1 = Trim(c1, int(from*Framerate(c1)),int(from*Framerate(c1)+to*Framerate(c1)))
c1 = ChangeFPS(c1,30)
c1 = ResampleAudio(c1, 48000)
return c1
}
pathに動画のフルパス、fromに開始秒、toに継続時間 を指定すると
pathの動画を開いてfrom秒〜from+to秒に切り取って、fpsを30にしてサンプリングレート48000に統一して
アス比を4:3にして解像度を640x480にする
メドレーなんかに使えるのではないかと
rc("G:\A.avi",0,99.8)++rc("G:\B.avi",0,99.8)
こんな感じで
289にーやん:2008/04/06(日) 01:20:07 ID:JX+oQBdu
>>285
そのまま貼り付けただけだったので、全角スペースに気づきませんでした。
修正ありがとうございました。
290名無しさん@編集中:2008/04/19(土) 21:08:30 ID:U1tfefvm
保守
291名無しさん@編集中:2008/05/01(木) 22:18:17 ID:dE1O9TzW
見つけたので貼り

946 名前:[名無し]さん(bin+cue).rar[sage] 投稿日:2008/04/06(日) 15:11:30 ID:SeqvFgpF0
YUKKYの設定ファイルをコピー
ttp://nagamochi.info/src/up2812.png
EEDI2を使わずにリサイズ
ttp://nagamochi.info/src/up2811.png

まぁエンコードの速さはかなりいい感じかな

965 名前:946[sage] 投稿日:2008/04/06(日) 21:01:15 ID:SeqvFgpF0
FrameCache(9).IT(fps = 24, ref = "TOP", diMode = 1)
FrameCache(9).crop(8,0,-8,0)
FrameCache(9).ffdshow("unsharp")
FFT3DGPU()
GPU_BeginYV12
GPU_LanczosResize(1280,720)
GPU_EndYV12()
FrameCache(9).asharp(0.8,1.5,0.10,hqbf=true)
FrameCache(9).aWarpSharp(8,3,0.2,2)
FrameCache(9).WarpSharp(128, 3, 108, -0.6)
FrameCache(9).crop(0,4,-0,0)
FrameCache(9).AddBorders(0, 4, 0, 0)

ffdshowはunsharp maskの強さ20
こんな感じの設定ね
FrameCache意味有るのか知らないが付けてみた
MT使えないからquadだとWarpSharpあたりが足を引っ張るかもしれない
EEDI2使ってない分早いと思う
みなみけ以外でYUKKYの設定のあるDVD持ってないから、他のDVDにも通用するは、わからない
292名無しさん@編集中:2008/05/01(木) 22:23:51 ID:MUZ5OnBO
静止画の時点でここまで酷いと動画では見るに耐えないと思うが…
というかそんなもの貼るなよ
293名無しさん@編集中:2008/05/01(木) 22:27:27 ID:kNeRZAyc
ねーよwww

YUKKYの汚すぎだろwww

また糞比較コピペの誕生かよwww
294名無しさん@編集中:2008/05/01(木) 22:33:09 ID:kNeRZAyc
ま、文字テロップはEEDI2やNNEDI使うよりlanczosで拡大したほうがきれいになるのは確かだけどな。
295名無しさん@編集中:2008/05/03(土) 00:31:42 ID:wBNWo9eP
誰YUKKYって
296名無しさん@編集中:2008/05/03(土) 01:00:28 ID:z3ie269Q
もはやYUKKYもしらない厨房や消防もこのスレに入り込んできたのか。

まぁYUKKYなんて糞職人のことは知らないほうがいいのかもしれないな。
297名無しさん@編集中:2008/05/03(土) 01:33:19 ID:XLCrT/1x
兵藤ユキ?
298名無しさん@編集中:2008/05/03(土) 02:36:33 ID:VLhE+otR
職人ってなんの職人?
299名無しさん@編集中:2008/05/03(土) 06:14:29 ID:oD3hByv0
[名無し]さん(bin+cue).rar
ダウソですね
300名無しさん@編集中:2008/05/03(土) 13:49:08 ID:dbsFAosT
FrameCache(9).asharp(0.8,1.5,0.10,hqbf=true)
FrameCache(9).aWarpSharp(8,3,0.2,2)
FrameCache(9).WarpSharp(128, 3, 108, -0.6)

何がしたいんだか・・
301名無しさん@編集中:2008/05/03(土) 17:26:29 ID:wBNWo9eP
704x396な向こうの人か確かにショボイよな
302名無しさん@編集中:2008/05/04(日) 12:25:58 ID:Qn18XQ9S
叩くだけなら誰だってできるよ
お前らの設定晒してみろや
303名無しさん@編集中:2008/05/04(日) 13:05:41 ID:htIRYcOM
何を今更w
304名無しさん@編集中:2008/05/04(日) 15:10:55 ID:X4b2zutb
相手にするな
うつるぞ
305名無しさん@編集中:2008/05/15(木) 00:02:22 ID:h3mxdh4y
##ソースファイル読み込み##
src = DGDecode_MPEG2Source("N:\みなみけ\01\VTS_01_1.d2v").AssumeTFF()
OP = src.FrameCache(9).Trim(0,3147).DoubleWeave().SelectEvery(10,0,2,5,7)
a = src.FrameCache(9).Trim(3148,22957).DoubleWeave().SelectEvery(10,0,2,5,7)
b = src.FrameCache(9).Trim(22958,39561).DoubleWeave().SelectEvery(10,0,2,5,7)
ED = src.FrameCache(9).Trim(39562,42257).DoubleWeave().SelectEvery(10,0,2,5,7)
next = src.FrameCache(9).Trim(42258,0).DoubleWeave().SelectEvery(10,0,2,5,7)

last = OP ++ a ++ b ++ ED ++ next

Crop(8,0,-8,0)

##映像フィルタ##
asharp(0.1,11,-1,true)
FFT3dFilter(plane=4,sigma=1.2)
EEDI2(mthresh=10,lthresh=20,vthresh=20,estr=2,dstr=6,maxd=26,map=0,nt=50,pp=0).TurnRight()
EEDI2(mthresh=10,lthresh=20,vthresh=20,estr=2,dstr=6,maxd=26,map=0,nt=50,pp=0).TurnLeft()
WarpSharp(60,6,165,0)
WarpSharp(60,6,165,0)
LanczosResize(1280,720,taps=16)
YSharp(1.16)

Crop(0,4,0,0)
AddBorders(0,4,0,0)

return last

ちなみにYUKKYの設定はこっちのほうな
正直AvsP開いた瞬間閉じたわ、、、
306名無しさん@編集中:2008/05/15(木) 16:26:23 ID:FzSfg8qc
#########BlackEdge##########
# 作者 YUKKY #
# 必要なプラグイン #
# ・mt_masktools #
# ・asharp ・EEDI2 #

function BlackEdge(clip clip, int "thY", bool "dr", bool "resize"){

thY = default(thY, 6) #エッジマスクを作成する際の輝度閾値
dr = default(dr, false) #デリンギング処理を行うかどうか(trueのみ行う)
resize = default(resize, true) #EEDI2の後に元の解像度に戻すかどうか(false以外は戻す)
src = clip
src = ((dr == true)
\ ? src.asharp(0.1,4.0)
\ : (dr == false)
\ ? src
\ : src)
diff1 = Subtract(src.mt_expand().mt_inpand(),src)
diff2 = Subtract(src,src.mt_inflate().mt_deflate())
temp1 = mt_adddiff(src,mt_makediff(diff2,diff1))
temp2 = mt_adddiff(src,temp1,y=1,u=3,v=3)
temp = mt_average(temp1,temp2)
map = src.mt_edge(mode="min/max",thY1=thY,thY2=thY)
clip = mt_merge(src,temp,map,u=1,v=1)
clip = clip.EEDI2().TurnRight().EEDI2().TurnLeft()
clip = ((resize == true)
\ ? clip.LanczosResize(clip.width/2,clip.height/2,taps=16)
\ : (resize == false)
\ ? clip
\ : clip.LanczosResize(clip.width/2,clip.height/2,taps=16))
return clip
}
307名無しさん@編集中:2008/05/15(木) 17:09:07 ID:vWlBjcYr
ゴミばっかw
308名無しさん@編集中:2008/05/15(木) 18:40:48 ID:XU2EalRv
犯罪者の話題なんて出すなよ
309名無しさん@編集中:2008/05/15(木) 19:07:02 ID:hOlnTnpW
さすがダウンソクオリティー
こんなクソ関数を堂々と公開して後悔。ナチッテ、、、
310名無しさん@編集中:2008/05/16(金) 14:09:13 ID:NrCRByE4
311名無しさん@編集中:2008/05/16(金) 19:40:44 ID:NrCRByE4
scriptclipの使い方が良く解んないから試しに逆テレ氏ね関数作ってみた
globalな変数しか受け付けないから関数内ではとても使いにくいです、ついでに言うと素直にプラグインで作った方が軽そうな予感
conditional系って使い道あるの?

function SakuratanIVTC(clip clip,bool"debug"){
doubleweave(clip)
interleave(last,merge(trim(1,0),last))
default(debug,false)?info:last
c0=selectevery(10,0,5)
c0=stackhorizontal(c0,trim(c0,0,-1)+trim(c0,0,framecount(c0)-2),trim(c0,1,framecount(c0)-1)+trim(c0,framecount(c0)-1,-1))
trim(0,-1)+trim(0,framecount-2)
c1=selectevery(10,0,5)
c1=stackhorizontal(c1,trim(c1,0,-1)+trim(c1,0,framecount(c1)-2),trim(c1,1,framecount(c1)-1)+trim(c1,framecount(c1)-1,-1))
trim(0,-1)+trim(0,framecount-2)
c2=selectevery(10,0,5)
c2=stackhorizontal(c2,trim(c2,0,-1)+trim(c2,0,framecount(c2)-2),trim(c2,1,framecount(c2)-1)+trim(c2,framecount(c2)-1,-1))
trim(0,-1)+trim(0,framecount-2)
c3=selectevery(10,0,5)
c3=stackhorizontal(c3,trim(c3,0,-1)+trim(c3,0,framecount(c3)-2),trim(c3,1,framecount(c3)-1)+trim(c3,framecount(c3)-1,-1))
trim(0,-1)+trim(0,framecount-2)
c4=selectevery(10,0,5)
c4=stackhorizontal(c4,trim(c4,0,-1)+trim(c4,0,framecount(c4)-2),trim(c4,1,framecount(c4)-1)+trim(c4,framecount(c4)-1,-1))
trim(0,-1)+trim(0,framecount-2)
c5=selectevery(10,0,5)
c5=stackhorizontal(c5,trim(c5,0,-1)+trim(c5,0,framecount(c5)-2),trim(c5,1,framecount(c5)-1)+trim(c5,framecount(c5)-1,-1))
stackhorizontal(c0,c1,c2,c3,c4,c5)
scriptclip("""\
w=width/6\
c0=crop(0,0,w,0)\
crop(w,0,0,0)\
c1=crop(0,0,w,0)\
crop(w,0,0,0)\
312名無しさん@編集中:2008/05/16(金) 19:40:55 ID:NrCRByE4
c2=crop(0,0,w,0)\
crop(w,0,0,0)\
c3=crop(0,0,w,0)\
crop(w,0,0,0)\
c4=crop(0,0,w,0)\
c5=crop(w,0,0,0)\
why=w*height\
whuv=why/4\
b0=blur(c0,0,1)\
b1=blur(c1,0,1)\
b2=blur(c2,0,1)\
b3=blur(c3,0,1)\
b4=blur(c4,0,1)\
b5=blur(c5,0,1)\
d0=why*lumadifference(c0,b0)+whuv*(chromaudifference(c0,b0)+chromavdifference(c0,b0))\
d1=why*lumadifference(c1,b1)+whuv*(chromaudifference(c1,b1)+chromavdifference(c1,b1))\
d2=why*lumadifference(c2,b2)+whuv*(chromaudifference(c2,b2)+chromavdifference(c2,b2))\
d3=why*lumadifference(c3,b3)+whuv*(chromaudifference(c3,b3)+chromavdifference(c3,b3))\
d4=why*lumadifference(c4,b4)+whuv*(chromaudifference(c4,b4)+chromavdifference(c4,b4))\
d5=why*lumadifference(c5,b5)+whuv*(chromaudifference(c5,b5)+chromavdifference(c5,b5))\
d5=1.25*d5\
min01=min(d0,d1)\
min012=min(min01,d2)\
min0123=min(min012,d3)\
stackhorizontal(d5<min(min0123,d4)?c5:d4<min0123?c4:d3<min012?c3:d2<min01?c2:d1<d0?c1:c0,c0,c0,c0,c0,c0)\
""")
crop(0,0,width(clip),0)
}

とりあえず作ってみただけなんで↑の関数自体は役に立ちませんwww
だれかscriptclipの素晴らしさを教えてくれ〜
313名無しさん@編集中:2008/05/19(月) 17:10:11 ID:ugcKDwbB
>>305
avisynthでエンコを始めようとしている者です。YUKKY氏の設定を見て、

>src = DGDecode_MPEG2Source("N:\みなみけ\01\VTS_01_1.d2v").AssumeTFF()
>OP = src.FrameCache(9).Trim(0,3147).DoubleWeave().SelectEvery(10,0,2,5,7)
>a = src.FrameCache(9).Trim(3148,22957).DoubleWeave().SelectEvery(10,0,2,5,7)
>b = src.FrameCache(9).Trim(22958,39561).DoubleWeave().SelectEvery(10,0,2,5,7)
>ED = src.FrameCache(9).Trim(39562,42257).DoubleWeave().SelectEvery(10,0,2,5,7)
>next = src.FrameCache(9).Trim(42258,0).DoubleWeave().SelectEvery(10,0,2,5,7)
>last = OP ++ a ++ b ++ ED ++ next

この辺はなるほどと感じましたが、私のavsに取り入れたとき何か問題はありますか?
だいぶ叩かれている様なので。
314名無しさん@編集中:2008/05/19(月) 17:20:56 ID:LdLKSga4
( ゚Д゚)ハァ?
315名無しさん@編集中:2008/05/19(月) 17:22:24 ID:ciIyxm0m
釣だろシカト汁
316名無しさん@編集中:2008/05/19(月) 22:03:03 ID:6/EdyahL
みなみけ

1)皆、三毛 (みな三毛猫の意)
2)南家 (南さんの家で共有しているパソコンの意)

317313:2008/05/24(土) 15:41:04 ID:q+JZgKsj
釣りではありませんでしたが、試さずに質問したのは失礼しました。
Trimより後を省いてVirtualDubで開いてみました。
結果極端に重くなることもなく普通に使えました。
何もなかったかのように312の続きをどうぞ↓
318名無しさん@編集中:2008/05/24(土) 16:05:08 ID:E3lV26Fb
( ゚Д゚)ハァ?
319名無しさん@編集中:2008/05/24(土) 17:54:41 ID:ajpAugIN
>>317
無茶するなよ
つーかどこ省いたって?
320名無しさん@編集中:2008/05/24(土) 18:51:28 ID:pix6KGTi
釣だろシカト汁
321313:2008/05/25(日) 20:10:49 ID:z5lBM62D
>>317
下のようなAVSを作ったわけです。突っ込み大歓迎です。
lgd = "E:\EncFiles\logo\"
LoadAviUtlInputPlugin("C:\Program Files\EARTH SOFT\PV3 3.x\AviUtl\EARTH SOFT DV.aui", "EARTHSOFTDV")
logo = "TBS_1920x1080.lgd"
src = EARTHSOFTDV("E:\TVRec\マクロスF(フロンティア) 5月24日.dv").AssumeTFF()

at_in = 764
at_out = 6245
at_fin = 5
at_fidur = 10
op_in = at_out + 1
op_out = 9244
op_fout = op_out - op_in - 5
op_fodur = 9
(省略)
nx_in = 50274
nx_out = 51112
nx_fin = 5
nx_fidur = 10
nx_fout = nx_out-nx_in-6
nx_fodur = 9

avantitle = src.FrameCache(9).Trim(at_in,at_out).EraseLOGO(logofile=lgd+logo, start=at_fin, fadein=at_fidur).IT(fps=24, ref="TOP")
OP = src.FrameCache(9).Trim(op_in,op_out).EraseLOGO(logofile=lgd+logo, end=op_fout, fadeout=op_fodur).IT(fps=24, ref="TOP")
a = src.FrameCache(9).Trim(a_in,a_out).EraseLOGO(logofile=lgd+logo, start=a_fin, end=a_fout, fadein=a_fidur, fadeout=a_fodur).IT(fps=24, ref="TOP")
b = src.FrameCache(9).Trim(b_in,b_out).EraseLOGO(logofile=lgd+logo, start=b_fin, fadein=b_fidur).IT(fps=24, ref="TOP")
ED = src.FrameCache(9).Trim(ed_in,ed_out).EraseLOGO(logofile=lgd+logo, end=ed_fout, fadeout=ed_fodur).IT(fps=24, ref="TOP")
next = src.FrameCache(9).Trim(nx_in,nx_out).EraseLOGO(logofile=lgd+logo, start=nx_fin, end=nx_fout, fadein=nx_fidur, fadeout=nx_fodur).IT(fps=24, ref="TOP")
last = avantitle ++ OP ++ a ++ b ++ ED ++ next
322名無しさん@編集中:2008/05/25(日) 20:14:12 ID:JE8451jT
頼むからくだらないの貼らないでくれないか、邪魔だから
323名無しさん@編集中:2008/05/25(日) 21:05:55 ID:A5pcvhg3
釣だろシカト汁
324名無しさん@編集中:2008/05/25(日) 22:21:30 ID:N1AlUv3w
>>321
何がしたいかなんとなく分かったけど・・・
つーか何に対してなるほどと思ったのか最初に書けやw
325名無しさん@編集中:2008/05/25(日) 22:23:37 ID:gLQSchS8
似たような事する記述方法色々あるけど>>321のはマンドクサくてヤだな。
326名無しさん@編集中:2008/05/29(木) 19:11:40 ID:BI+obHLk
最近地デジチューナーを入手したんで、これをGV-MVP/RX2に突っ込んで
SDキャプしています。
今までは、
Crop(4,0,704,480)
LanczosResize(640,480)
だったんですが、WIDEのままエンコするには、
Crop(0,0,716,480)
LanczosResize(704,396)
ぐらいでいいでしょうか?
MPEG2ソースを見るのと同じサイズで見ようと思うと
LanczosResize(848,480)
かなぁと思ったんですが、横にムダに引き伸ばすのは間抜けですか?
327名無しさん@編集中:2008/05/29(木) 19:24:54 ID:NuUP41Zu
スレ (´∀`( ´∀`) チガイ
328名無しさん@編集中:2008/06/01(日) 20:00:37 ID:nuzxeT4J
>>206修正(mergeを省略するとフィルタが適応されなかった不具合の修正)
#for…繰り返し処理を行う
#    start    値の初期値
#    end        値の終了値
#    step    刻み値
#    filter    繰り返し分適応させるフィルタ(省略すると何もしません、“""”でも省略扱いです。)
#            繰り返しの値は“i”もしくは“crnt”で取得出来ます
#    merge    クリップ結合関数(省略すると最後に作成したクリップを返します、“""”でも省略扱いです。)
#            繰り返し途中に作成したクリップは早めに生成されたクリップが“c1”、
#            遅めに生成されたクリップが“c2”になります
#            この2つのクリップを1つのクリップに結合します。
function for(clip clip, int start, int end, int step, string "filter", string "merge") {
    filter = default(filter, "")
    merge = default(merge, "")
    merge = (("" != merge)? merge: "c2")
    i = start
    crnt = start
    next = crnt + step

    c1 = clip
    c2 = (("" != filter)? Eval("clip." + filter): clip)
    c2 = ((start < end) ? c2.for(next, end, step, filter, merge): c2)
    return ((start < end)? Eval(merge): c1)
}

この関数色々な所で使っているから、不具合があると再確認事項が多くて困る。
329名無しさん@編集中:2008/06/01(日) 20:06:26 ID:nuzxeT4J
>>156-157,328使用
#DotCleaner…2値の画像のドットノイズを削減します
#    strong    ノイズ除去の強さ(省略なら“1”、“0”なら変化無し)
#            1なら黒拡張1回→白拡張2回→黒拡張1回
#            2なら黒拡張2回→白拡張4回→黒拡張2回
#            -1なら白拡張1回→黒拡張2回→白拡張1回
function DotCleaner(clip clip, int "strong") {
    strong = default(strong, 1)
    darken = """DotCleaner CrossSelfOverlay("darken")"""
    lighten = """DotCleaner CrossSelfOverlay("lighten")"""
    expansion = ((0 < strong)? darken: lighten)
    reduction = ((0 < strong)? lighten: darken)
    strong = ((0 < strong)? strong: -strong)

    function DotCleaner CrossSelfOverlay(clip clip, string mode) {
        base = clip
        clip = clip.Overlay(base, mode=mode, x=-1, y=0).Overlay(base, mode=mode, x=1, y=0).Overlay(base, mode=mode, x=0, y=1).Overlay(base, mode=mode, x=0, y=-1)
        return clip
    }

    type = clip.GetPixelType()
    clip = clip.ConvertToYUY2()
    clip = clip.for(0, strong, 1, expansion).for(0, strong*2, 1, reduction).for(0, strong, 1, expansion)
    return clip.SetPixelType(type)
}

mt_logic使った方が良いと思いますが、取り敢えず標準フィルタで作成。
330名無しさん@編集中:2008/06/01(日) 20:08:45 ID:nuzxeT4J
>>156-157使用
#LuminanceKey…他クリップをルミナンスキーとし、マスク画像を生成します
#    diff        ルミナンスキー判定用クリップ
#    tolerance    マスク許容範囲(省略なら“25”、“0”なら完全一致のみです)
#                負数なら相違箇所をマスクします
#    color        マスク色(省略なら“$00FF00”です)
#    alpha only    アルファ用のクリップを生成する(省略・偽ならマスク、真ならアルファです)
#    effect        マスクの加工フィルタ(省略すると何もしません、“""”でも省略扱いです)
#    effect clip    マスクの加工フィルタにて参照出来るクリップ(省略するとdiffと同じです)
function LuminanceKey(clip clip, clip diff, int "tolerance", int "color", bool "alpha only", string "effect", clip "effect clip") {
    color = default(color, $00FF00)
    tolerance = default(tolerance, 25)
    alpha only = default(alpha only, false)
    effect = default(effect, "")
    effect clip = default(effect clip, diff)
    is mask = ((0 <= tolerance)? true: false)
    tolerance =    ((0 <= tolerance)? tolerance: -tolerance)
331名無しさん@編集中:2008/06/01(日) 20:10:19 ID:nuzxeT4J
    type = clip.GetPixelType()

    diff = clip.Overlay(diff, mode="difference").ColorYUV(off y=-127)
    diff = diff.ConvertToRGB32()
    diff = diff.ColorKeyMask($000000, tolerance)
    diff = diff.ShowAlpha()
    diff = ((is mask)? diff.Invert(): diff)
    diff = (("" != effect)? Eval("diff." + effect): diff)

    clip = clip.ConvertToRGB32()
    bg = clip.BlankClip(color=color)
    bg = bg.Mask(diff)
    clip = clip.Layer(bg, "add")

    clip = ((alpha only)? diff.Invert(): clip)

    return clip.SetPixelType(type)
}
332名無しさん@編集中:2008/06/01(日) 20:11:42 ID:nuzxeT4J
trio = LoadTrioClip()
duo = LoadDuoClip()

alpha = trio.LuminanceKey(duo, 10, alpha only=true, effect="DotCleaner(1).Blur(1.0)")
luminance = trio.LuminanceKey(duo, 10, effect="DotCleaner(1).Blur(1.0)")

up = StackHorizontal(trio, duo)
down = StackHorizontal(alpha, luminance)
StackVertical(up, down)

ttp://nagamochi.info/src/up5363.png
333名無しさん@編集中:2008/06/01(日) 20:22:54 ID:nuzxeT4J
>>329-332
すいません、そこここの“_”が消えています。
DotCleaner_CrossSelfOverlay
alpha_only
effect_clip
is_mask
off_y
334名無しさん@編集中:2008/06/16(月) 08:42:47 ID:gzRzZUdB
335名無しさん@編集中:2008/07/04(金) 17:34:39 ID:sLf+cs9e
アニメエンコで定番のUnSharpMask+WarpSharpに対抗してみた。
それだけ。

LoadPlugin("ffmpegsource.dll")
LoadPlugin("FFT3DGPU.dll")
LoadPlugin("rgbhack.dll")
LoadPlugin("LGhost.dll")
LoadPlugin("PMD.dll")

FFPP(pp="vdeblock:chrom/hdeblock:chrom/dering:chrom")
ConvertToRGB(matrix="rec709")

red=ShowRed("YV12").FFT3DGPU(plane=0,bt=-1,bw=32,bh=32,ow=16,oh=16,precision=2,sharpen=4,interlaced=false).LGhost(1).PMD()
green=ShowGreen("YV12").FFT3DGPU(plane=0,bt=-1,bw=32,bh=32,ow=16,oh=16,precision=2,sharpen=4,interlaced=false).LGhost(1).PMD()
blue=howBlue("YV12").FFT3DGPU(plane=0,bt=-1,bw=32,bh=32,ow=16,oh=16,precision=2,sharpen=4,interlaced=false).LGhost(1).PMD()

YYYToRGB(red,green,blue)
ConvertToYV12(matrix="PC.709")
flipvertical
FFPP(pp="vdeblock:chrom/hdeblock:chrom/dering:chrom")
336名無しさん@編集中:2008/07/05(土) 21:00:13 ID:g04jIkC2
ショボ
337名無しさん@編集中:2008/07/06(日) 12:04:08 ID:CdYOyW/p
>>336
最高の賛辞
338名無しさん@編集中:2008/07/06(日) 13:15:38 ID:DPre5XeQ
>>336
Good Job !
339名無しさん@編集中:2008/07/21(月) 01:55:25 ID:2BS3sadP
#2-3プルダウンでテレシネされたソースに60テロなんか入った場合、手動間引きしつつ矩形範囲のみbob化して60p出力する関数
#ivtcbob("12","ConvertToYV12(interlaced=true).MCbob().ConvertToYUY2()",0,930,1440,90)#例えば5n+2&3フレーム目に縞がある場合stripe="23"
function ivtcbob(clip clip, string stripe, string bobfilter, int x, int y, int w, int h){

Assert((stripe == "01") || (stripe == "12") || (stripe == "23") || (stripe == "34") || (stripe == "40"), "ivtcbob : stripe list : '01','12','23','34' or '40'")
Assert(clip.IsYUY2 || clip.IsRGB32, "ivtcbob : require 'YUY2' or 'RGB32' input")

frame = clip.Framecount() * 2 - 1
c = clip.DoubleWeave()
c = (stripe == "01") ? c.SelectEvery(5,1,3) : c
c = (stripe == "12") ? c.SelectEvery(5,0,3) : c
c = (stripe == "23") ? c.SelectEvery(5,0,2) : c
c = (stripe == "34") ? c.SelectEvery(5,2,4) : c
c = (stripe == "40") ? c.SelectEvery(5,1,4) : c

c1 = c.SelectEven()
c2 = c.SelectOdd()

c = (stripe == "01") ? clip.SeparateFields().SelectEven().EEDI2().Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "12") ? Interleave(c1,c1,c1,c2,c2) : c
c = (stripe == "23") ? Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "34") ? clip.Trim(0,-1).AssumeFPS(60000,1001) + clip.Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "40") ? clip.SeparateFields().SelectEven().EEDI2().Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c1,c2,c2) : c
c = c.Trim(0,frame)

telop=Eval("clip." + bobfilter)
Assert((frame == telop.Framecount() - 1) && (telop.FramerateNumerator() == 60000), "ivtcbob : bobfilter error")
telop=telop.Crop(x,y,w,h)

Layer(c,telop,"add",255,x,y)
return last
}
340名無しさん@編集中:2008/07/22(火) 00:21:10 ID:SgMxS+s2
#>>339にMCBOBを使ってエンコしたら重すぎて使い物にならなかったのでクロップ優先オプションの"fast"を追加

function ivtcbob(clip clip, string stripe, string bobfilter, int x, int y, int w, int h, bool "fast", bool "yv12", int "overlap"){

fast = default(fast,true)
yv12 = default(yv12,false)
overlap = default(overlap,2)

Assert(clip.IsYUY2 || clip.IsRGB32, "ivtcbob : require 'YUY2' or 'RGB32' input")
Assert((stripe == "01") || (stripe == "12") || (stripe == "23") || (stripe == "34") || (stripe == "40"), "ivtcbob : stripe list : '01','12','23','34' or '40'")
fast ? Assert(y % 2 == 0, "ivtcbob : In case 'fast' is true, 'y' must be even number.") : last
fast ? Assert(h % 2 == 0, "ivtcbob : In case 'fast' is true, 'h' must be even number.") : last
fast ? Assert(overlap % 2 == 0, "ivtcbob : In case 'fast' is true, 'overlap' must be even number.") : last
fast ? Assert((w > 0) && (h > 0), "ivtcbob : In case 'fast' is true, 'w' and 'h' must be positive numbers.") : last
top = (y < overlap) ? y : overlap
bottom = (clip.Height() - y - h < overlap) ? clip.Height() - y - h : overlap
left = (x < overlap) ? x : overlap
right = (clip.Width() - x - w < overlap) ? clip.Width() - x - w : overlap

frame = clip.Framecount() * 2 - 1
c = clip.DoubleWeave()
c = (stripe == "01") ? c.SelectEvery(5,1,3) : c
c = (stripe == "12") ? c.SelectEvery(5,0,3) : c
c = (stripe == "23") ? c.SelectEvery(5,0,2) : c
c = (stripe == "34") ? c.SelectEvery(5,2,4) : c
c = (stripe == "40") ? c.SelectEvery(5,1,4) : c
341340:2008/07/22(火) 00:22:30 ID:SgMxS+s2
c1 = c.SelectEven()
c2 = c.SelectOdd()

c = (stripe == "01") ? clip.SeparateFields().SelectEven().EEDI2().Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "12") ? Interleave(c1,c1,c1,c2,c2) : c
c = (stripe == "23") ? Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "34") ? clip.Trim(0,-1).AssumeFPS(60000,1001) + clip.Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c2,c2,c2) : c
c = (stripe == "40") ? clip.SeparateFields().SelectEven().EEDI2().Trim(0,-1).AssumeFPS(60000,1001) + Interleave(c1,c1,c1,c2,c2) : c
c = c.Trim(0,frame)

branch = yv12 && ((top + h + bottom) % 4 != 0) ?
\ (
\ (clip.Height() - y - h < overlap) ? Eval("clip.crop(" + String(x-left) + "," + String(y-top) + "," + String(left+w+right) + "," + String(top+h+bottom) + ").AddBorders(0,0,0,2)")
\ : Eval("clip.crop(" + String(x-left) + "," + String(y-top) + "," + String(left+w+right) + "," + String(top+h+bottom+2) + ")")
\ )
\ : Eval("clip.crop(" + String(x-left) + "," + String(y-top) + "," + String(left+w+right) + "," + String(top+h+bottom) + ")")
telop = fast ? branch : clip
telop = Eval("telop." + bobfilter)
telop = fast ? telop.crop(left,top,w,h) : telop.crop(x,y,w,h)

Assert((frame == telop.Framecount() - 1) && (telop.FramerateNumerator() == 60000), "ivtcbob : bobfilter error")

Layer(c,telop,"add",255,x,y)

return last
}
342340:2008/07/22(火) 00:42:39 ID:SgMxS+s2
# 一応使い方

# 使用プラグイン
#   EEDI2       片フィールドしか存在しない0フレーム目のフィールド補間に使ってるだけなので
#              SeparateFields().SelectEven().EEDI2()の部分を好みのbobフィルタにしても可。
#              今気づいたけどSelectEven必要ないな・・・

# 引数リスト
#   stripe(string):   5n+xフレームのどこに縞があるかを'01','12','23','34','40'の中から指定。
#   bobfilter(string): bobフィルタを指定。
#   x,y,w,h(int):    bobフィルタを適用する矩形領域を選択。
#   fast(bool):     trueでcropを優先し高速化する。デフォルトはtrue。
#   yv12(bool):    fastがtrueのとき、矩形領域の高さが4の倍数でなくても
#              bobfilterでConvertToYV12(interlaced=true)を使えるようにする。デフォルトはfalse。
#   overlap(int):   fastがtrueのとき、bobフィルタをかける前に矩形領域の上下左右を余分にクロップするピクセル数。
#              動き補償付きbob関数なんかを使うときは大きめにしたほうがいいかもしれない。デフォルトは2。

# 使用例
#   ivtcbob("23","ConvertToYV12(interlaced=true).MCbob().ConvertToYUY2()",0,930,1440,1020-930,true,true,4)
343名無しさん@編集中:2008/09/13(土) 19:37:57 ID:97Y04PBb
アニメDVD用

mpeg2source(FPath + D2vFile)

AssumeFrameBased().ComplementParity()

Its(def=DPath + DefFile,fps=-1,output=FPath + TimestampFile, debug=false)

ColorYUY2(matrix="rec709s", debug=0, interpolation="411->422", interlaced=false)
ColorMatrix(mode="Rec.709->SMPTE 240M", source=0, dest=3, scaling=2, interlaced=false, d2v=FPath + D2vFile)

UnSharpMask(24,3,5)
WarpSharp(90,5,90)

Lanczos4Resize(704,396)

addborders(0,0,0,4)

return last

344名無しさん@編集中:2008/09/13(土) 19:38:44 ID:97Y04PBb
Its24fps用
function a24(clip clip)
{
clip
AssumeFrameBased().ComplementParity()
BruteIVTC()
TDeint(mode=2,order=1,field=1,type=1,mtnmode=3,full=false,chroma=false,tryweave=true,link=1,slow=2)
vinverse(sstr=2.7,amnt=255,uv=3,scl=0.25,opt=2)
TDecimate(mode=1,hybrid=0,dupThresh=0.7,blockx=8,blocky=8,chroma=true)

return last
}

Its30fps用
function b30(clip clip)
{
clip
AssumeFrameBased().ComplementParity()
BruteIVTC()
TDeint(mode=2,order=1,field=1,type=1,mtnmode=3,full=false,chroma=false,tryweave=true,link=1,slow=2)
vinverse(sstr=2.7,amnt=255,uv=3,scl=0.25,opt=2)

return last
}
345名無しさん@編集中:2008/09/15(月) 11:12:55 ID:MCwU1/uz
ソースがDVD Videoなら、色空間がBT.601(SMPTE 170M)のYV12(YCbCr 4:2:0)なので、
BT.709と解釈してSMTPE 240M(アナログHDTVの色空間)にするとおかしな色になる。

ColorYUY2とColorMatrixの両方を外したら良い。
346名無しさん@編集中:2008/09/15(月) 13:27:52 ID:WNogej7t
DGIndex が 709 だと言ってたので 709 にしてました。(騙されたorz)
601で通すことにします。
347名無しさん@編集中:2008/09/15(月) 13:33:23 ID:MCwU1/uz
最近のDGIndex(1.5.0以降)ならSDのソースをBT.709だと判定しない様に改良された。

ただ、BT.709とするべきSDのデジタル放送をBT.470-2 B,G(SMPTE 170M, BT.601と同じ)と判定するので、
それだけ注意する必要がある。
348名無しさん@編集中:2008/09/15(月) 18:36:16 ID:f4N7KPRY
DVDエンコは基本色を弄らずエンコして、再生する時にレベル補正する方が確実に楽だよっねー!
349名無しさん@編集中:2008/10/04(土) 18:50:11 ID:+5H5V3V8
FUNCTION ContraSharpening(clip denoised, clip original)
{
# contra-sharpening: sharpen the denoised clip, but don't add more to any pixel than what was removed previously.
# script function from Didee from the VERY GRAINY thread
s = denoised.minblur(1,1) # Damp down remaining spots of the denoised clip.
allD = mt_makediff(original,denoised) # The difference achieved by the denoising.
ssD = mt_makediff(s,s.removegrain(11,-1)) # The difference of a simple kernel blur.
ssDD = ssD.repair(allD,1) # Limit the difference to the max of what the denoising removed locally.
ssDD = SSDD.mt_lutxy(ssD,"x 128 - abs y 128 - abs < x y ?") # abs(diff) after limiting may not be bigger than before.

denoised.mt_adddiff(ssDD,U=2,V=2) # Apply the limited difference. (Sharpening is just inverse blurring.)

RETURN (last)
}
350名無しさん@編集中:2008/10/13(月) 10:15:23 ID:W061R7Ug
>>340
gjすぐる
351名無しさん@編集中:2008/11/10(月) 15:28:51 ID:bdGAJgfr
ショボイスクリプトを貼ったよ

SetMemoryMax(768) SetMTMode(1,0)
# Auto("○"=自動クロップ)Anime("○"=アニメ)Wide("○"=ワイドスクリーン&Anime="○"(704,360)"×"(704,392) ※Auto時無効 )
Auto="○" Anime="○" Wide="○" UTimingH=0 VTimingH=0 Border="1" Line=0 Range=20 # Border/Line=0(OFF):1(ON) Range=16-24
#-------------------------------------------------
AutoS="○"==Auto AnimeS="○"==Anime wideS="○"==Wide BorderS="1"==Border Plugin="C:\Program Files\AviSynth 2.5\plugins+\"
#-------------------------------------------------
LoadPlugin(Plugin+"DGDecode.dll")
LoadPlugin(Plugin+"gradfun2db.dll")
LoadPlugin(Plugin+"TComb.dll")
LoadPlugin(Plugin+"autocrop")
LoadPlugin(Plugin+"ColorYUY2_for_25.dll")
LoadPlugin(Plugin+"RemoveGrainSSE3.dll")
LoadPlugin(Plugin+"DeGrainMedian.dll")
LoadPlugin(Plugin+"FFT3dGPU.dll")
LoadPlugin(Plugin+"warpsharp.dll")
LoadPlugin(Plugin+"TemporalCleaner.dll")
LoadPlugin(Plugin+"TBilateral.dll")
LoadPlugin(Plugin+"FluxSmooth.dll")
LoadPlugin(Plugin+"mt_masktools-25.dll")
#-------------------------------------------------
Import(Plugin+"myFunctions.avs")
Import(Plugin+"LimitedSharpenFaster.avsi")
Try{assert(false)}Catch(err_msg){err_msg = MidStr(err_msg,FindStr(err_msg,"(") + 1)
script_name = LeftStr(err_msg,StrLen(err_msg) - FindStr(RevStr(err_msg),","))}
Video_name = Leftstr(script_name,Findstr(script_name,".avs")-1)
gradfun2db(MPEG2Source(Video_name+".d2v",cpu=6),1.8)
352名無しさん@編集中:2008/11/10(月) 15:29:47 ID:bdGAJgfr
#-------------------------------------------------
AssumeFrameBased().ComplementParity()
UVTimingH(UTimingH,VTimingH,false).crop(8,0,704,480).TComb()
#-------------------------------------------------
AutoS ? autocrop(mode=Line,wmultof=8,hmultof=4,samples=10,aspect=0,threshold=Range) : nop()
AutoS ? nop(): wideS ? AnimeS ? crop(0,60,704,360) : crop(0,44,704,392) : nop()
#-------------------------------------------------
ColorYUY2(gain_y=0,cont_y=3,off_y=0,cont_u=15,cont_v=15,gamma_y=5,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
AnimeS ? Tweak(0.0, 1.2, 0.0, 1.0, false) : Tweak(0.0, 1.1, 0.0, 1.0, false)
#----------------------実写-----------------------
Setmtmode(5)
AnimeS ? nop() : FrameCache(9).fft3dGPU(sigma=2.0,beta=1,plane=4,bw=16,bh=16,ow=8,oh=8,bt=4,mode=1,wintype=2,svr=0,interlaced=true)
Setmtmode(2)
AnimeS ? nop() : DeGrainMedian(2,3,1,interlaced=true).iFilterT("UnsharpMask(48,2,7)").WarpSharp(64,3,96)
#---------------------アニメ----------------------
Setmtmode(5)
AnimeS ? FrameCache(9).fft3dGPU(sigma=2.5,beta=1,plane=3,bw=2,bh=2,ow=1,oh=1,bt=4,mode=1,wintype=2,svr=0,interlaced=true) : nop()
Setmtmode(2)
AnimeS ? FrameCache(9).iFilterT("TemporalCleaner(3,0)") : nop()
Setmtmode(1)
AnimeS ? FrameCache(9).iFilterT("TBilateral(diameterL=5,diameterC=5,sDevL=4,sDevC=5,iDevL=3,iDevC=5,kernS=7,kernI=7,gui=false)") : nop()
Setmtmode(2)
AnimeS ? FrameCache(9).iFilterB("FluxSmoothT(6).LimitedSharpenFaster(Smode=4,strength=150,soft=0,edgemode=1)") : nop()
AnimeS ? iFilterT("UnSharpMask(24,2,5)") : nop()
353名無しさん@編集中:2008/11/10(月) 15:30:23 ID:bdGAJgfr
#-------------------------------------------------
AutoS ? BorderS ? AddBorders(0,(480 - Height()) / 2,0,(480 - Height()) / 2,$000000) : nop() : nop()
AutoS ? nop(): BorderS ? wideS ? AnimeS ? AddBorders(0,60,0,60,$000000) : AddBorders(0,44,0,44,$000000) :nop() :nop()
#-------------------------------------------------
return last
354名無しさん@編集中:2008/11/10(月) 23:08:58 ID:bdGAJgfr
修正
Setmtmode(2)
AnimeS ? FrameCache(9).iFilterB("FluxSmoothT(6).LimitedSharpenFaster(Smode=4,strength=150,soft=-1,edgemode=1)") : nop()
AnimeS ? FrameCache(9).iFilterT("UnSharpMask(24,2,5)").WarpSharp(40,2,80,-0.6) : nop()
355名無しさん@編集中:2008/11/25(火) 11:30:54 ID:m/fhgV/k
修正版(MeGUI版 アナログ素材用インタレ保持) 入門者用メモ 

 素材は「GV-MVP-GX2W」で録画したものを INTEL E6750(3.2G)で2時間以内(アニメの場合)でエンコすることを目安した (再生はHWインタレ解除)
 RADEON HD3850 (カタリスト 8.11) (カタリスト 8.11はRenderless ModeだとHWインタレが崩れる Renderless Modeを使用する場合はカタリスト8.4で)
 KMPlyaer VMR9(Windows Mode) 3D パイリニア VMRミキサー 外部CODEC CyberLink H.264/AVC Decoder
 704x480 sar 8:9または720x480 sar 1:1のエンコでソース(GX2WのMPEG2)と同じ比率で再生できる KMPlyaerは「アスペクト比を保持しない」に設定
       
※HWインタレ解除で一部(数回に1回程度は成功する)引っかかる場合はインタレ稿の検出に失敗している場合があるのでフィルター類を見直すか
 カタリスト8.4で再生してみる FluxSmoothTを少し強めにすれば改善する場合がある                 
356名無しさん@編集中:2008/11/25(火) 11:31:28 ID:m/fhgV/k
SetMemoryMax(768) SetMTMode(1,0)
Auto="○" Anime="○" Crop="○" BorderX="0" BorderY="1" Test=0 Range=30 UTimingH=0 VTimingH=0
#-------------------------------------------------
# Auto(自動クロップ)Anime(アニメ)Crop(×720x480 ○704x480 ※Auto優先)BorderX/Y/Test=0(OFF)/1(ON) Range=16-30
# ○(有効)×(無効) x264 (sar = 704x480 > 4:3(10:11) 16:9(40:33) 3:2 > 4:3(8:9) 16:9(32:27)) ※BorderX/Y=720/480
#-------------------------------------------------
AutoS="○"==Auto AnimeS="○"==Anime CropS="○"==Crop BorderXS="1"==BorderX BorderYS="1"==BorderY
Plugin="C:\Program Files\AviSynth 2.5\plugins+\"
#-------------------------------------------------
LoadPlugin(Plugin+"DGDecode.dll")
LoadPlugin(Plugin+"gradfun2db.dll")
LoadPlugin(Plugin+"TComb.dll")
LoadPlugin(Plugin+"autocrop")
LoadPlugin(Plugin+"ColorYUY2_for_25.dll")
LoadPlugin(Plugin+"RemoveGrainSSE3.dll")
LoadPlugin(Plugin+"DeGrainMedian.dll")
LoadPlugin(Plugin+"FFT3dGPU.dll")
LoadPlugin(Plugin+"warpsharp.dll")
LoadPlugin(Plugin+"TemporalCleaner.dll")
LoadPlugin(Plugin+"TBilateral.dll")
LoadPlugin(Plugin+"FluxSmooth.dll")
LoadPlugin(Plugin+"mt_masktools-25.dll")
357名無しさん@編集中:2008/11/25(火) 11:32:33 ID:m/fhgV/k
#-------------------------------------------------
Import(Plugin+"myFunctions.avs")
Import(Plugin+"vmToon-v0.74.avsi")
Try{assert(false)}Catch(err_msg){err_msg = MidStr(err_msg,FindStr(err_msg,"(") + 1)
script_name = LeftStr(err_msg,StrLen(err_msg) - FindStr(RevStr(err_msg),","))}
Video_name = Leftstr(script_name,Findstr(script_name,".avs")-1)
gradfun2db(MPEG2Source(Video_name+".d2v",cpu=6),1.8)
#-------------------------------------------------
AssumeFrameBased().ComplementParity()
UVTimingH(UTimingH,VTimingH,false).TComb()
#-------------------------------------------------
AutoS ? autocrop(mode=Test,wmultof=8,hmultof=4,samples=20,aspect=0,threshold=Range) : CropS ? crop(8,0,704,480) : nop()
#-------------------------------------------------
ColorYUY2(gain_y=0,cont_y=15,off_y=0,cont_u=35,cont_v=30,gamma_y=5,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
#----------------------実写----------------------- 調整中
Setmtmode(5)
AnimeS ? nop() : FrameCache(9).fft3dGPU(sigma=2.0,beta=1,plane=4,bw=16,bh=16,ow=8,oh=8,bt=4,mode=1,wintype=2,svr=0,interlaced=true)
Setmtmode(2)
AnimeS ? nop() : DeGrainMedian(2,3,1,interlaced=true).iFilterT("UnsharpMask(48,2,7)").WarpSharp(64,3,96,-0.6)
358名無しさん@編集中:2008/11/25(火) 11:33:19 ID:m/fhgV/k
#---------------------アニメ---------------------- 調整中
Setmtmode(5)
AnimeS ? FrameCache(9).fft3dGPU(sigma=2.5,beta=1,plane=3,bw=2,bh=2,ow=1,oh=1,bt=4,mode=1,wintype=2,svr=0,interlaced=true) : nop()
Setmtmode(2)
AnimeS ? FrameCache(9).iFilterT("TemporalCleaner(3,0)") : nop()
Setmtmode(1)
AnimeS ? FrameCache(9).iFilterT("TBilateral(diameterL=5,diameterC=5,sDevL=3,sDevC=5,iDevL=2,iDevC=5,kernS=7,kernI=7,gui=false)") : nop()
Setmtmode(2)
AnimeS ? FrameCache(9).iFilterT("FluxSmoothT(6).UnSharpMask(24,2,5)").WarpSharp(64,3,96,-0.6).vmToon(strength=20,sharpen=true) : nop()
#AnimeS ? FrameCache(9).iFilterT("FluxSmoothT(6).UnSharpMask(24,2,5)").WarpSharp(96,3,96,-0.6).vmToon(strength=20,sharpen=true) : nop()
#-------------------------------------------------
AutoS ? BorderXS ? AddBorders((720 - Width()) / 2, 0 ,(720 - Width()) / 2, 0 ,$000000) : nop() : nop()
AutoS ? BorderYS ? AddBorders(0, (480 - Height()) / 2, 0 ,(480 - Height()) / 2,$000000) : nop() : nop()
AutoS ? nop(): BorderXS ? CropS ? AddBorders(8,0,8,0,$000000) : nop() :nop()
#-------------------------------------------------
return last
359名無しさん@編集中:2008/11/25(火) 11:59:31 ID:m/fhgV/k
追記
 素材に適したアスペクト比でエンコしてやらないと再生時にテロップ(文字)が若干ぼやけてしまうことがあるので注意(PC上での再生の場合)
360名無しさん@編集中:2008/12/05(金) 02:04:49 ID:qgAJzn8A
>>357
HWインタレ解除がミスりやすいのと2時間以内にエンコできなかったので一部修正

Auto="○" Anime="○" Crop="○" BorderX="0" BorderY="1" Test=0 Range=30 UTimingH=0 VTimingH=0 Mod=8
#-------------------------------------------------
Import(Plugin+"LimitedSharpenFaster.avsi")
#-------------------------------------------------
AutoS ? autocrop(mode=Test,wmultof=8,hmultof=Mod,samples=20,aspect=0,threshold=Range) : CropS ? crop(8,0,704,480) : nop()
#----------------------実写-----------------------
Setmtmode(2)
AnimeS ? nop() : DeGrainMedian(2,3,1,interlaced=true).iFilterT("UnSharpMask(24,1,5)")
#---------------------アニメ----------------------
Setmtmode(2)
AnimeS ? FrameCache(9).FluxSmoothT(6).iFilterB("LimitedSharpenFaster(Smode=4,strength=120,soft=0,edgemode=1).WarpSharp(64,1,96,-0.6)") : nop()
#-------------------------------------------------
※16の倍数ではないと警告がでるが無視してOK hmultof=16 だと上下カットしすぎかも

※GV-MVP/GX2W(4:3)でCAP(CSレター)し sar 8:9でエンコすれば上下をカットしてもMediaInfo上では16/9になるのでKMPlyaer等で再生可能 

※推奨プレイヤー PowerDVD Vista(4617) HWインタレ解除(ベクター) または 正方形ピクセルに調整してくれるKMPlyaer等(VMR9 Windows Mode)


以上 入門者用メモでした
361名無しさん@編集中:2008/12/05(金) 02:43:41 ID:qgAJzn8A
>>360
追記
  KMPlyaerは高速モードか超高速モードにしないとDxVAモードが動作しない
  また、CCCで強制的にベクタにしてもHWインタレ解除はPowerDVD Vistaの方が画質は上
362名無しさん@編集中:2008/12/21(日) 04:25:32 ID:wza4VG2a
# if-else構文 {{{
# もし三項演算子を if-else構文で書くとしたら。
# else と elseif の前には必ず . を置く
# ).else (

/* 使用例
# ttp://avisynth.org/mediawiki/Block_statements

Global c = BlankClip().Trim(0,23)
Global d = BlankClip(color=$ffffff).Trim(0,23)
Global e = BlankClip(color=$ffff00).Trim(0,23)

#Return b ? c + d : d + c
#Return if("b", "c + d").else("d + c")

Global b = true
if("b",
   \"""
   Global k = c
   Global l = d
   """\
).else (
   \"""
   Global k = d
   Global l = c
""")
# if("b", "Global k = c Global l = d").else("Global k = d Global l = c")
Return k + l
#Global k = undef()
#Global l = undef()
363名無しさん@編集中:2008/12/21(日) 04:28:43 ID:wza4VG2a
Global a = 2
if ("a>=5",
    \"""
    Global k = c
    Global l = d
    Global m = e
    """\
).elseif ("a > 2",
    \"""
    Global k = d
    Global l = e
    Global m = c
    """\
).else (
    \"""
    Global k = e
    Global l = c
    Global m = d
""")
Return k + l + m
*/
364名無しさん@編集中:2008/12/21(日) 04:30:18 ID:wza4VG2a
Function if(string exp1, string exp2) {
    Global IF_ELSE_BREAK = false
    Eval(exp1)
      \ ? Eval(""" Global IF_ELSE_BREAK=true Eval(exp2) """) : NOP
}

Function elseif(val exp1, string exp2, string exp3) {
    !IF_ELSE_BREAK && Eval(exp2)
      \ ? Eval(""" Global IF_ELSE_BREAK=true Eval(exp3) """) : NOP
}

Function else(val exp1, string exp2) {
    !IF_ELSE_BREAK ? Eval(exp2) : exp1
    Global IF_ELSE_BREAK = undef()
}

Function undef(val "x") {
  Assert(!Defined(x), "Usage: x = undef()") Return x
} #}}}
365名無しさん@編集中:2008/12/21(日) 04:51:20 ID:wza4VG2a
修正
  Function else(val exp1, string exp2) {
      !IF_ELSE_BREAK ? Eval(exp2) : exp1
      Global IF_ELSE_BREAK = undef()
  }
から
  Function else(val exp1, string exp2) {
      !IF_ELSE_BREAK ? Eval(exp2) : NOP
      Global IF_ELSE_BREAK = undef()
  }
366名無しさん@編集中:2009/01/16(金) 18:35:37 ID:4dstrcrl
てst
367名無しさん@編集中:2009/02/05(木) 23:00:16 ID:8UQo7HFA
### デバッグ・検証用 {{{1
# コンソールで AviSynth を動かしている気分に浸れるもの。
# 日本語を扱うときは、スクリプトを cp932 (sjis) で保存してください。
# フォントは osaka_unicode がお勧めです。
## 要るもの {{{2
 /*
Arrays and Loops
ttp://forum.doom9.org/showthread.php?t=106880

Thunk() を下記のように変更。

function Thunk(val val, string "clipName")
{
clipName = Default(clipName, "val")

c34 = chr(34) + chr(34) + chr(34)

# string -> escape it
# clip -> double-thunk it
# everything else -> stringify it
return val.IsString()
\ ? c34 + val + c34
\ : val.IsClip()
\ ? "Eval(" + chr(34) + clipName + chr(34) + ")"
\ : string(val)
} #}}}
368名無しさん@編集中:2009/02/05(木) 23:06:50 ID:8UQo7HFA
## 使用例: {{{2

# columns: 横に何文字配列するか, lines: 縦に何文字配列するか
ConsoleClip(lines=30)

# y で表示位置調整。デフォルト 0
Evaluation(" 7 %  3")
Evaluation("-7 %  3", y=2)
Evaluation("-7 % -3", y=4)
Evaluation(" 7 % -3", y=6)

AviSynth の剰余 % は Haskell の Prelude.rem, Scheme の remainder と同
じ働きをする。(商はゼロに向かってまるめられる)
被除数, 除数ともに正数のときだけ正しい解が出力される。

一方、Haskell の Prelude.mod, Scheme の modulo をはじめ GNU CLISP,
Perl, Python, Ruby では、(商は負の無限大に向かってまるめられ)
除数が正数のときだけ正しい解が出力される。
こちらの方は、正数演算での除数はゼロより大きくなければならないことを
念頭に置いておけば、合同式の演算に使うことが出来る。
(ほとんどの言語はゼロで割ろうとすればエラーを出すが、整数型を負数で
割ろうとしてもエラーを出さないので気をつける必要がある)
任意の整数を、あるゼロより大きい整数 で割った余りの集合を剰余体と
いい、その中でも素数で割ったものを有限体(ガロア体)といい、特に 2 で
割ったものは計算機のビット演算に使われている。FrameNumber を 5 で割っ
た集合を考えれば 逆テレシネにも応用することが出来る。

整数型の除算の商の符号は、被除数 及び 除数 の符号がマイナスかどうかを
1, 0 であらわすと排他的論理和によってあらわすことができる。乗算でも同
様である。(符号が同じならば正の値を取る)
369名無しさん@編集中:2009/02/05(木) 23:09:14 ID:8UQo7HFA
Function xor(P, Q) { !(P == Q) }
Evaluation("xor(true, true)", y=0)
Evaluation("xor(true, false)", y=2)
Evaluation("xor(false, true)", y=4)
return Evaluation("xor(false, false)", y=6)

とこういう風に書くと正数演算において負数で被除数を割ることができない
なんて聞いたことがないと思われるかもしれないが、正数においては除法の
原理が大前提にあるのでこれを見れば明らか。
もし、正数を負数で割りたければ、正数を有理数に拡張する必要がある。
もちろん有理数には剰余というものがないが、除法の原理において
被除数, 除数を有理数にしても同じことが言える。
よって、ユークリッドの互除法を使えば2つの有理数の最大公約因子を
求めることが出来る。(これは最大公約数ではない。最大公約数は2つの
ゼロより大きい整数によって決まるものである)
これは、timeScale, timeBase を求めるのに使うことが出来る。
下の式で m, n, r を有理数とし、それ以外を整数として計算する。

除法の原理
m を任意の整数、n は n > 0 の整数とする。このとき

    m = qn + r, 0 <= r < n

となる整数 q, r がただ1組存在する。

言語内での除算のふるまいは、ここらへん。
Gaucheのリファレンスマニュアル
ttp://gauche.sourceforge.jp/doc/gauche-refj_49.html#SEC53
R5RS (Revised^5 Report on Algorithmic Language Scheme)
ttp://www.unixuser.org/~euske/doc/r5rs-ja/
370名無しさん@編集中:2009/02/05(木) 23:11:11 ID:8UQo7HFA
# 表示で改行をさせたいときは \n を行末に加える。
フィボナッチ数
Evaluation("""
Function Fib(int n) {\n
    Assert( (n >= 0), "fib: n should be larger than or equal to 0." )\n
    Return  (n == 0) ? 0\n
     \    : (n == 1) ? 1\n
     \    : (n == 2) ? 1\n
     \    : n.isEven ? int(pow(fib((n/2)+1), 2) - pow(fib((n/2)-1), 2))\n
     \               : fib(n-1) + fib(n-2)\n
}\n\n
Function isEven(int n) { n % 2 == 0 }\n\n
#Findstr("Print(" + Chr(34) + "てすと" + Chr(34) + ")", "てすと")\n\n
Fib(35)
""", y=9)

n が偶数のとき fib(n+2) = fib(n) + fib(n+1) としないと AviSynth がフリーズ
するのでそのように変更。だが、正しい解が求められる最大値は Fib(35)  #}}} */
371名無しさん@編集中:2009/02/05(木) 23:16:33 ID:8UQo7HFA
<<370
× n が偶数のとき fib(n+2) = fib(n) + fib(n+1)
○ fib(2n) = fib(n+1)^2 - fib(n-1)^2

## 関数: {{{2
Function Evaluation(clip clp, string "block", int "y", int "guifg", string "guifont", int "font_size")
{
    y         = Default(y,         0)
    guifg     = Default(guifg,     $FFFFFF)
    #guifont   = Default(guifont,   "osaka_unicode")  #ttp://osakattf.hp.infoseek.co.jp/
    guifont   = Default(guifont,   "MS_Gothic")
    font_size = Default(font_size, 18)
 
    Global Evaluation_block = block
    Global Evaluation_Count = 0

    While("""Findstr(Evaluation_block, "\n") > 0""",
      \"""
        Global Evaluation_block = DelChr10(Evaluation_block)
        Global Evaluation_Count = Evaluation_Count + 1
      """)

    clp

    Subtitle(string(VersionString), font=guifont, size=font_size, text_color=guifg)

    Subtitle("$ " + string(block), font=guifont, size=font_size,
        \ text_color=guifg, y =font_size*(2+y), lsp=1)
    Subtitle(string(Eval(Evaluation_block)), font=guifont, size=font_size,
        \ text_color=guifg, y =font_size*(3+Evaluation_Count+y))
}
372名無しさん@編集中:2009/02/05(木) 23:18:03 ID:8UQo7HFA
Function ConsoleClip(int "columns", int "lines", int "font_size", int "guibg", int "length")
{
    columns   = Default(columns,   80)
    lines     = Default(lines,     25)
    font_size = Default(font_size, 18)
    guibg     = Default(guibg,     $000000)
    length    = Default(length,    240)

    BlankClip(length=length, width=font_size*(columns/2), height=font_size*lines, color=guibg)
}

Function DelChr10(string block, string "ffs") {
      ffs = Default(ffs, "\n")
 \    LeftStr(block, Findstr(block, ffs)-1) + MidStr(block, Findstr(block, ffs)+2)
} #}}}
###}}}
373名無しさん@編集中:2009/02/06(金) 19:12:55 ID:A1bO4z1X
GradFunkMirrorを弄くったら若干軽くなりました

function gradfunkmirror2(clip c,float"strength"){
strength=default(strength,1.2)
c
w=width
h=height
stackhorizontal(addborders(fliphorizontal(crop(0,0,16,h)),0,16,0,16),stackvertical(flipvertical(crop(0,0,w,16)),last,flipvertical(crop(0,h-16,w,16))),addborders(fliphorizontal(crop(w-16,0,16,h)),0,16,0,16))
gradfun2db(strength)
crop(16,16,-16,-16)
}

↑の出来上がりはGradFunkMirrorと同じです、ウチの環境では結構軽くなりました。
↓はGradFunkMirrorとは違う絵になるけど俺環境では↑よりも軽い

function gradfunkmirror3(clip c,float"strength"){
strength=default(strength,1.2)
c
w=width
h=height
stackhorizontal(fliphorizontal(crop(0,0,16,h)),last,fliphorizontal(crop(w-16,0,16,h)))
stackvertical(flipvertical(crop(0,0,w+32,16)),last,flipvertical(crop(0,h-16,w+32,16)))
gradfun2db(strength)
crop(16,16,-16,-16)
}
374名無しさん@編集中:2009/02/13(金) 16:32:24 ID:ZRCJdxl0
過疎化しているので修正版を上げます(入門者用 GV-MVP/GX2W DGIndex MeGUI HWインタレ AviSynthMT 2.5.7.5)

使い勝手の向上とHWデインタレ(ベクター適応)時のピクつきを改善したと思う(画質や複雑さは求めていませんのであしからず)

Setmtmode(2,0)
Auto="○" Crop="×" Crop_x=704 Crop_y=360 Range=30 BorderX="0" BorderY="0" Test=0 UTimingH=0 VTimingH=0
#-------------------------------------------------
# Auto(自動Crop)Crop(○Crop_x/y ×Source ※Auto時無効)Range(Crop感度)BorderX/Y/Test(額縁)=OFF(0):ON(1) UVTimingH(UV補正)
# ○(有効)×(無効) ※〜XXXms?.avs(?="D"(DVD)/"M"(Movie)/"A"(Anime)/""(None)) Anime & 縦464以下=bandingON BorderX/Y=Source
#-------------------------------------------------
AutoS="○"==Auto CropS="○"==Crop BorderXS="1"==BorderX BorderYS="1"==BorderY
Plugin="C:\Program Files\AviSynth 2.5\plugins+\" Audio_mp2=" Tc0 L2 2ch 48 384" Audio_ac3=" T80 3_2ch 448Kbps"
#-------------------------------------------------
LoadPlugin(Plugin+"mt_masktools-25.dll")
LoadPlugin(Plugin+"DGDecode.dll")
LoadPlugin(Plugin+"autocrop")
LoadPlugin(Plugin+"TComb.dll")
LoadPlugin(Plugin+"gradfun2db.dll")
LoadPlugin(Plugin+"AddGrainC.dll")
LoadPlugin(Plugin+"ColorYUY2_for_25.dll")
LoadPlugin(Plugin+"DeGrainMedian.dll")
LoadPlugin(Plugin+"FFT3dGPU.dll")
LoadPlugin(Plugin+"TemporalCleaner.dll")
LoadPlugin(Plugin+"TBilateral.dll")
LoadPlugin(Plugin+"FluxSmooth.dll")
LoadPlugin(Plugin+"RemoveGrainSSE3.dll")
LoadPlugin(Plugin+"warpsharp.dll")
LoadPlugin(Plugin+"NicAudio.dll")
375名無しさん@編集中:2009/02/13(金) 16:34:25 ID:ZRCJdxl0
#-------------------------------------------------
Import(Plugin+"myFunctions.avs")
Import(Plugin+"GradFun2DBmod.avsi")
Import(Plugin+"LimitedSharpenFaster.avsi")
376名無しさん@編集中:2009/02/13(金) 16:34:48 ID:ZRCJdxl0
#-------------------------------------------------
# DGIndex / READ Video_name.d2v Audio_name1.mp2 (Audio_name2.ac3) ※AVS Examples [File-Name DELAY -100msA.avs]
#-------------------------------------------------
Try{assert(false)}Catch(err_msg){err_msg = Midstr(err_msg,Findstr(err_msg,"(") + 1)
script_name = Leftstr(err_msg,strLen(err_msg) - Findstr(Revstr(err_msg),","))}
Video_name = Leftstr(script_name,Findstr(script_name,"DELAY") -2 )
Error_name = Rightstr(Video_name,Findstr(Revstr(Video_name),"\") - 1)
Video = Exist(Video_name+".d2v") ? MPEG2Source(Video_name+".d2v") : Assert(false,+Error_name+".d2v"+" : File not found")
AssumeFrameBased(Video).ComplementParity()
STR_Width=Width(Video)
STR_Height=Height(Video)
STR_Left=(STR_Width-Crop_x)/2
STR_TOP=(STR_Height-Crop_y)/2
mode = Midstr(script_name,Findstr(script_name,"avs") - 2, 1 )
Audio_Delay = Midstr(script_name,Findstr(script_name,"DELAY") + 6 )
Audio_Delay = Leftstr(Audio_Delay,Findstr(Audio_Delay,"ms") - 1 )
Audio_name1 = Video_name+Audio_mp2+" DELAY "+Audio_Delay+"ms"
Audio_name2 = Video_name+Audio_ac3+" DELAY "+Audio_Delay+"ms"
mode=="D" ? Exist(Audio_name2+".ac3") ? nop() : Assert(false,+ Error_name+Audio_ac3+" DELAY "+Audio_Delay+"ms.ac3"+" : File not found") : nop()
mode!="D" ? Exist(Audio_name1+".mp2") ? nop() : Assert(false,+ Error_name+Audio_mp2+" DELAY "+Audio_Delay+"ms.mp2"+" : File not found") : nop()
mode=="D" ? AudioDub(Video,NicAC3Source(Audio_name2+".ac3",2)) : AudioDub(Video,NicMPG123Source(Audio_name1+".mp2"))
377名無しさん@編集中:2009/02/13(金) 16:35:29 ID:ZRCJdxl0
#-------------------------------------------------
(mode=="A" || mode=="M") ? UVTimingH(UTimingH,VTimingH,false).TComb() : nop()
AutoS ? autocrop(mode=Test,wmultof=16,hmultof=8,samples=20,aspect=0,threshold=Range) : CropS ? crop(STR_Left,STR_TOP,Crop_x,Crop_y) : nop()
mode=="D" ? Filter_DVD(Test) : mode=="M" ? Filter_Movie(Test) : mode=="A" ? Filter_Anime(Test) : nop()
#-------------------------------------------------
BorderXS ? AddBorders((STR_Width - Width()) / 2, 0 ,(STR_Width - Width()) / 2, 0 ,$000000) : nop()
BorderYS ? AddBorders(0, (STR_Height - Height()) / 2, 0 ,(STR_Height - Height()) / 2,$000000) : nop()
return last
378名無しさん@編集中:2009/02/13(金) 16:36:05 ID:ZRCJdxl0
#----------------------実写-----------------------
function Filter_Movie(clip clip, Test)
{
clip= Test==1 ? subtitle(clip,"Movie",x=20,y=20) : clip
Setmtmode(2)
clip=clip.ColorYUY2(off_y=-1,off_u=0,off_v=0,cont_y=0,cont_u=0,cont_v=0,gamma_y=3,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip=clip.FrameCache(9).DeGrainMedian(2,3,1,interlaced=true)
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,sharpen=1.5,svr=0.5)
return clip
}
379名無しさん@編集中:2009/02/13(金) 16:36:37 ID:ZRCJdxl0
#---------------------アニメ----------------------
function Filter_Anime(clip clip, Test)
{
clip= Test==1 ? subtitle(clip,"Anime",x=20,y=20) : clip
Setmtmode(2)
clip= Height(clip)<464 ? GradFun2DBmod(clip,thr=1.2,mode=2,chroma=false,str=0.8,temp=50,adapt=64,radius=2,range=2,show=false) : clip
offy= Height(clip)<464 ? 0 : -1
clip=clip.ColorYUY2(off_y=offy,off_u=0,off_v=0,cont_y=15,cont_u=0,cont_v=0,gamma_y=0,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip= Height(clip)<464 ? Tweak(clip,0.0, 1.1, 0.0, 1.0, false) : Tweak(clip,0.0, 1.2, 0.0, 1.0, false)
Setmtmode(1)
clip=clip.FrameCache(9).iFilterT("TBilateral(diameterL=9,diameterC=5,sDevL=1.8,sDevC=7.0,iDevL=1.8,iDevC=7.0,kernS=2,kernI=2,gui=false)")
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=2.0,plane=3,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=0,interlaced=true,svr=0)
Setmtmode(2)
clip=clip.FrameCache(9).TemporalCleaner(3,0)
clip=clip.iFilterB("FluxSmoothT(6).LimitedSharpenFaster(ss_x=1.15,ss_y=1.15,Smode=4,strength=150,soft=-1,edgemode=1).WarpSharp(64,3,96)")
return clip
}
380名無しさん@編集中:2009/02/13(金) 17:04:26 ID:ZRCJdxl0
#---------------------DVD----------------------
function Filter_DVD(clip clip, Test)
{
clip= Test==1 ? subtitle(clip,"DVD",x=20,y=20) : clip
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,beta=1,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,svr=0)
return clip
}
381名無しさん@編集中:2009/02/15(日) 17:17:02 ID:mDW/Tdfx
>>374 たびたびすいません SetmtmodeをNicAC3Sourceで使用すると強制的に2CH(DownMix)しないと記憶保護例外で落ちてしまうので簡易修正しました

Setmtmode(2,0) # マルチチャンネル(AC3)を使用する場合は左記の「#Setmtmode(2,0)」をコメントアウトし「AC3_DownMix="×"」してから使用にする
Auto="○" Crop="×" Crop_x=704 Crop_y=360 BorderX="0" BorderY="0" Test=0 Range=30 UTimingH=0 VTimingH=0 AC3_DownMix="○"
#-------------------------------------------------
# Auto(自動Crop)Crop(○Crop_x/y ×Source ※Auto時無効)BorderX/Y/Test(額縁)=OFF(0):ON(1) Range(Crop感度)UVTimingH(UV補正)
# ○(有効)×(無効) [File-Name DELAY -100ms?.avs] 「?」= ("D"(DVD)/"M"(Movie)/"A"(Anime)/""(None)) ※BorderX/Y=Source
#-------------------------------------------------
AutoS="○"==Auto CropS="○"==Crop BorderXS="1"==BorderX BorderYS="1"==BorderY AC3_DownMixS="○"==AC3_DownMix
Plugin="C:\Program Files\AviSynth 2.5\plugins+\" Audio_mp2=" Tc0 L2 2ch 48 384" Audio_ac3=" T80 3_2ch 448Kbps"
#-------------------------------------------------
LoadPlugin(Plugin+"mt_masktools-25.dll")
LoadPlugin(Plugin+"DGDecode.dll")
LoadPlugin(Plugin+"autocrop")
LoadPlugin(Plugin+"TComb.dll")
LoadPlugin(Plugin+"gradfun2db.dll")
LoadPlugin(Plugin+"AddGrainC.dll")
LoadPlugin(Plugin+"ColorYUY2_for_25.dll")
LoadPlugin(Plugin+"DeGrainMedian.dll")
LoadPlugin(Plugin+"FFT3dGPU.dll")
LoadPlugin(Plugin+"TemporalCleaner.dll")
LoadPlugin(Plugin+"TBilateral.dll")
LoadPlugin(Plugin+"FluxSmooth.dll")
LoadPlugin(Plugin+"RemoveGrainSSE3.dll")
LoadPlugin(Plugin+"warpsharp.dll")
LoadPlugin(Plugin+"NicAudio.dll")
382名無しさん@編集中:2009/02/15(日) 17:17:54 ID:mDW/Tdfx
#-------------------------------------------------
Import(Plugin+"myFunctions.avs")
Import(Plugin+"GradFun2DBmod.avsi")
Import(Plugin+"LimitedSharpenFaster.avsi")
#-------------------------------------------------
# DGIndex / READ Video_name.d2v Audio_name1.mp2 (Audio_name2.ac3) ※AVS Examples [File-Name DELAY -100msA.avs]
#-------------------------------------------------
Try{assert(false)}Catch(err_msg){err_msg = Midstr(err_msg,Findstr(err_msg,"(") + 1)
script_name = Leftstr(err_msg,strLen(err_msg) - Findstr(Revstr(err_msg),","))}
Video_name = Leftstr(script_name,Findstr(script_name,"DELAY") -2 )
Error_name = Rightstr(Video_name,Findstr(Revstr(Video_name),"\") - 1)
Video = Exist(Video_name+".d2v") ? MPEG2Source(Video_name+".d2v") : Assert(false,+Error_name+".d2v"+" : File not found")
AssumeFrameBased(Video).ComplementParity()
st_width=Width(Video)
st_height=Height(Video)
st_left=(st_width-Crop_x)/2
st_top=(st_height-Crop_y)/2
st_ch = AC3_DownMixS ? 2 : 6
mode = Midstr(script_name,Findstr(script_name,"avs") - 2, 1 )
Audio_Delay = Midstr(script_name,Findstr(script_name,"DELAY") + 6 )
Audio_Delay = Leftstr(Audio_Delay,Findstr(Audio_Delay,"ms") - 1 )
Audio_name1 = Video_name+Audio_mp2+" DELAY "+Audio_Delay+"ms"
Audio_name2 = Video_name+Audio_ac3+" DELAY "+Audio_Delay+"ms"
mode=="D" ? Exist(Audio_name2+".ac3") ? nop() : Assert(false,+ Error_name+Audio_ac3+" DELAY "+Audio_Delay+"ms.ac3"+" : File not found") : nop()
mode!="D" ? Exist(Audio_name1+".mp2") ? nop() : Assert(false,+ Error_name+Audio_mp2+" DELAY "+Audio_Delay+"ms.mp2"+" : File not found") : nop()
383名無しさん@編集中:2009/02/15(日) 17:18:31 ID:mDW/Tdfx
#
# [NicAC3Source]で[Setmtmode]を使用する場合は強制的に2チャンネルにするか[Setmtmode]の影響を受けないようしなければ記憶保護例外でアベンドする
#
mode=="D" ? AudioDub(Video,Effect_AC3(NicAC3Source(Audio_name2+".ac3",st_ch))) : AudioDub(Video,NicMPG123Source(Audio_name1+".mp2"))
#-------------------------------------------------
(mode=="A" || mode=="M") ? UVTimingH(UTimingH,VTimingH,false).TComb() : nop()
AutoS ? autocrop(mode=Test,wmultof=16,hmultof=8,samples=20,aspect=0,threshold=Range) : CropS ? crop(st_left,st_top,Crop_x,Crop_y) : nop()
Width_S= Height()<464 ? true : false
mode=="D" ? Filter_DVD(Test) : mode=="M" ? Filter_Movie(Test) : mode=="A" ? Filter_Anime(Test,Width_S) : nop()
#-------------------------------------------------
BorderXS ? AddBorders((st_width - Width()) / 2, 0 ,(st_width - Width()) / 2, 0 ,$000000) : nop()
BorderYS ? AddBorders(0, (st_height - Height()) / 2, 0 ,(st_height - Height()) / 2,$000000) : nop()
return last
384名無しさん@編集中:2009/02/15(日) 17:18:52 ID:mDW/Tdfx
#-------------------Effect_AC3-------------------
function Effect_AC3(Audio)
{
org_ch=Audiochannels(Audio)
F_L= org_ch>=1 ? GetChannel(Audio,1).Normalize().AmplifydB(8.80) : nop()
F_C= org_ch>=2 ? GetChannel(Audio,2).Normalize().AmplifydB(8.80) : nop()
F_R= org_ch>=3 ? GetChannel(Audio,3).Normalize().AmplifydB(8.80) : nop()
S_L= org_ch>=4 ? GetChannel(Audio,4).Normalize().AmplifydB(8.80) : nop()
S_R= org_ch>=5 ? GetChannel(Audio,5).Normalize().AmplifydB(8.80) : nop()
LFE= org_ch>=6 ? GetChannel(Audio,6).Normalize().AmplifydB(8.80) : nop()
org_ch==1 ? MergeChannels(F_L) : nop()
org_ch==2 ? MergeChannels(F_L,F_C) : nop()
org_ch==3 ? MergeChannels(F_L,F_C,F_R) : nop()
org_ch==4 ? MergeChannels(F_L,F_C,F_R,S_L) : nop()
org_ch==5 ? MergeChannels(F_L,F_C,F_R,S_L,S_R) : nop()
org_ch==6 ? MergeChannels(F_L,F_C,F_R,S_L,S_R,LFE) : nop()
return last
}
385名無しさん@編集中:2009/02/15(日) 17:19:34 ID:mDW/Tdfx
#----------------------実写-----------------------
function Filter_Movie(clip clip, int "Test")
{
clip= Test==1 ? subtitle(clip,"Movie",x=650,y=20) : clip
Setmtmode(2)
clip=clip.ColorYUY2(off_y=-1,off_u=0,off_v=0,cont_y=0,cont_u=0,cont_v=0,gamma_y=3,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip=clip.FrameCache(9).DeGrainMedian(2,3,1,interlaced=true)
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,sharpen=1.5,svr=0.5)
return clip
}
386名無しさん@編集中:2009/02/15(日) 17:20:05 ID:mDW/Tdfx
#---------------------アニメ----------------------
function Filter_Anime(clip clip, int "Test", bool "Width_S")
{
clip= Test==1 ? subtitle(clip,"Anime",x=650,y=20) : clip
Setmtmode(2)
clip= Width_S ? GradFun2DBmod(clip,thr=1.2,mode=2,chroma=false,str=0.8,temp=50,adapt=64,radius=2,range=2,show=false) : clip
offy= Width_S ? 0 : -1
clip=clip.ColorYUY2(off_y=offy,off_u=0,off_v=0,cont_y=15,cont_u=0,cont_v=0,gamma_y=0,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip= Width_S ? Tweak(clip,0.0, 1.1, 0.0, 1.0, false) : Tweak(clip,0.0, 1.2, 0.0, 1.0, false)
Setmtmode(1)
clip=clip.FrameCache(9).iFilterT("TBilateral(diameterL=9,diameterC=5,sDevL=1.8,sDevC=7.0,iDevL=1.8,iDevC=7.0,kernS=2,kernI=2,gui=false)")
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=2.0,plane=3,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=0,interlaced=true,svr=0)
Setmtmode(2)
clip=clip.FrameCache(9).TemporalCleaner(3,0)
clip=clip.iFilterB("FluxSmoothT(6).LimitedSharpenFaster(ss_x=1.15,ss_y=1.15,Smode=4,strength=150,soft=-1,edgemode=1).WarpSharp(64,3,96)")
return clip
}
387名無しさん@編集中:2009/02/15(日) 17:20:37 ID:mDW/Tdfx
#---------------------DVD----------------------
function Filter_DVD(clip clip, int "Test")
{
clip= Test==1 ? subtitle(clip,"DVD",x=650,y=20) : clip
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,beta=1,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,svr=0)
return clip
}
388名無しさん@編集中:2009/02/15(日) 18:12:28 ID:mDW/Tdfx
>>381 追伸 入門者の方へ  最新の「AviSynth 2.5.8.5」にして[Setmtmode]を削除すれば問題は発生しません(NicAC3SourceのCH指定は不要) MeGUI用
389名無しさん@編集中:2009/02/17(火) 15:00:04 ID:Tw94RpEj
メモ替わりにして申し訳ないが最後に整理したので入門者の方が参考にしてくだされば幸いです(画質、難易度は除外)
(入門者用 GV-MVP/GX2W DGIndex MeGUI HWインタレ AviSynthMT 2.5.7.5 ※setmtmodeを外せばAviSynth 2.5.8.5可)
例 DGIndexで作成  バトルスターギャラクティカ.d2v バトルスターギャラクティカ Tc0 L2 2ch 48 384 DELAY 0ms.mp2
  scriptに登録(avs)  " Tc0 L2 2ch 48 384"
  script名を作成(avs) バトルスターギャラクティカ+" DELAY 0ms"+"M"+.avs
  MeGUI(Video,Audio)  バトルスターギャラクティカ DELAY 0msM.avs



Setmtmode(2,0) # マルチチャンネル(AC3)を使用する場合は左記の「#Setmtmode(2,0)」をコメントアウトし「AC3_DownMix="×"」してから使用にする
Auto="○" Crop="○" Crop_X=704 Crop_Y=480 BorderX="0" BorderY="0" Test=0 Range=30 UTimingH=0 VTimingH=0 AC3_DownMix="○"
#-------------------------------------------------
# Auto(自動Crop)Crop(○Crop_X/Y ×Source ※Auto時無効)BorderX/Y/Test(額縁)=OFF(0):ON(1) Range(Crop感度)UVTimingH(UV補正)
# ○(有効)×(無効) ※AVS Examples [File-Name DELAY -100ms?.avs]「?」= ("D"(DVD)/"M"(Movie)/"A"(Anime)/""(None)) (BorderX/Y=Source)
#-------------------------------------------------
AutoS="○"==Auto CropS="○"==Crop BorderXS="1"==BorderX BorderYS="1"==BorderY AC3_DownMixS="○"==AC3_DownMix
global Plugin="C:\Program Files\AviSynth 2.5\plugins+\" global Audio_mp2=" Tc0 L2 2ch 48 384" global Audio_ac3=" T80 3_2ch 448Kbps"
390名無しさん@編集中:2009/02/17(火) 15:00:32 ID:Tw94RpEj
#-------------------------------------------------
LoadPlugin(Plugin+"mt_masktools-25.dll")
LoadPlugin(Plugin+"DGDecode.dll")
LoadPlugin(Plugin+"autocrop")
LoadPlugin(Plugin+"TComb.dll")
LoadPlugin(Plugin+"gradfun2db.dll")
LoadPlugin(Plugin+"AddGrainC.dll")
LoadPlugin(Plugin+"ColorYUY2_for_25.dll")
LoadPlugin(Plugin+"DeGrainMedian.dll")
LoadPlugin(Plugin+"FFT3dGPU.dll")
LoadPlugin(Plugin+"TemporalCleaner.dll")
LoadPlugin(Plugin+"TBilateral.dll")
LoadPlugin(Plugin+"FluxSmooth.dll")
LoadPlugin(Plugin+"RemoveGrainSSE3.dll")
LoadPlugin(Plugin+"warpsharp.dll")
LoadPlugin(Plugin+"NicAudio.dll")
#-------------------------------------------------
Import(Plugin+"myFunctions.avs")
Import(Plugin+"GradFun2DBmod.avsi")
Import(Plugin+"LimitedSharpenFaster.avsi")
391名無しさん@編集中:2009/02/17(火) 15:00:58 ID:Tw94RpEj
#-------------------------------------------------
# MAIN
#----(READ)---------------------------------------
script_path=Script_Get()
mode = Mode_Get(script_path)
AV_Get(mode,script_path,AC3_DownMixS)
AssumeFrameBased().ComplementParity()
#----(Constant_set)-------------------------------
st_width=width()
st_height=Height()
st_left=(st_width-Crop_X)/2
st_top=(st_height-Crop_Y)/2
#----(NTSC_Filter)--------------------------------
(mode=="A" || mode=="M") ? UVTimingH(UTimingH,VTimingH,false).TComb() : nop()
#----(Crop)---------------------------------------
AutoS ? autocrop(mode=Test,wmultof=16,hmultof=8,samples=20,aspect=0,threshold=Range) : CropS ? crop(st_left,st_top,Crop_X,Crop_Y) : nop()
#----(Main_Filter)--------------------------------
mode=="D" ? Filter_DVD(Test) : mode=="M" ? Filter_Movie(Test) : mode=="A" ? Filter_Anime(Test) : nop()
#----(Border)-------------------------------------
BorderXS ? AddBorders((st_width-Width())/2,0,(st_width-Width())/2,0,$000000) : nop()
BorderYS ? AddBorders(0,(st_height-Height())/2,0,(st_height-Height())/2,$000000) : nop()
return last
#-------------------------------------------------
# END
#-------------------------------------------------
392名無しさん@編集中:2009/02/17(火) 15:01:38 ID:Tw94RpEj
#--------------------Script_Get-------------------
function Script_Get()
{
Try{assert(false)}Catch(err_msg){err_msg = Midstr(err_msg,Findstr(err_msg,"(") + 1)
script_path = Leftstr(err_msg,strLen(err_msg) - Findstr(Revstr(err_msg),","))}
return script_path
}
#---------------------Mode_Get--------------------
function Mode_Get(string "script_path")
{
mode = Midstr(script_path,Findstr(script_path,"avs") - 2, 1 )
return mode
}
#-------------------------------------------------
# DGIndex / READ Video_File.d2v Audio_File.mp2(ac3)
#-------------------------------------------------
#----------------------AV_Get---------------------
function AV_Get(string "mode", string "script_path", bool "AC3_DownMixS")
{
Video_path = Leftstr(script_path,Findstr(script_path,"DELAY") -2 )
Error_name = Rightstr(script_path,Findstr(Revstr(script_path),"\") - 1)
Video = Exist(Video_path+".d2v") ? MPEG2Source(Video_path+".d2v") : Assert(false,+Error_name+".d2v"+" : File not found")
Audio_Delay = Midstr(script_path,Findstr(script_path,"DELAY") + 6 )
Audio_Delay = Leftstr(Audio_Delay,Findstr(Audio_Delay,"ms") - 1 )
Audio_option = mode!="D" ? Audio_mp2+" DELAY "+Audio_Delay+"ms.mp2" : Audio_ac3+" DELAY "+Audio_Delay+"ms.ac3"
Exist(Video_path+Audio_option) ? nop() : Assert(false,+ Error_name+Audio_option+" : File not found")
st_ch = AC3_DownMixS ? 2 : 6
mode=="D" ? AudioDub(Video,Effect_AC3(NicAC3Source(Video_path+Audio_option,st_ch))) : AudioDub(Video,NicMPG123Source(Video_path+Audio_option))
return last
}
393名無しさん@編集中:2009/02/17(火) 15:02:16 ID:Tw94RpEj
#--------------------Effect_AC3------------------
function Effect_AC3(Audio)
{
org_ch=Audiochannels(Audio)
F_L= org_ch>=1 ? GetChannel(Audio,1).Normalize().AmplifydB(8.80) : nop()
F_C= org_ch>=2 ? GetChannel(Audio,2).Normalize().AmplifydB(8.80) : nop()
F_R= org_ch>=3 ? GetChannel(Audio,3).Normalize().AmplifydB(8.80) : nop()
S_L= org_ch>=4 ? GetChannel(Audio,4).Normalize().AmplifydB(8.80) : nop()
S_R= org_ch>=5 ? GetChannel(Audio,5).Normalize().AmplifydB(8.80) : nop()
LFE= org_ch>=6 ? GetChannel(Audio,6).Normalize().AmplifydB(8.80) : nop()
org_ch==1 ? MergeChannels(F_L) : nop()
org_ch==2 ? MergeChannels(F_L,F_C) : nop()
org_ch==3 ? MergeChannels(F_L,F_C,F_R) : nop()
org_ch==4 ? MergeChannels(F_L,F_C,F_R,S_L) : nop()
org_ch==5 ? MergeChannels(F_L,F_C,F_R,S_L,S_R) : nop()
org_ch==6 ? MergeChannels(F_L,F_C,F_R,S_L,S_R,LFE) : nop()
return last
}
#-------------------Filter_Movie------------------
function Filter_Movie(clip clip, int "Test")
{
clip= Test==1 ? subtitle(clip,"Movie",x=650,y=20) : clip
Setmtmode(2)
clip=clip.ColorYUY2(off_y=-1,off_u=0,off_v=0,cont_y=0,cont_u=0,cont_v=0,gamma_y=3,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip=clip.FrameCache(9).DeGrainMedian(2,3,1,interlaced=true)
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,sharpen=1.5,svr=0.5)
return clip
}
394名無しさん@編集中:2009/02/17(火) 15:02:40 ID:Tw94RpEj
#-------------------Filter_Anime------------------
function Filter_Anime(clip clip, int "Test")
{
clip= Test==1 ? subtitle(clip,"Anime",x=650,y=20) : clip
Width_S= Height(clip)<464 ? true : false
Setmtmode(2)
clip=Width_S ? GradFun2DBmod(clip,thr=1.2,mode=2,chroma=false,str=0.8,temp=50,adapt=64,radius=2,range=2,show=false) : clip
offy=Width_S ? 0 : -1
clip=clip.ColorYUY2(off_y=offy,off_u=0,off_v=0,cont_y=15,cont_u=0,cont_v=0,gamma_y=0,opt="1-254",matrix="rec601s",debug=0,interlaced=true)
clip=Width_S ? Tweak(clip,0.0, 1.1, 0.0, 1.0, false) : Tweak(clip,0.0, 1.2, 0.0, 1.0, false)
Setmtmode(1)
clip=clip.FrameCache(9).iFilterT("TBilateral(diameterL=9,diameterC=5,sDevL=1.8,sDevC=7.0,iDevL=1.8,iDevC=7.0,kernS=2,kernI=2,gui=false)")
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=2.0,plane=3,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=0,interlaced=true,svr=0)
Setmtmode(2)
clip=clip.FrameCache(9).TemporalCleaner(3,0)
clip=clip.iFilterB("FluxSmoothT(6).LimitedSharpenFaster(ss_x=1.15,ss_y=1.15,Smode=4,strength=150,soft=-1,edgemode=1).WarpSharp(64,3,96)")
return clip
}
#-------------------Filter_DVD--------------------
function Filter_DVD(clip clip, int "Test")
{
clip= Test==1 ? subtitle(clip,"DVD",x=650,y=20) : clip
Setmtmode(5)
clip=clip.FrameCache(9).fft3dGPU(sigma=1.8,beta=1,plane=4,bw=4,bh=2,ow=2,oh=1,bt=4,mode=1,wintype=2,interlaced=true,svr=0)
return clip
}
395名無しさん@編集中:2009/02/18(水) 17:39:35 ID:xWYeZh6e
.
396名無しさん@編集中:2009/02/18(水) 17:39:35 ID:xWYeZh6e
.
397名無しさん@編集中:2009/02/18(水) 17:39:36 ID:xWYeZh6e
.
398名無しさん@編集中:2009/02/18(水) 17:39:36 ID:xWYeZh6e
.
399名無しさん@編集中:2009/02/18(水) 17:39:37 ID:xWYeZh6e
.
400名無しさん@編集中:2009/02/18(水) 17:39:38 ID:xWYeZh6e
.
401名無しさん@編集中:2009/02/18(水) 17:39:42 ID:xWYeZh6e
.
402名無しさん@編集中:2009/02/18(水) 17:39:58 ID:xWYeZh6e
.
403名無しさん@編集中:2009/02/18(水) 17:39:59 ID:xWYeZh6e
.
404名無しさん@編集中:2009/02/18(水) 18:02:44 ID:mJiTBtm4
なんか板全体が荒らされてるみたいね
とりあえずDAT落ちしないようage
405名無しさん@編集中:2009/02/18(水) 18:51:39 ID:xWYeZh6e
.
406名無しさん@編集中:2009/02/18(水) 18:51:39 ID:xWYeZh6e
.
407名無しさん@編集中:2009/02/18(水) 18:51:39 ID:xWYeZh6e
.
408名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
409名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
410名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
411名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
412名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
413名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
414名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
415名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
416名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
417名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
418名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
419名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
420名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
421名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
422名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
423名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
424名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
425名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
426名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
427名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
428名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
429名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
430名無しさん@編集中:2009/02/18(水) 18:51:40 ID:xWYeZh6e
.
431名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
432名無しさん@編集中:2009/02/18(水) 18:51:41 ID:xWYeZh6e
.
433名無しさん@編集中:2009/02/18(水) 18:51:42 ID:xWYeZh6e
.
434名無しさん@編集中:2009/02/18(水) 18:51:42 ID:xWYeZh6e
.
435名無しさん@編集中:2009/02/18(水) 18:51:42 ID:xWYeZh6e
.
436名無しさん@編集中:2009/02/18(水) 18:51:42 ID:xWYeZh6e
.
437名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
438名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
439名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
440名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
441名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
442名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
443名無しさん@編集中:2009/02/18(水) 18:51:43 ID:xWYeZh6e
.
444名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
445名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
446名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
447名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
448名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
449名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
450名無しさん@編集中:2009/02/18(水) 18:51:44 ID:xWYeZh6e
.
451名無しさん@編集中:2009/02/18(水) 18:51:45 ID:xWYeZh6e
.
452名無しさん@編集中:2009/02/18(水) 18:51:45 ID:xWYeZh6e
.
453名無しさん@編集中:2009/02/18(水) 18:51:46 ID:xWYeZh6e
.
454名無しさん@編集中:2009/02/18(水) 18:51:46 ID:xWYeZh6e
.
455名無しさん@編集中:2009/02/18(水) 18:51:47 ID:xWYeZh6e
.
456名無しさん@編集中:2009/02/18(水) 18:51:47 ID:xWYeZh6e
.
457名無しさん@編集中:2009/02/18(水) 18:51:47 ID:xWYeZh6e
.
458名無しさん@編集中:2009/02/18(水) 18:51:48 ID:xWYeZh6e
.
459名無しさん@編集中:2009/02/18(水) 18:51:48 ID:xWYeZh6e
.
460名無しさん@編集中:2009/02/18(水) 18:51:49 ID:xWYeZh6e
.
461名無しさん@編集中:2009/02/18(水) 18:51:49 ID:xWYeZh6e
.
462名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
463名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
464名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
465名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
466名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
467名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
468名無しさん@編集中:2009/02/18(水) 18:51:50 ID:xWYeZh6e
.
469名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
470名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
471名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
472名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
473名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
474名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
475名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
476名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
477名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
478名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
479名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
480名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
481名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
482名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
483名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
484名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
485名無しさん@編集中:2009/02/18(水) 18:51:51 ID:xWYeZh6e
.
486名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
487名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
488名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
489名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
490名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
491名無しさん@編集中:2009/02/18(水) 18:51:52 ID:xWYeZh6e
.
492名無しさん@編集中:2009/02/18(水) 18:51:53 ID:xWYeZh6e
.
493名無しさん@編集中:2009/02/18(水) 18:51:53 ID:xWYeZh6e
.
494名無しさん@編集中:2009/02/18(水) 18:51:53 ID:xWYeZh6e
.
495名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
496名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
497名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
498名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
499名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
500名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
501名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
502名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
503名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
504名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
505名無しさん@編集中:2009/02/18(水) 18:51:54 ID:xWYeZh6e
.
506名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
507名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
508名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
509名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
510名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
511名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
512名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
513名無しさん@編集中:2009/02/18(水) 18:51:55 ID:xWYeZh6e
.
514名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
515名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
516名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
517名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
518名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
519名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
520名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
521名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
522名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
523名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
524名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
525名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
526名無しさん@編集中:2009/02/18(水) 18:51:56 ID:xWYeZh6e
.
527名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
528名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
529名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
530名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
531名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
532名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
533名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
534名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
535名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
536名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
537名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
538名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
539名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
540名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
541名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
542名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
543名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
544名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
545名無しさん@編集中:2009/02/18(水) 18:51:57 ID:xWYeZh6e
.
546名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
547名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
548名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
549名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
550名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
551名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
552名無しさん@編集中:2009/02/18(水) 18:51:58 ID:xWYeZh6e
.
553名無しさん@編集中:2009/02/18(水) 18:51:59 ID:xWYeZh6e
.
554名無しさん@編集中:2009/02/18(水) 18:51:59 ID:xWYeZh6e
.
555名無しさん@編集中:2009/02/18(水) 18:51:59 ID:xWYeZh6e
.
556名無しさん@編集中:2009/02/18(水) 18:51:59 ID:xWYeZh6e
.
557名無しさん@編集中:2009/02/18(水) 18:52:00 ID:xWYeZh6e
.
558名無しさん@編集中:2009/02/18(水) 18:52:00 ID:xWYeZh6e
.
559名無しさん@編集中:2009/02/18(水) 18:52:00 ID:xWYeZh6e
.
560名無しさん@編集中:2009/02/18(水) 18:52:00 ID:xWYeZh6e
.
561名無しさん@編集中:2009/02/18(水) 18:52:00 ID:xWYeZh6e
.
562名無しさん@編集中:2009/02/18(水) 18:52:01 ID:xWYeZh6e
.
563名無しさん@編集中:2009/02/18(水) 18:52:01 ID:xWYeZh6e
.
564名無しさん@編集中:2009/02/18(水) 18:52:01 ID:xWYeZh6e
.
565名無しさん@編集中:2009/02/18(水) 18:52:01 ID:xWYeZh6e
.
566名無しさん@編集中:2009/02/18(水) 18:52:01 ID:xWYeZh6e
.
567名無しさん@編集中:2009/02/18(水) 18:52:02 ID:xWYeZh6e
.
568名無しさん@編集中:2009/02/18(水) 18:52:02 ID:xWYeZh6e
.
569名無しさん@編集中:2009/02/18(水) 18:52:02 ID:xWYeZh6e
.
570名無しさん@編集中:2009/02/18(水) 18:52:03 ID:xWYeZh6e
.
571名無しさん@編集中:2009/02/18(水) 18:52:03 ID:xWYeZh6e
.
572名無しさん@編集中:2009/02/18(水) 18:52:03 ID:xWYeZh6e
.
573名無しさん@編集中:2009/02/18(水) 18:52:03 ID:xWYeZh6e
.
574名無しさん@編集中:2009/02/18(水) 18:52:04 ID:xWYeZh6e
.
575名無しさん@編集中:2009/02/18(水) 18:52:04 ID:xWYeZh6e
.
576名無しさん@編集中:2009/02/18(水) 18:52:06 ID:xWYeZh6e
.
577名無しさん@編集中:2009/02/18(水) 18:52:07 ID:xWYeZh6e
.
578名無しさん@編集中:2009/02/18(水) 18:52:07 ID:xWYeZh6e
.
579名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
580名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
581名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
582名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
583名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
584名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
585名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
586名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
587名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
588名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
589名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
590名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
591名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
592名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
593名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
594名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
595名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
596名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
597名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
598名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
599名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
600名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
601名無しさん@編集中:2009/02/18(水) 18:52:10 ID:xWYeZh6e
.
602名無しさん@編集中:2009/02/18(水) 18:52:11 ID:xWYeZh6e
.
603名無しさん@編集中:2009/02/18(水) 18:52:09 ID:xWYeZh6e
.
604名無しさん@編集中:2009/02/18(水) 18:52:11 ID:xWYeZh6e
.
605名無しさん@編集中:2009/02/18(水) 18:52:11 ID:xWYeZh6e
.
606名無しさん@編集中:2009/02/18(水) 18:52:11 ID:xWYeZh6e
.
607名無しさん@編集中:2009/02/18(水) 18:52:12 ID:xWYeZh6e
.
608名無しさん@編集中:2009/02/18(水) 18:52:12 ID:xWYeZh6e
.
609名無しさん@編集中:2009/02/18(水) 18:52:12 ID:xWYeZh6e
.
610名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
611名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
612名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
613名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
614名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
615名無しさん@編集中:2009/02/18(水) 18:52:13 ID:xWYeZh6e
.
616名無しさん@編集中:2009/02/18(水) 18:52:15 ID:xWYeZh6e
.
617名無しさん@編集中:2009/02/18(水) 18:52:15 ID:xWYeZh6e
.
618名無しさん@編集中:2009/02/18(水) 18:52:15 ID:xWYeZh6e
.
619名無しさん@編集中:2009/02/18(水) 18:52:15 ID:xWYeZh6e
.
620名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
621名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
622名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
623名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
624名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
625名無しさん@編集中:2009/02/18(水) 18:52:16 ID:xWYeZh6e
.
626名無しさん@編集中:2009/02/18(水) 18:52:18 ID:xWYeZh6e
.
627名無しさん@編集中:2009/02/18(水) 18:52:18 ID:xWYeZh6e
.
628名無しさん@編集中:2009/02/18(水) 18:52:18 ID:xWYeZh6e
.
629名無しさん@編集中:2009/02/18(水) 18:52:18 ID:xWYeZh6e
.
630名無しさん@編集中:2009/02/18(水) 18:52:18 ID:xWYeZh6e
.
631名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
632名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
633名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
634名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
635名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
636名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
637名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
638名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
639名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
640名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
641名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
642名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
643名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
644名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
645名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
646名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
647名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
648名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
649名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
650名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
651名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
652名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
653名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
654名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
655名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
656名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
657名無しさん@編集中:2009/02/18(水) 18:52:20 ID:xWYeZh6e
.
658名無しさん@編集中:2009/02/18(水) 18:52:21 ID:xWYeZh6e
.
659名無しさん@編集中:2009/02/18(水) 18:52:21 ID:xWYeZh6e
.
660名無しさん@編集中:2009/02/18(水) 18:52:21 ID:xWYeZh6e
.
661名無しさん@編集中:2009/02/18(水) 18:52:21 ID:xWYeZh6e
.
662名無しさん@編集中:2009/02/18(水) 18:52:19 ID:xWYeZh6e
.
663名無しさん@編集中:2009/02/18(水) 18:52:21 ID:xWYeZh6e
.
664名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
665名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
666名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
667名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
668名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
669名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
670名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
671名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
672名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
673名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
674名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
675名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
676名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
677名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
678名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
679名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
680名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
681名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
682名無しさん@編集中:2009/02/18(水) 18:52:22 ID:xWYeZh6e
.
683名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
684名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
685名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
686名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
687名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
688名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
689名無しさん@編集中:2009/02/18(水) 18:52:23 ID:xWYeZh6e
.
690名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
691名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
692名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
693名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
694名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
695名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
696名無しさん@編集中:2009/02/18(水) 18:52:24 ID:xWYeZh6e
.
697名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
698名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
699名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
700名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
701名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
702名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
703名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
704名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
705名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
706名無しさん@編集中:2009/02/18(水) 18:52:25 ID:xWYeZh6e
.
707名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
708名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
709名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
710名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
711名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
712名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
713名無しさん@編集中:2009/02/18(水) 18:52:26 ID:xWYeZh6e
.
714名無しさん@編集中:2009/02/18(水) 18:52:27 ID:xWYeZh6e
.
715名無しさん@編集中:2009/02/18(水) 18:52:27 ID:xWYeZh6e
.
716名無しさん@編集中:2009/02/18(水) 18:52:28 ID:xWYeZh6e
.
717名無しさん@編集中:2009/02/18(水) 18:52:28 ID:xWYeZh6e
.
718名無しさん@編集中:2009/02/18(水) 18:52:28 ID:xWYeZh6e
.
719名無しさん@編集中:2009/02/18(水) 18:52:29 ID:xWYeZh6e
.
720名無しさん@編集中:2009/02/18(水) 18:52:30 ID:xWYeZh6e
.
721名無しさん@編集中:2009/02/18(水) 18:52:30 ID:xWYeZh6e
.
722名無しさん@編集中:2009/02/18(水) 18:52:31 ID:xWYeZh6e
.
723名無しさん@編集中:2009/02/18(水) 18:52:32 ID:xWYeZh6e
.
724名無しさん@編集中:2009/02/18(水) 18:52:35 ID:xWYeZh6e
.
725名無しさん@編集中:2009/02/18(水) 18:52:35 ID:xWYeZh6e
.
726名無しさん@編集中:2009/02/18(水) 18:52:36 ID:xWYeZh6e
.
727名無しさん@編集中:2009/02/18(水) 18:52:36 ID:xWYeZh6e
.
728名無しさん@編集中:2009/02/18(水) 18:52:36 ID:xWYeZh6e
.
729名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
730名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
731名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
732名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
733名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
734名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
735名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
736名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
737名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
738名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
739名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
740名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
741名無しさん@編集中:2009/02/18(水) 18:52:37 ID:xWYeZh6e
.
742名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
743名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
744名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
745名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
746名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
747名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
748名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
749名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
750名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
751名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
752名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
753名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
754名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
755名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
756名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
757名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
758名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
759名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
760名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
761名無しさん@編集中:2009/02/18(水) 18:52:38 ID:xWYeZh6e
.
762名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
763名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
764名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
765名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
766名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
767名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
768名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
769名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
770名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
771名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
772名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
773名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
774名無しさん@編集中:2009/02/18(水) 18:52:39 ID:xWYeZh6e
.
775名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
776名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
777名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
778名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
779名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
780名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
781名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
782名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
783名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
784名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
785名無しさん@編集中:2009/02/18(水) 18:52:40 ID:xWYeZh6e
.
786名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
787名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
788名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
789名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
790名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
791名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
792名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
793名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
794名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
795名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
796名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
797名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
798名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
799名無しさん@編集中:2009/02/18(水) 18:52:42 ID:xWYeZh6e
.
800名無しさん@編集中:2009/02/18(水) 18:52:41 ID:xWYeZh6e
.
801名無しさん@編集中:2009/02/18(水) 18:52:42 ID:xWYeZh6e
.
802名無しさん@編集中:2009/02/18(水) 18:52:42 ID:xWYeZh6e
.
803名無しさん@編集中:2009/02/18(水) 18:52:42 ID:xWYeZh6e
.
804名無しさん@編集中:2009/02/18(水) 18:52:42 ID:xWYeZh6e
.
805名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
806名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
807名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
808名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
809名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
810名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
811名無しさん@編集中:2009/02/18(水) 18:52:43 ID:xWYeZh6e
.
812名無しさん@編集中:2009/02/18(水) 18:52:44 ID:xWYeZh6e
.
813名無しさん@編集中:2009/02/18(水) 18:52:44 ID:xWYeZh6e
.
814名無しさん@編集中:2009/02/18(水) 18:52:44 ID:xWYeZh6e
.
815名無しさん@編集中:2009/02/18(水) 18:52:44 ID:xWYeZh6e
.
816名無しさん@編集中:2009/02/18(水) 18:52:44 ID:xWYeZh6e
.
817名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
818名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
819名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
820名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
821名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
822名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
823名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
824名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
825名無しさん@編集中:2009/02/18(水) 18:52:45 ID:xWYeZh6e
.
826名無しさん@編集中:2009/02/18(水) 18:52:46 ID:xWYeZh6e
.
827名無しさん@編集中:2009/02/18(水) 18:52:46 ID:xWYeZh6e
.
828名無しさん@編集中:2009/02/18(水) 18:52:47 ID:xWYeZh6e
.
829名無しさん@編集中:2009/02/18(水) 18:52:47 ID:xWYeZh6e
.
830名無しさん@編集中:2009/02/18(水) 18:52:47 ID:xWYeZh6e
.
831名無しさん@編集中:2009/02/18(水) 18:52:47 ID:xWYeZh6e
.
832名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
833名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
834名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
835名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
836名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
837名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
838名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
839名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
840名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
841名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
842名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
843名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
844名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
845名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
846名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
847名無しさん@編集中:2009/02/18(水) 18:52:49 ID:xWYeZh6e
.
848名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
849名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
850名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
851名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
852名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
853名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
854名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
855名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
856名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
857名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
858名無しさん@編集中:2009/02/18(水) 18:52:50 ID:xWYeZh6e
.
859名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
860名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
861名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
862名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
863名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
864名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
865名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
866名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
867名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
868名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
869名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
870名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
871名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
872名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
873名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
874名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
875名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
876名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
877名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
878名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
879名無しさん@編集中:2009/02/18(水) 18:52:48 ID:xWYeZh6e
.
880名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
881名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
882名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
883名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
884名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
885名無しさん@編集中:2009/02/18(水) 18:52:51 ID:xWYeZh6e
.
886名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
887名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
888名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
889名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
890名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
891名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
892名無しさん@編集中:2009/02/18(水) 18:52:52 ID:xWYeZh6e
.
893名無しさん@編集中:2009/02/18(水) 18:52:53 ID:xWYeZh6e
.
894名無しさん@編集中:2009/02/18(水) 18:52:53 ID:xWYeZh6e
.
895名無しさん@編集中:2009/02/18(水) 18:52:53 ID:xWYeZh6e
.
896名無しさん@編集中:2009/02/18(水) 18:52:53 ID:xWYeZh6e
.
897名無しさん@編集中:2009/02/18(水) 18:52:54 ID:xWYeZh6e
.
898名無しさん@編集中:2009/02/18(水) 18:52:54 ID:xWYeZh6e
.
899名無しさん@編集中:2009/02/18(水) 18:52:54 ID:xWYeZh6e
.
900名無しさん@編集中:2009/02/18(水) 18:52:54 ID:xWYeZh6e
.
901名無しさん@編集中:2009/02/18(水) 18:52:54 ID:xWYeZh6e
.
902名無しさん@編集中:2009/02/18(水) 18:52:55 ID:xWYeZh6e
.
903名無しさん@編集中:2009/02/18(水) 18:52:55 ID:xWYeZh6e
.
904名無しさん@編集中:2009/02/18(水) 18:52:55 ID:xWYeZh6e
.
905名無しさん@編集中:2009/02/18(水) 18:52:55 ID:xWYeZh6e
.
906名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
907名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
908名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
909名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
910名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
911名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
912名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
913名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
914名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
915名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
916名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
917名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
918名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
919名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
920名無しさん@編集中:2009/02/18(水) 18:52:56 ID:xWYeZh6e
.
921名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
922名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
923名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
924名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
925名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
926名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
927名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
928名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
929名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
930名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
931名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
932名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
933名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
934名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
935名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
936名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
937名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
938名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
939名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
940名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
941名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
942名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
943名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
944名無しさん@編集中:2009/02/18(水) 18:52:57 ID:xWYeZh6e
.
945名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
946名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
947名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
948名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
949名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
950名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
951名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
952名無しさん@編集中:2009/02/18(水) 18:52:58 ID:xWYeZh6e
.
953名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
954名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
955名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
956名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
957名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
958名無しさん@編集中:2009/02/18(水) 18:52:59 ID:xWYeZh6e
.
959名無しさん@編集中:2009/02/18(水) 18:53:00 ID:xWYeZh6e
.
960名無しさん@編集中:2009/02/18(水) 18:53:00 ID:xWYeZh6e
.
961名無しさん@編集中:2009/02/18(水) 18:53:00 ID:xWYeZh6e
.
962名無しさん@編集中:2009/02/18(水) 18:53:00 ID:xWYeZh6e
.
963名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
964名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
965名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
966名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
967名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
968名無しさん@編集中:2009/02/18(水) 18:53:01 ID:xWYeZh6e
.
969名無しさん@編集中:2009/02/18(水) 18:53:02 ID:xWYeZh6e
.
970名無しさん@編集中:2009/02/18(水) 18:53:02 ID:xWYeZh6e
.
971名無しさん@編集中:2009/02/18(水) 18:53:02 ID:xWYeZh6e
.
972名無しさん@編集中:2009/02/18(水) 18:53:03 ID:xWYeZh6e
.
973名無しさん@編集中:2009/02/18(水) 18:53:03 ID:xWYeZh6e
.
974名無しさん@編集中:2009/02/18(水) 18:53:03 ID:xWYeZh6e
.
975名無しさん@編集中:2009/02/18(水) 18:53:04 ID:xWYeZh6e
.
976名無しさん@編集中:2009/02/18(水) 18:53:04 ID:xWYeZh6e
.
977名無しさん@編集中:2009/02/18(水) 18:53:04 ID:xWYeZh6e
.
978名無しさん@編集中:2009/02/18(水) 18:53:04 ID:xWYeZh6e
.
979名無しさん@編集中:2009/02/18(水) 18:53:05 ID:xWYeZh6e
.
980名無しさん@編集中:2009/02/18(水) 18:53:05 ID:xWYeZh6e
.
981名無しさん@編集中:2009/02/18(水) 18:53:05 ID:xWYeZh6e
.
982名無しさん@編集中:2009/02/18(水) 18:53:06 ID:xWYeZh6e
.
983名無しさん@編集中:2009/02/18(水) 18:53:06 ID:xWYeZh6e
.
984名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
985名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
986名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
987名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
988名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
989名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
990名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
991名無しさん@編集中:2009/02/18(水) 18:53:07 ID:xWYeZh6e
.
992名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
993名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
994名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
995名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
996名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
997名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
998名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
999名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
1000名無しさん@編集中:2009/02/18(水) 18:53:08 ID:xWYeZh6e
.
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。