Κυκλοφορία του rav1e 0.3, ενός κωδικοποιητή AV1 στο Rust

πήρε θέση ζήτημα rav1e 0.3, ένας κωδικοποιητής μορφής κωδικοποίησης βίντεο υψηλής απόδοσης AV1, που αναπτύχθηκε από τις κοινότητες Xiph και Mozilla. Ο κωδικοποιητής είναι γραμμένος σε Rust και διαφέρει από τον κωδικοποιητή αναφοράς libaom αυξάνοντας σημαντικά την ταχύτητα κωδικοποίησης και αυξημένη προσοχή στην ασφάλεια. Κωδικός έργου διανέμονται από υπό την άδεια BSD.

Υποστηρίζονται όλες οι κύριες λειτουργίες AV1, συμπεριλαμβανομένης της υποστήριξης
εσωτερικά και εξωτερικά κωδικοποιημένα πλαίσια (ενδο- и μεταξύ-πλαίσια), υπερμπλοκ 64x64, υποδειγματοληψία χρωμάτων 4:2:0, 4:2:2 και 4:4:4, κωδικοποίηση βάθους χρώματος 8, 10 και 12 bit, παραμόρφωση βελτιστοποίησης RDO (βελτιστοποίηση ρυθμού παραμόρφωσης), διάφορες λειτουργίες για την πρόβλεψη αλλαγών μεταξύ πλαισίων και τον εντοπισμό μετασχηματισμών, τον έλεγχο του ρυθμού ροής και την ανίχνευση περικοπής σκηνής.

Η μορφή AV1 είναι αισθητή ξεπερνάει H.264 και VP9 ως προς τις δυνατότητες συμπίεσης, αλλά λόγω της πολυπλοκότητας των αλγορίθμων που τα υλοποιούν απαιτεί πολύ περισσότερος χρόνος για κωδικοποίηση (στην ταχύτητα κωδικοποίησης, το libaom βρίσκεται εκατοντάδες φορές πίσω από το libvpx-vp9 και χιλιάδες φορές πίσω από το x264).
Ο κωδικοποιητής rav1e προσφέρει 11 επίπεδα απόδοσης, τα υψηλότερα από τα οποία παρέχουν ταχύτητες κωδικοποίησης σχεδόν σε πραγματικό χρόνο. Ο κωδικοποιητής είναι διαθέσιμος τόσο ως βοηθητικό πρόγραμμα γραμμής εντολών όσο και ως βιβλιοθήκη.

Στη νέα έκδοση:

  • Προτείνεται ταχύτερη λειτουργία κωδικοποίησης Ταχύτητα 10;
  • Το μέγεθος των δυαδικών συγκροτημάτων έχει μειωθεί (στην πλατφόρμα x86_64/Linux η βιβλιοθήκη καταλαμβάνει περίπου 3MB).
  • Ο χρόνος συναρμολόγησης μειώθηκε κατά περίπου 14%.
  • Προστέθηκε φίλτρο πολλαπλών νημάτων για αφαίρεση μπλοκ τεχνουργημάτων από βίντεο (απομπλοκή).
  • Για την αρχιτεκτονική x86_64, έχουν εφαρμοστεί πρόσθετες βελτιστοποιήσεις χρησιμοποιώντας οδηγίες SIMD και η χρήση της αυτόματης διανυσματοποίησης έχει επεκταθεί.
  • Ο αριθμός των λειτουργιών εκχώρησης μνήμης έχει μειωθεί κατά 1/6.
  • Στο RDO (Rate-distortion optimization), η λογική για την καταστολή των παραμορφώσεων εντός του πλαισίου έχει βελτιωθεί.
  • Ορισμένες πράξεις έχουν μετακινηθεί από τη χρήση αριθμητικής κινητής υποδιαστολής σε υπολογισμούς ακεραίων.
  • Η ποιότητα κωδικοποίησης στο δεύτερο επίπεδο ταχύτητας έχει βελτιωθεί κατά 1-2%.
  • Προστέθηκε νέο φίλτρο πρόβλεψης κατεύθυνσης κίνησης (Intra edge).
  • Προστέθηκε η επιλογή "-S" (--switch-frame-interval) για τον προσδιορισμό του διαστήματος εναλλαγής μεταξύ των καρέ.
  • Προστέθηκε υποστήριξη κατασκευής για την πλατφόρμα wasm32-wasi (Διεπαφή συστήματος WebAssembly).

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο