Changeset 1124 in 3DVCSoftware for trunk/source/Lib/TLibCommon
- Timestamp:
- 10 Nov 2014, 12:22:20 (10 years ago)
- Location:
- trunk/source/Lib/TLibCommon
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibCommon/TComDataCU.cpp
r1084 r1124 154 154 #endif 155 155 156 #if !LGE_DDD_REMOVAL_J0042_J0030 156 157 #if H_3D_DDD 157 158 m_pucDisparityDerivedDepth = NULL; 158 159 m_pbUseDDD = NULL; 160 #endif 159 161 #endif 160 162 } … … 298 300 // create pattern memory 299 301 m_pcPattern = (TComPattern*)xMalloc(TComPattern, 1); 300 302 303 #if !LGE_DDD_REMOVAL_J0042_J0030 301 304 #if H_3D_DDD 302 305 m_pucDisparityDerivedDepth = (UChar* )xMalloc( UChar, uiNumPartition); 303 306 m_pbUseDDD = (Bool* ) xMalloc( Bool, uiNumPartition); 304 307 #endif 308 #endif 305 309 306 310 // create motion vector fields … … 386 390 #endif 387 391 392 #if !LGE_DDD_REMOVAL_J0042_J0030 388 393 #if H_3D_DDD 389 394 if ( m_pucDisparityDerivedDepth ) { xFree(m_pucDisparityDerivedDepth); m_pucDisparityDerivedDepth = NULL; } 390 395 if ( m_pbUseDDD ) { xFree(m_pbUseDDD); m_pbUseDDD = NULL; } 396 #endif 391 397 #endif 392 398 … … 518 524 #endif 519 525 526 #if !LGE_DDD_REMOVAL_J0042_J0030 520 527 #if H_3D_DDD 521 528 m_pucDisparityDerivedDepth[ui] = pcFrom->m_pucDisparityDerivedDepth[ui]; 522 529 m_pbUseDDD[ui] = pcFrom->m_pbUseDDD[ui]; 523 530 #endif 524 531 #endif 525 532 m_puhWidth [ui] = pcFrom->getWidth(ui); 526 533 m_puhHeight [ui] = pcFrom->getHeight(ui); … … 604 611 #endif 605 612 613 #if !LGE_DDD_REMOVAL_J0042_J0030 606 614 #if H_3D_DDD 607 615 memset( m_pucDisparityDerivedDepth + firstElement, 0, numElements * sizeof( *m_pucDisparityDerivedDepth ) ); 608 616 memset( m_pbUseDDD + firstElement, 0, numElements * sizeof( *m_pbUseDDD ) ); 617 #endif 609 618 #endif 610 619 … … 784 793 #endif 785 794 795 #if !LGE_DDD_REMOVAL_J0042_J0030 786 796 #if H_3D_DDD 787 797 m_pucDisparityDerivedDepth[ui] = 0; 788 798 m_pbUseDDD[ui] = 0; 799 #endif 789 800 #endif 790 801 … … 893 904 #endif 894 905 906 #if !LGE_DDD_REMOVAL_J0042_J0030 895 907 #if H_3D_DDD 896 908 memset( m_pucDisparityDerivedDepth, 0, iSizeInUchar ); 897 909 memset( m_pbUseDDD, 0, iSizeInBool ); 910 #endif 898 911 #endif 899 912 … … 990 1003 #endif 991 1004 1005 #if !LGE_DDD_REMOVAL_J0042_J0030 992 1006 #if H_3D_DDD 993 1007 m_pucDisparityDerivedDepth[ui] = pcCU->m_pucDisparityDerivedDepth[uiPartOffset+ui]; 994 1008 m_pbUseDDD[ui] = pcCU->m_pbUseDDD[uiPartOffset+ui]; 1009 #endif 995 1010 #endif 996 1011 … … 1139 1154 #endif 1140 1155 1156 #if !LGE_DDD_REMOVAL_J0042_J0030 1141 1157 #if H_3D_DDD 1142 1158 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiPart; 1143 1159 m_pbUseDDD = pcCU->getUseDDD() + uiPart; 1160 #endif 1144 1161 #endif 1145 1162 … … 1292 1309 #endif 1293 1310 1311 #if !LGE_DDD_REMOVAL_J0042_J0030 1294 1312 #if H_3D_DDD 1295 1313 m_pucDisparityDerivedDepth = pcCU->getDDDepth() + uiAbsPartIdx; 1296 1314 m_pbUseDDD = pcCU->getUseDDD() + uiAbsPartIdx; 1315 #endif 1297 1316 #endif 1298 1317 … … 1360 1379 memcpy( m_puhCbf[1] + uiOffset, pcCU->getCbf(TEXT_CHROMA_U), iSizeInUchar ); 1361 1380 memcpy( m_puhCbf[2] + uiOffset, pcCU->getCbf(TEXT_CHROMA_V), iSizeInUchar ); 1362 1381 1382 #if !LGE_DDD_REMOVAL_J0042_J0030 1363 1383 #if H_3D_DDD 1364 1384 memcpy( m_pucDisparityDerivedDepth + uiOffset, pcCU->getDDDepth(), iSizeInUchar ); 1365 1385 memcpy( m_pbUseDDD + uiOffset, pcCU->getUseDDD(), iSizeInBool ); 1386 #endif 1366 1387 #endif 1367 1388 … … 1464 1485 #endif 1465 1486 1487 #if !LGE_DDD_REMOVAL_J0042_J0030 1466 1488 #if H_3D_DDD 1467 1489 memcpy( rpcCU->getDDDepth() + m_uiAbsIdxInLCU, m_pucDisparityDerivedDepth, iSizeInUchar ); 1468 1490 memcpy( rpcCU->getUseDDD() + m_uiAbsIdxInLCU, m_pbUseDDD, iSizeInBool ); 1491 #endif 1469 1492 #endif 1470 1493 … … 1600 1623 memcpy( rpcCU->getCbf(TEXT_CHROMA_U) + uiPartOffset, m_puhCbf[1], iSizeInUchar ); 1601 1624 memcpy( rpcCU->getCbf(TEXT_CHROMA_V) + uiPartOffset, m_puhCbf[2], iSizeInUchar ); 1602 1625 1626 #if !LGE_DDD_REMOVAL_J0042_J0030 1603 1627 #if H_3D_DDD 1604 1628 memcpy( rpcCU->getDDDepth() + uiPartOffset, m_pucDisparityDerivedDepth, iSizeInUchar ); 1605 1629 memcpy( rpcCU->getUseDDD() + uiPartOffset, m_pbUseDDD, iSizeInBool ); 1630 #endif 1606 1631 #endif 1607 1632 … … 1671 1696 } 1672 1697 1698 #if !LGE_DDD_REMOVAL_J0042_J0030 1673 1699 #if H_3D_DDD 1674 1700 Void TComDataCU::setDDDepthSubParts ( UChar ucDDD, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) … … 1687 1713 } 1688 1714 1715 #endif 1689 1716 #endif 1690 1717 … … 2398 2425 Bool depthRefineFlag = false; 2399 2426 #if H_3D_NBDV_REF 2427 #if HHI_TOOL_PARAMETERS_I2_J0107 2428 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 2429 #else 2400 2430 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 2431 #endif 2401 2432 #endif // H_3D_NBDV_REF 2402 2433 … … 3309 3340 inline Bool TComDataCU::xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount) 3310 3341 { 3342 #if HHI_TOOL_PARAMETERS_I2_J0107 3343 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getViewSynthesisPredFlag( ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1) 3344 #else 3311 3345 if ( m_pcSlice->getViewIndex() == 0 || !m_pcSlice->getVPS()->getViewSynthesisPredFlag( m_pcSlice->getLayerIdInVps() ) || m_pcSlice->getIsDepth() || pDInfo->m_aVIdxCan == -1) 3346 #endif 3312 3347 { 3313 3348 return false; … … 3864 3899 ) 3865 3900 { 3901 #if !SEC_A1_BASED_VSP_J0039 3866 3902 UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx; 3903 #endif 3867 3904 #if H_3D_IV_MERGE 3868 3905 //////////////////////////// … … 3877 3914 UChar tmpDir; 3878 3915 3916 #if !LGE_DDD_REMOVAL_J0042_J0030 3879 3917 #if H_3D_DDD 3880 3918 m_iUseDDDCandIdx = -1; 3919 #endif 3881 3920 #endif 3882 3921 … … 3919 3958 deriveLeftBottomIdxGeneral ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3920 3959 #if H_3D 3960 #if HHI_TOOL_PARAMETERS_I2_J0107 3961 Bool bMPIFlag = getSlice()->getMpiFlag(); 3962 #else 3921 3963 Bool bMPIFlag = getSlice()->getVPS()->getMPIFlag( getSlice()->getLayerIdInVps() ); 3964 #endif 3922 3965 Bool bIsDepth = getSlice()->getIsDepth(); 3923 3966 #endif … … 3979 4022 3980 4023 // above 4024 #if !SEC_A1_BASED_VSP_J0039 3981 4025 UInt uiAbovePartIdx = 0; 3982 4026 TComDataCU* pcCUAbove = 0; 3983 4027 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT ); 4028 #endif 3984 4029 3985 4030 if (getAvailableFlagB1()) … … 3988 4033 #if H_3D_VSP 3989 4034 , 4035 #if SEC_A1_BASED_VSP_J0039 4036 false 4037 #else 3990 4038 ( ( ( getAddr() - pcCUAbove->getAddr() ) == 0) && (pcCUAbove->getVSPFlag(uiAbovePartIdx) != 0) 3991 4039 #if H_3D_IC … … 4000 4048 ) 4001 4049 #endif 4050 #endif 4002 4051 , false 4003 4052 ); … … 4006 4055 4007 4056 // above right 4057 #if !SEC_A1_BASED_VSP_J0039 4008 4058 UInt uiAboveRightPartIdx = 0; 4009 4059 TComDataCU* pcCUAboveRight = 0; 4010 4060 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT ); 4061 #endif 4011 4062 4012 4063 if (getAvailableFlagB0()) … … 4015 4066 #if H_3D_VSP 4016 4067 , 4068 #if SEC_A1_BASED_VSP_J0039 4069 false 4070 #else 4017 4071 ( ( ( getAddr() - pcCUAboveRight->getAddr() ) == 0) && (pcCUAboveRight->getVSPFlag(uiAboveRightPartIdx) != 0) 4018 4072 #if H_3D_IC … … 4027 4081 ) 4028 4082 #endif 4083 #endif 4029 4084 , false 4030 4085 ); … … 4033 4088 4034 4089 // left bottom 4090 #if !SEC_A1_BASED_VSP_J0039 4035 4091 UInt uiLeftBottomPartIdx = 0; 4036 4092 TComDataCU* pcCULeftBottom = getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB ); 4093 #endif 4037 4094 4038 4095 if (getAvailableFlagA0()) … … 4041 4098 #if H_3D_VSP 4042 4099 , 4100 #if SEC_A1_BASED_VSP_J0039 4101 false 4102 #else 4043 4103 (pcCULeftBottom->getVSPFlag(uiLeftBottomPartIdx) != 0 4044 4104 #if H_3D_IC … … 4053 4113 ) 4054 4114 #endif 4115 #endif 4055 4116 , false 4056 4117 ); … … 4059 4120 4060 4121 // above left 4122 #if !SEC_A1_BASED_VSP_J0039 4061 4123 UInt uiAboveLeftPartIdx = 0; 4062 4124 TComDataCU* pcCUAboveLeft = 0; 4063 4125 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr ); 4126 #endif 4064 4127 4065 4128 if (getAvailableFlagB2()) … … 4068 4131 #if H_3D_VSP 4069 4132 , 4133 #if SEC_A1_BASED_VSP_J0039 4134 false 4135 #else 4070 4136 ( ( ( getAddr() - pcCUAboveLeft->getAddr() ) == 0) && (pcCUAboveLeft->getVSPFlag(uiAboveLeftPartIdx) != 0) 4071 4137 #if H_3D_IC … … 4079 4145 #endif 4080 4146 ) 4147 #endif 4081 4148 #endif 4082 4149 , false … … 4276 4343 } 4277 4344 } 4345 #if !LGE_DDD_REMOVAL_J0042_J0030 4278 4346 #if H_3D_DDD 4279 4347 if( m_pcSlice->getIsDepth() && m_pcSlice->getViewIndex() != 0 && bMPIFlag ) … … 4360 4428 } 4361 4429 #endif 4430 #endif 4362 4431 ///////////////////////////////////////////////////////////////// 4363 4432 //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC Candidates ///// … … 4372 4441 Int ivCandDir [4] = {0, 0, 0, 0}; 4373 4442 4443 #if HHI_TOOL_PARAMETERS_I2_J0107 4444 Bool ivMvPredFlag = getSlice()->getIvMvPredFlag(); 4445 #else 4374 4446 Bool ivMvPredFlag = getSlice()->getVPS()->getIvMvPredFlag( getSlice()->getLayerIdInVps() ); 4447 #endif 4375 4448 4376 4449 ivMvPredFlag &= (nPSW + nPSH > 12); … … 4455 4528 4456 4529 #if H_3D 4530 #if SEC_A1_BASED_VSP_J0039 4531 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable; 4532 #else 4457 4533 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable + m_mergCands[MRG_B0].m_bAvailable; 4534 #endif 4458 4535 #else 4459 4536 //left … … 4554 4631 #endif 4555 4632 4633 #if !LGE_DDD_REMOVAL_J0042_J0030 4556 4634 #if H_3D_DDD 4557 4635 // early termination … … 4561 4639 } 4562 4640 #endif 4641 #endif 4642 4643 #if SEC_A1_BASED_VSP_J0039 4644 #if H_3D_VSP 4645 ///////////////////////////////////////////////// 4646 //////// VIEW SYNTHESIS PREDICTION (VSP) //////// 4647 ///////////////////////////////////////////////// 4648 if (iCount<getSlice()->getMaxNumMergeCand()) 4649 { 4650 if ( 4651 (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) && 4652 #if H_3D_IC 4653 !bICFlag && 4654 #endif 4655 #if H_3D_ARP 4656 !bARPFlag && 4657 #endif 4658 #if H_3D 4659 (nPSW + nPSH > 12) && 4660 #endif 4661 #if H_3D_DBBP 4662 !bDBBPFlag && 4663 #endif 4664 xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) ) 4665 { 4666 return; 4667 } 4668 4669 // early termination 4670 if (iCount == getSlice()->getMaxNumMergeCand()) 4671 { 4672 return; 4673 } 4674 #endif 4675 #if H_3D_VSP 4676 } 4677 #endif 4678 4679 #if H_3D 4680 iCount += m_mergCands[MRG_B0].m_bAvailable; 4681 #endif 4682 #endif 4683 4563 4684 4564 4685 #if H_3D_IV_MERGE … … 4615 4736 #endif // H_3D_IV_MERGE 4616 4737 4738 #if !SEC_A1_BASED_VSP_J0039 4617 4739 #if H_3D_VSP 4618 4740 ///////////////////////////////////////////////// … … 4648 4770 #if H_3D 4649 4771 } 4772 #endif 4650 4773 #endif 4651 4774 … … 5893 6016 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5894 6017 6018 #if HHI_TOOL_PARAMETERS_I2_J0107 6019 if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 6020 #else 5895 6021 if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 6022 #endif 5896 6023 { 5897 6024 rcMv = cColMv.scaleMv( iScale ); … … 6076 6203 6077 6204 TComMv cMv; 6205 #if LGE_DEFAULT_DV_J0046 6206 if ( getSlice()->getDefaultRefViewIdxAvailableFlag() ) 6207 { 6208 Int iViewIdx = getSlice()->getDefaultRefViewIdx(); 6209 pDisp->m_aVIdxCan = iViewIdx; 6210 #if HHI_TOOL_PARAMETERS_I2_J0107 6211 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; 6212 #else 6213 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ 1 << ( getSlice()->getSPS()->getBitDepthY() - 1 ) ]; 6214 #endif 6215 6216 cMv.setHor(iDisp); 6217 cMv.setVer(0); 6218 pDisp->m_acNBDV = cMv; 6219 pDisp->m_aVIdxCan = iViewIdx; 6220 6221 return true; 6222 } 6223 return false; 6224 #else 6078 6225 #if MTK_I0093 6079 6226 Int iDisp = getSlice()->getDepthToDisparityB( 0 )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepthY() - 1 )) ]; … … 6087 6234 6088 6235 return true; 6236 #endif 6089 6237 } 6090 6238 #endif … … 6118 6266 } 6119 6267 break; 6268 #if !SINGLE_DEPTH_SIMP_J0115 6120 6269 case 2: // Above 6121 6270 if(yP != 0) … … 6139 6288 } 6140 6289 break; 6290 #endif 6141 6291 default: 6142 6292 break; … … 6177 6327 } 6178 6328 #if H_3D_NBDV_REF 6329 #if HHI_TOOL_PARAMETERS_I2_J0107 6330 if( !m_pcSlice->getDepthRefinementFlag( ) ) 6331 #else 6179 6332 if( !m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ) ) 6333 #endif 6180 6334 { 6181 6335 bDepthRefine = false; … … 6338 6492 pDInfo->m_acNBDV = defaultDV; 6339 6493 6494 #if LGE_DEFAULT_DV_J0046 6495 if (getSlice()->getDefaultRefViewIdxAvailableFlag()) 6496 { 6497 pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx(); 6498 6499 #if H_3D_NBDV_REF 6500 TComPic* picDepth = NULL; 6501 #if H_3D_FCO_VSP_DONBDV_E0163 6502 picDepth = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); 6503 if ( picDepth->getPicYuvRec() != NULL ) 6504 { 6505 defaultDV.setZero(); 6506 } 6507 else // Go back with virtual depth 6508 { 6509 picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx()); 6510 } 6511 6512 assert(picDepth != NULL); 6513 #else 6514 picDepth = getSlice()->getIvPic( true, getSlice()->getDefaultRefViewIdx()); 6515 #endif 6516 if (picDepth && bDepthRefine) 6517 { 6518 estimateDVFromDM(getSlice()->getDefaultRefViewIdx(), uiPartIdx, picDepth, uiPartAddr, &defaultDV ); // from base view 6519 } 6520 pDInfo->m_acDoNBDV = defaultDV; 6521 #endif 6522 #if LGE_SIMP_DISP_AVAIL_J0041 6523 return true; 6524 #endif 6525 } 6526 #else 6340 6527 Int valid = 0; 6341 6528 Int viewIndex = 0; … … 6389 6576 pDInfo->m_acDoNBDV = defaultDV; 6390 6577 #endif 6391 } 6578 #if LGE_SIMP_DISP_AVAIL_J0041 6579 return true; 6580 #endif 6581 } 6582 #endif 6392 6583 return false; 6393 6584 } … … 6643 6834 Bool depthRefineFlag = false; 6644 6835 #if H_3D_NBDV_REF 6836 #if HHI_TOOL_PARAMETERS_I2_J0107 6837 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6838 #else 6645 6839 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 6840 #endif 6646 6841 #endif // H_3D_NBDV_REF 6647 6842 … … 6701 6896 Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight) 6702 6897 { 6898 #if HHI_TOOL_PARAMETERS_I2_J0107 6899 Int iSubPUSize = ( getSlice()->getIsDepth() ? getSlice()->getMpiSubPbSize() : getSlice()->getSubPbSize() ); 6900 #else 6703 6901 Int iSubPUSize = 1<<getSlice()->getVPS()->getSubPULog2Size(getSlice()->getLayerId()); 6704 6902 if( getSlice()->getIsDepth() ) … … 6706 6904 iSubPUSize = 1<<getSlice()->getVPS()->getSubPUMPILog2Size(getSlice()->getLayerId()); 6707 6905 } 6906 #endif 6708 6907 6709 6908 iNumSPInOneLine = iPUWidth/iSubPUSize; 6909 #if !HS_SP_SIMP_J0066 6710 6910 iNumSPInOneLine = iNumSPInOneLine < 1 ? 1: iNumSPInOneLine; 6911 #endif 6711 6912 Int iNumSPInOneColumn = iPUHeight/iSubPUSize; 6913 #if !HS_SP_SIMP_J0066 6712 6914 iNumSPInOneColumn = iNumSPInOneColumn < 1 ? 1: iNumSPInOneColumn; 6915 #else 6916 iNumSPInOneLine = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneLine; 6917 iNumSPInOneColumn = (iPUHeight % iSubPUSize != 0 || iPUWidth % iSubPUSize != 0 ) ? 1 : iNumSPInOneColumn; 6918 #endif 6713 6919 iNumSP = iNumSPInOneLine * iNumSPInOneColumn; 6714 6920 … … 6784 6990 Bool depthRefineFlag = false; 6785 6991 #if H_3D_NBDV_REF 6992 #if HHI_TOOL_PARAMETERS_I2_J0107 6993 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6994 #else 6786 6995 depthRefineFlag = m_pcSlice->getVPS()->getDepthRefinementFlag( m_pcSlice->getLayerIdInVps() ); 6996 #endif 6787 6997 #endif // H_3D_NBDV_REF 6788 6998 -
trunk/source/Lib/TLibCommon/TComDataCU.h
r1084 r1124 227 227 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 228 228 #endif 229 229 #if !LGE_DDD_REMOVAL_J0042_J0030 230 230 #if H_3D_DDD 231 231 UChar* m_pucDisparityDerivedDepth; … … 234 234 UChar m_ucDDTmpDepth; 235 235 #endif 236 236 #endif 237 237 #if H_3D_IV_MERGE 238 238 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; … … 743 743 UInt getCoefScanIdx(UInt uiAbsPartIdx, UInt uiWidth, Bool bIsLuma, Bool bIsIntra); 744 744 745 #if !LGE_DDD_REMOVAL_J0042_J0030 745 746 #if H_3D_DDD 746 747 UChar* getDDDepth () { return m_pucDisparityDerivedDepth; } … … 759 760 Int getUseDDDCandIdx(){ return m_iUseDDDCandIdx;} 760 761 762 #endif 761 763 #endif 762 764 -
trunk/source/Lib/TLibCommon/TComPrediction.cpp
r1084 r1124 1158 1158 pcCU->clipMv(cMv); 1159 1159 1160 #if !LGE_DDD_REMOVAL_J0042_J0030 1160 1161 #if H_3D_DDD 1161 1162 if( pcCU->getUseDDD( uiPartAddr ) ) … … 1193 1194 //return; 1194 1195 } else 1196 #endif 1195 1197 #endif 1196 1198 #if H_3D_ARP … … 1949 1951 Int a, b, i, j; 1950 1952 const Int iShift = IC_CONST_SHIFT; 1953 1951 1954 xGetLLSICPrediction( cu, mv, refPic, a, b, TEXT_CHROMA_U ); // Cb 1952 1955 for ( i = 0; i < cxHeight; i++ ) … … 2187 2190 x += pRef[j]; 2188 2191 y += pRec[j]; 2189 xx += (pRef[j] * pRef[j])>>precShift; 2190 xy += (pRef[j] * pRec[j])>>precShift; 2192 #if LGE_CHROMA_IC_J0050_J0034 2193 if ( eType == TEXT_LUMA ) 2194 { 2195 #endif 2196 xx += (pRef[j] * pRef[j])>>precShift; 2197 xy += (pRef[j] * pRec[j])>>precShift; 2198 #if LGE_CHROMA_IC_J0050_J0034 2199 } 2200 #endif 2191 2201 } 2192 2202 iCountShift += g_aucConvertToBit[ uiWidth ] + 1; … … 2217 2227 x += pRef[0]; 2218 2228 y += pRec[0]; 2219 2220 xx += (pRef[0] * pRef[0])>>precShift; 2221 xy += (pRef[0] * pRec[0])>>precShift; 2222 2229 #if LGE_CHROMA_IC_J0050_J0034 2230 if ( eType == TEXT_LUMA ) 2231 { 2232 #endif 2233 xx += (pRef[0] * pRef[0])>>precShift; 2234 xy += (pRef[0] * pRec[0])>>precShift; 2235 #if LGE_CHROMA_IC_J0050_J0034 2236 } 2237 #endif 2223 2238 pRef += iRefStride*2; 2224 2239 pRec += iRecStride*2; … … 2234 2249 } 2235 2250 2251 #if LGE_CHROMA_IC_J0050_J0034 2252 if ( eType != TEXT_LUMA ) 2253 { 2254 a = 32; 2255 b = ( y - x + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift; 2256 } 2257 else 2258 { 2259 #endif 2236 2260 xy += xx >> IC_REG_COST_SHIFT; 2237 2261 xx += xx >> IC_REG_COST_SHIFT; … … 2275 2299 } 2276 2300 } 2301 #if LGE_CHROMA_IC_J0050_J0034 2302 } 2303 #endif 2277 2304 } 2278 2305 #endif -
trunk/source/Lib/TLibCommon/TComRom.cpp
r1084 r1124 362 362 const UChar g_dmm1TabIdxBits[6] = 363 363 { //2x2 4x4 8x8 16x16 32x32 64x64 364 #if MTK_DMM_SIM_J0035 365 0, 7, 10, 9, 9, 13 }; 366 #else 364 367 0, 7, 10, 11, 11, 13 }; 368 #endif 365 369 366 370 const UChar g_dmm3IntraTabIdxBits[6] = … … 763 767 } 764 768 769 #if MTK_DMM_SIM_J0035 770 for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1)) 771 { 772 for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) ) 773 { 774 cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) ); 775 addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList ); 776 } 777 } 778 #else 765 779 for( Int iK = 0; iK < uiBlockSize; iK++ ) 766 780 { … … 771 785 } 772 786 } 787 #endif 773 788 } 774 789 -
trunk/source/Lib/TLibCommon/TComSlice.cpp
r1084 r1124 179 179 } 180 180 #endif 181 #if LGE_DEFAULT_DV_J0046 182 m_iDefaultRefViewIdx = -1; 183 m_bDefaultRefViewIdxAvailableFlag = false; 184 #endif 181 185 } 182 186 … … 1874 1878 m_vpsBaseLayerInternalFlag = true; 1875 1879 m_vpsBaseLayerAvailableFlag = true; 1880 1881 #if H_MV_FIX_NUM_VIEWS 1882 m_numViews = 0; 1883 #endif 1884 1876 1885 #endif 1877 1886 … … 1909 1918 m_repFormatIdxPresentFlag = false; 1910 1919 m_maxOneActiveRefLayerFlag = false; 1920 #if H_MV_HLS_FIX 1921 m_vpsPocLsbAlignedFlag = false; 1922 #endif 1911 1923 m_directDepTypeLenMinus2 = 0; 1912 1924 … … 1915 1927 m_vpsNonVuiExtensionLength = 0; 1916 1928 m_splittingFlag = false; 1929 1917 1930 1918 1931 for( Int i = 0; i < MAX_NUM_SCALABILITY_TYPES; i++ ) … … 1943 1956 m_layerIdInNuh [i] = ( i == 0 ) ? 0 : -1; 1944 1957 m_numDirectRefLayers[i] = 0; 1958 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1959 #if H_3D 1960 m_numRefListLayers[i] = 0; 1961 #endif 1962 #endif 1945 1963 m_vpsRepFormatIdx [i] = 0; 1946 1964 m_pocLsbNotPresentFlag[i] = 0; … … 1950 1968 #if H_3D 1951 1969 m_viewIndex [i] = -1; 1970 #if !HHI_TOOL_PARAMETERS_I2_J0107 1952 1971 m_vpsDepthModesFlag [i] = false; 1953 1972 m_ivMvScalingFlag[i] = true; 1954 1973 m_bIVPFlag [i] = false; 1974 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1975 m_singleDepthModeFlag[ i ] = false; 1976 #endif 1977 #endif 1955 1978 #endif 1956 1979 … … 1961 1984 m_dependencyFlag [i][j] = false; 1962 1985 m_idDirectRefLayer[i][j] = -1; 1986 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1987 #if H_3D 1988 m_idRefListLayer[i][j] = -1; 1989 #endif 1990 #endif 1963 1991 m_idPredictedLayer[i][j] = -1; 1964 1992 m_idRefLayer [i][j] = -1; … … 1971 1999 } 1972 2000 #if H_3D_ARP 2001 #if !HHI_TOOL_PARAMETERS_I2_J0107 1973 2002 m_uiUseAdvResPred[i] = 0; 1974 2003 m_uiARPStepNum[i] = 1; 1975 2004 #endif 2005 #endif 1976 2006 } 1977 2007 m_vpsVUI = new TComVPSVUI; 1978 2008 m_dpbSize = new TComDpbSize; 1979 2009 2010 #if !HHI_TOOL_PARAMETERS_I2_J0107 1980 2011 #if H_3D 1981 2012 for( Int i = 0; i < MAX_NUM_LAYERS; i++ ) … … 2010 2041 } 2011 2042 #endif 2043 #endif 2044 2012 2045 #endif 2013 2046 } … … 2099 2132 Int iNuhLId = getLayerIdInNuh( i ); 2100 2133 Int d = 0; 2134 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2135 #if H_3D 2136 Int l = 0; 2137 #endif 2138 #endif 2101 2139 Int r = 0; 2102 2140 Int p = 0; 2141 2103 2142 for( Int j = 0; j <= getMaxLayersMinus1(); j++ ) 2104 2143 { … … 2108 2147 m_idDirectRefLayer[iNuhLId][d++] = jNuhLid; 2109 2148 } 2149 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2150 #if H_3D 2151 if( getDirectDependencyFlag( i , j ) && ( getDepthId( iNuhLId ) == getDepthId( jNuhLid ) )) 2152 { 2153 m_idRefListLayer [iNuhLId][l++] = jNuhLid; 2154 } 2155 #endif 2156 #endif 2157 2110 2158 if( getDependencyFlag( i , j ) ) 2111 2159 { … … 2118 2166 } 2119 2167 m_numDirectRefLayers[ iNuhLId ] = d; 2168 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2169 #if H_3D 2170 m_numRefListLayers[ iNuhLId ] = l; 2171 #endif 2172 #endif 2173 2120 2174 m_numRefLayers [ iNuhLId ] = r; 2121 2175 m_numPredictedLayers[ iNuhLId ] = p; … … 2152 2206 2153 2207 2208 #if H_MV_FIX_NUM_VIEWS 2209 Void TComVPS::initNumViews( ) 2210 { 2211 m_numViews = 1; 2212 #if HHI_VIEW_ID_LIST_I5_J0107 2213 #if H_3D 2214 AOF( m_viewOIdxList.size() == 0 ); 2215 m_viewOIdxList.push_back( 0 ); 2216 #endif 2217 #endif 2218 2219 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) 2220 { 2221 Int lId = getLayerIdInNuh( i ); 2222 if( i > 0 ) 2223 { 2224 Bool newViewFlag = true; 2225 for( Int j = 0; j < i; j++ ) 2226 { 2227 if( getViewOrderIdx( lId ) == getViewOrderIdx( getLayerIdInNuh( j ) ) ) 2228 { 2229 newViewFlag = false; 2230 } 2231 } 2232 if( newViewFlag ) 2233 { 2234 m_numViews++; 2235 #if HHI_VIEW_ID_LIST_I5_J0107 2236 #if H_3D 2237 m_viewOIdxList.push_back( getViewOrderIdx( lId ) ); 2238 #endif 2239 #endif 2240 } 2241 } 2242 } 2243 } 2244 #endif 2245 2246 2154 2247 Int TComVPS::getScalabilityId( Int layerIdInVps, ScalabilityType scalType ) 2155 2248 { … … 2310 2403 } 2311 2404 2405 #if !H_MV_FIX_NUM_VIEWS 2312 2406 Int TComVPS::getNumViews() 2313 2407 { … … 2321 2415 } 2322 2416 } 2323 2324 2417 return numViews; 2325 2418 } 2419 #endif 2326 2420 2327 2421 … … 2562 2656 xPrintArray( "IdRefLayer" , getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefLayers, m_idRefLayer, true ); 2563 2657 xPrintArray( "IdDirectRefLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numDirectRefLayers, m_idDirectRefLayer, true ); 2658 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2659 #if H_3D 2660 xPrintArray( "IdRefListLayer", getMaxLayersMinus1() + 1, m_layerIdInNuh, m_numRefListLayers, m_idRefListLayer, true ); 2661 #endif 2662 #endif 2663 2564 2664 std::cout << std::endl; 2565 2665 } … … 2984 3084 i++; 2985 3085 } 3086 #if SHARP_DLT_SIMP_J0029 3087 iIdxUp = bFound ? iIdxDown + 1 : iNumDepthValues-1; 3088 #else 2986 3089 // iterate over indices to find upper closest depth 2987 3090 i = iNumDepthValues-2; … … 3000 3103 // assert monotony 3001 3104 assert(iIdxDown<=iIdxUp); 3105 #endif 3002 3106 3003 3107 // assign closer depth value/idx … … 3580 3684 { 3581 3685 TComVPS* vps = getVPS(); 3686 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3687 #if H_3D 3688 Int refLayerIdx = vps->getLayerIdInVps( vps->getIdRefListLayer( getLayerId(), i ) ); 3689 #else 3582 3690 Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) ); 3583 3691 #endif 3692 #else 3693 Int refLayerIdx = vps->getLayerIdInVps( vps->getIdDirectRefLayer( getLayerId(), i ) ); 3694 #endif 3695 3696 #if H_MV_FIX_REF_LAYER_PIC_FLAG 3697 Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >= getTLayer() && ( getTLayer() == 0 || 3698 vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() )); 3699 #else 3584 3700 Bool refLayerPicFlag = ( vps->getSubLayersVpsMaxMinus1( refLayerIdx ) >= getTLayer() ) && ( getTLayer() == 0 ) && 3585 3701 ( vps->getMaxTidIlRefPicsPlus1( refLayerIdx, vps->getLayerIdInVps( getLayerId() )) > getTLayer() ); 3586 3702 #endif 3587 3703 return refLayerPicFlag; 3588 3704 } … … 3592 3708 Int refLayerPicIdc = -1; 3593 3709 Int curj = 0; 3710 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3711 #if H_3D 3712 for( Int i = 0; i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ ) 3713 #else 3594 3714 for( Int i = 0; i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ ) 3715 #endif 3716 #else 3717 for( Int i = 0; i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ ) 3718 #endif 3595 3719 { 3596 3720 if( getRefLayerPicFlag( i ) ) … … 3613 3737 { 3614 3738 Int numRefLayerPics = 0; 3739 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3740 #if H_3D 3741 for( Int i = 0; i < getVPS()->getNumRefListLayers( getLayerId()) ; i++ ) 3742 #else 3615 3743 for( Int i = 0; i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ ) 3744 #endif 3745 #else 3746 for( Int i = 0; i < getVPS()->getNumDirectRefLayers( getLayerId()) ; i++ ) 3747 #endif 3616 3748 { 3617 3749 numRefLayerPics += getRefLayerPicFlag( i ); … … 3638 3770 numActiveRefLayerPics = 0; 3639 3771 } 3772 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3773 #if H_3D 3774 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumRefListLayers( getLayerId() ) == 1 ) 3775 #else 3640 3776 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3777 #endif 3778 #else 3779 else if( getVPS()->getMaxOneActiveRefLayerFlag() || getVPS()->getNumDirectRefLayers( getLayerId() ) == 1 ) 3780 #endif 3641 3781 { 3642 3782 numActiveRefLayerPics = 1; … … 3651 3791 Int TComSlice::getRefPicLayerId( Int i ) 3652 3792 { 3793 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 3794 #if H_3D 3795 return getVPS()->getIdRefListLayer( getLayerId(), getInterLayerPredLayerIdc( i ) ); 3796 #else 3653 3797 return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) ); 3654 } 3798 #endif 3799 #else 3800 return getVPS()->getIdDirectRefLayer( getLayerId(), getInterLayerPredLayerIdc( i ) ); 3801 #endif 3802 } 3803 3804 #if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037 3805 Void TComSlice::setDefaultRefView( ) 3806 { 3807 setDefaultRefViewIdx( -1 ); 3808 setDefaultRefViewIdxAvailableFlag( false ); 3809 3810 Int valid = 0; 3811 Int DefaultRefViewIdx = -1; 3812 for( UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++ ) 3813 { 3814 for( Int iRefListId = 0; ( iRefListId < (isInterB() ? 2 : 1) ) && !isIntra() && valid == 0; iRefListId++ ) 3815 { 3816 RefPicList eRefPicList = RefPicList( iRefListId ); 3817 Int iNumRefPics = getNumRefIdx( eRefPicList ); 3818 for( Int i = 0; i < iNumRefPics; i++ ) 3819 { 3820 if(getPOC() == getRefPic( eRefPicList, i )->getPOC() && curViewIdx == getRefPic( eRefPicList, i )->getViewIndex()) 3821 { 3822 valid = 1; 3823 DefaultRefViewIdx = curViewIdx; 3824 break; 3825 } 3826 } 3827 } 3828 } 3829 if( valid ) 3830 { 3831 setDefaultRefViewIdx( DefaultRefViewIdx ); 3832 setDefaultRefViewIdxAvailableFlag( true ); 3833 } 3834 } 3835 #endif 3655 3836 3656 3837 #if H_3D_ARP … … 3658 3839 { 3659 3840 Bool tempRefPicInListsFlag = false; 3841 #if HHI_TOOL_PARAMETERS_I2_J0107 3842 if( !getIvResPredFlag() || this->isIRAP()) 3843 #else 3660 3844 if(!getVPS()->getUseAdvRP(getLayerId()) || this->isIRAP()) 3845 #endif 3661 3846 { 3662 3847 m_nARPStepNum = 0; … … 3686 3871 } 3687 3872 } 3873 #if SEC_ARP_VIEW_REF_CHECK_J0037 3874 tempRefPicInListsFlag = (getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0) && getDefaultRefViewIdxAvailableFlag(); 3875 #else 3688 3876 tempRefPicInListsFlag = getFirstTRefIdx(REF_PIC_LIST_0) >= 0 || getFirstTRefIdx(REF_PIC_LIST_1) >= 0; 3877 #endif 3878 #if HHI_TOOL_PARAMETERS_I2_J0107 3879 m_nARPStepNum = tempRefPicInListsFlag ? H_3D_ARP_WFNR : 0; 3880 #else 3689 3881 m_nARPStepNum = tempRefPicInListsFlag ? getVPS()->getARPStepNum(getLayerId()) : 0; 3882 #endif 3690 3883 } 3691 3884 … … 3869 4062 { 3870 4063 Bool setupLUT = false; 4064 4065 #if HHI_TOOL_PARAMETERS_I2_J0107 4066 setupLUT = setupLUT || getViewSynthesisPredFlag( ); 4067 #else 3871 4068 Int layerIdInVPS = getVPS()->getLayerIdInNuh( m_layerId ); 3872 3873 4069 #if H_3D_VSP 3874 4070 setupLUT = setupLUT || getVPS()->getViewSynthesisPredFlag( layerIdInVPS); 3875 4071 #endif 4072 #endif 3876 4073 3877 4074 #if H_3D_NBDV_REF 4075 #if HHI_TOOL_PARAMETERS_I2_J0107 4076 setupLUT = setupLUT || getDepthRefinementFlag( ); 4077 #else 3878 4078 setupLUT = setupLUT || getVPS()->getDepthRefinementFlag( layerIdInVPS ); 4079 #endif 3879 4080 #endif 3880 4081 3881 4082 #if H_3D_IV_MERGE 4083 #if HHI_TOOL_PARAMETERS_I2_J0107 4084 setupLUT = setupLUT || ( getIvMvPredFlag() && getIsDepth() ); 4085 #else 3882 4086 setupLUT = setupLUT || ( getVPS()->getIvMvPredFlag(layerIdInVPS ) && getIsDepth() ); 3883 4087 #endif 3884 4088 #endif 4089 4090 #if !LGE_DDD_REMOVAL_J0042_J0030 3885 4091 #if H_3D_DDD 3886 4092 #if H_3D_FCO … … 3896 4102 } 3897 4103 #endif 4104 #endif 3898 4105 3899 4106 if( !setupLUT ) … … 3944 4151 m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div; 3945 4152 } 3946 4153 #if !LGE_DDD_REMOVAL_J0042_J0030 3947 4154 #if H_3D_DDD 3948 4155 initializeDDDPara( vps->getCamParPrecision(), codScale[ i ], codOffset[ i ], i ); 3949 4156 #endif 3950 } 3951 } 3952 #endif 3953 #endif 3954 4157 #endif 4158 } 4159 } 4160 #endif 4161 #endif 4162 4163 #if !LGE_DDD_REMOVAL_J0042_J0030 3955 4164 #if H_3D_DDD 3956 4165 Void TComSlice::initializeDDDPara( UInt uiCamParsCodedPrecision, Int iCodedScale,Int iCodedOffset, Int iBaseViewIdx ) … … 4015 4224 4016 4225 #endif 4226 #endif 4017 4227 4018 4228 #if H_MV … … 4048 4258 #endif 4049 4259 4260 #if !LGE_DDD_REMOVAL_J0042_J0030 4050 4261 #if H_3D_DBBP 4051 4262 Int TComSlice::getDepthFromDV( Int iDV, Int iBaseViewIdx ) … … 4054 4265 } 4055 4266 #endif 4267 #endif 4268 4269 #if HHI_TOOL_PARAMETERS_I2_J0107 4270 #if H_3D 4271 4272 Void TComSlice::init3dToolParameters() 4273 { 4274 Bool depthFlag = getIsDepth(); 4275 4276 Bool depthOfRefViewsAvailFlag = false; 4277 Bool textOfCurViewAvailFlag = false; 4278 4279 TComVPS* vps = getVPS(); 4280 4281 if( !depthFlag ) 4282 { 4283 depthOfRefViewsAvailFlag = true; 4284 for( Int i = 0; i <= vps->getNumRefListLayers( getLayerId() ) - 1; i++) 4285 { 4286 Bool curDepthAvailableFlag = false; 4287 for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ ) 4288 { 4289 if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j ) 4290 && vps->getVpsDepthFlag ( vps->getLayerIdInNuh( j ) ) == 1 4291 && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == vps->getViewOrderIdx( vps->getIdRefListLayer( getLayerId(), i ) ) 4292 && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0 4293 && vps->getAuxId ( vps->getLayerIdInNuh( j ) ) == 0 4294 ) 4295 { 4296 curDepthAvailableFlag = true; 4297 } 4298 } 4299 if ( !curDepthAvailableFlag ) 4300 { 4301 depthOfRefViewsAvailFlag = false; 4302 } 4303 } 4304 } 4305 else 4306 { 4307 for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ ) 4308 { 4309 if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j ) 4310 && vps->getVpsDepthFlag( vps->getLayerIdInNuh( j ) ) == 0 4311 && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == getViewIndex() 4312 && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 0 4313 && vps->getAuxId ( vps->getLayerIdInNuh( j ) ) == 0 4314 ) 4315 { 4316 textOfCurViewAvailFlag = true; 4317 } 4318 } 4319 } 4320 4321 Bool lidG0 = ( getLayerId() > 0 ); 4322 Bool nRLLG0 = ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 ); 4323 4324 TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension(); 4325 4326 m_ivMvPredFlag = sps3dExt->getIvMvPredFlag ( depthFlag ) && lidG0 && nRLLG0 ; 4327 m_ivMvScalingFlag = sps3dExt->getIvMvScalingFlag ( depthFlag ) && lidG0 ; 4328 m_ivResPredFlag = sps3dExt->getIvResPredFlag ( depthFlag ) && lidG0 && nRLLG0 ; 4329 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && lidG0 && depthOfRefViewsAvailFlag; 4330 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && lidG0 && nRLLG0 && depthOfRefViewsAvailFlag; 4331 m_depthBasedBlkPartFlag = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && lidG0 && depthOfRefViewsAvailFlag; 4332 m_mpiFlag = sps3dExt->getMpiFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag; 4333 m_intraContourFlag = sps3dExt->getIntraContourFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag; 4334 m_intraSdcWedgeFlag = sps3dExt->getIntraSdcWedgeFlag ( depthFlag ) && lidG0 ; 4335 m_qtPredFlag = sps3dExt->getQtPredFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag; 4336 m_interSdcFlag = sps3dExt->getInterSdcFlag ( depthFlag ) && lidG0 ; 4337 m_intraSingleFlag = sps3dExt->getIntraSingleFlag ( depthFlag ) && lidG0 ; 4338 4339 m_subPbSize = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3 ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth(); 4340 m_mpiSubPbSize = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 ); 4341 4342 #if H_3D_OUTPUT_ACTIVE_TOOLS 4343 std::cout << "Layer: :" << getLayerId() << std::endl; 4344 std::cout << "DepthFlag: :" << getIsDepth() << std::endl; 4345 std::cout << "ViewOrderIdx: :" << getViewIndex() << std::endl; 4346 std::cout << "DepthOfRefViewsAvailFlag:" << depthOfRefViewsAvailFlag << std::endl; 4347 std::cout << "TextOfCurViewAvailFlag :" << textOfCurViewAvailFlag << std::endl; 4348 4349 std::cout << "ivMvPredFlag :" << m_ivMvPredFlag << std::endl; 4350 std::cout << "ivMvScalingFlag :" << m_ivMvScalingFlag << std::endl; 4351 std::cout << "ivResPredFlag :" << m_ivResPredFlag << std::endl; 4352 std::cout << "depthRefinementFlag :" << m_depthRefinementFlag << std::endl; 4353 std::cout << "viewSynthesisPredFlag :" << m_viewSynthesisPredFlag << std::endl; 4354 std::cout << "depthBasedBlkPartFlag :" << m_depthBasedBlkPartFlag << std::endl; 4355 std::cout << "mpiFlag :" << m_mpiFlag << std::endl; 4356 std::cout << "intraContourFlag :" << m_intraContourFlag << std::endl; 4357 std::cout << "intraSdcWedgeFlag :" << m_intraSdcWedgeFlag << std::endl; 4358 std::cout << "qtPredFlag :" << m_qtPredFlag << std::endl; 4359 std::cout << "interSdcFlag :" << m_interSdcFlag << std::endl; 4360 std::cout << "intraSingleFlag :" << m_intraSingleFlag << std::endl; 4361 std::cout << "subPbSize :" << m_subPbSize << std::endl; 4362 std::cout << "mpiSubPbSize :" << m_mpiSubPbSize << std::endl; 4363 #endif 4364 } 4365 #endif 4366 #endif 4367 4056 4368 4057 4369 /** get scaling matrix from RefMatrixID -
trunk/source/Lib/TLibCommon/TComSlice.h
r1084 r1124 861 861 TComRepFormat* m_repFormat [MAX_NUM_LAYERS]; 862 862 Bool m_maxOneActiveRefLayerFlag; 863 #if H_MV_HLS7_GEN 863 #if H_MV_HLS7_GEN || H_MV_HLS_FIX 864 864 Bool m_vpsPocLsbAlignedFlag; 865 865 #endif … … 884 884 Int m_dependencyFlag [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 885 885 886 #if H_MV_FIX_NUM_VIEWS 887 Int m_numViews; 888 #endif 886 889 Int m_numDirectRefLayers [MAX_NUM_LAYERS]; 887 890 Int m_idDirectRefLayer [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 891 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 892 #if H_3D 893 Int m_numRefListLayers [MAX_NUM_LAYERS]; 894 Int m_idRefListLayer [MAX_NUM_LAYERS][MAX_NUM_LAYERS]; 895 #endif 896 #endif 897 888 898 889 899 Int m_numRefLayers [MAX_NUM_LAYER_IDS]; … … 909 919 Void xSetRefLayerFlags( Int currLayerId ); 910 920 // VPS EXTENSION 2 SYNTAX ELEMENTS 921 #if !HHI_TOOL_PARAMETERS_I2_J0107 911 922 #if H_3D_ARP 912 923 UInt m_uiUseAdvResPred [MAX_NUM_LAYERS ]; … … 934 945 Bool m_bIVPFlag [MAX_NUM_LAYERS ]; 935 946 #endif 947 #endif 936 948 #if H_3D 937 949 UInt m_uiCamParPrecision; … … 940 952 Int ***m_aaaiCodedScale ; 941 953 Int ***m_aaaiCodedOffset; 942 #endif 954 955 #if H_MV_FIX_NUM_VIEWS 956 #if HHI_VIEW_ID_LIST_I5_J0107 957 std::vector<Int> m_viewOIdxList; 958 #endif 959 #endif 960 961 #endif 962 #if !HHI_TOOL_PARAMETERS_I2_J0107 943 963 #if H_3D_INTER_SDC 944 964 Bool m_bInterSDCFlag[MAX_NUM_LAYERS ]; … … 949 969 #if H_3D_IV_MERGE 950 970 Bool m_bMPIFlag[MAX_NUM_LAYERS ]; 971 #endif 972 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 973 Bool m_singleDepthModeFlag [ MAX_NUM_LAYERS ]; 974 #endif 951 975 #endif 952 976 … … 1135 1159 Bool getMaxOneActiveRefLayerFlag( ) { return m_maxOneActiveRefLayerFlag; } 1136 1160 1137 #if H_MV_HLS7_GEN 1161 #if H_MV_HLS7_GEN || H_MV_HLS_FIX 1138 1162 Void setVpsPocLsbAlignedFlag( Bool flag ) { m_vpsPocLsbAlignedFlag = flag; } 1139 1163 Bool getVpsPocLsbAlignedFlag( ) { return m_vpsPocLsbAlignedFlag; } … … 1172 1196 Void setRefLayers(); 1173 1197 1198 #if H_MV_FIX_NUM_VIEWS 1199 // To be aligned with spec naming, getViewIndex will be removed in future versions 1200 Int getViewOrderIdx ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX ); } 1201 Int getViewIndex ( Int layerIdInNuh ) { return getViewOrderIdx( layerIdInNuh ); } 1202 #else 1174 1203 Int getViewIndex ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), VIEW_ORDER_INDEX ); } 1204 #endif 1175 1205 Int getAuxId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), AUX_ID ); } 1176 1206 Int getDependencyId ( Int layerIdInNuh ) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPENDENCY_ID ); } 1207 #if H_MV_FIX_NUM_VIEWS 1208 Int getNumViews() { return m_numViews; } 1209 Void initNumViews(); 1210 #if HHI_VIEW_ID_LIST_I5_J0107 1211 Int getViewOIdxList( Int i ) { return m_viewOIdxList[i]; } 1212 #endif 1213 #else 1177 1214 Int getNumViews(); 1215 #endif 1178 1216 1179 1217 Bool getDependencyFlag( Int i, Int j ) { return m_dependencyFlag[i][j]; } 1180 1218 Int getNumDirectRefLayers( Int layerIdInNuh ) { return m_numDirectRefLayers[ layerIdInNuh ]; }; 1219 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1220 #if H_3D 1221 Int getNumRefListLayers( Int layerIdInNuh ) { return m_numRefListLayers[ layerIdInNuh ]; }; 1222 #endif 1223 #endif 1224 1181 1225 Int getNumRefLayers ( Int i ) { return m_numRefLayers[i]; } 1182 1226 Int getNumPredictedLayers ( Int i ) { return m_numPredictedLayers[i]; } 1227 1183 1228 1184 1229 Int getIdRefLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumRefLayers ( i )); return m_idRefLayer [i][j]; } 1185 1230 Int getIdPredictedLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumPredictedLayers( i )); return m_idPredictedLayer[i][j]; } 1186 1231 Int getIdDirectRefLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumDirectRefLayers( i )); return m_idDirectRefLayer[i][j]; } 1232 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 1233 #if H_3D 1234 Int getIdRefListLayer ( Int i, Int j ) { assert( j >= 0 && j < getNumRefListLayers ( i )); return m_idRefListLayer[i][j]; } 1235 #endif 1236 #endif 1187 1237 Int getNumIndependentLayers ( ) { return m_numIndependentLayers; } 1188 1238 Int getNumLayersInTreePartition( Int i ) { return m_numLayersInTreePartition[i]; } … … 1279 1329 1280 1330 /// VPS EXTENSION 2 SYNTAX ELEMENTS 1331 1332 1281 1333 #if H_3D 1282 1334 Int getDepthId ( Int layerIdInNuh) { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPTH_ID ); } 1335 #if HHI_TOOL_PARAMETERS_I2_J0107 1336 Bool getVpsDepthFlag( Int layerIdInNuh) { return (getDepthId( layerIdInNuh ) > 0); } 1337 #endif 1283 1338 Int getLayerIdInNuh( Int viewIndex, Bool depthFlag ); 1284 1339 1340 #if !HHI_TOOL_PARAMETERS_I2_J0107 1285 1341 #if H_3D_ARP 1286 1342 UInt getUseAdvRP ( Int layerIdInVps ) { return m_uiUseAdvResPred[layerIdInVps]; } … … 1288 1344 Void setUseAdvRP ( Int layerIdInVps, UInt val ) { m_uiUseAdvResPred[layerIdInVps] = val; } 1289 1345 Void setARPStepNum( Int layerIdInVps, UInt val ) { m_uiARPStepNum[layerIdInVps] = val; } 1346 #endif 1290 1347 #endif 1291 1348 … … 1303 1360 Int* getInvCodedOffset ( Int viewIndex ) { return m_aaaiCodedOffset[viewIndex][1]; } 1304 1361 1362 #if !HHI_TOOL_PARAMETERS_I2_J0107 1305 1363 #if H_3D_IV_MERGE 1306 1364 Void setIvMvPredFlag ( Int layerIdInVps, Bool val ) { m_ivMvPredFlag[ layerIdInVps ] = val; } … … 1346 1404 Void setMPIFlag ( Int layerIdInVps, Bool bval ){ m_bMPIFlag[layerIdInVps] = bval; } 1347 1405 #endif 1406 #if MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1407 Void setSingleDepthModeFlag ( Int layerIdInVps, Bool val ) { m_singleDepthModeFlag[ layerIdInVps ] = val; } 1408 Bool getSingleDepthModeFlag ( Int layerIdInVps ) { return m_singleDepthModeFlag[ layerIdInVps ]; }; 1409 #endif 1348 1410 #endif 1411 #endif 1349 1412 #endif 1350 1413 }; … … 1612 1675 }; 1613 1676 1677 #if HHI_TOOL_PARAMETERS_I2_J0107 1678 #if H_3D 1679 class TComSps3dExtension 1680 { 1681 public: 1682 TComSps3dExtension() 1683 { 1684 for (Int d = 0; d < 2; d++) 1685 { 1686 m_ivMvPredFlag [d] = false; 1687 m_ivMvScalingFlag [d] = false; 1688 m_log2SubPbSizeMinus3 [d] = 3; 1689 m_ivResPredFlag [d] = false; 1690 m_depthRefinementFlag [d] = false; 1691 m_viewSynthesisPredFlag [d] = false; 1692 m_depthBasedBlkPartFlag [d] = false; 1693 m_mpiFlag [d] = false; 1694 m_log2MpiSubPbSizeMinus3[d] = 3; 1695 m_intraContourFlag [d] = false; 1696 m_intraSdcWedgeFlag [d] = false; 1697 m_qtPredFlag [d] = false; 1698 m_interSdcFlag [d] = false; 1699 m_intraSingleFlag [d] = false; 1700 } 1701 } 1702 1703 Void setIvMvPredFlag( Int d, Bool flag ) { m_ivMvPredFlag[d] = flag; } 1704 Bool getIvMvPredFlag( Int d ) { return m_ivMvPredFlag[d]; } 1705 1706 Void setIvMvScalingFlag( Int d, Bool flag ) { m_ivMvScalingFlag[d] = flag; } 1707 Bool getIvMvScalingFlag( Int d ) { return m_ivMvScalingFlag[d]; } 1708 1709 Void setLog2SubPbSizeMinus3( Int d, Int val ) { m_log2SubPbSizeMinus3[d] = val; } 1710 Int getLog2SubPbSizeMinus3( Int d ) { return m_log2SubPbSizeMinus3[d]; } 1711 1712 Void setIvResPredFlag( Int d, Bool flag ) { m_ivResPredFlag[d] = flag; } 1713 Bool getIvResPredFlag( Int d ) { return m_ivResPredFlag[d]; } 1714 1715 Void setDepthRefinementFlag( Int d, Bool flag ) { m_depthRefinementFlag[d] = flag; } 1716 Bool getDepthRefinementFlag( Int d ) { return m_depthRefinementFlag[d]; } 1717 1718 Void setViewSynthesisPredFlag( Int d, Bool flag ) { m_viewSynthesisPredFlag[d] = flag; } 1719 Bool getViewSynthesisPredFlag( Int d ) { return m_viewSynthesisPredFlag[d]; } 1720 1721 Void setDepthBasedBlkPartFlag( Int d, Bool flag ) { m_depthBasedBlkPartFlag[d] = flag; } 1722 Bool getDepthBasedBlkPartFlag( Int d ) { return m_depthBasedBlkPartFlag[d]; } 1723 1724 Void setMpiFlag( Int d, Bool flag ) { m_mpiFlag[d] = flag; } 1725 Bool getMpiFlag( Int d ) { return m_mpiFlag[d]; } 1726 1727 Void setLog2MpiSubPbSizeMinus3( Int d, Int val ) { m_log2MpiSubPbSizeMinus3[d] = val; } 1728 Int getLog2MpiSubPbSizeMinus3( Int d ) { return m_log2MpiSubPbSizeMinus3[d]; } 1729 1730 Void setIntraContourFlag( Int d, Bool flag ) { m_intraContourFlag[d] = flag; } 1731 Bool getIntraContourFlag( Int d ) { return m_intraContourFlag[d]; } 1732 1733 Void setIntraSdcWedgeFlag( Int d, Bool flag ) { m_intraSdcWedgeFlag[d] = flag; } 1734 Bool getIntraSdcWedgeFlag( Int d ) { return m_intraSdcWedgeFlag[d]; } 1735 1736 Void setQtPredFlag( Int d, Bool flag ) { m_qtPredFlag[d] = flag; } 1737 Bool getQtPredFlag( Int d ) { return m_qtPredFlag[d]; } 1738 1739 Void setInterSdcFlag( Int d, Bool flag ) { m_interSdcFlag[d] = flag; } 1740 Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; } 1741 1742 Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; } 1743 Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; } 1744 1745 private: 1746 1747 Bool m_ivMvPredFlag [2]; 1748 Bool m_ivMvScalingFlag [2]; 1749 Int m_log2SubPbSizeMinus3 [2]; 1750 Bool m_ivResPredFlag [2]; 1751 Bool m_depthRefinementFlag [2]; 1752 Bool m_viewSynthesisPredFlag [2]; 1753 Bool m_depthBasedBlkPartFlag [2]; 1754 Bool m_mpiFlag [2]; 1755 Int m_log2MpiSubPbSizeMinus3[2]; 1756 Bool m_intraContourFlag [2]; 1757 Bool m_intraSdcWedgeFlag [2]; 1758 Bool m_qtPredFlag [2]; 1759 Bool m_interSdcFlag [2]; 1760 Bool m_intraSingleFlag [2]; 1761 }; 1762 1763 #endif 1764 #endif 1765 1614 1766 /// SPS class 1615 1767 class TComSPS … … 1711 1863 #endif 1712 1864 #if H_3D 1865 #if HHI_TOOL_PARAMETERS_I2_J0107 1866 TComSps3dExtension m_sps3dExtension; 1867 #endif 1713 1868 UInt m_uiCamParPrecision; 1714 1869 Bool m_bCamParInSliceHeader; … … 1884 2039 Void setSpsRepFormatIdx( Int val ) { m_spsRepFormatIdx = val; } 1885 2040 Int getSpsRepFormatIdx( ) { return m_spsRepFormatIdx; } 1886 // SPS Extension 2041 2042 // SPS Extension 1887 2043 Void setInterViewMvVertConstraintFlag(Bool val) { m_interViewMvVertConstraintFlag = val; } 1888 2044 Bool getInterViewMvVertConstraintFlag() { return m_interViewMvVertConstraintFlag;} 2045 2046 #if HHI_TOOL_PARAMETERS_I2_J0107 2047 #if H_3D 2048 Void setSps3dExtension ( TComSps3dExtension& sps3dExtension ) { m_sps3dExtension = sps3dExtension; } 2049 TComSps3dExtension* getSps3dExtension ( ) { return &m_sps3dExtension; } 2050 #endif 2051 #endif 1889 2052 1890 2053 // Inference … … 2342 2505 #endif 2343 2506 #endif 2344 2507 #if !LGE_DDD_REMOVAL_J0042_J0030 2345 2508 #if H_3D_DDD 2346 2509 Int m_aiDDDInvScale [MAX_NUM_LAYERS]; … … 2348 2511 UInt m_aiDDDShift [MAX_NUM_LAYERS]; 2349 2512 #endif 2513 #endif 2350 2514 #if H_3D_SINGLE_DEPTH 2351 2515 Bool m_bApplySingleDepthMode; … … 2354 2518 Int *m_aICEnableCandidate; 2355 2519 Int *m_aICEnableNum; 2520 #endif 2521 #if LGE_DEFAULT_DV_J0046 2522 Int m_iDefaultRefViewIdx; 2523 Bool m_bDefaultRefViewIdxAvailableFlag; 2524 #endif 2525 2526 #if HHI_TOOL_PARAMETERS_I2_J0107 2527 Bool m_ivMvPredFlag ; 2528 Bool m_ivMvScalingFlag ; 2529 Bool m_ivResPredFlag ; 2530 Bool m_depthRefinementFlag ; 2531 Bool m_viewSynthesisPredFlag; 2532 Bool m_depthBasedBlkPartFlag; 2533 Bool m_mpiFlag ; 2534 Bool m_intraContourFlag ; 2535 Bool m_intraSdcWedgeFlag ; 2536 Bool m_qtPredFlag ; 2537 Bool m_interSdcFlag ; 2538 Bool m_intraSingleFlag ; 2539 2540 Int m_mpiSubPbSize ; 2541 Int m_subPbSize ; 2356 2542 #endif 2357 2543 public: … … 2425 2611 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2426 2612 #endif 2613 #if !MTK_SINGLE_DEPTH_VPS_FLAG_J0060 2427 2614 #if H_3D_SINGLE_DEPTH 2428 2615 Void setApplySingleDepthMode( Bool b ) { m_bApplySingleDepthMode = b; } 2429 2616 Bool getApplySingleDepthMode() { return m_bApplySingleDepthMode; } 2617 #endif 2430 2618 #endif 2431 2619 #if H_3D_IC … … 2665 2853 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; }; 2666 2854 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; }; 2855 #if !HHI_TOOL_PARAMETERS_I2_J0107 2667 2856 Bool getVpsDepthModesFlag () { return getVPS()->getVpsDepthModesFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2668 2857 Bool getIVPFlag () { return getVPS()->getIVPFlag( getVPS()->getLayerIdInVps( m_layerId ) ); } 2858 #endif 2669 2859 #endif 2670 2860 #if H_3D_IC … … 2724 2914 Int getPocMsbVal( ) { return m_pocMsbVal; } 2725 2915 2916 #if H_MV_HLS_FIX 2917 Bool getCraOrBlaPicFlag() { return ( getCraPicFlag() || getBlaPicFlag() ); } 2918 Bool getPocMsbValRequiredFlag() { return ( getCraOrBlaPicFlag() && ( getVPS()->getVpsPocLsbAlignedFlag() || getVPS()->getNumDirectRefLayers( getLayerIdInVps() ) == 0 ) ); } 2919 #else 2726 2920 Bool getPocMsbValRequiredFlag() { return m_pocMsbValRequiredFlag; } 2727 2921 Void setPocMsbValRequiredFlag(Bool x) { m_pocMsbValRequiredFlag = x; } 2922 #endif 2923 2728 2924 2729 2925 UInt getPocLsbValLen() { return getSPS()->getBitsForPOC(); }; //log2_max_pic_order_cnt_lsb_minus4 + 4 … … 2742 2938 // Additional variables derived in slice header semantics 2743 2939 2940 #if HHI_DEPENDENCY_SIGNALLING_I1_J0107 2941 #if H_3D 2942 Int getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2( getVPS()->getNumRefListLayers( getLayerId() )); } 2943 Int getInterLayerPredLayerIdcLen ( ) { return gCeilLog2( getVPS()->getNumRefListLayers( getLayerId() )); } 2944 #else 2744 2945 Int getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2745 2946 Int getInterLayerPredLayerIdcLen ( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2947 #endif 2948 2949 #else 2950 Int getNumInterLayerRefPicsMinus1Len( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2951 Int getInterLayerPredLayerIdcLen ( ) { return gCeilLog2( getVPS()->getNumDirectRefLayers( getLayerId() )); } 2952 #endif 2746 2953 2747 2954 Int getRefLayerPicFlag( Int i ); … … 2759 2966 TComPic* getPicFromRefPicSetInterLayer( Int setIdc, Int layerId ); 2760 2967 2968 2969 #if HHI_TOOL_PARAMETERS_I2_J0107 2970 #if H_3D 2971 // 3D-HEVC tool parameters 2972 Void init3dToolParameters(); 2973 Bool getIvMvPredFlag ( ) { return m_ivMvPredFlag ; }; 2974 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag ; }; 2975 Bool getIvResPredFlag ( ) { return m_ivResPredFlag ; }; 2976 Bool getDepthRefinementFlag ( ) { return m_depthRefinementFlag ; }; 2977 Bool getViewSynthesisPredFlag ( ) { return m_viewSynthesisPredFlag ; }; 2978 Bool getDepthBasedBlkPartFlag ( ) { return m_depthBasedBlkPartFlag ; }; 2979 Bool getMpiFlag ( ) { return m_mpiFlag ; }; 2980 Bool getIntraContourFlag ( ) { return m_intraContourFlag ; }; 2981 Bool getIntraSdcWedgeFlag ( ) { return m_intraSdcWedgeFlag ; }; 2982 Bool getQtPredFlag ( ) { return m_qtPredFlag ; }; 2983 Bool getInterSdcFlag ( ) { return m_interSdcFlag ; }; 2984 Bool getIntraSingleFlag ( ) { return m_intraSingleFlag ; }; 2985 2986 Int getMpiSubPbSize ( ) { return m_mpiSubPbSize ; }; 2987 Int getSubPbSize ( ) { return m_subPbSize ; }; 2988 #endif 2989 #endif 2990 2991 2761 2992 // Inference 2762 2993 Bool inferPocMsbValPresentFlag(); 2763 2994 #endif 2995 #if !LGE_DDD_REMOVAL_J0042_J0030 2764 2996 #if H_3D_DDD 2765 2997 Void initializeDDDPara( UInt uiCamParsCodedPrecision, Int iCodedScale,Int iCodedOffset, Int iBaseViewIdx ); 2766 2998 Int getDepthFromDV( Int iDV, Int iBaseViewIdx ); 2999 #endif 3000 #endif 3001 #if LGE_DEFAULT_DV_J0046 3002 Int getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; } 3003 Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; } 3004 3005 Bool getDefaultRefViewIdxAvailableFlag() { return m_bDefaultRefViewIdxAvailableFlag; } 3006 Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; } 3007 #endif 3008 #if SEC_ARP_VIEW_REF_CHECK_J0037 || SEC_DBBP_VIEW_REF_CHECK_J0037 3009 Void setDefaultRefView( ); 2767 3010 #endif 2768 3011 -
trunk/source/Lib/TLibCommon/TypeDef.h
r1084 r1124 103 103 // MTK_NBDV_TN_FIX_E0172 fix the issue of DV derivation from the temporal neighboring blocks, issue 7 in JCT3V-E0172 104 104 // MTK_TEXTURE_MRGCAND_BUGFIX_E0182 Bug fix for TEXTURE MERGING CANDIDATE , JCT3V-E0182 105 #define LGE_SIMP_DISP_AVAIL_J0041 1 // Use 2 status for disparity availability - DISP_AVAILABLE and DISP_NONE 105 106 106 107 #define H_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177 … … 114 115 // SHARP_ARP_CHROMA_I0104 115 116 // MTK_I0072_IVARP_SCALING_FIX 117 #define SEC_ARP_VIEW_REF_CHECK_J0037 1 // Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1 116 118 117 119 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 … … 154 156 // NTT_STORE_SPDV_VSP_G0148 Storing Sub-PU based DV for VSP 155 157 // Restricted bi-prediction for VSP 158 #define SEC_A1_BASED_VSP_J0039 1 // Removal of redundant VSP in Merge list 159 156 160 157 161 #define H_3D_IV_MERGE 1 // Inter-view motion merge candidate … … 178 182 // SEC_SIMP_SHIFTED_DV_I0086 Simplification of Shifted DV candidate, JCT3V-I0086 179 183 184 #define MTK_MRG_LIST_SIZE_CLEANUP_J0059 1 // Include VSP for deriving merge candidate list size, JCT3V-J0059 180 185 181 186 … … 231 236 232 237 #define H_3D_SINGLE_DEPTH 1 // Single depth mode proposed in JCT3V-I0095 233 238 #define MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1 // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060 239 #define ALIGN_J0060_J0107 1 // Alignment of changed tool parameters 240 #define ALGIN_J0107_J0059 1 // Alignment of changed tool parameters 241 242 #define MTK_J0033 1 243 #define SHARP_DLT_SIMP_J0029 1 // DLT(DepthValue2Idx[]) table derivation cleanup 234 244 235 245 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 253 263 // SHARP_DBBP_SIMPLE_FLTER_I0109 1 // Simple condition and one dimensional filter for DBBP 254 264 // SEC_DBBP_DMM4_THRESHOLD_I0076 Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 255 265 #define SEC_DBBP_VIEW_REF_CHECK_J0037 1 // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4 256 266 257 267 #define H_3D_DDD 1 // Disparity derived depth coding 268 #define LGE_DDD_REMOVAL_J0042_J0030 1 // DDD removal 258 269 259 270 #define H_3D_FCO 0 // Flexible coding order for 3D 260 271 #if H_3D_FCO 261 #define H_3D_FCO 1272 #define H_3D_FCO 1 262 273 #endif 263 274 … … 272 283 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM and RBC Mode Selection 273 284 // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 285 #define MTK_DMM_SIM_J0035 1 274 286 #endif 275 287 … … 288 300 // Fixes 289 301 302 303 #if H_3D 304 #define HHI_DEPENDENCY_SIGNALLING_I1_J0107 1 305 #define HHI_TOOL_PARAMETERS_I2_J0107 1 306 #define HHI_VPS_3D_EXTENSION_I3_J0107 1 307 #define HHI_VIEW_ID_LIST_I5_J0107 0 308 #endif 309 #define H_MV_FIX_REF_LAYER_PIC_FLAG 1 310 #define H_MV_FIX_NUM_VIEWS 1 311 #define H_3D_OUTPUT_ACTIVE_TOOLS 0 312 290 313 ///// ***** SINGLE DEPTH MODE ********* 291 314 #if H_3D_SINGLE_DEPTH 292 315 #define SINGLE_DEPTH_MODE_CAND_LIST_SIZE 2 // size of the sample candidate list 316 #define SINGLE_DEPTH_SIMP_J0115 1 293 317 #endif 294 318 … … 307 331 #define DVFROM_ABOVE 1 308 332 #define IDV_CANDS 2 333 #define LGE_DEFAULT_DV_J0046 1 309 334 #endif 310 335 … … 342 367 #define IC_SHIFT_DIFF 12 343 368 #define IC_LOW_LATENCY_ENCODING_THRESHOLD 0.1 // Threshold for low-latency IC encoding in JCT3V-H0086 369 #define LGE_CHROMA_IC_J0050_J0034 1 344 370 #endif 345 371 … … 363 389 #endif 364 390 391 392 #if H_3D_SPIVMP 393 #define HS_SP_SIMP_J0066 1 394 #endif 395 365 396 ///////////////////////////////////////////////////////////////////////////////// 366 397 /////////////////////////////////// MV_HEVC HLS ////////////////////////////// 367 398 ///////////////////////////////////////////////////////////////////////////////// 368 399 // TBD: Check if integration is necessary. 400 401 #define H_MV_HLS_FIX 1 369 402 #define H_MV_HLS_PTL_LIMITS 0 370 403 #define H_MV_HLS7_GEN 0 // General changes (not tested) … … 902 935 enum DefaultMergCandOrder 903 936 { 937 #if SEC_A1_BASED_VSP_J0039 938 MRG_T = 0, ///< MPI 939 MRG_D, ///< DDD 940 MRG_IVMC, ///< Temporal inter-view 941 MRG_A1, ///< Left 942 MRG_B1, ///< Above 943 MRG_VSP, ///< VSP 944 MRG_B0, ///< Above right 945 MRG_IVDC, ///< Disparity inter-view 946 MRG_A0, ///< Left bottom 947 MRG_B2, ///< Above left 948 MRG_IVSHIFT, ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive) 949 MRG_COL ///< Temporal co-located 950 #else 904 951 MRG_T = 0, ///< MPI 905 952 MRG_D, ///< DDD … … 914 961 MRG_IVSHIFT, ///< Shifted IVMC of Shifted IVDC. (These are mutually exclusive) 915 962 MRG_COL ///< Temporal co-located 963 #endif 916 964 }; 917 965 #endif
Note: See TracChangeset for help on using the changeset viewer.