From dd561441b1e849df7d8681c6f32af82d4088dafd Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Mon, 9 May 2011 09:48:21 -0400 Subject: h264: DSP'ize MBAFF loopfilter. --- libavcodec/h264dsp.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libavcodec/h264dsp.h') diff --git a/libavcodec/h264dsp.h b/libavcodec/h264dsp.h index 6fa1746..9db4c13 100644 --- a/libavcodec/h264dsp.h +++ b/libavcodec/h264dsp.h @@ -45,13 +45,17 @@ typedef struct H264DSPContext{ /* loop filter */ void (*h264_v_loop_filter_luma)(uint8_t *pix/*align 16*/, int stride, int alpha, int beta, int8_t *tc0); void (*h264_h_loop_filter_luma)(uint8_t *pix/*align 4 */, int stride, int alpha, int beta, int8_t *tc0); + void (*h264_h_loop_filter_luma_mbaff)(uint8_t *pix/*align 16*/, int stride, int alpha, int beta, int8_t *tc0); /* v/h_loop_filter_luma_intra: align 16 */ void (*h264_v_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); void (*h264_h_loop_filter_luma_intra)(uint8_t *pix, int stride, int alpha, int beta); + void (*h264_h_loop_filter_luma_mbaff_intra)(uint8_t *pix/*align 16*/, int stride, int alpha, int beta); void (*h264_v_loop_filter_chroma)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta, int8_t *tc0); void (*h264_h_loop_filter_chroma)(uint8_t *pix/*align 4*/, int stride, int alpha, int beta, int8_t *tc0); + void (*h264_h_loop_filter_chroma_mbaff)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta, int8_t *tc0); void (*h264_v_loop_filter_chroma_intra)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta); void (*h264_h_loop_filter_chroma_intra)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta); + void (*h264_h_loop_filter_chroma_mbaff_intra)(uint8_t *pix/*align 8*/, int stride, int alpha, int beta); // h264_loop_filter_strength: simd only. the C version is inlined in h264.c void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2], int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field); -- cgit v1.1 From e39e3abad4ce667f06d41097428695a7aad095fb Mon Sep 17 00:00:00 2001 From: Oskar Arvidsson Date: Sun, 10 Apr 2011 22:42:36 +0200 Subject: Choose h264 chroma dc dequant function dynamically. Needed for high bit depth h264 decoding. Signed-off-by: Ronald S. Bultje --- libavcodec/h264dsp.h | 1 + 1 file changed, 1 insertion(+) (limited to 'libavcodec/h264dsp.h') diff --git a/libavcodec/h264dsp.h b/libavcodec/h264dsp.h index 9db4c13..7eb50be 100644 --- a/libavcodec/h264dsp.h +++ b/libavcodec/h264dsp.h @@ -72,6 +72,7 @@ typedef struct H264DSPContext{ void (*h264_idct_add8)(uint8_t **dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]); void (*h264_idct_add16intra)(uint8_t *dst/*align 16*/, const int *blockoffset, DCTELEM *block/*align 16*/, int stride, const uint8_t nnzc[6*8]); void (*h264_luma_dc_dequant_idct)(DCTELEM *output, DCTELEM *input/*align 16*/, int qmul); + void (*h264_chroma_dc_dequant_idct)(DCTELEM *block, int qmul); }H264DSPContext; void ff_h264dsp_init(H264DSPContext *c); -- cgit v1.1 From 19a0729b4cfacfd90b8ee84ab0c093ff7e397e65 Mon Sep 17 00:00:00 2001 From: Oskar Arvidsson Date: Tue, 29 Mar 2011 17:48:59 +0200 Subject: Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder. This patch lets e.g. dsputil_init chose dsp functions with respect to the bit depth to decode. The naming scheme of bit depth dependent functions is _[_] (i.e. the old clear_blocks_c is now named clear_blocks_8_c). Note: Some of the functions for high bit depth is not dependent on the bit depth, but only on the pixel size. This leaves some room for optimizing binary size. Preparatory patch for high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje --- libavcodec/h264dsp.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'libavcodec/h264dsp.h') diff --git a/libavcodec/h264dsp.h b/libavcodec/h264dsp.h index 7eb50be..87a1dd9 100644 --- a/libavcodec/h264dsp.h +++ b/libavcodec/h264dsp.h @@ -75,9 +75,9 @@ typedef struct H264DSPContext{ void (*h264_chroma_dc_dequant_idct)(DCTELEM *block, int qmul); }H264DSPContext; -void ff_h264dsp_init(H264DSPContext *c); -void ff_h264dsp_init_arm(H264DSPContext *c); -void ff_h264dsp_init_ppc(H264DSPContext *c); -void ff_h264dsp_init_x86(H264DSPContext *c); +void ff_h264dsp_init(H264DSPContext *c, const int bit_depth); +void ff_h264dsp_init_arm(H264DSPContext *c, const int bit_depth); +void ff_h264dsp_init_ppc(H264DSPContext *c, const int bit_depth); +void ff_h264dsp_init_x86(H264DSPContext *c, const int bit_depth); #endif /* AVCODEC_H264DSP_H */ -- cgit v1.1