<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于VFW軟件開發包實現聲吶圖像壓縮存儲系統的應用方案

電子設計 ? 來源:電子產品世界 ? 作者:董琎琎;金雪;夏偉 ? 2021-03-19 10:46 ? 次閱讀

作者:董琎琎;金雪;夏偉杰;袁春輝

針對聲納系統圖像實時存儲過程中的大數據量問題,本文提了一種聲納視頻壓縮存儲的工程實現方法。采用MPEG-4視頻編碼標準[1]及Xvid編碼器,基于VFW數字視頻軟件開發包,在VS2010開發環境下實現了對聲吶視頻的高壓縮率、高壓縮質量的實時壓縮存儲。經過實際測試,本文設計方案能夠滿足成像聲納系統在100m滿量程條件下,最高幀率15Hz的應用需求。

引言

聲納成像在海洋資源開發和海洋防衛等方面有著重要的意義,具有作用距離遠、直觀顯示觀測區域狀況和識別目標等特點,被廣泛地應用于軍事、經濟領域。在成像聲納系統的設計過程中,為了實現對目標更為細膩的刻畫,系統的角度和距離分辨率指標往往都很高。本文設計的成像聲納的相關技術指標為:量程100m,視角90°×20°,波束數538,波束間距0.17°,量程分辨率:2.5cm,最高幀率:15Hz。在工程實踐中,我們需要對聲納的實時畫面進行存儲,以便后期的查閱和分析,在15Hz的幀速率下,每小時產生的圖像需要占據的存儲空間為3600X[15X(100X40X538)]Byte=116.2085GB,對系統存儲能力的要求將會非??量?,亟需引入圖像壓縮技術來解決這一問題。

1 VFW軟件開發包

VFW(Video for Windows)是微軟推出的關于數字視頻的一個軟件開發包,它圍繞AVI文件標準,推出了一整套完整的視頻采集、壓縮解壓縮、回放和編輯API。它可以實現從傳統模擬視頻源得到視頻剪輯,還可以實現影像壓縮和影音播放。由于AVI文件格式在數字視頻技術中被廣泛使用,因此VFW在將來一段時間內仍會有較高的實用價值。用戶不必專門安裝VFW,Windows系統本身就包含了VFW技術。安裝Windows的時候VFW所需的相關組件就會同時被安裝上。VS2010中提供了VFW的頭文件Vfw.h和庫文件Vfw32.lib。在VS2010開發環境中調用VFW,只需要將Vfw32.lib加入工程,并在主對話框源文件HAICADlg.cpp中包含Vfw.h文件。

2 聲吶圖像壓縮存儲的實現

要進行聲吶圖像壓縮存儲,在選擇了Xvid編碼器的基礎上,還要進行一系列操作,主要包括:AVI文件的初始化、壓縮參數設置、壓縮前后位圖格式設置、判斷壓縮支持、圖像壓縮和存儲。軟件實現流程如圖 1所示。

基于VFW軟件開發包實現聲吶圖像壓縮存儲系統的應用方案

2.1 壓縮前位圖格式的設置

本文成像聲吶系統無需進行視頻采集,而是直接接收前端信號處理FPGA上傳的數據。濕端設備上傳的數據是波束形成后得到的,每個距離點處有538個波束,距離像上的點數由探測量程決定,距離分辨率為2.5cm。圖像數據是一個矩陣。

如果直接顯示圖像數據,那么在屏幕上為一個矩形,和實際探測區域為90°視角的扇形區域不一致。為了符合人們的觀察習慣,需要把圖像進行坐標轉換,將矩形視圖轉換成扇形視圖,如圖 2所示。除此之外,波束形成產生的是灰度圖像,每個像素點由一個8bit的像素值表示,即0~255的灰度值。為了提高人眼對圖像的分辨能力,在顯示的時候需要將灰度圖像映射成彩色圖像,即每個像素點由三個8bit的值表示,分別為RGB強度值。這種彩色并非真正意義上的彩色圖像,故而稱之為偽彩色。圖 3所示為偽彩色映射的bone、cool、copper、hot、jet五種映射方式。

壓縮前位圖格式與轉換后的扇形圖像有關,它保存的是扇形圖的位圖信息,包括圖像的寬度、高度、大小、每個像素點的位數等。最終顯示的扇形圖的寬和高與圖像是否處于縮放狀態有關。在MFC工程的頭文件中定義了一個40字節的專有結構來保存壓縮前的位圖格式,根據圖像是否處于縮放狀態進行賦值。

2.2 壓縮參數設置

該部分定義了一個COMPVARS結構的對象保存編碼器的壓縮參數。開發者可以自己手動設置該結構體中的各個成員變量,前提是你必須了解使用的編碼器的參數值;也可以彈出一個對話框讓用戶選擇編碼器,如圖 4所示,同時初始化COMPVARS結構。

本文中采用第二種方法來設置壓縮參數。ICCompressorChoose()函數中的uiFlags參數可供開發人員進行不同應用的開發,可以設置為如表 1所示的五種值。

本文選擇MPEG-4 Xvid編碼器。如果用戶成功選擇了一個編碼器,該函數返回TRUE,否則返回FALSE。通過一個指向COMPVARS結構的指針返回用戶通過對話框選擇的編碼器的壓縮參數信息并使用該壓縮參數進行圖像壓縮。

2.3 壓縮后位圖格式的設置

在壓縮前位圖格式和編碼器的壓縮參數都已知的情況下,可使用ICCompressGetFormat宏來設置壓縮器的輸出格式,根據輸入位圖格式和選擇的編碼器的壓縮參數,返回一種編碼器支持的輸出位圖格式。傳址調用要先定義一個結構的指針,作為函數的第三個參數。函數返回時,指針指向的結構就包含了編碼器的輸出位圖格式。

在VS2010中調試程序時,通過變量監視查看到輸出位圖的信息頭,如圖 5 編碼器輸出位圖格式所示。由此可見Xvid編碼器將24位RGB格式仍然壓縮成24位RGB格式。

2.4 判斷壓縮支持

在進行圖像壓縮之前需要判斷是否支持該壓縮方式。ICCompressQuery宏用來判斷選定的編碼器是否支持輸入格式或者是否能夠將輸入格式壓縮成輸出格式,如果支持則返回ICERR_OK。使用時直接將設置好的壓縮器句柄、輸入位圖格式、輸出位圖格式當作實參傳遞給ICCompressQuery宏即可。

這里定義了FrameStart函數來完成幀序列壓縮的資源分配,為使用幀圖像壓縮函數做準備。它有兩個參數:一個為編碼器的壓縮參數,另一個為輸入數據的位圖格式。初始化成功返回TRUE。具體形式如下所示:

BOOL ICSeqCompressFrameStart(

PCOMPVARS pc, //壓縮參數

LPBITMAPINFO lpbiIn //輸入位圖格式 );

2.5 圖像壓縮與存儲

這里定義了ICCompress函數來完成單幀圖像的壓縮,并定義了一系列輔助函數來完成資源分配、資源釋放和壓縮后數據的存儲地址返回。每壓縮完一幀數據,要先設置流的格式信息,然后就可以將壓縮后的視頻數據寫入AVI數據流。壓縮后的AVI文件通過普通的視頻播放器解壓播放,顯示畫面如圖 6(b)所示,與干端顯控軟件實時顯示的壓縮前的聲吶圖像基本一致,如圖 6(a)所示,人眼幾乎看不出差別,壓縮率達到10倍以上。由此可見,MPEG-4編碼標準圖像壓縮質量高,同時壓縮率也高。

3 聲吶圖像壓縮效果評價

3.1 壓縮率

設計了兩種方法比較不同圖像數據的壓縮率,一種將標準正弦信號直接作為聲吶接收的回波信號,進行信號處理以及波束形成后,干端實時接收顯示的圖像作為壓縮源,另一種將真實水域中聲吶接收到的回波信號,進行信號處理以及波束形成后,干端實時接收顯示的圖像作為壓縮源。為了提高結果的可信度,在不同水域情況下壓縮比較,得到的聲吶圖像的壓縮率如表 2 所示。

從表中可以看出,圖像數據幀與幀之間、像素點與像素點之間冗余度越大,圖像的可壓縮程度越大,壓縮率越高??傮w來說,本文設計的成像聲納視頻壓縮存儲方法的標準壓縮率達到10倍以上,滿足系統的存儲需求。

3.2 壓縮質量

目前視頻圖像壓縮質量的檢測方法一般采用峰值信噪比(PSNR)作為圖像質量客觀評價的指標。圖像質量評價標準是針對單幀圖像而言的,因此可以將視頻圖像分解為多個靜止圖像,通過計算單幀圖像的峰值信噪比來得到視頻圖像的峰值信噪比。給定一幅大小為M×N的數字化圖像

Matlab中根據公式(1)和(2)計算單幀圖像的峰值信噪比,得到結果PSNR=37.1646 。通常情況下,PSNR值高于28,則待測圖像和參考圖像差異不明顯,當高于35時,則人眼很難看出兩幅圖像的差異。由此可見,本文設計的成像聲納視頻壓縮存儲方法在保證一定的壓縮比例的同時,得到的圖像壓縮質量較高,可以基本無失真重現測試場景,以保證后期對數據的復查和分析。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼器
    +關注

    關注

    42

    文章

    3440

    瀏覽量

    132079
  • 分辨率
    +關注

    關注

    2

    文章

    999

    瀏覽量

    41655
  • 存儲系統
    +關注

    關注

    2

    文章

    387

    瀏覽量

    40744
收藏 人收藏

    評論

    相關推薦

    NUC505軟件開發包為什么不能下載?

    NUC505 軟件開發包不能下載
    發表于 01-17 06:35

    請問哪位大神有code warrior對應的SDK軟件開發包

    我使用的DSP是freescale的56F800,我看很多教程里面都提到了嵌入式軟件開發包SDK,但是我百度了一下,卻沒有找到相應的下載鏈接。請問論壇里有誰是用這款芯片的嗎?我才接觸freescale的芯片,現在學得一頭霧水的,能幫忙指導一下嗎?萬分感謝。
    發表于 02-23 19:21

    STM32F0x_F100xx_F103xx_F2xx_F30x_F4xx PMSM 單電機_雙電機 FOC 軟件開發包 V3.4

    STM32F0x_F100xx_F103xx_F2xx_F30x_F4xx PMSM 單電機_雙電機 FOC 軟件開發包 V3.4
    發表于 08-12 14:27

    如何去實現一種聲吶圖像壓縮存儲?

    如何去實現一種聲吶圖像壓縮存儲?聲吶圖像
    發表于 06-01 07:03

    Qualcomm發布驍龍虛擬現實軟件開發包

    2016年3月14日,舊金山 — Qualcomm Incorporated(NASDAQ: QCOM)今日宣布,其子公司Qualcomm Technologies, Inc.發布全新虛擬現實(VR)軟件開發包(SDK)。下一代移動虛擬現實應用十分復雜,具有極端的功耗約束和極具挑戰的性能要求。
    發表于 03-16 09:47 ?581次閱讀

    高速圖像存儲系統中SDRAM控制器的實現

    高速圖像存儲系統中SDRAM控制器的實現
    發表于 08-29 15:02 ?10次下載

    基于FPGA的多通道圖像采集存儲系統設計

    基于FPGA的多通道圖像采集存儲系統設計
    發表于 08-30 15:10 ?11次下載

    基于閃存的圖像存儲系統設計

    基于閃存的圖像存儲系統設計,又需要的下來看看
    發表于 09-22 14:08 ?13次下載

    CC1310如何選擇合適的軟件開發包和協議棧

    CC1310軟件速成之二 CC1310軟件開發包和協議棧
    的頭像 發表于 04-23 06:23 ?4197次閱讀
    CC1310如何選擇合適的<b class='flag-5'>軟件開發包</b>和協議棧

    ESP8266 RTOS SDK軟件開發包API參考資料免費下載

    本文檔的主要內容詳細介紹的是ESP8266 RTOS SDK軟件開發包API參考資料免費下載。
    發表于 03-19 08:00 ?21次下載
    ESP8266 RTOS SDK<b class='flag-5'>軟件開發包</b>API參考資料免費下載

    新能源汽車電驅系統MCU軟件開發工具包-DriveSoft

    to Production ). 電機控制D2P 一體化解決方案的核心是基于模型的電機算法控制技術- MMC ( Model-based Motor Control )。 MMC產品主要由電機控制器硬件及軟件開發包
    發表于 05-02 11:52 ?1837次閱讀

    如何使用FPGA實現多通道圖像采集存儲系統的設計

    針對圖像信號的基本特征設計了對于四路間歇性數據并行存儲方案,整個圖像采集存儲系統分為控制模塊和存儲
    發表于 01-29 15:27 ?6次下載
    如何使用FPGA<b class='flag-5'>實現</b>多通道<b class='flag-5'>圖像</b>采集<b class='flag-5'>存儲系統</b>的設計

    如何使用閃存實現圖像存儲系統的設計

    針對硬盤存儲圖像速度慢、可靠性差的弊端,分析了以Flash作為存儲介質的可行性,提出了一種基于閃存Flash的存儲系統設計方案。利用并行與流
    發表于 03-23 15:44 ?10次下載
    如何使用閃存<b class='flag-5'>實現</b><b class='flag-5'>圖像</b><b class='flag-5'>存儲系統</b>的設計

    軟件開發的流程和方法有哪些?

    軟件開發是根據客戶要求構建出軟件系統或者系統中的軟件部分,一般是通過程序設計語言實現的,比如C/
    的頭像 發表于 12-27 10:56 ?1513次閱讀
    <b class='flag-5'>軟件開發</b>的流程和方法有哪些?

    嘉楠科技開源K230軟硬件開發包 輕松實現從底層硬件到應用軟件開發

    日前,嘉楠科技宣布開源最新一代K230芯片軟硬件開發包。軟件開發包不僅涵蓋K230開源代碼、軟件API庫、使用說明文檔、相關調試及下載工具,還提供多個SDK用例和AI Demo示例,幫助開發
    的頭像 發表于 07-07 18:36 ?766次閱讀
    嘉楠科技開源K230軟硬件<b class='flag-5'>開發包</b> 輕松<b class='flag-5'>實現</b>從底層硬件到應用<b class='flag-5'>軟件開發</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>