361 |
MBTransQuantInterBVOP(const MBParam * pParam, |
MBTransQuantInterBVOP(const MBParam * pParam, |
362 |
FRAMEINFO * frame, |
FRAMEINFO * frame, |
363 |
MACROBLOCK * pMB, |
MACROBLOCK * pMB, |
364 |
|
const uint32_t x_pos, |
365 |
|
const uint32_t y_pos, |
366 |
int16_t data[6 * 64], |
int16_t data[6 * 64], |
367 |
int16_t qcoeff[6 * 64]) |
int16_t qcoeff[6 * 64]) |
368 |
{ |
{ |
373 |
MBfDCT(pParam,frame,pMB,data); |
MBfDCT(pParam,frame,pMB,data); |
374 |
cbp = MBQuantInter(pParam,frame->quant,data,qcoeff); |
cbp = MBQuantInter(pParam,frame->quant,data,qcoeff); |
375 |
|
|
376 |
/* we don't have to DeQuant, iDCT and Transfer back data for B-frames */ |
/* |
377 |
|
* History comment: |
378 |
|
* we don't have to DeQuant, iDCT and Transfer back data for B-frames |
379 |
|
*/ |
380 |
|
|
381 |
|
/* |
382 |
|
* As an exception to the previous rule, if we are willing to have extra |
383 |
|
* stats then we have to DeQuant, iDCT and Transfer back the data :-) |
384 |
|
*/ |
385 |
|
if(frame->vop_flags & XVID_EXTRASTATS) { |
386 |
|
MBDeQuantInter(pParam,frame->quant,data,qcoeff,cbp); |
387 |
|
MBiDCT(data,cbp); |
388 |
|
MBTransAdd(pParam,frame,pMB,x_pos,y_pos,data,cbp); |
389 |
|
} |
390 |
|
|
391 |
return cbp; |
return cbp; |
392 |
} |
} |