Saturday, November 17, 2018

VGA Introduction

VGA,有Red/Green/Blue三槍,Horizontal Sync/ Vertical Sync/Sync On Green

Sync On Green顧名思義就是把Sync放在G槍中,古早的電腦有這種設計,在CSC公司看過...是三條BNC線。

5V/SDA/SCL for EDID,SDA/SCL還有DDCCI。

至於 Scaler 韌體, 是利用一個內建的Table去判斷要套用到Timing,此Table中有極性、頻率、Total,套用到Timming也可能重疊。


 下列Pin腳定義




下列波形圖,左圖為800x600@85Hz,右圖為H Sync and R Signal for 5 Starcase Pattern(可看到梯子般一階一階)



下列波形圖為SYNC的極性




TODO: 重疊Timing


Keyword; VGA、Scaler、Timming、SYNC、波形圖

IR 紅外線遙控器 (NEC/RC5)

IR遙控器,TV必備(廢話...),部分高階Monitor也會有。

 由一堆0101010組成....代表“1" 的訊號長度2.25ms,代表“0" 的訊號長度1.12ms,High時候會有個載波...其他的跟本宅軟體無關不介紹了。

 韌體判斷完“START”後,就是判斷01了,如果按下不放遙控器每108ms會送一次repeat波形。

NEC與RC5都是一個波形就是一個完整的遙控器碼,而IODATA家的遙控器是送兩個波形,才組成一個完整的遙控器碼...

下圖為NEC與RC5的波形圖。







最後最重要的...紅外線頻段容易有干擾,之前開發階段,日本客戶就feedback會說:TV放著不做任何動作,會自己誤動作....恩見鬼了...最後還真在台灣也複製出來....。






Keyword: IR、NEC、RC5、IrDA、紅外線遙控器

Sunday, November 11, 2018

Gamma Curve and Color Temperature


Gamma Curve 基本反應人眼可以看到的色彩帶的利用率, 就是利用人眼對光線刺激(light stimulus)的感受度,More sensitive on dark side; Less sensitive on bright side。



Color Temperature色溫, 低色溫系偏紅為暖色系, 高色溫偏藍色為冷色系,歪國人就喜歡暖色系,記得本宅在美國唸書時候,到處都是暖色燈泡, 一個月就看得我眼睛都要瞎了...。色溫最簡單的就是Gain去調整,不過Color Tracking就...。


常用色溫表


TODO: formula for x,y, color temp


Keyword: Scaler, Monitor, Gamma, Color Temperature, Color Tracking

Thursday, November 8, 2018

Compoment/YPbPr

Component為日規接頭,即YPbPr。

訊號線共三根,分別傳送Y、Pb、Pr,Y為Luminence,Pb是Blue與Y差異度,Pr是Red與Y差異度, Green則可由下列formula計算出,所以畫質較S-Video好。

Y = 0.2126 R + 0.7152 G + 0.0722 B

下圖為Component接頭的Pin腳定義...沒波形圖



Keyword: Component、YPbPr、Video、Japan


Wednesday, November 7, 2018

S-Video


S-Video為CVBS進階版,將YC分離為獨立兩根Pin。



下列PIN腳定義,及NTSC、PAL、SECAM波形圖,2010年量測。


Keyword: S-Video、CVBS、YC分離、chroma

Sunday, November 4, 2018

CVBS/Composite/AV端子


CVBS、Composite、AV端子、RCA線...等

兩根PIN, 一地,一訊號,大Y跟C是一起的。

下列為NTSC、PAL、SECAM波形圖,2010年量測,應該是Gray Scale圖。



Keyword: CVBS、Composite、AV端子

TV/Monitor Input/Output Block Diagram




古早以前,TV的輸入還有CVBS、S-Video、Component(日規)、Analog Tuner。

現在TV大概都是就 HDMI、CVBS、Analog Tuner,日規就再多DTV Module。

Monitor輸入有VGA、DVI、HDMI、DP等,基本沒有IR,也不用EEPROM,不過有DDCCI,也可能有UART,至於MHL的話....還是無線方便。 


下圖2010年繞跑前畫的,懶得改了








Keyword: Scaler、TV、Monitor、Block Diagram

Friday, November 2, 2018

Timer Function應用(aTimerRepeatStart)


Suppose we would like to do something periodically in our embedded system.

Without Timer Function:
1. Add a time variable
2. Compare time variable with  system time in a main loop.
3. If timeout happens, then do something; if not, go to step 2.
...lousy...又臭又長

With aTimerRepeatStart function:


Simply one line code to achieve it :

aTimerRepeatStart(Id, 3000, Do_Something_Function_Pointer);


The advantage by using Timer Library is that
1. Code is clear and simple
2. Code is not spread everywhere.
3. Easy to do platform porting

不過前提就是要有加這些Timer fucntion了...廢話...。


Keyword: Scaler, Monitor Firmware, Timer.





17x17x17 3D-Lut

晨星mStar 3D lut,由三軸去調整出色域Gamut/Gamma/Color Temperature,17x17x17 points,RGB:0~255,interpolation,也有小資料量的9x9x9可直接用。

DICOM,醫療灰階標準

DICOM,醫療灰階標準,JND,直接查表吧...不然就Excel套公式吧。


JND formula

Keyword: Scaler, Medical Monitor, DICOM, JND

ALS(Auto Luminance Stabilizer), sensor of light and temperature, 追踪背光

ALS(Auto Luminance Stabilizer), sensor of light and temperature, 追踪背光,for DICOM.

追踪Algorithm,原本我同事是依據高亮或低亮面板去追踪,速度很快,然而他繞跑了,本宅雖然逆來順受但本宅不是勤勞的小蜜蜂,改成通用版,速度比較慢,不然我司Panel多的跟山一樣...。


Keyword: Scaler, Medical Monitor, ALS, DICOM



Timer Function應用(aTimerStart)

來說說timer function應用(例如:顯示OSD三秒後要清除OSD)

ShowMainMenu()
CleanMainMenu()

以mStar來說,都是在OsdTimeoutHandler()去處理清除OSD。
而以GNSS、RT TV平台來說,直接就有Timer function可以直接使用(prototype如下),所以可以在ShowMainMenu()後直接呼叫aTimerStart(Id, 3sec, CleanMainMenu())。

好處是code可以很集中,不會散的到處都是,而且將來要porting至其他平台時,很方便,壞處是如果有其他交互作用,造成bug的話, 要追踪會比較麻煩,所以適用簡單的action。


P.S. u8TimerId