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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ATmegal28的LED顯示屏圖像數(shù)據(jù)解碼設(shè)計

          基于ATmegal28的LED顯示屏圖像數(shù)據(jù)解碼設(shè)計

          作者: 時間:2013-01-18 來源:網(wǎng)絡(luò) 收藏

          軟件事先構(gòu)造出不同碼長下的哈夫曼碼字的最小值表和最大值表

            在解碼的時候,讀取1串二進制數(shù)據(jù),分別與各碼長下的最大值和最小值進行比較,如果在哈夫曼表中沒有該碼長的碼字,說明該比特數(shù)據(jù)不是完整的Huff_man編碼,接著讀取下一個比特數(shù)據(jù)加在前面的比特數(shù)據(jù)組成的新的碼字,然后再在最小值表和最大值表中進行查找,直至找到確切的碼字。最后把該碼字減去同一碼長下最小值,加上此最小值在哈夫曼表中的索引即可得到該碼字在編碼表中的位置。

            2.2 IDCT變換的實現(xiàn)

            將8×8塊中的顏色分量單元的64個值逐一乘以對應(yīng)的量化表內(nèi)位置相同的系數(shù),然后再將64個數(shù)據(jù)進行Z字型的重新排列,進行IDCT變換。IDCT的運算量很大,其中要進行大量的浮點乘法和加法運算,因而在解碼過程中IDCT所占時間最多。采用行列分解法先將二維IDCT分解成一維8點的IDCT,對于一維8點IDCT采用Loeffler的快速算法。圖2為Loef—fler算法的流程圖,Loeffler算法運算因子的解釋如圖3 所示。

          Loef

          Loeffler算法運算因子的解釋

            直接對旋轉(zhuǎn)因子進行計算需要4次乘法和2次加法,這樣1次8個點的一維IDCT變換總共需要14次乘法和26次加法??梢詫πD(zhuǎn)因子進行變形如式(1)所示:

          公式

            從而1次旋轉(zhuǎn)因子計算只需要3次乘和3次加。進而進行1次一維IDCT只需11次乘和29次加。因為乘法運算的代價高于加法運算,所以這種變形是有益的。完成一次二維的IDCT運算總共要進行16次的8點一維IDCT運算。由于在速度方面的限制,在IDCT運算過程中把浮點操作改進為整形運算,并且把公式的值擴大211倍存儲起來,為IDCT運算做準(zhǔn)備。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();