OSD技术范文
OSD技术范文(精选5篇)
OSD技术 第1篇
1 国内市场现状
今天, 不论是本土矩阵还是洋矩阵, 字符叠加对于视频切换的作用已经愈来愈重要, 几乎成为中大型监控系统的必备功能。支持字符叠加的矩阵产品所占的比例逐年加大, 目前已达70%, 不支持字符叠加的矩阵大多应用于小系统和追求低造价的场合。
国外品牌矩阵由于面向全球市场销售, 设计时主要考虑西文使用环境, 只提供英文字符叠加。国内都认同汉字方块字, 所以使用支持中文字幕显示的矩阵是大势所趋。中文字符集目前主要采用GB 2312-80国家标准, 共6763个字。其中一级字库3755个, 二级字库3008个, 因为一级字库覆盖了99%以上的应用, 除了特殊人名/地名外, 已能满足日常视频监控的场景标识需要。目前, 在国内使用的矩阵要么自身具备中文字符叠加功能, 要么搭配中文字符叠加器使用。
2 评价屏幕中文叠加的主观指标
2.1 屏幕字符容量
为在视频图像上叠加字符信息, 通常会将屏幕划分为2412的全角显示区域 (即288个字符显示位置) , 由于矩阵内部存储空间的限制, 大多只支持每路视频8个中文字符的单行标注 (如图1所示) 。但是在跨地域/县市的平安城市项目中, 来自不同单位的几百个甚至上千个监控点汇集到一起, 指挥中心需要借助图像上的中文标注有序高效地识别和定位, 常规的单行8个汉字就难以表述得清楚准确。于是多行字符显示技术应运而生, 第一行可以显示辖区具体地域的名称, 第二行可以显示街道单位的具体位置。这种人性化的设计大大提高了用户在实战指挥中的相应速度。
2.2 点阵规模
中文字符笔划的细腻程度决定于点阵, 点阵越多, 字符越清晰越锐利, 相反则容易出现笔划粘连, 显示不清的问题。大多数本土矩阵厂商都用的是性能相近的专用字符叠加芯片, 能够提供最大1612点阵的字符显示效果 (如图2所示) 。由于各厂家细化设计的差异, 实际表现的点阵数值也不尽相同, 通过肉眼可以比较出来差异。为实现更好的显示效果, 2424点阵技术出现在一部分高端产品上, 由于量化取样点更多, 所以笔划清晰连贯, 字符锐利舒展 (如图3所示) 。
2.3 字符大小
在视频图像上显示的中文字符大小对用户的实际使用感受息息相关, 不同的应用场所对于屏幕上的字符显示区域也有不同的要求。通常的1612点阵字符的最大像素是288216, 我们可以称其为11 (单倍高单倍宽) , 在21寸电视上显示效果如word中黑体字号为48时的大小 (如图4所示) 。
当用户认为默认的字符显示大小不符合要求时, 可以通过设置不同的字号, 调整到满意的显示效果 (如图5、6所示) 。
2.4 黑边/灰度
由于字符是通过专用芯片以模拟的方式叠加在视频信号上, 通常亮度要高于图像背景, 当背景图像发生明暗变化时, 字符的显示效果也会相应改变, 这就需要给白色字符的外廓包上一层黑边, 保证字符在强光的环境下, 依然能够稳定的显示。在夜间较暗照度时, 字符的灰度不能太大/亮, 否则不但影响了使用者的观测, 而且一旦长期使用, 对监视器/显示器的屏幕会造成严重灼伤, 留下永不磨灭的印记。比较原始的灰度调节方式是在电路板上对每路视频输出调节电位器旋钮, 通过模拟的方式手动校准。而最新的WEB集控技术则可以通过IE浏览器在网页上进行多级灰度的数字调节, 更准确更方便。
2.5 彩纹/彩条
字符叠加的原理是将标识信息以非压缩的方式叠加到图像的行信号中, 这种处理技术不可避免地导致字符笔划的边缘有轻微彩纹, 一般通过提高视频讯号的隔离度等指标尽可能降低或减轻, 这可以体现出各厂家硬件设计技术实力。
2.6 显示位置
通常的字符叠加内容包括时间、日期、数字/英文地址和汉字字符。这些信息可以根据用户的需求, 叠加到监视器屏幕的任意位置, 并可由用户自行调整以适合场景显示需要。为解决字符显示水平位置只能固定整行调整的限制, 有厂家已经推出了可灵活地设置行间距的字符叠加技术, 使得调整字符位置像电脑排版一样轻松自如。
2.7 信息种类
矩阵国家标准中规定, 屏幕字符显示不仅需要提供日期时间的显示方式, 还要求能够显示报警信息, 所以矩阵厂商通常为每路视频提供一条状态行信息显示区域, 锁定、报警、视频丢失等信息都可以设定实时闪烁/显示, 同时为适应不同客户的需求, 还提供了日/月/年、年/月/日、月/日/年的日期格式和时/分/秒、时/分的时间格式。
2.8 输入方式
国内矩阵通常内置了国标一级字库甚至二级字库, 为了将需要的汉字从字库中调出后显示在监视器屏幕上, 一般方法都是将字库固化存储在矩阵中, 用户通过在说明书提供的区位码表中找到所需汉字的码值, 在键盘上输入区位码将字符调出显示。不过由于检字方式过于繁锁, 各厂商先后推出了键盘拼音输入和计算机软件输入等改进方式, 而天地伟业则基于智能网络矩阵推出的Web集控技术, 将字符输入、位置调整、状态设置等全部操作都通过网页提交, 方便快捷, 所见即所得, 有效地提高了应用效率 (如图7所示) 。
3 技术发展变革
3.1 三代OSD中文字符叠加技术的特点
第一代字符叠加技术 (简称OSDⅠ) :采用专用字符叠加芯片, 芯片内置基本的ASCII字符, 限制是只能叠加内置的字符, 不能叠加中文。为支持中文叠加, 此类芯片中有一类可内置RAM, 支持造字, 可以在使用中满足叠加中文的需求, 但叠加字符的个数和点阵有限。OSDI中代表芯片是NEC的u PD64系列, 内置固定240个ROM西文字符和16个用户自定义RAM字符。ROM字符仅能西文大写显示, 采用字符显示方式, 行间距不可以调整, 内部固化字符字体较大, 对视频图像会产生比较严重的区域遮挡, 影响用户的直观视觉效果。每路视频最多叠加16个中文, 通常只能显示16*12的非标准中文字符。
为解决早期中文矩阵区位码输入检字繁锁的问题, 作为国内第一批研制中文矩阵的安防企业, 天地伟业1999年就取得了视频任意字符叠加技术的专利, 用户通过计算机软件将输入的任意字符抽取为点阵信息, 传送到矩阵中再显示出来。这种方式使用灵活便捷, 不用翻检字表查找代码, 且字符显示种类不受限制, 通过造字功能可以叠加任意形状的字符图形, 开创了以用户使用体验为核心的技术先河。
第二代字符叠加技术 (简称OSDⅡ) :采用专用字符叠加芯片, 芯片内置RAM, 可以更新字符, 同时可以满屏叠加字符, 不限制叠加字符的个数。但每个芯片必须外配字库芯片。OSDⅡ中代表芯片是富士通的MB9系列, 每路需要外挂并口ROM字库 (内置国标一二级字库) , 适合中西文混合显示, 支持字符和图形显示方式, 行间距可以调整, 字体适中, 对视频遮挡影响小。单扫描线叠加, 字符细笔划部分会产生闪烁, 影响用户的视觉效果。
天地伟业于2006年在智能网络矩阵中业内第一个应用OSDⅡ技术 (如图8所示) , 针对平安城市系统专门推出的多行字符显示、5种字号/7级灰度数字调节和IE浏览器网页输入功能, 由于贴近实战指挥, 便于快速分组定位, 获得了公安部门的一致好评和推荐。不过由于采用OSDⅡ技术的芯片成本过高, 导致其只限于在大型矩阵得到应用。为实现在县/区级公安单位监控系统中的普及, 天地伟业2007年推出2.0版本的OSDⅠ技术, 通过改进算法, 可实现两行叠加10个汉字, 3种字号, 字符点阵可支持到1616规格的标准字库, 引领了国内中小型系列矩阵的升级换代。
第三代字符叠加技术 (简称OSDⅢ) :采用ASIC (Application Specific Integrated Circuit) 技术, 由厂商自行设计字符叠加的算法并定制芯片。由于是监控厂家结合安防系统的实际需求专业设计芯片, 所以专用性强, 更符合视频矩阵的监控需求。天地伟业于2008年9月份在国内率先推出了自主专利算法芯片的OSDⅢ技术, 不仅将前两代字符叠加技术的优点兼收并蓄, 还针对视频矩阵未来与行业结合的深化应用推出了一系列创新功能。
3.2 OSDⅢ中文字符叠加技术优势
◆每路视频的字符叠加种类不限。OSDⅢ突破了前两代技术因受制于存储空间而对每路视频显示字数的限制, 支持全屏幕任意中英文叠加, 可最多显示240个不同的中文或者480个英文字符。
◆中英文全半角混排显示。大部分专用字符叠加芯片对英文字符只能按全角显示, 显示效果不符合我们的日常习惯, 更主要的是全角英文减少了可显示字符的个数, 使得在同样面积内叠加的字符数目降低, 压缩了信息量。OSDⅢ的全半角混排技术可以让屏幕上叠加的字符数量相比前两代提高将近一倍, 能满足客户更丰富灵活的实际需要。
◆可在线升级字库。OSDⅢ可多芯片共享字库, 同时支持字库在线升级, 适用于多国/地区语言文字需要。
◆视频制式自适应。PAL/NTSC内部主动识别, 在不更改电路的情况下同时自动兼容。
◆无视频自动转换内同步方式 (即无视频也可叠加显示) 。当视频输入信号丢失时, 自动切换到内同步, 不需要外界干预, 更安全可靠, 并可提示用户视频丢失告警。
◆柔化黑边技术。工程现场的视频信号千差万别, 如果叠加的字符没有黑边, 当场景颜色与字符相近时, 会严重影响用户的准确识别, 而字符黑边技术有是个双刃剑, 在为字符叠加黑边时会使得字符笔划上的彩纹明显。OSDⅢ采用了专利算法的柔化黑边技术, 叠加字符黑边的同时降低笔划上彩纹的干扰。
◆单芯片多路叠加。前两代字符叠加技术所采用的专用字符芯片基本都是一枚芯片负责一路叠加, 而应用OSDⅢ技术的芯片可以支持单芯片8/16路等多种规格的字符叠加。不仅降低了系统总体成本, 适于在中小型矩阵中推广应用, 而且提高了板内集成度, 使得矩阵的单机视频容量得到大幅提升, 高密度矩阵的系统结构和电气指标得到进一步优化和改善。
OSDⅠ/第一代OSDⅡ/第二代OSDⅢ/第三代
3.3 三代OSD中文字符叠加技术的差异
(如表1所示)
4 应用前景展望
OSD技术 第2篇
安防行业的摄像头都可以由用户控制摄像头的方位、角度、摄像机输出的视频模式等功能。而用户需要获取当前摄像头的设置信息以便进行控制操作, OSD的作用就通过显示终端给用户反馈这些信息。如今网络摄像机或者数字摄像机输出的视频已经达到比较高的清晰度, 普通的OSD已经无法满足高清视频的要求, 因此高清OSD便应运而生。高清OSD的应用如图1所示。
1. 概述
(1) 方案比较
目前市场上能够实现数字OSD叠加功能的IC可以分成两类, 一类是高集成度的通用视频处理器, 例如达芬奇系列的DSP芯片就具有OSD叠加功能。由于OSD只是这类微处理器的附加功能, 其主要作用还是应用于偏向视频处理方向, 所以实现的OSD功能单一, 无法实现全屏叠加、字符效果调整等要求, 同时过于繁杂的OSD控制会影响视频处理上的运算速度。另一类为专用集成电路, 但目前市场上只有处理XGA以下小分辨率视频的专用IC, 还没有处理高清数字视频的OSD专用IC。
采用Actel FPGA实现的高清OSD具有以下优势:
●Actel FPGA的高性能内核能够实现对19201080以下分辨率视频的支持;
●实现方式灵活多样, 接口可以定制为B T.6 0 1或BT.1120;
●Actel FPGA的固件错误免疫使得系统可以工作于较恶劣的环境中, 可靠性高。
(2) 功能概述
在视频监控领域, 随着网络技术的发展, 操作便捷、清晰度高的网络摄像机已经被广泛地应用在各种场合。网络摄像机对OSD提出了更高的要求, 首先是网络摄像机机芯输出的是数字分量的视频信号, 这就要求OSD能在数字域中进行字符叠加, 并且不改变视频格式;其次, 视频分辨率高, 即像素时钟频率高, 要求OSD处理速度要足够快, 视频输出不能有延时, 同时也要求叠加的字符达到美观细腻的效果。
OSD系统主要完成在视频信号中插入字符或图片信息。本OSD系统嵌入在高清网络摄像头的机芯与系统控制板之间, 完成将字符信息插入到视频信号中, 并且不改变输入与输出视频的格式, 在接收端无需额外硬件即可在任何显示终端上实现字符信息显示功能。本文实现的高清OSD主要具有以下功能:
●支持GB2312字符集和ASCII字符集。共包含汉字6763个;
●支持日文平假名与片假名, 支持自定义的LOGO显示;
●显示字符为白色, 带描边功能, 在任何视频背景下都能清晰显示字符;
●所有字符均通过内码方式索引, 操作快速便捷;
●预留SPI接口与MCU进行通信;
●支持全屏幕动态叠加;
●不改变视频格式, 视频输出无延时;
●支持字符闪烁功能, 支持多点闪烁;
●支持19201080、1280960、1280720分辩率的ITU-R BT.601格式视频。
(3) 系统框图
OSD系统主要完成在视频信号中插入字符或图片信息。支持视频格式为为ITU-R BT.601 YUV422格式的视频流。OSD的系统框图如图2所示。
2. 各功能模块介绍
OSD应用系统主要由FPGA, SPI Flash及SRAM组成, MCU只是用于控制OSD系统进行字符叠加的外部电路。OSD系统与外部电路的接口有两个接口, 一个是视频输入/输出接口, 这部份接口对于ITU-RBT.6 0 1视频流来说主要包含行场同步信号 (HSYNC/VS YNC) 、像素时钟信号 (PCLK) 、亮度信号 (Y) 及色差信号 (C) 。另一个接口为SPI接口, 用于与外部MCU进行通信, MCU作为主机控制OSD系统实现字符叠加功能。
(1) SPI Flash
SPI Flash主要用于存储字库。OSD系统支持GB2312字符集及ASCII字符集。其中, GB2312标准共收录6763个汉字, 其中一级汉字3755个, 二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。GB2312字库, 基本满足了汉字的计算机处理需要, 它所收录的汉字已经覆盖中国大陆99.75%的使用频率。无论是是GB2312字符集中的字符或是ASCII字符集中的字符, OSD都是按照字符的机内码方式进行索引的。实现机内码方式进行字库的调用对于MCU编程及程序维护来说是非常方便的, 用户无需知道相应字符在Flash中的地址信息, 当然必要时也可以引用Flash的绝对地址。
(2) SRAM
SR AM在OSD系统中的作用是存储需要显示的字符信息。在进行字符叠加时不需要缓存视频数据, 因此对于OSD来说输出视频流与输入视频流没有延时, 同时也大大降低了SM的存储空间要求。
(3) MCU接口
OSD系统与外部MCU的通信接口采用SPI接口方式。OSD模块与外部MCU的时序比较简单, SPI通信方式采用模式0方式, 与MCU的接口时序如图3所示。
外部MCU与OSD模块通信是通过SS、SCK、MOSI以及MISO进行的, 当片选信号有效时FPGA在每个SCK的上升沿对MCU输出的MOSI信号进行采样。MISO是OSD输出数据线。这个信号主要用于针对有的摄像头机芯可以输出多种模式视频流而预留的, 用于供MCU查询当前机芯的视频模式。
外部MCU对OSD模块的操作通过发送命令的方式执行。向OSD模块提供简单指令就可以执行包括显示、清屏、闪烁在内的所有操作, 用户无需了解底层结构和字库的组成情况就能熟练地进行编程操作, 方便MCU程序的开发。
(4) 视频接口
视频接口指的是输入到OSD的视频格式, 而不包含水量时序信息。因为时序细节可以通过调节OSD内部寄存器来实现。本文实现的OSD系统所支持的视频格式为ITU-R BT.601YUV422格式。不同的数字摄像头机芯可能输出的行场同步与Y/C信号在时序上有差别, 因此在OSD内部有相应寄存器用于调整字符显示区域。视频接口时序如图4所示。
3. 市场应用
OSD主要用于在视频流中加入字符信息, 并提供接口给外部MCU操作, 达到通过简单设备就能进行人机交互的目的。高清OSD的应用实例如图5所示。随着网络摄像头的发展, 清晰度越来越高的摄像机正在应用于越来越多场合, 对OSD的要求也越来越高。Actel FPGA单芯片、上电即行以及固件错误免疫的特性可以为OSD高清视频字符叠加提供最佳的解决方案。
4. 小结
OSD技术 第3篇
1 硬件部分
1.1 硬件框图
本系统框图如图1所示,TW2824由单片机控制,采用并行方式接口,TW2824接收来自于模拟输入0和模拟输入1的2路模拟视频信号,处理后由X通道输出显示到1块液晶屏中。由于显示的字符数目较多,TW2824的内部存储中并不能放下所有待显示字符,所以,在单片机外围中外接1块ROM芯片专用于存储待显示的字符点阵字库,由编程器写入,当显示每一画面时定时将待显示的部分字符由ROM读取写入到TW2824内部,从而实现所需字符叠加。
1.2 TW2824介绍
TW2824是TECHWELL公司生产的一款视频控制器。它有4路模拟视频输入端、1路数字输入端。在其内部有自动标准检测电路,可支持并自动检测所有NTSC/PAL视频标准的模拟输入信号。具有裁剪、缩放、存储图像、视频控制、OSD覆盖、动态侦测等功能。TW2824提供2路模拟视频输出和2路数字视频输出。可应用于4/8/16 路DVR系统、汽车后视系统、及安防应用领域等。
对TW2824的操作主要是对TW2824的控制器进行相应操作,TW2824的内部寄存器分为3页,分别以前缀0x,1x,2x开头,每页寄存器页内地址为00~ff,256个字节。在TW2824的数据手册中,有相应寄存器的详细介绍。在本课题中并不是用到了TW2824的所有功能,当设计不同的系统时,需要对寄存器值进行不同的设定。
对TW2824的片内寄存器读写有串行与并行2种方式,串行方式使用I2C协议标准2线连接,传输速度可达到400 kb/s,而并行方式可达到更快的传输速度。本项目中采用的是并行方式。CSB0和CSB1两根线用来选择TW2824内部寄存器页,PDATA 8根并行线用来分时传输地址和数据,再加上读使能,写使能,和地址锁寸3根控制线,一共13根线连接。在并行的接口方式下,TW2824也支持同寄存器页内寄存器地址自动加1功能,可方便地执行同寄存器页内寄存器的连续地址读操作或写操作。
2 软件部分
2.1 视频层部分控制
TW2824减少图像像素的方式有2种,一种是对图像缩放,还有一种是对图像进行裁剪,截取原始图像中的部分像素。TW2824的4个模拟输入通道都有对应的寄存器来控制视频解码部分,通过对HDELAY,HACTIVE,VDELAY 及VACTIVE寄存器赋合适的数值即截取出原始图像中的1个有效区,本项目中对2个输入信号各截取一半。
经过解码器解码后的信号将输入到视频控制模块,TW2824支持视频分割功能,可以在对屏幕中进行分割显示。在不使用虚拟频道的情况下,TW2824可支持4频道实时显示,每个频道都有相应的寄存器来定义一个有效显示区。注意:若频道间存在区域重叠时,各个频道间默认有个优先级,优先级低的频道图像在重叠区域中将被优先级高的频道图像覆盖,这个优先级设置也可以由用户自己更改。利用此功能也可以方便地实现画中画、画外画功能。
2.2 OSD层字符叠加控制
TW2824提供5个层覆盖,优先级由低到高分别是视频层、二维边框层、一维边框层、字符层和鼠标层。优先级高的OSD层显示在优先级低的OSD层上方,对项目中用到的字符层覆盖,可以选择与视频层混合显示,也可以选择关闭视频层显示。
TW2824的X通道和Y通道都分别支持字符覆盖功能、对一个字符覆盖功能模块而言,它由1个字型RAM,1个显示RAM,和1个覆盖控制模块组成。字型RAM存储字型数据,一般为显示字符的点阵字库,它可以随时通过接口从MCU下载。而显示RAM则存储待显示字符的索引、位置及属性特征。显示字符大小可定义为水平方向8~14点,垂直方向10~16行。
字型RAM可存储4组不同的字符组,每组128个单元。每个单元可定义为水平方向8 (10,12,14)个点×垂直方向10 (12,14,16)点,注意一个点是由水平方向两个像素×垂直方向一像素构成,每个点用2 b表征该点颜色。注意一般采用英文字库为8×16点阵。而汉字字库则用16×16点阵,这样,在写字型RAM时,可用字型RAM的1个单元表示1个英文字符,而1个汉字字符则需要2个字型RAM单元表示。当待显示的不同字符较多,而由于TW2824的字型RAM单元有限,因此有必要对待显示的字符按画面分组,在每显示一画面前刷新TW2824字型RAM为待显示画面包含的字符字库。
字型RAM的写入过程以行为单位,注意只有在TW2824的FONTREQ为0,即TW2824不在传输忙状态时才可写字型RAM。写入到字型RAM的单元地址由寄存器FONTWRINDEX,FONTWRLINE, FONTWRFLD以及寄存器 FONTWRPAGE共同确定。
在将点阵字库写入到字型RAM后,根据需要要继续完成显示RAM的设置。TW2824的显示RAM包含45×29个字符属性,即在水平和垂直方向划分为这么多小块。水平和垂直地址表示待显示字符的位置,通过写寄存器CHARPATH,CHARVLOC 及 CHARHLOC完成。实际的可显示字符取决于单个字符的大小。写完显示字符位置后根据需要设置显示属性。显示属性包括是否与视频混合、字符闪烁、字符颜色、字符类型还是位图类型以及待显示字符在字型RAM中的索引,共12 b,占2个字节。在读写显示RAM时,TW2824支持同通道同行情况下的列地址自动加1模式,这为同行显示属性的连续读写提供方便。
注意,如果要使用TW2824的清屏功能,对TW2824的字型RAM为0的单元应该写入空白字符,CLASSEN0寄存器写0,这样当寄存器RAMCLR位写1时,大约用100 μs的时间TW2824将完成清屏操作。
3 结 语
利用单片机控制TW2824视频处理器,完成了对2路模拟视频信号采集,分割显示到1块液晶屏并叠加相应中英文菜单信息的工作。可推广到建立实时小区安防监控系统等应用领域。
摘要:在实际应用中,有对多路摄像信号采集并在一个显示设备中分割区域显示多幅图像及添加相应OSD字符信息的需要,TW2824是一款强大的视频控制器。以采集2路全电视信号为例,详细叙述由单片机控制,运用TW2824采集2路视频信号,经内部视频控制分割显示到1块液晶屏中的原理过程。详细叙述利用TW2824支持的OSD覆盖技术,在视频层上添加中英文字符OSD覆盖的原理过程。最终实现在一个液晶屏上监视显示2个模拟视频源信号,并叠加相应的中英文字符信息。
关键词:视频处理,在屏显示,点阵字库,画面分割,I2C,PAL,NTSC
参考文献
[1]Techwel1.TW2824 Datasheet[Z].
[2]王诗彬,林聪仁.用于嵌入式系统的汉字点阵提取方法[J].现代电子技术,2007,30(7):162 165.
[3]范庆辉,阳富民.基于TW2824的OSD技术研究与实现[J].计算机工程与设计,2007,28(10):2 469 2 471.
OSD技术 第4篇
视频媒体表现直观、承载信息量大,被广泛用于娱乐、监控和记录等领域。视频有实时性的要求,即为了保证连续性,播放帧的间隔必须大于人视觉的反应时间,在显示上表现为刷新率必须大于25帧/秒。GUI作为静态图像媒体具有交互性强的特点,大多应用程序的功能都是以图形界面的方式呈现给用户。GUI的交互性要求消息驱动,即行为是消息触发的随机事件,在显示上表现为按需刷新。因此,设计视频应用系统时为兼顾视频的实时性和GUI的交互性,就会遇到两者不兼容的问题,若都满足前者则耗费系统计算资源,仅满足后者就使视频失去媒体作用。
为了解决这个矛盾,人们提出了OSD,即把用户界面混合叠加到视频上。OSD大多由硬件实现,提供分辨率小、色彩数低的文字和图形显示接口,被广泛用于嵌入式系统[1]。而在桌面计算机上,缺少相关的硬件,折中的办法是把GUI显示和视频显示分开,但该折中在全屏显示时失效。为解决失效问题,本文提出了软件OSD设计和实现,并将开源GUI库移植到该OSD上。应用实例表明,在此GUI的API的基础上构建的Linux视频应用程序界面友好具有很好的交互性。
1 系统结构设计
按模块层次划分,普通图形化Linux程序涉及到应用、GUI层和抽象层。这三层典型的实现为:应用程序本身;GTK+或QT;X Window、Unix通用API等。增加软件OSD模块后的视频系统框架如图1所示,在竖直方向上按功能把模块划分为四层:应用层,数据层,OSD层,抽象层。其中软件OSD的模块包括数据层中的GUI处理和OSD混合。
1)应用层桌面计算机通用性强,很多特殊领域的应用都可以在其上实现。在多媒体方面高度集成后称为多媒体计算机,例如:数字电视播放,媒体浏览,视频监控,数字录像等。基于OSD显示的GUI封装了用户界面设计所需的API,应用程序只需象普通桌面程序一样关注界面功能设计即可。
2)数据层视频采集到的数据和GUI产生的数据不仅格式不同,而且如上一节所述有不同的特性。因此这两路数据必需分开处理。视频处理的数据结果保存在YUV面上,GUI处理的数据结果存放RGB面上。YUV面的内容根据应用不同而不同,而RGB面是软件OSD的关键部分。GUI本身的结构又可以分为很多模块[2],但本文关注是如何将GUI的GDI显示的结果映射为OSD的输入数据。
3) OSD层在得到视频和GUI处理的数据后,混合器实现两路数据叠加的功能,并将结果输入抽象层进行最终显示。该层是软件OSD的核心,如何加速混合算法和处理好视频的实时性和GUI的交互性是本文的重点。
4)抽象层该层包含在Linux操作系统当中,软件OSD使用抽象层封装的显卡的功能接口,加速图像的显示。
2 系统实现中的关键技术
2.1 数据格式的选择
OSD混合器的输入是视频处理后的YUV数据和GUI处理后的RGB数据,内部处理时必须统一为相同的格式。显然,有两种方案:统一为RGB,或统一为YUV。前者将视频的每一帧转换为RGB格式,计算量为所有像素转换总和;后者将重叠在视频部分上的GUI像素转换为YUV,计算量为界面所占像素大小。但是,GUI内容是按需更新的,无须实时更新,计算量大大减少。因此OSD混合器使用YUV数据格式。另外,显卡支持直接YUV输出,近一步减轻了CPU的负担。
2.2 OSD区域的表示
输入OSD混合器的两路数据中,视频数据是背景,GUI数据是前景。因此,OSD坐标系的原点建在背景的左上角,水平向右为x轴正方向,竖直向下为y轴正方向。前景和背景重叠部分就是OSD区域,用一个或多个矩形描述,并且只有这些区域需要和背景混合叠加。OSD矩形的数据结构OsdRect定义如图2所示:x、y、w和h表示矩形的位置和大小;ayuv指向该区域相应的AYUV数据(A表示带有alpha值)空间。OSD区域可以是不连续的块,即由若干个连续前景区域离散分布在背景上,这样做的目的是尽量的减少需要OSD混合叠加的像素。如图3所示中,虚线框是描述OSD区域所需的OsdRect。
每次创建一个界面控件就要生成对应的OsdRect,并确定位置和大小,裁剪重叠部分后分配剩下区域的AYUV数据空间。
2.3 OSD混合器
经过数据格式的确定和叠加区域的划分这两个步骤后,进入混合器的数据预处理就完成了,可以进行混和。视频的实时性要求混合器必须把每一帧视频都作为背景并混合入GUI前景形成对应的混合帧,这样才能使GUI和视频形成一个整体并共同显示。这一过程所做的工作包括两个阶段:a阶段,把GUI显示的RGBA数据转换为AYUV;b阶段,AYUV和视频YUV进行带alpha的混合生成混合帧。只要b阶段参与每一帧的混合就可以保证混合帧的实时性。如果将a、b两个阶段分开,a由GUI的消息驱动,b随视频实时混合,就可以在混合器中减去大约一半的计算量。
当由于GUI的刷新,上述两个阶段都必须执行时计算量变大。为了保证实时性,本文采用了并行计算延迟引用的方法。视频的实时性可描述为帧间允许的最大时间间隔Ti,即每隔Ti就必须显示下一帧。a、b阶段用两个线程分别执行,通过双缓冲交换数据。假设,自上一次得到混合帧以来逝去的时间为Te,则处理当前混合帧的时间Tb=Ti-Te,Tb就是b一次执行所能占有的最大时间。阶段b可能需要多个Tb才能完成刷新区域的数据转化,阶段a每次进行混合时都检查b数据转换是否完成,完成则交互双缓冲,使用新数据,否则界面无变化。OSD混合器工作流程如下图4所示。
2.4 算法的多媒体指令优化
OSD混合器需要处理大量视频数据,消耗很多CPU计算机时间形成计算瓶颈。为了解决这个问题,可以使用处理器提供的多媒体加速指令。并且大多桌面Linux运行在x86处理器上,该体系结构上提供了丰富的SIMD加速指令,例如MMX、3DNow、SSE1/2/3等。
为了充分使用这些指令,将算法分为过程控制和数据处理两部分,前者用C/C++编写,后者用相应的汇编指令编写。使用该方法后,OSD混合器中算法处理框架如图5所示,OSD-Builder中实现了算法的流程框架,当需要SIMD加速指令时通过TransAccelerator接口使用子类中的具体指令集的数据处理过程。实验表明,使用加速指令OSD混合器效率提高30%。
2.5 GUI移植
Linux平台上有丰富的开源代码,本文通过移植开源的GUI,使OSD混合器成为其图像接口,并向上层提供界面设计的API。本文采用ParaGUI,一个采用C++编写的控件丰富且代码精简的GUI库[3]。移植工作包括以下部分:
1) OSD区域关联在ParaGUI中每个控件都有一个绘制面,用于将效果显示在抽象的可绘制区域。因此要将控件所占区域映射OSD区域上,并分配用于保存AYUV数据的存储空间。
2)重叠检测上一步中分配空间时需要检测控件的重叠关系。当控件重叠在其他控件之上,则无须分配AYUV空间,因为这块RGB面已经被映射到OSD区域上。但OsdRect的位置和大小仍需确定,因为控件更新时需要将RGB面上相应的结果区域转换为AYUV。
以上两步在ParaGUI所以控件的基类PG_Widget的构造函数中完整。
3)显示重定向ParaGUI原本是以SDL作为显示层,即界面显示在SDL提供的可绘制平面SDL_Surface上,再由SDL通过X Window显示到物理设备上[4]。因此,需要将这绘制面改成便于OSD混合器访问的像素存储结构,即RGB面。之后,通过1和2中的关联,将RGB面映射为OSD区域。该部分工作主要是更改PG_Widget和PG_ThemeWidget类的重绘函数eventsBlit()函数,使GUI更新的像素封装到RGB面内。
经过以上三部分的更改,ParaGUI可以工作在OSD混合器上。借助ParaGUI提供的框架,用户界面设计变得更简单。
2.6 直接显示
OSD混合器输出数据为YUV格式的混合帧,不能直接写入Framebuffer,但该数据可通过图形加速卡直接被显示。Linux平台上直接显示的功能由X Window的视频扩展库Xv提供,该库支持在用户态下直接访问显卡。本文使用XvShmPutImage()函数与X Server共享内存,显示混合帧。
3 应用实例
本节将使用基于OSD的ParaGUI实现一个用于跑步机的电视播放终端。该终端要求在播放电视的同时,运行一个跑步健身软件。用本文实现的软件OSD可以方便地解决两者同时全屏幕显示的问题。
3.1 运行效果
电视播放终端运行效果如图6所示。
3.2 性能分析
PAL制式的电视的帧率是25帧/秒,即50场/秒,当采用基于场的电视播放算法时,要求场的间隔Ti不能小于20 ms。这意味着电视播放算法占用的时间加OSD处理的时间不能超过20ms,否则就会丢帧而导致画面抖动或不连续。
终端的硬件平台为嵌入式x86单板机:600 MHz赛扬处理器,Intel 852集成显卡,256MB内存;软件平台:Xubuntu 7.10,播放器的GUI所占大小为640480。刷新GUI时的测试数据如表1所示。
从表1数据可知,当GUI刷新区域过大时,2.3节中的b线程必须执行多次才能完成,导致GUI显示滞后。发生偶尔丢帧的情况是因为Linux线程库实时性不强的原因,即无法精确保证2.3节中的a线程等待Tb后恢复。综合上表所考察的指标,软件OSD在解决同屏显示的同时,也保证了视频播放的实时性、GUI的交互性和使用较少的计算资源。
4 结论
本文针对视频和用户界面无法共同显示的问题,在Linux平台上提出了基于软件OSD的视频应用程序框架,给出了基本结构,并就相关的关键技术进行了说明,同时实现了OSD层的功能并通过移植开源GUI对视频应用程序的GUI设计提供了丰富的API接口。应用实例表明,通过软件OSD混合器得到视频和GUI的混合帧,不仅能满足视频播放实时性的要求,而且保证了GUI的交互性,提高了视频应用程序对视频和界面显示的兼容性。
摘要:视频应用程序的GUI与视频无法同时显示,在对此问题分析的基础上,提出了Linux平台上基于软件实现的在屏显示技术OSD(On Screen Display)混合器的视频应用程序框架,讨论了实现的关键技术。并针对该混合器移植开源GUI,为视频应用程序的界面设计提供API。应用实例表明,实时性、交互性和复杂度均比较理想。
关键词:Linux,OSD,GUI移植,实时性,交互性
参考文献
[1]张贻雄,刘鹏,王维东,等.一种基于像素自适应仲裁的OSD分层混合结构设计[J].电路与系统学报,2008,13(4):20-23.
[2]Lou Qi,Luo Lei.A Universal Solution of an Embedded Multitasking GUI System[C]//proceedings of the Second International Conference on Embedded Software and Systems,Dec 16[2]18,2005.Hang-zhou: Zhejiang,c2005.
[3]Alexander Pipelka.ParaGUI Documentation[OL].http://www.bmsaustria. com/projects/paragui/doc/main.html.
OSD技术 第5篇
在船用测控系统中,需要在不同通道的模拟视频信号中混入船只的不同类型的实况信息数据,进而在测控中心监视器的指定位置上实现与图像信号的同时显示(On-Screen Display,OSD)。这样就可以为测控设备提供必要的提示信息,作为数据分析与解算的依据[1]。
随着多信息综合布线系统的快速发展及普及,在船用环境中采用双绞线传输视频基带信号的技术越来越受到重视。但视频信号在双绞线中传输时常遇到“频率失真”问题,其特点是:1)低频衰减最小,频率越高衰减越严重;2)双绞线越长,频率失真越严重,双绞线长度加倍,衰减的分贝数加倍。因此,双绞线传输设备的基本作用就是提供一定的放大增益,补偿双绞线的传输衰减。
基于船用测控系统的特定需求,本文设计了一套多路视频字符叠加和双绞线传输系统。将用户感兴趣船只的相关数据叠加到指定的视频信号上,然后经由采用有源差分信号发送放大器和接收器搭建的双绞线视频传输系统,可将视频信号传输至1~2 km,图像质量接近光纤传输的效果。
1 系统的硬件组成、接口及主要功能
1.1 系统组成
船用OSD和双绞线传输系统组成框图如图1所示。主要包括MCU(Micro-programmed Control Unit,微程序控制器)、多路视频字符叠加模块、多机通信模块和双绞线视频基带传输模块。
1.2 各模块的功能与特性
综合考虑系统的硬件设计需求,MCU选用PIC16F877A,它是整个系统的核心,控制多路视频的字符叠加,同时负责与前端的3个探测器进行实时RS-485通信。
多路视频字符叠加模块基于MAX7456搭建。它负责将前端探测器传送过来的船只的各种信息,诸如船横摇(纵摇、升沉)的角度、工作目标位置流速(流向等)、当前位置流速(流向)、船只当前航速(节)、当前位置(经纬度),还包括人工测量的各项数据,如表面流速(流向)、海水水温、潮汐潮高等,分别叠加到不同的视频上,最终传输到监控中心的DVS(Digital Video Server,网络视频服务器)[2,3],并可根据需要显示到不同的监视器上。
多机通信模块基于GM8123设计。通过SN65176分别与前端的探测器相连接,即可实现MCU与多个探测器的实时RS-485通信。
双绞线视频基带传输模块由视频发送和视频接收组成。其中,视频发送包括非平衡-平衡转换和驱动,视频接收包括接收匹配补偿及平衡-非平衡转换。
2 系统的硬件设计
2.1 多路视频字符叠加模块的电路设计
在本系统中,相邻的3路视频信号和3路探测器信号组成一个“前端模块”,经由双绞线传输至监控中心的DVS。理论上,可根据需要及DVS的输入视频通道数扩展多个这样的“前端模块”。
MAX7456是单通道OSD发生器,用户可以方便地利用它在动态视频上叠加定制的字符和图形[4]。其不需要外部视频驱动器、同步分离器和视频开关,大大降低了系统成本。另外,MAX7456预装了256个字符和图形,并可通过SPI接口在线编程,这样,用户可根据需要任意调用或改写其上的字符存储器中的内容。
MAX7456提供一个TTL时钟输出(CLKOUT),可驱动另一个MAX7456的CLKIN引脚。使用外部时钟驱动器可驱动两个或多个MAX7456元件。这样,即可通过一片带有晶振的MAX7456为多个MAX7456元件提供时钟信号。MAX7456极大地简化了视频字符叠加器的设计,有效克服了传统视频字符叠加器的缺点,提高了系统的可靠性,降低了系统成本。
多路视频字符叠加模块的主要电路可参见文献[5]中的图25。
2.2 多机通信模块的电路设计
每个前端模块包括3个探测器,它们均通过RS-485总线不定时地与MCU进行数据交换。考虑到这种通信的“随机性”,采用GM8123和SN65176搭建了多机通信模块。GM8123芯片的外部控制少、应用灵活、编程使用简单,可为用户提供最简单和高性能的串口扩展方案。这样,3个探测器可同时与MCU进行数据交换。多机通信模块的主要电路如图2所示。
2.3 双绞线传输模块的电路设计
为解决视频信号在双绞线介质中传输时所遇到的“频率失真”问题,在设计视频传输模块时,应保证其“补偿特性”与双绞线的“频率失真”特性相反、互补,即“补偿特性”应该是:视频传输模块的增益必须具有“频率越高增益越大”的基本特点。只有这样,才能实现视频信号特性的真正恢复。同时考虑到每个前端模块中的视频通道数,选用EL5371[2]和EL5372[3]来搭建视频传输模块。EL5371是差分信号发送放大器,可同时完成3路非平衡信号到平衡信号的转换。EL5372是差分信号接收放大器,可同时完成3路平衡信号到非平衡信号的转换。另外,它们的增益均由外接电阻设定,因此可根据不同的现场应用环境灵活地调整视频信号的电压增益。
基于EL5371和EL5372的双绞线视频基带传输模块如图3所示。
图3中,EL5371的电压增益由外接电阻RF和RG设定,计算公式为
VOCM=VREF=0 V (2)
EL5372的电压增益由外接电阻RF和RG设定,计算公式为
3 系统的软件设计
系统程序同样采用模块化设计,由主程序、系统初始化子程序、中断判断及子串口选择子程序、信息接收子程序和字符叠加子程序等模块组成[6],主程序流程图如图4所示。
4 试验结果
在温度为41℃、湿度为92%的船用环境中,经双绞线传输950 m后,测控中心监视器得到的视频截图如图5、图6所示,所有视频清晰流畅、无拖尾,字符醒目、无闪烁。
5 结论
船用环境下的试验结果表明:本系统工作稳定可靠,完全满足船用测控系统的需求,同时也顺应了多信息综合布线技术的发展潮流。设计采用模块化方式,硬件系统具有集成度高、稳定性好、抗干扰能力强、后期维护方便的特点。
另外,本系统中的各个子模块具有良好的可移植性,比如“多路视频字符叠加模块”可广泛应用于任意的“需要在模拟视频信号中混入信息数据”的场合,“双绞线传输模块”适用于任何需要进行“非平衡-平衡转换”和“平衡-非平衡转换”的应用。
摘要:在船用测控系统中,需要将船只的各种信息数据叠加到指定的视频信号中,然后经由双绞线传输并显示到测控中心的监视器上。结合船用测控系统的需求,采用模块化的设计方法,开发了多路视频字符叠加和双绞线传输系统。船用环境下的应用结果表明:本系统工作稳定可靠,完全满足设计要求。
关键词:模块化设计,随屏显示,基带视频,双绞线传输,船用测控
参考文献
[1]彭晓钧,吴敏渊,王卫平,等.基于双线阵CCD的EPC/CPC测量系统的电路设计与实现[J].光电子技术,2006,26(1):57-61.
[2]STIPANICEV D,MARASOVIC J.Networked embedded greenhouse mo-nitoring and control[C]//Proc.2003 IEEE Conference on Control Appli-cations.Istanbul:IEEE Press,2003:1350-1355.
[3]ARJESH K,SRIDHARAN K,SRINIVASAN K.The design and develop-ment of a web-based data acquisition system[J].IEEE Trans.Instruc-tion and Measurement,2002,51(3):427-432.
[4]汪辉,王昌明,宋高顺,等.基于MAX7456的字符叠加系统设计[J].电子设计工程,2010,18(7):181-183.
[5]MAX7456.Single-channel monochrome on-screen display with integratedEEPROM[EB/OL].[2012-02-20].http://datasheets.maxim-ic.com/en/ds/MAX7456.pdf.
OSD技术范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。