HEVC Test Model (HM)  HM-16.3
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
Collaboration diagram for TEncSlice:
Collaboration graph

Public Member Functions

TEncCugetCUEncoder ()
 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)
 estimate wp tables for explicit wp More...
Void xCheckWPEnable (TComSlice *const slice)
 check weighted pred or non-weighted pred More...

Private Attributes

 encoder configuration class More...
TComList< TComPic * > * m_pcListPic
 list of pictures More...
 prediction picture buffer More...
 residual picture buffer More...
 GOP encoder. More...
 CU encoder. More...
 encoder search class More...
 entropy encoder More...
 SBAC encoder. More...
 Bin encoder CABAC. More...
 transform & quantization More...
 RD cost computation. More...
TEncSbac *** m_pppcRDSbacCoder
 storage for SBAC-based RD optimization More...
 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...
 array of lambda candidates More...
 array of picture QP candidates (double-type for lambda) More...
 array of picture QP candidates (Int-type) More...
 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
Void setUpLambda (TComSlice *slice, const Double dLambda, Int iQP)
Void calculateBoundingCtuTsAddrForSlice (UInt &startCtuTSAddrSlice, UInt &boundingCtuTSAddrSlice, Bool &haveReachedTileBoundary, TComPic *pcPic, const Bool encodingSlice, const Int sliceMode, const Int sliceArgument, const UInt uiSliceCurEndCtuTSAddr)
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, Int pocLast, Int pocCurr, Int iNumPicRcvd, Int iGOPid, TComSlice *&rpcSlice, const TComSPS *pSPS, const TComPPS *pPPS, Bool isField)
 preparation of slice encoding (reference marking, QP and lambda) More...
Void resetQP (TComPic *pic, Int sliceQP, Double lambda)
Void precompressSlice (TComPic *pcPic)
 precompress slice for multi-loop opt. More...
Void compressSlice (TComPic *pcPic)
 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, const Bool encodingSlice)

Detailed Description

slice encoder class

Definition at line 61 of file TEncSlice.h.

Constructor & Destructor Documentation

TEncSlice::~TEncSlice ( )

Definition at line 60 of file TEncSlice.cpp.

Member Function Documentation

Void TEncSlice::calCostSliceI ( TComPic pcPic)

Definition at line 610 of file TEncSlice.cpp.

Void TEncSlice::calculateBoundingCtuTsAddrForSlice ( UInt startCtuTSAddrSlice,
UInt boundingCtuTSAddrSlice,
Bool haveReachedTileBoundary,
TComPic pcPic,
const Bool  encodingSlice,
const Int  sliceMode,
const Int  sliceArgument,
const UInt  uiSliceCurEndCtuTSAddr 

Definition at line 1109 of file TEncSlice.cpp.

Void TEncSlice::compressSlice ( TComPic pcPic)

analysis stage of slice

pcPicpicture class

Definition at line 644 of file TEncSlice.cpp.

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

Definition at line 64 of file TEncSlice.cpp.

Void TEncSlice::destroy ( )

Definition at line 81 of file TEncSlice.cpp.

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

Definition at line 921 of file TEncSlice.cpp.

TEncCu* TEncSlice::getCUEncoder ( )

CU encoder.

Definition at line 126 of file TEncSlice.h.

SliceType TEncSlice::getEncCABACTableIdx ( ) const

Definition at line 131 of file TEncSlice.h.

UInt TEncSlice::getSliceIdx ( )

Definition at line 128 of file TEncSlice.h.

Void TEncSlice::init ( TEncTop pcEncTop)

Definition at line 117 of file TEncSlice.cpp.

Void TEncSlice::initEncSlice ( TComPic pcPic,
Int  pocLast,
Int  pocCurr,
Int  iNumPicRcvd,
Int  iGOPid,
TComSlice *&  rpcSlice,
const TComSPS pSPS,
const TComPPS pPPS,
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
pcPicpicture class
pocLastPOC of last picture
pocCurrcurrent POC
iNumPicRcvdnumber of received pictures
iGOPidPOC offset for hierarchical structure
rpcSliceslice header class
pSPSSPS associated with the slice
pPPSPPS associated with the slice
isFieldtrue for field coding

Definition at line 193 of file TEncSlice.cpp.

Void TEncSlice::precompressSlice ( TComPic pcPic)

precompress slice for multi-loop opt.

Multi-loop slice encoding for different slice QP

pcPicpicture class

Definition at line 530 of file TEncSlice.cpp.

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

Definition at line 487 of file TEncSlice.cpp.

Void TEncSlice::setSearchRange ( TComSlice pcSlice)

set ME range adaptively

Definition at line 503 of file TEncSlice.cpp.

Void TEncSlice::setSliceIdx ( UInt  i)

Definition at line 129 of file TEncSlice.h.

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

Definition at line 145 of file TEncSlice.cpp.

Void TEncSlice::xDetermineStartAndBoundingCtuTsAddr ( UInt startCtuTsAddr,
UInt boundingCtuTsAddr,
TComPic pcPic,
const Bool  encodingSlice 

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

encodingSliceIdentifies, if the calling function is compressSlice() [false] or encodeSlice() [true]

Updates startCtuTsAddr, boundingCtuTsAddr with appropriate CTU address

Definition at line 1201 of file TEncSlice.cpp.

Double TEncSlice::xGetQPValueAccordingToLambda ( Double  lambda)

Definition at line 1232 of file TEncSlice.cpp.

Member Data Documentation

TComPicYuv* TEncSlice::m_apcPicYuvPred

prediction picture buffer

Definition at line 70 of file TEncSlice.h.

TComPicYuv* TEncSlice::m_apcPicYuvResi

residual picture buffer

Definition at line 71 of file TEncSlice.h.

Double TEncSlice::m_dPicRdCost

picture-level RD cost

Definition at line 92 of file TEncSlice.h.

SliceType TEncSlice::m_encCABACTableIdx

Definition at line 100 of file TEncSlice.h.

TEncSbac TEncSlice::m_entropyCodingSyncContextState

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.

TEncSbac TEncSlice::m_lastSliceSegmentEndContextState

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

Bin encoder CABAC.

Definition at line 83 of file TEncSlice.h.

TEncCfg* TEncSlice::m_pcCfg

encoder configuration class

Definition at line 66 of file TEncSlice.h.

TEncCu* TEncSlice::m_pcCuEncoder

CU encoder.

Definition at line 75 of file TEncSlice.h.

TEncEntropy* TEncSlice::m_pcEntropyCoder

entropy encoder

Definition at line 81 of file TEncSlice.h.

TEncGOP* TEncSlice::m_pcGOPEncoder

GOP encoder.

Definition at line 74 of file TEncSlice.h.

TComList<TComPic*>* TEncSlice::m_pcListPic

list of pictures

Definition at line 69 of file TEncSlice.h.

TEncSearch* TEncSlice::m_pcPredSearch

encoder search class

Definition at line 78 of file TEncSlice.h.

TEncRateCtrl* TEncSlice::m_pcRateCtrl

Rate control manager.

Definition at line 96 of file TEncSlice.h.

TComRdCost* TEncSlice::m_pcRdCost

RD cost computation.

Definition at line 87 of file TEncSlice.h.

TEncSbac* TEncSlice::m_pcRDGoOnSbacCoder

go-on SBAC encoder

Definition at line 89 of file TEncSlice.h.

TEncSbac* TEncSlice::m_pcSbacCoder

SBAC encoder.

Definition at line 82 of file TEncSlice.h.

TComTrQuant* TEncSlice::m_pcTrQuant

transform & quantization

Definition at line 84 of file TEncSlice.h.

Double* TEncSlice::m_pdRdPicLambda

array of lambda candidates

Definition at line 93 of file TEncSlice.h.

Double* TEncSlice::m_pdRdPicQp

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

Definition at line 94 of file TEncSlice.h.

Int* TEncSlice::m_piRdPicQp

array of picture QP candidates (Int-type)

Definition at line 95 of file TEncSlice.h.

TEncSbac*** TEncSlice::m_pppcRDSbacCoder

storage for SBAC-based RD optimization

Definition at line 88 of file TEncSlice.h.

UInt64 TEncSlice::m_uiPicDist

total distortion for the picture

Definition at line 91 of file TEncSlice.h.

UInt64 TEncSlice::m_uiPicTotalBits

total bits for the picture

Definition at line 90 of file TEncSlice.h.

UInt TEncSlice::m_uiSliceIdx

Definition at line 97 of file TEncSlice.h.

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