dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
阅读:1833回复:3

请教AU1200三层OSD叠加

楼主#
更多 发布于:2008-06-26 21:29
最近在做一个视频叠加的项目,硬件平台采用的是RMI的AU1200,遇到一个比较棘手的问题,描述如下:

老板要求三层OSD(总共有四层,Desktop,Mae,Osd0,Osd1,其中Desktop就是一般WinCE桌面或者Qte界面这一层,Mae是底层视频编解码处理的那一层,OSD0,OSD1是自己应用可以控制的),这三层分别是Desktop,Osd0,Osd1三者放在一起时互相不影响。

比如桌面在最底层,Osd0作为Alpha层放在桌面上具有透明效果,Osd1作为不透明层放在Osd0上,OSD1的背景是过滤掉的(ColorKey),那么背景显示就是带有Osd0透明效果的桌面。(见图1)

但是根据AU1200的叠加设计的原理(个人理解的),四层叠加是分为左右两个通道,比如桌面在左边,Mae,Osd0,Osd1在右边通道,叠加的时候右边的三个OSD层具有优先级别,比如Mae<Osd0<Osd1,那么叠加出来的结果则是,如果Osd0,Osd1,Mae这三层在同一个位置有交集了,就是Osd0会盖住mae,Osd1会盖住Osd0,且Osd1里的等于ColorKey的数据会被替换成桌面层的数据。(见图2AB的背景填充成桌面的图案了)

个人认为产生这个问题的原因,就是桌面层是分别和Mae,Osd0,Osd1并行进行叠加的,如果是桌面和Mae先叠加,叠加后的结果再和Osd0叠加,然后其结果再和Osd1叠加,则不会产生上面这样的问题,看了下S3C6400的叠加方案就是这样的。

还请做过AU1200的高人指点一下,万分感谢。

dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-27 12:24
硬件有寄存器可以设置各层的优先级,简单说就是谁的优先级高就能在有交叉的地方盖住优先级低的

谢谢楼上的指点
dillonhua
驱动小牛
驱动小牛
  • 注册日期2004-07-30
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望401点
  • 贡献值0点
  • 好评度128点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-30 19:07
ding
游客

返回顶部