fixed an issue related to 2nd order size due to merge artifacts.
For 8x8 transformed macroblock, the 2nd order transform is a 2x2 haar transform, here there is only 4 coefficients total. A previous merge changed these to 64, causing crashes when encoding with 8x8 transform enabled. (i.e. when input video image size > 640x360 ) This commit reverts them back to 4 and fixes the crashes. Change-Id: I3290b81f8c0d32c7efec03093a61ea57736c0550
This commit is contained in:
parent
2615ca5d41
commit
9ded6e375a
@ -346,14 +346,14 @@ BLOCK_LOOP_8x8:
|
||||
seg_eob = get_segdata( x, segment_id, SEG_LVL_EOB );
|
||||
}
|
||||
else
|
||||
seg_eob = 64;
|
||||
seg_eob = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
VP8_COMBINEENTROPYCONTEXTS_8x8(v, *a, *l, *a1, *l1);
|
||||
if ( segfeature_active( x, segment_id, SEG_LVL_EOB ) )
|
||||
{
|
||||
seg_eob = get_segdata( x, segment_id, SEG_LVL_EOB );
|
||||
seg_eob = get_segdata( x, segment_id, SE_LVL_EOB );
|
||||
}
|
||||
else
|
||||
seg_eob = 64;
|
||||
@ -363,7 +363,6 @@ BLOCK_LOOP_8x8:
|
||||
Prob += v * ENTROPY_NODES;
|
||||
|
||||
DO_WHILE_8x8:
|
||||
//#if CONFIG_SEGFEATURES
|
||||
if ( c == seg_eob )
|
||||
goto BLOCK_FINISHED_8x8;
|
||||
|
||||
|
@ -1222,7 +1222,7 @@ void vp8cx_mb_init_quantizer(VP8_COMP *cpi, MACROBLOCK *x)
|
||||
{
|
||||
x->block[24].eob_max_offset = 16;
|
||||
#if CONFIG_T8X8
|
||||
x->block[24].eob_max_offset_8x8 = 64;
|
||||
x->block[24].eob_max_offset_8x8 = 4;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ static void tokenize2nd_order_b_8x8
|
||||
int x;
|
||||
const short *qcoeff_ptr = b->qcoeff;
|
||||
|
||||
int seg_eob = 64;
|
||||
int seg_eob = 4;
|
||||
int segment_id = xd->mode_info_context->mbmi.segment_id;
|
||||
|
||||
if ( segfeature_active( xd, segment_id, SEG_LVL_EOB ) )
|
||||
|
Loading…
x
Reference in New Issue
Block a user