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.pswp.cn/news/254038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254038.shtml
英文地址,請注明出處:http://en.pswp.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;…