Google và Binomial đã phát hành mã nguồn cho Basis

cơ sở

Gần đây Google và Binomial thông báo rằng họ đã mở mã nguồn của Cơ sở chung,là một codec để nén hiệu quả các kết cấu và định dạng tệp .basis được liên kết để phân phối kết cấu dựa trên hình ảnh và video. Mã triển khai tham chiếu được viết bằng C ++ và được cung cấp theo giấy phép Apache 2.0.

Cơ sở chung bổ sung cho hệ thống nén dữ liệu 3D Draco và bạn đang cố gắng giải quyết vấn đề với việc phân phối kết cấu cho GPU.

Cho đến nay, các nhà phát triển đã bị giới hạn bởi sự lựa chọn giữa các định dạng cấp thấp cho phép hiệu suất cao, nhưng dành riêng cho GPU và chiếm nhiều dung lượng đĩa và các định dạng khác cho phép giảm kích thước, nhưng chúng không thể cạnh tranh với kết cấu GPU trong hiệu suất.

Về Cơ sở

Định dạng Cơ bản Toàn cầu cho phép đạt được mức hiệu suất kết cấu GPU gốc nhưng cung cấp mức nén cao hơn.

Cơ sở là một định dạng trung gian, trước khi sử dụng, cung cấp khả năng chuyển mã nhanh sang các định dạng kết cấu GPU cấp thấp khác nhau được sử dụng trong cả hệ thống máy tính để bàn và thiết bị di động.

Hiện nay, phát trực tuyến được hỗ trợ ở các định dạng PVRTC1 (4bpp RGB), BC7 (6 chế độ RGB), BC1-5, ETC1 và ETC2. Trong tương lai, các chế độ A dự kiến ​​sẽ được hỗ trợSTC (RGB hoặc RGBA) và 4/5 RGBA cho BC7 và 4bpp RGBA cho PVRTC1.

Kết cấu ở định dạng này chiếm ít hơn 6 đến 8 lần bộ nhớ video và chúng yêu cầu dữ liệu ít hơn khoảng hai lần so với kết cấu điển hình dựa trên định dạng JPEG và ít hơn 10-25% so với kết cấu ở chế độ RDO.

Ví dụ: với kích thước hình ảnh JPEG là 891 KB và kết cấu ETC1 là 1 MB, kích thước dữ liệu ở định dạng cơ bản là 469 KB ở chế độ chất lượng cao nhất.

Khi đặt các họa tiết vào bộ nhớ video, các họa tiết được sử dụng trong các thử nghiệm ở định dạng JPEG và PNG tiêu thụ 16 MB bộ nhớ, trong khi các họa tiết ở định dạng cơ bản yêu cầu 2 MB bộ nhớ trong trường hợp truyền ở BC1, PVRTC1 và ETC1, và 4 MB trong trường hợp truyền trong AC7.

Kết cấu phổ nhị thức

Quá trình chuyển đổi các ứng dụng hiện có sang Basis Universal khá đơn giản:

Đơn giản chỉ cần mã hóa lại các kết cấu hoặc hình ảnh hiện có thành một định dạng mới bằng cách sử dụng tiện ích "baseu" do dự án cung cấp, chọn mức chất lượng cần thiết.

Ngoài ra, trong ứng dụng, trước khi mã, bộ mã hóa phải được khởi tạo, bộ mã hóa này có nhiệm vụ dịch định dạng trung gian sang định dạng tương thích với GPU hiện tại.

Đồng thời hình ảnh của toàn bộ chuỗi xử lý vẫn được nén, bao gồm cả tải xuống ở dạng nén vào GPU. Thay vì chủ động giải mã toàn bộ hình ảnh, GPU chỉ giải mã một cách chọn lọc những phần cần thiết của hình ảnh.

Hỗ trợ lưu trong một mảng kết cấu tệp duy nhất (bản đồ khối), kết cấu hàng loạt, mảng kết cấu, mức mipmap, luồng video hoặc các đoạn kết cấu tùy ý.

Ví dụ: bạn có thể đóng gói một tệp chuỗi hình ảnh duy nhất để tạo video nhỏ hoặc kết hợp nhiều kết cấu bằng cách sử dụng bảng màu chung cho tất cả hình ảnh và loại bỏ trùng lặp các mẫu hình ảnh điển hình.

Google muốn cơ sở trở thành tiêu chuẩn

Việc triển khai bộ mã hóa Basis Universal hỗ trợ mã hóa đa luồng sử dụng OpenMP. Bộ thu tín hiệu chỉ hoạt động ở chế độ luồng đơn.

Ngoài ra, bộ giải mã trình duyệt Basis Universal có sẵn ở định dạng web, có thể được sử dụng trong các ứng dụng web dựa trên WebGL.

Phương sách cuối cùng, Google dự định hỗ trợ Basis Universal trên tất cả các trình duyệt chính và quảng bá nó như một định dạng kết cấu di động cho WebGL và đặc tả WebGPU trong tương lai, tương tự về mặt khái niệm với Vulkan, Metal và Direct3D API 12.

Theo quan sát, khả năng tích hợp video với xử lý hậu kỳ chỉ ở phía GPU khiến Basis Universal trở thành một giải pháp thú vị để tạo giao diện người dùng động trong WebAssembly và WebGL, có thể phản chiếu đồng thời hàng trăm video nhỏ với tải trọng tối thiểu trên CPU.

Ngay cả khả năng sử dụng hướng dẫn SIMD trong WebAssembly với codec truyền thống, mức hiệu suất như vậy vẫn chưa thể đạt được, do đó, video dựa trên kết cấu có thể được sử dụng ở những khu vực không thể áp dụng video thông thường.

Fuente: https://opensource.googleblog.com/


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.