surfaces-unies/rapport/presentation.html
2018-12-10 21:00:26 +01:00

356 lines
11 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<meta name="author" content="Lucien Cartier-Tilet" />
<title>Compression dimages par surfaces unies</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<style type="text/css">
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
a.sourceLine { text-indent: -1em; padding-left: 1em; }
}
pre.numberSource a.sourceLine
{ position: relative; left: -4em; }
pre.numberSource a.sourceLine::before
{ content: attr(title);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; pointer-events: all; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
a.sourceLine::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<link rel="stylesheet" type="text/css" media="screen, projection, print"
href="https://www.w3.org/Talks/Tools/Slidy2/styles/slidy.css" />
<script src="https://www.w3.org/Talks/Tools/Slidy2/scripts/slidy.js"
charset="utf-8" type="text/javascript"></script>
</head>
<body>
<div class="slide titlepage">
<h1 class="title">Compression dimages par surfaces unies</h1>
<p class="author">
Lucien Cartier-Tilet
</p>
</div>
<div id="introduction" class="slide section level1">
<h1>Introduction</h1>
<ul>
<li>Compresser et décompresser des images</li>
<li>Méthode : surfaces de couleurs unies</li>
</ul>
</div>
<div id="méthode-et-algorithme" class="slide section level1">
<h1>Méthode et algorithme</h1>
</div>
<div id="méthode-et-algorithme-1" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix1.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-2" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix2.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-3" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix3.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-4" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix1.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-5" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix4.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-6" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix1.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-7" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix5.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-8" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix1.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-9" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix6.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-10" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix7.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-11" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix8.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-12" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix9.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-13" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix10.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-14" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix11.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-15" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix12.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-16" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix13.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-17" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix14.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-18" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix15.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-19" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix16.png" height="750" /></p>
</div>
<div id="méthode-et-algorithme-20" class="slide section level1">
<h1>Méthode et algorithme</h1>
<p><img src="./img-pres/asterix17.png" height="750" /></p>
</div>
<div id="implémentation-et-résultats" class="slide section level1">
<h1>Implémentation et résultats</h1>
<table>
<tbody>
<tr class="odd">
<td>header</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="even">
<td></td>
<td>sizeX</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint64_t</span></code></td>
</tr>
<tr class="odd">
<td></td>
<td>sizeY</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint64_t</span></code></td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="odd">
<td>nb zones</td>
<td></td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint64_t</span></code></td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="odd">
<td>zones[nb zones]</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="even">
<td></td>
<td>R</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint8_t</span></code></td>
</tr>
<tr class="odd">
<td></td>
<td>G</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint8_t</span></code></td>
</tr>
<tr class="even">
<td></td>
<td>B</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint8_t</span></code></td>
</tr>
<tr class="odd">
<td></td>
<td>nb segments</td>
<td></td>
<td><code class="sourceCode c"><span class="dt">uint64_t</span></code></td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="odd">
<td></td>
<td>segment[nb segments]</td>
<td></td>
<td></td>
</tr>
<tr class="even">
<td></td>
<td></td>
<td>left limit</td>
<td><code class="sourceCode c"><span class="dt">uint32_t</span></code></td>
</tr>
<tr class="odd">
<td></td>
<td></td>
<td>right limit</td>
<td><code class="sourceCode c"><span class="dt">uint32_t</span></code></td>
</tr>
</tbody>
</table>
</div>
<div id="implémentation-et-résultats-1" class="slide section level1">
<h1>Implémentation et résultats</h1>
<table>
<tbody>
<tr class="odd">
<td>taille du fichier dorigine</td>
<td>3582016 bytes</td>
</tr>
<tr class="even">
<td>taille du fichier compressé</td>
<td>2403581 bytes</td>
</tr>
<tr class="odd">
<td>taux de compression</td>
<td>~33%</td>
</tr>
<tr class="even">
<td>vitesse dexécution</td>
<td>7.06 sec</td>
</tr>
</tbody>
</table>
<p>Tests réalisés sur un CPU Intel i7-6700HQ (3.500GHz)</p>
</div>
<div id="améliorations" class="slide section level1">
<h1>Améliorations</h1>
<dl>
<dt>Algorithme</dt>
<dd>ignorer les tests de pixels supérieurs et inférieurs à un segment
</dd>
<dt>Sortir du concept dimage</dt>
<dd>ignorer le concept de lignes et colonnes
</dd>
<dt>Compression à pertes</dt>
<dd>Authoriser la perte de qualité pour un gain de place
</dd>
</dl>
</div>
<div id="améliorations-1" class="slide section level1">
<h1>Améliorations</h1>
<dl>
<dt>Algorithme</dt>
<dd>perte de vitesse
</dd>
<dt>Sortir du concept dimage</dt>
<dd>gains négligeables (12KB sur 2.4MB)
</dd>
</dl>
</div>
<div id="améliorations-2" class="slide section level1">
<h1>Améliorations</h1>
<dl>
<dt>Compression à pertes</dt>
<dd>
</dd>
</dl>
<p><img src="../img/asterix5p.png" height="750" /></p>
</div>
<div id="conclusion" class="slide section level1">
<h1>Conclusion</h1>
</div>
<div id="liens-et-références" class="slide section level1">
<h1>Liens et références</h1>
<dl>
<dt>Dépôt du code</dt>
<dd><a href="https://labs.phundrak.fr/phundrak/surfaces-unies">https://labs.phundrak.fr/phundrak/surfaces-unies</a>
</dd>
<dt>Rapport de projet</dt>
<dd><a href="https://phundrak.fr/surfaces-unies/rapport.pdf">https://phundrak.fr/surfaces-unies/rapport.pdf</a>
</dd>
<dt>Documentation du code</dt>
<dd><a href="https://phundrak.fr/surfaces-unies/">https://phundrak.fr/surfaces-unies/</a>
</dd>
</dl>
</div>
</body>
</html>