source: 3DVCSoftware/branches/0.1-poznan-univ/source/Lib/TLibDecoder/TDecCu.h @ 96

Last change on this file since 96 was 2, checked in by hhi, 13 years ago

inital import

  • Property svn:eol-style set to native
File size: 3.4 KB
Line 
1
2
3/** \file     TDecCu.h
4    \brief    CU decoder class (header)
5*/
6
7#ifndef __TDECCU__
8#define __TDECCU__
9
10#if _MSC_VER > 1000
11#pragma once
12#endif // _MSC_VER > 1000
13
14#include "../TLibCommon/TComTrQuant.h"
15#include "../TLibCommon/TComPrediction.h"
16#include "TDecEntropy.h"
17
18// ====================================================================================================================
19// Class definition
20// ====================================================================================================================
21
22/// CU decoder class
23class TDecCu
24{
25private:
26  UInt                m_uiMaxDepth;       ///< max. number of depth
27  TComYuv**           m_ppcYuvResi;       ///< array of residual buffer
28  TComYuv**           m_ppcYuvReco;       ///< array of prediction & reconstruction buffer
29  TComYuv**           m_ppcYuvResPred;    ///< residual prediction buffer
30  TComDataCU**        m_ppcCU;            ///< CU data array
31 
32  // access channel
33  TComTrQuant*        m_pcTrQuant;
34  TComPrediction*     m_pcPrediction;
35  TDecEntropy*        m_pcEntropyDecoder;
36 
37public:
38  TDecCu();
39  virtual ~TDecCu();
40 
41  /// initialize access channels
42  Void  init                    ( TDecEntropy* pcEntropyDecoder, TComTrQuant* pcTrQuant, TComPrediction* pcPrediction );
43 
44  /// create internal buffers
45  Void  create                  ( UInt uiMaxDepth, UInt uiMaxWidth, UInt uiMaxHeight );
46 
47  /// destroy internal buffers
48  Void  destroy                 ();
49 
50  /// decode CU information
51  Void  decodeCU                ( TComDataCU* pcCU, UInt& ruiIsLast );
52 
53  /// reconstruct CU information
54  Void  decompressCU            ( TComDataCU* pcCU );
55 
56protected:
57 
58  Void xDecodeCU                ( TComDataCU* pcCU,                       UInt uiAbsPartIdx, UInt uiDepth );
59  Void xDecompressCU            ( TComDataCU* pcCU, TComDataCU* pcCUCur,  UInt uiAbsPartIdx, UInt uiDepth );
60 
61  Void xReconInter              ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
62 
63  Void  xReconIntraQT           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
64  Void  xIntraRecLumaBlk        ( TComDataCU* pcCU, UInt uiTrDepth, UInt uiAbsPartIdx, TComYuv* pcRecoYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv );
65  Void  xIntraRecChromaBlk      ( TComDataCU* pcCU, UInt uiTrDepth, UInt uiAbsPartIdx, TComYuv* pcRecoYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv, UInt uiChromaId );
66  Void  xIntraRecQT             ( TComDataCU* pcCU, UInt uiTrDepth, UInt uiAbsPartIdx, TComYuv* pcRecoYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv );
67 
68  Void xDecodeInterTexture      ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
69  Void xDecodeIntraTexture      ( TComDataCU* pcCU, UInt uiPartIdx, Pel* piReco, Pel* pPred, Pel* piResi, UInt uiStride, TCoeff* pCoeff, UInt uiWidth, UInt uiHeight, UInt uiCurrDepth );
70  Void xRecurIntraInvTransChroma( TComDataCU* pcCU, UInt uiAbsPartIdx, Pel* piResi, Pel* piPred, Pel* piReco, UInt uiStride, TCoeff* piCoeff, UInt uiWidth, UInt uiHeight, UInt uiTrMode, UInt uiCurrTrMode, TextType eText );
71 
72  Void xCopyToPic               ( TComDataCU* pcCU, TComPic* pcPic, UInt uiZorderIdx, UInt uiDepth );
73
74#if LM_CHROMA
75  Void  xIntraLumaRecQT         ( TComDataCU* pcCU, UInt uiTrDepth, UInt uiAbsPartIdx, TComYuv* pcRecoYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv );
76  Void  xIntraChromaRecQT       ( TComDataCU* pcCU, UInt uiTrDepth, UInt uiAbsPartIdx, TComYuv* pcRecoYuv, TComYuv* pcPredYuv, TComYuv* pcResiYuv );
77#endif
78};
79
80#endif
81
Note: See TracBrowser for help on using the repository browser.