Step 4 - Inverse DCT
recov_IMG = inverse_DCT(recov_DCT_tf_img);
Step 4 - Inverse DCT
recov_IMG = inverse_DCT(recov_DCT_tf_img);
function inv_DCT = inverse_DCT(img)
inv_DCT={};
for y=1:size(img,1)
for x= 1:size(img,2)
inv_DCT(y,x)={idct2( cell2mat(img(y,x)) )};
end
end
end
After this we obtain the decoded image. We can display the image from
imshow(cell2mat(recov_IMG));
Reconstructed Image
Original image
DECODING PROCESS FULL CODE
%decoding recieved signal - huffman
recovered_signal = huffmandeco(code,dict);
%decoding runlength _____(run_L_coded ------->img_One_D_vector)
recov_run_length = decod_runLength(recovered_signal);
%inverse zigzag ______(img_One_D_vector--------->DCT_tf_img)
recov_DCT_tf_img =inverseZigZag(recov_run_length,macrobock_size,rvec,cvec,y,x);
%inverse dct_____(recovered_dct_tf---->recovered img)
recov_IMG = inverse_DCT(recov_DCT_tf_img);
%DISPLAY IMAGE
imshow(cell2mat(recov_IMG));
sprintf("compressed image size = %d", size(code,2)) %code is the huffman encoded result.check main
"compressed image size = 2753415"
sprintf("original image size = %d", size(img,2)*size(img,1))
"original image size = 3686400"
sprintf("Compression ratio = %d", size(img,2)*size(img,1)/size(code,2))
"Compression ratio = 1.338846e+00"