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
[legend]
Collaboration diagram for TEncSlice:
Collaboration graph
[legend]

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

TEncCfgm_pcCfg
 encoder configuration class More...
 
TComList< TComPic * > * m_pcListPic
 list of pictures More...
 
TComPicYuvm_apcPicYuvPred
 prediction picture buffer More...
 
TComPicYuvm_apcPicYuvResi
 residual picture buffer More...
 
TEncGOPm_pcGOPEncoder
 GOP encoder. More...
 
TEncCum_pcCuEncoder
 CU encoder. More...
 
TEncSearchm_pcPredSearch
 encoder search class More...
 
TEncEntropym_pcEntropyCoder
 entropy encoder More...
 
TEncSbacm_pcSbacCoder
 SBAC encoder. More...
 
TEncBinCABACm_pcBinCABAC
 Bin encoder CABAC. More...
 
TComTrQuantm_pcTrQuant
 transform & quantization More...
 
TComRdCostm_pcRdCost
 RD cost computation. More...
 
TEncSbac *** m_pppcRDSbacCoder
 storage for SBAC-based RD optimization More...
 
TEncSbacm_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...
 
Doublem_pdRdPicLambda
 array of lambda candidates More...
 
Doublem_pdRdPicQp
 array of picture QP candidates (double-type for lambda) More...
 
Intm_piRdPicQp
 array of picture QP candidates (Int-type) More...
 
TEncRateCtrlm_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
 
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 ( )
virtual

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 
)
private

Definition at line 1109 of file TEncSlice.cpp.

Void TEncSlice::compressSlice ( TComPic pcPic)

analysis stage of slice

Parameters
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 ( )
inline

CU encoder.

Definition at line 126 of file TEncSlice.h.

SliceType TEncSlice::getEncCABACTableIdx ( ) const
inline

Definition at line 131 of file TEncSlice.h.

UInt TEncSlice::getSliceIdx ( )
inline

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
Parameters
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

Parameters
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)
inline

Definition at line 129 of file TEncSlice.h.

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

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

Parameters
[out]startCtuTsAddr
[out]boundingCtuTsAddr
[in]pcPic
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)
private

Definition at line 1232 of file TEncSlice.cpp.

Member Data Documentation

TComPicYuv* TEncSlice::m_apcPicYuvPred
private

prediction picture buffer

Definition at line 70 of file TEncSlice.h.

TComPicYuv* TEncSlice::m_apcPicYuvResi
private

residual picture buffer

Definition at line 71 of file TEncSlice.h.

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.

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.

Double* TEncSlice::m_pdRdPicLambda
private

array of lambda candidates

Definition at line 93 of file TEncSlice.h.

Double* TEncSlice::m_pdRdPicQp
private

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

Definition at line 94 of file TEncSlice.h.

Int* TEncSlice::m_piRdPicQp
private

array of picture QP candidates (Int-type)

Definition at line 95 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.


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