DE2 NIOS color key and alpha blending

多圖層疊圖實作

使用兩個VGA_IF讀取兩個不同的frame buffer在輸出時進行疊圖

底層為ccd輸入之資料,上層為osd,疊圖的兩個原則

(1)color key : 當osd指定為這個顏色時則穿透,即不顯示osd

(2)alpha blending : 取一部分上層的顏色,一部分下層的顏色進行混合,這裡是50%即各取一半

 

reg [9:0] alpha_r;
reg [9:0] alpha_g;
reg [9:0] alpha_b;
always@(posedge CLOCK_50)
begin                 
	rRead_DATA_LCM_FB0 <= Read_DATA_LCM_FB0;
	rRead_DATA_LCM_FB1 <= Read_DATA_LCM_FB1;
	if(Read_DATA_LCM_FB1==32'h00000000)
	begin
         	//color key        	
	alpha_r <= Read_DATA_LCM_FB0[9:0];
	alpha_g <= Read_DATA_LCM_FB0[19:10]; 
	alpha_b <= Read_DATA_LCM_FB0[29:20];
    end else
    begin
    	//alpha blending 50%                  
	alpha_r <= (rRead_DATA_LCM_FB0[9:1] + rRead_DATA_LCM_FB1[9:1]);
	alpha_g <= (rRead_DATA_LCM_FB0[19:11] + rRead_DATA_LCM_FB1[19:11]);
	alpha_b <= (rRead_DATA_LCM_FB0[29:21] + rRead_DATA_LCM_FB1[29:21]);
    end
end

assign Read_DATA_LCM = { 2'b00,alpha_b,alpha_g,alpha_r};

 

colorkey_alphablending_demo

 

完整專案程式碼及demo範例:NIOS_lcm_alphablending.7z

posted @ 2011-08-10 23:25  jnote  阅读(571)  评论(0)    收藏  举报