Changeset 5 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncCfg.h
- Timestamp:
- 12 Dec 2011, 18:35:44 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/App/TAppEncoder/TAppEncCfg.h
r2 r5 1 /* The copyright in this software is being made available under the BSD 2 * License, included below. This software may be subject to other third party 3 * and contributor rights, including patent rights, and no such rights are 4 * granted under this license. 5 * 6 * Copyright (c) 2010-2011, ISO/IEC 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions are met: 11 * 12 * * Redistributions of source code must retain the above copyright notice, 13 * this list of conditions and the following disclaimer. 14 * * Redistributions in binary form must reproduce the above copyright notice, 15 * this list of conditions and the following disclaimer in the documentation 16 * and/or other materials provided with the distribution. 17 * * Neither the name of the ISO/IEC nor the names of its contributors may 18 * be used to endorse or promote products derived from this software without 19 * specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 31 * THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 1 34 2 35 … … 35 68 36 69 std::vector<char*> m_pchERRefFileList; ///< virtual external reference view files names 37 70 38 71 // source specification 39 72 Int m_iFrameRate; ///< source frame-rates (Hz) … … 44 77 Bool m_bUsePAD; ///< flag for using source padding 45 78 Int m_aiPad[2]; ///< number of padded pixels for width and height 46 79 47 80 Int m_iNumberOfViews; ///< number Views to Encode 48 81 Bool m_bUsingDepthMaps ; … … 56 89 Int m_iGOPSize; ///< GOP size of hierarchical structure 57 90 Int m_iRateGOPSize; ///< GOP size for QP variance 58 #if ! SB_NO_LowDelayCoding91 #if !HHI_NO_LowDelayCoding 59 92 Bool m_bUseLDC; ///< flag for using low-delay coding mode 60 93 #endif … … 63 96 Bool m_bLCMod; ///< flag for specifying whether the combined reference list for uni-prediction in B-slices is uploaded explicitly 64 97 #endif 65 // SB66 98 std::string m_cInputFormatString ; // GOP string 67 99 // coding quality 68 //GT QP Depth 100 69 101 std::vector<Double> m_adQP; ///< QP value of key-picture (floating point) [0] video, [1] depth 70 102 std::vector<Int> m_aiQP; ///< QP value of key-picture (integer) 71 //GT QP Depth end 103 72 104 Int m_aiTLayerQPOffset[MAX_TLAYER]; ///< QP offset corresponding to temporal layer depth 73 105 char* m_pchdQPFile; ///< QP offset for each slice (initialized from external file) … … 75 107 Int m_iMaxDeltaQP; ///< max. |delta QP| 76 108 UInt m_uiDeltaQpRD; ///< dQP range for multi-pass slice QP optimization 77 109 78 110 // coding unit (CU) definition 79 111 UInt m_uiMaxCUWidth; ///< max. CU width in pixel 80 112 UInt m_uiMaxCUHeight; ///< max. CU height in pixel 81 113 UInt m_uiMaxCUDepth; ///< max. CU depth 82 114 83 115 // transfom unit (TU) definition 84 116 UInt m_uiQuadtreeTULog2MaxSize; 85 117 UInt m_uiQuadtreeTULog2MinSize; 86 118 87 119 UInt m_uiQuadtreeTUMaxDepthInter; 88 120 UInt m_uiQuadtreeTUMaxDepthIntra; 89 121 90 122 // coding tools (bit-depth) 91 123 UInt m_uiInputBitDepth; ///< bit-depth of input file … … 95 127 #endif 96 128 UInt m_uiInternalBitDepth; ///< Internal bit-depth (BitDepth+BitIncrement) 97 129 98 130 #if MTK_SAO 99 vector<Bool> m_abUseSAO; 131 vector<Bool> m_abUseSAO; 100 132 #endif 101 133 … … 105 137 Int m_iALFEncodePassReduction; ///< ALF encoding pass, 0 = original 16-pass, 1 = 1-pass, 2 = 2-pass 106 138 #endif 107 139 108 140 vector<Bool> m_abLoopFilterDisable; ///< flag for using deblocking filter filter [0] - video, [1] - depth 109 141 Int m_iLoopFilterAlphaC0Offset; ///< alpha offset for deblocking filter 110 142 Int m_iLoopFilterBetaOffset; ///< beta offset for deblocking filter 111 143 112 144 // coding tools (entropy coder) 113 145 Int m_iSymbolMode; ///< entropy coder mode, 0 = VLC, 1 = CABAC 114 146 115 147 // coding tools (inter - merge motion partitions) 116 148 Bool m_bUseMRG; ///< SOPH: flag for using motion partition Merge Mode 117 118 #if LM_CHROMA 149 150 #if LM_CHROMA 119 151 Bool m_bUseLMChroma; ///< JL: Chroma intra prediction based on luma signal 120 152 #endif … … 123 155 Bool m_bUseRMP; 124 156 #endif 125 157 126 158 // coding tools (encoder-only parameters) 127 159 Bool m_bUseSBACRD; ///< flag for using RD optimization based on SBAC … … 134 166 Bool m_bUseFastEnc; ///< flag for using fast encoder setting 135 167 168 #if DEPTH_MAP_GENERATION 136 169 UInt m_uiPredDepthMapGeneration; ///< using of (virtual) depth maps for texture coding 170 #endif 171 #if HHI_INTER_VIEW_MOTION_PRED 137 172 UInt m_uiMultiviewMvPredMode; ///< usage of predictors for multi-view mv prediction 138 173 UInt m_uiMultiviewMvRegMode; ///< regularization for multiview motion vectors 139 174 Double m_dMultiviewMvRegLambdaScale; ///< lambda scale for multiview motion vectors regularization 175 #endif 176 #if HHI_INTER_VIEW_RESIDUAL_PRED 140 177 UInt m_uiMultiviewResPredMode; ///< using multiview residual prediction 141 142 #if SB_INTERVIEW_SKIP 178 #endif 179 180 #if HHI_INTERVIEW_SKIP 143 181 UInt m_uiInterViewSkip; ///< usage of interview skip mode ( do not transmit residual) 144 #if SB_INTERVIEW_SKIP_LAMBDA_SCALE182 #if HHI_INTERVIEW_SKIP_LAMBDA_SCALE 145 183 Double m_dInterViewSkipLambdaScale; ///< lambda scale for interview skip 146 184 #endif 147 185 #endif 148 //GT campara 186 149 187 // camera parameter 150 188 Char* m_pchCameraParameterFile; ///< camera parameter file 151 189 Char* m_pchBaseViewCameraNumbers; 152 TAppComCamPara m_cCameraData; 153 //GT campara end 190 TAppComCamPara m_cCameraData; 191 154 192 Int m_iCodedCamParPrecision; ///< precision for coding of camera parameters 155 193 194 #if HHI_INTERVIEW_SKIP 156 195 TRenTop m_cUsedPelsRenderer; ///< renderer for used pels map 157 158 //GT VSO 159 Char* m_pchVSOConfig; 160 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization 161 162 //// Used for development by GT, might be removed later 196 #endif 197 198 #if HHI_VSO 199 Char* m_pchVSOConfig; 200 Bool m_bUseVSO; ///< flag for using View Synthesis Optimization 201 202 //// Used for development by GT, might be removed later 163 203 Double m_dLambdaScaleVSO; ///< Scaling factor for Lambda in VSO mode 164 204 Bool m_bForceLambdaScaleVSO; ///< Use Lambda Scale for depth even if VSO is turned off 165 #if RDO_DIST_INT166 Bool m_bAllowNegDist; ///< Allow negative distortion in VSO 167 #endif 168 UInt m_uiVSOMode; ///< Number of VSO Mode, 1 = , 2 = simple, org vs. ren, 3 = simple, ren vs. ren, 4 = full 205 #if HHI_VSO_DIST_INT 206 Bool m_bAllowNegDist; ///< Allow negative distortion in VSO 207 #endif 208 UInt m_uiVSOMode; ///< Number of VSO Mode, 1 = , 2 = simple, org vs. ren, 3 = simple, ren vs. ren, 4 = full 169 209 Int m_iNumberOfExternalRefs; ///< number Virtual External Reference Views 170 210 std::vector< std::vector<Int> > m_aaiBaseViewRefInd; ///< View numbers of Base View References 171 211 std::vector< std::vector<Int> > m_aaiERViewRefInd; ///< View numbers of External ViewReferences 172 212 std::vector< std::vector<Int> > m_aaiERViewRefLutInd; ///< Indices of LUTs used for External View References 173 174 //GT VSO end 175 213 #endif 214 176 215 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 177 216 Int m_iSliceArgument; ///< If m_iSliceMode==1, m_iSliceArgument=max. # of largest coding units. If m_iSliceMode==2, m_iSliceArgument=max. # of bytes. … … 188 227 Bool m_bUseConstrainedIntraPred; ///< flag for using constrained intra prediction 189 228 #endif 190 #if HHI_DMM_INTRA 191 Bool m_bUseDepthModelModes; 192 #endif 229 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX 230 Bool m_bUseDMM; 231 #endif 232 #if HHI_MPI 193 233 Bool m_bUseMVI; ///< flag for using Motion Vector Inheritance for depth map coding 194 Bool m_bOmitUnusedBlocks; ///< flag for not coding blocks not used for rendering 234 #endif 195 235 196 236 PicOrderCnt m_iQpChangeFrame; … … 211 251 Void xPrintParameter (); ///< print configuration values 212 252 Void xPrintUsage (); ///< print usage 213 253 214 254 Void xCleanUpVectors (); ///< clean up vector sizes 215 255 Void xInitCameraPars (); ///< init camera parameters … … 221 261 222 262 // util 223 Void xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char* & rpchOutputFileName); 263 Void xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char* & rpchOutputFileName); 224 264 Bool xConfirmParameter(Bool bflag, const char* message); 225 265 … … 227 267 template <class T> Void xCleanUpVector( std::vector<T>& rcVec, const T& rcInvalid ); 228 268 269 #if HHI_VSO 229 270 // Ren Model String 230 TRenModSetupStrParser m_cRenModStrParser; 271 TRenModSetupStrParser m_cRenModStrParser; 272 #endif 231 273 public: 232 274 233 275 TAppEncCfg(); 234 276 virtual ~TAppEncCfg(); 235 277 236 278 public: 237 279 Void create (); ///< create option handling class 238 280 Void destroy (); ///< destroy option handling class 239 281 Bool parseCfg ( Int argc, Char* argv[] ); ///< parse configuration file to fill member variables 240 282 241 283 };// END CLASS DEFINITION TAppEncCfg 242 284
Note: See TracChangeset for help on using the changeset viewer.