28#define pw_1 (ULONG_MAX / UINT16_MAX)
32 unsigned long pw_lsb = (
mask >> 1) *
pw_1;
33 unsigned long pw_msb = pw_lsb +
pw_1;
34 for (
i = 0;
i <=
w - (int)
sizeof(long)/2;
i +=
sizeof(long)/2) {
35 long a = *(
long*)(
src+
i);
36 long b = *(
long*)(
dst+
i);
37 *(
long*)(
dst+
i) = ((
a&pw_lsb) + (
b&pw_lsb)) ^ ((
a^
b)&pw_msb);
61 intptr_t
w, uint8_t *
left)
66 for (
i = 0;
i <
w;
i++) {
94#elif ARCH_X86 && HAVE_X86ASM
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
static int BS_FUNC left(const BSCTX *bc)
Return the number of the bits left in a buffer.
#define i(width, name, range_min, range_max)
huffyuv codec for libavcodec.
void ff_huffyuvdsp_init_x86(HuffYUVDSPContext *c)
void ff_huffyuvdsp_init_riscv(HuffYUVDSPContext *c)
av_cold void ff_huffyuvdsp_init_aarch64(HuffYUVDSPContext *c)
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)
av_cold void ff_huffyuvdsp_init(HuffYUVDSPContext *c)
static void add_int16_c(uint16_t *dst, const uint16_t *src, unsigned mask, int w)
static void add_hfyu_left_pred_bgr32_c(uint8_t *dst, const uint8_t *src, intptr_t w, uint8_t *left)
Macro definitions for various function/variable attributes.
static const uint16_t mask[17]
static av_always_inline int diff(const struct color_info *a, const struct color_info *b, const int trans_thresh)