Google과 Binomial은 Basis의 소스 코드를 공개했습니다.

기초

최근 Google과 Binomial은 소스 코드를 공개했다고 발표했습니다. Universal Basis, 어느 텍스처 및 관련 .basis 파일 형식을 효율적으로 압축하는 코덱입니다. 이미지와 비디오를 기반으로 텍스처를 배포합니다. 참조 구현 코드는 C ++로 작성되었으며 Apache 2.0 라이선스에 따라 제공됩니다.

보편적 기준 Draco 3D 데이터 압축 시스템 보완 GPU 용 텍스처 전달 문제를 해결하려고합니다.

지금까지 개발자는 고성능을 허용하지만 GPU에 국한되고 많은 디스크 공간을 차지하는 저수준 형식과 크기를 줄일 수 있지만 크기를 줄일 수있는 다른 형식 중에서 선택하는 데 제한을 받았습니다. 성능면에서 GPU 텍스처와 경쟁 할 수 있습니다.

Basis 정보

Basis Universal 형식 네이티브 GPU 텍스처의 성능 수준을 달성 할 수 있지만 더 높은 수준의 압축을 제공합니다.

베이스는 사용하기 전에 다양한 저수준 GPU 텍스처 형식으로 빠른 트랜스 코딩을 제공합니다. 데스크톱 시스템과 모바일 장치 모두에서 사용됩니다.

현재, 스트리밍은 형식으로 지원됩니다. PVRTC1 (4bpp RGB), BC7 (6 RGB 모드), BC1-5, ETC1 및 ETC2. 향후 A 모드가 지원 될 예정입니다.BC4의 경우 STC (RGB 또는 RGBA) 및 5/7 RGBA, PVRTC4의 경우 1bpp RGBA.

형식의 텍스처는 비디오 메모리를 6 ~ 8 배 적게 차지하고 JPEG 형식에 기반한 일반적인 텍스처보다 약 10 배 적은 데이터가 필요하고 RDO 모드의 텍스처보다 25-XNUMX % 적습니다.

예를 들어 JPEG 이미지 크기가 891KB이고 ETC1 텍스처가 1MB 인 경우 기본 형식의 데이터 크기는 최고 품질 모드에서 469KB입니다.

비디오 메모리에 텍스처를 배치 할 때 JPEG 및 PNG 형식의 테스트에 사용 된 텍스처는 16MB의 메모리를 사용했으며 기본 형식의 텍스처는 BC2, PVRTC1 및 ETC1로 전송하는 경우 1MB의 메모리가 필요했습니다. , AC4로 전송하는 경우 7MB.

이항 유니버설 텍스처

기존 애플리케이션을 Basis Universal로 변환하는 프로세스는 매우 간단합니다.

프로젝트에서 제공하는 "basisu"유틸리티를 사용하여 필요한 품질 수준을 선택하여 기존 텍스처 또는 이미지를 새 형식으로 간단히 레코딩합니다.

또한 응용 프로그램에서 코드 전에 인코더를 초기화해야하며 이는 중간 형식을 현재 GPU 호환 형식으로 변환하는 역할을합니다.

동시에, 전체 처리 체인의 이미지는 압축 된 상태로 유지됩니다. 압축 된 형태로 GPU에 다운로드하는 것을 포함합니다. GPU는 전체 이미지를 사전에 레코딩하는 대신 이미지의 필요한 부분 만 선택적으로 디코딩합니다.

단일 파일 텍스처 배열에 저장 지원 (큐브 맵), 벌크 텍스처, 텍스처 배열, 밉맵 레벨, 비디오 스트림 또는 임의의 텍스처 스 니펫.

예를 들어 단일 이미지 시리즈 파일로 패키징하여 작은 비디오를 만들거나 모든 이미지에 대한 공통 팔레트를 사용하여 여러 텍스처를 결합하고 일반적인 이미지 템플릿의 중복을 제거 할 수 있습니다.

Google은 기본이 표준이되기를 원합니다.

Basis Universal 인코더 구현은 OpenMP를 사용하는 다중 스레드 인코딩을 지원합니다. 레코더는 단일 스레드 모드에서만 작동합니다.

또한 브라우저 디코더 Basis Universal은 웹 형식으로 제공됩니다., WebGL 기반 웹 애플리케이션에서 사용할 수 있습니다.

궁극적으로, Google은 모든 주요 브라우저에서 Basis Universal을 지원하고 홍보 할 계획입니다. Vulkan, Metal 및 Direct3D API 12와 개념적으로 유사한 WebGL 및 향후 WebGPU 사양에 대한 이식 가능한 텍스처 형식입니다.

GPU 측에서만 비디오를 사후 처리와 통합 할 수있는 기능으로 인해 Basis Universal은 WebAssembly 및 WebGL에서 동적 사용자 인터페이스를 만드는 데 흥미로운 솔루션이되었습니다.이 솔루션은 최소한의 부하로 수백 개의 작은 비디오를 동시에 미러링 할 수 있습니다. CPU.

기존 코덱과 함께 WebAssembly에서 SIMD 명령을 사용하는 기능조차도 이러한 수준의 성능은 아직 달성 할 수 없으므로 일반 비디오를 적용 할 수없는 영역에서 텍스처 기반 비디오를 사용할 수 있습니다.

출처 : https://opensource.googleblog.com/


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.