Mercurial > libavcodec.hg
comparison vp8dsp.h @ 12342:b4c63ffd959b libavcodec
VP8: much faster DC transform handling
A lot of the time the DC block is empty: don't do the WHT in this case.
A lot of the rest of the time, there's only one coefficient: make a special
DC-only transform for that case.
When the block is empty, don't incorrectly mark luma DCT blocks as having DC
coefficients.
author | darkshikari |
---|---|
date | Mon, 02 Aug 2010 20:57:03 +0000 |
parents | c7f6ddcc5c01 |
children |
comparison
equal
deleted
inserted
replaced
12341:ad24cca213ae | 12342:b4c63ffd959b |
---|---|
29 | 29 |
30 typedef void (*vp8_mc_func)(uint8_t *dst/*align 8*/, int dstStride, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); | 30 typedef void (*vp8_mc_func)(uint8_t *dst/*align 8*/, int dstStride, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y); |
31 | 31 |
32 typedef struct VP8DSPContext { | 32 typedef struct VP8DSPContext { |
33 void (*vp8_luma_dc_wht)(DCTELEM block[4][4][16], DCTELEM dc[16]); | 33 void (*vp8_luma_dc_wht)(DCTELEM block[4][4][16], DCTELEM dc[16]); |
34 void (*vp8_luma_dc_wht_dc)(DCTELEM block[4][4][16], DCTELEM dc[16]); | |
34 void (*vp8_idct_add)(uint8_t *dst, DCTELEM block[16], int stride); | 35 void (*vp8_idct_add)(uint8_t *dst, DCTELEM block[16], int stride); |
35 void (*vp8_idct_dc_add)(uint8_t *dst, DCTELEM block[16], int stride); | 36 void (*vp8_idct_dc_add)(uint8_t *dst, DCTELEM block[16], int stride); |
36 void (*vp8_idct_dc_add4y)(uint8_t *dst, DCTELEM block[4][16], int stride); | 37 void (*vp8_idct_dc_add4y)(uint8_t *dst, DCTELEM block[4][16], int stride); |
37 void (*vp8_idct_dc_add4uv)(uint8_t *dst, DCTELEM block[4][16], int stride); | 38 void (*vp8_idct_dc_add4uv)(uint8_t *dst, DCTELEM block[4][16], int stride); |
38 | 39 |