/Research/AsciiCoder/Demos/

In the following table we report file sizes using our ASCII compressor for eight different textured polygon models. The links get you to a page where the corresponding model is decoded on the fly from the file of the corresponding size. These file sizes do not contain the texture image. You can find the scene description files (*.s3z) and the texture image files (*.jpg) in the ../models directory. Notice that these scene description files (*.s3z) are gzipped. Unzipping them will give you the Shout3D scene desription files (*.s3d) in ASCII format.
For all models we compare the file size for the standard Indexed Face Set format (plain) with the file size of our Coded Indexed Face Set format (coded and quantized) for both ASCII and gzipped ASCII.
Our Coded Indexed Face Set representation codes an Indexed Face Set either lossless or lossy. In the lossless case (coded) we only code the indices (e.g. position indices and texture indices optionally). The precision of vertex positions and texture coordinates is not affected. Only their ordering in the arrays changes. In the lossy case (quantized) we (a) quantize the floating point values of vertex positions and texture coordinates onto an integer grid and (b) use simple prediction coding to store only differences rather than absolute values. For the models below we used uniform quantization of 12 bits for the positions and 8 bits for the texture coordinates.
The compiled class files of the decoder are less than 6KB. If included into an zipped archive of class files the increase in file size is less than 3KB.

models size of ASCII file (in KB)
plain coded quantized
size of gzipped ASCII file (in KB)
plain coded quantized
lion
1395.5 679.0 310.8
441.6 206.1 66.2
wolf
568.7 295.2 135.0
183.1 84.5 29.4
raptor
585.6 312.2 154.3
199.8 100.7 34.9
fish
374.8 195.9 91.0
122.9 55.4 22.8
snake
909.9 472.5 210.5
312.3 138.1 34.8
horse
749.1 397.3 188.6
266.4 124.3 40.9
cat
791.3 413.3 192.4
267.3 128.4 39.9
dog
586.3 283.5 143.4
186.2 87.3 34.6
EXAMPLE FILE FORMAT
The s3d file of the fish model as a standard IndexedFaceSet looks like this:

Shape {
    appearance Appearance {
        material Material {
            modulateTextureWithDiffuse true
            diffuseColor 1 1 1
        }
        texture ImageTexture {
            url fish.jpg
        }
    }
    geometry IndexedFaceSet {
        coord Coordinate {
            point [ -0.0715 4.7609 6.3930 ...... -0.4689 -4.4092 4.4136 ]
        }
        coordIndex [ 7 6 209 204 -1 4 ...... 4577 -1 4577 4223 4222 -1 ]
        texCoord TextureCoordinate {
            point [ 0.3735 0.9441 ...... 0.4990 0.1082 ]
        }
        texCoordIndex [ 0 1 2 3 -1 4 ...... 4311 -1 4311 4293 4683 -1 ]
    }
}


The s3d file of the fish model in the new CodedIndexedFaceSet looks like this for the lossless case:

Shape {
    appearance Appearance {
        material Material {
            modulateTextureWithDiffuse true
            diffuseColor 1 1 1
        }
        texture ImageTexture {
            url fish.jpg
        }
    }
    geometry CodedIndexedFaceSet {
        coord Coordinate {
            point [ -0.1195 -2.0148 9.9933 ...... -0.4689 -4.4092 4.4136 ]
        }
        texCoord TextureCoordinate {
            point [ 0.0150 0.5031 ...... 0.3825 0.2520 ]
        }
        code [ 24045 3 0 3 1 ...... 5 0 6 0 0 0 0 2 ]
    }
}


The s3d file of the fish model in the new CodedIndexedFaceSet looks like this for the lossy case:

Shape {
    appearance Appearance {
        material Material {
            modulateTextureWithDiffuse true
            diffuseColor 1 1 1
        }
        texture ImageTexture {
            url fish.jpg
        }
    }
    geometry CodedIndexedFaceSet {
        coord Coordinate {
            point [ -2 -4 -1 -3 -3 0 ...... 4 -21 24 -0.469 -4.409 4.414 ]
        }
        texCoord TextureCoordinate {
            point [ 0 0 0 0 0 -4 0 1 ...... 5 3 -4 0 2 2 0.3825 0.252 ]
        }
        code [ 24045 3 0 3 1 ...... 5 0 6 0 0 0 0 2 ]
        pos 4.884e-3
        tex 3.8234e-3
    }
}

martin isenburg@cs.unc.edu
University of North Carolina at Chapel Hill