--- xvid.h 2003/01/25 22:44:50 1.17.2.26 +++ xvid.h 2003/02/12 12:16:50 1.17.2.29 @@ -28,7 +28,7 @@ * ToDo ? : when BFRAMES is defined, the API_VERSION should not * be the same (3.0 ?) * -* $Id: xvid.h,v 1.17.2.26 2003/01/25 22:44:50 chl Exp $ +* $Id: xvid.h,v 1.17.2.29 2003/02/12 12:16:50 syskin Exp $ * *****************************************************************************/ @@ -287,42 +287,51 @@ #define XVID_ME_EPZS 0x00100000 #define XVID_GREYSCALE 0x01000000 /* enable greyscale only mode (even for */ -#define XVID_GRAYSCALE 0x01000000 /* color input material chroma is ignored) */ + /* color input material chroma is ignored) */ #define XVID_GMC 0x10000000 #define XVID_GMC_TRANSLATIONAL 0x20000000 #define XVID_REDUCED 0x04000000 /* reduced resolution vop */ +#define XVID_HQACPRED 0x08000000 /* 20030209: high quality ac prediction */ #define XVID_EXTRASTATS 0x00000200 /* generate extra statistics */ +#define XVID_MODEDECISION_BITS 0x00400000 /* enable DCT-ME and use it for mode decision */ + /* Flags for XVID_ENC_FRAME.motion */ -#define PMV_ADVANCEDDIAMOND8 0x00004000 -#define PMV_ADVANCEDDIAMOND16 0x00008000 -#define PMV_HALFPELDIAMOND16 0x00010000 +#define PMV_ADVANCEDDIAMOND16 0x00008000 /* use advdiamonds instead of diamonds as search pattern */ +#define PMV_USESQUARES16 0x00800000 /* use squares instead of diamonds as search pattern */ + #define PMV_HALFPELREFINE16 0x00020000 +#define PMV_HALFPELREFINE8 0x02000000 + #define PMV_QUARTERPELREFINE16 0x00040000 +#define PMV_QUARTERPELREFINE8 0x04000000 + #define PMV_EXTSEARCH16 0x00080000 /* extend PMV by more searches */ -#define PMV_CHROMA16 0x00100000 /* also use chroma for MB-ME */ -#define PMV_UNRESTRICTED16 0x00200000 /* unrestricted ME, not implemented */ -#define PMV_OVERLAPPING16 0x00400000 /* overlapping ME, not implemented */ -#define PMV_USESQUARES16 0x00800000 /* use squares instead of diamonds as search pattern */ +#define PMV_EXTSEARCH8 0x08000000 /* use diamond/square for extended 8x8 search */ +#define PMV_ADVANCEDDIAMOND8 0x00004000 /* use advdiamond for PMV_EXTSEARCH8 */ +#define PMV_USESQUARES8 0x80000000 /* use square for PMV_EXTSEARCH8 */ -#define PMV_HALFPELDIAMOND8 0x01000000 -#define PMV_HALFPELREFINE8 0x02000000 -#define PMV_QUARTERPELREFINE8 0x04000000 -#define PMV_EXTSEARCH8 0x08000000 /* extend PMV by more searches */ +#define PMV_CHROMA16 0x00100000 /* also use chroma for P_VOP/S_VOP ME */ +#define PMV_CHROMA8 0x10000000 /* also use chroma for B_VOP ME */ -#define PMV_CHROMA8 0x10000000 /* also use chroma for B-ME */ -#define PMV_UNRESTRICTED8 0x20000000 /* unrestricted ME, not implemented */ -#define PMV_OVERLAPPING8 0x40000000 /* overlapping ME, not implemented */ -#define PMV_USESQUARES8 0x80000000 +/* Motion search using DCT. use XVID_MODEDECISION_DCT to enable */ +#define HALFPELREFINE16_BITS 0x00000100 /* perform DCT-based halfpel refinement */ +#define HALFPELREFINE8_BITS 0x00000200 /* perform DCT-based halfpel refinement for 8x8 mode */ +#define QUARTERPELREFINE16_BITS 0x00000400 /* perform DCT-based qpel refinement */ +#define QUARTERPELREFINE8_BITS 0x00000800 /* perform DCT-based qpel refinement for 8x8 mode */ +#define EXTSEARCH_BITS 0x00001000 /* perform DCT-based search using square pattern */ + /* enable PMV_EXTSEARCH8 to do this in 8x8 search as well */ +#define CHECKPREDICTION_BITS 0x00002000 /* always check vector equal to prediction */ -/* note: old and deprecated */ + +/* note: old and deprecated - or never implemented */ /* only for compatability with old encoders */ @@ -331,7 +340,15 @@ #define PMV_QUICKSTOP16 0x00 #define PMV_QUICKSTOP8 0x00 -#define XVID_ME_COLOUR 0x00 /* this has been converted to PMV_COLOUR[16/8] */ +#define PMV_HALFPELDIAMOND16 0x00 +#define PMV_HALFPELDIAMOND8 0x00 + +#define PMV_UNRESTRICTED16 0x00200000 /* unrestricted ME, not implemented */ +#define PMV_OVERLAPPING16 0x00400000 /* overlapping ME, not implemented */ +#define PMV_UNRESTRICTED8 0x20000000 /* unrestricted ME, not implemented */ +#define PMV_OVERLAPPING8 0x40000000 /* overlapping ME, not implemented */ + +#define XVID_ME_COLOUR 0x00 /* this has been converted to PMV_CHROMA[16/8] */ /*****************************************************************************