Adaptive Streaming of 3D Scenes over MPEG-DASH
My bachelor's thesis on adaptive streaming of 3D scenes over MPEG-DASH.

Bachelor’s thesis for the Bachelor of Science in Computer Science at Hasselt University, 2020. Advisors: Hendrik Lievens, Maarten Wijnants, and Peter Quax.
3D scenes take a lot of storage, and devices such as VR headsets have little of it. The thesis builds a web-based client that streams a static scene with MPEG-DASH instead. The scene is described in X3D and split into segments, and meshes and textures are offered in several levels of detail, with meshes refined progressively. The client switches between scheduling algorithms based on user activity and network measurements, and these were tested in simulated networks.
The result: a stationary user is best served by the Slow Start configuration, which avoids objects that suddenly go missing. A moving user does better when missing resources are fetched as fast as possible, since a low-quality view resembles the target better than empty space.
The thesis was preliminary work for the paper Adaptive Web-Based VR Streaming of Multi-LoD 3D Scenes via Author-Provided Relevance Scores, co-authored with Hendrik Lievens.
The client repeats six steps to decide what to fetch next.
A scene is served as a folder with a DASH manifest, scenes, textures, simple objects and progressive meshes:
manuscript.mpd
scenes/
city/
city.x3d
textures/
wood.png/
wood_64.png
wood_128.png
...
rock.jpeg/
rock.jpeg
obj/
castle/
castle_low.x3d
castle_high.x3d
house/
house.x3d
pop/
bunny/
level0.json
level1.json
...
The client ranks what to fetch next with a utility algorithm and picks the request with a scheduling algorithm. These are the ones it implements:
| Utility | Scene | Texture | POP buffer |
|---|---|---|---|
| Default | bandwidth / distance² | bandwidth × count | bandwidth / distance² |
| Network | Default, for the representation with the bandwidth closest to the observed bandwidth | Default, for the representation with the bandwidth closest to the observed bandwidth | Default, but bandwidth is replaced by the remaining bandwidth |
| Slow Start | Network, using slow start metrics | Network, using slow start metrics | Network, using slow start metrics |
| Fast Fill | Lowest bandwidth representation first, then Default | Lowest bandwidth representation first, then Default | Remaining bandwidth |
| Scheduling | Picks | Depends on |
|---|---|---|
| Default | The highest utility | |
| Mesh First | The highest utility, preferring meshes that are not loaded yet | |
| Steady Expansion | The highest quality | Default utility and Default scheduling |
| Fast Fill | Lowest quality first, then the highest, preferring meshes that are not loaded yet | Fast Fill utility |

Tags