1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/usr/bin/octave
% SPDX-FileCopyrightText: 2023 Brian Woods
% SPDX-License-Identifier: GPL-2.0-or-later
graph_file = 'lossy_nearlossless_graph.png';
img_dir = 'lossy_nearlossless_images/';
varname = "nl";
var_values = {'000', '010', '020', '030', ...
'040', '050', '060', '070', ...
'080', '090', '100'};
files = {strrep(strcat(img_dir, 'PNG_01-VARN_VAR.webp'), 'VARN', varname), ...
strrep(strcat(img_dir, 'PNG_02-VARN_VAR.webp'), 'VARN', varname), ...
strrep(strcat(img_dir, 'PNG_03-VARN_VAR.webp'), 'VARN', varname), ...
strrep(strcat(img_dir, 'PNG_04-VARN_VAR.webp'), 'VARN', varname)};
files_len = length(files);
var_values_len = length(var_values);
results = zeros(files_len, var_values_len);
for i = 1:files_len
for j = 1:var_values_len;
filepath = strrep(files{i}, 'VAR', var_values{j});
[file, ~, ~] = stat(filepath);
results(i,j) = file.size;
end
end
% normalize
for i = 1:files_len
results(i,:) = results(i,:)/max(results(i,:));
end
var_values_idx = str2double(var_values);
f = figure('visible','off');
plot(var_values_idx, results(1,:),"b-");
hold on;
plot(var_values_idx, results(2,:), "g-");
plot(var_values_idx, results(3,:), "r-");
plot(var_values_idx, results(4,:), "c-");
xlabel ("near lossless preprocessing (0 is more visual compression)");
ylabel ("normalized file size");
h = legend ("PNG 01", "PNG 02", "PNG 03", "PNG 04");
legend(h, "location", "northeastoutside");
print(graph_file);
|