码迷,mamicode.com
首页 > 其他好文 > 详细

mixer中动态Alpha通道处理案例

时间:2018-10-29 18:29:59      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:icc   stream   -o   control   怎样   scale   aci   中控   就是   

 
 本案例处理的是RGB+a,每个色彩的采样为10位位宽。
1、在Mixer IP中打开Alpha Blending Enable 和Alpha Input Stream Enable。这样在Block Diagram中可以看到din0_data位宽为80位,而dout_data依然为60位位宽。
技术分享图片
技术分享图片
2、在FrameBufferII IP、Scaler II IP和CVI ii中都要把Number of Color planes设置为4。其实就 RGB+A 4个处理通道。
 
技术分享图片
 技术分享图片技术分享图片技术分享图片
技术分享图片
 
技术分享图片
3、要明白alpha通道是怎样传输数据的。这一点可以从VIP相关的文档上找到答案。所以在CVI的输入信号处理上如下:
.cvi_rgb_din1_vid_data ({ch2_cvi_rgb_din[59:30],alpha_data,ch2_cvi_rgb_din[29:0],alpha_data}),
技术分享图片
技术分享图片
4、最后要在Nios中打开动态的alpha功能。这也就是在Mixer中控制寄存器中Input control n中把10+5n的第3:2位设置为10(b).在程序中altera也为我们提供了相应的程序。我们只需要在程序中打开即可。
 
 技术分享图片
技术分享图片
技术分享图片
 技术分享图片
void MixerII::set_input_dynamic_alpha_enable(int input_stream,bool enabled )
{
int status = this ->do_read(get_register_addr(MixerII::INPUT_CONTROL,input_stream));
if( enabled )
status |= STATUS_DYNAMIC_ALPHA;
else
status &= STATUS_DYNAMIC_ALPHA;
this -> do_write(get_register_addr(MixerII::INPUT_CONTROL,input_stream),status);
}
 
 

mixer中动态Alpha通道处理案例

标签:icc   stream   -o   control   怎样   scale   aci   中控   就是   

原文地址:https://www.cnblogs.com/zhongguo135/p/9872149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!