超高帧率相机为何写入速度如此之快?

超高帧率相机为何写入速度如此之快?

以 1080p 录制,并且100,000 FPSProRes 422 编解码器中 1 秒钟会占用 73.2 GB 的存储空间。(来源)

超高速摄像机如何以每秒 580.56 千兆位的速度写入 SD 卡?写入之前,还需要对镜头进行编码/处理!超高帧率摄像机能够管理大量图像数据背后的技术是什么?它们有巨大的内存缓冲区吗?

答案1

高帧率相机能够管理大量图像数据,其背后的技术是什么?

以 1080p 和 100,000 FPS 录制

不同时:

如果拍摄速度为 1,000,000 fps,则拍摄的单色分辨率为 128 x 32。对于 1280 x 800 的全分辨率,拍摄速度为 25,600 fps。

这些相机采用以下组合:

  • 大量 RAM

    “使用 288GB RAM 选项,您可以以全分辨率拍摄 7.6 秒

  • 专用 SSD 卡

    “CineMag 每秒可直接记录约 1Gpixel”

以下仅是一个实现方法的示例:

让我们来看看真正的高速摄像机,而不是抽象地谈论它。这就是 Phantom v2512,它可以通过特殊选项以高达 1280 x 800 的分辨率和高达 1,000,000 fps 的帧速率进行拍摄。但是,不能同时实现两者。如果您以 1,000,000 fps 的速度拍摄,则您将以 128 x 32 的分辨率进行单色拍摄。对于 1280 x 800 的全分辨率,它可以以 25,600 fps 的速度拍摄。他们声称这是市场上最快的 1Mpixel 摄像机。

因此,它可以以每秒 25 Gpixels 的速度拍摄。不过,这些照片不会发送到 SSD,而是发送到 RAM。您可以订购配备 72GB、144GB 或 288GB RAM 的相机。当然,动态 RAM 比任何 SSD 都快得多。使用 288GB RAM 选项,您可以在全分辨率下拍摄 7.6 秒。

对于拍摄时间较长、速度较慢的情况,他们提供了专为高速视频设计的 SSD,即 CineMag IV。CineMag 可以直接录制约 1Gpixel/秒,即 1500MB/秒。当然,鉴于他们使用的是定制 SSD 而不是现成的设备,因此没有理由认为这些 SSD 的速度必然会限制在标准现成 PC SSD 的速度范围内。

来源高速摄像机如何在如此短的速度下处理千兆字节的数据? - Quora


进一步阅读

答案2

事实根本不是这样。

从视频中可以清楚看到,120k fps 的录制是通过512*320分辨率,不到 1080p 带宽的 8%。在 170k fps 下,分辨率仅为256*256,340k 的录制又是以该分辨率的一半完成的,这仅占您所说的带宽的 3%。YouTube
上的最终视频是 1080p,当然,但来源视频(至少是高速视频)则不然,它们是事后升级的。

因此,尽管相当多,它根本不像你想象的那样。

这些相机中最小的型号有 72GB 的 RAM,最大可达 288GB。假设他们在视频中使用的分辨率最低,相机的最大型号,相机将能够在 RAM 中存储大约 200 万个全色度帧,或者大约 5.8 秒的视频,无需写入任何东西。
但它没有这样做,它存储的帧大小约为该大小的 1/10。所以实际上,它可以录制近一分钟而无需写出任何东西。再加上快速存储介质(其中即使是较便宜的介质现在也能达到 100+MB/s,而顶级的介质则更像是 1GB/s),它的工作方式就不足为奇了。
请注意,由于并行写入,即使使用速度较慢的介质无法完全跟上无限期的写入速度,您也可以大大增加总录制容量,因此它几乎是无限的(无论如何您都不会进行 2 小时的高速录制)。

至于处理/压缩,ProRes 422 与典型的视频压缩无法相比。它是一种非常简单的色度二次采样,然后进行 DCT,严格限制在单帧内。没有运动估计、预测、帧间依赖性,这些都没有。所以基本上它是一种二次采样的单帧JPEG压缩,经过 25 年以上的深入研究,令人尴尬的平行问题,以及哪个专用的,廉价的硬件,具有整个转换硬连线随时可用。快速完成此操作没有任何技术挑战。存储压缩数据与存储未压缩数据一样快。

答案3

如上所述,高速 RAM。如果这还不够,您可以:

  • 交错高速 RAM。例如,将八个或十六个 RAM 芯片并联到传感器输出,并告诉它们一个接一个地存储,然后再循环存储第一个。RAM 的速度只需八分之一或十六分之一。如果它们无法处理输入前如此快速变化的数据,请添加一个额外的快速寄存器作为中介。

    另一种方式是同时选通所有八个或十六个或更多个 RAM - 但交错通向它们的电线/走线的长度,因此不同时间的当前数据会出现在每个 RAM 的输入端。

  • 使用不可寻址的内存,而是以 FIFO/队列方式工作 - 这根本不需要处理地址,您可以以它们可以接收的速度将数据时钟输入这些设备,直到它真正从另一端出来 - 如果您需要更多空间,只需将更多这些设备连接到另一端即可。一旦到了读取时间,您就可以按照您喜欢的速度进行读取。

相关内容