66 g_hTrace = fopen(
"TraceEnc.txt",
"wb" );
68 g_bJustDoIt = g_bEncDecTraceDisable;
82 if (g_hTrace != stdout)
103 #if ADAPTIVE_QP_SELECTION
134 for (
Int iCIIdx = 0; iCIIdx <
CI_NUM; iCIIdx ++ )
161 for (
Int iCIIdx = 0; iCIIdx <
CI_NUM; iCIIdx ++ )
168 for ( iDepth = 0; iDepth < m_maxTotalCUDepth+1; iDepth++ )
231 m_cSearch.
init(
this, &
m_cTrQuant,
m_iSearchRange,
m_bipredSearchRange,
m_motionEstimationSearchMethod,
m_maxCUWidth,
m_maxCUHeight,
m_maxTotalCUDepth, &
m_cEntropyCoder, &
m_cRdCost,
getRDSbacCoder(),
getRDGoOnSbacCoder() );
266 Bool bParsedScalingList=
false;
267 assert(bParsedScalingList);
306 for (
Int i = 0; i < iSize; i++ )
331 if (pcPicYuvOrg !=
NULL)
364 #if JVET_F0064_MSSSIM
389 for (
Int y = 0; y < height>>1; y++)
391 for (
Int x = 0; x < width; x++)
393 dstField[x] = org[x];
406 for (
Int fieldNum=0; fieldNum<2; fieldNum++)
412 const Bool isTopField=isTff==(fieldNum==0);
425 rpcPicYuvRec = rcListPicYuvRecOut.
popFront();
432 rcListPicYuvRecOut.
pushBack( rpcPicYuvRec );
436 #if !REDUCED_ENCODER_MEMORY
457 pcPicYuvTrueOrg->
getWidth(component),
472 #if JVET_F0064_MSSSIM
516 for (
Int i = 0; i < iSize; i++ )
530 #if REDUCED_ENCODER_MEMORY
549 #if REDUCED_ENCODER_MEMORY
559 #if REDUCED_ENCODER_MEMORY
560 rpcPic->
create( sps, pps,
true,
false );
562 rpcPic->
create( sps, pps,
false );
574 #if !REDUCED_ENCODER_MEMORY
639 Int log2MinCUSize = 0;
666 #if O0043_BEST_EFFORT_DECODING
762 UInt iMask = 0xffffffff;
765 while ((x&iMask) != 0)
768 iMask = (iMask >> 1);
826 Bool rateCnt = ( bitRate > 0 );
877 UInt bitrateValue, cpbSizeValue;
879 UInt duBitRateValue = 0;
896 duCpbSizeValue = bitrateValue;
897 duBitRateValue = cpbSizeValue;
978 const Int cbQP =(
Int)(dcbQP + ( dcbQP < 0 ? -0.5 : 0.5) );
979 const Int crQP =(
Int)(dcrQP + ( dcrQP < 0 ? -0.5 : 0.5) );
988 Bool bChromaDeltaQPEnabled =
false;
991 if( !bChromaDeltaQPEnabled )
997 bChromaDeltaQPEnabled =
true;
1062 if(histogram[i]>maxHist)
1064 maxHist=histogram[i];
1068 assert(bestPos <= 15);
1122 assert (RPSRef!=
NULL);
1129 for (
Int j = 0; j <= numRefDeltaPOC; j++ )
1135 if (rps->
getDeltaPOC(k) == ( RefDeltaPOC + deltaRPS))
1145 printf(
"Warning: Unable fully predict all delta POCs using the reference RPS index given in the config file. Setting Inter RPS to false for this RPS.\n");
1151 assert (RPSRef!=
NULL);
1183 printf(
"Warning: number of negative pictures in RPS is different between intra and inter RPS specified in the config file.\n");
1189 printf(
"Warning: number of positive pictures in RPS is different between intra and inter RPS specified in the config file.\n");
1202 printf(
"Warning: delta POC is different between intra RPS and inter RPS specified in the config file.\n");
1207 printf(
"Warning: Used by Current in RPS is different between intra and inter RPS specified in the config file.\n");
1248 if(POCIndex ==
m_GOPList[extraNum].m_POC)
1284 if(POCIndex ==
m_GOPList[extraNum].m_POC)
1320 UInt uiCummulativeColumnWidth = 0;
1321 UInt uiCummulativeRowHeight = 0;
1326 printf(
"The number of columns is larger than the maximum allowed number of columns.\n" );
1327 exit( EXIT_FAILURE );
1332 printf(
"The current picture can not have so many columns.\n" );
1333 exit( EXIT_FAILURE );
1343 if( uiCummulativeColumnWidth >= iWidthInCU )
1345 printf(
"The width of the column is too large.\n" );
1346 exit( EXIT_FAILURE );
1353 printf(
"The number of rows is larger than the maximum allowed number of rows.\n" );
1354 exit( EXIT_FAILURE );
1359 printf(
"The current picture can not have so many rows.\n" );
1360 exit( EXIT_FAILURE );
1370 if( uiCummulativeRowHeight >= iHeightInCU )
1372 printf(
"The height of the row is too large.\n" );
1373 exit( EXIT_FAILURE );
1378 #if JCTVC_Y0038_PARAMS
1400 #if X0038_LAMBDA_FROM_QP_CAPABILITY
1416 #if JVET_G0101_QP_SWITCHING
1421 qp += pdQPs[ pSlice->
getPOC() ];
1440 Int qpOffset = (
Int)floor(Clip3<Double>(0.0, 3.0, dqpOffset));
1445 #if !JVET_G0101_QP_SWITCHING
1450 qp += pdQPs[ pSlice->
getPOC() ];
Bool m_useStrongIntraSmoothing
enable the use of strong intra smoothing (bi_linear interpolation) for 32x32 blocks when reference sa...
Void setNumTileColumnsMinus1(Int i)
Int getNumberOfPositivePictures() const
Void setColourDescriptionPresentFlag(Bool i)
Bool getOverscanAppropriateFlag()
Int m_maxTempLayer
Max temporal layer.
Void setMaxTotalCUDepth(UInt u)
Void setTransformSkipRotationEnabledFlag(const Bool value)
Void checkPredMode(UInt sizeId, UInt listId)
UInt m_log2MaxTransformSkipBlockSize
static const Int SCALING_LIST_NUM
list number for quantization matrix
UInt m_bitDepthConstraintValue
Void setUsed(Int bufferNum, Bool used)
Void setQuadtreeTULog2MaxSize(UInt u)
Bool getSignDataHidingEnabledFlag()
SliceType
supported slice type
Void xInitSPS(TComSPS &sps)
initialize SPS from encoder options
Bool m_extendedPrecisionProcessingFlag
Void setVideoSignalTypePresentFlag(Bool i)
Void create(UInt uiMaxCUDepth)
TEncSbac *** getRDSbacCoder()
Int m_bitDepth[MAX_NUM_CHANNEL_TYPE]
Int getIntraQPOffset() const
Bool m_onePictureOnlyConstraintFlag
Void setMaxCUHeight(UInt u)
SliceType getSliceType() const
Double chromaQpOffset
Chroma QP Offset (0.0:default)
Void setFixedPicRateFlag(Int layer, Bool flag)
const std::string & getScalingListFileName() const
Void setScalingList(TComScalingList *scalingList, const Int maxLog2TrDynamicRange[MAX_NUM_CHANNEL_TYPE], const BitDepths &bitDepths)
SliceConstraint m_sliceSegmentMode
static const Int LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP
QP to use for lossless coding.
Bool checkDefaultScalingList()
Bool m_persistentRiceAdaptationEnabledFlag
Void setParamSetChanged(Int spsId, Int ppsId)
Void setMatrixCoefficients(Int i)
Int getMaxBytesPerPicDenom()
picture class (symbol + YUV buffers)
Void setTierFlag(Level::Tier x)
Void setFlatScalingList(const Int maxLog2TrDynamicRange[MAX_NUM_CHANNEL_TYPE], const BitDepths &bitDepths)
Defines version information, constants and small in-line functions.
Int getNumTicksPocDiffOneMinus1()
UInt m_log2DiffMaxMinCodingBlockSize
Void setVideoFullRangeFlag(Bool i)
Void setDuCpbSizeScale(UInt value)
TEncEntropy m_cEntropyCoder
entropy encoder
Void init(TEncTop *pcEncTop)
Int getUsed(Int bufferNum) const
Bool getPictureTimingSEIEnabled() const
Bool m_frameOnlyConstraintFlag
const TComPPS & getPPS() const
Void xPreanalyze(TEncPic *pcPic)
Void setNumberOfNegativePictures(Int number)
WCGChromaQPControl m_wcgChromaQpControl
Wide-colour-gamut chroma QP control.
const TComPPSRExt & getPpsRangeExtension() const
Int getStride(const ComponentID id) const
static const Int MAX_NUM_PPS
Void setMinSpatialSegmentationIdc(Int i)
TComPicYuv * getPicYuvTrueOrg()
const TComSPSRExt & getSpsRangeExtension() const
Void setTransquantBypassEnabledFlag(Bool b)
UInt getTimeScale() const
Void setDependentSliceSegmentsEnabledFlag(Bool val)
Void setMaxCUWidth(UInt u)
static const Int NUM_LONG_TERM_REF_PIC_SPS
TEncSlice m_cSliceEncoder
slice encoder
Void clearChangedFlag(Int psId)
Int m_RCKeepHierarchicalBit
Void setScalingListPresentFlag(Bool b)
TEncSbac m_cRDGoOnSbacCoder
going on SBAC model for RD stage
Void setChromaSampleLocTypeTopField(Int i)
Int m_sliceChromaQpOffsetIntraOrPeriodic[2]
Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChroma...
Int getHeight(const ComponentID id) const
UInt m_uiQuadtreeTULog2MinSize
TComSlice * getSlice(Int i)
UInt m_uiQuadtreeTULog2MaxSize
Void setCabacInitPresentFlag(Bool flag)
don't use slices / slice segments
TEncPreanalyzer m_cPreanalyzer
image characteristics analyzer for TM5-step3-like adaptive QP
Void setPCMFilterDisableFlag(Bool bValue)
Void setFrameOnlyConstraintFlag(Bool b)
Void setPersistentRiceAdaptationEnabledFlag(const Bool value)
UInt getNumHrdParameters() const
Bool m_bLFCrossSliceBoundaryFlag
Void setDuCpbSizeValueMinus1(Int layer, Int cpbcnt, Int nalOrVcl, UInt value)
Void setDeltaPOC(Int bufferNum, Int deltaPOC)
Int getLog2MaxMvLengthVertical()
Void setCprmsPresentFlag(Bool val, UInt i)
Void setDiffCuChromaQpOffsetDepth(UInt u)
Void setMaxBytesPerPicDenom(Int i)
UInt m_uiNumAllPicCoded
number of coded pictures
Bool m_cabacBypassAlignmentEnabledFlag
Void setLowerBitRateConstraintFlag(Bool b)
Bool isReferenced() const
Void setMaxBitsPerMinCuDenom(Int i)
Void setMaxCuDQPDepth(UInt u)
Void setQuadtreeTUMaxDepthInter(UInt u)
Void setLtRefPicPocLsbSps(UInt index, UInt val)
Void setQpOffset(ComponentID compID, Int i)
Void setNumHrdParameters(UInt v)
Int getMaxBitsPerMinCuDenom()
const TComRPSList * getRPSList() const
Void setTransformSkipContextEnabledFlag(const Bool value)
Void setPicHeightInLumaSamples(UInt u)
Void create(const TComSPS &sps, const TComPPS &pps, const Bool bCreateEncoderSourcePicYuv, const Bool bCreateForImmediateReconstruction)
Void setCpbRemovalDelayLengthMinus1(UInt value)
ScalingListMode m_useScalingListId
Using quantization matrix i.e. 0=off, 1=default, 2=file.
Void setNumReorderPics(Int i, UInt tlayer)
Int getLoopFilterTcOffset()
Int getMinSpatialSegmentationIdc()
Bool getPPSDeblockingFilterDisabledFlag() const
get offset for deblocking filter disabled
Bool xParseScalingList(const std::string &fileName)
Void init(UInt uiMaxTrSize, Bool useRDOQ=false, Bool useRDOQTS=false, Bool useSelectiveRDOQ=false, Bool bEnc=false, Bool useTransformSkipFast=false, Bool bUseAdaptQpSelect=false)
Void setUseScalingList(Bool bUseScalingList)
get DeQuant Coefficent
Bool m_RCCpbSaturationEnabled
Void setChromaFormatConstraint(ChromaFormat fmt)
Bool getBitstreamRestrictionFlag()
Picture class including local image characteristics information for QP adaptation.
Bool m_intraConstraintFlag
Double chromaQpScale
Chroma QP Scale (0.0:default)
static const Int MAX_NUM_REF
max. number of entries in picture reference list
Bool getVideoSignalTypePresentFlag()
TComTrQuant m_cTrQuant
transform & quantization class
Int m_usedByCurrPic[MAX_NUM_REF_PICS]
Void setChromaSampleLocTypeBottomField(Int i)
Void setRPS(const TComReferencePictureSet *pcRPS)
Void setCrossComponentPredictionEnabledFlag(Bool value)
Bool getTransquantBypassEnabledFlag() const
Void setEntropyCodingSyncEnabledFlag(Bool val)
Bool getLoopFilterDisable()
Void setIntraConstraintFlag(Bool b)
Void setTimeScale(UInt value)
Void setNalHrdParametersPresentFlag(Bool flag)
const WCGChromaQPControl & getWCGChromaQPControl() const
TEncGOP m_cGOPEncoder
GOP encoder.
Bool m_crossComponentPredictionEnabledFlag
Void setChromaFormatIdc(ChromaFormat i)
Void setCpbSizeScale(UInt value)
Void setTileUniformSpacingFlag(Bool b)
TComVUI * getVuiParameters()
Void setFieldSeqFlag(Bool i)
Void xInitScalingLists(TComSPS &sps, TComPPS &pps)
initialize scaling lists
Void setUsedByCurrPicLtSPSFlag(Int i, Bool x)
Void setDuCpbRemovalDelayLengthMinus1(UInt value)
Void setLog2MaxMvLengthVertical(Int i)
ParameterSetMap< TComPPS > m_ppsMap
PPS. This is the base value. This is copied to TComPicSym.
Int m_PCMBitDepth[MAX_NUM_CHANNEL_TYPE]
Void setCostMode(CostMode m)
static const Int LOG2_MAX_NUM_ROWS_MINUS1
Bool getChromaLocInfoPresentFlag()
TEncSbac *** m_pppcRDSbacCoder
temporal storage for RD computation
Void setInterRPSPrediction(Bool flag)
TComPicYuv * getPicYuvRec()
Void setAspectRatioIdc(Int i)
Void setSignDataHidingEnabledFlag(Bool b)
static const Int LOG2_MAX_NUM_COLUMNS_MINUS1
TEncSbac * getRDGoOnSbacCoder()
Int m_maxDecPicBuffering[MAX_TLAYER]
Bool m_tileUniformSpacingFlag
Bool getVideoFullRangeFlag()
Int getTransferCharacteristics()
Void setPOC(Int bufferNum, Int deltaPOC)
Void setLog2DiffMaxMinCodingBlockSize(Int val)
Bool m_bUseConstrainedIntraPred
Void setSliceChromaQpFlag(Bool b)
Void setRefIdc(Int bufferNum, Int refIdc)
set the reference idc value at uiBufferNum entry to the value of iRefIdc
Int m_refIdc[MAX_NUM_REF_PICS+1]
Void setPocProportionalToTimingFlag(Bool x)
ProfileTierLevel * getGeneralPTL()
Bool getNeutralChromaIndicationFlag()
Void setDeblockingFilterBetaOffsetDiv2(Int val)
set beta offset for deblocking filter
Void prepareForEncoderSourcePicYuv()
Void setNonPackedConstraintFlag(Bool b)
Void xCheckGSParameters()
Void create(Int picWidth, Int picHeight, ChromaFormat format, UInt maxCUWidth, UInt maxCUHeight, UInt maxCUDepth, UInt lumaBitShift, UInt chromaBitShift)
Int getWidth(const ComponentID id) const
Void setTileColumnWidth(const std::vector< Int > &columnWidth)
Void setLevelIdc(Level::Name x)
Void setQuadtreeTULog2MinSize(UInt u)
ChromaFormat m_chromaFormatIDC
Int getReferencePictureSetIdxForSOP(Int POCCurr, Int GOPid)
Void setNumberOfPositivePictures(Int number)
Bool getBufferingPeriodSEIEnabled() const
ChromaFormat m_chromaFormatConstraintValue
Void setTilesFixedStructureFlag(Bool i)
TComRdCost m_cRdCost
RD cost computation class.
Void setDpbOutputDelayDuLengthMinus1(UInt value)
Void clearChromaQpOffsetList()
GOPEntry m_GOPList[MAX_GOP]
Double m_QPOffsetModelScale
Int getQpBDOffset(ChannelType type) const
Int getMaxDecPicBuffering(UInt tlayer)
Void create(const TComSPS &sps, const TComPPS &pps, UInt uiMaxAdaptiveQPDepth)
TEncSampleAdaptiveOffset m_cEncSAO
sample adaptive offset class
Void setOverscanInfoPresentFlag(Bool i)
Bool getCpbSaturationEnabled()
Void setLog2ParallelMergeLevelMinus2(UInt mrgLevel)
Bool getFrameFieldInfoPresentFlag()
Bool getPocProportionalToTimingFlag()
Bool getSubPicCpbParamsPresentFlag() const
TComReferencePictureSet * getReferencePictureSet(Int referencePictureSetNum)
Void setBitRateValueMinus1(Int layer, Int cpbcnt, Int nalOrVcl, UInt value)
#define ADAPTIVE_QP_SELECTION
G382: Adaptive reconstruction levels, non-normative part for adaptive QP selection.
Void setVclHrdParametersPresentFlag(Bool flag)
std::vector< Int > m_tileColumnWidth
Void setPicDurationInTcMinus1(Int layer, UInt value)
Void setCbrFlag(Int layer, Int cpbcnt, Int nalOrVcl, Bool value)
Void separateFields(Pel *org, Pel *dstField, UInt stride, UInt width, UInt height, Bool isTop)
UInt m_log2ParallelMergeLevelMinus2
Parallel merge estimation region.
Double m_RCInitialCpbFullness
Bool PPSNeedsWriting(Int ppsId)
Void setLog2MaxTransformSkipBlockSize(UInt u)
Void initRCGOP(Int numberOfPictures)
Bool m_lowerBitRateConstraintFlag
Void copyToPic(TComPicYuv *pcPicYuvDst) const
Void setColourPrimaries(Int i)
UInt getCpbSizeScale() const
Void setMaxTLayers(UInt uiMaxTLayers)
Void setUseSAO(Bool bVal)
TimingInfo * getTimingInfo()
Double chromaCrQpScale
Chroma Cr QP Scale (1.0:default)
Void setProfileCompatibilityFlag(Int i, Bool x)
Int getDeltaPOC(Int bufferNum) const
Int getQPForPicture(const UInt gopIndex, const TComSlice *pSlice) const
Int getLog2MaxMvLengthHorizontal()
Bool m_RCUseLCUSeparateModel
TComTrQuant * getTrQuant()
Void setScalingListPresentFlag(Bool b)
Int getMaxDeltaQP() const
Void setLog2MaxMvLengthHorizontal(Int i)
Void setDefaultDisplayWindow(Window &defaultDisplayWindow)
T Clip3(const T minVal, const T maxVal, const T a)
general min/max clip
Bool m_transformSkipContextEnabledFlag
Bool getColourDescriptionPresentFlag()
Reference Picture Set set class.
CostMode getCostMode() const
Void setTileRowHeight(const std::vector< Int > &rowHeight)
Int getChromaSampleLocTypeBottomField()
Bool SPSNeedsWriting(Int spsId)
Void setHrdParametersPresentFlag(Bool i)
TComPicYuv * getPicYuvOrg()
Void setNumTicksPocDiffOneMinus1(Int x)
Double m_QPOffsetModelOffset
ParameterSetMap< TComSPS > m_spsMap
SPS. This is the base value. This is copied to TComPicSym.
Void setTilesEnabledFlag(Bool val)
Void setUseStrongIntraSmoothing(Bool bVal)
static Void sortPicList(TComList< TComPic * > &rcListPic)
const TComPTL * getPTL() const
UInt getMaxCuDQPDepth() const
Void init(TEncCfg *pcEncCfg, TComTrQuant *pcTrQuant, Int iSearchRange, Int bipredSearchRange, MESearchMethod motionEstimationSearchMethod, const UInt maxCUWidth, const UInt maxCUHeight, const UInt maxTotalCUDepth, TEncEntropy *pcEntropyCoder, TComRdCost *pcRdCost, TEncSbac ***pppcRDSbacCoder, TEncSbac *pcRDGoOnSbacCoder)
Void setScalingListFlag(Bool b)
TEncCavlc * getCavlcCoder()
Void setSliceEncoder(TEncSlice *pSliceEncoder)
static const Int CABAC_INIT_PRESENT_FLAG
const BitDepths & getBitDepths() const
Void initHrdParam(const TComHRD *pcHrd, Int iFrameRate, Double fInitialCpbFullness)
Int getMaxLog2TrDynamicRange(ChannelType channelType) const
Void pushBack(const C &rcT)
Void encode(Bool bEos, TComPicYuv *pcPicYuvOrg, TComPicYuv *pcPicYuvTrueOrg, const InputColourSpaceConversion snrCSC, TComList< TComPicYuv * > &rcListPicYuvRecOut, std::list< AccessUnit > &accessUnitsOut, Int &iNumEncoded)
encode several number of pictures until end-of-sequence
T * allocatePS(const Int psId)
Void setPCMBitDepth(ChannelType type, UInt u)
TEncRateCtrl m_cRateCtrl
Rate control class.
Void setNumberOfPictures(Int numberOfPictures)
const TComPPS * getPPS() const
Double chromaCbQpScale
Chroma Cb QP Scale (1.0:default)
Int getDeblockingFilterBetaOffsetDiv2() const
get beta offset for deblocking filter
Void setQpBDOffset(ChannelType type, Int i)
Void setMaxTrSize(UInt u)
UInt getTemporalSubsampleRatio()
Void setExtendedPrecisionProcessingFlag(Bool value)
Bool m_useTransformSkipFast
Bool getUseAdaptiveQP() const
Void setCpbCntMinus1(Int layer, UInt value)
Bool getTransquantBypassEnabledFlag()
TEncBinCABACCounter m_cRDGoOnBinCoderCABAC
going on bin coder CABAC for RD stage
Int m_iPOCLast
time index (POC)
Void setRPSidx(Int rpsIdx)
Window & getDefaultDisplayWindow()
UInt getNumberValidComponents() const
TEncSearch m_cSearch
encoder search class
Void setProfileIdc(Profile::Name x)
Void setConformanceWindow(Window &conformanceWindow)
Void setHighPrecisionOffsetsEnabledFlag(Bool value)
Void setFrameFieldInfoPresentFlag(Bool i)
Void setPCMLog2MinSize(UInt u)
Void init(Bool isFieldCoding)
Int getMarginX(const ComponentID id) const
static Void buildNextStateTable()
Void setAspectRatioInfoPresentFlag(Bool i)
Void setSPSTemporalMVPEnabledFlag(Bool b)
TimingInfo * getTimingInfo()
Void setHrdOpSetIdx(UInt val, UInt i)
Int getLog2DiffMaxMinCodingBlockSize() const
Bool m_intraSmoothingDisabledFlag
static const Int MAX_TLAYER
Explicit temporal layer QP offset - max number of temporal layer.
InputColourSpaceConversion
Bool m_progressiveSourceFlag
Void setMaxDecPicBuffering(UInt ui, UInt tlayer)
Void setProgressiveSourceFlag(Bool b)
context model class (header)
const GOPEntry & getGOPEntry(Int i) const
Void setOnePictureOnlyConstraintFlag(Bool b)
Void releaseAllReconstructionData()
Int m_iMaxRefPicNum
this is used to mimic the sliding mechanism used by the decoder
Void setDpbOutputDelayLengthMinus1(UInt value)
Bool getLoopFilterOffsetInPPS()
TEncBinCABACCounter *** m_pppcBinCoderCABAC
temporal CABAC state storage for RD computation
const LumaLevelToDeltaQPMapping & getLumaLevelToDeltaQPMapping() const
Void setNumTileRowsMinus1(Int i)
Void setInterlacedSourceFlag(Bool b)
Void setNumRefIdxL1DefaultActive(UInt ui)
Void setSubPicCpbParamsInPicTimingSEIFlag(Bool flag)
Void setNumUnitsInTick(UInt value)
Void setQuadtreeTUMaxDepthIntra(UInt u)
Void setBitstreamRestrictionFlag(Bool i)
Void createHrdParamBuffer()
Void setChromaLocInfoPresentFlag(Bool i)
const Int * getdQPs() const
Void setMotionVectorsOverPicBoundariesFlag(Bool i)
Void setCpbSizeValueMinus1(Int layer, Int cpbcnt, Int nalOrVcl, UInt value)
Void setTransferCharacteristics(Int i)
UInt m_uiQuadtreeTUMaxDepthIntra
Int getNumberOfNegativePictures() const
Bool m_transformSkipRotationEnabledFlag
Void xInitVPS(TComVPS &vps, const TComSPS &sps)
initialize VPS from encoder options
Void setLoopFilterAcrossSlicesEnabledFlag(Bool bValue)
Void setBitRateScale(UInt value)
Void setReconMark(Bool b)
Pel * getAddr(const ComponentID ch)
Void setCabacBypassAlignmentEnabledFlag(const Bool value)
Void setNumRefIdxL0DefaultActive(UInt ui)
Void createRPSList(Int numRPS)
Void setDeblockingFilterControlPresentFlag(Bool val)
Void setDuBitRateValueMinus1(Int layer, Int cpbcnt, Int nalOrVcl, UInt value)
TEncCavlc * m_pcCavlcCoder
CAVLC encoder.
Void setTimingInfoPresentFlag(Bool flag)
UInt m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]
TComLoopFilter m_cLoopFilter
deblocking filter class
Void setLowDelayHrdFlag(Int layer, Bool flag)
Void setVideoFormat(Int i)
Void create(const Int picWidth, const Int picHeight, const ChromaFormat chromaFormatIDC, const UInt maxCUWidth, const UInt maxCUHeight, const UInt maxCUDepth, const Bool bUseMargin)
if true, then a margin of uiMaxCUWidth+16 and uiMaxCUHeight+16 is created around the image...
Bool m_nonPackedConstraintFlag
static const Int MAX_NUM_LONG_TERM_REF_PICS
Bool getOverscanInfoPresentFlag()
Void setLog2MinCodingBlockSize(Int val)
Void setOutputFlagPresentFlag(Bool b)
TComScalingList & getScalingList()
Int getNumberOfPictures() const
Void setLoopFilterAcrossTilesEnabledFlag(Bool b)
Bool m_highPrecisionOffsetsEnabledFlag
Bool m_bPCMFilterDisableFlag
Void setVuiParametersPresentFlag(Bool b)
Int getMaxCuDQPDepth() const
Bool m_entropyCodingSyncEnabledFlag
Void setPicWidthInLumaSamples(UInt u)
ScalingListMode getUseScalingListId()
UInt getMaxTLayers() const
std::vector< Int > m_tileRowHeight
Void setPPSDeblockingFilterDisabledFlag(Bool val)
set offset for deblocking filter disabled
Bool getDecodingUnitInfoSEIEnabled() const
Void xInitPPS(TComPPS &pps, const TComSPS &sps)
initialize PPS from encoder options
UInt m_uiQuadtreeTUMaxDepthInter
Void setSubPicCpbParamsPresentFlag(Bool flag)
Bool m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES]
Void setNumLongTermRefPicSPS(UInt val)
Void setTickDivisorMinus2(UInt value)
Void setDeltaRIdxMinus1(Int x)
Void xInitHrdParameters(TComSPS &sps)
initialize HRD parameters
Bool m_interlacedSourceFlag
Bool getTilesFixedStructureFlag()
Void setRdpcmEnabledFlag(const RDPCMSignallingMode signallingMode, const Bool value)
Void xGetNewPicBuffer(TComPic *&rpcPic, Int ppsId)
get picture buffer which will be processed. If ppsId<0, then the ppsMap will be queried for the first...
UInt getCpbCntMinus1(Int layer) const
Bool getVuiParametersPresentFlag()
Void setPCMLog2MaxSize(UInt u)
Void setLog2SaoOffsetScale(ChannelType type, UInt uiBitShift)
UInt getDecodingRefreshType()
Int m_diffCuChromaQpOffsetDepth
If negative, then do not apply chroma qp offsets.
Int getMarginY(const ComponentID id) const
SliceConstraint getSliceMode() const
UInt m_temporalSubsampleRatio
SliceConstraint getSliceSegmentMode() const
Void selectReferencePictureSet(TComSlice *slice, Int POCCurr, Int GOPid)
Void setBitDepthConstraint(UInt bitDepth)
Void setOverscanAppropriateFlag(Bool i)
Void setChromaQpOffsetListEntry(Int cuChromaQpOffsetIdxPlus1, Int cbOffset, Int crOffset)
Bool m_loopFilterAcrossTilesEnabledFlag
Void setDeblockingFilterOverrideEnabledFlag(Bool val)
Void setBorderExtension(Bool b)
Void setDeblockingFilterTcOffsetDiv2(Int val)
set tc offset for deblocking filter
Int getMatrixCoefficients()
TComList< TComPic * > m_cListPic
dynamic list of pictures
Int m_iNumPicRcvd
number of received pictures
Void setConstrainedIntraPred(Bool b)
Reference Picture Set class.
Void createEncData(Bool isPreDBFSamplesUsed)
Pel * getBuf(const ComponentID ch)
Void setChangedFlag(Int psId, Bool bChanged=true)
Int getChromaSampleLocTypeTopField()
Void setBitDepth(ChannelType type, Int u)
class of picture which includes side information for encoder (header)
Void xInitRPS(TComSPS &sps, Bool isFieldCoding)
initialize PPS from encoder options
Int getDeblockingFilterTcOffsetDiv2() const
get tc offset for deblocking filter
Void setDefaultScalingList()
Int m_numReorderPics[MAX_TLAYER]
Int m_referencePics[MAX_NUM_REF_PICS]
Void xInitPPSforTiles(TComPPS &pps)
Int getLoopFilterBetaOffset()
Bool getChangedFlag(Int psId) const
Void setNeutralChromaIndicationFlag(Bool i)
Int getDeblockingFilterMetric()
UInt getNumUnitsInTick() const
Void setIntraSmoothingDisabledFlag(Bool bValue)
Bool getDeblockingFilterOverrideEnabledFlag() const
Void setTemporalIdNestingFlag(Bool bValue)
Void setMaxOpSets(UInt v)
Bool getAspectRatioInfoPresentFlag()
Window m_conformanceWindow
MESearchMethod m_motionEstimationSearchMethod
TEncCu m_cCuEncoder
CU encoder.
TComHRD * getHrdParameters()
Bool getVuiParametersPresentFlag() const
Void init(Int totalFrames, Int targetBitrate, Int frameRate, Int GOPSize, Int picWidth, Int picHeight, Int LCUWidth, Int LCUHeight, Int keepHierBits, Bool useLCUSeparateModel, GOPEntry GOPList[MAX_GOP])
Void setNumberOfLongtermPictures(Int number)
Void setInitialCpbRemovalDelayLengthMinus1(UInt value)
Void setUseTransformSkip(Bool b)
static const Int MAX_NUM_SPS
CostMode m_costMode
The cost function to use, primarily when considering lossless coding.
UInt getMaxCUWidth() const
UInt getBitRateScale() const
Void compressGOP(Int iPOCLast, Int iNumPicRcvd, TComList< TComPic * > &rcListPic, TComList< TComPicYuv * > &rcListPicYuvRec, std::list< AccessUnit > &accessUnitsInGOP, Bool isField, Bool isTff, const InputColourSpaceConversion snr_conversion, const Bool printFrameMSE, const Bool printMSSSIM)
const TComSPS * getSPS() const
Bool getMotionVectorsOverPicBoundariesFlag()
Bool m_RCEnableRateControl