新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Intel Xscale和嵌入式Linux的视频模块设计

基于Intel Xscale和嵌入式Linux的视频模块设计

作者: 时间:2012-04-06 来源:网络 收藏


3.2.3 解码模块
由于图像经过了压缩引擎的压缩,在本地终端进行实时显示之前必须经过解码模块的解码,如果视频流通过网络进行传输,在本地终端视频流则不必经过该模块,但是远程应用仍然需要该模块。目前图像压缩技术主要采用余弦变换(DCT),小波变换(Wavelet)和子带编码等技术,其中余弦变换具有快速算法,易于用软硬件实现,且压缩性能接近统计最佳,目前被广泛采用,这也是压缩引擎采用的算法。余弦变换用于数字图像压缩编码时,一般采用二维变换,先将整幅图像分成 8×8 或16×16 宏块,以宏块为单位进行二维变换,再对每一宏块的变换域系数用Zig - Zag 方式进行Huffman 变长编码或算术编码。在图像接收端作相反的处理,即先恢复各宏块的变换域系数,再经余弦反变换即可恢复图像数据,其解码原理和主要步骤如图4 所示。

该模块是提高实时性的关键所在,为提高实时性,我们对代码进行了有效的优化,主要措施有:针对Xscale微处理器的特点,合理安排程序流程,尽量做到并行处理,提高程序运行效率;采用适合整数运算的快速反余弦变换算法,变换中只用加法和移位,减少了乘法运算量,提高了运算效率;采用基于查表的快速 Huffman 解码算法,以减少运算量,提高计算速度。通过这些措施既减少了内存的开销,也加快了解码的速度,取得了满意的效果。

3.2.4 视频应用模块
视频应用模块包括两部分:本地应用子模块完成视频图像的实时显示,本地用户控制和图像的存储等功能;网络传输子模块完成基于RTP 的压缩后的视频流数据传输,远程控制等功能。借助于操作系统对多线程机制的良好支持,主线程专门负责消息的响应,使程序能够即时响应用户通过鼠标或键盘输入的命令或其他事件,辅助线程用于完成图像的实时显示、存储和网络传输等其他比较费时的工作,这样就不至于影响主线程的运行,保证在做图像解码显示和数据传输的同时,能够即时响应用户的输入。不同的线程完成不同的任务,提高了程序的模块化,便于维护和扩展,充分利用了系统资源,有利于提高应用程序的实时性。由于对视频输出设备,RGB空间格式更加直接高效,而解码模快的输出为YUV颜色空间子格式,所以在视频图像的回显之前必须进行颜色空间的转换。该模块图形界面的实现是通过调用MiniGUI 提供的API 函数来实现的,MiniGUI 提供了比较丰富的类Win32API 函数,给我们开发图形界面带来了很大的方便。

4 视频模块性能及测试效果

视频模块经过终端测试,性能结果如表1 所示。通过结果可以看出,采集的经过压缩的视频图像帧速和经过网络传输后基于PC显示的帧速都达到了理想水平,但视频图像在终端上显示时,由于处理能力较PC 机弱,解码模块和显示模块虽然经过了优化,但仍然占有一定的时间,使速度下降了很多。但该速度相对于来说,也达到了实用的地步,并且不影响终端基于网络的视频应用,随着嵌入式微处理器处理能力的逐渐增强,这个问题也一定能得到很好的解决。比如,集成英特尔无线MMX 技术的处理速度更快的英特尔PXA27x 处理器家族新增了一系列新技术以提供额外的性能来支持高级视频。

终端视频模块采集的图像经过压缩、解压缩后具有较高的质量,基于PC 和终端显示并未见明显区别,图像效果及用户界面窗口如图5 所示。

5 结论
本文针对基于Intel Xscale 和嵌入式的多媒体终端对视频应用的需求,从实时性、功耗和体积等着手,提供了一种多媒体终端图像实时连续采集、显示管理和网络传输的方案,并且在实际中得到了验证。由于采用了模块化设计和设计的灵活性,只需稍加修改就还可以很容易的移植到别的多媒体应用中。我们可以在该终端平台上方便地进行一些基于视频模块的网络应用开发,我们认为有价值的进一步开发与研究方向包括: 作为嵌入式视频网络接入终端满足不同方面的需要,例如远程数字监控系统, 交互式医疗,交互式可视多媒体远程教学、网络电台、视频点播等。较PC机实现的系统有具有体积小、成本低和稳定性高的特点,开发具有自主知识产权的手持式多媒体视频网络终端系统。当今世界已经进入了Internet 时代, 嵌入式系统接入Internet 已成为网络接入重要的基础信息设施。因此, 具有视频模块的嵌入式系统在交互式多媒体、嵌入式系统、消费电子产品等领域具有很强的应用背景和市场前景。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭