FFmpeg
|
#include "libavutil/cpu.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/ppc/types_altivec.h"
#include "libavutil/ppc/util_altivec.h"
#include "libavcodec/dsputil.h"
#include "libavcodec/h264data.h"
#include "libavcodec/h264dsp.h"
#include "dsputil_altivec.h"
#include "h264_altivec_template.c"
Go to the source code of this file.
Macros | |
#define | PUT_OP_U8_ALTIVEC(d, s, dst) d = s |
#define | AVG_OP_U8_ALTIVEC(d, s, dst) d = vec_avg(dst, s) |
#define | OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC |
#define | PREFIX_h264_chroma_mc8_altivec put_h264_chroma_mc8_altivec |
#define | PREFIX_h264_chroma_mc8_num altivec_put_h264_chroma_mc8_num |
#define | PREFIX_h264_qpel16_h_lowpass_altivec put_h264_qpel16_h_lowpass_altivec |
#define | PREFIX_h264_qpel16_h_lowpass_num altivec_put_h264_qpel16_h_lowpass_num |
#define | PREFIX_h264_qpel16_v_lowpass_altivec put_h264_qpel16_v_lowpass_altivec |
#define | PREFIX_h264_qpel16_v_lowpass_num altivec_put_h264_qpel16_v_lowpass_num |
#define | PREFIX_h264_qpel16_hv_lowpass_altivec put_h264_qpel16_hv_lowpass_altivec |
#define | PREFIX_h264_qpel16_hv_lowpass_num altivec_put_h264_qpel16_hv_lowpass_num |
#define | OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC |
#define | PREFIX_h264_chroma_mc8_altivec avg_h264_chroma_mc8_altivec |
#define | PREFIX_h264_chroma_mc8_num altivec_avg_h264_chroma_mc8_num |
#define | PREFIX_h264_qpel16_h_lowpass_altivec avg_h264_qpel16_h_lowpass_altivec |
#define | PREFIX_h264_qpel16_h_lowpass_num altivec_avg_h264_qpel16_h_lowpass_num |
#define | PREFIX_h264_qpel16_v_lowpass_altivec avg_h264_qpel16_v_lowpass_altivec |
#define | PREFIX_h264_qpel16_v_lowpass_num altivec_avg_h264_qpel16_v_lowpass_num |
#define | PREFIX_h264_qpel16_hv_lowpass_altivec avg_h264_qpel16_hv_lowpass_altivec |
#define | PREFIX_h264_qpel16_hv_lowpass_num altivec_avg_h264_qpel16_hv_lowpass_num |
#define | H264_MC(OPNAME, SIZE, CODETYPE) |
#define | VEC_1D_DCT(vb0, vb1, vb2, vb3, va0, va1, va2, va3) |
#define | VEC_TRANSPOSE_4(a0, a1, a2, a3, b0, b1, b2, b3) |
#define | VEC_LOAD_U8_ADD_S16_STORE_U8(va) |
#define | IDCT8_1D_ALTIVEC(s0, s1, s2, s3, s4, s5, s6, s7,d0, d1, d2, d3, d4, d5, d6, d7) |
#define | ALTIVEC_STORE_SUM_CLIP(dest, idctv, perm_ldv, perm_stv, sel) |
#define | transpose4x16(r0, r1, r2, r3) |
#define | readAndTranspose16x6(src, src_stride, r8, r9, r10, r11, r12, r13) |
performs a 6x16 transpose of data in src, and stores it to dst | |
#define | h264_deblock_p0_q0(p0, p1, q0, q1, tc0masked) |
#define | h264_loop_filter_luma_altivec(p2, p1, p0, q0, q1, q2, alpha, beta, tc0) |
#define | H264_WEIGHT(W) |
#define | dspfunc(PFX, IDX, NUM) |
Functions | |
static void | put_pixels16_l2_altivec (uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int h) |
static void | avg_pixels16_l2_altivec (uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int dst_stride, int src_stride1, int h) |
static void | ff_h264_idct_add_altivec (uint8_t *dst, DCTELEM *block, int stride) |
static void | ff_h264_idct8_add_altivec (uint8_t *dst, DCTELEM *dct, int stride) |
static av_always_inline void | h264_idct_dc_add_internal (uint8_t *dst, DCTELEM *block, int stride, int size) |
static void | h264_idct_dc_add_altivec (uint8_t *dst, DCTELEM *block, int stride) |
static void | ff_h264_idct8_dc_add_altivec (uint8_t *dst, DCTELEM *block, int stride) |
static void | ff_h264_idct_add16_altivec (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15 *8]) |
static void | ff_h264_idct_add16intra_altivec (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15 *8]) |
static void | ff_h264_idct8_add4_altivec (uint8_t *dst, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15 *8]) |
static void | ff_h264_idct_add8_altivec (uint8_t **dest, const int *block_offset, DCTELEM *block, int stride, const uint8_t nnzc[15 *8]) |
static void | write16x4 (uint8_t *dst, int dst_stride, register vec_u8 r0, register vec_u8 r1, register vec_u8 r2, register vec_u8 r3) |
static vec_u8 | diff_lt_altivec (register vec_u8 x, register vec_u8 y, register vec_u8 a) |
static vec_u8 | h264_deblock_mask (register vec_u8 p0, register vec_u8 p1, register vec_u8 q0, register vec_u8 q1, register vec_u8 alpha, register vec_u8 beta) |
static vec_u8 | h264_deblock_q1 (register vec_u8 p0, register vec_u8 p1, register vec_u8 p2, register vec_u8 q0, register vec_u8 tc0) |
static void | h264_v_loop_filter_luma_altivec (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static void | h264_h_loop_filter_luma_altivec (uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) |
static av_always_inline void | weight_h264_W_altivec (uint8_t *block, int stride, int height, int log2_denom, int weight, int offset, int w) |
static av_always_inline void | biweight_h264_W_altivec (uint8_t *dst, uint8_t *src, int stride, int height, int log2_denom, int weightd, int weights, int offset, int w) |
void | ff_dsputil_h264_init_ppc (DSPContext *c, AVCodecContext *avctx) |
void | ff_h264dsp_init_ppc (H264DSPContext *c, const int bit_depth, const int chroma_format_idc) |
#define PUT_OP_U8_ALTIVEC | ( | d, | |
s, | |||
dst | |||
) | d = s |
Definition at line 31 of file h264_altivec.c.
Definition at line 32 of file h264_altivec.c.
#define OP_U8_ALTIVEC PUT_OP_U8_ALTIVEC |
Definition at line 54 of file h264_altivec.c.
#define PREFIX_h264_chroma_mc8_altivec put_h264_chroma_mc8_altivec |
Definition at line 55 of file h264_altivec.c.
#define PREFIX_h264_chroma_mc8_num altivec_put_h264_chroma_mc8_num |
Definition at line 56 of file h264_altivec.c.
#define PREFIX_h264_qpel16_h_lowpass_altivec put_h264_qpel16_h_lowpass_altivec |
Definition at line 57 of file h264_altivec.c.
#define PREFIX_h264_qpel16_h_lowpass_num altivec_put_h264_qpel16_h_lowpass_num |
Definition at line 58 of file h264_altivec.c.
#define PREFIX_h264_qpel16_v_lowpass_altivec put_h264_qpel16_v_lowpass_altivec |
Definition at line 59 of file h264_altivec.c.
#define PREFIX_h264_qpel16_v_lowpass_num altivec_put_h264_qpel16_v_lowpass_num |
Definition at line 60 of file h264_altivec.c.
#define PREFIX_h264_qpel16_hv_lowpass_altivec put_h264_qpel16_hv_lowpass_altivec |
Definition at line 61 of file h264_altivec.c.
#define PREFIX_h264_qpel16_hv_lowpass_num altivec_put_h264_qpel16_hv_lowpass_num |
Definition at line 62 of file h264_altivec.c.
#define OP_U8_ALTIVEC AVG_OP_U8_ALTIVEC |
Definition at line 54 of file h264_altivec.c.
#define PREFIX_h264_chroma_mc8_altivec avg_h264_chroma_mc8_altivec |
Definition at line 55 of file h264_altivec.c.
#define PREFIX_h264_chroma_mc8_num altivec_avg_h264_chroma_mc8_num |
Definition at line 56 of file h264_altivec.c.
#define PREFIX_h264_qpel16_h_lowpass_altivec avg_h264_qpel16_h_lowpass_altivec |
Definition at line 57 of file h264_altivec.c.
#define PREFIX_h264_qpel16_h_lowpass_num altivec_avg_h264_qpel16_h_lowpass_num |
Definition at line 58 of file h264_altivec.c.
#define PREFIX_h264_qpel16_v_lowpass_altivec avg_h264_qpel16_v_lowpass_altivec |
Definition at line 59 of file h264_altivec.c.
#define PREFIX_h264_qpel16_v_lowpass_num altivec_avg_h264_qpel16_v_lowpass_num |
Definition at line 60 of file h264_altivec.c.
#define PREFIX_h264_qpel16_hv_lowpass_altivec avg_h264_qpel16_hv_lowpass_altivec |
Definition at line 61 of file h264_altivec.c.
#define PREFIX_h264_qpel16_hv_lowpass_num altivec_avg_h264_qpel16_hv_lowpass_num |
Definition at line 62 of file h264_altivec.c.
#define H264_MC | ( | OPNAME, | |
SIZE, | |||
CODETYPE | |||
) |
Definition at line 74 of file h264_altivec.c.
#define VEC_1D_DCT | ( | vb0, | |
vb1, | |||
vb2, | |||
vb3, | |||
va0, | |||
va1, | |||
va2, | |||
va3 | |||
) |
Definition at line 281 of file h264_altivec.c.
Referenced by ff_h264_idct_add_altivec().
Definition at line 295 of file h264_altivec.c.
Referenced by ff_h264_idct_add_altivec().
#define VEC_LOAD_U8_ADD_S16_STORE_U8 | ( | va | ) |
Definition at line 309 of file h264_altivec.c.
Referenced by ff_h264_idct_add_altivec().
Definition at line 357 of file h264_altivec.c.
Referenced by ff_h264_idct8_add_altivec().
#define ALTIVEC_STORE_SUM_CLIP | ( | dest, | |
idctv, | |||
perm_ldv, | |||
perm_stv, | |||
sel | |||
) |
Definition at line 411 of file h264_altivec.c.
Referenced by ff_h264_idct8_add_altivec().
#define transpose4x16 | ( | r0, | |
r1, | |||
r2, | |||
r3 | |||
) |
Definition at line 573 of file h264_altivec.c.
Referenced by h264_h_loop_filter_luma_altivec().
#define readAndTranspose16x6 | ( | src, | |
src_stride, | |||
r8, | |||
r9, | |||
r10, | |||
r11, | |||
r12, | |||
r13 | |||
) |
performs a 6x16 transpose of data in src, and stores it to dst
Definition at line 623 of file h264_altivec.c.
Referenced by h264_h_loop_filter_luma_altivec().
#define h264_deblock_p0_q0 | ( | p0, | |
p1, | |||
q0, | |||
q1, | |||
tc0masked | |||
) |
Definition at line 740 of file h264_altivec.c.
#define h264_loop_filter_luma_altivec | ( | p2, | |
p1, | |||
p0, | |||
q0, | |||
q1, | |||
q2, | |||
alpha, | |||
beta, | |||
tc0 | |||
) |
Definition at line 772 of file h264_altivec.c.
Referenced by h264_h_loop_filter_luma_altivec(), and h264_v_loop_filter_luma_altivec().
#define H264_WEIGHT | ( | W | ) |
Definition at line 957 of file h264_altivec.c.
#define dspfunc | ( | PFX, | |
IDX, | |||
NUM | |||
) |
|
inlinestatic |
Definition at line 184 of file h264_altivec.c.
|
inlinestatic |
Definition at line 226 of file h264_altivec.c.
Definition at line 318 of file h264_altivec.c.
Referenced by ff_h264_idct_add16_altivec(), ff_h264_idct_add16intra_altivec(), ff_h264_idct_add8_altivec(), and ff_h264dsp_init_ppc().
Definition at line 432 of file h264_altivec.c.
Referenced by ff_h264_idct8_add4_altivec(), and ff_h264dsp_init_ppc().
|
static |
Definition at line 476 of file h264_altivec.c.
Referenced by ff_h264_idct8_dc_add_altivec(), and h264_idct_dc_add_altivec().
Definition at line 521 of file h264_altivec.c.
Referenced by ff_h264_idct_add16_altivec(), ff_h264_idct_add16intra_altivec(), ff_h264_idct_add8_altivec(), and ff_h264dsp_init_ppc().
Definition at line 526 of file h264_altivec.c.
Referenced by ff_h264_idct8_add4_altivec(), and ff_h264dsp_init_ppc().
|
static |
Definition at line 531 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
static |
Definition at line 542 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
static |
Definition at line 550 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
static |
Definition at line 561 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
inlinestatic |
Definition at line 590 of file h264_altivec.c.
Referenced by h264_h_loop_filter_luma_altivec().
|
inlinestatic |
Definition at line 683 of file h264_altivec.c.
Referenced by h264_deblock_mask().
|
inlinestatic |
Definition at line 694 of file h264_altivec.c.
|
inlinestatic |
Definition at line 714 of file h264_altivec.c.
|
static |
Definition at line 818 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
static |
Definition at line 835 of file h264_altivec.c.
Referenced by ff_h264dsp_init_ppc().
|
static |
Definition at line 847 of file h264_altivec.c.
|
static |
Definition at line 893 of file h264_altivec.c.
void ff_dsputil_h264_init_ppc | ( | DSPContext * | c, |
AVCodecContext * | avctx | ||
) |
Definition at line 970 of file h264_altivec.c.
Referenced by ff_dsputil_init_ppc().
void ff_h264dsp_init_ppc | ( | H264DSPContext * | c, |
const int | bit_depth, | ||
const int | chroma_format_idc | ||
) |
Definition at line 1003 of file h264_altivec.c.
Referenced by ff_h264dsp_init().