Some modifs
This commit is contained in:
parent
05db88ddb0
commit
e3c05c9ccd
|
@ -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}
|
||||
|
||||
|
|
|
@ -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%
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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;}
|
||||
\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{}\;
|
||||
|
||||
{- 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}$}\;}
|
||||
\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}}}
|
||||
|
||||
{\caption{Algorithm to identify the next segment to query\label{sb:next-segment}}}
|
||||
}
|
||||
\end{algorithm}
|
||||
|
||||
\todo[inline]{to be modified to include bookmarks}
|
||||
|
||||
|
|
Loading…
Reference in New Issue