顯示廣告
隱藏 ✕
※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2013-11-07 11:12:19
看板 LCD
作者 coldcolour (Ghost的呢喃)
標題 Re: [求助] sony 50吋led電視接電腦看起來灰灰的
時間 Tue Nov  5 18:15:36 2013


※ 引述《mrschiu (布萊恩的老婆)》之銘言:

雖然你的問題好像應該到Digitalhome問
不過這也算是顯示器透過HDMI接電腦常常會發生的狀況之一
還是回一下好了

首先先講一個基本觀念
影視內容  也就是指所有的電視節目  電影  BD/DVD等等
其製作時使用的色彩空間  還有黑階位準(black level 以下簡稱黑位)的定義範圍
跟電腦上所使用的是不一樣的

影視內容使用的是Y'CbCr 黑位範圍是16~235 也就是16為最黑 235為最白
這個一般我們會稱為Studio Level
當然如果在電視裡或播放軟體裡的設定選項看到
Limited Range/Studio Level/TV Level/標準/限制  這些的字眼
指的就是16~235這個黑位範圍

而電腦上使用的是RGB  黑位範圍是0~255  也就是0為最黑  255為最白
如果在電視裡或播放軟體裡的設定選項看到
Full Range/Extended Range/Computer Level/PC Level(RGB)/增強/全取
指的就是0~255這個黑位範圍

既然所有影視內容都是以16~235的黑位去製作的
因此基本上電視機跟影碟機都是以16~235做為其預設的支援標準
當然現在很多機種也是可以支援0~255

而在電腦上使用的是0~255的黑位
所有的電腦螢幕基本上都是使用0~255這個標準(但有HDMI輸入的電腦螢幕有些也會另外支
援16~235)

影碟機(BD/DVD)  MOD  電視天線  接電視機  完全沒有問題
一路都是使用16~235的輸出範圍

電腦(桌面 圖片 網路等等內容)  接電腦螢幕  也完全沒有問題
一路都是使用0~255的輸出範圍

而當我們把原本製作目的不一樣的媒介跟裝置混在一起使用時
問題就產生了
兩種不同標準的媒介在一起使用時
是需要透過一些轉換的  否則就會產生黑位錯誤
而黑位錯誤最直接的影響就是畫面會泛白或黑不黑  白不白

我們來看看接電腦時有幾個環節會影響到最終輸出的黑位是否正確
第一  內容  影片是16~235  電腦桌面  照片  瀏覽器裡的圖片通通都是0~255

第二  播放軟體  直接輸出16~235  或是透過Y/C伸張後輸出0~255

第三  顯卡的輸出  透過HDMI輸出YCbCr or RGB ?

第四  顯示器本身的設定

這邊您可能有個疑問  為什麼平常接電腦螢幕時(D-SUB或DVI)  播放影片不會有問題?
很簡單 播放軟體會對16~235的影視內容做Y/C伸張  並且進行YUV→RGB的色域轉換
讓其變成0~255的RGB訊號給顯卡
然後顯卡輸出0~255的RGB訊號給電腦螢幕
電腦螢幕本身也接受0~255的黑位範圍  皆大歡喜

但是接HDMI時呢?
這邊就要特別提一下了
接D-SUB或DVI  輸出的黑位範圍一定都是0~255  而且一定是RGB訊號
因為這個標準是設計給電腦裝置使用

但HDMI就不一樣了
其本來是設計給影視裝置使用的標準
但是電腦也可以使用
HDMI既可以傳輸YCbCr訊號也可以傳輸RGB訊號
當其傳輸YCbCr訊號時  一定是16~235的黑位範圍
當其傳輸RGB訊號時  它容許傳輸0~255和16~235兩種黑位範圍
所以這讓整個問題複雜化起來
但其實罪魁禍首並不在它身上
說到底是為了適應兩種不一樣的顯示裝置才採取了這樣的做法

再來我們看看顯卡
接D-SUB或DVI 不用說也一定是輸出0~255的RGB訊號
那接HDMI呢?
這邊不同家的顯卡似乎還會有不同的結果

以A卡來說  接HDMI的話預設還是輸出0~255的RGB訊號
但是也可以自行選擇輸出RGB 16~235訊號或是YCbCr
(還有4:2:2和4:4:4的差別 這個一樣要看顯示裝置的支援度
再講下去可以另發一篇了 此處就先不提)

I內顯接HDMI預設是會輸出16~235  RGB
N卡接HDMI預設也是會輸出16~235  RGB 不過可以改成輸出0~255 RGB
(需要透過一些hacking工具去覆寫驅動設定)
(我自己沒I跟N卡 有誤請指正)

所以這就是為什麼有時會建議同時有HDMI或DVI輸入的"電腦螢幕"
還是以接DVI為首選  因為你可能不知道接HDMI時顯卡輸出了什麼訊號
而螢幕本身接受HDMI輸入時又設定成接受哪個黑位範圍的訊號

當接電腦螢幕時  我們會希望顯卡輸出0~255  電腦螢幕黑位也是0~255
但接HDMI的場合  也可能出現另外三種組合
顯卡輸出16~235  螢幕黑位0~255   這邊就錯了  畫面可能泛白
顯卡輸出0~255   螢幕黑位16~235  這邊也錯了
顯卡輸出16~235  螢幕黑位16~235  黑位是正確了
不過別忘了電腦上的內容本來都是0~255  這邊等於多讓電腦進行一次Y/C壓縮
而顯卡的壓縮演算並不是那麼好  可能會產生不必要的畫質損失

當接電視時  問題更複雜了  除了黑位外還有YCbCr和RGB的問題
當然我們儘量以輸出RGB為主  因為同樣讓顯卡做RGB→YCbCr的轉換是多一次損失
(雖然這個轉換可能在電視上再做一次 但有些電視是能接受RGB訊號的)
然後可以分成兩種情形來討論對策

第一種情形  電視本身支援0~255的黑位
當然如果電視有做D-sub或DVI輸入的話是一定支援的
而最近比較新的電視也很多都有支援
接HDMI的時候  可能電視上要做一些設定讓其能夠正確對應0~255
這個設定可能是在一些HDMI的相關選項裡  關鍵字就是我這篇文最上面提到的那些
或是所謂的"遊戲模式"或"PC模式"等等  都會讓電視接受0~255的黑位

然後接下來只要把顯卡設定成輸出0~255的RGB訊號就OK了
A卡CCC控制介面可以調整
N卡我不確定  不過確定有些小程式可以讓它強制輸出0~255
I內顯就不太確定接HDMI倒底能不能輸出0~255

而播放軟體通常預設就是會做Y/C伸張輸出0~255
因此這樣下來桌面  圖片  瀏覽器  影片等等黑位就都會正確了

第二種情形  電視本身不支援0~255黑位  只能接受16~235
這種情形有兩種對策
A對策  讓顯卡輸出16~235(limited range)  播放軟體還是預設
這樣一來  播放軟體輸出的訊號跟桌面  圖片  等等通通會被顯卡做壓縮成16~235
輸出  而能正確對應電視的黑位  當然會有一些畫質損失

B對策  讓顯卡一樣輸出0~255  但是播放軟體的設定改成輸出16~235(TV level)
也就是不做Y/C伸張  這時影片播放輸出的黑位會是正確的  且沒有畫質損失
但是桌面  圖片  程式等等其他的黑位通通都會不正確

另外這邊提供一個測試影片
http://www.mediafire.com/download/mjli5bzrz7yfb5b/lossless_colorbars_hd.mp4
lossless_colorbars_hd
[圖]
lossless_colorbars_hd.mp4 ...
 
如果右下角倒數第二個方塊看到一條黑槓  就是黑位對應正確
如果看到全黑或是三條黑槓就是對應錯誤

如果有定義錯誤或是觀念錯誤的地方   還請不吝指正  謝謝




--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.83.104
web2312:推教學文xd1F 11/05 20:37
web2312:另外補充在電腦上看一般有限範圍Rec.709的HD內容時,
web2312:所做的Y/C伸張(16~235->0~255)會導致灰階banding的產生,
web2312:這時候會建議播放器使用madVR,因為madVR支援dithering輸出
web2312:可以使伸張後的灰階正確的表現,而不會出現掉階現象.
web2312:或者使用mpc-hc時,將EVR-CP渲染器設定的"Half floating
web2312:point processing"打開,也可使EVR-CP以dithering輸出
web2312:~EVR-CP未開啟dithering
web2312:http://i.minus.com/ixXLTPD8kjyyF.png
[圖]
 
web2312:~EVR-CP開啟dithering10F 11/05 20:55
web2312:http://i.minus.com/iblmTvqCat7nAa.png
[圖]
 
web2312:~madVR開啟dithering12F 11/05 20:56
web2312:http://i.minus.com/ibjeXFS7gsIwiJ.png
[圖]
 
web2312:~測試影片 http://tinyurl.com/mlw7p6j14F 11/05 20:58
web2312:~將這張圖 http://www.lagom.nl/lcd-test/black.php
web2312:使用播放器shader將RGB值除以2後播放,16F 11/05 21:02
web2312:此時灰階1會成為0.5,即大於8 bit精度,這時開啟dithering
web2312:然後截圖後用photoshop做二值化來看看他的抖色pattern
web2312:http://i.minus.com/ibvKiUwAagqHqD.png  (Threshold=1)
[圖]
 
web2312:這時候可以看到圖中的1(實際上為8-bit灰階下的0.5)20F 11/05 21:04
web2312:透過抖色方式保留了資訊,而非直接rounding至1
web2312:更正第二行推文 ~在"接受全範圍RGB的顯示裝置"上看一般..~
gn01160025:推教學  所以說電腦用HDMI輸出到電腦螢幕  要改ycbcr23F 11/05 22:39
gn01160025:是因為電腦螢幕的HDMI是預設在(16~235)囉?
gn01160025:所以若是遇到這種情況用DVI輸出會比HDMI好嗎?
gn01160025:因為可以省下一次Y/C的轉換
coldcolour:1.不一定  2.HDMI也可以輸出0~255 RGB (設定正確的話)27F 11/05 22:49
coldcolour:DVI是一定輸出0~255 RGB
firenick:那DP介面呢?29F 11/05 22:57
coldcolour:同HDMI  YCbCr跟RGB都支援30F 11/05 23:02
s25g5d4:N跟I都可以設定0~255或16~235喔~ 驅動內就能改了31F 11/06 01:06
※ 編輯: coldcolour      來自: 114.32.83.104        (11/06 08:15)
vic81324:非本版相關事務,但有強人回覆保留文章一個禮拜後刪除32F 11/06 10:23
desamber:推  長知識!一般人應該都搞不清楚電腦螢幕跟電視的差別33F 11/06 12:43
coldcolour:轉錄至看板 Digitalhome                               11/07 09:32

--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 3710 
分享網址: 複製 已複製
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇