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

TEncCfgm_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...
 
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...
 
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...
 
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
 
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: