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