虚构创造的小说 4D splat 格式
一种可流式传输的 4D 高斯 splat 格式,具有可调边界。代码 PyPI 完整演示 规格 基准测试 比原始文件小 16–58×·比 gzip 小 14–20×·以 ~640 MB/s 编码·HTTP Range - 本地流式传输与寻址在浏览器中实时预览,流式解码:一个 7.4 MB 的 .splat4d 文件包含 2 秒的动态场景——比其 427 MB 的原始 .splat 帧小 58×。按下互动以控制相机:拖动以轨道飞行,ctrl 滚动以缩放。需要 WebGPU(Chrome 113+、Safari 26+、Windows 上的 Firefox 141+)——打开完整演示以获取更多场景和实时编码控件。其工作原理静态/动态分离在典型的动态捕获中,大多数 splat 是永远不会超出边界的背景。它们只存储一次——1.6 GB 序列的整个背景只需几 MB。分类是准确的:一个 splat 是静态的,当且仅当单个量化值满足其在整个剪辑中的最小和最大边界。死区“保持”跟踪动态 splat 的存储值仅在真实值会违反对它的边界时才会变化。这消除了量化闪烁,使时间增量大多为零,并且检查本身在每个发出符号之前强制执行保证。H.265 风格的封闭 GOP 每 N 帧一个关键帧(绝对量化值),然后是精确整数增量的 P 帧。每个 GOP 块独立解码 → 寻址不会接触其他块。关键流在每个块内的增量流之前进行布局,因此快速拖动可以提取一个块的 ~10% 并立即显示关键帧。熵堆栈 默顿顺序的 splats、锯齿形编码的整数增量、字节平面打乱(Blosc 风格)、zstd 每个流。输出以约 100% 的自身符号流的 0 阶熵落地。文件内部 .splat4d 文件有三个部分。小的头部携带边界、量化步骤和一块索引,带有绝对字节范围——所有客户需要的计划提取内容。静态部分保存每个 splat 的遮罩和基本值:提取一次,完整场景就会在屏幕上显示。其余部分为每 ~1 秒视频提供一个自包含的 GOP 数据块,关键流在增量流之前进行布局。"SP4D" + 头部 JSON 静态部分 → 完整的首次视图 GOP 数据块 0 [keys][deltas] GOP 数据块 1 ... 错误边界 每个解码帧中每个 splat 的每个属性都在用户选择的源的边界范围内——不是平均,不是在 PSNR:逐点和确定性。属性边界 默认位置 ± 毫米,L∞ 每轴 ±2 毫米 颜色 RGB ± 8 位级别每通道 ±4/255 不透明度 ± 8 位级别 ±4/255 旋转 ± 四元数分量(单位为 1/128,最多符号)精确(±0) 比例 ± 相对 %,每轴 ±2% 机制:SZ/ZFP 风格的误差边界量化(步长 = 2×边界 ⇒ 误差 ≤ 边界通过结构)。量化后,一切都是整数数学——时间增量永远不会漂移,Rust 和 JavaScript 解码器重建位相同的值。来自对象存储的流 该格式设计用于针对 S3 / GCS / R2 / 任何静态主机进行简单的 HTTP Range 请求——没有服务器逻辑,没有清单文件,没有视频容器。客户端需要: bytes=0-262143 → 魔法 + 头部 JSON(所有字节偏移量都是绝对的) 静态部分的一个范围(几 MB) → 屏幕上完整的首次视图 播放期间/寻址时的每个 GOP 数据块的一个范围:块前缀范围(TOC + keys)第一个 → ~100–150 ms 后在屏幕上显示关键帧,随后是该块的其余部分 → 精确帧 对象存储本地支持这一点。对于浏览器客户端,设置 CORS 以允许 Range 头并公开 Content-Range : [{"AllowedMethods":["GET", "HEAD"], "AllowedOrigins":["https://your-site"], "AllowedHeaders":["Range"], "ExposeHeaders":["Content-Range", "Content-Length", "Accept-Ranges"]}] 负载已经在容器内经过 zstd 压缩,因此存储对象时不带 Content-Encoding——范围数学保持字节精确,且不会重复压缩。 基准测试 来自三个独立捕获管道的八个序列:动态 3D 高斯(CMU Panoptic 圆顶——杂耍、箱子、软球、网球)、通过 SpacetimeGaussians/splaTV 的 Neu3D 烹饪场景(火焰 = 后院烧烤,煎 = 厨房大厨)及 Technicolor(生日派对,659k splats)——全部转换为每帧 antimatter15 .splat 文件(32 B/splat),20 fps。 splat4d 编码使用默认边界(±2 mm / ±4 颜色 / 精确旋转 / ±2% 比例); gzip 是每帧 -9。为了提供上下文,最佳的通用无损基线(zstd-19 --long 针对整个系列)仅达 2.5×。完整的方法论和更多基线:BENCHMARKS.md . 加载 benchmarks.json… 查看器 原生 WebGPU,逐行移植 antimatter15/splat 渲染器,像素验证与其进行比较。 指标 本地 节流 50 Mbps 完整首次视图(头部 + 静态部分) 141-157 ms 791 ms 快速进入缓冲区区域 → 关键帧可见 - 145 ms 播放 60 fps @ 336k splats · 工作解码 2.5–27 ms/帧 · 排序 1–25 ms 使用它 一系列 antimatter15 .splat 帧 → 一个小的、可寻址的文件: # Python (pip install splats4d) splat4d encode -i frames_dir -o out.splat4d
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡