721 |
} |
} |
722 |
} |
} |
723 |
|
|
724 |
bits += cbpy_tab[15-(cbp>>2)].len; |
bits += xvid_cbpy_tab[15-(cbp>>2)].len; |
725 |
bits += mcbpc_inter_tab[(MODE_INTER & 7) | ((cbp & 3) << 3)].len; |
bits += mcbpc_inter_tab[(MODE_INTER & 7) | ((cbp & 3) << 3)].len; |
726 |
|
|
727 |
if (bits < data->iMinSAD[0]) { |
if (bits < data->iMinSAD[0]) { |
2303 |
|
|
2304 |
// filter mask of all blocks |
// filter mask of all blocks |
2305 |
|
|
2306 |
for (my = 1; my < MBh-1; my++) |
for (my = 1; my < (uint32_t)MBh-1; my++) |
2307 |
for (mx = 1; mx < MBw-1; mx++) |
for (mx = 1; mx < (uint32_t)MBw-1; mx++) |
2308 |
{ |
{ |
2309 |
const int mbnum = mx + my * MBw; |
const int mbnum = mx + my * MBw; |
2310 |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
2320 |
MBmask[mbnum]=1; |
MBmask[mbnum]=1; |
2321 |
} |
} |
2322 |
|
|
2323 |
for (my = 1; my < MBh-1; my++) |
for (my = 1; my < (uint32_t)MBh-1; my++) |
2324 |
for (mx = 1; mx < MBw-1; mx++) |
for (mx = 1; mx < (uint32_t)MBw-1; mx++) |
2325 |
{ |
{ |
2326 |
const uint8_t *const pCur = current->image.y + 16*my*pParam->edged_width + 16*mx; |
const uint8_t *const pCur = current->image.y + 16*my*pParam->edged_width + 16*mx; |
2327 |
|
|
2329 |
if (!MBmask[mbnum]) |
if (!MBmask[mbnum]) |
2330 |
continue; |
continue; |
2331 |
|
|
2332 |
if (sad16 ( pCur, pCur+1 , pParam->edged_width, 65536) <= grad ) |
if (sad16 ( pCur, pCur+1 , pParam->edged_width, 65536) <= (uint32_t)grad ) |
2333 |
MBmask[mbnum] = 0; |
MBmask[mbnum] = 0; |
2334 |
if (sad16 ( pCur, pCur+pParam->edged_width, pParam->edged_width, 65536) <= grad ) |
if (sad16 ( pCur, pCur+pParam->edged_width, pParam->edged_width, 65536) <= (uint32_t)grad ) |
2335 |
MBmask[mbnum] = 0; |
MBmask[mbnum] = 0; |
2336 |
|
|
2337 |
} |
} |
2342 |
|
|
2343 |
a = b = c = n = 0; |
a = b = c = n = 0; |
2344 |
DtimesF[0] = DtimesF[1] = DtimesF[2] = DtimesF[3] = 0.; |
DtimesF[0] = DtimesF[1] = DtimesF[2] = DtimesF[3] = 0.; |
2345 |
for (my = 0; my < MBh; my++) |
for (my = 0; my < (uint32_t)MBh; my++) |
2346 |
for (mx = 0; mx < MBw; mx++) |
for (mx = 0; mx < (uint32_t)MBw; mx++) |
2347 |
{ |
{ |
2348 |
const int mbnum = mx + my * MBw; |
const int mbnum = mx + my * MBw; |
2349 |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
2380 |
|
|
2381 |
meanx = meany = 0.; |
meanx = meany = 0.; |
2382 |
oldnum = 0; |
oldnum = 0; |
2383 |
for (my = 0; my < MBh; my++) |
for (my = 0; my < (uint32_t)MBh; my++) |
2384 |
for (mx = 0; mx < MBw; mx++) |
for (mx = 0; mx < (uint32_t)MBw; mx++) |
2385 |
{ |
{ |
2386 |
const int mbnum = mx + my * MBw; |
const int mbnum = mx + my * MBw; |
2387 |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
2409 |
fprintf(stderr,"meanx = %8.5f meany = %8.5f %d\n",meanx,meany, oldnum); |
fprintf(stderr,"meanx = %8.5f meany = %8.5f %d\n",meanx,meany, oldnum); |
2410 |
*/ |
*/ |
2411 |
num = 0; |
num = 0; |
2412 |
for (my = 0; my < MBh; my++) |
for (my = 0; my < (uint32_t)MBh; my++) |
2413 |
for (mx = 0; mx < MBw; mx++) |
for (mx = 0; mx < (uint32_t)MBw; mx++) |
2414 |
{ |
{ |
2415 |
const int mbnum = mx + my * MBw; |
const int mbnum = mx + my * MBw; |
2416 |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
const MACROBLOCK *pMB = &pMBs[mbnum]; |
2658 |
bits += CodeCoeffInter_CalcBits(coeff, scan_tables[0]); |
bits += CodeCoeffInter_CalcBits(coeff, scan_tables[0]); |
2659 |
cbp |= 1 << (5 - 5); |
cbp |= 1 << (5 - 5); |
2660 |
} |
} |
2661 |
bits += cbpy_tab[15-(cbp>>2)].len; |
bits += xvid_cbpy_tab[15-(cbp>>2)].len; |
2662 |
bits += mcbpc_inter_tab[(MODE_INTER4V & 7) | ((cbp & 3) << 3)].len; |
bits += mcbpc_inter_tab[(MODE_INTER4V & 7) | ((cbp & 3) << 3)].len; |
2663 |
} |
} |
2664 |
} |
} |
2723 |
|
|
2724 |
Data->temp[5] = t; |
Data->temp[5] = t; |
2725 |
|
|
2726 |
bits += t = cbpy_tab[cbp>>2].len; |
bits += t = xvid_cbpy_tab[cbp>>2].len; |
2727 |
Data->temp[6] = t; |
Data->temp[6] = t; |
2728 |
|
|
2729 |
bits += t = mcbpc_inter_tab[(MODE_INTRA & 7) | ((cbp & 3) << 3)].len; |
bits += t = mcbpc_inter_tab[(MODE_INTRA & 7) | ((cbp & 3) << 3)].len; |