Changeset 1179 in 3DVCSoftware for trunk/source/Lib/TLibEncoder/TEncGOP.cpp


Ignore:
Timestamp:
7 Apr 2015, 17:05:30 (9 years ago)
Author:
tech
Message:

Merged branch 13.1-dev0@1178.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r1133 r1179  
    44 * granted under this license. 
    55 *
    6 * Copyright (c) 2010-2014, ITU/ISO/IEC
     6* Copyright (c) 2010-2015, ITU/ISO/IEC
    77 * All rights reserved.
    88 *
     
    885885    Int numDirectRefLayers = vps    ->getNumDirectRefLayers( getLayerId() );
    886886#endif
     887#if HHI_INTER_COMP_PRED_K0052
     888    pcSlice->setIvPicLists( m_ivPicLists );         
     889
     890    Int gopNum = (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid;
     891    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( gopNum );     
     892#else
    887893    GOPEntry gopEntry      = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid );     
     894#endif
    888895   
    889896    Bool interLayerPredLayerIdcPresentFlag = false;
     
    922929    assert( pcSlice->getNumActiveRefLayerPics() == gopEntry.m_numActiveRefLayerPics );
    923930   
     931#if HHI_INTER_COMP_PRED_K0052
     932#if H_3D
     933    if ( m_pcEncTop->decProcAnnexI() )
     934    {   
     935      pcSlice->deriveInCmpPredAndCpAvailFlag();
     936      if ( pcSlice->getInCmpPredAvailFlag() )
     937      {     
     938        pcSlice->setInCompPredFlag( gopEntry.m_interCompPredFlag );
     939      }
     940      else
     941      {
     942        if (gopEntry.m_interCompPredFlag )
     943        {
     944          if ( gopNum == MAX_GOP)
     945          {
     946            printf( "\nError: FrameI_l%d cannot enable inter-component prediction.\n", pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) );
     947          }
     948          else
     949          {
     950            printf( "\nError: Frame%d_l%d cannot enable inter-component prediction.\n", gopNum, pcSlice->getVPS()->getLayerIdInVps( getLayerId() ) );
     951          }
     952         
     953          exit(EXIT_FAILURE);
     954        }
     955      }
     956      pcSlice->init3dToolParameters();
     957      pcSlice->checkInCompPredRefLayers();
     958    }
     959   
     960
     961    // This needs to be done after initilizaiton of 3D tool parameters.
     962    pcSlice->setMaxNumMergeCand      ( m_pcCfg->getMaxNumMergeCand()   + ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( )   ) ? 1 : 0 ));
     963#endif
     964#endif
     965
    924966    pcSlice->createInterLayerReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer0, m_refPicSetInterLayer1 );
    925967    pcSlice->setNumRefIdx(REF_PIC_LIST_0,min(gopEntry.m_numRefPicsActive,( pcSlice->getRPS()->getNumberOfPictures() + (Int) m_refPicSetInterLayer0.size() + (Int) m_refPicSetInterLayer1.size()) ) );
     
    9681010    }
    9691011#endif
     1012#if !HHI_INTER_COMP_PRED_K0052
    9701013#if H_3D
    9711014    pcSlice->setIvPicLists( m_ivPicLists );         
     
    9731016    assert( !m_pcEncTop->getIsDepth() || ( pcSlice->getTexturePic() != 0 ) );
    9741017#endif   
     1018#endif
    9751019#endif
    9761020#if H_3D_IC
     
    19501994              m_pcSAO->PCMLFDisableProcess(pcPic);
    19511995
     1996#if H_3D_DISABLE_CHROMA
     1997            if (pcSlice->getIsDepth())
     1998            {
     1999              sliceEnabled[SAO_Cb] = false;
     2000              sliceEnabled[SAO_Cr] = false;
     2001            }
     2002#endif
    19522003            //assign SAO slice header
    19532004            for(Int s=0; s< uiNumSlices; s++)
Note: See TracChangeset for help on using the changeset viewer.