Changeset 1256 in 3DVCSoftware
- Timestamp:
- 12 Jun 2015, 18:09:57 (9 years ago)
- Location:
- branches/HTM-14.1-update-dev2-Orange
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibCommon/TComPic.cpp
r1200 r1256 75 75 m_apcPicYuv[i] = NULL; 76 76 } 77 #if H_3D_QTLPC77 #if NH_3D_QTLPC 78 78 m_bReduceBitsQTL = 0; 79 79 #endif -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibCommon/TComPic.h
r1200 r1256 94 94 #endif 95 95 #endif 96 #if H_3D_QTLPC96 #if NH_3D_QTLPC 97 97 Bool m_bReduceBitsQTL; 98 98 #endif … … 132 132 #endif 133 133 #endif 134 #if H_3D_QTLPC134 #if NH_3D_QTLPC 135 135 Bool getReduceBitsFlag () { return m_bReduceBitsQTL; } 136 136 Void setReduceBitsFlag ( Bool bFlag ) { m_bReduceBitsQTL = bFlag; } -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibCommon/TComRdCost.cpp
r1225 r1256 602 602 603 603 cDtParam.bitDepth = bitDepth; 604 605 #if NH_3D_IC_FIX 606 cDtParam.bUseIC = false; 607 #endif 608 #if H_3D_INTER_SDC_FIX 609 cDtParam.bUseSDCMRSAD = false; 610 #endif 604 611 605 612 Dist dist = cDtParam.DistFunc( &cDtParam ); -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibCommon/TComSlice.h
r1225 r1256 2707 2707 TComPic* getIvPic( Bool depthFlag, Int viewIndex) const { return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2708 2708 #endif 2709 #if H_3D2709 #if NH_3D 2710 2710 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2711 2711 #endif -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibCommon/TypeDef.h
r1226 r1256 85 85 // SEC_IC_NEIGHBOR_CLIP_I0080 // Clipping of neighboring sample position, JCT3V-I0080 86 86 // LGE_CHROMA_IC_J0050_J0034 87 88 #define NH_3D_IC_FIX 1 // Fix uninitialized value in cDtParam.bUseIC (it happened on intra block) 87 89 #define NH_3D_FULL_PEL_DEPTH_MAP_MV_ACC 1 // Full Pel Interpolation for Depth, HHI_FULL_PEL_DEPTH_MAP_MV_ACC 88 90 91 #define NH_3D_QTLPC 1 // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068 92 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 93 // MTK_TEX_DEP_PAR_G0055 Texture-partition-dependent depth partition. JCT3V-G0055 89 94 90 95 #endif … … 245 250 // LGE_INTER_SDC_E0156 Enable inter SDC for depth coding 246 251 // SEC_INTER_SDC_G0101 Improved inter SDC with multiple DC candidates 252 #define H_3D_INTER_SDC_FIX 1 247 253 #define H_3D_SPIVMP 1 // H_3D_SPIVMP JCT3V-F0110: Sub-PU level inter-view motion prediction 248 254 // SEC_SPIVMP_MCP_SIZE_G0077, Apply SPIVMP only to 2Nx2N partition, JCT3V-G0077 -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibDecoder/TDecSbac.cpp
r1225 r1256 721 721 722 722 UInt uiSymbol; 723 #if H_3D_QTLPC723 #if NH_3D_QTLPC 724 724 Bool bParseSplitFlag = true; 725 725 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); … … 736 736 #endif 737 737 { 738 TComDataCU *pcTextureCU = pcTexture->getC U(pcCU->getAddr());738 TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr()); 739 739 assert(pcTextureCU->getDepth(uiAbsPartIdx) >= uiDepth); 740 740 bParseSplitFlag = (pcTextureCU->getDepth(uiAbsPartIdx) > uiDepth); … … 751 751 DTRACE_CABAC_T( "\tSplitFlag\n" ) 752 752 #endif 753 #if H_3D_QTLPC753 #if NH_3D_QTLPC 754 754 } 755 755 else … … 783 783 assert ( pcCU->getSlice()->getSPS()->getLog2DiffMaxMinCodingBlockSize() == log2DiffMaxMinCodingBlockSize); 784 784 785 #if H_3D_QTLPC785 #if NH_3D_QTLPC 786 786 Bool bParsePartSize = true; 787 787 … … 802 802 #endif 803 803 { 804 TComDataCU *pcTextureCU = pcTexture->getC U(pcCU->getAddr());804 TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr()); 805 805 assert(pcTextureCU->getDepth(uiAbsPartIdx) >= uiDepth); 806 806 if(pcTextureCU->getDepth(uiAbsPartIdx) == uiDepth ) … … 819 819 if ( pcCU->isIntra( uiAbsPartIdx ) ) 820 820 { 821 #if H_3D_QTLPC821 #if NH_3D_QTLPC 822 822 if(bParsePartSize) 823 823 { … … 832 832 } 833 833 eMode = uiSymbol ? SIZE_2Nx2N : SIZE_NxN; 834 #if H_3D_QTLPC834 #if NH_3D_QTLPC 835 835 } 836 836 #endif … … 850 850 else 851 851 { 852 #if H_3D_QTLPC852 #if NH_3D_QTLPC 853 853 if(bParsePartSize) 854 854 { … … 894 894 } 895 895 } 896 #if H_3D_QTLPC896 #if NH_3D_QTLPC 897 897 } 898 898 else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD) 899 899 { 900 900 UInt uiMaxNumBits = 1; 901 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ))901 if ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) 902 902 { 903 903 uiMaxNumBits ++; … … 905 905 for ( UInt ui = 0; ui < uiMaxNumBits; ui++ ) 906 906 { 907 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) );907 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype) ); 908 908 if ( uiSymbol ) 909 909 { … … 913 913 } 914 914 eMode = (PartSize) uiMode; 915 if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth) && uiSymbol==1 )915 if(uiMode && ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiSymbol==1 ) 916 916 { 917 917 eMode = SIZE_2NxN; 918 918 } 919 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0&& uiSymbol==0)919 else if (uiMode && (( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize )==0) && uiSymbol==0) 920 920 { 921 921 eMode = SIZE_2NxN; 922 922 } 923 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth) && uiSymbol==0)924 { 925 m_pcTDecBinIf->decodeBinEP(uiSymbol );923 else if (uiMode && ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiSymbol==0) 924 { 925 m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype)); 926 926 eMode = (uiSymbol == 0? SIZE_2NxnU : SIZE_2NxnD); 927 927 } … … 930 930 { 931 931 UInt uiMaxNumBits = 1; 932 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ) )932 if ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) 933 933 { 934 934 uiMaxNumBits ++; … … 936 936 for ( UInt ui = 0; ui < uiMaxNumBits; ui++ ) 937 937 { 938 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) );938 m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUPartSizeSCModel.get( 0, 0, ui) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype)); 939 939 if ( uiSymbol ) 940 940 { … … 944 944 } 945 945 eMode = (PartSize) uiMode; 946 if(uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth) && uiSymbol==1 )946 if(uiMode && ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiSymbol==1 ) 947 947 { 948 948 eMode = SIZE_Nx2N; 949 949 } 950 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth )==0&& uiSymbol==0)950 else if (uiMode && (( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize )==0) && uiSymbol==0) 951 951 { 952 952 eMode = SIZE_Nx2N; 953 953 } 954 else if (uiMode && pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth) && uiSymbol==0)955 { 956 m_pcTDecBinIf->decodeBinEP(uiSymbol );954 else if (uiMode && ( ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiDepth < log2DiffMaxMinCodingBlockSize ) && uiSymbol==0) 955 { 956 m_pcTDecBinIf->decodeBinEP(uiSymbol RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(ctype)); 957 957 eMode = (uiSymbol == 0? SIZE_nLx2N : SIZE_nRx2N); 958 958 } … … 966 966 DTRACE_CU("part_mode", eMode ) 967 967 #endif 968 #if H_3D_QTLPC968 #if NH_3D_QTLPC 969 969 } 970 970 #endif -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibEncoder/TEncCu.cpp
r1225 r1256 413 413 414 414 415 #if H_3D_QTLPC415 #if NH_3D_QTLPC 416 416 Bool bLimQtPredFalg = pcPic->getSlice(0)->getQtPredFlag(); 417 417 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); … … 429 429 m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getCtuRsAddr(), rpcBestCU->getZorderIdxInCtu() ); 430 430 431 #if H_3D_QTLPC431 #if NH_3D_QTLPC 432 432 Bool bTrySplit = true; 433 433 Bool bTrySplitDQP = true; … … 529 529 } 530 530 531 #if H_3D_QTLPC531 #if NH_3D_QTLPC 532 532 bTrySplit = true; 533 533 #endif … … 547 547 548 548 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 549 #if H_3D_QTLPC549 #if NH_3D_QTLPC 550 550 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 551 551 #if H_3D_FCO … … 555 555 #endif 556 556 { 557 TComDataCU* pcTextureCU = pcTexture->getC U( rpcBestCU->getAddr() ); //Corresponding texture LCU558 UInt uiCUIdx = rpcBestCU->getZorderIdxInC U();557 TComDataCU* pcTextureCU = pcTexture->getCtu( rpcBestCU->getCtuRsAddr() ); //Corresponding texture LCU 558 UInt uiCUIdx = rpcBestCU->getZorderIdxInCtu(); 559 559 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); //Depth cannot be more partitioned than the texture. 560 560 if (pcTextureCU->getDepth(uiCUIdx) > uiDepth || pcTextureCU->getPartitionSize(uiCUIdx) == SIZE_NxN) //Texture was split. … … 713 713 #endif 714 714 } 715 #if H_3D_QTLPC715 #if NH_3D_QTLPC 716 716 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 717 717 { … … 768 768 { 769 769 if( uiDepth == sps.getLog2DiffMaxMinCodingBlockSize() && doNotBlockPu 770 #if H_3D_QTLPC770 #if NH_3D_QTLPC 771 771 && bTrySplit 772 772 #endif … … 788 788 789 789 if(doNotBlockPu 790 #if H_3D_QTLPC790 #if NH_3D_QTLPC 791 791 && bTryNx2N 792 792 #endif … … 809 809 } 810 810 if(doNotBlockPu 811 #if H_3D_QTLPC811 #if NH_3D_QTLPC 812 812 && bTry2NxN 813 813 #endif … … 850 850 { 851 851 if(doNotBlockPu 852 #if H_3D_QTLPC852 #if NH_3D_QTLPC 853 853 && bTry2NxN 854 854 #endif … … 870 870 } 871 871 if(doNotBlockPu 872 #if H_3D_QTLPC872 #if NH_3D_QTLPC 873 873 && bTry2NxN 874 874 #endif … … 896 896 { 897 897 if(doNotBlockPu 898 #if H_3D_QTLPC898 #if NH_3D_QTLPC 899 899 && bTry2NxN 900 900 #endif … … 918 918 } 919 919 if(doNotBlockPu 920 #if H_3D_QTLPC920 #if NH_3D_QTLPC 921 921 && bTry2NxN 922 922 #endif … … 945 945 { 946 946 if(doNotBlockPu 947 #if H_3D_QTLPC947 #if NH_3D_QTLPC 948 948 && bTryNx2N 949 949 #endif … … 966 966 } 967 967 if(doNotBlockPu 968 #if H_3D_QTLPC968 #if NH_3D_QTLPC 969 969 && bTryNx2N 970 970 #endif … … 986 986 { 987 987 if(doNotBlockPu 988 #if H_3D_QTLPC988 #if NH_3D_QTLPC 989 989 && bTryNx2N 990 990 #endif … … 1006 1006 } 1007 1007 if(doNotBlockPu 1008 #if H_3D_QTLPC1008 #if NH_3D_QTLPC 1009 1009 && bTryNx2N 1010 1010 #endif … … 1027 1027 1028 1028 #else 1029 #if H_3D_QTLPC1029 #if NH_3D_QTLPC 1030 1030 if (bTry2NxN) 1031 1031 { … … 1042 1042 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1043 1043 #endif 1044 #if H_3D_QTLPC1044 #if NH_3D_QTLPC 1045 1045 } 1046 1046 if (bTryNx2N) … … 1057 1057 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1058 1058 #endif 1059 #if H_3D_QTLPC1059 #if NH_3D_QTLPC 1060 1060 } 1061 1061 #endif … … 1115 1115 if( uiDepth == sps.getLog2DiffMaxMinCodingBlockSize() ) 1116 1116 { 1117 #if H_3D_QTLPC //Try IntraNxN1117 #if NH_3D_QTLPC //Try IntraNxN 1118 1118 if(bTrySplit) 1119 1119 { … … 1131 1131 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1132 1132 } 1133 #if H_3D_QTLPC1133 #if NH_3D_QTLPC 1134 1134 } 1135 1135 #endif … … 1247 1247 1248 1248 // further split 1249 #if H_3D_QTLPC 1250 if( bSubBranch && bTrySplitDQP && uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth ) 1249 #if NH_3D_QTLPC 1250 1251 if( bSubBranch && bTrySplitDQP && uiDepth < sps.getLog2DiffMaxMinCodingBlockSize() ) 1251 1252 #else 1252 1253 if( bSubBranch && uiDepth < sps.getLog2DiffMaxMinCodingBlockSize() ) -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibEncoder/TEncSbac.cpp
r1225 r1256 645 645 { 646 646 PartSize eSize = pcCU->getPartitionSize( uiAbsPartIdx ); 647 #if H_3D_QTLPC647 #if NH_3D_QTLPC 648 648 Bool bLimQtPredFlag = pcCU->getPic()->getSlice(0)->getQtPredFlag(); 649 649 TComPic *pcTexture = pcCU->getSlice()->getTexturePic(); … … 662 662 #endif 663 663 { 664 TComDataCU *pcTextureCU = pcTexture->getC U(pcCU->getAddr());665 UInt uiCUIdx = (pcCU->getZorderIdxInC U() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU();664 TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr()); 665 UInt uiCUIdx = (pcCU->getZorderIdxInCtu() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCtu(); 666 666 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); 667 667 if(pcTextureCU->getDepth(uiCUIdx) == uiDepth ) … … 694 694 DTRACE_CU("part_mode", eSize ) 695 695 #endif 696 #if H_3D_QTLPC696 #if NH_3D_QTLPC 697 697 if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N) 698 698 { … … 768 768 } 769 769 } 770 #if H_3D_QTLPC770 #if NH_3D_QTLPC 771 771 } 772 772 else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD) … … 785 785 { 786 786 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 787 if ( pcCU->getSlice()->getSPS()->getAMPAcc( uiDepth ))787 if ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) 788 788 { 789 789 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); … … 820 820 { 821 821 m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 0) ); 822 if ( pcCU->getSlice()->getSPS()->get AMPAcc( uiDepth ))822 if ( pcCU->getSlice()->getSPS()->getUseAMP() && uiDepth < log2DiffMaxMinCodingBlockSize ) 823 823 { 824 824 m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 1) ); … … 1026 1026 1027 1027 assert( uiCtx < 3 ); 1028 #if H_3D_QTLPC1028 #if NH_3D_QTLPC 1029 1029 Bool bCodeSplitFlag = true; 1030 1030 … … 1043 1043 #endif 1044 1044 { 1045 TComDataCU *pcTextureCU = pcTexture->getC U(pcCU->getAddr());1046 UInt uiCUIdx = (pcCU->getZorderIdxInC U() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU();1045 TComDataCU *pcTextureCU = pcTexture->getCtu(pcCU->getCtuRsAddr()); 1046 UInt uiCUIdx = (pcCU->getZorderIdxInCtu() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCtu(); 1047 1047 assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth); 1048 1048 bCodeSplitFlag = (pcTextureCU->getDepth(uiCUIdx) > uiDepth); -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibEncoder/TEncSearch.cpp
r1226 r1256 2894 2894 const Bool bUseHadamard=pcCU->getCUTransquantBypass(0) == 0; 2895 2895 m_pcRdCost->setDistParam(distParam, sps.getBitDepth(CHANNEL_TYPE_LUMA), piOrg, uiStride, piPred, uiStride, puRect.width, puRect.height, bUseHadamard); 2896 2897 #if NH_3D_IC_FIX 2898 distParam.bUseIC = false; 2899 #endif 2900 #if H_3D_INTER_SDC_FIX 2901 distParam.bUseSDCMRSAD = false; 2902 #endif 2896 2903 distParam.bApplyWeight = false; 2897 2904 for( Int modeIdx = 0; modeIdx < numModesAvailable; modeIdx++ ) -
branches/HTM-14.1-update-dev2-Orange/source/Lib/TLibEncoder/TEncSlice.cpp
r1225 r1256 1194 1194 } 1195 1195 1196 #if H_3D_QTLPC1197 rpcPic->setReduceBitsFlag(true);1196 #if NH_3D_QTLPC 1197 pcPic->setReduceBitsFlag(true); 1198 1198 #endif 1199 1199 if ( pcSlice->getSPS()->getUseSAO() ) … … 1266 1266 } 1267 1267 } 1268 #if H_3D_QTLPC1269 rpcPic->setReduceBitsFlag(false);1268 #if NH_3D_QTLPC 1269 pcPic->setReduceBitsFlag(false); 1270 1270 #endif 1271 1271 } // CTU-loop
Note: See TracChangeset for help on using the changeset viewer.