1.引言
对于重亲情和友情的中国人来讲,可视电话是普通百姓盼望已久的通信方式。可视电话是集通信技术、计算机技术、音视频处理技术等为一体的产品,是信息技术发展的方向。目前可视电话从产品类型上分主要有两种:一种是基于PC机的可视电话;另一种是脱离PC的一体化可视电话;从信号传输线路上分主要有:基于ISDN,ADSL等的宽带可视电话和基于PSTN的窄带可视电话。PSTN在中国已经发展了几十年,是目前覆盖最广、最为经济、群众基础最为广泛的的通信网。因此在PSTN网络上实现简易便于推广的可视电话仍然有很强的现实意义。
我国基于PSTN可视电话的标准是依据ITU-T H.324制定的。目前市面上所有的PSTN可视电话基本采用MCU+专用ASIC芯片来实现H.324协议所要求的音视频编码以及协议控制,或者处理器+DSP架构的方案,系统构成复杂。本文提出一种新的基于RISC架构嵌入式平台的可视电话,实现了系统构成简单的无线可视电话。该方案可开发出独立的可视电话终端,并可用于通信,监控等领域。
2.H.324协议简介
图-1 为H.324 协议的框图,图中框内为建议H.324 协议范围。建议内容主要包括H.263/H.261 视频编解码协议、G.723 音频编解码协议、V.14 数据协议、H.223 复用/解复协议、H.245 控制协议以及Modem(控制协议)等,可参见参考文献[1]。
图-1 H.324 协议框图
在PSTN 网络上传输低码率的音视频信息必须进行压缩编码,在H.324 协议中,音视频编解码是核心内容之一H.263 是由ITU 定义,支持用于视频会议和视频电话应用程序的视频编解码。H.263 基于H.261 编码发展而来,是特别面向低码率的视频编码而设定,能在最低带宽为 20K 到 24Kbit/sec 上传输的视频流。G.723.1 是ITU 组织针对电话带宽的语音信号推出的一种双速率语音编解码标准,最低能以5.3Kbps 的速率传输音频流。
3. 基于ARM处理器S3C2440A系统硬件平台构成
图-2 系统硬件架构
整体硬件架构图如图-2 所示。
(1) 系统的核心为基于RISC 架构的ARM 处理器S3C2440.该处理器韩国三星电子推出的一个16/32-bit RISC 小型高性能微处理器。采用速度最高可达533MHz 的ARM920T 内核, 可提供面向普通系统外设的各种功能,因此不需增加额外器件,在降低系统复杂度的同时,向终端用户提供Camera 接口、TFT 及STN 液晶显示器的功能及SD/MMC/SDIO 卡插槽等附加设备。该处理器性能强大,能够满足H.263 编解码以及G.723.1 编解码的运算要求。可参见参考文献[9]。
(2) 系统的视频采集部分:采用30 万像素的CMOS Camera OV9650ESL.该器件最高能采集1280*1024 的像素阵列,足够满足系统的需求。利用S3C2440A专有的Camera 控制器对视频数据进行采集,并采用IIC 总线对其进行配置曝光时间,白平衡等参数。
(3) 系统的显示部分:采用LG 的3.5 寸65K 色TFT 液晶显示屏,该屏幕分辨率为320*240,满足系统需求。在本设计中,利用处理器的液晶数据接口对液晶屏幕的对其进行配置显示格式,并利用SDRAM 作为显示存储区域,利用S3C2440A 集成的LCD 控制器对液晶屏幕进行输出显示。
(4) 系统的音频输入输出部分:采用Codec 芯片UDA1341,该音频芯片内部集成ADC 以及DAC,通过接驳MIC,SPEAKER 来组成系统的音频的采集与播放功能。该芯片通过IIS 总线与CPU 进行数据的传输,并可以通过L3-BUS设置其采集速率,增益等。
(5) 与PSTN 网络接口部分:为实现在PSTN 网络上传输数据,遵从H.324 协议,采用Conexant 的CX06833.该芯片通过UART 接口与CPU 相连接,并提供PSTN 网络接口。可参见参考文献[10]
(6) 系统存储部分:内存采用型号为IS42S32200 的SDRAM,芯片的容量大小为8MBYTE,用于运行软件系统。程序存储采用SST39VF320X,该芯片为NOR型FLASH 用于存储程序,容量大小为4MBYTE.
4. 系统软件的实现
系统的流程见图-3。
图-3 系统软件流程
在硬件系统上电后,软件对硬件做初始化即进入待机状态。当摘机后,CPU 通过modem内置的模拟电话控制进行模拟通话。通话双方均按可视建,经过H.245 协议协商,开始建立可视。
系统通过CMOS Camera 采集视频,在SDRAM 中开辟一段内存用于视频内容的缓存,H.263 编码部分从该缓存中按照一定的帧率取出图像进行编码。CPU 控制Codec 芯片通过MIC 进行语音的采集,同样在SDRAM 中开辟用于存储音频的缓存,G.723.1 编码成码流。
H.223 将视频码流、音频码流及控制数据码流复用,通过modem 调制到PSTN 网络上进行模拟线路的传输。
从 MODEM 获得的数据码流则解复成音频及视频码流。H.263 码流解码后,以固定的帧率刷新显存。ARM 将显存中的数据通过内置的TFT 控制器,传输到4 寸 320*240 的液晶显示屏上显示。G.723.1 码流通过G.723.1 解码器解码,输出到codec 芯片,通过功放推动扬声器播放。
4.1 系统硬件的初始化
在 S3C2440 中,内含名为Stepping Stone 的4K 的SRAM,可用做bootloader,用于系统的初始化。系统上电启动时,将Flash 中的初始化程序段读入SRAM 中,初始化CPU 内部的时钟,SDRAM 控制器,看门狗,中断等。并初始化memory system,将FLASH 中的程序搬移到SDRAM 中,系统主程序运行在SRAM 中。进入主程序后,初始化GPIO,液晶屏幕,Camera,keyboard 等等外设。初始化完毕,系统进入待机,等待摘机。
4.2 H.263编解码模块
在RISC架构的嵌入式系统中实现可视通话的关键之一是如何实现H.263编解码。H.263协议是很成熟的一个视频编码压缩协议,见图-4.在本文中对H.263协议不详述,仅介绍在基于ARM处理器的系统中如何实现,具体可参见参考文献[2]。
4.2.1 H.263编码
图-4 H.263 编码框图
在如图-4 所示,H.263 编码器主要由4 部分组成:变换编码T,量化Q,预测P,熵编码VLC;对于实际应用的编码系统,码流控制CC 也必不可少的部分。图中有 2 个单刀双置开关,用于选择INTRA 和INTER.判断当前帧的类型,判断之后分成INTRA 和INTER的分支,分别进行处理。
在本系统中,H.263 编码器过程是:
在函数处理层在H.263 编码任务发出后,即调用处理函数Video_encode 进行编码,从内存中读出一帧图像,判断当前帧的类型。如图-5 所示。
图-5 H.263 编码软件流程
1)INTRA 帧情况。此时开关拨到上面的开关。视频帧分块后的当前块(目前处理的视频块)输入经过变换编码,量化后进行熵编码作为码流输出;量化结果再经过反量化和反变换作为参考帧储存。最后调用重构图像进行去块效应滤波。
函数 CodeOneIntra()对当前帧按照I 帧进行编码,该函数输入为:
H263ENCODE_MEMORY * mems 编码信息结构体指针。
H.263ENCODE_MEMORY{
重建帧结构指针,参考帧结构指针,重建宏块结构指针, 参考宏块结构指针,解码图像参数结构指针,解码后系数,宏块参数结构指针,解码过程结构指针}
2)INTER 帧情况。此时开关拨到下面的开关。视频帧分块后的当前块首先在参考帧搜索区域中进行运动估计得到预测块(参考帧中与当前块最相近的块),同时得到运动矢量, 运动矢量熵编码作为码流输出。 预测块与当前块相减得到差值图像,对差值图像进行变换编码,量化后进行熵编码作为码流输出。
4.2.1 H.263解码
下图6是H.263 解码器系统框图:
图-6 H.263 解码器框图
如图-6 所示,H.263 解码器与编码器对应,也有4 个主要部分:反熵编码,反量化(Scale),反DCT(IDCT),运动估计Motion Estimation.图2 简单示意了INTER 帧解码的过程,即IDCT 之后的结果都与运动估计结果相加,但在INTRA 帧时候,不需要与运动估计预测结果相加。可以看出, 解码器相对于编码器, 流程比较简单。
H.263 解码过程是:
1)INTRA 帧情况,对码流中帧内系数码流进行反熵编码,反量化,IDCT 即完成视频帧的解码,得到视频数据输出;2)INTER 帧情况,对差值进行反熵编码,反量化,IDCT,得到的结果与运动估计预测块相加,完成运动补偿,随后得到视频数据输出;4.3 G.723.1编解码。
本系统的另一个关键是在嵌入式架构上实现G.723.1 的编解码。该标准能够对输入的模拟语音信号用8kHz 采样,16bit 线性PCM 量化的语音信号压缩成6.3Kbps 或5.3Kbps 的比特流。G. 723. 1 的两种码率根据不同需求可供选择,高码率为6. 3kb/s, 采用多脉冲最大似然量化(MP-MLQ)编码算法,具有较高的重建语音质量; 低码率为5. 3kb/s,以ACELP 算法为基础, 计算复杂度则较低。本系统中采用ACELP 算法的低码率语音压缩。限于篇幅,本文在此不详述,可参阅参考文献[6]与[8]。
4.4 H.245协议的实现
H.245协议的全称是多媒体通信控制协议,他给出了一组用于描述终端信息,带宽协商等食物消息的语法和语义,主要提供端到端的信令功能,以便通信双方能正确的互联。H.245的信令控制H.324系统的操作,包括能力交换,逻辑通道的打开和关闭,模式优先请求,复用表项传输,流量控制消息,通用命令和指示。可参见参考文献[4]。
在系统实现的时候,利用SRP简单重传协议提供可靠的H.245码流的传输,采用一个发送标记,当发送一个命令帧后,激活该标记,此时后续的命令帧都不进行发送,当收到相应帧后,清除该标记,发送下一个命令帧。期间若有超时没有收到响应帧,则重发当前帧;若重发多次仍没有收到响应帧,则终止通信,并报知应用程序通信错误。整个过程由ARM来进行控制。
4.5 H.223协议的实现
H.223 协议是低位率多媒体通信复用协议。分为复用层(MUX)和适配层(AL),AL负责将从用户层和IO 层获取的不同数据流转换。AL 分为AL1、AL2、AL3 一共三层,分别进行数据和控制码流、音频码流、视频码流的传输。MUX 将AL 的码流按照复用表进行码流复用。该协议由ARM 来完成。具体可参见参考文献[5]
5 系统实现结果
该系统在建立稳定的模拟通话之后,通信双方按下可视键,建立连接。可以选择通话的视频的质量,视频在QCIF(176x144)之下,能稳定的达到10 帧的速率,人物清晰,唇形同步活动图像及伴音之间的同步较好。
6 结束语
本文介绍了一种基于纯RISC架构的嵌入式的终端平台,在该平台上遵从H.324协议,很好的实现了可视电话的功能,在QCIF分辨率下,能稳定的达到10帧的速率,语音清晰,能达到视频通话的要求。系统平台构造简单,在该平台之上能很容易的进行相应的扩展智能化。
参考文献
[1] ITU-T Recommendation H.324. Terminal for Low Bit Rate Multimedia Communication, [M], 1998
[2] ITU-T Recommendation H.263, video coding for low bit rate commubication, [M], 1998
[3] An introduction to the ITU-T H.263 video compression standard: concepts, features and implementation
[4] ITU-T Recommendation H.245. Control Protocol for Multimedia Communication, [M], 1998
[5] ITU-T Recommendation H.223. Multiplexing Protocol for Low Bit Rate Multimedia Communication, [M],1998
[6] ITU 一T.Dual Rate Speech Coder for Multimedia CommunicationTransmitting at5.3 and 6 .3k bit/s,ITU-TRecommendationG .723.1[S].19 96 -0 3.
[7] 熊明昭等。 RISC+DSP 架构的H.324 电话设计和实现《计算机与数字工程》2005/06
[8] 高小波等。 G.723.1 双速率语音编解码算法的DSP 实现《计算机工程与应用》2006.33
[9] S3C2440A datasheet.pdf
[10] CONEXANT_CX06833-3.pdf