Mercurial > libavcodec.hg
diff vc1dsp.c @ 9443:3970fe47fea3 libavcodec
Split VC1 loop filter into separate functions for h/v and size
author | conrad |
---|---|
date | Wed, 15 Apr 2009 06:22:17 +0000 |
parents | a91f60938763 |
children | 7a116de63777 |
line wrap: on
line diff
--- a/vc1dsp.c Wed Apr 15 06:20:22 2009 +0000 +++ b/vc1dsp.c Wed Apr 15 06:22:17 2009 +0000 @@ -130,7 +130,7 @@ * @param pq block quantizer * @see 8.6 */ -static void vc1_loop_filter(uint8_t* src, int step, int stride, int len, int pq) +static inline void vc1_loop_filter(uint8_t* src, int step, int stride, int len, int pq) { int i; int filt3; @@ -146,6 +146,36 @@ } } +static void vc1_v_loop_filter4_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, 1, stride, 4, pq); +} + +static void vc1_h_loop_filter4_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, stride, 1, 4, pq); +} + +static void vc1_v_loop_filter8_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, 1, stride, 8, pq); +} + +static void vc1_h_loop_filter8_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, stride, 1, 8, pq); +} + +static void vc1_v_loop_filter16_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, 1, stride, 16, pq); +} + +static void vc1_h_loop_filter16_c(uint8_t *src, int stride, int pq) +{ + vc1_loop_filter(src, stride, 1, 16, pq); +} + /** Do inverse transform on 8x8 block */ static void vc1_inv_trans_8x8_c(DCTELEM block[64]) @@ -517,7 +547,12 @@ dsp->vc1_inv_trans_4x4 = vc1_inv_trans_4x4_c; dsp->vc1_h_overlap = vc1_h_overlap_c; dsp->vc1_v_overlap = vc1_v_overlap_c; - dsp->vc1_loop_filter = vc1_loop_filter; + dsp->vc1_v_loop_filter4 = vc1_v_loop_filter4_c; + dsp->vc1_h_loop_filter4 = vc1_h_loop_filter4_c; + dsp->vc1_v_loop_filter8 = vc1_v_loop_filter8_c; + dsp->vc1_h_loop_filter8 = vc1_h_loop_filter8_c; + dsp->vc1_v_loop_filter16 = vc1_v_loop_filter16_c; + dsp->vc1_h_loop_filter16 = vc1_h_loop_filter16_c; dsp->put_vc1_mspel_pixels_tab[ 0] = ff_put_vc1_mspel_mc00_c; dsp->put_vc1_mspel_pixels_tab[ 1] = put_vc1_mspel_mc10_c;