スポンサーサイト

 --, -- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PulldownMerge関数の端数処理について

 13, 2015 18:40
PulldownMerge は、各周期ごとに解除パターンが 2 通りあることを利用して DoubleWeave().Pulldown(x,y) のクリップを Merge する関数です。
Merge には、にわとり遊びさんの FlexibleMerge を使用して高画質化を狙います。

今回の記事では、DoubleWeave().Pulldown(x,y) の端数処理(終端のフレーム)が周期ごとに異なる事を考慮し、補正する為のテストをしたので結果をご紹介します。

まずは、以下が全パターンのテストケースです。

IPPPI = getClip_pulldown23().Trim(103,0)
IIPPP = getClip_pulldown23().Trim(102,0)
PIIPP = getClip_pulldown23().Trim(101,0)
PPIIP = getClip_pulldown23().Trim(100,0)
PPPII = getClip_pulldown23().Trim(104,0)

# mode=1
IPPPI_0=IPPPI.Trim(0,099)#縞
IPPPI_1=IPPPI.Trim(0,100)#重複
IPPPI_2=IPPPI.Trim(0,101)
IPPPI_3=IPPPI.Trim(0,102)
IPPPI_4=IPPPI.Trim(0,103)

# mode=2
IIPPP_0=IIPPP.Trim(0,099)
IIPPP_1=IIPPP.Trim(0,100)#縞
IIPPP_2=IIPPP.Trim(0,101)#重複
IIPPP_3=IIPPP.Trim(0,102)
IIPPP_4=IIPPP.Trim(0,103)

# mode=3
PIIPP_0=PIIPP.Trim(0,099)
PIIPP_1=PIIPP.Trim(0,100)
PIIPP_2=PIIPP.Trim(0,101)#縞
PIIPP_3=PIIPP.Trim(0,102)#重複
PIIPP_4=PIIPP.Trim(0,103)

# mode=4
PPIIP_0=PPIIP.Trim(0,099)
PPIIP_1=PPIIP.Trim(0,100)
PPIIP_2=PPIIP.Trim(0,101)
PPIIP_3=PPIIP.Trim(0,102)#縞
PPIIP_4=PPIIP.Trim(0,103)#重複

# mode=5
PPPII_0=PPPII.Trim(0,099)#重複
PPPII_1=PPPII.Trim(0,100)
PPPII_2=PPPII.Trim(0,101)
PPPII_3=PPPII.Trim(0,102)
PPPII_4=PPPII.Trim(0,103)#縞

return last

function getClip_pulldown23() {
B=BlankClip(300, 1440, 1080, "YV12", 29.970, color=$0000ff)
T=BlankClip(300, 1440, 1080, "YV12", 29.970, color=$ff0000)
Interleave(B,T)
ScriptClip("""SubTitle(String(Current_Frame),size=128)""")
SeparateFields()
SelectEvery(8,0,1,2,3,2,5,4,7,6,7)
Weave()
}



PulldownCheck では、各 mode ごとに終端縞が発生するケースを割り出し、該当のフレームを削除します。
また、重複フレームがあるパターンも存在しているので、こちらも同様に処理します。
図は解除後のフレーム数のマトリクスです。

pulldowncheck_adjustoff.gif



上記を前提とした上で、adjest=true の場合は、フレーム水増しをして、どのパターンでも均一のフレーム数になるよう補正をかけています。

pulldowncheck_adjuston.gif





関連記事
PulldownMerge関数 (11/13 17:28更新)



スポンサーサイト

Tag:PulldownMerge

COMMENT - 0



WHAT'S NEW?

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。