78 for(
i = 0;
i < 8;
i++ )
82 const unsigned int a4 = (
block[
i+2*8]>>1) - (
unsigned)
block[
i+6*8];
83 const unsigned int a6 = (
block[
i+6*8]>>1) + (
unsigned)
block[
i+2*8];
85 const unsigned int b0 =
a0 + a6;
86 const unsigned int b2 =
a2 + a4;
87 const unsigned int b4 =
a2 - a4;
88 const unsigned int b6 =
a0 - a6;
95 const int b1 = (a7>>2) + (
unsigned)
a1;
96 const int b3 = (unsigned)
a3 + (a5>>2);
97 const int b5 = (
a3>>2) - (
unsigned)a5;
98 const int b7 = (unsigned)a7 - (
a1>>2);
109 for(
i = 0;
i < 8;
i++ )
113 const unsigned a4 = (
block[2+
i*8]>>1) - (
unsigned)
block[6+
i*8];
114 const unsigned a6 = (
block[6+
i*8]>>1) + (
unsigned)
block[2+
i*8];
116 const unsigned b0 =
a0 + a6;
117 const unsigned b2 =
a2 + a4;
118 const unsigned b4 =
a2 - a4;
119 const unsigned b6 =
a0 - a6;
126 const unsigned b1 = (a7>>2) + (
unsigned)
a1;
127 const unsigned b3 = (unsigned)
a3 + (a5>>2);
128 const unsigned b5 = (
a3>>2) - (
unsigned)a5;
129 const unsigned b7 = (unsigned)a7 - (
a1>>2);
150 int dc = (
block[0] + 32) >> 6;
153 for( j = 0; j < 4; j++ )
155 for(
i = 0;
i < 4;
i++ )
166 int dc = (
block[0] + 32) >> 6;
169 for( j = 0; j < 8; j++ )
171 for(
i = 0;
i < 8;
i++ )
179 const uint8_t nnzc[5 * 8])
183 int nnz = nnzc[
scan8[
i] ];
193 const uint8_t nnzc[5 * 8])
204 const uint8_t nnzc[5 * 8])
207 for(
i=0;
i<16;
i+=4){
208 int nnz = nnzc[
scan8[
i] ];
217 ptrdiff_t
stride,
const uint8_t nnzc[15*8])
221 for(
i=j*16;
i<j*16+4;
i++){
231 int16_t *
block, ptrdiff_t
stride,
const uint8_t nnzc[15*8])
236 for(
i=j*16;
i<j*16+4;
i++){
245 for(
i=j*16+4;
i<j*16+8;
i++){
254#if BIT_DEPTH == 8 || BIT_DEPTH == 9
259void FUNCC2(ff_h264_luma_dc_dequant_idct)(int16_t *_output, int16_t *_input,
int qmul)
269 const int z0= input[4*
i+0] + input[4*
i+1];
270 const int z1= input[4*
i+0] - input[4*
i+1];
271 const int z2= input[4*
i+2] - input[4*
i+3];
272 const int z3= input[4*
i+2] + input[4*
i+3];
287 output[
stride* 0+
offset]= (int)((z0 + z3)*qmul + 128 ) >> 8;
288 output[
stride* 1+
offset]= (int)((z1 + z2)*qmul + 128 ) >> 8;
289 output[
stride* 4+
offset]= (int)((z1 - z2)*qmul + 128 ) >> 8;
290 output[
stride* 5+
offset]= (int)((z0 - z3)*qmul + 128 ) >> 8;
295void FUNCC2(ff_h264_chroma422_dc_dequant_idct)(int16_t *_block,
int qmul)
298 const int xStride= 16;
301 static const uint8_t x_offset[2]={0, 16};
323void FUNCC2(ff_h264_chroma_dc_dequant_idct)(int16_t *_block,
int qmul)
326 const int xStride= 16;
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define i(width, name, range_min, range_max)
common internal and external API header
H.264 decoder/parser shared code.
static const uint8_t scan8[16 *3+3]
void FUNCC ff_h264_idct_add(uint8_t *_dst, int16_t *_block, ptrdiff_t stride)
void FUNCC ff_h264_idct_add8(uint8_t **dest, const int *block_offset, int16_t *block, ptrdiff_t stride, const uint8_t nnzc[15 *8])
void FUNCC ff_h264_idct_add16(uint8_t *dst, const int *block_offset, int16_t *block, ptrdiff_t stride, const uint8_t nnzc[5 *8])
void FUNCC ff_h264_idct8_add4(uint8_t *dst, const int *block_offset, int16_t *block, ptrdiff_t stride, const uint8_t nnzc[5 *8])
void FUNCC ff_h264_idct_add16intra(uint8_t *dst, const int *block_offset, int16_t *block, ptrdiff_t stride, const uint8_t nnzc[5 *8])
void FUNCC ff_h264_idct_dc_add(uint8_t *_dst, int16_t *_block, ptrdiff_t stride)
void FUNCC ff_h264_idct8_dc_add(uint8_t *_dst, int16_t *_block, ptrdiff_t stride)
void FUNCC ff_h264_idct8_add(uint8_t *_dst, int16_t *_block, ptrdiff_t stride)
void FUNCC ff_h264_idct_add8_422(uint8_t **dest, const int *block_offset, int16_t *block, ptrdiff_t stride, const uint8_t nnzc[15 *8])
static double b1(void *priv, double x, double y)
static double a0(void *priv, double x, double y)
static double b2(void *priv, double x, double y)
static double b3(void *priv, double x, double y)
static double a3(void *priv, double x, double y)
static double b0(void *priv, double x, double y)
static double a2(void *priv, double x, double y)
static double a1(void *priv, double x, double y)