|
- <?php header("Content-Type: text/html; charset=utf-8"); ?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
-
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="GENERATOR" content="vim" />
- <meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
- <meta name="Description" content="Libcaca study: the science behind colour ASCII art" />
- <meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib, dithering, thresholding" />
- <title>Libcaca study: the science behind colour ASCII art</title>
- <link rel="icon" type="image/x-icon" href="/favicon.ico" />
- <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
- <link rel="stylesheet" type="text/css" href="/main.css" />
- </head>
-
- <body>
-
- <?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>
-
- <p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: this
- document is still work in progress. Feel free to send comments but do not
- consider it final material. </p>
-
- <!--<div style="float: left;">
- <a href=""></a>
- </div>-->
- <div style="float: right;">
- <a href="part1.html">>>> Colour quantisation</a>
- </div>
-
- <br style="clear: both;" />
-
- <h2> Libcaca study: the science behind colour ASCII art </h2>
-
- <p> This document is an attempt at extending the leverage of skilled
- resources by uncovering and addressing the challenges the industry faces
- today in the area of colour ASCII art generation. </p>
-
- <p> Seriously, guys. If you think that what libcaca does is easy, you either
- don’t know what you are talking about, or we want you in the team. </p>
-
- <h3> Foreword </h3>
-
- <p> Meet Lena. She will guide us through this document, because the
- seriousness of a scientific document in the area of computer graphics can
- be measured by the number of times Lena appears in it. She truly is the
- <i>Mona Lisa</i> of image processing. [2] </p>
-
- <p style="text-align: center;">
- <img src="lena256.png" width="256" height="256"
- class="inline" alt="Lena (256×256)" />
- <img src="gradient256.png" width="64" height="256"
- class="inline" alt="colour gradient (64×256)" />
- <img src="lena256bw.png" width="256" height="256"
- class="inline" alt="Lena (256×256BW)" />
- <img src="gradient256bw.png" width="32" height="256"
- class="inline" alt="greyscale gradient (32×256)" />
- </p>
-
- <p> This document makes a lot of assumptions, such as the fact that input
- images are made of pixels that have either one (grey level) or three (red,
- green and blue) values uniformly spread between 0 and 1 (with regards to
- human contrast perception). Real life is more complicated than that, but
- that is beyond the scope of this document for now. </p>
-
- <h3> Table of contents </h3>
-
- <ul>
- <li> <a href="part1.html">1. Colour quantisation</a>
- <ul>
- <li> 1.1. Black and white thresholding </li>
- <li> 1.2. Greyscale thresholding </li>
- <li> 1.3. Dynamic thresholding </li>
- <li> 1.4. Random dithering </li>
- </ul>
- </li>
- <li> <a href="part2.html">2. Halftoning</a>
- <ul>
- <li> 2.1. Halftoning patterns </li>
- <li> 2.2. Screen artifacts </li>
- <li> 2.3. Ordered dithering </li>
- <li> 2.4. Random ordered dithering </li>
- <li> 2.5. Non-rectangular dither tiles </li>
- <li> 2.6. Supercell dithering </li>
- <li> 2.7. Void and cluster method </li>
- </ul>
- </li>
- <li> <a href="part3.html">3. Error diffusion</a>
- <ul>
- <li> 3.1. Floyd-Steinberg and JaJuNi error diffusion </li>
- <li> 3.2. Floyd-Steinberg derivatives </li>
- <li> 3.3. Changing image parsing direction </li>
- <li> 3.4. Variable coefficients error diffusion </li>
- <li> 3.5. Block error diffusion </li>
- <li> 3.6. Sub-block error diffusion </li>
- <li> 3.7. Direct binary search </li>
- </ul>
- </li>
- <li> <a href="part4.html">4. Model-based dithering</a>
- <ul>
- <li> 4.1. Gaussian human visual system model </li>
- <li> 4.2. Direct binary search </li>
- <li> 4.3 Comparing dithering algorithms </li>
- </ul>
- </li>
- <li> <a href="part5.html">5. Greyscale dithering</a>
- <ul>
- <li> 5.1. Introducing gamma </li>
- <li> 5.2. Gamma correction </li>
- <li> 5.3. Greyscale sub-block error diffusion </li>
- </ul>
- </li>
- <li> <a href="part6.html">6. Colour dithering</a>
- <ul>
- <li> 6.1. Separate-space dithering </li>
- <li> 6.2. Accounting for other dimensions </li>
- <li> 6.3. Reducing visual artifacts </li>
- <li> 6.4. Colour sub-block error diffusion </li>
- </ul>
- </li>
- <li> <a href="part7.html">7. Photographic mosaics</a>
- <ul>
- <li> 7.1. Image classification </li>
- <li> 7.2. Error diffusion </li>
- <li> 7.3. Colour ASCII art </li>
- </ul>
- </li>
- <li> <a href="biblio.html">Bibliography</a> </li>
- <li> <a href="source.html">Source code</a> </li>
- </ul>
-
- <!--<div style="float: left;">
- <a href=""></a>
- </div>-->
- <div style="float: right;">
- <a href="part1.html">>>> 1. Colour quantisation</a>
- </div>
-
- <?php $rev = '$Id$';
- include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>
-
- </body>
- </html>
|