国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于i.MX53的可視IP電話終端設(shè)計(jì)

2013-07-25 05:56:58蔡劍卿王宜懷馮德旺
關(guān)鍵詞:IP電話音視頻音頻

蔡劍卿,王宜懷,馮德旺,景 林

(1.福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院,福建福州 350002;2.蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇蘇州 215006)

0 引言

隨著網(wǎng)絡(luò)技術(shù)和音視頻編解碼技術(shù)的不斷發(fā)展,可視IP電話應(yīng)運(yùn)而生.可視IP電話是一種基于互聯(lián)網(wǎng)協(xié)議的音視頻傳輸技術(shù).IP電話終端分為兩類:一類是基于PC機(jī)的終端,另一類是基于嵌入式平臺(tái)的終端.隨著嵌入式技術(shù)的發(fā)展,基于嵌入式平臺(tái)的終端成了目前的主要類型.當(dāng)前的同類產(chǎn)品,多采用1片MCU外加2片DSP的設(shè)計(jì)方案[1-5],外加的2片DSP分別用軟件完成音頻和視頻的編解碼,而系統(tǒng)其它功能由MCU完成,這樣硬件和軟件的設(shè)計(jì)都較復(fù)雜;也有采用單片MCU的設(shè)計(jì)方案[6-8],如i.MX21、i.MX27、i.MX51等ARM Cortex A系列的多媒體處理器芯片.i.MX53多媒體處理器建立在i.MX51的技術(shù)創(chuàng)新基礎(chǔ)之上,提供了更優(yōu)的性能[9].故本研究以i.MX53處理器為主控芯片,設(shè)計(jì)和實(shí)現(xiàn)了一款硬件集成度高、支持G.711音頻編解碼標(biāo)準(zhǔn)和H.264視頻編解碼標(biāo)準(zhǔn)的嵌入式可視IP電話終端.

1 終端的硬件平臺(tái)

嵌入式可視IP電話終端,需要完成音視頻的采集、編碼、發(fā)送、接收、解碼、視頻顯示和音頻播放等功能[10].i.MX53是飛思卡爾(Freescale)公司于2011年上半年推出的基于增強(qiáng)版ARM Cortex-A8內(nèi)核的高性能處理器,主頻高達(dá)1.2 GHz,內(nèi)部集成了視頻編解碼器、DDR2 SDRAM控制器、NOR FLASH控制器、以太網(wǎng)控制器和LCD控制器等,并具有豐富的外設(shè)接口.

基于i.MX53的可視IP電話終端硬件框圖如圖1所示.終端采用飛思卡爾公司的MC34708電源管理芯片(Power Management IC,PMIC),通過I2C接口與i.MX53相連;采用美信(Maxim)公司的MAX708TCSA復(fù)位芯片來提供準(zhǔn)確的復(fù)位信號(hào);共采用4片DDR2 SDRAM芯片,每片大小為128 MB(64 Mb*16),故SDRAM容量為512 MB(128 Mb*32);采用1片NOR Flash芯片,容量為4 MB,通過SPI接口與i.MX53相連;鍵盤接口采用3*4矩陣方式,鍵的定義和排列與一般電話機(jī)一致;UART接口通過MAX3232與PC宿主機(jī)相連,PC宿主機(jī)利用超級(jí)終端發(fā)送命令進(jìn)行終端測試.

圖1 基于i.MX53的可視IP電話終端硬件框圖Fig.1 The hardware diagram of video IP telephone terminal base on i.MX53

2 終端的軟件架構(gòu)

基于嵌入式Linux操作系統(tǒng),提出了該終端的軟件架構(gòu),如圖2所示.利用Linux操作系統(tǒng)的多線程機(jī)制和信號(hào)量機(jī)制,實(shí)現(xiàn)了可視IP電話終端的多任務(wù)并發(fā)執(zhí)行.該架構(gòu)重視軟件工程思想,自頂向下分為應(yīng)用層、中間件和底層三個(gè)構(gòu)件層.底層構(gòu)件層主要是構(gòu)建Linux系統(tǒng)和封裝MCU的底層硬件驅(qū)動(dòng).中間件構(gòu)件層為應(yīng)用層構(gòu)件提供了訪問底層硬件的接口,降低了應(yīng)用層構(gòu)件的設(shè)計(jì)難度.

圖2 基于i.MX53的可視IP電話終端軟件架構(gòu)Fig.2 The software architecture of video IP telephone terminal base on i.MX53

3 主要構(gòu)件的設(shè)計(jì)

在已有的底層內(nèi)部構(gòu)件基礎(chǔ)上,該終端的軟件設(shè)計(jì)主要是中間件和應(yīng)用層兩個(gè)構(gòu)件層的設(shè)計(jì).中間件構(gòu)件層包含了視頻采集和顯示、視頻編解碼、音頻采集和播放以及網(wǎng)絡(luò)實(shí)時(shí)傳輸四個(gè)構(gòu)件.應(yīng)用層構(gòu)件層只有可視IP電話終端一個(gè)構(gòu)件,即實(shí)現(xiàn)可視IP電話的功能.

3.1 視頻采集和顯示構(gòu)件

視頻采集采用Omnivision公司的COMS圖像傳感器芯片OV9650,該芯片具有130萬像素,通過CSI接口與i.MX53相連,而芯片配置通過I2C接口實(shí)現(xiàn).視頻顯示采用夏普(Sharp)公司的4.3英寸TFTLCD顯示屏LQ043T3DX02,其分辨率為480(RGB)×272.

視頻采集和顯示構(gòu)件分為視頻采集和視頻顯示兩個(gè)子構(gòu)件,基于Linux的V4L2架構(gòu)實(shí)現(xiàn).該架構(gòu)在Linux內(nèi)核中被分別映射為采集和顯示兩個(gè)設(shè)備文件,只要對(duì)這兩個(gè)設(shè)備文件進(jìn)行讀寫和控制操作就可實(shí)現(xiàn)視頻采集和顯示功能.視頻采集子構(gòu)件包括頭文件Video_capture.h和源程序文件Video_capture.c,其中:頭文件用于對(duì)外接口函數(shù)的聲明;源程序文件用于對(duì)外接口函數(shù)的實(shí)現(xiàn)和內(nèi)部函數(shù)的聲明及實(shí)現(xiàn).頭文件中聲明了4個(gè)對(duì)外接口函數(shù),分別如下:

1)函數(shù)Video_capture_init()

該函數(shù)用于初始化視頻采集設(shè)備,具體格式為:

uint8 Video_capture_init(uint32 vcfhandle,uint16 width,uint16 height,uint32 rate);

其中:參數(shù)vcfhandle為視頻采集設(shè)備文件句柄,width為視頻采集寬度,height為視頻采集高度,rate為視頻采集速率.函數(shù)返回值用于表示函數(shù)執(zhí)行狀態(tài):0表示初始化成功,非0表示初始化失敗.

2)函數(shù)Video_capture_start()

該函數(shù)用于啟動(dòng)視頻采集,具體格式為:

uint8 Video_capture_start(uint32 vcfhandle);

其中:參數(shù)vcfhandle為視頻采集設(shè)備文件句柄.函數(shù)返回值用于表示函數(shù)執(zhí)行狀態(tài):0表示啟動(dòng)成功,非0表示啟動(dòng)失敗.

3)函數(shù)Video_capture_stop()

該函數(shù)用于停止視頻采集,具體格式為:

void Video_capture_stop(uint32 vcfhandle);

其中:參數(shù)vcfhandle為視頻采集設(shè)備文件句柄.該函數(shù)無返回值.

4)函數(shù)Video_capture_buffer()

該函數(shù)用于將采集到的視頻數(shù)據(jù)存入幀緩沖區(qū),具體格式為:uint8 Video_capture_buffer(uint32 vcfhandle,uint8* buff);

其中:參數(shù)vcfhandle為視頻采集設(shè)備文件句柄,buff為幀緩沖區(qū).函數(shù)返回值用于表示函數(shù)執(zhí)行狀態(tài):0表示操作成功,非0表示操作失敗.

視頻顯示子構(gòu)件的設(shè)計(jì)與視頻采集子構(gòu)件相似,只是操作對(duì)象變成了視頻顯示設(shè)備而已.

3.2 視頻編解碼構(gòu)件

i.MX53內(nèi)部集成了視頻處理單元(Video Process Unit,VPU),該硬件視頻加速器支持30幀·s-1的720 p視頻編碼;支持30幀·s-1的1 080 p視頻解碼;支持H.264、H.263和MPEG4等多種視頻編解碼標(biāo)準(zhǔn).

視頻編解碼構(gòu)件分為視頻編碼和視頻解碼兩個(gè)子構(gòu)件,是基于底層VPU構(gòu)件實(shí)現(xiàn)的.VPU構(gòu)件在Linux內(nèi)核中被映射為一個(gè)設(shè)備文件.視頻編碼子構(gòu)件包括頭文件Video_encode.h和源程序文件Video_encode.c.頭文件中聲明的7個(gè)對(duì)外接口函數(shù)如表1所示,其中:encparam是編碼參數(shù)結(jié)構(gòu)體,frmbuff是幀緩沖地址結(jié)構(gòu)體,vpucmd是VPU操作命令(枚舉類型),encoutinfo是編碼后的輸出信息結(jié)構(gòu)體.視頻解碼子構(gòu)件的設(shè)計(jì)與視頻編碼子構(gòu)件相似,在其頭文件中也聲明了7個(gè)類似的函數(shù).

表1 視頻編碼子構(gòu)件頭文件中聲明的函數(shù)Tab.1 Functions declared in header file of video encode sub -component

3.3 音頻采集和播放構(gòu)件

終端采用16位精度的音頻編解碼芯片wm9712,該芯片內(nèi)部包含單聲道和立體聲兩個(gè)編解碼通道,其中單聲道通道支持音頻的采集和播放,采樣頻率為8或16 kHz;立體聲通道僅支持音頻的播放,采樣頻率范圍為8~96 kHz.由于單聲道通道可同時(shí)支持音頻采集和播放,且本終端的音頻信號(hào)是普通的語音信號(hào),故采用了單聲道編解碼通道,且選擇16 kHz的采樣頻率.

音頻采集和播放構(gòu)件分為音頻采集和音頻播放兩個(gè)子構(gòu)件,是基于底層PMIC構(gòu)件和Linux的ALSA架構(gòu)實(shí)現(xiàn)的.選擇ALSA架構(gòu)的模擬OSS模式,該模式提供的配置接口以函數(shù)ioctl()實(shí)現(xiàn),而音頻采集和播放以函數(shù)write()和read()實(shí)現(xiàn).音頻采集子構(gòu)件包括頭文件Audio_capture.h和源程序文件Audio_capture.c.頭文件中聲明的4個(gè)對(duì)外接口函數(shù)如表2所示.音頻播放子構(gòu)件的設(shè)計(jì)與音頻采集子構(gòu)件相似.

表2 音頻采集子構(gòu)件頭文件中聲明的函數(shù)Tab.2 Functions declared in header file of audio capture sub -component

3.4 網(wǎng)絡(luò)實(shí)時(shí)傳輸構(gòu)件

i.MX53內(nèi)部集成了以太網(wǎng)控制器,但沒有集成以太網(wǎng)物理層收發(fā)器,故外接了AC101L物理層芯片.它支持10/100BASE-T,通過MII接口與i.MX53相連.

網(wǎng)絡(luò)實(shí)時(shí)傳輸構(gòu)件基于實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol,RTP)實(shí)現(xiàn).為了滿足音視頻傳輸?shù)膶?shí)時(shí)性要求,采用了UDP套接字接口來實(shí)現(xiàn).UDP套接字的編程接口主要包括4個(gè)函數(shù):①socket():用于建立一個(gè)UDP類型的套接字描述符;②bind():用于將IP地址和端口號(hào)綁定到套接字描述符上;③sendto():用于通過UDP套接字的數(shù)據(jù)發(fā)送;④recvfrom():用于通過UDP套接字的數(shù)據(jù)接收.網(wǎng)絡(luò)實(shí)時(shí)傳輸構(gòu)件包括頭文件Network_transmit.h和源程序文件Network_transmit.c.頭文件中聲明的4個(gè)對(duì)外接口函數(shù)如表3所示,其中rtp_struct是定義的RTP數(shù)據(jù)流結(jié)構(gòu)體.

表3 網(wǎng)絡(luò)實(shí)時(shí)傳輸構(gòu)件頭文件中聲明的函數(shù)Tab.3 Functions declared in header file of network transmit component

3.5 可視IP電話終端構(gòu)件

可視IP電話終端構(gòu)件主要是通過調(diào)用中間件構(gòu)件層提供的函數(shù)接口,并利用Linux的多線程機(jī)制和信號(hào)量機(jī)制實(shí)現(xiàn)的.利用Linux的信號(hào)量機(jī)制可實(shí)現(xiàn)線程的互斥操作,線程使用pthread_mutex_lock占用資源,使用pthread_mutex_unlock釋放資源.

該構(gòu)件建立4個(gè)線程,每個(gè)線程通過相應(yīng)的函數(shù)實(shí)現(xiàn):①視頻采集編碼后發(fā)送函數(shù)Video_send():調(diào)用了視頻采集、視頻編碼和網(wǎng)絡(luò)實(shí)時(shí)傳輸3個(gè)構(gòu)件;②視頻接收解碼后顯示函數(shù)Video_display():調(diào)用了網(wǎng)絡(luò)實(shí)時(shí)傳輸、視頻解碼和視頻顯示3個(gè)構(gòu)件;③音頻采集與發(fā)送函數(shù)Audio_send():調(diào)用了音頻采集和網(wǎng)絡(luò)實(shí)時(shí)傳輸2個(gè)構(gòu)件;④音頻接收與播放函數(shù)Audio_play():調(diào)用了網(wǎng)絡(luò)實(shí)時(shí)傳輸和音頻播放2個(gè)構(gòu)件.

4 終端的測試

測試時(shí),將兩臺(tái)可視IP電話終端直接連到路由器,同時(shí)每臺(tái)電話終端通過串口和一臺(tái)PC機(jī)相連,PC機(jī)通過超級(jí)終端發(fā)送命令控制著終端上測試程序的運(yùn)行.終端上運(yùn)行的測試程序有:①音頻通信測試程序:用于測試終端能否成功地采集、收發(fā)和播放語音;②視頻通信測試程序:用于測試終端能否成功地采集、收發(fā)和顯示視頻;③終端總體測試程序:用于測試同時(shí)進(jìn)行音視頻傳輸時(shí),電話終端能否完成傳輸以及傳輸?shù)耐叫?

可視IP電話終端間的通信效果與網(wǎng)絡(luò)狀況有直接關(guān)系,故本終端分別在三種典型的網(wǎng)絡(luò)狀況下進(jìn)行測試,測試結(jié)果如表4所示.從表4可以看出,網(wǎng)絡(luò)狀況良好的情況下音視頻通信效果良好,網(wǎng)絡(luò)狀況一般的情況下音視頻通信效果一般,網(wǎng)絡(luò)狀況較差的情況下音視頻通信效果較差.測試結(jié)果表明,單獨(dú)的音頻和視頻均能正常傳輸,且同時(shí)進(jìn)行音視頻傳輸時(shí)的同步性也較好,故本終端能成功地采集、收發(fā)音視頻數(shù)據(jù)并進(jìn)行音頻播放和視頻顯示.

表4 三種典型網(wǎng)絡(luò)狀況下的終端測試結(jié)果Tab.4 Terminal’s testing results under three kinds of typical network status

5 結(jié)語

隨著人們生活質(zhì)量的不斷提高,可視IP電話終端必將會(huì)不斷普及.本文提出的可視IP電話終端,以高性能的i.MX53多媒體處理器為主芯片進(jìn)行單控制芯片的硬件設(shè)計(jì).i.MX53內(nèi)部集成了視頻編解碼器,故只需外擴(kuò)一塊音頻編解碼器芯片即可實(shí)現(xiàn)可視IP電話的功能,降低了硬件設(shè)計(jì)的復(fù)雜度,且系統(tǒng)穩(wěn)定性僅取決于主芯片.軟件方面,遵循軟件工程思想,自頂向下分為應(yīng)用層、中間件和底層三個(gè)構(gòu)件層,中間件為應(yīng)用層屏蔽了調(diào)用底層硬件驅(qū)動(dòng)的復(fù)雜性,故降低了軟件設(shè)計(jì)的復(fù)雜度,且具有很強(qiáng)的可移植性和擴(kuò)展性.

[1]李君懿,趙利.基于SIP的嵌入式無線可視電話終端設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2008,34(9):29-31.

[2]楊森,習(xí)勇,王麗潔.一種具有多跳功能的無線VoIP終端設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,33(3):59-61;64.

[3]鄭子超.基于SIP的嵌入式音視頻終端的設(shè)計(jì)[J].科技信息,2011(33):63-64.

[4]黃月祥,陳盛云.基于SIP的嵌入式VOIP終端研究與實(shí)現(xiàn)[J].微處理機(jī),2011,32(4):62-64.

[5]金志濤,陳忠輝,陳新,等.VOIP語音傳輸終端設(shè)計(jì)[J].通信技術(shù),2011,44(4):140-143.

[6]趙偉.一種基于i.MX51的嵌入式VoIP終端的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州:蘇州大學(xué),2011.

[7]魏宏安,陳忠輝,徐藝文.嵌入式VOIP網(wǎng)絡(luò)接口的設(shè)計(jì)[J].福州大學(xué)學(xué)報(bào):自然科學(xué)版,2011,39(6):868-872.

[8]邵長彬,張重陽,鄭世寶.基于Android的可視IP電話多媒體終端設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2011,35(6):62-65.

[9]Freescale Semiconductor inc.Architectural differences between i.MX51 and i.MX53[EB/OL].(2011 -02 -13)[2012 -01-20].http://www.freescale.com.

[10]范先龍,郭傳雄,遲學(xué)斌.一種基于Windows Peer-to-Peer網(wǎng)絡(luò)的VoIP系統(tǒng)及其實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2006,23(11):220-223.

猜你喜歡
IP電話音視頻音頻
VoIP電話業(yè)務(wù)營銷策略的探討
3KB深圳市一禾音視頻科技有限公司
必須了解的音頻基礎(chǔ)知識(shí) 家庭影院入門攻略:音頻認(rèn)證與推薦標(biāo)準(zhǔn)篇
基于Daubechies(dbN)的飛行器音頻特征提取
電子制作(2018年19期)2018-11-14 02:37:08
WIFI音視頻信號(hào)傳輸?shù)年P(guān)鍵問題探究
電子制作(2018年12期)2018-08-01 00:48:06
高速公路整合移動(dòng)音視頻系統(tǒng)應(yīng)用
音頻分析儀中低失真音頻信號(hào)的發(fā)生方法
電子制作(2017年9期)2017-04-17 03:00:46
Pro Tools音頻剪輯及修正
人間(2015年8期)2016-01-09 13:12:42
Roland專業(yè)音視頻新技術(shù)研討會(huì)在上海召開
IP電話技術(shù)及發(fā)展
河南科技(2014年10期)2014-02-27 14:09:02
房产| 厦门市| 若尔盖县| 维西| 遂溪县| 城市| 长垣县| 漾濞| 绍兴市| 波密县| 根河市| 新建县| 时尚| 馆陶县| SHOW| 固原市| 宽甸| 门头沟区| 阿拉善左旗| 鲁山县| 项城市| 垦利县| 宝山区| 方正县| 务川| 德钦县| 西平县| 永泰县| 武强县| 富顺县| 菏泽市| 涞源县| 那曲县| 延寿县| 西畴县| 抚顺县| 延津县| 汶上县| 邵阳县| 湖口县| 葫芦岛市|