333 |
#include "../dct/fdct.h" |
#include "../dct/fdct.h" |
334 |
|
|
335 |
static int |
static int |
336 |
CountMBBitsInter(SearchData * const Data, |
findRDinter(SearchData * const Data, |
337 |
const MACROBLOCK * const pMBs, const int x, const int y, |
const MACROBLOCK * const pMBs, const int x, const int y, |
338 |
const MBParam * const pParam, |
const MBParam * const pParam, |
339 |
const uint32_t MotionFlags); |
const uint32_t MotionFlags); |
340 |
|
|
341 |
static int |
static int |
342 |
CountMBBitsInter4v(const SearchData * const Data, |
findRDinter4v(const SearchData * const Data, |
343 |
MACROBLOCK * const pMB, const MACROBLOCK * const pMBs, |
MACROBLOCK * const pMB, const MACROBLOCK * const pMBs, |
344 |
const int x, const int y, |
const int x, const int y, |
345 |
const MBParam * const pParam, const uint32_t MotionFlags, |
const MBParam * const pParam, const uint32_t MotionFlags, |
346 |
const VECTOR * const backup); |
const VECTOR * const backup); |
347 |
|
|
348 |
static int |
static int |
349 |
CountMBBitsIntra(const SearchData * const Data); |
findRDintra(const SearchData * const Data); |
350 |
|
|
351 |
static int |
static int |
352 |
CountMBBitsGMC(const SearchData * const Data, const IMAGE * const vGMC, const int x, const int y); |
findRDgmc(const SearchData * const Data, const IMAGE * const vGMC, const int x, const int y); |
353 |
|
|
354 |
int CodeCoeffIntra_CalcBits(const int16_t qcoeff[64], const uint16_t * zigzag); |
int CodeCoeffIntra_CalcBits(const int16_t qcoeff[64], const uint16_t * zigzag); |
355 |
int CodeCoeffInter_CalcBits(const int16_t qcoeff[64], const uint16_t * zigzag); |
int CodeCoeffInter_CalcBits(const int16_t qcoeff[64], const uint16_t * zigzag); |
391 |
distortion += data[i]*data[i]; |
distortion += data[i]*data[i]; |
392 |
} |
} |
393 |
|
|
394 |
|
return bits + (LAMBDA*distortion)/(quant*quant); |
|
bits += (LAMBDA*distortion)/(quant*quant); |
|
|
|
|
|
return bits; |
|
395 |
} |
} |
396 |
|
|
397 |
static __inline unsigned int |
static __inline unsigned int |
430 |
if (quant_type) dequant_intra(dqcoeff, coeff, quant, iDcScaler); |
if (quant_type) dequant_intra(dqcoeff, coeff, quant, iDcScaler); |
431 |
else dequant4_intra(dqcoeff, coeff, quant, iDcScaler); |
else dequant4_intra(dqcoeff, coeff, quant, iDcScaler); |
432 |
|
|
433 |
for (i = 0; i < 64; i++) { |
for (i = 0; i < 64; i++) |
434 |
distortion += (data[i] - dqcoeff[i])*(data[i] - dqcoeff[i]); |
distortion += (data[i] - dqcoeff[i])*(data[i] - dqcoeff[i]); |
|
} |
|
|
|
|
|
bits += (LAMBDA*distortion)/(quant*quant); |
|
435 |
|
|
436 |
return bits; |
return bits + (LAMBDA*distortion)/(quant*quant); |
437 |
} |
} |
438 |
|
|
439 |
#endif /* _MOTION_EST_H_ */ |
#endif /* _MOTION_EST_H_ */ |