DGIndex中文用戶手冊

出自NMM Doc
跳至導覽 跳至搜尋

譯者的話:由於英文水平有限以及翻譯經驗較少,本文難免會有一些翻譯錯誤以及語句不那麼通順到地方,還請諒解。如果您對本文的翻譯有任何意見或者您打算報名並參與到本文編寫工作中,我們將十分歡迎。報名

DGIndex是什麼

DGIndex是DGMPGDec工具包的一個組件,它主要用來創建MPEG視頻流的索引文件,這個文件包含了每一幀的位置和一些其他附加信息。這個索引文件,或者叫做工程文件,可以用AVISynth通過加載DGDecode濾鏡來將其載入以提供幀精確服務。DGIndex可以解碼大部分的MPEG1/2流,包括基本流、節目流、VOB、VCD、SVCD、PVA和傳輸流。並且包含了視頻分離(m1v/m2v),音頻分離(ac3,dts,aac,mpa,lpcm),最優化的iDCT,亮度濾鏡,裁剪濾鏡等附加功能。
DGIndex基於Chia-chen Kuo的DVD2AVI 1.77.3並進行了改進。
改進之後被命名為DGIndex以避免名稱上的衝突,並且能顯示出功能上的區別以及確實的表示它屬於neuron2的DGMPCDec組件包。Neuron2會通過後面的開發人員名單來展示DGIndex的起源。
你可以在這個地址找到最新的編譯版和原始碼 http://neuron2.net/dgmpgdec/dgmpgdec.html
DGIndex是一個基於GPLv2條款的免費軟件,在使用本軟件或代碼前你必須同意這個條款,詳細內容請查看條款章節。
本文檔是DGIndex的參考手冊,查閱此文檔可以獲取快速指南、常見問題以及DGIndex典型使用方法的指導。

文件菜單 [File Menu]

打開 [Open]

使用本選項可以打開一個或多個源文件。如果你要打開多個的文件,則它們將會按照文件列表內顯示的順序連接起來。多路處理或幀服務將會生成一個包含源文件的單獨輸出流。當你要打開多個文件的時候,所有的文件必須是同樣的類型。比如,你不能同時打開MPEG1和MPEG2文件,不能同時打開節目流和傳送流等等。
點擊文件/打開之後可以做以下兩件事:
  1. 如果還沒有打開任何文件將會看到打開對話框。你可以通過按住SHIFT或CTRL鍵來選擇多個文件。單擊打開返回文件列表對話框。
  2. 如果有一個或多個文件已經被打開,則會出現文件列表對話框。
你還可以通過拖拽文件到DGIndex的窗口上來打開它。這將會打開文件列表對話框列出拖拽中所包含的文件。
當使用文件列表對話框打開了新文件之後,會對這些文件進行排序(使用一個智能的排序算法)並列出。少見的情況下它給出排列順序並不是你所需要的,不過這可以通過列表編輯按鈕來進行修正。以下是在列表管理中可以用到的按鈕:
  • 添加 [Add] - 打開文件選擇對話框
  • 提高 [Up] - 將選定文件的位置向上提高一級
  • 降低 [Down] - 將選定文件的位置向下降低一級
  • 刪除 [Del] - 將選定文件從列表中刪除
  • 全部刪除 [Del All] - 刪除列表中的所有文件
當你對列表中的排序滿意之後,點擊"OK"按鈕,DGIndex則會把列表中的文件按照順序連接起來並載入。
有時由於剪切或編輯,視頻流開始的幾幀或許無法正確解碼(因為他們的參考幀丟失了)。如果你的文件列表中的第一個文件出現了這樣的情況,那麼需要用第一個可以正確解碼的幀的拷貝來替換這幾個壞幀。

關閉 [Close]

這個選項用來關閉所有已經打開的文件。

載入工程 [Load Project]

使用這個選項載入已經存在的DGIndex(d2v)工程文件。
當一個工程文件載入後,DGIndex將會按照正確的順序打開工程中的文件並按照工程文件還原以下設置:
  • IDCT算法
  • 場操作
  • YUV -> RGB 範圍
  • 亮度濾鏡
  • 剪切
  • 時間軸選取點
例如音頻等一些沒有在上面列出的選項將不會被還原。它們將會保持在載入工程文件之前的狀態。

保存工程 [Save Project]

這個選項用來創建一個DGIndex工程文件(d2v file),這個工程文件可以通過DGDecode(或者DGVfapi)來給視頻提供幀服務。
DGIndex所創建的這個工程文件包含源文件的路徑、視頻設定以及MPEG索引信息。如果想了解更多關於d2v文件結構的信息,請參考附錄A。
當保存工程文件時,它會遵循時間軸上的選取點,意思就是,需要被提供幀服務的視頻以及分離出來的音頻將僅僅包含時間軸上選取點範圍內的輸入數據。
生成工程文件大概需要幾分鐘,這取決於工程文件的體積以及你計算機的性能。
記住一旦工程文件創建完成,不要去更改源文件的路徑和名字。如果你必須要對源文件改名或者移動它,那麼你需要重新生成你的工程文件,或者編輯d2v文件開頭部分關於路徑的內容。

保存工程並分離視頻 [Save Project and Demux Video]

這個選項和上面的「Save Project」一樣,能夠創建一個d2v文件,並且同時還能把視頻分離出來成為一個獨立的基本流文件(m1v或m2v文件)。某些程序(比如 DGPulldown 和 DVD authoring 等等)有時會用到這種基本流文件。此功能對於有經驗的用戶來說會是一個十分方便的工具。基本流並非必須使用幀服務來加載(DGDecode或DGvfapi)。
基本流文件會創建在與d2v文件相同的目錄,並且文件名會用特定的方式和d2v文件名相連接,對於MPEG1使用「.demuxed.m1v」,對於MPEG2使用「.demuxed.m2v」。舉例來說,如果工程文件的名字是「movie.d2v」並且它是MPEG2視頻,則基本流的文件名會是「movie.demuxed.m2v」。
注意分離操作只會生成一個基本流文件,即便工程文件中包含了多個源文件。

分離音頻流 [Demux Audio-Only Stream ]

有些源只包含音頻,所以沒有為它創建工程文件的必要。當然這些音頻可以被分離出來,DGIndex也有這個功能。它經常被用在一些包含視頻的流上(雖然用它代替Save Project沒什麼意義),此時會忽略選取範圍分離整個流,並且不會匯報音頻的延遲值。
請注意你無法使用此選項把音頻解碼為WAV,必須使用Save Project。
分離出來的音頻文件會創建在與源文件相同的目錄,文件名會基於被打開的第一個源文件名。
注意分離操作只會生成一個文件,即便工程文件中包含了多個源文件。

保存位圖 [Save BMP]

這個選項用來把顯示在DGIndex窗口中的當前幀保存為Windows BMP文件。當使用此選項之後,會打開一個文件對話框來指定保存位置和文件名。

預覽、播放、停止、暫停/恢復 [Preview, Play, Stop, Pause/Resume ]

這些選項用來控制視頻的播放,括號內是鍵盤快捷鍵。
  • 預覽(F5)- 在時間軸上的選取範圍內從頭到尾播放。
  • 播放(F6)- 從時間軸上的當前位置開始播放。
  • 停止(ESC)- 停止正在播放的視頻。
  • 暫停/恢復(空格)- 暫停/恢復正在播放中的視頻。
播放和預覽功能僅針對視頻,沒有音頻。
通過選項/播放速度菜單可以控制視頻的播放速度。
播放命令並不解碼當前幀之前的參考幀,所以如果你在時間軸上進行了跳轉操作之後,也許你會看到前幾幀出現色塊。注意這只是DGIndex的顯示問題,它不會出現在幀服務或分離出來的視頻文件上。
播放、預覽將會自動彈出信息面板。

退出 [Exit]

使用此選項來關閉所有已打開的文件並結束DGIndex。

流菜單 [Stream Menu]

檢測PIDs: PAT/PMT [Detect PIDs: PAT/PMT]

DGIndex可以打開傳輸流,傳輸流可以包含多個節目,每個節目都有各自的音頻流和視頻流。流菜單允許用戶列出並且選擇希望解碼的節目。如果打開的並非傳輸流則流菜單自動禁用。傳輸流會定期的發送一個叫做PAT/PMT的數據表,這個表用來指定節目的標籤(PIDs)以便把視頻流和音頻流關聯起來。通過設置你需要的視頻、音頻的PIDs就可以選定你需要的節目。
使用「Detect PIDs: PAT/PMT」選項來列出節目以及和它相關聯的流,然後選擇希望被解碼的流。DGIndex會解析第一個輸入文件的PAT/PMT表,如果找到了,則會把節目和它的PIDs顯示在一個列表框內。如果找不到PAT/PMT表,則會發送一個錯誤消息,在這種情況下列表框會關閉並且會用「Detect PIDs: RAW」選項來代替。
用鼠標左鍵點擊視頻流,它會高亮顯示,然後點擊「Set Video」按鈕,即可完成對視頻流的選定。
用鼠標左鍵點擊音頻流,它會高亮顯示,然後點擊「Set Audio」按鈕,即可完成對音頻流的選定。
用鼠標左鍵點擊PCR流,它會高亮顯示,然後點擊「Set PCR」按鈕,即可完成對PCR流的選定。
當你完成了PIDs選擇之後,點擊「Done」按鈕關閉列表框之後,視頻就會顯示在DGIndex的窗口中了。
注意除非你使用了記錄時間戳功能,否則PCR PID不會使用。
PIDs會被保存在DGIndex.ini文件內因此會對DGIndex工程起作用。
注意把視頻流當作音頻流選擇,或者反過來,這麼做會產生一個未定義的操作,並且或許會導致DGIndex崩潰。因此,兩者的PIDs都會用到0x02這個預設值。然而因為DGIndex.ini文件保留了前一個工程的PIDs,所以你或許會碰到崩潰這個情況。如果出現了奇怪的反應或崩潰,則需要在打開你的文件之前,用「Set PIDs」選項手動把音頻和視頻的PIDs設置為0x02,然後在正常的檢測並設置你的PIDs。

檢測PIDs: PSIP [Detect PIDs: PSIP]

這個選項和「Detect PIDs: PAT/PMT」很相似,但它讀取的是PSIP表而非PAT/PMT表。PSIP表存在於地上波播放的節目流中(存疑)。將來的版本會增強對PSIP的支持。

檢測PIDs: RAW [Detect PIDs: Raw]

在少見的情況下傳輸流會缺失PAT/PMT表,這種情況下,音頻視頻流的PIDs可以用「Detect PIDs: Raw」選項來顯示和選擇。音頻原始格式的PID檢測無法顯示哪個音頻和哪個視頻是在一起的,所以在得到正確的匹配前,一些試驗和錯誤是必要的(通常遇到的音頻/視頻PIDs匹配關聯是11/14、21/24和31/34)。因此,你應該優先使用「Detect PIDs: PAT/PMT」。
「Detect PIDs: Raw」列表框內的操作和上述「"Detect PIDs: PAT/PMT」相同。

設置PIDs [Set PIDs]

使用此選項可以手動指定PIDs的16禁止標號或修改以選擇的PIDs。如果你用這個對話框指定了你的PIDs,DGIndex將會不檢測PIDs而只使用指定的PIDs去選擇視頻和音頻流。
注意把視頻流當作音頻流選擇,或者反過來,這麼做會產生一個未定義的操作,並且或許會導致DGIndex崩潰。如果出現了奇怪的反應或崩潰,則需要在打開你的文件之前,用「Set PIDs」選項手動把音頻和視頻的PIDs設置為0x02,然後在正常的檢測並設置你的PIDs。

視頻菜單 [Video Menu]

iDCT算法 [iDCT Algorithm]

指定DGIndex和DGDecode使用哪個iDCT算法
  • 32-bit MMX
  • 32-bit SSE MMX
  • 32-bit SSE2 MMX
  • 64-bit Floating Point
  • IEEE-1180 Reference
  • Skal SSE MMX
  • Simple MMX
DGIndex會自動檢測處理器所不支持的算法,因此你也許無法看到上述所有選項。
使用何種iDCT算法根本上取決於你擁有什麼CPU,其次則是你對iDCT精度的要求。所有的可選項均遵循IEEE-1180。想得到更多關於iDCTs的信息請查閱DGDecode手冊。
質量:IEEE-1180 Reference > 64-bit Floating Point > 其它iDCT
速度:SSE2MMX是最快的,IEEE-1180 Reference是最慢的
注意選擇的iDCT算法會存放在D2V文件內,DGDecode可以設置為使用這些設定(默認)或通過「idct」參數替換。
這些設置也被保存在DGIndex.ini文件內,所以也會影響到DGIndex工程。如果你編輯了DGIndex.ini文件或D2V文件而且指定了一個你的CPU所不支持的算法,則DGIndex和DGDecode會自動降級到下一個你CPU支持的可用設定。

場操作 [Field Operation ]

MPEG2視頻提供了一個RFF旗標,在播放時允許任意幀的一個場自動重複(「pulled down」)。這些重複的場不佔用MPEG2流的空間,而是在解碼視頻流的過程中通過複製得來的。這個機能通常用於把膠片速率(Film rate,即23.976fps)的影片放在NTSC速率(NTSC rate,即29.970fps)的設備上播放,這種處理叫3:2摺疊(3:2 Pulldown)。然而事實上,摺疊模式(pattern)會有各種各樣,比如把PAL(25fps)轉換為NTSC。你可以在這個網頁了解到關於telecining和摺疊的信息。
理解原理,理解原理,並為此選項的設置找到合適的參數而做些練習,是很必要的。在這裏我們只能說明操作方法並給出一些大致的指導,在現在已有的文章中有更多進一步的說明。
Field Operation選項允許用戶指定如何處理pulldown(RFF)旗標。
  • 遵循摺疊旗標 [Honor Pulldown Flags] - 遵循摺疊旗標進而重複這些場,這意味着幀服務視頻將按照其在終端設備上顯示的樣子出現(譯註:Final Display Device,最終顯示設備,這裏作者應該是指電視或其他顯示設備,而不是電腦)。所以如果你有一個3:2摺疊過的視頻,你將會得到一個按照標準的3個無交錯幀(Progressived)跟着2個交錯幀(Interlaced)循環出現的模式。如果你有PAL或MPEG1視頻,你將會得到一個無重複場的圖像(因為PAL和MPEG1不存在RFF旗標),幀率則與源的顯示幀率相同。
  • 忽略摺疊旗標 [Ignore Pulldown Flags] - 摺疊旗標會被忽略,這樣你可以得到沒有重複場源MPEG圖像。然而,因為重複場本來應該顯示(而沒有被顯示),所以最終幀率可能會和源幀率有所不同,這種情況甚至會貫穿視頻始終,這得歸咎於摺疊模式的不規範。因為這種不規範,使用這個選項之後會造成視頻某些部分的音視頻不同步,而且通常情況下這種不同步會嚴重到令人無法接受。因此這個選項主要為高級用戶提供,他們通常使用這個選項來判斷片源的特徵。雖然這個選項忽略了旗標,但是旗標仍舊記錄在D2V文件內,儘管DGDecode也會忽略掉它。
  • 強制膠片幀率 [Force Film] - 這個選項是為膠片速率(23.976 fps)的內容經過摺疊處理顯示為NTSC幀率(29.970 fps)而準備的。它會把視頻恢復到23.976的膠片幀率並且保持音視頻全程同步。它會忽略摺疊旗標並通過插入/刪除一些幀的做法來維持恆定幀率並同步輸出流。不要在非3:2摺疊素材上使用此選項,也千萬不要把這個選項用在PAL或MPEG1上,也不要在含有幀重複的流上使用。
Field Operations是使用DGIndex過程中最需要理解的重要的選項。大多數人需要首先使用Honor Pulldown Flags進行預覽。如果來源不是PAL或MPEG1,並且信息(Information)窗口的Video Type一欄顯示Film,或Film 99%,那麼這個來源便可以作為3:2 Pulldown型來處理,生成D2V工程文件的時候,就可以選擇Force Film
如果百分比低於99%或者Video Type里顯示的是一個Video百分比,那麼創建D2V文件的時候應該保持Honor Pulldown Flags。如果得到的結果有交錯(因為源可能是交錯的、3:2/交錯混合的、場混合等等),那麼你應該在你的Avisynth腳本里應用一些反交錯或者IVTC濾鏡。
如果film百分比很低,不過它仍舊是個film類型,那麼你可以嘗試用Force Film並看看結果如何。或許你會發現偶爾有幾個交錯幀,那麼你可以用FieldDeinterlace(full=false)來進行後處理,如果結果讓你滿意就好。如果不滿意,你還可以用一些其他的高級濾鏡來對付這些奇奇怪怪的視頻,當然這時你要保持Honor Pulldown Flags
當你需要通過預覽操作來評估Film百分比的時候,重點在於應該觀看視頻本身,並且儘量觀看的長一些,因為片頭或者片尾有時會和正片用了不同的製作方式。
可以肯定的是,如果你知道源很大程度上不會是一個3:2摺疊的NTSC視頻,那麼就應該選擇Honor Pulldown Flags並根據需要進行後處理。記住如果沒旗標,自然就沒得遵循,此時這個選項僅僅是傳送源圖像。
只有高級用戶想查看MPEG流中,視頻的精確編碼結果,才會需要Ignore Pulldown Flags
你也可以閱讀這篇文章來獲得關於Force Film和IVTC處理的一些信息。
Honor Pulldown Flags原來叫做NoneIgnore Pulldown Flags原來叫做Raw Encoded Frames

YUV->RGB

當你用DGVfapi做幀服務的時候,視頻總是會被轉換為RGB,這個選項就是指定如何轉換為RGB用的。
  • PC scale - 映射輸出的RGB到全範圍:YUV [16, 235(Y)/240(UV)] -> RGB [0, 255]
  • TV scale - 映射輸出的RGB到裁剪範圍:YUV [16, 235(Y)/240(UV)] -> RGB [16, 235]
這個選項會影響RGB的轉換,這種影響你只會在兩個地方看到:1)DGIndex的顯示窗口中 2)DGVfapi視頻幀服務。一般來說,除非你有切實的理由,否則你都應該選擇PC scale
以下是兩個經典的使用TV scale的情況:
1、使用DGVfapi做幀服務並傳輸給TMPGEnc,並且TMPGEnc中Output YUV Data As Basic YCbCr Not CCIR601選項被選中(默認不選中)。
2、使用DGVfapi做幀服務並傳輸給CCE,CCE中選擇了Luminance Level 0 To 255

高清顯示 [HD Display]

這個選項允許你選擇如何顯示大解像度(HD)視頻。當視頻寬度超過800像素或高度超過600像素時,這個選項將會控制顯示方式;否則這個選項會被忽略。顯示方式有:
  • Full Size - 以完整尺寸顯示(會受到桌面尺寸制約)。
  • Shrunk by Half - 尺寸會被縮小一半以保證全部可見。
  • Top Left - 顯示視頻的左上部分。
  • Top Right - 顯示視頻的右上部分。
  • Bottom Left - 顯示視頻的左下部分。
  • Bottom Right - 顯示視頻的右下部分。
這個選項在檢查交錯高清視頻的時候非常有用,如果畫面被縮小的話會看不到交錯。如果要檢查交錯,你可以選擇顯示四角之一併且逐幀觀察。
這個選項會保存在INI文件里並且被DGIndex自動調用。

亮度濾鏡 [Luminance Filter]

這個選項用來進行亮度調整。
左上角的選擇框用來啟用或者禁用這個濾鏡。

參考文獻

http://forum.doom9.org/showthread.php?t=96870