zoukankan      html  css  js  c++  java
  • OSD(On Screen Display )技术(转)

    源:OSD(On Screen Display )技术

        OSD 是 On Screen Display 的缩写,是应用在 CRT/LCD 显示器上,在显示器的荧幕中产生一些特殊的

    字形或图形,让使用者得到一些讯息。常见于家用电视机或个人 PC 电脑之显示荧幕上,当使用者操作电视机

    换台或调整音量、画质等,电视荧幕就会显示目前状态让使用者知道,此控制 IC 可在荧幕上的任何位置显示

    一些特殊字形与图形,成为人机界面上重要的讯息产生装置。

     

           OSD核心是利用字符发生芯片在显示器的屏幕上显示需要的字符。

    常用的OSD芯片有MAX4455、OSD7556、UPD6465、MB90092等。

    技术方式是:与图像实时同步附加或改变图像中某些像素的颜色,使之组合成人类可以在图像中辨识的数据。

    以固定或不固定的方式,改变某个特定的OSD控制暂存器,即可达到动态的效果。如:在荧幕上产生由左向右

    移动的OSD字形,只要将控制左右位置的OSD控制暂存器依序填入由小变大或由大变小的数值,OSD输出字形

    自然随更改的数值而做左右移动。

     

     

    --------------------------------------------------------------------------------

    Q1: 什么是同步讯号?OSD如何在荧幕上产生字型和图型?

    在 CRT/ LCD 显示器的工作原理都是由水平与垂直同步信号来产生一个完整的画面控制,外界可在

    适当时间点产生影像信号,即可在荧幕上产生影像。 OSD 的工作方式必须与原影像信号中的水平与

    垂直同步信号做同步动作,如此才可在原先的画面上的某一个位置上产生所要的影像信号,好比看 

    HBO 电影,在荧幕上会有频道的字形产生,或是音量大小的图形出来。

    --------------------------------------------------------------------------------

    Q2: 什么是 IIC Bus 控制型OSD?如何去控制OSD的动作?

    IIC Bus 是数位控制方式的控制界面,外界经由此控制界面送出 0 与 1 信号所组成的特殊波形

    来指挥 OSD 的动作,例如让 OSD 在荧幕的某个位置上产生出英文 A、B、C …等。OSD 内部

    有许多个控制暂存器,各有不同的功能,这些暂存器都有唯一而且固定的位址,只要 外界透过

    IIC Bus 上,送出数值信号来指名某个暂存器以及填入某个特定的数值,即可控制 OSD 的动作。

    --------------------------------------------------------------------------------

    Q3: 为何 OSD 在画面上会有动态效果?

    外界透过 IIC Bus 界面,以固定或不固定的方式,改变某个特定的 OSD 控制暂存器,即可达到动态的

    效果。例如:在荧幕上产生由左向右移动的 OSD 字形,只要将控制左右位置的 OSD 控制暂存器,

    依序填入由小变大或大变小的数值, OSD 输出字形自然随更改的数值而做左右移动。

    --------------------------------------------------------------------------------

    Q4: 为何 OSD 内部使用到 PLL 技术?什么是Pixel Rate?

    由于OSD同步于原影像信号,但是要在荧幕的固定位置产生一个固度的字形或图形,就必须由

    原先的影像水平同步信号,利用 PLL 倍频技术来产生 OSD 画面的点频率,而这个点频率就是 

    Pixel Rate 点频率必须稳定而且相位固定,否则 OSD 的字形或图形会在荧幕上产生抖动现象。

    --------------------------------------------------------------------------------

    Q5: 什么是Font ? 什么是PWM O/P ? 应用在何种产品上?

    控制 OSD 在荧幕上产生特殊的字形或图形,每一个字形或图形是由矩阵点来形成,例如 HBO

    的H是由 12 X 18 或 15 X 20 的矩阵中产生特殊点来构形 H 的图形,好比是运动会场上,啦啦

    在排字幕的原理是一样的。为免除产生一个画面的繁杂打点的工作,OSD 平身就已经内建好一些

    字形 (Font),供外界直接选择,好像啦啦队长吹口哨二个声,排字幕的人员就预先将排录好的

    动作自动做出来一样。

    --------------------------------------------------------------------------------

    Q6: 什么是Color Font ? 与一般的 Font 有何不同?

    OSD 的字形 (Font) 是由点矩阵打点所形成,并且这些点在画面上是可以指定其颜色,可是一般的

    Font 的颜色是固定为某一种颜色;在 Color Font 的字形,这些点可分别指定为不同颜色。注意的是 

    Color Font 可指定愈多不同颜色值,则产生字形所需的硬体就愈复杂。

    --------------------------------------------------------------------------------

    Q7: 什么是Fade In 和 Fade Out ?

    在打开 OSD 的画面时,OSD 字形或图形在荧幕上的显示方式可以渐进逐渐拉大 OSD 显示区域,

    直到正常画面显示完毕为止,这称为 Fade In 。反之在关闭 OSD 画面时,荧幕逐渐拉小 OSD 

    显示区域,直到 OSD 画面消失为止,称为 Fade Out。

    --------------------------------------------------------------------------------

    Q8: Font 的Bordering 和 Shadowing 是什么效果?

    在字形的外围产生沿着字形产生一个输廓的特效,称为 Bordering,若是在原字形右边及下边

    产生阴影特效,称为 Shadowing,这两种特效可用来突显标题,需要醒目的显示方式之用。

    --------------------------------------------------------------------------------

    Q9: 什么是Auto Sizing 功能? 应用在何种产品上?

    目前 CRT/ LCD Monitor 的画面,上下/左右位置与大小需要调整时,必须由使用者自行在

    荧幕上的控制按键来调整。新型的 Monitor 能够在切换不同的操作频率时,系统自行调整

    至最通常之位置与大小,免除使用者动手负担,这种可以由 Monitor 自己本身对画面上下/左右

    之位置与大小做通常的调整的功能,称为 Auto Sizing。 目前联咏科技 NT6829 OSD 产品即

    有提供此功能,可广应用在 CRT/ LCD Monitor 产品上。

    --------------------------------------------------------------------------------

    Q10: 何谓显示器控制器 ( Monitor Controller ) ?

    显示器控制器为整部显示器系统的控制核心,接受由电脑所送出之影像讯号及相关控制讯号,

    来负责整部显示器的控制动作。这好比是人的大脑一般,接收外界讯息来作反应。

    --------------------------------------------------------------------------------

    Q11: 何谓快闪记忆体 ( Flash Memory ) ?

    快闪记忆体 ( FLASH MEMORY ),为目前最热门的新一代记忆体技术,平常使用状况下,

    Flash Memory 为唯读记忆体,但在特别软、硬体驱动下,可以对其写入资料,且可多次重复写入。

    --------------------------------------------------------------------------------

    Q12: 使用 Flash ROM 有何优点?

    ROM 是唯读记忆体,NT68F62 的 ROM 内存放了整个显示器控制器的程式,它负责整部

    显示器的控制工作;而采用了快闪记忆体技术后,在特别驱动方式下,可以对显示器内部

    程式进行更新, 将控制的动作做调整。

    --------------------------------------------------------------------------------

    Q13: 何谓 ISP ? 有何功能 ?

    利用快闪记忆体可重复读写的特性,联咏开发出了一套 ISP (In-System Programming) 技术,

    可在不拆显示器外壳、不破坏显示器外观下,透过显示器外部的 VGA Cable 就可直接更改

    显示器内部控制程式进行更新。

     -----------------------------------------------------------------------------------------------------------------------------------

    转自百度百科: http://baike.baidu.com/view/116576.htm

    基于SoPC的视频跟踪系统中OSD功能的实现

    转自: http://www.ednchina.com/ART_97134_18_35474_AN_d7e464c1_2.HTM

     OSD(On Screen Display)是指将系统的参数和状态信息在屏幕上显示出来,在电视机、录像机等家电产品中这种技术早已广泛应用。视频跟踪系统要求进行数字、符号、跟踪窗的实时显示,即具有OSD功能,包括无视频输入指示、锁定指示、跟踪状态和性能指示、显示脱靶量数据及其他操作参数等。

      OSD的实现方法基本上有三种:使用专用OSD器件;选用支持OSD功能的处理器;采用PLD。在实时性要求较高的视频跟踪系统中,需要使用大规模FPGA进行并行图像处理,并且在FPGA中实现SoPC设计,同时应能减小系统的体积和成本。如果只选用专用OSD器件或带有OSD功能的处理器反而会增加系统硬件设计的复杂度,降低系统的可靠性。因此,有必要采用与SoPC系统相结合的OSD实现方案。

      1 视频跟踪系统

      基于SoPC技术的视频跟踪系统框图如图1所示。系统采用Altera公司的Stratix 系列FPGA及Nios Ⅱ软核处理器实现SoPC设计,将图像处理、目标识别与跟踪等协处理单元挂在Nios Ⅱ处理器上,并通过SPI、I2C等IP-Core实现对操纵杆、视频编解码器等设备的控制。系统支持PAL-D(576i25)标准输入输出。

     

      2 OSD实现方案

      2.1 SoPC系统的配置结构

      在SoPC系统中,实现OSD功能要与如图2所示的SoPC系统的配置结构相结合,系统采用Altera公司的MAX-II器件作为配置控制器,在系统启动(boot)时负责将FPGA的配置数据从外部Flash Memory传送到Stratix中。这里将OSD字符/图形库以只读数据的形式存放在外部CFI-Flash中,CFI-Flash同时装有FPGA的配置数据和软件程序,配置结束后MAX-Ⅱ需要将连接CFI-Flash的全部总线置为‘Z’,这样Nios Ⅱ处理器才能够获得CFI-Flash的总线使用权,以读取程序和OSD数据。

     

      2.2 OSD实现结构

      OSD实现框图如图3所示。这里采用了FPGA中的一个M-RAM作为OSD缓存,其中每位与视频中的一个像素映射。因PAL-D复合视频信号为隔行扫描,因此,OSD缓存中的数据按奇/偶场方式存放,每场占用720×288/8=25 920B,M-RAM大小为64KB,可实现全视场范围的单色OSD映射。OSD缓存被定义为双口方式,输出与视频数据流同步。

     

      OSD缓存的数据位宽可定义为2n(n=0,1,…),但应该注意:数据位宽选得越大,NiosⅡ处理器的访问速度就越快,而OSD的水平方向定位也越复杂;数据位宽选得越小,水平方向定位越精确,但访问速度也会越慢,且实时性差。因此,进行折衷处理,选择lpm_width=8。

      M-RAM的读地址要根据行、场同步信号生成,图像原始分辨率为864×625,则水平计数器Cnt_Hor和垂直计数器Cnt_Ver为10bit宽,Cnt_Hor的异步清零端接脉冲化后的行同步信号HSYNC,Cnt_Ver的异步清零端接脉冲化后的场同步信号VSYNC。在有效图像分辨率为720×576范围内,使能地址计数器Cnt_Rd_Addr、Cnt_Rd_Addr的计数时钟为像素时钟的8分频,即每8个像素时钟读取一个数据,Cnt_Rd_Addr的异步清零端接脉冲化后的场同步信号VSYNC。

      OSD缓存读地址生成逻辑如图4所示。图中,1.6875MHz时钟脉冲化后接74165的STLD(并行数据加载信号),每隔8个像素时钟载入一个字节的OSD数据并串行输出。图5为最简单的OSD合成逻辑,图中,bit→piexl的映射逻辑用一个8位并-串转换器74165实现,使用两个8bit的Mux2_1,如果ctrl_bit等于‘0’,则YCbCr输出原图像数据;如果ctrl_bit等于‘1’,则Y输出0xEB,CbCr输出0x10。

     

     

    2.3 OSD API

      OSD API的实现包括:创建API硬件接口;建立字符/图形库;OSD显示驱动函数(包括字节重构、字符显示、图形显示、消隐等)。

      API硬件接口可以通过SoPCBuilder建立,包括16位地址OSD_ADDR、8位数据OSD_DATA、写使能OSD_WEN和OSD缓存的异步清零信号OSD_ACLR。由于M-RAM不能设置初始数据,因此上电后首先将OSD_ACLR置位,然后对OSD缓存初始化后,再将OSD_ACLR置零,以免开机时系统出现花屏现象。

      字符/图形库可以通过字模提取软件得到,并定义到unsigned char const型数组中。打开Nios Ⅱ IDE中的System Library Properties窗口,将read-only data memory(.rodata)项设为ext_flash,即将OSD库放在外部的CFI-Flash中。

      OSD数据写入缓存时要注意两个关键问题,一是垂直方向上的隔行处理,即按照奇偶场规则写入缓存;二是水平方向上的字节拆分与重构,因为OSD缓存是整字节(8bit)访问的,为了实现字符/图形的像素级定位,该操作是必要的。例如,为了在位置3开始叠加如图6所示的11个bit‘1’,需要补5个bit的‘0’,并将重构后的“0x3f、0xf8”写入OSD缓存,该操作由软件完成。

     

      3 结果与结论

      OSD实现效果如图7所示,监视器上叠加有字符、数字和图形,如果进一步设计,还可以实现彩色OSD、画中画以及透明效果,本文只是对这一方案进行了初步验证。

     

      实际应用证明,本文提出的设计方案新颖、合理,能够有效减小视频跟踪系统的体积、降低系统复杂度和成本,具有极大的实用价值。

  • 相关阅读:
    开放源码的对象关系映射工具ORM.NET 插入数据 Insert/Update Data
    开放源码的对象关系映射工具ORM.NET 快档开发入门 Quick Start
    .NET 动态脚本语言Script.NET 开发指南
    开放源码的对象关系映射工具ORM.NET 删除数据 Deleting Records using ORM.NET
    .NET Remoting过时了吗?为什么公司的项目还是选择用.NET Remoting,而不是WCF?
    开放源码的对象关系映射工具ORM.NET 查看和显示数据 View and Display data using ORM.NET
    开放源码的对象关系映射工具ORM.NET 查询表 调用存储过程 增加自定义代码
    技术人生:坚持,每日一博
    CQRS:CQRS + DDD + MDP 实现快速应用程序开发
    NodeJs:Happy代码生成器,重构了代码,更新了文档,完善了示例,欢迎下载使用
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/4544105.html
Copyright © 2011-2022 走看看