View Issue Details

IDProjectCategoryView StatusLast Update
0000134JVT JM H.264/AVC reference softwareencoderpublic2008-09-15 08:14
Reporterevgenyk Assigned ToAlexis Michael Tourapis  
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Product VersionJM 14.2 
Fixed in VersionJM 15.0 
Summary0000134: Encoder crashes when P or B inter MB's modes are forced to 4x8, 8x4 and 4x4 sub-partitions only
DescriptionHello JVT JM experts,
I should to force inter modes in P and B slices to 4x8, 8x4 and 4x4 only.
However, encoder versions 14.0 and 14.2 were crashed when I modify a "cfg" file as follows:

---------------------------------------------------------------------------
PSliceSkip = 0 # P-Slice Skip mode consideration (0=disable, 1=enable)
PSliceSearch16x16 = 0 # P-Slice Inter block search 16x16 (0=disable, 1=enable)
PSliceSearch16x8 = 0 # P-Slice Inter block search 16x8 (0=disable, 1=enable)
PSliceSearch8x16 = 0 # P-Slice Inter block search 8x16 (0=disable, 1=enable)
PSliceSearch8x8 = 0 # P-Slice Inter block search 8x8 (0=disable, 1=enable)
PSliceSearch8x4 = 1 # P-Slice Inter block search 8x4 (0=disable, 1=enable)
PSliceSearch4x8 = 1 # P-Slice Inter block search 4x8 (0=disable, 1=enable)
PSliceSearch4x4 = 1 # P-Slice Inter block search 4x4 (0=disable, 1=enable)
BSliceDirect = 0 # B-Slice Skip mode consideration (0=disable, 1=enable)
BSliceSearch16x16 = 0 # B-Slice Inter block search 16x16 (0=disable, 1=enable)
BSliceSearch16x8 = 0 # B-Slice Inter block search 16x8 (0=disable, 1=enable)
BSliceSearch8x16 = 0 # B-Slice Inter block search 8x16 (0=disable, 1=enable)
BSliceSearch8x8 = 0 # B-Slice Inter block search 8x8 (0=disable, 1=enable)
BSliceSearch8x4 = 1 # B-Slice Inter block search 8x4 (0=disable, 1=enable)
BSliceSearch4x8 = 1 # B-Slice Inter block search 4x8 (0=disable, 1=enable)
BSliceSearch4x4 = 1 # B-Slice Inter block search 4x4 (0=disable, 1=enable)

Sincerely yours,
Evgeny

TagsNo tags attached.

Activities

evgenyk

2008-09-14 16:28

reporter   ~0000233

Last edited: 2008-09-14 16:29

This issue hapens when I allow using 8x8 transform additionally:

So when => Transform8x8Mode=1

Alexis Michael Tourapis

2008-09-14 19:52

developer   ~0000235

The problem seems to have existed in earlier versions also.

Alexis Michael Tourapis

2008-09-15 08:14

developer   ~0000236

In void submacroblock_mode_decision() add the following new variable:

  boolean stored_state_8x8 = FALSE;

This variable needs to be set when setting best 8x8 coding state:

        //--- store best 8x8 coding state ---
        if (block < 3)
        {
          store_coding_state (currMB, cs_b8);
          stored_state_8x8 = TRUE;
        }

Finally, the cs_b8 state needs to be restored at the end of the process, i.e.


  //===== set the coding state after current block =====
  //if (transform8x8 == 0 || block < 3)
  //if (block < 3) // replace this line
  if (stored_state_8x8 == TRUE) // correct code
    reset_coding_state (currMB, cs_b8);

Issue History

Date Modified Username Field Change
2008-09-14 15:38 evgenyk New Issue
2008-09-14 16:28 evgenyk Note Added: 0000233
2008-09-14 16:29 evgenyk Note Edited: 0000233
2008-09-14 19:52 Alexis Michael Tourapis Note Added: 0000235
2008-09-15 08:14 Alexis Michael Tourapis Note Added: 0000236
2008-09-15 08:14 Alexis Michael Tourapis Status new => resolved
2008-09-15 08:14 Alexis Michael Tourapis Fixed in Version => JM 14.2-dev
2008-09-15 08:14 Alexis Michael Tourapis Resolution open => fixed
2008-09-15 08:14 Alexis Michael Tourapis Assigned To => Alexis Michael Tourapis