Changeset 1274 in 3DVCSoftware for branches/HTM-14.1-update-dev2
- Timestamp:
- 14 Jul 2015, 12:31:09 (10 years ago)
- Location:
- branches/HTM-14.1-update-dev2
- Files:
-
- 4 deleted
- 51 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-14.1-update-dev2/HTM.xcodeproj/project.pbxproj
r758 r1274 25 25 26 26 /* Begin PBXBuildFile section */ 27 7874637E17D5DD900040CFC7 /* encmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C117D5DD7B0040CFC7 /* encmain.cpp */; }; 28 7874637F17D5DD900040CFC7 /* TAppEncCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */; }; 29 7874638017D5DD900040CFC7 /* TAppEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */; }; 30 7874638117D5DDA60040CFC7 /* NALwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633F17D5DD840040CFC7 /* NALwrite.cpp */; }; 31 7874638217D5DDA60040CFC7 /* SEIwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634117D5DD840040CFC7 /* SEIwrite.cpp */; }; 32 7874638317D5DDA60040CFC7 /* SyntaxElementWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */; }; 33 7874638417D5DDA60040CFC7 /* TEncAnalyze.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */; }; 34 7874638517D5DDA60040CFC7 /* TEncBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */; }; 35 7874638617D5DDA60040CFC7 /* TEncBinCoderCABACCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */; }; 36 7874638717D5DDA60040CFC7 /* TEncCavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */; }; 37 7874638817D5DDA60040CFC7 /* TEncCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634F17D5DD840040CFC7 /* TEncCu.cpp */; }; 38 7874638917D5DDA60040CFC7 /* TEncEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635117D5DD840040CFC7 /* TEncEntropy.cpp */; }; 39 7874638A17D5DDA60040CFC7 /* TEncGOP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635317D5DD840040CFC7 /* TEncGOP.cpp */; }; 40 7874638B17D5DDA60040CFC7 /* TEncPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635517D5DD840040CFC7 /* TEncPic.cpp */; }; 41 7874638C17D5DDA60040CFC7 /* TEncPreanalyzer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */; }; 42 7874638D17D5DDA60040CFC7 /* TEncRateCtrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */; }; 43 7874638E17D5DDA60040CFC7 /* TEncSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */; }; 44 7874638F17D5DDA60040CFC7 /* TEncSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635D17D5DD840040CFC7 /* TEncSbac.cpp */; }; 45 7874639017D5DDA60040CFC7 /* TEncSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635F17D5DD840040CFC7 /* TEncSearch.cpp */; }; 46 7874639117D5DDA60040CFC7 /* TEncSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636117D5DD840040CFC7 /* TEncSlice.cpp */; }; 47 7874639217D5DDA60040CFC7 /* TEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636317D5DD840040CFC7 /* TEncTop.cpp */; }; 48 7874639317D5DDA60040CFC7 /* WeightPredAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */; }; 49 7874639417D5DE070040CFC7 /* TComPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630E17D5DD840040CFC7 /* TComPrediction.cpp */; }; 50 7874639517D5DE070040CFC7 /* TComRdCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631017D5DD840040CFC7 /* TComRdCost.cpp */; }; 51 7874639617D5DE070040CFC7 /* TComRdCostWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */; }; 52 7874639717D5DE070040CFC7 /* TComRom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631417D5DD840040CFC7 /* TComRom.cpp */; }; 53 7874639817D5DE070040CFC7 /* TComSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */; }; 54 7874639917D5DE070040CFC7 /* TComSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631817D5DD840040CFC7 /* TComSlice.cpp */; }; 55 7874639A17D5DE070040CFC7 /* TComTrQuant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */; }; 56 7874639B17D5DE070040CFC7 /* TComWedgelet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */; }; 57 7874639C17D5DE070040CFC7 /* TComWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */; }; 58 7874639D17D5DE070040CFC7 /* TComYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632017D5DD840040CFC7 /* TComYuv.cpp */; }; 59 7874639E17D5DE230040CFC7 /* TComMotionInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */; }; 60 7874639F17D5DE230040CFC7 /* TComPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630517D5DD840040CFC7 /* TComPattern.cpp */; }; 61 787463A017D5DE230040CFC7 /* TComPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630717D5DD840040CFC7 /* TComPic.cpp */; }; 62 787463A117D5DE230040CFC7 /* TComPicSym.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630917D5DD840040CFC7 /* TComPicSym.cpp */; }; 63 787463A217D5DE230040CFC7 /* TComPicYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */; }; 64 787463A317D5DE230040CFC7 /* TComPicYuvMD5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */; }; 65 787463A417D5DE400040CFC7 /* TComCABACTables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F917D5DD840040CFC7 /* TComCABACTables.cpp */; }; 66 787463A517D5DE400040CFC7 /* TComDataCU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462FB17D5DD840040CFC7 /* TComDataCU.cpp */; }; 67 787463A617D5DE400040CFC7 /* TComInterpolationFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */; }; 68 787463A717D5DE400040CFC7 /* TComLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */; }; 69 787463A817D5DE4B0040CFC7 /* TComBitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F717D5DD840040CFC7 /* TComBitStream.cpp */; }; 70 787463A917D5DE640040CFC7 /* ContextModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462EE17D5DD840040CFC7 /* ContextModel.cpp */; }; 71 787463AA17D5DE640040CFC7 /* ContextModel3DBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */; }; 72 787463AB17D5DE640040CFC7 /* SEI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F417D5DD840040CFC7 /* SEI.cpp */; }; 73 787463AC17D5DE8A0040CFC7 /* TVideoIOYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */; }; 74 787463AD17D5DE980040CFC7 /* TRenFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636B17D5DD840040CFC7 /* TRenFilter.cpp */; }; 75 787463AE17D5DE980040CFC7 /* TRenImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636D17D5DD840040CFC7 /* TRenImage.cpp */; }; 76 787463AF17D5DE980040CFC7 /* TRenImagePlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */; }; 77 787463B017D5DE980040CFC7 /* TRenInterpFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */; }; 78 787463B117D5DE9D0040CFC7 /* TRenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637317D5DD840040CFC7 /* TRenModel.cpp */; }; 79 787463B217D5DE9D0040CFC7 /* TRenModSetupStrParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */; }; 80 787463B317D5DE9D0040CFC7 /* TRenSingleModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */; }; 81 787463B417D5DE9D0040CFC7 /* TRenTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637917D5DD840040CFC7 /* TRenTop.cpp */; }; 82 787463B517D5DEAF0040CFC7 /* program_options_lite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462E717D5DD840040CFC7 /* program_options_lite.cpp */; }; 83 787463B617D5DEAF0040CFC7 /* TAppComCamPara.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */; }; 84 787463B717D5DED40040CFC7 /* libmd5.c in Sources */ = {isa = PBXBuildFile; fileRef = 787462E317D5DD840040CFC7 /* libmd5.c */; }; 85 787463B817D5DEE80040CFC7 /* AnnexBread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632417D5DD840040CFC7 /* AnnexBread.cpp */; }; 86 787463B917D5DEE80040CFC7 /* NALread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632617D5DD840040CFC7 /* NALread.cpp */; }; 87 787463BA17D5DEE80040CFC7 /* SEIread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632817D5DD840040CFC7 /* SEIread.cpp */; }; 88 787463BB17D5DEE80040CFC7 /* SyntaxElementParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */; }; 89 787463BC17D5DEE80040CFC7 /* TDecBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */; }; 90 787463BD17D5DEE80040CFC7 /* TDecCAVLC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */; }; 91 787463BE17D5DEE80040CFC7 /* TDecCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633117D5DD840040CFC7 /* TDecCu.cpp */; }; 92 787463BF17D5DEE80040CFC7 /* TDecEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633317D5DD840040CFC7 /* TDecEntropy.cpp */; }; 93 787463C017D5DEE80040CFC7 /* TDecGop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633517D5DD840040CFC7 /* TDecGop.cpp */; }; 94 787463C117D5DEE80040CFC7 /* TDecSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633717D5DD840040CFC7 /* TDecSbac.cpp */; }; 95 787463C217D5DEE80040CFC7 /* TDecSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633917D5DD840040CFC7 /* TDecSlice.cpp */; }; 96 787463C317D5DEE80040CFC7 /* TDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633B17D5DD840040CFC7 /* TDecTop.cpp */; }; 97 787463C417D5DEFB0040CFC7 /* decmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BB17D5DD7B0040CFC7 /* decmain.cpp */; }; 98 787463C517D5DEFB0040CFC7 /* TAppDecCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */; }; 99 787463C617D5DEFB0040CFC7 /* TAppDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */; }; 100 787463C717D5DF080040CFC7 /* extrmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C717D5DD7B0040CFC7 /* extrmain.cpp */; }; 101 787463C817D5DF080040CFC7 /* TAppExtrCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */; }; 102 787463C917D5DF080040CFC7 /* TAppExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */; }; 103 787463CA17D5DF0E0040CFC7 /* RendererMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */; }; 104 787463CB17D5DF0E0040CFC7 /* TAppRendererCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */; }; 105 787463CC17D5DF0E0040CFC7 /* TAppRendererTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */; }; 106 787463CD17D5DF220040CFC7 /* TExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636817D5DD840040CFC7 /* TExtrTop.cpp */; }; 27 784870741B0B62D10098FD5A /* decmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FA71B0B62C70098FD5A /* decmain.cpp */; }; 28 784870751B0B62D10098FD5A /* TAppDecCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FA81B0B62C70098FD5A /* TAppDecCfg.cpp */; }; 29 784870761B0B62D10098FD5A /* TAppDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FAA1B0B62C70098FD5A /* TAppDecTop.cpp */; }; 30 784870771B0B62D80098FD5A /* encmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FAD1B0B62C70098FD5A /* encmain.cpp */; }; 31 784870781B0B62D80098FD5A /* TAppEncCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FAE1B0B62C70098FD5A /* TAppEncCfg.cpp */; }; 32 784870791B0B62D80098FD5A /* TAppEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FB01B0B62C70098FD5A /* TAppEncTop.cpp */; }; 33 7848707A1B0B62E10098FD5A /* extrmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FB31B0B62C70098FD5A /* extrmain.cpp */; }; 34 7848707B1B0B62E10098FD5A /* TAppExtrCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FB41B0B62C70098FD5A /* TAppExtrCfg.cpp */; }; 35 7848707C1B0B62E10098FD5A /* TAppExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FB61B0B62C70098FD5A /* TAppExtrTop.cpp */; }; 36 7848707D1B0B62E80098FD5A /* RendererMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FB91B0B62C70098FD5A /* RendererMain.cpp */; }; 37 7848707E1B0B62E80098FD5A /* TAppRendererCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FBA1B0B62C70098FD5A /* TAppRendererCfg.cpp */; }; 38 7848707F1B0B62E80098FD5A /* TAppRendererTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FBC1B0B62C70098FD5A /* TAppRendererTop.cpp */; }; 39 784870801B0B63040098FD5A /* program_options_lite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FD41B0B62C70098FD5A /* program_options_lite.cpp */; }; 40 784870811B0B63040098FD5A /* TAppComCamPara.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FD61B0B62C70098FD5A /* TAppComCamPara.cpp */; }; 41 784870821B0B63230098FD5A /* ContextModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FDB1B0B62C70098FD5A /* ContextModel.cpp */; }; 42 784870831B0B63230098FD5A /* ContextModel3DBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FDD1B0B62C70098FD5A /* ContextModel3DBuffer.cpp */; }; 43 784870841B0B63230098FD5A /* Debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FE01B0B62C70098FD5A /* Debug.cpp */; }; 44 784870851B0B63230098FD5A /* SEI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FE31B0B62C70098FD5A /* SEI.cpp */; }; 45 784870861B0B63230098FD5A /* TComBitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FE61B0B62C70098FD5A /* TComBitStream.cpp */; }; 46 784870871B0B63230098FD5A /* TComCABACTables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FE81B0B62C70098FD5A /* TComCABACTables.cpp */; }; 47 784870881B0B63230098FD5A /* TComChromaFormat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FEA1B0B62C70098FD5A /* TComChromaFormat.cpp */; }; 48 784870891B0B63230098FD5A /* TComDataCU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FED1B0B62C70098FD5A /* TComDataCU.cpp */; }; 49 7848708A1B0B63230098FD5A /* TComInterpolationFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FEF1B0B62C70098FD5A /* TComInterpolationFilter.cpp */; }; 50 7848708B1B0B63230098FD5A /* TComLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FF21B0B62C70098FD5A /* TComLoopFilter.cpp */; }; 51 7848708C1B0B63230098FD5A /* TComMotionInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FF41B0B62C70098FD5A /* TComMotionInfo.cpp */; }; 52 7848708D1B0B63230098FD5A /* TComPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FF71B0B62C70098FD5A /* TComPattern.cpp */; }; 53 7848708E1B0B63230098FD5A /* TComPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FF91B0B62C70098FD5A /* TComPic.cpp */; }; 54 7848708F1B0B63230098FD5A /* TComPicSym.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FFB1B0B62C70098FD5A /* TComPicSym.cpp */; }; 55 784870901B0B63230098FD5A /* TComPicYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FFD1B0B62C70098FD5A /* TComPicYuv.cpp */; }; 56 784870911B0B63230098FD5A /* TComPicYuvMD5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78486FFF1B0B62C70098FD5A /* TComPicYuvMD5.cpp */; }; 57 784870921B0B63230098FD5A /* TComPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870001B0B62C70098FD5A /* TComPrediction.cpp */; }; 58 784870931B0B63230098FD5A /* TComRdCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870021B0B62C70098FD5A /* TComRdCost.cpp */; }; 59 784870941B0B63230098FD5A /* TComRdCostWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870041B0B62C70098FD5A /* TComRdCostWeightPrediction.cpp */; }; 60 784870951B0B63230098FD5A /* TComRom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870071B0B62C70098FD5A /* TComRom.cpp */; }; 61 784870961B0B63230098FD5A /* TComSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870091B0B62C70098FD5A /* TComSampleAdaptiveOffset.cpp */; }; 62 784870971B0B63230098FD5A /* TComSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848700B1B0B62C70098FD5A /* TComSlice.cpp */; }; 63 784870981B0B63230098FD5A /* TComTrQuant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848700D1B0B62C70098FD5A /* TComTrQuant.cpp */; }; 64 784870991B0B63230098FD5A /* TComTU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848700F1B0B62C70098FD5A /* TComTU.cpp */; }; 65 7848709A1B0B63230098FD5A /* TComWedgelet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870111B0B62C70098FD5A /* TComWedgelet.cpp */; }; 66 7848709B1B0B63230098FD5A /* TComWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870131B0B62C70098FD5A /* TComWeightPrediction.cpp */; }; 67 7848709C1B0B63230098FD5A /* TComYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870151B0B62C70098FD5A /* TComYuv.cpp */; }; 68 7848709D1B0B63360098FD5A /* AnnexBread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870191B0B62C70098FD5A /* AnnexBread.cpp */; }; 69 7848709E1B0B63360098FD5A /* NALread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848701B1B0B62C70098FD5A /* NALread.cpp */; }; 70 7848709F1B0B63360098FD5A /* SEIread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848701D1B0B62C70098FD5A /* SEIread.cpp */; }; 71 784870A01B0B63360098FD5A /* SyntaxElementParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848701F1B0B62C70098FD5A /* SyntaxElementParser.cpp */; }; 72 784870A11B0B63360098FD5A /* TDecBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870221B0B62C70098FD5A /* TDecBinCoderCABAC.cpp */; }; 73 784870A21B0B63360098FD5A /* TDecCAVLC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870241B0B62C70098FD5A /* TDecCAVLC.cpp */; }; 74 784870A31B0B63360098FD5A /* TDecCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870261B0B62C70098FD5A /* TDecCu.cpp */; }; 75 784870A41B0B63360098FD5A /* TDecEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870281B0B62C70098FD5A /* TDecEntropy.cpp */; }; 76 784870A51B0B63360098FD5A /* TDecGop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848702A1B0B62C70098FD5A /* TDecGop.cpp */; }; 77 784870A61B0B63360098FD5A /* TDecSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848702C1B0B62C70098FD5A /* TDecSbac.cpp */; }; 78 784870A71B0B63360098FD5A /* TDecSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848702E1B0B62C70098FD5A /* TDecSlice.cpp */; }; 79 784870A81B0B63360098FD5A /* TDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870301B0B62C70098FD5A /* TDecTop.cpp */; }; 80 784870A91B0B634A0098FD5A /* NALwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870341B0B62C70098FD5A /* NALwrite.cpp */; }; 81 784870AA1B0B634A0098FD5A /* SEIEncoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870361B0B62C70098FD5A /* SEIEncoder.cpp */; }; 82 784870AB1B0B634A0098FD5A /* SEIwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870381B0B62C70098FD5A /* SEIwrite.cpp */; }; 83 784870AC1B0B634A0098FD5A /* SyntaxElementWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848703A1B0B62C70098FD5A /* SyntaxElementWriter.cpp */; }; 84 784870AD1B0B634A0098FD5A /* TEncBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848703E1B0B62C70098FD5A /* TEncBinCoderCABAC.cpp */; }; 85 784870AE1B0B634A0098FD5A /* TEncBinCoderCABACCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870401B0B62C70098FD5A /* TEncBinCoderCABACCounter.cpp */; }; 86 784870AF1B0B634A0098FD5A /* TEncCavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870421B0B62C70098FD5A /* TEncCavlc.cpp */; }; 87 784870B01B0B634A0098FD5A /* TEncCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870451B0B62C70098FD5A /* TEncCu.cpp */; }; 88 784870B11B0B634A0098FD5A /* TEncEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870471B0B62C70098FD5A /* TEncEntropy.cpp */; }; 89 784870B21B0B634A0098FD5A /* TEncGOP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870491B0B62C70098FD5A /* TEncGOP.cpp */; }; 90 784870B31B0B634A0098FD5A /* TEncPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848704B1B0B62C70098FD5A /* TEncPic.cpp */; }; 91 784870B41B0B634A0098FD5A /* TEncPreanalyzer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848704D1B0B62C70098FD5A /* TEncPreanalyzer.cpp */; }; 92 784870B51B0B634A0098FD5A /* TEncRateCtrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848704F1B0B62C70098FD5A /* TEncRateCtrl.cpp */; }; 93 784870B61B0B634A0098FD5A /* TEncSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870511B0B62C70098FD5A /* TEncSampleAdaptiveOffset.cpp */; }; 94 784870B71B0B634A0098FD5A /* TEncSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870531B0B62C70098FD5A /* TEncSbac.cpp */; }; 95 784870B81B0B634A0098FD5A /* TEncSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870551B0B62C70098FD5A /* TEncSearch.cpp */; }; 96 784870B91B0B634A0098FD5A /* TEncSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870571B0B62C70098FD5A /* TEncSlice.cpp */; }; 97 784870BA1B0B634A0098FD5A /* TEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870591B0B62C70098FD5A /* TEncTop.cpp */; }; 98 784870BB1B0B634A0098FD5A /* WeightPredAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848705B1B0B62C70098FD5A /* WeightPredAnalysis.cpp */; }; 99 784870BC1B0B63520098FD5A /* TExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848705E1B0B62C70098FD5A /* TExtrTop.cpp */; }; 100 784870BD1B0B635C0098FD5A /* TRenFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870611B0B62C70098FD5A /* TRenFilter.cpp */; }; 101 784870BE1B0B635C0098FD5A /* TRenImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870631B0B62C70098FD5A /* TRenImage.cpp */; }; 102 784870BF1B0B635C0098FD5A /* TRenImagePlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870651B0B62C70098FD5A /* TRenImagePlane.cpp */; }; 103 784870C01B0B635C0098FD5A /* TRenInterpFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870671B0B62C70098FD5A /* TRenInterpFilter.cpp */; }; 104 784870C11B0B635C0098FD5A /* TRenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870691B0B62C70098FD5A /* TRenModel.cpp */; }; 105 784870C21B0B635C0098FD5A /* TRenModSetupStrParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848706B1B0B62C70098FD5A /* TRenModSetupStrParser.cpp */; }; 106 784870C31B0B635C0098FD5A /* TRenSingleModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848706D1B0B62C70098FD5A /* TRenSingleModel.cpp */; }; 107 784870C41B0B635C0098FD5A /* TRenTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7848706F1B0B62C70098FD5A /* TRenTop.cpp */; }; 108 784870C51B0B63610098FD5A /* TVideoIOYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 784870721B0B62C70098FD5A /* TVideoIOYuv.cpp */; }; 109 784870C61B0B63740098FD5A /* libmd5.c in Sources */ = {isa = PBXBuildFile; fileRef = 78486FD01B0B62C70098FD5A /* libmd5.c */; }; 107 110 78C5940D15872233004401C5 /* libTLibCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767959411AD61BB00421804 /* libTLibCommon.a */; }; 108 111 78C5940E15872233004401C5 /* libTLibEncoder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767961911AD626F00421804 /* libTLibEncoder.a */; }; … … 289 292 6767966A11AD635600421804 /* TAppEncoder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppEncoder; sourceTree = BUILT_PRODUCTS_DIR; }; 290 293 6782E0DE11AD691A00E8FFB8 /* TAppDecoder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppDecoder; sourceTree = BUILT_PRODUCTS_DIR; }; 291 785E596C17D9AFA8001F6DD1 /* TStatHeader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatHeader.cpp; sourceTree = "<group>"; }; 292 785E596D17D9AFA8001F6DD1 /* TStatHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatHeader.h; sourceTree = "<group>"; }; 293 785E596E17D9AFA8001F6DD1 /* TStatLayer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatLayer.cpp; sourceTree = "<group>"; }; 294 785E596F17D9AFA8001F6DD1 /* TStatLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatLayer.h; sourceTree = "<group>"; }; 295 785E597017D9AFA8001F6DD1 /* TStatTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatTop.cpp; sourceTree = "<group>"; }; 296 785E597117D9AFA8001F6DD1 /* TStatTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatTop.h; sourceTree = "<group>"; }; 297 787462BB17D5DD7B0040CFC7 /* decmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = decmain.cpp; sourceTree = "<group>"; }; 298 787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecCfg.cpp; sourceTree = "<group>"; }; 299 787462BD17D5DD7B0040CFC7 /* TAppDecCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecCfg.h; sourceTree = "<group>"; }; 300 787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecTop.cpp; sourceTree = "<group>"; }; 301 787462BF17D5DD7B0040CFC7 /* TAppDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecTop.h; sourceTree = "<group>"; }; 302 787462C117D5DD7B0040CFC7 /* encmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = encmain.cpp; sourceTree = "<group>"; }; 303 787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncCfg.cpp; sourceTree = "<group>"; }; 304 787462C317D5DD7B0040CFC7 /* TAppEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncCfg.h; sourceTree = "<group>"; }; 305 787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncTop.cpp; sourceTree = "<group>"; }; 306 787462C517D5DD7B0040CFC7 /* TAppEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncTop.h; sourceTree = "<group>"; }; 307 787462C717D5DD7B0040CFC7 /* extrmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = extrmain.cpp; sourceTree = "<group>"; }; 308 787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrCfg.cpp; sourceTree = "<group>"; }; 309 787462C917D5DD7B0040CFC7 /* TAppExtrCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrCfg.h; sourceTree = "<group>"; }; 310 787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrTop.cpp; sourceTree = "<group>"; }; 311 787462CB17D5DD7B0040CFC7 /* TAppExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrTop.h; sourceTree = "<group>"; }; 312 787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RendererMain.cpp; sourceTree = "<group>"; }; 313 787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererCfg.cpp; sourceTree = "<group>"; }; 314 787462CF17D5DD7B0040CFC7 /* TAppRendererCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererCfg.h; sourceTree = "<group>"; }; 315 787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererTop.cpp; sourceTree = "<group>"; }; 316 787462D117D5DD7B0040CFC7 /* TAppRendererTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererTop.h; sourceTree = "<group>"; }; 317 787462D317D5DD7B0040CFC7 /* annexBbytecount.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = annexBbytecount.cpp; sourceTree = "<group>"; }; 318 787462D517D5DD7B0040CFC7 /* encode.shl */ = {isa = PBXFileReference; lastKnownFileType = text; path = encode.shl; sourceTree = "<group>"; }; 319 787462D617D5DD7B0040CFC7 /* encodeCommand.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = encodeCommand.sh; sourceTree = "<group>"; }; 320 787462D717D5DD7B0040CFC7 /* ExtractBitrates.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitrates.cpp; sourceTree = "<group>"; }; 321 787462D817D5DD7B0040CFC7 /* ExtractBitrates.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtractBitrates.h; sourceTree = "<group>"; }; 322 787462D917D5DD7B0040CFC7 /* ExtractBitratesMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitratesMain.cpp; sourceTree = "<group>"; }; 323 787462DA17D5DD7B0040CFC7 /* GuessLambdaModifiers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiers.cpp; sourceTree = "<group>"; }; 324 787462DB17D5DD7B0040CFC7 /* GuessLambdaModifiers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuessLambdaModifiers.h; sourceTree = "<group>"; }; 325 787462DC17D5DD7B0040CFC7 /* GuessLambdaModifiersMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiersMain.cpp; sourceTree = "<group>"; }; 326 787462DD17D5DD7B0040CFC7 /* makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = "<group>"; }; 327 787462DE17D5DD7B0040CFC7 /* QuickStartGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = QuickStartGuide.pdf; sourceTree = "<group>"; }; 328 787462DF17D5DD7B0040CFC7 /* RuntimeError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeError.h; sourceTree = "<group>"; }; 329 787462E017D5DD7B0040CFC7 /* targetBitrates.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = targetBitrates.sh; sourceTree = "<group>"; }; 330 787462E117D5DD7B0040CFC7 /* convert_NtoMbit_YCbCr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = convert_NtoMbit_YCbCr.cpp; sourceTree = "<group>"; }; 331 787462E317D5DD840040CFC7 /* libmd5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = libmd5.c; sourceTree = "<group>"; }; 332 787462E417D5DD840040CFC7 /* libmd5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libmd5.h; sourceTree = "<group>"; }; 333 787462E517D5DD840040CFC7 /* MD5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MD5.h; sourceTree = "<group>"; }; 334 787462E717D5DD840040CFC7 /* program_options_lite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = program_options_lite.cpp; sourceTree = "<group>"; }; 335 787462E817D5DD840040CFC7 /* program_options_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = program_options_lite.h; sourceTree = "<group>"; }; 336 787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppComCamPara.cpp; sourceTree = "<group>"; }; 337 787462EA17D5DD840040CFC7 /* TAppComCamPara.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppComCamPara.h; sourceTree = "<group>"; }; 338 787462EC17D5DD840040CFC7 /* AccessUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessUnit.h; sourceTree = "<group>"; }; 339 787462ED17D5DD840040CFC7 /* CommonDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommonDef.h; sourceTree = "<group>"; }; 340 787462EE17D5DD840040CFC7 /* ContextModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel.cpp; sourceTree = "<group>"; }; 341 787462EF17D5DD840040CFC7 /* ContextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel.h; sourceTree = "<group>"; }; 342 787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel3DBuffer.cpp; sourceTree = "<group>"; }; 343 787462F117D5DD840040CFC7 /* ContextModel3DBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel3DBuffer.h; sourceTree = "<group>"; }; 344 787462F217D5DD840040CFC7 /* ContextTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextTables.h; sourceTree = "<group>"; }; 345 787462F317D5DD840040CFC7 /* NAL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NAL.h; sourceTree = "<group>"; }; 346 787462F417D5DD840040CFC7 /* SEI.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEI.cpp; sourceTree = "<group>"; }; 347 787462F517D5DD840040CFC7 /* SEI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEI.h; sourceTree = "<group>"; }; 348 787462F617D5DD840040CFC7 /* TComBitCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitCounter.h; sourceTree = "<group>"; }; 349 787462F717D5DD840040CFC7 /* TComBitStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComBitStream.cpp; sourceTree = "<group>"; }; 350 787462F817D5DD840040CFC7 /* TComBitStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitStream.h; sourceTree = "<group>"; }; 351 787462F917D5DD840040CFC7 /* TComCABACTables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComCABACTables.cpp; sourceTree = "<group>"; }; 352 787462FA17D5DD840040CFC7 /* TComCABACTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComCABACTables.h; sourceTree = "<group>"; }; 353 787462FB17D5DD840040CFC7 /* TComDataCU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComDataCU.cpp; sourceTree = "<group>"; }; 354 787462FC17D5DD840040CFC7 /* TComDataCU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComDataCU.h; sourceTree = "<group>"; }; 355 787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComInterpolationFilter.cpp; sourceTree = "<group>"; }; 356 787462FE17D5DD840040CFC7 /* TComInterpolationFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComInterpolationFilter.h; sourceTree = "<group>"; }; 357 787462FF17D5DD840040CFC7 /* TComList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComList.h; sourceTree = "<group>"; }; 358 7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComLoopFilter.cpp; sourceTree = "<group>"; }; 359 7874630117D5DD840040CFC7 /* TComLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComLoopFilter.h; sourceTree = "<group>"; }; 360 7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComMotionInfo.cpp; sourceTree = "<group>"; }; 361 7874630317D5DD840040CFC7 /* TComMotionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMotionInfo.h; sourceTree = "<group>"; }; 362 7874630417D5DD840040CFC7 /* TComMv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMv.h; sourceTree = "<group>"; }; 363 7874630517D5DD840040CFC7 /* TComPattern.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPattern.cpp; sourceTree = "<group>"; }; 364 7874630617D5DD840040CFC7 /* TComPattern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPattern.h; sourceTree = "<group>"; }; 365 7874630717D5DD840040CFC7 /* TComPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPic.cpp; sourceTree = "<group>"; }; 366 7874630817D5DD840040CFC7 /* TComPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPic.h; sourceTree = "<group>"; }; 367 7874630917D5DD840040CFC7 /* TComPicSym.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicSym.cpp; sourceTree = "<group>"; }; 368 7874630A17D5DD840040CFC7 /* TComPicSym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicSym.h; sourceTree = "<group>"; }; 369 7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuv.cpp; sourceTree = "<group>"; }; 370 7874630C17D5DD840040CFC7 /* TComPicYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicYuv.h; sourceTree = "<group>"; }; 371 7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuvMD5.cpp; sourceTree = "<group>"; }; 372 7874630E17D5DD840040CFC7 /* TComPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPrediction.cpp; sourceTree = "<group>"; }; 373 7874630F17D5DD840040CFC7 /* TComPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPrediction.h; sourceTree = "<group>"; }; 374 7874631017D5DD840040CFC7 /* TComRdCost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCost.cpp; sourceTree = "<group>"; }; 375 7874631117D5DD840040CFC7 /* TComRdCost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCost.h; sourceTree = "<group>"; }; 376 7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCostWeightPrediction.cpp; sourceTree = "<group>"; }; 377 7874631317D5DD840040CFC7 /* TComRdCostWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCostWeightPrediction.h; sourceTree = "<group>"; }; 378 7874631417D5DD840040CFC7 /* TComRom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRom.cpp; sourceTree = "<group>"; }; 379 7874631517D5DD840040CFC7 /* TComRom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRom.h; sourceTree = "<group>"; }; 380 7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSampleAdaptiveOffset.cpp; sourceTree = "<group>"; }; 381 7874631717D5DD840040CFC7 /* TComSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSampleAdaptiveOffset.h; sourceTree = "<group>"; }; 382 7874631817D5DD840040CFC7 /* TComSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSlice.cpp; sourceTree = "<group>"; }; 383 7874631917D5DD840040CFC7 /* TComSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSlice.h; sourceTree = "<group>"; }; 384 7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComTrQuant.cpp; sourceTree = "<group>"; }; 385 7874631B17D5DD840040CFC7 /* TComTrQuant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComTrQuant.h; sourceTree = "<group>"; }; 386 7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWedgelet.cpp; sourceTree = "<group>"; }; 387 7874631D17D5DD840040CFC7 /* TComWedgelet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWedgelet.h; sourceTree = "<group>"; }; 388 7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWeightPrediction.cpp; sourceTree = "<group>"; }; 389 7874631F17D5DD840040CFC7 /* TComWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWeightPrediction.h; sourceTree = "<group>"; }; 390 7874632017D5DD840040CFC7 /* TComYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComYuv.cpp; sourceTree = "<group>"; }; 391 7874632117D5DD840040CFC7 /* TComYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComYuv.h; sourceTree = "<group>"; }; 392 7874632217D5DD840040CFC7 /* TypeDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeDef.h; sourceTree = "<group>"; }; 393 7874632417D5DD840040CFC7 /* AnnexBread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AnnexBread.cpp; sourceTree = "<group>"; }; 394 7874632517D5DD840040CFC7 /* AnnexBread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBread.h; sourceTree = "<group>"; }; 395 7874632617D5DD840040CFC7 /* NALread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALread.cpp; sourceTree = "<group>"; }; 396 7874632717D5DD840040CFC7 /* NALread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALread.h; sourceTree = "<group>"; }; 397 7874632817D5DD840040CFC7 /* SEIread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIread.cpp; sourceTree = "<group>"; }; 398 7874632917D5DD840040CFC7 /* SEIread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIread.h; sourceTree = "<group>"; }; 399 7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementParser.cpp; sourceTree = "<group>"; }; 400 7874632B17D5DD840040CFC7 /* SyntaxElementParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementParser.h; sourceTree = "<group>"; }; 401 7874632C17D5DD840040CFC7 /* TDecBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoder.h; sourceTree = "<group>"; }; 402 7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecBinCoderCABAC.cpp; sourceTree = "<group>"; }; 403 7874632E17D5DD840040CFC7 /* TDecBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoderCABAC.h; sourceTree = "<group>"; }; 404 7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCAVLC.cpp; sourceTree = "<group>"; }; 405 7874633017D5DD840040CFC7 /* TDecCAVLC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCAVLC.h; sourceTree = "<group>"; }; 406 7874633117D5DD840040CFC7 /* TDecCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCu.cpp; sourceTree = "<group>"; }; 407 7874633217D5DD840040CFC7 /* TDecCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCu.h; sourceTree = "<group>"; }; 408 7874633317D5DD840040CFC7 /* TDecEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecEntropy.cpp; sourceTree = "<group>"; }; 409 7874633417D5DD840040CFC7 /* TDecEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecEntropy.h; sourceTree = "<group>"; }; 410 7874633517D5DD840040CFC7 /* TDecGop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecGop.cpp; sourceTree = "<group>"; }; 411 7874633617D5DD840040CFC7 /* TDecGop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecGop.h; sourceTree = "<group>"; }; 412 7874633717D5DD840040CFC7 /* TDecSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSbac.cpp; sourceTree = "<group>"; }; 413 7874633817D5DD840040CFC7 /* TDecSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSbac.h; sourceTree = "<group>"; }; 414 7874633917D5DD840040CFC7 /* TDecSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSlice.cpp; sourceTree = "<group>"; }; 415 7874633A17D5DD840040CFC7 /* TDecSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSlice.h; sourceTree = "<group>"; }; 416 7874633B17D5DD840040CFC7 /* TDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecTop.cpp; sourceTree = "<group>"; }; 417 7874633C17D5DD840040CFC7 /* TDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecTop.h; sourceTree = "<group>"; }; 418 7874633E17D5DD840040CFC7 /* AnnexBwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBwrite.h; sourceTree = "<group>"; }; 419 7874633F17D5DD840040CFC7 /* NALwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALwrite.cpp; sourceTree = "<group>"; }; 420 7874634017D5DD840040CFC7 /* NALwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALwrite.h; sourceTree = "<group>"; }; 421 7874634117D5DD840040CFC7 /* SEIwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIwrite.cpp; sourceTree = "<group>"; }; 422 7874634217D5DD840040CFC7 /* SEIwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIwrite.h; sourceTree = "<group>"; }; 423 7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementWriter.cpp; sourceTree = "<group>"; }; 424 7874634417D5DD840040CFC7 /* SyntaxElementWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementWriter.h; sourceTree = "<group>"; }; 425 7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncAnalyze.cpp; sourceTree = "<group>"; }; 426 7874634617D5DD840040CFC7 /* TEncAnalyze.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncAnalyze.h; sourceTree = "<group>"; }; 427 7874634717D5DD840040CFC7 /* TEncBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoder.h; sourceTree = "<group>"; }; 428 7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABAC.cpp; sourceTree = "<group>"; }; 429 7874634917D5DD840040CFC7 /* TEncBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABAC.h; sourceTree = "<group>"; }; 430 7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABACCounter.cpp; sourceTree = "<group>"; }; 431 7874634B17D5DD840040CFC7 /* TEncBinCoderCABACCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABACCounter.h; sourceTree = "<group>"; }; 432 7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCavlc.cpp; sourceTree = "<group>"; }; 433 7874634D17D5DD840040CFC7 /* TEncCavlc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCavlc.h; sourceTree = "<group>"; }; 434 7874634E17D5DD840040CFC7 /* TEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCfg.h; sourceTree = "<group>"; }; 435 7874634F17D5DD840040CFC7 /* TEncCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCu.cpp; sourceTree = "<group>"; }; 436 7874635017D5DD840040CFC7 /* TEncCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCu.h; sourceTree = "<group>"; }; 437 7874635117D5DD840040CFC7 /* TEncEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncEntropy.cpp; sourceTree = "<group>"; }; 438 7874635217D5DD840040CFC7 /* TEncEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncEntropy.h; sourceTree = "<group>"; }; 439 7874635317D5DD840040CFC7 /* TEncGOP.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncGOP.cpp; sourceTree = "<group>"; }; 440 7874635417D5DD840040CFC7 /* TEncGOP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncGOP.h; sourceTree = "<group>"; }; 441 7874635517D5DD840040CFC7 /* TEncPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPic.cpp; sourceTree = "<group>"; }; 442 7874635617D5DD840040CFC7 /* TEncPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPic.h; sourceTree = "<group>"; }; 443 7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPreanalyzer.cpp; sourceTree = "<group>"; }; 444 7874635817D5DD840040CFC7 /* TEncPreanalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPreanalyzer.h; sourceTree = "<group>"; }; 445 7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncRateCtrl.cpp; sourceTree = "<group>"; }; 446 7874635A17D5DD840040CFC7 /* TEncRateCtrl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncRateCtrl.h; sourceTree = "<group>"; }; 447 7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSampleAdaptiveOffset.cpp; sourceTree = "<group>"; }; 448 7874635C17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSampleAdaptiveOffset.h; sourceTree = "<group>"; }; 449 7874635D17D5DD840040CFC7 /* TEncSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSbac.cpp; sourceTree = "<group>"; }; 450 7874635E17D5DD840040CFC7 /* TEncSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSbac.h; sourceTree = "<group>"; }; 451 7874635F17D5DD840040CFC7 /* TEncSearch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSearch.cpp; sourceTree = "<group>"; }; 452 7874636017D5DD840040CFC7 /* TEncSearch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSearch.h; sourceTree = "<group>"; }; 453 7874636117D5DD840040CFC7 /* TEncSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSlice.cpp; sourceTree = "<group>"; }; 454 7874636217D5DD840040CFC7 /* TEncSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSlice.h; sourceTree = "<group>"; }; 455 7874636317D5DD840040CFC7 /* TEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncTop.cpp; sourceTree = "<group>"; }; 456 7874636417D5DD840040CFC7 /* TEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncTop.h; sourceTree = "<group>"; }; 457 7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WeightPredAnalysis.cpp; sourceTree = "<group>"; }; 458 7874636617D5DD840040CFC7 /* WeightPredAnalysis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeightPredAnalysis.h; sourceTree = "<group>"; }; 459 7874636817D5DD840040CFC7 /* TExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TExtrTop.cpp; sourceTree = "<group>"; }; 460 7874636917D5DD840040CFC7 /* TExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TExtrTop.h; sourceTree = "<group>"; }; 461 7874636B17D5DD840040CFC7 /* TRenFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenFilter.cpp; sourceTree = "<group>"; }; 462 7874636C17D5DD840040CFC7 /* TRenFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenFilter.h; sourceTree = "<group>"; }; 463 7874636D17D5DD840040CFC7 /* TRenImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImage.cpp; sourceTree = "<group>"; }; 464 7874636E17D5DD840040CFC7 /* TRenImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImage.h; sourceTree = "<group>"; }; 465 7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImagePlane.cpp; sourceTree = "<group>"; }; 466 7874637017D5DD840040CFC7 /* TRenImagePlane.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImagePlane.h; sourceTree = "<group>"; }; 467 7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenInterpFilter.cpp; sourceTree = "<group>"; }; 468 7874637217D5DD840040CFC7 /* TRenInterpFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenInterpFilter.h; sourceTree = "<group>"; }; 469 7874637317D5DD840040CFC7 /* TRenModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModel.cpp; sourceTree = "<group>"; }; 470 7874637417D5DD840040CFC7 /* TRenModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModel.h; sourceTree = "<group>"; }; 471 7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModSetupStrParser.cpp; sourceTree = "<group>"; }; 472 7874637617D5DD840040CFC7 /* TRenModSetupStrParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModSetupStrParser.h; sourceTree = "<group>"; }; 473 7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenSingleModel.cpp; sourceTree = "<group>"; }; 474 7874637817D5DD840040CFC7 /* TRenSingleModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenSingleModel.h; sourceTree = "<group>"; }; 475 7874637917D5DD840040CFC7 /* TRenTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenTop.cpp; sourceTree = "<group>"; }; 476 7874637A17D5DD840040CFC7 /* TRenTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenTop.h; sourceTree = "<group>"; }; 477 7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TVideoIOYuv.cpp; sourceTree = "<group>"; }; 478 7874637D17D5DD840040CFC7 /* TVideoIOYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVideoIOYuv.h; sourceTree = "<group>"; }; 294 78486FA71B0B62C70098FD5A /* decmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = decmain.cpp; sourceTree = "<group>"; }; 295 78486FA81B0B62C70098FD5A /* TAppDecCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecCfg.cpp; sourceTree = "<group>"; }; 296 78486FA91B0B62C70098FD5A /* TAppDecCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecCfg.h; sourceTree = "<group>"; }; 297 78486FAA1B0B62C70098FD5A /* TAppDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecTop.cpp; sourceTree = "<group>"; }; 298 78486FAB1B0B62C70098FD5A /* TAppDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecTop.h; sourceTree = "<group>"; }; 299 78486FAD1B0B62C70098FD5A /* encmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = encmain.cpp; sourceTree = "<group>"; }; 300 78486FAE1B0B62C70098FD5A /* TAppEncCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncCfg.cpp; sourceTree = "<group>"; }; 301 78486FAF1B0B62C70098FD5A /* TAppEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncCfg.h; sourceTree = "<group>"; }; 302 78486FB01B0B62C70098FD5A /* TAppEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncTop.cpp; sourceTree = "<group>"; }; 303 78486FB11B0B62C70098FD5A /* TAppEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncTop.h; sourceTree = "<group>"; }; 304 78486FB31B0B62C70098FD5A /* extrmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = extrmain.cpp; sourceTree = "<group>"; }; 305 78486FB41B0B62C70098FD5A /* TAppExtrCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrCfg.cpp; sourceTree = "<group>"; }; 306 78486FB51B0B62C70098FD5A /* TAppExtrCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrCfg.h; sourceTree = "<group>"; }; 307 78486FB61B0B62C70098FD5A /* TAppExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrTop.cpp; sourceTree = "<group>"; }; 308 78486FB71B0B62C70098FD5A /* TAppExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrTop.h; sourceTree = "<group>"; }; 309 78486FB91B0B62C70098FD5A /* RendererMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RendererMain.cpp; sourceTree = "<group>"; }; 310 78486FBA1B0B62C70098FD5A /* TAppRendererCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererCfg.cpp; sourceTree = "<group>"; }; 311 78486FBB1B0B62C70098FD5A /* TAppRendererCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererCfg.h; sourceTree = "<group>"; }; 312 78486FBC1B0B62C70098FD5A /* TAppRendererTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererTop.cpp; sourceTree = "<group>"; }; 313 78486FBD1B0B62C70098FD5A /* TAppRendererTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererTop.h; sourceTree = "<group>"; }; 314 78486FBF1B0B62C70098FD5A /* annexBbytecount.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = annexBbytecount.cpp; sourceTree = "<group>"; }; 315 78486FC11B0B62C70098FD5A /* encode.shl */ = {isa = PBXFileReference; lastKnownFileType = text; path = encode.shl; sourceTree = "<group>"; }; 316 78486FC21B0B62C70098FD5A /* encodeCommand.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = encodeCommand.sh; sourceTree = "<group>"; }; 317 78486FC31B0B62C70098FD5A /* ExtractBitrates.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitrates.cpp; sourceTree = "<group>"; }; 318 78486FC41B0B62C70098FD5A /* ExtractBitrates.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtractBitrates.h; sourceTree = "<group>"; }; 319 78486FC51B0B62C70098FD5A /* ExtractBitratesMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitratesMain.cpp; sourceTree = "<group>"; }; 320 78486FC61B0B62C70098FD5A /* GuessLambdaModifiers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiers.cpp; sourceTree = "<group>"; }; 321 78486FC71B0B62C70098FD5A /* GuessLambdaModifiers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuessLambdaModifiers.h; sourceTree = "<group>"; }; 322 78486FC81B0B62C70098FD5A /* GuessLambdaModifiersMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiersMain.cpp; sourceTree = "<group>"; }; 323 78486FC91B0B62C70098FD5A /* makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = "<group>"; }; 324 78486FCA1B0B62C70098FD5A /* QuickStartGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = QuickStartGuide.pdf; sourceTree = "<group>"; }; 325 78486FCB1B0B62C70098FD5A /* RuntimeError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeError.h; sourceTree = "<group>"; }; 326 78486FCC1B0B62C70098FD5A /* targetBitrates.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = targetBitrates.sh; sourceTree = "<group>"; }; 327 78486FCD1B0B62C70098FD5A /* convert_NtoMbit_YCbCr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = convert_NtoMbit_YCbCr.cpp; sourceTree = "<group>"; }; 328 78486FD01B0B62C70098FD5A /* libmd5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = libmd5.c; sourceTree = "<group>"; }; 329 78486FD11B0B62C70098FD5A /* libmd5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libmd5.h; sourceTree = "<group>"; }; 330 78486FD21B0B62C70098FD5A /* MD5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MD5.h; sourceTree = "<group>"; }; 331 78486FD41B0B62C70098FD5A /* program_options_lite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = program_options_lite.cpp; sourceTree = "<group>"; }; 332 78486FD51B0B62C70098FD5A /* program_options_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = program_options_lite.h; sourceTree = "<group>"; }; 333 78486FD61B0B62C70098FD5A /* TAppComCamPara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppComCamPara.cpp; sourceTree = "<group>"; }; 334 78486FD71B0B62C70098FD5A /* TAppComCamPara.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppComCamPara.h; sourceTree = "<group>"; }; 335 78486FD91B0B62C70098FD5A /* AccessUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessUnit.h; sourceTree = "<group>"; }; 336 78486FDA1B0B62C70098FD5A /* CommonDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommonDef.h; sourceTree = "<group>"; }; 337 78486FDB1B0B62C70098FD5A /* ContextModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel.cpp; sourceTree = "<group>"; }; 338 78486FDC1B0B62C70098FD5A /* ContextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel.h; sourceTree = "<group>"; }; 339 78486FDD1B0B62C70098FD5A /* ContextModel3DBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel3DBuffer.cpp; sourceTree = "<group>"; }; 340 78486FDE1B0B62C70098FD5A /* ContextModel3DBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel3DBuffer.h; sourceTree = "<group>"; }; 341 78486FDF1B0B62C70098FD5A /* ContextTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = ContextTables.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 342 78486FE01B0B62C70098FD5A /* Debug.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Debug.cpp; sourceTree = "<group>"; }; 343 78486FE11B0B62C70098FD5A /* Debug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Debug.h; sourceTree = "<group>"; }; 344 78486FE21B0B62C70098FD5A /* NAL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NAL.h; sourceTree = "<group>"; }; 345 78486FE31B0B62C70098FD5A /* SEI.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEI.cpp; sourceTree = "<group>"; }; 346 78486FE41B0B62C70098FD5A /* SEI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEI.h; sourceTree = "<group>"; }; 347 78486FE51B0B62C70098FD5A /* TComBitCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitCounter.h; sourceTree = "<group>"; }; 348 78486FE61B0B62C70098FD5A /* TComBitStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComBitStream.cpp; sourceTree = "<group>"; }; 349 78486FE71B0B62C70098FD5A /* TComBitStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitStream.h; sourceTree = "<group>"; }; 350 78486FE81B0B62C70098FD5A /* TComCABACTables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComCABACTables.cpp; sourceTree = "<group>"; }; 351 78486FE91B0B62C70098FD5A /* TComCABACTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComCABACTables.h; sourceTree = "<group>"; }; 352 78486FEA1B0B62C70098FD5A /* TComChromaFormat.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComChromaFormat.cpp; sourceTree = "<group>"; }; 353 78486FEB1B0B62C70098FD5A /* TComChromaFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComChromaFormat.h; sourceTree = "<group>"; }; 354 78486FEC1B0B62C70098FD5A /* TComCodingStatistics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComCodingStatistics.h; sourceTree = "<group>"; }; 355 78486FED1B0B62C70098FD5A /* TComDataCU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComDataCU.cpp; sourceTree = "<group>"; }; 356 78486FEE1B0B62C70098FD5A /* TComDataCU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComDataCU.h; sourceTree = "<group>"; }; 357 78486FEF1B0B62C70098FD5A /* TComInterpolationFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComInterpolationFilter.cpp; sourceTree = "<group>"; }; 358 78486FF01B0B62C70098FD5A /* TComInterpolationFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComInterpolationFilter.h; sourceTree = "<group>"; }; 359 78486FF11B0B62C70098FD5A /* TComList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComList.h; sourceTree = "<group>"; }; 360 78486FF21B0B62C70098FD5A /* TComLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComLoopFilter.cpp; sourceTree = "<group>"; }; 361 78486FF31B0B62C70098FD5A /* TComLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComLoopFilter.h; sourceTree = "<group>"; }; 362 78486FF41B0B62C70098FD5A /* TComMotionInfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComMotionInfo.cpp; sourceTree = "<group>"; }; 363 78486FF51B0B62C70098FD5A /* TComMotionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMotionInfo.h; sourceTree = "<group>"; }; 364 78486FF61B0B62C70098FD5A /* TComMv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMv.h; sourceTree = "<group>"; }; 365 78486FF71B0B62C70098FD5A /* TComPattern.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPattern.cpp; sourceTree = "<group>"; }; 366 78486FF81B0B62C70098FD5A /* TComPattern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPattern.h; sourceTree = "<group>"; }; 367 78486FF91B0B62C70098FD5A /* TComPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPic.cpp; sourceTree = "<group>"; }; 368 78486FFA1B0B62C70098FD5A /* TComPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPic.h; sourceTree = "<group>"; }; 369 78486FFB1B0B62C70098FD5A /* TComPicSym.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicSym.cpp; sourceTree = "<group>"; }; 370 78486FFC1B0B62C70098FD5A /* TComPicSym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicSym.h; sourceTree = "<group>"; }; 371 78486FFD1B0B62C70098FD5A /* TComPicYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuv.cpp; sourceTree = "<group>"; }; 372 78486FFE1B0B62C70098FD5A /* TComPicYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicYuv.h; sourceTree = "<group>"; }; 373 78486FFF1B0B62C70098FD5A /* TComPicYuvMD5.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuvMD5.cpp; sourceTree = "<group>"; }; 374 784870001B0B62C70098FD5A /* TComPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = TComPrediction.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 375 784870011B0B62C70098FD5A /* TComPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = TComPrediction.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 376 784870021B0B62C70098FD5A /* TComRdCost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCost.cpp; sourceTree = "<group>"; }; 377 784870031B0B62C70098FD5A /* TComRdCost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCost.h; sourceTree = "<group>"; }; 378 784870041B0B62C70098FD5A /* TComRdCostWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCostWeightPrediction.cpp; sourceTree = "<group>"; }; 379 784870051B0B62C70098FD5A /* TComRdCostWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCostWeightPrediction.h; sourceTree = "<group>"; }; 380 784870061B0B62C70098FD5A /* TComRectangle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRectangle.h; sourceTree = "<group>"; }; 381 784870071B0B62C70098FD5A /* TComRom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRom.cpp; sourceTree = "<group>"; }; 382 784870081B0B62C70098FD5A /* TComRom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRom.h; sourceTree = "<group>"; }; 383 784870091B0B62C70098FD5A /* TComSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSampleAdaptiveOffset.cpp; sourceTree = "<group>"; }; 384 7848700A1B0B62C70098FD5A /* TComSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSampleAdaptiveOffset.h; sourceTree = "<group>"; }; 385 7848700B1B0B62C70098FD5A /* TComSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSlice.cpp; sourceTree = "<group>"; }; 386 7848700C1B0B62C70098FD5A /* TComSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSlice.h; sourceTree = "<group>"; }; 387 7848700D1B0B62C70098FD5A /* TComTrQuant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComTrQuant.cpp; sourceTree = "<group>"; }; 388 7848700E1B0B62C70098FD5A /* TComTrQuant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComTrQuant.h; sourceTree = "<group>"; }; 389 7848700F1B0B62C70098FD5A /* TComTU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComTU.cpp; sourceTree = "<group>"; }; 390 784870101B0B62C70098FD5A /* TComTU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComTU.h; sourceTree = "<group>"; }; 391 784870111B0B62C70098FD5A /* TComWedgelet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWedgelet.cpp; sourceTree = "<group>"; }; 392 784870121B0B62C70098FD5A /* TComWedgelet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWedgelet.h; sourceTree = "<group>"; }; 393 784870131B0B62C70098FD5A /* TComWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWeightPrediction.cpp; sourceTree = "<group>"; }; 394 784870141B0B62C70098FD5A /* TComWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWeightPrediction.h; sourceTree = "<group>"; }; 395 784870151B0B62C70098FD5A /* TComYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComYuv.cpp; sourceTree = "<group>"; }; 396 784870161B0B62C70098FD5A /* TComYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComYuv.h; sourceTree = "<group>"; }; 397 784870171B0B62C70098FD5A /* TypeDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = TypeDef.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 398 784870191B0B62C70098FD5A /* AnnexBread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AnnexBread.cpp; sourceTree = "<group>"; }; 399 7848701A1B0B62C70098FD5A /* AnnexBread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBread.h; sourceTree = "<group>"; }; 400 7848701B1B0B62C70098FD5A /* NALread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALread.cpp; sourceTree = "<group>"; }; 401 7848701C1B0B62C70098FD5A /* NALread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALread.h; sourceTree = "<group>"; }; 402 7848701D1B0B62C70098FD5A /* SEIread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIread.cpp; sourceTree = "<group>"; }; 403 7848701E1B0B62C70098FD5A /* SEIread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIread.h; sourceTree = "<group>"; }; 404 7848701F1B0B62C70098FD5A /* SyntaxElementParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementParser.cpp; sourceTree = "<group>"; }; 405 784870201B0B62C70098FD5A /* SyntaxElementParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementParser.h; sourceTree = "<group>"; }; 406 784870211B0B62C70098FD5A /* TDecBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoder.h; sourceTree = "<group>"; }; 407 784870221B0B62C70098FD5A /* TDecBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecBinCoderCABAC.cpp; sourceTree = "<group>"; }; 408 784870231B0B62C70098FD5A /* TDecBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoderCABAC.h; sourceTree = "<group>"; }; 409 784870241B0B62C70098FD5A /* TDecCAVLC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCAVLC.cpp; sourceTree = "<group>"; }; 410 784870251B0B62C70098FD5A /* TDecCAVLC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCAVLC.h; sourceTree = "<group>"; }; 411 784870261B0B62C70098FD5A /* TDecCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCu.cpp; sourceTree = "<group>"; }; 412 784870271B0B62C70098FD5A /* TDecCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCu.h; sourceTree = "<group>"; }; 413 784870281B0B62C70098FD5A /* TDecEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecEntropy.cpp; sourceTree = "<group>"; }; 414 784870291B0B62C70098FD5A /* TDecEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecEntropy.h; sourceTree = "<group>"; }; 415 7848702A1B0B62C70098FD5A /* TDecGop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecGop.cpp; sourceTree = "<group>"; }; 416 7848702B1B0B62C70098FD5A /* TDecGop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecGop.h; sourceTree = "<group>"; }; 417 7848702C1B0B62C70098FD5A /* TDecSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = TDecSbac.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 418 7848702D1B0B62C70098FD5A /* TDecSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = TDecSbac.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 419 7848702E1B0B62C70098FD5A /* TDecSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSlice.cpp; sourceTree = "<group>"; }; 420 7848702F1B0B62C70098FD5A /* TDecSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSlice.h; sourceTree = "<group>"; }; 421 784870301B0B62C70098FD5A /* TDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecTop.cpp; sourceTree = "<group>"; }; 422 784870311B0B62C70098FD5A /* TDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecTop.h; sourceTree = "<group>"; }; 423 784870331B0B62C70098FD5A /* AnnexBwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBwrite.h; sourceTree = "<group>"; }; 424 784870341B0B62C70098FD5A /* NALwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALwrite.cpp; sourceTree = "<group>"; }; 425 784870351B0B62C70098FD5A /* NALwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALwrite.h; sourceTree = "<group>"; }; 426 784870361B0B62C70098FD5A /* SEIEncoder.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIEncoder.cpp; sourceTree = "<group>"; }; 427 784870371B0B62C70098FD5A /* SEIEncoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIEncoder.h; sourceTree = "<group>"; }; 428 784870381B0B62C70098FD5A /* SEIwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIwrite.cpp; sourceTree = "<group>"; }; 429 784870391B0B62C70098FD5A /* SEIwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIwrite.h; sourceTree = "<group>"; }; 430 7848703A1B0B62C70098FD5A /* SyntaxElementWriter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementWriter.cpp; sourceTree = "<group>"; }; 431 7848703B1B0B62C70098FD5A /* SyntaxElementWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementWriter.h; sourceTree = "<group>"; }; 432 7848703C1B0B62C70098FD5A /* TEncAnalyze.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncAnalyze.h; sourceTree = "<group>"; }; 433 7848703D1B0B62C70098FD5A /* TEncBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoder.h; sourceTree = "<group>"; }; 434 7848703E1B0B62C70098FD5A /* TEncBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABAC.cpp; sourceTree = "<group>"; }; 435 7848703F1B0B62C70098FD5A /* TEncBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABAC.h; sourceTree = "<group>"; }; 436 784870401B0B62C70098FD5A /* TEncBinCoderCABACCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABACCounter.cpp; sourceTree = "<group>"; }; 437 784870411B0B62C70098FD5A /* TEncBinCoderCABACCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABACCounter.h; sourceTree = "<group>"; }; 438 784870421B0B62C70098FD5A /* TEncCavlc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCavlc.cpp; sourceTree = "<group>"; }; 439 784870431B0B62C70098FD5A /* TEncCavlc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCavlc.h; sourceTree = "<group>"; }; 440 784870441B0B62C70098FD5A /* TEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCfg.h; sourceTree = "<group>"; }; 441 784870451B0B62C70098FD5A /* TEncCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCu.cpp; sourceTree = "<group>"; }; 442 784870461B0B62C70098FD5A /* TEncCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCu.h; sourceTree = "<group>"; }; 443 784870471B0B62C70098FD5A /* TEncEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncEntropy.cpp; sourceTree = "<group>"; }; 444 784870481B0B62C70098FD5A /* TEncEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncEntropy.h; sourceTree = "<group>"; }; 445 784870491B0B62C70098FD5A /* TEncGOP.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncGOP.cpp; sourceTree = "<group>"; }; 446 7848704A1B0B62C70098FD5A /* TEncGOP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncGOP.h; sourceTree = "<group>"; }; 447 7848704B1B0B62C70098FD5A /* TEncPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPic.cpp; sourceTree = "<group>"; }; 448 7848704C1B0B62C70098FD5A /* TEncPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPic.h; sourceTree = "<group>"; }; 449 7848704D1B0B62C70098FD5A /* TEncPreanalyzer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPreanalyzer.cpp; sourceTree = "<group>"; }; 450 7848704E1B0B62C70098FD5A /* TEncPreanalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPreanalyzer.h; sourceTree = "<group>"; }; 451 7848704F1B0B62C70098FD5A /* TEncRateCtrl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncRateCtrl.cpp; sourceTree = "<group>"; }; 452 784870501B0B62C70098FD5A /* TEncRateCtrl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncRateCtrl.h; sourceTree = "<group>"; }; 453 784870511B0B62C70098FD5A /* TEncSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSampleAdaptiveOffset.cpp; sourceTree = "<group>"; }; 454 784870521B0B62C70098FD5A /* TEncSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSampleAdaptiveOffset.h; sourceTree = "<group>"; }; 455 784870531B0B62C70098FD5A /* TEncSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = TEncSbac.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 456 784870541B0B62C70098FD5A /* TEncSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = TEncSbac.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 457 784870551B0B62C70098FD5A /* TEncSearch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; lineEnding = 0; path = TEncSearch.cpp; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; }; 458 784870561B0B62C70098FD5A /* TEncSearch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = TEncSearch.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; 459 784870571B0B62C70098FD5A /* TEncSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSlice.cpp; sourceTree = "<group>"; }; 460 784870581B0B62C70098FD5A /* TEncSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSlice.h; sourceTree = "<group>"; }; 461 784870591B0B62C70098FD5A /* TEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncTop.cpp; sourceTree = "<group>"; }; 462 7848705A1B0B62C70098FD5A /* TEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncTop.h; sourceTree = "<group>"; }; 463 7848705B1B0B62C70098FD5A /* WeightPredAnalysis.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WeightPredAnalysis.cpp; sourceTree = "<group>"; }; 464 7848705C1B0B62C70098FD5A /* WeightPredAnalysis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeightPredAnalysis.h; sourceTree = "<group>"; }; 465 7848705E1B0B62C70098FD5A /* TExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TExtrTop.cpp; sourceTree = "<group>"; }; 466 7848705F1B0B62C70098FD5A /* TExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TExtrTop.h; sourceTree = "<group>"; }; 467 784870611B0B62C70098FD5A /* TRenFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenFilter.cpp; sourceTree = "<group>"; }; 468 784870621B0B62C70098FD5A /* TRenFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenFilter.h; sourceTree = "<group>"; }; 469 784870631B0B62C70098FD5A /* TRenImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImage.cpp; sourceTree = "<group>"; }; 470 784870641B0B62C70098FD5A /* TRenImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImage.h; sourceTree = "<group>"; }; 471 784870651B0B62C70098FD5A /* TRenImagePlane.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImagePlane.cpp; sourceTree = "<group>"; }; 472 784870661B0B62C70098FD5A /* TRenImagePlane.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImagePlane.h; sourceTree = "<group>"; }; 473 784870671B0B62C70098FD5A /* TRenInterpFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenInterpFilter.cpp; sourceTree = "<group>"; }; 474 784870681B0B62C70098FD5A /* TRenInterpFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenInterpFilter.h; sourceTree = "<group>"; }; 475 784870691B0B62C70098FD5A /* TRenModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModel.cpp; sourceTree = "<group>"; }; 476 7848706A1B0B62C70098FD5A /* TRenModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModel.h; sourceTree = "<group>"; }; 477 7848706B1B0B62C70098FD5A /* TRenModSetupStrParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModSetupStrParser.cpp; sourceTree = "<group>"; }; 478 7848706C1B0B62C70098FD5A /* TRenModSetupStrParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModSetupStrParser.h; sourceTree = "<group>"; }; 479 7848706D1B0B62C70098FD5A /* TRenSingleModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenSingleModel.cpp; sourceTree = "<group>"; }; 480 7848706E1B0B62C70098FD5A /* TRenSingleModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenSingleModel.h; sourceTree = "<group>"; }; 481 7848706F1B0B62C70098FD5A /* TRenTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenTop.cpp; sourceTree = "<group>"; }; 482 784870701B0B62C70098FD5A /* TRenTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenTop.h; sourceTree = "<group>"; }; 483 784870721B0B62C70098FD5A /* TVideoIOYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TVideoIOYuv.cpp; sourceTree = "<group>"; }; 484 784870731B0B62C70098FD5A /* TVideoIOYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVideoIOYuv.h; sourceTree = "<group>"; }; 479 485 7885897D15664E3D00982C12 /* libTLibExtractor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTLibExtractor.a; sourceTree = BUILT_PRODUCTS_DIR; }; 480 486 7885899415664E6A00982C12 /* TAppExtractor */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppExtractor; sourceTree = BUILT_PRODUCTS_DIR; }; … … 595 601 isa = PBXGroup; 596 602 children = ( 597 78 C592E7158720BB004401C5/* App */,598 78 C59310158720BB004401C5/* Lib */,603 78486FA51B0B62C70098FD5A /* App */, 604 78486FCE1B0B62C70098FD5A /* Lib */, 599 605 ); 600 606 indentWidth = 2; … … 621 627 sourceTree = "<group>"; 622 628 }; 623 78 5E596B17D9AFA8001F6DD1 /* TLibStatistics*/ = {629 78486FA51B0B62C70098FD5A /* App */ = { 624 630 isa = PBXGroup; 625 631 children = ( 626 785E596C17D9AFA8001F6DD1 /* TStatHeader.cpp */, 627 785E596D17D9AFA8001F6DD1 /* TStatHeader.h */, 628 785E596E17D9AFA8001F6DD1 /* TStatLayer.cpp */, 629 785E596F17D9AFA8001F6DD1 /* TStatLayer.h */, 630 785E597017D9AFA8001F6DD1 /* TStatTop.cpp */, 631 785E597117D9AFA8001F6DD1 /* TStatTop.h */, 632 ); 633 path = TLibStatistics; 634 sourceTree = "<group>"; 635 }; 636 787462BA17D5DD7B0040CFC7 /* TAppDecoder */ = { 637 isa = PBXGroup; 638 children = ( 639 787462BB17D5DD7B0040CFC7 /* decmain.cpp */, 640 787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */, 641 787462BD17D5DD7B0040CFC7 /* TAppDecCfg.h */, 642 787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */, 643 787462BF17D5DD7B0040CFC7 /* TAppDecTop.h */, 644 ); 645 path = TAppDecoder; 646 sourceTree = "<group>"; 647 }; 648 787462C017D5DD7B0040CFC7 /* TAppEncoder */ = { 649 isa = PBXGroup; 650 children = ( 651 787462C117D5DD7B0040CFC7 /* encmain.cpp */, 652 787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */, 653 787462C317D5DD7B0040CFC7 /* TAppEncCfg.h */, 654 787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */, 655 787462C517D5DD7B0040CFC7 /* TAppEncTop.h */, 656 ); 657 path = TAppEncoder; 658 sourceTree = "<group>"; 659 }; 660 787462C617D5DD7B0040CFC7 /* TAppExtractor */ = { 661 isa = PBXGroup; 662 children = ( 663 787462C717D5DD7B0040CFC7 /* extrmain.cpp */, 664 787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */, 665 787462C917D5DD7B0040CFC7 /* TAppExtrCfg.h */, 666 787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */, 667 787462CB17D5DD7B0040CFC7 /* TAppExtrTop.h */, 668 ); 669 path = TAppExtractor; 670 sourceTree = "<group>"; 671 }; 672 787462CC17D5DD7B0040CFC7 /* TAppRenderer */ = { 673 isa = PBXGroup; 674 children = ( 675 787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */, 676 787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */, 677 787462CF17D5DD7B0040CFC7 /* TAppRendererCfg.h */, 678 787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */, 679 787462D117D5DD7B0040CFC7 /* TAppRendererTop.h */, 680 ); 681 path = TAppRenderer; 682 sourceTree = "<group>"; 683 }; 684 787462D217D5DD7B0040CFC7 /* utils */ = { 685 isa = PBXGroup; 686 children = ( 687 787462D317D5DD7B0040CFC7 /* annexBbytecount.cpp */, 688 787462D417D5DD7B0040CFC7 /* BitrateTargeting */, 689 787462E117D5DD7B0040CFC7 /* convert_NtoMbit_YCbCr.cpp */, 690 ); 691 path = utils; 692 sourceTree = "<group>"; 693 }; 694 787462D417D5DD7B0040CFC7 /* BitrateTargeting */ = { 695 isa = PBXGroup; 696 children = ( 697 787462D517D5DD7B0040CFC7 /* encode.shl */, 698 787462D617D5DD7B0040CFC7 /* encodeCommand.sh */, 699 787462D717D5DD7B0040CFC7 /* ExtractBitrates.cpp */, 700 787462D817D5DD7B0040CFC7 /* ExtractBitrates.h */, 701 787462D917D5DD7B0040CFC7 /* ExtractBitratesMain.cpp */, 702 787462DA17D5DD7B0040CFC7 /* GuessLambdaModifiers.cpp */, 703 787462DB17D5DD7B0040CFC7 /* GuessLambdaModifiers.h */, 704 787462DC17D5DD7B0040CFC7 /* GuessLambdaModifiersMain.cpp */, 705 787462DD17D5DD7B0040CFC7 /* makefile */, 706 787462DE17D5DD7B0040CFC7 /* QuickStartGuide.pdf */, 707 787462DF17D5DD7B0040CFC7 /* RuntimeError.h */, 708 787462E017D5DD7B0040CFC7 /* targetBitrates.sh */, 709 ); 710 path = BitrateTargeting; 711 sourceTree = "<group>"; 712 }; 713 787462E217D5DD840040CFC7 /* libmd5 */ = { 714 isa = PBXGroup; 715 children = ( 716 787462E317D5DD840040CFC7 /* libmd5.c */, 717 787462E417D5DD840040CFC7 /* libmd5.h */, 718 787462E517D5DD840040CFC7 /* MD5.h */, 719 ); 720 path = libmd5; 721 sourceTree = "<group>"; 722 }; 723 787462E617D5DD840040CFC7 /* TAppCommon */ = { 724 isa = PBXGroup; 725 children = ( 726 787462E717D5DD840040CFC7 /* program_options_lite.cpp */, 727 787462E817D5DD840040CFC7 /* program_options_lite.h */, 728 787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */, 729 787462EA17D5DD840040CFC7 /* TAppComCamPara.h */, 730 ); 731 path = TAppCommon; 732 sourceTree = "<group>"; 733 }; 734 787462EB17D5DD840040CFC7 /* TLibCommon */ = { 735 isa = PBXGroup; 736 children = ( 737 787462EC17D5DD840040CFC7 /* AccessUnit.h */, 738 787462ED17D5DD840040CFC7 /* CommonDef.h */, 739 787462EE17D5DD840040CFC7 /* ContextModel.cpp */, 740 787462EF17D5DD840040CFC7 /* ContextModel.h */, 741 787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */, 742 787462F117D5DD840040CFC7 /* ContextModel3DBuffer.h */, 743 787462F217D5DD840040CFC7 /* ContextTables.h */, 744 787462F317D5DD840040CFC7 /* NAL.h */, 745 787462F417D5DD840040CFC7 /* SEI.cpp */, 746 787462F517D5DD840040CFC7 /* SEI.h */, 747 787462F617D5DD840040CFC7 /* TComBitCounter.h */, 748 787462F717D5DD840040CFC7 /* TComBitStream.cpp */, 749 787462F817D5DD840040CFC7 /* TComBitStream.h */, 750 787462F917D5DD840040CFC7 /* TComCABACTables.cpp */, 751 787462FA17D5DD840040CFC7 /* TComCABACTables.h */, 752 787462FB17D5DD840040CFC7 /* TComDataCU.cpp */, 753 787462FC17D5DD840040CFC7 /* TComDataCU.h */, 754 787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */, 755 787462FE17D5DD840040CFC7 /* TComInterpolationFilter.h */, 756 787462FF17D5DD840040CFC7 /* TComList.h */, 757 7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */, 758 7874630117D5DD840040CFC7 /* TComLoopFilter.h */, 759 7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */, 760 7874630317D5DD840040CFC7 /* TComMotionInfo.h */, 761 7874630417D5DD840040CFC7 /* TComMv.h */, 762 7874630517D5DD840040CFC7 /* TComPattern.cpp */, 763 7874630617D5DD840040CFC7 /* TComPattern.h */, 764 7874630717D5DD840040CFC7 /* TComPic.cpp */, 765 7874630817D5DD840040CFC7 /* TComPic.h */, 766 7874630917D5DD840040CFC7 /* TComPicSym.cpp */, 767 7874630A17D5DD840040CFC7 /* TComPicSym.h */, 768 7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */, 769 7874630C17D5DD840040CFC7 /* TComPicYuv.h */, 770 7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */, 771 7874630E17D5DD840040CFC7 /* TComPrediction.cpp */, 772 7874630F17D5DD840040CFC7 /* TComPrediction.h */, 773 7874631017D5DD840040CFC7 /* TComRdCost.cpp */, 774 7874631117D5DD840040CFC7 /* TComRdCost.h */, 775 7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */, 776 7874631317D5DD840040CFC7 /* TComRdCostWeightPrediction.h */, 777 7874631417D5DD840040CFC7 /* TComRom.cpp */, 778 7874631517D5DD840040CFC7 /* TComRom.h */, 779 7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */, 780 7874631717D5DD840040CFC7 /* TComSampleAdaptiveOffset.h */, 781 7874631817D5DD840040CFC7 /* TComSlice.cpp */, 782 7874631917D5DD840040CFC7 /* TComSlice.h */, 783 7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */, 784 7874631B17D5DD840040CFC7 /* TComTrQuant.h */, 785 7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */, 786 7874631D17D5DD840040CFC7 /* TComWedgelet.h */, 787 7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */, 788 7874631F17D5DD840040CFC7 /* TComWeightPrediction.h */, 789 7874632017D5DD840040CFC7 /* TComYuv.cpp */, 790 7874632117D5DD840040CFC7 /* TComYuv.h */, 791 7874632217D5DD840040CFC7 /* TypeDef.h */, 792 ); 793 path = TLibCommon; 794 sourceTree = "<group>"; 795 }; 796 7874632317D5DD840040CFC7 /* TLibDecoder */ = { 797 isa = PBXGroup; 798 children = ( 799 7874632417D5DD840040CFC7 /* AnnexBread.cpp */, 800 7874632517D5DD840040CFC7 /* AnnexBread.h */, 801 7874632617D5DD840040CFC7 /* NALread.cpp */, 802 7874632717D5DD840040CFC7 /* NALread.h */, 803 7874632817D5DD840040CFC7 /* SEIread.cpp */, 804 7874632917D5DD840040CFC7 /* SEIread.h */, 805 7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */, 806 7874632B17D5DD840040CFC7 /* SyntaxElementParser.h */, 807 7874632C17D5DD840040CFC7 /* TDecBinCoder.h */, 808 7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */, 809 7874632E17D5DD840040CFC7 /* TDecBinCoderCABAC.h */, 810 7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */, 811 7874633017D5DD840040CFC7 /* TDecCAVLC.h */, 812 7874633117D5DD840040CFC7 /* TDecCu.cpp */, 813 7874633217D5DD840040CFC7 /* TDecCu.h */, 814 7874633317D5DD840040CFC7 /* TDecEntropy.cpp */, 815 7874633417D5DD840040CFC7 /* TDecEntropy.h */, 816 7874633517D5DD840040CFC7 /* TDecGop.cpp */, 817 7874633617D5DD840040CFC7 /* TDecGop.h */, 818 7874633717D5DD840040CFC7 /* TDecSbac.cpp */, 819 7874633817D5DD840040CFC7 /* TDecSbac.h */, 820 7874633917D5DD840040CFC7 /* TDecSlice.cpp */, 821 7874633A17D5DD840040CFC7 /* TDecSlice.h */, 822 7874633B17D5DD840040CFC7 /* TDecTop.cpp */, 823 7874633C17D5DD840040CFC7 /* TDecTop.h */, 824 ); 825 path = TLibDecoder; 826 sourceTree = "<group>"; 827 }; 828 7874633D17D5DD840040CFC7 /* TLibEncoder */ = { 829 isa = PBXGroup; 830 children = ( 831 7874633E17D5DD840040CFC7 /* AnnexBwrite.h */, 832 7874633F17D5DD840040CFC7 /* NALwrite.cpp */, 833 7874634017D5DD840040CFC7 /* NALwrite.h */, 834 7874634117D5DD840040CFC7 /* SEIwrite.cpp */, 835 7874634217D5DD840040CFC7 /* SEIwrite.h */, 836 7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */, 837 7874634417D5DD840040CFC7 /* SyntaxElementWriter.h */, 838 7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */, 839 7874634617D5DD840040CFC7 /* TEncAnalyze.h */, 840 7874634717D5DD840040CFC7 /* TEncBinCoder.h */, 841 7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */, 842 7874634917D5DD840040CFC7 /* TEncBinCoderCABAC.h */, 843 7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */, 844 7874634B17D5DD840040CFC7 /* TEncBinCoderCABACCounter.h */, 845 7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */, 846 7874634D17D5DD840040CFC7 /* TEncCavlc.h */, 847 7874634E17D5DD840040CFC7 /* TEncCfg.h */, 848 7874634F17D5DD840040CFC7 /* TEncCu.cpp */, 849 7874635017D5DD840040CFC7 /* TEncCu.h */, 850 7874635117D5DD840040CFC7 /* TEncEntropy.cpp */, 851 7874635217D5DD840040CFC7 /* TEncEntropy.h */, 852 7874635317D5DD840040CFC7 /* TEncGOP.cpp */, 853 7874635417D5DD840040CFC7 /* TEncGOP.h */, 854 7874635517D5DD840040CFC7 /* TEncPic.cpp */, 855 7874635617D5DD840040CFC7 /* TEncPic.h */, 856 7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */, 857 7874635817D5DD840040CFC7 /* TEncPreanalyzer.h */, 858 7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */, 859 7874635A17D5DD840040CFC7 /* TEncRateCtrl.h */, 860 7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */, 861 7874635C17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.h */, 862 7874635D17D5DD840040CFC7 /* TEncSbac.cpp */, 863 7874635E17D5DD840040CFC7 /* TEncSbac.h */, 864 7874635F17D5DD840040CFC7 /* TEncSearch.cpp */, 865 7874636017D5DD840040CFC7 /* TEncSearch.h */, 866 7874636117D5DD840040CFC7 /* TEncSlice.cpp */, 867 7874636217D5DD840040CFC7 /* TEncSlice.h */, 868 7874636317D5DD840040CFC7 /* TEncTop.cpp */, 869 7874636417D5DD840040CFC7 /* TEncTop.h */, 870 7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */, 871 7874636617D5DD840040CFC7 /* WeightPredAnalysis.h */, 872 ); 873 path = TLibEncoder; 874 sourceTree = "<group>"; 875 }; 876 7874636717D5DD840040CFC7 /* TLibExtractor */ = { 877 isa = PBXGroup; 878 children = ( 879 7874636817D5DD840040CFC7 /* TExtrTop.cpp */, 880 7874636917D5DD840040CFC7 /* TExtrTop.h */, 881 ); 882 path = TLibExtractor; 883 sourceTree = "<group>"; 884 }; 885 7874636A17D5DD840040CFC7 /* TLibRenderer */ = { 886 isa = PBXGroup; 887 children = ( 888 7874636B17D5DD840040CFC7 /* TRenFilter.cpp */, 889 7874636C17D5DD840040CFC7 /* TRenFilter.h */, 890 7874636D17D5DD840040CFC7 /* TRenImage.cpp */, 891 7874636E17D5DD840040CFC7 /* TRenImage.h */, 892 7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */, 893 7874637017D5DD840040CFC7 /* TRenImagePlane.h */, 894 7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */, 895 7874637217D5DD840040CFC7 /* TRenInterpFilter.h */, 896 7874637317D5DD840040CFC7 /* TRenModel.cpp */, 897 7874637417D5DD840040CFC7 /* TRenModel.h */, 898 7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */, 899 7874637617D5DD840040CFC7 /* TRenModSetupStrParser.h */, 900 7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */, 901 7874637817D5DD840040CFC7 /* TRenSingleModel.h */, 902 7874637917D5DD840040CFC7 /* TRenTop.cpp */, 903 7874637A17D5DD840040CFC7 /* TRenTop.h */, 904 ); 905 path = TLibRenderer; 906 sourceTree = "<group>"; 907 }; 908 7874637B17D5DD840040CFC7 /* TLibVideoIO */ = { 909 isa = PBXGroup; 910 children = ( 911 7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */, 912 7874637D17D5DD840040CFC7 /* TVideoIOYuv.h */, 913 ); 914 path = TLibVideoIO; 915 sourceTree = "<group>"; 916 }; 917 78C592E7158720BB004401C5 /* App */ = { 918 isa = PBXGroup; 919 children = ( 920 787462BA17D5DD7B0040CFC7 /* TAppDecoder */, 921 787462C017D5DD7B0040CFC7 /* TAppEncoder */, 922 787462C617D5DD7B0040CFC7 /* TAppExtractor */, 923 787462CC17D5DD7B0040CFC7 /* TAppRenderer */, 924 787462D217D5DD7B0040CFC7 /* utils */, 632 78486FA61B0B62C70098FD5A /* TAppDecoder */, 633 78486FAC1B0B62C70098FD5A /* TAppEncoder */, 634 78486FB21B0B62C70098FD5A /* TAppExtractor */, 635 78486FB81B0B62C70098FD5A /* TAppRenderer */, 636 78486FBE1B0B62C70098FD5A /* utils */, 925 637 ); 926 638 name = App; … … 928 640 sourceTree = "<group>"; 929 641 }; 930 78 C59310158720BB004401C5 /* Lib*/ = {642 78486FA61B0B62C70098FD5A /* TAppDecoder */ = { 931 643 isa = PBXGroup; 932 644 children = ( 933 787462E217D5DD840040CFC7 /* libmd5 */, 934 787462E617D5DD840040CFC7 /* TAppCommon */, 935 787462EB17D5DD840040CFC7 /* TLibCommon */, 936 7874632317D5DD840040CFC7 /* TLibDecoder */, 937 7874633D17D5DD840040CFC7 /* TLibEncoder */, 938 7874636717D5DD840040CFC7 /* TLibExtractor */, 939 7874636A17D5DD840040CFC7 /* TLibRenderer */, 940 7874637B17D5DD840040CFC7 /* TLibVideoIO */, 941 785E596B17D9AFA8001F6DD1 /* TLibStatistics */, 645 78486FA71B0B62C70098FD5A /* decmain.cpp */, 646 78486FA81B0B62C70098FD5A /* TAppDecCfg.cpp */, 647 78486FA91B0B62C70098FD5A /* TAppDecCfg.h */, 648 78486FAA1B0B62C70098FD5A /* TAppDecTop.cpp */, 649 78486FAB1B0B62C70098FD5A /* TAppDecTop.h */, 650 ); 651 path = TAppDecoder; 652 sourceTree = "<group>"; 653 }; 654 78486FAC1B0B62C70098FD5A /* TAppEncoder */ = { 655 isa = PBXGroup; 656 children = ( 657 78486FAD1B0B62C70098FD5A /* encmain.cpp */, 658 78486FAE1B0B62C70098FD5A /* TAppEncCfg.cpp */, 659 78486FAF1B0B62C70098FD5A /* TAppEncCfg.h */, 660 78486FB01B0B62C70098FD5A /* TAppEncTop.cpp */, 661 78486FB11B0B62C70098FD5A /* TAppEncTop.h */, 662 ); 663 path = TAppEncoder; 664 sourceTree = "<group>"; 665 }; 666 78486FB21B0B62C70098FD5A /* TAppExtractor */ = { 667 isa = PBXGroup; 668 children = ( 669 78486FB31B0B62C70098FD5A /* extrmain.cpp */, 670 78486FB41B0B62C70098FD5A /* TAppExtrCfg.cpp */, 671 78486FB51B0B62C70098FD5A /* TAppExtrCfg.h */, 672 78486FB61B0B62C70098FD5A /* TAppExtrTop.cpp */, 673 78486FB71B0B62C70098FD5A /* TAppExtrTop.h */, 674 ); 675 path = TAppExtractor; 676 sourceTree = "<group>"; 677 }; 678 78486FB81B0B62C70098FD5A /* TAppRenderer */ = { 679 isa = PBXGroup; 680 children = ( 681 78486FB91B0B62C70098FD5A /* RendererMain.cpp */, 682 78486FBA1B0B62C70098FD5A /* TAppRendererCfg.cpp */, 683 78486FBB1B0B62C70098FD5A /* TAppRendererCfg.h */, 684 78486FBC1B0B62C70098FD5A /* TAppRendererTop.cpp */, 685 78486FBD1B0B62C70098FD5A /* TAppRendererTop.h */, 686 ); 687 path = TAppRenderer; 688 sourceTree = "<group>"; 689 }; 690 78486FBE1B0B62C70098FD5A /* utils */ = { 691 isa = PBXGroup; 692 children = ( 693 78486FBF1B0B62C70098FD5A /* annexBbytecount.cpp */, 694 78486FC01B0B62C70098FD5A /* BitrateTargeting */, 695 78486FCD1B0B62C70098FD5A /* convert_NtoMbit_YCbCr.cpp */, 696 ); 697 path = utils; 698 sourceTree = "<group>"; 699 }; 700 78486FC01B0B62C70098FD5A /* BitrateTargeting */ = { 701 isa = PBXGroup; 702 children = ( 703 78486FC11B0B62C70098FD5A /* encode.shl */, 704 78486FC21B0B62C70098FD5A /* encodeCommand.sh */, 705 78486FC31B0B62C70098FD5A /* ExtractBitrates.cpp */, 706 78486FC41B0B62C70098FD5A /* ExtractBitrates.h */, 707 78486FC51B0B62C70098FD5A /* ExtractBitratesMain.cpp */, 708 78486FC61B0B62C70098FD5A /* GuessLambdaModifiers.cpp */, 709 78486FC71B0B62C70098FD5A /* GuessLambdaModifiers.h */, 710 78486FC81B0B62C70098FD5A /* GuessLambdaModifiersMain.cpp */, 711 78486FC91B0B62C70098FD5A /* makefile */, 712 78486FCA1B0B62C70098FD5A /* QuickStartGuide.pdf */, 713 78486FCB1B0B62C70098FD5A /* RuntimeError.h */, 714 78486FCC1B0B62C70098FD5A /* targetBitrates.sh */, 715 ); 716 path = BitrateTargeting; 717 sourceTree = "<group>"; 718 }; 719 78486FCE1B0B62C70098FD5A /* Lib */ = { 720 isa = PBXGroup; 721 children = ( 722 78486FCF1B0B62C70098FD5A /* libmd5 */, 723 78486FD31B0B62C70098FD5A /* TAppCommon */, 724 78486FD81B0B62C70098FD5A /* TLibCommon */, 725 784870181B0B62C70098FD5A /* TLibDecoder */, 726 784870321B0B62C70098FD5A /* TLibEncoder */, 727 7848705D1B0B62C70098FD5A /* TLibExtractor */, 728 784870601B0B62C70098FD5A /* TLibRenderer */, 729 784870711B0B62C70098FD5A /* TLibVideoIO */, 942 730 ); 943 731 name = Lib; 944 732 path = source/Lib; 733 sourceTree = "<group>"; 734 }; 735 78486FCF1B0B62C70098FD5A /* libmd5 */ = { 736 isa = PBXGroup; 737 children = ( 738 78486FD01B0B62C70098FD5A /* libmd5.c */, 739 78486FD11B0B62C70098FD5A /* libmd5.h */, 740 78486FD21B0B62C70098FD5A /* MD5.h */, 741 ); 742 path = libmd5; 743 sourceTree = "<group>"; 744 }; 745 78486FD31B0B62C70098FD5A /* TAppCommon */ = { 746 isa = PBXGroup; 747 children = ( 748 78486FD41B0B62C70098FD5A /* program_options_lite.cpp */, 749 78486FD51B0B62C70098FD5A /* program_options_lite.h */, 750 78486FD61B0B62C70098FD5A /* TAppComCamPara.cpp */, 751 78486FD71B0B62C70098FD5A /* TAppComCamPara.h */, 752 ); 753 path = TAppCommon; 754 sourceTree = "<group>"; 755 }; 756 78486FD81B0B62C70098FD5A /* TLibCommon */ = { 757 isa = PBXGroup; 758 children = ( 759 78486FD91B0B62C70098FD5A /* AccessUnit.h */, 760 78486FDA1B0B62C70098FD5A /* CommonDef.h */, 761 78486FDB1B0B62C70098FD5A /* ContextModel.cpp */, 762 78486FDC1B0B62C70098FD5A /* ContextModel.h */, 763 78486FDD1B0B62C70098FD5A /* ContextModel3DBuffer.cpp */, 764 78486FDE1B0B62C70098FD5A /* ContextModel3DBuffer.h */, 765 78486FDF1B0B62C70098FD5A /* ContextTables.h */, 766 78486FE01B0B62C70098FD5A /* Debug.cpp */, 767 78486FE11B0B62C70098FD5A /* Debug.h */, 768 78486FE21B0B62C70098FD5A /* NAL.h */, 769 78486FE31B0B62C70098FD5A /* SEI.cpp */, 770 78486FE41B0B62C70098FD5A /* SEI.h */, 771 78486FE51B0B62C70098FD5A /* TComBitCounter.h */, 772 78486FE61B0B62C70098FD5A /* TComBitStream.cpp */, 773 78486FE71B0B62C70098FD5A /* TComBitStream.h */, 774 78486FE81B0B62C70098FD5A /* TComCABACTables.cpp */, 775 78486FE91B0B62C70098FD5A /* TComCABACTables.h */, 776 78486FEA1B0B62C70098FD5A /* TComChromaFormat.cpp */, 777 78486FEB1B0B62C70098FD5A /* TComChromaFormat.h */, 778 78486FEC1B0B62C70098FD5A /* TComCodingStatistics.h */, 779 78486FED1B0B62C70098FD5A /* TComDataCU.cpp */, 780 78486FEE1B0B62C70098FD5A /* TComDataCU.h */, 781 78486FEF1B0B62C70098FD5A /* TComInterpolationFilter.cpp */, 782 78486FF01B0B62C70098FD5A /* TComInterpolationFilter.h */, 783 78486FF11B0B62C70098FD5A /* TComList.h */, 784 78486FF21B0B62C70098FD5A /* TComLoopFilter.cpp */, 785 78486FF31B0B62C70098FD5A /* TComLoopFilter.h */, 786 78486FF41B0B62C70098FD5A /* TComMotionInfo.cpp */, 787 78486FF51B0B62C70098FD5A /* TComMotionInfo.h */, 788 78486FF61B0B62C70098FD5A /* TComMv.h */, 789 78486FF71B0B62C70098FD5A /* TComPattern.cpp */, 790 78486FF81B0B62C70098FD5A /* TComPattern.h */, 791 78486FF91B0B62C70098FD5A /* TComPic.cpp */, 792 78486FFA1B0B62C70098FD5A /* TComPic.h */, 793 78486FFB1B0B62C70098FD5A /* TComPicSym.cpp */, 794 78486FFC1B0B62C70098FD5A /* TComPicSym.h */, 795 78486FFD1B0B62C70098FD5A /* TComPicYuv.cpp */, 796 78486FFE1B0B62C70098FD5A /* TComPicYuv.h */, 797 78486FFF1B0B62C70098FD5A /* TComPicYuvMD5.cpp */, 798 784870001B0B62C70098FD5A /* TComPrediction.cpp */, 799 784870011B0B62C70098FD5A /* TComPrediction.h */, 800 784870021B0B62C70098FD5A /* TComRdCost.cpp */, 801 784870031B0B62C70098FD5A /* TComRdCost.h */, 802 784870041B0B62C70098FD5A /* TComRdCostWeightPrediction.cpp */, 803 784870051B0B62C70098FD5A /* TComRdCostWeightPrediction.h */, 804 784870061B0B62C70098FD5A /* TComRectangle.h */, 805 784870071B0B62C70098FD5A /* TComRom.cpp */, 806 784870081B0B62C70098FD5A /* TComRom.h */, 807 784870091B0B62C70098FD5A /* TComSampleAdaptiveOffset.cpp */, 808 7848700A1B0B62C70098FD5A /* TComSampleAdaptiveOffset.h */, 809 7848700B1B0B62C70098FD5A /* TComSlice.cpp */, 810 7848700C1B0B62C70098FD5A /* TComSlice.h */, 811 7848700D1B0B62C70098FD5A /* TComTrQuant.cpp */, 812 7848700E1B0B62C70098FD5A /* TComTrQuant.h */, 813 7848700F1B0B62C70098FD5A /* TComTU.cpp */, 814 784870101B0B62C70098FD5A /* TComTU.h */, 815 784870111B0B62C70098FD5A /* TComWedgelet.cpp */, 816 784870121B0B62C70098FD5A /* TComWedgelet.h */, 817 784870131B0B62C70098FD5A /* TComWeightPrediction.cpp */, 818 784870141B0B62C70098FD5A /* TComWeightPrediction.h */, 819 784870151B0B62C70098FD5A /* TComYuv.cpp */, 820 784870161B0B62C70098FD5A /* TComYuv.h */, 821 784870171B0B62C70098FD5A /* TypeDef.h */, 822 ); 823 path = TLibCommon; 824 sourceTree = "<group>"; 825 }; 826 784870181B0B62C70098FD5A /* TLibDecoder */ = { 827 isa = PBXGroup; 828 children = ( 829 784870191B0B62C70098FD5A /* AnnexBread.cpp */, 830 7848701A1B0B62C70098FD5A /* AnnexBread.h */, 831 7848701B1B0B62C70098FD5A /* NALread.cpp */, 832 7848701C1B0B62C70098FD5A /* NALread.h */, 833 7848701D1B0B62C70098FD5A /* SEIread.cpp */, 834 7848701E1B0B62C70098FD5A /* SEIread.h */, 835 7848701F1B0B62C70098FD5A /* SyntaxElementParser.cpp */, 836 784870201B0B62C70098FD5A /* SyntaxElementParser.h */, 837 784870211B0B62C70098FD5A /* TDecBinCoder.h */, 838 784870221B0B62C70098FD5A /* TDecBinCoderCABAC.cpp */, 839 784870231B0B62C70098FD5A /* TDecBinCoderCABAC.h */, 840 784870241B0B62C70098FD5A /* TDecCAVLC.cpp */, 841 784870251B0B62C70098FD5A /* TDecCAVLC.h */, 842 784870261B0B62C70098FD5A /* TDecCu.cpp */, 843 784870271B0B62C70098FD5A /* TDecCu.h */, 844 784870281B0B62C70098FD5A /* TDecEntropy.cpp */, 845 784870291B0B62C70098FD5A /* TDecEntropy.h */, 846 7848702A1B0B62C70098FD5A /* TDecGop.cpp */, 847 7848702B1B0B62C70098FD5A /* TDecGop.h */, 848 7848702C1B0B62C70098FD5A /* TDecSbac.cpp */, 849 7848702D1B0B62C70098FD5A /* TDecSbac.h */, 850 7848702E1B0B62C70098FD5A /* TDecSlice.cpp */, 851 7848702F1B0B62C70098FD5A /* TDecSlice.h */, 852 784870301B0B62C70098FD5A /* TDecTop.cpp */, 853 784870311B0B62C70098FD5A /* TDecTop.h */, 854 ); 855 path = TLibDecoder; 856 sourceTree = "<group>"; 857 }; 858 784870321B0B62C70098FD5A /* TLibEncoder */ = { 859 isa = PBXGroup; 860 children = ( 861 784870331B0B62C70098FD5A /* AnnexBwrite.h */, 862 784870341B0B62C70098FD5A /* NALwrite.cpp */, 863 784870351B0B62C70098FD5A /* NALwrite.h */, 864 784870361B0B62C70098FD5A /* SEIEncoder.cpp */, 865 784870371B0B62C70098FD5A /* SEIEncoder.h */, 866 784870381B0B62C70098FD5A /* SEIwrite.cpp */, 867 784870391B0B62C70098FD5A /* SEIwrite.h */, 868 7848703A1B0B62C70098FD5A /* SyntaxElementWriter.cpp */, 869 7848703B1B0B62C70098FD5A /* SyntaxElementWriter.h */, 870 7848703C1B0B62C70098FD5A /* TEncAnalyze.h */, 871 7848703D1B0B62C70098FD5A /* TEncBinCoder.h */, 872 7848703E1B0B62C70098FD5A /* TEncBinCoderCABAC.cpp */, 873 7848703F1B0B62C70098FD5A /* TEncBinCoderCABAC.h */, 874 784870401B0B62C70098FD5A /* TEncBinCoderCABACCounter.cpp */, 875 784870411B0B62C70098FD5A /* TEncBinCoderCABACCounter.h */, 876 784870421B0B62C70098FD5A /* TEncCavlc.cpp */, 877 784870431B0B62C70098FD5A /* TEncCavlc.h */, 878 784870441B0B62C70098FD5A /* TEncCfg.h */, 879 784870451B0B62C70098FD5A /* TEncCu.cpp */, 880 784870461B0B62C70098FD5A /* TEncCu.h */, 881 784870471B0B62C70098FD5A /* TEncEntropy.cpp */, 882 784870481B0B62C70098FD5A /* TEncEntropy.h */, 883 784870491B0B62C70098FD5A /* TEncGOP.cpp */, 884 7848704A1B0B62C70098FD5A /* TEncGOP.h */, 885 7848704B1B0B62C70098FD5A /* TEncPic.cpp */, 886 7848704C1B0B62C70098FD5A /* TEncPic.h */, 887 7848704D1B0B62C70098FD5A /* TEncPreanalyzer.cpp */, 888 7848704E1B0B62C70098FD5A /* TEncPreanalyzer.h */, 889 7848704F1B0B62C70098FD5A /* TEncRateCtrl.cpp */, 890 784870501B0B62C70098FD5A /* TEncRateCtrl.h */, 891 784870511B0B62C70098FD5A /* TEncSampleAdaptiveOffset.cpp */, 892 784870521B0B62C70098FD5A /* TEncSampleAdaptiveOffset.h */, 893 784870531B0B62C70098FD5A /* TEncSbac.cpp */, 894 784870541B0B62C70098FD5A /* TEncSbac.h */, 895 784870551B0B62C70098FD5A /* TEncSearch.cpp */, 896 784870561B0B62C70098FD5A /* TEncSearch.h */, 897 784870571B0B62C70098FD5A /* TEncSlice.cpp */, 898 784870581B0B62C70098FD5A /* TEncSlice.h */, 899 784870591B0B62C70098FD5A /* TEncTop.cpp */, 900 7848705A1B0B62C70098FD5A /* TEncTop.h */, 901 7848705B1B0B62C70098FD5A /* WeightPredAnalysis.cpp */, 902 7848705C1B0B62C70098FD5A /* WeightPredAnalysis.h */, 903 ); 904 path = TLibEncoder; 905 sourceTree = "<group>"; 906 }; 907 7848705D1B0B62C70098FD5A /* TLibExtractor */ = { 908 isa = PBXGroup; 909 children = ( 910 7848705E1B0B62C70098FD5A /* TExtrTop.cpp */, 911 7848705F1B0B62C70098FD5A /* TExtrTop.h */, 912 ); 913 path = TLibExtractor; 914 sourceTree = "<group>"; 915 }; 916 784870601B0B62C70098FD5A /* TLibRenderer */ = { 917 isa = PBXGroup; 918 children = ( 919 784870611B0B62C70098FD5A /* TRenFilter.cpp */, 920 784870621B0B62C70098FD5A /* TRenFilter.h */, 921 784870631B0B62C70098FD5A /* TRenImage.cpp */, 922 784870641B0B62C70098FD5A /* TRenImage.h */, 923 784870651B0B62C70098FD5A /* TRenImagePlane.cpp */, 924 784870661B0B62C70098FD5A /* TRenImagePlane.h */, 925 784870671B0B62C70098FD5A /* TRenInterpFilter.cpp */, 926 784870681B0B62C70098FD5A /* TRenInterpFilter.h */, 927 784870691B0B62C70098FD5A /* TRenModel.cpp */, 928 7848706A1B0B62C70098FD5A /* TRenModel.h */, 929 7848706B1B0B62C70098FD5A /* TRenModSetupStrParser.cpp */, 930 7848706C1B0B62C70098FD5A /* TRenModSetupStrParser.h */, 931 7848706D1B0B62C70098FD5A /* TRenSingleModel.cpp */, 932 7848706E1B0B62C70098FD5A /* TRenSingleModel.h */, 933 7848706F1B0B62C70098FD5A /* TRenTop.cpp */, 934 784870701B0B62C70098FD5A /* TRenTop.h */, 935 ); 936 path = TLibRenderer; 937 sourceTree = "<group>"; 938 }; 939 784870711B0B62C70098FD5A /* TLibVideoIO */ = { 940 isa = PBXGroup; 941 children = ( 942 784870721B0B62C70098FD5A /* TVideoIOYuv.cpp */, 943 784870731B0B62C70098FD5A /* TVideoIOYuv.h */, 944 ); 945 path = TLibVideoIO; 945 946 sourceTree = "<group>"; 946 947 }; … … 1208 1209 attributes = { 1209 1210 BuildIndependentTargetsInParallel = YES; 1210 LastUpgradeCheck = 0 500;1211 LastUpgradeCheck = 0620; 1211 1212 }; 1212 1213 buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "HTM" */; … … 1245 1246 buildActionMask = 2147483647; 1246 1247 files = ( 1247 7874639417D5DE070040CFC7 /* TComPrediction.cpp in Sources */, 1248 7874639517D5DE070040CFC7 /* TComRdCost.cpp in Sources */, 1249 7874639617D5DE070040CFC7 /* TComRdCostWeightPrediction.cpp in Sources */, 1250 7874639717D5DE070040CFC7 /* TComRom.cpp in Sources */, 1251 7874639817D5DE070040CFC7 /* TComSampleAdaptiveOffset.cpp in Sources */, 1252 7874639917D5DE070040CFC7 /* TComSlice.cpp in Sources */, 1253 7874639A17D5DE070040CFC7 /* TComTrQuant.cpp in Sources */, 1254 7874639B17D5DE070040CFC7 /* TComWedgelet.cpp in Sources */, 1255 7874639C17D5DE070040CFC7 /* TComWeightPrediction.cpp in Sources */, 1256 7874639D17D5DE070040CFC7 /* TComYuv.cpp in Sources */, 1257 7874639E17D5DE230040CFC7 /* TComMotionInfo.cpp in Sources */, 1258 7874639F17D5DE230040CFC7 /* TComPattern.cpp in Sources */, 1259 787463A017D5DE230040CFC7 /* TComPic.cpp in Sources */, 1260 787463A117D5DE230040CFC7 /* TComPicSym.cpp in Sources */, 1261 787463A217D5DE230040CFC7 /* TComPicYuv.cpp in Sources */, 1262 787463A317D5DE230040CFC7 /* TComPicYuvMD5.cpp in Sources */, 1263 787463A417D5DE400040CFC7 /* TComCABACTables.cpp in Sources */, 1264 787463A517D5DE400040CFC7 /* TComDataCU.cpp in Sources */, 1265 787463A617D5DE400040CFC7 /* TComInterpolationFilter.cpp in Sources */, 1266 787463A717D5DE400040CFC7 /* TComLoopFilter.cpp in Sources */, 1267 787463A817D5DE4B0040CFC7 /* TComBitStream.cpp in Sources */, 1268 787463A917D5DE640040CFC7 /* ContextModel.cpp in Sources */, 1269 787463AA17D5DE640040CFC7 /* ContextModel3DBuffer.cpp in Sources */, 1270 787463AB17D5DE640040CFC7 /* SEI.cpp in Sources */, 1271 787463B717D5DED40040CFC7 /* libmd5.c in Sources */, 1248 784870871B0B63230098FD5A /* TComCABACTables.cpp in Sources */, 1249 7848709C1B0B63230098FD5A /* TComYuv.cpp in Sources */, 1250 7848709A1B0B63230098FD5A /* TComWedgelet.cpp in Sources */, 1251 784870931B0B63230098FD5A /* TComRdCost.cpp in Sources */, 1252 784870881B0B63230098FD5A /* TComChromaFormat.cpp in Sources */, 1253 7848708A1B0B63230098FD5A /* TComInterpolationFilter.cpp in Sources */, 1254 784870C61B0B63740098FD5A /* libmd5.c in Sources */, 1255 7848709B1B0B63230098FD5A /* TComWeightPrediction.cpp in Sources */, 1256 784870941B0B63230098FD5A /* TComRdCostWeightPrediction.cpp in Sources */, 1257 784870831B0B63230098FD5A /* ContextModel3DBuffer.cpp in Sources */, 1258 7848708E1B0B63230098FD5A /* TComPic.cpp in Sources */, 1259 784870961B0B63230098FD5A /* TComSampleAdaptiveOffset.cpp in Sources */, 1260 784870851B0B63230098FD5A /* SEI.cpp in Sources */, 1261 784870971B0B63230098FD5A /* TComSlice.cpp in Sources */, 1262 784870981B0B63230098FD5A /* TComTrQuant.cpp in Sources */, 1263 7848708D1B0B63230098FD5A /* TComPattern.cpp in Sources */, 1264 784870891B0B63230098FD5A /* TComDataCU.cpp in Sources */, 1265 7848708B1B0B63230098FD5A /* TComLoopFilter.cpp in Sources */, 1266 7848708F1B0B63230098FD5A /* TComPicSym.cpp in Sources */, 1267 784870991B0B63230098FD5A /* TComTU.cpp in Sources */, 1268 784870861B0B63230098FD5A /* TComBitStream.cpp in Sources */, 1269 784870951B0B63230098FD5A /* TComRom.cpp in Sources */, 1270 784870911B0B63230098FD5A /* TComPicYuvMD5.cpp in Sources */, 1271 784870821B0B63230098FD5A /* ContextModel.cpp in Sources */, 1272 784870841B0B63230098FD5A /* Debug.cpp in Sources */, 1273 7848708C1B0B63230098FD5A /* TComMotionInfo.cpp in Sources */, 1274 784870921B0B63230098FD5A /* TComPrediction.cpp in Sources */, 1275 784870901B0B63230098FD5A /* TComPicYuv.cpp in Sources */, 1272 1276 ); 1273 1277 runOnlyForDeploymentPostprocessing = 0; … … 1277 1281 buildActionMask = 2147483647; 1278 1282 files = ( 1279 78 7463B817D5DEE80040CFC7 /* AnnexBread.cpp in Sources */,1280 78 7463B917D5DEE80040CFC7 /* NALread.cpp in Sources */,1281 78 7463BA17D5DEE80040CFC7/* SEIread.cpp in Sources */,1282 78 7463BB17D5DEE80040CFC7 /* SyntaxElementParser.cpp in Sources */,1283 78 7463BC17D5DEE80040CFC7 /* TDecBinCoderCABAC.cpp in Sources */,1284 78 7463BD17D5DEE80040CFC7 /* TDecCAVLC.cpp in Sources */,1285 78 7463BE17D5DEE80040CFC7/* TDecCu.cpp in Sources */,1286 78 7463BF17D5DEE80040CFC7 /* TDecEntropy.cpp in Sources */,1287 78 7463C017D5DEE80040CFC7 /* TDecGop.cpp in Sources */,1288 78 7463C117D5DEE80040CFC7 /* TDecSbac.cpp in Sources */,1289 78 7463C217D5DEE80040CFC7 /* TDecSlice.cpp in Sources */,1290 78 7463C317D5DEE80040CFC7 /* TDecTop.cpp in Sources */,1283 784870A61B0B63360098FD5A /* TDecSbac.cpp in Sources */, 1284 784870A51B0B63360098FD5A /* TDecGop.cpp in Sources */, 1285 7848709F1B0B63360098FD5A /* SEIread.cpp in Sources */, 1286 784870A81B0B63360098FD5A /* TDecTop.cpp in Sources */, 1287 784870A41B0B63360098FD5A /* TDecEntropy.cpp in Sources */, 1288 7848709D1B0B63360098FD5A /* AnnexBread.cpp in Sources */, 1289 784870A31B0B63360098FD5A /* TDecCu.cpp in Sources */, 1290 784870A01B0B63360098FD5A /* SyntaxElementParser.cpp in Sources */, 1291 784870A71B0B63360098FD5A /* TDecSlice.cpp in Sources */, 1292 784870A11B0B63360098FD5A /* TDecBinCoderCABAC.cpp in Sources */, 1293 7848709E1B0B63360098FD5A /* NALread.cpp in Sources */, 1294 784870A21B0B63360098FD5A /* TDecCAVLC.cpp in Sources */, 1291 1295 ); 1292 1296 runOnlyForDeploymentPostprocessing = 0; … … 1296 1300 buildActionMask = 2147483647; 1297 1301 files = ( 1298 78 74638117D5DDA60040CFC7 /* NALwrite.cpp in Sources */,1299 78 74638217D5DDA60040CFC7 /* SEIwrite.cpp in Sources */,1300 78 74638317D5DDA60040CFC7 /* SyntaxElementWriter.cpp in Sources */,1301 78 74638417D5DDA60040CFC7 /* TEncAnalyze.cpp in Sources */,1302 78 74638517D5DDA60040CFC7 /* TEncBinCoderCABAC.cpp in Sources */,1303 78 74638617D5DDA60040CFC7 /* TEncBinCoderCABACCounter.cpp in Sources */,1304 78 74638717D5DDA60040CFC7 /* TEncCavlc.cpp in Sources */,1305 78 74638817D5DDA60040CFC7 /* TEncCu.cpp in Sources */,1306 78 74638917D5DDA60040CFC7 /* TEncEntropy.cpp in Sources */,1307 78 74638A17D5DDA60040CFC7 /* TEncGOP.cpp in Sources */,1308 78 74638B17D5DDA60040CFC7 /* TEncPic.cpp in Sources */,1309 78 74638C17D5DDA60040CFC7/* TEncPreanalyzer.cpp in Sources */,1310 78 74638D17D5DDA60040CFC7 /* TEncRateCtrl.cpp in Sources */,1311 78 74638E17D5DDA60040CFC7 /* TEncSampleAdaptiveOffset.cpp in Sources */,1312 78 74638F17D5DDA60040CFC7 /* TEncSbac.cpp in Sources */,1313 78 74639017D5DDA60040CFC7 /* TEncSearch.cpp in Sources */,1314 78 74639117D5DDA60040CFC7 /* TEncSlice.cpp in Sources */,1315 78 74639217D5DDA60040CFC7 /* TEncTop.cpp in Sources */,1316 78 74639317D5DDA60040CFC7 /* WeightPredAnalysis.cpp in Sources */,1302 784870AF1B0B634A0098FD5A /* TEncCavlc.cpp in Sources */, 1303 784870AD1B0B634A0098FD5A /* TEncBinCoderCABAC.cpp in Sources */, 1304 784870B61B0B634A0098FD5A /* TEncSampleAdaptiveOffset.cpp in Sources */, 1305 784870B11B0B634A0098FD5A /* TEncEntropy.cpp in Sources */, 1306 784870AA1B0B634A0098FD5A /* SEIEncoder.cpp in Sources */, 1307 784870B71B0B634A0098FD5A /* TEncSbac.cpp in Sources */, 1308 784870A91B0B634A0098FD5A /* NALwrite.cpp in Sources */, 1309 784870B51B0B634A0098FD5A /* TEncRateCtrl.cpp in Sources */, 1310 784870AE1B0B634A0098FD5A /* TEncBinCoderCABACCounter.cpp in Sources */, 1311 784870B31B0B634A0098FD5A /* TEncPic.cpp in Sources */, 1312 784870BB1B0B634A0098FD5A /* WeightPredAnalysis.cpp in Sources */, 1313 784870B41B0B634A0098FD5A /* TEncPreanalyzer.cpp in Sources */, 1314 784870BA1B0B634A0098FD5A /* TEncTop.cpp in Sources */, 1315 784870B21B0B634A0098FD5A /* TEncGOP.cpp in Sources */, 1316 784870B01B0B634A0098FD5A /* TEncCu.cpp in Sources */, 1317 784870AC1B0B634A0098FD5A /* SyntaxElementWriter.cpp in Sources */, 1318 784870AB1B0B634A0098FD5A /* SEIwrite.cpp in Sources */, 1319 784870B81B0B634A0098FD5A /* TEncSearch.cpp in Sources */, 1320 784870B91B0B634A0098FD5A /* TEncSlice.cpp in Sources */, 1317 1321 ); 1318 1322 runOnlyForDeploymentPostprocessing = 0; … … 1322 1326 buildActionMask = 2147483647; 1323 1327 files = ( 1324 78 7463AC17D5DE8A0040CFC7/* TVideoIOYuv.cpp in Sources */,1328 784870C51B0B63610098FD5A /* TVideoIOYuv.cpp in Sources */, 1325 1329 ); 1326 1330 runOnlyForDeploymentPostprocessing = 0; … … 1330 1334 buildActionMask = 2147483647; 1331 1335 files = ( 1332 78 74637E17D5DD900040CFC7 /* encmain.cpp in Sources */,1333 78 74637F17D5DD900040CFC7 /* TAppEncCfg.cpp in Sources */,1334 78 74638017D5DD900040CFC7 /* TAppEncTop.cpp in Sources */,1336 784870781B0B62D80098FD5A /* TAppEncCfg.cpp in Sources */, 1337 784870791B0B62D80098FD5A /* TAppEncTop.cpp in Sources */, 1338 784870771B0B62D80098FD5A /* encmain.cpp in Sources */, 1335 1339 ); 1336 1340 runOnlyForDeploymentPostprocessing = 0; … … 1340 1344 buildActionMask = 2147483647; 1341 1345 files = ( 1342 78 7463C417D5DEFB0040CFC7 /* decmain.cpp in Sources */,1343 78 7463C517D5DEFB0040CFC7 /* TAppDecCfg.cpp in Sources */,1344 78 7463C617D5DEFB0040CFC7/* TAppDecTop.cpp in Sources */,1346 784870751B0B62D10098FD5A /* TAppDecCfg.cpp in Sources */, 1347 784870741B0B62D10098FD5A /* decmain.cpp in Sources */, 1348 784870761B0B62D10098FD5A /* TAppDecTop.cpp in Sources */, 1345 1349 ); 1346 1350 runOnlyForDeploymentPostprocessing = 0; … … 1350 1354 buildActionMask = 2147483647; 1351 1355 files = ( 1352 78 7463CD17D5DF220040CFC7/* TExtrTop.cpp in Sources */,1356 784870BC1B0B63520098FD5A /* TExtrTop.cpp in Sources */, 1353 1357 ); 1354 1358 runOnlyForDeploymentPostprocessing = 0; … … 1358 1362 buildActionMask = 2147483647; 1359 1363 files = ( 1360 78 7463C717D5DF080040CFC7 /* extrmain.cpp in Sources */,1361 78 7463C817D5DF080040CFC7 /* TAppExtrCfg.cpp in Sources */,1362 78 7463C917D5DF080040CFC7/* TAppExtrTop.cpp in Sources */,1364 7848707B1B0B62E10098FD5A /* TAppExtrCfg.cpp in Sources */, 1365 7848707A1B0B62E10098FD5A /* extrmain.cpp in Sources */, 1366 7848707C1B0B62E10098FD5A /* TAppExtrTop.cpp in Sources */, 1363 1367 ); 1364 1368 runOnlyForDeploymentPostprocessing = 0; … … 1368 1372 buildActionMask = 2147483647; 1369 1373 files = ( 1370 78 7463AD17D5DE980040CFC7 /* TRenFilter.cpp in Sources */,1371 78 7463AE17D5DE980040CFC7 /* TRenImage.cpp in Sources */,1372 78 7463AF17D5DE980040CFC7 /* TRenImagePlane.cpp in Sources */,1373 78 7463B017D5DE980040CFC7 /* TRenInterpFilter.cpp in Sources */,1374 78 7463B117D5DE9D0040CFC7 /* TRenModel.cpp in Sources */,1375 78 7463B217D5DE9D0040CFC7 /* TRenModSetupStrParser.cpp in Sources */,1376 78 7463B317D5DE9D0040CFC7 /* TRenSingleModel.cpp in Sources */,1377 78 7463B417D5DE9D0040CFC7 /* TRenTop.cpp in Sources */,1374 784870C41B0B635C0098FD5A /* TRenTop.cpp in Sources */, 1375 784870C31B0B635C0098FD5A /* TRenSingleModel.cpp in Sources */, 1376 784870BE1B0B635C0098FD5A /* TRenImage.cpp in Sources */, 1377 784870C11B0B635C0098FD5A /* TRenModel.cpp in Sources */, 1378 784870C21B0B635C0098FD5A /* TRenModSetupStrParser.cpp in Sources */, 1379 784870BD1B0B635C0098FD5A /* TRenFilter.cpp in Sources */, 1380 784870C01B0B635C0098FD5A /* TRenInterpFilter.cpp in Sources */, 1381 784870BF1B0B635C0098FD5A /* TRenImagePlane.cpp in Sources */, 1378 1382 ); 1379 1383 runOnlyForDeploymentPostprocessing = 0; … … 1383 1387 buildActionMask = 2147483647; 1384 1388 files = ( 1385 78 7463CA17D5DF0E0040CFC7 /* RendererMain.cpp in Sources */,1386 78 7463CB17D5DF0E0040CFC7 /* TAppRendererCfg.cpp in Sources */,1387 78 7463CC17D5DF0E0040CFC7/* TAppRendererTop.cpp in Sources */,1389 7848707E1B0B62E80098FD5A /* TAppRendererCfg.cpp in Sources */, 1390 7848707D1B0B62E80098FD5A /* RendererMain.cpp in Sources */, 1391 7848707F1B0B62E80098FD5A /* TAppRendererTop.cpp in Sources */, 1388 1392 ); 1389 1393 runOnlyForDeploymentPostprocessing = 0; … … 1393 1397 buildActionMask = 2147483647; 1394 1398 files = ( 1395 78 7463B517D5DEAF0040CFC7 /* program_options_lite.cpp in Sources */,1396 78 7463B617D5DEAF0040CFC7 /* TAppComCamPara.cpp in Sources */,1399 784870811B0B63040098FD5A /* TAppComCamPara.cpp in Sources */, 1400 784870801B0B63040098FD5A /* program_options_lite.cpp in Sources */, 1397 1401 ); 1398 1402 runOnlyForDeploymentPostprocessing = 0; … … 1521 1525 GCC_WARN_UNUSED_VARIABLE = YES; 1522 1526 HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/source/Lib/"; 1523 MACOSX_DEPLOYMENT_TARGET = 10.7;1524 1527 ONLY_ACTIVE_ARCH = YES; 1525 SDKROOT = macosx; 1528 OTHER_CPLUSPLUSFLAGS = ( 1529 "$(OTHER_CFLAGS)", 1530 "-DDEBUG", 1531 ); 1526 1532 }; 1527 1533 name = Debug; … … 1532 1538 GCC_OPTIMIZATION_LEVEL = s; 1533 1539 GCC_WARN_ABOUT_RETURN_TYPE = YES; 1534 GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;1535 1540 GCC_WARN_UNUSED_VARIABLE = YES; 1536 1541 HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/source/Lib/"; 1537 MACOSX_DEPLOYMENT_TARGET = 10.7;1538 SDKROOT = macosx;1539 1542 }; 1540 1543 name = Release; … … 1543 1546 isa = XCBuildConfiguration; 1544 1547 buildSettings = { 1545 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1548 COMBINE_HIDPI_IMAGES = YES; 1546 1549 INSTALL_PATH = /usr/local/lib; 1547 1550 PRODUCT_NAME = TLibCommon; … … 1552 1555 isa = XCBuildConfiguration; 1553 1556 buildSettings = { 1554 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1557 COMBINE_HIDPI_IMAGES = YES; 1555 1558 INSTALL_PATH = /usr/local/lib; 1556 1559 PRODUCT_NAME = TLibCommon; … … 1561 1564 isa = XCBuildConfiguration; 1562 1565 buildSettings = { 1563 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1566 COMBINE_HIDPI_IMAGES = YES; 1564 1567 INSTALL_PATH = /usr/local/lib; 1565 1568 PRODUCT_NAME = TLibDecoder; … … 1570 1573 isa = XCBuildConfiguration; 1571 1574 buildSettings = { 1572 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1575 COMBINE_HIDPI_IMAGES = YES; 1573 1576 INSTALL_PATH = /usr/local/lib; 1574 1577 PRODUCT_NAME = TLibDecoder; … … 1579 1582 isa = XCBuildConfiguration; 1580 1583 buildSettings = { 1581 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1584 COMBINE_HIDPI_IMAGES = YES; 1582 1585 INSTALL_PATH = /usr/local/lib; 1583 1586 PRODUCT_NAME = TLibEncoder; … … 1588 1591 isa = XCBuildConfiguration; 1589 1592 buildSettings = { 1590 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1593 COMBINE_HIDPI_IMAGES = YES; 1591 1594 INSTALL_PATH = /usr/local/lib; 1592 1595 PRODUCT_NAME = TLibEncoder; … … 1597 1600 isa = XCBuildConfiguration; 1598 1601 buildSettings = { 1599 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1602 COMBINE_HIDPI_IMAGES = YES; 1600 1603 INSTALL_PATH = /usr/local/lib; 1601 1604 PRODUCT_NAME = TLibVideoIO; … … 1606 1609 isa = XCBuildConfiguration; 1607 1610 buildSettings = { 1608 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1611 COMBINE_HIDPI_IMAGES = YES; 1609 1612 INSTALL_PATH = /usr/local/lib; 1610 1613 PRODUCT_NAME = TLibVideoIO; … … 1615 1618 isa = XCBuildConfiguration; 1616 1619 buildSettings = { 1617 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1618 1620 INSTALL_PATH = /usr/local/bin; 1619 1621 PRODUCT_NAME = TAppEncoder; … … 1624 1626 isa = XCBuildConfiguration; 1625 1627 buildSettings = { 1626 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1627 1628 INSTALL_PATH = /usr/local/bin; 1628 1629 PRODUCT_NAME = TAppEncoder; … … 1633 1634 isa = XCBuildConfiguration; 1634 1635 buildSettings = { 1635 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1636 1636 INSTALL_PATH = /usr/local/bin; 1637 1637 PRODUCT_NAME = TAppDecoder; … … 1642 1642 isa = XCBuildConfiguration; 1643 1643 buildSettings = { 1644 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1645 1644 INSTALL_PATH = /usr/local/bin; 1646 1645 PRODUCT_NAME = TAppDecoder; … … 1651 1650 isa = XCBuildConfiguration; 1652 1651 buildSettings = { 1653 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1652 COMBINE_HIDPI_IMAGES = YES; 1654 1653 INSTALL_PATH = /usr/local/lib; 1655 1654 PRODUCT_NAME = TLibExtractor; … … 1660 1659 isa = XCBuildConfiguration; 1661 1660 buildSettings = { 1662 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1661 COMBINE_HIDPI_IMAGES = YES; 1663 1662 INSTALL_PATH = /usr/local/lib; 1664 1663 PRODUCT_NAME = TLibExtractor; … … 1669 1668 isa = XCBuildConfiguration; 1670 1669 buildSettings = { 1671 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1672 1670 INSTALL_PATH = /usr/local/bin; 1673 1671 PRODUCT_NAME = TAppExtractor; … … 1678 1676 isa = XCBuildConfiguration; 1679 1677 buildSettings = { 1680 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1681 1678 INSTALL_PATH = /usr/local/bin; 1682 1679 PRODUCT_NAME = TAppExtractor; … … 1687 1684 isa = XCBuildConfiguration; 1688 1685 buildSettings = { 1689 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1686 COMBINE_HIDPI_IMAGES = YES; 1690 1687 INSTALL_PATH = /usr/local/lib; 1691 1688 PRODUCT_NAME = TLibRenderer; … … 1696 1693 isa = XCBuildConfiguration; 1697 1694 buildSettings = { 1698 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1695 COMBINE_HIDPI_IMAGES = YES; 1699 1696 INSTALL_PATH = /usr/local/lib; 1700 1697 PRODUCT_NAME = TLibRenderer; … … 1705 1702 isa = XCBuildConfiguration; 1706 1703 buildSettings = { 1707 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1708 1704 INSTALL_PATH = /usr/local/bin; 1709 1705 PRODUCT_NAME = TAppRenderer; … … 1714 1710 isa = XCBuildConfiguration; 1715 1711 buildSettings = { 1716 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1717 1712 INSTALL_PATH = /usr/local/bin; 1718 1713 PRODUCT_NAME = TAppRenderer; … … 1723 1718 isa = XCBuildConfiguration; 1724 1719 buildSettings = { 1725 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1720 COMBINE_HIDPI_IMAGES = YES; 1726 1721 INSTALL_PATH = /usr/local/lib; 1727 1722 PRODUCT_NAME = TAppCommon; … … 1732 1727 isa = XCBuildConfiguration; 1733 1728 buildSettings = { 1734 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1729 COMBINE_HIDPI_IMAGES = YES; 1735 1730 INSTALL_PATH = /usr/local/lib; 1736 1731 PRODUCT_NAME = TAppCommon; … … 1741 1736 isa = XCBuildConfiguration; 1742 1737 buildSettings = { 1743 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1744 1738 PRODUCT_NAME = "$(TARGET_NAME)"; 1745 1739 }; … … 1749 1743 isa = XCBuildConfiguration; 1750 1744 buildSettings = { 1751 GCC_VERSION = com.apple.compilers.llvm.clang.1_0;1752 1745 PRODUCT_NAME = "$(TARGET_NAME)"; 1753 1746 }; -
branches/HTM-14.1-update-dev2/source/App/TAppEncoder/TAppEncCfg.cpp
r1200 r1274 2287 2287 2288 2288 dimBitOffset[ 0 ] = 0; 2289 for (Int j = 1; j <= (( Int) m_dimIds.size() - m_splittingFlag? 1 : 0); j++ )2289 for (Int j = 1; j <= (((Int) m_dimIds.size() - m_splittingFlag) ? 1 : 0); j++ ) 2290 2290 { 2291 2291 dimBitOffset[ j ] = dimBitOffset[ j - 1 ] + m_dimensionIdLen[ j - 1]; -
branches/HTM-14.1-update-dev2/source/App/TAppRenderer/TAppRendererCfg.cpp
r1200 r1274 306 306 307 307 Int iNumNonNULL; 308 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfInputViews) && m_pchDepthInputFileList[iNumNonNULL]; iNumNonNULL++) ; xConfirmPara( iNumNonNULL < m_iNumberOfInputViews, "Number of DepthInputFiles must be greater than or equal to number of BaseViewNumbers" );309 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfInputViews) && m_pchVideoInputFileList[iNumNonNULL]; iNumNonNULL++) ; xConfirmPara( iNumNonNULL < m_iNumberOfInputViews, "Number of DepthInputFiles must be greater than or equal to number of BaseViewNumbers" );308 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfInputViews) && m_pchDepthInputFileList[iNumNonNULL]; iNumNonNULL++) {}; xConfirmPara( iNumNonNULL < m_iNumberOfInputViews, "Number of DepthInputFiles must be greater than or equal to number of BaseViewNumbers" ); 309 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfInputViews) && m_pchVideoInputFileList[iNumNonNULL]; iNumNonNULL++) {}; xConfirmPara( iNumNonNULL < m_iNumberOfInputViews, "Number of DepthInputFiles must be greater than or equal to number of BaseViewNumbers" ); 310 310 311 311 312 312 if ( !m_bSweep ) 313 313 { 314 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfOutputViews) && m_pchSynthOutputFileList[iNumNonNULL]; iNumNonNULL++); xConfirmPara( iNumNonNULL < m_iNumberOfOutputViews, "Number of SynthOutputFiles must be greater than or equal to number of SynthViewNumbers" );314 for (iNumNonNULL = 0; (iNumNonNULL < m_iNumberOfOutputViews) && m_pchSynthOutputFileList[iNumNonNULL]; iNumNonNULL++) {}; xConfirmPara( iNumNonNULL < m_iNumberOfOutputViews, "Number of SynthOutputFiles must be greater than or equal to number of SynthViewNumbers" ); 315 315 } 316 316 else -
branches/HTM-14.1-update-dev2/source/Lib/TAppCommon/TAppComCamPara.cpp
r1200 r1274 1373 1373 Int iSourceViewNum = m_aiBaseViews[ iViewIdx ]; 1374 1374 Double dBaseLine = 0.0; 1375 Double dFL1 , dCS1, dCP1, dZN1, dZF1;1376 Bool bInterpolated ;1377 double dPos[3] ;1375 Double dFL1 = 1.0, dCS1 = 1.0, dCP1 = 1.0, dZN1 = 1.0, dZF1 = 1.0; 1376 Bool bInterpolated = false; 1377 double dPos[3] = {0.0, 0.0, 0.0}; 1378 1378 1379 1379 if( m_iNumberOfBaseViews == 3 ) -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/CommonDef.h
r1200 r1274 363 363 #endif 364 364 365 #if H_3D_IV_MERGE365 #if NH_3D_MLC || NH_3D_ARP 366 366 #define MRG_MAX_NUM_CANDS_MEM (MRG_MAX_NUM_CANDS+1) // one extra for inter-view motion prediction 367 367 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/ContextTables.h
r1225 r1274 162 162 #define NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX 1 163 163 164 #if H_3D_ARP164 #if NH_3D_ARP 165 165 #define NUM_ARPW_CTX 3 ///< number of context models for weighting factor index used by advanced residual prediction 166 166 #endif … … 188 188 #define NUM_SDC_FLAG_CTX 1 ///< number of context 189 189 #endif 190 #if H_3D_DBBP190 #if NH_3D_DBBP 191 191 #define DBBP_NUM_FLAG_CTX 1 192 192 #endif … … 542 542 //! \} 543 543 544 #if H_3D_ARP544 #if NH_3D_ARP 545 545 static const UChar 546 546 INIT_ARPW[3][NUM_ARPW_CTX] = … … 629 629 #endif 630 630 631 #if H_3D_DBBP631 #if NH_3D_DBBP 632 632 static const UChar INIT_DBBP_FLAG[3][DBBP_NUM_FLAG_CTX] = 633 633 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComCodingStatistics.h
r1225 r1274 81 81 STATS__CABAC_BITS__ESCAPE_BITS, 82 82 83 #if NH_3D_DBBP 84 STATS__CABAC_BITS__DBBP_FLAG, 85 #endif 86 #if NH_3D_ARP 87 STATS__CABAC_BITS__ARP_FLAG, 88 #endif 83 89 STATS__CABAC_BITS__SAO, 84 90 STATS__CABAC_TRM_BITS, … … 134 140 "CABAC_BITS__SIGN_BIT", 135 141 "CABAC_BITS__ESCAPE_BITS", 142 #if NH_3D_DBBP 143 "CABAC_BITS__DBBP_FLAG", 144 #endif 136 145 "CABAC_BITS__SAO", 137 146 "CABAC_TRM_BITS", -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.cpp
r1226 r1274 125 125 m_bDecSubCu = false; 126 126 127 #if H_3D_NBDV127 #if NH_3D_NBDV 128 128 m_pDvInfo = NULL; 129 129 #endif 130 #if H_3D_VSP130 #if NH_3D_VSP 131 131 m_piVSPFlag = NULL; 132 132 #endif 133 #if H_3D_SPIVMP133 #if NH_3D_SPIVMP 134 134 m_pbSPIVMPFlag = NULL; 135 135 #endif 136 #if H_3D_ARP136 #if NH_3D_ARP 137 137 m_puhARPW = NULL; 138 138 #endif … … 142 142 #if H_3D_INTER_SDC 143 143 #endif 144 #if H_3D_DBBP144 #if NH_3D_DBBP 145 145 m_pbDBBPFlag = NULL; 146 146 #endif … … 185 185 m_pbMergeFlag = (Bool* )xMalloc(Bool, uiNumPartition); 186 186 m_puhMergeIndex = (UChar* )xMalloc(UChar, uiNumPartition); 187 #if H_3D_VSP187 #if NH_3D_VSP 188 188 m_piVSPFlag = (Char* )xMalloc(Char, uiNumPartition); 189 189 #endif 190 #if H_3D_SPIVMP190 #if NH_3D_SPIVMP 191 191 m_pbSPIVMPFlag = (Bool* )xMalloc(Bool, uiNumPartition); 192 192 #endif … … 208 208 } 209 209 210 #if H_3D_NBDV210 #if NH_3D_NBDV 211 211 m_pDvInfo = (DisInfo* )xMalloc(DisInfo, uiNumPartition); 212 212 #endif … … 249 249 } 250 250 251 #if H_3D_ARP252 m_puhARPW = new UChar[ uiNumPartition];251 #if NH_3D_ARP 252 m_puhARPW = (UChar* )xMalloc(UChar, uiNumPartition); 253 253 #endif 254 254 #if NH_3D_IC … … 273 273 #endif 274 274 #endif 275 #if H_3D_DBBP275 #if NH_3D_DBBP 276 276 m_pbDBBPFlag = (Bool* )xMalloc(Bool, uiNumPartition); 277 277 #endif … … 372 372 } 373 373 374 #if H_3D_VSP 375 if ( m_piVSPFlag ) { xFree(m_piVSPFlag); m_piVSPFlag = NULL; } 376 #endif 377 #if H_3D_SPIVMP 374 #if NH_3D_VSP 375 if ( m_piVSPFlag ) 376 { 377 xFree(m_piVSPFlag); 378 m_piVSPFlag = NULL; 379 } 380 #endif 381 #if NH_3D_SPIVMP 378 382 if ( m_pbSPIVMPFlag ) { xFree(m_pbSPIVMPFlag); m_pbSPIVMPFlag = NULL; } 379 383 #endif … … 463 467 m_acCUMvField[rpl].destroy(); 464 468 } 465 #if H_3D_NBDV469 #if NH_3D_NBDV 466 470 if ( m_pDvInfo ) { xFree(m_pDvInfo); m_pDvInfo = NULL; } 467 471 #endif 468 472 469 473 470 #if H_3D_ARP471 if ( m_puhARPW ) { delete[] m_puhARPW;m_puhARPW = NULL; }474 #if NH_3D_ARP 475 if ( m_puhARPW ) { xFree(m_puhARPW); m_puhARPW = NULL; } 472 476 #endif 473 477 #if NH_3D_IC … … 493 497 #endif 494 498 #endif 495 #if H_3D_DBBP499 #if NH_3D_DBBP 496 500 if ( m_pbDBBPFlag ) { xFree(m_pbDBBPFlag); m_pbDBBPFlag = NULL; } 497 501 #endif … … 598 602 memset( m_puhHeight , maxCUHeight, m_uiNumPartition * sizeof( *m_puhHeight ) ); 599 603 600 #if H_3D_ARP601 m_puhARPW [ui] = pcFrom->getARPW( ui );602 #endif603 604 #if NH_3D_IC 604 605 memset( m_pbICFlag , false, m_uiNumPartition * sizeof( *m_pbICFlag ) ); 605 606 #endif 606 607 607 for(UInt i=0; i<NUM_REF_PIC_LIST_01; i++) 608 608 { … … 623 623 memset( m_puhMergeIndex , 0, m_uiNumPartition * sizeof( *m_puhMergeIndex ) ); 624 624 625 #if H_3D_VSP626 m_piVSPFlag[ui] = pcFrom->m_piVSPFlag[ui];627 #endif 628 #if H_3D_SPIVMP629 m_pbSPIVMPFlag[ui] = pcFrom->m_pbSPIVMPFlag[ui];625 #if NH_3D_VSP 626 memset( m_piVSPFlag , 0, m_uiNumPartition * sizeof( *m_piVSPFlag ) ); 627 #endif 628 #if NH_3D_SPIVMP 629 memset( m_pbSPIVMPFlag , 0, m_uiNumPartition * sizeof( *m_pbSPIVMPFlag ) ); 630 630 #endif 631 631 #if H_3D_DIM_SDC 632 632 m_pbSDCFlag[ui] = pcFrom->m_pbSDCFlag[ui]; 633 633 #endif 634 #if H_3D_DBBP635 m_pbDBBPFlag[ui] = pcFrom->m_pbDBBPFlag[ui];634 #if NH_3D_DBBP 635 memset( m_pbDBBPFlag , false, m_uiNumPartition * sizeof( *m_pbDBBPFlag )); 636 636 #endif 637 637 #if H_3D … … 639 639 memset( m_uiDISType + firstElement, 0, numElements * sizeof( *m_uiDISType) ); 640 640 #endif 641 #if H_3D_VSP642 memset( m_piVSPFlag + firstElement, 0, numElements * sizeof( *m_piVSPFlag ) );643 #endif644 #if H_3D_SPIVMP645 memset( m_pbSPIVMPFlag + firstElement, 0, numElements * sizeof( *m_pbSPIVMPFlag ) );646 #endif647 641 648 642 for (UInt ch=0; ch<MAX_NUM_CHANNEL_TYPE; ch++) … … 651 645 } 652 646 653 #if H_3D_ARP654 memset( m_puhARPW + firstElement, 0, numElements * sizeof( UChar) );647 #if NH_3D_ARP 648 memset( m_puhARPW , 0, m_uiNumPartition * sizeof( *m_puhARPW ) ); 655 649 #endif 656 650 … … 674 668 m_apDmmPredictor[0] = 0; 675 669 m_apDmmPredictor[1] = 0; 676 #endif677 #if H_3D_DBBP678 memset( m_pbDBBPFlag + firstElement, false, numElements * sizeof( *m_pbDBBPFlag ) );679 670 #endif 680 671 … … 791 782 m_pbMergeFlag[ui] = 0; 792 783 m_puhMergeIndex[ui] = 0; 793 #if H_3D_VSP794 m_piVSPFlag[ui]= 0;795 #endif 796 #if H_3D_SPIVMP797 784 #if NH_3D_VSP 785 m_piVSPFlag[ui] = 0; 786 #endif 787 #if NH_3D_SPIVMP 788 m_pbSPIVMPFlag[ui] = 0; 798 789 #endif 799 790 … … 808 799 m_puhCbf[comp][ui] = 0; 809 800 } 810 #if H_3D_ARP801 #if NH_3D_ARP 811 802 m_puhARPW[ui] = 0; 812 803 #endif … … 836 827 m_apDmmPredictor[1] = 0; 837 828 #endif 838 #if H_3D_DBBP829 #if NH_3D_DBBP 839 830 m_pbDBBPFlag[ui] = false; 840 831 #endif … … 892 883 memset( m_pbMergeFlag, 0, iSizeInBool ); 893 884 memset( m_puhMergeIndex, 0, iSizeInUchar ); 894 #if H_3D_VSP885 #if NH_3D_VSP 895 886 memset( m_piVSPFlag, 0, sizeof( Char ) * m_uiNumPartition ); 896 887 #endif 897 #if H_3D_SPIVMP888 #if NH_3D_SPIVMP 898 889 memset( m_pbSPIVMPFlag, 0, sizeof( Bool ) * m_uiNumPartition ); 899 890 #endif … … 914 905 memset( m_explicitRdpcmMode[comp], NUMBER_OF_RDPCM_MODES, iSizeInUchar ); 915 906 } 916 #if H_3D_ARP917 memset( m_puhARPW, 0, iSizeInUchar );918 #endif919 907 920 908 memset( m_puhDepth, uiDepth, iSizeInUchar ); … … 922 910 memset( m_puhHeight, uhHeight, iSizeInUchar ); 923 911 memset( m_pbIPCMFlag, 0, iSizeInBool ); 912 #if NH_3D_ARP 913 memset( m_puhARPW, 0, iSizeInUchar ); 914 #endif 924 915 #if NH_3D_IC 925 916 memset( m_pbICFlag, 0, iSizeInBool ); … … 945 936 m_apDmmPredictor[1] = 0; 946 937 #endif 947 #if H_3D_DBBP948 memset( m_pbDBBPFlag, 0, iSizeInBool);938 #if NH_3D_DBBP 939 memset( m_pbDBBPFlag, 0, sizeof(Bool) * m_uiNumPartition ); 949 940 #endif 950 941 … … 972 963 m_uiDISType[ui] = pcCU->getDISType(uiPartOffset+ui); 973 964 #endif 974 #if H_3D_VSP975 m_piVSPFlag[ui]=pcCU->m_piVSPFlag[uiPartOffset+ui];976 977 #endif 978 #if H_3D_SPIVMP979 980 #endif 981 #if H_3D_ARP965 #if NH_3D_VSP 966 m_piVSPFlag[ui] = pcCU->m_piVSPFlag[uiPartOffset+ui]; 967 m_pDvInfo[ ui ] = pcCU->m_pDvInfo[uiPartOffset+ui]; 968 #endif 969 #if NH_3D_SPIVMP 970 m_pbSPIVMPFlag[ui]=pcCU->m_pbSPIVMPFlag[uiPartOffset+ui]; 971 #endif 972 #if NH_3D_ARP 982 973 m_puhARPW [ui] = pcCU->getARPW( uiPartOffset+ui ); 983 974 #endif … … 1003 994 #endif 1004 995 #endif 1005 #if H_3D_DBBP996 #if NH_3D_DBBP 1006 997 m_pbDBBPFlag[ui]=pcCU->m_pbDBBPFlag[uiPartOffset+ui]; 1007 998 #endif … … 1074 1065 m_pePredMode=pcCU->getPredictionMode() + uiPart; 1075 1066 m_CUTransquantBypass = pcCU->getCUTransquantBypass()+uiPart; 1076 #if H_3D_NBDV1067 #if NH_3D_NBDV 1077 1068 m_pDvInfo = pcCU->getDvInfo() + uiPart; 1078 1069 #endif … … 1080 1071 m_pbMergeFlag = pcCU->getMergeFlag() + uiPart; 1081 1072 m_puhMergeIndex = pcCU->getMergeIndex() + uiPart; 1082 #if H_3D_VSP1073 #if NH_3D_VSP 1083 1074 m_piVSPFlag = pcCU->getVSPFlag() + uiPart; 1084 1075 #endif 1085 #if H_3D_SPIVMP1076 #if NH_3D_SPIVMP 1086 1077 m_pbSPIVMPFlag = pcCU->getSPIVMPFlag() + uiPart; 1087 1078 #endif 1088 #if H_3D_ARP1079 #if NH_3D_ARP 1089 1080 m_puhARPW = pcCU->getARPW() + uiPart; 1090 1081 #endif … … 1126 1117 #endif 1127 1118 #endif 1128 #if H_3D_DBBP1119 #if NH_3D_DBBP 1129 1120 m_pbDBBPFlag = pcCU->getDBBPFlag() + uiPart; 1130 1121 #endif … … 1173 1164 } 1174 1165 1175 #if H_3D_NBDV1166 #if NH_3D_NBDV 1176 1167 Void TComDataCU::copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx) 1177 1168 { … … 1182 1173 // Copy inter prediction info from the biggest CU 1183 1174 Void TComDataCU::copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 1184 #if H_3D_NBDV1175 #if NH_3D_NBDV 1185 1176 , Bool bNBDV 1186 1177 #endif … … 1213 1204 1214 1205 m_pePartSize = pcCU->getPartitionSize () + uiAbsPartIdx; 1215 #if H_3D_NBDV1206 #if NH_3D_NBDV 1216 1207 if(bNBDV == true) 1217 1208 { … … 1234 1225 m_pbMergeFlag = pcCU->getMergeFlag() + uiAbsPartIdx; 1235 1226 m_puhMergeIndex = pcCU->getMergeIndex() + uiAbsPartIdx; 1236 #if H_3D_VSP1227 #if NH_3D_VSP 1237 1228 m_piVSPFlag = pcCU->getVSPFlag() + uiAbsPartIdx; 1238 1229 m_pDvInfo = pcCU->getDvInfo() + uiAbsPartIdx; 1239 1230 #endif 1240 #if H_3D_SPIVMP1231 #if NH_3D_SPIVMP 1241 1232 m_pbSPIVMPFlag = pcCU->getSPIVMPFlag() + uiAbsPartIdx; 1242 1233 #endif … … 1244 1235 m_apiMVPIdx[eRefPicList] = pcCU->getMVPIdx(eRefPicList) + uiAbsPartIdx; 1245 1236 m_apiMVPNum[eRefPicList] = pcCU->getMVPNum(eRefPicList) + uiAbsPartIdx; 1246 #if H_3D_ARP1237 #if NH_3D_ARP 1247 1238 m_puhARPW = pcCU->getARPW() + uiAbsPartIdx; 1248 1239 #endif 1249 #if H_3D_DBBP1240 #if NH_3D_DBBP 1250 1241 m_pbDBBPFlag = pcCU->getDBBPFlag() + uiAbsPartIdx; 1251 1242 #endif 1252 1243 1253 1244 m_acCUMvField[ eRefPicList ].linkToWithOffset( pcCU->getCUMvField(eRefPicList), uiAbsPartIdx ); 1254 #if H_3D_NBDV1245 #if NH_3D_NBDV 1255 1246 } 1256 1247 #endif … … 1292 1283 memcpy( m_pbMergeFlag + uiOffset, pcCU->getMergeFlag(), iSizeInBool ); 1293 1284 memcpy( m_puhMergeIndex + uiOffset, pcCU->getMergeIndex(), iSizeInUchar ); 1294 #if H_3D_VSP1285 #if NH_3D_VSP 1295 1286 memcpy( m_piVSPFlag + uiOffset, pcCU->getVSPFlag(), sizeof( Char ) * uiNumPartition ); 1296 1287 memcpy( m_pDvInfo + uiOffset, pcCU->getDvInfo(), sizeof( *m_pDvInfo ) * uiNumPartition ); 1297 1288 #endif 1298 #if H_3D_SPIVMP1289 #if NH_3D_SPIVMP || NH_3D_DBBP 1299 1290 memcpy( m_pbSPIVMPFlag + uiOffset, pcCU->getSPIVMPFlag(), sizeof( Bool ) * uiNumPartition ); 1300 1291 #endif … … 1333 1324 #endif 1334 1325 #endif 1335 #if H_3D_DBBP1326 #if NH_3D_DBBP 1336 1327 memcpy( m_pbDBBPFlag + uiOffset, pcCU->getDBBPFlag(), iSizeInBool ); 1328 #endif 1329 #if NH_3D_ARP 1330 memcpy( m_puhARPW + uiOffset, pcCU->getARPW(), iSizeInUchar ); 1337 1331 #endif 1338 1332 … … 1376 1370 } 1377 1371 1378 #if H_3D_ARP1379 memcpy( m_puhARPW + uiOffset, pcCU->getARPW(), iSizeInUchar );1380 #endif1381 1372 #if NH_3D_IC 1382 1373 memcpy( m_pbICFlag + uiOffset, pcCU->getICFlag(), iSizeInBool ); … … 1409 1400 1410 1401 memcpy( pCtu->getQP() + m_absZIdxInCtu, m_phQP, sizeInChar ); 1411 #if H_3D_NBDV1412 memcpy( rpcCU->getDvInfo() + m_uiAbsIdxInLCU, m_pDvInfo, sizeof(* m_pDvInfo)* m_uiNumPartition );1402 #if NH_3D_NBDV 1403 memcpy( pCtu->getDvInfo() + m_absZIdxInCtu, m_pDvInfo, sizeof(* m_pDvInfo) * m_uiNumPartition ); 1413 1404 #endif 1414 1405 … … 1419 1410 memcpy( pCtu->getMergeFlag() + m_absZIdxInCtu, m_pbMergeFlag, iSizeInBool ); 1420 1411 memcpy( pCtu->getMergeIndex() + m_absZIdxInCtu, m_puhMergeIndex, iSizeInUchar ); 1421 #if H_3D_VSP 1422 memcpy( rpcCU->getVSPFlag() + m_uiAbsIdxInLCU, m_piVSPFlag, sizeof( Char ) * m_uiNumPartition ); 1423 memcpy( rpcCU->getDvInfo() + m_uiAbsIdxInLCU, m_pDvInfo, sizeof( *m_pDvInfo ) * m_uiNumPartition ); 1424 #endif 1425 #if H_3D_SPIVMP 1426 memcpy( rpcCU->getSPIVMPFlag() + m_uiAbsIdxInLCU, m_pbSPIVMPFlag, sizeof( Bool ) * m_uiNumPartition ); 1412 #if NH_3D_VSP 1413 memcpy( pCtu->getVSPFlag() + m_absZIdxInCtu, m_piVSPFlag, sizeof( Char ) * m_uiNumPartition ); 1414 #endif 1415 #if NH_3D_DBBP 1416 memcpy( pCtu->getDvInfo() + m_absZIdxInCtu, m_pDvInfo, sizeof( *m_pDvInfo ) * m_uiNumPartition ); 1417 #endif 1418 #if NH_3D_SPIVMP 1419 memcpy( pCtu->getSPIVMPFlag() + m_absZIdxInCtu, m_pbSPIVMPFlag, sizeof( Bool ) * m_uiNumPartition ); 1427 1420 #endif 1428 1421 … … 1461 1454 #endif 1462 1455 #endif 1463 #if H_3D_DBBP 1464 memcpy( rpcCU->getDBBPFlag() + m_uiAbsIdxInLCU, m_pbDBBPFlag, iSizeInBool ); 1456 #if NH_3D_DBBP 1457 memcpy( pCtu->getDBBPFlag() + m_absZIdxInCtu, m_pbDBBPFlag, iSizeInBool ); 1458 #endif 1459 #if NH_3D_ARP 1460 memcpy( pCtu->getARPW() + m_absZIdxInCtu, m_puhARPW, iSizeInUchar ); 1465 1461 #endif 1466 1462 … … 1497 1493 } 1498 1494 1499 #if H_3D_ARP1500 memcpy( rpcCU->getARPW() + m_uiAbsIdxInLCU, m_puhARPW, iSizeInUchar );1501 #endif1502 1495 #if NH_3D_IC 1503 1496 memcpy( pCtu->getICFlag() + m_absZIdxInCtu, m_pbICFlag, sizeof( *m_pbICFlag ) * m_uiNumPartition ); 1504 1497 #endif 1505 1506 1498 pCtu->getTotalBins() = m_uiTotalBins; 1507 1499 } … … 1512 1504 #endif 1513 1505 1514 #if H_3D_VSP1515 memcpy( rpcCU->getVSPFlag() + uiPartOffset, m_piVSPFlag, sizeof(Char) * uiQNumPart );1516 #endif1517 1506 #if H_3D_SPIVMP 1518 1507 memcpy( rpcCU->getSPIVMPFlag() + uiPartOffset, m_pbSPIVMPFlag, sizeof(Bool) * uiQNumPart ); … … 1535 1524 memcpy( rpcCU->getSDCSegmentDCOffset(1) + uiPartOffset, m_apSegmentDCOffset[1], sizeof( Pel ) * uiQNumPart); 1536 1525 #endif 1537 #endif1538 #if H_3D_DBBP1539 memcpy( rpcCU->getDBBPFlag() + uiPartOffset, m_pbDBBPFlag, iSizeInBool );1540 #endif1541 #if H_3D_ARP1542 memcpy( rpcCU->getARPW() + uiPartOffset, m_puhARPW, iSizeInUchar );1543 1526 #endif 1544 1527 … … 2093 2076 return uiCtx; 2094 2077 } 2095 #if H_3D_ARP2078 #if NH_3D_ARP 2096 2079 UInt TComDataCU::getCTXARPWFlag( UInt uiAbsPartIdx ) 2097 2080 { … … 2100 2083 UInt uiCtx = 0; 2101 2084 2102 pcTempCU = getPULeft( uiTempPartIdx, m_ uiAbsIdxInLCU+ uiAbsPartIdx );2085 pcTempCU = getPULeft( uiTempPartIdx, m_absZIdxInCtu + uiAbsPartIdx ); 2103 2086 uiCtx = ( pcTempCU ) ? ((pcTempCU->getARPW( uiTempPartIdx )==0)?0:1) : 0; 2104 2087 return uiCtx; 2105 2088 } 2106 2089 #endif 2107 #if H_3D_DBBP2090 #if NH_3D_DBBP 2108 2091 Pel* TComDataCU::getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride) 2109 2092 { 2093 const TComSPS* sps = getSlice()->getSPS(); 2094 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 2095 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 2096 2110 2097 // get coded and reconstructed depth view 2111 2098 TComPicYuv* depthPicYuv = NULL; … … 2113 2100 2114 2101 // DBBP is a texture coding tool 2115 if( getSlice()->getIsDepth() ) 2116 { 2117 return NULL; 2118 } 2102 assert( !getSlice()->getIsDepth() ); 2103 2119 2104 #if H_3D_FCO 2120 2105 TComPic* depthPic = getSlice()->getIvPic(true, getSlice()->getViewIndex() ); … … 2143 2128 depthPicYuv = baseDepthPic->getPicYuvRec(); 2144 2129 depthPicYuv->extendPicBorder(); 2145 uiDepthStride = depthPicYuv->getStride( );2130 uiDepthStride = depthPicYuv->getStride(COMPONENT_Y); 2146 2131 2147 Int iBlkX = ( get Addr() % baseDepthPic->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ getZorderIdxInCU()+uiAbsPartIdx ] ];2148 Int iBlkY = ( get Addr() / baseDepthPic->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ getZorderIdxInCU()+uiAbsPartIdx ] ];2132 Int iBlkX = ( getCtuRsAddr() % baseDepthPic->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ getZorderIdxInCtu()+uiAbsPartIdx ] ]; 2133 Int iBlkY = ( getCtuRsAddr() / baseDepthPic->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ getZorderIdxInCtu()+uiAbsPartIdx ] ]; 2149 2134 2150 Int iPictureWidth = depthPicYuv->getWidth( );2151 Int iPictureHeight = depthPicYuv->getHeight( );2135 Int iPictureWidth = depthPicYuv->getWidth(COMPONENT_Y); 2136 Int iPictureHeight = depthPicYuv->getHeight(COMPONENT_Y); 2152 2137 2153 2138 2154 2139 Bool depthRefineFlag = false; 2155 #if H_3D_NBDV_REF2156 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( 2157 #endif // H_3D_NBDV_REF2140 #if NH_3D_NBDV_REF 2141 depthRefineFlag = m_pcSlice->getDepthRefinementFlag(); 2142 #endif // NH_3D_NBDV_REF 2158 2143 2159 2144 TComMv cDv = depthRefineFlag ? DvInfo.m_acDoNBDV : DvInfo.m_acNBDV; … … 2166 2151 Int depthPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((cDv.getVer()+2)>>2)); 2167 2152 2168 pDepthPels = depthPicYuv->get LumaAddr() + depthPosX + depthPosY * uiDepthStride;2153 pDepthPels = depthPicYuv->getAddr(COMPONENT_Y) + depthPosX + depthPosY * uiDepthStride; 2169 2154 } 2170 2155 #endif … … 2178 2163 #endif 2179 2164 2180 #if H_3D_DBBP2165 #if NH_3D_DBBP 2181 2166 Void TComDataCU::setDBBPFlagSubParts ( Bool bDBBPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2182 2167 { … … 2490 2475 } 2491 2476 2492 #if H_3D_SPIVMP2477 #if NH_3D_SPIVMP 2493 2478 Void TComDataCU::setSPIVMPFlagSubParts( Bool bSPIVMPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2494 2479 { … … 2497 2482 #endif 2498 2483 2499 #if H_3D_VSP2484 #if NH_3D_VSP 2500 2485 Void TComDataCU::setVSPFlagSubParts( Char iVSPFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) 2501 2486 { 2502 2487 setSubPart<Char>( iVSPFlag, m_piVSPFlag, uiAbsPartIdx, uiDepth, uiPartIdx ); 2503 2488 } 2504 #if H_3D_VSP2505 2489 template<typename T> 2506 2490 Void TComDataCU::setSubPartT( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ) 2507 2491 { 2508 UInt uiCurrPartNumQ = (m_pcPic->getNumPart InCU() >> (2 * uiCUDepth)) >> 2;2492 UInt uiCurrPartNumQ = (m_pcPic->getNumPartitionsInCtu() >> (2 * uiCUDepth)) >> 2; 2509 2493 switch ( m_pePartSize[ uiCUAddr ] ) 2510 2494 { … … 2638 2622 } 2639 2623 #endif 2640 #endif2641 2624 2642 2625 Void TComDataCU::setInterDirSubParts( UInt uiDir, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ) … … 2724 2707 2725 2708 // This is for use by a leaf/sub CU object only, with no additional AbsPartIdx 2726 #if NH_3D_IC 2709 #if NH_3D_IC || NH_3D_VSP 2727 2710 Void TComDataCU::getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx, Bool bLCU) 2728 2711 { … … 3058 3041 } 3059 3042 3060 #if H_3D_VSP 3061 3043 #if NH_3D_VSP 3062 3044 /** Add a VSP merging candidate 3063 3045 * \Inputs … … 3113 3095 predFlag[iRefListIdX] = 1; 3114 3096 mvVSP[0+iRefListIdX].setMvField( pDInfo->m_acNBDV, i ); 3115 #if H_3D_NBDV3097 #if NH_3D_NBDV 3116 3098 mvVSP[0+iRefListIdX].getMv().setIDVFlag (false); 3117 3099 #endif … … 3121 3103 3122 3104 dirVSP = (predFlag[0] | (predFlag[1] << 1)); 3123 m_mergCands[MRG_VSP].setCand( mvVSP, dirVSP, true, false); 3105 m_mergCands[MRG_VSP].setCand( mvVSP, dirVSP, true 3106 #if NH_3D_SPIVMP 3107 , false 3108 #endif 3109 ); 3124 3110 if ( mrgCandIdx == iCount ) 3125 3111 { … … 3131 3117 return false; 3132 3118 } 3133 3134 #endif 3135 3136 #if H_3D_IV_MERGE 3119 #endif 3120 3121 #if NH_3D_IV_MERGE 3137 3122 inline Bool TComDataCU::xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int* ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx ) 3138 3123 { … … 3165 3150 if(!bRemove) 3166 3151 { 3167 #if H_3D_NBDV3152 #if NH_3D_NBDV 3168 3153 if(iLoop) // For IvMcShift candidate 3169 3154 { … … 3186 3171 3187 3172 #endif 3188 #if H_3D 3173 #if NH_3D_MLC 3174 /** Construct a extended list of merging candidates 3175 * \param pcMvFieldNeighbours 3176 * \param puhInterDirNeighbours 3177 * \param vspFlag 3178 * \param pbSPIVMPFlag 3179 * \param numValidMergeCand 3180 */ 3189 3181 Void TComDataCU::buildMCL(TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3190 #if H_3D_VSP3182 #if NH_3D_VSP 3191 3183 , Int* vspFlag 3192 3184 #endif 3193 #if H_3D_SPIVMP3185 #if NH_3D_SPIVMP 3194 3186 , Bool* pbSPIVMPFlag 3195 3187 #endif … … 3197 3189 ) 3198 3190 { 3199 if (!( getSlice()->getIsDepth() || getSlice()->getViewIndex()>0)) // for only dependent texture3191 if (!( getSlice()->getIsDepth() || getSlice()->getViewIndex()>0)) 3200 3192 { 3201 3193 return; … … 3213 3205 extMergeCandList[ui<<1].setMvField(cZeroMv, NOT_VALID); 3214 3206 extMergeCandList[(ui<<1)+1].setMvField(cZeroMv, NOT_VALID); 3207 #if NH_3D_VSP 3215 3208 vspFlag[ui] = 0; 3216 } 3217 3218 // add candidates to temporal list 3219 // insert MPI ... IvShift candidate 3209 #endif 3210 } 3211 3212 // insert MPI ... IvShift candidate to extMergeCandList 3220 3213 for (Int i=0; i<=MRG_IVSHIFT; i++) 3221 3214 { 3222 3215 if (m_mergCands[i].m_bAvailable) 3223 3216 { 3224 m_mergCands[i].getCand(iCount, extMergeCandList, uhInterDirNeighboursExt, vspFlag, pbSPIVMPFlag); 3217 m_mergCands[i].getCand(iCount, extMergeCandList, uhInterDirNeighboursExt 3218 #if NH_3D_VSP 3219 , vspFlag 3220 #endif 3221 #if NH_3D_SPIVMP 3222 , pbSPIVMPFlag 3223 #endif 3224 ); 3225 3225 iCount++; 3226 3226 if (iCount >= getSlice()->getMaxNumMergeCand()) … … 3229 3229 } 3230 3230 3231 // insert remaining base candidates 3232 while (iCount < getSlice()->getMaxNumMergeCand() && m_baseListidc < getSlice()->getMaxNumMergeCand()) 3233 { 3234 uhInterDirNeighboursExt[iCount] = puhInterDirNeighbours[m_baseListidc]; 3235 extMergeCandList[iCount<<1].setMvField(pcMvFieldNeighbours[m_baseListidc<<1].getMv(), pcMvFieldNeighbours[m_baseListidc<<1].getRefIdx()); 3231 Int iCountBase = m_numSpatialCands; 3232 // insert remaining base candidates to extMergeCandList 3233 while (iCount < getSlice()->getMaxNumMergeCand() && iCountBase < getSlice()->getMaxNumMergeCand()) 3234 { 3235 uhInterDirNeighboursExt[iCount] = puhInterDirNeighbours[iCountBase]; 3236 extMergeCandList[iCount<<1].setMvField(pcMvFieldNeighbours[iCountBase<<1].getMv(), pcMvFieldNeighbours[iCountBase<<1].getRefIdx()); 3236 3237 if ( getSlice()->isInterB() ) 3237 3238 { 3238 extMergeCandList[(iCount<<1)+1].setMvField(pcMvFieldNeighbours[( m_baseListidc<<1)+1].getMv(), pcMvFieldNeighbours[(m_baseListidc<<1)+1].getRefIdx());3239 } 3240 m_baseListidc++;3239 extMergeCandList[(iCount<<1)+1].setMvField(pcMvFieldNeighbours[(iCountBase<<1)+1].getMv(), pcMvFieldNeighbours[(iCountBase<<1)+1].getRefIdx()); 3240 } 3241 iCountBase++; 3241 3242 iCount++; 3242 3243 } … … 3260 3261 } 3261 3262 3262 /** Constructs a list of merging candidates 3263 3264 3265 /** Derive 3D merge candidates 3263 3266 * \param uiAbsPartIdx 3264 3267 * \param uiPUIdx 3265 * \param uiDepth3266 3268 * \param pcMvFieldNeighbours 3269 * \param puhInterDirNeighbours 3270 * \param pcMvFieldSP 3267 3271 * \param puhInterDirNeighbours 3268 3272 * \param numValidMergeCand 3269 3273 */ 3270 // HM 12.0 based merge candidate list construction 3271 3272 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx ) 3273 { 3274 3275 UInt uiAbsPartAddr = m_uiAbsIdxInLCU + uiAbsPartIdx; 3276 Bool abCandIsInter[ MRG_MAX_NUM_CANDS_MEM ]; 3274 Void TComDataCU::xGetInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 3275 #if NH_3D_SPIVMP 3276 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3277 #endif 3278 , Int& numValidMergeCand, Int mrgCandIdx 3279 ) 3280 { 3281 #if NH_3D_IV_MERGE 3277 3282 TComMv cZeroMv; 3278 for( UInt ui = 0; ui < getSlice()->getMaxNumMergeCand(); ++ui ) 3279 { 3280 abCandIsInter[ui] = false; 3281 pcMvFieldNeighbours[ ( ui << 1 ) ].setMvField(cZeroMv, NOT_VALID); 3282 pcMvFieldNeighbours[ ( ui << 1 ) + 1 ].setMvField(cZeroMv, NOT_VALID); 3283 TComMvField tmpMV[2]; 3284 #endif 3285 3286 ////////////////////////////////// 3287 //////// GET DISPARITIES //////// 3288 ////////////////////////////////// 3289 #if NH_3D_IV_MERGE 3290 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3291 m_cDefaultDisInfo = cDisInfo; 3292 #elif NH_3D_VSP 3293 // for xAddVspCand() 3294 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3295 #endif 3296 3297 if (!( getSlice()->getIsDepth() || getSlice()->getViewIndex()>0)) 3298 { 3299 return; 3283 3300 } 3284 3301 numValidMergeCand = getSlice()->getMaxNumMergeCand(); 3302 ////////////////////////////////// 3303 //////// DERIVE LOCATIONS //////// 3304 ////////////////////////////////// 3285 3305 // compute the location of the current PU 3286 3306 Int xP, yP, nPSW, nPSH; … … 3288 3308 3289 3309 Int iCount = 0; 3290 3291 3310 UInt uiPartIdxLT, uiPartIdxRT, uiPartIdxLB; 3292 PartSize cCurPS = getPartitionSize( uiAbsPartIdx );3293 3311 deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT ); 3294 3312 deriveLeftBottomIdxGeneral ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3295 3296 //left 3297 UInt uiLeftPartIdx = 0; 3298 TComDataCU* pcCULeft = 0; 3299 pcCULeft = getPULeft( uiLeftPartIdx, uiPartIdxLB ); 3300 Bool isAvailableA1 = pcCULeft && 3301 pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) && 3302 !( uiPUIdx == 1 && (cCurPS == SIZE_Nx2N || cCurPS == SIZE_nLx2N || cCurPS == SIZE_nRx2N) ) && 3303 !pcCULeft->isIntra( uiLeftPartIdx ) ; 3304 if ( isAvailableA1 ) 3305 { 3306 m_bAvailableFlagA1 = 1; 3307 abCandIsInter[iCount] = true; 3308 // get Inter Dir 3309 puhInterDirNeighbours[iCount] = pcCULeft->getInterDir( uiLeftPartIdx ); 3310 // get Mv from Left 3311 pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3312 if ( getSlice()->isInterB() ) 3313 { 3314 pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3315 } 3316 3317 iCount ++; 3318 } 3319 3320 // early termination 3321 if (iCount == getSlice()->getMaxNumMergeCand()) 3322 { 3323 return; 3324 } 3325 // above 3326 UInt uiAbovePartIdx = 0; 3327 TComDataCU* pcCUAbove = 0; 3328 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT ); 3329 Bool isAvailableB1 = pcCUAbove && 3330 pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) && 3331 !( uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD) ) && 3332 !pcCUAbove->isIntra( uiAbovePartIdx ); 3333 if ( isAvailableB1 && (!isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAbove, uiAbovePartIdx ) ) ) 3334 { 3335 m_bAvailableFlagB1 = 1; 3336 abCandIsInter[iCount] = true; 3337 // get Inter Dir 3338 puhInterDirNeighbours[iCount] = pcCUAbove->getInterDir( uiAbovePartIdx ); 3339 // get Mv from Left 3340 pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3341 if ( getSlice()->isInterB() ) 3342 { 3343 pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3344 } 3345 if ( mrgCandIdx == iCount ) 3346 { 3347 return; 3348 } 3349 iCount ++; 3350 } 3351 // early termination 3352 if (iCount == getSlice()->getMaxNumMergeCand()) 3353 { 3354 return; 3355 } 3356 3357 // above right 3358 UInt uiAboveRightPartIdx = 0; 3359 TComDataCU* pcCUAboveRight = 0; 3360 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT ); 3361 Bool isAvailableB0 = pcCUAboveRight && 3362 pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) && 3363 !pcCUAboveRight->isIntra( uiAboveRightPartIdx ); 3364 if ( isAvailableB0 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveRight, uiAboveRightPartIdx ) ) ) 3365 { 3366 m_bAvailableFlagB0 = 1; 3367 abCandIsInter[iCount] = true; 3368 // get Inter Dir 3369 puhInterDirNeighbours[iCount] = pcCUAboveRight->getInterDir( uiAboveRightPartIdx ); 3370 // get Mv from Left 3371 pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3372 if ( getSlice()->isInterB() ) 3373 { 3374 pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3375 } 3376 if ( mrgCandIdx == iCount ) 3377 { 3378 return; 3379 } 3380 iCount ++; 3381 } 3382 // early termination 3383 if (iCount == getSlice()->getMaxNumMergeCand()) 3384 { 3385 return; 3386 } 3387 3388 //left bottom 3389 UInt uiLeftBottomPartIdx = 0; 3390 TComDataCU* pcCULeftBottom = 0; 3391 pcCULeftBottom = this->getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB ); 3392 Bool isAvailableA0 = pcCULeftBottom && 3393 pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) && 3394 !pcCULeftBottom->isIntra( uiLeftBottomPartIdx ) ; 3395 if ( isAvailableA0 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCULeftBottom, uiLeftBottomPartIdx ) ) ) 3396 { 3397 m_bAvailableFlagA0 = 1; 3398 abCandIsInter[iCount] = true; 3399 // get Inter Dir 3400 puhInterDirNeighbours[iCount] = pcCULeftBottom->getInterDir( uiLeftBottomPartIdx ); 3401 // get Mv from Left 3402 pcCULeftBottom->getMvField( pcCULeftBottom, uiLeftBottomPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3403 if ( getSlice()->isInterB() ) 3404 { 3405 pcCULeftBottom->getMvField( pcCULeftBottom, uiLeftBottomPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3406 } 3407 if ( mrgCandIdx == iCount ) 3408 { 3409 return; 3410 } 3411 iCount ++; 3412 } 3413 // early termination 3414 if (iCount == getSlice()->getMaxNumMergeCand()) 3415 { 3416 return; 3417 } 3418 // above left 3419 if( iCount < 4 ) 3420 { 3421 UInt uiAboveLeftPartIdx = 0; 3422 TComDataCU* pcCUAboveLeft = 0; 3423 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr ); 3424 Bool isAvailableB2 = pcCUAboveLeft && 3425 pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) && 3426 !pcCUAboveLeft->isIntra( uiAboveLeftPartIdx ); 3427 if ( isAvailableB2 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) 3428 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) ) 3429 { 3430 m_bAvailableFlagB2 = 1; 3431 abCandIsInter[iCount] = true; 3432 // get Inter Dir 3433 puhInterDirNeighbours[iCount] = pcCUAboveLeft->getInterDir( uiAboveLeftPartIdx ); 3434 // get Mv from Left 3435 pcCUAboveLeft->getMvField( pcCUAboveLeft, uiAboveLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 3436 if ( getSlice()->isInterB() ) 3437 { 3438 pcCUAboveLeft->getMvField( pcCUAboveLeft, uiAboveLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 3439 } 3440 if ( mrgCandIdx == iCount ) 3441 { 3442 return; 3443 } 3444 iCount ++; 3445 } 3446 } 3447 // early termination 3448 if (iCount == getSlice()->getMaxNumMergeCand()) 3449 { 3450 return; 3451 } 3452 if ( getSlice()->getEnableTMVPFlag()) 3453 { 3454 //>> MTK colocated-RightBottom 3455 UInt uiPartIdxRB; 3456 3457 deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); 3458 3459 UInt uiAbsPartIdxTmp = g_auiZscanToRaster[uiPartIdxRB]; 3460 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 3461 3462 TComMv cColMv; 3463 Int iRefIdx; 3464 Int uiLCUIdx = -1; 3465 3466 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 3467 { 3468 } 3469 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 3470 { 3471 } 3472 else 3473 { 3474 if ( ( uiAbsPartIdxTmp % uiNumPartInCUWidth < uiNumPartInCUWidth - 1 ) && // is not at the last column of LCU 3475 ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) ) // is not at the last row of LCU 3476 { 3477 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + uiNumPartInCUWidth + 1 ]; 3478 uiLCUIdx = getAddr(); 3479 } 3480 else if ( uiAbsPartIdxTmp % uiNumPartInCUWidth < uiNumPartInCUWidth - 1 ) // is not at the last column of LCU But is last row of LCU 3481 { 3482 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ]; 3483 } 3484 else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU 3485 { 3486 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + 1 ]; 3487 uiLCUIdx = getAddr() + 1; 3488 } 3489 else //is the right bottom corner of LCU 3490 { 3491 uiAbsPartAddr = 0; 3492 } 3493 } 3494 3495 iRefIdx = 0; 3496 Bool bExistMV = false; 3497 UInt uiPartIdxCenter; 3498 UInt uiCurLCUIdx = getAddr(); 3499 Int dir = 0; 3500 UInt uiArrayAddr = iCount; 3501 xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter ); 3502 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_0, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx ); 3503 if( bExistMV == false ) 3504 { 3505 bExistMV = xGetColMVP( REF_PIC_LIST_0, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx ); 3506 } 3507 if( bExistMV ) 3508 { 3509 dir |= 1; 3510 pcMvFieldNeighbours[ 2 * uiArrayAddr ].setMvField( cColMv, iRefIdx ); 3511 } 3512 3513 if ( getSlice()->isInterB() ) 3514 { 3515 #if NH_3D_TMVP //to be changed to NH_3D_TMVP in future migration 3516 iRefIdx = 0; 3517 #endif 3518 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx); 3519 if( bExistMV == false ) 3520 { 3521 bExistMV = xGetColMVP( REF_PIC_LIST_1, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx ); 3522 } 3523 if( bExistMV ) 3524 { 3525 dir |= 2; 3526 pcMvFieldNeighbours[ 2 * uiArrayAddr + 1 ].setMvField( cColMv, iRefIdx ); 3527 } 3528 } 3529 3530 if (dir != 0) 3531 { 3532 puhInterDirNeighbours[uiArrayAddr] = dir; 3533 abCandIsInter[uiArrayAddr] = true; 3534 #if H_3D_NBDV 3535 pcMvFieldNeighbours[iCount<<1 ].getMv().setIDVFlag (false); 3536 pcMvFieldNeighbours[(iCount<<1)+1].getMv().setIDVFlag (false); 3537 #endif 3538 if ( mrgCandIdx == iCount ) 3539 { 3540 return; 3541 } 3542 iCount++; 3543 } 3544 } 3545 // early termination 3546 if (iCount == getSlice()->getMaxNumMergeCand()) 3547 { 3548 return; 3549 } 3550 UInt uiArrayAddr = iCount; 3551 UInt uiCutoff = uiArrayAddr; 3552 3553 if ( getSlice()->isInterB() && iCount<5) // JCT3V-F0129 by Qualcomm 3554 { 3555 UInt uiPriorityList0[12] = {0 , 1, 0, 2, 1, 2, 0, 3, 1, 3, 2, 3}; 3556 UInt uiPriorityList1[12] = {1 , 0, 2, 0, 2, 1, 3, 0, 3, 1, 3, 2}; 3557 3558 for (Int idx=0; idx<uiCutoff*(uiCutoff-1) && uiArrayAddr!= getSlice()->getMaxNumMergeCand(); idx++) 3559 { 3560 Int i = uiPriorityList0[idx]; Int j = uiPriorityList1[idx]; 3561 if (abCandIsInter[i] && abCandIsInter[j]&& (puhInterDirNeighbours[i]&0x1)&&(puhInterDirNeighbours[j]&0x2)) 3562 { 3563 abCandIsInter[uiArrayAddr] = true; 3564 puhInterDirNeighbours[uiArrayAddr] = 3; 3565 3566 // get Mv from cand[i] and cand[j] 3567 pcMvFieldNeighbours[uiArrayAddr << 1].setMvField(pcMvFieldNeighbours[i<<1].getMv(), pcMvFieldNeighbours[i<<1].getRefIdx()); 3568 pcMvFieldNeighbours[( uiArrayAddr << 1 ) + 1].setMvField(pcMvFieldNeighbours[(j<<1)+1].getMv(), pcMvFieldNeighbours[(j<<1)+1].getRefIdx()); 3569 3570 Int iRefPOCL0 = m_pcSlice->getRefPOC( REF_PIC_LIST_0, pcMvFieldNeighbours[(uiArrayAddr<<1)].getRefIdx() ); 3571 Int iRefPOCL1 = m_pcSlice->getRefPOC( REF_PIC_LIST_1, pcMvFieldNeighbours[(uiArrayAddr<<1)+1].getRefIdx() ); 3572 if (iRefPOCL0 == iRefPOCL1 && pcMvFieldNeighbours[(uiArrayAddr<<1)].getMv() == pcMvFieldNeighbours[(uiArrayAddr<<1)+1].getMv()) 3573 { 3574 abCandIsInter[uiArrayAddr] = false; 3575 } 3576 else 3577 { 3578 uiArrayAddr++; 3579 } 3580 } 3581 } 3582 } 3583 // early termination 3584 if (uiArrayAddr == getSlice()->getMaxNumMergeCand()) 3585 { 3586 return; 3587 } 3588 3589 Int iNumRefIdx = (getSlice()->isInterB()) ? min(m_pcSlice->getNumRefIdx(REF_PIC_LIST_0), m_pcSlice->getNumRefIdx(REF_PIC_LIST_1)) : m_pcSlice->getNumRefIdx(REF_PIC_LIST_0); 3590 Int r = 0; 3591 Int refcnt = 0; 3592 while (uiArrayAddr < getSlice()->getMaxNumMergeCand()) 3593 { 3594 abCandIsInter[uiArrayAddr] = true; 3595 puhInterDirNeighbours[uiArrayAddr] = 1; 3596 pcMvFieldNeighbours[uiArrayAddr << 1].setMvField( TComMv(0, 0), r); 3597 3598 if ( getSlice()->isInterB() ) 3599 { 3600 puhInterDirNeighbours[uiArrayAddr] = 3; 3601 pcMvFieldNeighbours[(uiArrayAddr << 1) + 1].setMvField(TComMv(0, 0), r); 3602 } 3603 uiArrayAddr++; 3604 if ( refcnt == iNumRefIdx - 1 ) 3605 { 3606 r = 0; 3607 } 3608 else 3609 { 3610 ++r; 3611 ++refcnt; 3612 } 3613 } 3614 3615 numValidMergeCand = uiArrayAddr; 3616 } 3617 3618 3619 3620 /** Constructs a list of merging candidates 3621 * \param uiAbsPartIdx 3622 * \param uiPUIdx 3623 * \param uiDepth 3624 * \param pcMvFieldNeighbours 3625 * \param puhInterDirNeighbours 3626 * \param numValidMergeCand 3627 */ 3628 #if H_3D 3629 Void TComDataCU::xGetInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3630 #else 3631 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 3632 #endif 3633 #if H_3D_SPIVMP 3634 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3635 #endif 3636 , Int& numValidMergeCand, Int mrgCandIdx 3637 ) 3638 { 3639 #if H_3D_IV_MERGE 3640 //////////////////////////// 3641 //////// INIT LISTS //////// 3642 //////////////////////////// 3643 TComMv cZeroMv; 3644 #else 3645 Bool abCandIsInter[ MRG_MAX_NUM_CANDS ]; 3646 #endif 3647 #if H_3D 3648 TComMvField tmpMV[2]; 3649 UChar tmpDir; 3650 3651 3652 ////////////////////////////////// 3653 //////// GET DISPARITIES //////// 3654 ////////////////////////////////// 3655 DisInfo cDisInfo = getDvInfo(uiAbsPartIdx); 3656 m_cDefaultDisInfo = cDisInfo; 3657 3658 if (!( getSlice()->getIsDepth() || getSlice()->getViewIndex()>0)) // current slice is not both dependent view or depth 3659 { 3660 return; 3661 } 3662 #else 3663 for( UInt ui = 0; ui < getSlice()->getMaxNumMergeCand(); ++ui ) 3664 { 3665 abCandIsInter[ui] = false; 3666 pcMvFieldNeighbours[ ( ui << 1 ) ].setRefIdx(NOT_VALID); 3667 pcMvFieldNeighbours[ ( ui << 1 ) + 1 ].setRefIdx(NOT_VALID); 3668 } 3669 #endif 3670 3671 numValidMergeCand = getSlice()->getMaxNumMergeCand(); 3672 #if H_3D 3673 ////////////////////////////////// 3674 //////// DERIVE LOCATIONS //////// 3675 ////////////////////////////////// 3676 #endif 3677 // compute the location of the current PU 3678 Int xP, yP, nPSW, nPSH; 3679 this->getPartPosition(uiPUIdx, xP, yP, nPSW, nPSH); 3680 3681 Int iCount = 0; 3682 3683 UInt uiPartIdxLT, uiPartIdxRT, uiPartIdxLB; 3684 #if !H_3D 3685 PartSize cCurPS = getPartitionSize( uiAbsPartIdx ); 3686 #endif 3687 deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT ); 3688 deriveLeftBottomIdxGeneral ( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3689 #if H_3D 3313 #if NH_3D_TEXT_MERGE 3690 3314 Bool bMPIFlag = getSlice()->getMpiFlag(); 3315 Int tmpDir; 3316 #endif 3317 #if NH_3D_IV_MERGE || NH_3D_TEXT_MERGE 3691 3318 Bool bIsDepth = getSlice()->getIsDepth(); 3692 #endif 3319 #endif 3693 3320 3694 3321 #if NH_3D_IC 3695 3322 Bool bICFlag = getICFlag(uiAbsPartIdx); 3696 3323 #endif 3697 #if H_3D_ARP3324 #if NH_3D_ARP 3698 3325 Bool bARPFlag = getARPW(uiAbsPartIdx) > 0; 3699 3326 #endif 3700 #if H_3D_DBBP3327 #if NH_3D_DBBP 3701 3328 Bool bDBBPFlag = getDBBPFlag(uiAbsPartIdx); 3702 3329 assert(bDBBPFlag == getDBBPFlag(0)); 3703 3330 #endif 3704 3331 3705 #if H_3D 3706 #if H_3D_NBDV 3332 #if NH_3D_NBDV 3707 3333 for(Int i = 0; i < MRG_MAX_NUM_CANDS_MEM; i++) 3708 3334 { 3709 pcMvFieldNeighbours[i<<1 ].getMv().setIDVFlag (false); 3710 pcMvFieldNeighbours[(i<<1)+1].getMv().setIDVFlag (false); 3711 } 3712 #endif 3713 // Clean version for MCL construction align with WD 3714 // init mergCands list 3335 pcMFieldNeighbours[i<<1 ].getMv().setIDVFlag (false); 3336 pcMFieldNeighbours[(i<<1)+1].getMv().setIDVFlag (false); 3337 } 3338 #endif 3339 // init containers 3715 3340 for (Int i = 0; i<MRG_IVSHIFT+1; i++) 3716 {3717 3341 m_mergCands[i].init(); 3718 } 3719 3720 m_baseListidc = 0; 3721 3342 3343 m_numSpatialCands = 0; 3344 3345 ////////////////////////////////// 3346 ///////// GET VSP FLAGS ////////// 3347 ////////////////////////////////// 3722 3348 //left 3723 3349 UInt uiLeftPartIdx = 0; … … 3727 3353 if (getAvailableFlagA1()) 3728 3354 { 3729 m_mergCands[MRG_A1].setCand( &pcM vFieldNeighbours[m_baseListidc<<1], puhInterDirNeighbours[m_baseListidc]3730 #if H_3D_VSP3355 m_mergCands[MRG_A1].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3356 #if NH_3D_VSP 3731 3357 , (pcCULeft->getVSPFlag(uiLeftPartIdx) != 0 3732 3358 #if NH_3D_IC 3733 3359 && !bICFlag 3734 3360 #endif 3735 #if H_3D_ARP3361 #if NH_3D_ARP 3736 3362 && !bARPFlag 3737 3363 #endif 3738 #if H_3D_DBBP3364 #if NH_3D_DBBP 3739 3365 && !bDBBPFlag 3740 3366 #endif 3741 3367 ) 3742 3368 #endif 3369 #if NH_3D_SPIVMP 3743 3370 , false 3371 #endif 3744 3372 ); 3745 m_ baseListidc++;3373 m_numSpatialCands++; 3746 3374 } 3747 3375 3748 3376 // above 3749 3750 3377 if (getAvailableFlagB1()) 3751 3378 { 3752 m_mergCands[MRG_B1].setCand( &pcM vFieldNeighbours[m_baseListidc<<1], puhInterDirNeighbours[m_baseListidc]3753 #if H_3D_VSP3379 m_mergCands[MRG_B1].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3380 #if NH_3D_VSP 3754 3381 , false 3755 3382 #endif 3383 #if NH_3D_SPIVMP 3756 3384 , false 3385 #endif 3757 3386 ); 3758 m_ baseListidc++;3387 m_numSpatialCands++; 3759 3388 } 3760 3389 3761 3390 // above right 3762 3763 3391 if (getAvailableFlagB0()) 3764 3392 { 3765 m_mergCands[MRG_B0].setCand( &pcM vFieldNeighbours[m_baseListidc<<1], puhInterDirNeighbours[m_baseListidc]3766 #if H_3D_VSP3767 , 3768 false 3769 # endif3393 m_mergCands[MRG_B0].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3394 #if NH_3D_VSP 3395 , false 3396 #endif 3397 #if NH_3D_SPIVMP 3770 3398 , false 3399 #endif 3771 3400 ); 3772 m_ baseListidc++;3401 m_numSpatialCands++; 3773 3402 } 3774 3403 3775 3404 // left bottom 3776 3777 3405 if (getAvailableFlagA0()) 3778 3406 { 3779 m_mergCands[MRG_A0].setCand( &pcM vFieldNeighbours[m_baseListidc<<1], puhInterDirNeighbours[m_baseListidc]3780 #if H_3D_VSP3407 m_mergCands[MRG_A0].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3408 #if NH_3D_VSP 3781 3409 , false 3782 3410 #endif 3411 #if NH_3D_SPIVMP 3783 3412 , false 3413 #endif 3784 3414 ); 3785 m_ baseListidc++;3415 m_numSpatialCands++; 3786 3416 } 3787 3417 3788 3418 // above left 3789 3790 3419 if (getAvailableFlagB2()) 3791 3420 { 3792 m_mergCands[MRG_B2].setCand( &pcM vFieldNeighbours[m_baseListidc<<1], puhInterDirNeighbours[m_baseListidc]3793 #if H_3D_VSP3421 m_mergCands[MRG_B2].setCand( &pcMFieldNeighbours[m_numSpatialCands<<1], puhInterDirNeighbours[m_numSpatialCands] 3422 #if NH_3D_VSP 3794 3423 , false 3795 3424 #endif 3425 #if NH_3D_SPIVMP 3796 3426 , false 3427 #endif 3797 3428 ); 3798 m_baseListidc++; 3799 } 3800 3801 #endif 3802 3803 3804 #if H_3D_IV_MERGE 3429 m_numSpatialCands++; 3430 } 3431 3432 3433 #if NH_3D_TEXT_MERGE 3805 3434 3806 3435 ///////////////////////////////////////////// … … 3828 3457 3829 3458 this->getPartIndexAndSize( uiPUIdx, uiPartAddr, iWidth, iHeight ); 3830 pcTexRec->getTopLeftSamplePos( this->get Addr(), this->getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );3459 pcTexRec->getTopLeftSamplePos( this->getCtuRsAddr(), this->getZorderIdxInCtu() + uiPartAddr, iCurrPosX, iCurrPosY ); 3831 3460 3832 3461 Int iPUWidth, iPUHeight, iNumPart, iNumPartLine; … … 3853 3482 3854 3483 Int iTexPosX, iTexPosY; 3484 #if NH_3D_INTEGER_MV_DEPTH 3855 3485 const TComMv cMvRounding( 1 << ( 2 - 1 ), 1 << ( 2 - 1 ) ); 3856 3486 #endif 3857 3487 Int iCenterPosX = iCurrPosX + ( ( iWidth / iPUWidth ) >> 1 ) * iPUWidth + ( iPUWidth >> 1 ); 3858 3488 Int iCenterPosY = iCurrPosY + ( ( iHeight / iPUHeight ) >> 1 ) * iPUHeight + (iPUHeight >> 1); … … 3868 3498 3869 3499 pcTexRec->getCUAddrAndPartIdx( iCenterPosX , iCenterPosY , iTexCenterCUAddr, iTexCenterAbsPartIdx ); 3870 TComDataCU* pcDefaultCU = pcTexPic->getC U( iTexCenterCUAddr );3500 TComDataCU* pcDefaultCU = pcTexPic->getCtu( iTexCenterCUAddr ); 3871 3501 3872 3502 if( pcDefaultCU->getPredictionMode( iTexCenterAbsPartIdx ) != MODE_INTRA ) … … 3887 3517 { 3888 3518 bSPIVMPFlag = true; 3519 #if NH_3D_INTEGER_MV_DEPTH 3889 3520 TComMv cMv = cDefaultMvField.getMv() + cMvRounding; 3890 3521 cMv >>= 2; 3522 #else 3523 TComMv cMv = cDefaultMvField.getMv(); 3524 #endif 3891 3525 cMvFieldSaved[eCurrRefPicList].setMvField(cMv, iRefPicList) ; 3892 3526 break; … … 3913 3547 iTexPosY = i + iOffsetY; 3914 3548 pcTexRec->getCUAddrAndPartIdx( iTexPosX, iTexPosY, iTexCUAddr, iTexAbsPartIdx ); 3915 pcTexCU = pcTexPic->getC U( iTexCUAddr );3549 pcTexCU = pcTexPic->getCtu( iTexCUAddr ); 3916 3550 3917 3551 if( pcTexCU && !pcTexCU->isIntra(iTexAbsPartIdx) ) … … 3925 3559 if( (cTexMvField.getRefIdx()>=0) && ( iValidDepRef >= 0 ) ) 3926 3560 { 3561 #if NH_3D_INTEGER_MV_DEPTH 3927 3562 TComMv cMv = cTexMvField.getMv() + cMvRounding; 3928 3563 cMv >>=2; 3564 #else 3565 TComMv cMv = cTexMvField.getMv(); 3566 #endif 3929 3567 pcMvFieldSP[2*iPartition + uiCurrRefListId].setMvField(cMv, iValidDepRef); 3930 3568 } … … 3945 3583 } 3946 3584 } 3947 #if H_3D 3948 } 3949 #endif 3585 } 3950 3586 #if H_3D_FCO 3951 3587 } … … 3975 3611 } 3976 3612 } 3613 #endif 3614 3615 #if NH_3D_IV_MERGE 3977 3616 ///////////////////////////////////////////////////////////////// 3978 3617 //////// DERIVE IvMC, IvMCShift,IvDCShift, IvDC Candidates ///// … … 3992 3631 if ( ivMvPredFlag && cDisInfo.m_aVIdxCan!=-1) 3993 3632 { 3633 #if H_3D_IC 3994 3634 getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP, bICFlag ); 3635 #else 3636 getInterViewMergeCands(uiPUIdx, ivCandRefIdx, ivCandMv, &cDisInfo, ivCandDir , bIsDepth, pcMvFieldSP, puhInterDirSP, false ); 3637 #endif 3995 3638 } 3996 3639 … … 4048 3691 spiMvpFlag = true; 4049 3692 } 4050 #if H_3D_DBBP3693 #if NH_3D_DBBP 4051 3694 spiMvpFlag &= !bDBBPFlag; 4052 3695 #endif … … 4069 3712 #endif 4070 3713 3714 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable; 3715 3716 #if NH_3D_VSP 3717 ///////////////////////////////////////////////// 3718 //////// VIEW SYNTHESIS PREDICTION (VSP) //////// 3719 ///////////////////////////////////////////////// 3720 if (iCount<getSlice()->getMaxNumMergeCand()) 3721 { 3722 if ( 3723 (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) && 3724 #if NH_3D_IC 3725 !bICFlag && 3726 #endif 3727 #if NH_3D_ARP 3728 !bARPFlag && 3729 #endif 4071 3730 #if H_3D 4072 iCount += m_mergCands[MRG_A1].m_bAvailable + m_mergCands[MRG_B1].m_bAvailable; 3731 (nPSW + nPSH > 12) && 3732 #endif 3733 #if NH_3D_DBBP 3734 !bDBBPFlag && 3735 #endif 3736 xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) ) 3737 { 3738 return; 3739 } 3740 3741 // early termination 3742 if (iCount == getSlice()->getMaxNumMergeCand()) 3743 { 3744 return; 3745 } 3746 } 3747 #endif 3748 3749 iCount += m_mergCands[MRG_B0].m_bAvailable; 3750 3751 #if NH_3D_IV_MERGE 3752 ///////////////////////////////////////////// 3753 //////// INTER VIEW DISP COMP (IvDC) //////// 3754 ///////////////////////////////////////////// 3755 if( ivCandDir[1] && iCount < getSlice()->getMaxNumMergeCand() && !getSlice()->getIsDepth() ) 3756 { 3757 assert(iCount < getSlice()->getMaxNumMergeCand()); 3758 3759 tmpMV[0].setMvField( cZeroMv, NOT_VALID ); 3760 tmpMV[1].setMvField( cZeroMv, NOT_VALID ); 3761 if( ( ivCandDir[1] & 1 ) == 1 ) 3762 { 3763 tmpMV[0].setMvField( ivCandMv[ 2 ], ivCandRefIdx[ 2 ] ); 3764 } 3765 if( ( ivCandDir[1] & 2 ) == 2 ) 3766 { 3767 tmpMV[1].setMvField( ivCandMv[ 3 ], ivCandRefIdx[ 3 ] ); 3768 } 3769 3770 Bool bRemoveSpa = false; //pruning to A1, B1 3771 for(Int i = 0; i < 2; i ++) 3772 { 3773 if ( !m_mergCands[MRG_A1+i].m_bAvailable ) 3774 { 3775 continue; 3776 } 3777 if (ivCandDir[1] == m_mergCands[MRG_A1+i].m_uDir && tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1]) 3778 { 3779 bRemoveSpa = true; 3780 break; 3781 } 3782 } 3783 if(!bRemoveSpa) 3784 { 3785 #if NH_3D_NBDV 3786 tmpMV[0].getMv().setIDVFlag (false); 3787 tmpMV[1].getMv().setIDVFlag (false); 3788 #endif 3789 m_mergCands[MRG_IVDC].setCand( tmpMV, ivCandDir[1], false, false); 3790 3791 if ( mrgCandIdx == iCount ) 3792 return; 3793 iCount ++; 3794 3795 // early termination 3796 if (iCount == getSlice()->getMaxNumMergeCand()) 3797 { 3798 return; 3799 } 3800 } 3801 } 3802 #endif // H_3D_IV_MERGE 3803 3804 iCount += m_mergCands[MRG_A0].m_bAvailable + m_mergCands[MRG_B2].m_bAvailable; 3805 3806 #if NH_3D_IV_MERGE 3807 //////////////////////////////////////////////////// 3808 //////// SHIFTED IV (IvMCShift + IvDCShift) //////// 3809 //////////////////////////////////////////////////// 3810 if( ivMvPredFlag && iCount < getSlice()->getMaxNumMergeCand() && !getSlice()->getIsDepth() ) 3811 { 3812 if(xAddIvMRGCand( mrgCandIdx, iCount, ivCandDir, ivCandMv, ivCandRefIdx ) ) 3813 { 3814 return; 3815 } 3816 //early termination 3817 if (iCount == getSlice()->getMaxNumMergeCand()) 3818 { 3819 return; 3820 } 3821 } 3822 #endif 3823 } 3824 #endif 3825 3826 //! Construct a list of merging candidates 3827 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx ) 3828 { 3829 UInt uiAbsPartAddr = m_absZIdxInCtu + uiAbsPartIdx; 3830 #if NH_3D_MLC 3831 Bool abCandIsInter[ MRG_MAX_NUM_CANDS_MEM ]; 4073 3832 #else 3833 Bool abCandIsInter[ MRG_MAX_NUM_CANDS ]; 3834 #endif 3835 for( UInt ui = 0; ui < getSlice()->getMaxNumMergeCand(); ++ui ) 3836 { 3837 abCandIsInter[ui] = false; 3838 pcMvFieldNeighbours[ ( ui << 1 ) ].setRefIdx(NOT_VALID); 3839 pcMvFieldNeighbours[ ( ui << 1 ) + 1 ].setRefIdx(NOT_VALID); 3840 } 3841 numValidMergeCand = getSlice()->getMaxNumMergeCand(); 3842 // compute the location of the current PU 3843 Int xP, yP, nPSW, nPSH; 3844 this->getPartPosition(uiPUIdx, xP, yP, nPSW, nPSH); 3845 3846 Int iCount = 0; 3847 3848 UInt uiPartIdxLT, uiPartIdxRT, uiPartIdxLB; 3849 PartSize cCurPS = getPartitionSize( uiAbsPartIdx ); 3850 deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT ); 3851 deriveLeftBottomIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 3852 4074 3853 //left 4075 3854 UInt uiLeftPartIdx = 0; 4076 3855 TComDataCU* pcCULeft = 0; 4077 3856 pcCULeft = getPULeft( uiLeftPartIdx, uiPartIdxLB ); 3857 4078 3858 Bool isAvailableA1 = pcCULeft && 4079 pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) && 4080 !( uiPUIdx == 1 && (cCurPS == SIZE_Nx2N || cCurPS == SIZE_nLx2N || cCurPS == SIZE_nRx2N) ) && 4081 !pcCULeft->isIntra( uiLeftPartIdx ) ; 3859 pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) && 3860 !( uiPUIdx == 1 && (cCurPS == SIZE_Nx2N || cCurPS == SIZE_nLx2N || cCurPS == SIZE_nRx2N) ) && 3861 pcCULeft->isInter( uiLeftPartIdx ) ; 3862 4082 3863 if ( isAvailableA1 ) 4083 3864 { 3865 #if NH_3D_MLC 3866 m_bAvailableFlagA1 = 1; 3867 #endif 4084 3868 abCandIsInter[iCount] = true; 4085 3869 // get Inter Dir … … 4091 3875 pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4092 3876 } 4093 4094 3877 if ( mrgCandIdx == iCount ) 4095 3878 { … … 4100 3883 4101 3884 // early termination 4102 if (iCount == getSlice()->getMaxNumMergeCand()) 3885 if (iCount == getSlice()->getMaxNumMergeCand()) 4103 3886 { 4104 3887 return; 4105 3888 } 4106 4107 3889 // above 4108 3890 UInt uiAbovePartIdx = 0; 4109 3891 TComDataCU* pcCUAbove = 0; 4110 3892 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT ); 3893 4111 3894 Bool isAvailableB1 = pcCUAbove && 4112 pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) && 4113 !( uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD) ) && 4114 !pcCUAbove->isIntra( uiAbovePartIdx ); 3895 pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) && 3896 !( uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD) ) && 3897 pcCUAbove->isInter( uiAbovePartIdx ); 3898 4115 3899 if ( isAvailableB1 && (!isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAbove, uiAbovePartIdx ) ) ) 4116 3900 { 3901 #if NH_3D_MLC 3902 m_bAvailableFlagB1 = 1; 3903 #endif 4117 3904 abCandIsInter[iCount] = true; 4118 3905 // get Inter Dir … … 4124 3911 pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4125 3912 } 4126 4127 3913 if ( mrgCandIdx == iCount ) 4128 3914 { … … 4132 3918 } 4133 3919 // early termination 4134 if (iCount == getSlice()->getMaxNumMergeCand()) 3920 if (iCount == getSlice()->getMaxNumMergeCand()) 4135 3921 { 4136 3922 return; … … 4141 3927 TComDataCU* pcCUAboveRight = 0; 4142 3928 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT ); 3929 4143 3930 Bool isAvailableB0 = pcCUAboveRight && 4144 pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) && 4145 !pcCUAboveRight->isIntra( uiAboveRightPartIdx ); 3931 pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) && 3932 pcCUAboveRight->isInter( uiAboveRightPartIdx ); 3933 4146 3934 if ( isAvailableB0 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveRight, uiAboveRightPartIdx ) ) ) 4147 3935 { 3936 #if NH_3D_MLC 3937 m_bAvailableFlagB0 = 1; 3938 #endif 4148 3939 abCandIsInter[iCount] = true; 4149 3940 // get Inter Dir … … 4155 3946 pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4156 3947 } 4157 4158 3948 if ( mrgCandIdx == iCount ) 4159 3949 { … … 4163 3953 } 4164 3954 // early termination 4165 if (iCount == getSlice()->getMaxNumMergeCand()) 3955 if (iCount == getSlice()->getMaxNumMergeCand()) 4166 3956 { 4167 3957 return; 4168 3958 } 4169 #endif 4170 4171 4172 #if H_3D_VSP 4173 ///////////////////////////////////////////////// 4174 //////// VIEW SYNTHESIS PREDICTION (VSP) //////// 4175 ///////////////////////////////////////////////// 4176 if (iCount<getSlice()->getMaxNumMergeCand()) 4177 { 4178 if ( 4179 (!getAvailableFlagA1() || !(pcCULeft->getVSPFlag(uiLeftPartIdx) != 0)) && 4180 #if NH_3D_IC 4181 !bICFlag && 4182 #endif 4183 #if H_3D_ARP 4184 !bARPFlag && 4185 #endif 4186 #if H_3D 4187 (nPSW + nPSH > 12) && 4188 #endif 4189 #if H_3D_DBBP 4190 !bDBBPFlag && 4191 #endif 4192 xAddVspCand( mrgCandIdx, &cDisInfo, iCount ) ) 4193 { 4194 return; 4195 } 4196 4197 // early termination 4198 if (iCount == getSlice()->getMaxNumMergeCand()) 4199 { 4200 return; 4201 } 4202 #endif 4203 #if H_3D_VSP 4204 } 4205 #endif 4206 4207 #if H_3D 4208 iCount += m_mergCands[MRG_B0].m_bAvailable; 4209 #endif 4210 4211 4212 #if H_3D_IV_MERGE 4213 ///////////////////////////////////////////// 4214 //////// INTER VIEW DISP COMP (IvDC) //////// 4215 ///////////////////////////////////////////// 4216 if( ivCandDir[1] && iCount < getSlice()->getMaxNumMergeCand() && !getSlice()->getIsDepth() ) 4217 { 4218 assert(iCount < getSlice()->getMaxNumMergeCand()); 4219 4220 tmpMV[0].setMvField( cZeroMv, NOT_VALID ); 4221 tmpMV[1].setMvField( cZeroMv, NOT_VALID ); 4222 if( ( ivCandDir[1] & 1 ) == 1 ) 4223 { 4224 tmpMV[0].setMvField( ivCandMv[ 2 ], ivCandRefIdx[ 2 ] ); 4225 } 4226 if( ( ivCandDir[1] & 2 ) == 2 ) 4227 { 4228 tmpMV[1].setMvField( ivCandMv[ 3 ], ivCandRefIdx[ 3 ] ); 4229 } 4230 4231 Bool bRemoveSpa = false; //pruning to A1, B1 4232 for(Int i = 0; i < 2; i ++) 4233 { 4234 if ( !m_mergCands[MRG_A1+i].m_bAvailable ) 4235 { 4236 continue; 4237 } 4238 if (ivCandDir[1] == m_mergCands[MRG_A1+i].m_uDir && tmpMV[0]==m_mergCands[MRG_A1+i].m_cMvField[0] && tmpMV[1]==m_mergCands[MRG_A1+i].m_cMvField[1]) 4239 { 4240 bRemoveSpa = true; 4241 break; 4242 } 4243 } 4244 if(!bRemoveSpa) 4245 { 4246 #if H_3D_NBDV 4247 tmpMV[0].getMv().setIDVFlag (false); 4248 tmpMV[1].getMv().setIDVFlag (false); 4249 #endif 4250 m_mergCands[MRG_IVDC].setCand( tmpMV, ivCandDir[1], false, false); 4251 4252 if ( mrgCandIdx == iCount ) 4253 return; 4254 iCount ++; 4255 4256 // early termination 4257 if (iCount == getSlice()->getMaxNumMergeCand()) 4258 { 4259 return; 4260 } 4261 } 4262 } 4263 #endif // H_3D_IV_MERGE 4264 4265 4266 #if H_3D 4267 iCount += m_mergCands[MRG_A0].m_bAvailable + m_mergCands[MRG_B2].m_bAvailable; 4268 #else 3959 4269 3960 //left bottom 4270 3961 UInt uiLeftBottomPartIdx = 0; 4271 3962 TComDataCU* pcCULeftBottom = 0; 4272 3963 pcCULeftBottom = this->getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB ); 3964 4273 3965 Bool isAvailableA0 = pcCULeftBottom && 4274 pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) && 4275 !pcCULeftBottom->isIntra( uiLeftBottomPartIdx ) ; 3966 pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) && 3967 pcCULeftBottom->isInter( uiLeftBottomPartIdx ) ; 3968 4276 3969 if ( isAvailableA0 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCULeftBottom, uiLeftBottomPartIdx ) ) ) 4277 3970 { 3971 #if NH_3D_MLC 3972 m_bAvailableFlagA0 = 1; 3973 #endif 4278 3974 abCandIsInter[iCount] = true; 4279 3975 // get Inter Dir … … 4292 3988 } 4293 3989 // early termination 4294 if (iCount == getSlice()->getMaxNumMergeCand()) 3990 if (iCount == getSlice()->getMaxNumMergeCand()) 4295 3991 { 4296 3992 return; 4297 3993 } 4298 3994 4299 // above left 3995 // above left 4300 3996 if( iCount < 4 ) 4301 3997 { … … 4303 3999 TComDataCU* pcCUAboveLeft = 0; 4304 4000 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr ); 4001 4305 4002 Bool isAvailableB2 = pcCUAboveLeft && 4306 pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) && 4307 !pcCUAboveLeft->isIntra( uiAboveLeftPartIdx ); 4003 pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) && 4004 pcCUAboveLeft->isInter( uiAboveLeftPartIdx ); 4005 4308 4006 if ( isAvailableB2 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) 4309 4007 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) ) 4310 4008 { 4009 #if NH_3D_MLC 4010 m_bAvailableFlagB2 = 1; 4011 #endif 4311 4012 abCandIsInter[iCount] = true; 4312 4013 // get Inter Dir … … 4326 4027 } 4327 4028 // early termination 4328 if (iCount == getSlice()->getMaxNumMergeCand()) 4029 if (iCount == getSlice()->getMaxNumMergeCand()) 4329 4030 { 4330 4031 return; 4331 4032 } 4332 #endif 4333 4334 4335 #if H_3D_IV_MERGE 4336 //////////////////////////////////////////////////// 4337 //////// SHIFTED IV (IvMCShift + IvDCShift) //////// 4338 //////////////////////////////////////////////////// 4339 if( ivMvPredFlag && iCount < getSlice()->getMaxNumMergeCand() && !getSlice()->getIsDepth() ) 4340 { 4341 if(xAddIvMRGCand( mrgCandIdx, iCount, ivCandDir, ivCandMv, ivCandRefIdx ) ) 4342 { 4343 return; 4344 } 4345 //early termination 4346 if (iCount == getSlice()->getMaxNumMergeCand()) 4347 { 4348 return; 4349 } 4350 } 4351 #endif 4352 #if !H_3D 4353 if ( getSlice()->getEnableTMVPFlag()) 4033 4034 if ( getSlice()->getEnableTMVPFlag() ) 4354 4035 { 4355 4036 //>> MTK colocated-RightBottom 4356 4037 UInt uiPartIdxRB; 4357 4038 4358 deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); 4039 deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); 4359 4040 4360 4041 UInt uiAbsPartIdxTmp = g_auiZscanToRaster[uiPartIdxRB]; 4361 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInWidth(); 4042 const UInt numPartInCtuWidth = m_pcPic->getNumPartInCtuWidth(); 4043 const UInt numPartInCtuHeight = m_pcPic->getNumPartInCtuHeight(); 4362 4044 4363 4045 TComMv cColMv; 4364 4046 Int iRefIdx; 4365 Int uiLCUIdx = -1; 4366 4367 if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() ) >= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) // image boundary check 4368 { 4369 } 4370 else if ( ( m_pcPic->getCU(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) >= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 4371 { 4372 } 4373 else 4374 { 4375 if ( ( uiAbsPartIdxTmp % uiNumPartInCUWidth < uiNumPartInCUWidth - 1 ) && // is not at the last column of LCU 4376 ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) ) // is not at the last row of LCU 4377 { 4378 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + uiNumPartInCUWidth + 1 ]; 4379 uiLCUIdx = getAddr(); 4380 } 4381 else if ( uiAbsPartIdxTmp % uiNumPartInCUWidth < uiNumPartInCUWidth - 1 ) // is not at the last column of LCU But is last row of LCU 4382 { 4383 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + uiNumPartInCUWidth + 1) % m_pcPic->getNumPartInCU() ]; 4384 } 4385 else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInHeight() - 1 ) // is not at the last row of LCU But is last column of LCU 4047 Int ctuRsAddr = -1; 4048 4049 if ( ( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth () ) < m_pcSlice->getSPS()->getPicWidthInLumaSamples () ) // image boundary check 4050 && ( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) < m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 4051 { 4052 if ( ( uiAbsPartIdxTmp % numPartInCtuWidth < numPartInCtuWidth - 1 ) && // is not at the last column of CTU 4053 ( uiAbsPartIdxTmp / numPartInCtuWidth < numPartInCtuHeight - 1 ) ) // is not at the last row of CTU 4054 { 4055 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + numPartInCtuWidth + 1 ]; 4056 ctuRsAddr = getCtuRsAddr(); 4057 } 4058 else if ( uiAbsPartIdxTmp % numPartInCtuWidth < numPartInCtuWidth - 1 ) // is not at the last column of CTU But is last row of CTU 4059 { 4060 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + numPartInCtuWidth + 1) % m_pcPic->getNumPartitionsInCtu() ]; 4061 } 4062 else if ( uiAbsPartIdxTmp / numPartInCtuWidth < numPartInCtuHeight - 1 ) // is not at the last row of CTU But is last column of CTU 4386 4063 { 4387 4064 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + 1 ]; 4388 uiLCUIdx = getAddr() + 1;4389 } 4390 else //is the right bottom corner of LCU4065 ctuRsAddr = getCtuRsAddr() + 1; 4066 } 4067 else //is the right bottom corner of CTU 4391 4068 { 4392 4069 uiAbsPartAddr = 0; 4393 4070 } 4394 4071 } 4395 4396 4072 4397 4073 iRefIdx = 0; 4074 4398 4075 Bool bExistMV = false; 4399 4076 UInt uiPartIdxCenter; 4400 UInt uiCurLCUIdx = getAddr();4401 4077 Int dir = 0; 4402 4078 UInt uiArrayAddr = iCount; 4403 4079 xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter ); 4404 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_0, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx );4080 bExistMV = ctuRsAddr >= 0 && xGetColMVP( REF_PIC_LIST_0, ctuRsAddr, uiAbsPartAddr, cColMv, iRefIdx ); 4405 4081 if( bExistMV == false ) 4406 4082 { 4407 bExistMV = xGetColMVP( REF_PIC_LIST_0, uiCurLCUIdx, uiPartIdxCenter,cColMv, iRefIdx );4083 bExistMV = xGetColMVP( REF_PIC_LIST_0, getCtuRsAddr(), uiPartIdxCenter, cColMv, iRefIdx ); 4408 4084 } 4409 4085 if( bExistMV ) … … 4415 4091 if ( getSlice()->isInterB() ) 4416 4092 { 4417 bExistMV = uiLCUIdx >= 0 && xGetColMVP( REF_PIC_LIST_1, uiLCUIdx, uiAbsPartAddr, cColMv, iRefIdx); 4093 #if NH_3D_TMVP 4094 iRefIdx = 0; 4095 #endif 4096 bExistMV = ctuRsAddr >= 0 && xGetColMVP( REF_PIC_LIST_1, ctuRsAddr, uiAbsPartAddr, cColMv, iRefIdx); 4418 4097 if( bExistMV == false ) 4419 4098 { 4420 bExistMV = xGetColMVP( REF_PIC_LIST_1, uiCurLCUIdx, uiPartIdxCenter, cColMv, iRefIdx );4099 bExistMV = xGetColMVP( REF_PIC_LIST_1, getCtuRsAddr(), uiPartIdxCenter, cColMv, iRefIdx ); 4421 4100 } 4422 4101 if( bExistMV ) … … 4426 4105 } 4427 4106 } 4428 4107 4429 4108 if (dir != 0) 4430 4109 { 4431 4110 puhInterDirNeighbours[uiArrayAddr] = dir; 4432 4111 abCandIsInter[uiArrayAddr] = true; 4112 #if NH_3D_NBDV 4113 pcMvFieldNeighbours[iCount<<1 ].getMv().setIDVFlag (false); 4114 pcMvFieldNeighbours[(iCount<<1)+1].getMv().setIDVFlag (false); 4115 #endif 4116 4433 4117 if ( mrgCandIdx == iCount ) 4434 4118 { … … 4438 4122 } 4439 4123 } 4440 // early termination 4441 if (iCount == getSlice()->getMaxNumMergeCand()) 4124 // early termination 4125 if (iCount == getSlice()->getMaxNumMergeCand()) 4442 4126 { 4443 4127 return; 4444 4128 } 4129 4445 4130 UInt uiArrayAddr = iCount; 4446 4131 UInt uiCutoff = uiArrayAddr; 4447 4448 if ( getSlice()->isInterB()) 4449 { 4450 UInt uiPriorityList0[12] = {0 , 1, 0, 2, 1, 2, 0, 3, 1, 3, 2, 3}; 4451 UInt uiPriorityList1[12] = {1 , 0, 2, 0, 2, 1, 3, 0, 3, 1, 3, 2}; 4132 4133 #if NH_3D_MLC 4134 if ( getSlice()->isInterB() && iCount<5) 4135 #else 4136 if ( getSlice()->isInterB() ) 4137 #endif 4138 { 4139 static const UInt NUM_PRIORITY_LIST=12; 4140 static const UInt uiPriorityList0[NUM_PRIORITY_LIST] = {0 , 1, 0, 2, 1, 2, 0, 3, 1, 3, 2, 3}; 4141 static const UInt uiPriorityList1[NUM_PRIORITY_LIST] = {1 , 0, 2, 0, 2, 1, 3, 0, 3, 1, 3, 2}; 4452 4142 4453 4143 for (Int idx=0; idx<uiCutoff*(uiCutoff-1) && uiArrayAddr!= getSlice()->getMaxNumMergeCand(); idx++) 4454 4144 { 4455 Int i = uiPriorityList0[idx]; Int j = uiPriorityList1[idx]; 4145 assert(idx<NUM_PRIORITY_LIST); 4146 Int i = uiPriorityList0[idx]; 4147 Int j = uiPriorityList1[idx]; 4456 4148 if (abCandIsInter[i] && abCandIsInter[j]&& (puhInterDirNeighbours[i]&0x1)&&(puhInterDirNeighbours[j]&0x2)) 4457 4149 { … … 4477 4169 } 4478 4170 // early termination 4479 if (uiArrayAddr == getSlice()->getMaxNumMergeCand()) 4171 if (uiArrayAddr == getSlice()->getMaxNumMergeCand()) 4480 4172 { 4481 4173 return; 4482 4174 } 4175 4483 4176 Int iNumRefIdx = (getSlice()->isInterB()) ? min(m_pcSlice->getNumRefIdx(REF_PIC_LIST_0), m_pcSlice->getNumRefIdx(REF_PIC_LIST_1)) : m_pcSlice->getNumRefIdx(REF_PIC_LIST_0); 4177 4484 4178 Int r = 0; 4485 4179 Int refcnt = 0; … … 4496 4190 } 4497 4191 uiArrayAddr++; 4192 4498 4193 if ( refcnt == iNumRefIdx - 1 ) 4499 4194 { … … 4506 4201 } 4507 4202 } 4508 4509 4203 numValidMergeCand = uiArrayAddr; 4510 #endif 4511 } 4512 #else 4513 4514 //! Construct a list of merging candidates 4515 Void TComDataCU::getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx ) 4516 { 4517 UInt uiAbsPartAddr = m_absZIdxInCtu + uiAbsPartIdx; 4518 Bool abCandIsInter[ MRG_MAX_NUM_CANDS ]; 4519 for( UInt ui = 0; ui < getSlice()->getMaxNumMergeCand(); ++ui ) 4520 { 4521 abCandIsInter[ui] = false; 4522 pcMvFieldNeighbours[ ( ui << 1 ) ].setRefIdx(NOT_VALID); 4523 pcMvFieldNeighbours[ ( ui << 1 ) + 1 ].setRefIdx(NOT_VALID); 4524 } 4525 numValidMergeCand = getSlice()->getMaxNumMergeCand(); 4526 // compute the location of the current PU 4527 Int xP, yP, nPSW, nPSH; 4528 this->getPartPosition(uiPUIdx, xP, yP, nPSW, nPSH); 4529 4530 Int iCount = 0; 4531 4532 UInt uiPartIdxLT, uiPartIdxRT, uiPartIdxLB; 4533 PartSize cCurPS = getPartitionSize( uiAbsPartIdx ); 4534 deriveLeftRightTopIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLT, uiPartIdxRT ); 4535 deriveLeftBottomIdxGeneral( uiAbsPartIdx, uiPUIdx, uiPartIdxLB ); 4536 4537 //left 4538 UInt uiLeftPartIdx = 0; 4539 TComDataCU* pcCULeft = 0; 4540 pcCULeft = getPULeft( uiLeftPartIdx, uiPartIdxLB ); 4541 4542 Bool isAvailableA1 = pcCULeft && 4543 pcCULeft->isDiffMER(xP -1, yP+nPSH-1, xP, yP) && 4544 !( uiPUIdx == 1 && (cCurPS == SIZE_Nx2N || cCurPS == SIZE_nLx2N || cCurPS == SIZE_nRx2N) ) && 4545 pcCULeft->isInter( uiLeftPartIdx ) ; 4546 4547 if ( isAvailableA1 ) 4548 { 4549 abCandIsInter[iCount] = true; 4550 // get Inter Dir 4551 puhInterDirNeighbours[iCount] = pcCULeft->getInterDir( uiLeftPartIdx ); 4552 // get Mv from Left 4553 pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 4554 if ( getSlice()->isInterB() ) 4555 { 4556 pcCULeft->getMvField( pcCULeft, uiLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4557 } 4558 if ( mrgCandIdx == iCount ) 4559 { 4560 return; 4561 } 4562 iCount ++; 4563 } 4564 4565 // early termination 4566 if (iCount == getSlice()->getMaxNumMergeCand()) 4567 { 4568 return; 4569 } 4570 // above 4571 UInt uiAbovePartIdx = 0; 4572 TComDataCU* pcCUAbove = 0; 4573 pcCUAbove = getPUAbove( uiAbovePartIdx, uiPartIdxRT ); 4574 4575 Bool isAvailableB1 = pcCUAbove && 4576 pcCUAbove->isDiffMER(xP+nPSW-1, yP-1, xP, yP) && 4577 !( uiPUIdx == 1 && (cCurPS == SIZE_2NxN || cCurPS == SIZE_2NxnU || cCurPS == SIZE_2NxnD) ) && 4578 pcCUAbove->isInter( uiAbovePartIdx ); 4579 4580 if ( isAvailableB1 && (!isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAbove, uiAbovePartIdx ) ) ) 4581 { 4582 abCandIsInter[iCount] = true; 4583 // get Inter Dir 4584 puhInterDirNeighbours[iCount] = pcCUAbove->getInterDir( uiAbovePartIdx ); 4585 // get Mv from Left 4586 pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 4587 if ( getSlice()->isInterB() ) 4588 { 4589 pcCUAbove->getMvField( pcCUAbove, uiAbovePartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4590 } 4591 if ( mrgCandIdx == iCount ) 4592 { 4593 return; 4594 } 4595 iCount ++; 4596 } 4597 // early termination 4598 if (iCount == getSlice()->getMaxNumMergeCand()) 4599 { 4600 return; 4601 } 4602 4603 // above right 4604 UInt uiAboveRightPartIdx = 0; 4605 TComDataCU* pcCUAboveRight = 0; 4606 pcCUAboveRight = getPUAboveRight( uiAboveRightPartIdx, uiPartIdxRT ); 4607 4608 Bool isAvailableB0 = pcCUAboveRight && 4609 pcCUAboveRight->isDiffMER(xP+nPSW, yP-1, xP, yP) && 4610 pcCUAboveRight->isInter( uiAboveRightPartIdx ); 4611 4612 if ( isAvailableB0 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveRight, uiAboveRightPartIdx ) ) ) 4613 { 4614 abCandIsInter[iCount] = true; 4615 // get Inter Dir 4616 puhInterDirNeighbours[iCount] = pcCUAboveRight->getInterDir( uiAboveRightPartIdx ); 4617 // get Mv from Left 4618 pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 4619 if ( getSlice()->isInterB() ) 4620 { 4621 pcCUAboveRight->getMvField( pcCUAboveRight, uiAboveRightPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4622 } 4623 if ( mrgCandIdx == iCount ) 4624 { 4625 return; 4626 } 4627 iCount ++; 4628 } 4629 // early termination 4630 if (iCount == getSlice()->getMaxNumMergeCand()) 4631 { 4632 return; 4633 } 4634 4635 //left bottom 4636 UInt uiLeftBottomPartIdx = 0; 4637 TComDataCU* pcCULeftBottom = 0; 4638 pcCULeftBottom = this->getPUBelowLeft( uiLeftBottomPartIdx, uiPartIdxLB ); 4639 4640 Bool isAvailableA0 = pcCULeftBottom && 4641 pcCULeftBottom->isDiffMER(xP-1, yP+nPSH, xP, yP) && 4642 pcCULeftBottom->isInter( uiLeftBottomPartIdx ) ; 4643 4644 if ( isAvailableA0 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCULeftBottom, uiLeftBottomPartIdx ) ) ) 4645 { 4646 abCandIsInter[iCount] = true; 4647 // get Inter Dir 4648 puhInterDirNeighbours[iCount] = pcCULeftBottom->getInterDir( uiLeftBottomPartIdx ); 4649 // get Mv from Left 4650 pcCULeftBottom->getMvField( pcCULeftBottom, uiLeftBottomPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 4651 if ( getSlice()->isInterB() ) 4652 { 4653 pcCULeftBottom->getMvField( pcCULeftBottom, uiLeftBottomPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4654 } 4655 if ( mrgCandIdx == iCount ) 4656 { 4657 return; 4658 } 4659 iCount ++; 4660 } 4661 // early termination 4662 if (iCount == getSlice()->getMaxNumMergeCand()) 4663 { 4664 return; 4665 } 4666 4667 // above left 4668 if( iCount < 4 ) 4669 { 4670 UInt uiAboveLeftPartIdx = 0; 4671 TComDataCU* pcCUAboveLeft = 0; 4672 pcCUAboveLeft = getPUAboveLeft( uiAboveLeftPartIdx, uiAbsPartAddr ); 4673 4674 Bool isAvailableB2 = pcCUAboveLeft && 4675 pcCUAboveLeft->isDiffMER(xP-1, yP-1, xP, yP) && 4676 pcCUAboveLeft->isInter( uiAboveLeftPartIdx ); 4677 4678 if ( isAvailableB2 && ( !isAvailableA1 || !pcCULeft->hasEqualMotion( uiLeftPartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) 4679 && ( !isAvailableB1 || !pcCUAbove->hasEqualMotion( uiAbovePartIdx, pcCUAboveLeft, uiAboveLeftPartIdx ) ) ) 4680 { 4681 abCandIsInter[iCount] = true; 4682 // get Inter Dir 4683 puhInterDirNeighbours[iCount] = pcCUAboveLeft->getInterDir( uiAboveLeftPartIdx ); 4684 // get Mv from Left 4685 pcCUAboveLeft->getMvField( pcCUAboveLeft, uiAboveLeftPartIdx, REF_PIC_LIST_0, pcMvFieldNeighbours[iCount<<1] ); 4686 if ( getSlice()->isInterB() ) 4687 { 4688 pcCUAboveLeft->getMvField( pcCUAboveLeft, uiAboveLeftPartIdx, REF_PIC_LIST_1, pcMvFieldNeighbours[(iCount<<1)+1] ); 4689 } 4690 if ( mrgCandIdx == iCount ) 4691 { 4692 return; 4693 } 4694 iCount ++; 4695 } 4696 } 4697 // early termination 4698 if (iCount == getSlice()->getMaxNumMergeCand()) 4699 { 4700 return; 4701 } 4702 4703 if ( getSlice()->getEnableTMVPFlag() ) 4704 { 4705 //>> MTK colocated-RightBottom 4706 UInt uiPartIdxRB; 4707 4708 deriveRightBottomIdx( uiPUIdx, uiPartIdxRB ); 4709 4710 UInt uiAbsPartIdxTmp = g_auiZscanToRaster[uiPartIdxRB]; 4711 const UInt numPartInCtuWidth = m_pcPic->getNumPartInCtuWidth(); 4712 const UInt numPartInCtuHeight = m_pcPic->getNumPartInCtuHeight(); 4713 4714 TComMv cColMv; 4715 Int iRefIdx; 4716 Int ctuRsAddr = -1; 4717 4718 if ( ( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth () ) < m_pcSlice->getSPS()->getPicWidthInLumaSamples () ) // image boundary check 4719 && ( ( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() ) < m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) ) 4720 { 4721 if ( ( uiAbsPartIdxTmp % numPartInCtuWidth < numPartInCtuWidth - 1 ) && // is not at the last column of CTU 4722 ( uiAbsPartIdxTmp / numPartInCtuWidth < numPartInCtuHeight - 1 ) ) // is not at the last row of CTU 4723 { 4724 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + numPartInCtuWidth + 1 ]; 4725 ctuRsAddr = getCtuRsAddr(); 4726 } 4727 else if ( uiAbsPartIdxTmp % numPartInCtuWidth < numPartInCtuWidth - 1 ) // is not at the last column of CTU But is last row of CTU 4728 { 4729 uiAbsPartAddr = g_auiRasterToZscan[ (uiAbsPartIdxTmp + numPartInCtuWidth + 1) % m_pcPic->getNumPartitionsInCtu() ]; 4730 } 4731 else if ( uiAbsPartIdxTmp / numPartInCtuWidth < numPartInCtuHeight - 1 ) // is not at the last row of CTU But is last column of CTU 4732 { 4733 uiAbsPartAddr = g_auiRasterToZscan[ uiAbsPartIdxTmp + 1 ]; 4734 ctuRsAddr = getCtuRsAddr() + 1; 4735 } 4736 else //is the right bottom corner of CTU 4737 { 4738 uiAbsPartAddr = 0; 4739 } 4740 } 4741 4742 iRefIdx = 0; 4743 4744 Bool bExistMV = false; 4745 UInt uiPartIdxCenter; 4746 Int dir = 0; 4747 UInt uiArrayAddr = iCount; 4748 xDeriveCenterIdx( uiPUIdx, uiPartIdxCenter ); 4749 bExistMV = ctuRsAddr >= 0 && xGetColMVP( REF_PIC_LIST_0, ctuRsAddr, uiAbsPartAddr, cColMv, iRefIdx ); 4750 if( bExistMV == false ) 4751 { 4752 bExistMV = xGetColMVP( REF_PIC_LIST_0, getCtuRsAddr(), uiPartIdxCenter, cColMv, iRefIdx ); 4753 } 4754 if( bExistMV ) 4755 { 4756 dir |= 1; 4757 pcMvFieldNeighbours[ 2 * uiArrayAddr ].setMvField( cColMv, iRefIdx ); 4758 } 4759 4760 if ( getSlice()->isInterB() ) 4761 { 4762 #if NH_3D_TMVP 4763 iRefIdx =0; 4764 #endif 4765 bExistMV = ctuRsAddr >= 0 && xGetColMVP( REF_PIC_LIST_1, ctuRsAddr, uiAbsPartAddr, cColMv, iRefIdx); 4766 if( bExistMV == false ) 4767 { 4768 bExistMV = xGetColMVP( REF_PIC_LIST_1, getCtuRsAddr(), uiPartIdxCenter, cColMv, iRefIdx ); 4769 } 4770 if( bExistMV ) 4771 { 4772 dir |= 2; 4773 pcMvFieldNeighbours[ 2 * uiArrayAddr + 1 ].setMvField( cColMv, iRefIdx ); 4774 } 4775 } 4776 4777 if (dir != 0) 4778 { 4779 puhInterDirNeighbours[uiArrayAddr] = dir; 4780 abCandIsInter[uiArrayAddr] = true; 4781 4782 if ( mrgCandIdx == iCount ) 4783 { 4784 return; 4785 } 4786 iCount++; 4787 } 4788 } 4789 // early termination 4790 if (iCount == getSlice()->getMaxNumMergeCand()) 4791 { 4792 return; 4793 } 4794 4795 UInt uiArrayAddr = iCount; 4796 UInt uiCutoff = uiArrayAddr; 4797 4798 if ( getSlice()->isInterB() ) 4799 { 4800 static const UInt NUM_PRIORITY_LIST=12; 4801 static const UInt uiPriorityList0[NUM_PRIORITY_LIST] = {0 , 1, 0, 2, 1, 2, 0, 3, 1, 3, 2, 3}; 4802 static const UInt uiPriorityList1[NUM_PRIORITY_LIST] = {1 , 0, 2, 0, 2, 1, 3, 0, 3, 1, 3, 2}; 4803 4804 for (Int idx=0; idx<uiCutoff*(uiCutoff-1) && uiArrayAddr!= getSlice()->getMaxNumMergeCand(); idx++) 4805 { 4806 assert(idx<NUM_PRIORITY_LIST); 4807 Int i = uiPriorityList0[idx]; 4808 Int j = uiPriorityList1[idx]; 4809 if (abCandIsInter[i] && abCandIsInter[j]&& (puhInterDirNeighbours[i]&0x1)&&(puhInterDirNeighbours[j]&0x2)) 4810 { 4811 abCandIsInter[uiArrayAddr] = true; 4812 puhInterDirNeighbours[uiArrayAddr] = 3; 4813 4814 // get Mv from cand[i] and cand[j] 4815 pcMvFieldNeighbours[uiArrayAddr << 1].setMvField(pcMvFieldNeighbours[i<<1].getMv(), pcMvFieldNeighbours[i<<1].getRefIdx()); 4816 pcMvFieldNeighbours[( uiArrayAddr << 1 ) + 1].setMvField(pcMvFieldNeighbours[(j<<1)+1].getMv(), pcMvFieldNeighbours[(j<<1)+1].getRefIdx()); 4817 4818 Int iRefPOCL0 = m_pcSlice->getRefPOC( REF_PIC_LIST_0, pcMvFieldNeighbours[(uiArrayAddr<<1)].getRefIdx() ); 4819 Int iRefPOCL1 = m_pcSlice->getRefPOC( REF_PIC_LIST_1, pcMvFieldNeighbours[(uiArrayAddr<<1)+1].getRefIdx() ); 4820 if (iRefPOCL0 == iRefPOCL1 && pcMvFieldNeighbours[(uiArrayAddr<<1)].getMv() == pcMvFieldNeighbours[(uiArrayAddr<<1)+1].getMv()) 4821 { 4822 abCandIsInter[uiArrayAddr] = false; 4823 } 4824 else 4825 { 4826 uiArrayAddr++; 4827 } 4828 } 4829 } 4830 } 4831 // early termination 4832 if (uiArrayAddr == getSlice()->getMaxNumMergeCand()) 4833 { 4834 return; 4835 } 4836 4837 Int iNumRefIdx = (getSlice()->isInterB()) ? min(m_pcSlice->getNumRefIdx(REF_PIC_LIST_0), m_pcSlice->getNumRefIdx(REF_PIC_LIST_1)) : m_pcSlice->getNumRefIdx(REF_PIC_LIST_0); 4838 4839 Int r = 0; 4840 Int refcnt = 0; 4841 while (uiArrayAddr < getSlice()->getMaxNumMergeCand()) 4842 { 4843 abCandIsInter[uiArrayAddr] = true; 4844 puhInterDirNeighbours[uiArrayAddr] = 1; 4845 pcMvFieldNeighbours[uiArrayAddr << 1].setMvField( TComMv(0, 0), r); 4846 4847 if ( getSlice()->isInterB() ) 4848 { 4849 puhInterDirNeighbours[uiArrayAddr] = 3; 4850 pcMvFieldNeighbours[(uiArrayAddr << 1) + 1].setMvField(TComMv(0, 0), r); 4851 } 4852 uiArrayAddr++; 4853 4854 if ( refcnt == iNumRefIdx - 1 ) 4855 { 4856 r = 0; 4857 } 4858 else 4859 { 4860 ++r; 4861 ++refcnt; 4862 } 4863 } 4864 numValidMergeCand = uiArrayAddr; 4865 } 4866 #endif 4204 } 4867 4205 4868 4206 /** Check whether the current PU and a spatial neighboring PU are in a same ME region. … … 5122 4460 UInt partAddr; 5123 4461 5124 #if H_3D_DBBP4462 #if NH_3D_DBBP 5125 4463 if( getDBBPFlag(0) ) 5126 4464 { … … 5142 4480 const TComSPS &sps=*(m_pcSlice->getSPS()); 5143 4481 Int iMvShift = 2; 5144 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC4482 #if NH_3D_INTEGER_MV_DEPTH 5145 4483 if( getSlice()->getIsDepth() ) 5146 4484 iMvShift = 0; … … 5666 5004 #endif 5667 5005 5668 #if H_3D_IV_MERGE5006 #if NH_3D_IV_MERGE 5669 5007 Void TComDataCU::getDispforDepth (UInt uiPartIdx, UInt uiPartAddr, DisInfo* pDisp) 5670 5008 { … … 5676 5014 Int iViewIdx = getSlice()->getDefaultRefViewIdx(); 5677 5015 pDisp->m_aVIdxCan = iViewIdx; 5678 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepth Y() - 1 )) ];5016 Int iDisp = getSlice()->getDepthToDisparityB( iViewIdx )[ (Int64) (1 << ( getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) - 1 )) ]; 5679 5017 5680 5018 cMv.setHor(iDisp); … … 5743 5081 } 5744 5082 #endif 5745 #if H_3D_NBDV5083 #if NH_3D_NBDV 5746 5084 //Notes from QC: 5747 //TBD#1: DoNBDV related contributions are just partially integrated under the marco of H_3D_NBDV_REF, remove this comment once DoNBDV and BVSP are done5085 //TBD#1: DoNBDV related contributions are just partially integrated under the marco of NH_3D_NBDV_REF, remove this comment once DoNBDV and BVSP are done 5748 5086 //TBD#2: set of DvMCP values need to be done as part of inter-view motion prediction process. Remove this comment once merge related integration is done 5749 5087 //To be checked: Parallel Merge features for NBDV, related to DV_DERIVATION_PARALLEL_B0096 and LGE_IVMP_PARALLEL_MERGE_B0136 are not integrated. The need of these features due to the adoption of CU-based NBDV is not clear. We need confirmation on this, especially by proponents 5750 5088 Void TComDataCU::getDisMvpCandNBDV( DisInfo* pDInfo 5751 #if H_3D_NBDV_REF5089 #if NH_3D_NBDV_REF 5752 5090 , Bool bDepthRefine 5753 5091 #endif … … 5772 5110 } 5773 5111 } 5774 #if H_3D_NBDV_REF5112 #if NH_3D_NBDV_REF 5775 5113 if( !m_pcSlice->getDepthRefinementFlag( ) ) 5776 5114 { … … 5795 5133 ///*** Derive center position *** 5796 5134 UInt uiPartIdxCenter; 5797 Int uiLCUIdx = getAddr();5135 Int uiLCUIdx = getCtuRsAddr(); 5798 5136 xDeriveCenterIdx(uiPartIdx, uiPartIdxCenter ); 5799 5137 … … 5822 5160 pDInfo->m_aVIdxCan = iTargetViewIdx; 5823 5161 5824 #if H_3D_NBDV_REF5162 #if NH_3D_NBDV_REF 5825 5163 TComPic* picDepth = NULL; 5826 5164 #if H_3D_FCO_VSP_DONBDV_E0163 … … 5844 5182 } 5845 5183 pDInfo->m_acDoNBDV = cColMv; 5846 #endif // H_3D_NBDV_REF5184 #endif //NH_3D_NBDV_REF 5847 5185 return; 5848 5186 } … … 5858 5196 bCheckMcpDv = true; 5859 5197 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_LEFT 5860 #if H_3D_NBDV_REF5198 #if NH_3D_NBDV_REF 5861 5199 , bDepthRefine 5862 5200 #endif … … 5868 5206 if(pcTmpCU != NULL ) 5869 5207 { 5870 bCheckMcpDv = ( ( get Addr() - pcTmpCU->getAddr() ) == 0);5208 bCheckMcpDv = ( ( getCtuRsAddr() - pcTmpCU->getCtuRsAddr() ) == 0); 5871 5209 if ( xCheckSpatialNBDV( pcTmpCU, uiIdx, pDInfo, bCheckMcpDv, &cIDVInfo, DVFROM_ABOVE 5872 #if H_3D_NBDV_REF5210 #if NH_3D_NBDV_REF 5873 5211 , bDepthRefine 5874 5212 #endif … … 5889 5227 pDInfo->m_acNBDV = cDispVec; 5890 5228 pDInfo->m_aVIdxCan = cIDVInfo.m_aVIdxCan[iList][ curPos ]; 5891 #if H_3D_NBDV_REF5229 #if NH_3D_NBDV_REF 5892 5230 #if H_3D_FCO_VSP_DONBDV_E0163 5893 5231 TComPic* picDepth = NULL; … … 5927 5265 pDInfo->m_aVIdxCan = getSlice()->getDefaultRefViewIdx(); 5928 5266 5929 #if H_3D_NBDV_REF5267 #if NH_3D_NBDV_REF 5930 5268 TComPic* picDepth = NULL; 5931 5269 #if H_3D_FCO_VSP_DONBDV_E0163 … … 5953 5291 } 5954 5292 5955 #if H_3D_NBDV_REF5293 #if NH_3D_NBDV_REF 5956 5294 Pel TComDataCU::getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iBlkWidth, Int iBlkHeight, Int* aiShiftLUT ) 5957 5295 { 5958 Int iPictureWidth = pcBaseViewDepthPicYuv->getWidth( );5959 Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight( );5960 5296 Int iPictureWidth = pcBaseViewDepthPicYuv->getWidth(COMPONENT_Y); 5297 Int iPictureHeight = pcBaseViewDepthPicYuv->getHeight(COMPONENT_Y); 5298 5961 5299 Int depthStartPosX = Clip3(0, iPictureWidth - 1, iBlkX + ((mv->getHor()+2)>>2)); 5962 5300 Int depthStartPosY = Clip3(0, iPictureHeight - 1, iBlkY + ((mv->getVer()+2)>>2)); … … 5964 5302 Int depthEndPosY = Clip3(0, iPictureHeight - 1, iBlkY + iBlkHeight - 1 + ((mv->getVer()+2)>>2)); 5965 5303 5966 Pel* depthTL = pcBaseViewDepthPicYuv->get LumaAddr();5967 Int depStride = pcBaseViewDepthPicYuv->getStride( );5304 Pel* depthTL = pcBaseViewDepthPicYuv->getAddr(COMPONENT_Y); 5305 Int depStride = pcBaseViewDepthPicYuv->getStride(COMPONENT_Y); 5968 5306 5969 5307 Pel maxDepthVal = 0; … … 5980 5318 if (picDepth) 5981 5319 { 5982 UInt uiAbsPartAddrCurrCU = m_ uiAbsIdxInLCU+ uiPartAddr;5320 UInt uiAbsPartAddrCurrCU = m_absZIdxInCtu + uiPartAddr; 5983 5321 Int iWidth, iHeight; 5984 5322 getPartIndexAndSize( uiPartIdx, uiPartAddr, iWidth, iHeight ); // The modified value of uiPartAddr won't be used any more 5985 5323 5986 5324 TComPicYuv* pcBaseViewDepthPicYuv = picDepth->getPicYuvRec(); 5987 Int iBlkX = ( getAddr() % picDepth->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ]; 5988 Int iBlkY = ( getAddr() / picDepth->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ]; 5325 const TComSPS &sps =*(getSlice()->getSPS()); 5326 Int iBlkX = ( getCtuRsAddr() % picDepth->getFrameWidthInCtus() ) * sps.getMaxCUWidth() + g_auiRasterToPelX[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ]; 5327 Int iBlkY = ( getCtuRsAddr() / picDepth->getFrameWidthInCtus() ) * sps.getMaxCUHeight() + g_auiRasterToPelY[ g_auiZscanToRaster[ uiAbsPartAddrCurrCU ] ]; 5989 5328 5990 5329 Int* aiShiftLUT = getSlice()->getDepthToDisparityB(refViewIdx ); … … 5994 5333 } 5995 5334 } 5996 #endif // H_3D_NBDV_REF5335 #endif //NH_3D_NBDV_REF 5997 5336 5998 5337 5999 5338 Bool TComDataCU::xCheckSpatialNBDV( TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paIDVInfo, UInt uiMvpDvPos 6000 #if H_3D_NBDV_REF5339 #if NH_3D_NBDV_REF 6001 5340 , Bool bDepthRefine 6002 5341 #endif … … 6019 5358 pNbDvInfo->m_acNBDV = cMvPred; 6020 5359 pNbDvInfo->m_aVIdxCan = refViewIdx; 6021 #if H_3D_NBDV_REF5360 #if NH_3D_NBDV_REF 6022 5361 TComPic* picDepth = NULL; 6023 5362 assert(getSlice()->getRefPic(eRefPicList, refId)->getPOC() == getSlice()->getPOC()); … … 6065 5404 { 6066 5405 UInt uiPartIdx = 0; 6067 UInt uiNumPartInCUWidth = m_pcPic->getNumPartIn Width();6068 Int uiLCUIdx = get Addr();5406 UInt uiNumPartInCUWidth = m_pcPic->getNumPartInCtuWidth(); 5407 Int uiLCUIdx = getCtuRsAddr(); 6069 5408 6070 5409 UInt uiPartIdxRB; … … 6072 5411 UInt uiAbsPartIdxTmp = g_auiZscanToRaster[uiPartIdxRB]; 6073 5412 6074 if (( m_pcPic->getC U(m_uiCUAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() )>= m_pcSlice->getSPS()->getPicWidthInLumaSamples() )5413 if (( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelX() + g_auiRasterToPelX[uiAbsPartIdxTmp] + m_pcPic->getMinCUWidth() )>= m_pcSlice->getSPS()->getPicWidthInLumaSamples() ) 6075 5414 { 6076 5415 riLCUIdxRBNb = -1; 6077 5416 riPartIdxRBNb = -1; 6078 5417 } 6079 else if(( m_pcPic->getC U(m_uiCUAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() )>= m_pcSlice->getSPS()->getPicHeightInLumaSamples() )5418 else if(( m_pcPic->getCtu(m_ctuRsAddr)->getCUPelY() + g_auiRasterToPelY[uiAbsPartIdxTmp] + m_pcPic->getMinCUHeight() )>= m_pcSlice->getSPS()->getPicHeightInLumaSamples() ) 6080 5419 { 6081 5420 riLCUIdxRBNb = -1; … … 6085 5424 { 6086 5425 if ( ( uiAbsPartIdxTmp % uiNumPartInCUWidth < uiNumPartInCUWidth - 1 ) && // is not at the last column of LCU 6087 ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartIn Height() - 1 ) ) // is not at the last row of LCU5426 ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInCtuHeight() - 1 ) ) // is not at the last row of LCU 6088 5427 { 6089 5428 riPartIdxRBNb = g_auiRasterToZscan[ uiAbsPartIdxTmp + uiNumPartInCUWidth + 1 ]; … … 6095 5434 riLCUIdxRBNb = -1; 6096 5435 } 6097 else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartIn Height() - 1 ) // is not at the last row of LCU But is last column of LCU5436 else if ( uiAbsPartIdxTmp / uiNumPartInCUWidth < m_pcPic->getNumPartInCtuHeight() - 1 ) // is not at the last row of LCU But is last column of LCU 6098 5437 { 6099 5438 riPartIdxRBNb = g_auiRasterToZscan[ uiAbsPartIdxTmp + 1 ]; … … 6111 5450 Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ) 6112 5451 { 6113 UInt uiCurrPartNumb = m_pcPic->getNumPartInCU() >> (uiDepth << 1); 5452 #if NH_3D_VSP // bug fix 5453 UInt uiCurrPartNumb = m_pcPic->getNumPartitionsInCtu() >> (uiDepth << 1); 5454 assert(m_pcPic->getNumPartitionsInCtu() ==m_pcPic->getNumPartInCtuWidth()*m_pcPic->getNumPartInCtuHeight()); 5455 5456 #else 5457 UInt uiCurrPartNumb = m_pcPic->getNumPartInCtuWidth() >> (uiDepth << 1); 5458 #endif 6114 5459 for (UInt ui = 0; ui < uiCurrPartNumb; ui++ ) 6115 5460 { … … 6117 5462 } 6118 5463 } 6119 #if H_3D_VSP5464 #if NH_3D_VSP || NH_3D_DBBP 6120 5465 Void TComDataCU::setDvInfoSubParts( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPUIdx, UInt uiDepth ) 6121 5466 { … … 6130 5475 Int iColViewIdx, iColRefViewIdx; 6131 5476 TComPic *pColPic = getSlice()->getRefPic( eRefPicList, refidx); 6132 TComDataCU *pColCU = pColPic->getC U( uiCUAddr );5477 TComDataCU *pColCU = pColPic->getCtu( uiCUAddr ); 6133 5478 iColViewIdx = pColCU->getSlice()->getViewIndex(); 6134 if (pColCU->getPic()==0||pColCU->getPartitionSize(uiPartUnitIdx)== SIZE_NONE||pColCU->isIntra(uiPartUnitIdx))5479 if (pColCU->getPic()==0||pColCU->getPartitionSize(uiPartUnitIdx)==NUMBER_OF_PART_SIZES||pColCU->isIntra(uiPartUnitIdx)) 6135 5480 { 6136 5481 return false; … … 6194 5539 6195 5540 Bool depthRefineFlag = false; 6196 #if H_3D_NBDV_REF5541 #if NH_3D_NBDV_REF 6197 5542 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6198 #endif // H_3D_NBDV_REF5543 #endif // NH_3D_NBDV_REF 6199 5544 6200 5545 TComMv cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; … … 6250 5595 #endif 6251 5596 6252 #if H_3D_SPIVMP5597 #if NH_3D_SPIVMP 6253 5598 Void TComDataCU::getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight) 6254 5599 { … … 6267 5612 Void TComDataCU::getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr ) 6268 5613 { 6269 uiBaseAbsPartIdx += m_ uiAbsIdxInLCU;5614 uiBaseAbsPartIdx += m_absZIdxInCtu; 6270 5615 Int iBasePelX = g_auiRasterToPelX[g_auiZscanToRaster[uiBaseAbsPartIdx]]; 6271 5616 Int iBasePelY = g_auiRasterToPelY[g_auiZscanToRaster[uiBaseAbsPartIdx]]; 6272 5617 Int iCurrPelX = iBasePelX + iPartIdx%iNumPartLine * iWidth; 6273 5618 Int iCurrPelY = iBasePelY + iPartIdx/iNumPartLine * iHeight; 6274 Int iCurrRaster = iCurrPelY / getPic()->getMinCUHeight() * getPic()->getNumPartIn Width() + iCurrPelX/getPic()->getMinCUWidth();5619 Int iCurrRaster = iCurrPelY / getPic()->getMinCUHeight() * getPic()->getNumPartInCtuWidth() + iCurrPelX/getPic()->getMinCUWidth(); 6275 5620 ruiPartAddr = g_auiRasterToZscan[iCurrRaster]; 6276 ruiPartAddr -= m_ uiAbsIdxInLCU;5621 ruiPartAddr -= m_absZIdxInCtu; 6277 5622 } 6278 5623 6279 5624 Void TComDataCU::setInterDirSP( UInt uiDir, UInt uiAbsPartIdx, Int iWidth, Int iHeight ) 6280 5625 { 6281 uiAbsPartIdx += getZorderIdxInC U();5626 uiAbsPartIdx += getZorderIdxInCtu(); 6282 5627 Int iStartPelX = g_auiRasterToPelX[g_auiZscanToRaster[uiAbsPartIdx]]; 6283 5628 Int iStartPelY = g_auiRasterToPelY[g_auiZscanToRaster[uiAbsPartIdx]]; … … 6291 5636 for (Int j=iStartPelX; j < iEndPelX; j += getPic()->getMinCUWidth()) 6292 5637 { 6293 iCurrRaster = i / getPic()->getMinCUHeight() * getPic()->getNumPartIn Width() + j/getPic()->getMinCUWidth();5638 iCurrRaster = i / getPic()->getMinCUHeight() * getPic()->getNumPartInCtuWidth() + j/getPic()->getMinCUWidth(); 6294 5639 uiPartAddr = g_auiRasterToZscan[iCurrRaster]; 6295 uiPartAddr -= getZorderIdxInC U();5640 uiPartAddr -= getZorderIdxInCtu(); 6296 5641 6297 5642 m_puhInterDir[uiPartAddr] = uiDir; … … 6301 5646 #endif 6302 5647 6303 #if H_3D_IV_MERGE5648 #if NH_3D_IV_MERGE 6304 5649 Bool 6305 5650 TComDataCU::getInterViewMergeCands(UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc , Bool bIsDepth 6306 #if H_3D_SPIVMP5651 #if NH_3D_SPIVMP 6307 5652 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 6308 5653 #endif … … 6323 5668 6324 5669 Int iCurrPosX, iCurrPosY; 6325 pcBaseRec->getTopLeftSamplePos( get Addr(), getZorderIdxInCU() + uiPartAddr, iCurrPosX, iCurrPosY );6326 6327 #if ! H_3D_SPIVMP5670 pcBaseRec->getTopLeftSamplePos( getCtuRsAddr(), getZorderIdxInCtu() + uiPartAddr, iCurrPosX, iCurrPosY ); 5671 5672 #if !NH_3D_SPIVMP 6328 5673 iCurrPosX += ( iWidth >> 1 ); 6329 5674 iCurrPosY += ( iHeight >> 1 ); … … 6331 5676 6332 5677 Bool depthRefineFlag = false; 6333 #if H_3D_NBDV_REF5678 #if NH_3D_NBDV_REF 6334 5679 depthRefineFlag = m_pcSlice->getDepthRefinementFlag( ); 6335 #endif // H_3D_NBDV_REF5680 #endif // NH_3D_NBDV_REF 6336 5681 6337 5682 TComMv cDv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; … … 6342 5687 6343 5688 Bool abPdmAvailable[8] = {false, false, false, false, false, false, false, false}; 6344 #if H_3D_NBDV5689 #if NH_3D_NBDV 6345 5690 for( Int i = 0; i < 8; i++) 6346 5691 { … … 6352 5697 { 6353 5698 6354 #if H_3D_SPIVMP5699 #if NH_3D_SPIVMP 6355 5700 //////////////////////////////// 6356 5701 //////////sub-PU IvMC/////////// … … 6358 5703 if(!m_pcSlice->getIsDepth()) 6359 5704 { 5705 #if H_3D_DBBP 6360 5706 if (!getDBBPFlag(0)) 5707 #else 5708 if (1) 5709 #endif 6361 5710 { 6362 5711 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; … … 6390 5739 } 6391 5740 6392 Int iRefCenterPosX = Clip3( 0, pcBaseRec->getWidth ( ) - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) );6393 Int iRefCenterPosY = Clip3( 0, pcBaseRec->getHeight( ) - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) );5741 Int iRefCenterPosX = Clip3( 0, pcBaseRec->getWidth (COMPONENT_Y) - 1, iCenterPosX + ( (cDv.getHor() + 2 ) >> 2 ) ); 5742 Int iRefCenterPosY = Clip3( 0, pcBaseRec->getHeight(COMPONENT_Y) - 1, iCenterPosY + ( (cDv.getVer() + 2 ) >> 2 ) ); 6394 5743 6395 5744 pcBaseRec->getCUAddrAndPartIdx( iRefCenterPosX , iRefCenterPosY , iRefCenterCUAddr, iRefCenterAbsPartIdx ); 6396 TComDataCU* pcDefaultCU = pcBasePic->getC U( iRefCenterCUAddr );5745 TComDataCU* pcDefaultCU = pcBasePic->getCtu( iRefCenterCUAddr ); 6397 5746 if(!( pcDefaultCU->getPredictionMode( iRefCenterAbsPartIdx ) == MODE_INTRA )) 6398 5747 { … … 6418 5767 abPdmAvailable[ uiCurrRefListId ] = true; 6419 5768 TComMv cMv(cDefaultMvField.getHor(), cDefaultMvField.getVer()); 6420 #if H_3D_NBDV6421 #if H_3D_IV_MERGE5769 #if NH_3D_NBDV 5770 #if NH_3D_IV_MERGE 6422 5771 if( !bIsDepth ) 6423 5772 { … … 6427 5776 cMv.setIDVVer (cDv.getVer()); 6428 5777 cMv.setIDVVId (iViewIndex); 6429 #if H_3D_IV_MERGE5778 #if NH_3D_IV_MERGE 6430 5779 } 6431 5780 #endif … … 6452 5801 for (Int j = iCurrPosX; j < iCurrPosX + iWidth; j += iSPWidth) 6453 5802 { 6454 iBasePosX = Clip3( 0, pcBaseRec->getWidth ( ) - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 ));6455 iBasePosY = Clip3( 0, pcBaseRec->getHeight( ) - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 ));5803 iBasePosX = Clip3( 0, pcBaseRec->getWidth (COMPONENT_Y) - 1, j + iDelX + ( (cDv.getHor() + 2 ) >> 2 )); 5804 iBasePosY = Clip3( 0, pcBaseRec->getHeight(COMPONENT_Y) - 1, i + iDelY + ( (cDv.getVer() + 2 ) >> 2 )); 6456 5805 6457 5806 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY, iBaseCUAddr, iBaseAbsPartIdx ); 6458 pcBaseCU = pcBasePic->getC U( iBaseCUAddr );5807 pcBaseCU = pcBasePic->getCtu( iBaseCUAddr ); 6459 5808 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6460 5809 { … … 6524 5873 //////////////////////////////// 6525 5874 6526 #if H_3D_SPIVMP5875 #if NH_3D_SPIVMP 6527 5876 if(m_pcSlice->getIsDepth()) 6528 5877 { … … 6530 5879 iCurrPosY += ( iHeight >> 1 ); 6531 5880 } 5881 #if H_3D_DBBP 6532 5882 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 6533 5883 #else 5884 for(Int iLoopCan = ( m_pcSlice->getIsDepth() ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 5885 #endif 5886 #else 6534 5887 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) 6535 5888 #endif … … 6541 5894 Int iBaseAbsPartIdx; 6542 5895 6543 Int offsetW = (iLoopCan == 0) ? 0 : ( iWidth * 2 6544 Int offsetH = (iLoopCan == 0) ? 0 : ( iHeight * 2 6545 6546 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth ( ) - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) );6547 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight( ) - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) );5896 Int offsetW = (iLoopCan == 0) ? 0 : ( iWidth * 2); 5897 Int offsetH = (iLoopCan == 0) ? 0 : ( iHeight * 2); 5898 5899 Int iBasePosX = Clip3( 0, pcBaseRec->getWidth (COMPONENT_Y) - 1, iCurrPosX + ( (cDv.getHor() + offsetW + 2 ) >> 2 ) ); 5900 Int iBasePosY = Clip3( 0, pcBaseRec->getHeight(COMPONENT_Y) - 1, iCurrPosY + ( (cDv.getVer() + offsetH + 2 ) >> 2 ) ); 6548 5901 pcBaseRec->getCUAddrAndPartIdx( iBasePosX , iBasePosY , iBaseCUAddr, iBaseAbsPartIdx ); 6549 5902 6550 TComDataCU* pcBaseCU = pcBasePic->getC U( iBaseCUAddr );5903 TComDataCU* pcBaseCU = pcBasePic->getCtu( iBaseCUAddr ); 6551 5904 if(!( pcBaseCU->getPredictionMode( iBaseAbsPartIdx ) == MODE_INTRA )) 6552 5905 { … … 6575 5928 abPdmAvailable[ (uiCurrRefListId + (iLoopCan<<2)) ] = true; 6576 5929 TComMv cMv(cBaseMvField.getHor(), cBaseMvField.getVer()); 6577 #if H_3D_NBDV6578 #if H_3D_IV_MERGE5930 #if NH_3D_NBDV 5931 #if NH_3D_IV_MERGE 6579 5932 if( !bIsDepth ) 6580 5933 { … … 6584 5937 cMv.setIDVVer (cDv.getVer()); 6585 5938 cMv.setIDVVId (iViewIndex); 6586 #if H_3D_IV_MERGE5939 #if NH_3D_IV_MERGE 6587 5940 } 6588 5941 #endif … … 6600 5953 } 6601 5954 } 6602 #if H_3D_SPIVMP 5955 #if NH_3D_SPIVMP 5956 #if H_3D_DBBP 6603 5957 for(Int iLoopCan = ( (m_pcSlice->getIsDepth() || getDBBPFlag(0)) ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 5958 #else 5959 for(Int iLoopCan = ( m_pcSlice->getIsDepth() ? 0 : 1 ); iLoopCan < ( 2 - m_pcSlice->getIsDepth() ); iLoopCan ++) 5960 #endif 6604 5961 #else 6605 5962 for(Int iLoopCan = 0; iLoopCan < 2; iLoopCan ++) … … 6630 5987 abPdmAvailable[ iRefListId + 2 + (iLoopCan<<2) ] = true; 6631 5988 paiPdmRefIdx [ iRefListId + 2 + (iLoopCan<<2) ] = iPdmRefIdx; 6632 #if H_3D_NBDV_REF5989 #if NH_3D_NBDV_REF 6633 5990 TComMv cMv = depthRefineFlag ? pDInfo->m_acDoNBDV : pDInfo->m_acNBDV; 6634 5991 #endif 6635 5992 cMv.setHor( cMv.getHor() + ioffsetDV ); 6636 #if H_3D_IV_MERGE5993 #if NH_3D_IV_MERGE 6637 5994 if( bIsDepth ) 6638 5995 { … … 6655 6012 } 6656 6013 #endif 6657 #if H_3D_ARP6014 #if NH_3D_ARP 6658 6015 Void TComDataCU::setARPWSubParts ( UChar w, UInt uiAbsPartIdx, UInt uiDepth ) 6659 6016 { 6660 assert( sizeof( *m_puhARPW) == 1 ); 6661 memset( m_puhARPW + uiAbsPartIdx, w, m_pcPic->getNumPartInCU() >> ( 2 * uiDepth ) ); 6017 setSubPart<UChar>( w, m_puhARPW, uiAbsPartIdx, uiDepth, 0 ); 6662 6018 } 6663 6019 #endif … … 6728 6084 #endif 6729 6085 6730 #if H_3D_VSP6086 #if NH_3D_VSP 6731 6087 Void TComDataCU::setMvFieldPUForVSP( TComDataCU* pcCU, UInt partAddr, Int width, Int height, RefPicList eRefPicList, Int iRefIdx, Int &vspSize ) 6732 6088 { … … 6784 6140 TComCUMvField *cuMvField = cu->getCUMvField( refPicList ); 6785 6141 Int partAddrRasterSubPULine = g_auiZscanToRaster[ partAddr ]; 6786 Int numPartsLine = cu->getPic()->getNumPartIn Width();6142 Int numPartsLine = cu->getPic()->getNumPartInCtuWidth(); 6787 6143 6788 6144 Int nTxtPerMvInfoX = 4; // cu->getPic()->getMinCUWidth(); 6789 6145 Int nTxtPerMvInfoY = 4; // cu->getPic()->getMinCUHeight(); 6790 6146 6791 Int refDepStride = picRefDepth->getStride( );6147 Int refDepStride = picRefDepth->getStride( COMPONENT_Y ); 6792 6148 6793 6149 TComMv tmpMv(0, 0); … … 6795 6151 6796 6152 Int refDepOffset = ( (dv->getHor()+2) >> 2 ) + ( (dv->getVer()+2) >> 2 ) * refDepStride; 6797 Pel *refDepth = picRefDepth->get LumaAddr( cu->getAddr(), cu->getZorderIdxInCU() + partAddr ) + refDepOffset;6153 Pel *refDepth = picRefDepth->getAddr( COMPONENT_Y, cu->getCtuRsAddr(), cu->getZorderIdxInCtu() + partAddr ) + refDepOffset; 6798 6154 6799 6155 if ((height % 8)) -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComDataCU.h
r1225 r1274 50 50 #include "TComPattern.h" 51 51 52 #if H_3D_ARP53 #include "TComYuv.h"54 #endif55 52 #if H_3D 56 53 #include <algorithm> … … 65 62 static const UInt NUM_MOST_PROBABLE_MODES=3; 66 63 67 #if H_3D_DBBP64 #if NH_3D_DBBP 68 65 typedef struct _DBBPTmpData 69 66 { … … 167 164 Char* m_apiMVPNum[NUM_REF_PIC_LIST_01]; ///< array of number of possible motion vectors predictors 168 165 Bool* m_pbIPCMFlag; ///< array of intra_pcm flags 169 #if H_3D_NBDV166 #if NH_3D_NBDV 170 167 DisInfo* m_pDvInfo; 171 168 #endif 172 #if H_3D_VSP169 #if NH_3D_VSP 173 170 Char* m_piVSPFlag; ///< array of VSP flags to indicate whehter a block uses VSP or not ///< 0: non-VSP; 1: VSP 174 171 #endif 175 #if H_3D_SPIVMP172 #if NH_3D_SPIVMP 176 173 Bool* m_pbSPIVMPFlag; ///< array of sub-PU IVMP flags to indicate whehter a block uses sub-PU IVMP ///< 0: non-SPIVMP; 1: SPIVMP 177 174 #endif 178 #if H_3D_ARP175 #if NH_3D_ARP 179 176 UChar* m_puhARPW; 180 177 #endif … … 193 190 #endif 194 191 #endif 195 #if H_3D_DBBP192 #if NH_3D_DBBP 196 193 Bool* m_pbDBBPFlag; ///< array of DBBP flags 197 194 DbbpTmpData m_sDBBPTmpData; 198 195 #endif 199 #if H_3D196 #if NH_3D_MLC 200 197 Bool m_bAvailableFlagA1; ///< A1 available flag 201 198 Bool m_bAvailableFlagB1; ///< B1 available flag … … 220 217 UInt m_uiTotalBins; ///< sum of partition bins 221 218 Char m_codedQP; 222 #if H_3D 223 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 224 #endif 225 #if H_3D_IV_MERGE 226 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; 227 Int m_baseListidc; 219 #if NH_3D_MLC 220 DisInfo m_cDefaultDisInfo; ///< Default disparity information for initializing 221 TComMotionCand m_mergCands[MRG_IVSHIFT+1]; ///< Motion candidates for merge mode 222 Int m_numSpatialCands; 228 223 #endif 229 224 … … 235 230 Bool xAddMVPCand ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 236 231 Bool xAddMVPCandOrder ( AMVPInfo* pInfo, RefPicList eRefPicList, Int iRefIdx, UInt uiPartUnitIdx, MVP_DIR eDir ); 237 #if H_3D_VSP232 #if NH_3D_VSP 238 233 Bool xAddVspCand( Int mrgCandIdx, DisInfo* pDInfo, Int& iCount); 239 234 #endif 240 #if H_3D_IV_MERGE235 #if NH_3D_IV_MERGE 241 236 Bool xAddIvMRGCand( Int mrgCandIdx, Int& iCount, Int* ivCandDir, TComMv* ivCandMv, Int* ivCandRefIdx ); 242 237 #endif … … 251 246 252 247 /// compute scaling factor from POC difference 253 #if ! H_3D_ARP248 #if !NH_3D_ARP 254 249 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 255 250 #endif … … 257 252 Void xDeriveCenterIdx( UInt uiPartIdx, UInt& ruiPartIdxCenter ); 258 253 259 #if H_3D_VSP254 #if NH_3D_VSP 260 255 Void xSetMvFieldForVSP ( TComDataCU *cu, TComPicYuv *picRefDepth, TComMv *dv, UInt partAddr, Int width, Int height, Int *shiftLUT, RefPicList refPicList, Int refIdx, Bool isDepth, Int &vspSize ); 261 256 #endif … … 268 263 // create / destroy / initialize / copy 269 264 // ------------------------------------------------------------------------------------------------------------------- 270 #if H_3D_ARP 265 #if NH_3D_ARP 266 /// compute scaling factor from POC difference 271 267 Int xGetDistScaleFactor ( Int iCurrPOC, Int iCurrRefPOC, Int iColPOC, Int iColRefPOC ); 272 268 #endif … … 282 278 Void initSubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx, UInt uiDepth, Int qp ); 283 279 Void setOutsideCUPart ( UInt uiAbsPartIdx, UInt uiDepth ); 284 #if H_3D_NBDV285 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx);280 #if NH_3D_NBDV 281 Void copyDVInfoFrom (TComDataCU* pcCU, UInt uiAbsPartIdx); 286 282 #endif 287 283 288 284 Void copySubCU ( TComDataCU* pcCU, UInt uiPartUnitIdx ); 289 285 Void copyInterPredInfoFrom ( TComDataCU* pcCU, UInt uiAbsPartIdx, RefPicList eRefPicList 290 #if H_3D_NBDV286 #if NH_3D_NBDV 291 287 , Bool bNBDV = false 292 288 #endif … … 319 315 #endif 320 316 317 #if NH_3D_ARP 318 Void setSlice ( TComSlice* pcSlice) { m_pcSlice = pcSlice; } 319 Void setPic ( TComDataCU* pcCU ) { m_pcPic = pcCU->getPic(); } 320 #endif 321 321 // ------------------------------------------------------------------------------------------------------------------- 322 322 // member functions for CU data … … 329 329 Void setCUTransquantBypassSubParts( Bool flag, UInt uiAbsPartIdx, UInt uiDepth ); 330 330 331 #if H_3D_DBBP331 #if NH_3D_DBBP 332 332 Pel* getVirtualDepthBlock(UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, UInt& uiDepthStride); 333 333 #endif … … 353 353 Void setPredModeSubParts ( PredMode eMode, UInt uiAbsPartIdx, UInt uiDepth ); 354 354 355 #if H_3D_DBBP355 #if NH_3D_DBBP 356 356 Bool* getDBBPFlag () { return m_pbDBBPFlag; } 357 357 Bool getDBBPFlag ( UInt uiIdx ) { return m_pbDBBPFlag[uiIdx]; } … … 454 454 template <typename T> 455 455 Void setSubPart ( T bParameter, T* pbBaseCtu, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); 456 #if H_3D_VSP 456 #if H_3D_VSP || NH_3D_DBBP 457 457 template<typename T> 458 458 Void setSubPartT ( T uiParameter, T* puhBaseLCU, UInt uiCUAddr, UInt uiCUDepth, UInt uiPUIdx ); … … 480 480 Void setIPCMFlag (UInt uiIdx, Bool b ) { m_pbIPCMFlag[uiIdx] = b; } 481 481 Void setIPCMFlagSubParts (Bool bIpcmFlag, UInt uiAbsPartIdx, UInt uiDepth); 482 #if H_3D_NBDV482 #if NH_3D_NBDV 483 483 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiDepth ); 484 #if H_3D_VSP || NH_3D_DBBP 484 485 Void setDvInfoSubParts ( DisInfo cDvInfo, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth); 486 #endif 485 487 DisInfo* getDvInfo () { return m_pDvInfo; } 486 488 DisInfo getDvInfo (UInt uiIdx) { return m_pDvInfo[uiIdx]; } 487 489 #endif 488 #if H_3D_NBDV490 #if NH_3D_NBDV 489 491 Void xDeriveRightBottomNbIdx(Int &uiLCUIdxRBNb, Int &uiPartIdxRBNb ); 490 492 Bool xCheckSpatialNBDV (TComDataCU* pcTmpCU, UInt uiIdx, DisInfo* pNbDvInfo, Bool bSearchForMvpDv, IDVInfo* paMvpDvInfo, 491 493 UInt uiMvpDvPos 492 #if H_3D_NBDV_REF494 #if NH_3D_NBDV_REF 493 495 , Bool bDepthRefine = false 494 496 #endif … … 496 498 Bool xGetColDisMV ( Int currCandPic, RefPicList eRefPicList, Int refidx, Int uiCUAddr, Int uiPartUnitIdx, TComMv& rcMv, Int & iTargetViewIdx, Int & iStartViewIdx ); 497 499 Void getDisMvpCandNBDV ( DisInfo* pDInfo 498 #if H_3D_NBDV_REF500 #if NH_3D_NBDV_REF 499 501 , Bool bDepthRefine = false 500 502 #endif 501 503 ); 502 504 505 #if NH_3D_IV_MERGE 506 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); 507 #endif 508 503 509 #if H_3D 504 510 Void getDispforDepth ( UInt uiPartIdx, UInt uiPartAddr, DisInfo* cDisp); … … 507 513 Bool getNeighDepth (UInt uiPartIdx, UInt uiPartAddr, Pel* pNeighDepth, Int index); 508 514 #endif 509 #if H_3D_NBDV_REF515 #if NH_3D_NBDV_REF 510 516 Pel getMcpFromDM(TComPicYuv* pcBaseViewDepthPicYuv, TComMv* mv, Int iBlkX, Int iBlkY, Int iWidth, Int iHeight, Int* aiShiftLUT ); 511 517 Void estimateDVFromDM(Int refViewIdx, UInt uiPartIdx, TComPic* picDepth, UInt uiPartAddr, TComMv* cMvPred ); 512 #endif // H_3D_NBDV_REF518 #endif //NH_3D_NBDV_REF 513 519 #endif 514 520 #if H_3D_FAST_TEXTURE_ENCODING 515 521 Void getIVNStatus ( UInt uiPartIdx, DisInfo* pDInfo, Bool& bIVFMerge, Int& iIVFMaxD); 516 522 #endif 517 #if H_3D_SPIVMP523 #if NH_3D_SPIVMP 518 524 Void getSPPara(Int iPUWidth, Int iPUHeight, Int& iNumSP, Int& iNumSPInOneLine, Int& iSPWidth, Int& iSPHeight); 519 525 Void getSPAbsPartIdx(UInt uiBaseAbsPartIdx, Int iWidth, Int iHeight, Int iPartIdx, Int iNumPartLine, UInt& ruiPartAddr ); 520 526 Void setInterDirSP( UInt uiDir, UInt uiAbsPartIdx, Int iWidth, Int iHeight ); 521 527 #endif 522 #if H_3D_IV_MERGE528 #if NH_3D_IV_MERGE 523 529 Bool getInterViewMergeCands ( UInt uiPartIdx, Int* paiPdmRefIdx, TComMv* pacPdmMv, DisInfo* pDInfo, Int* availableMcDc, Bool bIsDepth 524 530 525 #if H_3D_SPIVMP531 #if NH_3D_SPIVMP 526 532 , TComMvField* pcMFieldSP, UChar* puhInterDirSP 527 533 #endif … … 529 535 ); 530 536 #endif 531 #if H_3D_ARP537 #if NH_3D_ARP 532 538 UChar* getARPW () { return m_puhARPW; } 533 539 UChar getARPW ( UInt uiIdx ) { return m_puhARPW[uiIdx]; } 534 540 Void setARPW ( UInt uiIdx, UChar w ) { m_puhARPW[uiIdx] = w; } 535 541 Void setARPWSubParts ( UChar w, UInt uiAbsPartIdx, UInt uiDepth ); 536 Double getARPWFactor ( UInt uiIdx );537 542 #endif 538 543 #if NH_3D_IC … … 542 547 Void setICFlagSubParts ( Bool bICFlag, UInt uiAbsPartIdx, UInt uiPartIdx, UInt uiDepth ); 543 548 Bool isICFlagRequired ( UInt uiAbsPartIdx ); 549 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 550 #elif NH_3D_VSP 544 551 Void getPartIndexAndSize( UInt uiPartIdx, UInt& ruiPartAddr, Int& riWidth, Int& riHeight, UInt uiAbsPartIdx = 0, Bool bLCU = false); 545 552 #else … … 654 661 Bool hasEqualMotion ( UInt uiAbsPartIdx, TComDataCU* pcCandCU, UInt uiCandAbsPartIdx ); 655 662 656 #if H_3D657 Bool getAvailableFlagA1() { return m_bAvailableFlagA1; }658 Bool getAvailableFlagB1() { return m_bAvailableFlagB1; }659 Bool getAvailableFlagB0() { return m_bAvailableFlagB0; }660 Bool getAvailableFlagA0() { return m_bAvailableFlagA0; }661 Bool getAvailableFlagB2() { return m_bAvailableFlagB2; }663 #if NH_3D_MLC 664 Bool getAvailableFlagA1() { return m_bAvailableFlagA1; } 665 Bool getAvailableFlagB1() { return m_bAvailableFlagB1; } 666 Bool getAvailableFlagB0() { return m_bAvailableFlagB0; } 667 Bool getAvailableFlagA0() { return m_bAvailableFlagA0; } 668 Bool getAvailableFlagB2() { return m_bAvailableFlagB2; } 662 669 Void initAvailableFlags() { m_bAvailableFlagA1 = m_bAvailableFlagB1 = m_bAvailableFlagB0 = m_bAvailableFlagA0 = m_bAvailableFlagB2 = 0; } 663 670 Void buildMCL(TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 664 #if H_3D_VSP671 #if NH_3D_VSP 665 672 , Int* vspFlag 666 673 #endif 667 #if H_3D_SPIVMP674 #if NH_3D_SPIVMP 668 675 , Bool* pbSPIVMPFlag 669 676 #endif 670 677 , Int& numValidMergeCand 671 678 ); 672 Void getInterMergeCandidates( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1); 673 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 674 #else 679 Void xGetInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours 680 #if NH_3D_SPIVMP 681 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 682 #endif 683 , Int& numValidMergeCand, Int mrgCandIdx = -1 ); 684 #endif 675 685 Void getInterMergeCandidates ( UInt uiAbsPartIdx, UInt uiPUIdx, TComMvField* pcMFieldNeighbours, UChar* puhInterDirNeighbours, Int& numValidMergeCand, Int mrgCandIdx = -1 ); 676 #endif 677 #if H_3D_SPIVMP 678 , TComMvField* pcMvFieldSP, UChar* puhInterDirSP 679 #endif 680 681 #if H_3D_VSP 682 #if H_3D_SPIVMP 686 687 #if NH_3D_VSP 688 #if NH_3D_SPIVMP 683 689 Bool* getSPIVMPFlag () { return m_pbSPIVMPFlag; } 684 690 Bool getSPIVMPFlag ( UInt uiIdx ) { return m_pbSPIVMPFlag[uiIdx]; } … … 723 729 UInt getCtxSkipFlag ( UInt uiAbsPartIdx ); 724 730 UInt getCtxInterDir ( UInt uiAbsPartIdx ); 725 #if H_3D_ARP731 #if NH_3D_ARP 726 732 UInt getCTXARPWFlag ( UInt uiAbsPartIdx ); 727 733 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComInterpolationFilter.cpp
r1200 r1274 75 75 }; 76 76 77 #if H_3D_ARP77 #if NH_3D_ARP 78 78 const Short TComInterpolationFilter::m_lumaFilterARP[4][NTAPS_LUMA_ARP] = 79 79 { … … 361 361 */ 362 362 Void TComInterpolationFilter::filterHor(const ComponentID compID, Pel *src, Int srcStride, Pel *dst, Int dstStride, Int width, Int height, Int frac, Bool isLast, const ChromaFormat fmt, const Int bitDepth 363 #if H_3D_ARP363 #if NH_3D_ARP 364 364 , Bool filterType 365 365 #endif … … 372 372 else if (isLuma(compID)) 373 373 { 374 #if H_3D_ARP 374 assert(frac >= 0 && frac < LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS); 375 #if NH_3D_ARP 375 376 if(filterType) 376 377 { 377 filterHor<NTAPS_LUMA_ARP>( g_bitDepthY, src, srcStride, dst, dstStride, width, height, isLast, m_lumaFilterARP[frac]);378 filterHor<NTAPS_LUMA_ARP>(bitDepth, src, srcStride, dst, dstStride, width, height, isLast, m_lumaFilterARP[frac]); 378 379 } 379 380 else 380 381 { 381 382 #endif 382 383 assert(frac >= 0 && frac < LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS);384 383 filterHor<NTAPS_LUMA>(bitDepth, src, srcStride, dst, dstStride, width, height, isLast, m_lumaFilter[frac]); 385 #if H_3D_ARP384 #if NH_3D_ARP 386 385 } 387 386 #endif … … 392 391 const UInt csx = getComponentScaleX(compID, fmt); 393 392 assert(frac >=0 && csx<2 && (frac<<(1-csx)) < CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS); 393 #if NH_3D_ARP 394 if(filterType) 395 { 396 filterHor<NTAPS_CHROMA_ARP>(bitDepth, src, srcStride, dst, dstStride, width, height, isLast, m_chromaFilterARP[frac]); 397 } 398 else 399 { 400 #endif 394 401 filterHor<NTAPS_CHROMA>(bitDepth, src, srcStride, dst, dstStride, width, height, isLast, m_chromaFilter[frac<<(1-csx)]); 402 #if NH_3D_ARP 403 } 404 #endif 395 405 } 396 406 } … … 414 424 */ 415 425 Void TComInterpolationFilter::filterVer(const ComponentID compID, Pel *src, Int srcStride, Pel *dst, Int dstStride, Int width, Int height, Int frac, Bool isFirst, Bool isLast, const ChromaFormat fmt, const Int bitDepth 416 #if H_3D_ARP426 #if NH_3D_ARP 417 427 , Bool filterType 418 428 #endif … … 425 435 else if (isLuma(compID)) 426 436 { 427 #if H_3D_ARP 437 assert(frac >= 0 && frac < LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS); 438 #if NH_3D_ARP 428 439 if(filterType) 429 440 { 430 filterVer<NTAPS_LUMA_ARP>( g_bitDepthY, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaFilterARP[frac]);441 filterVer<NTAPS_LUMA_ARP>(bitDepth, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaFilterARP[frac]); 431 442 } 432 443 else 433 444 { 434 445 #endif 435 assert(frac >= 0 && frac < LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS);436 446 filterVer<NTAPS_LUMA>(bitDepth, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_lumaFilter[frac]); 437 #if H_3D_ARP447 #if NH_3D_ARP 438 448 } 439 449 #endif … … 444 454 const UInt csy = getComponentScaleY(compID, fmt); 445 455 assert(frac >=0 && csy<2 && (frac<<(1-csy)) < CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS); 456 #if NH_3D_ARP 457 if(filterType) 458 { 459 filterVer<NTAPS_CHROMA_ARP>(bitDepth, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_chromaFilterARP[frac]); 460 } 461 else 462 { 463 #endif 446 464 filterVer<NTAPS_CHROMA>(bitDepth, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_chromaFilter[frac<<(1-csy)]); 447 } 448 } 449 450 #if H_3D_ARP 451 , Bool filterType 452 #endif 453 454 #if H_3D_ARP 455 if(filterType) 456 { 457 filterHor<NTAPS_CHROMA_ARP>(g_bitDepthC, src, srcStride, dst, dstStride, width, height, isLast, m_chromaFilterARP[frac]); 458 } 459 else 460 { 461 #endif 462 #if H_3D_ARP 463 } 464 #endif 465 #if H_3D_ARP 466 , Bool filterType 467 #endif 468 #if H_3D_ARP 469 if(filterType) 470 { 471 filterVer<NTAPS_CHROMA_ARP>(g_bitDepthC, src, srcStride, dst, dstStride, width, height, isFirst, isLast, m_chromaFilterARP[frac]); 472 } 473 else 474 { 475 #endif 476 #if H_3D_ARP 477 } 478 #endif 479 480 481 465 #if NH_3D_ARP 466 } 467 #endif 468 } 469 } 482 470 //! \} -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComInterpolationFilter.h
r1200 r1274 45 45 //! \{ 46 46 47 #if H_3D_ARP47 #if NH_3D_ARP 48 48 #define NTAPS_LUMA_ARP 2 ///< Number of taps for luma 49 49 #define NTAPS_CHROMA_ARP 2 ///< Number of taps for chroma … … 63 63 static const TFilterCoeff m_lumaFilter[LUMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS][NTAPS_LUMA]; ///< Luma filter taps 64 64 static const TFilterCoeff m_chromaFilter[CHROMA_INTERPOLATION_FILTER_SUB_SAMPLE_POSITIONS][NTAPS_CHROMA]; ///< Chroma filter taps 65 #if H_3D_ARP65 #if NH_3D_ARP 66 66 static const Short m_lumaFilterARP [4][NTAPS_LUMA_ARP]; ///< Luma filter taps for ARP 67 67 static const Short m_chromaFilterARP[8][NTAPS_CHROMA_ARP]; ///< Chroma filter taps for ARP … … 83 83 84 84 Void filterHor(const ComponentID compID, Pel *src, Int srcStride, Pel *dst, Int dstStride, Int width, Int height, Int frac, Bool isLast, const ChromaFormat fmt, const Int bitDepth 85 #if H_3D_ARP85 #if NH_3D_ARP 86 86 , Bool filterType = false 87 87 #endif 88 88 ); 89 89 Void filterVer(const ComponentID compID, Pel *src, Int srcStride, Pel *dst, Int dstStride, Int width, Int height, Int frac, Bool isFirst, Bool isLast, const ChromaFormat fmt, const Int bitDepth 90 #if H_3D_ARP90 #if NH_3D_ARP 91 91 , Bool filterType = false 92 92 #endif … … 94 94 }; 95 95 96 #if H_3D_ARP97 , Bool filterType = false98 #endif99 #if H_3D_ARP100 , Bool filterType = false101 #endif102 103 96 //! \} 104 97 -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComMotionInfo.cpp
r1200 r1274 40 40 #include "assert.h" 41 41 #include <stdlib.h> 42 #if H_3D_SPIVMP42 #if NH_3D_SPIVMP 43 43 #include "TComDataCU.h" 44 44 #include "TComPic.h" … … 328 328 } 329 329 330 #if H_3D_SPIVMP330 #if NH_3D_SPIVMP 331 331 Void TComCUMvField::setMvFieldSP( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight ) 332 332 { 333 uiAbsPartIdx += pcCU->getZorderIdxInC U();333 uiAbsPartIdx += pcCU->getZorderIdxInCtu(); 334 334 Int iStartPelX = g_auiRasterToPelX[g_auiZscanToRaster[uiAbsPartIdx]]; 335 335 Int iStartPelY = g_auiRasterToPelY[g_auiZscanToRaster[uiAbsPartIdx]]; … … 341 341 for (Int j=iStartPelX; j < iEndPelX; j += pcCU->getPic()->getMinCUWidth()) 342 342 { 343 Int iCurrRaster = i / pcCU->getPic()->getMinCUHeight() * pcCU->getPic()->getNumPartIn Width() + j/pcCU->getPic()->getMinCUWidth();343 Int iCurrRaster = i / pcCU->getPic()->getMinCUHeight() * pcCU->getPic()->getNumPartInCtuWidth() + j/pcCU->getPic()->getMinCUWidth(); 344 344 Int uiPartAddr = g_auiRasterToZscan[iCurrRaster]; 345 uiPartAddr -= pcCU->getZorderIdxInC U();345 uiPartAddr -= pcCU->getZorderIdxInCtu(); 346 346 347 347 m_pcMv[uiPartAddr] = cMvField.getMv(); -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComMotionInfo.h
r1196 r1274 50 50 // ==================================================================================================================== 51 51 52 #if H_3D_SPIVMP52 #if NH_3D_SPIVMP 53 53 class TComDataCU; 54 54 #endif … … 60 60 } AMVPInfo; 61 61 62 #if H_3D_NBDV62 #if NH_3D_NBDV 63 63 typedef struct _DisCand 64 64 { 65 65 TComMv m_acNBDV; // DV from NBDV 66 #if H_3D_NBDV_REF66 #if NH_3D_NBDV_REF 67 67 TComMv m_acDoNBDV; // DV from DoNBDV 68 68 #endif … … 107 107 Int getHor () const { return m_acMv.getHor(); } 108 108 Int getVer () const { return m_acMv.getVer(); } 109 #if H_3D_IV_MERGE109 #if NH_3D_IV_MERGE 110 110 Bool operator== ( const TComMvField& rcMv ) const 111 111 { … … 167 167 Void setAllRefIdx ( Int iRefIdx, PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 ); 168 168 Void setAllMvField( TComMvField const & mvField, PartSize eMbMode, Int iPartAddr, UInt uiDepth, Int iPartIdx=0 ); 169 #if H_3D_SPIVMP169 #if NH_3D_SPIVMP 170 170 Void setMvFieldSP ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComMvField cMvField, Int iWidth, Int iHeight ); 171 171 #endif 172 #if H_3D_VSP172 #if NH_3D_VSP 173 173 Void setMv ( Int iIdx, TComMv const & rcMv ) { m_pcMv[iIdx] = rcMv; } 174 174 Void setRefIdx ( Int iIdx, Int iRefIdx ) { m_piRefIdx[iIdx] = iRefIdx; } … … 192 192 //! \} 193 193 194 #if H_3D_IV_MERGE 194 #if NH_3D_MLC 195 /// class for container of merge candidate 195 196 class TComMotionCand 196 197 { … … 199 200 TComMvField m_cMvField[2]; 200 201 UChar m_uDir; 201 #if H_3D_VSP202 #if NH_3D_VSP 202 203 Int m_iVspFlag; 203 #endif 204 #endif 205 #if NH_3D_SPIVMP 204 206 Bool m_bSPIVMPFlag; 207 #endif 205 208 206 209 public: … … 209 212 m_bAvailable = false; 210 213 m_uDir = 0; 211 #if H_3D_VSP214 #if NH_3D_VSP 212 215 m_iVspFlag = 0; 213 216 #endif 217 #if NH_3D_SPIVMP 214 218 m_bSPIVMPFlag = false; 219 #endif 215 220 } 216 221 … … 226 231 m_bAvailable = false; 227 232 m_uDir = 0; 228 #if H_3D_VSP233 #if NH_3D_VSP 229 234 m_iVspFlag = 0; 230 235 #endif 236 #if NH_3D_SPIVMP 231 237 m_bSPIVMPFlag = false; 238 #endif 232 239 m_cMvField[0].setMvField(cZeroMv, NOT_VALID); 233 240 m_cMvField[1].setMvField(cZeroMv, NOT_VALID); … … 235 242 236 243 Void setCand(TComMvField* pcMvFieldNeighbours, UChar uhInterDirNeighbours 237 #if H_3D_VSP244 #if NH_3D_VSP 238 245 , Int vspFlag 239 246 #endif 247 #if NH_3D_SPIVMP 240 248 , Bool bSPIVMPFlag 249 #endif 241 250 ) 242 251 { … … 245 254 m_cMvField[1] = pcMvFieldNeighbours[1]; 246 255 m_uDir = uhInterDirNeighbours; 247 #if H_3D_VSP256 #if NH_3D_VSP 248 257 m_iVspFlag = vspFlag; 249 258 #endif 259 #if NH_3D_SPIVMP 250 260 m_bSPIVMPFlag = bSPIVMPFlag; 251 } 252 253 261 #endif 262 } 263 254 264 Void getCand(Int iCount, TComMvField* pcMvFieldNeighbours, UChar* puhInterDirNeighbours 255 #if H_3D_VSP265 #if NH_3D_VSP 256 266 , Int* vspFlag 257 267 #endif 268 #if NH_3D_SPIVMP 258 269 , Bool* pbSPIVMPFlag 270 #endif 259 271 ) 260 272 { … … 262 274 pcMvFieldNeighbours[(iCount<<1) + 1] = m_cMvField[1]; 263 275 puhInterDirNeighbours[iCount] = m_uDir; 264 #if H_3D_VSP276 #if NH_3D_VSP 265 277 vspFlag[iCount] = m_iVspFlag; 266 278 #endif 279 #if NH_3D_SPIVMP 267 280 pbSPIVMPFlag[iCount] = m_bSPIVMPFlag; 281 #endif 268 282 } 269 283 }; -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComMv.h
r1200 r1274 57 57 Short m_iHor; ///< horizontal component of motion vector 58 58 Short m_iVer; ///< vertical component of motion vector 59 #if H_3D_NBDV59 #if NH_3D_NBDV 60 60 Bool m_bIDV; 61 61 Short m_iIDVHor; … … 72 72 m_iHor(0), 73 73 m_iVer(0) 74 #if H_3D_NBDV74 #if NH_3D_NBDV 75 75 , m_bIDV(false) 76 76 , m_iIDVHor(0) … … 84 84 m_iHor(iHor), 85 85 m_iVer(iVer) 86 #if H_3D_NBDV86 #if NH_3D_NBDV 87 87 , m_bIDV(false) 88 88 , m_iIDVHor(0) … … 101 101 Void setVer ( Short i ) { m_iVer = i; } 102 102 Void setZero () { m_iHor = m_iVer = 0; 103 #if H_3D_NBDV103 #if NH_3D_NBDV 104 104 m_bIDV = false; m_iIDVHor = m_iIDVVer = 0; 105 105 m_iIDVVId = 0; 106 106 #endif 107 107 } 108 #if H_3D_NBDV108 #if NH_3D_NBDV 109 109 Void setIDVHor (Short i) {m_iIDVHor = i;} 110 110 Void setIDVVer (Short i) {m_iIDVVer = i;} … … 120 120 Int getAbsHor () const { return abs( m_iHor ); } 121 121 Int getAbsVer () const { return abs( m_iVer ); } 122 #if H_3D_NBDV122 #if NH_3D_NBDV 123 123 Short getIDVHor () const { return m_iIDVHor; } 124 124 Short getIDVVer () const { return m_iIDVVer; } -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPic.cpp
r1256 r1274 78 78 m_bReduceBitsQTL = 0; 79 79 #endif 80 #if H_3D_NBDV80 #if NH_3D_NBDV 81 81 m_iNumDdvCandPics = 0; 82 82 m_eRapRefList = REF_PIC_LIST_0; … … 143 143 } 144 144 #if NH_3D 145 #if NH_3D_ARP 146 Void TComPic::getCUAddrAndPartIdx( Int iX, Int iY, Int& riCuAddr, Int& riAbsZorderIdx ) 147 { 148 Int iMaxCUWidth = (Int) ( getPicSym()->getSPS().getMaxCUWidth() ); 149 Int iMaxCuHeight = (Int) ( getPicSym()->getSPS().getMaxCUHeight() ); 150 151 UInt uiMaxTotalCUDepth = getPicSym()->getSPS().getMaxTotalCUDepth(); 152 Int iBaseUnitWidth = iMaxCUWidth >> uiMaxTotalCUDepth; 153 Int iBaseUnitHeight = iMaxCUWidth >> uiMaxTotalCUDepth; 154 155 Int iNumCuInWidth = getPicYuvRec()->getWidth(COMPONENT_Y) / iMaxCUWidth; 156 iNumCuInWidth += ( getPicYuvRec()->getWidth(COMPONENT_Y) % iMaxCUWidth ) ? 1 : 0; 157 158 159 Int iCuX = iX / iMaxCUWidth; 160 Int iCuY = iY / iMaxCuHeight; 161 Int iBaseX = ( iX - iCuX * iMaxCUWidth ) / iBaseUnitWidth; 162 Int iBaseY = ( iY - iCuY * iMaxCuHeight ) / iBaseUnitHeight; 163 Int iCuSizeInBases = iMaxCuHeight / iBaseUnitWidth; 164 165 riCuAddr = iCuY * iNumCuInWidth + iCuX; 166 Int iRastPartIdx = iBaseY * iCuSizeInBases + iBaseX; 167 riAbsZorderIdx = g_auiRasterToZscan[ iRastPartIdx ]; 168 } 169 #endif 145 170 Void TComPic::compressMotion(Int scale) 146 171 #else … … 283 308 return getPicYuv( layerIdInNuh, poc, recon ); 284 309 } 285 #if H_3D_ARP310 #if NH_3D_ARP 286 311 TComList<TComPic*>* TComPicLists::getPicList( Int layerIdInNuh ) 287 312 { … … 303 328 #endif // NH_MV 304 329 305 #if H_3D_NBDV306 Int TComPic::getDisCandRefPictures( Int iColPOC)330 #if NH_3D_NBDV 331 Int TComPic::getDisCandRefPictures(Int iColPOC) 307 332 { 308 333 UInt uiTempLayerCurr = 7; … … 310 335 UInt numDdvCandPics = 0; 311 336 312 if ( !currSlice->getEnableTMVPFlag() ) 337 if(!currSlice->getEnableTMVPFlag()) 338 { 313 339 return numDdvCandPics; 340 } 314 341 315 342 numDdvCandPics += 1; … … 318 345 UInt pocDiff = 255; 319 346 320 for(UInt lpNr = 0; lpNr < (currSlice->isInterB() ? 2: 1); lpNr 321 { 322 UIntx = lpNr ? currSlice->getColFromL0Flag() : 1 - currSlice->getColFromL0Flag();323 324 for 347 for(UInt lpNr = 0; lpNr < (currSlice->isInterB() ? 2: 1); lpNr++) 348 { 349 Bool x = lpNr ? currSlice->getColFromL0Flag() : 1 - currSlice->getColFromL0Flag(); 350 351 for(UInt i = 0; i < currSlice->getNumRefIdx(RefPicList(x)); i++) 325 352 { 326 353 if(currSlice->getViewIndex() == currSlice->getRefPic((RefPicList)x, i)->getViewIndex() 327 && (x == currSlice->getColFromL0Flag()||currSlice->getRefPOC((RefPicList)x, i)!= iColPOC) && numDdvCandPics!=2)354 && (x == currSlice->getColFromL0Flag() || currSlice->getRefPOC((RefPicList)x, i) != iColPOC) && numDdvCandPics != 2) 328 355 { 329 356 TComSlice* refSlice = currSlice->getRefPic((RefPicList)x, i)->getSlice(getCurrSliceIdx()); 330 Bool bRAP = (refSlice->getViewIndex() && refSlice->isIRAP()) ? 1: 0;357 Bool bRAP = (refSlice->getViewIndex() && refSlice->isIRAP()) ? 1 : 0; 331 358 UInt uiTempLayer = currSlice->getRefPic((RefPicList)x, i)->getSlice(getCurrSliceIdx())->getTLayer(); 332 359 333 if( bRAP)360 if(bRAP) 334 361 { 335 362 this->setRapRefIdx(i); … … 350 377 UInt idx = 0; 351 378 352 for(UInt lpNr = 0; lpNr < (currSlice->isInterB() ? 2 : 1); lpNr++)353 { 354 UInt x = lpNr? currSlice->getColFromL0Flag() : 1-currSlice->getColFromL0Flag();379 for(UInt lpNr = 0; lpNr < (currSlice->isInterB() ? 2 : 1); lpNr++) 380 { 381 Bool x = lpNr ? currSlice->getColFromL0Flag() : 1 - currSlice->getColFromL0Flag(); 355 382 356 for 383 for(UInt i = 0; i < currSlice->getNumRefIdx(RefPicList(x)); i++) 357 384 { 358 385 Int iTempPoc = currSlice->getRefPic((RefPicList)x, i)->getPOC(); 359 Int iTempDiff = (iTempPoc > pocCurr) ? (iTempPoc - pocCurr) : (pocCurr - iTempPoc);386 Int iTempDiff = (iTempPoc > pocCurr) ? (iTempPoc - pocCurr) : (pocCurr - iTempPoc); 360 387 361 if(currSlice->getViewIndex() == currSlice->getRefPic((RefPicList)x, i)->getViewIndex() && (x == currSlice->getColFromL0Flag()||currSlice->getRefPOC((RefPicList)x, i)!= iColPOC)362 && currSlice->getRefPic((RefPicList)x, i)->getSlice(getCurrSliceIdx())->getTLayer() == uiTempLayerCurr && pocDiff > iTempDiff)388 if(currSlice->getViewIndex() == currSlice->getRefPic((RefPicList)x, i)->getViewIndex() && (x == currSlice->getColFromL0Flag() || currSlice->getRefPOC((RefPicList)x, i) != iColPOC) 389 && currSlice->getRefPic((RefPicList)x, i)->getSlice(getCurrSliceIdx())->getTLayer() == uiTempLayerCurr && pocDiff > iTempDiff) 363 390 { 364 391 pocDiff = iTempDiff; … … 369 396 } 370 397 371 if( pocDiff < 255)398 if(pocDiff < 255) 372 399 { 373 400 this->setRapRefIdx(idx); 374 this->setRapRefList((RefPicList) z 401 this->setRapRefList((RefPicList) z); 375 402 numDdvCandPics = 2; 376 403 } … … 383 410 TComSlice* currSlice = getSlice(getCurrSliceIdx()); 384 411 const Int numCandPics = this->getNumDdvCandPics(); 412 385 413 for(Int curCandPic = 0; curCandPic < numCandPics; curCandPic++) 386 414 { 387 415 RefPicList eCurRefPicList = REF_PIC_LIST_0 ; 388 416 Int curCandPicRefIdx = 0; 389 if( curCandPic == 0)417 if(curCandPic == 0) 390 418 { 391 eCurRefPicList = RefPicList(currSlice->isInterB() ? 1 -currSlice->getColFromL0Flag() : 0);419 eCurRefPicList = RefPicList(currSlice->isInterB() ? 1 - currSlice->getColFromL0Flag() : 0); 392 420 curCandPicRefIdx = currSlice->getColRefIdx(); 393 421 } … … 397 425 curCandPicRefIdx = this->getRapRefIdx(); 398 426 } 399 TComPic* pcCandColPic = currSlice->getRefPic( eCurRefPicList, curCandPicRefIdx); 400 TComSlice* pcCandColSlice = pcCandColPic->getSlice(0);// currently only support single slice 427 428 TComPic* pcCandColPic = currSlice->getRefPic(eCurRefPicList, curCandPicRefIdx); 429 TComSlice* pcCandColSlice = pcCandColPic->getSlice(0); // currently only support single slice 401 430 402 431 if(!pcCandColSlice->isIntra()) 403 432 { 404 for( Int iColRefDir = 0; iColRefDir < (pcCandColSlice->isInterB() ? 2: 1); iColRefDir ++)405 { 406 for( Int iColRefIdx =0; iColRefIdx < pcCandColSlice->getNumRefIdx(( RefPicList )iColRefDir); iColRefIdx++)433 for(Int iColRefDir = 0; iColRefDir < (pcCandColSlice->isInterB() ? 2 : 1); iColRefDir++) 434 { 435 for(Int iColRefIdx = 0; iColRefIdx < pcCandColSlice->getNumRefIdx((RefPicList)iColRefDir); iColRefIdx++) 407 436 { 408 437 m_abTIVRINCurrRL[curCandPic][iColRefDir][iColRefIdx] = false; 409 438 Int iColViewIdx = pcCandColSlice->getViewIndex(); 410 Int iColRefViewIdx = pcCandColSlice->getRefPic( ( RefPicList)iColRefDir, iColRefIdx)->getViewIndex();439 Int iColRefViewIdx = pcCandColSlice->getRefPic((RefPicList)iColRefDir, iColRefIdx)->getViewIndex(); 411 440 if(iColViewIdx == iColRefViewIdx) 441 { 412 442 continue; 413 414 for(Int iCurrRefDir = 0;(iCurrRefDir < (currSlice->isInterB() ? 2: 1)) && (m_abTIVRINCurrRL[curCandPic][iColRefDir][iColRefIdx] == false ); iCurrRefDir++) 443 } 444 445 for(Int iCurrRefDir = 0; (iCurrRefDir < (currSlice->isInterB() ? 2 : 1)) && (m_abTIVRINCurrRL[curCandPic][iColRefDir][iColRefIdx] == false); iCurrRefDir++) 415 446 { 416 for( Int iCurrRefIdx =0; iCurrRefIdx < currSlice->getNumRefIdx(( RefPicList )iCurrRefDir); iCurrRefIdx++)447 for(Int iCurrRefIdx = 0; iCurrRefIdx < currSlice->getNumRefIdx((RefPicList)iCurrRefDir); iCurrRefIdx++) 417 448 { 418 if( currSlice->getRefPic( ( RefPicList )iCurrRefDir, iCurrRefIdx )->getViewIndex() == iColRefViewIdx)449 if(currSlice->getRefPic((RefPicList)iCurrRefDir, iCurrRefIdx)->getViewIndex() == iColRefViewIdx) 419 450 { 420 451 m_abTIVRINCurrRL[curCandPic][iColRefDir][iColRefIdx] = true; … … 428 459 } 429 460 } 461 430 462 Bool TComPic::isTempIVRefValid(Int currCandPic, Int iColRefDir, Int iColRefIdx) 431 463 { … … 433 465 } 434 466 435 Void TComPic::checkTextureRef( 467 Void TComPic::checkTextureRef() 436 468 { 437 469 TComSlice* pcCurrSlice = getSlice(getCurrSliceIdx()); 438 TComPic* pcTextPic = pcCurrSlice->get TexturePic();470 TComPic* pcTextPic = pcCurrSlice->getIvPic(0, getViewIndex()); 439 471 #if H_3D_FCO 440 472 if ( pcTextPic ) 441 473 { 442 474 #endif 443 444 475 TComSlice* pcTextSlice = pcTextPic->getSlice(0); // currently only support single slice 445 476 446 for( Int iTextRefDir = 0; (iTextRefDir < (pcTextSlice->isInterB()? 2:1) ) && !pcTextSlice->isIntra(); iTextRefDir ++)447 { 448 for( Int iTextRefIdx =0; iTextRefIdx<pcTextSlice->getNumRefIdx(( RefPicList )iTextRefDir); iTextRefIdx++)449 { 450 Int iTextRefPOC = pcTextSlice->getRefPOC( ( RefPicList)iTextRefDir, iTextRefIdx);451 Int iTextRefViewId = pcTextSlice->getRefPic( ( RefPicList)iTextRefDir, iTextRefIdx)->getViewIndex();477 for(Int iTextRefDir = 0; (iTextRefDir < (pcTextSlice->isInterB() ? 2 :1) ) && !pcTextSlice->isIntra(); iTextRefDir++) 478 { 479 for(Int iTextRefIdx =0; iTextRefIdx < pcTextSlice->getNumRefIdx((RefPicList)iTextRefDir); iTextRefIdx++) 480 { 481 Int iTextRefPOC = pcTextSlice->getRefPOC((RefPicList)iTextRefDir, iTextRefIdx); 482 Int iTextRefViewId = pcTextSlice->getRefPic((RefPicList)iTextRefDir, iTextRefIdx)->getViewIndex(); 452 483 m_aiTexToDepRef[iTextRefDir][iTextRefIdx] = -1; 453 484 Int iCurrRefDir = iTextRefDir; 454 for( Int iCurrRefIdx =0; ( iCurrRefIdx<pcCurrSlice->getNumRefIdx(( RefPicList )iCurrRefDir ) ) && ( m_aiTexToDepRef[iTextRefDir][iTextRefIdx] < 0 ) ; iCurrRefIdx++) 485 486 for(Int iCurrRefIdx = 0; (iCurrRefIdx<pcCurrSlice->getNumRefIdx((RefPicList)iCurrRefDir)) && (m_aiTexToDepRef[iTextRefDir][iTextRefIdx] < 0); iCurrRefIdx++) 455 487 { 456 if( pcCurrSlice->getRefPOC( ( RefPicList)iCurrRefDir, iCurrRefIdx ) == iTextRefPOC &&457 pcCurrSlice->getRefPic( ( RefPicList )iCurrRefDir, iCurrRefIdx)->getViewIndex() == iTextRefViewId)488 if(pcCurrSlice->getRefPOC((RefPicList)iCurrRefDir, iCurrRefIdx ) == iTextRefPOC && 489 pcCurrSlice->getRefPic((RefPicList)iCurrRefDir, iCurrRefIdx)->getViewIndex() == iTextRefViewId) 458 490 { 459 491 m_aiTexToDepRef[iTextRefDir][iTextRefIdx] = iCurrRefIdx; … … 461 493 } 462 494 } 463 464 495 } 465 496 #if H_3D_FCO -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPic.h
r1256 r1274 97 97 Bool m_bReduceBitsQTL; 98 98 #endif 99 #if H_3D_NBDV99 #if NH_3D_NBDV 100 100 UInt m_uiRapRefIdx; 101 101 RefPicList m_eRapRefList; 102 102 Int m_iNumDdvCandPics; 103 Bool m_abTIVRINCurrRL 103 Bool m_abTIVRINCurrRL [2][2][MAX_NUM_REF]; //whether an inter-view reference picture with the same view index of the inter-view reference picture of temporal reference picture of current picture exists in current reference picture lists 104 104 Int m_aiTexToDepRef [2][MAX_NUM_REF]; 105 105 #endif … … 182 182 #endif 183 183 #if NH_3D 184 #if NH_3D_ARP 185 Void getCUAddrAndPartIdx( Int iX, Int iY, Int& riCuAddr, Int& riAbsZorderIdx ); 186 #endif 184 187 Void compressMotion(Int scale); 185 188 #else … … 209 212 Void print( Bool legend ); 210 213 #endif 211 #if H_3D_NBDV214 #if NH_3D_NBDV 212 215 Int getNumDdvCandPics() {return m_iNumDdvCandPics; } 213 216 Int getDisCandRefPictures(Int iColPOC); … … 248 251 Void push_back( TComList<TComPic*>* list ) { m_lists.push_back( list ); } 249 252 Int size () { return (Int) m_lists.size(); } 250 #if H_3D_ARP253 #if NH_3D_ARP 251 254 TComList<TComPic*>* getPicList ( Int layerIdInNuh ); 252 255 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPicYuv.cpp
r1200 r1274 91 91 m_iPicHeight = iPicHeight; 92 92 93 #if H_3D_IV_MERGE 93 #if NH_3D_IV_MERGE 94 m_iCuWidth = uiMaxCUWidth; 95 m_iCuHeight = uiMaxCUHeight; 96 94 97 m_iNumCuInWidth = m_iPicWidth / m_iCuWidth; 95 98 m_iNumCuInWidth += ( m_iPicWidth % m_iCuWidth ) ? 1 : 0; … … 292 295 fclose(pFile); 293 296 } 294 #if H_3D 295 #if H_3D_IV_MERGE 297 #if NH_3D_IV_MERGE 296 298 Void 297 299 TComPicYuv::getTopLeftSamplePos( Int iCuAddr, Int iAbsZorderIdx, Int& riX, Int& riY ) … … 319 321 riAbsZorderIdx = g_auiRasterToZscan[ iRastPartIdx ]; 320 322 } 321 #endif 323 324 #endif 325 326 #if H_3D 322 327 Void TComPicYuv::setLumaTo( Pel pVal ) 323 328 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPicYuv.h
r1200 r1274 80 80 81 81 Bool m_bIsBorderExtended; 82 #if H_3D_IV_MERGE82 #if NH_3D_IV_MERGE 83 83 Int m_iBaseUnitWidth; ///< Width of Base Unit (with maximum depth or minimum size, m_iCuWidth >> Max. Depth) 84 84 Int m_iBaseUnitHeight; ///< Height of Base Unit (with maximum depth or minimum size, m_iCuHeight >> Max. Depth) 85 85 Int m_iNumCuInWidth; 86 Int m_iCuWidth; ///< Width of Coding Unit (CU) 87 Int m_iCuHeight; ///< Height of Coding Unit (CU) 86 88 #endif 87 89 … … 168 170 Void setLumaTo ( Pel pVal ); 169 171 Void setChromaTo ( Pel pVal ); 170 #if H_3D_IV_MERGE172 #if NH_3D_IV_MERGE 171 173 // sample to block and block to sample conversion 172 174 Void getTopLeftSamplePos( Int iCuAddr, Int iAbsZorderIdx, Int& riX, Int& riY ); -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPrediction.cpp
r1226 r1274 82 82 } 83 83 } 84 #if H_3D_VSP85 m_pDepthBlock = (Int*) malloc(MAX_NUM_ SPU_W*MAX_NUM_SPU_W*sizeof(Int));84 #if NH_3D_VSP 85 m_pDepthBlock = (Int*) malloc(MAX_NUM_PART_IDXS_IN_CTU_WIDTH*MAX_NUM_PART_IDXS_IN_CTU_WIDTH*sizeof(Int)); 86 86 if (m_pDepthBlock == NULL) 87 87 { … … 94 94 TComPrediction::~TComPrediction() 95 95 { 96 #if H_3D_VSP96 #if NH_3D_VSP 97 97 if (m_pDepthBlock != NULL) 98 98 { … … 123 123 m_cYuvPredTemp.destroy(); 124 124 125 #if H_3D_ARP125 #if NH_3D_ARP 126 126 m_acYuvPredBase[0].destroy(); 127 127 m_acYuvPredBase[1].destroy(); … … 182 182 183 183 m_cYuvPredTemp.create( MAX_CU_SIZE, MAX_CU_SIZE, chromaFormatIDC ); 184 #if H_3D_ARP185 m_acYuvPredBase[0] .create( g_uiMaxCUWidth, g_uiMaxCUHeight);186 m_acYuvPredBase[1] .create( g_uiMaxCUWidth, g_uiMaxCUHeight);187 #endif 188 #if H_3D_VSP189 m_cYuvDepthOnVsp.create( g_uiMaxCUWidth, g_uiMaxCUHeight);184 #if NH_3D_ARP 185 m_acYuvPredBase[0] .create( MAX_CU_SIZE, MAX_CU_SIZE, chromaFormatIDC ); 186 m_acYuvPredBase[1] .create( MAX_CU_SIZE, MAX_CU_SIZE, chromaFormatIDC ); 187 #endif 188 #if NH_3D_VSP 189 m_cYuvDepthOnVsp.create( MAX_CU_SIZE, MAX_CU_SIZE, chromaFormatIDC ); 190 190 #endif 191 191 … … 648 648 Int RefPOCL0 = pcCU->getSlice()->getRefPic(REF_PIC_LIST_0, pcCU->getCUMvField(REF_PIC_LIST_0)->getRefIdx(PartAddr))->getPOC(); 649 649 Int RefPOCL1 = pcCU->getSlice()->getRefPic(REF_PIC_LIST_1, pcCU->getCUMvField(REF_PIC_LIST_1)->getRefIdx(PartAddr))->getPOC(); 650 #if H_3D_ARP650 #if NH_3D_ARP 651 651 if(!pcCU->getARPW(PartAddr) && RefPOCL0 == RefPOCL1 && pcCU->getCUMvField(REF_PIC_LIST_0)->getMv(PartAddr) == pcCU->getCUMvField(REF_PIC_LIST_1)->getMv(PartAddr)) 652 652 #else … … 661 661 } 662 662 663 #if H_3D_SPIVMP663 #if NH_3D_SPIVMP 664 664 Void TComPrediction::xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr ) 665 665 { … … 670 670 pcCU->getSPAbsPartIdx(uiPartAddr, iSPWidth, iSPHeight, i, iNumSPInOneLine, uiSPAddr[i]); 671 671 } 672 #if H_3D_ARP // check this! 672 673 if( pcCU->getARPW( uiPartAddr ) != 0 ) 673 674 { 674 675 return; 675 676 } 677 #endif 676 678 677 679 // horizontal sub-PU merge … … 747 749 #endif 748 750 749 #if H_3D_DBBP751 #if NH_3D_DBBP 750 752 PartSize TComPrediction::getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU) 751 753 { 754 const TComSPS* sps = pcCU->getSlice()->getSPS(); 755 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 756 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 757 752 758 // find virtual partitioning for this CU based on depth block 753 759 // segmentation of texture block --> mask IDs … … 757 763 Int iSumDepth = 0; 758 764 Int iSubSample = 4; 759 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth( );760 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight( );765 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(COMPONENT_Y); 766 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(COMPONENT_Y); 761 767 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 762 768 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) … … 764 770 cDv.setVer(0); 765 771 } 766 Int iBlkX = ( pcCU->get Addr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2);767 Int iBlkY = ( pcCU->get Addr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2);772 Int iBlkX = ( pcCU->getCtuRsAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getHor()+2)>>2); 773 Int iBlkY = ( pcCU->getCtuRsAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getVer()+2)>>2); 768 774 769 775 UInt t=0; … … 852 858 } 853 859 854 PartSize matchedPartSize = SIZE_NONE;860 PartSize matchedPartSize = NUMBER_OF_PART_SIZES; 855 861 856 862 Int iMaxMatchSum = 0; … … 867 873 } 868 874 869 AOF( matchedPartSize != SIZE_NONE);875 AOF( matchedPartSize != NUMBER_OF_PART_SIZES ); 870 876 871 877 return matchedPartSize; … … 874 880 Bool TComPrediction::getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU) 875 881 { 882 const TComSPS* sps = pcCU->getSlice()->getSPS(); 883 UInt uiMaxCUWidth = sps->getMaxCUWidth(); 884 UInt uiMaxCUHeight = sps->getMaxCUHeight(); 885 876 886 // segmentation of texture block --> mask IDs 877 887 Pel* pDepthBlockStart = pDepthPels; … … 885 895 iSumDepth = pDepthPels[ 0 ]; 886 896 887 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth( );888 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight( );897 Int iPictureWidth = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getWidth(COMPONENT_Y); 898 Int iPictureHeight = pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getPicYuvRec()->getHeight(COMPONENT_Y); 889 899 TComMv cDv = pcCU->getSlice()->getDepthRefinementFlag( ) ? pcCU->getDvInfo(0).m_acDoNBDV : pcCU->getDvInfo(0).m_acNBDV; 890 900 if( pcCU->getSlice()->getDepthRefinementFlag( ) ) … … 892 902 cDv.setVer(0); 893 903 } 894 Int iBlkX = ( pcCU->get Addr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getHor()+2)>>2);895 Int iBlkY = ( pcCU->get Addr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCU() ) * g_uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCU() ] ]+ ((cDv.getVer()+2)>>2);904 Int iBlkX = ( pcCU->getCtuRsAddr() % pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUWidth + g_auiRasterToPelX[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getHor()+2)>>2); 905 Int iBlkY = ( pcCU->getCtuRsAddr() / pcCU->getSlice()->getIvPic (true, pcCU->getDvInfo(0).m_aVIdxCan)->getFrameWidthInCtus() ) * uiMaxCUHeight + g_auiRasterToPelY[ g_auiZscanToRaster[ pcCU->getZorderIdxInCtu() ] ]+ ((cDv.getVer()+2)>>2); 896 906 if (iBlkX>(Int)(iPictureWidth - uiWidth)) 897 907 { … … 1008 1018 } 1009 1019 1010 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize )1011 { 1012 Pel* piSrc[2] = {pInYuv[0]->get LumaAddr(uiPartAddr), pInYuv[1]->getLumaAddr(uiPartAddr)};1013 UInt uiSrcStride = pInYuv[0]->getStride( );1014 Pel* piDst = pOutYuv->get LumaAddr(uiPartAddr);1015 UInt uiDstStride = pOutYuv->getStride( );1020 Void TComPrediction::combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize, Int bitDepthY ) 1021 { 1022 Pel* piSrc[2] = {pInYuv[0]->getAddr(COMPONENT_Y, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Y, uiPartAddr)}; 1023 UInt uiSrcStride = pInYuv[0]->getStride(COMPONENT_Y); 1024 Pel* piDst = pOutYuv->getAddr(COMPONENT_Y, uiPartAddr); 1025 UInt uiDstStride = pOutYuv->getStride(COMPONENT_Y); 1016 1026 1017 1027 UInt uiMaskStride= MAX_CU_SIZE; … … 1052 1062 right = (x==uiWidth-1) ? tmpTar[y*uiWidth+x] : tmpTar[y*uiWidth+x+1]; 1053 1063 1054 piDst[x] = (l!=r) ? Clip Y( Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 )) : tmpTar[y*uiWidth+x];1064 piDst[x] = (l!=r) ? ClipBD( Pel(( left + (tmpTar[y*uiWidth+x] << 1) + right ) >> 2 ), bitDepthY) : tmpTar[y*uiWidth+x]; 1055 1065 } 1056 1066 piDst += uiDstStride; … … 1070 1080 bottom = (y==uiHeight-1) ? tmpTar[y*uiWidth+x] : tmpTar[(y+1)*uiWidth+x]; 1071 1081 1072 piDst[x] = (t!=b) ? Clip Y( Pel(( top + (tmpTar[y*uiWidth+x] << 1) + bottom ) >> 2 )) : tmpTar[y*uiWidth+x];1082 piDst[x] = (t!=b) ? ClipBD( Pel(( top + (tmpTar[y*uiWidth+x] << 1) + bottom ) >> 2 ), bitDepthY) : tmpTar[y*uiWidth+x]; 1073 1083 } 1074 1084 piDst += uiDstStride; … … 1083 1093 1084 1094 // now combine chroma 1085 Pel* piSrcU[2] = { pInYuv[0]->get CbAddr(uiPartAddr), pInYuv[1]->getCbAddr(uiPartAddr) };1086 Pel* piSrcV[2] = { pInYuv[0]->get CrAddr(uiPartAddr), pInYuv[1]->getCrAddr(uiPartAddr) };1087 UInt uiSrcStrideC = pInYuv[0]->get CStride();1088 Pel* piDstU = pOutYuv->get CbAddr(uiPartAddr);1089 Pel* piDstV = pOutYuv->get CrAddr(uiPartAddr);1090 UInt uiDstStrideC = pOutYuv->get CStride();1095 Pel* piSrcU[2] = { pInYuv[0]->getAddr(COMPONENT_Cb, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Cb, uiPartAddr) }; 1096 Pel* piSrcV[2] = { pInYuv[0]->getAddr(COMPONENT_Cr, uiPartAddr), pInYuv[1]->getAddr(COMPONENT_Cr, uiPartAddr) }; 1097 UInt uiSrcStrideC = pInYuv[0]->getStride(COMPONENT_Cb); 1098 Pel* piDstU = pOutYuv->getAddr(COMPONENT_Cb, uiPartAddr); 1099 Pel* piDstV = pOutYuv->getAddr(COMPONENT_Cr, uiPartAddr); 1100 UInt uiDstStrideC = pOutYuv->getStride(COMPONENT_Cb); 1091 1101 UInt uiWidthC = uiWidth >> 1; 1092 1102 UInt uiHeightC = uiHeight >> 1; … … 1134 1144 if (l!=r) 1135 1145 { 1136 filSrcU = Clip C( Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ));1137 filSrcV = Clip C( Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ));1146 filSrcU = ClipBD( Pel(( leftU + (tmpTarU[y*uiWidthC+x] << 1) + rightU ) >> 2 ), bitDepthY); 1147 filSrcV = ClipBD( Pel(( leftV + (tmpTarV[y*uiWidthC+x] << 1) + rightV ) >> 2 ), bitDepthY); 1138 1148 } 1139 1149 else … … 1167 1177 if (t!=b) 1168 1178 { 1169 filSrcU = Clip C( Pel(( topU + (tmpTarU[y*uiWidthC+x] << 1) + bottomU ) >> 2 ));1170 filSrcV = Clip C( Pel(( topV + (tmpTarV[y*uiWidthC+x] << 1) + bottomV ) >> 2 ));1179 filSrcU = ClipBD( Pel(( topU + (tmpTarU[y*uiWidthC+x] << 1) + bottomU ) >> 2 ), bitDepthY); 1180 filSrcV = ClipBD( Pel(( topV + (tmpTarV[y*uiWidthC+x] << 1) + bottomV ) >> 2 ), bitDepthY); 1171 1181 } 1172 1182 else … … 1205 1215 { 1206 1216 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 1207 #if H_3D_VSP1217 #if NH_3D_VSP 1208 1218 if ( pcCU->getVSPFlag(uiPartAddr) == 0) 1209 1219 { 1210 1220 #endif 1211 if ( eRefPicList != REF_PIC_LIST_X ) 1212 { 1213 if( pcCU->getSlice()->getPPS()->getUseWP()) 1214 { 1215 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, true ); 1221 if ( eRefPicList != REF_PIC_LIST_X ) 1222 { 1223 if( pcCU->getSlice()->getPPS()->getUseWP()) 1224 { 1225 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, true ); 1226 } 1227 else 1228 { 1229 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1230 } 1231 if ( pcCU->getSlice()->getPPS()->getUseWP() ) 1232 { 1233 xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1234 } 1216 1235 } 1217 1236 else 1218 1237 { 1219 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1220 } 1221 if ( pcCU->getSlice()->getPPS()->getUseWP() ) 1222 { 1223 xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1224 } 1225 } 1226 else 1227 { 1228 #if H_3D_SPIVMP 1238 #if NH_3D_SPIVMP 1229 1239 if ( pcCU->getSPIVMPFlag(uiPartAddr)!=0) 1230 1240 { … … 1258 1268 { 1259 1269 #endif 1270 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 1271 { 1272 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred ); 1273 } 1274 else 1275 { 1276 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 1277 } 1278 #if NH_3D_SPIVMP 1279 } 1280 #endif 1281 } 1282 #if NH_3D_VSP 1283 } 1284 else 1285 { 1260 1286 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 1261 1287 { 1262 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred );1288 xPredInterUniVSP( pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred ); 1263 1289 } 1264 1290 else 1265 1291 { 1266 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 1267 } 1268 #if H_3D_SPIVMP 1269 } 1270 #endif 1271 } 1272 #if H_3D_VSP 1292 xPredInterBiVSP ( pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 1293 } 1294 } 1295 #endif 1296 return; 1297 } 1298 1299 for ( iPartIdx = 0; iPartIdx < pcCU->getNumPartitions(); iPartIdx++ ) 1300 { 1301 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 1302 1303 #if NH_3D_VSP 1304 if ( pcCU->getVSPFlag(uiPartAddr) == 0 ) 1305 { 1306 #endif 1307 if ( eRefPicList != REF_PIC_LIST_X ) 1308 { 1309 if( pcCU->getSlice()->getPPS()->getUseWP()) 1310 { 1311 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, true ); 1312 } 1313 else 1314 { 1315 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1316 } 1317 if ( pcCU->getSlice()->getPPS()->getUseWP() ) 1318 { 1319 xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1320 } 1273 1321 } 1274 1322 else 1275 1323 { 1276 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 1277 { 1278 xPredInterUniVSP( pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred ); 1279 } 1280 else 1281 { 1282 xPredInterBiVSP ( pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 1283 } 1284 } 1285 #endif 1286 return; 1287 } 1288 1289 for ( iPartIdx = 0; iPartIdx < pcCU->getNumPartitions(); iPartIdx++ ) 1290 { 1291 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iWidth, iHeight ); 1292 1293 #if H_3D_VSP 1294 if ( pcCU->getVSPFlag(uiPartAddr) == 0 ) 1295 { 1296 #endif 1297 if ( eRefPicList != REF_PIC_LIST_X ) 1298 { 1299 if( pcCU->getSlice()->getPPS()->getUseWP()) 1300 { 1301 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, true ); 1302 } 1303 else 1304 { 1305 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1306 } 1307 if ( pcCU->getSlice()->getPPS()->getUseWP() ) 1308 { 1309 xWeightedPredictionUni( pcCU, pcYuvPred, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred ); 1310 } 1311 } 1312 else 1313 { 1314 #if H_3D_SPIVMP 1315 if (pcCU->getSPIVMPFlag(uiPartAddr)!=0) 1324 #if NH_3D_SPIVMP 1325 if (pcCU->getSPIVMPFlag(uiPartAddr)!=0) 1316 1326 { 1317 1327 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; … … 1343 1353 { 1344 1354 #endif 1345 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) )1346 {1347 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred );1348 }1349 else1350 {1351 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred );1352 }1353 #if H_3D_SPIVMP1354 1355 #endif 1356 } 1357 #if H_3D_VSP1355 if ( xCheckIdenticalMotion( pcCU, uiPartAddr ) ) 1356 { 1357 xPredInterUni (pcCU, uiPartAddr, iWidth, iHeight, REF_PIC_LIST_0, pcYuvPred ); 1358 } 1359 else 1360 { 1361 xPredInterBi (pcCU, uiPartAddr, iWidth, iHeight, pcYuvPred ); 1362 } 1363 #if NH_3D_SPIVMP 1364 } 1365 #endif 1366 } 1367 #if NH_3D_VSP 1358 1368 } 1359 1369 else … … 1381 1391 pcCU->checkMvVertRest(cMv, eRefPicList, iRefIdx ); 1382 1392 #endif 1383 #if H_3D_ARP 1384 if(pcCU->getARPW( uiPartAddr ) > 0 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC()) 1385 { 1386 xPredInterUniARPviewRef( pcCU , uiPartAddr , iWidth , iHeight , eRefPicList , rpcYuvPred , bi ); 1393 #if NH_3D_ARP 1394 if( pcCU->getARPW( uiPartAddr ) > 0 ) 1395 { 1396 if( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()== pcCU->getSlice()->getPOC() ) 1397 { 1398 xPredInterUniARPviewRef( pcCU , uiPartAddr , iWidth , iHeight , eRefPicList , pcYuvPred , bi ); 1387 1399 } 1388 1400 else 1389 1401 { 1390 if( pcCU->getARPW( uiPartAddr ) > 0 1391 && pcCU->getPartitionSize(uiPartAddr)==SIZE_2Nx2N 1392 && pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() 1393 ) 1394 { 1395 xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, rpcYuvPred, bi ); 1402 xPredInterUniARP( pcCU, uiPartAddr, iWidth, iHeight, eRefPicList, pcYuvPred, bi ); 1403 } 1396 1404 } 1397 1405 else … … 1404 1412 Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() != pcCU->getSlice()->getViewIndex() ) && ( isLuma(compID) || (iWidth > 8) ); 1405 1413 xPredInterBlk(compID, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(), uiPartAddr, &cMv, iWidth, iHeight, pcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)) 1406 #if H_3D_ARP1414 #if NH_3D_ARP 1407 1415 , false 1408 1416 #endif … … 1412 1420 #endif 1413 1421 } 1414 #if H_3D_ARP 1415 } 1416 } 1417 #endif 1418 } 1419 1420 #if H_3D_VSP 1422 #if NH_3D_ARP 1423 } 1424 #endif 1425 } 1426 1427 #if NH_3D_VSP 1421 1428 Void TComPrediction::xPredInterUniVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ) 1422 1429 { … … 1439 1446 Void TComPrediction::xPredInterUniSubPU( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, Int widthSubPU, Int heightSubPU ) 1440 1447 { 1441 UInt numPartsInLine = pcCU->getPic()->getNumPartIn Width();1448 UInt numPartsInLine = pcCU->getPic()->getNumPartInCtuWidth(); 1442 1449 UInt horiNumPartsInSubPU = widthSubPU >> 2; 1443 1450 UInt vertNumPartsInSubPU = (heightSubPU >> 2) * numPartsInLine; … … 1455 1462 pcCU->clipMv(cMv); 1456 1463 1457 xPredInter LumaBlk ( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi);1458 xPredInter ChromaBlk( pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi);1459 1460 } 1461 } 1462 } 1463 1464 #endif 1465 1466 #if H_3D_ARP1467 Void TComPrediction::xPredInterUniARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi , TComMvField * pNewMvFiled)1468 { 1469 Int iRefIdx = p NewMvFiled ? pNewMvFiled->getRefIdx() : pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr );1470 TComMv cMv = p NewMvFiled ? pNewMvFiled->getMv() : pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr );1464 xPredInterBlk( COMPONENT_Y, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) ); 1465 xPredInterBlk( COMPONENT_Cb, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA) ); 1466 xPredInterBlk( COMPONENT_Cr, pcCU, pcCU->getSlice()->getRefPic( eRefPicList, refIdx )->getPicYuvRec(), partAddrSubPU, &cMv, widthSubPU, heightSubPU, rpcYuvPred, bi, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_CHROMA) ); 1467 } 1468 } 1469 } 1470 #endif 1471 1472 #if NH_3D_ARP 1473 //temporal ARP 1474 Void TComPrediction::xPredInterUniARP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ) 1475 { 1476 Int iRefIdx = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr ); 1477 TComMv cMv = pcCU->getCUMvField( eRefPicList )->getMv( uiPartAddr ); 1471 1478 Bool bTobeScaled = false; 1472 1479 TComPic* pcPicYuvBaseCol = NULL; 1473 1480 TComPic* pcPicYuvBaseRef = NULL; 1474 1481 1475 #if H_3D_NBDV1482 #if NH_3D_NBDV 1476 1483 DisInfo cDistparity; 1477 1484 cDistparity.m_acNBDV = pcCU->getDvInfo(0).m_acNBDV; … … 1482 1489 UChar dW = pcCU->getARPW ( uiPartAddr ); 1483 1490 1484 {1485 1491 Int arpRefIdx = pcCU->getSlice()->getFirstTRefIdx(eRefPicList); 1486 if( dW > 0 && pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC()!= pcCU->getSlice()->getPOC() ) 1487 { 1488 bTobeScaled = true; 1489 } 1490 1491 pcPicYuvBaseCol = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getPOC(), cDistparity.m_aVIdxCan ); 1492 1493 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC(), cDistparity.m_aVIdxCan ); 1494 1495 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, cDistparity.m_aVIdxCan)) 1492 if (arpRefIdx < 0 || !pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, cDistparity.m_aVIdxCan)) 1496 1493 { 1497 1494 dW = 0; … … 1500 1497 else 1501 1498 { 1502 assert( pcPicYuvBaseCol->getPOC() == pcCU->getSlice()->getPOC() && pcPicYuvBaseRef->getPOC() == pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC() ); 1499 if( arpRefIdx != iRefIdx ) 1500 { 1501 bTobeScaled = true; 1502 } 1503 pcPicYuvBaseCol = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getPOC(), cDistparity.m_aVIdxCan ); 1504 pcPicYuvBaseRef = pcCU->getSlice()->getBaseViewRefPic( pcCU->getSlice()->getRefPic( eRefPicList, arpRefIdx )->getPOC(), cDistparity.m_aVIdxCan ); 1503 1505 } 1504 1506 … … 1507 1509 Int iCurrPOC = pcCU->getSlice()->getPOC(); 1508 1510 Int iColRefPOC = pcCU->getSlice()->getRefPOC( eRefPicList, iRefIdx ); 1509 Int iCurrRefPOC = pcCU->getSlice()->getRefPOC( eRefPicList, 0);1511 Int iCurrRefPOC = pcCU->getSlice()->getRefPOC( eRefPicList, arpRefIdx ); 1510 1512 Int iScale = pcCU-> xGetDistScaleFactor(iCurrPOC, iCurrRefPOC, iCurrPOC, iColRefPOC); 1511 1513 if ( iScale != 4096 ) … … 1513 1515 cMv = cMv.scaleMv( iScale ); 1514 1516 } 1515 iRefIdx = 0; 1516 } 1517 iRefIdx = arpRefIdx; 1517 1518 } 1518 1519 1519 1520 pcCU->clipMv(cMv); 1520 1521 TComPicYuv* pcPicYuvRef = pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getPicYuvRec(); 1521 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1522 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), true ); 1522 1523 for (UInt comp=COMPONENT_Y; comp< rpcYuvPred->getNumberValidComponents(); comp++) 1524 { 1525 const ComponentID compID=ComponentID(comp); 1526 xPredInterBlk ( compID, pcCU, pcPicYuvRef, uiPartAddr, &cMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 ), pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), true ); 1527 } 1523 1528 1524 1529 if( dW > 0 ) … … 1536 1541 pcCU->clipMv( cNBDV ); 1537 1542 1538 pcPicYuvRef = pcPicYuvBaseCol->getPicYuvRec(); 1539 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1540 if (iWidth > 8) 1541 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, true ); 1543 TComPicYuv* pcPicYuvBaseColRec = pcPicYuvBaseCol->getPicYuvRec(); 1544 TComPicYuv* pcPicYuvBaseRefRec = pcPicYuvBaseRef->getPicYuvRec(); 1542 1545 1543 pcPicYuvRef = pcPicYuvBaseRef->getPicYuvRec(); 1544 xPredInterLumaBlk ( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1545 1546 if (iWidth > 8) 1547 xPredInterChromaBlk( pcCU, pcPicYuvRef, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, true ); 1546 UInt uiCompNum = ( iWidth > 8 ) ? 3: 1; 1547 for (UInt comp=COMPONENT_Y; comp< uiCompNum; comp++) 1548 { 1549 const ComponentID compID=ComponentID(comp); 1550 xPredInterBlk ( compID, pcCU, pcPicYuvBaseColRec, uiPartAddr, &cNBDV, iWidth, iHeight, pYuvB0, true, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), true ); 1551 xPredInterBlk ( compID, pcCU, pcPicYuvBaseRefRec, uiPartAddr, &cMVwithDisparity, iWidth, iHeight, pYuvB1, true, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), true ); 1552 } 1548 1553 1549 1554 pYuvB0->subtractARP( pYuvB0 , pYuvB1 , uiPartAddr , iWidth , iHeight ); … … 1553 1558 pYuvB0->multiplyARP( uiPartAddr , iWidth , iHeight , dW ); 1554 1559 } 1555 rpcYuvPred->addARP( rpcYuvPred , pYuvB0 , uiPartAddr , iWidth , iHeight , !bi );1560 rpcYuvPred->addARP( rpcYuvPred , pYuvB0 , uiPartAddr , iWidth , iHeight , !bi, pcCU->getSlice()->getSPS()->getBitDepths() ); 1556 1561 } 1557 1562 } … … 1562 1567 TComMv cDMv = pcCU->getCUMvField( eBaseRefPicList )->getMv( uiPartAddr ); 1563 1568 TComPic* pcPicYuvBaseCol = pcCU->getSlice()->getRefPic( eBaseRefPicList, iRefIdx ); 1564 TComPicYuv* pcYuvBaseCol = pcPicYuvBaseCol->getPicYuvRec();1565 Int uiLCUAddr,uiAbsPartAddr;1566 1569 Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2 + ((cDMv.getHor() + 2)>>2); 1567 1570 Int irefPUY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[uiPartAddr]] + iHeight/2 + ((cDMv.getVer() + 2)>>2); … … 1569 1572 irefPUX = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()-> getPicWidthInLumaSamples()-1, irefPUX); 1570 1573 irefPUY = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples()-1, irefPUY); 1571 pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1572 TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr ); 1574 1575 Int uiLCUAddr,uiAbsPartAddr; 1576 pcPicYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1577 TComDataCU *pColCU = pcPicYuvBaseCol->getCtu( uiLCUAddr ); 1573 1578 1574 1579 TComPic* pcPicYuvBaseTRef = NULL; … … 1622 1627 } 1623 1628 1624 Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled ) 1629 //inter-view ARP 1630 Void TComPrediction::xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ) 1625 1631 { 1626 1632 Int iRefIdx = pcCU->getCUMvField( eRefPicList )->getRefIdx( uiPartAddr ); … … 1635 1641 Bool bTMVAvai = false; 1636 1642 TComMv cBaseTMV; 1637 if( pNewMvFiled ) 1638 { 1639 iRefIdx = pNewMvFiled->getRefIdx(); 1640 cDMv = pNewMvFiled->getMv(); 1641 } 1643 1642 1644 pcCU->clipMv(cTempDMv); 1643 1645 1644 assert(dW > 0);1645 if (!pcCU->getSlice()->getArpRefPicAvailable( eRefPicList, pcPicYuvBaseCol->getViewIndex()))1646 {1647 dW = 0;1648 }1649 Int uiLCUAddr,uiAbsPartAddr;1650 1646 Int irefPUX = pcCU->getCUPelX() + g_auiRasterToPelX[g_auiZscanToRaster[uiPartAddr]] + iWidth/2 + ((cDMv.getHor() + 2)>>2); 1651 1647 Int irefPUY = pcCU->getCUPelY() + g_auiRasterToPelY[g_auiZscanToRaster[uiPartAddr]] + iHeight/2 + ((cDMv.getVer() + 2)>>2); … … 1653 1649 irefPUX = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()-> getPicWidthInLumaSamples()-1, irefPUX); 1654 1650 irefPUY = (Int)Clip3<Int>(0, pcCU->getSlice()->getSPS()->getPicHeightInLumaSamples()-1, irefPUY); 1655 pcYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1656 TComDataCU *pColCU = pcPicYuvBaseCol->getCU( uiLCUAddr ); 1651 1652 Int uiLCUAddr,uiAbsPartAddr; 1653 pcPicYuvBaseCol->getCUAddrAndPartIdx( irefPUX, irefPUY, uiLCUAddr, uiAbsPartAddr); 1654 TComDataCU *pColCU = pcPicYuvBaseCol->getCtu( uiLCUAddr ); 1657 1655 if( pcCU->getSlice()->isInterB() && !pcCU->getSlice()->getIsDepth() ) 1658 1656 { … … 1725 1723 RefPicList eRefPicListCurr = RefPicList(iList); 1726 1724 Int iRef = pColCU->getCUMvField(eRefPicListCurr)->getRefIdx(uiAbsPartAddr); 1727 if( iRef != -1 )1725 if( iRef != -1 && pcCU->getSlice()->getArpRefPicAvailable( eRefPicListCurr, pcPicYuvBaseCol->getViewIndex())) 1728 1726 { 1729 1727 pcPicYuvBaseTRef = pColCU->getSlice()->getRefPic(eRefPicListCurr, iRef); … … 1759 1757 } 1760 1758 1761 xPredInterLumaBlk ( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1762 xPredInterChromaBlk( pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), bTMVAvai); 1763 1764 if( dW > 0 && bTMVAvai ) 1765 { 1759 for (UInt comp=COMPONENT_Y; comp< rpcYuvPred->getNumberValidComponents(); comp++) 1760 { 1761 const ComponentID compID=ComponentID(comp); 1762 xPredInterBlk ( compID, pcCU, pcYuvBaseCol, uiPartAddr, &cTempDMv, iWidth, iHeight, rpcYuvPred, bi || ( dW > 0 && bTMVAvai ), pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), bTMVAvai ); 1763 } 1764 1765 if( dW > 0 ) 1766 { 1767 assert ( bTMVAvai ); 1766 1768 TComYuv* pYuvCurrTRef = &m_acYuvPredBase[0]; 1767 1769 TComYuv* pYuvBaseTRef = &m_acYuvPredBase[1]; … … 1777 1779 pYuvCurrTRef->clear(); pYuvBaseTRef->clear(); 1778 1780 } 1779 xPredInterLumaBlk ( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1780 1781 if (iWidth > 8) 1782 xPredInterChromaBlk( pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, true); 1783 1784 xPredInterLumaBlk ( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1785 1786 if (iWidth > 8) 1787 xPredInterChromaBlk( pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, true); 1781 1782 UInt uiCompNum = ( iWidth > 8 ) ? 3: 1; 1783 for (UInt comp=COMPONENT_Y; comp< uiCompNum; comp++) 1784 { 1785 const ComponentID compID=ComponentID(comp); 1786 xPredInterBlk ( compID, pcCU, pcYuvCurrTref, uiPartAddr, &cBaseTMV, iWidth, iHeight, pYuvCurrTRef, true, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), true ); 1787 xPredInterBlk ( compID, pcCU, pcYuvBaseTref, uiPartAddr, &cTempMv, iWidth, iHeight, pYuvBaseTRef, true, pcCU->getSlice()->getSPS()->getBitDepth(toChannelType(compID)), true ); 1788 } 1788 1789 1789 1790 pYuvCurrTRef->subtractARP( pYuvCurrTRef , pYuvBaseTRef , uiPartAddr , iWidth , iHeight ); … … 1792 1793 pYuvCurrTRef->multiplyARP( uiPartAddr , iWidth , iHeight , dW ); 1793 1794 } 1794 rpcYuvPred->addARP( rpcYuvPred , pYuvCurrTRef , uiPartAddr , iWidth , iHeight , !bi );1795 rpcYuvPred->addARP( rpcYuvPred , pYuvCurrTRef , uiPartAddr , iWidth , iHeight , !bi, pcCU->getSlice()->getSPS()->getBitDepths() ); 1795 1796 } 1796 1797 } … … 1847 1848 } 1848 1849 1849 #if H_3D_VSP 1850 1850 #if NH_3D_VSP 1851 1851 Void TComPrediction::xPredInterBiVSP( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred ) 1852 1852 { … … 1870 1870 } 1871 1871 1872 xWeightedAverage( &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred ); 1873 } 1874 1872 xWeightedAverage( &m_acYuvPred[0], &m_acYuvPred[1], iRefIdx[0], iRefIdx[1], uiPartAddr, iWidth, iHeight, rpcYuvPred, pcCU->getSlice()->getSPS()->getBitDepths() ); 1873 } 1875 1874 #endif 1876 1875 … … 1892 1891 1893 1892 Void TComPrediction::xPredInterBlk(const ComponentID compID, TComDataCU *cu, TComPicYuv *refPic, UInt partAddr, TComMv *mv, Int width, Int height, TComYuv *dstPic, Bool bi, const Int bitDepth 1894 #if H_3D_ARP1893 #if NH_3D_ARP 1895 1894 , Bool filterType 1896 1895 #endif … … 1914 1913 Int yFrac = mv->getVer() & ((1<<shiftVer)-1); 1915 1914 1916 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC1915 #if NH_3D_INTEGER_MV_DEPTH 1917 1916 if( cu->getSlice()->getIsDepth() ) 1918 1917 { 1919 1918 refOffset = mv->getHor() + mv->getVer() * refStride; 1920 1919 ref = refPic->getAddr(compID, cu->getCtuRsAddr(), cu->getZorderIdxInCtu() + partAddr ) + refOffset; 1921 1922 1920 xFrac = 0; 1923 1921 yFrac = 0; … … 1937 1935 m_if.filterHor(compID, ref, refStride, dst, dstStride, cxWidth, cxHeight, xFrac, !bi, chFmt, bitDepth 1938 1936 #endif 1939 #if H_3D_ARP1937 #if NH_3D_ARP 1940 1938 , filterType 1941 1939 #endif … … 1949 1947 m_if.filterVer(compID, ref, refStride, dst, dstStride, cxWidth, cxHeight, yFrac, true, !bi, chFmt, bitDepth 1950 1948 #endif 1951 #if H_3D_ARP1949 #if NH_3D_ARP 1952 1950 , filterType 1953 1951 #endif … … 1962 1960 1963 1961 m_if.filterHor(compID, ref - ((vFilterSize>>1) -1)*refStride, refStride, tmp, tmpStride, cxWidth, cxHeight+vFilterSize-1, xFrac, false, chFmt, bitDepth 1964 #if H_3D_ARP1962 #if NH_3D_ARP 1965 1963 , filterType 1966 1964 #endif … … 1971 1969 m_if.filterVer(compID, tmp + ((vFilterSize>>1) -1)*tmpStride, tmpStride, dst, dstStride, cxWidth, cxHeight, yFrac, false, !bi, chFmt, bitDepth 1972 1970 #endif 1973 #if H_3D_ARP1971 #if NH_3D_ARP 1974 1972 , filterType 1975 1973 #endif … … 2208 2206 2209 2207 // LLS parameters estimation 2208 2210 2209 Int x = 0, y = 0, xx = 0, xy = 0; 2211 2210 Int precShift = std::max(0, bitDepth - 12); … … 2264 2263 else 2265 2264 { 2266 xy += xx >> IC_REG_COST_SHIFT; 2267 xx += xx >> IC_REG_COST_SHIFT; 2268 Int a1 = ( xy << iCountShift ) - ((y * x) >> precShift); 2269 Int a2 = ( xx << iCountShift ) - ((x * x) >> precShift); 2270 const Int iShift = IC_CONST_SHIFT; 2271 const Int iShiftA2 = 6; 2272 const Int iAccuracyShift = 15; 2273 Int iScaleShiftA2 = 0; 2274 Int iScaleShiftA1 = 0; 2265 xy += xx >> IC_REG_COST_SHIFT; 2266 xx += xx >> IC_REG_COST_SHIFT; 2267 Int a1 = ( xy << iCountShift ) - ((y * x) >> precShift); 2268 Int a2 = ( xx << iCountShift ) - ((x * x) >> precShift); 2269 const Int iShift = IC_CONST_SHIFT; 2270 const Int iShiftA2 = 6; 2271 const Int iAccuracyShift = 15; 2272 2273 Int iScaleShiftA2 = 0; 2274 Int iScaleShiftA1 = 0; 2275 2275 Int a1s; 2276 2276 Int a2s; 2277 2278 a1 = Clip3(0, 2*a2, a1); 2279 iScaleShiftA2 = GetMSB( abs( a2 ) ) - iShiftA2; 2280 iScaleShiftA1 = iScaleShiftA2 - IC_SHIFT_DIFF; 2281 2282 if( iScaleShiftA1 < 0 ) 2283 { 2284 iScaleShiftA1 = 0; 2285 } 2286 if( iScaleShiftA2 < 0 ) 2287 { 2288 iScaleShiftA2 = 0; 2289 } 2290 2291 Int iScaleShiftA = iScaleShiftA2 + iAccuracyShift - iShift - iScaleShiftA1; 2292 2293 a2s = a2 >> iScaleShiftA2; 2294 a1s = a1 >> iScaleShiftA1; 2295 2296 a = a1s * m_uiaShift[ a2s ]; 2297 a = a >> iScaleShiftA; 2298 b = ( y - ( ( a * x ) >> iShift ) + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift; 2299 } 2300 } 2277 2278 a1 = Clip3(0, 2*a2, a1); 2279 iScaleShiftA2 = GetMSB( abs( a2 ) ) - iShiftA2; 2280 iScaleShiftA1 = iScaleShiftA2 - IC_SHIFT_DIFF; 2281 2282 if( iScaleShiftA1 < 0 ) 2283 { 2284 iScaleShiftA1 = 0; 2285 } 2286 2287 if( iScaleShiftA2 < 0 ) 2288 { 2289 iScaleShiftA2 = 0; 2290 } 2291 2292 Int iScaleShiftA = iScaleShiftA2 + iAccuracyShift - iShift - iScaleShiftA1; 2293 2294 2295 a2s = a2 >> iScaleShiftA2; 2296 2297 a1s = a1 >> iScaleShiftA1; 2298 2299 a = a1s * m_uiaShift[ a2s ]; 2300 a = a >> iScaleShiftA; 2301 b = ( y - ( ( a * x ) >> iShift ) + ( 1 << ( iCountShift - 1 ) ) ) >> iCountShift; 2302 } 2303 } 2301 2304 #endif 2302 2305 -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComPrediction.h
r1225 r1274 45 45 #include "TComWeightPrediction.h" 46 46 47 #if NH_3D_ARP 48 #include "TComPic.h" 49 #endif 47 50 // forward declaration 48 51 class TComMv; … … 77 80 TComYuv m_acYuvPred[NUM_REF_PIC_LIST_01]; 78 81 TComYuv m_cYuvPredTemp; 79 #if H_3D_ARP82 #if NH_3D_ARP 80 83 TComYuv m_acYuvPredBase[2]; 81 84 #endif … … 91 94 #endif 92 95 93 #if H_3D_VSP96 #if NH_3D_VSP 94 97 Int* m_pDepthBlock; ///< Store a depth block, local variable, to prevent memory allocation every time 95 98 TComYuv m_cYuvDepthOnVsp; … … 100 103 101 104 // motion compensation functions 102 #if H_3D_ARP 103 Void xPredInterUniARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false, TComMvField * pNewMvFiled = NULL ); 105 #if NH_3D_ARP 106 Void xPredInterUniARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ); 107 Void xPredInterUniARPviewRef ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi ); 104 108 Bool xCheckBiInterviewARP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eBaseRefPicList, TComPic*& pcPicYuvCurrTRef, TComMv& cBaseTMV, Int& iCurrTRefPoc ); 105 Void xPredInterUniARPviewRef( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, TComMvField * pNewMvFiled = NULL );106 109 #endif 107 110 108 111 Void xPredInterUni ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv* pcYuvPred, Bool bi=false ); 109 112 Void xPredInterBi ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv* pcYuvPred ); 110 #if H_3D_VSP113 #if NH_3D_VSP 111 114 Void xPredInterUniVSP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi=false ); 112 115 Void xPredInterBiVSP ( TComDataCU* pcCU, UInt uiPartAddr, Int iWidth, Int iHeight, TComYuv*& rpcYuvPred ); … … 114 117 115 118 Void xPredInterBlk(const ComponentID compID, TComDataCU *cu, TComPicYuv *refPic, UInt partAddr, TComMv *mv, Int width, Int height, TComYuv *dstPic, Bool bi, const Int bitDepth 116 #if H_3D_ARP119 #if NH_3D_ARP 117 120 , Bool filterType = false 118 121 #endif … … 122 125 ); 123 126 124 #if H_3D_ARP 125 , Bool filterType = false 126 #endif 127 #if H_3D_VSP 127 #if NH_3D_VSP 128 128 Void xPredInterUniSubPU ( TComDataCU *cu, UInt uiPartAddr, Int iWidth, Int iHeight, RefPicList eRefPicList, TComYuv*& rpcYuvPred, Bool bi, Int widthSubPU=4, Int heightSubPU=4 ); 129 129 #endif … … 137 137 Void xDCPredFiltering( const Pel* pSrc, Int iSrcStride, Pel* pDst, Int iDstStride, Int iWidth, Int iHeight, ChannelType channelType ); 138 138 Bool xCheckIdenticalMotion ( TComDataCU* pcCU, UInt PartAddr); 139 #if H_3D_SPIVMP139 #if NH_3D_SPIVMP 140 140 Bool xCheckTwoSPMotion ( TComDataCU* pcCU, UInt PartAddr0, UInt PartAddr1 ); 141 141 Void xGetSubPUAddrAndMerge(TComDataCU* pcCU, UInt uiPartAddr, Int iSPWidth, Int iSPHeight, Int iNumSPInOneLine, Int iNumSP, UInt* uiMergedSPW, UInt* uiMergedSPH, UInt* uiSPAddr ); … … 184 184 #endif 185 185 186 #if H_3D_DBBP186 #if NH_3D_DBBP 187 187 PartSize getPartitionSizeFromDepth(Pel* pDepthPels, UInt uiDepthStride, UInt uiSize, TComDataCU*& pcCU); 188 188 Bool getSegmentMaskFromDepth( Pel* pDepthPels, UInt uiDepthStride, UInt uiWidth, UInt uiHeight, Bool* pMask, TComDataCU*& pcCU); 189 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize );189 Void combineSegmentsWithMask( TComYuv* pInYuv[2], TComYuv* pOutYuv, Bool* pMask, UInt uiWidth, UInt uiHeight, UInt uiPartAddr, UInt partSize, Int bitDepthY ); 190 190 #endif 191 191 -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComRdCost.cpp
r1256 r1274 311 311 m_bUseEstimatedVSD = false; 312 312 #endif 313 #if H_3D_DBBP313 #if NH_3D_DBBP 314 314 m_bUseMask = false; 315 315 #endif … … 340 340 rcDistParam.DistFunc = m_afpDistortFunc[eDFunc + g_aucConvertToBit[ rcDistParam.iCols ] + 1 ]; 341 341 342 #if H_3D_DBBP342 #if NH_3D_DBBP 343 343 if( m_bUseMask ) 344 344 { … … 397 397 } 398 398 399 #if H_3D_DBBP399 #if NH_3D_DBBP 400 400 if( m_bUseMask ) 401 401 { … … 446 446 } 447 447 448 #if H_3D_DBBP448 #if NH_3D_DBBP 449 449 if( m_bUseMask ) 450 450 { … … 468 468 rcDP.bitDepth = bitDepth; 469 469 rcDP.DistFunc = m_afpDistortFunc[ ( bHadamard ? DF_HADS : DF_SADS ) + g_aucConvertToBit[ iWidth ] + 1 ]; 470 #if H_3D_DBBP470 #if NH_3D_DBBP 471 471 if( m_bUseMask ) 472 472 { … … 656 656 // ==================================================================================================================== 657 657 658 #if H_3D_DBBP658 #if NH_3D_DBBP 659 659 // -------------------------------------------------------------------------------------------------------------------- 660 660 // Masked distortion functions -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComRdCost.h
r1225 r1274 167 167 #endif 168 168 Int m_iCostScale; 169 #if H_3D_DBBP169 #if NH_3D_DBBP 170 170 Bool m_bUseMask; 171 171 #endif … … 206 206 Void setDistParam( DistParam& rcDP, Int bitDepth, Pel* p1, Int iStride1, Pel* p2, Int iStride2, Int iWidth, Int iHeight, Bool bHadamard = false ); 207 207 208 #if H_3D_DBBP208 #if NH_3D_DBBP 209 209 Void setUseMask(Bool b) { m_bUseMask = b; } 210 210 #endif … … 302 302 static Distortion xCalcHADs4x4 ( Pel *piOrg, Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 303 303 static Distortion xCalcHADs8x8 ( Pel *piOrg, Pel *piCurr, Int iStrideOrg, Int iStrideCur, Int iStep ); 304 #if H_3D_DBBP304 #if NH_3D_DBBP 305 305 static UInt xGetMaskedSSE ( DistParam* pcDtParam ); 306 306 static UInt xGetMaskedSAD ( DistParam* pcDtParam ); -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComRom.cpp
r1200 r1274 564 564 Bool g_disableNumbering = false; 565 565 Bool g_disableHLSTrace = false; 566 UInt64 g_stopAtCounter = 937234;566 UInt64 g_stopAtCounter = 0; 567 567 Bool g_traceCopyBack = false; 568 568 Bool g_decTraceDispDer = false; -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComSlice.cpp
r1225 r1274 224 224 m_aaiCodedScale [i].resize(MAX_NUM_LAYERS); 225 225 } 226 226 227 #endif 227 228 … … 277 278 m_iSliceChromaQpDelta[component] = 0; 278 279 } 279 #if H_3D_IV_MERGE280 #if NH_3D_IV_MERGE 280 281 m_maxNumMergeCand = MRG_MAX_NUM_CANDS_MEM; 281 282 #else … … 1995 1996 m_dimensionId[i][j] = 0; 1996 1997 } 1997 #if H_3D_ARP1998 #if NH_3D_ARP 1998 1999 #endif 1999 2000 } … … 2031 2032 Int TComVPS::scalTypeToScalIdx( ScalabilityType scalType ) const 2032 2033 { 2033 assert( scalType >= 0 && scalType <= MAX_NUM_SCALABILITY_TYPES );2034 assert( scalType == MAX_NUM_SCALABILITY_TYPES || getScalabilityMaskFlag( scalType ) );2034 assert( (Int)scalType >= 0 && (Int)scalType <= MAX_NUM_SCALABILITY_TYPES ); 2035 assert( (Int)scalType == MAX_NUM_SCALABILITY_TYPES || getScalabilityMaskFlag( scalType ) ); 2035 2036 Int scalIdx = 0; 2036 2037 for( Int curScalType = 0; curScalType < scalType; curScalType++ ) … … 3584 3585 #endif 3585 3586 } 3586 #if H_3D3587 Void TComSlice::setDefaultRefView( 3588 { 3589 setDefaultRefViewIdx( -1);3590 setDefaultRefViewIdxAvailableFlag( false);3587 #if NH_3D_NBDV 3588 Void TComSlice::setDefaultRefView() 3589 { 3590 setDefaultRefViewIdx(-1); 3591 setDefaultRefViewIdxAvailableFlag(false); 3591 3592 3592 3593 Int valid = 0; 3593 3594 Int DefaultRefViewIdx = -1; 3594 for( UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++ ) 3595 { 3596 for( Int iRefListId = 0; ( iRefListId < (isInterB() ? 2 : 1) ) && !isIntra() && valid == 0; iRefListId++ ) 3597 { 3598 RefPicList eRefPicList = RefPicList( iRefListId ); 3599 Int iNumRefPics = getNumRefIdx( eRefPicList ); 3600 for( Int i = 0; i < iNumRefPics; i++ ) 3595 3596 for(UInt curViewIdx = 0; curViewIdx < getViewIndex() && valid == 0; curViewIdx++) 3597 { 3598 for(Int iRefListId = 0; (iRefListId < (isInterB() ? 2 : 1)) && !isIntra() && valid == 0; iRefListId++) 3599 { 3600 RefPicList eRefPicList = RefPicList(iRefListId); 3601 Int iNumRefPics = getNumRefIdx(eRefPicList); 3602 3603 for(Int i = 0; i < iNumRefPics; i++) 3601 3604 { 3602 if(getPOC() == getRefPic( eRefPicList, i )->getPOC() && curViewIdx == getRefPic( eRefPicList, i)->getViewIndex())3605 if(getPOC() == getRefPic(eRefPicList, i)->getPOC() && curViewIdx == getRefPic(eRefPicList, i)->getViewIndex()) 3603 3606 { 3604 3607 valid = 1; … … 3609 3612 } 3610 3613 } 3611 if( valid ) 3612 { 3613 setDefaultRefViewIdx( DefaultRefViewIdx ); 3614 setDefaultRefViewIdxAvailableFlag( true ); 3615 } 3616 } 3617 #endif 3618 3619 #if H_3D_ARP 3614 3615 if(valid) 3616 { 3617 setDefaultRefViewIdx(DefaultRefViewIdx); 3618 setDefaultRefViewIdxAvailableFlag(true); 3619 } 3620 } 3621 #endif 3622 3623 #if NH_3D_ARP 3620 3624 Void TComSlice::setARPStepNum( TComPicLists*ivPicLists ) 3621 3625 { … … 3684 3688 m_arpRefPicAvailable[eRefPicList][layerIdInNuh] = false; 3685 3689 } 3690 } 3691 } 3692 } 3693 if( m_nARPStepNum > 1) 3694 { 3695 for(Int i = 0; i < getNumActiveRefLayerPics(); i ++ ) 3696 { 3697 Int iLayerId = getRefPicLayerId( i ); 3698 Int iViewIdx = getVPS()->getViewIndex(iLayerId); 3699 Bool bIsDepth = ( getVPS()->getDepthId ( iLayerId ) == 1 ); 3700 if( iViewIdx<getViewIndex() && !bIsDepth ) 3701 { 3702 setBaseViewRefPicList( ivPicLists->getPicList( iLayerId ), iViewIdx ); 3686 3703 } 3687 3704 } … … 3844 3861 setupLUT = setupLUT || getViewSynthesisPredFlag( ); 3845 3862 3846 #if H_3D_NBDV_REF3863 #if NH_3D_NBDV_REF 3847 3864 setupLUT = setupLUT || getDepthRefinementFlag( ); 3848 3865 #endif 3849 3866 3850 #if H_3D_IV_MERGE3867 #if NH_3D_IV_MERGE 3851 3868 setupLUT = setupLUT || ( getIvMvPredFlag() && getIsDepth() ); 3852 3869 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComSlice.h
r1256 r1274 2594 2594 Int m_aiAlterRefIdx [2]; 2595 2595 #endif 2596 #if H_3D_ARP2596 #if NH_3D_ARP 2597 2597 Bool m_arpRefPicAvailable[2][MAX_NUM_LAYERS]; 2598 2598 TComList<TComPic*> * m_pBaseViewRefPicList[MAX_NUM_LAYERS]; … … 2706 2706 Int getNumCurCmpLIds( ) const { return (Int) m_inCmpRefViewIdcs.size(); } 2707 2707 TComPic* getIvPic( Bool depthFlag, Int viewIndex) const { return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2708 #endif 2708 #endif 2709 2709 #if NH_3D 2710 2710 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2711 #endif 2712 #if NH_3D_IC 2711 #endif 2712 #if NH_3D_IC 2713 2713 Void setApplyIC( Bool b ) { m_bApplyIC = b; } 2714 2714 Bool getApplyIC() { return m_bApplyIC; } 2715 Void xSetApplyIC(); 2716 Void xSetApplyIC(Bool bUseLowLatencyICEnc); 2717 2715 Void xSetApplyIC(); 2716 Void xSetApplyIC(Bool bUseLowLatencyICEnc); 2718 2717 Void setIcSkipParseFlag( Bool b ) { m_icSkipParseFlag = b; } 2719 2718 Bool getIcSkipParseFlag() { return m_icSkipParseFlag; } 2720 2719 #endif 2721 #if H_3D_ARP2720 #if NH_3D_ARP 2722 2721 Void setBaseViewRefPicList( TComList<TComPic*> *pListPic, Int iViewIdx ) { m_pBaseViewRefPicList[iViewIdx] = pListPic; } 2723 2722 Void setARPStepNum( TComPicLists*ivPicLists ); … … 2926 2925 Int getAlterRefIdx ( RefPicList e ) { return m_aiAlterRefIdx[e]; } 2927 2926 #endif 2928 #if H_3D_ARP2927 #if NH_3D_ARP 2929 2928 Int getFirstTRefIdx ( RefPicList e ) { return m_aiFirstTRefIdx[e]; } 2930 2929 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } … … 3074 3073 Int getMpiSubPbSize ( ) { return m_mpiSubPbSize ; }; 3075 3074 Int getSubPbSize ( ) { return m_subPbSize ; }; 3075 #if NH_3D_NBDV 3076 Int getDefaultRefViewIdx() { return m_iDefaultRefViewIdx; } 3077 Void setDefaultRefViewIdx(Int iViewIdx) { m_iDefaultRefViewIdx = iViewIdx; } 3078 3079 Bool getDefaultRefViewIdxAvailableFlag() { return m_bDefaultRefViewIdxAvailableFlag; } 3080 Void setDefaultRefViewIdxAvailableFlag(Bool bViewIdx) { m_bDefaultRefViewIdxAvailableFlag = bViewIdx; } 3081 Void setDefaultRefView( ); 3082 #endif 3076 3083 #endif 3077 3084 // Inference -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComYuv.cpp
r1200 r1274 487 487 } 488 488 489 #if H_3D_ARP490 Void TComYuv::addARP( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip )491 { 492 addARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight , bClip );493 addARPChroma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1, uiHeight>>1 , bClip );494 } 495 496 Void TComYuv::addARPLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip )489 #if NH_3D_ARP 490 Void TComYuv::addARP( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip, const BitDepths &clipBitDepths ) 491 { 492 addARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight , bClip , clipBitDepths); 493 addARPChroma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1, uiHeight>>1 , bClip , clipBitDepths); 494 } 495 496 Void TComYuv::addARPLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip, const BitDepths &clipBitDepths ) 497 497 { 498 498 Int x, y; 499 499 500 Pel* pSrc0 = pcYuvSrc0->getLumaAddr( uiAbsPartIdx ); 501 Pel* pSrc1 = pcYuvSrc1->getLumaAddr( uiAbsPartIdx ); 502 Pel* pDst = getLumaAddr( uiAbsPartIdx ); 503 504 UInt iSrc0Stride = pcYuvSrc0->getStride(); 505 UInt iSrc1Stride = pcYuvSrc1->getStride(); 506 UInt iDstStride = getStride(); 507 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthY; 500 Pel* pSrc0 = pcYuvSrc0->getAddr( COMPONENT_Y, uiAbsPartIdx ); 501 Pel* pSrc1 = pcYuvSrc1->getAddr( COMPONENT_Y, uiAbsPartIdx ); 502 Pel* pDst = getAddr( COMPONENT_Y, uiAbsPartIdx ); 503 504 UInt iSrc0Stride = pcYuvSrc0->getStride(COMPONENT_Y); 505 UInt iSrc1Stride = pcYuvSrc1->getStride(COMPONENT_Y); 506 UInt iDstStride = getStride(COMPONENT_Y); 507 const Int clipbd = clipBitDepths.recon[CHANNEL_TYPE_LUMA]; 508 Int iIFshift = IF_INTERNAL_PREC - clipbd; 508 509 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 509 510 for ( y = uiHeight-1; y >= 0; y-- ) … … 514 515 if( bClip ) 515 516 { 516 pDst[x] = ClipY( ( pDst[x] + iOffSet ) >> iIFshift);517 pDst[x] = Pel(ClipBD<Int>(Int( ( pDst[x] + iOffSet ) >> iIFshift ), clipbd)); 517 518 } 518 519 } … … 523 524 } 524 525 525 Void TComYuv::addARPChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip )526 Void TComYuv::addARPChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth, UInt uiHeight, Bool bClip, const BitDepths &clipBitDepths ) 526 527 { 527 528 Int x, y; 528 529 529 Pel* pSrcU0 = pcYuvSrc0->getCbAddr( uiAbsPartIdx ); 530 Pel* pSrcU1 = pcYuvSrc1->getCbAddr( uiAbsPartIdx ); 531 Pel* pSrcV0 = pcYuvSrc0->getCrAddr( uiAbsPartIdx ); 532 Pel* pSrcV1 = pcYuvSrc1->getCrAddr( uiAbsPartIdx ); 533 Pel* pDstU = getCbAddr( uiAbsPartIdx ); 534 Pel* pDstV = getCrAddr( uiAbsPartIdx ); 535 536 UInt iSrc0Stride = pcYuvSrc0->getCStride(); 537 UInt iSrc1Stride = pcYuvSrc1->getCStride(); 538 UInt iDstStride = getCStride(); 539 540 Int iIFshift = IF_INTERNAL_PREC - g_bitDepthC; 530 Pel* pSrcU0 = pcYuvSrc0->getAddr( COMPONENT_Cb, uiAbsPartIdx ); 531 Pel* pSrcU1 = pcYuvSrc1->getAddr( COMPONENT_Cb, uiAbsPartIdx ); 532 Pel* pSrcV0 = pcYuvSrc0->getAddr( COMPONENT_Cr, uiAbsPartIdx ); 533 Pel* pSrcV1 = pcYuvSrc1->getAddr( COMPONENT_Cr, uiAbsPartIdx ); 534 Pel* pDstU = getAddr( COMPONENT_Cb, uiAbsPartIdx ); 535 Pel* pDstV = getAddr( COMPONENT_Cr, uiAbsPartIdx ); 536 537 UInt iSrc0StrideCb = pcYuvSrc0->getStride(COMPONENT_Cb); 538 UInt iSrc1StrideCb = pcYuvSrc1->getStride(COMPONENT_Cb); 539 UInt iDstStrideCb = getStride(COMPONENT_Cb); 540 541 UInt iSrc0StrideCr = pcYuvSrc0->getStride(COMPONENT_Cr); 542 UInt iSrc1StrideCr = pcYuvSrc1->getStride(COMPONENT_Cr); 543 UInt iDstStrideCr = getStride(COMPONENT_Cr); 544 545 const Int clipbd = clipBitDepths.recon[CHANNEL_TYPE_CHROMA]; 546 Int iIFshift = IF_INTERNAL_PREC - clipbd; 541 547 Int iOffSet = ( 1 << ( iIFshift - 1 ) ) + IF_INTERNAL_OFFS; 542 548 … … 549 555 if( bClip ) 550 556 { 551 pDstU[x] = ClipC( ( pDstU[x] + iOffSet ) >> iIFshift ); 552 pDstV[x] = ClipC( ( pDstV[x] + iOffSet ) >> iIFshift ); 553 } 554 } 555 557 pDstU[x] = Pel(ClipBD<Int>( Int( ( pDstU[x] + iOffSet ) >> iIFshift ), clipbd)); 558 pDstV[x] = Pel(ClipBD<Int>( Int( ( pDstV[x] + iOffSet ) >> iIFshift ), clipbd)); 559 } 560 } 561 562 pSrcU0 += iSrc0StrideCb; 563 pSrcU1 += iSrc1StrideCb; 564 pSrcV0 += iSrc0StrideCr; 565 pSrcV1 += iSrc1StrideCr; 566 pDstU += iDstStrideCb; 567 pDstV += iDstStrideCr; 568 } 569 } 570 571 Void TComYuv::subtractARP( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight ) 572 { 573 subtractARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight ); 574 575 if (uiWidth > 8 && pcYuvSrc1->getNumberValidComponents() > 1) 576 { 577 subtractARPChroma( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 ); 578 } 579 } 580 581 Void TComYuv::subtractARPLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight ) 582 { 583 Int x, y; 584 585 Pel* pSrc0 = pcYuvSrc0->getAddr(COMPONENT_Y, uiAbsPartIdx ); 586 Pel* pSrc1 = pcYuvSrc1->getAddr(COMPONENT_Y, uiAbsPartIdx ); 587 Pel* pDst = getAddr (COMPONENT_Y, uiAbsPartIdx ); 588 589 Int iSrc0Stride = pcYuvSrc0->getStride(COMPONENT_Y); 590 Int iSrc1Stride = pcYuvSrc1->getStride(COMPONENT_Y); 591 Int iDstStride = getStride(COMPONENT_Y); 592 for ( y = uiHeight-1; y >= 0; y-- ) 593 { 594 for ( x = uiWidth-1; x >= 0; x-- ) 595 { 596 pDst[x] = pSrc0[x] - pSrc1[x]; 597 } 598 pSrc0 += iSrc0Stride; 599 pSrc1 += iSrc1Stride; 600 pDst += iDstStride; 601 } 602 } 603 604 Void TComYuv::subtractARPChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight ) 605 { 606 Int x, y; 607 608 Pel* pSrcU0 = pcYuvSrc0->getAddr(COMPONENT_Cb, uiAbsPartIdx ); 609 Pel* pSrcU1 = pcYuvSrc1->getAddr(COMPONENT_Cb, uiAbsPartIdx ); 610 Pel* pSrcV0 = pcYuvSrc0->getAddr(COMPONENT_Cr, uiAbsPartIdx ); 611 Pel* pSrcV1 = pcYuvSrc1->getAddr(COMPONENT_Cr, uiAbsPartIdx ); 612 Pel* pDstU = getAddr(COMPONENT_Cb, uiAbsPartIdx ); 613 Pel* pDstV = getAddr(COMPONENT_Cr, uiAbsPartIdx ); 614 615 Int iSrc0Stride = pcYuvSrc0->getStride(COMPONENT_Cb); 616 Int iSrc1Stride = pcYuvSrc1->getStride(COMPONENT_Cb); 617 Int iDstStride = getStride( COMPONENT_Cb ); 618 for ( y = uiHeight-1; y >= 0; y-- ) 619 { 620 for ( x = uiWidth-1; x >= 0; x-- ) 621 { 622 pDstU[x] = pSrcU0[x] - pSrcU1[x]; 623 pDstV[x] = pSrcV0[x] - pSrcV1[x]; 624 } 556 625 pSrcU0 += iSrc0Stride; 557 626 pSrcU1 += iSrc1Stride; … … 563 632 } 564 633 565 Void TComYuv::subtractARP( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight )566 {567 subtractARPLuma ( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth , uiHeight );568 569 if (uiWidth > 8)570 subtractARPChroma( pcYuvSrc0, pcYuvSrc1, uiAbsPartIdx, uiWidth>>1 , uiHeight>>1 );571 }572 573 Void TComYuv::subtractARPLuma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight )574 {575 Int x, y;576 577 Pel* pSrc0 = pcYuvSrc0->getLumaAddr( uiAbsPartIdx );578 Pel* pSrc1 = pcYuvSrc1->getLumaAddr( uiAbsPartIdx );579 Pel* pDst = getLumaAddr( uiAbsPartIdx );580 581 Int iSrc0Stride = pcYuvSrc0->getStride();582 Int iSrc1Stride = pcYuvSrc1->getStride();583 Int iDstStride = getStride();584 for ( y = uiHeight-1; y >= 0; y-- )585 {586 for ( x = uiWidth-1; x >= 0; x-- )587 {588 pDst[x] = pSrc0[x] - pSrc1[x];589 }590 pSrc0 += iSrc0Stride;591 pSrc1 += iSrc1Stride;592 pDst += iDstStride;593 }594 }595 596 Void TComYuv::subtractARPChroma( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight )597 {598 Int x, y;599 600 Pel* pSrcU0 = pcYuvSrc0->getCbAddr( uiAbsPartIdx );601 Pel* pSrcU1 = pcYuvSrc1->getCbAddr( uiAbsPartIdx );602 Pel* pSrcV0 = pcYuvSrc0->getCrAddr( uiAbsPartIdx );603 Pel* pSrcV1 = pcYuvSrc1->getCrAddr( uiAbsPartIdx );604 Pel* pDstU = getCbAddr( uiAbsPartIdx );605 Pel* pDstV = getCrAddr( uiAbsPartIdx );606 607 Int iSrc0Stride = pcYuvSrc0->getCStride();608 Int iSrc1Stride = pcYuvSrc1->getCStride();609 Int iDstStride = getCStride();610 for ( y = uiHeight-1; y >= 0; y-- )611 {612 for ( x = uiWidth-1; x >= 0; x-- )613 {614 pDstU[x] = pSrcU0[x] - pSrcU1[x];615 pDstV[x] = pSrcV0[x] - pSrcV1[x];616 }617 pSrcU0 += iSrc0Stride;618 pSrcU1 += iSrc1Stride;619 pSrcV0 += iSrc0Stride;620 pSrcV1 += iSrc1Stride;621 pDstU += iDstStride;622 pDstV += iDstStride;623 }624 }625 626 634 Void TComYuv::multiplyARP( UInt uiAbsPartIdx , UInt uiWidth , UInt uiHeight , UChar dW ) 627 635 { 628 636 multiplyARPLuma( uiAbsPartIdx , uiWidth , uiHeight , dW ); 629 637 630 if (uiWidth > 8) 638 if ( uiWidth > 8 && getNumberValidComponents() > 1 ) 639 { 631 640 multiplyARPChroma( uiAbsPartIdx , uiWidth >> 1 , uiHeight >> 1 , dW ); 641 } 632 642 } 633 643 … … 641 651 Void TComYuv::multiplyARPLuma( UInt uiAbsPartIdx , UInt uiWidth , UInt uiHeight , UChar dW ) 642 652 { 643 Pel* pDst = get LumaAddr(uiAbsPartIdx );644 Int iDstStride = getStride( );653 Pel* pDst = getAddr(COMPONENT_Y, uiAbsPartIdx ); 654 Int iDstStride = getStride(COMPONENT_Y); 645 655 for ( Int y = uiHeight-1; y >= 0; y-- ) 646 656 { … … 652 662 Void TComYuv::multiplyARPChroma( UInt uiAbsPartIdx , UInt uiWidth , UInt uiHeight , UChar dW ) 653 663 { 654 Pel* pDstU = get CbAddr(uiAbsPartIdx );655 Pel* pDstV = get CrAddr(uiAbsPartIdx );656 657 Int iDstStride = get CStride();664 Pel* pDstU = getAddr( COMPONENT_Cb, uiAbsPartIdx ); 665 Pel* pDstV = getAddr( COMPONENT_Cr, uiAbsPartIdx ); 666 667 Int iDstStride = getStride( COMPONENT_Cb ); 658 668 for ( Int y = uiHeight-1; y >= 0; y-- ) 659 669 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TComYuv.h
r1200 r1274 206 206 #if NH_3D 207 207 Void addClipPartLuma( Int bitDepth, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); 208 #if H_3D_ARP209 Void addARP ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip );210 Void addARPLuma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip );211 Void addARPChroma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip );208 #if NH_3D_ARP 209 Void addARP ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip, const BitDepths &clipBitDepths ); 210 Void addARPLuma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip, const BitDepths &clipBitDepths ); 211 Void addARPChroma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip, const BitDepths &clipBitDepths ); 212 212 Void subtractARP ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight ); 213 213 Void subtractARPLuma ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight ); -
branches/HTM-14.1-update-dev2/source/Lib/TLibCommon/TypeDef.h
r1256 r1274 70 70 #if NH_3D 71 71 #define NH_3D_VSO 1 72 #define NH_3D_NBDV 1 72 73 #define NH_3D_TMVP 1 // QC_TMVP_C0047 73 74 // Sony_M23639 … … 92 93 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units 93 94 // MTK_TEX_DEP_PAR_G0055 Texture-partition-dependent depth partition. JCT3V-G0055 95 96 #define NH_3D_NBDV_REF 1 97 #define NH_3D_MLC 1 98 #define NH_3D_VSP 1 99 #define NH_3D_IV_MERGE 1 100 #define NH_3D_SPIVMP 1 101 #define NH_3D_INTEGER_MV_DEPTH 1 102 #define NH_3D_TEXT_MERGE 1 103 #define NH_3D_DBBP 1 104 #define BUF_FIX 1 105 #define NH_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177 106 // QC_MTK_INTERVIEW_ARP_F0123_F0108 JCT3V-F0123; JCT3V-F0108 107 // SHARP_ARP_REF_CHECK_F0105 ARP reference picture selection and DPB check 108 // LGE_ARP_CTX_F0161 JCT3V-F0161 109 // MTK_ARP_FLAG_CABAC_SIMP_G0061 Use 2 context for ARP flag referring to only left neighbor block in JCT3V-G0061 110 // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053 111 // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085 112 // QC_I0051_ARP_SIMP 113 // SHARP_ARP_CHROMA_I0104 114 // MTK_I0072_IVARP_SCALING_FIX 115 // SEC_ARP_VIEW_REF_CHECK_J0037 Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1 116 // SEC_ARP_REM_ENC_RESTRICT_K0035 Removal of encoder restriction of ARP, JCT3V-K0035 94 117 95 118 #endif … … 121 144 // MTK_TEXTURE_MRGCAND_BUGFIX_E0182 Bug fix for TEXTURE MERGING CANDIDATE , JCT3V-E0182 122 145 // LGE_SIMP_DISP_AVAIL_J0041 // Use 2 status for disparity availability - DISP_AVAILABLE and DISP_NONE 123 #define H_3D_ARP 1 // Advanced residual prediction (ARP), JCT3V-D0177124 // QC_MTK_INTERVIEW_ARP_F0123_F0108 JCT3V-F0123; JCT3V-F0108125 // SHARP_ARP_REF_CHECK_F0105 ARP reference picture selection and DPB check126 // LGE_ARP_CTX_F0161 JCT3V-F0161127 // MTK_ARP_FLAG_CABAC_SIMP_G0061 Use 2 context for ARP flag referring to only left neighbor block in JCT3V-G0061128 // MTK_ARP_REF_SELECTION_G0053 ARP Reference picture selection in JCT3V-G0053129 // MTK_ALIGN_SW_WD_BI_PRED_ARP_H0085 Align the SW and WD for the bi-prediction ARP PUs by disallowing non-normative fast bi-prediction for ARP PUs, JCT3V-H0085130 // QC_I0051_ARP_SIMP131 // SHARP_ARP_CHROMA_I0104132 // MTK_I0072_IVARP_SCALING_FIX133 // SEC_ARP_VIEW_REF_CHECK_J0037 Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1134 // SEC_ARP_REM_ENC_RESTRICT_K0035 Removal of encoder restriction of ARP, JCT3V-K0035135 146 #define H_3D_IC 1 // Illumination Compensation, JCT3V-B0045, JCT3V-C0046, JCT3V-D0060 136 147 // Unifying rounding offset, for IC part, JCT3V-D0135 … … 146 157 // SEC_IC_NEIGHBOR_CLIP_I0080 // Clipping of neighboring sample position, JCT3V-I0080 147 158 // LGE_CHROMA_IC_J0050_J0034 148 #if H_3D_NBDV159 #if NH_3D_NBDV 149 160 #define H_3D_NBDV_REF 1 // Depth oriented neighboring block disparity derivation 150 161 // MTK_D0156 … … 312 323 #endif 313 324 //// ****** NEIGHBOURING BLOCK-BASED DISPARITY VECTOR ********* 314 #if H_3D_NBDV325 #if NH_3D_NBDV 315 326 #define DVFROM_LEFT 0 316 327 #define DVFROM_ABOVE 1 … … 318 329 #endif 319 330 ///// ***** ADVANCED INTERVIEW RESIDUAL PREDICTION ********* 320 #if H_3D_ARP331 #if NH_3D_ARP 321 332 #define H_3D_ARP_WFNR 3 322 333 #endif … … 334 345 /// GT: Move values which are not flags to CommonDef.h and convert to static int !! 335 346 /////////////////////////////////////////////////////////////////////////////////// 336 ///// ***** VIEW SYNTHESIS PREDICTION *********337 #if H_3D_VSP338 #define H_3D_VSP_BLOCKSIZE 4 // Supported values: 1, 2, and 4339 #if H_3D_VSP_BLOCKSIZE == 1340 #define H_3D_VSP_CONSTRAINED 1 // Constrained VSP @ 1x1341 #else342 #define H_3D_VSP_CONSTRAINED 0343 #endif344 #endif345 347 ///// ***** ILLUMATION COMPENSATION ********* 346 348 #if NH_3D_IC … … 351 353 #endif 352 354 ///// ***** DEPTH BASED BLOCK PARTITIONING ********* 353 #if H_3D_DBBP355 #if NH_3D_DBBP 354 356 #define DBBP_INVALID_SHORT (-4) 355 357 #define DBBP_PACK_MODE SIZE_2NxN … … 735 737 MD_ABOVE_LEFT ///< MVP of above left block 736 738 }; 737 #if H_3D739 #if NH_3D_MLC 738 740 enum DefaultMergCandOrder 739 741 { … … 748 750 MRG_A0, ///< Left bottom 749 751 MRG_B2, ///< Above left 750 MRG_IVSHIFT, ///< Shifted IVMC o fShifted IVDC. (These are mutually exclusive)752 MRG_IVSHIFT, ///< Shifted IVMC or Shifted IVDC. (These are mutually exclusive) 751 753 MRG_COL ///< Temporal co-located 752 754 }; -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCAVLC.cpp
r1225 r1274 1840 1840 else 1841 1841 { 1842 vpsVui->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag() ? 0 : 1 );1842 vpsVui->setVpsNumVideoSignalInfoMinus1( (pcVPS->getMaxLayersMinus1() - pcVPS->getVpsBaseLayerInternalFlag()) ? 0 : 1 ); 1843 1843 } 1844 1844 … … 2805 2805 { 2806 2806 READ_UVLC( uiCode, "five_minus_max_num_merge_cand"); 2807 #if H_3D_IV_MERGE2807 #if NH_3D_IV_MERGE 2808 2808 pcSlice->setMaxNumMergeCand(( ( pcSlice->getMpiFlag() || pcSlice->getIvMvPredFlag() || pcSlice->getViewSynthesisPredFlag() ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS) - uiCode); 2809 2809 #else … … 3376 3376 } 3377 3377 3378 #if H_3D_ARP3378 #if NH_3D_ARP 3379 3379 Void TDecCavlc::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3380 3380 { … … 3400 3400 3401 3401 #endif 3402 #if H_3D_DBBP3402 #if NH_3D_DBBP 3403 3403 Void TDecCavlc::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 3404 3404 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCAVLC.h
r1225 r1274 117 117 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 118 118 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ); 119 #if H_3D_ARP119 #if NH_3D_ARP 120 120 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 121 121 #endif … … 127 127 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 128 128 #endif 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 131 131 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCu.cpp
r1225 r1274 52 52 m_ppcYuvReco = NULL; 53 53 m_ppcCU = NULL; 54 #if H_3D_DBBP54 #if NH_3D_DBBP 55 55 m_ppcYuvRecoDBBP = NULL; 56 56 #endif … … 81 81 m_ppcYuvReco = new TComYuv*[m_uiMaxDepth-1]; 82 82 m_ppcCU = new TComDataCU*[m_uiMaxDepth-1]; 83 #if H_3D_DBBP83 #if NH_3D_DBBP 84 84 m_ppcYuvRecoDBBP = new TComYuv*[m_uiMaxDepth-1]; 85 85 #endif … … 95 95 m_ppcYuvReco[ui] = new TComYuv; m_ppcYuvReco[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 96 96 m_ppcCU [ui] = new TComDataCU; m_ppcCU [ui]->create( chromaFormatIDC, uiNumPartitions, uiWidth, uiHeight, true, uiMaxWidth >> (m_uiMaxDepth - 1) ); 97 #if H_3D_DBBP98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight );97 #if NH_3D_DBBP 98 m_ppcYuvRecoDBBP[ui] = new TComYuv; m_ppcYuvRecoDBBP[ui]->create( uiWidth, uiHeight, chromaFormatIDC ); 99 99 #endif 100 100 } … … 119 119 m_ppcYuvReco[ui]->destroy(); delete m_ppcYuvReco[ui]; m_ppcYuvReco[ui] = NULL; 120 120 m_ppcCU [ui]->destroy(); delete m_ppcCU [ui]; m_ppcCU [ui] = NULL; 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 m_ppcYuvRecoDBBP[ui]->destroy(); delete m_ppcYuvRecoDBBP[ui]; m_ppcYuvRecoDBBP[ui] = NULL; 123 123 #endif … … 127 127 delete [] m_ppcYuvReco; m_ppcYuvReco = NULL; 128 128 delete [] m_ppcCU ; m_ppcCU = NULL; 129 #if H_3D_DBBP129 #if NH_3D_DBBP 130 130 delete [] m_ppcYuvRecoDBBP; m_ppcYuvRecoDBBP = NULL; 131 131 #endif … … 152 152 setIsChromaQpAdjCoded(true); 153 153 } 154 154 155 155 // start from the top level CU 156 156 xDecodeCU( pCtu, 0, 0, isLastCtuOfSliceSegment); … … 163 163 Void TDecCu::decompressCtu( TComDataCU* pCtu ) 164 164 { 165 #if ! H_3D_IV_MERGE165 #if !NH_3D_IV_MERGE 166 166 xDecompressCU( pCtu, 0, 0 ); 167 167 #endif … … 283 283 pcCU->setQPSubParts( pcCU->getRefQP(uiAbsPartIdx), uiAbsPartIdx, uiDepth ); // set QP to default QP 284 284 } 285 #if H_3D_NBDV285 #if NH_3D_NBDV 286 286 DisInfo DvInfo; 287 287 DvInfo.m_acNBDV.setZero(); 288 288 DvInfo.m_aVIdxCan = 0; 289 #if H_3D_NBDV_REF289 #if NH_3D_NBDV_REF 290 290 DvInfo.m_acDoNBDV.setZero(); 291 291 #endif … … 293 293 if(!pcCU->getSlice()->isIntra()) 294 294 { 295 #if H_3D_ARP && H_3D_IV_MERGE296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() )295 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP 296 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 297 297 #else 298 #if NH_3D_IV_MERGE && NH_3D_VSP 299 if( pcCU->getSlice()->getIvMvPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 300 #else 301 #if NH_3D_ARP && NH_3D_VSP 302 if( pcCU->getSlice()->getIvResPredFlag() || pcCU->getSlice()->getViewSynthesisPredFlag() ) 303 #else 304 #if NH_3D_VSP 305 if( pcCU->getSlice()->getViewSynthesisPredFlag() ) 306 #else 298 307 #if H_3D_ARP 299 if( pcCU->getSlice()->get VPS()->getUseAdvRP(pcCU->getSlice()->getLayerId()) )308 if( pcCU->getSlice()->getIvResPredFlag( ) ) 300 309 #else 301 310 #if H_3D_IV_MERGE 302 311 if( pcCU->getSlice()->getVPS()->getIvMvPredFlag(pcCU->getSlice()->getLayerId()) ) 303 312 #else 313 #if NH_3D_DBBP 314 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) 315 #else 304 316 if (0) 305 317 #endif 306 318 #endif 307 319 #endif 308 { 309 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true ); 310 m_ppcCU[uiDepth]->copyDVInfoFrom( pcCU, uiAbsPartIdx); 320 #endif 321 #endif 322 #endif 323 #endif 324 { 325 m_ppcCU[uiDepth]->copyInterPredInfoFrom(pcCU, uiAbsPartIdx, REF_PIC_LIST_0, true); 326 m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx); 311 327 PartSize ePartTemp = m_ppcCU[uiDepth]->getPartitionSize(0); 312 328 UChar cWidTemp = m_ppcCU[uiDepth]->getWidth(0); 313 329 UChar cHeightTemp = m_ppcCU[uiDepth]->getHeight(0); 314 m_ppcCU[uiDepth]->setWidth ( 0, pcCU->getSlice()->getSPS()->getMaxCUWidth ()/(1<<uiDepth));315 m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth));316 m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth);317 #if H_3D_IV_MERGE330 m_ppcCU[uiDepth]->setWidth (0, pcCU->getSlice()->getSPS()->getMaxCUWidth () / (1 << uiDepth)); 331 m_ppcCU[uiDepth]->setHeight(0, pcCU->getSlice()->getSPS()->getMaxCUHeight() / (1 << uiDepth)); 332 m_ppcCU[uiDepth]->setPartSizeSubParts(SIZE_2Nx2N, 0, uiDepth); 333 #if NH_3D_IV_MERGE 318 334 if( pcCU->getSlice()->getIsDepth()) 319 335 { … … 323 339 { 324 340 #endif 325 #if H_3D_NBDV_REF341 #if NH_3D_NBDV_REF 326 342 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() ) //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done. 327 343 { … … 333 349 m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo); 334 350 } 335 #if H_3D_IV_MERGE351 #if NH_3D_IV_MERGE 336 352 } 337 353 #endif … … 346 362 } 347 363 #endif 348 349 364 pcCU->setDvInfoSubParts(DvInfo, uiAbsPartIdx, uiDepth); 350 m_ppcCU[uiDepth]->setPartSizeSubParts( ePartTemp, 0, uiDepth);351 m_ppcCU[uiDepth]->setWidth ( 0, cWidTemp);352 m_ppcCU[uiDepth]->setHeight ( 0, cHeightTemp);365 m_ppcCU[uiDepth]->setPartSizeSubParts(ePartTemp, 0, uiDepth); 366 m_ppcCU[uiDepth]->setWidth(0, cWidTemp); 367 m_ppcCU[uiDepth]->setHeight(0, cHeightTemp); 353 368 } 354 369 } … … 381 396 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 382 397 m_ppcCU[uiDepth]->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 383 #if H_3D_IV_MERGE398 #if NH_3D_IV_MERGE 384 399 m_ppcCU[uiDepth]->copyDVInfoFrom(pcCU, uiAbsPartIdx); 400 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 401 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; 402 #else 403 #if NH_3D_MLC 385 404 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 386 405 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 389 408 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 390 409 #endif 410 #endif 391 411 Int numValidMergeCand = 0; 392 412 for( UInt ui = 0; ui < m_ppcCU[uiDepth]->getSlice()->getMaxNumMergeCand(); ++ui ) … … 396 416 m_pcEntropyDecoder->decodeMergeIndex( pcCU, 0, uiAbsPartIdx, uiDepth ); 397 417 UInt uiMergeIndex = pcCU->getMergeIndex(uiAbsPartIdx); 398 #if H_3D_ARP418 #if NH_3D_ARP 399 419 m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth ); 400 420 #endif … … 403 423 #endif 404 424 405 #if H_3D_VSP 425 426 #if NH_3D_VSP 406 427 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 407 428 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 408 #if H_3D_SPIVMP 429 #endif 430 #if NH_3D_SPIVMP 409 431 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 410 432 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 411 433 TComMvField* pcMvFieldSP; 412 434 UChar* puhInterDirSP; 413 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 414 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 415 #endif 435 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 436 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 437 #endif 438 439 #if NH_3D_MLC 416 440 m_ppcCU[uiDepth]->initAvailableFlags(); 441 #endif 417 442 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 443 #if NH_3D_MLC 418 444 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 419 #if H_3D_SPIVMP445 #if NH_3D_SPIVMP 420 446 , pcMvFieldSP, puhInterDirSP 421 447 #endif 422 448 , numValidMergeCand, uiMergeIndex ); 423 449 424 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 425 #if H_3D_SPIVMP 450 m_ppcCU[uiDepth]->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 451 #if NH_3D_VSP 452 , vspFlag 453 #endif 454 #if NH_3D_SPIVMP 426 455 , bSPIVMPFlag 427 456 #endif 428 457 , numValidMergeCand ); 458 #endif 459 #if NH_3D_VSP 429 460 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 430 #else 431 #if H_3D 432 m_ppcCU[uiDepth]->initAvailableFlags(); 433 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 434 m_ppcCU[uiDepth]->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 435 #else 436 m_ppcCU[uiDepth]->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 437 #endif 438 #endif 461 #endif 462 439 463 pcCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 440 464 … … 448 472 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 449 473 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], SIZE_2Nx2N, uiAbsPartIdx, uiDepth ); 450 #if H_3D_VSP474 #if NH_3D_VSP 451 475 if( pcCU->getVSPFlag( uiAbsPartIdx ) != 0 ) 452 476 { … … 481 505 } 482 506 } 483 #if H_3D_SPIVMP507 #if NH_3D_SPIVMP 484 508 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiAbsPartIdx, 0, uiDepth ); 485 509 if (bSPIVMPFlag[uiMergeIndex]) … … 506 530 507 531 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 508 #if H_3D_IV_MERGE532 #if NH_3D_IV_MERGE 509 533 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 510 534 #endif … … 531 555 #endif 532 556 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 533 #if H_3D_IV_MERGE557 #if NH_3D_IV_MERGE 534 558 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 535 559 #endif … … 551 575 #endif 552 576 xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, isLastCtuOfSliceSegment ); 553 #if H_3D_IV_MERGE577 #if NH_3D_IV_MERGE 554 578 xDecompressCU(pcCU, uiAbsPartIdx, uiDepth ); 555 579 #endif … … 574 598 { 575 599 TComPic* pcPic = pCtu->getPic(); 576 #if ! H_3D_IV_MERGE600 #if !NH_3D_IV_MERGE 577 601 TComSlice * pcSlice = pCtu->getSlice(); 578 602 const TComSPS &sps=*(pcSlice->getSPS()); … … 617 641 { 618 642 case MODE_INTER: 619 #if H_3D_DBBP643 #if NH_3D_DBBP 620 644 if( m_ppcCU[uiDepth]->getDBBPFlag(0) ) 621 645 { … … 637 661 } 638 662 #endif 639 #if H_3D_DBBP663 #if NH_3D_DBBP 640 664 } 641 665 #endif … … 845 869 #endif 846 870 847 #if H_3D_DBBP871 #if NH_3D_DBBP 848 872 Void TDecCu::xReconInterDBBP( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 849 873 { … … 851 875 AOF(!pcCU->getSlice()->isIntra()); 852 876 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 877 878 Int bitDepthY = pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 853 879 854 880 // get collocated depth block … … 871 897 872 898 // first, extract the two sets of motion parameters 873 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;899 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 874 900 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 875 901 { … … 877 903 878 904 pDBBPTmpData->auhInterDir[uiSegment] = pcCU->getInterDir(uiPartAddr); 905 assert( pDBBPTmpData->auhInterDir[uiSegment] == 1 || pDBBPTmpData->auhInterDir[uiSegment] == 2 ); // only uni-prediction allowed 879 906 880 907 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 884 911 } 885 912 913 #if H_3D 886 914 AOF( pcCU->getARPW(uiPartAddr) == 0 ); 887 915 AOF( pcCU->getICFlag(uiPartAddr) == false ); 888 916 AOF( pcCU->getSPIVMPFlag(uiPartAddr) == false ); 889 917 AOF( pcCU->getVSPFlag(uiPartAddr) == 0 ); 918 #endif 890 919 } 891 920 … … 927 956 928 957 // reconstruct final prediction signal by combining both segments 929 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize );958 m_pcPrediction->combineSegmentsWithMask(apSegPredYuv, m_ppcYuvReco[uiDepth], pMask, pcCU->getWidth(0), pcCU->getHeight(0), 0, ePartSize, bitDepthY); 930 959 931 960 // inter recon 932 xDecodeInterTexture( pcCU, 0,uiDepth );961 xDecodeInterTexture( pcCU, uiDepth ); 933 962 934 963 // clip for only non-zero cbp case 935 if ( ( pcCU->getCbf( 0, TEXT_LUMA ) ) || ( pcCU->getCbf( 0, TEXT_CHROMA_U ) ) || ( pcCU->getCbf(0, TEXT_CHROMA_V) ) )936 { 937 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ) );964 if ( ( pcCU->getCbf( 0, COMPONENT_Y ) ) || ( pcCU->getCbf( 0, COMPONENT_Cb ) ) || ( pcCU->getCbf(0, COMPONENT_Cr ) ) ) 965 { 966 m_ppcYuvReco[uiDepth]->addClip( m_ppcYuvReco[uiDepth], m_ppcYuvResi[uiDepth], 0, pcCU->getWidth( 0 ), pcCU->getSlice()->getSPS()->getBitDepths() ); 938 967 } 939 968 else -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecCu.h
r1200 r1274 62 62 TComDataCU** m_ppcCU; ///< CU data array 63 63 64 #if H_3D_DBBP64 #if NH_3D_DBBP 65 65 TComYuv** m_ppcYuvRecoDBBP; 66 66 #endif … … 102 102 Void xReconInter ( TComDataCU* pcCU, UInt uiDepth ); 103 103 104 #if H_3D_DBBP104 #if NH_3D_DBBP 105 105 Void xReconInterDBBP ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 106 106 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecEntropy.cpp
r1225 r1274 105 105 } 106 106 107 #if H_3D_ARP107 #if NH_3D_ARP 108 108 Void TDecEntropy::decodeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 109 109 { … … 129 129 pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth ); 130 130 131 #if H_3D_ARP131 #if NH_3D_ARP 132 132 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 ) 133 133 #else … … 240 240 UInt uiNumPU = ( ePartSize == SIZE_2Nx2N ? 1 : ( ePartSize == SIZE_NxN ? 4 : 2 ) ); 241 241 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 242 #if H_3D_IV_MERGE 242 //#if H_3D_IV_MERGE 243 #if NH_3D_MLC 243 244 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 244 245 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 247 248 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS]; 248 249 #endif 249 #if H_3D_SPIVMP250 #if NH_3D_SPIVMP 250 251 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 251 TComMvField* pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition ()*2];252 UChar* puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition ()];253 #endif 254 #if H_3D_IV_MERGE252 TComMvField* pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 253 UChar* puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 254 #endif 255 #if NH_3D_IV_MERGE 255 256 pcSubCU->copyDVInfoFrom( pcCU, uiAbsPartIdx); 256 257 #endif … … 260 261 } 261 262 Int numValidMergeCand = 0; 263 #if !NH_3D 262 264 Bool hasMergedCandList = false; 265 #else 266 Bool isMerged = false; 267 #endif 263 268 264 269 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_0 ); 265 270 pcSubCU->copyInterPredInfoFrom( pcCU, uiAbsPartIdx, REF_PIC_LIST_1 ); 266 #if H_3D271 #if NH_3D 267 272 for ( UInt uiPartIdx = 0, uiSubPartIdx = uiAbsPartIdx; uiPartIdx < uiNumPU; uiPartIdx++, uiSubPartIdx += uiPUOffset ) 268 273 { … … 296 301 297 302 ////// Parse CUs extension syntax 303 #if NH_3D_DBBP 298 304 decodeDBBPFlag( pcCU, uiAbsPartIdx, uiDepth ); 299 decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 300 301 #if H_3D_ARP 305 #endif 306 //decodeSDCFlag ( pcCU, uiAbsPartIdx, uiDepth ); 307 308 #if NH_3D_ARP 302 309 decodeARPW ( pcCU, uiAbsPartIdx, uiDepth ); 303 310 #endif … … 312 319 { 313 320 UInt uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 314 #if H_3D_DBBP321 #if NH_3D_DBBP 315 322 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && ePartSize != SIZE_2Nx2N && pcSubCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(uiAbsPartIdx) == false ) 316 323 #else … … 321 328 if ( !isMerged ) 322 329 { 323 #if H_3D_VSP330 #if NH_3D_VSP 324 331 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 325 332 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 330 337 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand); 331 338 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 332 #if H_3D_SPIVMP339 #if NH_3D_SPIVMP 333 340 , pcMvFieldSP, puhInterDirSP 334 341 #endif 335 342 , numValidMergeCand ); 336 343 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 337 #if H_3D_SPIVMP344 #if NH_3D_SPIVMP 338 345 , bSPIVMPFlag 339 346 #endif 340 347 , numValidMergeCand ); 341 348 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 342 343 349 #else 344 350 #if H_3D … … 358 364 { 359 365 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 360 #if H_3D_VSP366 #if NH_3D_VSP 361 367 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 362 368 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 367 373 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 368 374 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 369 #if H_3D_SPIVMP375 #if NH_3D_SPIVMP 370 376 , pcMvFieldSP, puhInterDirSP 371 377 #endif 372 378 ,numValidMergeCand, uiMergeIndex ); 373 379 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours, vspFlag 374 #if H_3D_SPIVMP380 #if NH_3D_SPIVMP 375 381 , bSPIVMPFlag 376 382 #endif … … 398 404 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 399 405 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 400 #if H_3D_VSP401 #if H_3D_DBBP406 #if NH_3D_VSP 407 #if NH_3D_DBBP 402 408 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) ) 403 409 #else … … 490 496 { 491 497 pcSubCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); // temporarily set. 498 499 #if NH_3D_MLC 500 #if NH_3D_VSP 501 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 502 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 503 #endif 504 #if NH_3D_SPIVMP 505 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 506 #endif 507 pcSubCU->initAvailableFlags(); 508 #endif 492 509 pcSubCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 510 #if NH_3D_MLC 511 pcSubCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours 512 #if NH_3D_SPIVMP 513 , pcMvFieldSP, puhInterDirSP 514 #endif 515 , numValidMergeCand ); 516 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 517 #if NH_3D_VSP 518 , vspFlag 519 #endif 520 #if NH_3D_SPIVMP 521 , bSPIVMPFlag 522 #endif 523 , numValidMergeCand ); 524 #if NH_3D_VSP 525 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 526 #endif 527 #endif 493 528 pcSubCU->setPartSizeSubParts( ePartSize, 0, uiDepth ); // restore. 494 529 hasMergedCandList = true; … … 498 533 { 499 534 uiMergeIndex = pcCU->getMergeIndex(uiSubPartIdx); 535 536 #if NH_3D_MLC 537 #if NH_3D_VSP 538 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 539 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 540 #endif 541 #if NH_3D_SPIVMP 542 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 543 #endif 544 pcSubCU->initAvailableFlags(); 545 #endif 500 546 pcSubCU->getInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand, uiMergeIndex ); 547 #if NH_3D_MLC 548 pcSubCU->xGetInterMergeCandidates( uiSubPartIdx-uiAbsPartIdx, uiPartIdx, cMvFieldNeighbours, uhInterDirNeighbours 549 #if NH_3D_SPIVMP 550 , pcMvFieldSP, puhInterDirSP 551 #endif 552 ,numValidMergeCand, uiMergeIndex ); 553 pcSubCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 554 #if NH_3D_VSP 555 , vspFlag 556 #endif 557 #if NH_3D_SPIVMP 558 , bSPIVMPFlag 559 #endif 560 ,numValidMergeCand ); 561 #if NH_3D_VSP 562 pcCU->setVSPFlagSubParts( vspFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 563 #endif 564 #endif 501 565 } 502 566 … … 512 576 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvd( cTmpMv, ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 513 577 pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx ); 514 515 } 516 } 578 #if NH_3D_VSP 579 if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 ) 580 { 581 if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) ) 582 { 583 UInt dummy; 584 Int vspSize; 585 Int width, height; 586 pcCU->getPartIndexAndSize( uiPartIdx, dummy, width, height, uiSubPartIdx, pcCU->getTotalNumPart()==256 ); 587 pcCU->setMvFieldPUForVSP( pcCU, uiSubPartIdx, width, height, RefPicList( uiRefListIdx ), cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ].getRefIdx(), vspSize ); 588 pcCU->setVSPFlag( uiSubPartIdx, vspSize ); 589 } 590 } 591 #endif 592 } 593 } 594 #if NH_3D_SPIVMP 595 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeIndex], uiSubPartIdx, uiPartIdx, uiDepth ); 596 if (bSPIVMPFlag[uiMergeIndex] != 0) 597 { 598 Int iWidth, iHeight; 599 UInt uiIdx; 600 pcCU->getPartIndexAndSize( uiPartIdx, uiIdx, iWidth, iHeight, uiSubPartIdx, true ); 601 602 UInt uiSPAddr; 603 604 Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight; 605 606 pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight); 607 608 for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++) 609 { 610 pcCU->getSPAbsPartIdx(uiSubPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr); 611 pcCU->setInterDirSP(puhInterDirSP[iPartitionIdx], uiSPAddr, iSPWidth, iSPHeight); 612 pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight); 613 pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight); 614 } 615 } 616 #endif 517 617 } 518 618 else … … 551 651 } 552 652 #endif 553 #if H_3D_SPIVMP653 #if NH_3D_SPIVMP 554 654 delete[] pcMvFieldSP; 555 655 delete[] puhInterDirSP; … … 619 719 } 620 720 621 #if H_3D721 #if NH_3D 622 722 Void TDecEntropy::decodeMVPIdxPU( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ) 623 723 { … … 1070 1170 } 1071 1171 #endif 1072 #if H_3D_DBBP1172 #if NH_3D_DBBP 1073 1173 Void TDecEntropy::decodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 1074 1174 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecEntropy.h
r1225 r1274 85 85 virtual Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ) = 0; 86 86 virtual Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ) = 0; 87 #if H_3D_ARP87 #if NH_3D_ARP 88 88 virtual Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 89 89 #endif … … 95 95 virtual Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 96 96 #endif 97 #if H_3D_DBBP97 #if NH_3D_DBBP 98 98 virtual Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0; 99 99 #endif … … 145 145 Void decodeMvdPU ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 146 146 Void decodeMVPIdxPU ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, RefPicList eRefList ); 147 #if H_3D147 #if NH_3D 148 148 Void decodeMvsAMVP ( TComDataCU* pcSubCU, UInt uiPartAddr, UInt uiDepth, UInt uiPartIdx, 149 149 RefPicList eRefList ); … … 174 174 Void decodePartSize ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 175 175 176 #if H_3D_ARP176 #if NH_3D_ARP 177 177 Void decodeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 178 178 #endif … … 183 183 Void decodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 184 184 #endif 185 #if H_3D_DBBP185 #if NH_3D_DBBP 186 186 Void decodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 187 187 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecGop.cpp
r1200 r1274 122 122 } 123 123 124 #if H_3D_NBDV124 #if NH_3D_NBDV 125 125 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 126 126 { 127 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 -pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx());128 rpcPic->setNumDdvCandPics(rpcPic->getDisCandRefPictures(iColPoc));127 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 - pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx()); 128 pcPic->setNumDdvCandPics(pcPic->getDisCandRefPictures(iColPoc)); 129 129 } 130 130 131 131 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 132 132 { 133 rpcPic->checkTemporalIVRef();133 pcPic->checkTemporalIVRef(); 134 134 } 135 135 136 136 if(pcSlice->getIsDepth()) 137 137 { 138 rpcPic->checkTextureRef();138 pcPic->checkTextureRef(); 139 139 } 140 140 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecSbac.cpp
r1256 r1274 73 73 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 74 74 , m_cCUMergeIdxExtSCModel ( 1, 1, NUM_MERGE_IDX_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 75 #if H_3D_ARP75 #if NH_3D_ARP 76 76 , m_cCUPUARPWSCModel ( 1, 1, NUM_ARPW_CTX , m_contextModels + m_numContextModels, m_numContextModels) 77 77 #endif … … 119 119 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 120 120 #endif 121 #if H_3D_DBBP121 #if NH_3D_DBBP 122 122 , m_cDBBPFlagSCModel ( 1, 1, DBBP_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 123 123 #endif … … 164 164 m_cCUMergeFlagExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT ); 165 165 m_cCUMergeIdxExtSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_MERGE_IDX_EXT ); 166 #if H_3D_ARP166 #if NH_3D_ARP 167 167 m_cCUPUARPWSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_ARPW ); 168 168 #endif … … 210 210 m_cSDCFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_SDC_FLAG ); 211 211 #endif 212 #if H_3D_DBBP212 #if NH_3D_DBBP 213 213 m_cDBBPFlagSCModel.initBuffer ( sliceType, qp, (UChar*)INIT_DBBP_FLAG ); 214 214 #endif … … 240 240 m_cCUDISFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_FLAG ); 241 241 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 242 #endif243 #if H_3D_ARP244 m_cCUPUARPWSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW );245 242 #endif 246 243 #if H_3D_DIM … … 256 253 #if H_3D_DIM_SDC 257 254 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 258 #endif259 #if H_3D_DBBP260 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );261 255 #endif 262 256 … … 2417 2411 } 2418 2412 2419 #if H_3D_ARP2413 #if NH_3D_ARP 2420 2414 Void TDecSbac::parseARPW( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2421 2415 { 2422 UInt uiMaxW = pcCU->getSlice()->getARPStepNum() - 1;2423 2416 UInt uiW = 0; 2424 2417 UInt uiOffset = pcCU->getCTXARPWFlag(uiAbsPartIdx); 2425 2418 UInt uiCode = 0; 2426 2419 2427 assert ( uiMaxW > 0 ); 2428 2429 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 0 + uiOffset ) ); 2420 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 0 + uiOffset ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__ARP_FLAG)); 2430 2421 2431 2422 uiW = uiCode; 2432 2423 if( 1 == uiW ) 2433 2424 { 2434 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) );2425 m_pcTDecBinIf->decodeBin( uiCode , m_cCUPUARPWSCModel.get( 0, 0, 2 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__ARP_FLAG)); 2435 2426 uiW += ( 1 == uiCode ? 1 : 0 ); 2436 2427 } … … 2539 2530 #endif 2540 2531 2541 #if H_3D_DBBP2532 #if NH_3D_DBBP 2542 2533 Void TDecSbac::parseDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) 2543 2534 { … … 2547 2538 UInt uiSymbol = 0; 2548 2539 2549 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) );2540 m_pcTDecBinIf->decodeBin( uiSymbol, m_cDBBPFlagSCModel.get( 0, 0, 0 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__DBBP_FLAG) ); 2550 2541 DTRACE_CU("dbbp_flag", uiSymbol) 2551 2542 PartSize ePartSize = pcCU->getPartitionSize( uiAbsPartIdx ); 2552 2543 AOF( ePartSize == SIZE_2NxN || ePartSize == SIZE_Nx2N ); 2553 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMax CUDepth() - uiDepth ) << 1 ) ) >> 4;2544 UInt uiPUOffset = ( g_auiPUOffset[UInt( ePartSize )] << ( ( pcCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uiDepth ) << 1 ) ) >> 4; 2554 2545 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx, 0, uiDepth); 2555 2546 pcCU->setDBBPFlagSubParts(uiSymbol, uiAbsPartIdx+uiPUOffset, 1, uiDepth); -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecSbac.h
r1225 r1274 121 121 Void parseSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 122 122 #endif 123 #if H_3D_DBBP123 #if NH_3D_DBBP 124 124 Void parseDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 125 125 #endif … … 139 139 Void parseMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPUIdx ); 140 140 Void parseMergeIndex ( TComDataCU* pcCU, UInt& ruiMergeIndex ); 141 #if H_3D_ARP141 #if NH_3D_ARP 142 142 Void parseARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ); 143 143 #endif … … 190 190 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; 191 191 ContextModel3DBuffer m_cCUMergeIdxExtSCModel; 192 #if H_3D_ARP192 #if NH_3D_ARP 193 193 ContextModel3DBuffer m_cCUPUARPWSCModel; 194 194 #endif … … 240 240 ContextModel3DBuffer m_cSDCFlagSCModel; 241 241 #endif 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 ContextModel3DBuffer m_cDBBPFlagSCModel; 244 244 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecTop.cpp
r1225 r1274 292 292 293 293 294 #if H_3D_IV_MERGE294 #if NH_3D_IV_MERGE 295 295 Void 296 296 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice ) … … 1149 1149 pcSlice->getTempRefPicLists( m_cListPic, m_refPicSetInterLayer0, m_refPicSetInterLayer1, tempRefPicLists, usedAsLongTerm, numPocTotalCurr); 1150 1150 pcSlice->setRefPicList ( tempRefPicLists, usedAsLongTerm, numPocTotalCurr, true ); 1151 #if H_3D1151 #if NH_3D_NBDV 1152 1152 pcSlice->setDefaultRefView(); 1153 1153 #endif 1154 #if H_3D_ARP1154 #if NH_3D_ARP 1155 1155 pcSlice->setARPStepNum(m_ivPicLists); 1156 if( pcSlice->getARPStepNum() > 1 )1157 {1158 // GT: This seems to be broken, not all nuh_layer_ids are necessarily present1159 for(Int iLayerId = 0; iLayerId < nalu.m_nuhLayerId; iLayerId ++ )1160 {1161 Int iViewIdx = pcSlice->getVPS()->getViewIndex(iLayerId);1162 Bool bIsDepth = ( pcSlice->getVPS()->getDepthId ( iLayerId ) == 1 );1163 if( iViewIdx<getViewIndex() && !bIsDepth )1164 {1165 pcSlice->setBaseViewRefPicList( m_ivPicLists->getPicList( iLayerId ), iViewIdx );1166 }1167 }1168 }1169 1156 #endif 1170 1157 #else … … 1174 1161 #if NH_3D 1175 1162 pcSlice->checkInCompPredRefLayers(); 1176 #if H_3D_IV_MERGE1163 #if NH_3D_IV_MERGE 1177 1164 #if H_3D_FCO 1178 1165 //assert( !getIsDepth() ); … … 1271 1258 } 1272 1259 1273 #if H_3D_IV_MERGE1260 #if NH_3D_IV_MERGE 1274 1261 #if H_3D_FCO 1275 1262 if( !pcSlice->getIsDepth() && m_pcCamParsCollector ) -
branches/HTM-14.1-update-dev2/source/Lib/TLibDecoder/TDecTop.h
r1200 r1274 81 81 Int**** getBaseViewShiftLUTI() { return m_aiBaseViewShiftLUT; } 82 82 83 #if H_3D_IV_MERGE83 #if NH_3D_IV_MERGE 84 84 Void copyCamParamForSlice( TComSlice* pcSlice ); 85 85 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncCavlc.cpp
r1225 r1274 2195 2195 } 2196 2196 #endif 2197 #if H_3D_IV_MERGE2197 #if NH_3D_IV_MERGE 2198 2198 assert(pcSlice->getMaxNumMergeCand()<=MRG_MAX_NUM_CANDS_MEM); 2199 2199 #else … … 2202 2202 if (!pcSlice->isIntra()) 2203 2203 { 2204 #if H_3D_IV_MERGE2204 #if NH_3D_IV_MERGE 2205 2205 WRITE_UVLC( ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( ) ) ? MRG_MAX_NUM_CANDS_MEM : MRG_MAX_NUM_CANDS ) - pcSlice->getMaxNumMergeCand(), "five_minus_max_num_merge_cand"); 2206 2206 #else … … 2578 2578 } 2579 2579 2580 #if H_3D_ARP2580 #if NH_3D_ARP 2581 2581 Void TEncCavlc::codeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2582 2582 { … … 2901 2901 #endif 2902 2902 2903 #if H_3D_DBBP2903 #if NH_3D_DBBP 2904 2904 Void TEncCavlc::codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2905 2905 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncCavlc.h
r1225 r1274 126 126 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 127 127 Void codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 128 #if H_3D_ARP128 #if NH_3D_ARP 129 129 Void codeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 130 130 #endif … … 136 136 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 137 137 #endif 138 #if H_3D_DBBP138 #if NH_3D_DBBP 139 139 Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 140 140 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncCu.cpp
r1256 r1274 68 68 m_ppcTempCU = new TComDataCU*[m_uhTotalDepth-1]; 69 69 70 #if H_3D_ARP70 #if NH_3D_ARP 71 71 m_ppcWeightedTempCU = new TComDataCU*[m_uhTotalDepth-1]; 72 72 #endif … … 79 79 m_ppcRecoYuvTemp = new TComYuv*[m_uhTotalDepth-1]; 80 80 m_ppcOrigYuv = new TComYuv*[m_uhTotalDepth-1]; 81 #if H_3D_DBBP81 #if NH_3D_DBBP 82 82 m_ppcOrigYuvDBBP = new TComYuv*[m_uhTotalDepth-1]; 83 83 #endif … … 92 92 m_ppcBestCU[i] = new TComDataCU; m_ppcBestCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 93 93 m_ppcTempCU[i] = new TComDataCU; m_ppcTempCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 94 #if H_3D_ARP95 m_ppcWeightedTempCU[i] = new TComDataCU; m_ppcWeightedTempCU[i]->create( uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) );94 #if NH_3D_ARP 95 m_ppcWeightedTempCU[i] = new TComDataCU; m_ppcWeightedTempCU[i]->create( chromaFormat, uiNumPartitions, uiWidth, uiHeight, false, uiMaxWidth >> (m_uhTotalDepth - 1) ); 96 96 #endif 97 97 … … 105 105 106 106 m_ppcOrigYuv [i] = new TComYuv; m_ppcOrigYuv [i]->create(uiWidth, uiHeight, chromaFormat); 107 #if H_3D_DBBP108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight );107 #if NH_3D_DBBP 108 m_ppcOrigYuvDBBP[i] = new TComYuv; m_ppcOrigYuvDBBP[i]->create(uiWidth, uiHeight, chromaFormat); 109 109 #endif 110 110 … … 146 146 m_ppcTempCU[i]->destroy(); delete m_ppcTempCU[i]; m_ppcTempCU[i] = NULL; 147 147 } 148 #if H_3D_ARP148 #if NH_3D_ARP 149 149 if(m_ppcWeightedTempCU[i]) 150 150 { … … 180 180 m_ppcOrigYuv[i]->destroy(); delete m_ppcOrigYuv[i]; m_ppcOrigYuv[i] = NULL; 181 181 } 182 #if H_3D_DBBP182 #if NH_3D_DBBP 183 183 if(m_ppcOrigYuvDBBP[i]) 184 184 { … … 198 198 } 199 199 200 #if H_3D_ARP200 #if NH_3D_ARP 201 201 if(m_ppcWeightedTempCU) 202 202 { … … 240 240 m_ppcOrigYuv = NULL; 241 241 } 242 #if H_3D_DBBP242 #if NH_3D_DBBP 243 243 if(m_ppcOrigYuvDBBP) 244 244 { … … 280 280 m_ppcTempCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); 281 281 282 #if NH_3D_ARP 283 m_ppcWeightedTempCU[0]->initCtu( pCtu->getPic(), pCtu->getCtuRsAddr() ); 284 #endif 285 282 286 #if KWU_RC_MADPRED_E0227 283 287 m_LCUPredictionSAD = 0; … … 441 445 Bool earlyDetectionSkipMode = false; 442 446 443 #if H_3D_VSP447 #if NH_3D_NBDV 444 448 DisInfo DvInfo; 445 449 DvInfo.m_acNBDV.setZero(); 446 450 DvInfo.m_aVIdxCan = 0; 447 #if H_3D_NBDV_REF451 #if NH_3D_NBDV_REF 448 452 DvInfo.m_acDoNBDV.setZero(); 449 453 #endif … … 584 588 #endif 585 589 586 #if H_3D_NBDV590 #if NH_3D_NBDV 587 591 if( rpcTempCU->getSlice()->getSliceType() != I_SLICE ) 588 592 { 589 #if H_3D_ARP && H_3D_IV_MERGE590 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getIvMvPredFlag() )593 #if NH_3D_ARP && NH_3D_IV_MERGE && NH_3D_VSP 594 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getIvMvPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 591 595 #else 592 #if H_3D_ARP 593 if( rpcTempCU->getSlice()->getVPS()->getUseAdvRP(rpcTempCU->getSlice()->getLayerId()) ) 596 #if NH_3D_IV_MERGE && NH_3D_VSP 597 if( rpcTempCU->getSlice()->getIvMvPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 598 #else 599 #if NH_3D_ARP && NH_3D_VSP 600 if( rpcTempCU->getSlice()->getIvResPredFlag() || rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 601 #else 602 #if NH_3D_VSP 603 if( rpcTempCU->getSlice()->getViewSynthesisPredFlag() ) 604 #else 605 #if NH_3D_ARP 606 if( rpcTempCU->getSlice()->getIvResPredFlag() ) 594 607 #else 595 608 #if H_3D_IV_MERGE 596 609 if( rpcTempCU->getSlice()->getVPS()->getIvMvPredFlag(rpcTempCU->getSlice()->getLayerId()) ) 597 610 #else 611 #if NH_3D_DBBP 612 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() ) 613 #else 598 614 if (0) 615 #endif 616 #endif 617 #endif 618 #endif 599 619 #endif 600 620 #endif … … 602 622 { 603 623 PartSize ePartTemp = rpcTempCU->getPartitionSize(0); 604 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );605 #if H_3D_IV_MERGE624 rpcTempCU->setPartSizeSubParts(SIZE_2Nx2N, 0, uiDepth); 625 #if NH_3D_IV_MERGE 606 626 if (rpcTempCU->getSlice()->getIsDepth() ) 607 627 { … … 611 631 { 612 632 #endif 613 #if H_3D_NBDV_REF633 #if NH_3D_NBDV_REF 614 634 if( rpcTempCU->getSlice()->getDepthRefinementFlag() ) 615 635 { … … 621 641 rpcTempCU->getDisMvpCandNBDV(&DvInfo); 622 642 } 623 #if H_3D_IV_MERGE643 #if NH_3D_IV_MERGE 624 644 } 625 645 #endif … … 659 679 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode );//by Competition for inter_2Nx2N 660 680 #endif 661 #if H_3D_VSP662 681 #if NH_3D_VSP || NH_3D_DBBP 682 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 663 683 #endif 664 684 } … … 673 693 674 694 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 675 #if H_3D_VSP676 695 #if NH_3D_VSP || NH_3D_DBBP 696 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 677 697 #endif 678 698 … … 690 710 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 691 711 #endif 692 #if H_3D_VSP693 694 #endif 695 #if H_3D_DBBP712 #if NH_3D_VSP || NH_3D_DBBP 713 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 714 #endif 715 #if NH_3D_DBBP 696 716 if( rpcTempCU->getSlice()->getDepthBasedBlkPartFlag() && rpcTempCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 697 717 { 698 718 xCheckRDCostInterDBBP( rpcBestCU, rpcTempCU, false ); 699 719 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 700 #if H_3D_VSP720 #if NH_3D_VSP || NH_3D_DBBP 701 721 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 702 722 #endif … … 780 800 #endif 781 801 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 782 #if H_3D_VSP783 802 #if NH_3D_VSP || NH_3D_DBBP 803 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 784 804 #endif 785 805 … … 799 819 #endif 800 820 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 801 #if H_3D_VSP821 #if NH_3D_VSP || NH_3D_DBBP 802 822 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 803 823 #endif … … 822 842 823 843 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 824 #if H_3D_VSP844 #if NH_3D_VSP || NH_3D_DBBP 825 845 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 826 846 #endif … … 861 881 #endif 862 882 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 863 #if H_3D_VSP883 #if NH_3D_VSP || NH_3D_DBBP 864 884 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 865 885 #endif … … 882 902 883 903 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 884 #if H_3D_VSP904 #if NH_3D_VSP || NH_3D_DBBP 885 905 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 886 906 #endif … … 909 929 910 930 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 911 #if H_3D_VSP931 #if NH_3D_VSP || NH_3D_DBBP 912 932 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 913 933 #endif … … 929 949 #endif 930 950 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 931 #if H_3D_VSP951 #if NH_3D_VSP || NH_3D_DBBP 932 952 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 933 953 #endif … … 957 977 958 978 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 959 #if H_3D_VSP979 #if NH_3D_VSP || NH_3D_DBBP 960 980 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 961 981 #endif … … 977 997 #endif 978 998 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 979 #if H_3D_VSP999 #if NH_3D_VSP || NH_3D_DBBP 980 1000 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 981 1001 #endif … … 997 1017 #endif 998 1018 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 999 #if H_3D_VSP1019 #if NH_3D_VSP || NH_3D_DBBP 1000 1020 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1001 1021 #endif … … 1018 1038 #endif 1019 1039 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1020 #if H_3D_VSP1040 #if NH_3D_VSP || NH_3D_DBBP 1021 1041 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1022 1042 #endif … … 1034 1054 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU ); 1035 1055 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1036 #if H_3D_VSP1037 1056 #if NH_3D_VSP || NH_3D_DBBP 1057 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1038 1058 #endif 1039 1059 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD ); 1040 1060 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1041 #if H_3D_VSP1042 1061 #if NH_3D_VSP || NH_3D_DBBP 1062 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1043 1063 #endif 1044 1064 #if NH_3D_QTLPC … … 1049 1069 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N ); 1050 1070 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1051 #if H_3D_VSP1052 1071 #if NH_3D_VSP || NH_3D_DBBP 1072 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1053 1073 #endif 1054 1074 xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N ); 1055 1075 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1056 #if H_3D_VSP1057 1076 #if NH_3D_VSP || NH_3D_DBBP 1077 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1058 1078 #endif 1059 1079 #if NH_3D_QTLPC … … 1270 1290 DEBUG_STRING_NEW(sTempDebug) 1271 1291 1292 #if NH_3D_ARP 1293 m_ppcWeightedTempCU[uhNextDepth]->setSlice( m_ppcWeightedTempCU[ uiDepth]->getSlice()); 1294 m_ppcWeightedTempCU[uhNextDepth]->setPic ( m_ppcWeightedTempCU[ uiDepth] ); 1295 #endif 1272 1296 for ( UInt uiPartUnitIdx = 0; uiPartUnitIdx < 4; uiPartUnitIdx++ ) 1273 1297 { … … 1575 1599 1576 1600 m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx ); 1577 #if H_3D_ARP1601 #if NH_3D_ARP 1578 1602 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1579 1603 #endif … … 1612 1636 // prediction Info ( Intra : direction mode, Inter : Mv, reference idx ) 1613 1637 m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx ); 1614 #if H_3D1638 #if NH_3D_DBBP 1615 1639 m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx ); 1616 1640 #endif … … 1618 1642 m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false ); 1619 1643 #endif 1620 #if H_3D_ARP1644 #if NH_3D_ARP 1621 1645 m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx ); 1622 1646 #endif … … 1763 1787 { 1764 1788 assert( rpcTempCU->getSlice()->getSliceType() != I_SLICE ); 1765 #if H_3D_IV_MERGE1789 #if NH_3D_MLC 1766 1790 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 1767 1791 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 1792 1816 #endif 1793 1817 1794 #if H_3D_ARP1818 #if NH_3D_ARP 1795 1819 DisInfo cOrigDisInfo = rpcTempCU->getDvInfo(0); 1796 1820 #else … … 1798 1822 1799 1823 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to CTU level 1800 #if H_3D_VSP 1801 #if !H_3D_ARP 1824 1825 #if NH_3D_SPIVMP 1826 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 1827 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 1828 TComMvField* pcMvFieldSP; 1829 UChar* puhInterDirSP; 1830 pcMvFieldSP = new TComMvField[rpcTempCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 1831 puhInterDirSP = new UChar[rpcTempCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 1832 #endif 1833 1834 #if NH_3D_VSP 1835 #if !NH_3D_ARP 1802 1836 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1803 1837 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1804 InheritedVSPDisInfo inheritedVSPDisInfo[MRG_MAX_NUM_CANDS_MEM]; 1805 rpcTempCU->m_bAvailableFlagA1 = 0; 1806 rpcTempCU->m_bAvailableFlagB1 = 0; 1807 rpcTempCU->m_bAvailableFlagB0 = 0; 1808 rpcTempCU->m_bAvailableFlagA0 = 0; 1809 rpcTempCU->m_bAvailableFlagB2 = 0; 1838 #if NH_3D_MLC 1839 rpcTempCU->initAvailableFlags(); 1840 #endif 1810 1841 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1811 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,inheritedVSPDisInfo, numValidMergeCand ); 1812 #endif 1813 #else 1814 #if H_3D 1815 rpcTempCU->m_bAvailableFlagA1 = 0; 1816 rpcTempCU->m_bAvailableFlagB1 = 0; 1817 rpcTempCU->m_bAvailableFlagB0 = 0; 1818 rpcTempCU->m_bAvailableFlagA0 = 0; 1819 rpcTempCU->m_bAvailableFlagB2 = 0; 1820 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1821 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1822 #else 1842 #if NH_3D_MLC 1843 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 1844 #if NH_3D_SPIVMP 1845 , pcMvFieldSP, puhInterDirSP 1846 #endif 1847 , numValidMergeCand 1848 ); 1849 1850 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours, vspFlag 1851 #if NH_3D_SPIVMP 1852 , bSPIVMPFlag 1853 #endif 1854 , numValidMergeCand 1855 ); 1856 #endif 1857 #endif 1858 #else 1859 #if NH_3D_MLC 1860 rpcTempCU->initAvailableFlags(); 1861 #endif 1823 1862 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1824 #endif 1825 #endif 1826 #if H_3D_IV_MERGE 1863 #if NH_3D_MLC 1864 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 1865 #if H_3D_SPIVMP 1866 , pcMvFieldSP, puhInterDirSP 1867 #endif 1868 , numValidMergeCand 1869 ); 1870 #if NH_3D_MLC 1871 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 1872 #if H_3D_SPIVMP 1873 , bSPIVMPFlag 1874 #endif 1875 , numValidMergeCand 1876 ); 1877 #endif 1878 #endif 1879 #endif 1880 1881 #if NH_3D_MLC 1827 1882 Int mergeCandBuffer[MRG_MAX_NUM_CANDS_MEM]; 1828 1883 #else 1829 1884 Int mergeCandBuffer[MRG_MAX_NUM_CANDS]; 1830 1885 #endif 1831 #if H_3D_ARP1832 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui )1886 #if NH_3D_MLC 1887 for( UInt ui = 0; ui < rpcTempCU->getSlice()->getMaxNumMergeCand(); ++ui ) 1833 1888 #else 1834 1889 for( UInt ui = 0; ui < numValidMergeCand; ++ui ) 1835 1890 #endif 1836 1837 1891 { 1838 1892 mergeCandBuffer[ui] = 0; … … 1852 1906 DEBUG_STRING_NEW(bestStr) 1853 1907 1854 #if H_3D_ARP1908 #if NH_3D_ARP 1855 1909 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 1910 #if H_3D_IC 1856 1911 if( nARPWMax < 0 || bICFlag ) 1912 #else 1913 if( nARPWMax < 0 ) 1914 #endif 1857 1915 { 1858 1916 nARPWMax = 0; … … 1860 1918 for( Int nARPW=nARPWMax; nARPW >= 0 ; nARPW-- ) 1861 1919 { 1920 #if NH_3D_IV_MERGE 1862 1921 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) ); 1922 #else 1923 memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS * sizeof(Int) ); 1924 #endif 1863 1925 rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level 1864 1926 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); … … 1867 1929 #endif 1868 1930 rpcTempCU->getDvInfo(0) = cOrigDisInfo; 1869 rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, 0, uhDepth ); 1931 rpcTempCU->setDvInfoSubParts(cOrigDisInfo, 0, uhDepth ); 1932 #if NH_3D_VSP 1870 1933 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 1871 1934 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); 1872 #if H_3D_SPIVMP 1873 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 1874 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 1875 TComMvField* pcMvFieldSP; 1876 UChar* puhInterDirSP; 1877 pcMvFieldSP = new TComMvField[rpcTempCU->getPic()->getPicSym()->getNumPartition()*2]; 1878 puhInterDirSP = new UChar[rpcTempCU->getPic()->getPicSym()->getNumPartition()]; 1879 #endif 1880 #if H_3D 1935 #endif 1936 #if NH_3D 1937 #if NH_3D_MLC 1881 1938 rpcTempCU->initAvailableFlags(); 1939 #endif 1882 1940 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 1883 1941 rpcTempCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 1884 #if H_3D_SPIVMP1942 #if NH_3D_SPIVMP 1885 1943 , pcMvFieldSP, puhInterDirSP 1886 1944 #endif … … 1888 1946 ); 1889 1947 1890 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours, vspFlag 1891 #if H_3D_SPIVMP 1948 rpcTempCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 1949 #if NH_3D_VSP 1950 , vspFlag 1951 #endif 1952 #if NH_3D_SPIVMP 1892 1953 , bSPIVMPFlag 1893 1954 #endif … … 1896 1957 1897 1958 #else 1898 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, vspFlag,numValidMergeCand );1959 rpcTempCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 1899 1960 #endif 1900 1961 … … 1926 1987 rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth ); 1927 1988 #endif 1928 #if H_3D_ARP1929 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );1930 #endif1931 1989 rpcTempCU->setCUTransquantBypassSubParts( bTransquantBypassFlag, 0, uhDepth ); 1932 1990 rpcTempCU->setChromaQpAdjSubParts( bTransquantBypassFlag ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); … … 1934 1992 rpcTempCU->setMergeFlagSubParts( true, 0, 0, uhDepth ); // interprets depth relative to CTU level 1935 1993 rpcTempCU->setMergeIndexSubParts( uiMergeCand, 0, 0, uhDepth ); // interprets depth relative to CTU level 1936 #if H_3D_VSP 1994 #if NH_3D_ARP 1995 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 1996 #endif 1997 1998 #if NH_3D_VSP 1937 1999 rpcTempCU->setVSPFlagSubParts( vspFlag[uiMergeCand], 0, 0, uhDepth ); 1938 2000 #endif 1939 #if H_3D_SPIVMP2001 #if NH_3D_SPIVMP 1940 2002 rpcTempCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMergeCand], 0, 0, uhDepth); 1941 2003 if (bSPIVMPFlag[uiMergeCand]) … … 1956 2018 else 1957 2019 #endif 1958 #if H_3D_VSP1959 2020 { 2021 #if NH_3D_VSP 1960 2022 if ( vspFlag[uiMergeCand] ) 1961 2023 { … … 1987 2049 { 1988 2050 #endif 1989 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to CTU level1990 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level1991 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level1992 #if H_3D_VSP2051 rpcTempCU->setInterDirSubParts( uhInterDirNeighbours[uiMergeCand], 0, 0, uhDepth ); // interprets depth relative to CTU level 2052 rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 2053 rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level 2054 #if NH_3D_VSP 1993 2055 } 2056 #endif 1994 2057 } 1995 #endif1996 2058 // do MC 1997 2059 m_pcPredSearch->motionCompensation ( rpcTempCU, m_ppcPredYuvTemp[uhDepth] ); … … 2027 2089 rpcTempCU->setDISFlagSubParts( false, 0, uhDepth ); 2028 2090 #endif 2029 #if H_3D_VSP // possible bug fix2091 #if NH_3D_VSP 2030 2092 if( rpcTempCU->getSkipFlag(0) ) 2031 2093 { … … 2160 2222 } 2161 2223 DEBUG_STRING_APPEND(sDebug, bestStr) 2162 #if H_3D_SPIVMP 2224 #if NH_3D_ARP 2225 } 2226 #endif 2227 #if NH_3D_SPIVMP 2163 2228 delete[] pcMvFieldSP; 2164 2229 delete[] puhInterDirSP; 2165 2230 #endif 2166 #if H_3D_ARP2167 }2168 #endif2169 2170 2231 } 2171 2232 … … 2184 2245 2185 2246 // prior to this, rpcTempCU will have just been reset using rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 2186 #if H_3D 2247 #if H_3D || NH_3D_ARP 2187 2248 const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0); 2188 2249 #endif … … 2192 2253 #endif 2193 2254 UChar uhDepth = rpcTempCU->getDepth( 0 ); 2194 #if H_3D_ARP2255 #if NH_3D_ARP 2195 2256 Bool bFirstTime = true; 2196 2257 Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1; 2258 #if H_3D_IC 2197 2259 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || rpcTempCU->getICFlag(0) ) 2260 #else 2261 if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N ) 2262 #endif 2198 2263 { 2199 2264 nARPWMax = 0; … … 2223 2288 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2224 2289 rpcTempCU->setChromaQpAdjSubParts( rpcTempCU->getCUTransquantBypass(0) ? 0 : m_cuChromaQpOffsetIdxPlus1, 0, uhDepth ); 2225 #if H_3D_ARP2290 #if NH_3D_ARP 2226 2291 rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth ); 2227 2292 #endif 2228 #if H_3D_ARP2293 #if NH_3D_ARP 2229 2294 if( bFirstTime == false && nARPWMax ) 2230 2295 { … … 2249 2314 m_pcPredSearch->predInterSearch ( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcRecoYuvTemp[uhDepth] ); 2250 2315 #endif 2251 #if H_3D_ARP2316 #if NH_3D_ARP 2252 2317 if( nARPWMax ) 2253 2318 { … … 2260 2325 if ( !rpcTempCU->getMergeAMP() ) 2261 2326 { 2262 #if H_3D_ARP2327 #if NH_3D_ARP 2263 2328 if( nARPWMax ) 2264 2329 { … … 2281 2346 2282 2347 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false DEBUG_STRING_PASS_INTO(sTest) ); 2283 #if H_3D_VSP // possible bug fix2284 2285 2286 2287 2348 #if NH_3D_VSP 2349 if( rpcTempCU->getQtRootCbf(0)==0 ) 2350 { 2351 rpcTempCU->setTrIdxSubParts(0, 0, uhDepth); 2352 } 2288 2353 #endif 2289 2354 #if NH_3D_VSO // M4 … … 2377 2442 } 2378 2443 #endif 2379 #if H_3D_ARP2444 #if NH_3D_ARP 2380 2445 } 2381 2446 #endif … … 2385 2450 } 2386 2451 2387 #if H_3D_DBBP2452 #if NH_3D_DBBP 2388 2453 Void TEncCu::xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ) 2389 2454 { 2390 UInt uiWidth = pOrigYuv->getWidth ( 2391 UInt uiHeight = pOrigYuv->getHeight( 2392 Pel* piSrc = pOrigYuv->get LumaAddr();2393 UInt uiSrcStride = pOrigYuv->getStride( );2394 Pel* piDst = pOrigYuvTemp->get LumaAddr();2395 UInt uiDstStride = pOrigYuvTemp->getStride( );2455 UInt uiWidth = pOrigYuv->getWidth (COMPONENT_Y); 2456 UInt uiHeight = pOrigYuv->getHeight(COMPONENT_Y); 2457 Pel* piSrc = pOrigYuv->getAddr(COMPONENT_Y); 2458 UInt uiSrcStride = pOrigYuv->getStride(COMPONENT_Y); 2459 Pel* piDst = pOrigYuvTemp->getAddr(COMPONENT_Y); 2460 UInt uiDstStride = pOrigYuvTemp->getStride(COMPONENT_Y); 2396 2461 2397 2462 UInt uiMaskStride= MAX_CU_SIZE; … … 2418 2483 2419 2484 // now invalidate chroma 2420 Pel* piSrcU = pOrigYuv->get CbAddr();2421 Pel* piSrcV = pOrigYuv->get CrAddr();2422 UInt uiSrcStrideC = pOrigYuv->get CStride();2423 Pel* piDstU = pOrigYuvTemp->get CbAddr();2424 Pel* piDstV = pOrigYuvTemp->get CrAddr();2425 UInt uiDstStrideC = pOrigYuvTemp->get CStride();2485 Pel* piSrcU = pOrigYuv->getAddr(COMPONENT_Cb); 2486 Pel* piSrcV = pOrigYuv->getAddr(COMPONENT_Cr); 2487 UInt uiSrcStrideC = pOrigYuv->getStride(COMPONENT_Cb); 2488 Pel* piDstU = pOrigYuvTemp->getAddr(COMPONENT_Cb); 2489 Pel* piDstV = pOrigYuvTemp->getAddr(COMPONENT_Cr); 2490 UInt uiDstStrideC = pOrigYuvTemp->getStride(COMPONENT_Cb); 2426 2491 pMask = pMaskStart; 2427 2492 … … 2444 2509 } 2445 2510 } 2446 2511 #endif 2512 2513 #if H_3D_DIS 2447 2514 Void TEncCu::xCheckRDCostDIS( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize eSize ) 2448 2515 { … … 2518 2585 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth); 2519 2586 } 2520 2587 #endif 2588 2589 #if NH_3D_DBBP 2521 2590 Void TEncCu::xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG ) 2522 2591 { … … 2540 2609 AOF( uiWidth == uiHeight ); 2541 2610 2542 #if H_3D_DBBP 2543 // Is this correct here, was under the macro SEC_DBBP_DISALLOW_8x8_I0078, however the function is related to Single Depth Mode 2611 #if NH_3D_DBBP 2544 2612 if(uiWidth <= 8) 2545 2613 { … … 2592 2660 rpcTempCU->getDBBPTmpData()->eVirtualPartSize = eVirtualPartSize; 2593 2661 rpcTempCU->getDBBPTmpData()->uiVirtualPartIndex = uiSegment; 2594 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, false,bUseMRG );2662 m_pcPredSearch->predInterSearch( rpcTempCU, m_ppcOrigYuvDBBP[uhDepth], apPredYuv[uiSegment], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], false, bUseMRG ); 2595 2663 m_pcRdCost->setUseMask(false); 2596 2664 … … 2601 2669 pDBBPTmpData->auhMergeIndex[uiSegment] = rpcTempCU->getMergeIndex(0); 2602 2670 2671 #if NH_3D_VSP 2603 2672 AOF( rpcTempCU->getSPIVMPFlag(0) == false ); 2604 2673 AOF( rpcTempCU->getVSPFlag(0) == 0 ); 2674 #endif 2605 2675 2606 2676 for ( UInt uiRefListIdx = 0; uiRefListIdx < 2; uiRefListIdx++ ) … … 2621 2691 rpcTempCU->setPredModeSubParts ( MODE_INTER, 0, uhDepth ); 2622 2692 2623 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMax CUDepth() - uhDepth ) << 1 ) ) >> 4;2693 UInt uiPUOffset = ( g_auiPUOffset[UInt( eVirtualPartSize )] << ( ( rpcTempCU->getSlice()->getSPS()->getMaxTotalCUDepth() - uhDepth ) << 1 ) ) >> 4; 2624 2694 for( UInt uiSegment = 0; uiSegment < 2; uiSegment++ ) 2625 2695 { … … 2647 2717 2648 2718 // reconstruct final prediction signal by combining both segments 2649 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize); 2719 Int bitDepthY = rpcTempCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA); 2720 m_pcPredSearch->combineSegmentsWithMask(apPredYuv, m_ppcPredYuvTemp[uhDepth], pMask, uiWidth, uiHeight, 0, eVirtualPartSize, bitDepthY); 2650 2721 m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false ); 2651 2722 -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncCu.h
r1200 r1274 69 69 TComDataCU** m_ppcBestCU; ///< Best CUs in each depth 70 70 TComDataCU** m_ppcTempCU; ///< Temporary CUs in each depth 71 #if H_3D_ARP71 #if NH_3D_ARP 72 72 TComDataCU** m_ppcWeightedTempCU; 73 73 #endif … … 82 82 TComYuv** m_ppcOrigYuv; ///< Original Yuv for each depth 83 83 84 #if H_3D_DBBP84 #if NH_3D_DBBP 85 85 TComYuv** m_ppcOrigYuvDBBP; 86 86 #endif … … 155 155 Void xCheckRDCostInter ( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, PartSize ePartSize ); 156 156 #endif 157 #if H_3D_DBBP157 #if NH_3D_DBBP 158 158 Void xInvalidateOriginalSegments( TComYuv* pOrigYuv, TComYuv* pOrigYuvTemp, Bool* pMask, UInt uiValidSegment ); 159 159 Void xCheckRDCostInterDBBP( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool bUseMRG = false ); -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncEntropy.cpp
r1225 r1274 151 151 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 152 152 { 153 #if H_3D_ARP153 #if NH_3D_ARP 154 154 if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 ) 155 155 #else … … 188 188 #endif 189 189 190 #if H_3D_ARP190 #if NH_3D_ARP 191 191 Void TEncEntropy::encodeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx ) 192 192 { … … 874 874 875 875 #endif 876 #if H_3D_DBBP876 #if NH_3D_DBBP 877 877 Void TEncEntropy::encodeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD ) 878 878 { 879 if( bRD ) 880 { 881 uiAbsPartIdx = 0; 882 } 883 879 884 if( pcCU->getSlice()->getDepthBasedBlkPartFlag() && 880 885 ( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2NxN || … … 883 888 pcCU->getSlice()->getDefaultRefViewIdxAvailableFlag() ) 884 889 { 885 if( bRD )886 {887 uiAbsPartIdx = 0;888 }889 890 m_pcEntropyCoderIf->codeDBBPFlag( pcCU, uiAbsPartIdx ); 890 891 } -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncEntropy.h
r1225 r1274 84 84 virtual Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 85 85 virtual Void codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 86 #if H_3D_ARP86 #if NH_3D_ARP 87 87 virtual Void codeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 88 88 #endif … … 94 94 virtual Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 95 95 #endif 96 #if H_3D_DBBP96 #if NH_3D_DBBP 97 97 virtual Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0; 98 98 #endif … … 173 173 Void encodeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 174 174 Void encodeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 175 #if H_3D_ARP175 #if NH_3D_ARP 176 176 Void encodeARPW ( TComDataCU* pcCU, UInt uiAbspartIdx ); 177 177 #endif … … 183 183 Void encodeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 184 184 #endif 185 #if H_3D_DBBP185 #if NH_3D_DBBP 186 186 Void encodeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false ); 187 187 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncGOP.cpp
r1225 r1274 1443 1443 } 1444 1444 1445 #if H_3D_IV_MERGE1445 #if NH_3D_IV_MERGE 1446 1446 // This needs to be done after initialization of 3D tool parameters. 1447 1447 pcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() + ( ( pcSlice->getMpiFlag( ) || pcSlice->getIvMvPredFlag( ) || pcSlice->getViewSynthesisPredFlag( ) ) ? 1 : 0 )); … … 1471 1471 pcSlice->setRefPicList ( rcListPic ); 1472 1472 #endif 1473 #if H_3D1473 #if NH_3D_NBDV 1474 1474 pcSlice->setDefaultRefView(); 1475 1475 #endif 1476 #if H_3D_ARP1476 #if NH_3D_ARP 1477 1477 //GT: This seems to be broken when layerId in vps is not equal to layerId in nuh 1478 1478 pcSlice->setARPStepNum(m_ivPicLists); 1479 if(pcSlice->getARPStepNum() > 1)1480 {1481 for(Int iLayerId = 0; iLayerId < getLayerId(); iLayerId ++ )1482 {1483 Int iViewIdx = pcSlice->getVPS()->getViewIndex(iLayerId);1484 Bool bIsDepth = ( pcSlice->getVPS()->getDepthId ( iLayerId ) == 1 );1485 if( iViewIdx<getViewIndex() && !bIsDepth )1486 {1487 pcSlice->setBaseViewRefPicList( m_ivPicLists->getPicList( iLayerId ), iViewIdx );1488 }1489 }1490 }1491 1479 #endif 1492 1480 #if NH_3D_IC … … 1731 1719 UInt uiNumSliceSegments = 1; 1732 1720 1733 #if H_3D_NBDV1721 #if NH_3D_NBDV 1734 1722 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 1735 1723 { 1736 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 -pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx());1724 Int iColPoc = pcSlice->getRefPOC(RefPicList(1 - pcSlice->getColFromL0Flag()), pcSlice->getColRefIdx()); 1737 1725 pcPic->setNumDdvCandPics(pcPic->getDisCandRefPictures(iColPoc)); 1738 1726 } … … 1743 1731 #endif 1744 1732 1745 #if H_3D_NBDV1733 #if NH_3D_NBDV 1746 1734 if(pcSlice->getViewIndex() && !pcSlice->getIsDepth() && !pcSlice->isIntra()) //Notes from QC: this condition shall be changed once the configuration is completed, e.g. in pcSlice->getSPS()->getMultiviewMvPredMode() || ARP in prev. HTM. Remove this comment once it is done. 1747 1735 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncSbac.cpp
r1256 r1274 68 68 , m_cCUMergeFlagExtSCModel ( 1, 1, NUM_MERGE_FLAG_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 69 69 , m_cCUMergeIdxExtSCModel ( 1, 1, NUM_MERGE_IDX_EXT_CTX , m_contextModels + m_numContextModels, m_numContextModels) 70 #if H_3D_ARP70 #if NH_3D_ARP 71 71 , m_cCUPUARPWSCModel ( 1, 1, NUM_ARPW_CTX , m_contextModels + m_numContextModels, m_numContextModels) 72 72 #endif … … 114 114 , m_cSDCFlagSCModel ( 1, 1, NUM_SDC_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 115 115 #endif 116 #if H_3D_DBBP116 #if NH_3D_DBBP 117 117 , m_cDBBPFlagSCModel ( 1, 1, DBBP_NUM_FLAG_CTX , m_contextModels + m_numContextModels, m_numContextModels) 118 118 #endif … … 148 148 m_cCUMergeFlagExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_FLAG_EXT); 149 149 m_cCUMergeIdxExtSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_MERGE_IDX_EXT); 150 #if H_3D_ARP150 #if NH_3D_ARP 151 151 m_cCUPUARPWSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW ); 152 152 #endif … … 194 194 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 195 195 #endif 196 #if H_3D_DBBP196 #if NH_3D_DBBP 197 197 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG ); 198 198 #endif … … 235 235 curCost += m_cCUMergeFlagExtSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_MERGE_FLAG_EXT); 236 236 curCost += m_cCUMergeIdxExtSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_MERGE_IDX_EXT); 237 #if H_3D_ARP237 #if NH_3D_ARP 238 238 curCost += m_cCUPUARPWSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_ARPW ); 239 239 #endif … … 244 244 curCost += m_cSDCFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_SDC_FLAG ); 245 245 #endif 246 #if H_3D_DBBP246 #if NH_3D_DBBP 247 247 curCost += m_cDBBPFlagSCModel.calcCost ( curSliceType, qp, (UChar*)INIT_DBBP_FLAG ); 248 248 #endif … … 302 302 m_cCUDISTypeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DIS_TYPE ); 303 303 #endif 304 #if H_3D_ARP305 m_cCUPUARPWSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_ARPW );306 #endif307 304 #if H_3D_DIM 308 305 m_cDepthIntraModeSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DEPTH_INTRA_MODE ); … … 317 314 #if H_3D_DIM_SDC 318 315 m_cSDCFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG ); 319 #endif320 #if H_3D_DBBP321 m_cDBBPFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_DBBP_FLAG );322 316 #endif 323 317 … … 971 965 } 972 966 973 #if H_3D_ARP967 #if NH_3D_ARP 974 968 Void TEncSbac::codeARPW( TComDataCU* pcCU, UInt uiAbsPartIdx ) 975 969 { … … 2647 2641 #endif 2648 2642 2649 #if H_3D_DBBP2643 #if NH_3D_DBBP 2650 2644 Void TEncSbac::codeDBBPFlag( TComDataCU* pcCU, UInt uiAbsPartIdx ) 2651 2645 { -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncSbac.h
r1225 r1274 140 140 Void codeMergeFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 141 141 Void codeMergeIndex ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 142 #if H_3D_ARP142 #if NH_3D_ARP 143 143 Void codeARPW ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 144 144 #endif … … 150 150 Void codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 151 151 #endif 152 #if H_3D_DBBP152 #if NH_3D_DBBP 153 153 Void codeDBBPFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx ); 154 154 #endif … … 212 212 ContextModel3DBuffer m_cCUMergeFlagExtSCModel; 213 213 ContextModel3DBuffer m_cCUMergeIdxExtSCModel; 214 #if H_3D_ARP214 #if NH_3D_ARP 215 215 ContextModel3DBuffer m_cCUPUARPWSCModel; 216 216 #endif … … 262 262 ContextModel3DBuffer m_cSDCFlagSCModel; 263 263 #endif 264 #if H_3D_DBBP264 #if NH_3D_DBBP 265 265 ContextModel3DBuffer m_cDBBPFlagSCModel; 266 266 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncSearch.cpp
r1256 r1274 3876 3876 //! estimation of best merge coding 3877 3877 Void TEncSearch::xMergeEstimation( TComDataCU* pcCU, TComYuv* pcYuvOrg, Int iPUIdx, UInt& uiInterDir, TComMvField* pacMvField, UInt& uiMergeIndex, Distortion& ruiCost, TComMvField* cMvFieldNeighbours, UChar* uhInterDirNeighbours, Int& numValidMergeCand 3878 #if H_3D_VSP3878 #if NH_3D_VSP 3879 3879 , Int* vspFlag 3880 3880 #endif 3881 #if H_3D_SPIVMP3881 #if NH_3D_SPIVMP 3882 3882 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 3883 3883 #endif … … 3891 3891 UInt uiDepth = pcCU->getDepth( uiAbsPartIdx ); 3892 3892 3893 #if H_3D_DBBP3893 #if NH_3D_DBBP 3894 3894 DbbpTmpData* pDBBPTmpData = pcCU->getDBBPTmpData(); 3895 3895 if( pcCU->getDBBPFlag(0) ) … … 3898 3898 AOF( iPUIdx == 0 ); 3899 3899 AOF( pcCU->getPartitionSize(0) == SIZE_2Nx2N ); 3900 AOF( pDBBPTmpData->eVirtualPartSize != SIZE_NONE);3900 AOF( pDBBPTmpData->eVirtualPartSize != NUMBER_OF_PART_SIZES ); 3901 3901 3902 3902 // temporary change of partition size for candidate derivation … … 3923 3923 3924 3924 PartSize partSize = pcCU->getPartitionSize( 0 ); 3925 #if H_3D_DBBP3925 #if NH_3D_DBBP 3926 3926 if ( pcCU->getSlice()->getPPS()->getLog2ParallelMergeLevelMinus2() && partSize != SIZE_2Nx2N && pcCU->getWidth( 0 ) <= 8 && pcCU->getDBBPFlag(0) == false ) 3927 3927 #else … … 3932 3932 { 3933 3933 pcCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth ); // temporarily set 3934 #if H_3D3934 #if NH_3D_MLC 3935 3935 pcCU->initAvailableFlags(); 3936 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand );3936 pcCU->getInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours, numValidMergeCand ); 3937 3937 pcCU->xGetInterMergeCandidates( 0, 0, cMvFieldNeighbours,uhInterDirNeighbours 3938 #if H_3D_SPIVMP3938 #if NH_3D_SPIVMP 3939 3939 , pcMvFieldSP, puhInterDirSP 3940 3940 #endif … … 3943 3943 3944 3944 pcCU->buildMCL( cMvFieldNeighbours,uhInterDirNeighbours 3945 #if H_3D_VSP3945 #if NH_3D_VSP 3946 3946 , vspFlag 3947 3947 #endif 3948 #if H_3D_SPIVMP3948 #if NH_3D_SPIVMP 3949 3949 , pbSPIVMPFlag 3950 3950 #endif 3951 3951 , numValidMergeCand 3952 3952 ); 3953 3953 #else … … 3959 3959 else 3960 3960 { 3961 #if H_3D3961 #if NH_3D_MLC 3962 3962 pcCU->initAvailableFlags(); 3963 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand);3963 pcCU->getInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 3964 3964 pcCU->xGetInterMergeCandidates( uiAbsPartIdx, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours 3965 #if H_3D_SPIVMP3965 #if NH_3D_SPIVMP 3966 3966 , pcMvFieldSP, puhInterDirSP 3967 3967 #endif … … 3970 3970 3971 3971 pcCU->buildMCL( cMvFieldNeighbours, uhInterDirNeighbours 3972 #if H_3D_VSP3972 #if NH_3D_VSP 3973 3973 , vspFlag 3974 3974 #endif 3975 #if H_3D_SPIVMP3975 #if NH_3D_SPIVMP 3976 3976 , pbSPIVMPFlag 3977 3977 #endif 3978 3978 , numValidMergeCand 3979 3979 ); 3980 3980 #else … … 3985 3985 xRestrictBipredMergeCand( pcCU, iPUIdx, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand ); 3986 3986 3987 #if H_3D_DBBP3987 #if NH_3D_DBBP 3988 3988 if( pcCU->getDBBPFlag(0) ) 3989 3989 { … … 4008 4008 4009 4009 PartSize ePartSize = pcCU->getPartitionSize( 0 ); 4010 #if H_3D_VSP4010 #if NH_3D_VSP 4011 4011 pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) ); 4012 4012 #endif 4013 4013 4014 #if H_3D_SPIVMP4014 #if NH_3D_SPIVMP 4015 4015 pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx )); 4016 4016 if (pbSPIVMPFlag[uiMergeCand]) … … 4031 4031 else 4032 4032 #endif 4033 #if H_3D_VSP4034 #if H_3D_DBBP4033 #if NH_3D_VSP 4034 #if NH_3D_DBBP 4035 4035 if ( vspFlag[uiMergeCand] && !pcCU->getDBBPFlag(0) ) 4036 4036 #else … … 4068 4068 pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 4069 4069 pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx ); 4070 #if H_3D_VSP4070 #if NH_3D_VSP 4071 4071 } 4072 4072 #endif … … 4179 4179 Distortion biPDistTemp = std::numeric_limits<Distortion>::max(); 4180 4180 4181 #if H_3D_IV_MERGE4181 #if NH_3D_IV_MERGE 4182 4182 TComMvField cMvFieldNeighbours[MRG_MAX_NUM_CANDS_MEM << 1]; // double length for mv of both lists 4183 4183 UChar uhInterDirNeighbours[MRG_MAX_NUM_CANDS_MEM]; … … 4214 4214 4215 4215 pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight ); 4216 #if H_3D_VSP4216 #if NH_3D_VSP 4217 4217 pcCU->setVSPFlagSubParts( 0, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr) ); 4218 4218 #endif … … 4557 4557 } // end if bTestNormalMC 4558 4558 #endif 4559 #if H_3D_DBBP4559 #if NH_3D_DBBP 4560 4560 // test merge mode for DBBP (2Nx2N) 4561 4561 if ( pcCU->getPartitionSize( uiPartAddr ) != SIZE_2Nx2N || pcCU->getDBBPFlag(0) ) … … 4597 4597 Distortion uiMRGCost = std::numeric_limits<Distortion>::max(); 4598 4598 4599 #if H_3D_VSP4599 #if NH_3D_VSP 4600 4600 Int vspFlag[MRG_MAX_NUM_CANDS_MEM]; 4601 4601 memset(vspFlag, 0, sizeof(Int)*MRG_MAX_NUM_CANDS_MEM); … … 4606 4606 DisInfo OriginalDvInfo = pcCU->getDvInfo(uiAbsPartIdx); 4607 4607 #endif 4608 #if H_3D_SPIVMP4608 #if NH_3D_SPIVMP 4609 4609 Bool bSPIVMPFlag[MRG_MAX_NUM_CANDS_MEM]; 4610 4610 memset(bSPIVMPFlag, false, sizeof(Bool)*MRG_MAX_NUM_CANDS_MEM); 4611 4611 TComMvField* pcMvFieldSP; 4612 4612 UChar* puhInterDirSP; 4613 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartition()*2]; 4614 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartition()]; 4615 #endif 4616 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours 4617 4618 #if H_3D_VSP 4613 pcMvFieldSP = new TComMvField[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()*2]; 4614 puhInterDirSP = new UChar[pcCU->getPic()->getPicSym()->getNumPartitionsInCtu()]; 4615 #endif 4616 xMergeEstimation( pcCU, pcOrgYuv, iPartIdx, uiMRGInterDir, cMRGMvField, uiMRGIndex, uiMRGCost, cMvFieldNeighbours, uhInterDirNeighbours, numValidMergeCand 4617 #if NH_3D_VSP 4619 4618 , vspFlag 4620 4619 #endif 4621 #if H_3D_SPIVMP4620 #if NH_3D_SPIVMP 4622 4621 , bSPIVMPFlag, pcMvFieldSP, puhInterDirSP 4623 4622 #endif 4624 , numValidMergeCand);4623 ); 4625 4624 4626 4625 if ( uiMRGCost < uiMECost ) … … 4629 4628 pcCU->setMergeFlagSubParts ( true, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4630 4629 pcCU->setMergeIndexSubParts( uiMRGIndex, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4631 #if H_3D_VSP4630 #if NH_3D_VSP 4632 4631 pcCU->setVSPFlagSubParts( vspFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4633 4632 #endif 4634 #if H_3D_SPIVMP4633 #if NH_3D_SPIVMP 4635 4634 pcCU->setSPIVMPFlagSubParts(bSPIVMPFlag[uiMRGIndex], uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4636 4635 if (bSPIVMPFlag[uiMRGIndex]!=0) … … 4655 4654 else 4656 4655 #endif 4657 #if H_3D_VSP4658 #if H_3D_DBBP4656 #if NH_3D_VSP 4657 #if NH_3D_DBBP 4659 4658 if ( vspFlag[uiMRGIndex] && !pcCU->getDBBPFlag(uiPartAddr) ) 4660 4659 #else … … 4692 4691 pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx ); 4693 4692 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4693 #if NH_3D_VSP 4694 } 4695 #endif 4694 4696 #if H_3D 4695 4697 } … … 4705 4707 else 4706 4708 { 4707 #if H_3D_SPIVMP4709 #if NH_3D_SPIVMP 4708 4710 pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4709 4711 #endif … … 4711 4713 pcCU->setMergeFlagSubParts( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4712 4714 pcCU->setInterDirSubParts ( uiMEInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4713 #if H_3D_VSP4715 #if NH_3D_VSP 4714 4716 pcCU->setVSPFlagSubParts ( 0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); 4715 4717 pcCU->setDvInfoSubParts(OriginalDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) ); … … 4718 4720 pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMEMvField[1], ePartSize, uiPartAddr, 0, iPartIdx ); 4719 4721 } 4720 #if H_3D_SPIVMP4722 #if NH_3D_SPIVMP 4721 4723 delete[] pcMvFieldSP; 4722 4724 delete[] puhInterDirSP; … … 4754 4756 { 4755 4757 4756 #if H_3D_DBBP4758 #if NH_3D_DBBP 4757 4759 DbbpTmpData* pDBBPTmpData = pcCU->getDBBPTmpData(); 4758 4760 if( pcCU->getDBBPFlag(0) ) … … 4761 4763 AOF( uiPartIdx == 0 ); 4762 4764 AOF( pcCU->getPartitionSize(0) == SIZE_2Nx2N ); 4763 AOF( pDBBPTmpData->eVirtualPartSize != SIZE_NONE);4765 AOF( pDBBPTmpData->eVirtualPartSize != NUMBER_OF_PART_SIZES ); 4764 4766 AOF( iRoiWidth == iRoiHeight ); 4765 4767 … … 4786 4788 4787 4789 pcCU->fillMvpCand( uiPartIdx, uiPartAddr, eRefPicList, iRefIdx, pcAMVPInfo ); 4788 #if H_3D_DBBP4790 #if NH_3D_DBBP 4789 4791 if( pcCU->getDBBPFlag(0) ) 4790 4792 { … … 5014 5016 if ( pcCU->getSlice()->testWeightPred() && pcCU->getSlice()->getSliceType()==P_SLICE ) 5015 5017 { 5016 xPredInterBlk( COMPONENT_Y, pcCU, pcPicYuvRef, uiPartAddr, &cMvCand, iSizeX, iSizeY, pcTemplateCand, true, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) ); 5018 xPredInterBlk( COMPONENT_Y, pcCU, pcPicYuvRef, uiPartAddr, &cMvCand, iSizeX, iSizeY, pcTemplateCand, true, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) 5019 #if NH_3D_ARP 5020 , false //add this for IC, otherwise, it could be removed 5021 #endif 5022 ); 5017 5023 } 5018 5024 else 5019 5025 { 5020 5026 xPredInterBlk( COMPONENT_Y, pcCU, pcPicYuvRef, uiPartAddr, &cMvCand, iSizeX, iSizeY, pcTemplateCand, false, pcCU->getSlice()->getSPS()->getBitDepth(CHANNEL_TYPE_LUMA) 5021 #if H_3D_ARP5027 #if NH_3D_ARP 5022 5028 , false 5023 5029 #endif … … 5114 5120 5115 5121 m_pcRdCost->setPredictor ( *pcMvPred ); 5116 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5122 #if NH_3D_INTEGER_MV_DEPTH 5117 5123 if( pcCU->getSlice()->getIsDepth() ) 5118 5124 { … … 5123 5129 #endif 5124 5130 m_pcRdCost->setCostScale ( 2 ); 5125 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5131 #if NH_3D_INTEGER_MV_DEPTH 5126 5132 } 5127 5133 #endif … … 5150 5156 5151 5157 m_pcRdCost->getMotionCost( true, 0, pcCU->getCUTransquantBypass(uiPartAddr) ); 5152 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5158 #if NH_3D_INTEGER_MV_DEPTH 5153 5159 if( ! pcCU->getSlice()->getIsDepth() ) 5154 5160 { … … 5163 5169 rcMv += (cMvHalf <<= 1); 5164 5170 rcMv += cMvQter; 5165 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5171 #if NH_3D_INTEGER_MV_DEPTH 5166 5172 } 5167 5173 #endif 5168 5174 5169 5175 UInt uiMvBits = m_pcRdCost->getBits( rcMv.getHor(), rcMv.getVer() ); 5170 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5176 #if NH_3D_INTEGER_MV_DEPTH 5171 5177 if( pcCU->getSlice()->getIsDepth() ) 5172 5178 { … … 5182 5188 { 5183 5189 Int iMvShift = 2; 5184 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5190 #if NH_3D_INTEGER_MV_DEPTH 5185 5191 if( pcCU->getSlice()->getIsDepth() ) 5186 5192 { … … 5340 5346 UInt uiSearchRange = m_iSearchRange; 5341 5347 pcCU->clipMv( rcMv ); 5342 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5348 #if NH_3D_INTEGER_MV_DEPTH 5343 5349 if( ! pcCU->getSlice()->getIsDepth() ) 5344 5350 #endif … … 5360 5366 TComMv cMv = m_acMvPredictors[index]; 5361 5367 pcCU->clipMv( cMv ); 5362 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5368 #if NH_3D_INTEGER_MV_DEPTH 5363 5369 if( ! pcCU->getSlice()->getIsDepth() ) 5364 5370 { 5365 5371 #endif 5366 5372 cMv >>= 2; 5367 #if NH_3D_ FULL_PEL_DEPTH_MAP_MV_ACC5373 #if NH_3D_INTEGER_MV_DEPTH 5368 5374 } 5369 5375 #endif … … 5788 5794 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 5789 5795 m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true ); 5790 #if H_3D_ARP5796 #if NH_3D_ARP 5791 5797 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); 5792 5798 #endif … … 5884 5890 const Double zeroCost = (pcCU->isLosslessCoded( 0 )) ? (nonZeroCost+1) : (m_pcRdCost->calcRdCost( zeroResiBits, zeroDistortion )); 5885 5891 #endif 5886 #if H_3D_SPIVMP5887 if ( dZeroCost < dCost || pcCU->getQtRootCbf(0)==0)5892 #if NH_3D_SPIVMP 5893 if ( zeroCost < nonZeroCost || pcCU->getQtRootCbf(0)==0) 5888 5894 #else 5889 5895 if ( zeroCost < nonZeroCost || !pcCU->getQtRootCbf(0) ) … … 7104 7110 m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true); 7105 7111 m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true); 7106 #if H_3D_ARP7112 #if NH_3D_ARP 7107 7113 m_pcEntropyCoder->encodeARPW( pcCU, 0 ); 7108 7114 #endif … … 7131 7137 m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true ); 7132 7138 #endif 7133 #if H_3D_ARP7139 #if NH_3D_ARP 7134 7140 m_pcEntropyCoder->encodeARPW( pcCU , 0 ); 7135 7141 #endif … … 7137 7143 m_pcEntropyCoder->encodeICFlag( pcCU, 0, true ); 7138 7144 #endif 7139 #if H_3D7145 #if NH_3D_DBBP 7140 7146 m_pcEntropyCoder->encodeDBBPFlag( pcCU, 0, true ); 7141 7147 #endif -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncSearch.h
r1200 r1274 409 409 TComMvField* cMvFieldNeighbours, 410 410 UChar* uhInterDirNeighbours, 411 #if H_3D_VSP 411 Int& numValidMergeCand 412 #if NH_3D_VSP 412 413 , Int* vspFlag 413 414 #endif 414 #if H_3D_SPIVMP415 #if NH_3D_SPIVMP 415 416 , Bool* pbSPIVMPFlag, TComMvField* pcMvFieldSP, UChar* puhInterDirSP 416 417 #endif 417 Int& numValidMergeCand418 418 ); 419 419 -
branches/HTM-14.1-update-dev2/source/Lib/TLibEncoder/TEncSlice.cpp
r1256 r1274 567 567 rpcSlice->setSliceSegmentMode ( m_pcCfg->getSliceSegmentMode() ); 568 568 rpcSlice->setSliceSegmentArgument ( m_pcCfg->getSliceSegmentArgument() ); 569 #if H_3D_IV_MERGE569 #if NH_3D_IV_MERGE 570 570 #else 571 571 rpcSlice->setMaxNumMergeCand ( m_pcCfg->getMaxNumMergeCand() );
Note: See TracChangeset for help on using the changeset viewer.