mixer中動態Alpha通道處理案例

 
 本案例處理的是RGB+a,每一個色彩的採樣爲10位位寬。
一、在Mixer IP中打開Alpha Blending Enable 和Alpha Input Stream Enable。這樣在Block Diagram中能夠看到din0_data位寬爲80位,而dout_data依然爲60位位寬。
二、在FrameBufferII IP、Scaler II IP和CVI ii中都要把Number of Color planes設置爲4。其實就 RGB+A 4個處理通道。
 
 
 
三、要明白alpha通道是怎樣傳輸數據的。這一點能夠從VIP相關的文檔上找到答案。因此在CVI的輸入信號處理上以下:
.cvi_rgb_din1_vid_data ({ch2_cvi_rgb_din[59:30],alpha_data,ch2_cvi_rgb_din[29:0],alpha_data}),
四、最後要在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);
}
相關文章
相關標籤/搜索