Changeset 1124 in 3DVCSoftware for trunk/source/Lib/TLibDecoder/TDecCu.cpp
- Timestamp:
- 10 Nov 2014, 12:22:20 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/Lib/TLibDecoder/TDecCu.cpp
r1084 r1124 291 291 DTRACE_CU_S("=========== coding_unit ===========\n") 292 292 #endif 293 294 293 #if !LGE_DDD_REMOVAL_J0042_J0030 295 294 #if H_3D_DDD 296 295 pcCU->setUseDDD( false, uiAbsPartIdx, uiDepth ); 296 #endif 297 297 #endif 298 298 … … 315 315 { 316 316 #if H_3D_ARP && H_3D_IV_MERGE 317 #if HHI_TOOL_PARAMETERS_I2_J0107 318 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() ) 319 #else 317 320 if( pcCU->getSlice()->getVPS()->getUseAdvRP( pcCU->getSlice()->getLayerId() ) || pcCU->getSlice()->getVPS()->getIvMvPredFlag( pcCU->getSlice()->getLayerId() )) 321 #endif 318 322 #else 319 323 #if H_3D_ARP … … 345 349 #endif 346 350 #if H_3D_NBDV_REF 351 #if HHI_TOOL_PARAMETERS_I2_J0107 352 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 353 #else 347 354 if(pcCU->getSlice()->getVPS()->getDepthRefinementFlag( pcCU->getSlice()->getLayerIdInVps() )) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 355 #endif 348 356 { 349 357 DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo, true); … … 452 460 #endif 453 461 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 454 462 #if !LGE_DDD_REMOVAL_J0042_J0030 455 463 #if H_3D_DDD 456 464 if( uiMergeIndex == m_ppcCU[uiDepth]->getUseDDDCandIdx() ) … … 460 468 pcCU->setDDDepthSubParts( m_ppcCU[uiDepth]->getDDTmpDepth(),uiAbsPartIdx, 0, uiDepth ); 461 469 } 470 #endif 462 471 #endif 463 472 … … 735 744 //construction of depth candidates 736 745 Pel testDepth; 746 #if SINGLE_DEPTH_SIMP_J0115 747 Pel DepthNeighbours[2]; 748 #else 737 749 Pel DepthNeighbours[5]; 750 #endif 738 751 Int index =0; 752 #if SINGLE_DEPTH_SIMP_J0115 753 for( Int i = 0; (i < 2) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 754 #else 739 755 for( Int i = 0; (i < 5) && (index<SINGLE_DEPTH_MODE_CAND_LIST_SIZE) ; i++ ) 756 #endif 740 757 { 741 758 if(!pcCU->getNeighDepth (0, uiAbsPartIdx, &testDepth, i)) … … 745 762 DepthNeighbours[index]=testDepth; 746 763 index++; 764 #if !SINGLE_DEPTH_SIMP_J0115 747 765 for(Int j=0;j<index-1;j++) 748 766 { … … 753 771 } 754 772 } 773 #endif 755 774 } 756 775 … … 1063 1082 } 1064 1083 } 1065 1084 1066 1085 TextType eText = ( uiChromaId > 0 ? TEXT_CHROMA_V : TEXT_CHROMA_U ); 1067 1086 UInt uiWidth = pcCU ->getWidth ( 0 ) >> ( uiTrDepth + 1 ); … … 1071 1090 Pel* piPred = ( uiChromaId > 0 ? pcPredYuv->getCrAddr( uiAbsPartIdx ) : pcPredYuv->getCbAddr( uiAbsPartIdx ) ); 1072 1091 Pel* piResi = ( uiChromaId > 0 ? pcResiYuv->getCrAddr( uiAbsPartIdx ) : pcResiYuv->getCbAddr( uiAbsPartIdx ) ); 1073 1092 1074 1093 UInt uiNumCoeffInc = ( ( pcCU->getSlice()->getSPS()->getMaxCUWidth() * pcCU->getSlice()->getSPS()->getMaxCUHeight() ) >> ( pcCU->getSlice()->getSPS()->getMaxCUDepth() << 1 ) ) >> 2; 1075 1094 TCoeff* pcCoeff = ( uiChromaId > 0 ? pcCU->getCoeffCr() : pcCU->getCoeffCb() ) + ( uiNumCoeffInc * uiAbsPartIdx ); 1076 1095 1077 1096 UInt uiChromaPredMode = pcCU->getChromaIntraDir( 0 ); 1078 1097 1079 1098 UInt uiZOrder = pcCU->getZorderIdxInCU() + uiAbsPartIdx; 1080 1099 Pel* piRecIPred = ( uiChromaId > 0 ? pcCU->getPic()->getPicYuvRec()->getCrAddr( pcCU->getAddr(), uiZOrder ) : pcCU->getPic()->getPicYuvRec()->getCbAddr( pcCU->getAddr(), uiZOrder ) ); … … 1087 1106 1088 1107 pcCU->getPattern()->initAdiPatternChroma( pcCU, uiAbsPartIdx, uiTrDepth, 1089 1090 1091 1092 1108 m_pcPrediction->getPredicBuf (), 1109 m_pcPrediction->getPredicBufWidth (), 1110 m_pcPrediction->getPredicBufHeight (), 1111 bAboveAvail, bLeftAvail ); 1093 1112 Int* pPatChroma = ( uiChromaId > 0 ? pcCU->getPattern()->getAdiCrBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) : pcCU->getPattern()->getAdiCbBuf( uiWidth, uiHeight, m_pcPrediction->getPredicBuf() ) ); 1094 1113 1095 1114 //===== get prediction signal ===== 1096 1115 { … … 1107 1126 if ( pcCU->getCbf( uiAbsPartIdx, eText, uiTrDepth ) ) 1108 1127 { 1109 //===== inverse transform =====1110 Int curChromaQpOffset;1111 if(eText == TEXT_CHROMA_U)1112 {1113 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb();1114 }1115 else1116 {1117 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();1118 }1119 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );1120 1121 Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText];1128 //===== inverse transform ===== 1129 Int curChromaQpOffset; 1130 if(eText == TEXT_CHROMA_U) 1131 { 1132 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb(); 1133 } 1134 else 1135 { 1136 curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr(); 1137 } 1138 m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset ); 1139 1140 Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText]; 1122 1141 assert(scalingListType < SCALING_LIST_NUM); 1123 m_pcTrQuant->invtransformNxN( pcCU->getCUTransquantBypass(uiAbsPartIdx), eText, REG_DCT, piResi, uiStride, pcCoeff, uiWidth, uiHeight, scalingListType, useTransformSkipChroma );1124 1125 //===== reconstruction =====1126 Pel* pPred = piPred;1127 Pel* pResi = piResi;1128 Pel* pReco = piReco;1129 Pel* pRecIPred = piRecIPred;1130 for( UInt uiY = 0; uiY < uiHeight; uiY++ )1131 {1132 for( UInt uiX = 0; uiX < uiWidth; uiX++ )1133 {1134 pReco [ uiX ] = ClipC( pPred[ uiX ] + pResi[ uiX ] );1135 pRecIPred[ uiX ] = pReco[ uiX ];1136 }1137 pPred += uiStride;1138 pResi += uiStride;1139 pReco += uiStride;1140 pRecIPred += uiRecIPredStride;1141 }1142 }1142 m_pcTrQuant->invtransformNxN( pcCU->getCUTransquantBypass(uiAbsPartIdx), eText, REG_DCT, piResi, uiStride, pcCoeff, uiWidth, uiHeight, scalingListType, useTransformSkipChroma ); 1143 1144 //===== reconstruction ===== 1145 Pel* pPred = piPred; 1146 Pel* pResi = piResi; 1147 Pel* pReco = piReco; 1148 Pel* pRecIPred = piRecIPred; 1149 for( UInt uiY = 0; uiY < uiHeight; uiY++ ) 1150 { 1151 for( UInt uiX = 0; uiX < uiWidth; uiX++ ) 1152 { 1153 pReco [ uiX ] = ClipC( pPred[ uiX ] + pResi[ uiX ] ); 1154 pRecIPred[ uiX ] = pReco[ uiX ]; 1155 } 1156 pPred += uiStride; 1157 pResi += uiStride; 1158 pReco += uiStride; 1159 pRecIPred += uiRecIPredStride; 1160 } 1161 } 1143 1162 else 1144 1163 {
Note: See TracChangeset for help on using the changeset viewer.