outputfileSize = 0 outputFileName = inputFileName[:inputFileName.find('.')] + '.' + predictive_type + 'pv' if (codingType == 1): outputfileSize = writeToFile(1,1,fileContent,None,outputFileName) elif (codingType == 2): outputfileSize = shannonFano(fileContent,outputFileName, rootDir) elif (codingType == 3): outputfileSize = LZW(fileContent,outputFileName, rootDir) elif (codingType == 4): outputfileSize = arithmeticCoding(fileContent,outputFileName, rootDir) #it calculates the file size as if each binary digit had a size of 1-bit, simulating a real compression state. print "Original video file size: " + str(inputFileSize) + " bytes" print "Encoded video file size: " + str(outputfileSize) + " bytes" return outputFileName if __name__ == '__main__': rootDir = util.safeGetDirectory() allFiles = [f for f in listdir(rootDir) if isfile(join(rootDir,f))] inputFileName = util.getVideoFile(allFiles) #reads the input file name to check if it contains either spacial or temporal predictive coding data inputFilePath = rootDir + "/" + inputFileName codingType = util.selectCodingOption() compress(inputFilePath, codingType, rootDir)
elif option == "3": pc3(outputFile, yFrameValues, frameNum) elif option == "4": pc4(outputFile, yFrameValues, frameNum) elif option == "5": pc5(outputFile, yFrameValues, frameNum) else: break time.sleep(1) outputFile.close() if __name__ == '__main__': # Directory in which all the video files are pesent rootDir = util.safeGetDirectory() # Get all the files from the root directory allFiles = [f for f in listdir(rootDir) if isfile(join(rootDir,f))] #Get the video for processing videoName = util.getVideoFile(allFiles) videoForProcessing = join(rootDir, videoName) option = util.getEncodingOption() x,y = util.getPixelRegion() fileName = videoName.strip('.mp4') + "_" + option + ".spc" outputFile = open(fileName, 'w') video = cv2.VideoCapture(videoForProcessing) spatialCoding(video, outputFile)