Google жана Binamial ачык булагы Негизги Universal текстураны кысуу системасы

Google жана Бином ачылды баштапкы тексттер Universal Basis, эффективдүү текстура кысуу үчүн кодек жана аны менен байланышкан универсалдуу ".basis" файл форматы сүрөт жана видео негизиндеги текстураларды жайылтуу үчүн. Шилтемени ишке ашыруу коду C++ тилинде жазылган жана берилген Apache 2.0 астында лицензияланган.

Негизги Universal мурда толуктап турат жарыяланган Draco 3D маалыматтарды кысуу системасы жана GPU үчүн текстураларды берүү менен көйгөйдү чечүүгө аракет кылат. Ушул убакка чейин иштеп чыгуучулар жогорку өндүрүмдүүлүккө жетишкен, бирок GPUга мүнөздүү жана дискте көп орун ээлеген төмөнкү деңгээлдеги форматтарды жана көлөмүн кичирейтүүгө жетишкен, бирок аткаруу жагынан GPU текстуралары менен атаандаша албаган башка форматтарды тандоо менен чектелип келишкен.

Негизги универсалдуу формат жергиликтүү GPU текстураларынын иштешине жетүүгө мүмкүндүк берет, бирок кысуунун жогорку деңгээлин камсыз кылат.
Базис – колдонуудан мурун рабочий системаларда да, мобилдик түзмөктөрдө да колдонуу үчүн GPU текстураларын ар кандай төмөнкү деңгээлдеги форматтарга тез коддоону камсыз кылган аралык формат. Учурда колдоого алынган PVRTC1 (4bpp RGB), BC7 (6 RGB режими), BC1-5, ETC1 жана ETC2 форматтары. Келечекте колдоо ASTC форматы (RGB же RGBA) жана BC4 үчүн 5/7 RGBA режимдери жана PVRTC4 үчүн 1bpp RGBA үчүн күтүлүүдө.

Google жана Binamial ачык булагы Негизги Universal текстураны кысуу системасы

Негизги форматтагы текстуралар 6-8 эсе аз видео эстутумду ээлейт жана JPEG форматындагы типтүү текстураларга караганда болжол менен жарым жана RDO режиминдеги текстураларга караганда 10-25% азыраак маалыматтарды өткөрүп берүүнү талап кылат. Мисалы, JPEG сүрөтүнүн көлөмү 891 КБ жана ETC1 текстурасы 1 МБ менен, База форматындагы маалымат көлөмү эң жогорку сапат режиминде 469 КБ. Текстураларды видео эстутумга жайгаштырууда тесттерде колдонулган JPEG жана PNG текстуралары 16 МБ эстутум керектешет, ал эми текстуралар
Негизи BC2, PVRTC1 жана ETC1ге которуу үчүн 1 МБ эстутум жана BC4ге которуу үчүн 7 МБ талап кылынат.

Google жана Binamial ачык булагы Негизги Universal текстураны кысуу системасы

Учурдагы тиркемелерди Basis Universalге көчүрүү процесси абдан жөнөкөй. Долбоор тарабынан сунушталган "basisu" утилитасын колдонуу менен учурдагы текстураларды же сүрөттөрдү жаңы форматка кайра коддоо үчүн, талап кылынган сапат деңгээлин тандап алуу жетиштүү. Андан кийин, тиркемеде, рендеринг кодунан мурун, аралык форматты учурдагы GPU колдогон форматка которуу үчүн жооптуу болгон baseu транскодерин инициализациялоо керек. Ошол эле учурда, бардык иштетүү чынжырындагы сүрөттөр кысылган бойдон калууда, анын ичинде GPUга кысылган түрдө жүктөлөт. Бүт сүрөттү алдын ала коддоонун ордуна, GPU сүрөттүн керектүү бөлүктөрүн гана чечмелейт.

Ал гетерогендүү текстура массивдерин (cubemaps), көлөмдүү текстураларды, текстура массивдерин, mipmap деңгээлдерин, видео ырааттуулугун же ыктыярдуу текстура фрагменттерин бир файлда сактоону колдойт. Мисалы, кичинекей видеолорду түзүү үчүн бир файлга бир катар сүрөттөрдү топтосо болот, же бардык сүрөттөр үчүн жалпы палитраны колдонуу менен бир нече текстураларды бириктирип, типтүү сүрөт шаблондорун дедупликациялоого болот. Негизги универсалдуу коддогуч ишке ашыруу OpenMP аркылуу көп жиптүү коддоону колдойт. Транскодер учурда бир жиптүү режимде гана иштейт.

кошумча жеткиликтүү WebGL негизиндеги веб тиркемелерде колдонулушу мүмкүн болгон WebAssembly форматында жеткирилген браузерлер үчүн универсалдуу декодер. Акыр-аягы, Google бардык негизги браузерлерде Базис Универсалды колдоого жана аны WebGL үчүн көчмө текстура форматы жана келечектеги спецификация катары жайылтууга ниеттенүүдө. WebGPU, концептуалдык жактан Vulkan, Metal жана Direct3D 12 API'лерине окшош.

Видеону кийинчерээк GPU тарабында гана иштетүү мүмкүнчүлүгү Basis Universalди WebAssembly жана WebGLде динамикалык колдонуучу интерфейстерин түзүү үчүн кызыктуу чечимге айландырат, ал бир эле учурда процессордун минималдуу жүгү менен жүздөгөн кичинекей видеолорду көрсөтө алат. SIMD инструкциялары WebAssemblyде салттуу кодектер менен колдонулмайынча, аткаруунун бул деңгээлине азырынча жетишүү мүмкүн эмес, андыктан текстурага негизделген видеону кадимки видео колдонулбаган аймактарда колдонсо болот. Учурда видео үчүн кошумча оптималдаштыруулары бар код, анын ичинде колдонуу мүмкүнчүлүгү да жарыялоого даярдалууда I-кадрлар жана P-кадрлар адаптивдүү толтуруу (CR) колдоосу менен.

Source: opennet.ru

Комментарий кошуу