phd/src/introduction/challenges.tex

54 lines
4.1 KiB
TeX
Raw Normal View History

2019-09-25 11:51:07 +02:00
\section{Open problems\label{i:challenges}}
2019-09-18 17:43:45 +02:00
2019-10-14 15:03:28 +02:00
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.
2019-09-18 17:43:45 +02:00
A 3D streaming client has lots of tasks to accomplish:
\begin{itemize}
2019-10-16 17:01:56 +02:00
\item decide what part of the model to download next;
2019-10-14 15:03:28 +02:00
\item download the next part;
2019-10-01 11:59:47 +02:00
\item parse the downloaded content;
2019-09-18 17:43:45 +02:00
\item add the parsed result to the scene;
2019-10-19 16:48:04 +02:00
\item render the scene;
2019-09-18 17:43:45 +02:00
\item manage the interaction with the user.
\end{itemize}
2019-10-16 17:01:56 +02:00
This opens multiple problems that need to be considered and will be studied in this thesis.
2019-09-24 11:08:42 +02:00
2019-10-02 11:32:47 +02:00
\paragraph{Content preparation.}
2019-09-26 17:21:07 +02:00
% 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.
2019-09-26 15:11:12 +02:00
Before streaming content, it needs to be prepared.
2019-10-14 15:03:28 +02:00
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.
2019-10-16 17:01:56 +02:00
A partial model consisting in the downloaded content, it can be rendered while downloading more chunks.
2019-10-02 11:32:47 +02:00
Content preparation also includes compression.
2019-10-16 17:01:56 +02:00
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?}
2019-09-18 17:43:45 +02:00
2019-10-02 11:32:47 +02:00
\paragraph{Streaming policies.}
2019-10-14 15:03:28 +02:00
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.
2019-10-11 11:06:22 +02:00
This should also include other contextual parameters, such as the size of a chunk, the bandwidth, the user's behaviour, etc.
2019-10-16 17:01:56 +02:00
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?}
2019-09-18 17:43:45 +02:00
2019-10-02 11:32:47 +02:00
\paragraph{Evaluation.}
2019-10-01 11:59:47 +02:00
In such systems, the two most important criteria for evaluation are quality of service, and quality of experience.
2019-10-16 17:01:56 +02:00
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.
2019-10-14 15:03:28 +02:00
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?}
2019-09-18 17:43:45 +02:00
2019-10-02 11:32:47 +02:00
\paragraph{Implementation.}
2019-10-14 15:03:28 +02:00
The objective of our work is to setup a client-server architecture that answers the above problems: content preparation, chunk utility, streaming policies.
2019-10-16 17:01:56 +02:00
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?}
2019-09-26 17:21:07 +02:00
% 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
%