1.引言
對(duì)于重親情和友情的中國人來講,可視電話是普通百姓盼望已久的通信方式。可視電話是集通信技術(shù)、計(jì)算機(jī)技術(shù)、音視頻處理技術(shù)等為一體的產(chǎn)品,是信息技術(shù)發(fā)展的方向。目前可視電話從產(chǎn)品類型上分主要有兩種:一種是基于PC機(jī)的可視電話;另一種是脫離PC的一體化可視電話;從信號(hào)傳輸線路上分主要有:基于ISDN,ADSL等的寬帶可視電話和基于PSTN的窄帶可視電話。PSTN在中國已經(jīng)發(fā)展了幾十年,是目前覆蓋最廣、最為經(jīng)濟(jì)、群眾基礎(chǔ)最為廣泛的的通信網(wǎng)。因此在PSTN網(wǎng)絡(luò)上實(shí)現(xiàn)簡易便于推廣的可視電話仍然有很強(qiáng)的現(xiàn)實(shí)意義。
我國基于PSTN可視電話的標(biāo)準(zhǔn)是依據(jù)ITU-T H.324制定的。目前市面上所有的PSTN可視電話基本采用MCU+專用ASIC芯片來實(shí)現(xiàn)H.324協(xié)議所要求的音視頻編碼以及協(xié)議控制,或者處理器+DSP架構(gòu)的方案,系統(tǒng)構(gòu)成復(fù)雜。本文提出一種新的基于RISC架構(gòu)嵌入式平臺(tái)的可視電話,實(shí)現(xiàn)了系統(tǒng)構(gòu)成簡單的無線可視電話。該方案可開發(fā)出獨(dú)立的可視電話終端,并可用于通信,監(jiān)控等領(lǐng)域。
2.H.324協(xié)議簡介
圖-1 為H.324 協(xié)議的框圖,圖中框內(nèi)為建議H.324 協(xié)議范圍。建議內(nèi)容主要包括H.263/H.261 視頻編解碼協(xié)議、G.723 音頻編解碼協(xié)議、V.14 數(shù)據(jù)協(xié)議、H.223 復(fù)用/解復(fù)協(xié)議、H.245 控制協(xié)議以及Modem(控制協(xié)議)等,可參見參考文獻(xiàn)[1].
圖-1 H.324 協(xié)議框圖
在PSTN 網(wǎng)絡(luò)上傳輸?shù)痛a率的音視頻信息必須進(jìn)行壓縮編碼,在H.324 協(xié)議中,音視頻編解碼是核心內(nèi)容之一H.263 是由ITU 定義,支持用于視頻會(huì)議和視頻電話應(yīng)用程序的視頻編解碼。H.263 基于H.261 編碼發(fā)展而來,是特別面向低碼率的視頻編碼而設(shè)定,能在最低帶寬為 20K 到 24Kbit/sec 上傳輸?shù)囊曨l流。G.723.1 是ITU 組織針對(duì)電話帶寬的語音信號(hào)推出的一種雙速率語音編解碼標(biāo)準(zhǔn),最低能以5.3Kbps 的速率傳輸音頻流。
3. 基于ARM處理器S3C2440A系統(tǒng)硬件平臺(tái)構(gòu)成
圖-2 系統(tǒng)硬件架構(gòu)
整體硬件架構(gòu)圖如圖-2 所示。
(1) 系統(tǒng)的核心為基于RISC 架構(gòu)的ARM 處理器S3C2440.該處理器韓國三星電子推出的一個(gè)16/32-bit RISC 小型高性能微處理器。采用速度最高可達(dá)533MHz 的ARM920T 內(nèi)核, 可提供面向普通系統(tǒng)外設(shè)的各種功能,因此不需增加額外器件,在降低系統(tǒng)復(fù)雜度的同時(shí),向終端用戶提供Camera 接口、TFT 及STN 液晶顯示器的功能及SD/MMC/SDIO 卡插槽等附加設(shè)備。該處理器性能強(qiáng)大,能夠滿足H.263 編解碼以及G.723.1 編解碼的運(yùn)算要求。可參見參考文獻(xiàn)[9]。
(2) 系統(tǒng)的視頻采集部分:采用30 萬像素的CMOS Camera OV9650ESL.該器件最高能采集1280*1024 的像素陣列,足夠滿足系統(tǒng)的需求。利用S3C2440A專有的Camera 控制器對(duì)視頻數(shù)據(jù)進(jìn)行采集,并采用IIC 總線對(duì)其進(jìn)行配置曝光時(shí)間,白平衡等參數(shù)。
(3) 系統(tǒng)的顯示部分:采用LG 的3.5 寸65K 色TFT 液晶顯示屏,該屏幕分辨率為320*240,滿足系統(tǒng)需求。在本設(shè)計(jì)中,利用處理器的液晶數(shù)據(jù)接口對(duì)液晶屏幕的對(duì)其進(jìn)行配置顯示格式,并利用SDRAM 作為顯示存儲(chǔ)區(qū)域,利用S3C2440A 集成的LCD 控制器對(duì)液晶屏幕進(jìn)行輸出顯示。
(4) 系統(tǒng)的音頻輸入輸出部分:采用Codec 芯片UDA1341,該音頻芯片內(nèi)部集成ADC 以及DAC,通過接駁MIC,SPEAKER 來組成系統(tǒng)的音頻的采集與播放功能。該芯片通過IIS 總線與CPU 進(jìn)行數(shù)據(jù)的傳輸,并可以通過L3-BUS設(shè)置其采集速率,增益等。
(5) 與PSTN 網(wǎng)絡(luò)接口部分:為實(shí)現(xiàn)在PSTN 網(wǎng)絡(luò)上傳輸數(shù)據(jù),遵從H.324 協(xié)議,采用Conexant 的CX06833.該芯片通過UART 接口與CPU 相連接,并提供PSTN 網(wǎng)絡(luò)接口。可參見參考文獻(xiàn)[10]
(6) 系統(tǒng)存儲(chǔ)部分:內(nèi)存采用型號(hào)為IS42S32200 的SDRAM,芯片的容量大小為8MBYTE,用于運(yùn)行軟件系統(tǒng)。程序存儲(chǔ)采用SST39VF320X,該芯片為NOR型FLASH 用于存儲(chǔ)程序,容量大小為4MBYTE.
(7) 附件:包括4*4 鍵盤,以及工作狀態(tài)顯示LED 等。
4. 系統(tǒng)軟件的實(shí)現(xiàn)
系統(tǒng)的流程見圖-3。
圖-3 系統(tǒng)軟件流程
在硬件系統(tǒng)上電后,軟件對(duì)硬件做初始化即進(jìn)入待機(jī)狀態(tài)。當(dāng)摘機(jī)后,CPU 通過modem內(nèi)置的模擬電話控制進(jìn)行模擬通話。通話雙方均按可視建,經(jīng)過H.245 協(xié)議協(xié)商,開始建立可視。
系統(tǒng)通過CMOS Camera 采集視頻,在SDRAM 中開辟一段內(nèi)存用于視頻內(nèi)容的緩存,H.263 編碼部分從該緩存中按照一定的幀率取出圖像進(jìn)行編碼。CPU 控制Codec 芯片通過MIC 進(jìn)行語音的采集,同樣在SDRAM 中開辟用于存儲(chǔ)音頻的緩存,G.723.1 編碼成碼流。
H.223 將視頻碼流、音頻碼流及控制數(shù)據(jù)碼流復(fù)用,通過modem 調(diào)制到PSTN 網(wǎng)絡(luò)上進(jìn)行模擬線路的傳輸。
從 MODEM 獲得的數(shù)據(jù)碼流則解復(fù)成音頻及視頻碼流。H.263 碼流解碼后,以固定的幀率刷新顯存。ARM 將顯存中的數(shù)據(jù)通過內(nèi)置的TFT 控制器,傳輸?shù)? 寸 320*240 的液晶顯示屏上顯示。G.723.1 碼流通過G.723.1 解碼器解碼,輸出到codec 芯片,通過功放推動(dòng)揚(yáng)聲器播放。
4.1 系統(tǒng)硬件的初始化
在 S3C2440 中,內(nèi)含名為Stepping Stone 的4K 的SRAM,可用做bootloader,用于系統(tǒng)的初始化。系統(tǒng)上電啟動(dòng)時(shí),將Flash 中的初始化程序段讀入SRAM 中,初始化CPU 內(nèi)部的時(shí)鐘,SDRAM 控制器,看門狗,中斷等。并初始化memory system,將FLASH 中的程序搬移到SDRAM 中,系統(tǒng)主程序運(yùn)行在SRAM 中。進(jìn)入主程序后,初始化GPIO,液晶屏幕,Camera,keyboard 等等外設(shè)。初始化完畢,系統(tǒng)進(jìn)入待機(jī),等待摘機(jī)。
4.2 H.263編解碼模塊
在RISC架構(gòu)的嵌入式系統(tǒng)中實(shí)現(xiàn)可視通話的關(guān)鍵之一是如何實(shí)現(xiàn)H.263編解碼。H.263協(xié)議是很成熟的一個(gè)視頻編碼壓縮協(xié)議,見圖-4.在本文中對(duì)H.263協(xié)議不詳述,僅介紹在基于ARM處理器的系統(tǒng)中如何實(shí)現(xiàn),具體可參見參考文獻(xiàn)[2].
4.2.1 H.263編碼
圖-4 H.263 編碼框圖
在如圖-4 所示,H.263 編碼器主要由4 部分組成:變換編碼T,量化Q,預(yù)測P,熵編碼VLC;對(duì)于實(shí)際應(yīng)用的編碼系統(tǒng),碼流控制CC 也必不可少的部分。圖中有 2 個(gè)單刀雙置開關(guān),用于選擇INTRA 和INTER.判斷當(dāng)前幀的類型,判斷之后分成INTRA 和INTER的分支,分別進(jìn)行處理。
在本系統(tǒng)中,H.263 編碼器過程是:
在函數(shù)處理層在H.263 編碼任務(wù)發(fā)出后,即調(diào)用處理函數(shù)video_encode 進(jìn)行編碼,從內(nèi)存中讀出一幀圖像,判斷當(dāng)前幀的類型。如圖-5 所示。
圖-5 H.263 編碼軟件流程
1)INTRA 幀情況。此時(shí)開關(guān)撥到上面的開關(guān)。視頻幀分塊后的當(dāng)前塊(目前處理的視頻塊)輸入經(jīng)過變換編碼,量化后進(jìn)行熵編碼作為碼流輸出;量化結(jié)果再經(jīng)過反量化和反變換作為參考幀儲(chǔ)存。最后調(diào)用重構(gòu)圖像進(jìn)行去塊效應(yīng)濾波。
函數(shù) CodeOneIntra()對(duì)當(dāng)前幀按照I 幀進(jìn)行編碼,該函數(shù)輸入為:
H263ENCODE_MEMORY * mems 編碼信息結(jié)構(gòu)體指針。
H.263ENCODE_MEMORY{
重建幀結(jié)構(gòu)指針,參考幀結(jié)構(gòu)指針,重建宏塊結(jié)構(gòu)指針, 參考宏塊結(jié)構(gòu)指針,解碼圖像參數(shù)結(jié)構(gòu)指針,解碼后系數(shù),宏塊參數(shù)結(jié)構(gòu)指針,解碼過程結(jié)構(gòu)指針}
2)INTER 幀情況。此時(shí)開關(guān)撥到下面的開關(guān)。視頻幀分塊后的當(dāng)前塊首先在參考幀搜索區(qū)域中進(jìn)行運(yùn)動(dòng)估計(jì)得到預(yù)測塊(參考幀中與當(dāng)前塊最相近的塊),同時(shí)得到運(yùn)動(dòng)矢量, 運(yùn)動(dòng)矢量熵編碼作為碼流輸出。 預(yù)測塊與當(dāng)前塊相減得到差值圖像,對(duì)差值圖像進(jìn)行變換編碼,量化后進(jìn)行熵編碼作為碼流輸出。
4.2.1 H.263解碼
下圖6是H.263 解碼器系統(tǒng)框圖:
圖-6 H.263 解碼器框圖
如圖-6 所示,H.263 解碼器與編碼器對(duì)應(yīng),也有4 個(gè)主要部分:反熵編碼,反量化(Scale),反DCT(IDCT),運(yùn)動(dòng)估計(jì)Motion Estimation.圖2 簡單示意了INTER 幀解碼的過程,即IDCT 之后的結(jié)果都與運(yùn)動(dòng)估計(jì)結(jié)果相加,但在INTRA 幀時(shí)候,不需要與運(yùn)動(dòng)估計(jì)預(yù)測結(jié)果相加。可以看出, 解碼器相對(duì)于編碼器, 流程比較簡單。
H.263 解碼過程是:
1)INTRA 幀情況,對(duì)碼流中幀內(nèi)系數(shù)碼流進(jìn)行反熵編碼,反量化,IDCT 即完成視頻幀的解碼,得到視頻數(shù)據(jù)輸出;2)INTER 幀情況,對(duì)差值進(jìn)行反熵編碼,反量化,IDCT,得到的結(jié)果與運(yùn)動(dòng)估計(jì)預(yù)測塊相加,完成運(yùn)動(dòng)補(bǔ)償,隨后得到視頻數(shù)據(jù)輸出;4.3 G.723.1編解碼。
本系統(tǒng)的另一個(gè)關(guān)鍵是在嵌入式架構(gòu)上實(shí)現(xiàn)G.723.1 的編解碼。該標(biāo)準(zhǔn)能夠?qū)斎氲哪M語音信號(hào)用8kHz 采樣,16bit 線性PCM 量化的語音信號(hào)壓縮成6.3Kbps 或5.3Kbps 的比特流。G. 723. 1 的兩種碼率根據(jù)不同需求可供選擇,高碼率為6. 3kb/s, 采用多脈沖最大似然量化(MP-MLQ)編碼算法,具有較高的重建語音質(zhì)量; 低碼率為5. 3kb/s,以ACELP 算法為基礎(chǔ), 計(jì)算復(fù)雜度則較低。本系統(tǒng)中采用ACELP 算法的低碼率語音壓縮。限于篇幅,本文在此不詳述,可參閱參考文獻(xiàn)[6]與[8].
4.4 H.245協(xié)議的實(shí)現(xiàn)
H.245協(xié)議的全稱是多媒體通信控制協(xié)議,他給出了一組用于描述終端信息,帶寬協(xié)商等食物消息的語法和語義,主要提供端到端的信令功能,以便通信雙方能正確的互聯(lián)。H.245的信令控制H.324系統(tǒng)的操作,包括能力交換,邏輯通道的打開和關(guān)閉,模式優(yōu)先請(qǐng)求,復(fù)用表項(xiàng)傳輸,流量控制消息,通用命令和指示。可參見參考文獻(xiàn)[4].
在系統(tǒng)實(shí)現(xiàn)的時(shí)候,利用SRP簡單重傳協(xié)議提供可靠的H.245碼流的傳輸,采用一個(gè)發(fā)送標(biāo)記,當(dāng)發(fā)送一個(gè)命令幀后,激活該標(biāo)記,此時(shí)后續(xù)的命令幀都不進(jìn)行發(fā)送,當(dāng)收到相應(yīng)幀后,清除該標(biāo)記,發(fā)送下一個(gè)命令幀。期間若有超時(shí)沒有收到響應(yīng)幀,則重發(fā)當(dāng)前幀;若重發(fā)多次仍沒有收到響應(yīng)幀,則終止通信,并報(bào)知應(yīng)用程序通信錯(cuò)誤。整個(gè)過程由ARM來進(jìn)行控制。
4.5 H.223協(xié)議的實(shí)現(xiàn)
H.223 協(xié)議是低位率多媒體通信復(fù)用協(xié)議。分為復(fù)用層(MUX)和適配層(AL),AL負(fù)責(zé)將從用戶層和IO 層獲取的不同數(shù)據(jù)流轉(zhuǎn)換。AL 分為AL1、AL2、AL3 一共三層,分別進(jìn)行數(shù)據(jù)和控制碼流、音頻碼流、視頻碼流的傳輸。MUX 將AL 的碼流按照復(fù)用表進(jìn)行碼流復(fù)用。該協(xié)議由ARM 來完成。具體可參見參考文獻(xiàn)[5]
5 系統(tǒng)實(shí)現(xiàn)結(jié)果
該系統(tǒng)在建立穩(wěn)定的模擬通話之后,通信雙方按下可視鍵,建立連接。可以選擇通話的視頻的質(zhì)量,視頻在QCIF(176x144)之下,能穩(wěn)定的達(dá)到10 幀的速率,人物清晰,唇形同步活動(dòng)圖像及伴音之間的同步較好。
6 結(jié)束語
本文介紹了一種基于純RISC架構(gòu)的嵌入式的終端平臺(tái),在該平臺(tái)上遵從H.324協(xié)議,很好的實(shí)現(xiàn)了可視電話的功能,在QCIF分辨率下,能穩(wěn)定的達(dá)到10幀的速率,語音清晰,能達(dá)到視頻通話的要求。系統(tǒng)平臺(tái)構(gòu)造簡單,在該平臺(tái)之上能很容易的進(jìn)行相應(yīng)的擴(kuò)展智能化。
-
芯片
+關(guān)注
關(guān)注
453文章
50405瀏覽量
421809 -
嵌入式
+關(guān)注
關(guān)注
5068文章
19019瀏覽量
303265 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7421瀏覽量
87715
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論