Simple Arithmetic on Blocks

Simple Arithmetic on Blocks — Aritmetic operations on 8x8 blocks

Synopsis

void                oil_mult8x8_s16                     (int16_t *d_8x8,
                                                         const int16_t *s1_8x8,
                                                         const int16_t *s2_8x8,
                                                         int ds,
                                                         int ss1,
                                                         int ss2);
void                oil_sad8x8_f64                      (double *d_8x8,
                                                         int ds,
                                                         const double *s1_8x8,
                                                         int ss1,
                                                         const double *s2_8x8,
                                                         int ss2);
void                oil_sad8x8_s16                      (uint32_t *d_8x8,
                                                         int ds,
                                                         const int16_t *s1_8x8,
                                                         int ss1,
                                                         const int16_t *s2_8x8,
                                                         int ss2);
void                oil_sad8x8_f64_2                    (double *d_1,
                                                         const double *s1_8x8,
                                                         int ss1,
                                                         const double *s2_8x8,
                                                         int ss2);
void                oil_sad8x8_s16_2                    (uint32_t *d_1,
                                                         const int16_t *s1_8x8,
                                                         int ss1,
                                                         const int16_t *s2_8x8,
                                                         int ss2);
void                oil_sad8x8_u8                       (uint32_t *d_1,
                                                         const uint8_t *s1_8x8,
                                                         int ss1,
                                                         const uint8_t *s2_8x8,
                                                         int ss2);

Description

Details

oil_mult8x8_s16 ()

void                oil_mult8x8_s16                     (int16_t *d_8x8,
                                                         const int16_t *s1_8x8,
                                                         const int16_t *s2_8x8,
                                                         int ds,
                                                         int ss1,
                                                         int ss2);

Multiplies each element in s1_8x8 and s2_8x8 and places the result in d_8x8.

d_8x8 :

s1_8x8 :

s2_8x8 :

ds :

ss1 :

ss2 :


oil_sad8x8_f64 ()

void                oil_sad8x8_f64                      (double *d_8x8,
                                                         int ds,
                                                         const double *s1_8x8,
                                                         int ss1,
                                                         const double *s2_8x8,
                                                         int ss2);

FIXME: This function is broken and has been replaced by @oil_sad8x8_f64_2() because the destination of this function is an 8x8 block instead of a single value.

d_8x8 :

ds :

s1_8x8 :

ss1 :

s2_8x8 :

ss2 :


oil_sad8x8_s16 ()

void                oil_sad8x8_s16                      (uint32_t *d_8x8,
                                                         int ds,
                                                         const int16_t *s1_8x8,
                                                         int ss1,
                                                         const int16_t *s2_8x8,
                                                         int ss2);

FIXME: This function is broken and has been replaced by @oil_sad8x8_s16_2() because the destination of this function is an 8x8 block instead of a single value.

d_8x8 :

ds :

s1_8x8 :

ss1 :

s2_8x8 :

ss2 :


oil_sad8x8_f64_2 ()

void                oil_sad8x8_f64_2                    (double *d_1,
                                                         const double *s1_8x8,
                                                         int ss1,
                                                         const double *s2_8x8,
                                                         int ss2);

Calculates the sum of absolute differences between elements in s1_8x8 and s2_8x8, and places the result in d_1.

d_1 :

s1_8x8 :

ss1 :

s2_8x8 :

ss2 :


oil_sad8x8_s16_2 ()

void                oil_sad8x8_s16_2                    (uint32_t *d_1,
                                                         const int16_t *s1_8x8,
                                                         int ss1,
                                                         const int16_t *s2_8x8,
                                                         int ss2);

Calculates the sum of absolute differences between elements in s1_8x8 and s2_8x8, and places the result in d_1.

d_1 :

s1_8x8 :

ss1 :

s2_8x8 :

ss2 :


oil_sad8x8_u8 ()

void                oil_sad8x8_u8                       (uint32_t *d_1,
                                                         const uint8_t *s1_8x8,
                                                         int ss1,
                                                         const uint8_t *s2_8x8,
                                                         int ss2);

Calculates the sum of absolute differences between elements in s1_8x8 and s2_8x8, and places the result in d_1.

d_1 :

s1_8x8 :

ss1 :

s2_8x8 :

ss2 :