Changeset 724 in 3DVCSoftware for trunk/source/Lib/TLibEncoder
- Timestamp:
- 30 Nov 2013, 12:29:49 (11 years ago)
- Location:
- trunk/source/Lib/TLibEncoder
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
r655 r724 1006 1006 #if H_3D_IV_MERGE 1007 1007 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1008 #if MTK_SPIVMP_F0110 1009 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]"); 1010 #endif 1008 1011 #endif 1009 1012 #if H_3D_ARP … … 1019 1022 else 1020 1023 { 1024 #if QC_DEPTH_IV_MRG_F0125 1025 if(i!=1) 1026 { 1027 WRITE_FLAG( pcVPS->getIvMvPredFlag ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]"); 1028 } 1029 #endif 1030 #if MTK_SPIVMP_F0110 1031 if (i!=1) 1032 { 1033 WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]"); 1034 } 1035 #endif 1036 #if SEC_MPI_ENABLING_MERGE_F0150 1037 WRITE_FLAG( pcVPS->getMPIFlag( i ) ? 1 : 0 , "mpi_flag[i]" ); 1038 #endif 1021 1039 WRITE_FLAG( pcVPS->getVpsDepthModesFlag( i ) ? 1 : 0 , "vps_depth_modes_flag[i]" ); 1022 1040 //WRITE_FLAG( pcVPS->getLimQtPredFlag ( i ) ? 1 : 0 , "lim_qt_pred_flag[i]" ); … … 1387 1405 } 1388 1406 #if H_3D_IC 1407 #if SEC_ONLY_TEXTURE_IC_F0151 1408 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth()) 1409 #else 1389 1410 else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) ) 1411 #endif 1390 1412 { 1391 1413 WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" ); … … 1405 1427 { 1406 1428 #if H_3D_IV_MERGE 1429 #if SEC_MPI_ENABLING_MERGE_F0150 1430 if(pcSlice->getIsDepth()) 1431 { 1432 Bool bMPIFlag = pcSlice->getVPS()->getMPIFlag( pcSlice->getLayerIdInVps() ) ; 1433 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ; 1434 WRITE_UVLC( ( ( bMPIFlag || ivMvPredFlag ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 1435 } 1436 else 1437 { 1438 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ; 1439 WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 1440 } 1441 #else 1407 1442 Bool ivMvPredFlag = pcSlice->getVPS()->getIvMvPredFlag( pcSlice->getLayerIdInVps() ) ; 1408 1443 WRITE_UVLC( ( ivMvPredFlag ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 1444 #endif 1409 1445 #else 1410 1446 WRITE_UVLC(MRG_MAX_NUM_CANDS - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); … … 1452 1488 WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!! 1453 1489 1490 #if QC_DEPTH_IV_MRG_F0125 1491 if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() ) 1492 #else 1454 1493 if( pcSlice->getSPS()->hasCamParInSliceHeader() ) 1494 #endif 1455 1495 { 1456 1496 for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ ) -
trunk/source/Lib/TLibEncoder/TEncCfg.h
r655 r724 403 403 UInt m_uiARPStepNum; 404 404 #endif 405 #if MTK_SPIVMP_F0110 406 Int m_iSubPULog2Size; 407 #endif 405 408 #if H_3D_IC 406 409 Bool m_bUseIC; … … 412 415 #if H_3D_DIM 413 416 Bool m_useDMM; 417 #if !SEC_DMM3_RBC_F0147 414 418 Bool m_useRBC; 419 #endif 415 420 Bool m_useSDC; 416 421 Bool m_useDLT; 422 #endif 423 #if SEC_MPI_ENABLING_MERGE_F0150 424 Bool m_useMPI; 417 425 #endif 418 426 #if H_3D_QTLPC … … 500 508 UInt getARPStepNum () { return m_uiARPStepNum; } 501 509 Void setARPStepNum ( UInt u ) { m_uiARPStepNum = u; } 510 #endif 511 #if MTK_SPIVMP_F0110 512 Int getSubPULog2Size () { return m_iSubPULog2Size;} 513 Void setSubPULog2Size (Int u) { m_iSubPULog2Size = u; } 502 514 #endif 503 515 … … 980 992 Bool getUseDMM () { return m_useDMM; } 981 993 Void setUseDMM ( Bool b) { m_useDMM = b; } 994 #if !SEC_DMM3_RBC_F0147 982 995 Bool getUseRBC () { return m_useRBC; } 983 996 Void setUseRBC ( Bool b) { m_useRBC = b; } 997 #endif 984 998 Bool getUseSDC () { return m_useSDC; } 985 999 Void setUseSDC ( Bool b) { m_useSDC = b; } … … 993 1007 Bool getUsePC () { return m_bUsePC; } 994 1008 #endif 1009 #if SEC_MPI_ENABLING_MERGE_F0150 1010 Void setUseMPI ( Bool b ) { m_useMPI = b; } 1011 Bool getUseMPI () { return m_useMPI; } 1012 #endif 995 1013 #endif // H_3D 996 1014 }; -
trunk/source/Lib/TLibEncoder/TEncCu.cpp
r655 r724 497 497 #endif 498 498 #if H_3D_IC 499 #if SEC_ONLY_TEXTURE_IC_F0151 500 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth(); 501 #else 499 502 Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ); 503 #endif 500 504 bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC(); 501 505 #endif … … 567 571 PartSize ePartTemp = rpcTempCU->getPartitionSize(0); 568 572 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); 573 #if QC_DEPTH_IV_MRG_F0125 574 if (rpcTempCU->getSlice()->getIsDepth() ) 575 { 576 DvInfo.bDV = rpcTempCU->getDispNeighBlocks(0, 0, &DvInfo); 577 } 578 else 579 { 580 #endif 569 581 #if H_3D_NBDV_REF 570 582 if(rpcTempCU->getSlice()->getVPS()->getDepthRefinementFlag( rpcTempCU->getSlice()->getLayerIdInVps())) … … 574 586 DvInfo.bDV = rpcTempCU->getDisMvpCandNBDV(&DvInfo); 575 587 588 #if QC_DEPTH_IV_MRG_F0125 589 } 590 #endif 576 591 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 577 592 rpcBestCU->setDvInfoSubParts(DvInfo, 0, uiDepth); … … 1764 1779 #endif 1765 1780 1781 #if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104 1782 DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0); 1783 #else 1766 1784 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1767 1785 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1786 #endif 1768 1787 1769 1788 #if H_3D_VSP 1789 #if !(H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104) 1770 1790 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1771 1791 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1772 1792 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 1773 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand ); 1793 #if ETRIKHU_MERGE_REUSE_F0093 1794 rpcTempCU->m_bAvailableFlagA1 = 0; 1795 rpcTempCU->m_bAvailableFlagB1 = 0; 1796 rpcTempCU->m_bAvailableFlagB0 = 0; 1797 rpcTempCU->m_bAvailableFlagA0 = 0; 1798 rpcTempCU->m_bAvailableFlagB2 = 0; 1799 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1800 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand ); 1801 #else 1802 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); 1803 #endif 1804 #endif 1805 #else 1806 #if ETRIKHU_MERGE_REUSE_F0093 1807 rpcTempCU->m_bAvailableFlagA1 = 0; 1808 rpcTempCU->m_bAvailableFlagB1 = 0; 1809 rpcTempCU->m_bAvailableFlagB0 = 0; 1810 rpcTempCU->m_bAvailableFlagA0 = 0; 1811 rpcTempCU->m_bAvailableFlagB2 = 0; 1812 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1813 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1774 1814 #else 1775 1815 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1816 #endif 1776 1817 #endif 1777 1818 … … 1781 1822 Int mergeCandBuffer[MRG_MAX_NUM_CANDS]; 1782 1823 #endif 1824 #if H_3D_ARP && LGE_SHARP_VSP_INHERIT_F0104 1825 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui ) 1826 #else 1783 1827 for( UInt ui = 0; ui < numValidMergeCand; ++ui ) 1828 #endif 1784 1829 { 1785 1830 mergeCandBuffer[ui] = 0; … … 1806 1851 for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- ) 1807 1852 { 1853 #if FIX_MISSING_MACRO_R690 1854 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1855 #else 1808 1856 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS*sizeof(Int) ); 1857 #endif 1858 #if LGE_SHARP_VSP_INHERIT_F0104 1859 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1860 rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth ); 1861 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 1862 #if H_3D_IC 1863 rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth ); 1864 #endif 1865 rpcTempCU->getDvInfo(0) = cOrigDisInfo; 1866 rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0, uhDepth ); 1867 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1868 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1869 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 1870 #if MTK_SPIVMP_F0110 1871 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 1872 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 1873 TComMvField* pcMvFieldSP; 1874 UChar* puhInterDirSP; 1875 pcMvFieldSP = new TComMvField[rpcTempCU->getPic()->getPicSym()->getNumPartition()*2]; 1876 puhInterDirSP = new UChar[rpcTempCU->getPic()->getPicSym()->getNumPartition()]; 1877 #endif 1878 #if ETRIKHU_MERGE_REUSE_F0093 1879 rpcTempCU->initAvailableFlags(); 1880 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1881 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo 1882 #if MTK_SPIVMP_F0110 1883 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 1884 #endif 1885 , numValidMergeCand 1886 ); 1887 #else 1888 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag, inheritedVSPDisInfo, numValidMergeCand ); 1889 #endif 1890 #endif 1809 1891 #endif 1810 1892 for( UInt uiNoResidual = 0; uiNoResidual < iteration; ++uiNoResidual ) … … 1841 1923 rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth ); 1842 1924 #endif 1843 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level 1844 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1845 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1846 1847 #if H_3D_ARP 1925 #if MTK_SPIVMP_F0110 1926 rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth); 1927 if (bSPIVMPFlag[uiMergeCand]) 1928 { 1929 UInt uiSPAddr; 1930 Int iWidth = rpcTempCU->getWidth(0); 1931 Int iHeight = rpcTempCU->getHeight(0); 1932 1933 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 1934 1935 rpcTempCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 1936 1937 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 1938 { 1939 rpcTempCU->getSPAbsPartIdx(0, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 1940 rpcTempCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 1941 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 1942 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(rpcTempCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 1943 } 1944 } 1945 else 1946 { 1947 #endif 1948 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to LCU level 1949 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1950 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 1951 #if MTK_SPIVMP_F0110 1952 } 1953 #endif 1954 #if H_3D_ARP && !QC_MTK_INTERVIEW_ARP_F0123_F0108 1848 1955 if( nARPW ) 1849 1956 { … … 1860 1967 if( !bSignalflag[0] && !bSignalflag[1] ) 1861 1968 { 1969 #if LGE_SHARP_VSP_INHERIT_F0104 1970 continue; 1971 #else 1862 1972 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth ); 1973 #endif 1863 1974 } 1864 1975 } … … 1982 2093 } 1983 2094 } 2095 #if MTK_SPIVMP_F0110 2096 delete pcMvFieldSP; 2097 delete puhInterDirSP; 2098 #endif 1984 2099 #if H_3D_ARP 1985 2100 } … … 2051 2166 m_pcPredSearch->motionCompensation( rpcTempCU , m_ppcPredYuvTemp[uhDepth] ); 2052 2167 2168 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108 2053 2169 if(rpcTempCU->getPartitionSize(0)==SIZE_2Nx2N) 2054 2170 { … … 2068 2184 } 2069 2185 } 2186 #endif 2070 2187 } 2071 2188 else … … 2088 2205 m_ppcWeightedTempCU[uhDepth]->copyPartFrom( rpcTempCU , 0 , uhDepth ); 2089 2206 2207 #if !QC_MTK_INTERVIEW_ARP_F0123_F0108 2090 2208 Bool bSignalflag[2] = { true, true }; 2091 2209 for(UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx ++ ) … … 2102 2220 rpcTempCU->setARPWSubParts( 0 , 0 , uhDepth ); 2103 2221 } 2222 #endif 2104 2223 } 2105 2224 } -
trunk/source/Lib/TLibEncoder/TEncEntropy.cpp
r655 r724 160 160 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 161 161 { 162 #if SEC_ONLY_TEXTURE_IC_F0151 163 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() ) 164 #else 162 165 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) ) 166 #endif 163 167 { 164 168 return; -
trunk/source/Lib/TLibEncoder/TEncGOP.cpp
r655 r724 724 724 #if H_3D_ARP 725 725 //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh 726 #if SHARP_ARP_REF_CHECK_F0105 727 pcSlice->setARPStepNum(m_ivPicLists); 728 #else 726 729 pcSlice->setARPStepNum(); 730 #endif 727 731 if(pcSlice->getARPStepNum() > 1) 728 732 { -
trunk/source/Lib/TLibEncoder/TEncSbac.cpp
r655 r724 95 95 #if H_3D_DIM_DMM 96 96 , m_cDmm1DataSCModel ( 1, 1, NUM_DMM1_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 97 #if !SEC_DMM3_RBC_F0147 97 98 , m_cDmm3DataSCModel ( 1, 1, NUM_DMM3_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 99 #endif 98 100 #endif 99 101 #if H_3D_DIM_RBC … … 174 176 #if H_3D_DIM_DMM 175 177 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 178 #if !SEC_DMM3_RBC_F0147 176 179 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 180 #endif 177 181 #endif 178 182 #if H_3D_DIM_RBC … … 262 266 #if H_3D_DIM_DMM 263 267 curCost += m_cDmm1DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM1_DATA ); 268 #if !SEC_DMM3_RBC_F0147 264 269 curCost += m_cDmm3DataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM3_DATA ); 270 #endif 265 271 #endif 266 272 #if H_3D_DIM_RBC … … 331 337 #if H_3D_DIM_DMM 332 338 m_cDmm1DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA ); 339 #if !SEC_DMM3_RBC_F0147 333 340 m_cDmm3DataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM3_DATA ); 341 #endif 334 342 #endif 335 343 #if H_3D_DIM_RBC … … 518 526 } 519 527 528 #if QC_DIM_DELTADC_UNIFY_F0132 529 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt uiNumSeg ) 530 { 531 xWriteExGolombLevel( UInt( abs( valDeltaDC ) - ( uiNumSeg > 1 ? 0 : 1 ) ), m_cDdcDataSCModel.get(0, 0, 0) ); 532 if( valDeltaDC != 0 ) 533 { 534 UInt uiSign = valDeltaDC > 0 ? 0 : 1; 535 m_pcBinIf->encodeBinEP( uiSign ); 536 } 537 } 538 #else 520 539 Void TEncSbac::xCodeDimDeltaDC( Pel valDeltaDC, UInt dimType ) 521 540 { … … 527 546 } 528 547 } 548 #endif 529 549 530 550 #if H_3D_DIM_DMM … … 537 557 } 538 558 559 #if !SEC_DMM3_RBC_F0147 539 560 Void TEncSbac::xCodeDmm3WedgeIdx( UInt uiIntraIdx, Int iNumBit ) 540 561 { … … 544 565 } 545 566 } 567 #endif 546 568 #endif 547 569 #if H_3D_DIM_RBC … … 1209 1231 xCodeDmm1WedgeIdx( pcCU->getDmmWedgeTabIdx( dimType, absPartIdx ), g_dmm1TabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1210 1232 } break; 1233 #if !SEC_DMM3_RBC_F0147 1211 1234 case( DMM3_IDX ): 1212 1235 { 1213 1236 xCodeDmm3WedgeIdx( pcCU->getDmm3IntraTabIdx( absPartIdx ), g_dmm3IntraTabIdxBits[pcCU->getIntraSizeIdx(absPartIdx)] ); 1214 1237 } break; 1238 #endif 1215 1239 case( DMM4_IDX ): break; 1216 1240 #endif … … 1225 1249 } 1226 1250 1227 #if H_3D_DIM_SDC 1251 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1228 1252 if( pcCU->getSDCFlag( absPartIdx ) ) 1229 1253 { … … 1238 1262 { 1239 1263 #endif 1264 #if QC_DIM_DELTADC_UNIFY_F0132 1265 if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) ) 1266 #else 1240 1267 if( dimType < DIM_NUM_TYPE ) 1241 { 1268 #endif 1269 { 1270 #if QC_DIM_DELTADC_UNIFY_F0132 1271 UInt dimDeltaDC; 1272 Pel deltaDC; 1273 UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2; 1274 if( pcCU->getSDCFlag( absPartIdx ) ) 1275 { 1276 if( uiNumSegments==1 ) 1277 { 1278 dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0; 1279 } 1280 else 1281 { 1282 dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0; 1283 } 1284 } 1285 else 1286 { 1287 dimDeltaDC = isDimDeltaDC( dir ); 1288 } 1289 1290 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) ); 1291 1292 if( dimDeltaDC ) 1293 { 1294 for( UInt segment = 0; segment < uiNumSegments; segment++ ) 1295 { 1296 deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx ); 1297 xCodeDimDeltaDC( deltaDC, uiNumSegments ); 1298 } 1299 } 1300 #else 1242 1301 UInt dimDeltaDC = isDimDeltaDC( dir ); 1243 1302 m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, (RBC_IDX == dimType) ? 1 : 0) ); … … 1249 1308 } 1250 1309 } 1251 } 1252 #if H_3D_DIM_SDC 1310 #endif 1311 } 1312 #if H_3D_DIM_SDC && !QC_DIM_DELTADC_UNIFY_F0132 1253 1313 } 1254 1314 #endif … … 1257 1317 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx ) 1258 1318 { 1319 #if SEC_DMM3_RBC_F0147 1320 UInt codeWordTable[3][7] = {{0, 0, 0, 1, 0, 0, 0},{0, 2, 6, 14, 15, 0, 0},{0, 1, 0, 0, 0, 0, 0}}; 1321 UInt codeWordLenTable[3][7] = {{0, 1, 0, 1, 0, 0, 0},{1, 2, 3, 4, 4, 0, 0},{1, 1, 0, 0, 0, 0, 0}}; 1322 #else 1259 1323 UInt codeWordTable[3][7] = {{0, 0, 0, 2, 0,6, 7},{0, 0, 2, 7, 3, 6, 2},{0, 1, 0, 0, 0, 0, 0}}; 1260 1324 UInt codeWordLenTable[3][7] = {{0, 1, 0, 2, 0,3, 3},{1, 1, 2, 3, 2, 3, 2},{1, 1, 0, 0, 0, 0, 0}}; 1325 #endif 1261 1326 UInt dir = pcCU->getLumaIntraDir( absPartIdx ); 1262 1327 UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 ); … … 1273 1338 case DMM1_IDX: codeIdx = 3; break; 1274 1339 case DMM4_IDX: codeIdx = 4; break; 1340 #if !SEC_DMM3_RBC_F0147 1275 1341 case DMM3_IDX: codeIdx = 5; break; 1276 1342 case RBC_IDX: codeIdx = 6; break; 1343 #endif 1277 1344 default: break; 1278 1345 } … … 1289 1356 } 1290 1357 #endif 1358 #if !SEC_DMM3_RBC_F0147 1291 1359 if( puIdx==1 ) 1292 1360 { … … 1300 1368 } 1301 1369 } 1370 #endif 1302 1371 //mode coding 1303 1372 for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ ) -
trunk/source/Lib/TLibEncoder/TEncSbac.h
r655 r724 118 118 #if H_3D_DIM 119 119 Void xWriteExGolombLevel ( UInt uiSymbol, ContextModel& rcSCModel ); 120 #if QC_DIM_DELTADC_UNIFY_F0132 121 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt uiNumSeg ); 122 #else 120 123 Void xCodeDimDeltaDC ( Pel valDeltaDC, UInt dimType ); 124 #endif 121 125 #if H_3D_DIM_DMM 122 126 Void xCodeDmm1WedgeIdx ( UInt uiTabIdx, Int iNumBit ); 127 #if !SEC_DMM3_RBC_F0147 123 128 Void xCodeDmm3WedgeIdx ( UInt uiIntraIdx, Int iNumBit ); 129 #endif 124 130 #endif 125 131 #if H_3D_DIM_RBC … … 253 259 #if H_3D_DIM_DMM 254 260 ContextModel3DBuffer m_cDmm1DataSCModel; 261 #if !SEC_DMM3_RBC_F0147 255 262 ContextModel3DBuffer m_cDmm3DataSCModel; 263 #endif 256 264 #endif 257 265 #if H_3D_DIM_RBC -
trunk/source/Lib/TLibEncoder/TEncSearch.cpp
r655 r724 1126 1126 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1127 1127 { 1128 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1129 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1130 { 1131 pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ); 1132 } 1133 else 1134 { 1135 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; 1136 } 1137 #else 1128 1138 pResi[ uiX ] = pOrg[ uiX ] - pPred[ uiX ]; 1139 #endif 1129 1140 } 1130 1141 pOrg += uiStride; … … 1190 1201 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1191 1202 { 1203 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159 1204 if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) ) 1205 { 1206 pReco [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) ); 1207 } 1208 else 1209 { 1210 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 1211 } 1212 #else 1192 1213 pReco [ uiX ] = ClipY( pPred[ uiX ] + pResi[ uiX ] ); 1214 #endif 1193 1215 pRecQt [ uiX ] = pReco[ uiX ]; 1194 1216 pRecIPred[ uiX ] = pReco[ uiX ]; … … 2876 2898 biSegmentation = &(g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])][uiTabIdx]); 2877 2899 } break; 2900 #if !SEC_DMM3_RBC_F0147 2878 2901 case( DMM3_IDX ): 2879 2902 { … … 2893 2916 } 2894 2917 } break; 2918 #endif 2895 2919 case( DMM4_IDX ): 2896 2920 { … … 2928 2952 { 2929 2953 Pel deltaDC1 = 0; Pel deltaDC2 = 0; 2954 #if QC_DIM_DELTADC_UNIFY_F0132 2955 xSearchDmmDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2956 #else 2930 2957 xSearchRbcDeltaDCs( pcCU, uiPartOffset, piOrg, piPred, uiStride, pcCU->getEdgePartition( uiPartOffset ), uiWidth, uiWidth, uiHeight, deltaDC1, deltaDC2 ); 2958 #endif 2931 2959 pcCU->setDimDeltaDC( RBC_IDX, 0, uiPartOffset, deltaDC1 ); 2932 2960 pcCU->setDimDeltaDC( RBC_IDX, 1, uiPartOffset, deltaDC2 ); … … 2975 3003 Bool bTestZeroResi = false; 2976 3004 #if H_3D_DIM_ENC 3005 #if LGE_BUGFIX_F0158 3006 bTestZeroResi |= pcCU->getSlice()->getIsDepth() && !pcCU->getSlice()->isIRAP(); 3007 #else 2977 3008 bTestZeroResi |= pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->isIRAP(); 3009 #endif 2978 3010 #endif 2979 3011 #if H_3D_DIM_SDC … … 3584 3616 , InheritedVSPDisInfo* inheritedVSPDisInfo 3585 3617 #endif 3618 #if MTK_SPIVMP_F0110 3619 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3620 #endif 3586 3621 , Int& numValidMergeCand 3587 3622 ) … … 3599 3634 if ( iPUIdx == 0 ) 3600 3635 { 3636 #if ETRIKHU_MERGE_REUSE_F0093 3637 pcCU->initAvailableFlags(); 3638 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 3639 pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 3640 #if H_3D_VSP 3641 , vspFlag 3642 , inheritedVSPDisInfo 3643 #endif 3644 #if MTK_SPIVMP_F0110 3645 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3646 #endif 3647 , numValidMergeCand 3648 ); 3649 #else 3601 3650 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 3602 3651 #if H_3D_VSP … … 3606 3655 , numValidMergeCand 3607 3656 ); 3657 #endif 3608 3658 } 3609 3659 pcCU->setPartSizeSubParts( partSize, 0, uiDepth ); … … 3611 3661 else 3612 3662 { 3663 #if ETRIKHU_MERGE_REUSE_F0093 3664 pcCU->initAvailableFlags(); 3665 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand); 3666 pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 3667 #if H_3D_VSP 3668 , vspFlag 3669 , inheritedVSPDisInfo 3670 #endif 3671 #if MTK_SPIVMP_F0110 3672 , pbSPIVMPFlag, pcMvFieldSP, puhInterDirSP 3673 #endif 3674 , numValidMergeCand 3675 ); 3676 #else 3613 3677 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 3614 3678 #if H_3D_VSP … … 3618 3682 , numValidMergeCand 3619 3683 ); 3684 #endif 3620 3685 } 3621 3686 #if H_3D_VSP … … 3635 3700 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 3636 3701 3637 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3638 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3702 #if MTK_SPIVMP_F0110 3703 pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx )); 3704 if (pbSPIVMPFlag[uiMergeCand]) 3705 { 3706 UInt uiSPAddr; 3707 3708 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 3709 3710 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 3711 3712 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 3713 { 3714 pcCU->getSPAbsPartIdx(uiAbsPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 3715 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 3716 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 3717 } 3718 } 3719 else 3720 { 3721 #endif 3722 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3723 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 3724 #if MTK_SPIVMP_F0110 3725 } 3726 #endif 3639 3727 3640 3728 #if H_3D_VSP … … 4313 4401 DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx); 4314 4402 #endif 4315 4403 #if MTK_SPIVMP_F0110 4404 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 4405 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 4406 TComMvField* pcMvFieldSP; 4407 UChar* puhInterDirSP; 4408 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 4409 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 4410 #endif 4316 4411 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours 4317 4412 #if H_3D_VSP … … 4319 4414 , inheritedVSPDisInfo 4320 4415 #endif 4416 #if MTK_SPIVMP_F0110 4417 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 4418 #endif 4321 4419 , numValidMergeCand 4322 4420 ); … … 4330 4428 pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4331 4429 #endif 4332 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4333 { 4334 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4335 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4336 } 4430 #if MTK_SPIVMP_F0110 4431 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4432 if (bSPIVMPFlag[uiMRGIndex]!=0) 4433 { 4434 UInt uiSPAddr; 4435 4436 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 4437 4438 pcCU->getSPPara(iRoiWidth, iRoiHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 4439 4440 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 4441 { 4442 pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 4443 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 4444 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 4445 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 4446 } 4447 4448 if ( pcCU->getInterDir(uiPartAddr) == 3 && pcCU->isBipredRestriction(iPartIdx) ) 4449 { 4450 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMv( TComMv(0,0), ePartSize, uiPartAddr, 0, iPartIdx); 4451 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllRefIdx( -1, ePartSize, uiPartAddr, 0, iPartIdx); 4452 pcCU->setInterDirSubParts( 1, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr )); 4453 } 4454 4455 } 4456 else 4457 { 4458 #endif 4459 pcCU->setInterDirSubParts ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4460 { 4461 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4462 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4463 } 4464 #if MTK_SPIVMP_F0110 4465 } 4466 #endif 4337 4467 4338 4468 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvd ( cMvZero, ePartSize, uiPartAddr, 0, iPartIdx ); … … 4346 4476 else 4347 4477 { 4478 #if MTK_SPIVMP_F0110 4479 pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4480 #endif 4348 4481 // set ME result 4349 4482 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); … … 4358 4491 } 4359 4492 } 4493 #if MTK_SPIVMP_F0110 4494 delete pcMvFieldSP; 4495 delete puhInterDirSP; 4496 #endif 4360 4497 } 4361 4498 … … 5270 5407 dZeroCost = dCost + 1; 5271 5408 } 5409 #if MTK_SPIVMP_F0110 5410 if ( dZeroCost < dCost || pcCU->getQtRootCbf(0)==0) 5411 #else 5272 5412 if ( dZeroCost < dCost ) 5413 #endif 5273 5414 { 5274 5415 dCost = dZeroCost; … … 7300 7441 } 7301 7442 7443 #if !SEC_DMM3_RBC_F0147 7302 7444 Void TEncSearch::xSearchDmm3Wedge( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ) 7303 7445 { … … 7336 7478 cPredYuv.destroy(); 7337 7479 } 7338 7480 #endif 7339 7481 #endif 7340 7482 #if H_3D_DIM_RBC -
trunk/source/Lib/TLibEncoder/TEncSearch.h
r655 r724 351 351 Void xSearchDmmDeltaDCs ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piOrig, Pel* piPredic, UInt uiStride, Bool* biSegPattern, Int patternStride, UInt uiWidth, UInt uiHeight, Pel& rDeltaDC1, Pel& rDeltaDC2 ); 352 352 Void xSearchDmm1Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx ); 353 #if !SEC_DMM3_RBC_F0147 353 354 Void xSearchDmm3Wedge ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx, UInt& ruiIntraTabIdx, UInt colTexIntraDir ); 355 #endif 354 356 #endif 355 357 #if H_3D_DIM_RBC … … 425 427 , InheritedVSPDisInfo* inheritedVSPDisInfo 426 428 #endif 429 #if MTK_SPIVMP_F0110 430 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 431 #endif 427 432 , Int& numValidMergeCand 428 433 ); -
trunk/source/Lib/TLibEncoder/TEncSlice.cpp
r655 r724 556 556 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 557 557 #if H_3D_IV_MERGE 558 #if SEC_MPI_ENABLING_MERGE_F0150 559 if(rpcSlice->getIsDepth()) 560 { 561 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( rpcSlice->getVPS()->getMPIFlag( rpcSlice->getLayerIdInVps() ) || rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ) ? 1 : 0 ) ); 562 } 563 else 564 { 565 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) ); 566 } 567 #else 558 568 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( rpcSlice->getVPS()->getIvMvPredFlag( rpcSlice->getLayerIdInVps() ) ? 1 : 0 ) ); 569 #endif 559 570 #else 560 571 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() ); -
trunk/source/Lib/TLibEncoder/TEncTop.cpp
r655 r724 835 835 } 836 836 #if H_3D 837 #if !QC_DEPTH_IV_MRG_F0125 837 838 if ( !m_isDepth ) 839 #endif 838 840 { 839 841 m_cSPS.initCamParaSPS ( m_viewIndex, m_uiCamParPrecision, m_bCamParInSliceHeader, m_aaiCodedScale, m_aaiCodedOffset );
Note: See TracChangeset for help on using the changeset viewer.