Table of Contents

NAME

mesh_memc - motion estimation and compensation using regular triangle meshes

SYNOPSIS

mesh_memc [-fp] [-hp] [-qp] [-ep] [-f1 filter1] [-f2 filter2] [-f3 filter3] [-w window] [-b block_size] [-eb block_size] [-exp] [-cb] [-mc motion_compensated_frame] [-srf subpixel_reference_frame] [-r residual_frame] reference_frame current_frame mvfile

DESCRIPTION

-fp
Full-pixel accuracy.
-hp
Half-pixel accuracy.
-qp
Quarter-pixel accuracy.
-ep
Eighth-pixel accuracy.
-f1 filter1
String. Filename of filter to use for going from full-pixel to half-pixel accuracy.
-f2 filter2
String. Filename of filter to use for going from half-pixel to quarter-pixel accuracy.
-f3 filter3
String. Filename of filter to use for going from quarter-pixel to eighth-pixel accuracy.
-w window
Integer. Window size for motion estimation. Default is 15 pixels.
-b block_size
Integer. Block size used in creating regular mesh. Default is 16 pixels.
-eb estimation_block_size
Integer. Block size used in estimating motion of mesh vertices. Default is 9 pixels.
-exp
Use an exponential weighting kernel for block matching. Default is to use uniform weighting across the block.
-cb
Constrain motion vectors of mesh vertices at image boundaries to be zero. Default is to not constrain the motion of these vertices.
-mc motion_compensated_frame
String. Filename of file to which to write the motion-compensated frame.
-srf subpixel_reference_frame
String. Filename of file to which to write the reference frame after having been interpolated to the specified subpixel accuracy.
-r residual_frame
String. Filename of file to which to write the difference between the current frame and the motion-compensated frame, the residual image from the motion-compensation process.

DESCRIPTION

mesh_memc reads two images, a current_frame and a reference_frame, performing motion estimation using a regular triangle mesh to estimate motion from reference_frame to current_frame. See QccVIDMeshMotionEstimationSearch(3) for details on how this mesh-based motion-estimation procedure is carried out.

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.

SEE ALSO

QccVIDMeshMotionEstimationSearch(3) , QccVIDMeshMotionEstimationCreateCompensatedFrame(3) , QccVIDMotionEstimationCreateReferenceFrame(3) , QccVIDMotionVectorsWriteFile(3) , QccFilterRead(3) , QccRegularMesh(3) , QccPackVID(3) , QccPackIMG(3) , QccPack(3)

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.

AUTHOR

Copyright (C) 1997-2021 James E. Fowler


Table of Contents



Get QccPack at SourceForge.net. Fast, secure and Free Open Source software downloads