From 35eebb0429fc46d5d7c767c3abe71477beb0fba7 Mon Sep 17 00:00:00 2001 From: Apostolof Date: Sun, 17 Feb 2019 22:23:38 +0200 Subject: [PATCH] Fixes for level 1 --- tex/.gitignore | 5 + tex/main.aux | 65 --- tex/main.log | 996 -------------------------------------------- tex/main.out | 23 - tex/main.pdf | Bin 281295 -> 282028 bytes tex/main.synctex.gz | Bin 34667 -> 0 bytes tex/main.tex | 87 ++-- tex/main.toc | 23 - 8 files changed, 31 insertions(+), 1168 deletions(-) create mode 100644 tex/.gitignore delete mode 100644 tex/main.aux delete mode 100644 tex/main.log delete mode 100644 tex/main.out delete mode 100644 tex/main.synctex.gz delete mode 100644 tex/main.toc diff --git a/tex/.gitignore b/tex/.gitignore new file mode 100644 index 0000000..5151d68 --- /dev/null +++ b/tex/.gitignore @@ -0,0 +1,5 @@ +*.aux +*.log +*.out +*.gz +*.toc diff --git a/tex/main.aux b/tex/main.aux deleted file mode 100644 index 8a7959e..0000000 --- a/tex/main.aux +++ /dev/null @@ -1,65 +0,0 @@ -\relax -\providecommand\hyper@newdestlabel[2]{} -\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} -\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined -\global\let\oldcontentsline\contentsline -\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} -\global\let\oldnewlabel\newlabel -\gdef\newlabel#1#2{\newlabelxx{#1}#2} -\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} -\AtEndDocument{\ifx\hyper@anchor\@undefined -\let\contentsline\oldcontentsline -\let\newlabel\oldnewlabel -\fi} -\fi} -\global\let\hyper@last\relax -\gdef\HyperFirstAtBeginDocument#1{#1} -\providecommand*\HyPL@Entry[1]{} -\HyPL@Entry{0<>} -\@writefile{toc}{\contentsline {section}{\numberline {1}Εισαγωγή}{2}{section.1}} -\@writefile{toc}{\contentsline {section}{\numberline {2}1o Επίπεδο}{2}{section.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}\textit {function} frameType = SSC(frameT, nextFrameT, prevFrameType)}{2}{subsection.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}\textit {function} frameF = filterbank(frameT, frameType, winType)}{2}{subsection.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}\textit {function} frameT = iFilterbank(frameF, frameType, winType)}{3}{subsection.2.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}\textit {function} AACSeq1 = AACoder1(fNameIn)}{3}{subsection.2.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}\textit {function} x = iAACoder1(AACSeq1, fNameOut)}{3}{subsection.2.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}\textit {function} SNR = demoAAC1(fNameIn, fNameOut)}{3}{subsection.2.6}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Το frame στο πεδίο του χρόνου πριν τροφοδοτηθεί σε συναρτήσεις\relax }}{4}{figure.caption.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Μετάβαση στο πεδίο της συχνότητας με την συνάρτηση filterbank, συντελεστές MDCT \relax }}{4}{figure.caption.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Η επιστροφή στο πεδίου του χρόνου μέσω της συνάρτησης iFilterbank\relax }}{4}{figure.caption.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Κοινό διάγραμμα αρχικού σήματος με το σήμα εξόδου της iFilterbank\relax }}{4}{figure.caption.5}} -\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\newlabel{ref:1}{{4}{4}{Κοινό διάγραμμα αρχικού σήματος με το σήμα εξόδου της iFilterbank\relax }{figure.caption.5}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3}2o Επίπεδο}{5}{section.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}\textit {function} [frameFout, TNScoeffs] = TNS(frameFin, frameType)}{5}{subsection.3.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}\textit {function} frameFout = iTNS(frameFin, frameType, TNScoeffs)}{5}{subsection.3.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}\textit {function} AACSeq2 = AACoder2(fNameIn)}{5}{subsection.3.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}\textit {function} x = iAACoder2(AACSeq2, fNameOut)}{5}{subsection.3.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}\textit {function} SNR = demoAAC2(fNameIn, fNameOut)}{6}{subsection.3.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Κοινό διάγραμμα αρχικού σήματος με το σήμα εξόδου της iAACoder2\relax }}{6}{figure.caption.6}} -\newlabel{ref:2}{{5}{6}{Κοινό διάγραμμα αρχικού σήματος με το σήμα εξόδου της iAACoder2\relax }{figure.caption.6}{}} -\@writefile{toc}{\contentsline {section}{\numberline {4}3ο Επίπεδο}{6}{section.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}\textit {function} SMR = psycho(frameT, frameType, frameTprev1, frameTprev2) }{6}{subsection.4.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Κατώφλι ακουστότητας για το αριστερό κανάλι του 2ου frame\relax }}{7}{figure.caption.7}} -\newlabel{ref:6}{{6}{7}{Κατώφλι ακουστότητας για το αριστερό κανάλι του 2ου frame\relax }{figure.caption.7}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Signal to Mask Ratio για το αριστερό κανάλι του 2ου frame\relax }}{7}{figure.caption.8}} -\newlabel{ref:10}{{7}{7}{Signal to Mask Ratio για το αριστερό κανάλι του 2ου frame\relax }{figure.caption.8}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}\textit {function} [S, sfc, G] = AACquantizer(frameF, frameType, SMR)}{7}{subsection.4.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Συντελεστές MDCT πριν τον κβαντισμό\relax }}{8}{figure.caption.9}} -\newlabel{ref:3}{{8}{8}{Συντελεστές MDCT πριν τον κβαντισμό\relax }{figure.caption.9}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Επίπεδα κβαντισμού\relax }}{8}{figure.caption.10}} -\newlabel{ref:4}{{9}{8}{Επίπεδα κβαντισμού\relax }{figure.caption.10}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Κβαντισμένοι συντελεστές\relax }}{8}{figure.caption.11}} -\newlabel{ref:5}{{10}{8}{Κβαντισμένοι συντελεστές\relax }{figure.caption.11}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}\textit {function} frameF = iAACquantizer(S, sfc, G, frameType)}{8}{subsection.4.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}\textit {function} [huffSec, huffCodebook] = encodeHuff(coeffSec, huffLUT, forcedCodebook)}{9}{subsection.4.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}\textit {function} decCoeffs = decodeHuff(huffSec, huffCodebook, huffLUT)}{9}{subsection.4.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}\textit {function} AACSeq3 = AACoder3(fNameIn, fnameAACoded)}{9}{subsection.4.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}\textit {function} x = iAACoder3(AACSeq3, fNameOut)}{9}{subsection.4.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}\textit {function} [SNR, bitrate, compression] = demoAAC3(fNameIn, fNameOut, frameAACoded)}{9}{subsection.4.8}} -\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Αρχικό (μαύρο) και αποκωδικοποιημένο (κόκκινο) σήμα\relax }}{10}{figure.caption.13}} -\newlabel{ref:7}{{11}{10}{Αρχικό (μαύρο) και αποκωδικοποιημένο (κόκκινο) σήμα\relax }{figure.caption.13}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Διαφορά σημάτων σε κάθε δείγμα\relax }}{10}{figure.caption.14}} -\newlabel{ref:8}{{12}{10}{Διαφορά σημάτων σε κάθε δείγμα\relax }{figure.caption.14}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Απόλυτη διαφορά σημάτων\relax }}{11}{figure.caption.15}} -\newlabel{ref:9}{{13}{11}{Απόλυτη διαφορά σημάτων\relax }{figure.caption.15}{}} diff --git a/tex/main.log b/tex/main.log deleted file mode 100644 index 4ae5b67..0000000 --- a/tex/main.log +++ /dev/null @@ -1,996 +0,0 @@ -This is XeTeX, Version 3.14159265-2.6-0.99998 (TeX Live 2017/Debian) (preloaded format=xelatex 2018.11.1) 17 FEB 2019 21:58 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**main.tex -(./main.tex -LaTeX2e <2017-04-15> -Babel <3.18> and hyphenation patterns for 84 language(s) loaded. -(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls -Document Class: article 2014/09/29 v1.4h Standard LaTeX document class -(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo -File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option) -) -\c@part=\count79 -\c@section=\count80 -\c@subsection=\count81 -\c@subsubsection=\count82 -\c@paragraph=\count83 -\c@subparagraph=\count84 -\c@figure=\count85 -\c@table=\count86 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -) -(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty -Package: geometry 2010/09/12 v5.6 Page Geometry - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 2014/10/28 v1.15 key=value parser (DPC) -\KV@toks@=\toks14 -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty -Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty -Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) -Package ifvtex Info: VTeX not detected. -) -(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty -Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional -) -\Gm@cnth=\count87 -\Gm@cntv=\count88 -\c@Gm@tempcnt=\count89 -\Gm@bindingoffset=\dimen103 -\Gm@wd@mp=\dimen104 -\Gm@odd@mp=\dimen105 -\Gm@even@mp=\dimen106 -\Gm@layoutwidth=\dimen107 -\Gm@layoutheight=\dimen108 -\Gm@layouthoffset=\dimen109 -\Gm@layoutvoffset=\dimen110 -\Gm@dimlist=\toks15 -) -(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty -(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty -(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty -Package: expl3 2018/02/21 L3 programming layer (loader) - -(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex -Package: expl3 2018/02/21 L3 programming layer (code) -\c_max_int=\count90 -\l_tmpa_int=\count91 -\l_tmpb_int=\count92 -\g_tmpa_int=\count93 -\g_tmpb_int=\count94 -\g__intarray_font_int=\count95 -\g__prg_map_int=\count96 -\c_log_iow=\count97 -\l_iow_line_count_int=\count98 -\l__iow_line_target_int=\count99 -\l__iow_one_indent_int=\count100 -\l__iow_indent_int=\count101 -\c_zero_dim=\dimen111 -\c_max_dim=\dimen112 -\l_tmpa_dim=\dimen113 -\l_tmpb_dim=\dimen114 -\g_tmpa_dim=\dimen115 -\g_tmpb_dim=\dimen116 -\c_zero_skip=\skip43 -\c_max_skip=\skip44 -\l_tmpa_skip=\skip45 -\l_tmpb_skip=\skip46 -\g_tmpa_skip=\skip47 -\g_tmpb_skip=\skip48 -\c_zero_muskip=\muskip10 -\c_max_muskip=\muskip11 -\l_tmpa_muskip=\muskip12 -\l_tmpb_muskip=\muskip13 -\g_tmpa_muskip=\muskip14 -\g_tmpb_muskip=\muskip15 -\l_keys_choice_int=\count102 -\c__fp_leading_shift_int=\count103 -\c__fp_middle_shift_int=\count104 -\c__fp_trailing_shift_int=\count105 -\c__fp_big_leading_shift_int=\count106 -\c__fp_big_middle_shift_int=\count107 -\c__fp_big_trailing_shift_int=\count108 -\c__fp_Bigg_leading_shift_int=\count109 -\c__fp_Bigg_middle_shift_int=\count110 -\c__fp_Bigg_trailing_shift_int=\count111 -\l__sort_length_int=\count112 -\l__sort_min_int=\count113 -\l__sort_top_int=\count114 -\l__sort_max_int=\count115 -\l__sort_true_max_int=\count116 -\l__sort_block_int=\count117 -\l__sort_begin_int=\count118 -\l__sort_end_int=\count119 -\l__sort_A_int=\count120 -\l__sort_B_int=\count121 -\l__sort_C_int=\count122 -\l__tl_build_start_index_int=\count123 -\l__tl_build_index_int=\count124 -\l__tl_analysis_normal_int=\count125 -\l__tl_analysis_index_int=\count126 -\l__tl_analysis_nesting_int=\count127 -\l__tl_analysis_type_int=\count128 -\l__regex_internal_a_int=\count129 -\l__regex_internal_b_int=\count130 -\l__regex_internal_c_int=\count131 -\l__regex_balance_int=\count132 -\l__regex_group_level_int=\count133 -\l__regex_mode_int=\count134 -\c__regex_cs_in_class_mode_int=\count135 -\c__regex_cs_mode_int=\count136 -\l__regex_catcodes_int=\count137 -\l__regex_default_catcodes_int=\count138 -\c__regex_catcode_L_int=\count139 -\c__regex_catcode_O_int=\count140 -\c__regex_catcode_A_int=\count141 -\c__regex_all_catcodes_int=\count142 -\l__regex_show_lines_int=\count143 -\l__regex_min_state_int=\count144 -\l__regex_max_state_int=\count145 -\l__regex_left_state_int=\count146 -\l__regex_right_state_int=\count147 -\l__regex_capturing_group_int=\count148 -\l__regex_min_pos_int=\count149 -\l__regex_max_pos_int=\count150 -\l__regex_curr_pos_int=\count151 -\l__regex_start_pos_int=\count152 -\l__regex_success_pos_int=\count153 -\l__regex_curr_char_int=\count154 -\l__regex_curr_catcode_int=\count155 -\l__regex_last_char_int=\count156 -\l__regex_case_changed_char_int=\count157 -\l__regex_curr_state_int=\count158 -\l__regex_step_int=\count159 -\l__regex_min_active_int=\count160 -\l__regex_max_active_int=\count161 -\l__regex_replacement_csnames_int=\count162 -\l__regex_match_count_int=\count163 -\l__regex_min_submatch_int=\count164 -\l__regex_submatch_int=\count165 -\l__regex_zeroth_submatch_int=\count166 -\g__regex_trace_regex_int=\count167 -\c_empty_box=\box26 -\l_tmpa_box=\box27 -\l_tmpb_box=\box28 -\g_tmpa_box=\box29 -\g_tmpb_box=\box30 -\l__box_top_dim=\dimen117 -\l__box_bottom_dim=\dimen118 -\l__box_left_dim=\dimen119 -\l__box_right_dim=\dimen120 -\l__box_top_new_dim=\dimen121 -\l__box_bottom_new_dim=\dimen122 -\l__box_left_new_dim=\dimen123 -\l__box_right_new_dim=\dimen124 -\l__box_internal_box=\box31 -\l__coffin_internal_box=\box32 -\l__coffin_internal_dim=\dimen125 -\l__coffin_offset_x_dim=\dimen126 -\l__coffin_offset_y_dim=\dimen127 -\l__coffin_x_dim=\dimen128 -\l__coffin_y_dim=\dimen129 -\l__coffin_x_prime_dim=\dimen130 -\l__coffin_y_prime_dim=\dimen131 -\c_empty_coffin=\box33 -\l__coffin_aligned_coffin=\box34 -\l__coffin_aligned_internal_coffin=\box35 -\l_tmpa_coffin=\box36 -\l_tmpb_coffin=\box37 -\l__coffin_display_coffin=\box38 -\l__coffin_display_coord_coffin=\box39 -\l__coffin_display_pole_coffin=\box40 -\l__coffin_display_offset_dim=\dimen132 -\l__coffin_display_x_dim=\dimen133 -\l__coffin_display_y_dim=\dimen134 -\l__coffin_bounding_shift_dim=\dimen135 -\l__coffin_left_corner_dim=\dimen136 -\l__coffin_right_corner_dim=\dimen137 -\l__coffin_bottom_corner_dim=\dimen138 -\l__coffin_top_corner_dim=\dimen139 -\l__coffin_scaled_total_height_dim=\dimen140 -\l__coffin_scaled_width_dim=\dimen141 -) -(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def -File: l3xdvidpfmx.def 2017/03/18 v L3 Experimental driver: xdvipdfmx -\g__driver_image_int=\count168 -\l__driver_tmp_box=\box41 -)) -Package: xparse 2018/02/21 L3 Experimental document command parser -\l__xparse_current_arg_int=\count169 -\g__xparse_grabber_int=\count170 -\l__xparse_m_args_int=\count171 -\l__xparse_mandatory_args_int=\count172 -\l__xparse_v_nesting_int=\count173 -) -Package: fontspec 2017/11/09 v2.6g Font selection for XeLaTeX and LuaLaTeX - -(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty -Package: fontspec-xetex 2017/11/09 v2.6g Font selection for XeLaTeX and LuaLaTe -X -\l__fontspec_script_int=\count174 -\l__fontspec_language_int=\count175 -\l__fontspec_strnum_int=\count176 -\l__fontspec_tmp_int=\count177 -\l__fontspec_em_int=\count178 -\l__fontspec_emdef_int=\count179 -\l__fontspec_strong_int=\count180 -\l__fontspec_strongdef_int=\count181 -\l__fontspec_tmpa_dim=\dimen142 -\l__fontspec_tmpb_dim=\dimen143 -\l__fontspec_tmpc_dim=\dimen144 -\g__file_internal_ior=\read1 - -(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2017/04/05 v2.0i Standard LaTeX package - -(/usr/share/texlive/texmf-dist/tex/latex/base/tuenc.def -File: tuenc.def 2017/04/05 v2.0i Standard LaTeX file -LaTeX Font Info: Redeclaring font encoding TU on input line 82. -)) -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \fontspec with sig. 'O{}mO{}' on line 542. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setmainfont with sig. 'O{}mO{}' on line 546. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setsansfont with sig. 'O{}mO{}' on line 550. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setmonofont with sig. 'O{}mO{}' on line 554. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setmathrm with sig. 'O{}mO{}' on line 558. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setboldmathrm with sig. 'O{}mO{}' on line 562. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setmathsf with sig. 'O{}mO{}' on line 566. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setmathtt with sig. 'O{}mO{}' on line 570. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \setromanfont with sig. 'O{}mO{}' on line 574. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newfontfamily with sig. 'mO{}mO{}' on line 578. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newfontface with sig. 'mO{}mO{}' on line 582. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \defaultfontfeatures with sig. 't+om' on line 586. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \addfontfeatures with sig. 'm' on line 590. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \addfontfeature with sig. 'm' on line 594. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newfontfeature with sig. 'mm' on line 598. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newAATfeature with sig. 'mmmm' on line 602. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newopentypefeature with sig. 'mmm' on line 606. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newICUfeature with sig. 'mmm' on line 610. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \aliasfontfeature with sig. 'mm' on line 614. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \aliasfontfeatureoption with sig. 'mmm' on line 618. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newfontscript with sig. 'mm' on line 622. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \newfontlanguage with sig. 'mm' on line 626. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \DeclareFontsExtensions with sig. 'm' on line 630. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \IfFontFeatureActiveTF with sig. 'mmm' on line 634. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \EncodingCommand with sig. 'mO{}m' on line 3632. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \EncodingAccent with sig. 'mm' on line 3638. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \EncodingSymbol with sig. 'mm' on line 3644. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \EncodingComposite with sig. 'mmm' on line 3650. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \EncodingCompositeCommand with sig. 'mmm' on line 3656. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \DeclareUnicodeEncoding with sig. 'mm' on line 3681. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \UndeclareSymbol with sig. 'm' on line 3687. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \UndeclareAccent with sig. 'm' on line 3693. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \UndeclareCommand with sig. 'm' on line 3699. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \UndeclareComposite with sig. 'mm' on line 3706. -................................................. - -(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg) -LaTeX Info: Redefining \itshape on input line 3891. -LaTeX Info: Redefining \slshape on input line 3896. -LaTeX Info: Redefining \scshape on input line 3901. -LaTeX Info: Redefining \upshape on input line 3906. -LaTeX Info: Redefining \em on input line 3936. -LaTeX Info: Redefining \emph on input line 3961. -LaTeX Info: Redefining \- on input line 4015. -................................................. -. LaTeX info: "xparse/redefine-command" -. -. Redefining command \oldstylenums with sig. 'm' on line 4110. -................................................. -................................................. -. LaTeX info: "xparse/define-command" -. -. Defining command \liningnums with sig. 'm' on line 4114. -................................................. -)) -(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count182 -\float@exts=\toks16 -\float@box=\box42 -\@float@everytoks=\toks17 -\@floatcapt=\box43 -) -(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty -Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) - -(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty -Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) -Package caption3 Info: TeX engine: e-TeX on input line 67. -\captionmargin=\dimen145 -\captionmargin@=\dimen146 -\captionwidth=\dimen147 -\caption@tempdima=\dimen148 -\caption@indent=\dimen149 -\caption@parindent=\dimen150 -\caption@hangindent=\dimen151 -) -\c@ContinuedFloat=\count183 -Package caption Info: float package is loaded. -) -(/usr/share/texlive/texmf-dist/tex/latex/caption/subcaption.sty -Package: subcaption 2016/05/22 v1.1-161 Sub-captions (AR) -\c@subfigure=\count184 -\c@subtable=\count185 -) -(/usr/share/texlive/texmf-dist/tex/xelatex/xgreek/xgreek.sty -File: xgreek.sty 2018/02/16 v3.0.1 Package `xgreek.sty' - -Package `xgreek' version 3.0.1 by Apostolos Syropoulos -\@attic@num=\count186 -) -(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footer -s -\f@nch@headwidth=\skip49 -\f@nch@O@elh=\skip50 -\f@nch@O@erh=\skip51 -\f@nch@O@olh=\skip52 -\f@nch@O@orh=\skip53 -\f@nch@O@elf=\skip54 -\f@nch@O@erf=\skip55 -\f@nch@O@olf=\skip56 -\f@nch@O@orf=\skip57 -) -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty -Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) - - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty -Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) -Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) -Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) -Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) -Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -Package hobsub Info: Skipping package `ifvtex' (already loaded). -Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) -Package hobsub Info: Skipping package `ifpdf' (already loaded). -Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) -Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) -Package: pdftexcmds 2018/01/21 v0.26 Utility functions of pdfTeX for LuaTeX (HO -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: pdfTeX >= 1.30 not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode not found. -Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) -Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO -) -Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) -Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) -) -Package hobsub Info: Skipping package `hobsub' (already loaded). -Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) -Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) -Package: xcolor-patch 2016/05/16 xcolor patch -Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) -Package atveryend Info: \enddocument detected (standard20110627). -Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) -Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) -Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) -) -\@linkdim=\dimen152 -\Hy@linkcounter=\count187 -\Hy@pagecounter=\count188 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) -) -\Hy@SavedSpaceFactor=\count189 - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg -File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive -) -Package hyperref Info: Hyper figures OFF on input line 4509. -Package hyperref Info: Link nesting OFF on input line 4514. -Package hyperref Info: Hyper index ON on input line 4517. -Package hyperref Info: Plain pages OFF on input line 4524. -Package hyperref Info: Backreferencing OFF on input line 4529. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4762. -\c@Hy@tempcnt=\count190 - -(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip16 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 5115. -\XeTeXLinkMargin=\dimen153 -\Fld@menulength=\count191 -\Field@Width=\dimen154 -\Fld@charsize=\dimen155 -Package hyperref Info: Hyper figures OFF on input line 6369. -Package hyperref Info: Link nesting OFF on input line 6374. -Package hyperref Info: Hyper index ON on input line 6377. -Package hyperref Info: backreferencing OFF on input line 6384. -Package hyperref Info: Link coloring OFF on input line 6389. -Package hyperref Info: Link coloring with OCG OFF on input line 6394. -Package hyperref Info: PDF/A mode OFF on input line 6399. -LaTeX Info: Redefining \ref on input line 6439. -LaTeX Info: Redefining \pageref on input line 6443. -\Hy@abspage=\count192 -\c@Item=\count193 -\c@Hfootnote=\count194 -) -Package hyperref Info: Driver (autodetected): hxetex. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hxetex.def -File: hxetex.def 2018/02/06 v6.86b Hyperref driver for XeTeX - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/stringenc.sty -Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO -) -) -\pdfm@box=\box44 -\c@Hy@AnnotLevel=\count195 -\HyField@AnnotCount=\count196 -\Fld@listcount=\count197 -\c@bookmark@seq@number=\count198 - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty -Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) -Package rerunfilecheck Info: Feature \pdfmdfivesum is not available -(rerunfilecheck) (e.g. pdfTeX or LuaTeX with package `pdftexcmds'). - -(rerunfilecheck) Therefore file contents cannot be checked efficien -tly -(rerunfilecheck) and the loading of the package is aborted. -) -\Hy@SectionHShift=\skip58 -) -(/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty -Package: enumitem 2011/09/28 v3.5.2 Customized lists -\labelindent=\skip59 -\enit@outerparindent=\dimen156 -\enit@toks=\toks18 -\enit@inbox=\box45 -\enitdp@description=\count199 -) -(/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty -LaTeX Info: Redefining \cite on input line 302. -LaTeX Info: Redefining \nocite on input line 332. -Package: cite 2015/02/27 v 5.5 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 2016/01/03 v1.10 sin cos tan (DPC) -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg -File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration -) -Package graphics Info: Driver file: xetex.def on input line 99. - -(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/xetex.def -File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex -)) -\Gin@req@height=\dimen157 -\Gin@req@width=\dimen158 -) -(/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty -\UL@box=\box46 -\UL@hyphenbox=\box47 -\UL@skip=\skip60 -\UL@hook=\toks19 -\UL@height=\dimen159 -\UL@pe=\count266 -\UL@pixel=\dimen160 -\ULC@box=\box48 -Package: ulem 2012/05/18 -\ULdepth=\dimen161 -) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2017/09/02 v2.17a AMS math features -\@mathmargin=\skip61 - -For additional information on amsmath, use the `?' option. -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2000/06/29 v2.01 AMS text - -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 generic functions -\@emptytoks=\toks20 -\ex@=\dimen162 -)) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d Bold Symbols -\pmbraise@=\dimen163 -) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 2016/03/08 v2.02 operator names -) -\inf@bad=\count267 -LaTeX Info: Redefining \frac on input line 213. -\uproot@=\count268 -\leftroot@=\count269 -LaTeX Info: Redefining \overline on input line 375. -\classnum@=\count270 -\DOTSCASE@=\count271 -LaTeX Info: Redefining \ldots on input line 472. -LaTeX Info: Redefining \dots on input line 475. -LaTeX Info: Redefining \cdots on input line 596. -\Mathstrutbox@=\box49 -\strutbox@=\box50 -\big@size=\dimen164 -LaTeX Font Info: Redeclaring font encoding OML on input line 712. -LaTeX Font Info: Redeclaring font encoding OMS on input line 713. -\macc@depth=\count272 -\c@MaxMatrixCols=\count273 -\dotsspace@=\muskip17 -\c@parentequation=\count274 -\dspbrk@lvl=\count275 -\tag@help=\toks21 -\row@=\count276 -\column@=\count277 -\maxfields@=\count278 -\andhelp@=\toks22 -\eqnshift@=\dimen165 -\alignsep@=\dimen166 -\tagshift@=\dimen167 -\tagwidth@=\dimen168 -\totwidth@=\dimen169 -\lineht@=\dimen170 -\@envbody=\toks23 -\multlinegap=\skip62 -\multlinetaggap=\skip63 -\mathdisplay@stack=\toks24 -LaTeX Info: Redefining \[ on input line 2817. -LaTeX Info: Redefining \] on input line 2818. -) -\g__fontspec_family_Lato_int=\count279 -................................................. -. fontspec info: "defining-font" -. -. Font family 'Lato(0)' created for font 'Lato' with options [Ligatures=TeX]. -. -. This font family consists of the following NFSS series/shapes: -. -. - 'normal' (m/n) with NFSS spec.: -. <->"Lato/OT:script=latn;language=DFLT;mapping=tex-text;" -. - 'small caps' (m/sc) with NFSS spec.: -. - 'bold' (bx/n) with NFSS spec.: -. <->"Lato/B/OT:script=latn;language=DFLT;mapping=tex-text;" -. - 'bold small caps' (bx/sc) with NFSS spec.: -. - 'italic' (m/it) with NFSS spec.: -. <->"Lato/I/OT:script=latn;language=DFLT;mapping=tex-text;" -. - 'italic small caps' (m/itsc) with NFSS spec.: -. - 'bold italic' (bx/it) with NFSS spec.: -. <->"Lato/BI/OT:script=latn;language=DFLT;mapping=tex-text;" -. - 'bold italic small caps' (bx/itsc) with NFSS spec.: -................................................. -LaTeX Info: Redefining \rmfamily on input line 23. -\g__fontspec_family_Consolas_int=\count280 -................................................. -. fontspec info: "defining-font" -. -. Font family 'Consolas(0)' created for font 'Consolas' with options -. [WordSpace={1,0,0},HyphenChar=None,PunctuationSpace=WordSpace]. -. -. This font family consists of the following NFSS series/shapes: -. -. - 'normal' (m/n) with NFSS spec.: -. <->"Consolas/OT:script=latn;language=DFLT;" -. - 'small caps' (m/sc) with NFSS spec.: -. and font adjustment code: -. \fontdimen 2\font =1\fontdimen 2\font \fontdimen 3\font =0\fontdimen 3\font -. \fontdimen 4\font =0\fontdimen 4\font \fontdimen 7\font =0\fontdimen 2\font -. \tex_hyphenchar:D \font =-1\scan_stop: -. - 'bold' (bx/n) with NFSS spec.: -. <->"Consolas/B/OT:script=latn;language=DFLT;" -. - 'bold small caps' (bx/sc) with NFSS spec.: -. and font adjustment code: -. \fontdimen 2\font =1\fontdimen 2\font \fontdimen 3\font =0\fontdimen 3\font -. \fontdimen 4\font =0\fontdimen 4\font \fontdimen 7\font =0\fontdimen 2\font -. \tex_hyphenchar:D \font =-1\scan_stop: -. - 'italic' (m/it) with NFSS spec.: -. <->"Consolas/I/OT:script=latn;language=DFLT;" -. - 'italic small caps' (m/itsc) with NFSS spec.: -. and font adjustment code: -. \fontdimen 2\font =1\fontdimen 2\font \fontdimen 3\font =0\fontdimen 3\font -. \fontdimen 4\font =0\fontdimen 4\font \fontdimen 7\font =0\fontdimen 2\font -. \tex_hyphenchar:D \font =-1\scan_stop: -. - 'bold italic' (bx/it) with NFSS spec.: -. <->"Consolas/BI/OT:script=latn;language=DFLT;" -. - 'bold italic small caps' (bx/itsc) with NFSS spec.: -. and font adjustment code: -. \fontdimen 2\font =1\fontdimen 2\font \fontdimen 3\font =0\fontdimen 3\font -. \fontdimen 4\font =0\fontdimen 4\font \fontdimen 7\font =0\fontdimen 2\font -. \tex_hyphenchar:D \font =-1\scan_stop: -................................................. -LaTeX Info: Redefining \ttfamily on input line 24. -Package hyperref Info: Option `colorlinks' set `true' on input line 39. - (./main.aux - -LaTeX Warning: Label `ref:9' multiply defined. - -) -\openout1 = `main.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 42. -LaTeX Font Info: ... okay on input line 42. - -*geometry* driver: auto-detecting -*geometry* detected driver: xetex -*geometry* verbose mode - [ preamble ] result: -* driver: xetex -* paper: a4paper -* layout: -* layoutoffset:(h,v)=(0.0pt,0.0pt) -* modes: -* h-part:(L,W,R)=(62.59596pt, 472.31595pt, 62.59596pt) -* v-part:(T,H,B)=(71.13188pt, 702.78308pt, 71.13188pt) -* \paperwidth=597.50787pt -* \paperheight=845.04684pt -* \textwidth=472.31595pt -* \textheight=702.78308pt -* \oddsidemargin=-9.67403pt -* \evensidemargin=-9.67403pt -* \topmargin=-38.1381pt -* \headheight=14.0pt -* \headsep=25.0pt -* \topskip=11.0pt -* \footskip=30.0pt -* \marginparwidth=59.0pt -* \marginparsep=10.0pt -* \columnsep=10.0pt -* \skip\footins=10.0pt plus 4.0pt minus 2.0pt -* \hoffset=0.0pt -* \voffset=0.0pt -* \mag=1000 -* \@twocolumnfalse -* \@twosidefalse -* \@mparswitchfalse -* \@reversemarginfalse -* (1in=72.27pt=25.4mm, 1cm=28.453pt) - -................................................. -. fontspec info: "setup-math" -. -. Adjusting the maths setup (use [no-math] to avoid this). -................................................. -\symlegacymaths=\mathgroup4 -LaTeX Font Info: Overwriting symbol font `legacymaths' in version `bold' -(Font) OT1/cmr/m/n --> OT1/cmr/bx/n on input line 42. -LaTeX Font Info: Redeclaring math accent \acute on input line 42. -LaTeX Font Info: Redeclaring math accent \grave on input line 42. -LaTeX Font Info: Redeclaring math accent \ddot on input line 42. -LaTeX Font Info: Redeclaring math accent \tilde on input line 42. -LaTeX Font Info: Redeclaring math accent \bar on input line 42. -LaTeX Font Info: Redeclaring math accent \breve on input line 42. -LaTeX Font Info: Redeclaring math accent \check on input line 42. -LaTeX Font Info: Redeclaring math accent \hat on input line 42. -LaTeX Font Info: Redeclaring math accent \dot on input line 42. -LaTeX Font Info: Redeclaring math accent \mathring on input line 42. -LaTeX Font Info: Redeclaring math symbol \Gamma on input line 42. -LaTeX Font Info: Redeclaring math symbol \Delta on input line 42. -LaTeX Font Info: Redeclaring math symbol \Theta on input line 42. -LaTeX Font Info: Redeclaring math symbol \Lambda on input line 42. -LaTeX Font Info: Redeclaring math symbol \Xi on input line 42. -LaTeX Font Info: Redeclaring math symbol \Pi on input line 42. -LaTeX Font Info: Redeclaring math symbol \Sigma on input line 42. -LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 42. -LaTeX Font Info: Redeclaring math symbol \Phi on input line 42. -LaTeX Font Info: Redeclaring math symbol \Psi on input line 42. -LaTeX Font Info: Redeclaring math symbol \Omega on input line 42. -LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 42. -LaTeX Font Info: Redeclaring symbol font `operators' on input line 42. -LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font -(Font) `operators' in the math version `normal' on input line 42. -LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/cmr/m/n --> TU/Lato(0)/m/n on input line 42. -LaTeX Font Info: Encoding `OT1' has changed to `TU' for symbol font -(Font) `operators' in the math version `bold' on input line 42. -LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/cmr/bx/n --> TU/Lato(0)/m/n on input line 42. -LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) TU/Lato(0)/m/n --> TU/Lato(0)/m/n on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' -(Font) OT1/cmr/m/it --> TU/Lato(0)/m/it on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' -(Font) OT1/cmr/bx/n --> TU/Lato(0)/bx/n on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' -(Font) OT1/cmss/m/n --> TU/lmss/m/n on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' -(Font) OT1/cmtt/m/n --> TU/Consolas(0)/m/n on input line 42. -LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) TU/Lato(0)/m/n --> TU/Lato(0)/bx/n on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) OT1/cmr/bx/it --> TU/Lato(0)/bx/it on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) OT1/cmss/bx/n --> TU/lmss/bx/n on input line 42. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) OT1/cmtt/m/n --> TU/Consolas(0)/bx/n on input line 42. -Package caption Info: Begin \AtBeginDocument code. -Package caption Info: hyperref package is loaded. -Package caption Info: End \AtBeginDocument code. -\AtBeginShipoutBox=\box51 -(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty -Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC) -LaTeX Info: Redefining \color on input line 86. - -(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg -File: color.cfg 2016/01/02 v1.6 sample color configuration -) -Package color Info: Driver file: xetex.def on input line 147. -) -Package hyperref Info: Link coloring ON on input line 42. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty -Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) -) -\c@section@level=\count281 -) -LaTeX Info: Redefining \ref on input line 42. -LaTeX Info: Redefining \pageref on input line 42. -LaTeX Info: Redefining \nameref on input line 42. - -(./main.out) (./main.out) -\@outlinefile=\write3 -\openout3 = `main.out'. - - (./main.toc) -\tf@toc=\write4 -\openout4 = `main.toc'. - - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/se-ascii-print.def -File: se-ascii-print.def 2016/05/16 v1.11 stringenc: Printable ASCII characters - -) -[1 - -] [2] -File: figures/frame_2_original.eps Graphic file (type eps) - - [3] -File: figures/frame_2_left_filtered.eps Graphic file (type eps) - -File: figures/frame_2_left_iFiltered.eps Graphic file (type eps) - -File: figures/frame_2_comparison_filtered_and_ifiltered.eps Graphic file (type -eps) - - [4] -Overfull \hbox (4.94525pt too wide) in paragraph at lines 158--160 -\TU/Lato(0)/m/n/10.95 με την ενέργεια της μπάντας στην οποία ανήκουν. Με την βο -ήθεια της συνάρτησης lpc του MATLAB, - [] - -[5] -File: figures/frame_2_comparison_iTNS.eps Graphic file (type eps) - -File: figures/psycho_thres_frame2_right.eps Graphic file (type eps) - - [6] -File: figures/smrl.eps Graphic file (type eps) - -File: figures/frame_2_mdct_coef_before.eps Graphic file (type eps) - - [7] -File: figures/quant_levels.eps Graphic file (type eps) - -File: figures/frame_2_SL.eps Graphic file (type eps) - - [8] -Overfull \hbox (20.04814pt too wide) in paragraph at lines 294--294 -[]\TU/Lato(0)/bx/it/12 function \TU/Lato(0)/bx/n/12 [SNR, bitrate, compression] - = demoAAC3(fNameIn, fNameOut, frameAACoded) - [] - - -LaTeX Warning: No positions in optional float specifier. - Default added (so using `tbp') on input line 301. - -File: figures/decoded_encoded.eps Graphic file (type eps) - -[9] -File: figures/difference.eps Graphic file (type eps) - -File: figures/bar_abs_dif.eps Graphic file (type eps) - - [10] -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 341. - [11] -Package atveryend Info: Empty hook `AfterLastShipout' on input line 341. - (./main.aux) -Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 341. -Package atveryend Info: Empty hook `AtEndAfterFileList' on input line 341. - - -LaTeX Warning: There were multiply-defined labels. - -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 341. - ) -Here is how much of TeX's memory you used: - 20864 strings out of 493007 - 394202 string characters out of 6136719 - 497564 words of memory out of 5000000 - 24676 multiletter control sequences out of 15000+600000 - 536860 words of font info for 71 fonts, out of 8000000 for 9000 - 1348 hyphenation exceptions out of 8191 - 39i,11n,65p,10407b,357s stack positions out of 5000i,500n,10000p,200000b,80000s - -Output written on main.pdf (11 pages). diff --git a/tex/main.out b/tex/main.out deleted file mode 100644 index 44c5663..0000000 --- a/tex/main.out +++ /dev/null @@ -1,23 +0,0 @@ -\BOOKMARK [1][-]{section.1}{Εισαγωγή}{}% 1 -\BOOKMARK [1][-]{section.2}{1o Επίπεδο}{}% 2 -\BOOKMARK [2][-]{subsection.2.1}{function\040frameType\040=\040SSC\(frameT,\040nextFrameT,\040prevFrameType\)}{section.2}% 3 -\BOOKMARK [2][-]{subsection.2.2}{function\040frameF\040=\040filterbank\(frameT,\040frameType,\040winType\)}{section.2}% 4 -\BOOKMARK [2][-]{subsection.2.3}{function\040frameT\040=\040iFilterbank\(frameF,\040frameType,\040winType\)}{section.2}% 5 -\BOOKMARK [2][-]{subsection.2.4}{function\040AACSeq1\040=\040AACoder1\(fNameIn\)}{section.2}% 6 -\BOOKMARK [2][-]{subsection.2.5}{function\040x\040=\040iAACoder1\(AACSeq1,\040fNameOut\)}{section.2}% 7 -\BOOKMARK [2][-]{subsection.2.6}{function\040SNR\040=\040demoAAC1\(fNameIn,\040fNameOut\)}{section.2}% 8 -\BOOKMARK [1][-]{section.3}{2o Επίπεδο}{}% 9 -\BOOKMARK [2][-]{subsection.3.1}{function\040[frameFout,\040TNScoeffs]\040=\040TNS\(frameFin,\040frameType\)}{section.3}% 10 -\BOOKMARK [2][-]{subsection.3.2}{function\040frameFout\040=\040iTNS\(frameFin,\040frameType,\040TNScoeffs\)}{section.3}% 11 -\BOOKMARK [2][-]{subsection.3.3}{function\040AACSeq2\040=\040AACoder2\(fNameIn\)}{section.3}% 12 -\BOOKMARK [2][-]{subsection.3.4}{function\040x\040=\040iAACoder2\(AACSeq2,\040fNameOut\)}{section.3}% 13 -\BOOKMARK [2][-]{subsection.3.5}{function\040SNR\040=\040demoAAC2\(fNameIn,\040fNameOut\)}{section.3}% 14 -\BOOKMARK [1][-]{section.4}{3ο Επίπεδο}{}% 15 -\BOOKMARK [2][-]{subsection.4.1}{function\040SMR\040=\040psycho\(frameT,\040frameType,\040frameTprev1,\040frameTprev2\)\040}{section.4}% 16 -\BOOKMARK [2][-]{subsection.4.2}{function\040[S,\040sfc,\040G]\040=\040AACquantizer\(frameF,\040frameType,\040SMR\)}{section.4}% 17 -\BOOKMARK [2][-]{subsection.4.3}{function\040frameF\040=\040iAACquantizer\(S,\040sfc,\040G,\040frameType\)}{section.4}% 18 -\BOOKMARK [2][-]{subsection.4.4}{function\040[huffSec,\040huffCodebook]\040=\040encodeHuff\(coeffSec,\040huffLUT,\040forcedCodebook\)}{section.4}% 19 -\BOOKMARK [2][-]{subsection.4.5}{function\040decCoeffs\040=\040decodeHuff\(huffSec,\040huffCodebook,\040huffLUT\)}{section.4}% 20 -\BOOKMARK [2][-]{subsection.4.6}{function\040AACSeq3\040=\040AACoder3\(fNameIn,\040fnameAACoded\)}{section.4}% 21 -\BOOKMARK [2][-]{subsection.4.7}{function\040x\040=\040iAACoder3\(AACSeq3,\040fNameOut\)}{section.4}% 22 -\BOOKMARK [2][-]{subsection.4.8}{function\040[SNR,\040bitrate,\040compression]\040=\040demoAAC3\(fNameIn,\040fNameOut,\040frameAACoded\)}{section.4}% 23 diff --git a/tex/main.pdf b/tex/main.pdf index d5c3ef665e07197cc9e15baf98f9e04a17a27d03..60e244e390840e5f3f0c804042827d22de8e0d5f 100644 GIT binary patch delta 48402 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

>-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 diff --git a/tex/main.synctex.gz b/tex/main.synctex.gz deleted file mode 100644 index 676206110ce056d8050bbfbaf9e57aac668859c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34667 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 diff --git a/tex/main.tex b/tex/main.tex index cdae21d..2873998 100644 --- a/tex/main.tex +++ b/tex/main.tex @@ -26,7 +26,7 @@ \title{Συστήματα Πολυμέσων και Εικονική Πραγματικότητα\\ Εργασία 2018-2019} \author{Χριστίνα Θεοδωρίδου - 8055\\ - Aποστόλης Φανάκης- 8261} + Απόστολος Φανάκης - 8261} \date{\today} \pagestyle{fancy} @@ -54,18 +54,18 @@ \subsection{\textit{function} frameType = SSC(frameT, nextFrameT, prevFrameType)} - Η πρώτη συνάρτηση που υλοποιήθηκε αφορά την βαθμίδα Sequence Segmentation Control, και σκοπός της είναι να καθορίσει τον τύπο ενός frame. Το πρώτο όρισμά της είναι ένας πίνακας 2048x2 , που περιέχει 2 κανάλια ήχου στο χρόνο, του frame του οποίου τον τύπο θέλουμε να διαπιστώσουμε. Αντίστοιχα, το δεύτερο όρισμα περιέχει τα κανάλια του του αμέσως επόμενου frame ενώ το τρίτο, αφορά τον τύπο του αμέσως προηγούμενου frame, ο οποίος μπορεί να πάρει 1 από τις αλφαριθμητικές τιμές "OLS" (ONLY\_LONG\_SEQUENCE), "LSS" (LONG\_START\_SEQUENCE), "ESH" (EIGHT\_SHORT\_SEQUENCE) και "LPS" (LONG\_STOP\_SEQUENCE) , ανάλογα το περιεχόμενο του. + Η πρώτη συνάρτηση που υλοποιήθηκε αφορά την βαθμίδα Sequence Segmentation Control, και σκοπός της είναι να καθορίσει τον τύπο ενός frame. Το πρώτο όρισμά της είναι ένας πίνακας 2048x2 , που περιέχει 2 κανάλια ήχου στο χρόνο, του frame του οποίου τον τύπο θέλουμε να διαπιστώσουμε. Αντίστοιχα, το δεύτερο όρισμα περιέχει τα κανάλια του του αμέσως επόμενου frame ενώ το τρίτο, αφορά τον τύπο του αμέσως προηγούμενου frame, ο οποίος μπορεί να πάρει 1 από τις αλφαριθμητικές τιμές ``OLS'' (ONLY\_LONG\_SEQUENCE), ``LSS'' (LONG\_START\_SEQUENCE), ``ESH'' (EIGHT\_SHORT\_SEQUENCE) και ``LPS'' (LONG\_STOP\_SEQUENCE) , ανάλογα το περιεχόμενο του. Tα frame τα οποία είναι στατικά χαρακτηρίζονται ως 'OLS' ενώ τα frames με διακυμάνσεις ως 'ESH'. Τα μεταβατικά παράθυρα μεταξύ αυτών των κύριων κατηγοριών είναι τα 'LSS' και 'LPS'. Ο τρόπος με τον οποίον γίνεται η κατηγοριοποίηση περιγράφεται αναλυτικά στο πρότυπο του AAC. Γενικά, με τα βήματα που ακολουθούνται εξάγεται αρχικά ένα συμπέρασμα για κάθε κανάλι ξεχωριστά και έπειτα με μια συνδυαστική λογική που επίσης περιγράφεται στο πρότυπο, γίνεται ο συνδυασμός των αποφάσεων για να προκύψει ο τελικός τύπος του παραθύρου. % εξετάζεται το αμέσως επόμενο frame, δηλαδή το frame $i+1$. Τα βήματα που ακολουθούνται είναι τα εξής: % \begin{enumerate} -% \item Τα δείγματά του, παιρνούν από το υψιπερατό φίλτρο +% \item Τα δείγματά του, περνούν από το υψιπερατό φίλτρο % $ H(z) = \frac{0.7548 - 0.7548z^{-1}}{1- 0.5095z^{-1}}$, με την βοήθεια της συνάρτησης filter. -% \item Για κάθε μία από τις 8 υποπεριοχές του (subframes), υπολογίζεται η ενέργειά τους $s_{l}^{2}$, $(l = 0,..,7)$ , δηλαδή το άθροισμα των τετραγώνων των δειγμάτων τους, και αποθηκεύεται στο energyEstimations. -% \item Υπολογίζονται τα attack values $ds_{l}^{2} = \frac{s_{l}^{2}}{(1/l) \cdot \Sigma_{k=0}^{l-1} s_{k}^{2}}$ και αποθηκεύονται στο energyRatios. -% \item Το frame $i+1$ θα είναι "ESH" εάν ισχύουν ταυτόχρονα: +% \item Για κάθε μία από τις 8 υποπεριοχές του (subframes), υπολογίζεται η ενέργειά τους $s_{l}^{2}$, $(l = 0,..,7)$ , δηλαδή το άθροισμα των τετραγώνων των δειγμάτων τους, και αποθηκεύεται στη μεταβλητή energyEstimations. +% \item Υπολογίζονται τα attack values, $ds_{l}^{2} = \frac{s_{l}^{2}}{(1/l) \cdot \Sigma_{k=0}^{l-1} s_{k}^{2}}$ και αποθηκεύονται στη μεταβλητή energyRatios. +% \item Το frame $i+1$ θα είναι ``ESH'' εάν ισχύουν ταυτόχρονα: % \begin{itemize} % \item $s_{l}^{2} > 10^{-3}$ % \item $ds_{l}^{2} > 10$ @@ -76,27 +76,23 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα \subsection{\textit{function} frameF = filterbank(frameT, frameType, winType)} - Η συνάρτηση αυτή αφορά την βαθμίδα filterbank και έχει ως ορίσματα ένα frame ήχου 2048x2, τον τύπο του καθώς και τον τύπο παραθύρου που θα χρησιμοποηθεί. Η δε έξοδός του, είναι η αναπαράσταση του ίδιου του frame στο πεδίο της συχνότητας, σε όρους MDCT. Στην περίπτωση που το frame είναι τύπου "ESH", η συνάρτηση θα επιστρέφει 8 υποπίνακες 128x2 με τους συντελεστές του MDCT, έναν για κάθε subframe ενώ σε άλλη περίπτωση, θα επιστρέφει έναν πίνακα 1024x2. + Η συνάρτηση αυτή αφορά την βαθμίδα filterbank και έχει ως ορίσματα ένα frame ήχου 2048x2, τον τύπο του καθώς και τον τύπο παραθύρου που θα χρησιμοποιηθεί. Η δε έξοδός του, είναι η αναπαράσταση του ίδιου του frame στο πεδίο της συχνότητας, σε όρους MDCT. Στην περίπτωση που το frame είναι τύπου ``ESH'', η συνάρτηση θα επιστρέψει 8 υποπίνακες 128x2 με τους συντελεστές του MDCT, έναν για κάθε subframe ενώ σε άλλη περίπτωση, θα επιστρέψει έναν πίνακα 1024x2. - Για να γίνει η μετάβαση αυτή ακολουθείται η διαδικασία που περιγράφεται στο πρότυπο. Αρχικά, στην υλοποιημένη συνάρτηση, δημιουργούνται οι τύποι των παραθύρων "KBD"και "SIN" που θα χρησιμοποιηθούν αργότερα, σε εκδοχές short και long για subframes και frames μήκους 256 και 2048 αντίστοιχα. Στη συνέχεια, σύμφωνα με το frameType και winType που δίνονται, εφαρμόζεται στο frameT το κατάλληλο παράθυρο, με τον τρόπο που υποδεικνύεται στην εκφώνηση και καλείται η συνάρτηση mdct4 έτσι ώστε να ληφθούν οι συντελεστές MDCT. - - Στην περίπτωση που ο τύπος του frame είναι "ESH", πρώτα το χωρίζουμε σε 8 subframes και έπειτα εφαρμόζουμε την παραθυροποίηση και τον mdct. + Για να γίνει η μετάβαση αυτή ακολουθείται η διαδικασία που περιγράφεται στο πρότυπο. Αρχικά, στην υλοποιημένη συνάρτηση, δημιουργούνται οι τύποι των παραθύρων ``KBD'' και ``SIN'' που θα χρησιμοποιηθούν αργότερα, σε εκδοχές short και long για subframes και frames μήκους 256 και 2048 αντίστοιχα. Στη συνέχεια, σύμφωνα με το frameType και winType που δίνονται, εφαρμόζεται στο frameT το κατάλληλο παράθυρο, με τον τρόπο που υποδεικνύεται στην εκφώνηση και καλείται η συνάρτηση mdct4 \footnote{http://www.ee.columbia.edu/\~marios/mdct/mdct\_giraffe.html} έτσι ώστε να ληφθούν οι συντελεστές MDCT. + Στην περίπτωση που ο τύπος του frame είναι ``ESH'', πρώτα το χωρίζουμε σε 8 subframes και έπειτα εφαρμόζουμε την παραθυροποίηση και τον MDCT. \subsection{\textit{function} frameT = iFilterbank(frameF, frameType, winType)} Η συνάρτηση της iFilterbank, αποτελεί την αντίστροφη της filterbank. Δέχεται, δηλαδή, σαν όρισμα τους συντελεστές MDCT ενός frame, τον τύπο του και τον τύπο του παραθύρου που θα χρησιμοποιηθεί ενώ ως έξοδο, επιστρέφει έναν πίνακα 2048x2 που αντιστοιχεί στο frame στο πεδίο του χρόνου. -Αντίστοιχα με την filterbank, πρώτα ορίζονται τα παράθυρα "KBD" και "SIN". Πρίν εφαρμοστούν, όμως, κατάλληλα στο frame, εφαρμόζουμε την συνάρτηση imdct4 για να επιστρέψουμε στο πεδίο του χρόνου. Στην περίπτωση που ο τύπος τους είναι "ESH", πρώτα εφαρμόζεται η συνάρτηση imdct4 σε όλα τα subframes, έπειτα γίνεται η παραθυροποίησή τους και στο τέλος αθροίζονται με κατάλληλο τρόπο ώστε η έξοδος να επιστραφεί ολόκληρο το frame. - - +Αντίστοιχα με την filterbank, πρώτα ορίζονται τα παράθυρα ``KBD'' και ``SIN''. Πριν εφαρμοστούν, όμως, κατάλληλα στο frame, εφαρμόζουμε την συνάρτηση imdct4 για να επιστρέψουμε στο πεδίο του χρόνου. Στην περίπτωση που ο τύπος τους είναι ``ESH'', πρώτα εφαρμόζεται η συνάρτηση imdct4 σε όλα τα subframes, έπειτα γίνεται η παραθυροποίησή τους και στο τέλος αθροίζονται με κατάλληλο τρόπο ώστε στην έξοδο να επιστραφεί ολόκληρο το frame. \subsection{\textit{function} AACSeq1 = AACoder1(fNameIn)} - - Για να εφαρμοστούν οι παραπάνω βαθμίδες, υλοποιήσαμε τον κωδικοποιητή AACoder1, ο οποίος παίρνει σαν μοναδικό όρισμα το path του .wav αρχείου που επιθυμούμε να κωδικοποιήσουμε, το οποίο πρέπει να είναι δειγματοληπτημένο στα 48KHz και να έχει 2 κανάλια, ενώ σαν έξοδο επιστρέφει ένα struct με διάσταση k x 1, όπου k, ο αριθμός των frames του αρχείου. - Κατά την διάρκεια της κωδικοποίησης θεωρούμε έναν σταθερό τύπο παραθύρου, στην περίπτωσή μας το "KBD". Αφού διαβαστεί το αρχείο, το χωρίζουμε σε επικαλυπτόμενα frames των 2048 δειγμάτων, τα τροφοδοτούμε στην συνάρτηση SSC για να βρούμε τους τύπους τους, και αποθηκεύουμε τα αποτελέσματα στο frameTypes. Απαιτείται ξεχωριστή προσέγγιση για την εύρεση των τύπων των οριακών frames. Για το πρώτο απλά - αρχικοποιούμε τον τύπο του ως "OLS". Οποιοδήποτε τύπο και να επιλέγαμε δεν έχει σημασία γιατί η εξάρτηση από τον τύπο του πρώτου frame εξαλείφεται. Για το τελευταίο, διαβάζουμε την τιμή του δεύτερου από το τέλος και σύμφωνα με αυτόν, το κατηγοριοποιούμε. + Για να εφαρμοστούν οι παραπάνω βαθμίδες, υλοποιήσαμε τον κωδικοποιητή AACoder1, ο οποίος παίρνει σαν μοναδικό όρισμα το path του WAV αρχείου που επιθυμούμε να κωδικοποιήσουμε, το οποίο πρέπει να είναι δειγματοληπτημένο στα 48KHz και να έχει 2 κανάλια, ενώ σαν έξοδο επιστρέφει ένα struct με διάσταση k x 1, όπου k, ο αριθμός των frames του αρχείου. + + Κατά την διάρκεια της κωδικοποίησης θεωρούμε έναν σταθερό τύπο παραθύρου, στην περίπτωσή μας το ``KBD''. Αφού διαβαστεί το αρχείο, το χωρίζουμε σε επικαλυπτόμενα frames των 2048 δειγμάτων, με επικάλυψη 50\%, τα τροφοδοτούμε στην συνάρτηση SSC για να βρούμε τους τύπους τους, και αποθηκεύουμε τα αποτελέσματα στη μεταβλητή frameTypes. Απαιτείται ξεχωριστή προσέγγιση για την εύρεση των τύπων των οριακών frames. Για το πρώτο απλά αρχικοποιούμε τον τύπο του ως ``OLS''. Οποιοδήποτε τύπο και να επιλέγαμε δεν έχει σημασία γιατί η εξάρτηση από τον τύπο του πρώτου frame εξαλείφεται. Για το τελευταίο, διαβάζουμε την τιμή του δεύτερου από το τέλος και σύμφωνα με αυτόν, το κατηγοριοποιούμε. Στη συνέχεια, εφαρμόζουμε την filterbank σε όλα τα frames και αποθηκεύουμε για το κάθε ένα, τον τύπο του, τον τύπο του παραθύρου που χρησιμοποιήθηκε καθώς και τους συντελεστές MDCT για κάθε κανάλι. Όλα αυτά αποθηκεύονται στο struct AACSeq1. @@ -104,14 +100,13 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα Αποτελεί την αντίστροφη συνάρτηση της AACoder1, υλοποιεί δηλαδή έναν αποκωδικοποιητή. Δέχεται ως όρισμα, τον πίνακα με structs που επιστρέφεται από τον AACoder1 και το όνομα που θα δοθεί στο αποκωδικοποιημένο αρχείο μαζί με το path του, ενώ η έξοδός του είναι ένας πίνακας που περιέχει τα δείγματα του αποκωδικοποιημένου αρχείου ήχου. - Έπειτα γίνεται η αποκωδικοποίηση. Τροφοδοτούνται οι συντελεστές mdct των καναλιών στην iFilterbank, μαζί με τον τύπο του κάθε frame και τον τύπο του παραθύρου και αφού προστεθούν όλα τα framew, επιστρέφεται το αρχείο ολόκληρο στο πεδίο του χρόνου και αποθηκεύεται. + Κατά την αποκωδικοποίηση, τροφοδοτούνται οι συντελεστές MDCT των καναλιών στην iFilterbank, μαζί με τον τύπο του κάθε frame και τον τύπο του παραθύρου και αφού προστεθούν όλα τα frames, επιστρέφεται το αρχείο ολόκληρο στο πεδίο του χρόνου και αποθηκεύεται. \subsection{\textit{function} SNR = demoAAC1(fNameIn, fNameOut)} -Στην συνάρτηση αυτή, επιδεικνύεται η λειτουργία του κωδικοποιητή και του αποκωδικοποιητή και επιστρέφεται ο σηματοθορυβικός λόγος των εξόδων τους. Δέχεται ως ορίσματα το path του αρχείου που επιθυμούμε να κωδικοποιήσουμε και το όνομα που θα του δοθεί μετά την αποκωδικοποίηση. Για την εύρεση του σηματοθορυβικού λόγου χρησιμοποιείται η συνάρτηση του MATLAB snr. - -Παρακάτω φαίνεται η λειτουργία των παραπάνω συναρτήσεων στο 2ο frame του κομματιού. Ο λόγος του SNR είναι 301.6522 dB. +Στην συνάρτηση αυτή, επιδεικνύεται η λειτουργία του κωδικοποιητή και του αποκωδικοποιητή και επιστρέφεται ο σηματοθορυβικός λόγος μεταξύ του αποκωδικοποιημένου και του αρχικού αρχείου ήχου. Δέχεται ως ορίσματα το path του αρχείου που επιθυμούμε να κωδικοποιήσουμε και το όνομα που θα του δοθεί μετά την αποκωδικοποίηση. Για την εύρεση του σηματοθορυβικού λόγου χρησιμοποιείται η συνάρτηση του MATLAB snr. +Παρακάτω φαίνεται η λειτουργία των παραπάνω συναρτήσεων στο 2ο frame του δείγματος ήχου ``LicorDeCalandraca.wav'' που δίνεται. Ο λόγος του SNR είναι 301.6522 dB χρησιμοποιώντας παράθυρα τύπου ``KBD''. \begin{figure}[H] \centering @@ -119,23 +114,18 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα \caption{Το frame στο πεδίο του χρόνου πριν τροφοδοτηθεί σε συναρτήσεις} \end{figure} - \begin{figure}[H] \centering \includegraphics[width=0.75\columnwidth, height=4cm]{figures/frame_2_left_filtered.eps} \caption{Μετάβαση στο πεδίο της συχνότητας με την συνάρτηση filterbank, συντελεστές MDCT } \end{figure} - - \begin{figure}[H] \centering \includegraphics[width=0.75\columnwidth, height=4cm]{figures/frame_2_left_iFiltered.eps} \caption{Η επιστροφή στο πεδίου του χρόνου μέσω της συνάρτησης iFilterbank} \end{figure} - - \begin{figure}[H] \centering \includegraphics[width=0.95\columnwidth, height=6cm]{figures/frame_2_comparison_filtered_and_ifiltered.eps} @@ -143,9 +133,7 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα \label{ref:1} \end{figure} - - -Όπως φαίνεται στο \ref{ref:1}, το αρχικό σήμα με το σήμα εξόδου της iFilterbank ταυτίζονται. Η γραμμή του ενός είναι συνειδητά πιο έντονη έτσι ώστε να είναι φανερή η ταύτιση. Αυτό είναι ένδειξη ότι οι υλοποιημένες συναρτήσεις εκτελούνται σωστά αφού ουσιαστικά δεν έχει χαθεί πληροφορία και η επανακατασκευή πρέπει να είναι σχεδόν τέλεια. +Όπως φαίνεται στο \ref{ref:1}, το αρχικό σήμα με το σήμα εξόδου της iFilterbank ταυτίζονται. Η γραμμή του ενός είναι συνειδητά πιο έντονη έτσι ώστε να είναι φανερή η ταύτιση. Αυτό είναι ένδειξη ότι οι υλοποιημένες συναρτήσεις εκτελούνται σωστά αφού ουσιαστικά δεν έχει χαθεί πληροφορία και η επανακατασκευή πρέπει να είναι σχεδόν τέλεια. \section{2o Επίπεδο} @@ -153,10 +141,10 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα \subsection{\textit{function} [frameFout, TNScoeffs] = TNS(frameFin, frameType)} -Η συνάρτηση TNS υλοποιεί τη βαθμίδα Temporal Noise Shaping για ένα κανάλι. Δέχεται ως εισόδους τους κβαντισμένους συντελεστές mdct των 2 καναλιών ενός frame και τον τύπο του ενώ επιστρέφει σαν έξοδο το frame στο πεδίο συχνότητας, σε όρους MDCT συντελεστών έπειτα από την εφαρμογή του TNS καθώς και τους κβαντισμένους συντελεστές του TNS. +Η συνάρτηση TNS υλοποιεί τη βαθμίδα Temporal Noise Shaping για ένα κανάλι. Δέχεται ως εισόδους τους κβαντισμένους συντελεστές MDCT των 2 καναλιών ενός frame και τον τύπο του ενώ επιστρέφει σαν έξοδο το frame στο πεδίο συχνότητας, σε όρους MDCT συντελεστών έπειτα από την εφαρμογή του TNS καθώς και τους κβαντισμένους συντελεστές του TNS. -Σαν πρώτο βήμα, αρχικοποιούμε τον πίνακα των μπαντών του ψυχοακουστικού μοντέλου όπως δίνεται στο πρότυπο. Στη συνέχεια, κατατάσσουμε του συντελεστές MDCT στις μπάντες -και βρίσκουμε την ενέργεια κάθε μπάντας. Έπειτα, υπολογίζουμε τους συντελεστές κανονικοποίησης, τους εξομαλύνουμε όπως υποδεικνύεται και κανονικοποιούμε τους συντελεστές MDCT ανάλογα με την ενέργεια της μπάντας στην οποία ανήκουν. Με την βοήθεια της συνάρτησης lpc του MATLAB, βρίσκουμε τους συντελεστές γραμμικής πρόβλεψης για κάθε frame (ή subframe αν ο τύπος του είναι "ESH") και τους κβαντίζουμε με τη βοήθεια της συνάρτησης quantiz για ομοιόμορφο κβαντιστή βήματος 0.1. Εφαρμόζουμε το FIR φίλτρο $H_{TNS}(z) = 1 - a_{1}z^{-1} - a_{2}z^{2} - a_{3}z^{-3} - a_{4}z^{-4}$ στους αρχικούς συντελεστές MDCT όπου $a_{i}$ οι κβαντισμένοι συντελεστές γραμμικής πρόβλεψης. +Σαν πρώτο βήμα, αρχικοποιούμε τον πίνακα των μπαντών του ψυχοακουστικού μοντέλου όπως δίνεται στο πρότυπο. Στη συνέχεια, κατατάσσουμε του συντελεστές MDCT στις μπάντες +και βρίσκουμε την ενέργεια κάθε μπάντας. Έπειτα, υπολογίζουμε τους συντελεστές κανονικοποίησης, τους εξομαλύνουμε όπως υποδεικνύεται και κανονικοποιούμε τους συντελεστές MDCT ανάλογα με την ενέργεια της μπάντας στην οποία ανήκουν. Με την βοήθεια της συνάρτησης lpc του MATLAB, βρίσκουμε τους συντελεστές γραμμικής πρόβλεψης για κάθε frame (ή subframe αν ο τύπος του είναι "ESH") και τους κβαντίζουμε με τη βοήθεια της συνάρτησης quantiz για ομοιόμορφο κβαντιστή βήματος 0.1. Εφαρμόζουμε το FIR φίλτρο $H_{TNS}(z) = 1 - a_{1}z^{-1} - a_{2}z^{2} - a_{3}z^{-3} - a_{4}z^{-4}$ στους αρχικούς συντελεστές MDCT όπου $a_{i}$ οι κβαντισμένοι συντελεστές γραμμικής πρόβλεψης. \subsection{\textit{function} frameFout = iTNS(frameFin, frameType, TNScoeffs)} @@ -166,20 +154,16 @@ Tα frame τα οποία είναι στατικά χαρακτηρίζοντα Υλοποιεί έναν κωδικοποιητή ο οποίος ουσιαστικά εκτελεί την συνάρτηση TNS. Δέχεται ως όρισμα το path του δείγματος ήχου που επιθυμούμε να κωδικοποίησουμε και επιστρέφει ένα struct μεγέθους K x 1, όπου Κ το πλήθος των frames που έχουν κωδικοποιηθεί και παριέχει για το κάθε ένα τον τύπο του, τον τύπο παραθύρου που χρησιμοποιήθηκε κατά την κωδικοποίηση, τους συντελεστές MDCT και τους κβαντισμένους συντελεστές TNS για κάθε κανάλι. -Όπως και στον παραπάνω κωδικοποιητή, αρχικά διαβάζεται το αρχείο, χωρίζεται σε frames και με την βοήθεια της συνάρτησης SSC, καθορίζεται ο τύπος τους με την ίδια αντιμετώπιση για τα οριακά frames. Στη συνέχεια, τροφοδοτούνται τα frames ως είσοδοι στην συνάρτηση filterbank και στην συνάρτηση TNS και αποθηκεύονται τα αποτελέσματα στο struct. +Όπως και στον παραπάνω κωδικοποιητή, αρχικά διαβάζεται το αρχείο, χωρίζεται σε frames και με την βοήθεια της συνάρτησης SSC, καθορίζεται ο τύπος τους με την ίδια αντιμετώπιση για τα οριακά frames. Στη συνέχεια, τροφοδοτούνται τα frames ως είσοδοι στην συνάρτηση filterbank και στην συνάρτηση TNS και αποθηκεύονται τα αποτελέσματα στο struct. \subsection{\textit{function} x = iAACoder2(AACSeq2, fNameOut)} -Υλοποιεί την αντίστροφη του κωδικοποιητή AACoder1, δηλαδή έναν αποκωδικοποιητή. Δέχεται ως εισόδους το K x 1 struct του κωδικοποιημένου αρχείου καθώς και το όνομα που πρόκειται να πάρει μετά την αποκωδικοποίησή του. Ως έξοδο, επιστρέφει τα αποκωδικοποιημένα δείγματα του αρχείου και τα αποθηκεύει σε μορφή .wav. Για να το επιτύχει αυτό, χρησιμοποιεί τηις συναρτήσεις iTNS και iFilterbank. - +Υλοποιεί την αντίστροφη του κωδικοποιητή AACoder1, δηλαδή έναν αποκωδικοποιητή. Δέχεται ως εισόδους το K x 1 struct του κωδικοποιημένου αρχείου καθώς και το όνομα που πρόκειται να πάρει μετά την αποκωδικοποίησή του. Ως έξοδο, επιστρέφει τα αποκωδικοποιημένα δείγματα του αρχείου και τα αποθηκεύει σε μορφή WAV. Για να το επιτύχει αυτό, χρησιμοποιεί τηις συναρτήσεις iTNS και iFilterbank. \subsection{\textit{function} SNR = demoAAC2(fNameIn, fNameOut)} H συνάρτηση αυτή επιδεικνύει την κωδικοποίηση του 2ου επιπέδου. Δέχεται ως ορίσματα το path του αρχείου ήχου που πρίκειται να κωδικοποιηθεί και το όνομα που πρόκειται να πάρει μετά την αποκωδικοποίησή του ενώ επιστρέφει τον συνολικό σηματοθορυβικό λόγο σε dB. Χρησιμοποιεί τις συναρτήσεις AACoder2 και iAACoder2 για την κωδικοποίηση και αποκωδικοποίηση του αρχείου ενώ για την εύρεση του σηματοθορυβικού λόγου χρησιμοποιεί την συνάρτηση snr του MATLAB. - - - Παρακάτω βλέπουμε τα αποτελέσματα του κωδικοποιητή και αποκωδικοποιητή. \begin{figure}[H] @@ -189,12 +173,11 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη \label{ref:2} \end{figure} -Να σημειωθεί ότι ο σηματοθορυβικός λόγος ισούται με 301.5897 dB που σημαίνει ότι δεν έχει αλλάξει σχεδόν καθόλου, γεγονός που είναι λόγικο αφού μέχρι στιγμής έχουμε κβαντίσει μόνο τους συντελεστές γραμμικής πρόβλεψης και όχι το σήμα άρα δεν έχουμε χάσει πληροφορία. Οι μικρή απόκλιση ανάμεσα στους δύο σηματοθορυβικούς λόγος έγκειται στις μικροαποκλίσεις των πράξεων λόγω των στρογγυλοποιήσεων που εκτελεί το MATLAB. Στο \ref{ref:2} είναι φανερή η ταύτιση του αρχικού σήματος με το σήμα εξόδου του αποκωδικοποιητή, ένδειξη ότι υλοποιήθηκε σωστά. Το ένα σήμα σχεδιάστηκε με πιο έντονη γραμμή και πάλι προς σκοπό οπτικοποίησης των αποτελεσμάτων. - +Να σημειωθεί ότι ο σηματοθορυβικός λόγος ισούται με 301.5897 dB που σημαίνει ότι δεν έχει αλλάξει σχεδόν καθόλου, γεγονός που είναι λόγικο αφού μέχρι στιγμής έχουμε κβαντίσει μόνο τους συντελεστές γραμμικής πρόβλεψης και όχι το σήμα άρα δεν έχουμε χάσει πληροφορία. Οι μικρή απόκλιση ανάμεσα στους δύο σηματοθορυβικούς λόγος έγκειται στις μικροαποκλίσεις των πράξεων λόγω των στρογγυλοποιήσεων που εκτελεί το MATLAB. Στο \ref{ref:2} είναι φανερή η ταύτιση του αρχικού σήματος με το σήμα εξόδου του αποκωδικοποιητή, ένδειξη ότι υλοποιήθηκε σωστά. Το ένα σήμα σχεδιάστηκε με πιο έντονη γραμμή και πάλι προς σκοπό οπτικοποίησης των αποτελεσμάτων. \section{3ο Επίπεδο} -Στο 3ο επίπεδο υλοποιείται το ψυχοακουστικό μοντέλο, οι βαθμίδες του κβαντιστή και του Huffman ένας κωδικοποιητής και οι αντίστροφές τους συναρτήσεις. +Στο 3ο επίπεδο υλοποιείται το ψυχοακουστικό μοντέλο, οι βαθμίδες του κβαντιστή και του Huffman ένας κωδικοποιητής και οι αντίστροφές τους συναρτήσεις. \subsection{\textit{function} SMR = psycho(frameT, frameType, frameTprev1, frameTprev2) } @@ -246,7 +229,6 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη \label{ref:4} \end{figure} - \begin{figure}[H] \centering \includegraphics[width=0.95\columnwidth,height=6cm]{figures/frame_2_SL.eps} @@ -254,17 +236,10 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη \label{ref:5} \end{figure} - - - - - - \subsection{\textit{function} frameF = iAACquantizer(S, sfc, G, frameType)} Υλοποιεί την αντίστροφη συνάρτηση της AACquantizer. Δέχεται ως ορίσματα τα σύμβολα κβάντισης των συντελεστών MDCT, τον πίνακα με τα scalefactors κάθε μπάντας και το global gain. Σαν έξοδο, με τους συντελεστές και το scalefactor προσπαθεί να επανακατασκαευάσει το frame στο πεδίο της συχνότητας σε όρους συντελεστών MDCT, το οποίο και επιστρέφει. - \subsection{\textit{function} [huffSec, huffCodebook] = encodeHuff(coeffSec, huffLUT, forcedCodebook)} Υλοποιεί τη βαθμίδα κωδικοποίσης Huffman. Δέχεται ως εισόδους @@ -289,13 +264,9 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη Υλοποιεί τον αντίστοιχο αποκωδικοποιητή. Δέχεται ως εισόδους, το struct που προκύπτει από τον κωδικοποιητή AACoder3 και το όνομα μαζί με το path που πρόκειται να πάρει το αποκωδικοποιημένο αρχείο ενώ ως έξοδο επιστρέφει έναν πίνακα με το αποκωδικοποιημένο σήμα. Για την υλοποίηση του χρησιμοποιούνται οι συναρτήσεις decodeHuff, iAACquantizer, iTNS και iFilterbank. - - \subsection{\textit{function} [SNR, bitrate, compression] = demoAAC3(fNameIn, fNameOut, frameAACoded)} - -Ουσιαστικά η συνάρτηση αυτή παρουσιάζει την λειτουργία των συναρτήσεων του επιπέδου 3. Δέχεται ως εισόδους το path του αρχείου που πρόκειται να κωδικοποιηθεί και το όνομα του αρχείου που πρόκειται να επιστραφεί μετά την αποκωδικοποίηση. Σαν έξοδο, επιστρέφει τον σηματοθορυβικό λόγο του σήματος μετά την κωδικοποίηση και αποκωδικοποίησή του, το bitrate και το ποσοστό συμπίεσης. - +Ουσιαστικά η συνάρτηση αυτή παρουσιάζει την λειτουργία των συναρτήσεων του επιπέδου 3. Δέχεται ως εισόδους το path του αρχείου που πρόκειται να κωδικοποιηθεί και το όνομα του αρχείου που πρόκειται να επιστραφεί μετά την αποκωδικοποίηση. Σαν έξοδο, επιστρέφει τον σηματοθορυβικό λόγο του σήματος μετά την κωδικοποίηση και αποκωδικοποίησή του, το bitrate και το ποσοστό συμπίεσης. Αφού εκτελέστηκε η συνάρτηση, επέστρεψε τα εξής αποτελέσματα: \begin{table}[] @@ -323,7 +294,6 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη \label{ref:8} \end{figure} - \begin{figure}[H] \centering \includegraphics[width=\columnwidth,height=8cm]{figures/bar_abs_dif.eps} @@ -331,12 +301,7 @@ H συνάρτηση αυτή επιδεικνύει την κωδικοποίη \label{ref:9} \end{figure} -Όπως βλέπουμε το αποκωδικοποιημένο και το αρχικό σήμα δεν ταυτίζονται. Αυτό είναι απολύτως λογικό αφού το σήμα πλέον έχει αλλοιωθεί και δεν ήταν δυνατό να επανακατασκευαστεί πλήρως. Για τον λόγο αυτό είναι και ο σηματοθορυβικός λόγος πολύ μικρός πλέον σε σχέση με τους προηγούμενους. - - - - - +Όπως βλέπουμε το αποκωδικοποιημένο και το αρχικό σήμα δεν ταυτίζονται. Αυτό είναι απολύτως λογικό αφού το σήμα πλέον έχει αλλοιωθεί και δεν ήταν δυνατό να επανακατασκευαστεί πλήρως. Για τον λόγο αυτό είναι και ο σηματοθορυβικός λόγος πολύ μικρός πλέον σε σχέση με τους προηγούμενους. \end{document} %%% Local Variables: diff --git a/tex/main.toc b/tex/main.toc deleted file mode 100644 index 06f3f47..0000000 --- a/tex/main.toc +++ /dev/null @@ -1,23 +0,0 @@ -\contentsline {section}{\numberline {1}Εισαγωγή}{2}{section.1} -\contentsline {section}{\numberline {2}1o Επίπεδο}{2}{section.2} -\contentsline {subsection}{\numberline {2.1}\textit {function} frameType = SSC(frameT, nextFrameT, prevFrameType)}{2}{subsection.2.1} -\contentsline {subsection}{\numberline {2.2}\textit {function} frameF = filterbank(frameT, frameType, winType)}{2}{subsection.2.2} -\contentsline {subsection}{\numberline {2.3}\textit {function} frameT = iFilterbank(frameF, frameType, winType)}{3}{subsection.2.3} -\contentsline {subsection}{\numberline {2.4}\textit {function} AACSeq1 = AACoder1(fNameIn)}{3}{subsection.2.4} -\contentsline {subsection}{\numberline {2.5}\textit {function} x = iAACoder1(AACSeq1, fNameOut)}{3}{subsection.2.5} -\contentsline {subsection}{\numberline {2.6}\textit {function} SNR = demoAAC1(fNameIn, fNameOut)}{3}{subsection.2.6} -\contentsline {section}{\numberline {3}2o Επίπεδο}{5}{section.3} -\contentsline {subsection}{\numberline {3.1}\textit {function} [frameFout, TNScoeffs] = TNS(frameFin, frameType)}{5}{subsection.3.1} -\contentsline {subsection}{\numberline {3.2}\textit {function} frameFout = iTNS(frameFin, frameType, TNScoeffs)}{5}{subsection.3.2} -\contentsline {subsection}{\numberline {3.3}\textit {function} AACSeq2 = AACoder2(fNameIn)}{5}{subsection.3.3} -\contentsline {subsection}{\numberline {3.4}\textit {function} x = iAACoder2(AACSeq2, fNameOut)}{5}{subsection.3.4} -\contentsline {subsection}{\numberline {3.5}\textit {function} SNR = demoAAC2(fNameIn, fNameOut)}{6}{subsection.3.5} -\contentsline {section}{\numberline {4}3ο Επίπεδο}{6}{section.4} -\contentsline {subsection}{\numberline {4.1}\textit {function} SMR = psycho(frameT, frameType, frameTprev1, frameTprev2) }{6}{subsection.4.1} -\contentsline {subsection}{\numberline {4.2}\textit {function} [S, sfc, G] = AACquantizer(frameF, frameType, SMR)}{7}{subsection.4.2} -\contentsline {subsection}{\numberline {4.3}\textit {function} frameF = iAACquantizer(S, sfc, G, frameType)}{8}{subsection.4.3} -\contentsline {subsection}{\numberline {4.4}\textit {function} [huffSec, huffCodebook] = encodeHuff(coeffSec, huffLUT, forcedCodebook)}{9}{subsection.4.4} -\contentsline {subsection}{\numberline {4.5}\textit {function} decCoeffs = decodeHuff(huffSec, huffCodebook, huffLUT)}{9}{subsection.4.5} -\contentsline {subsection}{\numberline {4.6}\textit {function} AACSeq3 = AACoder3(fNameIn, fnameAACoded)}{9}{subsection.4.6} -\contentsline {subsection}{\numberline {4.7}\textit {function} x = iAACoder3(AACSeq3, fNameOut)}{9}{subsection.4.7} -\contentsline {subsection}{\numberline {4.8}\textit {function} [SNR, bitrate, compression] = demoAAC3(fNameIn, fNameOut, frameAACoded)}{9}{subsection.4.8}