#+TITLE: Compression d’images par surfaces unies
#+AUTHOR: Lucien Cartier-Tilet
#+EMAIL: phundrak@phundrak.fr
#+CREATOR: Lucien Cartier-Tilet
#+LANGUAGE: fr
* Introduction
- Compresser et décompresser des images
- Méthode : surfaces de couleurs unies
* Méthode et algorithme
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix1.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix2.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix3.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix1.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix4.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix1.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix5.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix1.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix6.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix7.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix8.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix9.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix10.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix11.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix12.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix13.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix14.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix15.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix16.png]]
* Méthode et algorithme
#+attr_html: :height 750px
[[./img-pres/asterix17.png]]
* Implémentation et résultats
| header          |                      |             |                 |
|                 | sizeX                |             | src_c{uint64_t} |
|                 | sizeY                |             | src_c{uint64_t} |
|                 |                      |             |                 |
| nb zones        |                      |             | src_c{uint64_t} |
|                 |                      |             |                 |
| zones[nb zones] |                      |             |                 |
|                 | R                    |             | src_c{uint8_t}  |
|                 | G                    |             | src_c{uint8_t}  |
|                 | B                    |             | src_c{uint8_t}  |
|                 | nb segments          |             | src_c{uint64_t} |
|                 |                      |             |                 |
|                 | segment[nb segments] |             |                 |
|                 |                      | left limit  | src_c{uint32_t} |
|                 |                      | right limit | src_c{uint32_t} |
* Implémentation et résultats
| taille du fichier d’origine | 3582016 bytes |
| taille du fichier compressé | 2403581 bytes |
| taux de compression         | ~33%          |
| vitesse d’exécution         | 7.06 sec      |
Tests réalisés sur un CPU Intel i7-6700HQ (3.500GHz)
* Améliorations
- Algorithme :: ignorer les tests de pixels supérieurs et inférieurs à un segment
- Sortir du concept d’image :: ignorer le concept de lignes et colonnes
- Compression à pertes :: Authoriser la perte de qualité pour un gain de place
* Améliorations
- Algorithme :: perte de vitesse
- Sortir du concept d’image :: gains négligeables (12KB sur 2.4MB)
* Améliorations
- Compression à pertes ::
#+attr_html: :height 750px
[[../img/asterix5p.png]]
* Améliorations
- Compression à pertes ::
| tolérance | vitesse d’exécution | taille de l’image compressée |
|-----------+---------------------+------------------------------|
|         0 | 7.37s               | 2.3Mo                        |
|         5 | 0.85s               | 2.0Mo                        |
|        10 | 0.82s               | 2.0Mo                        |
|        15 | 0.86s               | 2.0Mo                        |
|        20 | 0.84s               | 1.9Mo                        |
|        25 | 0.85s               | 1.9Mo                        |
|        30 | 0.92s               | 1.8Mo                        |
|        40 | 1.18s               | 2.1Mo                        |
|        50 | 0.90s               | 1.5Mo                        |
|        60 | 1.41s               | 1.9Mo                        |
|        70 | 1.34s               | 1.8Mo                        |
|        80 | 1.40s               | 1.9Mo                        |
|        90 | 1.42s               | 1.9Mo                        |
|       100 | 0.17s               | 12Ko                         |
* Conclusion
* Liens et références
- Dépôt du code :: [[https://labs.phundrak.fr/phundrak/surfaces-unies]]
- Rapport de projet :: [[https://phundrak.fr/surfaces-unies/rapport.pdf]]
- Documentation du code :: [[https://phundrak.fr/surfaces-unies/]]
