3.4.7.5 CellB συμπίεση
Η Cell είναι μία δευτερεύουσα τεχνική συμπίεσης αναπτυγμένη από την SUN Microsystems. Υπάρχουν δύο τύποι συμπίεσης του Cell, η CellA και η CellB. H CellA είναι μία ασύμμετρη τεχνική που χρειάζεται περισσότερους υπολογισμούς για την συμπίεση από ότι για την αποσυμπίεση. Η CellB είναι ίδια με την CellA αλλά είναι περισσότερη συμμετρική υπολογιστικά, κάνοντας την χρήση της εφαρμόσιμη σε προγράμματα πραγματικού χρόνου, αφού βασίζεται σε τεχνικές περικοπής block και τεχνικές κβαντισμού διανυσμάτων.
Η CellA δέχεται σαν είσοδο σήμα RGB, ενώ η CellB σήμα YUV. Το καθένα απαιτεί το εύρος και το ύψος της εικόνας διαιρεμένο σε τέσσερα κομμάτια. Η εικόνα που εισάγεται είναι χωρισμένη σε 4x4 ομάδες pixel που oνομάζονται cell. H τεχνική κωδικοποίησης του Cell βασίζεται σε μία μέθοδο που ονομάζεται Block Truncation Coding (BNC). Οι 16 κουκκίδες σε κάθε Cell έχουν κωδικοποιηθεί από μία 16bit μάσκα και δύο 8bit εντάσεις. Η CellA και η CellB διαφέρουν στον τρόπο της έντασης που διαλέχτηκε. Στη CellΑ οι τιμές είναι δείκτες σε έναν πίνακα χρωμάτων, ενώ στη CellB οι τιμές είναι δείκτες σε έναν πίνακα διανυσματικών ποσοτήτων.
Στον κβαντισμό των διανυσμάτων, η εικόνα χωρίζεται σε μπλοκ και οι συντελεστές που περιγράφουν αυτά τα μπλοκ χρησιμοποιούνται ως διανύσματα. Καθώς ο χώρος των διανυσμάτων στον οποίο υπάρχουν τα διανύσματα των μπλοκ δεν είναι κατειλημμένος το ίδιο σε όλα τα σημεία του, ο χώρος των διανυσμάτων αυτών μπορεί να μοιραστεί σε άλλα υποδιαστήματα με σκοπό να παρέχεται η ίδια πιθανότητα ένα τυχαίο διάνυσμα να βρίσκεται σε ένα οποιοδήποτε υποδιάστημα. Ένα πρότυπο διάνυσμα θα χρησιμοποιηθεί για να αντιπροσωπεύει όλα τα μπλοκ των οποίων τα διανύσματα ανήκουν σε ένα συγκεκριμένο υποδιάστημα .
Η εικόνα που ακολουθεί δείχνει τον πυρήνα του CellB και τον κωδικό του με τον οποίο είναι διαμορφωμένος μετά την κωδικοποίηση. Το U/V πεδίο αντιπροσωπεύει το chrominance
![]()
στοιχείο, ενώ το Y/Y δύο luminance. Αν ένα bit pixel έχει σταλεί σε μία bit μάσκα, τότε το pixel έχει αναλυθεί σαν <Y1,U,V>, ενώ αν το bit δεν έχει σταλεί τότε το pixel έχει αναλυθεί σε <Υ2,U,V>. Αυτό σημαίνει πως για κάθε κωδικοποιημένο cell υπάρχουν δύο πιθανά στοιχεία luminance και ένα πιθανό στοιχείο chrominance. H CellB κωδικοποιεί 16 pixels (384 bits) χρησιμοποιώντας 32 bits. Αυτό είναι σχέση συμπίεσης 1:12.
Η CellB είναι βασικά μία Intraframe τεχνική κωδικοποίησης. Παρόλα αυτά, υποστηρίζει μία απλή μορφή της Interframe κωδικοποίησης καθορίζοντας έναν κωδικό παράλειψης ο οποίος δηλώνει ότι, ένας καθορισμένος αριθμός cell θα πρέπει να παραληφθεί, εννοώντας ότι η τιμή τους δεν έχει μεταβληθεί.
Ένα πλεονέκτημα της Cell κωδικοποίησης είναι ότι η διαδικασία αποκωδικοποίησης είναι όμοια με την διαδικασία εμφάνισης ενός χαρακτήρα σε ένα framebuffer. Η διαδικασία εμφάνισης του χαρακτήρα για ένα framebuffer παίρνει σαν είσοδο ένα foreground χρώμα, ένα background χρώμα και την ενδεικτική μάσκα για ποιο χρώμα θα χρησιμοποιήσει στο pixel. Από την στιγμή που αυτή η λειτουργία είναι πολύ σημαντική σε ένα παραθυρικό σύστημα συχνά εκτελείται σαν ένα μέρος των συστημάτων των γραφικών επιταχυντών. Για τον λόγο αυτό η Cell κωδικοποίηση αποκτά πλεονεκτήματα εξαιτίας του υπάρχοντος hardware για κάρτες γραφικών, αφού έτσι γλυτώνει το μεγαλύτερο στάδιο της αποκωδικοποίησης.
![]()
Όπως βλέπουμε στο σχήμα, κάθε κόμβος έχει έναν φορέα αναπαράστασης, όπως επίσης και οι κλάδοι έχουν από έναν. Μπορούμε συνεπώς να χρησιμοποιήσουμε μόνο κωδικοποίηση δευτέρου επιπέδου με την βοήθεια του κεντρικού φορέα εκείνου του κόμβου.