Η ανάγκη για αποδοτική συμπίεση

Ένα ασυμπίεστο βίντεο 1080p στα 60Hz απαιτεί περίπου 370 MB/sec, καθιστώντας την αποθήκευση και τη μετάδοσή του πρακτικά αδύνατη. Το H.264 επιλύει αυτό το πρόβλημα μετατρέποντας τα δεδομένα σε μια εξαιρετικά συμπιεσμένη μορφή, διατηρώντας την οπτική πιστότητα μέσω έξυπνων αλγορίθμων.

Χωρική συμπίεση: Μετασχηματισμός και κβαντισμός

Η διαδικασία ξεκινά με τη μεταφορά των δεδομένων από το πεδίο των pixel (x-y coordinates) στο πεδίο συχνοτήτων (frequency domain). Εκεί, οι λεπτομέρειες υψηλής συχνότητας —που αντιστοιχούν σε μικρές οπτικές λεπτομέρειες— απορρίπτονται μέσω κβαντισμού (quantization). Παράλληλα, η υποδειγματοληψία χρωματικότητας (chroma subsampling) μειώνει το εύρος ζώνης (bandwidth) για τα χρώματα, καθώς το ανθρώπινο οπτικό σύστημα είναι πολύ πιο ευαίσθητο στη φωτεινότητα (luminance) παρά στη χρωματικότητα (chrominance).

Χρονική συμπίεση: Motion compensation

Η πραγματική ισχύς του H.264 έγκειται στην εκμετάλλευση της χρονικής συσχέτισης μεταξύ των καρέ. Αντί να αποθηκεύεται κάθε καρέ ως ανεξάρτητη εικόνα, ο αλγόριθμος χρησιμοποιεί:

  • I-frames: Πλήρεις εικόνες αναφοράς.
  • P-frames & B-frames: Καρέ που περιέχουν μόνο διανύσματα κίνησης (motion vectors) και διαφορές από τα προηγούμενα ή επόμενα καρέ.

Αυτή η προσέγγιση επιτρέπει την ανακατασκευή της κίνησης με ελάχιστα δεδομένα, εξηγώντας γιατί η αναζήτηση (scrubbing) σε ένα βίντεο απαιτεί υπολογιστική ισχύ για την επαναφορά της κατάστασης από το πλησιέστερο I-frame.

Τελική κωδικοποίηση

Μετά την απώλεια των μη απαραίτητων δεδομένων, το τελικό ρεύμα δεδομένων περνά από έναν entropy encoder. Αυτός ο lossless αλγόριθμος συμπιέζει περαιτέρω τα δεδομένα, εκμεταλλευόμενος στατιστικές επαναλήψεις, ολοκληρώνοντας μια διαδικασία που μειώνει τον όγκο των δεδομένων κατά χιλιάδες φορές.