class TComDataCU//MV
{
TComCUMvField m_acCUMvField[2];
//m_acCUMvField[0]对应了list0;m_acCUMvField[1]对应了list1;
};
class TComCUMvField
{
TComMv* m_pcMv;
TComMv* m_pcMvd;
Char* m_piRefIdx;
UInt m_uiNumPartition;
AMVPInfo m_cAMVPInfo;
};
class TComMv
{
Short m_iHor;
Short m_iVer;
//NBDV
Bool m_bIDV;
Short m_iIDVHor;
Short m_iIDVVer;
Short m_iIDVVId;
};
class TComMvField//带索引的MV
{
TComMv m_acMv;
Int m_iRefIdx;
};
Void TComCUMvField::create( UInt uiNumPartition )
{//uiNumPartition=256
assert(m_pcMv == NULL);
assert(m_pcMvd == NULL);
assert(m_piRefIdx == NULL);
m_pcMv = new TComMv[ uiNumPartition ];
m_pcMvd = new TComMv[ uiNumPartition ];
m_piRefIdx = new Char [ uiNumPartition ];
m_uiNumPartition = uiNumPartition;
}
以1920*1088为例:
图像中共有510个LCU,每个LCU中有TComCUMvField m_acCUMvField[2],对其进行初始化时,它的m_pcMv开辟连续的256个空间,对应了256个4*4块。