package com.twilight.h264.decoder;
public class CAVLCTables {
public static short[][] expandTable(short[][] input) {
int tableSize = 0;
// Calculate Table Size.
for(int i=0;i<input.length;i++)
tableSize += input[i][2];
short[][] output = new short[tableSize][2];
int j = 0;
for(int i=0;i<input.length;i++) {
for(int k=0;k<input[i][2];k++) {
output[j+k][0] = input[i][0];
output[j+k][1] = input[i][1];
} // for k
j += input[i][2];
} // for i
return output;
}
public static final short[][] chroma_dc_coeff_token_vlc_table = {
{19, 7, 2},
{18, 8, 1},
{17, 8, 1},
{14, 7, 2},
{13, 7, 2},
{16, 6, 4},
{12, 6, 4},
{8, 6, 4},
{15, 6, 4},
{9, 6, 4},
{4, 6, 4},
{10, 3, 32},
{0, 2, 64},
{5, 1, 128},
};
public static final short[][][] coeff_token_vlc_table = {
{
{256, -8, 1},
{512, -2, 1},
{516, -1, 1},
{518, -1, 1},
{27, 8, 1},
{18, 8, 1},
{13, 8, 1},
{8, 8, 1},
{23, 7, 2},
{14, 7, 2},
{19, 6, 4},
{9, 6, 4},
{4, 6, 4},
{15, 5, 8},
{10, 3, 32},
{5, 2, 64},
{0, 1, 128},
{-1, 0, 2},
{53, 7, 2},
{64, 8, 1},
{66, 8, 1},
{65, 8, 1},
{60, 8, 1},
{67, 8, 1},
{62, 8, 1},
{61, 8, 1},
{56, 8, 1},
{63, 8, 1},
{58, 8, 1},
{57, 8, 1},
{52, 8, 1},
{59, 7, 2},
{54, 7, 2},
{49, 7, 2},
{48, 7, 2},
{55, 7, 2},
{50, 7, 2},
{45, 7, 2},
{44, 7, 2},
{51, 6, 4},
{46, 6, 4},
{41, 6, 4},
{40, 6, 4},
{47, 6, 4},
{42, 6, 4},
{37, 6, 4},
{36, 6, 4},
{32, 5, 8},
{38, 5, 8},
{33, 5, 8},
{28, 5, 8},
{43, 5, 8},
{34, 5, 8},
{29, 5, 8},
{24, 5, 8},
{39, 3, 32},
{30, 3, 32},
{25, 3, 32},
{20, 3, 32},
{35, 2, 1},
{26, 2, 1},
{21, 2, 1},
{16, 2, 1},
{31, 1, 1},
{22, 1, 1},
{17, 1, 1},
{12, 1, 1},
},
{
{256, -6, 1},
{320, -3, 1},
{328, -1, 1},
{330, -1, 1},
{20, 8, 1},
{26, 8, 1},
{25, 8, 1},
{16, 8, 1},
{35, 7, 2},
{22, 7, 2},
{21, 7, 2},
{12, 7, 2},
{31, 6, 4},
{18, 6, 4},
{17, 6, 4},
{8, 6, 4},
{27, 6, 4},
{14, 6, 4},
{13, 6, 4},
{4, 6, 4},
{23, 5, 8},
{9, 5, 8},
{19, 4, 16},
{15, 4, 16},
{10, 3, 32},
{5, 2, 64},
{0, 2, 64},
{-1, 0, 2},
{63, 5, 2},
{67, 6, 1},
{66, 6, 1},
{65, 6, 1},
{64, 6, 1},
{61, 6, 1},
{60, 6, 1},
{62, 6, 1},
{57, 6, 1},
{58, 5, 2},
{56, 5, 2},
{59, 5, 2},
{54, 5, 2},
{53, 5, 2},
{52, 5, 2},
{55, 5, 2},
{50, 5, 2},
{49, 5, 2},
{48, 5, 2},
{44, 4, 4},
{46, 4, 4},
{45, 4, 4},
{40, 4, 4},
{51, 4, 4},
{42, 4, 4},
{41, 4, 4},
{36, 4, 4},
{47, 3, 1},
{38, 3, 1},
{37, 3, 1},
{32, 3, 1},
{43, 3, 1},
{34, 3, 1},
{33, 3, 1},
{28, 3, 1},
{39, 1, 1},
{30, 1, 1},
{29, 1, 1},
{24, 1, 1},
},
{
{256, -2, 1},
{260, -2, 1},
{264, -2, 1},
{268, -2, 1},
{272, -1, 1},
{274, -1, 1},
{276, -1, 1},
{278, -1, 1},
{51, 8, 1},
{46, 8, 1},
{41, 8, 1},
{36, 8, 1},
{47, 8, 1},
{42, 8, 1},
{37, 8, 1},
{32, 8, 1},
{28, 7, 2},
{24, 7, 2},
{38, 7, 2},
{20, 7, 2},
{43, 7, 2},
{34, 7, 2},
{33, 7, 2},
{16, 7, 2},
{12, 6, 4},
{30, 6, 4},
{29, 6, 4},
{8, 6, 4},
{39, 6, 4},
{26, 6, 4},
{25, 6, 4},
{4, 6, 4},
{21, 5, 8},
{22, 5, 8},
{17, 5, 8},
{18, 5, 8},
{13, 5, 8},
{35, 5, 8},
{14, 5, 8},
{9, 5, 8},
{31, 4, 16},
{27, 4, 16},
{23, 4, 16},
{19, 4, 16},
{15, 4, 16},
{10, 4, 16},
{5, 4, 16},
{0, 4, 16},
{-1, 0, 1},
{64, 2, 1},
{67, 2, 1},
{66, 2, 1},
{65, 2, 1},
{60, 2, 1},
{63, 2, 1},
{62, 2, 1},
{61, 2, 1},
{56, 2, 1},
{59, 2, 1},
{58, 2, 1},
{57, 2, 1},
{52, 2, 1},
{53, 1, 2},
{48, 1, 1},
{54, 1, 1},
{49, 1, 1},
{44, 1, 1},
{55, 1, 1},
{50, 1, 1},
{45, 1, 1},
{40, 1, 1},
},
{
{4, 6, 4},
{5, 6, 4},
{-1, 0, 4},
{0, 6, 4},
{8, 6, 4},
{9, 6, 4},
{10, 6, 4},
{-1, 0, 4},
{12, 6, 4},
{13, 6, 4},
{14, 6, 4},
{15, 6, 4},
{16, 6, 4},
{17, 6, 4},
{18, 6, 4},
{19, 6, 4},
{20, 6, 4},
{21, 6, 4},
{22, 6, 4},
{23, 6, 4},
{24, 6, 4},
{25, 6, 4},
{26, 6, 4},
{27, 6, 4},
{28, 6, 4},
{29, 6, 4},
{30, 6, 4},
{31, 6, 4},
{32, 6, 4},
{33, 6, 4},
{34, 6, 4},
{35, 6, 4},
{36, 6, 4},
{37, 6, 4},
{38, 6, 4},
{39, 6, 4},
{40, 6, 4},
{41, 6, 4},
{42, 6, 4},
{43, 6, 4},
{44, 6, 4},
{45, 6, 4},
{46, 6, 4},
{47, 6, 4},
{48, 6, 4},
{49, 6, 4},
{50, 6, 4},
{51, 6, 4},
{52, 6, 4},
{53, 6, 4},
{54, 6, 4},
{55, 6, 4},
{56, 6, 4},
{57, 6, 4},
{58, 6, 4},
{59, 6, 4},
{60, 6, 4},
{61, 6, 4},
{62, 6, 4},
{63, 6, 4},
{64, 6, 4},
{65, 6, 4},
{66, 6, 4},
{67, 6, 4},
},
};
public static final short[][][] chroma_dc_total_zeros_vlc_table = {
{
{3, 3, 1},
{2, 3, 1},
{1, 2, 2},
{0, 1, 4},
},
{
{2, 2, 2},
{1, 2, 2},
{0, 1, 4},
},
{
{1, 1, 4},
{0, 1, 4},
},
};
public static final short[][][] total_zeros_vlc = {
{
{-1, 0, 1},
{15, 9, 1},
{14, 9, 1},
{13, 9, 1},
{12, 8, 2},
{11, 8, 2},
{10, 7, 4},
{9, 7, 4},
{8, 6, 8},
{7, 6, 8},
{6, 5, 16},
{5, 5, 16},
{4, 4, 32},
{3, 4, 32},
{2, 3, 64},
{1, 3, 64},
{0, 1, 256},
},
{
{14, 6, 8},
{13, 6, 8},
{12, 6, 8},
{11, 6, 8},
{10, 5, 16},
{9, 5, 16},
{8, 4, 32},
{7, 4, 32},
{6, 4, 32},
{5, 4, 32},
{4, 3, 64},
{3, 3, 64},
{2, 3, 64},
{1, 3, 64},
{0, 3, 64},
},
{
{13, 6, 8},
{11, 6, 8},
{12, 5, 16},
{10, 5, 16},
{9, 5, 16},
{8, 4, 32},
{5, 4, 32},
{4, 4, 32},
{0, 4, 32},
{7, 3, 64},
{6, 3, 64},
{3, 3, 64},
{2, 3, 64},
{1, 3, 64},
},
{
{12, 5, 16},
{11, 5, 16},
{10, 5, 16},
{0, 5, 16},
{9, 4, 32},
{7, 4, 32},
{3, 4, 32},
{2, 4, 32},
{8, 3, 64},
{6, 3, 64},
{5, 3, 64},
{4, 3, 64},
{1, 3, 64},
},
{
{11, 5, 16},
{9, 5, 16},
{10, 4, 32},
{8, 4, 32},
{2, 4, 32},
{1, 4, 32},
{0, 4, 32},
{7, 3, 64},
{6, 3, 64},
{5, 3, 64},
{4, 3, 64},
{3, 3, 64},
},
{
{10, 6, 8},
{0, 6, 8},
{1, 5, 16},
{8, 4, 32},
{9, 3, 64},
{7, 3, 64},
{6, 3, 64},
{5, 3, 64},
{4, 3, 64},
{3, 3, 64},
{2, 3, 64},
},
{
{9, 6, 8},
{0, 6, 8},
{1, 5, 16},
{7, 4, 32},
{8, 3, 64},
{6, 3, 64},
{4, 3, 64},
{3, 3, 64},
{2, 3, 64},
{5, 2, 128},
},
{
{8, 6, 8},
{0, 6, 8},
{2, 5, 16},
{1, 4, 32},
{7, 3, 64},
{6, 3, 64},
{3, 3, 64},
{5, 2, 128},
{4, 2, 128},
},
{
{1, 6, 8},
{0, 6, 8},
{7, 5, 16},
{2, 4, 32},
{5, 3, 64},
{6, 2, 128},
{4, 2, 128},
{3, 2, 128},
},
{
{1, 5, 16},
{0, 5, 16},
{6, 4, 32},
{2, 3, 64},
{5, 2, 128},
{4, 2, 128},
{3, 2, 128},
},
{
{0, 4, 32},
{1, 4, 32},
{2, 3, 64},
{3, 3, 64},
{5, 3, 64},
{4, 1, 256},
},
{
{0, 4, 32},
{1, 4, 32},
{4, 3, 64},
{2, 2, 128},
{3, 1, 256},
},
{
{0, 3, 64},
{1, 3, 64},
{3, 2, 128},
{2, 1, 256},
},
{
{0, 2, 128},
{1, 2, 128},
{2, 1, 256},
},
{
{0, 1, 256},
{1, 1, 256},
},
};
public static final short[][][] run_vlc_table = {
{
{1, 1, 4},
{0, 1, 4},
},
{
{2, 2, 2},
{1, 2, 2},
{0, 1, 4},
},
{
{3, 2, 2},
{2, 2, 2},
{1, 2, 2},
{0, 2, 2},
},
{
{4, 3, 1},
{3, 3, 1},
{2, 2, 2},
{1, 2, 2},
{0, 2, 2},
},
{
{5, 3, 1},
{4, 3, 1},
{3, 3, 1},
{2, 3, 1},
{1, 2, 2},
{0, 2, 2},
},
{
{1, 3, 1},
{2, 3, 1},
{4, 3, 1},
{3, 3, 1},
{6, 3, 1},
{5, 3, 1},
{0, 2, 2},
},
};
public static final short[][] run7_vlc_table = {
{64, -5, 1},
{9, 6, 1},
{8, 5, 2},
{7, 4, 4},
{6, 3, 8},
{5, 3, 8},
{4, 3, 8},
{3, 3, 8},
{2, 3, 8},
{1, 3, 8},
{0, 3, 8},
{-1, 0, 1},
{14, 5, 1},
{13, 4, 2},
{12, 3, 4},
{11, 2, 8},
{10, 1, 16},
};
}