TMS320DM6446支持背景窗颜色,两个Video视频窗口,两个OSD窗口,一个指针(cursor)窗口。如下图所示。
Video窗口分为VID0窗口和VID1窗口,两窗口可同时作为两个输出通道显示动态视频,实现画中画的功能。待显示的视频数据在内存DDR2中是以从左到右,从上到下的方式顺序排列的。若DM6446设置为高清模式输出时,需使用VID0窗口作为输出窗口,关闭VID1窗口. Video窗口支持YCbCr 4:2:2格式的数据,不支持YCbCr 4:2:0和YCbCr 4:4:4格式。
OSD(On Screen Display)技术是一种在屏显示技术, 其核心是在图像上叠加文字、鼠标、简单的图片等, 使显示屏幕为用户提供更多的附加信息, 为用户提供了极大的便利。目前, 在数码相机、电视、显示器、监视器等图像或视频系统中应用非常广泛。
从下到上依次是:
/dev/fb/1 格式YCrCb 4:2:2 UYVY(video层)
/dev/fb/3 格式YCrCb 4:2:2 (video层)
/dev/fb/0 OSD window,格式RGB16 (一个像素用两个字节,5:6:5),(osd层,称osd0),若720x480的图像,一行数据占用字节数位 720x2=1440字节。
/dev/fb/2 OSD attribute window,控制/dev/fb/0的透明度,一个像素用4bit(osd层,称osd1),若720x480的图像,一行数据占用字节数为720/2=360字节。
其中osd1是控制层,osd0是显示层。只有在osd1被启动的情况下,才可以进行osd0的透明设置。要通过FBIO_SET_BITMAP_BLEND_FACTOR的ioctl来进行设置。使用colorkey。这里需要特别说明的一个问题是,一定要注意自己的osd0的那层的颜色到底是什么。可以手动给osd0那层进行颜色设置,然后再拿这个颜色值来进行colorkey的设置。
VID0和VID1由V4L2或FBDev驱动器控制视频输出,OSD0和OSD1由FBDev驱动器控制图形显示(V4L2是专用于视频,不能适应图形)。对于V4L2,视频缓冲区有应用程序在运行时分配,但FBdev视频和OSD缓冲区是在引导时分配。
osd1可用作属性窗口或OSD图形窗口。默认情况下,osd1用于属性窗口,用来控制视频窗口和OSD0之间的透明度.