static void vertical_compose_haar(IDWTELEM *b0, IDWTELEM *b1, int width) { int i; for (i = 0; i < width; i++) { b0[i] = COMPOSE_HAARiL0(b0[i], b1[i]); b1[i] = COMPOSE_HAARiH0(b1[i], b0[i]); } }
static void RENAME(vertical_compose_haar)(uint8_t *_b0, uint8_t *_b1, int width) { int i; TYPE *b0 = (TYPE *)_b0; TYPE *b1 = (TYPE *)_b1; for (i = 0; i < width; i++) { b0[i] = COMPOSE_HAARiL0(b0[i], b1[i]); b1[i] = COMPOSE_HAARiH0(b1[i], b0[i]); } }
static av_always_inline void RENAME(horizontal_compose_haari)(TYPE *b, TYPE *temp, int w, int shift) { const int w2 = w >> 1; int x; for (x = 0; x < w2; x++) { temp[x ] = COMPOSE_HAARiL0(b[x ], b[x+w2]); temp[x+w2] = COMPOSE_HAARiH0(b[x+w2], temp[x]); } RENAME(interleave)(b, temp, temp+w2, w2, shift, shift); }
static av_always_inline void horizontal_compose_haari(IDWTELEM *b, IDWTELEM *temp, int w, int shift) { const int w2 = w >> 1; int x; for (x = 0; x < w2; x++) { temp[x ] = COMPOSE_HAARiL0(b[x ], b[x+w2]); temp[x+w2] = COMPOSE_HAARiH0(b[x+w2], temp[x]); } interleave(b, temp, temp+w2, w2, shift, shift); }