نظام ضغط القوام Google وBinomial مفتوح المصدر Basis Universal

جوجل وذو الحدين افتتح النصوص المصدرية أساس عالمي، برنامج ترميز لضغط النسيج بكفاءة وتنسيق ملف ".basis" عالمي مرتبط لتوزيع الأنسجة المستندة إلى الصور والفيديو. رمز التنفيذ المرجعي مكتوب بلغة C++ و زودت مرخص بموجب Apache 2.0.

يكمل Basis Universal سابقًا نشرت نظام Draco 3D لضغط البيانات ويحاول حل المشكلة من خلال توفير مواد لوحدة معالجة الرسومات. حتى الآن، اقتصر المطورون على الاختيار بين التنسيقات ذات المستوى المنخفض التي تحقق أداءً عاليًا ولكنها خاصة بوحدة معالجة الرسومات وتشغل مساحة كبيرة على القرص، والتنسيقات الأخرى التي تحقق تقليل الحجم ولكن لا يمكنها منافسة بنية وحدة معالجة الرسومات في الأداء.

يسمح لك تنسيق Basis Universal بتحقيق أداء بنية وحدة معالجة الرسومات الأصلية، ولكنه يوفر مستوى أعلى من الضغط.
Basis هو تنسيق وسيط يوفر تحويلًا سريعًا لأنسجة وحدة معالجة الرسومات إلى تنسيقات مختلفة منخفضة المستوى لاستخدامها على كل من أنظمة سطح المكتب والأجهزة المحمولة قبل الاستخدام. المدعومة حاليًا هي تنسيقات PVRTC1 (4bpp RGB)، وBC7 (وضع 6 RGB)، وBC1-5، وETC1، وETC2. من المتوقع دعم مستقبلي لتنسيق ASTC (RGB أو RGBA) وأوضاع 4/5 RGBA لـ BC7 و4bpp RGBA لـ PVRTC1.

نظام ضغط القوام Google وBinomial مفتوح المصدر Basis Universal

تستهلك الأنسجة في التنسيق الأساسي ذاكرة فيديو أقل بنسبة 6-8 مرات وتتطلب نقل ما يقرب من نصف كمية البيانات التي تنقلها الأنسجة النموذجية المستندة إلى تنسيق JPEG وأقل بنسبة 10-25% من الأنسجة في وضع RDO. على سبيل المثال، مع حجم صورة JPEG يبلغ 891 كيلوبايت ونسيج ETC1 يبلغ 1 ميغابايت، يكون حجم البيانات في التنسيق الأساسي 469 كيلوبايت في وضع الجودة الأعلى. عند وضع الأنسجة في ذاكرة الفيديو، استهلكت الأنسجة JPEG وPNG المستخدمة في الاختبارات 16 ميغابايت من الذاكرة، بينما كانت الأنسجة الموجودة في
يتطلب الأساس 2 ميجابايت من الذاكرة للترجمة إلى BC1 وPVRTC1 وETC1 و4 ميجابايت للترجمة إلى BC7.

نظام ضغط القوام Google وBinomial مفتوح المصدر Basis Universal

عملية ترحيل التطبيقات الموجودة إلى Basis Universal بسيطة للغاية. يكفي إعادة ترميز القوام أو الصور الموجودة إلى تنسيق جديد باستخدام الأداة المساعدة "basisu" التي يوفرها المشروع، واختيار مستوى الجودة المطلوب. بعد ذلك، في التطبيق، قبل عرض التعليمات البرمجية، تحتاج إلى تهيئة جهاز Transcoder الأساسي، وهو المسؤول عن ترجمة التنسيق المتوسط ​​إلى التنسيق الذي تدعمه وحدة معالجة الرسومات الحالية. وفي الوقت نفسه، تظل الصور في جميع أنحاء سلسلة المعالجة بأكملها مضغوطة، بما في ذلك تحميلها بشكل مضغوط في وحدة معالجة الرسومات. بدلاً من تحويل الصورة بأكملها بشكل استباقي، تقوم وحدة معالجة الرسومات بفك تشفير الأجزاء الضرورية فقط من الصورة بشكل انتقائي.

وهو يدعم حفظ مصفوفات الأنسجة غير المتجانسة (الخرائط المكعبية)، والأنسجة الحجمية، ومصفوفات الأنسجة، ومستويات mipmap، وتسلسلات الفيديو أو أجزاء النسيج العشوائية في ملف واحد. على سبيل المثال، من الممكن تجميع سلسلة من الصور في ملف واحد لإنشاء مقاطع فيديو صغيرة، أو دمج عدة مواد باستخدام لوحة مشتركة لجميع الصور وإلغاء تكرار قوالب الصور النموذجية. يدعم تطبيق برنامج التشفير Basis Universal التشفير متعدد الخيوط باستخدام OpenMP. يعمل محول الترميز حاليًا فقط في الوضع أحادي الترابط.

بالإضافة إلى ذلك متاح وحدة فك ترميز Basis Universal للمتصفحات، يتم تسليمها بتنسيق WebAssembly، والتي يمكن استخدامها في تطبيقات الويب المستندة إلى WebGL. في النهاية، تعتزم Google دعم Basis Universal في جميع المتصفحات الرئيسية والترويج له كتنسيق نسيج محمول لـ WebGL ومواصفات مستقبلية. WebGPU، والتي تشبه من الناحية النظرية واجهات برمجة تطبيقات Vulkan وMetal وDirect3D 12.

تجدر الإشارة إلى أن القدرة على تضمين الفيديو مع معالجته اللاحقة فقط على جانب وحدة معالجة الرسومات، تجعل Basis Universal حلاً مثيرًا للاهتمام لإنشاء واجهات مستخدم ديناميكية على WebAssembly وWebGL، والتي يمكنها عرض مئات مقاطع الفيديو الصغيرة في وقت واحد مع الحد الأدنى من حمل وحدة المعالجة المركزية. وإلى أن يتم استخدام تعليمات SIMD في WebAssembly مع برامج الترميز التقليدية، فإن هذا المستوى من الأداء لا يمكن تحقيقه بعد، لذلك يمكن استخدام الفيديو المعتمد على النسيج في المناطق التي لا ينطبق فيها الفيديو التقليدي. يتم حاليًا إعداد التعليمات البرمجية مع تحسينات إضافية للفيديو للنشر، بما في ذلك القدرة على الاستخدام إطارات I وإطارات P مع دعم الحشو التكيفي (CR).

المصدر: opennet.ru

إضافة تعليق