F LASH B ACK Immersive Virtual Reality on Mobile Devices via - - PowerPoint PPT Presentation

f lash b ack
SMART_READER_LITE
LIVE PREVIEW

F LASH B ACK Immersive Virtual Reality on Mobile Devices via - - PowerPoint PPT Presentation

F LASH B ACK Immersive Virtual Reality on Mobile Devices via Rendering Memoization Kevin Boos David Chu Eduardo Cuervo MobiSys 2016 2 high graphic complexity low latency high framerate photo-realistic, wide


slide-1
SLIDE 1

FLASHBACK

Immersive Virtual Reality 


  • n Mobile Devices 


via Rendering Memoization

Kevin Boos David Chu Eduardo Cuervo

MobiSys 2016

slide-2
SLIDE 2

2

slide-3
SLIDE 3

3

high graphic complexity
 photo-realistic, wide FOV low latency
 < 25ms high framerate
 60+ FPS

slide-4
SLIDE 4

mobile devices cannot 
 meet these demands

slide-5
SLIDE 5

Tethered HMDs

Current VR Landscape

5

Responsiveness Mobility Affordability Energy Efficiency Graphical Quality

Te

slide-6
SLIDE 6

Tethered HMDs

Current VR Landscape

6

Responsiveness Mobility Affordability Energy Efficiency Graphical Quality

Te

slide-7
SLIDE 7

Responsiveness Mobility Affordability Energy Efficiency Graphical Quality

7

Mo

TeTethered HMDs

Mobile HMDs

Current VR Landscape

slide-8
SLIDE 8

Responsiveness Mobility Affordability Energy Efficiency Graphical Quality

8

Te

Mo

Fl

Tethered HMDs Mobile HMDs FLASHBACK

Current VR Landscape

slide-9
SLIDE 9

FLASHBACK objectives

9

mobility self-contained on mobile device graphic quality desktop-level image quality responsiveness low end-to-end latency energy efficiency long battery life, low thermal output affordability no specialized hardware

slide-10
SLIDE 10

Design

slide-11
SLIDE 11

Mobile GPUs are constrained Mobile storage is abundant

slide-12
SLIDE 12

key idea: pre-render all possible views for fast real-time replay

slide-13
SLIDE 13

FLASHBACK design & challenges

  • Pre-rendering [offline]
  • infinite input space

  • Live playback [runtime]
  • huge cache, fast retrieval
  • inexact query matching 

  • Dynamic objects

13

slide-14
SLIDE 14

FLASHBACK design & challenges

  • Pre-rendering [offline]
  • infinite input space

  • Live playback [runtime]
  • huge cache, fast retrieval
  • inexact query matching 

  • Dynamic objects

14

slide-15
SLIDE 15

Pre-rendering

15

pose

(key)

frame

(value)

: map pose to frame

infinite input space

slide-16
SLIDE 16

Pre-rendering

16

input =

3D position 3D orientation

slide-17
SLIDE 17

Pre-rendering: megaframes

17

RIGHT

LEFT EYE RIGHT EYE

LEFT TOP BOTTOM FRONT REAR

slide-18
SLIDE 18

Pre-rendering: megaframes

18

position

(key)

megaframe

(value)

RIGHT

LEFT EYE RIGHT EYE

LEFT TOP BOTTOM FRONT REAR

slide-19
SLIDE 19

Further reducing the input space

  • Automate iteration over possible inputs
  • Prune unreachable player positions 

  • Configurable quantization granularity

19

Full-coverage frame cache is available at runtime

slide-20
SLIDE 20

FLASHBACK design & challenges

  • Pre-rendering [offline]
  • infinite input space

  • Live playback [runtime]
  • huge cache, fast retrieval
  • inexact query matching 

  • Dynamic objects

20

slide-21
SLIDE 21

GPU RAM (Flash/SSD)

frame cache

Live playback overview

21

HMD

pose

Cube Warp

final frame megaframe(s)

slide-22
SLIDE 22

Building the cache

22

GPU RAM (Flash/SSD)

frame cache

fast retrieval from huge cache

L3: secondary storage – 9.2 ms L2: system RAM – 8.7ms L1: GPU VRAM – 0.35 ms

  • raw, decoded megaframes
slide-23
SLIDE 23

Spatially indexing the cache

23

  • R-trees: fast, n-D

nearest-neighbor search algorithm


  • Two cache indices:
  • Universal
  • GPU-only

inexact 
 query matching

slide-24
SLIDE 24

FLASHBACK design & challenges

  • Pre-rendering [offline]
  • infinite input space

  • Live playback [runtime]
  • huge cache, fast retrieval
  • inexact query matching 

  • Dynamic objects

24

slide-25
SLIDE 25

Pre-rendering dynamic objects

  • Extension of static scene
  • 7D input space:
  • 3D relative position
  • 3D object rotation
  • 1D animation sequence

25

Automated megaframe capture

  • Supports arbitrary motion


paths and animations

  • but most are periodic
slide-26
SLIDE 26

26

CK.orientation CK.pos

  • Anim. List
  • Anim. List

Top-level R-tree, position-indexed

Dynamic

CacheKey

Mid-level R-tree,

  • rientation-indexed

Last-level animation list, timestamp-indexed

  • Anim. List

Retrieved megaframe

  • A 7D query is not meaningful
  • Decompose into chain of queries


= Faster queries

  • Can prune search space 


at each level

Dynamic object cache indexing

slide-27
SLIDE 27

Dynamic + static compositing

27

sta$c& dynamic& composite& megaframe&

slide-28
SLIDE 28

Evaluation

slide-29
SLIDE 29
  • HP Pavilion Mini + Oculus Rift DK2
  • Small weak computer approximates mobile device
  • Underperforms Samsung Galaxy S6 Gear VR

Evaluation setup

29 0.2 0.4 0.6 0.8 1 1.2 Manhattan T-Rex ALU Texturing

Benchmark Score (normalized)

HP Pavilion Mini Samsung Galaxy S6 Desktop

HP Pavilion Mini Samsung Galaxy S6 6 Desktop

slide-30
SLIDE 30

30

FLASHBACK

slide-31
SLIDE 31

31

Local Rendering

slide-32
SLIDE 32

32

10 20 30 40 50 60 70 80 Mobile Device Strong Desktop FlashBack (Decoding) FlashBack (GPU)

Framerate (FPS)

Static 1 Dynamic Object 2 Dynamic Objects

15x higher framerate

50 100 150 200 250 Mobile HMD Strong Desktop FlashBack (Decoding) FlashBack (GPU)

End-to-End Latency (ms)

8x lower latency

slide-33
SLIDE 33

97x more energy efficient

33

1 2 3 4 5 6 Strong Desktop Mobile Device FlashBack (Decoding) FlashBack (GPU)

Energy Per Displayed Frame (J)

Static 1 Dynamic Object 2 Dynamic Objects

longer battery life less thermal discomfort

slide-34
SLIDE 34

FLASHBACK maintains image quality

  • Measure perceived visual quality via SSIM
  • Compares rendered scene against a pristine image

34

0.93 FLASHBACK 0.81 local rendering

  • n mobile device

poor quality good quality

0.75 1.0 0.5

slide-35
SLIDE 35

Limitations

  • Dynamic object scalability is moderate
  • con: per-pixel megaframe compositing is slow
  • pro: object complexity is irrelevant 

  • Lighting models are limited

  • Restricted by hardware decoder

35

slide-36
SLIDE 36

Related work

36

precaching

web search results database queries data types, behavior, and design choices 
 are not applicable to VR domain.

  • ffloading

compute offload wearable AR on Glass rendering

  • prelim. work on HMDs

requires good network connection.
 latency/quality less demanding.
 ignores local device storage.

caching objects as rendered images

QuickTime VR reuse past renderings caching with impostors static video playback only. focused on desktop environments. inaccuracies in object representation. very limited dynamic object support.

warping cubemaps

VR address recalculation requires specialized hardware 
 added to high-end GPUs.

slide-37
SLIDE 37

FLASHBACK in conclusion

  • Avoids real-time rendering by pre-generating frames
  • flattens complex VR app behavior into data structures
  • Supports static scene and dynamic animated objects

37

framerate ⬆ 
 latency ⬇ 
 energy ⬇

kevinaboos.web.rice.edu

slide-38
SLIDE 38

38

slide-39
SLIDE 39

Backup Slides

slide-40
SLIDE 40

References

[3] D. Lymberopoulos, et al., “Pocketweb: Instant web browsing for mobile devices,” ASPLOS 2012. [4] D. Barbara, et al., “Sleepers and workaholics: Caching strategies in mobile environments,” SIGMOD 1994. [5] E. Cuervo, et al., “Maui: Making smartphones last longer with code offload,” MobiSys 2010. [6] B. Chun, et al., “Clonecloud: Elastic execution between mobile device and cloud,” EuroSys 2011.
 [7] M. Gordon, et al., “Comet: Code offload by migrating execution transparently,” OSDI 2012. [8] K. Ha, et al., “Towards wearable cognitive assistance,” MobiSys 2014. 
 [9] E. Cuervo, et al., “Kahawai: High-quality mobile gaming using gpu offload,” MobiSys 2015. [10] Y. Degtyarev, et al., “Demo: Irides, attaining quality, responsiveness, and mobility for VR HMDs,” MobiSys 2015. [11] S. Chen, “Quicktime VR: An image-based approach to virtual environment navigation,” SIGGRAPH 1995. [12] G. Schaufler, “Exploiting frame-to-frame coherence in a virtual reality system,” IEEE VR AIS 1996. [13] G. Schaufler and W. Sturzlinger, “A Three Dimensional Image Cache for Virtual Reality,” CG Forum 1996. [14] J. Shade, et al., “Hierarchical image caching for accelerated walkthroughs of complex environments,” SIGGRAPH 1996. [15] M. Regan and R. Pose, “Priority rendering with a virtual reality address recalculation pipeline,” SIGGRAPH 1994. [16] M. Regan and R. Pose,” An interactive graphics display architeture,” IEEE VR AIS 1993.

40

slide-41
SLIDE 41

41

Guttman, A. "R-Trees: A Dynamic Index Structure for Spatial Searching". ACM SIGMOD ‘84.

Cache lookup with R-trees

  • create minimally-overlapping

bounding boxes around 3D points


  • characteristics fit our needs
  • good insertion and deletion
  • fast lookup is priority
  • better querying semantics
slide-42
SLIDE 42

VR system in a nutshell

  • Head-Mounted Display (HMD)
  • Smartphone-class hardware
  • Internal sensors and external trackers
  • Combine sensor readings → player pose
  • 3D position
  • 3D orientation

42

slide-43
SLIDE 43

Microbenchmarks

43

2 4 6 8 10 12 14 16 18 20 100 1000 10000 100000 1e+06

Cache Query Time (µs) Cache Size (number of frames)

0.3 0.4 from GPU from RAM from Disk 3 6 9 12 15 18

Cache Retrieval Time (ms)

slide-44
SLIDE 44

44

car interior 115 MB bedroom 730 MB living room 2.8 GB two-story house 8.7 GB basketball arena 29 GB Viking Village 54 GB can be compressed 
 using video codec for 
 efficient deployment

Typical cache sizes (uncompressed)