source: SHVCSoftware/branches/SHM-2.1-dev/source/App/TAppEncoder/TAppEncCfg.h @ 290

Last change on this file since 290 was 288, checked in by qualcomm, 12 years ago

Changes made to signaling of scaled reference layer offsets.

Patch incorporating changes made to signaling of scaled reference layer offsets during SHVC editing. The number of sets of scaled reference layer offsets is signaled. Changes to configuration files also included.

From: Adarsh K. Ramasubramonian <aramasub@…>

File size: 25.4 KB
Line 
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-2013, ITU/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 ITU/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
34/** \file     TAppEncCfg.h
35    \brief    Handle encoder configuration parameters (header)
36*/
37
38#ifndef __TAPPENCCFG__
39#define __TAPPENCCFG__
40
41#include "TLibCommon/CommonDef.h"
42
43#include "TLibEncoder/TEncCfg.h"
44#if SVC_EXTENSION
45#include "TAppEncLayerCfg.h"
46#endif
47#include <sstream>
48//! \ingroup TAppEncoder
49//! \{
50
51// ====================================================================================================================
52// Class definition
53// ====================================================================================================================
54
55/// encoder configuration class
56class TAppEncCfg
57{
58protected:
59  // file I/O
60#if SVC_EXTENSION
61  TAppEncLayerCfg m_acLayerCfg [MAX_LAYERS]; 
62  Int       m_numLayers;                                      ///< number of layers
63  Int       m_scalabilityMask[MAX_VPS_NUM_SCALABILITY_TYPES]; ///< scalability_mask
64  Char*     m_pBitstreamFile;                                 ///< output bitstream file
65  Double    m_adLambdaModifier[ MAX_TLAYER ];                 ///< Lambda modifier array for each temporal layer
66  // source specification
67  UInt      m_FrameSkip;                                      ///< number of skipped frames from the beginning
68  Int       m_framesToBeEncoded;                              ///< number of encoded frames
69#if AVC_BASE
70  Int       m_avcBaseLayerFlag;                               ///< AVC_BASElayer_flag
71#endif
72#if AVC_SYNTAX
73  Char*     m_BLSyntaxFile;                                   ///< input syntax file
74#endif
75#else
76  Char*     m_pchInputFile;                                   ///< source file name
77  Char*     m_pchBitstreamFile;                               ///< output bitstream file
78  Char*     m_pchReconFile;                                   ///< output reconstruction file
79  Double    m_adLambdaModifier[ MAX_TLAYER ];                 ///< Lambda modifier array for each temporal layer
80  // source specification
81  Int       m_iFrameRate;                                     ///< source frame-rates (Hz)
82  UInt      m_FrameSkip;                                      ///< number of skipped frames from the beginning
83  Int       m_iSourceWidth;                                   ///< source width in pixel
84  Int       m_iSourceHeight;                                  ///< source height in pixel
85  Int       m_conformanceMode;
86  Int       m_confLeft;
87  Int       m_confRight;
88  Int       m_confTop;
89  Int       m_confBottom;
90  Int       m_framesToBeEncoded;                              ///< number of encoded frames
91  Int       m_aiPad[2];                                       ///< number of padded pixels for width and height
92#endif 
93
94  // profile/level
95  Profile::Name m_profile;
96  Level::Tier   m_levelTier;
97  Level::Name   m_level;
98#if L0046_CONSTRAINT_FLAGS
99  Bool m_progressiveSourceFlag;
100  Bool m_interlacedSourceFlag;
101  Bool m_nonPackedConstraintFlag;
102  Bool m_frameOnlyConstraintFlag;
103#endif
104 
105  // coding structure
106#if !SVC_EXTENSION
107  Int       m_iIntraPeriod;                                   ///< period of I-slice (random access period)
108#endif
109  Int       m_iDecodingRefreshType;                           ///< random access type
110  Int       m_iGOPSize;                                       ///< GOP size of hierarchical structure
111  Int       m_extraRPSs;                                      ///< extra RPSs added to handle CRA
112  GOPEntry  m_GOPList[MAX_GOP];                               ///< the coding structure entries from the config file
113  Int       m_numReorderPics[MAX_TLAYER];                     ///< total number of reorder pictures
114#if L0323_DPB
115  Int       m_maxDecPicBuffering[MAX_TLAYER];                 ///< total number of pictures in the decoded picture buffer
116#else
117  Int       m_maxDecPicBuffering[MAX_TLAYER];                 ///< total number of reference pictures needed for decoding
118#endif
119#if !L0034_COMBINED_LIST_CLEANUP
120  Bool      m_bUseLComb;                                      ///< flag for using combined reference list for uni-prediction in B-slices (JCTVC-D421)
121#endif
122  Bool      m_useTransformSkip;                               ///< flag for enabling intra transform skipping
123  Bool      m_useTransformSkipFast;                           ///< flag for enabling fast intra transform skipping
124  Bool      m_enableAMP;
125  // coding quality
126#if !SVC_EXTENSION
127  Double    m_fQP;                                            ///< QP value of key-picture (floating point)
128  Int       m_iQP;                                            ///< QP value of key-picture (integer)
129  Char*     m_pchdQPFile;                                     ///< QP offset for each slice (initialized from external file)
130  Int*      m_aidQP;                                          ///< array of slice QP values
131#endif
132  Int       m_iMaxDeltaQP;                                    ///< max. |delta QP|
133  UInt      m_uiDeltaQpRD;                                    ///< dQP range for multi-pass slice QP optimization
134  Int       m_iMaxCuDQPDepth;                                 ///< Max. depth for a minimum CuDQPSize (0:default)
135
136  Int       m_cbQpOffset;                                     ///< Chroma Cb QP Offset (0:default)
137  Int       m_crQpOffset;                                     ///< Chroma Cr QP Offset (0:default)
138
139#if ADAPTIVE_QP_SELECTION
140  Bool      m_bUseAdaptQpSelect;
141#endif
142
143  Bool      m_bUseAdaptiveQP;                                 ///< Flag for enabling QP adaptation based on a psycho-visual model
144  Int       m_iQPAdaptationRange;                             ///< dQP range by QP adaptation
145 
146  Int       m_maxTempLayer;                                  ///< Max temporal layer
147
148  // coding unit (CU) definition
149  UInt      m_uiMaxCUWidth;                                   ///< max. CU width in pixel
150  UInt      m_uiMaxCUHeight;                                  ///< max. CU height in pixel
151  UInt      m_uiMaxCUDepth;                                   ///< max. CU depth
152 
153  // transfom unit (TU) definition
154  UInt      m_uiQuadtreeTULog2MaxSize;
155  UInt      m_uiQuadtreeTULog2MinSize;
156 
157  UInt      m_uiQuadtreeTUMaxDepthInter;
158  UInt      m_uiQuadtreeTUMaxDepthIntra;
159 
160  // coding tools (bit-depth)
161  Int       m_inputBitDepthY;                               ///< bit-depth of input file (luma component)
162  Int       m_inputBitDepthC;                               ///< bit-depth of input file (chroma component)
163  Int       m_outputBitDepthY;                              ///< bit-depth of output file (luma component)
164  Int       m_outputBitDepthC;                              ///< bit-depth of output file (chroma component)
165  Int       m_internalBitDepthY;                            ///< bit-depth codec operates at in luma (input/output files will be converted)
166  Int       m_internalBitDepthC;                            ///< bit-depth codec operates at in chroma (input/output files will be converted)
167
168  // coding tools (PCM bit-depth)
169  Bool      m_bPCMInputBitDepthFlag;                          ///< 0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
170
171  // coding tool (lossless)
172  Bool      m_useLossless;                                    ///< flag for using lossless coding
173  Bool      m_bUseSAO; 
174  Int       m_maxNumOffsetsPerPic;                            ///< SAO maximun number of offset per picture
175  Bool      m_saoLcuBoundary;                                 ///< SAO parameter estimation using non-deblocked pixels for LCU bottom and right boundary areas
176  Bool      m_saoLcuBasedOptimization;                        ///< SAO LCU-based optimization
177  // coding tools (loop filter)
178  Bool      m_bLoopFilterDisable;                             ///< flag for using deblocking filter
179  Bool      m_loopFilterOffsetInPPS;                         ///< offset for deblocking filter in 0 = slice header, 1 = PPS
180  Int       m_loopFilterBetaOffsetDiv2;                     ///< beta offset for deblocking filter
181  Int       m_loopFilterTcOffsetDiv2;                       ///< tc offset for deblocking filter
182  Bool      m_DeblockingFilterControlPresent;                 ///< deblocking filter control present flag in PPS
183#if L0386_DB_METRIC
184  Bool      m_DeblockingFilterMetric;                         ///< blockiness metric in encoder
185#endif
186 
187  // coding tools (PCM)
188  Bool      m_usePCM;                                         ///< flag for using IPCM
189  UInt      m_pcmLog2MaxSize;                                 ///< log2 of maximum PCM block size
190  UInt      m_uiPCMLog2MinSize;                               ///< log2 of minimum PCM block size
191  Bool      m_bPCMFilterDisableFlag;                          ///< PCM filter disable flag
192
193  // coding tools (encoder-only parameters)
194  Bool      m_bUseSBACRD;                                     ///< flag for using RD optimization based on SBAC
195  Bool      m_bUseASR;                                        ///< flag for using adaptive motion search range
196  Bool      m_bUseHADME;                                      ///< flag for using HAD in sub-pel ME
197  Bool      m_useRDOQ;                                       ///< flag for using RD optimized quantization
198  Bool      m_useRDOQTS;                                     ///< flag for using RD optimized quantization for transform skip
199#if L0232_RD_PENALTY
200  Int      m_rdPenalty;                                      ///< RD-penalty for 32x32 TU for intra in non-intra slices (0: no RD-penalty, 1: RD-penalty, 2: maximum RD-penalty)
201#endif
202  Int       m_iFastSearch;                                    ///< ME mode, 0 = full, 1 = diamond, 2 = PMVFAST
203  Int       m_iSearchRange;                                   ///< ME search range
204  Int       m_bipredSearchRange;                              ///< ME search range for bipred refinement
205  Bool      m_bUseFastEnc;                                    ///< flag for using fast encoder setting
206  Bool      m_bUseEarlyCU;                                    ///< flag for using Early CU setting
207  Bool      m_useFastDecisionForMerge;                        ///< flag for using Fast Decision Merge RD-Cost
208  Bool      m_bUseCbfFastMode;                              ///< flag for using Cbf Fast PU Mode Decision
209  Bool      m_useEarlySkipDetection;                         ///< flag for using Early SKIP Detection
210#if FAST_INTRA_SHVC
211  Bool      m_useFastIntraScalable;                          ///< flag for using Fast Intra Decision for Scalable HEVC
212#endif
213  Int       m_sliceMode;                                     ///< 0: no slice limits, 1 : max number of CTBs per slice, 2: max number of bytes per slice,
214                                                             ///< 3: max number of tiles per slice
215  Int       m_sliceArgument;                                 ///< argument according to selected slice mode
216  Int       m_sliceSegmentMode;                              ///< 0: no slice segment limits, 1 : max number of CTBs per slice segment, 2: max number of bytes per slice segment,
217                                                             ///< 3: max number of tiles per slice segment
218  Int       m_sliceSegmentArgument;                          ///< argument according to selected slice segment mode
219
220  Bool      m_bLFCrossSliceBoundaryFlag;  ///< 1: filter across slice boundaries 0: do not filter across slice boundaries
221  Bool      m_bLFCrossTileBoundaryFlag;   ///< 1: filter across tile boundaries  0: do not filter across tile boundaries
222  Int       m_iUniformSpacingIdr;
223  Int       m_iNumColumnsMinus1;
224  Char*     m_pchColumnWidth;
225  Int       m_iNumRowsMinus1;
226  Char*     m_pchRowHeight;
227  UInt*     m_pColumnWidth;
228  UInt*     m_pRowHeight;
229  Int       m_iWaveFrontSynchro; //< 0: no WPP. >= 1: WPP is enabled, the "Top right" from which inheritance occurs is this LCU offset in the line above the current.
230#if !SVC_EXTENSION
231  Int       m_iWaveFrontSubstreams; //< If iWaveFrontSynchro, this is the number of substreams per frame (dependent tiles) or per tile (independent tiles).
232#endif
233
234  Bool      m_bUseConstrainedIntraPred;                       ///< flag for using constrained intra prediction
235 
236  Int       m_decodedPictureHashSEIEnabled;                    ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message
237  Int       m_recoveryPointSEIEnabled;
238  Int       m_bufferingPeriodSEIEnabled;
239  Int       m_pictureTimingSEIEnabled;
240#if J0149_TONE_MAPPING_SEI
241  Bool      m_toneMappingInfoSEIEnabled;
242  Int       m_toneMapId;
243  Bool      m_toneMapCancelFlag;
244  Bool      m_toneMapPersistenceFlag;
245  Int       m_toneMapCodedDataBitDepth;
246  Int       m_toneMapTargetBitDepth;
247  Int       m_toneMapModelId; 
248  Int       m_toneMapMinValue;
249  Int       m_toneMapMaxValue;
250  Int       m_sigmoidMidpoint;
251  Int       m_sigmoidWidth;
252  Int       m_numPivots;
253  Int       m_cameraIsoSpeedIdc;
254  Int       m_cameraIsoSpeedValue;
255  Int       m_exposureCompensationValueSignFlag;
256  Int       m_exposureCompensationValueNumerator;
257  Int       m_exposureCompensationValueDenomIdc;
258  Int       m_refScreenLuminanceWhite;
259  Int       m_extendedRangeWhiteLevel;
260  Int       m_nominalBlackLevelLumaCodeValue;
261  Int       m_nominalWhiteLevelLumaCodeValue;
262  Int       m_extendedWhiteLevelLumaCodeValue;
263  Int*      m_startOfCodedInterval;
264  Int*      m_codedPivotValue;
265  Int*      m_targetPivotValue;
266#endif
267  Int       m_framePackingSEIEnabled;
268  Int       m_framePackingSEIType;
269  Int       m_framePackingSEIId;
270  Int       m_framePackingSEIQuincunx;
271  Int       m_framePackingSEIInterpretation;
272  Int       m_displayOrientationSEIAngle;
273  Int       m_temporalLevel0IndexSEIEnabled;
274  Int       m_gradualDecodingRefreshInfoEnabled;
275  Int       m_decodingUnitInfoSEIEnabled;
276#if L0208_SOP_DESCRIPTION_SEI
277  Int       m_SOPDescriptionSEIEnabled;
278#endif
279#if K0180_SCALABLE_NESTING_SEI
280  Int       m_scalableNestingSEIEnabled;
281#endif
282  // weighted prediction
283  Bool      m_useWeightedPred;                    ///< Use of weighted prediction in P slices
284  Bool      m_useWeightedBiPred;                  ///< Use of bi-directional weighted prediction in B slices
285 
286  UInt      m_log2ParallelMergeLevel;                         ///< Parallel merge estimation region
287  UInt      m_maxNumMergeCand;                                ///< Max number of merge candidates
288
289  Int       m_TMVPModeId;
290  Int       m_signHideFlag;
291#if RATE_CONTROL_LAMBDA_DOMAIN
292#if !RC_SHVC_HARMONIZATION
293  Bool      m_RCEnableRateControl;                ///< enable rate control or not
294  Int       m_RCTargetBitrate;                    ///< target bitrate when rate control is enabled
295  Bool      m_RCKeepHierarchicalBit;              ///< whether keeping hierarchical bit allocation structure or not
296  Bool      m_RCLCULevelRC;                       ///< true: LCU level rate control; false: picture level rate control
297  Bool      m_RCUseLCUSeparateModel;              ///< use separate R-lambda model at LCU level
298  Int       m_RCInitialQP;                        ///< inital QP for rate control
299  Bool      m_RCForceIntraQP;                     ///< force all intra picture to use initial QP or not
300#endif
301#else
302  Bool      m_enableRateCtrl;                                   ///< Flag for using rate control algorithm
303  Int       m_targetBitrate;                                 ///< target bitrate
304  Int       m_numLCUInUnit;                                  ///< Total number of LCUs in a frame should be completely divided by the NumLCUInUnit
305#endif
306  Int       m_useScalingListId;                               ///< using quantization matrix
307  Char*     m_scalingListFile;                                ///< quantization matrix file name
308
309  Bool      m_TransquantBypassEnableFlag;                     ///< transquant_bypass_enable_flag setting in PPS.
310  Bool      m_CUTransquantBypassFlagValue;                    ///< if transquant_bypass_enable_flag, the fixed value to use for the per-CU cu_transquant_bypass_flag.
311
312  Bool      m_recalculateQPAccordingToLambda;                 ///< recalculate QP value according to the lambda value
313  Bool      m_useStrongIntraSmoothing;                        ///< enable strong intra smoothing for 32x32 blocks where the reference samples are flat
314  Int       m_activeParameterSetsSEIEnabled;
315
316  Bool      m_vuiParametersPresentFlag;                       ///< enable generation of VUI parameters
317  Bool      m_aspectRatioInfoPresentFlag;                     ///< Signals whether aspect_ratio_idc is present
318  Int       m_aspectRatioIdc;                                 ///< aspect_ratio_idc
319  Int       m_sarWidth;                                       ///< horizontal size of the sample aspect ratio
320  Int       m_sarHeight;                                      ///< vertical size of the sample aspect ratio
321  Bool      m_overscanInfoPresentFlag;                        ///< Signals whether overscan_appropriate_flag is present
322  Bool      m_overscanAppropriateFlag;                        ///< Indicates whether conformant decoded pictures are suitable for display using overscan
323  Bool      m_videoSignalTypePresentFlag;                     ///< Signals whether video_format, video_full_range_flag, and colour_description_present_flag are present
324  Int       m_videoFormat;                                    ///< Indicates representation of pictures
325  Bool      m_videoFullRangeFlag;                             ///< Indicates the black level and range of luma and chroma signals
326  Bool      m_colourDescriptionPresentFlag;                   ///< Signals whether colour_primaries, transfer_characteristics and matrix_coefficients are present
327  Int       m_colourPrimaries;                                ///< Indicates chromaticity coordinates of the source primaries
328  Int       m_transferCharacteristics;                        ///< Indicates the opto-electronic transfer characteristics of the source
329  Int       m_matrixCoefficients;                             ///< Describes the matrix coefficients used in deriving luma and chroma from RGB primaries
330  Bool      m_chromaLocInfoPresentFlag;                       ///< Signals whether chroma_sample_loc_type_top_field and chroma_sample_loc_type_bottom_field are present
331  Int       m_chromaSampleLocTypeTopField;                    ///< Specifies the location of chroma samples for top field
332  Int       m_chromaSampleLocTypeBottomField;                 ///< Specifies the location of chroma samples for bottom field
333  Bool      m_neutralChromaIndicationFlag;                    ///< Indicates that the value of all decoded chroma samples is equal to 1<<(BitDepthCr-1)
334  Bool      m_defaultDisplayWindowFlag;                       ///< Indicates the presence of the default window parameters
335  Int       m_defDispWinLeftOffset;                           ///< Specifies the left offset from the conformance window of the default window
336  Int       m_defDispWinRightOffset;                          ///< Specifies the right offset from the conformance window of the default window
337  Int       m_defDispWinTopOffset;                            ///< Specifies the top offset from the conformance window of the default window
338  Int       m_defDispWinBottomOffset;                         ///< Specifies the bottom offset from the conformance window of the default window
339  Bool      m_frameFieldInfoPresentFlag;                      ///< Indicates that pic_struct values are present in picture timing SEI messages
340  Bool      m_pocProportionalToTimingFlag;                    ///< Indicates that the POC value is proportional to the output time w.r.t. first picture in CVS
341  Int       m_numTicksPocDiffOneMinus1;                       ///< Number of ticks minus 1 that for a POC difference of one
342  Bool      m_bitstreamRestrictionFlag;                       ///< Signals whether bitstream restriction parameters are present
343  Bool      m_tilesFixedStructureFlag;                        ///< Indicates that each active picture parameter set has the same values of the syntax elements related to tiles
344  Bool      m_motionVectorsOverPicBoundariesFlag;             ///< Indicates that no samples outside the picture boundaries are used for inter prediction
345  Int       m_minSpatialSegmentationIdc;                      ///< Indicates the maximum size of the spatial segments in the pictures in the coded video sequence
346  Int       m_maxBytesPerPicDenom;                            ///< Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units associated with any coded picture
347  Int       m_maxBitsPerMinCuDenom;                           ///< Indicates an upper bound for the number of bits of coding_unit() data
348  Int       m_log2MaxMvLengthHorizontal;                      ///< Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units
349  Int       m_log2MaxMvLengthVertical;                        ///< Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units
350
351#if REF_IDX_FRAMEWORK
352  Int       m_elRapSliceBEnabled;
353#endif
354  // internal member functions
355  Void  xSetGlobal      ();                                   ///< set global variables
356  Void  xCheckParameter ();                                   ///< check validity of configuration values
357  Void  xPrintParameter ();                                   ///< print configuration values
358  Void  xPrintUsage     ();                                   ///< print usage
359#if SIGNAL_BITRATE_PICRATE_IN_VPS
360  Int       m_bitRatePicRateMaxTLayers;                       ///< Indicates max. number of sub-layers for which bit rate is signalled.
361  Bool*     m_bitRateInfoPresentFlag;                         ///< Indicates whether bit rate information is signalled
362  Bool*     m_picRateInfoPresentFlag;                         ///< Indicates whether pic rate information is signalled
363  Int*      m_avgBitRate;                                     ///< Indicates avg. bit rate information for various sub-layers
364  Int*      m_maxBitRate;                                     ///< Indicates max. bit rate information for various sub-layers
365  Int*      m_avgPicRate;                                     ///< Indicates avg. picture rate information for various sub-layers
366  Int*      m_constantPicRateIdc;                                ///< Indicates constant picture rate idc for various sub-layers
367#endif
368public:
369  TAppEncCfg();
370  virtual ~TAppEncCfg();
371 
372public:
373  Void  create    ();                                         ///< create option handling class
374  Void  destroy   ();                                         ///< destroy option handling class
375  Bool  parseCfg  ( Int argc, Char* argv[] );                 ///< parse configuration file to fill member variables
376 
377#if SVC_EXTENSION
378  Int  getNumFrameToBeEncoded()    {return m_framesToBeEncoded; }
379  Int  getNumLayer()               {return m_numLayers;        }
380  Int  getGOPSize()                {return m_iGOPSize;          }
381  UInt getInternalBitDepthY()      {return m_internalBitDepthY; }
382  UInt getInternalBitDepthC()      {return m_internalBitDepthC; }
383  UInt getMaxCUWidth()             {return m_uiMaxCUWidth;      }
384  UInt getMaxCUHeight()            {return m_uiMaxCUHeight;     }
385  UInt getMaxCUDepth()             {return m_uiMaxCUDepth;      }
386  Int  getDecodingRefreshType()    {return m_iDecodingRefreshType; }
387  Int  getWaveFrontSynchro()        { return m_iWaveFrontSynchro; }
388  Void getDirFilename(string& filename, string& dir, const string path);
389#if AVC_SYNTAX
390  Char* getBLSyntaxFile()           { return m_BLSyntaxFile;      }
391#endif
392#if SCALED_REF_LAYER_OFFSETS
393  Void cfgStringToArray(Int **arr, string cfgString, Int numEntries, const char* logString);
394#endif
395#endif
396};// END CLASS DEFINITION TAppEncCfg
397
398//! \}
399
400#endif // __TAPPENCCFG__
401
Note: See TracBrowser for help on using the repository browser.