新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于TM1300的嵌入式網(wǎng)絡視頻編碼器的設計

基于TM1300的嵌入式網(wǎng)絡視頻編碼器的設計

作者: 時間:2007-10-23 來源:網(wǎng)絡 收藏
摘要:本文介紹了一種適用于IP網(wǎng)絡的芯片的視頻的硬件和軟件體系.硬件由以下四個單元組成:以為核心的視頻編碼單元和協(xié)議處理單元;采用RTL8139C(L)芯片的網(wǎng)絡接口單元;以及以單片機W77E58為核心的完成攝像頭控制和透明數(shù)據(jù)傳輸?shù)耐鈬鷶U展單元. 軟件部分采用專門針對多媒體信息處理的一種組件對象模型TSSA(triMedia software stream architecture) 軟件流體系結構. 實驗結果表明視頻實現(xiàn)了視頻的實時編碼傳輸,同時具有清晰流暢的圖像質量.
關鍵詞:視頻編碼; ;

1  系統(tǒng)介紹

隨著網(wǎng)絡多媒體應用的推廣,獨立機型的嵌入式多媒體通信終端系統(tǒng)由于其成本低、性能好等優(yōu)點已成為當前研究的熱點. 具有網(wǎng)絡通信功能的嵌入式視頻的研究便成為多媒體通信終端系統(tǒng)中的核心內容.嵌入式編碼器的工作原理是將模擬視頻信號數(shù)字化后按照國際標準壓縮編碼和網(wǎng)絡協(xié)議處理后發(fā)送到網(wǎng)絡,客戶端可以從網(wǎng)絡接收視頻數(shù)據(jù),解碼后實時回放. 嵌入式視頻編碼器是一個高性能處理器和操作系統(tǒng)捆綁較為緊密、功能專一、設計專門的獨立設備,不像插卡系統(tǒng)那樣受通用計算機系統(tǒng)中其他軟件硬件的影響,性能上更穩(wěn)定可靠且易于實現(xiàn)系統(tǒng)的模塊化設計,便于安裝、管理和維護.

TM1300是一款高性能的多媒體處理器,可采用pSOS 嵌入式實時操作系統(tǒng),并提供了功能較為完善的在線調試工具. 設計人員可以通過在線調試工具在pSOS 平臺上開發(fā)TriMedia 的各種資源和調試各種應用程序,從而最終實現(xiàn)整個系統(tǒng).本文提出了一種適用于IP 網(wǎng)絡的TM1300 的嵌入式視頻編碼器,并詳細討論了整個系統(tǒng)的軟硬件設計. 我們將該編碼器應用于監(jiān)控系統(tǒng)中,實現(xiàn)了實時的視頻傳輸并取得了良好的圖像質量. 編碼器實現(xiàn)的主要功能有:視頻信號的A/D轉換,H.263 視頻壓縮編碼、H.323網(wǎng)絡協(xié)議處理 、攝像頭控制和透明數(shù)據(jù)傳輸?shù)?

2  硬件設計

2. 1 TM1300介紹
視頻編碼器的核心TM1300是Philips公司推出的針對多媒體應用的一款高性能DSP ,它能夠進行高質量的視頻和音頻處理. TriMedia提供的強大的編譯器和軟件開發(fā)環(huán)境使開發(fā)人員無需使用匯編語言,而是利用C或C++語言來編寫應用程序.

TM1300的核心是32 位的處理器,能夠進行32 位的線性尋址,尋址能力可達到4GB. TM1300核心處理器采用VLIW 結構,可以在每一時鐘周期內同時執(zhí)行5條指令. TM1300 支持16KB 的高速數(shù)據(jù)緩存和32KB 的高速指令緩存,并且高速數(shù)據(jù)緩存是雙向的. TM1300還集成了PCI 總線接口,既可以作為PC環(huán)境下的從CPU ,也可以用于嵌入式系統(tǒng)作為主CPU. TM1300 有別于一般的通用DSP,它有專門的視頻接口、音頻接口以及圖像協(xié)處理器單元和可變長解碼器單元等專門單元.圖像協(xié)處理器主要用于圖像的濾波或縮放,提高處理的速度; 可變長解碼器則可以協(xié)助內核完成Huffman 解碼.

2. 2  硬件總體結構
編碼器的硬件總體結構如圖1 所示.編碼器將來自攝像頭的模擬視頻信號經AD轉換芯片SAA7111A 轉換成YUV 格式的數(shù)字視頻信號,由TM1300 (1) 按H.263 協(xié)議壓縮成多種速率的圖像數(shù)據(jù)碼流,然后通過PCI 總線傳遞給負責協(xié)議處理的TM1300 (2) ,視頻壓縮數(shù)據(jù)在這里封裝之后最后通過PCI 總線傳給以太網(wǎng)接口控制器RTL8139C(L) 為核心的以太網(wǎng)接口單元,由其送到IP 網(wǎng)上. 外圍擴展模塊以W77E58 單片機為核心,通過兩個串口分別控制攝像頭和收發(fā)透明數(shù)據(jù). CPLD 主要完成地址譯碼、PCI 總線仲裁等功能. 開發(fā)的應用程序經編譯連接,寫入FLASH 中.編碼器上電復位后通過EEPROM 中的自舉程序將FLASH 中的程序搬移到SDRAM 中,系統(tǒng)開始運行. 根據(jù)以上功能可以將網(wǎng)絡視頻編碼器的硬件設計分為以下四個功能單元: (1) 視頻編碼單元;(2) 協(xié)議處理單元; (3) 網(wǎng)絡接口單元; (4) 外圍擴展單元.

圖1  網(wǎng)絡視頻編碼器硬件總體結構

2. 3  視頻編碼單元
視頻編碼單元以TM1300 (1) 為核心,外圍器件包括EEPROM , 16M SDRAM , 視頻AD芯片SAA7111A ,雙口RAM 和16MB FLASH. 其中,SAA7111A 是Philips的增強型視頻輸入處理器( EVIP) , 輸入的模擬視頻信號可以是CVBS(PAL ,NTSC 等) 和S-Video ( Y/C) ,A/ D 轉換后輸出符合CCIR-656 的YUV4∶2∶2 數(shù)字視頻信號.視頻輸入原理圖如圖2 所示,SAA7111A 的YUV數(shù)字視頻輸出端口和TM1300 的視頻輸入端口(VI) 相連接, SAA7111A 的工作方式由TM1300通過I2C 總線進行配置.

圖2  視頻輸入原理圖

SDRAM 是同步動態(tài)RAM ,它提供Burst 訪問方式,用于存取應用程序,原始的數(shù)字視頻數(shù)據(jù)以及處理的中間數(shù)據(jù). TM1300 (1) 外接的SDRAM采用2 片(12rank 接口方式) ,每片容量為4 1M 16bit ,總容量為16MB.

在上電復位后, TM1300 (1) 通過I2C 總線從EEPROM 中讀取啟動信息,配置時鐘分頻寄存器和SDRAM 寄存器,然后將EEPROM 中的自舉程序搬移到自DRAM-BASE 開始的SDRAM 中并開始執(zhí)行自舉程序,自舉程序將FLASH 中的相應的應用程序搬移到TM1300 ( 1) 和TM1300 ( 2) 的SDRAM 后,便各自開始正常工作了.

2. 4  協(xié)議處理單元
協(xié)議處理單元以TM1300 ( 2) 為核心, 擴展EEPROM 和16M SDRAM ,其電路與視頻編碼單元相應的內存接口和啟動電路設計類似.TM1300(2) 的工作模式為從模式,在上電復位后,通過I2C 總線從串行EEPROM 中讀取啟動信息,配置時鐘分頻寄存器和SDRAM 寄存器. 然后等待由TM1300 (1) 完成系統(tǒng)啟動的剩余工作,包括MMIO 空間、DRAM 空間的配置等, 等待TM1300(1) 將FLASH 中的相應的應用程序搬移到TM1300 (2) 的SDRAM 中, TM1300 (2) 便可以開始正常工作了.

2. 5  網(wǎng)絡接口單元
網(wǎng)絡接口單元原理圖如圖3 所示, 以REALTEK的RTL8139C(L)以太網(wǎng)控制器為核心,經以太網(wǎng)變壓器ST6118T 和RJ 45 插座,通過雙絞線連接到局域網(wǎng). RTL8139C(L) 接口和PCI2.1規(guī)范完全兼容,可以很方便的掛在TriMedia 的PCI 總線上. 以太網(wǎng)接口把視頻編碼及協(xié)議處理后的數(shù)據(jù)按以太網(wǎng)的數(shù)據(jù)格式打包傳送到以太網(wǎng),同時自動監(jiān)測接收端的數(shù)據(jù)變化,把接收到的數(shù)據(jù)拆包,傳送到TM1300 (2) .

圖3  網(wǎng)絡接口單元原理圖

2. 6  外圍擴展單元
外圍擴展單元原理圖如圖4 所示, 以WINBOND公司的具有兩個串口的單片機W77E58 為核心, 擴展IDT7130 雙口RAM ,MAX232 和MAX485. W77E58 通過串口0 根據(jù)RS-485 接口標準實現(xiàn)對攝像頭及云臺的控制,通過串口1 傳送RS-232 透明數(shù)據(jù) . W77E58 和TM1300 (1) 之間通過自定簡單協(xié)議對雙口RAM進行存取,從而相互傳遞控制信息和數(shù)據(jù). 外圍擴展單元的功能是通過對W77E58 編程來實現(xiàn)的,為了提高程序運行的可靠性,在我們的單片機程序開發(fā)中還使用了看門狗定時器.

圖4  外圍擴展單元原理圖

3  軟件結構
3. 1  編碼器軟件體系結構TSSA
TSSA( TriMedia Software St ream Arc2hitecture) 是由應用層模塊(Application) 與若干功能模塊(Component ) 組成的建立在數(shù)據(jù)包交換上的一種流結構. 沿用了COM 技術中軟組件對象(Software Component) 交互的思想,提出了對多媒體數(shù)據(jù)流進行處理的一種組件對象模型 . 其中應用層模塊負責系統(tǒng)的初始化,采用軟件流體系結構可以大大簡化多媒體應用開發(fā). TSSA 體系分為以下幾層(見表1) :

各個功能模塊的創(chuàng)建、啟動、關閉以及狀態(tài)的改變,接收某個功能模塊的響應. 每個功能模塊由OL層、操作系統(tǒng)抽象層、AL 層、設備庫層組成. 功能模塊之間、功能模塊與應用層模塊之間通過數(shù)據(jù)包交換數(shù)據(jù),數(shù)據(jù)包在消息隊列中傳遞,消息隊列將各個功能模塊、功能模塊與應用層模塊連接起來.

3. 2  編碼器軟件組成結構
編碼器軟件組成結構如圖5 示(不包括單片機編程部分) . 主控模塊相當于TSSA 中的應用層模塊,負責創(chuàng)建、運行視頻編碼模塊、協(xié)議處理模塊和信道接口模塊,并通過響應隊列與命令隊列在各功能模塊之間轉發(fā)控制與狀態(tài)消息. 視頻編碼模塊實現(xiàn)遵循H.263 協(xié)議的視頻壓縮編碼 ;協(xié)議處理模塊實現(xiàn)H.323 協(xié)議棧 ;信道接口模塊實現(xiàn)將數(shù)據(jù)報封裝成MAC 幀送上具體的物理信道. 各個功能模塊之間通過雙向消息隊列交換數(shù)據(jù).

圖5  編碼器軟件組成結構

主控模塊和各個功能模塊在pSOS 操作系統(tǒng)中都作為任務(task) 獨立運行,它們之間任務狀態(tài)的變化完全靠對資源的獲取是否能夠滿足(通過調用pSOS 系統(tǒng)內核) 來實現(xiàn).pSOS 根據(jù)任務的優(yōu)先級來動態(tài)地切換各個任務,以保證系統(tǒng)的實時性. 為提高主控模塊對狀態(tài)消息的響應靈敏度,我們將主控模塊的優(yōu)先級設計比功能模塊高.視頻編碼模塊作為編碼器的核心部分占用了系統(tǒng)的絕大部分資源從而決定了編碼器的性能.針對多媒體通信系統(tǒng)的實時性要求,我們在編碼軟件模塊的實現(xiàn)過程中采用了多種優(yōu)化策略. 除了對編碼程序代碼進行結構和局部優(yōu)化,視頻壓縮中選取快速運動估計算法等方法外, 特別針對TM1300 的CPU 體系結構,將循環(huán)展開進行并行處理,充分利用TM1300 提供的多媒體指令和編譯優(yōu)化等其它策略. 實踐表明在使用上述優(yōu)化策略后編碼器的圖像編碼幀率提高了一倍以上.

4  結束語

TM1300 芯片的嵌入式網(wǎng)絡視頻編碼器具有成本低,可靠性好的優(yōu)點,并且由于在設計和實現(xiàn)過程中充分利用TriMedia 專門針對多媒體信息處理設計的硬件結構和TSSA 軟件體系,因此同時獲得了良好的性能. 嵌入式編碼器遵循ITU-T H.263 協(xié)議,可以與兼容H.323 協(xié)議的終端實現(xiàn)互聯(lián)互通,實現(xiàn)了實時的視頻傳輸,獲得了清晰流暢的運動圖像. 碼率可以從64kbps~1920kbps 選擇來調節(jié)幀率和獲得不同級別的圖像質量. 在64kbps 帶寬下,解碼后的QCIF 和CIF圖像的幀率可達到15fps以上. 通過適當提高碼率,QCIF和CIF 圖像的幀率均可達到25fps.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉