#ifndef _ADAPTIVE_COLORSPACE_
#define _ADAPTIVE_COLORSPACE_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "CommonDef.h"

#if QC_SCC_ADAPTIVE_COLORSPACE
#include "TComYuv.h"
#include "TComDataCU.h"

//! \ingroup TLibCommon
//! \{

class TComAdaptiveColorSpace
{
private:
  Int m_v[4][3*3];

public:
  
  Int* getV_YCgCo();

  Void getNoCorrImage(TComDataCU* pcCU, TComYuv* pcOrigYuv, TComYuv* pcNoCorrYuv, Pel NeighbourPixel[][MAX_CU_SIZE*4+1]);
  Void reconstructPixel(TComDataCU* pcCU, TComYuv* pcRecoYuvBest, Pel NeighbourPixel[][MAX_CU_SIZE*4+1]);
  Void getNoCorrImageIntra(TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcNoCorrOrg, UInt uiAbsPartIdx, UInt uiLog2TrSize, Int leftAvailable, Int aboveAvailable);
  Void getNoCorrResiInter(TComDataCU* pcCU, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcNoCorrResi);
  Void reconstructInterResi(TComDataCU* pcCU, TComYuv* pcResi, TComYuv* pcDstResi, Int iAbsPartIdx, Int iWidth, Int iHeight);
};

//! \}

#endif
#endif
