Index: /trunk/HTM.xcodeproj/project.pbxproj
===================================================================
--- /trunk/HTM.xcodeproj/project.pbxproj	(revision 757)
+++ /trunk/HTM.xcodeproj/project.pbxproj	(revision 758)
@@ -25,82 +25,84 @@
 
 /* Begin PBXBuildFile section */
-		78C593B5158721A1004401C5 /* ContextModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5931D158720BB004401C5 /* ContextModel.cpp */; };
-		78C593B6158721A1004401C5 /* ContextModel3DBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5931F158720BB004401C5 /* ContextModel3DBuffer.cpp */; };
-		78C593B7158721A1004401C5 /* TComAdaptiveLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59324158720BB004401C5 /* TComAdaptiveLoopFilter.cpp */; };
-		78C593B8158721A1004401C5 /* TComBitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59327158720BB004401C5 /* TComBitStream.cpp */; };
-		78C593B9158721A1004401C5 /* TComCABACTables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59329158720BB004401C5 /* TComCABACTables.cpp */; };
-		78C593BA158721A1004401C5 /* TComDataCU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5932B158720BB004401C5 /* TComDataCU.cpp */; };
-		78C593BB158721A1004401C5 /* TComDepthMapGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5932D158720BB004401C5 /* TComDepthMapGenerator.cpp */; };
-		78C593BC158721A1004401C5 /* TComInterpolationFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5932F158720BB004401C5 /* TComInterpolationFilter.cpp */; };
-		78C593BD158721A1004401C5 /* TComLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59332158720BB004401C5 /* TComLoopFilter.cpp */; };
-		78C593BE158721A1004401C5 /* TComMotionInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59334158720BB004401C5 /* TComMotionInfo.cpp */; };
-		78C593BF158721A1004401C5 /* TComPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59337158720BB004401C5 /* TComPattern.cpp */; };
-		78C593C0158721A1004401C5 /* TComPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59339158720BB004401C5 /* TComPic.cpp */; };
-		78C593C1158721A1004401C5 /* TComPicSym.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5933B158720BB004401C5 /* TComPicSym.cpp */; };
-		78C593C2158721A1004401C5 /* TComPicYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5933D158720BB004401C5 /* TComPicYuv.cpp */; };
-		78C593C3158721A1004401C5 /* TComPicYuvMD5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5933F158720BB004401C5 /* TComPicYuvMD5.cpp */; };
-		78C593C4158721A1004401C5 /* TComPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59340158720BB004401C5 /* TComPrediction.cpp */; };
-		78C593C5158721A1004401C5 /* TComRdCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59342158720BB004401C5 /* TComRdCost.cpp */; };
-		78C593C6158721A1004401C5 /* TComRdCostWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59344158720BB004401C5 /* TComRdCostWeightPrediction.cpp */; };
-		78C593C7158721A1004401C5 /* TComResidualGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59346158720BB004401C5 /* TComResidualGenerator.cpp */; };
-		78C593C8158721A1004401C5 /* TComRom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59348158720BB004401C5 /* TComRom.cpp */; };
-		78C593C9158721A1004401C5 /* TComSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5934A158720BB004401C5 /* TComSampleAdaptiveOffset.cpp */; };
-		78C593CA158721A1004401C5 /* TComSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5934C158720BB004401C5 /* TComSlice.cpp */; };
-		78C593CB158721A1004401C5 /* TComTrQuant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5934E158720BB004401C5 /* TComTrQuant.cpp */; };
-		78C593CC158721A1004401C5 /* TComWedgelet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59350158720BB004401C5 /* TComWedgelet.cpp */; };
-		78C593CD158721A1004401C5 /* TComWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59352158720BB004401C5 /* TComWeightPrediction.cpp */; };
-		78C593CE158721A1004401C5 /* TComYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59354158720BB004401C5 /* TComYuv.cpp */; };
-		78C593CF158721AD004401C5 /* program_options_lite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59316158720BB004401C5 /* program_options_lite.cpp */; };
-		78C593D0158721AD004401C5 /* TAppComCamPara.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59318158720BB004401C5 /* TAppComCamPara.cpp */; };
-		78C593D1158721BB004401C5 /* AnnexBread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59358158720BB004401C5 /* AnnexBread.cpp */; };
-		78C593D2158721BB004401C5 /* NALread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5935A158720BB004401C5 /* NALread.cpp */; };
-		78C593D3158721BB004401C5 /* SEIread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5935C158720BB004401C5 /* SEIread.cpp */; };
-		78C593D4158721BB004401C5 /* TDecBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5935F158720BB004401C5 /* TDecBinCoderCABAC.cpp */; };
-		78C593D5158721BB004401C5 /* TDecCAVLC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59361158720BB004401C5 /* TDecCAVLC.cpp */; };
-		78C593D6158721BB004401C5 /* TDecCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59363158720BB004401C5 /* TDecCu.cpp */; };
-		78C593D7158721BB004401C5 /* TDecEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59365158720BB004401C5 /* TDecEntropy.cpp */; };
-		78C593D8158721BB004401C5 /* TDecGop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59367158720BB004401C5 /* TDecGop.cpp */; };
-		78C593D9158721BB004401C5 /* TDecSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59369158720BB004401C5 /* TDecSbac.cpp */; };
-		78C593DA158721BB004401C5 /* TDecSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5936B158720BB004401C5 /* TDecSlice.cpp */; };
-		78C593DB158721BB004401C5 /* TDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5936D158720BB004401C5 /* TDecTop.cpp */; };
-		78C593DC158721CE004401C5 /* NALwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59371158720BB004401C5 /* NALwrite.cpp */; };
-		78C593DD158721CE004401C5 /* SEIwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59373158720BB004401C5 /* SEIwrite.cpp */; };
-		78C593DE158721CE004401C5 /* TEncAdaptiveLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59375158720BB004401C5 /* TEncAdaptiveLoopFilter.cpp */; };
-		78C593DF158721CE004401C5 /* TEncBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59379158720BB004401C5 /* TEncBinCoderCABAC.cpp */; };
-		78C593E0158721CE004401C5 /* TEncBinCoderCABACCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5937B158720BB004401C5 /* TEncBinCoderCABACCounter.cpp */; };
-		78C593E1158721CE004401C5 /* TEncCavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5937D158720BB004401C5 /* TEncCavlc.cpp */; };
-		78C593E2158721CE004401C5 /* TEncCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59380158720BB004401C5 /* TEncCu.cpp */; };
-		78C593E3158721CE004401C5 /* TEncEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59382158720BB004401C5 /* TEncEntropy.cpp */; };
-		78C593E4158721CE004401C5 /* TEncGOP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59384158720BB004401C5 /* TEncGOP.cpp */; };
-		78C593E5158721CE004401C5 /* TEncPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59386158720BB004401C5 /* TEncPic.cpp */; };
-		78C593E6158721CE004401C5 /* TEncPreanalyzer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59388158720BB004401C5 /* TEncPreanalyzer.cpp */; };
-		78C593E7158721CE004401C5 /* TEncSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5938A158720BB004401C5 /* TEncSampleAdaptiveOffset.cpp */; };
-		78C593E8158721CE004401C5 /* TEncSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5938C158720BB004401C5 /* TEncSbac.cpp */; };
-		78C593E9158721CE004401C5 /* TEncSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5938E158720BB004401C5 /* TEncSearch.cpp */; };
-		78C593EA158721CE004401C5 /* TEncSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59390158720BB004401C5 /* TEncSlice.cpp */; };
-		78C593EB158721CE004401C5 /* TEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59392158720BB004401C5 /* TEncTop.cpp */; };
-		78C593EC158721CE004401C5 /* WeightPredAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59394158720BB004401C5 /* WeightPredAnalysis.cpp */; };
-		78C593ED158721D7004401C5 /* TExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C59397158720BB004401C5 /* TExtrTop.cpp */; };
-		78C593EE158721E2004401C5 /* TRenFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5939A158720BB004401C5 /* TRenFilter.cpp */; };
-		78C593EF158721E2004401C5 /* TRenImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5939C158720BB004401C5 /* TRenImage.cpp */; };
-		78C593F0158721E2004401C5 /* TRenImagePlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C5939E158720BB004401C5 /* TRenImagePlane.cpp */; };
-		78C593F1158721E2004401C5 /* TRenInterpFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593A0158720BB004401C5 /* TRenInterpFilter.cpp */; };
-		78C593F2158721E2004401C5 /* TRenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593A2158720BB004401C5 /* TRenModel.cpp */; };
-		78C593F3158721E2004401C5 /* TRenModSetupStrParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593A4158720BB004401C5 /* TRenModSetupStrParser.cpp */; };
-		78C593F4158721E2004401C5 /* TRenSingleModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593A6158720BB004401C5 /* TRenSingleModel.cpp */; };
-		78C593F5158721E2004401C5 /* TRenTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593A8158720BB004401C5 /* TRenTop.cpp */; };
-		78C593F6158721E9004401C5 /* TVideoIOYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C593AB158720BB004401C5 /* TVideoIOYuv.cpp */; };
-		78C593F7158721F1004401C5 /* encmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592EF158720BB004401C5 /* encmain.cpp */; };
-		78C593F8158721F1004401C5 /* TAppEncCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592F0158720BB004401C5 /* TAppEncCfg.cpp */; };
-		78C593F9158721F1004401C5 /* TAppEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592F2158720BB004401C5 /* TAppEncTop.cpp */; };
-		78C593FA158721F6004401C5 /* decmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592E9158720BB004401C5 /* decmain.cpp */; };
-		78C593FB158721F6004401C5 /* TAppDecCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592EA158720BB004401C5 /* TAppDecCfg.cpp */; };
-		78C593FC158721F6004401C5 /* TAppDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592EC158720BB004401C5 /* TAppDecTop.cpp */; };
-		78C593FD158721FC004401C5 /* extrmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592F5158720BB004401C5 /* extrmain.cpp */; };
-		78C593FE158721FC004401C5 /* TAppExtrCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592F6158720BB004401C5 /* TAppExtrCfg.cpp */; };
-		78C593FF158721FC004401C5 /* TAppExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592F8158720BB004401C5 /* TAppExtrTop.cpp */; };
-		78C5940015872201004401C5 /* RendererMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592FB158720BB004401C5 /* RendererMain.cpp */; };
-		78C5940115872201004401C5 /* TAppRendererCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592FC158720BB004401C5 /* TAppRendererCfg.cpp */; };
-		78C5940215872201004401C5 /* TAppRendererTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78C592FE158720BB004401C5 /* TAppRendererTop.cpp */; };
+		7874637E17D5DD900040CFC7 /* encmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C117D5DD7B0040CFC7 /* encmain.cpp */; };
+		7874637F17D5DD900040CFC7 /* TAppEncCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */; };
+		7874638017D5DD900040CFC7 /* TAppEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */; };
+		7874638117D5DDA60040CFC7 /* NALwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633F17D5DD840040CFC7 /* NALwrite.cpp */; };
+		7874638217D5DDA60040CFC7 /* SEIwrite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634117D5DD840040CFC7 /* SEIwrite.cpp */; };
+		7874638317D5DDA60040CFC7 /* SyntaxElementWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */; };
+		7874638417D5DDA60040CFC7 /* TEncAnalyze.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */; };
+		7874638517D5DDA60040CFC7 /* TEncBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */; };
+		7874638617D5DDA60040CFC7 /* TEncBinCoderCABACCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */; };
+		7874638717D5DDA60040CFC7 /* TEncCavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */; };
+		7874638817D5DDA60040CFC7 /* TEncCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874634F17D5DD840040CFC7 /* TEncCu.cpp */; };
+		7874638917D5DDA60040CFC7 /* TEncEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635117D5DD840040CFC7 /* TEncEntropy.cpp */; };
+		7874638A17D5DDA60040CFC7 /* TEncGOP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635317D5DD840040CFC7 /* TEncGOP.cpp */; };
+		7874638B17D5DDA60040CFC7 /* TEncPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635517D5DD840040CFC7 /* TEncPic.cpp */; };
+		7874638C17D5DDA60040CFC7 /* TEncPreanalyzer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */; };
+		7874638D17D5DDA60040CFC7 /* TEncRateCtrl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */; };
+		7874638E17D5DDA60040CFC7 /* TEncSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */; };
+		7874638F17D5DDA60040CFC7 /* TEncSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635D17D5DD840040CFC7 /* TEncSbac.cpp */; };
+		7874639017D5DDA60040CFC7 /* TEncSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874635F17D5DD840040CFC7 /* TEncSearch.cpp */; };
+		7874639117D5DDA60040CFC7 /* TEncSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636117D5DD840040CFC7 /* TEncSlice.cpp */; };
+		7874639217D5DDA60040CFC7 /* TEncTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636317D5DD840040CFC7 /* TEncTop.cpp */; };
+		7874639317D5DDA60040CFC7 /* WeightPredAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */; };
+		7874639417D5DE070040CFC7 /* TComPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630E17D5DD840040CFC7 /* TComPrediction.cpp */; };
+		7874639517D5DE070040CFC7 /* TComRdCost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631017D5DD840040CFC7 /* TComRdCost.cpp */; };
+		7874639617D5DE070040CFC7 /* TComRdCostWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */; };
+		7874639717D5DE070040CFC7 /* TComRom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631417D5DD840040CFC7 /* TComRom.cpp */; };
+		7874639817D5DE070040CFC7 /* TComSampleAdaptiveOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */; };
+		7874639917D5DE070040CFC7 /* TComSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631817D5DD840040CFC7 /* TComSlice.cpp */; };
+		7874639A17D5DE070040CFC7 /* TComTrQuant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */; };
+		7874639B17D5DE070040CFC7 /* TComWedgelet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */; };
+		7874639C17D5DE070040CFC7 /* TComWeightPrediction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */; };
+		7874639D17D5DE070040CFC7 /* TComYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632017D5DD840040CFC7 /* TComYuv.cpp */; };
+		7874639E17D5DE230040CFC7 /* TComMotionInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */; };
+		7874639F17D5DE230040CFC7 /* TComPattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630517D5DD840040CFC7 /* TComPattern.cpp */; };
+		787463A017D5DE230040CFC7 /* TComPic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630717D5DD840040CFC7 /* TComPic.cpp */; };
+		787463A117D5DE230040CFC7 /* TComPicSym.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630917D5DD840040CFC7 /* TComPicSym.cpp */; };
+		787463A217D5DE230040CFC7 /* TComPicYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */; };
+		787463A317D5DE230040CFC7 /* TComPicYuvMD5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */; };
+		787463A417D5DE400040CFC7 /* TComCABACTables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F917D5DD840040CFC7 /* TComCABACTables.cpp */; };
+		787463A517D5DE400040CFC7 /* TComDataCU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462FB17D5DD840040CFC7 /* TComDataCU.cpp */; };
+		787463A617D5DE400040CFC7 /* TComInterpolationFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */; };
+		787463A717D5DE400040CFC7 /* TComLoopFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */; };
+		787463A817D5DE4B0040CFC7 /* TComBitStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F717D5DD840040CFC7 /* TComBitStream.cpp */; };
+		787463A917D5DE640040CFC7 /* ContextModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462EE17D5DD840040CFC7 /* ContextModel.cpp */; };
+		787463AA17D5DE640040CFC7 /* ContextModel3DBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */; };
+		787463AB17D5DE640040CFC7 /* SEI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462F417D5DD840040CFC7 /* SEI.cpp */; };
+		787463AC17D5DE8A0040CFC7 /* TVideoIOYuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */; };
+		787463AD17D5DE980040CFC7 /* TRenFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636B17D5DD840040CFC7 /* TRenFilter.cpp */; };
+		787463AE17D5DE980040CFC7 /* TRenImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636D17D5DD840040CFC7 /* TRenImage.cpp */; };
+		787463AF17D5DE980040CFC7 /* TRenImagePlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */; };
+		787463B017D5DE980040CFC7 /* TRenInterpFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */; };
+		787463B117D5DE9D0040CFC7 /* TRenModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637317D5DD840040CFC7 /* TRenModel.cpp */; };
+		787463B217D5DE9D0040CFC7 /* TRenModSetupStrParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */; };
+		787463B317D5DE9D0040CFC7 /* TRenSingleModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */; };
+		787463B417D5DE9D0040CFC7 /* TRenTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874637917D5DD840040CFC7 /* TRenTop.cpp */; };
+		787463B517D5DEAF0040CFC7 /* program_options_lite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462E717D5DD840040CFC7 /* program_options_lite.cpp */; };
+		787463B617D5DEAF0040CFC7 /* TAppComCamPara.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */; };
+		787463B717D5DED40040CFC7 /* libmd5.c in Sources */ = {isa = PBXBuildFile; fileRef = 787462E317D5DD840040CFC7 /* libmd5.c */; };
+		787463B817D5DEE80040CFC7 /* AnnexBread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632417D5DD840040CFC7 /* AnnexBread.cpp */; };
+		787463B917D5DEE80040CFC7 /* NALread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632617D5DD840040CFC7 /* NALread.cpp */; };
+		787463BA17D5DEE80040CFC7 /* SEIread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632817D5DD840040CFC7 /* SEIread.cpp */; };
+		787463BB17D5DEE80040CFC7 /* SyntaxElementParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */; };
+		787463BC17D5DEE80040CFC7 /* TDecBinCoderCABAC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */; };
+		787463BD17D5DEE80040CFC7 /* TDecCAVLC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */; };
+		787463BE17D5DEE80040CFC7 /* TDecCu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633117D5DD840040CFC7 /* TDecCu.cpp */; };
+		787463BF17D5DEE80040CFC7 /* TDecEntropy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633317D5DD840040CFC7 /* TDecEntropy.cpp */; };
+		787463C017D5DEE80040CFC7 /* TDecGop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633517D5DD840040CFC7 /* TDecGop.cpp */; };
+		787463C117D5DEE80040CFC7 /* TDecSbac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633717D5DD840040CFC7 /* TDecSbac.cpp */; };
+		787463C217D5DEE80040CFC7 /* TDecSlice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633917D5DD840040CFC7 /* TDecSlice.cpp */; };
+		787463C317D5DEE80040CFC7 /* TDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874633B17D5DD840040CFC7 /* TDecTop.cpp */; };
+		787463C417D5DEFB0040CFC7 /* decmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BB17D5DD7B0040CFC7 /* decmain.cpp */; };
+		787463C517D5DEFB0040CFC7 /* TAppDecCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */; };
+		787463C617D5DEFB0040CFC7 /* TAppDecTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */; };
+		787463C717D5DF080040CFC7 /* extrmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C717D5DD7B0040CFC7 /* extrmain.cpp */; };
+		787463C817D5DF080040CFC7 /* TAppExtrCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */; };
+		787463C917D5DF080040CFC7 /* TAppExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */; };
+		787463CA17D5DF0E0040CFC7 /* RendererMain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */; };
+		787463CB17D5DF0E0040CFC7 /* TAppRendererCfg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */; };
+		787463CC17D5DF0E0040CFC7 /* TAppRendererTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */; };
+		787463CD17D5DF220040CFC7 /* TExtrTop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7874636817D5DD840040CFC7 /* TExtrTop.cpp */; };
 		78C5940D15872233004401C5 /* libTLibCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767959411AD61BB00421804 /* libTLibCommon.a */; };
 		78C5940E15872233004401C5 /* libTLibEncoder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767961911AD626F00421804 /* libTLibEncoder.a */; };
@@ -108,10 +110,8 @@
 		78C5941015872233004401C5 /* libTLibRenderer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7894E36714890D9A009259F4 /* libTLibRenderer.a */; };
 		78C5941115872233004401C5 /* libTAppCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C593B415872152004401C5 /* libTAppCommon.a */; };
-		78C594121587228A004401C5 /* libmd5.c in Sources */ = {isa = PBXBuildFile; fileRef = 78C59312158720BB004401C5 /* libmd5.c */; };
 		78C5941B158722B7004401C5 /* libTLibCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767959411AD61BB00421804 /* libTLibCommon.a */; };
 		78C5941C158722BA004401C5 /* libTLibDecoder.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 676795F411AD621A00421804 /* libTLibDecoder.a */; };
 		78C5941D158722BC004401C5 /* libTLibVideoIO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767964B11AD629200421804 /* libTLibVideoIO.a */; };
 		78C5941E158722C0004401C5 /* libTAppCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C593B415872152004401C5 /* libTAppCommon.a */; };
-		78C5941F158722D4004401C5 /* libmd5.c in Sources */ = {isa = PBXBuildFile; fileRef = 78C59312158720BB004401C5 /* libmd5.c */; };
 		78C59428158722F2004401C5 /* libTLibCommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767959411AD61BB00421804 /* libTLibCommon.a */; };
 		78C59429158722F6004401C5 /* libTLibVideoIO.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6767964B11AD629200421804 /* libTLibVideoIO.a */; };
@@ -289,190 +289,196 @@
 		6767966A11AD635600421804 /* TAppEncoder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppEncoder; sourceTree = BUILT_PRODUCTS_DIR; };
 		6782E0DE11AD691A00E8FFB8 /* TAppDecoder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppDecoder; sourceTree = BUILT_PRODUCTS_DIR; };
+		785E596C17D9AFA8001F6DD1 /* TStatHeader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatHeader.cpp; sourceTree = "<group>"; };
+		785E596D17D9AFA8001F6DD1 /* TStatHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatHeader.h; sourceTree = "<group>"; };
+		785E596E17D9AFA8001F6DD1 /* TStatLayer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatLayer.cpp; sourceTree = "<group>"; };
+		785E596F17D9AFA8001F6DD1 /* TStatLayer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatLayer.h; sourceTree = "<group>"; };
+		785E597017D9AFA8001F6DD1 /* TStatTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TStatTop.cpp; sourceTree = "<group>"; };
+		785E597117D9AFA8001F6DD1 /* TStatTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TStatTop.h; sourceTree = "<group>"; };
+		787462BB17D5DD7B0040CFC7 /* decmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = decmain.cpp; sourceTree = "<group>"; };
+		787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecCfg.cpp; sourceTree = "<group>"; };
+		787462BD17D5DD7B0040CFC7 /* TAppDecCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecCfg.h; sourceTree = "<group>"; };
+		787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecTop.cpp; sourceTree = "<group>"; };
+		787462BF17D5DD7B0040CFC7 /* TAppDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecTop.h; sourceTree = "<group>"; };
+		787462C117D5DD7B0040CFC7 /* encmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = encmain.cpp; sourceTree = "<group>"; };
+		787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncCfg.cpp; sourceTree = "<group>"; };
+		787462C317D5DD7B0040CFC7 /* TAppEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncCfg.h; sourceTree = "<group>"; };
+		787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncTop.cpp; sourceTree = "<group>"; };
+		787462C517D5DD7B0040CFC7 /* TAppEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncTop.h; sourceTree = "<group>"; };
+		787462C717D5DD7B0040CFC7 /* extrmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = extrmain.cpp; sourceTree = "<group>"; };
+		787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrCfg.cpp; sourceTree = "<group>"; };
+		787462C917D5DD7B0040CFC7 /* TAppExtrCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrCfg.h; sourceTree = "<group>"; };
+		787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrTop.cpp; sourceTree = "<group>"; };
+		787462CB17D5DD7B0040CFC7 /* TAppExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrTop.h; sourceTree = "<group>"; };
+		787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RendererMain.cpp; sourceTree = "<group>"; };
+		787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererCfg.cpp; sourceTree = "<group>"; };
+		787462CF17D5DD7B0040CFC7 /* TAppRendererCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererCfg.h; sourceTree = "<group>"; };
+		787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererTop.cpp; sourceTree = "<group>"; };
+		787462D117D5DD7B0040CFC7 /* TAppRendererTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererTop.h; sourceTree = "<group>"; };
+		787462D317D5DD7B0040CFC7 /* annexBbytecount.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = annexBbytecount.cpp; sourceTree = "<group>"; };
+		787462D517D5DD7B0040CFC7 /* encode.shl */ = {isa = PBXFileReference; lastKnownFileType = text; path = encode.shl; sourceTree = "<group>"; };
+		787462D617D5DD7B0040CFC7 /* encodeCommand.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = encodeCommand.sh; sourceTree = "<group>"; };
+		787462D717D5DD7B0040CFC7 /* ExtractBitrates.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitrates.cpp; sourceTree = "<group>"; };
+		787462D817D5DD7B0040CFC7 /* ExtractBitrates.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtractBitrates.h; sourceTree = "<group>"; };
+		787462D917D5DD7B0040CFC7 /* ExtractBitratesMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitratesMain.cpp; sourceTree = "<group>"; };
+		787462DA17D5DD7B0040CFC7 /* GuessLambdaModifiers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiers.cpp; sourceTree = "<group>"; };
+		787462DB17D5DD7B0040CFC7 /* GuessLambdaModifiers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuessLambdaModifiers.h; sourceTree = "<group>"; };
+		787462DC17D5DD7B0040CFC7 /* GuessLambdaModifiersMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiersMain.cpp; sourceTree = "<group>"; };
+		787462DD17D5DD7B0040CFC7 /* makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = "<group>"; };
+		787462DE17D5DD7B0040CFC7 /* QuickStartGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = QuickStartGuide.pdf; sourceTree = "<group>"; };
+		787462DF17D5DD7B0040CFC7 /* RuntimeError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeError.h; sourceTree = "<group>"; };
+		787462E017D5DD7B0040CFC7 /* targetBitrates.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = targetBitrates.sh; sourceTree = "<group>"; };
+		787462E117D5DD7B0040CFC7 /* convert_NtoMbit_YCbCr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = convert_NtoMbit_YCbCr.cpp; sourceTree = "<group>"; };
+		787462E317D5DD840040CFC7 /* libmd5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = libmd5.c; sourceTree = "<group>"; };
+		787462E417D5DD840040CFC7 /* libmd5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libmd5.h; sourceTree = "<group>"; };
+		787462E517D5DD840040CFC7 /* MD5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MD5.h; sourceTree = "<group>"; };
+		787462E717D5DD840040CFC7 /* program_options_lite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = program_options_lite.cpp; sourceTree = "<group>"; };
+		787462E817D5DD840040CFC7 /* program_options_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = program_options_lite.h; sourceTree = "<group>"; };
+		787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppComCamPara.cpp; sourceTree = "<group>"; };
+		787462EA17D5DD840040CFC7 /* TAppComCamPara.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppComCamPara.h; sourceTree = "<group>"; };
+		787462EC17D5DD840040CFC7 /* AccessUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessUnit.h; sourceTree = "<group>"; };
+		787462ED17D5DD840040CFC7 /* CommonDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommonDef.h; sourceTree = "<group>"; };
+		787462EE17D5DD840040CFC7 /* ContextModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel.cpp; sourceTree = "<group>"; };
+		787462EF17D5DD840040CFC7 /* ContextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel.h; sourceTree = "<group>"; };
+		787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel3DBuffer.cpp; sourceTree = "<group>"; };
+		787462F117D5DD840040CFC7 /* ContextModel3DBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel3DBuffer.h; sourceTree = "<group>"; };
+		787462F217D5DD840040CFC7 /* ContextTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextTables.h; sourceTree = "<group>"; };
+		787462F317D5DD840040CFC7 /* NAL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NAL.h; sourceTree = "<group>"; };
+		787462F417D5DD840040CFC7 /* SEI.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEI.cpp; sourceTree = "<group>"; };
+		787462F517D5DD840040CFC7 /* SEI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEI.h; sourceTree = "<group>"; };
+		787462F617D5DD840040CFC7 /* TComBitCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitCounter.h; sourceTree = "<group>"; };
+		787462F717D5DD840040CFC7 /* TComBitStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComBitStream.cpp; sourceTree = "<group>"; };
+		787462F817D5DD840040CFC7 /* TComBitStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitStream.h; sourceTree = "<group>"; };
+		787462F917D5DD840040CFC7 /* TComCABACTables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComCABACTables.cpp; sourceTree = "<group>"; };
+		787462FA17D5DD840040CFC7 /* TComCABACTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComCABACTables.h; sourceTree = "<group>"; };
+		787462FB17D5DD840040CFC7 /* TComDataCU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComDataCU.cpp; sourceTree = "<group>"; };
+		787462FC17D5DD840040CFC7 /* TComDataCU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComDataCU.h; sourceTree = "<group>"; };
+		787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComInterpolationFilter.cpp; sourceTree = "<group>"; };
+		787462FE17D5DD840040CFC7 /* TComInterpolationFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComInterpolationFilter.h; sourceTree = "<group>"; };
+		787462FF17D5DD840040CFC7 /* TComList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComList.h; sourceTree = "<group>"; };
+		7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComLoopFilter.cpp; sourceTree = "<group>"; };
+		7874630117D5DD840040CFC7 /* TComLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComLoopFilter.h; sourceTree = "<group>"; };
+		7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComMotionInfo.cpp; sourceTree = "<group>"; };
+		7874630317D5DD840040CFC7 /* TComMotionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMotionInfo.h; sourceTree = "<group>"; };
+		7874630417D5DD840040CFC7 /* TComMv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMv.h; sourceTree = "<group>"; };
+		7874630517D5DD840040CFC7 /* TComPattern.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPattern.cpp; sourceTree = "<group>"; };
+		7874630617D5DD840040CFC7 /* TComPattern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPattern.h; sourceTree = "<group>"; };
+		7874630717D5DD840040CFC7 /* TComPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPic.cpp; sourceTree = "<group>"; };
+		7874630817D5DD840040CFC7 /* TComPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPic.h; sourceTree = "<group>"; };
+		7874630917D5DD840040CFC7 /* TComPicSym.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicSym.cpp; sourceTree = "<group>"; };
+		7874630A17D5DD840040CFC7 /* TComPicSym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicSym.h; sourceTree = "<group>"; };
+		7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuv.cpp; sourceTree = "<group>"; };
+		7874630C17D5DD840040CFC7 /* TComPicYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicYuv.h; sourceTree = "<group>"; };
+		7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuvMD5.cpp; sourceTree = "<group>"; };
+		7874630E17D5DD840040CFC7 /* TComPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPrediction.cpp; sourceTree = "<group>"; };
+		7874630F17D5DD840040CFC7 /* TComPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPrediction.h; sourceTree = "<group>"; };
+		7874631017D5DD840040CFC7 /* TComRdCost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCost.cpp; sourceTree = "<group>"; };
+		7874631117D5DD840040CFC7 /* TComRdCost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCost.h; sourceTree = "<group>"; };
+		7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCostWeightPrediction.cpp; sourceTree = "<group>"; };
+		7874631317D5DD840040CFC7 /* TComRdCostWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCostWeightPrediction.h; sourceTree = "<group>"; };
+		7874631417D5DD840040CFC7 /* TComRom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRom.cpp; sourceTree = "<group>"; };
+		7874631517D5DD840040CFC7 /* TComRom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRom.h; sourceTree = "<group>"; };
+		7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSampleAdaptiveOffset.cpp; sourceTree = "<group>"; };
+		7874631717D5DD840040CFC7 /* TComSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSampleAdaptiveOffset.h; sourceTree = "<group>"; };
+		7874631817D5DD840040CFC7 /* TComSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSlice.cpp; sourceTree = "<group>"; };
+		7874631917D5DD840040CFC7 /* TComSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSlice.h; sourceTree = "<group>"; };
+		7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComTrQuant.cpp; sourceTree = "<group>"; };
+		7874631B17D5DD840040CFC7 /* TComTrQuant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComTrQuant.h; sourceTree = "<group>"; };
+		7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWedgelet.cpp; sourceTree = "<group>"; };
+		7874631D17D5DD840040CFC7 /* TComWedgelet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWedgelet.h; sourceTree = "<group>"; };
+		7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWeightPrediction.cpp; sourceTree = "<group>"; };
+		7874631F17D5DD840040CFC7 /* TComWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWeightPrediction.h; sourceTree = "<group>"; };
+		7874632017D5DD840040CFC7 /* TComYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComYuv.cpp; sourceTree = "<group>"; };
+		7874632117D5DD840040CFC7 /* TComYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComYuv.h; sourceTree = "<group>"; };
+		7874632217D5DD840040CFC7 /* TypeDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeDef.h; sourceTree = "<group>"; };
+		7874632417D5DD840040CFC7 /* AnnexBread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AnnexBread.cpp; sourceTree = "<group>"; };
+		7874632517D5DD840040CFC7 /* AnnexBread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBread.h; sourceTree = "<group>"; };
+		7874632617D5DD840040CFC7 /* NALread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALread.cpp; sourceTree = "<group>"; };
+		7874632717D5DD840040CFC7 /* NALread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALread.h; sourceTree = "<group>"; };
+		7874632817D5DD840040CFC7 /* SEIread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIread.cpp; sourceTree = "<group>"; };
+		7874632917D5DD840040CFC7 /* SEIread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIread.h; sourceTree = "<group>"; };
+		7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementParser.cpp; sourceTree = "<group>"; };
+		7874632B17D5DD840040CFC7 /* SyntaxElementParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementParser.h; sourceTree = "<group>"; };
+		7874632C17D5DD840040CFC7 /* TDecBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoder.h; sourceTree = "<group>"; };
+		7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecBinCoderCABAC.cpp; sourceTree = "<group>"; };
+		7874632E17D5DD840040CFC7 /* TDecBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoderCABAC.h; sourceTree = "<group>"; };
+		7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCAVLC.cpp; sourceTree = "<group>"; };
+		7874633017D5DD840040CFC7 /* TDecCAVLC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCAVLC.h; sourceTree = "<group>"; };
+		7874633117D5DD840040CFC7 /* TDecCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCu.cpp; sourceTree = "<group>"; };
+		7874633217D5DD840040CFC7 /* TDecCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCu.h; sourceTree = "<group>"; };
+		7874633317D5DD840040CFC7 /* TDecEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecEntropy.cpp; sourceTree = "<group>"; };
+		7874633417D5DD840040CFC7 /* TDecEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecEntropy.h; sourceTree = "<group>"; };
+		7874633517D5DD840040CFC7 /* TDecGop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecGop.cpp; sourceTree = "<group>"; };
+		7874633617D5DD840040CFC7 /* TDecGop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecGop.h; sourceTree = "<group>"; };
+		7874633717D5DD840040CFC7 /* TDecSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSbac.cpp; sourceTree = "<group>"; };
+		7874633817D5DD840040CFC7 /* TDecSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSbac.h; sourceTree = "<group>"; };
+		7874633917D5DD840040CFC7 /* TDecSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSlice.cpp; sourceTree = "<group>"; };
+		7874633A17D5DD840040CFC7 /* TDecSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSlice.h; sourceTree = "<group>"; };
+		7874633B17D5DD840040CFC7 /* TDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecTop.cpp; sourceTree = "<group>"; };
+		7874633C17D5DD840040CFC7 /* TDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecTop.h; sourceTree = "<group>"; };
+		7874633E17D5DD840040CFC7 /* AnnexBwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBwrite.h; sourceTree = "<group>"; };
+		7874633F17D5DD840040CFC7 /* NALwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALwrite.cpp; sourceTree = "<group>"; };
+		7874634017D5DD840040CFC7 /* NALwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALwrite.h; sourceTree = "<group>"; };
+		7874634117D5DD840040CFC7 /* SEIwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIwrite.cpp; sourceTree = "<group>"; };
+		7874634217D5DD840040CFC7 /* SEIwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIwrite.h; sourceTree = "<group>"; };
+		7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SyntaxElementWriter.cpp; sourceTree = "<group>"; };
+		7874634417D5DD840040CFC7 /* SyntaxElementWriter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SyntaxElementWriter.h; sourceTree = "<group>"; };
+		7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncAnalyze.cpp; sourceTree = "<group>"; };
+		7874634617D5DD840040CFC7 /* TEncAnalyze.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncAnalyze.h; sourceTree = "<group>"; };
+		7874634717D5DD840040CFC7 /* TEncBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoder.h; sourceTree = "<group>"; };
+		7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABAC.cpp; sourceTree = "<group>"; };
+		7874634917D5DD840040CFC7 /* TEncBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABAC.h; sourceTree = "<group>"; };
+		7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABACCounter.cpp; sourceTree = "<group>"; };
+		7874634B17D5DD840040CFC7 /* TEncBinCoderCABACCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABACCounter.h; sourceTree = "<group>"; };
+		7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCavlc.cpp; sourceTree = "<group>"; };
+		7874634D17D5DD840040CFC7 /* TEncCavlc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCavlc.h; sourceTree = "<group>"; };
+		7874634E17D5DD840040CFC7 /* TEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCfg.h; sourceTree = "<group>"; };
+		7874634F17D5DD840040CFC7 /* TEncCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCu.cpp; sourceTree = "<group>"; };
+		7874635017D5DD840040CFC7 /* TEncCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCu.h; sourceTree = "<group>"; };
+		7874635117D5DD840040CFC7 /* TEncEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncEntropy.cpp; sourceTree = "<group>"; };
+		7874635217D5DD840040CFC7 /* TEncEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncEntropy.h; sourceTree = "<group>"; };
+		7874635317D5DD840040CFC7 /* TEncGOP.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncGOP.cpp; sourceTree = "<group>"; };
+		7874635417D5DD840040CFC7 /* TEncGOP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncGOP.h; sourceTree = "<group>"; };
+		7874635517D5DD840040CFC7 /* TEncPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPic.cpp; sourceTree = "<group>"; };
+		7874635617D5DD840040CFC7 /* TEncPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPic.h; sourceTree = "<group>"; };
+		7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPreanalyzer.cpp; sourceTree = "<group>"; };
+		7874635817D5DD840040CFC7 /* TEncPreanalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPreanalyzer.h; sourceTree = "<group>"; };
+		7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncRateCtrl.cpp; sourceTree = "<group>"; };
+		7874635A17D5DD840040CFC7 /* TEncRateCtrl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncRateCtrl.h; sourceTree = "<group>"; };
+		7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSampleAdaptiveOffset.cpp; sourceTree = "<group>"; };
+		7874635C17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSampleAdaptiveOffset.h; sourceTree = "<group>"; };
+		7874635D17D5DD840040CFC7 /* TEncSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSbac.cpp; sourceTree = "<group>"; };
+		7874635E17D5DD840040CFC7 /* TEncSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSbac.h; sourceTree = "<group>"; };
+		7874635F17D5DD840040CFC7 /* TEncSearch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSearch.cpp; sourceTree = "<group>"; };
+		7874636017D5DD840040CFC7 /* TEncSearch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSearch.h; sourceTree = "<group>"; };
+		7874636117D5DD840040CFC7 /* TEncSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSlice.cpp; sourceTree = "<group>"; };
+		7874636217D5DD840040CFC7 /* TEncSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSlice.h; sourceTree = "<group>"; };
+		7874636317D5DD840040CFC7 /* TEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncTop.cpp; sourceTree = "<group>"; };
+		7874636417D5DD840040CFC7 /* TEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncTop.h; sourceTree = "<group>"; };
+		7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WeightPredAnalysis.cpp; sourceTree = "<group>"; };
+		7874636617D5DD840040CFC7 /* WeightPredAnalysis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeightPredAnalysis.h; sourceTree = "<group>"; };
+		7874636817D5DD840040CFC7 /* TExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TExtrTop.cpp; sourceTree = "<group>"; };
+		7874636917D5DD840040CFC7 /* TExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TExtrTop.h; sourceTree = "<group>"; };
+		7874636B17D5DD840040CFC7 /* TRenFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenFilter.cpp; sourceTree = "<group>"; };
+		7874636C17D5DD840040CFC7 /* TRenFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenFilter.h; sourceTree = "<group>"; };
+		7874636D17D5DD840040CFC7 /* TRenImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImage.cpp; sourceTree = "<group>"; };
+		7874636E17D5DD840040CFC7 /* TRenImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImage.h; sourceTree = "<group>"; };
+		7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImagePlane.cpp; sourceTree = "<group>"; };
+		7874637017D5DD840040CFC7 /* TRenImagePlane.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImagePlane.h; sourceTree = "<group>"; };
+		7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenInterpFilter.cpp; sourceTree = "<group>"; };
+		7874637217D5DD840040CFC7 /* TRenInterpFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenInterpFilter.h; sourceTree = "<group>"; };
+		7874637317D5DD840040CFC7 /* TRenModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModel.cpp; sourceTree = "<group>"; };
+		7874637417D5DD840040CFC7 /* TRenModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModel.h; sourceTree = "<group>"; };
+		7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModSetupStrParser.cpp; sourceTree = "<group>"; };
+		7874637617D5DD840040CFC7 /* TRenModSetupStrParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModSetupStrParser.h; sourceTree = "<group>"; };
+		7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenSingleModel.cpp; sourceTree = "<group>"; };
+		7874637817D5DD840040CFC7 /* TRenSingleModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenSingleModel.h; sourceTree = "<group>"; };
+		7874637917D5DD840040CFC7 /* TRenTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenTop.cpp; sourceTree = "<group>"; };
+		7874637A17D5DD840040CFC7 /* TRenTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenTop.h; sourceTree = "<group>"; };
+		7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TVideoIOYuv.cpp; sourceTree = "<group>"; };
+		7874637D17D5DD840040CFC7 /* TVideoIOYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVideoIOYuv.h; sourceTree = "<group>"; };
 		7885897D15664E3D00982C12 /* libTLibExtractor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTLibExtractor.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		7885899415664E6A00982C12 /* TAppExtractor */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppExtractor; sourceTree = BUILT_PRODUCTS_DIR; };
 		7894E36714890D9A009259F4 /* libTLibRenderer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTLibRenderer.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		7894E38A14890DD2009259F4 /* TAppRenderer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TAppRenderer; sourceTree = BUILT_PRODUCTS_DIR; };
-		78C592E9158720BB004401C5 /* decmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = decmain.cpp; sourceTree = "<group>"; };
-		78C592EA158720BB004401C5 /* TAppDecCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecCfg.cpp; sourceTree = "<group>"; };
-		78C592EB158720BB004401C5 /* TAppDecCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecCfg.h; sourceTree = "<group>"; };
-		78C592EC158720BB004401C5 /* TAppDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppDecTop.cpp; sourceTree = "<group>"; };
-		78C592ED158720BB004401C5 /* TAppDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppDecTop.h; sourceTree = "<group>"; };
-		78C592EF158720BB004401C5 /* encmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = encmain.cpp; sourceTree = "<group>"; };
-		78C592F0158720BB004401C5 /* TAppEncCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncCfg.cpp; sourceTree = "<group>"; };
-		78C592F1158720BB004401C5 /* TAppEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncCfg.h; sourceTree = "<group>"; };
-		78C592F2158720BB004401C5 /* TAppEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppEncTop.cpp; sourceTree = "<group>"; };
-		78C592F3158720BB004401C5 /* TAppEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppEncTop.h; sourceTree = "<group>"; };
-		78C592F5158720BB004401C5 /* extrmain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = extrmain.cpp; sourceTree = "<group>"; };
-		78C592F6158720BB004401C5 /* TAppExtrCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrCfg.cpp; sourceTree = "<group>"; };
-		78C592F7158720BB004401C5 /* TAppExtrCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrCfg.h; sourceTree = "<group>"; };
-		78C592F8158720BB004401C5 /* TAppExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppExtrTop.cpp; sourceTree = "<group>"; };
-		78C592F9158720BB004401C5 /* TAppExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppExtrTop.h; sourceTree = "<group>"; };
-		78C592FB158720BB004401C5 /* RendererMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RendererMain.cpp; sourceTree = "<group>"; };
-		78C592FC158720BB004401C5 /* TAppRendererCfg.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererCfg.cpp; sourceTree = "<group>"; };
-		78C592FD158720BB004401C5 /* TAppRendererCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererCfg.h; sourceTree = "<group>"; };
-		78C592FE158720BB004401C5 /* TAppRendererTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppRendererTop.cpp; sourceTree = "<group>"; };
-		78C592FF158720BB004401C5 /* TAppRendererTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppRendererTop.h; sourceTree = "<group>"; };
-		78C59301158720BB004401C5 /* annexBbytecount.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = annexBbytecount.cpp; sourceTree = "<group>"; };
-		78C59303158720BB004401C5 /* encode.shl */ = {isa = PBXFileReference; lastKnownFileType = text; path = encode.shl; sourceTree = "<group>"; };
-		78C59304158720BB004401C5 /* encodeCommand.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = encodeCommand.sh; sourceTree = "<group>"; };
-		78C59305158720BB004401C5 /* ExtractBitrates.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitrates.cpp; sourceTree = "<group>"; };
-		78C59306158720BB004401C5 /* ExtractBitrates.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtractBitrates.h; sourceTree = "<group>"; };
-		78C59307158720BB004401C5 /* ExtractBitratesMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ExtractBitratesMain.cpp; sourceTree = "<group>"; };
-		78C59308158720BB004401C5 /* GuessLambdaModifiers.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiers.cpp; sourceTree = "<group>"; };
-		78C59309158720BB004401C5 /* GuessLambdaModifiers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuessLambdaModifiers.h; sourceTree = "<group>"; };
-		78C5930A158720BB004401C5 /* GuessLambdaModifiersMain.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GuessLambdaModifiersMain.cpp; sourceTree = "<group>"; };
-		78C5930B158720BB004401C5 /* makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = makefile; sourceTree = "<group>"; };
-		78C5930C158720BB004401C5 /* QuickStartGuide.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = QuickStartGuide.pdf; sourceTree = "<group>"; };
-		78C5930D158720BB004401C5 /* RuntimeError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuntimeError.h; sourceTree = "<group>"; };
-		78C5930E158720BB004401C5 /* targetBitrates.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = targetBitrates.sh; sourceTree = "<group>"; };
-		78C5930F158720BB004401C5 /* convert_NtoMbit_YCbCr.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = convert_NtoMbit_YCbCr.cpp; sourceTree = "<group>"; };
-		78C59312158720BB004401C5 /* libmd5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = libmd5.c; sourceTree = "<group>"; };
-		78C59313158720BB004401C5 /* libmd5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libmd5.h; sourceTree = "<group>"; };
-		78C59314158720BB004401C5 /* MD5.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MD5.h; sourceTree = "<group>"; };
-		78C59316158720BB004401C5 /* program_options_lite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = program_options_lite.cpp; sourceTree = "<group>"; };
-		78C59317158720BB004401C5 /* program_options_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = program_options_lite.h; sourceTree = "<group>"; };
-		78C59318158720BB004401C5 /* TAppComCamPara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TAppComCamPara.cpp; sourceTree = "<group>"; };
-		78C59319158720BB004401C5 /* TAppComCamPara.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TAppComCamPara.h; sourceTree = "<group>"; };
-		78C5931B158720BB004401C5 /* AccessUnit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessUnit.h; sourceTree = "<group>"; };
-		78C5931C158720BB004401C5 /* CommonDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommonDef.h; sourceTree = "<group>"; };
-		78C5931D158720BB004401C5 /* ContextModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel.cpp; sourceTree = "<group>"; };
-		78C5931E158720BB004401C5 /* ContextModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel.h; sourceTree = "<group>"; };
-		78C5931F158720BB004401C5 /* ContextModel3DBuffer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ContextModel3DBuffer.cpp; sourceTree = "<group>"; };
-		78C59320158720BB004401C5 /* ContextModel3DBuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextModel3DBuffer.h; sourceTree = "<group>"; };
-		78C59321158720BB004401C5 /* ContextTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextTables.h; sourceTree = "<group>"; };
-		78C59322158720BB004401C5 /* NAL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NAL.h; sourceTree = "<group>"; };
-		78C59323158720BB004401C5 /* SEI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEI.h; sourceTree = "<group>"; };
-		78C59324158720BB004401C5 /* TComAdaptiveLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComAdaptiveLoopFilter.cpp; sourceTree = "<group>"; };
-		78C59325158720BB004401C5 /* TComAdaptiveLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComAdaptiveLoopFilter.h; sourceTree = "<group>"; };
-		78C59326158720BB004401C5 /* TComBitCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitCounter.h; sourceTree = "<group>"; };
-		78C59327158720BB004401C5 /* TComBitStream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComBitStream.cpp; sourceTree = "<group>"; };
-		78C59328158720BB004401C5 /* TComBitStream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComBitStream.h; sourceTree = "<group>"; };
-		78C59329158720BB004401C5 /* TComCABACTables.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComCABACTables.cpp; sourceTree = "<group>"; };
-		78C5932A158720BB004401C5 /* TComCABACTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComCABACTables.h; sourceTree = "<group>"; };
-		78C5932B158720BB004401C5 /* TComDataCU.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComDataCU.cpp; sourceTree = "<group>"; };
-		78C5932C158720BB004401C5 /* TComDataCU.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComDataCU.h; sourceTree = "<group>"; };
-		78C5932D158720BB004401C5 /* TComDepthMapGenerator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComDepthMapGenerator.cpp; sourceTree = "<group>"; };
-		78C5932E158720BB004401C5 /* TComDepthMapGenerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComDepthMapGenerator.h; sourceTree = "<group>"; };
-		78C5932F158720BB004401C5 /* TComInterpolationFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComInterpolationFilter.cpp; sourceTree = "<group>"; };
-		78C59330158720BB004401C5 /* TComInterpolationFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComInterpolationFilter.h; sourceTree = "<group>"; };
-		78C59331158720BB004401C5 /* TComList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComList.h; sourceTree = "<group>"; };
-		78C59332158720BB004401C5 /* TComLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComLoopFilter.cpp; sourceTree = "<group>"; };
-		78C59333158720BB004401C5 /* TComLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComLoopFilter.h; sourceTree = "<group>"; };
-		78C59334158720BB004401C5 /* TComMotionInfo.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComMotionInfo.cpp; sourceTree = "<group>"; };
-		78C59335158720BB004401C5 /* TComMotionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMotionInfo.h; sourceTree = "<group>"; };
-		78C59336158720BB004401C5 /* TComMv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComMv.h; sourceTree = "<group>"; };
-		78C59337158720BB004401C5 /* TComPattern.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPattern.cpp; sourceTree = "<group>"; };
-		78C59338158720BB004401C5 /* TComPattern.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPattern.h; sourceTree = "<group>"; };
-		78C59339158720BB004401C5 /* TComPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPic.cpp; sourceTree = "<group>"; };
-		78C5933A158720BB004401C5 /* TComPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPic.h; sourceTree = "<group>"; };
-		78C5933B158720BB004401C5 /* TComPicSym.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicSym.cpp; sourceTree = "<group>"; };
-		78C5933C158720BB004401C5 /* TComPicSym.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicSym.h; sourceTree = "<group>"; };
-		78C5933D158720BB004401C5 /* TComPicYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuv.cpp; sourceTree = "<group>"; };
-		78C5933E158720BB004401C5 /* TComPicYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPicYuv.h; sourceTree = "<group>"; };
-		78C5933F158720BB004401C5 /* TComPicYuvMD5.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPicYuvMD5.cpp; sourceTree = "<group>"; };
-		78C59340158720BB004401C5 /* TComPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComPrediction.cpp; sourceTree = "<group>"; };
-		78C59341158720BB004401C5 /* TComPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComPrediction.h; sourceTree = "<group>"; };
-		78C59342158720BB004401C5 /* TComRdCost.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCost.cpp; sourceTree = "<group>"; };
-		78C59343158720BB004401C5 /* TComRdCost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCost.h; sourceTree = "<group>"; };
-		78C59344158720BB004401C5 /* TComRdCostWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRdCostWeightPrediction.cpp; sourceTree = "<group>"; };
-		78C59345158720BB004401C5 /* TComRdCostWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRdCostWeightPrediction.h; sourceTree = "<group>"; };
-		78C59346158720BB004401C5 /* TComResidualGenerator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComResidualGenerator.cpp; sourceTree = "<group>"; };
-		78C59347158720BB004401C5 /* TComResidualGenerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComResidualGenerator.h; sourceTree = "<group>"; };
-		78C59348158720BB004401C5 /* TComRom.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComRom.cpp; sourceTree = "<group>"; };
-		78C59349158720BB004401C5 /* TComRom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComRom.h; sourceTree = "<group>"; };
-		78C5934A158720BB004401C5 /* TComSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSampleAdaptiveOffset.cpp; sourceTree = "<group>"; };
-		78C5934B158720BB004401C5 /* TComSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSampleAdaptiveOffset.h; sourceTree = "<group>"; };
-		78C5934C158720BB004401C5 /* TComSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComSlice.cpp; sourceTree = "<group>"; };
-		78C5934D158720BB004401C5 /* TComSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComSlice.h; sourceTree = "<group>"; };
-		78C5934E158720BB004401C5 /* TComTrQuant.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComTrQuant.cpp; sourceTree = "<group>"; };
-		78C5934F158720BB004401C5 /* TComTrQuant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComTrQuant.h; sourceTree = "<group>"; };
-		78C59350158720BB004401C5 /* TComWedgelet.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWedgelet.cpp; sourceTree = "<group>"; };
-		78C59351158720BB004401C5 /* TComWedgelet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWedgelet.h; sourceTree = "<group>"; };
-		78C59352158720BB004401C5 /* TComWeightPrediction.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComWeightPrediction.cpp; sourceTree = "<group>"; };
-		78C59353158720BB004401C5 /* TComWeightPrediction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComWeightPrediction.h; sourceTree = "<group>"; };
-		78C59354158720BB004401C5 /* TComYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TComYuv.cpp; sourceTree = "<group>"; };
-		78C59355158720BB004401C5 /* TComYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TComYuv.h; sourceTree = "<group>"; };
-		78C59356158720BB004401C5 /* TypeDef.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TypeDef.h; sourceTree = "<group>"; };
-		78C59358158720BB004401C5 /* AnnexBread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AnnexBread.cpp; sourceTree = "<group>"; };
-		78C59359158720BB004401C5 /* AnnexBread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBread.h; sourceTree = "<group>"; };
-		78C5935A158720BB004401C5 /* NALread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALread.cpp; sourceTree = "<group>"; };
-		78C5935B158720BB004401C5 /* NALread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALread.h; sourceTree = "<group>"; };
-		78C5935C158720BB004401C5 /* SEIread.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIread.cpp; sourceTree = "<group>"; };
-		78C5935D158720BB004401C5 /* SEIread.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIread.h; sourceTree = "<group>"; };
-		78C5935E158720BB004401C5 /* TDecBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoder.h; sourceTree = "<group>"; };
-		78C5935F158720BB004401C5 /* TDecBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecBinCoderCABAC.cpp; sourceTree = "<group>"; };
-		78C59360158720BB004401C5 /* TDecBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecBinCoderCABAC.h; sourceTree = "<group>"; };
-		78C59361158720BB004401C5 /* TDecCAVLC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCAVLC.cpp; sourceTree = "<group>"; };
-		78C59362158720BB004401C5 /* TDecCAVLC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCAVLC.h; sourceTree = "<group>"; };
-		78C59363158720BB004401C5 /* TDecCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecCu.cpp; sourceTree = "<group>"; };
-		78C59364158720BB004401C5 /* TDecCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecCu.h; sourceTree = "<group>"; };
-		78C59365158720BB004401C5 /* TDecEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecEntropy.cpp; sourceTree = "<group>"; };
-		78C59366158720BB004401C5 /* TDecEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecEntropy.h; sourceTree = "<group>"; };
-		78C59367158720BB004401C5 /* TDecGop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecGop.cpp; sourceTree = "<group>"; };
-		78C59368158720BB004401C5 /* TDecGop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecGop.h; sourceTree = "<group>"; };
-		78C59369158720BB004401C5 /* TDecSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSbac.cpp; sourceTree = "<group>"; };
-		78C5936A158720BB004401C5 /* TDecSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSbac.h; sourceTree = "<group>"; };
-		78C5936B158720BB004401C5 /* TDecSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecSlice.cpp; sourceTree = "<group>"; };
-		78C5936C158720BB004401C5 /* TDecSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecSlice.h; sourceTree = "<group>"; };
-		78C5936D158720BB004401C5 /* TDecTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TDecTop.cpp; sourceTree = "<group>"; };
-		78C5936E158720BB004401C5 /* TDecTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDecTop.h; sourceTree = "<group>"; };
-		78C59370158720BB004401C5 /* AnnexBwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AnnexBwrite.h; sourceTree = "<group>"; };
-		78C59371158720BB004401C5 /* NALwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NALwrite.cpp; sourceTree = "<group>"; };
-		78C59372158720BB004401C5 /* NALwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NALwrite.h; sourceTree = "<group>"; };
-		78C59373158720BB004401C5 /* SEIwrite.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SEIwrite.cpp; sourceTree = "<group>"; };
-		78C59374158720BB004401C5 /* SEIwrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SEIwrite.h; sourceTree = "<group>"; };
-		78C59375158720BB004401C5 /* TEncAdaptiveLoopFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncAdaptiveLoopFilter.cpp; sourceTree = "<group>"; };
-		78C59376158720BB004401C5 /* TEncAdaptiveLoopFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncAdaptiveLoopFilter.h; sourceTree = "<group>"; };
-		78C59377158720BB004401C5 /* TEncAnalyze.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncAnalyze.h; sourceTree = "<group>"; };
-		78C59378158720BB004401C5 /* TEncBinCoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoder.h; sourceTree = "<group>"; };
-		78C59379158720BB004401C5 /* TEncBinCoderCABAC.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABAC.cpp; sourceTree = "<group>"; };
-		78C5937A158720BB004401C5 /* TEncBinCoderCABAC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABAC.h; sourceTree = "<group>"; };
-		78C5937B158720BB004401C5 /* TEncBinCoderCABACCounter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncBinCoderCABACCounter.cpp; sourceTree = "<group>"; };
-		78C5937C158720BB004401C5 /* TEncBinCoderCABACCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncBinCoderCABACCounter.h; sourceTree = "<group>"; };
-		78C5937D158720BB004401C5 /* TEncCavlc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCavlc.cpp; sourceTree = "<group>"; };
-		78C5937E158720BB004401C5 /* TEncCavlc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCavlc.h; sourceTree = "<group>"; };
-		78C5937F158720BB004401C5 /* TEncCfg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCfg.h; sourceTree = "<group>"; };
-		78C59380158720BB004401C5 /* TEncCu.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncCu.cpp; sourceTree = "<group>"; };
-		78C59381158720BB004401C5 /* TEncCu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncCu.h; sourceTree = "<group>"; };
-		78C59382158720BB004401C5 /* TEncEntropy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncEntropy.cpp; sourceTree = "<group>"; };
-		78C59383158720BB004401C5 /* TEncEntropy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncEntropy.h; sourceTree = "<group>"; };
-		78C59384158720BB004401C5 /* TEncGOP.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncGOP.cpp; sourceTree = "<group>"; };
-		78C59385158720BB004401C5 /* TEncGOP.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncGOP.h; sourceTree = "<group>"; };
-		78C59386158720BB004401C5 /* TEncPic.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPic.cpp; sourceTree = "<group>"; };
-		78C59387158720BB004401C5 /* TEncPic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPic.h; sourceTree = "<group>"; };
-		78C59388158720BB004401C5 /* TEncPreanalyzer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncPreanalyzer.cpp; sourceTree = "<group>"; };
-		78C59389158720BB004401C5 /* TEncPreanalyzer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncPreanalyzer.h; sourceTree = "<group>"; };
-		78C5938A158720BB004401C5 /* TEncSampleAdaptiveOffset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSampleAdaptiveOffset.cpp; sourceTree = "<group>"; };
-		78C5938B158720BB004401C5 /* TEncSampleAdaptiveOffset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSampleAdaptiveOffset.h; sourceTree = "<group>"; };
-		78C5938C158720BB004401C5 /* TEncSbac.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSbac.cpp; sourceTree = "<group>"; };
-		78C5938D158720BB004401C5 /* TEncSbac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSbac.h; sourceTree = "<group>"; };
-		78C5938E158720BB004401C5 /* TEncSearch.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSearch.cpp; sourceTree = "<group>"; };
-		78C5938F158720BB004401C5 /* TEncSearch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSearch.h; sourceTree = "<group>"; };
-		78C59390158720BB004401C5 /* TEncSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncSlice.cpp; sourceTree = "<group>"; };
-		78C59391158720BB004401C5 /* TEncSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncSlice.h; sourceTree = "<group>"; };
-		78C59392158720BB004401C5 /* TEncTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TEncTop.cpp; sourceTree = "<group>"; };
-		78C59393158720BB004401C5 /* TEncTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TEncTop.h; sourceTree = "<group>"; };
-		78C59394158720BB004401C5 /* WeightPredAnalysis.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = WeightPredAnalysis.cpp; sourceTree = "<group>"; };
-		78C59395158720BB004401C5 /* WeightPredAnalysis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeightPredAnalysis.h; sourceTree = "<group>"; };
-		78C59397158720BB004401C5 /* TExtrTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TExtrTop.cpp; sourceTree = "<group>"; };
-		78C59398158720BB004401C5 /* TExtrTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TExtrTop.h; sourceTree = "<group>"; };
-		78C5939A158720BB004401C5 /* TRenFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenFilter.cpp; sourceTree = "<group>"; };
-		78C5939B158720BB004401C5 /* TRenFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenFilter.h; sourceTree = "<group>"; };
-		78C5939C158720BB004401C5 /* TRenImage.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImage.cpp; sourceTree = "<group>"; };
-		78C5939D158720BB004401C5 /* TRenImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImage.h; sourceTree = "<group>"; };
-		78C5939E158720BB004401C5 /* TRenImagePlane.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenImagePlane.cpp; sourceTree = "<group>"; };
-		78C5939F158720BB004401C5 /* TRenImagePlane.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenImagePlane.h; sourceTree = "<group>"; };
-		78C593A0158720BB004401C5 /* TRenInterpFilter.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenInterpFilter.cpp; sourceTree = "<group>"; };
-		78C593A1158720BB004401C5 /* TRenInterpFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenInterpFilter.h; sourceTree = "<group>"; };
-		78C593A2158720BB004401C5 /* TRenModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModel.cpp; sourceTree = "<group>"; };
-		78C593A3158720BB004401C5 /* TRenModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModel.h; sourceTree = "<group>"; };
-		78C593A4158720BB004401C5 /* TRenModSetupStrParser.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenModSetupStrParser.cpp; sourceTree = "<group>"; };
-		78C593A5158720BB004401C5 /* TRenModSetupStrParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenModSetupStrParser.h; sourceTree = "<group>"; };
-		78C593A6158720BB004401C5 /* TRenSingleModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenSingleModel.cpp; sourceTree = "<group>"; };
-		78C593A7158720BB004401C5 /* TRenSingleModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenSingleModel.h; sourceTree = "<group>"; };
-		78C593A8158720BB004401C5 /* TRenTop.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TRenTop.cpp; sourceTree = "<group>"; };
-		78C593A9158720BB004401C5 /* TRenTop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRenTop.h; sourceTree = "<group>"; };
-		78C593AB158720BB004401C5 /* TVideoIOYuv.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = TVideoIOYuv.cpp; sourceTree = "<group>"; };
-		78C593AC158720BB004401C5 /* TVideoIOYuv.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVideoIOYuv.h; sourceTree = "<group>"; };
 		78C593B415872152004401C5 /* libTAppCommon.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTAppCommon.a; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
@@ -615,12 +621,306 @@
 			sourceTree = "<group>";
 		};
+		785E596B17D9AFA8001F6DD1 /* TLibStatistics */ = {
+			isa = PBXGroup;
+			children = (
+				785E596C17D9AFA8001F6DD1 /* TStatHeader.cpp */,
+				785E596D17D9AFA8001F6DD1 /* TStatHeader.h */,
+				785E596E17D9AFA8001F6DD1 /* TStatLayer.cpp */,
+				785E596F17D9AFA8001F6DD1 /* TStatLayer.h */,
+				785E597017D9AFA8001F6DD1 /* TStatTop.cpp */,
+				785E597117D9AFA8001F6DD1 /* TStatTop.h */,
+			);
+			path = TLibStatistics;
+			sourceTree = "<group>";
+		};
+		787462BA17D5DD7B0040CFC7 /* TAppDecoder */ = {
+			isa = PBXGroup;
+			children = (
+				787462BB17D5DD7B0040CFC7 /* decmain.cpp */,
+				787462BC17D5DD7B0040CFC7 /* TAppDecCfg.cpp */,
+				787462BD17D5DD7B0040CFC7 /* TAppDecCfg.h */,
+				787462BE17D5DD7B0040CFC7 /* TAppDecTop.cpp */,
+				787462BF17D5DD7B0040CFC7 /* TAppDecTop.h */,
+			);
+			path = TAppDecoder;
+			sourceTree = "<group>";
+		};
+		787462C017D5DD7B0040CFC7 /* TAppEncoder */ = {
+			isa = PBXGroup;
+			children = (
+				787462C117D5DD7B0040CFC7 /* encmain.cpp */,
+				787462C217D5DD7B0040CFC7 /* TAppEncCfg.cpp */,
+				787462C317D5DD7B0040CFC7 /* TAppEncCfg.h */,
+				787462C417D5DD7B0040CFC7 /* TAppEncTop.cpp */,
+				787462C517D5DD7B0040CFC7 /* TAppEncTop.h */,
+			);
+			path = TAppEncoder;
+			sourceTree = "<group>";
+		};
+		787462C617D5DD7B0040CFC7 /* TAppExtractor */ = {
+			isa = PBXGroup;
+			children = (
+				787462C717D5DD7B0040CFC7 /* extrmain.cpp */,
+				787462C817D5DD7B0040CFC7 /* TAppExtrCfg.cpp */,
+				787462C917D5DD7B0040CFC7 /* TAppExtrCfg.h */,
+				787462CA17D5DD7B0040CFC7 /* TAppExtrTop.cpp */,
+				787462CB17D5DD7B0040CFC7 /* TAppExtrTop.h */,
+			);
+			path = TAppExtractor;
+			sourceTree = "<group>";
+		};
+		787462CC17D5DD7B0040CFC7 /* TAppRenderer */ = {
+			isa = PBXGroup;
+			children = (
+				787462CD17D5DD7B0040CFC7 /* RendererMain.cpp */,
+				787462CE17D5DD7B0040CFC7 /* TAppRendererCfg.cpp */,
+				787462CF17D5DD7B0040CFC7 /* TAppRendererCfg.h */,
+				787462D017D5DD7B0040CFC7 /* TAppRendererTop.cpp */,
+				787462D117D5DD7B0040CFC7 /* TAppRendererTop.h */,
+			);
+			path = TAppRenderer;
+			sourceTree = "<group>";
+		};
+		787462D217D5DD7B0040CFC7 /* utils */ = {
+			isa = PBXGroup;
+			children = (
+				787462D317D5DD7B0040CFC7 /* annexBbytecount.cpp */,
+				787462D417D5DD7B0040CFC7 /* BitrateTargeting */,
+				787462E117D5DD7B0040CFC7 /* convert_NtoMbit_YCbCr.cpp */,
+			);
+			path = utils;
+			sourceTree = "<group>";
+		};
+		787462D417D5DD7B0040CFC7 /* BitrateTargeting */ = {
+			isa = PBXGroup;
+			children = (
+				787462D517D5DD7B0040CFC7 /* encode.shl */,
+				787462D617D5DD7B0040CFC7 /* encodeCommand.sh */,
+				787462D717D5DD7B0040CFC7 /* ExtractBitrates.cpp */,
+				787462D817D5DD7B0040CFC7 /* ExtractBitrates.h */,
+				787462D917D5DD7B0040CFC7 /* ExtractBitratesMain.cpp */,
+				787462DA17D5DD7B0040CFC7 /* GuessLambdaModifiers.cpp */,
+				787462DB17D5DD7B0040CFC7 /* GuessLambdaModifiers.h */,
+				787462DC17D5DD7B0040CFC7 /* GuessLambdaModifiersMain.cpp */,
+				787462DD17D5DD7B0040CFC7 /* makefile */,
+				787462DE17D5DD7B0040CFC7 /* QuickStartGuide.pdf */,
+				787462DF17D5DD7B0040CFC7 /* RuntimeError.h */,
+				787462E017D5DD7B0040CFC7 /* targetBitrates.sh */,
+			);
+			path = BitrateTargeting;
+			sourceTree = "<group>";
+		};
+		787462E217D5DD840040CFC7 /* libmd5 */ = {
+			isa = PBXGroup;
+			children = (
+				787462E317D5DD840040CFC7 /* libmd5.c */,
+				787462E417D5DD840040CFC7 /* libmd5.h */,
+				787462E517D5DD840040CFC7 /* MD5.h */,
+			);
+			path = libmd5;
+			sourceTree = "<group>";
+		};
+		787462E617D5DD840040CFC7 /* TAppCommon */ = {
+			isa = PBXGroup;
+			children = (
+				787462E717D5DD840040CFC7 /* program_options_lite.cpp */,
+				787462E817D5DD840040CFC7 /* program_options_lite.h */,
+				787462E917D5DD840040CFC7 /* TAppComCamPara.cpp */,
+				787462EA17D5DD840040CFC7 /* TAppComCamPara.h */,
+			);
+			path = TAppCommon;
+			sourceTree = "<group>";
+		};
+		787462EB17D5DD840040CFC7 /* TLibCommon */ = {
+			isa = PBXGroup;
+			children = (
+				787462EC17D5DD840040CFC7 /* AccessUnit.h */,
+				787462ED17D5DD840040CFC7 /* CommonDef.h */,
+				787462EE17D5DD840040CFC7 /* ContextModel.cpp */,
+				787462EF17D5DD840040CFC7 /* ContextModel.h */,
+				787462F017D5DD840040CFC7 /* ContextModel3DBuffer.cpp */,
+				787462F117D5DD840040CFC7 /* ContextModel3DBuffer.h */,
+				787462F217D5DD840040CFC7 /* ContextTables.h */,
+				787462F317D5DD840040CFC7 /* NAL.h */,
+				787462F417D5DD840040CFC7 /* SEI.cpp */,
+				787462F517D5DD840040CFC7 /* SEI.h */,
+				787462F617D5DD840040CFC7 /* TComBitCounter.h */,
+				787462F717D5DD840040CFC7 /* TComBitStream.cpp */,
+				787462F817D5DD840040CFC7 /* TComBitStream.h */,
+				787462F917D5DD840040CFC7 /* TComCABACTables.cpp */,
+				787462FA17D5DD840040CFC7 /* TComCABACTables.h */,
+				787462FB17D5DD840040CFC7 /* TComDataCU.cpp */,
+				787462FC17D5DD840040CFC7 /* TComDataCU.h */,
+				787462FD17D5DD840040CFC7 /* TComInterpolationFilter.cpp */,
+				787462FE17D5DD840040CFC7 /* TComInterpolationFilter.h */,
+				787462FF17D5DD840040CFC7 /* TComList.h */,
+				7874630017D5DD840040CFC7 /* TComLoopFilter.cpp */,
+				7874630117D5DD840040CFC7 /* TComLoopFilter.h */,
+				7874630217D5DD840040CFC7 /* TComMotionInfo.cpp */,
+				7874630317D5DD840040CFC7 /* TComMotionInfo.h */,
+				7874630417D5DD840040CFC7 /* TComMv.h */,
+				7874630517D5DD840040CFC7 /* TComPattern.cpp */,
+				7874630617D5DD840040CFC7 /* TComPattern.h */,
+				7874630717D5DD840040CFC7 /* TComPic.cpp */,
+				7874630817D5DD840040CFC7 /* TComPic.h */,
+				7874630917D5DD840040CFC7 /* TComPicSym.cpp */,
+				7874630A17D5DD840040CFC7 /* TComPicSym.h */,
+				7874630B17D5DD840040CFC7 /* TComPicYuv.cpp */,
+				7874630C17D5DD840040CFC7 /* TComPicYuv.h */,
+				7874630D17D5DD840040CFC7 /* TComPicYuvMD5.cpp */,
+				7874630E17D5DD840040CFC7 /* TComPrediction.cpp */,
+				7874630F17D5DD840040CFC7 /* TComPrediction.h */,
+				7874631017D5DD840040CFC7 /* TComRdCost.cpp */,
+				7874631117D5DD840040CFC7 /* TComRdCost.h */,
+				7874631217D5DD840040CFC7 /* TComRdCostWeightPrediction.cpp */,
+				7874631317D5DD840040CFC7 /* TComRdCostWeightPrediction.h */,
+				7874631417D5DD840040CFC7 /* TComRom.cpp */,
+				7874631517D5DD840040CFC7 /* TComRom.h */,
+				7874631617D5DD840040CFC7 /* TComSampleAdaptiveOffset.cpp */,
+				7874631717D5DD840040CFC7 /* TComSampleAdaptiveOffset.h */,
+				7874631817D5DD840040CFC7 /* TComSlice.cpp */,
+				7874631917D5DD840040CFC7 /* TComSlice.h */,
+				7874631A17D5DD840040CFC7 /* TComTrQuant.cpp */,
+				7874631B17D5DD840040CFC7 /* TComTrQuant.h */,
+				7874631C17D5DD840040CFC7 /* TComWedgelet.cpp */,
+				7874631D17D5DD840040CFC7 /* TComWedgelet.h */,
+				7874631E17D5DD840040CFC7 /* TComWeightPrediction.cpp */,
+				7874631F17D5DD840040CFC7 /* TComWeightPrediction.h */,
+				7874632017D5DD840040CFC7 /* TComYuv.cpp */,
+				7874632117D5DD840040CFC7 /* TComYuv.h */,
+				7874632217D5DD840040CFC7 /* TypeDef.h */,
+			);
+			path = TLibCommon;
+			sourceTree = "<group>";
+		};
+		7874632317D5DD840040CFC7 /* TLibDecoder */ = {
+			isa = PBXGroup;
+			children = (
+				7874632417D5DD840040CFC7 /* AnnexBread.cpp */,
+				7874632517D5DD840040CFC7 /* AnnexBread.h */,
+				7874632617D5DD840040CFC7 /* NALread.cpp */,
+				7874632717D5DD840040CFC7 /* NALread.h */,
+				7874632817D5DD840040CFC7 /* SEIread.cpp */,
+				7874632917D5DD840040CFC7 /* SEIread.h */,
+				7874632A17D5DD840040CFC7 /* SyntaxElementParser.cpp */,
+				7874632B17D5DD840040CFC7 /* SyntaxElementParser.h */,
+				7874632C17D5DD840040CFC7 /* TDecBinCoder.h */,
+				7874632D17D5DD840040CFC7 /* TDecBinCoderCABAC.cpp */,
+				7874632E17D5DD840040CFC7 /* TDecBinCoderCABAC.h */,
+				7874632F17D5DD840040CFC7 /* TDecCAVLC.cpp */,
+				7874633017D5DD840040CFC7 /* TDecCAVLC.h */,
+				7874633117D5DD840040CFC7 /* TDecCu.cpp */,
+				7874633217D5DD840040CFC7 /* TDecCu.h */,
+				7874633317D5DD840040CFC7 /* TDecEntropy.cpp */,
+				7874633417D5DD840040CFC7 /* TDecEntropy.h */,
+				7874633517D5DD840040CFC7 /* TDecGop.cpp */,
+				7874633617D5DD840040CFC7 /* TDecGop.h */,
+				7874633717D5DD840040CFC7 /* TDecSbac.cpp */,
+				7874633817D5DD840040CFC7 /* TDecSbac.h */,
+				7874633917D5DD840040CFC7 /* TDecSlice.cpp */,
+				7874633A17D5DD840040CFC7 /* TDecSlice.h */,
+				7874633B17D5DD840040CFC7 /* TDecTop.cpp */,
+				7874633C17D5DD840040CFC7 /* TDecTop.h */,
+			);
+			path = TLibDecoder;
+			sourceTree = "<group>";
+		};
+		7874633D17D5DD840040CFC7 /* TLibEncoder */ = {
+			isa = PBXGroup;
+			children = (
+				7874633E17D5DD840040CFC7 /* AnnexBwrite.h */,
+				7874633F17D5DD840040CFC7 /* NALwrite.cpp */,
+				7874634017D5DD840040CFC7 /* NALwrite.h */,
+				7874634117D5DD840040CFC7 /* SEIwrite.cpp */,
+				7874634217D5DD840040CFC7 /* SEIwrite.h */,
+				7874634317D5DD840040CFC7 /* SyntaxElementWriter.cpp */,
+				7874634417D5DD840040CFC7 /* SyntaxElementWriter.h */,
+				7874634517D5DD840040CFC7 /* TEncAnalyze.cpp */,
+				7874634617D5DD840040CFC7 /* TEncAnalyze.h */,
+				7874634717D5DD840040CFC7 /* TEncBinCoder.h */,
+				7874634817D5DD840040CFC7 /* TEncBinCoderCABAC.cpp */,
+				7874634917D5DD840040CFC7 /* TEncBinCoderCABAC.h */,
+				7874634A17D5DD840040CFC7 /* TEncBinCoderCABACCounter.cpp */,
+				7874634B17D5DD840040CFC7 /* TEncBinCoderCABACCounter.h */,
+				7874634C17D5DD840040CFC7 /* TEncCavlc.cpp */,
+				7874634D17D5DD840040CFC7 /* TEncCavlc.h */,
+				7874634E17D5DD840040CFC7 /* TEncCfg.h */,
+				7874634F17D5DD840040CFC7 /* TEncCu.cpp */,
+				7874635017D5DD840040CFC7 /* TEncCu.h */,
+				7874635117D5DD840040CFC7 /* TEncEntropy.cpp */,
+				7874635217D5DD840040CFC7 /* TEncEntropy.h */,
+				7874635317D5DD840040CFC7 /* TEncGOP.cpp */,
+				7874635417D5DD840040CFC7 /* TEncGOP.h */,
+				7874635517D5DD840040CFC7 /* TEncPic.cpp */,
+				7874635617D5DD840040CFC7 /* TEncPic.h */,
+				7874635717D5DD840040CFC7 /* TEncPreanalyzer.cpp */,
+				7874635817D5DD840040CFC7 /* TEncPreanalyzer.h */,
+				7874635917D5DD840040CFC7 /* TEncRateCtrl.cpp */,
+				7874635A17D5DD840040CFC7 /* TEncRateCtrl.h */,
+				7874635B17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.cpp */,
+				7874635C17D5DD840040CFC7 /* TEncSampleAdaptiveOffset.h */,
+				7874635D17D5DD840040CFC7 /* TEncSbac.cpp */,
+				7874635E17D5DD840040CFC7 /* TEncSbac.h */,
+				7874635F17D5DD840040CFC7 /* TEncSearch.cpp */,
+				7874636017D5DD840040CFC7 /* TEncSearch.h */,
+				7874636117D5DD840040CFC7 /* TEncSlice.cpp */,
+				7874636217D5DD840040CFC7 /* TEncSlice.h */,
+				7874636317D5DD840040CFC7 /* TEncTop.cpp */,
+				7874636417D5DD840040CFC7 /* TEncTop.h */,
+				7874636517D5DD840040CFC7 /* WeightPredAnalysis.cpp */,
+				7874636617D5DD840040CFC7 /* WeightPredAnalysis.h */,
+			);
+			path = TLibEncoder;
+			sourceTree = "<group>";
+		};
+		7874636717D5DD840040CFC7 /* TLibExtractor */ = {
+			isa = PBXGroup;
+			children = (
+				7874636817D5DD840040CFC7 /* TExtrTop.cpp */,
+				7874636917D5DD840040CFC7 /* TExtrTop.h */,
+			);
+			path = TLibExtractor;
+			sourceTree = "<group>";
+		};
+		7874636A17D5DD840040CFC7 /* TLibRenderer */ = {
+			isa = PBXGroup;
+			children = (
+				7874636B17D5DD840040CFC7 /* TRenFilter.cpp */,
+				7874636C17D5DD840040CFC7 /* TRenFilter.h */,
+				7874636D17D5DD840040CFC7 /* TRenImage.cpp */,
+				7874636E17D5DD840040CFC7 /* TRenImage.h */,
+				7874636F17D5DD840040CFC7 /* TRenImagePlane.cpp */,
+				7874637017D5DD840040CFC7 /* TRenImagePlane.h */,
+				7874637117D5DD840040CFC7 /* TRenInterpFilter.cpp */,
+				7874637217D5DD840040CFC7 /* TRenInterpFilter.h */,
+				7874637317D5DD840040CFC7 /* TRenModel.cpp */,
+				7874637417D5DD840040CFC7 /* TRenModel.h */,
+				7874637517D5DD840040CFC7 /* TRenModSetupStrParser.cpp */,
+				7874637617D5DD840040CFC7 /* TRenModSetupStrParser.h */,
+				7874637717D5DD840040CFC7 /* TRenSingleModel.cpp */,
+				7874637817D5DD840040CFC7 /* TRenSingleModel.h */,
+				7874637917D5DD840040CFC7 /* TRenTop.cpp */,
+				7874637A17D5DD840040CFC7 /* TRenTop.h */,
+			);
+			path = TLibRenderer;
+			sourceTree = "<group>";
+		};
+		7874637B17D5DD840040CFC7 /* TLibVideoIO */ = {
+			isa = PBXGroup;
+			children = (
+				7874637C17D5DD840040CFC7 /* TVideoIOYuv.cpp */,
+				7874637D17D5DD840040CFC7 /* TVideoIOYuv.h */,
+			);
+			path = TLibVideoIO;
+			sourceTree = "<group>";
+		};
 		78C592E7158720BB004401C5 /* App */ = {
 			isa = PBXGroup;
 			children = (
-				78C592E8158720BB004401C5 /* TAppDecoder */,
-				78C592EE158720BB004401C5 /* TAppEncoder */,
-				78C592F4158720BB004401C5 /* TAppExtractor */,
-				78C592FA158720BB004401C5 /* TAppRenderer */,
-				78C59300158720BB004401C5 /* utils */,
+				787462BA17D5DD7B0040CFC7 /* TAppDecoder */,
+				787462C017D5DD7B0040CFC7 /* TAppEncoder */,
+				787462C617D5DD7B0040CFC7 /* TAppExtractor */,
+				787462CC17D5DD7B0040CFC7 /* TAppRenderer */,
+				787462D217D5DD7B0040CFC7 /* utils */,
 			);
 			name = App;
@@ -628,299 +928,19 @@
 			sourceTree = "<group>";
 		};
-		78C592E8158720BB004401C5 /* TAppDecoder */ = {
-			isa = PBXGroup;
-			children = (
-				78C592E9158720BB004401C5 /* decmain.cpp */,
-				78C592EA158720BB004401C5 /* TAppDecCfg.cpp */,
-				78C592EB158720BB004401C5 /* TAppDecCfg.h */,
-				78C592EC158720BB004401C5 /* TAppDecTop.cpp */,
-				78C592ED158720BB004401C5 /* TAppDecTop.h */,
-			);
-			path = TAppDecoder;
-			sourceTree = "<group>";
-		};
-		78C592EE158720BB004401C5 /* TAppEncoder */ = {
-			isa = PBXGroup;
-			children = (
-				78C592EF158720BB004401C5 /* encmain.cpp */,
-				78C592F0158720BB004401C5 /* TAppEncCfg.cpp */,
-				78C592F1158720BB004401C5 /* TAppEncCfg.h */,
-				78C592F2158720BB004401C5 /* TAppEncTop.cpp */,
-				78C592F3158720BB004401C5 /* TAppEncTop.h */,
-			);
-			path = TAppEncoder;
-			sourceTree = "<group>";
-		};
-		78C592F4158720BB004401C5 /* TAppExtractor */ = {
-			isa = PBXGroup;
-			children = (
-				78C592F5158720BB004401C5 /* extrmain.cpp */,
-				78C592F6158720BB004401C5 /* TAppExtrCfg.cpp */,
-				78C592F7158720BB004401C5 /* TAppExtrCfg.h */,
-				78C592F8158720BB004401C5 /* TAppExtrTop.cpp */,
-				78C592F9158720BB004401C5 /* TAppExtrTop.h */,
-			);
-			path = TAppExtractor;
-			sourceTree = "<group>";
-		};
-		78C592FA158720BB004401C5 /* TAppRenderer */ = {
-			isa = PBXGroup;
-			children = (
-				78C592FB158720BB004401C5 /* RendererMain.cpp */,
-				78C592FC158720BB004401C5 /* TAppRendererCfg.cpp */,
-				78C592FD158720BB004401C5 /* TAppRendererCfg.h */,
-				78C592FE158720BB004401C5 /* TAppRendererTop.cpp */,
-				78C592FF158720BB004401C5 /* TAppRendererTop.h */,
-			);
-			path = TAppRenderer;
-			sourceTree = "<group>";
-		};
-		78C59300158720BB004401C5 /* utils */ = {
-			isa = PBXGroup;
-			children = (
-				78C59301158720BB004401C5 /* annexBbytecount.cpp */,
-				78C59302158720BB004401C5 /* BitrateTargeting */,
-				78C5930F158720BB004401C5 /* convert_NtoMbit_YCbCr.cpp */,
-			);
-			path = utils;
-			sourceTree = "<group>";
-		};
-		78C59302158720BB004401C5 /* BitrateTargeting */ = {
-			isa = PBXGroup;
-			children = (
-				78C59303158720BB004401C5 /* encode.shl */,
-				78C59304158720BB004401C5 /* encodeCommand.sh */,
-				78C59305158720BB004401C5 /* ExtractBitrates.cpp */,
-				78C59306158720BB004401C5 /* ExtractBitrates.h */,
-				78C59307158720BB004401C5 /* ExtractBitratesMain.cpp */,
-				78C59308158720BB004401C5 /* GuessLambdaModifiers.cpp */,
-				78C59309158720BB004401C5 /* GuessLambdaModifiers.h */,
-				78C5930A158720BB004401C5 /* GuessLambdaModifiersMain.cpp */,
-				78C5930B158720BB004401C5 /* makefile */,
-				78C5930C158720BB004401C5 /* QuickStartGuide.pdf */,
-				78C5930D158720BB004401C5 /* RuntimeError.h */,
-				78C5930E158720BB004401C5 /* targetBitrates.sh */,
-			);
-			path = BitrateTargeting;
-			sourceTree = "<group>";
-		};
 		78C59310158720BB004401C5 /* Lib */ = {
 			isa = PBXGroup;
 			children = (
-				78C59311158720BB004401C5 /* libmd5 */,
-				78C59315158720BB004401C5 /* TAppCommon */,
-				78C5931A158720BB004401C5 /* TLibCommon */,
-				78C59357158720BB004401C5 /* TLibDecoder */,
-				78C5936F158720BB004401C5 /* TLibEncoder */,
-				78C59396158720BB004401C5 /* TLibExtractor */,
-				78C59399158720BB004401C5 /* TLibRenderer */,
-				78C593AA158720BB004401C5 /* TLibVideoIO */,
+				787462E217D5DD840040CFC7 /* libmd5 */,
+				787462E617D5DD840040CFC7 /* TAppCommon */,
+				787462EB17D5DD840040CFC7 /* TLibCommon */,
+				7874632317D5DD840040CFC7 /* TLibDecoder */,
+				7874633D17D5DD840040CFC7 /* TLibEncoder */,
+				7874636717D5DD840040CFC7 /* TLibExtractor */,
+				7874636A17D5DD840040CFC7 /* TLibRenderer */,
+				7874637B17D5DD840040CFC7 /* TLibVideoIO */,
+				785E596B17D9AFA8001F6DD1 /* TLibStatistics */,
 			);
 			name = Lib;
 			path = source/Lib;
-			sourceTree = "<group>";
-		};
-		78C59311158720BB004401C5 /* libmd5 */ = {
-			isa = PBXGroup;
-			children = (
-				78C59312158720BB004401C5 /* libmd5.c */,
-				78C59313158720BB004401C5 /* libmd5.h */,
-				78C59314158720BB004401C5 /* MD5.h */,
-			);
-			path = libmd5;
-			sourceTree = "<group>";
-		};
-		78C59315158720BB004401C5 /* TAppCommon */ = {
-			isa = PBXGroup;
-			children = (
-				78C59316158720BB004401C5 /* program_options_lite.cpp */,
-				78C59317158720BB004401C5 /* program_options_lite.h */,
-				78C59318158720BB004401C5 /* TAppComCamPara.cpp */,
-				78C59319158720BB004401C5 /* TAppComCamPara.h */,
-			);
-			path = TAppCommon;
-			sourceTree = "<group>";
-		};
-		78C5931A158720BB004401C5 /* TLibCommon */ = {
-			isa = PBXGroup;
-			children = (
-				78C5931B158720BB004401C5 /* AccessUnit.h */,
-				78C5931C158720BB004401C5 /* CommonDef.h */,
-				78C5931D158720BB004401C5 /* ContextModel.cpp */,
-				78C5931E158720BB004401C5 /* ContextModel.h */,
-				78C5931F158720BB004401C5 /* ContextModel3DBuffer.cpp */,
-				78C59320158720BB004401C5 /* ContextModel3DBuffer.h */,
-				78C59321158720BB004401C5 /* ContextTables.h */,
-				78C59322158720BB004401C5 /* NAL.h */,
-				78C59323158720BB004401C5 /* SEI.h */,
-				78C59324158720BB004401C5 /* TComAdaptiveLoopFilter.cpp */,
-				78C59325158720BB004401C5 /* TComAdaptiveLoopFilter.h */,
-				78C59326158720BB004401C5 /* TComBitCounter.h */,
-				78C59327158720BB004401C5 /* TComBitStream.cpp */,
-				78C59328158720BB004401C5 /* TComBitStream.h */,
-				78C59329158720BB004401C5 /* TComCABACTables.cpp */,
-				78C5932A158720BB004401C5 /* TComCABACTables.h */,
-				78C5932B158720BB004401C5 /* TComDataCU.cpp */,
-				78C5932C158720BB004401C5 /* TComDataCU.h */,
-				78C5932D158720BB004401C5 /* TComDepthMapGenerator.cpp */,
-				78C5932E158720BB004401C5 /* TComDepthMapGenerator.h */,
-				78C5932F158720BB004401C5 /* TComInterpolationFilter.cpp */,
-				78C59330158720BB004401C5 /* TComInterpolationFilter.h */,
-				78C59331158720BB004401C5 /* TComList.h */,
-				78C59332158720BB004401C5 /* TComLoopFilter.cpp */,
-				78C59333158720BB004401C5 /* TComLoopFilter.h */,
-				78C59334158720BB004401C5 /* TComMotionInfo.cpp */,
-				78C59335158720BB004401C5 /* TComMotionInfo.h */,
-				78C59336158720BB004401C5 /* TComMv.h */,
-				78C59337158720BB004401C5 /* TComPattern.cpp */,
-				78C59338158720BB004401C5 /* TComPattern.h */,
-				78C59339158720BB004401C5 /* TComPic.cpp */,
-				78C5933A158720BB004401C5 /* TComPic.h */,
-				78C5933B158720BB004401C5 /* TComPicSym.cpp */,
-				78C5933C158720BB004401C5 /* TComPicSym.h */,
-				78C5933D158720BB004401C5 /* TComPicYuv.cpp */,
-				78C5933E158720BB004401C5 /* TComPicYuv.h */,
-				78C5933F158720BB004401C5 /* TComPicYuvMD5.cpp */,
-				78C59340158720BB004401C5 /* TComPrediction.cpp */,
-				78C59341158720BB004401C5 /* TComPrediction.h */,
-				78C59342158720BB004401C5 /* TComRdCost.cpp */,
-				78C59343158720BB004401C5 /* TComRdCost.h */,
-				78C59344158720BB004401C5 /* TComRdCostWeightPrediction.cpp */,
-				78C59345158720BB004401C5 /* TComRdCostWeightPrediction.h */,
-				78C59346158720BB004401C5 /* TComResidualGenerator.cpp */,
-				78C59347158720BB004401C5 /* TComResidualGenerator.h */,
-				78C59348158720BB004401C5 /* TComRom.cpp */,
-				78C59349158720BB004401C5 /* TComRom.h */,
-				78C5934A158720BB004401C5 /* TComSampleAdaptiveOffset.cpp */,
-				78C5934B158720BB004401C5 /* TComSampleAdaptiveOffset.h */,
-				78C5934C158720BB004401C5 /* TComSlice.cpp */,
-				78C5934D158720BB004401C5 /* TComSlice.h */,
-				78C5934E158720BB004401C5 /* TComTrQuant.cpp */,
-				78C5934F158720BB004401C5 /* TComTrQuant.h */,
-				78C59350158720BB004401C5 /* TComWedgelet.cpp */,
-				78C59351158720BB004401C5 /* TComWedgelet.h */,
-				78C59352158720BB004401C5 /* TComWeightPrediction.cpp */,
-				78C59353158720BB004401C5 /* TComWeightPrediction.h */,
-				78C59354158720BB004401C5 /* TComYuv.cpp */,
-				78C59355158720BB004401C5 /* TComYuv.h */,
-				78C59356158720BB004401C5 /* TypeDef.h */,
-			);
-			path = TLibCommon;
-			sourceTree = "<group>";
-		};
-		78C59357158720BB004401C5 /* TLibDecoder */ = {
-			isa = PBXGroup;
-			children = (
-				78C59358158720BB004401C5 /* AnnexBread.cpp */,
-				78C59359158720BB004401C5 /* AnnexBread.h */,
-				78C5935A158720BB004401C5 /* NALread.cpp */,
-				78C5935B158720BB004401C5 /* NALread.h */,
-				78C5935C158720BB004401C5 /* SEIread.cpp */,
-				78C5935D158720BB004401C5 /* SEIread.h */,
-				78C5935E158720BB004401C5 /* TDecBinCoder.h */,
-				78C5935F158720BB004401C5 /* TDecBinCoderCABAC.cpp */,
-				78C59360158720BB004401C5 /* TDecBinCoderCABAC.h */,
-				78C59361158720BB004401C5 /* TDecCAVLC.cpp */,
-				78C59362158720BB004401C5 /* TDecCAVLC.h */,
-				78C59363158720BB004401C5 /* TDecCu.cpp */,
-				78C59364158720BB004401C5 /* TDecCu.h */,
-				78C59365158720BB004401C5 /* TDecEntropy.cpp */,
-				78C59366158720BB004401C5 /* TDecEntropy.h */,
-				78C59367158720BB004401C5 /* TDecGop.cpp */,
-				78C59368158720BB004401C5 /* TDecGop.h */,
-				78C59369158720BB004401C5 /* TDecSbac.cpp */,
-				78C5936A158720BB004401C5 /* TDecSbac.h */,
-				78C5936B158720BB004401C5 /* TDecSlice.cpp */,
-				78C5936C158720BB004401C5 /* TDecSlice.h */,
-				78C5936D158720BB004401C5 /* TDecTop.cpp */,
-				78C5936E158720BB004401C5 /* TDecTop.h */,
-			);
-			path = TLibDecoder;
-			sourceTree = "<group>";
-		};
-		78C5936F158720BB004401C5 /* TLibEncoder */ = {
-			isa = PBXGroup;
-			children = (
-				78C59370158720BB004401C5 /* AnnexBwrite.h */,
-				78C59371158720BB004401C5 /* NALwrite.cpp */,
-				78C59372158720BB004401C5 /* NALwrite.h */,
-				78C59373158720BB004401C5 /* SEIwrite.cpp */,
-				78C59374158720BB004401C5 /* SEIwrite.h */,
-				78C59375158720BB004401C5 /* TEncAdaptiveLoopFilter.cpp */,
-				78C59376158720BB004401C5 /* TEncAdaptiveLoopFilter.h */,
-				78C59377158720BB004401C5 /* TEncAnalyze.h */,
-				78C59378158720BB004401C5 /* TEncBinCoder.h */,
-				78C59379158720BB004401C5 /* TEncBinCoderCABAC.cpp */,
-				78C5937A158720BB004401C5 /* TEncBinCoderCABAC.h */,
-				78C5937B158720BB004401C5 /* TEncBinCoderCABACCounter.cpp */,
-				78C5937C158720BB004401C5 /* TEncBinCoderCABACCounter.h */,
-				78C5937D158720BB004401C5 /* TEncCavlc.cpp */,
-				78C5937E158720BB004401C5 /* TEncCavlc.h */,
-				78C5937F158720BB004401C5 /* TEncCfg.h */,
-				78C59380158720BB004401C5 /* TEncCu.cpp */,
-				78C59381158720BB004401C5 /* TEncCu.h */,
-				78C59382158720BB004401C5 /* TEncEntropy.cpp */,
-				78C59383158720BB004401C5 /* TEncEntropy.h */,
-				78C59384158720BB004401C5 /* TEncGOP.cpp */,
-				78C59385158720BB004401C5 /* TEncGOP.h */,
-				78C59386158720BB004401C5 /* TEncPic.cpp */,
-				78C59387158720BB004401C5 /* TEncPic.h */,
-				78C59388158720BB004401C5 /* TEncPreanalyzer.cpp */,
-				78C59389158720BB004401C5 /* TEncPreanalyzer.h */,
-				78C5938A158720BB004401C5 /* TEncSampleAdaptiveOffset.cpp */,
-				78C5938B158720BB004401C5 /* TEncSampleAdaptiveOffset.h */,
-				78C5938C158720BB004401C5 /* TEncSbac.cpp */,
-				78C5938D158720BB004401C5 /* TEncSbac.h */,
-				78C5938E158720BB004401C5 /* TEncSearch.cpp */,
-				78C5938F158720BB004401C5 /* TEncSearch.h */,
-				78C59390158720BB004401C5 /* TEncSlice.cpp */,
-				78C59391158720BB004401C5 /* TEncSlice.h */,
-				78C59392158720BB004401C5 /* TEncTop.cpp */,
-				78C59393158720BB004401C5 /* TEncTop.h */,
-				78C59394158720BB004401C5 /* WeightPredAnalysis.cpp */,
-				78C59395158720BB004401C5 /* WeightPredAnalysis.h */,
-			);
-			path = TLibEncoder;
-			sourceTree = "<group>";
-		};
-		78C59396158720BB004401C5 /* TLibExtractor */ = {
-			isa = PBXGroup;
-			children = (
-				78C59397158720BB004401C5 /* TExtrTop.cpp */,
-				78C59398158720BB004401C5 /* TExtrTop.h */,
-			);
-			path = TLibExtractor;
-			sourceTree = "<group>";
-		};
-		78C59399158720BB004401C5 /* TLibRenderer */ = {
-			isa = PBXGroup;
-			children = (
-				78C5939A158720BB004401C5 /* TRenFilter.cpp */,
-				78C5939B158720BB004401C5 /* TRenFilter.h */,
-				78C5939C158720BB004401C5 /* TRenImage.cpp */,
-				78C5939D158720BB004401C5 /* TRenImage.h */,
-				78C5939E158720BB004401C5 /* TRenImagePlane.cpp */,
-				78C5939F158720BB004401C5 /* TRenImagePlane.h */,
-				78C593A0158720BB004401C5 /* TRenInterpFilter.cpp */,
-				78C593A1158720BB004401C5 /* TRenInterpFilter.h */,
-				78C593A2158720BB004401C5 /* TRenModel.cpp */,
-				78C593A3158720BB004401C5 /* TRenModel.h */,
-				78C593A4158720BB004401C5 /* TRenModSetupStrParser.cpp */,
-				78C593A5158720BB004401C5 /* TRenModSetupStrParser.h */,
-				78C593A6158720BB004401C5 /* TRenSingleModel.cpp */,
-				78C593A7158720BB004401C5 /* TRenSingleModel.h */,
-				78C593A8158720BB004401C5 /* TRenTop.cpp */,
-				78C593A9158720BB004401C5 /* TRenTop.h */,
-			);
-			path = TLibRenderer;
-			sourceTree = "<group>";
-		};
-		78C593AA158720BB004401C5 /* TLibVideoIO */ = {
-			isa = PBXGroup;
-			children = (
-				78C593AB158720BB004401C5 /* TVideoIOYuv.cpp */,
-				78C593AC158720BB004401C5 /* TVideoIOYuv.h */,
-			);
-			path = TLibVideoIO;
 			sourceTree = "<group>";
 		};
@@ -1188,5 +1208,5 @@
 			attributes = {
 				BuildIndependentTargetsInParallel = YES;
-				LastUpgradeCheck = 0430;
+				LastUpgradeCheck = 0500;
 			};
 			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "HTM" */;
@@ -1225,30 +1245,29 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593B5158721A1004401C5 /* ContextModel.cpp in Sources */,
-				78C593B6158721A1004401C5 /* ContextModel3DBuffer.cpp in Sources */,
-				78C593B7158721A1004401C5 /* TComAdaptiveLoopFilter.cpp in Sources */,
-				78C593B8158721A1004401C5 /* TComBitStream.cpp in Sources */,
-				78C593B9158721A1004401C5 /* TComCABACTables.cpp in Sources */,
-				78C593BA158721A1004401C5 /* TComDataCU.cpp in Sources */,
-				78C593BB158721A1004401C5 /* TComDepthMapGenerator.cpp in Sources */,
-				78C593BC158721A1004401C5 /* TComInterpolationFilter.cpp in Sources */,
-				78C593BD158721A1004401C5 /* TComLoopFilter.cpp in Sources */,
-				78C593BE158721A1004401C5 /* TComMotionInfo.cpp in Sources */,
-				78C593BF158721A1004401C5 /* TComPattern.cpp in Sources */,
-				78C593C0158721A1004401C5 /* TComPic.cpp in Sources */,
-				78C593C1158721A1004401C5 /* TComPicSym.cpp in Sources */,
-				78C593C2158721A1004401C5 /* TComPicYuv.cpp in Sources */,
-				78C593C3158721A1004401C5 /* TComPicYuvMD5.cpp in Sources */,
-				78C593C4158721A1004401C5 /* TComPrediction.cpp in Sources */,
-				78C593C5158721A1004401C5 /* TComRdCost.cpp in Sources */,
-				78C593C6158721A1004401C5 /* TComRdCostWeightPrediction.cpp in Sources */,
-				78C593C7158721A1004401C5 /* TComResidualGenerator.cpp in Sources */,
-				78C593C8158721A1004401C5 /* TComRom.cpp in Sources */,
-				78C593C9158721A1004401C5 /* TComSampleAdaptiveOffset.cpp in Sources */,
-				78C593CA158721A1004401C5 /* TComSlice.cpp in Sources */,
-				78C593CB158721A1004401C5 /* TComTrQuant.cpp in Sources */,
-				78C593CC158721A1004401C5 /* TComWedgelet.cpp in Sources */,
-				78C593CD158721A1004401C5 /* TComWeightPrediction.cpp in Sources */,
-				78C593CE158721A1004401C5 /* TComYuv.cpp in Sources */,
+				7874639417D5DE070040CFC7 /* TComPrediction.cpp in Sources */,
+				7874639517D5DE070040CFC7 /* TComRdCost.cpp in Sources */,
+				7874639617D5DE070040CFC7 /* TComRdCostWeightPrediction.cpp in Sources */,
+				7874639717D5DE070040CFC7 /* TComRom.cpp in Sources */,
+				7874639817D5DE070040CFC7 /* TComSampleAdaptiveOffset.cpp in Sources */,
+				7874639917D5DE070040CFC7 /* TComSlice.cpp in Sources */,
+				7874639A17D5DE070040CFC7 /* TComTrQuant.cpp in Sources */,
+				7874639B17D5DE070040CFC7 /* TComWedgelet.cpp in Sources */,
+				7874639C17D5DE070040CFC7 /* TComWeightPrediction.cpp in Sources */,
+				7874639D17D5DE070040CFC7 /* TComYuv.cpp in Sources */,
+				7874639E17D5DE230040CFC7 /* TComMotionInfo.cpp in Sources */,
+				7874639F17D5DE230040CFC7 /* TComPattern.cpp in Sources */,
+				787463A017D5DE230040CFC7 /* TComPic.cpp in Sources */,
+				787463A117D5DE230040CFC7 /* TComPicSym.cpp in Sources */,
+				787463A217D5DE230040CFC7 /* TComPicYuv.cpp in Sources */,
+				787463A317D5DE230040CFC7 /* TComPicYuvMD5.cpp in Sources */,
+				787463A417D5DE400040CFC7 /* TComCABACTables.cpp in Sources */,
+				787463A517D5DE400040CFC7 /* TComDataCU.cpp in Sources */,
+				787463A617D5DE400040CFC7 /* TComInterpolationFilter.cpp in Sources */,
+				787463A717D5DE400040CFC7 /* TComLoopFilter.cpp in Sources */,
+				787463A817D5DE4B0040CFC7 /* TComBitStream.cpp in Sources */,
+				787463A917D5DE640040CFC7 /* ContextModel.cpp in Sources */,
+				787463AA17D5DE640040CFC7 /* ContextModel3DBuffer.cpp in Sources */,
+				787463AB17D5DE640040CFC7 /* SEI.cpp in Sources */,
+				787463B717D5DED40040CFC7 /* libmd5.c in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1258,15 +1277,16 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593D1158721BB004401C5 /* AnnexBread.cpp in Sources */,
-				78C593D2158721BB004401C5 /* NALread.cpp in Sources */,
-				78C593D3158721BB004401C5 /* SEIread.cpp in Sources */,
-				78C593D4158721BB004401C5 /* TDecBinCoderCABAC.cpp in Sources */,
-				78C593D5158721BB004401C5 /* TDecCAVLC.cpp in Sources */,
-				78C593D6158721BB004401C5 /* TDecCu.cpp in Sources */,
-				78C593D7158721BB004401C5 /* TDecEntropy.cpp in Sources */,
-				78C593D8158721BB004401C5 /* TDecGop.cpp in Sources */,
-				78C593D9158721BB004401C5 /* TDecSbac.cpp in Sources */,
-				78C593DA158721BB004401C5 /* TDecSlice.cpp in Sources */,
-				78C593DB158721BB004401C5 /* TDecTop.cpp in Sources */,
+				787463B817D5DEE80040CFC7 /* AnnexBread.cpp in Sources */,
+				787463B917D5DEE80040CFC7 /* NALread.cpp in Sources */,
+				787463BA17D5DEE80040CFC7 /* SEIread.cpp in Sources */,
+				787463BB17D5DEE80040CFC7 /* SyntaxElementParser.cpp in Sources */,
+				787463BC17D5DEE80040CFC7 /* TDecBinCoderCABAC.cpp in Sources */,
+				787463BD17D5DEE80040CFC7 /* TDecCAVLC.cpp in Sources */,
+				787463BE17D5DEE80040CFC7 /* TDecCu.cpp in Sources */,
+				787463BF17D5DEE80040CFC7 /* TDecEntropy.cpp in Sources */,
+				787463C017D5DEE80040CFC7 /* TDecGop.cpp in Sources */,
+				787463C117D5DEE80040CFC7 /* TDecSbac.cpp in Sources */,
+				787463C217D5DEE80040CFC7 /* TDecSlice.cpp in Sources */,
+				787463C317D5DEE80040CFC7 /* TDecTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1276,21 +1296,23 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593DC158721CE004401C5 /* NALwrite.cpp in Sources */,
-				78C593DD158721CE004401C5 /* SEIwrite.cpp in Sources */,
-				78C593DE158721CE004401C5 /* TEncAdaptiveLoopFilter.cpp in Sources */,
-				78C593DF158721CE004401C5 /* TEncBinCoderCABAC.cpp in Sources */,
-				78C593E0158721CE004401C5 /* TEncBinCoderCABACCounter.cpp in Sources */,
-				78C593E1158721CE004401C5 /* TEncCavlc.cpp in Sources */,
-				78C593E2158721CE004401C5 /* TEncCu.cpp in Sources */,
-				78C593E3158721CE004401C5 /* TEncEntropy.cpp in Sources */,
-				78C593E4158721CE004401C5 /* TEncGOP.cpp in Sources */,
-				78C593E5158721CE004401C5 /* TEncPic.cpp in Sources */,
-				78C593E6158721CE004401C5 /* TEncPreanalyzer.cpp in Sources */,
-				78C593E7158721CE004401C5 /* TEncSampleAdaptiveOffset.cpp in Sources */,
-				78C593E8158721CE004401C5 /* TEncSbac.cpp in Sources */,
-				78C593E9158721CE004401C5 /* TEncSearch.cpp in Sources */,
-				78C593EA158721CE004401C5 /* TEncSlice.cpp in Sources */,
-				78C593EB158721CE004401C5 /* TEncTop.cpp in Sources */,
-				78C593EC158721CE004401C5 /* WeightPredAnalysis.cpp in Sources */,
+				7874638117D5DDA60040CFC7 /* NALwrite.cpp in Sources */,
+				7874638217D5DDA60040CFC7 /* SEIwrite.cpp in Sources */,
+				7874638317D5DDA60040CFC7 /* SyntaxElementWriter.cpp in Sources */,
+				7874638417D5DDA60040CFC7 /* TEncAnalyze.cpp in Sources */,
+				7874638517D5DDA60040CFC7 /* TEncBinCoderCABAC.cpp in Sources */,
+				7874638617D5DDA60040CFC7 /* TEncBinCoderCABACCounter.cpp in Sources */,
+				7874638717D5DDA60040CFC7 /* TEncCavlc.cpp in Sources */,
+				7874638817D5DDA60040CFC7 /* TEncCu.cpp in Sources */,
+				7874638917D5DDA60040CFC7 /* TEncEntropy.cpp in Sources */,
+				7874638A17D5DDA60040CFC7 /* TEncGOP.cpp in Sources */,
+				7874638B17D5DDA60040CFC7 /* TEncPic.cpp in Sources */,
+				7874638C17D5DDA60040CFC7 /* TEncPreanalyzer.cpp in Sources */,
+				7874638D17D5DDA60040CFC7 /* TEncRateCtrl.cpp in Sources */,
+				7874638E17D5DDA60040CFC7 /* TEncSampleAdaptiveOffset.cpp in Sources */,
+				7874638F17D5DDA60040CFC7 /* TEncSbac.cpp in Sources */,
+				7874639017D5DDA60040CFC7 /* TEncSearch.cpp in Sources */,
+				7874639117D5DDA60040CFC7 /* TEncSlice.cpp in Sources */,
+				7874639217D5DDA60040CFC7 /* TEncTop.cpp in Sources */,
+				7874639317D5DDA60040CFC7 /* WeightPredAnalysis.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1300,5 +1322,5 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593F6158721E9004401C5 /* TVideoIOYuv.cpp in Sources */,
+				787463AC17D5DE8A0040CFC7 /* TVideoIOYuv.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1308,8 +1330,7 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593F7158721F1004401C5 /* encmain.cpp in Sources */,
-				78C593F8158721F1004401C5 /* TAppEncCfg.cpp in Sources */,
-				78C593F9158721F1004401C5 /* TAppEncTop.cpp in Sources */,
-				78C594121587228A004401C5 /* libmd5.c in Sources */,
+				7874637E17D5DD900040CFC7 /* encmain.cpp in Sources */,
+				7874637F17D5DD900040CFC7 /* TAppEncCfg.cpp in Sources */,
+				7874638017D5DD900040CFC7 /* TAppEncTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1319,8 +1340,7 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593FA158721F6004401C5 /* decmain.cpp in Sources */,
-				78C593FB158721F6004401C5 /* TAppDecCfg.cpp in Sources */,
-				78C593FC158721F6004401C5 /* TAppDecTop.cpp in Sources */,
-				78C5941F158722D4004401C5 /* libmd5.c in Sources */,
+				787463C417D5DEFB0040CFC7 /* decmain.cpp in Sources */,
+				787463C517D5DEFB0040CFC7 /* TAppDecCfg.cpp in Sources */,
+				787463C617D5DEFB0040CFC7 /* TAppDecTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1330,5 +1350,5 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593ED158721D7004401C5 /* TExtrTop.cpp in Sources */,
+				787463CD17D5DF220040CFC7 /* TExtrTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1338,7 +1358,7 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593FD158721FC004401C5 /* extrmain.cpp in Sources */,
-				78C593FE158721FC004401C5 /* TAppExtrCfg.cpp in Sources */,
-				78C593FF158721FC004401C5 /* TAppExtrTop.cpp in Sources */,
+				787463C717D5DF080040CFC7 /* extrmain.cpp in Sources */,
+				787463C817D5DF080040CFC7 /* TAppExtrCfg.cpp in Sources */,
+				787463C917D5DF080040CFC7 /* TAppExtrTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1348,12 +1368,12 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593EE158721E2004401C5 /* TRenFilter.cpp in Sources */,
-				78C593EF158721E2004401C5 /* TRenImage.cpp in Sources */,
-				78C593F0158721E2004401C5 /* TRenImagePlane.cpp in Sources */,
-				78C593F1158721E2004401C5 /* TRenInterpFilter.cpp in Sources */,
-				78C593F2158721E2004401C5 /* TRenModel.cpp in Sources */,
-				78C593F3158721E2004401C5 /* TRenModSetupStrParser.cpp in Sources */,
-				78C593F4158721E2004401C5 /* TRenSingleModel.cpp in Sources */,
-				78C593F5158721E2004401C5 /* TRenTop.cpp in Sources */,
+				787463AD17D5DE980040CFC7 /* TRenFilter.cpp in Sources */,
+				787463AE17D5DE980040CFC7 /* TRenImage.cpp in Sources */,
+				787463AF17D5DE980040CFC7 /* TRenImagePlane.cpp in Sources */,
+				787463B017D5DE980040CFC7 /* TRenInterpFilter.cpp in Sources */,
+				787463B117D5DE9D0040CFC7 /* TRenModel.cpp in Sources */,
+				787463B217D5DE9D0040CFC7 /* TRenModSetupStrParser.cpp in Sources */,
+				787463B317D5DE9D0040CFC7 /* TRenSingleModel.cpp in Sources */,
+				787463B417D5DE9D0040CFC7 /* TRenTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1363,7 +1383,7 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C5940015872201004401C5 /* RendererMain.cpp in Sources */,
-				78C5940115872201004401C5 /* TAppRendererCfg.cpp in Sources */,
-				78C5940215872201004401C5 /* TAppRendererTop.cpp in Sources */,
+				787463CA17D5DF0E0040CFC7 /* RendererMain.cpp in Sources */,
+				787463CB17D5DF0E0040CFC7 /* TAppRendererCfg.cpp in Sources */,
+				787463CC17D5DF0E0040CFC7 /* TAppRendererTop.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1373,6 +1393,6 @@
 			buildActionMask = 2147483647;
 			files = (
-				78C593CF158721AD004401C5 /* program_options_lite.cpp in Sources */,
-				78C593D0158721AD004401C5 /* TAppComCamPara.cpp in Sources */,
+				787463B517D5DEAF0040CFC7 /* program_options_lite.cpp in Sources */,
+				787463B617D5DEAF0040CFC7 /* TAppComCamPara.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1497,7 +1517,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_VERSION = com.apple.compilers.llvmgcc42;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
@@ -1512,7 +1530,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
 				GCC_OPTIMIZATION_LEVEL = s;
-				GCC_VERSION = com.apple.compilers.llvmgcc42;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
@@ -1527,4 +1543,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibCommon;
@@ -1535,4 +1552,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibCommon;
@@ -1543,4 +1561,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibDecoder;
@@ -1551,4 +1570,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibDecoder;
@@ -1559,4 +1579,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibEncoder;
@@ -1567,4 +1588,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibEncoder;
@@ -1575,4 +1597,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibVideoIO;
@@ -1583,4 +1606,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibVideoIO;
@@ -1591,4 +1615,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppEncoder;
@@ -1599,4 +1624,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppEncoder;
@@ -1607,4 +1633,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppDecoder;
@@ -1615,4 +1642,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppDecoder;
@@ -1623,4 +1651,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibExtractor;
@@ -1631,4 +1660,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibExtractor;
@@ -1639,4 +1669,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppExtractor;
@@ -1647,4 +1678,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppExtractor;
@@ -1655,4 +1687,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibRenderer;
@@ -1663,4 +1696,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TLibRenderer;
@@ -1671,4 +1705,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppRenderer;
@@ -1679,4 +1714,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/bin;
 				PRODUCT_NAME = TAppRenderer;
@@ -1687,4 +1723,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TAppCommon;
@@ -1695,4 +1732,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				INSTALL_PATH = /usr/local/lib;
 				PRODUCT_NAME = TAppCommon;
@@ -1703,4 +1741,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
@@ -1710,4 +1749,5 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
Index: /trunk/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- /trunk/source/App/TAppEncoder/TAppEncTop.cpp	(revision 757)
+++ /trunk/source/App/TAppEncoder/TAppEncTop.cpp	(revision 758)
@@ -76,4 +76,12 @@
 #endif
   
+#if CAM_HLS_F0136_F0045_F0082
+  vps.createCamPars(m_iNumberOfViews);
+#endif
+
+#if DLT_DIFF_CODING_IN_PPS
+  TComDLT& dlt = m_dlt;
+#endif
+
 #if H_MV
   Int maxTempLayer = -1; 
@@ -125,5 +133,8 @@
 #if H_3D
   xSetVPSExtension2        ( vps ); 
-  m_ivPicLists.setVPS      ( &vps ); 
+  m_ivPicLists.setVPS      ( &vps );
+#if DLT_DIFF_CODING_IN_PPS
+  xDeriveDltArray          ( vps, dlt );
+#endif
 #endif
 
@@ -218,4 +229,8 @@
   // H_MV
   m_cTEncTop.setVPS(&vps);
+
+#if DLT_DIFF_CODING_IN_PPS
+  m_cTEncTop.setDLT(&dlt);
+#endif
 
   m_cTEncTop.setProfile(m_profile);
@@ -781,4 +796,12 @@
 Void TAppEncTop::xInitLib(Bool isFieldCoding)
 {
+#if CAM_HLS_F0136_F0045_F0082
+  for ( Int viewIndex = 0; viewIndex < m_vps.getNumViews(); viewIndex++ )
+  {
+    m_vps.initCamParaVPS( viewIndex, true, m_cCameraData.getCamParsCodedPrecision(), 
+      m_cCameraData.getVaryingCameraParameters(), m_cCameraData.getCodedScale(), m_cCameraData.getCodedOffset() );
+  }
+#endif
+
 #if H_MV
   for(Int layer=0; layer<m_numberOfLayers; layer++)
@@ -1247,5 +1270,9 @@
 
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt)
+#else
 Void TAppEncTop::xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps)
+#endif
 {
   TComPicYuv*       pcDepthPicYuvOrg = new TComPicYuv;
@@ -1307,11 +1334,20 @@
   if( uiNumFrames == 0 || numBitsForValue(iNumDepthValues) == g_bitDepthY )
   {
+#if DLT_DIFF_CODING_IN_PPS
+    dlt->setUseDLTFlag(layer, false);
+#else
     // don't use DLT
     vps->setUseDLTFlag(layer, false);
+#endif
   }
   
   // assign LUT
+#if DLT_DIFF_CODING_IN_PPS
+  if( dlt->getUseDLTFlag(layer) )
+    dlt->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
+#else
   if( vps->getUseDLTFlag(layer) )
     vps->setDepthLUTs(layer, aiIdx2DepthValue, iNumDepthValues);
+#endif
   
   // free temporary memory
@@ -1967,4 +2003,5 @@
 #endif
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
     vps.setUseDLTFlag( layer , isDepth && m_useDLT );
     if( vps.getUseDLTFlag( layer ) )
@@ -1976,4 +2013,5 @@
 #endif
     }
+#endif
 #endif
 #endif
@@ -2011,4 +2049,35 @@
 }
 #endif
+
+#if DLT_DIFF_CODING_IN_PPS
+Void TAppEncTop::xDeriveDltArray( TComVPS& vps, TComDLT& dlt )
+{
+  Int  iNumDepthViews  = 0;
+  Bool bDltPresentFlag = false;
+
+  for ( Int layer = 0; layer <= vps.getMaxLayersMinus1(); layer++ )
+  {
+    Bool isDepth = ( vps.getDepthId( layer ) == 1 );
+
+    if ( isDepth )
+    {
+      iNumDepthViews++;
+    }
+
+    dlt.setUseDLTFlag( layer , isDepth && m_useDLT );
+    if( dlt.getUseDLTFlag( layer ) )
+    {
+      xAnalyzeInputBaseDepth(layer, max(m_iIntraPeriod[layer], 24), &vps, &dlt);
+      bDltPresentFlag = bDltPresentFlag || dlt.getUseDLTFlag(layer);
+#if H_3D_DELTA_DLT
+      dlt.setInterViewDltPredEnableFlag(layer, (dlt.getUseDLTFlag(layer) && (layer>1)));
+#endif
+    }
+  }
+
+  dlt.setDltPresentFlag( bDltPresentFlag );
+  dlt.setNumDepthViews ( iNumDepthViews  );
+}
+#endif
 #endif
 //! \}
Index: /trunk/source/App/TAppEncoder/TAppEncTop.h
===================================================================
--- /trunk/source/App/TAppEncoder/TAppEncTop.h	(revision 757)
+++ /trunk/source/App/TAppEncoder/TAppEncTop.h	(revision 758)
@@ -86,4 +86,8 @@
 #endif
 
+#if DLT_DIFF_CODING_IN_PPS
+  TComDLT                    m_dlt;                         ///< dlt
+#endif
+
   UInt m_essentialBytes;
   UInt m_totalBytes;
@@ -135,6 +139,13 @@
   Void xSetVPSExtension2( TComVPS& vps );
 #endif
+#if DLT_DIFF_CODING_IN_PPS
+  Void xDeriveDltArray( TComVPS& vps, TComDLT& dlt );
+#endif
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+  Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps, TComDLT* dlt);
+#else
   Void  xAnalyzeInputBaseDepth(UInt layer, UInt uiNumFrames, TComVPS* vps);
+#endif
 #endif
 public:
Index: /trunk/source/Lib/TLibCommon/TComPrediction.cpp
===================================================================
--- /trunk/source/Lib/TLibCommon/TComPrediction.cpp	(revision 757)
+++ /trunk/source/Lib/TLibCommon/TComPrediction.cpp	(revision 758)
@@ -506,6 +506,11 @@
     {
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+      segDC1 = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 ) + deltaDC1 );
+      segDC2 = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 ) + deltaDC2 );
+#else
       segDC1 = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 ) + deltaDC1 );
       segDC2 = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 ) + deltaDC2 );
+#endif
 #else
       segDC1 = ClipY( predDC1 + deltaDC1 );
Index: /trunk/source/Lib/TLibCommon/TComSlice.cpp
===================================================================
--- /trunk/source/Lib/TLibCommon/TComSlice.cpp	(revision 757)
+++ /trunk/source/Lib/TLibCommon/TComSlice.cpp	(revision 758)
@@ -782,5 +782,9 @@
 Void TComSlice::setCamparaSlice( Int** aaiScale, Int** aaiOffset )
 {  
+#if CAM_HLS_F0136_F0045_F0082
+  if( m_pcVPS->hasCamParInSliceHeader( m_viewIndex ) )
+#else
   if( m_pcSPS->hasCamParInSliceHeader() )
+#endif
   {    
     for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < m_viewIndex; uiBaseViewIndex++ )
@@ -1816,4 +1820,5 @@
     m_vpsDepthModesFlag [i] = false;
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
     m_bUseDLTFlag         [i] = false;
     
@@ -1832,4 +1837,5 @@
     }
 #endif
+#endif
 #if H_3D
     m_ivMvScalingFlag = true; 
@@ -1902,4 +1908,5 @@
     if (m_repFormat[ i ] != NULL )      delete m_repFormat[ i ];    
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
     if ( m_iDepthValue2Idx[i] != 0 ) 
     {
@@ -1914,9 +1921,14 @@
     }
 #endif
-  }
+#endif
+  }
+#endif
+#if CAM_HLS_F0136_F0045_F0082
+  deleteCamPars();
 #endif
 }
 
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
   Void TComVPS::setDepthLUTs(Int layerIdInVps, Int* idxToDepthValueTable, Int iNumDepthValues)
   {
@@ -1980,4 +1992,5 @@
   }
 #endif
+#endif
 
 #if H_MV
@@ -2066,4 +2079,95 @@
   return foundLayerIdinNuh;
 }
+#if CAM_HLS_F0136_F0045_F0082
+Void TComVPS::createCamPars(Int iNumViews)
+{
+  Int i = 0, j = 0;
+
+  m_bCamParPresent = new Bool[ iNumViews ];
+  m_bCamParInSliceHeader = new Bool[ iNumViews ];
+
+  m_aaaiCodedScale = new Int**[ iNumViews ];
+  m_aaaiCodedOffset = new Int**[ iNumViews ];
+  for ( i = 0; i < iNumViews ; i++ )
+  {
+    m_aaaiCodedScale[i] = new Int*[ 2 ];
+    m_aaaiCodedOffset[i] = new Int*[ 2 ];
+    for ( j = 0; j < 2; j++ )
+    {
+      m_aaaiCodedScale[i][j] = new Int[ MAX_NUM_LAYERS ];
+      m_aaaiCodedOffset[i][j] = new Int[ MAX_NUM_LAYERS ];
+      for ( Int k = 0; k < MAX_NUM_LAYERS; k++ )
+      {
+        m_aaaiCodedScale[i][j][k] = 0;
+        m_aaaiCodedOffset[i][j][k] = 0;
+      }
+    }
+  }
+}
+
+Void TComVPS::deleteCamPars()
+{
+  Int iNumViews = getNumViews();
+  Int i = 0, j = 0;
+
+  if ( m_bCamParPresent != NULL )
+  {
+    delete [] m_bCamParPresent;
+  }
+  if ( m_bCamParInSliceHeader != NULL )
+  {
+    delete [] m_bCamParInSliceHeader;
+  }
+
+  if ( m_aaaiCodedScale != NULL )
+  {
+    for ( i = 0; i < iNumViews ; i++ )
+    {
+      for ( j = 0; j < 2; j++ )
+      {
+        delete [] m_aaaiCodedScale[i][j];
+      }
+      delete [] m_aaaiCodedScale[i];
+    }
+    delete [] m_aaaiCodedScale;
+  }
+
+  if ( m_aaaiCodedOffset != NULL )
+  {
+    for ( i = 0; i < iNumViews ; i++ )
+    {
+      for ( j = 0; j < 2; j++ )
+      {
+        delete [] m_aaaiCodedOffset[i][j];
+      }
+      delete [] m_aaaiCodedOffset[i];
+    }
+    delete [] m_aaaiCodedOffset;
+  }
+}
+
+
+Void
+  TComVPS::initCamParaVPS( UInt uiViewIndex, Bool bCamParPresent, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset )
+{
+  AOT( uiViewIndex != 0 && !bCamParSlice && ( aaiScale == 0 || aaiOffset == 0 ) );  
+
+  m_uiCamParPrecision = ( ( uiViewIndex != 0 )? uiCamParPrecision : 0 );
+  m_bCamParPresent[ uiViewIndex ] = (( uiViewIndex != 0 )? bCamParPresent  : false );
+  m_bCamParInSliceHeader[ uiViewIndex ]  = ( (uiViewIndex != 0)? bCamParSlice  : false );
+
+  if( !m_bCamParInSliceHeader[ uiViewIndex ] )
+  {
+    for( UInt uiBaseViewIndex = 0; uiBaseViewIndex < uiViewIndex; uiBaseViewIndex++ )
+    {
+      m_aaaiCodedScale [ uiViewIndex ][ 0 ][ uiBaseViewIndex ] = aaiScale [ uiBaseViewIndex ][     uiViewIndex ];
+      m_aaaiCodedScale [ uiViewIndex ][ 1 ][ uiBaseViewIndex ] = aaiScale [     uiViewIndex ][ uiBaseViewIndex ];
+      m_aaaiCodedOffset[ uiViewIndex ][ 0 ][ uiBaseViewIndex ] = aaiOffset[ uiBaseViewIndex ][     uiViewIndex ];
+      m_aaaiCodedOffset[ uiViewIndex ][ 1 ][ uiBaseViewIndex ] = aaiOffset[     uiViewIndex ][ uiBaseViewIndex ];
+    }
+  }
+}
+#endif // CAM_HLS_F0136_F0045_F0082
+
 #endif // H_3D
 
@@ -2444,4 +2548,7 @@
 , m_ppsInferScalingListFlag(false)
 , m_ppsScalingListRefLayerId(0)
+#if DLT_DIFF_CODING_IN_PPS
+, m_pcDLT(NULL)
+#endif
 #endif
 {
@@ -2463,4 +2570,181 @@
   delete m_scalingList;
 }
+
+#if DLT_DIFF_CODING_IN_PPS
+TComDLT::TComDLT()
+: m_bDltPresentFlag(false)
+, m_iNumDepthViews(0)
+, m_uiDepthViewBitDepth(8)
+{
+  m_uiDepthViewBitDepth = g_bitDepthY; 
+
+  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
+  {
+    m_bUseDLTFlag                 [i] = false;
+    m_bInterViewDltPredEnableFlag [i] = false;
+
+    // allocate some memory and initialize with default mapping
+    m_iNumDepthmapValues[i] = ((1 << m_uiDepthViewBitDepth)-1)+1;
+    m_iBitsPerDepthValue[i] = numBitsForValue(m_iNumDepthmapValues[i]);
+
+    m_iDepthValue2Idx[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
+    m_iIdx2DepthValue[i]    = (Int*) xMalloc(Int, m_iNumDepthmapValues[i]);
+
+    //default mapping
+    for (Int d=0; d<m_iNumDepthmapValues[i]; d++)
+    {
+      m_iDepthValue2Idx[i][d] = d;
+      m_iIdx2DepthValue[i][d] = d;
+    }
+  }
+}
+
+TComDLT::~TComDLT()
+{
+  for( Int i = 0; i < MAX_NUM_LAYERS; i++ )
+  {
+    if ( m_iDepthValue2Idx[i] != NULL ) 
+    {
+      xFree( m_iDepthValue2Idx[i] );
+      m_iDepthValue2Idx[i] = NULL; 
+    }
+
+    if ( m_iIdx2DepthValue[i] != NULL ) 
+    {
+      xFree( m_iIdx2DepthValue[i] );
+      m_iIdx2DepthValue[i] = NULL; 
+    }
+  }
+}
+
+Void TComDLT::setDepthLUTs(Int layerIdInVps, Int* idxToDepthValueTable, Int iNumDepthValues)
+{
+  if( idxToDepthValueTable == NULL || iNumDepthValues == 0 ) // default mapping only
+    return;
+
+  // copy idx2DepthValue to internal array
+  memcpy(m_iIdx2DepthValue[layerIdInVps], idxToDepthValueTable, iNumDepthValues*sizeof(UInt));
+
+  UInt uiMaxDepthValue = ((1 << g_bitDepthY)-1);
+  for(Int p=0; p<=uiMaxDepthValue; p++)
+  {
+    Int iIdxDown    = 0;
+    Int iIdxUp      = iNumDepthValues-1;
+    Bool bFound     = false;
+
+    // iterate over indices to find lower closest depth
+    Int i = 1;
+    while(!bFound && i<iNumDepthValues)
+    {
+      if( m_iIdx2DepthValue[layerIdInVps][i] > p )
+      {
+        iIdxDown  = i-1;
+        bFound    = true;
+      }
+
+      i++;
+    }
+    // iterate over indices to find upper closest depth
+    i = iNumDepthValues-2;
+    bFound = false;
+    while(!bFound && i>=0)
+    {
+      if( m_iIdx2DepthValue[layerIdInVps][i] < p )
+      {
+        iIdxUp  = i+1;
+        bFound    = true;
+      }
+
+      i--;
+    }
+
+    // assert monotony
+    assert(iIdxDown<=iIdxUp);
+
+    // assign closer depth value/idx
+    if( abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxDown]) < abs(p-m_iIdx2DepthValue[layerIdInVps][iIdxUp]) )
+    {
+      m_iDepthValue2Idx[layerIdInVps][p] = iIdxDown;
+    }
+    else
+    {
+      m_iDepthValue2Idx[layerIdInVps][p] = iIdxUp;
+    }
+
+  }
+
+  // update DLT variables
+  m_iNumDepthmapValues[layerIdInVps] = iNumDepthValues;
+  m_iBitsPerDepthValue[layerIdInVps] = numBitsForValue(m_iNumDepthmapValues[layerIdInVps]);
+}
+
+#if H_3D_DELTA_DLT
+Void TComDLT::getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum )
+{
+  Bool abBM0[ 256 ];
+  Bool abBM1[ 256 ];
+  
+  memset( abBM0, 0, sizeof( abBM0 ));
+  memset( abBM1, 0, sizeof( abBM1 ));
+  
+  // convert reference DLT to bit string
+  for( Int i = 0; i < uiDLTInRefNum; i++ )
+  {
+    abBM0[ piDLTInRef[ i ] ] = true;
+  }
+  // convert internal DLT to bit string
+  for( Int i = 0; i < m_iNumDepthmapValues[ layerIdInVps ]; i++ )
+  {
+    abBM1[ m_iIdx2DepthValue[ layerIdInVps ][ i ] ] = true;
+  }
+  
+  *puiDeltaDLTOutNum = 0;
+  for( Int i = 0; i < 256; i++ )
+  {
+    if( abBM0[ i ] ^ abBM1[ i ] )
+    {
+      piDeltaDLTOut[ *puiDeltaDLTOutNum ] = i;
+      *puiDeltaDLTOutNum = *puiDeltaDLTOutNum + 1;
+    }
+  }
+}
+
+Void TComDLT::setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTIn, UInt uiDeltaDLTInNum )
+{
+  Bool abBM0[ 256 ];
+  Bool abBM1[ 256 ];
+  
+  memset( abBM0, 0, sizeof( abBM0 ));
+  memset( abBM1, 0, sizeof( abBM1 ));
+  
+  // convert reference DLT to bit string
+  for( Int i = 0; i < uiDLTInRefNum; i++ )
+  {
+    abBM0[ piDLTInRef[ i ] ] = true;
+  }
+  // convert delta DLT to bit string
+  for( Int i = 0; i < uiDeltaDLTInNum; i++ )
+  {
+    abBM1[ piDeltaDLTIn[ i ] ] = true;
+  }
+  
+  Int aiIdx2DepthValue[256];
+  UInt uiNumDepthValues = 0;
+  memset( aiIdx2DepthValue, 0, sizeof( aiIdx2DepthValue ));
+  
+  for( Int i = 0; i < 256; i++ )
+  {
+    if( abBM0[ i ] ^ abBM1[ i ] )
+    {
+      aiIdx2DepthValue[ uiNumDepthValues++ ] = i;
+    }
+  }
+  
+  // update internal tables
+  setDepthLUTs(layerIdInVps, aiIdx2DepthValue, uiNumDepthValues);
+}
+#endif
+
+#endif
 
 #if H_MV
@@ -2525,4 +2809,5 @@
 #endif
 #if H_3D
+#if !CAM_HLS_F0136_F0045_F0082
 Void
 TComSPS::initCamParaSPS( UInt uiViewIndex, UInt uiCamParPrecision, Bool bCamParSlice, Int** aaiScale, Int** aaiOffset )
@@ -2546,4 +2831,5 @@
   }
 }
+#endif
 #endif
 TComReferencePictureSet::TComReferencePictureSet()
@@ -3257,6 +3543,21 @@
   assert( m_depthToDisparityF != NULL ); 
 
+#if CAM_HLS_F0136_F0045_F0082
+  TComVPS* vps = getVPS(); 
+#else
   TComSPS* sps = getSPS(); 
-
+#endif
+
+#if CAM_HLS_F0136_F0045_F0082
+  Int log2Div = g_bitDepthY - 1 + vps->getCamParPrecision();
+  Int viewIndex = getViewIndex();
+
+  Bool camParaSH = vps->hasCamParInSliceHeader( viewIndex );
+
+  Int* codScale     = camParaSH ? m_aaiCodedScale [ 0 ] : vps->getCodedScale    ( viewIndex ); 
+  Int* codOffset    = camParaSH ? m_aaiCodedOffset[ 0 ] : vps->getCodedOffset   ( viewIndex ); 
+  Int* invCodScale  = camParaSH ? m_aaiCodedScale [ 1 ] : vps->getInvCodedScale ( viewIndex ); 
+  Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : vps->getInvCodedOffset( viewIndex ); 
+#else
   Int log2Div = g_bitDepthY - 1 + sps->getCamParPrecision();
 
@@ -3267,4 +3568,5 @@
   Int* invCodScale  = camParaSH ? m_aaiCodedScale [ 1 ] : sps->getInvCodedScale (); 
   Int* invCodOffset = camParaSH ? m_aaiCodedOffset[ 1 ] : sps->getInvCodedOffset(); 
+#endif
 
   for (Int i = 0; i <= ( getViewIndex() - 1); i++)
@@ -3707,5 +4009,5 @@
   // It is a requirement of bitstream conformance that bitstream partition with index j shall not include 
   // direct or indirect reference layers of any layers in bitstream partition i for any values of i and j 
-  // in the range of 0 to num_bitstream_partitions[ h ]  1, inclusive, such that i is less than j.
+  // in the range of 0 to num_bitstream_partitions[ h ] ?1, inclusive, such that i is less than j.
 
   for ( Int partJ = 0; partJ < getNumBitstreamPartitions( h ); partJ++ )
Index: /trunk/source/Lib/TLibCommon/TComSlice.h
===================================================================
--- /trunk/source/Lib/TLibCommon/TComSlice.h	(revision 757)
+++ /trunk/source/Lib/TLibCommon/TComSlice.h	(revision 758)
@@ -849,5 +849,7 @@
 #endif
   Bool        m_vpsDepthModesFlag        [MAX_NUM_LAYERS   ];
+
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
   Bool        m_bUseDLTFlag              [MAX_NUM_LAYERS   ];
   
@@ -857,5 +859,14 @@
   Int*        m_iIdx2DepthValue          [MAX_NUM_LAYERS   ];
 #endif
+#endif
+
 #if H_3D
+#if CAM_HLS_F0136_F0045_F0082
+  UInt        m_uiCamParPrecision;
+  Bool*       m_bCamParInSliceHeader;
+  Bool*       m_bCamParPresent;
+  Int         ***m_aaaiCodedScale ;
+  Int         ***m_aaaiCodedOffset;
+#endif
   Bool        m_ivMvScalingFlag; 
 #endif
@@ -1035,5 +1046,5 @@
 #endif
 
-  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; } 
+  Void    setProfileLevelTierIdx( Int outLayerSetIdx, Int val )            { m_profileLevelTierIdx[ outLayerSetIdx  = val ]; }
   Int     getProfileLevelTierIdx( Int outLayerSetIdx )                     { return m_profileLevelTierIdx[ outLayerSetIdx ]; } 
 #if H_MV_6_GEN_0153_28
@@ -1139,4 +1150,18 @@
   Void    setARPStepNum( Int layerIdInVps, UInt val )                      { m_uiARPStepNum[layerIdInVps]    = val;     }
 #endif
+#if CAM_HLS_F0136_F0045_F0082
+  Void createCamPars(Int iNumViews);
+  Void deleteCamPars();
+  Void initCamParaVPS      (  UInt uiViewIndex, Bool bCamParPresent = false, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
+  UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
+  Bool getCamParPresent      ( Int viewIndex )  { return m_bCamParPresent[viewIndex]; }
+  Bool hasCamParInSliceHeader( Int viewIndex )  { return m_bCamParInSliceHeader[viewIndex]; }
+  Void setHasCamParInSliceHeader( Int viewIndex, Bool b )  { m_bCamParInSliceHeader[viewIndex] = b; }
+  Int* getCodedScale         ( Int viewIndex )  { return m_aaaiCodedScale [viewIndex][0]; }
+  Int* getCodedOffset        ( Int viewIndex )  { return m_aaaiCodedOffset[viewIndex][0]; }
+  Int* getInvCodedScale      ( Int viewIndex )  { return m_aaaiCodedScale [viewIndex][1]; }
+  Int* getInvCodedOffset     ( Int viewIndex )  { return m_aaaiCodedOffset[viewIndex][1]; }
+#endif
+
 #if H_3D_IV_MERGE
   Void    setIvMvPredFlag     ( Int layerIdInVps, Bool val )  { m_ivMvPredFlag[ layerIdInVps ] = val; }
@@ -1157,5 +1182,7 @@
   Void    setVpsDepthModesFlag( Int layerIdInVps, Bool val )               { m_vpsDepthModesFlag[ layerIdInVps ] = val; }
   Bool    getVpsDepthModesFlag( Int layerIdInVps )                         { return m_vpsDepthModesFlag[ layerIdInVps ]; }
+
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
   Bool    getUseDLTFlag      ( Int layerIdInVps )                         { return m_bUseDLTFlag[ layerIdInVps ]; }
   Void    setUseDLTFlag      ( Int layerIdInVps, Bool b ) { m_bUseDLTFlag[ layerIdInVps ]  = b;          }
@@ -1167,4 +1194,5 @@
   Void    setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );
 #endif
+#endif
 
   Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
@@ -1181,4 +1209,52 @@
 #endif
 };
+
+#if DLT_DIFF_CODING_IN_PPS
+class TComDLT
+{
+private:
+  Bool        m_bDltPresentFlag;
+  Bool        m_bUseDLTFlag              [ MAX_NUM_LAYERS ];
+  Bool        m_bInterViewDltPredEnableFlag[ MAX_NUM_LAYERS ];
+
+  Int         m_iBitsPerDepthValue       [ MAX_NUM_LAYERS ];
+  Int         m_iNumDepthmapValues       [ MAX_NUM_LAYERS ];
+  Int*        m_iDepthValue2Idx          [ MAX_NUM_LAYERS ];
+  Int*        m_iIdx2DepthValue          [ MAX_NUM_LAYERS ];
+
+  Int         m_iNumDepthViews;
+  UInt        m_uiDepthViewBitDepth;
+
+public:
+  TComDLT();
+  ~TComDLT(); 
+
+  Bool    getDltPresentFlag  ()                           { return m_bDltPresentFlag; }
+  Void    setDltPresentFlag  ( Bool b )                   { m_bDltPresentFlag = b;    }
+
+  Bool    getUseDLTFlag      ( Int layerIdInVps )         { return m_bUseDLTFlag[ layerIdInVps ]; }
+  Void    setUseDLTFlag      ( Int layerIdInVps, Bool b ) { m_bUseDLTFlag[ layerIdInVps ]  = b;   }
+  
+  Bool    getInterViewDltPredEnableFlag( Int layerIdInVps )         { return m_bInterViewDltPredEnableFlag[ layerIdInVps ]; }
+  Void    setInterViewDltPredEnableFlag( Int layerIdInVps, Bool b ) { m_bInterViewDltPredEnableFlag[ layerIdInVps ] = b;    }
+
+  Void    setNumDepthViews   ( Int n )                    { m_iNumDepthViews = n; }
+  Int     getNumDepthViews   ()                           { return m_iNumDepthViews; }
+
+  Void    setDepthViewBitDepth( UInt n )                  { m_uiDepthViewBitDepth = n; }
+  UInt    getDepthViewBitDepth()                          { return m_uiDepthViewBitDepth; }
+
+  Int     getBitsPerDepthValue( Int layerIdInVps )        { return getUseDLTFlag(layerIdInVps)?m_iBitsPerDepthValue[layerIdInVps]:g_bitDepthY; }
+  Int     getNumDepthValues( Int layerIdInVps )           { return getUseDLTFlag(layerIdInVps)?m_iNumDepthmapValues[layerIdInVps]:((1 << g_bitDepthY)-1); }
+  Int     depthValue2idx( Int layerIdInVps, Pel value )   { return getUseDLTFlag(layerIdInVps)?m_iDepthValue2Idx[layerIdInVps][value]:value; }
+  Pel     idx2DepthValue( Int layerIdInVps, UInt uiIdx )  { return getUseDLTFlag(layerIdInVps)?m_iIdx2DepthValue[layerIdInVps][uiIdx]:uiIdx; }
+  Void    setDepthLUTs( Int layerIdInVps, Int* idx2DepthValue = NULL, Int iNumDepthValues = 0 );
+#if H_3D_DELTA_DLT
+  Int*    idx2DepthValue( Int layerIdInVps )  { return m_iIdx2DepthValue[layerIdInVps]; }
+  Void    getDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTOut, UInt *puiDeltaDLTOutNum );
+  Void    setDeltaDLT( Int layerIdInVps, Int* piDLTInRef, UInt uiDLTInRefNum, Int* piDeltaDLTIn, UInt uiDeltaDLTInNum );
+#endif
+};
+#endif
 
 class Window
@@ -1725,4 +1801,5 @@
 #endif
 #if H_3D
+#if !CAM_HLS_F0136_F0045_F0082
   Void initCamParaSPS      (  UInt uiViewIndex, UInt uiCamParPrecision = 0, Bool bCamParSlice = false, Int** aaiScale = 0, Int** aaiOffset = 0 );
   UInt getCamParPrecision    ()  { return m_uiCamParPrecision; }
@@ -1735,4 +1812,5 @@
   Int* getInvCodedScale      ()  { return m_aaiCodedScale [1]; }
   Int* getInvCodedOffset     ()  { return m_aaiCodedOffset[1]; }
+#endif
 #endif
 #if H_MV
@@ -1840,4 +1918,9 @@
   Int  m_ppsScalingListRefLayerId;
 #endif
+
+#if DLT_DIFF_CODING_IN_PPS
+  TComDLT*  m_pcDLT; 
+#endif
+
 public:
   TComPPS();
@@ -1864,4 +1947,9 @@
   Void      setMinCuDQPSize     ( UInt u ) { m_uiMinCuDQPSize = u;    }
   UInt      getMinCuDQPSize     ()         { return m_uiMinCuDQPSize; }
+
+#if DLT_DIFF_CODING_IN_PPS
+  Void      setDLT              ( TComDLT* pcDLT ) { m_pcDLT = pcDLT; }
+  TComDLT*  getDLT              ()                 { return m_pcDLT; }
+#endif
 
   Void      setChromaCbQpOffset( Int i ) { m_chromaCbQpOffset = i;    }
Index: /trunk/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- /trunk/source/Lib/TLibCommon/TypeDef.h	(revision 757)
+++ /trunk/source/Lib/TLibCommon/TypeDef.h	(revision 758)
@@ -175,4 +175,9 @@
 #endif
 
+#define CAM_HLS_F0136_F0045_F0082         1   // JCT3V-F0136/F0045: view order index based camera parameter signaling 
+                                              // JCT3V-F0082: the cp_in_slice_segment_layer_flag to be view specific and used as a condition of the presence of slice header level camera parameters
+#define CAM_HLS_F0044                     1   // JCT3V-F0044: move camera parameter from slice header extension to slice header
+
+
 // Rate Control
 #define KWU_FIX_URQ                       1
@@ -215,4 +220,14 @@
 #define H_3D_DIM_SDC                      1   // Simplified Depth Coding method
 #define H_3D_DIM_DLT                      1   // Depth Lookup Table
+
+#if H_3D_DIM_DLT
+#define DLT_DIFF_CODING_IN_PPS            1   // moving DLT syntax elements from VPS to PPS and differential coding of DLT values
+                                              // JCT3V-F0131, JCT3V-F0139
+#if DLT_DIFF_CODING_IN_PPS
+#define Log2( n ) ( log((double)n) / log(2.0) )
+#endif
+#define H_3D_DELTA_DLT                    1
+#endif
+
 #define H_3D_DIM_ENC                      1   // Depth Intra encoder optimizations, includes:
                                               // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
@@ -262,5 +277,5 @@
 #define H_MV_FIX_SKIP_PICTURES                  1  // Fix related to skipping pictures. 
 #define H_MV_6_HRD_O0164_15                     1  // (HRD/O0164/Multilayer HRD) #15 Decision: Adopt, modified as follows: It was suggested to constrain the stalling based on the relative cpb removal times, which must be in decoding order. The "du_based_bpb_sync_flag" is not needed, in view of this. SEI in the highest layer of the layer set or (inclusive "or") VPS VUI is used to carry the parameters (at encoder discretion). SEI in higher layer and SEI in VUI do not need to repeat information available in some lower layer. Shall be after APS SEI and buffering period SEI and before all other SEI of all layers except other HRD related SEI.
-#define H_MV_6_HRD_O0217_13                     1  // (HRD/O0217/Sub-DPB based DPB operations) #13 Decision: Adopt  Specify a separate DPB capacity for each layer  no sharing of capacity across layers  each layer has its own parameters (max pictures, max latency, max reordering). This proposal would specify distinct parameters for each "output layer set" and to change the definition of an operation point to be specific to an output layer set instead of a 'layer set". Decision: Adopted this aspect as well.
+#define H_MV_6_HRD_O0217_13                     1  // (HRD/O0217/Sub-DPB based DPB operations) #13 Decision: Adopt ?Specify a separate DPB capacity for each layer ?no sharing of capacity across layers ?each layer has its own parameters (max pictures, max latency, max reordering). This proposal would specify distinct parameters for each "output layer set" and to change the definition of an operation point to be specific to an output layer set instead of a 'layer set". Decision: Adopted this aspect as well.
 #define H_MV_6_SHVC_O0098_36                    1  // (SHVC/O0098/Scaled ref layer offset) #36 Modify signalling of scaled reference layer offsets to allow signalling of any lower layer, rather than just a direct reference layer, in order to enable alignment of auxiliary pictures. In further JCT-VC and JCT-3V discussion, it was also agreed to use the same offset signalling for MV-HEVC as well as SHVC
 #define H_MV_6_GEN_0153_28                      1  //(Gen/O0153/output highest layer) #28 Add a flag in the VPS to indicate if startup process should output the highest available layer if the target output layer is not available.
@@ -291,5 +306,5 @@
 #define H_MV_6_PS_O0096_21                      1  // (PS/O0096/direct_dependency_type gating flag) #21 Add a gating flag in VPS extension to condition the presence of direct dependency type, with a default type signalled, from JCTVC-O0096 
 #define H_MV_6_PS_O0109_22                      1  // (PS/O0109/view_id_len) #22 Modify the VPS extension syntax and semantics to replace view_id_len_minus1 with view_id_len, always signal that syntax element, add a constraint that (1<<view_id_len) >= NumViews, and modify view_id_val semantics to infer value of 0 when not present, from discussion of JCTVC-O0109 
-#define H_MV_6_PS_O0109_23                      1  // (PS/O0109/profile_ref_minus1 constraint) #23 Modify the semantics of profile_ref_minus1[ i ] to replace shall be less than i with shall be less than or equal to i, from discussion of JCTVC-O0109 
+#define H_MV_6_PS_O0109_23                      1  // (PS/O0109/profile_ref_minus1 constraint) #23 Modify the semantics of profile_ref_minus1[ i ] to replace shall be less than i?with shall be less than or equal to i? from discussion of JCTVC-O0109 
 #define H_MV_6_PS_O0109_24                      1  // (PS/O0109/vps_vui_present_flag move) #24 Move the vps_vui_present_flag to precede vps_vui_offset, and make vps_vui_offset conditional on that flag, from JCTVC-O0109
 /////////////////////////////////////////////////////////////////////////////////////////
Index: /trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 758)
@@ -215,5 +215,9 @@
 }
 
+#if DLT_DIFF_CODING_IN_PPS
+Void TDecCavlc::parsePPS(TComPPS* pcPPS, TComVPS* pcVPS )
+#else
 Void TDecCavlc::parsePPS(TComPPS* pcPPS)
+#endif
 {
 #if ENC_DEC_TRACE  
@@ -364,10 +368,166 @@
   if (uiCode)
   {
-    while ( xMoreRbspData() )
-    {
-      READ_FLAG( uiCode, "pps_extension_data_flag");
-    }
-  }
-}
+#if DLT_DIFF_CODING_IN_PPS
+    parsePPSExtension( pcPPS, pcVPS );
+    READ_FLAG( uiCode, "pps_extension2_flag");
+    if ( uiCode )
+    {
+#endif
+      while ( xMoreRbspData() )
+      {
+        READ_FLAG( uiCode, "pps_extension_data_flag");
+      }
+#if DLT_DIFF_CODING_IN_PPS
+    }
+#endif
+  }
+}
+
+#if DLT_DIFF_CODING_IN_PPS
+Void TDecCavlc::parsePPSExtension( TComPPS* pcPPS, TComVPS* pcVPS )
+{
+  UInt uiCode = 0; 
+  TComDLT* pcDLT = new TComDLT;
+
+  READ_FLAG(uiCode, "dlt_present_flag");
+  pcDLT->setDltPresentFlag( (uiCode == 1) ? true : false );
+
+  if ( pcDLT->getDltPresentFlag() )
+  {
+    READ_CODE(6, uiCode, "pps_depth_layers_minus1");
+    pcDLT->setNumDepthViews( uiCode );
+
+    READ_CODE(4, uiCode, "pps_bit_depth_for_depth_views_minus8");
+    pcDLT->setDepthViewBitDepth( (uiCode+8) );
+
+    for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
+    {
+      if ( i != 0 )
+      {
+        if( pcVPS->getDepthId( i ) == 1 ) 
+        {
+          READ_FLAG(uiCode, "dlt_flag[i]");
+          pcDLT->setUseDLTFlag(i, (uiCode == 1) ? true : false);
+
+          if ( pcDLT->getUseDLTFlag( i ) )
+          {
+            Bool bDltBitMapRepFlag    = false;
+            UInt uiMaxDiff            = 0xffffffff;
+            UInt uiMinDiff            = 0;
+            UInt uiCodeLength         = 0;
+
+            READ_FLAG(uiCode, "inter_view_dlt_pred_enable_flag[ i ]"); 
+            pcDLT->setInterViewDltPredEnableFlag( i, (uiCode == 1) ? true : false );
+
+            if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )
+            {
+              READ_FLAG(uiCode, "dlt_bit_map_rep_flag[ layerId ]");
+              bDltBitMapRepFlag = (uiCode == 1) ? true : false; 
+            }
+            else
+            {
+              bDltBitMapRepFlag = false;
+            }
+            
+            UInt uiNumDepthValues = 0;
+            Int  aiIdx2DepthValue[256];
+
+            // Bit map
+            if ( bDltBitMapRepFlag )
+            {
+              for (UInt d=0; d<256; d++)
+              {
+                READ_FLAG(uiCode, "dlt_bit_map_flag[ layerId ][ j ]");
+                if (uiCode == 1)
+                {
+                  aiIdx2DepthValue[uiNumDepthValues] = d;
+                  uiNumDepthValues++;
+                }
+              }
+            }
+            // Diff Coding
+            else
+            {
+              READ_CODE(8, uiNumDepthValues, "num_depth_values_in_dlt[i]");   // num_entry
+
+#if !H_3D_DELTA_DLT
+              if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )       // Single-view DLT Diff Coding
+#endif
+              {
+                // The condition if( pcVPS->getNumDepthValues(i) > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component. 
+
+                if (uiNumDepthValues > 1)
+                {
+                  READ_CODE(8, uiCode, "max_diff[ layerId ]"); 
+                  uiMaxDiff = uiCode;
+                }
+                else
+                {
+                  uiMaxDiff = 0;           // when there is only one value in DLT
+                }
+
+                if (uiNumDepthValues > 2)
+                {
+                  uiCodeLength = (UInt) ceil(Log2(uiMaxDiff + 1));
+                  READ_CODE(uiCodeLength, uiCode, "min_diff_minus1[ layerId ]");
+                  uiMinDiff = uiCode + 1;
+                }
+                else
+                {
+                  uiMinDiff = uiMaxDiff;   // when there are only one or two values in DLT
+                }
+
+                READ_CODE(8, uiCode, "dlt_depth_value0[layerId]");   // entry0
+                aiIdx2DepthValue[0] = uiCode;
+
+                if (uiMaxDiff == uiMinDiff)
+                {
+                  for (UInt d=1; d<uiNumDepthValues; d++)
+                  {
+                    aiIdx2DepthValue[d] = aiIdx2DepthValue[d-1] + uiMinDiff + 0;
+                  }
+                }
+                else
+                {
+                  uiCodeLength = (UInt) ceil(Log2(uiMaxDiff - uiMinDiff + 1));
+                  for (UInt d=1; d<uiNumDepthValues; d++)
+                  {
+                    READ_CODE(uiCodeLength, uiCode, "dlt_depth_value_diff_minus_min[ layerId ][ j ]");
+                    aiIdx2DepthValue[d] = aiIdx2DepthValue[d-1] + uiMinDiff + uiCode;
+                  }
+                }
+
+              }
+            }
+            
+#if H_3D_DELTA_DLT
+            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
+            {
+              // interpret decoded values as delta DLT
+              AOF( pcVPS->getDepthId( 1 ) == 1 );
+              AOF( i > 1 );
+              // assumes ref layer id to be 1
+              Int* piRefDLT = pcDLT->idx2DepthValue( 1 );
+              UInt uiRefNum = pcDLT->getNumDepthValues( 1 );
+              pcDLT->setDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue, uiNumDepthValues);
+            }
+            else
+            {
+              // store final DLT
+              pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
+            }
+#else
+            // store final DLT
+            pcDLT->setDepthLUTs(i, aiIdx2DepthValue, uiNumDepthValues);
+#endif
+          }
+        }
+      }
+    }
+  }
+
+  pcPPS->setDLT( pcDLT );
+}
+#endif
 
 Void  TDecCavlc::parseVUI(TComVUI* pcVUI, TComSPS *pcSPS)
@@ -889,4 +1049,5 @@
 #endif
 
+#if !CAM_HLS_F0136_F0045_F0082
   UInt uiCamParPrecision = 0; 
   Bool bCamParSlice      = false; 
@@ -908,4 +1069,5 @@
   }
   pcSPS->initCamParaSPS( viewIndex, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset ); 
+#endif
 }
 #endif
@@ -1019,4 +1181,7 @@
 #if H_3D
       m_pcBitstream->readOutTrailingBits();
+#if CAM_HLS_F0136_F0045_F0082
+      pcVPS->createCamPars(pcVPS->getNumViews());
+#endif
       parseVPSExtension2( pcVPS );   
       READ_FLAG( uiCode,  "vps_extension3_flag" );
@@ -1738,4 +1903,5 @@
         //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false ); 
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
         if( pcVPS->getVpsDepthModesFlag( i ) )
         {
@@ -1763,4 +1929,5 @@
         }
 #endif
+#endif
 #if H_3D_INTER_SDC
             READ_FLAG( uiCode, "depth_inter_SDC_flag" );              pcVPS->setInterSDCFlag( i, uiCode ? true : false );
@@ -1769,4 +1936,31 @@
     }
   }
+#if CAM_HLS_F0136_F0045_F0082
+  UInt uiCamParPrecision = 0; 
+  Bool bCamParSlice      = false; 
+  Bool bCamParPresentFlag = false;
+
+  READ_UVLC( uiCamParPrecision, "cp_precision" );
+  for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
+  {
+    READ_FLAG( uiCode, "cp_present_flag[i]" );                  bCamParPresentFlag = ( uiCode == 1);
+    if ( bCamParPresentFlag )
+    {
+      READ_FLAG( uiCode, "cp_in_slice_segment_header_flag[i]" );          bCamParSlice = ( uiCode == 1);
+      if ( !bCamParSlice )
+      {
+        for( UInt uiBaseIndex = 0; uiBaseIndex < viewIndex; uiBaseIndex++ )
+        {
+          Int iCode; 
+          READ_SVLC( iCode, "vps_cp_scale" );                m_aaiTempScale  [ uiBaseIndex ][ viewIndex ]   = iCode;
+          READ_SVLC( iCode, "vps_cp_off" );                  m_aaiTempOffset [ uiBaseIndex ][ viewIndex ]   = iCode;
+          READ_SVLC( iCode, "vps_cp_inv_scale_plus_scale" ); m_aaiTempScale  [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ viewIndex ];
+          READ_SVLC( iCode, "vps_cp_inv_off_plus_off" );     m_aaiTempOffset [ viewIndex   ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ viewIndex ];
+        }
+      }
+      pcVPS->initCamParaVPS( viewIndex, bCamParPresentFlag, uiCamParPrecision, bCamParSlice, m_aaiTempScale, m_aaiTempOffset ); 
+    }
+  }
+#endif
   READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 
 }
@@ -2495,9 +2689,33 @@
   }
 
+#if CAM_HLS_F0044
+#if CAM_HLS_F0136_F0045_F0082
+  if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() )  && !rpcSlice->getIsDepth() )
+#else
+  if( rpcSlice->getSPS()->hasCamParInSliceHeader() )
+#endif
+  {
+    UInt uiViewIndex = rpcSlice->getViewIndex();
+    for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )
+    {
+      READ_SVLC( iCode, "cp_scale" );                m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ] = iCode;
+      READ_SVLC( iCode, "cp_off" );                  m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ] = iCode;
+      READ_SVLC( iCode, "cp_inv_scale_plus_scale" ); m_aaiTempScale [ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempScale [ uiBaseIndex ][ uiViewIndex ];
+      READ_SVLC( iCode, "cp_inv_off_plus_off" );     m_aaiTempOffset[ uiViewIndex ][ uiBaseIndex ] = iCode - m_aaiTempOffset[ uiBaseIndex ][ uiViewIndex ];
+    }
+    rpcSlice->setCamparaSlice( m_aaiTempScale, m_aaiTempOffset );
+  }
+
+#endif
+
   if(pps->getSliceHeaderExtensionPresentFlag())
   {
     READ_UVLC(uiCode,"slice_header_extension_length");
-#if H_3D
+#if H_3D && !CAM_HLS_F0044
+#if CAM_HLS_F0136_F0045_F0082
+    if( rpcSlice->getVPS()->hasCamParInSliceHeader( rpcSlice->getViewIndex() )  && !rpcSlice->getIsDepth() )
+#else
     if( rpcSlice->getSPS()->hasCamParInSliceHeader() )
+#endif
     {
       UInt uiViewIndex = rpcSlice->getViewIndex();
Index: /trunk/source/Lib/TLibDecoder/TDecCAVLC.h
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 758)
@@ -105,5 +105,12 @@
   Void  parseSPS            ( TComSPS* pcSPS );
 #endif
+
+#if H_3D && DLT_DIFF_CODING_IN_PPS
+  Void  parsePPS            ( TComPPS* pcPPS, TComVPS* pcVPS );
+  Void  parsePPSExtension   ( TComPPS* pcPPS, TComVPS* pcVPS );
+#else
   Void  parsePPS            ( TComPPS* pcPPS);
+#endif
+
   Void  parseVUI            ( TComVUI* pcVUI, TComSPS* pcSPS );
   Void  parseSEI            ( SEIMessages& );
Index: /trunk/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecCu.cpp	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecCu.cpp	(revision 758)
@@ -781,7 +781,15 @@
     {
 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
-        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#if DLT_DIFF_CODING_IN_PPS
+      if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#else
+      if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#endif
         {
-            pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#if DLT_DIFF_CODING_IN_PPS
+          pReco    [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#else
+          pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#endif
         }
         else
@@ -1000,8 +1008,14 @@
   {
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+    Pel   pPredIdx    = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
+    Pel   pResiIdx    = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
+    Pel   pRecoValue  = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );
+#else
     Pel   pPredIdx    = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
     Pel   pResiIdx    = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
     Pel   pRecoValue  = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );
-    
+#endif
+
     apDCResiValues[uiSegment]  = pRecoValue - apDCPredValues[uiSegment];
 #else
Index: /trunk/source/Lib/TLibDecoder/TDecEntropy.h
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecEntropy.h	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecEntropy.h	(revision 758)
@@ -71,5 +71,9 @@
   virtual Void  parseSPS                  ( TComSPS* pcSPS )                                      = 0;
 #endif
+#if DLT_DIFF_CODING_IN_PPS
+  virtual Void  parsePPS                  ( TComPPS* pcPPS, TComVPS* pcVPS )                      = 0;
+#else
   virtual Void  parsePPS                  ( TComPPS* pcPPS )                                      = 0;
+#endif
 
   virtual Void parseSliceHeader          ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager)       = 0;
@@ -148,5 +152,9 @@
   Void    decodeSPS                   ( TComSPS* pcSPS     )    { m_pcEntropyDecoderIf->parseSPS(pcSPS);                    }
 #endif
+#if DLT_DIFF_CODING_IN_PPS
+  Void    decodePPS                   ( TComPPS* pcPPS, TComVPS* pcVPS )    { m_pcEntropyDecoderIf->parsePPS(pcPPS, pcVPS);                    }
+#else
   Void    decodePPS                   ( TComPPS* pcPPS )    { m_pcEntropyDecoderIf->parsePPS(pcPPS);                    }
+#endif
   Void    decodeSliceHeader           ( TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager)  { m_pcEntropyDecoderIf->parseSliceHeader(rpcSlice, parameterSetManager);         }
 
Index: /trunk/source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 758)
@@ -568,5 +568,9 @@
   
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+  UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
+#else
   UInt uiMaxResidualBits = pcCU->getSlice()->getVPS()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
+#endif
 #else
   UInt uiMaxResidualBits = g_bitDepthY;
@@ -592,5 +596,9 @@
     UInt uiCount = 0;
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+    UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
+#else
     UInt uiNumDepthValues = pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
+#endif
 #else
     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
Index: /trunk/source/Lib/TLibDecoder/TDecSbac.h
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecSbac.h	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecSbac.h	(revision 758)
@@ -81,5 +81,9 @@
   Void  parseSPS                  ( TComSPS* /*pcSPS*/ ) {}
 #endif
+#if DLT_DIFF_CODING_IN_PPS
+  Void  parsePPS                  ( TComPPS* /*pcPPS*/, TComVPS* /*pcVPS*/ ) {}
+#else
   Void  parsePPS                  ( TComPPS* /*pcPPS*/ ) {}
+#endif
 
   Void  parseSliceHeader          ( TComSlice*& /*rpcSlice*/, ParameterSetManagerDecoder* /*parameterSetManager*/) {}
Index: /trunk/source/Lib/TLibDecoder/TDecTop.cpp
===================================================================
--- /trunk/source/Lib/TLibDecoder/TDecTop.cpp	(revision 757)
+++ /trunk/source/Lib/TLibDecoder/TDecTop.cpp	(revision 758)
@@ -228,4 +228,16 @@
     m_uiMaxViewIndex                     = std::max( m_uiMaxViewIndex, uiViewIndex );
     m_aiViewId[ uiViewIndex ]            = pcSlice->getViewId();
+#if CAM_HLS_F0136_F0045_F0082
+    if( uiViewIndex == 1 )
+    {
+      m_uiCamParsCodedPrecision       = pcSlice->getVPS()->getCamParPrecision     ();
+      m_bCamParsVaryOverTime          = pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex );
+    }
+    else if( uiViewIndex > 1 )
+    {
+      AOF( m_uiCamParsCodedPrecision == pcSlice->getVPS()->getCamParPrecision     () );
+      AOF( m_bCamParsVaryOverTime    == pcSlice->getVPS()->hasCamParInSliceHeader ( uiViewIndex ) );
+    }
+#else
     if( uiViewIndex == 1 )
     {
@@ -238,4 +250,5 @@
       AOF( m_bCamParsVaryOverTime    == pcSlice->getSPS()->hasCamParInSliceHeader () );
     }
+#endif
     for( UInt uiBaseIndex = 0; uiBaseIndex < uiViewIndex; uiBaseIndex++ )
     {
@@ -251,8 +264,15 @@
       else
       {
+#if CAM_HLS_F0136_F0045_F0082
+        m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getVPS()->getCodedScale    (uiViewIndex) [ uiBaseIndex ];
+        m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getVPS()->getCodedOffset   (uiViewIndex) [ uiBaseIndex ];
+        m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getVPS()->getInvCodedScale (uiViewIndex) [ uiBaseIndex ];
+        m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getVPS()->getInvCodedOffset(uiViewIndex) [ uiBaseIndex ];
+#else
         m_aaiCodedScale [ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getSPS()->getCodedScale    () [ uiBaseIndex ];
         m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ]  = pcSlice->getSPS()->getCodedOffset   () [ uiBaseIndex ];
         m_aaiCodedScale [ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getSPS()->getInvCodedScale () [ uiBaseIndex ];
         m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ]  = pcSlice->getSPS()->getInvCodedOffset() [ uiBaseIndex ];
+#endif
         xInitLUTs( uiBaseIndex, uiViewIndex, m_aaiCodedScale[ uiBaseIndex ][ uiViewIndex ], m_aaiCodedOffset[ uiBaseIndex ][ uiViewIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );
         xInitLUTs( uiViewIndex, uiBaseIndex, m_aaiCodedScale[ uiViewIndex ][ uiBaseIndex ], m_aaiCodedOffset[ uiViewIndex ][ uiBaseIndex ], m_adBaseViewShiftLUT, m_aiBaseViewShiftLUT );
@@ -286,8 +306,9 @@
 CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice )
 {
+#if !CAM_HLS_F0136_F0045_F0082
   UInt uiViewIndex = pcSlice->getViewIndex();
 
   pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );
-
+#endif
   if( m_bCamParsVaryOverTime )
   {
@@ -1109,5 +1130,7 @@
   if( pcSlice->getIsDepth() )
   {
+#if !CAM_HLS_F0136_F0045_F0082
     pcSlice->getSPS()->setHasCamParInSliceHeader( false );
+#endif
   }
 #endif
@@ -1151,5 +1174,17 @@
   pps->setLayerId( getLayerId() ); 
 #endif
+#if DLT_DIFF_CODING_IN_PPS
+  // Assuming that all PPS indirectly refer to the same VPS via different SPS
+  // There is no parsing dependency in decoding DLT in PPS. 
+  // The VPS information passed to decodePPS() is used to arrange the decoded DLT tables to their corresponding layers. 
+  // This is equivalent to the process of 
+  //   Step 1) decoding DLT tables based on the number of depth layers, and
+  //   Step 2) mapping DLT tables to the depth layers
+  // as descripted in the 3D-HEVC WD. 
+  TComVPS* vps = m_parameterSetManagerDecoder.getPrefetchedVPS( 0 );
+  m_cEntropyDecoder.decodePPS( pps, vps );
+#else
   m_cEntropyDecoder.decodePPS( pps );
+#endif
   m_parameterSetManagerDecoder.storePrefetchedPPS( pps );
 }
Index: /trunk/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 758)
@@ -256,6 +256,196 @@
   WRITE_UVLC( pcPPS->getLog2ParallelMergeLevelMinus2(), "log2_parallel_merge_level_minus2");
   WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag");
+
+#if !DLT_DIFF_CODING_IN_PPS
   WRITE_FLAG( 0, "pps_extension_flag" );
-}
+#else
+  WRITE_FLAG( 1, "pps_extension_flag" );
+  codePPSExtension( pcPPS ); 
+  WRITE_FLAG( 0, "pps_extension2_flag" );
+#endif
+}
+
+#if DLT_DIFF_CODING_IN_PPS
+Void  TEncCavlc::codePPSExtension        ( TComPPS* pcPPS )
+{
+  // Assuming that all PPS indirectly refer to the same VPS via different SPS
+  // There is no parsing dependency in decoding DLT in PPS. 
+  // The VPS information passed to decodePPS() is used to arrange the decoded DLT tables to their corresponding layers. 
+  // This is equivalent to the process of 
+  //   Step 1) decoding DLT tables based on the number of depth layers, and
+  //   Step 2) mapping DLT tables to the depth layers
+  // as descripted in the 3D-HEVC WD.
+  TComVPS* pcVPS = pcPPS->getSPS()->getVPS();
+
+  TComDLT* pcDLT = pcPPS->getDLT();
+
+  WRITE_FLAG( pcDLT->getDltPresentFlag() ? 1 : 0, "dlt_present_flag" );
+
+  if ( pcDLT->getDltPresentFlag() )
+  {
+    WRITE_CODE(pcDLT->getNumDepthViews(), 6, "pps_depth_layers_minus1");
+    WRITE_CODE((pcDLT->getDepthViewBitDepth() - 8), 4, "pps_bit_depth_for_depth_views_minus8");
+
+    for( Int i = 0; i <= pcVPS->getMaxLayersMinus1(); i++ )
+    {
+      if ( i != 0 )
+      {
+        if ( pcVPS->getDepthId( i ) == 1 )
+        {
+          WRITE_FLAG( pcDLT->getUseDLTFlag( i ) ? 1 : 0, "dlt_flag[i]" );
+
+          if ( pcDLT->getUseDLTFlag( i ) )
+          {
+            WRITE_FLAG( pcDLT->getInterViewDltPredEnableFlag( i ) ? 1 : 0, "inter_view_dlt_pred_enable_flag[ i ]");
+
+            // ----------------------------- determine whether to use bit-map -----------------------------
+            Bool bDltBitMapRepFlag       = false;
+            UInt uiNumBitsNonBitMap      = 0;
+            UInt uiNumBitsBitMap         = 0;
+
+            UInt uiMaxDiff               = 0;
+            UInt uiMinDiff               = 0xffffffff;
+            UInt uiLengthMinDiff         = 0;
+            UInt uiLengthDltDiffMinusMin = 0;
+
+            UInt* puiDltDiffValues       = NULL;
+            
+            Int aiIdx2DepthValue_coded[256];
+            UInt uiNumDepthValues_coded = 0;
+            
+            uiNumDepthValues_coded = pcDLT->getNumDepthValues(i);
+            for( UInt ui = 0; ui<uiNumDepthValues_coded; ui++ )
+            {
+              aiIdx2DepthValue_coded[ui] = pcDLT->idx2DepthValue(i, ui);
+            }
+            
+#if H_3D_DELTA_DLT
+            if( pcDLT->getInterViewDltPredEnableFlag( i ) )
+            {
+              AOF( pcVPS->getDepthId( 1 ) == 1 );
+              AOF( i > 1 );
+              // assumes ref layer id to be 1
+              Int* piRefDLT = pcDLT->idx2DepthValue( 1 );
+              UInt uiRefNum = pcDLT->getNumDepthValues( 1 );
+              pcDLT->getDeltaDLT(i, piRefDLT, uiRefNum, aiIdx2DepthValue_coded, &uiNumDepthValues_coded);
+            }
+#endif
+
+            if ( NULL == (puiDltDiffValues = (UInt *)calloc(uiNumDepthValues_coded, sizeof(UInt))) )
+            {
+              exit(-1);
+            }
+
+            for (UInt d = 1; d < uiNumDepthValues_coded; d++)
+            {
+              puiDltDiffValues[d] = aiIdx2DepthValue_coded[d] - aiIdx2DepthValue_coded[d-1];
+
+              if ( uiMaxDiff < puiDltDiffValues[d] )
+              {
+                uiMaxDiff = puiDltDiffValues[d];
+              }
+
+              if ( uiMinDiff > puiDltDiffValues[d] )
+              {
+                uiMinDiff = puiDltDiffValues[d];
+              }
+            }
+
+            // counting bits
+            // diff coding branch
+            uiNumBitsNonBitMap += 8;                          // u(v) bits for num_depth_values_in_dlt[layerId] (i.e. num_entry[ layerId ])
+
+            if ( uiNumDepthValues_coded > 1 )
+            {
+              uiNumBitsNonBitMap += 8;                        // u(v) bits for max_diff[ layerId ]
+            }
+
+            if ( uiNumDepthValues_coded > 2 )
+            {
+              uiLengthMinDiff    = (UInt) ceil(Log2(uiMaxDiff + 1));
+              uiNumBitsNonBitMap += uiLengthMinDiff;          // u(v)  bits for min_diff[ layerId ]
+            }
+
+            uiNumBitsNonBitMap += 8;                          // u(v) bits for dlt_depth_value0[ layerId ]
+
+            if (uiMaxDiff > uiMinDiff)
+            {
+              uiLengthDltDiffMinusMin = (UInt) ceil(Log2(uiMaxDiff - uiMinDiff + 1));
+              uiNumBitsNonBitMap += uiLengthDltDiffMinusMin * (uiNumDepthValues_coded - 1);  // u(v) bits for dlt_depth_value_diff_minus_min[ layerId ][ j ]
+            }
+
+            // bit map branch
+            uiNumBitsBitMap = 256;   // uiNumBitsBitMap = 1 << pcDLT->getDepthViewBitDepth(); 
+
+            // determine bDltBitMapFlag
+            bDltBitMapRepFlag = (uiNumBitsBitMap > uiNumBitsNonBitMap) ? false : true;
+
+            // ----------------------------- Actual coding -----------------------------
+            if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )
+            {
+              WRITE_FLAG( bDltBitMapRepFlag ? 1 : 0, "dlt_bit_map_rep_flag[ layerId ]" );
+            }
+            else
+            {
+              bDltBitMapRepFlag = false;
+            }
+
+            // bit map coding
+            if ( bDltBitMapRepFlag )
+            {
+              UInt uiDltArrayIndex = 0; 
+              for (UInt d=0; d < 256; d++)
+              {
+                if ( d == aiIdx2DepthValue_coded[uiDltArrayIndex] )
+                {                  
+                  WRITE_FLAG(1, "dlt_bit_map_flag[ layerId ][ j ]");
+                  uiDltArrayIndex++;
+                }
+                else
+                {
+                  WRITE_FLAG(0, "dlt_bit_map_flag[ layerId ][ j ]");
+                }
+              }
+            }
+            // Diff Coding
+            else
+            {
+              WRITE_CODE(uiNumDepthValues_coded, 8, "num_depth_values_in_dlt[layerId]");    // num_entry
+
+#if !H_3D_DELTA_DLT
+              if ( pcDLT->getInterViewDltPredEnableFlag( i ) == false )   // Single-view DLT Diff Coding
+#endif
+              {
+                // The condition if( uiNumDepthValues_coded > 0 ) is always true since for Single-view Diff Coding, there is at least one depth value in depth component.
+                if ( uiNumDepthValues_coded > 1 )
+                {
+                  WRITE_CODE(uiMaxDiff, 8, "max_diff[ layerId ]");        // max_diff
+                }
+
+                if ( uiNumDepthValues_coded > 2 )
+                {
+                  WRITE_CODE((uiMinDiff - 1), uiLengthMinDiff, "min_diff_minus1[ layerId ]");     // min_diff_minus1
+                }
+
+                WRITE_CODE(aiIdx2DepthValue_coded[0], 8, "dlt_depth_value0[layerId]");          // entry0
+
+                if (uiMaxDiff > uiMinDiff)
+                {
+                  for (UInt d=1; d < uiNumDepthValues_coded; d++)
+                  {
+                    WRITE_CODE( (puiDltDiffValues[d] - uiMinDiff), uiLengthDltDiffMinusMin, "dlt_depth_value_diff_minus_min[ layerId ][ j ]");    // entry_value_diff_minus_min[ k ]
+                  }
+                }
+              }
+            }
+
+            free(puiDltDiffValues);
+          }
+        }
+      }
+    }
+  }
+}
+#endif
 
 Void TEncCavlc::codeVUI( TComVUI *pcVUI, TComSPS* pcSPS )
@@ -671,19 +861,21 @@
 }
 #endif
-  if (!depthFlag )
-  {
-    WRITE_UVLC( pcSPS->getCamParPrecision(), "cp_precision" );
-    WRITE_FLAG( pcSPS->hasCamParInSliceHeader() ? 1 : 0, "cp_in_slice_header_flag" );
-    if( !pcSPS->hasCamParInSliceHeader() )
-    {
-      for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )
-      {
-        WRITE_SVLC( pcSPS->getCodedScale    ()[ uiIndex ],                                      "cp_scale" );
-        WRITE_SVLC( pcSPS->getCodedOffset   ()[ uiIndex ],                                      "cp_off" );
-        WRITE_SVLC( pcSPS->getInvCodedScale ()[ uiIndex ] + pcSPS->getCodedScale ()[ uiIndex ], "cp_inv_scale_plus_scale" );
-        WRITE_SVLC( pcSPS->getInvCodedOffset()[ uiIndex ] + pcSPS->getCodedOffset()[ uiIndex ], "cp_inv_off_plus_off" );
-      }
-    }
-  }
+#if !CAM_HLS_F0136_F0045_F0082
+if (!depthFlag )
+{
+  WRITE_UVLC( pcSPS->getCamParPrecision(), "cp_precision" );
+  WRITE_FLAG( pcSPS->hasCamParInSliceHeader() ? 1 : 0, "cp_in_slice_header_flag" );
+  if( !pcSPS->hasCamParInSliceHeader() )
+  {
+    for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )
+    {
+      WRITE_SVLC( pcSPS->getCodedScale    ()[ uiIndex ],                                      "cp_scale" );
+      WRITE_SVLC( pcSPS->getCodedOffset   ()[ uiIndex ],                                      "cp_off" );
+      WRITE_SVLC( pcSPS->getInvCodedScale ()[ uiIndex ] + pcSPS->getCodedScale ()[ uiIndex ], "cp_inv_scale_plus_scale" );
+      WRITE_SVLC( pcSPS->getInvCodedOffset()[ uiIndex ] + pcSPS->getCodedOffset()[ uiIndex ], "cp_inv_off_plus_off" );
+    }
+  }
+}
+#endif
 }
 #endif
@@ -1463,4 +1655,5 @@
         //WRITE_FLAG( pcVPS->getLimQtPredFlag    ( i ) ? 1 : 0 ,          "lim_qt_pred_flag[i]"     ); 
 #if H_3D_DIM_DLT
+#if !DLT_DIFF_CODING_IN_PPS
         if( pcVPS->getVpsDepthModesFlag( i ) )
         {
@@ -1475,5 +1668,6 @@
             WRITE_UVLC( pcVPS->idx2DepthValue(i, d), "dlt_depth_value[i][d]" );
           }
-        }        
+        }
+#endif
 #endif
 #if H_3D_INTER_SDC
@@ -1483,4 +1677,25 @@
     }  
   }
+#if CAM_HLS_F0136_F0045_F0082
+  WRITE_UVLC( pcVPS->getCamParPrecision(), "cp_precision" );
+  for (UInt viewIndex=0; viewIndex<pcVPS->getNumViews(); viewIndex++)
+  {
+    WRITE_FLAG( pcVPS->getCamParPresent(viewIndex) ? 1 : 0, "cp_present_flag[i]" );
+    if ( pcVPS->getCamParPresent(viewIndex) )
+    {
+      WRITE_FLAG( pcVPS->hasCamParInSliceHeader(viewIndex) ? 1 : 0, "cp_in_slice_segment_header_flag[i]" );
+      if ( !pcVPS->hasCamParInSliceHeader(viewIndex) )
+      {
+        for( UInt uiIndex = 0; uiIndex < viewIndex; uiIndex++ )
+        {
+          WRITE_SVLC( pcVPS->getCodedScale    (viewIndex)[ uiIndex ],                                               "vps_cp_scale" );
+          WRITE_SVLC( pcVPS->getCodedOffset   (viewIndex)[ uiIndex ],                                               "vps_cp_off" );
+          WRITE_SVLC( pcVPS->getInvCodedScale (viewIndex)[ uiIndex ] + pcVPS->getCodedScale (viewIndex)[ uiIndex ], "vps_cp_inv_scale_plus_scale" );
+          WRITE_SVLC( pcVPS->getInvCodedOffset(viewIndex)[ uiIndex ] + pcVPS->getCodedOffset(viewIndex)[ uiIndex ], "vps_cp_inv_off_plus_off" );
+        }
+      }
+    }
+  }
+#endif
 #if H_3D_TMVP
   WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
@@ -1947,13 +2162,37 @@
     }
   }
+#if CAM_HLS_F0044
+#if QC_DEPTH_IV_MRG_F0125
+#if CAM_HLS_F0136_F0045_F0082
+  if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )
+#else
+  if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
+#endif
+#else
+  if( pcSlice->getSPS()->hasCamParInSliceHeader() )
+#endif
+  {
+    for( UInt uiId = 0; uiId < pcSlice->getViewIndex(); uiId++ )
+    {
+      WRITE_SVLC( pcSlice->getCodedScale    ()[ uiId ],                                     "cp_scale" );
+      WRITE_SVLC( pcSlice->getCodedOffset   ()[ uiId ],                                     "cp_off" );
+      WRITE_SVLC( pcSlice->getInvCodedScale ()[ uiId ] + pcSlice->getCodedScale ()[ uiId ], "cp_inv_scale_plus_scale" );
+      WRITE_SVLC( pcSlice->getInvCodedOffset()[ uiId ] + pcSlice->getCodedOffset()[ uiId ], "cp_inv_off_plus_off" );
+    }
+  }
+#endif
+
   if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag())
   {
-#if !H_3D
+#if !H_3D || CAM_HLS_F0044
     WRITE_UVLC(0,"slice_header_extension_length");
 #else
     WRITE_UVLC(0,"slice_header_extension_length"); //<- this element needs to be set to the correct value!!
-
 #if QC_DEPTH_IV_MRG_F0125
+#if CAM_HLS_F0136_F0045_F0082
+    if( pcSlice->getVPS()->hasCamParInSliceHeader( pcSlice->getViewIndex() ) && !pcSlice->getIsDepth() )
+#else
     if( pcSlice->getSPS()->hasCamParInSliceHeader() && !pcSlice->getIsDepth() )
+#endif
 #else
     if( pcSlice->getSPS()->hasCamParInSliceHeader() )
Index: /trunk/source/Lib/TLibEncoder/TEncCavlc.h
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncCavlc.h	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncCavlc.h	(revision 758)
@@ -116,4 +116,9 @@
 #endif
   Void  codePPS                 ( TComPPS* pcPPS );
+
+#if DLT_DIFF_CODING_IN_PPS
+  Void  codePPSExtension        ( TComPPS* pcPPS );
+#endif
+
   Void  codeSliceHeader         ( TComSlice* pcSlice );
   Void  codePTL                 ( TComPTL* pcPTL, Bool profilePresentFlag, Int maxNumSubLayersMinus1);
Index: /trunk/source/Lib/TLibEncoder/TEncCfg.h
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncCfg.h	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncCfg.h	(revision 758)
@@ -330,4 +330,9 @@
   TComVPS                    m_cVPS;
 #endif
+
+#if DLT_DIFF_CODING_IN_PPS
+  TComDLT*  m_cDLT;
+#endif
+
   Bool      m_recalculateQPAccordingToLambda;                 ///< recalculate QP value according to the lambda value
   Int       m_activeParameterSetsSEIEnabled;                  ///< enable active parameter set SEI message 
@@ -867,4 +872,10 @@
   TComVPS *getVPS() { return &m_cVPS; }
 #endif
+
+#if DLT_DIFF_CODING_IN_PPS
+  Void      setDLT           ( TComDLT *p ) { m_cDLT = p; }
+  TComDLT*  getDLT           ()             { return m_cDLT; }
+#endif
+
   Void      setUseRecalculateQPAccordingToLambda ( Bool b ) { m_recalculateQPAccordingToLambda = b;    }
   Bool      getUseRecalculateQPAccordingToLambda ()         { return m_recalculateQPAccordingToLambda; }
Index: /trunk/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 758)
@@ -632,5 +632,9 @@
 
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+  UInt uiMaxResidualBits = pcCU->getSlice()->getPPS()->getDLT()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
+#else
   UInt uiMaxResidualBits = pcCU->getSlice()->getVPS()->getBitsPerDepthValue( pcCU->getSlice()->getLayerIdInVps() );
+#endif
 #else
   UInt uiMaxResidualBits = g_bitDepthY;
@@ -653,5 +657,9 @@
     
 #if H_3D_DIM_DLT
-    UInt uiNumDepthValues = pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
+#if DLT_DIFF_CODING_IN_PPS
+      UInt uiNumDepthValues = pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
+#else
+      UInt uiNumDepthValues = pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() );
+#endif
 #else
     UInt uiNumDepthValues = ((1 << g_bitDepthY)-1);
Index: /trunk/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 758)
@@ -1127,7 +1127,15 @@
       {
 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
-          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#if DLT_DIFF_CODING_IN_PPS
+        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#else
+        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#endif
           {
-              pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] );
+#if DLT_DIFF_CODING_IN_PPS
+            pResi[ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] );
+#else
+            pResi[ uiX ] = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pOrg[ uiX ] ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] );
+#endif
           }
           else
@@ -1202,7 +1210,15 @@
       {
 #if LGE_PRED_RES_CODING_DLT_DOMAIN_F0159
-          if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#if DLT_DIFF_CODING_IN_PPS
+        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getPPS()->getDLT()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#else
+        if( (isDimMode( uiLumaPredMode ) || uiLumaPredMode == HOR_IDX || uiLumaPredMode == VER_IDX || uiLumaPredMode == DC_IDX) && pcCU->getSlice()->getIsDepth() && pcCU->getSlice()->getVPS()->getUseDLTFlag(pcCU->getSlice()->getLayerIdInVps()) )
+#endif
           {
-              pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#if DLT_DIFF_CODING_IN_PPS
+            pReco    [ uiX ] = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getPPS()->getDLT()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#else
+            pReco    [ uiX ] = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), Clip3( 0, pcCU->getSlice()->getVPS()->getNumDepthValues( pcCU->getSlice()->getLayerIdInVps() ) - 1, pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pPred[ uiX ] ) + pResi[ uiX ] ) );
+#endif
           }
           else
@@ -1935,5 +1951,9 @@
     // get residual (idx)
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+    Pel pResidualIdx = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pDCRec ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
+#else
     Pel pResidualIdx = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), pDCRec ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
+#endif
 #else
     Pel pResidualIdx = pDCRec - apDCPredValues[uiSegment];
@@ -1949,8 +1969,14 @@
   {
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+    Pel   pPredIdx    = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
+    Pel   pResiIdx    = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
+    Pel   pRecoValue  = pcCU->getSlice()->getPPS()->getDLT()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );
+#else
     Pel   pPredIdx    = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), apDCPredValues[uiSegment] );
     Pel   pResiIdx    = pcCU->getSDCSegmentDCOffset(uiSegment, uiAbsPartIdx);
     Pel   pRecoValue  = pcCU->getSlice()->getVPS()->idx2DepthValue( pcCU->getSlice()->getLayerIdInVps(), pPredIdx + pResiIdx );
-    
+#endif
+
     apDCResiValues[uiSegment]  = pRecoValue - apDCPredValues[uiSegment];
 #else
@@ -7346,6 +7372,11 @@
 
 #if H_3D_DIM_DLT
+#if DLT_DIFF_CODING_IN_PPS
+  rDeltaDC1 = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC1 + rDeltaDC1) ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 );
+  rDeltaDC2 = pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC2 + rDeltaDC2) ) - pcCU->getSlice()->getPPS()->getDLT()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 );
+#else
   rDeltaDC1 = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC1 + rDeltaDC1) ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC1 );
   rDeltaDC2 = pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), ClipY(predDC2 + rDeltaDC2) ) - pcCU->getSlice()->getVPS()->depthValue2idx( pcCU->getSlice()->getLayerIdInVps(), predDC2 );
+#endif
 #endif
 }
Index: /trunk/source/Lib/TLibEncoder/TEncTop.cpp
===================================================================
--- /trunk/source/Lib/TLibEncoder/TEncTop.cpp	(revision 757)
+++ /trunk/source/Lib/TLibEncoder/TEncTop.cpp	(revision 758)
@@ -299,4 +299,8 @@
 {
   // initialize SPS
+#if DLT_DIFF_CODING_IN_PPS
+  // Assuming that all PPS indirectly refer to the same VPS via different SPS
+  m_cSPS.setVPS(m_cVPS);
+#endif
   xInitSPS();
   
@@ -850,4 +854,5 @@
   }
 #if H_3D
+#if !CAM_HLS_F0136_F0045_F0082
 #if !QC_DEPTH_IV_MRG_F0125
   if ( !m_isDepth )
@@ -857,4 +862,5 @@
   }
 #endif
+#endif
 }
 
@@ -870,4 +876,9 @@
   m_cPPS.setSPSId( getLayerIdInVps() );
 #endif
+
+#if DLT_DIFF_CODING_IN_PPS
+  m_cPPS.setDLT( getDLT() );
+#endif
+
   m_cPPS.setConstrainedIntraPred( m_bUseConstrainedIntraPred );
   Bool bUseDQP = (getMaxCuDQPDepth() > 0)? true : false;
@@ -1001,5 +1012,9 @@
   }
 #if H_3D
+#if CAM_HLS_F0136_F0045_F0082
+  if( m_cVPS->hasCamParInSliceHeader( getViewIndex() ) )
+#else
   if( m_cSPS.hasCamParInSliceHeader() )
+#endif
   {
     m_cPPS.setSliceHeaderExtensionPresentFlag( true ); 
