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};
完整專案程式碼及demo範例:NIOS_lcm_alphablending.7z

浙公网安备 33010602011771号