用于 GPU 图像处理的 Fastvideo SDK
更新日期:
Fastvideo SDK 是一个 C++/CUDA 库,在 NVIDIA GPU 上运行完整的相机图像处理流水线 — 从原始图像采集到 JPEG 或 JPEG2000 压缩与存储 — 无需往返 CPU。在 NVIDIA GeForce RTX 4090 上,完整的 RAW 转 RGB 流水线之快,以至于端到端吞吐受限于 SSD 而非 GPU:完全在 GPU 内存中运行时,它以约 60 fps 处理一帧 65 MPix 图像;而读写磁盘的完整工作流对 12 位 4K 图像端到端最高达 60 fps。单个模块的速度远高于此 — JPEG 编码约 5500 fps(Full HD)或 3800 fps(4K),视觉无损的 JPEG2000 编码最高约 2100 fps(2K,批处理模式),去马赛克最高 69 GPix/s。帧只上传一次,端到端在 GPU 内存中处理,结果即可实时用于显示、流式传输或写入磁盘。
该 SDK 面向同时看重吞吐与画质的应用:机器视觉与工业相机、数字电影、广播、医学影像、航空、航天与街景成像,以及基于 NVIDIA Jetson 的嵌入式系统。除相机流水线外,相同组件还支撑离线 RAW 处理、FFmpeg 编解码器与滤镜,以及 AI 应用的预处理。

Fastvideo SDK 一览
- 简介:带 CUDA 后端的 C++ 库,附带示例程序与源码、API 与文档
- 流水线:从 RAW/拜耳到压缩输出的完整 ISP,全部在 GPU 上
- 输入来源:相机、采集卡、HDD/SSD/RAM 或 GPU 内存
- 输入格式:PGM、BMP、PPM、JPG、YCbCr、RAW、DNG、字节数组、OpenGL 纹理/PBO
- 输出:通过 OpenGL 显示,JPEG 与 JPEG2000 压缩流,AVI/MXF 容器
- 平台:Windows 10/11、Linux Ubuntu、Linux4Tegra;从移动端到服务器的 NVIDIA GPU,含 Jetson
- 性能:以 4K 到 12K 及以上分辨率实时处理多相机流水线
Fastvideo SDK 性能基准
Fastvideo SDK 各模块在 GPU 上有多快?
NVIDIA GeForce RTX 4090 上主要 SDK 模块的代表性峰值吞吐(纯 GPU 处理时间,24 位彩色;模式在各行注明)。具体数值取决于您的 GPU、分辨率与质量 — 完整的逐模块结果见所链接的基准页面。
| 模块 | 操作 | 分辨率 | RTX 4090 上的速度 |
|---|---|---|---|
| RAW→RGB 流水线 | 最小流水线,GPU 内存中 | 65 MPix | 60 fps |
| 完整 RAW→RGB 流水线 | 端到端,含 SSD 读写 | 4K,12 位 | 60 fps |
| JPEG 编解码器 | 编码 | Full HD / 4K / 6K | 5500 / 3800 / 1500 fps |
| JPEG 编解码器 | 解码 | 4K / 8K | 1350 / 650 fps |
| JPEG2000 编解码器 | 编码(批处理,视觉无损) | 2K / 4K | 2108 / 732 fps |
| JPEG2000 编解码器 | 解码(批处理,视觉无损) | 2K / 4K | 1317 / 362 fps |
| 去马赛克 | HQLI … MG 算法 | 峰值吞吐 | 20–69 GPix/s |
RAW→RGB 各行为完整 ISP 流水线:内存内情形受限于 GPU,而端到端情形受限于 SSD 而非 GPU。JPEG 数据为单线程单图;JPEG2000 数据为多线程批处理模式 — 单图结果与完整表格见 JPEG2000 编码器与解码器基准页(英文)。JPEG 编解码器在 24 MPix(6K)帧上达到约 117 GB/s。每个模块的详细基准(英文)另见相应页面。
为什么选择 Fastvideo SDK
为什么在 GPU 上运行完整的图像处理流水线?
整条流水线都在 GPU 上,而非只有其中一部分。若数据在各阶段之间必须往返 CPU,单个 GPU 加速环节就失去了优势。Fastvideo SDK 让整条流水线保持在 GPU 内存中,因此 PCIe 总线只被跨越两次 — 原始数据进、最终结果出。这正是让实时 4K 与多相机处理在实践中可行的原因。
性能不以牺牲画质为代价。每个模块都以在画质上不逊于最好的 CPU 实现为目标 — 包括双边与 NLM 去噪、DFPD 与 MG 去马赛克,以及 Lanczos 缩放 — 同时运行得明显更快。每个主要模块公布的基准(英文)印证了这一点。
一套 SDK 覆盖整个 NVIDIA 产品线。相同的 API 可运行在从 Jetson 模块到笔记本、桌面与服务器 GPU 的一切设备上。在工作站上开发的应用无需改动代码即可部署到嵌入式 Jetson 系统 — 变化的只是性能上限。
降低最终应用的总成本。GPU 处理减轻了 CPU 负载,因此单台机器即可承担原本需要多台才能完成的工作 — 每套相机系统所需的计算机更少、机架空间更小、维护更简单。SDK 与第三方 CPU 及 GPU 库兼容,因此能集成到既有应用中,而非取代它们。
图像与视频处理 SDK 特性
图像采集
- 从相机、采集卡、HDD/SSD/RAM 或 GPU 内存导入图像
- 输入格式:PGM、BMP、PPM、JPG、YCbCr、RAW、DNG、字节数组、OpenGL 纹理或 PBO
RAW 域处理
- RAW 数据线性化
- 暗场扣除(消除 FPN)
- 平场校正(阴影校正)
- 动态坏点校正
- 灰度图像像素合并(binning)
- 白平衡
- 每个拜耳通道的 1D LUT
- RAW 直方图与 RAW 拜耳曲线(master 与 RGB)
- RAW 去噪 — 开发中
- RAW 域色差去除(英文) — 开发中
去马赛克
- 算法:HQLI、L7、DFPD、MG
- 带像素合并(binning)的去马赛克(B2、B4、B8)
- 去马赛克后滤波 — 开发中
颜色与色调
- 曝光校正与高光恢复
- 基于矩阵配置文件的颜色校正
- 颜色变换:RGB↔YCbCr、RGB↔HSV 等
- 用于 RGB 或 HSV 色调映射的复合或逐通道 8/10/12/14/16 位 1D LUT(Hue→Hue、Hue→Saturation 等)
- RGB 与 HSV 的 3D LUT
- 伽马变换(复合或逐通道)
- 面向广播的 Rec.601(SD)、Rec.709(HD)、Rec.2020(4K)变换
去噪与增强
- 去噪:双边、NLM
- Unsharp Mask(USM)锐化
- 去紫边(Defringe)
- ALTMapper 算法色调映射 — 开发中
- 去雾与除霾 — 开发中
几何变换
- 裁剪、缩放(下采样或上采样)
- 旋转 90/180/270 度,翻转
- 标准重映射(remap):任意角度旋转、仿射、透视、投影、任意变形
分析与监看
- RGB 直方图
- RGB Parade(分量图)
- 波形监视器(Waveform)
输出与编解码器
- 通过 OpenGL 实时显示输出
- JPEG 编解码器(每通道 8/12 位)
- JPEG2000 编码器与解码器(每通道 8–16 位,分块、批处理、多线程、多线程批处理)
流水线基础设施
- 用于提升性能的 stream-per-thread 支持
- Linux 的 CUDA MPS 支持
- 用于高性能视频处理的 GPU 上 FFmpeg 滤镜与编解码器
SDK 可选项
以下模块也是 SDK 的一部分。它们面向较不常见的任务,按需授权。
扩展格式支持
- 各种 RAW 格式的解包模块
- RAW 与 DNG(CinemaDNG)图像与视频处理
- MLV RAW 视频处理
- OME-TIFF、BigTIFF、GeoTIFF 支持(分块、金字塔、编码)
- 面向高位深图像传感器的 HDR
视频编解码器
- H.264 编解码器(NVENC 与 NVDEC)
- H.265 编解码器(NVENC 与 NVDEC)
- 面向 FFmpeg 的 GPU J2K 编解码器
I/O 与集成
- 来自 SD/HD-SDI 与 3G/6G/12G-SDI 采集卡的输入:Blackmagic、Imperx
- 面向实时图像处理的多相机解决方案(英文)
兼容性
- 操作系统:Windows 10/11、Linux Ubuntu、Linux4Tegra (L4T)
- NVIDIA GPU:Pascal、Volta、Turing、Ampere 与 Ada 各代 — 移动端、笔记本、桌面与服务器型号;对最新几代 GPU 的支持进行中
- NVIDIA Jetson:Nano、Xavier NX/AGX、Orin NX/AGX
- CUDA 12.6;Windows 上 MSVS 2022
- 附带含源码的 C++ 示例程序、视频处理 API 与手册
- 与 FFmpeg 的 Motion JPEG 集成(读/写);FFmpeg 采用 LGPL v2.1
带源码的 SDK 示例程序
- CUDA JPEG 编解码器
- 去马赛克,以及去马赛克 + JPEG
- 去噪器
- 缩放器
- J2K 编解码器
- SDI 转换器
- JPEG Resize(Jpeg2Jpeg):JPEG 解码、裁剪、缩放、锐化、JPEG 编码
- C++ 与 CUDA 相机应用:原始数据采集与解包、暗场扣除、阴影校正、白平衡、曝光校正、去马赛克、亮度与色度去噪、颜色校正、带 LUT(曲线与色阶)的色调映射、旋转、裁剪、缩放、重映射(remap)、去畸变、锐化、OpenGL 输出、JPEG 或 JPEG2000 压缩、写入 AVI(MJPEG)或 MXF(JPEG2000)
- FFmpeg Remap 滤镜(英文)
- FFmpeg J2K 解码器(英文)
Fastvideo 在 GitHub 上的开源项目
- PGM2DNG 转换器 — 将 PGM 图像转换为 DNG
- GPU Camera Sample — 面向机器视觉与工业相机、带 GPU 图像处理的软件;同一仓库提供 Windows 二进制文件
可下载的基于 GPU 的演示程序
- JPEG 编解码器
- JPEG2000 编解码器
- 去马赛克
- 缩放器
- Fast CinemaDNG Processor
- 用于 XIMEA 相机的 FastVCR 软件
- 用于 Emergent Vision 相机的 FastVCR 软件(英文)
许可与定制开发
我们向软件开发者、相机制造商、系统集成商与经销商授权面向 Windows、Linux 与 L4T 的 GPU 图像与视频处理 SDK 及其组件。该 SDK 已用于从机器视觉到数字电影与广播的广泛实时成像应用(英文)。
Fastvideo 也根据客户需求开发定制的图像与视频处理方案,并提供集成服务以将 SDK 与您既有的软件对接。如果您的图像处理流水线包含本页未列出的阶段,请联系我们讨论 — 也可查看我们开发中的项目(英文)。
SDK 的演示版本、文档、授权细节与报价可应要求提供 — 请使用下方联系表。
常见问题
什么是 Fastvideo SDK?
Fastvideo SDK 是一个 C++/CUDA 库,在 NVIDIA GPU 上运行完整的相机图像处理流水线 — 从原始采集、去马赛克、去噪、颜色与色调处理、缩放,到 JPEG 与 JPEG2000 压缩 — 全部在 GPU 内存中完成。
它有多快?
在 NVIDIA GeForce RTX 4090 上,完整 RAW 转 RGB 流水线在 GPU 内存中以约 60 fps 处理一帧 65 MPix 图像(12 位 4K 端到端最高 60 fps,此时吞吐受限于 SSD 而非 GPU)。单个模块更快:JPEG 编码约 5500 fps(Full HD)与 3800 fps(4K),视觉无损 JPEG2000 编码最高约 2100 fps(2K,批处理模式),去马赛克最高 69 GPix/s — 参见基准测试方法(英文)。
支持哪些 GPU 与平台?
任何支持 CUDA 的 NVIDIA GPU,从 Jetson 嵌入式模块(Xavier、Orin)到笔记本、桌面与服务器显卡,运行于 Windows 10/11、Linux Ubuntu 与 Linux4Tegra。相同的 C++/CUDA API 无需改动代码即可覆盖整个产品线。
SDK 覆盖哪些流水线阶段?
RAW 域处理、去马赛克、去噪、颜色校正与色调映射、几何变换、分析与监看,以及输出编解码器 — JPEG、JPEG2000,以及通过 NVENC/NVDEC 的 H.264/H.265。它还集成 GPU 上的 FFmpeg 滤镜与编解码器。
我能自己测试性能吗?
可以。下载各模块的免费演示程序(英文),在您自己的 GPU 上测量速度 — 参见基准测试方法(英文)与 Fastvideo SDK 基准报告(PDF)。
CUDA 图像处理 SDK 路线图
Fastvideo SDK 是自 2009 年起开发与打磨的成熟产品;其最新版本(2026)新增了对最新 NVIDIA GPU 与 CUDA 版本的支持。以下为最近新增内容与当前进行中的工作。
已发布:
- 基于 GPU 的 ISP 的延迟改进(英文)
- 高质量色彩标定软件
- CUDA 12.6 支持;Jetson Orin 的 CUDA 12.2 支持
- 用于 XIMEA 相机的 FastVCR 软件(Jetson 上带相机控制的实时 RAW 处理)
进行中:
- 用于单帧 HDR 的 ALTMapper(自适应局部色调映射)引擎
- 带自标定的 RAW 域色差去除(英文)
- RawZipper — GPU 上用于有损压缩的 RAW 拜耳编解码器
- CUDA 13.3 支持
- Jetson Thor 支持
- 加速重映射(Remap)
- GPU 内存管理器