FFmpeg
Macros | Functions | Variables
vp9dsp_template.c File Reference
#include "libavutil/common.h"
#include "bit_depth_template.c"
#include "vp9dsp.h"

Go to the source code of this file.

Macros

#define DST(x, y)   dst[(x) + (y) * stride]
 
#define def_diag_downleft(size)
 
#define def_diag_downright(size)
 
#define def_vert_right(size)
 
#define def_hor_down(size)
 
#define def_vert_left(size)
 
#define def_hor_up(size)
 
#define init_intra_pred_bd_aware(tx, sz)
 
#define init_intra_pred(tx, sz)
 
#define itxfm_wrapper(type_a, type_b, sz, bits, has_dconly)
 
#define itxfm_wrap(sz, bits)
 
#define IN(x)   ((dctint) in[(x) * stride])
 
#define init_itxfm(tx, sz)
 
#define init_idct(tx, nm)
 
#define lf_8_fn(dir, wd, stridea, strideb)
 
#define lf_8_fns(wd)
 
#define lf_16_fn(dir, stridea)
 
#define lf_mix_fn(dir, wd1, wd2, stridea)
 
#define lf_mix_fns(wd1, wd2)
 
#define fpel_fn(type, sz)
 
#define copy_avg_fn(sz)
 
#define FILTER_8TAP(src, x, F, stride)
 
#define filter_8tap_1d_fn(opn, opa, dir, ds)
 
#define filter_8tap_2d_fn(opn, opa)
 
#define filter_fn_1d(sz, dir, dir_m, type, type_idx, avg)
 
#define filter_fn_2d(sz, type, type_idx, avg)
 
#define FILTER_BILIN(src, x, mxy, stride)   (src[x] + ((mxy * (src[x + stride] - src[x]) + 8) >> 4))
 
#define bilin_1d_fn(opn, opa, dir, ds)
 
#define bilin_2d_fn(opn, opa)
 
#define bilinf_fn_1d(sz, dir, dir_m, avg)
 
#define bilinf_fn_2d(sz, avg)
 
#define filter_fn(sz, avg)
 
#define filter_fn_set(avg)
 
#define init_fpel(idx1, idx2, sz, type)
 
#define init_copy_avg(idx, sz)
 
#define init_subpel1_bd_aware(idx1, idx2, idxh, idxv, sz, dir, type)
 
#define init_subpel1(idx1, idx2, idxh, idxv, sz, dir, type)
 
#define init_subpel2(idx, idxh, idxv, dir, type)
 
#define init_subpel3(idx, type)
 
#define scaled_filter_8tap_fn(opn, opa)
 
#define scaled_filter_fn(sz, type, type_idx, avg)
 
#define scaled_bilin_fn(opn, opa)
 
#define scaled_bilinf_fn(sz, avg)
 
#define scaled_filter_fns(sz, avg)
 
#define scaled_filter_fn_set(avg)
 
#define init_scaled_bd_aware(idx1, idx2, sz, type)
 
#define init_scaled(idx1, idx2, sz, type)
 
#define init_scaled_put_avg(idx, sz)
 

Functions

static void vert_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void vert_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void vert_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void vert_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void hor_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void hor_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void hor_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void hor_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void tm_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void tm_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void tm_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void tm_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void dc_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void dc_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void dc_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void dc_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *_top)
 
static void dc_left_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void dc_left_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void dc_left_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void dc_left_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *_left, const uint8_t *top)
 
static void dc_top_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void dc_top_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void dc_top_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void dc_top_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
static void dc_128_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_128_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_128_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_128_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_127_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_127_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_127_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_127_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_129_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_129_8x8_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_129_16x16_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void dc_129_32x32_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *top)
 
static void memset_bpc (uint16_t *dst, int val, int len)
 
static void diag_downleft_4x4_c (uint8_t *_dst, ptrdiff_t stride, const uint8_t *left, const uint8_t *_top)
 
 def_diag_downleft (8)
 
 def_diag_downright (8)
 
 def_vert_right (8)
 
 def_hor_down (8)
 
 def_vert_left (8)
 
 def_hor_up (8)
 
static av_always_inline void idct4_1d (const dctcoef *in, ptrdiff_t stride, dctcoef *out, int pass)
 
static av_always_inline void iadst4_1d (const dctcoef *in, ptrdiff_t stride, dctcoef *out, int pass)
 
 itxfm_wrap (4, 4)
 
static av_always_inline void iadst8_1d (const dctcoef *in, ptrdiff_t stride, dctcoef *out, int pass)
 
 itxfm_wrap (8, 5)
 
static av_always_inline void iadst16_1d (const dctcoef *in, ptrdiff_t stride, dctcoef *out, int pass)
 
 itxfm_wrap (16, 6)
 
 itxfm_wrapper (idct, idct, 32, 6, 1)
 
 itxfm_wrapper (iwht, iwht, 4, 0, 0)
 
static av_always_inline void loop_filter (pixel *dst, int E, int I, int H, ptrdiff_t stridea, ptrdiff_t strideb, int wd)
 
 lf_8_fns (4)
 
static av_always_inline void copy_c (uint8_t *dst, ptrdiff_t dst_stride, const uint8_t *src, ptrdiff_t src_stride, int w, int h)
 
static av_always_inline void avg_c (uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h)
 
 copy_avg_fn (64)
 
 filter_8tap_1d_fn (put, 0, v, src_stride/sizeof(pixel)) filter_8tap_1d_fn(put
 
 filter_8tap_1d_fn (avg, 1, v, src_stride/sizeof(pixel)) filter_8tap_1d_fn(avg
 
static av_always_inline void do_8tap_2d_c (uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, const int16_t *filterx, const int16_t *filtery, int avg)
 
 filter_8tap_2d_fn (put, 0)
 
 bilin_1d_fn (put, 0, v, src_stride/sizeof(pixel)) bilin_1d_fn(put
 
 bilin_1d_fn (avg, 1, v, src_stride/sizeof(pixel)) bilin_1d_fn(avg
 
static av_always_inline void do_bilin_2d_c (uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, int mx, int my, int avg)
 
 bilin_2d_fn (put, 0)
 
static av_always_inline void do_scaled_8tap_c (uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, int mx, int my, int dx, int dy, int avg, const int16_t(*filters)[8])
 
 scaled_filter_8tap_fn (put, 0)
 
 scaled_bilin_fn (put, 0)
 
av_cold void FUNC() ff_vp9dsp_init (VP9DSPContext *dsp)
 

Variables

 h
 

Macro Definition Documentation

#define DST (   x,
 
)    dst[(x) + (y) * stride]
#define def_diag_downleft (   size)
Value:
static void diag_downleft_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *left, const uint8_t *_top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *top = (const pixel *) _top; \
int i, j; \
pixel v[size - 1]; \
stride /= sizeof(pixel); \
for (i = 0; i < size - 2; i++) \
v[i] = (top[i] + top[i + 1] * 2 + top[i + 2] + 2) >> 2; \
v[size - 2] = (top[size - 2] + top[size - 1] * 3 + 2) >> 2; \
for (j = 0; j < size; j++) { \
memcpy(dst + j*stride, v + j, (size - 1 - j) * sizeof(pixel)); \
memset_bpc(dst + j*stride + size - 1 - j, top[size - 1], j + 1); \
} \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
static void memset_bpc(uint16_t *dst, int val, int len)
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 801 of file vp9dsp_template.c.

#define def_diag_downright (   size)
Value:
static void diag_downright_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *_left, const uint8_t *_top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *top = (const pixel *) _top; \
const pixel *left = (const pixel *) _left; \
int i, j; \
pixel v[size + size - 1]; \
stride /= sizeof(pixel); \
for (i = 0; i < size - 2; i++) { \
v[i ] = (left[i] + left[i + 1] * 2 + left[i + 2] + 2) >> 2; \
v[size + 1 + i] = (top[i] + top[i + 1] * 2 + top[i + 2] + 2) >> 2; \
} \
v[size - 2] = (left[size - 2] + left[size - 1] * 2 + top[-1] + 2) >> 2; \
v[size - 1] = (left[size - 1] + top[-1] * 2 + top[ 0] + 2) >> 2; \
v[size ] = (top[-1] + top[0] * 2 + top[ 1] + 2) >> 2; \
for (j = 0; j < size; j++) \
memcpy(dst + j*stride, v + size - 1 - j, size * sizeof(pixel)); \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 844 of file vp9dsp_template.c.

#define def_vert_right (   size)
Value:
static void vert_right_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *_left, const uint8_t *_top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *top = (const pixel *) _top; \
const pixel *left = (const pixel *) _left; \
int i, j; \
pixel ve[size + size/2 - 1], vo[size + size/2 - 1]; \
stride /= sizeof(pixel); \
for (i = 0; i < size/2 - 2; i++) { \
vo[i] = (left[i*2 + 3] + left[i*2 + 2] * 2 + left[i*2 + 1] + 2) >> 2; \
ve[i] = (left[i*2 + 4] + left[i*2 + 3] * 2 + left[i*2 + 2] + 2) >> 2; \
} \
vo[size/2 - 2] = (left[size - 1] + left[size - 2] * 2 + left[size - 3] + 2) >> 2; \
ve[size/2 - 2] = (top[-1] + left[size - 1] * 2 + left[size - 2] + 2) >> 2; \
\
ve[size/2 - 1] = (top[-1] + top[0] + 1) >> 1; \
vo[size/2 - 1] = (left[size - 1] + top[-1] * 2 + top[0] + 2) >> 2; \
for (i = 0; i < size - 1; i++) { \
ve[size/2 + i] = (top[i] + top[i + 1] + 1) >> 1; \
vo[size/2 + i] = (top[i - 1] + top[i] * 2 + top[i + 1] + 2) >> 2; \
} \
for (j = 0; j < size / 2; j++) { \
memcpy(dst + j*2 *stride, ve + size/2 - 1 - j, size * sizeof(pixel)); \
memcpy(dst + (j*2 + 1)*stride, vo + size/2 - 1 - j, size * sizeof(pixel)); \
} \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 893 of file vp9dsp_template.c.

#define def_hor_down (   size)
Value:
static void hor_down_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *_left, const uint8_t *_top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *top = (const pixel *) _top; \
const pixel *left = (const pixel *) _left; \
int i, j; \
pixel v[size * 3 - 2]; \
stride /= sizeof(pixel); \
for (i = 0; i < size - 2; i++) { \
v[i*2 ] = (left[i + 1] + left[i + 0] + 1) >> 1; \
v[i*2 + 1] = (left[i + 2] + left[i + 1] * 2 + left[i + 0] + 2) >> 2; \
v[size*2 + i] = (top[i - 1] + top[i] * 2 + top[i + 1] + 2) >> 2; \
} \
v[size*2 - 2] = (top[-1] + left[size - 1] + 1) >> 1; \
v[size*2 - 4] = (left[size - 1] + left[size - 2] + 1) >> 1; \
v[size*2 - 1] = (top[0] + top[-1] * 2 + left[size - 1] + 2) >> 2; \
v[size*2 - 3] = (top[-1] + left[size - 1] * 2 + left[size - 2] + 2) >> 2; \
for (j = 0; j < size; j++) \
memcpy(dst + j*stride, v + size*2 - 2 - j*2, size * sizeof(pixel)); \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 950 of file vp9dsp_template.c.

#define def_vert_left (   size)
Value:
static void vert_left_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *left, const uint8_t *_top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *top = (const pixel *) _top; \
int i, j; \
pixel ve[size - 1], vo[size - 1]; \
stride /= sizeof(pixel); \
for (i = 0; i < size - 2; i++) { \
ve[i] = (top[i] + top[i + 1] + 1) >> 1; \
vo[i] = (top[i] + top[i + 1] * 2 + top[i + 2] + 2) >> 2; \
} \
ve[size - 2] = (top[size - 2] + top[size - 1] + 1) >> 1; \
vo[size - 2] = (top[size - 2] + top[size - 1] * 3 + 2) >> 2; \
for (j = 0; j < size / 2; j++) { \
memcpy(dst + j*2 * stride, ve + j, (size - j - 1) * sizeof(pixel)); \
memset_bpc(dst + j*2 * stride + size - j - 1, top[size - 1], j + 1); \
memcpy(dst + (j*2 + 1) * stride, vo + j, (size - j - 1) * sizeof(pixel)); \
memset_bpc(dst + (j*2 + 1) * stride + size - j - 1, top[size - 1], j + 1); \
} \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
static void memset_bpc(uint16_t *dst, int val, int len)
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 1000 of file vp9dsp_template.c.

#define def_hor_up (   size)
Value:
static void hor_up_##size##x##size##_c(uint8_t *_dst, ptrdiff_t stride, \
const uint8_t *_left, const uint8_t *top) \
{ \
pixel *dst = (pixel *) _dst; \
const pixel *left = (const pixel *) _left; \
int i, j; \
pixel v[size*2 - 2]; \
stride /= sizeof(pixel); \
for (i = 0; i < size - 2; i++) { \
v[i*2 ] = (left[i] + left[i + 1] + 1) >> 1; \
v[i*2 + 1] = (left[i] + left[i + 1] * 2 + left[i + 2] + 2) >> 2; \
} \
v[size*2 - 4] = (left[size - 2] + left[size - 1] + 1) >> 1; \
v[size*2 - 3] = (left[size - 2] + left[size - 1] * 3 + 2) >> 2; \
for (j = 0; j < size / 2; j++) \
memcpy(dst + j*stride, v + j*2, size * sizeof(pixel)); \
for (j = size / 2; j < size; j++) { \
memcpy(dst + j*stride, v + j*2, (size*2 - 2 - j*2) * sizeof(pixel)); \
memset_bpc(dst + j*stride + size*2 - 2 - j*2, left[size - 1], \
2 + j*2 - size); \
} \
}
uint8_t
ptrdiff_t size
Definition: opengl_enc.c:100
static void memset_bpc(uint16_t *dst, int val, int len)
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
Tag MUST be and< 10hcoeff half pel interpolation filter coefficients, hcoeff[0] are the 2 middle coefficients[1] are the next outer ones and so on, resulting in a filter like:...eff[2], hcoeff[1], hcoeff[0], hcoeff[0], hcoeff[1], hcoeff[2]...the sign of the coefficients is not explicitly stored but alternates after each coeff and coeff[0] is positive, so...,+,-,+,-,+,+,-,+,-,+,...hcoeff[0] is not explicitly stored but found by subtracting the sum of all stored coefficients with signs from 32 hcoeff[0]=32-hcoeff[1]-hcoeff[2]-...a good choice for hcoeff and htaps is htaps=6 hcoeff={40,-10, 2}an alternative which requires more computations at both encoder and decoder side and may or may not be better is htaps=8 hcoeff={42,-14, 6,-2}ref_frames minimum of the number of available reference frames and max_ref_frames for example the first frame after a key frame always has ref_frames=1spatial_decomposition_type wavelet type 0 is a 9/7 symmetric compact integer wavelet 1 is a 5/3 symmetric compact integer wavelet others are reserved stored as delta from last, last is reset to 0 if always_reset||keyframeqlog quality(logarithmic quantizer scale) stored as delta from last, last is reset to 0 if always_reset||keyframemv_scale stored as delta from last, last is reset to 0 if always_reset||keyframe FIXME check that everything works fine if this changes between framesqbias dequantization bias stored as delta from last, last is reset to 0 if always_reset||keyframeblock_max_depth maximum depth of the block tree stored as delta from last, last is reset to 0 if always_reset||keyframequant_table quantization tableHighlevel bitstream structure:==============================--------------------------------------------|Header|--------------------------------------------|------------------------------------|||Block0||||split?||||yes no||||.........intra?||||:Block01:yes no||||:Block02:.................||||:Block03::y DC::ref index:||||:Block04::cb DC::motion x:||||.........:cr DC::motion y:||||.................|||------------------------------------||------------------------------------|||Block1|||...|--------------------------------------------|------------------------------------|||Y subbands||Cb subbands||Cr subbands||||------||------||------|||||LL0||HL0||||LL0||HL0||||LL0||HL0|||||------||------||------||||------||------||------|||||LH0||HH0||||LH0||HH0||||LH0||HH0|||||------||------||------||||------||------||------|||||HL1||LH1||||HL1||LH1||||HL1||LH1|||||------||------||------||||------||------||------|||||HH1||HL2||||HH1||HL2||||HH1||HL2|||||...||...||...|||------------------------------------|--------------------------------------------Decoding process:=================------------|||Subbands|------------||||------------|Intra DC||||LL0 subband prediction------------|\Dequantization-------------------\||Reference frames|\IDWT|--------------|Motion\|||Frame 0||Frame 1||Compensation.OBMC v-------|--------------|--------------.\------> Frame n output Frame Frame<----------------------------------/|...|-------------------Range Coder:============Binary Range Coder:-------------------The implemented range coder is an adapted version based upon"Range encoding: an algorithm for removing redundancy from a digitised message."by G.N.N.Martin.The symbols encoded by the Snow range coder are bits(0|1).The associated probabilities are not fix but change depending on the symbol mix seen so far.bit seen|new state---------+-----------------------------------------------0|256-state_transition_table[256-old_state];1|state_transition_table[old_state];state_transition_table={0, 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 190, 191, 192, 194, 194, 195, 196, 197, 198, 199, 200, 201, 202, 202, 204, 205, 206, 207, 208, 209, 209, 210, 211, 212, 213, 215, 215, 216, 217, 218, 219, 220, 220, 222, 223, 224, 225, 226, 227, 227, 229, 229, 230, 231, 232, 234, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 248, 0, 0, 0, 0, 0, 0, 0};FIXME Range Coding of integers:-------------------------FIXME Neighboring Blocks:===================left and top are set to the respective blocks unless they are outside of the image in which case they are set to the Null block top-left is set to the top left block unless it is outside of the image in which case it is set to the left block if this block has no larger parent block or it is at the left side of its parent block and the top right block is not outside of the image then the top right block is used for top-right else the top-left block is used Null block y, cb, cr are 128 level, ref, mx and my are 0 Motion Vector Prediction:=========================1.the motion vectors of all the neighboring blocks are scaled to compensate for the difference of reference frames scaled_mv=(mv *(256 *(current_reference+1)/(mv.reference+1))+128)> the median of the scaled left
Definition: snow.txt:206
uint8_t pixel
Definition: tiny_ssim.c:42
int
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define stride
for(j=16;j >0;--j)

Definition at line 1046 of file vp9dsp_template.c.

#define init_intra_pred_bd_aware (   tx,
  sz 
)
Value:
dsp->intra_pred[tx][TM_VP8_PRED] = tm_##sz##_c; \
dsp->intra_pred[tx][DC_128_PRED] = dc_128_##sz##_c; \
dsp->intra_pred[tx][DC_127_PRED] = dc_127_##sz##_c; \
dsp->intra_pred[tx][DC_129_PRED] = dc_129_##sz##_c
#define init_intra_pred (   tx,
  sz 
)
Value:
dsp->intra_pred[tx][VERT_PRED] = vert_##sz##_c; \
dsp->intra_pred[tx][HOR_PRED] = hor_##sz##_c; \
dsp->intra_pred[tx][DC_PRED] = dc_##sz##_c; \
dsp->intra_pred[tx][DIAG_DOWN_LEFT_PRED] = diag_downleft_##sz##_c; \
dsp->intra_pred[tx][DIAG_DOWN_RIGHT_PRED] = diag_downright_##sz##_c; \
dsp->intra_pred[tx][VERT_RIGHT_PRED] = vert_right_##sz##_c; \
dsp->intra_pred[tx][HOR_DOWN_PRED] = hor_down_##sz##_c; \
dsp->intra_pred[tx][VERT_LEFT_PRED] = vert_left_##sz##_c; \
dsp->intra_pred[tx][HOR_UP_PRED] = hor_up_##sz##_c; \
dsp->intra_pred[tx][LEFT_DC_PRED] = dc_left_##sz##_c; \
dsp->intra_pred[tx][TOP_DC_PRED] = dc_top_##sz##_c; \
Definition: vp9.h:47
Definition: vp9.h:46
#define init_intra_pred_bd_aware(tx, sz)
Definition: vp9.h:48
#define itxfm_wrapper (   type_a,
  type_b,
  sz,
  bits,
  has_dconly 
)

Definition at line 1123 of file vp9dsp_template.c.

#define itxfm_wrap (   sz,
  bits 
)
Value:
itxfm_wrapper(iadst, idct, sz, bits, 0) \
itxfm_wrapper(idct, iadst, sz, bits, 0) \
itxfm_wrapper(iadst, iadst, sz, bits, 0)
#define itxfm_wrapper(type_a, type_b, sz, bits, has_dconly)
static void idct(int16_t block[64])
Definition: 4xm.c:163
uint8_t bits
Definition: vp3data.h:202

Definition at line 1162 of file vp9dsp_template.c.

#define IN (   x)    ((dctint) in[(x) * stride])
#define init_itxfm (   tx,
  sz 
)
Value:
dsp->itxfm_add[tx][DCT_DCT] = idct_idct_##sz##_add_c; \
dsp->itxfm_add[tx][DCT_ADST] = iadst_idct_##sz##_add_c; \
dsp->itxfm_add[tx][ADST_DCT] = idct_iadst_##sz##_add_c; \
dsp->itxfm_add[tx][ADST_ADST] = iadst_iadst_##sz##_add_c
Definition: vp9.h:38
Definition: vp9.h:39
Definition: vp9.h:41
Definition: vp9.h:40

Referenced by itxfm_wrapper().

#define init_idct (   tx,
  nm 
)
Value:
dsp->itxfm_add[tx][DCT_DCT] = \
dsp->itxfm_add[tx][ADST_DCT] = \
dsp->itxfm_add[tx][DCT_ADST] = \
dsp->itxfm_add[tx][ADST_ADST] = nm##_add_c
Definition: vp9.h:38
Definition: vp9.h:39
Definition: vp9.h:41
Definition: vp9.h:40

Referenced by itxfm_wrapper().

#define lf_8_fn (   dir,
  wd,
  stridea,
  strideb 
)
Value:
static void loop_filter_##dir##_##wd##_8_c(uint8_t *_dst, \
ptrdiff_t stride, \
int E, int I, int H) \
{ \
pixel *dst = (pixel *) _dst; \
stride /= sizeof(pixel); \
loop_filter(dst, E, I, H, stridea, strideb, wd); \
}
uint8_t
#define _
#define E
Definition: avdct.c:32
uint8_t pixel
Definition: tiny_ssim.c:42
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define H
Definition: pixlet.c:39
static av_always_inline void loop_filter(pixel *dst, int E, int I, int H, ptrdiff_t stridea, ptrdiff_t strideb, int wd)
#define stride

Definition at line 1859 of file vp9dsp_template.c.

#define lf_8_fns (   wd)
Value:
lf_8_fn(h, wd, stride, 1) \
lf_8_fn(v, wd, 1, stride)
#define lf_8_fn(dir, wd, stridea, strideb)
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104

Definition at line 1869 of file vp9dsp_template.c.

#define lf_16_fn (   dir,
  stridea 
)
Value:
static void loop_filter_##dir##_16_16_c(uint8_t *dst, \
ptrdiff_t stride, \
int E, int I, int H) \
{ \
loop_filter_##dir##_16_8_c(dst, stride, E, I, H); \
loop_filter_##dir##_16_8_c(dst + 8 * stridea, stride, E, I, H); \
}
uint8_t
#define E
Definition: avdct.c:32
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define H
Definition: pixlet.c:39
#define lf_mix_fn (   dir,
  wd1,
  wd2,
  stridea 
)
Value:
static void loop_filter_##dir##_##wd1##wd2##_16_c(uint8_t *dst, \
ptrdiff_t stride, \
int E, int I, int H) \
{ \
loop_filter_##dir##_##wd1##_8_c(dst, stride, E & 0xff, I & 0xff, H & 0xff); \
loop_filter_##dir##_##wd2##_8_c(dst + 8 * stridea, stride, E >> 8, I >> 8, H >> 8); \
}
uint8_t
#define _
#define E
Definition: avdct.c:32
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define H
Definition: pixlet.c:39
#define lf_mix_fns (   wd1,
  wd2 
)
Value:
lf_mix_fn(h, wd1, wd2, stride) \
lf_mix_fn(v, wd1, wd2, sizeof(pixel))
#define lf_mix_fn(dir, wd1, wd2, stridea)
uint8_t pixel
Definition: tiny_ssim.c:42
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define fpel_fn (   type,
  sz 
)
Value:
static void type##sz##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
type##_c(dst, dst_stride, src, src_stride, sz, h); \
}
GLint GLenum type
Definition: opengl_enc.c:104
#define src
Definition: vp8dsp.c:254
uint8_t

Definition at line 1971 of file vp9dsp_template.c.

#define copy_avg_fn (   sz)
Value:
static void copy(const float *p1, float *p2, const int length)
#define fpel_fn(type, sz)
#define avg(a, b, c, d)

Definition at line 1979 of file vp9dsp_template.c.

#define FILTER_8TAP (   src,
  x,
  F,
  stride 
)
Value:
av_clip_pixel((F[0] * src[x + -3 * stride] + \
F[1] * src[x + -2 * stride] + \
F[2] * src[x + -1 * stride] + \
F[3] * src[x + +0 * stride] + \
F[4] * src[x + +1 * stride] + \
F[5] * src[x + +2 * stride] + \
F[6] * src[x + +3 * stride] + \
F[7] * src[x + +4 * stride] + 64) >> 7)
#define src
Definition: vp8dsp.c:254
#define av_clip_pixel(a)
GLint GLenum GLboolean GLsizei stride
Definition: opengl_enc.c:104
#define F(x)

Referenced by copy_avg_fn(), do_8tap_2d_c(), and do_scaled_8tap_c().

#define filter_8tap_1d_fn (   opn,
  opa,
  dir,
  ds 
)
Value:
static av_noinline void opn##_8tap_1d_##dir##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, const int16_t *filter) \
{ \
do_8tap_1d_c(dst, dst_stride, src, src_stride, w, h, ds, filter, opa); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
uint8_t w
Definition: llviddspenc.c:38
#define av_noinline
Definition: attributes.h:62

Definition at line 2029 of file vp9dsp_template.c.

#define filter_8tap_2d_fn (   opn,
  opa 
)
Value:
static av_noinline void opn##_8tap_2d_hv_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, const int16_t *filterx, \
const int16_t *filtery) \
{ \
do_8tap_2d_c(dst, dst_stride, src, src_stride, w, h, filterx, filtery, opa); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
uint8_t w
Definition: llviddspenc.c:38
static av_always_inline void do_8tap_2d_c(uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, const int16_t *filterx, const int16_t *filtery, int avg)
#define av_noinline
Definition: attributes.h:62

Definition at line 2083 of file vp9dsp_template.c.

#define filter_fn_1d (   sz,
  dir,
  dir_m,
  type,
  type_idx,
  avg 
)
Value:
static void avg##_8tap_##type##_##sz##dir##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
avg##_8tap_1d_##dir##_c(dst, dst_stride, src, src_stride, sz, h, \
ff_vp9_subpel_filters[type_idx][dir_m]); \
}
GLint GLenum type
Definition: opengl_enc.c:104
#define src
Definition: vp8dsp.c:254
uint8_t
const int16_t ff_vp9_subpel_filters[3][16][8]
Definition: vp9dsp.c:28
#define _
#define avg(a, b, c, d)
#define filter_fn_2d (   sz,
  type,
  type_idx,
  avg 
)
Value:
static void avg##_8tap_##type##_##sz##hv_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
avg##_8tap_2d_hv_c(dst, dst_stride, src, src_stride, sz, h, \
ff_vp9_subpel_filters[type_idx][mx], \
ff_vp9_subpel_filters[type_idx][my]); \
}
GLint GLenum type
Definition: opengl_enc.c:104
#define src
Definition: vp8dsp.c:254
uint8_t
const int16_t ff_vp9_subpel_filters[3][16][8]
Definition: vp9dsp.c:28
#define _
#define avg(a, b, c, d)
#define FILTER_BILIN (   src,
  x,
  mxy,
  stride 
)    (src[x] + ((mxy * (src[x + stride] - src[x]) + 8) >> 4))
#define bilin_1d_fn (   opn,
  opa,
  dir,
  ds 
)
Value:
static av_noinline void opn##_bilin_1d_##dir##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, int mxy) \
{ \
do_bilin_1d_c(dst, dst_stride, src, src_stride, w, h, ds, mxy, opa); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
uint8_t w
Definition: llviddspenc.c:38
#define av_noinline
Definition: attributes.h:62

Definition at line 2145 of file vp9dsp_template.c.

#define bilin_2d_fn (   opn,
  opa 
)
Value:
static av_noinline void opn##_bilin_2d_hv_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, int mx, int my) \
{ \
do_bilin_2d_c(dst, dst_stride, src, src_stride, w, h, mx, my, opa); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
static av_always_inline void do_bilin_2d_c(uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, int mx, int my, int avg)
uint8_t w
Definition: llviddspenc.c:38
#define av_noinline
Definition: attributes.h:62

Definition at line 2197 of file vp9dsp_template.c.

#define bilinf_fn_1d (   sz,
  dir,
  dir_m,
  avg 
)
Value:
static void avg##_bilin_##sz##dir##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
avg##_bilin_1d_##dir##_c(dst, dst_stride, src, src_stride, sz, h, dir_m); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
#define avg(a, b, c, d)
#define bilinf_fn_2d (   sz,
  avg 
)
Value:
static void avg##_bilin_##sz##hv_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my) \
{ \
avg##_bilin_2d_hv_c(dst, dst_stride, src, src_stride, sz, h, mx, my); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
#define avg(a, b, c, d)
#define filter_fn (   sz,
  avg 
)
Value:
filter_fn_1d(sz, h, mx, regular, FILTER_8TAP_REGULAR, avg) \
filter_fn_1d(sz, v, my, regular, FILTER_8TAP_REGULAR, avg) \
filter_fn_1d(sz, v, my, sharp, FILTER_8TAP_SHARP, avg) \
bilinf_fn_1d(sz, h, mx, avg) \
bilinf_fn_1d(sz, v, my, avg) \
#define bilinf_fn_2d(sz, avg)
#define filter_fn_1d(sz, dir, dir_m, type, type_idx, avg)
#define filter_fn_2d(sz, type, type_idx, avg)
#define bilinf_fn_1d(sz, dir, dir_m, avg)
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
#define avg(a, b, c, d)
#define filter_fn_set (   avg)
Value:
#define avg(a, b, c, d)
#define filter_fn(sz, avg)
#define init_fpel (   idx1,
  idx2,
  sz,
  type 
)
Value:
dsp->mc[idx1][FILTER_8TAP_SMOOTH ][idx2][0][0] = type##sz##_c; \
dsp->mc[idx1][FILTER_8TAP_REGULAR][idx2][0][0] = type##sz##_c; \
dsp->mc[idx1][FILTER_8TAP_SHARP ][idx2][0][0] = type##sz##_c; \
dsp->mc[idx1][FILTER_BILINEAR ][idx2][0][0] = type##sz##_c
GLint GLenum type
Definition: opengl_enc.c:104
#define init_copy_avg (   idx,
  sz 
)
Value:
init_fpel(idx, 0, sz, copy); \
init_fpel(idx, 1, sz, avg)
static void copy(const float *p1, float *p2, const int length)
#define init_fpel(idx1, idx2, sz, type)
#define avg(a, b, c, d)
#define init_subpel1_bd_aware (   idx1,
  idx2,
  idxh,
  idxv,
  sz,
  dir,
  type 
)
Value:
dsp->mc[idx1][FILTER_8TAP_SMOOTH ][idx2][idxh][idxv] = type##_8tap_smooth_##sz##dir##_c; \
dsp->mc[idx1][FILTER_8TAP_REGULAR][idx2][idxh][idxv] = type##_8tap_regular_##sz##dir##_c; \
dsp->mc[idx1][FILTER_8TAP_SHARP ][idx2][idxh][idxv] = type##_8tap_sharp_##sz##dir##_c
GLint GLenum type
Definition: opengl_enc.c:104
#define init_subpel1 (   idx1,
  idx2,
  idxh,
  idxv,
  sz,
  dir,
  type 
)
Value:
init_subpel1_bd_aware(idx1, idx2, idxh, idxv, sz, dir, type); \
dsp->mc[idx1][FILTER_BILINEAR ][idx2][idxh][idxv] = type##_bilin_##sz##dir##_c
GLint GLenum type
Definition: opengl_enc.c:104
#define init_subpel1_bd_aware(idx1, idx2, idxh, idxv, sz, dir, type)
#define init_subpel2 (   idx,
  idxh,
  idxv,
  dir,
  type 
)
Value:
init_subpel1(0, idx, idxh, idxv, 64, dir, type); \
init_subpel1(1, idx, idxh, idxv, 32, dir, type); \
init_subpel1(2, idx, idxh, idxv, 16, dir, type); \
init_subpel1(3, idx, idxh, idxv, 8, dir, type); \
init_subpel1(4, idx, idxh, idxv, 4, dir, type)
GLint GLenum type
Definition: opengl_enc.c:104
#define init_subpel1(idx1, idx2, idxh, idxv, sz, dir, type)

Referenced by ff_vp9dsp_init_x86(), and INIT_FUNC().

#define init_subpel3 (   idx,
  type 
)
Value:
init_subpel2(idx, 1, 1, hv, type); \
init_subpel2(idx, 0, 1, v, type); \
init_subpel2(idx, 1, 0, h, type)
GLint GLenum type
Definition: opengl_enc.c:104
#define init_subpel2(idx, idxh, idxv, dir, type)

Referenced by ff_vp9dsp_init_x86(), and INIT_FUNC().

#define scaled_filter_8tap_fn (   opn,
  opa 
)
Value:
static av_noinline void opn##_scaled_8tap_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, int mx, int my, int dx, int dy, \
const int16_t (*filters)[8]) \
{ \
do_scaled_8tap_c(dst, dst_stride, src, src_stride, w, h, mx, my, dx, dy, \
opa, filters); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
static av_always_inline void do_scaled_8tap_c(uint8_t *_dst, ptrdiff_t dst_stride, const uint8_t *_src, ptrdiff_t src_stride, int w, int h, int mx, int my, int dx, int dy, int avg, const int16_t(*filters)[8])
uint8_t w
Definition: llviddspenc.c:38
static const struct PPFilter filters[]
Definition: postprocess.c:134
#define av_noinline
Definition: attributes.h:62

Definition at line 2379 of file vp9dsp_template.c.

#define scaled_filter_fn (   sz,
  type,
  type_idx,
  avg 
)
Value:
static void avg##_scaled_##type##_##sz##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my, int dx, int dy) \
{ \
avg##_scaled_8tap_c(dst, dst_stride, src, src_stride, sz, h, mx, my, dx, dy, \
ff_vp9_subpel_filters[type_idx]); \
}
GLint GLenum type
Definition: opengl_enc.c:104
#define src
Definition: vp8dsp.c:254
uint8_t
const int16_t ff_vp9_subpel_filters[3][16][8]
Definition: vp9dsp.c:28
#define _
#define avg(a, b, c, d)
#define scaled_bilin_fn (   opn,
  opa 
)
Value:
static av_noinline void opn##_scaled_bilin_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int w, int h, int mx, int my, int dx, int dy) \
{ \
do_scaled_bilin_c(dst, dst_stride, src, src_stride, w, h, mx, my, dx, dy, opa); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
uint8_t w
Definition: llviddspenc.c:38
#define av_noinline
Definition: attributes.h:62

Definition at line 2452 of file vp9dsp_template.c.

#define scaled_bilinf_fn (   sz,
  avg 
)
Value:
static void avg##_scaled_bilin_##sz##_c(uint8_t *dst, ptrdiff_t dst_stride, \
const uint8_t *src, ptrdiff_t src_stride, \
int h, int mx, int my, int dx, int dy) \
{ \
avg##_scaled_bilin_c(dst, dst_stride, src, src_stride, sz, h, mx, my, dx, dy); \
}
#define src
Definition: vp8dsp.c:254
uint8_t
#define avg(a, b, c, d)
#define scaled_filter_fns (   sz,
  avg 
)
Value:
#define scaled_filter_fn(sz, type, type_idx, avg)
static float smooth(DeshakeOpenCLContext *deshake_ctx, float *gauss_kernel, int length, float max_val, AVFifoBuffer *values)
#define scaled_bilinf_fn(sz, avg)
#define avg(a, b, c, d)
#define scaled_filter_fn_set (   avg)
Value:
#define scaled_filter_fns(sz, avg)
#define avg(a, b, c, d)
#define init_scaled_bd_aware (   idx1,
  idx2,
  sz,
  type 
)
Value:
dsp->smc[idx1][FILTER_8TAP_SMOOTH ][idx2] = type##_scaled_smooth_##sz##_c; \
dsp->smc[idx1][FILTER_8TAP_REGULAR][idx2] = type##_scaled_regular_##sz##_c; \
dsp->smc[idx1][FILTER_8TAP_SHARP ][idx2] = type##_scaled_sharp_##sz##_c
GLint GLenum type
Definition: opengl_enc.c:104
#define init_scaled (   idx1,
  idx2,
  sz,
  type 
)
Value:
init_scaled_bd_aware(idx1, idx2, sz, type); \
dsp->smc[idx1][FILTER_BILINEAR ][idx2] = type##_scaled_bilin_##sz##_c
GLint GLenum type
Definition: opengl_enc.c:104
#define init_scaled_bd_aware(idx1, idx2, sz, type)
#define init_scaled_put_avg (   idx,
  sz 
)
Value:
init_scaled(idx, 0, sz, put); \
init_scaled(idx, 1, sz, avg)
#define init_scaled(idx1, idx2, sz, type)
#define avg(a, b, c, d)

Function Documentation

static void vert_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 33 of file vp9dsp_template.c.

static void vert_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 47 of file vp9dsp_template.c.

static void vert_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 64 of file vp9dsp_template.c.

static void vert_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 85 of file vp9dsp_template.c.

static void hor_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 114 of file vp9dsp_template.c.

static void hor_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 127 of file vp9dsp_template.c.

static void hor_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 144 of file vp9dsp_template.c.

static void hor_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 163 of file vp9dsp_template.c.

static void tm_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 188 of file vp9dsp_template.c.

static void tm_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 208 of file vp9dsp_template.c.

static void tm_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 232 of file vp9dsp_template.c.

static void tm_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 264 of file vp9dsp_template.c.

static void dc_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 314 of file vp9dsp_template.c.

static void dc_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 330 of file vp9dsp_template.c.

static void dc_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 350 of file vp9dsp_template.c.

static void dc_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t _top 
)
static

Definition at line 374 of file vp9dsp_template.c.

static void dc_left_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 407 of file vp9dsp_template.c.

static void dc_left_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 421 of file vp9dsp_template.c.

static void dc_left_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 439 of file vp9dsp_template.c.

static void dc_left_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t _left,
const uint8_t top 
)
static

Definition at line 460 of file vp9dsp_template.c.

static void dc_top_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 488 of file vp9dsp_template.c.

static void dc_top_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 502 of file vp9dsp_template.c.

static void dc_top_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 520 of file vp9dsp_template.c.

static void dc_top_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 541 of file vp9dsp_template.c.

static void dc_128_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 571 of file vp9dsp_template.c.

static void dc_128_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 584 of file vp9dsp_template.c.

static void dc_128_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 599 of file vp9dsp_template.c.

static void dc_128_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 616 of file vp9dsp_template.c.

static void dc_127_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 637 of file vp9dsp_template.c.

static void dc_127_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 649 of file vp9dsp_template.c.

static void dc_127_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 664 of file vp9dsp_template.c.

static void dc_127_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 681 of file vp9dsp_template.c.

static void dc_129_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 702 of file vp9dsp_template.c.

static void dc_129_8x8_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 715 of file vp9dsp_template.c.

static void dc_129_16x16_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 730 of file vp9dsp_template.c.

static void dc_129_32x32_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t top 
)
static

Definition at line 747 of file vp9dsp_template.c.

static void memset_bpc ( uint16_t *  dst,
int  val,
int  len 
)
inlinestatic

Definition at line 773 of file vp9dsp_template.c.

static void diag_downleft_4x4_c ( uint8_t _dst,
ptrdiff_t  stride,
const uint8_t left,
const uint8_t _top 
)
static

Definition at line 783 of file vp9dsp_template.c.

def_diag_downleft ( )

Definition at line 821 of file vp9dsp_template.c.

def_diag_downright ( )

Definition at line 867 of file vp9dsp_template.c.

def_vert_right ( )

Definition at line 924 of file vp9dsp_template.c.

def_hor_down ( )

Definition at line 975 of file vp9dsp_template.c.

def_vert_left ( )

Definition at line 1025 of file vp9dsp_template.c.

def_hor_up ( )

Definition at line 1072 of file vp9dsp_template.c.

static av_always_inline void idct4_1d ( const dctcoef in,
ptrdiff_t  stride,
dctcoef out,
int  pass 
)
static

Definition at line 1170 of file vp9dsp_template.c.

static av_always_inline void iadst4_1d ( const dctcoef in,
ptrdiff_t  stride,
dctcoef out,
int  pass 
)
static

Definition at line 1186 of file vp9dsp_template.c.

itxfm_wrap ( ,
 
)

Definition at line 1202 of file vp9dsp_template.c.

static av_always_inline void iadst8_1d ( const dctcoef in,
ptrdiff_t  stride,
dctcoef out,
int  pass 
)
static

Definition at line 1240 of file vp9dsp_template.c.

itxfm_wrap ( ,
 
)

Definition at line 1284 of file vp9dsp_template.c.

static av_always_inline void iadst16_1d ( const dctcoef in,
ptrdiff_t  stride,
dctcoef out,
int  pass 
)
static

Definition at line 1374 of file vp9dsp_template.c.

itxfm_wrap ( 16  ,
 
)

Definition at line 1477 of file vp9dsp_template.c.

itxfm_wrapper ( idct  ,
idct  ,
32  ,
,
 
)

Definition at line 1685 of file vp9dsp_template.c.

itxfm_wrapper ( iwht  ,
iwht  ,
,
,
 
)

Definition at line 1718 of file vp9dsp_template.c.

static av_always_inline void loop_filter ( pixel dst,
int  E,
int  I,
int  H,
ptrdiff_t  stridea,
ptrdiff_t  strideb,
int  wd 
)
static

Definition at line 1748 of file vp9dsp_template.c.

lf_8_fns ( )

Definition at line 1873 of file vp9dsp_template.c.

static av_always_inline void copy_c ( uint8_t dst,
ptrdiff_t  dst_stride,
const uint8_t src,
ptrdiff_t  src_stride,
int  w,
int  h 
)
static

Definition at line 1939 of file vp9dsp_template.c.

static av_always_inline void avg_c ( uint8_t _dst,
ptrdiff_t  dst_stride,
const uint8_t _src,
ptrdiff_t  src_stride,
int  w,
int  h 
)
static

Definition at line 1951 of file vp9dsp_template.c.

copy_avg_fn ( 64  )

Definition at line 1983 of file vp9dsp_template.c.

filter_8tap_1d_fn ( put  ,
,
,
src_stride/  sizeofpixel 
)
filter_8tap_1d_fn ( avg  ,
,
,
src_stride/  sizeofpixel 
)
static av_always_inline void do_8tap_2d_c ( uint8_t _dst,
ptrdiff_t  dst_stride,
const uint8_t _src,
ptrdiff_t  src_stride,
int  w,
int  h,
const int16_t *  filterx,
const int16_t *  filtery,
int  avg 
)
static

Definition at line 2044 of file vp9dsp_template.c.

filter_8tap_2d_fn ( put  ,
 
)

Definition at line 2092 of file vp9dsp_template.c.

bilin_1d_fn ( put  ,
,
,
src_stride/  sizeofpixel 
)
bilin_1d_fn ( avg  ,
,
,
src_stride/  sizeofpixel 
)
static av_always_inline void do_bilin_2d_c ( uint8_t _dst,
ptrdiff_t  dst_stride,
const uint8_t _src,
ptrdiff_t  src_stride,
int  w,
int  h,
int  mx,
int  my,
int  avg 
)
static

Definition at line 2160 of file vp9dsp_template.c.

bilin_2d_fn ( put  ,
 
)

Definition at line 2205 of file vp9dsp_template.c.

static av_always_inline void do_scaled_8tap_c ( uint8_t _dst,
ptrdiff_t  dst_stride,
const uint8_t _src,
ptrdiff_t  src_stride,
int  w,
int  h,
int  mx,
int  my,
int  dx,
int  dy,
int  avg,
const int16_t(*)  filters[8] 
)
static

Definition at line 2331 of file vp9dsp_template.c.

scaled_filter_8tap_fn ( put  ,
 
)

Definition at line 2389 of file vp9dsp_template.c.

scaled_bilin_fn ( put  ,
 
)

Definition at line 2460 of file vp9dsp_template.c.

av_cold void FUNC() ff_vp9dsp_init ( VP9DSPContext dsp)

Definition at line 2539 of file vp9dsp_template.c.

Variable Documentation

h

Definition at line 2038 of file vp9dsp_template.c.

Referenced by alloc_buffers(), alloc_frame(), alloc_frame_empty(), alloc_scratch_buffers(), alloc_sequence_buffers(), analyze_plane(), apply_lut(), apply_palette(), async_buffer_task(), async_check_interrupt(), av_image_copy_to_buffer(), av_image_fill_pointers(), av_opt_is_set_to_default(), av_vdpau_get_surface_parameters(), avg_h264_qpel8_v_lowpass_mmi(), avg_h264_qpel8or16_hv2_lowpass_mmi(), avg_no_rnd_vc1_chroma_mc4_c(), avg_no_rnd_vc1_chroma_mc8_c(), avio_check(), avio_close_dir(), avio_open_dir(), avio_read_dir(), avpriv_h264_has_num_reorder_frames(), avpriv_io_delete(), blend_pixel(), blend_pixel16(), blur(), calc_persp_luts(), calculate_skip_errors(), cavs_decode_frame(), cavs_flush(), cdg_copy_rect_buf(), cdg_fill_rect_preset(), cdxl_decode_frame(), check_bidir_mv(), check_header(), check_idct(), check_idct_multiple(), check_loop_filter(), check_loop_filter_intra(), check_mc(), check_multiply3x3(), check_rgb2yuv(), check_threshold(), check_yuv2rgb(), check_yuv2yuv(), checkasm_check_blockdsp(), checkasm_check_bswapdsp(), checkasm_check_exrdsp(), checkasm_check_flacdsp(), checkasm_check_g722dsp(), checkasm_check_h264pred(), checkasm_check_h264qpel(), checkasm_check_hevc_add_res(), checkasm_check_hevc_idct(), checkasm_check_hevc_sao(), checkasm_check_jpeg2000dsp(), checkasm_check_nlmeans(), checkasm_check_pixblockdsp(), checkasm_check_utvideodsp(), checkasm_check_v210dec(), checkasm_check_v210enc(), checkasm_check_vf_gblur(), choose_rct_params(), clearTable(), clv_decode_init(), cmp_inline(), color_correlation(), color_correlation_gbrp(), color_decorrelation(), color_decorrelation_gbrp(), color_mix(), commit_bitstream_and_slice_buffer(), compose2D(), compute_default_clut(), compute_histogram16(), compute_histogram8(), compute_safe_ssd_integral_image_c(), compute_unsafe_ssd_integral_image(), config_input(), config_input_main(), config_output(), config_props(), convert(), convert_mask_to_strength_mask(), convert_timestamp(), convolution_x(), copy_block16(), copy_block16_mmi(), copy_block17(), copy_block2(), copy_block4(), copy_block8(), copy_block9(), copy_cell(), copy_CTB_to_hv(), copy_picture_field(), copy_picture_range(), correlate(), cover_rect(), create_clusters(), cudascale_config_props(), d3d11va_transfer_data(), dc_test(), dca_parse_params(), dct_sad8x8_c(), deband_16_c(), deband_16_coupling_c(), deband_8_c(), deband_8_coupling_c(), deblocking_filter_CTB(), decode_blocks(), decode_dlta(), decode_dvd_subtitles(), decode_entropy_coded_image(), decode_fint(), decode_frame(), decode_frame_common(), decode_frame_header(), decode_hextile(), decode_init(), decode_init_static(), decode_inter_plane(), decode_long_vertical_delta(), decode_long_vertical_delta2(), decode_mous(), decode_move(), decode_mvc2(), decode_nal_sei_pic_timing(), decode_p_block(), decode_plane(), decode_rgb_frame_TMPL(), decode_rle(), decode_sequence_header_adv(), decode_slice(), decode_subband_slice_buffered(), decompose2D(), decorrelate(), deflicker16(), deflicker8(), deinterleaveBytes_c(), denoise_depth(), denoise_spatial(), denoise_temporal(), dequantize(), diff_pixels_mvi(), dirac_decode_frame_internal(), displace_packed(), displace_planar(), display_integral(), djb2_hash(), dnn_execute_layer_pad(), dnxhd_probe(), do_convolve(), doTest(), double_threshold(), dpx_probe(), draw_axis_rgb(), draw_axis_yuv(), draw_background(), draw_dc(), draw_edges_8_c(), draw_frame(), draw_mandelbrot(), draw_sample_cline_gray(), draw_sample_cline_rgba_full(), draw_sample_cline_rgba_scale(), draw_sample_p2p_gray(), draw_sample_p2p_rgba_full(), draw_sample_p2p_rgba_scale(), draw_slice(), draw_sono(), dss_read_metadata_date(), dts_probe(), dvb_encode_rle2(), dvb_encode_rle4(), dvb_encode_rle8(), dvbsub_parse_page_segment(), dvd_encode_rle(), dvdsub_parse_extradata(), dwt_decode97_int(), dwt_encode97_int(), dxa_probe(), dxa_read_header(), dxtory_decode_v1_410(), dxtory_decode_v1_420(), dxtory_decode_v1_444(), dxtory_decode_v1_rgb(), dxva2_h264_decode_slice(), dxva2_h264_end_frame(), dxva2_h264_start_frame(), dxva2_hevc_decode_slice(), dxva2_hevc_end_frame(), dxva2_hevc_start_frame(), dxva2_vp9_decode_slice(), dxva2_vp9_end_frame(), dxva2_vp9_start_frame(), encode_block(), encode_blocks(), encode_close(), encode_dvb_subtitles(), encode_frame(), encode_init(), encode_mode(), encode_plane(), encode_q_branch(), encode_rgb_frame_TMPL(), encode_subband_c0run(), encode_thread(), epzs_motion_search2(), extend_edges(), ff_alsa_open(), ff_avg_h264_chroma_mc4_mmi(), ff_avg_h264_chroma_mc8_mmi(), ff_avg_pixels4_8_mmi(), ff_avg_pixels4_l2_8_mmi(), ff_avg_pixels4_xy2_8_mmi(), ff_avg_pixels8_xy2_8_mmi(), ff_bgmc_decode(), ff_blend_rectangle(), ff_boxblur_eval_filter_params(), ff_calculate_bounding_box(), ff_cavs_end(), ff_cavs_init(), ff_dnxhd_parse_header_prefix(), ff_emulated_edge_mc(), ff_fill_block16_mmi(), ff_fill_block8_mmi(), ff_frame_pool_video_init(), ff_gmc_c(), ff_h261_encode_mb(), ff_h261_encode_picture_header(), ff_h261_loop_filter(), ff_h263_decode_frame(), ff_h263_round_chroma(), ff_h264_slice_context_init(), ff_huff_gen_len_table(), ff_jpeg2000_tag_tree_init(), ff_libwebp_get_frame(), ff_mjpeg_decode_frame(), ff_mjpeg_decode_sos(), ff_mpv_encode_picture(), ff_pca(), ff_pnm_decode_header(), ff_put_h264_chroma_mc4_mmi(), ff_put_h264_chroma_mc8_mmi(), ff_put_no_rnd_pixels8_xy2_8_mmi(), ff_put_no_rnd_pixels_l2_mmi(), ff_put_no_rnd_pixels_l2_msa(), ff_put_pixels16_8_mmi(), ff_put_pixels16_l2_8_mmi(), ff_put_pixels4_8_mmi(), ff_put_pixels4_xy2_8_mmi(), ff_put_pixels8_8_mmi(), ff_put_pixels8_l2_8_mmi(), ff_put_pixels8_xy2_8_mmi(), ff_put_vp8_bilinear16_h_mmi(), ff_put_vp8_bilinear16_hv_mmi(), ff_put_vp8_bilinear16_v_mmi(), ff_put_vp8_bilinear4_h_mmi(), ff_put_vp8_bilinear4_hv_mmi(), ff_put_vp8_bilinear4_v_mmi(), ff_put_vp8_bilinear8_h_mmi(), ff_put_vp8_bilinear8_hv_mmi(), ff_put_vp8_bilinear8_v_mmi(), ff_put_vp8_epel16_h4_mmi(), ff_put_vp8_epel16_h4v4_mmi(), ff_put_vp8_epel16_h4v6_mmi(), ff_put_vp8_epel16_h6_mmi(), ff_put_vp8_epel16_h6v4_mmi(), ff_put_vp8_epel16_h6v6_mmi(), ff_put_vp8_epel16_v4_mmi(), ff_put_vp8_epel16_v6_mmi(), ff_put_vp8_epel4_h4_mmi(), ff_put_vp8_epel4_h4v4_mmi(), ff_put_vp8_epel4_h4v6_mmi(), ff_put_vp8_epel4_h6_mmi(), ff_put_vp8_epel4_h6v4_mmi(), ff_put_vp8_epel4_h6v6_mmi(), ff_put_vp8_epel4_v4_mmi(), ff_put_vp8_epel4_v6_mmi(), ff_put_vp8_epel8_h4_mmi(), ff_put_vp8_epel8_h4v4_mmi(), ff_put_vp8_epel8_h4v6_mmi(), ff_put_vp8_epel8_h6_mmi(), ff_put_vp8_epel8_h6v4_mmi(), ff_put_vp8_epel8_h6v6_mmi(), ff_put_vp8_epel8_v4_mmi(), ff_put_vp8_epel8_v6_mmi(), ff_put_vp8_pixels16_mmi(), ff_put_vp8_pixels4_mmi(), ff_put_vp8_pixels8_mmi(), ff_rm_parse_packet(), ff_rtjpeg_decode_frame_yuv420(), ff_rtp_send_jpeg(), ff_rtp_send_mpegvideo(), ff_scale_eval_dimensions(), ff_snow_alloc_blocks(), ff_snow_common_init_after_header(), ff_vc1_decode_entry_point(), ff_vc1_decode_sequence_header(), ff_videotoolbox_avcc_extradata_create(), ff_videotoolbox_h264_decode_slice(), ff_videotoolbox_h264_start_frame(), ff_videotoolbox_hvcc_extradata_create(), ff_videotoolbox_uninit(), ff_vmafmotion_init(), ff_vorbiscomment_write(), ff_vp9_decode_block(), ff_vp9dsp_init_16bpp_x86(), ff_vp9dsp_init_x86(), ff_xface_generate_face(), ffio_wfourcc(), ffmal_copy_frame(), file_move(), fill_block16_c(), fill_block8_c(), fill_buf(), fill_elements(), fill_in_tongue(), fill_loopfilter_buffers(), fill_rectangle(), fill_slice_long(), fill_tile4(), fill_tileX(), filter(), filter16_brng(), filter16_tout(), filter16_vrep(), filter8_brng(), filter8_tout(), filter8_vrep(), filter_frame(), filter_slice(), filter_slice16(), filter_slice8(), find_smallest_bounding_rectangle(), find_start_code(), findCode(), flush_dpb(), fraps2_decode_plane(), g2m_paint_cursor(), gammafilter(), gbr16ptopacked16(), gbr24ptopacked24(), gbr24ptopacked32(), gbraptopacked32(), gen_image(), get_4block_rd(), get_block_rd(), get_dc(), get_histogram(), get_input(), get_intra_count(), get_pixels_mvi(), get_stats(), getpix(), getsigctxno(), getSSD(), gif_crop_translucent(), gmc1_c(), gnutls_url_pull(), gnutls_url_push(), guess_dc(), h261_decode_end(), h261_decode_frame(), h261_decode_init(), h261_encode_gob_header(), h263_mv4_search(), h264_decode_end(), h264_decode_frame(), h264_decode_init(), h264_er_decode_mb(), h264_slice_header_init(), h_block_filter(), hadamard_func(), halfpel_interpol(), hblur(), hl_decode_mb(), hl_decode_mb_444(), hl_motion(), hpel_motion_lowres(), hqa_decode_slice(), hysteresis16(), hysteresis8(), idcin_probe(), image_copy(), image_copy_16_to_8(), image_sad(), ingenient_read_packet(), init(), init_decoder(), init_demo(), init_planes(), insert_ts(), interlaced_search(), interleaveBytes_c(), interleaveBytes_TMPL(), interpolate(), irdft_horizontal16(), irdft_horizontal8(), irdft_vertical(), iterative_me(), kmvc_decode_inter_8x8(), kmvc_decode_intra_8x8(), libdav1d_picture_allocator(), ljpeg_decode_yuv_scan(), ljpeg_encode_yuv_mb(), load_input_picture(), LOOP_FILTER(), m4sl_cb(), MAC64(), main(), make_lpf(), matroska_parse_rm_audio(), mbedtls_recv(), mbedtls_send(), mcdc(), mjpeg_decode_scan(), mjpeg_idct_scan_progressive_ac(), MLS64(), mp3_read_probe(), mp3_write_audio_packet(), mp3lame_encode_frame(), mp_read_changes_map(), mpeg4_decode_dpcm_macroblock(), mpeg4_decode_sprite_trajectory(), mpeg_decode_sequence_display_extension(), mpeg_motion_internal(), mpeg_motion_lowres(), mpeg_parse_packet(), mpv_reconstruct_mb_internal(), mss2_decode_frame(), multiply3x3_c(), nppscale_config_props(), nsse16_c(), nsse8_c(), nvdec_h264_decode_slice(), nvdec_h264_frame_params(), nvdec_h264_start_frame(), nvdec_vp8_start_frame(), nvdec_vp9_start_frame(), ogm_chapter(), output_single_frame(), packed16togbra16(), packedtogbr24p(), paint_raw(), paint_rect(), pam_encode_frame(), parse_frame_header(), parse_presentation_segment(), pat_cb(), pcx_decode_frame(), pick_palette_entry(), pix_abs16_c(), pix_abs16_x2_c(), pix_abs16_xy2_c(), pix_abs16_y2_c(), pix_abs8_c(), pix_abs8_x2_c(), pix_abs8_xy2_c(), pix_abs8_y2_c(), pix_abs8x8_mvi(), pix_median_abs16_c(), pix_median_abs8_c(), pix_sum(), pixels16_x2(), pixels8_x2(), pixels8_xy2(), pixels8_y2(), pixlet_decode_frame(), pixscope_filter_frame(), pmt_cb(), pnm_decode_frame(), pnm_encode_frame(), postprocess_chroma(), postprocess_luma(), predict_slice(), predict_slice_buffered(), print_ctl_info(), probe(), process_c(), process_cqt(), process_frame_obj(), ptx_decode_frame(), pulse_audio_sink_input_cb(), pulse_event(), pulse_overflow(), pulse_stream_writable(), pulse_underflow(), push_single_pic(), put_cursor(), put_h264_qpel8_h_lowpass_l2_mmi(), put_h264_qpel8_v_lowpass_mmi(), put_h264_qpel8or16_hv2_lowpass_mmi(), put_no_rnd_vc1_chroma_mc4_c(), put_no_rnd_vc1_chroma_mc8_c(), quantize(), ratecontrol_1pass(), rd_frame(), rdft_horizontal16(), rdft_horizontal8(), rdft_vertical(), read_huffman_code_normal(), realloc_texture(), request_frame(), resample_cubic(), resample_linear(), rescale(), rgb2yuv(), rgb2yuv_fsb(), rgb48Toxyz12(), ripemd128_transform(), ripemd160_transform(), ripemd256_transform(), ripemd320_transform(), rm_read_dts(), rv30_parse_slice_header(), rv40_parse_slice_header(), s302m_parse_frame_header(), sao_filter_CTB(), scc_write_packet(), sdt_cb(), selfTest(), set_control(), set_default_ctl_value(), set_frame(), set_mvs(), set_sps(), sha256_transform(), sha512_transform(), smka_decode_frame(), smv_img_pnt(), snow_horizontal_compose_liftS_lead_out(), soft_thresholding(), softfloat_mul(), sse(), sse16_c(), sse4_c(), sse8_c(), sse_mb(), stereo_processing(), sub2video_prepare(), submit_stats(), sunrast_decode_frame(), svq3_decode_init(), synth_window(), targa_encode_normal(), targa_encode_rle(), tdsc_decode_tiles(), tdsc_paint_cursor(), tdsc_parse_tdsf(), test_stereo_interpolate(), tls_read_callback(), tls_read_cb(), tls_write_callback(), tls_write_cb(), tm2_decode_blocks(), tqi_decode_frame(), transform_step(), transpose_block_16_c(), transpose_block_24_c(), transpose_block_32_c(), transpose_block_48_c(), transpose_block_64_c(), transpose_block_8_c(), txd_decode_frame(), udp_get_file_handle(), unpack_coeffs(), update_canvas_size(), update_frame_pool(), update_model5_to_6(), update_size(), url_bio_bread(), url_bio_bwrite(), urlcontext_child_next(), urlcontext_to_name(), v4l2_buffer_swframe_to_buf(), vaapi_h264_decode_slice(), vaapi_h264_end_frame(), vaapi_h264_start_frame(), vaapi_hevc_decode_slice(), vaapi_hevc_end_frame(), vaapi_hevc_start_frame(), vaapi_vp9_decode_slice(), vaapi_vp9_end_frame(), vaapi_vp9_start_frame(), vc2_encode_init(), vdpau_h264_decode_slice(), vdpau_h264_end_frame(), vdpau_h264_set_reference_frames(), vdpau_h264_start_frame(), vdpau_hevc_decode_slice(), vdpau_hevc_end_frame(), vdpau_hevc_start_frame(), vectorscope16(), vectorscope8(), verify_md5(), vfw_read_header(), video_audio_display(), video_frame_cksum(), video_open(), videotoolbox_h264_decode_params(), vmd_probe(), vp3_draw_horiz_band(), vp8_lossless_decode_frame(), vp9_handle_packet(), vu9_to_vu12_c(), vu9_to_vu12_TMPL(), w_c(), wait_frame(), wdec14(), wdec16(), weight_averages(), win32thread_worker(), wmv2_mspel8_h_lowpass(), wrapped_url_read(), write_root_table(), xcbgrab_reposition(), xsub_encode_rle(), xyz12Torgb48(), yae_reset(), yuv2rgb(), yuv2yuv(), yvu9_to_yuy2_c(), and yvu9_to_yuy2_TMPL().