36 "addiu $9, %0, 768 \n"
48 :
"+r" (blocks) ::
"$8",
"$9",
"memory" );
62 "pextlb $8, $0, $8 \n\t"
66 "pextlb $9, $0, $9 \n\t"
70 "pextlb $10, $0, $10 \n\t"
74 "pextlb $8, $0, $8 \n\t"
78 "pextlb $9, $0, $9 \n\t"
82 "pextlb $10, $0, $10 \n\t"
84 "pextlb $8, $0, $8 \n\t"
86 "pextlb $9, $0, $9 \n\t"
89 :
"+r" (pixels) :
"r" (block),
"r" (line_size) :
"$8",
"$9",
"$10",
"memory" );
100 "addiu %2, %2, -1 \n\t"
102 "add %1, %1, %3 \n\t"
104 "add %0, %0, %3 \n\t"
107 :
"+r" (
block),
"+r" (pixels),
"+r" (h) :
"r" (line_size)
119 "add $11, %1, %3 \n\t"
121 "add $10, %0, %3 \n\t"
123 "ldl $9, 15(%1) \n\t"
124 "ldr $12, 0($11) \n\t"
125 "add %1, $11, %3 \n\t"
126 "ldl $12, 7($11) \n\t"
127 "pcpyld $8, $9, $8 \n\t"
129 "ldr $13, 8($11) \n\t"
130 "addiu %2, %2, -2 \n\t"
131 "ldl $13, 15($11) \n\t"
132 "add %0, $10, %3 \n\t"
133 "pcpyld $12, $13, $12 \n\t"
134 "sq $12, 0($10) \n\t"
137 :
"+r" (
block),
"+r" (pixels),
"+r" (h) :
"r" (line_size)
138 :
"$8",
"$9",
"$10",
"$11",
"$12",
"$13",
"memory" );
147 if (!high_bit_depth) {
op_pixels_func put_pixels_tab[4][4]
Halfpel motion compensation with rounding (a+b+1)>>1.
void ff_mmi_idct_add(uint8_t *dest, int line_size, DCTELEM *block)
static void get_pixels_mmi(DCTELEM *block, const uint8_t *pixels, int line_size)
void dsputil_init_mmi(DSPContext *c, AVCodecContext *avctx)
void(* idct_add)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
void ff_mmi_idct(DCTELEM *block)
void(* get_pixels)(DCTELEM *block, const uint8_t *pixels, int line_size)
static void put_pixels16_mmi(uint8_t *block, const uint8_t *pixels, int line_size, int h)
void(* idct_put)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> clip to unsigned 8 bit -> dest.
static void clear_blocks_mmi(DCTELEM *blocks)
void ff_mmi_idct_put(uint8_t *dest, int line_size, DCTELEM *block)
op_pixels_func put_no_rnd_pixels_tab[4][4]
Halfpel motion compensation with no rounding (a+b)>>1.
#define FF_LIBMPEG2_IDCT_PERM
void(* idct)(DCTELEM *block)
int idct_algo
IDCT algorithm, see FF_IDCT_* below.
int idct_permutation_type
main external API structure.
void(* clear_blocks)(DCTELEM *blocks)
static void put_pixels8_mmi(uint8_t *block, const uint8_t *pixels, int line_size, int h)