Keep on working

This commit is contained in:
Thomas Forgione 2023-04-18 20:11:20 +02:00
parent e9471befcf
commit 209aab16c7
6 changed files with 146 additions and 18 deletions

23
abstracts/en.typ Normal file
View File

@ -0,0 +1,23 @@
With the advances in 3D models editing and 3D reconstruction techniques, more and more 3D models are available and their quality is increasing.
Furthermore, the support of 3D visualization on the web has become standard during the last years.
A major challenge is thus to deliver these remote heavy models and to allow users to visualise and navigate in these virtual environments.
This thesis focuses on 3D content streaming and interaction, and proposes three major contributions.
First, *we develop a 3D scene navigation interface with bookmarks* -- small virtual objects added to the scene that the user can click on to ease reaching a recommended location.
We describe a user study where participants navigate in 3D scenes with and without bookmarks.
We show that users navigate (and accomplish a given task) faster when using bookmarks.
However, this faster navigation has a drawback on the streaming performance: a user who moves faster in a scene requires higher streaming capabilities in order to enjoy the same quality of service.
This drawback can be mitigated using the fact that bookmarks positions are known in advance: by ordering the faces of the 3D model according to their visibility at a bookmark, we optimize the streaming and thus, decrease the latency when users click on bookmarks.
Secondly, *we propose an adaptation of Dynamic Adaptive Streaming over HTTP (DASH), the video streaming standard, to 3D textured meshes streaming*.
To do so, we partition the scene into a k-d tree where each cell corresponds to a DASH adaptation set.
Each cell is further divided into DASH segments of a fixed number of faces, grouping together faces of similar areas.
Each texture is indexed in its own adaptation set, and multiple DASH representations are available for different resolutions of the textures.
All the metadata (the cells of the k-d tree, the resolutions of the textures, etc.) is encoded in the Media Presentation Description (MPD): an XML file that DASH uses to index content.
Thus, our framework inherits DASH scalability.
We then propose clients capable of evaluating the usefulness of each chunk of data depending on their viewpoint, and streaming policies that decide which chunks to download.
Finally, *we investigate the setting of 3D streaming and navigation on mobile devices*.
We integrate bookmarks in our 3D version of DASH and propose an improved version of our DASH client that benefits from bookmarks.
A user study shows that with our dedicated bookmark streaming policy, bookmarks are more likely to be clicked on, enhancing both users quality of service and quality of experience.

23
abstracts/fr.typ Normal file
View File

@ -0,0 +1,23 @@
Avec les progrès de l'édition de modèles 3D et des techniques de reconstruction 3D, de plus en plus de modèles 3D sont disponibles et leur qualité augmente.
De plus, le support de la visualisation 3D sur le web s'est standardisé ces dernières années.
Un défi majeur est donc de transmettre des modèles massifs à distance et de permettre aux utilisateurs de visualiser et de naviguer dans ces environnements virtuels.
Cette thèse porte sur la transmission et l'interaction de contenus 3D et propose trois contributions majeures.
Tout d'abord, *nous développons une interface de navigation dans une scène 3D avec des signets* -- de petits objets virtuels ajoutés à la scène sur lesquels l'utilisateur peut cliquer pour atteindre facilement un emplacement recommandé.
Nous décrivons une étude d'utilisateurs où les participants naviguent dans des scènes 3D avec ou sans signets.
Nous montrons que les utilisateurs naviguent (et accomplissent une tâche donnée) plus rapidement en utilisant des signets.
Cependant, cette navigation plus rapide a un inconvénient sur les performances de la transmission : un utilisateur qui se déplace plus rapidement dans une scène a besoin de capacités de transmission plus élevées afin de bénéficier de la même qualité de service.
Cet inconvénient peut être atténué par le fait que les positions des signets sont connues à l'avance : en ordonnant les faces du modèle 3D en fonction de leur visibilité depuis un signet, on optimise la transmission et donc, on diminue la latence lorsque les utilisateurs cliquent sur les signets.
Deuxièmement, *nous proposons une adaptation du standard de transmission DASH (Dynamic Adaptive Streaming over HTTP), très utilisé en vidéo, à la transmission de maillages texturés 3D*.
Pour ce faire, nous divisons la scène en un arbre k-d où chaque cellule correspond à un adaptation set DASH.
Chaque cellule est en outre divisée en segments DASH d'un nombre fixe de faces, regroupant des faces de surfaces comparables.
Chaque texture est indexée dans son propre adaptation set à différentes résolutions.
Toutes les métadonnées (les cellules de l'arbre k-d, les résolutions des textures, etc.) sont référencées dans un fichier XML utilisé par DASH pour indexer le contenu: le MPD (Media Presentation Description).
Ainsi, notre framework hérite de la scalabilité offerte par DASH.
Nous proposons ensuite des algorithmes capables d'évaluer l'utilité de chaque segment de données en fonction du point de vue du client, et des politiques de transmission qui décident des segments à télécharger.
Enfin, *nous étudions la mise en place de la transmission et de la navigation 3D sur les appareils mobiles*.
Nous intégrons des signets dans notre version 3D de DASH et proposons une version améliorée de notre client DASH qui bénéficie des signets.
Une étude sur les utilisateurs montre qu'avec notre politique de chargement adaptée aux signets, les signets sont plus susceptibles d'être cliqués, ce qui améliore à la fois la qualité de service et la qualité d'expérience des utilisateurs.

1
abstracts/main.typ Normal file
View File

@ -0,0 +1 @@
#include "fr.typ"

28
acknowledgments.typ Normal file
View File

@ -0,0 +1,28 @@
= Acknowledgments
// Directeurs de thèse / WTO
First of all, I would like to thank my advisors, Vincent CHARVILLAT, Axel CARLIER, and Géraldine MORIN for luring me into doing a PhD (which was a lot of work), for the support, and for the fun (and beers). // TODO \footnote{drink responsibly}
I took _a little time_ to take the decision of starting a PhD, so I also want to thank them for their patience.
I also want to thank Wei Tsang OOI, for the ideas, the discussions and for the polish during the deadlines.
// Reviewers / membres du jury
Then, I want to thank Sidonie CHRISTOPHE and Gwendal SIMON for reviewing this manuscript: I appreciated the feedback and constructive comments.
I also want to thank all the members of the jury, for their attention and the interesting discussions during the defense.
// Potes
I want to thank all the kids of the lab and elsewhere that contributed to the mood (and beers): Bastien, Vincent, Julien, Sonia, Matthieu, Jean, Damien, Richard, Thibault, Clément, Arthur, Thierry, the other Matthieu, the other Julien, Paul, Maxime, Quentin, Adrian, Salomé. // \footnote{I mean, seriously, drink responsibly}
I also want to thank Praveen: working with him was a pleasure.
// Permanents
I would also like to thank the big ones (whom I forgot to thank during the defense, _oopsies_), Sylvie, Jean-Denis, Simone, Yvain, Pierre.
They, as well as my advisors, not only helped during my PhD, but they also were my teachers back in engineering school and are a great part of the reason why I enjoyed being in school and being a PhD student.
Then, I also want to thank Sylvie and Muriel, for the administrative parts of the PhD, which can often be painful.
// Potes n7
I would also like to thank the colleagues from when I was in engineering school, since they contributed to the skills that I used during this PhD: Alexandre, Killian, David, Maxence, Martin, Maxime, Korantin, Marion, Amandine, Émilie.
// Famille
Finally, I want to thank my brother, my sister and my parents, for the support and guidance.
They have been decisive to my education and I would not be writing this today if it was not for them.

View File

@ -154,7 +154,7 @@ Moreover, Rust comes with many programs that help developers.
=== Glium === Glium
When we need to perform rendering for 3D content analysis or for evaluation, we use the #link("https://github.com/glium/glium")[`glium`] library. When we need to perform rendering for 3D content analysis or for evaluation, we use the #link("https://github.com/glium/glium")[*`glium`*] library.
Glium has many advantages over using raw OpenGL calls. Glium has many advantages over using raw OpenGL calls.
Its objectives are: Its objectives are:

View File

@ -1,24 +1,44 @@
#set page(paper: "a4") #set page(paper: "a4")
#set heading(numbering: "1.1 ") #show link: content => {
#set par(first-line-indent: 1em, justify: true) set text(fill: blue)
#show link: underline content
}
// Code formatting // Code formatting
#show raw.where(block: true): it => { set par(justify: false); grid( #show raw.where(block: true): it => {
set par(justify: false)
let split = it.text.split("\n")
let len = split.len()
grid(
columns: (100%, 100%), columns: (100%, 100%),
column-gutter: -100%, column-gutter: -100%,
block(width: 100%, inset: 1em, for (i, line) in it.text.split("\n").enumerate() { block(width: 100%, inset: 1em, for (i, line) in split.enumerate() {
if i != len - 1 {
box(width: 0pt, align(right, str(i + 1) + h(2em))) box(width: 0pt, align(right, str(i + 1) + h(2em)))
hide(line) hide(line)
linebreak() linebreak()
}
}), }),
block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it), block(radius: 1em, fill: luma(246), width: 100%, inset: 1em, it),
)} )
}
#show heading: content => {
content
v(1em)
}
#show figure: content => {
content
v(1em)
}
// First page
#set page(background: image("assets/background.png", width: 100%)) #set page(background: image("assets/background.png", width: 100%))
#set text(fill: white)
#align(center + bottom)[ #align(center + bottom)[
#rect(width: 100%, fill: rgb(255, 255, 255, 0))[ #rect(width: 120%, fill: rgb(0, 0, 0))[
#pad(5pt, text(weight: "bold", size: 20pt)[Dynamic Adaptive 3D Streaming over HTTP]) #pad(5pt, text(weight: "bold", size: 20pt)[Dynamic Adaptive 3D Streaming over HTTP])
#text(weight: "bold")[For the University of Toulouse PhD granted by the INP Toulouse]\ #text(weight: "bold")[For the University of Toulouse PhD granted by the INP Toulouse]\
#text(weight: "bold")[Presented and defended on Friday 29th November, 2019 by Thomas Forgione] #text(weight: "bold")[Presented and defended on Friday 29th November, 2019 by Thomas Forgione]
@ -32,14 +52,47 @@
*Axel CARLIER*, thesis co-supervisor\ *Axel CARLIER*, thesis co-supervisor\
*Géraldine MORIN*, thesis co-supervisor *Géraldine MORIN*, thesis co-supervisor
#align(left, [ #set text(size: 10pt)
*Doctoral school and field*: EDMITT: École Doctorale de Mathématiques, Informatiques et Télécommunications deToulouse\
#align(left, [*Doctoral school and field*: EDMITT: École Doctorale de Mathématiques, Informatiques et Télécommunications de
Toulouse\
*Field*: Computer science and telecommunication\ *Field*: Computer science and telecommunication\
*Research unit*: IRIT (5505) *Research unit*: IRIT (5505)\
*Thesis supervisors*: Vincent CHARVILLAT, Axel CARLIER and Géraldine MORIN\
*Reviewers*: Sidonie CHRISTOPHE and Gwendal SIMON
]) ])
] ]
] ]
#set text(fill: black)
#set par(first-line-indent: 1em, justify: true, leading: 1em)
// Abstracts
#pagebreak() #pagebreak()
#set page(background: none) #set page(background: none)
#h(1em) *Titre :* Transmission Adaptative de Modèles 3D Massifs
*Résumé :*
#include "abstracts/fr.typ"
#pagebreak()
#set page(background: none)
#h(1em) *Title:* Dynamic Adaptive 3D Streaming over HTTP
*Abstract:*
#include "abstracts/en.typ"
// Acknowledgments
#pagebreak()
#include "acknowledgments.typ"
// Content of the thesis
#set heading(numbering: "1.1 ")
#pagebreak()
#include "foreword/main.typ" #include "foreword/main.typ"