گوگل و دوجمله ای
پایه یونیورسال مکمل های قبلی است
فرمت Basis Universal به شما اجازه می دهد تا به عملکرد بافت های گرافیکی بومی دست یابید، اما سطح فشرده سازی بالاتری را فراهم می کند.
Basis یک فرمت میانی است که کدگذاری سریع بافتهای GPU را به فرمتهای مختلف سطح پایین برای استفاده در سیستمهای دسکتاپ و دستگاههای تلفن همراه قبل از استفاده فراهم میکند. در حال حاضر فرمتهای PVRTC1 (4bpp RGB)، BC7 (6 حالت RGB)، BC1-5، ETC1 و ETC2 پشتیبانی میشوند. پشتیبانی آینده برای فرمت ASTC (RGB یا RGBA) و حالت های 4/5 RGBA برای BC7 و 4bpp RGBA برای PVRTC1 انتظار می رود.
بافتها در قالب پایه 6 تا 8 برابر حافظه ویدیویی کمتری اشغال میکنند و به انتقال تقریباً نیمی از بافتهای معمولی بر اساس فرمت JPEG و 10 تا 25 درصد کمتر از بافتها در حالت RDO نیاز دارند. به عنوان مثال، با حجم تصویر JPEG 891 کیلوبایت و بافت ETC1 1 مگابایت، حجم داده ها در فرمت پایه 469 کیلوبایت در حالت بالاترین کیفیت است. هنگام قرار دادن بافت ها در حافظه ویدیویی، بافت های JPEG و PNG مورد استفاده در تست ها 16 مگابایت حافظه مصرف می کردند، در حالی که بافت های موجود در
اساساً برای ترجمه به BC2، PVRTC1 و ETC1 به 1 مگابایت حافظه و برای ترجمه به BC4 به 7 مگابایت حافظه نیاز است.
فرآیند انتقال برنامه های کاربردی موجود به Basis Universal بسیار ساده است. کافی است با استفاده از ابزار "basisu" ارائه شده توسط پروژه، بافت ها یا تصاویر موجود را در قالبی جدید کدگذاری کنید و سطح کیفیت مورد نیاز را انتخاب کنید. در مرحله بعد، در برنامه، قبل از کد رندر، باید transcoder baseu را مقداردهی کنید، که وظیفه ترجمه فرمت میانی را به فرمت پشتیبانی شده توسط GPU فعلی بر عهده دارد. در همان زمان، تصاویر در کل زنجیره پردازش فشرده باقی میمانند، از جمله اینکه به صورت فشرده در GPU بارگذاری میشوند. به جای رمزگشایی پیشگیرانه کل تصویر، GPU به طور انتخابی تنها بخش های ضروری تصویر را رمزگشایی می کند.
از ذخیره آرایههای بافت ناهمگن (نقشههای مکعبی)، بافتهای حجمی، آرایههای بافت، سطوح mipmap، توالیهای ویدیویی یا قطعات بافت دلخواه در یک فایل پشتیبانی میکند. به عنوان مثال، می توان مجموعه ای از تصاویر را در یک فایل بسته بندی کرد تا ویدیوهای کوچکی ایجاد کرد، یا چندین بافت را با استفاده از یک پالت مشترک برای همه تصاویر ترکیب کرد و الگوهای تصویر معمولی را حذف کرد. پیاده سازی رمزگذار پایه جهانی از رمزگذاری چند رشته ای با استفاده از OpenMP پشتیبانی می کند. رمزگذار در حال حاضر فقط در حالت تک رشته ای کار می کند.
علاوه بر این
اشاره شده است که قابلیت جاسازی ویدیو با پردازش بعدی آن تنها در سمت GPU، Basis Universal را به یک راه حل جالب برای ایجاد رابط های کاربری پویا در WebAssembly و WebGL تبدیل می کند که می تواند همزمان صدها ویدیوی کوچک را با حداقل بار CPU نمایش دهد. تا زمانی که دستورالعملهای SIMD در WebAssembly با کدکهای سنتی مورد استفاده قرار نگیرند، این سطح از عملکرد هنوز قابل دستیابی نیست، بنابراین میتوان از ویدیوی مبتنی بر بافت در مناطقی استفاده کرد که ویدیوی معمولی قابل اجرا نیست. کد با بهینه سازی های اضافی برای ویدیو در حال حاضر برای انتشار آماده می شود، از جمله قابلیت استفاده
منبع: opennet.ru