Αλγόριθµοι Συµπίεσης εδοµένων Ολοκληρωτικής Φωτογραφίας



Σχετικά έγγραφα
Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών. Υπολογιστές και Δεδοµένα Κεφάλαιο 3ο Αναπαράσταση Αριθµών

Εισαγωγή στην επιστήµη των υπολογιστών. Αναπαράσταση Αριθµών

οµή δικτύου ΣΧΗΜΑ 8.1

3.1 εκαδικό και υαδικό

Κωδικοποίηση βίντεο (H.261 / DVI)

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΗΜΙΟΥΡΓΙΑ ΠΑΙΧΝΙ ΙΟΥ ΣΤΟ SCRATCH ΒΗΜΑ ΠΡΟΣ ΒΗΜΑ

Γυµ.Ν.Λαµψάκου Α Γυµνασίου Γεωµ.Β2.6 γωνίες από 2 παράλληλες + τέµνουσα 19/3/10 Φύλλο εργασίας

Κεφάλαιο 5ο: Εντολές Επανάληψης

Περίληψη ιπλωµατικής Εργασίας

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ

ΘΕΑΝΩ ΕΡΙΦΥΛΗ ΜΟΣΧΟΝΑ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

Μεθοδολογίες παρεµβολής σε DTM.

Περιεχόµενα. ΕΠΛ 422: Συστήµατα Πολυµέσων. Βιβλιογραφία. Εισαγωγή. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT

5.1 Θεωρητική εισαγωγή

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Σχήµα 2.1: Εισαγωγή array στο Front Panel.

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ. Κωδικοποίηση εικόνας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Περιεχόµενα. Βιβλιογραφία. Συµπίεση εικόνων: Το πρότυπο JPEG. Εισαγωγή. Ευθύς µετασχηµατισµός DCT

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Γραµµική Άλγεβρα. Εισαγωγικά. Μέθοδος Απαλοιφής του Gauss

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Συµπίεση Ψηφιακών Εικόνων: Συµπίεση µε Απώλειες. Πρότυπα Συµπίεσης Εικόνων

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

11 Το ολοκλήρωµα Riemann


Οπτική αντίληψη. Μετά?..

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

χωρίςναδηµιουργείταιαίσθησηαπώλειαςτηςποιότηταςτηςανακατασκευασµένηςεικόνας.

Εισαγωγή στον Προγραµµατισµό. Σύντοµες Σηµειώσεις. Γιώργος Μανής

4.3. Γραµµικοί ταξινοµητές

Α.Τ.Ε.Ι. Ηρακλείου Ψηφιακή Επεξεργασία Εικόνας ιδάσκων: Βασίλειος Γαργανουράκης. Ανθρώπινη Όραση - Χρωµατικά Μοντέλα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Εισαγωγή Αλγόριθµοι Αποτελέσµατα Επίλογος Ορισµός του Προβλήµατος Ευθυγράµµιση : Εύρεση ενός γεωµετρικού µετασχηµατισµού που ϕέρνει κοντά δύο τρισδιάσ

Σύντοµες οδηγίες χρήσης atube Catcher

Ακρότατα υπό συνθήκη και οι πολλαπλασιαστές του Lagrange

4.2 Μέθοδος Απαλοιφής του Gauss

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης

2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ

Δ10. Συμπίεση Δεδομένων

παράθυρα ιδακτικό υλικό µαθητή Πλήκτρα για να το παράθυρο Λωρίδα τίτλου Πλαίσιο παραθύρου

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Επεξεργασία Χαρτογραφικής Εικόνας

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

ΕΙΔΗ ΠΛΑΙΣΙΩΝ Ενδο-πλαισιακή κωδικοποίηση (Intra- frame Coding): Δια-πλαισιακή κωδικοποίηση (Inter-frame Coding):

Οι πράξεις που χρειάζονται για την επίλυση αυτών των προβληµάτων (αφού είναι απλές) µπορούν να τεθούν σε µια σειρά και πάρουν µια αλγοριθµική µορφή.

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ, ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Α. ΤΕΙ ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής και Πολυµέσων Εργαστήριο Νευρωνικών Δικτύων

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

Οδηγίες σχεδίασης στο περιβάλλον Blender

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

Συµπίεση Εικόνας: Το πρότυπο JPEG

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΠροσδιορισµόςΒέλτιστης Λύσης στα Προβλήµατα Μεταφοράς Η µέθοδος Stepping Stone

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

Κωστόπουλος ηµήτριος Μ.Π.Λ.Α. TAPE COMPRESSION (θεώρηµα 2.3 Παπαδηµητρίου)

Ενότητα 2: Οι Θεµελιώδεις Αρχές των Ψηφιακών Εικόνων

Περιεχόµενα ΕΠΛ 422: στα Συστήµατα Πολυµέσων. Βιβλιογραφία. ειγµατοληψία. ηµιουργία ψηφιακής µορφής πληροφορίας στα Συστήµατα Πολυµέσων

Μάθηµα 1. Κεφάλαιο 1o: Συστήµατα. γ R παριστάνει ευθεία και καλείται γραµµική εξίσωση µε δύο αγνώστους.

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

Είναι το ηλεκτρικό ρεύµα διανυσµατικό µέγεθος;

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Σηµαντικές παρατηρήσεις σχετικά µε το backround:

ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΞΙΣΩΣΕΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

1 η Θεµατική Ενότητα : Δυαδικά Συστήµατα

α) Κύκλος από δύο δοσµένα σηµεία Α, Β. Το ένα από τα δύο σηµεία ορίζεται ως κέντρο αν το επιλέξουµε πρώτο. β) Κύκλος από δοσµένο σηµείο και δοσµένο ευ

Επίλυση Γραµµικών Συστηµάτων

Βίντεο και κινούµενα σχέδια

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Γενικές Παρατηρήσεις για τις Εργαστηριακές Ασκήσεις Φυσικοχηµείας

Κεφάλαιο M3. Διανύσµατα

1.1.3 t. t = t2 - t x2 - x1. x = x2 x

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

Πληροφορική 2. Αλγόριθμοι

Πανεπιστήµιο Θεσσαλίας

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

Transcript:

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟ ΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αλγόριθµοι Συµπίεσης εδοµένων Ολοκληρωτικής Φωτογραφίας Ιωάννης Γ. Λιωνής Σπυρίδων Μ. Ρέκκας Επιβλέποντες: Εµµανουήλ Σαγκριώτης, Αναπληρωτής Καθηγητής ΕΚΠΑ Νικόλαος Σγούρος, Υποψήφιος ιδάκτωρ ΕΚΠΑ ΑΘΗΝΑ ΙΟΥΛΙΟΣ 2006

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αλγόριθµοι Συµπίεσης εδοµένων Ολοκληρωτικής Φωτογραφίας Ιωάννης Γ. Λιωνής Α.Μ. 018 2000 00064 Σπυρίδων Μ. Ρέκκας Α.Μ. 018 2000 00084 ΕΠΙΒΛΕΠΟΝΤΕΣ: Εµµανουήλ Σαγκριώτης, Αναπληρωτής Καθηγητής ΕΚΠΑ Νικόλαος Σγούρος, Υποψήφιος ιδάκτωρ ΕΚΠΑ

ΠΕΡΙΛΗΨΗ Σε αυτή την πτυχιακή µελετάµε την κωδικοποίηση πινάκων εικόνων µε χρήση κωδικοποιητών video. Κωδικοποιούµε εικόνες οι οποίες έχουν δηµιουργηθεί ώστε να χρησιµοποιηθούν για τρισδιάστατες απεικονίσεις αντικειµένων. Οι εικόνες αυτές αποτελούνται από πολλές µικρότερες (πλαίσια) οι οποίες έχουν υψηλή συσχέτιση µεταξύ τους και αυτή ακριβώς την ιδιότητα θέλουµε να εκµεταλλευτούµε. εν κωδικοποιούµε την εικόνα όπως είναι αλλά τη χωρίζουµε στις µικρότερες εικόνες της. Στη συνέχεια, χρησιµοποιώντας διαφορετικές τοπολογίες, εισάγουµε αυτές τις εικόνες σε κάποιους κωδικοποιητές video έτσι ώστε να επιτύχουµε συµπίεση διατηρώντας την ποιότητα σε επιθυµητά επίπεδα. Οι τοπολογίες που έχουµε επιλέξει και υλοποιήσει έχουν ως στόχο το να εισάγουµε τα πλαίσια στον κωδικοποιητή µε τέτοια σειρά ώστε να εκµεταλλευτούµε την υψηλή συσχέτιση µεταξύ τους. Στη συνέχεια, πειραµατιζόµαστε µε τον ποιο κωδικοποιητή θα χρησιµοποιήσουµε και µε το ποιες παραµέτρους πρέπει να αλλάξουµε ώστε να έχουµε καλύτερα αποτελέσµατα. ΘΕΜΑΤΙΚΗ ΠΕΡΙΟΧΗ: Επεξεργασία Εικόνας. ΛΕΞΕΙΣ ΚΛΕΙ ΙΑ: Συµπίεση, Τρισδιάστατες Απεικονίσεις, MPEG, Ολοκληρωτική Φωτογραφια. 3

ABSTRACT In this thesis we study the coding of arrays of images using video encoders. We code images that have been captured or developed in order to be used as three dimensional views of several objects. These images include a lot of smaller images, called frames. These frames are highly correlated and it is this attribute we are going to use. We do not code the image as a whole but we divide it into its frames. We code, then, these frames with some popular codecs in order to have the compression asked and to preserve the quality of the original image. It is important to code the frames in an order that will be able to exploit their interframe correlation. In order to achieve this, we propose six different topologies. These topologies, that we have created and implemented, are used to code the frames in an order that exploits the high correlation between them. Finally, we experiment on the codec and the frames size in order to achieve the best possible results, preserving the high quality of the original integral image and achieving high compression. SUBJECT AREA: Image Processing KEYWORDS: Compression, Three-dimensional Imaging, MPEG, Integral Photography 4

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1 Γενικά 1.2 Κωδικοποιητές κινούµενης εικόνας 1.3 Ολοκληρωτική Απεικόνιση ΚΕΦΑΛΑΙΟ 2 ΒΑΘΜΟΣ ΣΥΣΧΕΤΙΣΗΣ Ε ΟΜΕΝΩΝ ΟΑ 2.1 οµή εικόνων ΟΑ 2.2 Βαθµός συσχέτισης ΚΕΦΑΛΑΙΟ 3 - ΚΩ ΙΚΟΠΟΙΠΟΙΗΣΗ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΣΥΜΠΙΕΣΗΣ ΚΙΝΟΥΜΕΝΗΣ ΕΙΚΟΝΑΣ 3.1 Γενικά 3.2 Εξέλιξη Προτύπου MPEG 3.3 Γενική Περιγραφή Προτύπου MPEG-1 3.4 Αναλυτική περιγραφή λειτουργίας MPEG 3.5 Σύγκριση επιπέδων MPEG ΚΕΦΑΛΑΙΟ 4 ΥΛΟΠΟΙΗΣΗ ΚΩ ΙΚΟΠΟΙΗΤΗ ΟΑ 4.1 ιαχωρισµός της εικόνας 4.2 Τοπολογίες 4.3 Σχηµατική αναπαράσταση τοπολογιών 4.4 Αναδιάταξη εικόνας 4.5 Υλοποίηση ΚΕΦΑΛΑΙΟ 5 - Πειραµατικά Αποτελέσµατα 5.1 Γενικά 5.2 ιαγράµµατα - Σχολιασµός 5.3 Συµπεράσµατα Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 5

ΠΡΟΛΟΓΟΣ Η πτυχιακή αυτή εργασία πραγµατοποιήθηκε στo Εργαστήριο Οπτικών Επικοινωνιών, του Τµήµατος Πληροφορικής και Τηλεπικοινωνιών του Εθνικού Καποδιστριακού Πανεπιστηµίου Αθηνών. Η Υλοποίηση του πηγαίου κώδικα που απαιτήθηκε για τις ανάγκες της εργασίας πραγµατοποιήθηκε στη γλώσσα προγραµµατισµού MATLAB (έκδοση 7.1-Mathworks). Συµπληρωµατικά χρησιµοποιήθηκαν ειδικοί πρότυποι κωδικοποιητές που υλοποιούν τα πρωτόκολλα συµπίεσης AVI, MPEG-1, MPEG-2 και κατάλληλο λογισµικό διεπαφής χρήστη όπως το Tsunami MPEG encoder (έκδοση 3.0-Pegasys) για τον λεπτοµερή έλεγχο των προδιαγραφών του κωδικοποιητή. Θα θέλαµε να ευχαριστήσουµε τα µέλη του εργαστηρίου Οπτικών Επικοινωνιών καθηγ. Νικηφ. Θεοφάνους και τους κ.κ. Ν. Σγούρο, Σ. Αθηναίο, Π. Παπαγέωργα για την παραχώρηση του χώρου στον οποίο πραγµατοποιήθηκε η έρευνα όπως και των απαραίτητων δεδοµένων. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 6

ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1 Γενικά Σε αυτή τη διπλωµατική θα µελετήσουµε την κωδικοποίηση τρισδιάστατων εικόνων µε τη χρήση κωδικοποιητών κινούµενης εικόνας (video). Οι κωδικοποιητές κινούµενης εικόνας εκµεταλλεύονται τη συσχέτιση ανάµεσα στα γειτονικά εικονοστοιχεία (pixels) του ίδιου εικονοπλαισίου (frame), ενδοσυσχέτιση (interframe correlation) όπως επίσης και την υψηλή συσχέτιση µεταξύ γειτονικών εικονοπλαισίων την οποία θα αποκαλούµε στο εξής διασυσχέτιση (intraframe correlation) [1,2]. 1.2 Κωδικοποιητές κινούµενης εικόνας Με τον όρο ενδοσυσχέτιση εννοούµε πως τα γειτονικά εικονοστοιχεία ενός εικονοπλαισίου έχουν τιµές οι οποίες δε διαφέρουν πολύ και δεν εναλλάσσονται απότοµα. Με τον όρο διασυσχέτιση εννοούµε ότι τα γειτονικά εικονοπλαίσια µιας ακολουθίας δε διαφέρουν πολύ µεταξύ τους. ύο συνεχόµενα εικονοπλαίσια είναι πολύ πιθανό να έχουν ένα µεγάλο πλήθος εικονοστοιχείων που παρουσιάζουν την ίδια ή παραπλήσιες τιµές.το γεγονός αυτό οπφίλεται στο ότι πολλά από τα αντικείµενα µιας σκηνής ανήκουν στο υπόβαθρο µε αποτέλεσµα να παραµένουν ακίνητα. Επιπλεόν οι συνθήκες φωτισµού µίας σκηνής παραµένουν σχετικά ίδιες ή εν γένει µεταβάλλονται µε οµαλό ρυθµό. Όσον αφορά τα κινούµενα αντικείµενα έχοντας εντοπίσει ένα αντικείµενο σε ένα εικονοπλαίσιο, είναι πολύ πιθανό στα αµέσως επόµενα να εντοπίσουµε το αντικείµενο αυτό σε µια θέση πολύ κοντά στη θέση που βρισκόταν. Η διαδικασία αυτή περιγράφεται στη διεθνή βιβλιογραφία σαν τεχνική πρόβλεψης κίνησης (motion estimation) [3]. 1.3 Ολοκληρωτική Φωτογραφία-Απεικόνιση Η τεχνική συµπίεσης που θα περιγράψουµε θα εφαρµοστεί σε εικόνες οι οποίες έχουν παραχθεί µε τη µέθοδο της Ολοκληρωτικής Απεικόνισης (ΟΑ) (Integral Imaging-InIm). Η µέθοδος αυτή αποτελεί εξέλιξη µιας τεχνικής που αναπτύχθηκε το 1908 από τον G.Lippmann [4] την οποία ονόµασε αρχικά Ολοκληρωτική Φωτογραφία (ΟΦ) (Integral Photography-IP). Η µέθοδος, βασίζεται στην καταγραφή µίας τρισδιάστατης σκηνής σε Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 7

Αλγόριθµοι Συµπίεσης εδοµένων Ολοκληρωτικής Φωτογραφίας µία επίπεδη φωτοευαίσθητη επιφάνεια (film), ή πιο πρόσφατα σε ψηφιακούς φωτογραφικούς αισθητήρες (Charge Coupled Devices-CCD), χρησιµοποιώντας παράλληλα µία συστοιχία από µικροφακούς οι οποίοι έχουν ενσωµατωθεί στο σύστηµα λήψης. Η διαδικασία της απεικόνισης των εικόνων αυτών απαιτεί τη χρήση ενός αντίστοιχου συστήµατος το οποίο περιλαµβάνει µία επίπεδη οθόνη υγρών κρυστάλλων (Thin Film Transistor-TFT) και µία ανάλογη συστοιχία µικροφακών. Η αρχή λειτουργίας της τεχνικής που περιγράψαµε απεικονίζεται στην Εικόνα 1. Αντικείµενο Αντικειµενικός Συστοιχία Μικροφακών Φακός CCD αισθητήρας Επεξεργασία Τρισδιάστατο είδωλο Παρατηρητής Συστοιχία Μικροφακών (Συζυγής) Οθόνη LCD Υψηλής Ανάλυσης Εικόνα 1.1: Αρχή Λειτουργίας συστήµατος Ολοκληρωτικής Απεικόνισης Στο παραπάνω σύστηµα απεικονίζονται όλα τα στάδια δηµιουργίας, επεξεργασίας και τρισδιάστατης αναπαράστασης µε βάση την τεχνική της ΟΑ. Στην παρούσα µελέτη θα περιοριστούµε στην συµπίεση συνθετικών δεδοµένων που κατασκευάστηκαν µε βάση τις προδιαγραφές ενός συστήµατος ΟΑ. Παρόλα αυτά η µέθοδος µπορεί να εφαρµοστεί τόσο σε δεδοµένα που παράγονται από συσκευές λήψης ΟΑ, ΟΦ ή άλλων τεχνικών τρισδιάστατης φωτογράφισης-λήψης. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 8

ΚΕΦΑΛΑΙΟ 2 ΒΑΘΜΟΣ ΣΥΣΧΕΤΙΣΗΣ Ε ΟΜΕΝΩΝ ΟΑ 2.1 οµή εικόνων ΟΑ Οι εικόνες που παράχθηκαν µε την τεχνική της ΟΑ αποτελούν µία δισδιάστατη καταγραφή µίας τρισδιάστατης σκηνής. Ο τρόπος λήψης των εικόνων αυτών που περιγράφηκε στο προηγούµενο κεφάλαιο δηµιουργεί τελικά εικόνες αντίστοιχες µε αυτή της Εικόνας 2.1. Εικόνα 2.1: Εικόνα δηµιουργηµένη µε συνθετική απεικόνιση και λεπτοµέρειά της. Οι συγκεκριµένες εικόνες διακρίνονται για την εσωτερική τους δοµή. Αποτελούνται από ένα πλήθος από µικρότερες εικόνες (µικροεικόνες) οι οποίες αποτελούν µια λίγο διαφορετική όψη του εν λόγω αντικειµένου. Ως συνέπεια, έχοντας το αντικείµενο σε διαφορετικές όψεις, µπορούµε να το αναπαραστήσουµε τρισδιάστατα. Είναι προφανές ότι οι εικόνες αυτές θα χαρακτηρίζονται από υψηλούς βαθµούς συσχέτισης τόσο µεταξύ γειτονικών εικονοστοιχείων όσο και µεταξύ γειτονικών µικροεικόνων, σε αναλογία µε τα διαδοχικά εικονοπλαίσια µιας χρονικής αλληλουχίας. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 9

2.2 Βαθµός συσχέτισης Στο κεφάλαιο αυτό θα µελετήσουµε τα διάφορα είδη συσχέτισης που αναφέραµε. Εστιάζοντας σε µια γειτονιά µίας εικόνας ΟΑ όπως αυτή της Εικόνας 2.1 διαστάσεων 3x3 µικροεικόνων την οποία θα ονοµάσουµε Ι, µπορούµε να παρατηρήσουµε την υψηλή συσχέτιση που επικρατεί µεταξύ των δεδοµένων, όπως αυτή απεικονίζεται στην Εικόνα 2.2. Εικόνα 2.2: Μία περιοχή 3x3 µικροεικόνων που παρουσιάζουν ισχυρή συσχέτιση. Ποσοτικά η συσχέτιση αυτή µπορεί να εκτιµηθεί υπολογίζοντας το συντελεστή συσχέτισης r [5] ενός κεντρικού τµήµατος Ι της µεσαίας µικροεικόνας (πλαισίου) µε αντίστοιχες περιοχές ίσου µεγέθους των εικόνων που την περιβάλλουν. Για το λόγο αυτό µετατρέπουµε την αρχική εικόνα σε κλίµακα του γκρι και ολισθαίνουµε ένα αντίγραφο που αντιστοιχεί στην κεντρική περιοχή που αναφέραµε σε όλες τις δυνατές θέσεις της παραπάνω γειτονιάς 3x3 υπολογίζοντας για κάθε ζεύγος που δηµιουργείται το συντελεστή αυτοσυσχέτισης r µέσω της σχέσης 1. r= ( I I ) ( I ' I ') ( I I ) ( I ' I ') 2 2 (1) Σχέση 2.1: Υπολογισµός συντελεστή αυτοσυσχέτισης Στην παραπάνω εξίσωση ο συµβολισµός I αντιστοιχεί σε µια περιοχή της γειτονιάς ίδιου µεγέθους µε την Ι ενώ οι συµβολισµοί I, I ' αντιστοιχούν στις µέσες τιµές της φωτεινότητας της κάθε περιοχής. Τέλος η διπλή άθροιση δηλώνει τον υπολογισµό (ολοκλήρωση) επάνω σε όλα τα σηµεία της κάθε περιοχής. Με τη χρήση του Matlab [6] Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 10

υπολογίζουµε τον συντελεστή αυτοσυσχέτισης για την παραπάνω περιοχή και απεικονίζεται στο Σχήµα 2.1. Από το σχήµα αυτό µπορούµε να παρατηρήσουµε ότι εκτός από την υψηλή αυτοσυσχέτιση της κεντρικής περιοχής κυριαρχεί υψηλή συσχέτιση µε υψηλές τιµές για το r σε αντίστοιχα τµήµατα στη γειτονιά των 3x3 µικροεικόνων. Σχήµα 2.1: Οι τιµές του συντελεστή συσχέτισης r µια µία περιοχή 3x3 µικροεικόνων. Συµπληρώνοντας τη µελέτη µας για το βαθµό συσχέτισης πρέπει να σηµειώσουµε και την αναµενόµενη συσχέτιση που επικρατεί µεταξύ των γειτονικών εικονοστοιχείων σε κάθε µικροεικόνα (πλαίσιο). Για το λόγο αυτό υπολογίζουµε τη συσχέτιση που προκύπτει µεταξύ των εικονοστοιχείων µιας εικόνας και των γειτονικών τους. Αυτή η ποσότητα υπολογίστηκε λαµβάνοντας δύο αντίγραφα της κεντρικής εικόνας και ολισθαίνοντας το ένα από τα δύο κατά ένα εικονοστοιχείο δεξιά. Ο συντελεστής συσχέτισης (σε λογαριθµική κλίµακα) που προκύπτει απεικονίζεται στο Σχήµα 2.2. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 11

Σχήµα 2.2: Ο συντελεστής συσχέτισης για γειτονικά εικονοστοιχεία της ίδιας µικροεικόνας. Από τη µελέτη των παραπάνω διαγραµµάτων γίνεται αντιληπτό ότι ένα σχήµα συµπίεσης των συγκεκριµένων εικόνων θα πρέπει να είναι ικανό να εκµεταλλεύεται τόσο την αναµενόµενη συσχέτιση που υπάρχει µεταξύ γειτονικών εικονοστοιχείων όσο και τη συσχέτιση που προκύπτει µεταξύ αντίστοιχων περιοχών των γειτονικών µικροεικόνων. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 12

ΚΕΦΑΛΑΙΟ 3 ΚΩ ΙΚΟΠΟΙΗΣΗ ΜΕ ΧΡΗΣΗ ΤΕΧΝΙΚΩΝ ΣΥΜΠΙΕΣΗΣ ΚΙΝΟΥΜΕΝΗΣ ΕΙΚΟΝΑΣ 3.1 Γενικά Ένας από τους πλέον κατάλληλους τρόπους συµπίεσης των παραπάνω εικόνων είναι η τεχνική MPEG (Moving Pictures Experts Group) [7] η οποία χρησιµοποιείται για την συµπίεση κινούµενων εικόνων. Η τεχνική αυτή παρουσιάζει το πλεονέκτηµα ότι χρησιµοποιεί την πλέον διαδεδοµένη µορφή αποτελεσµατικής συµπίεσης ακίνητης εικόνας JPEG για την κωδικοποίηση ορισµένων εικόνων της χρονοσειράς, και προβλέπει βάση αυτών και µε χρήση αλγορίθµων βέλτιστου ταιριάσµατος περιοχές στης υπόλοιπες εικόνες που παρουσιάζουν πολύ µικρές διαφορές. Στην συγκεκριµένη περίπτωση θα µετασχηµατίσουµε τη δισδιάστατη κατανοµή των µικροεικόνων µιας εικόνας ολοκληρωτικής φωτογραφίας σε µία µονοδιάστατη σειρά, µετασχηµατίζοντας δηλαδή τη χρονική συνιστώσα της τεχνικής MPEG σε µία χωρική διάσταση. Είναι προφανές ότι υπάρχει µία σειρά παραγόντων που επηρεάζει την ποιότητα και την αποτελεσµατικότητα της κωδικοποίησης µε αυτό τον τρόπο. Μερικοί από αυτούς είναι το είδος του κωδικοποιητή MPEG που θα χρησιµοποιηθεί, το µέγεθος και το είδος των εικόνων που θα αποτελέσουν τη µονάδα κωδικοποίησης που απαιτεί ο κωδικοποιητής, το µέγεθος της κάθε µικροεικόνας καθώς επίσης και ο τρόπος µε τον οποίο θα µετασχηµατιστούν οι µικροεικόνες σε µία µονοδιάστατη διαδοχή από εικόνες. Τους παράγοντες αυτούς θα µελετήσουµε αναλυτικά στα επόµενα κεφαλαια της παρούσας εργασίας. 3.2 Εξέλιξη Προτύπου MPEG Η δηµιουργία και εξέλιξη του προτύπου MPEG ακολούθησε τα παρακάτω στάδια ή όπως αναφέρονται στη βιβλιογραφία επίπεδα (layers): 1. MPEG-1: Σχεδιάστηκε για χρήση µε ρυθµούς µέχρι 1.5 Mbit/sec και είναι ένα πολύ δηµοφιλές πρότυπο στο internet για κωδικοποίηση εικόνας και ήχου. Το 3ο επίπεδο του, είναι γνωστό και ως ΜΡ3 ( το γνωστό µας πρότυπο για κωδικοποίηση ήχου). 2. MPEG-2: Σχεδιάστηκε για χρήση µε ρυθµούς από 1.5 ως 15 Mbit/sec. Είναι το πρότυπο πάνω στο οποίο βασίζονται οι κωδικοποιητές της ψηφιακής τηλεόρασης Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 13

(Digital Television set top boxes ) και η κωδικοποίηση DVD. Το MPEG-2 είναι η 3. MPEG-4: Σχεδιάστηκε για κωδικοποίηση εφαρµογών πολυµέσων και διαδικτύου. Βασίζεται σε αντικειµενοστραφή κωδικοποίηση. Τα αντικείµενα (objects) και το υπόβαθρο (background) διαχωρίζονται και κωδικοποιούνται ξεχωριστά. Αυτή η µέθοδος επιτρέπει τη µετάδοση των video σε διαφορετικούς ρυθµούς ανάλογα µε το σύστηµα που χρησιµοποιούµε. 3.3 Γενική Περιγραφή Προτύπου MPEG-1 Η κωδικοποίηση MPEG µειώνει δραµατικά το χώρο που απαιτείται για να εγγράψουµε ακολουθίες κινούµενων εικόνων εξαλείφοντας πλεοναστική και µη απαραίτητη πληροφορία από τα αρχικά δεδοµένα. Λιγότερα bits σηµαίνει πως οι κινούµενες εικόνες µπορούν να µεταφερθούν πολύ γρήγορα, τόσο γρήγορα για την ακρίβεια, που αργά και φτηνά δίκτυα µπορούν να τις µεταφέρουν προσφέροντας ένα τεράστιο φάσµα νέων δυνατοτήτων. ύο γειτονικά πλαίσια σε µία ακολουθία κινούµενων εικόνων είναι συνήθως πολύ όµοια. Συχνά, η µόνη διαφορά τους είναι πως κάποια κοµµάτια της εικόνας έχουν ελαφρώς µετακινηθεί ανάµεσα στα πλαίσια. Η κωδικοποίηση MPEG εκµεταλλεύεται αυτή τη χρονική συσχέτιση, διασπώντας κάθε νέο πλαίσιο σε µικρότερα κοµµάτια και ψάχνει στο προηγούµενο πλαίσιο να βρει από ποιο σηµείο ήρθαν αυτά τα κοµµάτια κάνοντας ανίχνευση κίνησης (motion compensation). Αν το περιεχόµενο αυτού του frame είχε σταλεί σχεδόν το ίδιο µε το προηγούµενο πλαίσιο, δεν υπάρχει χρησιµότητα στο να το στείλουµε ξανά. Απλά, στέλνουµε τις οδηγίες για να µετακινήσουµε τα κοµµάτια από το προηγούµενο πλαίσιο στις θέσεις που έχουν στο τρέχον. Επιπρόσθετα, µέσα σε ένα πλαίσιο, πολλές περιοχές όπως ο ουρανός ή οι τοίχοι έχουν ακριβώς το ίδιο χρώµα. Το MPEG εκµεταλλεύεται αυτή τη χωρική συσχέτιση διασπώντας τις εικόνες σε κατάλληλα κοµµάτια και µειώνοντας αυτά τα κοµµάτια σε ένα µόνο χρώµα. Αν κάποιες περιοχές από pixels έχουν περίπου το ίδιο χρώµα, γιατί να στέλνουµε το ίδιο χρώµα συνέχεια; Απλά µπορούµε να στείλουµε το χρώµα όλης της περιοχής µε τη µια. Επίσης, το ανθρώπινο µάτι συγχωρεί την προσέγγιση και την εξάλειψη λεπτοµερειών. Αυτό µπορούµε να το εκµεταλλευτούµε καθώς στις εικόνες υπάρχει πολύ περισσότερη λεπτοµέρεια από ότι χρήσιµη πληροφορία. Η κωδικοποίηση MPEG προσεγγίζει την ένταση της λεπτοµέρειας µε µερικές σκιές γλιτώνοντας πολλά bits σε σχέση µε την Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 14

αυθεντική απεικόνιση. Επίσης, το µάτι αντιλαµβάνεται λιγότερες µεταβολές χρώµατος ανά εκατοστό από µεταβολές φωτεινότητας. Το MPEG εκµεταλλεύεται αυτή την ιδιότητα απαλείφοντας ασήµαντες χρωµατικές λεπτοµέρειες που το ανθρώπινο µάτι ούτως ή άλλως δεν µπορεί να αντιληφθεί. Η εικόνα που ακολουθεί αναπαριστά µια εικόνα η οποία έχει διασπαστεί σε περίπου 300 τετράγωνα χρησιµοποιώντας τις ανωτέρω τεχνικές συµπίεσης. Αυτή η εικόνα αποτελεί µέρος µιας ακολουθίας video που αναπαριστά το πέρασµα µπροστά από µια σειρά σπιτιών που έχουν,µπροστά τους πολύχρωµα λουλούδια. Οι γκρι περιοχές υποδηλώνουν περιοχές που είχαν βρεθεί στο προηγούµενο πλαίσιο και έχουν µετακινηθεί στις τωρινές τους θέσεις. Εικόνα 3.1: Συµπιεσµένη εικόνα Στην ακόλουθη εικόνα έχουν περιγραφεί µε µπλε χρώµα κάποια κοµµάτια του πλαισίου και µε τις µπλε γραµµές (που καλούνται motion vectors) φαίνεται η ακριβής θέση της συγκεκριµένης περιοχής στο προηγούµενο πλαίσιο. Το διάνυσµα κίνησης -motion vector - (που µπορεί να χρειάζεται 4 bits να κωδικοποιηθεί) κωδικοποιείται στη ροή του MPEG αντί ολόκληρης της οµάδας εικονοστοιχείων (2048 bits). Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 15

Εικόνα 3.2: ιανύσµατα κίνησης Η αυθεντική εικόνα η οποία είχε πάρα πολύ λεπτοµέρεια και χρώµατα, έχει µετασχηµατιστεί στην εικόνα 3.1 το πρώτο βήµα της κωδικοποίησης (χρονική συσχέτιση). Είναι σηµαντικό το γεγονός πως η καινούρια εικόνα έχει σχεδόν ένα χρώµα (γκρι) σε συνδυασµό µε κάποιες λεπτοµέρειες. Η ακόλουθη εικόνα αναπαριστά την αρχική µετά την προετοιµασία για το δεύτερο βήµα της κωδικοποίησης (χωρική συσχέτιση και απαλοιφή λεπτοµερειών). Εικόνα 3.3: Εικόνα χωρίς λεπτοµέρειες Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 16

Η εικόνα 3.3 είναι ένα µέτρο της λεπτοµέρειας που αποµένει στην εικόνα µετά το πρώτο βήµα. Οι φωτεινότερες περιοχές αναπαριστούν τις µη κωδικοποιηµένες λεπτοµέρειες που αποµένουν στην εικόνα. Η τελική απεικόνιση είναι σχεδόν µαύρη, δηλαδή αποτελείται από µηδενικά ή µικρούς αριθµούς. Αυτοί οι µικροί αριθµοί απαιτούν µικρό αριθµό από bits για να αποθηκευτούν και µεταφερθούν. Οι αρχικά πολύχρωµη και πολύπλοκη ακολουθία εικόνων µετατράπηκε σε µια απεικόνιση εύκολο να αποθηκευτεί και να µεταδοθεί. 3.4 Αναλυτική περιγραφή λειτουργίας MPEG Για να επιτύχουµε την κωδικοποίηση MPEG χωρίζουµε τα πλαίσια σε 3 τύπους, στα I, P, B πλαίσια [8]. Τα I frames χρησιµοποιούνται ως frames αναφοράς για την πρόβλεψη µελλοντικών frames. Τα I πλαίσια, τα οποία εµφανίζονται µε ρυθµό 1 στα 10 ή στα 15, περιέχουν µόνο την πληροφορία που έχουν τα ίδια. Τα P πλαίσια µπορούν να προβλεφθούν από την πληροφορία που βρίσκεται στο κοντινότερο προηγούµενο I ή P πλαίσιο. Τα Β πλαίσια, πλαίσια διπλής κατεύθυνσης, κωδικοποιούνται χρησιµοποιώντας δεδοµένα από τα προηγούµενα Ι ή P πλαίσια καθώς και από τα επόµενα. Για παράδειγµα, στην επόµενη ακολουθία κινούµενων εικόνων (εικόνα 6) έχουµε ονοµατίσει τα I, P και B πλαίσια. I B B B P B B B P B B B P B B B Εικόνα 3.4: Σχέση I, P και Β πλαισίων Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 17

Έτσι, για κάποια ακολουθία εικόνων θα πάρουµε το εξής σχήµα κωδικοποίησης: ιάταξη πλαισίων του MPEG Πρόβλεψη P-πλαισίου Εµπρόσθια πρόβλεψη Β-πλαισίου Οπίσθια Πρόβλεψη Β-πλαισίου Εικόνα 3.5: Ακολουθία πλαισίων Η ανίχνευση κίνησης (motion compensation) που αναφέρθηκε παραπάνω και αποτελεί τη βασική τεχνική κωδικοποίησης του MPEG είναι η εξής: Ας φανταστούµε ένα I-πλαίσιο που δείχνει ένα τρίγωνο σε λευκό υπόβαθρο. Ένα ακόλουθο P-πλαίσιο δείχνει το ίδιο τρίγωνο αλλά σε άλλη θέση (Εικόνα 8). Η πρόβλεψη και η ανίχνευση κίνησης σηµαίνουν πως υπολογίζουµε ένα διάνυσµα κίνησης (motion vector) το οποίο δηλώνει πώς να µετακινήσουµε το τρίγωνο του I-πλαισίου έτσι ώστε να συµπίπτει µε το τρίγωνο του I-πλαισίου. Αυτή το διάνυσµα κίνησης είναι κοµµάτι της ροής του MPEG και διαιρείται σε µία οριζόντια και µία κάθετη παράµετρο. Αυτές οι συνιστώσες µπορούν να απέχουν θετικές και αρνητικές τιµές. Η θετική τιµή σηµαίνει πως πρέπει να κινηθούµε προς τα δεξιά ή προς τα κάτω αντίστοιχα. Η αρνητική τιµή σηµαίνει πως πρέπει να κινηθούµε προς τα αριστερά ή προς τα πάνω αντίστοιχα. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 18

ιάνυσµα κίνησης P - πλαίσιο Ι - πλαίσιο Εικόνα 3.6: ιάνυσµα κίνησης σχηµατικά Τα κοµµάτια του διανύσµατος κίνησης είναι σε ένα εύρος τιµών από -64 έως και +63. εδοµένου αυτού του γεγονότος, η προαναφερθείσα περιοχή µπορεί να βρεθεί µέχρι και 64*64 pixels µακριά. Όµως, αυτό το µοντέλο, προϋποθέτει ότι κάθε αλλαγή µεταξύ των πλαισίων µπορεί να εκφραστεί σαν µια απλή µετατόπιση των pixels. Αλλά αυτή η εικόνα που παρουσιάζεται στην εικόνα 9,αποδεικνύει ότι αυτή η σκέψη δεν είναι σωστή. Το κόκκινο ορθογώνιο της εικόνας, είναι µετατοπισµένο και περιστραµµένο κατά 5 µοίρες προς τα δεξιά. Έτσι, µια απλή µετατόπιση του κόκκινου ορθογωνίου θα προκαλέσει ένα λάθος πρόβλεψης. Γι αυτόν το λόγο, η ροή του MPEG, περιέχει έναν πίνακα για να αντισταθµίσει αυτό ακριβώς το λάθος πρόβλεψης. Ι - πλαίσιο P - πλαίσιο Εικόνα 3.7: Παράδειγµα µετακίνησης αντικειµένου Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 19

3.5 Σύγκριση επιπέδων MPEG Τα MPEG1 και MPEG2 είναι πρότυπα που επικεντρώνονται στη συµπίεση και αποκωδικοποίηση ροών από video (video streams). Το MPEG1 σχεδιάστηκε για να παρέχει κωδικοποίηση σε µέσα όπως Video CD και CDROM τα οποία έχουν ρυθµό αναπαραγωγής γύρω στα 1,2 Mbit/s. To MPEG2 σχεδιάστηκε για να προσφέρει υψηλότερη ποιότητα σε εφαρµογές µετάδοσης, επικεντρώνοντας κυρίως στην ψηφιακή τηλεόραση. Η βασική διαφορά ανάµεσα στο MPEG4 και στα MPEG1 και MPEG2 είναι ο τρόπος που το MPEG4 σχετίζεται µε το επίπεδο εφαρµογής. Το MPEG4 καθορίζει το περιεχόµενο που πρέπει να µεταφερθεί µέσω ενός δικτύου ως ένα σύνολο από αντικείµενα και σκηνές. Στο MPEG4 κάθε στοιχείο της εικόνας θεωρείται ως ένα αντικείµενο, Κάθε αντικείµενο έχει χρονικά και χωρικά χαρακτηριστικά που καθορίζουν τη συµπεριφορά του και τη θέση του στη σκηνή του video. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 20

ΚΕΦΑΛΑΙΟ 4 ΥΛΟΠΟΙΗΣΗ ΚΩ ΙΚΟΠΟΙΗΤΗ ΟΑ 4.1 ιαχωρισµός της εικόνας Για να µπορέσουµε να χρησιµοποιήσουµε τους αλγόριθµους σάρωσης της αρχικής µας εικόνας, µε κύριο στόχο να δούµε στην πράξη ποιος από αυτούς και σε συνδυασµό µε ποιο αποκωδικοποιητή παράγει τα καλύτερα από πλευράς ποιότητας αποτελέσµατα, πρέπει σε πρώτη φάση να κόψουµε αυτή την εικόνα µας, ή καλύτερα να την χωρίσουµε σε πλαίσια. Είναι γνωστές σε µας οι διαστάσεις της, δηλαδή γνωρίζουµε το µήκος της σε pixels,τόσο στην διάσταση χ, όσο και στη διάσταση ψ, όπως επίσης και το µήκος του κάθε πλαισίου σε pixels και πάλι και στις δύο διαστάσεις. Σε αυτό το σηµείο να αποσαφηνίσουµε, ότι υποθέτουµε - χωρίς βλάβη της γενικότητας - ότι το µήκος του κάθε πλαισίου σε εικονοστοιχεία είναι ακέραιο πολλαπλάσιο του µήκους της εικόνας σε εικονοστοιχέια. Εποµένως, είναι εύκολο να υπολογίσουµε τον συνολικό αριθµό των πλαισίων. Το επόµενο βήµα θα είναι να υπολογίσουµε και εν συνεχεία να αποθηκεύσουµε τις ακριβείς συντεταγµένες του κάθε πλαισίου σ έναν πίνακα, τον οποίο θα τον ονοµάσουµε Α. Αυτός, θα έχει για κάθε περίπτωση δύο στήλες και τόσες γραµµές, όσα και τα πλαίσια της εκάστοτε εικόνας. Η αριστερή στήλη αντιπροσωπεύει την διάσταση χ και θα περιέχει την τιµή της συντεταγµένης χ για κάθε πλαίσιο, ενώ η δεξιά στήλη του πίνακα αντιπροσωπεύει την διάσταση ψ και θα περιέχει την τιµή της συντεταγµένης ψ για κάθε πλαίσιο. Για να επιτευχθεί κάτι τέτοιο είναι απαραίτητη η δηµιουργία µιας συνάρτησης, την οποία ονοµάζουµε indexing. Αυτή, δέχεται τέσσερα ορίσµατα και επιστρέφει τις συντεταγµένες του κάθε πλαισίου, τις οποίες και αποθηκεύει στον πίνακα Α. Τα ορίσµατα που δέχεται είναι τα ακόλουθα: n: Μήκος της εικόνας σε pixels(διάσταση χ) m: Μήκος της εικόνας σε pixels(διάσταση ψ) k: Μήκος πλαισίου σε pixels(διάσταση χ) l: Μήκος πλαισίου σε pixels(διάσταση ψ) Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 21

Σ αυτό το σηµείο, να διευκρινίσουµε ότι η συνάρτησή µας επιστρέφει την κάτω δεξιά γωνία του κάθε πλαισίου και τις συντεταγµένες αυτές είναι που αποθηκεύει στον πίνακα Α. Στο Παράρτηµα Α, θα παρουσιαστεί αναλυτικά ο κώδικας της indexing. Το περιεχόµενο και η λογική της όµως, θα διευκρινιστούν αναλύοντας γραµµή προς γραµµή τον κώδικα ευθύς αµέσως. Στην αρχή δηµιουργούµε την συνάρτηση indexing, έτσι ώστε, όποτε την καλέσουµε από εδώ και στο εξής, να εκτελούνται αυτόµατα οι γραµµές του κώδικα που ακολουθούν τη δήλωσή της.στην αµέσως επόµενη γραµµή, αρχικοποιούµε τον µετρητή i στην τιµή 0 και τον βάζουµε να τρέχει µέχρι και το τελευταίο πλαίσιο της εικόνας, το οποίο θα είναι το ((n/k)*(m/l)) 1. Αµέσως µετά, υπολογίζουµε την τιµή που θα έχει η χ συντεταγµένη του κάθε πλαισίου και αποθηκεύουµε το αποτέλεσµα στην πρώτη στήλη του πίνακα Α. Η τιµή αυτή θα προκύπτει, αν στο υπόλοιπο της διαίρεσης του i µε το (n/k),προσθέσουµε το 1 και το πολλαπλασιάσουµε εν συνεχεία µε το k. Αυτή η διαδικασία δουλεύει καλά για τον υπολογισµό της χ συντεταγµένης, όχι όµως και της ψ. Ο λόγος είναι ότι για κάθε γραµµή του πίνακα, η ψ συντεταγµένη µένει πάντα σταθερή. Έτσι, για τον υπολογισµό της και την µετέπειτα τοποθέτησή της στη δεύτερη στήλη του πίνακα Α, υπολογίζουµε το πηλίκο της διαίρεσης του i µε το (n/k) και παίρνουµε έπειτα µέσω µιας ειδικής µεταβλητής, το ακέραιο µέρος του. Εν συνεχεία -και προς αποφυγή της τιµής 0- προσθέτουµε 1 και πολλαπλασιάζουµε µε το l.ένα παράδειγµα χρήσης του ανωτέρω κώδικα, µπορεί να είναι το ακόλουθο: Έστω ότι οι ενδεικτικές τιµές για τα ορίσµατα της indexing έχουν ως εξής: n m k l 32 32 8 8 Πίνακας 4.1: Ορίσµατα της indexing Τότε, η εικόνα µας θα αποτελείται από 16 πλαίσια, τα οποία µπορούµε να τα φανταστούµε σε έναν πίνακα 4*4. Οι συντεταγµένες του πρώτου πλαισίου θα είναι (8,8),ενώ οι αντίστοιχες του τελευταίου,θα είναι (32,32). Εκτελώντας τη συνάρτηση indexing, θα προκύψουν στην έξοδο, τ ακόλουθα αποτελέσµατα: Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 22

x 8 16 24 32 8 16 24 32 2 16 24 32 8 16 24 32 y 8 8 8 8 16 16 16 16 24 24 24 24 32 32 32 32 Πίνακας 4.2: Τιµές που επιστρέφει η Indexing Έχοντας αποθηκεύσει τις συντεταγµένες του κάθε πλαισίου της εικόνας µας στον πίνακα Α, πρέπει τώρα να δηµιουργήσουµε τους κατάλληλους εκείνους αλγόριθµους, ώστε να µπορέσουµε να σαρώσουµε τα πλαίσια της αρχικής µας εικόνας µε διαφορετική κάθε φορά σειρά και να εξάγουµε εν συνεχεία αποτελέσµατα, τα οποία και θα συγκρίνουµε. Οι αλγόριθµοι στους οποίους θα επικεντρωθούµε στα πλαίσια αυτής της διπλωµατικής εργασίας, είναι έξι τον αριθµό. 4.2 Τοπολογίες Ο πρώτος αλγόριθµος είναι ο πιο απλός από όλους και αυτό που κάνει στην πραγµατικότητα, είναι να σαρώνει όλα τα πλαίσια ένα προς ένα. Ξεκινάει από το πρώτο πλαίσιο της πρώτης γραµµής, φτάνει έως και το τελευταίο της και έπειτα, αλλάζει γραµµή, πηγαίνει στην επόµενη, την δεύτερη και επαναλαµβάνει την ίδια διαδικασία. Αυτός είναι και ο λόγος που δώσαµε σ αυτόν τον αλγόριθµο το συµβολικό όνοµα one_by_one.τα ορίσµατα που δέχεται είναι τέσσερα, τα (n,m,k,l). Στο παράρτηµα Α παραθέτουµε αναλυτικά τον κώδικα της one_by_one. Στις επόµενες γραµµές, θα εξηγήσουµε την λογική του και το πώς δουλεύει. Το πρώτο βήµα είναι να ορίσουµε έναν πίνακα, τον Α, τον οποίο και αρχικοποιούµε να είναι κενός. Έπειτα, ορίζουµε έναν µετρητή, τον i τον οποίο και θέτουµε να µετράει από το ένα έως και τον συνολικό αριθµό των γραµµών από τις οποίες αποτελείται η εικόνα µας και ο αριθµός των οποίων, δίνεται από το αποτέλεσµα της διαίρεσης (m/l).εν συνεχεία, για κάθε τιµή που έπαιρνε ο µετρητής, σαρώνονται µε φορά από αριστερά προς τα δεξιά όλα τα πλαίσια της εκάστοτε γραµµής και αποθηκεύονται στον κατάλληλο πίνακα. Ο δεύτερος -τον οποίο και ονοµάσαµε parline- διαβάζει τα πλαίσια κατά γραµµές. Συγκεκριµένα, για γραµµές περιττού αριθµού, διαβάζει ένα-ένα τα πλαίσια µε φορά από αριστερά προς τα δεξιά, ενώ για γραµµές άρτιου αριθµού, διαβάζει τα πλαίσια µε την Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 23

αντίθετη φορά και συγκεκριµένα, από δεξιά προς τα αριστερά. Αυτή η διαδικασία επαναλαµβάνεται έως ότου διαβαστεί και το τελευταίο πλαίσιο. Μόλις ολοκληρωνόταν αυτή η διαδικασία, στην οθόνη του υπολογιστή µας θα πάρουµε την αρχική µας εικόνα, από τα ίδια της τα πλαίσια. Σ αυτό το σηµείο, θα παραθέσουµε τον αλγόριθµο της parline, η οποία δέχεται τέσσερα ορίσµατα, τα n,m,k,l, τα οποία είναι τα ίδια µε αυτά της indexing και από εδώ και στο εξής, όποτε αναφερόµαστε σ αυτές τις παραµέτρους θα ισχύει η αρχικοποίηση που κάναµε παραπάνω. Επίσης, τα αποτελέσµατα που επιστρέφει η parline (και που είναι η σειρά µε την οποία θα διαβαστούν τα πλαίσια από τον πίνακα A), αποθηκεύονται σ έναν αρχικά άδειο πίνακα, τον οποίο και δηµιουργήσαµε για αυτόν τον σκοπό. Σ αυτό το σηµείο θα αναλύσουµε τον κώδικα της συνάρτησης parline(n,m,k,l). Στην αρχή δηµιουργούµε την συνάρτηση parline. Στις επόµενες γραµµές ακολουθεί η ανάλυση του κώδικά της. Αρχικοποιούµε µια ακέραια µεταβλητή µε την τιµή 0 και τη θέτουµε να τρέχει µέχρι το (m/l),δηλαδή για όλες τις γραµµές της εικόνας µας. Αν υποτεθεί ότι οι τιµές των n,m,k,l, είναι ίδιες µε προηγουµένως, τότε η µεταβλητή i θα τρέξει για τις τιµές 1,2,3 και 4. Αµέσως µετά, εξετάζουµε αν είµαστε σε γραµµή άρτιου αριθµού ή περιττού. Και στις δύο περιπτώσεις, η ιδέα είναι να αποθηκεύουµε στον πίνακά µας, ό,τι περιέχει(και το οποίο αρχικά είναι τίποτα, µιας και έχει οριστεί σαν κενός),καθώς και ένα-ένα τα πλαίσια που περιέχονται σε κάθε γραµµή τα οποία και διαβάζουµε από αριστερά προς δεξιά για περιττές γραµµές και από δεξιά προς αριστερά για άρτιες και γι αυτόν τον λόγο σ αυτές, το βήµα σάρωσης έχει οριστεί σε 1. Εν συνεχεία, προχωρήσαµε στην υλοποίηση του τρίτου κατά σειρά αλγορίθµου σάρωσης, τον οποίο και ονοµάσαµε meandric και αφορµή γι αυτό ήταν, ο χαρακτηριστικός τρόπος µε τον οποίο ο συγκεκριµένος αλγόριθµος σαρώνει τα πλαίσια και ο οποίος θυµίζει σε µεγάλο βαθµό τον αρχαιοελληνικό µαίανδρο. Απαραίτητη προϋπόθεση για την σωστή λειτουργία, είναι να ικανοποιούνται δύο συνθήκες. Η πρώτη έχει να κάνει µε το µέγεθος της εικόνας µας. Πρέπει να είναι τετραγωνική, δηλαδή να αποτελείται από τόσες γραµµές, όσες ακριβώς θα είναι και οι στήλες. Ο δεύτερος περιορισµός έχει να κάνει µε την αναγκαιότητα οι διαστάσεις της να είναι πολλαπλάσιο του τρία. Αυτό συβαίνει, διότι ο meandric σαρώνει εννιάδες από πλαίσια, τα οποία σχηµατίζουν ένα τετράγωνο πλευράς τριών πλαισίων. Αν λοιπόν η εικόνα µας έχει για Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 24

παράδειγµα εφτά γραµµές, τότε, τα πλαίσια της έβδοµης γραµµής, δεν θα µπορέσουν να σαρωθούν. Εποµένως, θέλουµε η εικόνα να είναι (3*3), (9*9), (12*12),(21*21) κτλ. Αφού εξασφαλίσαµε ότι όλοι οι περιορισµοί είχαν αντιµετωπιστεί, έπειτα φτιάξαµε τον αλγόριθµο. Για τον λόγο αυτό, δηµιουργήσαµε µια συνάρτηση, που την ονοµάσαµε meandric και η οποία χρειάζεται τέσσερα ορίσµατα, το m, το n, το k, και το l. Παρακάτω, θα εξηγήσουµε τον παραπάνω αλγόριθµο, γραµµή προς γραµµή. Αρχικά, oρίζουµε στην συνάρτηση meandric να επιστρέφει τα αποτελέσµατα της κάθε φορά που θα καλείται στον πίνακα Α. Έπειτα,εξετάζουµε αν ικανοποιούνται οι δύο περιορισµοί που αναλύσαµε παραπάνω. Εάν κάποιο από τα δύο αυτά κριτήρια δεν ικανοποιείται, τότε η συνάρτηση meandic επιστρέφει ένα µήνυµα λάθους στην οθόνη του υπολογιστή. Σε αντίθετη περίπτωση, προχωράµε και ορίζουµε τον πίνακα Α,ο οποίος αρχικά θα είναι κενός. Έπειτα, βρίσκουµε το πρώτο κεντρικό πλαίσιο, το οποίο παίζει πρωταγωνιστικό ρόλο στον συγκεκριµένο αλγόριθµο και κατόπιν, αρχικοποιούµε µια τοπική µεταβλητή-η οποία και µας δείχνει το πόσα κεντρικά πλαίσια ανά γραµµή έχουµε και άρα αποτελεί το κριτήριο αλλαγής ή όχι γραµµής-σε ένα. Μετά, ελέγχουµε αν δεξιά από το κεντρικό πλαίσιο, υπάρχουν άλλα ώστε να µπορέσουµε να τα σαρώσουµε και για όση ώρα συµβαίνει αυτό, γεµίζουµε τον πίνακα Α. Στην συνέχεια, ελέγχουµε µέσω της παραπάνω µεταβλητής, αν πρέπει να αλλάξουµε γραµµή, ή αν υπάρχουν και άλλα πλαίσια στην ίδια γραµµή, ώστε να βρούµε το νέο κέντρο προκειµένου να εφαρµοστεί ένας ακόµα µαίανδρος και αν η απάντηση είναι καταφατική, εντοπίζουµε το νέο πλαίσιο που θα παίξει τον ρόλο του κεντρικού στην ίδια γραµµή και αυξάνουµε τώρα τον µετρητή µας κατά ένα, αλλιώς, αλλάζουµε γραµµή, εντοπίζουµε εκεί το κεντρικό πλαίσιο και θέτουµε και πάλι τον µετρητή ίσο µε ένα. Ο τέταρτος αλγόριθµος σάρωσης που υλοποιήσαµε ήταν αυτός που συµβολικά ονοµάσαµε snake, εξαιτίας του τρόπου επιλογής των πλαισίων, ο οποίος και θυµίζει σε µεγάλο βαθµό το γνωστό φιδάκι. Όπως ίσως διαισθητικά µπορεί να γίνει αντιληπτό, την κίνηση του snake διέπει ένας κανόνας. Ανάλογα µε το σε ποιά γραµµή ή στήλη βρισκόµαστε, τόσα πλαίσια θα κινούµαστε και µάλιστα, υπάρχουν συγκεκριµένα ζευγάρια κίνησης τα οποία εξαρτώνται από το αν είναι άρτια ή περιττή η γραµµή... εξιά και πάνω για τις περιττές και κάτω και αριστερά για τις άρτιες. Για να γίνει περισσότερο αντιληπτό αυτό, θα δώσουµε ένα παράδειγµα. Αν είµαστε στην τρίτη γραµµή(η οποία είναι περιττού αριθµού),τότε θα κινηθούµε τρία βήµατα προς τα δεξιά και εν συνεχεία Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 25

άλλα τόσα προς τα πάνω. Αν βρισκόµαστε στην έκτη στήλη(η οποία και είναι άρτιου αριθµού),τότε, θα κινηθούµε έξι βήµατα προς τα κάτω και αµέσως µετά, άλλα τόσα προς τα αριστερά. Αυτή ακριβώς η παρατήρηση υπήρξε η βάση, πάνω στην οποία στηριχτήκαµε προκειµένου να υλοποιήσουµε τον αλγόριθµο του snake.το µοναδικό πρόβληµα προέκυψε για τις δύο πρώτες γραµµές και αυτό γιατί, αν κοιτάξουµε προσεχτικά το σχήµα, θα διαπιστώσουµε ότι για αυτές τις δύο γραµµές, δεν ικανοποιείται το παραπάνω κριτήριο. Μάλιστα, αυτό το πρόβληµα είναι υπαρκτό ανεξαρτήτως του µεγέθους τόσο της εικόνας, όσο και των πλαισίων. Η λύση σ αυτό, είναι η αρχικοποίηση και η εκ των προτέρων αποθήκευσή των πλαισίων στον πίνακα Α. Στην αρχή, αρχικοποιούµε τον πίνακα Α και τοποθετούµε σ αυτόν, τα τέσσερα πρώτα πλαίσια, τα οποία και είναι το πρώτο, το δεύτερο, το (m/l)+2 και το (m/l)+1. Έπειτα, αρχικοποιούµε δύο µεταβλητές, τις i και j, οι οποίες και θα παίξουν το ρόλο των δεικτών. Συγκεκριµένα, η µεταβλητή i θα δείχνει σε ποιά γραµµή είµαστε κάθε φορά(προκειµένου να ξέρουµε πόσα βήµατα-πλαίσια θα πρέπει να κινηθούµε),ενώ η µεταβλητή j θα δείχνει σε ποιά στήλη βρισκόµαστε. Μετά, τοποθετούµε στον πίνακα Α, άλλο ένα πλαίσιο, το πρώτο της τρίτης γραµµής. Σε αυτό το σηµείο, να διευκρινίσουµε, ότι κάθε φορά που θα πραγµατοποιείται το ζεύγος κίνησης(δεξιά και πάνω ή κάτω και αριστερά), στο τέλος, ο αλγόριθµος κάνει ένα πήδηµα. Προκειµένου να πιάσουµε και αυτό το πλαίσιο, αυξάνουµε κατά ένα την τιµή της µεταβλητής i ή j(ανάλογα µε το πού βρισκόµαστε)και υπολογίζουµε το ποιό πλαίσιο είναι και εν συνεχεία το τοποθετούµε µέσα στον πίνακα Α. Τέλος, ορίζουµε τον µετρητή k,να τρέχει από 3 έως και τον συνολικό αριθµό των γραµµών που έχουµε και που προσδιορίζεται από την σχέση (m/l). Έπειτα, για κάθε µία από αυτές τις γραµµές, ελέγχουµε αν είναι περιττή ή άρτια, µέσω της συνάρτησης mod. Εάν είναι περιττή, τότε εκτελείται το if στον κώδικά µας, σε αντίθετη περίπτωση, αν δηλαδή η εκάστοτε γραµµή είναι άρτια, τότε εκτελείται το κοµµάτι του else. Όταν εκτελείται το if,σηµαίνει ότι η γραµµή στην οποία βρισκόµαστε είναι περιττού αριθµού και εποµένως η κίνηση θα γίνεται προς τα δεξιά και εν συνεχεία προς τα πάνω. Για όσα πλαίσια θα κινούµαστε δεξιά, ο µετρητής i θα παραµένει σταθερός, ενώ θα µεταβάλλεται ο µετρητής j. Για αυτό το λόγο θέτουµε τον j µέσα σε ένα βρόγχο επανάληψης και για κάθε τιµή του σαρώνουµε τα αντίστοιχα πλαίσια, τα οποία και αποθηκεύουµε στον πίνακα Α. Αφού γίνει αυτό, ακολουθεί η κίνηση προς τα πάνω. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 26

Τώρα, ο µετρητής j είναι αυτός που διατηρείται σταθερός(µιας και δεν αλλάζουµε στήλη)και ο i είναι αυτός που µεταβάλλεται. Έτσι, κάνουµε ακριβώς ό,τι και προηγουµένως, µόνο που τώρα βρίσκεται ο i µέσα στον βρόγχο επανάληψης και βέβαια, επειδή η κίνηση γίνεται µε φορά από κάτω προς τα πάνω, το βήµα στην επανάληψη πρέπει να οριστεί σε 1.Αφού ολοκληρωθούν και οι δύο αυτοί βρόγχοι, έπειτα, ελέγχουµε αν ο µετρητής j έχει ξεπεράσει τον αριθµό στηλών που έχουµε(και που αν έχει γίνει κάτι τέτοιο σηµατοδοτεί και το τέλος του αλγορίθµου, µιας και δεν θα υπάρχουν άλλα πλαίσια να σαρώσουµε).αν όχι, τότε αυξάνουµε την τιµή του κατά ένα και στη συνέχεια, αποθηκεύουµε στον πίνακα Α το πλαίσιο που βρίσκεται στην ίδια µε προηγουµένως γραµµή και στην διπλανή ακριβώς στήλη ( πιάνουµε κατ αυτόν τον τρόπο το πήδηµα που γίνεται και το οποίο εξηγήσαµε πριν ). Μετά, βγαίνουµε έξω απ το if µε αποτέλεσµα να αυξάνεται η τιµή του µετρητή k στην for κατά ένα. Αν η γραµµή είναι άρτια, η λογική δεν αλλάζει. Η κύρια διαφορά είναι ότι σ αυτή τη περίπτωση, η κίνηση γίνεται αρχικά προς τα κάτω και έπειτα προς τ αριστερά. Για όσο χρόνο σαρώνουµε τα πλαίσια από πάνω προς τα κάτω, η µεταβλητή j είναι αυτή που παραµένει σταθερή και η i είναι εκείνη που αλλάζει, ενώ κατά την διάρκεια της κίνησης µε φορά από δεξιά προς τ αριστερά, η µεταβλητή i παραµένει ως έχει(µιας και παραµένουµε στην ίδια γραµµή),ενώ η j µεταβάλλεται. Αφού εκτελεστούν και οι δύο κινήσεις, ελέγχουµε αν η µεταβλητή i έχει ξεπεράσει τον αριθµό των γραµµών που έχουµε και αν όχι, αυξάνουµε την τιµή του κατά ένα και σαρώνουµε το πλαίσιο εκείνο που θα βρίσκεται στην ίδια µε το τελευταίο σαρωθέν πλαίσιο στήλη (δηλαδή την πρώτη) και στην αµέσως παρακάτω γραµµή. Ο πέµπτος που δηµιουργήσαµε ήταν εκείνος που συµβολικά ονοµάσαµε spiralv3. Μάλιστα, δεν θα είχαµε προβεί καθόλου στην υλοποίηση του, µιας και η ρουτίνα υπάρχει ήδη έτοιµη, στο Matlab. Ο λόγος που αναγκαστήκαµε να προβούµε σε µια µικρή τροποποίηση, είναι ότι εµείς έχουµε υποθέσει ότι η αρίθµηση των πλαισίων στην εικόνα µας γίνεται κατά γραµµές, από αριστερά προς δεξιά. Αυτό έχει σαν αποτέλεσµα, στον πίνακα A της συνάρτησης indexing να τοποθετούνται οι συντεταγµένες των πλαισίων η µία κάτω απ την άλλη ξεκινώντας απ αυτές του πρώτου πλαισίου. Όταν λοιπόν τρέχουµε τον κώδικα κάποιας τοπολογίας, αυτός αποθηκεύει στον κατάλληλο πίνακα, την σειρά µε την οποία σαρώνονται τα πλαίσια. Έτσι, µέσω της coding, πηγαίνουµε στον πίνακα Α της indexing και διαβάζουµε την γραµµή εκείνη, η οποία υποδεικνύεται από την πρώτη θέση αυτού του πίνακα. Αντίθετα, η συνάρτηση spiral του Matlab, τοποθετεί µέσα στον πίνακα τα πλαίσια, ξεκινώντας όµως την αρίθµηση από Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 27

εκείνο που διαβάστηκε πρώτο. Αν δηλαδή διαβαστεί το κεντρικό πλαίσιο πρώτο, τότε θα αποθηκευτεί στον πίνακά µας σαν πλαίσιο 1 και όχι σαν πλαίσιο 8 -αν πρόκειται για εικόνα 3*5-. Έτσι, όταν καλέσουµε την coding, θα διαβάσουµε τις συντεταγµένες του πρώτου πλαισίου και όχι αυτού που πραγµατικά θέλουµε. Η αιτία για το όνοµα της ρουτίνας αυτής, πηγάζει για ακόµα µια φορά από τον χαρακτηριστικό, ιδιαίτερο τρόπο σάρωσης των πλαισίων. Για να γίνουµε πιο σαφείς, ο συγκεκριµένος αλγόριθµος εντοπίζει το κεντρικό πλαίσιο της εικόνας και εν συνεχεία, έχοντάς το ως αφετηρία, ξεκινάει την σάρωση των υπολοίπων πλαισίων µε µια προκαθορισµένη σειρά, η οποία θυµίζει έντονα µια σπειροειδή κίνηση. Σ αυτό το σηµείο πρέπει να λάβουµε υπόψη µας δύο περιορισµούς. Ο πρώτος, είναι ήδη γνωστός και αφορά την παραδοχή ότι πρέπει η εικόνα µας να είναι τετραγωνική, γιατί σε αντίθετη περίπτωση, κατά την διάρκεια της σάρωσης κάποιες από τις γραµµές καθώς και κάποιες από τις στήλες της θα µείνουν απέξω. εν αρκεί όµως µόνο η ικανοποίηση του συγκεκριµένου κριτηρίου για την σωστή λειτουργία του αλγορίθµου για την σπειροειδή σάρωση. Είναι απαραίτητο να ισχύει και κάτι άλλο. Πρέπει η εικόνα µας -πέρα από τετραγωνική- να αποτελείται παράλληλα και από περιττό αριθµό γραµµών και στηλών. Ο λόγος που επιβάλλει έναν τέτοιο περιορισµό δεν είναι άλλος, απ την ανάγκη εύρεσης του κεντρικού πλαισίου. Η έκτη τοπολογία που δηµιουργήσαµε βασίζεται στις καµπύλες Hilbert. Οι καµπύλες Hilbert είναι καµπύλες που επισκέπτονται κάθε σηµείο ενός τετράγωνου πλαισίου µεγέθους 2*2, 4*4, 8*8 ή οποιασδήποτε δύναµης του 2. Όπως γίνεται εύκολα κατανοητό, αυτός είναι και ο περιορισµός που τίθεται στη χρήση των καµπυλών ως τοπολογίας, η εικόνα µας να είναι τετραγωνική µε µήκος πλευράς ίσο µε δύναµη του 2. Οι καµπύλες περιγράφηκαν αρχικά από τον David Hilbert το 1892 ως λύση στο πρόβληµα του περιδεύοντος ταχυδρόµου (Traveling Salesman Problem TSP) αλλά έχουν βρει και πολλές εφαρµογές στην επεξεργασία εικόνας [8-9]. Το βασικό χαρακτηριστικό µίας καµπύλης Hilbert είναι πως σε κάθε βήµα του σχεδιασµού της επιλέγεται το κοντινότερο σηµείο, στη διπλωµατική µας το κοντινότερο εικονοπλαίσιο. Αυτό έχει ως αποτέλεσµα να εκµεταλλευόµαστε σε µεγάλο βαθµό τη διασυσχέτιση. Για να υλοποιήσουµε την τοπολογία Hilbert, κάναµε χρήση της έτοιµης συνάρτησης hlbrtcrv η οποία δέχεται ως όρισµα την πλευρά του τετραγώνου και επιστρέφει σε ένα δισδιάστατο πίνακα τις συντεταγµένες των σηµείων που αποτελούν την καµπύλη. Στην εργασία µας καλούµε τη συνάρτηση αυτή και στη συνέχεια χρησιµοποιώντας τη Σχέση Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 28

4.1 µετατρέπουµε την αναπαράσταση µε συντεταγµένες σε µονοδιάστατη αναπαράσταση των πλαισίων. [ x() i 1 ] k y() i A = * + Σχέση 4.1 4.3 Σχηµατική αναπαράσταση τοπολογιών Στην ενότητα αυτή θα παρουσιάσουµε σχηµατικά τις διαφορετικές τοπολογίες τις οποίες χρησιµοποιήσαµε. Υπενθυµίζουµε πως οι τοπολογίες αυτές χρησιµοποιούνται για να ορίσουν τη σειρά µε την οποία εισάγονται τα πλαίσια της εικόνας στον κωδικοποιητή video µε στόχο την καλύτερη εκµετάλλευση της συσχέτισης. Στο Σχήµα 4.1 που ακολουθεί παραθέτουµε το σχήµα της τοπολογίας one_by_one. Σχήµα 4.1: Τοπολογία one_by_one Σηµειώνουµε ότι η τοπολογία αυτή µοιάζει ιδιαίτερα µε αυτή που παρουσιάζεται αµέσως µετά στο σχήµα 4.2 και ο λόγος για τον οποίο µελετήθηκαν και οι δύο αυτές τοπολογίες ήταν για να µελετηθεί πόσο επηρεάζει η απότοµη ή οµαλή αλλαγή της γραµµής τον αλγορί8µους κωδικοποίησης. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 29

Σχήµα 4.2: Τοπολογία parline Στο Σχήµα 4.2 παρουσιάζουµε την τοπολογία parline και στο Σχήµα 4.3 που ακολουθεί τη meandric. Σχήµα 4.3: Τοπολογία meandric Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 30

Σχήµα 4.4: Τοπολογία spiral Στο Σχήµα 4.4 παρατηρούµε την τοπολογία spiral και στο Σχήµα 4.5 τη snake. Σχήµα 4.5: Τοπολογία snake Τέλος, στο Σχήµα 4.6 παρουσιάζουµε την τοπολογία Hilbert, όπως αυτή προκύπτει από την καµπύλη Hilbert για τετράγωνο πλευράς 8. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 31

Σχήµα 4.6: Τοπολογία Hilbert 4.4 Αναδίαταξη εικόνας Για να βελτιώσουµε ακόµη περισσότερο τον κωδικοποιητή µας σκεφτήκαµε και ακόµη ένα στοιχείο το οποίο είναι σηµαντικό. Με τις διάφορες τοπολογίες, έχουµε τη δυνατότητα να κόψουµε την αρχική τρισδιάστατη αναπαράσταση σε µικροεικόνες και αυτές να τις περάσουµε µε µια συγκεκριµένη σειρά σε ένα κωδικοποιητή κινούµενης εικόνας. Πρέπει, όµως, να βεβαιωθούµε πως και ο κωδικοποιητής θα δώσει τα βέλτιστα αποτελέσµατα. Παρατηρώντας τις ΟΑ που έχουµε, βλέπουµε πως κάποιες από αυτές αποτελούνται από µικροεικόνες µεγέθους 8*8 ή 16*16 εικονοστοιχείων. Οι κωδικοποιητές MPEG, όπως είδαµε στο κεφάλαιο 3, πργµατοποιούν ανίχνευση κίνησης για να επιτύχουν συµπίεση της ακολουθίας εικόνων. Το πρόβληµα που συναντάµε στην υλοποίηση του κωδικοποιητή µας είναι πως το MPEG πραγµατοποιεί ανίχνευση κίνησης σε περιοχές µεγέθους το λιγότερο 8*8 ή 16*16 εικονοστοιχείων. Συµπεραίνουµε, λοιπον, πως για τις ΟΑ που διαθέτουµε και που αποτελούνται από µικροεικόνες αυτού του µεγέθους δε θα µπορέσουµε να έχουµε ανίχνευση κίνησης και, ως αποτέλεσµα, δε θα µπορέσουµε να έχουµε µεγάλο βαθµό συµπίεσης. Για να αντιµετωπίσουµε αυτό το πρόβληµα, δηµιουργήσαµε µια ρουτίνα η οποία έιναι απλή στην υλοποίηση και αναδιατάσσει την εικόνα µας έτσι ώστε να αποτελείται από λιγότερα, µεγαλύτερα σε µέγεθος εικονοπλαίσια. Για παράδειγµα, αν έχουµε µία ΟΑ η Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 32

οποία αποτελείται από 256 µικροεικόνες µεγέθους 8*8, χρησιµοποιούµε τη ρουτίνα µας και την µετατρέπουµε σε µία ΟΑ που αποτελείται απο 8*8 µικροεικόνες µεγέθους 256*256. Στο Σχήµα 4.7 παρουσιάζουµε ένα παράδειγµα µετατροπής µίσε εικόνας που αποτελείται από 4*4 µικροεικόνες µεγέθους 3*3 σε µία που αποτελείται από 3*3 µικροεικόνες µεγέθους 4*4 εικονοστοιχείων. Στο σχήµα έχουµε σηµειώσει το κάθε εικονοστοιχείο µε διαφορετικό χρώµα ώστε να γίνει πιο κατανοητή η αναδιάταξη. Σχήµα 4.7: Παράδειγµα αναδιάταξης. Η ρουτίνα που δηµιουργήσαµε ονοµάζεται IPmesh και ο κώδικάς της παρατίθεται στο παράρτηµα Α. Η λειτουργία της είναι απλή, αρχικά διαβάζουµε την εικόνα και την κάνουµε τετραγωνική, αν δεν είναι, προσθέτοντας µηδενικά στα άκρα της. Στη συνέχεια, έχοντας µία επανάληψη από 1 ως το µέγεθος της µικροεικόνας (στο παράδειγµα του σχήαµτος ως 3), εισάγουµε σε ένα νέο πίνακα τις στήλες που είναι αριθµηµένες µε 1, 2,... µέγεθος µικροεικόνας. Στη συνέχεια, από το νέο αυτό πίνακα, και µε την ίδια τεχνική, παίρνουµε τις αντίστοιχες γραµµές. Ο τελικός πίνακας που έχουµε, περιέχει την αναδιαταγµένη εικόνα. 4.5 Υλοποίηση Σε αυτό το σηµείο, είµαστε πλέον σε θέση να αναλύσουµε τον κώδικα της βασικής συνάρτησης την οποία υλοποιήσαµε και δεν είναι άλλη από την coding. Αυτή, καλεί όλες τις άλλες ρουτίνες που έχουµε δηµιουργήσει και παρουσιάσει στις προηγούµενες σελίδες. Κύριος στόχος της είναι η δηµιουργία ενός video από την αρχική εικόνα διαβάζοντας τη σύµφωνα µε την τοπολογία που επιλέξαµε. Το πρώτο πράγµα που κάνει αυτός ο αλγόριθµος, είναι να διαβάσει την τρισδιάστατη εικόνα την οποία χρησιµοποιούµε και να την αποθηκεύσει σ έναν πίνακα J. Μετά, πρέπει να την κόψουµε σε κάποια σηµεία, έτσι ώστε να την φέρουµε στα µέτρα µας. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 33

Με αυτό εννοούµε ότι πρέπει να έχει συγκεκριµένο µέγεθος προκειµένου να µπορέσουµε να εφαρµόσουµε σε αυτή τις διάφορες τοπολογίες σάρωσης. Αφού το κάνουµε αυτό αποθηκεύουµε την κοµµένη εικόνα στον πίνακα I. Ορίζουµε εν συνεχεία το µέγεθος σε pixels του κάθε πλαισίου και µετά ορίζουµε ένα κελί, το P, στο οποίο και τοποθετούµε όλες τις τοπολογίες και από εκεί διαλέγουµε κάθε φορά την επιθυµητή. Ορίζουµε έπειτα τον κωδικοποιητή σε none, δηλαδή δηµιουργούµε ένα ακωδικοποίητο avi αρχείο αφού στη συνέχεια θα το κωδικοποιήσουµε µε άλλα εργαλεία. Μετά, αποθηκεύουµε στον πίνακα xycoord, αυτό που επιστρέφει η συνάρτηση indexing και το οποίο είναι οι συντεταγµένες της κάτω δεξιάς γωνίας του κάθε frame της εικόνας. Με αυτό τον τρόπο έχουµε χωρίσει την αρχική εικόνα στα πλαίσιά της. Εν συνεχεία, για όσο µέγεθος έχει η κάθε τοπολογία, κάνουµε τα εξής: Βάζουµε σ έναν κενό πίνακα που δηµιουργήσαµε, τον fr, ένα-ένα τα πλαίσια της εικόνας µας. Ο τρόπος µε τον οποίο παίρνουµε τα πλαίσια εξαρτάται από την τοπολογία που επιλέγουµε. Συγκεκριµένα, πηγαίνουµε στον πίνακα xycoord, από τον οποίο και επιλέγουµε την γραµµή την οποία θέλουµε και η οποία αντιστοιχεί σε κάποιο πλαίσιο. Αυτό, το επιλέγουµε και το βάζουµε στον fr, αφού πρώτα µετακινηθούµε στην αρχή του. Ο λόγος είναι ότι στην xycoord αποθηκεύουµε την κάτω δεξιά γωνία του κάθε πλαισίου. Αφού ολοκληρωθεί η διαδικασία αυτή, βάζουµε στην µεταβλητή mov τα περιεχόµενα του πίνακα fr και τέλος, κλείνουµε και σώζουµε το αρχείο.avi. Έχοντας δηµιουργήσει τα video σε µορφή ακωδικοποίητου.avi πρέπει να τα κωδικοποίησουµε κατάλληλα. Για να το επιτύχουµε αυτό χρησιµοποιούµε το πρόγραµµα Tsunami MPEG encoder version 3.0 [10]. Το πρόγραµµα αυτό µας δίνει τη δυνατότητα να διαβάσουµε το αρχείο που δηµιουργήσαµε και να το κωδικοποιήσουµε µε όποιο κωδικοποιητή θέλουµε. Για τις ανάγκες αυτής της διπλωµατικής χρησιµοποιήσαµε τον κωδικοποιητή MPEG του οποίου η θεωρία έχει παρουσιαστεί παραπάνω. Από κάθε αρχείο τύπου.avi παράγουµε 5 αρχεία τύπου mpeg µε την εξής διαφορά. Αλλάζουµε την απόσταση που έχουν τα Ι πλαίσια κατά την κωδικοποίηση την οποία στη συνέχεια θα καλούµε n. Οι αποστάσεις είναι 3, 6, 9, 12, 15. Σχηµατικά, το group of pictures (GOP) θα είναι ανάλογα µε το n: Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 34

n GOP 3 IBBP 6 IBBPBBP 9 IBBPBBPBBP 12 IBBPBBPBBPBBP 15 IBBPBBPBBPBBPBBP Πίνακας 4.2: οµή του GOP Αφού δηµιουργήσουµε τα video µε κωδικοποίηση MPEG, τα ξανακάνουµε σε µορφή ακωδικοποίητου avi έτσι ώστε να τα συγκρίνουµε µε τα αρχικά και να ελέγξουµε το PSNR. Για να πραγµατοποιηθεί αυτή η εργασία χρησιµοποιούµε ξανά το πρόγραµµα Tsunami MPEG encoder. Η εργασία που µένει να ολοκληρωθεί είναι η σύγκριση των αρχικών video µε αυτά που παρήγαµε έτσι ώστε να ελέγξουµε αν επιτύχαµε την επιθυµητή συµπίεση µε ανεκτά αποτελέσµατα στην ποιότητα. Για να πραγµατοποιήσουµε τη σύγκριση αυτή χρησιµοποιούµε το πρόγραµµα MSU video quality measure. Με τη βοήθεια αυτού του προγράµµατος, υπολογίζουµε το λόγω του σήµατος προς το θόρυβο (peak signal-tonoise ratio PSNR) για κάθε κανάλι χρώµατος ( R, G, B ) και στη συνέχεια το συνολικό PSNR. Σε αυτό το σηµείο, να κάνουµε µια παρένθεση στη ανάλυση του κώδικα και να εξηγήσουµε -παραθέτοντας το µαθηµατικό υπόβαθρο- τι ακριβώς είναι το PSNR. Το PSNR χρησιµοποιείται συνήθως σαν ένα µέτρο εκτίµησης της ποιότητας σε περιπτώσεις συµπίεσης εικόνας. Ορίζεται ευκολότερα µέσω µιας ποσότητας, του µέσου τετραγωνικού σφάλµατος (MSE), το οποίο για δύο µονοχρωµατικές εικόνες -έστω Ι και Κ-, µεγέθους m n, όπου η µία εκ των δύο θεωρείται ως µια προσέγγιση της άλλης συµπεριλαµβανοµένου του θορύβου, ορίζεται ως εξής: m 1 n 1 1 MSE= I K mn 2 ( (, ) (, )) i j i j 2 i= 0 j= 0 Σχέση 4.1: Μέσο τετραγωνικό σφάλµα Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 35

Το PSNR ορίζεται ως εξής: PSNR 2 MAX I = 10 log 10 = 20 log MSE Σχέση 4.2: Υπολογισµός PSNR 10 MAX MSE I Το ΜΑΧ Ι ορίζεται ως µέγιστη τιµή που µπορεί να λάβει το εικονοστοιχείο µιας εικόνας. Όταν τα εικονοστοιχεία αναπαρίστανται χρησιµοποιώντας 8 bits ανά δείγµα, τότε η τιµή του ορίζεται στο 255. Τυπικές τιµές του PSNR είναι µεταξύ 30 και 40 db για εικόνες η οποίες παρουσιάζουν πολύ µικρές διαφορές λόγω κβάντισης. Στη µελέτη µας υπολογίζουµε το PSNR για κάθε κανάλι χρώµατος ξεχωριστά. Για να υπολογίσουµε το συνολικό PSNR, υπολογίζουµε τη µέση τιµή των τριών τιµών που έχουµε βρει. Ο τύπος για τον υπολογισµό του συνολικού PSNR είναι ο ακόλουθος: PSNR TOT = PSNRR + PSNRG + 3 PSNR B Σχέση 4.3: Υπολογισµός συνολικού PSNR, και για τα 3 κανάλια χρώµατος Τα διαγράµµατα που περιγράφουν τα αποτελέσµατα µε βάση τις παραπάνω ορισµένες µετρικές ακολουθούν στο επόµενο κεφάλαιο. Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 36

ΚΕΦΑΛΑΙΟ 5 ΠΕΙΡΑΜΑΤΙΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ 5.1 Γενικά Για την αντικειµενική αξιολόγηση του κωδικοποιητή πραγµατοποιήθηκε µία σειρά πειραµάτων στα οποία µεταβάλλονταν διάφορες παράµετροι του σχήµατος κωδικοποίησης. Μία από τις βασικές παράµετρους που µελετήθηκαν αφορούσε τις διαφορετικές τοπολογίες που χρησιµοποιήθηκαν για τη µετατροπή του δισδιάστατου πλέγµατος των µικροεικόνων σε µονοδιάστατη σειρά, όπως αναλύθηκε στο κεφάλαιο 4. Επιπλέον µελετήθηκαν ο βαθµός στον οποίο επηρεάζει την αποτελεσµατικότητα του κωδικοποιητή το µέγεθος των µικροεικόνων που συνθέτει µία ΟΑ καθώς επίσης και η εξάρτηση του τελικού αποτελέσµατος από τη δοµή της οµάδας εικόνων που χρησιµοποιήθηκε. 5.2 ιαγράµµατα Σχολιασµός Ακολουθούν τα διαγράµµατα που εξαγάγαµε από την εκτέλεση των παραπάνω προγραµµάτων. Αρχικά, θα παραθέσουµε τα διαγράµµατα PSNR προς n για διαφορετικά µεγέθη µικροεικόνων και κάθε τοπολογία. asp256 36.264 PSNR 36.186 36.108 36.031 35.953 35.875 35.798 one by one parline meandric snake spiral hilbert 35.720 n Σχήµα 5.1: PSNR σε σχέση µε το n για πλαίσιο 256*256 Ι. Γ. Λιωνής, Σ. Μ. Ρέκκας 37