#include #include "IPU_MacroblockAddressIncrementTable.h" using namespace IPU; using namespace MPEG2; VLCTABLEENTRY CMacroblockAddressIncrementTable::m_pTable[ENTRYCOUNT] = { {0x0001, 1, 0x00010001}, {0x0003, 3, 0x00030002}, {0x0002, 3, 0x00030003}, {0x0003, 4, 0x00040004}, {0x0002, 4, 0x00040005}, {0x0003, 5, 0x00050006}, {0x0002, 5, 0x00050007}, {0x0007, 7, 0x00070008}, {0x0006, 7, 0x00070009}, {0x000B, 8, 0x0008000A}, {0x000A, 8, 0x0008000B}, {0x0009, 8, 0x0008000C}, {0x0008, 8, 0x0008000D}, {0x0007, 8, 0x0008000E}, {0x0006, 8, 0x0008000F}, {0x0017, 10, 0x000A0010}, {0x0016, 10, 0x000A0011}, {0x0015, 10, 0x000A0012}, {0x0014, 10, 0x000A0013}, {0x0013, 10, 0x000A0014}, {0x0012, 10, 0x000A0015}, {0x0023, 11, 0x000B0016}, {0x0022, 11, 0x000B0017}, {0x0021, 11, 0x000B0018}, {0x0020, 11, 0x000B0019}, {0x001F, 11, 0x000B001A}, {0x001E, 11, 0x000B001B}, {0x001D, 11, 0x000B001C}, {0x001C, 11, 0x000B001D}, {0x001B, 11, 0x000B001E}, {0x001A, 11, 0x000B001F}, {0x0019, 11, 0x000B0020}, {0x0018, 11, 0x000B0021}, {0x000F, 11, 0x000B0022}, {0x0008, 11, 0x000B0023}, }; unsigned int CMacroblockAddressIncrementTable::m_pIndexTable[MAXBITS] = { 0, 1, 1, 3, 5, 5, 7, 9, 9, 15, 21, }; CVLCTable* CMacroblockAddressIncrementTable::m_pInstance = NULL; CMacroblockAddressIncrementTable::CMacroblockAddressIncrementTable() : CVLCTable(MAXBITS, m_pTable, ENTRYCOUNT, m_pIndexTable) { } CVLCTable* CMacroblockAddressIncrementTable::GetInstance() { if(m_pInstance == NULL) { m_pInstance = new CMacroblockAddressIncrementTable(); } return m_pInstance; }