First review - not complete

This commit is contained in:
2018-08-24 16:04:09 +01:00
parent 17f4cb9652
commit c1e79a9f27
9 changed files with 390 additions and 242 deletions
@@ -8,7 +8,7 @@ matrix,shapes.symbols,plotmarks,decorations.markings,shadows,backgrounds}
% \draw[draw=black] (0,0) rectangle ++(21.58cm,27.94cm);
\newcommand{\scale}{0.8}
\newcommand{\scale}{0.7}
% \newcommand{\TikZyslant}{-0.2}
\newcommand{\xslant}{0}
\newcommand{\xframeshift}{6.5cm}
@@ -17,84 +17,88 @@ matrix,shapes.symbols,plotmarks,decorations.markings,shadows,backgrounds}
\begin{scope}[scale=\scale]
\tikzstyle{frame_label}=[anchor=center,scale=0.9/\scale,font=\small]
\tikzstyle{frame_label}=[fill=white, inner sep=0, anchor=center,scale=0.9/\scale,font=\small]
\tikzstyle{pel}=[rectangle,draw=black, thick]
\tikzstyle{refblock}=[rectangle,draw=black!65, thick]
\tikzstyle{projectedblock}=[rectangle,draw=black, thick,dashed]
\tikzstyle{refmv}=[-latex,very thick,scale=1]
\tikzstyle{refmv}=[draw,-latex,very thick,scale=1]
\newcommand{\DrawFrame}{
%outside line
\fill[white,fill opacity=.2] (0,0) rectangle (5,5); % Opacity
\draw[black, very thick] (0,0) rectangle (5,5);
\newcommand{\DrawFrame}{
%outside line
\fill[white,fill opacity=.2] (0,0) rectangle (5,5); % Opacity
\draw[black, very thick] (0,0) rectangle (5,5);
\foreach \x in {0,...,4}
\foreach \y in {0,...,4}
{
\draw[black,loosely dashed] (\x,\y) +(0,0) rectangle ++(1,1);
}
}
\foreach \x in {0,...,4}
\foreach \y in {0,...,4}
{
\draw[black,loosely dashed] (\x,\y) +(0,0) rectangle ++(1,1);
}
}
% Frame t
\begin{scope}[ yshift=3*\TikZyfshift, xshift=2*\xframeshift,
style={yslant=\TikZyslant,xscale=\TikZxscale}]
\DrawFrame
\DrawFrame
\node[frame_label,scale=.75] at (2.4,-.4) { (1) };
\node[frame_label,scale=.75] at (-.5,1.6) { (3) };
\node[frame_label,scale=.75] at (-.5,3.6) { (2) };
\coordinate (TB1) at (1,4);
\draw[black,very thick] (TB1) +(0,0) rectangle ++(1,-1);
\coordinate (TB1) at (1,4);
\draw[black,very thick] (TB1) +(0,0) rectangle ++(1,-1);
\coordinate (TB2) at (1,2);
\draw[black,very thick] (TB2) +(0,0) rectangle ++(1,-1);
\coordinate (TB2) at (1,2);
\draw[black,very thick] (TB2) +(0,0) rectangle ++(1,-1);
\coordinate (TB3) at (3,1);
\draw[black,very thick] (TB3) +(0,0) rectangle ++(1,-1);
\coordinate (TB3) at (3,1);
\draw[black,very thick] (TB3) +(0,0) rectangle ++(1,-1);
% \node[frame_label,scale=.75] at (4,1) { (1) };
% \node[frame_label,scale=.75] at (2,2) { (3) };
% \node[frame_label,scale=.75] at (2,4) { (2) };
\end{scope}
% Frame t-1
\begin{scope}[ yshift=2*\TikZyfshift, xshift=1*\xframeshift,
style={yslant=\TikZyslant,xscale=\TikZxscale}]
\coordinate (T0B1) at (1,4);
\coordinate (T0B2) at (2,4);
\coordinate (T0B3) at (3,4);
\coordinate (T0B4) at (1,3);
\coordinate (T0B5) at (1,2);
\coordinate (T0B6) at (3,1);
\coordinate (T0B1) at (1,4);
\coordinate (T0B2) at (2,4);
\coordinate (T0B3) at (3,4);
\coordinate (T0B4) at (1,3);
\coordinate (T0B5) at (1,2);
\coordinate (T0B6) at (3,1);
% Draw temporal Dependencies
\coordinate (MVRefT02T1) at (1.5,3.5);
\draw[refmv,dashed] (TB1)++(0.5,-0.5) to (MVRefT02T1);
\coordinate (MVRef1B7) at (3.5,0.5);
\draw[refmv] (TB3)+(0.5,-0.5) to (MVRef1B7);
\coordinate (MVRef1B6) at (1.5,1.5);
\draw[refmv,dashed] (TB2)+(0.5,-0.5) to (MVRef1B6);
% Draw temporal Dependencies
\coordinate (MVRefT02T1) at (1.5,3.5);
%\path[refmv,dashed] (TB1)++(0.5,-0.5) -- (MVRefT02T1);
\path[refmv,dashed] (TB1)++(0.5,-0.5) -- (MVRefT02T1) node[pos=0.4,yshift=.3cm,frame_label,scale=.7] {(2)};
\coordinate (MVRef1B7) at (3.5,0.5);
%\path[refmv] (TB3)+(0.5,-0.5) -- (MVRef1B7);
\path[refmv] (TB3)+(0.5,-0.5) -- (MVRef1B7) node[pos=0.55,yshift=-.3cm,frame_label,scale=.7] {(1)};
\coordinate (MVRef1B6) at (1.5,1.5);
%\path[refmv,dashed] (TB2)+(0.5,-0.5) -- (MVRef1B6);
\path[refmv,dashed] (TB2)+(0.5,-0.5) -- (MVRef1B6) node[pos=0.4,yshift=.3cm,frame_label,scale=.7] {(3)};
\DrawFrame
\DrawFrame
\draw[black,very thick] (T0B1) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B2) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B3) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B4) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B5) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B6) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B1) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B2) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B3) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B4) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B5) +(0,0) rectangle ++(1,-1);
\draw[black,very thick] (T0B6) +(0,0) rectangle ++(1,-1);
% Draw spatial Dependencies
\coordinate (MVRef1B2) at (1.5,3.5);
\draw[refmv] (T0B2)+(0.5,-0.5) to (MVRef1B2);
\coordinate (MVRef1B3) at (2.5,3.5);
\draw[refmv] (T0B3)+(0.5,-0.5) to (MVRef1B3);
\coordinate (MVRef1B4) at (1.5,3.5);
\draw[refmv] (T0B4)+(0.5,-0.5) to (MVRef1B4);
\coordinate (MVRef1B5) at (1.5,2.5);
\draw[refmv] (T0B5)+(0.5,-0.5) to (MVRef1B5);
% Draw spatial Dependencies
\coordinate (MVRef1B2) at (1.5,3.5);
\draw[refmv] (T0B2)+(0.5,-0.5) to (MVRef1B2);
\coordinate (MVRef1B3) at (2.5,3.5);
\draw[refmv] (T0B3)+(0.5,-0.5) to (MVRef1B3);
\coordinate (MVRef1B4) at (1.5,3.5);
\draw[refmv] (T0B4)+(0.5,-0.5) to (MVRef1B4);
\coordinate (MVRef1B5) at (1.5,2.5);
\draw[refmv] (T0B5)+(0.5,-0.5) to (MVRef1B5);
\end{scope}
@@ -103,39 +107,37 @@ matrix,shapes.symbols,plotmarks,decorations.markings,shadows,backgrounds}
\begin{scope}[ yshift=1*\TikZyfshift, xshift=0*\xframeshift,
style={yslant=\TikZyslant,xscale=\TikZxscale}]
%Define Points
\coordinate (TM1B1) at (1,4);
\coordinate (MVRef1B1) at (1.5,3.5);
\coordinate (TM1B2) at (3,4);
%Define Points
\coordinate (TM1B1) at (1,4);
\coordinate (MVRef1B1) at (1.5,3.5);
\coordinate (TM1B2) at (3,4);
% Draw Dependencies
\draw[refmv] (T0B1)++(0.5,-0.5) to (MVRef1B1);
% Draw Dependencies
\draw[refmv] (T0B1)++(0.5,-0.5) to (MVRef1B1);
\DrawFrame
\DrawFrame
% Draw block
\draw[black,very thick] (TM1B1) rectangle ++(1,-1);
% Draw block
\draw[black,very thick] (TM1B1) rectangle ++(1,-1);
\end{scope}
% Frame number
\begin{scope}[xshift=2.5cm,yshift=5.3cm]
\node[frame_label] at (0*\xframeshift,0) { $f_{t-2}$ };
\node[frame_label] at (1*\xframeshift,0) { $f_{t-1}$ };
\node[frame_label] at (2*\xframeshift,0) { $f_{t}$ };
\node[frame_label] at (0*\xframeshift,0) { $f_{t-2}$ };
\node[frame_label] at (1*\xframeshift,0) { $f_{t-1}$ };
\node[frame_label] at (2*\xframeshift,0) { $f_{t}$ };
\end{scope}
\begin{scope}[xshift=0.5cm,yshift=-1.8cm]
\draw[refmv] (0,0) to (1.2,0);
\fill[black] (1.25,0) node[frame_label, right, scale=.8] {Valid \ac{mv} dependency};
\end{scope}
\begin{scope}[xshift=0.5cm,yshift=-1.8cm]
\draw[refmv] (0,0) to (1.2,0);
\fill[black] (1.25,0) node[frame_label, right, scale=.8] {Valid \ac{mv} dependency};
\end{scope}
\begin{scope}[xshift=0.5cm,yshift=-2.7cm]
\draw[refmv,dashed] (0,0) to (1.2,0);
\fill[black] (1.25,0) node[frame_label, right, scale=.8] {Disabled \ac{mv} dependency};
\draw[refmv,dashed] (0,0) to (1.2,0);
\fill[black] (1.25,0) node[frame_label, right, scale=.8] {Disabled \ac{mv} dependency};
\end{scope}
\end{scope}
\end{tikzpicture}
@@ -9,6 +9,7 @@ set key top right Right
set key width -8
set xrange[0:31]
set xtics 0,2,32
set title '\TitleFont Kendo'
plot '-' using 1:2 title '\KeyFont \REF' w lp ls 1, '-' using 1:2 title '\KeyFont \TIDR\cite{DynamicTMVP2011}' w lp ls 2, '-' using 1:2 title '\KeyFont \PROP' w lp ls 3
@@ -4,7 +4,11 @@
\footnotesize
\begin{tabular}{p{3cm}|x{3.5cm}|x{1.8cm}|x{1.8cm}|x{1.8cm}}
\toprule
\textbf{Sequence} & \textbf{TMVP configuration} & \textbf{Error free} & \textbf{1\% loss} & \textbf{5\% loss} \\
\multirow{2}{*}{\textbf{Sequence}} &
\multirow{2}{*}{\vbox{\centering \textbf{TMVP configuration}}} &
\multirow{2}{*}{\vbox{\centering \textbf{Error free}}} &
\multicolumn{2}{c}{\textbf{\TABLEPLRLABEL}}\\
& & & \textbf{1\%} & \textbf{5\%} \\
\midrule
\multirow{\nlines}{*}{\vbox{Basketball Drill}}
& \TIDR~\cite{DynamicTMVP2011} & -0.011 & 0.092 & 0.365\\
@@ -6,7 +6,7 @@
\toprule
\multirow{2}{*}{\textbf{Sequence}} &
\multirow{2}{*}{\vbox{\centering \textbf{TMVP configuration}}} &
\multicolumn{3}{c}{\textbf{Packet loss rate}}\\
\multicolumn{3}{c}{\textbf{\TABLEPLRLABEL}}\\
& & \textbf{1\%} & \textbf{3\%} & \textbf{5\%} \\
\hline
\multirow{\nlines}{*}{\vbox{Basketball Drill}} %
@@ -6,7 +6,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% CHAPTER
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{A Method to Increase the Error Robustness of HEVC}
\chapter{Error robustness of HEVC - Evaluation and improvements}
\label{Chapter:HEVCErrorResilience}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -14,12 +14,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
The \ac{hevc} standard is expected be used by the same range of applications as its predecessors (\emph{e.g.}, H.264/AVC), such as, broadcasting, internet streaming, two-way communications, and storage~\cite{HEVCLayerIntegrationDez2012}.
More advanced prediction structures, as presented in Section~\ref{Chapter:HEVCReview}, allow bitrate savings, but also to some disadvantages, such as increased complexity~\cite{PerformanceComplexityDez2012} and reduced error robustness. Therefore, it is important to evaluate the error robustness of the current standard in order to check for its weaknesses. This can provide relevant insights on future directions on how to improve the standard robustness to transmission losses.
The results provided by this experimental study allowed to improve the \ac{hevc} encoder in order to avoid ...
In this chapter an error resilience evaluation of the \ac{hevc} is presented in Section~\ref{Section3:ErrorResilienceEvaluation}. The evaluation covers different coding configuration to evaluate the individual impact of some of the new coding features introduced, e.g., increased partition size, intra-refreshing, slice partitioning and advanced motion vector prediction. In Section~\ref{Section3:DynamicMVRefreshHEVC} a novel method to increase the error robustness of the \ac{hevc} \ac{mv} coding is presented and evaluated against existing techniques. Finally, Section~\ref{Section3:Summary} concludes this chapter.
The use of \ac{hevc} in different type of application and video services over networks that are prone to errors and packet losses, requires mechanisms to minimise the effect o such probabilistic events. This chapter starts by presenting an evaluation study about the error resilience of \ac{hevc} in Section~\ref{Section3:ErrorResilienceEvaluation} , with the aim of defining the weak elements of coded streams and level of error robustness under different transmission loss conditions. The evaluation study covers different coding configuration to evaluate the individual impact of some new coding tools introduced, e.g., increased partition size, intra-refreshing, slice partitioning and advanced motion vector prediction.
In Section~\ref{Section3:DynamicMVRefreshHEVC} a novel method to increase the error robustness of the \ac{hevc} \ac{mv} coding is presented and evaluated against existing techniques. The method proposed introduces refresh point in the motion prediction used in the \ac{hevc}, which significant reduces the impact of mismatch \ac{mv} predictions.
Finally, Section~\ref{Section3:Summary} concludes this chapter.
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30,25 +27,32 @@ In this chapter an error resilience evaluation of the \ac{hevc} is presented in
\subsection{Motivation and objectives}
As mentioned before the \ac{hevc} standard provide improvements in terms of coding efficiency, however at the cost of more advanced predictions structures, which increases complexity and bitstream dependencies.
Although the complexity may not pose significant problems due to the rapid evolution of hardware technologies, reduced error robustness strongly affects quality under packet loss conditions.
As mentioned before the \ac{hevc} standard has improved its predecessor in terms of coding efficiency,
higher complexity and data dependencies, mostly resulting from advanced predictions structures.
Although the increased complexity may be compensated with more efficient algorithms and faster hardware technologies, the impact of higher coding efficiency on reducing error robustness strongly affects the video quality under packet loss.
A critical aspect related to the performance of robust video streaming methods is the error detection accuracy.
Since \ac{hevc} streaming is expected to use known transport technologies, such as RTP~\cite{HEVCStreamMay2012}, MPEG-2 TS~\cite{HEVCLayerIntegrationDez2012}, or more recent standards as MPEG-DASH~\cite{HEVCHTTPStreamAug2016} and MPEG Media Transport\cite{ATSCMMT2016}, their error detection capabilities have significant impact on the overall system performance.
Since \ac{hevc} streaming is expected to use known transport technologies, such as RTP~\cite{HEVCStreamMay2012}, MPEG-2 TS~\cite{HEVCLayerIntegrationDez2012}, or more recent standards as MPEG-DASH~\cite{HEVCHTTPStreamAug2016} and MPEG Media Transport\cite{ATSCMMT2016}, the error detection capabilities of the underlying transport protocols have significant impact on the overall system performance.
In general, the error detection operation at the transport layers is decoupled from the video coding layer.
The encoding side implements the robust coding methods, while the efficient recovery of lost video data is implemented in the decoder.
Between them, an inter-layer signalling ensures that the decoder is given the necessary information to identify the lost slices/frames in the video data. Therefore, stream robustness can be investigated on its own, assuming any possible form of error detection and streaming technologies. This is the main focus of the study presented in this chapter.
To cope with transmission errors the encoding side implements robust coding methods, while the efficient recovery of lost video data is implemented in the decoder through error concealment algorithms.
Between them, signalling between different protocol layers ensures that the decoder is given the necessary information to identify the lost slices/frames in the video stream.
Therefore, the error robustness of video streams can be investigated on its own, assuming any possible form of streaming technologies and error detection.
This is the main focus of the study presented in this section.
The are some studies presented in the past regarding the error robustness of the \ac{hevc} standard which are worth to be mention as they provide relevant insights for the research of carried out in this research work. In~\cite{StudyHEVCErrorsDez2012} the both the coding efficiency and error robustness of the \ac{hevc} are evaluated, and compared against the \ac{h264}. Experimental results show that \ac{hevc} has reduced error robustness despite its increased coding efficiency. A subjective analysis is presented in~\cite{SubjectiveEvalSep2013,QoEHEVCMay2014} revealing that packet loss ratios higher than $3\%$ have a significant effect on the perceived video quality. In both works it is concluded that the robustness of \ac{hevc} decreases for high motion sequences. Moreover, in~\cite{DynamicTMVP2011} a the vulnerability of \ac{mv} prediction is presented and its impact of the error robustness is evaluated, showing its weak error resilience in contrast with the coding improvements. Summarising, the decreasing in error robustness is mostly due to the strong decoding dependencies imposed by the highly complex prediction modes of \ac{hevc}, which are selected according to a rate distortion optimisation criteria, assuming error-free transmission\cite{ROPE2007}.
There are some studies presented in the past regarding the error robustness of the \ac{hevc} standard which are worth to be mention as they provide relevant insights for the research of carried out in this research work. In~\cite{StudyHEVCErrorsDez2012,HEVCWireless_2016} both the coding efficiency and error robustness of the \ac{hevc} are evaluated and compared against the \ac{h264}. Experimental results confirm that \ac{hevc} has reduced error robustness despite its increased coding efficiency.
A subjective evaluation study is presented in~\cite{SubjectiveEvalSep2013,QoEHEVCMay2014} revealing that packet loss ratios higher than $3\%$ have significant effect on the perceived video quality.
%In both works it is concluded that the robustness of \ac{hevc} decreases for sequences complex motion.
The vulnerability of \ac{mv} prediction was investigated and its impact on the error robustness was evaluated \cite{DynamicTMVP2011}. Moreover, a method to introduce \ac{mv} refresh points was proposed, achieving average \ac{psnr} gains of approximately 3~dB.
Summarising, the decrease in error robustness is mostly due to the strong data dependencies imposed by the highly complex prediction modes of \ac{hevc}. Since these are selected according to a rate distortion optimisation criterion, assuming error-free transmission, the decoder faces a different problem whenever errors or data loss occur in the transmission network \cite{ROPE2007}.
This section presents an error robustness evaluation of the \ac{hevc} standard. This study focus on the novel techniques introduced extending the generic studies presented in previous works mentioned above. This study may provide relevant insights for future directions where the error robustness problem should be tackled in the \ac{hevc} standard.
The following cases studies are covered in this experimental evaluation:
The following sub-sections present an error robustness evaluation of \ac{hevc}, focused on the impact of the novel coding techniques introduced in the standard and extending the generic studies presented in previous works. This study provides relevant insights for research directions and motivation to investigate solutions for the error robustness problem in \ac{hevc}.
The following case-studies are covered in this experimental evaluation:
\begin{enumerate}
\item different maximum \ac{cu} sizes to evaluate the impact of higher larger frame partitioning;
\item different maximum \ac{cu} sizes to evaluate the impact of larger frame partitioning;
% \item experiments with and without filter operations, i.e., deblocking filter and \ac{sao}, in order to evaluate their impact on decoding video quality;
\item results for difference distances between intra frames, i.e., evaluate the impact of introducing different amount of refresh points to the overall quality;
\item different slice partitioning schemes by varying the number of bytes per slice;
\item different \ac{mv} coding schemes using different types of \ac{mv} candidates, with an analysis at the spatial and temporal level.
\item different distances between intra frames to evaluate the impact of introducing different number of refresh points;
\item different slice partitioning schemes;
\item different \ac{mv} coding schemes using different types of \ac{mv} candidates, with analysis at the spatial and temporal level.
\end{enumerate}
\subsection{Characterisation of the experiments}
@@ -56,34 +60,32 @@ The following cases studies are covered in this experimental evaluation:
\input{031_ErrorResilienceEvaluation/TablesSequences.tex}
The experimental setup used in this work to evaluate the error robustness of the \ac{hevc} standard used thirteen test sequences, which were chosen to cover different types of motion and texture complexity.
The experimental setup used in this study to evaluate the error robustness of the \ac{hevc} used thirteen test sequences, which were chosen to cover different types of motion and texture complexity.
% Each sequence comprises 240 frames and the whole set covers.
Table~\ref{TableTestSequences} presents a summary of the main characteristics of the video sequences. Appendix~\ref{Appen:Sequences} shows a list of the first frame of each test sequence.
In order to evaluation the spatial and temporal complexity of the video sequences the following metrics \cite{ITUTP9112008} were used:
Table~\ref{TableTestSequences} presents a summary of the main characteristics of the test sequences. Appendix~\ref{Appen:Sequences} shows the first frame of each test sequence.
The spatial and temporal complexity of these video sequences was measured by using the following metrics \cite{ITUTP9112008}:
\begin{itemize}
\item {\ac{si}} based on Sobel filter. Each video frame ($f_t$) is firstly filtered, then the standard deviation is computed. Finally, the maximum value over time is chosen to represent the \ac{si} metric. This process can be represented in the following equation:
\begin{equation}
SI = max_{time}\Big\{ std_{space} \big( Sobel\left(f_t\right) \big) \Big\}.
\end{equation}
\item {\ac{ti}} based upon the motion difference feature, which is the difference between the pixel values at the same location in space but in consecutive time instances. \ac{ti} is computed as the maximum over time of the standard deviation over space. More motion in adjacent frames will result in higher values of \ac{ti}. This process can be represented by the following:
\item {\ac{ti}} based upon the motion difference, which is given by the difference between the pixel values at the same spatial location but in consecutive time instances. \ac{ti} is computed as the maximum over time of the standard deviation over space. More motion in adjacent frames will result in higher values of \ac{ti}. This process can be represented by the following:
\begin{equation}
TI = max_{time}\Big\{ std_{space} \big( f_{t}(x,y) - f_{t-1}(x,y) \big) \Big\}.
\end{equation}
\end{itemize}
The values of the metrics described above are represented in the Table~\ref{TableTestSequences} (see second column).
The values of \ac{si} and \ac{ti} calculated for the test sequences are shown in the Table~\ref{TableTestSequences} (see second column).
The experimental results for this study were obtained by using the HM reference software, version $16.2$.
The sequences were encoded with an IDR period of $16$ frames and all the coding modes enabled, following two recommended configurations: Low-Delay (P-frames with 4 references frames) and Random-Access (B-frames with 2 reference frames in each list)~\cite{HEVCCommonTests2012}.
In order to achieve high quality images for all coded sequences (i.e., \ac{psnr} around 40 dB) different bitrates were used.
For the simulation carried out in this study the HM reference software, version $16.2$, was used \cite{HEVCReferenceSoftware162}.
The sequences were encoded with an \ac{idr} period of $16$ frames and all the coding modes enabled, following two recommended configurations: Low-Delay (P-frames with 4 references frames) and Random-Access (B-frames with 2 reference frames in each list)~\cite{HEVCCommonTests2012}.
In order to achieve high quality images for all coded sequences (i.e., \ac{psnr} around 40 dB) different bitrates were used, as listed in Table~\ref{TableTestSequences}.
Moreover, the ratio of inter-coded blocks of each coded sequence using the default coding parameters is also shown in the third column of the table to illustrate the predictions distribution.
%The following bitrates were selected to achieve high quality (i.e., around 40 dB): 1.0 Mbits/s (Kendo), 1.5 Mbits/s (Book Arrival), 4.0 Mbits/s (BQSquare, Park Scene and Race Horses) and 12.0 Mbits/s (People on Street).
% At the decoder side, error concealment is based on motion compensation from previously decoded frames.
% The motion field of a missing frame is obtained applying \ac{mv} extrapolation from the two closest neighbours.
% Afterwards, the final \acs{mv} are selected based on the residual energy of their original prediction~\cite{HEVCMCResidueDec2013}.
To simulate the lossy transmission environment, each frame is encoded into several slices, each one packetized into one \ac{nal} unit, which are then transmitted as the payload of independent packets.
In our experiments a whole packet is lost whenever an error occurs, originating a lost slice.
In these simulations a whole packet is lost whenever an error occurs, originating a lost slice.
Random packet loss was simulated using a two-state Markov model for \ac{plr} of 1\%, 3\%, 5\%, 10\%.
For each test condition, 50 runs were performed and the average \ac{psnr} was measured.
The filtering operations were disabled at slices boundaries in order to keep the slices self-contained. The remaining configurations have been kept at their default values as given in the common test conditions~\cite{HEVCCommonTests2012}.
@@ -92,9 +94,18 @@ The filtering operations were disabled at slices boundaries in order to keep the
\subsection{Evaluation of the impact of the partition units size}
%The \ac{hevc} standard introduced new partitioning schemes to allow coding improvements in high resolution videos. These partition structures, named \glsfirst{cu}, are allowed to be as large as $64\times64$ pixels.
In the first set of experiments the impact of the maximum \ac{cu} size in the decoded video quality is investigated. In this experiment the maximum \ac{cu} size is set to three different sizes, i.e., 16$\times$16, 32$\times$32 and 64$\times$64 pixels. The lower size is targeting the \ac{mb} size used in the \ac{h264}.
Table~\ref{Table3:Quality_BlockSize} shows the average \ac{psnr} obtained for the three test conditions and for four different packet loss ratios. Results for the error-free scenario shows a consistent quality increase as the maximum \ac{cu} size increases, up to a maximum of 1.41 dB for the Tennis sequence when comparing the maximum \ac{cu} size of $64\times64$ with $16\times16$.
This confirms the principle used by the \ac{hevc} standard, that allowing larger coding units lead to higher coding efficiency, achieving a maximum of 1.41~dB for the Tennis sequence which has the higher \ac{ti} parameter (see Table~\ref{TableTestSequences}). Moreover, it is also noticeable that sequences with higher amount of inter-coded blocks take less advantage of the larger \acs{cu}, by the results of the BQSquare sequence (i.e., highest ratio of inter-coded blocks and lowest quality gain in the error-free case).
Overall, comparing the results for the error-free and data loss cases it is noticeable that similar quality gains are obtained, which are achieved due to the superior coding efficiency of larger \acs{cu}. In most of the cases the quality gains slightly decrease for increasing \acs{plr}.
Therefore, one may conclude that the error robustness of \ac{hevc} streams is not affected by limiting the maximum \ac{cu} size. \HERE
The \ac{hevc} standard introduced new partitioning schemes to allow coding improvements in high resolution videos. These partition structures, named \glsfirst{cu}, are allowed to be as large as $64\times64$ pixels. In the first set of experiments the impact of the maximum \ac{cu} size in the decoded video quality is investigated. In this experiment the maximum \ac{cu} size is set to three different sizes, i.e., 16$\times$16, 32$\times$32 and 64$\times$64. The lower size is targeting the \ac{mb} size used in the H.264/AVC.
%Results for the case of data loss indicate that using larger coding units leads to higher video quality.
%
%that larger coding units should be maintained. Even though larger frame partitions lead to larger coding dependencies, it will not affect the robustness to packet loss and error propagation. This is mainly due to the fact that error propagation occurs mostly in complex and moving regions, which normally are coded using smaller partition units.
\begin{table}[!t]
\centering
@@ -102,29 +113,27 @@ The \ac{hevc} standard introduced new partitioning schemes to allow coding impro
\label{Table3:Quality_BlockSize}
\TABLESVSPACE
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/TableCUSizes.tex}
\vspace{2mm}
\end{table}
Table~\ref{Table3:Quality_BlockSize} shows the average \ac{psnr} obtained for the three condition tested, for error-free and 4 different packet loss ratios. Results for the error-free scenario shows a consistent quality increasing as the maximum \ac{cu} size increases, to a maximum of 1.41 dB for the Tennis sequence when comparing the maximum \ac{cu} size of $64\times64$ with $16\times16$. This confirms the principle used by the \ac{hevc} standard, that larger coding units lead to higher coding efficiency. In case of data loss, results indicate that larger coding units should be maintained. Even though larger frame partitions lead to larger coding dependencies, it will not affect the robustness to packet loss and error propagation. This is mainly due to the fact that error propagation occurs mostly in complex and moving regions, which normally are coded using smaller partition units.
Figure~\ref{Figure3:BlockPartitionBask} illustrates an example of the frame partitions for a region of the Basketball Drill sequence for two cases: (i) maximum \ac{cu} size of $64\times64$ and (i) maximum \ac{cu} size of $16\times16$.
As shown, in the moving regions, e.g., moving player, the partitions obtained for both cases have a similar pattern, mainly composed of \acs{cu} with small size. Larger \acs{cu} are only used in the floor which has a lower spatial complexity and suffers small changes between frames, therefore, easier to compress with $64\times64$ \acs{cu}. Moreover, those regions can be recovered more accurately using neighbouring information (spatial and temporal) correctly decoded, thus not incurring in severe error propagation.
Therefore, the overall error robustness is not affected by reducing the maximum \ac{cu} size. One may conclude that the use of larger coding units is able to improve the overall \ac{hevc} efficiency in error-free and error prone applications.
\begin{figure}[t]
\begin{figure}[!t]
\centering
% \small
\renewcommand{\FIGSIZE}{0.35\textwidth}
\renewcommand{\FIGSIZE}{0.4\textwidth}
% \resizebox{\columnwidth}{!}{
\begin{tabular}{y{.45\columnwidth}y{.45\columnwidth}}
\small
\includegraphics[width=\FIGSIZE]{\HEVCRobustnessEvaluation/Bask_Partitions_16.png} &
\includegraphics[width=\FIGSIZE]{\HEVCRobustnessEvaluation/Bask_Partitions_64.png} \\
(a) $16\times16$ & (b) $64\times64$ \\
\end{tabular}
% }
\caption{Illustration of the block partition and prediction mode for a region of the Basketball Drill sequence.}
\caption{Block partition and prediction mode for a region of the Basketball Drill sequence.}
\label{Figure3:BlockPartitionBask}
\end{figure}
Figure~\ref{Figure3:BlockPartitionBask} illustrates an example of the frame partitions for a region of the Basketball Drill sequence for two cases: (i) maximum \ac{cu} size of $64\times64$ and (i) maximum \ac{cu} size of $16\times16$. As shown, in the moving regions, e.g., moving player, the partitions obtained for both cases have a similar pattern, mainly composed of \acs{cu} with small size. The differences in the size of the \acs{cu} are only noticeable in the background, which is less prone to errors. Therefore, the overall error robustness is not affected by reducing the maximum \ac{cu} size. One may conclude that the use of larger coding units is able to improve the overall \ac{hevc} efficiency in error-free and error prone applications.
% \subsection{Impact of filtering operation}
%
% The \ac{hevc} introduced new in-loop filter operations, extending the deblocking filter of the H.264/AVC. One of the filtering operations present in the standard is the \glsfirst{sao}. As mentioned before, the filter is able to reduce the reconstruction distortion by conditionally adding an offset value to each sample after the application of the deblocking filter. In this sub-section the impact of the \ac{sao} is evaluated, by comparing the quality obtained under packet loss with the filter enabled and disabled.
@@ -143,62 +152,79 @@ Figure~\ref{Figure3:BlockPartitionBask} illustrates an example of the frame part
\subsection{Evaluation of the impact of intra refreshing}
In this sub-section the relation between the temporal distance of consecutive intra-coded frames, i.e., period of the intra frames, and the video quality under transmission errors is evaluated.
As the intra-coded frames have no dependencies to prior coded pictures, they introduce a refreshing point into the bitstream, which stops temporal error propagation along several frames or slices.
This allows the decoder to recover from frame/slice loss and continue error-free decoding seamlessly.
\begin{figure}[!t]
\centering
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsIntra.tex}
\caption{Decoded video quality for different intra periods, i.e., distance between intra-frames.}
% \caption{Decoded video quality for different intra periods, i.e., distance between intra-frames (Complementary results in Figure~\ref{Appendix:Figure3:QualityvsIntra}).}
\caption{Decoded video quality for different intra periods.}
% \caption{Decoded video quality for different intra periods, i.e., distance between intra-frames (Complementary results in Figure~\ref{Appendix:Figure3:QualityvsIntra}).}
\label{Figure3:QualityvsIntra}
\end{figure}
In this section the relation between the distance of subsequent intra-coded frames, i.e., period of the intra frames, and the quality under errors is evaluated. As the intra-coded frames have no dependencies to prior coded pictures, they introduce a refresh point into the bitstream. This allows the decoded to recover from slice loss and continue a error-free decoding.
Figure~\ref{Figure3:QualityvsIntra} shows the average decoded video quality (\ac{psnr}) for different distance of intra frames, covering \acs{plr} between 3\% and 5\%.
Results in the figure indicate that as the distance between intra frames increases, the decoded video quality significantly decreases.
The quality decreasing is especially noticeable for intra periods higher than 32 frames, indicating that temporal distances greater than approximately one second are not suitable for video streaming under error-prone conditions.
When a high temporal distance between intra frames is used, the quality decreasing is more noticeable in the People On Street and BQSquare sequences, which have higher spatial complexity (see values for \ac{si}), leading to a reduction of 13 dB and 14 dB, respectively. As spatial complexity increases the encoder rely more on temporal predictions making the bitstream more prone to error propagation.
\HERE
Results on Figure~\ref{Figure3:QualityvsIntra} shows the average decoded video quality for different distance of intra frames. The figure covers packet loss ratios between 3\% and 5\%. Results indicate that has the distance between intra frames increases the decoded video quality significantly decreases. This is especially noticeable for an intra period higher than 32 frames, indicating that it is not suitable for video streaming under error-prone conditions.
One should also be noted from the results of Figure~\ref{Figure3:QualityvsIntra} that using a small distance between intra frames is not always more efficient. Since intra frames require higher amount of bytes, the overall coding efficiency is reduced, resulting in an overall quality decreasing even with a 5\% f \ac{plr}. This is clear noticeable for the Four People sequence. From the results for Park Scene and Cactus sequences it can be concluded that using sixteen frames between refresh points (i.e., intra frames) achieves an acceptable efficiency under errors, without compromising the coding efficiency.
One should also note from the results of Figure~\ref{Figure3:QualityvsIntra} that using a small distance between intra frames is not always more efficient.
Since intra frames require higher amount of bits, the overall coding efficiency is reduced, resulting in an overall quality that decreases even in data loss conditions.
This is clear noticeable for the Four People sequence, where increasing the intra period from 8 to 16 leads to a quality increasing of 1 dB for 5\% of \ac{plr}.
For the remaining sequences it can be concluded that using sixteen frames (not higher than half a second) between refresh points (i.e., intra frames) achieves an acceptable efficiency under errors. This provides an efficient trade-off between compression efficiency and error robustness in case of data loss.
\subsection{Evaluation for using different slice partitioning schemes}
The partitioning of the \acs{ctu} into different slices introduce flexibility into video bitstream, by introducing spatial refresh points and avoiding the error propagation across different \acs{ctu}. In this section the amount of bytes per slices is evaluated, since it the most efficient partitioning scheme in the \ac{hevc} standard that suits the network requirements of fixed packaging. As a reference for comparison a single slice per frame is also evaluated.
The partitioning of the \acs{ctu} into different slices increase the flexibility of video streams to be partitioned into different packets, thus adapting them to the video transmission system.
By partitioning the coded video frame into different slices spatial refresh points are introduced, limiting the error propagation across different \acs{ctu}.
In this sub-section the amount of bits per slice is evaluated, in order to evaluate the influence of different schemes on the error robustness of \ac{hevc} streams. The quality obtained different mode is compared in order to find the most efficient that suits for video transmission under data loss conditions.
%As a reference for comparison a single slice per frame is also evaluated.
\begin{figure}[!t]
\centering
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsSlices.tex}
\caption{Decoded video quality for different slice partitioning schemes.}
%\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsSlices.tex}
%\caption{Decoded video quality for different slice partitioning schemes (Complementary results in Figure~\ref{Appendix:Figure3:SlicePartitioning}).}
\label{Figure3:SlicePartitioning}
\centering
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsSlices.tex}
\caption{Decoded video quality for different slice partitioning modes.}
%\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsSlices.tex}
%\caption{Decoded video quality for different slice partitioning schemes (Complementary results in Figure~\ref{Appendix:Figure3:SlicePartitioning}).}
\label{Figure3:SlicePartitioning}
\end{figure}
Figure~\ref{Figure3:SlicePartitioning} shows the average \ac{psnr} for three difference slice partitioning schemes. Results reveals a clear impact of the slice partitioning on the error robustness of the \ac{hevc}, as the quality degradation as the \ac{plr} increases varies for each scheme.
Figure~\ref{Figure3:SlicePartitioning} shows the average \ac{psnr} for three difference slice partitioning modes and different \acs{plr}.
The first mode uses a single slice per frame, corresponding to the case where slice partitioning is disabled.
The two remaining are characterised by a different amount of bits per slice, namely 1200 and 2400 bytes per slice, respectively. In these two cases each frame has a variable number of slices. \HERE
Results reveals a clear impact of the slice partitioning on the error robustness of the \ac{hevc}, as the quality degradation as the \ac{plr} increases varies for each scheme.
Firstly it is clearly notice the disadvantage of using a single slice per frame as it leads to the lower quality when comparing the test cases studied. This is due to the lack of refresh points within a frame, resulting in loss events that affects the whole frame which will propagate to the subsequent inter predicted frames.
Secondly, comparing slices of different sizes, i.e., comparing the use of 1200 and 2400 bytes per slice, reveals that using small slices leads to higher quality which is able to overcome the inherent degradation on coding efficiency due to higher amount of slice headers.
\subsection{Motion vector coding impact on error propagation}
\begin{figure}[!t]
\centering
\renewcommand{\FIGSIZE}{0.75\textwidth}
\input{031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsMergeCand.tex}
\caption{Average quality using different number of \ac{mv} candidates.}
\label{Figure3:AvgPSNRMergeCandidates}
\end{figure}
In \ac{hevc}, new motion vector prediction modes are introduced, such as the \ac{amvp} and Merge Mode~\cite{MotionCodingHEVC2011}. In this section the the error robustness of the Merge Mode is evaluated, which predicts \acs{mv} for the current block from its neighbours, which obviously leads to prediction mismatches at the decoder side in case of packet loss.
In \ac{hevc}, the new \ac{mv} prediction modes known as \ac{amvp} and Merge Mode~\cite{MotionCodingHEVC2011} may be significant contributors to poor performance under transmission errors. These modes are characterised by coding the motion information using previously encoded \acs{mv}, which obviously leads to prediction mismatches at the decoder side when such neighbouring information is missing due to network losses.
Therefore, in this sub-section the impact of using spatial and temporal \ac{mv} candidates on the decoded video quality under errors is evaluated.
\subsubsection{Spatial \ac{mv} candidates}
The first set of experiments aimed to evaluate the impact of using several \ac{mv} candidates in the Merge Mode. As mentioned before, \ac{hevc} allows up to five candidates to be used, which may increase the amount of spatial dependencies.
In order to check the impact of the \ac{mv} candidates, different coding configurations were used, by reducing the number of available candidates. Figure~\ref{Figure3:AvgPSNRMergeCandidates} shows the average quality results for the Basketball Drill sequence under different packet loss conditions. The results show that, besides the amount of \ac{mv} candidates, the error resilience of the \ac{hevc} is not compromised.
The first set of experiments aimed to investigate the impact of the amount of spatial \ac{mv} candidates in the video quality.
As mentioned before, \ac{hevc} allows up to five candidates to be used, which can be provided solely by spatial neighbours. In order to check the impact of the \ac{mv} candidates, different coding configurations were used, each one characterised by different amounts of spatial \ac{mv} candidates, i.e., 1, 3 and 5 \acs{mv}.
\begin{table}[t]
\begin{figure}[!t]
\centering
\renewcommand{\FIGSIZE}{0.75\textwidth}
\input{031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsMergeCand.tex}
\caption{Average quality using different number of \ac{mv} candidates.}
\label{Figure3:AvgPSNRMergeCandidates}
\end{figure}
Figure~\ref{Figure3:AvgPSNRMergeCandidates} shows the average quality results for the Basketball Drill and People On Street sequences under different packet loss conditions.
The results show that, besides the number of \ac{mv} candidates, similar quality decreasing is achieved as the \ac{plr} increases. Therefore, one may conclude that varying the number of available \ac{mv} candidate does not affect the error resilience of the \ac{hevc}.
\begin{table}[!t]
\newcommand{\somespaces}{}
\newcommand{\colwidth}{1.8cm}
\centering
@@ -218,57 +244,61 @@ In order to check the impact of the \ac{mv} candidates, different coding configu
\end{tabular}
\end{table}
The occurrence rate for each spatial \ac{mv} candidate was analysed in order to check if they are uniformly used. Table~\ref{Table3:MergeIdxRatio} shows the use of each \ac{mv} candidate when three and five candidates are available. The results indicate that most predictions use the first candidate and minor differences occur by adding 2 or more \acs{mv}.
Since the mostly used \acs{mv} are the initial ones, changing the number of available candidates does not significantly affects the error resilience.
Moreover, the slice partitioning scheme used (\emph{i.e.}, 1200 bytes per slice) adds more refresh points in each frame reducing the spatial error propagation due to mismatch \ac{mv} predictions.
% \HERE
The occurrence rate for each spatial \ac{mv} candidate was analysed in order to check whether they are uniformly used.
Table~\ref{Table3:MergeIdxRatio} shows the usage percentage of each \ac{mv} candidate when three and five candidates are available, for the slice partitioning mode of 1200 bytes/slice. The results indicate that most predictions use the first candidate and minor differences occur by adding 2 or more \acs{mv}.
Since the mostly used \ac{mv} candidates are the initial ones, changing the number of available candidates does not significantly affects the error resilience.
Moreover, the slice partitioning mode used only 1200 bytes per slice, which introduces refresh points in each frame, reducing the spatial error propagation due to mismatched \ac{mv} predictions.
\subsubsection{Temporal \ac{mv} candidates}
\begin{figure}[!t]
\centering
\renewcommand{\FIGSIZE}{0.76\textwidth}
% \includegraphics[width=\FIGSIZE,page=2]{\HEVCRobustnessEvaluation/PSNRvsFrameSingleFrameTMVP}
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsFrameSingleFrameTMVP}
\caption{Error propagation for Kendo sequence when Frame~\#6 is lost for the Low-Delay configuration.}
\label{Figure3:PSNRvsFrameErrorFreeConc}
\end{figure}
The second set of experiments aimed to find the influence of losing temporal motion predictors on the error resilience of the \ac{hevc} standard.
In order to perform this test, a single frame is lost, and the error propagation is evaluated for two configurations: with the temporal \ac{mv} candidate enabled and disabled.
Figure~\ref{Figure3:PSNRvsFrameErrorFreeConc} illustrates the error propagation, when a single frame is lost. For this particular experiment a intra-refreshing period of 32 frames was used to evaluate a long error propagation period.
The second set of experiments aimed to find the influence of losing temporal motion predictors on the error resilience of \ac{hevc}.
In order to perform this test, a single frame loss in enforced, and the error propagation is evaluated for two configurations: (i) with the temporal \ac{mv} candidate enabled and (ii) disabled.
Figure~\ref{Figure3:PSNRvsFrameErrorFreeConc} illustrates the error propagation, when a single frame is lost. For this particular experiment the effect of intra-refreshing period of 32 frames was used to evaluate a long error propagation period.
The results show that when the \ac{tmvp} mode is enabled, the loss of Frame \#6 leads to significant reduction in the reconstruction quality of the subsequent frames.
% This is true even for sequences with low motion activity as per Table~\ref{tab:sequences}.
On the contrary, when the temporal \ac{mv} candidate is disabled, motion information on subsequent frames is not affected by the loss of a single frame, since it is not temporal dependent, achieving significant quality increasing. This is more noticeable in the Low-Delay configuration since more error propagation occurs in P-frames and it is propagated for several frames until an intra frame is decoded.
On the contrary, when the temporal \ac{mv} candidate is disabled, the motion information on subsequent frames is not affected by the loss of a single frame and significantly higher quality is achieved. This is the effect of breaking the temporal dependencies between \acs{mv}, which prevents erroneous \acs{mv} to propagate throughout the set of dependent frames.
%This is more noticeable in the Low-Delay configuration because more error propagation occurs in P-frames and several frames are affected until an intra frame is decoded (refresh point).
\begin{table}[!t]
\centering
%\caption{Average \ac{psnr} using different motion vector candidates.}
\caption{\ac{psnr} under random packet loss.} \label{Table3:AvgPSNRWithoutTMVP}
\TABLESVSPACE
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/TableMVPs.tex}
\end{table}
\begin{figure}[!t]
\centering
\renewcommand{\FIGSIZE}{0.76\textwidth}
% \includegraphics[width=\FIGSIZE,page=2]{\HEVCRobustnessEvaluation/PSNRvsFrameSingleFrameTMVP}
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/PSNRvsFrameSingleFrameTMVP}
\caption{Error propagation for Kendo sequence when Frame~\#6 is lost for the Low-Delay configuration.}
\label{Figure3:PSNRvsFrameErrorFreeConc}
\end{figure}
In order to further evaluate the impact of the temporal \ac{mv} dependencies, the \ac{hevc} streams were subject to random packet losses.
In order to further evaluate the impact of the temporal \ac{mv} dependencies on the error propagation, the \ac{hevc} streams were subject to random packet losses.
Table~\ref{Table3:AvgPSNRWithoutTMVP} presents the average quality results, measured using the \ac{psnr}.
As expected, the results indicate that in error free environment, \ac{hevc} achieves higher quality by enabling the \ac{tmvp} candidate, since it presents higher compression efficiency due to more \ac{mv} predictors in the Merge Mode. This is true for all common test conditions, \emph{i.e.}, both Low Delay and Random Access.
However, in the presence of errors, the quality significantly decreases due to low error robustness when temporal \ac{mv} candidates are used, resulting in an average of 2.65 dB of \ac{psnr} increasing when temporal \ac{mv} predictor is disabled across all configuration tested.
The results also show that the negative impact of using temporal \ac{mv} dependencies decreases as the number of B-frames increases. The average gain of disabling the temporal \ac{mv} predictor is 4.51 dB (Low Delay) and 0.78 dB (Random Access).
This also confirms the previous results of Figure~\ref{Figure3:PSNRvsFrameErrorFreeConc}.
A higher negative impact is obtained when only P-frames are used, since subsequent frames are temporally closer, leading to more accurate temporal \ac{mv} candidates.
As expected, the results indicate that in error-free conditions higher quality is achieved by enabling the \ac{tmvp} candidate, since higher compression efficiency is obtained because more \ac{mv} predictors are used.
This is true for all both test conditions, \emph{i.e.}, both Low-Delay and Random-Access.
However, in the presence of errors, the video quality significantly decreases due to low error robustness when temporal \ac{mv} candidates are used. Alternatively, average quality up to 5.17 dB of \ac{psnr} when the temporal \ac{mv} predictors are disabled is achieved in the Low-Delay configuration.
The results also show that the negative impact of using temporal \ac{mv} dependencies is smaller when B-frames are used. For the Random-Access, the average gain of disabling the \ac{tmvp} is 0.78 dB.
%This also confirms the previous results of Figure~\ref{Figure3:PSNRvsFrameErrorFreeConc}.
A higher negative impact is obtained when only P-frames are used (Low-Delay), since subsequent frames are temporally closer, leading to more accurate temporal \ac{mv} candidates.
Moreover, the results also indicate that for higher loss ratios the negative impact of using the \ac{tmvp} does not increase as both configuration are subject to high quality degradation.
\begin{table}[!t]
\centering
%\caption{Average \ac{psnr} using different motion vector candidates.}
\caption{\ac{psnr} under random packet loss.} \label{Table3:AvgPSNRWithoutTMVP}
\TABLESVSPACE
\input{./031_ErrorResilienceEvaluation/QualityEvaluation/TableMVPs.tex}
\end{table}
\subsection{Discussion and conclusions}
\subsection{Discussion}
The results presented in the previous sub-sections show that \ac{hevc} has poor robustness against transmission errors, resulting in significant quality degradation, though dependent on the video content and coding options. As shown coding options as slice partition and intra refreshing period have high correlation with the decoded video quality under errors, which shall be taken into consideration when designing a broadcast application.
Overall, the results presented in the previous sub-sections show that \ac{hevc} has poor robustness against transmission errors, resulting in significant quality degradation, though dependent still on the video content and coding options.
As shown, some coding options, such as slice partition and intra refreshing period, have high correlation with the decoded video quality when transmission errors affect the compressed streams.
Therefore, these are important aspects to take into consideration in the design an implementation of broadcasting video services and applications.
One of the main improvements of the \ac{hevc} standard is related with the high coding units which does not have an impact of its error robustness, so shall be configured to achieve the highest coding performance. Another improvement in the standard was the Merge Mode, which significantly improves the flexibility in coding and signalling the motion information. One the one hand the spatial \ac{mv} candidates do not significantly decrease the error robustness. On the other hand, the introduction of temporal \ac{mv} candidates significantly contribute to increase the temporal dependencies, leading to more severe quality degradation in the presence of slice loss.
Based on these evidences, the next section presents an efficient method to improve the error robustness of \ac{hevc} based on the underlying principle of reducing the mismatch in \ac{mv} predictions caused by temporal dependencies.
One of the main improvements of the \ac{hevc} standard is the support for larger coding units up to $64\times64$, which does not have a negative impact the error robustness of coded video streams, indicating that they should be allowed to achieve higher coding performance.
Regarding the use of neighbouring information for \ac{mv} coding, on the one hand the spatial \ac{mv} candidates do not significantly decrease the error robustness. On the other hand, the use of temporal \ac{mv} candidates significantly contribute to increase the temporal dependencies, leading to more severe quality degradation in the presence of packet loss.
Based on these evidences, the next section presents an efficient method to improve the error robustness of \ac{hevc}.
The proposed method is based on the underlying principle of reducing the mismatch of \ac{mv} predictions, by selectively disable some \ac{mv} predictions at the encoder-side, reducing the overall temporal dependencies.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -279,15 +309,22 @@ Based on these evidences, the next section presents an efficient method to impro
%\subsection{Problem formulation}
The aforementioned results revealed a lack of error resilience in the \ac{hevc} standard motion prediction. Based on this evidence, this section proposes a method to make intelligent use of temporal \ac{mv} candidates during the motion estimation process, in order to decrease the temporal dependency, and improve the error resiliency without penalising the \ac{rd} performance.
The aforementioned results revealed low error resilience in motion prediction because any error is easily propagated through several frames.
Based on this evidence, this section proposes a method to make intelligent use of temporal \ac{mv} candidates during the motion estimation process, in order to decrease the temporal dependency, and improve the error resiliency without penalising the \ac{rd} performance.
\subsection{Proposed method}
In this section a new approach to deal with temporal motion vector dependencies is proposed, aiming at reducing the amount of temporally dependent \acs{mv}. This is accomplished by modifying the rate distortion optimisation process in \ac{hevc}. Since the number of \acs{mv} that can be independently decoded increases, the error recovery percentage is improved after a frame loss event.
\glsreset{rd}
In order to overcome in the limitation of the method presented in \cite{DynamicTMVP2011}, a new method that breaks the motion information dependencies between frames is proposed, which is used in the Merge Mode. Instead of disabling the temporal motion candidate at the frame level, the proposed method aims to remove the dependencies at the block (CU) level. To achieve this, the temporal dependency of all \ac{mv} candidates is analysed for each block, in order to decide on the suitable candidates to be used to predict the current \ac{mv}. Based on the analysis of the temporal dependency, some temporal candidates are marked as unsuitable for the prediction of the current \ac{mv}, and are not selected in the merge modes. In the proposed approach, a temporal \ac{mv} candidate is marked as unsuitable based on the following criteria:
The new approach to deal with temporal motion vector dependencies is accomplished by modifying the \ac{rd} optimisation that is used to select the best motion vector for inter-prediction.
The objective is to increase the number of \acs{mv} that can be independently decoded to improve the error recovery capability after a frame loss event.
The proposed method also overcomes the limitation of the method presented in \cite{DynamicTMVP2011}, which break the motion information dependencies between frames.
Instead of disabling the temporal motion candidate at the frame level, the proposed method aims to remove the dependencies at the \ac{cu} level.
To achieve this goal, the temporal dependency of all \ac{mv} candidates is firstly analysed for each block, in order to select on the suitable candidates to be used as predictors for the current \ac{mv}.
Based on the analysis of the temporal dependency, some temporal candidates are marked as unsuitable predictors of the current \ac{mv}, and for this reason are not selected in the Merge mode. In the proposed approach, a temporal \ac{mv} candidate is marked as unsuitable based on the following criteria:
\begin{enumerate}
\item if it is encoded based on another temporal \ac{mv} candidate from a previous encoded frame;
\item if it is encoded based on another temporal \ac{mv} candidate from a previously encoded frame;
\item if it is predicted using a spatial neighbour that was previously encoded using a temporal \ac{mv} candidate.
\end{enumerate}
@@ -295,12 +332,15 @@ In order to overcome in the limitation of the method presented in \cite{DynamicT
\centering
% \includegraphics[width=0.6\columnwidth]{\DynamicTMVP/DynamicTMVP}
\input{./031_ErrorResilienceEvaluation/DynamicTmvp/DynamicTMVP.tikz}
\caption{Proposed approach to use the temporal motion vector candidate in the \ac{hevc} encoder.}
\caption{Proposed approach to constrain the temporal \ac{mv} dependencies.}
\label{ProposedDynamicMethod}
\FIGSVSPACE
\end{figure}
Figure \ref{ProposedDynamicMethod} can be used to explain the proposed method, illustrating different blocks and different \ac{mv} dependencies represented with arrows. Note that the squares illustrate a generic block size; the representation of the temporal dependencies is simplified, and in some cases may not correspond to the exact co-located block in the previous frame. In frame $f_{t-1}$ there are several \acs{mv} encoded using spatial predictions and one \ac{mv} encoded using a temporal prediction (arrow pointing to $f_{t-2}$). In frame $f_{t}$, the \ac{mv} corresponding to the block (1) may use the temporal \ac{mv} candidate, since the co-located block in $f_{t-1}$ is not temporally dependent. However, the \ac{mv} prediction marked with the arrow (2) is not allowed in the proposed scheme to avoid propagation from temporal dependencies. Moreover, the block corresponding to the arrow (3) cannot use the temporal \ac{mv} candidate since it already depends on a \ac{mv} that was previously encoded using the temporal candidate. The proposed method reduces the temporal dependencies of the \glspl{mv} at the block level, providing improved error robustness to the encoded streams. Using this approach, the dependencies are selectively removed, improving the error recovery, without fully disabling the temporal \gls{mv} candidates for a given frame.
Figure \ref{ProposedDynamicMethod} can be used to explain the proposed method, illustrating different blocks and different \ac{mv} dependencies represented with arrows. Note that the squares illustrate a generic block size; the representation of the temporal dependencies is simplified, and in some cases may not correspond to the exact co-located block in the previous frame. In frame $f_{t-1}$ there are several \acs{mv} encoded using spatial predictions and one \ac{mv} encoded using a temporal prediction (arrow pointing to $f_{t-2}$). In frame $f_{t}$, the \ac{mv} corresponding to the block (1) may use the temporal \ac{mv} candidate, since the co-located block in $f_{t-1}$ is not temporally dependent.
However, in the proposed scheme the \ac{mv} prediction marked with the arrow (2) is not allowed, thus preventing the propagation of temporal dependencies.
Moreover, the block corresponding to the arrow (3) cannot use the temporal \ac{mv} candidate since it already depends on a \ac{mv} that was previously encoded using the temporal candidate. The proposed method reduces the temporal dependencies of the \glspl{mv} at the block level, providing improved error robustness to the encoded streams. Using this approach, the dependencies are selectively removed, improving the error recovery, without fully disabling the temporal \gls{mv} candidates for a given frame. Therefore, coding efficiency is not significantly penalised.
\subsection{Performance evaluation}
\label{sec:ProposedMethodEvaluation}
@@ -313,14 +353,15 @@ Figure \ref{ProposedDynamicMethod} can be used to explain the proposed method, i
\end{figure}
In this section the performance of the proposed scheme (\PROP) is evaluated against two other approaches: reference \ac{hevc} with TMVP enabled and the \TIDR method as proposed in \cite{DynamicTMVP2011}. To evaluate the proposed method the same experimental setup as presented in Section \ref{Section3:ErrorResilienceEvaluation} was used.
The performance of the proposed scheme (\PROP) was evaluated against two other approaches: reference \ac{hevc} with TMVP enabled and the \TIDR method as proposed in \cite{DynamicTMVP2011}. To evaluate the proposed method the same experimental setup as presented in Section \ref{Section3:ErrorResilienceEvaluation} was used.
\subsubsection{Error propagation under single loss events}
Firstly, the performance of the proposed method was measured under a single loss event. Figure \ref{Figure3:ProposedMethodEvaluationSingle} shows the error propagation for various tested methods. The results show a significant quality difference between the proposed method, the \TIDR method, and the reference \ac{hevc}.
Firstly, the performance of the proposed method was measured under a single loss event (i.e., only one frame is affected by errors).
Figure \ref{Figure3:ProposedMethodEvaluationSingle} shows the error propagation for the different methods.
The results show a significant quality difference between the proposed method, the \TIDR method, and the reference \ac{hevc}.
When the temporal \ac{mv} candidate is disabled (proposed and \TIDR method) more error robustness can be achieved.
The results also show the relevance of using the proposed method, as the \TIDR is only able to recover from the frame loss after the frame 8 (\emph{i.e.}, the refresh frame).
The results also show the relevance of using the proposed method, as the \TIDR method is only able to recover from the frame loss after the refreshing frame, \emph{i.e.}, frame \#8, especially for the BQSquare sequence
\subsubsection{Quality evaluation under random errors}
@@ -332,9 +373,13 @@ The results also show the relevance of using the proposed method, as the \TIDR i
\input{./031_ErrorResilienceEvaluation/DynamicTmvp/TableDynamicTMVPPSNRSTD.tex}
\end{table}
Secondly, further tests were performed to evaluate the effectiveness of the proposed error resiliency method under realistic packet loss patterns. As in previous experiments, each coded frame is transmitted in one packet.
Table~\ref{Table3:AverageStdPSNR} illustrates the average standard deviation of the PSNR, for three of the sequences tested. The results show that increasing the packet loss rate leads to higher quality deviations, and the impact of errors in the subjective quality experience is higher. However, reducing the temporal dependencies of the \acs{mv} using the proposed method decreases the quality differences variation, achieving the lowest value for all scenarios tested. The proposed method is able to reduce the quality difference variations up to 0.94 dB in Kendo sequence (3$\%$ of packet loss) compared to the~\TIDR~method.
Secondly, further simulations were performed to evaluate the effectiveness of the proposed error resiliency method under realistic packet loss patterns.
%As in previous experiments, each coded frame is transmitted in one packet.
Table~\ref{Table3:AverageStdPSNR} illustrates the average standard deviation of the PSNR, for three of the test sequences.
The results show that increasing the \ac{plr} leads to higher quality deviations, and the impact of errors in the subjective quality experience is higher.
However, reducing the temporal dependencies of the \acs{mv} using the proposed method decreases the quality differences variation, achieving the lowest value for all scenarios tested. The proposed method is able to reduce the quality difference variations up to 0.94 dB in Kendo sequence (3$\%$ of packet loss) compared to the~\TIDR~method.
\HIGHLIGHT{vantagem do std}
\begin{table}[tbp]
\centering
@@ -355,5 +400,10 @@ The effectiveness of the proposed method increases at higher packet loss rates (
\section{Summary}
\label{Section3:Summary}
In this chapter, the error resilience performance of the \ac{hevc} standard was analysed under error prone conditions. Results revealed that new coding tool introduced in \ac{hevc} lead to higher error propagation. This reveals that new techniques should be employed within \ac{hevc} encoder and decoder to increase its resilience to errors, achieving higher overall performance under broadcast environments.
Therefore, a new approach to deal with a drawback in \ac{mv} coding was proposed, addressing \ac{mv} dependencies at the block level. The proposed method selectively disables the temporal \ac{mv} candidates, in order to break the dependencies across more than one frame. The experimental evaluation shows that the proposed method increases error robustness and outperforms the existing state-of-the-art method and the standard. The results also show that the proposed method is able to provide a good trade-off between the coding performance and error resilience. The results demonstrate that selective usage of temporal \ac{mv} candidates is an efficient method to enhance error resilience in \ac{hevc}.
In this chapter, the error resilience performance of \ac{hevc} was studied in detail under error prone conditions.
The simulation results revealed that new coding tools introduced in \ac{hevc} to improve coding efficiency are also responsible for higher error propagation.
This motivates further research on new techniques to be developed for highly efficient encoders and decoders, in order to increase error resiliency and to improve the overall performance of video broadcast.
Then, a new approach to deal with the weak robustness of \ac{mv} coding was proposed, addressing \ac{mv} dependencies at \ac{cu} level.
The proposed method selectively disables the temporal \ac{mv} candidates, in order to break the dependencies across more than one frame. The experimental evaluation was able to demonstrate that the proposed method increases the error robustness and outperforms existing state-of-the-art methods and the reference codec.
The results also show that the proposed method is able to provide a good trade-off between coding efficiency and error resilience.
Overall. these new findings demonstrate that selective usage of temporal \ac{mv} candidates is an efficient approach to enhance error resilience in high efficiency video encoders.
@@ -8,7 +8,7 @@ set xtics 0,2,0+31
set key width 1
#set title '\TitleFont Basketball Drill'
plot '-' using 1:2 title '\KeyFont With TMVP' w lp ls 1, '-' using 1:2 title '\KeyFont Without TMVP' w lp ls 2
plot '-' using 1:2 title '\KeyFont TMVP Enable' w lp ls 1, '-' using 1:2 title '\KeyFont TMVP Disabled' w lp ls 2
0 42.08 44.10 44.86
1 42.08 44.10 44.86
2 40.24 43.19 44.01
@@ -37,8 +37,8 @@ e
set key bottom left
set key Right
set yrange[20:38]
set ytics 0,4,60
set yrange[19:39]
set ytics 19,4,60
set title '\TitleFont BQSquare'
plot '-' using 1:2 title '\KeyFont PLR=3\%' w lp ls 1, '-' using 1:2 title '\KeyFont PLR=5\%' w lp ls 2, '-' using 1:2 title '\KeyFont PLR=10\%' w lp ls 3
8 37.119
@@ -8,7 +8,7 @@
% \multirow{2}{*}{\vbox{\centering \textbf{Condition}}} &
\multirow{2}{*}{\vbox{\centering \textbf{Maximum\ \ CU size}}} &
\multirow{2}{*}{\vbox{\centering \textbf{Error free}}} &
\multicolumn{3}{c}{\textbf{Packet loss rate}}\\
\multicolumn{3}{c}{\textbf{\TABLEPLRLABEL}}\\
& & & \textbf{1\%} & \textbf{5\%} &\textbf{10\%}\\
\hline
\multirow{\mergedlines}{*}{Basketball Drill}
@@ -72,50 +72,141 @@
% \end{tabular}
%\small
%\footnotesize
%\newcommand{\nlines}{2}
%\newcommand{\colwidth}{1.5cm}
%\begin{tabular}{p{2.8cm}|x{2.3cm}|x{\colwidth}|x{\colwidth}|x{\colwidth}|x{\colwidth}}
%\toprule
%\multirow{2}{*}{\centering\textbf{Sequence}} & \multirow{2}{*}{\vbox{\centering\textbf{TMVP}}} & \multirow{2}{*}{\vbox{\centering\textbf{Error Free}}} & \multicolumn{3}{c}{\textbf{\TABLEPLRLABEL}} \\
%& & & \textbf{1\%} & \textbf{5\%} & \textbf{10\%} \\
%\hline
%\multirow{\nlines}{*}{\vbox{Basketbal Drill}}
%& Enabled & 38.69 & 34.73 & 27.92 & 25.41 \\
%% \cline{2-6}
%& Disabled & -0.04 & +1.97 & +3.93 & +3.43 \\
%\hline
%\multirow{\nlines}{*}{\vbox{Book Arrival}}
%& Enabled & 40.62 & 36.78 & 30.78 & 27.29 \\
%% \cline{2-6}
%& Disabled & -0.01 & +1.98 & +3.32 & +3.33 \\
%\hline
%\multirow{\nlines}{*}{\vbox{BQSquare}}
%& Enabled & 39.64 & 31.99 & 23.45 & 20.95 \\
%% \cline{2-6}
%& Disabled & -0.05 & +6.14 & +10.6 & +10.7 \\
%\hline
%\multirow{\nlines}{*}{\vbox{Kendo}}
%& Enabled & 43.31 & 38.80 & 29.80 & 25.45 \\
%% \cline{2-6}
%& Disabled & -0.04 & +2.04 & +4.51 & +4.98 \\
%\hline
%\multirow{\nlines}{*}{\vbox{Park Scene}}
%& Enabled & 36.89 & 33.78 & 28.09 & 25.77 \\
%% \cline{2-6}
%& Disabled & -0.06 & +2.33 & +5.72 & +6.05 \\
%\hline
%\multirow{\nlines}{*}{\vbox{Race Horses}}
%& Enabled & 37.06 & 29.64 & 22.92 & 20.35 \\
%% \cline{2-6}
%& Disabled & -0.07 & +3.72 & +4.78 & +4.19 \\
%\hline
%\multirow{\nlines}{*}{\vbox{Tennis}}
%& Enabled & 41.61 & 33.74 & 25.73 & 22.68 \\
%% \cline{2-6}
%& Disabled & -0.04 & +3.10 & +4.01 & +3.52 \\
%\hline
%\multicolumn{2}{c|}{\textbf{Average difference}} & \textbf{-0.04} & \textbf{+3.04} & \textbf{+5.32} & \textbf{+5.17} \\
%\bottomrule
%\end{tabular}
\small
\footnotesize
% \resizebox{\columnwidth}{!}{
\newcommand{\nlines}{2}
\newcommand{\colwidth}{1.5cm}
\begin{tabular}{p{2.8cm}|x{2.3cm}|x{\colwidth}|x{\colwidth}|x{\colwidth}|x{\colwidth}}
\toprule
\multirow{2}{*}{\centering\textbf{Sequence}} & \multirow{2}{*}{\vbox{\centering\textbf{TMVP}}} & \multirow{2}{*}{\vbox{\centering\textbf{Error Free}}} & \multicolumn{3}{c}{\textbf{Packet loss rate}} \\
& & & \textbf{1\%} & \textbf{5\%} & \textbf{10\%} \\
\hline
\multirow{\nlines}{*}{\vbox{Basketbal Drill}}
& Enabled & 38.69 & 34.73 & 27.92 & 25.41 \\
% \cline{2-6}
& Disabled & -0.04 & +1.97 & +3.93 & +3.43 \\
\hline
\multirow{\nlines}{*}{\vbox{Book Arrival}}
& Enabled & 40.62 & 36.78 & 30.78 & 27.29 \\
% \cline{2-6}
& Disabled & -0.01 & +1.98 & +3.32 & +3.33 \\
\hline
\multirow{\nlines}{*}{\vbox{BQSquare}}
& Enabled & 39.64 & 31.99 & 23.45 & 20.95 \\
% \cline{2-6}
& Disabled & -0.05 & +6.14 & +10.6 & +10.7 \\
\hline
\multirow{\nlines}{*}{\vbox{Kendo}}
& Enabled & 43.31 & 38.80 & 29.80 & 25.45 \\
% \cline{2-6}
& Disabled & -0.04 & +2.04 & +4.51 & +4.98 \\
\hline
\multirow{\nlines}{*}{\vbox{Park Scene}}
& Enabled & 36.89 & 33.78 & 28.09 & 25.77 \\
% \cline{2-6}
& Disabled & -0.06 & +2.33 & +5.72 & +6.05 \\
\hline
\multirow{\nlines}{*}{\vbox{Race Horses}}
& Enabled & 37.06 & 29.64 & 22.92 & 20.35 \\
% \cline{2-6}
& Disabled & -0.07 & +3.72 & +4.78 & +4.19 \\
\hline
\multirow{\nlines}{*}{\vbox{Tennis}}
& Enabled & 41.61 & 33.74 & 25.73 & 22.68 \\
% \cline{2-6}
& Disabled & -0.04 & +3.10 & +4.01 & +3.52 \\
\hline
\multicolumn{2}{c|}{\textbf{Average difference}} & \textbf{-0.04} & \textbf{+3.04} & \textbf{+5.32} & \textbf{+5.17} \\
\bottomrule
\toprule
\multirow{2}{*}{\centering\textbf{Sequence}} & \multirow{2}{*}{\vbox{\centering\textbf{TMVP}}} & \multirow{2}{*}{\vbox{\centering\textbf{Error Free}}} & \multicolumn{3}{c}{\textbf{\TABLEPLRLABEL}} \\
& & & \textbf{1\%} & \textbf{5\%} & \textbf{10\%} \\
\hline
\multicolumn{6}{c}{Low-Delay configuration} \\
\hline
\multirow{\nlines}{*}{\vbox{Basket Drill}}
& Enabled & 38.69 & 34.73 & 27.92 & 25.41 \\
% \cline{2-6}
& Disabled & -0.04 & +1.97 & +3.93 & +3.43 \\
\hline
\multirow{\nlines}{*}{\vbox{Book Arrival}}
& Enabled & 40.62 & 36.78 & 30.78 & 27.29 \\
% \cline{2-6}
& Disabled & -0.01 & +1.98 & +3.32 & +3.33 \\
\hline
\multirow{\nlines}{*}{\vbox{BQSquare}}
& Enabled & 39.64 & 31.99 & 23.45 & 20.95 \\
% \cline{2-6}
& Disabled & -0.05 & +6.14 & +10.6 & +10.7 \\
\hline
\multirow{\nlines}{*}{\vbox{Kendo}}
& Enabled & 43.31 & 38.80 & 29.80 & 25.45 \\
% \cline{2-6}
& Disabled & -0.04 & +2.04 & +4.51 & +4.98 \\
\hline
\multirow{\nlines}{*}{\vbox{Park Scene}}
& Enabled & 36.89 & 33.78 & 28.09 & 25.77 \\
% \cline{2-6}
& Disabled & -0.06 & +2.33 & +5.72 & +6.05 \\
\hline
\multirow{\nlines}{*}{\vbox{Race Horses}}
& Enabled & 37.06 & 29.64 & 22.92 & 20.35 \\
% \cline{2-6}
& Disabled & -0.07 & +3.72 & +4.78 & +4.19 \\
\hline
\multirow{\nlines}{*}{\vbox{Tennis}}
& Enabled & 41.61 & 33.74 & 25.73 & 22.68 \\
% \cline{2-6}
& Disabled & -0.04 & +3.10 & +4.01 & +3.52 \\
\hline
\multicolumn{2}{c|}{\textbf{Average difference}} & \textbf{-0.04} & \textbf{+3.04} & \textbf{+5.32} & \textbf{+5.17} \\
\midrule
\midrule
\multicolumn{6}{c}{Random-Access configuration} \\
\hline
\multirow{\nlines}{*}{\vbox{Basket Drill}}
& Enabled & 39.48 &36.84 & 30.50 & 27.15 \\
% \cline{2-6}
& Disabled & -0.03 & +0.25 & +0.71 & +0.61 \\
\hline
\multirow{\nlines}{*}{\vbox{Book Arrival}}
& Enabled & 40.94 & 38.38 & 32.43 & 28.55 \\
% \cline{2-6}
& Disabled & -0.01 & +0.38 & +0.61 & +1.00 \\
\hline
\multirow{\nlines}{*}{\vbox{BQSquare}}
& Enabled & 41.47 & 35.86 & 26.77 & 23.13 \\
% \cline{2-6}
& Disabled & -0.08 & +0.74 & +1.58 & +1.7 \\
\hline
\multirow{\nlines}{*}{\vbox{Kendo}}
& Enabled & 43.90 & 40.08 & 29.77 & 25.71 \\
% \cline{2-6}
& Disabled & -0.04 & -0.05 & +0.55 & +0.45 \\
\hline
\multirow{\nlines}{*}{\vbox{Park Scene}}
& Enabled & 37.90 & 35.26 & 30.51 & 27.74 \\
% \cline{2-6}
& Disabled & -0.06 & +0.67 & +1.29 & +1.34 \\
\hline
\multirow{\nlines}{*}{\vbox{Race Horses}}
& Enabled & 37.43 & 32.36 & 25.35 & 22.47 \\
% \cline{2-6}
& Disabled & -0.05 & +0.61 & +1.08 & +1.00 \\
\hline
\multirow{\nlines}{*}{\vbox{Tennis}}
& Enabled & 41.78 & 36.33 & 28.80 & 25.49 \\
% \cline{2-6}
& Disabled & -0.04 & +0.68 & +0.74 & +0.67 \\
\hline
\multicolumn{2}{c|}{\textbf{Average difference}} & \textbf{-0.04} & \textbf{+0.47} & \textbf{+0.94} & \textbf{+0.97} \\
\bottomrule
\end{tabular}