Google và nhị thức
Base Universal bổ sung trước đây
Định dạng Basis Universal cho phép bạn đạt được hiệu suất của kết cấu GPU gốc nhưng cung cấp mức độ nén cao hơn.
Cơ sở là định dạng trung gian cung cấp khả năng chuyển mã nhanh kết cấu GPU sang các định dạng cấp thấp khác nhau để sử dụng trên cả hệ thống máy tính để bàn và thiết bị di động trước khi sử dụng. Hiện được hỗ trợ là các định dạng PVRTC1 (4bpp RGB), BC7 (chế độ 6 RGB), BC1-5, ETC1 và ETC2. Dự kiến sẽ hỗ trợ trong tương lai cho định dạng ASTC (RGB hoặc RGBA) và chế độ 4/5 RGBA cho BC7 và 4bpp RGBA cho PVRTC1.
Hoạ tiết ở định dạng cơ bản chiếm ít bộ nhớ video hơn 6-8 lần và yêu cầu truyền lượng dữ liệu gần bằng một nửa so với họa tiết thông thường dựa trên định dạng JPEG và ít hơn 10-25% so với họa tiết ở 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 họa tiết vào bộ nhớ video, họa tiết JPEG và PNG được sử dụng trong các thử nghiệm tiêu tốn 16 MB bộ nhớ, trong khi họa tiết ở
Cơ bản cần 2 MB bộ nhớ để dịch sang BC1, PVRTC1 và ETC1 và 4 MB để dịch sang BC7.
Quá trình di chuyển các ứng dụng hiện có sang Basis Universal khá đơn giản. Chỉ cần mã hóa lại kết cấu hoặc hình ảnh hiện có sang định dạng mới bằng tiện ích “basisu” do dự án cung cấp, chọn mức chất lượng cần thiết là đủ. Tiếp theo, trong ứng dụng, trước khi mã kết xuất, bạn cần khởi tạo bộ chuyển mã baseu, bộ chuyển mã này chịu trách nhiệm dịch định dạng trung gian sang định dạng được GPU hiện tại hỗ trợ. Đồng thời, hình ảnh trong toàn bộ chuỗi xử lý vẫn được nén, bao gồm cả việc tải ở dạng nén vào GPU. Thay vì chuyển mã trước toàn bộ hình ảnh, GPU chỉ giải mã có chọn lọc những phần cần thiết của hình ảnh.
Nó hỗ trợ lưu các mảng kết cấu không đồng nhất (khối lập phương), kết cấu thể tích, mảng kết cấu, cấp độ mipmap, chuỗi video hoặc các đoạn kết cấu tùy ý trong một tệp. Ví dụ: có thể đóng gói một loạt hình ảnh trong một tệp để tạo video nhỏ hoặc kết hợp một số họa tiết bằng bảng màu chung cho tất cả hình ảnh và loại bỏ các mẫu hình ảnh điển hình trùng lặp. Việc triển khai bộ mã hóa Basis Universal hỗ trợ mã hóa đa luồng bằng OpenMP. Bộ chuyển mã hiện chỉ hoạt động ở chế độ đơn luồng.
thêm
Cần lưu ý rằng khả năng nhúng video với quá trình xử lý tiếp theo 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 trên WebAssembly và WebGL, có thể hiển thị đồng thời hàng trăm video nhỏ với tải CPU tối thiểu. Cho đến khi có thể sử dụng hướng dẫn SIMD trong WebAssugging với codec truyền thống, mức hiệu suất này vẫn chưa đạ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. Mã với các tối ưu hóa bổ sung cho video hiện đang được chuẩn bị xuất bản, bao gồm khả năng sử dụng
Nguồn: opennet.ru