3.4.7.1.1 Πως επιτυγχάνεται η JPEG κωδικοποίηση

 Το JPEG χρησιμοποιεί μία interframe τεχνική συμπίεσης την DCT (Discrete Cosine Transform). Aυτή η τεχνική έχει χρησιμοποιηθεί και από άλλες μεθόδους κωδικοποίησης όπως το Η.261. Τα βασικά βήματα της βασισμένης στην DCT κωδικοποίησης φαίνονται στην επόμενη εικόνα. Η συζήτηση για JPEG υποθέτει την κωδικοποίηση μιας απλής εικόνας με διαβαθμίσεις του γκρι (grayscale). H JPEG κωδικοποίηση είναι ανεξαρτήτων χρωματικών τμημάτων αν και τα συστήματα για videoconference μπορούν να διαλέξουν να ενώσουν αν θέλουν τις εικόνες σε τμήματα του YUV και μετά να υποδειγματοληπτήσουν τα chrominance στοιχεία. 

 Το πρώτο βήμα της διαδικασίας κωδικοποίησης είναι να εκτελεστεί ο DCT μετασχηματισμός σε τμήματα 8x8 των δειγμάτων. Αυτό το βήμα μετατρέπει την πληροφορία σε συχνότητα. Η έξοδος αυτού του βήματος είναι 64 DCT συντελεστές. Το DCT έχει σαν αποτέλεσμα τη συγκέντρωση των περισσοτέρων πληροφοριών σε ένα μπλοκ 8x8 μέσα στην υψηλότερη αριστερή γωνία. Ο μέσος όρος του μπλοκ ονομάζεται DC στοιχείο και είναι ο υψηλότερος αριστερός συντελεστής. Οι εναπομείναντες συντελεστές ονομάζονται AC συντελεστές. Καμία πληροφορία δεν χάνεται κατά την διάρκεια του DCT βήματος καθώς τα δεδομένα μετατρέπονται μόνο στο επόμενο κομμάτι και μπορούν αργότερα να επανακτηθούν με εκτέλεση του αντίστροφου DCT.

 Το επόμενο βήμα της διαδικασίας κωδικοποίησης είναι ο κβαντισμός (quantization). Οι DCT συντελεστές είναι χωρισμένοι από έναν 8x8 πίνακα κβαντισμένων στοιχείων. Αυτός ο πίνακας έχει σχεδιαστεί για να ελαττώσει το πλάτος αυτών των συντελεστών και να αυξήσει τον αριθμό των μηδενικών συντελεστών. Αυτό το βήμα ποσοτισμού είναι αυτό που συντελεί στις απώλειες της διαδικασίας κωδικοποίησης.

 Μετά τον ποσοτισμό, μία συνεχής ακολουθία bits διαμορφώνεται από το μπλοκ. Ο DC συντελεστής είναι κωδικοποιημένος σαν τη διαφορά μεταξύ του τρέχοντος DC συντελεστή και του DC συντελεστή του προηγούμενου μπλοκ. Οι AC συντελεστές είναι κωδικοποιημένοι σε μία zig-zag σειρά από την ψηλότερη αριστερή πάνω πλευρά του μπλοκ προς την χαμηλότερη δεξιά, όπως φαίνεται και στη ακόλουθη εικόνα. Οι AC συντελεστές είναι run-length και entropy κωδικοποιημένοι. H run-length κωδικοποίηση αφαιρεί τους long-runs συντελεστές με μηδενική αξία, ενώ η entropy (Huffman) κωδικοποιεί την πληροφορία βασιζόμενη σε στατιστικά χαρακτηριστικά. Σχέδια τα οποία είναι στατιστικά περισσότερο πιθανόν να συμβούν είναι κωδικοποιημένα με μικρότερες κωδικές λέξεις. 

 Η διαδικασία της αποκωδικοποίησης είναι βασικά το αντίστροφο της διαδικασίας κωδικοποίησης. Ο αποκωδικοποιητής πρέπει να έχει πρόσβαση στις ίδιες ποσότητες και στους ίδιους εσωτερικούς πίνακες οι οποίοι χρησιμοποιήθηκαν για την κωδικοποίηση των δεδομένων. Η JPEG κωδικοποίηση τυπικά κατορθώνει συμπίεση της τάξεως από 1:10 έως 1:20. Υψηλότερης σχέσης συμπίεση συντελεί στην μεγάλη μείωση της ποιότητας της εικόνας. Ο χρήστης παρόλα αυτά μπορεί να καθορίσει την ποιότητα που επιθυμεί να συμπιέσει τα δεδομένα του.

  Previous Contents Up Next