当前位置:网站首页>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.
边栏推荐
- matlab drawing
- Altium Designer 19.1.18 - 画多边形铜皮挖空时,针对光标胡乱捕获的解决方法
- 数电快速入门(一)(BCD码和三种基本逻辑运算的介绍)
- PowerCLi 导入License到vCenter 7
- 零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
- 【SQL之降龙十八掌】01——亢龙有悔:入门10题
- dotnet enables JIT multi-core compilation to improve startup performance
- Red team kill-free development practice of simulated confrontation
- js数据类型、节流/防抖、点击事件委派优化、过渡动画
- mysql基础
猜你喜欢

1319_STM32F103串口BootLoader移植

Spss-一元回归实操
![[2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL](/img/fe/1dd9418800366ee25067e154936e3b.png)
[2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL

【uiautomation】微信好友列表获取(存储到txt中)

2022年江苏省大学生电子设计竞赛(TI杯)B题 飞机 省级一等奖记录 “一个摆烂人的独白”

ue unreal 虚幻 高分辨率无缩放 编辑器字太小 调整编辑器整体缩放

JdbcTemplate概述和测试

DSPE-PEG-Aldehyde,DSPE-PEG-CHO,磷脂-聚乙二醇-醛基一种疏水18碳磷脂

数电快速入门(三)(卡诺图化简法的介绍)

mysql基础
随机推荐
dotnet 使用 lz4net 压缩 Stream 或文件
路由中的meta、params传参的一些问题(可传不可传,为空,搭配,点击传递多次参数报错)
DGL安装教程
2022年江苏省大学生电子设计竞赛(TI杯)B题 飞机 省级一等奖记录 “一个摆烂人的独白”
27.降维
boostrap多选PID查找端口 window
1、File对象学习
Pinduoduo open platform order information query interface [pdd.order.basic.list.get order basic information list query interface (according to transaction time)] code docking tutorial
Android 面试——如何写一个又好又快的日志库?
传奇服务器需要什么配置?传奇服务器租用价格表
驱动点云格式修改带来的效率提升
AI/ML无线通信
How to understand the crawler's Scrapy framework in the simplest and most popular way?
命名路由、组件中name的作用
【uiautomation】微信好友列表获取(存储到txt中)
信创是什么意思?涉及哪些行业?为什么要发展信创?
数电快速入门(一)(BCD码和三种基本逻辑运算的介绍)
Named routes, the role of name in components
C语言知识大全(一)——C语言概述,数据类型
国际项目管理师PMP证书,值得考嘛?