00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _ME_DISTORTION_H_
00019 #define _ME_DISTORTION_H_
00020
00021 extern int HadamardSAD4x4(int* diff);
00022 extern int HadamardSAD8x8(int* diff);
00023
00024 extern int computeSAD (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00025 extern int computeSAD4x4 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00026 extern int computeSAD4x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00027 extern int computeSAD8x4 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00028 extern int computeSAD8x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00029 extern int computeSAD8x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00030 extern int computeSAD16x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00031 extern int computeSAD16x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00032
00033 extern int computeSADWP (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00034 extern int computeSADWP4x4 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00035 extern int computeSADWP4x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00036 extern int computeSADWP8x4 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00037 extern int computeSADWP8x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00038 extern int computeSADWP8x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00039 extern int computeSADWP16x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00040 extern int computeSADWP16x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00041
00042 extern int computeSATD (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00043 extern int computeSAT4x4D (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00044 extern int computeSAT8x8D (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00045 extern int computeSAT8x8D8x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00046 extern int computeSAT4x4D8x16 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00047 extern int computeSAT8x8D16x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00048 extern int computeSAT4x4D16x8 (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00049 extern int computeSAT8x8D16x16(StorablePicture *ref1, MEBlock*, int, MotionVector *);
00050 extern int computeSAT4x4D16x16(StorablePicture *ref1, MEBlock*, int, MotionVector *);
00051 extern int computeSATDWP (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00052
00053 extern int computeSSE (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00054 extern int computeSSEWP (StorablePicture *ref1, MEBlock*, int, MotionVector *);
00055
00056
00057 extern int computeBiPredSAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00058 extern int computeBiPred4x4SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00059 extern int computeBiPred4x8SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00060 extern int computeBiPred8x4SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00061 extern int computeBiPred8x8SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00062 extern int computeBiPred8x16SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00063 extern int computeBiPred16x8SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00064 extern int computeBiPred16x16SAD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00065 extern int computeBiPredSAD2 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00066
00067
00068 extern int computeBiPredSATD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00069 extern int computeBiPred8x8SATD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00070 extern int computeBiPred8x16SATD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00071 extern int computeBiPred16x8SATD1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00072 extern int computeBiPred16x16SATD1(StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00073 extern int computeBiPredSATD2 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00074
00075
00076 extern int computeBiPredSSE1 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00077 extern int computeBiPredSSE2 (StorablePicture *ref1, StorablePicture *ref2, MEBlock*, int, MotionVector *, MotionVector *);
00078
00079
00080 extern void select_distortion (ImageParameters *p_Img, InputParameters *p_Inp);
00081
00082 #endif