Erik de Jong & Willem Bouma. Arithmetic Coding Octree Compression Surface Approximation Child...

31
Octree-based Point- Cloud Compression Erik de Jong & Willem Bouma

Transcript of Erik de Jong & Willem Bouma. Arithmetic Coding Octree Compression Surface Approximation Child...

Page 1: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Octree-based Point-Cloud Compression

Erik de Jong & Willem Bouma

Page 2: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Introduction

Arithmetic CodingOctreeCompression

Surface Approximation Child Cells Configurations Single Child cell configurations

ResultsQuestions

Page 3: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Arithmetic Coding

Assign to every symbol a range from the interval [0-1]. The size of the range represents the probability of the symbol occurring.

Example:

A: 60% [ 0.0, 0.6 )B: 20% [ 0.6, 0.8 )C: 10% [ 0.8, 0.9 )D: 10% [ 0.9, 1.0 ) (end of data symbol)

Page 4: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Arithmetic Coding

Ranges: A – [0,0.6), B – [0.6,0.8), C – [0.8,0.9), D – [0.9,1)The example shows the decoding of 0.538.

A B C D

Page 5: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Huffman

Huffman coding is a specialized case of arithmetic coding Every symbol is converted to a bit sequence

of integer length Probabilities are rounded to negative powers

of two Advantage: Can decode parts of the input

stream Disadvantage: Arithmetic coding comes

much closer to the optimal entropy encoding

Page 6: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Context

SQUEEL

Page 7: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Compression

Estimate/Approximate as much as possible

Store only the differences w.r.t. the estimate

A better estimate -> smaller numbers lower entropy better compression

Page 8: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Octree

What is an Octree?

Page 9: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Per cell we store only the occupied child cells

Options: Store a single byte, each bit representing a

child cell (for example 11001100) Store the number of occupied cells e and

a tupel T with the indices of the occupied cells

(for example e=4, T={0,1,4,5})

Octree

Page 10: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Compression

We will approximate/estimate/compress:

The surface Number of non-empty child cells Child cell configuration Index compression Single child cell configuration

Page 11: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Surface Approximation

Every level of the octree will yield a preliminary approximation Q of the complete point cloud P

For a cell that is to be subdivided: Predict surface F based on Moving Least

Squares (MLS) on k nearest points in Q

Page 12: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Number of non-empty cells Prediction of number of non-empty cells e Based on estimation of the sampling

density ρ Local sampling density ρi at point pi in P:

k, nearest points pi, point in the point cloud P qi, point on the surface approximation Q

Page 13: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Number of non-empty cellsSampling density:

Guess the number of child cells e based on: The area of the plane F The sampling density ρ

Page 14: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Number of non-empty cells

Quality of prediction

Graphs show the difference between te estimated value and the true value.

(a)The level 5 octree(b)The level 7 octree(c) The entire octree.

Page 15: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Child cell configuration

Given the number of non-empty child cells e there are only a limited number of configurations:

Page 16: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Child cell configuration

We have an array with all weighted possible configurations, sorted in ascending order

Each configuration of the subdivision is encoded as an index of the array.

Common configurations get lower weights, means smaller indices, means lower entropy.

Page 17: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Child cell configuration

Cell centers tend to be close to F.

Page 18: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Child cell configuration

To find the weight of a configuration: Sum up the (L1) distances from the cell

centers to F

Page 19: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Index Compression

Index of the configuration in the sorted array is encoded using arithmetic coding under two contexts First context: the octree level of the cell

C Second context: the expressiveness e(F)

Page 20: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Index Compression

e(F) reflects the angle of the plane to the coordinate directions

Page 21: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Index Compression

In order to use e(F) as a context for arithmetic coding it has to be quantized.

It has been found that five bins was sufficient and delivered the best results.

Page 22: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Single child cell configuration

We can exploit an observation for cells that have only one occupied child cell.

Scanning devices often have a regular sampling grid.

It is possible to predict samples on the surface, rather than just close to the surface.

This is relevant for the finer levels in the octree hierarchy.

Page 23: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Single child cell configuration

For cells with only one child cell we can predict T based on the nearest neighbours of points

m, centroid of the k nearest neighbours

Page 24: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Single child cell configuration

Quite suprisingly, the cell center projections on F that are farthest away are most likely to be occupied.

The area farther away can be seen as undersampled.

So a sample in that area becomes more likely since we expect the surface to be regular and no undersampling should exist.

Page 25: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Single child cell configuration

The weights for the eight possible configurations are given as

c(T), cell center of Tprj(F,c(T)), projection of c(T) on F

Page 26: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Other attributes

Extra attributes can be encoded with an octree Color Normals

Page 27: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Other attributes

Compressing color Same two-step method as with

coordinates Different prediction functions are needed

Page 28: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Results

Model Number of points

Raw size Compressed (bpp)

Compressed size

Dragon 2.748.318 31,44 MB 5,06 1,66 MB

Venus ~134.000 1569 KB 11,27 184 KB

Rabbit ~67.000 768 KB 11,37 93 KB

MaleWB ~148.000 1734 KB 8,87 160 KB

(bpp) Bits Per PointRaw size is assumed to use 3 times 4 Bytes per point.The octree uses 12 levels. Except for the Dragon for which it is unknown.

Page 29: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Results

(b) uses 1.89 bpp

Page 30: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Results

Page 31: Erik de Jong & Willem Bouma.  Arithmetic Coding  Octree  Compression  Surface Approximation  Child Cells Configurations  Single Child cell configurations.

Questions

?