- Timestamp:
- 6 Nov 2015, 16:18:36 (9 years ago)
- Location:
- branches/HTM-15.2-dev
- Files:
-
- 2 added
- 51 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_Balloons.cfg
r608 r1373 5 5 FrameRate : 30 # frame rate in frames per second 6 6 FramesToBeEncoded : 300 # number of frames to be coded 7 #BaseViewCameraNumbers : 3 1 5 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 3 1 5 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_GhostTownFly.cfg
r608 r1373 5 5 FrameRate : 25 # frame rate in frames per second 6 6 FramesToBeEncoded : 250 # number of frames to be coded 7 #BaseViewCameraNumbers : 5 9 1 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 5 9 1 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_Kendo.cfg
r608 r1373 5 5 FrameRate : 30 # frame rate in frames per second 6 6 FramesToBeEncoded : 300 # number of frames to be coded 7 #BaseViewCameraNumbers : 3 1 5 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 3 1 5 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_Newspaper.cfg
r608 r1373 5 5 FrameRate : 30 # frame rate in frames per second 6 6 FramesToBeEncoded : 300 # number of frames to be coded 7 #BaseViewCameraNumbers : 4 2 6 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 4 2 6 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_PoznanHall2.cfg
r608 r1373 5 5 FrameRate : 25 # frame rate in frames per second 6 6 FramesToBeEncoded : 200 # number of frames to be coded 7 #BaseViewCameraNumbers : 6 7 5 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 6 7 5 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_PoznanStreet.cfg
r608 r1373 5 5 FrameRate : 25 # frame rate in frames per second 6 6 FramesToBeEncoded : 250 # number of frames to be coded 7 #BaseViewCameraNumbers : 4 5 3 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 4 5 3 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_Shark.cfg
r608 r1373 5 5 FrameRate : 30 # frame rate in frames per second 6 6 FramesToBeEncoded : 300 # number of frames to be coded 7 #BaseViewCameraNumbers : 5 9 1 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 5 9 1 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/cfg/MV-HEVC/seqCfg_UndoDancer.cfg
r608 r1373 5 5 FrameRate : 25 # frame rate in frames per second 6 6 FramesToBeEncoded : 250 # number of frames to be coded 7 #BaseViewCameraNumbers : 5 1 9 # camera numbers of coded views (in coding order)7 BaseViewCameraNumbers : 5 1 9 # camera numbers of coded views (in coding order) 8 8 -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecCfg.cpp
r1370 r1373 90 90 ("OutputColourSpaceConvert", outputColourSpaceConvert, string(""), "Colour space conversion to apply to input 444 video. Permitted values are (empty string=UNCHANGED) " + getListOfColourSpaceConverts(false)) 91 91 #if NH_MV 92 ("TargetOptLayerSetIdx,x", m_targetOptLayerSetIdx, -1,"Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded.92 ("TargetOptLayerSetIdx,x", m_targetOptLayerSetInd, std::vector<Int>(1,-1), "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 93 93 #endif 94 94 ("MaxTemporalLayer,t", m_iMaxTemporalLayer, -1, "Maximum Temporal Layer to be decoded. -1 to decode all layers") -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecCfg.h
r1360 r1373 81 81 std::vector<TChar*> m_pchReconFiles; ///< array of output reconstruction file name create from output reconstruction file name 82 82 83 Int m_targetOptLayerSetIdx; ///< target output layer set index 83 std::vector<Int> m_targetOptLayerSetInd; ///< target output layer set indices (multiple decoding when more than one element, e.g. for additional layer sets) 84 Int m_targetOptLayerSetIdx; ///< current target output layer set index 85 84 86 Int m_targetDecLayerSetIdx; 85 87 Int m_baseLayerOutputFlag; … … 138 140 139 141 Bool parseCfg ( Int argc, TChar* argv[] ); ///< initialize option class from configuration 142 #if NH_MV 143 Int getNumDecodings ( ) { return (Int) m_targetOptLayerSetInd.size(); }; 144 #endif 140 145 }; 141 146 -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.cpp
r1360 r1373 152 152 . 153 153 */ 154 155 154 #if NH_MV 156 Void TAppDecTop::decode() 157 { 155 Void TAppDecTop::decode( Int num ) 156 { 157 m_targetOptLayerSetIdx = m_targetOptLayerSetInd[ num ]; 158 158 // create & initialize internal classes 159 159 xInitFileIO (); … … 213 213 214 214 #if !NH_MV 215 Void TAppDecTop::decode( )215 Void TAppDecTop::decode( ) 216 216 { 217 217 Int poc; … … 1092 1092 m_newVpsActivatedbyCurAu = true; //TBD 1093 1093 m_newVpsActivatedbyCurPic = true; 1094 #if NH_3D 1094 #if NH_3D_VSO 1095 1095 m_dpb.setVPS( m_vps ); 1096 1096 #endif … … 1256 1256 } 1257 1257 1258 if ( m_printVpsInfo && ( m_decProcCvsg == ANNEX_F ) )1258 if ( m_printVpsInfo && ( m_decProcCvsg == ANNEX_F ) && ( m_targetOptLayerSetIdx == m_targetOptLayerSetInd[ 0 ] ) ) 1259 1259 { 1260 1260 m_vps->printScalabilityId(); … … 2003 2003 // - After all slices of the current picture have been decoded, the decoding process for ending the decoding of a 2004 2004 // coded picture with nuh_layer_id greater than 0 specified in clause F.8.1.6 is invoked. 2005 xF816decProcEndDecOfCodPicLIdGrtZero( ); 2005 xF816decProcEndDecOfCodPicLIdGrtZero( ); 2006 2006 } 2007 2007 -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.h
r1360 r1373 137 137 Void create (); ///< create internal members 138 138 Void destroy (); ///< destroy internal members 139 Void decode (); ///< main decoding function139 140 140 #if NH_MV 141 Void decode ( Int i ); ///< main decoding function 141 142 UInt getNumberOfChecksumErrorsDetected( ) const; 142 143 UInt getNumberOfChecksumErrorsDetected( Int decIdx ) const { return m_tDecTop[decIdx]->getNumberOfChecksumErrorsDetected(); } 143 144 #else 145 Void decode ( ); ///< main decoding function 144 146 UInt getNumberOfChecksumErrorsDetected() const { return m_cTDecTop.getNumberOfChecksumErrorsDetected(); } 145 147 #endif -
branches/HTM-15.2-dev/source/App/TAppDecoder/decmain.cpp
r1313 r1373 51 51 { 52 52 Int returnCode = EXIT_SUCCESS; 53 #if !NH_MV 53 54 TAppDecTop cTAppDecTop; 54 55 #endif 55 56 // print information 56 57 fprintf( stdout, "\n" ); … … 65 66 fprintf( stdout, "\n" ); 66 67 67 // create application decoder class 68 cTAppDecTop.create(); 68 #if NH_MV 69 Int numDecodings = 1; 70 Int curDecoding = 0; 71 Double dResult = 0; 72 do { 73 TAppDecTop cTAppDecTop; 74 #endif 75 // create application decoder class 76 cTAppDecTop.create(); 69 77 70 // parse configuration 71 if(!cTAppDecTop.parseCfg( argc, argv )) 72 { 73 cTAppDecTop.destroy(); 74 returnCode = EXIT_FAILURE; 75 return returnCode; 76 } 78 // parse configuration 79 if(!cTAppDecTop.parseCfg( argc, argv )) 80 { 81 cTAppDecTop.destroy(); 82 returnCode = EXIT_FAILURE; 83 return returnCode; 84 } 85 #if NH_MV 86 numDecodings = cTAppDecTop.getNumDecodings(); 87 #endif 77 88 78 // starting time 89 // starting time 90 #if !NH_MV 79 91 Double dResult; 80 clock_t lBefore = clock(); 92 #endif 93 clock_t lBefore = clock(); 81 94 82 // call decoding function 83 cTAppDecTop.decode(); 95 // call decoding function 96 #if NH_MV 97 cTAppDecTop.decode( curDecoding ); 98 #else 99 cTAppDecTop.decode(); 100 #endif 84 101 85 if (cTAppDecTop.getNumberOfChecksumErrorsDetected() != 0)86 {87 printf("\n\n***ERROR*** A decoding mismatch occured: signalled md5sum does not match\n");88 returnCode = EXIT_FAILURE;89 }102 if (cTAppDecTop.getNumberOfChecksumErrorsDetected() != 0) 103 { 104 printf("\n\n***ERROR*** A decoding mismatch occured: signalled md5sum does not match\n"); 105 returnCode = EXIT_FAILURE; 106 } 90 107 91 // ending time 108 // ending time 109 #if NH_MV 110 dResult += (double)(clock()-lBefore) / CLOCKS_PER_SEC; 111 #else 92 112 dResult = (Double)(clock()-lBefore) / CLOCKS_PER_SEC; 93 113 printf("\n Total Time: %12.3f sec.\n", dResult); 114 #endif 94 115 95 // destroy application decoder class 96 cTAppDecTop.destroy(); 116 // destroy application decoder class 117 cTAppDecTop.destroy(); 118 #if NH_MV 119 curDecoding++; 120 } 121 while ( curDecoding < numDecodings ); 97 122 123 printf("\n Total Time: %12.3f sec.\n", dResult); 124 #endif 98 125 return returnCode; 99 126 } -
branches/HTM-15.2-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r1362 r1373 177 177 } 178 178 } 179 #endif 180 181 #if NH_3D 179 180 if ( m_pchBaseViewCameraNumbers != NULL ) 181 { 182 free ( m_pchBaseViewCameraNumbers ); 183 } 184 #endif 182 185 #if NH_3D_VSO 183 186 if ( m_pchVSOConfig != NULL) … … 185 188 free ( m_pchVSOConfig ); 186 189 } 187 #endif 190 188 191 if ( m_pchCameraParameterFile != NULL ) 189 192 { 190 193 free ( m_pchCameraParameterFile ); 191 }192 193 if ( m_pchBaseViewCameraNumbers != NULL )194 {195 free ( m_pchBaseViewCameraNumbers );196 194 } 197 195 #endif … … 818 816 ("ViewId", m_viewId , IntAry1d(1,0), "View Id per View Order Index") 819 817 ("AuxId", m_auxId , IntAry1d(1,0), "AuxId per layer") 820 #if NH_3D 818 #if NH_3D_VSO 821 819 ("DepthFlag", m_depthFlag , IntAry1d(1,0), "Depth Flag") 822 820 #endif … … 1107 1105 // A lot of this stuff could should actually be derived by the encoder. 1108 1106 // VPS VUI 1109 ("VpsVuiPresentFlag" , m_vpsVuiPresentFlag , false, "VpsVuiPresentFlag ")1110 ("CrossLayerPicTypeAlignedFlag" , m_crossLayerPicTypeAlignedFlag, false, "CrossLayerPicTypeAlignedFlag") // Could actually be derived by the encoder1111 ("CrossLayerIrapAlignedFlag" , m_crossLayerIrapAlignedFlag , false, "CrossLayerIrapAlignedFlag ") // Could actually be derived by the encoder1112 ("AllLayersIdrAlignedFlag" , m_allLayersIdrAlignedFlag , false, "CrossLayerIrapAlignedFlag ") // Could actually be derived by the encoder1113 ("BitRatePresentVpsFlag" , m_bitRatePresentVpsFlag , false, "BitRatePresentVpsFlag ")1114 ("PicRatePresentVpsFlag" , m_picRatePresentVpsFlag , false, "PicRatePresentVpsFlag ")1115 ("BitRatePresentFlag" , m_bitRatePresentFlag , BoolAry1d(1,0) ,MAX_VPS_OP_SETS_PLUS1, "BitRatePresentFlag per sub layer for the N-th layer set")1116 ("PicRatePresentFlag" , m_picRatePresentFlag , BoolAry1d(1,0) ,MAX_VPS_OP_SETS_PLUS1, "PicRatePresentFlag per sub layer for the N-th layer set")1117 ("AvgBitRate" , m_avgBitRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "AvgBitRate per sub layer for the N-th layer set")1118 ("MaxBitRate" , m_maxBitRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "MaxBitRate per sub layer for the N-th layer set")1119 ("ConstantPicRateIdc" , m_constantPicRateIdc , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "ConstantPicRateIdc per sub layer for the N-th layer set")1120 ("AvgPicRate" , m_avgPicRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "AvgPicRate per sub layer for the N-th layer set")1121 ("TilesNotInUseFlag" , m_tilesNotInUseFlag , true 1107 ("VpsVuiPresentFlag" , m_vpsVuiPresentFlag , false , "VpsVuiPresentFlag ") 1108 ("CrossLayerPicTypeAlignedFlag" , m_crossLayerPicTypeAlignedFlag , false , "CrossLayerPicTypeAlignedFlag") // Could actually be derived by the encoder 1109 ("CrossLayerIrapAlignedFlag" , m_crossLayerIrapAlignedFlag , false , "CrossLayerIrapAlignedFlag ") // Could actually be derived by the encoder 1110 ("AllLayersIdrAlignedFlag" , m_allLayersIdrAlignedFlag , false , "CrossLayerIrapAlignedFlag ") // Could actually be derived by the encoder 1111 ("BitRatePresentVpsFlag" , m_bitRatePresentVpsFlag , false , "BitRatePresentVpsFlag ") 1112 ("PicRatePresentVpsFlag" , m_picRatePresentVpsFlag , false , "PicRatePresentVpsFlag ") 1113 ("BitRatePresentFlag" , m_bitRatePresentFlag , BoolAry1d(1,0), MAX_VPS_OP_SETS_PLUS1, "BitRatePresentFlag per sub layer for the N-th layer set") 1114 ("PicRatePresentFlag" , m_picRatePresentFlag , BoolAry1d(1,0), MAX_VPS_OP_SETS_PLUS1, "PicRatePresentFlag per sub layer for the N-th layer set") 1115 ("AvgBitRate" , m_avgBitRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "AvgBitRate per sub layer for the N-th layer set") 1116 ("MaxBitRate" , m_maxBitRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "MaxBitRate per sub layer for the N-th layer set") 1117 ("ConstantPicRateIdc" , m_constantPicRateIdc , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "ConstantPicRateIdc per sub layer for the N-th layer set") 1118 ("AvgPicRate" , m_avgPicRate , IntAry1d (1,0), MAX_VPS_OP_SETS_PLUS1, "AvgPicRate per sub layer for the N-th layer set") 1119 ("TilesNotInUseFlag" , m_tilesNotInUseFlag , true , "TilesNotInUseFlag ") 1122 1120 ("TilesInUseFlag" , m_tilesInUseFlag , BoolAry1d(1,false) , "TilesInUseFlag ") 1123 ("LoopFilterNotAcrossTilesFlag" , m_loopFilterNotAcrossTilesFlag , BoolAry1d(1,false) , "LoopFilterNotAcrossTilesFlag ")1124 ("WppNotInUseFlag" , m_wppNotInUseFlag , true 1125 ("WppInUseFlag" , m_wppInUseFlag , BoolAry1d(1,0) , "WppInUseFlag ")1126 ("TileBoundariesAlignedFlag" , m_tileBoundariesAlignedFlag , BoolAry1d(1,0) ,MAX_NUM_LAYERS, "TileBoundariesAlignedFlag per direct reference for the N-th layer")1127 ("IlpRestrictedRefLayersFlag" , m_ilpRestrictedRefLayersFlag , false, "IlpRestrictedRefLayersFlag")1128 ("MinSpatialSegmentOffsetPlus1" , m_minSpatialSegmentOffsetPlus1 , IntAry1d (1,0), MAX_NUM_LAYERS , "MinSpatialSegmentOffsetPlus1 per direct reference for the N-th layer")1129 ("CtuBasedOffsetEnabledFlag" , m_ctuBasedOffsetEnabledFlag , BoolAry1d(1,0) ,MAX_NUM_LAYERS, "CtuBasedOffsetEnabledFlag per direct reference for the N-th layer")1130 ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , IntAry1d (1,0), MAX_NUM_LAYERS , "MinHorizontalCtuOffsetPlus1 per direct reference for the N-th layer")1131 ("SingleLayerForNonIrapFlag" , m_singleLayerForNonIrapFlag, false, "SingleLayerForNonIrapFlag")1132 ("HigherLayerIrapSkipFlag" , m_higherLayerIrapSkipFlag , false, "HigherLayerIrapSkipFlag ")1121 ("LoopFilterNotAcrossTilesFlag" , m_loopFilterNotAcrossTilesFlag , BoolAry1d(1,false) , "LoopFilterNotAcrossTilesFlag ") 1122 ("WppNotInUseFlag" , m_wppNotInUseFlag , true , "WppNotInUseFlag ") 1123 ("WppInUseFlag" , m_wppInUseFlag , BoolAry1d(1,0) , "WppInUseFlag ") 1124 ("TileBoundariesAlignedFlag" , m_tileBoundariesAlignedFlag , BoolAry1d(1,0) ,MAX_NUM_LAYERS , "TileBoundariesAlignedFlag per direct reference for the N-th layer") 1125 ("IlpRestrictedRefLayersFlag" , m_ilpRestrictedRefLayersFlag , false , "IlpRestrictedRefLayersFlag") 1126 ("MinSpatialSegmentOffsetPlus1" , m_minSpatialSegmentOffsetPlus1 , IntAry1d (1,0), MAX_NUM_LAYERS , "MinSpatialSegmentOffsetPlus1 per direct reference for the N-th layer") 1127 ("CtuBasedOffsetEnabledFlag" , m_ctuBasedOffsetEnabledFlag , BoolAry1d(1,0) ,MAX_NUM_LAYERS , "CtuBasedOffsetEnabledFlag per direct reference for the N-th layer") 1128 ("MinHorizontalCtuOffsetPlus1" , m_minHorizontalCtuOffsetPlus1 , IntAry1d (1,0), MAX_NUM_LAYERS , "MinHorizontalCtuOffsetPlus1 per direct reference for the N-th layer") 1129 ("SingleLayerForNonIrapFlag" , m_singleLayerForNonIrapFlag , false , "SingleLayerForNonIrapFlag") 1130 ("HigherLayerIrapSkipFlag" , m_higherLayerIrapSkipFlag , false , "HigherLayerIrapSkipFlag ") 1133 1131 #endif 1134 1132 … … 1290 1288 #endif 1291 1289 ("OutputVpsInfo", m_outputVpsInfo, false ,"Output information about the layer dependencies and layer sets") 1290 1291 /* Camera parameters */ 1292 ("BaseViewCameraNumbers", m_pchBaseViewCameraNumbers, (TChar *) 0 , "Numbers of base views") 1292 1293 #endif 1293 1294 #if NH_3D 1294 /* Camera parameters */1295 1295 ("Depth420OutputFlag", m_depth420OutputFlag, true , "Output depth layers in 4:2:0 ") 1296 #endif 1297 #if NH_3D_VSO 1296 1298 ("CameraParameterFile,cpf", m_pchCameraParameterFile, (TChar *) 0 , "Camera Parameter File Name") 1297 ("BaseViewCameraNumbers", m_pchBaseViewCameraNumbers, (TChar *) 0 , "Numbers of base views")1298 1299 ("CodedCamParsPrecision", m_iCodedCamParPrecision, STD_CAM_PARAMETERS_PRECISION, "precision for coding of camera parameters (in units of 2^(-x) luma samples)" ) 1299 1300 1300 #if NH_3D_VSO1301 1301 /* View Synthesis Optimization */ 1302 1302 ("VSOConfig", m_pchVSOConfig , (TChar *) 0 ,"VSO configuration") … … 1317 1317 #endif //HHI_VSO 1318 1318 /* 3D- HEVC Tools */ 1319 #if NH_3D_QTL 1319 1320 ("QTL" , m_bUseQTL , true , "Use depth quad tree limitation (encoder only)" ) 1321 #endif 1322 #if NH_3D 1323 1320 1324 ("IvMvPredFlag" , m_ivMvPredFlag , BoolAry1d(2,true) , "Inter-view motion prediction" ) 1321 1325 ("IvMvScalingFlag" , m_ivMvScalingFlag , BoolAry1d(2,true) , "Inter-view motion vector scaling" ) … … 1813 1817 xResizeVector( m_auxId ); 1814 1818 1815 #if NH_3D 1819 #if NH_3D_VSO 1816 1820 xResizeVector( m_depthFlag ); 1817 1821 #endif … … 2022 2026 } 2023 2027 2024 #if NH_3D 2028 2025 2029 #if NH_3D_VSO 2026 2030 // Table base optimization … … 2039 2043 for (Int layer = 0; layer < m_numberOfLayers; layer++ ) 2040 2044 { 2041 if ( m_depthFlag[ layer ] )2045 if ( m_depthFlag[ layer ] || m_auxId[ layer ] == 2 ) 2042 2046 { 2043 2047 firstDepthLayer = layer; … … 2076 2080 LOG2_DISP_PREC_LUT ); 2077 2081 } 2082 #if NH_3D 2078 2083 else 2079 2084 { … … 2089 2094 LOG2_DISP_PREC_LUT ); 2090 2095 } 2091 #else2092 m_cCameraData .init ( ((UInt) m_iNumberOfViews ),2093 m_internalBitDepth[ CHANNEL_TYPE_LUMA],2094 (UInt) m_iCodedCamParPrecision,2095 m_FrameSkip,2096 (UInt) m_framesToBeEncoded,2097 m_pchCameraParameterFile,2098 m_pchBaseViewCameraNumbers,2099 NULL,2100 NULL,2101 LOG2_DISP_PREC_LUT );2102 #endif2103 2096 m_cCameraData.check( false, true ); 2097 #endif 2104 2098 #endif 2105 2099 … … 2286 2280 #endif 2287 2281 2288 #if NH_3D 2282 #if NH_3D_VSO 2289 2283 if ( m_scalabilityMask & ( 1 << DEPTH_ID ) ) 2290 2284 { … … 2645 2639 } 2646 2640 2647 #if NH_3D 2641 #if NH_3D_VSO 2648 2642 xConfirmPara( m_pchCameraParameterFile == 0 , "CameraParameterFile must be given"); 2649 2643 xConfirmPara( m_pchBaseViewCameraNumbers == 0 , "BaseViewCameraNumbers must be given" ); 2650 2644 xConfirmPara( m_iNumberOfViews != m_cCameraData.getBaseViewNumbers().size() , "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" ); 2651 2645 xConfirmPara ( m_iCodedCamParPrecision < 0 || m_iCodedCamParPrecision > 5, "CodedCamParsPrecision must be in range of 0..5" ); 2652 #if NH_3D_VSO2653 2646 if( m_bUseVSO ) 2654 2647 { … … 2656 2649 xConfirmPara( m_uiVSOMode > 4 , "VSO Mode must be less than 5"); 2657 2650 } 2658 #endif2659 2651 #endif 2660 2652 // max CU width and height should be power of 2 … … 3430 3422 xPrintParaVector( "AuxId", m_auxId ); 3431 3423 #endif 3432 #if NH_3D 3424 #if NH_3D_VSO 3433 3425 xPrintParaVector( "DepthLayerFlag", m_depthFlag ); 3434 3426 printf("Coded Camera Param. Precision : %d\n", m_iCodedCamParPrecision); … … 3632 3624 3633 3625 printf("Max Num Merge Candidates : %d\n", m_maxNumMergeCand); 3634 #if NH_3D 3626 #if NH_3D_VSO 3635 3627 printf("BaseViewCameraNumbers : %s\n", m_pchBaseViewCameraNumbers ); 3636 3628 printf("Coded Camera Param. Precision : %d\n", m_iCodedCamParPrecision); 3637 #if NH_3D_VSO3638 3629 printf("Force use of Lambda Scale : %d\n", m_bForceLambdaScaleVSO ); 3639 3630 … … 3653 3644 } 3654 3645 #endif //HHI_VSO 3655 #endif //NH_3D3656 3646 printf("\n"); 3657 3647 #if NH_MV … … 3720 3710 printf("WVSO:%d ", m_bUseWVSO ); 3721 3711 #endif 3712 #if NH_3D_QTL 3713 printf( "QTL:%d " , m_bUseQTL); 3714 #endif 3722 3715 #if NH_3D 3723 printf( "QTL:%d " , m_bUseQTL);3724 3716 printf( "IlluCompEnable:%d " , m_abUseIC); 3725 3717 printf( "IlluCompLowLatencyEnc:%d ", m_bUseLowLatencyICEnc); -
branches/HTM-15.2-dev/source/App/TAppEncoder/TAppEncCfg.h
r1362 r1373 80 80 IntAry1d m_viewOrderIndex; ///< view order index 81 81 IntAry1d m_auxId; ///< auxiliary id 82 #if NH_3D 82 #if NH_3D_VSO 83 83 IntAry1d m_depthFlag; ///< depth flag 84 84 #endif … … 533 533 #endif 534 534 Bool m_outputVpsInfo; 535 #endif 535 TChar* m_pchBaseViewCameraNumbers; 536 #endif 537 536 538 #if NH_3D 537 539 // Output Format 538 540 Bool m_depth420OutputFlag; ///< Output depth layers in 4:2:0 format 539 // Camera parameters 541 #endif 542 // Camera parameters 543 #if NH_3D_VSO 540 544 TChar* m_pchCameraParameterFile; ///< camera parameter file 541 TChar* m_pchBaseViewCameraNumbers;542 545 TAppComCamPara m_cCameraData; 543 546 Int m_iCodedCamParPrecision; ///< precision for coding of camera parameters 544 #if NH_3D_VSO545 547 TChar* m_pchVSOConfig; 546 548 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization … … 566 568 TRenModSetupStrParser m_cRenModStrParser; 567 569 #endif 568 570 #if NH_3D 569 571 Bool m_useDLT; ///< flag for using DLT 572 #endif 573 #if NH_3D_QTL 570 574 Bool m_bUseQTL; ///< flag for using depth QuadTree Limitation 575 #endif 576 #if NH_3D 571 577 BoolAry1d m_ivMvPredFlag; 572 578 BoolAry1d m_ivMvScalingFlag; -
branches/HTM-15.2-dev/source/App/TAppEncoder/TAppEncTop.cpp
r1360 r1373 147 147 #if NH_3D 148 148 xSetCamPara ( vps ); 149 #endif 150 #if NH_3D_VSO 149 151 m_ivPicLists.setVPS ( &vps ); 150 152 #endif … … 276 278 m_cTEncTop.setViewId ( vps.getViewId ( layerId ) ); 277 279 m_cTEncTop.setViewIndex ( vps.getViewIndex ( layerId ) ); 278 #if NH_3D 279 Bool isDepth = ( vps.getDepthId ( layerId ) != 0 ) ; 280 m_cTEncTop.setIsDepth ( isDepth ); 280 #if NH_3D_VSO 281 Bool isDepth = ( vps.getDepthId ( layerId ) != 0 ) ; 282 Bool isAuxDepth = ( vps.getAuxId ( layerId ) == 2 ) ; // TBD: define 2 as AUX_DEPTH 283 m_cTEncTop.setIsDepth ( isDepth ); 284 m_cTEncTop.setIsAuxDepth ( isAuxDepth ); 281 285 //====== Camera Parameters ========= 282 286 m_cTEncTop.setCameraParameters ( &m_cCameraData ); 283 #if NH_3D_VSO284 287 //====== VSO ========= 285 288 m_cTEncTop.setRenderModelParameters ( &m_cRenModStrParser ); 286 m_cTEncTop.setForceLambdaScaleVSO ( isDepth ? m_bForceLambdaScaleVSO : false );287 m_cTEncTop.setLambdaScaleVSO ( isDepth ? m_dLambdaScaleVSO : 1 );288 m_cTEncTop.setVSOMode ( isDepth ? m_uiVSOMode : 0 );289 290 m_cTEncTop.setAllowNegDist ( isDepth ? m_bAllowNegDist : false );289 m_cTEncTop.setForceLambdaScaleVSO ( isDepth || isAuxDepth ? m_bForceLambdaScaleVSO : false ); 290 m_cTEncTop.setLambdaScaleVSO ( isDepth || isAuxDepth ? m_dLambdaScaleVSO : 1 ); 291 m_cTEncTop.setVSOMode ( isDepth || isAuxDepth ? m_uiVSOMode : 0 ); 292 293 m_cTEncTop.setAllowNegDist ( isDepth || isAuxDepth ? m_bAllowNegDist : false ); 291 294 292 295 // SAIT_VSO_EST_A0033 293 m_cTEncTop.setUseEstimatedVSD ( isDepth ? m_bUseEstimatedVSD : false );296 m_cTEncTop.setUseEstimatedVSD ( isDepth || isAuxDepth ? m_bUseEstimatedVSD : false ); 294 297 295 298 // LGE_WVSO_A0119 296 m_cTEncTop.setUseWVSO ( isDepth ? m_bUseWVSO : false );297 m_cTEncTop.setVSOWeight ( isDepth ? m_iVSOWeight : 0 );298 m_cTEncTop.setVSDWeight ( isDepth ? m_iVSDWeight : 0 );299 m_cTEncTop.setDWeight ( isDepth ? m_iDWeight : 0 );299 m_cTEncTop.setUseWVSO ( isDepth || isAuxDepth ? m_bUseWVSO : false ); 300 m_cTEncTop.setVSOWeight ( isDepth || isAuxDepth ? m_iVSOWeight : 0 ); 301 m_cTEncTop.setVSDWeight ( isDepth || isAuxDepth ? m_iVSDWeight : 0 ); 302 m_cTEncTop.setDWeight ( isDepth || isAuxDepth ? m_iDWeight : 0 ); 300 303 #endif // H_3D_VSO 304 #if NH_3D 301 305 #if NH_3D_IC 302 306 m_cTEncTop.setUseIC ( vps.getViewIndex( layerId ) == 0 || isDepth ? false : m_abUseIC ); … … 308 312 m_cTEncTop.setUseSDC ( isDepth ? m_intraSdcFlag : false ); 309 313 m_cTEncTop.setUseDLT ( isDepth ? m_useDLT : false ); 310 m_cTEncTop.setUseQTL ( isDepth ? m_bUseQTL : false ); 314 #endif 315 #if NH_3D_QTL 316 m_cTEncTop.setUseQTL ( isDepth || isAuxDepth ? m_bUseQTL : false ); 317 #endif 318 #if NH_3D 311 319 m_cTEncTop.setSps3dExtension ( m_sps3dExtension ); 312 320 #endif // NH_3D … … 811 819 TEncTop* pcEncTop = m_acTEncTopList[ layer ]; 812 820 Int iViewNum = pcEncTop->getViewIndex(); 813 Int iContent = pcEncTop->getIsDepth() ? 1 : 0;821 Int iContent = pcEncTop->getIsDepth() || pcEncTop->getIsAuxDepth() ? 1 : 0; 814 822 Int iNumOfModels = m_cRenModStrParser.getNumOfModelsForView(iViewNum, iContent); 815 823 … … 1043 1051 for ( Int gopId=0; gopId < gopSize; gopId++ ) 1044 1052 { 1045 #if NH_3D 1053 #if NH_3D_VSO 1046 1054 UInt iNextPoc = m_acTEncTopList[0] -> getFrameId( gopId ); 1047 1055 if ( iNextPoc < m_framesToBeEncoded ) … … 1685 1693 if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 1686 1694 { 1687 Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false );1695 Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false, 0 ); 1688 1696 if ( nuhLayerIdTex == refLayerIdInNuh ) 1689 1697 { … … 1711 1719 for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++ ) 1712 1720 { 1713 Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[j] ) ), true );1721 Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[j] ) ), true, 0 ); 1714 1722 if ( nuhLayerIdDep == refLayerIdInNuh ) 1715 1723 { -
branches/HTM-15.2-dev/source/App/TAppEncoder/TAppEncTop.h
r1313 r1373 46 46 #include "TLibCommon/AccessUnit.h" 47 47 #include "TAppEncCfg.h" 48 #if NH_3D 48 #if NH_3D_VSO 49 49 #include "../../Lib/TLibRenderer/TRenTop.h" 50 50 #endif -
branches/HTM-15.2-dev/source/App/TAppRenderer/RendererMain.cpp
r1313 r1373 35 35 #include <time.h> 36 36 #include "../../Lib/TLibCommon/CommonDef.h" 37 #if NH_3D 37 #if NH_3D_VSO 38 38 #include "TAppRendererTop.h" 39 39 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/App/TAppRenderer/TAppRendererCfg.cpp
r1360 r1373 44 44 #include "../../Lib/TAppCommon/program_options_lite.h" 45 45 46 #if NH_3D 46 #if NH_3D_VSO 47 47 48 48 using namespace std; -
branches/HTM-15.2-dev/source/App/TAppRenderer/TAppRendererCfg.h
r1360 r1373 47 47 #include <vector> 48 48 49 #if NH_3D 49 #if NH_3D_VSO 50 50 51 51 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/App/TAppRenderer/TAppRendererTop.cpp
r1313 r1373 41 41 #include "TAppRendererTop.h" 42 42 43 #if NH_3D 43 #if NH_3D_VSO 44 44 45 45 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/App/TAppRenderer/TAppRendererTop.h
r1313 r1373 40 40 #define __TAppRendererTOP__ 41 41 #include "../../Lib/TLibCommon/CommonDef.h" 42 #if NH_3D 42 #if NH_3D_VSO 43 43 #include "../../Lib/TLibRenderer/TRenTop.h" 44 44 #include "../../Lib/TLibVideoIO/TVideoIOYuv.h" -
branches/HTM-15.2-dev/source/Lib/TAppCommon/TAppComCamPara.cpp
r1360 r1373 49 49 #include <functional> 50 50 #include <string> 51 #if NH_3D 51 #if NH_3D_VSO 52 52 53 53 … … 194 194 TAppComCamPara::xReadCameraParameterFile( TChar* pchCfgFileName ) 195 195 { 196 assert( pchCfgFileName != NULL ); 197 196 198 std::ifstream cCfgStream( pchCfgFileName, std::ifstream::in ); 197 199 if( !cCfgStream ) -
branches/HTM-15.2-dev/source/Lib/TLibCommon/CommonDef.h
r1362 r1373 446 446 #endif 447 447 448 #if NH_3D 448 #if NH_3D_VSO 449 449 //PICYUV 450 450 #define PICYUV_PAD 16 -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComPic.cpp
r1321 r1373 60 60 , m_viewId (0) 61 61 , m_bPicOutputFlag (false) 62 #if NH_3D 62 #if NH_3D_VSO 63 63 , m_viewIndex (0) 64 64 , m_isDepth (false) … … 993 993 } 994 994 995 #if NH_3D 996 TComPicYuv* TComPicLists::getPicYuv( Int viewIndex, Bool depthFlag, Int poc, Bool recon )995 #if NH_3D_VSO 996 TComPicYuv* TComPicLists::getPicYuv( Int viewIndex, Bool depthFlag, Int auxId, Int poc, Bool recon ) 997 997 { 998 Int layerIdInNuh = m_vps->getLayerIdInNuh( viewIndex, depthFlag );998 Int layerIdInNuh = m_vps->getLayerIdInNuh( viewIndex, depthFlag, auxId ); 999 999 return getPicYuv( layerIdInNuh, poc, recon ); 1000 1000 } 1001 1001 1002 TComPic* TComPicLists::getPic( Int viewIndex, Bool depthFlag, Int poc )1003 { 1004 return getPic ( m_vps->getLayerIdInNuh( viewIndex, depthFlag ), poc );1002 TComPic* TComPicLists::getPic( Int viewIndex, Bool depthFlag, Int auxId, Int poc ) 1003 { 1004 return getPic ( m_vps->getLayerIdInNuh( viewIndex, depthFlag, auxId ), poc ); 1005 1005 } 1006 1006 -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComPic.h
r1360 r1373 154 154 TComDecodedRps m_decodedRps; 155 155 #endif 156 #if NH_3D 156 #if NH_3D_VSO 157 157 Int m_viewIndex; 158 158 Bool m_isDepth; … … 311 311 Void print( Int outputLevel ); 312 312 313 #if NH_3D 313 #if NH_3D_VSO 314 314 Void setViewIndex ( Int viewIndex ) { m_viewIndex = viewIndex; } 315 315 Int getViewIndex () const { return m_viewIndex; } … … 404 404 TComList<TComSubDpb*> m_subDpbs; 405 405 Bool m_printPicOutput; 406 #if NH_3D 406 #if NH_3D_VSO 407 407 const TComVPS* m_vps; 408 408 #endif … … 448 448 Void print(); 449 449 450 #if NH_3D 450 #if NH_3D_VSO 451 451 Void setVPS ( const TComVPS* vps ) { m_vps = vps; }; 452 TComPic* getPic ( Int viewIndex, Bool depthFlag, Int poc );453 TComPicYuv* getPicYuv ( Int viewIndex, Bool depthFlag, Int poc, Bool recon );452 TComPic* getPic ( Int viewIndex, Bool depthFlag, Int auxId, Int poc ); 453 TComPicYuv* getPicYuv ( Int viewIndex, Bool depthFlag, Int auxId, Int poc, Bool recon ); 454 454 #endif 455 455 -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComPicYuv.h
r1360 r1373 183 183 Bool getBorderExtension( ) { return m_bIsBorderExtended; } 184 184 #endif 185 #if NH_3D 185 #if NH_3D_VSO 186 186 // Set Function 187 187 Void setLumaTo ( Pel pVal ); 188 188 Void setChromaTo ( Pel pVal ); 189 #endif 190 #if NH_3D 189 191 #if NH_3D_IV_MERGE 190 192 // sample to block and block to sample conversion -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComRdCost.cpp
r1364 r1373 41 41 #include "TComRom.h" 42 42 #include "TComRdCost.h" 43 #if NH_3D 43 #if NH_3D_VSO 44 44 #include "TComDataCU.h" 45 45 #include "TComRectangle.h" … … 503 503 504 504 cDtParam.bitDepth = bitDepth; 505 505 #if NH_3D 506 506 cDtParam.bUseIC = false; 507 #endif 507 508 #if NH_3D_SDC_INTER 508 509 cDtParam.bUseSDCMRSAD = false; -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComRdCost.h
r1370 r1373 46 46 #include "TComSlice.h" 47 47 #include "TComRdCostWeightPrediction.h" 48 #if NH_3D 48 #if NH_3D_VSO 49 49 #include "../TLibRenderer/TRenModel.h" 50 50 #include "TComYuv.h" … … 57 57 class DistParam; 58 58 class TComPattern; 59 #if NH_3D 59 #if NH_3D_VSO 60 60 class TComRdCost; 61 61 #endif … … 68 68 typedef Distortion (*FpDistFunc) (DistParam*); // TODO: can this pointer be replaced with a reference? - there are no NULL checks on pointer. 69 69 70 #if NH_3D 70 71 71 #if NH_3D_VSO 72 72 typedef Dist (TComRdCost::*FpDistFuncVSO) ( Int, Int, Pel*, Int, Pel*, Int, UInt, UInt, Bool ); 73 #endif74 73 #endif 75 74 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComSlice.cpp
r1360 r1373 118 118 , m_viewId (0) 119 119 , m_viewIndex (0) 120 #if NH_3D 120 #if NH_3D_VSO 121 121 , m_isDepth (false) 122 122 #endif … … 2182 2182 } 2183 2183 2184 #if NH_3D 2185 Int TComVPS::getLayerIdInNuh( Int viewIndex, Bool depthFlag ) const2184 #if NH_3D_VSO 2185 Int TComVPS::getLayerIdInNuh( Int viewIndex, Bool depthFlag, Int auxId ) const 2186 2186 { 2187 2187 Int foundLayerIdinNuh = -1; … … 2190 2190 { 2191 2191 Int layerIdInNuh = getLayerIdInNuh( layerIdInVps ); 2192 #if !NH_3D 2193 if( ( getViewIndex( layerIdInNuh ) == viewIndex ) && ( getAuxId( layerIdInNuh ) == ( depthFlag ? 2 : 0 ) ) ) 2194 #else 2192 2195 if( ( getViewIndex( layerIdInNuh ) == viewIndex ) && ( getDepthId( layerIdInNuh ) == ( depthFlag ? 1 : 0 ) ) ) 2196 #endif 2193 2197 { 2194 2198 foundLayerIdinNuh = layerIdInNuh; … … 2198 2202 return foundLayerIdinNuh; 2199 2203 } 2200 2204 #endif 2205 #if NH_3D 2201 2206 Void TComVPS::createCamPars(Int iNumViews) 2202 2207 { … … 3857 3862 } 3858 3863 #endif 3859 #if NH_3D 3864 #if NH_3D_QTL 3860 3865 Void TComSlice::setIvPicLists( TComPicLists* m_ivPicLists ) 3861 3866 { … … 3864 3869 for ( Int depthId = 0; depthId < 2; depthId++ ) 3865 3870 { 3866 m_ivPicsCurrPoc[ depthId ][ i ] = ( i <= m_viewIndex ) ? m_ivPicLists->getPic( i, ( depthId == 1) , getPOC() ) : NULL;3871 m_ivPicsCurrPoc[ depthId ][ i ] = ( i <= m_viewIndex ) ? m_ivPicLists->getPic( i, ( depthId == 1) , 0, getPOC() ) : NULL; 3867 3872 } 3868 3873 } 3869 3874 } 3875 #endif 3876 #if NH_3D 3870 3877 Void TComSlice::setDepthToDisparityLUTs() 3871 3878 { -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComSlice.h
r1364 r1373 1384 1384 /// VPS EXTENSION 2 SYNTAX ELEMENTS 1385 1385 Int getDepthId ( Int layerIdInNuh) const { return getScalabilityId( getLayerIdInVps(layerIdInNuh), DEPTH_ID ); } 1386 #if NH_3D 1386 #if NH_3D_VSO 1387 1387 Bool getVpsDepthFlag ( Int layerIdInNuh) const { return (getDepthId( layerIdInNuh ) > 0); } 1388 Int getLayerIdInNuh ( Int viewIndex, Bool depthFlag ) const; 1389 1388 Int getLayerIdInNuh ( Int viewIndex, Bool depthFlag, Int auxId ) const; 1389 #endif 1390 #if NH_3D 1390 1391 Void createCamPars ( Int iNumViews ); 1391 1392 Void initCamParaVPS ( Int vOIdxInVps, Int numCp, Bool cpInSliceSegmentHeaderFlag, Int* cpRefVoi, Int** aaiScale, Int** aaiOffset ); … … 2700 2701 Int m_viewId; 2701 2702 Int m_viewIndex; 2702 #if NH_3D 2703 #if NH_3D_VSO 2703 2704 Bool m_isDepth; 2704 2705 #endif … … 2752 2753 Bool m_cpAvailableFlag; 2753 2754 Int m_numViews; 2755 #endif 2756 #if NH_3D_QTL 2754 2757 TComPic* m_ivPicsCurrPoc [2][MAX_NUM_LAYERS]; 2758 #endif 2759 #if NH_3D 2755 2760 Int** m_depthToDisparityB; 2756 2761 Int** m_depthToDisparityF; … … 2850 2855 Int getNumCurCmpLIds( ) const { return (Int) m_inCmpRefViewIdcs.size(); } 2851 2856 TComPic* getIvPic( Bool depthFlag, Int viewIndex) const { return m_ivPicsCurrPoc[ depthFlag ? 1 : 0 ][ viewIndex ]; } 2857 #endif 2858 #if NH_3D_QTL 2852 2859 TComPic* getTexturePic () { return m_ivPicsCurrPoc[0][ m_viewIndex ]; } 2860 2853 2861 #endif 2854 2862 #if NH_3D_IC … … 3155 3163 Int getFirstTRefIdx ( RefPicList e ) { return m_aiFirstTRefIdx[e]; } 3156 3164 Void setFirstTRefIdx ( RefPicList e, Int i ) { m_aiFirstTRefIdx[e] = i; } 3157 Bool getArpRefPicAvailable ( RefPicList e, Int viewIdx) { return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, 0)]; } 3165 3166 Bool getArpRefPicAvailable ( RefPicList e, Int viewIdx) { return m_arpRefPicAvailable[e][getVPS()->getLayerIdInNuh(viewIdx, false, 0 )]; } 3158 3167 IntAry1d getPocsInCurrRPSs() { return m_pocsInCurrRPSs; } 3159 #endif 3168 #endif 3169 #endif 3170 #if NH_3D_VSO 3160 3171 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; } 3161 3172 Bool getIsDepth () const { return m_isDepth; } 3173 #endif 3174 #if NH_3D 3162 3175 Void setCamparaSlice ( Int** aaiScale = 0, Int** aaiOffset = 0 ); 3163 3176 … … 3179 3192 Int getCpInvOff( Int j ) { return m_aaiCodedOffset[1][j]; } 3180 3193 3194 #endif 3195 #if NH_3D_QTL 3181 3196 Void setIvPicLists( TComPicLists* m_ivPicLists ); 3197 #endif 3198 #if NH_3D 3182 3199 Void setDepthToDisparityLUTs(); 3183 3200 -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TComYuv.h
r1313 r1373 204 204 UInt getComponentScaleX (const ComponentID id) const { return ::getComponentScaleX(id, m_chromaFormatIDC); } 205 205 UInt getComponentScaleY (const ComponentID id) const { return ::getComponentScaleY(id, m_chromaFormatIDC); } 206 #if NH_3D_VSO 207 Void addClipPartLuma( Int bitDepth, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize ); 208 #endif 206 209 #if NH_3D 207 Void addClipPartLuma( Int bitDepth, TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiTrUnitIdx, UInt uiPartSize );208 210 #if NH_3D_ARP 209 211 Void addARP ( TComYuv* pcYuvSrc0, TComYuv* pcYuvSrc1, UInt uiAbsPartIdx, UInt uiWidth , UInt uiHeight , Bool bClip, const BitDepths &clipBitDepths ); -
branches/HTM-15.2-dev/source/Lib/TLibCommon/TypeDef.h
r1372 r1373 105 105 // SEC_ARP_VIEW_REF_CHECK_J0037 Signaling iv_res_pred_weight_idx when the current slice has both view and temporal reference picture(s), JCT3V-J0037 item1 106 106 // SEC_ARP_REM_ENC_RESTRICT_K0035 Removal of encoder restriction of ARP, JCT3V-K0035 107 #define NH_3D_QTL 1 107 108 #define NH_3D_QTLPC 1 // OL_QTLIMIT_PREDCODING_B0068 //JCT3V-B0068 108 109 // HHI_QTLPC_RAU_OFF_C0160 JCT3V-C0160 change 2: quadtree limitation and predictive coding switched off in random access units … … 496 497 typedef std::vector< std::string > StringAry1d; 497 498 typedef std::vector< StringAry1d > StringAry2d; 499 typedef std::vector< std::string > StringAry1d; 500 typedef std::vector< StringAry1d > StringAry2d; 498 501 typedef std::vector< Int > IntAry1d; 499 502 typedef std::vector< IntAry1d > IntAry2d; … … 1003 1006 }; 1004 1007 #endif 1005 #if NH_3D 1008 #if NH_3D_VSO 1006 1009 // Renderer 1007 1010 enum BlenMod -
branches/HTM-15.2-dev/source/Lib/TLibDecoder/TDecTop.cpp
r1356 r1373 1771 1771 xG813DecProcForInterLayerRefPicSet(); 1772 1772 } 1773 else 1774 { 1775 #if NH_MV_FIX_INIT_NUM_ACTIVE_REF_LAYER_PICS 1776 TComDecodedRps* decRps = m_pcPic->getDecodedRps(); 1777 decRps->m_numActiveRefLayerPics0 = 0; 1778 decRps->m_numActiveRefLayerPics1 = 0; 1779 #endif 1780 } 1773 1781 } 1774 1782 } -
branches/HTM-15.2-dev/source/Lib/TLibEncoder/TEncCfg.h
r1360 r1373 46 46 #include "TLibCommon/TComSlice.h" 47 47 #include <assert.h> 48 #if NH_3D 48 #if NH_3D_VSO 49 49 #include "TAppCommon/TAppComCamPara.h" 50 50 #include "TLibRenderer/TRenModSetupStrParser.h" … … 469 469 #endif 470 470 471 #if NH_3D 471 #if NH_3D_VSO 472 472 Bool m_isDepth; 473 Bool m_isAuxDepth; 473 474 474 475 //====== Camera Parameters ====== 475 476 TAppComCamPara* m_cameraParameters; 476 477 477 #if NH_3D_VSO478 478 //====== View Synthesis Optimization ====== 479 479 TRenModSetupStrParser* m_renderModelParameters; … … 492 492 Double m_dDispCoeff; 493 493 #endif 494 #if NH_3D 494 495 495 496 Bool m_bUseIC; … … 498 499 Bool m_useSDC; 499 500 Bool m_useDLT; 501 #endif 502 #if NH_3D_QTL 500 503 Bool m_bUseQTL; 504 #endif 505 #if NH_3D 501 506 Int m_profileIdc; 502 503 507 #endif 504 508 public: … … 511 515 , m_viewId(-1) 512 516 , m_viewIndex(-1) 517 #if NH_3D_VSO 518 , m_isDepth(false) 519 , m_isAuxDepth(false) 520 , m_bUseVSO(false) 521 #endif 513 522 #if NH_3D 514 , m_isDepth(false)515 #if NH_3D_VSO516 , m_bUseVSO(false)517 #endif518 523 , m_profileIdc( -1 ) 519 524 #endif … … 561 566 Void setViewIndex ( Int viewIndex ) { m_viewIndex = viewIndex; } 562 567 Int getViewIndex () { return m_viewIndex; } 563 #if NH_3D 568 #if NH_3D_VSO 564 569 Void setIsDepth ( Bool isDepth ) { m_isDepth = isDepth; } 565 570 Bool getIsDepth () { return m_isDepth; } 571 Void setIsAuxDepth ( Bool isAuxDepth ) { m_isAuxDepth = isAuxDepth; } 572 Bool getIsAuxDepth () { return m_isAuxDepth; } 573 574 566 575 #endif 567 576 #endif … … 1188 1197 UInt getSummaryVerboseness( ) const { return m_summaryVerboseness; } 1189 1198 1190 #if NH_3D 1199 #if NH_3D_VSO 1191 1200 // Only flags that are not in the SPS3dExtension should go here. 1192 1201 /// 3D Tools … … 1194 1203 //==== CAMERA PARAMETERS ========== 1195 1204 Void setCameraParameters ( TAppComCamPara* c) { m_cameraParameters = c; } 1196 1197 #if NH_3D_VSO1198 1205 //==== VSO ========== 1199 1206 Void setRenderModelParameters ( TRenModSetupStrParser* c ) { m_renderModelParameters = c; } … … 1225 1232 Void setDispCoeff ( Double d ) { m_dDispCoeff = d; } 1226 1233 #endif // NH_3D_VSO 1227 1234 #if NH_3D 1228 1235 Bool getUseDMM () { return m_useDMM; } 1229 1236 Void setUseDMM ( Bool b) { m_useDMM = b; } … … 1233 1240 Bool getUseDLT () { return m_useDLT; } 1234 1241 Void setUseDLT ( Bool b) { m_useDLT = b; } 1235 1242 #endif 1243 1244 #if NH_3D_QTL 1236 1245 Void setUseQTL ( Bool b ) { m_bUseQTL = b; } 1237 1246 Bool getUseQTL () { return m_bUseQTL; } 1247 #endif 1248 #if NH_3D 1238 1249 1239 1250 Void setProfileIdc( Int a ) { assert( a == 1 || a == 6 || a == 8 ); m_profileIdc = a; } -
branches/HTM-15.2-dev/source/Lib/TLibEncoder/TEncCu.cpp
r1360 r1373 420 420 const UInt fastDeltaQPCuMaxSize = Clip3(sps.getMaxCUHeight()>>sps.getLog2DiffMaxMinCodingBlockSize(), sps.getMaxCUHeight(), 32u); 421 421 422 422 #if NH_3D_QTL 423 423 #if NH_3D_QTLPC 424 424 Bool bLimQtPredFalg = pcPic->getSlice(0)->getQtPredFlag(); 425 #else 426 Bool bLimQtPredFalg = false; 427 #endif 425 428 TComPic *pcTexture = rpcBestCU->getSlice()->getTexturePic(); 426 429 … … 437 440 m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getCtuRsAddr(), rpcBestCU->getZorderIdxInCtu() ); 438 441 439 #if NH_3D_QTL PC442 #if NH_3D_QTL 440 443 Bool bTrySplit = true; 441 444 Bool bTrySplitDQP = true; … … 534 537 } 535 538 536 #if NH_3D_QTL PC539 #if NH_3D_QTL 537 540 bTrySplit = true; 538 541 #endif … … 552 555 553 556 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 554 #if NH_3D_QTL PC557 #if NH_3D_QTL 555 558 //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU 556 559 #if H_3D_FCO … … 734 737 #endif 735 738 } 736 #if NH_3D_QTL PC739 #if NH_3D_QTL 737 740 if(depthMapDetect && !bIntraSliceDetect && !rapPic && ( m_pcEncCfg->getUseQTL() || bLimQtPredFalg )) 738 741 { … … 789 792 { 790 793 if( uiDepth == sps.getLog2DiffMaxMinCodingBlockSize() && doNotBlockPu 791 #if NH_3D_QTL PC794 #if NH_3D_QTL 792 795 && bTrySplit 793 796 #endif … … 809 812 810 813 if(doNotBlockPu 811 #if NH_3D_QTL PC814 #if NH_3D_QTL 812 815 && bTryNx2N 813 816 #endif … … 830 833 } 831 834 if(doNotBlockPu 832 #if NH_3D_QTL PC835 #if NH_3D_QTL 833 836 && bTry2NxN 834 837 #endif … … 871 874 { 872 875 if(doNotBlockPu 873 #if NH_3D_QTL PC876 #if NH_3D_QTL 874 877 && bTry2NxN 875 878 #endif … … 891 894 } 892 895 if(doNotBlockPu 893 #if NH_3D_QTL PC896 #if NH_3D_QTL 894 897 && bTry2NxN 895 898 #endif … … 917 920 { 918 921 if(doNotBlockPu 919 #if NH_3D_QTL PC922 #if NH_3D_QTL 920 923 && bTry2NxN 921 924 #endif … … 939 942 } 940 943 if(doNotBlockPu 941 #if NH_3D_QTL PC944 #if NH_3D_QTL 942 945 && bTry2NxN 943 946 #endif … … 966 969 { 967 970 if(doNotBlockPu 968 #if NH_3D_QTL PC971 #if NH_3D_QTL 969 972 && bTryNx2N 970 973 #endif … … 987 990 } 988 991 if(doNotBlockPu 989 #if NH_3D_QTL PC992 #if NH_3D_QTL 990 993 && bTryNx2N 991 994 #endif … … 1007 1010 { 1008 1011 if(doNotBlockPu 1009 #if NH_3D_QTL PC1012 #if NH_3D_QTL 1010 1013 && bTryNx2N 1011 1014 #endif … … 1027 1030 } 1028 1031 if(doNotBlockPu 1029 #if NH_3D_QTL PC1032 #if NH_3D_QTL 1030 1033 && bTryNx2N 1031 1034 #endif … … 1048 1051 1049 1052 #else 1050 #if NH_3D_QTL PC1053 #if NH_3D_QTL 1051 1054 if (bTry2NxN) 1052 1055 { … … 1063 1066 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1064 1067 #endif 1065 #if NH_3D_QTL PC1068 #if NH_3D_QTL 1066 1069 } 1067 1070 if (bTryNx2N) … … 1078 1081 rpcTempCU->setDvInfoSubParts(DvInfo, 0, uiDepth); 1079 1082 #endif 1080 #if NH_3D_QTL PC1083 #if NH_3D_QTL 1081 1084 } 1082 1085 #endif … … 1134 1137 if( uiDepth == sps.getLog2DiffMaxMinCodingBlockSize() ) 1135 1138 { 1136 #if NH_3D_QTL PC//Try IntraNxN1139 #if NH_3D_QTL //Try IntraNxN 1137 1140 if(bTrySplit) 1138 1141 { … … 1150 1153 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1151 1154 } 1152 #if NH_3D_QTL PC1155 #if NH_3D_QTL 1153 1156 } 1154 1157 #endif … … 1252 1255 const Bool bSubBranch = bBoundary || !( m_pcEncCfg->getUseEarlyCU() && rpcBestCU->getTotalCost()!=MAX_DOUBLE && rpcBestCU->isSkipped(0) ); 1253 1256 #endif 1254 #if NH_3D_QTL PC1257 #if NH_3D_QTL 1255 1258 if( bSubBranch && uiDepth < sps.getLog2DiffMaxMinCodingBlockSize() && (!getFastDeltaQp() || uiWidth > fastDeltaQPCuMaxSize || bBoundary) && bTrySplitDQP ) 1256 1259 #else -
branches/HTM-15.2-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1368 r1373 1434 1434 Int numDirectRefLayers = vps ->getNumDirectRefLayers( getLayerId() ); 1435 1435 #endif 1436 #if NH_3D_QTL 1437 pcSlice->setIvPicLists( m_ivPicLists ); 1438 #endif 1436 1439 #if NH_3D 1437 pcSlice->setIvPicLists( m_ivPicLists ); 1440 1438 1441 1439 1442 Int gopNum = (pcSlice->getRapPicFlag() && getLayerId() > 0) ? MAX_GOP : iGOPid; … … 1654 1657 pcRdCost->setVideoRecPicYuv( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false, pcSlice->getPOC(), flagRec ) ); 1655 1658 pcRdCost->setDepthPicYuv ( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), true, pcSlice->getPOC(), false ) ); 1656 #else 1657 pcRdCost->setVideoRecPicYuv( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false , pcSlice->getPOC(), true ) ); 1658 pcRdCost->setDepthPicYuv ( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), true , pcSlice->getPOC(), false ) ); 1659 #endif 1660 1659 #else 1660 Int curAuxId = pcSlice->getVPS()->getAuxId( getLayerId() ); 1661 Int curDepthFlag = pcSlice->getIsDepth(); 1662 assert( curAuxId == 2 || curDepthFlag ); 1663 pcRdCost->setVideoRecPicYuv( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), false , 0 , pcSlice->getPOC(), true ) ); 1664 pcRdCost->setDepthPicYuv ( m_pcEncTop->getIvPicLists()->getPicYuv( pcSlice->getViewIndex(), curDepthFlag, curAuxId, pcSlice->getPOC(), false ) ); 1665 #endif 1661 1666 // LGE_WVSO_A0119 1662 1667 Bool bUseWVSO = m_pcEncTop->getUseWVSO(); -
branches/HTM-15.2-dev/source/Lib/TLibEncoder/TEncSlice.cpp
r1368 r1373 461 461 462 462 #if NH_3D_VSO 463 m_pcRdCost->setUseLambdaScaleVSO ( (m_pcCfg->getUseVSO() || m_pcCfg->getForceLambdaScaleVSO()) && m_pcCfg->getIsDepth() );463 m_pcRdCost->setUseLambdaScaleVSO ( (m_pcCfg->getUseVSO() || m_pcCfg->getForceLambdaScaleVSO()) && ( m_pcCfg->getIsDepth() | m_pcCfg->getIsAuxDepth() ) ); 464 464 m_pcRdCost->setLambdaVSO ( dLambda * m_pcCfg->getLambdaScaleVSO() ); 465 465 … … 470 470 471 471 // LGE_WVSO_A0119 472 if( m_pcCfg->getUseWVSO() && m_pcCfg->getIsDepth() )472 if( m_pcCfg->getUseWVSO() && ( m_pcCfg->getIsDepth() || m_pcCfg->getIsAuxDepth() ) ) 473 473 { 474 474 m_pcRdCost->setDWeight ( m_pcCfg->getDWeight() ); … … 713 713 714 714 // compute RD cost and choose the best 715 #if NH_3D 715 #if NH_3D_VSO 716 716 Double dPicRdCost = m_pcRdCost->calcRdCost( (Double)m_uiPicTotalBits, uiPicDist, DF_SSE_FRAME); 717 717 #else … … 899 899 iLastPosY = iCurPosY; 900 900 TEncTop* pcEncTop = (TEncTop*) m_pcCfg; // Fix this later. 901 pcEncTop->setupRenModel( pcSlice->getPOC() , pcSlice->getViewIndex(), pcSlice->getIsDepth() ? 1 : 0, iCurPosY, pcSlice->getSPS()->getMaxCUHeight() );901 pcEncTop->setupRenModel( pcSlice->getPOC() , pcSlice->getViewIndex(), pcSlice->getIsDepth() || pcSlice->getVPS()->getAuxId( pcSlice->getLayerId() ) ? 1 : 0, iCurPosY, pcSlice->getSPS()->getMaxCUHeight() ); 902 902 } 903 903 } -
branches/HTM-15.2-dev/source/Lib/TLibEncoder/TEncTop.cpp
r1360 r1373 1565 1565 Int iBaseViewIdx = m_cameraParameters->getBaseSortedId2Id()[ iBaseViewSIdx ]; 1566 1566 1567 TComPicYuv* pcPicYuvVideoRec = m_ivPicLists->getPicYuv( iBaseViewIdx, false, iPoc, true ); 1568 TComPicYuv* pcPicYuvDepthRec = m_ivPicLists->getPicYuv( iBaseViewIdx, true , iPoc, true ); 1569 TComPicYuv* pcPicYuvVideoOrg = m_ivPicLists->getPicYuv( iBaseViewIdx, false, iPoc, false ); 1570 TComPicYuv* pcPicYuvDepthOrg = m_ivPicLists->getPicYuv( iBaseViewIdx, true , iPoc, false ); 1567 Int auxId = getVPS()->getAuxId ( getLayerId() ); 1568 Bool depthFlag = ( getVPS()->getDepthId( getLayerId() ) == 1 ); 1569 1570 if( auxId == 0 && !depthFlag ) 1571 { 1572 // Defaults for texture layers 1573 #if NH_3D 1574 depthFlag = true; 1575 auxId = 0; 1576 #else 1577 depthFlag = false; 1578 auxId = 2; 1579 #endif 1580 } 1581 1582 TComPicYuv* pcPicYuvVideoRec = m_ivPicLists->getPicYuv( iBaseViewIdx, false , 0 , iPoc, true ); 1583 TComPicYuv* pcPicYuvDepthRec = m_ivPicLists->getPicYuv( iBaseViewIdx, depthFlag, auxId, iPoc, true ); 1584 TComPicYuv* pcPicYuvVideoOrg = m_ivPicLists->getPicYuv( iBaseViewIdx, false, 0 , iPoc, false ); 1585 TComPicYuv* pcPicYuvDepthOrg = m_ivPicLists->getPicYuv( iBaseViewIdx, depthFlag, auxId, iPoc, false ); 1571 1586 1572 1587 TComPicYuv* pcPicYuvVideoRef = ( iVideoDistMode == 2 ) ? pcPicYuvVideoOrg : NULL; … … 1633 1648 if ( iOrgRefBaseViewSIdx != -1 ) 1634 1649 { 1635 pcPicYuvOrgRef = m_ivPicLists->getPicYuv( m_cameraParameters->getBaseSortedId2Id()[ iOrgRefBaseViewSIdx ] , false, iPoc, false );1650 pcPicYuvOrgRef = m_ivPicLists->getPicYuv( m_cameraParameters->getBaseSortedId2Id()[ iOrgRefBaseViewSIdx ] , false, 0, iPoc, false ); 1636 1651 AOF ( pcPicYuvOrgRef ); 1637 1652 } -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenFilter.cpp
r1313 r1373 36 36 #include "TRenFilter.h" 37 37 #include "TRenInterpFilter.h" 38 #if NH_3D 38 #if NH_3D_VSO 39 39 40 40 ///// COMMON ///// -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenFilter.h
r1313 r1373 39 39 #include "TRenImage.h" 40 40 #include "TRenInterpFilter.h" 41 #if NH_3D 41 #if NH_3D_VSO 42 42 43 43 typedef Int (TRenInterpFilter<REN_BIT_DEPTH>::*FpChromaIntFilt) ( Pel*, Int ); -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenImage.cpp
r1313 r1373 37 37 #include "TRenFilter.h" 38 38 #include "assert.h" 39 #if NH_3D 39 #if NH_3D_VSO 40 40 41 41 -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenImage.h
r1313 r1373 39 39 #include "../TLibCommon/TComPicYuv.h" 40 40 #include "TRenImagePlane.h" 41 #if NH_3D 41 #if NH_3D_VSO 42 42 43 43 -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenImagePlane.cpp
r1313 r1373 36 36 #include "TRenFilter.h" 37 37 #include <string.h> 38 #if NH_3D 38 #if NH_3D_VSO 39 39 40 40 /////// TRenImagePlane /////// -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenImagePlane.h
r1313 r1373 39 39 #include "../TLibCommon/TComPicYuv.h" 40 40 41 #if NH_3D 41 #if NH_3D_VSO 42 42 #define PelImagePlane TRenImagePlane<Pel> 43 43 #define DoubleImagePlane TRenImagePlane<Double> -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenInterpFilter.cpp
r1313 r1373 39 39 40 40 #include "TRenInterpFilter.h" 41 #if NH_3D 41 #if NH_3D_VSO 42 42 43 43 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenInterpFilter.h
r1313 r1373 44 44 #include "TLibCommon/CommonDef.h" 45 45 #include "assert.h" 46 #if NH_3D 46 #if NH_3D_VSO 47 47 48 48 // ==================================================================================================================== -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenModSetupStrParser.cpp
r1360 r1373 37 37 #include "TRenModSetupStrParser.h" 38 38 39 #if NH_3D 39 #if NH_3D_VSO 40 40 Int 41 41 TRenModSetupStrParser::getNumOfModels() -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenModSetupStrParser.h
r1360 r1373 39 39 #include "../TLibCommon/TypeDef.h" 40 40 #include "../TAppCommon/TAppComCamPara.h" 41 #if NH_3D 41 #if NH_3D_VSO 42 42 43 43 -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenTop.cpp
r1313 r1373 40 40 #include <math.h> 41 41 #include "../TLibCommon/CommonDef.h" 42 #if NH_3D 42 #if NH_3D_VSO 43 43 44 44 -
branches/HTM-15.2-dev/source/Lib/TLibRenderer/TRenTop.h
r1313 r1373 39 39 #include "../TLibCommon/TComPicYuv.h" 40 40 41 #if NH_3D 41 #if NH_3D_VSO 42 42 #include <list> 43 43 #include <vector>
Note: See TracChangeset for help on using the changeset viewer.