尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

004、从sensor规格反推SoC选型——影像芯片平台能力需求的系统工程方法论与常见误判

004、从sensor规格反推SoC选型——影像芯片平台能力需求的系统工程方法论与常见误判 004、从sensor规格反推SoC选型——影像芯片平台能力需求的系统工程方法论与常见误判去年夏天我接手了一个车载环视项目的救火任务。项目组已经锁定了某款800万像素的sensorISP选的是某家主流平台的旗舰型号方案评审时大家都觉得“性能冗余足够”。结果样机一出来夜间倒车影像的噪点像下雪HDR合成在动态场景下鬼影重得能拍恐怖片。硬件同事第一反应是sensor没调好FAE来来回回刷了十几版驱动问题纹丝不动。最后我让他们把sensor的输出格式从RAW10改成RAW12再把ISP的降噪强度拉高两档画面才勉强能看——但代价是帧率掉了15%CPU占用率飙到70%以上。这个项目最后延期了两个月原因很简单选型时只看了sensor的分辨率和帧率完全没算ISP的算力余量、带宽瓶颈和内存占用。这类问题在影像系统里太常见了。很多人选SoC时习惯性地把sensor规格表里的“最大支持”当成“实际可用”把ISP的标称算力当成“真实处理能力”结果一上板就翻车。今天这篇笔记我想把从sensor规格反推SoC选型的方法论掰开揉碎讲清楚顺便聊聊那些我踩过、也看别人踩过的坑。先说最核心的一条sensor规格表里那些数字每一个背后都藏着对SoC的隐性要求。分辨率决定ISP的像素吞吐率帧率决定MIPI接口的带宽需求位深决定RAW域的处理精度HDR模式决定ISP的合成算力而所有这些叠加起来才是SoC真正要扛的负载。很多人只看前两个后面几个全忽略这就是误判的根源。拿分辨率来说。800万像素、30fps意味着ISP每秒要处理2.4亿个像素。听起来不多但这是RAW域的数据量。如果sensor输出RAW10每个像素10bit那每秒的数据量就是2.4亿×10bit2.4Gbit约300MB/s。这个数字要过MIPI接口、进ISP、出YUV、再进内存每一跳都有带宽消耗。我见过一个项目选SoC时只算了MIPI的接收带宽没算ISP输出到内存的写带宽结果DDR带宽被占满系统卡顿到连UI都刷不动。所以选型时一定要把整条数据通路上的带宽都列出来MIPI RX、ISP RAW域、ISP RGB域、ISP YUV域、内存读写、显示输出每一段都要有数字。再说帧率。很多人觉得“sensor支持60fpsSoC也标称支持60fps那就没问题”。但这里有个隐藏陷阱SoC标称的60fps通常是在特定条件下测出来的比如特定分辨率、特定位深、特定降噪等级。你把sensor调到60fps、RAW12、开三级降噪ISP的实际吞吐率可能直接腰斩。我习惯的做法是把SoC的ISP算力除以1.5到2的安全系数再和sensor的实际输出需求对比。这个系数不是拍脑袋定的它涵盖了温度降频、多路并发、算法叠加这些现实损耗。位深这块很多人不重视但恰恰是误判重灾区。sensor输出RAW10还是RAW12对ISP的算力消耗差别巨大。RAW12意味着每个像素多2bit的动态范围信息ISP在做去噪、色彩校正、伽马映射时中间计算精度至少要提升到14bit甚至16bit否则会丢信息。算力消耗不是线性增长而是接近平方级。我见过一个医疗内窥镜项目sensor是RAW12选了个只标称“支持RAW12输入”的SoC结果ISP内部精度不够暗部细节全糊了。后来换了更高端的平台问题才解决。所以选型时别只看“支持”要看ISP内部处理位深是多少。HDR模式是另一个大坑。现在sensor普遍支持多帧合成HDR比如2帧或3帧合成。这意味着ISP要同时处理多帧RAW数据算力需求直接翻倍甚至翻三倍。很多SoC标称的ISP算力是单帧模式下的你一旦开启多帧HDR实际可用算力可能只有标称的40%。我做过一个安防项目sensor支持3帧HDRSoC标称ISP算力是1.2GP/s看着绰绰有余。结果开启HDR后帧率从30fps掉到18fps因为ISP要同时处理三帧数据实际吞吐率只有0.6GP/s。后来只能降分辨率到500万像素才勉强稳住30fps。这个教训让我养成了习惯凡是涉及HDR的选型先把SoC的ISP算力除以2.5再和sensor的HDR输出需求对比。还有一个容易被忽略的点sensor的像素时钟和MIPI lane数。sensor规格表里会写支持几lane、每lane速率多少但SoC的MIPI RX不一定能完全匹配。比如sensor支持4lane、每lane 2.5Gbps但SoC的MIPI RX可能只支持2lane、每lane 1.5Gbps或者虽然支持4lane但每lane速率上限只有2Gbps。这种不匹配会导致带宽不足只能降帧率或降分辨率。我建议选型时把sensor的MIPI输出需求算出来再对照SoC的MIPI RX规格留出至少20%的余量。内存带宽这块很多人完全没概念。sensor数据进ISP、ISP处理完输出YUV、YUV进内存、显示控制器从内存读YUV、编码器从内存读YUV——每一跳都在消耗DDR带宽。如果SoC的DDR带宽不够就会出现帧率不稳、画面撕裂、编码卡顿这些问题。我见过一个无人机项目sensor是4K60SoC标称支持4K60编码但实际跑起来编码器经常丢帧。查了半天发现是DDR带宽被ISP和编码器抢光了。后来把ISP的输出分辨率降到1080p编码器才稳定。所以选型时一定要算DDR带宽的总需求包括ISP读写、编码器读写、显示读写、CPU访问全部加起来再除以0.7的安全系数和SoC的DDR带宽对比。还有一个很多人忽略的点sensor的功耗和发热。sensor本身功耗不高但高分辨率高帧率下sensor的功耗会显著上升这会推高整个模组的温度。而SoC的ISP在高负载下也会发热如果两者叠加散热压力会非常大。我见过一个车载项目sensor和SoC贴得很近夏天高温测试时SoC过热降频ISP算力下降画面直接卡成PPT。后来只能加散热片、降帧率才勉强通过测试。所以选型时一定要把sensor和SoC的功耗加起来评估散热方案是否可行。现在聊聊那些常见的误判。第一个误判是“sensor规格表里的最大分辨率就是SoC要处理的分辨率”。实际上sensor的最大分辨率往往需要特定的配置才能达到比如特定的曝光时间、特定的HDR模式、特定的输出格式。而SoC的ISP在处理这个分辨率时可能还需要同时做多路视频流、AI计算、编码等任务。所以选型时一定要把SoC的“总负载”算清楚而不是只看ISP单点。第二个误判是“SoC标称的ISP算力就是实际可用算力”。这个前面已经说过标称值是在理想条件下测的实际使用中要打对折甚至更多。我建议把SoC的ISP算力除以1.8到2.2的安全系数再和sensor的实际输出需求对比。这个系数不是固定的取决于你的算法复杂度、温度环境、多路并发情况。第三个误判是“sensor的HDR模式只是sensor的事”。实际上HDR合成需要ISP配合sensor只是输出多帧RAW真正的合成算力消耗在ISP上。如果SoC的ISP不支持多帧合成或者支持但算力不够HDR效果就会大打折扣。所以选型时一定要确认SoC的ISP是否支持sensor的HDR模式以及支持时的算力消耗是多少。第四个误判是“sensor的输出格式和SoC的ISP输入格式完全匹配”。实际上sensor可能输出RAW10、RAW12、RAW14而SoC的ISP可能只支持RAW10或RAW12。如果sensor输出RAW14但ISP只支持RAW12那就只能降位深损失动态范围。所以选型时一定要确认sensor的输出位深和ISP的输入位深是否匹配如果不匹配要评估降位深带来的画质损失是否可接受。第五个误判是“SoC的编码能力就是SoC的影像处理能力”。实际上编码只是影像处理的一部分ISP的算力、DDR带宽、内存大小、CPU性能都会影响整体表现。很多SoC标称支持8K编码但ISP只能处理4K那8K编码就只能靠CPU硬扛功耗和发热直接爆炸。所以选型时一定要把整个影像链路都看一遍而不是只看编码规格。最后说几个我个人的经验性建议。第一选型时一定要做“负载表”把sensor的输出需求、ISP的处理需求、DDR带宽需求、编码需求、显示需求全部列出来每一项都除以安全系数再和SoC的规格对比。这个负载表要细化到每个模块不能只看总规格。第二一定要留出足够的余量。影像系统的负载不是恒定的温度变化、场景复杂度、算法迭代都会影响实际负载。我一般会留出30%到50%的余量宁可多花点钱买高配也不要为了省成本选个刚好够用的。第三一定要做“最坏情况”测试。选型时不能只看sensor和SoC的标称规格要模拟最恶劣的场景最高分辨率、最高帧率、开启HDR、开启多路视频流、开启AI计算看看SoC能不能扛住。我见过太多项目在实验室里跑得好好的一到现场就出问题就是因为没做最坏情况测试。第四一定要和sensor厂商、SoC厂商的FAE深入沟通。sensor厂商知道sensor的实际输出特性SoC厂商知道ISP的实际处理能力两边都问清楚才能避免误判。我见过一个项目sensor厂商说“支持RAW12”SoC厂商说“支持RAW12输入”结果两边都没提ISP内部处理位深最后画质一塌糊涂。这种信息差只有深入沟通才能避免。第五一定要留出“调优空间”。影像系统的画质不是一蹴而就的需要反复调优。如果选型时把SoC的算力、带宽、内存都用满了那调优时就没有任何空间了。我建议选型时至少留出20%的算力余量用于后续的算法优化和画质调整。回到开头的那个车载环视项目。后来我们换了SoC选了个ISP算力多出50%的平台同时把sensor的输出位深从RAW10改回RAW12HDR模式从3帧改成2帧才终于把夜间画质调到可接受的水平。这个项目让我深刻体会到sensor规格反推SoC选型不是简单的“分辨率×帧率”对比而是一个系统工程要考虑带宽、位深、HDR、功耗、散热、编码、显示、AI计算等方方面面。任何一个环节的疏忽都可能导致项目延期、成本超支、画质不达标。最后说一句选型不是数学题没有标准答案。但如果你能把sensor规格表里的每一个数字都翻译成对SoC的具体需求再把这些需求乘以安全系数你就能避开大部分坑。剩下的那些坑就只能靠实战经验去填了。希望这篇笔记能帮你少踩几个坑。
返回列表