Senior Member
您的住址: El's room
文章: 1,046
|
DVD2AVI 的 Color Space 選 RGB/YUV 和 PC Scale/TV Scale 的差異
RGB 模式是輸出 RGB24,YV12 (YUV 4:2:0) --> YUY2 (YUV 4:2:2) --> RGB24,
由 dvd2avi 做內插展開(4:2:0 -> 4:2:2)和轉換的工作(YUV -> RGB)。
內插展開的算式 jackei 大大的網站有寫,相當於 6-tap 的 FIR Filter。
YUV 模式是輸出 YUV 4:2:2(YUY2)。
輸出 RGB 時,preview 顯示會走傳統的 GDI 圖形顯示介面,送 RGB24 的資料給顯示卡,
此時電腦螢幕上看到的顏色正不正確,由 YUV -> RGB 這個選項決定。
(要選 PC Scale 看到的顏色才會正確)
輸出 YUV 時,preview 顯示會走 DirectDraw YUY2 Overlay,直接送 YUY2 的資料
給顯示卡,由顯示卡去做展開和色空間轉換。顯示卡用的都是 PC Scale
(會做 Y/C 伸張,擴展原來的 16~235 的資料為 0~255),所以您可以在螢幕上
看到正確的顏色。
(同理,DVD/VCD 播放時,播放軟體會走 DirectDraw Overlay 丟 YUY2 或 YV12
的資料給顯示卡,由顯示卡來做展開、色空間轉換、和放大(scaling filter)的工作。
由於顯示卡用的是 PC Scale,會做 Y/C 伸張,所以您才可以在電腦螢幕上看到正確的
DVD/VCD 的顏色)
(前提是,做好的 DVD/VCD,其 YUV 4:2:0 的資料範圍必須是 16~235,
經過顯示卡 PC Scale 16~235 -> 0~255 才會正確。
如果 DVD/VCD 做錯,壓縮前沒有先做 Y/C 壓縮,儲存的是 0~255 的 YUV 資料,
則顯示時再經過顯示卡的 Y/C 伸張,會發生 clipping(資料超過範圍被削掉))
(而 16~235 的資料拿到電視上放,電視本來就吃 16~235 的資料,
所以顯示也是正常的)
(所以結論,DVD/VCD 上的資料,必須遵照 CCIR601 的規範,維持 16~235 的範圍)
至於輸出,也是按照 YUV/RGB 的設定,分別輸出 YUY2 和 RGB24。
但是如果您有用 vfapi,因為 vfapi 內部完全以 RGB24 傳送資料,
所以如果你把 .d2v 轉成 vfapi-ref-avi,即使 color space 選 YUV,
dvd2avi 也會做展開轉換成 RGB24 輸出。如果要用 dvd2avi 直接做 Y/C 伸張,
dvd2avi 的 YUV -> RGB 選項勾選 PC Scale 即可。
另外,如果用 TMPGEnc/AviUtl 直接開啟 .d2v,因為這些軟體還是以 RGB24
讀取,所以 dvd2avi 也還是以 RGB24 輸出。
那.... 倒底什麼時候會用 YUY2 輸出?
直接存 AVI 的時候... ^^;
所以如果您是用 vfapi 或用 TMPGEnc/AviUtl 讀取,選 YUV 或 RGB 都沒有差異。
附帶一提 ^^; 如果 dvd2avi 輸出時已經選了 PC Scale(有做 Y/C 伸張),
就不可以再用 TMPGEnc 的 Descale CCIR601 這個濾鏡,也不可以用
AviUtl 的 "ITU-R BT.601 補正",這兩個作的事情是一樣的,都是做 Y/C 伸張。
已經伸張過再做伸張,會有許多資料 clipping。
|