|
|
发表于 2006-8-29 21:57:48
|
显示全部楼层
Post by andey
what is Subpixel?
http://www.higherorder.org/wiki/Fontconfig
什麼是 subpixel rendering? 如果你用放大鏡去看 LCD, 會發現一個正方形的像素是由三個長方形小像素構成的。這排 列通常是紅綠藍,也就代表如果液晶螢幕的水平解析度是 1024 個像素,它其實有 1024x3 = 3072 個點,只不過這些點是 rgbrgbrgb... 依序排列的。以白底黑字為 例,如果需要滿格的像素,rgb 三格就需是全關 (0,0,0), 如果只是右邊三分之二 部份, 就關掉 g 和 b, 留下最左邊的 r 開著。這樣子理論上就會有原來三倍的水 平像素可以使用,大幅增加了液晶螢幕的解析度。但由於只開著紅色或黃色或其他 顏色,會有很明顯的光暈,所以一般會採用 filtering 的方式,把一個次像素的 值往左右兩格分散(因為無論對哪一格次像素來說,它的左右兩格的顏色和本身都 是不同的,所以往左右兩格分散可以均勻影響亮度),成為 1/3, 1/3, 1/3 分佈 ;但這樣的壞處是會顯得太模糊了一點,於是再多一層,把原先三格分成 5 格, 但權重改為 1/9 2/9 3/9 2/9 1/9。3/9 那一格就是原本的次像素,而鄰近的格子 就用這樣的方法分散後和原來該次像素格子的光度值相加,達到像素往中央集中, 卻又不太模糊的效果。Windows XP 有個 ClearType 選項可以打開對液晶螢幕顯示 最佳化,其基本原理就是 subpixel rendering. Xft 也有這樣的功能,不過 Xft 做得更多,除了 subpixel 外,還加上了 anti-aliasing。Fontconfig 的 rgba 選項就是設定液晶螢幕次像素的排列方式,一般都是 rgb, v 開頭的表示三種顏色 是縱向排列。如果好奇的話可以拿放大鏡仔細瞧瞧,或用數位相機近拍下來放大觀 察。 |
|