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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用CPLD實現(xiàn)嵌入式平臺上的實時圖像增強

          用CPLD實現(xiàn)嵌入式平臺上的實時圖像增強

          作者: 時間:2010-12-03 來源:網(wǎng)絡 收藏


          然后開始下一個點的運算

          2.3 硬件實現(xiàn)的邏輯結構

          實現(xiàn)該算法所采用的邏輯結構如圖3所示

          其中加模塊實現(xiàn)25;Pi,j運算,生成9位的運算結果交給減模塊;減模塊在EXCLK的第二和第三個時鐘分別讀入Pi-1,j和Pi,j-1進行減法運算,并把結果存回result寄存器由于兩次減法在時間上是錯開的,因此只需要一個減法器就夠了,節(jié)約了內部資源

          圖3中的脈沖計數(shù)器是一個模4計數(shù)器,所有的讀寫時序和運算時序都由它控制數(shù)據(jù)通道切換模塊控制流入result寄存器的數(shù)據(jù)流,在第一個EXCLK時鐘讓加法器的結果進入result,其余的時間都讓減法器的結果進入result兩個選通邏輯模塊對EXCLK起門控作用,選通邏輯1允許第1個和第2 個時鐘通過,用來鎖存從SRAM讀入的數(shù)據(jù);選通邏輯2允許第123個時鐘通過,用來鎖存三次運算的結果

          SRAM的讀寫操作由地址發(fā)生器和讀寫控制模塊共同實現(xiàn)由于四次讀寫操作的地址都不同,且不連續(xù),無法用普通的地址計數(shù)器實現(xiàn)這里采用地址計數(shù)器加偏移的相對尋址法,具體結構如圖4所示

          地址計數(shù)器中保存Pi,j的地址,它由cmos clk作為時鐘實現(xiàn)累加;偏移地址則由脈沖計數(shù)器模塊控制,分別選擇P′i,j-1Pi-1,jPi,j-1和Pi,j的偏移地址;最后做減法運算得到絕對地址送到SRAM

          通過上述設計和優(yōu)化,完全可以在結構和功能都比較簡單的上實現(xiàn)實時的圖像增強處理

          由于采用了改進的圖像增強算法,在處理窄頻帶的圖像時收到了非常好的效果,部分測試結果如圖5所示




          與傳統(tǒng)的處理方法相比,改進后的算法對圖像的均衡效果更為明顯一些,而且由于展寬了頻帶,圖像的細節(jié)更加豐富,圖像更加明艷和清晰
          以上算法都在上實現(xiàn),并沒有占用的處理時間,因而節(jié)省了大量的運算時間筆者做過一個實際測試,在100MHz主頻的E1 上用C編程實現(xiàn)一幀640 480 RGB圖像的增強算法大約需要100ms(如果用匯編語言編程或對程序作優(yōu)化可使性能提高一些),而且要占用大量存儲資源這樣的運算速度只適合靜止圖像的處理所以,如果不做簡化處理或采用更高性能的,根本無法做到實時處理由此可見,采用硬件處理的方法可以極大地提高系統(tǒng)的總體性能

          綜上所述,在擁有DSP的嵌入式平臺上使用CPLD實現(xiàn)改進的圖像增強算法是可行的,對于實時的圖像處理是一種高效的解決方法

          本文引用地址:http://www.ex-cimer.com/article/151289.htm

          上一頁 1 2 3 4 下一頁

          關鍵詞: DSP CPLD FPGA

          評論


          相關推薦

          技術專區(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); })();