comparison vp8dsp.c @ 12235:e08d65897115 libavcodec

VP8: clear DCT blocks in iDCT instead of using clear_blocks. ~0.3% faster overall.
author darkshikari
date Fri, 23 Jul 2010 00:07:16 +0000
parents 80b142c2e9f7
children 1a7903913e9b
comparison
equal deleted inserted replaced
12234:bba849c2a113 12235:e08d65897115
67 for (i = 0; i < 4; i++) { 67 for (i = 0; i < 4; i++) {
68 t0 = block[0*4+i] + block[2*4+i]; 68 t0 = block[0*4+i] + block[2*4+i];
69 t1 = block[0*4+i] - block[2*4+i]; 69 t1 = block[0*4+i] - block[2*4+i];
70 t2 = MUL_35468(block[1*4+i]) - MUL_20091(block[3*4+i]); 70 t2 = MUL_35468(block[1*4+i]) - MUL_20091(block[3*4+i]);
71 t3 = MUL_20091(block[1*4+i]) + MUL_35468(block[3*4+i]); 71 t3 = MUL_20091(block[1*4+i]) + MUL_35468(block[3*4+i]);
72 block[0*4+i] = 0;
73 block[1*4+i] = 0;
74 block[2*4+i] = 0;
75 block[3*4+i] = 0;
72 76
73 tmp[i*4+0] = t0 + t3; 77 tmp[i*4+0] = t0 + t3;
74 tmp[i*4+1] = t1 + t2; 78 tmp[i*4+1] = t1 + t2;
75 tmp[i*4+2] = t1 - t2; 79 tmp[i*4+2] = t1 - t2;
76 tmp[i*4+3] = t0 - t3; 80 tmp[i*4+3] = t0 - t3;
92 96
93 static void vp8_idct_dc_add_c(uint8_t *dst, DCTELEM block[16], int stride) 97 static void vp8_idct_dc_add_c(uint8_t *dst, DCTELEM block[16], int stride)
94 { 98 {
95 int i, dc = (block[0] + 4) >> 3; 99 int i, dc = (block[0] + 4) >> 3;
96 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP + dc; 100 uint8_t *cm = ff_cropTbl + MAX_NEG_CROP + dc;
101 block[0] = 0;
97 102
98 for (i = 0; i < 4; i++) { 103 for (i = 0; i < 4; i++) {
99 dst[0] = cm[dst[0]]; 104 dst[0] = cm[dst[0]];
100 dst[1] = cm[dst[1]]; 105 dst[1] = cm[dst[1]];
101 dst[2] = cm[dst[2]]; 106 dst[2] = cm[dst[2]];