예제 #1
0
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]);
    }
}
예제 #2
0
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]);
    }
}
예제 #3
0
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);
}
예제 #4
0
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);
}