27 #define pw_1 (ULONG_MAX / UINT16_MAX) 31 unsigned long pw_lsb = (mask >> 1) *
pw_1;
32 unsigned long pw_msb = pw_lsb +
pw_1;
33 for (i = 0; i <= w - (
int)
sizeof(
long)/2; i +=
sizeof(long)/2) {
34 long a = *(
long*)(src+i);
35 long b = *(
long*)(dst+i);
36 *(
long*)(dst+i) = ((a&pw_lsb) + (b&pw_lsb)) ^ ((a^b)&pw_msb);
39 dst[i] = (dst[i] + src[i]) &
mask;
50 l = (
mid_pred(l, src[i], (l + src[i] - lt) & mask) + diff[i]) & mask;
65 for (i = 0; i <
w; i++) {
static enum AVPixelFormat pix_fmt
Macro definitions for various function/variable attributes.
void(* add_int16)(uint16_t *dst, const uint16_t *src, unsigned mask, int w)
static void add_hfyu_median_pred_int16_c(uint16_t *dst, const uint16_t *src, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top)
static const uint16_t mask[17]
void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt)
av_cold void ff_huffyuvdsp_init(HuffYUVDSPContext *c, enum AVPixelFormat pix_fmt)
void(* add_hfyu_left_pred_bgr32)(uint8_t *dst, const uint8_t *src, intptr_t w, uint8_t *left)
void(* add_hfyu_median_pred_int16)(uint16_t *dst, const uint16_t *top, const uint16_t *diff, unsigned mask, int w, int *left, int *left_top)
static void add_hfyu_left_pred_bgr32_c(uint8_t *dst, const uint8_t *src, intptr_t w, uint8_t *left)
static av_always_inline int diff(const uint32_t a, const uint32_t b)
static void add_int16_c(uint16_t *dst, const uint16_t *src, unsigned mask, int w)
AVPixelFormat
Pixel format.