126 lines
5.1 KiB
Org Mode
126 lines
5.1 KiB
Org Mode
|
#+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/]]
|