Μελέτη για Υλοποίηση σε VHDL του Αλγορίθµου SCAN για Συµπίεση Video

Σχετικά έγγραφα
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ Η/Υ ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΩΝ & ΥΛΙΚΟΥ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο

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

3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ

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

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

19/3/2007 Πολυµέσα και Συµπίεση εδοµένων

Συστήματα Πολυμέσων. Ενότητα 3: Εισαγωγικά θέματα Συμπίεσης. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Συστήματα Πολυμέσων. Ενότητα 15: Συμπίεση Ψηφιακού Βίντεο. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

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

Ψηφιακή Επεξεργασία Εικόνας

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

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

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

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

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

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

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

Κωδικοποίηση βίντεο (MPEG)

Group (JPEG) το 1992.

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

Συμπίεση Πολυμεσικών Δεδομένων

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

ΒΑΣΙΚΑ ΘΕΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ.

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

Συστήµατα και Αλγόριθµοι Πολυµέσων

Συστήµατα και Αλγόριθµοι Πολυµέσων

Κωδικοποίηση βίντεο (MPEG)

Συστήματα Πολυμέσων. Ενότητα 12: Συμπίεση Ψηφιακού Ήχου. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Τεράστιες ανάγκες σε αποθηκευτικό χώρο

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

VIDEO ΚΑΙ ΕΦΑΡΜΟΓΕΣ. Υπάρχουσες εφαρμογές:

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 6 η : Συμπίεση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

Συμπίεση Βίντεο: Αρχές και Πρότυπα Συμπίεσης

Βασικές έννοιες. Αναλογικό Βίντεο. Ψηφιακό Βίντεο. Κινούμενα γραφικά (animation)( Πλαίσιο (frame, καρέ) Ρυθμός πλαισίων (frame rate)

Συστήµατα και Αλγόριθµοι Πολυµέσων

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

Συστήματα Πολυμέσων. Ενότητα 16: Διαμορφώσεις και Πρότυπα Ψηφιακού Βίντεο. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής

MPEG-4 : Διαδραστικές εφαρμογές πολυμέσων

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο

Ραδιοτηλεοπτικά Συστήματα Ενότητα 4: Ψηφιοποίηση και συμπίεση σημάτων εικόνας

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

Κωδικοποίηση ήχου. Κωδικοποίηση καναλιού φωνής Κωδικοποίηση πηγής φωνής Αντιληπτική κωδικοποίηση Κωδικοποίηση ήχου MPEG

Θέμα: «ΣΥΜΠΙΕΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΟΛΥΜΕΣΑ» Εισηγητής: Παναγιώτης Γιώτης 20 Μαϊου 2007 Αθήνα

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

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Μάθημα 7 ο. Συμπίεση Εικόνας ΤΜΗΥΠ / ΕΕΣΤ 1

Θέματα Συστημάτων Πολυμέσων. Ενότητα #3: Ιδιότητες μέσων Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών

Κωδικοποίηση εικόνων κατά JPEG

Ακαδηµαϊκό Έτος , Χειµερινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης

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

Τι συσχετίζεται με τον ήχο

Η ανάγκη για συμπίεση

Τεχνικές Συµπίεσης Βίντεο. Δρ. Μαρία Κοζύρη Τµήµα Πληροφορικής Πανεπιστήµιο Θεσσαλίας

Συστήµατα Πολυµέσων Ενδιάµεση Εξέταση: Οκτώβριος 2004

Συστήματα Πολυμέσων. Ενότητα 7: Συμπίεση Εικόνας κατά JPEG. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Παλμοκωδική Διαμόρφωση. Pulse Code Modulation (PCM)

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

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

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

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο

Εισαγωγή στην Πληροφορική

ITU-T : H.261 (1990), H.262 (1996), H.263 (1995) MPEG-1, MPEG-2, MPEG-4. Αποθήκευση, Μετάδοση, Επικοινωνίες, ίκτυα

Πολυμέσα. Συμπίεση δεδομένων Κωδικοποίηση MPEG. Δρ. Γεώργιος Π. Παυλίδης ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ

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

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

MPEG-4: Βασικά Χαρακτηριστικά

DVB (DVB-S, DVB-C, DVB-T, DVB-H)

Αρχιτεκτονική Μηχανής. Αποθήκευση εδοµένων

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Συστήματα Πολυμέσων. Ενότητα 6: Συμπίεση Ψηφιακής Εικόνας. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1

Τι είναι το JPEG2000?

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα

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

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο

Συστήματα Επικοινωνιών ΙI

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

2. ΨΗΦΙΟΠΟΙΗΣΗ ΠΛΗΡΟΦΟΡΙΑΣ

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

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή. Τεχνολογία Πολυµέσων 01-1

Τεχνολογία Πολυμέσων. Ενότητα # 14: Κωδικοποίηση βίντεο: Η.264 Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Ψηφιακή Επεξεργασία Εικόνας

Συστήματα Επικοινωνιών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 9 : Συμπίεση δεδομένων. Δρ. Γκόγκος Χρήστος

Ψηφιακή Μετάδοση Αναλογικών Σηµάτων

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Transcript:

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών ιπλωµατική Εργασία Μελέτη για Υλοποίηση σε VHDL του Αλγορίθµου SCAN για Συµπίεση Video Κατερίνα Ρούµπου Επιβλέπων Καθηγητης: Καθηγητής Απόστολος όλλας Εξεταστική επιτροπή : Καθηγητής Α. όλλας Αν. Καθηγητής Κ. Καλαϊτζάκης Αν. Καθηγητής. Πνευµατικάτος Σεπτέµβριος 2004 Χανιά

Στους γονείς µου. 1

Ευχαριστίες. Θα ήθελα να ευχαριστήσω τον καθηγητή Απόστολο όλλα για την εµπιστοσύνη που µου έδειξε και για την πολύτιµη καθοδήγηση που µου παρείχε κατά την διάρκεια εκπόνησης της διπλωµατικής µου εργασίας καθώς και τους καθηγητές ιονύσιο Πνευµατικάτο και Κωνσταντίνο Καλαϊτζάκη που βρίσκονται στην εξεταστική επιτροπή. Επίσης, θα ήθελα να εκφράσω τις ευχαριστίες µου προς τον καθηγητή Νικόλαο Μπουρµπάκη, ο οποίος ευγενικά µας παραχώρησε τον αλγόριθµο SCAN για τους σκοπούς της πραγµατοποίησης της παρούσας διπλωµατικής εργασίας. Επίσης θα ήθελα να ευχαριστήσω όλα τα µέλη του εργαστηρίου Μικροεπεξεργαστών και Υλικού: τον κ. Μάρκο Κιµιωνή για την φροντίδα και την βοήθεια, τους µεταπτυχιακούς και προπτυχιακούς φοιτητές για τις συµβουλές και την στήριξη που µου παρείχαν κατά τη διάρκεια της παρούσας εργασίας. 2

Περιεχόµενα Περιεχόµενα Περιεχόµενα...3 Κεφάλαιο 1 Εισαγωγή...5 1.1 Εισαγωγή...5 1.2 Οργάνωση της ιπλωµατικής Εργασίας...7 Κεφάλαιο 2 Σχετική Έρευνα...8 2.1 Γενικά...8 2.2 Παράγοντες που Επηρεάζουν την Ποιότητα...8 2.3 Βασικές Τεχνικές Συµπίεσης...10 2.3.1 Τεχνικές Intraframe...10 2.3.1.1 Differential Pulse Code Modulation (DPCM)...10 2.3.1.2 Transform Coding...11 2.3.1.3 Subband Coding...12 2.3.1.4 Pyramidal Coding...13 2.3.1.5 Vector Quantization (VQ)...14 2.3.2 Τεχνικές Interframe...14 2.4 Hardware και Software Codecs...18 2.4.1 Hardware Codecs...18 2.4.1.1 Συµπιεστής Video Βασισµένος σε FPGA για Bit Streams Συµβατά µε το Η.263...18 2.4.1.2 Υλοποίηση σε FPGA του Αλγορίθµου LRU για Συµπίεση Video..20 2.4.2 Software Codecs...21 2.5 Πρότυπα (Standards)...21 2.6 Ο Αλγόριθµος SCAN σε Σχέση µε τις Τεχνικές Συµπίεσης...22 Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video...23 3.1 Γενικά...23 3.2 Περιγραφή του Αλγορίθµου Συµπίεσης Video...24 3.3 Περιγραφή του Αλγορίθµου Συµπίεσης Video σε Ψευδοκώδικα...25 3.4 Πειραµατικά Αποτελέσµατα...32 3.5 Συµπεράσµατα...34 Κεφάλαιο 4 Η Αρχιτεκτονική για την Υλοποίηση του Αλγορίθµου Συµπίεσης35 4.1 Γενικά...35 4.2 Γενική Επισκόπηση της Αρχιτεκτονικής...36 4.3 Μονάδα Αποθήκευσης των Frames...38 4.4 Μονάδα Σύγκρισης...38 4.4 Μονάδα Αντιγραφής...40 4.5 Μονάδα Ανάλυσης σε Windows 4x4...40 4.6 Μονάδα Ελέγχου και Κωδικοποίησης...42 4.7 Μονάδα Αποτελεσµάτων...43 Κεφάλαιο 5 Το Μοντέλο του Αλγορίθµου σε VHDL...44 5.1 Γενικά...44 5.2 Μοντέλο σε VHDL της Μονάδας Αποθήκευσης των Frames...44 5.2 Μοντέλο σε VHDL της Μονάδας Σύγκρισης...46 5.3 Μοντέλο σε VHDL της Μονάδας Αντιγραφής...49 5.4 Μοντέλο σε VHDL της Μονάδας Ανάλυσης σε Windows 4x4...51 5.4.1 Μοντέλο του Address Generator...52 5.4.2 Περιγραφή του Ελέγχου των Παραθύρων...57 3

Περιεχόµενα 5.5 Μοντέλο σε VHDL της Μονάδας Ελέγχου και Κωδικοποίησης...58 5.6 Μοντέλο σε VHDL της Μονάδας Τελικών Αποτελεσµάτων...61 5.6 Ανακεφαλαίωση...63 Κεφάλαιο 6 Η Αρχιτεκτονική για την Υλοποίηση της Αποσυµπίεσης του Video...64 6.1 Γενικά...64 6.2 Γενική Επισκόπηση της Αρχιτεκτονικής...64 6.3 Μονάδα Αποτελεσµάτων Συµπίεσης...66 6.4 Μονάδα Ανάκτησης του 1 ου Frame...67 6.5 Μονάδα Ανάκτησης των Frames των ιαφορών...69 6.5.1 Αποκωδικοποίηση Συντεταγµένων και Παραγωγή ιευθύνσεων...70 6.5.2 Αποκωδικοποίηση των Στοιχείων των Παραθύρων...73 6.5.3 ιευθυνσιοδότηση και Αρχικοποίηση των Frames των ιαφορών...74 6.6 Μονάδα Ανάκτησης των Frames 2 έως Ν...75 6.7 Μονάδα Ελέγχου...79 6.8 Ανακεφαλαίωση...82 Κεφάλαιο 7 οκιµή και Πιστοποίηση Λειτουργίας Συστήµατος...83 7.1 Γενικά...83 7.2 Παρατηρήσεις Λειτουργίας Συστήµατος Συµπίεσης...83 7.3 Απαιτούµενο Format Εικόνων...84 7.4 Προσοµοίωση και Πιστοποίηση...85 7.4.1 οκιµαστικό Video 1...85 7.4.2 οκιµαστικό Video 2...87 7.4.3 οκιµαστικό Video 3...89 7.5 Ανακεφαλαίωση...91 Κεφάλαιο 8 Συµπεράσµατα και Μελλοντικές Επεκτάσεις...92 Αναφορές...94 4

Κεφάλαιο 1 Εισαγωγή Κεφάλαιο 1 Εισαγωγή 1.1 Εισαγωγή Η ανάγκη των ανθρώπων για επικοινωνία παρουσιάστηκε σχεδόν ταυτόχρονα µε την εµφάνιση του ανθρώπου. Ιδιαίτερο µάλιστα ρόλο παίζει η επικοινωνία µέσω των εικόνων µιας και αποτελεί έναν αποτελεσµατικότατο τρόπο έκφρασης, εξαιτίας της πυκνότητας της πληροφορίας που υποστηρίζει και της αµεσότητας του µηνύµατος το οποίο µεταδίδει. Οι ρίζες αυτού του τρόπου επικοινωνίας βρίσκονται πολλά χρόνια πίσω όταν οι πρώτοι άνθρωποι ζωγράφιζαν εικόνες στους τοίχους των σπηλιών γεγονός που υπογραµµίζει ότι η ανταλλαγή ιδεών και εµπειριών µέσα από εικόνες ήταν ανέκαθεν σηµαντική. Στην προηγούµενη δεκαετία σηµειώνεται η πραγµατική αρχή του αιώνα της πληροφορίας. Η πρόσφατη αυτή επανάσταση στην πληροφορική έχει δηµιουργήσει έναν τεράστιο αριθµό από καινοτόµες εφαρµογές και υπηρεσίες, όπως η ψηφιακή τηλεόραση (high definition television HDTV- broadcasting), η φωνή µέσω διαδικτύου, το video streaming, τα πολυµεσικά συνέδρια µέσω δικτύου (networked multimedia conference), οι εικονικές τάξεις, η µαγνητοσκόπηση προσωπικών video, η αναζήτηση και ανάκτηση βάσεων δεδοµένων µε βάση το περιεχόµενό τους, η ανταλλαγή εικόνων και video µέσω των κινητών τηλεφώνων, κλπ. Για αυτές τις εφαρµογές αλλά και για την µελλοντική ενσωµάτωση της τηλεόρασης και του ηλεκτρονικού υπολογιστή, το ψηφιακό video είναι τόσο απαραίτητο όσο οι παραδοσιακές µέθοδοι αναπαράστασης πληροφορίας όπως το κείµενο, οι εικόνες και ο ήχος. Με την υπάρχουσα αλλά και µε την αναµενόµενη εξέλιξη των πολυµέσων είµαστε σε θέση να διαπιστώσουµε ότι η ποσότητα της πληροφορίας που ανταλλάσσεται ακολουθεί µια δραµατικά αυξανόµενη πορεία. Όπως καταλαβαίνουµε η βιοµηχανία των τηλεπικοινωνιών και των πολυµέσων έχει να αναλάβει µια νέα πρόκληση που περιλαµβάνει πολλά άλυτα θέµατα. Μεταξύ όλων των ειδών πληροφορίας τα οπτικοακουστικά δεδοµένα παραµένουν ο πλουσιότερος τρόπος για να επικοινωνήσουµε και επίσης ο πιο απαιτητικός σε σχέση µε το κανάλι 5

Κεφάλαιο 1 Εισαγωγή και την κατάληψη της µνήµης. Παρά την πρόοδο στις τεχνολογίες δικτύου, στην αύξηση του καναλιού, στην τεχνολογία των δίσκων αποθήκευσης καθώς και στην ταχύτητα των συσκευών µνήµης, η συµπίεση των δεδοµένων είναι απαραίτητη µιας και για την αναπαράσταση video απαιτείται τεράστια ποσότητα δεδοµένων και είναι απαραίτητη η µείωση των απαιτήσεων αποθήκευσης και επικοινωνίας. Για παράδειγµα, οι εφαρµογές της ψηφιακής τηλεόρασης αλλά και η διακίνηση κινούµενης εικόνας στο διαδίκτυο είναι εφικτές µόνο µε τη συµπίεση των δεδοµένων video. Επίσης, για την αποθήκευση των ψηφιακών video σε µικρούς δίσκους όπως τα CD (compact disk) ή τα DVD (digital versatile disk) η συµπίεση είναι απαραίτητη. Παροµοίως, εκτός από την συµπίεση δεν υπάρχει αυτή τη στιγµή κανένας άλλος τρόπος να υποστηριχθεί η ποιότητα που απαιτείται από την βιοµηχανία της ψυχαγωγίας µε χαρακτηριστικό το παράδειγµα της αποθήκευσης µιας κινηµατογραφικής ταινίας κανονικού µήκους η οποία διαρκεί δύο ώρες ή περισσότερο. Οδηγούµενοι από την ταχέως αυξανόµενη απαίτηση για πολυµεσικές εφαρµογές, η τεχνολογία της συµπίεσης ψηφιακού video έχει αναπτυχθεί σε ένα ώριµο πεδίο, που προσφέρει αρκετά διαθέσιµα προϊόντα που βασίζονται σε hardware και software υλοποιήσεις. Εκµεταλλευόµενοι τους χωρικούς, χρονικούς και στατιστικούς πλεονασµούς στα δεδοµένα videο, ένα σύστηµα συµπίεσης video στοχεύει να µεγιστοποιήσει τον βαθµό συµπίεσης ενώ θα διατηρεί µια υψηλή ποιότητα εικόνας. Παρά την µεγάλη πρόοδο σε αυτή την περιοχή, η συµπίεση video παραµένει ένα προκλητικό ερευνητικό πρόβληµα λόγω των υπολογιστικών απαιτήσεων του και επιπλέον λόγω της ανάγκης για υψηλότερη ποιότητα εικόνας σε χαµηλότερους ρυθµούς δεδοµένων. Ως αποτέλεσµα, ο σχεδιασµός αποδοτικών αλγορίθµων κωδικοποίησης συνεχίζει να είναι γόνιµη περιοχή έρευνας. Σκοπός αυτής της διπλωµατικής εργασίας είναι η παρουσίαση της υλοποίησης του αλγορίθµου SCAN για συµπίεση video σε γλώσσα VHDL (Very high speed integrated circuits Hardware Description Language). Ο αλγόριθµος αυτός εκµεταλλεύεται τις διαφορές των frames και είναι σχεδιασµένος για να χρησιµοποιηθεί ως µια πρώτου επιπέδου συµπίεση πριν την κρυπτογράφηση του video. Το γεγονός αυτό προσδίδει µια ιδιαίτερη σηµασία στην υλοποίηση του 6

Κεφάλαιο 1 Εισαγωγή αλγορίθµου, επειδή η κρυπτογράφηση στην εποχή µας είναι περισσότερο αναγκαία από ποτέ για την εξασφάλιση των ιδιωτικών επικοινωνιών µας. Το προτέρηµα της hardware υλοποίησης του αλγορίθµου είναι η ταχύτερη κωδικοποίηση και η µικρότερες απαιτήσεις σε πόρους CPU. 1.2 Οργάνωση της ιπλωµατικής Εργασίας Η διπλωµατική αυτή εργασία αποτελείται από εφτά κεφάλαια. Στο παρόν κεφάλαιο περιγράφηκε η σηµασία της συµπίεσης video στην σύγχρονη εποχή και η συνεισφορά της συγκεκριµένης εργασίας σε αυτό το πεδίο. Στο δεύτερο κεφάλαιο γίνεται µια αναφορά σε σχετική έρευνα για τις υπάρχουσες τεχνικές συµπίεσης video που είναι υλοποιηµένες είτε σε software είτε σε hardware. Μια γενική περιγραφή της software υλοποίησης του αλγορίθµου συµπίεσης SCAN για video ακολουθεί στο τρίτο κεφάλαιο. Στο τέταρτο κεφάλαιο περιγράφεται η αρχιτεκτονική η οποία αναπτύχθηκε για την hardware υλοποίηση, ενώ στο πέµπτο κεφάλαιο παρουσιάζεται το µοντέλο του αλγορίθµου σε γλώσσα VHDL. Στο έκτο κεφάλαιο περιγράφεται η αρχιτεκτονική και το µοντέλο υλοποίηση του συστήµατος αποσυµπίεσης και στο έκτο γίνεται η δοκιµή και η πιστοποίηση της λειτουργίας του συστήµατος συµπίεσης. Τέλος, στο έβδοµο κεφάλαιο παρουσιάζονται τα συµπεράσµατα της εργασίας και η µελλοντικές επεκτάσεις που µπορεί να έχει το σύστηµα. 7

Κεφάλαιο 2 Σχετική Έρευνα Κεφάλαιο 2 Σχετική Έρευνα 2.1 Γενικά Ο βασικός σκοπός της συµπίεσης video και εικόνων είναι να µειώσει τον ρυθµό των δεδοµένων και να µην εισάγει υποβάθµιση της οπτικής ποιότητας. Στις περισσότερες πρακτικές περιπτώσεις µια ελαφρά υποβάθµιση ίσως επιτρέπεται µε σκοπό να επιτύχουµε ένα χαµηλότερο ρυθµό µετάδοσης. Το σε ποιο βαθµό µπορούν να συµπιεστούν τα δεδοµένα χωρίς σηµαντική υποβάθµιση εξαρτάται από την πλεονάζουσα (redundant) πληροφορία των δεδοµένων, καθώς περισσότερη πλεονάζουσα πληροφορία οδηγεί σε µεγαλύτερη συµπίεση. Ευτυχώς τα τυπικά δεδοµένα εικόνων περιλαµβάνουν ένα µεγάλο ποσό πλεονασµού. Και είναι ακριβώς αυτός ο πλεονασµός που επιτρέπει στις εικόνες και στις ακολουθίες εικόνων (video) να συµπιέζονται. Μέσα σε κάθε ξεχωριστό frame είναι πολύ πιθανό οι τιµές των γειτονικών pixels να είναι κοντά η µία στην άλλη, γεγονός που συνιστά τον χωρικό (spatial) πλεονασµό. Επίσης, η περισσότερη από την πληροφορία σε ένα frame µπορεί να υπάρχει και στα προηγούµενα frames γεγονός που συνιστά τον χρονικό (temporal) πλεονασµό. Όλοι αυτοί οι πλεονασµοί µπορούν να ελαττωθούν χωρίς σηµαντικές απώλειες πληροφορίας και εποµένως ποιότητας εικόνας. 2.2 Παράγοντες που Επηρεάζουν την Ποιότητα Υπάρχουν τέσσερις παράγοντες που καθορίζουν την ταχύτητα και την ποιότητα στην συµπίεση εικόνας και video οι οποίες είναι: ο βαθµός συµπίεσης, η ποιότητα της εικόνας, η ταχύτητα συµπίεσης και αποσυµπίεσης και τέλος η χρήση τεχνικών χωρικής ή χρονικής συµπίεσης. Α) Βαθµός συµπίεσης. Ο βαθµός συµπίεσης υπολογίζεται διαιρώντας το αρχικό µέγεθος της εικόνας ή του video µε το µέγεθος του αντίστοιχου συµπιεσµένου. Συνήθως απεικονίζεται µε τους συντελεστές στην µορφή 10:1 ή 20:1 κοκ. Τα περισσότερα σχήµατα συµπίεσης παράγουν λόγους που εξαρτώνται από το 8

Κεφάλαιο 2 Σχετική Έρευνα περιεχόµενο της εικόνας, για παράδειγµα όσο πιο περίπλοκη είναι µια εικόνα τόσο µικρότερη συµπίεση µπορούµε να περιµένουµε. Β) Ποιότητα εικόνας. Τα σχήµατα συµπίεσης µπορούν να είναι είτε µε απώλειες (lossy) είτε χωρίς απώλειες (lossless). Όταν χρησιµοποιούµε lossless σχήµατα δεν έχουµε καµία απώλεια δεδοµένων, ενώ τα lossy σχήµατα δε διατηρούν όλα τα αρχικά δεδοµένα, µε αποτέλεσµα να χάνουµε πληροφορία από την εικόνα γεγονός που προκαλεί αισθητή ή µη αισθητή υποβάθµιση της ποιότητας της εικόνας. Τα lossy σχήµατα χρησιµοποιούνται σε αρχεία γραφικών, ήχου και video (αυτού του τύπου συµπίεσης είναι και τα JPEG, MPEG). Παρόλο που σε αυτές τις τεχνικές παραλείπονται bits δεδοµένων, η απώλεια πληροφορίας δεν είναι ανιχνεύσιµη από το ανθρώπινο µάτι. Αντίθετα όταν µιλάµε για αρχεία κειµένου και προγραµµάτων µόνο η lossless συµπίεση είναι αποδεκτό να εφαρµοστεί. Το µέγεθος αυτών των αρχείων µειώνεται εντοπίζοντας επαναλαµβανόµενα patterns δεδοµένων και αντικαθιστώντας τα µε τη χρήση του κατάλληλου κώδικα. Γ) Ταχύτητα συµπίεσης και αποσυµπίεσης. Ταχύτητα συµπίεσης και αποσυµπίεσης ονοµάζεται ο χρόνος που απαιτείται για να κωδικοποιήσουµε και να αποκωδικοποιήσουµε οτιδήποτε. Ένας γρήγορος ρυθµός συµπίεσης είναι επιθυµητός για εγγραφή (capturing), ενώ ένας γρήγορος ρυθµός αποσυµπίεσης είναι επιθυµητός για αναπαραγωγή (playback). Αυτά τα δύο δε συνδυάζονται απαραίτητα σε ένα σχήµα συµπίεσης. Οι ταχύτητες συµπίεσης και αποσυµπίεσης για µετάδοση video συνήθως αναφέρονται σε MB/second. ) Χωρική και χρονική συµπίεση. Η χωρική συµπίεση χρησιµοποιείται για να συµπιέσει τα pixels ενός frame και απαλείφει την πλεονάζουσα πληροφορία που βρίσκεται µέσα στο ίδιο το frame (όλοι οι συµπιεστές QuickTime εφαρµόζουν τέτοιου είδους συµπίεση). Η χρονική συµπίεση χρησιµοποιείται σε ακολουθίες εικόνων και πολλές φορές αναφέρεται ως διαφορά των frames (frame differencing). Αυτό που κάνει είναι να συγκρίνει ένα frame µε ένα προηγούµενό του και να απαλείφει την πλεονάζουσα πληροφορία. Σε αυτήν την περίπτωση χρησιµοποιούνται τα frames «κλειδιά» (key frames) τα οποία τίθενται ως σηµεία έναρξης για την εύρεση των διαφορών µε τα επόµενα frames. Τα frames µεταξύ των key frames 9

Κεφάλαιο 2 Σχετική Έρευνα ονοµάζονται frames διαφορών και περιέχουν µόνο την πληροφορία που έχει αλλάξει από το προηγούµενο frame (η κωδικοποίηση MPEG χρησιµοποιεί αυτόν τον τύπο συµπίεσης). 2.3 Βασικές Τεχνικές Συµπίεσης 2.3.1 Τεχνικές Intraframe Οι τεχνικές οι οποίες εκµεταλλεύονται µόνο τους χωρικούς πλεονασµούς ταξινοµούνται ως intraframe σχήµατα κωδικοποίησης. Παραδείγµατα από intraframe κωδικοποίηση είναι τα παρακάτω: differential pulse code modulation (DPCM), transform coding using discrete cosine transform (DCT), subband coding, pyramid coding και vector quantization (VQ). Εφόσον η intraframe κωδικοποίηση δεν περιλαµβάνει την πληροφορία του άξονα του χρόνου τα σχήµατα κωδικοποίησης δεν επιτυγχάνουν την µείωση του bit-rate που είναι δυνατή µε τα interframe σχήµατα κωδικοποίησης τα οποία λαµβάνουν υπόψη τόσο τους χωρικούς όσο και τους χρονικούς πλεονασµούς. Εντούτοις, τα intraframe σχήµατα κωδικοποίησης είναι αναλογικά πιο εύκολα να υλοποιηθούν, δεν απαιτούν µνήµη στους κωδικοποιητές για τα γειτονικά frames και δεν απαιτούν επεξεργασία της πληροφορίας από πολλαπλά frames κατά το διάστηµα ενός και µόνο frame. 2.3.1.1 Differential Pulse Code Modulation (DPCM) Η DPCM είναι µια τεχνική προβλεπτικής (predictive) κωδικοποίησης. Αυτό το είδος κωδικοποίησης χρησιµοποιείται συνήθως στις εικόνες που εµπεριέχουν αναγνωρίσιµα αντικείµενα όπως αυτοκίνητα, κτίρια και ανθρώπους και απεικονίζονται τοποθετηµένα σε υπέρθεση (ως «πορτραίτα») πάνω από εµβαδά τα οποία είναι δυνατόν να εντοπισθούν και να κωδικοποιηθούν επειδή παρουσιάζουν οµοιότητα (π.χ. µια µπάλα ποδοσφαίρου που βρίσκεται µέσα στο γήπεδο θα αντιµετωπιστεί ως ένα αντικείµενο τοποθετηµένο σε µια επιφάνεια µε την πράσινη υφή του γρασιδιού, κερδίζοντας σε συµπίεση εξαιτίας της µεγάλης επιφάνειας του γρασιδιού). Η ιδέα βασίζεται στο γεγονός ότι το παρόν pixel µπορεί να προβλεφθεί από τα προηγούµενά του, µε αποτέλεσµα ο πλεονασµός να καθορίζεται από τα 10

Κεφάλαιο 2 Σχετική Έρευνα γειτονικά pixels. Στη συνέχεια η διαφορά µεταξύ της πραγµατικής τιµής και της προβλεπόµενης τιµής του pixel ποσοτικοποιείται, κωδικοποιείται και µεταδίδεται για να προστεθεί στην πρόβλεψη που γίνεται στον αποκωδικοποιητή για την ανακατασκευή της εικόνας. Η διαδικασία αυτή απεικονίζεται στην Εικόνα 2-1 [1]. Ο αριθµός των γειτονικών pixels που χρησιµοποιούνται για την πρόβλεψη τις περισσότερες φορές δεν είναι µεγαλύτερος από τέσσερα, καθώς περισσότερα pixels συχνά δεν αποφέρουν σηµαντικά πλεονεκτήµατα, αν λάβουµε υπόψη την αντιστάθµιση µεταξύ πολυπλοκότητας και απόδοσης. Για µια καλή πρόβλεψη η διαφορά µεταξύ των παρόντων και των προβλεπόµενων τιµών των pixel πρέπει να είναι µικρή και έτσι να επιτυγχάνεται συµπίεση. Η τεχνική DPCM είναι σχετικά εύκολο να υλοποιηθεί. Ωστόσο, η ικανότητα µείωσης του πλεονασµού της δεν είναι τόσο καλή όσο αυτή άλλων σχηµάτων όπως του transform coding. Εικόνα 2-1: Predictive Coding 2.3.1.2 Transform Coding Η θεµελιώδης έννοια του transform coding είναι να αποσυσχετίσει τα δεδοµένα των εικόνων µέσα από ένα ορθογώνιο µετασχηµατισµό σε ένα περισσότερο συµπαγή τύπο, έτσι ώστε η εικόνα να µπορεί να αναπαρασταθεί µε λιγότερα bits, επιτυγχάνοντας την συµπίεση. Παρόλο που υπάρχουν πολλοί ορθογώνιοι µετασχηµατισµοί, ο διακριτός µετασχηµατισµός συνηµίτονου (discrete cosine transform - DCT) [24] έχει αναδειχθεί ως επικρατούσα επιλογή µετασχηµατισµού εξαιτίας της υψηλής της απόδοσης. Ένας τυπικός κωδικοποιητής µετασχηµατισµού DCT φαίνεται στην Εικόνα 2-2 (το transform coding είναι η βάση του προτύπου κωδικοποίησης JPEG για ακίνητες εικόνες). Το DCT εφαρµόζεται σε κάθε 11

Κεφάλαιο 2 Σχετική Έρευνα διασπασµένο (disjoint) block της εικόνας. Οι µετασχηµατισµένοι συντελεστές κβαντίζονται σε ένα πεπερασµένο αριθµό επιπέδων και οι κβαντισµένοι συντελεστές τελικά κωδικοποιούνται µε εντροπία (entropy-coded) [29]. Η επιλογή του µεγέθους του block είναι ένας συνδυασµός αποτελεσµατικότητας συµπίεσης και ποιότητας εικόνας. Για τυπικές εικόνες το µεγαλύτερο µέγεθος block συχνά έχει σαν αποτέλεσµα µια καλύτερη συµπίεση καθώς περισσότερα pixels παρέχονται για µείωση του πλεονασµού. Ωστόσο, η προϋπόθεση της στατικότητας των δεδοµένων παύει να ισχύει όταν το µέγεθος του block γίνεται πολύ µεγάλο και εισάγονται υποβαθµίσεις, ειδικά σε blocks που περιέχουν υψηλής αντίθεσης ακµές. Τα πειραµατικά αποτελέσµατα δείχνουν ότι µέγεθος block 16x16 ή 8x8 είναι ένας καλός συµβιβασµός. Εικόνα 2-2: Block diagram ενός κωδικοποιητή JPEG 2.3.1.3 Subband Coding Στην κωδικοποίηση υποζώνης [23] το σήµα αναλύεται σε αρκετές υποζώνες συχνότητας οι οποίες µπορούν να αντιµετωπιστούν διαφορετικά και αποτελεσµατικότερα ανάλογα µε τα χαρακτηριστικά τους, πράγµα που δεν είναι δυνατόν να συµβεί σε ολόκληρη την εικόνα. Αυτή η ιδέα χρησιµοποιήθηκε πρώτα επιτυχώς στον λόγο και αναπτύχθηκε θεωρία πάνω στις συστοιχίες φίλτρων µε αποτέλεσµα να σχεδιαστούν καλά φίλτρα υποζώνης. Όταν τα δεδοµένα αποσυντίθενται σε υποζώνες, διάφορα σχήµατα κωδικοποίησης µπορούν να εφαρµοστούν σε καθεµιά από αυτές. Εφόσον τα χαρακτηριστικά των δεδοµένων από διαφορετικές υποζώνες ποικίλουν ευρέως και επιπλέον η ευαισθησία της ανθρώπινης 12

Κεφάλαιο 2 Σχετική Έρευνα οπτικής στις υποβαθµίσεις δεν είναι ίδια για όλες τις υποζώνες, καλύτερη απόδοση µπορεί να επιτευχθεί όταν αυτές διαχειρίζονται διαφορετικά η µία από την άλλη. Για παράδειγµα, οι εικόνες χαµηλής ζώνης συµπιέζονται µε κωδικοποίηση µετασχηµατισµού, ενώ οι εικόνες υψηλότερης ζώνης συµπιέζονται κατευθείαν µε κβαντοποίηση. Η δοµή του βασικού φίλτρου για την κωδικοποίηση υποζώνης απεικονίζεται στην Εικόνα 2-3 [1]. Εικόνα 2-3: οµή βασικού φίλτρου για κωδικοποίηση υποζώνης (subband coding). I i = σήµα εισόδου, I o = σήµα εξόδου, L A και H A = χαµηλής-και υψηλής-διαπερατότητας φίλτρα ανάλυσης, K(s) = υποδειγµατοληψία στον κωδικοποιητή, K(i) = παρεµβολή (interpolation) στον αποκωδικοποιητή. 2.3.1.4 Pyramidal Coding Η κωδικοποίηση πυραµίδας είναι στην ουσία παρόµοια µε την κωδικοποίηση υποζώνης [1]. Τα σχήµατα κωδικοποίησης πυραµίδας σχηµατίζουν µια ιεραρχική σειρά από εικόνες µε διαφορετικές αναλύσεις και διαφορετικές στρατηγικές κωδικοποίησης και µπορούν να εφαρµοστούν σε εικόνες µε διαφορετικές αναλύσεις. Κάθε εικόνα φιλτράρεται αλλεπάλληλα και υποδειγµατοληπτείται (down-sampled) σε χαµηλότερης ανάλυσης εικόνες. Σε κάθε στάδιο φιλτραρίσµατος και υποδειγµατοληψίας αποκτιέται µια εικόνα διαφορών (difference image). Οι εικόνες διαφορών κωδικοποιούνται αλλεπάλληλα και στέλνονται σε έναν αποκωδικοποιητή ο οποίος σταδιακά φτιάχνει την εικόνα όταν περισσότερες εικόνες διαφορών έχουν ληφθεί. Η ιεραρχική δοµή ταιριάζει στις εφαρµογές αναζήτησης όπου µόνο οι χαµηλής ανάλυσης εικόνες χρειάζονται απ τη στιγµή που η επιθυµητή εικόνα έχει 13

Κεφάλαιο 2 Σχετική Έρευνα βρεθεί. Ένα άλλο προσόν της ιεραρχικής δοµής κωδικοποίησης είναι ότι διαφορετικές προτεραιότητες µπορούν να ανατεθούν σε διαφορετικά στάδια, µε εξάρτηση από την σηµαντικότητα των σταδίων. 2.3.1.5 Vector Quantization (VQ) Η µέθοδος VQ [25] χρησιµοποιείται κυρίως για εφαρµογές χαµηλού ρυθµού µετάδοσης, αν και τεχνικές που εφαρµόζουν VQ για υψηλού ρυθµού µετάδοσης εφαρµογές µπορούν να βρεθούν στην βιβλιογραφία. Η µέθοδος VQ εκµεταλλεύεται το γεγονός ότι πολλά blocks µιας εικόνας είναι πολύ παρόµοια (φόντο, εσωτερικό µεγάλων αντικειµένων, κλπ) όσον αφορά την φωτεινότητα, τα χρώµατα, κοκ και επεξεργάζεται ένα µικρό block από εικόνες σαν ένα διάνυσµα. Ύστερα, βρίσκει το καλύτερο ταίριασµα από ένα προκαθορισµένο σύνολο κωδίκων (codebook) µέσα από µια κατάλληλη µέτρηση απόστασης. Το περιεχόµενο του καλύτερου ταιριάσµατος στέλνεται αργότερα στον δέκτη, όπου η ανακατασκευή είναι απλώς µια διαδικασία αναζήτησης σε πίνακα (table look-up). Η υποβάθµιση που σχετίζεται µε την συµπίεση VQ έγκειται στο γεγονός ότι οι ακµές γίνονται απότοµες (jaggedness) και παρουσιάζονται αλλοιώσεις στα blocks (blocking effects), ειδικότερα όταν το µέγεθος του συνόλου των κωδίκων είναι µικρό. 2.3.2 Τεχνικές Interframe Οι τεχνικές interframe κωδικοποίησης εκµεταλλεύονται τόσο τους χωρικούς όσο και τους χρονικούς πλεονασµούς. Το βασικό στοιχείο στο οποίο στηρίζονται είναι το γεγονός ότι η πλειοψηφία των εικόνων video δεν κινούνται συνεχώς. Χαρακτηριστικό παράδειγµα αποτελούν οι εκποµπές δελτίων ειδήσεων όπου το µόνο που κινείται είναι το σώµα του εκφωνητή. Ένα τυπικό interframe σχήµα κωδικοποίησης απεικονίζεται στην Εικόνα 2-4. Το στοιχείο κλειδί για τις τεχνικές interframe κωδικοποίησης είναι η εκτίµηση κίνησης (motion estimation) [26] η οποία βρίσκει τους χρονικούς πλεονασµούς. Η κίνηση εκτιµάται υπολογίζοντας τη σχετική µετατόπιση (ονοµάζεται διάνυσµα κίνησης) έτσι ώστε τα δεδοµένα της εικόνας 14

Κεφάλαιο 2 Σχετική Έρευνα (συνήθως ένα block) να ταιριάζουν καλύτερα µε τα δεδοµένα του προηγούµενου frame (Εικόνα 2-5). Το διάνυσµα κίνησης του καλύτερου ταιριάσµατος χρειάζεται να Εικόνα 2-4: Block diagram για το πρότυπο CCITT H.261. Τα διανύσµατα κίνησης (motion vectors) αποκτούνται από ένα κριτήριο καλύτερου ταιριάσµατος (best-match criterion). Εικόνα 2-5: Motion estimation by block matching σταλεί στον αποκωδικοποιητή. Ύστερα η διαφορά µεταξύ των παρόντων και των µετατοπισµένων λόγω κίνησης (motion compensated displaced) δεδοµένων (από το προηγούµενο frame) συµπιέζεται και κωδικοποιείται. Η ιδέα πίσω από την αναπλήρωση κίνησης (motion compensation) είναι παρόµοια µε αυτή της προγνωστικής (predictive) κωδικοποίησης, όπου η πρόβλεψη είναι τα καλύτερα ταιριασµένα (best-matched) δεδοµένα από το προηγούµενο frame. Μετά την εξάλειψη των χρονικών πλεονασµών, χρησιµοποιούνται οι τεχνικές intraframe για να επιτευχθεί επιπλέον χωρική συµπίεση. Αυτή η διαδικασία βέβαια 15

Κεφάλαιο 2 Σχετική Έρευνα µπορεί να γίνει και αντίστροφα, µε την εφαρµογή των τεχνικών interframe να έπεται της εφαρµογής των τεχνικών intraframe. Ο συνδυασµός των τεχνικών αυτών αποτελεί την υβριδική κωδικοποίηση της οποίας η βασική δοµή εµφανίζεται στην Εικόνα 2-6. Εικόνα 2-6: Υβριδική κωδικοποίηση Εικόνα 2-7: Τυπικός motion compensated DCT κωδικοποιητής video Τα περισσότερα από τα σχήµατα κωδικοποίησης που περιγράφηκαν παραπάνω για intraframe κωδικοποίηση µπορούν να εφαρµοστούν σε συνδυασµό µε την 16

Κεφάλαιο 2 Σχετική Έρευνα προβλεπτική κωδικοποίηση και την αναπλήρωση κίνησης (motion compensation) για να επιτευχθεί ο συνδυασµός των χαµηλών ρυθµών δεδοµένων και της επιθυµητής ποιότητας εικόνας [27]. Ένας τυπικός motion-compensated DCT κωδικοποιητής video περιγράφεται στην Εικόνα 2-7. Το block diagram του MPEG κωδικοποιητή και αποκωδικοποιητή video ο οποίος περιλαµβάνει motion compensation prediction, DCT κωδικοποίηση για το σφάλµα πρόβλεψης, variable length coding και έλεγχο κβαντοποίησης µέσω του περιεχοµένου του buffer απεικονίζεται στην Εικόνα 2-8 [28]. Εικόνα 2-8: MPEG κωδικοποιητής και αποκωδικοποιητής Πρέπει επίσης να προσθέσουµε ότι όλες οι τεχνικές intraframe που εφαρµόζονται σε δύο διαστάσεις µπορούν να εφαρµοστούν σε τρεις διαστάσεις και να χρησιµοποιηθούν για ακολουθίες εικόνων. Η διαδικασία αυτή ονοµάζεται threedimensional coding [3], [4], [5]. 17

Κεφάλαιο 2 Σχετική Έρευνα 2.4 Hardware και Software Codecs Η λέξη codec προέρχεται από την σύντµηση των λέξεων compression/decompression. Ένας codec µπορεί να είναι είτε µια software εφαρµογή είτε ένα κοµµάτι hardware το οποίο επεξεργάζεται ένα video µέσα από περίπλοκους αλγορίθµους, οι οποίοι συµπιέζουν το αρχείο και ύστερα το αποσυµπιέζουν. Όλες οι τεχνικές συµπίεσης που προαναφέρθηκαν µπορούν να χρησιµοποιηθούν τόσο στους software όσο και στους hardware codecs. 2.4.1 Hardware Codecs Οι hardware codecs [28] αποτελούν τον πιο αποδοτικό τρόπο για να συµπιέσουµε και να αποσυµπιέσουµε αρχεία video. Είναι ταχύτεροι και απαιτούν λιγότερους πόρους CPU από ότι οι αντίστοιχοι software. Προκειµένου να γίνει σύλληψη του video σε πραγµατικό χρόνο και αποθήκευσή του σε blocks (ώστε να εφαρµοστούν οι τεχνικές σύγκρισης µεταξύ των frames) οι περισσότερες µηχανές απαιτούν ένα hardware codec ο οποίος επιτρέπει στο αρχείο video να κατακερµατιστεί και να κατανεµηθεί γρήγορα στον σκληρό δίσκο. Αυτοί οι hardware codecs είναι ακριβοί, αλλά δίνουν υψηλής ποιότητας αποτελέσµατα. Χρησιµοποιώντας µια συσκευή συµπίεσης hardware ναι µεν έχουµε υψηλής ποιότητας video, αλλά για να δούµε το video πρέπει να έχουµε την ίδια συσκευή αποσυµπίεσης. Οι hardware codecs χρησιµοποιούνται συνήθως σε video conferencing, όπου ο εξοπλισµός του ακροατηρίου και του οµιλητή είναι διαµορφωµένος µε τον ίδιο τρόπο. Ακολουθούν δύο παραδείγµατα υλοποιήσεων κωδικοποιητών σε hardware. 2.4.1.1 Συµπιεστής Video Βασισµένος σε FPGA για Bit Streams Συµβατά µε το Η.263 Η υλοποίηση αυτή [17] βασίζεται σε µία κάρτα PCI µε ενσωµατωµένη την FPGA Xilinx XC4085XLA η οποία φέρει και µνήµη τύπου SRAM, ενώ το σύστηµα χρησιµοποιεί και εξωτερική SRAM. Τα κυριότερα υποσυστήµατά του είναι αυτά του ευθύ και του ανάστροφου µετασχηµατισµού DCT, του κβαντοποιητή και του 18

Κεφάλαιο 2 Σχετική Έρευνα αποκβαντοποιητή, καθώς και του κωδικοποιητή εντροπίας. Στην Εικόνα 2-9 εµφανίζεται το πώς είναι συνδεδεµένες και ενσωµατωµένες οι διάφορες µονάδες κωδικοποίησης µέσα στην FPGA. Η ανταλλαγή των δεδοµένων µεταξύ της FPGA και της διεπαφής PCI ελέγχεται από ασύγχρονες FIFOs και ειδικά σήµατα. Πριν υποστούν επεξεργασία, τα δεδοµένα του video αποθηκεύονται στην ενσωµατωµένη RAM της κάρτας PCI, ενώ εκεί αποθηκεύονται και τα αναδοµηµένα δεδοµένα του video. Το σύστηµα λειτουργεί στη συχνότητα των 30 MHz, ενώ η µέγιστη ταχύτητα συµπίεσης ανέρχεται στα 120 Mbps. Αυτό µεταφράζεται σε ρυθµό συµπίεσης της τάξης των 98,6 CIF frames ανά δευτερόλεπτο (το πρότυπο CIF ορίζει εικόνες µε 352x288 pixels αποθηκευµένες σε 4:1:1 Υ-Cb-Cr τύπο χρωµάτων). Συνεπώς, τρεις ακολουθίες εικόνων µε ρυθµό µετάδοσης 30 frames ανά δευτερόλεπτο (frames per second-fps) µπορούν να συµπιεστούν ταυτόχρονα. Εικόνα 2-9: Απλοποιηµένο block διάγραµµα του κυκλώµατος κωδικοποίησης 19

Κεφάλαιο 2 Σχετική Έρευνα 2.4.1.2 Υλοποίηση σε FPGA του Αλγορίθµου LRU για Συµπίεση Video. Ο αλγόριθµος LRU (Least Recently Used) χρησιµοποιείται σε µια κατηγορία κωδικοποίησης video βασισµένη σε διανύσµατα που χρησιµοποιεί µνήµη cache [31]. Πιο συγκεκριµένα, χρησιµοποιούνται δύο codebooks τόσο στον κωδικοποιητή όσο και στον αποκωδικοποιητή, ένα εκ των οποίων είναι το πρωτεύον κι ένα το δευτερεύον. Ο αλγόριθµος LRU χρησιµεύει στο να κρατά ενηµερωµένο το πρωτεύον codebook µε τα codewords που χρησιµοποιούνται συχνότερα, ώστε να µειώνονται οι προσβάσεις στο δευτερεύον και να γίνεται πιο γρήγορο το σύστηµα. Η αρχιτεκτονική για την υλοποίηση του αλγορίθµου φαίνεται στην Εικόνα 2.10. Αποτελείται από έναν αποκωδικοποιητή, Ν επεξεργαστικές µονάδες (Processing Elements-PE), όπου Ν ο αριθµός των codewords στο πρωτεύον codebook, έναν αφαιρετικό δείκτη (Removal Pointer-RP) που κρατάει τον δείκτη του τελευταίου LRU codeword κι έναν κωδικοποιητή. Κάθε επεξεργαστική µονάδα αποτελείται από ένα flip-flop κι από συνδυαστική λογική. Εικόνα 2.10: Σχηµατικό διάγραµµα της αρχιτεκτονικής για την υλοποίηση του αλγορίθµου LRU και block διάγραµµα µιας επεξεργαστικής µονάδας 20

Κεφάλαιο 2 Σχετική Έρευνα Η συχνότητα λειτουργίας του συστήµατος ανέρχεται στα 16MHz, που αρκεί για την εκτέλεση σε πραγµατικό χρόνο του αλγορίθµου συµπίεσης Video. 2.4.2 Software Codecs Ωστόσο, το hardware είναι λιγότερο ευέλικτο και ακατάλληλο για συχνές ανανεώσεις. Εξαιτίας των διαρκών αλλαγών στην επικοινωνία και στα πρότυπα επεξεργασίας σήµατος, τα περισσότερα συστήµατα εφαρµογών πρέπει να έχουν τη δυνατότητα επαναπρογραµµατισµού. Μια software λύση που χρησιµοποιεί µια γενικού σκοπού υπολογιστική πλατφόρµα είναι πιο ευέλικτη και επιτρέπει καλύτερες ανανεώσεις του αλγορίθµου. Επίσης, οι software codecs είναι λιγότερο ακριβοί και ελεύθερες εκδόσεις τους είναι άµεσα διαθέσιµες. Σήµερα, τα περισσότερα εµπορικά πακέτα ψηφιακού video έχουν built-in codecs. Τα µειονεκτήµατα των software codecs είναι ότι παρουσιάζουν µεγάλες απαιτήσεις σε CPU και παίρνουν πολύ χρόνο για να αναλύσουν και να συµπιέσουν αρχεία. 2.5 Πρότυπα (Standards) Ως τώρα έχουµε καταφέρει να εκµεταλλευτούµε πολλές τεχνικές και αλγορίθµους (οι βασικότεροι από αυτούς προαναφέρθηκαν) για να αναπτυχθούν πρότυπα κωδικοποίησης video. Η προτυποποίηση της µεθοδολογίας κωδικοποίησης είναι επίσης απαραίτητη για να εξασφαλίσουµε τη σωστή επικοινωνία µεταξύ των κωδικοποιητών και των αποκωδικοποιητών που έχουν αναπτυχθεί από διάφορες οµάδες και βιοµηχανίες [6]. Η διεθνής ανάπτυξη προτυποποίησης video είναι κύρια οδηγούµενη από την International Telecommunication Union-Telecommunications (ITU-T, International Telecommunication Unit) (H.261, H.263, H.263+ and H.26L) [7, 8, 9, 10] και την Moving Picture Experts Group (MPEG) (MPEG-1, MPEG-2 and MPEG-4) [11-13]. Αυτά τα πρότυπα δεν υπαγορεύουν τις µεθόδους κωδικοποίησης, παρά µόνο καθορίζουν την οργάνωση (σύνταξη) για την αναπαράσταση των δεδοµένων εισόδου στο αποκωδικοποιητή και ένα σύνολο κανόνων (semantics) για την µετάφρασή τους. Βασικά αυτά τα πρότυπα καθορίζουν τρία πράγµατα: 21

Κεφάλαιο 2 Σχετική Έρευνα Την σύνταξη σύµµορφων µε τους κανόνες bit streams (syntax of compliant bit streams) Την σηµασιολογία των bit streams (semantics) Την λειτουργικότητα των αποκωδικοποιητών (functionality of decoders) Τα πρότυπα MPEG δεν καθορίζουν των κωδικοποιητή. Αυτό υποδηλώνει ότι δεν υπάρχει ένας ενοποιηµένος τρόπος υλοποίησης ενός κωδικοποιητή και επιπλέον συνεχείς βελτιώσεις στον κωδικοποιητή είναι πιθανές µε διάφορα είδη βελτιστοποιήσεων ακόµα και µετά την ολοκλήρωση του προτύπου. 2.6 Ο Αλγόριθµος SCAN σε Σχέση µε τις Τεχνικές Συµπίεσης Ο αλγόριθµος SCAN για συµπίεση video που παρουσιάζεται αναλυτικά στο επόµενο κεφάλαιο ανήκει στην ευρύτερη κατηγορία των τεχνικών interframe συµπίεσης. Ο λόγος για τον οποίο ανήκει σε αυτήν την κατηγορία είναι ότι εκµεταλλεύεται τους χρονικούς πλεονασµούς που υπάρχουν σε ένα video. Αυτό που κάνει είναι να συγκρίνει ένα frame µε ένα προηγούµενό του και να απαλείφει την πλεονάζουσα πληροφορία χρησιµοποιώντας την διαφορά των frames (frame differencing). Όπως και στους υπόλοιπους αλγορίθµους αυτής της κατηγορίας χρησιµοποιούνται τα frames «κλειδιά» (key frames) τα οποία τίθενται ως σηµεία έναρξης για την εύρεση των διαφορών µε τα επόµενα frames. Ως πρώτο frame «κλειδί» χρησιµοποιείται το πρώτο frame του video και τα επόµενα δηµιουργούνται µέσα από µια διαδικασία σύγκρισης. Τα frames µεταξύ των key frames ονοµάζονται frames διαφορών και περιέχουν µόνο την πληροφορία που έχει αλλάξει από το προηγούµενο frame. Ένα επιπλέον χαρακτηριστικό που πρέπει να τονιστεί είναι ότι λόγω του γεγονότος ότι οι διαφορές µεταξύ των frames βρίσκονται µε βάση µια τιµή κατωφλίου οριζόµενη από τον χρήστη, το είδος της συµπίεσης που επιτυγχάνουµε είναι µε απώλειες (lossy). Η υποβάθµιση όµως της εικόνας που συνεπάγεται είναι ελεγχόµενη από το χρήστη µέσω της επιλογής αυτής της τιµής κατωφλίου, η οποία όταν πάρει την τιµή 0 η συµπίεση γίνεται χωρίς απώλειες. Ο ρόλος της τιµής αυτής που χρησιµοποιείται σε πολλές τεχνικές µε απώλειες είναι να µας βοηθάει να επιτύχουµε καλύτερο βαθµό συµπίεσης. 22

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video 3.1 Γενικά Η µεθοδολογία SCAN [14 17] είναι µία κλάση από τυπικές γλώσσες (formal languages), οι οποίες µπορούν να εφαρµοστούν στη συµπίεση, την κρυπτογράφηση, την απόκρυψη δεδοµένων (data hiding) ή σε συνδυασµούς αυτών. Σε αυτό το τµήµα γίνεται µια περιγραφή του αλγορίθµου SCAN για συµπίεση video, ο οποίος είναι φτιαγµένος για να χρησιµοποιηθεί ως µια πρώτου επιπέδου συµπίεση πριν την κρυπτογράφηση. Η υλοποίηση της κρυπτογράφησης σε hardware έχει ήδη γίνει [18 21] και απώτερος στόχος µας είναι η σύνδεσή της µε την αρχιτεκτονική που περιγράφεται στην παρούσα εργασία. Καταγράφονται επίσης µερικά πειραµατικά αποτελέσµατα πάνω στην ποιότητα της µεθοδολογίας, που αποκτήθηκαν από την υλοποίηση του αλγορίθµου σε software. Ο αλγόριθµος καθώς και τα πειραµατικά αποτελέσµατα δεν είναι κοµµάτι αυτής της διπλωµατικής, αλλά περιλαµβάνονται γιατί παρέχουν τις προδιαγραφές της αρχιτεκτονικής και µια βάση η οποία µπορεί να χρησιµοποιηθεί για να συγκριθεί µε τα αποτελέσµατα της υλοποίησης σε hardware. Ο αλγόριθµος SCAN για συµπίεση video βασίζεται στις διαφορές των γειτονικών frames. Εφόσον ο τρόπος µε τον οποίο βρίσκουµε τις διαφορές των frames είναι απωλεστικός (lossy), έχουµε ως αποτέλεσµα µια απωλεστική (lossy) συµπίεση video. Αυτό όµως που πρέπει να επισηµάνουµε είναι ότι το σφάλµα της συµπίεσης (οι απώλειες στην ακριβή αναπαράσταση του αρχικού video) µπορεί να περιοριστεί µε βάση την διαφορά των pixels µεταξύ του αρχικού και του ανακτώµενου video, η τιµή του οποίου καθορίζεται από τον χρήστη. Ο συνδυασµός της κρυπτογράφησης και της συµπίεσης video απεικονίζεται στην Εικόνα 3-1 [22]. Εικόνα 3-1: Κρυπτογράφηση και συµπίεση video. 23

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video 3.2 Περιγραφή του Αλγορίθµου Συµπίεσης Video Παρόλο που ο υλοποιηµένος σε software αλγόριθµος συµπίεσης video περιλαµβάνει και την κρυπτογράφηση, θα αναλυθεί µόνο το κοµµάτι της συµπίεσης. Τα βήµατα του αλγορίθµου έχουν ως εξής: 1. Αποθήκευση βασικών πληροφοριών Αποθηκεύονται οι πληροφορίες που αφορούν τον αριθµό των frames που θα επεξεργαστούµε, το ύψος τους, το πλάτος τους καθώς και ολόκληρο το πρώτο frame. 2. Εύρεση frames διαφορών Το δεύτερο frame συγκρίνεται µε το πρώτο για να αποκτήσουµε το frame µε τις διαφορές. Οι διαφορές βρίσκονται συγκρίνοντας την τιµή κάθε pixel µε την τιµή του αντίστοιχου pixel του πρώτου frame. Αν η τιµή της διαφοράς είναι µεταξύ του ΤΗ και του ΤΗ, όπου ΤΗ η τιµή κατωφλίου που έχει ορίσει ο χρήστης, το pixel στο frame των διαφορών παίρνει την τιµή -1, αλλιώς παίρνει την τιµή που έχει το pixel του δεύτερου frame. Ταυτόχρονα µε τα frames των διαφορών φτιάχνεται και το frame που θα χρησιµοποιηθεί για την επόµενη σύγκριση (στη θέση του πρώτου) και θα είναι αυτό που θα συγκριθεί µε το επόµενο κατά σειρά frame. Στο frame σύγκρισης αν η διαφορά µεταξύ των συγκρινόµενων pixels είναι εντός των ορίων του κατωφλίου, το αντίστοιχο δικό του pixel παίρνει την τιµή που έχει το pixel του πρώτου frame, αλλιώς παίρνει την τιµή που έχει το pixel του νέου frame. Για την απόκτηση των υπόλοιπων frames µε τις διαφορές ακολουθείται ακριβώς η ίδια µε την παραπάνω διαδικασία 3. Συµπίεση των frames των διαφορών Κάθε frame διαφορών αναλύεται σε παράθυρα 4 x 4. Κάθε παράθυρο εξετάζεται για να διαπιστώσουµε αν έχει έστω και ένα στοιχείο διαφορετικό του -1. Αν έχει ένα τέτοιο στοιχείο, τότε το παράθυρο κωδικοποιείται. Για την κωδικοποίηση το πρώτο πράγµα που βρίσκουµε είναι οι συντεταγµένες του παραθύρου στο frame των διαφορών οι οποίες και 24

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video αποθηκεύονται στο τελικό αρχείο που θα περιέχει το συµπιεσµένο video, αναπαριστώµενες µε όσα bits απαιτούνται για την σωστή αποθήκευσή τους. Ύστερα, για καθένα από τα pixels του παραθύρου ακολουθούµε την εξής διαδικασία: αν η τιµή του είναι ίση µε -1, στο τελικό αρχείο αποθηκεύουµε το bit 0, αλλιώς αποθηκεύουµε το bit 1 και την τιµή του pixel αναπαριστώµενη σε όσα bits απαιτούνται για την απεικόνιση των pixels του frame. Αν κανένα στοιχείο του παραθύρου δεν είναι διαφορετικό του -1, το παράθυρο αυτό παραλείπεται και δεν κρατάµε καθόλου πληροφορία για αυτό. Για καθένα frame διαφορών που ελέγχουµε έχουµε και έναν µετρητή ο οποίος µετράει τον αριθµό των παραθύρων που έχουν στοιχεία διαφορετικά του -1. Ο αριθµός αυτός αποθηκεύεται στο τελικό αρχείο µετά την κωδικοποίηση όλων των παραθύρων του frame. 3.3 Περιγραφή του Αλγορίθµου Συµπίεσης Video σε Ψευδοκώδικα Στον ψευδοκώδικα που ακολουθεί περιγράφεται η συµπίεση του video µαζί µε την κρυπτογράφηση. Η κρυπτογράφηση του video γίνεται από την συνάρτηση VideoEncrypt(). Αυτή η συνάρτηση και οι βοηθητικές της συναρτήσεις περιγράφονται παρακάτω. Σε όλες αυτές τις συναρτήσεις τα σύµβολα N, w, και h δηλώνουν τον αριθµό των frames του video, το πλάτος και το ύψος του frame αντίστοιχα, όπου το πλάτος και το ύψος εκφράζονται σε αριθµό pixels. Τα σύµβολα m, n και k δηλώνουν τον αριθµό των bits που χρειάζονται για την αναπαράσταση των συντεταγµένων των παραθύρων x και y και των pixels των frames αντίστοιχα. Το σύµβολο B p,q δηλώνει την δυαδική αναπαράσταση του ακεραίου p σε q bits. Επίσης µε V συµβολίζεται το αρχικό video και µε Κ το κλειδί βάση του οποίου γίνεται η κρυπτογράφηση. Η έκφραση C = Append(A, B) σηµαίνει ότι προσθέτουµε τους πίνακες Α και Β και αναθέτουµε το αποτέλεσµα στον C [22]. Βοηθητικά σχόλια για την καλύτερη κατανόηση του ψευδοκώδικα εµφανίζονται στα δεξιά των γραµµών και των σχολίων αυτών προηγείται το σύµβολο //. 25

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video VideoEncrypt(V,K) //συνάρτηση για την κρυπτογράφηση του video Inputs: Original video V, Encryption key K //είσοδοι είναι το V //και το Κ Output: Encrypted video is sent to receiver //έξοδος είναι το //κρυπτογραφηµένο video { Let F 1 F N be the frames of V //µε F N συµβολίζονται τα frames //του video Let G 1 G N = Difference (F 1 F N ) //µε G N συµβολίζονται οι //διαφορές των frames Set Buffer = G 1 //αρχίζει η κρυπτογράφηση For (i = 2-N) { Comp = Compress(G i ) Buffer = Append(Buffer, Comp) If size of Buffer >= 256 x 256 bytes Encrypt first 256 x 256 bytes of Buffer with K and send to receiver and empty those bytes from Buffer } Encrypt remaining bytes in Buffer and send to receiver } G 1 G N = Difference(F 1 F N ) //συνάρτηση για την εύρεση των frames µε τις //διαφορές και των frames σύγκρισης Input: Video frames F 1 F N //είσοδοι είναι τα frames F 1 F N του video Output: Difference frames G 1 G N //έξοδος είναι τα frames µε τις //διαφορές G 1 G N { Let G 1 = F 1, T = F 1 //στο frame G 1 τοπο8ετείται το 1 ο frame του video Let TH = user specified value //δίνεται η τιµή κατωφλίου //ΤΗ από τον χρήστη 26

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video For (k = 2-N) //για τα υπόλοιπα frames εκτελείται η διαδικασία //σύγκρισης { For 1 <= i <= h, 1 <= j <= w //για καθένα από τα //frames συγκρίνονται όλα τα pixels τους µε αυτά του frame σύγκρισης Τ και µε βάση τη //διαφορά τους σε σχέση µε την τιµή κατωφλίου, παίρνουν τιµές τα Pixels των G k [i][j] //και T[i][j] όπου Τ[i][j] το νέο frame key frame If F k [i][j] T[i][j] <= TH G k [i][j] = -1 Else G k [i][j] = F k [i][j] T[i][j] = G k [i][j] } Return G 1 G N //µε την ολοκλήρωση της διαδικασίας έχουν //δηµιουργηθεί τα frames των διαφορών } X = Compress(D) //συνάρτηση για την συµπίεση των frames µε τις διαφορές Input: Difference frame D //είσοδος είναι το frame D µε τις διαφορές Output: Compressed difference frame X //έξοδος είναι το //συµπιεσµένο frame διαφορών Χ { X = Φ, Count = 0 Decompose D into 4 x 4 windows //ανάλυση του D σε //παράθυρα 4x4 For each window W //έλεγχος παραθύρου για εύρεση στοιχείων µε //τιµή -1 If W has an element other than -1 X = Append(X, EncodeWindow(W)) //για κάθε //τέτοιο παράθυρο καλείται η συνάρτηση EncodeWindow Count = Count + 1 //καταµέτρηση παραθύρων //µε στοιχεία -1 X = Append(B Count, m + n 4, X) 27

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video } Return X U = EncodeWindow(W) //συνάρτηση κωδικοποίησης παραθύρων Input: 4 x 4 window W from difference frame //είσοδος είναι το //παράθυρο 4x4 Output: Encoded window U //έξοδος είναι το κωδικοποιηµένο παράθυρο U Let U = Φ and let (x, y) be the top left corner of W U = Append(U, B x/4, m 2 ) U = Append(U, B y/4, n 2 ) //οι συντεταγµένες του παραθύρου και ακολουθεί η κωδικοποίηση των στοιχείων του For each pixel p in W in raster order If p equals -1 //0 για στοιχεία=-1και 1&τιµή στοιχείου για //τα υπόλοιπα U = Append(U, 0) Else U = Append(U, 1), U = Append(U, B p, k ) Return U } Ο ψευδοκώδικας που µόλις παρουσιάστηκε αποτελείται από τη συνάρτηση VideoEncrypt( ) που εκτελεί την κρυπτογράφηση του video, τη συνάρτηση Difference( ) η οποία δηµιουργεί τα frames διαφορών και τα frames σύγκρισης, τη συνάρτηση Compress( ) που συµπιέζει τα frames των διαφορών και τέλος τη συνάρτηση EncodeWindow( ) η οποία κωδικοποιεί τα παράθυρα. Αναλυτικότερα, στην Difference( ) παίρνουµε τα Ν frames του video και κρατώντας το πρώτο ως βάση σύγκρισης, ελέγχουµε αν η διαφορά µεταξύ του Pixel του frame σύγκρισης και του αντίστοιχου pixel του επόµενου frame είναι εντός των ορίων κατωφλίου. Αν το αποτέλεσµα της διαφοράς είναι πράγµατι εντός των ορίων, η αντίστοιχη τιµή του pixel του frame µε τις διαφορές (πίνακας G) που δηµιουργείται γίνεται ίση µε -1. Σε αντίθετη περίπτωση το pixel παίρνει την τιµή του από το δεύτερο frame που συγκρίνουµε. Ταυτόχρονα δηµιουργείται και το νέο frame σύγκρισης που τοποθετείται στον πίνακα Τ. Στο frame αυτό εάν η διαφορά είναι 28

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video εντός των ορίων κατωφλίου το στοιχείο παίρνει την τιµή που έχουµε στο frame σύγκρισης, αλλιώς παίρνει την τιµή του επόµενου frame. Η συνάρτηση Compress( ) αναλαµβάνει να συµπιέσει τα frames µε τις διαφορές και αυτό γίνεται µε την ανάλυση των frames σε παράθυρα 4x4. Κάθε παράθυρο αν έχει έστω και ένα στοιχείο µε τιµή διαφορετική από -1, περνάει από την συνάρτηση EncodeWindow που ακολουθεί, αλλιώς παραλείπεται. Σε αυτή την συνάρτηση χρησιµοποιείται και ο µετρητής Count ο οποίος µετρά τα παράθυρα που έχουν έστω και ένα στοιχείο -1 µέσα σε ένα frame. Ο µετρητής µηδενίζεται σε κάθε νέο frame διαφορών. Στην συνάρτηση EncodeWindow ( ) έχουµε την κωδικοποίηση των παραθύρων. Πριν από την κωδικοποίηση κάθε παραθύρου W βρίσκονται οι συντεταγµένες του µέσα στο frame και καταγράφονται στον πίνακα U που θα προσαρτηθεί στο τελικό συµπιεσµένο αρχείο. Ύστερα, έχουµε την κωδικοποίηση των στοιχείων που γίνεται ως εξής: για κάθε στοιχείο µε τιµή -1 αποθηκεύεται το bit 0, ενώ για τα υπόλοιπα αποθηκεύεται το bit 1 ακολουθούµενο από την τιµή του ίδιου του pixel. Πρέπει να σηµειωθεί ότι η συνάρτηση Difference( ) περιλαµβάνει lossy λειτουργία η οποία κάνει την συµπίεση video lossy. Ταυτόχρονα όµως εγγυάται ότι το µέγεθος της διαφοράς µεταξύ της τιµής ενός pixel στο αρχικό video και της αντίστοιχης τιµής του pixel στο ανακτώµενο video στον δέκτη είναι το πολύ ίση µε την τιµή κατωφλίου ΤΗ, η οποία επιλέγεται από τον χρήστη και εξαρτάται από την εφαρµογή. Χρησιµοποιώντας µια υψηλή τιµή κατωφλίου παράγουµε υψηλότερο βαθµό συµπίεσης και περισσότερη υποβάθµιση του video. Για την καλύτερη κατανόηση του αλγορίθµου ακολουθεί στην Εικόνα 3-2 ένα µικρό παράδειγµα που προσοµοιώνει την συµπίεση δύο frames διαστάσεων 8x8 µε τιµή κατωφλίου 4. Όπως φαίνεται σε αυτήν την εικόνα το πρώτο και το τέταρτο παράθυρο του difference frame, επειδή έχουν όλα τα στοιχεία τους µε τιµή -1, παραλείπονται και δεν περιλαµβάνονται στο συµπιεσµένο frame των διαφορών. Αυτό συµβαίνει γιατί η διαφορά µεταξύ των τιµών των Pixels του πρώτου και του δεύτερου frame είναι µικρότερη ή ίση του 4. Στο δεύτερο όµως παράθυρο έχουµε στοιχεία µε τιµή 29

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video Εικόνα 3-1: Παράδειγµα συµπίεσης 2 frames διαφορετική του -1, γιατί τα αντίστοιχα pixels των frames 1 και 2 παρουσιάζουν µεγάλη διαφορά. Με παρόµοιο τρόπο σχηµατίζεται και το temporary frame. Η διαφορά του είναι ότι εκεί που το difference frame έχει -1, το temporary frame έχει την τιµή των στοιχείων του πρώτου frame. Κατά την συµπίεση τα πρώτα 2 bits αναπαριστούν τον αριθµό των παραθύρων που κωδικοποιήσαµε (Β 2,2 σηµαίνει ότι κωδικοποιήσαµε 2 παράθυρα και ο αριθµός αυτός αναπαρίσταται σε 2 bits) και ακολουθεί η κωδικοποίηση του κάθε παραθύρου. Για το κάθε παράθυρο πρώτα 30

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video αποθηκεύονται οι συντεταγµένες του. Στο παράδειγµά µας το παράθυρο που κωδικοποιούµε πρώτο έχει συντεταγµένες x = 0 και y = 1. Έτσι, το Β 0,1 σηµαίνει η τετµηµένη του παραθύρου είναι 0 και αναπαρίσταται µε 1 bit, ενώ το Β 1,1 σηµαίνει ότι η τεταγµένη του παραθύρου είναι 1 και αναπαρίσταται µε 1 bit. Ακολουθούν οι άσσοι και οι τιµές των pixels για τις περιπτώσεις που έχουµε τιµές διαφορετικές του -1 και τα µηδενικά για αυτές που έχουµε τιµές ίσες µε -1. Ο βαθµός συµπίεσης µεταξύ του αρχικού frame 2 και της συµπιεσµένης διαφοράς του frame είναι (8x8x8)/(2+106+74) ή περίπου 3/1. Εικόνα 3-3: Απεικόνιση της συµπίεσης µιας διαφοράς frame. Η Εικόνα 3-3 δείχνει την συµπίεση µιας 16x16 διαφοράς frame. Τα παράθυρα που είναι σηµειωµένα µε -1 είναι εκείνα που όλα τα στοιχεία τους είναι -1, ενώ τα υπόλοιπα περιέχουν και pixels µε τιµές από 0 έως 255. Σε αυτό το παράδειγµα ο βαθµός συµπίεσης µεταξύ του αρχικού frame και της συµπιεσµένης διαφοράς του 31

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video frame είναι (16x16x8)/(4+68+36+32) ή περίπου 8/1. Κρυπτογραφώντας τις συµπιεσµένες διαφορές των frames επιτυγχάνονται ταυτόχρονα γρήγορη κρυπτογράφηση και συµπίεση. Για να ανακτήσουµε το video στον δέκτη, το συµπιεσµένο και κρυπτογραφηµένο video πρώτα αποκρυπτογραφείται για να αποκτήσουµε το συµπιεσµένο video, το οποίο ύστερα αποσυµπιέζεται για να αποκτήσουµε τις διαφορές των frames. Αυτές οι διαφορές των frames και το πρώτο frame χρησιµοποιούνται για την ανακατασκευή του video. Σηµειώνουµε ότι οι παράµετροι N, w, h, m, n, k στέλνονται στον δέκτη ξεχωριστά πριν την µετάδοση του συµπιεσµένου και κρυπτογραφηµένου video [22]. 3.4 Πειραµατικά Αποτελέσµατα Η προτεινόµενη µέθοδος κρυπτογράφησης που χρησιµοποιείται σε συνδυασµό µε την πρώτου επιπέδου συµπίεση δοκιµάστηκε µε αρκετά videos. Στην Εικόνα 3-4 αναπαριστώνται αντιπροσωπευτικά frames από τέσσερα τέτοια videos καθένα από τα οποία έχει είκοσι συνεχόµενα frames. Ο Πίνακας 3-1, που προέρχεται από την δηµοσίευση [22], δείχνει το ποσοστό συµπίεσης, το οποίο είναι υπολογισµένο ως εξής: ((αρχικό µέγεθος συµπιεσµένο µέγεθος) / (αρχικό µέγεθος)) x 100 και το µέσο τετραγωνικό σφάλµα µεταξύ των αρχικών και των ανακτώµενων videos για διάφορες τιµές κατωφλίου. Η Εικόνα 3-5 δείχνει πέντε frames από το video Claire, το συµπιεσµένο και κρυπτογραφηµένο video από τα είκοσι frames καθώς και τα αντίστοιχα πέντε ανακτώµενα frames όταν η τιµή κατωφλίου είναι πέντε [22]. Εικόνα 3-4: οκιµαστικά videos. 32

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video Πίνακας 3-1 Ας σηµειώσουµε ότι η τιµή κατωφλίου είναι η µέγιστη επιτρεπόµενη διαφορά βασιζόµενη στα pixels µεταξύ των αρχικών και των ανακτώµενων videos και το µέσο τετραγωνικό σφάλµα µετράει τη µέση διαφορά µεταξύ του αρχικού και του ανακτώµενου video. Υψηλότερες τιµές κατωφλίου παράγουν µεγαλύτερη συµπίεση και περισσότερη υποβάθµιση των videos, αλλά η συµπίεση µεγαλώνει ταχύτερα από ότι το µέσο σφάλµα. Για παράδειγµα, κατά µέσο όρο, τιµή κατωφλίου ίση µε πέντε παράγει περίπου 78% συµπίεση video µε µέσο σφάλµα µόνο περίπου 1.67 (και µέγιστο σφάλµα ίσο µε 5). Εικόνα 3-5: Συµπίεση και κρυπτογράφηση του video Claire 33

Κεφάλαιο 3 Ο Αλγόριθµος SCAN για Συµπίεση Video 3.5 Συµπεράσµατα Από την παρουσίαση του αλγορίθµου κατανοούµε ότι το βασικό του στοιχείο και αυτό που του δίνει σηµαντική αξία έναντι των υπολοίπων δεν είναι τόσο η διαδικασία εύρεσης διαφορών µεταξύ των frames όσο το είδος της κωδικοποίησης που πραγµατοποιείται. Με τον συγκεκριµένο τρόπο µπορούµε να παραλείπουµε ολόκληρα κοµµάτια από ένα frame, γεγονός που είναι πολύ χρήσιµο ειδικά σε εικόνες από video που δεν παρουσιάζουν σηµαντικές διαφορές µεταξύ τους. Τέτοιες περιπτώσεις είναι video που αναπαριστούν οµιλίες ή συνοµιλίες (εκποµπές ειδήσεων για παράδειγµα) και γενικά video που δεν περιλαµβάνουν έντονες και διαρκείς κινήσεις. Την αξία του αλγορίθµου τονίζει επιπλέον το γεγονός ότι η τιµή κατωφλίου επιλέγεται από τον χρήστη, έτσι ώστε να έχουµε την επιθυµητή κάθε φορά ποιότητα εικόνας. 34

Κεφάλαιο 4 Η Αρχιτεκτονική για την Υλοποίηση του Αλγορίθµου Συµπίεσης Κεφάλαιο 4 Η Αρχιτεκτονική για την Υλοποίηση του Αλγορίθµου Συµπίεσης 4.1 Γενικά Σε αυτό το τµήµα της εργασίας παρουσιάζουµε την αρχιτεκτονική που αναπτύχθηκε, προκειµένου να επιτύχουµε την hardware υλοποίηση του αλγορίθµου SCAN για συµπίεση video. Τα συγκεκριµένα χαρακτηριστικά αρκετών components όπως οι µνήµες RAM και οι FIFOs έχουν επιλεγεί χωρίς να µας ενδιαφέρει σε ποια από τις διαθέσιµες FPGA του εργαστηρίου θα γίνει downloaded η σχεδίαση, αλλά µε βάση το ποια FPGA έχει τα χαρακτηριστικά που απαιτούνται για την υλοποίηση της σχεδίασής µας. Ένα τέτοιο χαρακτηριστικό είναι το µέγεθος της µνήµης που στην περίπτωσή µας πρέπει να είναι µεγάλο, για να µπορούµε να αποθηκεύσουµε τα frames που θα συµπιεστούν. Για αυτό το σκοπό επιλέξαµε την Virtex2Pro XCV2VP50 η οποία έχει τη µεγαλύτερη χωρητικότητα από όλες τις διαθέσιµες στην έκδοση 4.2 της Xilinx ISE, όπου υλοποιήθηκε η σχεδίασή µας. Ολόκληρο το κύκλωµα είναι σχεδιασµένο για να επεξεργάζεται εικόνες µε διαστάσεις 64x64x8 για λόγους χωρητικότητας αλλά και πιο εύκολης συµβατότητας µε το ήδη υλοποιηµένο κοµµάτι της κρυπτογράφησης, το οποίο κρυπτογραφεί εικόνες αυτών των διαστάσεων. Για να ελέγξουµε την λειτουργία του κυκλώµατος χρησιµοποιήσαµε µια ακολουθία από δέκα frames, αλλά θα µπορούσαµε να βάλουµε και περισσότερα µε µικρές και εύκολες αλλαγές στο κύκλωµα, µιας και η FPGA που χρησιµοποιήσαµε έχει µεγάλη χωρητικότητα. Για την επεξεργασία των δέκα frames απαιτούνται περίπου 1,739 Kbits, µε αποτέλεσµα να έχουµε χώρο και για άλλα frames. Συγκεκριµένα, η FPGA που χρησιµοποιήσαµε έχει χωρητικότητα µνήµης 4,176 Kbits και µπορούµε να επεξεργαστούµε έως και είκοσι τέσσερα frames. Για την δική µας περίπτωση µε τα δέκα frames αρκεί και µια Virtex2 XC2V4000. Στην παράγραφο 4.2 παρουσιάζεται η γενική αρχιτεκτονική του συστήµατος, ενώ στις υπόλοιπες παραγράφους περιγράφεται η λειτουργία κάθε µονάδας αυτής της αρχιτεκτονικής. 35