基于TM1300的嵌入式網絡視頻編碼器的設計
關鍵詞:視頻編碼; TM1300 ;嵌入式
1 系統(tǒng)介紹
隨著網絡多媒體應用的推廣,獨立機型的嵌入式多媒體通信終端系統(tǒng)由于其成本低、性能好等優(yōu)點已成為當前研究的熱點. 具有網絡通信功能的嵌入式視頻編碼器的研究便成為設計多媒體通信終端系統(tǒng)中的核心內容.嵌入式網絡視頻編碼器的工作原理是將模擬視頻信號數字化后按照國際標準壓縮編碼和網絡協(xié)議處理后發(fā)送到網絡,客戶端可以從網絡接收視頻數據,解碼后實時回放. 嵌入式視頻編碼器是一個高性能處理器和操作系統(tǒng)捆綁較為緊密、功能專一、設計專門的獨立設備,不像插卡系統(tǒng)那樣受通用計算機系統(tǒng)中其他軟件硬件的影響,性能上更穩(wěn)定可靠且易于實現系統(tǒng)的模塊化設計,便于安裝、管理和維護.
TM1300是一款高性能的多媒體處理器,可采用pSOS 嵌入式實時操作系統(tǒng),并提供了功能較為完善的在線調試工具. 設計人員可以通過在線調試工具在pSOS 平臺上開發(fā)TriMedia 的各種資源和調試各種應用程序,從而最終實現整個系統(tǒng).本文提出了一種適用于IP 網絡的基于TM1300 的嵌入式視頻編碼器,并詳細討論了整個系統(tǒng)的軟硬件設計. 我們將該編碼器應用于監(jiān)控系統(tǒng)中,實現了實時的視頻傳輸并取得了良好的圖像質量. 網絡視頻編碼器實現的主要功能有:視頻信號的A/D轉換,H.263 視頻壓縮編碼、H.323網絡協(xié)議處理 、攝像頭控制和透明數據傳輸等.
2 硬件設計
2. 1 TM1300介紹
視頻編碼器的核心TM1300是Philips公司推出的針對多媒體應用的一款高性能DSP ,它能夠進行高質量的視頻和音頻處理. TriMedia提供的強大的編譯器和軟件開發(fā)環(huán)境使開發(fā)人員無需使用匯編語言,而是利用C或C++語言來編寫應用程序.
TM1300的核心是32 位的處理器,能夠進行32 位的線性尋址,尋址能力可達到4GB. TM1300核心處理器采用VLIW 結構,可以在每一時鐘周期內同時執(zhí)行5條指令. TM1300 支持16KB 的高速數據緩存和32KB 的高速指令緩存,并且高速數據緩存是雙向的. TM1300還集成了PCI 總線接口,既可以作為PC環(huán)境下的從CPU ,也可以用于嵌入式系統(tǒng)作為主CPU. TM1300 有別于一般的通用DSP,它有專門的視頻接口、音頻接口以及圖像協(xié)處理器單元和可變長解碼器單元等專門單元.圖像協(xié)處理器主要用于圖像的濾波或縮放,提高處理的速度; 可變長解碼器則可以協(xié)助內核完成Huffman 解碼.
2. 2 硬件總體結構
網絡視頻編碼器的硬件總體結構如圖1 所示.編碼器將來自攝像頭的模擬視頻信號經AD轉換芯片SAA7111A 轉換成YUV 格式的數字視頻信號,由TM1300 (1) 按H.263 協(xié)議壓縮成多種速率的圖像數據碼流,然后通過PCI 總線傳遞給負責協(xié)議處理的TM1300 (2) ,視頻壓縮數據在這里封裝之后最后通過PCI 總線傳給以太網接口控制器RTL8139C(L) 為核心的以太網接口單元,由其送到IP 網上. 外圍擴展模塊以W77E58 單片機為核心,通過兩個串口分別控制攝像頭和收發(fā)透明數據. CPLD 主要完成地址譯碼、PCI 總線仲裁等功能. 開發(fā)的應用程序經編譯連接,寫入FLASH 中.編碼器上電復位后通過EEPROM 中的自舉程序將FLASH 中的程序搬移到SDRAM 中,系統(tǒng)開始運行. 根據以上功能可以將網絡視頻編碼器的硬件設計分為以下四個功能單元: (1) 視頻編碼單元;(2) 協(xié)議處理單元; (3) 網絡接口單元; (4) 外圍擴展單元.

圖1 網絡視頻編碼器硬件總體結構
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 數字視頻信號.視頻輸入原理圖如圖2 所示,SAA7111A 的YUV數字視頻輸出端口和TM1300 的視頻輸入端口(VI) 相連接, SAA7111A 的工作方式由TM1300通過I2C 總線進行配置.

圖2 視頻輸入原理圖
SDRAM 是同步動態(tài)RAM ,它提供Burst 訪問方式,用于存取應用程序,原始的數字視頻數據以及處理的中間數據. 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 網絡接口單元
網絡接口單元原理圖如圖3 所示, 以REALTEK的RTL8139C(L)以太網控制器為核心,經以太網變壓器ST6118T 和RJ 45 插座,通過雙絞線連接到局域網. RTL8139C(L) 接口和PCI2.1規(guī)范完全兼容,可以很方便的掛在TriMedia 的PCI 總線上. 以太網接口把視頻編碼及協(xié)議處理后的數據按以太網的數據格式打包傳送到以太網,同時自動監(jiān)測接收端的數據變化,把接收到的數據拆包,傳送到TM1300 (2) .

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

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

各個功能模塊的創(chuàng)建、啟動、關閉以及狀態(tài)的改變,接收某個功能模塊的響應. 每個功能模塊由OL層、操作系統(tǒng)抽象層、AL 層、設備庫層組成. 功能模塊之間、功能模塊與應用層模塊之間通過數據包交換數據,數據包在消息隊列中傳遞,消息隊列將各個功能模塊、功能模塊與應用層模塊連接起來.
3. 2 編碼器軟件組成結構
編碼器軟件組成結構如圖5 示(不包括單片機編程部分) . 主控模塊相當于TSSA 中的應用層模塊,負責創(chuàng)建、運行視頻編碼模塊、協(xié)議處理模塊和信道接口模塊,并通過響應隊列與命令隊列在各功能模塊之間轉發(fā)控制與狀態(tài)消息. 視頻編碼模塊實現遵循H.263 協(xié)議的視頻壓縮編碼 ;協(xié)議處理模塊實現H.323 協(xié)議棧 ;信道接口模塊實現將數據報封裝成MAC 幀送上具體的物理信道. 各個功能模塊之間通過雙向消息隊列交換數據.

圖5 編碼器軟件組成結構
主控模塊和各個功能模塊在pSOS 操作系統(tǒng)中都作為任務(task) 獨立運行,它們之間任務狀態(tài)的變化完全靠對資源的獲取是否能夠滿足(通過調用pSOS 系統(tǒng)內核) 來實現.pSOS 根據任務的優(yōu)先級來動態(tài)地切換各個任務,以保證系統(tǒng)的實時性. 為提高主控模塊對狀態(tài)消息的響應靈敏度,我們將主控模塊的優(yōu)先級設計比功能模塊高.視頻編碼模塊作為編碼器的核心部分占用了系統(tǒng)的絕大部分資源從而決定了編碼器的性能.針對多媒體通信系統(tǒng)的實時性要求,我們在編碼軟件模塊的實現過程中采用了多種優(yōu)化策略. 除了對編碼程序代碼進行結構和局部優(yōu)化,視頻壓縮中選取快速運動估計算法等方法外, 特別針對TM1300 的CPU 體系結構,將循環(huán)展開進行并行處理,充分利用TM1300 提供的多媒體指令和編譯優(yōu)化等其它策略. 實踐表明在使用上述優(yōu)化策略后編碼器的圖像編碼幀率提高了一倍以上.
4 結束語
基于TM1300 芯片的嵌入式網絡視頻編碼器具有成本低,可靠性好的優(yōu)點,并且由于在設計和實現過程中充分利用TriMedia 專門針對多媒體信息處理設計的硬件結構和TSSA 軟件體系,因此同時獲得了良好的性能. 嵌入式編碼器遵循ITU-T H.263 協(xié)議,可以與兼容H.323 協(xié)議的終端實現互聯(lián)互通,實現了實時的視頻傳輸,獲得了清晰流暢的運動圖像. 碼率可以從64kbps~1920kbps 選擇來調節(jié)幀率和獲得不同級別的圖像質量. 在64kbps 帶寬下,解碼后的QCIF 和CIF圖像的幀率可達到15fps以上. 通過適當提高碼率,QCIF和CIF 圖像的幀率均可達到25fps.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論