You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In section 5.1, it is unclear how waveform data that is not a multiple of 8 or 16 bits is to be stored.
How is data to be stored? If it's 2 bits, do we store 2 bits per byte? Or 4 samples per byte with all 8 bits? And for 3 bits, it would still use all bits and wrap around to the next byte.
Is it ok to just specify 8bits and only store 2 bits per bytes?
Basically, I have 10bit data. Do I just store the low 10bits in pairs of bytes and specify 16bits in the packet descriptor? Or is a reader supposed to round up to the next multiple of 8? Or am I supposed to store 10 in the packet descriptor and "bit pack" the waveform data? So for the second sample, I'd use the high 6 bits as the low bits of the second sample. The high bits of the sample would go into the low 4 bits of the next byte and so on?
Which of these is correct:
Packet descriptor has 10 for bits per sample. Stored as 10bits in each pair of bytes.
Packet descriptor has 10 for bits per sample. Stored as packed bits. Every 40bits (5 bytes) stores 4 samples.
Packet descriptor has 16 for bits per sample. Stored as 10bits in each pair of bytes.
Some software give warnings if not using 8 or 16 bits per sample.
I know option 3 works. Readers don't care if high bits are zero. Everything goes through the gain and offset anyways. So this is likely what we're going to do. Bit packing would make the file smaller but many software packages don't like non multiples of 8.
Just some clarification and maybe a small example in section 5.1 would be nice.
Also, while I know using option 3 will work, I need to know what the specs actually say because we have our own reader/writer that is used by many people and we'd like to support the LAS specs fully.