Opened 8 years ago

Closed 8 years ago

#1235 closed defect (fixed)

transform_unit() reads incorrect chroma cbf for 4:2:2 subsamples

Reported by: jackh Owned by:
Priority: minor Milestone: RExt D6
Component: RExt text Version: RExt D5 (O1005) v3
Keywords: Cc: davidf, joel, teruhiko, jct-vc@…

Description

The following code from transform_unit():

  } else if( blkIdx = = 3 ) {
    for( tIdx = 0; tIdx < ( ChromaArrayType = = 2 ? 2 : 1 ); tIdx++ )
      if( cbf_cb[ xBase ][ yBase ][ trafoDepth ] )
        residual_coding( xBase, yBase + ( tIdx << log2TrafoSize ), log2TrafoSize, 1 )
    for( tIdx = 0; tIdx < ( ChromaArrayType = = 2 ? 2 : 1 ); tIdx++ )
      if( cbf_cr[ xBase ][ yBase ][ trafoDepth ] )
        residual_coding( xBase, yBase + ( tIdx << log2TrafoSize ), log2TrafoSize, 2 )
  }

appears to disregard the second cbf in the 4:2:2 case. I think this code should read:

  } else if( blkIdx = = 3 ) {
    for( tIdx = 0; tIdx < ( ChromaArrayType = = 2 ? 2 : 1 ); tIdx++ )
      if( cbf_cb[ xBase ][ yBase + ( tIdx << log2TrafoSize ) ][ trafoDepth ] )
        residual_coding( xBase, yBase + ( tIdx << log2TrafoSize ), log2TrafoSize, 1 )
    for( tIdx = 0; tIdx < ( ChromaArrayType = = 2 ? 2 : 1 ); tIdx++ )
      if( cbf_cr[ xBase ][ yBase + ( tIdx << log2TrafoSize ) ][ trafoDepth ] )
        residual_coding( xBase, yBase + ( tIdx << log2TrafoSize ), log2TrafoSize, 2 )
  }

Change History (2)

comment:1 Changed 8 years ago by DefaultCC Plugin

  • Cc davidf joel teruhiko jct-vc@… added

comment:2 Changed 8 years ago by davidf

  • Resolution set to fixed
  • Status changed from new to closed

Fixed

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, Participant)
  • Jack Haughton(Reporter)
  • jct-vc@…(Subscriber)
  • Joel(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Teruhiko Suzuki(Subscriber)