Changeset 544 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibEncoder


Ignore:
Timestamp:
11 Jan 2014, 01:46:01 (12 years ago)
Author:
seregin
Message:

JCTVC-O0109. Patch was provided by Yongjin Cho <choyongjin@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/SHM-4.1-dev/source/Lib/TLibEncoder/TEncCavlc.cpp

    r542 r544  
    798798
    799799  WRITE_FLAG( vps->getAvcBaseLayerFlag(),              "avc_base_layer_flag" );
     800#if O0109_MOVE_VPS_VUI_FLAG
     801#if !VPS_VUI
     802  WRITE_FLAG( 0,                     "vps_vui_present_flag" );
     803  vps->setVpsVuiPresentFlag(false);
     804#else
     805  WRITE_FLAG( 1,                     "vps_vui_present_flag" );
     806  vps->setVpsVuiPresentFlag(true);
     807#endif
     808  if ( vps->getVpsVuiPresentFlag() )
     809  {
     810#if VPS_VUI_OFFSET
     811    WRITE_CODE( vps->getVpsVuiOffset(  ), 16,             "vps_vui_offset" );
     812#endif
     813    WRITE_FLAG( vps->getSplittingFlag(),                 "splitting_flag" );
     814  }
     815#else
    800816#if VPS_VUI_OFFSET
    801817  WRITE_CODE( vps->getVpsVuiOffset(  ), 16,             "vps_vui_offset" ); 
    802818#endif
    803819  WRITE_FLAG( vps->getSplittingFlag(),                 "splitting_flag" );
     820#endif // O0109_MOVE_VPS_VUI_FLAG
    804821
    805822  for(i = 0; i < MAX_VPS_NUM_SCALABILITY_TYPES; i++)
     
    847864  //   However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val.
    848865  {
     866#if O0109_VIEW_ID_LEN
     867    WRITE_CODE( vps->getViewIdLen( ), 4, "view_id_len" );
     868    assert ( vps->getNumViews() >= (1<<vps->getViewIdLen()) );
     869#else
    849870    WRITE_CODE( vps->getViewIdLenMinus1( ), 4, "view_id_len_minus1" );
    850   }
    851 
     871#endif
     872  }
     873
     874#if O0109_VIEW_ID_LEN
     875  if ( vps->getViewIdLen() > 0 )
     876  {
     877#endif
    852878  for(  i = 0; i < vps->getNumViews(); i++ )
    853879  {
     880#if O0109_VIEW_ID_LEN
     881    WRITE_CODE( vps->getViewIdVal( i ), vps->getViewIdLen( ), "view_id_val[i]" );
     882#else
    854883    WRITE_CODE( vps->getViewIdVal( i ), vps->getViewIdLenMinus1( ) + 1, "view_id_val[i]" );
    855   }
    856 #endif
     884#endif
     885  }
     886#if O0109_VIEW_ID_LEN
     887  }
     888#endif
     889#endif // VIEW_ID_RELATED_SIGNALING
     890
    857891#if VPS_EXTN_DIRECT_REF_LAYERS
    858892  for( Int layerCtr = 1; layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
     
    937971  if( numOutputLayerSets > 1 )
    938972  {
     973#if O0109_DEFAULT_ONE_OUT_LAYER_IDC
     974    WRITE_CODE( vps->getDefaultOneTargetOutputLayerIdc(), 2, "default_one_target_output_layer_idc" );   
     975#else
    939976    WRITE_FLAG( vps->getDefaultOneTargetOutputLayerFlag(), "default_one_target_output_layer_flag" );   
     977#endif
    940978  }
    941979
     
    10781116#endif
    10791117#endif
     1118
     1119#if !O0109_O0199_FLAGS_TO_VUI
    10801120#if M0040_ADAPTIVE_RESOLUTION_CHANGE
    10811121  WRITE_FLAG(vps->getSingleLayerForNonIrapFlag(), "single_layer_for_non_irap_flag" );
     
    10841124  WRITE_FLAG(vps->getHigherLayerIrapSkipFlag(), "higher_layer_irap_skip_flag" );
    10851125#endif
    1086 
     1126#endif
     1127
     1128#if !O0109_MOVE_VPS_VUI_FLAG
    10871129#if !VPS_VUI
    10881130  WRITE_FLAG( 0,                     "vps_vui_present_flag" );
     
    11031145  }
    11041146#endif
     1147#else
     1148  if(vps->getVpsVuiPresentFlag())   // Should be conditioned on the value of vps_vui_present_flag
     1149  {
     1150    while ( m_pcBitIf->getNumberOfWrittenBits() % 8 != 0 )
     1151    {
     1152      WRITE_FLAG(1,                  "vps_vui_alignment_bit_equal_to_one");
     1153    }
     1154#if VPS_VUI_OFFSET
     1155    Int vpsVuiOffsetValeInBits = this->m_pcBitIf->getNumberOfWrittenBits() - m_vpsVuiCounter + 16; // 2 bytes for NUH
     1156    assert( vpsVuiOffsetValeInBits % 8 == 0 );
     1157    vps->setVpsVuiOffset( vpsVuiOffsetValeInBits >> 3 );
     1158#endif
     1159    codeVPSVUI(vps); 
     1160  }
     1161#endif // 0109_MOVE_VPS_FLAG
    11051162}
    11061163#endif
     
    12361293    }
    12371294  }
     1295#endif
     1296
     1297#if O0109_O0199_FLAGS_TO_VUI
     1298#if M0040_ADAPTIVE_RESOLUTION_CHANGE
     1299  WRITE_FLAG(vps->getSingleLayerForNonIrapFlag(), "single_layer_for_non_irap_flag" );
     1300#endif
     1301#if HIGHER_LAYER_IRAP_SKIP_FLAG
     1302  WRITE_FLAG(vps->getHigherLayerIrapSkipFlag(), "higher_layer_irap_skip_flag" );
     1303#endif
    12381304#endif
    12391305#if N0160_VUI_EXT_ILP_REF
Note: See TracChangeset for help on using the changeset viewer.