54 lines
4.1 KiB
TeX
54 lines
4.1 KiB
TeX
\section{Open problems\label{i:challenges}}
|
|
|
|
The objective of our work is to design a system that allows a user to access remote 3D content and that guarantees both good quality of service and good quality of experience.
|
|
A 3D streaming client has lots of tasks to accomplish:
|
|
|
|
\begin{itemize}
|
|
\item decide what part of the model to download next;
|
|
\item download the next part;
|
|
\item parse the downloaded content;
|
|
\item add the parsed result to the scene;
|
|
\item render the scene;
|
|
\item manage the interaction with the user.
|
|
\end{itemize}
|
|
|
|
This opens multiple problems that need to be considered and will be studied in this thesis.
|
|
|
|
\paragraph{Content preparation.}
|
|
% Any preprocessing that can be done on our 3D data gives us a strategical advantage since it consists in computations that will not be needed live, neither for the server nor for the client.
|
|
% Furthermore, for streaming, data needs to be split into chunks that are requested separately, so perparing those chunks in advance can also help the streaming.
|
|
Before streaming content, it needs to be prepared.
|
|
The segmentation of the content into chunks is particularly important for streaming since it allows transmitting only a portion of the data to the client.
|
|
A partial model consisting in the downloaded content, it can be rendered while downloading more chunks.
|
|
Content preparation also includes compression.
|
|
One of the questions this thesis has to answer is: \emph{what is the best way to prepare 3D content so that a streaming client can progressively download and render the 3D model?}
|
|
|
|
\paragraph{Streaming policies.}
|
|
Once our content is prepared and split in chunks, a client needs to determine which chunks should be downloaded first.
|
|
A chunk that contains data in the field of view of the user is more relevant than a chunk that is not inside; a chunk that is close to the camera is more relevant than a chunk far away from the camera, etc.
|
|
This should also include other contextual parameters, such as the size of a chunk, the bandwidth, the user's behaviour, etc.
|
|
The most important questions we have to answer are: \emph{how to estimate a chunk utility, and how to determine which chunks need to be downloaded depending the user's interactions?}
|
|
|
|
\paragraph{Evaluation.}
|
|
In such systems, the two most important criteria for evaluation are quality of service, and quality of experience.
|
|
The quality of service is a network-centric metric, which considers values such as throughput and measures how well the content is served to the client.
|
|
The quality of experience is a user-centric metric: it relies on user perception and can only be measured by asking how users feel about a system.
|
|
To be able to know which streaming policies are best, one needs to know \emph{how to compare streaming policies and evaluate the impact of their parameters in terms of quality of service and quality of experience?}
|
|
|
|
\paragraph{Implementation.}
|
|
The objective of our work is to setup a client-server architecture that answers the above problems: content preparation, chunk utility, streaming policies.
|
|
In this regard, we have to find out \emph{how do we build this architecture that keeps a low computational load on the server so it scales up and on the client so that it has enough resources to perform the tasks described above?}
|
|
|
|
% This implementation must respect constraints required for performant software:
|
|
%
|
|
% \begin{itemize}
|
|
% \item \textbf{for the server}, since a server must serve many clients, and a solution that requires even low computational load on the server will scale difficultly;
|
|
% \item \textbf{for the client}, since the end user will use his own device, whether it be an old computer or a mobile device, and the implementation must be efficient enough to leave resources (such as CPU or memory) for the other tasks it has to accomplish.
|
|
% \end{itemize}
|
|
%
|
|
% Furthermore, since we want to be able to evaluate our systems, user studies are required and using web technologies is a way to simplify this task.
|
|
% Therefore, part of our software needs to be runnable from a web browser.
|
|
%
|
|
% We will have to find out \emph{how do we build a client-server architecture that
|
|
%
|