If you are really concerned about saving space, you might want to consider doing what I did when I wanted to store a height field for the whole planet.
Instead of storing absolute heights, store the delta compared to the average height in a localized region of the terrain.
You can adjust the size of the region to get the storage costs to a minimum. For example, if you store an average height for every 16x16 grid of height posts, you might need an 8 bit offset value - but if you store it for every 4x4 grid, you might only need a 4 bit offset. What works best depends on the quality you need - and somewhat on the application. Using too few bits of offset will result in near-vertical cliff faces either being smoothed out - or showing up only on the boundaries of your 16x16 grid. How much that matters to you changes your optimum grid size.
The resulting height variation can typically be stored in MUCH fewer bits - especially if you use a logarithmic 'offset' value - which can of course be decoded using a short lookup table.
Steve Baker (817)619-2657 (Vox/Vox-Mail) Raytheon Systems Inc. (817)619-2466 (Fax) Work: sjbaker@hti.com http://www.hti.com Home: sjbaker1@airmail.net http://web2.airmail.net/sjbaker1