基于改進型二步索引算法OSD電路的FPGA
引 言
OSD(on screen display),即在屏顯示系統(tǒng),是實現(xiàn)人機界面交互的基礎(chǔ),在視頻處理SOC中作為重要功能模塊有著廣泛的應(yīng)用。
基于SOC技術(shù)的模塊化設(shè)計要求各功能模塊盡可能小地占用電路資源,以滿足芯片系統(tǒng)對資源使用和面積的控制。對于OSD功能模塊而言,存儲器資源為主要開銷。因此,減少存儲器資源的使用對降低OSD模塊電路資源需求有著重要的意義。
OSD電路中,字符索引算法的選取直接決定了存儲器資源的使用情況,因此采用更優(yōu)化的字符索引算法可以達到降低存儲器資源需求量的目的。作者在逐字符索引法的基礎(chǔ)上,針對該算法的缺點,提出了二步索引法。在保證OSD功能完整的同時,大大地降低了系統(tǒng)對存儲器資源的需求。
1 二步索引算法的原理及特點
1.1 字符索引算法原理
字符索引算法是將OSD菜單中所顯示的字符按菜單顯示順序進行編碼,并存儲于存儲器中,在讀取字符點陣信息以顯示菜單時通過讀取編碼信息來索引所需字符信息。設(shè)菜單中字符尺寸為C1×Ch(bit),菜單共顯示m行字符,每行顯示n個字符,字符編碼Ni×j,并且存儲器中一個地址所存儲的數(shù)據(jù)(bit)大于C1。則讀取菜單中第i行第j個字符時,首先通過索引得到存儲器中相應(yīng)字符的字符編碼Ni×j,索引地址可通過公式(1)得出:
add_mi×j=addr_n0×0+(i-1)n+n-1 (1)
將讀取出的字符編碼Ni×j轉(zhuǎn)換成相應(yīng)字符點陣信息在存儲器中存儲空間的首地址。地址的轉(zhuǎn)換可通過公式(2)計算得到:
addr_di×j=addr_d0×0+Ch×(Ni×j-1) (2)
式中:addr_u0×0和addr_d0×0分別是字符編碼存儲器和字符點陣信息存儲器中首地址指針。根據(jù)Ch控制從字符點陣信息存儲器中讀出地址范圍為addr_di×j到addr_di×j+Ch的數(shù)據(jù)即完成了對菜單中第i行第j個字符的點陣數(shù)據(jù)信息的讀取。
逐字符索引算法下,將空格按字符看待并進行編碼,菜單每行固定顯示n個字符,字符長度小于n的菜單行由空格來補齊。由于采用定長的存儲結(jié)構(gòu),所以字符索引電路原理簡單且易于實現(xiàn),只需要根據(jù)菜單字行符長數(shù)n就可以計算出相應(yīng)行字符的首地址指針。但這種存儲結(jié)構(gòu)的缺點也很明顯,就是對存儲器的使用量較大。在該算法下,可以計算出在OSD所需要的使用的存儲器量為:m×n×Ch,如圖1(a)所示。存人其中的“空格”(圖中編碼為“28”)會占用相當(dāng)一部分的存儲器資源。在一些情況中,用于補充空缺而存儲的“空格”所占用的存儲空間甚至?xí)茸址c陣信息的存儲空間還要多,這是對存儲器資源極大的浪費。
評論