HEVC Test Model (HM)  HM-16.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
TEncGOP Class Reference

#include <TEncGOP.h>

Collaboration diagram for TEncGOP:
Collaboration graph
[legend]

Classes

class  DUData
 

Public Member Functions

Int getGOPSize ()
 
TComList< TComPic * > * getListPic ()
 
TEncSlicegetSliceEncoder ()
 
TEncAnalyzegetAnalyzeAllData ()
 
TEncAnalyzegetAnalyzeIData ()
 
TEncAnalyzegetAnalyzePData ()
 
TEncAnalyzegetAnalyzeBData ()
 

Protected Member Functions

TEncRateCtrlgetRateCtrl ()
 

Private Attributes

TEncAnalyze m_gcAnalyzeAll
 
TEncAnalyze m_gcAnalyzeI
 
TEncAnalyze m_gcAnalyzeP
 
TEncAnalyze m_gcAnalyzeB
 
TEncAnalyze m_gcAnalyzeAll_in
 
Bool m_bLongtermTestPictureHasBeenCoded
 
Bool m_bLongtermTestPictureHasBeenCoded2
 
UInt m_numLongTermRefPicSPS
 
UInt m_ltRefPicPocLsbSps [MAX_NUM_LONG_TERM_REF_PICS]
 
Bool m_ltRefPicUsedByCurrPicFlag [MAX_NUM_LONG_TERM_REF_PICS]
 
Int m_iLastIDR
 
Int m_iGopSize
 
Int m_iNumPicCoded
 
Bool m_bFirst
 
Int m_iLastRecoveryPicPOC
 
TEncTopm_pcEncTop
 
TEncCfgm_pcCfg
 
TEncSlicem_pcSliceEncoder
 
TComList< TComPic * > * m_pcListPic
 
TEncEntropym_pcEntropyCoder
 
TEncCavlcm_pcCavlcCoder
 
TEncSbacm_pcSbacCoder
 
TEncBinCABACm_pcBinCABAC
 
TComLoopFilterm_pcLoopFilter
 
SEIWriter m_seiWriter
 
TEncSampleAdaptiveOffsetm_pcSAO
 
TEncRateCtrlm_pcRateCtrl
 
Bool m_bSeqFirst
 
Bool m_bRefreshPending
 
Int m_pocCRA
 
NalUnitType m_associatedIRAPType
 
Int m_associatedIRAPPOC
 
std::vector< Intm_vRVM_RP
 
UInt m_lastBPSEI
 
UInt m_totalCoded
 
Bool m_bufferingPeriodSEIPresentInAU
 
SEIEncoder m_seiEncoder
 
TComPicYuvm_pcDeblockingTempPicYuv
 
Int m_DBParam [MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS][4]
 
 TEncGOP ()
 
virtual ~TEncGOP ()
 
Void create ()
 
Void destroy ()
 
Void init (TEncTop *pcTEncTop)
 
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)
 
Void xAttachSliceDataToNalUnit (OutputNALUnit &rNalu, TComOutputBitstream *pcBitstreamRedirect)
 
Void printOutSummary (UInt uiNumAllPicCoded, Bool isField, const Bool printMSEBasedSNR, const Bool printSequenceMSE, const Bool printMSSSIM, const BitDepths &bitDepths)
 
Void preLoopFilterPicAll (TComPic *pcPic, UInt64 &ruiDist)
 
NalUnitType getNalUnitType (Int pocCurr, Int lastIdr, Bool isField)
 
Void arrangeLongtermPicturesInRPS (TComSlice *, TComList< TComPic * > &)
 
Void xInitGOP (Int iPOCLast, Int iNumPicRcvd, Bool isField)
 
Void xGetBuffer (TComList< TComPic * > &rcListPic, TComList< TComPicYuv * > &rcListPicYuvRecOut, Int iNumPicRcvd, Int iTimeOffset, TComPic *&rpcPic, TComPicYuv *&rpcPicYuvRecOut, Int pocCurr, Bool isField)
 
Void xCalculateAddPSNRs (const Bool isField, const Bool isFieldTopFieldFirst, const Int iGOPid, TComPic *pcPic, const AccessUnit &accessUnit, TComList< TComPic * > &rcListPic, Double dEncTime, const InputColourSpaceConversion snr_conversion, const Bool printFrameMSE, const Bool printMSSSIM, Double *PSNR_Y)
 
Void xCalculateAddPSNR (TComPic *pcPic, TComPicYuv *pcPicD, const AccessUnit &, Double dEncTime, const InputColourSpaceConversion snr_conversion, const Bool printFrameMSE, const Bool printMSSSIM, Double *PSNR_Y)
 
Void xCalculateInterlacedAddPSNR (TComPic *pcPicOrgFirstField, TComPic *pcPicOrgSecondField, TComPicYuv *pcPicRecFirstField, TComPicYuv *pcPicRecSecondField, const InputColourSpaceConversion snr_conversion, const Bool printFrameMSE, const Bool printMSSSIM, Double *PSNR_Y)
 
Double xCalculateMSSSIM (const Pel *pOrg, const Int orgStride, const Pel *pRec, const Int recStride, const Int width, const Int height, const UInt bitDepth)
 
UInt64 xFindDistortionFrame (TComPicYuv *pcPic0, TComPicYuv *pcPic1, const BitDepths &bitDepths)
 
Double xCalculateRVM ()
 
Void xWriteAccessUnitDelimiter (AccessUnit &accessUnit, TComSlice *slice)
 
Void xCreateIRAPLeadingSEIMessages (SEIMessages &seiMessages, const TComSPS *sps, const TComPPS *pps)
 
Void xCreatePerPictureSEIMessages (Int picInGOP, SEIMessages &seiMessages, SEIMessages &nestedSeiMessages, TComSlice *slice)
 
Void xCreatePictureTimingSEI (Int IRAPGOPid, SEIMessages &seiMessages, SEIMessages &nestedSeiMessages, SEIMessages &duInfoSeiMessages, TComSlice *slice, Bool isField, std::deque< DUData > &duData)
 
Void xUpdateDuData (AccessUnit &testAU, std::deque< DUData > &duData)
 
Void xUpdateTimingSEI (SEIPictureTiming *pictureTimingSEI, std::deque< DUData > &duData, const TComSPS *sps)
 
Void xUpdateDuInfoSEI (SEIMessages &duInfoSeiMessages, SEIPictureTiming *pictureTimingSEI)
 
Void xCreateScalableNestingSEI (SEIMessages &seiMessages, SEIMessages &nestedSeiMessages)
 
Void xWriteSEI (NalUnitType naluType, SEIMessages &seiMessages, AccessUnit &accessUnit, AccessUnit::iterator &auPos, Int temporalId, const TComSPS *sps)
 
Void xWriteSEISeparately (NalUnitType naluType, SEIMessages &seiMessages, AccessUnit &accessUnit, AccessUnit::iterator &auPos, Int temporalId, const TComSPS *sps)
 
Void xClearSEIs (SEIMessages &seiMessages, Bool deleteMessages)
 
Void xWriteLeadingSEIOrdered (SEIMessages &seiMessages, SEIMessages &duInfoSeiMessages, AccessUnit &accessUnit, Int temporalId, const TComSPS *sps, Bool testWrite)
 
Void xWriteLeadingSEIMessages (SEIMessages &seiMessages, SEIMessages &duInfoSeiMessages, AccessUnit &accessUnit, Int temporalId, const TComSPS *sps, std::deque< DUData > &duData)
 
Void xWriteTrailingSEIMessages (SEIMessages &seiMessages, AccessUnit &accessUnit, Int temporalId, const TComSPS *sps)
 
Void xWriteDuSEIMessages (SEIMessages &duInfoSeiMessages, AccessUnit &accessUnit, Int temporalId, const TComSPS *sps, std::deque< DUData > &duData)
 
Int xWriteVPS (AccessUnit &accessUnit, const TComVPS *vps)
 
Int xWriteSPS (AccessUnit &accessUnit, const TComSPS *sps)
 
Int xWritePPS (AccessUnit &accessUnit, const TComPPS *pps)
 
Int xWriteParameterSets (AccessUnit &accessUnit, TComSlice *slice, const Bool bSeqFirst)
 
Void applyDeblockingFilterMetric (TComPic *pcPic, UInt uiNumSlices)
 
Void applyDeblockingFilterParameterSelection (TComPic *pcPic, const UInt numSlices, const Int gopID)
 

Detailed Description

Definition at line 74 of file TEncGOP.h.

Constructor & Destructor Documentation

TEncGOP::TEncGOP ( )

Definition at line 73 of file TEncGOP.cpp.

TEncGOP::~TEncGOP ( )
virtual

Definition at line 104 of file TEncGOP.cpp.

Member Function Documentation

Void TEncGOP::applyDeblockingFilterMetric ( TComPic pcPic,
UInt  uiNumSlices 
)
protected

Definition at line 2987 of file TEncGOP.cpp.

Void TEncGOP::applyDeblockingFilterParameterSelection ( TComPic pcPic,
const UInt  numSlices,
const Int  gopID 
)
protected

Definition at line 3106 of file TEncGOP.cpp.

Void TEncGOP::arrangeLongtermPicturesInRPS ( TComSlice pcSlice,
TComList< TComPic * > &  rcListPic 
)

Definition at line 2882 of file TEncGOP.cpp.

Void TEncGOP::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 
)

Definition at line 1155 of file TEncGOP.cpp.

Void TEncGOP::create ( )

Create list to contain pointers to CTU start addresses of slice.

Definition at line 110 of file TEncGOP.cpp.

Void TEncGOP::destroy ( )

Definition at line 116 of file TEncGOP.cpp.

TEncAnalyze& TEncGOP::getAnalyzeAllData ( )
inline

Definition at line 181 of file TEncGOP.h.

TEncAnalyze& TEncGOP::getAnalyzeBData ( )
inline

Definition at line 184 of file TEncGOP.h.

TEncAnalyze& TEncGOP::getAnalyzeIData ( )
inline

Definition at line 182 of file TEncGOP.h.

TEncAnalyze& TEncGOP::getAnalyzePData ( )
inline

Definition at line 183 of file TEncGOP.h.

Int TEncGOP::getGOPSize ( )
inline

Definition at line 166 of file TEncGOP.h.

TComList<TComPic*>* TEncGOP::getListPic ( )
inline

Definition at line 168 of file TEncGOP.h.

NalUnitType TEncGOP::getNalUnitType ( Int  pocCurr,
Int  lastIDR,
Bool  isField 
)

Function for deciding the nal_unit_type.

Parameters
pocCurrPOC of the current picture
lastIDRPOC of the last IDR picture
isFieldtrue to indicate field coding
Returns
the NAL unit type of the picture This function checks the configuration and returns the appropriate nal_unit_type for the picture.

Definition at line 2766 of file TEncGOP.cpp.

TEncRateCtrl* TEncGOP::getRateCtrl ( )
inlineprotected

Definition at line 187 of file TEncGOP.h.

TEncSlice* TEncGOP::getSliceEncoder ( )
inline

Definition at line 177 of file TEncGOP.h.

Void TEncGOP::init ( TEncTop pcTEncTop)

Definition at line 126 of file TEncGOP.cpp.

Void TEncGOP::preLoopFilterPicAll ( TComPic pcPic,
UInt64 ruiDist 
)

Definition at line 2049 of file TEncGOP.cpp.

Void TEncGOP::printOutSummary ( UInt  uiNumAllPicCoded,
Bool  isField,
const Bool  printMSEBasedSNR,
const Bool  printSequenceMSE,
const Bool  printMSSSIM,
const BitDepths bitDepths 
)

Definition at line 1970 of file TEncGOP.cpp.

Void TEncGOP::xAttachSliceDataToNalUnit ( OutputNALUnit rNalu,
TComOutputBitstream codedSliceData 
)

Attaches the input bitstream to the stream in the output NAL unit Updates rNalu to contain concatenated bitstream. rpcBitstreamRedirect is cleared at the end of this function call.

Parameters
codedSliceDatacontains the coded slice data (bitstream) to be concatenated to rNalu
rNalutarget NAL unit

Definition at line 2864 of file TEncGOP.cpp.

Void TEncGOP::xCalculateAddPSNR ( TComPic pcPic,
TComPicYuv pcPicD,
const AccessUnit accessUnit,
Double  dEncTime,
const InputColourSpaceConversion  snr_conversion,
const Bool  printFrameMSE,
const Bool  printMSSSIM,
Double PSNR_Y 
)
protected

Definition at line 2239 of file TEncGOP.cpp.

Void TEncGOP::xCalculateAddPSNRs ( const Bool  isField,
const Bool  isFieldTopFieldFirst,
const Int  iGOPid,
TComPic pcPic,
const AccessUnit accessUnit,
TComList< TComPic * > &  rcListPic,
Double  dEncTime,
const InputColourSpaceConversion  snr_conversion,
const Bool  printFrameMSE,
const Bool  printMSSSIM,
Double PSNR_Y 
)
protected

Definition at line 2158 of file TEncGOP.cpp.

Void TEncGOP::xCalculateInterlacedAddPSNR ( TComPic pcPicOrgFirstField,
TComPic pcPicOrgSecondField,
TComPicYuv pcPicRecFirstField,
TComPicYuv pcPicRecSecondField,
const InputColourSpaceConversion  snr_conversion,
const Bool  printFrameMSE,
const Bool  printMSSSIM,
Double PSNR_Y 
)
protected

Definition at line 2621 of file TEncGOP.cpp.

Double TEncGOP::xCalculateMSSSIM ( const Pel pOrg,
const Int  orgStride,
const Pel pRec,
const Int  recStride,
const Int  width,
const Int  height,
const UInt  bitDepth 
)
protected

Definition at line 2449 of file TEncGOP.cpp.

Double TEncGOP::xCalculateRVM ( )
protected

Definition at line 2812 of file TEncGOP.cpp.

Void TEncGOP::xClearSEIs ( SEIMessages seiMessages,
Bool  deleteMessages 
)
protected

Definition at line 240 of file TEncGOP.cpp.

Void TEncGOP::xCreateIRAPLeadingSEIMessages ( SEIMessages seiMessages,
const TComSPS sps,
const TComPPS pps 
)
protected

Definition at line 392 of file TEncGOP.cpp.

Void TEncGOP::xCreatePerPictureSEIMessages ( Int  picInGOP,
SEIMessages seiMessages,
SEIMessages nestedSeiMessages,
TComSlice slice 
)
protected

Definition at line 521 of file TEncGOP.cpp.

Void TEncGOP::xCreatePictureTimingSEI ( Int  IRAPGOPid,
SEIMessages seiMessages,
SEIMessages nestedSeiMessages,
SEIMessages duInfoSeiMessages,
TComSlice slice,
Bool  isField,
std::deque< DUData > &  duData 
)
protected

Definition at line 625 of file TEncGOP.cpp.

Void TEncGOP::xCreateScalableNestingSEI ( SEIMessages seiMessages,
SEIMessages nestedSeiMessages 
)
protected

Definition at line 610 of file TEncGOP.cpp.

UInt64 TEncGOP::xFindDistortionFrame ( TComPicYuv pcPic0,
TComPicYuv pcPic1,
const BitDepths bitDepths 
)
protected

Definition at line 2128 of file TEncGOP.cpp.

Void TEncGOP::xGetBuffer ( TComList< TComPic * > &  rcListPic,
TComList< TComPicYuv * > &  rcListPicYuvRecOut,
Int  iNumPicRcvd,
Int  iTimeOffset,
TComPic *&  rpcPic,
TComPicYuv *&  rpcPicYuvRecOut,
Int  pocCurr,
Bool  isField 
)
protected

Definition at line 2084 of file TEncGOP.cpp.

Void TEncGOP::xInitGOP ( Int  iPOCLast,
Int  iNumPicRcvd,
Bool  isField 
)
protected

Definition at line 2066 of file TEncGOP.cpp.

Void TEncGOP::xUpdateDuData ( AccessUnit testAU,
std::deque< DUData > &  duData 
)
protected

Definition at line 763 of file TEncGOP.cpp.

Void TEncGOP::xUpdateDuInfoSEI ( SEIMessages duInfoSeiMessages,
SEIPictureTiming pictureTimingSEI 
)
protected

Definition at line 872 of file TEncGOP.cpp.

Void TEncGOP::xUpdateTimingSEI ( SEIPictureTiming pictureTimingSEI,
std::deque< DUData > &  duData,
const TComSPS sps 
)
protected

Definition at line 800 of file TEncGOP.cpp.

Void TEncGOP::xWriteAccessUnitDelimiter ( AccessUnit accessUnit,
TComSlice slice 
)
protected

Definition at line 197 of file TEncGOP.cpp.

Void TEncGOP::xWriteDuSEIMessages ( SEIMessages duInfoSeiMessages,
AccessUnit accessUnit,
Int  temporalId,
const TComSPS sps,
std::deque< DUData > &  duData 
)
protected

Definition at line 348 of file TEncGOP.cpp.

Void TEncGOP::xWriteLeadingSEIMessages ( SEIMessages seiMessages,
SEIMessages duInfoSeiMessages,
AccessUnit accessUnit,
Int  temporalId,
const TComSPS sps,
std::deque< DUData > &  duData 
)
protected

Definition at line 321 of file TEncGOP.cpp.

Void TEncGOP::xWriteLeadingSEIOrdered ( SEIMessages seiMessages,
SEIMessages duInfoSeiMessages,
AccessUnit accessUnit,
Int  temporalId,
const TComSPS sps,
Bool  testWrite 
)
protected

Definition at line 253 of file TEncGOP.cpp.

Int TEncGOP::xWriteParameterSets ( AccessUnit accessUnit,
TComSlice slice,
const Bool  bSeqFirst 
)
protected

Definition at line 176 of file TEncGOP.cpp.

Int TEncGOP::xWritePPS ( AccessUnit accessUnit,
const TComPPS pps 
)
protected

Definition at line 166 of file TEncGOP.cpp.

Void TEncGOP::xWriteSEI ( NalUnitType  naluType,
SEIMessages seiMessages,
AccessUnit accessUnit,
AccessUnit::iterator &  auPos,
Int  temporalId,
const TComSPS sps 
)
protected

Definition at line 209 of file TEncGOP.cpp.

Void TEncGOP::xWriteSEISeparately ( NalUnitType  naluType,
SEIMessages seiMessages,
AccessUnit accessUnit,
AccessUnit::iterator &  auPos,
Int  temporalId,
const TComSPS sps 
)
protected

Definition at line 222 of file TEncGOP.cpp.

Int TEncGOP::xWriteSPS ( AccessUnit accessUnit,
const TComSPS sps 
)
protected

Definition at line 156 of file TEncGOP.cpp.

Void TEncGOP::xWriteTrailingSEIMessages ( SEIMessages seiMessages,
AccessUnit accessUnit,
Int  temporalId,
const TComSPS sps 
)
protected

Definition at line 340 of file TEncGOP.cpp.

Int TEncGOP::xWriteVPS ( AccessUnit accessUnit,
const TComVPS vps 
)
protected

Definition at line 147 of file TEncGOP.cpp.

Member Data Documentation

Int TEncGOP::m_associatedIRAPPOC
private

Definition at line 139 of file TEncGOP.h.

NalUnitType TEncGOP::m_associatedIRAPType
private

Definition at line 138 of file TEncGOP.h.

Bool TEncGOP::m_bFirst
private

Definition at line 112 of file TEncGOP.h.

Bool TEncGOP::m_bLongtermTestPictureHasBeenCoded
private

Definition at line 104 of file TEncGOP.h.

Bool TEncGOP::m_bLongtermTestPictureHasBeenCoded2
private

Definition at line 105 of file TEncGOP.h.

Bool TEncGOP::m_bRefreshPending
private

Definition at line 136 of file TEncGOP.h.

Bool TEncGOP::m_bSeqFirst
private

Definition at line 133 of file TEncGOP.h.

Bool TEncGOP::m_bufferingPeriodSEIPresentInAU
private

Definition at line 144 of file TEncGOP.h.

Int TEncGOP::m_DBParam[MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS][4]
private

Definition at line 147 of file TEncGOP.h.

TEncAnalyze TEncGOP::m_gcAnalyzeAll
private

Definition at line 89 of file TEncGOP.h.

TEncAnalyze TEncGOP::m_gcAnalyzeAll_in
private

Definition at line 94 of file TEncGOP.h.

TEncAnalyze TEncGOP::m_gcAnalyzeB
private

Definition at line 92 of file TEncGOP.h.

TEncAnalyze TEncGOP::m_gcAnalyzeI
private

Definition at line 90 of file TEncGOP.h.

TEncAnalyze TEncGOP::m_gcAnalyzeP
private

Definition at line 91 of file TEncGOP.h.

Int TEncGOP::m_iGopSize
private

Definition at line 110 of file TEncGOP.h.

Int TEncGOP::m_iLastIDR
private

Definition at line 109 of file TEncGOP.h.

Int TEncGOP::m_iLastRecoveryPicPOC
private

Definition at line 113 of file TEncGOP.h.

Int TEncGOP::m_iNumPicCoded
private

Definition at line 111 of file TEncGOP.h.

UInt TEncGOP::m_lastBPSEI
private

Definition at line 142 of file TEncGOP.h.

UInt TEncGOP::m_ltRefPicPocLsbSps[MAX_NUM_LONG_TERM_REF_PICS]
private

Definition at line 107 of file TEncGOP.h.

Bool TEncGOP::m_ltRefPicUsedByCurrPicFlag[MAX_NUM_LONG_TERM_REF_PICS]
private

Definition at line 108 of file TEncGOP.h.

UInt TEncGOP::m_numLongTermRefPicSPS
private

Definition at line 106 of file TEncGOP.h.

TEncBinCABAC* TEncGOP::m_pcBinCABAC
private

Definition at line 124 of file TEncGOP.h.

TEncCavlc* TEncGOP::m_pcCavlcCoder
private

Definition at line 122 of file TEncGOP.h.

TEncCfg* TEncGOP::m_pcCfg
private

Definition at line 117 of file TEncGOP.h.

TComPicYuv* TEncGOP::m_pcDeblockingTempPicYuv
private

Definition at line 146 of file TEncGOP.h.

TEncTop* TEncGOP::m_pcEncTop
private

Definition at line 116 of file TEncGOP.h.

TEncEntropy* TEncGOP::m_pcEntropyCoder
private

Definition at line 121 of file TEncGOP.h.

TComList<TComPic*>* TEncGOP::m_pcListPic
private

Definition at line 119 of file TEncGOP.h.

TComLoopFilter* TEncGOP::m_pcLoopFilter
private

Definition at line 125 of file TEncGOP.h.

TEncRateCtrl* TEncGOP::m_pcRateCtrl
private

Definition at line 131 of file TEncGOP.h.

TEncSampleAdaptiveOffset* TEncGOP::m_pcSAO
private

Definition at line 130 of file TEncGOP.h.

TEncSbac* TEncGOP::m_pcSbacCoder
private

Definition at line 123 of file TEncGOP.h.

TEncSlice* TEncGOP::m_pcSliceEncoder
private

Definition at line 118 of file TEncGOP.h.

Int TEncGOP::m_pocCRA
private

Definition at line 137 of file TEncGOP.h.

SEIEncoder TEncGOP::m_seiEncoder
private

Definition at line 145 of file TEncGOP.h.

SEIWriter TEncGOP::m_seiWriter
private

Definition at line 127 of file TEncGOP.h.

UInt TEncGOP::m_totalCoded
private

Definition at line 143 of file TEncGOP.h.

std::vector<Int> TEncGOP::m_vRVM_RP
private

Definition at line 141 of file TEncGOP.h.


The documentation for this class was generated from the following files: