Brotli

Davide Gagliardi

BROTLI

 

B3-2017/2018

 


 

Introduction

Brotli est un librarie de compression des données développée par Jyrki Alakuijala e Zoltán Szabadka.

Brotli, est un ensemble composé d’algorithmes LZ77, du code adaptif de Huffman et des méthodes de modélisation du contenu.

 

Qu’est-ce que ça veut dire compresser un fichier ?

Le but principal de la compression de fichiers est d'en réduire la taille pour qu'ils "prennent moins place". Zipper un fichier n'en change ni le contenu, ni la structure, cela modifie uniquement l'espace qu'il occupe dans l'ordinateur.

 

Ici vous trouverez la liste de tous les algorithmes -> Liste

 

 

Il y a deux façons pour compresser,ou decompresser, les fichiers :

  • Symétrique : la même méthode est utilisée pour compresser et décompresser l'information (lossless)
  • Asymétrique : algorithmes pour lesquels la compres sion est plus lente que la décompression ou vice versa(lossy)

 

Taux de compression de donnée

Pour savoir le Taux de compression de donnée on utilise la formule suivante :

 

fichier non compressé / fichier compressé.

 


 

Brotli est créée car tous les sites web diviennent de plus un plus "lourds". Brotli a était développé par Google il y a deux ans et le but de cet algorithme est de compresser plus rapidement un fichier (principalement contenu web), entre 20% - 26% plus rapidement que Zopfli(l'adversaire de Brotli aussi developpé par Google). Google soutient que le format plus comprimé permet un chargement des pages plus vite . Si vous etes curieux ici il y a un test entre tous les alghorithmes de compression -> Test

 

le source code de Brotli est aussi disponible sur GIThub.


 Exemple Brotli avec C#

 On crée un Projet Console Application.

 Tout d'abord on télécharge la librairie "Brotli" pour ASP.NET

 

Dans la console NuGet on tape :

Install-Package BrotliSharpLib

 

Maintenant, on a téléchargé la librairie.
Aprés qu'on a télechargé la librairie on peut organiser les différents fichiers et dossiers

-myBook : Dans cette classe il y aura les différents books (compressé ou pas)
-AliceWonderland.txt (le livre à comprimer)

-Compress.cs : Dans cette classe on utilisera les méthodes pour compresser
-Decompress.cs : Dans cette classe on utilisera les méthodes pour decompresser
-Program.cs : Notre classe main

 

 


COMPRESS.CS
Dans la class Compress on peut ajouter des méthodes. On a deux manières pour manipuler Brotli(avec ou sans le Stream).

Méthode sans le Stream(on utiliserà celle-ci dans cet exemple)

 

Dans la méthode ComressBuffer on a les parametres :

1 – original : le fichier in []bytes
2 – offset du fichier
3 – la longeur du fichier
4 – la qualité : on peut utiliser 1,6,9,11 (il représente la qualité de compression)

 

Méthode avec le Stream(on utiliserà celle-ci dans cet exemple)

 


DECOMPRESS.CS
Dans la class Decompress on peut ajouter des méthodes. On a deux manières pour manipuler Brotli(avec ou sans le Stream).

 

 

Méthode avec le Stream(on utiliserà celle-ci dans cet exemple)


PROGRAM.CS
Dans cette class on peut créer deux instances des classes Compresser et Decompresser.

Lorsque on aura terminé le fichier AliceWonderland.txt.compressed sera crée.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *