Google жана Бином
Негизги Universal мурда толуктап турат
Негизги универсалдуу формат жергиликтүү GPU текстураларынын иштешине жетүүгө мүмкүндүк берет, бирок кысуунун жогорку деңгээлин камсыз кылат.
Базис – колдонуудан мурун рабочий системаларда да, мобилдик түзмөктөрдө да колдонуу үчүн GPU текстураларын ар кандай төмөнкү деңгээлдеги форматтарга тез коддоону камсыз кылган аралык формат. Учурда колдоого алынган PVRTC1 (4bpp RGB), BC7 (6 RGB режими), BC1-5, ETC1 жана ETC2 форматтары. Келечекте колдоо ASTC форматы (RGB же RGBA) жана BC4 үчүн 5/7 RGBA режимдери жана PVRTC4 үчүн 1bpp RGBA үчүн күтүлүүдө.
Негизги форматтагы текстуралар 6-8 эсе аз видео эстутумду ээлейт жана JPEG форматындагы типтүү текстураларга караганда болжол менен жарым жана RDO режиминдеги текстураларга караганда 10-25% азыраак маалыматтарды өткөрүп берүүнү талап кылат. Мисалы, JPEG сүрөтүнүн көлөмү 891 КБ жана ETC1 текстурасы 1 МБ менен, База форматындагы маалымат көлөмү эң жогорку сапат режиминде 469 КБ. Текстураларды видео эстутумга жайгаштырууда тесттерде колдонулган JPEG жана PNG текстуралары 16 МБ эстутум керектешет, ал эми текстуралар
Негизи BC2, PVRTC1 жана ETC1ге которуу үчүн 1 МБ эстутум жана BC4ге которуу үчүн 7 МБ талап кылынат.
Учурдагы тиркемелерди Basis Universalге көчүрүү процесси абдан жөнөкөй. Долбоор тарабынан сунушталган "basisu" утилитасын колдонуу менен учурдагы текстураларды же сүрөттөрдү жаңы форматка кайра коддоо үчүн, талап кылынган сапат деңгээлин тандап алуу жетиштүү. Андан кийин, тиркемеде, рендеринг кодунан мурун, аралык форматты учурдагы GPU колдогон форматка которуу үчүн жооптуу болгон baseu транскодерин инициализациялоо керек. Ошол эле учурда, бардык иштетүү чынжырындагы сүрөттөр кысылган бойдон калууда, анын ичинде GPUга кысылган түрдө жүктөлөт. Бүт сүрөттү алдын ала коддоонун ордуна, GPU сүрөттүн керектүү бөлүктөрүн гана чечмелейт.
Ал гетерогендүү текстура массивдерин (cubemaps), көлөмдүү текстураларды, текстура массивдерин, mipmap деңгээлдерин, видео ырааттуулугун же ыктыярдуу текстура фрагменттерин бир файлда сактоону колдойт. Мисалы, кичинекей видеолорду түзүү үчүн бир файлга бир катар сүрөттөрдү топтосо болот, же бардык сүрөттөр үчүн жалпы палитраны колдонуу менен бир нече текстураларды бириктирип, типтүү сүрөт шаблондорун дедупликациялоого болот. Негизги универсалдуу коддогуч ишке ашыруу OpenMP аркылуу көп жиптүү коддоону колдойт. Транскодер учурда бир жиптүү режимде гана иштейт.
кошумча
Видеону кийинчерээк GPU тарабында гана иштетүү мүмкүнчүлүгү Basis Universalди WebAssembly жана WebGLде динамикалык колдонуучу интерфейстерин түзүү үчүн кызыктуу чечимге айландырат, ал бир эле учурда процессордун минималдуу жүгү менен жүздөгөн кичинекей видеолорду көрсөтө алат. SIMD инструкциялары WebAssemblyде салттуу кодектер менен колдонулмайынча, аткаруунун бул деңгээлине азырынча жетишүү мүмкүн эмес, андыктан текстурага негизделген видеону кадимки видео колдонулбаган аймактарда колдонсо болот. Учурда видео үчүн кошумча оптималдаштыруулары бар код, анын ичинде колдонуу мүмкүнчүлүгү да жарыялоого даярдалууда
Source: opennet.ru