Opened 13 months ago

Last modified 13 months ago

#337 new defect

Cross component prediction tool in VTM but not described in spec

Reported by: jonathang Owned by:
Priority: minor Milestone:
Component: VTM Version: VTM-5.0
Keywords: Cc: ksuehring, XiangLi, fbossen, jvet@…

Description (last modified by ksuehring)

In VTM 5.0 within CABACReader::transform_unit, the following code may result in the decoding of a CCP flag, and then a CCP alpha value

        if( TU::hasCrossCompPredInfo( tu, compID ) )
        {
          cross_comp_pred( tu, compID );
        }


void CABACReader::cross_comp_pred( TransformUnit& tu, ComponentID compID )
{
  signed char alpha   = 0;
  unsigned    ctxBase = ( compID == COMPONENT_Cr ? 5 : 0 );
  unsigned    symbol  = m_BinDecoder.decodeBin( Ctx::CrossCompPred(ctxBase) );
  if( symbol )
  {
    // Cross-component prediction alpha is non-zero.
    symbol = m_BinDecoder.decodeBin( Ctx::CrossCompPred(ctxBase+1) );
    if( symbol )
    {
      // alpha is 2 (symbol=1), 4(symbol=2) or 8(symbol=3).
      // Read up to two more bits
      symbol += unary_max_symbol( Ctx::CrossCompPred(ctxBase+2), Ctx::CrossCompPred(ctxBase+3), 2 );
    }
    alpha = ( 1 << symbol );
    if( m_BinDecoder.decodeBin( Ctx::CrossCompPred(ctxBase+4) ) )
    {
      alpha = -alpha;
    }
  }
  tu.compAlpha[compID] = alpha;
}

In the current spec there are no syntax elements for CCP. Given the CCLM intra prediction mode and the joint chroma residual coding, is CCP to be removed?

Change history (1)

comment:1 Changed 13 months ago by ksuehring

  • Description modified (diff)
Note: See TracTickets for help on using tickets.