<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于改進型二步索引算法OSD電路的FPGA

          基于改進型二步索引算法OSD電路的FPGA

          作者: 時間:2010-06-11 來源:網絡 收藏

            1.2 原理

            如果只存儲字符點陣信息而不存儲‘空格’,顯然對節(jié)省存儲器資源將有著很大的幫助。為達到這樣的設計目標,在逐字索引法的基礎上,通過改進提出了。

            設第k幅菜單中顯示nk行字符,菜單第i行中顯示li個字符。其中,nk存儲于寄存器中,li存儲在一段地址長度為nk的字符數信息存儲器中。在下,通過讀取字符數信息存儲器中的數據以及根據nk限制讀出的li數據個數,可以確定菜單中各行所顯示的字符的個數。第k幅菜單中第i行第j個字符的編碼信息在存儲器中的地址指針可以根據公式(3)確定:

          公式

            讀出字符編碼數據Ni×j,仍然通過公式(2)得到相應字符在點陣信息存儲器中存儲地址段的首地址指針,從而讀出全部的字符點陣信息。完整的數據讀取操作過程如圖2所示。

          完整的數據讀取操作過程

            在二步索引算法中,引入了行顯示字符數li和菜單顯示字符行數nk2個參數,通過nk首先索引菜單中第i行的顯示字符數li,根據li控制索引該行第j個字符編號Ni×j。根據li可以知道每行顯示的字符數,所以字符編碼信息可以按行順序緊密的存儲,即每行存儲的數據采用非定長的方式,如圖1(b)所示。與圖1(a)所示的逐字索引法存儲器結構相比,二步索引法在對存儲器資源的節(jié)省方面效果是顯著的。

            2 二步索引法電路結構實現

            2.1 字符索引電路實現

            如圖3所示,相比于逐字索引法的電路實現結構,二步索引法的電路實現結構中增加了字符行寄存器和用于存放行字符數信息的存儲器。字符行寄存器中存人nk,根據字符行計數器所計數據與nk比較來控制從行字符數存儲器中讀出的數據數。讀出的行字符數信息li再用以控制顯示第i行菜單字符所需從字符編碼存儲器中讀出的字符編碼數據數。讀出的字符編碼Ni×j通過地址生成電路轉換成相應字符的點陣信息在字符點陣ROM中存儲地址段的首地址,從而在字符點陣ROM中索引出相應字符的點陣數據,如此反復,可實現對全部字符點陣數據的索引。

            2.2 數據輸出控制與層混合疊加電路實現

            從字符點陣ROM中讀取出的字符點陣信息經過點陣重組電路的處理后將按字符Cl×Ch順序的點陣信息轉換成按菜單行順序的格式存入到輸出緩存中。輸出緩存中數據的存儲順序如圖3所示。

          輸出緩存中數據的存儲順序

            輸出緩存能夠存儲整幅菜單的顯示信息,以使菜單生成和菜單輸出顯示2個過程相互獨立,從而使得在顯示菜單的同時,可進行新菜單內容的讀入,保證菜單顯示的連貫勝。輸出緩存容量大小由包含顯示信息最多的一幅菜單決定。

            從輸出緩存中讀出的數據用于控制生成菜單字符層,在層選擇電路中與菜單背景層和屬性條層進行疊加處理后輸出一幅完整的菜單。字符層、菜單背景層和屬性條層相互獨立,由層混合控制電路控制進行混合疊加處理,再將菜單與屏幕背景層進行疊加輸出混合視頻信號。層混合疊加電路的實現結構如圖4所示。

          層混合疊加電路的實現結構



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();