LVX Specifications

LVXSpecifications
v1.1.0.0

Approved by Livox 08/20/2019© 2019 Livox Tech. All Rights Reserved

1

LVX Specifications

CONTENTS
1LVX Format v1.0 .........................................................................................................................32

LVX Format Definition..............................................................................................................33

Data Types....................................................................................................................................34

Public Header Block..................................................................................................................45

Devices Info Block .....................................................................................................................5

6

Point Data Block.........................................................................................................................7© 2019 Livox Tech. All Rights Reserved

2

LVX Specifications

1 LVX Format v1.1
This document describes the specifications of LVX format v1.0. The LVX file is a point
cloud file format developed by Livox Tech, based on the company's LiDAR sensors. Thisfile format allows users to play the point cloud file at a base frequency of 20 Hz. At thesame time, users can also acquire point data from a single device from this file formore complex algorithm development.

2 LVX Format Definition
The format contains binary data consisting of public header block, device info block,and point cloud data block.

PUBLIC HEADER BLOCKPRIVATE HEADER BLOCK
DEVICE INFO BLOCK
POINT DATA BLOCK

All data are in little-endian format. The header block consists of file signature, version
information, and a magic code. The length of the devices info block is variable, capableof accommodating any number of devices. The point cloud data block has point clouddata organized by package, and these packages are organized by frames in each file.

3 Data Types
The following data types are used in the LVX format.
· char (1 byte)· unsigned char (1 byte)· short (2 bytes)· unsigned short (2 bytes)· int (4 bytes)© 2019 Livox Tech. All Rights Reserved

3

LVX Specifications· unsigned int (4 bytes)· long long (8 bytes)· unsigned long long (8 bytes)· float (4 bytes IEEE floating point format)· double (8 bytes IEEE floating point format)

4 Public Header Block
ItemFormat

Size

File Signature (“livox_tech”)

char[16]

16 bytes

Version-Achar

1 bytes

Version-Bchar

1 bytes

Version-Cchar

1 bytes

Version-Dchar

1 bytes

Magic Codeunsigned int 4 bytes

File Signature: The file signature must contain “livox_tech” as it is required by the LVX
specification. These characters can be checked by Livox Viewer as an initialdetermination of file type. Note that the first 10 bytes should be “livox_tech”, and thelast 6 bytes should be zero filled.

Version: Version a is 1, version b is 1, version c is 0, version d is 0.

Magic Code: This field should be a value of 0xAC0EA767. Livox Viewer will not identify
a lvx file with an incorrect Magic Code.

© 2019 Livox Tech. All Rights Reserved

4

LVX Specifications

5 Private Header Block
ItemFormat

Size

Frame Duration

unsigned int

4 bytes

Device Count

unsigned char

1 byteFrame Duration: The duration of one frame. The unit of duration is millisecond(ms);Note: This field is only used to inform the user of the frame duration of the current file.
In the 1.1.0.0 version of the Lvx file, this field is 50 and cannot be changed.

Device Count: The length of device info block is variable to suit several devices. Thisfield should be a value of the count of devices;

6 Devices Info Block
Item

FormatSize

Device Info 0struct

59 bytesstruct59 bytes……
Device Info N

Device Info: This is a field that provides information of each device. This field is defined
as:

Item

FormatSize

Description

LiDAR SN Codechar[16]16 bytes

LiDAR broadcast codeHub SN Codechar[16]16 bytes

Hub broadcast code.
Note that an empty hub SNmeans there is no hub
connecting this LiDAR.

© 2019 Livox Tech. All Rights Reserved

5

LVX Specifications

Device Index

unsignedchar

1 byteIndex in device info list

Device Typeunsignedchar

1 byteDevice type:
0: LiDAR Hub
1: Mid 40/Mid-100
2: Tele-15
3: Horizon

Extrinsic Enable

unsignedchar

1 byte0: Extrinsic parameters disable,
cloudpoints should
becomputed without extrinsic
parameters;
1：Extrinsic parameters enable,
cloudpoints should
becomputedwithextrinsicparameters;

Rollfloat

4 bytes

Extrinsic parameters:
Roll Angle, Unit: degree

Pitchfloat

4 bytes

Extrinsic parameters:
Pitch Angle, Unit: degree

Yawfloat

4 bytes

Extrinsic parameters:
Yaw Angle, Unit: degree

Xfloat

4 bytes

Extrinsic parameters:
X Translation, Unit: mY

float

4 bytes

Extrinsic parameters:
Y Translation, Unit: mZ

float

4 bytes

Extrinsic parameters:
Z Translation, Unit: mNote that users can use Device Index to extract point cloud data of each device from a
LVX file.
© 2019 Livox Tech. All Rights Reserved6LVX Specifications

7 Point Cloud Data Block
Data from the Point Cloud Data Block are composed of frames, and each frame iscomposed of packages.

Item

FormatSize

Frame 0struct

N bytes

Frame 1struct

N bytesstructN bytes……
Frame N

Frame is defined as:
Item

FormatSize

Frame Header

struct32 bytes

Package 0

structdepends

Package 1

structdepends

structdepends……
Package N

Frame Header is defined as:
Item

FormatSize

Description

Current Offset

long long

8 bytesAbsolute offset of the current
frame in this file.

Next Offset

long long

8 bytesAbsolute offset of next frame inthis file.

Frame Indexlong long

8 bytes

Current Frame Index.

© 2019 Livox Tech. All Rights Reserved7LVX Specifications

Package is defined as SDK protocol new type normal Data
Item

FormatSize

Description

Device Index

unsigned char

1 byteRefer to Device InfoVersion

unsigned char

1 bytePackage protocol version, 5 forthe current version

Slot ID

unsigned char

1 byteID of the Slot Connecting LiDAR
Device:For more details, refer to Livox
SDK Communication Protocol

LiDAR IDunsigned char

1 byteLiDAR ID:
1: Mid-100 Left / Mid-40 / Tele15 / Horizon
2: Mid-100 Middle
3: Mid-100 RightReserved

unsigned char

1 byteStatus Codeunsigned int

4 bytes

LiDAR Status Indicator
Information, refer to Livox SDKCommunication Protocol for
more details

Timestamp Typeunsigned char

1 byteTimestamp Type, refer to Livox
SDK Communication Protocol for
more details

Data Typeunsigned char

1 bytePoint Cloud Coordinate Format:
0: Cartesian Coordinate System;
Single Return; (Only for MID)
1: Spherical Coordinate System;
Single Return; (Only for MID)
2: Cartesian Coordinate System;
Single Return;
3: Spherical Coordinate System;© 2019 Livox Tech. All Rights Reserved

8

LVX Specifications

Single Return;
4: Cartesian Coordinate System;
Double Return;
5: Spherical Coordinate System;
Double Return;
6: IMU Information
Timestamp

unsiged char[8]8 bytesNanosecond or UTC Format
Timestamp, refer to Livox SDKCommunication Protocol for
more details

Point 0structdepends

Point information, depends on
Data Type

Point 1structdepends

Point information, depends on
Data Type

structdepends

Point information, depends on
Data Type……
Point N

Point is defined as following:
Data type 0 (100 points per package)
Item

FormatSize

Description

xint

4 bytes

X-axis position, unit: mmyint

4 bytesY-axis position, unit: mmzint

4 bytes

Z-axis position, unit: mm

reflectivity

unsigned char

1 byteReflectivity

Data type 1 (100 points per package)
Item

FormatSize

Description

depthint

4 bytes

Unit: mmtheta

unsigned short

2 bytesZenith angle, unit: 0.01 degree,© 2019 Livox Tech. All Rights Reserved

9LVX Specifications

range [0,18000]
phi

unsigned short

2 bytesAzimuth angle, unit: 0.01 degree,
range [0,36000]

reflectivity

unsigned char

1 byteReflectivity

Data type 2 (96points per package)
Item

FormatSize

Description

xint

4 bytes

X-axis position, unit: mmyint

4 bytesY-axis position, unit: mmzint

4 bytes

Z-axis position, unit: mm

reflectivity

unsigned char

1 byteReflectivity

tag

unsigned char

1 byteFor more detail, please refer to SDK
ProtocolData type 3 (96points per package)
Item

FormatSize

Description

depth

int

4 bytes

Unit: mmtheta

unsigned short

2 bytesZenith angle, unit: 0.01 degree,
range [0,18000]

phi

unsigned short

2 bytesAzimuth angle, unit: 0.01 degree,
range [0,36000]

reflectivity

unsigned char

1 byteReflectivity

tag

unsigned char

1 byteFor more detail, please refer to SDK
ProtocolData type 4 (48 points per package)
Item

FormatSize

Description

x1

int

4 bytes

X-axis position, unit: mm

y1

int

4 bytesY-axis position, unit: mm© 2019 Livox Tech. All Rights Reserved

10

LVX Specifications

z1

int

4 bytes

Z-axis position, unit: mm

reflectivity1

unsigned char

1 byteReflectivity

tag1

unsigned char

1 byteFor more detail, please refer to SDK
Protocolx2int

4 bytes

X-axis position, unit: mmy2

int

4 bytesY-axis position, unit: mmz2int

4 bytes

Z-axis position, unit: mm

reflectivity2

unsigned char

1 byteReflectivity

tag2

unsigned char

1 byteFor more detail, please refer to SDK
ProtocolData type 5 (48 points per package)
Item

FormatSize

Description

theta

int

4 bytesZenith angle, unit: 0.01 degree,
range [0,18000]

phiint

4 bytesAzimuth angle, unit: 0.01 degree,
range [0,36000]

depth1int

4 bytes

Unit: mmreflectivity

unsigned char

1 byteReflectivity

tag1

unsigned char

1 byteFor more detail, please refer to SDK
Protocoldepth2int

4 bytes

Unit: mmreflectivity2unsigned char

1 byteReflectivity

tag2

unsigned char

1 byteFor more detail, please refer to SDK
ProtocolData type 6 (1 point per package)
Item

FormatSize

Description

gyro_xfloat

4 bytes

Unit: rad/s© 2019 Livox Tech. All Rights Reserved

11LVX Specifications

gyro_yfloat

4 bytes

Unit: rad/s

gyro_zfloat

4 bytes

Unit: rad/s

acc_xfloat

4 bytes

Unit: g

acc_y

float

4 bytes

Unit: g

acc_z

float

4 bytes

Unit: g© 2019 Livox Tech. All Rights Reserved12