Google і Binomial випустили вихідний код для Basis

основа

Нещодавно Google і Binomial оголосили, що відкрили вихідний код Універсальна основа, який є кодеком для ефективного стиснення текстур та відповідного формату файлу .basis для розповсюдження текстур на основі зображень та відео. Довідковий код реалізації написаний на C ++ і надається за ліцензією Apache 2.0.

Універсальна основа доповнює систему стиснення даних Draco 3D і ви намагаєтеся вирішити проблему з доставкою текстур для графічного процесора.

До цього часу розробники були обмежені вибором між низькорівневими форматами, які дозволяють мати високу продуктивність, але специфічні для графічного процесора і займають багато місця на диску, та іншими форматами, що дозволяють зменшити розмір, але не вони можуть конкурувати з текстурами графічного процесора за продуктивністю.

Про Основу

Формат Basis Universal дозволяє досягти рівня продуктивності власних текстур графічного процесора, але забезпечує більш високий рівень стиснення.

Основа - це проміжний формат, який перед використанням забезпечує швидке перекодування в різні низькорівневі формати текстур графічного процесора які використовуються як в настільних системах, так і в мобільних пристроях.

В даний час, потокове передавання підтримується у форматах PVRTC1 (4bpp RGB), BC7 (режим 6 RGB), BC1-5, ETC1 і ETC2. В майбутньому очікується підтримка режимів А.STC (RGB або RGBA) та 4/5 RGBA для BC7 та 4bpp RGBA для PVRTC1.

Текстури у форматі займають у 6-8 разів менше відеопам'яті та вони потребують приблизно вдвічі менше даних, ніж типові текстури на основі формату JPEG і на 10-25% менше, ніж текстури в режимі RDO.

Наприклад, при розмірі зображення JPEG 891 КБ та текстурі ETC1 1 МБ, розмір даних у базовому форматі становить 469 КБ у режимі найвищої якості.

При розміщенні текстур у відеопам’яті текстури, використані в тестах у форматах JPEG та PNG, забирали 16 МБ пам’яті, тоді як текстури в базовому форматі вимагали 2 МБ пам’яті у разі передачі у BC1, PVRTC1 та ETC1 , і 4 МБ у разі передачі в AC7.

Біноміальні універсальні текстури

Процес перетворення існуючих програм на Basis Universal досить простий:

Просто перекодуйте існуючі текстури або зображення в новий формат за допомогою утиліти «baseu», передбаченої проектом, вибравши необхідний рівень якості.

Крім того, у програмі перед кодом необхідно ініціалізувати кодер, який відповідає за переклад проміжного формату в поточний формат, сумісний з графічним процесором.

Водночас зображення з усього ланцюга обробки залишаються стисненими, включаючи завантаження в стиснутому вигляді на графічний процесор. Замість попереднього перекодування цілого зображення, графічний процесор вибірково декодує лише необхідні частини зображення.

Підтримує збереження в масиві текстур одного файлу (карта куба), об’ємні текстури, масиви текстур, рівні mipmap, відеопотоки або довільні фрагменти текстур.

Наприклад, можна упакувати в один файл серії зображень, щоб створити невеликі відеозаписи або поєднати кілька текстур, використовуючи загальну палітру для всіх зображень та дедуплікацію типових шаблонів зображень.

Google хоче, щоб основа стала стандартом

Реалізація коду Basis Universal підтримує багатопотокове кодування за допомогою OpenMP. Рекодер працює лише в однопотоковому режимі.

Також декодер браузера Basis Universal доступний у веб-форматі, який можна використовувати у веб-додатках на основі WebGL.

Зрештою, Google має намір підтримувати Basis Universal у всіх основних браузерах та просувати його як портативний формат текстури для WebGL та майбутньої специфікації WebGPU, концептуально подібний до API Vulkan, Metal та Direct3D 12.

Помічено, що можливість інтегрувати відео з його подальшою обробкою лише на стороні графічного процесора робить Basis Universal цікавим рішенням для створення динамічних користувацьких інтерфейсів у WebAssembly та WebGL, які можуть одночасно відображати сотні невеликих відео з мінімальним навантаженням на процесор.

Навіть можливість використання інструкцій SIMD у WebAssembly з традиційними кодеками, такий рівень продуктивності ще не досяжний, тому відео на основі текстури можна використовувати в областях, де звичайне відео не застосовується.

Фуенте: https://opensource.googleblog.com/


Будьте першим, щоб коментувати

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.