Changeset 1110 in 3DVCSoftware


Ignore:
Timestamp:
7 Nov 2014, 14:05:45 (9 years ago)
Author:
tech
Message:

H_MV_HLS_FIX. Various fixes for MV-HEVC HLS syntax.

Location:
branches/HTM-12.2-dev2-HHI/source/Lib
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.cpp

    r1108 r1110  
    18781878  m_vpsBaseLayerInternalFlag = true;
    18791879  m_vpsBaseLayerAvailableFlag = true;
     1880
     1881
    18801882#endif
    18811883
     
    19131915  m_repFormatIdxPresentFlag = false;
    19141916  m_maxOneActiveRefLayerFlag = false;
     1917#if H_MV_HLS_FIX
     1918  m_vpsPocLsbAlignedFlag  = false;
     1919#endif
    19151920  m_directDepTypeLenMinus2   = 0;         
    19161921 
     
    23662371  return numViews;
    23672372}
    2368 
    23692373
    23702374Void TComVPS::deriveLayerSetLayerIdList()
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TComSlice.h

    r1106 r1110  
    861861  TComRepFormat* m_repFormat             [MAX_NUM_LAYERS];
    862862  Bool        m_maxOneActiveRefLayerFlag;       
    863 #if H_MV_HLS7_GEN
     863#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    864864  Bool        m_vpsPocLsbAlignedFlag;
    865865#endif
     
    11461146  Bool    getMaxOneActiveRefLayerFlag( )                                   { return m_maxOneActiveRefLayerFlag; }
    11471147
    1148 #if H_MV_HLS7_GEN
     1148#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    11491149  Void    setVpsPocLsbAlignedFlag( Bool flag )                             { m_vpsPocLsbAlignedFlag = flag; }
    11501150  Bool    getVpsPocLsbAlignedFlag(  )                                      { return m_vpsPocLsbAlignedFlag; }
     
    28802880  Int  getPocMsbVal(  ) { return m_pocMsbVal; }
    28812881
     2882#if H_MV_HLS_FIX
     2883  Bool getCraOrBlaPicFlag() { return ( getCraPicFlag() || getBlaPicFlag() ); }
     2884  Bool getPocMsbValRequiredFlag() { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) );  }
     2885#else
    28822886  Bool getPocMsbValRequiredFlag() { return m_pocMsbValRequiredFlag; }
    28832887  Void setPocMsbValRequiredFlag(Bool x) { m_pocMsbValRequiredFlag = x; }
     2888#endif
     2889
    28842890
    28852891  UInt getPocLsbValLen() { return getSPS()->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibCommon/TypeDef.h

    r1109 r1110  
    383383/////////////////////////////////////////////////////////////////////////////////
    384384// TBD: Check if integration is necessary.
     385
     386#define H_MV_HLS_FIX                         1
    385387#define H_MV_HLS_PTL_LIMITS                  0
    386388#define H_MV_HLS7_GEN                        0  // General changes (not tested)
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r1109 r1110  
    10711071  READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 );
    10721072  READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );
     1073#if H_MV_HLS_FIX
     1074
     1075  UInt numRefLocOffsets;;
     1076  READ_UVLC( numRefLocOffsets, "num_ref_loc_offsets" );
     1077
     1078  // All of the following stuff is not needed, but allowed to be present.
     1079  for (Int i = 0; i < numRefLocOffsets; i++ )
     1080  {
     1081    Int   iCode = 0;
     1082    READ_CODE( 6, uiCode, "ref_loc_offset_layer_id" );
     1083    READ_FLAG( uiCode, "scaled_ref_layer_offset_present_flag" );
     1084
     1085    if (uiCode)
     1086    {   
     1087      READ_SVLC( iCode, "scaled_ref_layer_left_offset" );   
     1088      READ_SVLC( iCode, "scaled_ref_layer_top_offset" );   
     1089      READ_SVLC( iCode, "scaled_ref_layer_right_offset" ); 
     1090      READ_SVLC( iCode, "scaled_ref_layer_bottom_offset" );
     1091    }
     1092
     1093    READ_FLAG( uiCode, "ref_region_offset_present_flag" ); 
     1094    if (uiCode)
     1095    {   
     1096      READ_SVLC( iCode, "ref_region_left_offset" );     
     1097      READ_SVLC( iCode, "ref_region_top_offset" );     
     1098      READ_SVLC( iCode, "ref_region_right_offset" );   
     1099      READ_SVLC( iCode, "ref_region_bottom_offset" );   
     1100    }
     1101
     1102    READ_FLAG( uiCode, "resample_phase_set_present_flag" );
     1103    if (uiCode)
     1104    {     
     1105      READ_UVLC( uiCode, "phase_hor_luma" );             
     1106      READ_UVLC( uiCode, "phase_ver_luma" );             
     1107      READ_UVLC( uiCode, "phase_hor_chroma_plus8" );     
     1108      READ_UVLC( uiCode, "phase_ver_chroma_plus8" );     
     1109    }
     1110  }
     1111  READ_FLAG( uiCode, "colour_mapping_enabled_flag" );   
     1112  // This is required to equal to 0 for Multiview Main profile.
     1113  assert( uiCode == 0 );
     1114#else
    10731115  READ_UVLC( uiCode, "num_ref_loc_offsets" ); assert( uiCode == 0 );
     1116#endif
    10741117}
    10751118
     
    13941437  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    13951438  {
     1439#if H_MV_HLS_FIX
     1440    if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) )   
     1441#else
    13961442    if( i >= pcVPS->getNumLayerSets( ) )   
     1443#endif
    13971444    {       
    13981445      READ_CODE( pcVPS->getLayerSetIdxForOlsMinus1Len( i ), uiCode, "layer_set_idx_for_ols_minus1[i]" ); pcVPS->setLayerSetIdxForOlsMinus1( i, uiCode );
     
    14651512
    14661513  READ_FLAG( uiCode, "max_one_active_ref_layer_flag" ); pcVPS->setMaxOneActiveRefLayerFlag ( uiCode == 1 );
    1467 #if H_MV_HLS7_GEN
     1514
     1515#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    14681516  READ_FLAG( uiCode, "vps_poc_lsb_aligned_flag" ); pcVPS->setVpsPocLsbAlignedFlag( uiCode == 1 );
    14691517#endif
     
    15151563    parseVPSVUI( pcVPS );
    15161564  }     
     1565#if H_MV_HLS_FIX
     1566  else
     1567#endif
    15171568  {
    15181569    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     
    21292180    rpcSlice->checkCrossLayerBlaFlag( );
    21302181
    2131 #if !H_MV_HLS7_GEN
     2182#if !H_MV_HLS7_GEN && !H_MV_HLS_FIX
    21322183    if ( rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb )
    21332184    {
     
    28382889
    28392890    // Derive the value of PocMs8bValRequiredFlag
     2891#if !H_MV_HLS_FIX
    28402892    rpcSlice->setPocMsbValRequiredFlag( rpcSlice->getCraPicFlag() || rpcSlice->getBlaPicFlag()
    28412893                                          /* || TODO related to vps_poc_lsb_aligned_flag */
    28422894                                          );
    2843 
     2895#endif
     2896
     2897#if H_MV_HLS_FIX
     2898    if( !rpcSlice->getPocMsbValRequiredFlag() && rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2899#else
    28442900    if( !rpcSlice->getPocMsbValRequiredFlag() /* TODO &&  rpcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2901#endif
    28452902    {
    28462903      READ_FLAG( uiCode, "poc_msb_val_present_flag" ); rpcSlice->setPocMsbValPresentFlag( uiCode == 1 );
  • branches/HTM-12.2-dev2-HHI/source/Lib/TLibEncoder/TEncCavlc.cpp

    r1109 r1110  
    871871  WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" );
    872872  WRITE_UVLC( 0, "num_ref_loc_offsets" );
     873#if H_MV_HLS_FIX
     874  WRITE_FLAG( 0 , "colour_mapping_enabled_flag" );
     875#endif
     876
    873877}
    874878
     
    11851189  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    11861190  {
     1191#if H_MV_HLS_FIX
     1192    if( pcVPS->getNumLayerSets() > 2 && i >= pcVPS->getNumLayerSets( ) )   
     1193#else
    11871194    if( i >= pcVPS->getNumLayerSets( ) )   
     1195#endif
    11881196    {     
    11891197      WRITE_CODE( pcVPS->getLayerSetIdxForOlsMinus1( i ), pcVPS->getLayerSetIdxForOlsMinus1Len( i ) ,      "layer_set_idx_for_ols_minus1[i]" );
     
    12551263
    12561264  WRITE_FLAG( pcVPS->getMaxOneActiveRefLayerFlag( ) ? 1 : 0, "max_one_active_ref_layer_flag" );
    1257 #if H_MV_HLS7_GEN
     1265#if H_MV_HLS7_GEN || H_MV_HLS_FIX
    12581266  WRITE_FLAG( pcVPS->getVpsPocLsbAlignedFlag( ) ? 1 : 0 , "vps_poc_lsb_aligned_flag" );
    12591267#endif
     
    13051313    codeVPSVUI( pcVPS );
    13061314  }     
     1315#if H_MV_HLS_FIX
     1316  else
     1317#endif
    13071318  {
    13081319    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     
    17751786    }
    17761787    pcSlice->checkCrossLayerBlaFlag( );
    1777 #if !H_MV_HLS7_GEN
     1788#if !H_MV_HLS7_GEN && !H_MV_HLS_FIX
    17781789    if ( pcSlice->getPPS()->getNumExtraSliceHeaderBits() > esb )
    17791790    {
     
    22182229  {
    22192230    // Derive the value of PocMsbValRequiredFlag
     2231#if !H_MV_HLS_FIX
    22202232    pcSlice->setPocMsbValRequiredFlag( pcSlice->getCraPicFlag() || pcSlice->getBlaPicFlag()
    22212233                                          /* || related to vps_poc_lsb_aligned_flag */
    22222234                                          );
     2235#endif
    22232236
    22242237    // Determine value of SH extension length.
     
    22382251
    22392252
     2253#if H_MV_HLS_FIX
     2254    if( !pcSlice->getPocMsbValRequiredFlag() &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() )
     2255#else
    22402256    if( !pcSlice->getPocMsbValRequiredFlag() /* TODO &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2257#endif
    22412258    {
    22422259      shExtnLengthInBit++;    // For poc_msb_val_present_flag
     
    23012318    pcSlice->checkPocLsbVal();
    23022319
     2320#if H_MV_HLS_FIX
     2321    if( !pcSlice->getPocMsbValRequiredFlag() &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag()  )
     2322#else
    23032323    if( !pcSlice->getPocMsbValRequiredFlag() /* TODO &&  pcSlice->getVPS()->getVpsPocLsbAlignedFlag() */ )
     2324#endif
    23042325    {
    23052326      WRITE_FLAG( pcSlice->getPocMsbValPresentFlag( ) ? 1 : 0 , "poc_msb_val_present_flag" );
Note: See TracChangeset for help on using the changeset viewer.