#include "libavcodec/dsputil.h"
#include "libavcodec/snow.h"
#include "gcc_fixes.h"
#include "dsputil_altivec.h"
#include <assert.h>
Go to the source code of this file.
Defines | |
#define | slice_buffer_get_line(slice_buf, line_num) ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : slice_buffer_load_line((slice_buf), (line_num))) |
#define | LOAD_BLOCKS |
#define | LOAD_OBMCS |
#define | STEPS_0_1 |
#define | FINAL_STEP_SCALAR |
#define | STEPS_2_3 |
#define | FINAL_STEP_VEC |
Functions | |
static DWTELEM * | slice_buffer_load_line (slice_buffer *buf, int line) |
void | ff_snow_horizontal_compose97i_altivec (IDWTELEM *b, int width) |
void | ff_snow_vertical_compose97i_altivec (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, DWTELEM *b3, DWTELEM *b4, DWTELEM *b5, int width) |
static void | inner_add_yblock_bw_8_obmc_16_altivec (uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8) |
static void | inner_add_yblock_bw_16_obmc_32_altivec (uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8) |
static void | inner_add_yblock_a_bw_8_obmc_16_altivec (uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8) |
static void | inner_add_yblock_a_bw_16_obmc_32_altivec (uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8) |
void | ff_snow_inner_add_yblock_altivec (uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8) |
void | snow_init_altivec (DSPContext *c, AVCodecContext *avctx) |
#define FINAL_STEP_SCALAR |
Value:
for(x=0; x<b_w; x++)\ if(add){\ vbuf[x] += dst[x + src_x];\ vbuf[x] = (vbuf[x] + (1<<(FRAC_BITS-1))) >> FRAC_BITS;\ if(vbuf[x]&(~255)) vbuf[x]= ~(vbuf[x]>>31);\ dst8[x + y*src_stride] = vbuf[x];\ }else{\ dst[x + src_x] -= vbuf[x];\ }
Definition at line 496 of file snow_altivec.c.
Referenced by inner_add_yblock_bw_16_obmc_32_altivec(), and inner_add_yblock_bw_8_obmc_16_altivec().
#define FINAL_STEP_VEC |
Definition at line 617 of file snow_altivec.c.
Referenced by inner_add_yblock_a_bw_16_obmc_32_altivec(), and inner_add_yblock_a_bw_8_obmc_16_altivec().
#define LOAD_BLOCKS |
Value:
tmp1 = vec_ld(0, &block[3][y*src_stride]);\ align = vec_lvsl(0, &block[3][y*src_stride]);\ tmp2 = vec_ld(15, &block[3][y*src_stride]);\ \ b3 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, &block[2][y*src_stride]);\ align = vec_lvsl(0, &block[2][y*src_stride]);\ tmp2 = vec_ld(15, &block[2][y*src_stride]);\ \ b2 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, &block[1][y*src_stride]);\ align = vec_lvsl(0, &block[1][y*src_stride]);\ tmp2 = vec_ld(15, &block[1][y*src_stride]);\ \ b1 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, &block[0][y*src_stride]);\ align = vec_lvsl(0, &block[0][y*src_stride]);\ tmp2 = vec_ld(15, &block[0][y*src_stride]);\ \ b0 = vec_perm(tmp1,tmp2,align);
Definition at line 416 of file snow_altivec.c.
Referenced by inner_add_yblock_a_bw_16_obmc_32_altivec(), inner_add_yblock_a_bw_8_obmc_16_altivec(), inner_add_yblock_bw_16_obmc_32_altivec(), and inner_add_yblock_bw_8_obmc_16_altivec().
#define LOAD_OBMCS |
Value:
tmp1 = vec_ld(0, obmc1);\ align = vec_lvsl(0, obmc1);\ tmp2 = vec_ld(15, obmc1);\ \ ob1 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, obmc2);\ align = vec_lvsl(0, obmc2);\ tmp2 = vec_ld(15, obmc2);\ \ ob2 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, obmc3);\ align = vec_lvsl(0, obmc3);\ tmp2 = vec_ld(15, obmc3);\ \ ob3 = vec_perm(tmp1,tmp2,align);\ \ tmp1 = vec_ld(0, obmc4);\ align = vec_lvsl(0, obmc4);\ tmp2 = vec_ld(15, obmc4);\ \ ob4 = vec_perm(tmp1,tmp2,align);
Definition at line 441 of file snow_altivec.c.
Referenced by inner_add_yblock_a_bw_16_obmc_32_altivec(), inner_add_yblock_a_bw_8_obmc_16_altivec(), inner_add_yblock_bw_16_obmc_32_altivec(), and inner_add_yblock_bw_8_obmc_16_altivec().
#define slice_buffer_get_line | ( | slice_buf, | |||
line_num | ) | ((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] : slice_buffer_load_line((slice_buf), (line_num))) |
Definition at line 34 of file snow_altivec.c.
Referenced by correlate_slice_buffered(), decode_frame(), decode_subband_slice_buffered(), dequantize_slice_buffered(), ff_snow_inner_add_yblock(), inner_add_yblock_a_bw_16_obmc_32_altivec(), inner_add_yblock_a_bw_8_obmc_16_altivec(), inner_add_yblock_bw_16_obmc_32_altivec(), inner_add_yblock_bw_8_obmc_16_altivec(), spatial_compose53i_buffered_init(), spatial_compose53i_dy_buffered(), spatial_compose97i_buffered_init(), and spatial_compose97i_dy_buffered().
#define STEPS_0_1 |
Value:
h1 = (vector unsigned short)\ vec_mergeh(ob1, ob2);\ \ h2 = (vector unsigned short)\ vec_mergeh(ob3, ob4);\ \ ih = (vector unsigned char)\ vec_mergeh(h1,h2);\ \ l1 = (vector unsigned short) vec_mergeh(b3, b2);\ \ ih1 = (vector unsigned char) vec_mergel(h1, h2);\ \ l2 = (vector unsigned short) vec_mergeh(b1, b0);\ \ il = (vector unsigned char) vec_mergeh(l1, l2);\ \ v[0] = (vector signed int) vec_msum(ih, il, vec_splat_u32(0));\ \ il1 = (vector unsigned char) vec_mergel(l1, l2);\ \ v[1] = (vector signed int) vec_msum(ih1, il1, vec_splat_u32(0));
Definition at line 472 of file snow_altivec.c.
Referenced by inner_add_yblock_a_bw_16_obmc_32_altivec(), inner_add_yblock_a_bw_8_obmc_16_altivec(), inner_add_yblock_bw_16_obmc_32_altivec(), and inner_add_yblock_bw_8_obmc_16_altivec().
#define STEPS_2_3 |
Value:
h1 = (vector unsigned short) vec_mergel(ob1, ob2);\ \ h2 = (vector unsigned short) vec_mergel(ob3, ob4);\ \ ih = (vector unsigned char) vec_mergeh(h1,h2);\ \ l1 = (vector unsigned short) vec_mergel(b3, b2);\ \ l2 = (vector unsigned short) vec_mergel(b1, b0);\ \ ih1 = (vector unsigned char) vec_mergel(h1,h2);\ \ il = (vector unsigned char) vec_mergeh(l1,l2);\ \ v[2] = (vector signed int) vec_msum(ih, il, vec_splat_u32(0));\ \ il1 = (vector unsigned char) vec_mergel(l1,l2);\ \ v[3] = (vector signed int) vec_msum(ih1, il1, vec_splat_u32(0));
Definition at line 552 of file snow_altivec.c.
Referenced by inner_add_yblock_a_bw_16_obmc_32_altivec(), and inner_add_yblock_bw_16_obmc_32_altivec().
void ff_snow_horizontal_compose97i_altivec | ( | IDWTELEM * | b, | |
int | width | |||
) |
void ff_snow_inner_add_yblock_altivec | ( | uint8_t * | obmc, | |
const int | obmc_stride, | |||
uint8_t ** | block, | |||
int | b_w, | |||
int | b_h, | |||
int | src_x, | |||
int | src_y, | |||
int | src_stride, | |||
slice_buffer * | sb, | |||
int | add, | |||
uint8_t * | dst8 | |||
) |
static void inner_add_yblock_a_bw_16_obmc_32_altivec | ( | uint8_t * | obmc, | |
const int | obmc_stride, | |||
uint8_t ** | block, | |||
int | b_w, | |||
int | b_h, | |||
int | src_x, | |||
int | src_y, | |||
int | src_stride, | |||
slice_buffer * | sb, | |||
int | add, | |||
uint8_t * | dst8 | |||
) | [static] |
static void inner_add_yblock_a_bw_8_obmc_16_altivec | ( | uint8_t * | obmc, | |
const int | obmc_stride, | |||
uint8_t ** | block, | |||
int | b_w, | |||
int | b_h, | |||
int | src_x, | |||
int | src_y, | |||
int | src_stride, | |||
slice_buffer * | sb, | |||
int | add, | |||
uint8_t * | dst8 | |||
) | [static] |
static void inner_add_yblock_bw_16_obmc_32_altivec | ( | uint8_t * | obmc, | |
const int | obmc_stride, | |||
uint8_t ** | block, | |||
int | b_w, | |||
int | b_h, | |||
int | src_x, | |||
int | src_y, | |||
int | src_stride, | |||
slice_buffer * | sb, | |||
int | add, | |||
uint8_t * | dst8 | |||
) | [static] |
static void inner_add_yblock_bw_8_obmc_16_altivec | ( | uint8_t * | obmc, | |
const int | obmc_stride, | |||
uint8_t ** | block, | |||
int | b_w, | |||
int | b_h, | |||
int | src_x, | |||
int | src_y, | |||
int | src_stride, | |||
slice_buffer * | sb, | |||
int | add, | |||
uint8_t * | dst8 | |||
) | [static] |
static DWTELEM* slice_buffer_load_line | ( | slice_buffer * | buf, | |
int | line | |||
) | [static] |
Definition at line 36 of file snow_altivec.c.
void snow_init_altivec | ( | DSPContext * | c, | |
AVCodecContext * | avctx | |||
) |