大屏幕显示系统


节日作文 2019-08-27 00:26:19 节日作文
[摘要]大屏幕显示系统篇(1):大屏幕LED显示系统解决方案大屏幕LED显示系统解决方案一、户外传媒的发展背景 媒体和广告是中国发展最快的行业之一。根据雷曼兄弟(LehmanBrothers)的数据,中国的广告业在过去5年中实现了15 5%的复合年增长率,而除了日本以外的亚太区的广告业增长率为9 2%,日本

【www.shanpow.com--节日作文】

大屏幕显示系统篇(1):大屏幕LED显示系统解决方案


大屏幕LED显示系统解决方案
 
 
  一、户外传媒的发展背景
    媒体和广告是中国发展最快的行业之一。根据雷曼兄弟(LehmanBrothers)的数据,中国的广告业在过去5年中实现了15.5%的复合年增长率,而除了日本以外的亚太区的广告业增长率为9.2%,日本为负的0.7%,北美为4.0%,欧洲则为2.9%。
    根据BOCI数据,2003年才起步的户外电视广告已经成为户外广告领域内发展最快的一个分支。户外电视广告包括安装在写字楼和超级市场、繁忙的户外地方以及公共汽车和出租车等交通工具上的平板屏幕。
    在中国,户外媒体集中于一些高层次的城市,这些城市里交通工具十分常见,而且广告费用也足以用来抵消相关的经营费用的上涨。随着新进入者寻求专营合同还未包括的新的广告投放点,竞争变得日趋激烈。
    二、户外传媒的发展趋势   
    基于全彩LED的户外传媒广告平台:
    LED电子显示屏是运用光电显示技术、视频技术、多媒体技术、网络技术、计算机技术、自动控制技术,针对室内外各种使用环境而设计,显示各种信息元素的屏幕,使用专用的控制技术,用于显示文字、文本、图形、图像、动画、股票行情及各种多媒体信息以及电视、录像信号。它由LED器件阵列排列组成的显示屏幕,具有高清晰度、色彩鲜艳、视角大、工作稳定、寿命长、功耗低等优点。由于采用单元模块化结构,屏体的大小可按用户要求灵活拼制。
    LED显示系统主要有:户内单色信息屏,双基色视频屏,全彩色,真彩色视频屏;户外单色信息屏,双基色、全彩色、真彩色视频屏;各种规格证券行情显示屏;条型显示屏;以及根据客户需要运用于各个行业的各种LED显示系统。
  三、实际应用参考:
 
  系统应用
  1、人工维护方式:
  2、无线网络方式
  四、解决方案:
  系统的特点:
  1).终端数量多、分布广该媒体运营系统是用大屏幕LED作为显示终端,大规模的终端分布在全国多个大城市,而每个城市又分为多个区域,每个区域分布着几十台终端,通过人工来更新播放内容和负责日常维护,因此整个系统的规模庞大,管理要求较高,这样大规模的系统对发布系统的终端的稳定性和可靠性要求非常高.
  2).不具备宽带网络环境由于播放终端安装的位置的特殊性和其它原因,每个终端和总部及各办事处之间不具备通信网络,要依靠维护人员来更新所有的播放内容和终端维护,这样无论总部或各办事处不能实时监控终端的运行状态,无法通过网络在线监控和管理,因此要求播放终端的稳定性和可靠性要很高,包括终端硬件的稳定性和软件的稳定性。
  3).屏幕尺寸非标准化由于户外传媒多是采用全彩的LED或等离子等大尺寸显示屏,而屏幕的尺寸通常要根据现在安装环境来定制,所以屏幕的尺寸可能是非标准化的,并且可能在同一个系统中有多种尺寸的屏幕,屏幕的分辩率可能是非常用的如1024×768、800×600等不标准的,因此要求发布系统的播放终端在视频输出时能够做到灵活的调节输出分辩率,或者可以事先设置好多种分辩率可供选择。
  4).建设巡更系统巡更系统建设的目标是通过该信息发布平台建设一套巡更自动确认系统,从而利用该系统实现对各地办事处维护人员的考核,终端定时自动生成巡更信息,维护人员必须在规定时间内到场记录该信息,定期向总部汇报,总部根据系统自动生成的信息来确认维护人员是否在规定时间内到场。
  5).终端的安装环境差由于屏幕安装的场所不可能有机房的环境和办公室环境,环境相对较差,在温度、湿度、空间、安装位置等多方面要求终端机顶盒的外观、大小、散热、防潮、放尘、防震等能能满足现场环境的要求。
  6).升级扩容能力强系统的升级包括终端机顶盒数量的增加、接入终端类型的增加、终端播放媒体内容格式的增加和CDMA无线数据传输功能的预留,一套系统的建立要能满足系统未来发展扩容升级的需求。信息和通信技术日新月异,流媒体技术在逐步发展,社会的环境在不断变化,客户的需求在不断的提高,因此对于这样一个多功能的信息发布系统的建设一定要考虑到整个系统的升级扩容能力,这关系到系统建设的投资回报和系统的长远性发展。
  建议方案:
    根据户外传媒系统的特点和我公司产品的功能,建议每个显示终端配置我公司的一台AMS-H8621HD作为该多媒体系统发布系统的播放终端。每个办事处安装一套客户端软件,在总部安装一套管理软件和服务器软件。该播放终端是一种纯嵌入式终端,采用硬解码专业芯片,单板无风扇,并采用嵌入式LINUX操作系统,软硬件都稳定可靠,尺寸小巧,便于安装和维护,故障率低。(具体参数详见产品说明)
  系统功能和实现方式
  本系统是基于局域网或者互联网的多媒体信息发布系统,几乎支持目前所有的主流媒体文件格式,它可以让企业,大型机构,运营商或者连锁式机构基于网络构建一个可以发布视频、图片、字幕、Flash动画、网页等多种媒体信息的多媒体信息发布平台,为用户提供高质量的多媒体信息服务。
  系统功能:
  支持主流格式的音视频电影、广告视频文件的播放;
  支持滚动字幕形式的通知、新闻、介绍播放,多种语言支持;
  终端自动生成日志信息;
  终端自动生成巡更信息;
  支持串口通信,串口数据输出;
  定时开关机
  文件加密传输,系统支持文件存储设备认证管理;
  视频窗口位置大小任意调节;
  系统采用C/S架构,支持权限管理,内容发布审核;
  中心集中管理各客户端的文件上传和下载;
  实现方式:
  1. 巡更系统实现方式描述:
    巡更系统是利用现成的多媒体发布系统平台,在已有的功能上增加一个新的功能模块。系统的实现是分为服务器端和播放终端两个部分,在播放终端,系统可以根据日期、时间点、终端编号、MAC地址等按照一定的固定算法生成一个4位的考核代码,如,200708310930SHLED00100:0a:e6:00:0d:d3这段字符串经过计算后生成如2020类似的考核代码,根据管理的需求,每天每个终端三次或多次按设置好的时间(9:30;13:30;17:30),自动以字幕的方式在指定区域显示,每次显示的周期可以设置20-30分钟,维护人员在规定时间内到现场记录该字符串并在规定时间内以短信方式向总部系统汇报。所有的巡更信息在总部是独立运算生成,当系统接收到维护人员上传的信息后,输入到管理软件,系统会自动查询校验,是否合法会反馈相应的结果。
  2. 日志信息报表系统
  信息生成:
  日志信息的生成主要是在播放终端,终端会根据定制的格式定期的生成日志报表,当维护人员每次更新终端播放内容的时候系统自动从终端导出到移动存储设备,通过办事处的客户端软件上传到总部服务器的日志报表数据库中,管理人员可以直接浏览、查询和导出。日志报表的数据包含终端号、时间、xxx文件开始播放、xxx文件播放结束、内容开始更新、内容更新结束、开机时间、关机时间、导出日志信息等,可以根据管理的需求设置基本信息的日志输出.
  信息上传:
  日志信息生成后,在每次更新终端播放内容时,当系统将移动存储设备中的新内容更新到终端完成后,会自动导出日志信息到终端,以固定的文件格式存储,维护人员通过办事处的客户端软件直接上传到总部服务器的日志数据库中,总部的管理人员通过管理软件可以直接浏览、查询和导出。
  3. 串口控制功能(现有)
  串口控制功能是通过播放终端自带的串口,和具有串口的设备进行对接,根据一定的通信协议进行通信,数据输出的功能。在本系统中可以用来实现对户外LED屏幕的控制,在屏幕和终端建立好通信协议后,通过终端的串口输出固定格式的数据LED屏幕,进而控制LED屏的开关机、调节亮度和时间校对等功能.
  4. CDMA时钟同步和扩展功能(现有)
  时钟同步:
  CDMA时钟同步功能是利用CDMA通信模块接入到CDMA无线网络,提取CDMA时钟的功能。由于在整个系统运营中,总部和终端之间是无网络状态,不能够实时在线监控,因此CDMA时钟在此至关重要,因为CDMA时钟能够提供精确、实时、同步的时钟,是系统特别是终端在播放、日志生成、同步、校对等必须有准确的时间参考.
  终端在线监控:
  终端在线监控是CDMA通信的一个扩展功能,利用每个终端通过CDMA无线通信模块连接到无线网络的功能,考虑到CDMA目前的下载速率较低,不适合大量的文件传输工作,但可以利用CDMA的定位功能,当终端正常运行时,系统可以定时通过CDMA网络向总部服务器上传一个确认信号,表示终端运行正常,这样总部就可以接收到所有终端的运行状态信息,可以通过灯的亮和灭来表示终端的在线和下线,对终端的运行状态进行监控,建立一个简单的监控系统。
  文件传输功能预留:
  由于播放终端目前已经支持如CDMA/GPRS/EDGE等无线通信和数据传输功能,在不需要传输数据的情况下,可以先关闭该功能,随着无线网络技术水平的提高、资源的扩大、3G的成熟等无线传输的带宽会越来越好,当需要传输数据的时候再激活该功能,因此现有的CDMA资源可以作为未来文件传输和下载的预留功能,这样不但节省资源,还有利于系统的扩展。
  5.定时开关机和播放同步:
  在有了CDMA时钟同步功能后,各个播放终端可以同步时钟,可以进行内容的同步播放和定时开关机,可以通过遥控器来对每个终端直接设置开关机的时间。
  系统安全策略
  整个系统由总部、办事处、和播放终端三部分构成。总部配置服务器端软件和管理端软件,办事处配置管理端软件,播放终端包含有专业系统软件。因此播放内容的传输要经过上述三个部分,中间有互连网介质和维护人员,因此播放内容的安全性管理要贯穿整个文件传输的过程,要能保证在每个环节都是可靠的、安全的、稳定的。
  如下图 文件传输流程:
  权限管理保障安全性策略:
  用户登陆
  用户凭正确的用户名和密码登陆是系统权限管理的基础,包括总部和各办事处的所有使用系统软件的用户。确保外来或非法用户登陆系统执行非法操作,破坏系统或进行不正当操作。
  内容审核
  内容的审核是归属系统权限管理功能模块,在总部的管理软件中可以建立用户,根据角色设置权限,可分为管理员和审核员,分别有独立的用户名和密码。管理员主要负责内容的编辑,制作播放列表,建好播放列表后管理员通过软件直接转交给审核员,审核员对收到的播放列表中的内容进行审核,验证是否合法,如果确认合法后,可以直接上传到服务器,在点击上传前审核员必须输入合法的密码系统才能正常进行加密上传到服务器。这一步主要是确保发布内容的安全性,保障将要发布的内容是合法的,不会对客户和公司造成影响,不会违反国家的法律法规,降低公司运营的风险,为系统的可靠运营把好入口这一关。
  内容传输保障安全性策略: 
  为了保障内容的安全性,除了在管理端通过权限管理进行内容审核外,在文件传输过程中的安全性策略也尤为重要,包括经过互连网的传输,因此系统通过以下三方面措施来保障文件传输过程中的可靠性。
  1、内容加密
    内容加密是当建立好的播放列表(Playlist)通过审核员审核确认合法后,在上传到服务器之前由管理软件自动对内容进行加密,加密的算法采用目前市场主流的3DES 128位或者MD5的加密算法,加密后系统同时根据一定的算法自动生成一个Public Key文件到服务器保存,Public Key中包含了播放终端硬件出厂时的基本信息,如MAC地址等。每次生成新的播放列表都会自动生成一个新的Public Key,而办事处的管理软件和播放终端系统是都能够识别的一个加密文件,这样的文件是经过加密处理相对非常安全的,因为服务器本身安装有FTP 服务,只有安装了管理软件的客户端并且拥有正确FTP账号和密码的人员才能下载,形成了专用系统,保障了内容传输的安全性。
  2、U盘认证
    这个环节是当办事处的维护人员希望从服务器下载播放内容时,在每次使用时,系统要对USB接口的各种移动存储设备进行认证,认证包含两个步骤,一是安装在办事处的客户端软件会自动获取该移动存储设备的序列号,然后将该序列号上传到服务器端,服务器端在获得了该序列号后会自动生成一个UID号;二是格式化USB设备并下载,当格式化USB设备时系统会将服务器生成的UID号和服务器上的Public Key加密文件写入到USB设备中,系统获得了Public Key后确认是合法的文件才会继续下载播放列表(Playlist)到USB设备,这样才完成整个播放内容的下载,并可以用此USB设备去终端更新播放内容。系统每次下载之前都会格式化USB设备并且会用Public Key来确认是否有合法身份下载,这样保障非法的客户端或仅凭账号密码是不能进行下载操作的,从而在办事处级别保障文件传输的安全性。
  3、终端认证
    终端认证主要是在更新内容之前对插入终端USB移动存储设备进行合法性认证,认证的依据就是UID和Public Key,只有在总部生成的Public Key和在办事处写入的UID是合法的,是终端系统能够识别的、确认的终端才会将新的播放列表(Playlist)自动下载到播放终端硬盘中,并且对已经加密的播放列表解密然后自动播放列表中的内容。
    从上述过程分析,这是一个三级认证的文件加密系统,从总部――办事处――播放终端,缺一不可,少了其中一个环节的认证,都被认为是非法的,只有经过系统内部正常流程获取的内容才能正常播放,任何外来的、非法的内容无法进入本系统。    系统优势分析:
  1.支持在现有系统上的二次开发
  现有的多媒体发布系统已经是一套完善的成熟的基于网络的多媒体发布系统,有很多客户在使用的,同时也有单机版的发布系统应用于国外市场客户,因此在目前拥有的系统的基础上整合和增加一些功能就能完全满足户外传媒广告系统的需求,系统支持二次开发。
  2.播放终端的稳定性和可靠性高 
  从户外传媒广告系统的需求和系统的特点可以看出,整个系统对终端的稳定性和可靠性要求较高,由于AMS-H8621HD播放终端采用的是单板嵌入式硬件架构,专业的硬解码芯片、无风扇、功耗低、尺寸小巧,在散热、防水、防尘等方面容易保护;系统的软件是采用嵌入式Linux操作系统、稳定性和可靠性好,自主版权。
  3.系统升级扩容能力强 
  该套系统建立后,一定要考虑到系统的升级和扩容的能力,系统的升级分为两个部分,一是从目前人工维护方式平滑升级到网络管理方式,因此需要系统完全有网络功能的预留,并且系统的架构能完全满足从现有的架构升级到网络架构,考虑到整个系统的规模和终端的数量,如果达到上千台,并且分布在多个城市的时候,升级除了要考虑到播放终端的网络功能外,系统要能支持多级管理模式,支持分中心和分中心服务器模式,这一点是不容忽视的。二是因为客户的需求和市场的环境是变化的,需求会逐步增加和提高,也许今天只需要基本的功能,而一段时间后就需求增加新的功能来满足客户和系统运营的需求。所以系统的升级能力关系到系统的投资回报率和投资效益,在当今技术飞跃发展的时代也是要考虑的问题。
  4、支持多种网络接入平台 
  系统和终端目前已经可以支持多种网络接入方式,有线的局域网、ADSL和无线的CDMA/GPRS/WLAN/EDGE/UMTS等,既可满足现在的CDMA时钟同步需求,也可以支持将来无线网络的升级时数据传输的需求,既节省了投资成本又能满足未来升级的需求。
  5、性价比高 
  整个系统无论软件还是硬件不仅能满足现有系统运营的需求又能满足将来网络升级的需求,而终端的硬件的成本远远低于使用工控机的成本,性能又高于工控机,因此整个系统的性价比非常高。
  产品终端
  AMS-H8621HD型多媒体播放终端是一款简单、小巧、功能强大、散热性能好、适合壁挂或平放、能满足不同客户需求使用灵活的终端机顶盒。
    AMS-S845SD型多媒体播放终端除了具有系统的基本功能外,还支持嵌入式浏览器技术,能显示网页,支持基于网页的ASP/JSP的应用程序 。
 

大屏幕显示系统篇(2):Android图形显示系统(一)


转载请注明出处:http://blog.csdn.net/a740169405/article/details/70548443
简介
本文讲解的内容是Android4.1以后的系统机制,将从整体上分析Android图形显示系统的结构,不深入分析每一层内部的代码实现,更多的是使用流程图和结构图来让大家理解Android是如何绘制、合成图形并显示到屏幕上。
本文将从三个层次进行讲解,大致如下图:
可以理解为上层生产,下层消费模型。
其中每一层之间的数据传递是使用Buffer(图形缓冲区)作为载体:
这里的缓冲区,大家可以理解为带有宽高和像素密度的内存区块。
1. 从下层往上层理解
1.1 显示屏
显示屏上的内容,是从硬件帧缓冲区读取的,大致读取过程为:从Buffer的起始地址开始,从上往下,从左往右扫描整个Buffer,将内容映射到显示屏上:
当然,屏幕上的内容需要需要不断的更新,如果在同一个Buffer进行读取和写入(合成)操作,将会导致屏幕显示多帧内容。所以硬件层除了提供一个Buffer用于屏幕显示,还提供了一个Buffer用于后台的图形合成,也就是我们常说的双缓冲:
上图中包含两个缓冲区: 前缓冲区:用来显示内容到屏幕的帧缓冲区 后缓冲区:用于后台合成下一帧图形的帧缓冲区
假设前一帧显示完毕,后一帧准备好了,屏幕将会开始读取下一帧的内容,也就是开始读取上图中的后缓冲区的内容:
此时,前后缓冲区进行一次角色互换,之前的后缓冲区变为前缓冲区,进行图形的显示,之前的前缓冲区则变为后缓冲区,进行图形的合成。
然而,理想很丰满,现实很骨感,上面假设“当前一帧显示完毕,后一帧准备好了”的情况,在现实中这两个事件并非同时完成。那么,屏幕扫描缓冲区的速度和系统合成帧的速度之间有什么关系呢,带着这个疑惑我们看看下面两个概念: 屏幕刷新率(HZ):代表屏幕在一秒内刷新屏幕的次数,Android手机一般为60HZ(也就是1秒刷新60帧,大约16.67毫秒刷新1帧) 系统帧速率(FPS):代表了系统在一秒内合成的帧数,该值的大小由系统算法和硬件决定。
我们用以下两个假设来分析两者的关系:
① 屏幕刷新速率比系统帧速率快
此时,在前缓冲区内容全部映射到屏幕上之后,后缓冲区尚未准备好下一帧,屏幕将无法读取下一帧,所以只能继续显示当前一帧的图形,造成一帧显示多次,也就是卡顿。
② 系统帧速率比屏幕刷新率快
此时,屏幕未完全把前缓冲区的一帧映射到屏幕,而系统已经在后缓冲区准备好了下一帧,并要求读取下一帧到屏幕,将会导致屏幕上半部分是上一帧的图形,而下半部分是下一帧的图形,造成屏幕上显示多帧,也就是屏幕撕裂。
上面两种情况,都会导致问题,根本原因就是两个缓冲区的操作速率不一致,解决办法就是让屏幕控制前后缓冲区的切换,让系统帧速率配合屏幕刷新率的节奏。
那么屏幕是如何控制这个节奏的呢?
垂直同步(VSync):当屏幕从缓冲区扫描完一帧到屏幕上之后,开始扫描下一帧之前,发出的一个同步信号,该信号用来切换前缓冲区和后缓冲区。
通过上面的分析可以看出,屏幕的显示节奏是固定的,操作系统需要配合屏幕的显示,在固定的时间内准备好下一帧,以供屏幕进行显示。两者通过VSync信号来实现同步。
关于屏幕这一块的知识点讲解到这,不再深入分析,接下来我们将会了解后缓冲区的图形合成者。
1.2 SurfaceFlinger-图形合成者
如果说屏幕是消费者,那么SurfaceFlinger相对屏幕来说就是生产者,其具有如下特性:
作为上层应用的消费者,硬件层的生产者。
负责图形的合成
和ActivityManagerService一样,是一个系统服务
为了更好的理解SurfaceFlinger这个服务的工作内容,以及他是如何做到一个承上启下的作用,我们通过下面的这个界面分析:
界面很简单,拆开来看,包含微信、悬浮工具箱、通知栏、底部虚拟按键栏:
我们可以先这样理解上面这幅图,上层每一个界面,其实都对应SufaceFlinger里的一个Surface对象,上层将自己的内容绘制在对应的Surface内,接着,SufaceFlinger需要将所有上层对应的Surface内的图形进行合成,具体看下图:
没错,SurfaceFlinger就是将多个Surface里的内容进行合成,最后提交到屏幕的后缓冲区,等待屏幕的下一个垂直同步信号的到来,再显示到屏幕上。
我们会发现SufaceFlinger通过屏幕后缓冲区与屏幕建立联系。同时通过Surface与上层建立联系。从而起到一个承上启下的作用,是Android图形系统结构中的关键组成部分。
为了继续往上层讲,我们需要了解什么是Surface:
对应上层的一个Window(对话框、Activity、状态栏)
作为上层图形绘制的画板
Canvas是画笔,上层通过调用Canvas的API向Surface上绘制图形
Surface内部存在多个缓冲区,形成一个BufferQueue
如果说SurfaceFinger是图形的合成者,那么图形的提供者就是上层。文章一开始就提到,图形的传递是通过Buffer作为载体,Surface是对Buffer的进一步封装,也就是说Surface内部具有多个Buffer供上层使用,如何管理这些Buffer呢?请看下面这个模型:
Surface内部提供一个BufferQueue,与上层和SurfaceFlinger形成一个生产者消费者模型,上层对应Producer,SurfaceFlinger对应Consumer。三者通过Buffer产生联系,每个Buffer都有四种状态:
Free:可被上层使用
Dequeued:出列,正在被上层使用
Queued:入列,已完成上层绘制,等待SurfaceFlinger合成
Acquired:被获取,SurfaceFlinger正持有该Buffer进行合成
Buffer的一次转移过程大致为:
从BufferQueue转移到上层
上层绘制完成再放回BufferQueue
接着SurfaceFlinger再拿去合成
最后又放回BufferQueue
如此循环,形成一个Buffer被循环使用的过程。
关于SurfaceFlinger以及SurfaceFlinger与上层建立联系的Surface讲解完了,接下来看看上层是如何将图形绘制到Surface的Buffer中。
1.3 上层绘图
上层绘图的大体流程见下图:
之前有说到,Surface里的Buffer作为上层的画板,Canvas作为画笔,通过调用Canvas的API完成图形的绘制,上层通过调用draw方法来调用Canvas的API,当然这里的draw方法并没有真正的将图形绘制到缓冲区,而是记录了一下绘制命令,具体需要了解DisplayList相关只是,后面会对其进行分析。
从流程上看:
测量View的宽高(Measure)
设置View的宽高位置(Layout)
创建显示列表,并执行绘制(Draw)
生成多边形和纹理
对多边形和纹理进行栅格化操作
从执行者的角度看:
CPU:Measure,Layout,纹理和多边形生成,发送纹理和多边形到GPU
GPU:将CPU生成的纹理和多边形进行栅格化以及合成
上面说的的纹理和多边形还有栅格化以及合成,这里不做具体的讲解,需要了解的是图形的绘制流程需要经过这些操作。从上面的分析可以看出,上层绘制图形时需要经过CPU计算,再经过GPU计算。
经过上面的分析,整个Android的图形绘制大体流程已经分析完成,接下来将会分析一些流程的具体实现,分析的内容包括:
Android 4.1 加入的VSync信号同步到上层以及三缓冲
从上层往下层具体分析每一步流程
2. VSync以及三缓冲
2.1 Drawing Without VSync
从上面的讲解可以看出,整个绘制流程的节奏,分成两个生产者消费者模型,一个由屏幕和SurfaceFlinger构成,另一个由SurfaceFlinger和上层应用构成,具体流程可以用下图来描述:
其中:
CPU和GPU代表上层的绘制执行者
Composite代表的是SurfaceFlinger对多个Surface的合成
Background Buffer和Front Buffer分别代表的是硬件帧缓冲区中的前缓冲和后缓冲
显示屏扫描完一帧之后,会发出VSync信号来切换并显示下一帧
上面的流程中,存在一个问题,屏幕的VSync信号只是用来控制帧缓冲区的切换,并未控制上层的绘制节奏,也就是说上层的生产节奏和屏幕的显示节奏是脱离的:
上图中,横轴表示时间,纵轴表示Buffer的使用者,每个长方形表示Buffer的使用,长方形的宽度代表使用时长,VSync代表垂直同步信号,两个VSync信号之间间隔16.6ms。此图描述了Android在4.1系统版本之前,上层的绘图流程在没有VSync信号的时候,出现的绘制问题。
我们从时间为0开始看,当前屏幕显示第0帧,上层CPU开始计算第1帧的纹理,计算完成后,交由GPU进行栅格化。当下一个垂直同步信号到来,屏幕显示下一帧,这时候,上层CPU并未马上开始准备下一帧,而当CPU开始准备下一帧的时候已经太晚了,下一个VSync信号来临的时候,GPU未能绘制完第二帧的处理,导致屏幕再次显示上一帧,造成卡顿:
2.2 Drawing With VSync
因为上层不知道VSync信号已经发出,导致上层未能开始CPU的计算。google在Android 4.1系统中加入了上层接收垂直同步信号的逻辑,大致流程如下:
也就是说,屏幕在显示完一帧后,发出的垂直同步除了通知帧缓冲区的切换之外,该消息还会发送到上层,通知上层开始绘制下一帧。
那么,上层是如何接受这个VSync消息的呢?
2.2.1 Choreographer VSync信号的上层接收者
Google为上层设计了一个Choreographer类,翻译成中文是“编舞者”,是希望通过它来控制上层的绘制(舞蹈)节奏。
首先看看Choreographer的类图:
可以发现,Choreographer需要向SurfaceFlinger来注册一个VSync信号的接收器DisplayEventReceiver。同时在Choreographer的内部维护了一个CallbackQueue,用来保存上层关心VSync信号的组件,包括ViewRootImpl,TextView,ValueAnimator等。
再看看上层接收VSync的时序图:
知道了Choreographer是上层用来接收VSync的角色之后,我们需要进一步了解VSync信号是如何控制上层的绘制的:
一般,上层需要绘制新的UI都是因为View的requestLayout或者是invalidate方法被调用触发的,我们以这个为起点,跟踪上层View的绘制流程:
requestLayout或者invalidate触发更新视图请求
更新请求传递到ViewRootImpl中,ViewRootImpl向主线程MessageQueue中加入一个阻塞器,该阻塞器将会拦截所有同步消息,也就是说此时,我们再通过Handler向主线程MessageQueue发送的所有Message都将无法被执行。
ViewRootImpl向Choreographer注册下一个VSync信号
Choreographer通过DisplayEventReceiver向framework层注册下一个VSync信号
当底层产生下一个VSync消息时,该信号将会发送给DisplayEventReceiver,最后传递给Choreographer
Choreographer收到VSync信号之后,向主线程MessageQueue发送了一个异步消息,我们在第二步提到,ViewRootImpl向MessageQueue发送了一个同步消息阻塞器。这里Choreographer发送的异步消息,是不会被阻塞器拦截的。
最后,异步消息的执行者是ViewRootImpl,也就是真正开始绘制下一帧了
至此,底层的VSync控制上层的逻辑就解释完了,此时上层绘制图形的流程与VSync信号的关系可以用下图表示:
时间从屏幕显示第0帧开始,CPU开始准备第1帧图形的处理,好了之后交给GPU进行处理,在上层收到下一个VSync之后,CPU立马开始第2帧的处理,上层绘图的节奏就和VSync信号保持一致了,整个绘图非常流畅。
然而,理想很丰满,现实很骨感,如果CPU和GPU没能在下一个VSync信号到来之前完成下一帧的绘制工作,又会是怎么样的呢?
还是从屏幕显示第A帧开始,时间进入第一个16.6ms,CPU和GPU合成第B帧,当下一个VSync信号到来的时候,GPU未能及时完成第B帧的绘制,此时,GPU占有一个Surface里的Buffer,而同时SurfaceFlinger又持有一个Buffer用于合成显示下一帧到屏幕,这样的话,就导致Surface里的两个缓冲区都被占用了。此时SurfaceFlinger只能使用第A帧已经准备好的Buffer来合成,GPU继续在另一个缓冲区中合成第B帧,此时CPU无法开始下一帧的合成,因为缓冲区用完了。另外一个不好的事情是CPU只有在VSync信号来的时候才开始绘制下一帧,也是就是说在第二个16.6ms时间内,CPU一直处于空闲状态,未进行下一帧的计算。
只有等到第二个VSync信号来了之后,CPU才开始在绘制下一帧。如果CPU和GPU需要合成的图形太多,将会导致连续性的卡顿,如果CPU和GPU大部分时候都无法在16.6ms完成一帧的绘制,将会导致连续的卡顿现象。
别着急,请看看Google的决绝方案。
2.3 parallel processing and triple buffering
没错,就是加入第三个Buffer,CPU和GPU还有SurfaceFlinger各占一个Buffer,并行处理图形:
从上图可以看出,在第一个VSync到来时,尽管SurfaceFlinger占了一个Buffer,GPU又占了一个Buffer,CPU仍然可以在第三个Buffer中开始下一帧的计算,整个显示过程就开始时卡顿了一帧,之后都是流畅的。
当然系统并非一直开启三个Buffer,因为Buffer是需要消耗资源的,并且,我们会发现,上图中,GPU处理好的图形,需要跨越两个VSync信号,才能显示。这样的话,给用户的影响是一个延迟的现象。
为了解决该问题,我们需要再次从上层往下层了解Android绘制图形的各个细节,并进行优化。对于应用程序开发人员来说,重点还是上层的优化,对自己的应用程序的内存,UI,数据等进行优化。
总结:
Android通过Buffer来保存图形信息,为了让图形显示的更加流程,在提供一一个Buffer用于显示的同时,开辟一个或者多个Buffer用于后台图形的合成。
Android4.1之前,VSync信号并未传递给上层,导致生产与消费节奏不统一
Android4.1之后,上层开始绘制时机都放到了VSync信号的到来时候
除了在上层引入VSync机制,Anroid在4.1还加入了三缓冲,用来减少卡顿的产生
每个Surface都有自己的绘制流程,需要先经过CPU处理,再经过GPU处理,之后经过SurfaceFlinger与其他Surface绘制好的图形和合成在一起,供屏幕显示
VSync信号贯穿整个绘制流程,控制着整个Android图形系统的节奏
以上内容可能有不对的地方,希望各路大神指教,下一篇文章将从上层往下层讲解Android的图形显示流程,并把上层的图形绘制流程展开讲解,敬请期待!

大屏幕显示系统篇(3):LED显示屏控制系统


LED显示屏控制系统 LED显示屏控制系统引 言   目前显示屏按数据的传输方式主要有两类:一类是采用与计算机显示同一内容的实时视频屏;另一类为通过USB、以太网等通信手段把显示内容发给显示屏的独立视频源显示屏,若采用无线通信方式,还可以随时更新显示内容,灵活性高。此外,用一套嵌入式系统取代计算机来提供视频源,既可以降低成本,又具有很高的可行性和灵活性,易于工程施工。因此,独立视频源LED显示系统的需求越来越大。
  本系统采用ARM+FPGA的架构,充分利用了ARM的超强处理能力和丰富的接口,实现真正的网络远程操作,因此不仅可以作为一般的LED显示屏控制器,更可以将各显示节点组成大型的户外广告传媒网络。而FPGA是一种非常灵活的可编程逻辑器件,可以像软件一样编程来配置,从而可以实时地进行灵活而方便的更改和开发,提高了系统效率。
  1 独立视频LED显示屏控制系统
  LED显示屏的主要性能指标有场扫描频率、分辨率、灰度级和亮度等。分辨率指的是控制器能控制的LED管的数量,灰度级是对颜色的分辨率,而亮度高则要求每个灰度级的显示时间长。显然,这3个指标都会使得场扫描频率大幅度降低,因此需要在不同的场合对这些指标进行适当的  取舍。通常灰度级、亮度和场扫描频率由单个控制器决定,而分辨率可以通过控制器阵列的方式得到很大的提高。这样,每个控制器的灰度和亮度很好,场扫描频率也适当,再通过控制器阵列的形式,实现大的控制面积,即可实现颜色细腻的全彩色超大屏幕的LED显示控制器。
  独立视频LED系统完全脱离计算机的控制,本身可以实现通信、视频播放、数据分发、扫描控制等功能。为了实现大屏幕、全彩色、高场频,本系统采用控制器阵列模式,如图1所示。
  系统可以通过网络接口(以太网接口)由网络服务器端更新本地的数据,视频播放部分则通过对该数据进行解码,获得RGB格式的视频流。再通过数据分发单元,将这些数据分别发送到不同的LED显示控制器上,控制器将播放单元提供的数据显示到全彩色大屏幕LED上。
  2 LED显示屏控制系统通信接口和视频播放单元
  本系统的通信接口和视频播放部分由ARM+uClinux实现。ARM(Advanced RISC Machine)是英国ARM公司设计开发的通用32位RISC微处理器体系结构,设计目标是实现微型化、低功耗、高性能的微处理器。Linux作为一种稳定高效的开放源码式操作系统,在各个领域都得到了广泛的应用,而uClinux则是专门针对微控制领域而设计的Linux系统,具有可裁减、内核小、完善的网络接口协议和接口、优秀的文件系统以及丰富的开源资源等优点,正被越来越多的嵌入式系统采纳。系统中使用Intel XScale系列的PXA255芯片,与ARM v5TE指令集兼容,沿用了ARM的内存管理、中断处理等机制,并在此基础上做了一些扩展,如DMA控制器、LCD控制器等。由于ARM9的处理能力有限,目前只用其播放320×240像素的视频。
  系统视频播放的数据来自于系统中的SD存储卡(Secure Digital Memory Card)。更新SD卡的数据有两种方式:一种是用计算机更新SD卡的数据;另一种是通过网络接收服务器的数据,直接由ARM更新SD卡。此外,播放器也可以直接播放网络传送的MPEG-4格式数据。由于XScale未提供物理层接口,若想实现网络功能需外接一片物理层芯片。本系统选用SMSC公司的高性能100M以太网控制器LAN9118。
  3 LED显示屏控制系统视频数据分发
  由于控制器采用阵列模式,因此需要对视频源提供的数据进行分发,将不同行列的数据正确地送入不同的控制器。
  3.1 数据分发单元方案
  本系统中的LED控制器灰度级高达3×12位(可显示多达64G种颜色)、控制区域为128×128点。系统播放单元提供的数据为320×240像素,因此需要分解成6个LED控制器来控制(见图1)。因此,需要将PXA255提供的RGB数据分3组发送到这6块控制器,以FPGA实现,方案如图2所示。
  LCD接口子模块接收PXA255 LCD接口的数据和控制信号,将这些输入的数据进行逐点校正之后存入SDRAM。然后将该场数据分成3组,每组128行(最后一组只有64行,为了后面控制板的一致性,此处由总线调度器补零),同时发送,之后由LED显示控制器处理。3.2 存储器分配和总线调度
  为了方便各模块间的接口,有利于不同时钟域的数据同步,系统的存储器采用两级存储模式,即SDRAM作为主存储器,而各模块也有相应FIFO作为Cache。SDRAM具有容量大、带宽高、价格便宜等优点;但是控制比较复杂,每次读写有多个控制和等待周期。因此为了提高效率,通常采用地址递增的猝发读写方式,而不能像SRAM那样随时读取任意地址的数据。
  本方案采用完全动态的内存分配机制,即每个模块请求时,如果不是同一场数据,则可以分配到一块新的内存,而一旦该内存的数据不再有效,则释放这块内存。这样,每块内存都有自己的属性,标志是使用中的内存,还是空闲内存,以及当前内存中的数据是否在等待被使用的队列中,因此内存需要分成3块。其中一块存储逐点校正参数,一块存储当前场数据,另一块存储上一场数据(即正在发送的数据)。这就要求在一个场同步周期内需要将数据发送完毕,而这一要求是完全可以达到的。
  总线调度是本模块的核心部分,必须精确计算总线带宽的占用情况,确定各部分FIFO的深度,以保证各个FIFO不会出现溢出或读空的现象。
  总线调度器需要调度3块存储器,还需要为每一个模块维护一个偏移地址的首地址,以及一个偏移地址计数寄存器。为了便于计算偏移地址,用SDRAM物理上的两行存储一行的数据,而将多余部分空余。
  总线调度器的仲裁算法为:逐点校正参数与校正后数据写入SDRAM的优先级一样,采用先来先得的方式占用总线,分别由各自FIFO的指针来触发总线占用。一场数据写入SDRAM完毕之后,开始发送。需要依次读出第n、n+128、n+256行的数据给数据发送FIFO  0、1、2,等待数据发送单元启动发送。
  3.3 LCD接口和逐点校正
  PXA255的LCD接口配置为smart panel形式,具体时序关系可参考PXA255的手册。FPGA根据这些时序关系,将数据读入,进行下一步的处理。
  由于在生产过程中LED管的参数不可能完全一致,因此为了获得良好的图像显示效果,必须对LED管进行筛选。这也是LED屏价格昂贵的一个重要原因。
  采用逐点校正技术,可逐点调节LED的亮度,将显示屏亮度的一致性提高一个数量等级,从而可以使采购厂商放宽LED在亮度和颜色方面的要求,LED采购的成本也随之大大降低。此外,系统采用的逐点校正技术,可以在线修改校正参数,使得LED屏在投入运营之后也可以修改校正参数,补偿由于LED管老化对显示效果的影响,提高LED屏的使用寿命。因此,逐点校正技术使LED模块作为室内外全彩色显示屏的基本元件成为理想方案。
  逐点校正参数存于SD卡中,在系统上电之后,ARM首先将该数据通过LCD接口(此时配置为GPIO)传送到FPGA,FPGA将其存入SDRAM中。此后,即可对LCD接口输入的数据进行校正。
  3.4 LED显示屏控制系统数据发送
  在数据发送时,每行数据作为1帧,加入特定的帧头之后开始发送。为了减少总线数量,采用串行总线形式,每组信号共有4路,分别是源同步时钟和RGB三基色的串行数据。信号均以LVDS(Low Voltage Differential Signal,低电压差分信号)的形式传输。LVDS采用差分方式传送数据,有比单端传输更强的共模噪声抑制能力,可实现长距离、高速率和低功耗的传输。Altera公司的Cyclone II系列FPGA可以方便地通过I/O配置获得LVDS的能力。
  发送帧头由4字节的同步头+数据当前行号+ID号组成。由于图像的连续像素值的相关性比较高,因此使用伪随机码作为同步头,其同步性能比较可靠。当前行号用于控制器判断是否出现丢帧,并根据当前的行号决定当前数据的存储地址。由于每一组数据实际上由两个控制器分别处理(见图1),所以需要判断标志来截取不同的数据部分。ID号即是不同控制器截取某行中不同列数的标准,数据在发送时ID为零。
  4 全彩色LED显示控制器
  全彩色LED显示控制器负责接收、转换和处理串入的RGB三基色信号,以一定的规律和方式将信号传送到LED显示屏上显示。控制器直接决定了显示屏的显示效果,也决定了LED显示屏性能的优劣。控制器的结构如图3所示。
  控制器的架构与数据分发类似,也采用二级存储模式,主要有数据接收、Gamma校正和交织、扫描控制输出以及总线调度和SDRAM控制四部分。
  4.1 存储器分配和总线调度
  由于数据输入场频与LED扫描场频通常不能成整数倍关系,可能出现输入一场数据结束,该场数据的处理结果(Gamma校正和交织后)需要写入SDRAM,而此时扫描一场没有结束,即正在读的那个区域不能覆盖,而上一场的数据还没有显示也不能覆盖,因此交织地写入(即扫描的读出)需要开辟三块分区。
  总线仲裁算法为:控制输出模块和写入模块采用先来先得的算法,而校正和交织过程的读写,则优先级最低,可以在前面二者申请时被挂起,只有当前二者不再需要总线时,才可以分配到总线的使用权。
4.2 数据接收
  数据接收单元除了需要同步判决、串并转换之外,还要确定一行中哪些数据需要本控制器处理。控制器截取每行中第128*ID~128*(ID+1)-1列的数据,同时将ID号加1,其他数据原样输出,送给下一级控制器。这样的控制方法比常用的拨码开关法更加灵活可靠。
  4.3 Gamma校正和交织
  Gamma校正可以使LED显示效果更接近于人眼的生理特性,而且由于PXA255输出的是8位数据,系统需要将其校正为12位,大大提高了显示的对比度。
  由于LED显示控制器采用逐位显示的方法,输入的数据与输出到LED显示屏上的数据组织形式不一样:前者按像素点排列,而后者则按像素数值的不同位数组织。
  4.4 控制输出
  12位数据显示的时间分别为(64、32、16、8、4、2、1、1/2、1/4、1/8、1/16、1/32)*128*Tsclk,其中Tsclk为串行移位时钟。交织之后,不同权重的数据显示信号显示有效时间不同,即可达到显示的效果。
  总线调度器将交织后的数据写入本模块的FIFO。由模块内部生成读取该FIFO的控制信号,并对其进行计数。模块内需要对移位个数及权重进行计数,以决定发出锁存信号及显示信号的有效时间。
  5 结 论
  实验测试结果表明,该系统亮度合适,使用分辨率细腻(64G色),场扫描频率高(约400 Hz),像素高(320×240点),可用于户外广播级应用。该设  计通过逐点调节亮度,从而可以使采购厂商放宽LED在亮度和颜色方面的要求,LED采购的成本也随之降低,从8位增至12位使图像的颜色等级大大增加,特别在低亮度区可使图像完美再现,而Gamma校正则使LED显示屏所进行的亮度变换更符合人眼的生理特点。此外,除接收来自ARM的信号外,还可通过HDMI接口接收来自机顶盒的数据信号,有广阔的市场应用前景。 关键字:LED显示屏控制系统 全彩LED显示屏 室内LED显示屏 户外LED显示屏 单色LED显示屏 双色LED显示屏
上一篇:LED显示屏控制软件

本文来源:https://www.shanpow.com/xx/429093/

《大屏幕显示系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关阅读
  • 节日作文600字精选3篇 节日作文600字精选3篇
  • 中华传统节日作文(合集九篇) 中华传统节日作文(合集九篇)
  • 节日作文开头集合3篇 节日作文开头集合3篇
  • 节日作文600字范文汇总三篇 节日作文600字范文汇总三篇
  • 节日作文500字(锦集5篇) 节日作文500字(锦集5篇)
  • 中秋节作文200字-节日作文汇编9篇 中秋节作文200字-节日作文汇编9篇
  • 节日作文600字初二【二十一篇】 节日作文600字初二【二十一篇】
  • 节日作文300字左右锦集十六篇 节日作文300字左右锦集十六篇
为您推荐
  • 节日作文高二范文(通用13篇)
    节日作文高二范文(通用13篇)
    春天,又称春季,是四季中的第一个季节,指立春至立夏期间,含节气有立春、雨水、惊蛰、春分、清明、谷雨。是万物复苏的季节。下面是小编为大家整理的节日作文高二范文(通用13篇),欢迎大家借鉴与参考,希望对大家有所帮助。
  • 节日作文300字左右范文(精选十六篇)
    节日作文300字左右范文(精选十六篇)
    以下是小编整理的节日作文300字左右范文(精选十六篇),仅供参考,希望能够帮助到大家。
  • 最吸引我的节日作文范文十四篇
    最吸引我的节日作文范文十四篇
    中秋节,又称拜月节。中秋节自古便有祭月、赏月、吃月饼、玩花灯、赏桂花、饮桂花酒等民俗,流传至今,经久不息。中秋节以月之圆兆人之团圆,为寄托思念故乡,思念亲人之情,祈盼丰收、幸福,成为丰富多彩、弥足珍贵的文化遗产。以下是小编收集整理的最吸引我的节日作文范文十四篇,仅供参考,希望能够帮助到大家。
  • 中秋节-节日作文1000字范文(精选16篇)
    中秋节-节日作文1000字范文(精选16篇)
    以下是小编收集整理的中秋节-节日作文1000字范文(精选16篇),仅供参考,希望能够帮助到大家。
  • 节日作文高二(锦集15篇)
    节日作文高二(锦集15篇)
    春天,又称春季,是四季中的第一个季节,指立春至立夏期间,含节气有立春、雨水、惊蛰、春分、清明、谷雨。是万物复苏的季节。以下是小编为大家收集的节日作文高二(锦集15篇),仅供参考,欢迎大家阅读。
  • 中国传统节日作文精选十七篇
    中国传统节日作文精选十七篇
    许多人都有写作经验,他们对写作并不陌生。作文必须围绕主题,围绕同一主题进行深入讲解。无论如何,我们应该避免杂乱无章,主题松散甚至没有主题。以下是小编整理的中国传统节日作文精选十七篇,仅供参考,大家一起来看看吧。
  • 传统节日作文【汇编五篇】
    传统节日作文【汇编五篇】
    重阳节有登高的习俗,人们在这一天或赏菊以陶冶情操,或登高以锻炼体魄,给人生增添了无限乐趣。下面是小编精心整理的传统节日作文【汇编五篇】,仅供参考,大家一起来看看吧。
  • 节日作文300字左右精选14篇
    节日作文300字左右精选14篇
    下面是小编精心整理的节日作文300字左右精选14篇,仅供参考,大家一起来看看吧。
  • 节日作文300字左右【十五篇】
    节日作文300字左右【十五篇】
    以下是小编整理的节日作文300字左右【十五篇】,欢迎阅读与收藏。
  • 清明扫墓作文-节日作文范文(通用19篇)
    清明扫墓作文-节日作文范文(通用19篇)
    传统,世代相传、从历史沿传下来的思想、文化、道德、风俗、艺术、制度以及行为方式等。以下是小编整理的清明扫墓作文-节日作文范文(通用19篇),仅供参考,希望能够帮助到大家。