首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM的无线视频传输系统的设计(2)

基于ARM的无线视频传输系统的设计(2)

2 系统软件设计
2.1 系统软件框絮
    视频发送端软件的主要功能:采集当前屏幕显示图像,压缩图像,传送经压缩的图像。除此以外发送端软件还需要完成与接收端连接的建立、断开功能。与之对应的,接收端软件的主要功能是:接收经过压缩的图像数据,进行图像解码,显示图像。发送端和接收端之间通过Wi-Fi链路传输数据。系统软件构架框图如图4所示。


    在会议场合,典型的演示方式是播放幻灯片,在这种应用场合下,图像在大部分时间下都是准静态的,所以在这种情况下视频的刷新速度可以保持在一个较低的数值上,这里我们设定为8帧每秒。此时,若计算机的屏幕分辨率是1 280×800,色深是24 bit,则视频流的速率是197Mb/s。
    而目前普遍采用的802.11 g Wi-Fi标准,其标称速度只有54 Mbps,并不能满足以上所需的数据带宽。所以需要对数据经行压缩。在1 280x800的分辨率下,压缩率需要在5:1以上,可以考虑选用JPEG标准。JPEG压缩品质比较如图5所示。


    JPEG是很灵活的编码标准,其Q值可以在100以内任意取值。但如果图片质量过高,不但增加了图像编码时CPU的负担,而且增加了数据传输量;而图片质量过低又会影响演示质量。需要在图像质量和数据流量之间找到一个平衡点。
    图5是图片在不同的JPEG编码质量下的效果比较,当Q取50时,进过压缩的图片在肉眼观察下任然拥有较高的画质。而此时,压缩率是15:1,大于前面分析中提出的5:1压缩率要求,在这种情况下数据速率为13 Mb/s,能够在802.11 g提供的带宽下进行传输。可见,Q=50时,图像质量和数据流量之间可以取得一个较好的平衡。
2.2 视频发送端软件设计
    该系统的发送端软件基于windows设计。其实现的主要功能可以概括为:采集当前屏幕显示图像,压缩图像,传送经压缩的图像。发送端软件流程图如图6所示。


    在windows环境下捕捉当前屏幕的方法有:GDI,DirectX,以及Windows media API。其中采用GDI时效率不高,不适合应用在该系统中,这里选用DirectX。
    在DirectX中提供了g_pd3dDevice对象,这是一个IDixeet3DDevice9对象,可以调用IDirect3DSudace9::LockRect()方法来获得一个指针,这个指针指向当前显示缓存的首地址,再使用合适的算法计算出当前显示缓存区的大小,就可以很方便地复制显示缓存的内容至指定内存区域,并采用JEPG标准压缩所采集到的数据。具体原理和过程如下:每一个DirectX程序都包含了后台缓存,与此同时,每个程序在默认状态下都可以访问前台缓存,前台缓存即存储了当前的Windows桌面内容。访问这个前台缓存就可以捕捉当前桌面所显示的画面。以下是捕捉屏幕的关键代码。
继承事业,薪火相传
返回列表