La compression de zéro (avec Python)

Vous vous êtes déjà demandé comment votre ordinateur faisait pour transformer de très gros fichiers en de tous petits .ZIP ? Ce tutoriel est fait pour vous.

Vous voulez apprendre le fonctionnement des principaux algorithmes de compression ? Pourquoi pas en apprendre un chaque jour ?

Chaque algorithme sera accompagné de schémas ou de diagrammes, sinon d’exemples en Python que nous rédigerons progressivement.

Niveau requis : débutant en Python, collège en anglais et maths. Convient à tout le monde ! (Lisez les chapitres dans l’ordre)

La compression sans perte

  1. Les bases de la base

    1. Le codage de l'information analogique : comment faisait-on dans le temps ?

    2. Le codage numérique de l'information : l'avènement de l'infomatique

    3. Le numérique et la compression

    4. À retenir

  2. LZ77 et LZSS : les algorithmes à fenêtre glissante

    1. LZ77 : la base de la base

    2. LZ77 en Python ?

    3. LZSS : un peu plus sérieux

    4. LZSS avec Python

    5. À retenir

  3. LZ78 et LZW : la compression par dictionnaire

    1. LZ78 : La compression par dictionnaire

    2. LZW : L'algorithme de .GIF, .TIFF...

    3. La décompression d'un fichier LZW avec Python (.Z)

  4. DEFLATE : L'algorithme que vous retrouvez partout

    1. Le codage de Huffman : en dire autant avec des mots plus courts

    2. Le codage Huffman appliqué à DEFLATE

    3. Le fonctionnement de DEFLATE

    4. Un décodeur DEFLATE en Python

  5. LZMA : L'autre grand enfant de LZ77

    1. Le range coding, c'est du gâteau  🍰

    2. Le format LZMA

    3. L'état LZMA

    4. LZMA en Python

  6. BZ2 : l'outsider entre DEFLATE et LZMA

    1. Les raisons derrière Burrows-Wheeler

    2. Description de Burrows-Wheeler

    3. Les étapes de BZ2

    4. Le format BZ2

    5. Huffman avec BZ2

    6. BZip2 en Python

Les formats d'image sans perte

  1. Le format PNG

    1. Structure du fichier

    2. Les principaux types de chunk

    3. Les filtres PNG

    4. Un décodeur PNG en Python

La compression avec perte

  1. Le compression JPEG

    1. La compression : les différents traitements opérés par JPEG

    2. Le format JPEG (JFIF)

    3. Un décodeur JPEG en Python

  2. Les algorithmes S3TC : la compression de textures

    1. DXT1 : des palettes de 4 couleurs pour 16 pixels

    2. DXT2/DXT3 : DXT1 mais avec des niveaux de transparence

    3. DXT4/DXT5 : DXT3 mais avec la transparence codée en palette

    4. Le format DDS

    5. Un décodeur DDS en Python

Annexe : Petit lexique de la compression

  1. La compression en un chapitre (si vous êtes déjà à bloc)

    1. Lexique des techniques de compression

    2. Lexique des algorithmes de compression



© Marin Moulinier 2020. Rédigé avec le logiciel libre zds-site.