当前位置:网站首页>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.
边栏推荐
- 27. Dimensionality reduction
- Data warehouse (1) What is data warehouse and what are the characteristics of data warehouse
- 2022年江苏省大学生电子设计竞赛(TI杯)B题 飞机 省级一等奖记录 “一个摆烂人的独白”
- 命名路由、组件中name的作用
- 【2022杭电多校5 1012题 Buy Figurines】STL的运用
- [2022 Nioke Duo School 5 A Question Don't Starve] DP
- 信创是什么意思?涉及哪些行业?为什么要发展信创?
- 热力学相关的两个定律
- 1.读写点云文件
- 模拟对抗之红队免杀开发实践
猜你喜欢

laravel whereDoesntHave

SPSS-System Clustering Software Practice

27.降维

【2022牛客多校5 A题 Don‘t Starve】DP

ROS播包可视化

PRIMAL: Pathfinding via Reinforcement and Imitation Multi-Agent Learning Code Analysis

DGL安装教程
![[Teach you to use the serial port idle interrupt of the STM32HAL library]](/img/9e/88a11727e1452315edc2c8ac74690e.png)
[Teach you to use the serial port idle interrupt of the STM32HAL library]

PMP证书在哪些行业有用?

【线性代数03】消元法展示以及AX=b的4种解情况
随机推荐
1、File对象学习
中大型商业银行堡垒机升级改造方案!必看!
openresty lua-resty-template页面静态化
如何根据“前序遍历,中序遍历”,“中序遍历,后序遍历”构建按二叉树
可视化工作流引擎开发OA系统,让企业少花冤枉钱
PRIMAL: Pathfinding via Reinforcement and Imitation Multi-Agent Learning 代码解析
jekyll adds a flowchart to the blog
deepstream多相机显示布局
3、IO流之字节流和字符流
模拟对抗之红队免杀开发实践
stm32mp157系统移植 | 移植ST官方5.10内核到小熊派开发板
88. (the home of cesium) cesium polymerization figure
Altium Designer 19.1.18 - 画多边形铜皮挖空时,针对光标胡乱捕获的解决方法
LayaBox---TypeScript---Example
CPU、内存、显卡等硬件因素也影响着你的深度学习模型性能
LayaBox---TypeScript---Problems encountered at first contact
Some problems with passing parameters of meta and params in routing (can be passed but not passed, empty, collocation, click to pass multiple parameters to report an error)
Win11如何设置软件快捷方式?
PMP证书在哪些行业有用?
1.读写点云文件