基於DSP Builder的JPEG靜態圖像壓縮算法的實現

2020-12-08 電子產品世界

摘 要: 利用Altera公司提供的數位訊號處理開發工具DSP Builder和現代DSP技術,在Matlab/Simulink環境中建立了JPEG算法模型,並進行了仿真驗證,最後將編譯代碼下載到硬體上進行了在線調試。
關鍵詞: DSP Builder;JPEG圖像壓縮;FPGA

 隨著數位訊號處理技術在應用領域的迅速發展,以DSP處理器(如TI的TMS320系列)為應用系統核心器件的傳統DSP技術,由於其硬體結構的不可變性和固定的數據總線寬度,很難滿足用戶對DSP系統可重配置性或可定製性的要求。而以大容量、高速度的FPGA為核心器件的現代DSP技術的出現成功解決了以上問題。FPGA內嵌有可配置的高速RAM、PLL以及硬體乘法累加器等DSP模塊。因此,用FPGA實現數位訊號處理可以很好地解決並行性和速度問題,而且其靈活的可配置特性,使得以FPGA為核心器件的DSP系統易於修改、測試及硬體升級。
本文利用Altera公司推出的一個面向DSP開發的系統級設計工具DSP Builder,在深入研究JPEG算法原理的基礎上,設計了JPEG算法模型,並在Matalab/Simulink環境下進行了算法級仿真;最後將算法編譯下載到FPGA硬體上,利用DSP Builder的HIL(Hardware In Loop)功能,由Simulink通過下載電纜向硬體輸入測試數據,然後將測試結果送入Simulink中顯示。採用這種方法實現了硬體級的仿真驗證。
1 DSP Builder介紹
DSP Builder開發工具是Altera公司提供的數位訊號處理平臺,它是一個系統級(或算法級)設計工具,架構在多個軟體工具之上,並把系統級和RTL級兩個設計領域的設計工具連接起來,最大程度地發揮了兩種工具的優勢。DSP Builder依賴於MathWorks公司的數學分析工具Matlab/Simulink,以Simulink的Blockset出現,可以在Simulink中進行圖形化設計和仿真,同時通過SignalCompiler把Matlab/Simulink的設計文件(.mdl)轉成相應的硬體描述語言VHDL設計文件(.vhd),以及用於控制綜合與編譯的TCL腳本。而對後者的處理可以由FPGA/CPLD開發工具Quartus II來完成。
設計人員能夠同時進行多個HDL模型或者QuartusII軟體設計工程的設計,為每一個模塊生成一個獨立的仿真模型,並且能夠在同一設計環境中,以標準Simulink/DSP Builder模型來仿真HDL模塊。此外,該工具可充分利用和重複使用現有設計,從而大大提高產品開發速度。在仿真軟體方面,除了可以利用Simulink的仿真環境,DSP Builder還提供了與Modelsim的接口,充分利用Modelsim仿真的優勢。以前DSP開發者只能直接使用VHDL或VerilogHDL語言進行FPGA的DSP系統設計,難度比較大。現在利用基於FPGA的DSP開發工具DSP Builder以及完整的軟體開發平臺,可以使設計者遵循一條類似於軟體設計流程的開發方法進行FPGA的DSP設計,設計效率大為提高。基於DSP Builder的系統級開發流程如圖1所示。

2 JPEG算法原理

JPEG專家組開發了兩種基本的壓縮算法,一種是以離散餘弦變換DCT(Discrete Cosine Transform)為基礎的有損壓縮算法;另一種是以預測技術為基礎的無損壓縮算法。使用有損壓縮算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在VCD和DVD-Video電視圖像壓縮技術 中,就使用JPEG的有損壓縮算法來取消空間方向上的冗餘數據。
JPEG壓縮是有損壓縮,它利用了人眼視角系統的特性,使用量化和無損壓縮編碼相結合來去掉視角的冗餘信息和數據本身的冗餘信息。JPEG算法框圖如圖2所示。

壓縮編碼大致分成三個步驟:
(1)使用正向離散餘弦變換FDCT把空間域表示的圖變換成頻率域表示的圖。
(2)使用加權函數對DCT係數進行量化,這個加權函數對於人的視覺系統是最佳的。
(3)使用霍夫曼可變字長編碼器對量化係數進行編碼。解碼(或者叫解壓縮)過程與壓縮編碼過程相反。
3 JPEG算法模型的實現
在DSP Builder下進行系統搭建。DSP Builder平臺提供了加法器、乘法器以及數位訊號處理涉及到的眾多模塊,對這些模塊可以進行可視化的參數編輯。本設計從Matlab的Workspace中導入需要壓縮的圖像,然後通過用DSP Builder構建的JPEG壓縮算法壓縮編解碼,最後在Matlab中顯示重建的圖像。JPEG靜態圖像壓縮算法壓縮的對象是YCbCr格式的,所以在進行圖像壓縮前要進行預處理。通過Matlab中的Color Space Conversion將RGB格式的圖像轉換成YcbCr格式。
待壓縮的圖像數據首先要進行DCT變換,受FPGA硬體資源的限制,可以先進行一維行變換,將得到的數據按列存儲到RAM中,等到數據全部輸入到RAM中,再對RAM中的數據進行一維的DCT行變換。然後重複利用一維的DCT模塊,以節省硬體資源。
DCT變換後的頻率係數要進行量化。JPEG算法使用均勻量化器進行量化,量化步距按照係數所在的位置和每種顏色分量的色調值確定。因為人眼對亮度信號與對色差信號敏感度不同,因此使用了兩種量化表。設計實現方法為:將DCT係數除以量化步長取整數。為了保證DCT係數中低頻分量先出現,高頻分量後出現,量化後的係數要重新編排,JPEG算法採用Z字型編碼,增加了連續「0」係數的個數,即「0」的遊程長度,以達到用更少的數據表示更多信息的目的,從而優化編碼。量化的目的是減小非「0」係數的幅度以及增加「0」值係數的數目。
JPEG算法使用了差分脈衝調製編碼(DPCM)技術,對相鄰圖像塊之間量化DC係數的差值(Delta)進行編碼。量化交流AC係數的特點是1×64矢量中包含許多「0」係數,並且許多「0」是連續的,因此使用非常簡單和直觀的遊程長度編碼(RLE)對它們進行編碼。使用熵編碼還可以對DPCM編碼後的直流DC係數和RLE編碼後的交流AC係數作進一步壓縮。在JPEG有損壓縮算法中,通過使用霍夫曼編碼器來減少熵,原因是使用霍夫曼編碼器可以用很簡單的查表(Lookup Table)方法進行編碼。壓縮數據符號時,霍夫曼編碼器對出現頻度比較高的符號分配比較短的代碼,而對出現頻度較低的符號分配比較長的代碼。這種可變長度的霍夫曼碼錶可以事先定義。
JPEG編碼的最後一個步驟是把各種標記代碼和編碼後的圖像數據組成一幀一幀的數據,以便於傳輸、存儲和解碼器解碼,這種數據通常稱為JPEG位數據流。
4 模型仿真分析
設計採用DSP Builder的HIL進行仿真驗證。HIL把設計包裹在一套接口中間進行編譯,然後下載到板子的FPGA中。首先將模型文件(.mdl)用SignalCompiler編譯生成Quartus II的工程文件(.qpf);然後將工程文件加載到HIL模塊中,在HIL模塊中進行時鐘、復位等信號設置,選擇FPGA器件型號;最後編譯文件並將配置下載到FPGA中。Simulink通過下載電纜把測試數據不斷輸入,然後在輸出端不斷獲得硬體運行的結果。利用HIL在硬體上進行仿真,可以加快仿真速度,同時可對算法、時序和引腳配置進行檢測。由於FPGA可以無限次燒錄,所以利用HIL進行仿真非常方便。HIL仿真模塊如圖3所示。

利用HIL進行圖像的壓縮和解壓仿真驗證,觀察經過壓縮和解壓後的圖像可以發現,該仿真模型成功實現了JPEG靜態圖像壓縮的編解碼算法,解壓後的圖像效果很好。把SignalCompiler編譯生成Quartus II的工程文件(.qpf)下載到FPGA晶片中,觀察到使用的邏輯單元塊LE(Logic Elements)數量為1 224個,而用VHDL語言編寫JPEG算法下載到FPGA晶片中將佔用1 483個單元塊。表1表明用DSP Builder進行系統級的算法設計與用傳統的VHDL語言進行設計更節省硬體資源。

應用現代DSP技術,通過Altera公司提供的數位訊號處理開發工具DSP Builder搭建了JPEG靜態圖像壓縮編解碼模型,並用HIL進行了仿真驗證。實驗結果表明,設計的JPEG模型能夠成功實現靜態圖像的壓縮編解碼,且重建的圖像效果很好。應用DSP Builder進行系統級的算法設計相比用VHDL語言設計更節省硬體資源。


相關焦點

  • 基於小波變換的JPEG2000圖像壓縮編碼系統的仿真與
    但由於有損壓縮的原因,傳統JPEG在許多對圖像質量要求較高的應用場合無法勝任。與傳統JPEG基於離散餘弦變換不同,JPEG2000基於離散小波變換,它不僅在壓縮性能方面明顯優於JPEG,還具有很多JPEG無法提供或無法有效提供的新功能,比如,同時支持有損和無損壓縮、大幅圖像的壓縮、漸進傳輸、感興趣區編碼、良好的魯棒性、碼流隨機訪問等。一個典型的JPEG2000的壓縮過程如圖1所示。
  • 谷歌開源JPEG編碼器Guetzli,壓縮35%也能生成高質量圖片
    雷鋒網消息,谷歌近日開源了用於數字圖像和網絡圖形的JPEG編碼器 Guetzli( [guɛtsli], 在瑞士德語中被翻譯為餅乾)。與現有的方法相比,它能將高質量圖片的大小縮小35%。這就使網站管理員可以使用更少的數據更快地加載網頁,此外,它能兼容現有的瀏覽器、圖像處理應用和JPEG標準。
  • 基於小波變換的圖像壓縮算法改進研究
    2.2 基於小波變換的圖像壓縮編碼  基於小波變換的圖像壓縮能夠實現較高的壓縮比和比較理想的圖像恢復質量,因此它成功地替代DCT成為了JPEG2000、MPEG由圖3可以看出,改進算法比傳統算法重構的圖像輪廓更加清晰,恢復質量更好,增加了更多的細節。同時,實驗結果表明,改進算法在保證圖片質量的前提下,實現了更高的壓縮比,壓縮效率顯著提高。5 結論  本文深入分析了傳統的嵌入式小波零樹壓縮編碼算法諸多不足,包括因多次重複掃描、單一編碼和掃描方式等導致圖像壓縮效率低,針對性地提出了改進方案。
  • 基於小波變換與DSP的實時音頻視頻處理系統
    由於小波變換技術能充分地利用人眼的視覺特性,因此因而用小波變換視頻編碼將會獲得比現在標準得多的壓縮效果。本文介紹一種基於adv611,ct8021晶片同時結合ti公司的tms320c6201晶片實現音/視頻實時處理系統。在該實時系統中,dsp晶片作為控制核心、一方面要管理adv611,ct8021,存儲器和通信接口,另一方面要對adv611的圖像壓縮效果進行調解,對數據速率實時控制。
  • JPEG2000數據壓縮的FPGA實現
    為解決圖像數據的高壓縮性能問題,本文提出了基於JPEG2000標準的數據壓縮系統的FPGA實現方案。相對於軟體算法實現和其他硬體方法,採用FPGA硬體實現可降低系統複雜度提高性能。最終設計的IP核具有資源佔用少,性能良好和便於擴展等優點,能夠滿足通信傳輸和照相設備等應用需求。
  • 一種基於小波變換的圖像壓縮方法與實現
    1.2 圖像壓縮技術的發展一般將基於資訊理論和數位訊號處理的圖像壓縮技術稱為第一代壓縮技術,而將結合人類視覺特性、心理特性的圖像壓縮技術稱為第二代壓縮技術。第一代壓縮技術以信源編碼理論為基礎,使信源的概率分布儘可能非均勻或是去除信源符號間的相關性,從而達到壓縮的目的。第二代壓縮技術則注重於利用人類的生理特點來獲得高壓縮比,涉及的理論領域多,如基於分形理論、小波理論等。
  • 基於小波變換的視頻圖像壓縮算法研究
    l 引 言 隨著網絡和多媒體技術的迅速發展,特別是3G技術的逐漸普及,多媒體信息特別是視頻圖像信息將越來越豐富。對數據量龐大的視頻圖像信息進行壓縮是非常必要的,因此視頻圖像的壓縮也一直吸引著廣大研究者進行不斷深入的探索。
  • 第六講 DSP在雷達信號處理中的應用
    引言 dsp是一種基於精簡指令集的可編程數學計算晶片,可以對數位訊號進行時頻域變換、頻譜分析、濾波、估值、增強、壓縮等處理,廣泛應用於家用電器、多媒體系統、雷達、衛星系統、移動通信、網絡會議、醫學儀器、實時圖像識別與處理、語音處理、自適應制導控制、模式識別、定位、導航、聯合戰術無線電系統和智能基站等領域。
  • 基於雙DSP的雷場偵察圖像實時壓縮及存儲方法研究
    可與SDRAM和SBRAM實現無縫連接,用於大容量高速存儲。其直接異步存儲器接口可與SRAM和EPROM連接,用於小容量數據存儲和程序存儲。  3 系統硬體設計  按功能劃分,圖像壓縮及存儲系統包括圖像採集模塊、GPS數據採集模塊、CPLD邏輯控制模塊、雙口RAM+雙DSP圖像處理模塊、圖像實時存儲模塊和壓縮數據輸出模塊。
  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 基於DSP的數字掃描探針顯微鏡的硬體解決方案研究
    技術也已經廣泛地應用於通信、測量、多媒體、消費電子產品等領域,由於把dsp和spm結合在一起是spm儀器發展的必然方向,它能使spm性能更趨於完善,為此,本文介紹如何用tms320c5416來實現這一設想!
  • 基於運動補償和幀內編碼實現視頻圖像的無損壓縮
    該系統的關鍵功能之一就是存儲視頻圖像,而視頻圖像的數據量是非常巨大的,必須進行壓縮、復原處理。圖1 小波變換壓縮編碼圖2 視頻圖像的編碼框圖圖3 運動補償和運動估計目前用於圖像壓縮和復原的方法很多,考慮各種實際因素,本系統採用雙正交小波變換來實現視頻圖像的壓縮與復原。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    2 系統硬體總體設計 系統的硬體功能是實現語音指令的採集和步進電機的驅動控制,為系統軟體提供開發和調試平臺。如圖1所示。 系統硬體分為語音信號的採集和播放,基於dsp的語音識別,fpga動作指令控制、步進電機及其驅動、dsp外接快閃記憶體晶片,jtag口仿真調試和鍵盤控制幾個部分。
  • 4G圖傳移動執法視頻壓縮技術淺述
    視頻壓縮淺述對於算法研究而言,本身就是要先知道哪個地方可以努力,哪些地方行不通。這些原理,就是指明方向的。一.視頻壓縮的可行性1.空間冗餘一幅靜態圖像,比如人臉。背景,人臉,頭髮等處的亮度,顏色,都是平緩變化的。
  • 基於小波包變換和壓縮感知的人臉識別算法
    壓縮感知理論的出現和發展,給人臉識別帶來了新的啟發,使得基於稀疏表示的人臉識別技術得到了廣泛研究。傳統的基於稀疏表示的人臉識別是利用壓縮感知超完備庫下的稀疏表示,將訓練圖片直接構造為冗餘字典,再求解重構算法下的最優稀疏線性組合係數,然後根據這些係數來對人臉圖像進行分類。
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    蕭簫 發自 凹非寺量子位 報導 | 公眾號 QbitAI還在為圖像加載犯愁嗎?最新的好消息是,谷歌團隊採用了一種GANs與基於神經網絡的壓縮算法相結合的圖像壓縮方式HiFiC,在碼率高度壓縮的情況下,仍能對圖像高保真還原。
  • 天才高中生參與斯坦福新研究:在圖像壓縮上,人類比算法強!
    像這樣發送連結,而不是上傳大量圖像,只是人們傳遞信息的一種技巧。而根據斯坦福工程師和高中生的研究,這樣的技巧可能會激發一種全新的圖像壓縮思路。研究人員要求人們將傳統壓縮算法生成的圖像與人類在數據受限條件下生成的圖像進行比較。
  • 基於DSP的FFT算法實現
    基於DSP的FFT算法實現1、FFT的原理快速傅氏變換(FFT)是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、偶、
  • 圖像檢測技術在靜態風電葉片檢測中的應用綜述
    因此,實現風電葉片工作狀態的有效檢測對保障風電產業的順利發展具有重要的意義。基於上述分析,本文在總結靜態風電葉片常見損傷的基礎上,就目前圖像檢測技術在靜態風電葉片檢測中的應用進行一定的綜述和對比分析,以期對風電葉片的生產、運輸、安裝測試等起到一定指導性的作用。 2.
  • 你了解壓縮算法嗎?常見的壓縮算法都在這裡了
    如果是圖形,那麼該文件就是圖像文件。在任何情況下,文件中的字節數都是連續存儲的。壓縮算法的定義上面介紹了文件的集合體其實就是一堆字節數據的集合,那麼我們就可以來給壓縮算法下一個定義。幀間與幀內在視頻編碼中會同時用到幀內與幀間的編碼方法,幀內編碼是指在一幀圖像內獨立完成的編碼方法,同靜態圖像的編碼,如 JPEG;而幀間編碼則需要參照前後幀才能進行編解碼,並在編碼過程中考慮對幀之間的時間冗餘的壓縮,如 MPEG。