新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Blackfin533的CCSDS圖像壓縮算法編碼優(yōu)化

        基于Blackfin533的CCSDS圖像壓縮算法編碼優(yōu)化

        作者: 時間:2010-12-16 來源:網絡 收藏

        摘要 通過程序結構的調整,編碼結構的優(yōu)化及代碼的匯編級優(yōu)化,完成編碼器的高效實現(xiàn)。實驗結果表明,優(yōu)化后的編碼器降低了運算復雜度,提高了CCSDS圖像壓縮算法的實時性。
        關鍵詞 CCSDS;Blackfin533;編碼器;優(yōu)化

        空間數據咨詢會(CCSDS)于2005年11月提出的針對空間應用的CCSDS圖像壓縮算法,具有良好的圖像壓縮性能和抗誤碼能力,同時算法復雜度較低。但在具體硬件實現(xiàn)時,仍不能夠滿足實時高效的要求,因此,必須對該算法的硬件實現(xiàn)進行改進和優(yōu)化。文中針對這一問題,提出編碼優(yōu)化方案,提高算法的實時性。采用ADI公司的Blackfin533芯片以及Visual ++5.0仿真平臺,是實現(xiàn)CCSDS編碼器的有效途徑。

        1 編碼優(yōu)化
        文中采用CCSDS圖像壓縮算法編、解碼的C程序源代碼。通過以下幾個方面實現(xiàn)優(yōu)化:調整程序結構;編碼結構的優(yōu)化;代碼的匯編級優(yōu)化。
        1.1 程序結構調整
        選用的源代碼是符合CCSDS圖像壓縮算法標準流程的編、解碼器源代碼,代碼容量約為326 kB,對于實時圖像壓縮,其中含有大量的冗余代碼,而所用芯片的64 kB指令存儲器是遠遠滿足不了要求的,因此,要將CCSDS源代碼移植到上,就必須調整程序結構,去掉冗余代碼,降低程序所占內存。
        (1)刪除與編碼無關的代碼。(2)刪除冗余判斷。(3)刪除不必要的中間變量。(4)改寫編碼主函數。
        經過以上優(yōu)化,代碼容量降低為56 kB,這樣,所選用的Blackfin533芯片的L1指令存儲器就足以容納,而無需利用高速Cache和DMA進行指令的傳輸,提高了編碼效率。
        1.2 主要函數和數據的優(yōu)化
        在以上優(yōu)化的基礎上,采用Blackfin533芯片對Lena圖像進行壓縮,壓縮比率為8:1,時間為3425 ms,遠達不到實時性的要求。因此,還需對編碼結構和算法進行改進,以提高編碼速度。
        (1)編碼選項的選取。
        在CCSDS圖像壓縮算法中有多種編碼供選取,增大了算法的靈活性,但也增加了算法硬件實現(xiàn)的復雜度,并且這些編碼選項在實現(xiàn)時存在大量判斷語句。一般情況下,判斷分支會打斷DSP指令運行的流水線,從而影響編碼運行時間。所以在進行DSP移植時應進行編碼選項。
        1)編碼段大小S的選取:如圖l所示,S>64時,重建圖像的客觀質量增加趨于平緩,所以在實現(xiàn)時選擇S大小為64,這樣一個編碼段所需的編碼原數據存儲量為8kB,從而可以保證對編碼段的編碼過程在數據存儲器L1中完成,而無需Cache和DMA在各級存儲器之間轉移數據,提高了編碼效率。
        a.JPG

        2)DC系數編碼選項k的選取:標準中提供了最優(yōu)化和啟發(fā)式兩種k值選擇方式,文中選擇復雜度較低的啟發(fā)式選取方案。
        (2)程序級優(yōu)化。
        1)Blackfin533是16位定點DSP處理器,而在源代碼中使用的是浮點DWT,移植在定點DSP中運行需要大量時間。測試結果表明:對512× 512的圖像進行浮點DWI變換耗時3000 ms以上,影響了CCSDS圖像壓縮算法的編碼效率。因此在實現(xiàn)過程中,采用定點化的方法實現(xiàn)浮點DWT,并最終匯編化,使對圖像進行浮點DWT處理的時間降低到12 ms以下。
        2)源代碼中有大量數組類型的指針變量,其緩沖區(qū)是通過malloc和calloc等函數進行動態(tài)分配的,這樣會占用大量的編碼時間和可能會導致內存泄露以及導致DMA數組傳輸錯誤等問題,所以在實現(xiàn)過程中,由于所需編碼的圖像信息是可以事先得知的,于是可用靜態(tài)數組來代替動態(tài)申請的數組,這樣不僅指定了分配的位置,便于DMA傳輸,還縮短了編碼時間。
        3)編碼塊的數據格式選取:源代碼中是將一個編碼塊按照二維數組的格式進行存儲的,即8×8的格式。在實現(xiàn)過程中發(fā)現(xiàn),DC系數編碼及AC系數字的映射過程對二維數組的索引取值耗時很長,因此可以將編碼塊改成一維數組,即1×64的組織形式,這樣在實現(xiàn)過程中可以減少編碼時間。
        4)用查表法代替大量的判斷分支:AC系數熵編碼函數RiceCoding中有大量的分支判斷語句,占據大量的編碼時間,用查表法替換這里的分支判斷語句,可以使函數的編碼時間減少80%以上。此外,CCSDS編碼器代碼中的大量分支判斷語句和RiceCoding函數一樣,也可用查表法實現(xiàn)。這正是以空間換時間的典型應用。


        上一頁 1 2 下一頁

        關鍵詞: DSP

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 五华县| 平昌县| 思南县| 兴隆县| 正镶白旗| 新干县| 阳山县| 西城区| 庆元县| 格尔木市| 阳春市| 天峨县| 海原县| 沙湾县| 高碑店市| 贡山| 紫阳县| 石渠县| 西华县| 揭西县| 双辽市| 顺义区| 西畴县| 禹城市| 绥芬河市| 长阳| 巴中市| 大连市| 南宁市| 夏河县| 乐清市| 瓮安县| 玉田县| 平邑县| 城口县| 安顺市| 民和| 迭部县| 怀安县| 新竹县| 张家口市|