Mercurial > libavcodec.hg
comparison dsputil.h @ 2415:db2cf6005d19 libavcodec
H.264 weighted prediction.
Bidirectional weighting has not been tested for bitwise accuracy, but looks correct.
author | lorenm |
---|---|
date | Fri, 07 Jan 2005 05:56:07 +0000 |
parents | 55a72627a2c5 |
children | 72e6ffa1f3a5 |
comparison
equal
deleted
inserted
replaced
2414:18d77621fbc7 | 2415:db2cf6005d19 |
---|---|
103 //h for op_pixels_func is limited to {width/2, width} but never larger than 16 and never smaller then 4 | 103 //h for op_pixels_func is limited to {width/2, width} but never larger than 16 and never smaller then 4 |
104 typedef void (*op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int h); | 104 typedef void (*op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int h); |
105 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); | 105 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); |
106 typedef void (*qpel_mc_func)(uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride); | 106 typedef void (*qpel_mc_func)(uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride); |
107 typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); | 107 typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); |
108 typedef void (*h264_weight_func)(uint8_t *block, int stride, int log2_denom, int weight, int offset); | |
109 typedef void (*h264_biweight_func)(uint8_t *dst, uint8_t *src, int stride, int log2_denom, int weightd, int weights, int offsetd, int offsets); | |
108 | 110 |
109 #define DEF_OLD_QPEL(name)\ | 111 #define DEF_OLD_QPEL(name)\ |
110 void ff_put_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\ | 112 void ff_put_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\ |
111 void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\ | 113 void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\ |
112 void ff_avg_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride); | 114 void ff_avg_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride); |
255 h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; | 257 h264_chroma_mc_func put_h264_chroma_pixels_tab[3]; |
256 h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; | 258 h264_chroma_mc_func avg_h264_chroma_pixels_tab[3]; |
257 | 259 |
258 qpel_mc_func put_h264_qpel_pixels_tab[3][16]; | 260 qpel_mc_func put_h264_qpel_pixels_tab[3][16]; |
259 qpel_mc_func avg_h264_qpel_pixels_tab[3][16]; | 261 qpel_mc_func avg_h264_qpel_pixels_tab[3][16]; |
262 | |
263 h264_weight_func weight_h264_pixels_tab[10]; | |
264 h264_biweight_func biweight_h264_pixels_tab[10]; | |
260 | 265 |
261 me_cmp_func pix_abs[2][4]; | 266 me_cmp_func pix_abs[2][4]; |
262 | 267 |
263 /* huffyuv specific */ | 268 /* huffyuv specific */ |
264 void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w); | 269 void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w); |