微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 基于SIP的H.264视频电话终端设计

基于SIP的H.264视频电话终端设计

时间:01-14 来源:中电网 点击:

1 引 言

视频电话终端系统的实现是个很复杂的过程,涉及多方面知识。其目的是利用互联网或固定电话网等为彼此通讯的双方不但能提供实时的语音交流而且可以实现视频信息的即时传输。由于丰富的视频数据和网络可用带宽的矛盾,视频电话的发展经历了漫长的发展过程,早在上世纪20年代就有人对他进行探索和研究。

SIP(Session initiation Protocol)[1]协议是IETF于1999年提出的一种新的网络多媒体通信的交互信令,他相对于市场主体的H.323协议具有简单、扩展性好、便于实现等优点,但当构建电信级的大网时也相当复杂,此协议也在不断的补充和完善中[2]。目前市场上出现越来越多支持SIP的智能多媒体终端及相关软件和软交换设备,SIP将成为IP视频电话业务的主流协议之一。

H.264视频编码标准[3]与其他视频编码标准如H.263,MPEG-4等相比,其更高的压缩效率和网络亲和性的优点正是视频电话及其各种应用所需要的。

本文基于SIP协议、以H.264为视频编码标准、采用TI的高速数字信号处理芯片TMS320DM643和三星的ARM9芯片S3C2410为主体设计并实现了一款视频电话终端。

2视频电话终端的硬件系统设计

视频电话终端依据其使用方式的不同,大体上可分为"PC到PC"型和"电话到电话"型2大类。"PC到PC"型产品适合计算机用户,如MSN,QQ视频等,主要依赖用户双方的计算机加上合适的软件实现。"电话到电话"型产品两端都不需要计算机,电话终端本身包含音视频处理器及相应的软件完成音视频即时通讯功能。由于此类产品使用简单、安装方便、便于控制、性价比合珲等优点,市场前景广阔,是目前国内外研究的热点。他实现的方案有多种,如采用DSP,ARM芯片,专用的会议电视芯片等。考虑到生产成本、实现的难易程度、货源、市场推广、产品的升级更新等因素,本文确定的视频电话终端系统的硬件方案为:使用TI公司的通用DSP芯片TMS320DM643利用纯软件实现音视频编解码、用三星的ARM9芯片S3C2410实现各种接口、嵌入式操作系统和传输控制协议等。这样既不存在芯片多成本高的问题,又能保持很高的性能,可通过简单的程序下载实现软件升级或增加新的编解码标准。系统的硬件结构框图如图l所示。

系统硬件主要由TI公司的TMS320DM643和三星公司的S3C2410组成。其中TMS320DM643完成音频压缩编解码G.711/G.729/G.723.1和视频压缩编解码H.264;S3C2410完成SIP协议和嵌入式OS及各种接口如RS232、复合视频输入/输出、数字CCD摄像头、LCD、RJ45、以太网、键盘等。音频信号的输入/输出通过TI公司的TLV320AIC23送入TMS320DM643进行压缩编码。

3视频电话终端系统的软件设计

3.1 系统软件结构

在系统硬件完成后,剩下的需要大量丁作来编写代码实现各个功能模块,最终实现整个系统。系统的软件结构如图2所示。嵌入式OS是采用ARM-Linux内核,硬件驱动模块主要是基于ARM 9的介于硬件和Linux内核之间的软件接口,为特定的硬件响应定义好编程接口从而操作硬件,这2大模块的技术目前已相当成熟,相关的文献非常多;音频编码采用G.711/729/723.1,是为了让终端能适应音频编解码的非对称操作,有良好的兼容性,他可直接选用TI公司第三方提供的语音开发软件包。本文根据视频电话终端的特点和当前实现的技术难点主要讨论视频编码H.264和SIP协议栈2大核心技术的硬件实现。

3.2 H.264的实现

H.264视频编码标准虽然在设计时考虑到各种不同的应用和传输环境,其高的压缩效率和网络亲和性是以大的运算量为代价的,而在视频电话应用中虽然带宽有限却实时性要求高,所以考虑到实现的难易程度和技术本身必须对H.264编码方案进行精心选择(这里理所当然选用基本级),在利用DSP芯片实现时对程序要进行优化[4]。这里用C语音编程,利用TI公司的集成开发环境CCS2.2进行开发和调试,为了降低H.264编码算法的复杂性,适合视频电话的实时应用,主要从一下几个方面对其进行优化:

(1)运动估计算法的简化

在视频编码中,运动估计算法起着非常关键的作用,通常约占一个压缩方案总计算量的60%以上,所以这里采用一种快速的运动估计算法来降低运算复杂度[5]。在H.264编码标准中根据宏块(MB)的不同划分方式其对应的预测误差不同的特点,将编码模式简化为4组,先根据预测误差判断当前MB属于哪一组,然后在用拉格朗日率失真算法选取该组中最佳的编码模式,根据文献[5]的实验结果,这样做编码时间会缩短3倍左右而解码后图像的PSNR只有略微下降(最坏的情况不会超过0.5 dB)。对于帧内预测,如从预测块P的9种可选预测模式选取使P块和当前编码块I之间最小的预测模式也太费时间。对I帧中每个4×4编码模式的概率进行计算,只选取其中出现概率最高的4种模式用于帧内预测[6]。

(2)对程序结构进行优化

首先对程序中的条件判断语句、循环语句和函数调用等进行优化调整减少这类耗费较多时钟周期的指令。对视频数据的变换和逆变换、SAD的计算、运动预测的计算等尽量使用软件流水线。其次利用CCS2.2中C编译器提供的优化选项对程序进行优化,并对程序中浪费时间较多的代码用汇编优化器来优化这些代码。

(3)优化存储器 由于视频数据量较大,对数据的存取浪费的时间较多。这里使用DMA方式进行数据的存取以减少存储器延时,即在CPU对数据处理前用DMA方式将所需数据传送到内部缓存中,这样不但节约处理时间还便于使用软件流水线。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top