- Timestamp:
- 29 Jul 2015, 12:04:32 (9 years ago)
- Location:
- branches/HTM-14.1-update-dev1
- Files:
-
- 24 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev1
- Property svn:mergeinfo changed
/branches/HTM-14.1-update-dev1-LG (added) merged: 1296,1303
- Property svn:mergeinfo changed
-
branches/HTM-14.1-update-dev1/source/App/TAppEncoder/TAppEncCfg.cpp
r1287 r1304 2088 2088 // check validity of input parameters 2089 2089 xCheckParameter(); 2090 2091 // FJ: this should be removed as soon as Inter-SDC is fully implemented2092 #if NH_3D && !NH_3D_SDC_INTER2093 m_interSdcFlag = false;2094 #endif2095 2090 2096 2091 // compute actual CU depth with respect to config depth and max transform size -
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComDataCU.cpp
r1285 r1304 134 134 #if NH_3D_IC 135 135 m_pbICFlag = NULL; 136 #endif137 #if H_3D_INTER_SDC138 136 #endif 139 137 #if NH_3D_DBBP -
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComPattern.h
r1279 r1304 84 84 Bool m_bICFlag; 85 85 #endif 86 #if H_3D_INTER_SDC86 #if NH_3D_SDC_INTER 87 87 Bool m_bSDCMRSADFlag; 88 88 #endif … … 102 102 Void setICFlag( Bool bICFlag ) { m_bICFlag = bICFlag; } 103 103 #endif 104 #if H_3D_INTER_SDC104 #if NH_3D_SDC_INTER 105 105 Bool getSDCMRSADFlag() { return m_bSDCMRSADFlag; } 106 106 Void setSDCMRSADFlag( Bool bSDCMRSADFlag ) { m_bSDCMRSADFlag = bSDCMRSADFlag; } -
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.cpp
r1279 r1304 564 564 cDtParam.bUseIC = false; 565 565 #endif 566 #if H_3D_INTER_SDC566 #if NH_3D_SDC_INTER 567 567 cDtParam.bUseSDCMRSAD = false; 568 568 #endif … … 605 605 cDtParam.bUseIC = false; 606 606 #endif 607 #if H_3D_INTER_SDC_FIX607 #if NH_3D_SDC_INTER 608 608 cDtParam.bUseSDCMRSAD = false; 609 609 #endif … … 776 776 } 777 777 #endif 778 #if H_3D_INTER_SDC778 #if NH_3D_SDC_INTER 779 779 if( pcDtParam->bUseSDCMRSAD ) 780 780 { … … 818 818 } 819 819 #endif 820 #if H_3D_INTER_SDC820 #if NH_3D_SDC_INTER 821 821 if( pcDtParam->bUseSDCMRSAD ) 822 822 { … … 863 863 } 864 864 #endif 865 #if H_3D_INTER_SDC865 #if NH_3D_SDC_INTER 866 866 if( pcDtParam->bUseSDCMRSAD ) 867 867 { … … 912 912 } 913 913 #endif 914 #if H_3D_INTER_SDC914 #if NH_3D_SDC_INTER 915 915 if( pcDtParam->bUseSDCMRSAD ) 916 916 { … … 968 968 } 969 969 #endif 970 #if H_3D_INTER_SDC970 #if NH_3D_SDC_INTER 971 971 if( pcDtParam->bUseSDCMRSAD ) 972 972 { … … 1016 1016 } 1017 1017 #endif 1018 #if H_3D_INTER_SDC1018 #if NH_3D_SDC_INTER 1019 1019 if( pcDtParam->bUseSDCMRSAD ) 1020 1020 { … … 1076 1076 } 1077 1077 #endif 1078 #if H_3D_INTER_SDC1078 #if NH_3D_SDC_INTER 1079 1079 if( pcDtParam->bUseSDCMRSAD ) 1080 1080 { … … 1149 1149 } 1150 1150 #endif 1151 #if H_3D_INTER_SDC1151 #if NH_3D_SDC_INTER 1152 1152 if( pcDtParam->bUseSDCMRSAD ) 1153 1153 { … … 1214 1214 } 1215 1215 #endif 1216 #if H_3D_INTER_SDC1216 #if NH_3D_SDC_INTER 1217 1217 if( pcDtParam->bUseSDCMRSAD ) 1218 1218 { … … 1318 1318 } 1319 1319 #endif 1320 #if H_3D_INTER_SDC1320 #if NH_3D_SDC_INTER 1321 1321 if( pcDtParam->bUseSDCMRSAD ) 1322 1322 { … … 1395 1395 1396 1396 1397 #if NH_3D_IC || H_3D_INTER_SDC1397 #if NH_3D_IC || NH_3D_SDC_INTER 1398 1398 UInt TComRdCost::xGetSADic( DistParam* pcDtParam ) 1399 1399 { … … 3340 3340 } 3341 3341 #endif 3342 #if H_3D_INTER_SDC3342 #if NH_3D_SDC_INTER 3343 3343 if( pcDtParam->bUseSDCMRSAD ) 3344 3344 { … … 3410 3410 } 3411 3411 3412 #if NH_3D_IC || H_3D_INTER_SDC3412 #if NH_3D_IC || NH_3D_SDC_INTER 3413 3413 UInt TComRdCost::xGetHADsic( DistParam* pcDtParam ) 3414 3414 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.h
r1279 r1304 94 94 Bool bUseIC; 95 95 #endif 96 #if H_3D_INTER_SDC96 #if NH_3D_SDC_INTER 97 97 Bool bUseSDCMRSAD; 98 98 #endif … … 129 129 iStrideVir = 0; 130 130 #endif 131 #if H_3D_INTER_SDC131 #if NH_3D_SDC_INTER 132 132 bUseSDCMRSAD = false; 133 133 #endif … … 256 256 static Distortion xGetSSE64 ( DistParam* pcDtParam ); 257 257 static Distortion xGetSSE16N ( DistParam* pcDtParam ); 258 #if NH_3D_IC || H_3D_INTER_SDC258 #if NH_3D_IC || NH_3D_SDC_INTER 259 259 static UInt xGetSADic ( DistParam* pcDtParam ); 260 260 static UInt xGetSAD4ic ( DistParam* pcDtParam ); … … 283 283 #endif 284 284 285 #if NH_3D_IC || H_3D_INTER_SDC285 #if NH_3D_IC || NH_3D_SDC_INTER 286 286 static UInt xGetSAD12ic ( DistParam* pcDtParam ); 287 287 static UInt xGetSAD24ic ( DistParam* pcDtParam ); … … 294 294 295 295 296 #if NH_3D_IC || H_3D_INTER_SDC296 #if NH_3D_IC || NH_3D_SDC_INTER 297 297 static UInt xGetHADsic ( DistParam* pcDtParam ); 298 298 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TypeDef.h
r1282 r1304 121 121 #define NH_3D_DLT 1 // Depth Lookup Table 122 122 #define NH_3D_SDC_INTRA 1 // Segment-wise DC Coding method for INTRA 123 #define NH_3D_SDC_INTER 0// Segment-wise DC Coding method for INTER123 #define NH_3D_SDC_INTER 1 // Segment-wise DC Coding method for INTER 124 124 #define NH_3D_ENC_DEPTH 1 // Encoder optimizations for depth, incl. 125 125 // HHI_DEPTH_INTRA_SEARCH_RAU_C0160 -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1287 r1304 3374 3374 } 3375 3375 #endif 3376 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC3376 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 3377 3377 Void TDecCavlc::parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3378 3378 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecCAVLC.h
r1279 r1304 123 123 Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 124 124 #endif 125 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC125 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 126 126 Void parseDeltaDC ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/, UInt /*depth*/ ) { assert(0); }; 127 127 #endif 128 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC128 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 129 129 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 130 130 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecCu.cpp
r1288 r1304 656 656 { 657 657 #endif 658 #if H_3D_INTER_SDC658 #if NH_3D_SDC_INTER 659 659 if( m_ppcCU[uiDepth]->getSDCFlag( 0 ) ) 660 660 { … … 665 665 #endif 666 666 xReconInter( m_ppcCU[uiDepth], uiDepth ); 667 #if H_3D_INTER_SDC667 #if NH_3D_SDC_INTER 668 668 } 669 669 #endif … … 836 836 } 837 837 #endif 838 #if H_3D_INTER_SDC838 #if NH_3D_SDC_INTER 839 839 Void TDecCu::xReconInterSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 840 840 { … … 847 847 Pel *pResi; 848 848 UInt uiPelX, uiPelY; 849 UInt uiResiStride = m_ppcYuvResi[uiDepth]->getStride(); 850 851 pResi = m_ppcYuvResi[uiDepth]->getLumaAddr( 0 ); 849 UInt uiResiStride = m_ppcYuvResi[uiDepth]->getStride( COMPONENT_Y ); 850 Int bitDepthC = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA); 851 852 pResi = m_ppcYuvResi[uiDepth]->getAddr( COMPONENT_Y ); 852 853 for( uiPelY = 0; uiPelY < uiHeight; uiPelY++ ) 853 854 { … … 859 860 } 860 861 861 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );862 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() ); 862 863 863 864 // clear UV 864 UInt uiStrideC = m_ppcYuvReco[uiDepth]->get CStride();865 Pel *pRecCb = m_ppcYuvReco[uiDepth]->get CbAddr();866 Pel *pRecCr = m_ppcYuvReco[uiDepth]->get CrAddr();865 UInt uiStrideC = m_ppcYuvReco[uiDepth]->getStride( COMPONENT_Cb ); 866 Pel *pRecCb = m_ppcYuvReco[uiDepth]->getAddr( COMPONENT_Cb ); 867 Pel *pRecCr = m_ppcYuvReco[uiDepth]->getAddr( COMPONENT_Cr ); 867 868 868 869 for (Int y = 0; y < uiHeight/2; y++) … … 870 871 for (Int x = 0; x < uiWidth/2; x++) 871 872 { 872 pRecCb[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );873 pRecCr[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );873 pRecCb[x] = (Pel)( 1 << ( bitDepthC - 1 ) ); 874 pRecCr[x] = (Pel)( 1 << ( bitDepthC - 1 ) ); 874 875 } 875 876 -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecCu.h
r1279 r1304 130 130 Void xReconIntraSDC ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 131 #endif 132 #if H_3D_INTER_SDC132 #if NH_3D_SDC_INTER 133 133 Void xReconInterSDC ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 134 134 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecEntropy.cpp
r1279 r1304 298 298 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 299 299 #endif 300 //decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 301 300 #if NH_3D_SDC_INTER 301 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 302 #endif 302 303 #if NH_3D_ARP 303 304 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); … … 1092 1093 } 1093 1094 #endif 1094 #if H_3D_INTER_SDC1095 #if NH_3D_SDC_INTER 1095 1096 if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx) ) 1096 1097 { … … 1103 1104 if( pcCU->getSlice()->getIsDepth() ) 1104 1105 { 1105 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC1106 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 1106 1107 if( pcCU->getSDCFlag( uiAbsPartIdx ) ) 1107 1108 { … … 1161 1162 } 1162 1163 1163 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC1164 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 1164 1165 Void TDecEntropy::decodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1165 1166 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecEntropy.h
r1279 r1304 89 89 virtual Void parseICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 90 90 #endif 91 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC91 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 92 92 virtual Void parseDeltaDC ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) = 0; 93 93 #endif 94 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC94 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 95 95 virtual Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 96 96 #endif … … 181 181 #endif 182 182 183 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC183 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 184 184 Void decodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 185 185 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecSbac.cpp
r1279 r1304 111 111 , m_cDmmModeSCModel ( 1, 1, NUM_DMM_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 112 112 #endif 113 #if NH_3D_DMM || NH_3D_SDC_INTRA 113 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 114 114 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 115 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 115 116 #endif 116 117 #if NH_3D_SDC_INTRA 117 118 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 118 119 , m_cSDCResidualSCModel ( 1, 1, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 119 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels)120 120 , m_cDdcFlagSCModel ( 1, 1, NUM_DDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 121 121 #endif … … 202 202 m_cDmmModeSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DMM_MODE ); 203 203 #endif 204 #if NH_3D_DMM || NH_3D_SDC_INTRA 204 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 205 205 m_cDdcDataSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_DATA ); 206 m_cSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_FLAG ); 206 207 #endif 207 208 #if NH_3D_SDC_INTRA 208 209 m_cSDCResidualFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 209 210 m_cSDCResidualSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL ); 210 m_cSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_FLAG );211 211 m_cDdcFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DDC_FLAG ); 212 212 #endif … … 2319 2319 #endif 2320 2320 2321 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC2321 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2322 2322 Void TDecSbac::parseDeltaDC( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) 2323 2323 { 2324 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC2324 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2325 2325 if( !(pcCU->getSDCFlag( absPartIdx )) ) 2326 2326 #endif … … 2370 2370 #endif 2371 2371 } 2372 #if H_3D_INTER_SDC2372 #if NH_3D_SDC_INTER 2373 2373 else 2374 2374 { … … 2489 2489 } 2490 2490 #endif 2491 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC2491 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2492 2492 Void TDecSbac::parseSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2493 2493 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibDecoder/TDecSbac.h
r1279 r1304 107 107 Void xReadCoefRemainExGolomb ( UInt &rSymbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange ); 108 108 #endif 109 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC109 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 110 110 Void xReadExGolombLevelDdc( UInt& ruiSymbol ); 111 111 Void xParseDeltaDC ( Pel& rValDeltaDC, UInt uiNumSeg ); … … 119 119 Void xParseSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart ); 120 120 #endif 121 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC121 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 122 122 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 123 123 #endif … … 136 136 Void parseDIS ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 137 137 #endif 138 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC138 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 139 139 Void parseDeltaDC ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ); 140 140 #endif … … 229 229 ContextModel3DBuffer m_cDmmModeSCModel; 230 230 #endif 231 #if NH_3D_DMM || NH_3D_SDC_INTRA 231 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 232 232 ContextModel3DBuffer m_cDdcDataSCModel; 233 ContextModel3DBuffer m_cSDCFlagSCModel; 233 234 #endif 234 235 #if NH_3D_SDC_INTRA 235 236 ContextModel3DBuffer m_cSDCResidualFlagSCModel; 236 237 ContextModel3DBuffer m_cSDCResidualSCModel; 237 ContextModel3DBuffer m_cSDCFlagSCModel;238 238 ContextModel3DBuffer m_cDdcFlagSCModel; 239 239 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncCavlc.cpp
r1279 r1304 2831 2831 assert(0); 2832 2832 } 2833 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC2833 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2834 2834 Void TEncCavlc::codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2835 2835 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncCavlc.h
r1279 r1304 126 126 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 127 127 Void codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 128 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC128 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 129 129 Void codeDeltaDC ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/ ) { assert(0); }; 130 130 #endif … … 136 136 #endif 137 137 138 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC138 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 139 139 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 140 140 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncCu.cpp
r1289 r1304 2094 2094 } 2095 2095 #endif 2096 #if H_3D_INTER_SDC2096 #if NH_3D_SDC_INTER 2097 2097 TComDataCU *rpcTempCUPre = rpcTempCU; 2098 2098 #endif … … 2100 2100 xCheckDQP( rpcTempCU ); 2101 2101 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(bestStr) DEBUG_STRING_PASS_INTO(tmpStr)); 2102 #if H_3D_INTER_SDC2102 #if NH_3D_SDC_INTER 2103 2103 if( rpcTempCU->getSlice()->getInterSdcFlag() && !uiNoResidual ) 2104 2104 { … … 2131 2131 #endif 2132 2132 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); 2133 rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );2133 rpcTempCU->setCbfSubParts( 1, COMPONENT_Y, 0, uhDepth ); 2134 2134 #if NH_3D_VSO //M2 2135 2135 if( m_pcRdCost->getUseRenModel() ) … … 2173 2173 if( m_pcEncCfg->getUseFastDecisionForMerge() && !bestIsSkip ) 2174 2174 { 2175 #if H_3D_INTER_SDC2175 #if NH_3D_SDC_INTER 2176 2176 if( rpcTempCU->getSlice()->getInterSdcFlag() ) 2177 2177 { … … 2182 2182 #endif 2183 2183 bestIsSkip = rpcBestCU->getQtRootCbf(0) == 0; 2184 #if H_3D_INTER_SDC2184 #if NH_3D_SDC_INTER 2185 2185 } 2186 2186 #endif … … 2377 2377 DebugInterPredResiReco(sTest, *(m_ppcPredYuvTemp[uhDepth]), *(m_ppcResiYuvBest[uhDepth]), *(m_ppcRecoYuvTemp[uhDepth]), DebugStringGetPredModeMask(rpcTempCU->getPredictionMode(0))); 2378 2378 #endif 2379 #if H_3D_INTER_SDC2379 #if NH_3D_SDC_INTER 2380 2380 TComDataCU *rpcTempCUPre = rpcTempCU; 2381 2381 #endif … … 2383 2383 xCheckDQP( rpcTempCU ); 2384 2384 xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest)); 2385 #if H_3D_INTER_SDC2385 #if NH_3D_SDC_INTER 2386 2386 if( rpcTempCU->getSlice()->getInterSdcFlag() && ePartSize == SIZE_2Nx2N) 2387 2387 { … … 2416 2416 #endif 2417 2417 rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth ); 2418 rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );2418 rpcTempCU->setCbfSubParts( 1, COMPONENT_Y, 0, uhDepth ); 2419 2419 #if NH_3D_VSO // M3 2420 2420 if( m_pcRdCost->getUseRenModel() ) -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncEntropy.cpp
r1279 r1304 723 723 } 724 724 #endif 725 #if H_3D_INTER_SDC725 #if NH_3D_SDC_INTER 726 726 if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx ) ) 727 727 { … … 734 734 if( pcCU->getSlice()->getIsDepth() ) 735 735 { 736 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC736 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 737 737 if( pcCU->getSDCFlag( uiAbsPartIdx ) ) 738 738 { … … 843 843 } 844 844 845 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC845 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 846 846 Void TEncEntropy::encodeDeltaDC ( TComDataCU* pcCU, UInt absPartIdx ) 847 847 { … … 849 849 } 850 850 #endif 851 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC851 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 852 852 Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 853 853 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncEntropy.h
r1279 r1304 84 84 virtual Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 85 85 virtual Void codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 86 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC86 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 87 87 virtual Void codeDeltaDC ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 88 88 #endif … … 93 93 virtual Void codeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 94 94 #endif 95 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC95 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 96 96 virtual Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 97 97 #endif … … 181 181 Void encodeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 182 182 #endif 183 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC183 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 184 184 Void encodeDeltaDC ( TComDataCU* pcCU, UInt absPartIdx ); 185 185 #endif 186 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC186 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 187 187 Void encodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 188 188 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncSbac.cpp
r1279 r1304 106 106 , m_cDmmModeSCModel ( 1, 1, NUM_DMM_MODE_CTX , m_contextModels + m_numContextModels, m_numContextModels) 107 107 #endif 108 #if NH_3D_DMM || NH_3D_SDC_INTRA 108 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 109 109 , m_cDdcDataSCModel ( 1, 1, NUM_DDC_DATA_CTX , m_contextModels + m_numContextModels, m_numContextModels) 110 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 110 111 #endif 111 112 #if NH_3D_SDC_INTRA 112 113 , m_cSDCResidualFlagSCModel ( 1, 1, SDC_NUM_RESIDUAL_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 113 114 , m_cSDCResidualSCModel ( 1, 1, SDC_NUM_RESIDUAL_CTX , m_contextModels + m_numContextModels, m_numContextModels) 114 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels)115 115 , m_cDdcFlagSCModel ( 1, 1, NUM_DDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 116 116 #endif … … 187 187 m_cDmmModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DMM_MODE ); 188 188 #endif 189 #if NH_3D_DMM || NH_3D_SDC_INTRA 189 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 190 190 m_cDdcDataSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_DATA ); 191 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 191 192 #endif 192 193 #if NH_3D_SDC_INTRA 193 194 m_cSDCResidualFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG ); 194 195 m_cSDCResidualSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL ); 195 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );196 196 m_cDdcFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DDC_FLAG ); 197 197 #endif … … 243 243 curCost += m_cCUICFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_IC_FLAG ); 244 244 #endif 245 #if NH_3D_SDC_INTRA 245 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 246 246 curCost += m_cSDCFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SDC_FLAG ); 247 247 #endif … … 280 280 curCost += m_cDmmModeSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DMM_MODE ); 281 281 #endif 282 #if NH_3D_DMM || NH_3D_SDC_INTRA 282 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 283 283 curCost += m_cDdcDataSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DDC_DATA ); 284 284 #endif … … 2459 2459 } 2460 2460 2461 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC2461 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2462 2462 Void TEncSbac::codeDeltaDC( TComDataCU* pcCU, UInt absPartIdx ) 2463 2463 { 2464 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC2464 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2465 2465 if( !(pcCU->getSDCFlag( absPartIdx )) ) 2466 2466 #endif … … 2513 2513 #endif 2514 2514 } 2515 #if H_3D_INTER_SDC2515 #if NH_3D_SDC_INTER 2516 2516 else 2517 2517 { … … 2614 2614 #endif 2615 2615 2616 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC2616 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 2617 2617 Void TEncSbac::codeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2618 2618 { -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncSbac.h
r1279 r1304 115 115 Void xWriteEpExGolomb ( UInt uiSymbol, UInt uiCount ); 116 116 Void xWriteCoefRemainExGolomb ( UInt symbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange ); 117 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC117 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 118 118 Void xWriteExGolombLevelDdc( UInt uiSymbol ); 119 119 Void xCodeDeltaDC ( Pel valDeltaDC, UInt uiNumSeg ); … … 149 149 Void codeICFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 150 150 #endif 151 #if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC151 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 152 152 Void codeDeltaDC ( TComDataCU* pcCU, UInt absPartIdx ); 153 153 #endif 154 #if NH_3D_SDC_INTRA || H_3D_INTER_SDC154 #if NH_3D_SDC_INTRA || NH_3D_SDC_INTER 155 155 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 156 156 #endif … … 252 252 ContextModel3DBuffer m_cDmmModeSCModel; 253 253 #endif 254 #if NH_3D_DMM || NH_3D_SDC_INTRA 254 #if NH_3D_DMM || NH_3D_SDC_INTRA || NH_3D_SDC_INTER 255 255 ContextModel3DBuffer m_cDdcDataSCModel; 256 ContextModel3DBuffer m_cSDCFlagSCModel; 256 257 #endif 257 258 #if NH_3D_SDC_INTRA 258 259 ContextModel3DBuffer m_cSDCResidualFlagSCModel; 259 260 ContextModel3DBuffer m_cSDCResidualSCModel; 260 ContextModel3DBuffer m_cSDCFlagSCModel;261 261 ContextModel3DBuffer m_cDdcFlagSCModel; 262 262 #endif -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncSearch.cpp
r1287 r1304 44 44 #include <math.h> 45 45 #include <limits> 46 #if H_3D_INTER_SDC47 #include <memory.h>48 #endif49 50 46 51 47 //! \ingroup TLibEncoder … … 372 368 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 373 369 #endif 374 #if H_3D_INTER_SDC370 #if NH_3D_SDC_INTER 375 371 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 376 372 #endif … … 883 879 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 884 880 #endif 885 #if H_3D_INTER_SDC881 #if NH_3D_SDC_INTER 886 882 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 887 883 #endif … … 2907 2903 distParam.bUseIC = false; 2908 2904 #endif 2909 #if H_3D_INTER_SDC_FIX2905 #if NH_3D_SDC_INTER 2910 2906 distParam.bUseSDCMRSAD = false; 2911 2907 #endif … … 3847 3843 cDistParam.bUseIC = false; 3848 3844 #endif 3849 #if H_3D_INTER_SDC3845 #if NH_3D_SDC_INTER 3850 3846 cDistParam.bUseSDCMRSAD = false; 3851 3847 #endif … … 5057 5053 pcPatternKey->setICFlag( bICFlag ); 5058 5054 #endif 5059 #if H_3D_INTER_SDC5055 #if NH_3D_SDC_INTER 5060 5056 pcPatternKey->setSDCMRSADFlag( pcCU->getSlice()->getInterSdcFlag() ); 5061 5057 #endif … … 5246 5242 m_cDistParam.bUseIC = pcPatternKey->getICFlag(); 5247 5243 #endif 5248 #if H_3D_INTER_SDC5244 #if NH_3D_SDC_INTER 5249 5245 m_cDistParam.bUseSDCMRSAD = pcPatternKey->getSDCMRSADFlag(); 5250 5246 #endif … … 5964 5960 } 5965 5961 5966 #if H_3D_INTER_SDC5962 #if NH_3D_SDC_INTER 5967 5963 Void TEncSearch::encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcRec, Int uiOffest, const UInt uiDepth ) 5968 5964 { … … 5978 5974 5979 5975 Pel *pPred, *pOrg; 5980 UInt uiPredStride = pcPred->getStride( );5981 UInt uiOrgStride = pcOrg->getStride( );5976 UInt uiPredStride = pcPred->getStride( COMPONENT_Y ); 5977 UInt uiOrgStride = pcOrg->getStride( COMPONENT_Y ); 5982 5978 UInt uiPelX, uiPelY; 5983 5979 5984 pPred = pcPred->get LumaAddr( 0);5985 pOrg = pcOrg->get LumaAddr( 0);5980 pPred = pcPred->getAddr( COMPONENT_Y ); 5981 pOrg = pcOrg->getAddr( COMPONENT_Y ); 5986 5982 Int pResDC = 0; 5983 Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 5984 Int bitDepthC = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA); 5987 5985 5988 5986 //calculate dc value for prediction and original signal, and calculate residual and reconstruction … … 6005 6003 6006 6004 Pel *pRec; 6007 UInt uiRecStride = pcRec->getStride( );6008 pPred = pcPred->get LumaAddr( 0);6009 pRec = pcRec->get LumaAddr( 0);6005 UInt uiRecStride = pcRec->getStride( COMPONENT_Y ); 6006 pPred = pcPred->getAddr( COMPONENT_Y ); 6007 pRec = pcRec->getAddr( COMPONENT_Y ); 6010 6008 6011 6009 for( uiPelY = 0; uiPelY < uiHeight; uiPelY++ ) … … 6013 6011 for( uiPelX = 0; uiPelX < uiWidth; uiPelX++ ) 6014 6012 { 6015 pRec[ uiPelX ] = Clip3( 0, ( 1 << g_bitDepthY) - 1, pPred[uiPelX] + pcCU->getSDCSegmentDCOffset(0, 0) );6013 pRec[ uiPelX ] = Clip3( 0, (1 << bitDepthY) - 1, pPred[uiPelX] + pcCU->getSDCSegmentDCOffset(0, 0) ); 6016 6014 } 6017 6015 pPred += uiPredStride; … … 6020 6018 6021 6019 // clear UV 6022 UInt uiStrideC = pcRec->get CStride();6023 Pel *pRecCb = pcRec->get CbAddr();6024 Pel *pRecCr = pcRec->get CrAddr();6020 UInt uiStrideC = pcRec->getStride( COMPONENT_Cb ); 6021 Pel *pRecCb = pcRec->getAddr( COMPONENT_Cb ); 6022 Pel *pRecCr = pcRec->getAddr( COMPONENT_Cr ); 6025 6023 6026 6024 for (Int y=0; y < uiHeight/2; y++) … … 6028 6026 for (Int x=0; x < uiWidth/2; x++) 6029 6027 { 6030 pRecCb[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );6031 pRecCr[x] = (Pel)( 1 << ( g_bitDepthC - 1 ) );6028 pRecCb[x] = (Pel)( 1 << ( bitDepthC - 1 ) ); 6029 pRecCr[x] = (Pel)( 1 << ( bitDepthC - 1 ) ); 6032 6030 } 6033 6031 … … 6038 6036 Dist ruiDist; 6039 6037 Double rdCost; 6040 #if H_3D_VSO // M136038 #if NH_3D_VSO // M13 6041 6039 if ( m_pcRdCost->getUseVSO() ) 6042 6040 { 6043 ruiDist = m_pcRdCost->getDistPartVSO( pcCU, 0, pcRec->getLumaAddr(), pcRec->getStride(), pcOrg->getLumaAddr(), pcOrg->getStride(), uiWidth, uiHeight , false );6041 ruiDist = m_pcRdCost->getDistPartVSO( pcCU, 0, bitDepthY, pcRec->getAddr( COMPONENT_Y ), pcRec->getStride( COMPONENT_Y ), pcOrg->getAddr( COMPONENT_Y ), pcOrg->getStride( COMPONENT_Y ), uiWidth, uiHeight , false ); 6044 6042 } 6045 6043 else … … 6047 6045 #endif 6048 6046 { 6049 ruiDist = m_pcRdCost->getDistPart( g_bitDepthY, pcRec->getLumaAddr( 0 ), uiRecStride, pcOrg->getLumaAddr( 0 ), uiOrgStride, uiWidth, uiHeight ); 6050 } 6051 #if H_3D_VSO 6052 } 6053 #endif 6054 6055 #if NH_3D_SDC_INTRA 6047 ruiDist = m_pcRdCost->getDistPart( bitDepthY, pcRec->getAddr( COMPONENT_Y ), uiRecStride, pcOrg->getAddr( COMPONENT_Y ), uiOrgStride, uiWidth, uiHeight, COMPONENT_Y ); 6048 } 6049 #if NH_3D_VSO 6050 } 6051 #endif 6052 6056 6053 Bool bNonSkip = false; 6057 #else6058 Bool bNonSkip = true;6059 #endif6060 6054 bNonSkip |= ( pcCU->getSDCSegmentDCOffset( 0, 0 ) != 0 ) ? 1 : 0; 6061 6055 if( !bNonSkip ) … … 6069 6063 //----- determine rate and r-d cost ----- 6070 6064 UInt uiBits = 0; 6071 TComYuv *pDummy = NULL;6072 6065 m_pcRDGoOnSbacCoder->load( m_pppcRDSbacCoder[pcCU->getDepth(0)][CI_CURR_BEST] ); 6073 6066 6074 xAddSymbolBitsInter( pcCU, 0, 0, uiBits, pDummy, NULL, pDummy);6075 6076 #if H_3D_VSO //M 146067 xAddSymbolBitsInter( pcCU, uiBits ); 6068 6069 #if NH_3D_VSO //M 14 6077 6070 if ( m_pcRdCost->getUseLambdaScaleVSO() ) 6078 6071 { … … 6092 6085 } 6093 6086 6094 #if H_3D_VSO // necessary? // M156087 #if NH_3D_VSO // necessary? // M15 6095 6088 // set Model 6096 6089 if( !m_pcRdCost->getUseEstimatedVSD() && m_pcRdCost->getUseRenModel() ) 6097 6090 { 6098 Pel* piSrc = pcRec->get LumaAddr();6099 UInt uiSrcStride = pcRec->getStride( );6091 Pel* piSrc = pcRec->getAddr( COMPONENT_Y ); 6092 UInt uiSrcStride = pcRec->getStride( COMPONENT_Y ); 6100 6093 m_pcRdCost->setRenModelData( pcCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight ); 6101 6094 } -
branches/HTM-14.1-update-dev1/source/Lib/TLibEncoder/TEncSearch.h
r1287 r1304 230 230 Bool bSkipResidual 231 231 DEBUG_STRING_FN_DECLARE(sDebug) ); 232 #if H_3D_INTER_SDC232 #if NH_3D_SDC_INTER 233 233 Void encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, 234 TComYuv* pcOrg,235 TComYuv* pcPred,236 TComYuv* pcResi,237 TComYuv* pcRec,238 Int uiOffset,239 const UInt uiDepth );234 TComYuv* pcOrg, 235 TComYuv* pcPred, 236 TComYuv* pcResi, 237 TComYuv* pcRec, 238 Int uiOffset, 239 const UInt uiDepth ); 240 240 #endif 241 241
Note: See TracChangeset for help on using the changeset viewer.