Skip to content

Commit 1f09283

Browse files
committed
memory for huffman fixed
1 parent ae7f39b commit 1f09283

12 files changed

+447
-437
lines changed

Plots.ipynb

+193-191
Large diffs are not rendered by default.

Plots_rgb.ipynb

+185-183
Large diffs are not rendered by default.

data_huffman.csv

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
image_name,image_size,cp,noobpp,ct,cm,dt,dm
2-
./images/10.ppm,262144,31.4432,5.48455,0.026678,3688,0.139001,6604
3-
./images/11.png,1024,56.2012,3.50391,0.000912,1872,0.000959,3396
4-
./images/12.png,2304,52.3655,3.81076,0.001348,1812,0.001369,3352
5-
./images/13.png,6400,57.7969,3.37625,0.001702,3380,0.002556,3472
6-
./images/14.png,256,32.1289,5.42969,0.000351,1848,0.000914,3300
7-
./images/2.bmp,499840,7.17272,7.42618,0.076327,3952,0.350174,11756
8-
./images/3.bmp,355008,4.66123,7.6271,0.053579,3612,0.254165,8800
9-
./images/4.bmp,183768,6.39196,7.48864,0.026466,3576,0.127988,6304
10-
./images/5.bmp,135762,14.3308,6.85354,0.017635,3616,0.087716,5536
11-
./images/6.bmp,67859,7.46382,7.40289,0.010705,3400,0.039636,4072
12-
./images/7.bmp,14672,7.21442,7.42285,0.002588,3332,0.010182,3448
13-
./images/8.ppm,16384,36.6867,5.06506,0.001544,3472,0.007985,3692
14-
./images/9.png,4096,13.858,6.89136,0.001707,1828,0.003021,3348
15-
./images/colombia.jpg,65536,22.481,6.20152,0.007844,3464,0.0255,4168
2+
./images/10.ppm,262144,31.4432,5.48455,0.047336,5960,0.135402,6544
3+
./images/11.png,1024,56.2012,3.50391,0.011176,1896,0.000998,3160
4+
./images/12.png,2304,52.3655,3.81076,0.075863,1896,0.0017,3268
5+
./images/13.png,6400,57.7969,3.37625,0.053681,3392,0.002597,3388
6+
./images/14.png,256,32.1289,5.42969,0.01595,1940,0.000735,3256
7+
./images/2.bmp,499840,7.17272,7.42618,0.088652,9740,0.325082,11760
8+
./images/3.bmp,355008,4.66123,7.6271,0.077134,8420,0.216452,8516
9+
./images/4.bmp,183768,6.39196,7.48864,0.044549,5132,0.103739,6304
10+
./images/5.bmp,135762,14.3308,6.85354,0.076293,4956,0.070581,5468
11+
./images/6.bmp,67859,7.46382,7.40289,0.286089,4320,0.037194,4024
12+
./images/7.bmp,14672,7.21442,7.42285,0.011046,3352,0.009059,3588
13+
./images/8.ppm,16384,36.6867,5.06506,0.012624,3480,0.007395,3508
14+
./images/9.png,4096,13.858,6.89136,0.016049,1896,0.002697,3472
15+
./images/colombia.jpg,65536,22.481,6.20152,0.009599,3928,0.022829,4004

data_huffman_rgb.csv

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
image_name,image_size,cp,noobpp,ct,cm,dt,dm
2-
./images/10.ppm,786432,37.8912,4.9687,0.057256,4216,0.293082,10440
3-
./images/11.png,3072,51.5869,3.87305,0.00098,1972,0.003015,3320
4-
./images/12.png,6912,47.3976,4.20819,0.002522,1812,0.003068,3400
5-
./images/13.png,19200,54.0918,3.67266,0.003757,3540,0.008183,3360
6-
./images/14.png,768,29.3945,5.64844,0.000551,1852,0.00099,3288
7-
./images/2.bmp,1499520,4.04088,7.67673,0.121468,4784,0.913338,23068
8-
./images/3.bmp,1065024,3.3749,7.73001,0.102442,4516,0.625784,15904
9-
./images/4.bmp,551304,4.91145,7.60708,0.053485,3848,0.33954,11196
10-
./images/5.bmp,407286,7.49228,7.40062,0.035632,3876,0.213605,8628
11-
./images/6.bmp,203577,4.4439,7.64449,0.020625,3568,0.116154,6120
12-
./images/7.bmp,44016,5.82061,7.53435,0.007492,3552,0.026829,4224
13-
./images/8.ppm,49152,51.5584,3.87533,0.00338,3500,0.0216,3668
14-
./images/9.png,12288,11.2152,7.10278,0.001947,1920,0.007122,3844
15-
./images/colombia.jpg,196608,19.7084,6.42332,0.019618,3768,0.070199,5220
2+
./images/10.ppm,786432,37.8912,4.9687,0.066132,8840,0.295383,10440
3+
./images/11.png,3072,51.5869,3.87305,0.000978,1896,0.001717,3300
4+
./images/12.png,6912,47.3976,4.20819,0.001473,3428,0.002904,3336
5+
./images/13.png,19200,54.0918,3.67266,0.004435,3504,0.006199,3340
6+
./images/14.png,768,29.3945,5.64844,0.000557,1792,0.001349,3320
7+
./images/2.bmp,1499520,4.04088,7.67673,0.174983,17532,0.857773,22940
8+
./images/3.bmp,1065024,3.3749,7.73001,0.122487,13492,0.611711,15876
9+
./images/4.bmp,551304,4.91145,7.60708,0.060105,8780,0.322825,11232
10+
./images/5.bmp,407286,7.49228,7.40062,0.047332,7048,0.247124,8504
11+
./images/6.bmp,203577,4.4439,7.64449,0.023311,5280,0.114085,5988
12+
./images/7.bmp,44016,5.82061,7.53435,0.007347,3820,0.028437,4088
13+
./images/8.ppm,49152,51.5584,3.87533,0.004133,3692,0.020267,3684
14+
./images/9.png,12288,11.2152,7.10278,0.00257,3396,0.007357,3692
15+
./images/colombia.jpg,196608,19.7084,6.42332,0.023972,5188,0.079231,5248

data_improved_huffman.csv

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
image_name,image_size,cp,noobpp,ct,cm,dt,dm
2-
./images/10.ppm,262144,38.6838,4.9053,0.064868,3520,0.120878,6828
3-
./images/11.png,1024,55.8105,3.53516,0.018094,1900,0.001478,3344
4-
./images/12.png,2304,52.6584,3.78733,0.001086,2032,0.001461,3260
5-
./images/13.png,6400,58.2227,3.34219,0.013962,3452,0.004142,3432
6-
./images/14.png,256,28.0273,5.75781,0.017412,1828,0.00065,3328
7-
./images/2.bmp,499840,7.76954,7.37844,0.111432,3864,0.292489,12232
8-
./images/3.bmp,355008,9.22264,7.26219,0.096234,3740,0.212293,8932
9-
./images/4.bmp,183768,6.11553,7.51076,0.054622,3572,0.108957,6556
10-
./images/5.bmp,135762,18.3286,6.53371,0.082592,3600,0.075734,5444
11-
./images/6.bmp,67859,13.3136,6.93491,0.024157,3452,0.040773,4340
12-
./images/7.bmp,14672,7.0781,7.43375,0.020898,3448,0.01041,3592
13-
./images/8.ppm,16384,35.8299,5.13361,0.020423,3412,0.008351,3828
14-
./images/9.png,4096,11.2305,7.10156,0.01306,1972,0.002814,3460
15-
./images/colombia.jpg,65536,31.7202,5.46239,0.014139,3468,0.026081,3880
2+
./images/10.ppm,262144,38.6838,4.9053,0.056438,5864,0.118191,6624
3+
./images/11.png,1024,55.8105,3.53516,0.000646,1792,0.001524,3308
4+
./images/12.png,2304,52.6584,3.78733,0.001014,1816,0.002194,3184
5+
./images/13.png,6400,58.2227,3.34219,0.001986,3304,0.002655,3348
6+
./images/14.png,256,28.0273,5.75781,0.000421,1940,0.000952,3248
7+
./images/2.bmp,499840,7.76954,7.37844,0.140126,9232,0.337675,12232
8+
./images/3.bmp,355008,9.22264,7.26219,0.097761,8076,0.222782,8868
9+
./images/4.bmp,183768,6.11553,7.51076,0.059477,4928,0.123513,6560
10+
./images/5.bmp,135762,18.3286,6.53371,0.046023,4704,0.083972,5468
11+
./images/6.bmp,67859,13.3136,6.93491,0.020733,3996,0.04227,4396
12+
./images/7.bmp,14672,7.0781,7.43375,0.004675,3324,0.010701,3560
13+
./images/8.ppm,16384,35.8299,5.13361,0.005837,3332,0.008376,3752
14+
./images/9.png,4096,11.2305,7.10156,0.002261,3508,0.004068,3372
15+
./images/colombia.jpg,65536,31.7202,5.46239,0.019575,3980,0.02553,3736

data_improved_huffman_rgb.csv

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
image_name,image_size,cp,noobpp,ct,cm,dt,dm
2-
./images/10.ppm,786432,49.5157,4.03875,0.117471,4088,0.2858,10772
3-
./images/11.png,3072,50.6063,3.9515,0.001696,1852,0.001803,3360
4-
./images/12.png,6912,47.7629,4.17896,0.001664,1816,0.003063,3368
5-
./images/13.png,19200,54.9043,3.60766,0.003337,3424,0.006813,3844
6-
./images/14.png,768,25.4069,5.96745,0.000566,1900,0.001025,3328
7-
./images/2.bmp,1499520,4.61917,7.63047,0.249511,4832,0.911466,24172
8-
./images/3.bmp,1065024,7.70259,7.38379,0.211511,4492,0.714662,16792
9-
./images/4.bmp,551304,6.36351,7.49092,0.113906,3916,0.388578,11792
10-
./images/5.bmp,407286,12.0792,7.03366,0.118462,3864,0.316639,8820
11-
./images/6.bmp,203577,10.5826,7.15339,0.059825,3456,0.133702,6020
12-
./images/7.bmp,44016,6.80832,7.45533,0.008413,3468,0.029187,4120
13-
./images/8.ppm,49152,55.7571,3.53943,0.019978,3556,0.028375,3648
14-
./images/9.png,12288,7.95085,7.36393,0.003106,1816,0.007592,3668
15-
./images/colombia.jpg,196608,31.0046,5.51963,0.047177,3668,0.087444,5148
2+
./images/10.ppm,786432,49.5157,4.03875,0.160824,7976,0.329341,10660
3+
./images/11.png,3072,50.6063,3.9515,0.001109,1828,0.003072,3356
4+
./images/12.png,6912,47.7629,4.17896,0.001933,3496,0.003311,3364
5+
./images/13.png,19200,54.9043,3.60766,0.004604,3520,0.007036,3240
6+
./images/14.png,768,25.4069,5.96745,0.001084,1932,0.000974,3264
7+
./images/2.bmp,1499520,4.61917,7.63047,0.321557,17864,0.910429,24320
8+
./images/3.bmp,1065024,7.70259,7.38379,0.24424,13860,0.612253,16720
9+
./images/4.bmp,551304,6.36351,7.49092,0.142202,7924,0.326264,11676
10+
./images/5.bmp,407286,12.0792,7.03366,0.093459,7028,0.217495,8768
11+
./images/6.bmp,203577,10.5826,7.15339,0.065305,5008,0.117899,5892
12+
./images/7.bmp,44016,6.80832,7.45533,0.009605,3852,0.02946,4004
13+
./images/8.ppm,49152,55.7571,3.53943,0.007189,3640,0.021477,3752
14+
./images/9.png,12288,7.95085,7.36393,0.004063,3392,0.007427,3804
15+
./images/colombia.jpg,196608,31.0046,5.51963,0.041875,4800,0.069575,5100

figures/cm.jpg

2.13 KB
Loading

figures/cm_rgb.jpg

2.3 KB
Loading

huffman_encode_image.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ void preoder(pixel* root, string s){
6969
return;
7070
}
7171

72+
string code_str = "";
7273

7374
int main(int argc, char** argv)
7475
{
@@ -106,7 +107,6 @@ int main(int argc, char** argv)
106107
for(int k = 0; k < num_channel; ++k)
107108
image[i][j][k] = rgb_image[itr++];
108109

109-
stbi_image_free(rgb_image);
110110

111111
int hist[256] = {0};
112112

@@ -163,6 +163,7 @@ int main(int argc, char** argv)
163163
{
164164
compression_size += code[image[i][j][k]].size();
165165
out << code[image[i][j][k]];
166+
code_str+=code[image[i][j][k]];
166167
}
167168
}
168169
}

improved_huffman_encode_image.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void preoder(pixel* root, string s, int level, int parent){
8080
return;
8181
}
8282

83-
83+
string code_str = "";
8484

8585
int main(int argc, char** argv)
8686
{
@@ -177,19 +177,24 @@ int main(int argc, char** argv)
177177
if(f == 0){
178178
compression_size += codes[image[i][j][k]].code.size();
179179
out << codes[image[i][j][k]].code;
180+
code_str += codes[image[i][j][k]].code;
180181
}
181182
else if(codes[image[i][j][k]].parent == codes[last].parent){
182183
compression_size += 1;
183184
out << "1";
185+
code_str += "1";
184186
string code = codes[image[i][j][k]].code;
185187
out << code.substr(3, code.length());
188+
code_str += code.substr(3, code.length());
186189
compression_size += code.substr(3, code.length()).size();
187190
}
188191
else{
189192
compression_size += 1;
190193
out << "0";
194+
code_str += "0";
191195
compression_size += codes[image[i][j][k]].code.size();
192196
out << codes[image[i][j][k]].code;
197+
code_str += codes[image[i][j][k]].code;
193198
}
194199
if(codes[image[i][j][k]].parent == -1)
195200
f = 0;

script_huffman.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
for filename in ./images/*; do
33
g++ huffman_encode_image.cpp
4-
./a.out <<< "$filename" >> data_huffman.csv
4+
./a.out rgb <<< "$filename" >> data_huffman_rgb.csv
55
g++ huffman_decode_image.cpp
6-
./a.out >> data_huffman.csv
6+
./a.out >> data_huffman_rgb.csv
77
done

script_improved_huffman.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
for filename in ./images/*; do
33
g++ improved_huffman_encode_image.cpp
4-
./a.out <<< "$filename" >> data_improved_huffman.csv
4+
./a.out rgb <<< "$filename" >> data_improved_huffman_rgb.csv
55
g++ improved_huffman_decode_image.cpp
6-
./a.out >> data_improved_huffman.csv
7-
done
6+
./a.out >> data_improved_huffman_rgb.csv
7+
done

0 commit comments

Comments
 (0)