OSD是on-screen display的简称,即屏幕菜单式调节方式。一般是按Menu键后屏幕弹出的显示器各项调节项目信息的矩形菜单,可通过该菜单对显示器各项工作指标包括色彩、模式、几何形状等进行调整,从而达到最佳的使用状态。
它通过显示在屏幕上的功能菜单达到调整各项参数的目的,不但调整方便,而且调整的内容也比以上的两种方式多,增加了失真、会聚、色温、消磁等高级调整内容。像以前显示器出现的网纹干扰、屏幕视窗不正、磁化等需要送维修厂商维修的故障,现在举手之间便可解决。
另外在OSD选项里还可以调整显示的位置、无动作关闭显示的时间
OSD 是 On Screen Display 的缩写,是应用在 CRT/LCD 显示器上,在显示器的萤幕中产生一些特殊的字形或图形,让使用者得到一些讯息。常见於家用电视机或个人 PC 电脑之显示萤幕上,当使用者操作电视机换台或调整音量、画质等,电视萤幕就会显示目前状态让使用者知道,此控制 IC 可在萤幕上的任何位置显示一些特殊字形与图形,成为人机界面上重要的讯息产生装置。
日益华丽的车载电视OSD开发占据了固件工程师大量的时间,采用结构化的OSD设计可以缩短开发时间,提高代码质量。现在介绍OSD的实现方法、OSD类型、OSD的UI基本元素及定义基础上,详细分析了使用结构化的OSD UI处理机制实现OSD开发的方法和思路。
随着具有各种丰富功能的车载影音产品不断上市,日益华丽的OSD界面设计占据了固件开发工程师大量的开发时间。不少的固件工程师不断地重复着同样的工作:为每一个机种编写着同样的OSD文字、图形及人机交互的界面(UI)互动代码。在UI及OSD较复杂的系统里,该部分的代码量高达30-60%,同时,调试不健壮的UI代码也将占用大量的系统调试时间。
车载电视的UI主要具有建立在机器上的按键和红外遥控器等输入以及OSD、蜂鸣器等输出,OSD的主要作用是提供一个直观的图形界面,帮助用户完成各种对机器的控制和信息获知等任务。随着系统处理能力的提高,现在的OSD甚至可以提供内建游戏、记事本和万年历等各种附件功能。本文主要讨论的是OSD固件的设计及与之相关的UI控制,并试图提供一个关于车载电视中UI的定义和解决方案,缩短固件工程师在UI OSD界面构造上的时间。本文中的概念及方案同样适用于其它具有点阵显示控制任务的场合。
OSD的主要实现方法和类型
目前有两种主要的OSD实现方法:外部OSD发生器与视频处理器间的叠加合成;视频处理器内部支持OSD,直接在视频缓存内部叠加OSD信息。
外部OSD发生器与视频处理器间的叠加合成的实现原理是:由一个MCU内建的字符发生器及显示缓存,利用快速消隐(Fast-Blank)信号切换电视的画面和OSD显示内容,使OSD的字符等内容叠加在最终的显示画面上,在OSD和显示画面叠加处理过程中,通过调整两者之间的比例可以实现OSD的半透明 (Blending)效果。同时,对OSD信号中的红绿蓝信号进行重新编码,可以得到不同的OSD颜色效果。
另外一种实现方法是视频处理器内部支持OSD,直接在视频缓存内部叠加OSD信息。这一类视频处理通常具有外部存储器或内部少量的行缓存,同时具有OSD发生器,OSD的合成和控制直接在视频缓存内完成,同样具有上述的半透明和颜色控制功能。
OSD具有字符型(Font-Based)和位图型(Bit-Map)两种类型。
字符型OSD(属于字符型):为了节约显示缓存,早期及低成本的解决方案中使用字符型OSD发生器,其原理是将OSD中显示内容按照特定的格式 (12×18、12×16等)进行分割成块,例如数字0-9、字母a-z、常用的亮度、对比度符号等,并把这些内容固化在ROM或Flash中,在显示缓存中仅存放对应的索引号,这样的“字典”结构可以大幅度减少显示缓存的需求。同时,为了提供对每个字符的颜色等属性的控制,通常还具有一个与显示缓存一样大小的属性缓存,其属性(前景颜色、背景颜色、闪烁等)对整个字符中的每个像素有效。为了弥补这种方式不能为每个像素指定颜色的缺点,OSD发生器的设计者提供了采用多个显示缓存合并的方式呈现多色字符的方案。其原理是每个显示缓存确定一种颜色方案,当两个甚至更多个显示缓存合并以后就可以“拼凑”出超过两种颜色的多色字符。字符型OSD优点是可以使用OSD内部较少的显示缓存,并且MCU只需要指定显示内容的索引即可显示对应OSD信息,可以在比较低速的MCU上实现。但正是由于上述的显示信息和颜色编码方式不够直观,会给字符型OSD的固件开发带来一些麻烦。通常液晶显示器、低成本的车载电视和家用 CRT传统电视上均使用这一类OSD,目前仍占据着市场主流地位。