

%%
%
% Diplomova prace 
% Martin Krupicka
% FEL CVUT
% leden 2017
%
% Realizace JPEG XT kodovani.
% 
% Jak teoreticka, tak prakticka cast teto prace 
% vychazi z materialu vypracovanych v ramci magisterskeho
% predmetu Projekt individualni (A2M37IND) [1].
%
%
%%

close all;
clear all;
clc;

%% uzivatelska nastaveni

% nastaveni rozsahu poradovych cisel obrazku (index cisla v nazvu)
% Pokud nastavime stejne cislo v obou promennych, zpracuje cyklus jen jeden
% soubor. Jinak lze vice souboru najednou, pokud maji poradova cisla
% presne za sebou.
pocatecni_soubor = 1;
koncovy_soubor = 2; 

% expozicni rozdil mezi LDR snimky v puvodni LDR serii
krok_deltafstops = 5;

% pouzity TMO
TMO = 'Drago';

% kvalitativni parametr zakladni vrstvy, zakladne uzivana pevna hodnota,
% pripadne by slo snadno vyuzit cyklu jako v pripade velkeho Q
q = 75; 

% kvalitativni parametr rezidualni vrstvy, pokud chceme pracovat s vice 
% ruznymi hodnotami
Q_pocatek = 19;
Q_konec = 99;
Q_krok = 20;

%% realizace kodovani JPEG XT 

for Q=Q_pocatek:Q_krok:Q_konec

for i=pocatecni_soubor:koncovy_soubor
    
    % nazvy souboru uzivanych v JPEG XT koderu
    HDR_vstup_koderu = ['in' int2str(i) '_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '.pfm'];
    LDR_vystup_koderu = ['out' int2str(i) '_LDR_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '_' TMO '_q_' int2str(q) '_Q_' int2str(Q) '.jpg'];
    LDR_vstup_koderu = ['in' int2str(i) '_LDR_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '_' TMO '.ppm'];

    % prikaz pro prikazovy radek pro zavolani koderu JPEG XT s vhodnymi
    % vstupnimi parametry
    command = ['./jpeg -r -h -profile c -ldr ' LDR_vstup_koderu ' -q ' int2str(q) ' -Q ' int2str(Q) ' -rR 4 ' HDR_vstup_koderu ' ' LDR_vystup_koderu];
        
    % vykonani prikazu prostrednictvim funkce system
    % verze rozsirena o vystup samotneho kodeku, ktery se ulozi do promenne cmdout
    % uzitecna je i hodnota promenne status - pokud je rovna nule, prikaz probehl uspesne
    [status,cmdout] = system(command); 
        
end

    
end














