Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#1206 closed defect (fixed)

Mismatch with reference decoder when decoding cbf_luma when using intra block copying

Reported by: peterderivaz Owned by:
Priority: major Milestone: RExt D5
Component: RExt text Version: RExt D5 (O1005) v1
Keywords: Cc: davidf, joel, teruhiko, jct-vc@…

Description

Suppose you are encoding a coding unit with CuPredMode=MODE_INTRA and intra_bc_flag=1, and that there is no chroma residual and the transform unit is not split.

If there was no luma residual, then rqt_root_cbf will be set to 0 and all is well.

However, if there is some luma residual to be coded then:

  1. rqt_root_cbf will be set to 1
  2. transform_tree will be coded
  3. split_transform_flag set to 0
  4. cbf_cb set to 0
  5. cbf_cr set to 0

at this point the expression in 7.3.8.8 Transform Tree SYntax:

( CuPredMode[ x0 ][ y0 ] = = MODE_INTRA | | trafoDepth != 0 | |

cbf_cb[ x0 ][ y0 ][ trafoDepth ] | | cbf_cr[ x0 ][ y0 ][ trafoDepth ] | |
( ChromaArrayType = = 2 &&

( cbf_cb[ x0 ][ y0 + ( 1 << ( log2TrafoSize − 1 ) ) ][ trafoDepth ] | |
cbf_cr[ x0 ][ y0 + ( 1 << ( log2TrafoSize − 1 ) ) ][ trafoDepth ] ) ) )

is tested, and will evaluate to true so the specification says we should encode cbf_luma.

However, the reference code does not encode cbf_luma (line 501 of TDecEntropy.cpp).

I believe the reference code is right because we can deduce that cbf_luma must be 1 in this case, so it does not need to be coded.

Change History (3)

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

Reviewing JCTVC-N0256, i believe that you are correct and the test in §7.3.8.8 should be:

CuPredMode[x0][y0] == MODE_INTRA && intra_bc_flag[x0][y0] != 1

Fixed in v2.

comment:3 Changed 8 years ago by davidf

  • Milestone changed from RExt D6 to RExt D5
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)
  • jct-vc@…(Subscriber)
  • Joel(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Peter de Rivaz(Reporter)
  • Teruhiko Suzuki(Subscriber)