aXlireza / Compression_Research

Sparse Coding/Dictionary Learning/PCA/LossLess/Autoencoder/CVAE/Lossy Data Compression

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compression Algorithms and AI Models

Quick Presentation Slides: https://docs.google.com/presentation/d/1moeKY3MZq3_LiNgB0XGWK1hVht5Uw-7c3sLpkjZcDRY/edit?usp=sharing

Algos

Sparse Coding:

How it works

Sparse coding is a technique where a signal is represented as a linear combination of a few basis functions from a predefined dictionary. The key idea is to enforce sparsity in the coefficients, meaning that most coefficients are zero.

Suitability

It is suitable when the input data can be efficiently represented using a small number of basis functions. Sparse coding is commonly used in image and signal processing.

Dictionary Learning:

How it works

Dictionary learning aims to find an overcomplete dictionary and sparse representations of data in terms of this dictionary. It adapts the dictionary to better represent the input data, allowing for more flexible and adaptive representations.

Suitability

Dictionary learning is suitable when the data has complex structures that cannot be efficiently captured by a fixed basis. It's used in image and signal processing scenarios where the data exhibits diverse patterns.

PCA (Principal Component Analysis):

How it works

PCA is a linear dimensionality reduction technique that finds the principal components of the data. These components capture the directions of maximum variance, and by selecting a subset of them, the data can be projected into a lower-dimensional space.

Suitability

PCA is effective when the majority of the data's variance can be captured by a smaller number of principal components. It's widely used in various applications, such as image compression and feature extraction.

LossLess

How it works

Grouping repeated bits in sequences. Instead of writing 1 1 1 1, we shall write 4 1.

Suitability

the way i see it, everywhere

AIs

Autoencoder:

How it works

An autoencoder is a neural network that learns a compact representation of data by encoding it into a lower-dimensional space and then decoding it back to the original space. It consists of an encoder and a decoder.

Suitability

Autoencoders are versatile and can handle non-linear relationships in the data. They are suitable for various applications and are widely used in image, text, and feature learning tasks.

Bonus

I'm thinking about merging some methods together with this one. first, run over a mask to remove some data, maybe randmly, maybe on algorithm. then run the Autoencoder and then use lossless compression. together, it should be hell of a compression.

Convolutional Variational Autoencoder (CVAE):

How it works

A CVAE is an extension of the autoencoder that incorporates variational inference. It introduces a probabilistic layer in the latent space, allowing for sampling and generating diverse outputs. Convolutional layers are used for spatial data like images.

Suitability

CVAEs are effective for generating diverse outputs and handling uncertainty. They are suitable for scenarios where a probabilistic representation is desired, such as image generation or data synthesis.

Lossy Data Compression:

How it works

Lossy data compression involves discarding some information from the data to achieve higher compression ratios. Techniques like quantization and approximation are used, leading to a loss of fidelity in the reconstructed data.

Suitability

Lossy compression is suitable when a certain level of loss in data quality is acceptable. It's commonly used in multimedia compression (e.g., JPEG for images) where a good trade-off between compression ratio and perceptual quality is needed.

Scenarios and Suitability Summary:

  • Use Sparse Coding when you want a sparse and efficient representation of data with a predefined dictionary.
  • Use PCA for linear dimensionality reduction when capturing the principal components is sufficient.
  • Use Dictionary Learning when the data exhibits complex and diverse patterns that require an adaptive dictionary.
  • Use Autoencoders for versatile non-linear compression and feature learning across various domains.
  • Use CVAEs when a probabilistic representation and generation of diverse outputs are desired, especially in spatial data.
  • Use Lossy Data Compression when a trade-off between compression ratio and acceptable loss in data quality is needed, suitable for multimedia applications.

About

Sparse Coding/Dictionary Learning/PCA/LossLess/Autoencoder/CVAE/Lossy Data Compression


Languages

Language:C++ 48.9%Language:Jupyter Notebook 37.9%Language:Python 6.6%Language:C 2.2%Language:Starlark 2.2%Language:Shell 1.0%Language:Makefile 0.8%Language:NASL 0.1%Language:Mako 0.1%Language:Assembly 0.1%Language:Pascal 0.0%