PNG的硬件解碼加速設計
本文引用地址:http://www.ex-cimer.com/article/166979.htm
2 PNG解碼的軟硬件協調機制
整個PNG硬件解碼過程都是由軟件來調度的,在硬件解碼中若校驗到圖片數據出錯或解碼完成時,則PNG硬件模塊通過配置專門的寄存器給軟件檢查做中斷處理;當軟件檢測到這個寄存器信號使能時就產生中斷,就能即使關閉PNG硬件解碼模塊,在數據有誤的情況下節(jié)省了硬件解碼的功耗。
解碼前后數據的搬運機制是通過公用的AVI模塊(相當于FIF0實現輸入輸出數據的緩存)實現了PNG數據的搬運:解碼前,軟件通過調配AVI模塊從內存中搬取壓縮數據給PNG硬件模塊做解碼;解碼后的數據經過Resize模塊縮放后又可以利用AVI搬運給VGA做顯示,這種較優(yōu)的軟件調配機制,解決了該設計的軟硬件協調問題,可以在節(jié)省功耗的前提下實現高效率的解碼,具體的軟件硬件協調原理如圖2所示。
3 PNG解碼的總體硬件結構
PNG硬件解碼加速的整體結構主要由Bytesshift字符容器、PNG頭信息處理模塊、Inflate table建Huffman表模塊、Inflate fast快速解碼模塊、Lz77尋找匹配串模塊、Filter反濾波反交織模塊和Resize放大縮小模塊7大模塊組成。具體PNG解碼的硬件流程圖如圖3所示。
如圖3可見,PNG解碼的基本流程為:通過AVI模塊從總線上搬取壓縮數據到Bytesshift字符容器進行緩存,并轉換為壓縮比特流;通過PNG頭信息處理模塊保留下文件的頭信息,通過控制Inflate table模塊讀取碼長信息來建立Huffman表,并對壓縮數據進行解碼;解碼后的數據經過Filter模塊進行反濾波和反交織等處理,然后發(fā)給Resize模塊做放大縮小處理后,并通過AVI模塊將最終解碼后的數據傳輸出去。其中,解碼核心模塊和Filter模塊通過采用了數據的流水線處理方式,也極大地提高了.PNG的解碼效率。
評論