clear all; % --- Setup variables ------------------------------------------------------- stepsize = 2; % DCT quantisation stepsize for uniform quantiser count = 0; image_list = mGetImageFileList; image_total = size( image_list, 1 ); %---------------------------------------------------------------------------- for stepsize = 0.01 : 0.02 : 0.2 count = count + 1 for image_count = 1:2:image_total pNum = (image_count+1)/2; left_name = deblank( image_list( image_count ,: ) ); rght_name = deblank( image_list( image_count+1 ,: ) ); left = pgmRead( sprintf( '../images/%s', left_name ) ); right = pgmRead( sprintf( '../images/%s', rght_name ) ); [ row_total, col_total ] = size( left ); image_size = row_total*col_total; [disparityImage,diffDCval] = GetDisparityImage(left,right); % ---- DCT, quantise et al ------------------------------------------------ [ReconDM,XformDMQ] = mOptimalDCT8x8ImageAndCoeffs(disparityImage, stepsize); % ---- Reconstruct right image ------------------------------------------ rightRecon = decodeDisparityIm(left, ReconDM, diffDCval); % ---- Calculate bit rate and signal to noise ratio ----------------------- Bit_Rate(pNum) = mComputeValueRLERate(XformDMQ); SNR_Right(pNum) = mComputeSNR(right,rightRecon); end Average_Bit_Rate(count) = mean(Bit_Rate) Average_SNR(count) = mComputeAverageSNR(SNR_Right) end mCreateRateDistortionGraph('Rate Distortion Curve for Pixel-based Disparity-Map Encoder',Average_SNR,Average_Bit_Rate);