Ignore:
Timestamp:
2 Jul 2014, 18:11:25 (10 years ago)
Author:
tech
Message:

Update to HM-14.0

Integration of:

#define H_MV_HLS_8_SYN_Q0041_03 1 #3 Syntax only (HS /Q0041/hybrid scalability) The proposed text was endorsed, with non-editorial open issues considered as follows …: #define H_MV_HLS_7_OTHER_P0187_1 0 (OTHER/P0187/NoOutputOfPriorPicsFlag) #1 Inference of NoOutputOfPriorPicsFlag and proposes to take into account colour format and bit depth for the inference in addition to spatial resolution
#define H_MV_HLS_8_SYN_39_19 1
#39 Syntax only + (PS/Q0165,Q0078/presence of num_add_output_layer_sets) proposal 2. change condition for presence of num_add_output_layer_sets to avoid sending it when there is only one layer set.
#define H_MV_HLS_8_HRD_Q0101_04 1 #4 (HRD /Q0101/Bitstream part buffer) On Bitstream Partition Buffer. Decision (BF/Cleanup): Adopt (sub-proposals 1–11, refined as described).
#define H_MV_HLS_8_PPS_NODOC_NN 1
#NN (PPS /NODOC/reserved flag): Add a flag in PPS for SHVC color gamut scalability
#define H_MV_HLS_8_MIS_Q0177_47 1 #47 (MISC /Q0177/EOS NAL) proposal 2: clarification of description of end of sequence NAL unit
#define H_MV_HLS_8_HRD_Q0182_05 1
#5 (HRD /Q0182/Bitstream part buffer) Decision (BF/Cleanup/Ed): Adopted (such that we use the main proposal for sub-proposal 1, and alternative 1 for sub-proposal 2). + #define H_MV_HLS_8_HRD_Q0182_06 0 #6 (HRD /Q0182/hrd_parameters) Sub-proposal 2 Alternative 1: Clarify that the VPS hrd_parameters( ) syntax structure that applies to the layer set which is associated with the bitstream partition initial arrival time SEI message is used to determine the lengths of the nal_initial_arrival_delay[ i ] and vcl_initial_arrival_delay[ i ] syntax elements. Decision (BF/Cleanup/Ed): Adopted alternative 1 for sub-proposal 2
#define H_MV_HLS_8_SPS_NODOC_48 1
#48 (SPS /NODOC/PPS extension cleanups) Alignment with RExt
#define H_MV_HLS_8_DBP_NODOC_42 1 #42 (DBP /NODOC/sharing) Remove sub-DPB sharing and processes that mark inter-layer reference pictures as "unused for reference"
#define H_MV_HLS_8_RPS_Q0100_36 1
#36 (RPS /Q0100/constraint to semantics) v3, add constraint to RPS semantics
#define H_MV_HLS_8_POC_Q0142_32 1 #32 (POC /Q0142/poc_lsb_not_present_flag) v2: Add semantic constraints to poc_lsb_not_present_flag.
#define H_MV_HLS_8_HRD_Q0102_08 1
#8 (HRD /Q0102/sps_max_dec_pic_buffering_minus1) Sub-proposal 2: A semantics bug fix is proposed for sps_max_dec_pic_buffering_minus1 as a bug-fix. In discussion, the first option was preferred. Decision (BF/Cleanup/Ed.): Adopt.
#define H_MV_HLS_8_MIS_Q0102_30 1 #30 (MISC /Q0102/loop index) proposal 3, change the max loop index for signaling bit rate and pic rate info to MaxSubLayersInLayerSetMinus1
#define H_MV_HLS_8_GEN_Q0108_13 1
#13 (GEN /Q0108/STSA TemporalId) Agreed to remove restriction from proposal 2, to allow STSA pics of non-base layers to have TemporalId equal to 0.
#define H_MV_HLS_8_PMS_Q0195_21 1 #21 (PS /Q0195/constraint update_ref_format_flag) proposal 2: add a semantic constraint on the value of update_ref_format_flag
#define H_MV_HLS_8_PMS_Q0195_20 1
#20 (PS /Q0195/syntax table rep format) proposal 1: restructure syntax table for sending of rep_format_idx_present_flag and vps_num_ref_formats_minus1
#define H_MV_HLS_8_MIS_Q0177_22 1 #22 (MISC /Q0177/inference sps_temporal_id_nesting_flag) proposal 1: modify inference rule for sps_temporal_id_nesting_flag when it is not present
#define H_MV_HLS_8_PMS_Q0165_18 1
#18 (PS /Q0165/disallow an empty layer set) proposal 1.a), add a constraint to disallow an empty layer set
#define H_MV_HLS_8_RPS_Q0060_17 1 #17 (RPS /Q0060/condition refLayerPicIdc) Proposal 2: Add a condition to the derivation of refLayerPicIdc of (TemporalId == 0)
#define H_MV_HLS_8_POC_Q0146_15 1
#15 (POC /Q0146/inference of poc_msb_val_present_flag) Proposal 1.1: Change inference rule in semantics of poc_msb_val_present_flag

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-11.0-dev0/source/Lib/TLibEncoder/TEncSlice.cpp

    r950 r962  
    221221  Int depth;
    222222  {
     223#if FIX_FIELD_DEPTH   
     224    Int poc = rpcSlice->getPOC();
     225    if(isField)
     226    {
     227      poc = (poc/2)%(m_pcCfg->getGOPSize()/2);
     228    }
     229    else
     230    {
     231      poc = poc%m_pcCfg->getGOPSize();   
     232    }
     233#else
    223234    Int poc = rpcSlice->getPOC()%m_pcCfg->getGOPSize();
     235#endif
    224236    if ( poc == 0 )
    225237    {
     
    244256      }
    245257    }
     258#if FIX_FIELD_DEPTH 
     259#if HARMONIZE_GOP_FIRST_FIELD_COUPLE
     260    if(poc != 0)
     261    {
     262#endif
     263    if(isField && rpcSlice->getPOC()%2 == 1)
     264    {
     265      depth ++;
     266    }
     267#if HARMONIZE_GOP_FIRST_FIELD_COUPLE
     268  }
     269#endif
     270#endif
    246271  }
    247272 
     
    266291 
    267292  eSliceType=B_SLICE;
     293#if EFFICIENT_FIELD_IRAP
     294  if(!(isField && pocLast == 1))
     295  {
     296#endif // EFFICIENT_FIELD_IRAP
     297#if ALLOW_RECOVERY_POINT_AS_RAP
     298  if(m_pcCfg->getDecodingRefreshType() == 3)
     299  {
     300    eSliceType = (pocLast == 0 || pocCurr % m_pcCfg->getIntraPeriod() == 0             || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     301  }
     302  else
     303  {
     304    eSliceType = (pocLast == 0 || (pocCurr - isField) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     305  }
     306#else
    268307  eSliceType = (pocLast == 0 || (pocCurr - isField) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     308#endif
     309#if EFFICIENT_FIELD_IRAP
     310  }
     311#endif
     312#endif
    269313 
    270314  rpcSlice->setSliceType    ( eSliceType );
    271 #endif
    272315
    273316  // ------------------------------------------------------------------------------------------------------------------
     
    450493  }
    451494#else
    452 eSliceType = (pocLast == 0 || (pocCurr - isField) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     495#if EFFICIENT_FIELD_IRAP
     496  if(!(isField && pocLast == 1))
     497  {
     498#endif // EFFICIENT_FIELD_IRAP
     499#if ALLOW_RECOVERY_POINT_AS_RAP
     500  if(m_pcCfg->getDecodingRefreshType() == 3)
     501  {
     502    eSliceType = (pocLast == 0 || (pocCurr)           % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     503
     504  }
     505  else
     506  {
     507  eSliceType = (pocLast == 0 || (pocCurr - isField) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     508  }
     509#else
     510  eSliceType = (pocLast == 0 || (pocCurr - isField) % m_pcCfg->getIntraPeriod() == 0 || m_pcGOPEncoder->getGOPSize() == 0) ? I_SLICE : eSliceType;
     511#endif
     512#if EFFICIENT_FIELD_IRAP
     513  }
     514#endif // EFFICIENT_FIELD_IRAP
    453515#endif
    454516
     
    566628  // store lambda
    567629  slice->setSliceQp( sliceQP );
     630#if ADAPTIVE_QP_SELECTION
    568631  slice->setSliceQpBase ( sliceQP );
     632#endif
    569633  m_pcRdCost ->setLambda( lambda );
    570634  // for RDO
     
    11051169
    11061170        m_pcRateCtrl->setRCQP( estQP );
     1171#if ADAPTIVE_QP_SELECTION
    11071172        pcCU->getSlice()->setSliceQpBase( estQP );
     1173#endif
    11081174      }
    11091175
Note: See TracChangeset for help on using the changeset viewer.