《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Blackfin533的CCSDS圖像壓縮算法編碼優化
基于Blackfin533的CCSDS圖像壓縮算法編碼優化
電子科技
雷 婷,史承興 西安電子科技大學
摘要: 基于Blackfin533的CCSDS圖像壓縮算法編碼優化,摘要通過程序結構的調整,編碼結構的優化及代碼的匯編級優化,完成編碼器的DSP高效實現。實驗結果表明,優化后的編碼器降低了運算復雜度,提高了CCSDS圖像壓縮算法的實時性。關鍵詞CCSDS;Blackfin533;編碼器;
Abstract:
Key words :

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

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

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

    2)DC系數編碼選項k的選?。簶藴手刑峁┝俗顑灮蛦l式兩種k值選擇方式,文中選擇復雜度較低的啟發式選取方案。
    (2)程序級優化。
    1)Blackfin533是16位定點DSP處理器,而在源代碼中使用的是浮點DWT,移植在定點DSP中運行需要大量時間。測試結果表明:對512× 512的圖像進行浮點DWI變換耗時3000 ms以上,影響了CCSDS圖像壓縮算法的編碼效率。因此在實現過程中,采用定點化的方法實現浮點DWT,并最終匯編化,使對圖像進行浮點DWT處理的時間降低到12 ms以下。
    2)源代碼中有大量數組類型的指針變量,其緩沖區是通過malloc和calloc等函數進行動態分配的,這樣會占用大量的編碼時間和可能會導致內存泄露以及導致DMA數組傳輸錯誤等問題,所以在實現過程中,由于所需編碼的圖像信息是可以事先得知的,于是可用靜態數組來代替動態申請的數組,這樣不僅指定了分配的位置,便于DMA傳輸,還縮短了編碼時間。
    3)編碼塊的數據格式選取:源代碼中是將一個編碼塊按照二維數組的格式進行存儲的,即8×8的格式。在實現過程中發現,DC系數編碼及AC系數字的映射過程對二維數組的索引取值耗時很長,因此可以將編碼塊改成一維數組,即1×64的組織形式,這樣在實現過程中可以減少編碼時間。
    4)用查表法代替大量的判斷分支:AC系數熵編碼函數RiceCoding中有大量的分支判斷語句,占據大量的編碼時間,用查表法替換這里的分支判斷語句,可以使函數的編碼時間減少80%以上。此外,CCSDS編碼器代碼中的大量分支判斷語句和RiceCoding函數一樣,也可用查表法實現。這正是以空間換時間的典型應用。
    5)在源代碼中,為了節省存儲器空間,在結構中使用了位域,但Blackfin 533在處理位域操作時效率極低,若將位域類型改為char或sh-ort類型,雖然在一定程度上增加了編碼時所需的存儲容量,但卻能夠明顯縮短編碼時間。
    6)碼流輸出函數BitsOutput的功能是輸出指定位數的數據到碼流文件,在源代碼中占到總編碼時間的約1/5。據統計,在壓縮比率為8:1的 Lena圖時,程序調用BitsOutput函數達14萬多次。若將該函數改為32位的形式輸出,并通過移位方式進行碼流輸出以及在程序中減少該函數調用的方法進行優化,可使其占用周期減少到原來的20%。另外,編碼時只輸出一位的情況很多,將這些地方換成單獨的函數可進一步減少編碼時間;
    7)循環優化:保持循環體內代碼簡單,減少分支判斷。避免循環中依賴前次循環的數據,這樣可以實現并行處理。內外循環合并,可以使優化器專注于內循環。減少數據跨切層數。利用Blackfin533的零開銷循環,將代碼中的循環層數控制在兩層以內。
    (3)匯編級優化。
    通過以上方式進行的CCSDS編碼器的優化,使得圖像編碼的時間縮短,但是,這樣實現的算法運行效率還是比較低,這是因為所有的代碼都是由C語言編寫的,并沒有完全利用DSP的各種性能。因此必須結合DSP本身的特點,對其進一步優化,才能使CCSDS高效的對圖像進行編碼。
    C語言匯編化的優化方法有:
    (1)節省寄存器資源。Blackfin提供了8個32位數據寄存器及一系列地址寄存器。對于這些寄存器,應盡可能做到一個寄存器多次使用,同時盡量使用較短的數據類型。
    (2)利用指令的流水線結構,盡量展開C語言中的循環體,減少分支判斷,盡量減少流水線的打斷。
    (3)使用并行指令。大多數指令都存在相應的可并行的指令,如一條運算指令可以并行兩條數據讀取指令。使用并行指令可以成倍地提高代碼的執行速度。
    (4)將除法轉化為乘法或查表實現。Blackfin中提供了乘法器但沒有除法器,執行除法指令將花費幾十甚至上百個指令周期,因此將除法轉化為乘法或查表,可減少這種開銷。
    (5)使用專用指令。Blackfin533提供了大量的圖像視頻專用指令,通過使用這些指令,能在很大程度上提高代碼的執行效率。

2 優化結果
    選用Lena圖像和Area圖像在壓縮比率為8的情況下進行測試,測試結果如表1所示,可見文中的優化方案可將編碼時間由原來的3 425 ms優化至48 ms,時間節省98.6%,提高了CCSDS圖像壓縮算法編碼的實時性能。
b.JPG


3 結束語
    文中首先介紹了CCSDS算法結構的一般流程,接著針對編碼器的DSP移植提出了優化方案,包括算法編碼選項的選取優化、系統級優化、程序級優化以及匯編優化,最后給出了對比結果??梢姡闹刑岢龅膬灮椒s短了編碼時間,提高了算法效率。
 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品久久久久婷婷884| 亚洲视频网站在线观看| 亚洲精品欧美激情| 国产有码一区二区| 国产精品青草综合久久久久99 | 亚洲高清在线视频| 韩国欧美国产1区| 国产欧美日韩中文字幕在线| 国产精品久久久久久av下载红粉| 欧美精品一区二区精品网| 免费在线国产精品| 免费在线日韩av| 欧美国产日韩免费| 男女av一区三区二区色多| 老司机成人网| 免费高清在线视频一区·| 另类成人小视频在线| 久久中文字幕一区二区三区| 久久美女艺术照精彩视频福利播放| 欧美一区二区观看视频| 亚洲欧美影音先锋| 午夜在线播放视频欧美| 欧美一区二区三区婷婷月色| 久久av一区二区三区漫画| 欧美伊人久久久久久午夜久久久久 | 韩日精品视频| 伊人久久大香线蕉av超碰演员| 国内精品视频久久| 亚洲国产精品成人| 亚洲精品美女91| 在线视频你懂得一区| 亚洲图片欧美午夜| 校园春色综合网| 久久精品人人做人人综合| 亚洲高清二区| 日韩视频在线播放| 亚洲一区亚洲二区| 欧美制服丝袜第一页| 久久久久国产精品一区三寸| 免费的成人av| 欧美三级视频在线播放| 国产精品日本一区二区| 国产一区视频在线观看免费| 极品中文字幕一区| 亚洲精品在线视频观看| 亚洲一区二区免费视频| 欧美一区二区三区在线看| 亚洲国产成人av好男人在线观看| 亚洲美女在线看| 亚洲免费在线视频| 久久天天综合| 欧美久久久久| 国产乱子伦一区二区三区国色天香| 黄色成人av| 99精品视频免费全部在线| 午夜精品久久久久影视| 亚洲日本成人女熟在线观看| 一区二区三区高清在线| 欧美在线视频观看免费网站| 老司机精品导航| 欧美网站在线观看| 激情久久影院| 一本色道**综合亚洲精品蜜桃冫| 欧美一区深夜视频| 夜夜嗨网站十八久久| 久久黄金**| 欧美日本一区二区三区| 国产视频一区欧美| 亚洲精品国产精品国产自| 亚洲欧美中文另类| 日韩一级大片在线| 久久xxxx| 欧美视频一区二区在线观看| 国产又爽又黄的激情精品视频 | 99热在这里有精品免费| 欧美综合国产| 亚洲午夜精品一区二区三区他趣 | 美女网站在线免费欧美精品| 国产精品每日更新| 亚洲欧洲一级| 欧美在线一级va免费观看| 中文在线不卡| 欧美ed2k| 国内视频一区| 亚洲一区日韩在线| 一本色道久久综合亚洲精品按摩| 久久久久久黄| 国产精品久久久爽爽爽麻豆色哟哟| 在线精品高清中文字幕| 亚洲自拍偷拍麻豆| 中文精品视频一区二区在线观看| 老司机午夜精品视频| 国产欧美一区二区精品仙草咪| 亚洲乱码国产乱码精品精98午夜| 欧美专区18| 欧美一区二区三区久久精品| 欧美日韩国产精品一卡| 一区二区自拍| 欧美一区二区啪啪| 午夜精品婷婷| 欧美午夜精品久久久久久人妖 | 欧美影院成人| 欧美日韩在线不卡一区| 91久久精品久久国产性色也91| 欧美中文字幕在线| 欧美一区二区三区在线播放| 欧美视频二区36p| 亚洲国产成人精品视频| 亚洲国产美女精品久久久久∴| 久久国产精品久久精品国产| 国产精品高清在线观看| 亚洲精品国产系列| 亚洲日本无吗高清不卡| 久久久久久综合| 国产日韩欧美一区在线 | 亚洲男人天堂2024| 亚洲一区二区不卡免费| 欧美日韩一卡二卡| 亚洲免费观看在线观看| 一本到高清视频免费精品| 欧美激情一区在线| 亚洲第一中文字幕| 亚洲国产老妈| 麻豆成人av| 亚洲国产精品va在线观看黑人 | 欧美一区二区免费视频| 国产精品美女久久久久久免费| 这里只有精品视频在线| 亚洲与欧洲av电影| 国产精品免费小视频| 亚洲一区二区三区四区视频| 亚洲摸下面视频| 国产精品美女久久久久久2018| 亚洲一级在线观看| 欧美一区二区三区久久精品| 国产日韩专区在线| 久久成人人人人精品欧| 女同一区二区| 亚洲欧洲精品一区二区| 一区二区三区国产精华| 欧美日韩免费在线| 夜夜嗨av一区二区三区四区| 亚洲女爱视频在线| 国产亚洲午夜| 亚洲国产婷婷香蕉久久久久久| 免费h精品视频在线播放| 亚洲黄网站在线观看| 亚洲视频在线播放| 国产乱码精品一区二区三| 欧美中文字幕在线| 欧美1区3d| aaa亚洲精品一二三区| 亚洲欧美在线免费观看| 国产欧美一区二区精品忘忧草 | 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲国产毛片完整版| 中文欧美字幕免费| 噜噜噜在线观看免费视频日韩| 欧美精品一区二区三区一线天视频 | 久久久久久久一区二区| 黄色国产精品一区二区三区| 亚洲国产欧美久久| 欧美三级网址| 性欧美办公室18xxxxhd| 欧美成人免费在线观看| 99亚洲伊人久久精品影院红桃| 香港成人在线视频| 国内精品久久国产| 亚洲精品一区二区三区蜜桃久 | 国产精品丝袜xxxxxxx| 久久国产精品99国产精| 欧美激情视频给我| 亚洲一区二区在线免费观看视频| 久久久久久久综合狠狠综合| 亚洲国产天堂久久综合网| 亚洲综合视频一区| 在线成人av| 亚洲综合电影一区二区三区| 激情欧美一区二区三区| 一区二区三区四区五区视频| 老司机一区二区| 国产精品99久久久久久久女警| 久久久综合精品| 亚洲美女色禁图| 久久精品人人做人人综合| 亚洲精品视频一区| 久久精品免费观看| 夜夜嗨一区二区| 欧美成人激情视频| 午夜电影亚洲| 欧美日韩国产欧| 亚洲高清av| 国产精品色网| 99精品欧美一区二区三区 | 一区二区三区产品免费精品久久75| 久久久久久久999精品视频| 99国产精品久久久久久久久久| 久久久国产91| 亚洲一级在线| 欧美日韩免费观看一区三区|