最近工作時,臨時需要撈EDID資料來看...
(wiki:EDID-Extended display identification data)
大部分Vendor提供的Tools都是需要配合Vendor自己的Debug board或是Debug tool,
手邊有某HDMI Chip大廠的Tools,但是要搭配它的tool,
不然這個tools還蠻方便的,可以直接看每個欄位的對應infomation。
我自己原廠的tool,EDID的功能怎樣都撈不到,
不知道是disable掉?還是pending...
更別說親切的介面了...
之前是土炮,把DDC EEPROM解焊下來,
用我手邊的萬用燒錄器直接讀binary出來,
再用某HDMI Chip大廠的tools讀binary來看資料。
這次因為人在他鄉,手邊沒有烙鐵,加上這樣做有一定的風險,
(拿客戶的EVT kit的原則是,能不動就不動....)
因為VGA port正常,就接電腦直接撈EDID data,
所以我找到這套軟體還蠻方便的。
EDID Viewer utility
http://www.eldim.fr/products/display-controller/fpdlite/fpdlite-free-tools
Platform: Windows
Cost: Free!
可以撈出Windows取得的EDID Data,
直接顯示每個欄位對應的資訊,也有顯示Raw Data,
單純只是想看EDID info的話倒是個不錯的小工具....
話說...
最近回到家都很晚了...
今天早上八點半從公司出發,晚上十二點回到家,
出門到回家超過15小時...
最近真的是有點操...
2010年10月28日 星期四
2010年10月5日 星期二
Dot TK開放免費域名!!!!
今天心血來潮看了一下我的domain還有多久到期...
發現有開放設定DNS Server了!!!
http://www.dot.tk
很久以前有寫過介紹免費DNS的文章,
http://blog.mosquito.work/2008/01/blog-post_11.html
文章裡提了一個dns provider,提供申請別人的子網域名稱還有網域代管,
但是因為這個provider會擋google bot,
不久之後就花錢買domain了,
三年24.75USD,當下也是考慮了很久很久,
畢竟當初還是學生:)
現在,我購買Domain的這個網域也開放免費DNS了,
之前只提供Web redirecting,但現在是完整的囉!
(好像有90天要超過25hit的限制,不過這是很小case的要求:D )
簡單說...
http://www.dot.tk/en/pageA00.html
發現有開放設定DNS Server了!!!
http://www.dot.tk
很久以前有寫過介紹免費DNS的文章,
http://blog.mosquito.work/2008/01/blog-post_11.html
文章裡提了一個dns provider,提供申請別人的子網域名稱還有網域代管,
但是因為這個provider會擋google bot,
不久之後就花錢買domain了,
三年24.75USD,當下也是考慮了很久很久,
畢竟當初還是學生:)
現在,我購買Domain的這個網域也開放免費DNS了,
之前只提供Web redirecting,但現在是完整的囉!
(好像有90天要超過25hit的限制,不過這是很小case的要求:D )
簡單說...
http://www.dot.tk/en/pageA00.html
![]() |
| 輸入你要的domain,確認是否被註冊走... 限量是殘酷的啦XDDDD |
![]() |
| 喔喔!It's still avilable 選擇free domain繼續吧 |
![]() |
| 接著,問你website url,這是web redirecting 點擊下面的Use DNS for this domain |
![]() |
| 你可以選擇是否要用dot TK提供的Free DNS Service 但是只能增加A Record,就是只能指定到一個IP |
![]() |
| 或是選擇Use my own DNS Service 這裡輸入你的DNS代管服務 |
以上,基本上你就有了一個免費的Domain,
當年如果有免費的可以用,我八成不會花錢買吧XDDDDD
免費的DNS代管服務
雖然被DynDNS買下來了,不過品質不變,
我也是用這家的說:D
2010年9月15日 星期三
BLE WLE Implement and RGB convert to YCbCr(YUV)
看到BLE跟WLE的資料,
所以拿Python來寫看看...
因為主要是對Y做處理,所以要先將RGB轉成YCrCb(YUV)
reference:
第一篇的文章提到了一個重點,
當初在寫CA Transform Compress的時候,堅哥有建議我轉YUV,可以降低1/4的資訊量,
可是轉完整個畫面顏色都偏掉了,而那個時候我不清楚為什麼會這樣...
我以為是因為轉換過程的Loss,但實際上RGB轉YCbCr是接近Lossless的。
簡單說,當初我用了Analog的轉換式來運算,
但實際上RGB轉YCbCr有分Analog與Digital,
BT.601與BT.709的轉換式也不同。
YUV是根據人眼對顏色的感知所弄出來的color space,
同時,人眼對於亮度的變化感覺最明顯,
以下列式子為例,綠色占的比例最高,紅色次之,藍色最低,因為人對於綠色的感知程度最高
Ey = 0.299R+0.587G+0.114B
Ecr = 0.713(R - Ey) = 0.500R-0.419G-0.081B
Ecb = 0.564(B - Ey) = -0.169R-0.331G+0.500B
上述是BT.601的參數,而BT.709是針對LCD Display所定出來的建議值。
下面是BLE/WLE的Code,以及RGB與YCbCr的轉換
Result:
利用調整曲線讓Y更早截止、飽和,犧牲偏亮與偏暗的細節,
讓畫面看起來對比更高。
點圖可以看原始圖片,原圖是1920x1080的圖片,
上傳之後被縮小了Q.Q
PS.
謹以此文向當初我那難產的CA Transform Compress與堅哥至上敬意...
所以拿Python來寫看看...
因為主要是對Y做處理,所以要先將RGB轉成YCrCb(YUV)
reference:
- 請問 RGB 轉換至 YCbCr (YUV) 的計算公式中如何替換 Cg 的?
http://forum.slime.com.tw/thread102222.html - [程式] RGB與YUV的色彩轉換
http://www.wretch.cc/blog/killman/7147165 - RGB <--> YUV Conversion Formulas
http://www.cse.msu.edu/~cbowen/docs/yuvtorgb.html
第一篇的文章提到了一個重點,
當初在寫CA Transform Compress的時候,堅哥有建議我轉YUV,可以降低1/4的資訊量,
可是轉完整個畫面顏色都偏掉了,而那個時候我不清楚為什麼會這樣...
我以為是因為轉換過程的Loss,但實際上RGB轉YCbCr是接近Lossless的。
簡單說,當初我用了Analog的轉換式來運算,
但實際上RGB轉YCbCr有分Analog與Digital,
BT.601與BT.709的轉換式也不同。
YUV是根據人眼對顏色的感知所弄出來的color space,
同時,人眼對於亮度的變化感覺最明顯,
以下列式子為例,綠色占的比例最高,紅色次之,藍色最低,因為人對於綠色的感知程度最高
Ey = 0.299R+0.587G+0.114B
Ecr = 0.713(R - Ey) = 0.500R-0.419G-0.081B
Ecb = 0.564(B - Ey) = -0.169R-0.331G+0.500B
上述是BT.601的參數,而BT.709是針對LCD Display所定出來的建議值。
下面是BLE/WLE的Code,以及RGB與YCbCr的轉換
import Image
im = Image.open("test.jpg")
#print im.format, im.size, im.mode
im.show()
#BLE and WLE Filter
BIL = range(256)
BIL[0:20] = [0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,4,8,12,16,20]
BIL[236:256] = [236,240,244,248,252,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255]
im_array = im.load()
Y601CbCr = im
Y601CbCr_array = Y601CbCr.load()
x,y = im.size
#Convert image from RGB Space to Y601CbCr space
for i in range(x):
for j in range(y):
R = im_array[i,j][0]
G = im_array[i,j][1]
B = im_array[i,j][2]
Y601 = int(R * 0.299 + G * 0.587 + B * 0.114)
Cb = int(R * -0.169 + G * -0.332 + B * 0.500 + 128)
Cr = int(R * 0.500 + G * -0.419 + B * -0.0813 + 128)
Y601CbCr_array[i,j] = (Y601,Cb,Cr)
#BLE and WLE
x,y = Y601CbCr.size
for i in range(x):
for j in range(y):
Y601CbCr_array[i,j] = ( BIL[Y601CbCr_array[i,j][0]],
Y601CbCr_array[i,j][1],
Y601CbCr_array[i,j][2])
#Convert image from Y601CbCr space to RGB Space
x,y = im.size
for i in range(x):
for j in range(y):
Y601 = Y601CbCr_array[i,j][0]
Cb = Y601CbCr_array[i,j][1]
Cr = Y601CbCr_array[i,j][2]
R = int(Y601 + (1.4075 * (Cr - 128)))
G = int(Y601 - (0.3455 * (Cb - 128)) - (0.7169 * (Cr - 128)))
B = int(Y601 + (1.7790 * (Cb - 128)))
im_array[i,j] = (R,G,B)
im.show()
Result:
![]() |
| Orignal |
![]() |
| After BLE and WLE |
利用調整曲線讓Y更早截止、飽和,犧牲偏亮與偏暗的細節,
讓畫面看起來對比更高。
點圖可以看原始圖片,原圖是1920x1080的圖片,
上傳之後被縮小了Q.Q
PS.
謹以此文向當初我那難產的CA Transform Compress與堅哥至上敬意...
訂閱:
文章 (Atom)






