lawzer, a still image codec designed by l. guillemot

42
La zer A still image codec designed by L. Guillemot lawzercompression(at)gmail.com Lattice Vector Quantization

Upload: ludovic-guillemot

Post on 09-Jul-2015

539 views

Category:

Technology


2 download

DESCRIPTION

LAWZER, A STILL IMAGE CODEC DESIGNED BY L. GUILLEMOT THE LAWZER PROJECT MATERIALIZES 10 YEARS OF SCIENTIFIC CONTRIBUTIONS IN IMAGE COMPRESSION AND SOURCE CODING. LaWzer is a personal project, a showcase for the skills and interests of its designer, Ludovic Guillemot, and a way to celebrate a regular activity in research with academic partners. LAWZER IS A STILL IMAGE CODEC allowing to efficiently encode digital images at the desired size. LaWzer 1.0 has been developed (in C++) between July 2013 and August 2014. It includes works previously published as well as new coding algorithms specially designed for LaWzer. LAWZER TECHNOLOGY IS BASED ON LATTICE VECTOR QUANTIZATION (LVQ) AND WAVELET TRANSFORM. In (very) few words, LVQ is a blockwise approach i.e. the basic elements of the coding process are vectors of data. This is a highly efficient approach but usually renowned for the algorithmic complexity involved by operations on n-dimensional objects. LaWzer focuses on reversing this reputation while still improving the rate-distortion trade-off. Because compression is a must in the big data era, we believe that some applications could be in need of a fast and efficient vectorwise compression scheme. LAWZER V1.0 IS A PROOF OF CONCEPT. The most challenging task was to develop a real-life codec, i.e. showing that processing n-dimensional objects was no more a technical hurdle for the execution speed. Various algorithms have been designed and implemented to reach this goal: quantizers and lossless coding, statistical estimation in wavelet domain, numerical optimization, etc. WORK IN PROGRESS: The first phase of the project is now achieved. One have a complete compression scheme which produces compressed files (“.law”) with short execution times (short means of the order of few seconds for very big images). But much more can be done, further versions will include enhanced coding algorithm, new functionalities (color, watermarking, etc.), code optimization, etc.

TRANSCRIPT

Page 1: LaWzer, a still image codec designed by L. Guillemot

La zer A still image codec

designed by L. Guillemot

lawzercompression(at)gmail.com

Lattice Vector Quantization

Page 2: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

The LaWzer project materializes 10 years of scientific contributions in image compression and source coding.

LaWzer is a personal project, a showcase for the skills and interests of its designer, Ludovic Guillemot, and a way to celebrate a regular activity in research with academic partners. LaWzer is a still image codec allowing to efficiently encode digital images at the desired size. LaWzer 1.0 has been developed (in C++) between July 2013 and August 2014. It includes works previously published as well as new coding algorithms specially designed for LaWzer. LaWzer technology is based on Lattice Vector Quantization (LVQ) and wavelet transform. In (very) few words,

LVQ is a blockwise approach i.e. the basic elements of the coding process are vectors of data. This is a highly efficient approach but usually renowned for the algorithmic complexity involved by operations on n-dimensional objects. LaWzer focuses on reversing this reputation while still improving the rate-distortion trade-off. Because compression is a must in the big data era, we believe that some applications could be in need of a fast and efficient vectorwise compression scheme. LaWzer v1.0 is a proof of concept. The most challenging task was to develop a real-life codec, i.e. showing that processing n-dimensional objects was no more a technical hurdle for the execution speed. Various algorithms have been designed and implemented to reach this goal: quantizers and lossless coding, statistical estimation in wavelet domain, numerical optimization, etc. Work in progress: The first phase of the project is now achieved. One have a complete compression scheme

which produces compressed files (“.law”) with short execution times (short means of the order of few seconds for very big images). But much more can be done, further versions will include enhanced coding algorithm, new functionalities (color, watermarking, etc.), code optimization, etc.

Page 3: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

I. PROJECT PRESENTATION

II. COMPRESSION SCHEME DESCRIPTION

III. FOCUS ON MAIN TECHNICAL ELEMENTS

IV. CONTACTS & INFO

Page 4: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

LAWZER :

I. PROJECT PRESENTATION

Page 5: LaWzer, a still image codec designed by L. Guillemot

Image

input/output

selection

Configuration

Target

rate

tuning

Embedded

console for

coding/decoding

information

Encoding

button

LaWzer: A still image codec designed by L. Guillemot

LAWZER is a still image compression software allowing to

efficiently encode digital images at the desired size

Page 6: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Codebook shape design

Wavelets modeling

Numerical optimization

Lossless coding

LaWzer:

Materializing 10 years of scientific contributions

in image processing and source coding

Designed and developed by Ludovic Guillemot

Based on Lattice Vector Quantization & Wavelet Transform

Page 7: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

LaWzer is a personal project:

Materializing a regular activity in research with academic partners A showcase for skills and interests in image processing

LawZer is a proof of concept:

Most of scientific contributions in source coding included in LaWzer v1.0 Most challenging task:

Building a real-life source coder with a low computational cost

Work in progress,

next versions will include:

Color, 16 bits, etc Optimized code, enhanced coding tools, etc

Page 8: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

R&D project leader and technical expert in image processing

Image & video compression, robust & fragile watermarking, pattern recognition, signal processing

Companies: Orange labs (France Telecom), Goodyear innovation center, start-up using watermarking tecnologies (Codasystem, Anteleon Imaging)

PhD in image compression and watermaking (university of Lorraine, France)

Project building and management

Innovation - Cantata (ITEA project, video surveillance) - Atlas (EU fp7 project, image certification using watermarking and geolocation)

Information Security Management System (ISO norm 27001)

Publications

Journals: IEEE trans. On Image Processing,IEEE trans. On Communications,Journal of Electronic Imaging,IEE Electronics Letters

Conferences:ICIP, ICASSP, ICME, EUSIPCO, SPIE, PCIS,…

Ludovic Guillemot: LaWzer designer

Page 9: LaWzer, a still image codec designed by L. Guillemot

LaWzer v 1.0 designed by L.

Guillemot

4 international journals

9 international conferences

Most of scientific contributions

included in v 1.0

+

New algorithms (coding, num. optimization) Academic partner:

S. Moussaoui

(Ass. prof,

IRCCyN, Nantes)

Academic partner:

Y. Gaudeau

(Ass. prof. CRAN, Strasbourg)

Academic partner:

J.M. Moureaux (Professor, CRAN,

Nancy)

LaWzer: A still image codec designed by L. Guillemot

Collaborations

Page 10: LaWzer, a still image codec designed by L. Guillemot

C++

(Visual Studio)

BOOST libraries

Special maths function, binding, binary operations, etc.

Qt API

Graphical user interface.

OpenCV

Input file format management, image tiling,

thesholding, etc.

LaWzer: A still image codec designed by L. Guillemot

LaWzer project: development tools

Page 11: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

LAWZER :

II. COMPRESSION SCHEME

DESCRIPTION

Page 12: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Sub-images produced by wavelet tranform encoded separately

Total payload divided between sub-images using a fast

bit allocation procedure:

LaWzer is based on an entropy-constraint source coder

associated to a discrete wavelet transform

Payloads computed to minimize the global compression error Numerical optimization based algorithm (gradient projection)

Imaging coding using LaWzer

Use of rate & distortion analytic models instead of real-data: highly accelerates bit-allocation Advanced statistic model: vector approach well-suited to clustering phenomena and sparse signals

Page 13: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

1 2

3

1 Bit allocation:

Computing the best compression parameters (for a given target payload) Use of analytical R-D models *

2 LaWzer Coder:

Wavelet sub-images separetly encoded with LaWzer source coder

3 Bitstreams concatenation and building of the compressed file

Entropy Constraint source coder associated

to wavelet transform

*R-D models: Rate-Distortion models

Page 14: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Bit allocation is a critical stage since the coding performances depend for a large part on the performed choice:

LaWzer’s bit allocation is fast and nearly optimal

thanks to its rate and distortion models (see part 3 for details)

Bit allocation is renowned to slow down encoding because of the use of iterative optimization algorithms:

Page 15: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Indexing stage: vectors encoded with respect to their norm

Set of vectors with the same norm = shell (or surface) Vector replaced by its position on the corresponding shell Norm is compressed using a variable length coder

LaWzer source coder

Encoding

vectors:

LaWzer coder is based on Lattice Vector Quantization:

Wavelet coefficients processed block by block (vectors)

Quantization: Source vectors replaced by lattice

vectors

Lattice: set of regularly spaced vectors Generalization of scalar quantization

Exemple of a 2D lattice

Points: quantized vectors Blue zone: codebook

Key idea of the quantizer used in LaWzer:

Fine quantization of significant vectors (clusters of significant coefficients)

Use of codebook shape adapted thresholding (see part 3 for details)

Page 16: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot

1 Quantization:

Lattice Vector Quantization (with vector dead zone)

3’ Variable-length coding of the norm:

Differential coding 4-ary code stack-run

1 2

3’

3’’

LaWzer: A still image codec designed by L. Guillemot

LaWzer source coder

2 Indexing = building of a product code :

Vector energy (norm) Position in the set of vectors of equal norm

3’’ Position:

Binary coding

Indexing is a key step

Consists in replacing a vector of size n by only 2 numbers: A large part of information is compressed here

Page 17: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot LaWzer: A still image codec designed by L. Guillemot

Coding performances: LaWzer source coder takes benefits

of 2 properties Superiority of vector codebooks in Shannon Theory Ability to take into account spatial dependencies between samples in a block

to better quantize significant elements

Algorithmic complexity

The LaWzer indexing stage is extremely fast (new algorithm specially designed for LaWzer, see part 3 for details)

Processing n-dimensionnal objects is a classical drawback in terms of execution time

In particular, Computing vector position in a n-dimension surface is a hard task:

Page 18: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

LAWZER:

III. FOCUS ON MAIN TECHNICAL

ELEMENTS

Page 19: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Description on the main coding stages in

LaWzer:

1 Bit allocation Rate-distortion models Numerical optimization

2 Quantization Lattice codebook with vector dead zone

3 Lossless coding: Indexing stage (position) Encoding of the norm

Page 20: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

1 Bit allocation:

Rate-distortion models

VECTOR DENSITY BASED RATE DISTORTION MODEL:

Fastly predicts entropy and distortion of wavelet sub-images.

Page 21: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot

Modelling wavelet statistics to predict

coding performances

Rate and distorsion models based on statistics assumption:

Vector distribution dedicated to the clustering phenomena in sparse signals

Clusters of significant coefficients = significant vectors MMGG: a statistical model for significant/non significant vectors Property of MMGG: energy (norm) of vectors are gamma mixture distributed 2-step estimation: method of moments for the energy, derivation of the corresponding MMGG model Low computational cost High precision of R-D models

LaWzer: A still image codec designed by L. Guillemot

Multidimensional mixture of

Generalized Gaussian densities

(MMGG)

Page 22: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L. Guillemot

0 50 100 150 200 2500

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

densité du mélange

histogramme normal isé de la source

MMGG based Rate-distorsion estimation

Vector distribution derived from scalar energy distribution Energy model: mixture of Gamma densities Estimation performed by method of moments

MMGG R-D models dedicated to : Classical lattices Lattices with Vector Dead Zone

Vector energy = norm

Page 23: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot

Entropy-Coded Lattice Vector Quantization Rate-Distortion Models and Codebooks Dedicated to Block Mixture Densities.

IEEE Transactions on Image Processing, 2008.

Fast MMGG estimation:

For more details:

Low complexity bit allocation based on Lattice Vector Quantization and multidimensional mixture model.

Picture Coding Symposium (PCS), Krakow, may 2012.

LaWzer: A still image codec designed by L. Guillemot

Why MMGG based models?

High precision thanks to the ability to take into account two properties:

High concentration of low energy vectors (non significant vectors) Clusters of wavelet coefficients (significant vectors)

Page 24: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

1 Bit allocation:

Numerical optimization

Numerical optimization tool applied to R-D models to determine the encoding parameters.

Page 25: LaWzer, a still image codec designed by L. Guillemot

Predict coding performances to determine the best

compression parameters

LaWzer: A still image codec designed by L. Guillemot

Minimisation problem with equality constraint :

Numerical optimisation algorithm: gradient approach

Constraint: total of sub-images payloads equals to the target payload Gradient estimation projected into the constraint sub-space (hyperplane) Ensures compliance with the constraint at each iteration

Bit-allocation:

Initialization procedure to speed up convergence:

Computing of the entropies for a minimum quantization cell size Projection into the constraint sub-space

Determining the set of compression parameters for:

A minimum error compression A given total payload

Page 26: LaWzer, a still image codec designed by L. Guillemot

Bit allocation procedure

LaWzer: A still image codec designed by L. Guillemot

Using R-D formulas instead of real data point:

No call of the source coder required in the bit allocation Computational cost significantly decreased

The goal of the bit allocation is to determine (for each wavelet sub-image) the quantization parameters used by the source coder

Page 27: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

2 Quantization:

Lattice codebook with

vector dead zone

Better encoding significant vectors of sparse signals.

Page 28: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Uniform Scalar Quantization

Generalization Lattice Vector Quantization

Scalar Dead Zone

Thresholding low magnitude

Generalization

Vector Dead Zone

Thresholding low energy vectors

Scalar Dead Zone

Better encodes significant coeffients

Generalization

Vector Dead Zone

Better encodes clusters of significant coeffients

Vector Dead Zone: Enlarging null vector quantization cell to increase the amount of null vectors Fine quantization of significant vectors Decreasing the distortion

Concept introduced by

J.M. Moureaux

Page 29: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Z

Lattice codebook with vector dead zone

Vectors within the Codebook

Vector Dead Zone

Vectors inside the dead zone quantized to the null vector

Page 30: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Z

Contributions of L. Guillemot in the design

of the vector dead zone:

Optimal Dead Zone algorithm:

Tuning of the dead zone radius/quantization step for a minimum distortion at a given rate

Design of analytical rate and distortion models:

For independently and identically distributed (i.i.d.) and MMGG densities

For more details:

Fast Dead Zone Lattice Vector Quantization.

IEE Electronics Letters, 2008.

Page 31: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

3 Lossless coding:

Vector indexing

Computing vectors position in n-dimension surface: Fast lattice codebook enumeration algorithm.

Page 32: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot LaWzer: A still image codec designed by L. Guillemot

Key point of lattice vector quantization: indexing

Exemple of compression gain: For a vector of 4×8-bit integers with a norm = 10, position encoded on 12 bits instead of 32 bits.

Mapping of the quantized vector to a code product:

Norm R Position in the surface of radius R (set of vectors of norm R)

Computing position:

crucial & difficult task

Page 33: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot LaWzer: A still image codec designed by L. Guillemot

Too many CPU resources required for high radius surfaces Major impact on the execution time of the compression process

State of the art methods in :

Computational cost strongly depends on the norm of vectors

Enumeration algorithm designed for LaWzer :

Extremely fast & low storage requirements

Computational cost DOES NOT depends on the norm of vectors

Constant computational cost: 1 operation / sample! Storing requirements (use of Look-Up-Table) for LaWzer v1.0 : 80 kbytes

Page 34: LaWzer, a still image codec designed by L. Guillemot

A still image codec designed by L.

Guillemot LaWzer: A still image codec designed by L. Guillemot

Indexing algorithm specially designed for LaWzer v1.0

New method, still not published

Stay tuned for more information!

Page 35: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

3 Lossless coding:

Encoding of the norm

Stack-run : 4-ary coding of the vector norm for sparse signals

Page 36: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Position:

Binary coding (word length corresponding to the surface cardinality) Norm:

Variable length coding to exploit the large amount of zeros

Final encoding step:

Translating index vectors into binary words

Variable length coding of the norm:

Zig-zag scanning Differential coding for residual spatial correlations Stack-run coding

4-ary code dedicated to sparse sources Use of two classes:

- RUN: length of clusters of 0-valued samples - LEVEL: magnitude of significant samples

Stack-run coding:

Page 37: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Clusters of 0 norm values = « RUN »

Other values = « LEVEL »

Zig-zag +

Differential coding 0 0 0 0 4 -3 0 0 0 0 0 0 0 0 -4 Norm of

Quantized Vectors

RUN (4) // LEVEL (4) // LEVEL (-3) // RUN (8) // LEVEL (-4)

Stack-Run: 4-ary code (symboles «0», «1», «-» & «+»)

RUN: «+» & «-» LEVEL: «0» & «1» («+» & «-» for sign)

-- 10+ 00- ---+ 10-

0000 111001 101000 00000001 111000

RUN RUN

Binary operations

(binary truncation + level shifting)

Norm bitstream

Stack-Run coding

of the norm

A 24 bits DSP for stack run codec.

Colloque GRETSI 1999

For more details on

stack-run codes:

Page 38: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

LAWZER:

IV. CONTACTS & PUBLICATIONS

Page 39: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

lawzercompression(at)gmail.com

fr.linkedin.com/in/ludovicguillemot

L. Guillemot contact:

LaWzer project

contact:

Page 40: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Low complexity bit allocation based on LVQ and multidimensional mixture model Picture Coding Symposium (PCS), 2012 , vol., no., pp.177,180, 7-9 May 2012

Entropy-Coded Lattice Vector Quantization Dedicated to the Block Mixture Densities Image Processing, IEEE Transactions on , vol.17, no.9, pp.1574,1586, Sept. 2008

Fast dead zone lattice vector quantisation Electronics Letters , vol.44, no.3, pp.191,192, January 31 2008

An analytical gamma mixture based rate distortion model for lattice vector quantization EUSIPCO, Florence, Italy, september 2006.

A gamma mixture model for the energy of blocks dedicated to vector quantization of sparse signals SPARS’05, Rennes, 2005.

A new fast bit allocation procedure for image coding based on wavelet transform and dead zone lattice vector quantization

Image Processing. ICIP 2005. IEEE International Conference on, vol.3, no., pp.III,193-6, 11-14 Sept. 2005

Image compression using lattice vector quantization with code book shape adapted thresholding Image Processing. ICIP 2002 IEEE International Conference on, vol.2, no., pp.II-641,II-644 vol.2, 2002

Publications of L. Guillemot in

compression

Page 41: LaWzer, a still image codec designed by L. Guillemot

LaWzer: A still image codec designed by L. Guillemot

Modulated Lattice Vector Quantization: How to Make Quantization Index Modulation an Efficient Variable Rate Source Coder

Communications, IEEE Transactions on , vol.58, no.11, pp.3165,3174, November 2010

Hybrid transmission, compression and data hiding: quantisation index modulation as source coding strategy Electronics Letters , vol.40, no.17, pp.1053,1055, 19 Aug. 2004

Indexing Lattice Vectors in a Joint Watermarking and Compression Scheme Acoustics, Speech and Signal Processing. ICASSP Proceedings. IEEE International Conference on , vol.2, no., pp.II,

14-19 May 2006

Other publications of L. Guillemot

(watermarking)

Page 42: LaWzer, a still image codec designed by L. Guillemot

THANK YOU

LaWzer: A still image codec designed by L. Guillemot