<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > JPEG圖像硬件解碼低功耗設計

JPEG圖像硬件解碼低功耗設計

作者: 時(shí)間:2010-04-16 來(lái)源:網(wǎng)絡(luò ) 收藏
目前,我國正在籌備物聯(lián)網(wǎng)的建設,這對于傳感器技術(shù)的發(fā)展以及數字傳感器瞬時(shí)產(chǎn)生的海量數據為實(shí)時(shí)通信系統的存儲容量、傳輸帶寬和提出了挑戰。在醫療、遙感通信等對恢復質(zhì)量要求高的領(lǐng)域,對低、具有良好壓縮/解壓縮性能及實(shí)時(shí)處理能力的圖像編/器的需求也變得日益迫切。靜態(tài)圖像壓縮/解壓縮標準,具有優(yōu)良的壓縮/解壓縮性能,而且要求低存儲量和相對較低的復雜度使其很適合于實(shí)現。
為了實(shí)現數據的實(shí)時(shí)處理和低應用,本文提出了一種帶有時(shí)鐘管理機制的并行、全流水結構的器實(shí)現方案。
1 算法
JPEG(Joint Photographic Experts Group)是一種適用范圍很廣的靜態(tài)圖像數據壓縮標準。JPEG壓縮是一種有損壓縮,它利用了人的視覺(jué)系統特性,使用量化和無(wú)損壓縮編碼相結合的方式去掉視覺(jué)的冗余信息和數據本身的冗余信息。JPEG解碼器包括:霍夫曼(Huffman)解碼、反量化(IQ)IDCT變換。在JPEG中,對于圖像的解碼是分塊進(jìn)行的。整個(gè)圖像被劃分為若干個(gè)8×8的數據塊(MCU),每1個(gè)塊對應于原圖像的1個(gè)8×8的像素陣列。各行的編解碼順序從上到下,行內的編解碼順序從左到右[1]。
2 并行Huffman解碼器
Huffman編碼后代碼的長(cháng)度不一致,如果解碼器用串行技術(shù)實(shí)現,由于其代碼長(cháng)度不一致,解1個(gè)碼字所需的周期數也不一樣。對于實(shí)時(shí)系統,串行技術(shù)的效率比較低。另外,如果數據在傳播過(guò)程中被噪聲中斷,整組數據就變得沒(méi)有價(jià)值了。針對這兩方面的問(wèn)題,本文提出如下的解決方案。如圖1所示為Huffman解碼的主要元件和算法流程。

本文引用地址:http://dyxdggzs.com/article/166732.htm


算法流程:從輸入端獲取32位的壓縮圖像數據,分析輸入的數據流,判斷出碼長(cháng),把輸入的數據移位,同時(shí)從輸入端補充新的數據。輸入的數據通過(guò)Huffman表翻譯成原始數據,提取出數據流中嵌入的符號位,經(jīng)過(guò)一系列的除法、減法運算后得到編碼前的頻率數據,與之前得到的符號位合并后輸送到輸出緩存。
本文采用的算法靈活地利用了Huffman表的特點(diǎn),消除了算法中的乘法運算,完成碼長(cháng)的判斷只需要1個(gè)周期。把碼表的數據按照碼長(cháng)分類(lèi)從小到大排列,再把碼長(cháng)相同的數據按照碼字的大小從小到大排列。每張表按照排列后的順序把碼字對應的解碼結果DR(Decoding Results)存入到ROM中。這樣既有利于查表,需要的ROM也是最小的,符合低功耗要求。查表的地址發(fā)生器由“長(cháng)度匹配”模塊傳遞到的碼長(cháng)得到1個(gè)基地址,碼長(cháng)從輸入數據中截取連續的幾個(gè)與碼長(cháng)相同位數的bit作為偏移地址,2個(gè)地址相加就是DR保存的地址[2]。
因關(guān)鍵bit出現的位置都是在碼字的最后幾位,因此根據碼長(cháng)將輸入數據進(jìn)行移位,使關(guān)鍵bit的最后1位出現在第n位,移位的結果只輸出第n位以前的幾個(gè)bit,這樣的電路只需要1個(gè)只受碼長(cháng)控制的桶形移位寄存器。另外,再為每張表產(chǎn)生1個(gè)1串0加上1串1的地址修正串,有幾個(gè)關(guān)鍵bit就有幾個(gè)1,這部分電路邏輯簡(jiǎn)單且占用的電路不多。用這個(gè)地址修正串和桶形移位寄存器的輸出做一個(gè)“與”邏輯運算,得到的就是正確的偏移地址。由于Huffman表需要的最長(cháng)bit是9位,碼長(cháng)最大為19位,所以本文了1個(gè)19位輸入、9位輸出的桶形移位寄存器。改進(jìn)后的電路面積縮小到改進(jìn)前的50%左右。
3 IDCT處理器
逆向離散余弦變換IDCT(Inverse Discrete Cosine Transform)電路的總體實(shí)現框圖和其中的2D IDCT框圖如圖2所示。DCT系數經(jīng)過(guò)反量化和反掃描電路處理后輸入到IDCT的緩存器,由全局控制電路控制輸入到2D IDCT單元及將最終變換好的數據送到輸出緩存器中,發(fā)送Ready信號到運動(dòng)補償單元,通知該單元可以讀出IDCT數據。2D IDCT單元進(jìn)行2次1D IDCT運算,首先進(jìn)行基于行的1D IDCT,然后將第1次IDCT的中間結果經(jīng)轉置存儲器進(jìn)行轉置處理和緩存,再進(jìn)行基于列的1D IDCT變換,得到最終的IDCT變換結果[3]。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 功耗 設計 解碼 硬件 圖像 JPEG

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>