Ignore:
Timestamp:
15 Mar 2014, 08:37:13 (10 years ago)
Author:
qualcomm
Message:

POC-related in slice header (Macro: H_MV_HLS_7_POC_P0041)

POC-related signaling in slice header tested and included. Decoding process and encoder assignment in a later patch.

From: Adarsh K. Ramasubramonian <aramasub@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-10.0-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r866 r867  
    27332733  if(pps->getSliceHeaderExtensionPresentFlag())
    27342734  {
    2735 #if !H_MV_HLS7_GEN   
     2735#if !H_MV_HLS_7_POC_P0041   
    27362736    READ_UVLC(uiCode,"slice_header_extension_length");
    27372737    for(Int i=0; i<uiCode; i++)
     
    27502750      READ_CODE( 2, uiCode, "poc_reset_idc" ); rpcSlice->setPocResetIdc( uiCode );
    27512751    }
     2752    else
     2753    {
     2754      rpcSlice->setPocResetIdc( 0 );
     2755    }
    27522756
    27532757    if( rpcSlice->getPocResetIdc() !=  0 )
    27542758    {
    27552759      READ_CODE( 6, uiCode, "poc_reset_period_id" ); rpcSlice->setPocResetPeriodId( uiCode );
     2760    }
     2761    else
     2762    {
     2763      // TODO Copy poc_reset_period from earlier picture
     2764      rpcSlice->setPocResetPeriodId( 0 );
    27562765    }
    27572766   
     
    27622771    }         
    27632772
    2764     if( !rpcSlice->getPocMsbValRequiredFlag() &&  rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2773    // Derive the value of PocMsbValRequiredFlag
     2774    rpcSlice->setPocMsbValRequiredFlag( rpcSlice->getCraPicFlag() || rpcSlice->getBlaPicFlag()
     2775                                          /* || TODO related to vps_poc_lsb_aligned_flag */
     2776                                          );
     2777
     2778    if( !rpcSlice->getPocMsbValRequiredFlag() /* TODO &&  rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
    27652779    {
    27662780      READ_FLAG( uiCode, "poc_msb_val_present_flag" ); rpcSlice->setPocMsbValPresentFlag( uiCode == 1 );
    27672781    }
     2782    else
     2783    {
     2784      if( rpcSlice->getPocMsbValRequiredFlag() )
     2785      {
     2786        rpcSlice->setPocMsbValPresentFlag( true );
     2787      }
     2788      else
     2789      {
     2790        rpcSlice->setPocMsbValPresentFlag( false );
     2791      }
     2792    }
     2793
    27682794   
    27692795    if( rpcSlice->getPocMsbValPresentFlag() )
     
    27722798    }
    27732799
    2774     while( ( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) < rpcSlice->getSliceSegmentHeaderExtensionLength() * 8 );
     2800    while( ( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) < rpcSlice->getSliceSegmentHeaderExtensionLength() * 8 )
    27752801    {
    27762802     READ_FLAG( uiCode, "slice_segment_header_extension_data_bit" );
    27772803    }
    2778     assert( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) == rpcSlice->getSliceSegmentHeaderExtensionLength() * 8  );
     2804    assert( ( m_pcBitstream->getNumBitsRead() - posFollSliceSegHeaderExtLen ) == rpcSlice->getSliceSegmentHeaderExtensionLength() * 8  );
    27792805#else
    27802806    READ_UVLC( uiCode, "slice_header_extension_length" );
     
    27872813#endif
    27882814#endif
     2815  }
    27892816
    27902817
Note: See TracChangeset for help on using the changeset viewer.