分享
 
 
 

基于XScaIe处理器的视频通信系统

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

作者:清华大学 崔鹏 陶品

摘要:主要介绍在基于xscale处理器(PXA255)的嵌入式开发平台上搭建视频通信原型系统的具体方法。整个系统共分为采集,显示.编码、解码、发送、接收6个功能模块,着重介绍视频编解码部分在嵌入式系统上的优化方法。

实验结果表明,在基于xscale(PXA255)处理器的嵌入式系统平台上,该视频通信原型系统可以基本满足实时视频通信的要求,并具有良好的可扩展性。

要害词:XscaleH.263视频编码优化PXA255

引言

随着后PC时代的到来及Internet网络的飞速发展,人们已经不满足于被局限在PC平台上的视频通信,可以随时随地通过无线网络进行视频通信的移动设备有着很大的社会需求。众所周知,视频是一种流特性业务,数据量很大;另外实时视频通信要求对视频图像进行高效率、高比例的压缩,计算复杂度非常高。假如直接采用现有的Pc上的算法,嵌入式设备有限的电池能源和运算能力难以满足进行实时视频通信的需求,因此需要依据嵌入式设备的特点对算法进行改进和优化,从而降低运算的复杂度。基于xscale处理器的视频通信原型系统,初步满足了移动视频通信的要求,本文将具体介绍该系统的实现、优化方法和实验结果。

1 系统配置

硬件方面,本系统采用Intel公司的sitsangBoard(基于XScalePXA255处理器)作为硬件平台,使用以OV51l为接口芯片的USBCamera作为图像采集设备,Symbol公司的Spectrum24 WiFi CF Card作为无线网络传输设备。系统的砸件结构框图如图l所示。

软件方面,操作系统采用linux-2.4.19-rmk7版本的嵌入式Linux内核,图形界面环境采用MiniGUI1.3.3.网络传输协议采用802.11b。

2 系统软件设计

2.1功能模块设计

本系统终端需要具备以下功能:根据用户需求,①只显示本地图像;②只显示远程图像;③同时显示本地图像和远程图像。为实现功能选择的任意性,对系统软件进行了模块化设计,软件模块框图如图2所示。

①图像采集模块。调用Vide04Linux模块的API函数进行编写,为系统采集YUV格式的本地实时图像数据。

②图像显示模块。基于MiniGUI1.3.3图形库编写.并采用MiniGUI中的YUVOverlav技术直接对YUV图像数据进行显示。

③图像编码模块。采用H.263编码标准,对本地图像数据进行压缩编码。

④图像解码模块。采用H.263解码标准,对远程图像数据进行解码。该模块与图像解码模块共同构成本系统的核心。

⑤无线网络通信模块。采用802.11b协议,引入了RTP协议的打包机制,实现了基于UDP传输机制的发送模块和接收模块。

2.2软件设计流程

系统中本地显示、远程显示、发送和接收需要并发执行,故系统采用多线程编程技术。本系统共创建采集、显示、编码、解码、发送和接收6个线程,如图3所示。其中,合理有效的线程间的通信与互斥机制是保证程序能够顺利高效执行的要害。

3 系统性能优化

嵌入式设备计算能力受限问题以及功耗问题的存在,使得在嵌入式设备上实现实时视频通信更具挑战性。这就需要依据嵌入式设备的特点,充分利用计算资源,设计更合理的软件架构,并采用计算复杂度更小的算法对系统进行优化。下面具体介绍本系统中的优化策略。

3.1软件框架级优化

在多线程机制中,各个线程之间通过“时间片”机制分时复用CPU资源。假如不进行优化,则无法保证得到时间片的线程处于有效执行状态,而需要CPU资源的线程能很快得到时间片。

本系统中6个线程之间存在明显的依靠性。若编码线程不完成,则发送线程不会有数据源,若线程切换时间片为200ms,则在发送线程的200ms中,CPU一直处于空转状态。因此对整个系统而言,假如不加任何优化处理.CPU只有30%左右的时间处于有效执行状态。本系统的优化策略采用系统调用usleep()函数使处于无效状态的线程尽快释放CPU资源,实现方法如下:

while(1){

if(该线程标志位被触发){

……

usleeD(1000)

}

通过在代码的适当位置插入usleep()函数调用,CPU的利用率从30%左右提高到了96%以上,从而大大提高了计算资源的有效利用率,提高了整个系统的性能。

3.2算法级优化

本系统的核心部分由编码模块和解码模块构成。其中编码模块的复杂度要远大于解码模块的复杂度,成为整个系统的瓶颈。本文主要介绍编码模块的优化策略。

本系统采用tmn-1.7作为编码模块的蓝本。tmn-1.7遵循标准的H.263编解码标准,所以并没有考虑嵌入式设备的运算特性。其中对本系统影响最明显的是离散余弦变换算法(DCT)以及运动补偿算法(ME)。下面针对这两个算法提出优化方法。

3.2.1离散余弦变换算法

DCT算法把图像由像素域转换到频率域后,图像的大部分能量集中到直流系数分量以及低频交流系数分量上,从而更有利于去除空间冗余信息。

DCT变换的原理是:通过线性变换x=Hx将N维向量x变换为变换系数向量x,其中变换核H为:

其中变换核中的元素H(k,n)是无理数。这对大多数没有浮点协处理器的嵌入式设备实现实时视频通信是很大的瓶颈,因此提出将浮点数DCT变换算法改写成整数DCT变换算法的方案。

为实现这一方案,最要害的问题就是生成一个满足变换核的正交性要求,并且只包含整数系数的变换矩阵。其基本思路是将无理数扩大再取整,即:

Q(k,n)=round(aH(k,n))(2)

下面依据本系统所采用的方法,介绍整数DCT算法。

首先,介绍本系统该算法中的数据表示:

int*dataptr——指向临时存放DCT系数的内存空间指针:

int*blkptr——指向存放原始块数据的内存空间指针;

int*coeffptr——指向存放最终DCT系数的内存空间指针。

然后,对相关系数以及常数进行放缩。在对8×8的块进行DCT变换时,采用先进行行变换,再进行列变换的方法。下面以获取一个DCT系数的过程为例说明。

#defineCONST__BlTS13

#deflnePASSBITS2

#defineF1x_0_541196100((int)4433) /*O.541196100<<

CONST_BITS*/

到此行变换结束。结合公式(1)可以看出,经过行变换后比原始的DcT变换放大22倍;同理,再经过列变换后,系数又增大2、/2倍,即经过行列变换后共放大到8倍。在算法最后,将按比例还原:

block[i]=(shortint)(data[i]>>3);

再通过zigzag扫描矩阵,将系数填充到coeff矩阵中:

*(coeff+zigzag[i][j])=*(bLock+i*8+j);

在整数DCT算法中,通过比例放缩消除了浮点数运算,并且大多数乘除运算均采用移位方式处理,更符合CPU的运算特点,从而大幅度提高了运算效率和压缩速度。

3.2.2运动补偿算法

运动补偿算法用于去除相邻图像之间的时间冗余信息。该算法中,最佳匹配块搜索算法运算量占绝大部分。tmn-1.7编码器采用螺旋式全搜索算法,虽然准确度较高,但速度很慢。为了适应实时视频通信以及嵌入式设备运算能力较低的要求,本系统采用二维对数下降法。

二维对数下降法的原理是,通过快速搜索跟踪最小MAD点,如图4所示。以运动矢量(O,O)点为起始点,以十字形分布的5个点构成每次搜索的点群。假如最小MAD点出现在十字点群的边缘,则下次搜索以该点为中心,步长不变;假如最小MAD点出现在十字点群的中心,则下次搜索仍以该点为中心,但步长减半;假如新的十字形搜索中心出现在搜索窗边缘,则步长减半。如此循环,直到步长为1,则最小MAD点即为最佳匹配点。

本系统中对二维对数下降法的实现如下:

whlie(步长step>=1){

for(当前搜索十字点群中的每个点){

sad=SAD_Macroblock(当前搜索块的指针);/*获得SAD值*/if(sad息*/

}

}

if(最小MAD点是当前搜索中心){

step=stet)/2;//更新搜索步径

}

}

该算法大幅度减少了运动搜索的搜索次数,从而大大降低了运算量,提高了帧问编码的速率。

4 系统性能分析

下面对实时采集的QCIF图像序列进行测试和分析。测试环境为IntelSitsang硬件平台。此硬件平台采用PXA255处理器,主频400MHz;64MB SDRAM;操作系统采用Embeded Linux一2.4.19-rmk7。

实时视频通信系统主要性能指标为帧率、图像压缩比和信噪比。影响这三个因素的主要模块为采集、编码、解码以及接收和发送模块。以下针对各模块进行性能分析。

4.1模块性能分析

(1)采集模块

Sitsang板上的USB接口为USBl.1类型。由表1可知,采集数据的速率基本达到了USBI.1协议的12Mbps传输能力的上限,因此,采集图像的速度完全取决于图像格式及图像大小。为了保证图像实时性,采用YUV420176×144方案。

(2)编码模块

编码模块经过改写和优化,编码速度得到很大提高,基本可以满足实时视频传输的速度要求.具体数据如表2所列。在当前压缩速率的情况下,还能够获得理想的压缩比和信噪比,从而保证实时视频通信的质量,如表3所列。

(3)解码模块

经过对原有程序的裁减和改写,解码速度可以达到84fps。

(4)发送与接收模块

本系统采用WiFiCFCard作为网络传输设备,采用802.11b协议,引入了RTP协议的打包机制,实现了基于UDP传输机制的发送模块和接收模块。802.11b带宽达11Mbps,在表3的压缩比情况下,可传输帧率>1000fps,完全满足实时视频传输的要求。

4.2系统性能分析

经过模块优化和系统整合,原型系统在Sitsang板上同时显示本地图像和远程图像可达8帧/s,基本达到了实时视频要求。因为在系统框架设计中采用了采集线程一本地显示线程一编码线程发送线程互相抑制的机制,从而基本实现了本地端图像和远程端图像的同步。

结语

本文所设计的“基于嵌入式设备的视频通信原型系统”虽然只是一个雏形,但却完全实现了实时视频通信的功能,并为在嵌入式设备上实现实时视频通信提供了可行的框架和思路。该系统具有良好的可扩展性,为在嵌入式设备上实现视频会议以及可视电话系统提供了有价值的参考。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有