Some modifs

This commit is contained in:
Thomas Forgione 2019-10-09 16:12:11 +02:00
parent 05db88ddb0
commit e3c05c9ccd
No known key found for this signature in database
GPG Key ID: 203DAEA747F48F41
4 changed files with 55 additions and 24 deletions

View File

@ -172,13 +172,18 @@ Algorithm~\ref{d3:next-segment} details how our DASH client makes decisions.
\SetKwFunction{Argmax}{argmax}
\SetKwFunction{Filter}{filter}
\SetKwFunction{EstimateNetwork}{estimate\_network\_parameters}
\SetKwFunction{Append}{append}
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments} $\mathcal{B}_i$, MPD}
\Output{Next segment $s^{*}_i$ to request, updated buffer $\mathcal{B}_{i+1}$}
\BlankLine{}
(\Bw, \Rtt) \leftarrow{} \EstimateNetwork{}\;
\Candidates\leftarrow{}\AllSegments\newline\makebox[1cm]{}.\Filter{$\Segment\rightarrow\Segment\notin\DownloadedSegments\land\Segment\in\Frustum$}\;
\BlankLine{}
\Candidates\leftarrow{} \AllSegments\newline\makebox[1cm]{}.\Filter{$\Segment\rightarrow\Segment\notin\DownloadedSegments$}\newline\makebox[1cm]{}.\Filter{$\Segment\rightarrow\Segment\in\Frustum$}\;
\BlankLine{}
\Segment\leftarrow{} \Argmax{\Candidates, \Segment\rightarrow{} $\Omega\left(\mathcal{U}(\Segment)\right)$}\;
\DownloadedSegments.\Append{\Segment}\;
{\caption{Algorithm to identify the next segment to query\label{d3:next-segment}}}
\end{algorithm}

View File

@ -85,15 +85,15 @@ A typical 3D renderer follows Algorithm~\ref{f:renderer}.
\SetKwFunction{Draw}{draw}
\tcc{Initialization}
\For{\Object\in\Scene}{%
\LoadGeometry(\Object.\Geometry)\;
\LoadTexture(\Object.\Texture)\;
\For{$\Object\in\Scene$}{%
\LoadGeometry{\Object.\Geometry}\;
\LoadTexture{\Object.\Texture}\;
}
\BlankLine%
\BlankLine%
\tcc{Render loop}
\While{\True}{%
\For{\Object\in\Scene}{%
\For{$\Object\in\Scene$}{%
\BindTexture{\Object.\Texture}\;
\Draw{\Object.\Geometry}\;
}
@ -135,8 +135,8 @@ Algorithm~\ref{f:frustum-culling} is a variation of Algorithm~\ref{f:renderer} w
\tcc{Initialization}
\For{$\Object\in\Scene$}{%
\LoadGeometry(\Object.\Geometry)\;
\LoadTexture(\Object.\Texture)\;
\LoadGeometry{\Object.\Geometry}\;
\LoadTexture{\Object.\Texture}\;
}
\BlankLine%
\BlankLine%

View File

@ -58,6 +58,12 @@ This version was compiled on \today{} at \currenttime{}.
\input{plan}
\newpage
\listoffigures%
\listoftables%
\listofalgorithms%
\lstlistoflistings%
\bibliography{src/bib.bib}
\end{document}

View File

@ -227,30 +227,50 @@ The three first values in the supplemental property are the camera position coor
We build on the loader introduced in Algorithm~\ref{d3:next-segment} to implement a client adaptation logic.
We include a bookmark adaptation logic such that (i) when a bookmark is hovered for the first time, the corresponding images (see Listing~\ref{sb:bookmark-as}) are downloaded, and (ii) when a bookmark is clicked, we switch from utility $\mathcal{U}$ to optimized utility $\mathcal{U}^*$ to determine which segments to download next.
\newcommand\mycommfont[1]{\footnotesize\ttfamily\textcolor{blue}{#1}}
\SetCommentSty{mycommfont}
\SetNoFillComment%
\begin{algorithm}[th]
\SetKwInOut{Input}{input}
\SetKwInOut{Output}{output}
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments} $\mathcal{B}_i$, MPD}
\Output{Next segment $s^{*}_i$ to request, updated buffer $\mathcal{B}_{i+1}$}
\SetAlgoLined%
{- Estimate the bandwidth $\widehat{BW_i}$ and RTT $\widehat{\tau_i}$ \;}
{- Among all \texttt{segments} that are not already downloaded $s \in \mathcal{S} \backslash \mathcal{B}_i$, % \;}
% {-
keep the ones inside the upcoming viewing frustums $\mathcal{FC}=\mathbb{FC}(\widehat{v}(t_i)), t\in [t_i, t_i+\chi]$ thanks to a viewpoint predictor $t_i \rightarrow \hat{v}(t_i)$, a temporal horizon $\chi$ and a frustum culling operator $\mathbb{FC}$ \;}
\SetKw{Continue}{continue}
\SetKwData{Bw}{bw\_estimation}
\SetKwData{Rtt}{rtt\_estimation}
\SetKwData{Segment}{best\_segment}
\SetKwData{Candidates}{candidates}
\SetKwData{AllSegments}{all\_segments}
\SetKwData{DownloadedSegments}{downloaded\_segments}
\SetKwData{Frustum}{frustum}
\SetKwFunction{Argmax}{argmax}
\SetKwFunction{Filter}{filter}
\SetKwFunction{EstimateNetwork}{estimate\_network\_parameters}
\SetKwFunction{Append}{append}
\Input{Current index $i$, time $t_i$, viewpoint $v(t_i)$, buffer of already downloaded \texttt{segments}, MPD}
\Output{Next segment to request, updated buffer}
\BlankLine{}
{- Optimize a criterion $\Omega$ based on $\mathcal{U}$ values and well chosen viewpoint $v(t_i)$ to select the next segment to query }
{\begin{equation*}
s^{*}_i= \argmax{s \in \mathcal{S} \backslash \mathcal{B}_i \cap \mathcal{FC}} \Omega_{\theta_i} \Big(\mathcal{U}(s,v(t_i))\Big) \label{sb:eq1}
\end{equation*} \\
given parameters $\theta_i$ that gathers both online parameters $(i,t_i,v(t_i),\widehat{BW_i}, \widehat{\tau_i}, \mathcal{B}_i)$ and offline metadata;}
{- Update the buffer $\mathcal{B}_{i+1}$ for the next decision: $s^{*}_i$ and lowest \texttt{representations} of $s^{*}_i$ are considered downloaded\;}
{- \Return{segment $s^{*}_i$, buffer $\mathcal{B}_{i+1}$}\;}
\uIf{bookmark clicking}{%
\uIf{not optimal order fetched}{%
\Return{} optimal order segment\;
}
\Else{%
\Return{} next segment\;
}
}
\Else{%
\tcc{Loading policy from previous chapter}
(\Bw, \Rtt) \leftarrow{} \EstimateNetwork{}\;
\BlankLine{}
\Candidates\leftarrow{} \AllSegments\newline\makebox[1cm]{}.\Filter{$\Segment\rightarrow\Segment\notin\DownloadedSegments$}\newline\makebox[1cm]{}.\Filter{$\Segment\rightarrow\Segment\in\Frustum$}\;
\BlankLine{}
\Segment\leftarrow{} \Argmax{\Candidates, \Segment\rightarrow{} $\Omega\left(\mathcal{U}(\Segment)\right)$}\;
\DownloadedSegments.\Append{\Segment}\;
\Return\Segment;
{\caption{Algorithm to identify the next segment to query\label{sb:next-segment}}}
}
\end{algorithm}
\todo[inline]{to be modified to include bookmarks}