372 |
pEnc->mbParam.rounding_type = 1; |
pEnc->mbParam.rounding_type = 1; |
373 |
pEnc->mbParam.coding_type = I_VOP; |
pEnc->mbParam.coding_type = I_VOP; |
374 |
|
|
375 |
BitstreamWriteVolHeader(bs, pEnc->mbParam.width, pEnc->mbParam.height, pEnc->mbParam.quant_type); |
BitstreamWriteVolHeader(bs, &pEnc->mbParam); |
376 |
BitstreamWriteVopHeader(bs, I_VOP, pEnc->mbParam.rounding_type, |
BitstreamWriteVopHeader(bs, &pEnc->mbParam); |
|
pEnc->mbParam.quant, |
|
|
pEnc->mbParam.fixed_code); |
|
377 |
|
|
378 |
*pBits = BitstreamPos(bs); |
*pBits = BitstreamPos(bs); |
379 |
|
|
388 |
|
|
389 |
CodeIntraMB(pEnc, pMB); |
CodeIntraMB(pEnc, pMB); |
390 |
|
|
391 |
MBTransQuantIntra(&pEnc->mbParam, x, y, dct_codes, qcoeff, &pEnc->sCurrent); |
MBTransQuantIntra(&pEnc->mbParam, pMB, x, y, dct_codes, qcoeff, &pEnc->sCurrent); |
392 |
|
|
393 |
start_timer(); |
start_timer(); |
394 |
MBPrediction(&pEnc->mbParam, x, y, pEnc->mbParam.mb_width, qcoeff, pEnc->pMBs); |
MBPrediction(&pEnc->mbParam, x, y, pEnc->mbParam.mb_width, qcoeff, pEnc->pMBs); |
428 |
IMAGE *pCurrent = &pEnc->sCurrent; |
IMAGE *pCurrent = &pEnc->sCurrent; |
429 |
IMAGE *pRef = &pEnc->sReference; |
IMAGE *pRef = &pEnc->sReference; |
430 |
|
|
431 |
image_setedges(pRef,pEnc->mbParam.edged_width, pEnc->mbParam.edged_height, pEnc->mbParam.width, pEnc->mbParam.height); |
start_timer(); |
432 |
|
image_setedges(pRef,pEnc->mbParam.edged_width, pEnc->mbParam.edged_height, pEnc->mbParam.width, pEnc->mbParam.height, pEnc->mbParam.global_flags & XVID_INTERLACING); |
433 |
|
stop_edges_timer(); |
434 |
|
|
435 |
pEnc->mbParam.rounding_type = 1 - pEnc->mbParam.rounding_type; |
pEnc->mbParam.rounding_type = 1 - pEnc->mbParam.rounding_type; |
436 |
|
|
459 |
pEnc->mbParam.coding_type = P_VOP; |
pEnc->mbParam.coding_type = P_VOP; |
460 |
|
|
461 |
if(vol_header) |
if(vol_header) |
462 |
BitstreamWriteVolHeader(bs, pEnc->mbParam.width, pEnc->mbParam.height, pEnc->mbParam.quant_type); |
BitstreamWriteVolHeader(bs, &pEnc->mbParam); |
463 |
|
|
464 |
BitstreamWriteVopHeader(bs, P_VOP, pEnc->mbParam.rounding_type, |
BitstreamWriteVopHeader(bs, &pEnc->mbParam); |
|
pEnc->mbParam.quant, |
|
|
pEnc->mbParam.fixed_code); |
|
465 |
|
|
466 |
*pBits = BitstreamPos(bs); |
*pBits = BitstreamPos(bs); |
467 |
|
|
500 |
} |
} |
501 |
pMB->quant = pEnc->mbParam.quant; |
pMB->quant = pEnc->mbParam.quant; |
502 |
|
|
503 |
pMB->cbp = MBTransQuantInter(&pEnc->mbParam, x, y, dct_codes, qcoeff, pCurrent); |
pMB->field_pred = 0; |
504 |
|
|
505 |
|
pMB->cbp = MBTransQuantInter(&pEnc->mbParam, pMB, x, y, dct_codes, qcoeff, pCurrent); |
506 |
} |
} |
507 |
else |
else |
508 |
{ |
{ |
509 |
CodeIntraMB(pEnc, pMB); |
CodeIntraMB(pEnc, pMB); |
510 |
MBTransQuantIntra(&pEnc->mbParam, x, y, dct_codes, qcoeff, pCurrent); |
MBTransQuantIntra(&pEnc->mbParam, pMB, x, y, dct_codes, qcoeff, pCurrent); |
511 |
} |
} |
512 |
|
|
513 |
start_timer(); |
start_timer(); |