DM6446 OSD

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图形显示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DOS的一些常用命令

原文发布时间为:2011-02-12 —— 来源于本人的百度文章 [由搬家工具导入]DOS远程桌面连接命令 mstsc /v: 192.168.1.250 /consolecmd 运行 command删除文件 rd 文件名/S创建文件 MD 文件名 1. net user admin godmour /add 新建一个…

机器视觉工业镜头-Computar

日本Computar镜头,全球工业镜头、CCTV镜头市场占有率第一。CBC板式会社成立于1925年,总部在日本东京。1960年 CBC香港公司成立,是computar镜头走向国际市场的前奏。 1979年 研制出第一只手动变焦镜头。 1985年 研制出第一款非球面高速镜头。1…

C++编程经验总结1

面向对象的精髓: 主函数其实就是对于类的元素和动作的重新组合来进行一项活动。 一个思想概念:程设是清楚的,完美的。 数学是清楚的,是完美的。 物理是有趣的,尤其是量子物理 生物是清楚的,尤其是基因 外语…

DM365的BSP源码分析-基于2.6.18内核

DM365的BSP主要包含mach-davinci和plat-davinci两个目录(及相关头文件),BSP复杂庞大又极其重要,它主要完成了板级的初始化,比如内存映射,时钟和电源初始化,中断和IO初始化,CPU及各模…

第四章:Django 模型 —— 设计系统表

1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表。 2. Django 模型基础知识: 。每一本模型是一个Python类,继承了django.db.models.Model类 。该模型中每一个属性一个…

DM365 使用BT656协议驱动LCD的实现

前两天已经调好了,主要是对davinci_platform.c的修改 因为输入输出都为pal的制式,所以就在pal的函数中进行了修改。 在PAL设置的函数中,修改如下: /* * setting PAL mode */ static void davinci_enc_set_pal(struct vid_enc_mode…

工业视觉镜头NAVITAR

品牌介绍 美国NAVITAR是优越的上等光学系统制造商和供应商,工业视觉镜头NAVITAR为机器视觉、检测和生物医学诊断行业提供的定制光学解决方案。 工业视觉镜头NAVITAR用于鉴定产品、检查产品缺陷、测量零件尺寸、操纵机器人设备和协助进行科学分析与探索。 还用来引导…

TCP系列48—拥塞控制—11、FRTO拥塞撤销

一、概述FRTO虚假超时重传检测我们之前重传章节的文章已经介绍过了,这里不再重复介绍,针对后面的示例在说明两点1、FRTO只能用于虚假超时重传的探测,不能用于虚假快速重传的探测。2、延迟ER重传触发的进入Recovery状态时候,并不会…

娱乐一下

6年前,没几个人知道尤里米尔纳(Yuri Milner)是谁。但今天,他已经是地球上最有名的投资人了。 短短几年内,这家伙掌管的风险投资基金DST(数字天空科技)投遍了全球的互联网明星企业,并…

机器视觉行业市场现状及发展前景分析

1.中国的机器视觉起步较晚,目前正处于快速增长期。 我国机器视觉最早起源于20世纪80年代。机器视觉生产线和先进设备自1998年众多电子、半导体企业落户广东、上海以来,先后在国内诞生了国际代理商和机器视觉系统集成商。 第一个阶段是1999-2003年的启蒙…

从bootm 命令讲起/U-boot的环境变量: bootcmd 和bootargs

从bootm 命令讲起 1 找到linux的内核入口 Bootm命令通过读取uImage的头部040字节的信息,将uImage定位到正确的地址,同时找到linux的内核入口地址。 这个地方就涉及到uImage的头部040字节信息到底是什么的问题?uboot提供了mkimage命令去把040字节加在lin…

关于创建SWAP示例

cd /data 进入指定目录dd if/dev/zero of/data/swapfile bs1M count102400【参数说明】if文件名&#xff1a;输入文件名&#xff0c;缺省为标准输入。即指定源文件。< ifinput file >of文件名&#xff1a;输出文件名&#xff0c;缺省为标准输出。即指定目的文件。< of…

一个公式来说明加接圈的作用和缺点

一个公式来说明加接圈的作用和缺点 在很多视觉项目中&#xff0c;如果想要将视野缩小&#xff0c;一种方式是换用长焦镜头&#xff1b;另一种方式则是通过加接圈的方式来实现。那么&#xff0c;接圈到底改变的是什么参数&#xff0c;能够使图像进行放大呢&#xff1f;核心公式上…

bzoj4636: 蒟蒻的数列

作为惟一一个离线动态开点线段树的。。我是不是没救了。。 维护一下区间修改和区间和。。。 然而由于一些奇怪的原因翻车 到最后索性跑到一个点直接开左右儿子 最后注意区间左右端点可以相等。。。 1 #include<cstdio>2 #include<iostream>3 #include<algorithm…

module_param 在内核编程中的作用

module_param 在用户态下编程可以通过main()的来传递命令行参数&#xff0c;而编写一个内核模块则通过module_param()! module_param的作用一.module_param1.为什么引入 在用户态下编程可以通过main()来传递命令行参数&#xff0c;而编写一个内核模块则可通过module_param()来传…

ubuntu 备忘

卷组扩容 Linux mint采用默认卷组的安装方式 sainLinux ~ $ df -hl Filesystem Size Used Avail Use% Mounted on udev 3.7G 0 3.7G 0% /dev tmpfs 743M 9.5M 733M 2% /run /dev/mapper/mint--vg-root…

DDL DML DCL

2019独角兽企业重金招聘Python工程师标准>>> DDL is Data Definition Language statements. Some examples:数据定义语言&#xff0c;用于定义和管理 SQL 数据库中的所有对象的语言 DML is Data Manipulation Language statements. Some examples:数据操作语言&…

学习halcon的论坛与书籍

论坛、培训 halcon学习网&#xff1a;http://www.ihalcon.com/鸟叔机器视觉&#xff1a;http://bbs.szvbt.com/forum.php 博客 韩兆新的博客园majunfuLife and Codingzhaojun的博客風韻無聲骑蚂蚁上高速的博客小马_xiaoLV2小新识图程序园-程序员的世界章柯渊的博客 注&…

LINUX内核中的xx_initcall初始化标号

LINUX内核中的xx_initcall初始化标号 田海立CSDN 2011-07-02 LINUX内核中有很多的初始化指示标志postcore_initcall(), arch_initcall(), subsys_initcall(), device_initcall(), etc. 这些起什么作用呢&#xff1f;查阅源代码&#xff08;android goldfish-2.6.29&#xff09;…