当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于XScaIe处理器的视频通信系统

摘要  主要介绍在基于xscale处理器(PXA255)的嵌入式开发平台上搭建视频通信原型系统的具体方法。整个系统共分为采集,显示.编码、解码、发送、接收6个功能模块,着重介绍视频编解码部分在嵌入式系统上的优化方法。实验结果表明,在基于xscale(PXA255)处理器的嵌入式系统平台上,该视频通信原型系统可以基本满足实时视频通信的要求,并具有良好的可扩展性。
关键词 Xscale H.263 视频编码优化PXA255

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

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

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

2 系统软件设计
2.1 功能模块设计

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

    ①图像采集模块。调用Vide04Linux模块的API函数进行编写,为系统采集YUV格式的本地实时图像数据。
    ②图像显示模块。基于MiniGUI 1.3.3图形库编写.并采用MiniGUI中的YUVOverlav技术直接对YUV图像数据进行显示。
    ③图像编码模块。采用H.263编码标准,对本地图像数据进行压缩编码。
    ④图像解码模块。采用H.263解码标准,对远程图像数据进行解码。该模块与图像解码模块共同构成本系统的核心。
    ⑤无线网络通信模块。采用802.11b协议,引入了RTP协议的打包机制,实现了基于UDP传输机制的发送模块和接收模块。

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

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

3.1 软件框架级优化

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

    本系统中6个线程之间存在明显的依赖性。若编码线程不完成,则发送线程不会有数据源,若线程切换时间片为200 ms,则在发送线程的200 ms中,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系数的过程为例说明。
    #define CONST__BlTS 13
    #deflne PASS BITS 2
    #define F1x_0_541196100 ((int) 4433) /*O.541196100<<
    CONST_BITS*/
   

    到此行变换结束。结合公式(1)可以看出,经过行变换后比原始的DcT变换放大22倍;同理,再经过列变换后,系数又增大2、/2倍,即经过行列变换后共放大到8倍。在算法最后,将按比例还原:
    block[i]=(short int)(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<Min_FRAME){/*如果小于当前最小SAD值,记录当前信
息*/
    }
  }
    if(最小MAD点是当前搜索中心){
    step=stet)/2;//更新搜索步径
    }
  }

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

4 系统性能分析
    下面对实时采集的QCIF图像序列进行测试和分析。测试环境为Intel Sitsang硬件平台。此硬件平台采用PXA255处理器,主频400 MHz;64 MB SDRAM;操作系统采用Embeded Linux一2.4.19-rmk7。
 
    实时视频通信系统主要性能指标为帧率、图像压缩比和信噪比。影响这三个因素的主要模块为采集、编码、解码以及接收和发送模块。以下针对各模块进行性能分析。

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

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


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

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

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,此前有消息称华为将发布一款擎云 W515x “PC 新品”,该机将首发 8 核 12 线程麒麟 9000C 处理器,目前相关产品具体规格信息已经现身华为官网。

关键字: 华为 PC 麒麟9000C 处理器

OpenAMP一个提供用于处理非对称多处理(AMP)系统的软件组件,可以简化异构多核处理器系统间的高效通信,提供跨平台、可扩展且灵活的解决方案。通过OpenAMP,开发人员可以轻松地在不同架构的处理器之间共享资源,实现高...

关键字: 开发板 核心板 处理器

5月16日,2024世界电信和信息社会日大会在浙江宁波召开,在第55个世界电信日即将来临之际,共同探讨以推动数字创新赋能新型工业化之路。OPPO作为AI终端厂商代表,受邀出席AI终端未来之路分论坛。OPPO AI技术战略...

关键字: AI 端云协同 大模型

国际货币基金组织(IMF)总裁克里斯塔利娜・格奥尔基耶娃(Kristalina Georgieva)日前表示,AI正在像“海啸”一样冲击着全球劳动力市场。

关键字: IMF AI 劳动力市场 GPT-4o

西门子 Xcelerator as a Service 解决方案将登录微软 Azure,以应对不断增长的客户需求。西门子的 Teamcenter X 产品生命周期管理软件将作为首个登录 Azure 的软件

关键字: AI 自然语言处理

最新消息,多位内部人士昨天透露:微软总部下发邮件,通知中国区负责 AI 研究的多个团队整体从中国搬离,涉及员工或达数百人。

关键字: 微软 AI

北京2024年5月13日 /美通社/ -- 5月10-11日,"EPAI种子计划"正式启航!首期"基于EPAI的大模型应用实践研讨会"在北京智谷大厦成功举行。浪潮信息携手二十家元脑...

关键字: 开发平台 模型 AI 研讨会

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度

北京2024年5月14日 /美通社/ -- 从企业经营来看,一家公司的存亡并不完全依赖于CMO的执掌,而营销人往往被赋予打通企业任督二脉的期望。 2024年,手握"重金"的营销掌门人似乎更危险。...

关键字: AI 数字化 IP 组件

南京2024年5月14日 /美通社/ -- 每年的5月15日,我们都将迎来国际家庭日,这是一个由联合国大会在1993年确立的特殊日子,旨在提高人们对家庭重要性的认识,并促进家庭的和睦、幸福和进步。在这个独特的日子里,让我...

关键字: LINK AI 油烟机 洗碗机
关闭
关闭