The regular triangle mesh is created by dividing the reference frame into square blocks of size block_size (default is 16) and then splitting each block along its diagonal.
Motion of mesh vertices is estimated by centering square blocks of size estimation_block_size (default is 9) about the vertex of interest, and performing a block-matching search. The size of the window in which to perform the block-matching search is window (default is 15). This block-matching search may optionally be weighted by an exponential kernel which gives greater priority to matching pixels near the center of the box (i.e., near the mesh vertex itself). This exponential-kernel search occurs when the -exp option is specified; otherwise, all pixels are weighted equally in the block-matching search.
If the -cb option is specified, all mesh vertices that lie on the boundaries of the reference frame are constrained to have zero motion; i.e., their motion vectors will be zero.
mesh_memc first interpolates reference_frame to the specified subpixel accuracy as determined by the -fp, -hp, -qp, or -ep options. In the case that none of these options are specified, mesh_memc defaults to using full-pixel accuracy. QccVIDMotionEstimationCreateReferenceFrame(3) is used to perform the subpixel-accuracy interpolation, with filter1, filter2, and filter3 provided to the latter routine if specified (filter1, filter2, and filter3 should be files whose format is described with QccFilterRead(3) ). Next, QccVIDMeshMotionEstimationSearch(3) is called to carry out the mesh-based motion-estimation search. Finally, QccVIDMotionVectorsWriteFile(3) writes the resulting motion vectors to mvfile.
If the -mc option is specified, QccVIDMeshMotionEstimationCreateCompensatedFrame(3) is called to generate the motion-compensated frame using the motion vectors that resulted from the motion search. This compensated frame is then written to motion_compensated_frame.
If the -srf option is specified, the interpolated, subpixel-accurate reference frame (as generated by QccVIDMotionEstimationCreateReferenceFrame(3) ) is written to reference_frame.
If the -r option is specified, the residual image between the current frame and the motion-compensated frame is written to residual_frame. This residual is not the true difference image, but rather the absolute value of the difference image, in order to avoid negative-valued pixels.
Y. Altunbasak, A. M. Tekalp, and G. Bozdagi, "Two-Dimensional Object-based Coding Using a Content-based Mesh and Affine Motion Parameterization," in Proceedings of the International Conference on Image Processing, Washington, DC, October 1995, vol. 2, pp. 394-397.
M. Eckert, D. Ruiz, J. I. Ronda, and N. Garcia, "Evaluation of DWT and DCT for Irregular Mesh-based Motion Compensation in Predictive Video Coding," in Visual Communications and Image Processing, K. N. Ngan, T. Sikora, and M.-T. Sun, Eds., Proc. SPIE 4067, June 2000, pp. 447-456.
K. Schroder and R. Mech, "Combined Description of Shape and Motion in an Object Based Coding Scheme Using Curved Triangles," in Proceedings of the International Conference on Image Processing, Washington, DC, October 1995, vol. 2, pp. 390-393.
Y. Wang, S. Cui, and J. E. Fowler, "3D Video Coding Using Redundant-Wavelet Multihypothesis and Motion-Compensated Temporal Filtering," in Proceedings of the International Conference on Image Processing, Barcelona, Spain, September 2003, vol. 2, pp. 755-758.
Y. Wang, S. Cui, and J. E. Fowler, "3D Video Coding with Redundant-Wavelet Multihypothesis," IEEE Transactions on Circuits and Systems for Video Technology, submitted July 2003. Revised April 2004, March 2005.