Changeset 100 in 3DVCSoftware for trunk/source/App/TAppEncoder
- Timestamp:
- 9 Aug 2012, 12:53:16 (12 years ago)
- Location:
- trunk/source/App/TAppEncoder
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.cpp
r58 r100 74 74 { 75 75 m_aidQP = NULL; 76 #if FIXES 77 m_aidQPdepth = NULL; 78 #endif 76 79 } 77 80 … … 82 85 delete[] m_aidQP; m_aidQP = NULL; 83 86 } 87 88 #if FIXES 89 if ( m_aidQPdepth ) 90 { 91 delete[] m_aidQPdepth; m_aidQPdepth = NULL; 92 } 93 #endif 94 84 95 for(Int i = 0; i< m_pchInputFileList.size(); i++ ) 85 96 { … … 306 317 #if HHI_VSO 307 318 ("VSOConfig", m_pchVSOConfig , (Char *) 0 , "VSO configuration") 308 ("VSO", m_bUseVSO , false , "Use VSO" ) 309 // GT: For development, will be removed later 319 ("VSO", m_bUseVSO , false , "Use VSO" ) 310 320 ("VSOMode", m_uiVSOMode , (UInt) 4 , "VSO Mode") 321 ("LambdaScaleVSO", m_dLambdaScaleVSO , (Double) 1 , "Lambda Scaling for VSO") 322 311 323 #if HHI_VSO_LS_TABLE 312 ("LambdaScaleVSO", m_dLambdaScaleVSO , (Double) 1 , "Lambda Scaling for VSO") 313 #else 314 ("LambdaScaleVSO", m_dLambdaScaleVSO , (Double) 0.5 , "Lambda Scaling for VSO") 315 #endif 316 ("ForceLambdaScaleVSO", m_bForceLambdaScaleVSO , false , "Force using Lambda Scale VSO also in non-VSO-Mode") 324 ("VSOLSTable", m_bVSOLSTable , true , "Depth QP dependent video/depth rate allocation by Lagrange multiplier" ) 325 #endif 326 327 #if SAIT_VSO_EST_A0033 328 ("UseEstimatedVSD", m_bUseEstimatedVSD , true , "Model based VSD estimation instead of rendering based for some encoder decisions" ) 329 #endif 330 #if LGE_VSO_EARLY_SKIP_A0093 331 ("VSOEarlySkip", m_bVSOEarlySkip , true , "Early skip of VSO computation if synthesis error assumed to be zero" ) 332 #endif 333 ("ForceLambdaScaleVSO", m_bForceLambdaScaleVSO , false , "Force using Lambda Scale VSO also in non-VSO-Mode") 317 334 #if HHI_VSO_DIST_INT 318 ("AllowNegDist", m_bAllowNegDist , true , "Allow negative Distortion in VSO")335 ("AllowNegDist", m_bAllowNegDist , true , "Allow negative Distortion in VSO") 319 336 #endif 320 337 … … 667 684 0.753550, 0.800000 668 685 }; 669 AOT( (m_aiQP[1] < 0) || (m_aiQP[1] > 51)); 670 m_dLambdaScaleVSO *= adLambdaScaleTable[m_aiQP[1]]; 686 if ( m_bVSOLSTable ) 687 { 688 AOT( (m_aiQP[1] < 0) || (m_aiQP[1] > 51)); 689 m_dLambdaScaleVSO *= adLambdaScaleTable[m_aiQP[1]]; 690 } 671 691 #endif 672 692 #endif … … 1562 1582 printf("VSO Negative Distortion : %d\n", m_bAllowNegDist ? 1 : 0); 1563 1583 #endif 1584 #if HHI_VSO_LS_TABLE 1585 printf("VSO LS Table : %d\n", m_bVSOLSTable ? 1 : 0); 1586 #endif 1587 #if SAIT_VSO_EST_A0033 1588 printf("VSO Estimated VSD : %d\n", m_bUseEstimatedVSD ? 1 : 0); 1589 #endif 1590 #if LGE_VSO_EARLY_SKIP_A0093 1591 printf("VSO Early Skip : %d\n", m_bVSOEarlySkip ? 1 : 0); 1592 #endif 1593 1564 1594 } 1565 1595 #endif … … 1658 1688 #if HHI_VSO 1659 1689 printf("VSO:%d ", m_bUseVSO ); 1660 #endif 1690 #endif 1661 1691 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 1662 1692 printf("DMM:%d ", m_bUseDMM ); -
trunk/source/App/TAppEncoder/TAppEncCfg.h
r56 r100 216 216 #endif 217 217 #if HHI_INTER_VIEW_RESIDUAL_PRED 218 UInt m_uiMultiviewResPredMode; 218 UInt m_uiMultiviewResPredMode; ///< using multiview residual prediction 219 219 #endif 220 220 221 221 #if FAST_DECISION_FOR_MRG_RD_COST 222 Bool m_useFastDecisionForMerge; 223 #endif 224 Bool m_bUseCbfFastMode; 225 Int m_iSliceMode; ///< 0: Disable all Recon slice limits, 1 : Maximum number of largest coding units per slice, 2: Maximum number of bytes in a slice226 Int m_iSliceArgument; ///< If m_iSliceMode==1, m_iSliceArgument=max. # of largest coding units. If m_iSliceMode==2, m_iSliceArgument=max. # of bytes.227 Int m_iEntropySliceMode; ///< 0: Disable all entropy slice limits, 1 : Maximum number of largest coding units per slice, 2: Constraint based entropy slice228 Int m_iEntropySliceArgument; ///< If m_iEntropySliceMode==1, m_iEntropySliceArgument=max. # of largest coding units. If m_iEntropySliceMode==2, m_iEntropySliceArgument=max. # of bins.229 230 Int m_iSliceGranularity; ///< 0: Slices always end at LCU borders. 1-3: slices may end at a depth of 1-3 below LCU level.231 Bool m_bLFCrossSliceBoundaryFlag;///< 0: Cross-slice-boundary in-loop filtering 1: non-cross-slice-boundary in-loop filtering232 Int m_iTileBehaviorControlPresentFlag; //!< 1: tile behavior control parameters are in PPS 0: tile behavior control parameters are not in PPS233 Bool m_bLFCrossTileBoundaryFlag;//!< 1: Cross-tile-boundary in-loop filtering 0: non-cross-tile-boundary in-loop filtering222 Bool m_useFastDecisionForMerge; ///< flag for using Fast Decision Merge RD-Cost 223 #endif 224 Bool m_bUseCbfFastMode; ///< flag for using Cbf Fast PU Mode Decision 225 Int m_iSliceMode; ///< 0: Disable all Recon slice limits, 1 : Maximum number of largest coding units per slice, 2: Maximum number of bytes in a slice 226 Int m_iSliceArgument; ///< If m_iSliceMode==1, m_iSliceArgument=max. # of largest coding units. If m_iSliceMode==2, m_iSliceArgument=max. # of bytes. 227 Int m_iEntropySliceMode; ///< 0: Disable all entropy slice limits, 1 : Maximum number of largest coding units per slice, 2: Constraint based entropy slice 228 Int m_iEntropySliceArgument; ///< If m_iEntropySliceMode==1, m_iEntropySliceArgument=max. # of largest coding units. If m_iEntropySliceMode==2, m_iEntropySliceArgument=max. # of bins. 229 230 Int m_iSliceGranularity; ///< 0: Slices always end at LCU borders. 1-3: slices may end at a depth of 1-3 below LCU level. 231 Bool m_bLFCrossSliceBoundaryFlag; ///< 0: Cross-slice-boundary in-loop filtering 1: non-cross-slice-boundary in-loop filtering 232 Int m_iTileBehaviorControlPresentFlag; //!< 1: tile behavior control parameters are in PPS 0: tile behavior control parameters are not in PPS 233 Bool m_bLFCrossTileBoundaryFlag; //!< 1: Cross-tile-boundary in-loop filtering 0: non-cross-tile-boundary in-loop filtering 234 234 Int m_iColumnRowInfoPresent; 235 235 Int m_iUniformSpacingIdr; … … 280 280 Char* m_pchVSOConfig; 281 281 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization 282 282 #if HHI_VSO_LS_TABLE 283 Bool m_bVSOLSTable; ///< Depth QP dependent Lagrange parameter optimization (m23714) 284 #endif 285 #if LGE_VSO_EARLY_SKIP_A0093 286 Bool m_bVSOEarlySkip; ///< Early skip of VSO computation (JCT3V-A0093 modification 4) 287 #endif 283 288 //// Used for development by GT, might be removed later 284 289 Double m_dLambdaScaleVSO; ///< Scaling factor for Lambda in VSO mode … … 289 294 UInt m_uiVSOMode; ///< Number of VSO Mode, 1 = , 2 = simple, org vs. ren, 3 = simple, ren vs. ren, 4 = full 290 295 #endif 296 #if SAIT_VSO_EST_A0033 297 Bool m_bUseEstimatedVSD; ///< Flag for using model based VSD estimation instead of VSO for some encoder decisions (JCT3V-A0033 modification 3) 298 Double m_dDispCoeff; 299 #endif 291 300 292 301 // coding tools (depth intra modes) -
trunk/source/App/TAppEncoder/TAppEncTop.cpp
r77 r100 203 203 m_acTEncTopList[iViewIdx]->setLambdaScaleVSO ( 1 ); 204 204 m_acTEncTopList[iViewIdx]->setVSOMode ( 0 ); 205 m_acTEncTopList[iViewIdx]->setUseVSO ( false ); //GT: might be enabled later for VSO Mode 4 205 m_acTEncTopList[iViewIdx]->setUseVSO ( false ); 206 #if SAIT_VSO_EST_A0033 207 m_acTEncTopList[iViewIdx]->setUseEstimatedVSD ( false ); 208 #endif 206 209 #endif 207 210 … … 517 520 #endif 518 521 m_acTEncDepthTopList[iViewIdx]->setVSOMode ( m_uiVSOMode ); 522 523 #if SAIT_VSO_EST_A0033 524 m_acTEncDepthTopList[iViewIdx]->setUseEstimatedVSD ( m_bUseEstimatedVSD ); 525 #endif 519 526 #endif 520 527 … … 648 655 if ( m_uiVSOMode == 4 ) 649 656 { 657 #if HHI_VSO_SPEEDUP_A033 658 #if LGE_VSO_EARLY_SKIP_A0093 659 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, g_uiMaxCUHeight , LOG2_DISP_PREC_LUT, 0, m_bVSOEarlySkip ); 660 #else 661 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, g_uiMaxCUHeight , LOG2_DISP_PREC_LUT, 0 ); 662 #endif 663 #else 650 664 m_cRendererModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, m_iSourceHeight, LOG2_DISP_PREC_LUT, 0 ); 665 #endif 651 666 652 667 for ( Int iViewNum = 0; iViewNum < m_iNumberOfViews; iViewNum++ ) … … 1141 1156 }; 1142 1157 1158 #if SAIT_VSO_EST_A0033 1159 TComPicYuv* TAppEncTop::xGetPicYuvFromViewTemp( Int iViewIdx, Int iPoc, Bool bDepth, Bool bRecon ) 1160 { 1161 TComPic* pcPic = xGetPicFromView( iViewIdx, iPoc, bDepth); 1162 TComPicYuv* pcPicYuv = NULL; 1163 1164 if (pcPic != NULL) 1165 { 1166 if( bRecon ) 1167 { 1168 if ( pcPic->getReconMark() ) 1169 { 1170 pcPicYuv = pcPic->getPicYuvRec(); 1171 } 1172 } 1173 else 1174 { 1175 pcPicYuv = pcPic->getPicYuvOrg(); 1176 } 1177 }; 1178 1179 return pcPicYuv; 1180 }; 1181 #endif 1182 1143 1183 /** 1144 1184 * … … 1209 1249 #endif 1210 1250 #if HHI_VSO 1251 #if HHI_VSO_SPEEDUP_A033 1252 Void TAppEncTop::setupRenModel( Int iPoc, Int iEncViewIdx, Int iEncContent, Int iHorOffset ) 1253 { 1254 m_cRendererModel.setHorOffset( iHorOffset ); 1255 #else 1211 1256 Void TAppEncTop::setupRenModel( Int iPoc, Int iEncViewIdx, Int iEncContent ) 1212 1257 { 1258 #endif 1213 1259 Int iEncViewSIdx = m_cCameraData.getBaseId2SortedId()[ iEncViewIdx ]; 1214 1260 -
trunk/source/App/TAppEncoder/TAppEncTop.h
r77 r100 63 63 private: 64 64 // class interface 65 std::vector<TEncTop*> 66 std::vector<TEncTop*> 67 std::vector<TVideoIOYuv*> 65 std::vector<TEncTop*> m_acTEncTopList ; 66 std::vector<TEncTop*> m_acTEncDepthTopList ; 67 std::vector<TVideoIOYuv*> m_acTVideoIOYuvInputFileList; ///< input YUV file 68 68 std::vector<TVideoIOYuv*> m_acTVideoIOYuvDepthInputFileList; 69 std::vector<TVideoIOYuv*> 69 std::vector<TVideoIOYuv*> m_acTVideoIOYuvReconFileList; ///< output reconstruction file 70 70 std::vector<TVideoIOYuv*> m_acTVideoIOYuvDepthReconFileList; 71 71 … … 73 73 std::vector< TComList<TComPicYuv*>* > m_picYuvDepthRec; 74 74 75 std::vector<Int> 76 std::vector<Int> 75 std::vector<Int> m_frameRcvd; ///< number of received frames 76 std::vector<Int> m_depthFrameRcvd; 77 77 78 78 unsigned m_essentialBytes; … … 124 124 virtual ~TAppEncTop(); 125 125 126 #if SAIT_VSO_EST_A0033 127 TComPicYuv* xGetPicYuvFromViewTemp( Int iViewIdx, Int iPoc, Bool bDepth, Bool bRecon ); 128 #endif 129 126 130 Void encode (); ///< main encoding function 127 131 TEncTop* getTEncTop( Int viewId, Bool isDepth ); … … 135 139 #endif 136 140 #if HHI_VSO 141 #if HHI_VSO_SPEEDUP_A033 142 Void setupRenModel ( Int iPoc, Int iEncViewIdx, Int iEncContent, Int iHorOffset ); 143 #else 137 144 Void setupRenModel ( Int iPoc, Int iEncViewIdx, Int iEncContent ); 145 #endif 138 146 #endif 139 147
Note: See TracChangeset for help on using the changeset viewer.