當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于MPEG-4的嵌入式多媒體監(jiān)控系統(tǒng)中壓縮/解壓卡的設(shè)計與實現(xiàn)

1 MPEG-4 標(biāo)準(zhǔn)及其在多媒體監(jiān)控系統(tǒng)中的應(yīng)用

多媒體監(jiān)控系統(tǒng)是多媒體技術(shù)在安防領(lǐng)域的新應(yīng)用。音視頻壓縮技術(shù)是多媒體監(jiān)控系統(tǒng)中的關(guān)鍵技術(shù)。在數(shù)字多媒體壓縮領(lǐng)域內(nèi)有很多國際標(biāo)準(zhǔn),如ISO/ITU-T 技術(shù)委員會下的JPEG 標(biāo)準(zhǔn),CCITT制定的H. 263標(biāo)準(zhǔn),以及著名的MPEG標(biāo)準(zhǔn)等。

MPEG-4標(biāo)準(zhǔn)于2000年10月公布。MPEG-4 標(biāo)準(zhǔn)的主要特點是對圖像中的內(nèi)容進(jìn)行編碼, 其核心是基于內(nèi)容的尺度可變性(Content - basedscalability) 。內(nèi)容尺度可變性意味著給圖像中的各個對象分配優(yōu)先級。其中,比較重要的對象用較高的空間和(或) 時間分辨力表示。對甚低比特率應(yīng)用來說,尺度可變性是一個關(guān)鍵的因素,因為它提供了自適應(yīng)可用資源的能力。例如,這個功能允許使用者規(guī)定:對具有較高優(yōu)先級的對象以可接受的質(zhì)量顯示,第二優(yōu)先級的對象則以較低的質(zhì)量顯示,而其余內(nèi)容(對象) 則不顯示。對于監(jiān)控系統(tǒng)來說,在絕大部分時間內(nèi),監(jiān)視畫面的背景都保持不變,因此在要求低比特率時,對于監(jiān)視畫面的背景部分可以以較低的質(zhì)量顯示,且不會影響整個畫面的效果。本系統(tǒng)采用MPEG

- 4 壓縮標(biāo)準(zhǔn),在實現(xiàn)上選擇硬壓縮和硬解壓, 所用的壓縮解壓芯片為VWEB公司的VW2010 芯片。

2 硬件設(shè)計原理

2.1 VW2010 芯片的主要特點

VW2010是VWEB公司開發(fā)的實時MPEG-4音視頻壓縮/ 解壓芯片(CODEC) 。該芯片具有以下主要特點:

(1) 單片集成3 個信號處理/ 控制單元,包括一個視頻編碼(壓縮) 器、一個視頻解碼(解壓) 器和一個片內(nèi)CPU(內(nèi)部擴(kuò)展一個音頻編碼DSP、一個音頻解碼DSP、一個多路復(fù)合單元和一個多路解復(fù)合單元) 。

(2) 為了達(dá)到可編程、高性能和低功耗,每個信號處理/ 控制單元都是由一個RISC處理器和專用的硬件加速器構(gòu)成,視頻編、解碼器內(nèi)部還集成一個專用的SDRAM。

(3) 在系統(tǒng)上電/ 復(fù)位時,視頻編、解碼器的固件程序從外部主機(jī)(host )載入各自專用的SDRAM;片內(nèi)CPU的固件程序載入VW2010外掛的SDRAM。

(4) 芯片主機(jī)接口采用標(biāo)準(zhǔn)PCI 接口。符合PCI局部總線規(guī)范2. 2 。

(5) 為了使編、解碼性能達(dá)到最佳,VW2010內(nèi)部集成了一個雙通道DMAC。系統(tǒng)host直接通過主機(jī)接口對VW2010 進(jìn)行控制,MPEG流數(shù)據(jù)則采用DMA方式傳輸。

(6) 提供了與PHILIPS公司兼容的I2C總線,方便對外圍芯片的控制。

2.2 基于VW2010 的壓縮/ 解壓卡硬件設(shè)計原理

壓縮卡的原理框圖如圖1所示。CVBS信號先經(jīng)過視頻接收電路進(jìn)行前端處理,包括阻抗匹配、限幅和鉗位,然后通過視頻解碼電路產(chǎn)生符合VW2010視頻接口標(biāo)準(zhǔn)的ITU656信號。視頻解碼電路的核心是一個視頻解碼芯片,解碼芯片對CVBS信號進(jìn)行A/ D轉(zhuǎn)換和編碼,產(chǎn)生ITU656 標(biāo)準(zhǔn)的并行數(shù)字電視信號。高檔的視頻解碼器還支持圖像尺寸縮放( scaling) 和幀提取(decimating) 功能,如PHILIPS 公司的SAA7114 、SAA7115 以及Rockwell 公司的BT829A 等。由于VW2010的視頻輸入為ITU656/D1 格式,所以只需要選擇具有基本A/D 轉(zhuǎn)換和編碼功能的視頻解碼芯片如SAA7113 即可。

圖1  壓縮卡原理圖

模擬音頻信號先經(jīng)過模擬音頻接收電路進(jìn)行前端處理,然后通過音頻ADC 產(chǎn)生符合VW2010音頻接口標(biāo)準(zhǔn)的I2S 信號。VW2010是壓縮卡的核心處理芯片,除了完成音視頻編碼外,還提供對解碼器和ADC 的控制(通過I2C 總線) ,編碼產(chǎn)生的MPEG流則通過芯片內(nèi)部集成的PCI 接口輸出。

解壓是壓縮的逆過程,基本原理類似,限于篇幅,不再贅述。

3 Linux 下V W2010 設(shè)備驅(qū)動程序設(shè)計

3.1 VW2010 與host 的通信機(jī)制

VW2010提供了三種用于同host 通信的機(jī)制: 直接訪問內(nèi)部寄存器、共享存儲區(qū)( sharedmemory) 和DMA。VW2010允許host 直接訪問其內(nèi)部寄存器和外部存儲單元,寄存器方式主要用于調(diào)試目的和下載固件程序; DMA 方式則負(fù)責(zé)VW2010 芯片和應(yīng)用緩沖區(qū)之間的數(shù)據(jù)傳輸(如MPEG流數(shù)據(jù)) ;共享存儲區(qū)機(jī)制是設(shè)備驅(qū)動程序和VW2010 間的主要通信方式。

3.1.1 共享存儲區(qū)(shared memory)

VW2010 采用共享存儲區(qū)機(jī)制接收host 的命令并返回命令執(zhí)行結(jié)果。用于host 到VW2010 通信的共享存儲區(qū)(以下簡稱SM-PC2VW) 位于en-coder SDRAM 中地址3F1800 處,共128 字節(jié); 用于VW2010到host 通信的共享存儲區(qū)(以下簡稱SM-VW2PC) 位于encoder SDRAM 中地址3F1880 處,共128 字節(jié)。

SM_PC2VW 的格式如表1 所示。表中,CMD 為命令碼, 分別是: 讀數(shù)據(jù)(CMD=1) 、發(fā)IOCTL 碼(CMD=2) 、寫數(shù)據(jù)(CMD=3) 、打開命令(CMD = 4) 和關(guān)閉命令(CMD=5) ; Int Flag為中斷標(biāo)識, Int Flag 為1 ,則VW2010 執(zhí)行完CMD 定義的任務(wù)后將產(chǎn)生一個中斷,為0 則不產(chǎn)生;Device Handle 由打開命令從firmware 中獲得; 當(dāng)CMD不同時,Parameters 有不同的含義,后面將詳細(xì)討論。

SM_VW2PC 的格式如表2 所示。ACK/NACK的含義是:如果SM_PC2VW 中Int Flag 為1 ,且命令CMD 成功執(zhí)行,則為ACK;如果SM-PC2VW 中Int Flag 為1 ,且執(zhí)行命令CMD 失敗,則為NACK,并將錯誤碼保存在Return Code 字段。

在發(fā)送其它命令之前必須先發(fā)送打開命令,此時,Device Handle 字段為0 ,Parameters 字段為打開類型( TSMUX , PSMUX , TSDEMUX 或PSDE-MUX) 。如果該命令成功執(zhí)行, 則會在SM_VW2PC 的Device Handle字段返回所分配的Device Handle ;在SM_VW2PC 的Parameters字段返回輔助參數(shù)區(qū)的首地址(下面簡稱為X) 。輔助參數(shù)區(qū)由firmware 在encoder SDRAM 中動態(tài)分配,用于傳遞跟命令相關(guān)的參數(shù)。在結(jié)束使用共享內(nèi)存區(qū)后,必須發(fā)送關(guān)閉命令以釋放輔助參數(shù)區(qū)。

3.1.2 信號燈

由于共享存儲區(qū)是臨界資源,所以必須提供一種機(jī)制保證VW2010 和host 互斥地使用它們。為此,VW2010 分別給SM_PC2VW 和SM_VW2PC 提供了兩個硬件信號燈, 由寄存器REG_INT1 和REG_INT2 的最低位實現(xiàn)。VW2010 為信號燈定義了兩種操作: 寫操作:向REG_INT1 或REG_INT2 的最低位寫入1 ,釋放共享存儲區(qū)。讀操作:返回REG _INT1 或REG_INT2 的最低位的值,同時清該位為0 。

3.1.3 host 到VW2010 的中斷

host 通過向VW2010發(fā)中斷的方式通知VW2010 從共享存儲區(qū)讀取主機(jī)命令。VW2010用寄存器REG_DHIU5實現(xiàn)host 到VW2010 的中斷。REG_DHIU5 的最低四位用于保存中斷計數(shù),第五位為中斷屏蔽位。host 向REG_DHIU5 每寫一次, 中斷計數(shù)加1 ; VW2010 每讀REG_DHIU5 一次,中斷計數(shù)減1 。只要中斷計數(shù)不為0 ,則VW2010 內(nèi)部的中斷請求信號一直保持有效。

3.2 VW2010 數(shù)據(jù)讀寫和IOCTL 方法(method) 的實現(xiàn)

數(shù)據(jù)讀寫和IOCTL 的實現(xiàn)依賴于上述的共享存儲區(qū)機(jī)制,在下面的討論中,我們假設(shè)已經(jīng)通過打開命令(CMD = 4) 從firmware 獲取了DeviceHandle 和輔助參數(shù)區(qū)(首地址為X) 。

3.2.1 數(shù)據(jù)讀寫方法的實現(xiàn)

VW2010 采用DMA 方式實現(xiàn)與應(yīng)用空間的數(shù)據(jù)交換。讀/ 寫命令用于建立從VW2010 到host 的DMA 通道并啟動數(shù)據(jù)傳輸,它并不等待數(shù)據(jù)傳輸完成, 而是讓DMA 傳輸在后臺運行, 當(dāng)DMA 傳輸結(jié)束后,VW2010 會中斷主機(jī)。

當(dāng)應(yīng)用程序要讀寫數(shù)據(jù)時,它首先會分配一些緩沖區(qū)用于保存讀寫數(shù)據(jù)。這些緩沖區(qū)可以用首地址和長度標(biāo)識,如可以用(Address ,Len) 代表首地址為Address、長度為Len的緩沖區(qū)。在發(fā)送讀/寫數(shù)據(jù)命令時,SM_PC2VW 的Parameters 字段為X ,輔助參數(shù)區(qū)的內(nèi)容為應(yīng)用空間數(shù)據(jù)緩沖區(qū)的信息,其格式即為上述的首地址和緩沖長度標(biāo)識對(Address ,Len) 。VW2010 根據(jù)這些緩沖區(qū)信息建立到應(yīng)用空間的DMA 通道。讀數(shù)據(jù)方法的程序流程圖如圖2 所示,其中,左邊是系統(tǒng)調(diào)用部分的流程圖,右邊則是中斷服務(wù)部分的流程圖。

圖2 讀數(shù)據(jù)方法流程圖

3.2.2 IOCTL 方法的實現(xiàn)

VW2010 定義了許多IOCTL 碼用于控制VW2010 芯片,各個IOCTL 碼的參數(shù)各不相同.需要注意的是此處的IOCTL 碼不同于Driver API中的IOCTL 碼。該命令與讀寫數(shù)據(jù)命令的主要區(qū)別在于其命令輔助參數(shù)存儲區(qū)的格式不同,而控制流程類似,限于篇幅,不再贅述。

4 實驗與測試

為了測試壓縮/ 解壓卡和設(shè)備驅(qū)動程序的性能,作者在Linux Redhat7. 3下編寫了測試程序。測試中,分別讓VW2010 芯片工作在以下幾種模式:手動錄像模式、定時錄像模式和動態(tài)偵測錄像模式。結(jié)果都能穩(wěn)定工作。

5 總結(jié)

本文詳細(xì)介紹了基于VW2010 芯片的MPEG-4壓縮/ 解壓卡的設(shè)計方法, 包括硬件設(shè)計和Linux 下的設(shè)備驅(qū)動程序的設(shè)計,并在實際中進(jìn)行了全面的測試。VW2010功能強(qiáng)大,編解碼高效且外圍電路簡單,具有重要的實際應(yīng)用價值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉