This commit is contained in:
Thomas Forgione 2019-10-02 17:13:11 +02:00
parent c8ca88e51b
commit aeb78691db
No known key found for this signature in database
GPG Key ID: 203DAEA747F48F41
3 changed files with 31 additions and 4 deletions

View File

@ -14,6 +14,18 @@
} }
\end{figure} \end{figure}
Dynamic Adaptive Streaming over HTTP (DASH) is now a widely deployed standard for video streaming, and even though video streaming and 3D streaming are different problems, many of DASH features can inspire us for 3D streaming.
In this chapter, we present the most important contribution of this thesis: adapting DASH to 3D streaming.
We start by showing how we prepare 3D data into a format that complies with DASH and that stores enough metadata to enable a client to perform efficient streaming: we partition the scene into a $k$-d tree and we further segment each cell into chunks with a fixed number of faces, which are sorted by area so that faces of a different level of detail are not grouped together.
We also export each texture at different resolution, and we encode all the acquired metadata into a 3D version of the Media Presentation Description (MPD) that DASH uses for video.
Namely, we store in the metadata the coordinates of the cells of the $k$-d tree, the areas of geometry chunks, and the average colors of textures.
We then propose a standard client that can perform frustum culling to eliminate cells outside the viewing volume of the camera (as shown in Figure~\ref{d3:big-picture}), and we define a few utility metrics to give scores to each chunk of data, and a few streaming policies that rely on those utilities to determine which chunks need to be downloaded.
We finally evaluate all those parameters under different bandwidth setups and compare our streaming policies.
\newpage
\input{dash-3d/introduction} \input{dash-3d/introduction}
\resetstyle{} \resetstyle{}

View File

@ -12,7 +12,7 @@ Then, in Chapter~\ref{bi}, we present our first contribution: an in-depth analys
We first develop a basic interface for navigating in 3D and we introduce 3D objects called \emph{bookmarks} that help users navigate in the scene. We first develop a basic interface for navigating in 3D and we introduce 3D objects called \emph{bookmarks} that help users navigate in the scene.
We then present a user study that we conducted on 50 people that shows that bookmarks have a great impact on how easy it is for a user to perform tasks such as finding objects. We then present a user study that we conducted on 50 people that shows that bookmarks have a great impact on how easy it is for a user to perform tasks such as finding objects.
% Then, we setup a basic 3D streaming system that allows us to replay the traces collected during the user study and simulate 3D streaming at the same time. % Then, we setup a basic 3D streaming system that allows us to replay the traces collected during the user study and simulate 3D streaming at the same time.
We analyse how the presence of bookmarks impacts the streaming, and we propose and evaluate a few streaming policies that rely on precomputations that can be made thanks to bookmarks and that can increase the quality of experience. We analyse how the presence of bookmarks impacts the streaming, and we propose and evaluate a few streaming policies that rely on pre-computations that can be made thanks to bookmarks and that can increase the quality of experience.
In Chapter~\ref{d3}, we present the most important contribution of this thesis: DASH-3D. In Chapter~\ref{d3}, we present the most important contribution of this thesis: DASH-3D.
DASH-3D is an adaptation of the video streaming standard to 3D streaming. DASH-3D is an adaptation of the video streaming standard to 3D streaming.
@ -22,9 +22,9 @@ Then, we present a client and various streaming policies based on our utilities
We finally evaluate the different parameters of our client. We finally evaluate the different parameters of our client.
In Chapter~\ref{d3i}, we explain the whole implementation of DASH-3D.\todo{going to change} In Chapter~\ref{d3i}, we explain the whole implementation of DASH-3D.\todo{going to change}
Implementating DASH-3D required a lot of effort, and since both user studies and simulations are required, we describe the two clients we implemented: one client using web technologies to enable easy user studies and one client that is compiled to native code and that allows us to run efficient simulations and precisely compare the impact of the parameters of our system. Implementing DASH-3D required a lot of effort, and since both user studies and simulations are required, we describe the two clients we implemented: one client using web technologies to enable easy user studies and one client that is compiled to native code and that allows us to run efficient simulations and precisely compare the impact of the parameters of our system.
In Chapter~\ref{sb}, we present our last contribution: the integration of the interaction ideas that we developed in Chapter~\ref{bi} into DASH-3D. In Chapter~\ref{sb}, we present our last contribution: the integration of the interaction ideas that we developed in Chapter~\ref{bi} into DASH-3D.
We first develop an interface that allows desktop as well as mobile devices to navigate in a 3D scene being streamed, and that introduces a new style of bookmarks. We first develop an interface that allows desktop as well as mobile devices to navigate in a 3D scene being streamed, and that introduces a new style of bookmarks.
We then explain why simply applying the ideas developed in Chapter~\ref{bi} is not sufficient and we propose more efficient precomputations that can enhance the streaming. We then explain why simply applying the ideas developed in Chapter~\ref{bi} is not sufficient and we propose more efficient pre-computations that can enhance the streaming.
Finally, we present a user study that provides us with traces on which we can perform simulations, and we evaluate the impact of our extension of DASH-3D on the quality of service and on the quality of experience.\todo{maybe only qos here} Finally, we present a user study that provides us with traces on which we can perform simulations, and we evaluate the impact of our extension of DASH-3D on the quality of service and on the quality of experience.\todo{maybe only qos here}

View File

@ -1,8 +1,23 @@
\chapter{Analysis of the impact of UI on user navigation and streaming\label{bi}} \chapter{Bookmarks, navigation and streaming\label{bi}}
\minitoc{} \minitoc{}
\newpage \newpage
\fresh{}
Bookmarks are virtual objects that represent a point of view, that are rendered with the scene and that can help user navigation.
In this chapter, we present our first contribution: an analysis of the impact of bookmarks on navigation and streaming.
We implement a simple 3D navigation interface that we augment with 3D bookmarks.
When the user's cursor hovers over a bookmark, a preview of the point of view is displayed to the user, and when the user clicks a bookmark, the camera smoothly moves from its initial position to the bookmarked point of view.
We conduct a within-subject user-study on 51 participants, where each user starts with a tutorial, and then tries successively to perform a task with and without bookmarks.
We show that not only the presence bookmarks causes a faster task completion, but also that it allows users to see a larger part of the scene during the same time span.
However, in a streaming scenario, this phenomenon leads to higher network requirements to maintain the same quality of service\todo{not sure if service or experience}.
In the last part of this chapter, we simulate streaming by replaying the traces collected during the user study, and we show that knowing the positions of the bookmarks beforehand allows us to pre-compute information that we can reuse during streaming to compensate for the harm caused by the faster navigation with bookmarks.
\newpage
\newcommand{\NoReco}{\textsf{NoBM \xspace}} \newcommand{\NoReco}{\textsf{NoBM \xspace}}
\newcommand{\Viewports}{\textsf{VP \xspace}} \newcommand{\Viewports}{\textsf{VP \xspace}}
\newcommand{\Arrows}{\textsf{Ar \xspace}} \newcommand{\Arrows}{\textsf{Ar \xspace}}