基于TM1300的嵌入式網(wǎng)絡(luò)視頻編碼器的設(shè)計(jì)
關(guān)鍵詞:視頻編碼; TM1300 ;嵌入式
1 系統(tǒng)介紹
隨著網(wǎng)絡(luò)多媒體應(yīng)用的推廣,獨(dú)立機(jī)型的嵌入式多媒體通信終端系統(tǒng)由于其成本低、性能好等優(yōu)點(diǎn)已成為當(dāng)前研究的熱點(diǎn). 具有網(wǎng)絡(luò)通信功能的嵌入式視頻編碼器的研究便成為設(shè)計(jì)多媒體通信終端系統(tǒng)中的核心內(nèi)容.嵌入式網(wǎng)絡(luò)視頻編碼器的工作原理是將模擬視頻信號(hào)數(shù)字化后按照國際標(biāo)準(zhǔn)壓縮編碼和網(wǎng)絡(luò)協(xié)議處理后發(fā)送到網(wǎng)絡(luò),客戶端可以從網(wǎng)絡(luò)接收視頻數(shù)據(jù),解碼后實(shí)時(shí)回放. 嵌入式視頻編碼器是一個(gè)高性能處理器和操作系統(tǒng)捆綁較為緊密、功能專一、設(shè)計(jì)專門的獨(dú)立設(shè)備,不像插卡系統(tǒng)那樣受通用計(jì)算機(jī)系統(tǒng)中其他軟件硬件的影響,性能上更穩(wěn)定可靠且易于實(shí)現(xiàn)系統(tǒng)的模塊化設(shè)計(jì),便于安裝、管理和維護(hù).
TM1300是一款高性能的多媒體處理器,可采用pSOS 嵌入式實(shí)時(shí)操作系統(tǒng),并提供了功能較為完善的在線調(diào)試工具. 設(shè)計(jì)人員可以通過在線調(diào)試工具在pSOS 平臺(tái)上開發(fā)TriMedia 的各種資源和調(diào)試各種應(yīng)用程序,從而最終實(shí)現(xiàn)整個(gè)系統(tǒng).本文提出了一種適用于IP 網(wǎng)絡(luò)的基于TM1300 的嵌入式視頻編碼器,并詳細(xì)討論了整個(gè)系統(tǒng)的軟硬件設(shè)計(jì). 我們將該編碼器應(yīng)用于監(jiān)控系統(tǒng)中,實(shí)現(xiàn)了實(shí)時(shí)的視頻傳輸并取得了良好的圖像質(zhì)量. 網(wǎng)絡(luò)視頻編碼器實(shí)現(xiàn)的主要功能有:視頻信號(hào)的A/D轉(zhuǎn)換,H.263 視頻壓縮編碼、H.323網(wǎng)絡(luò)協(xié)議處理 、攝像頭控制和透明數(shù)據(jù)傳輸?shù)?
2 硬件設(shè)計(jì)
2. 1 TM1300介紹
視頻編碼器的核心TM1300是Philips公司推出的針對(duì)多媒體應(yīng)用的一款高性能DSP ,它能夠進(jìn)行高質(zhì)量的視頻和音頻處理. TriMedia提供的強(qiáng)大的編譯器和軟件開發(fā)環(huán)境使開發(fā)人員無需使用匯編語言,而是利用C或C++語言來編寫應(yīng)用程序.
TM1300的核心是32 位的處理器,能夠進(jìn)行32 位的線性尋址,尋址能力可達(dá)到4GB. TM1300核心處理器采用VLIW 結(jié)構(gòu),可以在每一時(shí)鐘周期內(nèi)同時(shí)執(zhí)行5條指令. TM1300 支持16KB 的高速數(shù)據(jù)緩存和32KB 的高速指令緩存,并且高速數(shù)據(jù)緩存是雙向的. TM1300還集成了PCI 總線接口,既可以作為PC環(huán)境下的從CPU ,也可以用于嵌入式系統(tǒng)作為主CPU. TM1300 有別于一般的通用DSP,它有專門的視頻接口、音頻接口以及圖像協(xié)處理器單元和可變長解碼器單元等專門單元.圖像協(xié)處理器主要用于圖像的濾波或縮放,提高處理的速度; 可變長解碼器則可以協(xié)助內(nèi)核完成Huffman 解碼.
2. 2 硬件總體結(jié)構(gòu)
網(wǎng)絡(luò)視頻編碼器的硬件總體結(jié)構(gòu)如圖1 所示.編碼器將來自攝像頭的模擬視頻信號(hào)經(jīng)AD轉(zhuǎn)換芯片SAA7111A 轉(zhuǎn)換成YUV 格式的數(shù)字視頻信號(hào),由TM1300 (1) 按H.263 協(xié)議壓縮成多種速率的圖像數(shù)據(jù)碼流,然后通過PCI 總線傳遞給負(fù)責(zé)協(xié)議處理的TM1300 (2) ,視頻壓縮數(shù)據(jù)在這里封裝之后最后通過PCI 總線傳給以太網(wǎng)接口控制器RTL8139C(L) 為核心的以太網(wǎng)接口單元,由其送到IP 網(wǎng)上. 外圍擴(kuò)展模塊以W77E58 單片機(jī)為核心,通過兩個(gè)串口分別控制攝像頭和收發(fā)透明數(shù)據(jù). CPLD 主要完成地址譯碼、PCI 總線仲裁等功能. 開發(fā)的應(yīng)用程序經(jīng)編譯連接,寫入FLASH 中.編碼器上電復(fù)位后通過EEPROM 中的自舉程序?qū)LASH 中的程序搬移到SDRAM 中,系統(tǒng)開始運(yùn)行. 根據(jù)以上功能可以將網(wǎng)絡(luò)視頻編碼器的硬件設(shè)計(jì)分為以下四個(gè)功能單元: (1) 視頻編碼單元;(2) 協(xié)議處理單元; (3) 網(wǎng)絡(luò)接口單元; (4) 外圍擴(kuò)展單元.
圖1 網(wǎng)絡(luò)視頻編碼器硬件總體結(jié)構(gòu)
2. 3 視頻編碼單元
視頻編碼單元以TM1300 (1) 為核心,外圍器件包括EEPROM , 16M SDRAM , 視頻AD芯片SAA7111A ,雙口RAM 和16MB FLASH. 其中,SAA7111A 是Philips的增強(qiáng)型視頻輸入處理器( EVIP) , 輸入的模擬視頻信號(hào)可以是CVBS(PAL ,NTSC 等) 和S-Video ( Y/C) ,A/ D 轉(zhuǎn)換后輸出符合CCIR-656 的YUV4∶2∶2 數(shù)字視頻信號(hào).視頻輸入原理圖如圖2 所示,SAA7111A 的YUV數(shù)字視頻輸出端口和TM1300 的視頻輸入端口(VI) 相連接, SAA7111A 的工作方式由TM1300通過I2C 總線進(jìn)行配置.
圖2 視頻輸入原理圖
SDRAM 是同步動(dòng)態(tài)RAM ,它提供Burst 訪問方式,用于存取應(yīng)用程序,原始的數(shù)字視頻數(shù)據(jù)以及處理的中間數(shù)據(jù). TM1300 (1) 外接的SDRAM采用2 片(12rank 接口方式) ,每片容量為4 1M 16bit ,總?cè)萘繛?6MB.
在上電復(fù)位后, TM1300 (1) 通過I2C 總線從EEPROM 中讀取啟動(dòng)信息,配置時(shí)鐘分頻寄存器和SDRAM 寄存器,然后將EEPROM 中的自舉程序搬移到自DRAM-BASE 開始的SDRAM 中并開始執(zhí)行自舉程序,自舉程序?qū)LASH 中的相應(yīng)的應(yīng)用程序搬移到TM1300 ( 1) 和TM1300 ( 2) 的SDRAM 后,便各自開始正常工作了.
2. 4 協(xié)議處理單元
協(xié)議處理單元以TM1300 ( 2) 為核心, 擴(kuò)展EEPROM 和16M SDRAM ,其電路與視頻編碼單元相應(yīng)的內(nèi)存接口和啟動(dòng)電路設(shè)計(jì)類似.TM1300(2) 的工作模式為從模式,在上電復(fù)位后,通過I2C 總線從串行EEPROM 中讀取啟動(dòng)信息,配置時(shí)鐘分頻寄存器和SDRAM 寄存器. 然后等待由TM1300 (1) 完成系統(tǒng)啟動(dòng)的剩余工作,包括MMIO 空間、DRAM 空間的配置等, 等待TM1300(1) 將FLASH 中的相應(yīng)的應(yīng)用程序搬移到TM1300 (2) 的SDRAM 中, TM1300 (2) 便可以開始正常工作了.
2. 5 網(wǎng)絡(luò)接口單元
網(wǎng)絡(luò)接口單元原理圖如圖3 所示, 以REALTEK的RTL8139C(L)以太網(wǎng)控制器為核心,經(jī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),同時(shí)自動(dòng)監(jiān)測(cè)接收端的數(shù)據(jù)變化,把接收到的數(shù)據(jù)拆包,傳送到TM1300 (2) .
圖3 網(wǎng)絡(luò)接口單元原理圖
2. 6 外圍擴(kuò)展單元
外圍擴(kuò)展單元原理圖如圖4 所示, 以WINBOND公司的具有兩個(gè)串口的單片機(jī)W77E58 為核心, 擴(kuò)展IDT7130 雙口RAM ,MAX232 和MAX485. W77E58 通過串口0 根據(jù)RS-485 接口標(biāo)準(zhǔn)實(shí)現(xiàn)對(duì)攝像頭及云臺(tái)的控制,通過串口1 傳送RS-232 透明數(shù)據(jù) . W77E58 和TM1300 (1) 之間通過自定簡(jiǎn)單協(xié)議對(duì)雙口RAM進(jìn)行存取,從而相互傳遞控制信息和數(shù)據(jù). 外圍擴(kuò)展單元的功能是通過對(duì)W77E58 編程來實(shí)現(xiàn)的,為了提高程序運(yùn)行的可靠性,在我們的單片機(jī)程序開發(fā)中還使用了看門狗定時(shí)器.
圖4 外圍擴(kuò)展單元原理圖
3 軟件結(jié)構(gòu)
3. 1 編碼器軟件體系結(jié)構(gòu)TSSA
TSSA( TriMedia Software St ream Arc2hitecture) 是由應(yīng)用層模塊(Application) 與若干功能模塊(Component ) 組成的建立在數(shù)據(jù)包交換上的一種流結(jié)構(gòu). 沿用了COM 技術(shù)中軟組件對(duì)象(Software Component) 交互的思想,提出了對(duì)多媒體數(shù)據(jù)流進(jìn)行處理的一種組件對(duì)象模型 . 其中應(yīng)用層模塊負(fù)責(zé)系統(tǒng)的初始化,采用軟件流體系結(jié)構(gòu)可以大大簡(jiǎn)化多媒體應(yīng)用開發(fā). TSSA 體系分為以下幾層(見表1) :
各個(gè)功能模塊的創(chuàng)建、啟動(dòng)、關(guān)閉以及狀態(tài)的改變,接收某個(gè)功能模塊的響應(yīng). 每個(gè)功能模塊由OL層、操作系統(tǒng)抽象層、AL 層、設(shè)備庫層組成. 功能模塊之間、功能模塊與應(yīng)用層模塊之間通過數(shù)據(jù)包交換數(shù)據(jù),數(shù)據(jù)包在消息隊(duì)列中傳遞,消息隊(duì)列將各個(gè)功能模塊、功能模塊與應(yīng)用層模塊連接起來.
3. 2 編碼器軟件組成結(jié)構(gòu)
編碼器軟件組成結(jié)構(gòu)如圖5 示(不包括單片機(jī)編程部分) . 主控模塊相當(dāng)于TSSA 中的應(yīng)用層模塊,負(fù)責(zé)創(chuàng)建、運(yùn)行視頻編碼模塊、協(xié)議處理模塊和信道接口模塊,并通過響應(yīng)隊(duì)列與命令隊(duì)列在各功能模塊之間轉(zhuǎn)發(fā)控制與狀態(tài)消息. 視頻編碼模塊實(shí)現(xiàn)遵循H.263 協(xié)議的視頻壓縮編碼 ;協(xié)議處理模塊實(shí)現(xiàn)H.323 協(xié)議棧 ;信道接口模塊實(shí)現(xiàn)將數(shù)據(jù)報(bào)封裝成MAC 幀送上具體的物理信道. 各個(gè)功能模塊之間通過雙向消息隊(duì)列交換數(shù)據(jù).
圖5 編碼器軟件組成結(jié)構(gòu)
主控模塊和各個(gè)功能模塊在pSOS 操作系統(tǒng)中都作為任務(wù)(task) 獨(dú)立運(yùn)行,它們之間任務(wù)狀態(tài)的變化完全靠對(duì)資源的獲取是否能夠滿足(通過調(diào)用pSOS 系統(tǒng)內(nèi)核) 來實(shí)現(xiàn).pSOS 根據(jù)任務(wù)的優(yōu)先級(jí)來動(dòng)態(tài)地切換各個(gè)任務(wù),以保證系統(tǒng)的實(shí)時(shí)性. 為提高主控模塊對(duì)狀態(tài)消息的響應(yīng)靈敏度,我們將主控模塊的優(yōu)先級(jí)設(shè)計(jì)比功能模塊高.視頻編碼模塊作為編碼器的核心部分占用了系統(tǒng)的絕大部分資源從而決定了編碼器的性能.針對(duì)多媒體通信系統(tǒng)的實(shí)時(shí)性要求,我們?cè)诰幋a軟件模塊的實(shí)現(xiàn)過程中采用了多種優(yōu)化策略. 除了對(duì)編碼程序代碼進(jìn)行結(jié)構(gòu)和局部優(yōu)化,視頻壓縮中選取快速運(yùn)動(dòng)估計(jì)算法等方法外, 特別針對(duì)TM1300 的CPU 體系結(jié)構(gòu),將循環(huán)展開進(jìn)行并行處理,充分利用TM1300 提供的多媒體指令和編譯優(yōu)化等其它策略. 實(shí)踐表明在使用上述優(yōu)化策略后編碼器的圖像編碼幀率提高了一倍以上.
4 結(jié)束語
基于TM1300 芯片的嵌入式網(wǎng)絡(luò)視頻編碼器具有成本低,可靠性好的優(yōu)點(diǎn),并且由于在設(shè)計(jì)和實(shí)現(xiàn)過程中充分利用TriMedia 專門針對(duì)多媒體信息處理設(shè)計(jì)的硬件結(jié)構(gòu)和TSSA 軟件體系,因此同時(shí)獲得了良好的性能. 嵌入式編碼器遵循ITU-T H.263 協(xié)議,可以與兼容H.323 協(xié)議的終端實(shí)現(xiàn)互聯(lián)互通,實(shí)現(xiàn)了實(shí)時(shí)的視頻傳輸,獲得了清晰流暢的運(yùn)動(dòng)圖像. 碼率可以從64kbps~1920kbps 選擇來調(diào)節(jié)幀率和獲得不同級(jí)別的圖像質(zhì)量. 在64kbps 帶寬下,解碼后的QCIF 和CIF圖像的幀率可達(dá)到15fps以上. 通過適當(dāng)提高碼率,QCIF和CIF 圖像的幀率均可達(dá)到25fps.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論