180 likes | 280 Views
Encoding Stereo Images. Christopher Li, Idoia Ochoa and Nima Soltani. Outline. System overview Detailed encoder description Demonstration Results Extensions Conclusions. System Overview (Encoder). DWT. Quant. Arith Enc. L. DCT. Re-order. Arith Enc. u se ME. Motion Estimation.
E N D
Encoding Stereo Images Christopher Li, IdoiaOchoa and NimaSoltani
Outline • System overview • Detailed encoder description • Demonstration • Results • Extensions • Conclusions
System Overview (Encoder) DWT Quant ArithEnc L DCT Re-order ArithEnc use ME Motion Estimation residuals R Huff Enc shift vectors DWT Quant ArithEnc
Left Image • Daubechies-4 wavelet decomposition • 5 levels for luminance, 4 for chrominance • Uniform quantization with adaptive levels • Each component meets its own fraction of MSE • Arithmetic coding on the quantized residuals • Frequency tables are sent for each arithmetic coder
Left Quantization • Decomposed PSNR constraint • Allocated fractions of MSE to each color component • Met PSNR constraints by finding maximum uniform quantization levels that meet assigned MSEs
Left QuantizationMotion Estimation Enable Signal • Heuristically choose differential vs. separate encoding of right image Y wavelet coeffs Quantize with Calculate MSE Yes Encode differentially No Encode separately
Right ImageMotion Estimation Block • Partition into 30x30 blocks • Find shift vectors that minimize the MSE • Search an area from [-64,64] in the direction and [-6,6] in the direction for minimum distortion
Right ImageResidual coding • Impose residuals of Cb and Cr to be 0 • Use remaining fraction of MSE for Y component • Compute DCT of block • Reshape using zig-zag ordering • Replace remaining zeros in block with end of block character • Perform arithmetic coding
Right ImageShift vector coding • Offline • Find joint statistics of the shift vectors over the training set • Construct Huffman table • During run-time, encode shift vectors using this Huffman table
Right ImageSeparately coded • Same method as left image • D4 wavelet, with 5 levels for Y, 4 for Cb, Cr • Uniform quantization with variable step • Arithmetic coding with frequencies sent
Writing to File • Unique quantization values encoded in header bits • Arithmetic coders • Encode frequencies, output length of sequence and sequence itself • Huffman encoders • Length of sequence and sequence itself • Tables stored offline
Decoder • Perform all the steps of the encoder in reverse • Decode left image using inverse DWT • Read motion estimation flag for right image • If enabled, decode shift vectors and residuals • Else, decode using inverse DWT
Extensions • Use intra-block coding for right image • Explore using different wavelets • Implement embedded zero trees in C • Explore run-length coding further • Apply uniform deadzonequantizers
Conclusions • Important trade-off between bits allocated to shift data and residual data • Arithmetic coding outperforms Huffman • Reshaping the DCT blocks allows us to use information, such as its size, to our advantage • Uniform quantizer is faster, simpler and has less overhead than Lloyd-max quantizers • MEX files reduce runtime significantly!