source: www/study/index.html @ 2187

Revision 2187, 5.2 KB checked in by sam, 5 years ago (diff)
  • Greyscale sub-block error diffusion
Line 
1<?php header("Content-Type: text/html; charset=utf-8"); ?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3       "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
4
5<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
6
7<head>
8   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9   <meta name="GENERATOR" content="vim" />
10   <meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
11   <meta name="Description" content="Libcaca study: the science behind colour ASCII art" />
12   <meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib, dithering, thresholding" />
13   <title>Libcaca study: the science behind colour ASCII art</title>
14   <link rel="icon" type="image/x-icon" href="/favicon.ico" />
15   <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
16   <link rel="stylesheet" type="text/css" href="/main.css" />
17</head>
18
19<body>
20
21<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>
22
23<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: this
24document is still work in progress. Feel free to send comments but do not
25consider it final material. </p>
26
27<!--<div style="float: left;">
28   <a href=""></a>
29</div>-->
30<div style="float: right;">
31   <a href="part1.html">&gt;&gt;&gt; Colour quantisation</a>
32</div>
33
34<br style="clear: both;" />
35
36<h2> Libcaca study: the science behind colour ASCII art </h2>
37
38<p> This document is an attempt at extending the leverage of skilled
39resources by uncovering and addressing the challenges the industry faces
40today in the area of colour ASCII art generation. </p>
41
42<!-- not showing this line until the document is good enough
43<p> Seriously, guys. If you think that what libcaca does is easy, you either
44don’t know what you are talking about, or we want you in the team. </p> -->
45
46<p> Meet Lenna. She will guide us through this document, because the
47seriousness of a scientific document in the area of computer graphics can
48be measured by the number of times Lenna appears in it. She truly is the
49<i>Mona Lisa</i> of image processing. </p>
50
51<p style="text-align: center;">
52  <img src="lenna256.png" width="256" height="256"
53       class="inline" alt="Lenna (256×256)" />
54  <img src="gradient256.png" width="64" height="256"
55       class="inline" alt="colour gradient (64×256)" />
56  <img src="lenna256bw.png" width="256" height="256"
57       class="inline" alt="Lenna (256×256BW)" />
58  <img src="gradient256bw.png" width="32" height="256"
59       class="inline" alt="greyscale gradient (32×256)" />
60</p>
61
62<h3> Foreword </h3>
63
64<p> This document makes a lot of assumptions, such as the fact that input
65images are made of pixels that have either one (grey level) or three (red,
66green and blue) values uniformly spread between 0 and 1 (with regards to
67human contrast perception). Real life is more complicated than that, but
68that is beyond the scope of this document for now. </p>
69
70<p> All the algorithms explained in this document can be found in
71the <tt><a href="study.py">study.py</a></tt> Python program. Just install
72the <tt>python-gd</tt> package on your favourite operating system and
73run the script. The different Lenna images were also generated with this
74script from the <a href="http://www.cs.cmu.edu/~chuck/lennapg/">original
75colour 512×512 image</a>. If you have inkscape installed, many graphics
76such as dither matrices will also be automatically generated. </p>
77
78<h3> Sections </h3>
79
80<ul>
81  <li> <a href="part1.html">1. Colour quantisation</a>
82    <ul>
83      <li> 1.1. Black and white thresholding </li>
84      <li> 1.2. Greyscale thresholding </li>
85      <li> 1.3. Dynamic thresholding </li>
86      <li> 1.4. Random dithering </li>
87    </ul>
88  </li>
89  <li> <a href="part2.html">2. Halftoning</a>
90    <ul>
91      <li> 2.1. Halftoning patterns </li>
92      <li> 2.2. Screen artifacts </li>
93      <li> 2.3. Ordered dithering </li>
94      <li> 2.4. Random ordered dithering </li>
95      <li> 2.5. Non-rectangular dither tiles </li>
96      <li> 2.6. Supercell dithering </li>
97      <li> 2.7. Void and cluster method </li>
98    </ul>
99  </li>
100  <li> <a href="part3.html">3. Error diffusion</a>
101    <ul>
102      <li> 3.1. Floyd-Steinberg error diffusion </li>
103      <li> 3.2. Floyd-Steinberg derivatives </li>
104      <li> 3.3. Changing image parsing direction </li>
105      <li> 3.4. Variable coefficients error diffusion </li>
106      <li> 3.5. Block error diffusion </li>
107      <li> 3.6. Sub-block error diffusion </li>
108    </ul>
109  </li>
110  <li> <a href="part4.html">4. Greyscale dithering</a>
111    <ul>
112      <li> 4.1. Introducing gamma </li>
113      <li> 4.2. Gamma correction </li>
114      <li> 4.3. Greyscale sub-block error diffusion </li>
115    </ul>
116  </li>
117  <li> <a href="part5.html">5. Colour dithering</a>
118    <ul>
119      <li> 5.1. Separate-space dithering </li>
120      <li> 5.2. Accounting for other dimensions </li>
121      <li> 5.3. TODO </li>
122    </ul>
123  </li>
124  <li> <a href="part6.html">6. Photographic mosaics</a>
125    <ul>
126      <li> 6.1. Image classification </li>
127    </ul>
128  </li>
129</ul>
130
131<!--<div style="float: left;">
132   <a href=""></a>
133</div>-->
134<div style="float: right;">
135   <a href="part1.html">&gt;&gt;&gt; 1. Colour quantisation</a>
136</div>
137
138<?php $rev = '$Id$';
139      include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>
140
141</body>
142</html>
Note: See TracBrowser for help on using the repository browser.