1. 从“管道”到“智能”:多媒体技术演进的内在逻辑
作为一名在音视频与芯片领域摸爬滚打了十几年的工程师,我亲眼见证了从3G时代看个标清视频都卡顿,到今天5G环境下4K直播、短视频刷到停不下来的巨大变迁。很多人把这种进步简单归因于网络带宽的“管道”变宽了,这没错,但只对了一半。更本质的驱动力,是“管道”变宽后,我们终于有机会把过去受限于带宽而“不能”实现的复杂计算任务,变成了“能”。而如今,AI技术的爆发,特别是NPU(神经网络处理器)的普及,正在将这个“能”推向“更好”和“更智能”的新阶段。这不仅仅是娱乐体验的提升,更在重塑交通、安防、工业检测、远程协作等众多领域的底层逻辑。今天,我想从一个一线工程师的视角,拆解一下这场变革中的两个核心角色:专精于视频编解码的VPU,与擅长AI计算的NPU,探讨它们如何从分立走向协同,以及我们作为开发者该如何应对这场融合带来的机遇与挑战。
2. 需求演进:为何单纯的“更快”已不够用?
2.1 从带宽红利到体验深水区
回顾过去,多媒体技术的跃进与通信代际升级紧密绑定。3G开启了移动互联网的图片时代,4G则彻底引爆了移动视频和直播。但你会发现,4G的“长寿”并非偶然。它之所以能支撑如此长时间的应用繁荣,是因为其带宽足以容纳当时几乎所有的生活化音视频需求,从微信视频通话到抖音快手,体验从“可用”达到了“好用”的临界点。
然而,进入5G时代,很多普通用户却产生了“感知不强”的疑惑。原因在于,对于大多数消费级应用,4G的带宽已经基本满足了“看”的需求。5G带来的颠覆,不在于让已有的1080P视频更流畅一点,而在于催生了全新的、对带宽和算力有更高要求的场景。例如,车载ADAS(高级驾驶辅助系统)中的实时环视视频融合与识别、8K超高清VR/AR的沉浸式体验、工业机器视觉的毫秒级缺陷检测,以及超低延迟的远程实时操控(如远程手术、矿山机械遥控)。这些场景的共同特点是:数据量极大(多路高清/超高清视频流)、处理实时性要求极高、且需要复杂的智能分析。
2.2 算力需求的结构性变化
传统上,这些多媒体处理任务主要由CPU、GPU和专用的DSP(数字信号处理器)承担。CPU负责通用逻辑和调度,GPU凭借其强大的并行浮点计算能力处理图像渲染和部分计算,而DSP则高效处理编解码等固定算法流程。
但随着AI,特别是深度学习在视觉领域的渗透,计算范式发生了根本改变。传统的视频编解码(Codec)如H.264/HEVC,其核心是预测、变换、量化、熵编码等基于信号处理和概率统计的算法,这类任务由VPU(Video Processing Unit,视频处理单元)或集成在SoC中的视频编解码硬件模块来处理,效率极高。而AI任务,如目标检测、图像超分、画质增强、甚至新一代的AI编解码,其核心是海量的矩阵乘加运算(MAC),这正是NPU的专长。
问题来了:一个复杂的视频应用流程,往往是“传统编解码”和“AI智能处理”交织在一起的。比如,一个智能摄像头,需要先通过VPU高效解码H.265码流,然后将解码后的图像送入NPU进行人脸识别或行为分析,最后可能还需要GPU或ISP(图像信号处理器)进行画面调优后再输出。数据在CPU、VPU、NPU、DDR内存之间来回搬运,形成了巨大的延迟和功耗瓶颈。
注意:这里存在一个关键的“木桶效应”误区。我们常认为系统性能取决于最慢的短板,因此拼命优化每一个独立模块。但在异构计算中,真正的瓶颈往往是模块间数据搬运的带宽和延迟,而非单个模块的绝对算力。一个拥有100TOPS算力的NPU,如果数据供给跟不上,其有效利用率可能低得可怜。
3. 硬件进化:NPU与VPU的架构之路
3.1 NPU的演进:从计算单元到流程引擎
早期的NPU可以视为一个强大的“计算加速器”。它的设计目标很单纯:为特定的神经网络算子(如卷积、池化)提供极高的峰值算力(TOPS)。第一代NPU往往面临“纸上算力”很高,但“有效算力”低下的问题。原因主要有三:
- 数据搬运瓶颈:神经网络计算需要频繁地从内存中读取权重和特征图数据。如果内存带宽不足或数据复用设计不好,计算单元大部分时间在等待数据,造成利用率低下。
- 算子支持僵化:硬件针对常见算子(如3x3卷积)做了高度优化,但对于网络中新出现的、非标准的算子(如动态卷积、注意力机制中的特殊操作)支持不佳,导致这些算子不得不回退到CPU计算,形成性能断崖。
- 前后处理短板:神经网络的输入需要图像预处理(缩放、归一化),输出需要后处理(非极大值抑制、解码)。这些工作通常由CPU或DSP完成,与NPU的协同如果做得不好,会成为整个流水线的堵点。
因此,新一代NPU的架构演进趋势非常清晰:
- 计算抽象泛化:从固定支持几种算子,转向支持更灵活的张量指令集,能够高效处理一维、二维、三维乃至更高维度的张量运算,适应算法快速迭代。
- 片上存储与数据流优化:通过增大片上SRAM、采用复杂的层级化数据流设计(如权重驻留、特征图滑动),最大化数据复用,减少对片外DDR内存的访问,这是提升有效利用率和能效比的关键。
- 任务级并行与异构集成:不再是单一的“大核”,而是将多个不同特化的计算单元(如向量单元、矩阵单元、标量单元)集成在一起,甚至将一些简单的后处理逻辑(如激活函数、量化)集成到NPU内部,减少与外部处理器的交互。
3.2 VPU的坚守与革新:不止于编解码
与NPU的“通用化”趋势不同,VPU走的是“专业化深耕”和“功能扩展”的路线。传统VPU是一个高度流水线化的硬核,其子模块(如预测单元、变换量化单元、滤波单元、熵编码单元)与编解码标准(如H.264, HEVC, VVC)的算法流程严格对应,效率极高。
但现在的VPU也在发生两个深刻变化:
- 功能集成化:现代VPU不再仅仅输出解码后的“裸数据”。例如,它可能集成后处理功能,如动态范围转换(HDR to SDR)、色彩空间转换(YUV to RGB)、自适应锐化等。这样,解码后的视频可以直接适配不同显示设备的需求,避免了数据在VPU、DDR、GPU/ISP之间的一次“无效旅行”,显著降低了延迟和系统功耗。这对于电视、手机等显示设备碎片化的场景至关重要。
- 算法增强化:编解码算法本身也在引入AI。例如,利用神经网络进行更精准的运动估计(MV Estimation)、帧内预测、环路滤波(如SAO, ALF的增强版)。这些AI增强模块,如果由通用NPU执行,数据搬运开销大;如果由VPU内部的专用小规模AI引擎执行,则能实现极致的能效比。这就是“功能逻辑抽象”的体现:VPU正在吸收一部分轻量级、与像素处理强相关的AI任务。
3.3 形态碰撞:分立、集成与融合
目前,NPU和VPU在芯片中的形态主要有三种:
- 分立式:作为SoC中两个独立的IP核。优点是设计灵活,可以分别选用业界最优的VPU和NPU IP。缺点是协同工作依赖片外DDR和总线交互,延迟和功耗是最大挑战。
- 紧耦合式:VPU和NPU共享同一套片上存储(Shared SRAM)和DMA控制器。数据在两者之间流动无需经过DDR,就像在一个车间内把半成品从A工位传到B工位,效率大幅提升。这是目前高端手机AP和自动驾驶芯片的主流方向。
- 功能融合式:这是更前沿的探索。即设计一种统一的“视觉处理架构”,内部既包含传统的视频编解码流水线硬件,也包含可编程的、擅长张量计算的AI引擎。两者在微架构层面深度融合,指令集和内存视图可以部分统一。这相当于打造了一个“视觉CPU”,能灵活分配资源处理传统视频流和AI任务。
4. 协同创新:NPU+VPU的实战场景与设计权衡
4.1 场景一:端侧智能视觉——降带宽、升体验
这是最典型的协同场景。以视频会议为例,在弱网环境下(如下行带宽不足),传统的做法是降低编码分辨率或码率,导致对方画面模糊。
NPU+VPU协同方案:
- 发送端:摄像头采集高清画面,VPU以低分辨率但相对较高的质量进行编码(保留更多细节)。同时,NPU运行一个轻量级网络,提取当前画面的关键特征图(一种高度压缩的语义信息,数据量极小)。
- 传输:将低分辨率码流和极小的特征图数据一并传输。这比传输完整的高分辨率码流节省了大量带宽。
- 接收端:VPU解码低分辨率码流。然后,NPU利用接收到的特征图,对解码后的低分辨率图像进行超分辨率重建和画质增强,恢复出接近原始高清画质的图像。
实操心得:这个方案的核心在于权衡。特征图需要多“强”?太强则本身数据量大,失去了节省带宽的意义;太弱则NPU恢复效果差。通常需要在端侧进行大量实测,针对典型会议场景(人头肩、文档、室内)训练专用的特征提取与恢复网络,并在芯片设计时考虑VPU与NPU间高速数据通道的带宽。
4.2 场景二:AI增强编码——让标准更高效
下一代编解码标准(如H.266/VVC)复杂度激增,其增益很大程度上来自更精细、更复杂的工具集,导致编码端计算量爆炸式增长,难以在移动端实时实现。
NPU+VPU协同方案: 让NPU辅助VPU进行编码决策。例如:
- 快速CU划分:传统编码器需要递归尝试所有可能的编码单元(CU)划分方式,计算量大。NPU可以提前分析图像内容,预测出最优划分结构的概率图,指导VPU的编码器优先搜索最有可能的区域,大幅降低编码复杂度。
- 智能帧类型决策:NPU可以分析视频序列的运动剧烈程度和场景切换概率,更准确地预测该使用I帧、P帧还是B帧,以及B帧的参考关系,在保证率失真性能的同时提升编码速度。
- 感知优化编码:传统编码追求客观指标(PSNR, SSIM)最优。NPU可以引入人眼视觉敏感度模型,指导VPU在编码时,将更多码率分配给人类视觉敏感的区域(如纹理边缘、人脸),在同等码率下获得更佳的主观视觉体验。
4.3 场景三:自动驾驶感知流水线——低延迟的生命线
在ADAS和自动驾驶中,多个摄像头同时产生海量原始数据(Raw Data)。传统流程是:ISP处理Raw Data成YUV → VPU编码(用于存储或车云通信)→ NPU对解码后图像进行目标检测。这个流程延迟高,且经过有损编码会损失信息,影响检测精度。
NPU+VPU协同优化方案:
- 路径优化:NPU的感知网络可以直接在ISP处理后的YUV数据,甚至Raw Data上进行(需要NPU支持相关数据格式)。感知结果(如边界框、车道线)与原始视频流是异步的。
- 编码辅助:VPU在编码用于存储的视频流时,可以利用NPU输出的感知结果(如目标区域)作为ROI(感兴趣区域),对这些关键区域分配更高码率,确保事故追溯时关键信息清晰。
- 硬件流水:在芯片设计上,让ISP、NPU、VPU的数据通路尽可能直连,形成“Raw Data → ISP → NPU”和“ISP → VPU”的并行流水线,NPU的感知与VPU的编码几乎同时进行,最大化利用硬件并行性,压缩端到端延迟。
5. 挑战与未来:软硬件协同的深水区
5.1 硬件层面的挑战:内存墙与能效比
无论架构如何创新,“内存墙”都是最大的敌人。NPU和VPU都是数据吞吐大户。它们之间的协同,本质上是数据共享与搬运的博弈。
- 共享缓存设计:多大容量的共享SRAM是成本与性能的平衡点?数据一致性如何维护?这需要芯片架构师对典型应用的数据流进行精准建模。
- 总线争用:当VPU正在从DDR读取码流,同时NPU需要向DDR写入中间特征图时,总线带宽可能成为瓶颈。高级总线协议(如AMBA ACE)和智能调度器至关重要。
- 能效比:数据每一次进出DDR所消耗的能量,远高于在芯片内部计算所消耗的能量。因此,“减少不必要的数据搬运”是提升能效比的第一原则。协同设计的核心目标就是让数据在“VPU-NPU-片上缓存”这个闭环里待得更久,处理得更多。
5.2 软件与工具链的挑战:编程范式的统一
硬件融合了,软件栈却可能还是割裂的。开发者面临的是两套不同的驱动、API和编程模型:一套用于视频编解码(如OpenMAX, V4L2),另一套用于神经网络推理(如TensorRT, TFLite Delegate, ONNX Runtime)。
未来的理想状态是提供一个统一的视觉处理框架。开发者可以用一种高级语言或图形化工具描述整个视觉处理流水线(如:解码 → 目标检测 → 跟踪 → 画框渲染 → 编码),由框架的编译器自动将任务拆分、调度到VPU、NPU、GPU等硬件单元上,并优化中间数据的布局和搬运。这相当于一个面向视觉任务的“异构计算编译器”,其难度不亚于设计一款新的芯片。
5.3 算法与标准的挑战:开放与封闭的权衡
前文提到的端到端AI编解码(如WaveOne, BPG-AI)性能潜力巨大,但它是一个封闭系统,编码器和解码器必须配对使用,与现有的H.26x/AV1生态不兼容。而AI增强传统编码的方案,则保持了码流的兼容性,但性能提升有天花板。
未来的趋势可能是“分层式”或“可伸缩式”编解码:
- 基础层:使用传统标准(如VVC)编码一个低质量但保证兼容性的视频流。
- 增强层:使用AI算法生成一个“残差”或“特征”流,数据量很小。
- 接收端:拥有强大NPU的设备,可以利用增强层信息,将基础层视频超分、增强到高质量;没有NPU的设备,则只解码基础层,获得一个保底的观看体验。
这种模式既拥抱了AI带来的性能红利,又照顾了生态的延续性,非常符合NPU能力逐渐普及的产业现状。
从我这些年的项目经验来看,NPU与VPU的协同,早已不是“要不要做”的问题,而是“怎么做深、做透”的问题。它要求我们跳出单个模块的思维局限,从整个系统应用的角度去审视数据流、计算任务和硬件资源。对于芯片设计者,意味着要在架构设计早期就考虑协同的场景;对于算法工程师,意味着要设计能够拆解、适配异构硬件的网络与流程;对于应用开发者,则意味着要善于利用底层提供的协同接口,挖掘用户体验的极限。这场软硬件协同的深水区探索,注定充满挑战,但也正是创新和价值诞生的地方。