62 m_picYuvPred.
create( iWidth, iHeight, chromaFormat, iMaxCUWidth, iMaxCUHeight, uhTotalDepth,
true );
65 m_picYuvResi.
create( iWidth, iHeight, chromaFormat, iMaxCUWidth, iMaxCUHeight, uhTotalDepth,
true );
126 Double tmpWeight = pow( 2.0, (iQP-qpc)/3.0 );
128 dLambdas[compIdx]=dLambda/tmpWeight;
131 #if RDOQ_CHROMA_LAMBDA
166 rpcSlice->
setPic( pcPic );
169 rpcSlice->
setPOC( pocCurr );
194 for(
Int i=step>>1; i>=1; i>>=1 )
211 if (isField && ((rpcSlice->
getPOC() % 2) == 1))
254 #if X0038_LAMBDA_FROM_QP_CAPABILITY
270 dQP += pdQPs[ rpcSlice->
getPOC() ];
284 #if X0038_LAMBDA_FROM_QP_CAPABILITY
294 dQP = dOrigQP + ((iDQpIdx+1)>>1)*(iDQpIdx%2 ? -1 : 1);
307 #if !X0038_LAMBDA_FROM_QP_CAPABILITY
331 #if !X0038_LAMBDA_FROM_QP_CAPABILITY
339 lambdaModifier = intraLambdaModifiers[ (temporalId < intraLambdaModifiers.size()) ? temporalId : (intraLambdaModifiers.size()-1) ];
342 dLambda *= lambdaModifier;
373 #if ADAPTIVE_QP_SELECTION
443 const Int SHIFT_QP = 12;
444 #if X0038_LAMBDA_FROM_QP_CAPABILITY
452 Int bitdepth_luma_qp_scale = 0;
454 Double qp_temp = dQP + bitdepth_luma_qp_scale - SHIFT_QP;
465 #if X0038_LAMBDA_FROM_QP_CAPABILITY
473 Double dLambda_scale = 1.0 -
Clip3( 0.0, 0.5, 0.05*(
Double)(isField ? NumberBFrames/2 : NumberBFrames) );
474 dQPFactor=0.57*dLambda_scale;
475 #if X0038_LAMBDA_FROM_QP_CAPABILITY
480 #if X0038_LAMBDA_FROM_QP_CAPABILITY
487 Double dLambda = dQPFactor*pow( 2.0, qp_temp/3.0 );
489 #if X0038_LAMBDA_FROM_QP_CAPABILITY
496 Double qp_temp_ref_orig = refQP - SHIFT_QP;
497 dLambda *=
Clip3( 2.00, 4.00, (qp_temp_ref_orig / 6.0) );
499 Double qp_temp_ref = refQP + bitdepth_luma_qp_scale - SHIFT_QP;
500 dLambda *=
Clip3( 2.00, 4.00, (qp_temp_ref / 6.0) );
510 #if X0038_LAMBDA_FROM_QP_CAPABILITY
512 if( eSliceType !=
I_SLICE || intraLambdaModifiers.empty())
518 lambdaModifier = intraLambdaModifiers[ (temporalId < intraLambdaModifiers.size()) ? temporalId : (intraLambdaModifiers.size()-1) ];
520 dLambda *= lambdaModifier;
535 #if ADAPTIVE_QP_SELECTION
551 Int iOffset = (iGOPSize >> 1);
555 for (
Int iDir = 0; iDir < iNumPredDir; iDir++)
582 printf(
"\nMultiple QP optimization is not allowed when rate control is enabled." );
599 printf(
"\nUnable to optimise Slice-level QP if Slice Mode is set to FIXED_NUMBER_OF_BYTES\n" );
605 UInt uiQpIdxBest = 0;
617 dFrameLambda = 0.68 * pow (2, (
m_viRdPicQp[0] - SHIFT_QP) / 3.0) * (pcSlice->
isInterB()? 2 : 1);
621 dFrameLambda = 0.68 * pow (2, (
m_viRdPicQp[0] - SHIFT_QP) / 3.0);
629 #if ADAPTIVE_QP_SELECTION
648 if ( dPicRdCost < dPicRdCostBest )
650 uiQpIdxBest = uiQpIdx;
651 dPicRdCostBest = dPicRdCost;
657 #if ADAPTIVE_QP_SELECTION
669 const Int offset = (shift>0)?(1<<(shift-1)):0;
673 UInt startCtuTsAddr, boundingCtuTsAddr;
677 ctuTsAddr < boundingCtuTsAddr;
682 pCtu->
initCtu( pcPic, ctuRsAddr );
704 UInt boundingCtuTsAddr;
708 if (bCompressEntireSlice)
749 printf(
"Weighted Prediction is not supported with slice mode determined by max number of bins.\n"); exit(0);
759 #if ADAPTIVE_QP_SELECTION
792 for(
UInt ctuTsAddr = startCtuTsAddr; ctuTsAddr < boundingCtuTsAddr; ++ctuTsAddr )
797 pCtu->
initCtu( pcPic, ctuRsAddr );
801 const UInt tileXPosInCtus = firstCtuRsAddrOfTile % frameWidthInCtus;
802 const UInt ctuXPosInCtus = ctuRsAddr % frameWidthInCtus;
804 if (ctuRsAddr == firstCtuRsAddrOfTile)
814 if ( pCtuUp && ((ctuRsAddr%frameWidthInCtus+1) < frameWidthInCtus) )
862 #if RDOQ_CHROMA_LAMBDA
873 #if ADAPTIVE_QP_SELECTION
902 const UInt validEndOfSliceCtuTsAddr = ctuTsAddr + (ctuTsAddr == startCtuTsAddr ? 1 : 0);
908 boundingCtuTsAddr=validEndOfSliceCtuTsAddr;
913 boundingCtuTsAddr=validEndOfSliceCtuTsAddr;
916 if (boundingCtuTsAddr <= ctuTsAddr)
936 Int numberOfEffectivePixels = 0;
941 numberOfEffectivePixels = numberOfEffectivePixels + 16;
946 if ( numberOfEffectivePixels == 0 )
952 actualQP = pCtu->
getQP( 0 );
1006 g_bJustDoIt = g_bEncDecTraceEnable;
1013 g_bJustDoIt = g_bEncDecTraceDisable;
1017 if (depSliceSegmentsEnabled)
1036 for(
UInt ctuTsAddr = startCtuTsAddr; ctuTsAddr < boundingCtuTsAddr; ++ctuTsAddr )
1041 const UInt tileXPosInCtus = firstCtuRsAddrOfTile % frameWidthInCtus;
1042 const UInt tileYPosInCtus = firstCtuRsAddrOfTile / frameWidthInCtus;
1043 const UInt ctuXPosInCtus = ctuRsAddr % frameWidthInCtus;
1044 const UInt ctuYPosInCtus = ctuRsAddr / frameWidthInCtus;
1051 if (ctuRsAddr == firstCtuRsAddrOfTile)
1053 if (ctuTsAddr != startCtuTsAddr)
1058 else if (ctuXPosInCtus == tileXPosInCtus && wavefrontsEnabled)
1061 if (ctuTsAddr != startCtuTsAddr)
1066 if ( pCtuUp && ((ctuRsAddr%frameWidthInCtus+1) < frameWidthInCtus) )
1080 Bool bIsSAOSliceEnabled =
false;
1086 if (sliceEnabled[compId])
1088 bIsSAOSliceEnabled=
true;
1091 if (bIsSAOSliceEnabled)
1095 Bool leftMergeAvail =
false;
1096 Bool aboveMergeAvail=
false;
1098 Int rx = (ctuRsAddr % frameWidthInCtus);
1105 Int ry = (ctuRsAddr / frameWidthInCtus);
1116 g_bJustDoIt = g_bEncDecTraceEnable;
1120 g_bJustDoIt = g_bEncDecTraceDisable;
1124 if ( ctuXPosInCtus == tileXPosInCtus+1 && wavefrontsEnabled)
1130 if (ctuTsAddr+1 == boundingCtuTsAddr ||
1132 ( ctuYPosInCtus + 1 == tileYPosInCtus + currentTile.
getTileHeightInCtus() || wavefrontsEnabled)
1142 if (ctuTsAddr+1 != boundingCtuTsAddr)
1144 pcSlice->
addSubstreamSize( (pcSubstreams[uiSubStrm].getNumberOfWrittenBits() >> 3) + pcSubstreams[uiSubStrm].countStartCodeEmulations() );
1149 if( depSliceSegmentsEnabled )
1154 #if ADAPTIVE_QP_SELECTION
1174 TComPic* pcPic,
const Int sliceMode,
const Int sliceArgument)
1179 boundingCtuTSAddrSlice=0;
1180 haveReachedTileBoundary=
false;
1186 UInt ctuAddrIncrement = sliceArgument;
1187 boundingCtuTSAddrSlice = ((startCtuTSAddrSlice + ctuAddrIncrement) < numberOfCtusInFrame) ? (startCtuTSAddrSlice + ctuAddrIncrement) : numberOfCtusInFrame;
1191 boundingCtuTSAddrSlice = numberOfCtusInFrame;
1197 UInt ctuAddrIncrement = 0;
1199 for(
UInt tileIdxIncrement = 0; tileIdxIncrement < sliceArgument; tileIdxIncrement++)
1201 if((tileIdx + tileIdxIncrement) < tileTotalCount)
1205 ctuAddrIncrement += (tileWidthInCtus * tileHeightInCtus);
1209 boundingCtuTSAddrSlice = ((startCtuTSAddrSlice + ctuAddrIncrement) < numberOfCtusInFrame) ? (startCtuTSAddrSlice + ctuAddrIncrement) : numberOfCtusInFrame;
1213 boundingCtuTSAddrSlice = numberOfCtusInFrame;
1230 const UInt tileLastTsAddr_excl = tileStartTsAddr + tileStartWidth*tileStartHeight;
1231 const UInt tileBoundingCtuTsAddrSlice = tileLastTsAddr_excl;
1233 const UInt ctuColumnOfStartingTile = ((startCtuTSAddrSlice-tileStartTsAddr)%tileStartWidth);
1234 if (wavefrontsAreEnabled && ctuColumnOfStartingTile!=0)
1237 const UInt numberOfCTUsToEndOfRow = tileStartWidth - ctuColumnOfStartingTile;
1238 const UInt wavefrontTileBoundingCtuAddrSlice = startCtuTSAddrSlice + numberOfCTUsToEndOfRow;
1239 if (wavefrontTileBoundingCtuAddrSlice < boundingCtuTSAddrSlice)
1241 boundingCtuTSAddrSlice = wavefrontTileBoundingCtuAddrSlice;
1245 if (tileBoundingCtuTsAddrSlice < boundingCtuTSAddrSlice)
1247 boundingCtuTSAddrSlice = tileBoundingCtuTsAddrSlice;
1248 haveReachedTileBoundary =
true;
1272 Bool haveReachedTileBoundarySlice =
false;
1273 UInt boundingCtuTsAddrSlice;
1281 Bool haveReachedTileBoundarySliceSegment =
false;
1282 UInt boundingCtuTsAddrSliceSegment;
1285 if (boundingCtuTsAddrSliceSegment>boundingCtuTsAddrSlice)
1287 boundingCtuTsAddrSliceSegment = boundingCtuTsAddrSlice;
1293 startCtuTsAddr = max(startCtuTsAddrSlice , startCtuTsAddrSliceSegment );
1294 boundingCtuTsAddr = boundingCtuTsAddrSliceSegment;
1299 return 4.2005*log(lambda) + 13.7122;
Void setDistortionWeight(const ComponentID compID, const Double distortionWeight)
Int getNumTileRowsMinus1() const
Void setSliceSegmentCurEndCtuTsAddr(UInt ctuTsAddr)
Void encodeSAOBlkParam(SAOBlkParam &saoBlkParam, const BitDepths &bitDepths, Bool *sliceEnabled, Bool leftMergeAvail, Bool aboveMergeAvail)
Void setSliceSegmentMode(SliceConstraint mode)
Void encodeSlice(TComPic *pcPic, TComOutputBitstream *pcSubstreams, UInt &numBinsCoded)
SliceType
supported slice type
UInt getFirstCtuRsAddr() const
Void setDeblockingFilterTcOffsetDiv2(Int i)
TEncSbac *** getRDSbacCoder()
Bool getEfficientFieldIRAPEnabled() const
UInt getCtuTsToRsAddrMap(Int ctuTsAddr) const
SliceType getSliceType() const
TEncGOP * m_pcGOPEncoder
GOP encoder.
Void setUpLambda(TComSlice *slice, const Double dLambda, Int iQP)
Void encodeCtu(TComDataCU *pCtu)
CTU encoding function.
TEncRateCtrl * getRateCtrl()
static const Int LOSSLESS_AND_MIXED_LOSSLESS_RD_COST_TEST_QP
QP to use for lossless coding.
Int getNumTileColumnsMinus1() const
Void setPicYuvResi(TComPicYuv *pcPicYuv)
Int updateCtuDataISlice(TComDataCU *pCtu, Int width, Int height)
Bool getUseRecalculateQPAccordingToLambda()
UInt getNumberOfCtusInFrame() const
SliceConstraint getSliceMode() const
picture class (symbol + YUV buffers)
TEncSbac * m_pcRDGoOnSbacCoder
go-on SBAC encoder
Void init(TEncTop *pcEncTop)
Void writeByteAlignment()
const TComPPSRExt & getPpsRangeExtension() const
Bool getSliceChromaQpFlag() const
TEncGOP * getGOPEncoder()
Void setDeblockingFilterBetaOffsetDiv2(Int i)
Bool getFastMEForGenBLowDelayEnabled()
Int getNumTileColumnsMinus1() const
UInt64 m_uiPicTotalBits
total bits for the picture
Void initCtu(TComPic *pcPic, UInt ctuRsAddr)
TComSlice * getSlice(Int i)
Void setPicYuvPred(TComPicYuv *pcPicYuv)
Void addSubstreamSize(UInt size)
TEncSbac *** m_pppcRDSbacCoder
storage for SBAC-based RD optimization
Bool getCabacInitPresentFlag() const
SliceType determineCabacInitIdx(const TComSlice *pSlice)
SliceConstraint getSliceSegmentMode() const
SChar * getPredictionMode()
UInt getNumPartitionsInCtu() const
Int getSliceSegmentArgument()
Void initEncSlice(TComPic *pcPic, const Int pocLast, const Int pocCurr, const Int iGOPid, TComSlice *&rpcSlice, const Bool isField)
preparation of slice encoding (reference marking, QP and lambda)
SliceType m_encCABACTableIdx
UInt getMaxCUHeight() const
Int getLoopFilterTcOffset()
Int getNumberValidComponents() const
Bool getPPSDeblockingFilterDisabledFlag() const
get offset for deblocking filter disabled
const Int g_RCInvalidQPValue
Double calculateLambda(const TComSlice *pSlice, const Int GOPid, const Int depth, const Double refQP, const Double dQP, Int &iQP)
TEncCu * m_pcCuEncoder
CU encoder.
Void setSliceCurStartCtuTsAddr(UInt ctuTsAddr)
TEncEntropy * getEntropyCoder()
TEncSbac * m_pcSbacCoder
SBAC encoder.
Void setTLayer(UInt uiTLayer)
Bool getTransquantBypassEnabledFlag() const
Int getNumRefIdx(RefPicList e) const
UInt getCtuRsToTsAddrMap(Int ctuRsAddr) const
Bool getSaoEnabledFlag(ChannelType chType) const
TEncSearch * m_pcPredSearch
encoder search class
TEncBinCABAC * m_pcBinCABAC
Bin encoder CABAC.
Void setSliceBits(UInt uiVal)
UInt getFrameWidthInCtus() const
Int getNumTileRowsMinus1() const
Void xCheckWPEnable(TComSlice *const slice)
check weighted pred or non-weighted pred
Void setSliceSegmentArgument(UInt uiArgument)
Distortion & getTotalDistortion()
UInt getSliceChromaOffsetQpPeriodicity() const
Void precompressSlice(TComPic *pcPic)
precompress slice for multi-loop slice-level QP opt.
Void calCostSliceI(TComPic *pcPic)
Void setAdaptiveSearchRange(Int iDir, Int iRefIdx, Int iSearchRange)
set ME search range
TEncSbac * getRDGoOnSbacCoder()
ChromaFormat getChromaFormatIdc()
Void create(Int iWidth, Int iHeight, ChromaFormat chromaFormat, UInt iMaxCUWidth, UInt iMaxCUHeight, UChar uhTotalDepth)
Bool getDependentSliceSegmentFlag() const
Void calculateBoundingCtuTsAddrForSlice(UInt &startCtuTSAddrSlice, UInt &boundingCtuTSAddrSlice, Bool &haveReachedTileBoundary, TComPic *pcPic, const Int sliceMode, const Int sliceArgument)
Void loadContexts(const TEncSbac *pSrc)
Void storeSliceQpNext(TComSlice *pcSlice)
UInt getTileWidthInCtus() const
std::vector< Int > m_viRdPicQp
array of picture QP candidates (Int-type)
Bool getUseAdaptQpSelect()
Limit maximum number of bytes in a slice / slice segment.
Void setSliceType(SliceType e)
TEncSbac * getSbacCoder()
TComList< TComPic * > * getListPic()
Void setTemporalLayerNonReferenceFlag(Bool x)
Void setTotalIntraCost(Double cost)
UInt getTileIdxMap(Int ctuRsAddr) const
Int getQpBDOffset(ChannelType type) const
Double getIntraQpFactor() const
Bool getFastDeltaQp() const
Bool getSAOMergeAvailability(Int currAddr, Int mergeAddr)
Void setSliceSegmentBits(UInt uiVal)
UInt getSubstreamForCtuAddr(const UInt ctuAddr, const Bool bAddressInRaster, TComSlice *pcSlice)
Void setBitstream(TComBitIf *p)
Double calcRdCost(Double numBits, Double distortion, DFunc eDFunc=DF_DEFAULT)
TComRdCost * m_pcRdCost
RD cost computation.
Void setDeltaQpRD(UInt u)
Void setSliceQpDelta(Int i)
Int getSearchRange() const
UInt64 m_uiPicDist
total distortion for the picture
static const Int ADAPT_SR_SCALE
division factor for adaptive search range
Void setLambda(Double dLambda, const BitDepths &bitDepths)
UInt getPicHeightInLumaSamples() const
Void load(const TEncSbac *pSrc)
UInt getSliceBits() const
Int getQPForPicture(const UInt gopIndex, const TComSlice *pSlice) const
TComTrQuant * getTrQuant()
Int getMaxDeltaQP() const
Double getLambdaModifier(UInt uiIndex) const
UInt getSliceSegmentBits() const
T Clip3(const T minVal, const T maxVal, const T a)
general min/max clip
TEncEntropy * m_pcEntropyCoder
entropy encoder
CostMode getCostMode() const
const std::vector< Double > & getIntraLambdaModifier() const
Void setDepth(Int iDepth)
Double getLCUTargetBpp(SliceType eSliceType)
Int getBitDepth(ChannelType type) const
TComPicYuv m_picYuvPred
prediction picture buffer
Void setDeblockingFilterOverrideFlag(Bool b)
slice encoder class (header)
Void compressCtu(TComDataCU *pCtu)
CTU analysis function.
Void setFastDeltaQp(Bool b)
RefPicList
reference list index
Void setSliceCurEndCtuTsAddr(UInt ctuTsAddr)
Int getSliceQpBase() const
Void setSliceQpBase(Int i)
Int getSliceChromaOffsetQpIntraOrPeriodic(Bool bIsCr) const
ChromaFormat
chroma formats (according to semantics of chroma_format_idc)
#define DTRACE_CABAC_VL(x)
Void updateLambda(TComSlice *pSlice, Double dQP)
const BitDepths & getBitDepths() const
UInt getSliceSegmentCurStartCtuTsAddr() const
Limit maximum number of largest coding tree units in a slice / slice segments.
TEncSbac m_lastSliceSegmentEndContextState
context storage for state at the end of the previous slice-segment (used for dependent slices only)...
Bool isSkipped(UInt uiPartIdx) const
returns true, if the partiton is skipped
WeightedPredictionMethod getWeightedPredictionMethod() const
const TComPPS * getPPS() const
UInt getPicWidthInLumaSamples() const
Void setSliceChromaQpDelta(ComponentID compID, Int i)
Void setMaxNumMergeCand(UInt val)
std::vector< Double > m_vdRdPicQp
array of picture QP candidates (double-type for lambda)
UInt getSliceArgument() const
Int getLambdaFromQPEnable() const
UInt getSliceSegmentArgument() const
#define DTRACE_CABAC_T(x)
Void initWpScaling(const TComSPS *sps)
init WP table
Void setBinsCoded(UInt uiVal)
UInt getTileHeightInCtus() const
Int getLCUEstQP(Double lambda, Int clipPicQP)
const TComSPS & getSPS() const
Bool getDeblockingFilterControlPresentFlag() const
Void updateAfterCTU(Int LCUIdx, Int bits, Int QP, Double lambda, Bool updateLCUParameter=true)
Bool getEntropyCodingSyncEnabledFlag() const
Void xEstimateWPParamSlice(TComSlice *const slice, const WeightedPredictionMethod method)
estimate wp tables for explicit wp
UInt getSliceCurStartCtuTsAddr() const
unsigned long long UInt64
const GOPEntry & getGOPEntry(Int i) const
TComDataCU * getCtu(UInt ctuRsAddr)
Void setEntropyCoder(TEncEntropyIf *e)
TEncBinIf * getEncBinIf()
const LumaLevelToDeltaQPMapping & getLumaLevelToDeltaQPMapping() const
Double getLCUEstLambdaAndQP(Double bpp, Int clipPicQP, Int *estQP)
Void setFrameLambda(Double dLambda)
Void resetEntropy(const TComSlice *pSlice)
Void setSliceMode(SliceConstraint mode)
const Int * getdQPs() const
TComDataCU * getCtuAbove()
Bool getDependentSliceSegmentsEnabledFlag() const
Int getQpOffset(ComponentID compID) const
static const Double MAX_DOUBLE
max. value of Double-type value
Void setSearchRange(TComSlice *pcSlice)
set ME range adaptively
TComTile * getTComTile(UInt tileIdx)
TComTrQuant * m_pcTrQuant
transform & quantization
Bool getEntropyCodingSyncEnabledFlag() const
Void setSliceArgument(UInt uiArgument)
UInt getSliceSegmentCurEndCtuTsAddr() const
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...
Void xCalcACDCParamSlice(TComSlice *const slice)
calculate AC and DC values for current original image
Void setBinCountingEnableFlag(Bool bFlag)
Void setTLayer(UInt uiTLayer)
#define DTRACE_CABAC_V(x)
Void setBitstream(TComBitIf *p)
Void setSliceSegmentCurStartCtuTsAddr(UInt ctuTsAddr)
Bool CUIsFromSameSliceAndTile(const TComDataCU *pCU) const
Int getMinSearchWindow() const
Int getSliceChromaQpDelta(ComponentID compID) const
UInt getMaxNumMergeCand()
TEncCfg * m_pcCfg
encoder configuration class
TEncSearch * getPredSearch()
Void setLambdas(const Double lambdas[MAX_NUM_COMPONENT])
UInt getDecodingRefreshType()
SliceConstraint getSliceMode() const
Bool getDeblockingFilterOverrideFlag() const
SliceConstraint getSliceSegmentMode() const
slices / slice segments span an integer number of tiles
Void xDetermineStartAndBoundingCtuTsAddr(UInt &startCtuTsAddr, UInt &boundingCtuTsAddr, TComPic *pcPic)
Void resetQP(TComPic *pic, Int sliceQP, Double lambda)
Double m_dPicRdCost
picture-level RD cost
Void encodeTerminatingBit(UInt uiIsLast)
Void setUseChromaQpAdj(Bool b)
Bool getChromaQpOffsetListEnabledFlag() const
Void setDeblockingFilterDisable(Bool b)
Bool getDeblockingFilterDisable() const
std::vector< Double > m_vdRdPicLambda
array of lambda candidates
Void compressSlice(TComPic *pcPic, const Bool bCompressEntireSlice, const Bool bFastDeltaQP)
analysis stage of slice
Void setNumRefIdx(RefPicList e, Int i)
TEncBinCABAC * getBinCABAC()
UInt getDeltaQpRD() const
Void setPicOutputFlag(Bool b)
Bool getHarmonizeGopFirstFieldCoupleEnabled() const
Int getLoopFilterBetaOffset()
Void setReferenced(Bool b)
TEncRateCtrl * m_pcRateCtrl
Rate control manager.
Int getDeblockingFilterMetric()
UInt getFrameWidthInCtus() const
TComPic * getRefPic(RefPicList e, Int iRefIdx)
TComPicYuv m_picYuvResi
residual picture buffer
Bool getDeblockingFilterOverrideEnabledFlag() const
Void resetEntropy(const TComSlice *pSlice)
TEncSbac m_entropyCodingSyncContextState
context storate for state of contexts at the wavefront/WPP/entropy-coding-sync second CTU of tile-row...
UInt getSliceCurEndCtuTsAddr() const
TComList< TComPic * > * m_pcListPic
list of pictures
Double getLCUEstLambda(Double bpp)
UInt getMaxCUWidth() const
const TComSPS * getSPS() const
Double xGetQPValueAccordingToLambda(Double lambda)
Void setLambdas(const Double lambdas[MAX_NUM_COMPONENT])
UInt getNumberOfWrittenBits()
SAOBlkParam * getSAOBlkParam()