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

slice encoder class More...

#include <TEncSlice.h>

Inheritance diagram for TEncSlice:
Inheritance graph
[legend]
Collaboration diagram for TEncSlice:
Collaboration graph
[legend]

Public Member Functions

Void setGopID (Int iGopID)
 
Int getGopID () const
 
TEncCu * getCUEncoder ()
 CU encoder. More...
 
UInt getSliceIdx ()
 
Void setSliceIdx (UInt i)
 
SliceType getEncCABACTableIdx () const
 
- Public Member Functions inherited from WeightPredAnalysis
 WeightPredAnalysis ()
 
Void xCalcACDCParamSlice (TComSlice *const slice)
 calculate AC and DC values for current original image More...
 
Void xEstimateWPParamSlice (TComSlice *const slice, const WeightedPredictionMethod method)
 estimate wp tables for explicit wp More...
 
Void xCheckWPEnable (TComSlice *const slice)
 check weighted pred or non-weighted pred More...
 

Private Attributes

TEncCfg * m_pcCfg
 encoder configuration class More...
 
TComList< TComPic * > * m_pcListPic
 list of pictures More...
 
TComPicYuv m_picYuvPred
 prediction picture buffer More...
 
TComPicYuv m_picYuvResi
 residual picture buffer More...
 
TEncGOP * m_pcGOPEncoder
 GOP encoder. More...
 
TEncCu * m_pcCuEncoder
 CU encoder. More...
 
TEncSearch * m_pcPredSearch
 encoder search class More...
 
TEncEntropy * m_pcEntropyCoder
 entropy encoder More...
 
TEncSbac * m_pcSbacCoder
 SBAC encoder. More...
 
TEncBinCABAC * m_pcBinCABAC
 Bin encoder CABAC. More...
 
TComTrQuant * m_pcTrQuant
 transform & quantization More...
 
TComRdCost * m_pcRdCost
 RD cost computation. More...
 
TEncSbac *** m_pppcRDSbacCoder
 storage for SBAC-based RD optimization More...
 
TEncSbac * m_pcRDGoOnSbacCoder
 go-on SBAC encoder More...
 
UInt64 m_uiPicTotalBits
 total bits for the picture More...
 
UInt64 m_uiPicDist
 total distortion for the picture More...
 
Double m_dPicRdCost
 picture-level RD cost More...
 
std::vector< Double > m_vdRdPicLambda
 array of lambda candidates More...
 
std::vector< Double > m_vdRdPicQp
 array of picture QP candidates (double-type for lambda) More...
 
std::vector< Int > m_viRdPicQp
 array of picture QP candidates (Int-type) More...
 
TEncRateCtrl * m_pcRateCtrl
 Rate control manager. More...
 
UInt m_uiSliceIdx
 
TEncSbac m_lastSliceSegmentEndContextState
 context storage for state at the end of the previous slice-segment (used for dependent slices only). More...
 
TEncSbac m_entropyCodingSyncContextState
 context storate for state of contexts at the wavefront/WPP/entropy-coding-sync second CTU of tile-row More...
 
SliceType m_encCABACTableIdx
 
Int m_gopID
 
Double calculateLambda (const TComSlice *pSlice, const Int GOPid, const Int depth, const Double refQP, const Double dQP, Int &iQP)
 
Void setUpLambda (TComSlice *slice, const Double dLambda, Int iQP)
 
Void calculateBoundingCtuTsAddrForSlice (UInt &startCtuTSAddrSlice, UInt &boundingCtuTSAddrSlice, Bool &haveReachedTileBoundary, TComPic *pcPic, const Int sliceMode, const Int sliceArgument)
 
Double xGetQPValueAccordingToLambda (Double lambda)
 
 TEncSlice ()
 
virtual ~TEncSlice ()
 
Void create (Int iWidth, Int iHeight, ChromaFormat chromaFormat, UInt iMaxCUWidth, UInt iMaxCUHeight, UChar uhTotalDepth)
 
Void destroy ()
 
Void init (TEncTop *pcEncTop)
 
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) More...
 
Void resetQP (TComPic *pic, Int sliceQP, Double lambda)
 
Void updateLambda (TComSlice *pSlice, Double dQP)
 
Void precompressSlice (TComPic *pcPic)
 precompress slice for multi-loop slice-level QP opt. More...
 
Void compressSlice (TComPic *pcPic, const Bool bCompressEntireSlice, const Bool bFastDeltaQP)
 analysis stage of slice More...
 
Void calCostSliceI (TComPic *pcPic)
 
Void encodeSlice (TComPic *pcPic, TComOutputBitstream *pcSubstreams, UInt &numBinsCoded)
 
Void setSearchRange (TComSlice *pcSlice)
 set ME range adaptively More...
 
Void xDetermineStartAndBoundingCtuTsAddr (UInt &startCtuTsAddr, UInt &boundingCtuTsAddr, TComPic *pcPic)
 

Detailed Description

slice encoder class

Definition at line 61 of file TEncSlice.h.

Constructor & Destructor Documentation

TEncSlice::~TEncSlice ( )
virtual

Definition at line 54 of file TEncSlice.cpp.

Member Function Documentation

Void TEncSlice::calCostSliceI ( TComPic *  pcPic)

Definition at line 663 of file TEncSlice.cpp.

Void TEncSlice::calculateBoundingCtuTsAddrForSlice ( UInt &  startCtuTSAddrSlice,
UInt &  boundingCtuTSAddrSlice,
Bool &  haveReachedTileBoundary,
TComPic *  pcPic,
const Int  sliceMode,
const Int  sliceArgument 
)
private

Definition at line 1173 of file TEncSlice.cpp.

Double TEncSlice::calculateLambda ( const TComSlice *  pSlice,
const Int  GOPid,
const Int  depth,
const Double  refQP,
const Double  dQP,
Int &  iQP 
)
private

Definition at line 433 of file TEncSlice.cpp.

Void TEncSlice::compressSlice ( TComPic *  pcPic,
const Bool  bCompressEntireSlice,
const Bool  bFastDeltaQP 
)

analysis stage of slice

Parameters
pcPicpicture class

Definition at line 698 of file TEncSlice.cpp.

Void TEncSlice::create ( Int  iWidth,
Int  iHeight,
ChromaFormat  chromaFormat,
UInt  iMaxCUWidth,
UInt  iMaxCUHeight,
UChar  uhTotalDepth 
)

Definition at line 59 of file TEncSlice.cpp.

Void TEncSlice::destroy ( )

Definition at line 68 of file TEncSlice.cpp.

Void TEncSlice::encodeSlice ( TComPic *  pcPic,
TComOutputBitstream *  pcSubstreams,
UInt &  numBinsCoded 
)

Definition at line 985 of file TEncSlice.cpp.

TEncCu* TEncSlice::getCUEncoder ( )
inline

CU encoder.

Definition at line 132 of file TEncSlice.h.

SliceType TEncSlice::getEncCABACTableIdx ( ) const
inline

Definition at line 137 of file TEncSlice.h.

Int TEncSlice::getGopID ( ) const
inline

Definition at line 120 of file TEncSlice.h.

UInt TEncSlice::getSliceIdx ( )
inline

Definition at line 134 of file TEncSlice.h.

Void TEncSlice::init ( TEncTop *  pcEncTop)

Definition at line 79 of file TEncSlice.cpp.

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

  • non-referenced frame marking
  • QP computation based on temporal structure
  • lambda computation based on QP
  • set temporal layer ID and the parameter sets
Parameters
pcPicpicture class
pocLastPOC of last picture
pocCurrcurrent POC
iNumPicRcvdnumber of received pictures
iGOPidPOC offset for hierarchical structure
rpcSliceslice header class
isFieldtrue for field coding

Definition at line 159 of file TEncSlice.cpp.

Void TEncSlice::precompressSlice ( TComPic *  pcPic)

precompress slice for multi-loop slice-level QP opt.

Multi-loop slice encoding for different slice QP

Parameters
pcPicpicture class

Definition at line 572 of file TEncSlice.cpp.

Void TEncSlice::resetQP ( TComPic *  pic,
Int  sliceQP,
Double  lambda 
)

Definition at line 529 of file TEncSlice.cpp.

Void TEncSlice::setGopID ( Int  iGopID)
inline

Definition at line 119 of file TEncSlice.h.

Void TEncSlice::setSearchRange ( TComSlice *  pcSlice)

set ME range adaptively

set adaptive search range based on poc difference

Definition at line 546 of file TEncSlice.cpp.

Void TEncSlice::setSliceIdx ( UInt  i)
inline

Definition at line 135 of file TEncSlice.h.

Void TEncSlice::setUpLambda ( TComSlice *  slice,
const Double  dLambda,
Int  iQP 
)
private

Definition at line 113 of file TEncSlice.cpp.

Void TEncSlice::updateLambda ( TComSlice *  pSlice,
Double  dQP 
)

Definition at line 104 of file TEncSlice.cpp.

Void TEncSlice::xDetermineStartAndBoundingCtuTsAddr ( UInt &  startCtuTsAddr,
UInt &  boundingCtuTsAddr,
TComPic *  pcPic 
)

Determines the starting and bounding CTU address of current slice / dependent slice

Parameters
[out]startCtuTsAddr
[out]boundingCtuTsAddr
[in]pcPicUpdates startCtuTsAddr, boundingCtuTsAddr with appropriate CTU address

Definition at line 1266 of file TEncSlice.cpp.

Double TEncSlice::xGetQPValueAccordingToLambda ( Double  lambda)
private

Definition at line 1297 of file TEncSlice.cpp.

Member Data Documentation

Double TEncSlice::m_dPicRdCost
private

picture-level RD cost

Definition at line 92 of file TEncSlice.h.

SliceType TEncSlice::m_encCABACTableIdx
private

Definition at line 100 of file TEncSlice.h.

TEncSbac TEncSlice::m_entropyCodingSyncContextState
private

context storate for state of contexts at the wavefront/WPP/entropy-coding-sync second CTU of tile-row

Definition at line 99 of file TEncSlice.h.

Int TEncSlice::m_gopID
private

Definition at line 101 of file TEncSlice.h.

TEncSbac TEncSlice::m_lastSliceSegmentEndContextState
private

context storage for state at the end of the previous slice-segment (used for dependent slices only).

Definition at line 98 of file TEncSlice.h.

TEncBinCABAC* TEncSlice::m_pcBinCABAC
private

Bin encoder CABAC.

Definition at line 83 of file TEncSlice.h.

TEncCfg* TEncSlice::m_pcCfg
private

encoder configuration class

Definition at line 66 of file TEncSlice.h.

TEncCu* TEncSlice::m_pcCuEncoder
private

CU encoder.

Definition at line 75 of file TEncSlice.h.

TEncEntropy* TEncSlice::m_pcEntropyCoder
private

entropy encoder

Definition at line 81 of file TEncSlice.h.

TEncGOP* TEncSlice::m_pcGOPEncoder
private

GOP encoder.

Definition at line 74 of file TEncSlice.h.

TComList<TComPic*>* TEncSlice::m_pcListPic
private

list of pictures

Definition at line 69 of file TEncSlice.h.

TEncSearch* TEncSlice::m_pcPredSearch
private

encoder search class

Definition at line 78 of file TEncSlice.h.

TEncRateCtrl* TEncSlice::m_pcRateCtrl
private

Rate control manager.

Definition at line 96 of file TEncSlice.h.

TComRdCost* TEncSlice::m_pcRdCost
private

RD cost computation.

Definition at line 87 of file TEncSlice.h.

TEncSbac* TEncSlice::m_pcRDGoOnSbacCoder
private

go-on SBAC encoder

Definition at line 89 of file TEncSlice.h.

TEncSbac* TEncSlice::m_pcSbacCoder
private

SBAC encoder.

Definition at line 82 of file TEncSlice.h.

TComTrQuant* TEncSlice::m_pcTrQuant
private

transform & quantization

Definition at line 84 of file TEncSlice.h.

TComPicYuv TEncSlice::m_picYuvPred
private

prediction picture buffer

Definition at line 70 of file TEncSlice.h.

TComPicYuv TEncSlice::m_picYuvResi
private

residual picture buffer

Definition at line 71 of file TEncSlice.h.

TEncSbac*** TEncSlice::m_pppcRDSbacCoder
private

storage for SBAC-based RD optimization

Definition at line 88 of file TEncSlice.h.

UInt64 TEncSlice::m_uiPicDist
private

total distortion for the picture

Definition at line 91 of file TEncSlice.h.

UInt64 TEncSlice::m_uiPicTotalBits
private

total bits for the picture

Definition at line 90 of file TEncSlice.h.

UInt TEncSlice::m_uiSliceIdx
private

Definition at line 97 of file TEncSlice.h.

std::vector<Double> TEncSlice::m_vdRdPicLambda
private

array of lambda candidates

Definition at line 93 of file TEncSlice.h.

std::vector<Double> TEncSlice::m_vdRdPicQp
private

array of picture QP candidates (double-type for lambda)

Definition at line 94 of file TEncSlice.h.

std::vector<Int> TEncSlice::m_viRdPicQp
private

array of picture QP candidates (Int-type)

Definition at line 95 of file TEncSlice.h.


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