Changeset 1084 in 3DVCSoftware for trunk/source/Lib/TLibCommon
- Timestamp:
- 24 Oct 2014, 11:44:58 (10 years ago)
- Location:
- trunk/source/Lib/TLibCommon
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/CommonDef.h
r1067 r1084 61 61 #if H_MV 62 62 #define NV_VERSION "12.1" ///< Current software version 63 #define HM_VERSION "1 4.0" ///<63 #define HM_VERSION "15.0" ///< 64 64 #else 65 65 #define NV_VERSION "14.0" ///< Current software version -
trunk/source/Lib/TLibCommon/ContextTables.h
r1039 r1084 51 51 #define NUM_SPLIT_FLAG_CTX 3 ///< number of context models for split flag 52 52 #define NUM_SKIP_FLAG_CTX 3 ///< number of context models for skip flag 53 #if MTK_SINGLE_DEPTH_MODE_I009553 #if H_3D_SINGLE_DEPTH 54 54 #define NUM_SINGLEDEPTH_FLAG_CTX 1 55 55 #define NUM_SINGLE_DEPTH_VALUE_DATA_CTX 1 … … 153 153 { CNU, CNU, CNU, }, 154 154 }; 155 #if MTK_SINGLE_DEPTH_MODE_I0095155 #if H_3D_SINGLE_DEPTH 156 156 static const UChar 157 157 INIT_SINGLEDEPTH_FLAG[3][NUM_SINGLEDEPTH_FLAG_CTX] = … … 450 450 static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] = 451 451 { 452 #if SEC_DBBP_EXPLICIT_SIG_I0077 453 { CNU }, 454 { CNU }, 455 { CNU }, 456 #else 457 { 161 }, 458 { 161 }, 459 { 161 }, 460 #endif 461 }; 462 #endif 463 464 #endif 452 { CNU }, 453 { CNU }, 454 { CNU }, 455 }; 456 #endif 457 458 #endif -
trunk/source/Lib/TLibCommon/SEI.h
r964 r1084 161 161 UInt m_bpSeqParameterSetId; 162 162 Bool m_rapCpbParamsPresentFlag; 163 Boolm_cpbDelayOffset;164 Boolm_dpbDelayOffset;163 UInt m_cpbDelayOffset; 164 UInt m_dpbDelayOffset; 165 165 UInt m_initialCpbRemovalDelay [MAX_CPB_CNT][2]; 166 166 UInt m_initialCpbRemovalDelayOffset [MAX_CPB_CNT][2]; -
trunk/source/Lib/TLibCommon/TComDataCU.cpp
r1066 r1084 60 60 61 61 m_skipFlag = NULL; 62 #if MTK_SINGLE_DEPTH_MODE_I009562 #if H_3D_SINGLE_DEPTH 63 63 m_singleDepthFlag = NULL; 64 64 m_apSingleDepthValue = NULL; … … 185 185 186 186 m_skipFlag = new Bool[ uiNumPartition ]; 187 #if MTK_SINGLE_DEPTH_MODE_I0095187 #if H_3D_SINGLE_DEPTH 188 188 m_singleDepthFlag = new Bool[ uiNumPartition ]; 189 189 m_apSingleDepthValue = (Pel*)xMalloc(Pel, uiNumPartition); … … 335 335 336 336 if ( m_skipFlag ) { delete[] m_skipFlag; m_skipFlag = NULL; } 337 #if MTK_SINGLE_DEPTH_MODE_I0095337 #if H_3D_SINGLE_DEPTH 338 338 if ( m_singleDepthFlag ) { delete[] m_singleDepthFlag; m_singleDepthFlag = NULL; } 339 339 if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue); m_apSingleDepthValue = NULL; } … … 503 503 TComDataCU * pcFrom = pcPic->getCU(getAddr()); 504 504 m_skipFlag[ui] = pcFrom->getSkipFlag(ui); 505 #if MTK_SINGLE_DEPTH_MODE_I0095505 #if H_3D_SINGLE_DEPTH 506 506 m_singleDepthFlag[ui] = pcFrom->getSingleDepthFlag(ui); 507 507 m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui); … … 563 563 { 564 564 memset( m_skipFlag + firstElement, false, numElements * sizeof( *m_skipFlag ) ); 565 #if MTK_SINGLE_DEPTH_MODE_I0095565 #if H_3D_SINGLE_DEPTH 566 566 memset( m_singleDepthFlag + firstElement, false, numElements * sizeof( *m_singleDepthFlag ) ); 567 567 memset( m_apSingleDepthValue + firstElement, 0, numElements * sizeof( *m_apSingleDepthValue ) ); … … 754 754 m_puhTransformSkip[2][ui] = 0; 755 755 m_skipFlag[ui] = false; 756 #if MTK_SINGLE_DEPTH_MODE_I0095756 #if H_3D_SINGLE_DEPTH 757 757 m_singleDepthFlag[ui] = false; 758 758 m_apSingleDepthValue[ui] = 0; … … 933 933 { 934 934 m_skipFlag[ui] = false; 935 #if MTK_SINGLE_DEPTH_MODE_I0095935 #if H_3D_SINGLE_DEPTH 936 936 m_singleDepthFlag[ui] = false; 937 937 m_apSingleDepthValue[ui]= 0; … … 958 958 m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V); 959 959 m_skipFlag[ui] = pcCU->getSkipFlag(uiPartOffset+ui); 960 #if MTK_SINGLE_DEPTH_MODE_I0095960 #if H_3D_SINGLE_DEPTH 961 961 m_singleDepthFlag[ui] = pcCU->getSingleDepthFlag(uiPartOffset+ui); 962 962 m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui); … … 1111 1111 1112 1112 m_skipFlag=pcCU->getSkipFlag() + uiPart; 1113 #if MTK_SINGLE_DEPTH_MODE_I00951113 #if H_3D_SINGLE_DEPTH 1114 1114 m_singleDepthFlag = pcCU->getSingleDepthFlag() + uiPart; 1115 1115 m_apSingleDepthValue = pcCU->getSingleDepthValue() + uiPart; … … 1252 1252 1253 1253 m_skipFlag = pcCU->getSkipFlag () + uiAbsPartIdx; 1254 #if MTK_SINGLE_DEPTH_MODE_I00951254 #if H_3D_SINGLE_DEPTH 1255 1255 m_singleDepthFlag = pcCU->getSingleDepthFlag () + uiAbsPartIdx; 1256 1256 m_apSingleDepthValue = pcCU->getSingleDepthValue () + uiAbsPartIdx; … … 1331 1331 Int sizeInChar = sizeof( Char ) * uiNumPartition; 1332 1332 memcpy( m_skipFlag + uiOffset, pcCU->getSkipFlag(), sizeof( *m_skipFlag ) * uiNumPartition ); 1333 #if MTK_SINGLE_DEPTH_MODE_I00951333 #if H_3D_SINGLE_DEPTH 1334 1334 memcpy( m_singleDepthFlag + uiOffset, pcCU->getSingleDepthFlag(), sizeof( *m_singleDepthFlag ) * uiNumPartition ); 1335 1335 memcpy( m_apSingleDepthValue + uiOffset, pcCU->getSingleDepthValue(), sizeof( *m_apSingleDepthValue ) * uiNumPartition); … … 1455 1455 1456 1456 memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition ); 1457 #if MTK_SINGLE_DEPTH_MODE_I00951457 #if H_3D_SINGLE_DEPTH 1458 1458 memcpy( rpcCU->getSingleDepthFlag() + m_uiAbsIdxInLCU, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * m_uiNumPartition ); 1459 1459 memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition); … … 1574 1574 Int sizeInChar = sizeof( Char ) * uiQNumPart; 1575 1575 memcpy( rpcCU->getSkipFlag() + uiPartOffset, m_skipFlag, sizeof( *m_skipFlag ) * uiQNumPart ); 1576 #if MTK_SINGLE_DEPTH_MODE_I00951576 #if H_3D_SINGLE_DEPTH 1577 1577 memcpy( rpcCU->getSingleDepthFlag() + uiPartOffset, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * uiQNumPart ); 1578 1578 memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart); … … 2497 2497 memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) ); 2498 2498 } 2499 #if MTK_SINGLE_DEPTH_MODE_I00952499 #if H_3D_SINGLE_DEPTH 2500 2500 Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth ) 2501 2501 { … … 2677 2677 } 2678 2678 2679 #if HS_DMM_SIGNALLING_I01202680 2679 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) ) 2681 #else2682 if( isDimMode( getLumaIntraDir( uiAbsPartIdx ) ) && !isDimDeltaDC( getLumaIntraDir( uiAbsPartIdx ) ) )2683 #endif2684 2680 { 2685 2681 return true; … … 2694 2690 // check prediction mode 2695 2691 UInt uiLumaPredMode = getLumaIntraDir( uiAbsPartIdx ); 2696 #if HS_DMM_SIGNALLING_I01202697 2692 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX ) ) 2698 #else2699 if( uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) )2700 #endif2701 2693 return true; 2702 2694 … … 3373 3365 for(Int iLoop = 0; iLoop < 2; iLoop ++ ) 3374 3366 { 3375 #if !SEC_SIMP_SHIFTED_DV_I00863376 // IvDcShift (Derived from spatial Iv neighboring blocks)3377 if( iLoop == 1 )3378 {3379 Int iFirDispCand = -1;3380 TComMvField mvIvDcShift[2];3381 UChar dirIvDcShift;3382 3383 if (xGetPosFirstAvailDmvCand(MRG_IVSHIFT, iFirDispCand))3384 {3385 TComMv cMv;3386 cMv = m_mergCands[iFirDispCand].m_cMvField[0].getMv();3387 cMv.setHor(cMv.getHor()+4);3388 if(m_pcSlice->getVPS()->getViewSynthesisPredFlag(m_pcSlice->getLayerIdInVps()))3389 {3390 cMv.setVer(0);3391 }3392 #if !(NTT_BUG_FIX_TK54)3393 clipMv( cMv );3394 #endif3395 3396 dirIvDcShift = m_mergCands[iFirDispCand].m_uDir;3397 mvIvDcShift[0].setMvField(cMv, m_mergCands[iFirDispCand].m_cMvField[0].getRefIdx() );3398 mvIvDcShift[1].setMvField(m_mergCands[iFirDispCand].m_cMvField[1].getMv(), m_mergCands[iFirDispCand].m_cMvField[1].getRefIdx() );3399 m_mergCands[MRG_IVSHIFT].setCand(mvIvDcShift, dirIvDcShift, false, false);3400 3401 if( mrgCandIdx == iCount )3402 {3403 return true;3404 }3405 iCount++;3406 break;3407 }3408 }3409 #endif3410 3411 3367 /// iLoop = 0 --> IvMCShift 3412 3368 /// iLoop = 1 --> IvDCShift (Derived from IvDC) … … 3455 3411 } 3456 3412 3457 #if !SEC_SIMP_SHIFTED_DV_I00863458 inline Bool TComDataCU::xGetPosFirstAvailDmvCand(Int iCount, Int& posFirstAvailDmvCand )3459 {3460 for ( Int currListPos = 0; currListPos < iCount; currListPos++ )3461 {3462 if ( !m_mergCands[currListPos].m_bAvailable || ( currListPos == MRG_IVMC ) || ( currListPos == MRG_IVDC ) || ( m_mergCands[currListPos].m_iVspFlag != 0 ))3463 {3464 continue;3465 }3466 else if((m_mergCands[currListPos].m_bAvailable) && (m_mergCands[currListPos].m_cMvField[0].getRefIdx() != -1 ) && (getSlice()->getViewIndex() != getSlice()->getRefPic(RefPicList(0), m_mergCands[currListPos].m_cMvField[0].getRefIdx())->getViewIndex()))3467 {3468 posFirstAvailDmvCand = currListPos;3469 return true;3470 }3471 }3472 return false;3473 }3474 #endif3475 3476 3413 #endif 3477 3414 … … 3921 3858 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3922 3859 #endif 3923 #if H_3D_VSP && !FIX_TICKET_793924 , InheritedVSPDisInfo* inheritedVSPDisInfo3925 #endif3926 3860 #if H_3D_SPIVMP 3927 3861 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP … … 3951 3885 ////////////////////////////////// 3952 3886 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3953 #if !FIX_TICKET_793954 for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++)3955 {3956 inheritedVSPDisInfo[i].m_acDvInfo = cDisInfo; // To prevent run-time error, this code must be executed always for merging process.3957 }3958 #endif3959 3887 m_cDefaultDisInfo = cDisInfo; 3960 3888 … … 4177 4105 TComPic * pcTexPic = m_pcSlice->getTexturePic(); 4178 4106 #if H_3D_FCO 4179 #if LGE_FCO_I01164107 #if H_3D_FCO 4180 4108 if (pcTexPic && pcTexPic->getReconMark()) 4181 4109 #else … … 4251 4179 TComMv cMv = cDefaultMvField.getMv() + cMvRounding; 4252 4180 cMv >>= 2; 4253 #if !FIX_TICKET_684254 clipMv( cMv );4255 #endif4256 4181 cMvFieldSaved[eCurrRefPicList].setMvField(cMv, iRefPicList) ; 4257 4182 break; … … 5325 5250 #endif 5326 5251 5327 #if !FIX_TICKET_765328 #if H_3D_VSP5329 inline Void TComDataCU::xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo* inheritedVSPDisInfo)5330 {5331 inheritedVSPDisInfo[iCount].m_acDvInfo.m_acNBDV = pcCURef->getDvInfo(uiAbsPartIdx).m_acNBDV;5332 inheritedVSPDisInfo[iCount].m_acDvInfo.m_aVIdxCan = pcCURef->getDvInfo(uiAbsPartIdx).m_aVIdxCan;5333 }5334 #endif5335 #endif5336 5252 /** Check whether the current PU and a spatial neighboring PU are in a same ME region. 5337 5253 * \param xN, xN location of the upper-left corner pixel of a neighboring PU … … 5976 5892 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex(); 5977 5893 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5978 #if SEC_HLS_CLEANUP_I0100 5894 5979 5895 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 5980 #else5981 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() )5982 #endif5983 5896 { 5984 5897 rcMv = cColMv.scaleMv( iScale ); … … 6164 6077 TComMv cMv; 6165 6078 #if MTK_I0093 6166 #if H_3D_FIX_64BIT_SHIFT6167 6079 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; 6168 #else6169 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ];6170 #endif6171 6080 #else 6172 6081 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ 128 ]; … … 6181 6090 #endif 6182 6091 6183 #if MTK_SINGLE_DEPTH_MODE_I00956092 #if H_3D_SINGLE_DEPTH 6184 6093 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index) 6185 6094 { … … 6795 6704 if( getSlice()->getIsDepth() ) 6796 6705 { 6797 #if MTK_I0099_VPS_EX26798 6706 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6799 #else6800 iSubPUSize = 1 << getSlice()->getVPS()->getSubPUMPILog2Size();6801 #endif6802 6707 } 6803 6708 -
trunk/source/Lib/TLibCommon/TComDataCU.h
r1039 r1084 110 110 // ------------------------------------------------------------------------------------------------------------------- 111 111 Bool* m_skipFlag; ///< array of skip flags 112 #if MTK_SINGLE_DEPTH_MODE_I0095112 #if H_3D_SINGLE_DEPTH 113 113 Bool* m_singleDepthFlag; ///< array of single depth flags 114 114 Pel* m_apSingleDepthValue; … … 250 250 #if H_3D_IV_MERGE 251 251 Bool xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int* ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx ); 252 #if! SEC_SIMP_SHIFTED_DV_I0086253 Bool xGetPosFirstAvailDmvCand( Int iCount, Int& iFirDispCand );254 #endif255 252 #endif 256 253 … … 353 350 Void setSkipFlag ( UInt idx, Bool skip) { m_skipFlag[idx] = skip; } 354 351 Void setSkipFlagSubParts ( Bool skip, UInt absPartIdx, UInt depth ); 355 #if MTK_SINGLE_DEPTH_MODE_I0095352 #if H_3D_SINGLE_DEPTH 356 353 Bool* getSingleDepthFlag () { return m_singleDepthFlag; } 357 354 Bool getSingleDepthFlag (UInt idx) { return m_singleDepthFlag[idx]; } … … 505 502 Bool getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm ); 506 503 #endif 507 #if MTK_SINGLE_DEPTH_MODE_I0095504 #if H_3D_SINGLE_DEPTH 508 505 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 509 506 #endif … … 670 667 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 671 668 #endif 672 #if H_3D_VSP && !FIX_TICKET_79673 , InheritedVSPDisInfo* inheritedVSPDisInfo674 #endif675 669 #if H_3D_SPIVMP 676 670 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP … … 680 674 681 675 #if H_3D_VSP 682 #if !FIX_TICKET_76683 inline Void xInheritVSPDisInfo(TComDataCU* pcCURef, UInt uiAbsPartIdx, Int iCount, InheritedVSPDisInfo* inheritedVSPDisInfo);684 #endif685 686 676 #if H_3D_SPIVMP 687 677 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } … … 771 761 #endif 772 762 773 #if SHARP_DMM1_I0110763 #if H_3D_DIM 774 764 Bool isDMM1UpscaleMode ( UInt uiWidth ){ Bool bDMM1UpsampleModeFlag = true; UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ bDMM1UpsampleModeFlag = false; } return bDMM1UpsampleModeFlag; }; 775 765 UInt getDMM1BasePatternWidth ( UInt uiWidth ){ UInt uiBaseWidth = 16; if( uiBaseWidth >= uiWidth ){ uiBaseWidth = uiWidth; } return uiBaseWidth; } -
trunk/source/Lib/TLibCommon/TComMotionInfo.h
r1039 r1084 79 79 } IDVInfo; 80 80 #endif 81 #if H_3D_VSP && !FIX_TICKET_79 82 typedef struct _InheritedVSPDisCand 83 { 84 DisInfo m_acDvInfo; 85 } InheritedVSPDisInfo; 86 #endif 81 87 82 // ==================================================================================================================== 88 83 // Class definition -
trunk/source/Lib/TLibCommon/TComPicSym.cpp
r872 r1084 38 38 #include "TComPicSym.h" 39 39 #include "TComSampleAdaptiveOffset.h" 40 #include "TComSlice.h" 40 41 41 42 //! \ingroup TLibCommon … … 63 64 ,m_iNumColumnsMinus1 (0) 64 65 ,m_iNumRowsMinus1(0) 65 ,m_apcTComTile(NULL)66 66 ,m_puiCUOrderMap(0) 67 67 ,m_puiTileIdxMap(NULL) … … 101 101 delete [] m_apcTComSlice; 102 102 } 103 m_apcTComSlice = new TComSlice*[m_uiNumCUsInFrame *m_uiNumPartitions];103 m_apcTComSlice = new TComSlice*[m_uiNumCUsInFrame]; 104 104 m_apcTComSlice[0] = new TComSlice; 105 105 m_uiNumAllocatedSlice = 1; … … 148 148 m_apcTComDataCU = NULL; 149 149 150 for(Int i = 0; i < (m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ )151 {152 delete m_apcTComTile[i];153 }154 delete [] m_apcTComTile;155 156 m_apcTComTile = NULL;157 158 150 delete [] m_puiCUOrderMap; 159 151 m_puiCUOrderMap = NULL; … … 173 165 Void TComPicSym::allocateNewSlice() 174 166 { 167 assert ((m_uiNumAllocatedSlice + 1) <= m_uiNumCUsInFrame); 175 168 m_apcTComSlice[m_uiNumAllocatedSlice ++] = new TComSlice; 176 169 if (m_uiNumAllocatedSlice>=2) … … 201 194 } 202 195 203 Void TComPicSym::xCreateTComTileArray() 204 { 205 m_apcTComTile = new TComTile*[(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1)]; 206 for( UInt i=0; i<(m_iNumColumnsMinus1+1)*(m_iNumRowsMinus1+1); i++ ) 207 { 208 m_apcTComTile[i] = new TComTile; 209 } 210 } 211 212 Void TComPicSym::xInitTiles() 213 { 214 UInt uiTileIdx; 215 UInt uiColumnIdx = 0; 216 UInt uiRowIdx = 0; 217 UInt uiRightEdgePosInCU; 218 UInt uiBottomEdgePosInCU; 219 Int i, j; 196 Void TComPicSym::initTiles(TComPPS *pps) 197 { 198 //set NumColumnsMinus1 and NumRowsMinus1 199 setNumColumnsMinus1( pps->getNumTileColumnsMinus1() ); 200 setNumRowsMinus1( pps->getTileNumRowsMinus1() ); 201 202 const Int numCols = pps->getNumTileColumnsMinus1() + 1; 203 const Int numRows = pps->getTileNumRowsMinus1() + 1; 204 const Int numTiles = numRows * numCols; 205 206 // allocate memory for tile parameters 207 m_tileParameters.resize(numTiles); 208 209 if( pps->getTileUniformSpacingFlag() ) 210 { 211 //set width and height for each (uniform) tile 212 for(Int row=0; row < numRows; row++) 213 { 214 for(Int col=0; col < numCols; col++) 215 { 216 const Int tileIdx = row * numCols + col; 217 m_tileParameters[tileIdx].setTileWidth( (col+1)*getFrameWidthInCU()/numCols 218 - (col*getFrameWidthInCU())/numCols ); 219 m_tileParameters[tileIdx].setTileHeight( (row+1)*getFrameHeightInCU()/numRows 220 - (row*getFrameHeightInCU())/numRows ); 221 } 222 } 223 } 224 else 225 { 226 //set the width for each tile 227 for(Int row=0; row < numRows; row++) 228 { 229 Int cumulativeTileWidth = 0; 230 for(Int col=0; col < getNumColumnsMinus1(); col++) 231 { 232 m_tileParameters[row * numCols + col].setTileWidth( pps->getTileColumnWidth(col) ); 233 cumulativeTileWidth += pps->getTileColumnWidth(col); 234 } 235 m_tileParameters[row * numCols + getNumColumnsMinus1()].setTileWidth( getFrameWidthInCU()-cumulativeTileWidth ); 236 } 237 238 //set the height for each tile 239 for(Int col=0; col < numCols; col++) 240 { 241 Int cumulativeTileHeight = 0; 242 for(Int row=0; row < getNumRowsMinus1(); row++) 243 { 244 m_tileParameters[row * numCols + col].setTileHeight( pps->getTileRowHeight(row) ); 245 cumulativeTileHeight += pps->getTileRowHeight(row); 246 } 247 m_tileParameters[getNumRowsMinus1() * numCols + col].setTileHeight( getFrameHeightInCU()-cumulativeTileHeight ); 248 } 249 } 250 251 #if TILE_SIZE_CHECK 252 Int minWidth = 1; 253 Int minHeight = 1; 254 const Int profileIdc = pps->getSPS()->getPTL()->getGeneralPTL()->getProfileIdc(); 255 if ( profileIdc == Profile::MAIN || profileIdc == Profile::MAIN10) 256 { 257 if (pps->getTilesEnabledFlag()) 258 { 259 minHeight = 64 / g_uiMaxCUHeight; 260 minWidth = 256 / g_uiMaxCUWidth; 261 } 262 } 263 for(Int row=0; row < numRows; row++) 264 { 265 for(Int col=0; col < numCols; col++) 266 { 267 const Int tileIdx = row * numCols + col; 268 assert (m_tileParameters[tileIdx].getTileWidth() >= minWidth); 269 assert (m_tileParameters[tileIdx].getTileHeight() >= minHeight); 270 } 271 } 272 #endif 220 273 221 274 //initialize each tile of the current picture 222 for( uiRowIdx=0; uiRowIdx < m_iNumRowsMinus1+1; uiRowIdx++ )223 { 224 for( uiColumnIdx=0; uiColumnIdx < m_iNumColumnsMinus1+1; uiColumnIdx++ )225 { 226 uiTileIdx = uiRowIdx * (m_iNumColumnsMinus1+1) + uiColumnIdx;275 for( Int row=0; row < numRows; row++ ) 276 { 277 for( Int col=0; col < numCols; col++ ) 278 { 279 const Int tileIdx = row * numCols + col; 227 280 228 281 //initialize the RightEdgePosInCU for each tile 229 uiRightEdgePosInCU = 0;230 for( i=0; i <= uiColumnIdx; i++ )231 { 232 uiRightEdgePosInCU += this->getTComTile(uiRowIdx * (m_iNumColumnsMinus1+1) + i)->getTileWidth();233 } 234 this->getTComTile(uiTileIdx)->setRightEdgePosInCU(uiRightEdgePosInCU-1);282 Int rightEdgePosInCTU = 0; 283 for( Int i=0; i <= col; i++ ) 284 { 285 rightEdgePosInCTU += m_tileParameters[row * numCols + i].getTileWidth(); 286 } 287 m_tileParameters[tileIdx].setRightEdgePosInCU(rightEdgePosInCTU-1); 235 288 236 289 //initialize the BottomEdgePosInCU for each tile 237 uiBottomEdgePosInCU = 0;238 for( i=0; i <= uiRowIdx; i++ )239 { 240 uiBottomEdgePosInCU += this->getTComTile(i * (m_iNumColumnsMinus1+1) + uiColumnIdx)->getTileHeight();241 } 242 this->getTComTile(uiTileIdx)->setBottomEdgePosInCU(uiBottomEdgePosInCU-1);290 Int bottomEdgePosInCTU = 0; 291 for( Int i=0; i <= row; i++ ) 292 { 293 bottomEdgePosInCTU += m_tileParameters[i * numCols + col].getTileHeight(); 294 } 295 m_tileParameters[tileIdx].setBottomEdgePosInCU(bottomEdgePosInCTU-1); 243 296 244 297 //initialize the FirstCUAddr for each tile 245 this->getTComTile(uiTileIdx)->setFirstCUAddr( (this->getTComTile(uiTileIdx)->getBottomEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileHeight() +1)*m_uiWidthInCU + 246 this->getTComTile(uiTileIdx)->getRightEdgePosInCU() - this->getTComTile(uiTileIdx)->getTileWidth() + 1); 247 } 248 } 298 m_tileParameters[tileIdx].setFirstCUAddr( (m_tileParameters[tileIdx].getBottomEdgePosInCU() - m_tileParameters[tileIdx].getTileHeight() + 1) * getFrameWidthInCU() + 299 m_tileParameters[tileIdx].getRightEdgePosInCU() - m_tileParameters[tileIdx].getTileWidth() + 1); 300 } 301 } 302 303 Int columnIdx = 0; 304 Int rowIdx = 0; 249 305 250 306 //initialize the TileIdxMap 251 for( i=0; i<m_uiNumCUsInFrame; i++)252 { 253 for( j=0; j < m_iNumColumnsMinus1+1; j++)254 { 255 if(i % m_uiWidthInCU <= this->getTComTile(j)->getRightEdgePosInCU())256 { 257 uiColumnIdx = j;258 j = m_iNumColumnsMinus1+1;259 } 260 } 261 for( j=0; j < m_iNumRowsMinus1+1; j++)262 { 263 if(i /m_uiWidthInCU <= this->getTComTile(j*(m_iNumColumnsMinus1 + 1))->getBottomEdgePosInCU())264 { 265 uiRowIdx = j;266 j = m_iNumRowsMinus1 + 1;267 } 268 } 269 m_puiTileIdxMap[i] = uiRowIdx * (m_iNumColumnsMinus1 + 1) + uiColumnIdx;307 for( Int i=0; i<m_uiNumCUsInFrame; i++) 308 { 309 for( Int col=0; col < numCols; col++) 310 { 311 if(i % getFrameWidthInCU() <= m_tileParameters[col].getRightEdgePosInCU()) 312 { 313 columnIdx = col; 314 break; 315 } 316 } 317 for(Int row=0; row < numRows; row++) 318 { 319 if(i / getFrameWidthInCU() <= m_tileParameters[row*numCols].getBottomEdgePosInCU()) 320 { 321 rowIdx = row; 322 break; 323 } 324 } 325 m_puiTileIdxMap[i] = rowIdx * numCols + columnIdx; 270 326 } 271 327 … … 417 473 418 474 TComTile::TComTile() 475 : m_uiTileWidth (0) 476 , m_uiTileHeight (0) 477 , m_uiRightEdgePosInCU (0) 478 , m_uiBottomEdgePosInCU (0) 479 , m_uiFirstCUAddr (0) 480 419 481 { 420 482 } -
trunk/source/Lib/TLibCommon/TComPicSym.h
r872 r1084 45 45 #include "TComDataCU.h" 46 46 class TComSampleAdaptiveOffset; 47 class TComPPS; 47 48 48 49 //! \ingroup TLibCommon … … 102 103 Int m_iNumColumnsMinus1; 103 104 Int m_iNumRowsMinus1; 104 TComTile** m_apcTComTile;105 std::vector<TComTile> m_tileParameters; 105 106 UInt* m_puiCUOrderMap; //the map of LCU raster scan address relative to LCU encoding order 106 107 UInt* m_puiTileIdxMap; //the map of the tile index relative to LCU raster scan address … … 133 134 Int getNumRowsMinus1() { return m_iNumRowsMinus1; } 134 135 Int getNumTiles() { return (m_iNumRowsMinus1+1)*(m_iNumColumnsMinus1+1); } 135 TComTile* getTComTile ( UInt tileIdx ) { return *(m_apcTComTile + tileIdx); }136 TComTile* getTComTile ( UInt tileIdx ) { return &(m_tileParameters[tileIdx]); } 136 137 Void setCUOrderMap( Int encCUOrder, Int cuAddr ) { *(m_puiCUOrderMap + encCUOrder) = cuAddr; } 137 138 UInt getCUOrderMap( Int encCUOrder ) { return *(m_puiCUOrderMap + (encCUOrder>=m_uiNumCUsInFrame ? m_uiNumCUsInFrame : encCUOrder)); } … … 141 142 UInt getPicSCUEncOrder( UInt SCUAddr ); 142 143 UInt getPicSCUAddr( UInt SCUEncOrder ); 143 Void xCreateTComTileArray(); 144 Void xInitTiles(); 144 Void initTiles(TComPPS *pps); 145 145 UInt xCalculateNxtCUAddr( UInt uiCurrCUAddr ); 146 146 SAOBlkParam* getSAOBlkParam() { return m_saoBlkParams;} -
trunk/source/Lib/TLibCommon/TComPrediction.cpp
r1039 r1084 423 423 424 424 UInt dimType = getDimType ( uiIntraMode ); 425 #if !HS_DMM_SIGNALLING_I0120426 Bool dimDeltaDC = isDimDeltaDC( uiIntraMode );427 #endif428 425 Bool isDmmMode = (dimType < DMM_NUM_TYPE); 429 426 … … 440 437 case( DMM1_IDX ): 441 438 { 442 #if SHARP_DMM1_I0110443 439 dmmSegmentation = pcCU->isDMM1UpscaleMode((UInt)iWidth) ? 444 440 &(g_dmmWedgeLists[ g_aucConvertToBit[pcCU->getDMM1BasePatternWidth((UInt)iWidth)] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]) : 445 441 &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]); 446 #else447 dmmSegmentation = &(g_dmmWedgeLists[ g_aucConvertToBit[iWidth] ][ pcCU->getDmmWedgeTabIdx( dimType, uiAbsPartIdx ) ]);448 #endif449 442 } break; 450 443 case( DMM4_IDX ): … … 464 457 } 465 458 assert( dmmSegmentation ); 466 #if SHARP_DMM1_I0110467 459 if( dimType == DMM1_IDX && pcCU->isDMM1UpscaleMode((UInt)iWidth) ) 468 460 { … … 475 467 patternStride = dmmSegmentation->getStride (); 476 468 } 477 #else478 biSegPattern = dmmSegmentation->getPattern();479 patternStride = dmmSegmentation->getStride ();480 #endif481 469 } 482 470 #endif … … 495 483 Pel segDC1 = 0; 496 484 Pel segDC2 = 0; 497 #if HS_DMM_SIGNALLING_I0120498 485 if( !pcCU->getSDCFlag( uiAbsPartIdx ) ) 499 #else500 if( dimDeltaDC )501 #endif502 486 { 503 487 Pel deltaDC1 = pcCU->getDimDeltaDC( dimType, 0, uiAbsPartIdx ); … … 568 552 pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, i, iNumSPInOneLine, uiSPAddr[i]); 569 553 } 570 #if SHARP_ARP_CHROMA_I0104571 554 if( pcCU->getARPW( uiPartAddr ) != 0 ) 572 555 { 573 556 return; 574 557 } 575 #endif 558 576 559 // horizontal sub-PU merge 577 560 for (Int i=0; i<iNumSP; i++) … … 745 728 Int uiMinDepth = MAX_INT; 746 729 Int uiMaxDepth = 0; 747 #if SEC_DBBP_DMM4_THRESHOLD_I0076 730 748 731 iSumDepth = pDepthPels[ 0 ]; 749 732 iSumDepth += pDepthPels[ uiWidth - 1 ]; … … 760 743 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]); 761 744 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]); 762 #else 763 for (Int y=0; y<uiHeight; y++) 764 { 765 for (Int x=0; x<uiWidth; x++) 766 { 767 Int depthPel = pDepthPels[x]; 768 iSumDepth += depthPel; 769 770 if( depthPel > uiMaxDepth ) 771 { 772 uiMaxDepth = depthPel; 773 } 774 if( depthPel < uiMinDepth ) 775 { 776 uiMinDepth = depthPel; 777 } 778 } 779 780 // next row 781 pDepthPels += uiDepthStride; 782 } 783 #endif 745 784 746 785 747 // don't generate mask for blocks with small depth range (encoder decision) … … 790 752 791 753 AOF(uiWidth==uiHeight); 792 #if SEC_DBBP_DMM4_THRESHOLD_I0076793 754 Int iMean = iSumDepth >> 2; 794 #else795 Int iSizeInBits = g_aucConvertToBit[uiWidth]+2;796 Int iMean = iSumDepth >> iSizeInBits*2; // iMean /= (uiWidth*uiHeight);797 #endif798 755 799 756 // start again for segmentation … … 842 799 } 843 800 844 #if SHARP_DBBP_SIMPLE_FLTER_I0109845 801 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize ) 846 #else847 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr )848 #endif849 802 { 850 803 Pel* piSrc[2] = {pInYuv[0]->getLumaAddr(uiPartAddr), pInYuv[1]->getLumaAddr(uiPartAddr)}; … … 854 807 855 808 UInt uiMaskStride= MAX_CU_SIZE; 856 #if !SHARP_DBBP_SIMPLE_FLTER_I0109857 Pel filSrc = 0;858 #endif859 809 Pel* tmpTar = 0; 860 810 tmpTar = (Pel *)xMalloc(Pel, uiWidth*uiHeight); … … 880 830 } 881 831 882 #if SHARP_DBBP_SIMPLE_FLTER_I0109883 832 if (partSize == SIZE_Nx2N) 884 833 { … … 917 866 } 918 867 } 919 #else920 for (Int y=0; y<uiHeight; y++)921 {922 for (Int x=0; x<uiWidth; x++)923 {924 Bool t = (y==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y-1)*uiMaskStride+x];925 Bool l = (x==0)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x-1];926 Bool b = (y==uiHeight-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[(y+1)*uiMaskStride+x];927 Bool r = (x==uiWidth-1)?pMaskStart[y*uiMaskStride+x]:pMaskStart[y*uiMaskStride+x+1];928 Bool c =pMaskStart[y*uiMaskStride+x];929 930 Pel left, right, top, bottom;931 left = (x==0) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x-1];932 right = (x==uiWidth-1) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1];933 top = (y==0) ? tmpTar[y*uiWidth+x] : tmpTar[(y-1)*uiWidth+x];934 bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x];935 936 if(!((l&&r&&c) || (!l&&!r&&!c)))937 {938 filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 ));939 }940 else941 {942 filSrc = tmpTar[y*uiWidth+x];943 }944 945 if(!((t&&b&&c) || (!t&&!b&&!c)))946 {947 filSrc = Clip3( Pel( 0 ), Pel( 255 ), Pel(( top + (filSrc << 1) + bottom ) >> 2 ));948 }949 piDst[x] = filSrc;950 }951 piDst += uiDstStride;952 }953 #endif954 868 955 869 if ( tmpTar ) { xFree(tmpTar); tmpTar = NULL; } … … 989 903 } 990 904 991 #if SHARP_DBBP_SIMPLE_FLTER_I0109992 905 if (partSize == SIZE_Nx2N) 993 906 { … … 1056 969 } 1057 970 } 1058 #else 1059 for (Int y=0; y<uiHeightC; y++) 1060 { 1061 for (Int x=0; x<uiWidthC; x++) 1062 { 1063 Bool t = (y==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y-1)*2*uiMaskStride+x*2]; 1064 Bool l = (x==0)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x-1)*2]; 1065 Bool b = (y==uiHeightC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[(y+1)*2*uiMaskStride+x*2]; 1066 Bool r = (x==uiWidthC-1)?pMaskStart[y*2*uiMaskStride+x*2]:pMaskStart[y*2*uiMaskStride+(x+1)*2]; 1067 Bool c =pMaskStart[y*2*uiMaskStride+x*2]; 1068 1069 Pel leftU, rightU, topU, bottomU; 1070 leftU = (x==0) ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x-1]; 1071 rightU = (x==uiWidthC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[y*uiWidthC+x+1]; 1072 topU = (y==0) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y-1)*uiWidthC+x]; 1073 bottomU = (y==uiHeightC-1) ? tmpTarU[y*uiWidthC+x] : tmpTarU[(y+1)*uiWidthC+x]; 1074 1075 Pel leftV, rightV, topV, bottomV; 1076 leftV = (x==0) ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x-1]; 1077 rightV = (x==uiWidthC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[y*uiWidthC+x+1]; 1078 topV = (y==0) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y-1)*uiWidthC+x]; 1079 bottomV = (y==uiHeightC-1) ? tmpTarV[y*uiWidthC+x] : tmpTarV[(y+1)*uiWidthC+x]; 1080 1081 if(!((l&&r&&c) || (!l&&!r&&!c))) 1082 { 1083 filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 )); 1084 filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 )); 1085 } 1086 else 1087 { 1088 filSrcU = tmpTarU[y*uiWidthC+x]; 1089 filSrcV = tmpTarV[y*uiWidthC+x]; 1090 } 1091 1092 if(!((t&&b&&c) || (!t&&!b&&!c))) 1093 { 1094 filSrcU = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topU + (filSrcU << 1) + bottomU ) >> 2 )); 1095 filSrcV = Clip3( Pel( 0 ), Pel( 255 ), Pel(( topV + (filSrcV << 1) + bottomV ) >> 2 )); 1096 } 1097 1098 piDstU[x] = filSrcU; 1099 piDstV[x] = filSrcV; 1100 } 1101 piDstU += uiDstStrideC; 1102 piDstV += uiDstStrideC; 1103 } 1104 #endif 971 1105 972 if ( tmpTarU ) { xFree(tmpTarU); tmpTarU = NULL; } 1106 973 if ( tmpTarV ) { xFree(tmpTarV); tmpTarV = NULL; } … … 1475 1342 pcCU->clipMv(cMv); 1476 1343 TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(); 1477 #if QC_I0129_ARP_FIX1478 1344 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1479 1345 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1480 #else 1481 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true ); 1482 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi, true ); 1483 #endif 1346 1484 1347 if( dW > 0 ) 1485 1348 { … … 1489 1352 TComMv cMVwithDisparity = cMv + cDistparity.m_acNBDV; 1490 1353 pcCU->clipMv(cMVwithDisparity); 1491 #if SHARP_ARP_CHROMA_I01041492 1354 if (iWidth <= 8) 1493 1355 { 1494 1356 pYuvB0->clear(); pYuvB1->clear(); 1495 1357 } 1496 #endif1497 1358 1498 1359 assert ( cDistparity.bDV ); 1499 1360 1500 #if NTT_BUG_FIX_TK541501 1361 TComMv cNBDV = cDistparity.m_acNBDV; 1502 1362 pcCU->clipMv( cNBDV ); 1503 1363 1504 1364 pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec(); 1505 #if QC_I0129_ARP_FIX1506 1365 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1507 #if SHARP_ARP_CHROMA_I01041508 1366 if (iWidth > 8) 1509 #endif 1510 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1511 #else 1512 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1513 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1514 #endif 1515 #else 1516 pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec(); 1517 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1518 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cDistparity.m_acNBDV, iWidth, iHeight, pYuvB0, bi, true ); 1519 #endif 1367 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1520 1368 1521 1369 pcPicYuvRef = pcPicYuvBaseRef->getPicYuvRec(); 1522 #if QC_I0129_ARP_FIX1523 1370 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1524 #if SHARP_ARP_CHROMA_I0104 1371 1525 1372 if (iWidth > 8) 1526 #endif 1527 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1528 #else 1529 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true ); 1530 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, bi, true ); 1531 #endif 1373 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1374 1532 1375 pYuvB0->subtractARP( pYuvB0 , pYuvB1 , uiPartAddr , iWidth , iHeight ); 1533 1376 … … 1540 1383 } 1541 1384 1542 #if QC_I0051_ARP_SIMP1543 1385 Bool TComPrediction::xCheckBiInterviewARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc ) 1544 1386 { … … 1572 1414 Int iCurrRefPOC = pcPicYuvBaseTRef->getPOC(); 1573 1415 Int iCurrRef = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr); 1574 #if MTK_I0072_IVARP_SCALING_FIX 1416 1575 1417 if( iCurrRef >= 0 && iCurrPOC != iCurrRefPOC) 1576 #else1577 if( iCurrRef >= 0)1578 #endif1579 1418 { 1580 1419 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); … … 1608 1447 return false; 1609 1448 } 1610 #endif1611 1449 1612 1450 Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled ) … … 1643 1481 pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1644 1482 TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr ); 1645 #if QC_I0051_ARP_SIMP1646 1483 if( pcCU->getSlice()->isInterB() && !pcCU->getSlice()->getIsDepth() ) 1647 1484 { … … 1708 1545 1709 1546 if( !pColCU->isIntra( uiAbsPartAddr ) && !bTMVAvai ) 1710 #else1711 if(!pColCU->isIntra(uiAbsPartAddr))1712 #endif1713 1547 { 1714 1548 TComMvField puMVField; … … 1723 1557 Int iCurrRefPOC = pcPicYuvBaseTRef->getPOC(); 1724 1558 Int iCurrRef = pcCU->getSlice()->getFirstTRefIdx(eRefPicListCurr); 1725 #if MTK_I0072_IVARP_SCALING_FIX1726 1559 if (iCurrRef >= 0 && iCurrRefPOC != iCurrPOC) 1727 #else1728 if( iCurrRef >= 0)1729 #endif1730 1560 { 1731 1561 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic(eRefPicListCurr,iCurrRef); … … 1754 1584 pcPicYuvCurrTRef = pcCU->getSlice()->getRefPic (eRefPicList, pcCU->getSlice()->getFirstTRefIdx(eRefPicList)); 1755 1585 } 1756 #if QC_I0129_ARP_FIX 1586 1757 1587 xPredInterLumaBlk ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1758 1588 xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1759 #else 1760 xPredInterLumaBlk ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi, bTMVAvai); 1761 xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi, bTMVAvai); 1762 #endif 1589 1763 1590 if( dW > 0 && bTMVAvai ) 1764 1591 { … … 1771 1598 pcCU->clipMv(cBaseTMV); 1772 1599 pcCU->clipMv(cTempMv); 1773 #if SHARP_ARP_CHROMA_I0104 1600 1774 1601 if (iWidth <= 8) 1775 1602 { 1776 1603 pYuvCurrTRef->clear(); pYuvBaseTRef->clear(); 1777 1604 } 1778 #endif1779 #if QC_I0129_ARP_FIX1780 1605 xPredInterLumaBlk ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1781 #if SHARP_ARP_CHROMA_I0104 1606 1782 1607 if (iWidth > 8) 1783 #endif 1784 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1608 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1609 1785 1610 xPredInterLumaBlk ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1786 #if SHARP_ARP_CHROMA_I0104 1611 1787 1612 if (iWidth > 8) 1788 #endif 1789 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1790 #else 1791 xPredInterLumaBlk ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi, true); 1792 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, bi, true); 1793 xPredInterLumaBlk ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, bi, true); 1794 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, bi, true); 1795 1796 #endif 1613 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1614 1797 1615 pYuvCurrTRef->subtractARP( pYuvCurrTRef , pYuvBaseTRef , uiPartAddr , iWidth , iHeight ); 1798 1616 if(dW == 2) … … 1803 1621 } 1804 1622 } 1805 1806 1623 #endif 1807 1624 … … 2328 2145 Int iRecStride = ( eType == TEXT_LUMA ) ? pRecPic->getStride() : pRecPic->getCStride(); 2329 2146 Int iRefStride = ( eType == TEXT_LUMA ) ? pRefPic->getStride() : pRefPic->getCStride(); 2330 #if SEC_IC_NEIGHBOR_CLIP_I00802331 2147 Int iRefOffset, iHor, iVer; 2332 #else2333 Int iCUPelX, iCUPelY, iRefX, iRefY, iRefOffset, iHor, iVer;2334 2335 iCUPelX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];2336 iCUPelY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[pcCU->getZorderIdxInCU()]];2337 #endif2338 2148 iHor = pcCU->getSlice()->getIsDepth() ? pMv->getHor() : ( ( pMv->getHor() + 2 ) >> 2 ); 2339 2149 iVer = pcCU->getSlice()->getIsDepth() ? pMv->getVer() : ( ( pMv->getVer() + 2 ) >> 2 ); 2340 #if !SEC_IC_NEIGHBOR_CLIP_I00802341 iRefX = iCUPelX + iHor;2342 iRefY = iCUPelY + iVer;2343 #endif2344 2150 if( eType != TEXT_LUMA ) 2345 2151 { … … 2357 2163 Int precShift = std::max(0, (( eType == TEXT_LUMA ) ? g_bitDepthY : g_bitDepthC) - 12); 2358 2164 2359 #if SEC_IC_NEIGHBOR_CLIP_I00802360 2165 if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) ) 2361 #else2362 if( pcCU->getPUAbove( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelY > 0 && iRefY > 0 )2363 #endif2364 2166 { 2365 2167 iRefOffset = iHor + iVer * iRefStride - iRefStride; … … 2391 2193 } 2392 2194 2393 #if SEC_IC_NEIGHBOR_CLIP_I00802394 2195 if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) ) 2395 #else2396 if( pcCU->getPULeft( uiTmpPartIdx, pcCU->getZorderIdxInCU() ) && iCUPelX > 0 && iRefX > 0 )2397 #endif2398 2196 { 2399 2197 iRefOffset = iHor + iVer * iRefStride - 1; … … 2429 2227 } 2430 2228 2431 #if FIX_TICKET_712432 2229 if( iCountShift == 0 ) 2433 2230 { … … 2436 2233 return; 2437 2234 } 2438 #endif2439 2235 2440 2236 xy += xx >> IC_REG_COST_SHIFT; … … 2553 2349 // find contour for texture luma block 2554 2350 UInt iDC = 0; 2555 #if SEC_DBBP_DMM4_THRESHOLD_I0076 2351 2556 2352 iDC = piRefBlkY[ 0 ]; 2557 2353 iDC += piRefBlkY[ uiWidth - 1 ]; … … 2559 2355 iDC += piRefBlkY[ uiWidth * (uiHeight - 1) + uiWidth - 1 ]; 2560 2356 iDC = iDC >> 2; 2561 #else2562 for( UInt k = 0; k < (uiWidth*uiHeight); k++ )2563 {2564 iDC += piRefBlkY[k];2565 }2566 2567 Int cuMaxLog2Size = g_aucConvertToBit[g_uiMaxCUWidth]+2; //2568 iDC = iDC >> (cuMaxLog2Size - pcCU->getDepth(0))*2; // iDC /= (uiWidth*uiHeight);2569 #endif2570 2357 2571 2358 piRefBlkY = cTempYuv.getLumaAddr(); -
trunk/source/Lib/TLibCommon/TComPrediction.h
r1039 r1084 90 90 #if H_3D_ARP 91 91 Void xPredInterUniARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL ); 92 #if QC_I0051_ARP_SIMP93 92 Bool xCheckBiInterviewARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc ); 94 #endif95 93 Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL ); 96 94 #endif … … 179 177 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize); 180 178 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask ); 181 #if SHARP_DBBP_SIMPLE_FLTER_I0109182 179 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize ); 183 #else184 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr = 0 );185 #endif186 180 #endif 187 181 -
trunk/source/Lib/TLibCommon/TComRom.cpp
r1066 r1084 355 355 HALF_PEL, // 8x8 356 356 FULL_PEL, // 16x16 357 #if SHARP_DMM1_I0110358 357 FULL_PEL, // 32x32 359 358 FULL_PEL, // 64x64 360 359 FULL_PEL // 128x128 361 #else362 DOUBLE_PEL, // 32x32363 DOUBLE_PEL, // 64x64364 DOUBLE_PEL // 128x128365 #endif366 360 }; 367 361 … … 374 368 0, 4, 7, 8, 8, 0 }; 375 369 376 #if SHARP_DMM1_I0110377 370 Bool g_wedgePattern[32*32]; 378 #endif379 371 380 372 extern std::vector< std::vector<TComWedgelet> > g_dmmWedgeLists; … … 388 380 389 381 Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; 390 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX391 #if H_3D_IC392 UInt g_aICEnableCANDIDATE[10] = { 0, };393 UInt g_aICEnableNUM[ 10 ] = { 0, };394 Int g_lastlayer=0;395 #endif396 #endif397 382 #if ENC_DEC_TRACE 398 383 FILE* g_hTrace = NULL; … … 676 661 if( !g_dmmWedgeLists.empty() ) return; 677 662 678 #if SHARP_DMM1_I0110679 663 for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]); ui++ ) 680 #else681 for( UInt ui = g_aucConvertToBit[DIM_MIN_SIZE]; ui < (g_aucConvertToBit[DIM_MAX_SIZE]+1); ui++ )682 #endif683 664 { 684 665 UInt uiWedgeBlockSize = ((UInt)DIM_MIN_SIZE)<<ui; … … 764 745 switch( eWedgeRes ) 765 746 { 766 #if !SHARP_DMM1_I0110767 case( DOUBLE_PEL ): { uiBlockSize = (uiWidth>>1); break; }768 #endif769 747 case( FULL_PEL ): { uiBlockSize = uiWidth; break; } 770 748 case( HALF_PEL ): { uiBlockSize = (uiWidth<<1); break; } -
trunk/source/Lib/TLibCommon/TComRom.h
r1066 r1084 166 166 extern const UChar g_dmm3IntraTabIdxBits[6]; 167 167 168 #if SHARP_DMM1_I0110169 168 extern Bool g_wedgePattern[32*32]; 170 #endif171 169 172 170 extern std::vector< std::vector<TComWedgelet> > g_dmmWedgeLists; … … 230 228 231 229 extern Char g_aucConvertToBit [ MAX_CU_SIZE+1 ]; // from width to log2(width)-2 232 #if !MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX233 #if H_3D_IC234 extern UInt g_aICEnableCANDIDATE[10];235 extern UInt g_aICEnableNUM[ 10 ]; //10 layers236 extern Int g_lastlayer;237 #endif238 #endif239 230 240 231 #ifndef ENC_DEC_TRACE -
trunk/source/Lib/TLibCommon/TComSlice.cpp
r1066 r1084 103 103 , m_temporalLayerNonReferenceFlag ( false ) 104 104 , m_enableTMVPFlag ( true ) 105 #if I0044_SLICE_TMVP105 #if H_MV 106 106 , m_availableForTMVPRefFlag ( true ) 107 #endif108 #if H_MV109 107 , m_refPicSetInterLayer0 ( NULL ) 110 108 , m_refPicSetInterLayer1 ( NULL ) … … 142 140 , m_depthToDisparityF ( NULL ) 143 141 #endif 144 #if MTK_SINGLE_DEPTH_MODE_I0095142 #if H_3D_SINGLE_DEPTH 145 143 , m_bApplySingleDepthMode (false) 146 144 #endif … … 650 648 651 649 TComPic** refPicSetStCurr [2] = { RefPicSetStCurr0, RefPicSetStCurr1 }; 652 #if FIX_WARNING653 650 Int numPocStCurr[2] = { (Int)NumPocStCurr0, (Int)NumPocStCurr1 }; 654 #else655 Int numPocStCurr[2] = { NumPocStCurr0, NumPocStCurr1 };656 #endif657 651 658 652 for (Int li = 0; li < ((m_eSliceType==B_SLICE) ? 2 : 1); li++) … … 728 722 729 723 assert( rpsCurrList[li][ orgIdx ] != NULL ); 730 #if DISCARDABLE_PIC_RPS731 724 assert( rpsCurrList[li][ orgIdx ]->getSlice(0)->getDiscardableFlag() == 0 ); // Inter-layer RPS shall not contain picture with discardable_flag = 1. 732 #endif733 725 m_apcRefPicList [li][rIdx] = rpsCurrList [li][ orgIdx ]; 734 726 m_bIsUsedAsLongTerm[li][rIdx] = usedAsLongTerm [li][ orgIdx ] ; … … 1105 1097 } 1106 1098 #endif 1107 #if MTK_SINGLE_DEPTH_MODE_I00951099 #if H_3D_SINGLE_DEPTH 1108 1100 m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode; 1109 1101 #endif … … 1881 1873 #if H_MV 1882 1874 m_vpsBaseLayerInternalFlag = true; 1883 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL1884 1875 m_vpsBaseLayerAvailableFlag = true; 1885 #endif1886 1876 #endif 1887 1877 … … 1909 1899 { 1910 1900 m_layerSetIdxForOlsMinus1[i] = -1; 1911 #if !H_MV_HLS10_PTL1912 m_profileLevelTierIdx[i] = 0;1913 #endif1914 1901 for ( Int j = 0; j < MAX_VPS_NUH_LAYER_ID_PLUS1; j++) 1915 1902 { 1916 #if H_MV_HLS10_PTL1917 #if H_MV_HLS10_PTL_FIX1918 1903 m_profileTierLevelIdx[i][j] = -1; 1919 #else1920 m_profileTierLevelIdx[i][j] = false;1921 #endif1922 #endif1923 1904 m_outputLayerFlag[i][j] = false; 1924 1905 } … … 1970 1951 m_viewIndex [i] = -1; 1971 1952 m_vpsDepthModesFlag [i] = false; 1972 #if SEC_HLS_CLEANUP_I01001973 1953 m_ivMvScalingFlag[i] = true; 1974 #else1975 m_ivMvScalingFlag = true;1976 #endif1977 #if SEPARATE_FLAG_I00851978 1954 m_bIVPFlag [i] = false; 1979 #endif1980 1955 #endif 1981 1956 … … 1984 1959 m_directDependencyFlag[i][j] = false; 1985 1960 m_directDependencyType[i][j] = -1; 1986 #if H_MV_HLS10_REF_PRED_LAYERS1987 1961 m_dependencyFlag [i][j] = false; 1988 1962 m_idDirectRefLayer[i][j] = -1; 1989 1963 m_idPredictedLayer[i][j] = -1; 1990 1964 m_idRefLayer [i][j] = -1; 1991 #else1992 m_refLayerId[i][j] = -1;1993 #endif1994 1965 m_maxTidIlRefPicsPlus1[i][j] = 7; 1995 1966 } … … 2016 1987 #endif 2017 1988 #endif 2018 #if MTK_I0099_VPS_EX21989 #if H_3D_QTLPC 2019 1990 m_bLimQtPredFlag [ i ] = false; 2020 1991 #endif … … 2028 1999 m_bInterSDCFlag [ i ] = false; 2029 2000 #endif 2030 #if SEPARATE_FLAG_I00852001 #if H_3D 2031 2002 m_bIVPFlag [ i ] = false; 2032 2003 #endif … … 2075 2046 assert( getVpsNumRepFormatsMinus1() <= 255 ); 2076 2047 2077 #if H_MV_HLS10_ADD_LAYERSETS2078 2048 // The value of num_add_layer_sets shall be in the range of 0 to 1023, inclusive. 2079 2049 assert( getNumAddLayerSets() >= 0 && getNumAddLayerSets() <= 1023 ); 2080 #endif2081 2050 return true; 2082 2051 } … … 2111 2080 { 2112 2081 2113 #if H_MV_HLS10_REF_PRED_LAYERS2114 2082 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2115 2083 { … … 2181 2149 } 2182 2150 m_numIndependentLayers = k; 2183 #else // H_MV_HLS10_GEN 2184 2185 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2186 { 2187 Int iNuhLId = getLayerIdInNuh( i ); 2188 m_numDirectRefLayers[ iNuhLId ] = 0; 2189 for( Int j = 0; j < i; j++ ) 2190 { 2191 if( getDirectDependencyFlag(i , j) ) 2192 { 2193 m_refLayerId[ iNuhLId ][m_numDirectRefLayers[ iNuhLId ]++ ] = getLayerIdInNuh( j ); 2194 } 2195 } 2196 } 2197 2198 for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ ) 2199 { 2200 m_numRefLayers[i] = 0; 2201 } 2202 2203 for (Int currLayerId = 0; currLayerId <= 62; currLayerId++ ) 2204 { 2205 for (Int i = 0 ; i < MAX_NUM_LAYER_IDS; i++ ) 2206 { 2207 m_recursiveRefLayerFlag[currLayerId][i] = 0; 2208 } 2209 } 2210 2211 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2212 { 2213 Int iNuhLId = getLayerIdInNuh( i ); 2214 xSetRefLayerFlags( iNuhLId ); 2215 for( Int j = 0; j < 63; j++ ) 2216 { 2217 m_numRefLayers[ iNuhLId ] += m_recursiveRefLayerFlag[ iNuhLId ][ j ]; 2218 } 2219 } 2220 2221 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) // Bug in spec "<" instead of "<=" 2222 { 2223 Int iNuhLId = getLayerIdInNuh( i ); 2224 Int predIdx = 0; 2225 for( Int j = iNuhLId + 1; j < 63; j++ ) 2226 { 2227 if( m_recursiveRefLayerFlag[ j ][ iNuhLId ] ) 2228 { 2229 m_predictedLayerId[ iNuhLId ][ predIdx++ ] = j; 2230 } 2231 } 2232 m_numPredictedLayers[ iNuhLId ] = predIdx; 2233 } 2234 2235 Bool countedLayerIdxFlag[ MAX_NUM_LAYERS ]; 2236 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2237 { 2238 countedLayerIdxFlag[ i ] = 0; 2239 } 2240 for( Int i = 0, k = 0; i <= getMaxLayersMinus1(); i++ ) 2241 { 2242 Int iNuhLId = getLayerIdInNuh( i ); 2243 if( m_numDirectRefLayers[ iNuhLId ] == 0 ) 2244 { 2245 m_treePartitionLayerIdList[ k ][ 0 ] = iNuhLId; 2246 m_numLayersInTreePartition[ k ] = 1; 2247 2248 for( Int j = 0; j < m_numPredictedLayers[ iNuhLId ]; j++ ) 2249 { 2250 if( !countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] ) 2251 { 2252 m_treePartitionLayerIdList[ k ][ m_numLayersInTreePartition[ k ] ] = m_predictedLayerId[ iNuhLId ][ j ]; 2253 m_numLayersInTreePartition[ k ]++; 2254 countedLayerIdxFlag[ getLayerIdInVps( m_predictedLayerId[ iNuhLId ][ j ] ) ] = 1; 2255 } 2256 } 2257 k++; 2258 2259 m_numIndependentLayers = k; 2260 } 2261 } 2262 #endif // H_MV_HLS10_GEN 2263 } 2264 2265 #if !H_MV_HLS10_REF_PRED_LAYERS 2266 Int TComVPS::getRefLayerId( Int layerIdInNuh, Int idx ) 2267 { 2268 assert( idx >= 0 && idx < m_numDirectRefLayers[layerIdInNuh] ); 2269 Int refLayerIdInNuh = m_refLayerId[ layerIdInNuh ][ idx ]; 2270 assert ( refLayerIdInNuh >= 0 ); 2271 return refLayerIdInNuh; 2272 } 2273 #endif 2151 } 2152 2274 2153 2275 2154 Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType ) … … 2309 2188 for ( i = 0; i < iNumViews ; i++ ) 2310 2189 { 2311 #if H_3D_FIX_UNINIT2312 2190 m_bCamParPresent[i] = false; 2313 #endif2314 2191 m_bCamParInSliceHeader[i] = false; 2315 2192 m_aaaiCodedScale[i] = new Int*[ 2 ]; … … 2424 2301 { 2425 2302 assert( lsIdx >= 0 ); 2426 #if H_MV_HLS10_ADD_LAYERSETS2427 2303 assert( lsIdx <= getNumLayerSets() ); 2428 #else2429 assert( lsIdx <= getVpsNumLayerSetsMinus1() );2430 #endif2431 2304 return (Int) m_layerSetLayerIdList[ lsIdx ].size(); 2432 2305 } … … 2452 2325 } 2453 2326 2454 #if !H_MV_HLS10_REF_PRED_LAYERS2455 Bool TComVPS::getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth /*= 0 */ )2456 {2457 #if H_MV_HLS10_REF_PRED_LAYERS2458 // TBD: Remove getInDirectDependencyFlag entirely.2459 return getDependencyFlag( depLayeridInVps, refLayeridInVps );2460 #else2461 assert( depth < 65 );2462 Bool dependentFlag = getDirectDependencyFlag( depLayeridInVps, refLayeridInVps );2463 2464 for( Int i = 0; i < depLayeridInVps && !dependentFlag; i++ )2465 {2466 if ( getDirectDependencyFlag( depLayeridInVps, i ) )2467 {2468 dependentFlag = getInDirectDependencyFlag( i, refLayeridInVps, depth++ );2469 }2470 }2471 return dependentFlag;2472 #endif2473 }2474 #endif2475 2327 2476 2328 Void TComVPS::deriveLayerSetLayerIdList() … … 2501 2353 for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ ) 2502 2354 { 2503 #if H_MV_HLS10_NESSECARY_LAYER2504 2355 if ( getNecessaryLayerFlag( i , j )) 2505 2356 { 2506 #endif2507 2357 m_targetDecLayerIdLists[i].push_back( m_layerSetLayerIdList[ lsIdx ][ j ] ); 2508 #if H_MV_HLS10_NESSECARY_LAYER 2509 } 2510 #endif 2358 } 2511 2359 2512 2360 if( getOutputLayerFlag( i, j )) … … 2557 2405 } 2558 2406 2559 #if !H_MV_HLS10_ADD_LAYERSETS2560 Void TComVPS::inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder )2561 {2562 for( Int j = 0; j <= getMaxSubLayersInLayerSetMinus1( 0 ); j++ )2563 {2564 Int maxDecPicBufferingMinus1 = sps->getMaxDecPicBuffering( j ) - 1;2565 Int numReorderPics = sps->getNumReorderPics ( j );2566 Int maxLatencyIncreasePlus1 = sps->getMaxLatencyIncrease( j );2567 2568 if ( encoder )2569 {2570 assert( getDpbSize()->getMaxVpsDecPicBufferingMinus1(0, 0, j ) == maxDecPicBufferingMinus1 );2571 assert( getDpbSize()->getMaxVpsNumReorderPics (0, j ) == numReorderPics );2572 assert( getDpbSize()->getMaxVpsLatencyIncreasePlus1 (0, j ) == maxLatencyIncreasePlus1 );2573 }2574 else2575 {2576 getDpbSize()->setMaxVpsDecPicBufferingMinus1(0, 0, j, maxDecPicBufferingMinus1 );2577 getDpbSize()->setMaxVpsNumReorderPics (0, j, numReorderPics );2578 getDpbSize()->setMaxVpsLatencyIncreasePlus1 (0, j, maxLatencyIncreasePlus1 );2579 }2580 }2581 }2582 #endif2583 2407 Bool TComVPS::getAltOutputLayerFlagVar( Int i ) 2584 2408 { … … 2594 2418 } 2595 2419 2596 #if !H_MV_HLS10_MAXNUMPICS 2597 Int TComVPS::getMaxNumPics( Int layerId ) 2598 { 2599 Int maxNumPics = MAX_INT; 2600 for( Int olsIdx = 0; olsIdx < getNumOutputLayerSets(); olsIdx++) 2601 { 2602 Int lsIdx = olsIdxToLsIdx( olsIdx ); 2603 for( Int j = 0; j < getNumLayersInIdList( lsIdx ); j++ ) 2604 { 2605 if( getLayerSetLayerIdList(lsIdx, j ) == layerId ) 2606 { 2607 Int maxSL = getMaxSubLayersInLayerSetMinus1( lsIdx ); 2608 maxNumPics = std::min( maxNumPics, getDpbSize()->getMaxVpsDecPicBufferingMinus1( olsIdx , j, maxSL ) ); 2609 } 2610 } 2611 } 2612 assert( maxNumPics != MAX_INT ); 2613 return maxNumPics; 2614 } 2615 #endif 2616 2617 #if !H_MV_HLS10_REF_PRED_LAYERS 2618 Void TComVPS::xSetRefLayerFlags( Int currLayerId ) 2619 { 2620 for( Int j = 0; j < getNumDirectRefLayers( currLayerId ); j++ ) 2621 { 2622 Int refLayerId = m_refLayerId[ currLayerId ][ j ]; 2623 m_recursiveRefLayerFlag[ currLayerId ][ refLayerId ] = 1; 2624 for( Int k = 0; k < MAX_NUM_LAYER_IDS; k++ ) 2625 { 2626 m_recursiveRefLayerFlag[ currLayerId ][ k ] = m_recursiveRefLayerFlag[ currLayerId ][ k ] || m_recursiveRefLayerFlag[ refLayerId ][ k ]; 2627 } 2628 } 2629 } 2630 2631 #endif 2632 2633 #if H_MV_HLS10_PTL_FIX 2420 2421 2634 2422 Int TComVPS::inferProfileTierLevelIdx(Int i, Int j) 2635 2423 { … … 2651 2439 return ptlIdx; 2652 2440 } 2653 #endif 2654 2655 #if H_MV_HLS10_ADD_LAYERSETS 2441 2656 2442 Void TComVPS::deriveAddLayerSetLayerIdList(Int i) 2657 2443 { … … 2676 2462 } 2677 2463 2678 #endif 2679 2680 #if H_MV_HLS10_NESSECARY_LAYER 2464 2681 2465 Void TComVPS::deriveNecessaryLayerFlags(Int olsIdx) 2682 2466 { … … 2709 2493 } 2710 2494 } 2711 #endif 2712 2713 #if H_MV_HLS10_ADD_LAYERSETS 2495 2714 2496 Void TComVPS::printPTL() 2715 2497 { … … 2757 2539 #endif 2758 2540 2759 #if H_MV_HLS10_AUX2760 2541 vector<Int> viewOrderIndex; 2761 2542 vector<Int> auxId; 2762 2543 vector<Int> dependencyId; 2763 2544 vector<Int> viewId; 2764 #endif2765 2545 for (Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2766 2546 { 2767 2547 fullArray.push_back( getMaxLayersMinus1() + 1 ); 2768 2548 range.push_back( i ); 2769 #if H_MV_HLS10_AUX2770 2549 viewOrderIndex.push_back( getViewIndex ( i ) ); 2771 2550 dependencyId .push_back( getDependencyId( i ) ); … … 2774 2553 #if H_3D 2775 2554 depthId.push_back( getDepthId( i ) ); 2776 #endif2777 2555 #endif 2778 2556 } … … 2787 2565 } 2788 2566 2789 #if H_MV_HLS10_AUX2790 2567 Void TComVPS::printScalabilityId() 2791 2568 { … … 2825 2602 std::cout << std::endl; 2826 2603 } 2827 #endif2828 2604 2829 2605 Void TComVPS::printLayerSets() … … 2880 2656 } 2881 2657 2882 #endif2883 2658 2884 2659 #endif // H_MV … … 2910 2685 , m_pcmLog2MaxSize ( 5) 2911 2686 , m_uiPCMLog2MinSize ( 7) 2912 #if !MTK_I0099_VPS_EX22913 #if H_3D_QTLPC2914 , m_bUseQTL (false)2915 , m_bUsePC (false)2916 #endif2917 #endif2918 2687 , m_bitDepthY ( 8) 2919 2688 , m_bitDepthC ( 8) … … 2964 2733 #endif 2965 2734 2966 #if !H_MV_HLS10_PPS2967 m_numScaledRefLayerOffsets = 0;2968 2969 for (Int i = 0; i < MAX_NUM_SCALED_REF_LAYERS; i++ )2970 {2971 m_scaledRefLayerId [i] = -1;2972 }2973 2974 for (Int i = 0; i < MAX_NUM_LAYERS; i++ )2975 {2976 m_scaledRefLayerLeftOffset [i] = 0;2977 m_scaledRefLayerTopOffset [i] = 0;2978 m_scaledRefLayerRiFghtOffset [i] = 0;2979 m_scaledRefLayerBottomOffset [i] = 0;2980 }2981 #endif2982 2735 #endif 2983 2736 } … … 3120 2873 , m_entropyCodingSyncEnabledFlag (false) 3121 2874 , m_loopFilterAcrossTilesEnabledFlag (true) 3122 , m_uniformSpacingFlag (0) 3123 , m_iNumColumnsMinus1 (0) 3124 , m_puiColumnWidth (NULL) 3125 , m_iNumRowsMinus1 (0) 3126 , m_puiRowHeight (NULL) 3127 , m_iNumSubstreams (1) 2875 , m_uniformSpacingFlag (false) 2876 , m_numTileColumnsMinus1 (0) 2877 , m_numTileRowsMinus1 (0) 2878 , m_numSubstreams (1) 3128 2879 , m_signHideFlag(0) 3129 2880 , m_cabacInitPresentFlag (false) … … 3158 2909 TComPPS::~TComPPS() 3159 2910 { 3160 if( m_iNumColumnsMinus1 > 0 && m_uniformSpacingFlag == 0 )3161 {3162 if (m_puiColumnWidth) delete [] m_puiColumnWidth;3163 m_puiColumnWidth = NULL;3164 }3165 if( m_iNumRowsMinus1 > 0 && m_uniformSpacingFlag == 0 )3166 {3167 if (m_puiRowHeight) delete [] m_puiRowHeight;3168 m_puiRowHeight = NULL;3169 }3170 2911 delete m_scalingList; 3171 2912 } … … 3186 2927 // allocate some memory and initialize with default mapping 3187 2928 m_iNumDepthmapValues[i] = ((1 << m_uiDepthViewBitDepth)-1)+1; 3188 #if !FIX_TICKET_773189 m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);3190 #endif3191 2929 m_iDepthValue2Idx[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]); 3192 2930 m_iIdx2DepthValue[i] = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]); … … 3277 3015 // update DLT variables 3278 3016 m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues; 3279 #if !FIX_TICKET_77 3280 m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]); 3281 #endif 3282 } 3283 3284 #if H_3D_DELTA_DLT 3017 } 3018 3285 3019 Void TComDLT::getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum ) 3286 3020 { … … 3347 3081 setDepthLUTs(layerIdInVps, aiIdx2DepthValue, uiNumDepthValues); 3348 3082 } 3349 #endif3350 3083 3351 3084 #endif … … 3354 3087 Void TComSPS::inferRepFormat( TComVPS* vps, Int layerIdCurr ) 3355 3088 { 3356 #if H_MV_HLS10_MULTILAYERSPS3357 3089 if ( getMultiLayerExtSpsFlag() ) 3358 #else3359 if ( layerIdCurr > 0 )3360 #endif3361 3090 { 3362 3091 Int repFormatIdx = getUpdateRepFormatFlag() ? getSpsRepFormatIdx() : vps->getVpsRepFormatIdx( vps->getLayerIdInVps( layerIdCurr ) ) ; … … 3374 3103 setBitDepthC ( repFormat->getBitDepthVpsChromaMinus8() + 8 ); 3375 3104 setQpBDOffsetC ( (Int) (6* ( getBitDepthC() -8 ) ) ); 3376 #if H_MV_HLS10_GEN_VSP_CONF_WIN3377 3105 Window &spsConf = getConformanceWindow(); 3378 3106 … … 3383 3111 spsConf.setWindowTopOffset ( repFormat->getConfWinVpsTopOffset() ); 3384 3112 spsConf.setWindowBottomOffset( repFormat->getConfWinVpsBottomOffset() ); 3385 #endif 3386 3387 #if H_MV_HLS10_MULTILAYERSPS 3113 3388 3114 if ( getMultiLayerExtSpsFlag() && getUpdateRepFormatFlag() ) 3389 #else3390 if ( getLayerId() > 0 && getUpdateRepFormatFlag() )3391 #endif3392 3115 { 3393 3116 assert( getChromaFormatIdc() <= repFormat->getChromaFormatVpsIdc() ); … … 3423 3146 const std::vector<Int>& targetDecLayerIdList = vps->getTargetDecLayerIdList( vps->olsIdxToLsIdx( targetOptLayerSetIdx )); 3424 3147 3425 #if H_MV_HLS10_MULTILAYERSPS3426 3148 if ( getMultiLayerExtSpsFlag() ) 3427 #else3428 if (getLayerId() > 0 )3429 #endif3430 3149 { 3431 3150 Int layerIdx = 0; … … 3445 3164 Int maxDecPicBufferingMinus1 = vps->getDpbSize()->getMaxVpsDecPicBufferingMinus1( targetOptLayerSetIdx, layerIdx, i ) ; 3446 3165 3447 #if H_MV_HLS10_MULTILAYERSPS3448 3166 // This preliminary fix needs to be checked. 3449 3167 Int maxNumReorderPics = vps->getDpbSize()->getMaxVpsNumReorderPics( targetOptLayerSetIdx, i ); 3450 3168 Int maxLatencyIncreasePlus1 = vps->getDpbSize()->getMaxVpsLatencyIncreasePlus1( targetOptLayerSetIdx, i ); 3451 #endif3452 3169 if ( encoder ) 3453 3170 { 3454 3171 assert( getMaxDecPicBuffering( i ) - 1 == maxDecPicBufferingMinus1 ); 3455 #if H_MV_HLS10_MULTILAYERSPS3456 3172 // This preliminary fix needs to be checked. 3457 3173 assert( getNumReorderPics( i ) == maxNumReorderPics ); 3458 3174 assert( getMaxLatencyIncrease( i ) == maxLatencyIncreasePlus1 ); 3459 #endif3460 3175 3461 3176 } 3462 3177 else 3463 3178 { 3464 #if !H_MV_HLS10_MULTILAYERSPS3465 setMaxDecPicBuffering(i, maxDecPicBufferingMinus1 + 1 );3466 #else3467 3179 // This preliminary fix needs to be checked. 3468 3180 setMaxDecPicBuffering( maxDecPicBufferingMinus1 + 1 , i); 3469 3181 setNumReorderPics ( maxNumReorderPics, i ); 3470 3182 setMaxLatencyIncrease( maxLatencyIncreasePlus1 - 1 , i); 3471 #endif3472 3183 } 3473 3184 } … … 3477 3188 Void TComSPS::checkRpsMaxNumPics( TComVPS* vps, Int currLayerId ) 3478 3189 { 3479 #if !H_MV_HLS10_MAXNUMPICS3480 // In spec, when rps is in SPS, nuh_layer_id of SPS is used instead3481 // of nuh_layer_id of slice (currLayerId), this seems to be a bug.3482 #endif3483 3190 for (Int i = 0; i < getRPSList()->getNumberOfReferencePictureSets(); i++ ) 3484 3191 { … … 3486 3193 if ( !rps->getInterRPSPrediction() ) 3487 3194 { 3488 #if H_MV_HLS10_MAXNUMPICS3489 3195 rps->checkMaxNumPics( vps->getVpsExtensionFlag(), MAX_INT, getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 ); // INT_MAX to be replaced by DpbSize 3490 #else 3491 rps->checkMaxNumPics( vps->getVpsExtensionFlag(), vps->getMaxNumPics( currLayerId ), 3492 getLayerId(), getMaxDecPicBuffering( getSpsMaxSubLayersMinus1() ) - 1 ); 3493 #endif 3494 } 3495 } 3496 } 3497 3498 #if H_MV_HLS10_MULTILAYERSPS 3196 } 3197 } 3198 } 3199 3499 3200 Void TComSPS::inferSpsMaxSubLayersMinus1(Bool atPsActivation, TComVPS* vps) 3500 3201 { … … 3517 3218 } 3518 3219 } 3519 #endif3520 3220 #endif 3521 3221 … … 3880 3580 { 3881 3581 TComVPS* vps = getVPS(); 3882 #if H_MV_HLS10_REF_PRED_LAYERS3883 3582 Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) ); 3884 #else3885 Int refLayerIdx = vps->getLayerIdInVps( vps->getRefLayerId( getLayerId(), i ) );3886 #endif3887 3583 3888 3584 Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >= getTLayer() ) && ( getTLayer() == 0 ) && … … 3955 3651 Int TComSlice::getRefPicLayerId( Int i ) 3956 3652 { 3957 #if H_MV_HLS10_REF_PRED_LAYERS3958 3653 return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) ); 3959 #else3960 return getVPS()->getRefLayerId( getLayerId(), getInterLayerPredLayerIdc( i ) );3961 #endif3962 3654 } 3963 3655 … … 4065 3757 m_bApplyIC = true; 4066 3758 Int refLayer = curLayer-1; 4067 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX 3759 4068 3760 Int ICEnableCandidate = getICEnableCandidate(refLayer); 4069 3761 Int ICEnableNum = getICEnableNum(refLayer); … … 4083 3775 setICEnableCandidate(curLayer, 0); 4084 3776 setICEnableNum(curLayer, 0); 4085 #else4086 if( (refLayer>=0) && (g_aICEnableCANDIDATE[refLayer]>0) )4087 {4088 Double ratio=Double(g_aICEnableNUM[refLayer])/Double(g_aICEnableCANDIDATE[refLayer]);4089 4090 if( ratio > IC_LOW_LATENCY_ENCODING_THRESHOLD)4091 {4092 m_bApplyIC=true;4093 }4094 else4095 {4096 m_bApplyIC=false;4097 }4098 }4099 g_aICEnableNUM[curLayer]=0;4100 g_aICEnableCANDIDATE[curLayer]=0;4101 g_lastlayer=getDepth();4102 #endif4103 3777 } 4104 3778 } … … 4210 3884 4211 3885 #if H_3D_DDD 4212 #if LGE_FCO_I01163886 #if H_3D_FCO 4213 3887 if( getIsDepth() && getViewIndex() > 0 && getVPS()->getMPIFlag(layerIdInVPS)) 4214 3888 #else … … 4696 4370 , m_nonPackedConstraintFlag(false) 4697 4371 , m_frameOnlyConstraintFlag(false) 4698 #if H_MV _HLS10_PTL4372 #if H_MV 4699 4373 , m_max12bitConstraintFlag ( false ) 4700 4374 , m_max10bitConstraintFlag ( false ) … … 4712 4386 } 4713 4387 4714 #if H_MV _HLS10_PTL_INFER_FIX4388 #if H_MV 4715 4389 Bool ProfileTierLevel::getV2ConstraintsPresentFlag() 4716 4390 { … … 4757 4431 copyV2ConstraintFlags ( ptlRef ); 4758 4432 } 4759 4760 4433 #endif 4761 4434 … … 4767 4440 4768 4441 #if H_MV 4769 #if !H_MV_HLS10_PTL_INFER_FIX4770 Void TComPTL::copyLevelFrom( TComPTL* source )4771 {4772 getGeneralPTL()->setLevelIdc( source->getGeneralPTL()->getLevelIdc() );4773 for( Int subLayer = 0; subLayer < 6; subLayer++ )4774 {4775 setSubLayerLevelPresentFlag( subLayer, source->getSubLayerLevelPresentFlag( subLayer ) );4776 getSubLayerPTL( subLayer )->setLevelIdc( source->getSubLayerPTL( subLayer )->getLevelIdc() );4777 }4778 }4779 #else4780 4442 Void TComPTL::inferGeneralValues(Bool profilePresentFlag, Int k, TComPTL* refPTL) 4781 4443 { … … 4865 4527 } 4866 4528 4867 #endif4868 4529 #endif 4869 4530 //! \} … … 4908 4569 4909 4570 m_vpsVuiBspHrdPresentFlag = false; 4910 #if H_MV_HLS10_VPS_VUI_BSP4911 4571 m_vpsVuiBspHrdParameters = NULL; 4912 #else4913 m_vpsVuiBspHrdParameters = new TComVpsVuiBspHrdParameters();4914 #endif4915 4572 } 4916 4573 … … 4958 4615 } 4959 4616 4960 #if !H_MV_HLS10_VPS_VUI_BSP 4961 Void TComVpsVuiBspHrdParameters::checkLayerInBspFlag( TComVPS* vps, Int h ) 4962 { 4963 // It is a requirement of bitstream conformance that bitstream partition with index j shall not include 4964 // direct or indirect reference layers of any layers in bitstream partition i for any values of i and j 4965 // in the range of 0 to num_bitstream_partitions[ h ] ?1, inclusive, such that i is less than j. 4966 4967 for ( Int partJ = 0; partJ < getNumBitstreamPartitions( h ); partJ++ ) 4968 { 4969 for ( Int partI = 0; partI < partJ; partI++ ) 4970 { 4971 for ( Int layerJ = 0; layerJ < vps->getMaxLayersMinus1(); layerJ++ ) 4972 { 4973 if ( m_layerInBspFlag[ h ][partJ][layerJ ] ) 4974 { 4975 for ( Int layerI = 0; layerI < vps->getMaxLayersMinus1(); layerI++ ) 4976 { 4977 if ( m_layerInBspFlag[ h ][partI][layerI] ) 4978 { 4979 assert( !vps->getInDirectDependencyFlag( layerI, layerJ ) ); 4980 } 4981 } 4982 } 4983 } 4984 } 4985 } 4986 4987 // --------------- 4988 // To be added: 4989 // When vps_base_layer_internal_flag is equal to 0 and layer_in_bsp_flag[ h ][ i ][ 0 ] is equal to 1 for any value of h in the 4990 // range of 1 to vps_num_layer_sets_minus1, inclusive, and any value of i in the range of 0 to num_bitstream_partitions[ h ] - 1, 4991 // inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ] for at least one value of j in the range of 1 to 4992 // NumLayersInIdList[ h ] - 1, inclusive, shall be equal to 1. 4993 // --------------- 4994 4995 4996 // When num_bitstream_partitions[ h ] is equal to 1 for any value of h in the range 1 to vps_num_layer_set_minus1, inclusive, 4997 // the value of layer_in_bsp_flag[ h ][ 0 ][ j ] should be equal to 0 for at least one value of j in the range 0 to 4998 // NumLayersInIdList[ h ] ? 1, inclusive. 4999 5000 5001 if ( getNumBitstreamPartitions( h ) == 1 ) 5002 { 5003 Bool atLeastOneZero = false; 5004 for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ ) 5005 { 5006 atLeastOneZero = atLeastOneZero || !getLayerInBspFlag( h, 0, j ); 5007 } 5008 assert( atLeastOneZero ); 5009 } 5010 5011 5012 // For any value of h in the range 1 to vps_num_layer_set_minus1, inclusive, the value of layer_in_bsp_flag[ h ][ i ][ j ] 5013 // shall be equal to 1 for at most one value of i in the range of 0 to num_bitstream_partitions[ h ] ? 1, inclusive. 5014 5015 for ( Int j = 0; j <= vps->getNumLayersInIdList( h ) - 1; j++ ) 5016 { 5017 Int numLayerInBsp = 0; 5018 for ( Int i = 0; i <= getNumBitstreamPartitions( h ) - 1; i++ ) 5019 { 5020 numLayerInBsp += ( getLayerInBspFlag( h, i, j ) ? 1 : 0 ); 5021 } 5022 assert( numLayerInBsp <= 1 ); 5023 } 5024 5025 } 5026 5027 Void TComVpsVuiBspHrdParameters::checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j ) 5028 { 5029 // bsp_comb_hrd_idx 5030 assert( getBspCombSchedIdx(h, i, j ) >= 0 ); 5031 assert( getBspCombSchedIdx(h, i, j ) <= getVpsNumBspHrdParametersMinus1() ); 5032 5033 // bsp_comb_sched_idx 5034 assert( getBspCombSchedIdx(h, i, j ) >= 0 ); 5035 5036 //* This check needs to activated, when HighestTid is available here 5037 // assert( getBspCombSchedIdx(h, i, j ) <= vps->getHrdParameters( getBspCombHrdIdx( h, i, j ) )->getCpbCntMinus1( highestTid ) ); 5038 } 5039 #endif 5040 5041 #if H_MV_HLS10_VPS_VUI_BSP 4617 5042 4618 5043 4619 TComVpsVuiBspHrdParameters::~TComVpsVuiBspHrdParameters() … … 5137 4713 } 5138 4714 5139 #endif5140 4715 5141 4716 Void TComVUI::inferVideoSignalInfo( TComVPS* vps, Int layerIdCurr ) … … 5173 4748 for (Int k = 0; k < MAX_NUM_LAYER_IDS; k++ ) 5174 4749 { 5175 #if H_MV_HLS10_ADD_LAYERSETS5176 4750 m_maxVpsDecPicBufferingMinus1[i][k][j] = MIN_INT; 5177 #else5178 m_maxVpsDecPicBufferingMinus1[i][k][j] = 0;5179 #endif5180 4751 } 5181 4752 } -
trunk/source/Lib/TLibCommon/TComSlice.h
r1066 r1084 45 45 #include "TComRom.h" 46 46 #include "TComList.h" 47 #if H_MV_HLS10_GEN_FIX48 47 #if H_MV 49 48 #include <ios> 50 49 #include <iostream> 51 50 #include <iomanip> 52 #endif53 51 #endif 54 52 //! \ingroup TLibCommon … … 207 205 Bool m_frameOnlyConstraintFlag; 208 206 209 #if H_MV_HLS10_PTL210 207 #if H_MV 211 208 Bool m_max12bitConstraintFlag; … … 220 217 Bool m_inbldFlag; 221 218 #endif 222 #endif223 219 public: 224 220 ProfileTierLevel(); … … 252 248 253 249 #if H_MV 254 #if H_MV_HLS10_PTL255 250 Void setMax12bitConstraintFlag( Bool flag ) { m_max12bitConstraintFlag = flag; } 256 251 Bool getMax12bitConstraintFlag( ) { return m_max12bitConstraintFlag; } … … 281 276 Void setInbldFlag( Bool flag ) { m_inbldFlag = flag; } 282 277 Bool getInbldFlag( ) { return m_inbldFlag; } 283 #endif284 #if H_MV_HLS10_PTL_INFER_FIX285 278 Bool getV2ConstraintsPresentFlag(); 286 279 Bool getInbldPresentFlag(); 287 280 Void copyV2ConstraintFlags( ProfileTierLevel* ptlRef ); 288 281 Void copyProfile( ProfileTierLevel* ptlRef ); 289 #endif290 282 #endif 291 283 }; … … 310 302 ProfileTierLevel* getSubLayerPTL(Int i) { return &m_subLayerPTL[i]; } 311 303 #if H_MV 312 #if H_MV_HLS10_PTL_INFER_FIX313 304 Void inferGeneralValues ( Bool profilePresentFlag , Int k, TComPTL* refPTL );; 314 305 Void inferSubLayerValues( Int maxNumSubLayersMinus1, Int k, TComPTL* refPTL );; 315 #else316 Void copyLevelFrom( TComPTL* source );317 #endif318 306 #endif 319 307 }; … … 501 489 class TComVpsVuiBspHrdParameters 502 490 { 503 #if H_MV_HLS10_VPS_VUI_BSP504 491 505 492 /* Not yet tested */ … … 563 550 Void setHrdParametermeters( Int k, TComHRD* val ) { *(m_hrdParameters + k ) = *val; }; 564 551 TComHRD* getHrdParametermeters( Int k ) { return m_hrdParameters + k; }; 565 #else566 private:567 Int m_vpsNumBspHrdParametersMinus1;568 Bool m_bspCprmsPresentFlag[MAX_NUM_BSP_HRD_PARAMETERS];569 Int m_numBitstreamPartitions[MAX_VPS_OP_SETS_PLUS1];570 Bool m_layerInBspFlag[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_LAYERS];571 Int m_numBspSchedCombinationsMinus1[MAX_VPS_OP_SETS_PLUS1];572 Int m_bspCombHrdIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];573 Int m_bspCombSchedIdx[MAX_VPS_OP_SETS_PLUS1][MAX_NUM_BSP_HRD_PARAMETERS][MAX_NUM_BSP_SCHED_COMBINATION];574 TComHRD* m_hrdParameters[MAX_NUM_BSP_HRD_PARAMETERS];575 public:576 577 Void setVpsNumBspHrdParametersMinus1( Int val ) { m_vpsNumBspHrdParametersMinus1 = val; }578 Int getVpsNumBspHrdParametersMinus1( ) { return m_vpsNumBspHrdParametersMinus1; }579 580 Void setBspCprmsPresentFlag( Int i, Bool flag ) { m_bspCprmsPresentFlag[i] = flag; }581 Bool getBspCprmsPresentFlag( Int i ) { return m_bspCprmsPresentFlag[i]; }582 583 Void setNumBitstreamPartitions( Int h, Int val ) { m_numBitstreamPartitions[h] = val; }584 Int getNumBitstreamPartitions( Int h ) { return m_numBitstreamPartitions[h]; }585 586 Void setLayerInBspFlag( Int h, Int i, Int j, Bool flag ) { m_layerInBspFlag[h][i][j] = flag; }587 Bool getLayerInBspFlag( Int h, Int i, Int j ) { return m_layerInBspFlag[h][i][j]; }588 Void checkLayerInBspFlag ( TComVPS* vps, Int h );589 590 Void setNumBspSchedCombinationsMinus1( Int h, Int val ) { m_numBspSchedCombinationsMinus1[h] = val; }591 Int getNumBspSchedCombinationsMinus1( Int h ) { return m_numBspSchedCombinationsMinus1[h]; }592 593 Void setBspCombHrdIdx( Int h, Int i, Int j, Int val ) { m_bspCombHrdIdx[h][i][j] = val; }594 Int getBspCombHrdIdx( Int h, Int i, Int j ) { return m_bspCombHrdIdx[h][i][j]; }595 Int getBspCombHrdIdxLen() { return gCeilLog2( getVpsNumBspHrdParametersMinus1() + 1); };596 597 598 Void setBspCombSchedIdx( Int h, Int i, Int j, Int val ) { m_bspCombSchedIdx[h][i][j] = val; }599 Int getBspCombSchedIdx( Int h, Int i, Int j ) { return m_bspCombSchedIdx[h][i][j]; }600 601 Void checkBspCombHrdAndShedIdx( TComVPS* vps, Int h, Int i, Int j );602 603 Void setHrdParametermeters( Int k, TComHRD* val ) { m_hrdParameters[k] = val; };604 TComHRD* getHrdParametermeters( Int k ) { return m_hrdParameters[k]; };605 #endif606 552 }; 607 553 … … 630 576 Bool m_wppNotInUseFlag; 631 577 Bool m_wppInUseFlag [MAX_NUM_LAYERS]; 632 #if H_MV_HLS10_VPS_VUI633 578 Bool m_singleLayerForNonIrapFlag; 634 579 Bool m_higherLayerIrapSkipFlag; 635 #endif636 580 Bool m_ilpRestrictedRefLayersFlag; 637 581 Int m_minSpatialSegmentOffsetPlus1[MAX_NUM_LAYERS][MAX_NUM_LAYERS]; … … 708 652 Bool getWppInUseFlag( Int i ) { return m_wppInUseFlag[i]; } 709 653 710 #if H_MV_HLS10_VPS_VUI711 654 Void setSingleLayerForNonIrapFlag( Bool flag ) { m_singleLayerForNonIrapFlag = flag; } 712 655 Bool getSingleLayerForNonIrapFlag( ) { return m_singleLayerForNonIrapFlag; } … … 714 657 Void setHigherLayerIrapSkipFlag( Bool flag ) { m_higherLayerIrapSkipFlag = flag; } 715 658 Bool getHigherLayerIrapSkipFlag( ) { return m_higherLayerIrapSkipFlag; } 716 #endif717 659 718 660 Void setIlpRestrictedRefLayersFlag( Bool flag ) { m_ilpRestrictedRefLayersFlag = flag; } … … 750 692 Int m_bitDepthVpsLumaMinus8; 751 693 Int m_bitDepthVpsChromaMinus8; 752 #if H_MV_HLS10_GEN_VSP_CONF_WIN753 694 Bool m_conformanceWindowVpsFlag; 754 695 Int m_confWinVpsLeftOffset; … … 756 697 Int m_confWinVpsTopOffset; 757 698 Int m_confWinVpsBottomOffset; 758 #endif759 699 760 700 public: 761 701 762 #if H_MV_HLS10_GEN_VSP_CONF_WIN763 702 TComRepFormat() 764 703 { … … 769 708 m_confWinVpsBottomOffset = 0; 770 709 }; 771 #else772 TComRepFormat() { };773 #endif774 710 775 711 Void setChromaAndBitDepthVpsPresentFlag( Bool flag ) { m_chromaAndBitDepthVpsPresentFlag = flag; } … … 796 732 Int getBitDepthVpsChromaMinus8( ) { return m_bitDepthVpsChromaMinus8; } 797 733 798 #if H_MV_HLS10_GEN_VSP_CONF_WIN799 734 Void setConformanceWindowVpsFlag( Bool flag ) { m_conformanceWindowVpsFlag = flag; } 800 735 Bool getConformanceWindowVpsFlag( ) { return m_conformanceWindowVpsFlag; } … … 811 746 Void setConfWinVpsBottomOffset( Int val ) { m_confWinVpsBottomOffset = val; } 812 747 Int getConfWinVpsBottomOffset( ) { return m_confWinVpsBottomOffset; } 813 #endif814 748 }; 815 749 … … 834 768 835 769 Void setMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j, Int val ) { m_maxVpsDecPicBufferingMinus1[i][k][j] = val; } 836 #if H_MV_HLS10_ADD_LAYERSETS837 770 Int getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { assert( m_maxVpsDecPicBufferingMinus1[i][k][j] >= 0 ); return m_maxVpsDecPicBufferingMinus1[i][k][j]; } 838 #else839 Int getMaxVpsDecPicBufferingMinus1( Int i, Int k, Int j ) { return m_maxVpsDecPicBufferingMinus1[i][k][j]; }840 #endif841 771 842 772 Void setMaxVpsNumReorderPics( Int i, Int j, Int val ) { m_maxVpsNumReorderPics[i][j] = val; } … … 853 783 #if H_MV 854 784 Bool m_vpsBaseLayerInternalFlag; 855 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL856 785 Bool m_vpsBaseLayerAvailableFlag; 857 #endif // H_MV_HLS10_GEN858 786 #endif 859 787 … … 925 853 Int m_layerSetIdxForOlsMinus1 [MAX_VPS_OUTPUTLAYER_SETS]; 926 854 Bool m_outputLayerFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_VPS_NUH_LAYER_ID_PLUS1]; 927 #if H_MV_HLS10_PTL928 855 Int m_profileTierLevelIdx [MAX_VPS_OUTPUTLAYER_SETS ][MAX_NUM_LAYERS]; 929 #else930 Int m_profileLevelTierIdx [MAX_VPS_OUTPUTLAYER_SETS ];931 #endif932 856 Bool m_altOutputLayerFlag [MAX_VPS_OUTPUTLAYER_SETS]; 933 857 Bool m_repFormatIdxPresentFlag; … … 958 882 // VPS EXTENSION SEMANTICS VARIABLES 959 883 Int m_layerIdInVps [MAX_NUM_LAYERS ]; 960 #if H_MV_HLS10_REF_PRED_LAYERS961 884 Int m_dependencyFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 962 #endif963 885 964 886 Int m_numDirectRefLayers [MAX_NUM_LAYERS]; 965 #if H_MV_HLS10_REF_PRED_LAYERS966 887 Int m_idDirectRefLayer [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 967 #else968 Int m_refLayerId [MAX_NUM_LAYERS][MAX_NUM_LAYERS];969 #endif970 888 971 889 Int m_numRefLayers [MAX_NUM_LAYER_IDS]; 972 #if H_MV_HLS10_REF_PRED_LAYERS973 890 Int m_idRefLayer [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 974 #endif975 891 976 892 977 893 Int m_numPredictedLayers [MAX_NUM_LAYERS ]; 978 #if !H_MV_HLS10_REF_PRED_LAYERS979 Int m_predictedLayerId [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS];980 #else981 894 Int m_idPredictedLayer [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS]; 982 #endif983 895 Int m_numIndependentLayers; 984 896 Int m_numLayersInTreePartition [MAX_NUM_LAYER_IDS]; 985 897 Int m_treePartitionLayerIdList [MAX_NUM_LAYERS][MAX_NUM_LAYER_IDS]; 986 #if H_MV_HLS10_REF_PRED_LAYERS987 898 Bool m_recursiveRefLayerFlag [MAX_NUM_LAYER_IDS][MAX_NUM_LAYER_IDS]; 988 #endif989 899 Int m_viewIndex [MAX_NUM_LAYERS ]; 990 900 … … 993 903 std::vector< std::vector< Int> > m_layerSetLayerIdList; 994 904 995 #if H_MV_HLS10_NESSECARY_LAYER996 905 Int m_numNecessaryLayers [MAX_VPS_OUTPUTLAYER_SETS]; 997 906 Bool m_necessaryLayerFlag [MAX_VPS_OUTPUTLAYER_SETS][MAX_NUM_LAYERS]; 998 #endif999 907 1000 908 Int xGetDimBitOffset( Int j ); 1001 #if H_MV_HLS10_REF_PRED_LAYERS1002 909 Void xSetRefLayerFlags( Int currLayerId ); 1003 #endif1004 910 // VPS EXTENSION 2 SYNTAX ELEMENTS 1005 911 #if H_3D_ARP … … 1009 915 #if H_3D_IV_MERGE 1010 916 Bool m_ivMvPredFlag [ MAX_NUM_LAYERS ]; 1011 #if SEC_HLS_CLEANUP_I01001012 917 Bool m_ivMvScalingFlag [ MAX_NUM_LAYERS ]; 1013 #endif1014 918 #if H_3D_SPIVMP 1015 919 Int m_iSubPULog2Size [MAX_NUM_LAYERS ]; 1016 #if MTK_I0099_VPS_EX21017 920 Int m_iSubPUMPILog2Size [MAX_NUM_LAYERS ]; 1018 #else 1019 Int m_iSubPUMPILog2Size; 1020 #endif 1021 #endif 1022 #endif 1023 #if MTK_I0099_VPS_EX2 921 #endif 922 #endif 923 #if H_3D_QTLPC 1024 924 Bool m_bLimQtPredFlag [ MAX_NUM_LAYERS ]; 1025 925 #endif … … 1031 931 #endif 1032 932 Bool m_vpsDepthModesFlag [MAX_NUM_LAYERS ]; 1033 #if SEPARATE_FLAG_I0085933 #if H_3D 1034 934 Bool m_bIVPFlag [MAX_NUM_LAYERS ]; 1035 935 #endif 1036 1037 936 #if H_3D 1038 937 UInt m_uiCamParPrecision; … … 1041 940 Int ***m_aaaiCodedScale ; 1042 941 Int ***m_aaaiCodedOffset; 1043 1044 #if !SEC_HLS_CLEANUP_I01001045 Bool m_ivMvScalingFlag;1046 #endif1047 1048 942 #endif 1049 943 #if H_3D_INTER_SDC … … 1081 975 Void setVpsBaseLayerInternalFlag( Bool flag ) { m_vpsBaseLayerInternalFlag = flag; } 1082 976 Bool getVpsBaseLayerInternalFlag( ) { return m_vpsBaseLayerInternalFlag; } 1083 #if H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL1084 977 Void setVpsBaseLayerAvailableFlag( Bool flag ) { m_vpsBaseLayerAvailableFlag = flag; } 1085 978 Bool getVpsBaseLayerAvailableFlag( ) { return m_vpsBaseLayerAvailableFlag; } 1086 979 #endif 1087 #endif1088 980 1089 981 UInt getMaxTLayers () { return m_uiMaxTLayers; } … … 1092 984 #if H_MV 1093 985 UInt getMaxSubLayersMinus1() { return m_uiMaxTLayers - 1; } // For consistency with draft spec 1094 #if H_MV_HLS10_GEN_FIX1095 986 Void setMaxSubLayersMinus1(UInt val) { m_uiMaxTLayers = (val + 1); }; 1096 #endif1097 987 UInt getMaxLayersMinus1() { return m_uiMaxLayersMinus1; }; 1098 988 Void setMaxLayersMinus1(UInt l) { m_uiMaxLayersMinus1 = l; } … … 1134 1024 1135 1025 #if H_MV 1136 #if H_MV_HLS10_PTL1137 1026 TComPTL* getPTL( Int idx = 0 ) { return &m_pcPTL[idx]; } 1138 #else1139 TComPTL* getPTL( Int layerSet = 0 ) { return &m_pcPTL[layerSet]; }1140 #endif1141 1027 #else 1142 1028 TComPTL* getPTL() { return &m_pcPTL; } … … 1218 1104 Void setLayerSetIdxForOlsMinus1( Int outLayerSetIdx, Int val ) { m_layerSetIdxForOlsMinus1[ outLayerSetIdx ] = val; } 1219 1105 Int getLayerSetIdxForOlsMinus1( Int outLayerSetIdx ) { return m_layerSetIdxForOlsMinus1[ outLayerSetIdx ]; } 1220 #if VPS_MISC_UPDATES1221 1106 Int getLayerSetIdxForOlsMinus1Len( Int outLayerSetIdx ) { return gCeilLog2( getNumLayerSets() ); } 1222 #endif1223 1107 1224 1108 Void setOutputLayerFlag( Int outLayerSetIdx, Int i, Bool flag ) { m_outputLayerFlag[ outLayerSetIdx ][ i ] = flag; } … … 1227 1111 Bool inferOutputLayerFlag( Int i, Int j ); 1228 1112 1229 #if H_MV_HLS10_PTL1230 1113 Void setProfileTierLevelIdx( Int i, Int j, Int val ) { m_profileTierLevelIdx[ i ][ j ] = val; } 1231 1114 Int getProfileTierLevelIdx( Int i, Int j ) { return m_profileTierLevelIdx[ i ][ j ]; } 1232 #if H_MV_HLS10_PTL_FIX1233 1115 Int inferProfileTierLevelIdx( Int i, Int j ); 1234 #endif1235 #else1236 Void setProfileLevelTierIdx( Int outLayerSetIdx, Int val ) { m_profileLevelTierIdx[ outLayerSetIdx ] = val; }1237 Int getProfileLevelTierIdx( Int outLayerSetIdx ) { return m_profileLevelTierIdx[ outLayerSetIdx ]; }1238 #endif1239 1116 1240 1117 Void setAltOutputLayerFlag( Int i, Bool flag ) { m_altOutputLayerFlag[i] = flag; } … … 1266 1143 TComDpbSize* getDpbSize( ) { return m_dpbSize;} 1267 1144 1268 #if !H_MV_HLS10_ADD_LAYERSETS1269 Void inferDbpSizeLayerSetZero( TComSPS* sps, Bool encoder );1270 #endif1271 1145 1272 1146 Void setPocLsbNotPresentFlag( Int i, Bool flag ) { m_pocLsbNotPresentFlag[i] = flag; } … … 1299 1173 1300 1174 Int getViewIndex ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX ); } 1301 #if H_MV_HLS10_AUX1302 1175 Int getAuxId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID ); } 1303 1176 Int getDependencyId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID ); } 1304 #endif1305 1177 Int getNumViews(); 1306 1178 1307 #if H_MV_HLS10_REF_PRED_LAYERS1308 1179 Bool getDependencyFlag( Int i, Int j ) { return m_dependencyFlag[i][j]; } 1309 #endif1310 1180 Int getNumDirectRefLayers( Int layerIdInNuh ) { return m_numDirectRefLayers[ layerIdInNuh ]; }; 1311 #if !H_MV_HLS10_REF_PRED_LAYERS1312 Int getRefLayerId ( Int layerIdInNuh, Int idx );;1313 #endif1314 1181 Int getNumRefLayers ( Int i ) { return m_numRefLayers[i]; } 1315 1182 Int getNumPredictedLayers ( Int i ) { return m_numPredictedLayers[i]; } 1316 1183 1317 #if !H_MV_HLS10_REF_PRED_LAYERS1318 Int getPredictedLayerId ( Int i, Int j ) { return m_predictedLayerId[i][j]; }1319 #else1320 1184 Int getIdRefLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers ( i )); return m_idRefLayer [i][j]; } 1321 1185 Int getIdPredictedLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; } 1322 1186 Int getIdDirectRefLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; } 1323 #endif1324 1187 Int getNumIndependentLayers ( ) { return m_numIndependentLayers; } 1325 1188 Int getNumLayersInTreePartition( Int i ) { return m_numLayersInTreePartition[i]; } … … 1328 1191 Int getNumLayerSets( ) { return getVpsNumLayerSetsMinus1() + 1 + getNumAddLayerSets(); }; 1329 1192 1330 #if H_MV_HLS10_ADD_LAYERSETS1331 1193 Int getFirstAddLayerSetIdx() { return getVpsNumLayerSetsMinus1() + 1; } 1332 1194 Int getLastAddLayerSetIdx() { return getFirstAddLayerSetIdx() + getNumAddLayerSets() - 1; } 1333 #endif1334 1195 Bool checkVPSExtensionSyntax(); 1335 1196 Int scalTypeToScalIdx ( ScalabilityType scalType ); 1336 1197 1337 #if H_MV_HLS10_PTL1338 1198 Int getProfileTierLevelIdxLen() { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); }; 1339 #else1340 Int getProfileLevelTierIdxLen() { return gCeilLog2( getVpsNumProfileTierLevelMinus1() + 1 ); };1341 #endif1342 1199 Int getVpsRepFormatIdxLen() { return gCeilLog2( getVpsNumRepFormatsMinus1() + 1 ); }; 1343 1200 … … 1350 1207 Void deriveLayerSetLayerIdList(); 1351 1208 1352 #if H_MV_HLS10_ADD_LAYERSETS1353 1209 Int olsIdxToLsIdx( Int i ) { return ( i < getNumLayerSets() ) ? i : getLayerSetIdxForOlsMinus1( i ) + 1 ; }; 1354 #else1355 Int olsIdxToLsIdx( Int i ) { return ( i <= getVpsNumLayerSetsMinus1() ) ? i : getLayerSetIdxForOlsMinus1( i ) + 1 ; };1356 #endif1357 1210 Void initTargetLayerIdLists ( ); 1358 1211 Void deriveTargetLayerIdList ( Int i ); … … 1363 1216 Int getOlsHighestOutputLayerId( Int i ) { return getTargetOptLayerIdList( i ).back(); }; 1364 1217 1365 #if H_MV_HLS10_ADD_LAYERSETS1366 1218 Void deriveAddLayerSetLayerIdList( Int i ); 1367 #endif1368 #if H_MV_HLS10_NESSECARY_LAYER1369 1219 Void deriveNecessaryLayerFlags( Int olsIdx );; 1370 1220 Int getNecessaryLayerFlag( Int i, Int j ) { AOF( i >= 0 && i < getNumOutputLayerSets() ); AOF( j >= 0 && j < getNumLayersInIdList( olsIdxToLsIdx( i ) ) ); return m_necessaryLayerFlag[i][j]; }; 1371 #endif1372 1221 1373 1222 Int getMaxSubLayersInLayerSetMinus1( Int i ); … … 1380 1229 1381 1230 // helpers 1382 #if !H_MV_HLS10_REF_PRED_LAYERS1383 Bool getInDirectDependencyFlag( Int depLayeridInVps, Int refLayeridInVps, Int depth = 0 );1384 #endif1385 #if !H_MV_HLS10_MAXNUMPICS1386 Int getMaxNumPics( Int layerId );1387 #endif1388 #if H_MV_HLS10_ADD_LAYERSETS1389 1231 Void printPTL(); 1390 1232 Void printLayerDependencies(); 1391 #if H_MV_HLS10_AUX1392 1233 Void printScalabilityId();; 1393 #endif1394 1234 Void printLayerSets();; 1395 1235 … … 1436 1276 xPrintArray( name, 1, idx2, numElemDim2, vec2, printNumber, false ); 1437 1277 } 1438 #endif1439 1278 1440 1279 … … 1470 1309 Int getSubPULog2Size(Int layerIdInVps) { return m_iSubPULog2Size[layerIdInVps]; } 1471 1310 Void setSubPULog2Size(Int layerIdInVps, Int u) { m_iSubPULog2Size[layerIdInVps] = u;} 1472 #if MTK_I0099_VPS_EX21473 1311 Int getSubPUMPILog2Size(Int layerIdInVps) { return m_iSubPUMPILog2Size[layerIdInVps]; } 1474 1312 Void setSubPUMPILog2Size(Int layerIdInVps, Int u) { m_iSubPUMPILog2Size[layerIdInVps] = u;} 1475 #else 1476 Int getSubPUMPILog2Size( ) { return m_iSubPUMPILog2Size; } 1477 Void setSubPUMPILog2Size( Int u ) { m_iSubPUMPILog2Size = u; } 1478 #endif 1479 #endif 1480 #endif 1481 #if MTK_I0099_VPS_EX2 1313 #endif 1314 #endif 1315 #if H_3D_QTLPC 1482 1316 Void setLimQtPredFlag ( Int layerIdInVps, Bool val ) { m_bLimQtPredFlag[ layerIdInVps ] = val; } 1483 1317 Bool getLimQtPredFlag ( Int layerIdInVps ) { return m_bLimQtPredFlag[layerIdInVps];} … … 1493 1327 Void setVpsDepthModesFlag( Int layerIdInVps, Bool val ) { m_vpsDepthModesFlag[ layerIdInVps ] = val; } 1494 1328 Bool getVpsDepthModesFlag( Int layerIdInVps ) { return m_vpsDepthModesFlag[ layerIdInVps ]; } 1495 #if SEPARATE_FLAG_I0085 1329 1496 1330 Void setIVPFlag( Int layerIdInVps, Bool val ) { m_bIVPFlag[ layerIdInVps ] = val; } 1497 1331 Bool getIVPFlag( Int layerIdInVps ) { return m_bIVPFlag[ layerIdInVps ]; } 1498 #endif 1499 1500 #if SEC_HLS_CLEANUP_I0100 1332 1501 1333 Bool getIvMvScalingFlag ( Int layerIdInVps ) { return m_ivMvScalingFlag[ layerIdInVps ]; } 1502 1334 Void setIvMvScalingFlag (Int layerIdInVps, Bool b ) { m_ivMvScalingFlag[ layerIdInVps ] = b; } 1503 #else1504 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag; }1505 Void setIvMvScalingFlag ( Bool b ) { m_ivMvScalingFlag = b; }1506 #endif1507 1335 1508 1336 #if H_3D_INTER_SDC … … 1530 1358 Bool m_bInterViewDltPredEnableFlag[ MAX_NUM_LAYERS ]; 1531 1359 1532 #if !FIX_TICKET_771533 Int m_iBitsPerDepthValue [ MAX_NUM_LAYERS ];1534 #endif1535 1360 Int m_iNumDepthmapValues [ MAX_NUM_LAYERS ]; 1536 1361 Int* m_iDepthValue2Idx [ MAX_NUM_LAYERS ]; … … 1559 1384 UInt getDepthViewBitDepth() { return m_uiDepthViewBitDepth; } 1560 1385 1561 #if !FIX_TICKET_771562 Int getBitsPerDepthValue( Int layerIdInVps ) { return getUseDLTFlag(layerIdInVps)?m_iBitsPerDepthValue[layerIdInVps]:g_bitDepthY; }1563 #endif1564 1386 Int getNumDepthValues( Int layerIdInVps ) { return getUseDLTFlag(layerIdInVps)?m_iNumDepthmapValues[layerIdInVps]:((1 << g_bitDepthY)-1); } 1565 1387 Int depthValue2idx( Int layerIdInVps, Pel value ) { return getUseDLTFlag(layerIdInVps)?m_iDepthValue2Idx[layerIdInVps][value]:value; } 1566 #if RWTH_DLT_CLIP_I00571567 1388 Pel idx2DepthValue( Int layerIdInVps, UInt uiIdx ) { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][ClipY(uiIdx)]:uiIdx; } 1568 #else1569 Pel idx2DepthValue( Int layerIdInVps, UInt uiIdx ) { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }1570 #endif1571 1389 Void setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 ); 1572 #if H_3D_DELTA_DLT1573 1390 Int* idx2DepthValue( Int layerIdInVps ) { return m_iIdx2DepthValue[layerIdInVps]; } 1574 1391 Void getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum ); 1575 1392 Void setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTIn, UInt uiDeltaDLTInNum ); 1576 #endif1577 1393 }; 1578 1394 #endif … … 1833 1649 Bool m_useAMP; 1834 1650 1835 #if !MTK_I0099_VPS_EX21836 #if H_3D_QTLPC1837 Bool m_bUseQTL;1838 Bool m_bUsePC;1839 #endif1840 #endif1841 1651 // Parameter 1842 1652 Int m_bitDepthY; … … 1880 1690 TComVPS* m_pcVPS; 1881 1691 // SPS 1882 #if H_MV_HLS10_MULTILAYERSPS1883 1692 Int m_spsMaxSubLayersMinus1; 1884 1693 Int m_spsExtOrMaxSubLayersMinus1; 1885 #endif1886 1694 Bool m_spsExtensionPresentFlag; 1887 1695 … … 1901 1709 // SPS Extension 1902 1710 Bool m_interViewMvVertConstraintFlag; 1903 #if !H_MV_HLS10_PPS1904 Int m_numScaledRefLayerOffsets;1905 Int m_scaledRefLayerId [MAX_NUM_SCALED_REF_LAYERS];1906 Int m_scaledRefLayerLeftOffset [MAX_NUM_LAYERS];1907 Int m_scaledRefLayerTopOffset [MAX_NUM_LAYERS];1908 Int m_scaledRefLayerRightOffset [MAX_NUM_LAYERS];1909 Int m_scaledRefLayerBottomOffset[MAX_NUM_LAYERS];1910 #endif1911 1711 #endif 1912 1712 #if H_3D … … 2012 1812 #if H_MV 2013 1813 UInt getSpsMaxSubLayersMinus1() { return ( m_uiMaxTLayers - 1); } 2014 #if H_MV_HLS10_MULTILAYERSPS2015 1814 Void setSpsMaxSubLayersMinus1( UInt val ) { setMaxTLayers( val + 1 ); } 2016 #endif2017 1815 #endif 2018 1816 … … 2047 1845 TComPTL* getPTL() { return &m_pcPTL; } 2048 1846 #if H_MV 2049 #if H_MV_HLS10_MULTILAYERSPS2050 1847 Void setSpsExtOrMaxSubLayersMinus1( Int val ) { m_spsExtOrMaxSubLayersMinus1 = val; } 2051 1848 Int getSpsExtOrMaxSubLayersMinus1( ) { return m_spsExtOrMaxSubLayersMinus1; } … … 2053 1850 2054 1851 Bool getMultiLayerExtSpsFlag() { return ( getLayerId() != 0 && getSpsExtOrMaxSubLayersMinus1() == 7 ); } 2055 #endif2056 1852 Void inferSpsMaxDecPicBufferingMinus1( TComVPS* vps, Int targetOptLayerSetIdx, Int currLayerId, Bool encoder ); 2057 1853 … … 2092 1888 Bool getInterViewMvVertConstraintFlag() { return m_interViewMvVertConstraintFlag;} 2093 1889 2094 #if !H_MV_HLS10_PPS2095 Void setNumScaledRefLayerOffsets( Int val ) { m_numScaledRefLayerOffsets = val; }2096 Int getNumScaledRefLayerOffsets( ) { return m_numScaledRefLayerOffsets; }2097 2098 Void setScaledRefLayerId( Int i, Int val ) { m_scaledRefLayerId[i] = val; }2099 Int getScaledRefLayerId( Int i ) { return m_scaledRefLayerId[i]; }2100 2101 Void setScaledRefLayerLeftOffset( Int j, Int val ) { m_scaledRefLayerLeftOffset[j] = val; }2102 Int getScaledRefLayerLeftOffset( Int j ) { return m_scaledRefLayerLeftOffset[j]; }2103 2104 Void setScaledRefLayerTopOffset( Int j, Int val ) { m_scaledRefLayerTopOffset[j] = val; }2105 Int getScaledRefLayerTopOffset( Int j ) { return m_scaledRefLayerTopOffset[j]; }2106 2107 Void setScaledRefLayerRightOffset( Int j, Int val ) { m_scaledRefLayerRightOffset[j] = val; }2108 Int getScaledRefLayerRightOffset( Int j ) { return m_scaledRefLayerRightOffset[j]; }2109 2110 Void setScaledRefLayerBottomOffset( Int j, Int val ) { m_scaledRefLayerBottomOffset[j] = val; }2111 Int getScaledRefLayerBottomOffset( Int j ) { return m_scaledRefLayerBottomOffset[j]; }2112 #endif2113 1890 // Inference 2114 1891 … … 2119 1896 Void checkRpsMaxNumPics( TComVPS* vps, Int currLayerId ); 2120 1897 2121 #endif2122 #if !MTK_I0099_VPS_EX22123 #if H_3D_QTLPC2124 Void setUseQTL( Bool b ) { m_bUseQTL = b; }2125 Bool getUseQTL() { return m_bUseQTL; }2126 Void setUsePC ( Bool b ) { m_bUsePC = b; }2127 Bool getUsePC () { return m_bUsePC; }2128 #endif2129 1898 #endif 2130 1899 #if H_MV … … 2201 1970 2202 1971 Bool m_loopFilterAcrossTilesEnabledFlag; 2203 Intm_uniformSpacingFlag;2204 Int m_iNumColumnsMinus1;2205 UInt* m_puiColumnWidth;2206 Int m_iNumRowsMinus1;2207 UInt* m_puiRowHeight;2208 2209 Int m_ iNumSubstreams;1972 Bool m_uniformSpacingFlag; 1973 Int m_numTileColumnsMinus1; 1974 Int m_numTileRowsMinus1; 1975 std::vector<Int> m_tileColumnWidth; 1976 std::vector<Int> m_tileRowHeight; 1977 1978 Int m_numSubstreams; 2210 1979 2211 1980 Int m_signHideFlag; … … 2304 2073 Bool getDependentSliceSegmentsEnabledFlag() const { return m_dependentSliceSegmentsEnabledFlag; } 2305 2074 Void setDependentSliceSegmentsEnabledFlag(Bool val) { m_dependentSliceSegmentsEnabledFlag = val; } 2306 Bool getTilesEnabledFlag() const { return m_tilesEnabledFlag; }2307 Void setTilesEnabledFlag(Bool val) { m_tilesEnabledFlag = val; }2308 2075 Bool getEntropyCodingSyncEnabledFlag() const { return m_entropyCodingSyncEnabledFlag; } 2309 2076 Void setEntropyCodingSyncEnabledFlag(Bool val) { m_entropyCodingSyncEnabledFlag = val; } 2310 Void setUniformSpacingFlag ( Bool b ) { m_uniformSpacingFlag = b; } 2311 Bool getUniformSpacingFlag () { return m_uniformSpacingFlag; } 2312 Void setNumColumnsMinus1 ( Int i ) { m_iNumColumnsMinus1 = i; } 2313 Int getNumColumnsMinus1 () { return m_iNumColumnsMinus1; } 2314 Void setColumnWidth ( UInt* columnWidth ) 2315 { 2316 if( m_uniformSpacingFlag == 0 && m_iNumColumnsMinus1 > 0 ) 2317 { 2318 m_puiColumnWidth = new UInt[ m_iNumColumnsMinus1 ]; 2319 2320 for(Int i=0; i<m_iNumColumnsMinus1; i++) 2321 { 2322 m_puiColumnWidth[i] = columnWidth[i]; 2323 } 2324 } 2325 } 2326 UInt getColumnWidth (UInt columnIdx) { return *( m_puiColumnWidth + columnIdx ); } 2327 Void setNumRowsMinus1( Int i ) { m_iNumRowsMinus1 = i; } 2328 Int getNumRowsMinus1() { return m_iNumRowsMinus1; } 2329 Void setRowHeight ( UInt* rowHeight ) 2330 { 2331 if( m_uniformSpacingFlag == 0 && m_iNumRowsMinus1 > 0 ) 2332 { 2333 m_puiRowHeight = new UInt[ m_iNumRowsMinus1 ]; 2334 2335 for(Int i=0; i<m_iNumRowsMinus1; i++) 2336 { 2337 m_puiRowHeight[i] = rowHeight[i]; 2338 } 2339 } 2340 } 2341 UInt getRowHeight (UInt rowIdx) { return *( m_puiRowHeight + rowIdx ); } 2342 Void setNumSubstreams(Int iNumSubstreams) { m_iNumSubstreams = iNumSubstreams; } 2343 Int getNumSubstreams() { return m_iNumSubstreams; } 2077 2078 Void setTilesEnabledFlag (Bool val) { m_tilesEnabledFlag = val; } 2079 Bool getTilesEnabledFlag () const { return m_tilesEnabledFlag; } 2080 Void setTileUniformSpacingFlag (Bool b) { m_uniformSpacingFlag = b; } 2081 Bool getTileUniformSpacingFlag () const { return m_uniformSpacingFlag; } 2082 Void setNumTileColumnsMinus1 (Int i) { m_numTileColumnsMinus1 = i; } 2083 Int getNumTileColumnsMinus1 () const { return m_numTileColumnsMinus1; } 2084 Void setTileColumnWidth (const std::vector<Int>& columnWidth ) { m_tileColumnWidth = columnWidth; } 2085 UInt getTileColumnWidth (UInt columnIdx) const { return m_tileColumnWidth[columnIdx]; } 2086 Void setNumTileRowsMinus1 (Int i) { m_numTileRowsMinus1 = i; } 2087 Int getTileNumRowsMinus1 () const { return m_numTileRowsMinus1; } 2088 Void setTileRowHeight (const std::vector<Int>& rowHeight) { m_tileRowHeight = rowHeight; } 2089 UInt getTileRowHeight (UInt rowIdx) const { return m_tileRowHeight[rowIdx]; } 2090 2091 Void setNumSubstreams (Int numSubstreams) { m_numSubstreams = numSubstreams; } 2092 Int getNumSubstreams () { return m_numSubstreams; } 2344 2093 2345 2094 Void setSignHideFlag( Int signHideFlag ) { m_signHideFlag = signHideFlag; } … … 2537 2286 2538 2287 Bool m_enableTMVPFlag; 2539 #if I0044_SLICE_TMVP2288 #if H_MV 2540 2289 Bool m_availableForTMVPRefFlag; 2541 2290 #endif … … 2599 2348 UInt m_aiDDDShift [MAX_NUM_LAYERS]; 2600 2349 #endif 2601 #if MTK_SINGLE_DEPTH_MODE_I00952350 #if H_3D_SINGLE_DEPTH 2602 2351 Bool m_bApplySingleDepthMode; 2603 2352 #endif 2604 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX2353 #if H_3D_IC 2605 2354 Int *m_aICEnableCandidate; 2606 2355 Int *m_aICEnableNum; … … 2676 2425 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2677 2426 #endif 2678 #if MTK_SINGLE_DEPTH_MODE_I00952427 #if H_3D_SINGLE_DEPTH 2679 2428 Void setApplySingleDepthMode( Bool b ) { m_bApplySingleDepthMode = b; } 2680 2429 Bool getApplySingleDepthMode() { return m_bApplySingleDepthMode; } … … 2877 2626 Void setEnableTMVPFlag ( Bool b ) { m_enableTMVPFlag = b; } 2878 2627 Bool getEnableTMVPFlag () { return m_enableTMVPFlag;} 2879 #if I0044_SLICE_TMVP2628 #if H_MV 2880 2629 Void setAvailableForTMVPRefFlag ( Bool b ) { m_availableForTMVPRefFlag = b; } 2881 2630 Bool getAvailableForTMVPRefFlag () { return m_availableForTMVPRefFlag;} … … 2917 2666 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; }; 2918 2667 Bool getVpsDepthModesFlag () { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2919 #if SEPARATE_FLAG_I00852920 2668 Bool getIVPFlag () { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2921 2669 #endif 2922 #endif 2923 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX 2670 #if H_3D_IC 2924 2671 Void setICEnableCandidate( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }; 2925 2672 Void setICEnableNum( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }; -
trunk/source/Lib/TLibCommon/TComWedgelet.cpp
r1039 r1084 68 68 m_uiHeight ( rcWedge.m_uiHeight ), 69 69 m_pbPattern( (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) ) ) 70 #if SHARP_DMM1_I011071 70 ,m_pbScaledPattern( g_wedgePattern ) 72 #endif73 71 { 74 72 ::memcpy( m_pbPattern, rcWedge.m_pbPattern, sizeof(Bool) * (m_uiWidth * m_uiHeight)); … … 88 86 89 87 m_pbPattern = (Bool*)xMalloc( Bool, (m_uiWidth * m_uiHeight) ); 90 #if SHARP_DMM1_I011091 88 m_pbScaledPattern = g_wedgePattern; 92 #endif93 89 } 94 90 … … 187 183 switch( m_eWedgeRes ) 188 184 { 189 #if !SHARP_DMM1_I0110190 case( DOUBLE_PEL ): { uiTempBlockSize = m_uiWidth; uhXs = (m_uhXs<<1); uhYs = (m_uhYs<<1); uhXe = (m_uhXe<<1); uhYe = (m_uhYe<<1); } break;191 #endif192 185 case( FULL_PEL ): { uiTempBlockSize = m_uiWidth; uhXs = m_uhXs; uhYs = m_uhYs; uhXe = m_uhXe; uhYe = m_uhYe; } break; 193 186 case( HALF_PEL ): { uiTempBlockSize = (m_uiWidth<<1); uhXs = m_uhXs; uhYs = m_uhYs; uhXe = m_uhXe; uhYe = m_uhYe; } break; 194 187 } 195 196 #if !SHARP_DMM1_I0110197 if( m_eWedgeRes == DOUBLE_PEL) // adjust line-end for DOUBLE_PEL resolution198 {199 if( m_uhOri == 1 ) { uhXs = uiTempBlockSize-1; }200 if( m_uhOri == 2 ) { uhXe = uiTempBlockSize-1; uhYs = uiTempBlockSize-1; }201 if( m_uhOri == 3 ) { uhYe = uiTempBlockSize-1; }202 if( m_uhOri == 4 ) { uhYe = uiTempBlockSize-1; }203 if( m_uhOri == 5 ) { uhXs = uiTempBlockSize-1; }204 }205 #endif206 188 207 189 Bool* pbTempPattern = new Bool[ (uiTempBlockSize * uiTempBlockSize) ]; … … 233 215 switch( m_eWedgeRes ) 234 216 { 235 #if !SHARP_DMM1_I0110236 case( DOUBLE_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;237 #endif238 217 case( FULL_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break; 239 218 case( HALF_PEL ): // sub-sampling by factor 2 … … 327 306 } 328 307 329 #if SHARP_DMM1_I0110330 308 Bool* TComWedgelet::getScaledPattern(UInt uiDstSize) 331 309 { 332 Bool *pbSrcPat = this->getPattern(); 333 UInt uiSrcSize = this->getStride(); 334 335 Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]); 336 assert(scale>=0); 337 for (Int y=0; y<uiDstSize; y++) 338 { 339 for (Int x=0; x<uiDstSize; x++) 340 { 341 Int srcX = x>>scale; 342 Int srcY = y>>scale; 343 m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ]; 344 } 345 } 346 return m_pbScaledPattern; 347 } 348 #endif 310 Bool *pbSrcPat = this->getPattern(); 311 UInt uiSrcSize = this->getStride(); 312 313 Int scale = (g_aucConvertToBit[uiDstSize] - g_aucConvertToBit[uiSrcSize]); 314 assert(scale>=0); 315 for (Int y=0; y<uiDstSize; y++) 316 { 317 for (Int x=0; x<uiDstSize; x++) 318 { 319 Int srcX = x>>scale; 320 Int srcY = y>>scale; 321 m_pbScaledPattern[y*uiDstSize + x] = pbSrcPat[ srcY*uiSrcSize + srcX ]; 322 } 323 } 324 return m_pbScaledPattern; 325 } 349 326 350 327 TComWedgeNode::TComWedgeNode() -
trunk/source/Lib/TLibCommon/TComWedgelet.h
r1039 r1084 58 58 #define DIM_NO_IDX MAX_UINT 59 59 60 #if HS_DMM_SIGNALLING_I012061 60 __inline UInt getDimType ( Int intraMode ) 62 61 { … … 64 63 return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; 65 64 } 66 #else67 __inline UInt getDimType ( Int intraMode ) { Int dimType = (intraMode-DIM_OFFSET)/2; return (dimType >= 0 && dimType < DIM_NUM_TYPE) ? (UInt)dimType : DIM_NO_IDX; }68 #endif69 65 __inline Bool isDimMode ( Int intraMode ) { return (getDimType( intraMode ) < DIM_NUM_TYPE); } 70 #if !HS_DMM_SIGNALLING_I012071 __inline Bool isDimDeltaDC( Int intraMode ) { return (isDimMode( intraMode ) && ((intraMode-DIM_OFFSET)%2) == 1); }72 #endif73 66 #endif 74 67 … … 79 72 enum WedgeResolution 80 73 { 81 #if !SHARP_DMM1_I011082 DOUBLE_PEL,83 #endif84 74 FULL_PEL, 85 75 HALF_PEL … … 106 96 107 97 Bool* m_pbPattern; 108 #if SHARP_DMM1_I0110109 98 Bool* m_pbScaledPattern; 110 #endif111 99 112 100 Void xGenerateWedgePattern(); … … 134 122 Bool getIsCoarse() { return m_bIsCoarse; } 135 123 UInt getAng () { return m_uiAng; } 136 #if SHARP_DMM1_I0110137 124 Bool* getScaledPattern(UInt uiWidth); 138 #endif139 125 140 126 Void setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false ); -
trunk/source/Lib/TLibCommon/TComYuv.cpp
r1039 r1084 689 689 UInt iSrc1Stride = pcYuvSrc1->getStride(); 690 690 UInt iDstStride = getStride(); 691 #if QC_I0129_ARP_FIX692 691 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthY; 693 692 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 694 #endif695 693 for ( y = uiHeight-1; y >= 0; y-- ) 696 694 { … … 700 698 if( bClip ) 701 699 { 702 #if QC_I0129_ARP_FIX703 700 pDst[x] = ClipY( ( pDst[x] + iOffSet ) >> iIFshift ); 704 #else705 pDst[x] = ClipY( pDst[x] );706 #endif707 701 } 708 702 } … … 727 721 UInt iSrc1Stride = pcYuvSrc1->getCStride(); 728 722 UInt iDstStride = getCStride(); 729 #if QC_I0129_ARP_FIX 723 730 724 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthC; 731 725 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 732 #endif 726 733 727 for ( y = uiHeight-1; y >= 0; y-- ) 734 728 { … … 739 733 if( bClip ) 740 734 { 741 #if QC_I0129_ARP_FIX742 735 pDstU[x] = ClipC( ( pDstU[x] + iOffSet ) >> iIFshift ); 743 736 pDstV[x] = ClipC( ( pDstV[x] + iOffSet ) >> iIFshift ); 744 #else745 pDstU[x] = ClipC( pDstU[x] );746 pDstV[x] = ClipC( pDstV[x] );747 #endif748 737 } 749 738 } … … 761 750 { 762 751 subtractARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight ); 763 #if SHARP_ARP_CHROMA_I0104 752 764 753 if (uiWidth > 8) 765 #endif 766 subtractARPChroma( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 ); 754 subtractARPChroma( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 ); 767 755 } 768 756 … … 823 811 { 824 812 multiplyARPLuma( uiAbsPartIdx , uiWidth , uiHeight , dW ); 825 #if SHARP_ARP_CHROMA_I0104 813 826 814 if (uiWidth > 8) 827 #endif 828 multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW ); 815 multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW ); 829 816 } 830 817 -
trunk/source/Lib/TLibCommon/TypeDef.h
r1066 r1084 111 111 // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053 112 112 // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085 113 113 // QC_I0051_ARP_SIMP 114 // SHARP_ARP_CHROMA_I0104 115 // MTK_I0072_IVARP_SCALING_FIX 114 116 115 117 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 … … 123 125 // SEC_IC_ARP_SIG_G0072, Disabling IC when ARP is enabled, option 1 in JCT3V-G0072, part 2 in JCT3V-G0121 124 126 // MTK_LOW_LATENCY_IC_ENCODING_H0086 Low-latency IC encoding in JCT3V-H0086 125 126 #define MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX 1 // Remove the global variables used in JCT3V-H0086 127 128 129 #define SEC_IC_NEIGHBOR_CLIP_I0080 1 // Clipping of neighboring sample position, JCT3V-I0080 130 127 // MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX 1 // Remove the global variables used in JCT3V-H0086 128 // SEC_IC_NEIGHBOR_CLIP_I0080 // Clipping of neighboring sample position, JCT3V-I0080 131 129 132 130 #if H_3D_NBDV … … 177 175 // SHARP_SIMPLE_MERGE_H0062 Restrict 3D-HEVC merge cand in small PUs 178 176 // MTK_DIS_SPBIP8X4_H0205 Disable bi-prediction for 8x4 and 4x8 sub PU and remove the SPIVMP 2Nx2N restriction 179 // SEC_ADAPT_DISABLE_IVMP Disalbing IVMP merge candidates when IC is enabled, JCT3V-H0070 180 181 #define SEC_SIMP_SHIFTED_DV_I0086 1 // Simplification of Shifted DV candidate, JCT3V-I0086 177 // SEC_ADAPT_DISABLE_IVMP Disabling IVMP merge candidates when IC is enabled, JCT3V-H0070 178 // SEC_SIMP_SHIFTED_DV_I0086 Simplification of Shifted DV candidate, JCT3V-I0086 179 180 182 181 183 182 #define H_3D_TMVP 1 // QC_TMVP_C0047 … … 222 221 // SEC_NO_RESI_DLT_H0105 223 222 // MTK_DLT_CODING_FIX_H0091 224 225 #define MTK_SINGLE_DEPTH_MODE_I0095 1 // Single depth mode proposed in JCT3V-I0095 226 #if MTK_SINGLE_DEPTH_MODE_I0095 227 #define MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE 2 // size of the sample candidate list 228 #endif 229 230 #define H_3D_FIX_UNINIT 1 // Fix uninitialized flag 223 // HS_DMM_SIGNALLING_I0120 224 // SHARP_DMM1_I0110 // LUT size reduction for DMM1 proposed in JCT3V-I0110 225 // FAST_SDC_OFFSET_DECISION_I0084 226 // SEPARATE_FLAG_I0085 227 // H_3D_DELTA_DLT 228 // RWTH_DLT_CLIP_I0057 1 229 230 231 232 #define H_3D_SINGLE_DEPTH 1 // Single depth mode proposed in JCT3V-I0095 233 234 231 235 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding 232 236 // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding … … 245 249 // MTK_DBBP_SIGNALING_H0094 246 250 // H_3D_FIX_DBBP_IVMP Fix . Enable IVMP is always disabled, when DBBP is enabled. The original intention is to disable Sub-PU IVMP when DBBP is enabled, not to disable IVMP itself. 247 248 #define SEC_DBBP_EXPLICIT_SIG_I0077 1 // Remove the partition derivation and signal dbbp_flag only when the partion mode is 2NxN/Nx2N, JCT3V-I0077 249 #define SEC_DBBP_DISALLOW_8x8_I0078 1 // Disallow DBBP in 8x8 CU, JCT3V-I0078 250 #define SHARP_DBBP_SIMPLE_FLTER_I0109 1 // Simple condition and one dimensional dilter for DBBP 251 #define SEC_DBBP_DMM4_THRESHOLD_I0076 1 // Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 251 // SEC_DBBP_EXPLICIT_SIG_I0077 1 // Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077 252 // Disallow DBBP in 8x8 CU, JCT3V-I0078 253 // SHARP_DBBP_SIMPLE_FLTER_I0109 1 // Simple condition and one dimensional filter for DBBP 254 // SEC_DBBP_DMM4_THRESHOLD_I0076 Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 252 255 253 256 … … 256 259 #define H_3D_FCO 0 // Flexible coding order for 3D 257 260 #if H_3D_FCO 258 #define LGE_FCO_I01161259 #endif 260 261 #define SCU_HS_FAST_INTRA_SDC_I0123 1261 #define H_3D_FCO 1 262 #endif 263 264 #define H_3D_FAST_INTRA_SDC 1 // I0123 262 265 263 266 // OTHERS … … 271 274 #endif 272 275 273 #define MTK_I0099_VPS_EX2 1 ///< JCT3V-I0099, sub-PU size signaling and lim_qt_pred_flag in VPS extension 2274 #define MTK_I0099_FIX 1 ///< Fix the problem of removing encoder only QTL275 276 276 // Rate Control 277 277 #define KWU_FIX_URQ 1 278 278 #define KWU_RC_VIEWRC_E0227 0 ///< JCT3V-E0227, view-wise target bitrate allocation 279 279 #define KWU_RC_MADPRED_E0227 0 ///< JCT3V-E0227, inter-view MAD prediction 280 281 #define SEC_VPS_CLEANUP_I0090 1282 #define SEC_HLS_CLEANUP_I0100 1283 284 #define H_3D_FIX_64BIT_SHIFT 1285 280 #endif // H_3D 286 281 … … 292 287 293 288 // Fixes 294 #define FIX_TICKET_79 1 // Unused VSP code 295 #define FIX_TICKET_75 1 // Bi-pred restriction bug in VSP 296 #define FIX_TICKET_68 1 // MV clipping bug in the sub-PU MPI default MV generation 297 #define FIX_TICKET_71 1 // IC parameters is meaningless in HTM when no training samples are available 298 #define FIX_TICKET_77 1 // Unused variable m_iBitsPerDepthValue 299 #define FIX_TICKET_76 1 // unused functions 300 #define FIX_TICKET_62 1 // buffer overflow for print 301 #define FIX_TICKET_61 1 // layerIdsInSets size check 289 290 ///// ***** SINGLE DEPTH MODE ********* 291 #if H_3D_SINGLE_DEPTH 292 #define SINGLE_DEPTH_MODE_CAND_LIST_SIZE 2 // size of the sample candidate list 293 #endif 302 294 303 295 ///// ***** VIEW SYNTHESIS OPTIMIZAION ********* … … 308 300 #define H_3D_VSO_RM_ASSERTIONS 0 // Output VSO assertions 309 301 #define H_3D_VSO_SYNTH_DIST_OUT 0 // Output of synthesized view distortion instead of depth distortion in encoder output 310 #define H_3D_VSO_FIX 1 // This fix should be enabled after verification311 302 #endif 312 303 … … 321 312 #if H_3D_ARP 322 313 #define H_3D_ARP_WFNR 3 323 #define QC_I0129_ARP_FIX 1324 #define QC_I0051_ARP_SIMP 1325 #define SHARP_ARP_CHROMA_I0104 1326 #define MTK_I0072_IVARP_SCALING_FIX 1327 314 #endif 328 315 329 316 ///// ***** DEPTH INTRA MODES ********* 330 317 #if H_3D_DIM 318 // HHI_DMM4_ENC_I0066 331 319 #define H_3D_DIM_DMM 1 // Depth Modeling Modes 332 320 #define H_3D_DIM_SDC 1 // Simplified Depth Coding method 333 321 #define H_3D_DIM_DLT 1 // Depth Lookup Table 334 #define HS_DMM_SIGNALLING_I0120 1 335 #define SHARP_DMM1_I0110 1 // LUT size reduction for DMM1 proposed in JCT3V-I0110 336 #define FIX_WARNING 1 // fix narrowing conversion of NumPocStCurr0,NumPocStCurr1 at TComSlice.cpp 337 #define FAST_SDC_OFFSET_DECISION_I0084 1 338 #define SEPARATE_FLAG_I0085 1 339 340 #if H_3D_DIM_DLT 341 #define H_3D_DELTA_DLT 1 342 #define RWTH_DLT_CLIP_I0057 1 343 #endif 322 344 323 #define H_3D_DIM_ENC 1 // Depth Intra encoder optimizations, includes: 345 324 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 346 325 // LG_ZEROINTRADEPTHRESI_A0087 347 #define HHI_DMM4_ENC_I0066 1348 326 #endif 349 327 ///// ***** VIEW SYNTHESIS PREDICTION ********* … … 370 348 #if H_3D_DBBP 371 349 #define DBBP_INVALID_SHORT (-4) 372 #define RWTH_DBBP_PACK_MODE SIZE_2NxN350 #define DBBP_PACK_MODE SIZE_2NxN 373 351 #endif 374 352 … … 389 367 ///////////////////////////////////////////////////////////////////////////////// 390 368 // TBD: Check if integration is necessary. 391 392 393 394 //Added by Qualcomm for HLS 395 #define DISCARDABLE_PIC_RPS 1 ///< JCT3V-G0131: Inter-layer RPS and temporal RPS should not contain picture with discardable_flag equal to 1 396 #define VPS_MISC_UPDATES 1 ///< Misc updates:JCT3V-0240, 397 #define NON_REF_NAL_TYPE_DISCARDABLE 1 ///< JCT3V-G0031: If discardable picture is a non-IRAP, it must be a non-referenced sub-layer picture 398 #define INFERENCE_POC_MSB_VAL_PRESENT 1 ///< JCT3V-H0042: poc_msb_val_present_flag shall be equal to 0 when slice_header_extension_length is (inferred to be ) equal to 0 399 #define INFERENCE_POC_RESET_INFO_PRESENT 1 ///< JCT3V-H0042: Infer the value of poc_reset_info_present_flag to be equal to 0 when no pps extension / pps extension for multilayer. 400 #define I0044_SLICE_TMVP 1 ///< JCT3V-I0044: Regarding slice_temporal_mvp_enabled_flag 401 #define I0045_BR_PR_ADD_LAYER_SET 1 ///< JCT3V-I0045: Signalling of bit-rate and picture rate for additional layer set 402 #define I0045_VPS_VUI_VST_PARAMS 1 ///< JCT3V-I0045: Related to signalling of VST parameters of the base layer. 403 404 405 #define H_MV_HLS10_GEN 0 // General changes (not tested) 406 407 #define H_MV_HLS10_AUX 1 // Auxiliary pictures 408 #define H_MV_HLS10_GEN_FIX 1 409 #define H_MV_FIX_LOOP_GOPSIZE 1 410 #define H_MV_FIX_SUB_LAYERS_MAX_MINUS1 1 411 412 #define H_MV_HLS10_GEN_VSP_CONF_WIN 1 // VPS conformance window 413 #define H_MV_HLS10_GEN_VSP_BASE_LAYER_AVAIL 1 // vps_base_layer_available 414 #define H_MV_HLS10_REF_PRED_LAYERS 1 // reference and predicted layer derivation 415 #define H_MV_HLS10_NESSECARY_LAYER 1 // necessary layers 416 #define H_MV_HLS10_ADD_LAYERSETS 1 // additional layer sets 417 #define H_MV_HLS10_DBP_SIZE 1 // dpb size syntax structure 418 #define H_MV_HLS10_MAXNUMPICS 1 // constraint on number of pictures in rps 419 #define H_MV_HLS10_PTL 1 // profile tier level 420 #define H_MV_HLS10_PTL_FIX 1 // profile tier level fix 421 #define H_MV_HLS10_PTL_INBL_FIX 1 // profile tier level fix 422 #define H_MV_HLS10_PTL_INFER_FIX 1 // fix inference ptl 423 #define H_MV_HLS10_MULTILAYERSPS 1 // multilayer SPS extension 424 #define H_MV_HLS10_VPS_VUI 1 // vsp vui 425 #define H_MV_HLS10_VPS_VUI_BSP 1 // vsp vui bsp 426 #define H_MV_HLS10_PPS 1 // PPS modifications 427 428 #define H_MV_HLS10_VPS_VUI_BSP_STORE 0 // Currently bsp vui bsp hrd parameters are not stored, some dynamic memory allocation with upper bounds is required. 429 430 369 #define H_MV_HLS_PTL_LIMITS 0 431 370 #define H_MV_HLS7_GEN 0 // General changes (not tested) 432 371 #define H_MV_ALIGN_HM_15 1 433 372 434 373 // POC … … 452 391 //#define H_MV_HLS_7_SEI_P0123_25 0 // (SEI/P0123/Alpha channel info) #25 Add alpha channel information SEI message Decision: Adopt. Constrain the bit depth indicated to be equal to the coded bit depth of the aux picture. 453 392 454 // Auxiliary picture related455 //#define H_MV_HLS_8_AUX_NODOC_40 0 // #40 (AUX /NODOC/primary pic) Clarify that an auxiliary picture can be associated with more than one primary picture. Consider if the language associating an alpha auxiliary picture with a primary picture in the semantics of dimension_id[ ][ ] near the AuxId derivation could be moved to the alpha SEI message.456 //#define H_MV_HLS_8_AUX_Q0081_2 0 // #2 (AUX /Q0081/primary) Decision: Remove the constraint that an alpha picture must be accompanied by a primary picture.457 //#define H_MV_HLS_8_AUX_Q0078_44 0 // #44 (AUX /Q0078/concepts Auxiliary picture concepts:458 //#define H_MV_HLS_8_AUX_Q0078_39 0 // #39 (AUX /Q0078/conformance): mechanism for signaling a profile/tier/level conformance point for auxiliary pictures459 460 // Profiles461 //#define H_MV_HLS_8_PRO_NODOC_50 0 // #50 (PROF /NODOC/Monochrome) Add Monochrome 8-bit profile462 //#define H_MV_HLS_8_PRO_NODOC_31 0 // #31 (PROF /NODOC/Profile constraint) Add a profile constraint to the Scalable Main, Scalable Main 10, and Stereo Main profiles against allowing layers with duplicate values of DependencyId (or ViewOrderIdx) when AuxId equal to 0.463 //#define H_MV_HLS_8_PRO_H0126_45 0 // #45 (PROF /H0126/Stereo main) Phrasing used in specifying the Stereo Main profile.464 //#define H_MV_HLS_8_PRO_Q0160_33 0 // #33 (PROF /Q0160/alt_output_flag) v2: Add constraint to stereo main profile that it must contain exactly two texture views, and add a note to state that the constraint implies a restriction that alt_output_flag equal to 0.465 466 393 // DPB 467 394 //#define H_MV_HLS_8_HRD_Q0102_09 0 // #9 (HRD /Q0102/NoOutputOfPriorPicsFlag) It was suggested that also the separate_colour_plane_flag should affect inference of NoOutputOfPriorPicsFlag. Decision (Ed.): Agreed (affects RExt text). … … 491 418 #define SAO_SGN_FUNC 1 492 419 420 #define TILE_SIZE_CHECK 1 421 493 422 #define FIX1172 1 ///< fix ticket #1172 494 423 … … 506 435 #define MAX_NESTING_NUM_LAYER 64 507 436 508 #if H_MV _HLS10_VPS_VUI_BSP437 #if H_MV 509 438 #define MAX_VPS_NUM_HRD_PARAMETERS 1024 439 #else 440 #define MAX_VPS_NUM_HRD_PARAMETERS 1 441 #endif 442 #if H_MV 510 443 #define MAX_NUM_SUB_LAYERS 7 511 444 #define MAX_NUM_SIGNALLED_PARTITIONING_SCHEMES 16 512 #else 513 #define MAX_VPS_NUM_HRD_PARAMETERS 1 514 #endif 515 445 #endif 516 446 #define MAX_VPS_OP_SETS_PLUS1 1024 517 447 #if H_MV 518 #if H_MV_HLS10_ADD_LAYERSETS519 448 #define MAX_VPS_NUM_ADD_LAYER_SETS 1024 520 #endif521 449 #define MAX_VPS_NUH_LAYER_ID_PLUS1 63 522 450 #define MAX_NUM_SCALABILITY_TYPES 16 … … 533 461 #define MAX_VPS_PROFILE_TIER_LEVEL 64 534 462 #define MAX_VPS_ADD_OUTPUT_LAYER_SETS 1024 535 #if H_MV_HLS10_ADD_LAYERSETS536 463 #define MAX_VPS_OUTPUTLAYER_SETS ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 + MAX_VPS_OP_SETS_PLUS1 ) 537 #else538 #define MAX_VPS_OUTPUTLAYER_SETS ( MAX_VPS_ADD_OUTPUT_LAYER_SETS + MAX_VPS_OP_SETS_PLUS1 )539 #endif540 464 #define MAX_NUM_VIDEO_SIGNAL_INFO 16 541 465 #define MAX_NUM_SCALED_REF_LAYERS MAX_NUM_LAYERS-1 542 #if !H_MV_HLS10_VPS_VUI_BSP543 #define MAX_NUM_BSP_HRD_PARAMETERS 100 ///< Maximum value is actually not specified544 #define MAX_NUM_BITSTREAM_PARTITIONS 100 ///< Maximum value is actually not specified545 #define MAX_NUM_BSP_SCHED_COMBINATION 100 ///< Maximum value is actually not specified546 #define MAX_SUB_STREAMS 1024547 #endif548 466 #else 549 467 #define MAX_NUM_LAYER_IDS 64 … … 1016 934 MAINSTILLPICTURE = 3, 1017 935 #if H_MV 1018 #if H_MV_HLS10_PTL1019 936 MULTIVIEWMAIN = 6, 1020 937 #if H_3D 1021 938 MAIN3D = 8, 1022 #endif1023 #else1024 MAINSTEREO = 4,1025 MAINMULTIVIEW = 5,1026 #if H_3D1027 MAIN3D = 6,1028 #endif1029 939 #endif 1030 940 #endif … … 1069 979 #endif 1070 980 VIEW_ORDER_INDEX = 1, 1071 #if H_MV_HLS10_AUX1072 981 DEPENDENCY_ID = 2, 1073 982 AUX_ID = 3, 1074 #endif1075 983 }; 1076 984 #endif
Note: See TracChangeset for help on using the changeset viewer.