- Timestamp:
- 7 Apr 2015, 21:52:03 (10 years ago)
- Location:
- branches/HTM-14.0-dev0/source
- Files:
-
- 46 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.0-dev0/source/App/TAppDecoder/TAppDecTop.cpp
r1179 r1185 248 248 { 249 249 m_tDecTop[decIdx]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 250 #if H_3D _ANNEX_SELECTION_FIX250 #if H_3D 251 251 m_tDecTop[decIdx]->setProfileIdc( ); 252 252 #endif … … 1053 1053 m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags ); 1054 1054 m_tDecTop[ decIdx ]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 1055 #if H_3D _ANNEX_SELECTION_FIX1055 #if H_3D 1056 1056 m_tDecTop[ decIdx ]->setProfileIdc ( ); 1057 1057 #endif -
branches/HTM-14.0-dev0/source/App/TAppEncoder/TAppEncCfg.cpp
r1179 r1185 225 225 } 226 226 #endif 227 #if HHI_INTER_COMP_PRED_K0052228 227 #if H_3D 229 228 in>>entry.m_interCompPredFlag; 230 #endif231 229 #endif 232 230 return in; … … 482 480 ("FastSearch", m_iFastSearch, 1, "0:Full search 1:Diamond 2:PMVFAST") 483 481 ("SearchRange,-sr", m_iSearchRange, 96, "Motion search range") 484 #if SONY_MV_V_CONST_C0078482 #if H_MV 485 483 ("DispSearchRangeRestriction", m_bUseDisparitySearchRangeRestriction, false, "restrict disparity search range") 486 484 ("VerticalDispSearchRange", m_iVerticalDisparitySearchRange, 56, "vertical disparity search range") … … 794 792 ("QtPredFlag" , m_qtPredFlag , true , "Quad tree prediction from texture to depth") 795 793 ("InterSdcFlag" , m_interSdcFlag , true , "Inter depth DCs" ) 796 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033797 794 ("DepthIntraSkip" , m_depthIntraSkipFlag , true , "Depth intra skip mode" ) 798 #else799 ("IntraSingleFlag" , m_intraSingleFlag , true , "Intra single mode" )800 #endif801 795 #endif //H_3D 802 796 ; … … 1559 1553 { 1560 1554 xConfirmPara( m_directRefLayers[i][j] < 0 || m_directRefLayers[i][j] >= i , "Reference layer id shall be greater than or equal to 0 and less than dependent layer id"); 1561 #if H_3D_DIRECT_DEP_TYPE1562 1555 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 6 , "Dependency type shall be greater than or equal to 0 and less than 7"); 1563 #else1564 xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] > 2 , "Dependency type shall be greater than or equal to 0 and less than 3");1565 #endif1566 1556 } 1567 1557 } … … 1599 1589 xConfirmPara( m_iSearchRange < 0 , "Search Range must be more than 0" ); 1600 1590 xConfirmPara( m_bipredSearchRange < 0 , "Search Range must be more than 0" ); 1601 #if SONY_MV_V_CONST_C00781591 #if H_MV 1602 1592 xConfirmPara( m_iVerticalDisparitySearchRange <= 0 , "Vertical Disparity Search Range must be more than 0" ); 1603 1593 #endif … … 1716 1706 xConfirmPara( m_pchCameraParameterFile == 0 , "CameraParameterFile must be given"); 1717 1707 xConfirmPara( m_pchBaseViewCameraNumbers == 0 , "BaseViewCameraNumbers must be given" ); 1718 #if BUG_FIX_TK651719 #if HHI_CAM_PARA_K00521720 1708 xConfirmPara( m_iNumberOfViews != m_cCameraData.getBaseViewNumbers().size() , "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); 1721 #else1722 xConfirmPara( ( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size() ) && ( m_numberOfLayers != m_cCameraData.getBaseViewNumbers().size() ), "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );1723 #endif1724 #else1725 xConfirmPara( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size(), "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );1726 #endif1727 1709 xConfirmPara ( m_iCodedCamParPrecision < 0 || m_iCodedCamParPrecision > 5, "CodedCamParsPrecision must be in range of 0..5" ); 1728 1710 #if H_3D_VSO … … 2477 2459 printf("Min PCM size : %d\n", 1 << m_uiPCMLog2MinSize); 2478 2460 printf("Motion search range : %d\n", m_iSearchRange ); 2479 #if SONY_MV_V_CONST_C00782461 #if H_MV 2480 2462 printf("Disp search range restriction: %d\n", m_bUseDisparitySearchRangeRestriction ); 2481 2463 printf("Vertical disp search range : %d\n", m_iVerticalDisparitySearchRange ); … … 2632 2614 printf( "QtPred:%d " , m_qtPredFlag ? 1 : 0 ); 2633 2615 printf( "InterSdc:%d " , m_interSdcFlag ? 1 : 0 ); 2634 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332635 2616 printf( "DepthIntraSkip:%d " , m_depthIntraSkipFlag ? 1 : 0 ); 2636 #else2637 printf( "IntraSingle:%d " , m_intraSingleFlag ? 1 : 0 );2638 #endif2639 2617 #endif 2640 2618 -
branches/HTM-14.0-dev0/source/App/TAppEncoder/TAppEncCfg.h
r1179 r1185 289 289 Int m_iSearchRange; ///< ME search range 290 290 Int m_bipredSearchRange; ///< ME search range for bipred refinement 291 #if SONY_MV_V_CONST_C0078291 #if H_MV 292 292 Bool m_bUseDisparitySearchRangeRestriction; ///< restrict vertical search range for inter-view prediction 293 293 Int m_iVerticalDisparitySearchRange; ///< ME vertical search range for inter-view prediction … … 488 488 Bool m_qtPredFlag; 489 489 Bool m_interSdcFlag; 490 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033491 490 Bool m_depthIntraSkipFlag; 492 #else493 Bool m_intraSingleFlag;494 #endif495 491 #endif 496 492 // internal member functions -
branches/HTM-14.0-dev0/source/App/TAppEncoder/TAppEncTop.cpp
r1179 r1185 140 140 xSetVPSVUI ( vps ); 141 141 #if H_3D 142 #if HHI_CAM_PARA_K0052143 142 xSetCamPara ( vps ); 144 #endif145 #endif146 #if H_3D147 143 m_ivPicLists.setVPS ( &vps ); 148 144 xDeriveDltArray ( vps, dlt ); … … 201 197 m_sps3dExtension.setQtPredFlag ( d, m_qtPredFlag ); 202 198 m_sps3dExtension.setInterSdcFlag ( d, m_interSdcFlag ); 203 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033204 199 m_sps3dExtension.setDepthIntraSkipFlag ( d, m_depthIntraSkipFlag ); 205 #else206 m_sps3dExtension.setIntraSingleFlag ( d, m_intraSingleFlag );207 #endif208 200 } 209 201 } … … 229 221 //====== Camera Parameters ========= 230 222 m_cTEncTop.setCameraParameters ( &m_cCameraData ); 231 #if !HHI_CAM_PARA_K0052232 m_cTEncTop.setCamParPrecision ( m_cCameraData.getCamParsCodedPrecision () );233 m_cTEncTop.setCamParInSliceHeader ( m_cCameraData.getVaryingCameraParameters() );234 235 m_cTEncTop.setCodedScale ( m_cCameraData.getCodedScale () );236 m_cTEncTop.setCodedOffset ( m_cCameraData.getCodedOffset () );237 #endif238 223 #if H_3D_VSO 239 224 //====== VSO ========= … … 359 344 m_cTEncTop.setBipredSearchRange ( m_bipredSearchRange ); 360 345 361 #if SONY_MV_V_CONST_C0078346 #if H_MV 362 347 m_cTEncTop.setUseDisparitySearchRangeRestriction ( m_bUseDisparitySearchRangeRestriction ); 363 348 m_cTEncTop.setVerticalDisparitySearchRange ( m_iVerticalDisparitySearchRange ); … … 651 636 } 652 637 #endif 653 #if H_3D_ANNEX_SELECTION_FIX654 638 #if H_3D 655 639 /// SET Profiles … … 692 676 } 693 677 #endif 694 #endif695 678 #if H_3D_VSO 696 679 if ( m_bUseVSO ) … … 799 782 { 800 783 #if H_3D 801 #if !HHI_CAM_PARA_K0052802 for ( Int viewIndex = 0; viewIndex < m_vps->getNumViews(); viewIndex++ )803 {804 m_vps->initCamParaVPS( viewIndex, true, m_cCameraData.getCamParsCodedPrecision(),805 m_cCameraData.getVaryingCameraParameters(), m_cCameraData.getCodedScale(), m_cCameraData.getCodedOffset() );806 }807 #endif808 784 #endif 809 785 … … 1143 1119 if (m_pchReconFileList[layerId]) 1144 1120 { 1145 #if H_MV_ALIGN_HM_151146 1121 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom, m_isTopFieldFirst ); 1147 #else1148 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRecTop, pcPicYuvRecBottom, m_confLeft, m_confRight, m_confTop, m_confBottom, m_isTopFieldFirst );1149 #endif1150 1122 } 1151 1123 } … … 1200 1172 if (m_pchReconFileList[layerId]) 1201 1173 { 1202 #if H_MV_ALIGN_HM_151203 1174 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confWinLeft, m_confWinRight, m_confWinTop, m_confWinBottom ); 1204 #else1205 m_acTVideoIOYuvReconFileList[layerId]->write( pcPicYuvRec, m_confLeft, m_confRight, m_confTop, m_confBottom );1206 #endif1207 1175 } 1208 1176 } … … 1390 1358 1391 1359 1392 #if HHI_INTER_COMP_PRED_K00521393 1360 #if H_3D 1394 1361 vps.initViewCompLayer( ); 1395 1362 #endif 1396 #endif1397 1363 } 1398 1364 … … 1412 1378 Bool defaultDirectDependencyFlag = false; 1413 1379 1414 #if H_3D_DIRECT_DEP_TYPE1415 1380 Int directDepTypeLenMinus2 = 0; 1416 #endif1417 1381 for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ ) 1418 1382 { … … 1424 1388 vps.setDirectDependencyFlag( depLayer, refLayer, true); 1425 1389 Int curDirectDependencyType = m_dependencyTypes[depLayer][i]; 1426 #if H_3D_DIRECT_DEP_TYPE1427 1390 directDepTypeLenMinus2 = std::max( directDepTypeLenMinus2, gCeilLog2( curDirectDependencyType + 1 ) - 2 ); 1428 #endif1429 1391 if ( defaultDirectDependencyType != -1 ) 1430 1392 { … … 1444 1406 vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 ); 1445 1407 1446 #if H_3D_DIRECT_DEP_TYPE1447 1408 assert( directDepTypeLenMinus2 <= 1 ); 1448 1409 vps.setDirectDepTypeLenMinus2( directDepTypeLenMinus2 ); 1449 #endif1450 1410 1451 1411 … … 1495 1455 #endif 1496 1456 { 1497 #if !HHI_INTER_COMP_PRED_K00521498 Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );1499 #endif1500 1457 Bool refLayerZero = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 ); 1501 #if HHI_INTER_COMP_PRED_K00521502 // refAlwaysIntra actually not needed, since TemporalIds need to be aligned within an AU.1503 // Thus, reference pictures of IRAP pictures have TemporalId equal to 0.1504 1458 maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 1505 #else1506 maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId );1507 #endif1508 1459 } 1509 1460 } … … 1513 1464 else 1514 1465 { 1515 #if HHI_INTER_COMP_PRED_K00521516 1466 if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 1517 1467 { … … 1552 1502 } 1553 1503 } 1554 #else1555 if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) )1556 {1557 Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false );1558 if ( nuhLayerIdTex == refLayerIdInNuh )1559 {1560 maxTid = std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );1561 }1562 }1563 if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0 && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_depthBasedBlkPartFlag ) )1564 {1565 Int maxPresentTid =-1;1566 Bool allPresent = true;1567 for (Int i = 0; i < vps.getNumRefListLayers( curLayerIdInNuh); i++ )1568 {1569 Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer(curLayerIdInNuh, i ) ), true );1570 if ( nuhLayerIdDep== refLayerIdInNuh )1571 {1572 maxPresentTid= std::max( maxTid, vps.getSubLayersVpsMaxMinus1( refLayerIdInVps) + 1 );1573 }1574 else1575 {1576 allPresent = false;1577 }1578 }1579 1580 if ( allPresent )1581 {1582 maxTid= std::max( maxTid, maxPresentTid );1583 }1584 }1585 #endif1586 1504 } 1587 1505 } // if ( vps.getDirectDependencyFlag( curLayerIdInVps, refLayerIdInVps ) ) … … 1823 1741 // ToDo not supported yet. 1824 1742 //repFormat->setSeparateColourPlaneVpsFlag( ); 1825 #if H_MV_FIX_CONF_WINDOW1826 1743 Bool conformanceWindowVpsFlag = ( m_confWinBottom != 0 ) || ( m_confWinRight != 0 ) || ( m_confWinTop != 0 ) || ( m_confWinBottom != 0 ); 1827 1744 repFormat->setConformanceWindowVpsFlag( conformanceWindowVpsFlag ); … … 1833 1750 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1834 1751 } 1835 #else1836 repFormat->setConformanceWindowVpsFlag( true );1837 repFormat->setConfWinVpsLeftOffset ( m_confWinLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );1838 repFormat->setConfWinVpsRightOffset ( m_confWinRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );1839 repFormat->setConfWinVpsTopOffset ( m_confWinTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );1840 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );1841 #endif1842 1752 assert( vps.getRepFormat( j ) == NULL ); 1843 1753 vps.setRepFormat( j , repFormat ); … … 1861 1771 1862 1772 repFormat->setConformanceWindowVpsFlag( true ); 1863 #if H_MV_ALIGN_HM_151864 1773 repFormat->setConfWinVpsLeftOffset ( m_confWinLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1865 1774 repFormat->setConfWinVpsRightOffset ( m_confWinRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) ); 1866 1775 repFormat->setConfWinVpsTopOffset ( m_confWinTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1867 1776 repFormat->setConfWinVpsBottomOffset ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 1868 #else1869 repFormat->setConfWinVpsLeftOffset ( m_confLeft / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );1870 repFormat->setConfWinVpsRightOffset ( m_confRight / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );1871 repFormat->setConfWinVpsTopOffset ( m_confTop / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );1872 repFormat->setConfWinVpsBottomOffset ( m_confBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) );1873 #endif1874 1777 assert( vps.getRepFormat( 0 ) == NULL ); 1875 1778 vps.setRepFormat( 0 , repFormat ); … … 2250 2153 } 2251 2154 2252 #if HHI_CAM_PARA_K00522253 2155 #if H_3D 2254 2156 Void TAppEncTop::xSetCamPara ( TComVPS& vps ) … … 2285 2187 } 2286 2188 #endif 2287 #endif2288 2189 2289 2190 -
branches/HTM-14.0-dev0/source/App/TAppEncoder/TAppEncTop.h
r1179 r1185 142 142 Void xSetDpbSize ( TComVPS& vps ); 143 143 Void xSetVPSVUI ( TComVPS& vps ); 144 #if HHI_CAM_PARA_K0052145 144 #if H_3D 146 145 Void xSetCamPara ( TComVPS& vps ); 147 #endif148 146 #endif 149 147 GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc ); -
branches/HTM-14.0-dev0/source/Lib/TAppCommon/TAppComCamPara.cpp
r1179 r1185 399 399 400 400 401 #if !HHI_CAM_PARA_K0052402 Void403 TAppComCamPara::xGetViewOrderIndices( const std::vector<Int>& raiId2SortedId, std::vector<Int>& raiVOIdx )404 {405 AOF( raiId2SortedId.size() );406 raiVOIdx = raiId2SortedId;407 Int iSize = (Int)raiId2SortedId.size();408 Int iOffs = raiId2SortedId[ 0 ];409 for( Int iIdx = 0; iIdx < iSize; iIdx++ )410 {411 raiVOIdx[ iIdx ] -= iOffs;412 }413 }414 #endif415 401 416 402 … … 960 946 961 947 962 #if !HHI_CAM_PARA_K0052963 Void964 TAppComCamPara::xSetPdmConversionParams()965 {966 AOF( m_aiViewOrderIndex[ 0 ] == 0 );967 if ( m_bSetupFromCoded || m_iNumberOfBaseViews < 2 )968 {969 return;970 }971 972 //--- determine (virtual) camera parameter shift between view order index 1 and base view (view order index 0) ---973 Double dCamPosShift, dPicPosShift;974 Int iMinAbsVOI = (1<<30);975 Int iMinAbsVOIId = 0;976 for( Int iBaseId = 1; iBaseId < m_iNumberOfBaseViews; iBaseId++ )977 {978 Int iAbsVOI = ( m_aiViewOrderIndex[ iBaseId ] < 0 ? -m_aiViewOrderIndex[ iBaseId ] : m_aiViewOrderIndex[ iBaseId ] );979 if( iAbsVOI < iMinAbsVOI )980 {981 iMinAbsVOI = iAbsVOI;982 iMinAbsVOIId = iBaseId;983 }984 }985 AOF( iMinAbsVOIId != 0 && iMinAbsVOI != 0 );986 xGetCameraShifts( 0, iMinAbsVOIId, m_uiFirstFrameId, dCamPosShift, dPicPosShift );987 988 //--- determine maximum absolute camera position shift, precision, and base scale ---989 Double dMaxAbsCamPosShift = 0.0;990 for( Int iTargetId = 1; iTargetId < m_iNumberOfBaseViews; iTargetId++ )991 {992 for( Int iBaseId = 0; iBaseId < iTargetId; iBaseId++ )993 {994 xGetCameraShifts( (UInt)iBaseId, (UInt)iTargetId, m_uiFirstFrameId, dCamPosShift, dPicPosShift );995 dCamPosShift = ( dCamPosShift < 0.0 ? -dCamPosShift : dCamPosShift );996 dMaxAbsCamPosShift = ( dCamPosShift > dMaxAbsCamPosShift ? dCamPosShift : dMaxAbsCamPosShift );997 }998 }999 }1000 #endif1001 948 1002 949 … … 1284 1231 1285 1232 //===== set derived parameters ===== 1286 #if !HHI_CAM_PARA_K00521287 xGetViewOrderIndices( m_aiBaseId2SortedId, m_aiViewOrderIndex );1288 #endif1289 1233 m_bCamParsVaryOverTime = xGetCamParsChangeFlag(); 1290 1234 -
branches/HTM-14.0-dev0/source/Lib/TAppCommon/TAppComCamPara.h
r1179 r1185 85 85 86 86 // SPS and slice header related variables 87 #if !HHI_CAM_PARA_K005288 std::vector<Int> m_aiViewOrderIndex; ///< list of view order indices89 #endif90 87 UInt m_uiCamParsCodedPrecision; ///< precision for coding of camera parameters (x: max error in disparity is 2^(-x) luma samples) 91 88 Bool m_bCamParsVaryOverTime; ///< flag specifying whether camera parameters vary for given frame numbers … … 147 144 // getting conversion parameters for disparity to virtual depth conversion 148 145 Void xGetCameraShifts ( UInt uiSourceView, UInt uiTargetView, UInt uiFrame, Double& rdCamPosShift, Double& rdPicPosShift ); 149 #if !HHI_CAM_PARA_K0052150 Void xSetPdmConversionParams ();151 #endif152 146 153 147 public: … … 220 214 Bool getVaryingCameraParameters() { return m_bCamParsVaryOverTime; } 221 215 UInt getCamParsCodedPrecision () { return m_uiCamParsCodedPrecision; } 222 #if !HHI_CAM_PARA_K0052223 std::vector<Int>& getViewOrderIndex () { return m_aiViewOrderIndex; }224 #endif225 216 Int** getCodedScale () { return m_aaiCodedScale; } 226 217 Int** getCodedOffset () { return m_aaiCodedOffset; } -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/ContextTables.h
r1179 r1185 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 SEC_DEPTH_INTRA_SKIP_MODE_K003354 53 #define NUM_DIS_FLAG_CTX 1 55 54 #define NUM_DIS_TYPE_CTX 1 56 #else57 #if H_3D_SINGLE_DEPTH58 #define NUM_SINGLEDEPTH_FLAG_CTX 159 #define NUM_SINGLE_DEPTH_VALUE_DATA_CTX 160 #endif61 #endif62 55 #define NUM_MERGE_FLAG_EXT_CTX 1 ///< number of context models for merge flag of merge extended 63 56 #define NUM_MERGE_IDX_EXT_CTX 1 ///< number of context models for merge index of merge extended … … 158 151 { CNU, CNU, CNU, }, 159 152 }; 160 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033153 #if H_3D 161 154 static const UChar 162 155 INIT_DIS_FLAG[3][NUM_DIS_FLAG_CTX] = … … 173 166 { 137 }, 174 167 }; 175 #else176 #if H_3D_SINGLE_DEPTH177 static const UChar178 INIT_SINGLEDEPTH_FLAG[3][NUM_SINGLEDEPTH_FLAG_CTX] =179 {180 { 185 },181 { 185 },182 { 185 },183 };184 static const UChar185 INIT_SINGLE_DEPTH_VALUE_DATA[3][NUM_SINGLE_DEPTH_VALUE_DATA_CTX] =186 {187 { 137 },188 { 137 },189 { 137 },190 };191 #endif192 168 #endif 193 169 static const UChar -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp
r1179 r1185 60 60 61 61 m_skipFlag = NULL; 62 #if SEC_DEPTH_INTRA_SKIP_MODE_K003362 #if H_3D 63 63 m_bDISFlag = NULL; 64 64 m_uiDISType = NULL; 65 #else66 #if H_3D_SINGLE_DEPTH67 m_singleDepthFlag = NULL;68 m_apSingleDepthValue = NULL;69 #endif70 65 #endif 71 66 m_pePartSize = NULL; … … 186 181 187 182 m_skipFlag = new Bool[ uiNumPartition ]; 188 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033183 #if H_3D 189 184 m_bDISFlag = new Bool[ uiNumPartition ]; 190 185 m_uiDISType = (UInt*)xMalloc(UInt, uiNumPartition); 191 #else192 #if H_3D_SINGLE_DEPTH193 m_singleDepthFlag = new Bool[ uiNumPartition ];194 m_apSingleDepthValue = (Pel*)xMalloc(Pel, uiNumPartition);195 #endif196 186 #endif 197 187 m_pePartSize = new Char[ uiNumPartition ]; … … 337 327 338 328 if ( m_skipFlag ) { delete[] m_skipFlag; m_skipFlag = NULL; } 339 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033329 #if H_3D 340 330 if ( m_bDISFlag ) { delete[] m_bDISFlag; m_bDISFlag = NULL; } 341 331 if ( m_uiDISType ) { xFree(m_uiDISType); m_uiDISType = NULL; } 342 #else343 #if H_3D_SINGLE_DEPTH344 if ( m_singleDepthFlag ) { delete[] m_singleDepthFlag; m_singleDepthFlag = NULL; }345 if ( m_apSingleDepthValue ) { xFree(m_apSingleDepthValue); m_apSingleDepthValue = NULL; }346 #endif347 332 #endif 348 333 if ( m_pePartSize ) { delete[] m_pePartSize; m_pePartSize = NULL; } … … 506 491 TComDataCU * pcFrom = pcPic->getCU(getAddr()); 507 492 m_skipFlag[ui] = pcFrom->getSkipFlag(ui); 508 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033493 #if H_3D 509 494 m_bDISFlag[ui] = pcFrom->getDISFlag(ui); 510 495 m_uiDISType[ui] = pcFrom->getDISType(ui); 511 #else512 #if H_3D_SINGLE_DEPTH513 m_singleDepthFlag[ui] = pcFrom->getSingleDepthFlag(ui);514 m_apSingleDepthValue[ui] = pcFrom->getSingleDepthValue(ui);515 #endif516 496 #endif 517 497 m_pePartSize[ui] = pcFrom->getPartitionSize(ui); … … 566 546 { 567 547 memset( m_skipFlag + firstElement, false, numElements * sizeof( *m_skipFlag ) ); 568 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033548 #if H_3D 569 549 memset( m_bDISFlag + firstElement, false, numElements * sizeof( *m_bDISFlag ) ); 570 550 memset( m_uiDISType + firstElement, 0, numElements * sizeof( *m_uiDISType) ); 571 #else572 #if H_3D_SINGLE_DEPTH573 memset( m_singleDepthFlag + firstElement, false, numElements * sizeof( *m_singleDepthFlag ) );574 memset( m_apSingleDepthValue + firstElement, 0, numElements * sizeof( *m_apSingleDepthValue ) );575 #endif576 551 #endif 577 552 memset( m_pePartSize + firstElement, SIZE_NONE, numElements * sizeof( *m_pePartSize ) ); … … 758 733 m_puhTransformSkip[2][ui] = 0; 759 734 m_skipFlag[ui] = false; 760 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033735 #if H_3D 761 736 m_bDISFlag[ui] = false; 762 737 m_uiDISType[ui] = 0; 763 #else764 #if H_3D_SINGLE_DEPTH765 m_singleDepthFlag[ui] = false;766 m_apSingleDepthValue[ui] = 0;767 #endif768 738 #endif 769 739 m_pePartSize[ui] = SIZE_NONE; … … 891 861 memset( m_puhCbf[2], 0, iSizeInUchar ); 892 862 memset( m_puhDepth, uiDepth, iSizeInUchar ); 893 #if H_3D_NBDV && !SEC_ARP_REM_ENC_RESTRICT_K0035894 m_pDvInfo->bDV = false;895 #endif896 863 #if H_3D_ARP 897 864 memset( m_puhARPW, 0, iSizeInUchar ); … … 934 901 { 935 902 m_skipFlag[ui] = false; 936 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033903 #if H_3D 937 904 m_bDISFlag[ui] = false; 938 905 m_uiDISType[ui] = 0; 939 #else940 #if H_3D_SINGLE_DEPTH941 m_singleDepthFlag[ui] = false;942 m_apSingleDepthValue[ui]= 0;943 #endif944 906 #endif 945 907 m_pePartSize[ui] = SIZE_NONE; … … 964 926 m_puhTransformSkip[2][ui] = pcCU->getTransformSkip(uiPartOffset+ui,TEXT_CHROMA_V); 965 927 m_skipFlag[ui] = pcCU->getSkipFlag(uiPartOffset+ui); 966 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033928 #if H_3D 967 929 m_bDISFlag[ui] = pcCU->getDISFlag(uiPartOffset+ui); 968 930 m_uiDISType[ui] = pcCU->getDISType(uiPartOffset+ui); 969 #else970 #if H_3D_SINGLE_DEPTH971 m_singleDepthFlag[ui] = pcCU->getSingleDepthFlag(uiPartOffset+ui);972 m_apSingleDepthValue[ui] = pcCU->getSingleDepthValue(uiPartOffset+ui);973 #endif974 931 #endif 975 932 m_pePartSize[ui] = pcCU->getPartitionSize(uiPartOffset+ui); … … 1118 1075 1119 1076 m_skipFlag=pcCU->getSkipFlag() + uiPart; 1120 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331077 #if H_3D 1121 1078 m_bDISFlag = pcCU->getDISFlag() + uiPart; 1122 1079 m_uiDISType = pcCU->getDISType() + uiPart; 1123 #else1124 #if H_3D_SINGLE_DEPTH1125 m_singleDepthFlag = pcCU->getSingleDepthFlag() + uiPart;1126 m_apSingleDepthValue = pcCU->getSingleDepthValue() + uiPart;1127 #endif1128 1080 #endif 1129 1081 m_phQP=pcCU->getQP() + uiPart; … … 1260 1212 1261 1213 m_skipFlag = pcCU->getSkipFlag () + uiAbsPartIdx; 1262 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331214 #if H_3D 1263 1215 m_bDISFlag = pcCU->getDISFlag () + uiAbsPartIdx; 1264 1216 m_uiDISType = pcCU->getDISType() + uiAbsPartIdx; 1265 #else1266 #if H_3D_SINGLE_DEPTH1267 m_singleDepthFlag = pcCU->getSingleDepthFlag () + uiAbsPartIdx;1268 m_apSingleDepthValue = pcCU->getSingleDepthValue () + uiAbsPartIdx;1269 #endif1270 1217 #endif 1271 1218 m_pePartSize = pcCU->getPartitionSize () + uiAbsPartIdx; … … 1340 1287 Int sizeInChar = sizeof( Char ) * uiNumPartition; 1341 1288 memcpy( m_skipFlag + uiOffset, pcCU->getSkipFlag(), sizeof( *m_skipFlag ) * uiNumPartition ); 1342 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331289 #if H_3D 1343 1290 memcpy( m_bDISFlag + uiOffset, pcCU->getDISFlag(), sizeof( *m_bDISFlag ) * uiNumPartition ); 1344 1291 memcpy( m_uiDISType + uiOffset, pcCU->getDISType(), sizeof( *m_uiDISType ) * uiNumPartition); 1345 #else1346 #if H_3D_SINGLE_DEPTH1347 memcpy( m_singleDepthFlag + uiOffset, pcCU->getSingleDepthFlag(), sizeof( *m_singleDepthFlag ) * uiNumPartition );1348 memcpy( m_apSingleDepthValue + uiOffset, pcCU->getSingleDepthValue(), sizeof( *m_apSingleDepthValue ) * uiNumPartition);1349 #endif1350 1292 #endif 1351 1293 memcpy( m_phQP + uiOffset, pcCU->getQP(), sizeInChar ); … … 1465 1407 1466 1408 memcpy( rpcCU->getSkipFlag() + m_uiAbsIdxInLCU, m_skipFlag, sizeof( *m_skipFlag ) * m_uiNumPartition ); 1467 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331409 #if H_3D 1468 1410 memcpy( rpcCU->getDISFlag() + m_uiAbsIdxInLCU, m_bDISFlag, sizeof( *m_bDISFlag ) * m_uiNumPartition ); 1469 1411 memcpy( rpcCU->getDISType() + m_uiAbsIdxInLCU, m_uiDISType, sizeof( *m_uiDISType ) * m_uiNumPartition ); 1470 #else1471 #if H_3D_SINGLE_DEPTH1472 memcpy( rpcCU->getSingleDepthFlag() + m_uiAbsIdxInLCU, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * m_uiNumPartition );1473 memcpy( rpcCU->getSingleDepthValue() + m_uiAbsIdxInLCU, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * m_uiNumPartition);1474 #endif1475 1412 #endif 1476 1413 memcpy( rpcCU->getQP() + m_uiAbsIdxInLCU, m_phQP, sizeInChar ); … … 1585 1522 Int sizeInChar = sizeof( Char ) * uiQNumPart; 1586 1523 memcpy( rpcCU->getSkipFlag() + uiPartOffset, m_skipFlag, sizeof( *m_skipFlag ) * uiQNumPart ); 1587 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331524 #if H_3D 1588 1525 memcpy( rpcCU->getDISFlag() + uiPartOffset, m_bDISFlag, sizeof( *m_bDISFlag ) * uiQNumPart ); 1589 1526 memcpy( rpcCU->getDISType() + uiPartOffset, m_uiDISType, sizeof( *m_uiDISType ) * uiQNumPart ); 1590 #else1591 #if H_3D_SINGLE_DEPTH1592 memcpy( rpcCU->getSingleDepthFlag() + uiPartOffset, m_singleDepthFlag, sizeof( *m_singleDepthFlag ) * uiQNumPart );1593 memcpy( rpcCU->getSingleDepthValue() + uiPartOffset, m_apSingleDepthValue, sizeof( *m_apSingleDepthValue ) * uiQNumPart);1594 #endif1595 1527 #endif 1596 1528 memcpy( rpcCU->getQP() + uiPartOffset, m_phQP, sizeInChar ); … … 2388 2320 Int iPictureHeight = depthPicYuv->getHeight(); 2389 2321 2390 #if !HS_DBBP_CLEAN_K00482391 Int iWidth = uiWidth;2392 Int iHeight = uiHeight;2393 #endif2394 2322 2395 2323 Bool depthRefineFlag = false; … … 2404 2332 } 2405 2333 2406 #if HS_DBBP_CLEAN_K00482407 2334 Int depthPosX = Clip3(0, iPictureWidth - 1, iBlkX + ((cDv.getHor()+2)>>2)); 2408 2335 Int depthPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((cDv.getVer()+2)>>2)); 2409 #else2410 Int depthPosX = Clip3(0, iPictureWidth - iWidth, iBlkX + ((cDv.getHor()+2)>>2));2411 Int depthPosY = Clip3(0, iPictureHeight- iHeight, iBlkY + ((cDv.getVer()+2)>>2));2412 #endif2413 2336 2414 2337 pDepthPels = depthPicYuv->getLumaAddr() + depthPosX + depthPosY * uiDepthStride; … … 2500 2423 memset( m_skipFlag + absPartIdx, skip, m_pcPic->getNumPartInCU() >> ( 2 * depth ) ); 2501 2424 } 2502 2503 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2425 #if H_3D 2504 2426 Void TComDataCU::setDISFlagSubParts( Bool bDIS, UInt absPartIdx, UInt depth ) 2505 2427 { … … 2512 2434 setSubPartT( uiDISType, m_uiDISType, uiAbsPartIdx, uiDepth, uiPUIdx ); 2513 2435 } 2514 #else2515 #if H_3D_SINGLE_DEPTH2516 Void TComDataCU::setSingleDepthFlagSubParts( Bool singleDepth, UInt absPartIdx, UInt depth )2517 {2518 assert( sizeof( *m_singleDepthFlag) == 1 );2519 memset( m_singleDepthFlag + absPartIdx, singleDepth, m_pcPic->getNumPartInCU() >> ( 2 * depth ) );2520 }2521 2522 Void TComDataCU::setSingleDepthValueSubParts(Pel singleDepthValue, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth )2523 {2524 setSubPartT<Pel>( singleDepthValue, m_apSingleDepthValue, uiAbsPartIdx, uiDepth, uiPUIdx );2525 }2526 #endif2527 2436 #endif 2528 2437 … … 4180 4089 TComMv cMv = cTexMvField.getMv() + cMvRounding; 4181 4090 cMv >>=2; 4182 #if !(NTT_BUG_FIX_TK54)4183 this->clipMv( cMv );4184 #endif4185 4091 pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iValidDepRef); 4186 4092 } … … 4197 4103 } 4198 4104 } 4199 #if !SHARP_SUBBLOCK_CLEAN_K00444200 if (iPUHeight + iPUWidth == 12)4201 {4202 if (puhInterDirSP[iPartition] == 3)4203 {4204 puhInterDirSP[iPartition] = 1;4205 pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1);4206 }4207 }4208 #endif4209 4105 4210 4106 iPartition ++; … … 5422 5318 } 5423 5319 5424 #if SONY_MV_V_CONST_C00785320 #if H_MV 5425 5321 Void TComDataCU::checkMV_V (TComMv& rcMv, RefPicList eRefPicList, int iRefIdx ) 5426 5322 { … … 5780 5676 } 5781 5677 5782 if ( bIsCurrRefLongTerm || bIsColRefLongTerm ) // CY: this condition equals to both bIsCurrRefLongTerm and bIsColRefLongTerm being 15678 if ( bIsCurrRefLongTerm || bIsColRefLongTerm ) 5783 5679 { 5784 5680 #if H_3D_TMVP 5785 #if !H_3D_FIX_TMVP_SCALING_VIEW_ID5786 Int iCurrViewId = m_pcSlice->getViewIndex ();5787 Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewIndex ();5788 Int iColViewId = pColCU->getSlice()->getViewIndex();5789 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex();5790 #else5791 5681 Int iCurrViewId = m_pcSlice->getViewId (); 5792 5682 Int iCurrRefViewId = m_pcSlice->getRefPic(eRefPicList, riRefIdx)->getViewId (); 5793 5683 Int iColViewId = pColCU->getSlice()->getViewId(); 5794 5684 Int iColRefViewId = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewId(); 5795 #endif5796 #if H_3D_TMVP_SCALING_FIX_K00535797 5685 iScale = 4096; 5798 5686 if ( iCurrRefViewId != iCurrViewId && iColViewId != iColRefViewId ) 5799 #endif5800 5687 iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId ); 5801 #if H_3D_TMVP_FIX_TICKET_975802 5688 if ( bMRG && iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) ) 5803 #else5804 if ( iScale != 4096 && m_pcSlice->getIvMvScalingFlag( ) )5805 #endif5806 5689 { 5807 5690 rcMv = cColMv.scaleMv( iScale ); … … 5815 5698 #endif 5816 5699 } 5817 else // CY: both bIsCurrRefLongTerm and bIsColRefLongTerm are 05700 else 5818 5701 { 5819 5702 iScale = xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iColPOC, iColRefPOC); … … 5980 5863 #endif 5981 5864 #if H_3D_IV_MERGE 5982 #if SEC_ARP_REM_ENC_RESTRICT_K00355983 5865 Void TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp) 5984 #else5985 Bool TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp)5986 #endif5987 5866 { 5988 5867 … … 6000 5879 pDisp->m_acNBDV = cMv; 6001 5880 pDisp->m_aVIdxCan = iViewIdx; 6002 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6003 return true; 6004 #endif 6005 } 6006 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6007 return false; 6008 #endif 6009 } 6010 #endif 6011 6012 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 5881 } 5882 } 5883 #endif 5884 5885 #if H_3D 6013 5886 Bool TComDataCU::getNeighDepth ( UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index ) 6014 5887 { 6015 #if NEIGHBORING_PIX_AVAILABILITY_FIX6016 5888 UInt uiPartIdxLT, uiPartIdxRT; 6017 5889 this->deriveLeftRightTopIdxAdi( uiPartIdxLT, uiPartIdxRT, 0, 0 ); … … 6066 5938 6067 5939 return bDepAvail; 6068 #else 6069 Bool bDepAvail = false; 6070 Pel *pDepth = this->getPic()->getPicYuvRec()->getLumaAddr(); 6071 Int iDepStride = this->getPic()->getPicYuvRec()->getStride(); 6072 6073 Int xP, yP, nPSW, nPSH; 6074 this->getPartPosition(uiPartIdx, xP, yP, nPSW, nPSH); 6075 UInt PicHeight=this->getPic()->getPicYuvRec()->getHeight(); 6076 UInt PicWidth=this->getPic()->getPicYuvRec()->getWidth(); 6077 switch(index) 6078 { 6079 case 0: // Mid Left 6080 if( ( xP != 0 ) && ( ( yP + ( nPSH >> 1 ) ) < PicHeight ) ) 6081 { 6082 *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ]; 6083 bDepAvail = true; 6084 } 6085 break; 6086 case 1: // Mid Above 6087 if( ( yP != 0 ) && ( ( xP + ( nPSW >> 1 ) ) < PicWidth ) ) 6088 { 6089 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ]; 6090 bDepAvail = true; 6091 } 6092 break; 6093 default: 6094 break; 6095 } 6096 return bDepAvail; 6097 #endif 6098 } 6099 #else 6100 #if H_3D_SINGLE_DEPTH 6101 Bool TComDataCU::getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index) 6102 { 6103 6104 Bool bDepAvail = false; 6105 Pel *pDepth = this->getPic()->getPicYuvRec()->getLumaAddr(); 6106 Int iDepStride = this->getPic()->getPicYuvRec()->getStride(); 6107 6108 Int xP, yP, nPSW, nPSH; 6109 this->getPartPosition(uiPartIdx, xP, yP, nPSW, nPSH); 6110 UInt PicHeight=this->getPic()->getPicYuvRec()->getHeight(); 6111 UInt PicWidth=this->getPic()->getPicYuvRec()->getWidth(); 6112 switch(index) 6113 { 6114 case 0: // Mid Left 6115 if( ( xP != 0 ) && ( ( yP + ( nPSH >> 1 ) ) < PicHeight ) ) 6116 { 6117 *pNeighDepth = pDepth[ (yP+(nPSH>>1)) * iDepStride + (xP-1) ]; 6118 bDepAvail = true; 6119 } 6120 break; 6121 case 1: // Mid Above 6122 if( ( yP != 0 ) && ( ( xP + ( nPSW >> 1 ) ) < PicWidth ) ) 6123 { 6124 *pNeighDepth = pDepth[ (yP-1) * iDepStride + (xP + (nPSW>>1)) ]; 6125 bDepAvail = true; 6126 } 6127 break; 6128 default: 6129 break; 6130 } 6131 return bDepAvail; 6132 } 6133 #endif 6134 #endif 6135 5940 } 5941 #endif 6136 5942 #if H_3D_NBDV 6137 5943 //Notes from QC: … … 6139 5945 //TBD#2: set of DvMCP values need to be done as part of inter-view motion prediction process. Remove this comment once merge related integration is done 6140 5946 //To be checked: Parallel Merge features for NBDV, related to DV_DERIVATION_PARALLEL_B0096 and LGE_IVMP_PARALLEL_MERGE_B0136 are not integrated. The need of these features due to the adoption of CU-based NBDV is not clear. We need confirmation on this, especially by proponents 6141 #if SEC_ARP_REM_ENC_RESTRICT_K00356142 5947 Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo 6143 #else6144 Bool TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo6145 #endif6146 5948 #if H_3D_NBDV_REF 6147 5949 , Bool bDepthRefine … … 6151 5953 //// ******* Init variables ******* ///// 6152 5954 // Init disparity struct for results 6153 #if !SEC_ARP_REM_ENC_RESTRICT_K00356154 pDInfo->bDV = false;6155 #endif6156 5955 pDInfo->m_aVIdxCan = -1; 6157 5956 … … 6217 6016 if( bCheck ) 6218 6017 { 6219 #if !(NTT_BUG_FIX_TK54)6220 clipMv(cColMv);6221 #endif6222 6018 pDInfo->m_acNBDV = cColMv; 6223 6019 pDInfo->m_aVIdxCan = iTargetViewIdx; … … 6239 6035 #else 6240 6036 picDepth = getSlice()->getIvPic( true, iTargetViewIdx ); 6241 #if !BUG_FIX_TK656242 assert(picDepth != NULL);6243 #endif6244 6037 #endif 6245 6038 if (picDepth && bDepthRefine) … … 6248 6041 pDInfo->m_acDoNBDV = cColMv; 6249 6042 #endif //H_3D_NBDV_REF 6250 #if SEC_ARP_REM_ENC_RESTRICT_K00356251 6043 return; 6252 #else6253 return true;6254 #endif6255 6044 } 6256 6045 } … … 6269 6058 #endif 6270 6059 ) ) 6271 #if SEC_ARP_REM_ENC_RESTRICT_K00356272 6060 return; 6273 #else6274 return true;6275 #endif6276 6061 6277 6062 //// ******* Get disparity from above block ******* ///// … … 6285 6070 #endif 6286 6071 ) ) 6287 #if SEC_ARP_REM_ENC_RESTRICT_K00356288 6072 return; 6289 #else6290 return true;6291 #endif6292 6073 } 6293 6074 … … 6302 6083 { 6303 6084 TComMv cDispVec = cIDVInfo.m_acMvCand[iList][ curPos ]; 6304 #if !(NTT_BUG_FIX_TK54)6305 clipMv( cDispVec );6306 #endif6307 6085 pDInfo->m_acNBDV = cDispVec; 6308 6086 pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ]; … … 6324 6102 #else 6325 6103 TComPic* picDepth = getSlice()->getIvPic( true, pDInfo->m_aVIdxCan ); 6326 #if !BUG_FIX_TK656327 assert(picDepth!=NULL);6328 #endif6329 6104 #endif 6330 6105 … … 6335 6110 pDInfo->m_acDoNBDV = cDispVec; 6336 6111 #endif 6337 #if SEC_ARP_REM_ENC_RESTRICT_K00356338 6112 return; 6339 #else6340 return true;6341 #endif6342 6113 } 6343 6114 } … … 6375 6146 pDInfo->m_acDoNBDV = defaultDV; 6376 6147 #endif 6377 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6378 return true; 6379 #endif 6380 } 6381 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 6382 return false; 6383 #endif 6148 } 6384 6149 } 6385 6150 … … 6423 6188 Pel iDisp = getMcpFromDM( pcBaseViewDepthPicYuv, cMvPred, iBlkX, iBlkY, iWidth, iHeight, aiShiftLUT ); 6424 6189 cMvPred->setHor( iDisp ); 6425 #if !(NTT_BUG_FIX_TK54)6426 clipMv(*cMvPred);6427 #endif6428 6190 } 6429 6191 } … … 6451 6213 if (refViewIdx != m_pcSlice->getViewIndex()) 6452 6214 { 6453 #if !(NTT_BUG_FIX_TK54)6454 clipMv(cMvPred);6455 #endif6456 6215 pNbDvInfo->m_acNBDV = cMvPred; 6457 6216 pNbDvInfo->m_aVIdxCan = refViewIdx; … … 6472 6231 #else 6473 6232 picDepth = getSlice()->getIvPic (true, refViewIdx ); 6474 #if !BUG_FIX_TK656475 assert(picDepth != NULL);6476 #endif6477 6233 #endif 6478 6234 UInt uiPartIdx = 0; //Notes from MTK: Please confirm that using 0 as partition index and partition address is correct for CU-level DoNBDV … … 6870 6626 #endif 6871 6627 #endif 6872 #if !(NTT_BUG_FIX_TK54)6873 clipMv( cMv );6874 #endif6875 6628 paiPdmRefIdx [ uiCurrRefListId ] = iPdmRefIdx; 6876 6629 pacPdmMv [ uiCurrRefListId ] = cMv; … … 6931 6684 } 6932 6685 6933 #if !(NTT_BUG_FIX_TK54)6934 clipMv( cMv );6935 #endif6936 6686 bLoop_stop = true; 6937 6687 … … 6954 6704 6955 6705 } 6956 #if !SHARP_SUBBLOCK_CLEAN_K00446957 if (iSPHeight + iSPWidth == 12)6958 {6959 if (puhInterDirSP[iPartition] == 3)6960 {6961 puhInterDirSP[iPartition] = 1;6962 pcMvFieldSP[2*iPartition + 1].setMvField(TComMv(0,0), -1);6963 }6964 }6965 #endif6966 6706 iPartition ++; 6967 6707 } … … 6996 6736 Int iBaseAbsPartIdx; 6997 6737 6998 #if SEC_SHIFTED_IVMC_POS_K00366999 6738 Int offsetW = (iLoopCan == 0) ? 0 : ( iWidth * 2 ); 7000 6739 Int offsetH = (iLoopCan == 0) ? 0 : ( iHeight * 2 ); 7001 #else7002 Int offsetW = (iLoopCan == 0) ? 0 : ( ((iWidth /2)*4) + 4 );7003 Int offsetH = (iLoopCan == 0) ? 0 : ( ((iHeight/2)*4) + 4 );7004 #endif7005 6740 7006 6741 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth () - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); … … 7048 6783 #endif 7049 6784 #endif 7050 #if !(NTT_BUG_FIX_TK54)7051 clipMv( cMv );7052 #endif7053 6785 paiPdmRefIdx [ (uiCurrRefListId + (iLoopCan<<2)) ] = iPdmRefIdx; 7054 6786 pacPdmMv [ (uiCurrRefListId + (iLoopCan<<2)) ] = cMv; … … 7104 6836 #endif 7105 6837 cMv.setVer( 0 ); 7106 #if !(NTT_BUG_FIX_TK54)7107 clipMv( cMv );7108 #endif7109 6838 pacPdmMv [iRefListId + 2 + (iLoopCan<<2)] = cMv; 7110 6839 } -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComDataCU.h
r1179 r1185 110 110 // ------------------------------------------------------------------------------------------------------------------- 111 111 Bool* m_skipFlag; ///< array of skip flags 112 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033112 #if H_3D 113 113 Bool* m_bDISFlag; 114 114 UInt* m_uiDISType; 115 #else116 #if H_3D_SINGLE_DEPTH117 Bool* m_singleDepthFlag; ///< array of single depth flags118 Pel* m_apSingleDepthValue;119 #endif120 115 #endif 121 116 Char* m_pePartSize; ///< array of partition sizes … … 350 345 Void setSkipFlag ( UInt idx, Bool skip) { m_skipFlag[idx] = skip; } 351 346 Void setSkipFlagSubParts ( Bool skip, UInt absPartIdx, UInt depth ); 352 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033347 #if H_3D 353 348 Bool* getDISFlag () { return m_bDISFlag; } 354 349 Bool getDISFlag ( UInt idx) { return m_bDISFlag[idx]; } … … 360 355 Void getDISType ( UInt idx, UInt uiDISType) { m_uiDISType[idx] = uiDISType; } 361 356 Void setDISTypeSubParts ( UInt uiDISType, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ); 362 #else363 #if H_3D_SINGLE_DEPTH364 Bool* getSingleDepthFlag () { return m_singleDepthFlag; }365 Bool getSingleDepthFlag (UInt idx) { return m_singleDepthFlag[idx]; }366 Void setSingleDepthFlag ( UInt idx, Bool singleDepth) { m_singleDepthFlag[idx] = singleDepth; }367 Void setSingleDepthFlagSubParts ( Bool singleDepth, UInt absPartIdx, UInt depth );368 369 Pel* getSingleDepthValue( ) { return m_apSingleDepthValue; }370 Pel getSingleDepthValue (UInt idx) { return m_apSingleDepthValue[idx]; }371 Void setSingleDepthValue ( UInt idx, Pel pDepthValue) { m_apSingleDepthValue[idx] = pDepthValue; }372 Void setSingleDepthValueSubParts (Pel singleDepthValue, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth );373 #endif374 357 #endif 375 358 Char* getPredictionMode () { return m_pePredMode; } … … 506 489 ); 507 490 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 508 #if SEC_ARP_REM_ENC_RESTRICT_K0035509 491 Void getDisMvpCandNBDV ( DisInfo* pDInfo 510 #else511 Bool getDisMvpCandNBDV ( DisInfo* pDInfo512 #endif513 492 #if H_3D_NBDV_REF 514 493 , Bool bDepthRefine = false … … 517 496 518 497 #if H_3D 519 #if SEC_ARP_REM_ENC_RESTRICT_K0035520 498 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 521 #else522 Bool getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp);523 #endif524 499 Bool getDispMvPredCan(UInt uiPartIdx, RefPicList eRefPicList, Int iRefIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDis, Int* iPdm ); 525 #endif 526 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 500 527 501 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 528 #else529 #if H_3D_SINGLE_DEPTH530 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index);531 #endif532 502 #endif 533 503 #if H_3D_NBDV_REF … … 625 595 626 596 Void clipMv ( TComMv& rcMv ); 627 #if SONY_MV_V_CONST_C0078597 #if H_MV 628 598 Void checkMV_V (TComMv& rcMv, RefPicList eRefPicList, int iRefIdx ); 629 599 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComMotionInfo.h
r1179 r1185 63 63 typedef struct _DisCand 64 64 { 65 #if !SEC_ARP_REM_ENC_RESTRICT_K003566 Bool bDV;67 #endif68 65 TComMv m_acNBDV; // DV from NBDV 69 66 #if H_3D_NBDV_REF -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComPrediction.cpp
r1179 r1185 630 630 631 631 #if H_3D_DBBP 632 #if HS_DBBP_CLEAN_K0048633 632 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU) 634 #else635 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize)636 #endif637 633 { 638 634 // find virtual partitioning for this CU based on depth block … … 643 639 Int iSumDepth = 0; 644 640 Int iSubSample = 4; 645 #if HS_DBBP_CLEAN_K0048646 641 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(); 647 642 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(); … … 675 670 if (!(iBlkY+y+4>iPictureHeight)) 676 671 pDepthPels += uiDepthStride*iSubSample; 677 #else678 for (Int y=0; y<uiSize; y+=iSubSample)679 {680 for (Int x=0; x<uiSize; x+=iSubSample)681 {682 Int depthPel = pDepthPels[x];683 684 iSumDepth += depthPel;685 }686 687 // next row688 pDepthPels += uiDepthStride*iSubSample;689 #endif690 672 } 691 673 … … 705 687 for (Int x=0; x<uiSize; x+=iSubSample) 706 688 { 707 #if HS_DBBP_CLEAN_K0048708 689 Int depthPel = 0; 709 690 if (iBlkX+x>iPictureWidth) … … 716 697 t=x; 717 698 } 718 #else719 Int depthPel = pDepthPels[x];720 #endif721 699 722 700 // decide which segment this pixel belongs to … … 747 725 748 726 // next row 749 #if HS_DBBP_CLEAN_K0048750 727 if (!(iBlkY+y+4>iPictureHeight)) 751 #endif752 728 pDepthPels += uiDepthStride*iSubSample; 753 729 } … … 773 749 } 774 750 775 #if HS_DBBP_CLEAN_K0048776 751 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU) 777 #else778 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask )779 #endif780 752 { 781 753 // segmentation of texture block --> mask IDs … … 786 758 Int uiMinDepth = MAX_INT; 787 759 Int uiMaxDepth = 0; 788 #if HS_DBBP_CLEAN_K0048789 760 uiMinDepth = pDepthPels[ 0 ]; 790 761 uiMaxDepth = pDepthPels[ 0 ]; … … 848 819 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]); 849 820 } 850 #else851 iSumDepth = pDepthPels[ 0 ];852 iSumDepth += pDepthPels[ uiWidth - 1 ];853 iSumDepth += pDepthPels[ uiDepthStride * (uiHeight - 1) ];854 iSumDepth += pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ];855 856 uiMinDepth = pDepthPels[ 0 ];857 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiWidth - 1 ]);858 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]);859 uiMinDepth = std::min( uiMinDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]);860 861 uiMaxDepth = pDepthPels[ 0 ];862 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiWidth - 1 ]);863 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) ]);864 uiMaxDepth = std::max( uiMaxDepth, (Int)pDepthPels[ uiDepthStride * (uiHeight - 1) + uiWidth - 1 ]);865 #endif866 821 867 822 // don't generate mask for blocks with small depth range (encoder decision) … … 885 840 for (Int x=0; x<uiHeight; x++) 886 841 { 887 #if HS_DBBP_CLEAN_K0048888 842 Int depthPel = 0; 889 843 if (iBlkX+x>iPictureWidth) … … 896 850 t=x; 897 851 } 898 #else899 Int depthPel = pDepthPels[x];900 #endif901 852 902 853 // decide which segment this pixel belongs to … … 916 867 917 868 // next row 918 #if HS_DBBP_CLEAN_K0048919 869 if (!(iBlkY+y+1>iPictureHeight)) 920 #endif921 870 pDepthPels += uiDepthStride; 922 871 pMask += MAX_CU_SIZE; … … 1293 1242 TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); 1294 1243 pcCU->clipMv(cMv); 1295 #if SONY_MV_V_CONST_C00781244 #if H_MV 1296 1245 pcCU->checkMV_V(cMv, eRefPicList, iRefIdx ); 1297 1246 #endif … … 1393 1342 #if H_3D_NBDV 1394 1343 DisInfo cDistparity; 1395 #if SEC_ARP_REM_ENC_RESTRICT_K00351396 1344 cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV; 1397 1345 cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan; 1398 1346 #else 1399 cDistparity.bDV = pcCU->getDvInfo(uiPartAddr).bDV;1400 if( cDistparity.bDV )1401 {1402 cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV;1403 assert(pcCU->getDvInfo(uiPartAddr).bDV == pcCU->getDvInfo(0).bDV);1404 cDistparity.m_aVIdxCan = pcCU->getDvInfo(uiPartAddr).m_aVIdxCan;1405 }1406 #endif1407 #else1408 1347 assert(0); // ARP can be applied only when a DV is available 1409 1348 #endif 1410 #if SEC_ARP_REM_ENC_RESTRICT_K00351411 1349 UChar dW = pcCU->getARPW ( uiPartAddr ); 1412 #else 1413 UChar dW = cDistparity.bDV ? pcCU->getARPW ( uiPartAddr ) : 0; 1414 #endif 1415 1416 #if !SEC_ARP_REM_ENC_RESTRICT_K0035 1417 if( cDistparity.bDV ) 1418 #endif 1350 1419 1351 { 1420 1352 Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList); … … 1468 1400 pYuvB0->clear(); pYuvB1->clear(); 1469 1401 } 1470 #if !SEC_ARP_REM_ENC_RESTRICT_K00351471 assert ( cDistparity.bDV );1472 #endif1473 1402 TComMv cNBDV = cDistparity.m_acNBDV; 1474 1403 pcCU->clipMv( cNBDV ); -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComPrediction.h
r1179 r1185 175 175 176 176 #if H_3D_DBBP 177 #if HS_DBBP_CLEAN_K0048178 177 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU); 179 178 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU); 180 #else181 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize);182 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask );183 #endif184 179 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize ); 185 180 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComRdCost.cpp
r1179 r1185 341 341 else if( eDFunc >= DF_HADS && eDFunc <= DF_HADS16N ) 342 342 { 343 #if !RWTH_DBBP_NO_SATD_K0028344 rcDistParam.DistFunc = TComRdCost::xGetMaskedHADs;345 #else346 343 rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD; 347 #endif348 344 } 349 345 else if( eDFunc >= DF_VSD && eDFunc <= DF_VSD16N ) … … 445 441 if( m_bUseMask ) 446 442 { 447 #if !RWTH_DBBP_NO_SATD_K0028448 rcDistParam.DistFunc = (bHADME)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD;449 #else450 443 rcDistParam.DistFunc = TComRdCost::xGetMaskedSAD; 451 #endif452 444 } 453 445 #endif … … 472 464 if( m_bUseMask ) 473 465 { 474 #if !RWTH_DBBP_NO_SATD_K0028475 rcDP.DistFunc = (bHadamard)?TComRdCost::xGetMaskedHADs:TComRdCost::xGetMaskedSAD;476 #else477 466 rcDP.DistFunc = TComRdCost::xGetMaskedSAD; 478 #endif479 467 } 480 468 #endif … … 729 717 } 730 718 731 #if !RWTH_DBBP_NO_SATD_K0028732 UInt TComRdCost::xGetMaskedHADs( DistParam* pcDtParam )733 {734 AOF(!pcDtParam->bApplyWeight);735 #if H_3D_IC736 AOF(!pcDtParam->bUseIC);737 #endif738 Pel* piOrg = pcDtParam->pOrg;739 Pel* piCur = pcDtParam->pCur;740 Int iRows = pcDtParam->iRows;741 Int iCols = pcDtParam->iCols;742 Int iStrideCur = pcDtParam->iStrideCur;743 Int iStrideOrg = pcDtParam->iStrideOrg;744 Int iStep = pcDtParam->iStep;745 746 Int x, y;747 748 UInt uiSum = 0;749 750 #if NS_HAD751 if( ( ( iRows % 8 == 0) && (iCols % 8 == 0) && ( iRows == iCols ) ) || ( ( iRows % 8 == 0 ) && (iCols % 8 == 0) && !pcDtParam->bUseNSHAD ) )752 #else753 if( ( iRows % 8 == 0) && (iCols % 8 == 0) )754 #endif755 {756 Int iOffsetOrg = iStrideOrg<<3;757 Int iOffsetCur = iStrideCur<<3;758 for ( y=0; y<iRows; y+= 8 )759 {760 for ( x=0; x<iCols; x+= 8 )761 {762 if( piOrg[x] != DBBP_INVALID_SHORT )763 {764 uiSum += xCalcHADs8x8( &piOrg[x], &piCur[x*iStep], iStrideOrg, iStrideCur, iStep );765 }766 }767 piOrg += iOffsetOrg;768 piCur += iOffsetCur;769 }770 }771 #if NS_HAD772 else if ( ( iCols > 8 ) && ( iCols > iRows ) && pcDtParam->bUseNSHAD )773 {774 Int iOffsetOrg = iStrideOrg<<2;775 Int iOffsetCur = iStrideCur<<2;776 for ( y=0; y<iRows; y+= 4 )777 {778 for ( x=0; x<iCols; x+= 16 )779 {780 if( piOrg[x] != DBBP_INVALID_SHORT )781 {782 uiSum += xCalcHADs16x4( &piOrg[x], &piCur[x*iStep], iStrideOrg, iStrideCur, iStep );783 }784 }785 piOrg += iOffsetOrg;786 piCur += iOffsetCur;787 }788 }789 else if ( ( iRows > 8 ) && ( iCols < iRows ) && pcDtParam->bUseNSHAD )790 {791 Int iOffsetOrg = iStrideOrg<<4;792 Int iOffsetCur = iStrideCur<<4;793 for ( y=0; y<iRows; y+= 16 )794 {795 for ( x=0; x<iCols; x+= 4 )796 {797 if( piOrg[x] != DBBP_INVALID_SHORT )798 {799 uiSum += xCalcHADs4x16( &piOrg[x], &piCur[x*iStep], iStrideOrg, iStrideCur, iStep );800 }801 }802 piOrg += iOffsetOrg;803 piCur += iOffsetCur;804 }805 }806 #endif807 else if( ( iRows % 4 == 0) && (iCols % 4 == 0) )808 {809 Int iOffsetOrg = iStrideOrg<<2;810 Int iOffsetCur = iStrideCur<<2;811 812 for ( y=0; y<iRows; y+= 4 )813 {814 for ( x=0; x<iCols; x+= 4 )815 {816 if( piOrg[x] != DBBP_INVALID_SHORT )817 {818 uiSum += xCalcHADs4x4( &piOrg[x], &piCur[x*iStep], iStrideOrg, iStrideCur, iStep );819 }820 }821 piOrg += iOffsetOrg;822 piCur += iOffsetCur;823 }824 }825 else if( ( iRows % 2 == 0) && (iCols % 2 == 0) )826 {827 Int iOffsetOrg = iStrideOrg<<1;828 Int iOffsetCur = iStrideCur<<1;829 for ( y=0; y<iRows; y+=2 )830 {831 for ( x=0; x<iCols; x+=2 )832 {833 if( piOrg[x] != DBBP_INVALID_SHORT )834 {835 uiSum += xCalcHADs2x2( &piOrg[x], &piCur[x*iStep], iStrideOrg, iStrideCur, iStep );836 }837 }838 piOrg += iOffsetOrg;839 piCur += iOffsetCur;840 }841 }842 else843 {844 assert(false);845 }846 847 return uiSum >> DISTORTION_PRECISION_ADJUSTMENT(pcDtParam->bitDepth-8);848 }849 #endif850 719 851 720 UInt TComRdCost::xGetMaskedVSD( DistParam* pcDtParam ) -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComRdCost.h
r1179 r1185 320 320 static UInt xGetMaskedSSE ( DistParam* pcDtParam ); 321 321 static UInt xGetMaskedSAD ( DistParam* pcDtParam ); 322 #if !RWTH_DBBP_NO_SATD_K0028323 static UInt xGetMaskedHADs ( DistParam* pcDtParam );324 #endif325 322 static UInt xGetMaskedVSD ( DistParam* pcDtParam ); 326 323 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComRom.cpp
r1179 r1185 745 745 assert( uiWidth == uiHeight ); 746 746 747 #if SHARP_DMM_CLEAN_K0042748 747 Int posStart = 0, posEnd = 0; 749 #else750 UChar uhStartX = 0, uhStartY = 0, uhEndX = 0, uhEndY = 0;751 Int iStepStartX = 0, iStepStartY = 0, iStepEndX = 0, iStepEndY = 0;752 #endif753 748 754 749 UInt uiBlockSize = 0; … … 762 757 for( UInt uiOri = 0; uiOri < 6; uiOri++ ) 763 758 { 764 #if !SHARP_DMM_CLEAN_K0042 765 // init the edge line parameters for each of the 6 wedgelet types 766 switch( uiOri ) 767 { 768 case( 0 ): { uhStartX = 0; uhStartY = 0; uhEndX = 0; uhEndY = 0; iStepStartX = +1; iStepStartY = 0; iStepEndX = 0; iStepEndY = +1; break; } 769 case( 1 ): { uhStartX = (uiBlockSize-1); uhStartY = 0; uhEndX = (uiBlockSize-1); uhEndY = 0; iStepStartX = 0; iStepStartY = +1; iStepEndX = -1; iStepEndY = 0; break; } 770 case( 2 ): { uhStartX = (uiBlockSize-1); uhStartY = (uiBlockSize-1); uhEndX = (uiBlockSize-1); uhEndY = (uiBlockSize-1); iStepStartX = -1; iStepStartY = 0; iStepEndX = 0; iStepEndY = -1; break; } 771 case( 3 ): { uhStartX = 0; uhStartY = (uiBlockSize-1); uhEndX = 0; uhEndY = (uiBlockSize-1); iStepStartX = 0; iStepStartY = -1; iStepEndX = +1; iStepEndY = 0; break; } 772 case( 4 ): { uhStartX = 0; uhStartY = 0; uhEndX = 0; uhEndY = (uiBlockSize-1); iStepStartX = +1; iStepStartY = 0; iStepEndX = +1; iStepEndY = 0; break; } 773 case( 5 ): { uhStartX = (uiBlockSize-1); uhStartY = 0; uhEndX = 0; uhEndY = 0; iStepStartX = 0; iStepStartY = +1; iStepEndX = 0; iStepEndY = +1; break; } 774 } 775 #endif 776 777 #if SHARP_DMM_CLEAN_K0042 759 778 760 posEnd = (Int) racWedgeList.size(); 779 761 if (uiOri == 0 || uiOri == 4) 780 762 { 781 #endif782 763 for( Int iK = 0; iK < uiBlockSize; iK += (uiWidth>=16 ?2:1)) 783 764 { 784 765 for( Int iL = 0; iL < uiBlockSize; iL += ((uiWidth>=16 && uiOri<4)?2:1) ) 785 766 { 786 #if SHARP_DMM_CLEAN_K0042787 767 Int xS = iK; 788 768 Int yS = 0; … … 790 770 Int yE = (uiOri == 0) ? iL : uiBlockSize - 1; 791 771 cTempWedgelet.setWedgelet( xS, yS, xE, yE, uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) ); 792 #else793 cTempWedgelet.setWedgelet( uhStartX + (iK*iStepStartX) , uhStartY + (iK*iStepStartY), uhEndX + (iL*iStepEndX), uhEndY + (iL*iStepEndY), (UChar)uiOri, eWedgeRes, ((iL%2)==0 && (iK%2)==0) );794 #endif795 772 addWedgeletToList( cTempWedgelet, racWedgeList, racWedgeRefList ); 796 773 } 797 774 } 798 #if SHARP_DMM_CLEAN_K0042799 775 } 800 776 else … … 807 783 } 808 784 posStart = posEnd; 809 #endif810 785 } 811 786 -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComSlice.cpp
r1179 r1185 137 137 #endif 138 138 #if H_3D 139 #if HHI_INTER_COMP_PRED_K0052140 139 , m_inCmpPredFlag ( false ) 141 #endif142 #if HHI_CAM_PARA_K0052143 140 , m_numViews ( 0 ) 144 #endif145 141 , m_depthToDisparityB ( NULL ) 146 142 , m_depthToDisparityF ( NULL ) 147 #endif 148 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 143 149 144 , m_bApplyDIS (false) 150 #else151 #if H_3D_SINGLE_DEPTH152 , m_bApplySingleDepthMode (false)153 #endif154 145 #endif 155 146 #endif … … 191 182 m_iDefaultRefViewIdx = -1; 192 183 m_bDefaultRefViewIdxAvailableFlag = false; 193 #if H HI_INTER_COMP_PRED_K0052184 #if H_3D 194 185 m_ivMvPredFlag = false; 195 186 m_ivMvScalingFlag = false; … … 214 205 m_puiSubstreamSizes = NULL; 215 206 #if H_3D 216 #if HHI_CAM_PARA_K0052217 207 for( UInt i = 0; i < m_numViews; i++ ) 218 #else219 for( UInt i = 0; i < getViewIndex(); i++ )220 #endif221 208 { 222 209 if ( m_depthToDisparityB && m_depthToDisparityB[ i ] ) … … 604 591 UInt NumPocLtCurr = 0; 605 592 Int i; 606 607 #if HHI_RES_PRED_K0052 593 #if H_3D 608 594 m_pocsInCurrRPSs.clear(); 609 595 #endif 610 611 596 for(i=0; i < m_pcRPS->getNumberOfNegativePictures(); i++) 612 597 { … … 619 604 NumPocStCurr0++; 620 605 pcRefPic->setCheckLTMSBPresent(false); 621 #if H HI_RES_PRED_K0052606 #if H_3D 622 607 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 623 608 #endif … … 635 620 NumPocStCurr1++; 636 621 pcRefPic->setCheckLTMSBPresent(false); 637 #if H HI_RES_PRED_K0052622 #if H_3D 638 623 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 639 624 #endif … … 650 635 RefPicSetLtCurr[NumPocLtCurr] = pcRefPic; 651 636 NumPocLtCurr++; 652 #if H HI_RES_PRED_K0052637 #if H_3D 653 638 m_pocsInCurrRPSs.push_back( pcRefPic->getPOC() ); 654 639 #endif … … 662 647 663 648 Int numPocInterCurr = NumPocStCurr0 + NumPocStCurr1 + NumPocLtCurr; 664 #if H HI_RES_PRED_K0052649 #if H_3D 665 650 assert( numPocInterCurr == (Int) m_pocsInCurrRPSs.size() ); 666 651 #endif … … 837 822 Void TComSlice::setCamparaSlice( Int** aaiScale, Int** aaiOffset ) 838 823 { 839 #if HHI_CAM_PARA_K0052840 824 Int voiInVps = m_pcVPS->getVoiInVps(getViewIndex() ); 841 825 if( m_pcVPS->getNumCp( voiInVps ) > 0 ) … … 855 839 } 856 840 } 857 #else858 if( m_pcVPS->hasCamParInSliceHeader( m_viewIndex ) )859 {860 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < m_viewIndex; uiBaseViewIndex++ )861 {862 m_aaiCodedScale [ 0 ][ uiBaseViewIndex ] = aaiScale [ uiBaseViewIndex ][ m_viewIndex ];863 m_aaiCodedScale [ 1 ][ uiBaseViewIndex ] = aaiScale [ m_viewIndex ][ uiBaseViewIndex ];864 m_aaiCodedOffset[ 0 ][ uiBaseViewIndex ] = aaiOffset[ uiBaseViewIndex ][ m_viewIndex ];865 m_aaiCodedOffset[ 1 ][ uiBaseViewIndex ] = aaiOffset[ m_viewIndex ][ uiBaseViewIndex ];866 }867 }868 #endif869 841 } 870 842 #endif … … 1165 1137 } 1166 1138 #endif 1167 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331139 #if H_3D 1168 1140 m_bApplyDIS = pSrc->m_bApplyDIS; 1169 #else1170 #if H_3D_SINGLE_DEPTH1171 m_bApplySingleDepthMode = pSrc->m_bApplySingleDepthMode;1172 #endif1173 1141 #endif 1174 1142 #if H_3D_IC … … 2217 2185 { 2218 2186 m_numViews = 1; 2219 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K00522220 2187 #if H_3D 2221 2188 AOF( m_viewOIdxList.size() == 0 ); … … 2223 2190 m_viewOIdxList.push_back( 0 ); 2224 2191 #endif 2225 #endif2226 2192 2227 2193 for( Int i = 0; i <= getMaxLayersMinus1(); i++ ) … … 2241 2207 { 2242 2208 m_numViews++; 2243 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K00522244 2209 #if H_3D 2245 2210 m_viewOIdxList.push_back( getViewOrderIdx( lId ) ); 2246 2211 #endif 2247 #endif2248 2212 } 2249 2213 } … … 2271 2235 } 2272 2236 } 2273 #if !BUG_FIX_TK652274 assert( foundLayerIdinNuh != -1 );2275 #endif2276 2237 return foundLayerIdinNuh; 2277 2238 } … … 2281 2242 Int i = 0, j = 0; 2282 2243 2283 #if HHI_CAM_PARA_K00522284 2244 m_numCp = new Int [ iNumViews ]; 2285 2245 m_cpRefVoi = new Int*[ iNumViews ]; … … 2287 2247 2288 2248 m_cpPresentFlag = new Bool*[ iNumViews ]; 2289 #else2290 m_bCamParPresent = new Bool[ iNumViews ];2291 m_bCamParInSliceHeader = new Bool[ iNumViews ];2292 #endif2293 2249 2294 2250 … … 2297 2253 for ( i = 0; i < iNumViews ; i++ ) 2298 2254 { 2299 #if HHI_CAM_PARA_K00522300 2255 m_cpInSliceSegmentHeaderFlag[i] = false; 2301 #else2302 m_bCamParPresent[i] = false;2303 m_bCamParInSliceHeader[i] = false;2304 #endif2305 2256 2306 2257 m_aaaiCodedScale[i] = new Int*[ 2 ]; 2307 2258 m_aaaiCodedOffset[i] = new Int*[ 2 ]; 2308 2259 2309 #if HHI_CAM_PARA_K00522310 2260 m_numCp [i] = 0; 2311 2261 m_cpRefVoi[i] = new Int[ iNumViews ]; … … 2316 2266 m_cpPresentFlag[i][j] = false; 2317 2267 } 2318 #endif2319 2268 for ( j = 0; j < 2; j++ ) 2320 2269 { … … 2335 2284 Int i = 0, j = 0; 2336 2285 2337 #if !HHI_CAM_PARA_K00522338 if ( m_bCamParPresent != NULL )2339 {2340 delete [] m_bCamParPresent;2341 }2342 if ( m_bCamParInSliceHeader != NULL )2343 {2344 delete [] m_bCamParInSliceHeader;2345 }2346 #else2347 2286 if ( m_numCp != NULL ) 2348 2287 { … … 2373 2312 delete [] m_cpInSliceSegmentHeaderFlag; 2374 2313 } 2375 #endif2376 2314 2377 2315 … … 2404 2342 2405 2343 2406 #if !HHI_CAM_PARA_K00522407 Void TComVPS::initCamParaVPS( UInt uiViewIndex, Bool bCamParPresent, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset )2408 {2409 AOT( uiViewIndex != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) );2410 2411 m_uiCamParPrecision = ( ( uiViewIndex != 0 )? uiCamParPrecision : 0 );2412 m_bCamParPresent[ uiViewIndex ] = (( uiViewIndex != 0 )? bCamParPresent : false );2413 m_bCamParInSliceHeader[ uiViewIndex ] = ( (uiViewIndex != 0)? bCamParSlice : false );2414 2415 if( !m_bCamParInSliceHeader[ uiViewIndex ] )2416 {2417 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ )2418 {2419 m_aaaiCodedScale [ uiViewIndex ][ 0 ][ uiBaseViewIndex ] = aaiScale [ uiBaseViewIndex ][ uiViewIndex ];2420 m_aaaiCodedScale [ uiViewIndex ][ 1 ][ uiBaseViewIndex ] = aaiScale [ uiViewIndex ][ uiBaseViewIndex ];2421 m_aaaiCodedOffset[ uiViewIndex ][ 0 ][ uiBaseViewIndex ] = aaiOffset[ uiBaseViewIndex ][ uiViewIndex ];2422 m_aaaiCodedOffset[ uiViewIndex ][ 1 ][ uiBaseViewIndex ] = aaiOffset[ uiViewIndex ][ uiBaseViewIndex ];2423 }2424 }2425 }2426 #endif2427 2344 2428 2345 #endif // H_3D … … 2858 2775 , m_interViewMvVertConstraintFlag (false) 2859 2776 #endif 2860 #if H_3D2861 #if !HHI_CAM_PARA_K00522862 , m_bCamParInSliceHeader (false)2863 #endif2864 #endif2865 2777 { 2866 2778 for ( Int i = 0; i < MAX_TLAYER; i++ ) … … 3885 3797 { 3886 3798 Int layerIdInNuh = getRefPicLayerId( i ); 3887 #if HHI_RES_PRED_K0052 3799 3888 3800 TComPic* picV = getIvPic( getIsDepth(), getVPS()->getViewIndex( layerIdInNuh ) ); 3889 3801 assert( picV != NULL ); … … 3900 3812 3901 3813 if (getFirstTRefIdx(eRefPicList) >= 0 && refRpRefAvailFlag ) 3902 #else3903 Int viewIdx = getVPS()->getViewId( layerIdInNuh );3904 TComPic*pcPicPrev = ivPicLists->getPic(viewIdx, 0, prevPOC);3905 if (getFirstTRefIdx(eRefPicList) >= 0 && pcPicPrev && pcPicPrev->getSlice( 0 )->isReferenced())3906 #endif3907 3814 { 3908 3815 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = true; … … 4087 3994 return; 4088 3995 4089 #if HHI_CAM_PARA_K00524090 3996 m_numViews = getVPS()->getNumViews(); 4091 #endif4092 3997 /// GT: Allocation should be moved to a better place later; 4093 3998 if ( m_depthToDisparityB == NULL ) 4094 3999 { 4095 #if HHI_CAM_PARA_K00524096 4000 m_depthToDisparityB = new Int*[ m_numViews ]; 4097 4001 for ( Int i = 0; i < getVPS()->getNumViews(); i++ ) 4098 #else4099 m_depthToDisparityB = new Int*[ getViewIndex() ];4100 for ( Int i = 0; i < getViewIndex(); i++ )4101 #endif4102 4002 { 4103 4003 m_depthToDisparityB[ i ] = new Int[ Int(1 << g_bitDepthY) ]; … … 4108 4008 if ( m_depthToDisparityF == NULL ) 4109 4009 { 4110 #if HHI_CAM_PARA_K00524111 4010 m_depthToDisparityF = new Int*[ m_numViews ]; 4112 4011 for ( Int i = 0; i < m_numViews; i++ ) 4113 #else4114 m_depthToDisparityF= new Int*[ getViewIndex() ];4115 for ( Int i = 0; i < getViewIndex(); i++ )4116 #endif4117 4012 { 4118 4013 m_depthToDisparityF[ i ] = new Int[ Int(1 << g_bitDepthY) ]; … … 4125 4020 TComVPS* vps = getVPS(); 4126 4021 4127 #if HHI_CAM_PARA_K00524128 4022 Int log2Div = g_bitDepthY - 1 + vps->getCpPrecision(); 4129 4023 Int voiInVps = vps->getVoiInVps( getViewIndex() ); … … 4155 4049 } 4156 4050 } 4157 #else4158 Int log2Div = g_bitDepthY - 1 + vps->getCamParPrecision();4159 4160 Int viewIndex = getViewIndex();4161 4162 Bool camParaSH = vps->hasCamParInSliceHeader( viewIndex );4163 4164 Int* codScale = camParaSH ? m_aaiCodedScale [ 0 ] : vps->getCodedScale ( viewIndex );4165 Int* codOffset = camParaSH ? m_aaiCodedOffset[ 0 ] : vps->getCodedOffset ( viewIndex );4166 Int* invCodScale = camParaSH ? m_aaiCodedScale [ 1 ] : vps->getInvCodedScale ( viewIndex );4167 Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : vps->getInvCodedOffset( viewIndex );4168 4169 for (Int i = 0; i <= ( getViewIndex() - 1); i++)4170 {4171 for ( Int d = 0; d <= ( ( 1 << g_bitDepthY ) - 1 ); d++ )4172 {4173 Int offset = ( codOffset [ i ] << g_bitDepthY ) + ( ( 1 << log2Div ) >> 1 );4174 m_depthToDisparityB[ i ][ d ] = ( codScale [ i ] * d + offset ) >> log2Div;4175 4176 Int invOffset = ( invCodOffset[ i ] << g_bitDepthY ) + ( ( 1 << log2Div ) >> 1 );4177 m_depthToDisparityF[ i ][ d ] = ( invCodScale[ i ] * d + invOffset ) >> log2Div;4178 }4179 }4180 #endif4181 4051 } 4182 4052 #endif … … 4222 4092 Bool depthFlag = getIsDepth(); 4223 4093 4224 #if !HHI_INTER_COMP_PRED_K00524225 Bool depthOfRefViewsAvailFlag = false;4226 Bool textOfCurViewAvailFlag = false;4227 4228 TComVPS* vps = getVPS();4229 4230 if( !depthFlag )4231 {4232 depthOfRefViewsAvailFlag = true;4233 for( Int i = 0; i <= vps->getNumRefListLayers( getLayerId() ) - 1; i++)4234 {4235 Bool curDepthAvailableFlag = false;4236 for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )4237 {4238 if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )4239 && vps->getVpsDepthFlag ( vps->getLayerIdInNuh( j ) ) == 14240 && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == vps->getViewOrderIdx( vps->getIdRefListLayer( getLayerId(), i ) )4241 && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 04242 && vps->getAuxId ( vps->getLayerIdInNuh( j ) ) == 04243 )4244 {4245 curDepthAvailableFlag = true;4246 }4247 }4248 if ( !curDepthAvailableFlag )4249 {4250 depthOfRefViewsAvailFlag = false;4251 }4252 }4253 }4254 else4255 {4256 for (Int j = 0; j <= vps->getMaxLayersMinus1(); j++ )4257 {4258 if ( vps->getDirectDependencyFlag( vps->getLayerIdInVps( getLayerId() ), j )4259 && vps->getVpsDepthFlag( vps->getLayerIdInNuh( j ) ) == 04260 && vps->getViewOrderIdx( vps->getLayerIdInNuh( j ) ) == getViewIndex()4261 && vps->getDependencyId( vps->getLayerIdInNuh( j ) ) == 04262 && vps->getAuxId ( vps->getLayerIdInNuh( j ) ) == 04263 )4264 {4265 textOfCurViewAvailFlag = true;4266 }4267 }4268 }4269 4270 4271 Bool lidG0 = ( getLayerId() > 0 );4272 Bool nRLLG0 = ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 );4273 4274 TComSps3dExtension* sps3dExt = getSPS()->getSps3dExtension();4275 4276 m_ivMvPredFlag = sps3dExt->getIvMvPredFlag ( depthFlag ) && lidG0 && nRLLG0 ;4277 m_ivMvScalingFlag = sps3dExt->getIvMvScalingFlag ( depthFlag ) && lidG0 ;4278 m_ivResPredFlag = sps3dExt->getIvResPredFlag ( depthFlag ) && lidG0 && nRLLG0 ;4279 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && lidG0 && depthOfRefViewsAvailFlag;4280 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && lidG0 && nRLLG0 && depthOfRefViewsAvailFlag;4281 m_depthBasedBlkPartFlag = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && lidG0 && depthOfRefViewsAvailFlag;4282 m_mpiFlag = sps3dExt->getMpiFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag;4283 m_intraContourFlag = sps3dExt->getIntraContourFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag;4284 m_intraSdcWedgeFlag = sps3dExt->getIntraSdcWedgeFlag ( depthFlag ) && lidG0 ;4285 m_qtPredFlag = sps3dExt->getQtPredFlag ( depthFlag ) && lidG0 && textOfCurViewAvailFlag;4286 m_interSdcFlag = sps3dExt->getInterSdcFlag ( depthFlag ) && lidG0 ;4287 #if SEC_DEPTH_INTRA_SKIP_MODE_K00334288 m_depthIntraSkipFlag = sps3dExt->getDepthIntraSkipFlag ( depthFlag ) && lidG0 ;4289 #else4290 m_intraSingleFlag = sps3dExt->getIntraSingleFlag ( depthFlag ) && lidG0 ;4291 #endif4292 4293 m_subPbSize = lidG0 ? ( 1 << ( sps3dExt->getLog2SubPbSizeMinus3 ( depthFlag ) + 3 ) ) : getSPS()->getMaxCUWidth();4294 m_mpiSubPbSize = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 );4295 #else4296 4094 Bool nRLLG0 = ( getVPS()->getNumRefListLayers( getLayerId() ) > 0 ); 4297 4095 … … 4301 4099 m_ivMvScalingFlag = sps3dExt->getIvMvScalingFlag ( depthFlag ) ; 4302 4100 m_ivResPredFlag = sps3dExt->getIvResPredFlag ( depthFlag ) && nRLLG0 ; 4303 #if HHI_CAM_PARA_K00524304 4101 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && getInCompPredFlag() && m_cpAvailableFlag; 4305 4102 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && nRLLG0 && getInCompPredFlag() && m_cpAvailableFlag; 4306 #else4307 m_depthRefinementFlag = sps3dExt->getDepthRefinementFlag ( depthFlag ) && getInCompPredFlag();4308 m_viewSynthesisPredFlag = sps3dExt->getViewSynthesisPredFlag( depthFlag ) && nRLLG0 && getInCompPredFlag();4309 #endif4310 4103 m_depthBasedBlkPartFlag = sps3dExt->getDepthBasedBlkPartFlag( depthFlag ) && getInCompPredFlag(); 4311 4104 m_mpiFlag = sps3dExt->getMpiFlag ( depthFlag ) && getInCompPredFlag(); … … 4319 4112 m_mpiSubPbSize = 1 << ( sps3dExt->getLog2MpiSubPbSizeMinus3( depthFlag ) + 3 ); 4320 4113 4321 #endif4322 4114 4323 4115 #if H_3D_OUTPUT_ACTIVE_TOOLS … … 4325 4117 std::cout << "DepthFlag: :" << getIsDepth() << std::endl; 4326 4118 std::cout << "ViewOrderIdx: :" << getViewIndex() << std::endl; 4327 #if HHI_INTER_COMP_PRED_K00524328 4119 std::cout << "InterCmpPredAvailableFlag:" << getInCmpPredAvailFlag() << std::endl; 4329 4120 std::cout << "InterCompPredFlag :" << getInCompPredFlag() << std::endl; 4330 //std::cout << "TextOfCurViewAvailFlag :" << textOfCurViewAvailFlag << std::endl;4331 #else4332 std::cout << "DepthOfRefViewsAvailFlag:" << depthOfRefViewsAvailFlag << std::endl;4333 std::cout << "TextOfCurViewAvailFlag :" << textOfCurViewAvailFlag << std::endl;4334 #endif4335 4121 4336 4122 std::cout << "ivMvPredFlag :" << m_ivMvPredFlag << std::endl; … … 4345 4131 std::cout << "qtPredFlag :" << m_qtPredFlag << std::endl; 4346 4132 std::cout << "interSdcFlag :" << m_interSdcFlag << std::endl; 4347 #if SEC_DEPTH_INTRA_SKIP_MODE_K00334348 4133 std::cout << "depthIntraSkipFlag :" << m_depthIntraSkipFlag << std::endl; 4349 #else4350 std::cout << "intraSingleFlag :" << m_intraSingleFlag << std::endl;4351 #endif4352 4134 std::cout << "subPbSize :" << m_subPbSize << std::endl; 4353 4135 std::cout << "mpiSubPbSize :" << m_mpiSubPbSize << std::endl; -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComSlice.h
r1179 r1185 914 914 // VPS EXTENSION 2 SYNTAX ELEMENTS 915 915 #if H_3D 916 #if HHI_CAM_PARA_K0052917 916 Int* m_numCp; 918 917 Int** m_cpRefVoi; … … 920 919 Int m_cpPrecision; 921 920 Bool* m_cpInSliceSegmentHeaderFlag; 922 #else923 UInt m_uiCamParPrecision;924 Bool* m_bCamParInSliceHeader;925 Bool* m_bCamParPresent;926 #endif927 921 Int ***m_aaaiCodedScale ; 928 922 Int ***m_aaaiCodedOffset; 929 923 930 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052931 924 std::vector<Int> m_viewOIdxList; 932 #endif933 #if HHI_INTER_COMP_PRED_K0052934 925 std::vector< std::vector<Bool> > m_viewCompLayerPresentFlag; 935 926 std::vector< std::vector<Int> > m_viewCompLayerId; 936 #endif937 927 #endif 938 928 … … 1163 1153 Int getNumViews() { return m_numViews; } 1164 1154 Void initNumViews(); 1165 #if HHI_INTER_COMP_PRED_K00521166 1155 #if H_3D 1167 1156 Void initViewCompLayer( ) … … 1191 1180 } 1192 1181 }; 1193 #endif 1194 #endif 1195 1196 #if HHI_VIEW_ID_LIST_I5_J0107 || HHI_INTER_COMP_PRED_K0052 1182 1183 1197 1184 Int getViewOIdxList( Int i ) { return m_viewOIdxList[i]; } 1198 #if HHI_CAM_PARA_K00521199 1185 std::vector<Int> getViewOIdxList( ) { return m_viewOIdxList; } 1200 #endif 1201 #endif 1202 1203 #if HHI_INTER_COMP_PRED_K0052 1204 #if HHI_CAM_PARA_K0052 1186 1205 1187 Int getVoiInVps( Int viewOIdx ) 1206 #else1207 Int getInvViewOIdxList( Int viewOIdx )1208 #endif1209 1188 { 1210 1189 for ( Int i = 0; i < m_viewOIdxList.size(); i++ ) … … 1219 1198 }; 1220 1199 1221 #if HHI_CAM_PARA_K00521222 1200 Bool getViewCompLayerPresentFlag (Int i, Bool d ) { return m_viewCompLayerPresentFlag[ getVoiInVps(i) ][d]; } 1223 1201 Bool getViewCompLayerId (Int i, Bool d ) { return m_viewCompLayerId [ getVoiInVps(i) ][d]; } 1224 #else1225 Bool getViewCompLayerPresentFlag (Int i, Bool d ) { return m_viewCompLayerPresentFlag[ getInvViewOIdxList(i) ][d]; }1226 Bool getViewCompLayerId (Int i, Bool d ) { return m_viewCompLayerId [ getInvViewOIdxList(i) ][d]; }1227 #endif1228 1202 #endif 1229 1203 Bool getDependencyFlag( Int i, Int j ) { return m_dependencyFlag[i][j]; } … … 1347 1321 Void createCamPars(Int iNumViews); 1348 1322 Void deleteCamPars(); 1349 #if HHI_CAM_PARA_K00521350 1323 Void initCamParaVPS( Int vOIdxInVps, Int numCp, Bool cpInSliceSegmentHeaderFlag, Int* cpRefVoi, Int** aaiScale, Int** aaiOffset ); 1351 #else 1352 Void initCamParaVPS ( UInt uiViewIndex, Bool bCamParPresent = false, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 ); 1353 #endif 1354 1355 #if HHI_CAM_PARA_K0052 1324 1356 1325 1357 1326 Void setCpPrecision( Int val ) { m_cpPrecision = val; } … … 1403 1372 Bool getCpPresentFlag( Int i, Int m ) { return m_cpPresentFlag[i][m]; } 1404 1373 1405 #else1406 UInt getCamParPrecision () { return m_uiCamParPrecision; }1407 1408 Bool getCamParPresent ( Int viewIndex ) { return m_bCamParPresent[viewIndex]; }1409 Void setCamParPresent ( Int viewIndex, Bool val ) { m_bCamParPresent[viewIndex] = val; }1410 Bool hasCamParInSliceHeader( Int viewIndex ) { return m_bCamParInSliceHeader[viewIndex]; }1411 Void setHasCamParInSliceHeader( Int viewIndex, Bool b ) { m_bCamParInSliceHeader[viewIndex] = b; }1412 #endif1413 1374 1414 1375 … … 1705 1666 m_qtPredFlag [d] = false; 1706 1667 m_interSdcFlag [d] = false; 1707 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331708 1668 m_depthIntraSkipFlag [d] = false; 1709 #else1710 m_intraSingleFlag [d] = false;1711 #endif1712 1669 } 1713 1670 } … … 1752 1709 Bool getInterSdcFlag( Int d ) { return m_interSdcFlag[d]; } 1753 1710 1754 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331755 1711 Void setDepthIntraSkipFlag( Int d, Bool flag ) { m_depthIntraSkipFlag[d] = flag; } 1756 1712 Bool getDepthIntraSkipFlag( Int d ) { return m_depthIntraSkipFlag[d]; } 1757 #else1758 Void setIntraSingleFlag( Int d, Bool flag ) { m_intraSingleFlag[d] = flag; }1759 Bool getIntraSingleFlag( Int d ) { return m_intraSingleFlag[d]; }1760 #endif1761 1713 1762 1714 private: … … 1775 1727 Bool m_qtPredFlag [2]; 1776 1728 Bool m_interSdcFlag [2]; 1777 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331778 1729 Bool m_depthIntraSkipFlag [2]; 1779 #else1780 Bool m_intraSingleFlag [2];1781 #endif1782 1730 }; 1783 1731 … … 1884 1832 #if H_3D 1885 1833 TComSps3dExtension m_sps3dExtension; 1886 #if !HHI_CAM_PARA_K00521887 UInt m_uiCamParPrecision;1888 Bool m_bCamParInSliceHeader;1889 #endif1890 1834 Int m_aaiCodedScale [2][MAX_NUM_LAYERS]; 1891 1835 Int m_aaiCodedOffset[2][MAX_NUM_LAYERS]; … … 2517 2461 UInt m_nARPStepNum; 2518 2462 Int m_aiFirstTRefIdx [2]; 2519 #if HHI_RES_PRED_K00522520 2463 std::vector<Int> m_pocsInCurrRPSs; 2521 #endif2522 2464 #endif 2523 2465 #if H_3D_IC … … 2526 2468 #endif 2527 2469 #if H_3D 2528 #if HHI_INTER_COMP_PRED_K00522529 2470 std::vector<Int> m_inCmpRefViewIdcs; 2530 2471 Bool m_inCmpPredAvailFlag; 2531 2472 Bool m_inCmpPredFlag; 2532 #endif2533 #if HHI_CAM_PARA_K00522534 2473 Bool m_cpAvailableFlag; 2535 2474 Int m_numViews; 2536 #endif2537 2475 TComPic* m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 2538 2476 Int** m_depthToDisparityB; … … 2540 2478 #endif 2541 2479 #endif 2542 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332543 2480 Bool m_bApplyDIS; 2544 #else2545 #if H_3D_SINGLE_DEPTH2546 Bool m_bApplySingleDepthMode;2547 #endif2548 #endif2549 2481 #if H_3D_IC 2550 2482 Int *m_aICEnableCandidate; … … 2565 2497 Bool m_qtPredFlag ; 2566 2498 Bool m_interSdcFlag ; 2567 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332568 2499 Bool m_depthIntraSkipFlag ; 2569 #else2570 Bool m_intraSingleFlag ;2571 #endif2572 2500 Int m_mpiSubPbSize ; 2573 2501 Int m_subPbSize ; … … 2637 2565 Int getRefPOC ( RefPicList e, Int iRefIdx) { return m_aiRefPOCList[e][iRefIdx]; } 2638 2566 #if H_3D 2639 #if HHI_INTER_COMP_PRED_K00522640 2567 Bool getInCmpPredAvailFlag( ) { return m_inCmpPredAvailFlag; } 2641 #if HHI_CAM_PARA_K00522642 2568 Bool getCpAvailableFlag( ) { return m_cpAvailableFlag; } 2643 #endif2644 2569 Bool getInCompPredFlag( ) { return m_inCmpPredFlag; } 2645 2570 Void setInCompPredFlag( Bool b ) { m_inCmpPredFlag = b; } 2646 2571 Int getInCmpRefViewIdcs( Int i ) { return m_inCmpRefViewIdcs [i]; } 2647 2572 Int getNumCurCmpLIds( ) { return (Int) m_inCmpRefViewIdcs.size(); } 2648 #endif2649 2573 TComPic* getIvPic ( Bool depthFlag, Int viewIndex){ return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2650 2574 #endif … … 2875 2799 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } 2876 2800 Bool getArpRefPicAvailable( RefPicList e, Int viewIdx) {return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; } 2877 #if HHI_RES_PRED_K00522878 2801 std::vector<Int> getPocsInCurrRPSs() { return m_pocsInCurrRPSs; }; 2879 #endif2880 2802 #endif 2881 2803 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; } … … 2886 2808 Int* getInvCodedScale () { return m_aaiCodedScale [1]; } 2887 2809 Int* getInvCodedOffset () { return m_aaiCodedOffset[1]; } 2888 #if HHI_CAM_PARA_K00522889 2810 Void setCpScale( Int j, Int val ) { m_aaiCodedScale[0][j] = val; } 2890 2811 Int getCpScale( Int j ) { return m_aaiCodedScale[0][j]; } … … 2898 2819 Void setCpInvOff( Int j, Int val ) { m_aaiCodedOffset[1][j] = val; } 2899 2820 Int getCpInvOff( Int j ) { return m_aaiCodedOffset[1][j]; } 2900 #endif2901 2821 2902 2822 #endif … … 2906 2826 Void setDepthToDisparityLUTs(); 2907 2827 2908 #if HHI_CAM_PARA_K00522909 2828 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ getVPS()->getVoiInVps( refViewIdx) ]; }; 2910 2829 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ getVPS()->getVoiInVps( refViewIdx) ]; }; 2911 #else2912 Int* getDepthToDisparityB( Int refViewIdx ) { return m_depthToDisparityB[ refViewIdx ]; };2913 Int* getDepthToDisparityF( Int refViewIdx ) { return m_depthToDisparityF[ refViewIdx ]; };2914 #endif2915 2830 #endif 2916 2831 #if H_3D_IC … … 3015 2930 #if H_3D 3016 2931 // 3D-HEVC tool parameters 3017 #if HHI_INTER_COMP_PRED_K00523018 2932 Void deriveInCmpPredAndCpAvailFlag() 3019 2933 { … … 3032 2946 } 3033 2947 3034 #if HHI_CAM_PARA_K00523035 2948 m_cpAvailableFlag = true; 3036 2949 m_inCmpRefViewIdcs.clear(); 3037 #endif3038 2950 Bool allRefCmpLayersAvailFlag = true; 3039 2951 … … 3041 2953 { 3042 2954 m_inCmpRefViewIdcs.push_back( getVPS()->getViewOrderIdx( curCmpLIds[ i ] )); 3043 #if HHI_CAM_PARA_K00523044 2955 if( !getVPS()->getCpPresentFlag( getVPS()->getVoiInVps( getViewIndex() ), getVPS()->getVoiInVps( m_inCmpRefViewIdcs[ i ] ) ) ) 3045 2956 { 3046 2957 m_cpAvailableFlag = false; 3047 2958 } 3048 #endif3049 2959 Bool refCmpCurLIdAvailFlag = false; 3050 2960 if( getVPS()->getViewCompLayerPresentFlag( m_inCmpRefViewIdcs[ i ], !getIsDepth() ) ) … … 3087 2997 }; 3088 2998 3089 #endif3090 2999 3091 3000 Void init3dToolParameters(); 3092 #if HHI_INTER_COMP_PRED_K00523093 3001 Void checkInCompPredRefLayers() 3094 3002 { … … 3105 3013 }; 3106 3014 3107 #endif3108 3015 Bool getIvMvPredFlag ( ) { return m_ivMvPredFlag ; }; 3109 3016 Bool getIvMvScalingFlag ( ) { return m_ivMvScalingFlag ; }; … … 3117 3024 Bool getQtPredFlag ( ) { return m_qtPredFlag ; }; 3118 3025 Bool getInterSdcFlag ( ) { return m_interSdcFlag ; }; 3119 #if SEC_DEPTH_INTRA_SKIP_MODE_K00333120 3026 Bool getDepthIntraSkipFlag ( ) { return m_depthIntraSkipFlag ; }; 3121 #else3122 Bool getIntraSingleFlag ( ) { return m_intraSingleFlag ; };3123 #endif3124 3027 3125 3028 Int getMpiSubPbSize ( ) { return m_mpiSubPbSize ; }; -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComWedgelet.cpp
r1179 r1185 177 177 } 178 178 179 #if SHARP_DMM_CLEAN_K0042180 179 Void TComWedgelet::generateWedgePatternByRotate(const TComWedgelet &rcWedge, Int rotate) 181 180 { … … 210 209 m_uiHeight = rcWedge.m_uiHeight; 211 210 } 212 #endif213 211 214 212 Void TComWedgelet::xGenerateWedgePattern() … … 228 226 xDrawEdgeLine( uhXs, uhYs, uhXe, uhYe, pbTempPattern, iTempStride ); 229 227 230 #if SHARP_DMM_CLEAN_K0042231 228 Int shift = (m_eWedgeRes == HALF_PEL) ? 1 : 0; 232 229 Int endPos = uhYe>>shift; … … 242 239 m_pbPattern[k] = pbTempPattern[k]; 243 240 }; 244 #else245 switch( m_uhOri )246 {247 case( 0 ): { for( UInt iX = 0; iX < uhXs; iX++ ) { UInt iY = 0; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iY++; } } } break;248 case( 1 ): { for( UInt iY = 0; iY < uhYs; iY++ ) { UInt iX = uiTempBlockSize-1; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iX--; } } } break;249 case( 2 ): { for( UInt iX = uiTempBlockSize-1; iX > uhXs; iX-- ) { UInt iY = uiTempBlockSize-1; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iY--; } } } break;250 case( 3 ): { for( UInt iY = uiTempBlockSize-1; iY > uhYs; iY-- ) { UInt iX = 0; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iX++; } } } break;251 case( 4 ):252 {253 if( (uhXs+uhXe) < uiTempBlockSize ) { for( UInt iY = 0; iY < uiTempBlockSize; iY++ ) { UInt iX = 0; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iX++; } } }254 else { for( UInt iY = 0; iY < uiTempBlockSize; iY++ ) { UInt iX = uiTempBlockSize-1; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iX--; } } }255 }256 break;257 case( 5 ):258 {259 if( (uhYs+uhYe) < uiTempBlockSize ) { for( UInt iX = 0; iX < uiTempBlockSize; iX++ ) { UInt iY = 0; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iY++; } } }260 else { for( UInt iX = 0; iX < uiTempBlockSize; iX++ ) { UInt iY = uiTempBlockSize-1; while( pbTempPattern[(iY * iTempStride) + iX] == false ) { pbTempPattern[(iY * iTempStride) + iX] = true; iY--; } } }261 }262 }263 264 clear();265 switch( m_eWedgeRes )266 {267 case( FULL_PEL ): { for( UInt k = 0; k < (m_uiWidth * m_uiHeight); k++ ) { m_pbPattern[k] = pbTempPattern[k]; }; } break;268 case( HALF_PEL ): // sub-sampling by factor 2269 {270 Int iStride = getStride();271 272 UInt uiOffX, uiOffY;273 switch( m_uhOri )274 {275 case( 0 ): { uiOffX = 0; uiOffY = 0; } break;276 case( 1 ): { uiOffX = 1; uiOffY = 0; } break;277 case( 2 ): { uiOffX = 1; uiOffY = 1; } break;278 case( 3 ): { uiOffX = 0; uiOffY = 1; } break;279 case( 4 ):280 {281 if( (uhXs+uhXe) < uiTempBlockSize ) { uiOffX = 0; uiOffY = 0; }282 else { uiOffX = 1; uiOffY = 0; }283 }284 break;285 case( 5 ):286 {287 if( (uhYs+uhYe) < uiTempBlockSize ) { uiOffX = 0; uiOffY = 0; }288 else { uiOffX = 0; uiOffY = 1; }289 }290 break;291 default: { uiOffX = 0; uiOffY = 0; } break;292 }293 294 for(Int iY = 0; iY < m_uiHeight; iY++)295 {296 for(Int iX = 0; iX < m_uiWidth; iX++)297 {298 m_pbPattern[(iY * iStride) + iX] = pbTempPattern[(((iY<<1)+uiOffY) * iTempStride) + ((iX<<1)+uiOffX)];299 }300 }301 }302 break;303 }304 #endif305 241 306 242 if( pbTempPattern ) … … 345 281 for( Int x = x0; x <= x1; x++ ) 346 282 { 347 #if SHARP_DMM_CLEAN_K0042348 283 Int shift = (m_eWedgeRes == HALF_PEL) ? 1 : 0; 349 284 Int stride = iPatternStride >> shift; 350 285 if( steep ) { pbPattern[((x>>shift) * stride) + (y>>shift)] = true; } 351 286 else { pbPattern[((y>>shift) * stride) + (x>>shift)] = true; } 352 #else353 if( steep ) { pbPattern[(x * iPatternStride) + y] = true; }354 else { pbPattern[(y * iPatternStride) + x] = true; }355 #endif356 287 357 288 error += deltaerr; -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TComWedgelet.h
r1179 r1185 124 124 Bool* getScaledPattern(UInt uiWidth); 125 125 126 #if SHARP_DMM_CLEAN_K0042127 126 Void generateWedgePatternByRotate(const TComWedgelet &rcWedge, Int rotate); 128 #endif129 127 Void setWedgelet( UChar uhXs, UChar uhYs, UChar uhXe, UChar uhYe, UChar uhOri, WedgeResolution eWedgeRes, Bool bIsCoarse = false ); 130 128 Void findClosestAngle(); -
branches/HTM-14.0-dev0/source/Lib/TLibCommon/TypeDef.h
r1179 r1185 65 65 #define H_3D ( HEVC_EXT == 2) 66 66 67 #if H_MV 68 #define SONY_MV_V_CONST_C0078 1 // Control disparity vector search range via configuration file 69 #define H_MV_FIX_CONF_WINDOW 1 70 #endif 71 72 #define NTT_BUG_FIX_TK54 1 73 #define BUG_FIX_TK65 1 74 75 #define MTK_I0093 1 76 77 #define RWTH_DBBP_NO_SATD_K0028 1 67 78 68 ///////////////////////////////////////////////////////////////////////////////////////// 79 69 /////////////////////////////////// MAJOR DEFINES /////////////////////////////////// … … 85 75 86 76 #if H_3D 87 #define SEC_DEPTH_INTRA_SKIP_MODE_K0033 1 // Depth intra skip mode88 89 #if SEC_DEPTH_INTRA_SKIP_MODE_K003390 #define NEIGHBORING_PIX_AVAILABILITY_FIX 191 #endif92 93 94 77 #define H_3D_QTLPC 1 // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068 95 78 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units … … 129 112 // SHARP_ARP_CHROMA_I0104 130 113 // MTK_I0072_IVARP_SCALING_FIX 131 #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 132 133 #define SEC_ARP_REM_ENC_RESTRICT_K0035 1 // Removal of encoder restriction of ARP, JCT3V-K0035 114 // SEC_ARP_VIEW_REF_CHECK_J0037 Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1 115 // SEC_ARP_REM_ENC_RESTRICT_K0035 Removal of encoder restriction of ARP, JCT3V-K0035 134 116 135 117 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 … … 200 182 // SEC_ADAPT_DISABLE_IVMP Disabling IVMP merge candidates when IC is enabled, JCT3V-H0070 201 183 // SEC_SIMP_SHIFTED_DV_I0086 Simplification of Shifted DV candidate, JCT3V-I0086 202 203 #define SEC_SHIFTED_IVMC_POS_K0036 1 // Position Derivation for Shifted-IVMC, JCT3V-K0036 184 // SEC_SHIFTED_IVMC_POS_K0036 Position Derivation for Shifted-IVMC, JCT3V-K0036 204 185 205 186 206 187 #define H_3D_TMVP 1 // QC_TMVP_C0047 207 188 // Sony_M23639 208 #if H_3D_TMVP 209 #define H_3D_TMVP_SCALING_FIX_K0053 1 // QC/CY for K0053 210 #endif 189 // H_3D_TMVP_SCALING_FIX_K0053 1 // QC/CY for K0053 190 211 191 212 192 #define H_3D_DIM 1 // DIM, Depth intra modes, includes: … … 249 229 // MTK_DLT_CODING_FIX_H0091 250 230 // HS_DMM_SIGNALLING_I0120 251 // SHARP_DMM1_I0110 //LUT size reduction for DMM1 proposed in JCT3V-I0110231 // SHARP_DMM1_I0110 LUT size reduction for DMM1 proposed in JCT3V-I0110 252 232 // FAST_SDC_OFFSET_DECISION_I0084 253 233 // SEPARATE_FLAG_I0085 … … 256 236 // MTK_DMM_SIM_J0035 257 237 // MTK_J0033 258 // SHARP_DLT_SIMP_J0029 1 // DLT(DepthValue2Idx[]) table derivation cleanup 259 260 #if !SEC_DEPTH_INTRA_SKIP_MODE_K0033 261 #define H_3D_SINGLE_DEPTH 1 // Single depth mode proposed in JCT3V-I0095 262 // HS_SP_SIMP_J0066 263 // SINGLE_DEPTH_SIMP_J0115 1 264 // MTK_SINGLE_DEPTH_VPS_FLAG_J0060 1 // Add VPS control flags and remove slice header control flag for single depth, JCT3V-J0060 265 #endif 238 // SHARP_DLT_SIMP_J0029 DLT(DepthValue2Idx[]) table derivation cleanup 239 // SHARP_DMM_CLEAN_K0042 1 // Generate DMM pattern with rotation 240 266 241 267 242 #define H_3D_INTER_SDC 1 // INTER SDC, Inter simplified depth coding … … 269 244 // SEC_INTER_SDC_G0101 Improved inter SDC with multiple DC candidates 270 245 271 #define H_3D_SPIVMP 1 // H_3D_SPIVMP //JCT3V-F0110: Sub-PU level inter-view motion prediction246 #define H_3D_SPIVMP 1 // H_3D_SPIVMP JCT3V-F0110: Sub-PU level inter-view motion prediction 272 247 // SEC_SPIVMP_MCP_SIZE_G0077, Apply SPIVMP only to 2Nx2N partition, JCT3V-G0077 273 248 // QC_SPIVMP_MPI_G0119 Sub-PU level MPI merge candidate … … 280 255 // SEC_DBBP_FILTERING_H0104 281 256 // MTK_DBBP_SIGNALING_H0094 282 // H_3D_FIX_DBBP_IVMP 283 // SEC_DBBP_EXPLICIT_SIG_I0077 1 //Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077257 // 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. 258 // SEC_DBBP_EXPLICIT_SIG_I0077 Remove the partition derivation and signal dbbp_flag only when the partition mode is 2NxN/Nx2N, JCT3V-I0077 284 259 // Disallow DBBP in 8x8 CU, JCT3V-I0078 285 // SHARP_DBBP_SIMPLE_FLTER_I0109 1 // Simple condition and one dimensional filter for DBBP 286 // SEC_DBBP_DMM4_THRESHOLD_I0076 Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 287 // SEC_DBBP_VIEW_REF_CHECK_J0037 1 // Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4 288 #define HS_DBBP_CLEAN_K0048 1 260 // SHARP_DBBP_SIMPLE_FLTER_I0109 Simple condition and one dimensional filter for DBBP 261 // SEC_DBBP_DMM4_THRESHOLD_I0076 Simplification of threshold derivation for DBBP and DMM4, JCT3V-I0076 262 // SEC_DBBP_VIEW_REF_CHECK_J0037 Signaling dbbp_flag when the current slice has view reference picture(s), JCT3V-J0037 item4 263 // RWTH_DBBP_NO_SATD_K0028 264 // HS_DBBP_CLEAN_K0048 289 265 290 266 #define H_3D_DDD 1 // Disparity derived depth coding 291 267 // LGE_DDD_REMOVAL_J0042_J0030 DDD removal 292 268 269 #define H_3D_DIS 1 // Depth intra skip 270 // SEC_DEPTH_INTRA_SKIP_MODE_K0033 Depth intra skip mode 271 293 272 #define H_3D_FCO 0 // Flexible coding order for 3D 294 #if H_3D_FCO295 #define H_3D_FCO 1296 #endif297 273 298 274 #define H_3D_FAST_INTRA_SDC 1 // I0123 … … 300 276 // OTHERS 301 277 // MTK_SONY_PROGRESSIVE_MV_COMPRESSION_E0170 // Progressive MV Compression, JCT3V-E0170 302 #define H_3D_REN_MAX_DEV_OUT 0 // Output maximal possible shift deviation 278 303 279 #define H_3D_FAST_TEXTURE_ENCODING 1 // Fast merge mode decision and early CU determination for texture component of dependent view, JCT3V-E0173 304 280 // MTK_FAST_TEXTURE_ENCODING_E0173 305 281 #if H_3D_DIM 306 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM and RBC ModeSelection282 #define H_3D_FAST_DEPTH_INTRA 1 // Fast DMM Selection 307 283 // SCU_HS_FAST_DEPTH_INTRA_E0238_HHIFIX 308 284 #endif 309 285 310 286 //HLS 311 //HHI_DEPENDENCY_SIGNALLING_I1_J0107 312 //HHI_TOOL_PARAMETERS_I2_J0107 313 //HHI_VPS_3D_EXTENSION_I3_J0107 287 // HHI_DEPENDENCY_SIGNALLING_I1_J0107 288 // HHI_TOOL_PARAMETERS_I2_J0107 289 // HHI_VPS_3D_EXTENSION_I3_J0107 290 // HHI_INTER_COMP_PRED_K0052 291 // HHI_RES_PRED_K0052 292 // HHI_CAM_PARA_K0052 293 // H_3D_DIRECT_DEP_TYPE 314 294 315 295 // Rate Control … … 319 299 #endif // H_3D 320 300 321 322 323 301 ///////////////////////////////////////////////////////////////////////////////////////// 324 302 /////////////////////////////////// DERIVED DEFINES /////////////////////////////////// 325 303 ///////////////////////////////////////////////////////////////////////////////////////// 326 304 327 // Fixes328 329 #define FIX_TICKET_95 1 // pps_scaling_list_ref_layer_id parsing330 331 305 #if H_3D 332 306 #define H_3D_DISABLE_CHROMA 1 333 #define HHI_VIEW_ID_LIST_I5_J0107 0334 #define HHI_INTER_COMP_PRED_K0052 1335 #define HHI_RES_PRED_K0052 1336 #define HHI_CAM_PARA_K0052 1337 #define HHI_MOVE_SYN_K0052 1338 #define H_3D_ANNEX_SELECTION_FIX 1339 #define H_3D_TMVP_FIX_TICKET_97 1340 #define H_3D_DIRECT_DEP_TYPE 1341 #define H_3D_FIX_TMVP_SCALING_VIEW_ID 1342 #endif343 #define H_MV_FIX_REF_LAYER_PIC_FLAG 1344 #define H_MV_FIX_NUM_VIEWS 1345 307 #define H_3D_OUTPUT_ACTIVE_TOOLS 0 346 347 #if !SEC_DEPTH_INTRA_SKIP_MODE_K0033348 ///// ***** SINGLE DEPTH MODE *********349 #if H_3D_SINGLE_DEPTH350 #define SINGLE_DEPTH_MODE_CAND_LIST_SIZE 2 // size of the sample candidate list351 352 #endif353 308 #endif 354 309 … … 384 339 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 385 340 // LG_ZEROINTRADEPTHRESI_A0087 386 #define SHARP_DMM_CLEAN_K0042 1 // Generate DMM pattern with rotation387 388 #define TICKET083_IVPFLAG_FIX 1389 #define SHARP_SUBBLOCK_CLEAN_K0044 1 // Remove unused bipred restriction390 341 391 342 #endif … … 434 385 // TBD: Check if integration is necessary. 435 386 436 #define H_MV_HLS_FIX 1 387 437 388 #define H_MV_HLS_PTL_LIMITS 0 438 389 #define H_MV_HLS7_GEN 0 // General changes (not tested) 439 #define H_MV_ALIGN_HM_15 1440 390 441 391 // POC -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1179 r1185 39 39 #include "SEIread.h" 40 40 #include "TDecSlice.h" 41 #if H_3D _ANNEX_SELECTION_FIX41 #if H_3D 42 42 #include "TDecTop.h" 43 43 #endif … … 93 93 TDecCavlc::TDecCavlc() 94 94 { 95 #if !HHI_CAM_PARA_K005296 #if H_3D97 m_aaiTempScale = new Int* [ MAX_NUM_LAYERS ];98 m_aaiTempOffset = new Int* [ MAX_NUM_LAYERS ];99 for( UInt uiVId = 0; uiVId < MAX_NUM_LAYERS; uiVId++ )100 {101 m_aaiTempScale [ uiVId ] = new Int [ MAX_NUM_LAYERS ];102 m_aaiTempOffset [ uiVId ] = new Int [ MAX_NUM_LAYERS ];103 }104 #endif105 #endif106 95 } 107 96 108 97 TDecCavlc::~TDecCavlc() 109 98 { 110 #if !HHI_CAM_PARA_K0052111 #if H_3D112 for( UInt uiVId = 0; uiVId < MAX_NUM_LAYERS; uiVId++ )113 {114 delete [] m_aaiTempScale [ uiVId ];115 delete [] m_aaiTempOffset [ uiVId ];116 }117 delete [] m_aaiTempScale;118 delete [] m_aaiTempOffset;119 #endif120 #endif121 99 } 122 100 … … 1048 1026 READ_FLAG( uiCode, "qt_pred_flag" ); sps3dExt->setQtPredFlag( d, uiCode == 1 ); 1049 1027 READ_FLAG( uiCode, "inter_sdc_flag" ); sps3dExt->setInterSdcFlag( d, uiCode == 1 ); 1050 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331051 1028 READ_FLAG( uiCode, "intra_skip_flag" ); sps3dExt->setDepthIntraSkipFlag( d, uiCode == 1 ); 1052 #else1053 READ_FLAG( uiCode, "intra_single_flag" ); sps3dExt->setIntraSingleFlag( d, uiCode == 1 );1054 #endif1055 1029 } 1056 1030 } … … 1063 1037 READ_FLAG( uiCode, "poc_reset_info_present_flag" ); pcPPS->setPocResetInfoPresentFlag( uiCode == 1 ); 1064 1038 READ_FLAG( uiCode, "pps_infer_scaling_list_flag" ); pcPPS->setPpsInferScalingListFlag( uiCode == 1 ); 1065 #if FIX_TICKET_951066 1039 if (pcPPS->getPpsInferScalingListFlag()) 1067 1040 { 1068 1041 READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode ); 1069 1042 } 1070 #else1071 READ_CODE( 6, uiCode, "pps_scaling_list_ref_layer_id" ); pcPPS->setPpsScalingListRefLayerId( uiCode );1072 #endif1073 1043 1074 1044 UInt numRefLocOffsets;; … … 1336 1306 } 1337 1307 1338 #if HHI_INTER_COMP_PRED_K00521339 1308 #if H_3D 1340 1309 pcVPS->initViewCompLayer( ); 1341 #endif1342 1310 #endif 1343 1311 … … 1929 1897 Void TDecCavlc::parseVPS3dExtension( TComVPS* pcVPS ) 1930 1898 { 1931 #if HHI_CAM_PARA_K00521932 1899 UInt uiCode; 1933 1900 READ_UVLC( uiCode, "cp_precision"); pcVPS->setCpPrecision( uiCode ) ; … … 1959 1926 } 1960 1927 pcVPS->deriveCpPresentFlag(); 1961 #else1962 UInt uiCode;1963 1964 UInt uiCamParPrecision = 0;1965 Bool bCamParSlice = false;1966 Bool bCamParPresentFlag = false;1967 1968 READ_UVLC( uiCamParPrecision, "cp_precision" );1969 #if HHI_VIEW_ID_LIST_I5_J01071970 for (Int n = 1; n < pcVPS->getNumViews(); n++)1971 {1972 Int viewIndex = pcVPS->getViewOIdxList( n );1973 #else1974 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)1975 {1976 #endif1977 pcVPS->setCamParPresent ( viewIndex, false );1978 pcVPS->setHasCamParInSliceHeader( viewIndex, false );1979 READ_FLAG( uiCode, "cp_present_flag[i]" ); bCamParPresentFlag = ( uiCode == 1);1980 if ( bCamParPresentFlag )1981 {1982 READ_FLAG( uiCode, "cp_in_slice_segment_header_flag[i]" ); bCamParSlice = ( uiCode == 1);1983 if ( !bCamParSlice )1984 {1985 #if HHI_VIEW_ID_LIST_I5_J01071986 for( UInt m = 0; m < n; n++ )1987 {1988 Int uiBaseIndex = pcVPS->getViewOIdxList ( m );1989 Int iCode;1990 READ_SVLC( iCode, "vps_cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ viewIndex ] = iCode;1991 READ_SVLC( iCode, "vps_cp_off" ); m_aaiTempOffset [ uiBaseIndex ][ viewIndex ] = iCode;1992 READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); m_aaiTempScale [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];1993 READ_SVLC( iCode, "vps_cp_inv_off_plus_off" ); m_aaiTempOffset [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];1994 }1995 }1996 pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );1997 #else1998 for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )1999 {2000 Int iCode;2001 READ_SVLC( iCode, "vps_cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ viewIndex ] = iCode;2002 READ_SVLC( iCode, "vps_cp_off" ); m_aaiTempOffset [ uiBaseIndex ][ viewIndex ] = iCode;2003 READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); m_aaiTempScale [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];2004 READ_SVLC( iCode, "vps_cp_inv_off_plus_off" ); m_aaiTempOffset [ viewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];2005 }2006 }2007 pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset );2008 #endif2009 }2010 }2011 #endif2012 1928 } 2013 1929 #endif … … 2070 1986 #endif 2071 1987 rpcSlice->setSPS(sps); 2072 #if !HHI_INTER_COMP_PRED_K00522073 #if H_3D2074 rpcSlice->init3dToolParameters();2075 #endif2076 #endif2077 1988 rpcSlice->setPPS(pps); 2078 1989 if( pps->getDependentSliceSegmentsEnabledFlag() && ( !firstSliceSegmentInPic )) … … 2468 2379 } 2469 2380 } 2470 #if HHI_INTER_COMP_PRED_K00522471 2381 #if H_3D 2472 2382 if ( getDecTop()->decProcAnnexI() ) … … 2479 2389 rpcSlice->init3dToolParameters(); 2480 2390 } 2481 #endif2482 2391 #endif 2483 2392 #endif … … 2662 2571 } 2663 2572 #if H_3D_IC 2664 #if H_3D_ANNEX_SELECTION_FIX2665 2573 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) 2666 2574 && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 2667 2575 && getDecTop()->decProcAnnexI() 2668 2576 ) 2669 #else2670 else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )2671 #endif2672 2577 { 2673 2578 UInt uiCodeTmp = 0; … … 2766 2671 rpcSlice->setLFCrossSliceBoundaryFlag( (uiCode==1)?true:false); 2767 2672 2768 #if HHI_CAM_PARA_K00522769 2673 #if H_3D 2770 2674 if ( getDecTop()->decProcAnnexI() ) … … 2784 2688 } 2785 2689 #endif 2786 #endif2787 2690 } 2788 2691 … … 2808 2711 } 2809 2712 2810 #if !HHI_CAM_PARA_K00522811 #if H_3D2812 #if H_3D_FCO2813 if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() ) && rpcSlice->getIsDepth() )2814 #else2815 if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() ) && !rpcSlice->getIsDepth() )2816 #endif2817 {2818 UInt uiViewIndex = rpcSlice->getViewIndex();2819 for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )2820 {2821 READ_SVLC( iCode, "cp_scale" ); m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ] = iCode;2822 READ_SVLC( iCode, "cp_off" ); m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ] = iCode;2823 READ_SVLC( iCode, "cp_inv_scale_plus_scale" ); m_aaiTempScale [ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ];2824 READ_SVLC( iCode, "cp_inv_off_plus_off" ); m_aaiTempOffset[ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ];2825 }2826 rpcSlice->setCamparaSlice( m_aaiTempScale, m_aaiTempOffset );2827 }2828 #endif2829 #endif2830 2713 2831 2714 if(pps->getSliceHeaderExtensionPresentFlag()) … … 3100 2983 assert(0); 3101 2984 } 3102 3103 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2985 #if H_3D 3104 2986 Void TDecCavlc::parseDIS( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ ) 3105 2987 { 3106 2988 assert(0); 3107 2989 } 3108 #else3109 #if H_3D_SINGLE_DEPTH3110 Void TDecCavlc::parseSingleDepthMode( TComDataCU* /*pcCU*/, UInt /*uiAbsPartIdx*/, UInt /*uiDepth*/ )3111 {3112 assert(0);3113 }3114 #endif3115 2990 #endif 3116 2991 -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecCAVLC.h
r1179 r1185 52 52 // Class definition 53 53 // ==================================================================================================================== 54 #if H_3D _ANNEX_SELECTION_FIX54 #if H_3D 55 55 class TDecTop; 56 56 #endif 57 58 57 /// CAVLC decoder class 59 58 class TDecCavlc : public SyntaxElementParser, public TDecEntropyIf … … 66 65 void parseShortTermRefPicSet (TComSPS* pcSPS, TComReferencePictureSet* pcRPS, Int idx); 67 66 68 69 #if !HHI_CAM_PARA_K005270 67 #if H_3D 71 Int** m_aaiTempScale;72 Int** m_aaiTempOffset;73 #endif74 #endif75 #if H_3D_ANNEX_SELECTION_FIX76 68 TDecTop* m_decTop; 77 69 #endif … … 118 110 Void parsePPS ( TComPPS* pcPPS); 119 111 #endif 120 #if H_3D _ANNEX_SELECTION_FIX112 #if H_3D 121 113 Void setDecTop ( TDecTop* decTop ) { m_decTop = decTop; }; 122 114 #endif … … 136 128 137 129 Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 138 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033130 #if H_3D 139 131 Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 140 #else141 #if H_3D_SINGLE_DEPTH142 Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );143 #endif144 132 #endif 145 133 Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); … … 182 170 Void parseScalingList ( TComScalingList* scalingList ); 183 171 Void xDecodeScalingList ( TComScalingList *scalingList, UInt sizeId, UInt listId); 184 185 #if H_3D_ANNEX_SELECTION_FIX 172 #if H_3D 186 173 TDecTop* getDecTop() { return m_decTop; }; 187 174 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecCu.cpp
r1179 r1185 310 310 #if H_3D_NBDV 311 311 DisInfo DvInfo; 312 #if !SEC_ARP_REM_ENC_RESTRICT_K0035313 DvInfo.bDV = false;314 #endif315 312 DvInfo.m_acNBDV.setZero(); 316 313 DvInfo.m_aVIdxCan = 0; … … 347 344 if( pcCU->getSlice()->getIsDepth()) 348 345 { 349 #if SEC_ARP_REM_ENC_RESTRICT_K0035350 346 m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo); 351 #else352 DvInfo.bDV = m_ppcCU[uiDepth]->getDispforDepth(0, 0, &DvInfo);353 #endif354 347 } 355 348 else … … 359 352 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 360 353 { 361 #if SEC_ARP_REM_ENC_RESTRICT_K0035362 354 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true); 363 #else364 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true);365 #endif366 355 } 367 356 else 368 357 #endif 369 358 { 370 #if SEC_ARP_REM_ENC_RESTRICT_K0035371 359 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 372 #else373 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);374 #endif375 360 } 376 361 #if H_3D_IV_MERGE … … 545 530 return; 546 531 } 547 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033532 #if H_3D 548 533 m_pcEntropyDecoder->decodeDIS( pcCU, uiAbsPartIdx, uiDepth ); 549 534 if(!pcCU->getDISFlag(uiAbsPartIdx)) 550 535 { 551 #else552 #if H_3D_SINGLE_DEPTH553 m_pcEntropyDecoder->decodeSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );554 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))555 {556 #endif557 536 #endif 558 537 m_pcEntropyDecoder->decodePredMode( pcCU, uiAbsPartIdx, uiDepth ); 559 538 m_pcEntropyDecoder->decodePartSize( pcCU, uiAbsPartIdx, uiDepth ); 560 539 561 #if !HHI_MOVE_SYN_K0052562 #if H_3D_DIM_SDC563 m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth );564 #endif565 #endif566 540 if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 567 541 { … … 570 544 if(pcCU->getIPCMFlag(uiAbsPartIdx)) 571 545 { 572 #if HHI_MOVE_SYN_K0052573 546 #if H_3D_DIM_SDC 574 547 m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth ); 575 #endif576 548 #endif 577 549 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); … … 593 565 m_pcEntropyDecoder->decodeCoeff( pcCU, uiAbsPartIdx, uiDepth, uiCurrWidth, uiCurrHeight, bCodeDQP ); 594 566 setdQPFlag( bCodeDQP ); 595 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 596 } 597 #else 598 #if H_3D_SINGLE_DEPTH 599 } 600 #endif 567 #if H_3D 568 } 601 569 #endif 602 570 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast ); … … 688 656 break; 689 657 case MODE_INTRA: 690 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033658 #if H_3D 691 659 if( m_ppcCU[uiDepth]->getDISFlag(0) ) 692 660 { … … 700 668 #endif 701 669 else 702 #else703 #if H_3D_SINGLE_DEPTH704 if( m_ppcCU[uiDepth]->getSingleDepthFlag(0) )705 xReconIntraSingleDepth( m_ppcCU[uiDepth], 0, uiDepth );706 #if H_3D_DIM_SDC707 else if( m_ppcCU[uiDepth]->getSDCFlag(0) )708 xReconIntraSDC( m_ppcCU[uiDepth], 0, uiDepth );709 #endif710 else711 #else712 #if H_3D_DIM_SDC713 if( m_ppcCU[uiDepth]->getSDCFlag(0) )714 xReconIntraSDC( m_ppcCU[uiDepth], 0, uiDepth );715 else716 #endif717 #endif718 670 #endif 719 671 xReconIntraQT( m_ppcCU[uiDepth], uiDepth ); … … 751 703 } 752 704 753 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033705 #if H_3D 754 706 Void TDecCu::xReconDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 755 707 { … … 828 780 } 829 781 } 830 #else 831 #if H_3D_SINGLE_DEPTH 832 Void TDecCu::xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 833 { 834 UInt uiWidth = pcCU->getWidth ( 0 ); 835 UInt uiHeight = pcCU->getHeight ( 0 ); 836 837 TComYuv* pcRecoYuv = m_ppcYuvReco[uiDepth]; 838 839 UInt uiStride = pcRecoYuv->getStride (); 840 Pel* piReco = pcRecoYuv->getLumaAddr( uiAbsPartIdx ); 841 842 843 AOF( uiWidth == uiHeight ); 844 AOF( uiAbsPartIdx == 0 ); 845 846 //construction of depth candidates 847 Pel testDepth; 848 Pel DepthNeighbours[2]; 849 Int index =0; 850 for( Int i = 0; (i < 2) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 851 { 852 if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i)) 853 { 854 continue; 855 } 856 DepthNeighbours[index]=testDepth; 857 index++; 858 } 859 860 if(index==0) 861 { 862 DepthNeighbours[index]=1<<(g_bitDepthY-1); 863 index++; 864 } 865 866 if(index==1) 867 { 868 DepthNeighbours[index]=ClipY(DepthNeighbours[0] + 1 ); 869 index++; 870 } 871 872 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 873 { 874 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 875 { 876 piReco[ uiX ] =DepthNeighbours[(Int)pcCU->getSingleDepthValue(uiAbsPartIdx)]; 877 } 878 piReco += uiStride; 879 } 880 881 // clear UV 882 UInt uiStrideC = pcRecoYuv->getCStride(); 883 Pel *pRecCb = pcRecoYuv->getCbAddr(); 884 Pel *pRecCr = pcRecoYuv->getCrAddr(); 885 886 for (Int y=0; y<uiHeight/2; y++) 887 { 888 for (Int x=0; x<uiWidth/2; x++) 889 { 890 pRecCb[x] = 1<<(g_bitDepthC-1); 891 pRecCr[x] = 1<<(g_bitDepthC-1); 892 } 893 894 pRecCb += uiStrideC; 895 pRecCr += uiStrideC; 896 } 897 } 898 #endif 899 #endif 900 782 #endif 901 783 #if H_3D_INTER_SDC 902 784 Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) … … 962 844 // compute mask by segmenting depth block 963 845 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE]; 964 #if HS_DBBP_CLEAN_K0048965 846 Bool bValidMask = m_pcPrediction->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(0), pcCU->getHeight(0), pMask, pcCU); 966 #else967 Bool bValidMask = m_pcPrediction->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, pcCU->getWidth(0), pcCU->getHeight(0), pMask);968 #endif969 847 AOF(bValidMask); 970 848 -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecCu.h
r1179 r1185 123 123 Void setdQPFlag ( Bool b ) { m_bDecodeDQP = b; } 124 124 Void xFillPCMBuffer (TComDataCU* pCU, UInt depth); 125 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033125 #if H_3D 126 126 Void xReconDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 127 #else128 #if H_3D_SINGLE_DEPTH129 Void xReconIntraSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );130 #endif131 127 #endif 132 128 #if H_3D_DIM_SDC -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecEntropy.cpp
r1179 r1185 52 52 m_pcEntropyDecoderIf->parseSkipFlag( pcCU, uiAbsPartIdx, uiDepth ); 53 53 } 54 55 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 54 #if H_3D 56 55 Void TDecEntropy::decodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 57 56 { … … 63 62 m_pcEntropyDecoderIf->parseDIS( pcCU, uiAbsPartIdx, uiDepth ); 64 63 } 65 #else66 #if H_3D_SINGLE_DEPTH67 Void TDecEntropy::decodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )68 {69 if( !pcCU->getSlice()->getIntraSingleFlag() )70 {71 return;72 }73 74 m_pcEntropyDecoderIf->parseSingleDepthMode( pcCU, uiAbsPartIdx, uiDepth );75 }76 #endif77 64 #endif 78 65 … … 161 148 { 162 149 m_pcEntropyDecoderIf->parsePartSize( pcCU, uiAbsPartIdx, uiDepth ); 163 #if !HHI_MOVE_SYN_K0052164 #if H_3D_DBBP165 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )166 {167 decodeDBBPFlag(pcCU, uiAbsPartIdx, uiDepth);168 }169 #endif170 #endif171 150 } 172 151 … … 176 155 { 177 156 decodeIntraDirModeLuma ( pcCU, uiAbsPartIdx, uiDepth ); 178 #if H HI_MOVE_SYN_K0052157 #if H_3D_DIM_SDC 179 158 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 180 #endif181 #if H_3D_DIM_SDC182 159 #if H_3D_DISABLE_CHROMA 183 #if !HHI_MOVE_SYN_K0052184 if(!pcCU->getSDCFlag(uiAbsPartIdx) && !pcCU->getSlice()->getIsDepth() )185 #else186 160 if(!pcCU->getSDCFlag(uiAbsPartIdx) && pcCU->getSlice()->getSPS()->getChromaFormatIdc() != 0 ) 187 #endif188 161 #else 189 162 if(!pcCU->getSDCFlag(uiAbsPartIdx)) … … 265 238 pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx); 266 239 #endif 267 #if H HI_MOVE_SYN_K0052240 #if H_3D 268 241 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 269 242 { … … 475 448 decodeMergeIndex( pcCU, uiPartIdx, uiSubPartIdx, uiDepth ); 476 449 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 477 #if H_3D_ARP478 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth );479 #endif480 #if H_3D_IC481 decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );482 #endif483 #if H_3D_DBBP484 450 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) 485 #else486 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 )487 #endif488 451 { 489 452 pcSubCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 490 453 if ( !isMerged ) 491 454 { 492 #if H_3D_VSP493 Int vspFlag[MRG_MAX_NUM_CANDS_MEM];494 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);495 #if H_3D_SPIVMP496 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);497 #endif498 pcSubCU->initAvailableFlags();499 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);500 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours501 #if H_3D_SPIVMP502 , pcMvFieldSP, puhInterDirSP503 #endif504 , numValidMergeCand );505 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag506 #if H_3D_SPIVMP507 , bSPIVMPFlag508 #endif509 , numValidMergeCand );510 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );511 512 #else513 #if H_3D514 pcSubCU->initAvailableFlags();515 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);516 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand );517 518 #else519 455 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 520 #endif521 #endif522 456 isMerged = true; 523 457 } … … 527 461 { 528 462 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 529 #if H_3D_VSP530 Int vspFlag[MRG_MAX_NUM_CANDS_MEM];531 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM);532 #if H_3D_SPIVMP533 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM);534 #endif535 pcSubCU->initAvailableFlags();536 463 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 537 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours538 #if H_3D_SPIVMP539 , pcMvFieldSP, puhInterDirSP540 #endif541 ,numValidMergeCand, uiMergeIndex );542 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag543 #if H_3D_SPIVMP544 , bSPIVMPFlag545 #endif546 ,numValidMergeCand );547 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth );548 #else549 #if H_3D550 pcSubCU->initAvailableFlags();551 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );552 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );553 #else554 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex );555 #endif556 #endif557 464 } 558 465 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); … … 567 474 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 568 475 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 569 #if H_3D_VSP 570 #if H_3D_DBBP 571 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) 572 #else 573 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 ) 574 #endif 575 { 576 if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) ) 577 { 578 UInt dummy; 579 Int vspSize; 580 Int width, height; 581 pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 ); 582 pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize ); 583 pcCU->setVSPFlag( uiSubPartIdx, vspSize ); 584 } 585 } 586 #endif 587 } 588 } 589 #if H_3D_SPIVMP 590 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 591 if (bSPIVMPFlag[uiMergeIndex] != 0) 592 { 593 Int iWidth, iHeight; 594 UInt uiIdx; 595 pcCU->getPartIndexAndSize( uiPartIdx, uiIdx, iWidth, iHeight, uiSubPartIdx, true ); 596 597 UInt uiSPAddr; 598 599 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 600 601 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 602 603 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 604 { 605 pcCU->getSPAbsPartIdx(uiSubPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 606 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 607 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 608 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 609 } 610 } 611 #endif 476 } 477 } 612 478 } 613 479 else … … 706 572 } 707 573 708 #if H HI_MOVE_SYN_K0052574 #if H_3D 709 575 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 710 576 { … … 753 619 pcSubCU->getCUMvField( eRefList )->setAllMv(cMv, ePartSize, uiPartAddr, 0, uiPartIdx); 754 620 } 755 756 621 #else 757 622 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) … … 798 663 } 799 664 #endif 665 800 666 Void TDecEntropy::xDecodeTransform( TComDataCU* pcCU, UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP, Int quadtreeTULog2MinSizeInCU) 801 667 { … … 1131 997 { 1132 998 pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth ); 1133 #if HHI_MOVE_SYN_K00521134 999 if ( pcCU->isSkipped( uiAbsPartIdx ) ) 1135 1000 { 1136 1001 return; 1137 1002 } 1138 #endif1139 1003 1140 1004 … … 1157 1021 Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1158 1022 { 1159 #if HHI_MOVE_SYN_K00521160 1023 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 1161 1024 { 1162 #endif1163 1025 m_pcEntropyDecoderIf->parseDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 1164 #if HHI_MOVE_SYN_K0052 1165 } 1166 #endif 1026 } 1167 1027 } 1168 1028 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecEntropy.h
r1179 r1185 85 85 public: 86 86 virtual Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 87 #if SEC_DEPTH_INTRA_SKIP_MODE_K003387 #if H_3D 88 88 virtual Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 89 #else90 #if H_3D_SINGLE_DEPTH91 virtual Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;92 #endif93 89 #endif 94 90 virtual Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; … … 152 148 Void decodeMvdPU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 153 149 Void decodeMVPIdxPU ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 154 #if HHI_MOVE_SYN_K0052 155 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 156 #endif 150 #if H_3D 151 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, 152 RefPicList eRefList ); 153 #endif 157 154 Void setEntropyDecoder ( TDecEntropyIf* p ); 158 155 Void setBitstream ( TComInputBitstream* p ) { m_pcEntropyDecoderIf->setBitstream(p); } … … 177 174 Void decodeSplitFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 178 175 Void decodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 179 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033176 #if H_3D 180 177 Void decodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ; 181 #else182 #if H_3D_SINGLE_DEPTH183 Void decodeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) ;184 #endif185 178 #endif 186 179 Void decodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecGop.h
r1179 r1185 63 63 // Class definition 64 64 // ==================================================================================================================== 65 #if H_3D _ANNEX_SELECTION_FIX65 #if H_3D 66 66 class TDecTop; 67 67 #endif … … 83 83 TDecSlice* m_pcSliceDecoder; 84 84 TComLoopFilter* m_pcLoopFilter; 85 #if H_3D _ANNEX_SELECTION_FIX85 #if H_3D 86 86 TDecTop* m_decTop; 87 87 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecSbac.cpp
r1179 r1185 52 52 , m_cCUSplitFlagSCModel ( 1, 1, NUM_SPLIT_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels ) 53 53 , m_cCUSkipFlagSCModel ( 1, 1, NUM_SKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 54 #if SEC_DEPTH_INTRA_SKIP_MODE_K003354 #if H_3D 55 55 , m_cCUDISFlagSCModel ( 1, 1, NUM_DIS_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 56 56 , m_cCUDISTypeSCModel ( 1, 1, NUM_DIS_TYPE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 57 #else58 #if H_3D_SINGLE_DEPTH59 , m_cCUSingleDepthFlagSCModel ( 1, 1, NUM_SINGLEDEPTH_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels)60 , m_cSingleDepthValueSCModel ( 1, 1, NUM_SINGLE_DEPTH_VALUE_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)61 #endif62 57 #endif 63 58 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 141 136 m_cCUSplitFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 142 137 m_cCUSkipFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SKIP_FLAG ); 143 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033138 #if H_3D 144 139 m_cCUDISFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DIS_FLAG ); 145 140 m_cCUDISTypeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DIS_TYPE ); 146 #else147 #if H_3D_SINGLE_DEPTH148 m_cCUSingleDepthFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );149 m_cSingleDepthValueSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );150 #endif151 141 #endif 152 142 m_cCUMergeFlagExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT ); … … 217 207 m_cCUSplitFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SPLIT_FLAG ); 218 208 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 219 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033209 #if H_3D 220 210 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 221 211 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 222 #else223 #if H_3D_SINGLE_DEPTH224 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );225 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );226 #endif227 212 #endif 228 213 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT ); … … 594 579 #endif 595 580 } 596 597 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 581 #if H_3D 598 582 Void TDecSbac::parseDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 599 583 { … … 639 623 } 640 624 } 641 #else 642 #if H_3D_SINGLE_DEPTH 643 Void TDecSbac::parseSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 644 { 645 pcCU->setSingleDepthFlagSubParts( false, uiAbsPartIdx, uiDepth ); 646 UInt uiSymbol = 0; 647 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUSingleDepthFlagSCModel.get( 0, 0, 0 ) ); 648 if( uiSymbol ) 649 { 650 pcCU->setSingleDepthFlagSubParts( true, uiAbsPartIdx, uiDepth ); 651 pcCU->setSkipFlagSubParts( false, uiAbsPartIdx, uiDepth ); 652 pcCU->setSDCFlagSubParts( false, uiAbsPartIdx, uiDepth ); 653 pcCU->setPredModeSubParts( MODE_INTRA, uiAbsPartIdx, uiDepth ); 654 pcCU->setPartSizeSubParts( SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 655 pcCU->setLumaIntraDirSubParts (DC_IDX, uiAbsPartIdx, uiDepth ); 656 pcCU->setSizeSubParts( g_uiMaxCUWidth>>uiDepth, g_uiMaxCUHeight>>uiDepth, uiAbsPartIdx, uiDepth ); 657 pcCU->setMergeFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 658 pcCU->setTrIdxSubParts(0, uiAbsPartIdx, uiDepth); 659 pcCU->setCbfSubParts(0, 1, 1, uiAbsPartIdx, uiDepth); 660 661 UInt absValDeltaDC = 0; 662 663 UInt uiUnaryIdx = 0; 664 UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE; 665 if ( uiNumCand > 1 ) 666 { 667 for( ; uiUnaryIdx < uiNumCand - 1; ++uiUnaryIdx ) 668 { 669 UInt uiSymbol2 = 0; 670 if ( uiUnaryIdx==0 ) 671 { 672 m_pcTDecBinIf->decodeBin( uiSymbol2, m_cSingleDepthValueSCModel.get( 0, 0, 0 ) ); 673 } 674 else 675 { 676 m_pcTDecBinIf->decodeBinEP( uiSymbol2); 677 } 678 if( uiSymbol2 == 0 ) 679 { 680 break; 681 } 682 } 683 } 684 absValDeltaDC = uiUnaryIdx; 685 pcCU->setSingleDepthValueSubParts((Pel)absValDeltaDC,uiAbsPartIdx, 0, uiDepth); 686 } 687 } 688 #endif 689 #endif 690 625 #endif 691 626 /** parse merge flag 692 627 * \param pcCU -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecSbac.h
r1179 r1185 125 125 126 126 Void parseSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 127 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033127 #if H_3D 128 128 Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 129 #else130 #if H_3D_SINGLE_DEPTH131 Void parseSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );132 #endif133 129 #endif 134 130 Void parseCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); … … 182 178 ContextModel3DBuffer m_cCUSplitFlagSCModel; 183 179 ContextModel3DBuffer m_cCUSkipFlagSCModel; 184 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033180 #if H_3D 185 181 ContextModel3DBuffer m_cCUDISFlagSCModel; 186 182 ContextModel3DBuffer m_cCUDISTypeSCModel; 187 #else188 #if H_3D_SINGLE_DEPTH189 ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;190 ContextModel3DBuffer m_cSingleDepthValueSCModel;191 #endif192 183 #endif 193 184 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecTop.cpp
r1179 r1185 76 76 xDeleteArray( m_adBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 77 77 xDeleteArray( m_aiBaseViewShiftLUT, MAX_NUM_LAYERS, MAX_NUM_LAYERS, 2 ); 78 #if HHI_CAM_PARA_K005279 78 xDeleteArray( m_receivedIdc, m_vps->getNumViews() ); 80 #else81 xDeleteArray( m_receivedIdc, m_uiMaxViewIndex + 1 );82 #endif83 79 } 84 80 … … 95 91 m_firstReceivedPoc = -2; 96 92 97 #if HHI_CAM_PARA_K005298 93 for (Int i = 0; i <= vps->getMaxLayersMinus1(); i++) 99 94 { … … 134 129 } 135 130 136 #else137 m_uiMaxViewIndex = -1;138 for (Int i = 0; i <= vps->getMaxLayersMinus1(); i++)139 {140 Int curViewIdx = m_vps->getViewIndex( m_vps->getLayerIdInNuh( i ));141 m_bCamParsVaryOverTime = m_bCamParsVaryOverTime || vps->hasCamParInSliceHeader( curViewIdx );142 m_uiMaxViewIndex = std::max( m_uiMaxViewIndex, curViewIdx ) ;143 }144 assert( m_receivedIdc == NULL );145 m_receivedIdc = new Int*[ m_uiMaxViewIndex + 1];146 for (Int i = 0; i <= m_uiMaxViewIndex; i++)147 {148 m_receivedIdc[i] = new Int[ m_uiMaxViewIndex + 1 ];149 }150 151 xResetReceivedIdc( true );152 153 for (Int viewIndex = 0; viewIndex <= m_uiMaxViewIndex ; viewIndex++ )154 {155 if (m_vps->getCamParPresent( viewIndex ) )156 {157 if( !m_vps->hasCamParInSliceHeader( viewIndex ) )158 {159 for (Int baseViewIndex = 0; baseViewIndex < viewIndex ; baseViewIndex++ )160 {161 m_receivedIdc [ baseViewIndex ][ viewIndex ] = -1;162 m_aaiCodedScale [ baseViewIndex ][ viewIndex ] = m_vps->getCodedScale (viewIndex) [ baseViewIndex ];163 m_aaiCodedOffset[ baseViewIndex ][ viewIndex ] = m_vps->getCodedOffset (viewIndex) [ baseViewIndex ];164 165 m_receivedIdc [ viewIndex ][ baseViewIndex ] = -1;166 m_aaiCodedScale [ viewIndex ][ baseViewIndex ] = m_vps->getInvCodedScale (viewIndex) [ baseViewIndex ];167 m_aaiCodedOffset[ viewIndex ][ baseViewIndex ] = m_vps->getInvCodedOffset(viewIndex) [ baseViewIndex ];168 xInitLUTs( baseViewIndex, viewIndex, m_aaiCodedScale[ baseViewIndex ][ viewIndex ], m_aaiCodedOffset[ baseViewIndex ][ viewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );169 xInitLUTs( viewIndex, baseViewIndex, m_aaiCodedScale[ viewIndex ][ baseViewIndex ], m_aaiCodedOffset[ viewIndex ][ baseViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );170 }171 }172 }173 }174 }175 176 #endif177 131 178 132 … … 181 135 CamParsCollector::xResetReceivedIdc( Bool overWriteFlag ) 182 136 { 183 #if HHI_CAM_PARA_K0052184 137 for (Int i = 0; i < m_vps->getNumViews(); i++) 185 138 { 186 139 for (Int j = 0; j < m_vps->getNumViews(); j++) 187 140 { 188 #else189 for (Int i = 0; i <= m_uiMaxViewIndex; i++)190 {191 for (Int j = 0; j <= m_uiMaxViewIndex; j++)192 {193 #endif194 141 if ( overWriteFlag || ( m_receivedIdc[i][j] != -1 ) ) 195 142 { … … 232 179 CamParsCollector::xInitLUTs( UInt uiSourceView, UInt uiTargetView, Int iScale, Int iOffset, Double****& radLUT, Int****& raiLUT) 233 180 { 234 #if HHI_CAM_PARA_K0052235 181 Int iLog2DivLuma = m_uiBitDepthForLUT + m_vps->getCpPrecision() + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 ); 236 #else237 Int iLog2DivLuma = m_uiBitDepthForLUT + m_vps->getCamParPrecision() + 1 - m_iLog2Precision; AOF( iLog2DivLuma > 0 );238 #endif239 182 Int iLog2DivChroma = iLog2DivLuma + 1; 240 183 … … 313 256 } 314 257 315 #if HHI_CAM_PARA_K0052316 258 UInt voiInVps = m_vps->getVoiInVps(pcSlice->getViewIndex()); 317 259 if( m_vps->getCpInSliceSegmentHeaderFlag( voiInVps ) ) // check consistency of slice parameters here … … 348 290 } 349 291 } 350 #else351 UInt uiViewIndex = pcSlice->getViewIndex();352 if( m_vps->getCamParPresent( uiViewIndex ) )353 {354 if( m_vps->hasCamParInSliceHeader( uiViewIndex ) ) // check consistency of slice parameters here355 {356 for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ )357 {358 if ( m_receivedIdc[ uiViewIndex ][ uiBaseViewIndex ] != 0 )359 {360 AOF( m_aaiCodedScale [ uiViewIndex ][ uiBaseViewIndex ] == pcSlice->getInvCodedScale () [ uiBaseViewIndex ] );361 AOF( m_aaiCodedOffset[ uiViewIndex ][ uiBaseViewIndex ] == pcSlice->getInvCodedOffset() [ uiBaseViewIndex ] );362 }363 else364 {365 m_receivedIdc [ uiViewIndex ][ uiBaseViewIndex ] = 1;366 m_aaiCodedScale [ uiViewIndex ][ uiBaseViewIndex ] = pcSlice->getInvCodedScale () [ uiBaseViewIndex ];367 m_aaiCodedOffset[ uiViewIndex ][ uiBaseViewIndex ] = pcSlice->getInvCodedOffset() [ uiBaseViewIndex ];368 xInitLUTs( uiViewIndex, uiBaseViewIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseViewIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT);369 }370 if ( m_receivedIdc[ uiBaseViewIndex ][ uiViewIndex ] != 0 )371 {372 AOF( m_aaiCodedScale [ uiBaseViewIndex ][ uiViewIndex ] == pcSlice->getCodedScale () [ uiBaseViewIndex ] );373 AOF( m_aaiCodedOffset[ uiBaseViewIndex ][ uiViewIndex ] == pcSlice->getCodedOffset () [ uiBaseViewIndex ] );374 }375 else376 {377 m_receivedIdc [ uiBaseViewIndex ][ uiViewIndex ] = 1;378 m_aaiCodedScale [ uiBaseViewIndex ][ uiViewIndex ] = pcSlice->getCodedScale () [ uiBaseViewIndex ];379 m_aaiCodedOffset[ uiBaseViewIndex ][ uiViewIndex ] = pcSlice->getCodedOffset () [ uiBaseViewIndex ];380 xInitLUTs( uiBaseViewIndex, uiViewIndex, m_aaiCodedScale[ uiBaseViewIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseViewIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT);381 }382 }383 }384 }385 #endif386 292 387 293 … … 408 314 if( iPOC == m_firstReceivedPoc ) 409 315 { 410 #if HHI_CAM_PARA_K0052411 316 fprintf( m_pCodedScaleOffsetFile, "#ViewOrderIdx ViewIdVal\n" ); 412 317 fprintf( m_pCodedScaleOffsetFile, "#------------ -------------\n" ); … … 436 341 m_aaiCodedScale [ baseVoiInVps ][ voiInVps ], 437 342 m_aaiCodedOffset[ baseVoiInVps ][ voiInVps ], m_vps->getCpPrecision() ); 438 #else439 fprintf( m_pCodedScaleOffsetFile, "# ViewIndex ViewId\n" );440 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------\n" );441 for( UInt uiViewIndex = 0; uiViewIndex <= m_uiMaxViewIndex; uiViewIndex++ )442 {443 fprintf( m_pCodedScaleOffsetFile, "%12d %12d\n", uiViewIndex, m_vps->getViewIdVal( uiViewIndex ) );444 }445 fprintf( m_pCodedScaleOffsetFile, "\n\n");446 fprintf( m_pCodedScaleOffsetFile, "# StartFrame EndFrame TargetView BaseView CodedScale CodedOffset Precision\n" );447 fprintf( m_pCodedScaleOffsetFile, "#----------- ------------ ------------ ------------ ------------ ------------ ------------\n" );448 }449 if( iPOC == m_firstReceivedPoc || m_bCamParsVaryOverTime )450 {451 Int iS = iPOC;452 Int iE = ( m_bCamParsVaryOverTime ? iPOC : ~( 1 << 31 ) );453 #if HHI_CAM_PARA_K0052454 for( UInt uiViewIndex = 0; uiViewIndex < m_vps->getNumViews(); uiViewIndex++ )455 {456 for( UInt uiBaseIndex = 0; uiBaseIndex < m_vps->getNumViews(); uiBaseIndex++ )457 #else458 for( UInt uiViewIndex = 0; uiViewIndex <= m_uiMaxViewIndex; uiViewIndex++ )459 {460 for( UInt uiBaseIndex = 0; uiBaseIndex <= m_uiMaxViewIndex; uiBaseIndex++ )461 #endif462 {463 if( uiViewIndex != uiBaseIndex )464 {465 if ( m_receivedIdc[uiBaseIndex][uiViewIndex] != 0 )466 {467 #if HHI_CAM_PARA_K0052468 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n",469 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_vps->getCpPrecision() );470 #else471 fprintf( m_pCodedScaleOffsetFile, "%12d %12d %12d %12d %12d %12d %12d\n",472 iS, iE, uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_vps->getCamParPrecision() );473 #endif474 #endif475 343 } 476 344 } … … 556 424 initROM(); 557 425 #endif 558 #if H_3D _ANNEX_SELECTION_FIX426 #if H_3D 559 427 m_cCavlcDecoder.setDecTop( this ); 560 428 #endif … … 867 735 868 736 #endif 869 #if H_3D870 #if !HHI_INTER_COMP_PRED_K0052871 m_apcSlicePilot->init3dToolParameters();872 #endif873 #endif874 737 pps->setSPS(sps); 875 738 pps->setNumSubstreams(pps->getEntropyCodingSyncEnabledFlag() ? ((sps->getPicHeightInLumaSamples() + sps->getMaxCUHeight() - 1) / sps->getMaxCUHeight()) * (pps->getNumTileColumnsMinus1() + 1) : 1); … … 1098 961 xActivateParameterSets(); 1099 962 1100 #if SONY_MV_V_CONST_C0078963 #if H_MV 1101 964 //Check Multiview Main profile constraint in G.11.1.1 1102 965 // When ViewOrderIdx[ i ] derived according to any active VPS is equal to 1 … … 1230 1093 pcPic->setViewIndex( getViewIndex() ); 1231 1094 pcPic->setIsDepth ( getIsDepth () ); 1232 #endif1233 #endif1234 #if HHI_RES_PRED_K00521235 1095 pcSlice->setIvPicLists( m_ivPicLists ); 1236 1096 #endif 1097 #endif 1098 1099 1100 1237 1101 1238 1102 if (bNextSlice) … … 1271 1135 1272 1136 #if H_3D 1273 #if !HHI_RES_PRED_K00521274 pcSlice->setIvPicLists( m_ivPicLists );1275 #endif1276 1277 #if HHI_INTER_COMP_PRED_K00521278 1137 pcSlice->checkInCompPredRefLayers(); 1279 1138 #if H_3D_IV_MERGE … … 1284 1143 #endif 1285 1144 #endif 1286 #else1287 #if H_3D_IV_MERGE1288 #if H_3D_FCO1289 //assert( !getIsDepth() );1290 #else1291 assert( !getIsDepth() || ( pcSlice->getTexturePic() != 0 ) );1292 #endif1293 #endif1294 #endif1295 1145 #endif 1296 1146 #if H_MV -
branches/HTM-14.0-dev0/source/Lib/TLibDecoder/TDecTop.h
r1179 r1185 97 97 TComVPS* m_vps; 98 98 Int** m_receivedIdc; 99 #if!HHI_CAM_PARA_K0052100 Int m_uiMaxViewIndex;101 #endif102 99 Int m_lastPoc; 103 100 Int m_firstReceivedPoc; … … 244 241 Bool m_isDepth; 245 242 CamParsCollector* m_pcCamParsCollector; 246 #endif247 #if H_3D_ANNEX_SELECTION_FIX248 243 Int m_profileIdc; 249 244 #endif … … 305 300 Bool getIsDepth () { return m_isDepth; } 306 301 Void setCamParsCollector( CamParsCollector* pcCamParsCollector ) { m_pcCamParsCollector = pcCamParsCollector; } 307 #endif 308 #if H_3D_ANNEX_SELECTION_FIX 302 309 303 Void setProfileIdc() 310 304 { … … 331 325 Bool decProcAnnexI() { assert( m_profileIdc != -1 ); return ( m_profileIdc == 8); } 332 326 #endif 333 334 327 #endif 335 328 protected: -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r1179 r1185 40 40 #include "SEIwrite.h" 41 41 #include "../TLibCommon/TypeDef.h" 42 #if H_3D _ANNEX_SELECTION_FIX42 #if H_3D 43 43 #include "TEncTop.h" 44 44 #endif … … 862 862 WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" ); 863 863 WRITE_FLAG( pcPPS->getPpsInferScalingListFlag( ) ? 1 : 0 , "pps_infer_scaling_list_flag" ); 864 #if FIX_TICKET_95865 864 if (pcPPS->getPpsInferScalingListFlag()) 866 865 { 867 866 WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" ); 868 867 } 869 #else870 WRITE_CODE( pcPPS->getPpsScalingListRefLayerId( ), 6, "pps_scaling_list_ref_layer_id" );871 #endif872 868 WRITE_UVLC( 0, "num_ref_loc_offsets" ); 873 869 WRITE_FLAG( 0 , "colour_mapping_enabled_flag" ); … … 901 897 WRITE_FLAG( sps3dExt->getQtPredFlag( d ) ? 1 : 0 , "qt_pred_flag" ); 902 898 WRITE_FLAG( sps3dExt->getInterSdcFlag( d ) ? 1 : 0 , "inter_sdc_flag" ); 903 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033904 899 WRITE_FLAG( sps3dExt->getDepthIntraSkipFlag( d ) ? 1 : 0 , "intra_skip_flag" ); 905 #else906 WRITE_FLAG( sps3dExt->getIntraSingleFlag( d ) ? 1 : 0 , "intra_single_flag" );907 #endif908 900 } 909 901 } … … 1614 1606 Void TEncCavlc::codeVPS3dExtension( TComVPS* pcVPS ) 1615 1607 { 1616 #if HHI_CAM_PARA_K00521617 1608 WRITE_UVLC( pcVPS->getCpPrecision( ), "cp_precision" ); 1618 1609 for (Int n = 1; n < pcVPS->getNumViews(); n++) … … 1640 1631 } 1641 1632 } 1642 #else1643 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );1644 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++)1645 {1646 WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" );1647 if ( pcVPS->getCamParPresent(viewIndex) )1648 {1649 WRITE_FLAG( pcVPS->hasCamParInSliceHeader(viewIndex) ? 1 : 0, "cp_in_slice_segment_header_flag[i]" );1650 if ( !pcVPS->hasCamParInSliceHeader(viewIndex) )1651 {1652 for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )1653 {1654 WRITE_SVLC( pcVPS->getCodedScale (viewIndex)[ uiIndex ], "vps_cp_scale" );1655 WRITE_SVLC( pcVPS->getCodedOffset (viewIndex)[ uiIndex ], "vps_cp_off" );1656 WRITE_SVLC( pcVPS->getInvCodedScale (viewIndex)[ uiIndex ] + pcVPS->getCodedScale (viewIndex)[ uiIndex ], "vps_cp_inv_scale_plus_scale" );1657 WRITE_SVLC( pcVPS->getInvCodedOffset(viewIndex)[ uiIndex ] + pcVPS->getCodedOffset(viewIndex)[ uiIndex ], "vps_cp_inv_off_plus_off" );1658 }1659 }1660 }1661 }1662 #endif1663 1633 } 1664 1634 #endif … … 1945 1915 #endif 1946 1916 1947 #if HHI_INTER_COMP_PRED_K00521948 1917 #if H_3D 1949 1918 if( getEncTop()->decProcAnnexI() ) … … 1954 1923 } 1955 1924 } 1956 #endif1957 1925 #endif 1958 1926 if(pcSlice->getSPS()->getUseSAO()) … … 2086 2054 } 2087 2055 #if H_3D_IC 2088 #if H_3D_ANNEX_SELECTION_FIX2089 2056 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) 2090 2057 && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 2091 2058 && getEncTop()->decProcAnnexI() 2092 2059 ) 2093 #else2094 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 )2095 #endif2096 2060 { 2097 2061 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); … … 2148 2112 WRITE_FLAG(pcSlice->getLFCrossSliceBoundaryFlag()?1:0, "slice_loop_filter_across_slices_enabled_flag"); 2149 2113 } 2150 #if HHI_CAM_PARA_K00522151 2114 #if H_3D 2152 2115 if (getEncTop()->decProcAnnexI() ) … … 2166 2129 } 2167 2130 #endif 2168 #endif 2169 } 2170 2171 #if !HHI_CAM_PARA_K0052 2172 #if H_3D 2173 #if H_3D_FCO 2174 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && pcSlice->getIsDepth() ) 2175 #else 2176 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() ) 2177 #endif 2178 { 2179 for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ ) 2180 { 2181 WRITE_SVLC( pcSlice->getCodedScale ()[ uiId ], "cp_scale" ); 2182 WRITE_SVLC( pcSlice->getCodedOffset ()[ uiId ], "cp_off" ); 2183 WRITE_SVLC( pcSlice->getInvCodedScale ()[ uiId ] + pcSlice->getCodedScale ()[ uiId ], "cp_inv_scale_plus_scale" ); 2184 WRITE_SVLC( pcSlice->getInvCodedOffset()[ uiId ] + pcSlice->getCodedOffset()[ uiId ], "cp_inv_off_plus_off" ); 2185 } 2186 } 2187 #endif 2188 #endif 2131 } 2132 2189 2133 2190 2134 … … 2532 2476 assert(0); 2533 2477 } 2534 2535 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2478 #if H_3D 2536 2479 Void TEncCavlc::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2537 2480 { 2538 2481 assert(0); 2539 2482 } 2540 #else2541 #if H_3D_SINGLE_DEPTH2542 Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx )2543 {2544 assert(0);2545 }2546 #endif2547 2483 #endif 2548 2484 -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncCavlc.h
r1179 r1185 68 68 TComSlice* m_pcSlice; 69 69 UInt m_uiCoeffCost; 70 #if H_3D _ANNEX_SELECTION_FIX70 #if H_3D 71 71 TEncTop* m_encTop; 72 72 #endif … … 129 129 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 130 130 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 131 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033131 #if H_3D 132 132 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 133 #else134 #if H_3D_SINGLE_DEPTH135 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );136 #endif137 133 #endif 138 134 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); … … 187 183 Void codeDFFlag ( UInt uiCode, const Char *pSymbolName ); 188 184 Void codeDFSvlc ( Int iCode, const Char *pSymbolName ); 189 #if H_3D _ANNEX_SELECTION_FIX185 #if H_3D 190 186 TEncTop* getEncTop() { return m_encTop; }; 191 187 Void setEncTop( TEncTop* et ) { m_encTop = et; }; -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncCfg.h
r1179 r1185 78 78 Int m_interViewRefPosL[2][MAX_NUM_REF_PICS]; 79 79 #endif 80 #if H HI_INTER_COMP_PRED_K005280 #if H_3D 81 81 Bool m_interCompPredFlag; 82 82 #endif … … 98 98 , m_numActiveRefLayerPics(0) 99 99 #endif 100 #if HHI_INTER_COMP_PRED_K0052101 100 #if H_3D 102 101 , m_interCompPredFlag(false) 103 #endif104 102 #endif 105 103 { … … 188 186 Int m_iSearchRange; // 0:Full frame 189 187 Int m_bipredSearchRange; 190 #if SONY_MV_V_CONST_C0078188 #if H_MV 191 189 Bool m_bUseDisparitySearchRangeRestriction; 192 190 Int m_iVerticalDisparitySearchRange; … … 380 378 381 379 //====== Camera Parameters ====== 382 #if !HHI_CAM_PARA_K0052383 UInt m_uiCamParPrecision;384 Bool m_bCamParInSliceHeader;385 Int** m_aaiCodedScale;386 Int** m_aaiCodedOffset;387 #endif388 380 TAppComCamPara* m_cameraParameters; 389 381 … … 418 410 Bool m_bUseQTL; 419 411 #endif 420 #if H_3D_ANNEX_SELECTION_FIX 412 421 413 Int m_profileIdc; 422 #endif423 414 424 415 #endif … … 435 426 , m_isDepth(false) 436 427 , m_bUseVSO(false) 437 #if H_3D_ANNEX_SELECTION_FIX438 428 , m_profileIdc( -1 ) 439 #endif440 429 #endif 441 430 #endif … … 522 511 Void setSearchRange ( Int i ) { m_iSearchRange = i; } 523 512 Void setBipredSearchRange ( Int i ) { m_bipredSearchRange = i; } 524 #if SONY_MV_V_CONST_C0078513 #if H_MV 525 514 Void setUseDisparitySearchRangeRestriction ( Bool b ) { m_bUseDisparitySearchRangeRestriction = b; } 526 515 Void setVerticalDisparitySearchRange ( Int i ) { m_iVerticalDisparitySearchRange = i; } … … 578 567 Int getFastSearch () { return m_iFastSearch; } 579 568 Int getSearchRange () { return m_iSearchRange; } 580 #if SONY_MV_V_CONST_C0078569 #if H_MV 581 570 Bool getUseDisparitySearchRangeRestriction () { return m_bUseDisparitySearchRangeRestriction; } 582 571 Int getVerticalDisparitySearchRange () { return m_iVerticalDisparitySearchRange; } … … 923 912 924 913 //==== CAMERA PARAMETERS ========== 925 #if !HHI_CAM_PARA_K0052926 Void setCamParPrecision ( UInt u ) { m_uiCamParPrecision = u; }927 Void setCamParInSliceHeader ( Bool b ) { m_bCamParInSliceHeader = b; }928 Void setCodedScale ( Int** p ) { m_aaiCodedScale = p; }929 Void setCodedOffset ( Int** p ) { m_aaiCodedOffset = p; }930 #endif931 914 Void setCameraParameters ( TAppComCamPara* c) { m_cameraParameters = c; } 932 915 … … 976 959 Bool getUseQTL () { return m_bUseQTL; } 977 960 #endif 978 #if H_3D_ANNEX_SELECTION_FIX979 961 Void setProfileIdc( Int a ) { assert( a == 1 || a == 6 || a == 8 ); m_profileIdc = a; } 980 962 Bool decProcAnnexI() { assert( m_profileIdc != -1 ); return ( m_profileIdc == 8); } 981 #endif982 963 983 964 #endif // H_3D -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r1179 r1185 441 441 #if H_3D_VSP 442 442 DisInfo DvInfo; 443 #if !SEC_ARP_REM_ENC_RESTRICT_K0035444 DvInfo.bDV = false;445 #endif446 443 DvInfo.m_acNBDV.setZero(); 447 444 DvInfo.m_aVIdxCan = 0; … … 589 586 if (rpcTempCU->getSlice()->getIsDepth() ) 590 587 { 591 #if SEC_ARP_REM_ENC_RESTRICT_K0035592 588 rpcTempCU->getDispforDepth(0, 0, &DvInfo); 593 #else594 DvInfo.bDV = rpcTempCU->getDispforDepth(0, 0, &DvInfo);595 #endif596 589 } 597 590 else … … 600 593 #if H_3D_NBDV_REF 601 594 if( rpcTempCU->getSlice()->getDepthRefinementFlag() ) 602 #if SEC_ARP_REM_ENC_RESTRICT_K0035603 595 rpcTempCU->getDisMvpCandNBDV(&DvInfo, true); 604 #else605 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo, true);606 #endif607 596 else 608 597 #endif 609 #if SEC_ARP_REM_ENC_RESTRICT_K0035610 598 rpcTempCU->getDisMvpCandNBDV(&DvInfo); 611 #else612 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo);613 #endif614 599 615 600 #if H_3D_IV_MERGE … … 730 715 } 731 716 #endif 732 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033717 #if H_3D 733 718 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 734 719 if( rpcBestCU->getSlice()->getDepthIntraSkipFlag() ) … … 737 722 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 738 723 } 739 #else740 #if H_3D_SINGLE_DEPTH741 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP );742 if( rpcBestCU->getSlice()->getIntraSingleFlag() )743 {744 xCheckRDCostSingleDepth( rpcBestCU, rpcTempCU, SIZE_2Nx2N );745 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP );746 }747 #endif748 724 #endif 749 725 if(!earlyDetectionSkipMode) … … 1058 1034 // speedup for inter frames 1059 1035 if( rpcBestCU->getSlice()->getSliceType() == I_SLICE || 1060 1061 1062 1036 rpcBestCU->getCbf( 0, TEXT_LUMA ) != 0 || 1037 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) != 0 || 1038 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 1063 1039 #if H_3D_DIM_ENC 1064 1040 || rpcBestCU->getSlice()->getIsDepth() 1065 1041 #endif 1066 1042 ) // avoid very complex intra if it is unlikely … … 1068 1044 #if H_3D_DIM 1069 1045 Bool bOnlyIVP = false; 1070 #if TICKET083_IVPFLAG_FIX1071 1046 Bool bUseIVP = true; 1072 #endif1073 1047 if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) && 1074 1075 1076 1077 1048 rpcBestCU->getSlice()->getSliceType() != I_SLICE && 1049 rpcBestCU->getCbf( 0, TEXT_LUMA ) == 0 && 1050 rpcBestCU->getCbf( 0, TEXT_CHROMA_U ) == 0 && 1051 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) == 0 1078 1052 ) 1079 1053 { 1080 1054 bOnlyIVP = true; 1081 #if TICKET083_IVPFLAG_FIX1082 1055 bUseIVP = rpcBestCU->getSlice()->getIntraContourFlag(); 1083 #endif1084 1056 } 1085 #if TICKET083_IVPFLAG_FIX1086 1057 if( bUseIVP ) 1087 1058 { 1088 #endif 1089 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bOnlyIVP ); 1059 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N, bOnlyIVP ); 1090 1060 #else 1091 1061 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N ); … … 1120 1090 #endif 1121 1091 } 1122 #if TICKET083_IVPFLAG_FIX1092 #if H_3D 1123 1093 } 1124 1094 #endif 1125 1095 } 1126 1096 // test PCM 1127 1097 if(pcPic->getSlice(0)->getSPS()->getUsePCM() … … 1607 1577 return; 1608 1578 } 1609 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331579 #if H_3D 1610 1580 m_pcEntropyCoder->encodeDIS( pcCU, uiAbsPartIdx ); 1611 1581 if(!pcCU->getDISFlag(uiAbsPartIdx)) 1612 { 1613 #else 1614 #if H_3D_SINGLE_DEPTH 1615 m_pcEntropyCoder->encodeSingleDepthMode( pcCU, uiAbsPartIdx ); 1616 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 1617 { 1618 #endif 1619 #endif 1582 #endif 1583 { 1620 1584 m_pcEntropyCoder->encodePredMode( pcCU, uiAbsPartIdx ); 1621 1585 1622 1586 m_pcEntropyCoder->encodePartSize( pcCU, uiAbsPartIdx, uiDepth ); 1623 1587 1624 #if !HHI_MOVE_SYN_K00521625 #if H_3D_DIM_SDC1626 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false );1627 #endif1628 #endif1629 1588 if (pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) 1630 1589 { … … 1632 1591 if(pcCU->getIPCMFlag(uiAbsPartIdx)) 1633 1592 { 1634 #if HHI_MOVE_SYN_K00521635 1593 #if H_3D_DIM_SDC 1636 1594 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1637 1595 #endif 1638 #endif1639 1596 // Encode slice finish 1640 1597 finishCU(pcCU,uiAbsPartIdx,uiDepth); … … 1645 1602 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1646 1603 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1647 #if HHI_MOVE_SYN_K00521648 1604 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1649 1605 #if H_3D_DIM_SDC 1650 1606 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1651 1607 #endif 1652 #endif1653 1608 #if H_3D_ARP 1654 1609 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); … … 1665 1620 #endif 1666 1621 setdQPFlag( bCodeDQP ); 1667 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1668 } 1669 #else 1670 #if H_3D_SINGLE_DEPTH 1671 } 1672 #endif 1622 #if H_3D 1623 } 1673 1624 #endif 1674 1625 // --- write terminating bit --- … … 1889 1840 #if H_3D_ARP 1890 1841 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 1891 #if SEC_ARP_REM_ENC_RESTRICT_K00351892 1842 if( nARPWMax < 0 || bICFlag ) 1893 #else1894 if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag )1895 #endif1896 1843 { 1897 1844 nARPWMax = 0; … … 2059 2006 2060 2007 rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth ); 2061 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332008 #if H_3D 2062 2009 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2063 #else2064 #if H_3D_SINGLE_DEPTH2065 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );2066 #endif2067 2010 #endif 2068 2011 #if H_3D_VSP // possible bug fix … … 2105 2048 } 2106 2049 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2107 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332050 #if H_3D 2108 2051 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2109 #else2110 #if H_3D_SINGLE_DEPTH2111 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );2112 #endif2113 2052 #endif 2114 2053 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); … … 2233 2172 Bool bFirstTime = true; 2234 2173 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 2235 #if SEC_ARP_REM_ENC_RESTRICT_K00352236 2174 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || rpcTempCU->getICFlag(0) ) 2237 #else2238 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) )2239 #endif2240 2175 { 2241 2176 nARPWMax = 0; … … 2263 2198 2264 2199 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2265 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332200 #if H_3D 2266 2201 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2267 #else2268 #if H_3D_SINGLE_DEPTH2269 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );2270 #endif2271 2202 #endif 2272 2203 rpcTempCU->setPartSizeSubParts ( ePartSize, 0, uhDepth ); … … 2377 2308 } 2378 2309 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2379 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332310 #if H_3D 2380 2311 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2381 #else2382 #if H_3D_SINGLE_DEPTH2383 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth );2384 #endif2385 2312 #endif 2386 2313 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); … … 2492 2419 } 2493 2420 2494 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332495 2421 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2496 2422 { … … 2564 2490 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2565 2491 } 2566 #else2567 #if H_3D_SINGLE_DEPTH2568 Void TEncCu::xCheckRDCostSingleDepth( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize )2569 {2570 UInt uiDepth = rpcTempCU->getDepth( 0 );2571 if( !rpcBestCU->getSlice()->getIsDepth() || (eSize != SIZE_2Nx2N))2572 {2573 return;2574 }2575 2576 #if H_3D_VSO // M52577 if( m_pcRdCost->getUseRenModel() )2578 {2579 UInt uiWidth = m_ppcOrigYuv[uiDepth]->getWidth ();2580 UInt uiHeight = m_ppcOrigYuv[uiDepth]->getHeight ();2581 Pel* piSrc = m_ppcOrigYuv[uiDepth]->getLumaAddr();2582 UInt uiSrcStride = m_ppcOrigYuv[uiDepth]->getStride ();2583 m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );2584 }2585 #endif2586 2587 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth );2588 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );2589 rpcTempCU->setPredModeSubParts( MODE_INTRA, 0, uiDepth );2590 rpcTempCU->setCUTransquantBypassSubParts( rpcTempCU->getCUTransquantBypass(0), 0, uiDepth );2591 2592 rpcTempCU->setTrIdxSubParts(0, 0, uiDepth);2593 rpcTempCU->setCbfSubParts(0, 1, 1, 0, uiDepth);2594 rpcTempCU->setSingleDepthFlagSubParts(true, 0, uiDepth);2595 rpcTempCU->setLumaIntraDirSubParts (DC_IDX, 0, uiDepth);2596 #if H_3D_DIM_SDC2597 rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth);2598 #endif2599 2600 UInt uiPreCalcDistC;2601 m_pcPredSearch ->estIntraPredSingleDepth ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, false );2602 2603 2604 m_ppcRecoYuvTemp[uiDepth]->copyToPicLuma(rpcTempCU->getPic()->getPicYuvRec(), rpcTempCU->getAddr(), rpcTempCU->getZorderIdxInCU() );2605 2606 2607 m_pcEntropyCoder->resetBits();2608 if ( rpcTempCU->getSlice()->getPPS()->getTransquantBypassEnableFlag())2609 {2610 m_pcEntropyCoder->encodeCUTransquantBypassFlag( rpcTempCU, 0, true );2611 }2612 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true );2613 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true );2614 2615 2616 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]);2617 2618 rpcTempCU->getTotalBits() = m_pcEntropyCoder->getNumberOfWrittenBits();2619 rpcTempCU->getTotalBins() = ((TEncBinCABAC *)((TEncSbac*)m_pcEntropyCoder->m_pcEntropyCoderIf)->getEncBinIf())->getBinsCoded();2620 2621 2622 #if H_3D_VSO // M62623 if( m_pcRdCost->getUseLambdaScaleVSO())2624 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCostVSO( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );2625 else2626 #endif2627 rpcTempCU->getTotalCost() = m_pcRdCost->calcRdCost( rpcTempCU->getTotalBits(), rpcTempCU->getTotalDistortion() );2628 2629 2630 xCheckDQP( rpcTempCU );2631 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth);2632 }2633 #endif2634 #endif2635 2492 2636 2493 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) … … 2675 2532 AOF( uiDepthStride != 0 ); 2676 2533 2677 #if HS_DBBP_CLEAN_K00482678 2534 PartSize eVirtualPartSize = m_pcPredSearch->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, uiWidth, rpcTempCU); 2679 2535 … … 2681 2537 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE]; 2682 2538 Bool bValidMask = m_pcPredSearch->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, uiWidth, uiHeight, pMask, rpcTempCU); 2683 #else2684 PartSize eVirtualPartSize = m_pcPredSearch->getPartitionSizeFromDepth(pDepthPels, uiDepthStride, uiWidth);2685 2686 // derive segmentation mask from depth2687 Bool pMask[MAX_CU_SIZE*MAX_CU_SIZE];2688 Bool bValidMask = m_pcPredSearch->getSegmentMaskFromDepth(pDepthPels, uiDepthStride, uiWidth, uiHeight, pMask);2689 #endif2690 2539 2691 2540 if( !bValidMask ) … … 2796 2645 2797 2646 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2798 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332647 #if H_3D 2799 2648 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2800 #else2801 #if H_3D_SINGLE_DEPTH2802 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );2803 #endif2804 2649 #endif 2805 2650 rpcTempCU->setPartSizeSubParts( eSize, 0, uiDepth ); … … 2820 2665 2821 2666 #if H_3D_DIM_SDC 2822 #if 0 // H_3D_DISABLE_CHROMA2823 if( !rpcTempCU->getSDCFlag( 0 ) && !rpcTempCU->getSlice()->getIsDepth() )2824 #else2825 2667 if( !rpcTempCU->getSDCFlag( 0 ) ) 2826 #endif2827 2668 #endif 2828 2669 m_pcPredSearch ->estIntraPredChromaQT( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC ); … … 2834 2675 } 2835 2676 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2836 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332677 #if H_3D 2837 2678 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2838 2679 if(!rpcTempCU->getDISFlag(0)) 2839 2680 { 2840 #else2841 #if H_3D_SINGLE_DEPTH2842 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true );2843 if(!rpcTempCU->getSingleDepthFlag(0))2844 {2845 #endif2846 2681 #endif 2847 2682 m_pcEntropyCoder->encodePredMode( rpcTempCU, 0, true ); 2848 2683 m_pcEntropyCoder->encodePartSize( rpcTempCU, 0, uiDepth, true ); 2849 #if !HHI_MOVE_SYN_K0052 2684 m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0, true ); 2685 m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true ); 2850 2686 #if H_3D_DIM_SDC 2851 2687 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2852 #endif2853 #endif2854 m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0, true );2855 m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true );2856 #if HHI_MOVE_SYN_K00522857 #if H_3D_DIM_SDC2858 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );2859 #endif2860 2688 #endif 2861 2689 … … 2870 2698 2871 2699 setdQPFlag( bCodeDQP ); 2872 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2873 } 2874 #else 2875 #if H_3D_SINGLE_DEPTH 2876 } 2877 #endif 2700 #if H_3D 2701 } 2878 2702 #endif 2879 2703 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); … … 2904 2728 2905 2729 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2906 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332730 #if H_3D 2907 2731 rpcTempCU->setDISFlagSubParts( false, 0, uiDepth ); 2908 #else2909 #if H_3D_SINGLE_DEPTH2910 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth );2911 #endif2912 2732 #endif 2913 2733 rpcTempCU->setIPCMFlag(0, true); … … 2927 2747 } 2928 2748 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2929 #if SEC_DEPTH_INTRA_SKIP_MODE_K00332749 #if H_3D 2930 2750 m_pcEntropyCoder->encodeDIS( rpcTempCU, 0, true ); 2931 #else2932 #if H_3D_SINGLE_DEPTH2933 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true );2934 #endif2935 2751 #endif 2936 2752 m_pcEntropyCoder->encodePredMode ( rpcTempCU, 0, true ); 2937 2753 m_pcEntropyCoder->encodePartSize ( rpcTempCU, 0, uiDepth, true ); 2938 #if !HHI_MOVE_SYN_K0052 2754 m_pcEntropyCoder->encodeIPCMInfo ( rpcTempCU, 0, true ); 2939 2755 #if H_3D_DIM_SDC 2940 2756 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true ); 2941 #endif2942 #endif2943 m_pcEntropyCoder->encodeIPCMInfo ( rpcTempCU, 0, true );2944 #if HHI_MOVE_SYN_K00522945 #if H_3D_DIM_SDC2946 m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );2947 #endif2948 2757 #endif 2949 2758 m_pcRDGoOnSbacCoder->store(m_pppcRDSbacCoder[uiDepth][CI_TEMP_BEST]); -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncCu.h
r1179 r1185 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); 160 160 #endif 161 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033161 #if H_3D 162 162 Void xCheckRDCostDIS ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 163 #else164 #if H_3D_SINGLE_DEPTH165 Void xCheckRDCostSingleDepth ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize );166 #endif167 163 #endif 168 164 #if H_3D_DIM -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r1179 r1185 111 111 m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx ); 112 112 } 113 114 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 113 #if H_3D 115 114 Void TEncEntropy::encodeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 116 115 { … … 125 124 m_pcEntropyCoderIf->codeDIS( pcCU, uiAbsPartIdx ); 126 125 } 127 #else 128 #if H_3D_SINGLE_DEPTH 129 Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 130 { 131 if(!pcCU->getSlice()->getIntraSingleFlag() ) 132 { 133 return; 134 } 135 if( bRD ) 136 { 137 uiAbsPartIdx = 0; 138 } 139 m_pcEntropyCoderIf->codeSingleDepthMode( pcCU, uiAbsPartIdx ); 140 } 141 #endif 142 #endif 143 126 #endif 144 127 /** encode merge flag 145 128 * \param pcCU … … 271 254 m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth ); 272 255 273 #if !HHI_MOVE_SYN_K0052274 #if H_3D_DBBP275 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 && pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() )276 {277 encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD);278 }279 #endif280 #endif281 256 } 282 257 … … 904 879 Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 905 880 { 906 #if HHI_MOVE_SYN_K0052907 881 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && 908 882 ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || … … 911 885 pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 912 886 { 913 #endif914 887 if( bRD ) 915 888 { … … 917 890 } 918 891 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 919 #if HHI_MOVE_SYN_K0052 920 } 921 #endif 892 } 922 893 } 923 894 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncEntropy.h
r1179 r1185 82 82 virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 83 83 virtual Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 84 #if SEC_DEPTH_INTRA_SKIP_MODE_K003384 #if H_3D 85 85 virtual Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 86 #else87 #if H_3D_SINGLE_DEPTH88 virtual Void codeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;89 #endif90 86 #endif 91 87 virtual Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; … … 179 175 Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 180 176 Void encodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 181 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033177 #if H_3D 182 178 Void encodeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false ); 183 #else184 #if H_3D_SINGLE_DEPTH185 Void encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false );186 #endif187 179 #endif 188 180 Void encodePUWise ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r1179 r1185 395 395 Void TEncGOP::initGOP( Int iPOCLast, Int iNumPicRcvd, TComList<TComPic*>& rcListPic, TComList<TComPicYuv*>& rcListPicYuvRecOut, std::list<AccessUnit>& accessUnitsInGOP) 396 396 { 397 #if H_MV_ALIGN_HM_15398 397 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut, false ); 399 #else400 xInitGOP( iPOCLast, iNumPicRcvd, rcListPic, rcListPicYuvRecOut );401 #endif402 398 m_iNumPicCoded = 0; 403 399 } … … 885 881 Int numDirectRefLayers = vps ->getNumDirectRefLayers( getLayerId() ); 886 882 #endif 887 #if H HI_INTER_COMP_PRED_K0052883 #if H_3D 888 884 pcSlice->setIvPicLists( m_ivPicLists ); 889 885 … … 893 889 GOPEntry gopEntry = m_pcCfg->getGOPEntry( (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid ); 894 890 #endif 891 892 895 893 896 894 Bool interLayerPredLayerIdcPresentFlag = false; … … 929 927 assert( pcSlice->getNumActiveRefLayerPics() == gopEntry.m_numActiveRefLayerPics ); 930 928 931 #if HHI_INTER_COMP_PRED_K0052932 929 #if H_3D 933 930 if ( m_pcEncTop->decProcAnnexI() ) … … 962 959 pcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( ) ) ? 1 : 0 )); 963 960 #endif 964 #endif965 961 966 962 pcSlice->createInterLayerReferencePictureSet( m_ivPicLists, m_refPicSetInterLayer0, m_refPicSetInterLayer1 ); … … 1009 1005 } 1010 1006 } 1011 #endif1012 #if !HHI_INTER_COMP_PRED_K00521013 #if H_3D1014 pcSlice->setIvPicLists( m_ivPicLists );1015 #if H_3D_IV_MERGE1016 assert( !m_pcEncTop->getIsDepth() || ( pcSlice->getTexturePic() != 0 ) );1017 #endif1018 #endif1019 1007 #endif 1020 1008 #if H_3D_IC -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r1179 r1185 58 58 , m_cCUSplitFlagSCModel ( 1, 1, NUM_SPLIT_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels ) 59 59 , m_cCUSkipFlagSCModel ( 1, 1, NUM_SKIP_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 60 #if SEC_DEPTH_INTRA_SKIP_MODE_K003360 #if H_3D 61 61 , m_cCUDISFlagSCModel ( 1, 1, NUM_DIS_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 62 62 , m_cCUDISTypeSCModel ( 1, 1, NUM_DIS_TYPE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 63 #else64 #if H_3D_SINGLE_DEPTH65 , m_cCUSingleDepthFlagSCModel ( 1, 1, NUM_SINGLEDEPTH_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels)66 , m_cSingleDepthValueSCModel ( 1, 1, NUM_SINGLE_DEPTH_VALUE_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels)67 #endif68 63 #endif 69 64 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 139 134 140 135 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 141 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033136 #if H_3D 142 137 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 143 138 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 144 #else145 #if H_3D_SINGLE_DEPTH146 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );147 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );148 #endif149 139 #endif 150 140 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT); … … 224 214 curCost = m_cCUSplitFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 225 215 curCost += m_cCUSkipFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG ); 226 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033216 #if H_3D 227 217 curCost += m_cCUDISFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_FLAG ); 228 218 curCost += m_cCUDISTypeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DIS_TYPE ); 229 #else230 #if H_3D_SINGLE_DEPTH231 curCost += m_cCUSingleDepthFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG );232 curCost += m_cSingleDepthValueSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );233 #endif234 219 #endif 235 220 curCost += m_cCUMergeFlagExtSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT); … … 302 287 303 288 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 304 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033289 #if H_3D 305 290 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 306 291 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 307 #else308 #if H_3D_SINGLE_DEPTH309 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG );310 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA );311 #endif312 292 #endif 313 293 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT); … … 466 446 m_pcBinIf->encodeBinsEP( bins, numBins ); 467 447 } 468 469 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 448 #if H_3D 470 449 Void TEncSbac::codeDIS( TComDataCU* pcCU, UInt uiAbsPartIdx ) 471 450 { … … 498 477 } 499 478 } 500 #else 501 #if H_3D_SINGLE_DEPTH 502 Void TEncSbac::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ) 503 { 504 UInt uiSymbol = pcCU->getSingleDepthFlag(uiAbsPartIdx ) ? 1 : 0; 505 m_pcBinIf->encodeBin( uiSymbol, m_cCUSingleDepthFlagSCModel.get( 0, 0, 0 ) ); 506 if(uiSymbol) 507 { 508 UInt uiUnaryIdx = (UInt) pcCU->getSingleDepthValue(uiAbsPartIdx); 509 UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE; 510 if ( uiNumCand > 1 ) 511 { 512 for( UInt ui = 0; ui < uiNumCand - 1; ++ui ) 513 { 514 const UInt uiSymbol2 = ui == uiUnaryIdx ? 0 : 1; 515 if ( ui==0 ) 516 { 517 m_pcBinIf->encodeBin( uiSymbol2, m_cSingleDepthValueSCModel.get( 0, 0, 0 ) ); 518 } 519 else 520 { 521 m_pcBinIf->encodeBinEP( uiSymbol2 ); 522 } 523 if( uiSymbol2 == 0 ) 524 { 525 break; 526 } 527 } 528 } 529 } 530 } 531 #endif 532 #endif 533 479 #endif 534 480 /** Coding of coeff_abs_level_minus3 535 481 * \param uiSymbol value of coeff_abs_level_minus3 -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncSbac.h
r1179 r1185 146 146 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 147 147 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 148 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033148 #if H_3D 149 149 Void codeDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 150 #else151 #if H_3D_SINGLE_DEPTH152 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx );153 #endif154 150 #endif 155 151 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); … … 219 215 ContextModel3DBuffer m_cCUSplitFlagSCModel; 220 216 ContextModel3DBuffer m_cCUSkipFlagSCModel; 221 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033217 #if H_3D 222 218 ContextModel3DBuffer m_cCUDISFlagSCModel; 223 219 ContextModel3DBuffer m_cCUDISTypeSCModel; 224 #else225 #if H_3D_SINGLE_DEPTH226 ContextModel3DBuffer m_cCUSingleDepthFlagSCModel;227 ContextModel3DBuffer m_cSingleDepthValueSCModel;228 #endif229 220 #endif 230 221 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r1179 r1185 915 915 } 916 916 m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true ); 917 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033917 #if H_3D 918 918 m_pcEntropyCoder->encodeDIS(pcCU, 0, true ); 919 919 if(!pcCU->getDISFlag(uiAbsPartIdx)) 920 #else921 #if H_3D_SINGLE_DEPTH922 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true );923 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))924 #endif925 920 #endif 926 921 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 927 922 } 928 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033923 #if H_3D 929 924 else 930 925 { 931 926 m_pcEntropyCoder->encodeDIS(pcCU, 0, true ); 932 927 } 933 #else 934 #if H_3D_SINGLE_DEPTH 935 else 936 { 937 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true ); 938 } 939 #endif 940 #endif 941 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 928 #endif 929 #if H_3D 942 930 if(!pcCU->getDISFlag(uiAbsPartIdx)) 943 931 { 944 #else945 #if H_3D_SINGLE_DEPTH946 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))947 {948 #endif949 932 #endif 950 933 m_pcEntropyCoder ->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 951 934 952 #if !HHI_MOVE_SYN_K0052953 #if H_3D_DIM_SDC954 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );955 #endif956 #endif957 935 if (pcCU->isIntra(0) && pcCU->getPartitionSize(0) == SIZE_2Nx2N ) 958 936 { … … 960 938 if ( pcCU->getIPCMFlag (0)) 961 939 { 962 #if HHI_MOVE_SYN_K0052963 940 #if H_3D_DIM_SDC 964 941 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 965 942 #endif 966 #endif967 943 return; 968 944 } 969 945 } 970 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 971 } 972 #else 973 #if H_3D_SINGLE_DEPTH 974 } 975 #endif 976 #endif 977 } 978 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 946 #if H_3D 947 } 948 #endif 949 } 950 #if H_3D 979 951 if(!pcCU->getDISFlag(uiAbsPartIdx)) 980 952 { 981 #else982 #if H_3D_SINGLE_DEPTH983 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx))984 {985 #endif986 953 #endif 987 954 // luma prediction mode … … 992 959 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 ); 993 960 #if H_3D_DIM_SDC 994 #if HHI_MOVE_SYN_K0052995 #if H_3D_DIM_SDC996 961 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 997 #endif998 #endif999 962 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && getDimType( pcCU->getLumaIntraDir( 0 ) ) < DIM_NUM_TYPE ) 1000 963 { … … 1013 976 { 1014 977 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiPart * uiQNumParts ); 1015 1016 #if HHI_MOVE_SYN_K0052 978 #if H_3D_SDC 1017 979 } 1018 980 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 1019 981 for( UInt uiPart = 0; uiPart < 4; uiPart++ ) 1020 982 { 1021 #endif1022 #if H_3D_DIM_SDC1023 983 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && getDimType( pcCU->getLumaIntraDir( uiPart * uiQNumParts ) ) < DIM_NUM_TYPE ) 1024 984 { … … 1032 992 m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx ); 1033 993 #if H_3D_DIM_SDC 1034 #if HHI_MOVE_SYN_K00521035 994 if( uiAbsPartIdx == 0 ) 1036 995 { 1037 996 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 1038 997 } 1039 #endif1040 998 if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx ) ) < DIM_NUM_TYPE ) 1041 999 { … … 1044 1002 #endif 1045 1003 } 1046 } 1047 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 1048 } 1049 #else 1050 #if H_3D_SINGLE_DEPTH 1051 } 1052 #endif 1053 #endif 1004 #if H_3D 1005 } 1006 #endif 1007 } 1054 1008 } 1055 1009 if( bChroma ) … … 1914 1868 } 1915 1869 1916 #if SEC_DEPTH_INTRA_SKIP_MODE_K00331870 #if H_3D 1917 1871 Void TEncSearch::xIntraCodingDIS( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ) 1918 1872 { … … 2006 1960 dRDCost = m_pcRdCost->calcRdCost( uiBits, ruiDist ); 2007 1961 } 2008 #else 2009 #if H_3D_SINGLE_DEPTH 2010 Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor ) 2011 { 2012 UInt uiWidth = pcCU ->getWidth ( 0 ); 2013 UInt uiHeight = pcCU ->getHeight ( 0 ); 2014 UInt uiStride = pcOrgYuv ->getStride (); 2015 Pel* piOrg = pcOrgYuv ->getLumaAddr( uiAbsPartIdx ); 2016 Pel* piPred = pcPredYuv->getLumaAddr( uiAbsPartIdx ); 2017 2018 AOF( uiWidth == uiHeight ); 2019 AOF( uiAbsPartIdx == 0 ); 2020 pcCU->setSingleDepthValueSubParts((Pel)iTestDepthIdx,uiAbsPartIdx, 0, pcCU->getDepth(0)); 2021 //===== reconstruction ===== 2022 2023 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 2024 { 2025 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 2026 { 2027 piPred[ uiX ] = DepthNeighbor[iTestDepthIdx]; 2028 } 2029 piPred += uiStride; 2030 } 2031 2032 // clear UV 2033 UInt uiStrideC = pcPredYuv->getCStride(); 2034 Pel *pRecCb = pcPredYuv->getCbAddr(); 2035 Pel *pRecCr = pcPredYuv->getCrAddr(); 2036 2037 for (Int y=0; y<uiHeight/2; y++) 2038 { 2039 for (Int x=0; x<uiWidth/2; x++) 2040 { 2041 pRecCb[x] = 1<<(g_bitDepthC-1); 2042 pRecCr[x] = 1<<(g_bitDepthC-1); 2043 } 2044 2045 pRecCb += uiStrideC; 2046 pRecCr += uiStrideC; 2047 } 2048 2049 piPred = pcPredYuv->getLumaAddr( uiAbsPartIdx ); 2050 //===== determine distortion ===== 2051 #if H_3D_VSO 2052 if ( m_pcRdCost->getUseVSO() ) 2053 ruiDist = m_pcRdCost->getDistPartVSO ( pcCU, uiAbsPartIdx, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight, false ); 2054 else 2055 #endif 2056 ruiDist = m_pcRdCost->getDistPart(g_bitDepthY, piPred, uiStride, piOrg, uiStride, uiWidth, uiHeight ); 2057 2058 //===== determine rate and r-d cost ===== 2059 m_pcEntropyCoder->resetBits(); 2060 m_pcEntropyCoder->encodeSingleDepthMode( pcCU, 0, true ); 2061 UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits(); 2062 2063 #if H_3D_VSO 2064 if ( m_pcRdCost->getUseLambdaScaleVSO()) 2065 dRDCost = m_pcRdCost->calcRdCostVSO( uiBits, ruiDist ); 2066 else 2067 #endif 2068 dRDCost = m_pcRdCost->calcRdCost( uiBits, ruiDist ); 2069 } 2070 #endif 2071 #endif 2072 1962 #endif 2073 1963 #if H_3D_DIM_SDC 2074 1964 Void TEncSearch::xIntraCodingSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi ) … … 2318 2208 2319 2209 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth( 0 ), true ); 2320 #if !HHI_MOVE_SYN_K00522321 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );2322 #endif2323 2210 2324 2211 // encode pred direction + DC residual data 2325 2212 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 2326 #if H HI_MOVE_SYN_K00522213 #if H_3D_SDC 2327 2214 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 2328 2215 #endif … … 3021 2908 pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) ); 3022 2909 } 3023 3024 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 2910 #if H_3D 3025 2911 Void TEncSearch::estIntraPredDIS( TComDataCU* pcCU, 3026 2912 TComYuv* pcOrgYuv, … … 3081 2967 pcCU->getTotalDistortion() = uiBestDist; 3082 2968 } 3083 #else 3084 #if H_3D_SINGLE_DEPTH 3085 Void 3086 TEncSearch::estIntraPredSingleDepth( TComDataCU* pcCU, 3087 TComYuv* pcOrgYuv, 3088 TComYuv* pcPredYuv, 3089 TComYuv* pcResiYuv, 3090 TComYuv* pcRecoYuv, 3091 UInt& ruiDistC, 3092 Bool bLumaOnly ) 3093 { 3094 UInt uiDepth = pcCU->getDepth(0); 3095 UInt uiWidth = pcCU->getWidth (0); 3096 UInt uiHeight = pcCU->getHeight(0); 3097 3098 3099 Pel* piOrg = pcOrgYuv ->getLumaAddr( 0, uiWidth ); 3100 UInt uiStride = pcPredYuv->getStride(); 3101 3102 Int index=0; 3103 Pel testDepth; 3104 Pel DepthNeighbours[2]; 3105 //construction of depth candidates 3106 for( Int i = 0; (i < 2) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 3107 { 3108 if(!pcCU->getNeighDepth (0, 0, &testDepth, i)) 3109 { 3110 continue; 3111 } 3112 DepthNeighbours[index]=testDepth; 3113 index++; 3114 } 3115 3116 if(index==0) 3117 { 3118 DepthNeighbours[index]=1<<(g_bitDepthY-1); 3119 index++; 3120 } 3121 3122 if(index==1) 3123 { 3124 DepthNeighbours[index]=ClipY(DepthNeighbours[0] + 1 ); 3125 index++; 3126 } 3127 3128 3129 Dist uiDist = 0; 3130 Double dCost = 0.0; 3131 Dist uiBestDist = 0; 3132 Double dBestCost = MAX_DOUBLE; 3133 Pel pBestSingleDepthValue = 0; 3134 3135 for( Int testdepthidx = 0; testdepthidx < index ; testdepthidx++ ) 3136 { 3137 // set context models 3138 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST] ); 3139 3140 // determine residual for partition 3141 uiDist = 0; 3142 dCost = 0.0; 3143 #if H_3D_VSO // M36 3144 if( m_pcRdCost->getUseRenModel() ) 3145 { 3146 m_pcRdCost->setRenModelData( pcCU, 0, piOrg, uiStride, uiWidth, uiHeight ); 3147 } 3148 #endif 3149 xIntraCodingSingleDepth(pcCU, 0, pcOrgYuv, pcPredYuv, uiDist, dCost, testdepthidx, DepthNeighbours); 3150 // check r-d cost 3151 if( dCost < dBestCost ) 3152 { 3153 uiBestDist = uiDist; 3154 dBestCost = dCost; 3155 pBestSingleDepthValue = pcCU->getSingleDepthValue(0); 3156 // copy reconstruction 3157 pcPredYuv->copyPartToPartYuv(pcRecoYuv, 0, uiWidth, uiHeight); 3158 } 3159 } // depth index loop 3160 3161 3162 pcCU->setSingleDepthValueSubParts((Pel)pBestSingleDepthValue,0, 0, uiDepth); 3163 assert(pBestSingleDepthValue>=0); 3164 3165 //===== reset context models ===== 3166 m_pcRDGoOnSbacCoder->load(m_pppcRDSbacCoder[uiDepth][CI_CURR_BEST]); 3167 3168 //===== set distortion (rate and r-d costs are determined later) ===== 3169 pcCU->getTotalDistortion() = uiBestDist; 3170 } 3171 3172 #endif 3173 #endif 3174 2969 #endif 3175 2970 Void 3176 2971 TEncSearch::estIntraPredQT( TComDataCU* pcCU, … … 3337 3132 if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight ) 3338 3133 { 3339 #if TICKET083_IVPFLAG_FIX3340 3134 if( bOnlyIVP ) 3341 #else3342 if( bOnlyIVP && pcCU->getSlice()->getIntraContourFlag() )3343 #endif3344 3135 { 3345 3136 TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight ); … … 5534 5325 TComMv cMvPred = *pcMvPred; 5535 5326 5536 #if SONY_MV_V_CONST_C00785327 #if H_MV 5537 5328 Bool bMv_VRng_Restricted = false; 5538 5329 if( m_pcEncCfg->getUseDisparitySearchRangeRestriction() … … 5601 5392 5602 5393 5603 #if SONY_MV_V_CONST_C00785394 #if H_MV 5604 5395 Void TEncSearch::xSetSearchRange ( TComDataCU* pcCU, TComMv& cMvPred, Int iSrchRng, TComMv& rcMvSrchRngLT, TComMv& rcMvSrchRngRB, Bool bMv_VRng_Restricted, Int iVerDispSrchRng ) 5605 5396 #else … … 5621 5412 rcMvSrchRngRB.setVer( cTmpMvPred.getVer() + (iSrchRng << iMvShift) ); 5622 5413 5623 #if SONY_MV_V_CONST_C00785414 #if H_MV 5624 5415 if ( bMv_VRng_Restricted ) { 5625 5416 Int iRestrictMvVrange = ( iVerDispSrchRng - 1 ) << iMvShift ; // -1 to consider subpel search … … 7369 7160 const UInt uiQTTempAccessLayer = pcCU->getSlice()->getSPS()->getQuadtreeTULog2MaxSize() - uiLog2TrSize; 7370 7161 7371 #if 0 //H_3D_DISABLE_CHROMA7372 Bool bCodeChroma = !pcCU->getSlice()->getIsDepth();7373 #else7374 7162 Bool bCodeChroma = true; 7375 #endif7376 7163 UInt uiTrModeC = uiTrMode; 7377 7164 UInt uiLog2TrSizeC = uiLog2TrSize-1; … … 7515 7302 } 7516 7303 m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true ); 7517 #if SEC_DEPTH_INTRA_SKIP_MODE_K00337304 #if H_3D 7518 7305 m_pcEntropyCoder->encodeDIS ( pcCU, 0, true ); 7519 #else7520 #if H_3D_SINGLE_DEPTH7521 m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true );7522 #endif7523 7306 #endif 7524 7307 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 7525 7308 m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true ); 7526 #if !HHI_MOVE_SYN_K0052 7309 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true ); 7527 7310 #if H_3D_DIM_SDC 7528 7311 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 7529 7312 #endif 7530 #endif7531 m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );7532 #if HHI_MOVE_SYN_K00527533 #if H_3D_DIM_SDC7534 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );7535 #endif7536 #endif7537 7313 #if H_3D_ARP 7538 7314 m_pcEntropyCoder->encodeARPW( pcCU , 0 ); … … 7541 7317 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7542 7318 #endif 7543 #if H HI_MOVE_SYN_K00527319 #if H_3D 7544 7320 m_pcEntropyCoder->encodeDBBPFlag( pcCU, 0, true ); 7545 7321 #endif -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncSearch.h
r1179 r1185 191 191 TComYuv* pcRecoYuv, 192 192 UInt uiPreCalcDistC ); 193 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033193 #if H_3D 194 194 Void estIntraPredDIS ( TComDataCU* pcCU, 195 195 TComYuv* pcOrgYuv, … … 199 199 UInt& ruiDistC, 200 200 Bool bLumaOnly ); 201 #else 202 #if H_3D_SINGLE_DEPTH 203 Void estIntraPredSingleDepth ( TComDataCU* pcCU, 204 TComYuv* pcOrgYuv, 205 TComYuv* pcPredYuv, 206 TComYuv* pcResiYuv, 207 TComYuv* pcRecoYuv, 208 UInt& ruiDistC, 209 Bool bLumaOnly ); 210 #endif 211 #endif 212 201 #endif 213 202 /// encoder estimation - inter prediction (non-skip) 214 203 Void predInterSearch ( TComDataCU* pcCU, … … 364 353 UInt uiAbsPartIdx, 365 354 UInt stateU0V1Both2 ); 366 #if SEC_DEPTH_INTRA_SKIP_MODE_K0033 355 356 #if H_3D 367 357 Void xIntraCodingDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, UInt uiPredMode ); 368 #else369 #if H_3D_SINGLE_DEPTH370 Void xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel * DepthNeighbor );371 #endif372 358 #endif 373 359 #if H_3D_DIM … … 480 466 UInt& ruiSAD ); 481 467 482 #if SONY_MV_V_CONST_C0078468 #if H_MV 483 469 Void xSetSearchRange ( TComDataCU* pcCU, 484 470 TComMv& cMvPred, -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncSlice.cpp
r1179 r1185 215 215 rpcSlice->setPicOutputFlag( true ); 216 216 rpcSlice->setPOC( pocCurr ); 217 #if !HHI_INTER_COMP_PRED_K0052218 #if H_3D219 rpcSlice->init3dToolParameters();220 #endif221 #endif222 217 #if H_3D_IC 223 218 rpcSlice->setApplyIC( false ); … … 612 607 rpcSlice->setSliceSegmentMode ( m_pcCfg->getSliceSegmentMode() ); 613 608 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 614 #if !HHI_INTER_COMP_PRED_K0052615 #if H_3D_IV_MERGE616 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( rpcSlice->getMpiFlag( ) || rpcSlice->getIvMvPredFlag( ) || rpcSlice->getViewSynthesisPredFlag( ) ) ? 1 : 0 ));617 #else618 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() );619 #endif620 #else621 609 #if !H_3D 622 610 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); 623 #endif624 611 #endif 625 612 xStoreWPparam( pPPS->getUseWP(), pPPS->getWPBiPred() ); -
branches/HTM-14.0-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r1179 r1185 91 91 m_aICEnableNum = NULL; 92 92 #endif 93 #if H_3D _ANNEX_SELECTION_FIX93 #if H_3D 94 94 m_cCavlcCoder.setEncTop(this); 95 95 #endif … … 417 417 #endif 418 418 #if H_3D 419 #if HHI_CAM_PARA_K0052420 419 pcPicCurr->setScaleOffset( m_cameraParameters->getCodedScale(), m_cameraParameters->getCodedOffset() ); 421 #else422 pcPicCurr->setScaleOffset( m_aaiCodedScale, m_aaiCodedOffset );423 #endif424 420 #endif 425 421 } … … 768 764 m_cSPS.setSpsInferScalingListFlag ( true ); 769 765 m_cSPS.setSpsScalingListRefLayerId( m_cVPS->getIdRefLayer( getLayerId(), 0 ) ); 770 #if SONY_MV_V_CONST_C0078766 #if H_MV 771 767 if ( m_bUseDisparitySearchRangeRestriction ) 772 768 {
Note: See TracChangeset for help on using the changeset viewer.