https://en.wikipedia.org/wiki/Sixel Jump to content [ ] Toggle sidebar [wikipe] Wikipedia The Free Encyclopedia Search [ ] [Search] [Go] * Create account * Log in [ ] Personal tools * Create account * Log in Pages for logged out editors learn more * Contributions * Talk Navigation * Main page * Contents * Current events * Random article * About Wikipedia * Contact us * Donate Contribute * Help * Learn to edit * Community portal * Recent changes * Upload file Tools * What links here * Related changes * Upload file * Special pages * Permanent link * Page information * Cite this page * Wikidata item Print/export * Download as PDF * Printable version Languages On this Wikipedia the language links are at the top of the page across from the article title. Go to top. [ ] Contents move to sidebar hide * (Top) * 1Description * 2Sample * 3Notes * 4See also * 5References * 6External links Toggle the table of contents [ ] Toggle the table of contents Sixel [ ] 2 languages * Catala * Francais Edit links * Article * Talk [ ] English * Read * Edit * View history [ ] More * Read * Edit * View history From Wikipedia, the free encyclopedia Bitmap graphics format This article is about the bitmap graphics format. For the South African-Australian film editor, see Margaret Sixel. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and [50px-Q] removed. Find sources: "Sixel" - news * newspapers * books * scholar * JSTOR (March 2020) (Learn how and when to remove this template message) [220px-Sixel_Wikipedia_logo] The Wikipedia logo converted to sixel format and rendered in an xterm with VT340 emulation. Sixel, short for "six pixels", is a bitmap graphics format supported by terminals and printers from DEC. It consists of a pattern six pixels high and one wide, resulting in 64 possible patterns. Each possible pattern is assigned an ASCII character, making the sixels easy to transmit on 7-bit serial links. Sixel was first introduced as a way of sending bitmap graphics to DEC dot matrix printers like the LA50. After being put into "sixel mode" the following data was interpreted to directly control six of the pins in the nine-pin print head. A string of sixel characters encodes a single 6-pixel high row of the image. The system was later re-used as a way to send bitmap data to the VT200 series and VT320 terminals when defining custom character sets. A series of sixels are used to transfer the bitmap for each character. This feature is known as soft character sets or dynamically redefinable character sets (DRCS). With the VT240, VT241, VT330, and VT340, the terminals could decode a complete sixel image to the screen, like those previously sent to printers. Description[edit] Sixel encodes images by breaking up the bitmap into a series of 6-pixel high horizontal strips. Each 1-pixel-wide vertical column in a particular strip forms a single sixel. Each sixel's pixels are read as binary and encoded into a single 6-bit number, with "on" pixels encoded as a 1. This number, from 0 to 63 decimal, is then converted into a single ASCII character, offset by 63 so that an all-black sixel, 0 decimal, is encoded as ?. This ensures that the sixels remain within the printable character range of the ASCII character set. Carriage return (CR) is represented by $, and line feeds (LF) with a -; both had to be sent in turn to return the cursor to the start of the line, CRLF. Sixel also includes a rudimentary form of compression, using run-length encoding (RLE). This is accomplished with the ! character followed by a decimal number of the times to repeat, and then a single sixel character to be repeated. Since the ! and decimal digits cannot be valid sixel data, lying outside the encoded range, the encoding is easy to identify and expand back out in software. "Sixel mode" is entered by sending the sequence ESC+Pp1;p2;p3;q. The p1 through p3 were optional setup parameters, with p1 defining an aspect ratio (deprecated in favor of p3), p2 how to interpret the color of zeros, and p3 with simple grid size parameters. ESC+P is the standard DEC "Device Control String", or DCS, which was used to turn on or off a number of special features in DEC's equipment. The "q" is the sixel identifier.^[a] Sixel data then followed the q. The "String Terminator" sequence ESC+\ returned the device back to normal character mode again. For printing, sixels are sent to the printer, decoded back into binary, and sent directly to six pins in the print head. The only complexity involved expanding the RLEs into the internal print buffer. Display on a terminal is somewhat more difficult. On terminals supporting graphics, the ReGIS graphics system was used to directly draw the sixel pattern into the screen's bitmap. This was done at high speed by storing the bitmap patterns as a glyph and then blitting them. When used for defining custom character sets the format was almost identical, although the escape codes changed. In terms of the data, the only major difference is the replacement of the separate CR/LF with a single /. In the VT300 series for instance, 80-column character glyphs were 15 pixels wide by 12 high, meaning that a character could be defined by sending a total of 30 sixels. Color is also supported using the # character, followed by a number referring to one of a number of color registers, which varied from device to device. The colors in the registers are defined using either RGB or HLS values in a peculiar DEC format. To create a color image on a printer, a line of sixels is sent several times, each representing a single bitplane from the register-based colors on the terminals (normally 2 or 4 bits). Since the capabilities of the hardware vary widely, a color sixel drawing can only be output to targeted devices. Non-graphics terminals generally silently ignore sixel escape sequences. Sample[edit] [Sixel_demo] The sample Sixel code that says "HI" displayed in a xterm with VT340 emulation. Pq #0;2;0;0;0#1;2;100;100;0#2;2;0;100;0 #1~~@@vv@@~~@@~~$ #2??}}GG}}??}}??- #1!14@ \ The example above enters sixel mode, sets up three color registers, and then uses those registers to draw sixels in those colors. The #0; 2;0;0;0 is interpreted as "set color register 0, use mode 2 (RGB mode), set R, G and B to 0%". This sets color 0 to black, and the following commands set register 1 to yellow (100%, 100%, 0%) and 2 to green (0%, 100%, 0%). Unlike most modern systems which assign an 8-bit value (0-255) to each color channel, RGB mode is based on "intensity" of each channel from 0% to 100%. The data lines following select a color, yellow for the first and third and green for the middle, then draw sixels. The last line shows the RLE in use, meaning "repeat @ (0b100000) 14 times". The final output is 14 pixels by 7 pixels, so the last line simply repeats 0b100000 14 times to fill the last line. $ at the end of a line means that the next line will overprint the current line, while - means that the next line represents a new line of sixels. Notes[edit] 1. ^ Lower-case "p" was the ReGIS identifier. See also[edit] * ReGIS - a means of displaying vector graphics on later DEC VT-series terminals * Semigraphics - text-based graphics, including "squot" sub-character square blocks References[edit] * "VT330/VT340 Programmer Reference Manual, Volume 2: Graphics Programming", Digital, EK-VT3XX-GP-002, May 1988 * Chris Chiesa, All About SIXELs, 29 September 1990 External links[edit] * "Sixel Graphic News" * "Sixel software library" * "VT320 Soft Character Sets" * "Sixel Viewer and sample Sixel images" * "BMP to Sixel converter" * v * t * e Digital Equipment Corporation * Ken Olsen (founder and CEO, 1957-1992) * Harlan Anderson (co-founder) Key people * Gordon Bell (VP of engineering) * Robert Palmer (CEO, 1992-1998) * LSI-11 * F-11 PDP-11 * T-11 * J-11 * V-11 * MicroVAX 78032 * CVAX VAX + SOC * Rigel Instruction + Mariah set * NVAX architectures, processors * Alpha 21064 + 21066 + 21068 * Alpha 21164 ( Alpha 21164PC) * Alpha 21264 * Alpha 21364 * Alpha 21464 Other * MicroPRISM * StrongARM * VT05 (1970) * GT40 (1972) * VT50/VT52 (1975) * VT55 * VT62 * VT100 (1978) * VT101 * VT102 * VT103 * VT105 * VT131 Computer * VT180 terminals * VT220 (1983) * VT240 * VT241 * VT320 (1987) * VT330 * VT340 * VT420 (1990) * VT1000 (1990) * VT510 (1993) * VT520 (1994) * VT525 * DECsys * 4K DMS * COS * TOPS-10 * RSX-15 * TSS/8 * OS/8 * DOS-11 * RT-11 Operating * RSTS/E systems * RSX-11 + IAS * DSM-11 * TOPS-20 * VAX/VMS * VAXELN * Ultrix * MICA * Digital UNIX * BASIC-8 * DIBOL * FOCAL * MACRO-10 Digital Equipment Programming * MACRO-11 Corporation 1993 logo.svg languages * MUMPS * VAX MACRO * DIGITAL Command Language * Code page 1100 (Multinational) * Code page 1287 (Greek) * Code page 1288 (Turkish) Character sets * Hebrew * National Replacement * RADIX 50 * Special Graphics * Technical * DECtalk * DECtape * DECwriter * Digital Linear Tape * Digital Storage Systems Interconnect * Dynamically Redefined Character Set * Firefly * Flip-Chip module * Gold key * LK201 * LK421 * Mass Storage Control Protocol Other hardware * Massbus * PALcode * Q-Bus * RA90 * RK05 * RL02 * Standard Disk Interconnect * Star coupler * Synchronous Backplane Interconnect * System Module * TU81 * TURBOchannel * Unibus * VAXBI bus * AdvFS * AltaVista * CPU Wars * DECnet * DECUS + HP-Interex * Digital Federal Credit Union * Dynamic debugging technique * FX!32 * Local Area Transport * Maintenance Operations Protocol * On-line Debugging Tool * PALcode Related topics * Record Management Services * ReGIS * Sequence and Batch Language * Sixel * System Reference Manual * SYSTAT * Systems Research Center * TD/SMP * The Ultimate Entrepreneur * VAX Killer * WPS-8 * # Computers template * # Category * # Commons * Retrieved from "https://en.wikipedia.org/w/index.php?title=Sixel& oldid=1120400928" Categories: * Graphics file formats * Digital Equipment Corporation * Graphical terminals Hidden categories: * Articles with short description * Short description is different from Wikidata * Articles needing additional references from March 2020 * All articles needing additional references * This page was last edited on 6 November 2022, at 20:30 (UTC). * Text is available under the Creative Commons Attribution-ShareAlike License 3.0 ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia(r) is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. * Privacy policy * About Wikipedia * Disclaimers * Contact Wikipedia * Mobile view * Developers * Statistics * Cookie statement * Wikimedia Foundation * Powered by MediaWiki