新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于SAA6752HS的嵌入式視頻監(jiān)控和傳輸系統(tǒng)設(shè)計(jì)

基于SAA6752HS的嵌入式視頻監(jiān)控和傳輸系統(tǒng)設(shè)計(jì)

——
作者: 時(shí)間:2007-10-19 來(lái)源:艦船電子工程 收藏

  摘 要:主要介紹了以SAA6752HS 為核心的實(shí)時(shí)視頻壓縮和傳輸系統(tǒng),詳細(xì)討論了其結(jié)構(gòu)與硬、軟件實(shí)現(xiàn)。該系統(tǒng)成本較低、使用靈活, 可方便地嵌入到需要視頻監(jiān)控的監(jiān)測(cè)系統(tǒng)中。

  關(guān)鍵詞; ;;SAA6752H

  引言

  人類接受信息中有70%是視頻信息。相對(duì)于語(yǔ)音和文字信息來(lái)說(shuō),視頻信息更直觀,信息量更大,處理和傳輸技術(shù)也更為復(fù)雜。視頻監(jiān)控系統(tǒng)作為視頻技術(shù)的一個(gè)應(yīng)用領(lǐng)域,在軍事安全等領(lǐng)域發(fā)揮著重要的作用。目前視頻監(jiān)控系統(tǒng)主要采用模擬和數(shù)字兩種技術(shù)。數(shù)字視頻技術(shù)不僅能減少視頻傳輸引起的失真,還能對(duì)視頻信息進(jìn)行分析、識(shí)別及有效信息提取。因此隨著數(shù)字技術(shù)的進(jìn)步,數(shù)字視頻監(jiān)控將成為今后的發(fā)展方向。

  數(shù)字視頻監(jiān)控的一項(xiàng)核心技術(shù)是視頻壓縮技術(shù)。視頻信號(hào)包含大量的數(shù)據(jù)信息,通過(guò)壓縮手段把信息數(shù)據(jù)量壓下來(lái),以壓縮形式存儲(chǔ)和傳輸,既緊縮了存儲(chǔ)空間,又提高了通信干線的傳輸效率,同時(shí)也使計(jì)算機(jī)實(shí)時(shí)處理音頻、視頻信息,以保證播放出高質(zhì)量的視頻、音頻節(jié)目成為可能。MPEG-2 標(biāo)準(zhǔn)是運(yùn)動(dòng)圖像專家組于1995 年正式公布的。它的用處在于可以使運(yùn)動(dòng)視音頻數(shù)據(jù)作為一種計(jì)算機(jī)可處理的數(shù)據(jù)形式,并且可以存儲(chǔ)在各種存儲(chǔ)媒體上,可以在現(xiàn)存或未來(lái)的網(wǎng)絡(luò)上發(fā)送、接受,并且可以在現(xiàn)存或未來(lái)的廣播信道上傳播。本文討論的就是一種采用MPEG-2 壓縮標(biāo)準(zhǔn)的數(shù)字視頻監(jiān)控系統(tǒng)。

  MPEG-2 視頻數(shù)據(jù)壓縮原理

  MPEG-2 圖像壓縮的原理是利用了圖像中的兩種特性:空間相關(guān)性和時(shí)間相關(guān)性。利用離散余弦變換(DCT) 編碼技術(shù)降低空間數(shù)據(jù)相關(guān)性;運(yùn)動(dòng)估計(jì)和預(yù)測(cè)技術(shù)降低鄰近幀像素的時(shí)間相關(guān)性來(lái)實(shí)現(xiàn)幀間數(shù)據(jù)壓縮。MPEG-2 基本編解碼模型如圖1 所示。圖中虛線上半部分完成視頻編碼功能,虛線下半部分完成視頻解碼功能。

  編碼器中的預(yù)處理器對(duì)原始圖像中的噪聲進(jìn)行過(guò)濾,并將圖像分割成宏塊。對(duì)于幀內(nèi)編碼,宏塊經(jīng)過(guò)DCT 變換、量化和變長(zhǎng)編碼后輸出壓縮的視頻數(shù)據(jù);對(duì)于幀間編碼,運(yùn)動(dòng)估計(jì)對(duì)宏塊的運(yùn)動(dòng)進(jìn)行估測(cè)和補(bǔ)償來(lái)減少圖像的時(shí)序冗余;圖像預(yù)測(cè)器根據(jù)參考幀來(lái)預(yù)測(cè)當(dāng)前幀,兩者之間的差值經(jīng)過(guò)DCT變換、量化和變長(zhǎng)編碼后輸出,由于差值較小可以使編碼所需比特?cái)?shù)減少很多;逆量化和IDCT的目的是為了完成參考幀的重現(xiàn)。解碼器中變長(zhǎng)解碼、逆量化和IDCT重構(gòu)幀內(nèi)編碼的圖像,圖像預(yù)測(cè)器根據(jù)參考幀和運(yùn)動(dòng)矢量完成幀間編碼圖像的重現(xiàn)。

  

  圖1  MPEG-2 編解碼模型圖

  系統(tǒng)設(shè)計(jì)

  系統(tǒng)硬件設(shè)計(jì)

  系統(tǒng)總體結(jié)構(gòu)

  系統(tǒng)主要由兩個(gè)部分組成:一是模擬視頻數(shù)據(jù)解碼和數(shù)字視頻數(shù)據(jù)編碼子系統(tǒng)。二是視頻碼流以太網(wǎng)傳送子系統(tǒng)。此外還有電源子系統(tǒng)、JTAG調(diào)試子系統(tǒng)等,這里不做詳述。系統(tǒng)的基本結(jié)構(gòu)圖如圖2 所示。

  

  圖2  系統(tǒng)原理圖

  系統(tǒng)首先通過(guò)模擬攝像機(jī)將外部的信號(hào)轉(zhuǎn)換為PAL 制的復(fù)合視頻信號(hào),然后模擬視頻解碼和數(shù)字視頻編碼子系統(tǒng)將模擬攝像機(jī)的PAL 制式復(fù)合視頻信號(hào)壓縮為MPEG-2 格式視頻流,最后,DSP 控制器將視頻流封包通過(guò)以太網(wǎng)傳送子系統(tǒng)以百兆的帶寬傳送出去。

  模擬視頻解碼和數(shù)字視頻編碼子系統(tǒng)

  模擬視頻解碼部分的任務(wù)是對(duì)輸入的PAL 制視頻信號(hào)進(jìn)行采樣量化編碼后,轉(zhuǎn)換成標(biāo)準(zhǔn)數(shù)字視頻信號(hào)。我們選用的PHILIPS 公司的SAA7114 芯片。SAA7114 是一種高性能的單片NTSC/PAL/SECAM復(fù)合視頻解碼器,低功耗、低價(jià)格、具有卓越的三線自適應(yīng)梳狀濾波器能克服傳統(tǒng)濾波器的人工痕跡而保證全屏視頻分辨率,具有靈活的像素端口,并具有外圍電路簡(jiǎn)單和易于編程等優(yōu)點(diǎn)。

  在系統(tǒng)中, SAA7114將模擬信號(hào)解碼后得到的信號(hào)轉(zhuǎn)換為ITU-RBT.656 數(shù)字視頻格式,可以與SAA6752 直接相連,如圖3所示。系統(tǒng)中采用SAA7114的視頻輸出口為X-port作為數(shù)據(jù)輸出口。X-port的信號(hào)分為以下幾類:

  a、數(shù)據(jù)信號(hào)XPD7-XPD0 :輸出解碼后的數(shù)據(jù)值;

  b、時(shí)鐘信號(hào)XCLK:作為系統(tǒng)參考時(shí)鐘信號(hào);

  

  圖3  SAA7114 與SAA6752 的接口

  c、行同步信號(hào)XRH 和場(chǎng)同步信號(hào)XRV :當(dāng)輸出為行同步信號(hào)和場(chǎng)同步信號(hào)時(shí),這兩個(gè)信號(hào)有效;

  d、XDQ 作為輸出數(shù)據(jù)有效指示;

  e、XDRI 控制X-port 是作為輸入口還是輸出口。

  RTS0 輸出奇數(shù)場(chǎng)或偶數(shù)場(chǎng)的標(biāo)志位。

  MPEG-2 視頻編碼部分是整個(gè)系統(tǒng)的關(guān)鍵部分,它將ITU-RBT.656格式的數(shù)據(jù)編碼壓縮為ISO/IEC 13818的傳輸流(TS) 。這一部分選用的是PHILIPS 公司的SAA6752HS 芯片。它是一款高集成度低成本的單芯片音視頻編碼芯片,可以執(zhí)行全部的視頻編碼、噪聲濾波和運(yùn)動(dòng)估計(jì)的功能。另外,通過(guò)I2C 總線就能實(shí)現(xiàn)對(duì)SAA6752HS 控制,因此SAA6752HS 只需要從主控制處理器的I2C總線上傳輸少量設(shè)置編碼的參數(shù)就可以使SAA6752HS 開(kāi)始編碼工作。SAA6752 與TMS320VC5502 主控DSP 的連接如圖4 所示。

  SAA6752 的輸出接口各引腳功能如下:

  a、PDO[7. . 0 ]輸出數(shù)據(jù);

  b、PDIOCLK輸出參考時(shí)鐘,可以設(shè)為9MHz 或6. 75MHz ;

  c、PDOAV 信號(hào)表示輸出的是視頻數(shù)據(jù)還是音頻數(shù)據(jù);

  d、PDOVAL 信號(hào)表示輸出的數(shù)據(jù)是否有效;

  e、PDOSYNC 表示輸出的是數(shù)據(jù)包的第一個(gè)字節(jié)。

  

  圖4  SAA6752HS 與TMS320VC5502 的連接圖

  需要說(shuō)明的是,圖4 中的移位寄存器、FIFO、計(jì)數(shù)器(模4) ,計(jì)數(shù)器2 (模47) 是用FPGA 實(shí)現(xiàn)。DSP 控制器我們選用的是TI 公司中的TMS320VC5502(‘5502) 芯片,它的核心電壓只有1.2V ,功耗僅0. 05mW/MIPs ,性能達(dá)600MIPS。這款芯片尤其適合于數(shù)據(jù)速率高,運(yùn)算量大,又要求低功耗的系統(tǒng)。同時(shí)TMS320VC5502 集成了豐富外圍設(shè)備,比如32 位的外部?jī)?nèi)存接口(EMIF) ,可以與系統(tǒng)中的網(wǎng)卡連接;內(nèi)部集成的I2C 總線接口,便于對(duì)Philips 的視頻芯片進(jìn)行控制。另外,它還對(duì)外提供JTAG口,這使系統(tǒng)的調(diào)試可依靠JTAG仿真器和TI 公司最新的DSP 開(kāi)發(fā)平臺(tái)CCS 而變得更為方便。

  視頻流以太網(wǎng)傳送子系統(tǒng)

  以太網(wǎng)接口部分主要用來(lái)將打好包的數(shù)據(jù)傳到遠(yuǎn)程主機(jī)上, 我們使用的是SMSC 公司的LAN91C111 芯片,它是一塊高性能非PCI 接口的10M/100M以太網(wǎng)接口的芯片。LAN91C111 采用的是一種流量I/O 的工作方式。所謂流量IO 方式曾經(jīng)是為磁盤(pán)與處理器接口而設(shè)計(jì)的,它比ISA 的DMA 方式具有更高的效能而且能更方便的使用。LAN91C111 對(duì)數(shù)據(jù)的處理能力也很強(qiáng),其理論上最大數(shù)據(jù)處理能力為320Mbit/s = 40MB/s。由于LAN91C111 具有MMU 功能使得整個(gè)系統(tǒng)具有較高的網(wǎng)絡(luò)性能和較低的系統(tǒng)開(kāi)銷。

  

  圖5  LAN91C111 的接口圖

  由LAN91C111 組成的網(wǎng)絡(luò)接口如圖5 所示。LAN91C111 通過(guò)局部總線接口把CPU 傳過(guò)來(lái)的數(shù)據(jù),通過(guò)內(nèi)部的MAC 控制器進(jìn)行數(shù)據(jù)的封裝,物理層收發(fā)器(PHY) 將數(shù)據(jù)傳輸?shù)矫}沖變壓器上,這樣由噪聲產(chǎn)生的錯(cuò)誤可以降至最低,保證數(shù)據(jù)的正確傳輸。同時(shí),LAN91C111 的物理層收發(fā)器還能接收網(wǎng)絡(luò)上的數(shù)據(jù)包,并且MAC 可以進(jìn)行載波偵聽(tīng)、碰撞檢測(cè)協(xié)議和CRC 校驗(yàn)功能;此外LAN91C111 還具有大的緩沖區(qū)可以提高整個(gè)電路的效率,LED控制器可以標(biāo)識(shí)網(wǎng)絡(luò)接口的狀態(tài)。LAN91C111 的主機(jī)端的接口比較靈活,它可以支持異步或同步方式的傳輸,還可以支持非觸發(fā)方式和觸發(fā)方式(Burst mode) 的傳輸。為了提高系統(tǒng)的吞吐率,由DSP 向網(wǎng)卡傳送數(shù)據(jù)時(shí),通過(guò)DSP 的EMIF 接口,采用同步觸發(fā)傳輸方式,并且使用直接32 位數(shù)據(jù)傳輸,數(shù)據(jù)不通過(guò)BIU ,直接寫(xiě)入網(wǎng)卡FIFO ,這樣更為合理地實(shí)現(xiàn)TMS320VC5502 與LAN91C111 高速連接。

  系統(tǒng)軟件設(shè)計(jì)

  本系統(tǒng)的軟件包括兩大部分,一是硬件驅(qū)動(dòng)程序,二是控制邏輯設(shè)計(jì)。下面分而述之。

  系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

  環(huán)境下進(jìn)行的。CCS 界面簡(jiǎn)單明了,操作方便,功能強(qiáng)大,大大降低了開(kāi)發(fā)的難度。系統(tǒng)的驅(qū)動(dòng)程序由TMS320VC5502 初始化程序,SAA7114A ,SAA6752HS 和LAN91C111 的配置程序、數(shù)字視頻 碼流接收存儲(chǔ)封包程序、MPEG2 碼流以太網(wǎng)發(fā)送程序和系統(tǒng)主控程序等多個(gè)模塊組成。圖6 為軟件系統(tǒng)框圖。

  

  圖6  軟件系統(tǒng)框圖

  TMS32VC5502 的初始化程序完成對(duì)‘C5502 的堆棧和運(yùn)行狀態(tài)位,中斷使能位的設(shè)置,以及DSP內(nèi)核頻率的設(shè)置。SAA7114 和SAA6752HS 的配置程序通過(guò)‘C5502 的I2C 接口完成對(duì)其的設(shè)置,使其能正常地進(jìn)行模擬解碼和數(shù)字編碼。LAN91C111 的初始化程序完成對(duì)該芯片的一些寄存器設(shè)置,使其能正常運(yùn)轉(zhuǎn)起來(lái)。數(shù)字視頻MPEG2 碼流接收存儲(chǔ)封包程序是通過(guò)‘C5502 將SAA6752HS 傳過(guò)來(lái)的數(shù)據(jù)按照RTP 協(xié)議標(biāo)準(zhǔn)打成網(wǎng)絡(luò)上的數(shù)據(jù)包,然后再通過(guò)MPEG2碼流以太網(wǎng)發(fā)送程序?qū)?shù)據(jù)包發(fā)送出去。數(shù)據(jù)傳輸時(shí)都是使用的DMA 傳輸方式,這樣可以節(jié)省大量的時(shí)間,提高系統(tǒng)運(yùn)行的效率。

  在整個(gè)驅(qū)動(dòng)程序設(shè)計(jì)當(dāng)中,時(shí)序的把握是十分關(guān)鍵的。比如SAA7114 的配置程序,當(dāng)中需要用到I2C 總線,而I2C 總線對(duì)時(shí)序要求是相當(dāng)嚴(yán)格的,如果在發(fā)出START 命令之后,不加上一定的時(shí)延,而立即傳送數(shù)據(jù),由于DSP 的速度太快,可能會(huì)造成前后數(shù)據(jù)的覆蓋,導(dǎo)致程序出錯(cuò)。另外,由于系統(tǒng)是進(jìn)行實(shí)時(shí)處理的,中斷程序設(shè)計(jì)是必不可少的。在程序設(shè)計(jì)時(shí)有幾個(gè)問(wèn)題需要注意:

  第一, 當(dāng)外部中斷信號(hào)不穩(wěn)定時(shí),比如波形前后跳動(dòng)、毛刺過(guò)多等,都有可能造成能檢測(cè)到中斷,但無(wú)法進(jìn)入中斷服務(wù)程序的情況。

  第二, 若將程序單步執(zhí)行,這樣會(huì)造成仿真器出錯(cuò),無(wú)法檢測(cè)到中斷。

  第三, 在修改兩個(gè)中斷矢量指針I(yè)VPD 和IVPH 之前,應(yīng)確信:

  a、禁止所有的可屏蔽中斷( INTM= 1) 。這可以在修改中斷矢量指針,使之指向新中斷矢量之前,防止產(chǎn)生一個(gè)可屏蔽中斷。

  b、每個(gè)硬件非屏蔽中斷對(duì)新舊IVPD 值分別有一個(gè)中斷矢量和一個(gè)中斷服務(wù)程序。這樣在修改IVPD 過(guò)程中,產(chǎn)生一個(gè)硬件非屏蔽中斷時(shí),可以防止非法指令代碼。

  FPGA 邏輯設(shè)計(jì)

  該系統(tǒng)中使用了一塊Altera 公司的ACEXEP1K30QC208-3Q 型號(hào)的FPGA ,主要利用該FPGA實(shí)現(xiàn)SAA6752 與TMS320VC5502 之間的接口。如上SAA6752HS 與TMS320VC5502 的連接圖4 所示,移位寄存器負(fù)責(zé)將SAA6752HS 輸出的8 位數(shù)據(jù)方式擴(kuò)展成32 位寬度,以提高數(shù)據(jù)的吞吐效率。通過(guò)時(shí)鐘信號(hào)PDIOCLK、有效位信號(hào)PDOVAL 和音視頻標(biāo)志位PDOAV 來(lái)控制移位寄存器的工作。FIFO是一個(gè)寬度為32 位的緩沖器,TMS320VC5502 通過(guò)片選信號(hào)CE3 和讀信號(hào)ARE/SRE/SDRE 控制對(duì)FIFO 數(shù)據(jù)的讀操作。

  當(dāng)SAA6752HS 采用傳送流的數(shù)據(jù)結(jié)構(gòu)時(shí),每讀完4 個(gè)數(shù)據(jù)包(每個(gè)數(shù)據(jù)包為188個(gè)字節(jié)) , 計(jì)數(shù)器2 就會(huì)產(chǎn)生一次中斷,TMS320VC5502 從FIFO 中讀入這些數(shù)據(jù)包,完成信道編碼后向網(wǎng)絡(luò)上傳輸。FPGA 邏輯正是依據(jù)這一思想設(shè)計(jì)的。為了提升系統(tǒng)的穩(wěn)定性,避免累積錯(cuò)誤,該邏輯中采用了一種雙FIFO 輪流切換的方法。在系統(tǒng)開(kāi)始運(yùn)行,只往FIFO1 里寫(xiě),當(dāng)寫(xiě)完4 個(gè)數(shù)據(jù)包,產(chǎn)生一次中斷,通知DSP 來(lái)讀數(shù)據(jù);接下來(lái),系統(tǒng)自動(dòng)切換到往FIFO2 里寫(xiě),此時(shí)DSP 同時(shí)在讀FIFO1里的數(shù)據(jù),直到往FIFO2 里寫(xiě)完4 個(gè)數(shù)據(jù)包(由于DSP 讀數(shù)據(jù)的速度遠(yuǎn)遠(yuǎn)快于SAA6752 往FIFO 里寫(xiě)數(shù)據(jù)的速度,故此時(shí)FIFO1 已被讀空) ,便又產(chǎn)生中斷;接下來(lái),DSP 讀FIFO2 里的數(shù)據(jù),同時(shí)往FIFO1里寫(xiě),依次輪流切換。

  

  圖7  DIO 主模式下輸出傳輸流分組的時(shí)序圖

  SAA6752 的輸出采用DIO 主模式,其輸出端口的時(shí)序如圖7 所示,每個(gè)數(shù)據(jù)包包含188 個(gè)字節(jié),這是MPEG2 傳輸流分組的特性。在MAX+PLUSII 下設(shè)計(jì)其邏輯,運(yùn)行正常。

  結(jié)束語(yǔ)

  本文針對(duì)數(shù)字視頻壓縮及網(wǎng)絡(luò)傳輸作了較為深入的研究,并針對(duì)網(wǎng)絡(luò)視頻服務(wù)器的設(shè)計(jì)和實(shí)現(xiàn)作了初步而有益的探索,其中既有經(jīng)驗(yàn)也有教訓(xùn)。由于時(shí)間及其它因素的限制,研究工作留有許多需要完善的地方。Non-PCI 結(jié)構(gòu)網(wǎng)絡(luò)接口性能的優(yōu)化和客戶端軟件的具體實(shí)現(xiàn)及形成網(wǎng)絡(luò)視頻服務(wù)器原理樣機(jī)是我們下一步的目標(biāo)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉