史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   多媒體影音轉檔燒錄技術文件 (http://forum.slime.com.tw/f129.html)
-   -   AVS自動偵測並記錄交錯畫格AVS自動偵測並記錄交錯畫格 V2 (http://forum.slime.com.tw/thread169464.html)

psac 2006-03-02 05:24 AM

AVS自動偵測並記錄交錯畫格AVS自動偵測並記錄交錯畫格 V2
 
最近做手動IVTC,做完之後實在懶得檢查,就弄了個自動檢查的AVS指令碼。這個指令碼是受到某帖子裡面某大大回覆的啟發,改進了AVS我的文件的ConditionalFilter說明中的指令碼,寫出來的。去掉了原指令碼中關於畫格是否有動態的判定、並且只記錄被 判定為交錯的畫格。
LoadPlugin("F:\AviSynthPlugins\decomb.dll")

v=avisource("xxx.avi")

global sep="."
global combedthreshold=70

function CombingInfo(clip c)
{
file = "interlace.log"
global clip = c
c=SeparateFields(c)
c=c.Blur(0.0,1.58).Blur(0.0,1.58).Blur(0.0,1.58).Blur(0.0,1.58)
c=c.Blur(0.0,1.58).Blur(0.0,1.58).Blur(0.0,1.58)
c=c.Blur(0.0,1.58).Blur(0.0,1.58)
c=c.Blur(0.0,1.58)
c=weave(c)
c = FrameEvaluate(c, "global a = IsCombed(clip, combedthreshold)")
c = WriteFileIf(c, file, "a==true", "current_frame", "sep", "a")
return c
}
CombingInfo(v)

說明:
1.上面用紅色標記的v是片源,什麼源都行,mpeg2source、vfapi(記得轉成YV12)、AVISOURCE等等的。
2.需要修改的參數只有combedthreshold,指定被判定為交錯畫格的閾值,跟telecine的vthresh完全一樣。這個值越小,好畫格被判定為交錯的可能性越大,結果過多,篩選起來困難;值越大,壞畫格被判定為非交錯的可能性越大,造成本來交 錯的畫格發現不了。自己根據片子調整吧~滅哈哈哈哈~~~~~~~~我做的交響詩篇取70這個值剛好。
順便說一句,AVS我的文件中ConditionalFilter的例子裡面,這個值用了25,我覺得太小,很多好畫格都會被判定為交錯;Decomb手冊裡面Telecine中的vthresh的預設值是50,這個值還是比較合適的,能夠盡量避免濫殺無辜並且 不放過交錯畫格。

組態好指令碼之後,只要載入VDM,按播放鍵從頭到尾播放一遍,被判定為交錯的畫格就會被記錄在當前目錄的interlace.log這個文件中。開啟這個文件會看到類似下面的東西: 引用
32268.true
32375.true
32871.true
33048.true
33307.true
33564.true

其中,前半部分是被判定為交錯畫格的畫格號,後半部分不用管。這些就是被指令碼判定為交錯的畫格了,好好檢查吧~

注意事項:
1.輸入的片源一定要是YV12或者是YUY2的,否則IsCombed會不吃。如果通過VFAPI載入的片源,片源的顏色就是RGB,並且畫面是反的,要在「CombingInfo(v)」之前通過FlipVertical()將畫面轉正並用Conve rtToYV12轉換為YV12。
2.一定要將片子原汁原味地交給「CombingInfo(v)」。之前不要加任何濾鏡(轉換顏色空間和反轉畫面除外),尤其是切邊、resize千萬不要加(跟IVTC插件的要求相同)。
3.如果是老片噪聲特別嚴重,可能會誤判,這時可以在「CombingInfo(v)」之繼續行降噪。不過,除非發生很多很多誤判,否則盡量不要降噪比較好。

一點感想:
終於做到了手動IVTC+自動驗證,以前都是手動檢查,一邊檢查一邊昏昏欲睡效率很低反而容易出現漏網之魚。這樣,手動IVTC的準確率和效率都能夠有所提高,希望對大家有所說明 。
通過交響詩篇的測試,我發現有很多畫格無論如何用自動就是沒辦法正確匹配,結果走了PP(嘗試了很多插件,包括IT、傳統的Decomb、TIVTC),匹配的錯誤率甚至超過了sswroom統計的10場景,尤其是對話場景人物嘴部錯誤率更高。所以,對於我 自己喜歡的作品,我還是堅持會用手動來解決。

提示:
手動IVTC如果搭配「按鍵精靈」之類的鍵盤操作軟體,會快不少。比如,按數字鍵盤的0鍵會自動按ctrl+p並輸入10010、Enter鍵,按1會自動跳到下一畫格並10010等等。將常用的按鍵組合定義為快捷鍵,可以大幅提高製作效率。

更新:
V2:根據s大大的建議,用blur做了縱向低通,以減少誤判。 引用
這樣準確率會提高是因為我感覺decomb判斷comb畫格是看畫面縱向高頻的強弱, 如果正確的畫面的高頻本身很強, 就會誤判. 用了blur做低通後就把畫面縱向高頻砍掉了, 剩下的就只能是畫面comb所產生的高頻. 這樣就可以降低combedthreshold來抓comb的畫格了.
當然因為是在每個場單獨做blur, 所以頻率最高的那個砍不到(640x480的話就應該是240HZ?).
不過大部分情況應該夠了, 很少會碰到頻率這麼高的.........


所有時間均為台北時間。現在的時間是 11:43 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1