clear all; % --- Setup variables ------------------------------------------------------- blocksize = 8; winSize = 32; maxErrorLevel = 1; ErrorQuant = 1; dataPoint = 0; image_list = mGetImageFileList; image_total = size( image_list, 1 ); %---------------------------------------------------------------------------- %for maxErrorLevel = [ 3:1:8,10:2:20,25:5:50,60:10:100,120:20:200] %ErrorQuant = round(0.5*maxErrorLevel); %dataPoint = dataPoint+1 for imNum = 1:2:image_total pNum = (imNum+1)/2; left_name = deblank( image_list( imNum ,: ) ); rght_name = deblank( image_list( imNum+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; % ------ Determine predictor for every 8x8 block in right image ------- predictors = getPredictors(left,right,blocksize,winSize); % ------ Predict right image in pixel domain -------------------------- rightPredict = estimateRight(left,predictors,blocksize); SNR_predicted = mComputeSNR(right, rightPredict); % ------ Calculate, threshold and quantise errors --------------------- errors = right - rightPredict; bigErrors = thresholdErrors(errors,maxErrorLevel); bigErrorsQ = quant(bigErrors,ErrorQuant); % ------ Compensate for coding errors --------------------------------- rightCompensated = rightPredict + bigErrorsQ; % ------ Stats and Bit Rates ------------------------------------------ %EntropyOfErrors(pNum) = mComputeEntropy(bigErrorsQ); Errors_Zero_RLE_Rate(pNum) = mComputeZeroRLERate(bigErrorsQ) %EntropyOfPredictors(pNum) = mComputeEntropy(predictors)/blocksize^2; predictors_Value_RLE_Rate(pNum) = mComputeValueRLERate(predictors)/blocksize^2; SNR_compensated(pNum) = mComputeSNR(right, rightCompensated); Bit_Rate(pNum) = Errors_Zero_RLE_Rate(pNum) + predictors_Value_RLE_Rate(pNum); end Average_SNR(dataPoint) = mComputeAverageSNR(SNR_compensated) Average_Bit_Rate(dataPoint) = mean(Bit_Rate) %end mCreateRateDistortionGraph('Rate Distortion Curve for Block-based Disparity-Map Prediction Encoder',Average_SNR,Average_Bit_Rate);