Changeset 1074 in 3DVCSoftware for branches/HTM-12.1-dev0/source/Lib/TLibEncoder
- Timestamp:
- 21 Oct 2014, 20:39:50 (10 years ago)
- Location:
- branches/HTM-12.1-dev0/source/Lib/TLibEncoder
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCavlc.cpp
r1066 r1074 385 385 } 386 386 387 #if H_3D_DELTA_DLT388 387 if( pcDLT->getInterViewDltPredEnableFlag( i ) ) 389 388 { … … 395 394 pcDLT->getDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue_coded, &uiNumDepthValues_coded); 396 395 } 397 #endif398 396 399 397 if ( NULL == (puiDltDiffValues = (UInt *)calloc(uiNumDepthValues_coded, sizeof(UInt))) ) 400 398 { 399 // This should be changed to an assertion. 401 400 exit(-1); 402 401 } … … 477 476 { 478 477 WRITE_CODE(uiNumDepthValues_coded, 8, "num_depth_values_in_dlt[i]"); // num_entry 479 480 #if !H_3D_DELTA_DLT481 if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false ) // Single-view DLT Diff Coding482 #endif483 478 { 484 479 // The condition if( uiNumDepthValues_coded > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component. … … 951 946 Void TEncCavlc::codeSPSExtension2( TComSPS* pcSPS, Int viewIndex, Bool depthFlag ) 952 947 { 953 #if H_3D_QTLPC 954 #if !MTK_I0099_VPS_EX2 955 //GT: This has to go to VPS 956 if( depthFlag ) 957 { 958 WRITE_FLAG( pcSPS->getUseQTL() ? 1 : 0, "use_qtl_flag"); 959 WRITE_FLAG( pcSPS->getUsePC() ? 1 : 0, "use_pc_flag"); 960 } 961 #endif 962 #endif 963 } 964 965 948 949 } 966 950 #endif 967 951 … … 1805 1789 Void TEncCavlc::codeVPSExtension2( TComVPS* pcVPS ) 1806 1790 { 1807 #if SEC_VPS_CLEANUP_I00901808 1791 for( Int i = 1; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1809 #else 1810 for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ ) 1811 #endif 1812 { 1813 #if !SEC_VPS_CLEANUP_I0090 1814 if (i!= 0) 1815 #endif 1816 { 1817 #if MTK_I0099_VPS_EX2 1792 { 1793 { 1818 1794 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1819 #if SEC_HLS_CLEANUP_I01001820 1795 WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 , "iv_mv_scaling_flag[i]" ); 1821 #endif 1822 1823 #endif 1796 1824 1797 if ( !( pcVPS->getDepthId( i ) == 1 ) ) 1825 1798 { 1826 1799 #if H_3D_IV_MERGE 1827 #if !MTK_I0099_VPS_EX21828 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");1829 #endif1830 1800 #if H_3D_SPIVMP 1831 1801 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]"); … … 1847 1817 else 1848 1818 { 1849 #if !MTK_I0099_VPS_EX21850 if(i!=1)1851 {1852 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");1853 }1854 #if H_3D_SPIVMP1855 if (i!=1)1856 {1857 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");1858 }1859 #endif1860 #endif1861 1819 #if H_3D_IV_MERGE 1862 1820 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" ); 1863 1821 #endif 1864 #if MTK_I0099_VPS_EX21865 1822 WRITE_UVLC( pcVPS->getSubPUMPILog2Size(i)-3, "log2_mpi_sub_PU_size_minus3[i]"); 1866 #endif 1823 1867 1824 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" ); 1868 #if SEPARATE_FLAG_I00851825 #if H_3D 1869 1826 WRITE_FLAG( pcVPS->getIVPFlag( i ) ? 1 : 0 , "IVP_flag[i]" ); 1870 1827 #endif 1871 #if MTK_I0099_VPS_EX21872 1828 WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); 1873 #endif1874 1829 1875 1830 #if H_3D_INTER_SDC … … 1880 1835 } 1881 1836 WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" ); 1882 #if SEC_VPS_CLEANUP_I00901883 1837 for (UInt viewIndex=1; viewIndex<pcVPS->getNumViews(); viewIndex++) 1884 #else1885 for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)1886 #endif1887 1838 { 1888 1839 WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" ); … … 1902 1853 } 1903 1854 } 1904 #if !MTK_I0099_VPS_EX21905 WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");1906 #endif1907 #if H_3D_TMVP1908 #if !SEC_HLS_CLEANUP_I01001909 WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 , "iv_mv_scaling_flag" );1910 #endif1911 #endif1912 1855 } 1913 1856 #endif … … 2308 2251 } 2309 2252 #if H_3D_IC 2310 #if SEC_HLS_CLEANUP_I01002311 2253 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 ) 2312 #else2313 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())2314 #endif2315 2254 { 2316 2255 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); … … 2321 2260 } 2322 2261 #endif 2323 #if MTK_SINGLE_DEPTH_MODE_I00952262 #if H_3D_SINGLE_DEPTH 2324 2263 if(pcSlice->getIsDepth()) 2325 2264 { … … 2385 2324 } 2386 2325 #if H_3D 2387 #if LGE_FCO_I01162326 #if H_3D_FCO 2388 2327 if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && pcSlice->getIsDepth() ) 2389 2328 #else … … 2762 2701 assert(0); 2763 2702 } 2764 #if MTK_SINGLE_DEPTH_MODE_I00952703 #if H_3D_SINGLE_DEPTH 2765 2704 Void TEncCavlc::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2766 2705 { -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCavlc.h
r1066 r1074 129 129 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 130 130 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 131 #if MTK_SINGLE_DEPTH_MODE_I0095131 #if H_3D_SINGLE_DEPTH 132 132 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ); 133 133 #endif -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCfg.h
r1039 r1074 414 414 #if H_3D_DIM 415 415 Bool m_useDMM; 416 #if SEPARATE_FLAG_I0085417 416 Bool m_useIVP; 418 #endif419 417 Bool m_useSDC; 420 418 Bool m_useDLT; 421 419 #endif 422 #if MTK_SINGLE_DEPTH_MODE_I0095420 #if H_3D_SINGLE_DEPTH 423 421 Bool m_useSingleDepthMode; 424 422 #endif … … 426 424 Bool m_useMPI; 427 425 #endif 428 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX429 426 #if H_3D_QTLPC 430 427 Bool m_bUseQTL; 431 #if !MTK_I0099_VPS_EX2432 Bool m_bUsePC;433 #endif434 #endif435 428 #endif 436 429 #endif … … 1013 1006 Bool getUseDMM () { return m_useDMM; } 1014 1007 Void setUseDMM ( Bool b) { m_useDMM = b; } 1015 #if SEPARATE_FLAG_I00851016 1008 Bool getUseIVP () { return m_useIVP; } 1017 1009 Void setUseIVP ( Bool b) { m_useIVP = b; } 1018 #endif1019 1010 Bool getUseSDC () { return m_useSDC; } 1020 1011 Void setUseSDC ( Bool b) { m_useSDC = b; } … … 1022 1013 Void setUseDLT ( Bool b) { m_useDLT = b; } 1023 1014 #endif 1024 #if MTK_SINGLE_DEPTH_MODE_I00951015 #if H_3D_SINGLE_DEPTH 1025 1016 Void setUseSingleDepthMode ( Bool bVal ) { m_useSingleDepthMode = bVal; } 1026 1017 Bool getUseSingleDepthMode () { return m_useSingleDepthMode; } 1027 1018 #endif 1028 #if !MTK_I0099_VPS_EX2 || MTK_I0099_FIX1029 1019 #if H_3D_QTLPC 1030 1020 Void setUseQTL ( Bool b ) { m_bUseQTL = b; } 1031 1021 Bool getUseQTL () { return m_bUseQTL; } 1032 #if !MTK_I0099_VPS_EX21033 Void setUsePC ( Bool b ) { m_bUsePC = b; }1034 Bool getUsePC () { return m_bUsePC; }1035 #endif1036 #endif1037 1022 #endif 1038 1023 #if H_3D_IV_MERGE -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCu.cpp
r1066 r1074 409 409 410 410 #if H_3D_QTLPC 411 #if MTK_I0099_VPS_EX2412 411 TComVPS *vps = pcPic->getSlice(0)->getVPS(); 413 412 Bool bLimQtPredFalg = vps->getLimQtPredFlag(pcPic->getSlice(0)->getLayerId()); 414 #else415 TComSPS *sps = pcPic->getSlice(0)->getSPS();416 #endif417 413 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); 418 414 … … 535 531 #if H_3D_QTLPC 536 532 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 537 538 #if MTK_I0099_VPS_EX2 539 #if MTK_I0099_FIX 540 #if LGE_FCO_I0116 533 #if H_3D_FCO 541 534 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg ) && pcTexture->getReconMark()) 542 535 #else 543 536 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 544 #endif545 #else546 if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)547 #endif548 #else549 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())550 537 #endif 551 538 { … … 702 689 703 690 #if H_3D_QTLPC 704 #if MTK_I0099_VPS_EX2705 #if MTK_I0099_FIX706 691 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 707 #else708 if(depthMapDetect && !bIntraSliceDetect && !rapPic && bLimQtPredFalg)709 #endif710 #else711 if(depthMapDetect && !bIntraSliceDetect && !rapPic && sps->getUseQTL())712 #endif713 692 { 714 693 bTrySplitDQP = bTrySplit; … … 734 713 } 735 714 #endif 736 #if MTK_SINGLE_DEPTH_MODE_I0095715 #if H_3D_SINGLE_DEPTH 737 716 rpcTempCU->initEstData( uiDepth, iMinQP, isAddLowestQP ); 738 717 if(rpcBestCU->getSlice()->getApplySingleDepthMode()) … … 1057 1036 rpcBestCU->getCbf( 0, TEXT_CHROMA_V ) != 0 1058 1037 #if H_3D_DIM_ENC 1059 #if HHI_DMM4_ENC_I00661060 1038 || rpcBestCU->getSlice()->getIsDepth() 1061 #else1062 || ( rpcBestCU->getSlice()->getIsDepth() && rpcBestCU->getSlice()->isIRAP() )1063 #endif1064 1039 #endif 1065 1040 ) // avoid very complex intra if it is unlikely 1066 1041 { 1067 #if H HI_DMM4_ENC_I00661042 #if H_3D_DIM 1068 1043 Bool bOnlyIVP = false; 1069 1044 if( rpcBestCU->getSlice()->getIsDepth() && !(rpcBestCU->getSlice()->isIRAP()) && … … 1098 1073 if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) ) 1099 1074 { 1100 #if H HI_DMM4_ENC_I00661075 #if H_3D_DIM 1101 1076 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN, bOnlyIVP ); 1102 1077 #else … … 1590 1565 return; 1591 1566 } 1592 #if MTK_SINGLE_DEPTH_MODE_I00951567 #if H_3D_SINGLE_DEPTH 1593 1568 m_pcEntropyCoder->encodeSingleDepthMode( pcCU, uiAbsPartIdx ); 1594 1569 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) … … 1627 1602 m_pcEntropyCoder->encodeCoeff( pcCU, uiAbsPartIdx, uiDepth, pcCU->getWidth (uiAbsPartIdx), pcCU->getHeight(uiAbsPartIdx), bCodeDQP ); 1628 1603 setdQPFlag( bCodeDQP ); 1629 #if MTK_SINGLE_DEPTH_MODE_I00951604 #if H_3D_SINGLE_DEPTH 1630 1605 } 1631 1606 #endif … … 1863 1838 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1864 1839 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1865 #if !FIX_TICKET_791866 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];1867 #endif1868 1840 #if H_3D_SPIVMP 1869 1841 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; … … 1878 1850 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1879 1851 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 1880 #if !FIX_TICKET_791881 , inheritedVSPDisInfo1882 #endif1883 1852 #if H_3D_SPIVMP 1884 1853 , pcMvFieldSP, puhInterDirSP … … 1895 1864 1896 1865 #else 1897 #if FIX_TICKET_791898 1866 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, numValidMergeCand ); 1899 #else1900 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand );1901 #endif1902 1867 #endif 1903 1868 … … 1942 1907 #if H_3D_VSP 1943 1908 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); 1944 #if !FIX_TICKET_791945 rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );1946 #endif1947 1909 #endif 1948 1910 #if H_3D_DDD … … 2043 2005 2044 2006 rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth ); 2045 #if MTK_SINGLE_DEPTH_MODE_I00952007 #if H_3D_SINGLE_DEPTH 2046 2008 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2047 2009 #endif … … 2061 2023 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual ) 2062 2024 { 2063 #if FAST_SDC_OFFSET_DECISION_I00842064 2025 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; 2065 2026 for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ ) 2066 #else2067 for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )2068 #endif2069 2027 { 2070 #if FAST_SDC_OFFSET_DECISION_I00842071 2028 if( uiOffest > 3) 2072 2029 { … … 2084 2041 } 2085 2042 } 2086 #endif2087 2043 if( rpcTempCU != rpcTempCUPre ) 2088 2044 { … … 2091 2047 } 2092 2048 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2093 #if MTK_SINGLE_DEPTH_MODE_I00952049 #if H_3D_SINGLE_DEPTH 2094 2050 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2095 2051 #endif … … 2106 2062 } 2107 2063 #endif 2108 #if FAST_SDC_OFFSET_DECISION_I00842109 2064 Int iSdcOffset = 0; 2110 2065 if(uiOffest % 2 == 0) … … 2127 2082 dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost(); 2128 2083 } 2129 #else2130 m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,2131 m_ppcOrigYuv[uhDepth],2132 ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],2133 m_ppcResiYuvTemp[uhDepth],2134 m_ppcRecoYuvTemp[uhDepth],2135 uiOffest,2136 uhDepth );2137 #endif2138 2084 2139 2085 xCheckDQP( rpcTempCU ); … … 2253 2199 2254 2200 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2255 #if MTK_SINGLE_DEPTH_MODE_I00952201 #if H_3D_SINGLE_DEPTH 2256 2202 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2257 2203 #endif … … 2342 2288 if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N) 2343 2289 { 2344 #if FAST_SDC_OFFSET_DECISION_I00842345 2290 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; 2346 2291 for( Int uiOffest = 1 ; uiOffest <= 5 ; uiOffest++ ) 2347 #else 2348 for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ ) 2349 #endif 2350 { 2351 #if FAST_SDC_OFFSET_DECISION_I0084 2292 { 2352 2293 if( uiOffest > 3) 2353 2294 { … … 2365 2306 } 2366 2307 } 2367 #endif 2308 2368 2309 if( rpcTempCU != rpcTempCUPre ) 2369 2310 { … … 2373 2314 } 2374 2315 rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth ); 2375 #if MTK_SINGLE_DEPTH_MODE_I00952316 #if H_3D_SINGLE_DEPTH 2376 2317 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uhDepth ); 2377 2318 #endif … … 2389 2330 #endif 2390 2331 2391 #if FAST_SDC_OFFSET_DECISION_I00842392 2332 Int iSdcOffset = 0; 2393 2333 if(uiOffest % 2 == 0) … … 2410 2350 dOffsetCost [uiOffest -1] = rpcTempCU->getTotalCost(); 2411 2351 } 2412 #else2413 m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,2414 m_ppcOrigYuv[uhDepth],2415 ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],2416 m_ppcResiYuvTemp[uhDepth],2417 m_ppcRecoYuvTemp[uhDepth],2418 uiOffest,2419 uhDepth );2420 #endif2421 2352 2422 2353 xCheckDQP( rpcTempCU ); … … 2493 2424 } 2494 2425 } 2495 #if MTK_SINGLE_DEPTH_MODE_I00952426 #if H_3D_SINGLE_DEPTH 2496 2427 Void TEncCu::xCheckRDCostSingleDepth( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2497 2428 { … … 2560 2491 } 2561 2492 #endif 2493 2562 2494 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) 2563 2495 { … … 2581 2513 AOF( uiWidth == uiHeight ); 2582 2514 2583 #if SEC_DBBP_DISALLOW_8x8_I0078 2515 #if H_3D_DBBP 2516 // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode 2584 2517 if(uiWidth <= 8) 2585 2518 { … … 2592 2525 // fetch virtual depth block 2593 2526 UInt uiDepthStride = 0; 2594 #if LGE_FCO_I01162527 #if H_3D_FCO 2595 2528 Pel* pDepthPels = rpcTempCU->getVirtualDepthBlock(rpcTempCU->getZorderIdxInCU(), uiWidth, uiHeight, uiDepthStride); 2596 2529 #else … … 2688 2621 2689 2622 // reconstruct final prediction signal by combining both segments 2690 #if SHARP_DBBP_SIMPLE_FLTER_I01092691 2623 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize); 2692 #else2693 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight);2694 #endif2695 2696 2624 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2697 2625 … … 2701 2629 #endif 2702 2630 2703 #if H HI_DMM4_ENC_I00662631 #if H_3D_DIM 2704 2632 Void TEncCu::xCheckRDCostIntra( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize, Bool bOnlyIVP ) 2705 2633 #else … … 2721 2649 2722 2650 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2723 #if MTK_SINGLE_DEPTH_MODE_I00952651 #if H_3D_SINGLE_DEPTH 2724 2652 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth ); 2725 2653 #endif … … 2733 2661 m_pcPredSearch->preestChromaPredMode( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth] ); 2734 2662 } 2735 #if H HI_DMM4_ENC_I00662663 #if H_3D_DIM 2736 2664 m_pcPredSearch ->estIntraPredQT ( rpcTempCU, m_ppcOrigYuv[uiDepth], m_ppcPredYuvTemp[uiDepth], m_ppcResiYuvTemp[uiDepth], m_ppcRecoYuvTemp[uiDepth], uiPreCalcDistC, bSeparateLumaChroma, bOnlyIVP ); 2737 2665 #else … … 2751 2679 } 2752 2680 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2753 #if MTK_SINGLE_DEPTH_MODE_I00952681 #if H_3D_SINGLE_DEPTH 2754 2682 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true ); 2755 2683 if(!rpcTempCU->getSingleDepthFlag(0)) … … 2768 2696 m_pcEntropyCoder->encodeCoeff( rpcTempCU, 0, uiDepth, rpcTempCU->getWidth (0), rpcTempCU->getHeight(0), bCodeDQP ); 2769 2697 setdQPFlag( bCodeDQP ); 2770 #if MTK_SINGLE_DEPTH_MODE_I00952698 #if H_3D_SINGLE_DEPTH 2771 2699 } 2772 2700 #endif … … 2798 2726 2799 2727 rpcTempCU->setSkipFlagSubParts( false, 0, uiDepth ); 2800 #if MTK_SINGLE_DEPTH_MODE_I00952728 #if H_3D_SINGLE_DEPTH 2801 2729 rpcTempCU->setSingleDepthFlagSubParts( false, 0, uiDepth ); 2802 2730 #endif … … 2817 2745 } 2818 2746 m_pcEntropyCoder->encodeSkipFlag ( rpcTempCU, 0, true ); 2819 #if MTK_SINGLE_DEPTH_MODE_I00952747 #if H_3D_SINGLE_DEPTH 2820 2748 m_pcEntropyCoder->encodeSingleDepthMode( rpcTempCU, 0, true ); 2821 2749 #endif -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncCu.h
r1039 r1074 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); 160 160 #endif 161 #if MTK_SINGLE_DEPTH_MODE_I0095161 #if H_3D_SINGLE_DEPTH 162 162 Void xCheckRDCostSingleDepth ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 163 163 #endif 164 #if H HI_DMM4_ENC_I0066164 #if H_3D_DIM 165 165 Void xCheckRDCostIntra ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize, Bool bOnlyIVP ); 166 166 #else -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncEntropy.cpp
r1066 r1074 119 119 m_pcEntropyCoderIf->codeSkipFlag( pcCU, uiAbsPartIdx ); 120 120 } 121 #if MTK_SINGLE_DEPTH_MODE_I0095121 #if H_3D_SINGLE_DEPTH 122 122 Void TEncEntropy::encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 123 123 { … … 185 185 else 186 186 { 187 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX188 187 Int ICEnableCandidate = pcCU->getSlice()->getICEnableCandidate(pcCU->getSlice()->getDepth()); 189 188 Int ICEnableNum = pcCU->getSlice()->getICEnableNum(pcCU->getSlice()->getDepth()); … … 195 194 pcCU->getSlice()->setICEnableCandidate(pcCU->getSlice()->getDepth(), ICEnableCandidate); 196 195 pcCU->getSlice()->setICEnableNum(pcCU->getSlice()->getDepth(), ICEnableNum); 197 #else198 g_aICEnableCANDIDATE[pcCU->getSlice()->getDepth()]++;199 if(pcCU->getICFlag(uiAbsPartIdx))200 {201 g_aICEnableNUM[pcCU->getSlice()->getDepth()]++;202 }203 #endif204 196 } 205 197 if( pcCU->isICFlagRequired( uiAbsPartIdx ) ) … … 273 265 } 274 266 267 m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth ); 268 275 269 #if H_3D_DBBP 276 #if! SEC_DBBP_EXPLICIT_SIG_I0077277 PartSize eVirtualPartSize = pcCU->getPartitionSize(uiAbsPartIdx);278 if( pcCU->getDBBPFlag(uiAbsPartIdx) )279 {280 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) );281 282 // temporarily change partition size for DBBP blocks283 pcCU->setPartSizeSubParts(RWTH_DBBP_PACK_MODE, uiAbsPartIdx, uiDepth);284 }285 #endif286 #endif287 288 m_pcEntropyCoderIf->codePartSize( pcCU, uiAbsPartIdx, uiDepth );289 290 #if H_3D_DBBP291 #if SEC_DBBP_EXPLICIT_SIG_I0077292 #if SEC_DBBP_DISALLOW_8x8_I0078293 270 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) && pcCU->getWidth(uiAbsPartIdx) > 8 ) 294 #else295 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && (pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_Nx2N) )296 #endif297 #else298 #if SEC_DBBP_DISALLOW_8x8_I0078299 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) && pcCU->getWidth(uiAbsPartIdx) > 8 )300 #else301 if( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) )302 #endif303 #endif304 271 { 305 272 encodeDBBPFlag(pcCU, uiAbsPartIdx, bRD); 306 #if !SEC_DBBP_EXPLICIT_SIG_I0077307 if( pcCU->getDBBPFlag(uiAbsPartIdx) )308 {309 // restore virtual partition size for DBBP blocks310 pcCU->setPartSizeSubParts(eVirtualPartSize, uiAbsPartIdx, uiDepth);311 }312 #endif313 273 } 314 274 #endif -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncEntropy.h
r1039 r1074 86 86 virtual Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 87 87 virtual Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 88 #if MTK_SINGLE_DEPTH_MODE_I009588 #if H_3D_SINGLE_DEPTH 89 89 virtual Void codeSingleDepthMode ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 90 90 #endif … … 174 174 Void encodeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 175 175 Void encodeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 176 #if MTK_SINGLE_DEPTH_MODE_I0095176 #if H_3D_SINGLE_DEPTH 177 177 Void encodeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD=false ); 178 178 #endif -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncGOP.cpp
r1066 r1074 160 160 #endif 161 161 #endif 162 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX163 m_aICEnableCandidate 164 m_aICEnableNum 162 #if H_3D_IC 163 m_aICEnableCandidate = pcTEncTop->getICEnableCandidate(); 164 m_aICEnableNum = pcTEncTop->getICEnableNum(); 165 165 #endif 166 166 #if KWU_FIX_URQ … … 937 937 pcSlice->setRefPicList ( rcListPic ); 938 938 #endif 939 #if MTK_SINGLE_DEPTH_MODE_I0095939 #if H_3D_SINGLE_DEPTH 940 940 TEncTop* pcEncTop = (TEncTop*) m_pcCfg; 941 941 bool enableSingleDepthMode=false; … … 971 971 #endif 972 972 #endif 973 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX973 #if H_3D_IC 974 974 pcSlice->setICEnableCandidate( m_aICEnableCandidate ); 975 975 pcSlice->setICEnableNum( m_aICEnableNum ); -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncGOP.h
r1066 r1074 116 116 #endif 117 117 #endif 118 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX119 Int *m_aICEnableCandidate;120 Int *m_aICEnableNum;118 #if H_3D_IC 119 Int* m_aICEnableCandidate; 120 Int* m_aICEnableNum; 121 121 #endif 122 122 //--Adaptive Loop filter -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSbac.cpp
r1066 r1074 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 MTK_SINGLE_DEPTH_MODE_I009560 #if H_3D_SINGLE_DEPTH 61 61 , m_cCUSingleDepthFlagSCModel ( 1, 1, NUM_SINGLEDEPTH_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 62 62 , m_cSingleDepthValueSCModel ( 1, 1, NUM_SINGLE_DEPTH_VALUE_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) … … 134 134 135 135 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 136 #if MTK_SINGLE_DEPTH_MODE_I0095136 #if H_3D_SINGLE_DEPTH 137 137 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 138 138 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); … … 214 214 curCost = m_cCUSplitFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SPLIT_FLAG ); 215 215 curCost += m_cCUSkipFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SKIP_FLAG ); 216 #if MTK_SINGLE_DEPTH_MODE_I0095216 #if H_3D_SINGLE_DEPTH 217 217 curCost += m_cCUSingleDepthFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 218 218 curCost += m_cSingleDepthValueSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); … … 255 255 curCost += m_CUTransquantBypassFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_CU_TRANSQUANT_BYPASS_FLAG ); 256 256 #if H_3D_DIM 257 #if SEPARATE_FLAG_I0085258 257 if( m_pcSlice->getVpsDepthModesFlag() || m_pcSlice->getIVPFlag() ) 259 #else260 if( m_pcSlice->getVpsDepthModesFlag() )261 #endif262 258 { 263 259 curCost += m_cDepthIntraModeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DEPTH_INTRA_MODE ); … … 291 287 292 288 m_cCUSkipFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SKIP_FLAG ); 293 #if MTK_SINGLE_DEPTH_MODE_I0095289 #if H_3D_SINGLE_DEPTH 294 290 m_cCUSingleDepthFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLEDEPTH_FLAG ); 295 291 m_cSingleDepthValueSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SINGLE_DEPTH_VALUE_DATA ); … … 454 450 m_pcBinIf->encodeBinsEP( bins, numBins ); 455 451 } 456 #if MTK_SINGLE_DEPTH_MODE_I0095452 #if H_3D_SINGLE_DEPTH 457 453 Void TEncSbac::codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ) 458 454 { … … 462 458 { 463 459 UInt uiUnaryIdx = (UInt) pcCU->getSingleDepthValue(uiAbsPartIdx); 464 UInt uiNumCand = MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE;460 UInt uiNumCand = SINGLE_DEPTH_MODE_CAND_LIST_SIZE; 465 461 if ( uiNumCand > 1 ) 466 462 { … … 563 559 564 560 #endif 565 566 #if !FIX_TICKET_76567 #if H_3D_DIM_SDC568 Void TEncSbac::xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment )569 {570 assert( pcCU->getSlice()->getIsDepth() );571 assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );572 assert( pcCU->getSDCFlag(uiAbsPartIdx) );573 assert( uiSegment < 2 );574 575 Pel segmentDCOffset = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);576 577 UInt uiResidual = segmentDCOffset == 0 ? 0 : 1;578 UInt uiSign = segmentDCOffset < 0 ? 1 : 0;579 UInt uiAbsIdx = abs(segmentDCOffset);580 581 #if H_3D_DIM_DLT582 UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );583 #else584 UInt uiMaxResidualBits = g_bitDepthY;585 #endif586 assert( uiMaxResidualBits <= g_bitDepthY );587 588 // residual flag589 m_pcBinIf->encodeBin( uiResidual, m_cSDCResidualFlagSCModel.get( 0, 0, 0 ) );590 #if H_MV_ENC_DEC_TRAC591 DTRACE_CU("sdc_residual_flag[i]", uiResidual)592 #endif593 594 if (uiResidual)595 {596 // encode sign bit of residual597 m_pcBinIf->encodeBinEP( uiSign );598 #if H_MV_ENC_DEC_TRAC599 DTRACE_CU("sdc_residual_sign_flag[i]", uiSign)600 #endif601 #if H_3D_DIM_DLT602 UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );603 #else604 UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);605 #endif606 607 assert(uiAbsIdx <= uiNumDepthValues);608 609 // encode residual magnitude610 uiAbsIdx -= 1;611 612 #if H_MV_ENC_DEC_TRAC613 DTRACE_CU("sdc_residual_abs_minus1[i]", uiAbsIdx)614 #endif615 616 // prefix part617 if ( uiAbsIdx == 0 )618 {619 m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );620 }621 else622 {623 UInt l = uiAbsIdx;624 UInt k = 0;625 UInt uiPrefixThreshold = ((uiNumDepthValues * 3) >> 2);626 while ( l > 0 && k < uiPrefixThreshold )627 {628 m_pcBinIf->encodeBin( 1, m_cSDCResidualSCModel.get(0, 0, 0) );629 l--;630 k++;631 }632 if ( uiAbsIdx < uiPrefixThreshold )633 {634 m_pcBinIf->encodeBin( 0, m_cSDCResidualSCModel.get(0, 0, 0) );635 }636 else637 { // suffix part638 uiAbsIdx -= uiPrefixThreshold;639 UInt uiSuffixLength = numBitsForValue(uiNumDepthValues - uiPrefixThreshold);640 UInt uiBitInfo = 0;641 for ( Int i = 0; i < uiSuffixLength; i++)642 {643 uiBitInfo = ( uiAbsIdx & ( 1 << i ) ) >> i;644 m_pcBinIf->encodeBinEP( uiBitInfo);645 }646 }647 }648 649 }650 }651 #endif652 #endif653 561 #endif 654 562 … … 717 625 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 718 626 #if H_3D_QTLPC 719 #if MTK_I0099_VPS_EX2720 627 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 721 628 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 722 #else723 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS();724 #endif725 629 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 726 630 Bool bDepthMapDetect = (pcTexture != NULL); … … 731 635 Bool depthDependent = false; 732 636 UInt uiTexturePart = eSize; 733 #if MTK_I0099_VPS_EX2 734 #if LGE_FCO_I0116637 638 #if H_3D_FCO 735 639 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark()) 736 640 #else 737 641 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 738 #endif739 #else740 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )741 642 #endif 742 643 { … … 1097 998 Bool bCodeSplitFlag = true; 1098 999 1099 #if MTK_I0099_VPS_EX21100 1000 TComVPS *vps = pcCU->getPic()->getSlice(0)->getVPS(); 1101 1001 Bool bLimQtPredFlag = vps->getLimQtPredFlag(pcCU->getPic()->getSlice(0)->getLayerId()); 1102 #else1103 TComSPS *sps = pcCU->getPic()->getSlice(0)->getSPS();1104 #endif1105 1002 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); 1106 1003 Bool bDepthMapDetect = (pcTexture != NULL); … … 1109 1006 Bool rapPic = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA); 1110 1007 1111 #if MTK_I0099_VPS_EX2 1112 #if LGE_FCO_I0116 1008 #if H_3D_FCO 1113 1009 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag && pcTexture->getReconMark() ) 1114 1010 #else 1115 1011 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && bLimQtPredFlag ) 1116 #endif1117 #else1118 if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC())1119 1012 #endif 1120 1013 { … … 1167 1060 dir[j] = pcCU->getLumaIntraDir( absPartIdx+partOffset*j ); 1168 1061 #if H_3D_DIM 1169 #if SEPARATE_FLAG_I00851170 1062 if( pcCU->getSlice()->getVpsDepthModesFlag() || pcCU->getSlice()->getIVPFlag() ) 1171 #else1172 if( pcCU->getSlice()->getVpsDepthModesFlag() )1173 #endif1174 1063 { 1175 1064 codeIntraDepth( pcCU, absPartIdx+partOffset*j ); … … 1317 1206 } 1318 1207 //mode coding 1319 #if SEPARATE_FLAG_I00851320 1208 if( pcCU->getSlice()->getVpsDepthModesFlag() && pcCU->getSlice()->getIVPFlag()) 1321 1209 { 1322 1210 m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) ); 1323 1211 } 1324 #else1325 m_pcBinIf->encodeBin( uiCodeIdx == 0 ? 0 : 1, m_cDepthIntraModeSCModel.get( 0, 0, 0 ) );1326 #endif1327 1212 } 1328 1213 } … … 2368 2253 } 2369 2254 2370 #if HS_DMM_SIGNALLING_I01202371 2255 UInt uiNumSegments = isDimMode( pcCU->getLumaIntraDir( absPartIdx ) ) ? 2 : 1; 2372 2256 UInt dimDeltaDC = 1; 2373 #else 2374 UInt uiNumSegments = 0; 2375 UInt dimDeltaDC = 0; 2376 #endif 2377 2378 #if HS_DMM_SIGNALLING_I0120 2257 2379 2258 if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx )) 2380 2259 { 2381 #else2382 if( pcCU->isIntra( absPartIdx ) )2383 {2384 UInt dir = pcCU->getLumaIntraDir( absPartIdx );2385 uiNumSegments = isDimMode( dir ) ? 2 : 1;2386 2387 if( pcCU->getSDCFlag( absPartIdx ) )2388 {2389 #endif2390 2260 if( uiNumSegments == 1 ) 2391 2261 { … … 2396 2266 dimDeltaDC = ( pcCU->getSDCSegmentDCOffset( 0, absPartIdx ) || pcCU->getSDCSegmentDCOffset( 1, absPartIdx ) ) ? 1 : 0; 2397 2267 } 2398 #if !HS_DMM_SIGNALLING_I01202399 }2400 else2401 {2402 dimDeltaDC = isDimDeltaDC( dir );2403 }2404 #endif2405 2268 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get( 0, 0, 0 ) ); 2406 2269 } 2407 #if !HS_DMM_SIGNALLING_I01202408 else //all-zero inter SDC is not allowed2409 {2410 uiNumSegments = 1;2411 dimDeltaDC = 1;2412 }2413 #endif2414 2270 2415 2271 if( dimDeltaDC ) … … 2447 2303 Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2448 2304 { 2449 #if SEC_DBBP_EXPLICIT_SIG_I00772450 2305 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2451 2306 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); 2452 #endif2453 2307 AOF( pcCU->getSlice()->getVPS()->getUseDBBP(pcCU->getSlice()->getLayerIdInVps()) ); 2454 2308 AOF( !pcCU->getSlice()->getIsDepth() ); -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSbac.h
r1039 r1074 130 130 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); 131 131 #endif 132 #if !FIX_TICKET_76133 #if H_3D_DIM_SDC134 Void xCodeSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment );135 #endif136 #endif137 132 #endif 138 133 … … 155 150 Void codeCUTransquantBypassFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ); 156 151 Void codeSkipFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 157 #if MTK_SINGLE_DEPTH_MODE_I0095152 #if H_3D_SINGLE_DEPTH 158 153 Void codeSingleDepthMode( TComDataCU* pcCU, UInt uiAbsPartIdx ); 159 154 #endif … … 224 219 ContextModel3DBuffer m_cCUSplitFlagSCModel; 225 220 ContextModel3DBuffer m_cCUSkipFlagSCModel; 226 #if MTK_SINGLE_DEPTH_MODE_I0095221 #if H_3D_SINGLE_DEPTH 227 222 ContextModel3DBuffer m_cCUSingleDepthFlagSCModel; 228 223 ContextModel3DBuffer m_cSingleDepthValueSCModel; -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSearch.cpp
r1066 r1074 915 915 } 916 916 m_pcEntropyCoder->encodeSkipFlag( pcCU, 0, true ); 917 #if MTK_SINGLE_DEPTH_MODE_I0095917 #if H_3D_SINGLE_DEPTH 918 918 m_pcEntropyCoder->encodeSingleDepthMode(pcCU, 0, true ); 919 919 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) … … 921 921 m_pcEntropyCoder->encodePredMode( pcCU, 0, true ); 922 922 } 923 #if MTK_SINGLE_DEPTH_MODE_I0095923 #if H_3D_SINGLE_DEPTH 924 924 else 925 925 { … … 927 927 } 928 928 #endif 929 #if MTK_SINGLE_DEPTH_MODE_I0095929 #if H_3D_SINGLE_DEPTH 930 930 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 931 931 { … … 945 945 } 946 946 } 947 #if MTK_SINGLE_DEPTH_MODE_I0095948 } 949 #endif 950 } 951 #if MTK_SINGLE_DEPTH_MODE_I0095947 #if H_3D_SINGLE_DEPTH 948 } 949 #endif 950 } 951 #if H_3D_SINGLE_DEPTH 952 952 if(!pcCU->getSingleDepthFlag(uiAbsPartIdx)) 953 953 { … … 995 995 } 996 996 } 997 #if MTK_SINGLE_DEPTH_MODE_I0095997 #if H_3D_SINGLE_DEPTH 998 998 } 999 999 #endif … … 1859 1859 dRDCost += dSingleCost; 1860 1860 } 1861 #if MTK_SINGLE_DEPTH_MODE_I00951861 #if H_3D_SINGLE_DEPTH 1862 1862 Void TEncSearch::xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel *DepthNeighbor ) 1863 1863 { … … 1970 1970 UInt dimType = getDimType ( uiLumaPredMode ); 1971 1971 UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx); 1972 #if SHARP_DMM1_I01101973 1972 UInt uiBaseWidth = pcCU->isDMM1UpscaleMode(uiWidth) ? pcCU->getDMM1BasePatternWidth(uiWidth) : uiWidth; 1974 1973 if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiBaseWidth]].size() && dimType == DMM1_IDX ) 1975 #else 1976 if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX ) 1977 #endif 1978 { 1979 #if SHARP_DMM1_I0110 1974 { 1980 1975 if (g_aucConvertToBit[uiBaseWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used. 1981 #else1982 if (g_aucConvertToBit[uiWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.1983 #endif1984 1976 { 1985 1977 patternID = 1349; // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16 … … 2043 2035 Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx); 2044 2036 2045 #if SHARP_DMM1_I01102046 2037 WedgeList* pacWedgeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])]; 2047 #else2048 WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];2049 #endif2050 2038 TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx )); 2051 2039 2052 2040 uiNumSegments = 2; 2053 #if SHARP_DMM1_I01102054 2041 pbMask = pcCU->isDMM1UpscaleMode( uiWidth ) ? pcWedgelet->getScaledPattern( uiWidth ) : pcWedgelet->getPattern(); 2055 2042 uiMaskStride = pcCU->isDMM1UpscaleMode( uiWidth ) ? uiWidth : pcWedgelet->getStride(); 2056 #else2057 pbMask = pcWedgelet->getPattern();2058 uiMaskStride = pcWedgelet->getStride();2059 #endif2060 2043 } 2061 2044 if( getDimType( uiLumaPredMode ) == DMM4_IDX ) … … 2878 2861 pcCU->setChromIntraDirSubParts( uiBestMode, 0, pcCU->getDepth( 0 ) ); 2879 2862 } 2880 #if MTK_SINGLE_DEPTH_MODE_I00952863 #if H_3D_SINGLE_DEPTH 2881 2864 Void 2882 2865 TEncSearch::estIntraPredSingleDepth( TComDataCU* pcCU, … … 2900 2883 Pel DepthNeighbours[5]; 2901 2884 //construction of depth candidates 2902 for( Int i = 0; (i < 5) && (index< MTK_SINGLE_DEPTH_MODE_CANDIDATE_LIST_SIZE) ; i++ )2885 for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 2903 2886 { 2904 2887 if(!pcCU->getNeighDepth (0, 0, &testDepth, i)) … … 2983 2966 UInt& ruiDistC, 2984 2967 Bool bLumaOnly 2985 #if H HI_DMM4_ENC_I00662968 #if H_3D_DIM 2986 2969 , Bool bOnlyIVP 2987 2970 #endif … … 3032 3015 Int numModesForFullRD = g_aucIntraModeNumFast[ uiWidthBit ]; 3033 3016 3034 #if H HI_DMM4_ENC_I00663017 #if H_3D_DIM 3035 3018 if( bOnlyIVP ) 3036 3019 { … … 3080 3063 UInt iModeBits = xModeBitsIntra( pcCU, uiMode, uiPU, uiPartOffset, uiDepth, uiInitTrDepth ); 3081 3064 #if H_3D_VSO // M35 3082 #if H_3D_VSO_FIX // This fix should be enabled after verification3083 3065 Double dLambda; 3084 3066 if ( m_pcRdCost->getUseLambdaScaleVSO() ) … … 3092 3074 3093 3075 Double cost = (Double)uiSad + (Double)iModeBits * dLambda; 3094 #else3095 Double cost = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda();3096 #endif3097 3076 #else 3098 3077 Double cost = (Double)uiSad + (Double)iModeBits * m_pcRdCost->getSqrtLambda(); … … 3135 3114 } 3136 3115 } 3137 #if H HI_DMM4_ENC_I00663116 #if H_3D_DIM 3138 3117 } 3139 3118 #endif … … 3143 3122 if( m_pcEncCfg->getIsDepth() && uiWidth >= DIM_MIN_SIZE && uiWidth <= DIM_MAX_SIZE && uiWidth == uiHeight ) 3144 3123 { 3145 #if HHI_DMM4_ENC_I00663146 #if SEPARATE_FLAG_I00853147 3124 if( bOnlyIVP && m_pcEncCfg->getUseIVP() ) 3148 #else3149 if( bOnlyIVP )3150 #endif3151 3125 { 3152 3126 TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight ); … … 3158 3132 pcCU->setDimDeltaDC( DMM4_IDX, 1, uiPartOffset, deltaDC2 ); 3159 3133 3160 #if HS_DMM_SIGNALLING_I01203161 3134 uiRdModeList[ numModesForFullRD++ ] = (DMM4_IDX+DIM_OFFSET); 3162 #else3163 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX +DIM_OFFSET);3164 if( deltaDC1 != 0 || deltaDC2 != 0 )3165 uiRdModeList[ numModesForFullRD++ ] = (2*DMM4_IDX+1+DIM_OFFSET);3166 #endif3167 3135 dmm4Segmentation->destroy(); delete dmm4Segmentation; 3168 3136 } 3169 3137 else 3170 3138 { 3171 #endif3172 3139 #if H_3D_FAST_DEPTH_INTRA 3173 3140 Int threshold = max(((pcCU->getQP(0))>>3)-1,3); … … 3177 3144 3178 3145 #if H_3D_DIM_DMM 3179 #if SEPARATE_FLAG_I00853180 3146 if( ( m_pcEncCfg->getUseDMM() || m_pcEncCfg->getUseIVP() ) 3181 #else3182 if( m_pcEncCfg->getUseDMM()3183 #endif3184 3147 #if H_3D_FAST_DEPTH_INTRA 3185 3148 && (uiRdModeList[0] != PLANAR_IDX || varCU >= varThreshold) … … 3187 3150 ) 3188 3151 { 3189 #if SEPARATE_FLAG_I00853190 3152 UInt uiStart, uiEnd; 3191 3153 if( m_pcEncCfg->getUseDMM() && m_pcEncCfg->getUseIVP() ) … … 3210 3172 } 3211 3173 for( UInt dmmType = uiStart; dmmType < uiEnd; dmmType++ ) 3212 #else3213 for( UInt dmmType = 0; dmmType < DMM_NUM_TYPE; dmmType++ )3214 #endif3215 3174 { 3216 3175 #if H_3D_FCO 3217 3176 TComPic* picTexture = pcCU->getSlice()->getIvPic(false, pcCU->getSlice()->getViewIndex() ); 3218 #if LGE_FCO_I01163177 #if H_3D_FCO 3219 3178 if ( !picTexture->getReconMark() && (DMM4_IDX == dmmType ) ) 3220 3179 #else … … 3234 3193 xSearchDmm1Wedge( pcCU, uiPartOffset, piOrg, uiStride, uiWidth, uiHeight, uiTabIdx ); 3235 3194 pcCU->setDmmWedgeTabIdxSubParts( uiTabIdx, dmmType, uiPartOffset, uiDepth + uiInitTrDepth ); 3236 #if SHARP_DMM1_I01103237 3195 biSegmentation = pcCU->isDMM1UpscaleMode( uiWidth ) ? 3238 3196 &(g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])][uiTabIdx]) : &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 3239 #else3240 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]);3241 #endif3242 3197 } break; 3243 3198 … … 3254 3209 if( biSegmentation ) 3255 3210 { 3256 #if SHARP_DMM1_I01103257 3211 if( dmmType == DMM1_IDX && pcCU->isDMM1UpscaleMode( uiWidth ) ){ 3258 3212 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getScaledPattern(uiWidth), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); … … 3262 3216 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 ); 3263 3217 } 3264 #else3265 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, biSegmentation->getPattern(), biSegmentation->getStride(), uiWidth, uiHeight, deltaDC1, deltaDC2 );3266 #endif3267 3218 pcCU->setDimDeltaDC( dmmType, 0, uiPartOffset, deltaDC1 ); 3268 3219 pcCU->setDimDeltaDC( dmmType, 1, uiPartOffset, deltaDC2 ); 3269 3220 3270 #if HS_DMM_SIGNALLING_I01203271 3221 uiRdModeList[ numModesForFullRD++ ] = (dmmType +DIM_OFFSET); 3272 #else3273 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType +DIM_OFFSET);3274 #if HHI_DMM4_ENC_I00663275 if( deltaDC1 != 0 || deltaDC2 != 0 )3276 #endif3277 uiRdModeList[ numModesForFullRD++ ] = (2*dmmType+1+DIM_OFFSET);3278 #endif3279 3280 3222 if( DMM4_IDX == dmmType ) { biSegmentation->destroy(); delete biSegmentation; } 3281 3223 } 3282 3224 } 3283 3225 } 3284 #if H HI_DMM4_ENC_I00663226 #if H_3D_DIM 3285 3227 } 3286 3228 #endif … … 3295 3237 3296 3238 UInt uiBestPUMode = 0; 3297 #if SCU_HS_FAST_INTRA_SDC_I01233239 #if H_3D_FAST_INTRA_SDC 3298 3240 UInt uiBestPUModeConv = 0; 3299 3241 UInt uiSecondBestPUModeConv = 0; … … 3309 3251 Double dBestPUCost = MAX_DOUBLE; 3310 3252 3311 #if SCU_HS_FAST_INTRA_SDC_I01233253 #if H_3D_FAST_INTRA_SDC 3312 3254 Double dBestPUCostConv = MAX_DOUBLE; 3313 3255 UInt varCU = m_pcRdCost->calcVAR(piOrg, uiStride, uiWidth,uiHeight,pcCU->getDepth(0)); … … 3319 3261 Pel apBestDCOffsets[2] = {0,0}; 3320 3262 #endif 3321 #if SCU_HS_FAST_INTRA_SDC_I01233263 #if H_3D_FAST_INTRA_SDC 3322 3264 for( UInt uiMode = 0; uiMode < numModesForFullRD + rdSDC; uiMode++ ) 3323 3265 #else … … 3326 3268 { 3327 3269 // set luma prediction mode 3328 #if ! SCU_HS_FAST_INTRA_SDC_I01233270 #if !H_3D_FAST_INTRA_SDC 3329 3271 UInt uiOrgMode = uiRdModeList[uiMode]; 3330 3272 #endif 3331 3273 3332 #if SCU_HS_FAST_INTRA_SDC_I01233274 #if H_3D_FAST_INTRA_SDC 3333 3275 UInt uiOrgMode; 3334 3276 if (uiMode < numModesForFullRD) … … 3356 3298 3357 3299 #if H_3D_DIM_SDC 3358 #if SCU_HS_FAST_INTRA_SDC_I01233300 #if H_3D_FAST_INTRA_SDC 3359 3301 Bool bTestSDC = ( m_pcEncCfg->getUseSDC() && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD); 3360 3302 #else … … 3364 3306 for( UInt uiSDC=0; uiSDC<=(bTestSDC?1:0); uiSDC++ ) 3365 3307 { 3366 #if SCU_HS_FAST_INTRA_SDC_I01233308 #if H_3D_FAST_INTRA_SDC 3367 3309 if (!uiSDC && uiMode >= numModesForFullRD) continue; 3368 3310 #endif 3369 3311 pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth ); 3370 #if FAST_SDC_OFFSET_DECISION_I00843371 3312 Double dOffsetCost[3] = {MAX_DOUBLE,MAX_DOUBLE,MAX_DOUBLE}; 3372 3313 for( Int iOffset = 1; iOffset <= 5; iOffset++ ) 3373 #else 3374 for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ ) 3375 #endif 3376 { 3377 #if FAST_SDC_OFFSET_DECISION_I0084 3314 { 3378 3315 Int iSDCDeltaResi = 0; 3379 3316 if(iOffset % 2 == 0) … … 3385 3322 iSDCDeltaResi = -1 * (iOffset >> 1); 3386 3323 } 3387 #endif3388 3324 if( ( uiSDC == 0 ) && iSDCDeltaResi != 0 ) 3389 3325 { 3390 3326 continue; 3391 3327 } 3392 #if FAST_SDC_OFFSET_DECISION_I00843393 3328 if( iOffset > 3) 3394 3329 { … … 3407 3342 } 3408 3343 #endif 3409 #endif3410 3344 3411 3345 #if H_3D_DIM_ENC || H_3D_DIM_SDC … … 3452 3386 // start encoding with SDC 3453 3387 xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, ( testZeroResi != 0 ), iSDCDeltaResi ); 3454 #if FAST_SDC_OFFSET_DECISION_I00843455 3388 if ( testZeroResi == 0 && iOffset <= 3 ) 3456 3389 { 3457 3390 dOffsetCost [iOffset -1] = dPUCost; 3458 3391 } 3459 #endif3460 3392 } 3461 3393 else … … 3465 3397 #if H_3D_DIM_ENC 3466 3398 xRecurIntraCodingQT( pcCU, uiInitTrDepth, uiPartOffset, bLumaOnly, pcOrgYuv, pcPredYuv, pcResiYuv, uiPUDistY, uiPUDistC, true, dPUCost, (testZeroResi != 0) ); 3467 #if SCU_HS_FAST_INTRA_SDC_I01233399 #if H_3D_FAST_INTRA_SDC 3468 3400 if( dPUCost < dBestPUCostConv ) 3469 3401 { … … 4017 3949 #if H_3D_VSP 4018 3950 , Int* vspFlag 4019 #if !FIX_TICKET_794020 , InheritedVSPDisInfo* inheritedVSPDisInfo4021 #endif4022 3951 #endif 4023 3952 #if H_3D_SPIVMP … … 4079 4008 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 4080 4009 pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 4081 #if H_3D_VSP && !FIX_TICKET_794082 , inheritedVSPDisInfo4083 #endif4084 4010 #if H_3D_SPIVMP 4085 4011 , pcMvFieldSP, puhInterDirSP … … 4109 4035 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 4110 4036 pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 4111 #if H_3D_VSP && !FIX_TICKET_794112 , inheritedVSPDisInfo4113 #endif4114 4037 #if H_3D_SPIVMP 4115 4038 , pcMvFieldSP, puhInterDirSP … … 4132 4055 #endif 4133 4056 } 4134 #if H_3D_VSP && !FIX_TICKET_754135 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours,vspFlag, numValidMergeCand );4136 #else4137 4057 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 4138 #endif4139 4058 4140 4059 #if H_3D_DBBP … … 4164 4083 #if H_3D_VSP 4165 4084 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 4166 #if !FIX_TICKET_794167 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );4168 #endif4169 4085 #endif 4170 4086 … … 4266 4182 * \returns Void 4267 4183 */ 4268 #if H_3D_VSP && !FIX_TICKET_754269 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int* vspFlag, Int numValidMergeCand )4270 #else4271 4184 Void TEncSearch::xRestrictBipredMergeCand( TComDataCU* pcCU, UInt puIdx, TComMvField* mvFieldNeighbours, UChar* interDirNeighbours, Int numValidMergeCand ) 4272 #endif4273 4185 { 4274 4186 if ( pcCU->isBipredRestriction(puIdx) ) … … 4276 4188 for( UInt mergeCand = 0; mergeCand < numValidMergeCand; ++mergeCand ) 4277 4189 { 4278 #if H_3D_VSP && !FIX_TICKET_754279 if ( (interDirNeighbours[mergeCand] == 3) && (vspFlag[mergeCand] == false) )4280 #else4281 4190 if ( interDirNeighbours[mergeCand] == 3 ) 4282 #endif4283 4191 { 4284 4192 interDirNeighbours[mergeCand] = 1; … … 4902 4810 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 4903 4811 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 4904 #if !FIX_TICKET_794905 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM];4906 #endif4907 4812 UInt uiAbsPartIdx = 0; 4908 4813 Int iWidth = 0; … … 4922 4827 #if H_3D_VSP 4923 4828 , vspFlag 4924 #if !FIX_TICKET_794925 , inheritedVSPDisInfo4926 #endif4927 4829 #endif 4928 4830 #if H_3D_SPIVMP … … 4938 4840 #if H_3D_VSP 4939 4841 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4940 #if !FIX_TICKET_794941 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );4942 #endif4943 4842 #endif 4944 4843 #if H_3D_DDD … … 7388 7287 } 7389 7288 m_pcEntropyCoder->encodeSkipFlag ( pcCU, 0, true ); 7390 #if MTK_SINGLE_DEPTH_MODE_I00957289 #if H_3D_SINGLE_DEPTH 7391 7290 m_pcEntropyCoder->encodeSingleDepthMode ( pcCU, 0, true ); 7392 7291 #endif … … 7845 7744 7846 7745 Pel refDC1 = 0; Pel refDC2 = 0; 7847 #if SHARP_DMM1_I01107848 7746 WedgeList* pacWedgeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])]; 7849 7747 WedgeNodeList* pacWedgeNodeList = pcCU->isDMM1UpscaleMode( uiWidth ) ? &g_dmmWedgeNodeLists[(g_aucConvertToBit[pcCU->getDMM1BasePatternWidth(uiWidth)])] : &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])]; 7850 #else7851 WedgeList* pacWedgeList = &g_dmmWedgeLists [(g_aucConvertToBit[uiWidth])];7852 WedgeNodeList* pacWedgeNodeList = &g_dmmWedgeNodeLists[(g_aucConvertToBit[uiWidth])];7853 #endif7854 7748 7855 7749 // coarse wedge search … … 7859 7753 { 7860 7754 TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiNodeId).getPatternIdx())); 7861 #if SHARP_DMM1_I01107862 7755 Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern(); 7863 7756 UInt uiStride = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride(); 7864 7757 xCalcBiSegDCs ( piRef, uiRefStride, pbPattern, uiStride, refDC1, refDC2 ); 7865 7758 xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 ); 7866 #else7867 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7868 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7869 #endif7870 7759 7871 7760 Dist uiActDist = RDO_DIST_MAX; … … 7903 7792 { 7904 7793 TComWedgelet* pcWedgelet = &(pacWedgeList->at(pacWedgeNodeList->at(uiBestNodeId).getRefineIdx( uiRefId ))); 7905 #if SHARP_DMM1_I01107906 7794 Bool *pbPattern = pcCU->isDMM1UpscaleMode(uiWidth) ? pcWedgelet->getScaledPattern(uiWidth) : pcWedgelet->getPattern(); 7907 7795 UInt uiStride = pcCU->isDMM1UpscaleMode(uiWidth) ? uiWidth : pcWedgelet->getStride(); 7908 7796 xCalcBiSegDCs ( piRef, uiRefStride, pbPattern, uiStride, refDC1, refDC2 ); 7909 7797 xAssignBiSegDCs( piPred, uiPredStride, pbPattern, uiStride, refDC1, refDC2 ); 7910 #else7911 xCalcBiSegDCs ( piRef, uiRefStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7912 xAssignBiSegDCs( piPred, uiPredStride, pcWedgelet->getPattern(), pcWedgelet->getStride(), refDC1, refDC2 );7913 #endif7914 7798 Dist uiActDist = RDO_DIST_MAX; 7915 7799 #if H_3D_VSO -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncSearch.h
r1039 r1074 181 181 UInt& ruiDistC, 182 182 Bool bLumaOnly 183 #if H HI_DMM4_ENC_I0066183 #if H_3D_DIM 184 184 , Bool bOnlyIVP 185 185 #endif … … 191 191 TComYuv* pcRecoYuv, 192 192 UInt uiPreCalcDistC ); 193 #if MTK_SINGLE_DEPTH_MODE_I0095193 #if H_3D_SINGLE_DEPTH 194 194 Void estIntraPredSingleDepth ( TComDataCU* pcCU, 195 195 TComYuv* pcOrgYuv, … … 354 354 UInt uiAbsPartIdx, 355 355 UInt stateU0V1Both2 ); 356 #if MTK_SINGLE_DEPTH_MODE_I0095356 #if H_3D_SINGLE_DEPTH 357 357 Void xIntraCodingSingleDepth( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Int iTestDepthIdx, Pel * DepthNeighbor ); 358 358 #endif … … 429 429 #if H_3D_VSP 430 430 , Int* vspFlag 431 #if !FIX_TICKET_79432 , InheritedVSPDisInfo* inheritedVSPDisInfo433 #endif434 431 #endif 435 432 #if H_3D_SPIVMP … … 443 440 TComMvField* mvFieldNeighbours, 444 441 UChar* interDirNeighbours, 445 #if H_3D_VSP && !FIX_TICKET_75446 Int* vspFlag,447 #endif448 442 Int numValidMergeCand ); 449 443 -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncTop.cpp
r1066 r1074 89 89 m_ivPicLists = NULL; 90 90 #endif 91 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX91 #if H_3D_IC 92 92 m_aICEnableCandidate = NULL; 93 93 m_aICEnableNum = NULL; … … 370 370 371 371 xInitPPSforTiles(); 372 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX372 #if H_3D_IC 373 373 m_aICEnableCandidate = new Int[ 10 ]; 374 374 m_aICEnableNum = new Int[ 10 ]; … … 828 828 829 829 m_cSPS.setUseAMP ( m_useAMP ); 830 831 #if !MTK_I0099_VPS_EX2832 #if H_3D_QTLPC833 m_cSPS.setUseQTL( m_bUseQTL );834 m_cSPS.setUsePC ( m_bUsePC );835 #endif836 #endif837 830 838 831 for (i = g_uiMaxCUDepth-g_uiAddCUDepth; i < g_uiMaxCUDepth; i++ ) -
branches/HTM-12.1-dev0/source/Lib/TLibEncoder/TEncTop.h
r1066 r1074 80 80 TComPicLists* m_ivPicLists; ///< access to picture lists of other layers 81 81 #endif 82 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX82 #if H_3D_IC 83 83 Int *m_aICEnableCandidate; 84 84 Int *m_aICEnableNum; … … 209 209 TComPicLists* getIvPicLists() { return m_ivPicLists; } 210 210 #endif 211 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX212 Int *getICEnableCandidate() { return m_aICEnableCandidate; }213 Int *getICEnableNum() { return m_aICEnableNum; }211 #if H_3D_IC 212 Int* getICEnableCandidate() { return m_aICEnableCandidate; } 213 Int* getICEnableNum() { return m_aICEnableNum; } 214 214 #endif 215 215 Void deletePicBuffer (); … … 272 272 Void setIvPicLists ( TComPicLists* picLists) { m_ivPicLists = picLists; } 273 273 #endif 274 #if MTK_LOW_LATENCY_IC_ENCODING_H0086_FIX274 #if H_3D_IC 275 275 Void setICEnableCandidate ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; } 276 276 Void setICEnableNum ( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }
Note: See TracChangeset for help on using the changeset viewer.