2009年3月21日

建置1080p Media Center事項

最近家裡要換客廳電視,目前我是看好SONY 32S4000,雖然它只有32吋,又雖然它只支援到1366x768,但沒辦法~目前1080p的LCD TV都還很貴,老爸缺錢又要換電視的現在,只能選擇32吋了~
我的想法是,反正目前都還是看有線電視,高畫質有線電視目前還不普及,就算有了也不能保證一定是1920x1080的解析度,至於數位電視,那個就更不用說了~所以我認為,3年內要讓1920x1980普及應該是有難度的,與其買台用不到這麼高解析度的,不如買台SONY 32吋高品質的LCD TV,看起來應該會爽很多。
關於電視最後提一下,SONY 32吋系列,S和V根據Mobile01魔人的深入分析,兩者雖然差價3000元,但內容相同,此外,SONY 32吋系列再次根據Mobile01的魔人檢查,發現裡面的面板用的是奇美的,在這經濟艱困的時期,別懷疑~買SONY也是愛台灣啦~

雖然電視沒辦法用到1080p,但Media Center播放的高畫質電影檔情況稍稍不同,Media Center是電腦,它在播放影片時,並不會因為輸出的解析度比較差,就因此能夠節省CPU使用率或系統資源,因此,為了能夠播放所有影片,包括高畫質影片,Media Center需要升級,來應付720p以上畫質的影片檔,所以,最近開始尋覓目前針對高畫質影片的電腦建置。

我在之前的Media Center中應該提到過,我家目前的Media Center是P4-2.4G的CPU,主機板的整合式晶片組是Sis 630,因此顯示卡部份也是Sis的晶片。
P4-2.4G看起來很新,但事實上對於720p以上的影片,它是不足的。
目前我實際使用的經驗是,以網路上下載的720p日劇,播放時CPU使用率大約75%~100%,中間的Range是關係到影片播放當時的影片狀況,通常較細膩的片段就會lag,此時就是100%,因此網路上通常有人會說,720p影片P4-2.4G可以看,那是不精確的,測試的人八成只是把影片拿來開開看,看CPU使用率只有80%上下,就認為ok,這實際上是錯誤的結論。

此外,有一類720p的影片P4-2.4G CPU也是不夠力的,那就是下載的高畫質電影常使用的H264編碼,就算這部H264編碼的片子只是720p,P4-2.4G還是不夠力的,情況會比前面的日劇更糟(720p日劇編碼通常是DivX 6)。

高畫質影片往往需要更大的儲存空間,為了盡可能的減少儲存所需的空間,因此都會壓縮,而傳統的影片壓縮格式像是MPEG-1、MPEG-2、MPEG-4、DivX...等,壓縮率已經不足以應付FullHD(1920x1080)的影片,因此H264被提出並成為了FullHD影片的標準壓縮格式之一。
H264能讓高畫質影片儲存空間更小,但所付出的代價就是運算量,因此對CPU的負擔非常大。
很不幸的,如果要以軟體解碼的方式來處理,目前要能夠處理包括H264在內高畫質影片的CPU,至少需要中階以上的CPU才能應付,而中階以上CPU的價位並不很親民。

可能是因為上述的原因,最近幾年Nvidia和ATi(AMD)的顯示卡都內建了高畫質影片的硬體解碼晶片,而且具備這樣能力的顯示卡並不貴,大概NT $2000上下就能買到了,因此最近配Media Center的電腦,幾乎都會額外添購一張能夠支援FullHD的顯示卡,而挑選這樣的顯示卡,就變成了一個新的學問了。

在1080p Media Center建置的事項中,我們可以分為硬體和軟體兩類:

硬體:
要能夠處理1080p的影片,硬體上有2種解決方式,1種是買強力的CPU用軟體解碼來解決,另一種是買張新的顯示卡用硬體解碼來解決。

1. 使用CPU來解決
用CPU來解決問題其實不錯,後續問題可以少很多,但CPU很貴,要能夠處理到1080p影片的中階CPU價格通常需要NT $4000以上,如果錢不是問題,那直接買顆高速高貴的CPU統統都能搞定。
但這邊要注意一點,高速CPU通常很燙,高畫質影片軟體解碼時CPU使用率通常不會只有10%~20%,至少也有30%~50%,它會較耗電也會較熱,如何選擇高效能的散熱器又可以減少噪音,會是一個大問題。

2. 使用顯示卡來解決
以目前(2009-03-21)來說,目前NVIDIA主流的顯示卡大致有8000系列和9000系列兩種,網路上許多人會說這時候買8000系列的中階顯示卡最划算,因為8000系列是NVIDIA的舊晶片組,它的中階卡在之前都是NT $5000、NT $6000,現在只要NT $2000、NT $3000即可買到了,可以說是物超所值,但是,我在這邊要提出完全不同的結論。
如果以Media Center為用途,專門用來播放高解析度影片,那麼~買9000系列低階顯示卡會比8000系列中階顯示卡更合適,2者價格差不多~9000系列低階卡稍微低一點。
原因有2個:
1. 溫度
9000系列使用新的晶片,它的低階顯示卡溫度較低,8000的中階顯示卡通常都需要很大的散熱片和風扇,對Media Center來說,噪音是非常難搞的,沒有人會希望看電影的同時旁邊有個嗡嗡嗡的聲音,因此就溫度來說,9000系列更合適。

2. 硬體解碼的支援
NVIDIA在8000系列的顯示卡中就已經支援高畫質影片的硬體解碼(稱為PureVideo)了,但是8000全系列都只支援3種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264

而9000系列使用的新晶片,內建則支援4種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264
d. VC-1

關鍵在新出現的VC-1,VC-1乍看之下很陌生,但其實被應用的地方不少,VC-1是Microsoft提出的wmv中使用的編碼。
Microsoft在高畫質影片中一樣插了一腳,以類似H264的演算法來設計,並使用在wmv當中,Microsoft稱之為VC-1。
如果使用NVIDIA 8000系列的顯示卡,不論是低階、中階或是高階,全部都沒有包含VC-1的硬體解碼,換句話說,未來如果看到wmv的影片,就算使用的是8000系列中最高級的顯示卡,同樣都必須用CPU來運算,CPU不夠力,就是lag。

軟體:
如果使用CPU來做軟體解碼,基本上軟體的設定沒什麼問題,按照傳統的作法把codec安裝上去即可。
但如果是使用顯示卡來進行硬體解碼,軟體的配置就需要注意了。

接下來我會以NVIDIA來說,ATi的不清楚。

在Windows上,首先NVIDIA的顯示卡驅動程式是「一定要安裝」的,不安裝不可能支援硬體解碼,而且要安裝到最新版本的驅動程式。
安裝好驅動程式是不夠的,目前在Windows上,幾乎所有的codec都是軟體解碼,支援硬體解碼的codec很少,根據這陣子在網路上看到的,大概只有CyberLink PowerDVD提供的CyberLink Decoder和CoreAVC的Decoder可以支援顯示卡的硬體加速(使用硬體解碼)。
因此在設定上,必須要指定特定的檔案給特定的decoder才能使用到顯示卡的硬體加速。
而這部份,需要在各個播放程式裡面單獨的定義,像是KMPlayer可以設定,Media Player Classic目前我還不清楚。

在Linux上,為了讓Linux也能使用顯示卡的PureVideo(硬體解碼)功能,NVIDIA提出了VDPAU (Video Decode and Presentation API for Unix)。
VDPAU是專門針對NVIDIA顯示卡PureVideo(硬體解碼)功能的API,透過這組API程式設計師就能夠應用NVIDIA顯示卡上硬體解碼的晶片。
因為Linux上不同的文化和錯綜複雜的歷史因素,所以Linux上的播放軟體都直接內建decoder,所以目前要在Linux上支援VDPAU,必須針對播放軟體進行patch,讓播放軟體能夠支援VDPAU,才能夠使用硬體解碼。
目前在Linux上,確實有提供patch檔的播放軟體只有mplayer,而vlc、xine對VDPAU的支援都還在開發中。
比較讓人高興的是,Linux上的編解碼器軟體ffmpeg,已經有提供VDPAU的patch,所以是不是可以直接用vlc或xine呼叫ffmpeg來使用VDPAU,是之後使用時可以注意的部份。

整體來說,為了要處理1080p,我認為代價是很高的,以顯示卡的硬體解碼來處理1080p目前看來是不錯的選擇,但軟體設定很麻煩,而且硬體解碼只支援到1920x1080,未來更高解析度的影片它沒辦法處理(這邊指的沒辦法處理不是速度不夠快,而是顯示卡不能動作,有更高解析度的影片,顯示卡並不能支援,到時候完全只能用CPU來處理)。

1 則留言:

AMATI銃之旋律 提到...

2009年?那時有AMD的780晶片組的合板該可以解決Full HD的需求。 Core AVC如果沒記錯的話好像是快速解碼(稍微犧牲畫質換取順暢播放)
關於這些編解碼器的管理我倒是滿推薦終極解碼的,可以自己選三種播放器,有設定介面可以切換編解碼器,把ffdshow、DivX、AC3Filter、Cyberlink、WinDVD、等codec都包進去了,還有多聲道、光纖輸出設定等等,甚至連nVidia官方的硬解也整合進去...總之可以試試,反正它能切KMP跟MPC