12.07.2015 Views

Data Compression: The Complete Reference

Data Compression: The Complete Reference

Data Compression: The Complete Reference

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.12 SCSU: Unicode <strong>Compression</strong> 827<strong>The</strong>se actions are illustrated here for the historyH = CCRRRSLCRSERRELCRRRCRRRE,originally generated by the encoder from the mesh of Figure 8.46f. <strong>The</strong> preprocessingpass computes |V e | = 16, so we start with an initial boundary of 16 edges and of 16vertices that we label 1 through 16. <strong>The</strong> first edge (the one that is associated withvertex 1) is our initial gate G. Variable c is set to 16. <strong>The</strong> first C code encounteredin H sets entry TV[1] to the three labels 16 (G.P.e), 1 (G.e), and 17 (the result of++c). <strong>The</strong> reader should use Figure 8.46f to verify that these are, in fact, the verticesof the first triangle processed and removed by the encoder. A new edge, A, is alsocreated, and 17 is stored as its label. <strong>The</strong> new edge A is inserted before G by updatingthe pointers as follows: G.P.N=A, A.P=G.P, A.N=G, and G.P=A. <strong>The</strong> second C codecreates triangle (17, 1, 18) and inserts another new edge, with label 18, before G. (<strong>The</strong>reader should again verify that (17, 1, 18) are the vertices of the second triangle processedand removed by the encoder.) <strong>The</strong> first R code creates triangle (18, 1, 2), deletes gate Gfrom the boundary, and declares the edge labeled 2 the current gate.⋄ Exercise 8.8: Show the result of processing the second and third R codes.<strong>The</strong> first S code skips the six vertices (six, because O[1] = 6) 5, 6, 7, 8, 9, and 10. Itthen determines that triangle 6 has vertices (18, 4, 11), and splits the boundary into thetwo regions (11, 12, 13, 14, 15, 16, 17, 18) and (4, 5, 6, 7, 8, 9, 10). <strong>The</strong> bottom of the stackpoints to edge (8, 11), the first edge in the first region. <strong>The</strong> top of the stack points toedge (11, 4), the first edge in the second region. <strong>The</strong> L code creates triangle (11, 4, 10)and deletes the last edge of the second region. At this point the current edge G is edge(10, 4).[Rossignac 98] has more details of this interesting and original method, includingextensions of edgebreaker for meshes with holes in them, and for meshes without aboundary (meshes that are homeomorphic to a sphere).8.12 SCSU: Unicode <strong>Compression</strong><strong>The</strong> ASCII code is old, having been designed in the early 1960s. With the advent ofinexpensive laser printers and high-resolution displays, it has become possible to displayand print characters of any size and shape. As a result, the ASCII code, with its 128characters, no longer satisfies the needs of modern computing. Starting in 1991, theUnicode consortium (whose members include major computer corporations, softwareproducers, database vendors, research institutions, international agencies, various usergroups, and interested individuals) has proposed and designed a new character codingscheme that satisfies the demands of current hardware and software. Information aboutUnicode is available at [Unicode 03].<strong>The</strong> Unicode Standard assigns a number, called a code point, to each character(code element). A code point is listed in hexadecimal with a “U+” preceding it. Thus,the code point U+0041 is the number 0041 16 =65 10 . It represents the character “A” inthe Unicode Standard.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!