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

Public Member Functions

Void setGopID (Int iGopID)
Int getGopID () const
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, 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

 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...
 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...
std::vector< Doublem_vdRdPicLambda
 array of lambda candidates More...
std::vector< Doublem_vdRdPicQp
 array of picture QP candidates (double-type for lambda) More...
std::vector< Intm_viRdPicQp
 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
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 ( )

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 

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 

Definition at line 433 of file TEncSlice.cpp.

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

analysis stage of slice

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

CU encoder.

Definition at line 132 of file TEncSlice.h.

SliceType TEncSlice::getEncCABACTableIdx ( ) const

Definition at line 137 of file TEncSlice.h.

Int TEncSlice::getGopID ( ) const

Definition at line 120 of file TEncSlice.h.

UInt TEncSlice::getSliceIdx ( )

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

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)

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)

Definition at line 135 of file TEncSlice.h.

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

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

[in]pcPicUpdates startCtuTsAddr, boundingCtuTsAddr with appropriate CTU address

Definition at line 1266 of file TEncSlice.cpp.

Double TEncSlice::xGetQPValueAccordingToLambda ( Double  lambda)

Definition at line 1297 of file TEncSlice.cpp.

Member Data Documentation

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.

Int TEncSlice::m_gopID

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

TComPicYuv TEncSlice::m_picYuvPred

prediction picture buffer

Definition at line 70 of file TEncSlice.h.

TComPicYuv TEncSlice::m_picYuvResi

residual picture buffer

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

std::vector<Double> TEncSlice::m_vdRdPicLambda

array of lambda candidates

Definition at line 93 of file TEncSlice.h.

std::vector<Double> TEncSlice::m_vdRdPicQp

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

Definition at line 94 of file TEncSlice.h.

std::vector<Int> TEncSlice::m_viRdPicQp

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: