⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xil_rgb2ycrcb_post_proc.m

📁 基于FPGA的YUV转换RGB的色度空间转换
💻 M
字号:
function [vhdl_out_y, vhdl_out_cr, vhdl_out_cb] = Xil_RGB2YCrCb_post_proc(data_out_y, data_out_cr, data_out_cb, v_sync, matlab_y, matlab_cr, matlab_cb)

[ysize,xsize,planes] = size( matlab_y );

delay  = find(v_sync==1); % Dynamic alignment 

new_data_out_y  = data_out_y(delay:(xsize*ysize+delay));
new_data_out_cr = data_out_cr(delay:(xsize*ysize+delay));
new_data_out_cb = data_out_cb(delay:(xsize*ysize+delay));

scale = pow2(ceil(log2(max(max(max([new_data_out_y, new_data_out_cr, new_data_out_cb])))))-8);

for i=1:ysize;
    for j=1:xsize;
        vhdl_out_y(i,j) =uint8(round(new_data_out_y(xsize*(i-1)+j)/scale));
        vhdl_out_cr(i,j)=uint8(round(new_data_out_cr(xsize*(i-1)+j)/scale));
        vhdl_out_cb(i,j)=uint8(round(new_data_out_cb(xsize*(i-1)+j)/scale));        
    end
end

figure(3); colormap('gray');
subplot(2,2,2);
imshow(vhdl_out_y); xlabel('VERIFICATION Y');
subplot(2,2,3);
imshow(vhdl_out_cb); xlabel('VERIFICATION Cb');
subplot(2,2,4);
imshow(vhdl_out_cr); xlabel('VERIFICATION Cr');


%error_luma    = sum(sum(abs(vhdl_out_y - matlab_y)))/(xsize*ysize)
%error_cr      = sum(sum(abs(vhdl_out_cr - matlab_cr)))/(xsize*ysize)
%error_cb      = sum(sum(abs(vhdl_out_cb - cb_output)))/(xsize*ysize)

%PSNR_luma    = psnr(vhdl_out_y, matlab_y, size(matlab_y,1), size(matlab_y,2))
%PSNR_cr      = psnr(vhdl_out_cr, matlab_cr, size(matlab_cr,1), size(matlab_cr,2))
%PSNR_cb      = psnr(vhdl_out_cb, cb_output, size(cb_output,1), size(cb_output,2))

%MSE_luma     = mse(vhdl_out_y, matlab_y);
%MSE_cr       = mse(vhdl_out_cr, matlab_cr);
%MSE_cb       = mse(vhdl_out_cb, matlab_cb);

[vhdl_out_r, vhdl_out_g, vhdl_out_b] = Xil_yCrCb2RGB_fi_model( vhdl_out_y, vhdl_out_cr, vhdl_out_cb);
figure(4); colormap('gray');
subplot(2,2,1);
vhdl_out_rgb(:,:,1) = vhdl_out_r;
vhdl_out_rgb(:,:,2) = vhdl_out_g;
vhdl_out_rgb(:,:,3) = vhdl_out_b;
imshow( uint8(vhdl_out_rgb)); xlabel('VERIFICATION RGB');
subplot(2,2,2);
imshow(vhdl_out_r/255); xlabel('VERIFICATION R');
subplot(2,2,3);
imshow(vhdl_out_g/255); xlabel('VERIFICATION G');
subplot(2,2,4);
imshow(vhdl_out_b/255); xlabel('VERIFICATION B');

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -