You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

187 lines
10 KiB
TeX

\documentclass[a4paper,11pt, fleqn, reqno, oneside]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{polski}% polska czcionka
\usepackage[polish]{babel}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amsthm}
%\usepackage{indentfirst}
\usepackage[hmargin=2.5cm, vmargin=2.5cm, hcentering]{geometry}
\usepackage{setspace} %Pakiet do lokalnej zmiany interlinii
\usepackage{enumerate} %Pakiet do robienia niestandardowych list.
\usepackage{ulem} %Pakiet do tekstu z kropkami pod nim
\usepackage{xcolor}
\usepackage{hyperref}
%dodatkowe operatory matematyczne
\DeclareMathOperator{\sgn}{sgn} %funkcja signum
\newcommand{\norm}[1]{\left\Vert #1\right\Vert} %norma \norm{x}=||x||
\newcommand{\ilsk}[2]{\left\langle #1 , #2\right\rangle} %iloczyn skalarny \ilsk{x}{y}=<x,y>
%definicje różnych oznaczeń zbiorów
\newcommand{\R}{\mathbb{R}} %zb. liczb rzeczywistych
\newcommand{\N}{\mathbb{N}} %zb. liczb naturalnych
\newcommand{\C}{\mathbb{C}} %zb. liczb zespolonych
\newcommand{\Z}{\mathbb{Z}} %zb. liczb całkowitych
\newcommand{\K}{\mathbb{K}} %oznaczenie na ciało K
\newcommand{\CB}{\mathcal{B}} %oznaczenie na B pisane, np w przestrzeni zbiorów ograniczonych lub sigma ciałach borelowskich
%style potrzebne dla zmiany domyślnych styli twierdzeń i definicji
\newtheoremstyle{crr1}% styl dla twierdzeń
{\topsep}% Space above, empty = `usual value'
{\topsep}% Space below
{\itshape}% Body font - czcionka pochylona
{0pt}% Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{.}% Punctuation after thm head
{ }% Space after thm head: \newline = linebreak or " "
{\thmname{#1}\thmnumber{ #2}\thmnote{ (\textit{#3})}}% Thm head spec
\newtheoremstyle{crr2}% styl dla definicji
{\topsep}% Space above, empty = `usual value'
{\topsep}% Space below
{\normalfont}% Body font - czcionka normalna
{0pt}% Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{.}% Punctuation after thm head
{ }% Space after thm head: \newline = linebreak or " "
{\thmname{#1}\thmnumber{ #2}\thmnote{ (\textit{#3})}}% Thm head spec
%definicja różnych matematycznych środowisk
\theoremstyle{crr1}
\newtheorem{tw}{Twierdzenie}[chapter]
\newtheorem{lem}[tw]{Lemat}
\newtheorem{wn}[tw]{Wniosek}
\theoremstyle{crr2}
\newtheorem{df}[tw]{Definicja} %chapter - numeracja wg rozdziału, section - wg "sekcji"
\newtheorem{prz}[tw]{Przykład} %Dodanie [df] sprawia, że przykłady i definicje będą miały wspólną numerację
\newtheorem{uw}[tw]{Uwaga}
%definiowanie środowiska dla dowodu
\newenvironment{dwd}{\noindent{\bf Dowód:}\rm }{\hfill\qed\par}
% potrzebne gdy wyświetla się "Spis rzeczy" zamiast "Spis treści" i "Literatura" zamiast "Bibliografia"
\addto\captionspolish{\renewcommand{\contentsname}{Spis treści}}
\addto\captionspolish{\renewcommand{\bibname}{Bibliografia}}
%-----------------------------------------------------------------------------------
\begin{document}
\setlength{\mathindent}{20pt}% wcięcie wzorów matematycznych
\begin{titlepage}
\begin{center}
{\LARGE Uniwersytet Śląski w Katowicach}
\vskip 1cm
{\LARGE Wydział Nauk Ścisłych i Technicznych}
\vskip 1cm
{\LARGE Instytut Informatyki}
\vskip 3cm
{\Large \bf Wojciech Janota}% wstaw swoje dane
\vskip 1cm
{\large Numer albumu 354540}% numer albumu
\vskip 2.5cm
\begin{doublespace}
{\LARGE \bf OPTYMALIZACJA KOMPRESJI OBRAZÓW \\W FORMACIE JPEG ZA POMOCĄ METOD UCZENIA MASZYNOWEGO}% tytuł pracy
\end{doublespace}
\vskip 1cm
{\large PRACA DYPLOMOWA\\MAGISTERSKA}
\end{center}
\vspace{3.0cm}
\begin{flushright}
\parbox{4.5cm}{Promotor: \\
Dr Rafał Skinderowicz}
\end{flushright}
\vspace{3cm}
\begin{center}
Sosnowiec 2024% rok
\end{center}
\newpage
\thispagestyle{empty}
\noindent
Słowa kluczowe: \dotuline{kompresja, uczenie maszynowe, DCT, dyskretna transformata kosinusowa, JPEG\hfill}\\[1cm]% wstaw swoje słowa kluczowe max 2 linijki
\textbf{Oświadczenie autora pracy}\\[1cm]
Ja niżej podpisany/a:\\
\par imię (imiona) i nazwisko: \dotuline{Wojciech Janota\hfill}\\% wstaw swoje dane
\par autor pracy dyplomowej pt. \dotuline{Optymalizacja kompresji obrazów w formacie JPEG\hfill}\\% wstaw swój tytuł
\par\dotuline{za pomocą metod uczenia maszynowego\hfill}\\%
\noindent Numer albumu: 354540\\% wstaw numer albumu
\noindent Student/ka Wydziału Nauk Ścisłych i Technicznych Uniwersytetu Śląskiego w Katowicach\\
\noindent kierunku studiów\\
\dotuline{Informatyka\hfill}\newline
\noindent specjalności\\
\dotuline{Analiza Danych\hfill}\\% wstaw swoją specjalność
\noindent Oświadczam, że ww. praca dyplomowa:
\begin{itemize}
\item
została przygotowana przeze mnie samodzielnie\footnote{uwzględniając merytoryczny wkład promotora (w ramach prowadzonego seminarium dyplomowego)},
\item
nie narusza praw autorskich w rozumieniu ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (tekst jednolity Dz. U. z 2006 r. Nr 90, poz. 631, z późn. zm.) oraz dóbr osobistych chronionych prawem cywilnym,
\item
nie zawiera danych i informacji, które uzyskałem/-am w sposób niedozwolony,
\item
nie była podstawą nadania dyplomu uczelni wyższej lub tytułu zawodowego ani mnie, ani innej osobie.
\end{itemize}
\vskip 1cm
Oświadczam również, że treść pracy dyplomowej zamieszczonej przeze mnie w Archiwum Prac Dyplomowych jest identyczna z treścią zawartą w wydrukowanej wersji pracy.\\[1cm]
\textbf{Jestem świadomy/a odpowiedzialności karnej za złożenie fałszywego oświadczenia.}\\[1cm]% lub Jestem świadomy
\parbox{6cm}{\dotfill\center{Data}}\hfill\parbox{6cm}{\dotfill\center{Podpis autora pracy}}
\end{titlepage}
\setcounter{page}{1}
\tableofcontents %wyświetlanie spisu treści
\chapter*{Wstęp}
\addcontentsline{toc}{chapter}{Wstęp}
\section*{Wprowadzenie}
\paragraph{}
Na przełomie lat 90 i 2000 ubiegłego wieku miała miejsce rewolucja w podejściu do sposobu korzystania z komputerów. Internet, bo to o nim mowa, stał się integralną częścią życia codziennego ludzi na całym świecie,
co zrodziło całą klasę nowych wyzwań dla informatyków. Jednym z największych problemów, które musiały zostać rozwiązane, było zmniejszenie ilości danych przesyłanych przez sieć. Było to podyktowane ograniczeniami technologicznymi, między innymi
małymi przepustowościami sieci, czy też dopiero rodzącymi się standardami. Wtedy też powstawały pierwsze algorytmy do kompresji obrazów, które
były kluczowe dla rozwoju Internetu, jaki znamy dzisiaj.
Jednym z pierwszych, a zarazem bardziej popularnych formatów kompresji obrazów został standard JPEG\footnote{ISO/IEC 10918} w wersji 1.
Prace nad nim rozpoczęto już w 1986 roku, natomiast gotowy projekt zaprezentowano w roku 1992. Ostatnia jego wersja pojawiła się w roku
1994\cite{jpeg_1_website}. Do dziś jest najbardziej rozpowszechnionym formatem, w którym przesyłane są obrazy, zdjęcia, a większość urządzeń potrafi go zdekodować i wyświetlić.
W ostatnich latach powstało wiele ,,następców'' formatu JPEG, którzy oferują wyższy stopień kompresji oraz lepszą jakość obrazu. Należą do nich m.in.:
\begin{itemize}
\item JPEG XL - nowy standard opracowany przez konsorcjum JPEG, zaprezentowany w 2022 roku. Skupia się na balansie pomiędzy stopniem kompresji, prędkości dekodowania i enkodowania oraz jakością\cite{jpeg_xl_website},
\item HEIC/HEIF - opracowany przez grupę ekspercką MPEG\footnote{The Moving Picture Experts Group} i zaprezentowany w 2015 roku. Opiera się na formacie HEVC\footnote{High Efficiency Video Coding}, zapewnia rozmiar pliku wyjściowego o około 50\% mniejszy w porównaniu do klasycznego JPEG (przy zachowaniu podobnej jakości)\cite{heif_website},
\item WEBP - opracowany przez Google oraz zaprezentowany w 2010 roku. Opiera się na enkoderze VP8, zapewnia kompresję o około 20-30\% lepszą od JPEG przy podobnej jakości\cite{webp_google_website}.
\end{itemize}
\paragraph{}
Wszystkie z podanych powyżej narzędzi mają za cel poprawić najważniejsze aspekty kodeka używanego do przesyłania obrazów
przez sieć: jak największe zmniejszenie rozmiaru przy zachowaniu podobnej (jak najlepszej) jakości. Niestety osiagają to,
zmieniając kodek, przez co nie zachowują kompatybilności wstecznej ze starszymi urządzeniami i systemami, które nie obsługują
nowszych technologii. W tej pracy zaprezentowane zostanie rozwiązanie, które zachowuje pełną kompatybilność wsteczną z formatem
JPEG w swojej podstawowej formie. Otrzymany enkoder zostanie porównany pod względem jakości otrzymanych obrazów oraz stopnia
kompresji z dostępnymi rozwiązaniami.
\paragraph{}
Istotą tej pracy jest stworzenie bardziej zaawansowanego sposobu kompresji obrazów, przy zachowaniu pełnej kompatybilności z
formatem JPEG. Zdecydowano, że wykorzystane do tego celu zostaną metody uczenia maszynowego, które będą dokonywały optymalizacji
w algorytmie enkodującym obraz.
\paragraph{}
Prezentowana praca została podzielona na kilka rozdziałów:
\begin{itemize}
\item analiza tematu: przybliżenie tematu, analiza dostępnych narzędzi, opis podstaw merytorycznych oraz proponowanego rozwiązania od strony teoretycznej,
\item wymagania i narzędzia: zdefiniowanie wymagań funkcjonalnych i niefunkcjonalnych, opis wybranych narzędzi,
\item specyfikacja wewnętrzna i zewnętrzna: opis opracowanego rozwiązania z perspektywy ogólnej (użytkownika końcowego) oraz stricte technicznej (dla osoby technicznej),
\item testy i weryfikacja: opis środowiska testowego, porównanie wyników dla różnych podejść, analiza otrzymanych reultatów,
\item podsumowanie i wnioski: prezentacja wniosków wynikających z analizy wynikówtestów, krytyka proponowanego rozwiązania i propozycje poprawek.
\end{itemize}
\paragraph{Wkład pracy autora}
Przedmiotem pracy było opracowanie i zaimplementowanie nowego algorytmu enkodującego dane, jego analiza, opracowanie metod, które
pozwolą na jego porównanie do aktualnie dostępnych rozwiązań, dokonanie testów i porównań oraz sformułowanie wniosków. Wszytskie powyższe zadania zostały zrealizowane przez autora pracy.
\chapter{Analiza tematu}
\bibliographystyle{plain}
\bibliography{bibliography}
\end{document}