Opened 7 years ago

Closed 7 years ago

#1262 closed defect (fixed)

Reference decoder discards chroma CBFs when decoding 4:2:2 with log2_min_transform_block_size_minus2>0

Reported by: jackh Owned by:
Priority: major Milestone: HM+RExt-4.2
Component: HM RExt Version: RExt-4.1 (HM-12.0)
Keywords: Cc: davidf, karlsharman, jct-vc@…


In TDecSbac::parseQtCbf(), there is this piece of code:

  if ((width != height) && (lowestLevel || !canQuadSplit)) //if sub-TUs are present
    const UInt subTUDepth        = lowestTUDepth + 1;
    const UInt partIdxesPerSubTU = rTu.GetAbsPartIdxNumParts(compID) >> 1;

When the total number of partitions in a CU are calculated, the sub-TU partitions for 4:2:2 chroma are not taken into account. This means that when decoding, for example, an 8x8 TU when log2_min_transform_block_size_minus2==1, rTu.GetAbsPartIdxNumParts(compID) will come out as 1, which will give partIdxesPerSubTU=0, causing the decoded CBF information for the sub-TUs to be discarded (stored across a block of length zero).

This doesn't happen when log2_min_transform_block_size_minus2==0 as the 4x4 chroma sub-TUs are then at least one layer above the lowest luma layer, so sufficient partition indices are available to store the data.

Change History (4)

comment:1 Changed 7 years ago by DefaultCC Plugin

  • Cc davidf karlsharman jct-vc@… added

comment:2 Changed 7 years ago by karlsharman

A fix was added in r3869. This adds an additional depth to the structures (when 4:2:2 and minimum luma TU size is not 4x4), thereby giving sufficient parameter storage for the 4:2:2 square-sub-TU split.

g_maxCUDepth and g_uiAddCUDepth are 1 greater for these cases, as controlled by the function getMaxCUDepthOffset in TComChromaFormat.h

Example that I found to cause the above situation:

./bin/TAppEncoderStatic -c cfg/encoder_intra_main_rext.cfg

-c cfg/per-sequence/EBUWaterRocksClose_422_10bit.cfg
-f 1 -q 22

Please would the reporter check this solves their particular configurations.

Also linked to #1259.

comment:3 Changed 7 years ago by jackh

I can confirm that this is fixed.

comment:4 Changed 7 years ago by karlsharman

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • David Flynn(Subscriber)
  • Jack Haughton(Reporter, Participant)
  • jct-vc@…(Subscriber)
  • Karl Sharman(Subscriber, Participant)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)