That seems like a good idea. I was wondering if it would be possible, to add an option to also order the points coordinates in a spatial order instead of (I think) a temporal one, it would be much faster to scan the file that way to extract any point. within a given coordinate. Would it enter in the laszip specifications ? Of course, it would be much slower to write, I know, but it would be for a longtime gain in speed of reading. What do you think ?

Etienne

Howard Butler wrote :
All,

I would like to announce an upcoming development effort to bring Martin 
Isenburg's laszip [1] [2] [3] to libLAS.  I'll let Martin explain laszip 
algorithms, benefits, and performance in more detail, but this email is going 
to outline the development effort within libLAS and describe how the pieces are 
going to hook together.

Over the past couple of months, I have been laying the groundwork for this 
effort by internally refactoring a number of elements.  The first is the 
internal LAS reader and writers were reimplemented to behave as a few 
independent units rather than a monolithic class for each format file type (1.0 
file, 1.1 file, etc).  Instead of liblas::detail::writer10, we now have 
something like liblas::detail::writer::Header and 
liblas::detail::writer::Point.  This decoupling allows a developer to implement 
their own point writer but still use our existing header writer.

The mechanism by which this will work in the upcoming release are the new 
ReaderI and WriterI interfaces.  We will implement ReaderI and WriterI classes 
that will work with the laszip code to compress and decompress LAS data through 
the regular libLAS interface.  A few of the details have yet to be worked out, 
and I would like to hear some feedback on our proposal.

First, a LAS file that has been compressed with laszip is much like a regular LAS file except the points have been compressed. The header would be very much the same as a regular LAS file with a few exceptions. Our current plan is to set the high bit on the point format id of the header so that instead of format 0, 1, 2, 3, ... we'd now have 128, 129, 130, ... as their compressed doppelgänger. This would hopefully prevent any unaware client from attempting to read into the point data. Second, we would add a few liblas.org VLR records that would describe some parameters of the compression (chunk size, verification bits, algorithm version, and so on). The combination of the VLR records plus the point format high bit would trigger libLAS to use the laszip-enabled readers and writers. The laszip code has been released as LGPL, and this prevents inclusion of it directly in libLAS source tree unless we were to make that LGPL as well (I'm not in favor of this at all). Our current thinking is to initially allow a user to include support for it at compile time. We hope to have the integration work done soon, but I would like to get your feedback on the effort and hear if we're planning to do something really silly before we do it.
Is seamless, lossless compression of LAS data through a libLAS interface very 
appealing?

Howard

[1] http://www.cs.unc.edu/~isenburg/lastools/download/laszip_README.txt
[2] https://lidarbb.cr.usgs.gov/index.php?showtopic=8455
[3] http://hg.liblas.org/zip_______________________________________________
Liblas-devel mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/liblas-devel
_______________________________________________
Liblas-devel mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/liblas-devel

Reply via email to