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