DGIndex

DGIndex是DGMPGDec工具包的一個組件,它主要用來創建MPEG視頻流索引檔案,這個檔案包含了每一幀的位置和一些其他附加信息。

基本介紹

  • 中文名:DGIndex
  • 套用:DGMPGDec工具包
  • 類型:組件
  • 屬於:計算機
DGIndex是什麼,檔案選單,流選單,視頻選單,

DGIndex是什麼

這個索引檔案,或者叫做工程檔案,可以用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的起源。

檔案選單

打開 [Open]
使用本選項可以打開一個或多個源檔案。如果你要打開多個的檔案,則它們將會按照檔案列表內顯示的順序連線起來。多路處理或幀服務將會生成一個包含源檔案的單獨輸出流。當你要打開多個檔案的時候,所有的檔案必須是同樣的類型。比如,你不能同時打開MPEG1和MPEG2檔案,不能同時打開節目流和傳送流等等。
點擊檔案/打開之後可以做以下兩件事:
如果還沒有打開任何檔案將會看到打開對話框。你可以通過按住SHIFT或CTRL鍵來選擇多個檔案。單擊打開返回檔案列表對話框。
如果有一個或多個檔案已經被打開,則會出現檔案列表對話框。
你還可以通過拖拽檔案到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。

流選單

檢測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。

視頻選單

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。
Honor Pulldown Flags原來叫做None,Ignore 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]
這個選項用來進行亮度調整。
左上角的選擇框用來啟用或者禁用這個濾鏡。

相關詞條

熱門詞條

聯絡我們