CVP介绍
CVP(Compute Vision Processor) 是高通硬件里的一个 异构计算模块,它的设计初衷是用于 计算机视觉(Computer Vision) 任务。
1. CVP 在 Camera 里的应用
在 Camera 相关业务 中,CVP 主要用于:
-
MFNR(多帧降噪):处理多个帧图像进行降噪、HDR 合成。
-
人脸检测(Face Detection, FD)。
-
深度估计(Depth Estimation):配合双摄做景深计算。
-
超分辨率(Super-Resolution, SR)。
-
AI 场景检测(Scene Detection)。
你之前提到 MFNR,CVP 就是在 Camera 里 加速图像合成和降噪 的关键硬件。
2. CVP 在 Video 业务里的应用
在 Video(视频) 领域,CVP 主要用于:
(1) 视频编解码前后处理
-
降噪(Denoising):降低噪点,提高视频质量。
-
超分辨率(Super-Resolution, SR):低分辨率视频提升至高分辨率。
-
HDR 处理:增强动态范围,使 SDR 视频转换为 HDR。
-
色彩增强(Color Enhancement):调整色彩、对比度,提高视觉效果。
(2) 视频 AI 处理
CVP 结合高通 AI 引擎(AICore / NPU),支持:
-
对象检测(Object Detection):用于视频监控、人脸检测等。
-
背景虚化(Bokeh/Portrait Mode):视频背景分割,实现景深效果。
-
视频增强(Video Enhancement):自动优化视频质量。
(3) 视频会议与直播优化
-
实时美颜(Real-Time Face Beautification):优化人脸肤色、去除瑕疵。
-
抖动补偿(Video Stabilization):减少手持拍摄时的抖动。
-
低光增强(Low-Light Enhancement):在弱光环境下提升画质。
3. CVP 和 Video 编解码 Pipeline
在 Video Pipeline 中,CVP 通常位于 VPU(Video Processing Unit)之前或之后:
-
VPU(Video Processing Unit):负责 H.264/H.265/VP9/AV1 等硬件编解码。
-
CVP 作为 Pre/Post 处理单元,对 视频流进行增强、优化。
示例:视频超分辨率处理
假设 输入 是 720p 视频,我们希望 输出 1080p 高质量视频:
-
解码 → VPU 解码 720p 视频帧。
-
CVP 超分辨率 → 用 AI 或传统算法将 720p 放大到 1080p。
-
CVP 降噪 & 增强 → 进一步优化放大后的视频画质。
-
编码 → VPU 重新编码为 H.265 1080p 视频。
4. CVP 相关的驱动 & API
-
在 Linux / Android 内核中,高通 CVP 相关驱动通常位于:
drivers/media/platform/msm/cvp
-
用户空间的 API 可能是:
-
V4L2 API:通过 V4L2 控制 CVP 进行视频处理。
-
Camera HAL / Video HAL:CVP 可能由 Camera 和 Video HAL 调用。
-
高通专有 API:如 Snapdragon Camera / Video SDK。
-
总结
-
CVP 是高通的视觉处理硬件,既用于 Camera 也用于 Video 业务。
-
Camera 里主要用于 MFNR、人脸检测、深度计算等。
-
Video 里主要用于降噪、超分辨率、HDR 处理、AI 增强等。
-
CVP 通过 V4L2、Camera HAL、Video HAL 或高通 API 被调用。
CVP 最初的设计 确实是为了 计算机视觉任务(Computer Vision),比如 人脸检测、目标识别、深度估计 之类的任务。
但是随着 AI 视觉计算越来越复杂,高通把 CVP 的应用范围扩展到了 视频增强、超分辨率、降噪、HDR 处理 这些 视频预处理 & 后处理 任务里。
这种变化的原因主要有几个:
-
计算机视觉和视频处理的融合
-
以前,计算机视觉 只负责识别、分类、检测,跟视频处理关系不大。
-
现在,计算机视觉可以用来 优化视频质量(比如基于 AI 的超分辨率、降噪、视频背景虚化等)。
-
-
AI 和 ISP / VPU / GPU 的协作越来越多
-
传统上,ISP(图像信号处理器)负责 Camera 里的低级处理,VPU 负责视频编解码。
-
但 AI 视觉计算(CVP/NPU)可以让 ISP/VPU 做不到的优化 成为可能,比如 AI 超分辨率、AI 去噪、AI 视频增强等。
-
-
硬件资源整合,提高利用率
-
CVP 既可以做计算机视觉,也可以做视频处理,这样高通就不需要单独为 视频增强 设计额外的硬件。
-
这样一来,CVP 的 利用率提高了,在手机 待机、低功耗模式下也能用,而不像 VPU 只能在 视频播放/录制时启用。
-
所以,现在 CVP 的角色有点像 计算机视觉 & 视频 AI 处理的“全能工具”,既能处理 传统 Computer Vision 任务,又能做 视频增强 🚀
如果你有高通的视频相关代码,可以看看 CVP 是怎么接入 Video HAL 或 V4L2 驱动的,一般来说,它的调用路径应该在 Camera 或 Video 处理的某些 pipeline 里。