Documente Academic
Documente Profesional
Documente Cultură
Signal Processing Laboratory Program of Electrical Engineering - COPPE Federal University of Rio de Janeiro
Signal Compression using Multiscale Recurrent Patterns p. 1/96
Summary
The LPS/UFRJ. Data compression. Approximate multiscale pattern matching. The MMP algorithm. Multidimensional extension. The three aspects of MMP R-D optimization. Source Coders using the MMP Paradigm Conclusions.
Signal Compression using Multiscale Recurrent Patterns p. 2/96
The LPS
The LPS
Signal Processing Laboratory
The LPS
Signal Processing Laboratory Linked both to Graduate and Undergraduate Departments at Universidade Federal do Rio de Janeiro (UFRJ):
The LPS
Signal Processing Laboratory Linked both to Graduate and Undergraduate Departments at Universidade Federal do Rio de Janeiro (UFRJ): Graduate: Program of Electrical Engineering/COPPE
The LPS
Signal Processing Laboratory Linked both to Graduate and Undergraduate Departments at Universidade Federal do Rio de Janeiro (UFRJ): Graduate: Program of Electrical Engineering/COPPE Undergraduate: Department of Electronics and Computer Science
The LPS
Signal Processing Laboratory Linked both to Graduate and Undergraduate Departments at Universidade Federal do Rio de Janeiro (UFRJ): Graduate: Program of Electrical Engineering/COPPE Undergraduate: Department of Electronics and Computer Science 12 full-time professors;
The LPS
Signal Processing Laboratory Linked both to Graduate and Undergraduate Departments at Universidade Federal do Rio de Janeiro (UFRJ): Graduate: Program of Electrical Engineering/COPPE Undergraduate: Department of Electronics and Computer Science 12 full-time professors; Around 40 Ph.D., 50 M.Sc. and 50 Engineering Students.
Signal Compression using Multiscale Recurrent Patterns p. 4/96
Data encoding
Let x be any data set. An encoder R maps each x to a binary string representation s. x s = 00101110
R
Data encoding
Let x be any data set. An encoder R maps each x to a binary string representation s. x s = 00101110 Different data sets x can be mapped to different strings s : x s = 10011
R R
Data encoding
Let x be any data set. An encoder R maps each x to a binary string representation s. x s = 00101110 Different data sets x can be mapped to different strings s : x s = 10011 Different encoders produce different representations x s = 010110
R R R
Data compression
Lossless compression: Find an invertible encoder R that minimizes the mean length of the representations s = R(x), considering the set of all {x} of interest.
Data compression
Lossless compression: Find an invertible encoder R that minimizes the mean length of the representations s = R(x), considering the set of all {x} of interest. Lossy compression: Given a distortion metric D, nd a family of encoders Rd and a decoder R1 such that, for each d IR the mean length of the representations s = Rd (x) is minimum, subject to the constraint D(x, x) d, where x = R1 (s).
In this work we propose to deviate from the three-step encoding paradigm: We use the concept of Multiscale Recurrent Pattern Matching
In this work we propose to deviate from the three-step encoding paradigm: We use the concept of Multiscale Recurrent Pattern Matching In it, the operations of transformation, quantization and coding are interwinded
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
1 2
Theoretical analysis
It can be shown that the approximate multiscale pattern matching can outperform the ordinary approximate pattern matching at low rates, in the Gaussian memoryless source case.
Theoretical analysis
It can be shown that the approximate multiscale pattern matching can outperform the ordinary approximate pattern matching at low rates, in the Gaussian memoryless source case. The theoretical determination of the performance with other sources is an open problem.
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
MMP
Segmentation Tree
X0
Segmentation Tree
X0
node 0
Segmentation Tree
X0
node 0
node 1
node 2
X1
X2
Segmentation Tree
X0
node 0
node 1
node 2
X1
X2 X
5
node 5
node 6
X1
X6
Output sequence
X0
node 0
node 1
node 2
node 5
node 6
Output sequence
X0
node 0
node 1
node 2
node 5
node 6
Output: 0
Output sequence
node 0
X1
node 1
node 2
node 5
node 6
Output: 0
Output sequence
node 0
X1
node 1
node 2
node 5
node 6
Output: 0, 1
Output sequence
X1
node 0
X1
node 1
node 2
node 5
node 6
Output: 0, 1, i1
Output sequence
X2
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1
Output sequence
X2
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0
Output sequence
node 0
X5
node 1 node 2
node 5
node 6
Output: 0, 1, i1 , 0
Output sequence
node 0
X5
node 1 node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1
Output sequence
X5
node 0
X5
node 1 node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5
Output sequence
node 0
X6
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5
Output sequence
node 0
X6
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5 , 1
Output sequence
X6
node 0
X6
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5 , 1, i6
Output sequence
X0
node 0
X0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5 , 1, i6
Decoding
node 0
Decoding
node 0
node 1
node 2
Output: 0
Decoding
node 0
node 1
node 2
Output: 0, 1
Decoding
X1
node 0
node 1
node 2
Output: 0, 1, i1
Decoding
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0
Decoding
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1
Decoding
X5
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5
Decoding
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5 , 1
Decoding
X6
node 0
node 1
node 2
node 5
node 6
Output: 0, 1, i1 , 0, 1, i5 , 1, i6
Decoding
X0
node 0
X5
X6
X2
node 1 node 2
X1
X2
X0
node 5 node 6
Output: 0, 1, i1 , 0, 1, i5 , 1, i6
Block coding
Block coding
Block coding
Block coding
Block coding
Block coding
Block coding
Implementation issues
The block size M = 2K is a power of 2.
Implementation issues
The block size M = 2K is a power of 2. There are only K + 1 different scales.
Implementation issues
The block size M = 2K is a power of 2. There are only K + 1 different scales. To avoid the computation of scale transformations at each mach attempt, we can use several copies of the dictionary, one at each possible scale.
Implementation issues
The block size M = 2K is a power of 2. There are only K + 1 different scales. To avoid the computation of scale transformations at each mach attempt, we can use several copies of the dictionary, one at each possible scale. Therefore we have K + 1 dictionaries, D (0) , D(1) , . . . , D(K)
Multidimensional extensions
MMP segmentation
When the imput signal is one-dimensional, MMP can split an input block of lenght N in two sub-blocks of length N/2. This is equivalent to choose a segmentation point p in a one dimensional-space as p = N/2.
MMP segmentation
When the imput signal is one-dimensional, MMP can split an input block of lenght N in two sub-blocks of length N/2. This is equivalent to choose a segmentation point p in a one dimensional-space as p = N/2. When the input signal is multi-dimensional, we just have to choose a segmentation point p in a multi-dimensional space.
2D segmentation: quad-tree
2D segmentation: quad-tree
2D segmentation: quad-tree
Scale Transformations
Scale Transformations
The scale transformations are simple sampling rate change operations.
Scale Transformations
The scale transformations are simple sampling rate change operations. Good results are usually obtained with linear interpolation and decimation.
Scale Transformations
The scale transformations are simple sampling rate change operations. Good results are usually obtained with linear interpolation and decimation. Zero order interpolation also works. More sophisticated interpolation schemes, like splines, make little difference in the performance.
Initial Dictionary
Initial Dictionary
MMP builds the dictionary as it encodes the data.
Initial Dictionary
MMP builds the dictionary as it encodes the data. Therefore, the initial dictionary can be very simple, with no need for any kind of training.
Initial Dictionary
MMP builds the dictionary as it encodes the data. Therefore, the initial dictionary can be very simple, with no need for any kind of training. For images, it is common to initialize the dictionary at scale 1 1 (D0 ) with the impulses having all integer amplitudes from 0 to 255.
Initial Dictionary
MMP builds the dictionary as it encodes the data. Therefore, the initial dictionary can be very simple, with no need for any kind of training. For images, it is common to initialize the dictionary at scale 1 1 (D0 ) with the impulses having all integer amplitudes from 0 to 255. The initial dictionaries at other scales can be derived from the one at scale D0 by the scale transformations. Thus, they will be composed of two-dimensional rectangular pulses.
Signal Compression using Multiscale Recurrent Patterns p. 35/96
Initial Dictionary
Using this initial dictionary, MMP can have good results for a large class of image data, ranging from smooth images to document and graphics images. It even works for white gaussian noise.
Initial Dictionary
Using this initial dictionary, MMP can have good results for a large class of image data, ranging from smooth images to document and graphics images. It even works for white gaussian noise. One can thus say that MMP has a universal character.
Initial Dictionary
Using this initial dictionary, MMP can have good results for a large class of image data, ranging from smooth images to document and graphics images. It even works for white gaussian noise. One can thus say that MMP has a universal character. Also using this initial dictionary, one can achieve lossless compression.
Initial Dictionary
Using this initial dictionary, MMP can have good results for a large class of image data, ranging from smooth images to document and graphics images. It even works for white gaussian noise. One can thus say that MMP has a universal character. Also using this initial dictionary, one can achieve lossless compression. For lossy image compression, it sufces to quantize the amplitudes of the initial dictionaries with step size 4.
Signal Compression using Multiscale Recurrent Patterns p. 36/96
Dictionary Updating
Dictionary Updating
In MMP, the dictionary is updated by concatenations of previously encoded segments.
Dictionary Updating
In MMP, the dictionary is updated by concatenations of previously encoded segments.
Dictionary Updating
However, the dictionary can be updated using other criteria, depending of the source to be encoded.
Dictionary Updating
However, the dictionary can be updated using other criteria, depending of the source to be encoded. For example, for smooth images, a deblocking lter could be applied to a block before it is included in the dictionary, or a block could be included or not according to perceptual criteria.
Dictionary Updating
The dictionary could also be updated using displaced blocks belonging to the blocks causal neighborhood
Dictionary Updating
The dictionary could also be updated using displaced blocks belonging to the blocks causal neighborhood
Dictionary Updating
The dictionary could also be updated using displaced blocks belonging to the blocks causal neighborhood
Dictionary Updating
The dictionary could also be updated using displaced blocks belonging to the blocks causal neighborhood
Dictionary Updating
The dictionary could also be updated using displaced blocks belonging to the blocks causal neighborhood
Dictionary Updating
Rotated blocks could also be used.
d
Dictionary Updating
d
Other option is to only insert words that are sufciently distant from the others.
d
X0
X1
X2
X5
X6
(a)
X0
^0
X
X1
X2
X1
^2
X
X5
X6
^5
X
^6
X
(a)
(b)
Quantization Method
Since MMP encodes segments of a signal with vectors from a dictionary, it can be regarded as a vector quantizer.
Quantization Method
Since MMP encodes segments of a signal with vectors from a dictionary, it can be regarded as a vector quantizer. It is an adaptive, multiscale vector quantizer.
Encoding Method
Since MMP encodes segments of an image using concatenations of previously occurred patterns, it can be regarded as a method based on recurrent pattern matching, as Lempel-Ziv encoders.
Encoding Method
Since MMP encodes segments of an image using concatenations of previously occurred patterns, it can be regarded as a method based on recurrent pattern matching, as Lempel-Ziv encoders. It is a multiscale, lossy recurrent pattern matching method.
Transform-based Method
The dictionary in MMP grows with concatenations of words previously present in the dictionary.
Transform-based Method
The dictionary in MMP grows with concatenations of words previously present in the dictionary. If the initial dictionary has only pulse functions with several amplitudes and scales, then the dictionary is built by functions that are concatenations of pulses with several scales.
Transform-based Method
The dictionary in MMP grows with concatenations of words previously present in the dictionary. If the initial dictionary has only pulse functions with several amplitudes and scales, then the dictionary is built by functions that are concatenations of pulses with several scales. Then the signal is eventually approximated with concatenations of expansions and contractions of pulses
Signal Compression using Multiscale Recurrent Patterns p. 47/96
Transform-based Method
Transform-based Method
X(t) =
k
t k k
Signal Compression using Multiscale Recurrent Patterns p. 48/96
Transform-based Method
X(t) =
k
t k k
Transform-based Method
X(t) =
k
t k k
(t)
Transform-based Method
Using this knowledge, one can devise a post-processing method that can greatly reduce the blockiness inherent in MMP-based methods.
Transform-based Method
Using this knowledge, one can devise a post-processing method that can greatly reduce the blockiness inherent in MMP-based methods.
Transform-based Method
One lters the decoded signal with a smoothing lter whose kernel depends on the support of the basis function it is ltering.
Transform-based Method
One lters the decoded signal with a smoothing lter whose kernel depends on the support of the basis function it is ltering.
Transform-based Method
The best results are usually obtained with a gaussian kernel
Transform-based Method
Transform-based Method
R-D optimization
Segmentation tree
The segmentation tree described so far was built considering local decisions based on distortion calculations.
Segmentation tree
The segmentation tree described so far was built considering local decisions based on distortion calculations. We can expect an improved compression performance if we build the segmentation tree using a global criterium based on distortion and rate evaluations.
Notation
node 0
node 1
node 2
node 5
node 6
Notation
node 0
node 1
node 2
node 5
node 6
Notation
node 0
node 1
node 2
node 5
node 6
Segmentation tree: S = {0, 1, 2, 5, 6} Distortion of node l: D(l) = Xl Sil Rate of index il : R(l) = log2 (Pr(il |kl ))
Notation
node 0
node 1
node 2
node 5
node 6
Segmentation tree: S = {0, 1, 2, 5, 6} Distortion of node l: D(l) = Xl Sil Rate of index il : R(l) = log2 (Pr(il |kl )) Distortion of the Segmentation tree: D(S) =
lSF
D(l)
Notation
node 0
node 1
node 2
node 5
node 6
Segmentation tree: S = {0, 1, 2, 5, 6} Distortion of node l: D(l) = Xl Sil Rate of index il : R(l) = log2 (Pr(il |kl )) Distortion of the Segmentation tree: D(S) =
lSF
D(l) R(l)
J(l)
Sub-Trees
Tree S node 0
node 1
node 2
node 5
node 6
Sub-Trees
Tree S node 0
node 2
node 5
node 6
Sub-Trees
Tree S node 0
node 2
node 5
node 6
J(S(l)) = RA (S(l)) +
lSF S(l)
J(l)
Lagrangian costs
If l is a leaf node,
1 J(S(l)) = D(l) + (Rl + R(l))
Lagrangian costs
If l is a leaf node,
1 J(S(l)) = D(l) + (Rl + R(l))
Lagrangian costs
If l is a leaf node,
1 J(S(l)) = D(l) + (Rl + R(l))
Coupling through D
The previous strategy is sub-optimal in the sense that it assumes that the costs of the nodes are not coupled. This is not true because of the dictionary updating procedure.
node 0
node 1
node 2
node 3
node 4
Coupling through D
The previous strategy is sub-optimal in the sense that it assumes that the costs of the nodes are not coupled. This is not true because of the dictionary updating procedure.
node 0
node 1
node 2
node 3
node 4
Therefore we must consider the impact of the pruning of a sub-tree in the costs of the remaining nodes before we decide whether to prune it or not.
Signal Compression using Multiscale Recurrent Patterns p. 60/96
Optimization procedure
We initialize S as a full tree.
Optimization procedure
We initialize S as a full tree. The tree is traversed from the leaf nodes towards the root node.
Optimization procedure
We initialize S as a full tree. The tree is traversed from the leaf nodes towards the root node. We must prune the descendants of the node l if J(l)+Rl1 +Jl < J(S(2l+1))+J(S(2l+2))+Rl0 where Jl =
rS l
J (r)
rS l
J(r).
Optimization procedure
We initialize S as a full tree. The tree is traversed from the leaf nodes towards the root node. We must prune the descendants of the node l if J(l)+Rl1 +Jl < J(S(2l+1))+J(S(2l+2))+Rl0 where Jl =
rS l
J (r)
rS l
J(r).
Side-Match MMP
Uses a subset of the dictionary D, the state dictionary Ds , to encode a given input block.
Side-Match MMP
Uses a subset of the dictionary D, the state dictionary Ds , to encode a given input block. Ds is composed of vectors that comply to a smoothness criterion, considering a causal neighborhood.
Side-Match MMP
Uj Lj Xj
Side-Match MMP
Uj Lj Xj
Experimental results
Simulation Parameters:
Experimental results
Simulation Parameters: Two-dimensional MMP was applied to compress gray scale images.
Experimental results
Simulation Parameters: Two-dimensional MMP was applied to compress gray scale images. Maximum input block size 16 16.
Experimental results
Simulation Parameters: Two-dimensional MMP was applied to compress gray scale images. Maximum input block size 16 16. Maximum dictionary size 32768
Experimental results
Simulation Parameters: Two-dimensional MMP was applied to compress gray scale images. Maximum input block size 16 16. Maximum dictionary size 32768 Initial dictionary at scale 0: Range from 0 to 255; step size 4.
Images used
0.2
0.4
0.6 R (bits/pixel
0.8
1.2
SMMMPRD JPEG2000
0.1
0.2
0.3
0.4
0.5
0.6 R (bpp)
0.7
0.8
0.9
1.1
0.8
1.2
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.1
1.2
R (bits/pixel
Signal Compression using Multiscale Recurrent Patterns p. 70/96
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.1
1.2
R (bits/pixel
Signal Compression using Multiscale Recurrent Patterns p. 71/96
MMP-Intra
It encodes with MMP the residual of the an Intra prediction similar to the one used in H.264.
MMP-Intra
It encodes with MMP the residual of the an Intra prediction similar to the one used in H.264.
Vertical
Horizontal
45
Directional Modes
MMP-Intra
Mi : partition for prediction; ii : partition for MMP encoding
M1 M2 i1 i0 i2 i3
MMP-Intra
Mi : partition for prediction; ii : partition for MMP encoding
M1 M2 i1 i0 i2 i3
PSNR (dB)
0.8
1.2
1.4
1.2
1.4
1.6
1.8
1.2
1.4
1.6
MMPIntra w/ new Dic design H.264/AVC High JPEG2000 0.7 0.8 bpp
Signal Compression using Multiscale Recurrent Patterns p. 81/96
0.9
1.1
1.2
1.3
0.8
1.2
MMP-Video
The universal character of MMP makes it a good candidate for encoding displaced frame differences.
MMP-Video
The universal character of MMP makes it a good candidate for encoding displaced frame differences. The initial dictionary at frame n + 1 is the same as the one at the end of encoding frame n.
MMP-Video
The universal character of MMP makes it a good candidate for encoding displaced frame differences. The initial dictionary at frame n + 1 is the same as the one at the end of encoding frame n. Different probability models are used for vectors entering the dictionary during the encoding of P, B, luminance and chrominance frames.
MMP-Video
This proposal has been tested by replacing the INTER encoding of displaced frame differences in an H.264 encoder by the MMP.
MMP-Video
This proposal has been tested by replacing the INTER encoding of displaced frame differences in an H.264 encoder by the MMP. We have used as a starting point the JM9.6 H.264 software.
Other Developments
The dictionary learnt while encoding the left view is used to encode the right view.
The dictionary learnt while encoding the left view is used to encode the right view. Good results have been reported.
Signal Compression using Multiscale Recurrent Patterns p. 88/96
The quasi-periodic nature of the ECG makes it a good candidate for encoding with MMP.
The quasi-periodic nature of the ECG makes it a good candidate for encoding with MMP. Good results have been reported.
Conclusions
Conclusions
We developed the MMP, an universal lossy/lossless compressor based on multiscale pattern matching.
Conclusions
We developed the MMP, an universal lossy/lossless compressor based on multiscale pattern matching. Differently from many other coders, MMP does not rely on the transformation-quantization-entropy coding paradigm.
Conclusions
We developed the MMP, an universal lossy/lossless compressor based on multiscale pattern matching. Differently from many other coders, MMP does not rely on the transformation-quantization-entropy coding paradigm. It was succesfully applied to lossy compress different sets of data, such as still images, mixed compounds (graphics+text+still images), video, stereo pairs and ECG data.
Signal Compression using Multiscale Recurrent Patterns p. 91/96
Conclusions
Its complexity is equivalent to the one of vector quantization.
Conclusions
Its complexity is equivalent to the one of vector quantization. Therefore, its computational complexity is an important issue.
Future work
Development of fast versions of MMP.
Future work
Development of fast versions of MMP. Development of speech and audio codecs using the MMP paradigm.
Future work
Development of fast versions of MMP. Development of speech and audio codecs using the MMP paradigm. Further improvement in its coding efciency in image and video coding.
Future work
Development of fast versions of MMP. Development of speech and audio codecs using the MMP paradigm. Further improvement in its coding efciency in image and video coding. Theoretical analysis of MMP performance with sources other than the memoryless Gaussian source.
References
References
Can be found in http://www.lps.ufrj.br/profs/eduardo/ Alternatively, email eduardo@lps.ufrj.br
Thank you!
Back to Summary