1 |
struct huffcode { |
#include "h263tables.h" |
|
char*code; |
|
|
int len; |
|
|
int index; |
|
|
}; |
|
|
|
|
|
#define MCBPC_INTRA_STUFFING 8 |
|
2 |
|
|
3 |
struct huffcode mcbpc_intra[] = { |
struct huffcode mcbpc_intra[] = { |
4 |
{"1",1, 0}, /*cbpc-00 mb type 3*/ |
{"1",1, 0}, /*cbpc-00 mb type 3*/ |
14 |
}; |
}; |
15 |
|
|
16 |
struct mcbpc_intra_params |
struct mcbpc_intra_params |
17 |
{ |
mcbpc_intra_params[] = |
|
int index; |
|
|
int mb_type; |
|
|
int cbpc; |
|
|
} mcbpc_intra_params[] = |
|
18 |
{{0, 3, 0}, //00 |
{{0, 3, 0}, //00 |
19 |
{1, 3, 1}, //01 |
{1, 3, 1}, //01 |
20 |
{2, 3, 2}, //10 |
{2, 3, 2}, //10 |
26 |
{8 -1, -1} |
{8 -1, -1} |
27 |
}; |
}; |
28 |
|
|
|
#define MCBPC_INTER_STUFFING 20 |
|
|
|
|
29 |
struct huffcode mcbpc_inter[] = { |
struct huffcode mcbpc_inter[] = { |
30 |
{"1", 1, 0}, |
{"1", 1, 0}, |
31 |
{"0011", 4, 1}, |
{"0011", 4, 1}, |
59 |
}; |
}; |
60 |
|
|
61 |
struct mcbpc_inter_params |
struct mcbpc_inter_params |
62 |
{ |
mcbpc_inter_params[] = |
|
int index; |
|
|
int mb_type; |
|
|
int cbpc; |
|
|
} mcbpc_inter_params[] = |
|
63 |
{ {0, 0, 0}, {1, 0, 1}, {2, 0, 2}, {3, 0, 3}, |
{ {0, 0, 0}, {1, 0, 1}, {2, 0, 2}, {3, 0, 3}, |
64 |
{4, 1, 0}, {5, 1, 1}, {6, 1, 2}, {7, 1, 3}, |
{4, 1, 0}, {5, 1, 1}, {6, 1, 2}, {7, 1, 3}, |
65 |
{8, 2, 0}, {9, 2, 1}, {10, 2, 2}, {11, 2, 3}, |
{8, 2, 0}, {9, 2, 1}, {10, 2, 2}, {11, 2, 3}, |
157 |
{"0000000000110", 13, 63}, |
{"0000000000110", 13, 63}, |
158 |
{0,0,0}}; |
{0,0,0}}; |
159 |
|
|
|
struct mvd_params |
|
|
{ |
|
|
int index; |
|
|
float v1,v2; /*TODO: should be ints */ |
|
|
} mvd_params[] = |
|
|
{ |
|
|
{0, -16, 16}, |
|
|
{1, -15.5, 16.5}, |
|
|
{2, -15, 17}, |
|
|
{3, -14.5, 17.5}, |
|
|
{4, -14, 18}, |
|
|
{5, -13.5, 18.5}, |
|
|
{6, -13, 19}, |
|
|
{7, -12.5, 19.5}, |
|
|
{8, -12, 20}, |
|
|
{9, -11.5, 20.5}, |
|
|
{10, -11, 21}, |
|
|
{11, -10.5, 21.5}, |
|
|
{12, -10, 22}, |
|
|
{13, -9.5, 22.5}, |
|
|
{14, -9, 23}, |
|
|
{15, -8.5, 23.5}, |
|
|
{16, -8, 24}, |
|
|
{17, -7.5, 24.5}, |
|
|
{18, -7, 25}, |
|
|
{19, -6.5, 25.5}, |
|
|
{20, -6, 26}, |
|
|
{21, -5.5, 26.5}, |
|
|
{22, -5, 27}, |
|
|
{23, -4.5, 27.5}, |
|
|
{24, -4, 28}, |
|
|
{25, -3.5, 28.5}, |
|
|
{26, -3, 29}, |
|
|
{27, -2.5, 29.5}, |
|
|
{28, -2, 30}, |
|
|
{29, -1.5, 30.5}, |
|
|
{30, -1, 31}, |
|
|
{31, -0.5, 31.5}, |
|
|
{32, 0, 0}, |
|
|
{33, 0.5, -31.5}, |
|
|
{34, 1, -31}, |
|
|
{35, 1.5, -30.5}, |
|
|
{36, 2, -30}, |
|
|
{37, 2.5, -29.5}, |
|
|
{38, 3, -29}, |
|
|
{39, 3.5, -28.5}, |
|
|
{40, 4, -28}, |
|
|
{41, 4.5, -27.5}, |
|
|
{42, 5, -27}, |
|
|
{43, 5.5, -26.5}, |
|
|
{44, 6, -26}, |
|
|
{45, 6.5, -25.5}, |
|
|
{46, 7, -25}, |
|
|
{47, 7.5, -24.5}, |
|
|
{48, 8, -24}, |
|
|
{49, 8.5, -23.5}, |
|
|
{50, 9, -23}, |
|
|
{51, 9.5, -22.5}, |
|
|
{52, 10, -22}, |
|
|
{53, 10.5, -21.5}, |
|
|
{54, 11, -21}, |
|
|
{55, 11.5, -20.5}, |
|
|
{56, 12, -20}, |
|
|
{57, 12.5, -19.5}, |
|
|
{58, 13, -19}, |
|
|
{59, 13.5, -18.5}, |
|
|
{60, 14, -18}, |
|
|
{61, 14.5, -17.5}, |
|
|
{62, 15, -17}, |
|
|
{63, 15.5, -16.5} |
|
|
}; |
|
|
|
|
|
|
|
160 |
struct huffcode rle[] = |
struct huffcode rle[] = |
161 |
{ |
{ |
162 |
{"10", 2, 0}, |
{"10", 2, 0}, |
265 |
{0,0,0} |
{0,0,0} |
266 |
}; |
}; |
267 |
|
|
|
#define RLE_ESCAPE 102 |
|
|
|
|
268 |
struct rle_params |
struct rle_params |
269 |
{ |
rle_params[] = |
|
int index; |
|
|
int last; |
|
|
int run; |
|
|
int level; |
|
|
} rle_params[] = |
|
270 |
{{0,0,0,1}, {1,0,0,2}, {2,0,0,3}, {3,0,0,4}, {4,0,0,5}, {5,0,0,6}, {6,0,0,7}, |
{{0,0,0,1}, {1,0,0,2}, {2,0,0,3}, {3,0,0,4}, {4,0,0,5}, {5,0,0,6}, {6,0,0,7}, |
271 |
{7,0,0,8}, {8,0,0,9}, {9,0,0,10}, {10,0,0,11}, {11,0,0,12}, {12,0,1,1}, {13,0,1,2}, |
{7,0,0,8}, {8,0,0,9}, {9,0,0,10}, {10,0,0,11}, {11,0,0,12}, {12,0,1,1}, {13,0,1,2}, |
272 |
{14,0,1,3}, {15,0,1,4}, {16,0,1,5}, {17,0,1,6}, {18,0,2,1}, {19,0,2,2}, {20,0,2,3}, {21,0,2,4}, |
{14,0,1,3}, {15,0,1,4}, {16,0,1,5}, {17,0,1,6}, {18,0,2,1}, {19,0,2,2}, {20,0,2,3}, {21,0,2,4}, |