日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于VW2010芯片的嵌入式多媒體監(jiān)控系統(tǒng)壓縮/解壓卡設(shè)計(jì)

摘要:在簡(jiǎn)要分析了多媒體監(jiān)控系統(tǒng)發(fā)展現(xiàn)狀的基礎(chǔ)上,提出了一種基于VW2010壓縮/解壓芯片的多媒體壓縮/解壓卡的設(shè)計(jì)方案,給出了基于VW2010的多媒體監(jiān)控系統(tǒng)壓縮和解壓卡的硬件結(jié)構(gòu)圖以及在Linux系統(tǒng)下VW2010的驅(qū)動(dòng)程序,同時(shí)給出了在Linux Redhat 7.3下編寫的測(cè)試程序,并進(jìn)行了全面的測(cè)試。

    關(guān)鍵詞:MPEG;監(jiān)控系統(tǒng);壓縮/解壓;設(shè)備驅(qū)動(dòng)程序

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

多媒體監(jiān)控系統(tǒng)是多媒體技術(shù)在安防領(lǐng)域的新應(yīng)用。目前已廣泛應(yīng)用到金融、文博、酒店、交通、商業(yè)、醫(yī)院、工廠、學(xué)校、住宅小區(qū)物業(yè)管理等各個(gè)領(lǐng)域。從目前趨勢(shì)看,多媒體監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域還在不斷擴(kuò)展。

    音視頻壓縮技術(shù)是多媒體監(jiān)控系統(tǒng)中的關(guān)鍵技術(shù)。在數(shù)字多媒體壓縮(特別是視頻壓縮)領(lǐng)域內(nèi)有很多國(guó)際標(biāo)準(zhǔn)(如ISO/ITU-T技術(shù)委員會(huì)的JPEG標(biāo)準(zhǔn)、CCITT制定的H.263標(biāo)準(zhǔn)以及著名的MPEG標(biāo)準(zhǔn)等)。其中,MPEG-1標(biāo)準(zhǔn)適用于傳輸1.5Mbps的運(yùn)動(dòng)圖形及其伴音編碼,它具有較高的壓縮比,其基本算法對(duì)于壓縮水平方向?yàn)椋常叮皞€(gè)像素、垂直方向?yàn)椋玻福競(jìng)€(gè)像素,并以每秒24~30幀畫面運(yùn)動(dòng)的圖像有較好的效果。早期的監(jiān)控系統(tǒng)很多都采用此標(biāo)準(zhǔn)(如著名的以色列芯片Z1510即采用MPEG-1標(biāo)準(zhǔn));而MPEG-4標(biāo)準(zhǔn)的主要特點(diǎn)是可對(duì)圖像中的內(nèi)容進(jìn)行編碼,其核心是基于內(nèi)容尺度可變性(Content-based scalability)。內(nèi)容尺度可變性意味著可以給圖像中的各個(gè)對(duì)象分配優(yōu)先級(jí)。其中,比較重要的對(duì)象用較高的空間和(或)時(shí)間分辨力表示。對(duì)于比較低的比特率應(yīng)用系統(tǒng)來說,尺度可變性是一個(gè)關(guān)鍵的因素,因?yàn)樗峁┝俗赃m應(yīng)可用資源的能力。例如,這個(gè)功能允許對(duì)具有較高優(yōu)先級(jí)的對(duì)象用可接受的質(zhì)量進(jìn)行顯示,第二優(yōu)先級(jí)的對(duì)象則用較低的質(zhì)量顯示,而其余內(nèi)容(對(duì)象)則不顯示。對(duì)于監(jiān)控系統(tǒng)來說,在絕大部分時(shí)間內(nèi),監(jiān)視畫面的背景都保持不變,因此,在要求的比特率比較低時(shí),對(duì)于監(jiān)視畫面的背景部分可以以較低的質(zhì)量顯示,這樣并不會(huì)影響整個(gè)畫面的效果。

本系統(tǒng)采用MPEG-4壓縮標(biāo)準(zhǔn),選擇的實(shí)現(xiàn)方式是硬壓縮和硬解壓,所用的壓縮解壓芯片為VWEB公司的VW2010。

2 硬件設(shè)計(jì)原理

2.1 VW2010的主要特點(diǎn)

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

(1)片內(nèi)集成有3個(gè)信號(hào)處理/控制單元,包括一個(gè)視頻編碼(壓縮)器、一個(gè)視頻解碼(解壓)器和一個(gè)片內(nèi)CPU(內(nèi)部擴(kuò)展一個(gè)音頻編碼DSP、一個(gè)音頻解碼DSP、一個(gè)多路復(fù)合單元和一個(gè)多路解復(fù)合單元)。VW2010芯片的內(nèi)部結(jié)構(gòu)圖如圖1所示。

(2)具有可編程、高性能和低功耗特點(diǎn),因?yàn)槊總€(gè)信號(hào)處理/控制單元都由一個(gè)RISC處理器和專用的硬件加速器構(gòu)成。此外,視頻編、解碼器內(nèi)部還集成了一個(gè)專用的SDRAM。

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

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

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

(6)提供有與PHILIPS公司兼容的I2C總線,可方便地對(duì)外圍芯片進(jìn)行控制。

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

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

在模擬音頻信號(hào)經(jīng)過模擬音頻接收電路進(jìn)行前端處理后,便可通過音頻ADC電路產(chǎn)生符合VW2010音頻接口標(biāo)準(zhǔn)的I2S信號(hào)。

VW2010是壓縮卡的核心處理芯片,該芯片除可完成音、視頻信號(hào)的編碼外,還可提供對(duì)解碼器和ADC的控制(通過I2C總線),其編碼產(chǎn)生的MPEG流可通過芯片內(nèi)部集成的PCI接口輸出。VW2010的解壓操作是壓縮操作的逆過程,基本原理類似,基于VW2010的解壓卡原理框圖如圖3所示。

3 Linux下VW2010設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)

3.1 分層軟件體系結(jié)構(gòu)

按照操作系統(tǒng)的觀點(diǎn),系統(tǒng)軟件體系結(jié)構(gòu)應(yīng)為表1所列的分層結(jié)構(gòu)。驅(qū)動(dòng)程序工作在核心態(tài),并向下通過Chip API實(shí)現(xiàn)對(duì)VW2010芯片的直接控制,向上則為應(yīng)用程序提供驅(qū)動(dòng)程序接口(Driver API)。按照Rubini先生的觀點(diǎn),驅(qū)動(dòng)程序提供的是機(jī)制,而不是策略。換句話說,驅(qū)動(dòng)程序的主要任務(wù)是為應(yīng)用提供全面、高效而可靠的服務(wù),具體如何使用硬件則是應(yīng)用需要解決的問題。

表1 分層軟件體系結(jié)構(gòu)示意圖

Software Mode
Application User mode
Driver API
Driver Kernel mode
Chip API
Firmware HardWare layer

考慮到Linux系統(tǒng)下的設(shè)備驅(qū)動(dòng)程序開發(fā)技術(shù)已經(jīng)相當(dāng)成熟,筆者不打算詳細(xì)介紹驅(qū)動(dòng)程序的完整框架和各個(gè)模塊,而是在分析VW2010芯片與host通信機(jī)制的基礎(chǔ)上,著重討論在驅(qū)動(dòng)程序中如何實(shí)現(xiàn)對(duì)VW2010芯片的有效控制以及如何通過應(yīng)用程序?qū)崿F(xiàn)VW2010芯片間數(shù)據(jù)的有效傳輸。

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

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

(1) 共享存儲(chǔ)區(qū)(shared memory)

VW2010采用共享存儲(chǔ)區(qū)機(jī)制接收host的命令并返回命令執(zhí)行結(jié)果。host與VW2010進(jìn)行通信的共享存儲(chǔ)區(qū)(以下簡(jiǎn)稱SM_PC2VW)位于encoder SDRAM中地址3F1800處,共128字節(jié);而VW2010與host進(jìn)行通信的共享存儲(chǔ)區(qū)(以下簡(jiǎn)稱SM_ VW2PC)則位于encoder SDRAM中的地址3F1880處,也是128字節(jié)。

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

表2 host到VW2010的共享內(nèi)存區(qū)格式

Address 31:16 15:8 7:0
3F1800 Reserved IntFlag CMD
3F1804 Reserved Reserved Reserved
3F1808 Reserved
3F180C Device Handle
3F1810 Parameters
3F1814 ……

表3 VW2010到host的共享內(nèi)存區(qū)格式

Address 31:16 15:8 7:0
3F1880 Reserved Reserved Reserved
3F1884 Reserved ACK/NACK CMD
3F1888 Return Code
3F188C Device Handle
3F1890 Parameters
3F1894 ……

SM_VW2PC的格式如表3所列。ACK/NACK的含義是:如果SM_PC2VW中的IntFlag為1,且命令CMD成功執(zhí)行,則為ACK;如果SM_PC2VW中IntFlag為1,而執(zhí)行命令CMD失敗,則為NACK,并將錯(cuò)誤碼保存在Return Code字段。

一般在發(fā)送其它命令之前,必須先發(fā)送打開命令,此時(shí),Device Handle字段應(yīng)為0,Parameters字段為打開類型(TSMUX,PSMUX,TSDEMUX或PSDE-MUX)。如果該命令成功執(zhí)行,則會(huì)在SM_VW2PC的Device Handle字段返回所分配的Device Handle,并在SM_VW2PC的Parameters字段返回輔助參數(shù)區(qū)的首地址(下面簡(jiǎn)稱為X)。輔助參數(shù)區(qū)由firmware在encoder SDRAM中動(dòng)態(tài)分配,主要用于傳遞與命令有關(guān)的參數(shù)。

在結(jié)束使用共享內(nèi)存區(qū)后,必須發(fā)送關(guān)閉命令以釋放輔助參數(shù)區(qū)。

(2)信號(hào)燈

由于共享存儲(chǔ)區(qū)是臨界資源,所以必須提供一種機(jī)制,以保證VW2010和host使用時(shí)不發(fā)生沖突。為此,VW2010分別給SM_PC2VW和SM_ VW 2PC提供了兩個(gè)硬件信號(hào)燈,它們由寄存器REG_INT1和REG_INT2的最低位控制。此外,VW2010還為信號(hào)燈定義了以下兩種操作。

寫操作:向REG_INT1或REG_INT2最低位寫入1,然后釋放共享存儲(chǔ)區(qū)。

讀操作:返回REG_INT1或REG_INT2最低位的值,同時(shí)清該位為0。

    (3) host到VW2010的中斷

host通常通過向VW2010發(fā)中斷的方式通知VW2010從共享存儲(chǔ)區(qū)讀取主機(jī)命令。VW2010用寄存器REG_DHIU5實(shí)現(xiàn)host到VW2010的中斷。

REG_DHIU5的最低四位用于保存中斷計(jì)數(shù),第五位為中斷屏蔽位。host向REG_DHIU5每寫一次,中斷計(jì)數(shù)加1;VW2010每讀REG_DHIU5一次,中斷計(jì)數(shù)減1。只要中斷計(jì)數(shù)不為0,VW2010內(nèi)部的中斷請(qǐng)求信號(hào)將一直保持有效。

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

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

(1) 數(shù)據(jù)讀寫的實(shí)現(xiàn)

圖4和圖5分別給出了VW2010在系統(tǒng)調(diào)用部分和中斷服務(wù)部分的讀數(shù)據(jù)流程圖。

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

當(dāng)應(yīng)用程序要讀寫數(shù)據(jù)時(shí),它首先會(huì)分配一些緩沖區(qū)用于保存讀寫數(shù)據(jù)。這些緩沖區(qū)可以用首地址和長(zhǎng)度標(biāo)識(shí),如可以使用(Address,Len)代表首地址為Address、長(zhǎng)度為Len的緩沖區(qū)。在發(fā)送讀/寫數(shù)據(jù)命令時(shí),SM_PC2VW的Parameters字段為X,輔助參數(shù)區(qū)的內(nèi)容為應(yīng)用空間數(shù)據(jù)緩沖區(qū)的信息,其格式即為上述的首地址和緩沖長(zhǎng)度標(biāo)識(shí)對(duì)(Address,Len)。VW2010根據(jù)這些緩沖區(qū)信息來建立應(yīng)用空間的DMA通道。

(2)IOCTL的實(shí)現(xiàn)

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

4 結(jié)論

為了測(cè)試壓縮/解壓卡和設(shè)備驅(qū)動(dòng)程序的性能,作者在Linux Redhat 7.3下編寫了測(cè)試程序。在測(cè)試中,分別讓VW2010芯片工作在手動(dòng)錄像模式、定時(shí)錄像模式和動(dòng)態(tài)偵測(cè)錄像模式。結(jié)果表明:該系統(tǒng)卡在各種模式下都能穩(wěn)定工作。

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉