

%%
%
% Diplomova prace 
% Martin Krupicka
% FEL CVUT
% leden 2017
%
% Realizace JPEG XT dekodovani.
% 
% 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;

% TMO pouzity pri kodovani
TMO = 'Drago';

% parametr kvality zakladni vrstvy, zakladne jedna typicka hodnota,
% pokud bychom chteli vyuzit vice ruznych hodnot, nebyl by problem
% realizovat to prostrednictvim cyklu podobne jako u velkeho Q
q = 75;

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

%% realizace JPEG XT dekodovani 

for Q=Q_pocatek:Q_krok:Q_konec

for i=pocatecni_soubor:koncovy_soubor
    
    % nazvy souboru uzivanych v JPEG XT dekoderu ulozene do vlastnich
    % promennych - pro prehlednost, aby se vse nepsalo primo do prikazu
    % dekoderu
    HDR_dekodovany_vystup_dekoderu = ['out' int2str(i) '_HDR_DEKODOVANY_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '_' TMO '_q_' int2str(q) '_Q_' int2str(Q) '.pfm'];
    LDR_JPEG_XT_kodovany_vstup = ['out' int2str(i) '_LDR_slozeny_uniform_REFERENCE_bezeztratova_deltafstops_' num2str(krok_deltafstops) '_' TMO '_q_' int2str(q) '_Q_' int2str(Q) '.jpg'];

    % prikaz pro zavolani dekoderu JPEG XT s vhodnymi
    % vstupnimi parametry
    command = ['./jpeg ' LDR_JPEG_XT_kodovany_vstup ' ' HDR_dekodovany_vystup_dekoderu];
        
    % 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














