European Survey of Information Society


Home   Structure of ESIS   Background to the ESIS Project   Project Management Contacts   Lead and local Contractors   History of ESIS
Links (web browser)

Links is an open source text and graphic web browser with a pull-down menu system. It renders complex pages, has partial HTML 4.0 support (including tables and frames and support for multiple character sets such as UTF-8), supports color and monochrome terminals and allows horizontal scrolling.
It is intended for users who want to retain many typical elements of graphical user interfaces (pop-up windows, menus etc.) in a text-only environment.
The original version of Links was developed by Mikuláš Patocka in the Czech Republic. His group Twibright Labs later developed version 2 of the Links browser, that displays graphics, renders fonts in different sizes (with spatial anti-aliasing), but does not support JavaScript any more (it used to, up to version 2.1pre28). The resulting browser is very fast, but it does not display many pages as they were intended. The graphical mode works even on Unix systems without the X Window System or any other window environment, using either SVGALib or the framebuffer of the system's graphics card.
All graphic elements (images and text) are first converted from given gamma space (according to known or assumed gamma information in PNG, JPEG etc.) through known user gamma setting into a 48 bits per pixel photometrically linear space where they are resampled with bilinear resampling to the target size, possibly taking aspect ratio correction into account. Then the data are passed through high-performance restartable dithering engine which is used regardless of monitor bit depth, i.e., also for 24 bits per pixel colour. This Floyd-Steinberg dithering engine takes into account the gamma characteristics of the monitor and uses 768 KiB of dithering tables to avoid time expensive calculations. A technique similar to self-modifying code, function templates, is used to maximize the speed of the dithering engine without using assembly language optimization, which is non-portable.
The reason for this high quality processing is: provide proper realistic up and down sampling of images, and photorealistic display regardless of the monitor gamma, without colour fringing caused by 8-bit gamma correction built into the X server. It also increases the perceived colour depth over 24 bits per pixel.