تصور کنید یک صحنه سهبعدی دو ثانیهای را دارید که حجمش ۴۲۷ مگابایت است؛ حالا همان صحنه را در یک فایل ۷.۴ مگابایتی دریافت میکنید بدون اینکه کیفیت بصری را از دست بدهید. این کاهش حجم ۵۸ برابری، نتیجه معرفی فرمت .splat4d است. طبق مستندات فنی ارائه شده توسط آدام رادونیس (Adam Raudonis)، این دستاورد رندرینگ 4D را از دانلودهای سنگین محلی به استریمهای سبک و مبتنی بر مرورگر منتقل میکند.
استریم کردن مدلهای گوسین اسپلَت (Gaussian Splatting) با رزولوشن بالا — که شبیه به پخش میلیاردها نقطه رنگی کوچک برای ساخت تصویر است — به دلیل حجم عظیم دادهها در هر فریم، همیشه با سد پهنای باند مواجه بود. در واقع هر فریم جدید، حجم قابل توجهی داده به جریان اضافه میکند. همانطور که در تحلیلهای قبلی ما درباره بهینهسازی مدلهای بصری اشاره کردیم، اکثر روشهای فعلی به کانتینرهای ویدئویی سنگین یا منطق پیچیده سمت سرور وابستهاند. در همین راستا، تلاش برای کاهش حجم دادهها در پردازشهای بصری همواره اولویت بوده است، مشابه آنچه راهبرد pxpipe برای بهینهسازی توکنها با جایگزینی متن با تصویر به دنبال آن بود. اما .splat4d با برخورد به صحنه به عنوان ترکیبی از یک مدل سهبعدی ایستا و یک جریان ویدئویی، این مشکل را حل میکند. این رویکرد اجازه میدهد دادهها بهطور بومی و از طریق درخواستهای HTTP Range ساده، مستقیماً از ذخیرهسازهای شیئی (Object Stores) مانند S3, GCS یا R2 خوانده شوند.
زمینه معماری
این فرمت برای دستیابی به حداکثر بهرهوری طراحی شده است، بهگونهای که به هیچگونه منطق سمت سروری یا فایلهای مانیفست (Manifest) نیاز ندارد. هدف این فناوری، مرورگرهای فعالساز WebGPU هستند (از جمله کروم ۱۱۳+، سافاری ۲۶+ و فایرفاکس ۱۴۱+ در ویندوز). با استفاده از محدودههای بایتی مطلق در هدر (Header)، کلاینتها میتوانند عملیات Fetch را بهطور دقیق برنامهریزی کنند و تنها بایتهای مورد نیاز برای رندر یک فریم خاص را فراخوانی کنند.
سازوکار عملکرد
طبق گزارشهای فنی، این فرمت دادهها را با تفکیک صحنه به دو بخش ایستا (Static) و پویا (Dynamic) بهینهسازی میکند. اکثر المانهای پسزمینه تنها یکبار ذخیره میشوند؛ به همین دلیل، یک سکانس ۱.۶ گیگابایتی میتواند برای محیط اطراف خود تنها به چند مگابایت کاهش یابد. طبق تعریف دقیق این فرمت، یک اسپلَت زمانی «ایستا» تلقی میشود که یک مقدار کوانتایز شده واحد، بتواند محدوده تغییرات آن را در برابر مقادیر مینیمم و ماکسیمم در کل کلیپ، بهطور کامل پوشش دهد.
برای مدیریت حرکت و تغییرات، سیستم از چندین مکانیزم پیشرفته استفاده میکند:
- مسیرهای Deadband: مقدار ذخیرهشده برای یک نقطه پویا تنها زمانی تغییر میکند که مقدار واقعی چنان تغییر کند که از محدوده (Bound) مجاز خارج شود. این کار لرزشهای ناشی از کوانتایزیشن (Quantization) را میکشد و باعث میشود دلتایهای زمانی در اکثر مواقع صفر باشند.
- GOPهای بسته: بر اساس استانداردهای H.265، هر N فریم با یک فریم کلیدی (Keyframe) شامل مقادیر کوانتایز شده مطلق شروع شده و سپس فریمهای P با دلتایهای صحیح دقیق دنبال میشوند. هر چانک GOP بهطور مستقل رمزگشایی میشود، به این معنی که جابهجایی در زمان (Seeking) هرگز نیازی به دسترسی به چانکهای دیگر ندارد.
- پشته آنتروپی: دادهها از طریق ترتیب Morton-ordered و کدگذاری زیگزاگ برای دلتایهای صحیح پردازش میشوند. سپس یک جابهجایی صفحه-بایتی (Byte-plane shuffle) به سبک Blosc اتفاق میافتد و در نهایت هر جریان با zstd فشرده میشود. این فرآیند اجازه میدهد خروجی نهایی به حدود ۱۰۰٪ آنتروپی مرتبه-صفر جریانهای نمادین خود برسد.
ساختار فایل
یک فایل .splat4d از سه بخش متمایز تشکیل شده است: ابتدا رشته جادویی "SP4D" و یک هدر JSON حاوی محدودهها، گامهای کوانتایزیشن و شاخص چانکها؛ سپس بخش STATIC که ماسکهای هر اسپلَت و مقادیر پایه را نگه میدارد؛ و در نهایت مجموعهای از چانکهای GOP مستقل (هر کدام برای حدود ۱ ثانیه)، که در آنها جریانهای کلیدی پیش از جریانهای دلتا قرار گرفتهاند.
عملکرد و دقت
برخلاف فشردهسازیهای ویدئویی Lossy که کیفیت را فدا میکنند، .splat4d از کوانتایزیشن با محدوده خطای مشخص (Error-bounded) به سبک SZ/ZFP استفاده میکند. این تضمین میکند که هر ویژگی — شامل موقعیت، رنگ، شفافیت، چرخش و مقیاس — بهجای تکیه بر امتیازات میانگین PSNR، در یک محدوده قطعی باقی بماند. گامهای کوانتایزیشن برابر با ۲ برابر محدوده تنظیم شدهاند تا تضمین شود خطا در ساختار خود کوچکتر یا مساوی محدوده است.
محدودههای خطای پیشفرض عبارتند از:
- موقعیت: ±۲ میلیمتر (L∞ در هر محور)
- رنگ (RGB): ±۴/۲۵۵ سطح ۸-بیتی در هر کانال
- شفافیت: ±۴/۲۵۵ سطح ۸-بیتی
- چرخش: کاملاً دقیق (±۰) برای مؤلفههای کواترنیون در واحدهای ۱/۱۲۸
- مقیاس: ±۲٪ نسبی در هر محور
در بنچمارکهای انجام شده روی هشت سکانس مختلف — شامل ضبطهای گنبد CMU Panoptic (بندبند، جعبهها، سافتبال، تنیس)، صحنههای آشپزی Neu3D (شعله، سرخ کردن) و یک جشن تولد Technicolor با ۶۵۹ هزار اسپلَت — این فرمت برتری مطلق خود را نشان داد. در حالی که یک خط أساس (baseline) با zstd-19 سطح بالا تنها به فشردهسازی ۲.۵ برابری رسید، .splat4d بین ۱۶ تا ۵۸ برابر کوچکتر از دادههای خام و ۱۴ تا ۲۰ برابر کوچکتر از gzip بود.
از نظر عملکرد، در یک اتصال ۵۰ مگابیت بر ثانیه، اولین نما بعد از ۱۴۱ تا ۱۵۷ میلیثانیه بارگذاری میشود. جابهجایی (Scrubbing) به یک ناحیه بدون بافر، باعث میشود فریم کلیدی در حدود ۱۴۵ میلیثانیه قابل مشاهده شود. نرخ پخش به ۶۰ فریم بر ثانیه برای ۳۳۶ هزار اسپلَت میرسد، در حالی که زمان رمزگشایی Worker بین ۲.۵ تا ۲۷ میلیثانیه و زمان مرتبسازی (Sorting) بین ۱ تا ۲۵ میلیثانیه است.
این تغییر معماری به این معناست که محتوای 4D اکنون میتواند به عنوان یک دارایی استاتیک (Static Asset) سرو شود. توسعهدهندگان تنها کافی است مرورگر را به فایلی در یک هاست استاتیک ارجاع دهند. برای جلوگیری از فشردهسازی مضاعف، اشیاء باید بدون Content-Encoding ذخیره شوند، زیرا محمولهها در داخل کانتینر پیشتر با zstd فشرده شدهاند.
برای صنعت، این فناوری «دیوار پهنای باند» را برای ثبتهای تعاملی 4D تخریب میکند و گوسین اسپلَتینگ پویا را از یک کنجکاوی پژوهشی به ابزاری کاربردی برای واقعیت افزوده (AR) تحت وب و دوقلوهای دیجیتال تبدیل میکند، جایی که زمانهای جستوجوی در سطح میلیثانیه حیاتی هستند.
گام بعدی شما
- برای شروع استفاده، بسته پایتون را با دستور
pip install splats4dنصب کنید. - برای تبدیل سریهای زمانی از فریمهای .splat (antimatter15) به یک فایل واحد و قابل جستوجو، از دستور
splat4d encode -i frames_dir -o out.splat4dاستفاده کنید. - بررسی کنید آیا پروژه شما میتواند از رندرهای WebGPU برای کاهش تکیه بر سرور استفاده کند؟
اما بهینهسازیهای سختافزاری برای اجرای این مدلها در دستگاههای موبایل حتی پیچیدهتر است — به تحلیل ما درباره تراشههای جدید پردازش بصری مراجعه کنید.




گفتگو