微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于嵌入式linux的全彩LED显示屏脱机控制系统设计方案

基于嵌入式linux的全彩LED显示屏脱机控制系统设计方案

时间:09-13 来源:互联网 点击:

trl子列表在 hdrl 中的次序就是流的序号。Movi列表中是实际的MPEG-4编码流,avih子块包含了AVI视频文件的头信息,比较重要的是帧频。一般的AVI视频文件只有一个视频流。户外LED屏幕对于音频播放需求少,因此本文并不涉及音频解码。

Xvid解码过程中要不断输入MPEG-4视频编码比特流,视频流从AVI文件中的movi列表子块中提取。AVI文件存储在USB可移动存储盘上,文件IO时间延迟会导致解码过程产生间隙性的视频播放停顿,因此有必要采用单独的IO线程从AVI文件中不断提取视频流。IO线程与解码线程构成一种生产者-消费者类型的线程同步关系,需要引入同步互斥量来保证其同步工作。

由于MPEG-4视频编解码的原始颜色空间是YUV420,如果直接输出YUV420平面格式Xvid不需要进行颜色空间转换,其余输出格式则需要经过色空间转换算法得到。Xvidcore-1.1.3解码器输出不同的颜色空间格式对整个解码时间的影响非常显着。表1是在S3C2440平台下使用Xvidcore-1.1.3解码同一MPEG-4视频文件(分辨率320x176) 使用不同输出格式的帧频比较。

表1 Xvid不同输出格式解码速率比较表

本文使Xvid解码直接输出YUV420平面格式,避免了Xvid使用软件算法进行色空间

转换,然后使用SM501提供的YUV420转RGBx888硬件色空间转换命令完成视频帧的显示。这种方式下SM501与Xvid解码器并行工作,发挥了最佳的效果。同时为了避免了对数据的二次复制,本文直接在SM501本地显存中申请了空间作为解码帧输出地址,这些优化使得整个解码器的性能提高了2~3倍。 图4表示了简要的视频播放软件流程。

通过硬件缩放和象素复制,本文实现了1024×768分辨率下全屏流畅视频显示和多区域视频同步显示等普通嵌入式系统难以达到显示效果。多个显示区域下脱机播放系统AVI视频文件播放性能测试结果如表2示。可以看到,由于有硬件2D加速支持,解码速率与视频实际显示速率完全相等,区域大小以及多个区域同时显示对系统性能没有显着影响。

表2 视频播放器性能测试

测试结果表明该系统足以胜任大多数全彩类型商业广告LED大屏幕脱机视频播放。

图4 优化的视频播放流程

5 结论

本文采用高速MCU和SM501嵌入式显卡作为硬件平台,突破了嵌入式系统在显示性能上的瓶颈,接口明确。在软件上移植了Linux2.6内核作为软件平台,在效率和可移植性方面做了较好平衡,运用了良好的软件设计思想,开发出具有开放式体系结构的LED脱机播放软件。该系统已经成功应用于全彩LED显示屏的脱机播放和控制。

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

网站地图

Top