static void horizontal_compose_dirac53i(IDWTELEM *b, IDWTELEM *temp, int w) { const int w2 = w >> 1; int x; temp[0] = COMPOSE_53iL0(b[w2], b[0], b[w2]); for (x = 1; x < w2; x++) { temp[x ] = COMPOSE_53iL0 (b[x+w2-1], b[x ], b[x+w2]); temp[x+w2-1] = COMPOSE_DIRAC53iH0(temp[x-1], b[x+w2-1], temp[x]); } temp[w-1] = COMPOSE_DIRAC53iH0(temp[w2-1], b[w-1], temp[w2-1]); interleave(b, temp, temp+w2, w2, 1, 1); }
static void RENAME(horizontal_compose_dirac53i)(uint8_t *_b, uint8_t *_temp, int w) { int x; const int w2 = w >> 1; TYPE *b = (TYPE *)_b; TYPE *temp = (TYPE *)_temp; temp[0] = COMPOSE_53iL0(b[w2], b[0], b[w2]); for (x = 1; x < w2; x++) { temp[x ] = COMPOSE_53iL0 (b[x+w2-1], b[x ], b[x+w2]); temp[x+w2-1] = COMPOSE_DIRAC53iH0(temp[x-1], b[x+w2-1], temp[x]); } temp[w-1] = COMPOSE_DIRAC53iH0(temp[w2-1], b[w-1], temp[w2-1]); RENAME(interleave)(b, temp, temp+w2, w2, 1, 1); }
static void vertical_compose_dirac53iH0(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) { int i; for(i=0; i<width; i++){ b1[i] = COMPOSE_DIRAC53iH0(b0[i], b1[i], b2[i]); } }
static void RENAME(vertical_compose_dirac53iH0)(uint8_t *_b0, uint8_t *_b1, uint8_t *_b2, int width) { int i; TYPE *b0 = (TYPE *)_b0; TYPE *b1 = (TYPE *)_b1; TYPE *b2 = (TYPE *)_b2; for(i=0; i<width; i++){ b1[i] = COMPOSE_DIRAC53iH0(b0[i], b1[i], b2[i]); } }