180 likes | 259 Views
This outline provides a detailed description of a stereo image encoding system, including encoder overview, DWT quantization, ArithEnc, Motion Estimation, and more. Results, extensions, and conclusions are also discussed.
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!