21 save_huffman(
"/Compression/Lossless/HITS/Huffman/Parameter", &hits_parameter_huffman);
27 load_huffman(
"/Compression/Lossless/HITS/Huffman/Parameter", &hits_parameter_huffman);
29 int size =
sizeof(BOOL);
31 &size, TID_BOOL,
TRUE);
35 int *uncompressed_size_p)
38 int prev_parameter = 0;
40 for (
int i = 0;
i < input_size;
i++) {
44 int parameter_diff = parameter - prev_parameter + 161;
45 if(parameter_diff <= 0 || parameter_diff >= 322) {
49 if(parameter_diff == 0) {
53 int time = (int) ((input[
i].time+0.01)/1.25);
54 int time_diff = time - prev_time;
55 assert (time_diff >= 0);
60 }
else if (time_diff < 4096) {
72 *uncompressed_size_p = input_size;
87 int *uncompressed_size_p = (
int *) output;
88 output +=
sizeof(int);
91 int *compressed_time_size_p = (
int *) output;
92 output +=
sizeof(int);
96 int compressed_time_size =
97 encode_hits(input, input_size, &output_buffer, uncompressed_size_p);
98 output += compressed_time_size;
101 *compressed_time_size_p = compressed_time_size;
103 return compressed_time_size + 2 *
sizeof(int);
109 int prev_parameter = 0;
116 if (parameter_diff < 0) {
118 }
else if(parameter_diff == 0) {
121 parameter = prev_parameter + parameter_diff - 161;
127 if (time_length_flag1 == 0) {
131 if (time_length_flag2 == 0) {
138 output[
i].
time = (prev_time + time_diff) * 1.25;
139 prev_time = prev_time + time_diff;
157 int *uncompressed_size_p = (
int *) input;
158 int uncompressed_size = *uncompressed_size_p;
159 input +=
sizeof(int);
160 input_size -=
sizeof(int);
163 int *compressed_time_size_p = (
int *) input;
164 int compressed_time_size = *compressed_time_size_p;
165 input +=
sizeof(int);
166 input_size -=
sizeof(int);
172 input += compressed_time_size;
173 input_size -= compressed_time_size;