Coding Polygon Meshes as Compressable ASCII

Martin Isenburg      Jack Snoeyink

abstract:
Because of the convenience of a text-based format 3D content is often published in form of a gzipped file that contains an ASCII description of the scene graph. While compressed image, audio, and video data is kept in seperate binary files, polygonal data is usually included uncompressed into the ASCII description, as there is no widely-accepted standard for compressed polygon meshes.
In this paper we show how to incorporate compression of polygonal data into a purely text-based scene graph description. Our scheme codes polygon meshes as ASCII strings that compress well with standard compression schemes such as gzip. The coder is lossless when only the position and texture coordinate indices are coded. If loss is acceptable, positions and texture coordinates can be quantized and delta coded, which reduces the file size further. The gzipped scene graph description files decrease by a factor of two (six) in size when the polygon meshes they contain are coded with the lossless (lossy) ASCII coder.
Furthermore we describe in detail a proof-of-concept implementation that uses the Shout3D pure java API---a plugin-less Web3D player that downloads all required java classes on demand. Our prototype is an extremely light-weight implementation of the decoder that can be distributed at minimal additional cost. The size of the compiled decoder class is less than 6KB by itself and less than 3KB if included into a compressed archive of java class files. It makes no use of specific features of the Shout3D API. Hence, our method will work for any scene graph API that allows (a) to extend the node set and (b) to store the scene graph as ASCII.

For improved compression see also Binary Compression Rates for ASCII Formats.

publications:

  • [is-cpmca-02.pdf slides] Martin Isenburg, Jack Snoeyink, Coding Polygon Meshes as Compressable ASCII, Proceedings of Web3D Symposium'02 (Best Paper), pages 1-10, February 2002
  • [is-cwa-02.pdf slides] Martin Isenburg, Jack Snoeyink, Coding with ASCII: compact, yet text-based 3D content (Invited Paper), Proceedings of the 1st International Symposium on 3D Data Processing, Visualization and Transmission, pages 609-616, June 2002.
  • [is-bcraf-03.pdf slides] Martin Isenburg, Jack Snoeyink, Binary Compression Rates for ASCII Formats, Proceedings of Web3D Symposium'03, pages 173-178, March 2003.

    downloads:

  • slides: cwa.ppt
  • software:

  • online Shout3D ASCII coder
  • online Benchmark coder
  • demos:

  • side-by-side comparison: fish lion snake swing_no_anim swing
  • interactive demos
  • lion [coded, gzipped][coded, quantized, gzipped]
  • wolf [coded, gzipped][coded, quantized, gzipped]
  • raptor [coded, gzipped][coded, quantized, gzipped]
  • fish [coded, gzipped][coded, quantized, gzipped]
  • snake [coded, gzipped][coded, quantized, gzipped]
  • horse [coded, gzipped][coded, quantized, gzipped]
  • cat [coded, gzipped][coded, quantized, gzipped]
  • dog [coded, gzipped][coded, quantized, gzipped]