瀏覽單個文章
Shade
Senior Member
 
Shade的大頭照
 

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
使用 RGB24/32 輸出,會有幾個缺點
1) 如前所述,此時必須由 Decoder 做 up-sampling 和 YUV -> RGB 色彩轉換
a. 耗費 CPU 資源
b. 不能使用硬體 Overlay,顯示速度慢
c. 軟體 up-sampling 通常品質比顯示卡硬體差
d. 軟體 YUV -> RGB 轉換精度堪慮,可能色偏會比顯示卡硬體還糟糕

2) RGB24/32 輸出如果沒有強制指定 Overlay 輸出通常也無法使用顯示卡硬體的放大,必須由軟體做放大,例如原始影片解析度 640x480 放大至桌面解析度 1024x768 輸出,軟體放大內插補點通常不如硬體放大平滑,會有鋸齒。
如果你看片的時候習慣切換到原始解析度看片,那麼這項的影響就比較小,不過很少人會特意去切換至原始解析度看片,還有 LCD 螢幕的特性,原生解析度才是最好的觀看解析度,所以越來會越少人使用原始解析度看片。

更進一步研究,如果你的顯示卡驅動,VMR9 和 Overlay 的設定值是分開的,例如在 WIN98 底下 Radeon 的 Driver,VMR9 輸出不使用 Overlay 的設定值,VMR9 使用桌面的色彩設定,那麼你不用切換至 RGB24/32,用原本的 YV12/YUY2 輸出,只要輸出 Renderer 選 VMR9,這樣就不會使用 Overlay 的色彩設定,而會和桌面的色彩設定一模一樣。
這樣就可以避過上述的 Deocder 自己做 up-sampling 和 YUV->RGB 轉換的問題。

但是使用 VMR9 Renderer 也有缺點,在舊的顯示卡上相容性可能會有問題,在新的顯示卡上由於技術上不成熟,顯示的品質可能也不如 Overlay。例如 Radeon 在 WIN98 底下使用 VMR9 輸出畫面會非常模糊,這是 VMR9 的 bug。
以目前來說,顯示速度、顯示品質,最好的還是 Overlay。

當然,凡事不可一概而論,會有特殊情況,例如有些顯示卡的驅動,VMR 輸出和 Overlay 輸出的色彩設定是共用同一組,這時你選擇 VMR9 輸出色彩調性就會和 Overlay 一樣。在 WINXP 底下預設輸出 Renderer 是 VMR7,那又是另外一種情況。

不過我個人經驗,使用自己調整的桌面色彩設定輸出影片,看起來不一定比廠商調整好的 Overlay 色彩設定好看。例如 ATi 的 Overlay 雖然偏紅,不過看起來還蠻好看的
所以只要把顯示卡驅動預設的 Overlay 亮度對比等偏差太多的設定值調整好,Overlay 看起來應該不會太差。

MPEG 影片存放的資料是 YUV,在顯示到螢幕上之前必須先轉換為 RGB,在 YUV -> RGB 轉換的時候必須做一個動作叫做 YC 伸張。當我們使用 Decoder 自己軟體做 YUV -> RGB 的時候有些 Decoder 會做 YC 伸張,有些不會。XviD 的 Decoder 按照 601 標準,會做 YC 伸張,所以最終顯示出來的色彩是正確的。
而如果使用硬體 Overlay,顯示卡的硬體 YUV -> RGB 也是遵照 601 標準,也會做 YC 伸張,所以用軟體硬體做 YUV -> RGB,都會做 YC 伸張,不用擔心硬體 YC 伸張的問題。

寫得很亂,我也不知道該怎麼解釋會比較清楚,希望大家都知道我在說什麼
舊 2004-03-10, 12:49 PM #5
回應時引用此文章
Shade離線中