From e140b7ab20e378a3c523850fd9334cbb34916e6d Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Wed, 1 Aug 2018 16:26:10 +0100 Subject: [PATCH] Fix abbrev --- 010_Introduction/HEVCTransmissionStack.pdf | Bin 44117 -> 0 bytes 010_Introduction/HEVCTransmissionStack.tikz | 66 ------ .../HEVCTransmissionStackOverview.pdf | Bin 103830 -> 0 bytes 010_Introduction/RobustVideoSystem.tikz | 122 ++++++++++ 021_VideoCoding/VideoCodingReview.tex | 17 +- .../Figures/LocalizationTechniques.tikz | 209 ++++++++++++++++++ .../RobustTransmissionReview.tex | 30 ++- .../Figures/BlockDiagram.tikz | 2 +- .../EndToEndRobustSystem.tex | 6 +- carreira_phd_thesis.sty | 4 +- carreira_phd_thesis.tex | 5 +- carreira_phd_thesis_abr.sty | 10 +- estgleiria.cls | 2 +- 13 files changed, 367 insertions(+), 106 deletions(-) delete mode 100644 010_Introduction/HEVCTransmissionStack.pdf delete mode 100644 010_Introduction/HEVCTransmissionStack.tikz delete mode 100644 010_Introduction/HEVCTransmissionStackOverview.pdf create mode 100644 010_Introduction/RobustVideoSystem.tikz create mode 100644 022_ErrorResilience/Figures/LocalizationTechniques.tikz diff --git a/010_Introduction/HEVCTransmissionStack.pdf b/010_Introduction/HEVCTransmissionStack.pdf deleted file mode 100644 index d26c152a1d9ef9527fe526713f28d48a32eeea48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44117 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 diff --git a/010_Introduction/HEVCTransmissionStack.tikz b/010_Introduction/HEVCTransmissionStack.tikz deleted file mode 100644 index 8466a4c..0000000 --- a/010_Introduction/HEVCTransmissionStack.tikz +++ /dev/null @@ -1,66 +0,0 @@ -\usetikzlibrary{positioning,calc} -\usetikzlibrary{arrows,matrix} -\usetikzlibrary{fit} -\usetikzlibrary{intersections} - -\def\scale{1} - - -\begin{tikzpicture}[ - font=\footnotesize, - auto, - node distance=1cm, - scale=\scale, - every node/.style={scale=\scale}, - template/.style={text centered}, - block/.style={template, rectangle, draw, text width=1.8cm}, - arrow/.style={template, draw, -latex}, - point/.style={template, draw, fill=black, circle,inner sep=0, minimum size=3} -] - -\tikzstyle{mainBlock} = [block] -\tikzstyle{secondBlock} = [block, minimum height=2cm] - - - -\node[secondBlock, anchor=north west] -(MPEG2) {MPEG-2 Transport Stream}; - -\node[secondBlock, text width=1.2cm, right=0 of MPEG2] -(RTP) {RTP}; - -\node[secondBlock, minimum height=1cm, right=0 of RTP.north east, anchor=north west] -(DASH) {MPEG DASH}; - -\node[secondBlock, minimum height=1cm, right=0 of DASH] -(Prog) {Progressive Download}; - -\node[secondBlock, inner sep=0, fit={(DASH) (Prog)}, minimum height=1cm, below=0 of DASH.south west, anchor=north west] -(ISOMediaFormat) {ISO Base Media \\ File Format}; - -\node[secondBlock, right=0 of Prog.north east, anchor=north west] -(MPEG2Systems) {MPEG-2 Systems (TS/PS)}; - -\node[mainBlock, inner sep=0, fit={(MPEG2) (MPEG2Systems)}, above=0 of MPEG2.north west, anchor=south west, minimum height=1cm, -label=center:HEVC / MPEG-H Part 2 / ITU-T Rec H.265] -(HEVC) {}; - -% \node [draw](chapter1) {\textit{Chapter 1}}; -% \node [draw,right=of chapter1] (paper1) {\textit{Paper 1}}; -% -% \node [draw, below=of chapter1](chapter2) {\textit{Chapter 2}}; -% \node [draw,right=of chapter2] (paper2) {\textit{Paper 2}}; -% -% \node [draw,below=of paper2] (paper3) {\textit{Paper 3}}; -% \node [draw,below=of paper3] (paper4) {\textit{Paper 4}}; -% -% \path let -% \p1=(paper3.north), \p2=(paper4.south), \n1 = {\y1-\y2-\pgflinewidth} -% in -% node [draw, below=of chapter2,minimum height=\n1](chapter3) {\textit{Chapter 3}}; - - -\end{tikzpicture} - - - diff --git a/010_Introduction/HEVCTransmissionStackOverview.pdf b/010_Introduction/HEVCTransmissionStackOverview.pdf deleted file mode 100644 index 6d53bc4dd7f599a898e4af24187ea74abc76d46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103830 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 A)c^nh diff --git a/010_Introduction/RobustVideoSystem.tikz b/010_Introduction/RobustVideoSystem.tikz new file mode 100644 index 0000000..8573c1f --- /dev/null +++ b/010_Introduction/RobustVideoSystem.tikz @@ -0,0 +1,122 @@ +\usetikzlibrary{matrix} +\usetikzlibrary{decorations.text} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.arrows} + + +\makeatletter +\pgfdeclareradialshading[tikz@ball]{cloud}{\pgfpoint{-0.275cm}{0.4cm}}{% + color(0cm)=(tikz@ball!75!white); + color(0.1cm)=(tikz@ball!85!white); + color(0.2cm)=(tikz@ball!95!white); + color(0.7cm)=(tikz@ball!89!black); + color(1cm)=(tikz@ball!75!black) +} +\tikzoption{cloud color}{\pgfutil@colorlet{tikz@ball}{#1}% + \def\tikz@shading{cloud}\tikz@addmode{\tikz@mode@shadetrue}} +\makeatother + +\tikzset{my cloud/.style={ + cloud, draw, aspect=2, + cloud color={TikZColorFill} + } +} + +% for double arrows a la chef +% adapt line thickness and line width, if needed +\tikzstyle{vecArrow} = [thick, decoration={markings,mark=at position + 1 with {\arrow[semithick]{open triangle 60}}}, + double distance=1cm, shorten >= 5.5pt, + preaction = {decorate}, + postaction = {draw,line width=2cm, white,shorten >= 4.5pt}] +\tikzstyle{innerWhite} = [semithick, white,line width=1.4pt, shorten >= 4.5pt] + + +\begin{tikzpicture}[ + template/.style={centered, text centered, inner sep=1pt, text width=2.3cm}, + label/.style={centered, text centered, inner sep=1pt}, + block/.style={template, draw, minimum size=1cm, thick}, + arrow/.style={template, draw,-latex,thick}, + point/.style={template, draw, fill=black, circle,inner sep=1pt}, + node distance=1.2cm, + font=\footnotesize, + node distance=1.2cm] + +\tikzstyle{coders}=[block, ellipse, font=\small, inner sep=0] + +\definecolor{colorAuxiliary}{RGB}{245,238,197} +\definecolor{colorVideo}{RGB}{241,231,163} + +\tikzset{ + arrowMatrix/.style={ + matrix of nodes, + row sep=-\pgflinewidth, + column sep=-\pgflinewidth, + nodes={rectangle,text width=1.5cm,align=center}, + text depth=1.25ex, + text height=.7ex, + nodes in empty cells + } +} + +\matrix (arrow) [arrowMatrix] { + |[fill=TikZColorFillProp]| & |[fill=TikZColorFillProp]| & |[fill=TikZColorFillProp]| & |[fill=TikZColorFillProp] (last1)| \\ + |[fill=TikZColorFill]| & |[fill=TikZColorFill]| & |[fill=TikZColorFill]| & |[fill=TikZColorFill] (last2)| \\ + |[fill=TikZColorFill]| & |[fill=TikZColorFill]| & |[fill=TikZColorFill]| & |[fill=TikZColorFill] (last3)| \\ +}; + +% The labels +\node[text centered, xshift=.7cm] at (arrow-1-1) {\footnotesize SEI}; +\node[text centered, xshift=.7cm, text width=2.2cm] at (arrow-2-1.south) {\footnotesize VCL}; + + +\fill[white] (last1.north) -- (last2.east) -- (last1.north east) -- cycle; +\fill[white] (last3.south) -- (last3.south east) -- (last2.east) -- cycle; + +\coordinate (div0) at (-.8,-1.3); +\coordinate (div1) at ($(div0)+(-20:.2cm)+(-20:.2cm)+(60:3.1cm)$); + +\fill[fill=white] ($(div0)+(-20:-.2cm)$) -- ++(60:1.8cm) -- ++(-30:.4cm) -- ($(div1)+(-20:-.2cm)$) -- ++(-30:.4cm) -- ++(60:-1.85cm) -- ++(-30:-.4cm) -- ($(div0)+(-20:.2cm)$); + +%\draw ( $(div0)$ ) -- ( $(div0)+(60:1.7cm)$ ); +\path[decoration={markings, mark=at position .5 with \node[transform shape] {\scriptsize Error-prone};}, postaction={decorate}] + ( $(div0)$ ) -- ( $(div0)+(60:1.7cm)$ ); + +%\draw ($(div1)+(60:-1.8cm)$) -- ($(div1)$); +\path[decoration={markings, mark=at position .5 with \node[transform shape] {\scriptsize Transmission};}, postaction={decorate}] + ($(div1)+(60:-1.8cm)$) -- ($(div1)$); + +% Draw the arrow tip +\shade[top color=TikZColorFillProp, bottom color=TikZColorFill, + middle color=TikZColorFill, draw=white, ultra thick] + (last1.north west) -- (last2.center) -- (last3.south west) -- + (last3.south) -- (last2.east) -- (last1.north) -- cycle; + + +\path[decoration={markings, mark=at position .5 with \node[transform shape] {\scriptsize Video};}, postaction={decorate}] + ( $ (last1.north west)!0.5!(last1.north) $ ) -- ( $ (last2.center)!0.5!(last2.east) $ ); +\path[decoration={markings, mark=at position .5 with \node[transform shape] {\scriptsize Stream};}, postaction={decorate}] + ( $ (last2.center)!0.5!(last2.east) $ ) -- ( $ (last3.south west)!0.6!(last3.south) $ ); + + +%% Encoding +\node[fill=TikZColorFillProp, coders, minimum height=3.1cm, text width=2.6cm, left=-.5 of arrow] (SideInformation) {}; +\node[fill=TikZColorFillProp, coders, minimum height=2.1cm, text width=2.2cm, yshift=-7] (RobustEncoding) at (SideInformation) {}; +\node[fill=TikZColorFill, coders, minimum height=1.1cm, text width=1.5cm, yshift=-13] (Encoding) at (SideInformation) {Encoding}; + +\path [postaction={decorate,decoration={text along path, text align=center,text={|\small|Robust encoding}}}] +($(RobustEncoding.west)+(.3,0)$) to [bend left=50] ($(RobustEncoding.east)+(-.3,0)$); + +\path [postaction={decorate,decoration={text along path, text align=center,text={|\small|Side-information}}}] +($(SideInformation.west)+(.3,.3)$) to [bend left=50] ($(SideInformation.east)+(-.3,.3)$); + +%% Decoding +\node[fill=TikZColorFillProp, coders, minimum height=2.1cm, text width=2.2cm, right=-.2 of arrow] (RobustDecoding) {}; +\node[fill=TikZColorFill, coders, minimum height=1.1cm, text width=1.5cm, yshift=-7] (Decoding) at (RobustDecoding) {Decoding}; + +\path[postaction={decorate,decoration={text along path,text align=center,text={|\small|Robust Decoding}}}] +($(RobustDecoding.west)+(.3,0)$) to [bend left=50] ($(RobustDecoding.east)+(-.3,0)$); + + +\end{tikzpicture} + diff --git a/021_VideoCoding/VideoCodingReview.tex b/021_VideoCoding/VideoCodingReview.tex index 0b13a50..edc9640 100755 --- a/021_VideoCoding/VideoCodingReview.tex +++ b/021_VideoCoding/VideoCodingReview.tex @@ -21,6 +21,8 @@ In order to increase the coding flexibility and higher video resolutions, the \a In this chapter the new data structures coding techniques specifically introduced to increase the coding efficiency are described. Particular emphasis is given to those which may have a significant impact in the error robustness characteristics of \ac{hevc} streams. +\glsunset{hevc} + This chapter is organized as follows. Section~\ref{Section2:GeneraVideoSystem} introduces the functional blocks of a generic hybrid video coding system, and Section~\ref{Section2:Overview} provides an overview of the \ac{hevc} standard. Then, Section~\ref{Section2:HighLevel} describes the high-level syntax elements which are used to carry relevant information in coded streams. @@ -100,7 +102,7 @@ The encoder uses both intra- and inter-picture prediction to exploit spatial and \centering \includegraphics[width=\columnwidth]{021_VideoCoding/Figures/HEVCBlockDiagram} %\input{\FigsPath/HEVCBlockDiagram.tikz} -\caption{\HIGHLIGHT{Block diagram of an \ac{hevc} standard encoder.}} +\caption{Block diagram of an HEVC standard encoder.} \label{fig:HEVCBlockDiagram} \end{figure} @@ -146,7 +148,7 @@ Similar to \ac{h264}~\cite{H264AVCStandard2003}, the \ac{hevc} streams are based % \bitheader{0-15} \\ \colorbitbox{TikZColorFill}{1}{F} & \colorbitbox{gray!60}{6}{NAL Type} & \colorbitbox{TikZColorFill}{6}{Reserved} & \colorbitbox{gray!60}{3}{TIDP} \end{bytefield} - \caption{Two bytes \ac{nal} unit header in \ac{hevc}.} + \caption{Two bytes \ac{nal} unit header in HEVC.} \label{Figure2:NalHeader} \end{figure} @@ -170,7 +172,7 @@ The new set of parameters \ac{vps} contains information related to the different \begin{table}[tb] \centering - \caption{Picture categories in \ac{hevc} standard.}\label{Table2:PictureTypes} + \caption{Picture categories in HEVC standard.}\label{Table2:PictureTypes} \TABLESVSPACE\small \begin{tabular}{m{1.3cm}|m{5.2cm}|m{6.3cm}} \toprule @@ -420,7 +422,7 @@ In order to overcome this issue and to allow all possible modes, \ac{hevc} uses \input{021_VideoCoding/Figures/IntraPredictionsDirectional.tikz} \\ \end{tabular} } -\caption{Directional intra prediction modes in \ac{hevc} (left) and an example of the intra prediction mode 32 for a $4\times4$ block.} +\caption{Directional intra prediction modes in HEVC (left) and an example of the intra prediction mode 32 for a $4\times4$ block.} \label{Figure2:IntraModesHEVC} \end{figure} @@ -515,7 +517,8 @@ This process discards a given frame whenever the \ac{dpb} has the number of defi \begin{table}[tb] \centering - \caption{Reference Picture Set example.}\label{Table2:ReferencePictureListExample} + \caption{Reference Picture Set example.} + \label{Table2:ReferencePictureListExample} \small \TABLESVSPACE \begin{tabular}{x{1.5cm}|ccc} @@ -555,7 +558,7 @@ Using the \ac{rpset} concept the decoder is always able to detect loss events an \input{\FigsPath/PUSymetric.tikz} & (a)\\ \input{\FigsPath/PUAsymetric.tikz} & (b)\\ \end{tabular} - \caption{Partition types of an inter coded \ac{cu} into \acs{pu}~\cite{HEVCBlock2012}.} + \caption{Partition types of an inter coded CU into PUs~\cite{HEVCBlock2012}.} \label{Figure2:InterPuPartitions} \end{figure} @@ -578,7 +581,7 @@ These partitions types are only allowed for \acs{cu} with $16\times16$ pixels or \centering \input{\FigsPath/MergeModeHEVC.tikz} %\input{\FigsPath/HEVC/MergeModeHEVCTwoFrames.tikz} -\caption{Illustration of the \ac{mv} prediction candidates in the AMVP.} +\caption{Illustration of the MV prediction candidates in the AMVP.} \label{Figure2:MVCandidates} \end{figure} diff --git a/022_ErrorResilience/Figures/LocalizationTechniques.tikz b/022_ErrorResilience/Figures/LocalizationTechniques.tikz new file mode 100644 index 0000000..cde475c --- /dev/null +++ b/022_ErrorResilience/Figures/LocalizationTechniques.tikz @@ -0,0 +1,209 @@ + +\newcommand{\DrawFrame}[1] +{ + \draw[fill=#1,fill opacity=1, thick] (0,0) rectangle (9+1,8); % Opacity +% \draw[thick] (0,0) rectangle (#2+1,#2+1); +% \foreach \x in {1,...,#2} +% \draw (\x,0) -- ++(0,#2+1); +% \foreach \y in {1,...,#2} +% \draw (0,\y) -- ++(#2+1,0); +} + + +\begin{tikzpicture}[use Hobby shortcut,closed=true] + +\def\TikzFrameScale{.35} + +\tikzstyle{labels} =[text centered, font=\footnotesize] +\tikzstyle{arrow} =[draw,-latex, thick] +\tikzstyle{errorBlock}=[draw=colorErrors, fill=colorErrors] +\tikzstyle{errorPropagation}=[draw=colorErrorProp, fill=colorErrorProp] +\tikzstyle{refresh}=[fill=colorBackgroundSecondary,draw=colorBackgroundSecondary] +\def\xfshift{5.5cm} +\def\yfshift{.2cm} + +\def\errorPosX{3} +\def\errorPosY{5} + +\begin{scope} + \node[labels, text width=2.1cm] (ErrorPropLabel) at (5,11*\TikzFrameScale) {Error \\ propagation}; + \node[labels, text width=2.1cm] (Error) at (4.3,2*\TikzFrameScale) {Lost data}; + \begin{scope}[scale=\TikzFrameScale,xshift=-1cm] + + \draw[fill=colorBackground,fill opacity=1] (0,-1) rectangle ++(10,9); + + \draw[errorBlock,draw] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + + \foreach \x in {\errorPosX,...,8} + \draw[errorPropagation] (\x+1,\errorPosY) rectangle ++(1 cm,1 cm); + + \foreach \y in {-1,0,1,2,3,4} + \foreach \x in {0,1,2,3,4,5,6,7,8,9} + \draw[errorPropagation] (\x,\y) rectangle ++(1 cm,1 cm); + + % \draw (0,\errorPosY) -- ++(\errorPosX + 1,0) -- ++(0,1) -- ++(8-\errorPosX,0); + + \path[arrow] (ErrorPropLabel) edge[bend right] (8,5); + \path[arrow] (Error) -- (\errorPosX +.5, \errorPosY +.5); + + \draw[thick] (0,-1) rectangle ++(10,9); + + \node[labels,text width=3.5cm] at (4.5,-3) {\textbf{Error propagation \\ within a frame}}; + + \end{scope} + + \begin{scope}[yshift=.5cm, xshift=5.5cm] + \begin{scope}[scale=\TikzFrameScale, yshift=3*\yfshift, xshift=3*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+3}$ }; + + \draw[errorPropagation] (\errorPosX ,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +2,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX ,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +2,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +0,\errorPosY -2) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY -2) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +0,\errorPosY -3) rectangle ++(1cm,1cm); + \coordinate (endPoint) at (9,0); + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=2*\yfshift, xshift=2*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+2}$ }; + + \draw[errorPropagation] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +2,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX+1,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX+1,\errorPosY -2) rectangle ++(1cm,1cm); + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=1*\yfshift, xshift=1*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+1}$ }; + + \draw[errorPropagation] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + \coordinate (tempErrorPropPoint) at (\errorPosX +.5,\errorPosY +.5); + + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=0*\yfshift, xshift=0*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t}$ }; + \draw[errorBlock] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \coordinate (startPoint) at (0,0); + \path[arrow] (Error) -- (\errorPosX +.5, \errorPosY +.5); + \end{scope} + + \path[arrow] (ErrorPropLabel) edge[bend left] (tempErrorPropPoint); + \path (startPoint) -- (endPoint) node[labels, pos=.5, yshift=-1.5cm] {\textbf{Error propagation over time}}; + \end{scope} +\end{scope} + + + +\begin{scope}[yshift=-5cm] + + + \node[labels, text width=1.2cm] (Refresh) at (4.3,2*\TikzFrameScale) {Refresh blocks}; + \begin{scope}[scale=\TikzFrameScale,xshift=-1cm] + \draw[fill=colorBackground,fill opacity=1] (0,-1) rectangle ++(10,9); + \foreach \y in {0,2,...,6} + \foreach \x in {0,1,2,3,4,5,6,7,8,9} + \draw[refresh] (\x,\y) rectangle ++(1 cm,1 cm); + + \draw[errorBlock,draw] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + + \foreach \x in {\errorPosX,...,8} + \draw[errorPropagation] (\x+1,\errorPosY) rectangle ++(1 cm,1 cm); + + \draw[thick] (0,-1) rectangle ++(10,9); + + % \path[arrow] (ErrorPropLabel.0) -- (7,5.5); + % \path[arrow] (Error) -- (\errorPosX +.5, \errorPosY +.5); + + \node[scale=.6] at (0.8, 0.5) {G1}; + \node[scale=.6] at (0.8, -0.5) {G2}; + \node[labels,text width=3.5cm] at (4.5,-3) {\textbf{Spatial localisation \\ example}}; + \end{scope} + \begin{scope}[xshift=5.5cm] + \begin{scope}[scale=\TikzFrameScale, yshift=3*\yfshift, xshift=3*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+3}$ }; + + \draw[errorPropagation] (\errorPosX ,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +2,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX ,\errorPosY -1) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX +1,\errorPosY -1) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX +2,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +0,\errorPosY -2) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX +1,\errorPosY -2) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX +0,\errorPosY -3) rectangle ++(1cm,1cm); + + \draw[refresh] (8,4) rectangle ++(1cm,1cm); + \draw[refresh] (4,4) rectangle ++(1cm,1cm); + \draw[refresh] (7,6) rectangle ++(1cm,1cm); + \draw[refresh] (7,1) rectangle ++(1cm,1cm); + \draw[refresh] (3,3) rectangle ++(1cm,1cm); + + \coordinate (endPoint) at (9,0); + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=2*\yfshift, xshift=2*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+2}$ }; + + \draw[errorPropagation] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +2,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX,\errorPosY -1) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX+1,\errorPosY -1) rectangle ++(1cm,1cm); +% \draw[errorPropagation] (\errorPosX+1,\errorPosY -2) rectangle ++(1cm,1cm); + + \draw[refresh] (8,4) rectangle ++(1cm,1cm); + \draw[refresh] (4,4) rectangle ++(1cm,1cm); + \draw[refresh] (7,6) rectangle ++(1cm,1cm); + \draw[refresh] (7,1) rectangle ++(1cm,1cm); + \draw[refresh] (3,2) rectangle ++(1cm,1cm); + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=1*\yfshift, xshift=1*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t+1}$ }; + + \draw[errorPropagation] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX,\errorPosY -1) rectangle ++(1cm,1cm); + \draw[errorPropagation] (\errorPosX +1,\errorPosY) rectangle ++(1cm,1cm); + + \draw[refresh] (1,2) rectangle ++(1cm,1cm); + \draw[refresh] (2,4) rectangle ++(1cm,1cm); + \draw[refresh] (5,3) rectangle ++(1cm,1cm); + \draw[refresh] (7,6) rectangle ++(1cm,1cm); + \draw[refresh] (7,1) rectangle ++(1cm,1cm); + + \end{scope} + \begin{scope}[scale=\TikzFrameScale, yshift=0*\yfshift, xshift=0*\xfshift, yslant=\TikZyslant,xscale=\TikZxscale] + \DrawFrame{colorBackground} + \node at (12cm/2,-1.5cm) { $f_{t}$ }; + \draw[errorBlock] (\errorPosX,\errorPosY) rectangle ++(1cm,1cm); + \coordinate (startPoint) at (0,0); + + \draw[refresh] (1,2) rectangle ++(1cm,1cm); + \draw[refresh] (2,4) rectangle ++(1cm,1cm); + \draw[refresh] (5,3) rectangle ++(1cm,1cm); + \draw[refresh] (7,6) rectangle ++(1cm,1cm); + \draw[refresh] (7,1) rectangle ++(1cm,1cm); + + \path[arrow] (Refresh) -- (2.5,4.5); + + \end{scope} + \path (startPoint) -- (endPoint) node[labels, pos=.5, yshift=-1.5cm] {\textbf{Temporal localisation example}}; + \end{scope} +\end{scope} + + + + + +\end{tikzpicture} diff --git a/022_ErrorResilience/RobustTransmissionReview.tex b/022_ErrorResilience/RobustTransmissionReview.tex index 7733d66..24b7e88 100755 --- a/022_ErrorResilience/RobustTransmissionReview.tex +++ b/022_ErrorResilience/RobustTransmissionReview.tex @@ -18,16 +18,16 @@ In general, digital communications through networks are prone to transmission errors or data loss. These errors can be handled in different ways, such as retransmission, error correction, and \ac{ec} \cite{ErrorResilience2000,PixelInterlacingIntraConcealment2011}. -This chapter reviews the main robust video coding techniques that can be applied at the \ac{vcl} to reduce the error propagation and increase the decoded video quality. -Several techniques have been proposed in the past to deal with the problem of robust video transmission, especially for video coding standards with high temporal dependencies, such as \ac{h264} and more recently \ac{hevc}. -These techniques are normally focused on the spatio-temporal dependencies in the coded streams, which are used to obtain high coding gains but lead to low error robustness~\cite{ROPE2007}. -In this chapter the error resilience and concealment schemes are divided in different categories depending on their functionality and algorithms. +This chapter reviews the main robust video coding techniques that can be applied at the \ac{vcl} to reduce the error propagation and increase the decoded video quality. +Several techniques have been proposed in the past to deal with the problem of robust video transmission, especially for video coding standards with high temporal dependencies, such as \ac{h264} and more recently \ac{hevc}. +These techniques are normally focused on the spatio-temporal dependencies in the coded streams, which are used to obtain high coding gains but lead to low error robustness~\cite{ROPE2007}. +In this chapter the error resilience and concealment schemes are divided in different categories depending on their functionality and algorithms. Although each approach is based on a different techniques they all aim at striking the most efficient balance between coding efficiency and decoded video quality under lossy conditions. -This chapter is organised as follows: Section~\ref{Section22:Localisation} describes the localisation techniques, which reduce the temporal and spatial dependencies in coded bitstreams. Section~\ref{Section22:DataPartitionRedundant} provides an overview of methods based on data partition, classification and bitstream redundancy. +This chapter is organised as follows: Section~\ref{Section22:Localisation} describes the localisation techniques, which reduce the temporal and spatial dependencies in coded bitstreams. Section~\ref{Section22:DataPartitionRedundant} provides an overview of methods based on data partition, classification and bitstream redundancy. %These techniques ease the introduction of extra information in order to recover from lost data. -Section~\ref{Section22:Concealment} covers the techniques used at the decoder-side as post-processing to reduce the effect of errors and improve visual quality and smoothness. -Section~\ref{Section22:ConcealmentAware} provides a description of methods that use \ac{ec} techniques to achieve improved error robustness. +Section~\ref{Section22:Concealment} covers the techniques used at the decoder-side as post-processing to reduce the effect of errors and improve visual quality and smoothness. +Section~\ref{Section22:ConcealmentAware} provides a description of methods that use \ac{ec} techniques to achieve improved error robustness. Finally, Section~\ref{Section22:Summary} concludes this chapter by providing a overall comparison between the different approaches. \clearpage @@ -38,8 +38,8 @@ Finally, Section~\ref{Section22:Summary} concludes this chapter by providing a o In general, most of the compression efficiency is achieved by exploiting both the spatial and temporal redundancy of video signals. Since there is high correlation between neighbouring information, predictive coding schemes are very effective to achieve higher compression gains by exploiting such correlations. However, the drawback of high predictive coding schemes is the strong dependencies between compressed symbols with great impact on error propagation. -In order to increase the robustness of video transmission, several coding mechanisms can be employed at different elements of a transmission chain to mitigate the artefacts caused by errors and data loss. -These mechanisms can be classified according to the functional characteristics and the type of problem they address~\cite{ErrorResilienceAug2005}. +In order to increase the robustness of video transmission, several coding mechanisms can be employed at different elements of a transmission chain to mitigate the artefacts caused by errors and data loss. +These mechanisms can be classified according to the functional characteristics and the type of problem they address~\cite{ErrorResilienceAug2005}. In this chapter the robust video coding techniques ere grouped into four categories: \begin{itemize} \item Localization techniques; @@ -76,9 +76,7 @@ Since these techniques break the predictive coding, they have a negative impact \begin{figure}[tb] \centering -%\subfloat{\input{./022_ErrorResilience/Figures/LocalizationTechniquesSpatial.tikz}}\\ -%\subfloat{\input{./022_ErrorResilience/Figures/LocalizationTechniquesTemporal.tikz}} -\input{./022_ErrorResilience/Figures/LocalizationTechniques_v2.tikz} +\input{./022_ErrorResilience/Figures/LocalizationTechniques.tikz} \caption{Examples of spatial and temporal error propagation and how it can be reduced using localisation techniques \cite{ErrorResilienceAug2005}.} \end{figure} @@ -183,7 +181,7 @@ Using $\check f_t^i$ as reference frame for prediction significantly decrease er \multicolumn{3}{c}{\includegraphics[width=12cm]{\TransmissionResiliencefigs/ROILeakyPrediction.png}} \\ $f_{n-1}$ & $f_{n}$ & $f_{n+1}$ \\ \end{tabular} - \caption{Example of error propagation with a \ac{roi} (shaded area indicates error, and the arrows indicate temporal predictions to previous frame) \cite{ROILeakyPred2009}.} + \caption{Example of error propagation with a ROI (shaded area indicates error, and the arrows indicate temporal predictions to previous frame) \cite{ROILeakyPred2009}.} \label{fig2:ErrorPropagationROI} \end{figure} @@ -366,7 +364,7 @@ This leads to a poor estimation of lost pixels, resulting in noticeable artefact \begin{figure}[tb] \centering \input{\ErrorConcealmentReviewFigs/LinearInterpolation} -\caption{ Lost pixel interpolation from neighbouring error-free pixels. } +\caption{Lost pixel interpolation from neighbouring error-free pixels. } \label{FIG3:pixel_interpolation} \end{figure} @@ -466,7 +464,7 @@ As mentioned before, the \ac{mc} method is a simple way of concealment a missing \begin{figure}[t] \centering \includegraphics[width=0.9\columnwidth]{\ErrorConcealmentReviewFigs/MVE} -\caption{\ac{mve} extrapolation with the corresponding extrapolated macroblock, based on the method presented in \cite{BlockBasedMVE2002}.} +\caption{Motion vector extrapolation with the corresponding extrapolated macroblock, based on the method presented in \cite{BlockBasedMVE2002}.} \label{FIG3:MVEExtrapolation} \end{figure} @@ -507,7 +505,7 @@ The \ac{hmve} method aims to find the more accurate \ac{mv} from the \ac{mv} set This algorithm is able to outperform the \ac{pmve} for different packet loss probabilities, as shown by the results in \cite{2DConcHybridMotion2010}. The method is used to conceal both I (INTRA) and P frames in video sequence compressed with the \ac{h264}, achieving more $1.09$ dB (\ac{psnr}) in the erroneous frames. %\HIGHLIGHT{HEVC} -In the case of HEVC, there are also a few works worth to be mentioned. The works presented for the \ac{hevc} standard are mainly based on temporal \ac{ec} approaches. +In the case of \ac{hevc}, there are also a few works worth to be mentioned. The works presented for the \ac{hevc} standard are mainly based on temporal \ac{ec} approaches. In~\cite{HEVCMCBlockAug2013} the block partitions of the neighbouring frames were used to improve the performance motion vector extrapolation. Using this the reconstructed frame keeps the boundaries smooth, leading to higher objective and visual quality. Moreover, in order to select only the reliable motion information, the residue information can be exploited, as shown in~\cite{HEVCMCResidueDec2013}. diff --git a/042_ConcealmentAwareEncoding/Figures/BlockDiagram.tikz b/042_ConcealmentAwareEncoding/Figures/BlockDiagram.tikz index b81a363..5769bb3 100644 --- a/042_ConcealmentAwareEncoding/Figures/BlockDiagram.tikz +++ b/042_ConcealmentAwareEncoding/Figures/BlockDiagram.tikz @@ -76,7 +76,7 @@ %% Input \node[text width=.5cm, text centered] at (-1.7,4.5) (Input) {Input video}; -\path[arrow] (Input) |- (Encoder); +\path[arrow] (Input) |- (Encoder) node[left,pos=.2] {$f$}; \path[arrow] (Input |- ConcOpt) -- (ConcOpt) node[point] at (Input |- ConcOpt) {}; %% TS Mux and output diff --git a/043_EndToEndRobustSystem/EndToEndRobustSystem.tex b/043_EndToEndRobustSystem/EndToEndRobustSystem.tex index 081ae9f..dd7f9b0 100644 --- a/043_EndToEndRobustSystem/EndToEndRobustSystem.tex +++ b/043_EndToEndRobustSystem/EndToEndRobustSystem.tex @@ -29,12 +29,12 @@ The evaluation of these methods revealed that they can efficiently increase the Therefore, it is noticeable that each method might be optimised for different applications, video characteristics and network conditions. To advance one step forward, a jointly robust coding method using different techniques can be used to increase the decoder video quality across difference conditions. -Such approach can be based on both the input contents and the network information, such as bitrate and packet loss conditions to optimise the robust coders to each application scenario. In order to overcome the above problem a jointly evaluation study is necessary to identify the most efficient techniques and to evaluate their performance for different conditions. +Such approach can be based on both the input contents and the network information, such as bitrate and packet loss conditions to optimise the robust coders to each application scenario. In order to overcome the above problem, a joint evaluation study is necessary to identify the most efficient techniques across different conditions. \subsection{Comparison of the proposed methods} -In order to develop a jointly robust coder to cope with transmission errors an evaluation study was carried out, to compare the error robustness performance of the proposed methods for different conditions with each others. +In order to develop a joint robust coder to cope with transmission errors an evaluation study was carried out, to compare the error robustness performance of the proposed methods for different conditions with each others. %This study extends the previous evaluations presented in Chapter~\ref{Chapter:ErrorResilienceTechniques}~and~\ref{Chapter:ConcealmentAwareTechniques}, as they target a wider range of test material and network conditions. The experimental evaluation carried out in this section follows the same condition described in Section~\ref{Section3:ErrorResilienceEvaluation}. %In order to perform a wider evaluation different bitrate and \acs{plr} were used. Table~\ref{Table6:TestVariables} illustrates the selected configurations. As shown in the table a total of 15 test sequences were used encoder using 5 different target bitrates. One should note that the main bitrate varies based on the test sequence and it is shown in third column of Table~\ref{TableTestSequences}. Different network conditions were evaluated using a total of 13 different \acs{plr}, with higher special focus on lower loss ratios, which are more relevant to modern video streaming applications. @@ -67,7 +67,7 @@ Figures~\ref{Figure6:AverageQualityMain}~and~\ref{Figure6:AverageQualityReductio \label{Figure6:AverageQualityReduction} \end{figure} -Results on both figures show that the proposed methods (i.e., \EXP, \EXPELTEN and \EXPELTWEN) are all able to outperform the reference \ac{hevc} for high \acs{plr}. In case of the proposed reference picture selection method (\EXP), quality gains in comparison with the \REF case are achieved for lower loss ratio, i.e., \acs{plr} as low as 2\% for all test conditions shown. +Results on both figures show that the proposed methods (\EXP, \EXPELTEN and \EXPELTWEN) are all able to outperform the reference \ac{hevc} for high \acs{plr}. In case of the proposed reference picture selection method (\EXP), quality gains in comparison with the \REF case are achieved for lower loss ratio, i.e., \acs{plr} as low as 2\% for all test conditions shown. Comparing the results for both target bitrates also shows that the proposed methods are able to achieve higher quality gains for higher bitrates. Therefore, the for a lower bitrate (see results of Figure~\ref{Figure6:AverageQualityReduction}) the proposed methods only outperform the reference method for slightly higher \acs{plr}. This is more noticeable in the \EXPELTWEN case. Summarising, the performance of the proposed methods is not similar across different video content and target bitrate, which impose a challenge on which method should be applied to achieve the highest decoded video quality in case of transmission errors. In order to achieve the highest quality the optimal trade-off between auxiliary information and video bitrate should be obtained by selecting the optimal error robust coding algorithm. diff --git a/carreira_phd_thesis.sty b/carreira_phd_thesis.sty index 1f1b1ac..801e282 100644 --- a/carreira_phd_thesis.sty +++ b/carreira_phd_thesis.sty @@ -5,7 +5,8 @@ \usepackage{subfiles} \usepackage{xspace} \usepackage{pdfpages} -\usepackage[colorlinks=false,hidelinks,pdfpagelabels]{hyperref} +%\usepackage[colorlinks=false,hidelinks,pdfpagelabels]{hyperref} +\usepackage[colorlinks=true,hidelinks,pdfpagelabels]{hyperref} %\usepackage[pdfpagelabels]{hyperref} % *** Minitoc *** @@ -91,7 +92,6 @@ \usepackage{tabularx, colortbl, booktabs, array, multirow} \newcolumntype{x}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{y}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}b{#1}} -\usepackage{slashbox} % *** FLOAT PACKAGES *** % Coloca sempre as figuras dentro das secções a que pertencem diff --git a/carreira_phd_thesis.tex b/carreira_phd_thesis.tex index 4118793..c4e8e75 100644 --- a/carreira_phd_thesis.tex +++ b/carreira_phd_thesis.tex @@ -22,7 +22,7 @@ %\includeonly{022_ErrorResilience/RobustTransmissionReview} %\includeonly{031_ErrorResilienceEvaluation/ErrorResilienceEvaluation} %\includeonly{041_ImprovedErrorResilience/ImprovedErrorResilience} -%\includeonly{042_ConcealmentAwareEncoding/ConcealmentAwareEncoding} +\includeonly{042_ConcealmentAwareEncoding/ConcealmentAwareEncoding} %\includeonly{043_EndToEndRobustSystem/EndToEndRobustSystem} \begin{document} @@ -58,11 +58,12 @@ \input{000_Preamble/abstract} %\dominitoc +\glsunsetall \tableofcontents \listoffigures \listoftables \printglossary[title=List of Abbreviations] - +\glsresetall \mainmatter % \pagenumbering{gobble} diff --git a/carreira_phd_thesis_abr.sty b/carreira_phd_thesis_abr.sty index c7ef047..36467ae 100644 --- a/carreira_phd_thesis_abr.sty +++ b/carreira_phd_thesis_abr.sty @@ -23,6 +23,8 @@ \customnewacronym{iso}{ISO}{International Organization for Standardization} \glsunset{iso} \customnewacronym{iec}{IEC}{International Electrotechnical Commission} \glsunset{iec} + + \customnewacronym{gop}{GOP}{Group of Pictures} \customnewacronym{qp}{QP}{Quantized Parameter} \customnewacronym{rd}{R-D}{\mbox{Rate-Distortion}} @@ -200,11 +202,3 @@ \def\DYNLAMBDALONG{\DYNLAMBDA \mbox{\textit{(Adaptive $\lambda$)}}\xspace} - - - - - - - - diff --git a/estgleiria.cls b/estgleiria.cls index ea577d4..576a417 100644 --- a/estgleiria.cls +++ b/estgleiria.cls @@ -263,7 +263,7 @@ T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\spacefactor1000} % {\sc\chaptertitlename\ \thechapter}{15pt} % {\Huge \thispagestyle{empty}} % [\vspace{1cm}\titlerule\minitoc\glsresetall] - \titleformat{\chapter}[display]{\normalfont\Huge\bfseries}{\sc \chaptertitlename\ \thechapter}{20pt}{\Huge \thispagestyle{empty}}[\vspace{5mm}\glsresetall] + \titleformat{\chapter}[display]{\normalfont\Huge\bfseries}{\sc \chaptertitlename\ \thechapter}{20pt}{\Huge \thispagestyle{empty}}[\vspace{5mm}] \properpagestyle \pagenumbering{arabic}}