osd的原理

news/2025/1/11 12:44:45/

OSD(On Screen Display)是屏幕显示技术的一种,用于在显示终端上显示字符、图形和图像。

显存,也被叫做帧缓存,它的作用是用来存储显卡芯片处理过或者即将提取的渲染数据。如同计算机的内存一样,显存是用来存储要处理的图形信息的部件。我们在显示屏上看到的画面是由一个个的像素点构成的,而每个像素点都以4至32甚至64位的数据来控制它的亮度和色彩,这些数据必须通过显存来保存,再交由显示芯片和CPU调配,最后把运算结果转化为图形输出到显示器上。

显存计算:
width * height * PIXEL_SIZE(位深度)
8bit  16bit  32bit
U32 *p = (U32*)GetMemoryAddr();
p[y * width + x] = 0xffff0000;
比如分辨率是1280*720,图像模式是ARGB8888,你的显存buffer就是1280*720*4。如果是ARGB1555,1280*720*2,4和2代表位深度,也就是字节数

分辨率1280*720,图像模式是ARGB8888,一块屏幕上,一行有1280个像素点,一列有720个像素点,一个像素点由4个字节的数据来控制

实现的过程为:显存的内容与显示终端上的像素一一对应。这种一一对应的关系一般通过寄存器设置,然后由硬件上来负责实现。对存储器内容的操作便改变了屏幕的像素,从而可以实现特定界面的显示。实际上这也是一般数字显示器进行显示的方法。例如:320*240 单色(1 Bit)像素的OSD,需要40*240 Bytes的存储空间与其对应;320*240 16色(4 Bits)像素的OSD,需要160*240 Bytes的存储空间与其对应

现在已经可以通过修改存储单元内容来改变OSD的像素,但还有个关键的问题是如何根据需要来进行操作,即如何将某个像素设置为指定颜色。接下来就要介绍一下色板的概念。

某个Byte中的低四Bit内容与一个像素一一对应,其值为“3”,那么数字“3”所代表的颜色便由色板来决定,然后再驱动OSD屏幕将像素设置为制定颜色。同样地,

这种色板和物理OSD显示屏幕的对应关系一般也是通过寄存器设置,由硬件上来保障实现的。对于特定的显示环境,这种色板一般是固定的


目前有两种主要的OSD实现方法:外部OSD发生器与视频处理器间的叠加合成;视频处理器内部支持OSD,直接在视频缓存内部叠加OSD信息。


1.外部OSD发生器与视频处理器间的叠加合成的实现原理是:由一个MCU内建的字符发生器及显示缓存,利用快速消隐(Fast-Blank)信号切换电视的画面和OSD显示内容

使OSD的字符等内容叠加在最终的显示画面上,在OSD和显示画面叠加处理过程中,通过调整两者之间的比例可以实现OSD的半透明(Blending)效果。同时,

对OSD信号中的红绿蓝信号进行重新编码,可以得到不同的OSD颜色效果。


2.另外一种实现方法是视频处理器内部支持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,

目前仍占据着市场主流地位。


相较字符型OSD,位图OSD的处理原理较直观和简单:通过对最终显示内容上特定区域的每个像素点进行改变,直接将OSD信息叠加到最终的显示画面上,

其按像素进行控制的方式可以保证具有多色及足够的表现能力。位图OSD发生器通常内建在视频处理器内部,并共享使用其主显示缓存。也有独立在视频处理器之外

的专业OSD位图发生器,如美信的MAX4455,通常这一类芯片需要外部SDRAM作为显示缓存。


位图OSD的显示效果理论上可以做到非常完美的程度,可以提供类似Windows中具有立体感的各种物件,如具有阴影的按钮、颜色丰富的图形和文字等,其缺点是必须具有

足够的OSD显示缓存,以及按像素进行处理而对MCU带来的速度要求。通常在大尺寸的高端平板电视和专业显示器上会使用这一类OSD。随着技术的不断发展和存储器的成本

的不断下降,未来的OSD应该都是位图型的。

osd绘制一般会采用双buffer的缓存机制

一个buffer是我们能看到的,一个是看不到的,绘制的时候先把看不到buffer数据处理好,真的绘制的时候,把这个buffer 的数据拷贝到看得到的buffer里面


http://www.ppmy.cn/news/494978.html

相关文章

Ceph OSD简介

Ceph OSD是Ceph存储集群最重要的组件,Ceph OSD将数据以对象的形式存储到集群中每个节点的物理磁盘上,完成存储工作由OSD Daemon进程完成。集群中一般包括OSD节点,对于对象数据的读写,client首先是从Monitor节点获取Cluster Map信息…

OSD

OSD OSD是on-screen display的简称,即屏幕菜单式调节方式。一般是按Menu键后屏幕弹出的显示器各项调节项目信息的矩形菜单,可通过该菜单对显示器各项工作指标包括色彩、模式、几何形状等进行调整,从而达到最佳的使用状态。 它通过显示在屏幕上…

对象存储(OSD)及架构原理

什么是对象存储(OSD)? 存储局域网(SAN)和网络附加存储(NAS)是我们比较熟悉的两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存…

四旋翼飞行器14——无人机中的OSD、数传、图传、FPV是什么?

四旋翼飞行器14——无人机中的OSD和数传是什么? 一、什么是OSD(无人机领域) 无人机OSD指是视频叠加系统,就是把飞行器的状态,也就是各个模块的数据,比如你装风速仪、高度仪、陀螺仪、电量监控等&#xff…

基于Java网上医院预约挂号系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

第62篇:批量去除EXCEL文件密码

Sub 清除密码() Excel.Application.ScreenUpdating False arr Sheet1.UsedRange.Value For 行号 2 To UBound(arr) 文件 "此处写文件路径 以\结尾" & arr(行号, 1) & ".xlsx" Set w1 Workbooks.Open(文件, Password:arr(行号, 2)) w1.Passwor…

Excel打开密码怎么解除

时间久了,自己给excel文件设置了打开密码的密码可能就忘记了,或者在网上下载的excel文件带有打开密码。不知道密码或者忘记密码都导致不能打开excel文件。那么我们遇到这种情况就可以通过使用奥凯丰 EXCEL解密大师进行密码的破解。 破解打开密码&#x…

解除excel打开密码

excel文件打开时需要输入密码,有时候我们可能会在网上下载了一些带有打开密码的excel文件,有时候我们自己设置了打开密码但是忘记了,这都导致我们没有办法再打开excel文件了,如何解除excel文件的打开密码呢? 我们没有…