comparison bfin/dsputil_bfin.c @ 5690:930587f0259d libavcodec

blackfin vsad primitives
author mhoffman
date Mon, 17 Sep 2007 13:23:16 +0000
parents 6c385356e61f
children 73ec16dbcbc1
comparison
equal deleted inserted replaced
5689:84bc9138be8f 5690:930587f0259d
159 static int bfin_pix_abs16 (void *c, uint8_t *blk1, uint8_t *blk2, int line_size, int h) 159 static int bfin_pix_abs16 (void *c, uint8_t *blk1, uint8_t *blk2, int line_size, int h)
160 { 160 {
161 return ff_bfin_z_sad16x16 (blk1,blk2,line_size,line_size,h); 161 return ff_bfin_z_sad16x16 (blk1,blk2,line_size,line_size,h);
162 } 162 }
163 163
164 static int bfin_vsad_intra16 (void *c, uint8_t *blk1, uint8_t *dummy, int stride, int h) {
165 return ff_bfin_z_sad16x16 (blk1,blk1+stride,stride<<1,stride<<1,h);
166 }
167
168 static int bfin_vsad (void *c, uint8_t *blk1, uint8_t *blk2, int stride, int h) {
169 return ff_bfin_z_sad16x16 (blk1,blk1+stride,stride<<1,stride<<1,h)
170 + ff_bfin_z_sad16x16 (blk2,blk2+stride,stride<<1,stride<<1,h);
171 }
172
164 static uint8_t vtmp_blk[256] __attribute__((l1_data_B)); 173 static uint8_t vtmp_blk[256] __attribute__((l1_data_B));
165 174
166 static int bfin_pix_abs16_x2 (void *c, uint8_t *blk1, uint8_t *blk2, int line_size, int h) 175 static int bfin_pix_abs16_x2 (void *c, uint8_t *blk1, uint8_t *blk2, int line_size, int h)
167 { 176 {
168 ff_bfin_put_pixels16uc (vtmp_blk, blk2, blk2+1, 16, line_size, h); 177 ff_bfin_put_pixels16uc (vtmp_blk, blk2, blk2+1, 16, line_size, h);
227 c->pix_sum = ff_bfin_pix_sum; 236 c->pix_sum = ff_bfin_pix_sum;
228 c->pix_norm1 = ff_bfin_pix_norm1; 237 c->pix_norm1 = ff_bfin_pix_norm1;
229 238
230 c->sad[0] = bfin_pix_abs16; 239 c->sad[0] = bfin_pix_abs16;
231 c->sad[1] = bfin_pix_abs8; 240 c->sad[1] = bfin_pix_abs8;
241
242 c->vsad[0] = bfin_vsad;
243 c->vsad[4] = bfin_vsad_intra16;
232 244
233 /* TODO [0] 16 [1] 8 */ 245 /* TODO [0] 16 [1] 8 */
234 c->pix_abs[0][0] = bfin_pix_abs16; 246 c->pix_abs[0][0] = bfin_pix_abs16;
235 c->pix_abs[0][1] = bfin_pix_abs16_x2; 247 c->pix_abs[0][1] = bfin_pix_abs16_x2;
236 c->pix_abs[0][2] = bfin_pix_abs16_y2; 248 c->pix_abs[0][2] = bfin_pix_abs16_y2;