Standard Compression Scheme for Unicode

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The Standard Compression Scheme for Unicode (SCSU)[1] is a Unicode Technical Standard for reducing the number of bytes needed to represent Unicode text, especially if that text uses mostly characters from one or a small number of per-language character blocks. It does so by dynamically mapping values in the range 128–255 to offsets within particular blocks of 128 characters. The initial conditions of the encoder mean that existing strings in ASCII and ISO-8859-1 that do not contain C0 control codes other than NULL TAB CR and LF can be treated as SCSU strings. Since most alphabets do reside in blocks of contiguous Unicode codepoints, texts that use small alphabets and either ASCII punctuation or punctuation that fits within the window for the main alphabet can be encoded at one byte per character (plus setup overhead, which for common languages is often only 1 byte), most other punctuation can be encoded at 2 bytes per symbol through non-locking shifts. SCSU can also switch to UTF-16 internally to handle non-alphabetic languages.

Symbian OS, an operating system for mobile phones and other mobile devices, uses SCSU to serialise strings.

Reuters, the organization that floated the first draft of SCSU, is believed to use SCSU internally.

SQL Server 2008 R2 uses SCSU to compress Unicode values stored in nchar(n) and nvarchar(n) columns, achieving space savings between 15% and 50%, depending on the language of the data.[2]

Comparison with general-purpose plain text compression schemes[edit]

In comparison with general-purpose compressors, it is not necessarily advantageous to use SCSU. Few applications need to compress so much Unicode text that it is worth using a special-purpose compression scheme which does not have widespread support. Also, while it can be used as a text encoding, it can be difficult to handle internally.

Treated purely as a compression algorithm, SCSU is inferior to most commonly used general-purpose algorithms for texts of over a few kilobytes. One of several problems with SCSU is then that the savings of SCSU versus UTF-16 or UTF-8 drop after external compression,[3] often dramatically so.

SCSU does have the advantage that it can usefully compress texts that are only a few characters long, whereas most full-scale compressors need hundreds of bytes of data to break even against their own overhead. In Symbian OS, SCSU is used even for Clipboard operations, e.g. Cut, Copy & Paste of small strings of text.

See also[edit]

References[edit]

  1. ^ "UTS #6: Compression Scheme for Unicode". 2005-05-06. Retrieved 2008-06-13. 
  2. ^ "Unicode Compression Implementation (SQL Server 2008 R2 Books Online)". Retrieved 2008-08-18. 
  3. ^ Ewell, Doug (2004-01-30). "UTN #14: A survey of Unicode compression" (PDF). Retrieved 2008-06-13.