diff options
author | Loren Merritt <lorenm@u.washington.edu> | 2005-01-07 05:56:07 +0000 |
---|---|---|
committer | Loren Merritt <lorenm@u.washington.edu> | 2005-01-07 05:56:07 +0000 |
commit | 9f2d1b4ff5b2c3a3da16752d99c778f2e954c92d (patch) | |
tree | 576eb7c010474c5961875b5bc8c75d835ae01bc2 /libavcodec/dsputil.h | |
parent | 85df8f7cf0b30ebba2bfc9fdd48d2582729744cc (diff) | |
download | ffmpeg-9f2d1b4ff5b2c3a3da16752d99c778f2e954c92d.tar.gz |
H.264 weighted prediction.
Bidirectional weighting has not been tested for bitwise accuracy, but looks correct.
Originally committed as revision 3811 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/dsputil.h')
-rw-r--r-- | libavcodec/dsputil.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/dsputil.h b/libavcodec/dsputil.h index 83b10baf81..7598b3a251 100644 --- a/libavcodec/dsputil.h +++ b/libavcodec/dsputil.h @@ -105,6 +105,8 @@ typedef void (*op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const ui typedef void (*tpel_mc_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int w, int h); typedef void (*qpel_mc_func)(uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride); typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); +typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset); +typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offsetd, int offsets); #define DEF_OLD_QPEL(name)\ void ff_put_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\ @@ -258,6 +260,9 @@ typedef struct DSPContext { qpel_mc_func put_h264_qpel_pixels_tab[3][16]; qpel_mc_func avg_h264_qpel_pixels_tab[3][16]; + h264_weight_func weight_h264_pixels_tab[10]; + h264_biweight_func biweight_h264_pixels_tab[10]; + me_cmp_func pix_abs[2][4]; /* huffyuv specific */ |