近些年來(lái),計算機技術(shù)、多媒體技術(shù)和數據通信技術(shù)的發(fā)展飛速,促使數字視頻的應用也越來(lái)越廣(如視頻監控、視頻會(huì )議和移動(dòng)電視等)。隨后,各種壓縮算法的研究使得數字視頻的存儲和傳輸極為方便,同時(shí)也相繼出現了各種視頻記錄系統。本文設計的嵌入式視頻記錄系統,可以將攝像頭拍攝到的
常見(jiàn)的視頻壓縮方法有MPEG系列租H.26X系列??紤]到壓縮技術(shù)的成熟度、成本和主要用途,本記錄系統采用MPEG-1數字圖像壓縮記錄技術(shù),來(lái)實(shí)現對1路視頻信號的連續圖像長(cháng)達4小時(shí)的實(shí)時(shí)循環(huán)記錄。此外,本視頻記錄系統還具有成本低、體積小、功耗低等特點(diǎn)。
1 系統工作原理
視頻記錄系統設計的側重點(diǎn)是降低成本,減小體積,同時(shí)降低系統的功耗,提高系統的整體性能。它能夠對汽車(chē)上的1路視頻信號進(jìn)行長(cháng)達4小時(shí)的連續實(shí)時(shí)動(dòng)態(tài)循環(huán)記錄。本系統主要由視頻解碼及壓縮編碼器、ARM處理器、電子盤(pán)三部分組成。其中視頻解碼器和壓縮編碼器共同組成壓縮單元,ARM處理器是系統的控制單元,電子盤(pán)是系統的存儲單元。其視頻記錄系統的結構組成如圖1所示。系統工作時(shí),先將攝像機拍攝到的視頻信號通過(guò)視頻解碼器SAA7113H 進(jìn)行解碼和A/D轉換,以輸出8位4:2:2格式的YCbCr數字視頻信號,該數字化視頻信號送入SZ1510壓縮編碼芯片進(jìn)行壓縮后可產(chǎn)生MPEG-1 數據流,然后由ARM處理器將壓縮好的數據通過(guò)IDE接口存入存儲載體——電子盤(pán),從而實(shí)現對1路視頻信號的連續實(shí)時(shí)循環(huán)記錄。

系統上電并啟動(dòng)后,ARM處理器首先通過(guò)SZ1510芯片的HOST接口對SZ1510內部寄存器進(jìn)行配置,并通過(guò)I2C總線(xiàn)對視頻解碼器 SAA7113H進(jìn)行初始化。當設置好MPEG-1壓縮格式及數據速率后,系統開(kāi)始正常工作,并對輸入的模擬視頻信號經(jīng)視頻解碼器進(jìn)行解碼和A/D轉換,再將生成的CCIR-601數字視頻流傳人壓縮編碼芯片SZ1510進(jìn)行處理,然后由SZ1510將數字視頻數據轉化為符合MPEG-1格式的影視文件,最后將MPEG-1數據流在A(yíng)RM處理器的控制下通過(guò)IDE接口以文件形式寫(xiě)入電子硬盤(pán)進(jìn)行存儲。系統工作時(shí),ARM還將不斷監視相關(guān)信號,并在圖像中加入相應的標志,直到接收到關(guān)機信號,系統自動(dòng)結束壓縮工作。
2 硬件電路設計
2.1 視頻解碼及壓縮編碼電路設計
由于MPEG-1壓縮算法需要很大的運算量,用軟件很難實(shí)時(shí)完成,所以本系統采用專(zhuān)用的視頻壓縮芯片來(lái)實(shí)現對視頻信號的實(shí)時(shí)高效壓縮。目前,常用的MPEG-1壓縮芯片有VW2010、W99200F、WIS 7007SB等。本設計選用SAA7113H進(jìn)行解碼,并采用Zapex公司的SZ1510MPEG-1 A/V編碼芯片進(jìn)行圖象壓縮。SAA7113的主要作用是把輸入的模擬視頻信號解碼成標準的8位“VPO”數字信號,它相當于一種“A/D'’器件,是一種可編程視頻處理芯片,可通過(guò)I2C總線(xiàn)實(shí)現編程控制,并具有4路視頻輸入、抗混疊濾波、自動(dòng)鉗位和增益控制、多制式解碼以及亮度、對比度和飽和度控制等功能。它對輸人的PAL制式視頻信號進(jìn)行采樣和解碼后,可將生成的CCIR-601數字視頻流(色度空間為YCbCr,取樣為4:2:2)送到視頻壓縮芯片SZ1510的數字視頻輸入接口。它的輸入時(shí)鐘由24.576 MlHz的有源晶振提供,并可分別從RTS1和RTS0管腳輸出為SZ1510提供的行同步信號HS和場(chǎng)同步信號VS,其中行同步信號HS又可作為行有效象素識別信號輸入到SZ1510的VIHACT管腳;并從LLC腳輸出27 MHz的像素時(shí)鐘,作為SZ1510內部的數字視頻流的采樣時(shí)鐘和芯片的主時(shí)鐘。系統初始化可通過(guò)ARM芯片的I2C總線(xiàn)來(lái)實(shí)現。片選信號由ARM產(chǎn)生 RESET信號來(lái)提供。
系統中的壓縮編碼芯片SZ1510是ZAPEX公司生產(chǎn)的一款高性能的MJPEG、MPEG-1編碼芯片,可對視頻信號實(shí)現高達25 f/s的壓縮,并支持多種工作模式和比特率模式,還可靈活實(shí)現模式組合,同時(shí)可在視頻中疊加視頻標記和時(shí)間標記。該芯片內部主要由視頻編碼核、 TMS320C54X高性能
系統中的SZ1510是從設備,受主機ARM的控制。它的HOST接口是控制和數據交換的接口。SZ1510可以選擇多種總線(xiàn)類(lèi)型,它有復用和不復用的Intel和Motorola總線(xiàn)類(lèi)型(復用模式下,HAD[7:0]即可作為數據線(xiàn),又可作為地址線(xiàn);非復用模式時(shí),HAD[7:0]只能作為數據線(xiàn)),不復用總線(xiàn)又可分為8位和16位,并可由HCONFIG[l:0]引腳和Syscofig[3]寄存器進(jìn)行選擇配置。本系統把HCONFIG0 置低,HCONFIG1置高,Sysconfig[3]寫(xiě)1,故可使其工作在Intel 8051類(lèi)型的非復用16位數據總線(xiàn)模式下。
由于SZ1510有多種工作模式,根據系統要求,本設計使SZ1510工作在LVE(Live Video Encoding)實(shí)時(shí)視頻編碼模式。在這種模式下,SZ1510可從視頻解碼器獲得實(shí)時(shí)數字視頻數據,然后根據MPEG1/M-JPEG進(jìn)行壓縮并傳到主機。具體工作過(guò)程是:SZ1510對輸入到其內部的CCIR-601數字視頻流經(jīng)過(guò)視頻預處理、自動(dòng)裁減、場(chǎng)景變化檢測、運動(dòng)估計、運動(dòng)補償、離散余弦變換/反離散余弦變換和可變長(cháng)編碼等處理后,再將生成的MPEG-1視頻基本流存儲于SDRAM中,然后經(jīng)過(guò)輸出端口大小為256字節的FIFO緩沖進(jìn)行數據輸出。正常工作時(shí),FIFO每滿(mǎn)一次就產(chǎn)生一個(gè)FRDY (FIFO讀)中斷以通知主機讀取FIFO中的數據,并由主機從Data_out寄存器讀取數據。之后,當SZ1510發(fā)出一個(gè)EOD(數據結束)中斷時(shí),數據傳輸結束。
在視頻壓縮工作模式下,SZ1510有3種輸出比特率可供選擇:恒定比特率、最大比特率、可變比特率。恒定比特率需要填充冗余,最大比特率不需要填充冗余,可變比特率的壓縮質(zhì)量比恒定比特率可變。比特率的選擇可通過(guò)設置Ven_cntl寄存器的1、2位來(lái)確定,當其為0時(shí),選擇的是恒定比特率;為1時(shí),選擇的是最大比特率;為3時(shí),選擇的是可變比特率。
2.2 控制及存儲電路設計
考慮到控制部分的體積、可靠性和控制能力,本系統中的CPU采用Philips公司的ARM7TD-MI-S內核微控制器LPC2210。這是一個(gè)能夠支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI-S CPU。對于代碼規模有嚴格控制的應用,可使用16位Thumb模式,該模式可將代碼規模降低30%以上,而性能的損失卻非常小。LPC2210采用 144腳封裝,具有極低的功耗。另外,該芯片還具有多個(gè)32位定時(shí)器、8路10位ADC、PWM輸出以及多達9個(gè)外部中斷。通過(guò)配置總線(xiàn),LPC2210 最多可提供76個(gè)GPIO。
LPC2210可與SZ1510的HOST接口相連,并可通過(guò)HOST接口對SZ1510進(jìn)行控制和設置。正常工作時(shí),LPC2210把從HOST接口輸出的MPEG-1 格式視頻流以文件形式送人電子盤(pán)進(jìn)行存儲。LPC2210與SZ1510的接口電路如圖2所示。其中,HAD[0…15]接到ARM的 P2.0~P2.15A作為16根數據線(xiàn);P3.0接到HALE腳可實(shí)現SZ1510內部IOAR(I/O Address Registerl)和IODR(I/O DataRegister)寄存器的選擇;P1.1和P3.27分別接讀、寫(xiě)選通管腳HRD和HWR;通過(guò)將P3.24接到HCS可選通SZ1510;將 P0.9接到HINT可發(fā)送SZ1510中斷請求信號。

從重量和可靠性出發(fā),本記錄單元最終選用電子盤(pán)來(lái)實(shí)現。該電子盤(pán)的主體為Flash芯片,該芯片耐沖擊,耐高溫,體積小,壽命長(cháng),適合在汽車(chē)環(huán)境下工作。雖然電子盤(pán)的價(jià)格昂貴,但是考慮到系統只采集1路視頻信號,記錄的數據量也不是很大(計算后得出記錄單元的容量為3G時(shí)),記錄長(cháng)度可達4.5 個(gè)小時(shí),所以,選用電子盤(pán)完全能夠實(shí)現任務(wù)要求。
LPC2210的GPIO引腳與IDE接口的連接電路如圖3所示。圖中,P2.16~P2.31為數據線(xiàn),P1.16~P1.20為地址和選通信號,P0.17和P0.20為設備的復位和狀態(tài)請求信號,用P0.21和P0.19則可實(shí)現讀寫(xiě)控制。

3 系統軟件設計
本系統的所有軟件程序事先均應通過(guò)JTAG口燒錄到ARM中,這樣,系統上電后便可自動(dòng)運行這些程序以控制系統的工作。系統軟件工作流程圖如圖4所示。

3.1 SZ1510的寄存器配置
SZ1510有128個(gè)寄存器,每個(gè)寄存器都有一個(gè)索引號,外部主機是通過(guò)HOST接口(HALE管腳)來(lái)設置SZ1510內部的兩個(gè)寄存器 IOAR (I/O地址寄存器)、IODR(I/O數據寄存器)以實(shí)現對SZ1510的控制和配置。訪(fǎng)問(wèn)時(shí),首先由主機的A0管腳發(fā)送一個(gè)低電平到HALE管腳以選中IOAR寄存器,然后將要訪(fǎng)問(wèn)的寄存器索引號寫(xiě)入IOAR;接著(zhù)由主機的A0管腳發(fā)送一個(gè)高電平到HALE管腳,以選中IODR寄存器,然后再將要寫(xiě)入的數據寫(xiě)入IODR,這樣,SZ1510就會(huì )自動(dòng)把配置的數據送到指定地址的寄存器。
對Z1510進(jìn)行初始化時(shí),先由主機寫(xiě)任意值到0x0B寄存器;接著(zhù)在主機至少等待1微秒后,向Int_enable中斷使能寄存器寫(xiě)入 0x40,以使能RDY(Ready)中斷;然后,主機便等待SZ1510的Ready(Int_source[6])中斷;之后,當主機等到RDY中斷后,它將清除RDY中斷并開(kāi)始向SZ1510的內部
3.2 SZ1510的二進(jìn)制代碼裝載
由于復位后內部寄存器的內容是未知的,因此,主機必須進(jìn)行程序代碼的裝載,以初始化視頻編碼核的可編程RAM。SZ1510內部的程序空間是以塊(Blank)為單位進(jìn)行劃分的,每塊的大小是256字節。用于視頻編碼核的二進(jìn)制代碼的裝載空間為0x000~0x004和0x00c六個(gè)塊,共 1.5k字節代碼。具體裝載時(shí),先由主機向0x2E寄存器寫(xiě)0x01,以表示外部的SDRAM是1M×16bits;接著(zhù)由主機向0x0C寄存器寫(xiě) 0x03,以使能FIFOReady和End of Data中斷;然后由主機向0x11寄存器寫(xiě)0x1,以設定工作模式為內部?jì)却鎸?xiě)模式;再由主機向0x10寫(xiě)0x20,以設定SZ1510輸出數據的 FIFO大小為256字節;最后對每塊程序空間進(jìn)行二進(jìn)制代碼裝載,其具體過(guò)程如下:
(1)主機寫(xiě)0x3F寄存器,選擇下載程序空間;
(2)主機向0x08寄存器寫(xiě)0x04,發(fā)送開(kāi)始命令;
(3)主機等待Ready中斷;
(4)主機通過(guò)讀0x0e寄存器,清除Ready中斷;
(5)主機向Data_in寄存器0x01寫(xiě)256個(gè)字節;
(6)主機等待EOD(End 0f Data)中斷,
(7)主機通過(guò)讀0x0e寄存器,清除EOD中斷;
(8)主機查程序空間的代碼是否裝載完畢,如沒(méi)有則繼續裝載。
4 結束語(yǔ)
本系統可實(shí)時(shí)長(cháng)時(shí)間記錄攝像頭傳輸的汽車(chē)外部及車(chē)內各儀表顯示的視頻信號,所記錄的壓縮數據流符合MPEG-1圖像壓縮標準。本設計中采用的壓縮視頻流速率為1.5 Mbps。對于一個(gè)3GB的電子盤(pán),本系統可連續記錄超過(guò)4.5個(gè)小時(shí)的汽車(chē)視頻數據。由此可見(jiàn),本系統體積小、功耗低,便于移動(dòng)環(huán)境下對視頻數據的實(shí)時(shí)長(cháng)時(shí)間壓縮數據記錄。
聯(lián)系客服