当前位置:网站首页>Driving point cloud format changes bring efficiency improvement
Driving point cloud format changes bring efficiency improvement
2022-08-04 21:32:00 【moneymyone】
Efficiency gains from driving point cloud format modification
背景:
The original custom point cloud structure is being read、传输、Decoding the entire time period is very time consuming,Therefore, the point cloud structure is upgraded,Improve overall runtime.
protobuf字段类型介绍
.proto Type | Notes | C++ Type |
---|---|---|
double | double | |
float | float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 |
uint32 | Uses variable-length encoding. | uint32 |
uint64 | Uses variable-length encoding. | uint64 |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 228. | uint32 |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 256. | uint64 |
sfixed32 | Always four bytes. | int32 |
sfixed64 | Always eight bytes. | int64 |
bool | bool | |
string | A string must always contain UTF-8 encoded text. | string |
bytes | May contain any arbitrary sequence of bytes. | string |
修改前:
message PointXYZI {
optional float x = 1 [default = nan];
optional float y = 2 [default = nan];
optional float z = 3 [default = nan];
optional uint32 intensity = 4 [default = 0];
}
message PointCloud {
repeated PointXYZIT point = 1;
}
修改后:
message PointXYZI2 {
repeate float x_array = 1 [default = nan];
repeate float y_array = 2 [default = nan];
repeate float z_array = 3 [default = nan];
optional bytes intensity_array = 4 [default = 0];
}
message PointCloud {
optional PointXYZI2 point_array = 1;
}
修改点:
- PointXYZIconsists of repeated data structures,Change to repeated points.
意义在于:
- Originally, reading and writing requires multiple reading and writing of this structure,Now instead direct one-time storage points,Store all points in this struct.
- 而且将intensityand other parameters are changedbytes,Analyzed later,Reduced overall point cloud package size,减少传输时间.
protobuf修改字段为bytes需要考虑一些问题:
- Computer major and minor sequence problems;Different systems will be different,read outbytes会不同.If other languages callC++的库,Not parsed through its own language,能解决问题?
- Multilingual compatibility issues,解析问题
- Field alignment issues
Currently taking time to analyze:
经验:
- By reducing the field type,提高传输速率,空间换时间;
- Write-once replaces write-many,解决时间,This part of the time saved accounts for the most part.
边栏推荐
- PCBA方案设计——厨房语音秤芯片方案
- 如何为Web3.0世界启动完美的DAO
- AI/ML无线通信
- Dotnet using WMI software acquisition system installation
- [2022 Nioke Duo School 5 A Question Don't Starve] DP
- LayaBox---TypeScript---举例
- Spss-系统聚类手算实操
- Codeforces Round #811 (Div. 3)
- PowerCLi import license to vCenter 7
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd6 in position 120: invalid continuation byte
猜你喜欢
数电快速入门(二)(复合逻辑运算和逻辑代数的基本定律的介绍)
数字重塑客观世界,全空间GIS发展正当其时
Zynq Fpga图像处理之AXI接口应用——axi_lite接口使用
Altium Designer 19.1.18 - 保护锁定的对象
动手学深度学习_NiN
27.降维
JdbcTemplate概述和测试
【2022牛客多校5 A题 Don‘t Starve】DP
PMP证书在哪些行业有用?
DSPE-PEG-Aldehyde, DSPE-PEG-CHO, Phospholipid-Polyethylene Glycol-Aldehyde A hydrophobic 18-carbon phospholipid
随机推荐
Ramnit感染型病毒分析与处置
JWT主动校验Token是否过期
LayaBox---TypeScript---structure
dotnet 使用 lz4net 压缩 Stream 或文件
dotnet enables JIT multi-core compilation to improve startup performance
可视化工作流引擎开发OA系统,让企业少花冤枉钱
PCBA方案设计——厨房语音秤芯片方案
js数据类型、节流/防抖、点击事件委派优化、过渡动画
中大型商业银行堡垒机升级改造方案!必看!
Configure laravel queue method using fort app manager
基于 Milvus 和 ResNet50 的图像搜索(部署及应用)
proe和creo的区别有哪些
matlab 画图
Red team kill-free development practice of simulated confrontation
开发deepstram的自定义插件,使用gst-dseaxmple插件进行扩充,实现deepstream图像输出前的预处理,实现图像自定义绘制图(精四)
【线性代数03】消元法展示以及AX=b的4种解情况
Data warehouse (1) What is data warehouse and what are the characteristics of data warehouse
【分布式】分布式ID生成策略
模拟对抗之红队免杀开发实践
8 年产品经验,我总结了这些持续高效研发实践经验 · 协同篇