於是開貼統一解釋一下 (順便正好最近QQ用不了,就別再來單獨問我了…)
代码: 全选
0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4
a a a b b c c c d d a a a b b c c c d d
a b c d a b c d
1. bob到60fps,上面這個幀序列裡第一行就是bob之後的幀序號,因為ivtc_txt60mc裡是在bob之後按5幀一組進行組合(而不是按照24t的5幀即bob之後的10幀),所以依然按照0~4而不是0~9來編號;
2. A-B-C-D的3:2 pulldown以frame_ref=0來計算的話,單個cycle內的場序應該是AtAb-AtBb-BtCb-CtCb-DtDb(t為top,b為bottom),直接進行bob之後(按照正確的frame_ref來設置時),得到的單個cycle應該是A-A-A-B-B-C-C-C-D-D,上面的第二行就是24t背景直接bob之後得到的幀序列。如果是每幀都運動的a-b-c-d 24t序列,這裡得到的是jerky的背景。一般來說即使bob是mc的,這種3:2的bob出來結果也不會是平滑的;
3. 現在的結果(a-a-a-b-b-c-c-c-d-d)可以簡單地分成5幀一組,即0-1-2/3-4(按照第一行的序號),需要得到的結果應該是a-b-c-d以保證背景的24t不會jerky,同時取樣的間隔應該等距以保證前景的跑馬燈也不jerky。於是用mvtools插補出3-4兩幀的inter frame,由於3與4背景相同,背景插幀結果仍然相同,只是得到跑馬燈的插值,相當於第3.5幀。取每個0~4序列的第1幀與這個插補的第3.5幀,背景得到的是a-b-c-d序列,而前景仍然是等距取樣的(相當於對跑馬燈做60fps->120fps->24fps),即上面表格裡第三行的結果。
至於為什麼插補跑馬燈部分而不是插補背景的24t,這是因為24t本身單場序列是A-A-A-B-B-C-C-C-D-D,如果插補的話是通過沒有變化的幀得到一個非動態的結果,譬如對這個序列bob之後再插中間幀得到的是A-a-A-a-A-ab-B-b-B-bc-C-c-C-c-C-cd-D-d-D-da,而前景30i每個場都是動態,bob之後再插中間幀得到的是A-ab-B-bc-C-cd-D-de-E-ef-F-fg-G-gh-H-hi-I-ij-J-ja。其中大寫字母為bob過程本身的場(假設bob本身幾乎不改變場的動態情況,實際上這也符合一般情況),小寫字母為對bob後的60p再插值到120p時插補的幀。由於背景插補之後每5幀內第3幀和第4幀是相同的,對這兩幀進行插補得到的結果背景部分幾乎和原來的第3/4幀完全一致,而畫面損失更小。當然對這個24t先bob,然後decimate到48p,然後再對48p通過插補的方式等距取背景,而非等距取前景的方式也是可行的,但是這樣的話背景的部分幀與前景都需要根據有差異的畫面插補出動態的部分,而且背景仍然是保持幾幀一動的狀態,反倒是被動態插值的那些幀畫面損失較大,有愛的可以自己研究一下。