平板電視OSD的結(jié)構(gòu)化界面設(shè)計(jì)
日益華麗的平板電視OSD開發(fā)占據(jù)了固件工程師大量的時(shí)間,采用結(jié)構(gòu)化的OSD設(shè)計(jì)可以縮短開發(fā)時(shí)間,提高代碼質(zhì)量。本文在介紹OSD的實(shí)現(xiàn)方法、OSD類型、OSD的UI基本元素及定義基礎(chǔ)上,詳細(xì)分析了使用結(jié)構(gòu)化的OSD UI處理機(jī)制實(shí)現(xiàn)OSD開發(fā)的方法和思路。
本文引用地址:http://2s4d.com/article/167910.htm
圖1:字符型OSD。
隨著具有各種豐富功能的平板電視不斷上市,日益華麗的OSD界面設(shè)計(jì)占據(jù)了固件開發(fā)工程師大量的開發(fā)時(shí)間。不少的固件工程師不斷地重復(fù)著同樣的工作:為每一個(gè)機(jī)種編寫著同樣的OSD文字、圖形及人機(jī)交互的界面(UI)互動(dòng)代碼。在UI及OSD較復(fù)雜的系統(tǒng)里,該部分的代碼量高達(dá)30-60%,同時(shí),調(diào)試不健壯的UI代碼也將占用大量的系統(tǒng)調(diào)試時(shí)間。
平板電視的UI主要具有建立在機(jī)器上的按鍵和紅外遙控器等輸入以及OSD、蜂鳴器等輸出,OSD的主要作用是提供一個(gè)直觀的圖形界面,幫助用戶完成各種對(duì)機(jī)器的控制和信息獲知等任務(wù)。圖1、2呈現(xiàn)了用戶可能經(jīng)常看到的OSD外觀。隨著系統(tǒng)處理能力的提高,現(xiàn)在的OSD甚至可以提供內(nèi)建游戲、記事本和萬年歷等各種附件功能。本文主要討論的是OSD固件的設(shè)計(jì)及與之相關(guān)的UI控制,并試圖提供一個(gè)關(guān)于平板電視中UI的定義和解決方案,縮短固件工程師在UI OSD界面構(gòu)造上的時(shí)間。本文中的概念及方案同樣適用于其它具有點(diǎn)陣顯示控制任務(wù)的場合。
OSD的主要實(shí)現(xiàn)方法和類型
目前有兩種主要的OSD實(shí)現(xiàn)方法:外部OSD發(fā)生器與視頻處理器間的疊加合成;視頻處理器內(nèi)部支持OSD,直接在視頻緩存內(nèi)部疊加OSD信息。
外部OSD發(fā)生器與視頻處理器間的疊加合成的實(shí)現(xiàn)原理是:由一個(gè)MCU內(nèi)建的字符發(fā)生器及顯示緩存,利用快速消隱(Fast-Blank)信號(hào)切換電視的畫面和OSD顯示內(nèi)容,使OSD的字符等內(nèi)容疊加在最終的顯示畫面上,在OSD和顯示畫面疊加處理過程中,通過調(diào)整兩者之間的比例可以實(shí)現(xiàn)OSD的半透明(Blending)效果。同時(shí),對(duì)OSD信號(hào)中的紅綠藍(lán)信號(hào)進(jìn)行重新編碼,可以得到不同的OSD顏色效果。
另外一種實(shí)現(xiàn)方法是視頻處理器內(nèi)部支持OSD,直接在視頻緩存內(nèi)部疊加OSD信息。這一類視頻處理通常具有外部存儲(chǔ)器或內(nèi)部少量的行緩存,同時(shí)具有OSD發(fā)生器,OSD的合成和控制直接在視頻緩存內(nèi)完成,同樣具有上述的半透明和顏色控制功能。
OSD具有字符型(Font-Based)和位圖型(Bit-Map)兩種類型。
字符型OSD(圖1屬于字符型):為了節(jié)約顯示緩存,早期及低成本的解決方案中使用字符型OSD發(fā)生器,其原理是將OSD中顯示內(nèi)容按照特定的格式(12×18、12×16等)進(jìn)行分割成塊,例如數(shù)字0-9、字母a-z、常用的亮度、對(duì)比度符號(hào)等,并把這些內(nèi)容固化在ROM或Flash中,在顯示緩存中僅存放對(duì)應(yīng)的索引號(hào),這樣的“字典”結(jié)構(gòu)可以大幅度減少顯示緩存的需求。
同時(shí),為了提供對(duì)每個(gè)字符的顏色等屬性的控制,通常還具有一個(gè)與顯示緩存一樣大小的屬性緩存,其屬性(前景顏色、背景顏色、閃爍等)對(duì)整個(gè)字符中的每個(gè)像素有效。為了彌補(bǔ)這種方式不能為每個(gè)像素指定顏色的缺點(diǎn),OSD發(fā)生器的設(shè)計(jì)者提供了采用多個(gè)顯示緩存合并的方式呈現(xiàn)多色字符的方案。其原理是每個(gè)顯示緩存確定一種顏色方案,當(dāng)兩個(gè)甚至更多個(gè)顯示緩存合并以后就可以“拼湊”出超過兩種顏色的多色字符。
圖2:位圖型OSD。
字符型OSD優(yōu)點(diǎn)是可以使用OSD內(nèi)部較少的顯示緩存,并且MCU只需要指定顯示內(nèi)容的索引即可顯示對(duì)應(yīng)OSD信息,可以在比較低速的MCU上實(shí)現(xiàn)。但正是由于上述的顯示信息和顏色編碼方式不夠直觀,會(huì)給字符型OSD的固件開發(fā)帶來一些麻煩。通常液晶顯示器、低成本的平板電視和CRT傳統(tǒng)電視上均使用這一類OSD,目前仍占據(jù)著市場主流地位。
相較字符型OSD,位圖OSD(圖2屬于位圖型)的處理原理較直觀和簡單:通過對(duì)最終顯示內(nèi)容上特定區(qū)域的每個(gè)像素點(diǎn)進(jìn)行改變,直接將OSD信息疊加到最終的顯示畫面上,其按像素進(jìn)行控制的方式可以保證具有多色及足夠的表現(xiàn)能力。位圖OSD發(fā)生器通常內(nèi)建在視頻處理器內(nèi)部,并共享使用其主顯示緩存。也有獨(dú)立在視頻處理器之外的專業(yè)OSD位圖發(fā)生器,如美信的MAX4455,通常這一類芯片需要外部SDRAM作為顯示緩存。
位圖OSD的顯示效果理論上可以做到非常完美的程度,可以提供類似Windows中具有立體感的各種物件,如具有陰影的按鈕、顏色豐富的圖形和文字等,其缺點(diǎn)是必須具有足夠的OSD顯示緩存,以及按像素進(jìn)行處理而對(duì)MCU帶來的速度要求。通常在大尺寸的高端平板電視和專業(yè)顯示器上會(huì)使用這一類OSD。隨著技術(shù)的不斷發(fā)展和存儲(chǔ)器的成本的不斷下降,未來的OSD應(yīng)該都是位圖型的。
OSD的UI基本元素及定義
顯示OSD的目的是需要向用戶表達(dá)信息,那么哪些信息需要表達(dá)呢?通常包括提示、警告信息、控制參數(shù)的數(shù)值顯示等。盡管無論其顯示形狀是什么,其本質(zhì)都是一些字符或像素點(diǎn)的組合,但是對(duì)于這些信息的分類和屬性定義有助于固件開發(fā)人員的統(tǒng)一編碼和代碼處理。本文嘗試分類,分析這些元素并在下面給出統(tǒng)一的固件處理方法。
1. OSD基本概念
UI語言:指OSD內(nèi)容中的文字部分使用的語言類型。
UI模式:指OSD內(nèi)容適用的環(huán)境,例如不同的信號(hào)源(電視、DVD、PC)帶來的模式變化,其作用主要區(qū)分不同的環(huán)境下OSD的不同表現(xiàn)。
UI場景:特定語言模式下及較多信息頁面情況下,當(dāng)前OSD適用的特定頁面。
UI事件:用戶利用輸入設(shè)備向UI系統(tǒng)提供的操作命令。
UI動(dòng)作表:指在特定UI場景中,對(duì)于UI輸入的命令進(jìn)行對(duì)應(yīng)處理的索引表。
OSD畫布:指整個(gè)OSD呈現(xiàn)的區(qū)域,通常為一個(gè)矩形區(qū)域。
OSD位置:通常指在OSD畫布中,相較左上角原點(diǎn)的相對(duì)位置。
OSD物件:呈現(xiàn)在畫布上,表達(dá)特定信息,具有特定屬性的像素組合。
評(píng)論