SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
EFFICIENT 3D WEB CONTENT DELIVERY
WITH KHRONOS AND MPEG TECHNOLOGIES
AGENDA

Introduction
REST 3D
Graphics Library Transmission Format
Open 3D Graphics Compression
Conclusions

2 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

MPEG
Introduction
INTRODUCTION – CONTENT IS KING

4 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
rest3d
remi.arnaud@amd.com
CONTENT CREATION

Physics
Animations

Audio

Images

3D model

6 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Script

3Dapp

…
WEB CONTENT PUBLICATION
html
Script

images

Animations

Images

Web
app

css

3Dapp
3D model

js

Physics

Audio

…

7 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

3D
assets

WebGL

json
bin (dds, typedarray)
WEB CONTENT PUBLICATION

html
Script

images

Animations

Images

Web
3Dapp
app

3D model

css

js

Physics

Audio
…

8 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

3D
assets

http
CDN
Cache
Authentication

Web
Browser
Rest3d … to the rescue
 http://en.wikipedia.org/wiki/Representational_state_transfer
The REST architectural style was developed by W3C Technical Architecture Group (TAG) in parallel with HTTP 1.1,
based on the existing design of HTTP 1.0. The World Wide Web represents the largest implementation of a system
conforming to the REST architectural style

 www.rest3d.com
 https://groups.google.com/forum/#!forum/3d-rest
discuss the principles of a shared RESTful http API dedicated to 3D media

 https://github.com/amd/rest3d/
AMD open-source experimental implementation
Client:
- Workstation style UI in the web browser
- COLLADA and glTF javascript parser
- WebGL renderer
Server:
- node.js http server, server cache, database proxy
- XML native database, Xquery processing
9 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
fbx

Database
Queries
Upload/download

Processing

COLLADA

Assets

Databank

CLOUD (rest3d) PIPELINE
Conversion (glTF)
Compression

Cloud

Image conversion

Modeler

Editor

rest3d

rest3d
Desktop

Web App

rest3d
Turbulenz
Three.js
Cesium

Browser

…WebGL…

Or web app

Max
Maya
Blender

10 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Desktop
Demo
fabricerobinet@me.com
graphics library Transmission Format
 COLLADA WG initiative (Khronos)
‒ work-in-progress, not yet a ratified specification
‒ specification and implementation (converter) work at the same time
‒ runtime asset format for GL based APIs

 Principles
‒ Streamline rendering: size, speed and ease of implementation
‒ Offload processing from runtime
‒ Built on top of GL Based APIs and Typed Arrays

13 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
graphics library Transmission Format
 glTF & Open3DGC Integration
‒ First cut, Open3DGC glTF extension is a work-in-progress
‒ geometry: POSITION, NORMAL, multiple sets of TEXCOORD, COLOR and generic attributes
‒ animations: TRS (Translation, Rotation, Scale)
‒ skinning: weights and bone indices

 Demo example: Virtual City (www.3drt.com)
geometry

animation

total
raw: 5469 kb
gzip: 1612 kb

COLLADA

glTF

680 kb

1297 kb

raw: 1977 kb
gzip: 878 kb

glTF Open3DGCbinary

198 kb

297 kb

raw: 496 kb
gzip: 429 kb

glTF Open3DGC- ascii

355 kb

533 kb

raw: 888 kb
gzip: 390 kb

14 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
Demo
MPEG

Open3DGC

Khaled.Mammou@amd.com
OPEN-3DGC: WHAT IS IT?
 Efficient Implementation of MPEG 3D Graphics Codecs
‒ Encoders in C++ for fast server side compression
‒ Decoders in javascript and C++ to target mobile and web applications
‒ Available under MIT license https://github.com/amd/rest3d/tree/master/server/o3dgc

 Codecs
‒ 3D meshes with multiple attributes
‒ Geometry (e.g., positions, normals, texture coordinates…)
‒ Skinning (e.g., animation weights and joint IDs)

‒ Animations
‒ Bone-based animations
‒ Morphing (coming soon)

17 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

MPEG
OPEN-3DGC: HOW EFFICIENT IS IT?
 Compression Efficiency

400

‒ Gzip (default level=6)
‒ OpenCTM (default settings)
‒ Open3DGC and Webgl-loader
Size (MBytes)

‒ Positions on 14 bits
‒ Normals and texCoords on 10 bits

300
Gzip
OpenCTM

200

Webgl-loader + Gzip
Open3DGC-ASCII + Gzip
Open3DGC-Binary

100

0
CAD
(3748 models)

3D Scanned
(78 models)

MPEG dataset
(1211 models)

Open3DGC is 5x-9x more efficient than Gzip, 1.3x-2.4x more efficient than OpenCTM and
1.2x-1.5x more efficient than webgl-loader
18 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN 3DGC: HOW FAST IS IT?
 Javascript Decoding Speed
‒ Desktop machine
‒
‒
‒
‒

‒ Samsung Galaxy S4
‒ Android 4.2.2
‒ Chrome

Desktop decoding
time (ms)

Smart phone decoding
time (ms)

“Hand”

100K

130

1045

54K

85

768

“Octopus”

‒ Smart phone

Number of
triangles

“Dilo”

Windows® 64-bit
AMD Phenom™ II X4 B95 CPU @ 3.0GHz
8GB RAM
Chrome

34K

65

457

Decoding speed will become even more critical with dense 3D meshes
generated by 3D digitization technologies (e.g., 3D scanners)
19 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Indexed Face Set
‒ Geometry: positions
‒ Connectivity: list of triangles
Requires 192 bits per vertex!

‒ Redundancy
‒
‒
‒
‒

Indexes repeated multiple times
No need to preserve triangles and vertices order
No need for 32-bit precision for positions/attributes
Neighbour vertices exhibit high geometry correlations

Lossy geometry compression and lossless connectivity
encoding reduce the stream size to 10-20 bpv

20 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

V7

Geometry

Connectivity

X1, Y1, Z1
X2, Y2, Z2
X3, Y3, Z3
X4, Y4, Z4
X5, Y5, Z5
X6, Y6, Z6
X7, Y7, Z7

1, 3, 7
1, 7, 6
1, 6, 2
1, 2, 4
1, 4, 5

Reordered
geometry

Reordered
Connectivity

X3, Y3, Z3
X7, Y7, Z7
X6, Y6, Z6
X2, Y2, Z2
1
X4, Y4, Z4
2
X5, Y5, Z5
3
X1, Y1, Z1
4

7, 5, 6
7, 4, 5
7, 3, 4
7, 1, 2
7, 2, 3

5
6
7

V3
V6

V5

V1

V4

V2
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Algorithm based on TFAN codec *Mammou’09+
‒ Triangular meshes with attributes
‒ Arbitrary topologies (e.g., manifold or not, open/closed, oriented or not, arbitrary genus, holes…)

‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010

Encoder
Connectivity

TFAN-based Connectivity
Encoding
Arithmetic
or ASCII
Encoding

Geometry

21 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Uniform
Quantization

Compressed
stream

Prediction

*Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm”
Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Algorithm based on TFAN codec *Mammou’09+
‒ Triangular meshes with attributes
‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…)

‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010

Encoder
Connectivity

TFAN-based Connectivity
Encoding
Arithmetic
or ASCII
Encoding

Geometry

22 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Uniform
Quantization

Compressed
stream

Prediction

*Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm”
Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Uniform quantization
‒ Map real numbers to integers
‒ Maximum quantization error

Uniform quantization reduces the
number of bits per vertex for positions
from 96 bpv to 24 bpv

q=4

q=6

23 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

q=8

q=10

Original
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Algorithm based on TFAN codec *Mammou’09+
‒ Triangular meshes with attributes
‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…)

‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010

Encoder
Connectivity

TFAN-based Connectivity
Encoding
Arithmetic
or ASCII
Encoding

Geometry

24 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Uniform
Quantization

Compressed
stream

Prediction

*Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm”
Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Geometry prediction
‒ Exploit connectivity information
‒ Differential and “parallelogram” prediction

P’
B’
Unprocessed region

A

P
B

C

Processed region
25 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Geometry prediction
‒ Exploit connectivity information
‒ Differential and “parallelogram” prediction
‒ Adaptively choose the best predictor

Geometry prediction reduces the
number of bits per vertex for positions
from 24 bpv to 10.3 bpv

P’
B’
Unprocessed region

A

P
B

C

Processed region
26 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression
‒ Algorithm based on TFAN codec *Mammou’09+
‒ Triangular meshes with attributes
‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…)

‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010

Encoder
Connectivity

TFAN-based Connectivity
Encoding
Arithmetic
or ASCII
Encoding

Geometry

27 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Uniform
Quantization

Compressed
stream

Prediction

*Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm”
Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Triangle FAN
‒
‒
‒
‒

Each two successive triangles share a common edge
All triangles share a common vertex (i.e., center of the TFAN)
All the triangles have the same orientation
Described by enumerating the vertices in their traversal order

Implicitly encodes adjacency information

(1,3,7,6,2,4,5)
7 indices instead of 15 for IFS

28 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ TFAN-based connectivity compression
‒ Decompose the mesh into a set of TFANs
‒ Traverse the vertices from neighbour to neighbour
‒ Rename vertices according to the traversal order
‒ For each vertex, group its incident non-visited triangles into TFANs

V5 V’4

V7 V’7
V3 V’10
V6

V’3

V’6 V9

V10 V’8

29 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

V4

V’2

V8 V’9

V2 V’5

V1 V’1
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ TFAN-based connectivity compression
‒ Decompose the mesh into a set of TFANs
‒ Traverse the vertices from neighbour to neighbour
‒ Rename vertices according to the traversal order
‒ For each vertex, group its incident non-visited triangles into TFANs

‒ Encode TFANs
‒ Distinguish 10 topological configurations
‒ Use local indices instead of absolute ones

30 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ TFAN-based connectivity compression
‒ Decompose the mesh into a set of TFANs
‒ Traverse the vertices from neighbour to neighbour
‒ Rename vertices according to the traversal order
‒ For each vertex, group its incident non-visited triangles into TFANs

‒ Encode TFANs
‒ Distinguish 10 topological configurations
‒ Use local indices instead of absolute ones

‒ Entropy encoding
‒ Exploit statistical redundancy
100%

TFAN-based connectivity compression
reduces the number of bits per vertex for
connectivity from 96 bpv to 3.1 bpv

Frequency

80%
60%
40%
20%
0%
1

2

3

4

5

6

TFAN configurations
31 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

7

8

9

10
Conclusions
CONCLUSIONS
 Content delivery is becoming crucial for Web and mobile 3D applications
 Rest3D paves the way toward a unified standard to negotiate and exchange 3D data
 glTF provides a efficient out-of-the-box 3D content delivery solution

 Open3DGC leverages MPEG codecs to offer a complete set of 3D graphics compression technologies

33 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
DISCLAIMER & ATTRIBUTION
The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors.
The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap
changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software
changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD
reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of
such revisions or changes.

AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY
INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION.
AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE
LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION
CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Windows is a trademark of Microsoft Corp.

ATTRIBUTION

© 2013 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices,
Inc. in the United States and/or other jurisdictions. Other names are for informational purposes only and may be trademarks of their respective owners.

34 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
Backup slides
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm

Encoding Example

36 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Encoding example

Bitstream
10

37 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Vertex
re-ordering

Neighbors
list
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1

‒ Encoding example

{}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

Bitstream
10 1,(7,1)

38 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V4}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3

Bitstream
10 1,(7,1) 2,(4,1)

39 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V4, V5}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4

Bitstream
10 1,(7,1) 2,(4,1),(7,2)

40 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V5, V2, V9, V7}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0

41 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0

42 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V9}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)

43 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V7,V10}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7
V10 → V8

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2)

44 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Encoding example

Vertex
re-ordering

Neighbors
list

C6

C2

C7

C3

C8

C4

C9

C5

V1 → V1
V6 → V2

C1

C10

{V7,V10,V8}

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7
V10 → V8

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)

V8 → V9

2,(6,2),(4,1)

45 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V3}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7
V10 → V8

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)

V8 → V9
V3 → V10

2,(6,2),(4,1) 0

46 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
Vertex
re-ordering

Neighbors
list

V1 → V1
V6 → V2

‒ Encoding example

{V8}

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

V4 → V3
V5 → V4
V2 → V5
V9 → V6
V7 → V7
V10 → V8

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)

V8 → V9
V3 → V10

2,(6,2),(4,1) 0 0

47 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm

Decoding Example

48 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

49 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V3}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

50 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V3, V4}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

51 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V4}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

52 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

53 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V6}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

54 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V7, V8}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

55 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V7, V8, V9}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

56 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V9}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

57 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{V10}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

58 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

59 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
OPEN-3DGC: WHAT’S UNDER THE HOOD?
 3D Mesh Compression Algorithm
‒ Decoding example

Neighbors
list

C1

C6

C2

C7

C3

C8

C4

C9

C5

C10

{}

Bitstream
10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1)
2,(6,2),(4,1) 0 0 0 0

60 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013

Mais conteúdo relacionado

Destaque

Eric carle craft
Eric carle craftEric carle craft
Eric carle craft
Naomi Park
 
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
Pauline Beauvillier
 
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
Khaled MAMOU
 

Destaque (10)

Eric carle craft
Eric carle craftEric carle craft
Eric carle craft
 
Miracle Miles
Miracle MilesMiracle Miles
Miracle Miles
 
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
Rapport de stage : Académie pédagogique des sciences sociales et humanitaires...
 
Eduwave Institute - Kota (Raj)
Eduwave Institute - Kota (Raj)Eduwave Institute - Kota (Raj)
Eduwave Institute - Kota (Raj)
 
Success Mantra For Students by Eduwave Institute, Kota
Success Mantra For Students by Eduwave Institute, KotaSuccess Mantra For Students by Eduwave Institute, Kota
Success Mantra For Students by Eduwave Institute, Kota
 
Mess hall2008fall 2
Mess hall2008fall 2Mess hall2008fall 2
Mess hall2008fall 2
 
Hindustan animal-feeds
Hindustan animal-feedsHindustan animal-feeds
Hindustan animal-feeds
 
50 97 03
50 97 0350 97 03
50 97 03
 
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
 
JEE FAQs
JEE FAQsJEE FAQs
JEE FAQs
 

Semelhante a EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES

mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4Gmago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
SANGHEE SHIN
 
Présentation Aerys
Présentation Aerys Présentation Aerys
Présentation Aerys
iCOMMUNITY
 
3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)
Camptocamp
 

Semelhante a EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES (20)

Introduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin PlatformIntroduction to mago3D, an Open Source Based Digital Twin Platform
Introduction to mago3D, an Open Source Based Digital Twin Platform
 
Current State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin PlatformCurrent State of mago3D, an Open Source Based Digital Twin Platform
Current State of mago3D, an Open Source Based Digital Twin Platform
 
State of mago3D, An Open Source Based Digital Twin Platform
State of mago3D, An Open Source Based Digital Twin PlatformState of mago3D, An Open Source Based Digital Twin Platform
State of mago3D, An Open Source Based Digital Twin Platform
 
MPEG 3D graphics compression offer
MPEG 3D graphics compression offerMPEG 3D graphics compression offer
MPEG 3D graphics compression offer
 
mago3D FOSS4G NA 2018
mago3D FOSS4G NA 2018mago3D FOSS4G NA 2018
mago3D FOSS4G NA 2018
 
Let's integrate CAD/BIM/GIS on the same platform: A practical approach in rea...
Let's integrate CAD/BIM/GIS on the same platform: A practical approach in rea...Let's integrate CAD/BIM/GIS on the same platform: A practical approach in rea...
Let's integrate CAD/BIM/GIS on the same platform: A practical approach in rea...
 
Introduction to 3D Mapping with X3D
Introduction to 3D Mapping with X3DIntroduction to 3D Mapping with X3D
Introduction to 3D Mapping with X3D
 
Introduction to mago3D: A Web Based Open Source GeoBIM Platform
Introduction to mago3D: A Web Based Open Source GeoBIM PlatformIntroduction to mago3D: A Web Based Open Source GeoBIM Platform
Introduction to mago3D: A Web Based Open Source GeoBIM Platform
 
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4Gmago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
mago3D: Let's integrate BIM and 3D GIS on top of FOSS4G
 
3D Web Services And Models For The Web: Where Do We Stand?
3D Web Services And Models For The Web: Where Do We Stand?3D Web Services And Models For The Web: Where Do We Stand?
3D Web Services And Models For The Web: Where Do We Stand?
 
“COVID-19 Safe Distancing Measures in Public Spaces with Edge AI,” a Presenta...
“COVID-19 Safe Distancing Measures in Public Spaces with Edge AI,” a Presenta...“COVID-19 Safe Distancing Measures in Public Spaces with Edge AI,” a Presenta...
“COVID-19 Safe Distancing Measures in Public Spaces with Edge AI,” a Presenta...
 
mago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open sourcemago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open source
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
 
mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind
mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind
mago3D: A brand new Geo-BIM platform on top of Cesium & World Wind
 
Présentation Aerys
Présentation Aerys Présentation Aerys
Présentation Aerys
 
PG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques LefaucheuxPG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
 
Serving and rendering huge point cloud on mobile devices and web pages.
Serving and rendering huge point cloud on mobile devices and web pages.Serving and rendering huge point cloud on mobile devices and web pages.
Serving and rendering huge point cloud on mobile devices and web pages.
 
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
Andreas Zeitler (Vuframe): Virtual & Augmented Business: How to Discover and ...
 
mago3D - A Brand-New Live 3D Geo-Platform
mago3D - A Brand-New Live 3D Geo-Platform mago3D - A Brand-New Live 3D Geo-Platform
mago3D - A Brand-New Live 3D Geo-Platform
 
3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)3D webservices - where do we stand? (ENG)
3D webservices - where do we stand? (ENG)
 

Último

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 

EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES

  • 1. EFFICIENT 3D WEB CONTENT DELIVERY WITH KHRONOS AND MPEG TECHNOLOGIES
  • 2. AGENDA Introduction REST 3D Graphics Library Transmission Format Open 3D Graphics Compression Conclusions 2 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 MPEG
  • 4. INTRODUCTION – CONTENT IS KING 4 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 6. CONTENT CREATION Physics Animations Audio Images 3D model 6 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Script 3Dapp …
  • 7. WEB CONTENT PUBLICATION html Script images Animations Images Web app css 3Dapp 3D model js Physics Audio … 7 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 3D assets WebGL json bin (dds, typedarray)
  • 8. WEB CONTENT PUBLICATION html Script images Animations Images Web 3Dapp app 3D model css js Physics Audio … 8 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 3D assets http CDN Cache Authentication Web Browser
  • 9. Rest3d … to the rescue  http://en.wikipedia.org/wiki/Representational_state_transfer The REST architectural style was developed by W3C Technical Architecture Group (TAG) in parallel with HTTP 1.1, based on the existing design of HTTP 1.0. The World Wide Web represents the largest implementation of a system conforming to the REST architectural style  www.rest3d.com  https://groups.google.com/forum/#!forum/3d-rest discuss the principles of a shared RESTful http API dedicated to 3D media  https://github.com/amd/rest3d/ AMD open-source experimental implementation Client: - Workstation style UI in the web browser - COLLADA and glTF javascript parser - WebGL renderer Server: - node.js http server, server cache, database proxy - XML native database, Xquery processing 9 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 10. fbx Database Queries Upload/download Processing COLLADA Assets Databank CLOUD (rest3d) PIPELINE Conversion (glTF) Compression Cloud Image conversion Modeler Editor rest3d rest3d Desktop Web App rest3d Turbulenz Three.js Cesium Browser …WebGL… Or web app Max Maya Blender 10 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Desktop
  • 11. Demo
  • 13. graphics library Transmission Format  COLLADA WG initiative (Khronos) ‒ work-in-progress, not yet a ratified specification ‒ specification and implementation (converter) work at the same time ‒ runtime asset format for GL based APIs  Principles ‒ Streamline rendering: size, speed and ease of implementation ‒ Offload processing from runtime ‒ Built on top of GL Based APIs and Typed Arrays 13 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 14. graphics library Transmission Format  glTF & Open3DGC Integration ‒ First cut, Open3DGC glTF extension is a work-in-progress ‒ geometry: POSITION, NORMAL, multiple sets of TEXCOORD, COLOR and generic attributes ‒ animations: TRS (Translation, Rotation, Scale) ‒ skinning: weights and bone indices  Demo example: Virtual City (www.3drt.com) geometry animation total raw: 5469 kb gzip: 1612 kb COLLADA glTF 680 kb 1297 kb raw: 1977 kb gzip: 878 kb glTF Open3DGCbinary 198 kb 297 kb raw: 496 kb gzip: 429 kb glTF Open3DGC- ascii 355 kb 533 kb raw: 888 kb gzip: 390 kb 14 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 15. Demo
  • 17. OPEN-3DGC: WHAT IS IT?  Efficient Implementation of MPEG 3D Graphics Codecs ‒ Encoders in C++ for fast server side compression ‒ Decoders in javascript and C++ to target mobile and web applications ‒ Available under MIT license https://github.com/amd/rest3d/tree/master/server/o3dgc  Codecs ‒ 3D meshes with multiple attributes ‒ Geometry (e.g., positions, normals, texture coordinates…) ‒ Skinning (e.g., animation weights and joint IDs) ‒ Animations ‒ Bone-based animations ‒ Morphing (coming soon) 17 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 MPEG
  • 18. OPEN-3DGC: HOW EFFICIENT IS IT?  Compression Efficiency 400 ‒ Gzip (default level=6) ‒ OpenCTM (default settings) ‒ Open3DGC and Webgl-loader Size (MBytes) ‒ Positions on 14 bits ‒ Normals and texCoords on 10 bits 300 Gzip OpenCTM 200 Webgl-loader + Gzip Open3DGC-ASCII + Gzip Open3DGC-Binary 100 0 CAD (3748 models) 3D Scanned (78 models) MPEG dataset (1211 models) Open3DGC is 5x-9x more efficient than Gzip, 1.3x-2.4x more efficient than OpenCTM and 1.2x-1.5x more efficient than webgl-loader 18 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 19. OPEN 3DGC: HOW FAST IS IT?  Javascript Decoding Speed ‒ Desktop machine ‒ ‒ ‒ ‒ ‒ Samsung Galaxy S4 ‒ Android 4.2.2 ‒ Chrome Desktop decoding time (ms) Smart phone decoding time (ms) “Hand” 100K 130 1045 54K 85 768 “Octopus” ‒ Smart phone Number of triangles “Dilo” Windows® 64-bit AMD Phenom™ II X4 B95 CPU @ 3.0GHz 8GB RAM Chrome 34K 65 457 Decoding speed will become even more critical with dense 3D meshes generated by 3D digitization technologies (e.g., 3D scanners) 19 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 20. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Indexed Face Set ‒ Geometry: positions ‒ Connectivity: list of triangles Requires 192 bits per vertex! ‒ Redundancy ‒ ‒ ‒ ‒ Indexes repeated multiple times No need to preserve triangles and vertices order No need for 32-bit precision for positions/attributes Neighbour vertices exhibit high geometry correlations Lossy geometry compression and lossless connectivity encoding reduce the stream size to 10-20 bpv 20 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 V7 Geometry Connectivity X1, Y1, Z1 X2, Y2, Z2 X3, Y3, Z3 X4, Y4, Z4 X5, Y5, Z5 X6, Y6, Z6 X7, Y7, Z7 1, 3, 7 1, 7, 6 1, 6, 2 1, 2, 4 1, 4, 5 Reordered geometry Reordered Connectivity X3, Y3, Z3 X7, Y7, Z7 X6, Y6, Z6 X2, Y2, Z2 1 X4, Y4, Z4 2 X5, Y5, Z5 3 X1, Y1, Z1 4 7, 5, 6 7, 4, 5 7, 3, 4 7, 1, 2 7, 2, 3 5 6 7 V3 V6 V5 V1 V4 V2
  • 21. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Algorithm based on TFAN codec *Mammou’09+ ‒ Triangular meshes with attributes ‒ Arbitrary topologies (e.g., manifold or not, open/closed, oriented or not, arbitrary genus, holes…) ‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010 Encoder Connectivity TFAN-based Connectivity Encoding Arithmetic or ASCII Encoding Geometry 21 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Uniform Quantization Compressed stream Prediction *Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
  • 22. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Algorithm based on TFAN codec *Mammou’09+ ‒ Triangular meshes with attributes ‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…) ‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010 Encoder Connectivity TFAN-based Connectivity Encoding Arithmetic or ASCII Encoding Geometry 22 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Uniform Quantization Compressed stream Prediction *Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
  • 23. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Uniform quantization ‒ Map real numbers to integers ‒ Maximum quantization error Uniform quantization reduces the number of bits per vertex for positions from 96 bpv to 24 bpv q=4 q=6 23 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 q=8 q=10 Original
  • 24. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Algorithm based on TFAN codec *Mammou’09+ ‒ Triangular meshes with attributes ‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…) ‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010 Encoder Connectivity TFAN-based Connectivity Encoding Arithmetic or ASCII Encoding Geometry 24 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Uniform Quantization Compressed stream Prediction *Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
  • 25. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Geometry prediction ‒ Exploit connectivity information ‒ Differential and “parallelogram” prediction P’ B’ Unprocessed region A P B C Processed region 25 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 26. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Geometry prediction ‒ Exploit connectivity information ‒ Differential and “parallelogram” prediction ‒ Adaptively choose the best predictor Geometry prediction reduces the number of bits per vertex for positions from 24 bpv to 10.3 bpv P’ B’ Unprocessed region A P B C Processed region 26 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 27. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression ‒ Algorithm based on TFAN codec *Mammou’09+ ‒ Triangular meshes with attributes ‒ Arbitrary topologies (e.g., manifold or not, open, closed, holes…) ‒ MPEG-SC3DMC (Scalable Complexity 3D Mesh Coding) published in 2010 Encoder Connectivity TFAN-based Connectivity Encoding Arithmetic or ASCII Encoding Geometry 27 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Uniform Quantization Compressed stream Prediction *Mammou’09+ K. Mammou, T. Zaharia, F. Prêteux, “TFAN: A low complexity 3D mesh compression algorithm” Computer Animation and Virtual Worlds, Vol. 20(2-3), pp. 343–354, 2009
  • 28. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Triangle FAN ‒ ‒ ‒ ‒ Each two successive triangles share a common edge All triangles share a common vertex (i.e., center of the TFAN) All the triangles have the same orientation Described by enumerating the vertices in their traversal order Implicitly encodes adjacency information (1,3,7,6,2,4,5) 7 indices instead of 15 for IFS 28 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 29. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ TFAN-based connectivity compression ‒ Decompose the mesh into a set of TFANs ‒ Traverse the vertices from neighbour to neighbour ‒ Rename vertices according to the traversal order ‒ For each vertex, group its incident non-visited triangles into TFANs V5 V’4 V7 V’7 V3 V’10 V6 V’3 V’6 V9 V10 V’8 29 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 V4 V’2 V8 V’9 V2 V’5 V1 V’1
  • 30. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ TFAN-based connectivity compression ‒ Decompose the mesh into a set of TFANs ‒ Traverse the vertices from neighbour to neighbour ‒ Rename vertices according to the traversal order ‒ For each vertex, group its incident non-visited triangles into TFANs ‒ Encode TFANs ‒ Distinguish 10 topological configurations ‒ Use local indices instead of absolute ones 30 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 31. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ TFAN-based connectivity compression ‒ Decompose the mesh into a set of TFANs ‒ Traverse the vertices from neighbour to neighbour ‒ Rename vertices according to the traversal order ‒ For each vertex, group its incident non-visited triangles into TFANs ‒ Encode TFANs ‒ Distinguish 10 topological configurations ‒ Use local indices instead of absolute ones ‒ Entropy encoding ‒ Exploit statistical redundancy 100% TFAN-based connectivity compression reduces the number of bits per vertex for connectivity from 96 bpv to 3.1 bpv Frequency 80% 60% 40% 20% 0% 1 2 3 4 5 6 TFAN configurations 31 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 7 8 9 10
  • 33. CONCLUSIONS  Content delivery is becoming crucial for Web and mobile 3D applications  Rest3D paves the way toward a unified standard to negotiate and exchange 3D data  glTF provides a efficient out-of-the-box 3D content delivery solution  Open3DGC leverages MPEG codecs to offer a complete set of 3D graphics compression technologies 33 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 34. DISCLAIMER & ATTRIBUTION The information presented in this document is for informational purposes only and may contain technical inaccuracies, omissions and typographical errors. The information contained herein is subject to change and may be rendered inaccurate for many reasons, including but not limited to product and roadmap changes, component and motherboard version changes, new model and/or product releases, product differences between differing manufacturers, software changes, BIOS flashes, firmware upgrades, or the like. AMD assumes no obligation to update or otherwise correct or revise this information. However, AMD reserves the right to revise this information and to make changes from time to time to the content hereof without obligation of AMD to notify any person of such revisions or changes. AMD MAKES NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE CONTENTS HEREOF AND ASSUMES NO RESPONSIBILITY FOR ANY INACCURACIES, ERRORS OR OMISSIONS THAT MAY APPEAR IN THIS INFORMATION. AMD SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. IN NO EVENT WILL AMD BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES ARISING FROM THE USE OF ANY INFORMATION CONTAINED HEREIN, EVEN IF AMD IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Windows is a trademark of Microsoft Corp. ATTRIBUTION © 2013 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc. in the United States and/or other jurisdictions. Other names are for informational purposes only and may be trademarks of their respective owners. 34 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 36. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Encoding Example 36 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 37. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Encoding example Bitstream 10 37 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013 Vertex re-ordering Neighbors list
  • 38. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 ‒ Encoding example {} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 Bitstream 10 1,(7,1) 38 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 39. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V4} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 Bitstream 10 1,(7,1) 2,(4,1) 39 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 40. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V4, V5} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 40 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 41. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V5, V2, V9, V7} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 41 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 42. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 42 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 43. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V9} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 43 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 44. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V7,V10} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 V10 → V8 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2) 44 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 45. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Encoding example Vertex re-ordering Neighbors list C6 C2 C7 C3 C8 C4 C9 C5 V1 → V1 V6 → V2 C1 C10 {V7,V10,V8} V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 V10 → V8 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) V8 → V9 2,(6,2),(4,1) 45 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 46. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V3} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 V10 → V8 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) V8 → V9 V3 → V10 2,(6,2),(4,1) 0 46 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 47. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Vertex re-ordering Neighbors list V1 → V1 V6 → V2 ‒ Encoding example {V8} C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 V4 → V3 V5 → V4 V2 → V5 V9 → V6 V7 → V7 V10 → V8 Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) V8 → V9 V3 → V10 2,(6,2),(4,1) 0 0 47 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 48. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm Decoding Example 48 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 49. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 49 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 50. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V3} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 50 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 51. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V3, V4} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 51 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 52. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V4} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 52 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 53. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 53 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 54. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V6} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 54 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 55. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V7, V8} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 55 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 56. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V7, V8, V9} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 56 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 57. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V9} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 57 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 58. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {V10} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 58 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 59. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 59 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013
  • 60. OPEN-3DGC: WHAT’S UNDER THE HOOD?  3D Mesh Compression Algorithm ‒ Decoding example Neighbors list C1 C6 C2 C7 C3 C8 C4 C9 C5 C10 {} Bitstream 10 1,(7,1) 2,(4,1),(7,2) 0 0 1,(4, 1) 2,(6,2),(4,1) 0 0 0 0 60 | EFFICIENT 3D WEB CONTENT DELIVERY | NOVEMBER 19, 2013