Opened 4 months ago

Last modified 4 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 4 months ago by ksuehring

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