10 typedef int (*x264_pixel_cmp_t)(pixel *, intptr_t, pixel *, intptr_t);
11 typedef void (*x264_pixel_cmp_x3_t)(pixel *, pixel *, pixel *, pixel *, intptr_t,
int[3]);
12 typedef void (*x264_pixel_cmp_x4_t)(pixel *, pixel *, pixel *, pixel *, pixel *, intptr_t,
int[4]);
33 } x264_pixel_size[12] =
49 static const uint8_t x264_size2pixel[5][5] =
54 {0, PIXEL_4x4, PIXEL_8x4, 0, 0},
55 {0, PIXEL_4x8, PIXEL_8x8, 0, PIXEL_16x8},
59 {0, 0, PIXEL_8x16, 0, PIXEL_16x16}};
61 static const uint8_t x264_luma2chroma_pixel[4][7] =
64 {PIXEL_8x8, PIXEL_8x4, PIXEL_4x8, PIXEL_4x4, PIXEL_4x2, PIXEL_2x4, PIXEL_2x2},
65 {PIXEL_8x16, PIXEL_8x8, PIXEL_4x16, PIXEL_4x8, PIXEL_4x4, PIXEL_2x8, PIXEL_2x4},
66 {PIXEL_16x16, PIXEL_16x8, PIXEL_8x16, PIXEL_8x8, PIXEL_8x4, PIXEL_4x8, PIXEL_4x4},
71 x264_pixel_cmp_t sad[8];
72 x264_pixel_cmp_t ssd[8];
73 x264_pixel_cmp_t satd[8];
74 x264_pixel_cmp_t mbcmp[8];
75 x264_pixel_cmp_t mbcmp_unaligned[8];
76 x264_pixel_cmp_t fpelcmp[8];
77 x264_pixel_cmp_x3_t fpelcmp_x3[7];
78 x264_pixel_cmp_x4_t fpelcmp_x4[7];
79 x264_pixel_cmp_t sad_aligned[8];
81 uint64_t (*var[4])(pixel *pix, intptr_t stride);
82 int (*var2[4])(pixel *pix1, intptr_t stride1, pixel *pix2, intptr_t stride2,
int *ssd);
85 void (*ssd_nv12_core)(pixel *pixuv1, intptr_t stride1,
86 pixel *pixuv2, intptr_t stride2,
int width,
int height,
87 uint64_t *ssd_u, uint64_t *ssd_v);
88 void (*ssim_4x4x2_core)(
const pixel *pix1, intptr_t stride1,
89 const pixel *pix2, intptr_t stride2,
int sums[2][4]);
90 float (*ssim_end4)(
int sum0[5][4],
int sum1[5][4],
int width);
94 x264_pixel_cmp_x3_t sad_x3[7];
95 x264_pixel_cmp_x4_t sad_x4[7];
96 x264_pixel_cmp_x3_t satd_x3[7];
97 x264_pixel_cmp_x4_t satd_x4[7];
100 void (*intra_mbcmp_x3_16x16)(pixel *fenc, pixel *fdec,
int res[3]);
101 void (*intra_satd_x3_16x16)(pixel *fenc, pixel *fdec,
int res[3]);
102 void (*intra_sad_x3_16x16)(pixel *fenc, pixel *fdec,
int res[3]);
104 void (*intra_mbcmp_x3_4x4)(pixel *fenc, pixel *fdec,
int res[3]);
105 void (*intra_satd_x3_4x4)(pixel *fenc, pixel *fdec,
int res[3]);
106 void (*intra_sad_x3_4x4)(pixel *fenc, pixel *fdec,
int res[3]);
108 void (*intra_mbcmp_x4_4x4_h)(pixel *fenc, pixel *fdec,
int res[9]);
109 void (*intra_satd_x4_4x4_h)(pixel *fenc, pixel *fdec,
int res[9]);
110 void (*intra_sad_x4_4x4_h)(pixel *fenc, pixel *fdec,
int res[9]);
112 void (*intra_mbcmp_x4_4x4_v)(pixel *fenc, pixel *fdec,
int res[9]);
113 void (*intra_satd_x4_4x4_v)(pixel *fenc, pixel *fdec,
int res[9]);
114 void (*intra_sad_x4_4x4_v)(pixel *fenc, pixel *fdec,
int res[9]);
116 void (*intra_mbcmp_x3_chroma)(pixel *fenc, pixel *fdec,
int res[3]);
117 void (*intra_satd_x3_chroma)(pixel *fenc, pixel *fdec,
int res[3]);
118 void (*intra_sad_x3_chroma)(pixel *fenc, pixel *fdec,
int res[3]);
120 void (*intra_mbcmp_x3_8x8c)(pixel *fenc, pixel *fdec,
int res[3]);
121 void (*intra_satd_x3_8x8c)(pixel *fenc, pixel *fdec,
int res[3]);
122 void (*intra_sad_x3_8x8c)(pixel *fenc, pixel *fdec,
int res[3]);
126 int (*intra_mbcmp_x9_4x4)(pixel *fenc, pixel *fdec, uint16_t *bitcosts);
127 int (*intra_satd_x9_4x4)(pixel *fenc, pixel *fdec, uint16_t *bitcosts);
128 int (*intra_sad_x9_4x4)(pixel *fenc, pixel *fdec, uint16_t *bitcosts);
135 void x264_pixel_ssd_nv12(
x264_pixel_function_t *pf, pixel *pix1, intptr_t i_pix1, pixel *pix2, intptr_t i_pix2,
136 int i_width,
int i_height, uint64_t *ssd_u, uint64_t *ssd_v);
137 uint64_t x264_pixel_ssd_wxh(
x264_pixel_function_t *pf, pixel *pix1, intptr_t i_pix1, pixel *pix2, intptr_t i_pix2,
138 int i_width,
int i_height);
139 float x264_pixel_ssim_wxh(
x264_pixel_function_t *pf, pixel *pix1, intptr_t i_pix1, pixel *pix2, intptr_t i_pix2,
140 int i_width,
int i_height,
void *buf,
int *cnt);