這個... 就要自己判斷.... ^^;
由於我通常會用 Avisynth/VFAPI/AVIS 做 frame server,所以我一定很清楚的知道最後送進去給 ProCoder 壓縮的時候,會是什麼色彩格式。
例如如果是透過 VFAPI,則一定是 RGB24 的格式。
如果是 Avisynth,Avisynth 可以指定用哪種色彩格式來開啟檔案,甚至它有內建色彩格式轉換的 Filter,所以就算原始格式不是你想要的格式,你也可以在 Avisynth 之中把它轉成任意的格式。
例如如果我在 Avisynth 的 script 中的最後一行加上 ConvertToYUY2(),則最後輸出的色彩格式就會是 YUY2。
Avisynth 可以讓你自由的控制輸出的色彩格式。
由於有些軟體不能直接開啟 Avisynth 的 .avs 檔案,所以可以搭配 AVIS 這個軟體將 .avs 轉成虛擬的 .avi,而 AVIS 這個軟體在轉換 AVI 的時候,也可以任意指定輸出的色彩格式。
(ProCoder 可以直接吃 .avs 檔,不需要轉換)
所以我可以完全的控制處理過程中的每一步要用什麼色彩格式,也可以知道目前使用中的色彩格式是什麼。
而訊源的色彩格式是什麼,這個就要靠經驗累積。
例如如果訊源是 DVD,你要把它轉成 AVI/VCD,則解碼輸出的色彩格式是什麼,就要看你是用哪一個解碼器解碼原始 DVD 的 MPEG-2。
如果是用 DVD2AVI 產生 .d2v 解碼,輸出的就是 RGB24。
如果是用 Avisynth 的 MPEG2Dec.DLL 解碼,輸出的就是 YUY2。
如果是用 Avisynth 的 MPEG2Dec3.DLL 解碼,輸出的就是 YV12。
如果是用 M2V 透過 TMPGEnc 讀取解碼,輸出的就是 RGB24。
如果是用 M2V 透過 AviUtl 以 AviUtl Input Plugin 的方式讀取解碼,輸出的就是 YUY2。
如果是用 Elecard-Moonlight MPEG-2 Decoder v.3611 透過 DirectShow 的方式讀取解碼,輸出的是 RGB32,而且是沒有經過色彩擴張的 RGB32,這種 RGB32 在電腦螢幕上看色彩會比原來淡。
壓縮這種未經過伸張的 RGB,TMPGEnc Plus 壓縮時要勾選 "Output YUV data as Basic YCbCr not CCIR601";Cinema Craft Encoder SP 壓縮時要勾選 "0 to 255";MainConcept MPEG Encoder 1.4.2 壓縮時要選 "Input video is RGB16~235";ProCoder 剛剛好,壓縮時什麼都不用做,直接壓就好了。至於其它壓縮軟體,不用浪費時間去測試。
附帶一題,現在最新版的 Elecard-Moonlight v.3611 的解碼器解碼交錯畫面輸出反而是錯的,所以如果是交錯訊源,不建議使用這個 Decoder 解碼。
那麼我怎麼知道現在解碼 DVD 的解碼器是哪一個?如果我沒有用 DVD2AVI 解碼,也沒有用 Avisynth 解碼,也沒有用 M2V 解碼,我只是直接用我要轉換的那個程式開啟檔案,它就開啟了,我根本不知道它是用什麼解碼器在解碼?
如果你是用 ProCoder 直接開啟 MPEG-2 檔案,ProCoder 是透過 DirectShow 來讀取你要開啟的檔案,所以它用的 Decoder,就是當你使用 Media Player 播放這個 MPEG-2 的時候,Media Player 使用的那個 DirectShow Filter。
只要用 Media Player Classic 這個播放程式播放你要轉換的檔案,在播放時按滑鼠右鍵,看看 "Filters" 這個項目底下,目前正在解碼的 MPEG-2 Decoder 是哪一個,你就知道當 ProCoder 開啟時,也就是用這一個 Decoder 在解碼。
CCE SP 我沒有研究,我通常都是解碼好以後才交給它轉檔,不知道直接給它開會是什麼情況,可能也是用 DirectShow 去讀取檔案。
TMPGEnc 就更複雜了,2.54 版以前在環境設定中把 DirectShow 讀取的優先權調到最高,會使用 DirectShow 讀取。2.54 版以後取消了不能由 DirectShow 讀取 MPEG-2 檔案。到 2.5xx 不知道哪一版以後都內建 CRI Sofdec 的解碼,直接就可以開啟 MPEG-2 檔,此時輸出的是伸張過的 RGB24。
MainConcept MPEG Encoder 也可以透過 DirectShow 讀取檔案,這個設定在 Import module 底下,同時它也有內建 MPEG Deocder,可以直接開啟 MPEG 檔,我也從來沒有試過直接用 MainConcept 開啟會怎麼樣。
接下來 ^^;;
如果你要轉換的訊源是 DV AVI,那麼輸出的色彩格式是什麼,也是要看你用來解碼 DV AVI 的解碼器是哪一個,例如 Canopus DV Codec,MainConcept DV Codec.... 等等。有些 Codec 也有自己的設定,可以選擇要輸出 YUY2 呢,還是 RGB24,甚至也可以決定輸出 RGB24 的時候要不要伸張。
如果訊源是 MPEG-4 的 AVI,我從來沒有做過這樣的轉換,把 MPEG-4 AVI 或者 RMVB 之類的檔案再轉成 VCD 或者 DVD,所以所知有限。
XviD 如果直接以 DirectShow 開啟,預設會輸出 YUY2,輸出的格式可以在 Decoder 的設定中選擇。
DivX 真的不知道了,可能是 YUY2。
WMV9 是 YUY2。
其實你可以用 AviUtl 這個軟體開啟這些檔案,在檔案資訊這個項目下會顯示目前的色彩系統是哪一種,可以藉此判斷。
我是建議用 Avisynth 的 AVISource(使用 VfW Codec 解碼、讀取檔案)或者 DirectShowSource(顧名思義,使用 DirectShow Filter 來解碼、讀取檔案)來開啟這些檔案,因為 Avisynth 可以指定、強迫解碼器以指定的色彩格式輸出,這樣你就可以很清楚的確定,目前輸出的到底是什麼鬼格式。
如果以上這些判斷方法都不好用,也不知道到哪裡下載這些程式,最簡單的方法,就是先用 ProCoder 快速的壓一小段,看看壓出來畫面的顏色正不正確,和原來的檔案一不一樣。
如果畫面色彩變淡,看起來灰濛濛的一片,表示需要加上 "601 Correction - Expand Color Space"。
如果畫面對比變強,色彩看起來超鮮豔,但是比較明亮的畫面會變成一片慘白,黑底也變得比原本更深更沈,就表示畫面已經削切失真了,要加上 "601 Correction - Shrink Color Space"。
ProCoder 的話只有可能會發生後者的情況。
以上是概述簡單的判斷法
