View Issue Details

IDProjectCategoryView StatusLast Update
0000263JVT JM H.264/AVC reference softwareencoderpublic2011-11-10 17:19
ReporterDiego F. de Souza Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
OSLinux 
Product VersionJM 17.2 
Summary0000263: Losing the right references in B slices for block 16x16
DescriptionIf the 'determine_prediction_list' function in the md_high.c (mode_decision.c) selects BI_PRED_L0 or BI_PRED_L1 as the best prediction, the right references for LIST_0 and LIST_1 are lost. Since these predictions (BI_PRED_L0 and BI_PRED_L1) use always the first reference of each list, the right references from the LIST_0 and LIST_1 predictions will be erased from the variable 'best'.

The problem is because in the optimization loop, in the 'compute_mode_RD_cost' function in the md_high.c (mode_decision.c), all predictions (LIST_0, LIST_1, BI_PRED, BI_PRED_L0 and BI_PRED_L1) for 16x16 blocks are tested. The function which realizes these tests is in mode_decision.c file inside the 'compute_mode_RD_cost' function:

terminate_16x16 = bslice_16x16_termination_control(p_Inp, p_Vid->b8x8info, &ctr16x16, mode, bslice);

But this function will return the wrong references for the LIST_0, LIST_1 and BI_PRED predictions.
Additional InformationI didn't test, but I believe the same mistake will happen on the JM 18.0.
Tagsmode decision

Activities

Alexis Michael Tourapis

2011-06-13 00:49

developer   ~0000488

The code seems to need some reorganization and cleanup in term of mode decision to avoid contamination of information, as is happening in this case. Currently, it is somewhat of a lower priority unfortunately :(.

Issue History

Date Modified Username Field Change
2011-05-20 18:07 Diego F. de Souza New Issue
2011-05-20 18:10 Diego F. de Souza Tag Attached: JM 17.2
2011-05-20 18:10 Diego F. de Souza Tag Attached: mode decision
2011-06-13 00:49 Alexis Michael Tourapis Note Added: 0000488
2011-11-10 17:19 Karsten Suehring Tag Detached: JM 17.2