Πέμπτη 18 Μαρτίου 2010

ΕΝΑ ΕΚΠΛΗΚΤΙΚΟ ΑΡΘΡΟ ΓΙΑ ΤΗΝ ΝΕΑ ΤΕΧΝΟΛΟΓΙΑ ΤΩΝ ΨΗΦΙΑΚΩΝ ΕΓΓΡΑΦΩΝ

Από το αναλογικό βίντεο στο AVC-H264
Κατά τη διάρκεια των τελευταίων ετών, οι εξελίξεις που σημειώθηκαν σε ένα
ευρύ φάσμα επιστημών ήταν καταιγιστικές και τα τεχνολογικά βήματα αλματώδη.
Καταλυτικό ρόλο στην πρόοδο αυτή έπαιξε η συνειδητοποίηση του γεγονότος ότι η
τεχνολογία μπορεί να διαδραματίσει ηγετικό ρόλο στην αέναη προσπάθεια για
βελτίωση του βιοτικού επιπέδου του ανθρώπου, στην κάλυψη βασικών αναγκών του
και στην άρση κοινωνικών , οικονομικών και πολιτιστικών ανισοτήτων.
Καθοριστική ήταν η σημασία της ραγδαίας εξάπλωσης των υπολογιστών
προσωπικής χρήσης καθώς και φορητών συσκευών , που συνετέλεσαν στην
εξοικείωση των μη ειδικευμένων ανθρώπων με την τεχνολογία, στην κατανόηση των
ευεργετικών της ιδιοτήτων και στην ανατροπή προκαταλήψεων και δοξασιών που
θεωρούσ αν ότι η τεχνολογία, και η επιστήμη γενικότερα, μπορούν μόνο να βλάψουν
την ανθρωπότητα ή να χρησιμοποιηθούν για στρατιωτικούς σκοπούς . Άμεσο
αποτέλεσμα αυτής της αλλαγής νοοτροπίας ήταν η στροφή των ισχυρών δυνάμεων ,
αρχικά και στη συνέχεια των μικροτέρων κρατών , στην έρευνα σχετικά με τους
τρόπους που θα μπορούσε η τεχνολογία να ανταποκριθεί στις επιταγές της κοινωνίας
για ελεύθερη, ισότιμη και απεριόριστη πρόσβαση σε οποιοδήποτε είδος
πληροφορίας .
Στα πρώτα στάδια, η έρευνα γινόταν σε ανεξάρτητες επιστημονικές περιοχές
με αποκλειστικό στόχο τη βελτίωση των εργαλείων , των μεθόδων και εν γένει των
υπηρεσιών που προσέφερε κάθε επιστημονικός κλάδος . Για παράδειγμα, αρχικά η
επιστήμη των υπολογιστών ήταν σχετικά αποκομμένη με το χώρο των
τηλεπικοινωνιών . Στην πορεία όμως έγινε σαφές ότι θα προέκυπταν καλύτερα
αποτελέσματα, εάν δημιουργείτο ένα πλαίσιο κοινής αναφοράς και συνδυασμένων
ενεργειών , μιας και οι περιοχές με τις οποίες ασχολείτο κάθε κλαδος πολλές φορές
αλληλοεπικαλύπτονταν . Έτσι συστθηκαν ομάδες έρευνας από πολλές ετερογενείς ,
φαινομενικά , επιστημονικές περιοχές , ώστε να επιτευχθεί η πολυπόθητη σύγκλιση
των τεχνολογιών διαφορετικών χώρων και να αναβαθμιστούν σημαντικά οι
προσφερόμενες υπηρεσίες .
Αξίζει να αναφερθεί ότι τα αποτελέσματα των ερευνών αυτών έτυχαν ευρείας
αποδοχής ήδη από τα πρώτα σταδια, καθώς είχαν μεγάλη ανταπόκριση από το κοινό
στο οποίο απευθύνοταν . Για παράδειγμα, οι παιχνιδομηχανές (game consoles)
μετεξελίχθηκαν από απλά μηχανήματα διασκέδασης ατόμων μικρής , κυρίως ηλικίας ,
σε μηχανήματα διασκέδασης ολόκληρης της οικογένειας (entertainment consoles).
Βεβαίως, πρέπει να σημειωθεί ότι η ευρεία απήχηση των νέων προϊόντων
εκμεταλλεύθηκε τις καταναλωτικές τάσεις που,ομολογουμένως, επικρατούν στις
φιλελεύθερες κοινωνίες .
Μάλιστα, η ικανότητα της τεχνολογίας να ανταποκριθεί στις τάσεις της
αγοράς , οδήγησε σε μια διόγκωση των επιθυμιών της τελευταίας , με αποτέλεσμα να
υπάρχει πλέον ζήτηση για προϊόν τα που πριν λίγα χρόνια αποτελούσαν αντικείμενα
επιστημονικής φαντασίας . Έτσι, δεν ξενίζει, για παρά δειγμα, πλεόν το γεγονός ότι
είναι ευρέως διαδεδομένα κινητά τηλέφωνα που πέρα από φωνή υποστηρίζουν
εικόνες ή ακόμα και εικονοσειρές , ή «έξυπνες » οικιακές συσκευές που λαμβάνουν
αποφάσεις με αυτόνομα συστήματα λογικής .
Περίοπτη θέση στις ανάγκες και απαιτήσεις του ανθρώπου καταλαμβάνει η
μετάδοση πληροφορίας , οποιασδήποτε μορφής . Δεν πρέπει να προκαλεί εντύπωση,
λοιπόν , ότι η πληροφορία χαρακτηρίζεται από πολλούς ως το πλέον πολύτιμο αγαθό.
Αρχικά ξεκίνησε ως μετάδοση απλού κειμένου, γρήγορα όμως φάνηκε ότι δεν ήταν
αρκετή, ώστε να ανταποκριθεί στις απαιτήσεις . Έτσι, αργότερα προστέθηκε ήχος ,
εικόνα και λίγο αργότερα και εικονοσειρές (video) . Οι εικόνες και πολύ περισσότερο οι
εικονοσειρές , στην αρχική τους μορφή δεν είναι εύκολο να μεταδοθούν λόγω της
κακής ποιότητας των δικτύων μετάδοσης , αλλά και του μεγάλου μεγέθους της
ασυμπίεστης μορφής τους . Για να γίνουν οι εικόνες κατάλληλες προς μετάδοση
πρέπει πρώτα να συμπιεστούν , δηλαδή να μειωθεί το μέγεθος του αρχείου.
Έτσι, για την αποδοτικότερη και οικονομικότερη μετάδοση αναπτύχθηκαν
μέθοδοι κωδικοποίησης και προστασίας της πληροφορίας από λάθη στα κανάλια
επικοινωνιών . Ειδικότερα, για τη μετάδοση ήχου, εικόνας και εικονοσειρών
αναπτύχθηκαν μέθοδοι συμπίεσης που παρέχουν είτε τέλεια ανακατασκευή (lossless
coding) είτε ατελή ανακατασκευή (lossy coding). Τα πιο γνωστά παραδείγματα
τέτοιων αλγορίθμων είναι το πρότυπο MP3 (MPEG-1 Audio Layer 3) για τη
συμπίεση ήχου, το πρότυπο JPEG (Joint Photographic Experts Group) που έχει
καθιερωθεί για τη συμπίεση εικόνας και τα πρότυπα MPEG-1/2 (Moving Pictures
Experts Group) για τη συμπίεση και μετάδοση εικονοσειρών .
Από την πλευρά των τηλεπικοινωνιών έγιναν προσπάθειες για αύξηση της
χωρητικότητας του καναλιού. Σε πολλές περιπτώσεις οι χάλκινες γραμμές στα
τηλεφωνικά δίκτυα και τα ομοαξονικά καλώδια στα τοπικά δίκτυα υπολογιστών
(LAN - Local Area Networks) αντικαθίστανται από οπτικές ίνες , οι οποίες
παρουσιάζουν μεγαλύτερη χωρητικότητα - αξιοπιστία. Επιπλέον , εισάγονται και νέες
τεχνολογίες όπως το ADSL (Asymmetric Digital Subscriber Line), που ανοίγουν νέες
προοπτικές στην υϊοθέτηση εφαρμογών που χρησιμοποιούν μετάδοση εικονοσειρών .
Μία βασική διαφορά του τηλεφωνικού δικτύου με τα δίκτυα υπολογιστών ,
ανεξάρτητα με το μέσο μετάδοσης , είναι ότι στο μεν πρώτο χρησιμοποιείται
μεταγωγή κυκλώματος (circuit switch), ενώ στο δεύτερο μεταγωγή πακέτου (packet
switch). Μεταγωγή κυκλώματος σημαίνει ότι κατά τη διάρκεια μίας συνδιάλεξης
δεσμεύεται ένα φυσικό τηλεπικοινωνιακό κανάλι καθ’ όλη τη διάρκεια της
συνδιάλεξης και απελευθερώνεται μόνο μετά τη λήξη της . Από την άλλη στη
μεταγωγή πακέτου η εκάστοτε πληροφορία διαχωρίζεται σε πακέτα και τα οποία
μεταδίδονται από διάφορες τηλεπικοινωνιακές οδούς . Ένας κίνδυνος που ενυπάρχει
στη δεύτερη περίπτωση είναι αυτός της απώλειας /απόρριψης κάποιων πακέτων . Αυτό
συμβαίνει είτε λόγω μεγάλου φόρτου του δικτύου είτε γιατί υπήρξε αποτυχία
μετάδοσης ενός πακέτου μεταξύ διαδρομών διαφορετικής χωρητικότητας . Έτσι
προκύπτει η ανάγκη για την ύπαρξη ενός μηχανισμού που να μπορεί να ελέγχει και
να διορθώνει τα λάθη που λαμβάνουν χώρα κατά τη μετάδοση.
Σε μονόδρομα συστήματα η μετάδοση γίνεται αυστηρά προς την μια
κατεύθυνση. Ο έλεγχος των λαθών σε τέτοιες περιπτώσεις γίνεται με τους κώδικες
πρόσθειας διόρθωσης λαθών (FEC – Forward Error Correction), που αυτόματα
ανιχνεύουν και διορθώνουν τα λάθη. Αυτοί οι κώδικες εισάγουν κάποιον πλεονασμό
πληροφορίας και είναι ικανοί να διορθώνουν ή να επισημαίνουν τα λάθη που
παρουσιάζονται στο δίκτυο κατά τη μετάδοση, ώστε η λανθασμένη πληροφορία να
μην χρησιμοποιείται από τον αποκωδικοποιητή κατά την ανακατασκευή της εικόνας .
Έτσι αν η επίδραση του θορύβου δεν είναι στην ζωτική πληροφορία διατηρείται
κάποια ποιότητα και μπορεί να αναγνωριστεί το περιεχόμενο της εικόνας . Όταν οι
εφαρμογές δεν είναι πραγματικού χρόνου, τότε μπορεί να χρησιμοποιηθεί η τεχνική
της αυτόματης αίτησης επανάληψης (ARQ – Automatic Repeat Request), σύμφωνα
με την οποία ο παραλήπτης ενημερώνει τον αποστολέα για τυχόν απώλειες και
αιτείται την αναμετάδοση των χαμένων πακέτων .

Στα πλαίσια αυτού του άρθρου παρουσιάζεται το νεό πρότυπο κωδικοποίησης
εικονοσειρών , το Η.264 (AVC), και ααναφέρονται τεχνικές που καθιστούν τη μετάδοση μέσω
οποιουδήποτε δικτύου ανθεκτική σε λάθη και απώλειες . Πρέπει να σημειωθεί εδώ ότι
δεν προυπάρχει μελέτη της φύσης των δικτύων που χρησιμοποιούνται, απλώς θεωρήθηκε ότι χαρακτηρίζονται από
κάποια απώλεια πακέτων, καθώς εξετάζετε το θέμα της μετάδοσης από την
πλευρά της επεξεργασίας της πληροφορίας και όχι από την πλευρά των
τηλεπικοινωνιακών υποδομών . Σύντομη ανασκόπηση των προηγουμένων προτύπων κωδικοποίησης
εικονοσειρών και ανάλυση του νεοσύστατου προτύπου, Η.264. Αναλύονται θέματα που σχετίζονται με τη μετάδοση, όπως
είναι οι εφαρμογές στις οποίες θα χρησιμοποιηθεί η μετάδοση, τα πρωτόκολλα
μεταφοράς , οι τεχνικές κωδικοποίησης πηγής και καναλιού και οι τεχνικές για τη
μείωση της επίπτωσης των λαθών σε περίπτωση που δε μπορέσουν να αποτραπούν .
Τέλος παρουσιάζεται η μέθοδος που αναπτύχθηκε για την
κωδικοποίηση της εικονοσειράς και την προστασία της από λάθη που μπορεί να
συμβούν κατά τη μετάδοση. Η αποτελεσματικότητα της μεθόδου αποδεικνύεται με
αποτελέσματα που εξήχθησαν έπειτα από εκτενείς προσομοιώσεις.

Οι δύο σημαντικότεροι οργανισμοί τυποποίησης που αναπτύσσουν πρότυπα
κωδικοποίησης είναι ο διεθνής οργανισμός ITU-T (International Telecommunication
Union – Telecommunication Standardisation Sector, Διεθνής Ένωση
Τηλεπικοινωνιών – Τομέας Τυποποίησης Τηλεπικοινωνιών ) και ο οργανισμός
ISO/IEC-JTC (International Standardisation Organisation / International
Electrotechnical Commisssion - Joint Technical Committee, Διεθνής Οργανισμός
Τυποποίησης / Διεθνής Επιτροπή Ηλεκτροτεχνίας – Κοινή Τεχνική Επιτροπή). Τα
πρότυπα του οργανισμού IU-T συμβολίζονται ομως Η.26x (πχ Η.261, Η.262, Η.263,
Η.263+, Η.263++ και Η.264), ενώ τα πρότυπα του οργανισμού ISO/IEC
συμβολίζονται ως MPEG-x (πχ MPEG-1, MPEG-2, MPEG-4). Μέχρι πρότινος οι
δύο οργανισμοί εργάζονταν ανεξάρτητα και οι H.26x συστάσεις προορίζονταν για
εφαρμογές πραγματικού χρόνου, ενώ τα MPEG-x πρότυπα για εφαρμογές μη
πραγματικού χρόνου, με μόνη εξαίρεση το πρότυπο Η.262/MPEG-2.
Η εξέλιξη των τεχνολογιών τα τελευταία χρόνια στον τομέα της πρόσβασης
σε δίκτυα, όπως για παράδειγμα το καλωδιακό modem ή οι υπηρεσίες xDSL (Digital
Subcriber Line – Ψηφιακή Γραμμή Συνδρομητή), δημιούργησαν την ανάγκη για ένα
νέο αποδοτικότερο πρότυπο κωδικοποίησης , το οποίο να εισάγει μικρή καθυστέρηση
στις διαδραστικές εφαρμογές (πχ εικον οτηλέφωνο), αλλά και μεγάλο βαθμό
συμπίεσης για τις μη διαδραστικές εφαρμογές (πχ αποθήκευση σε ψηφιακά μέσα,
streaming κλπ). Ειδική μέριμνα απαιτείται για τις εφαρμογές που χρησιμοποιούνται
σε δίκτυα που είναι επιρρεπή σε λάθη, όπως σε ασύρματα κανάλια (όπου τα
σφάλματα εκδηλώνονται ως αντιστροφή ή διαγραφή κάποιων bit – bit errors) ή
ακόμα και το Διαδίκτυο (όπου υπάρχει απώλεια πακέτων ).
‘Ετσι, σχετικά πρόσφατα, οι δύο οργανισμοί αποφάσισαν να εργαστούν μαζί
με στόχο ένα νεοσύστατο πρότυπο, το οποίο όμως είχε ξεκινήσει να αναπτύσσεται
από την ITU-T ω ς Η.26L. Το Δεκέμβριο του 2001 δημιουργήθηκε μια κοινή ομάδα
εργασίας , η JVT (Joint Video Team), με αποτέλεσμα, το Μάρτιο του 2003, το
H.264/AVC να ολοκληρωθεί και να εγκριθεί από την ITU-T το Μάιο του 2003.

Το πρότυπο Η.261 παρουσιάσθηκε το 1990 με στόχο να επιτρέψει την
εικονοδιάσκεψη με τη χρήση 1-30 καναλιών ISDΝ (Integrated Serives Digital
Network – Ψηφιακό δίκτυο ενοποιημένων υπηρεσιών
Σε έναν τέτοιο κωδικοποιητή, πριν την εφαρμογή του απαραίτητου
μετασχηματισμού για την αποσυσχέτιση πληροφορίας , η εικόνα διαιρείται σε μπλοκ
μεγέθους 16x16 εικονοστοιχείων που καλούνται macroblock (Μ Β) και αποτελούνται
από 4 τμήματα φωτεινότητας και 2 τμήματα χρωματικότητας, ένα για τη συνιστώσα
Cr και ένα για τη συνιστώσα Cb (4:2:2). Αυτό συμβαίνει, επειδή το ανθρώπινο σύστημα
όρασης είναι λιγότερο ευαίσθητο στη χρωματική πληροφορία από ό,τι στη
φωτεινότητα, και έτσι οι χρωματικές συνιστώσες υποδειγματοληπτούνται και στην
οριζόντια και στην κατακόρυφη διεύθυνση

Το Η.263 βαζίζεται στο ίδιο πλαίσιο με το Η.261. Ωστόσο, η ανάπτυξη νέων
μεθόδων κωδικοποίησης και η εξάπλωση υπολογιστικών συστημάτων υψηλών
επιδόσεων , επέτρεψε στην ITU-Τ να ενσωματώσει στο νέο πρότυπο Η.263 πιο
αποδοτικούς αλγορίθμους , με το κόστος όμως της αυξημένης πολυπλοκότητας . Η
ανάπτυξη του προτύπου έγινε σε τρεις φάσεις : η πρώτη ολοκληρώθηκε στα τέλη του
1995, η δεύτερη, που ονομάστηκε Η.263+ και αποτελούσε επέκταση του
προηγουμένου προτύπου, ολοκληρώθηκε το 1997 και η τρίτη, η Η.263++, εγκρίθηκε
στα τέλη του 2000.
Οι κύριες διαφορές του Η.263 σε σχέση με το Η.261 είναι οι εξής :
1. Half-pixel motion compensation
Στο Η.263, τα διανύσματα κίνησης επιτρέπεται να αναφέρονται σε
θέσεις ανάμεσα στα εικονοστοιχεία (half-pixel positions). Αυτό το
χαρακτηριστικό προσέφερε σημαντική βελτίωση στις περιοχές που
παρουσιάζουν υψηλή ανάλυση. Για τον υπολογισμό των τιμών στις
ενδιάμεσες περιοχές εφαρμόζεται διγραμμική παρεμβολή (απλός
υπολογισμός μέσου όρου). Ως πρόβλεψη για κάθε συνιστώσα του
διανύσματος κίνησης χρησιμοποιείται το μεσαίο διάνυσμα κινσεων των
τριών γειτονικών διανυσμάτων .
2. Βελτιωμένη κωδικοποίηση μεταβλητού μήκους
Για την αποτελεσματικότερη κωδικοποίηση των συντελεστών DCT
χρησιμοποιείται τριδιάστατος πίνακας κωδικών λέξεων μεταβλητού μήκους .
Σε αντίθεση με το Η.261, όπου κωδικοποιούνται σύμβολα της μορφής
(μήκος _διαδρομής , τιμή ) και αποστέλλεται ένα σήμα ΕΟΒ στο τέλος κάθε
μπλοκ, στο Η.263 το σήμα ΕΟΒ ενσωματώνεται στις κωδικές λέξεις . Τα
σύμβολα που κωδικοποιούνται είναι της μορφής (τελευταίος ,
μήκος _διαδρομής , επίπεδο), όπου ο όρος τελευταίος υποδηλώνει εάν ο
συντελεστής είναι ο τελευταίος μη μηδενικός συντελεστής στο εξεταζόμενο
τμήμα.
3. Υποστήριξη για διαμορφώσεις Sub-QCIF, QCIF, CIF, 4CIF, 16CIF.
Πέρα από αυτές τις αλλαγές , το Η.263 εισήγαγε και αρκετές καινοτομίες :
1. Τα διανύσματα κίνησης επιτρέπεται να αναφέρονται σε περιοχές εκτός της
εικόνας : η νέα αυτή δυνατότητα έχει ως αποτέλεσμα να
βελτιώνεται η ποιότητα της εικόνας στις περιπτώσεις που υπάρχει κίνησης της
κάμερας ή κίνηση στο άκρο της εικόνας . Το σήμα πρόβλεψης για ένα διάνυσμα
κίνησης που αν αναφέρεται σε περιοχές εκτός μιας εικόνας παράγεται
επαναλβάνοντας τα εικονοστοιχεία στο άκρο της εικόνας . Το εύρος του
διανύσματος κίνησης τώρα βρίσκεται στο εύρος [-31.5, 31.5].
2. Αριθμητική κωδικοποίηση βασισμένη στα συντακτικά στοιχεία:
στο Η.263 αντί της κωδικοποίησης μεταβλητού μήκους (που χρησιμοποιείται
στο Η.261), χρησιμοποιείται αριθμητική κωδικοποίησh παρέχοντας τη
δυνατότητα για μείωση του απαιτούμενου ρυθμού bit κατά 4% για τις εικόνες
τύπου Ρ (Progressive) και κατά 10% για τις εικόνες τύπου Ι (Interlaced). Ωστόσο η χρήση της
συγκεκριμένης δυνατότητας αυξάνει την πολυπλοκότητα στην πλευρά του
αποκωδικοποιητή κατά 50% περίπου.
3. Προηγμένοι τρόποι πρόβλεψης: οι προηγμένοι τρόποι
πρόβλεψης επιτρέπουν μη περιορισμένα διανύσματα κίνησης . Με αυτόν τον
τρόπο μπορεί να χρησιμοποιηθεί αντιστάθμιση κίνησης επικαλυμμένων
τμημάτων (Ο BMC – Overlapped Block Motion Compensation) για την πρόβλεψη
των συνιστωσών φωτειντητας μιας εικόνας , κάτι που βελτιώνει σημαντικά την
πρόβλεψη και μειώνει φαινόμενα που είνaι γνωστά ως artifacts. Κάθε
εικονοστοιχείο σε ένα μπλοκ 8x8 είναι ένα άθροισμα (με κάποιους συντελεστές
βάρους ) τριών τιμών που έχουν προβλεφθεί από τρία διανύσματα κίνησης : το
διάνυσμα του τρέχοντος ΜΒ, και των διανυσμάτων κίνησης των δύο ΜΒ που
βρίσκονται πιο κοντά στο τρέχον 8x8 τμήμα. Επίσης υπάρχει η δυνατότητα να
χρησιμοποιηθούν 4 διανυσμάτων κίνησης για κάθε ΜΒ, ένα για κάθε τμήμα
φωτεινότητας . Αυτό επιτρέπει καλύτερη μοντελοπoίηση και αναπαράσταση της
κίνησης σε πραγματικές εικόνες . Ωστόσο, εξαρτάται από τον κωδικοποιητή να
επιλέξει σε ποια ΜΒ το κέρδος, που προκύπτει από τη χρήση τεσσάρων
διανυσμάτων κίνησης, είναι ικανόνα αντισταθμίσει τα επιλέον bit που θα
χρειαστούν για την κωδικοποίησή τους .

Η .263++
Το πρότυπο Η.263++ αποτελεί επέκταση του Η.263 και παρέχει νέα εργαλεία
για την κωδικοποίηση εικονοσειρών , τα οποία παρουσιάζονται παρακάτω εν
συντομία.
1. Προηγμένη κωδικοποίηση τύπου intra
Η προηγμένη κωδικοποίηση τύπου intra (advanced intra coding)
επιτρέπει την κωδικοποίηση τύπου intra ενός μπλοκ χρησιμοποιώντας ως πρόβλεψη
το τμήμα που βρίσκεται πάνω ή αριστερά από το τρέχον τμήμα, αρκει το τμήμα αυτό
να έχει κωδικοποιηθεί ως intra. Με την ενσωμάτωση αυτού του χαρακτηριστικού
επιτυγχάνεται μειώσης του παραγόμενου ρυθμού bit κατά ένα ποσοστό της τάξης του
10-15%.
2. Deblocking filter
Ένα προσαρμόσιμο φίλτρο εφαρμόζεται, ώστε να ελαττώσει η
παραμόρφωση στα άκρα των μπλοκ. Η λειτουργία του φίλτρου αυτού περιγράφεται
εκτενέστερα παρακάτω , στην περιγραφή της σύστασης Η.264.
3. Συμπληρωματικές Πληροφορίες Ενίσχυσης
Οι Συμπληρωματικές Πληροφορίες Ενίσχυσης (SEI – Supplemental
Enhancement Information) μπορούν να χρησιμοποιηθούν δίνοντας πληροφορίες για
εξωτερική χρήση από κάποιο άλλο πρόγραμμα. Επίσης μπορούν να δηλώσουν
ενισχυμένες ικανότητες προβολής, όπως για παρά δειγμα ακινητοποίηση της εικόνας
(freezing) και μεγέθυνση.
4. Βελτιωμένος τρόπος κωδικοποίησης εικόνων τύπου ΡΒ
Η τεχνική αυτή επιτρέπει τον υπολογισμό των εικονοστοιχείων ενός μπλοκ μιας
εικόνας τύπου ΡΒ με πρόβλεψη διπλής κατεύθυνσης .

Ο αυξανόμενος αριθμός των εφαρμογών που περιλαμβάνουν την
αναπαραγωγή και μετάδοση εικονοσειρών και η αναπτυσσόμενη δημοτικότητα της
τηλεόρασης υψηλής ευκρίνειας δημιούργησαν ανάγκες για πρότυπα που προσφέρουν
καλύτερη απόδοση στην κωδικοποίηση. Επιπρόσθετα, άλλα μέσα μετάδοσης όπως το
καλωδιακό Modem, το xDSL ή το UMTS προσφέρουν πολύ μικρότερους ρυθμούς
μετάδοσης από ό,τι ένα κανάλι ευρείας μετάδοσης (broadcast channel), με
αποτέλεσμα να δημιουργηθεί ανάγκη για ενισχυμένη και αποδοτικότερη
κωδικοποίηση. Για αυτούς τους λόγους κυρίως δημιουργήθηκε το πρότυπο Η.264,
που έχει στόχο να διπλασιάσει το βαθμό συμπίεσης (δηλαδή να μειώσει στο μισό το
ρυθμό bit που απαιτείται για τον ίδιο βαθμό ποιότητας ).
Ένα τυπικό σύστημα κωδικοποίησης /αποκωδικοποίησης, όπου φαίνεται ότι
όπως και με τα προηγούμενα πρότυπα, μόνο οι λειτουργίες του αποκωδικοποιητή
έχουν προτυποποιηθεί, εισάγοντας περιορισμούς στη σύνταξη της ακολουθίας bit
έτσι, ώστε κάθε αποκωδικοποιητής που είναι συμβατός με το πρότυπο να παράγει
την ίδια έξοδο όταν λάβει μια ακολουθία συμβατή με το πρότυπο. Με αυτόν τον
τρόπο δίνεται η δυνατότητα βελτιστοποίησης στον κωδικοποιητή ανάλογα με την
εφαρμογή στην οποία καλείται να ανταποκριθεί.
Επιπλεόν μια καινοτομία που εισάγει το Η.264 είναι ο νοητός διαχωρισμός
του κωδικοποιητή σε δύο βασικά στρωματα: το στρώμα κωδικοποίησης
εικονοσειρών (VCL – Video Coding Layer), το οποίο είναι υπέυθυνο για την
αναπαράσταση και κωδικοποίηση της εικονοσειράς , και το στρώμα δικτύου (NAL -
Network Abstraction Layer), που αναλαμβάνει να προσαρμόσει, παράγοντας τις
απαραίτητες πληροφορίες, την αναπαράσταση του στρώματος VCL στο μέσο
μετάδοσης ή αποθήκευσης που θα χρησιμοποιηθεί.

Μονάδες NAL
Τα κωδικοποιημένα δεδομένα οργανώνονται σε μονάδες NAL, καθεμία από
τις οποίες είναι ουσιαστικά ένα πακέτο που περιέχει ακέραιο πλήθος bytes. Το πρώτο
byte κάθε μονάδας NAL είναι η «επικεφαλίδα» (header) και περιέχει μια ένδειξη του
τύπου των δεδομένων της μονάδας , ενώ τα υπόλοιπα byte περιέχουν τα δεδομένα
(payload). Τα δεδομένα σε μια μονάδα διαχωρίζονται με bytes αποφυγής εξομοίωσης
(emulation prevention bytes), τα οποία είναι bytes με συγκεκριμέν η τιμή που
εισάγονται για να αποφευχθεί να σχηματιστεί μια συγκεκριμένη ομάδα από byte που
καλείται πρόθεμα έναρξης κώδικα (start code prefix). Ο ορισμός της δομής των
μονάδων NAL προσδιορίζει ένα γενικό σχήμα για χρήση τόσο σε δίκτυα μεταγωγής
πακέτου όσο και σε δίκτυα μεταγωγής κυκλώματος . Κάθε σειρά μονάδων NAL που
παράγεται από έναν κωδικοποιητή καλείται ροή μονάδων NAL (NAL unit stream)
Σε άλλα συστήματα (πχ Διαδίκτυο, συστήματα RTP) τα κωδικοποιημένα
δεδομένα μεταφέρονται σε πακέτα με τη βοήθεια κάποιου πρωτοκόλλου μεταφοράς
και η αναγνώριση των ορίων των μονάδων NAL μέσα στο πακέτο μπορεί να γίνει
χωρίς τη χρήση προθεμάτων .

Μονάδες VCL και non-VCL
Οι μονάδες NAL διαχωρίζονται σε μονάδες VCL και non-VCL. Οι πρώτες
περιέχουν τα δεδομένα που αναπαριστούν τις τιμές των δειγμάτων στις εικόνες και οι
δεύτερες περιέχουν οποιαδήποτε επιπρόσθετη κατηγορία, όπως το σύνολο
παραμέτρων (που αναλύεται αργότερα) και συμπληρωματικές ενισχυτικές
πληροφορίες (χρονικές πληροφορίες και γενικά πληροφορίες που μπορούν να
αυξήσουν τη χρησιμότητα της εικονοσειράς , αλλά δεν αποτελούν απαραίτητη
πληροφορία για την αποκωδικοποίηση)
Μια κωδικοποιημένη ακολουθία εικονοσειρών (coded video sequence)
αποτελείται από από μια σειρά μονάδων προσπέλασης που είναι συνεχόμενες στη
ροή bit και χρησιμοποιούν μόνο ένα σύνολο παραμέτρων ακολουθίας (sequence
parameter set). Κάθε τέτοια ακολουθία μπορεί να αποκωδικοποιηθεί ανεξάρτητα από
αοποιαδήποτε άλλη ακολουθία. Στην αρχή μιας τέτοιας ακολουθίας , επίσης, υπάρχει
μια μονάδα προσπέλασης άμεσης ανανεώσης αποκωδικοποίησης (IDR –
Instanteneous Decoding Refresh) που περιέχει μια εικόνα intra. Η ύπαρξη μια τέτοιας
μονάδας προσπέλασης δηλώνει ότι καμιά εικόνα που ακολουθεί δε θα κάνει αναφορά
σε εικόνες πριν από την εικόνα intra.
Το στρώμα κωδικοποίησης εικονοσειρών ακολουθεί τη λεγόμενη υβριδική
προσέγγιση κωδικοποίησης βασισμένη σε μπλοκ (hybrid block-based video coding),
στην οποία κάθε εικόνα παριστάνεται από ορθογώνιες επιφάνειες που καλούνται
macroblocks (MB). Δεν υπάρχει κάποιο συγκεκριμένο στοιχείο της διαδικασίας
κωδικοποίησης στην οποία να οφείλεται το μεγαλύτερο βαθμό η βελτίωση στην
ικανότητα συμπίεσης , σε σχέση με τα προηγούμενα πρότυπα συμπίεσης. Αντίθετα, οι
μικρές βελτιώσεις κάθε χαρακτηριστικού αθροιζόμενες δίνουν το τελικό αποτέλεσμα.
Το στρώμα κωδικοποίησης εικονοσειρών ακολουθεί τη λεγόμενη υβριδική
προσέγγιση κωδικοποίησης βασισμένη σε μπλοκ (hybrid block-based video coding),
στην οποία κάθε εικόνα παριστάνεται από ορθογώνιες επιφάνειες που καλούνται
macroblocks (MB). Δεν υπάρχει κάποιο συγκεκριμένο στοιχείο της διαδικασίας
κωδικοποίησης στην οποία να οφείλεται το μεγαλύτερο βαθμό η βελτίωση στην
ικανότητα συμπίεσης , σε σχέση με τα προηγούμενα πρότυπα συμπίεσης . Αντίθετα, οι
μικρές βελτιώσεις κάθε χαρακτηριστικού αθροιζόμενες δίνουν το τελικό αποτέλεσμα.
Μια κωδικοποιημένη ακολουθία (sequence) αποτελείται από
κωδικοποιημένες εικόνες (pictures), που μπορεί να αποτελούν είτε ένα ολόκληρο
πλαίσιο είτε ένα πεδίο (field), όπως και στο MPEG-2. Γενικά , ένα πλαίσιο μπορεί να
θεωρηθεί ότι περιέχει δύο εναλλασσόμενα (interleaved) πεδία. Το ένα από αυτά
περιέχει τις τιάρτιες γραμμές 0,2,...,Η/2-1 (αν Η είναι το πλήθος γραμμών της
εικόνας ),ενώ το άλλο περιέχει τις περιττές γραμμές . Εάν η σύλληψη των δύο πεδίων
ενός πλαισίου έγινε σε διαφορετικές χρονικές στιγμές, τότε το πλαίσιο
χαρακτηρίζεται interlaced, διαφορετικά χαρακτηρίζεται προοδευτικό (progressive).
Στο Η.264/AVC υπάρχουν τεχνικές για την πρόβλεψη Intra της συνιστώσας
φωτεινότητας Y. Στην πρώτη τεχνική (πουονομάζεται INTRA_4x4), το ΜΒ
χωρίζεται σε 16 μπλοκ μεγέθους 4x4 και η πρόβλεψη εφαρμόζεται σε καθένα από
αυτά τα τμήματα ξεχωριστά . Για την πρόβλεψη υπάρχουν 9 διαφορετικές τεςχνικές .
Στην πρόβλεψη DC χρησιμοποιείται η μέση τιμή των δειγμάτων που βρίσκονται
πάνω και αριστερά από το τρέχον block, για την πρόβλεψη όλων των δειγμάτων του
block, όπως φαίνεται και στο σχήμα 2.18 στην τρίτη εικόνα. Επίσης υπάρχουν 8
ακόμη διαφορετικοί τύποι πρόβλεψης , ανάλογα με τη διεύθυνση που γίνεται η
πρόβλεψη, όπως παρουσιάζεται και στο σχήμα 2.19. Από αυτές, η κατακόρυφη και η
οριζόντια πρόβλεψη παρουσιάζονται σχηματικά στο σχήμα 2.18, στις δύο πρώτες
εικόνες. Για παράδειγμα, στην κατακόρυφη πρόβλεψη, για όλα τα δείγματα κάτω από
το δείγμα Α η πρόβλεψη γίνεται από το Α, για όλα κάτω από το Β γίνεται από το Β
κ.ο.κ.

Ένα πολύτιμο εργαλείο που προσφέρεται από τα σύγχρονα πρότυπα
κωδικοποίησης είναι αυτό της εκτίμησης κίνησης . Η εκτίμηση κίνησης βοηθά στην
πρόβλεψη των δειγμάτων ενός ΜΒ από εικόνες αναφοράς που έχουν ήδη
κωδικοποιηθεί. Για τη εκτίμηση κίνησης κάθε ΜΒ συνήθως χωρίζεται σε μπλοκ
16x16, όμως για την περαιτέρω βελτίωση της συμπίεσης μπορεί ν α χωριστεί και σε
μικρότερα μπλοκ, 16x8, 8x16, 8x8. Ειδικότερα στην περίπτωση που υπάρχουν μπλοκ
8x8, αυτά μπορούν να χωριστούν περαιτέρω σε 8x4, 4x8 ή 4x4. Ο διαχωρισμός του
ΜΒ σε μικρότερα μπλοκ (sub-macroblocks). Σε προηγούμενα πρότυπα, όπως το MPEG-4
και το H.263, υποστηρίζονταν μόνο μπλοκμεγέθους 16x16 και 8x8.

Το πρότυπο Η.264 προσδιορίζει 2 εναλλακτικές μεθόδους για την
κωδικοποίηση εντροπίας . Η πρώτη ονομάζεται CAVLC (Context Adaptive Variable
Length Coding) και είναι μια τεχνική μικρής πολυπλοκότητας που χρησιμοποιεί έναν
μοναδικό πίνακα αντιστοίχισης για όλα τα συντακτικά στοιχεία εκτός από τους
κβαντισμένους μετασχηματισμένους συντελεστές. Έτσι, αντί να δημιουργείται ένας
διαφορετικός πίνακας VLC για κάθε συντακτικό στοιχείο, το μόνο που πρέπει να
καθοριστεί είναι η αντιστοίχηση στον μοναδικό πίνακα κωδικών λέξεων, ο οποίος
είναι ένας κώδικας exp-Golomb με πολύ απλές ιδιότητες αποκωδικοποίησης .
Η άλλη τεχνική, που ονομάζεται CABAC (Context Adaptive Binary
Arithmetic Coding), είναι περισσότερο απαιτική αλγοριθμικά, αλλά συντελεί σε πιο
αποτελεσματική συμπίεση. Σε αυτήν την τεχνική πίνακες VLC για διαφορετικά
συντακτικά στοιχεία εναλλάσσονται αναλόγως των συντακτικών στοιχείων που
έχουν μεταδοθεί μέχρι εκείνη τη στιγμή. Αφού οι πίνακες VLC είναι σχεδιασμένοι να
ταιριάζουν στα αντίστοιχα στατιστικά , επιτυγχάνεται καλύτερη απόδοση σε σχέση με
τα σχήματα που χρησιμοποιούν ένα μοναδικό πίνακα VLC.
Στην περίπτωση του CAVLC, ο αριθμός των μη μηδενικών κβαντισμένων
μετασχηματισμένων συντελεστών, το πραγματικό μέγεθος και η θέση των
συντελεστών κωδικοποιούνται ξεχωριστά. Μετά τη zig-zag σάρωσή τους, η
κατανομή πιθανότητας τυπικά δείχνει να παρουσιάζει μεγάλες τιμές για τους
συντελεστές χαμηλών συχνοτήτων οι οποίες μειώνονται καθώς προχωρά με προς τους
συντελεστές μεγαλύτερων συχνοτήτων. Ένα παράδειγμα μιας τυπικής zig-zag
σάρωσης θα μπορούσε να είναι το επόμενο:

7 6 -2 0 -1 0 0 1 0 0 0 0 0 0 0 0

Τα ακόθουθα στοιχεία χρησιμοποιούνται για τη μεταφορά της πληροφορίας ενός
block 4x4:
1) Αριθμός μη μηδενικών συντελεστών και διαδοχικές μονάδες (Τ1s, trailing 1s)
Οι διαδοχικές μονάδες φανερώνουν το πλήθος των συντελεστών με απόλυτη
τιμή 1. Στο παράδειγμα Τ1s=2 και το πλήθος των μη μηδενικών συντελεστών Ν
είναι Ν=5. Αυτές οι δύο τιμές κωδικοποιούνται ως ένα σύνθετο γεγονός .
Χρησιμοποιείται ένας από τους 4 πίνακες VLC αναλόγως με τον αριθμό των μη
μηδενικών συντελεστών στα γειτονικά block.
2) Κωδικοποίηση των συντελεστών
Το επόμενο βήμα είναι η κωδικοποίηση των τιμών των συντελεστών. Οι
διαδοχικές μονάδες χρειάζονται μόνο καθορισμό του προσήμου. Επειδή οι τιμές
των συντελεστών αποκλίνουν λιγότερο στο τέλος παρά στην αρχή, οι
συντελεστές κωδικοποιούνται με αντίστροφη σειρά. Στο παραπάνω παράδειγμα ο
πρώτος συντελεστής που θα κωδικοποιηθεί είναι ο -2 και θα χρησιμοποιηθεί ένας
πίνακας VLC. Για τον επόμενο συντελεστή (το 6 στο παράδειγμα) ενδέχεται να
χρησιμοποιηθεί άλλος VLC πίνακας με βάση την κωδικοποίηση του
προηγούμενου συντελεστή. Με αυτόν τον τρόπο υπάρχει προσαρμογή στη χρήση
των πινακων VLC. Συνολικά 6 exp-Golomb πίνακες κωδίκων είναι διαθέσιμοι
για αυτή την προσαρμογή.
3) Πληροφορία προσήμου
Ένα bit χρησιμοποιείται για να δηλώσει το πρόσημο. Για τις διαδοχικές
μονάδες αυτό αποστέλλεται ως μεμονωμένα bits. Για τους άλλους συντελεστές, το
πρόσημο περιλαμβάνεται στους κώδικες exp-Golomb. Οι θέσεις κάθε μη μηδενικού
συντελεστή κωδικοποιούνται προσδιορίζοντας τη θέση των μηδενικών πριν τον
τελευταίο μη μηδενικό συντελεστή. Διαιρείται σε δυό μέρη :
4) TotalZeroes
Αυτή η κωδική λέξη προσδιορίζει τον αριθμό των μηδενικών ανάμεσα στον
τελευταίο μη μηδενικό συντελεστή της σάρωσης και της αρχής . Στο παραπάνω
παράδειγμα η τιμή της είναι 3. Αφού είναι ήδη γνωστό ότι Ν=5, ο αριθμός πρέπει να
είναι από 0 εώς 11. 15 πίνακες είναι διαθέσιμοι για το Ν στην κλίμακα 1-15 (Ε ά ν το
Ν είναι 16 δεν υπάρχει μηδενικός συντελεστής .
5) RunBefore
Στο παράδειγμα πρέπει να εχεταστεί πώς κατανέμονται τα 3 μηδενικά. Πρώτα
κωδικοποιείται το πλήθος των μηδενικών πριν τον τελευταίο συντελεστή (στο
παράδειγμα είναι 2). Αφού θα πρέπει να είναι στην κλίμακα 0-3 ένας κατάλληλος
πίνακας VLC χρησιμοποιείται. Έτσι απομένει μόνο ένα μηδενικό. Το πλήθος των
μηδενικών πριν το δεύτερο τελευταίο συντελεστή θα πρέπει συνεπώς να είναι 0 ή 1
(στο παράδειγμα είναι 1). Στο σημείο αυτό δεν υπάρχουν μηδενικά και έτσι δεν
υπάρχει και πληροφορία να κωδικοποιηθεί.
Η απόδοση της κωδικοποίησης εντροπίας μπορεί να βελτιωθεί περαιτέρω, εάν
χρησιμοποιηθεί η τεχνική CABAC [9]. Η χρήση αριθμητικής κωδικοποίησης
επιτρέπει την αντιστοίχηση μη ακέραιου πλήθους bits σε κάθε σύμβολο του
αλφαβήτου, το οποίο είναι εξαιρετικά χρήσιμο για πιθανότητες συμβόλων
μεγαλύτερες του 0.5. Επίσης, η χρήση προσαρμοζόμενων κωδίκων επιτρέπει την
προσαρμογή στις περιπτώσεις που το σήμα δεν είναι στάσιμο. Ένα άλλο σημαντικό
στοιχείο του CABAC είναι η μοντελοποίηση του περιεχομένου. Τα στατιστικά
στοιχεία των ήδη κωδικοποιημένων συντακτικών στοιχείων χρησιμοποιούνται για
την εκτίμηση πιαθανοτήτων. Γενικά, συγκρινόμενη με το CAVLC, η τεχνική
CABAC, μπορεί να ελαττώσει τον αναγκαίο ρυθμό bit κατά 5-15%, με τα
μεγαλύτερα ποσοστά να επιτυγχάνονται όταν κωδικοποιούνται interlaced σήματα
τηλεόρασης .

Φίλτρο de-blocking
Ένα χαρακτηριστικό της κωδικοποίησης που βασίζεται σε blocks είναι η
παραγωγή ορατών τετραγωνικών τμημάτων στην τελική εικόνα. Οι άκρες του block
κατά κανόνα ανακατασκευάζονται με λιγότερη ακρίβεια από ό,τι τα εσ ωτερικά pixels
και to “blocking” θεωρείται ως ένα από τα πιο όρατα artifacts με τις σύγχρονες
μεθόδους κωδικοποίησης. Για αυτό το λόγο, το Η.264 καθορίζει ένα
προσαρμοζόμενο φιλτρο για την εξομάλυνση αυτού το φαινομένου
Η βασική ιδέα είναι ότι, έαν υπολογισθεί μια σχετικά μεγάλη διαφορά
ανάμεσα σε δείγματα κοντά στο άκρο του block, τότε είναι πολύ πιθανό να
δημιουργηθεί κάποιο artifact. Ωστόσο, εάν η τάξη μεγέθους αυτή της διαφοράς είναι
τόσο μεγάλη που δεν μπορεί να εξηγηθεί από την τραχύτητα της κβάντισης, τότε το
άκρο αυτό πιθανότατα αντανακλά μια αλλά γή και στην αρχική εικόνα και δεν
πρόκειται για artifact, οπότε δε θα πρέπει και να εξομαλυνθεί. Η εφαρμογή του
φίλτρου έχει αποδειχθεί ότι επιφέρει μείωση του αναγκαίου ρυθμού bit κατά 5-10%.

Εφαρμογές μετάδοσης εικονοσειρών
1. Διαδραστικές εφαρμογές
Ως διαδραστικές εφαρμογές χαρακτηρίζονται αυτές που λαμβάνουν χώρα σε
πραγματικό χρόνο, όπως είναι για παράδειγμα το εικονοτηλέφωνο και η
τηλεδιάσκεψη. Οι εφαρμογές αυτές χαρακτηρίζονται από τους αυστηρούς
περιορισμούς που θέτουν στην καθυστέρηση από άκρο σε άκρο (end-to-enddelay)
– τυπική τιμή είναι το ένα δευτερόλεπτο, αν και ο (ανεπίτευκτος μέχρι
στιγμής ) στόχος είναι να μειωθεί σε 100ms. Επίσης προϋποθέτουν τη χρήση
κωδικοποιητών και αποκωδικοποιητών πραγματικού χρόνου. Ωστόσο, η χρήση
κωδικοποιητών πραγματικού χρόνου περιορίζει την υπολογιστική
πολυπλοκότητα. Βεβαίως, πρέπει να τονιστεί ότι σε τέτοιες εφαρμογές γίνεται
κάποια παραχώρηση τόσο στη χωρική όσο και στη χρονική ανάλυσ η,
αποτέλεσμα εικονοσειρές μεγέθους QCIF με 5-10 εικόνες /δευτερόλεπτο (fps,
frames per second) και CIF με 10-20 fps να θεωρούνται αποδεκτές .
2. Downloading
Στην περίπτωση του downloading (ή «κατέβασμα» όπως έχει επικρατήσει ο
ελληνικό όρος ) η ακολουθία bit μεταδίδεται χρησιμοποιώντας αξιόπιστα
πρωτόκολλα, όπως το ftp ή το http. Ο κωδικοποιητής βελτιστοποιεί την
ακολουθία με κριτήριο τη μέγιστη δυνατή αποδοτικότητα της συμπίεσης, χωρίς
να λαμβάνει υπ’όψιν περιορισμούς όπως η καθυστέρηση ή λάθη κατά τη
μετάδοση. Επιπλέον, η κωδικοποίηση δε γίνεται σε πραγματικό χρόνο, με
αποτέλεσμα να μην τίθενται περιορισμοί σχετικά με την υπολογιστική
πολυπλοκότητα.
3. Streaming
Με τον όρο “streaming” νοείται η μετάδοση μιας ακολουθίας, που βρίσκεται ήδη
κωδικοποιημένη σε κάποιον εξυπηρετητή (server), η προβολή της οποίας όμως,
αρχίζει πριν μεταδοθεί ολόκληρη, με μια μικρή αρχική καθυστέρηση και
«μοιάζει» να γίνεται σε πραγματικό χρόνο. Είναι φανερό ότι πρόκειται για μια
κατηγορία εφαρμογών που βρίσκεται κάπου στο μέσο των δύο προαναφερθέντων
εφαρμογών . Οι απαιτήσεις σε καθυστέρηση δεν είναι τόσο αυστηρές όσο στην
περίπτωση που γίνεται μετά δοση σε πραγματικό χρόνο, ωστόσο εξακολουθούν να
είναι υψηλές, ώστε η αρχική καθυστέρηση να είναι μικρή. Όμως, αυτό που είναι
σημαντικό, είναι η μεταβλητότητα της καθυστέρησης (που αναφέρθηκε
προηγουμένως ως jitter) να είναι όσο το δυνατόν μικρότερη. Συνήθως
χρησιμοποιούνται μη αξιόπιστα πρωτόκολλα μεταφοράς και ο κωδικοποιητής
έχει περιορισμένη (ή και μηδενική) γνώση της κατάστασης στην οποία βρίσκεται
το δίκτυο. Η μετάδοση μπορεί να γίνεται αποκλειστικά σε έναν χρήστη (point-topoint
transmission), σε ομάδα χρηστών (multipoint) ή και με τη μορφή ευρείας
εκπομπής (broadcasting). Έτσι πρέπει να προσαρμoστεί η χρήση των
χαρακτηριστικών που καθιστούν την ακολουθία ανθεκτική σε λάθη, σε τέτοιο
επίπεδο που να είναι αποδεκτή από την πλειονότητα των χρηστών.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου