算法流程:從輸入端獲取32位的壓縮圖像數(shù)據(jù),分析輸入的數(shù)據(jù)流,判斷出碼長,把輸入的數(shù)據(jù)移位,同時從輸入端補充新的數(shù)據(jù)。輸入的數(shù)據(jù)通過Huffman表翻譯成原始數(shù)據(jù),提取出數(shù)據(jù)流中嵌入的符號位,經(jīng)過一系列的除法、減法運算后得到編碼前的頻率數(shù)據(jù),與之前得到的符號位合并后輸送到輸出緩存。
本文采用的算法靈活地利用了Huffman表的特點,消除了算法中的乘法運算,完成碼長的判斷只需要1個周期。把碼表的數(shù)據(jù)按照碼長分類從小到大排列,再把碼長相同的數(shù)據(jù)按照碼字的大小從小到大排列。每張表按照排列后的順序把碼字對應(yīng)的解碼結(jié)果DR(Decoding Results)存入到ROM中。這樣既有利于查表,需要的ROM也是最小的,符合低功耗要求。查表的地址發(fā)生器由“長度匹配”模塊傳遞到的碼長得到1個基地址,碼長從輸入數(shù)據(jù)中截取連續(xù)的幾個與碼長相同位數(shù)的bit作為偏移地址,2個地址相加就是DR保存的地址[2]。
因關(guān)鍵bit出現(xiàn)的位置都是在碼字的最后幾位,因此根據(jù)碼長將輸入數(shù)據(jù)進行移位,使關(guān)鍵bit的最后1位出現(xiàn)在第n位,移位的結(jié)果只輸出第n位以前的幾個bit,這樣的電路只需要1個只受碼長控制的桶形移位寄存器。另外,再為每張表產(chǎn)生1個1串0加上1串1的地址修正串,有幾個關(guān)鍵bit就有幾個1,這部分電路邏輯簡單且占用的電路不多。用這個地址修正串和桶形移位寄存器的輸出做一個“與”邏輯運算,得到的就是正確的偏移地址。由于Huffman表需要的最長bit是9位,碼長最大為19位,所以本文設(shè)計了1個19位輸入、9位輸出的桶形移位寄存器。改進后的電路面積縮小到改進前的50%左右。
3 IDCT處理器
逆向離散余弦變換IDCT(Inverse Discrete Cosine Transform)電路的總體實現(xiàn)框圖和其中的2D IDCT框圖如圖2所示。DCT系數(shù)經(jīng)過反量化和反掃描電路處理后輸入到IDCT的緩存器,由全局控制電路控制輸入到2D IDCT單元及將最終變換好的數(shù)據(jù)送到輸出緩存器中,發(fā)送Ready信號到運動補償單元,通知該單元可以讀出IDCT數(shù)據(jù)。2D IDCT單元進行2次1D IDCT運算,首先進行基于行的1D IDCT,然后將第1次IDCT的中間結(jié)果經(jīng)轉(zhuǎn)置存儲器進行轉(zhuǎn)置處理和緩存,再進行基于列的1D IDCT變換,得到最終的IDCT變換結(jié)果[3]。
IDCT設(shè)計中使用了零值判斷邏輯電路、門控時鐘、并行流水線等技術(shù),使得整個電路在滿足處理速度和精度要求的基礎(chǔ)上大大降低了功耗。
3.1 零值判斷邏輯電路
在整個圖像解碼過程中,每8×8個數(shù)據(jù)塊中有約90%的數(shù)據(jù)的DCT系數(shù)為零,對這些零值進行IDCT變換并無意義。因此,本設(shè)計添加了零值判斷邏輯來消除不必要的乘法運算。零值判斷邏輯電路由8×8累加器陣列、零值判斷邏輯模塊和復(fù)選器MUX構(gòu)成。通過零值邏輯模塊判斷,當操作數(shù)不全為零時,使能信號變成高電平,將操作數(shù)取到寄存器中,然后再進行乘法運算。如果操作數(shù)全為零,則封鎖累加陣列,直接通過MUX輸出0。零值判斷邏輯能有效地降低功耗,且電路簡單,面積與延遲時間幾乎可以忽略不計。
3.2 基于鎖存器的門控時鐘
通過控制電路的輸入時鐘可以使得一部分電路降低工作頻率或者停止工作,從而降低整個電路的功耗。2D DCT/IDCT的電路主要由3部分組成:1D DCT/IDCT單元、轉(zhuǎn)置存儲器、輸入輸出處理單元。
轉(zhuǎn)置存儲器部分只有在每次1D DCT/IDCT處理的最后才進行更新,而輸入輸出處理單元只有在數(shù)據(jù)輸入輸出的時候才工作。因此,控制這幾部分電路的輸入時鐘,使其在大多數(shù)時間停止工作即可以有效地降低功耗。設(shè)計結(jié)果表明,在面積僅增加2%的情況下系統(tǒng)功耗可降低13%。
基于鎖存器的門控時鐘可以實現(xiàn)上述功能,它具有不需要數(shù)據(jù)選擇器、面積較小、可以減小時鐘網(wǎng)絡(luò)上電容、減少門控寄存器的內(nèi)部功耗等優(yōu)點。鎖存器門控時鐘電路及時序如圖3所示。
3.3 并行流水線
本設(shè)計使用加法和移位運算代替IDCT快速算法中的浮點乘法運算單元,用高度并行流水線VLSI結(jié)構(gòu)加快數(shù)據(jù)處理速度,其處理數(shù)據(jù)的時間不到串行結(jié)構(gòu)的1/5。因此,時鐘頻率可以相應(yīng)地降低到串行結(jié)構(gòu)的1/5左右,從而降低系統(tǒng)的功耗。例如,使用2個16×8的乘法器同時并行計算高位部分和低位部分,分別得到高位部分積和低位部分積,然后進行移位相加。實現(xiàn)電路運算時實現(xiàn)時間重疊、資源重復(fù)使用和資源共享,提高了系統(tǒng)的并行性,以此提高了乘法電路的運行速度和效率。
4 仿真和綜合結(jié)果
本文選用1幅1 920×1 080大小的JPEG圖像,Modelsim進行RTL級仿真后的波形如圖4所示。圖中JPEG_DATA是碼流數(shù)據(jù),OutR、OutG、OutB是解碼仿真結(jié)果[4]。在100 MHz的頻率下對解碼核心模塊進行綜合[5],結(jié)果如表1所示。
本文有別于以往用軟件實現(xiàn)JPEG解碼,而是在用硬件實現(xiàn)JPEG解碼的同時,改進硬件結(jié)構(gòu),通過多種易于操作的方法來降低硬件解碼能耗。通過EDA工具驗證,完全可以滿足JPEG圖像硬件解碼的要求。
在閾值電壓或低于閾值電壓時,EPAD MOSFET 在稱為亞閾值區(qū)域的工作區(qū)域中表現(xiàn)出關(guān)斷特性。這是 EPAD MOSFET 傳導(dǎo)通道根據(jù)施加的柵極電壓快速關(guān)閉的區(qū)域。由柵電極上的柵電壓引起的溝道呈指數(shù)下降,因此導(dǎo)致漏極...
關(guān)鍵字: 超低壓 MOSFET 低功耗設(shè)計ALD1148xx/ALD1149xx 產(chǎn)品是耗盡型 EPAD MOSFET,當柵極偏置電壓為 0.0V 時,它們是常開器件。耗盡模式閾值電壓處于 MOSFET 器件關(guān)斷的負電壓。提供負閾值,例如 –0.40V、-1.3...
關(guān)鍵字: 超低壓 MOSFET 低功耗設(shè)計尋求在電路設(shè)計中實現(xiàn)更低的工作電壓和更低的功耗水平是一種趨勢,這給電氣工程師帶來了艱巨的挑戰(zhàn),因為他們遇到了基本半導(dǎo)體器件特性對他們施加的限制。長期以來,工程師們一直將這些特性視為基本特性,并可能阻止他們最大限度地擴大可...
關(guān)鍵字: 超低壓 MOSFET 低功耗設(shè)計Linux內(nèi)核是從V2.6開始引入設(shè)備樹的概念,其起源于OF:OpenFirmware, 用于描述一個硬件平臺的硬件資源信息,這些信息包括:CPU的數(shù)量和類別、內(nèi)存基地址和大小、總線和橋、外設(shè)連接、中斷控制器和中斷使用情...
關(guān)鍵字: Linux內(nèi)核 硬件 CPU上周說開始盤三極管,周末我專門花時間去研究了小伙伴的留言,又去翻了模電的書,目的是尋找好的切入點。去翻課本,發(fā)現(xiàn)課本上總是會從三極管的發(fā)展歷程講起,談?wù)勅龢O管的物理構(gòu)成,分析內(nèi)部載流子的傳輸過程,電流的分配關(guān)系等等。這些...
關(guān)鍵字: 三極管 內(nèi)部載流子 硬件