DM6446 OSD

TMS320DM6446支持背景窗颜色,两个视频窗口,两个OSD窗口,一个指针(cursor)窗口。它们以递增的顺序排列:
一个特有的第二个OSD窗口(OSDWIN1)可以用来配置成属性窗口来控制视频窗口和第一个OSD窗口(OSDWIN0)的混合(如透明度)。因为“alpha”混合功能是OSDWIN1最通用的功能,所以以下就主要讨论第一个OSD窗口(OSDWIN0)用来显示OSD图片,以及第二个OSD窗口(OSDWIN1)用作属性窗口来控制混合。

OSD窗口可以配置成接收RGB565或者bitmap数据。一般情况,RGB,BITMAP和原始图像数据格式(raw data format)在技术行业是可以交换的。如果每个像素使用的bit数一样,那么这些格式就一样。在达芬奇处理器上却不是这种情况。它们提供了配置成RGB565 或者 bitmap的选项。当OSD窗口配置成接收bitmap数据,它就使用256条目的颜色查找表(CLUT)。这意味着最大颜色深度是8bit(4,2,1bit的也支持)。当OSD窗口配置成接收RGB565数据,CLUT就不需要的了,因为RGB数据在外部存储器中先转换成YCBCR;RGB565使用16bit/pixel,因此能接收64k颜色。两个窗口都可以同时配置成接收bitmap数据。然而,只有一个OSD窗口可以配置成接收RGB565数据二不能两个都配置。因此,如果第二个OSD窗口用作属性窗口,第一个OSD窗口最好使用RGB565模式,主要因为它可以存取16bits(64k颜色)。 Linux 有两个重要的驱动结构,块驱动和特征驱动块驱动允许无须存取并能挂载到文件系统中。包括了硬盘驱动,外部RAM,及copmpact flash驱动。Character驱动读取作为流,以FIFO顺序(如音频视频)。所以大家会测出,OSD功能是作为character(视频驱动)驱动。 Linux的另一个的特征是character驱动能以类似的方式存取文件。这意味着你可以open,write,close这些设备跟操作文件一样。从Linux的命令提示下,你可以copy(cp),display(cat) 及pipe(>>)数据从一个文件到另一个文件中。这个强大的特征允许把数据放到OSD窗口中而不用写任何的代码。 达芬奇平台提供了访问视频硬件的两个Linux驱动,V4L2视频采集驱动(视频处理前端VPFE --- davinci_vpfe.c)和FBDev(即Framebuffer设备)显示驱动(视频处理后端VPBE ---- davincifb.c)。

(1)Video for Linux 2(V4L2)是一个标准的,二级Linux视频输入驱动,它修正了第一版的一个bug。

(2)FBDev是一个标准的Linux视频输出驱动,用来映射显示设备帧存。如DaVinci处理器到user空间。

Linux frame buffer display device(ie. FBDev 驱动)包含了OSD特征。帧存驱动提供了显示硬件的概括。它令视频输出硬件(OSD亦如此)作为一个帧存设备。并因此允许软件访问图形硬件就像写入一个缓冲区。跟上面提到的一样,输出设备缓存存取跟访问文件一样,一般定位在 /dev 路径中。在这种情况下,这个路径我们感兴趣的是改变DaVinci OSD 是/dev/fb/0。使用这个路径,我们能修改显示,而只是通过一个定义好的接口。它的操作包括跟文件一样(如open, read,write,close)的操作和设备指定的命令(ioctls 来查询/设置关于硬件的信息)。

我们应该熟悉下面的命令:

cp – copy (e.g. >cp osd.r16 /dev/fb/0 --copies osd.r16 file to /dev/fb/0 设备)

把以上的几点放到一起,通过写一个简单的命令(>cp osd.r16 /dev/fb/0)就可以把osd.r16的内容复制到OSD帧存中,并能显示。Osd.r16文件从哪里来呢?这个文件包含了现有显示到OSD的内容;因此通过图像编辑器(如GIMP)编辑好图像后,通过运行转换工具(tar.gz 文件中)就可以转换。但是GIMP要创建什么样格式的文件呢?推荐的格式是BMP。

步骤如下:

(1)创建OSD图像通过图像编辑器(如GIMP)并且保存为BMP文件。

(2)运行小程序来转换为RGB565格式。>.bmpToRgb16 mysod.bmp,这个命令就会产生osd.r16文件。

(3)把转换后的文件复制到OSD帧存中。>cp osd.r16 /dev/fb/0

(4)重复以上的几步,直到满意。保存osd.r16文件,它就可以被应用程序加到源代码中了。
需要指出的是属性窗口不应该设置为100%视频(所有都为0),因为这样混合水平不允许OSD图形显示。

DM6446 OSD相关推荐

  1. DM6446开发攻略:V4L2视频驱动和应用分析

    针对DAVINCI DM6446平台,网络上也有很多网友写了V4L2的驱动,但只是解析Montavistalinux-2.6.10 V4L2的原理.结构和函数,深度不够.本文决定把Montavista ...

  2. ceph osd 相关命令

    混合osd的部署 先部署所有的ssd 在/etc/ceph.conf中最后添加ssd做osd的block大小如下: 比如部署中有两个ssd,则添加 [osd.0] bluestore_block_si ...

  3. 关于部署osd过程中:Device is in use by a device-mapper mapping问题解决

    ceph环境:12.2.1 使用古老的ceph-disk工具部署osd,仅仅prepare过程中就出现如上所示问题 Device is in use by a device-mapper mappin ...

  4. ceph osd 由于“No space left on device” 异常down,通过扩容文件系统或者显式运行osd进程解决

    文章目录 ceph版本: 环境配置: 异常问题: 问题解决: 总结 ceph版本: ceph 12.2.1 环境配置: tier_pool 16个分区大小800G 的osd容量 3副本 data_po ...

  5. 关于OSD::mkfs: ObjectStore::mkfs failed with error (5) Input/output error问题的解决

    环境: ceph L版本12.2.1升级到12.2.12 这个问题是由于升级后进行12.2.12环境中的使用ceph-disk 进行osd部署时出现如下问题,执行命令 ceph-disk -v pre ...

  6. 修改ceph-disk源码,增加指定ceph.conf部署osd的功能

    文章目录 ceph环境 源码修改 主文件:`ceph-disk/main.py` main函数入口 parse_args(argv)增加子命令解析 get_conf函数使`conf`生效 修改所有调用 ...

  7. ceph osd混合部署和普通部署

    文章目录 混合osd的部署 先部署所有的ssd 部署hdd 普通OSD的部署 当OSD被踢出集群但是挂载点还在,为osd添加id验证 测试OSD压力 Mark osd 为down 混合osd的部署 混 ...

  8. ceph-osd无法获取osd map导致osd down掉的解决办法

    环境:ceph-12.2.1 3节点测试性能集群 60块osd 最近ceph集群中有两个osd在重启之后遇到如下问题,osd获取不到集群osdmap产生coredump: ceph version 1 ...

  9. OSD的主要实现方法和类型(转)

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

最新文章

  1. Windows Mobile常用程序代码(串口、图象、网络、3D、数据库、音频视频等等)
  2. 产品必备:注册登录完整解决方案 | 含原型下载
  3. JavaScript基础:(加号,数值转换,布尔转换)
  4. Idea中一个服务按多个端口同时启动
  5. 完整议程、重磅嘉宾公布,第四范式AI新品发布会持续报名中
  6. Linux系统开机启动过程分析
  7. php代码审计是什么意思,php代码审计基础篇
  8. Cron 触发器及相关内容 (第三部分)
  9. asp.net ajax 源码,asp.net+jquery+ajax简单留言板 v1.2
  10. 三态门三个状态vhdl_人防门施工方案
  11. 阿铭Linux_网站维护学习笔记20190415
  12. android q mix3,Android Q+5G 小米MIX3流畅播放8K视频
  13. html5 360全景 陀螺仪,HTML网页设置(开启重力感应/陀螺仪)
  14. Vue开发中的一点技♂巧
  15. mathmatica中ListLinePlot函数画图不能混合是咋回事啊
  16. 第12周 项目4-输出从顶点u到v的所有简单路径
  17. 学校计算机管理员考核方案,计算机科学与工程学院班级创建目标管理实施细则...
  18. 银行贷款,求每月等额还款金额
  19. 【 malcolmcrum】基于Java后端与Typescript前端的代码自动生成
  20. 赢在云端:VMware跨云架构,让“云”卷“云”舒自由可控!——访VMware公司大中华区高级技术总监李刚

热门文章

  1. ASP.NET Aries 3.0发布(附带通用API设计及基本教程介绍)
  2. Web测试容易忽略的地方
  3. 修改Visual Stdio 2010界面,以及添加一些其它VS2010的插件
  4. phpweb2.0 开发实战 ----- 配置虚拟主机
  5. vs strcore.cpp(156) 内存泄漏
  6. flex label 换行
  7. docker CE 的安装
  8. 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
  9. 算法练习5---快速排序Java版
  10. 让执行程序引用特定目录下的Dll