#include #include "IPU_MotionCodeTable.h" using namespace IPU; using namespace MPEG2; VLCTABLEENTRY CMotionCodeTable::m_pTable[ENTRYCOUNT] = { { 0x0001, 1, 0x00010000 }, { 0x0002, 3, 0x00030001 }, { 0x0003, 3, 0x0003FFFF }, { 0x0002, 4, 0x00040002 }, { 0x0003, 4, 0x0004FFFE }, { 0x0002, 5, 0x00050003 }, { 0x0003, 5, 0x0005FFFD }, { 0x0006, 7, 0x00070004 }, { 0x0007, 7, 0x0007FFFC }, { 0x000A, 8, 0x00080005 }, { 0x000B, 8, 0x0008FFFB }, { 0x0008, 8, 0x00080006 }, { 0x0009, 8, 0x0008FFFA }, { 0x0006, 8, 0x00080007 }, { 0x0007, 8, 0x0008FFF9 }, { 0x0016, 10, 0x000A0008 }, { 0x0017, 10, 0x000AFFF8 }, { 0x0014, 10, 0x000A0009 }, { 0x0015, 10, 0x000AFFF7 }, { 0x0012, 10, 0x000A000A }, { 0x0013, 10, 0x000AFFF6 }, { 0x0022, 11, 0x000B000B }, { 0x0023, 11, 0x000BFFF5 }, { 0x0020, 11, 0x000B000C }, { 0x0021, 11, 0x000BFFF4 }, { 0x001E, 11, 0x000B000D }, { 0x001F, 11, 0x000BFFF3 }, { 0x001C, 11, 0x000B000E }, { 0x001D, 11, 0x000BFFF2 }, { 0x001A, 11, 0x000B000F }, { 0x001B, 11, 0x000BFFF1 }, { 0x0018, 11, 0x000B0010 }, { 0x0019, 11, 0x000BFFF0 }, }; unsigned int CMotionCodeTable::m_pIndexTable[MAXBITS] = { 0, 1, 1, 3, 5, 7, 7, 9, 15, 15, 21, }; CVLCTable* CMotionCodeTable::m_pInstance = NULL; CMotionCodeTable::CMotionCodeTable() : CVLCTable(MAXBITS, m_pTable, ENTRYCOUNT, m_pIndexTable) { } CVLCTable* CMotionCodeTable::GetInstance() { if(m_pInstance == NULL) { m_pInstance = new CMotionCodeTable(); } return m_pInstance; }