這個是色階嗎?有時候電腦也出現這種情況,跟顯卡的64bit/128bit有什麼區別?小米2,魅族mx以及mx2手機對應的GPU呢?


一般我們說顯卡64bit和128bit通常指的是顯存帶寬。顯卡繪製在屏幕上的數據是從顯存內讀出來的,顯存帶寬指的是一次可以取出多少數據。而圖像變成這種效果,和一次讀出多少數據沒有關係。更高的顯存帶寬可以更快的傳輸數據。如果你的圖像一直在變化,那麼更快的取出數據送到GPU內加工,可以更快的完成渲染工作,把圖像顯示出來。如果帶寬很低,你的GPU會處於得不到數據而沒法工作的狀態,也就不能渲染輸出,那麼你在顯示器上看到的效果就是畫面卡住了。性能差的顯卡整個渲染工作進行的都不給力,一秒鐘只能渲染出一幅圖,那麼你玩遊戲就會像看幻燈片一樣了。

至於圖中所說的32bit,指的是另外一種意義。

我們先從簡單的內容說起。

你肯定知道任何圖像在計算機中存儲的都是數據。對於一張黑白圖像來說,每個點(我們稱之為像素)只有兩種可能,不是黑的就是白的。那存儲的時候每個像素只要一個bit就足夠了,比如0代表黑,1代表白。那0000011111就是一半黑一半白的一條。通常稱一個像素所佔用的位數為色彩深度,比如這種圖像的色彩深度就是1。

對於灰度圖(也就是大家常說的黑白照片)由於要表現不同的黑和白,1bit肯定不夠了。我們通常用256個數字表示不同的灰度。也就是有256種不同的灰白黑。存成二進位的話就是8位。

對於彩色圖,我們通常用的RGB色彩系統有R,G,B三個分量。最簡單的彩色圖有256色,也就是每個像素8bit 。這種圖像的格式比較特殊,每個像素對應的值並非實際的RGB值,而是一個索引,還會有另外一個顏色表,根據索引找到表中的顏色提取出來才行。

256色漸變

對於一副16bit的彩色圖來說,每個像素只有16bit空間,一般5bit留給R,5bit留給B,6bit留給G。人眼對於綠色比較敏感。也可以把這1bit拿來表示透明度。這種圖像能表現的顏色有限。同樣的猴子看起來是這樣的。

-------------------------------------------------------------------------------

以下內容為16色點陣圖,而不是16bit。感謝@任天涯 提醒,手頭沒有合適的圖像處理軟體,等換台電腦了再補圖。

16色漸變

---------------------------------------------------------------------------------------

一張24bit 的彩色圖RGB每個分量都有256種灰度級,能表現相當豐富的色彩。一般我們用的圖像都是這種,可以通過(0,255,255)表示青色,用(255,0,0)表示紅色等等。

純正24k猴子

24位漸變

32bit一般是加上Aplha通道,也就是用多出來的8bit去表現一種「透明度」,這是一般圖像處理中的概念。不知道華為的32bit渲染說的是這種還是RGB就32bit。這需要去看GPU的手冊。

看到這裡你肯定知道圖片上的效果是怎麼出來的了。圖中所採用的色彩深度沒辦法表現平滑的顏色過渡,和顯存帶寬沒什麼關係。就算你用128bit去存放一個像素,人眼也根本看不出來區別。

在醫學影像上,拍出來的片子是有幾千個灰度級的。但是顯示的時候只能變成256個灰度級,這時需要對原始數據進行變換,我們稱之為調窗。選取一定範圍,把幾千個灰度級映射到256個,這樣通過調節範圍可以看到所有內容。

---------------------------12.10新增-----------------------------------------------

還是24bit上面那張圖,我又弄了張傳到了手機里,截圖放大後效果如下。

這張是放大了很大以後的結果。

其實幾乎是看不出來圖中那種效果的。

我的手機是Optimus 2X,顯卡Tegra2集成的。


@Cascade 講得很好。我來補充一些知識。今天時間不多,就不寫長答案了,如果需要有關圖像處理的詳盡講解,有時間再寫吧。

這個現象叫做Colour banding,是壓片入門必修課。高bit圖像源轉低bit圖像或者以低bit顯示時,如果不經過抖動處理出現的情況。你會發現一些字幕組因為壓片組技術修鍊不夠,甚至對畫面不作預處理直接裸壓,壓制出來的動畫在人物頭髮或者圓潤色彩過渡的地方會出現Colour banding。

詳細資料可以參看:http://en.wikipedia.org/wiki/Colour_banding

如果製作人不負責,出售的動畫的藍光碟甚至也會有Colour banding,比如《涼宮春日的憂鬱》初回限定版藍光光碟,結果就是我們這些字幕組的人還要在BDrip時幫製片廠商修畫面……因為,動畫創作的時候常常是用的每通道10bit甚至更高,但是製作用於出售的藍光光碟的時候目前只能使用8bit,也就是我們常說的R,G,B(255,255,255),不負責的製作人就讓這種colour banding誕生了。

Colour banding的解決辦法。我在壓制動漫的時候,一般是在AVS中用Dither濾鏡對畫面進行抖動處理,製造噪音填充過度畫面,然後再做降噪和抗鋸齒來讓畫面保持乾淨清晰。如果覺得效果不夠好,還會將畫面轉成每通道10bit,處理完畢了再圓滑的轉回8bit。題中的照片,也是用同樣的方式。

據我所知,小米2所用APQ8064的GPU核心Adreno320在測試中是支持32bit像素渲染的。魅族MX一代所用Exynos 4210的GPU核心Mali-400 MP只支持16bit像素渲染。MX2我沒有研究過,就不答了,歡迎補充。

希望對您有所幫助。


推薦閱讀:

不斷擴充的 SIMD 指令集會不會讓 CPU 從 GPU 手中奪回失去的並行計算市場?
GPU如此之強能否替代CPU?
為什麼電腦城的小弟小妹們沒系統地學過相關理論知識,卻這麼了解硬體?
移動 GPU 和桌面 GPU 的差距有哪些?
目前gpu渲染方面,哪些geforce卡比較有性價比?

TAG:圖形處理器GPU | 小米手機 | 魅族MX | 色階 |