两轮车中控要做离线地图,工程师最先撞上的两堵墙通常是存储和功耗。这篇文章聊聊iMLite Map这套两轮车离线地图方案是怎么应对这两个老大难问题的,顺便说说传统方案卡在哪。
存储为什么是死穴
传统嵌入式地图方案大多走栅格地图路线,说白了就是把地图当成一张张图片存起来,分辨率越高、覆盖范围越大,图片数量和体积就跟着线性增长,一个省的数据轻松冲到5GB以上。两轮车中控的片内Flash通常只有几十MB到几百MB,装不下就得外挂存储芯片,成本和PCB空间都得让步。
矢量地图理论上能省空间,但传统矢量方案的图层信息往往是全量堆叠的——路网、POI、地貌、等高线全部打包在一起,实际压缩效果有限,不少方案矢量地图做出来还是要几百MB起步。
iMLite Map怎么处理存储
思路是自研的分层分级矢量压缩算法,把地图信息按图层和精度分级存储,需要什么级别的信息就加载什么级别,不做冗余堆叠。同样范围的导航底图能压到10MB级别,新疆全省完整地图约58MB,还支持5-100公里任意范围自定义裁剪,最小裁剪结果只需几百KB。
功耗为什么也是死穴
地图渲染是个持续吃资源的活儿,传统方案的性能瓶颈常出在两处:一是用浮点运算做坐标变换和图形计算,对没有硬件浮点单元的低成本MCU来说负担很重;二是渲染时把整张或整片地图都载入内存做处理,运行时内存占用居高不下,两轮车这类电池供电设备很容易被这块拖累续航。
iMLite Map怎么处理功耗
用的是纯软件矢量渲染引擎,坐标变换和图形计算全部用定点数运算替代浮点运算,不依赖硬件浮点单元。显存需求也压缩到只要单帧显示缓存,不做整图预加载。实测数据是代码空间小于80KB,运行时动态内存小于20KB,兼容主流RTOS和Linux系统。
写在最后
存储和功耗这两个问题本质上是一体的——数据压得越干净,运行时要处理的信息量越小,功耗自然跟着降。iMLite Map目前面向两轮车主机厂、方案商开放SDK授权,如果你所在团队正在做相关技术选型,可以搜索"iMLite Map"找到官方渠道,也可以直接私信这个账号索取详细技术规格书。
510