Changeset 5 in 3DVCSoftware for trunk/source/App/TAppEncoder/TAppEncCfg.h


Ignore:
Timestamp:
12 Dec 2011, 18:35:44 (13 years ago)
Author:
hhi
Message:

Clean version with cfg-files

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
    134
    235
     
    3568
    3669  std::vector<char*>     m_pchERRefFileList;                  ///< virtual external reference view files names
    37  
     70
    3871  // source specification
    3972  Int       m_iFrameRate;                                     ///< source frame-rates (Hz)
     
    4477  Bool      m_bUsePAD;                                        ///< flag for using source padding
    4578  Int       m_aiPad[2];                                       ///< number of padded pixels for width and height
    46  
     79
    4780  Int       m_iNumberOfViews;                                ///< number Views to Encode
    4881  Bool      m_bUsingDepthMaps ;
     
    5689  Int       m_iGOPSize;                                       ///< GOP size of hierarchical structure
    5790  Int       m_iRateGOPSize;                                   ///< GOP size for QP variance
    58 #if !SB_NO_LowDelayCoding
     91#if !HHI_NO_LowDelayCoding
    5992  Bool      m_bUseLDC;                                        ///< flag for using low-delay coding mode
    6093#endif
     
    6396  Bool      m_bLCMod;                                         ///< flag for specifying whether the combined reference list for uni-prediction in B-slices is uploaded explicitly
    6497#endif
    65   // SB
    6698  std::string     m_cInputFormatString ;                            // GOP string
    6799  // coding quality
    68 //GT QP Depth
     100
    69101  std::vector<Double>  m_adQP;                                ///< QP value of key-picture (floating point) [0] video, [1] depth
    70102  std::vector<Int>     m_aiQP;                                ///< QP value of key-picture (integer)
    71 //GT QP Depth end
     103
    72104  Int       m_aiTLayerQPOffset[MAX_TLAYER];                   ///< QP offset corresponding to temporal layer depth
    73105  char*     m_pchdQPFile;                                     ///< QP offset for each slice (initialized from external file)
     
    75107  Int       m_iMaxDeltaQP;                                    ///< max. |delta QP|
    76108  UInt      m_uiDeltaQpRD;                                    ///< dQP range for multi-pass slice QP optimization
    77  
     109
    78110  // coding unit (CU) definition
    79111  UInt      m_uiMaxCUWidth;                                   ///< max. CU width in pixel
    80112  UInt      m_uiMaxCUHeight;                                  ///< max. CU height in pixel
    81113  UInt      m_uiMaxCUDepth;                                   ///< max. CU depth
    82  
     114
    83115  // transfom unit (TU) definition
    84116  UInt      m_uiQuadtreeTULog2MaxSize;
    85117  UInt      m_uiQuadtreeTULog2MinSize;
    86  
     118
    87119  UInt      m_uiQuadtreeTUMaxDepthInter;
    88120  UInt      m_uiQuadtreeTUMaxDepthIntra;
    89  
     121
    90122  // coding tools (bit-depth)
    91123  UInt      m_uiInputBitDepth;                                ///< bit-depth of input file
     
    95127#endif
    96128  UInt      m_uiInternalBitDepth;                             ///< Internal bit-depth (BitDepth+BitIncrement)
    97  
     129
    98130#if MTK_SAO
    99   vector<Bool> m_abUseSAO; 
     131  vector<Bool> m_abUseSAO;
    100132#endif
    101133
     
    105137  Int       m_iALFEncodePassReduction;                        ///< ALF encoding pass, 0 = original 16-pass, 1 = 1-pass, 2 = 2-pass
    106138#endif
    107  
     139
    108140  vector<Bool> m_abLoopFilterDisable;                         ///< flag for using deblocking filter filter [0] - video, [1] - depth
    109141  Int       m_iLoopFilterAlphaC0Offset;                       ///< alpha offset for deblocking filter
    110142  Int       m_iLoopFilterBetaOffset;                          ///< beta offset for deblocking filter
    111  
     143
    112144  // coding tools (entropy coder)
    113145  Int       m_iSymbolMode;                                    ///< entropy coder mode, 0 = VLC, 1 = CABAC
    114  
     146
    115147  // coding tools (inter - merge motion partitions)
    116148  Bool      m_bUseMRG;                                        ///< SOPH: flag for using motion partition Merge Mode
    117  
    118 #if LM_CHROMA 
     149
     150#if LM_CHROMA
    119151  Bool      m_bUseLMChroma;                                  ///< JL: Chroma intra prediction based on luma signal
    120152#endif
     
    123155  Bool      m_bUseRMP;
    124156#endif
    125  
     157
    126158  // coding tools (encoder-only parameters)
    127159  Bool      m_bUseSBACRD;                                     ///< flag for using RD optimization based on SBAC
     
    134166  Bool      m_bUseFastEnc;                                    ///< flag for using fast encoder setting
    135167
     168#if DEPTH_MAP_GENERATION
    136169  UInt      m_uiPredDepthMapGeneration;                       ///< using of (virtual) depth maps for texture coding
     170#endif
     171#if HHI_INTER_VIEW_MOTION_PRED
    137172  UInt      m_uiMultiviewMvPredMode;                          ///< usage of predictors for multi-view mv prediction
    138173  UInt      m_uiMultiviewMvRegMode;                           ///< regularization for multiview motion vectors
    139174  Double    m_dMultiviewMvRegLambdaScale;                     ///< lambda scale for multiview motion vectors regularization
     175#endif
     176#if HHI_INTER_VIEW_RESIDUAL_PRED
    140177  UInt      m_uiMultiviewResPredMode;                         ///< using multiview residual prediction
    141 
    142 #if SB_INTERVIEW_SKIP
     178#endif
     179
     180#if HHI_INTERVIEW_SKIP
    143181  UInt      m_uiInterViewSkip;                            ///< usage of interview skip mode ( do not transmit residual)
    144 #if SB_INTERVIEW_SKIP_LAMBDA_SCALE
     182#if HHI_INTERVIEW_SKIP_LAMBDA_SCALE
    145183  Double    m_dInterViewSkipLambdaScale;                 ///< lambda scale for interview skip
    146184#endif
    147185#endif
    148 //GT campara
     186
    149187  // camera parameter
    150188  Char*     m_pchCameraParameterFile;                         ///< camera parameter file
    151189  Char*     m_pchBaseViewCameraNumbers;
    152   TAppComCamPara m_cCameraData;           
    153 //GT campara end
     190  TAppComCamPara m_cCameraData;
     191
    154192  Int       m_iCodedCamParPrecision;                          ///< precision for coding of camera parameters
    155193
     194#if HHI_INTERVIEW_SKIP
    156195  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
    163203  Double    m_dLambdaScaleVSO;                            ///< Scaling factor for Lambda in VSO mode
    164204  Bool      m_bForceLambdaScaleVSO;                       ///< Use Lambda Scale for depth even if VSO is turned off
    165 #if RDO_DIST_INT
    166   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
    169209  Int       m_iNumberOfExternalRefs;                      ///< number Virtual External Reference Views
    170210  std::vector< std::vector<Int> > m_aaiBaseViewRefInd;    ///< View numbers of Base View References
    171211  std::vector< std::vector<Int> > m_aaiERViewRefInd;      ///< View numbers of External ViewReferences
    172212  std::vector< std::vector<Int> > m_aaiERViewRefLutInd;   ///< Indices of LUTs used for External View References
    173 
    174 //GT VSO end
    175  
     213#endif
     214
    176215  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
    177216  Int       m_iSliceArgument;       ///< If m_iSliceMode==1, m_iSliceArgument=max. # of largest coding units. If m_iSliceMode==2, m_iSliceArgument=max. # of bytes.
     
    188227  Bool      m_bUseConstrainedIntraPred;                       ///< flag for using constrained intra prediction
    189228#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
    193233  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
    195235
    196236  PicOrderCnt m_iQpChangeFrame;
     
    211251  Void  xPrintParameter ();                                   ///< print configuration values
    212252  Void  xPrintUsage     ();                                   ///< print usage
    213  
     253
    214254  Void  xCleanUpVectors ();                                   ///< clean up vector sizes
    215255  Void  xInitCameraPars ();                                   ///< init camera parameters
     
    221261
    222262  // util
    223   Void  xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char* & rpchOutputFileName); 
     263  Void  xAppendToFileNameEnd( Char* pchInputFileName, const Char* pchStringToAppend, Char* & rpchOutputFileName);
    224264  Bool  xConfirmParameter(Bool bflag, const char* message);
    225265
     
    227267  template <class T> Void xCleanUpVector( std::vector<T>& rcVec, const T& rcInvalid );
    228268
     269#if HHI_VSO
    229270  // Ren Model String
    230   TRenModSetupStrParser       m_cRenModStrParser;
     271  TRenModSetupStrParser       m_cRenModStrParser;
     272#endif
    231273public:
    232274
    233275  TAppEncCfg();
    234276  virtual ~TAppEncCfg();
    235  
     277
    236278public:
    237279  Void  create    ();                                         ///< create option handling class
    238280  Void  destroy   ();                                         ///< destroy option handling class
    239281  Bool  parseCfg  ( Int argc, Char* argv[] );                 ///< parse configuration file to fill member variables
    240  
     282
    241283};// END CLASS DEFINITION TAppEncCfg
    242284
Note: See TracChangeset for help on using the changeset viewer.