Google και Binomial
Βάση Universal συμπληρώματα προηγουμένως
Η μορφή Basis Universal σάς επιτρέπει να επιτύχετε την απόδοση των εγγενών υφών GPU, αλλά παρέχει υψηλότερο επίπεδο συμπίεσης.
Το Basis είναι μια ενδιάμεση μορφή που παρέχει γρήγορη διακωδικοποίηση υφών GPU σε διάφορες μορφές χαμηλού επιπέδου για χρήση τόσο σε επιτραπέζια συστήματα όσο και σε κινητές συσκευές πριν από τη χρήση. Αυτήν τη στιγμή υποστηρίζονται μορφές PVRTC1 (4bpp RGB), BC7 (λειτουργία 6 RGB), BC1-5, ETC1 και ETC2. Αναμένεται μελλοντική υποστήριξη για μορφή ASTC (RGB ή RGBA) και λειτουργίες 4/5 RGBA για BC7 και 4bpp RGBA για PVRTC1.
Οι υφές στη βασική μορφή καταλαμβάνουν 6-8 φορές λιγότερη μνήμη βίντεο και απαιτούν μεταφορά περίπου των μισών δεδομένων από τις τυπικές υφές που βασίζονται στη μορφή JPEG και 10-25% λιγότερο από τις υφές στη λειτουργία RDO. Για παράδειγμα, με μέγεθος εικόνας JPEG 891 KB και υφή ETC1 1 MB, το μέγεθος δεδομένων στη μορφή Basis είναι 469 KB στη λειτουργία υψηλότερης ποιότητας. Κατά την τοποθέτηση υφών στη μνήμη βίντεο, οι υφές JPEG και PNG που χρησιμοποιήθηκαν σε δοκιμές κατανάλωναν 16 MB μνήμης, ενώ οι υφές σε
Βάση απαιτούνται 2 MB μνήμης για μετάφραση σε BC1, PVRTC1 και ETC1, και 4 MB για μετάφραση σε BC7.
Η διαδικασία μετεγκατάστασης υπαρχουσών εφαρμογών στο Basis Universal είναι αρκετά απλή. Αρκεί να επανακωδικοποιήσετε υπάρχουσες υφές ή εικόνες σε νέα μορφή χρησιμοποιώντας το βοηθητικό πρόγραμμα "basisu" που παρέχεται από το έργο, επιλέγοντας το απαιτούμενο επίπεδο ποιότητας. Στη συνέχεια, στην εφαρμογή, πριν από τον κώδικα απόδοσης, πρέπει να αρχικοποιήσετε τον μετακωδικοποιητή βάσης, ο οποίος είναι υπεύθυνος για τη μετάφραση της ενδιάμεσης μορφής στη μορφή που υποστηρίζεται από την τρέχουσα GPU. Ταυτόχρονα, οι εικόνες σε ολόκληρη την αλυσίδα επεξεργασίας παραμένουν συμπιεσμένες, συμπεριλαμβανομένης της φόρτωσης σε συμπιεσμένη μορφή στη GPU. Αντί της προληπτικής διακωδικοποίησης ολόκληρης της εικόνας, η GPU αποκωδικοποιεί επιλεκτικά μόνο τα απαραίτητα μέρη της εικόνας.
Υποστηρίζει την αποθήκευση ετερογενών συστοιχιών υφής (cubemaps), ογκομετρικών υφών, συστοιχιών υφής, επιπέδων mipmap, ακολουθιών βίντεο ή αυθαίρετων θραυσμάτων υφής σε ένα αρχείο. Για παράδειγμα, είναι δυνατό να συσκευάσετε μια σειρά εικόνων σε ένα αρχείο για να δημιουργήσετε μικρά βίντεο ή να συνδυάσετε πολλές υφές χρησιμοποιώντας μια κοινή παλέτα για όλες τις εικόνες και να αφαιρέσετε τυπικά πρότυπα εικόνων. Η υλοποίηση του κωδικοποιητή Basis Universal υποστηρίζει κωδικοποίηση πολλαπλών νημάτων με χρήση OpenMP. Ο μετακωδικοποιητής λειτουργεί προς το παρόν μόνο σε λειτουργία μονού νήματος.
επιπλέον
Σημειώνεται ότι η δυνατότητα ενσωμάτωσης βίντεο με την επακόλουθη επεξεργασία του μόνο στην πλευρά της GPU καθιστά το Basis Universal μια ενδιαφέρουσα λύση για τη δημιουργία δυναμικών διεπαφών χρήστη σε WebAssembly και WebGL, που μπορούν ταυτόχρονα να προβάλλουν εκατοντάδες μικρά βίντεο με ελάχιστο φόρτο CPU. Έως ότου οι οδηγίες SIMD μπορούν να χρησιμοποιηθούν στο WebAssembly με παραδοσιακούς κωδικοποιητές, αυτό το επίπεδο απόδοσης δεν είναι ακόμη δυνατό, επομένως το βίντεο που βασίζεται σε υφή μπορεί να χρησιμοποιηθεί σε περιοχές όπου το συμβατικό βίντεο δεν ισχύει. Αυτήν τη στιγμή προετοιμάζεται για δημοσίευση κώδικας με πρόσθετες βελτιστοποιήσεις για βίντεο, συμπεριλαμβανομένης της δυνατότητας χρήσης
Πηγή: opennet.ru