Opened 5 years ago

Last modified 4 years ago

#337 closed defect

Cross component prediction tool in VTM but not described in spec — at Version 1

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 5 years ago by ksuehring

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