0 引 言
OSD(on screen display),即在屏顯示系統(tǒng),是實(shí)現(xiàn)人機(jī)界面交互的基礎(chǔ),在視頻處理SOC中作為重要功能模塊有著廣泛的應(yīng)用。
基于SOC技術(shù)的模塊化設(shè)計(jì)要求各功能模塊盡可能小地占用電路資源,以滿足芯片系統(tǒng)對(duì)資源使用和面積的控制。對(duì)于OSD功能模塊而言,存儲(chǔ)器資源為主要開(kāi)銷。因此,減少存儲(chǔ)器資源的使用對(duì)降低OSD模塊電路資源需求有著重要的意義。
OSD電路中,字符索引算法的選取直接決定了存儲(chǔ)器資源的使用情況,因此采用更優(yōu)化的字符索引算法可以達(dá)到降低存儲(chǔ)器資源需求量的目的。作者在逐字符索引法的基礎(chǔ)上,針對(duì)該算法的缺點(diǎn),提出了二步索引法。在保證OSD功能完整的同時(shí),大大地降低了系統(tǒng)對(duì)存儲(chǔ)器資源的需求。
1 二步索引算法的原理及特點(diǎn)
1.1 字符索引算法原理
字符索引算法是將OSD菜單中所顯示的字符按菜單顯示順序進(jìn)行編碼,并存儲(chǔ)于存儲(chǔ)器中,在讀取字符點(diǎn)陣信息以顯示菜單時(shí)通過(guò)讀取編碼信息來(lái)索引所需字符信息。設(shè)菜單中字符尺寸為C1×Ch(bit),菜單共顯示m行字符,每行顯示n個(gè)字符,字符編碼Ni×j,并且存儲(chǔ)器中一個(gè)地址所存儲(chǔ)的數(shù)據(jù)(bit)大于C1。則讀取菜單中第i行第j個(gè)字符時(shí),首先通過(guò)索引得到存儲(chǔ)器中相應(yīng)字符的字符編碼Ni×j,索引地址可通過(guò)公式(1)得出:
add_mi×j=addr_n0×0+(i-1)n+n-1 (1)
將讀取出的字符編碼Ni×j轉(zhuǎn)換成相應(yīng)字符點(diǎn)陣信息在存儲(chǔ)器中存儲(chǔ)空間的首地址。地址的轉(zhuǎn)換可通過(guò)公式(2)計(jì)算得到:
addr_di×j=addr_d0×0+Ch×(Ni×j-1) (2)
式中:addr_u0×0和addr_d0×0分別是字符編碼存儲(chǔ)器和字符點(diǎn)陣信息存儲(chǔ)器中首地址指針。根據(jù)Ch控制從字符點(diǎn)陣信息存儲(chǔ)器中讀出地址范圍為addr_di×j到addr_di×j+Ch的數(shù)據(jù)即完成了對(duì)菜單中第i行第j個(gè)字符的點(diǎn)陣數(shù)據(jù)信息的讀取。
逐字符索引算法下,將空格按字符看待并進(jìn)行編碼,菜單每行固定顯示n個(gè)字符,字符長(zhǎng)度小于n的菜單行由空格來(lái)補(bǔ)齊。由于采用定長(zhǎng)的存儲(chǔ)結(jié)構(gòu),所以字符索引電路原理簡(jiǎn)單且易于實(shí)現(xiàn),只需要根據(jù)菜單字行符長(zhǎng)數(shù)n就可以計(jì)算出相應(yīng)行字符的首地址指針。但這種存儲(chǔ)結(jié)構(gòu)的缺點(diǎn)也很明顯,就是對(duì)存儲(chǔ)器的使用量較大。在該算法下,可以計(jì)算出在OSD所需要的使用的存儲(chǔ)器量為:m×n×Ch,如圖1(a)所示。存人其中的“空格”(圖中編碼為“28”)會(huì)占用相當(dāng)一部分的存儲(chǔ)器資源。在一些情況中,用于補(bǔ)充空缺而存儲(chǔ)的“空格”所占用的存儲(chǔ)空間甚至?xí)茸址c(diǎn)陣信息的存儲(chǔ)空間還要多,這是對(duì)存儲(chǔ)器資源極大的浪費(fèi)。
1.2 二步索引算法原理
如果只存儲(chǔ)字符點(diǎn)陣信息而不存儲(chǔ)‘空格 i,顯然對(duì)節(jié)省存儲(chǔ)器資源將有著很大的幫助。為達(dá)到這樣的設(shè)計(jì)目標(biāo),在逐字索引法的基礎(chǔ)上,通過(guò)改進(jìn)提出了二步索引算法。
設(shè)第k幅菜單中顯示nk行字符,菜單第i行中顯示li個(gè)字符。其中,nk存儲(chǔ)于寄存器中,li存儲(chǔ)在一段地址長(zhǎng)度為nk的字符數(shù)信息存儲(chǔ)器中。在二步索引算法下,通過(guò)讀取字符數(shù)信息存儲(chǔ)器中的數(shù)據(jù)以及根據(jù)nk限制讀出的li數(shù)據(jù)個(gè)數(shù),可以確定菜單中各行所顯示的字符的個(gè)數(shù)。第k幅菜單中第i行第j個(gè)字符的編碼信息在存儲(chǔ)器中的地址指針可以根據(jù)公式(3)確定:
讀出字符編碼數(shù)據(jù)Ni×j,仍然通過(guò)公式(2)得到相應(yīng)字符在點(diǎn)陣信息存儲(chǔ)器中存儲(chǔ)地址段的首地址指針,從而讀出全部的字符點(diǎn)陣信息。完整的數(shù)據(jù)讀取操作過(guò)程如圖2所示。
在二步索引算法中,引入了行顯示字符數(shù)li和菜單顯示字符行數(shù)nk2個(gè)參數(shù),通過(guò)nk首先索引菜單中第i行的顯示字符數(shù)li,根據(jù)li控制索引該行第j個(gè)字符編號(hào)Ni×j。根據(jù)li可以知道每行顯示的字符數(shù),所以字符編碼信息可以按行順序緊密的存儲(chǔ),即每行存儲(chǔ)的數(shù)據(jù)采用非定長(zhǎng)的方式,如圖1(b)所示。與圖1(a)所示的逐字索引法存儲(chǔ)器結(jié)構(gòu)相比,二步索引法在對(duì)存儲(chǔ)器資源的節(jié)省方面效果是顯著的。
2 二步索引法OSD電路結(jié)構(gòu)實(shí)現(xiàn)
2.1 字符索引電路實(shí)現(xiàn)
如圖3所示,相比于逐字索引法的電路實(shí)現(xiàn)結(jié)構(gòu),二步索引法的電路實(shí)現(xiàn)結(jié)構(gòu)中增加了字符行寄存器和用于存放行字符數(shù)信息的存儲(chǔ)器。字符行寄存器中存人nk,根據(jù)字符行計(jì)數(shù)器所計(jì)數(shù)據(jù)與nk比較來(lái)控制從行字符數(shù)存儲(chǔ)器中讀出的數(shù)據(jù)數(shù)。讀出的行字符數(shù)信息li再用以控制顯示第i行菜單字符所需從字符編碼存儲(chǔ)器中讀出的字符編碼數(shù)據(jù)數(shù)。讀出的字符編碼Ni×j通過(guò)地址生成電路轉(zhuǎn)換成相應(yīng)字符的點(diǎn)陣信息在字符點(diǎn)陣ROM中存儲(chǔ)地址段的首地址,從而在字符點(diǎn)陣ROM中索引出相應(yīng)字符的點(diǎn)陣數(shù)據(jù),如此反復(fù),可實(shí)現(xiàn)對(duì)全部字符點(diǎn)陣數(shù)據(jù)的索引。
2.2 數(shù)據(jù)輸出控制與層混合疊加電路實(shí)現(xiàn)
從字符點(diǎn)陣ROM中讀取出的字符點(diǎn)陣信息經(jīng)過(guò)點(diǎn)陣重組電路的處理后將按字符Cl×Ch順序的點(diǎn)陣信息轉(zhuǎn)換成按菜單行順序的格式存入到輸出緩存中。輸出緩存中數(shù)據(jù)的存儲(chǔ)順序如圖3所示。
輸出緩存能夠存儲(chǔ)整幅菜單的顯示信息,以使菜單生成和菜單輸出顯示2個(gè)過(guò)程相互獨(dú)立,從而使得在顯示菜單的同時(shí),可進(jìn)行新菜單內(nèi)容的讀入,保證菜單顯示的連貫勝。輸出緩存容量大小由包含顯示信息最多的一幅菜單決定。
從輸出緩存中讀出的數(shù)據(jù)用于控制生成菜單字符層,在層選擇電路中與菜單背景層和屬性條層進(jìn)行疊加處理后輸出一幅完整的菜單。字符層、菜單背景層和屬性條層相互獨(dú)立,由層混合控制電路控制進(jìn)行混合疊加處理,再將菜單與屏幕背景層進(jìn)行疊加輸出混合視頻信號(hào)。層混合疊加電路的實(shí)現(xiàn)結(jié)構(gòu)如圖4所示。
3 OSD電路的FPGA實(shí)現(xiàn)及功能驗(yàn)證
設(shè)計(jì)在Xilinx公司的ISE6.3軟件環(huán)境下,使用Verilog HDL硬件描述語(yǔ)言對(duì)其電路邏輯進(jìn)行描述,并以Xilinx公司xc2v1500bg575-4型為核心芯片的FPGA仿真驗(yàn)證平臺(tái)對(duì)其進(jìn)行硬件實(shí)現(xiàn)及功能驗(yàn)證。FPGA驗(yàn)證平臺(tái)架構(gòu)如圖5所示。
驗(yàn)證平臺(tái)輸入模擬視頻信號(hào),經(jīng)SAA7111A芯片電路A/D采樣轉(zhuǎn)變?yōu)閿?shù)字視頻信號(hào)接入FPGA驗(yàn)證平臺(tái)。經(jīng)過(guò)視頻處理電路去隔行、尺寸縮放等處理的視頻信號(hào)在圖象混合電路中與OSD菜單混合后輸出經(jīng)DS90C38芯片電路轉(zhuǎn)為L(zhǎng)VDS(低壓差分信號(hào))信號(hào)并驅(qū)動(dòng)液晶屏顯示結(jié)果。
對(duì)2種字符索引算法下實(shí)現(xiàn)的OSD電路進(jìn)行驗(yàn)證比較。OSD字符索引電路部分使用到的存儲(chǔ)器資源可以分為字符編碼存儲(chǔ)器、行字符數(shù)存儲(chǔ)器、字符行寄存器3種。以生成圖6中所示菜單為例分析2種算法下OSD字符索引電路對(duì)存儲(chǔ)器資源的使用情況,將結(jié)果列于表1中。
從表中可以看出,以二步索引算法實(shí)現(xiàn)的字符索引電路使用了8個(gè)bytes的行字符數(shù)存儲(chǔ)器和1個(gè)byte的字符行寄存器,而以逐字索引算法實(shí)現(xiàn)的字符索引電路在這2類存儲(chǔ)器上的使用量均為0。但是,后者在字符編碼存儲(chǔ)器的使用上卻達(dá)到了96 bytes,遠(yuǎn)遠(yuǎn)多于前者50 bytes的使用量。從表1中可以看到,前者對(duì)存儲(chǔ)器資源的總使用量比起后者減少了很大一部分。隨著菜單尺寸的增加和顯示的字符信息的增加,二次索引算法對(duì)存儲(chǔ)器資源的節(jié)省效果也會(huì)更加的顯著。
4 結(jié)束語(yǔ)
采用模塊化設(shè)計(jì)方法實(shí)現(xiàn)的OSD電路,作為視頻格式處理芯片的子電路模塊,對(duì)硬件資源的使用將影響到整塊芯片的電路性能。本文針對(duì)OSD電路中以存儲(chǔ)器為硬件資源的主要開(kāi)銷這個(gè)特點(diǎn),提出了采用二步索引算法實(shí)現(xiàn)的一種改進(jìn)型字符索引結(jié)構(gòu)的OSD電路。引入字符行寄存器和行字符數(shù)存儲(chǔ)器,通過(guò)對(duì)行字符數(shù)和字符編碼的二步索引,從而得到了菜單的顯示信息,同時(shí)大大地降低了對(duì)存儲(chǔ)器資源的使用。該算法的硬件結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),在實(shí)現(xiàn)了同樣的電路功能的前提下,大大節(jié)省了硬件資源的開(kāi)銷。
本文所介紹的基于二步索引算法實(shí)現(xiàn)的改進(jìn)字符索引結(jié)構(gòu)的OSD電路,將作為子模塊電路集成于一款視頻格式轉(zhuǎn)換多媒體芯片的系統(tǒng)中,為其提供人機(jī)交互功能。該系統(tǒng)可應(yīng)用于汽車電子、視頻顯示等多媒體處理場(chǎng)合。
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7440瀏覽量
163529 -
算法
+關(guān)注
關(guān)注
23文章
4592瀏覽量
92527 -
編碼
+關(guān)注
關(guān)注
6文章
933瀏覽量
54733
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論