50 , m_PicOutputFlag ( true )
53 , m_iAssociatedIRAP ( 0 )
58 , m_RefPicListModification ( )
62 , m_dependentSliceSegmentFlag ( false )
64 , m_iSliceQpBase ( 0 )
66 , m_ChromaQpAdjEnabled ( false )
67 , m_deblockingFilterDisable ( false )
68 , m_deblockingFilterOverrideFlag ( false )
69 , m_deblockingFilterBetaOffsetDiv2( 0 )
70 , m_deblockingFilterTcOffsetDiv2 ( 0 )
71 , m_bCheckLDC ( false )
72 , m_iSliceQpDelta ( 0 )
74 , m_bRefenced ( false )
79 , m_colFromL0Flag ( true )
80 , m_noOutputPriorPicsFlag ( false )
81 , m_noRaslOutputFlag ( false )
82 , m_handleCraAsBlaFlag ( false )
84 , m_maxNumMergeCand ( 0 )
86 , m_bTLayerSwitchingFlag ( false )
88 , m_sliceArgument ( 0 )
89 , m_sliceCurStartCtuTsAddr ( 0 )
90 , m_sliceCurEndCtuTsAddr ( 0 )
93 , m_sliceSegmentArgument ( 0 )
94 , m_sliceSegmentCurStartCtuTsAddr ( 0 )
95 , m_sliceSegmentCurEndCtuTsAddr ( 0 )
96 , m_nextSlice ( false )
97 , m_nextSliceSegment ( false )
99 , m_sliceSegmentBits ( 0 )
100 , m_bFinalized ( false )
101 , m_bTestWeightPred ( false )
102 , m_bTestWeightBiPred ( false )
103 , m_substreamSizes ( )
104 , m_cabacInitFlag ( false )
105 , m_bLMvdL1Zero ( false )
106 , m_temporalLayerNonReferenceFlag ( false )
107 , m_LFCrossSliceBoundaryFlag ( false )
108 , m_enableTMVPFlag ( true )
199 for (
Int i = 1; i < (
Int)(rcListPic.size()); i++)
201 iterPicExtract = rcListPic.begin();
202 for (
Int j = 0; j < i; j++)
206 pcPicExtract = *(iterPicExtract);
209 iterPicInsert = rcListPic.begin();
210 while (iterPicInsert != iterPicExtract)
212 pcPicInsert = *(iterPicInsert);
222 iterPicExtract_1 = iterPicExtract; iterPicExtract_1++;
225 rcListPic.insert (iterPicInsert, iterPicExtract, iterPicExtract_1);
226 rcListPic.erase (iterPicExtract);
234 while ( iterPic != rcListPic.end() )
236 if(pcPic->
getPOC() == poc)
256 poc = poc & (pocCycle - 1);
259 while ( iterPic != rcListPic.end() )
267 picPoc = picPoc & (pocCycle - 1);
326 if (!checkNumPocTotalCurr)
333 static const UInt MAX_NUM_NEGATIVE_PICTURES=16;
334 TComPic* RefPicSetStCurr0[MAX_NUM_NEGATIVE_PICTURES];
335 TComPic* RefPicSetStCurr1[MAX_NUM_NEGATIVE_PICTURES];
336 TComPic* RefPicSetLtCurr[MAX_NUM_NEGATIVE_PICTURES];
337 UInt NumPicStCurr0 = 0;
338 UInt NumPicStCurr1 = 0;
339 UInt NumPicLtCurr = 0;
349 RefPicSetStCurr0[NumPicStCurr0] = pcRefPic;
362 RefPicSetStCurr1[NumPicStCurr1] = pcRefPic;
375 RefPicSetLtCurr[NumPicLtCurr] = pcRefPic;
388 Int numPicTotalCurr = NumPicStCurr0 + NumPicStCurr1 + NumPicLtCurr;
390 if (checkNumPocTotalCurr)
397 assert(numPicTotalCurr == 0);
405 assert(numPicTotalCurr > 0);
407 assert(numPicTotalCurr <= 8);
411 for ( i=0; i<NumPicStCurr0; i++, cIdx++)
413 rpsCurrList0[cIdx] = RefPicSetStCurr0[i];
415 for ( i=0; i<NumPicStCurr1; i++, cIdx++)
417 rpsCurrList0[cIdx] = RefPicSetStCurr1[i];
419 for ( i=0; i<NumPicLtCurr; i++, cIdx++)
421 rpsCurrList0[cIdx] = RefPicSetLtCurr[i];
423 assert(cIdx == numPicTotalCurr);
428 for ( i=0; i<NumPicStCurr1; i++, cIdx++)
430 rpsCurrList1[cIdx] = RefPicSetStCurr1[i];
432 for ( i=0; i<NumPicStCurr0; i++, cIdx++)
434 rpsCurrList1[cIdx] = RefPicSetStCurr0[i];
436 for ( i=0; i<NumPicLtCurr; i++, cIdx++)
438 rpsCurrList1[cIdx] = RefPicSetLtCurr[i];
440 assert(cIdx == numPicTotalCurr);
448 assert(cIdx >= 0 && cIdx < numPicTotalCurr);
462 assert(cIdx >= 0 && cIdx < numPicTotalCurr);
471 Int numRpsCurrTempList = 0;
481 numRpsCurrTempList++;
484 return numRpsCurrTempList;
495 m_abEqualRef[iDir][iRefIdx1][iRefIdx2] =
m_abEqualRef[iDir][iRefIdx2][iRefIdx1] = (iRefIdx1 == iRefIdx2?
true :
false);
508 for(i=curSliceIdx-1; i>=0; i--)
514 if(currColRefPOC != preColRefPOC)
516 printf(
"Collocated_ref_idx shall always be the same for all slices of a coded picture!\n");
546 assert(pReferencePictureSet->
getPOC(i) >= pocCRA);
600 while (iterPic != rcListPic.end())
604 if (rpcPic->
getPOC() != pocCurr)
616 if (bEfficientFieldIRAPEnabled)
618 bRefreshPending =
true;
625 if (bRefreshPending==
true && pocCurr >
m_iLastIDR)
628 while (iterPic != rcListPic.end())
637 bRefreshPending =
false;
642 if (bRefreshPending==
true && pocCurr > pocCRA)
645 while (iterPic != rcListPic.end())
648 if (rpcPic->
getPOC() != pocCurr && rpcPic->
getPOC() != pocCRA)
654 bRefreshPending =
false;
659 bRefreshPending =
true;
667 assert( pSrc !=
NULL );
675 #if ADAPTIVE_QP_SELECTION
793 while ( iterPic != rcListPic.end())
795 rpcPic = *(iterPic++);
814 while ( iterPic != rcListPic.end())
816 rpcPic = *(iterPic++);
888 while ( iterPic != rcListPic.end())
890 rpcPic = *(iterPic++);
1005 while ( iterPic != rcListPic.end())
1007 rpcPic = *(iterPic++);
1040 Int refPoc = pReferencePictureSet->
getPOC(i) & (pocCycle-1);
1076 Int atLeastOneUnabledByRecoveryPoint = 0;
1077 Int atLeastOneFlushedByPreviousIDR = 0;
1080 Int atLeastOneLost = 0;
1081 Int atLeastOneRemoved = 0;
1091 while ( iterPic != rcListPic.end())
1093 rpcPic = *(iterPic++);
1098 if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess && this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i) < pocRandomAccess)
1112 Int refPoc = pReferencePictureSet->
getPOC(i) & (pocCycle-1);
1115 if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess && this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i) < pocRandomAccess)
1129 iterPic = rcListPic.begin();
1130 while ( iterPic != rcListPic.end())
1132 rpcPic = *(iterPic++);
1136 Int refPoc = pReferencePictureSet->
getPOC(i);
1139 curPoc = curPoc & (pocCycle - 1);
1140 refPoc = refPoc & (pocCycle - 1);
1145 if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess && this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i) < pocRandomAccess)
1160 if(isAvailable == 0)
1164 if(!pReferencePictureSet->
getUsed(i) )
1168 printf(
"\nLong-term reference picture with POC = %3d seems to have been removed or not correctly decoded.", this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i));
1170 atLeastOneRemoved = 1;
1176 printf(
"\nLong-term reference picture with POC = %3d is lost or not correctly decoded!", this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i));
1182 else if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess)
1184 atLeastOneUnabledByRecoveryPoint = 1;
1188 atLeastOneFlushedByPreviousIDR = 1;
1199 while ( iterPic != rcListPic.end())
1201 rpcPic = *(iterPic++);
1205 if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess && this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i) < pocRandomAccess)
1217 if(isAvailable == 0)
1221 if(!pReferencePictureSet->
getUsed(i) )
1225 printf(
"\nShort-term reference picture with POC = %3d seems to have been removed or not correctly decoded.", this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i));
1227 atLeastOneRemoved = 1;
1233 printf(
"\nShort-term reference picture with POC = %3d is lost or not correctly decoded!", this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i));
1239 else if(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess)
1241 atLeastOneUnabledByRecoveryPoint = 1;
1245 atLeastOneFlushedByPreviousIDR = 1;
1250 if(atLeastOneUnabledByRecoveryPoint || atLeastOneFlushedByPreviousIDR)
1258 if(atLeastOneRemoved)
1275 Int nrOfNegativePictures = 0;
1276 Int nrOfPositivePictures = 0;
1280 Bool irapIsInRPS =
false;
1288 while ( iterPic != rcListPic.end())
1291 rpcPic = *(iterPic++);
1298 pLocalRPS->
setUsed(k, pReferencePictureSet->
getUsed(i) && (!isRAP));
1299 if (bEfficientFieldIRAPEnabled)
1301 pLocalRPS->
setUsed(k, pLocalRPS->
getUsed(k) && !(bUseRecoveryPoint && this->
getPOC() > pocRandomAccess && this->
getPOC() + pReferencePictureSet->
getDeltaPOC(i) < pocRandomAccess) );
1306 nrOfNegativePictures++;
1314 nrOfPositivePictures++;
1321 Bool useNewRPS =
false;
1323 if(bEfficientFieldIRAPEnabled &&
m_pcPic->
isField() && !irapIsInRPS)
1326 while ( iterPic != rcListPic.end())
1328 rpcPic = *(iterPic++);
1333 nrOfPositivePictures++;
1357 for(i=0; i<= iRefPics; i++)
1363 if ( (deltaPOC + deltaRPS) == pLocalRPS->
getDeltaPOC(j))
1452 pwp->
o = pwp->
iOffset * offsetScalingFactor;
1465 , m_uiMaxTLayers ( 1)
1466 , m_uiMaxLayers ( 1)
1467 , m_bTemporalIdNestingFlag (false)
1468 , m_numHrdParameters ( 0)
1469 , m_maxNuhReservedZeroLayerId ( 0)
1470 , m_hrdParameters ()
1472 , m_cprmsPresentFlag ()
1492 : m_transformSkipRotationEnabledFlag (false)
1493 , m_transformSkipContextEnabledFlag (false)
1495 , m_extendedPrecisionProcessingFlag (false)
1496 , m_intraSmoothingDisabledFlag (false)
1497 , m_highPrecisionOffsetsEnabledFlag (false)
1498 , m_persistentRiceAdaptationEnabledFlag(false)
1499 , m_cabacBypassAlignmentEnabledFlag (false)
1511 , m_uiMaxTLayers ( 1)
1513 , m_picWidthInLumaSamples (352)
1514 , m_picHeightInLumaSamples (288)
1515 , m_log2MinCodingBlockSize ( 0)
1516 , m_log2DiffMaxMinCodingBlockSize(0)
1517 , m_uiMaxCUWidth ( 32)
1518 , m_uiMaxCUHeight ( 32)
1519 , m_uiMaxTotalCUDepth ( 3)
1520 , m_bLongTermRefsPresent (false)
1521 , m_uiQuadtreeTULog2MaxSize ( 0)
1522 , m_uiQuadtreeTULog2MinSize ( 0)
1523 , m_uiQuadtreeTUMaxDepthInter ( 0)
1524 , m_uiQuadtreeTUMaxDepthIntra ( 0)
1527 , m_pcmLog2MaxSize ( 5)
1528 , m_uiPCMLog2MinSize ( 7)
1529 , m_bPCMFilterDisableFlag (false)
1530 , m_uiBitsForPOC ( 8)
1531 , m_numLongTermRefPicSPS ( 0)
1532 , m_uiMaxTrSize ( 32)
1534 , m_bTemporalIdNestingFlag (false)
1535 , m_scalingListEnabledFlag (false)
1536 , m_useStrongIntraSmoothing (false)
1537 , m_vuiParametersPresentFlag (false)
1538 , m_vuiParameters ()
1543 #if O0043_BEST_EFFORT_DECODING
1577 : m_log2MaxTransformSkipBlockSize (2)
1578 , m_crossComponentPredictionEnabledFlag(false)
1579 , m_diffCuChromaQpOffsetDepth (0)
1580 , m_chromaQpOffsetListLen (0)
1595 , m_picInitQPMinus26 (0)
1597 , m_bConstrainedIntraPred (false)
1598 , m_bSliceChromaQpFlag (false)
1599 , m_uiMaxCuDQPDepth (0)
1600 , m_chromaCbQpOffset (0)
1601 , m_chromaCrQpOffset (0)
1602 , m_numRefIdxL0DefaultActive (1)
1603 , m_numRefIdxL1DefaultActive (1)
1604 , m_TransquantBypassEnabledFlag (false)
1605 , m_useTransformSkip (false)
1606 , m_dependentSliceSegmentsEnabledFlag(false)
1607 , m_tilesEnabledFlag (false)
1608 , m_entropyCodingSyncEnabledFlag (false)
1609 , m_loopFilterAcrossTilesEnabledFlag (true)
1610 , m_uniformSpacingFlag (false)
1611 , m_numTileColumnsMinus1 (0)
1612 , m_numTileRowsMinus1 (0)
1613 , m_signDataHidingEnabledFlag (false)
1614 , m_cabacInitPresentFlag (false)
1615 , m_sliceHeaderExtensionPresentFlag (false)
1616 , m_loopFilterAcrossSlicesEnabledFlag(false)
1617 , m_listsModificationPresentFlag (0)
1618 , m_numExtraSliceHeaderBits (0)
1627 : m_numberOfPictures (0)
1628 , m_numberOfNegativePictures (0)
1629 , m_numberOfPositivePictures (0)
1630 , m_numberOfLongtermPictures (0)
1631 , m_interRPSPrediction (0)
1632 , m_deltaRIdxMinus1 (0)
1652 m_used[bufferNum] = used;
1667 return m_used[bufferNum];
1682 return m_POC[bufferNum];
1687 m_POC[bufferNum] = POC;
1724 for (
Int k=j-1; k >= 0; k--)
1727 if (deltaPOC < temp)
1738 for(
Int j=0, k=numNegPics-1; j < numNegPics>>1; j++, k--)
1755 printf(
"DeltaPOC = { ");
1762 printf(
"}, RefIdc = { ");
1772 : m_refPicListModificationFlagL0 (false)
1773 , m_refPicListModificationFlagL1 (false)
1811 UInt defaultCounter=0;
1825 return (defaultCounter == (
SCALING_LIST_NUM * SCALING_LIST_SIZE_NUM )) ?
false :
true;
1842 for(
Int predListIdx = (
Int)listId ; predListIdx >= 0; predListIdx-=predListStep)
1858 os <<
"The scaling list file specifies all matrices and their DC values; none can be missing,\n"
1859 "but their order is arbitrary.\n\n"
1860 "The matrices are specified by:\n"
1861 "<matrix name><unchecked data>\n"
1862 " <value>,<value>,<value>,....\n\n"
1863 " Line-feeds can be added arbitrarily between values, and the number of values needs to be\n"
1864 " at least the number of entries for the matrix (superfluous entries are ignored).\n"
1865 " The <unchecked data> is text on the same line as the matrix that is not checked\n"
1866 " except to ensure that the matrix name token is unique. It is recommended that it is ' ='\n"
1867 " The values in the matrices are the absolute values (0-255), not the delta values as\n"
1868 " exchanged between the encoder and decoder\n\n"
1869 "The DC values (for matrix sizes larger than 8x8) are specified by:\n"
1870 "<matrix name>_DC<unchecked data>\n"
1873 os <<
"The permitted matrix names are:\n";
1880 os <<
" " <<
MatrixType[sizeIdc][listIdc] <<
'\n';
1890 const UInt size = min(8,4<<(sizeIdc));
1896 os << (
MatrixType[sizeIdc][listIdc]) <<
" =\n ";
1897 for(
UInt y=0; y<size; y++)
1899 for(
UInt x=0; x<size; x++, src++)
1901 os << std::setw(3) << (*src) <<
", ";
1903 os << (y+1<size?
"\n ":
"\n");
1917 static const Int LINE_SIZE=1024;
1919 TChar line[LINE_SIZE];
1921 if (fileName.empty())
1923 fprintf(stderr,
"Error: no scaling list file specified. Help on scaling lists being output\n");
1925 std::cout <<
"\n\nExample scaling list file using default values:\n\n";
1930 else if ((fp = fopen(fileName.c_str(),
"r")) == (FILE*)
NULL)
1932 fprintf(stderr,
"Error: cannot open scaling list file %s for reading\n", fileName.c_str());
1947 for(
UInt i=0; i<size; i++)
1949 src[i] = srcNextSmallerSize[i];
1956 fseek(fp, 0, SEEK_SET);
1958 while ((!feof(fp)) && (!bFound))
1960 TChar *ret = fgets(line, LINE_SIZE, fp);
1970 fprintf(stderr,
"Error: cannot find Matrix %s from scaling list file %s\n",
MatrixType[sizeIdc][listIdc], fileName.c_str());
1974 for (
UInt i=0; i<size; i++)
1977 if (fscanf(fp,
"%d,", &data)!=1)
1979 fprintf(stderr,
"Error: cannot read value #%d for Matrix %s from scaling list file %s at file position %ld\n", i,
MatrixType[sizeIdc][listIdc], fileName.c_str(), ftell(fp));
1982 if (data<0 || data>255)
1984 fprintf(stderr,
"Error: QMatrix entry #%d of value %d for Matrix %s from scaling list file %s at file position %ld is out of range (0 to 255)\n", i, data,
MatrixType[sizeIdc][listIdc], fileName.c_str(), ftell(fp));
1996 fseek(fp, 0, SEEK_SET);
1998 while ((!feof(fp)) && (!bFound))
2000 TChar *ret = fgets(line, LINE_SIZE, fp);
2002 if (findNamePosition!=
NULL)
2010 fprintf(stderr,
"Error: cannot find DC Matrix %s from scaling list file %s\n",
MatrixType_DC[sizeIdc][listIdc], fileName.c_str());
2015 if (fscanf(fp,
"%d,", &data)!=1)
2017 fprintf(stderr,
"Error: cannot read DC %s from scaling list file %s at file position %ld\n",
MatrixType_DC[sizeIdc][listIdc], fileName.c_str(), ftell(fp));
2020 if (data<0 || data>255)
2022 fprintf(stderr,
"Error: DC value %d for Matrix %s from scaling list file %s at file position %ld is out of range (0 to 255)\n", data,
MatrixType[sizeIdc][listIdc], fileName.c_str(), ftell(fp));
2143 printf(
"Warning: tried to activate PPS referring to a inactive SPS at non-IDR.");
2153 printf(
"Warning: tried to activate PPS referring to a inactive VPS at non-IDR.");
2166 printf(
"Warning: tried to activate PPS that refers to a non-existing VPS.");
2172 printf(
"Warning: tried to activate a PPS that refers to a non-existing SPS.");
2178 printf(
"Warning: tried to activate non-existing PPS.");
2200 : m_profileSpace (0)
2201 , m_tierFlag (Level::
MAIN)
2202 , m_profileIdc (Profile::
NONE)
2203 , m_levelIdc (Level::
NONE)
2204 , m_progressiveSourceFlag (false)
2205 , m_interlacedSourceFlag (false)
2206 , m_nonPackedConstraintFlag(false)
2207 , m_frameOnlyConstraintFlag(false)
2222 if ((pOldData==0 && pNewData!=0) || (pOldData!=0 && pNewData==0))
2226 else if (pOldData!=0 && pNewData!=0)
2229 if (pOldData->size() != pNewData->size())
2235 const UChar *pNewDataArray=&(*pNewData)[0];
2236 const UChar *pOldDataArray=&(*pOldData)[0];
2237 if (memcmp(pOldDataArray, pNewDataArray, pOldData->size()))
Bool m_profileCompatibilityFlag[32]
const Int g_quantTSDefault4x4[4 *4]
Int getNumberOfPositivePictures() const
Bool m_bIsUsedAsLongTerm[NUM_REF_PIC_LIST_01][MAX_NUM_REF+1]
Bool getPicOutputFlag() const
const TComReferencePictureSet * m_pRPS
Bool isStepwiseTemporalLayerSwitchingPointCandidate(TComList< TComPic * > &rcListPic)
Void checkPredMode(UInt sizeId, UInt listId)
virtual ~ParameterSetManager()
static const Int SCALING_LIST_NUM
list number for quantization matrix
Void setUsed(Int bufferNum, Bool used)
Bool m_subLayerLevelPresentFlag[MAX_TLAYER-1]
SBAC decoder class (header)
Int * getScalingListAddress(UInt sizeId, UInt listId)
get matrix coefficient
Void getWpAcDcParam(WPACDCParam *&wp)
get AC and DC values for weighted pred
SliceType getSliceType() const
Int m_aiRefPOCList[NUM_REF_PIC_LIST_01][MAX_NUM_REF+1]
Bool getTemporalLayerNonReferenceFlag()
static Void setID(T *parameterSet, const Int psId)
Bool checkDefaultScalingList()
Void printDeltaPOC() const
Void processRefMatrix(UInt sizeId, UInt listId, UInt refListId)
picture class (symbol + YUV buffers)
TComPic * xGetLongTermRefPic(TComList< TComPic * > &rcListPic, Int poc, Bool pocHasMsb)
Defines version information, constants and small in-line functions.
Void setScalingListPredModeFlag(UInt sizeId, UInt listId, Bool bIsDPCM)
Int getUsed(Int bufferNum) const
Void setNumberOfNegativePictures(Int number)
static const Int MAX_NUM_PPS
static const Int MRG_MAX_NUM_CANDS
MERGE.
const TComSPSRExt & getSpsRangeExtension() const
NalUnitType getAssociatedIRAPType() const
const Int * getScalingListDefaultAddress(UInt sizeId, UInt listId)
get default matrix coefficient
UInt getBitsForPOC() const
TComSlice * getSlice(Int i)
Void copySliceInfo(TComSlice *pcSliceSrc)
don't use slices / slice segments
slice header and SPS class (header)
SliceConstraint m_sliceSegmentMode
UInt m_log2SaoOffsetScale[MAX_NUM_CHANNEL_TYPE]
Bool m_bCheckLTMSB[MAX_NUM_REF_PICS]
const Int g_quantInterDefault8x8[8 *8]
TComSlice * getSlice(UInt i)
Void setDeltaPOC(Int bufferNum, Int deltaPOC)
Bool m_usedByCurrPicLtSPSFlag[MAX_NUM_LONG_TERM_REF_PICS]
Bool getIsLongTerm() const
Bool isReferenced() const
const TComRPSList * getRPSList() const
Int m_deblockingFilterTcOffsetDiv2
TComPic * m_apcRefPicList[NUM_REF_PIC_LIST_01][MAX_NUM_REF+1]
Bool isTemporalLayerSwitchingPoint(TComList< TComPic * > &rcListPic)
Bool xParseScalingList(const std::string &fileName)
TComPic * xGetRefPic(TComList< TComPic * > &rcListPic, Int poc)
static const Int MAX_NUM_REF
max. number of entries in picture reference list
virtual ~TComReferencePictureSet()
Int getScalingListDC(UInt sizeId, UInt listId) const
get DC value
Void setRPS(const TComReferencePictureSet *pcRPS)
UInt m_ltRefPicPocLsbSps[MAX_NUM_LONG_TERM_REF_PICS]
Int recon[MAX_NUM_CHANNEL_TYPE]
the bit depth as indicated in the SPS
Bool m_LFCrossSliceBoundaryFlag
Int getNumRefIdx(RefPicList e) const
Void resetWpScaling()
reset Default WP tables settings : no weight.
UInt m_sliceCurStartCtuTsAddr
Bool getRefPicListModificationFlagL1() const
Bool m_deltaPocMSBPresentFlag[MAX_NUM_REF_PICS]
Bool m_deblockingFilterDisable
Void setInterRPSPrediction(Bool flag)
TComRefPicListModification m_RefPicListModification
TComPicYuv * getPicYuvRec()
Int getRefIdc(Int bufferNum) const
get the reference idc value at uiBufferNum
Void setList1IdxToList0Idx()
Int m_POC[MAX_NUM_REF_PICS]
ParameterSetMap< TComVPS > m_vpsMap
std::vector< Int > m_scalingListCoef[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]
quantization matrix
Int getDeltaRIdxMinus1() const
WPScalingParam m_weightPredTable[NUM_REF_PIC_LIST_01][MAX_NUM_REF][MAX_NUM_COMPONENT]
Double m_lambdas[MAX_NUM_COMPONENT]
Void setPOC(Int bufferNum, Int deltaPOC)
Int m_pocLSBLT[MAX_NUM_REF_PICS]
Void setRefIdc(Int bufferNum, Int refIdc)
set the reference idc value at uiBufferNum entry to the value of iRefIdc
Int m_deltaPOC[MAX_NUM_REF_PICS]
static const Int MAX_NUM_VPS
Void checkLeadingPictureRestrictions(TComList< TComPic * > &rcListPic)
virtual ~TComRefPicListModification()
Void setNumberOfPositivePictures(Int number)
Bool m_rdpcmEnabledFlag[NUMBER_OF_RDPCM_SIGNALLING_MODES]
WPACDCParam m_weightACDCParam[MAX_NUM_COMPONENT]
UInt m_uiMaxDecPicBuffering[MAX_TLAYER]
Void setScalingListDC(UInt sizeId, UInt listId, UInt u)
set DC value
Bool getUsedByCurr() const
Int m_deblockingFilterBetaOffsetDiv2
UInt m_sliceSegmentCurStartCtuTsAddr
TComReferencePictureSet * getReferencePictureSet(Int referencePictureSetNum)
#define ADAPTIVE_QP_SELECTION
G382: Adaptive reconstruction levels, non-normative part for adaptive QP selection.
Int getAssociatedIRAPPOC() const
static const Int MAX_MATRIX_COEF_NUM
max coefficient number for quantization matrix
const TChar * MatrixType[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]
Bool getRefPicListModificationFlagL0() const
Void decodingRefreshMarking(Int &pocCRA, Bool &bRefreshPending, TComList< TComPic * > &rcListPic, const bool bEfficientFieldIRAPEnabled)
UInt m_uiMaxDecPicBuffering[MAX_TLAYER]
Bool m_bTLayerSwitchingFlag
Int getDeltaPOC(Int bufferNum) const
Void setRefPicList(TComList< TComPic * > &rcListPic, Bool checkNumPocTotalCurr=false)
Bool m_used[MAX_NUM_REF_PICS]
ChromaQpAdj m_ChromaQpAdjTableIncludingNullEntry[1+MAX_QP_OFFSET_LIST_SIZE]
Array includes entry [0] for the null offset used when cu_chroma_qp_offset_flag=0, and entries [cu_chroma_qp_offset_idx+1...] otherwise.
Int m_qpBDOffset[MAX_NUM_CHANNEL_TYPE]
Int getRefPOC(RefPicList e, Int iRefIdx) const
Void processDefaultMatrix(UInt sizeId, UInt listId)
Int getBitDepth(ChannelType type) const
Void setUsedByCurr(Bool bUsed)
Int m_iSliceChromaQpDelta[MAX_NUM_COMPONENT]
RefPicList
reference list index
Bool getColFromL0Flag() const
static Void sortPicList(TComList< TComPic * > &rcListPic)
Void getWpScaling(RefPicList e, Int iRefIdx, WPScalingParam *&wp)
get tables for weighted prediction
Void setCheckLTMSBPresent(Int bufferNum, Bool b)
Bool getCheckLTMSBPresent(Int bufferNum) const
Bool getNoOutputPriorPicsFlag() const
const UInt g_scalingListSize[SCALING_LIST_SIZE_NUM]
UInt m_numReorderPics[MAX_TLAYER]
Void setNumberOfPictures(Int numberOfPictures)
Bool m_deblockingFilterOverrideFlag
Void setRPSidx(Int rpsIdx)
Void initWpScaling(const TComSPS *sps)
init WP table
Void checkCRA(const TComReferencePictureSet *pReferencePictureSet, Int &pocCRA, NalUnitType &associatedIRAPType, TComList< TComPic * > &rcListPic)
Void initWpAcDcParam()
init AC and DC values for weighted pred
Int m_deltaPOCMSBCycleLT[MAX_NUM_REF_PICS]
static const Int MAX_TLAYER
Explicit temporal layer QP offset - max number of temporal layer.
Context-adaptive entropy encoder class (header)
Int m_list1IdxToList0Idx[MAX_NUM_REF]
ParameterSetMap< TComSPS > m_spsMap
ParameterSetMap< TComPPS > m_ppsMap
Void setIsLongTerm(Bool lt)
UInt m_uiMaxLatencyIncrease[MAX_TLAYER]
Int getNumberOfReferencePictureSets() const
Bool m_abEqualRef[NUM_REF_PIC_LIST_01][MAX_NUM_REF][MAX_NUM_REF]
std::vector< UInt > m_substreamSizes
TComReferencePictureSet()
Int getNumberOfNegativePictures() const
Int m_refIdc[MAX_NUM_REF_PICS+1]
static const Int m_winUnitX[NUM_CHROMA_FORMAT]
Void setRefMatrixId(UInt sizeId, UInt listId, UInt u)
set reference matrix ID
Void checkColRefIdx(UInt curSliceIdx, TComPic *pic)
Void createRPSList(Int numRPS)
Int getPOC(Int bufferNum) const
UInt getRefPicSetIdxL1(UInt idx) const
TComRefPicListModification()
Int getNumberOfPictures() const
Void setCheckLTMSBPresent(Bool b)
SliceType m_encCABACTableIdx
Void applyReferencePictureSet(TComList< TComPic * > &rcListPic, const TComReferencePictureSet *RPSList)
static Void outputScalingListHelp(std::ostream &os)
static const UInt MAX_UINT
max. value of unsigned 32-bit integer
Int getNumRpsCurrTempList() const
const Double * getLambdas() const
Bool getRapPicFlag() const
Void setDeltaRIdxMinus1(Int x)
Int checkThatAllRefPicsAreAvailable(TComList< TComPic * > &rcListPic, const TComReferencePictureSet *pReferencePictureSet, Bool printErrors, Int pocRandomAccess=0, Bool bUseRecoveryPoint=false)
const TChar * MatrixType_DC[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]
Void setLambdas(const Double lambdas[MAX_NUM_COMPONENT])
Bool getReconMark() const
Int getNumberOfLongtermPictures() const
Bool m_saoEnabledFlag[MAX_NUM_CHANNEL_TYPE]
Bool activatePPS(Int ppsId, Bool isIRAP)
UInt m_RefPicSetIdxL0[REF_PIC_LIST_NUM_IDX]
Void setTLayerInfo(UInt uiTLayer)
Void create(Int numberOfEntries)
Int m_numReorderPics[MAX_TLAYER]
static const Int m_winUnitY[NUM_CHROMA_FORMAT]
Int m_aiNumRefIdx[NUM_REF_PIC_LIST_01]
UInt getColRefIdx() const
Bool getInterRPSPrediction() const
Void createExplicitReferencePictureSetFromReference(TComList< TComPic * > &rcListPic, const TComReferencePictureSet *pReferencePictureSet, Bool isRAP, Int pocRandomAccess, Bool bUseRecoveryPoint, const Bool bEfficientFieldIRAPEnabled)
Void outputScalingLists(std::ostream &os) const
Reference Picture Set class.
NalUnitType getNalUnitType() const
Void calculateParameterSetChangedFlag(Bool &bChanged, const std::vector< UChar > *pOldData, const std::vector< UChar > *pNewData)
Bool m_ChromaQpAdjEnabled
UInt m_sliceCurEndCtuTsAddr
Int m_pcmBitDepths[MAX_NUM_CHANNEL_TYPE]
UInt m_sliceSegmentArgument
Void setDefaultScalingList()
static const Int SCALING_LIST_DC
default DC value
Void setReferenced(Bool b)
Bool m_subLayerProfilePresentFlag[MAX_TLAYER-1]
SliceConstraint m_sliceMode
UInt m_RefPicSetIdxL1[REF_PIC_LIST_NUM_IDX]
NalUnitType m_eNalUnitType
Nal unit type for the slice.
TComReferencePictureSet * getLocalRPS()
UInt m_sliceSegmentCurEndCtuTsAddr
UInt m_uiMaxLatencyIncreasePlus1[MAX_TLAYER]
static const Int MAX_NUM_SPS
UInt getRefPicSetIdxL0(UInt idx) const
Void setCurrSliceIdx(UInt i)
const Int g_quantIntraDefault8x8[8 *8]
const TComSPS * getSPS() const
Bool getHighPrecisionOffsetsEnabledFlag() const
struct ChromaQpAdj::@2::@3 comp