364 |
} |
} |
365 |
|
|
366 |
|
|
367 |
void MBPrediction(MBParam *pParam, |
void MBPrediction(FRAMEINFO *frame, |
368 |
uint32_t x, |
uint32_t x, |
369 |
uint32_t y, |
uint32_t y, |
370 |
uint32_t mb_width, |
uint32_t mb_width, |
371 |
int16_t qcoeff[6*64], |
int16_t qcoeff[6*64]) |
|
MACROBLOCK *mbs) |
|
372 |
{ |
{ |
373 |
|
|
374 |
int32_t j; |
int32_t j; |
375 |
int32_t iDcScaler, iQuant = pParam->quant; |
int32_t iDcScaler, iQuant = frame->quant; |
376 |
int32_t S = 0; |
int32_t S = 0; |
377 |
int16_t predictors[6][8]; |
int16_t predictors[6][8]; |
378 |
|
|
379 |
MACROBLOCK *pMB = &mbs[x + y * mb_width]; |
MACROBLOCK *pMB = &frame->mbs[x + y * mb_width]; |
380 |
|
|
381 |
if ((pMB->mode == MODE_INTRA) || (pMB->mode == MODE_INTRA_Q)) { |
if ((pMB->mode == MODE_INTRA) || (pMB->mode == MODE_INTRA_Q)) { |
382 |
|
|
384 |
{ |
{ |
385 |
iDcScaler = get_dc_scaler(iQuant, (j < 4) ? 1 : 0); |
iDcScaler = get_dc_scaler(iQuant, (j < 4) ? 1 : 0); |
386 |
|
|
387 |
predict_acdc(mbs, |
predict_acdc(frame->mbs, |
388 |
x, |
x, |
389 |
y, |
y, |
390 |
mb_width, |
mb_width, |