Διπλωματική Εργασία. του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και. Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του. Πανεπιστημίου Πατρών

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διπλωματική Εργασία. του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και. Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του. Πανεπιστημίου Πατρών"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών KΑΒΡΟΥΛΑΚΗ ΝΙΚΟΛΑΟΥ ΤΟΥ ΜΑΡΚΟΥ Αριθμός Μητρώου: 6516 Θέμα «ΑΝΑΠΤΥΞΗ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ ΔΙΠΛΟΥ ΦΙΛΤΡΟΥ ΚΑΙ FPGA ΥΛΟΠΟΙΗΣΕΙΣ ΓΙΑ ΤΟ Η.264 / AVC DEBLOCKING FILTER» Επιβλέπων ΓΕΩΡΓΙΟΣ ΘΕΟΔΩΡΙΔΗΣ 1

2 2

3 Αριθμός Διπλωματικής Εργασίας: Πάτρα, Φεβρουάριος του 2013 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «ΑΝΑΠΤΥΞΗ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ ΔΙΠΛΟΥ ΦΙΛΤΡΟΥ ΚΑΙ FPGA ΥΛΟΠΟΙΗΣΕΙΣ ΓΙΑ ΤΟ Η.264 / AVC DEBLOCKING FILTER» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΚΑΒΡΟΥΛΑΚΗ ΝΙΚΟΛΑΟΥ ΤΟΥ ΜΑΡΚΟΥ Αριθμός Μητρώου: 6516 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Ο Διευθυντής του Τομέα Γ. Θεοδωρίδης Ε. Χούσος 3

4 4

5 Αριθμός Διπλωματικής Εργασίας: Θέμα: «ΑΝΑΠΤΥΞΗ ΑΡΧΙΤΕΚΤΟΝΙΚΩΝ ΔΙΠΛΟΥ ΦΙΛΤΡΟΥ ΚΑΙ FPGA ΥΛΟΠΟΙΗΣΕΙΣ ΓΙΑ ΤΟ Η.264 / AVC DEBLOCKING FILTER» Φοιτητής: KABΡΟΥΛΑΚΗΣ ΝΙΚΟΛΑΟΣ Επιβλέπων: ΘΕΟΔΩΡΙΔΗΣ ΓΕΩΡΓΙΟΣ Περίληψη Αντικείμενο της παρούσας διπλωματικής εργασίας είναι η παρουσίαση και η μελέτη ενος εναλλακτικού σχεδιασμού του deblocking φίλτρου του προτύπου κωδικοποίησης βίντεο Η.264. Αρχικά επεξηγείται αναλυτικά ο τρόπος λειτουργίας του φίλτρου και στη συνέχεια προτείνεται ένας πρωτοποριακός σχεδιασμός με χρήση pipeline πέντε σταδίων. Ο σχεδιασμός παρουσιάζει σημαντικά πλεονεκτήματα στον τομέα της ταχύτητας (ενδεικτικά εμφανίζεται βελτιωμένη απόδοση στην συχνότητα λειτουργίας και στο throughput). Αυτό πιστοποιήθηκε από μετρήσεις που έγιναν σε συγκεκριμένα fpga και επαλήθευσαν τα θεωρητικά συμπεράσματα που είχαν εξαχθεί. 5

6 Ευχαριστίες Θα ήθελα να ευχαριστήσω τον καθηγητή μου κύριο Γεώργιο Θεοδωρίδη για την πολύτιμη βοήθεια του κατά την διάρκεια εκπόνησης της διπλωματικής αυτής εργασίας. Επίσης, θα ήθελα να αναφερθώ και στην πολύτιμη συμβολή του συνεργάτη του πανεπιστημίου Πατρών, κυρίου Νικόλαου Κεφάλα, με την πολύτιμη καθοδήγηση του οποίου επετεύχθη η ολοκλήρωση της εργασίας. Τέλος, ένα μεγάλο ευχαριστώ στην οικογένεια μου και στους φίλους μου οι οποίοι αποτέλεσαν ένα μεγάλο και διαρκές στήριγμα κατά τη διάρκεια των σπουδών μου. 6

7 Περιεχόμενα Λίστα Σχημάτων... 9 Λίστα πινάκων Εισαγωγή Το πρότυπο Η Hybrid video coding Βασικά χαρακτηριστικά Entropy decoder Intraframe prediction Interframe prediction Transform coding Deblocking filter Network-friendly features Αλγοριθμική περιγραφή του deblocking φίλτρου FILTER ORDER Boundary Strength (Bs) Threshold Διαδικασία φιλτραρίσματος Η διαδικασία φιλτραρίσματος για Bs μικρότερο από Η διαδικασία φιλτραρίσματος για Bs ίσο με Αρχιτεκτονική του διπλού φίλτρου Γενική περιγραφή της αρχιτεκτονικής Χρονοδρομολόγηση φιλτραρίσματος ακμών Ανάλυση θέσης του Macroblock στο frame Οργάνωση του pipeline Σχεδιασμός μονάδων Deblocking Φίλτρο Βασικά στοιχεία Στάδια του φίλτρου Απλοποίηση εξισώσεων Transpose Buffers Μονάδα υπολογισμού του Bs Πειραματικά αποτελέσματα Επιβεβαίωση ορθής λειτουργίας

8 5.2 Μετρικές μελέτης Πειραματικά αποτελέσματα Υλοποίηση σε τεχνολογία Altera Υλοποίηση σε τεχνολογία Xilinx Συγκρίσεις με υπάρχουσες υλοποιήσεις Συμπεράσματα Βιβλιογραφία

9 Λίστα Σχημάτων ΣΧΗΜΑ 1.1.1: ΣΗΜΕΙΟ ΔΡΑΣΗΣ ΤΟΥ ΠΡΟΤΥΠΟΥ ΣΤΗΝ ΣΥΝΟΛΙΚΗ ΔΙΑΔΙΚΑΣΙΑ ΤΗΣ ΚΩΔΙΚΟΠΟΙΗΣΗΣ ΒΙΝΤΕΟ ΣΧΗΜΑ 1.1.2: ΔΟΜΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤΟΥ ΠΡΟΤΥΠΟΥ Η.264 ΓΙΑ ΤΗΝ ΚΩΔΙΚΟΠΟΙΗΣΗ ΕΝΟΣ ΜΑΚΡΟΜΠΛΟΚ ΣΧΗΜΑ 1.2.2: ΔΕΙΓΜΑΤΑ ΠΡΟΒΛΕΨΗΣ ΓΙΑ ΕΝΑ 4X4 ΜΠΛΟΚ ΣΧΗΜΑ 2.1.1: ΟΡΙΖΟΝΤΙΟ ΚΑΙ ΚΑΘΕΤΟ ΦΙΛΤΡΑΡΙΣΜΑ ΣΕ ΕΝΑ 16X16 ΜΑΚΡΟΜΠΛΟΚ ΣΧΗΜΑ 2.1.2: ΟΡΙΖΟΝΤΙΟ ΚΑΙ ΚΑΘΕΤΟ ΦΙΛΤΡΑΡΙΣΜΑ ΣΕ ΜΑΚΡΟΜΠΛΟΚ ΦΩΤΕΙΝΟΤΗΤΑΣ ΚΑΙ ΧΡΩΜΑΤΟΣ ΣΧΗΜΑ 2.2: ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΓΙΑ ΤΟΝ ΚΑΘΟΡΙΣΜΟ ΤΗΣ ΠΑΡΑΜΕΤΡΟΥ BS ΣΧΗΜΑ 3.1: ΔΟΜΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΣΧΗΜΑ 3.2.1: ΑΝΑΛΥΣΗ ΤΩΝ ΑΚΜΩΝ ΤΟΥ ΜΑΚΡΟΜΠΛΟΚ LUMA(Y) ΚΑΙ ΤΩΝ CHROMA (CB ΚΑΙ CR) 33 ΣΧΗΜΑ 3.2.2: ΑΝΑΛΥΣΗ ΧΡΟΝΙΣΜΩΝ ΤΟΥ ΦΙΛΤΡΟΥ ΣΧΗΜΑ 3.3: ΠΙΘΑΝΕΣ ΘΕΣΕΙΣ ΤΟΥ MACROBLOCK ΣΕ ΕΝΑ FRAME ΣΧΗΜΑ 3.4.1: ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΠΕΝΤΕ ΣΤΑΔΙΩΝ ΤΟΥ PIPELINE ΣΧΗΜΑ 3.4.2: ΑΝΑΛΥΤΙΚΗ ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΠΕΝΤΕ ΣΤΑΔΙΩΝ ΤΟΥ PIPELINE ΣΧΗΜΑ : ΑΝΑΛΥΤΙΚΗ ΔΙΑΔΙΚΑΣΙΑ ΦΙΛΤΡΑΡΙΣΜΑΤΟΣ ΣΤΑ ΣΤΑΔΙΑ 3 ΚΑΙ 4 ΓΙΑ BS = 4 ΜΕΤΑ ΤΙΣ ΑΠΛΟΠΟΙΗΣΕΙΣ ΤΩΝ ΕΞΙΣΩΣΕΩΝ ΣΧΗΜΑ : ΑΝΑΛΥΤΙΚΗ ΔΙΑΔΙΚΑΣΙΑ ΦΙΛΤΡΑΡΙΣΜΑΤΟΣ ΣΤΑ ΣΤΑΔΙΑ 3 ΚΑΙ 4 ΓΙΑ BS = 1,2 Η 3 ΜΕΤΑ ΤΙΣ ΑΠΛΟΠΟΙΗΣΕΙΣ ΤΩΝ ΕΞΙΣΩΣΕΩΝ ΣΧΗΜΑ 4.2.1: ΕΤΕΡΟΓΕΝΗΣ ΟΡΓΑΝΩΣΗ ΜΝΗΜΗΣ ΣΧΗΜΑ 4.2.2: ΣΧΗΜΑΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ ΤΟΥ TRANSPOSE ΣΧΗΜΑ 4.3: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΜΟΝΑΔΑΣ ΥΠΟΛΟΓΙΣΜΟΥ ΤΟΥ BS ΣΧΗΜΑ 5.3.1: ΣΥΓΚΡΙΤΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤOΥ THROUGHPUT ΤΩΝ FPGA ΤΗΣ ALTERA ΣΧΗΜΑ : ΣΥΓΚΡΙΤΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤOΥ THROUGHPUT ΤΩΝ FPGA ΤΗΣ XILINX ΣΧΗΜΑ : ΣΥΓΚΡΙΤΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤOΥ THROUGHPUT/AREA ΤΩΝ FPGA ΤΗΣ ΧILINX ΣΧΗΜΑ 5.4: ΣΥΓΚΡΙΣΗ THROUGHPUT ΔΙΑΦΟΡΕΤΙΚΩΝ ΥΛΟΠΟΙΗΣΕΩΝ

10 Λίστα πινάκων ΠΙΝΑΚΑΣ 1: ΠΙΝΑΚΑΣ ΚΑΘΟΡΙΣΜΟΥ ΤΩΝ ΠΑΡΑΜΕΤΡΩΝ Α, Β ΠΙΝΑΚΑΣ 2: ΠΙΝΑΚΑΣ ΚΑΘΟΡΙΣΜΟΥ ΤΗΣ ΠΑΡΑΜΕΤΡΟΥ TC ΠΙΝΑΚΑΣ 3: ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕΤΡΗΣΕΩΝ ΓΙΑ FPGA ΤΗΣ ΑLTERA ΠΙΝΑΚΑΣ 4: ΑΠΟΤΕΛΕΣΜΑΤΑ ΜΕΤΡΗΣΕΩΝ ΓΙΑ FPGA ΤΗΣ ΑLTERA ΠΙΝΑΚΑΣ 5: ΜΕΤΡΗΣΕΙΣ ΒΑΣΙΚΩΝ ΣΤΟΙΧΕΙΩΝ ΥΛΟΠΟΙΗΜΕΝΩΝ ΣΧΕΔΙΑΣΜΩΝ

11 Εισαγωγή To πρότυπο H.264 (ή αλλιώς MPEG-4 part 10) είναι πλέον το ευρύτερα χρησιμοποιούμενο πρότυπο στον χώρο της κωδικοποίησης βίντεο καθώς στηρίζεται από μεγάλες εταιρίες στον χώρο του ίντερνετ (μεταξύ των οποίων η Google, η Apple και η Youtube). Το κύριο πλεονέκτημα του σε σχέση με παλαιότερα πρότυπα είναι ότι χωρίς να μειώσει την ποιότητα επιτυγχάνει καλύτερη απόδοση στον ρυθμό μετάδοσης. Βασικό στοιχείο του προτύπου αποτελεί το deblocking φίλτρο το οποίο εφαρμόζεται σε κάθε μακρομπλόκ ενός frame, προκειμένου να μειώσει την παραμόρφωση. Το φίλτρο αυτό αποτελεί το ένα τρίτο περίπου της υπολογιστικής πολυπλοκότητας του συνολικού αποκωδικοποιητή, κάτι που το καθιστά ιδιαίτερα σημαντικό μέρος της διαδικασίας. Στην παρούσα διπλωματική εργασία παρουσιάζεται μια εναλλακτική σχεδίαση του φίλτρου που επιτυγχάνει καλύτερη απόδοση από τις ήδη υπάρχουσες. Η σχεδίαση αυτή βασίζεται στη χρήση δυο φίλτρων (αντί ενός που χρησιμοποιείται στην υπάρχουσα τεχνολογία) καθώς και στην εφαρμογή pipelined σχεδίασης στο κάθε φίλτρο. Με την χρήση διπλού φίλτρου επιτυγχάνεται εκμετάλλευση της ανεξαρτησίας που υπάρχει σε πολλά σημεία του μακρομπλοκ και επομένως γίνεται εφικτό να φιλτράρονται ταυτόχρονα δυο διαφορετικά σημεία του χωρίς να υπάρχει πρόβλημα. Επιπλέον, με χρήση της τεχνικής του pipeline αυξάνεται σημαντικά το throughput. Φυσικά, για να επιτευχθεί το επιθυμητό αποτέλεσμα, η σχεδίαση πρέπει να γίνει ιδιαίτερα προσεκτικά ώστε να μην παραβιάζονται οι συνθήκες που επιβάλλει το πρότυπο. To αποτέλεσμα της χρήσης του εναλλακτικού αυτού σχεδιασμού είναι η σημαντική βελτίωση της απόδοσης σε ό,τι αφορά την συχνότητα λειτουργίας, το throughput και την ποιότητα της λαμβανόμενης εικόνας, ενώ η αναπόφευκτη αύξηση της επιφάνειας (λόγω χρήσης δυο φίλτρων αντί ενός) δεν είναι σημαντική. H εργασία ακολούθησε την ακόλουθη δομή. Στο κεφάλαιο 1 γίνεται μια αρκετά συνοπτική περιγραφή του πρότυπου H.264 και επεξηγείται η θέση του deblocking φίλτρου στην συνολική σχεδίαση. Στη συνέχεια, ακολουθεί η αλγοριθμική περιγραφή του φίλτρου (Κεφάλαιο 2). Εκεί, παρουσιάζονται όλες οι παραμέτροι που συμμετέχουν στο φίλτρο καθώς και αναλυτικά όλες οι εξισώσεις που χρησιμοποιούνται κατά τη διαδικασία. Ακολουθεί η παρουσίαση της αρχιτεκτονικής που επιλέχθηκε για την σχεδίαση (Κεφάλαιο 3). Πιο συγκεκριμένα παρουσιάζεται και εξηγείται το δομικό διάγραμμα, ο πίνακας χρονισμών με χρήση του οποίου αποσαφηνίζεται η λειτουργία του φίλτρου ενώ επεξήγείται και το pipelining που εφαρμόστηκε. Στο επόμενο κεφάλαιο (Κεφάλαιο 4) κάθε δομική μονάδα που χρησιμοποιήθηκε στην παρούσα αρχιτεκτονική αναλύεται πλήρως και παρουσιάζεται ο ρόλος της στο σύνολο της αρχιτεκτονικής. Τέλος, στο Κεφάλαιο 5 παρουσιάζονται τα αποτελέσματα των μετρήσεων που έγιναν σε χαρακτηριστικά fpga των εταιριών Altera και Xilinx. Τα αποτελέσματα παρουσιάζονται με μορφή πινάκων ενώ για συγκεκριμένες παραμέτρους χρησιμοποιήθηκαν διαγράμματα στα οποία γίνεται εμφανής η 11

12 βελτιωμένη απόδοση της παρούσας σχεδίασης σε σύγκριση με κάποιες παλαιότερες που χρησιμοποιούνται. 12

13 Introduction The standard H.264 (or else MPEG-4 part 10) is nowadays the most widely used standard in the area of video coding as it is supported by the largest enterprises in the internet (including Google, Apple and Youtube). Its most important advantage over the previous standards is that it achieves better bitrate without falling in terms of quality. A crucial part of the standard is the deblocking filter which is applied in each macroblock of a frame so that it reduces the blocking distortion. The filter accounts for about one third of the computational requirements of the standard, something which makes it a really important part of the filtering process. The current diploma thesis presents an alternative design of the filter which achieves better performance than the existing ones. The design is based in the use of two filters (instead of one used in current technology) and moreover, in the application of a pipelined design in each filter. By using a double filter, exploitation of the independence which exists in many parts of the macroblock is achieved. That is to say, it is feasible that different parts of it can be filtered at the same time without facing any problems. Furthermore, the use of the pipeline technique importantly increases the throughput. Needless to say, in order for the desired result to be achieved, the design has to be made really carefully so that the restrictions imposed by the standard will not be failed. The use of this alternative filter design will result in an important raise in the performance. Amongst all, the operating frequency, the throughput and the quality of the produced video will all appear to be considerably risen. It also needs to be mentioned that the inevitable increase of the area used (because of the fact that two filters are used instead of one) is not really important in terms of cost. The structure of the thesis is described in this paragraph. In chapter 1 there is a rather synoptic description of the H.264 standard and the exact position of the deblocking filter in the whole design is clarified. After that, the algorithmic description of the filter follows (Chapter 2). In this chapter, all the parameters participating in the filter are presented in full detail as well as the equations used during the process. In the next chapter (chapter 3), the architecture chosen for the design is presented. That is to say, the block diagram is presented and explained, as well as the table of timings which explains completely how the filter works. The pipelining technique applied in the filter is also analyzed and justified in this chapter. In the next chapter (chapter 4), every structural unit used in the current architecture is analyzed completely and its role in the whole structure is presented. Finally, in chapter 5, the results of the measurements made in typical fpgas of Altera and Xilinx are presented. The results are shown in table format whereas for specific parameters diagrams were used so that the improved performance of the current design compared to the older ones that are widely used, becomes evident. 13

14 14

15 Κεφάλαιο 1 1. Το πρότυπο Η.264 To πρότυπο κωδικοποίησης video H.264 (ή αλλιώς MPEG AVC) αναπτύχθηκε απο την κοινή δουλειά 2 διαφορετικών ομάδων, της ομάδας του διεθνούς οργανισμού για κατοχύρωση στάνταρντς τύπου MPEG (International Organization for Standardization s MPEG group) και της ομάδας της διεθνούς τηλεπικοινωνιακής ένωσης ειδικών κωδικοποίησης βίντεο (International Telecommunication Union s video coding experts group). Είναι ένας γενικού σκοπού κωδικοποιητής που στοχεύει σε εφαρμογές που εκτείνονται από χαμηλής πληροφοριακής ροής βίντεο κινητών τηλεφώνων έως και τηλεοράσεις υψηλής ευκρίνειας. Συγκρινόμενο με τον πρόγονό του, το MPEG-2, το H.264 προσφέρει βίντεο ίδιας ποιότητας (στo ανθρώπινο μάτι) χρησιμοποιώντας ρυθμό μετάδοσης δυο ή και τρεις φορές μικρότερο. Το εύρος των εφαρμογών καθώς και η πρόοδος σε ότι έχει να κάνει με την αποτελεσματικότητα της συμπίεσης έχει προκαλέσει σοβαρό ενδιαφέρον από εταιρίες. 1.1 Hybrid video coding Η πλειοψηφία των προτύπων κωδικοποίησης σήμερα, βασίζεται στην υβριδική κωδικοποίηση βίντεο, (hybrid video coding) - το βίντεο συμπιέζεται χρησιμοποιώντας ένα υβρίδιο επανόρθωσης κίνησης και κώδικα μετατροπής. Αυτοί οι αλγόριθμοι κωδικοποίησης συμπιέζουν τα δεδομένα του βίντεο μειώνοντας την πλεονάζουσα πληροφορία που προυπάρχει στο βίντεο. Η πληροφορία αυτή διαχωρίζεται σε 4 κατηγορίες: χωρική χρονική αντίληψης στατιστική Τα πρότυπα κωδικοποίησης βίντεο ισχύουν για τη διαδικασία αποκωδικοποίησης και όχι γι αυτήν της κωδικοποίησης. Η προσέγγιση αυτή αφήνει πρόσφορο πεδίο πειραματισμού για την κωδικοποίηση, η οποία είναι πιο πολύπλοκη. Το Η.264 στάνταρντ 15

16 λοιπόν, καθορίζει επακριβώς την διαδικασία αποκωδικοποίησης (όπως φαίνεται στο σχήμα 1.1.1). Σχήμα 1.1.1: Σημείο δράσης του προτύπου στην συνολική διαδικασία της κωδικοποίησης βίντεο Το βασικό διάγραμμα του προτύπου μπορεί να αποδοθεί με το σχήμα 1.1.2: Σχήμα 1.1.2: Δομικό διάγραμμα του πρότυπου Η.264 για την κωδικοποίηση ενός μακρομπλοκ 16

17 1.2 Βασικά χαρακτηριστικά Παρακάτω παρουσιάζονται τα κύρια στοιχεία τα οποία περιλαμβάνει το πρότυπο κωδικοποίησης Η Entropy decoder Ο αποκωδικοποιητής εντροπίας αναφέρεται στην κωδικοποίηση παραμέτρων, συντελεστών και άλλων αριθμητικών τιμών χρησιμοποιώντας δυαδικό κώδικα. Οι αποκωδικοποιητές εντροπίας χρησιμοποιούνται για να μειώσουνε τους στατιστικούς πλεονασμούς στο συμπιεσμένο βίντεο. Στην διαδικασία αποκωδικοποίησης, το πρώτο στάδιο είναι η μετατροπή των δυαδικών κωδίκων στις αριθμητικές τιμές που αντιστοιχούν. Οι τεχνικές που χρησιμοποιούνται για την κωδικοποίηση των στοιχείων (εκτός των κβαντισμένων συντελεστών) είναι οι VLC (variable-length coding) ενώ για τους κβαντισμένους συντελεστές χρησιμοποιείται είτε η κωδικοποίηση CAVLC (context adaptive VLC) είτε η CABAC (context-adaptive binary arithmetic coding). Η κωδικοποίηση CABAC είναι πιο αποδοτική αλλά έχει και μεγαλύτερη πολυπλοκότητα Intraframe prediction Χρησιμοποιείται για να εκμεταλλευτούμε χωρικούς πλεονασμούς. Το macroblock κωδικοποιείται σαν εσωτερικό (intra-mb) όταν δεν είναι δυνατό να γίνει πρόβλεψη με βάση το χρόνο (αυτό συμβαίνει στο πρώτο frame του βίντεο) η είναι αναποτελεσματική ( όταν έχουμε αλλαγή σκηνής ). Η πρόβλεψη για το εσωτερικό macroblock γίνεται βάσει των γειτονικών pixels του ίδιου πλαισίου, λόγω του ότι έιναι παρόμοια. Τα macroblocks μπορούν να κωδικοποιηθούν σαν ένα 16x16, τέσσερα 8x8, ή δεκαέξι 4x4 μπλοκ. Οι προβλέψεις για τα μπλοκ γίνονται υπολογίζοντας το ζυγισμένο βάρος των pixels που βρίσκονται αριστερά και πάνω από το συγκεκριμένο block. Στην εικόνα φαίνεται ποια γειτονικά πίξελ λαμβάνονται υπ'όψιν για την πρόβλεψη ενός 4x4 μπλοκ. Σχήμα 1.2.2: Δείγματα πρόβλεψης για ένα 4x4 μπλοκ 17

18 1.2.3 Interframe prediction Η μέθοδος αυτή προυπήρχε και στα προγενέστερα πρότυπα κωδικοποίησης, συμπεριλαμβανομένου και του MPEG-2. Στο πρότυπο Η.264 όμως, επεκτείνεται με διάφορους τρόπους: διάφορα μεγέθη μπλοκ για επανόρθωση κίνησης χρήση πολλών frames κατά την πρόβλεψη χρήση των Β- frames κατά την πρόβλεψη χρήση των Β- frames σαν αναφορά ζυγισμένη πρόβλεψη Αυτές οι επεκτάσεις βελτιώνουν την μέθοδο αυξάνοντας ωστόσο την πολυπλοκότητά της. Η μέθοδος της επανόρθωσης κίνησης των μακρομπλόκ στο Η.264 χρησιμοποιεί διαφορα μεγέθη μπλοκ καθώς και διανύσματα κίνησης με ανάλυση τεσσάρων pixels. Τα μακρομπλόκ μπορούν να κωδικοποιηθούν σαν ένα 16x16, δυο 16x8, δυο 8x16 ή τέσσερα 8x8 μπλοκ. Κάθε 8x8 μπλοκ μπορεί με τη σειρά του να κωδικοποιηθεί σαν ένα 8x8, δυο 4x8, δυο 8x4 ή τέσσερα 4x4 υπο-μπλοκ Transform coding Η κωδικοποίηση μεταμόρφωσης που χρησιμοποιείται είναι σχετικά απλή, περιλαμβάνει μόνο τις πράξεις της πρόσθεσης καθώς και κάποιες ολισθήσεις. Επίσης δεν παρατηρείται αναντιστοιχία μεταξύ της ευθείας και της αντίστροφης μετατροπής (κάτι που μειώνει την πολυπλοκότητα). Εφαρμόζεται στο υπόλοιπο πρόβλεψης (prediction residual) και χρησιμοποιεί έναν 4x4 ή έναν 8x8 ακέραιο πίνακα μετατροπής σε αντίθεση με τα προγενέστερα πρότυπα κωδικοποίησης που χρησιμοποιούσαν DCT (discrete cosine transform ) Deblocking filter Το φιλτρο βελτιώνει την αντιληπτική ικανότητα και την ικανότητα πρόβλεψης στα interframes. Το Η.264 εφαρμόζει το φίλτρο στις γωνίες των μπλοκ, εκτός από τις περιπτώσεις των ορίων της εικόνας ή του μπλοκ, στις οποίες το φίλτρο απενεργοποιείται. Το μέγεθος της μετατροπής (4x4 ή 8x8) καθορίζει το μέγεθος των μπλοκ που χρησιμοποιούνται στο φίλτρο. Εφαρμόζεται σε κάθε εικόνα στα μακρομπλοκ σε σειρά raster scan,με διεύθυνση από αριστερά προς τα δεξιά και από πάνω προς τα κάτω. Φιλτράρονται πρώτα οι οριζόντιες 18

19 άκρες και μετά οι κάθετες. Η διαδικασία του φιλτραρίσματος γίνεται αφού ανακατασκευαστούν όλα τα μακρομπλοκ Network-friendly features To πρότυπο Η.264 είναι σχεδιασμένο για να υποστηρίζει ένα μεγάλο εύρος εφαρμογών, συμπεριλαμβανομένων εφαρμογών διαδικτύου. Η κωδικοποίηση του βίντεο διαχωρίζεται από την παραλαβή των δεδομένων του διαδικτύου με την παροχή δυο διαφορετικών 'στρωματων' (layers), το στρώμα κωδικοποίησης βίντεο (video coding layer (VCL)) και το στρώμα αφαιρετικού δικτύου ( network abstraction layer (NAL)). Το VCL έχει σαν κύριο στόχο την ικανοποιητική συμπίεσηενώ το ΝΑL μορφοποιεί τα κωδικοποιημένα δεδομένα έτσι ώστε να μεταδοθούν μέσω διαφόρων δικτύων. Το NAL χρησιμοποιεί μια γενική δομή που ονομάζεται πακέτο NAL (NAL packet) του οποίου η σύνταξη του επιτρέπει να αναγνωρίζει τα, υψηλότερου επιπέδου συντυακτικά στοιχεία του VCL. Οι ειδικές εφαρμογές του δικτύου προσαρμόζουν και τροποποιούν κατάλληλα τα πακέτα NAL ώστε να μεταδοθούν σωστά σε κάθε δίκτυο μεταφοράς. Επίσης υποστηρίζεται και κάποια ελαστικότητα λαθών. 19

20 Κεφάλαιο 2 2. Αλγοριθμική περιγραφή του deblocking φίλτρου Το deblocking φίλτρο χρησιμοποιείται για να μειώσει την παραμόρφωση του κάθε 16 επί 16 μακρομπλόκ (blocking distortion) μετά την ανακατασκευή. Πιο αναλυτικά, μετα την διαδικασία αποκωδικοποίησης, το ανακατασκευασμένο μπλοκ διαφέρει από το αρχικό. Η διαφορά κυρίως εντοπίζεται στις άκρες του μπλοκ. Το φίλτρο εφαρμόζεται για να εξομαλύνει αυτές τις ασυνέχειες. Οι είσοδοι του φίλτρου είναι τα πίξελ, επίσης μια παράμετρος που ονομάζεται Boundary Strength, καθώς και κάποιες σταθερές κατωφλίου (threshold values). Τα πίξελ ενός μακρομπλόκ φιλτράρονται με συγκεκριμένη σειρά και κατά τη διάρκεια εφαρμογής του φίλτρου μπορεί να φιλτραριστούν αρκετές φορές. Αφου τελειώσει η διαδικασία για όλο το μακρομπλοκ, είναι έτοιμο για χρήση σαν μακρομπλόκ αναφοράς (τα επόμενα μακρομπλοκ δηλαδή, φιλτράρονται με βάση αυτό). 2.1 FILTER ORDER Το φίλτράρισμα γίνεται σε κλίμακα μακρομπλοκ. Για το Luma Filtering (φιλτράρισμα φωτεινότητας), το κάθε μακρομπλόκ μπορούμε να θεωρήσουμε ότι αποτελείται από 4x4 (σύνολο 16) υπο-μπλοκ (sub-blocks). Στο φιλτράρισμα τύπου chroma (φιλτράρισμα χρώματος), το μακρομπλοκ αποτελείται από 4 (2x2) υπο-μπλοκ. To πρότυπο Η.264/AVC καθορίζει την σειρά που πρέπει να έχει το φιλτράρισμα. Σύμφωνα με αυτήν, πρώτα φιλτράρονται οι οριζόντιες άκρες με φορά από τα αριστερά προς τα δεξιά και στη συνέχεια οι κάθετες με φορά απο πάνω προς τα κάτω. Για το φιλτράρισμα της φωτεινότητας (luma filtering), χρησιμοποιούνται 8 πίξελ, τα οποία συμβολίζονται p3, p2, p1, p0, q0, q1, q2, q3. Τα πίξελ του υπο-μπλοκ το οποίο υφίσταται το φιλτράρισμα ειναι τα q0-q3, όπου ο μικρότερος δείκτης συμβολίζει την μικρότερη απόσταση από την άκρη του υπο-μπλοκ (επομένως το q0 συνορεύει με το γειτονικό υπο-μπλοκ). Τα πίξελ p0-p3 είναι τα πίξελ του γειτονικού υπο-μπλοκ τα οποία χρησιμοποιούνται στο φιλτράρισμα (κι εδώ ισχύει ότι ο μικρότερος δείκτης συμβολίζει την μικρότερη απόσταση από την άκρη του υπο-μπλοκ). Λόγω του ότι κάποια από τα πίξελ επικαλύπτονται κατά το οριζόντιο και κάθετο φιλτράρισμα (ουσιαστικά αυτό συμβαίνει στα μισά από αυτά), τα πίξελ αυτά θα φιλτραριστούν δυο φορές. 20

21 Η διαδικασία για το φιλτράρισμα του chroma είναι παρόμοια μόνο που εδώ χρησιμοποιούνται μόνο 5 γειτονικά πίξελ (τα p1, p0, q0, q1, q2) με δυο πιθανές τροποποιήσεις ανά φιλτράρισμα. Αυτά φαίνονται σχηματικά στην εικόνα 2.1.1, όπου παρουσιάζονται και οι δυο περιπτώσεις, του luma filtering και του chroma filtering : Σχήμα 2.1.1: Οριζόντιο και κάθετο φιλτράρισμα σε ένα 16x16 μακρομπλοκ Αν και ο περιορισμός δεν μπορεί σε καμία περίπτωση να παραβιαστεί σε ότι αφορά το σύνολο του μήκους των ακρών, δεν ισχύει το ίδιο για τις υπο-γωνίες (sub-edges). Επομένως ο σχεδιαστής μπορεί να επιλέξει όποια σειρά θέλει για το φιλτράρισμα αρκεί πάντα να τηρείται ο συνολικός περιορισμός. Με άλλα λόγια μπορεί να επιλεγεί η οποιαδήποτε ακολουθία κατά τη διάρκεια του φιλτραρίσματος των γωνιών των υπο-μπλοκ αρκεί τελικά το συνολικό μήκως των άκρων να φιλτραριστεί με τη σειρά που ορίζεται από το πρότυπο, δηλαδή από αριστερά προς τα δεξιά αρχικά και στη συνέχεια από πάνω προς τα κάτω. Έχοντας σαν αναφορά την εικόνα 2.1.2, η σωστή σειρά είναι η εξής: Για το οριζόντιο φιλτράρισμα: Edge0 - Edge 1 - Edge2 - Edge3 (Luma Filtering) και Edge0 - Edge1 (Chroma Filtering). Στο κάθετο φιλτράρισμα: Edge0 - Edge 1 - Edge2 - Edge3 (Luma Filtering) και Edge0 - Edge1 (Chroma Filtering). 21

22 Σχήμα 2.1.2: Οριζόντιο και κάθετο φιλτράρισμα σε μακρομπλοκ φωτεινότητας και χρώματος Είναι γεγονός πως τα υπο-μπλοκ χρειάζεται να υποστούν τροποποίηση πολλές φορές κατά τη διάρκεια του φιλτραρίσματος. Έτσι, γίνεται προσπάθεια η πληροφορία που υπάρχει μετά το φιλτράρισμα μιας υπο-γωνίας να αξιοποιηθεί, αν αυτό είναι εφικτό, στο φιλτράρισμα της επόμενης. Φυσικά, κάτι τέτοιο δεν είναι δυνατό να γίνει για όλες τις υπογωνίες αλλά επιχειρήθηκε μια όσο το δυνατόν μεγαλύτερη εκμετάλλευση αυτού του φαινομένου. Λεπτομέρειες για τον τρόπο που επιτεύχθηκε αυτό βρίσκονται στο κεφάλαιο 4. 22

23 2.2 Boundary Strength (Bs) Η παράμετρος αυτή καθορίζεται από την πληροφορία του μακρομπλόκ. Δυο μακρομπλόκ που συνορεύουν καθορίζουν την τιμή της παραμέτρου Bs (η οποία ισχύει προφανώς μόνο για το συγκεκριμενο φιλτράρισμα, μετά πρέπει να επαναπροσδιοριστεί). Οι τιμές του Bs κυμαίνονται από 0 (όταν δεν απαιτείται καθόλου φιλτράρισμα) έως 4 (όπου πρέπει να εφαρμοστεί ισχυρό φιλτράρισμα). Στην εικόνα 2.2 φαίνεται πως υπολογίζεται η τιμή του Bs. 4 4 block boundary block p block q block p or q intra-coded? filtering p 3 p 2 p 1 p 0 q 0 q 1 q 2 q 3 P 3 P 2 P 1 P 0 Q 0 Q 1 Q 2 Q 3 original pixel filtered pixel Yes blockboundary is also macroblock boundary? No Yes coefficient coded in block p or q? Yes No ref(p)!=ref(q) or V(p,x)-V(q,x) ³1pel or V(p,y)-V(q,y) ³1pel? No B s =4 B s =3 B s =2 B s =1 B s =0 Strong Mode Standard Mode No Filtering Mode Σχήμα 2.2: Διάγραμμα ροής για τον καθορισμό της παραμέτρου Bs Οι τιμές του Bs για το chroma filtering δεν υπολογίζονται ανεξάρτητα αλλά είναι οι ίδιες με τις αντίστοιχες του chroma filtering για τις αντίστοιχες γωνίες. 2.3 Threshold Υπάρχουν τρεις μεταβλητές: α, β και indexa, οι οποίες χρησιμοποιούνται έτσι ώστε να ξεχωρίσουν οι πραγματικές άκρες από αυτές που δημιουργούνται από τον κβαντισμό των DCT συντελεστών. Οι τεχνητές γωνίες που δημιουργούνται λόγω του κβαντισμού θέλουμε να φιλτραριστούν ώστε να είναι όσο το δυνατόν περισσότερο μη ορατές. Αντίθετα, δεν πρέπει να εφαρμοστεί φιλτράρισμα στις πραγματικές γωνίες. Για τον υπολογισμό των indexa, indexb έχουμε ότι: 23

24 (2.3.1) (2.3.2) Tα FilterOffsetA, FilterOffsetB, χρησιμοποιούνται για να προσαρμόσουν τις τιμές των α, β και πιο συγκεκριμένα να αυξήσουν ή να μειώσουν το φιλτράρισμα που θα συμβεί σε σχέση με το φιλτράρισμα με μηδενικές αυτές τις παραμέτρους. Η μεταβλητή και υπολογίζεται ως εξής: είναι μια παράμετρος που καθορίζει την μέση τιμή κβαντισμού (2.3.3) Τα, καθορίζονται από τη θέση του macroblock στην εικόνα αλλά και απο αν γίνεται luma ή chroma filtering. Τα α, β δίνονται από τον πίνακα 1: Πίνακας 1: Πίνακας καθορισμού των παραμέτρων α, β Από τον πίνακα 1 προκύπτει ότι γενικά η τιμή του β είναι μικρότερη από αυτή του α. Η δημιουργία αυτών των πινάκων είναι βασισμένη κυρίως σε εμπειρικά τεστ στα οποία δοκιμάζεται για ποιες τιμές το αποτέλεσμα που προκύπτει είναι καλύτερο οπτικά. Παρατηρούμε ότι για μικρές τιμές του QP τα α, β έχουν μηδενικές τιμές και πρακτικά απενεργοποιούν το φιλτράρισμα. 24

25 Η εξάρτηση των τιμών α, β με το QP συνδέει την ισχύ του φιλτραρίσματος με την γενικότερη ποιότητα της ανακατασκευασμένης εικόνας πριν το φιλτράρισμα. Έτσι, για παράδειγμα, στα όρια μιας εικόνας που υπάρχει μεγαλύτερη "δραστηριότητα" (θα μπορούσαμε να το θέσουμε σαν εντονότερη εναλλαγή), η τιμή του QP θα είναι μεγαλύτερη, επιτρέποντας έτσι το φιλτράρισμα. 2.4 Διαδικασία φιλτραρίσματος Όπως έχει αναφερθεί και νωρίτερα, δεν γίνεται φιλτράρισμα σε γωνίες στις οποίες το Bs έχει μηδενική τιμή. Για τις γωνίες με μη μηδενική τιμή Bs, υπάρχουν τρεις συνθήκες οι οποίες καθορίζουν το αν θα γίνει φιλτράρισμα. Για να ξεκινήσει η διαδικασία φιλτραρίσματος πρέπει και οι τρεις να είναι αληθείς. Οι συνθήκες αυτές είναι οι εξής: (2.3.4) β (2.3.5) β (2.3.6) Η διαδικασία φιλτραρίσματος για Bs μικρότερο από 4 Διακρίνουμε δυο κατηγορίες, ανάλογα με το είδος φιλτραρίσματος που γίνεται (αν είναι luma ή chroma). 1. Στην περίπτωση που έχω Luma Filtering: Εδώ τα πίξελ που συμμετέχουν στην διαδικασία είναι έξι, τα p2, p1, p0, q0, q1, q2. Αυτά που μεταβάλλονται είναι τα p1, p0, q0, q1 τα οποία για να τα ξεχωρίζουμε από την προηγούμενη (αφιλτράριστη) κατάσταση θα τα συμβολίζουμε στο εξής :,,, και. Έχουμε λοιπόν ότι για τις καινούριες τιμές θα ισχύει: Δ Δ 25

26 Δ Δ όπου το Δ υπολογίζεται σε δυο βήματα. Αρχικά υπολογίζεται μια ποσότητα Δ στα πίξελ που δεχόμαστε σαν είσοδο. βασισμένη Δ ( ) Στη συνέχεια αυτή η ποσότητα κλιπάρεται με όριο την μεταβλητή : Δ Δ ( ) Ομοίως για τα Δ, Δ υπολογίζουμε αρχικά Δ, Δ : Δ ( ) Δ ( ) Kαι στη συνέχεια εφαρμόζουμε clipping : Δ Δ ( ) Δ Δ ( ) Ο υπολογισμός των, γίνεται ως εξής: H τιμή δίνεται σαν είσοδος του φίλτρου οπότε δεν χρειάζεται να υπολογιστεί. Για τον υπολογισμό της τιμής της, χρειάζεται η γνώση των μεταβλητών QP καθώς και του Bs. Οι μεταβλητές αυτές συνδέονται με το βάσει του πίνακα 2: 26

27 Πίνακας 2: Πίνακας καθορισμού της παραμέτρου tc0 Για να υπολογίσουμε την τιμή του ακολουθούμε την εξής διαδικασία: Βρίσκουμε αν αληθεύουν οι εξής δυο συνθήκες: β ( ) β ( ) Aν αληθεύουν και οι δυο τότε: Αν αληθεύει μία από τις δυο: Αν δεν αληθεύει καμία από τις δυο: 2. Στην περίπτωση που έχω Chroma Filtering: Eδώ τα πίξελ που συμμετέχουν στην διαδικασία είναι μόνο τα p1, p0, q0, q1 ενώ τα μόνα που μεταβάλλονται στο τέλος είναι τα p0, q0. Η διαδικασία είναι παρόμοια με αυτήν του luma filtering με την διαφορά ότι τώρα η τιμή κλιπαρίσματος είναι πάντα ίση με : Δεν χρειάζεται λοιπόν σ' αυτήν την περίπτωση να ελέγξουμε τις συνθήκες και , και επομένως δεν υπάρχει ανάγκη να έχουμε πρόσβαση στις τιμές p2 και q2. 27

28 2.4.2 Η διαδικασία φιλτραρίσματος για Bs ίσο με 4 Όταν το Bs ισούται με 4, το φιλτράρισμα που εφαρμόζεται είναι ισχυρότερο, κι εδώ όμως υπάρχουν δυο διαβαθμίσεις, ένα ισχυρό και ένα λιγότερο ισχυρό φίλτρο (strong and weak filtering). Η επιλογή της ισχύος του φιλτραρίσματος που θα επιλεχθεί εξηγείται παρκάτω. Συμμετέχουν και τα οκτώ πίξελ (p3, p2, p1, p0, q0, q1, q2, q3) ενώ απαραίτητη για τη διαδικασία είναι η γνώση της αλήθειας ή μη των συνθηκών και Καθοριστικό ρόλο παίζει επίσης η συνθήκη: ( ) Yπάρχουν 2 περιπτώσεις: Για τα πιξελ,, : Αν έχουμε luma filtering και οι συνθήκες ( ) και ( ) ισχύουν τότε: Σε οποιαδήποτε άλλη περίπτωση, δηλαδή αν έχω chroma filtering ή αν δεν ισχύει μία από τις συνθήκες τότε: Σε αυτήν την περίπτωση δηλαδή μεταβάλλεται μόνο το p0 (ασθενές φιλτράρισμα) αντίθετα με την πρώτη περίπτωση όπου εφαρμόζεται ισχυρότερο φιλτράρισμα και τροποποιούνται τα p2, p1, p0. 28

29 Με ακριβώς τον ίδιο τρόπο υπολογίζονται τα,, μόνο που τώρα τη θέση της συνθήκης ( ) παίρνει η συνθήκη ( ). Αν έχουμε luma filtering και οι συνθήκες ( ) και ( ) ισχύουν τότε: Σε οποιαδήποτε άλλη περίπτωση, δηλαδή αν έχω chroma filtering ή αν δεν ισχύει μία από τις συνθήκες τότε: Ομοίως κι εδώ μεταβάλλεται μόνο το q0 (ασθενές φιλτράρισμα) αντίθετα με την πρώτη περίπτωση όπου εφαρμόζεται ισχυρότερο φιλτράρισμα και τροποποιούνται τα q2, q1, q0. 29

30 Κεφάλαιο 3 3. Αρχιτεκτονική του διπλού φίλτρου 3.1 Γενική περιγραφή της αρχιτεκτονικής Για την υλοποίηση του deblocking φίλτρου, στην παρούσα σχεδίαση χρησιμοποιήθηκαν, εκτός από τα δυο φίλτρα, και κάποιες άλλες μονάδες. Οι μονάδες αυτές περιγράφονται συνοπτικά παρακάτω ενώ σε παρακάτω υποκεφάλαιο γίνεται μια πιο διεξοδική περιγραφή της καθεμίας. Left Memory: Είναι η μνήμη στην οποία είναι αποθηκευμένα τα πίξελ του μακρομπλοκ που βρίσκεται αριστερά από το μακρομπλοκ στο οποίο γίνεται το φιλτράρισμα. Upper Memory: Είναι η μνήμη στην οποία είναι αποθηκευμένα τα πίξελ του μακρομπλοκ που βρίσκεται πάνω από το μακρομπλοκ στο οποίο γίνεται το φιλτράρισμα. TRV-P, TRV-Q, TRH-P, TRH-Q: Τέσσερις transpose buffers οι οποίοι μετασχηματίζουν τον τρόπο αποθήκευσης των πίξελ μετά το φιλτράρισμα. Η αποδοτική οργάνωση της μνήμης χρειάζεται να γίνεται κάθε φορά που το φιλτράρισμα γίνεται από οριζόντιο κάθετο και αντίστροφα. Bs Unit: Λαμβάνοντας υπ'όψιν κάποιες παραμέτρους, η μονάδα αυτή υπολογίζει την παράμετρο Bs η οποία θα χρησιμοποιηθεί από τα δυο φίλτρα. ΒUF-Q: Buffer στον οποίο αποθηκεύονται προσωρινά τα transposed q-pixels μετά το οριζόντιο φιλτράρισμα προκειμένου να μην χρησιμοποιηθεί επιπλέον μνήμη. 4-Stage-Filter: Η μονάδα που επιτελεί την διαδικασία φιλτραρίσματος. Το διάγραμμα στο οποίο παρουσιάζεται σχηματικά η αρχιτεκτονική του φίλτρου (εικόνα 3.1): 30

31 Σχήμα 3.1: Δομικό διάγραμμα της αρχιτεκτονικής Η λειτουργία της παραπάνω αρχιτεκτονικής για την υλοποίηση του deblocking φίλτρου έχει ως εξής: Τα ανακατασκευασμένα πίξελ του προηγούμενου σταδίου μπαίνουν σαν είσοδοι στην μονάδα φιλτραρίσματος μαζί με πίξελ από την Left Memory (τα οποία είναι τα πίξελ του μακρομπλόκ που βρίσκεται στα αριστερά του παρόντος). Η μονάδα φιλτραρίσματος δέχεται επίσης σαν είσοδο την παράμετρο Bs η οποία προκύπτει από την μονάδα Bs Unit. Μετά το (οριζόντιο) φιλτράρισμα το οποίο υφίστανται, το σύνολο των φιλτραρισμένων πίξελ οδηγείται στους transpose buffers έτσι ώστε να είναι κατάλληλα οργανωμένα και με την έλευση ενός μόνο ρολογιού να είναι διαθέσιμα στη συνέχεια. Τα q- pixels γράφονται επίσης στην Left Memory έτσι ώστε να είναι έτοιμα προς χρήση στο φιλτράρισμα του προς τα δεξιά sub-block. Στην πλειοψηφία των περιπτώσεων τα πίξελ αυτά θα χρησιμοποιηθούν στο αμέσως επόμενο φιλτράρισμα (αφού αυτό θα αφορά το γειτονικό ως προς τα δεξιά sub-block). Υπάρχουν όμως περιπτώσεις όπου θα πρέπει να κρατηθούν στη μνήμη γιατί δεν θα χρησιμοποιηθούν στο αμέσως επόμενο φιλτράρισμα. Τέτοιες περιπτώσεις είναι όταν η υπο φιλτράρισμα γωνία βρίσκεται στα δεξιά του μακρομπλόκ. Σ' αυτήν τη περίπτωση, τα q- pixels θα πρέπει να φυλαχθούν έτσι ώστε να χρησιμοποιηθούν στο φιλτράρισμα των αριστερών sub-blocks του γειτονικού μακρομπλόκ. Η επιλογή του αν θα χρησιμοποιηθούν απευθείας τα q-pixels ή αν θα χρησιμοποιηθούν αυτά που βρίσκονται στην Left Memory γίνεται με τη χρήση ενός πολυπλέκτη. Στη συνέχεια, ακολουθεί το κάθετο φιλτράρισμα. Το δεύτερο φίλτρο, που είναι υπεύθυνο γι' αυτό, δέχεται σαν p-pixels τα πίξελ του sub-block που βρίσκεται πάνω από την υπογωνία που πρόκειται να φιλτραριστεί. Τα πίξελ αυτά επιλέγονται με χρήση πολυπλέκτη είτε από αυτά έχουν προκύψει από transpose των q-pixels κατά το οριζόντιο φιλτράρισμα και στη συνέχεια αποθηκεύονται σε έναν buffer, είτε από pixels της Τop Memory. Η επιλογή γίνεται με βάση τη θέση της υπο-γωνίας που φιλτράρεται. Αν δηλαδή η υπο-γωνία που 31

32 φιλτράρεται βρίσκεται στο πάνω μέρος του μακρομπλοκ τότε τα p-pixels έρχονται από την Top Memory, σε άλλη περίπτωση λαμβάνονται τα q-pixels που προέκυψαν από το οριζόντιο φιλτράρισμα. Σαν q-pixels το φίλτρο δέχεται τα αντίστοιχα p-pixels που επίσης έχουν υποστεί transpose κατά το οριζόντιο φιλτράρισμα, ενώ είσοδος είναι και η ίδια παράμετρος Bs που προκύπτει από την Bs Unit. Ομοίως κι εδώ, ακολουθεί η δράση των transpose buffers στα φιλτραρισμένα πίξελ και η έξοδος από αυτά είναι τα τελικά διαμορφωμένα πίξελ. Ειδικές περιπτώσεις είναι τα πίξελ των sub-block που βρίσκονται σε "ειδικές" θέσεις. Τέτοιες περιπτώσεις περιγράφονται στη συνέχεια. Tα sub-block που βρίσκονται στην κάτω πλευρά του μακρομπλοκ θα χρησιμοποιηθούν για το φιλτράρισμα των πάνω sub-blocks του κάτω-γειτονικού μακρομπλοκ. Για το λόγο αυτό, μετά το οριζόντιο φιλτράρισμα και το transpose που ακολουθεί, είναι στην μορφή που χρειάζεται και έτοιμα προς χρήση και έτσι βγαίνουν στην έξοδο χωρίς να μεσολαβήσει το επόμενο φίλτρο. 3.2 Χρονοδρομολόγηση φιλτραρίσματος ακμών Όπως έχει ήδη αναφερθεί κατά το φιλτράρισμα, το κάθε μακρομπλοκ τύπου luma χωρίζεται σε 16 (4x4) μικρότερα blocks, τα οποία θα αναφέρονται σαν sub-blocks. To chroma macroblock χωρίζεται σε 4 (2x2) sub-blocks. Εφαρμόζεται οριζόντιο φιλτράρισμα αρχικά στη πάνω αριστερή γωνία του macroblock (στο σχήμα συμβολίζεται με το σύμβολο Β0). Η σειρά που ακολουθείται στο φιλτράρισμα δηλώνεται από το νούμερο που βρίσκεται σε κάθε γωνία. Η κύρια διαφορά στην συγκεκριμένη αρχιτεκτονική είναι η παράλληλη χρήση δυο φίλτρων. Καθώς λοιπόν έχει ξεκινήσει να φιλτράρει τις κάθετες γωνίες το ένα φίλτρο (οριζόντιο φιλτράρισμα) εισέρχεται στην διαδικασία το δεύτερο το οποίο φιλτράρει τις οριζόντιες, εφαρμόζοντας έτσι κάθετο φιλτράρισμα και επιταχύνοντας σημαντικά τον χρόνο ολοκλήρωσης της διαδικασίας. Εδώ πρέπει να δοθεί ιδιαίτερη προσοχή επειδή υπάρχει ένας σημαντικός περιορισμός του προτύπου ο οποίος απαγορεύει το κάθετο φιλτράρισμα μιας sub-edge εάν δεν έχει ολοκληρωθεί το οριζόντιο φιλτράρισμα των πίξελ που ανήκουν σε αυτήν. Με άλλα λόγια πρέπει να έχει τελειώσει η δράση του πρώτου φίλτρου σε κάποιο sub-block ώστε να δράσει το δεύτερο. Και φυσικά, όλα τα sub-blocks πρέπει να φιλτράρονται διαδοχικά με σειρά raster scan. Έτσι, στην αρχή του φιλτραρίσματος, ξεκινά η δράση του πρώτου φίλτρου (εκτελεί το οριζόντιο φιλτράρισμα) το οποίο διαδοχικά φιλτράρει τις sub-edges 0, 1, 2, Όταν έχει ολοκληρώσει τις κάθετες sub-edges του πρώτου sub-block B0 (δηλαδή αυτές που στο 32

33 σχήμα συμβολίζονται με 0 και 1), ξεκινά η δράση του δεύτερου φίλτρου, που είναι υπεύθυνο για το κάθετο φιλτράρισμα. Η πρώτη sub-edge την οποία θα φιλτράρει θα είναι η 24 και θα ακολουθήσουν οι 25, 26,..., 47. Εδώ πρέπει να υπενθυμιστεί πως η διαδικασία του φιλτραρίσματος περιλαμβάνει το μαρκομπλοκ Luma αλλά και τα δυο Chroma μακρομπλοκ (ένα πλήρες φιλτράρισμα δηλαδή). Με αυτόν τον τρόπο, τα δυο φίλτρα λειτουργούν παράλληλα χωρίς να παραβιάζονται οι περιορισμοί που έχουν επιβληθεί. Φυσικά, το αποτέλεσμα είναι η σημαντική βελτίωση στην απόδοση του φίλτρου καθώς μειώνονται οι κύκλοι ρολογιού ύστερα από τους οποίους τα πίξελ του μακρομπλοκ θα είναι πλήρως φιλτραρισμένα. Σχήμα 3.2.1: Ανάλυση των ακμών του μακρομπλοκ Luma(Y) και των Chroma (Cb και Cr) Στο κείμενο που θα ακολουθήσει εξηγείται αναλυτικά η διαδικασία φιλτραρίσματος με χρήση διπλού φίλτρου και παρατίθενται οι χρονισμοί ώστε να γίνει απόλυτα κατανοητός ο τρόπος που δουλεύει η συγκεκριμένη σχεδίαση. Στην εικόνα που ακολουθεί παρακάτω επεξηγούνται πλήρως οι χρονισμοί. Εμφανίζονται στην αριστερή στήλη κάποιοι συμβολισμοί οι οποίοι θα διευκρινιστούν στη συνέχεια. Το νούμερο που υπάρχει σε κάποια από τα κελιά δείχνει σε ποια sub-edge αναφερόμαστε : 33

34 Βl_Cycle: Είναι ο χρόνος που απαιτείται για να γίνει φιλτράρισμα μιας sub-edge. Ισούται με 4 κύκλους ρολογιού. Sub-edge: Δείχνει σε ποια sub-edge γίνεται το φιλτράρισμα κάθε στιγμη. Στην πρώτη που αναφέρεται εφαρμόζεται το πρώτο φίλτρο (οριζόντιο φιλτράρισμα) ενώ στην επόμενη το δεύτερο (κάθετο φιλτράρισμα) ο φίλτρο V_PIN: Διευκρινίζει ποιο sub-edge συμμετέχει στο φιλτράρισμα που εφαρμόζει το πρώτο φίλτρο παρέχοντας τα p-pixels. V_QIN: Διευκρινίζει ποιο sub-edge συμμετέχει στο φιλτράρισμα που εφαρμόζει το πρώτο φίλτρο παρέχοντας τα q-pixels. ΤVP_W: Ο πρώτος από τους δυο transpose buffers του φίλτρου ο οποίος γράφει την transposed sub-edge. ΤVP_R: Ο πρώτος από τους δυο transpose buffers ο οποίος διαβάζει την transposed sub-edge για να χρησιμοποιηθεί από το φίλτρο. ΤVQ_W: Ο δεύτερος από τους transpose buffers ο οποίος γράφει την transposed sub-edge. ΤVQ_R: Ο δεύτερος από τους transpose buffers ο οποίος διαβάζει την transposed sub-edge για να χρησιμοποιηθεί από το φίλτρο ο φίλτρο Η_PIN: Διευκρινίζει ποιο sub-edge συμμετέχει στο φιλτράρισμα που εφαρμόζει το δεύτερο παρέχοντας τα p-pixels. Η_QIN: Διευκρινίζει ποιο sub-edge συμμετέχει στο φιλτράρισμα που εφαρμόζει το δεύτερο παρέχοντας τα q-pixels. ΤΗP_W: Ο πρώτος από τους δυο transpose buffers του φίλτρου ο οποίος γράφει την transposed sub-edge. ΤΗP_R: Ο πρώτος από τους δυο transpose buffers ο οποίος διαβάζει την transposed sub-edge για να χρησιμοποιηθεί από το φίλτρο. ΤΗQ_W: Ο δεύτερος από τους transpose buffers ο οποίος γράφει την transposed sub-edge. ΤΗQ_R: Ο δεύτερος από τους transpose buffers ο οποίος διαβάζει την transposed sub-edge για να χρησιμοποιηθεί από το φίλτρο Μνήμες ΤOPM_R: Μνήμη από την οποία διαβάζονται τα πάνω γειτονικά sub-blocks του subblock που φιλτράρεται (οι άνω "γείτονες" του). Απαιτείται κατά το κάθετο φιλτράρισμα. ΤOPM_W: Mνήμη στην οποία γράφονται τα ήδη φιλτραρισμένα sub-blocks ώστε να χρησιμοποιηθούν κατά το μελλοντικό φιλτράρισμα του από κάτω sub-block(ή του από κάτω macroblock αν βρισκόμαστε στο κάτω μέρος του macroblock). VM_R: Aπό εδώ διαβάζεται το αριστερό γειτονικό sub-block που απαιτείται συγκεκριμένες φορές κατά το οριζόντιο φιλτράρισμα. VM_W: Εδώ γράφεται το sub-block το οποίο θα είναι αριστερός γείτονας σε μελλοντικό φιλτράρισμα. Ext_R: Απο εδώ διαβάζονται τα sub-edges προκειμένου να χρησιμοποιηθούν στο φίλτρο. 34

35 Ext_W: Κάθε φιλτραρισμένο sub-block γράφεται σε αυτήν τη μνήμη όταν δεν πρόκειται να ξαναχρησιμοποιηθεί. Ακολουθεί η εικόνα στην οποία φαίνονται οι χρονισμοί: Σχήμα 3.2.2: Ανάλυση χρονισμών του φίλτρου Ξεκινώντας από το πάνω μέρος του πίνακα, παρατηρείται ότι το 2ο φίλτρο εφαρμόζεται από τη στιγμή που έχει ολοκληρωθεί το οριζόντιο φιλτράρισμα στο πρώτο sub-block. Αυτό συμβαίνει στον 3ο κύκλο χρονισμού. Η διαδικασία ακολουθεί αυτήν την μορφή μέχρι το τέλος, πρώτα δηλαδή ολοκληρώνεται το οριζόντιο φιλτράρισμα κάθε subblock (ορίζεται απο τα V_PIN, V_QIN) και μετά ακολουθεί το κάθετο (H_PIN, H_QIN). Κάθε φορά που τελειώνει το οριζόντιο φιλτράρισμα κάποιου sub-block οι sub-edges που συμμετείχαν και δεν θα χρησιμοποιηθούν στο αμέσως επόμενο φιλτράρισμα στέλνονται στους transpose buffers όπου γίνεται αντιμετάθεση των πίξελ έτσι ώστε να είναι κατάλληλα τοποθετημένα για το κάθετο φιλτράρισμα. Με το που γίνει αυτή η αντιμετάθεση, είναι έτοιμα για να χρησιμοποιηθούν από το 2ο φίλτρο. Σε κάποια σημεία, 35

36 πρακτικά στην δεξιά άκρη κάθε μακρομπλόκ, πρέπει να σταλούν ταυτόχρονα και οι δυο sub-edges που συμμετείχαν στο φιλτράρισμα σε transpose buffer. Γι' αυτόν το λόγο χρησιμοποιούνται 2 transpose buffers στο οριζόντιο φιλτράρισμα. Σε αντίθετη περίπτωση θα υπήρχε αναμονή μέχρι να "αδειάσει" κάποια θέση του μοναδικού transpose buffer κάτι που θα καθυστερούσε την διαδικασία. Ακριβώς την ίδια περίπτωση έχουμε και στο κάθετο φιλτράρισμα, έτσι χρησιμοποιούνται και σε αυτήν την περίπτωση δυο transpose buffers. Από την ΤΟPM_P διαβάζονται όπως προειπώθηκε τα sub-blocks τα οποία θα χρησιμοποιηθούν για το κάθετο φιλτράρισμα, αντίστοιχα από την VM_P αυτά για το οριζόντιο. Στην VM_W γράφονται τα sub-blocks τα οποία δεν θα χρησιμοποιηθούν στον αμέσως επόμενο κύκλο αλλά κάπoια στιγμή αργότερα θα χρησιμοποιηθούν σε οριζόντιο φιλτράρισμα. Αυτά τα sub-blocks βρίσκονται στην δεξιά πλευρά του μακρομπλόκ και αποθηκεύονται σε αυτήν τη μνήμη έτσι ώστε να χρησιμεύσουν σαν αριστερό όριο στο φιλτράρισμα του γειτονικού (δεξιού) μακρομπλοκ. Στην TOPM_W γράφονται τα sub-blocks τα οποία κάποια στιγμή πιο μετά θα χρησιμοποιηθούν σε κάθετο φιλτράρισμα. Σε αντιστοιχία με αυτό που ισχύει για την VM_W, τα sub-blocks αυτά βρίσκονται στο κάτω μέρος των μακρομπλοκ και αποθηκεύονται στη συγκεκριμένη μνήμη έτσι ώστε να είναι το άνω sub-block στο φιλτράρισμα του γειτονικού (κάτω) μπλοκ. Aπό την Ext_R διαβάζονται τα sub-blocks για κάθε φιλτράρισμα το οποίο συμβαίνει. Στην Ext_W γράφονται τα sub-blocks τα οποία δεν θα ξαναχρησιμοποιηθούν. Πρέπει να δοθεί ιδιαίτερη προσοχή σε αυτό το σημείο, τα sub-blocks που γράφονται στην εξωτερική μνήμη πρέπει να είναι στην μορφή που ήταν αρχικά, αν δηλαδή οποιαδήποτε στιγμή κατά τη διάρκεια της διαδικασίας υπέστησαν transpose, πρέπει να επανέλθουν πάλι στην αρχική τους κατάσταση. Λόγω του ότι σε κάποια σημεία παρουσιάζεται η ανάγκη να γραφούν δυο sub-blocks την ίδια χρονική στιγμή, υπάρχουν δυο τέτοιες μνήμες, έτσι κερδίζουμε σε απόδοση με μικρή επιβάρυνση σε υλικό. Τέλος, να επισημανθεί ότι σε κάποια sub-blocks υπάρχει η ανάγκη να γραφτούν στην TOPM_W καθώς θα συμμετάσχουν στο φιλτράρισμα του από κάτω μακρομπλοκ (σαν άνω γείτονες) αλλά ταυτόχρονα πρέπει να γραφτούν και στην VM_W καθώς θα συμμετάσχουν και στο φιλτράρισμα του δεξιά μακρομπλοκ (σαν αριστεροί γείτονες). Πιο συγκεκριμένα, αυτά τα sub-block θα είναι τα κάτω δεξιά όπως κοιτάμε το παρόν μακρομπλοκ Luma και τα δυο μακρομπλοκ Chroma, δηλαδή τα L15, L19 και L23. Τα 3 αυτά sub-blocks θα γραφτούν στην TOPM_W και στη συνέχεια θα περάσουν από τα transpose buffer και θα γραφτούν και στην μνήμη VM_W. Για να γίνει ξεκάθαρη η όλη διαδικασία, επιλέχθηκαν τρία χαρακτηριστικά στιγμιότυπα (τρεις χρονικές στιγμές) για τις οποίες θα γίνει μια αναλυτικότερη περιγραφή έτσι ώστε ο αναγνώστης να αποσαφηνίσει πλήρως την λειτουργία του φίλτρου μέσω του συμβολισμού που επιλέχθηκε. 36

37 Bl_Cycle = 3: Σ' αυτήν τη χρονική στιγμή ξεκινάει η δράση του κάθετου φιλτραρίσματος, το οποίο θα εφαρμόζεται παράλληλα με το οριζόντιο. Οι γραμμές των Sub_edge μας υποδηλώνουν σε ποιες υπο-γωνίες εφαρμόζεται το φιλτράρισμα, δηλαδή στην συγκεκριμένη περίπτωση το πρώτο φίλτρο (υπεύθυνο για το οριζόντιο φιλτράρισμα), εφαρμόζεται στην υπο-γωνία 3 ενώ το δεύτερο (υπεύθυνο για το κάθετο φιλτράρισμα) εφαρμόζεται στην 24 (βλέπε σχήμα). Τα sub-blocks που συμμετέχουν στο οριζόντιο φιλτράρισμα είναι τα 2, 3 (φαίνεται από τις γραμμές V_PIN, V_QIN. Ταυτόχρονα, τα πίξελ του sub-block 1, τα οποία έχουν φιλτραριστεί από το οριζόντιο φίλτρο στον προηγούμενο κύκλο γράφονται στον transpose buffer προκειμένου να είναι έτοιμα για το κάθετο φιλτράρισμα (φαίνεται στην γραμμή TVP_W). Αυτό έχει ήδη γίνει για τα πίξελ του sub-block 0, και γι αυτό διαβάζεται από τον transpose buffer καθώς θα χρησιμοποιηθούν στον ίδιο κύκλο όπως θα φανε στη συνέχεια (TVP_R). Aπό τις γραμμές H_PIN, H_QIN φαίνεται ποια sub-blocks αφορά το κάθετο φιλτράρισμα (τα sub-blocks T0 και 0). Συνεχίζοντας στις γραμμές που αφορούν τις μνήμες, παρατηρείται ότι τα πίξελ του sub-block Τ0 διαβάζονται από την ΤΟP Memory ( γραμμή TOPM_R) ενώ αυτά του sub-block 3 (που χρειάζονται για το οριζόντιο φιλτράρισμα) από την εξωτερική μνήμη (Ext_R). Bl_Cycle = 16: Το οριζόντιο φιλτράρισμα γίνεται στην sub-edge 16 (βρίσκεται μεταξύ των subblocks L4 και 16). Τα πίξελ των sub-block που συμμετέχουν στο φιλτράρισμα διαβάζονται από τις αντίστοιχες μνήμες (του L4 από την VM_R αφού είναι sub-block της Left Memory και του 16 από την εξωτερική μνήμη που συμβολίζεται ως Ext_R). Τα πίξελ του sub-block 14, το οριζόντιο φιλτράρισμα των οποίων ολοκληρώθηκε στον προηγούμενο κύκλο, γράφονται στον transpose buffer (ΤVP_W). Από τον ίδιο tranpose buffer διαβάζονται τα πίξελ του sub-block 13 τα οποία θα χρησιμοποιηθούν στο κάθετο φιλτράρισμα (ΤVP_R). Σε αυτόν τον κύκλο χρησιμοποιείται και ο δεύτερος Transpose Buffer για να γραφτούν εκεί τα πίξελ του sub-block 15 το οριζόντιο φιλτράρισμα των οποίων επίσης ολοκληρώθηκε στον προηγούμενο κύκλο. Με τη χρήση λοιπόν δεύτερου buffer αποφεύγεται η καθυστέρηση. Το κάθετο φιλτράρισμα γίνεται στην sub-edge 37 (βρίσκεται μεταξύ των sub-blocks 9 και 13). Τα πίξελ του sub-block 9 διαβάζονται από την Top Memory στην οποία είχαν αποθηκευτεί κατά τον προηγούμενο κύκλο (TOPM_R) ενώ του 13, όπως αναφέρθηκε και πριν, από τον transpose buffer που δρα μετά το οριζόντιο φιλτράρισμα. Ομοίως κι εδώ όπως και κατά το οριζόντιο φιλτράρισμα, το φιλτράρισμα των πίξελ του sub-block 8 έχει ολοκληρωθεί γι' αυτο γράφονται στον transpose buffer (THP_W). Τα πίξελ του sub-block 7, 37

38 στα οποία έχει εφαρμοστεί το transpose είναι έτοιμα για εγγραφή στην Left Memory (VM_W) καθώς το sub-block αυτό θα είναι αριστερός γείτονας στο γειτονικό μακρομπλοκ. Σε αυτόν τον κύκλο επίσης, τα πίξελ του sub-block 12 γράφονται στην Top Memory (TOPM_W) ενώ αυτά του sub-block 7 στην εξωτερική μνήμη (Εxt_W). Bl_Cycle = 24: Το οριζόντιο φιλτράρισμα έχει ολοκληρωθεί στον ακριβώς προηγούμενο κύκλο. Για το λόγο αυτό, τα πίξελ των sub-blocks 22 και 23 εισάγονται στους 2 transpose buffers (TVP_W και TVQ_W) έτσι ώστε να χρησιμοποιηθούν μετά για το κάθετο φιλτράρισμα. Tαυτόχρονα, τα πίξελ του sub-block L7 τα οποία έγιναν στον προηγούμενο κύκλο transpose θα διαβαστούν από την εξωτερική μνήμη καθώς δεν θα χρησιμοποιηθούν ξανά (διαβάζονται από το TVP_R και γράφονται στο Ext_W). Το κάθετο φιλτράρισμα εντωμεταξύ γίνεται στην sub-edge 45 (μεταξύ των subblocks T7 και 21). Τα πίξελ του sub-block T7 διαβάζονται από την Top Memory (TOPM_R) ενώ του sub-block 21 από τον transpose buffer του πρώτου (οριζόντιου ) φίλτρου (TVQ_R). Στον transpose buffer του δεύτερου φίλτρου (ΤΗΡ_W) γράφονται τα πίξελ του sub-block T6, το κάθετο φιλτράρισμα των οποίων ολοκληρώθηκε στον προηγούμενο κύκλο. Από τον ίδιο Transpose Buffer διαβάζονται τα πίξελ του sub-block 17 τα οποία θα γραφτούν και στην εξωτερική μνήμη (Ext_W) αλλά και στην Left Memory (VM_W) καθώς το sub-block θα είναι αριστερός γείτονας στο φιλτράρισμα του γειτονικού (προς τα δεξιά) μακρομπλόκ. Παρατηρούμε πως σε αυτόν τον κύκλο στην εξωτερική μνήμη υπάρχει η ανάγκη να γραφτούν τα πίξελ δυο sub-blocks. Αυτό απαιτεί την παρουσία δυο μνημών κάτι που αυξάνει το υλικό που χρησιμοποιείται. Μια σχεδίαση πιο οικονομική θα έπρεπε να περιμένει μέχρι να αδειάσει η θέση της μνήμης (Ext_W) ώστε να γραφτεί σε αυτήν το δεδομένο που περισσεύει σε αυτόν τον κύκλο. Κάτι τέτοιο όμως καθυστερεί αρκετά την διαδικασία. Προτιμήθηκε λοιπόν η χρήση δυο μνημών (που έχει σχεδόν αμελητέα επίδραση στην συνολική επιφάνεια) προς όφελος της απόδοσης. 3.3 Ανάλυση θέσης του Macroblock στο frame Με χρήση του παρακάτω σχήματος (3.3) θα εξηγηθεί λεπτομερώς πως σχετίζεται ο τρόπος που αποθηκεύονται τα sub-blocks στην μνήμη με την θέση που έχει το φιλτραριζόμενο μακρομπλοκ μέσα στο frame. 38

39 Σχήμα 3.3: Πιθανές θέσεις του macroblock σε ένα frame Oι πιθανές θέσεις ενός μακρομπλοκ μέσα στο Frame είναι εννιά και συμβολίζονται στο σχήμα με νούμερα από το μηδέν ως το οκτώ (στο πινακάκι Possible MB positions in frame). 1η περίπτωση: Το μακρομπλόκ βρίσκεται στο άνω αριστερά σημείο (θέση 0). Σ' αυτήν την περίπτωση, η πληροφορία που λαμβάνεται είναι μηδενική (καθώς δεν υπάρχει άνω αλλά ούτε δεξιά γειτονικό μακρομπλοκ). Στο μακρομπλοκ που προκύπτει μετά το φιλτράρισμα τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω θα αποθηκευτούν στην Top Memory. Το κάτω δεξιά sub-block θα αποθηκευτεί και στις δυο μνήμες. 2η περίπτωση: Το μακρομπλοκ βρίσκεται στην πάνω μεριά του frame αλλά σε εσωτερική θέση (θέση 1). Σ' αυτήν την περίπτωση υπάρχει είσοδος από την Left Memory αλλά όχι από την Top καθώς εξακολουθεί να μην υπάρχει γείτονας από πάνω. Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω θα αποθηκευτούν στην Top Memory όπως και προηγουμένως. Τα sub-blocks της Left Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο εκτός από το κάτω το οποίο γράφεται στην Top Memory. 3η περίπτωση: Το μακρομπλοκ βρίσκεται στην πάνω δεξιά μεριά του frame (θέση 2). Σ' αυτήν την περίπτωση υπάρχει είσοδος από την Left Memory αλλά όχι από την Top καθώς εξακολουθεί να μην υπάρχει γείτονας από πάνω. 39

40 Στην έξοδο, τα κάτω sub-blocks θα αποθηκευτούν στην Top Memory όπως και προηγουμένως ενώ τα αριστερά θα γραφούν στην έξοδο κατευθείαν αφού δεν υπάρχει γείτονας εξ αριστερών. Τα sub-blocks της Left Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο εκτός από το κάτω το οποίο γράφεται στην Top Memory (όμοια με θέση 1). 4η περίπτωση: Το μακρομπλοκ βρίσκεται στο αριστερό σύνορο του frame αλλά σε εσωτερική θέση (θέση 3). Σ' αυτήν την περίπτωση δεν υπάρχει είσοδος από την Left Memory (καθώς δεν υπάρχει γείτονας εξ αριστερών) αλλά υπάρχει από την Top. Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω θα αποθηκευτούν στην Top Memory όπως και προηγουμένως. Τα sub-blocks της Τοp Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο. 5η περίπτωση: Το μακρομπλοκ βρίσκεται σε εσωτερική θέση του Frame (θέση 4). Σ' αυτήν την περίπτωση υπάρχει είσοδος και από την Left και από την Top Memory. Αυτή η περίπτωση είναι η πιο συχνή όπως είναι εύκολα κατανοητό. Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω θα αποθηκευτούν στην Top Memory όπως και προηγουμένως. Τα sub-blocks της Left Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο εκτός από το κάτω το οποίο γράφεται στην Top Memory. Τα subblocks της Τοp Memory που χρησιμοποιήθηκαν επίσης δεν θα χρησιμοποιηθούν άλλο και γι'αυτό γράφονται στην εξωτερική μνήμη. 6η περίπτωση: Το μακρομπλοκ βρίσκεται στο δεξί σύνορο του frame αλλά σε εσωτερική θέση (θέση 5). Σ' αυτήν την περίπτωση υπάρχει είσοδος και από την Left και από την Top Memory. Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην εξωτερική μνήμη αφού δεν υπάρχει αριστερός γείτονας ενώ τα κάτω θα αποθηκευτούν στην Top Memory όπως και προηγουμένως. Τα sub-blocks της Left Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο εκτός από το κάτω το οποίο γράφεται στην Top Memory. Τα sub-blocks της Τοp Memory που χρησιμοποιήθηκαν επίσης δεν θα χρησιμοποιηθούν άλλο και γι'αυτό γράφονται στην εξωτερική μνήμη. 7η περίπτωση: Το μακρομπλοκ βρίσκεται στο κάτω αριστερά μέρος του frame (θέση 6). Σ' αυτήν την περίπτωση δεν υπάρχει είσοδος από την Left Memory (καθώς δεν υπάρχει γείτονας εξ αριστερών) αλλά υπάρχει από την Top. 40

41 Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω δεν θα αποθηκευτούν στην Top Memory καθώς δεν υπάρχει γείτονας από κάτω. Τα subblocks της Τοp Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδο. 8η περίπτωση: Το μακρομπλοκ βρίσκεται στο κάτω σύνορο του Frame αλλά σε εσωτερική θέση (θέση 7). Σ' αυτήν την περίπτωση υπάρχει είσοδος και από την Left και από την Top Memory. Στην έξοδο τα δεξιά sub-blocks θα αποθηκευτούν στην Left Memory ενώ τα κάτω δεν θα αποθηκευτούν στην Top Memory καθώς δεν υπάρχει γείτονας από κάτω (όπως προηγουμένως). Τα sub-blocks της Left καθώς και της Top Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδo. 9η περίπτωση: Το μακρομπλόκ βρίσκεται στο κάτω δεξιά σημείο (θέση 8). Υπάρχει είσοδος και από την Left και από την Top Memory. Στο μακρομπλοκ που προκύπτει μετά το φιλτράρισμα κανένα sub-block δεν θα αποθηκευτεί σε βοηθητική μνήμη καθώς δεν υπάρχει άλλο μακρομπλοκ στο frame που να είναι αφιλτράριστο. Τα sub-blocks της Left καθώς και της Top Memory που χρησιμοποιήθηκαν δεν θα χρησιμοποιηθούν πλέον άλλο και γι'αυτό γράφονται στην έξοδo. 3.4 Οργάνωση του pipeline Στην παρούσα σχεδίαση εφαρμόστηκε η τεχνική του pipeline με χρήση της οποίας μειώθηκε σημαντικά η καθυστέρηση. Υπήρξε εκμετάλλευση του γεγονότος ότι δεν υπάρχει εξάρτηση μεταξύ των λειτουργιών που εκτελούνται στο φίλτρο και επιλέχθηκε να γίνει pipeline πέντε σταδίων, καθένα από τα οποία επιτελεί τις λειτουργίες που φαίνονται στο παρακάτω σχήμα (3.4.1): 41

42 Σχήμα 3.4.1: Παρουσίαση των πέντε σταδίων του pipeline Στο πρώτο στάδιο ενημερώνονται οι παραμέτροι α, β, tc0 και Bs καθώς και διαβάζονται από τη μνήμη οι τροποποιημένες τιμές πίξελ του προηγούμενου σταδίου. Στο δεύτερο στάδιο εκτελούνται παράλληλα δυο λειτουργίες. Στη μία (που περιγράφεται στο σχήμα με το όνομα Filter Threshold Flags) υπολογίζονται κάποιες παράμετροι που θα καθορίσουν στη συνέχεια την ισχύ του φιλτραρίσματος που θα εφαρμοστεί. Στην άλλη εφαρμόζεται το πρώτο μέρος του φιλτραρίσματος των πίξελ για την περίπτωση που η μεταβλητή Bs έχει τιμή 1,2 ή 3. Στο τρίτο στάδιο εκτελούνται παράλληλα δυο λειτουργίες. Η μια εξ αυτών αποτελεί το 2ο μέρος του φιλτραρίσματος στην περίπτωση που η μεταβλητή Bs έχει τιμή 1,2 ή 3 και χρησιμοποιεί τα δεδομένα του 1ου μέρους ενώ η άλλη αποτελεί το πρώτο μέρος του φιλτραρίσματος στην περίπτωση που η μεταβλητή Bs έχει τιμή 4. Το τέταρτο στάδιο αποτελείται επίσης από δύο παράλληλες λειτουργίες (το 3ο και τελευταίο μέρος της διαδικασίας που απαιτείται για τα πίξελ με Bs 1,2 ή 3 καθώς και το 2ο και τελευταίο μέρος της αντίστοιχης για Bs ίσο με 4). Όταν τελειώσουν οι λειτουργίες αυτές, τα φιλτραρισμένα πίξελ για κάθε περίπτωση εισάγονται σε ένα δίκτυο πολυπλεκτών όπου τα σήματα επιλογής είναι οι μεταβλητές που υπολογίστηκαν στο 2ο στάδιο από την λειτουργία Filter Threshold Flags. Τελικά, επιλέγονται τα πίξελ που αντιστοιχούν στο φιλτράρισμα που πρέπει να γίνει κάθε φορά και οδηγούνται στο 5ο στάδιο. Στο 5ο και τελευταίο στάδιο, τα πίξελ γράφονται στην μνήμη και είναι έτοιμα για επεξεργασία από το επόμενο sub-block. 42

43 Πιο αναλυτικό σχήμα είναι το σχήμα όπου το κάθε κουτί εχει αντικατασταθεί με την ακριβή λειτουργία που επιτελεί. Σχήμα 3.4.2: Αναλυτική παρουσίαση των πέντε σταδίων του pipeline Γενικά, η λογική που ακολουθήθηκε είναι η εξής: Υπολογίζονται κάθε φορά και ανεξάρτητα από την τιμή του Bs και των υπόλοιπων παραμετρων που επηρεάζουν την ισχύ του φιλτραρίσματος που θα εφαρμοστεί τα τροποποιημένα πίξελ σε κάθε περίπτωση. Αυτό σημαίνει πως κάθε φορά υπολογίζονται τα πίξελ σε περίπτωση που το Bs έχει τιμή 1,2 ή 3 (1ο ενδεχόμενο), σε περίπτωση που η τιμή του Bs είναι 4 και επιπλέον έχουμε ισχυρό φιλτράρισμα (2ο ενδεχόμενο), σε περίπτωση που η τιμή του Bs είναι 4 και έχουμε ασθενές φιλτράρισμα (3ο ενδεχόμενο) και τέλος, σε περίπτωση που δεν χρειάζεται να εφαρμοστεί κανένα φίλτρο (4ο ενδεχόμενο). Στη συνέχεια όλες αυτές οι διαφορετικές τιμές πίξελ (4 διαφορετικές τιμές για το καθένα από τα οκτώ) περνάνε από ένα δίκτυο πολυπλεκτών όπου ξεχωρίζονται αυτά που αντιστοιχούν στις τιμές των παραμέτρων. Ο λόγος που επιλέχθηκε να ακολουθηθεί όλη αυτή η διαδικασία από την απλούστερη εναλλακτική, που θα ήταν να υπολογίζεται αρχικά το Bs και οι παραμέτροι επιλογής φίλτρου και στη συνέχεια να εφαρμόζεται το κατάλληλο φίλτράρισμα, είναι ο εξής: Αν είχε επιλεγεί αυτός ο τρόπος σχεδίασης, θα χανόταν χρόνος μέχρι να υπολογιστεί η τιμή αυτών των παραμέτρων καθώς δεν θα προβλεπόταν να εφαρμοστεί το φιλτράρισμα πριν την ολοκλήρωση των υπολογισμών. Αντίθετα, στην παρούσα σχεδίαση, ο υπολογισμός 43

44 των παραμέτρων και το φιλτράρισμα για κάθε περίπτωση γίνεται παράλληλα και στο τέλος επιλέγεται η σωστή τιμή των πίξελ. Με αυτό τον τρόπο μειώνεται η καθυστέρηση ενώ το κόστος του παραπάνω υλικού που χρησιμοποιείται είναι αμελητέο. 44

45 Κεφάλαιο 4 4. Σχεδιασμός μονάδων 4.1 Deblocking Φίλτρο Βασικά στοιχεία Σκοπός του φίλτρου είναι να τροποποιεί κατάλληλα τα πίξελ εισόδου που δέχεται. Η τελική μορφή των πίξελ είναι η έξοδος του κυκλώματος. Η διαδικασία της τροποποίησης γίνεται λαμβάνοντας υπ'όψιν κάποιες παραμέτρους που δίνονται και καθορίζουν την ισχύ του φιλτραρίσματος που πρέπει να εφαρμοστεί. Πιο αναλυτικά οι είσοδοι στο φίλτρο που σχεδιάστηκε είναι : p_in, q_in (32bits το καθένα) : τα πίξελ p και q δίνονται σε μορφή 32 bits. Τα πίξελ εισόδου βρίσκονται αν διακρίνουμε τις εισόδους ανά 8 bits. Με αυτόν τον τρόπο ξεχωρίζονται τα 4 p και τα 4 q-πίξελ εισόδου. clk, rst, clr, en (1 bit το καθένα) : το ρολόι, το σήμα reset (ασύγχρονο reset), το σήμα clear (σύγχρονο reset ) και το enable (με την έλευσή του δίνεται η δυνατότητα εκτέλεσης της εκάστοτε λειτουργίας) update_par (1 bit) : Με την έλευση του γίνεται δυνατή η ενημέρωση των παραμέτρων του φίλτρου. Παραμέτροι του φίλτρου a (8 bits), b (5 bits), tc0 (5 bits) : Τιμές κατωφλίου οι οποίες αντιστοιχούν σε ακέραιους με τιμές από 0 έως 255, από 0 έως 18 και από 0 έως 25, αντίστοιχα. bs (2 bits) : H παράμερος που καθορίζει την συνοριακή ισχύ (boundary strength) η οποία σε μεγάλο βαθμό καθορίζει την ισχύ του φιλτραρίσματος που θα εφαρμοστεί. chromaedgeflag (1 bit) : Καθορίζει αν το μακρομπλοκ στο οποίο εφαρμόζεται το φιλτράρισμα είναι τύπου Chroma (αν η τιμή της μεταβλητής είναι 0) ή Luma (αν η τιμή της είναι 1). v_in (1 bit) : Σήμα ελέγχου, αν και μόνο αν είναι 1 επιτρέπεται η λειτουργία όλου του φίλτρου. Οι έξοδοι του φίλτρου είναι: v_out (1 bit): Σήμα ελέγχου, όταν η τιμή του είναι ίση με 1 τότε τα αποτελέσματα που λαμβάνονται είναι έγκυρα. p_out, q_out (32 bits το καθένα) : Τα πίξελ εξόδου (4 p και 4 q), τα οποία παρουσιάζονται στην έξοδο σε μορφη 2 σημάτων 32 bits. Το κάθε πίξελ εξόδου βρίσκεται αν διαχωρίσουμε το 32μπιτο σήμα ανά 8 bits, με τρόπο παρόμοιο με αυτό που εφαρμόστηκε στα σήματα εισόδου. 45

46 4.1.2 Στάδια του φίλτρου Η αλγοριθμική περιγραφή του φίλτρου έχει γίνει σε προηγούμενο κεφάλαιο. Εδώ θα γίνει μια hardware περιγραφή και θα επιχειρηθεί να εξηγηθεί σε ποια σημεία η αρχιτεκτονική που εφαρμόστηκε στην παρούσα σχεδίαση διαφοροποιείται από τις υπάρχουσες. Δεδομένου ότι δεν υπάρχει εξάρτηση δεδομένων μεταξύ δυο γειτονικών λειτουργιών του φίλτρου μπορεί να εφαρμοστεί η τεχνική του pipeline. Με τη χρήση αυτής της τεχνικής επιτυγχάνεται η μείωση του μήκους του κρίσιμου μονοπατιού (και κατ' επέκταση της καθυστέρησης). Ένας ιδανικός σχεδιασμός pipeline παρουσιάζει ισορροπία στο μήκος που έχει κάθε στάδιο. Με αυτόν τον τρόπο επιτυγχάνεται εξοικονόμηση χρόνου τόσες φορές όσα και τα στάδια της σχεδίασης. Φυσικά, κάτι τέτοιο είναι πρακτικά αδύνατο να επιτευχθεί και πάντα κάποιο από τα στάδια θα θέλει λίγο περισσότερο χρόνο ώστε να εκτελέσει τις πράξεις που απαιτούνται σε αυτό. Αυτή η καθυστέρηση μειώνει την απόδοση του σχεδιασμού. Παρ'όλα αυτά ένας προσεκτικός και μελετημένος σχεδιασμός επιτυγχάνει μεγάλη εξοικονόμηση χρόνου και γι' αυτό είναι πολύ σημαντικό να δίνεται σημασία στην όσο το δυνατόν μεγαλύτερη ομοιομορφία στην κατανομή των διεργασιών. Στην παρούσα σχεδίαση επιλέχθηκε το κύκλωμα του φίλτρου να χωριστεί σε 5 στάδια με τρόπο που φαίνεται στο παρακάτω σχήμα. Όπως φαίνεται και στο σχήμα εκτελούνται παράλληλα 2 διεργασίες. Η πρώτη είναι η τροποποίηση των πίξελ εισόδου με τον τρόπο που θα γινόταν αν η παράμετρος Bs (Boundary Strength) ήταν ίση με 4. Η δεύτερη είναι η τροποποίηση τους σε περίπτωση που το Bs ισούταν με 1, 2 ή 3 (ο αλγόριθμος που εφαρμόζεται και στις 3 αυτές διαφορετικές περιπτώσεις είναι ίδιος). Παράλληλα, τα πίξελ εισόδου μεταφέρονται απαράλλαχτα σε κάθε στάδιο έτσι ώστε σε περίπτωση που δεν χρειάζεται φιλτράρισμα να υπάρχουν έτοιμα για την έξοδο. Με αυτόν τον τρόπο, κατά τη διάρκεια των τριων πρώτων σταδίων, υπολογίζονται όλες οι πιθανές τιμές των πίξελ εξόδου και στο 4ο στάδιο επιλέγονται μέσω ενός πολύπλοκου δικτύου αυτές που πρέπει βάσει των παραμέτρων που υπάρχουν. Στο 5ο στάδιο οι εξόδοι που έχουν επιλεγεί τροποποιούνται ώστε να είναισ την μορφή που το πρότυπο επιτάσσει. Πιο αναλυτικά, τα 5 στάδια παρουσιάζονται παρακάτω: Στάδιο 1ο Με τη χρήση ενός σήματος που ονομάζεται update_par ενημερώνονται οι threshold τιμές των μεταβλητών α, β, tc0, bs και chromaedgeflag. Οι τιμές ενημερώνονται αν και μόνο αν αυτό το σήμα ελέγχου (το update_par) έχει τιμή ίση με 1. Φυσικά, οι μεταβολές αυτές γίνονται με την έλευση ρολογιού και με την προυπόθεση πως τα σήματα clear και reset έχουν μηδενική τιμή. 46

47 Στάδιο 2ο Εδώ γίνονται παράλληλα δυο διαδικασίες, η πρώτη είναι μέρος της διαδικασίας που απαιτείται για το φιλτράρισμα σε περίπτωση που το Bs έχει τιμή 1,2 ή 3 και η δεύτερη υπολογίζει κάποιες μεταβλητές που χρησιμοποιούνται αργότερα. Στην πρώτη διαδικασία (αν το Bs έχει τιμή 1, 2 ή 3), η οποία στον κώδικα ονομάζεται Bs123_stage1, υπολογίζονται οι εξής μεταβλητές: ( ) ( ) ( ) Στην δεύτερη διαδικασία (στον κώδικα είναι η συνάρτηση Threshold_calculation_stage1) υπολογίζονται οι μεταβλητές Filter_Samples_Flag, ap, aq και Bs4_strength_factor. Η μεταβλητή Filter_Samples_Flag είναι αυτή που καθορίζει αν θα γίνει φιλτράρισμα και είναι ίση με 1 αν και οι τρεις παρακάτω συνθήκες είναι αληθείς: ( ) ( ) ( ) Οι ap, aq καθορίζονται από τις συνθήκες : ( ) ( ) αντιστοιχα. Αν η συνθήκη που αντιστοιχεί στην καθεμία είναι αληθής, τότε η μεταβλητή παίρνει την τιμή 1, αλλιώς την τιμή 0. Για τον υπολογισμό τέλος της Bs4_strength_factor ελέγχεται η αλήθεια ή μη της συνθήκης : ( ) 47

48 Βλέπουμε πως η διαδικασία φιλτραρίσματος για Bs = 4 δεν έχει ξεκινήσει ακόμα, σε αντίθεση με την αντίστοιχη για Bs = 1,2,3. Αυτό γίνεται λόγω του ότι είναι αναγκαίο να γνωρίζουμε την τιμή της μεταβλητής Bs4_strength_factor κάτι το οποίο γίνεται μετά την παρέλευση του παρόντος σταδίου. Επομένως, η διαδικασία φιλτραρίσματος στην περίπτωση Bs = 4 θα ξεκινήσει στο επόμενο στάδιο. Στάδιο 3ο Στο τρίτο στάδιο γίνονται παράλληλα τρεις διαδικασίες. Η συνάρτηση Bs4_stage2 αποτελεί το πρώτο μέρος του φιλτραρίσματος για την περίπτωση που το Bs ισούται με 4. Σαν είσοδο δέχεται τα πίξελ εισόδου (τα οποία έχουν περάσει από registers και έχουν φτάσει αναλλοίωτα στο στάδιο αυτό), την μεταβλητή chromaedgeflag η οποία υποδηλώνει αν το φιλτράρισμα είναι Luma ή Chroma, και τις μεταβλητές Bs4_strength_factor, ap και aq οι οποίες έχουν υπολογιστεί στην συνάρτηση Threshold_Calculation_stage1 του προηγούμενου σταδίου. Οι έξοδοι είναι 5 μεταβλητές οι οποίες ονομάζονται sum1, sum2, sum3, sum4 και sum5 και υπολογίζονται ως εξής: Η sum1 είναι ανεξάρτητη των μεταβλητών ελέγχου και ισούται πάντα με: ( ) Ομοίως οι sum3, sum5: ( ) ( ) Οι υπόλοιπες εξαρτώνται από τις τιμές των μεταβλητών chromaedgeflag, Bs4_strength_factor, ap και aq. Για το sum2: --- Aν το φιλτράρισμα είναι τύπου Luma τότε: --- Αν επιπλέον ισχύει Bs4_strength_factor = 1 και ap = 1: 48

49 ( a) --- Σε οποιαδήποτε άλλη περίπτωση, δηλαδή αν το φιλτράρισμα είναι τύπου Chroma ή αν μία από τις δυο άλλες μεταβλητές έχει μηδενική τιμή τότε Για το sum4: ( b) --- Aν το φιλτράρισμα είναι τύπου Luma τότε: --- Αν επιπλέον ισχύει Bs4_strength_factor = 1 και aq = 1: ( a) --- Σε οποιαδήποτε άλλη περίπτωση, δηλαδή αν το φιλτράρισμα είναι τύπου Chroma ή αν μία από τις δυο άλλες μεταβλητές έχει μηδενική τιμή τότε ( b) Η συνάρτηση Bs123_stage2 αποτελεί το δεύτερο μέρος του φιλτραρίσματος για την περίπτωση που το Bs ισούται με 1, 2 ή 3. Οι εισόδοι της είναι οι μεταβλητές D0i, Dp1i, Dq1i, tc και tc0. Οι πρώτες τρεις έχουν υπολογιστεί στο προηγούμενο στάδιο στη συνάρτηση Bs123_stage1 και οι υπόλοιπες στην συνάρτηση Threshold_calculation_stage1. Οι έξοδοι της συνάρτησης είναι οι μεταβλητές D0, Dp1 και Dq1. Οι έξοδοι υπολογίζονται ως εξής: ( ) ( ) ( ) *Ο συμβολισμός Clip3(a, b, c) χρησιμοποιείται για να απλοποιήσει την συνάρτηση: Μin [Max(a, c), b ] Στην συνάρτηση Threshold_calculation_stage2 υπολογίζεται η τιμή κατωφλίου (threshold value) tc η οποία θα χρησιμοποιηθεί σαν είσοδος στην Bs123_stage2 του ιδίου σταδίου. 49

50 Οι είσοδοι αυτής της συνάρτησης είναι κάποιες από τις εξόδους της συνάρτησης του προηγούμενου σταδίου Threshold_calculation_stage1, (οι ap, aq) καθώς και οι μεταβλητές chromaedgeflag, tc0 ενώ η έξοδος είναι όπως αναφέρθηκε και παραπάνω η tc. Για τον υπολογισμό του tc γίνεται ο εξής έλεγχος: --- Αν το φιλτράρισμα είναι τύπου Luma (δηλαδή η μεταβλητή chromaedgeflag = 0) τότε --- Αν ap = 1 και aq = 1: tc = tc Aν ap = 1 ή aq = 1: tc = tc Αλλιώς: tc = tc0 --- Αν το φιλτράρισμα είναι τύπου Chroma τότε : tc = tc0 + 1 Στάδιο 4ο Στο στάδιο αυτό ολοκληρώνονται τα φιλτραρίσματα για τις δυο διαφορετικές περιπτώσεις (Bs = 4 ή Bs = 1,2,3). Στη συνέχεια λαμβάνει χώρα η διαλογή των πίξελ που θα αποτελέσουν την τελική έξοδο μέσα από ένα δίκτυο πολυπλεκτών στο οποίο τα σήματα επιλογής λαμβάνονται από προηγούμενα στάδια. H συνάρτηση Bs4_stage3 ολοκληρώνει το φιλτράρισμα της περίπτωσης Bs = 4. Οι είσοδοι της είναι οι έξοδοι της αντίστοιχης συνάρτησης του προηγούμενου σταδίου, της Bs4_stage2, δηλαδή οι sum1, sum2, sum3, sum4 και sum5. Oι έξοδοι είναι τα φιλτραρισμένα πίξελ που αντιστοιχούν για Bs = 4 και συμβολίζονται με p0_w, p0_s, p1_s, p2_s, q0_w, q0_s, q1_s, q2_s. Τα πίξελ που έχουν στον δείκτη τους τo 'w' (δηλαδή τα p0_w, q0_w) αντιστοιχούν στα πίξελ που έχουν υποστεί το ασθενές φιλτράρισμα (weak filtering) ενώ τα υπόλοιπα, που έχουν στον δείκτη τους το 's' έχουν υποστεί ισχυρό (strong filtering). Υπολογίζονται ως εξής: 50

51 H συνάρτηση Bs123_stage3 ολοκληρώνει το φιλτράρισμα της περίπτωσης Bs= 1,2,3. Ομοίως κι εδώ χρησιμοποιούνται οι τιμές εξόδου της αντίστοιχης συνάρτησης Bs123_stage2 του προηγούμενου σταδίου καθώς και τα πίξελ p0, q0, p1, q1. Σαν έξοδο λαμβάνουμε τα φιλτραρισμένα πίξελ p0_123, q0_123, p1_123 και q1_123. Οι έξοδοι υπολογίζονται ως εξής: Η συνάρτηση Mux_Network αποφασίζει ποια από τα πίξελ που έχουν παραχθεί από όλη τη διαδικασία θα είναι αυτά που θα επιλεγούν τελικά για να αποτελέσουν την τελική έξοδο. Η επιλογή αυτή γίνεται λαμβάνοντας υπ'όψιν τις τιμές που έχουν τα σήματα που παρήχθησαν από τη συνάρτηση Threshold_Calculation του 2ου σταδιου. Οι είσοδοι της συνάρτησης είναι φυσικά τα τροποποιημένα πίξελ που έχουν παραχθεί από τις συναρτήσεις για τις δυο περιπτώσεις, Bs = 4 (p0_w, p0_s, p1_s, p2_s, q0_w, q0_s, q1_s, q2_s) ή Bs = 1,2,3 (p0_123, q0_123, p1_123, q1_123) αλλά και τα αμετάβλητα πίξελ της εισόδου τα οποία έχουν φτάσει μέχρι αυτό το στάδιο μέσω registers (p0_std, p1_std, p2_std, p3_std, q0_std, q1_std, q2_std, q3_std). Επίσης είναι κάποια σήματα επιλογής: τα bs, filter_samples_flag, ap, aq, Bs4_strength_factor και chroma_edge_flag. Μέσα από αυτήν την διαδικασία επιλογής θα προκύψουν τα τελικά πίξελ (p0_out, p1_out, p2_out, p3_out, q0_out, q1_out, q2_out, q3_out ) τα οποία είναι oι έξοδοι της συνάρτησης. 51

52 Η διαδικασία είναι αρκετά περίπλοκη και πρέπει να ληφθούν υπ'όψιν όλες οι πιθανές περιπτώσεις. Αρχικά, για τα p3_out, q3_out ισχύει πάντα ότι δεν μεταβάλλονται καθόλου και άρα είναι τα ίδια με τα αντίστοιχα πίξελ εισόδου. Για να βρούμε πως θα τροποποιηθούν τα p-πίξελ p0_out, p1_out και p2_out κάνω τους εξής ελέγχους: 1. Αν το Bs είναι 0 (κάτι που ελέγχεται μέσω του σήματος bs) ή το σήμα filter_samples_flag είναι 0, τότε δεν υπάρχει φιλτράρισμα και επομένως όλα τα πίξελ θα παραμείνουν αμετάβλητα και ίσα με τα αντίστοιχα πίξελ εισόδου. 2. Aν το Βs είναι 4: Αν υπάρχει φιλτράρισμα τύπου Luma (έλεγχος μέσω σήματος chroma_edge_flag ) και επιπλέον τα σήματα Bs4_strength_factor και ap ισούνται με 1, τότε εφαρμόζεται ισχυρό φιλτράρισμα και επομένως: Αν κάτι απ' όλα αυτά δεν ισχύει, τότε εφαρμόζεται ασθενές φιλτράρισμα στο οποίο μεταβάλλεται μόνο το και τα υπόλοιπα πίξελ παραμένουν αμετάβλητα: 52

53 3. Σε αυτήν την περίπτωση (το Bs δεν ισούται με 0 και ούτε με 4) δεν μπορεί παρά να έχει τιμή 1, 2 ή 3 οπότε θα εφαρμοστεί το αντίστοιχο φιλτράρισμα. Αν το φιλτράρισμα είναι τύπου Luma και το σήμα ap ισούται με 1 τότε: Αν κάτι από αυτές τις δυο προυποθέσεις δεν εκπληρώνεται τότε : Aκριβώς η ίδια διαδικασία ακολουθείται για τα q-πιξελ με την μόνη διαφορά πως αντί για το σήμα ελέγχου ap χρησιμοποιείται το aq. Στάδιο 5ο Στο στάδιο αυτό τα πίξελ που έχουν επιλεχθεί ενώνονται έτσι ώστε να παραχθούν 2 σήματα των 32 bit το καθένα, έτσι όπως ορίζει το πρότυπο. Τα δυο αυτά σήματα είναι τα p και q σήματα που συμβολίζουν τα 8 συνολικά πίξελ που απαιτούνται στην έξοδο. Ανάμεσα από τα στάδια παρεμβάλλονται registers οι οποίοι φροντίζουν ώστε κάθε σήμα που παράγεται σαν έξοδος από τις διάφορες συναρτήσεις του φίλτρου, να φτάσει στο επόμενο στάδιο με την έλευση του ρολογιού. Το ίδιο συμβαίνει και με τα πίξελ που παίρνουμε σαν εισόδους, τα οποία μεταφέρονται με την χρήση registers από στάδιο σε στάδιο αναλλοίωτα έτσι ώστε να χρησιμοποιούνται όπου χρειαστεί αλλά και με σκοπό να περάσουν στην έξοδο σε περίπτωση που δεν θα χρειαστεί να εφαρμοστεί φιλτράρισμα. 53

54 Η συνάρτηση η οποία βρίσκεται στο πάνω επίπεδο της αρχιτεκτονικής που έγινε για το φίλτρο είναι η : db_filter. Μέσω αυτής καλούνται όλες οι υπόλοιπες συναρτήσεις που εμφανίζονται. Οι συναρτήσεις που είναι υπεύθυνες για τον υπολογισμό των τροποποιημένων πίξελ στην περίπτωση Bs = 4 είναι οι: Bs4_stage2, Bs4_stage3. Οι συναρτήσεις που είναι υπεύθυνες για τον υπολογισμό των τροποποιημένων πίξελ στην περίπτωση Bs = 1, 2, 3 είναι οι: Bs123_stage1, Bs123_stage2, Bs123_stage3. Για τον υπολογισμό κάποιων μεταβλητών που είναι απαραίτητες για την τελική επιλογή των εξόδων χρησιμοποιήθηκαν οι: Threshold_calculation_stage1, Threshold_calculation_stage2. Η τελική διαλογή των εξόδων γίνεται μέσω της συνάρτησης : Mux_Network. Οι υπόλοιπες συναρτήσεις που δημιουργήθηκαν επιτελούν λειτουργίες των registers ( οι συναρτήσεις register_1bit, register_9bit, register_11bit, register_integer, register_std_2bit, register_std_5bit και register_std_8bit ), λειτουργίες ολίσθησης (Shifter_left_9bit, Shifter_left_10bit, Shifter_right_9bit, Shifter_right_10bit, Shifter_right_11bit και Shifter_right_12bit ) ή κάποιες άλλες απλές λειτουργίες, όπως Clipping ( η Clip3), εύρεση μεγίστου (Max) και ελαχίστου (Μin) Απλοποίηση εξισώσεων Σε ό,τι αφορά τον υπολογισμό των τροποποιημένων πίξελ p0, p1, p2, q0, q1, q2, ο οποίος γίνεται στα στάδια 3 και 4, κρίθηκε σκόπιμο να παρουσιαστεί αναλυτικά ο τρόπος με τον οποίο επιτυγχάνεται βελτιστοποίηση στον υπολογισμό των εξισώσεων. Λαμβάνοντας υπ'όψιν κάποια επαναλαμβανόμενα αθροίσματα, έγινε δυνατό να εφαρμοστεί μια "εξυπνότερη" σχεδίαση. Πιο αναλυτικά: Για την περίπτωση όπου Bs = 4 διακρίνονται οι εξής δυο περιπτώσεις: Ισχυρό φιλτράρισμα 54

55 Ασθενές φιλτράρισμα Με μια προσεκτικότερη παρατήρηση στα αθροίσματα αυτά είναι εύκολο να διαπιστωθεί πως υπάρχουν κάποια μερικά αθροίσματα τα οποία χρησιμοποιούνται συχνά. Επιλέχθηκε λοιπόν τα επαναλαμβανόμενα αυτά αθροίσματα να υπολογιστούν ξεχωριστά στο τρίτο στάδιο, έτσι ώστε να εξοικονομηθεί χρόνος. Στη συνέχεια, οι ποσότητες που απαιτείται να υπολογιστούν βρίσκονται με χρήση των αθροισμάτων αυτών (στάδιο 4). Τα αθροίσματα αυτά είναι τα εξής: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Από συνδυασμό κάποιων απ' αυτών προκύπτουν τα ακόλουθα αθροίσματα : ( ) ( ) ( ) Είναι εύκολα αποδείξιμο ότι η ( ) προκύπτει από το άθροισμα των ( ) και ( ), η ( ) προκύπτει από το άθροισμα των ( ) και ( ) και η ( ) προκύπτει από το άθροισμα των ( ) και ( ). Με δεδομένο τον υπολογισμό των αθροισμάτων αυτών, οι τιμές των πίξελ μπορούν πλέον να γραφτούν ως εξής: 55

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

57 Σχήμα : Αναλυτική διαδικασία φιλτραρίσματος στα στάδια 3 και 4 για Bs = 4 μετά τις απλοποιήσεις των εξισώσεων Συνολικά, απαιτούνται 17 adders για τον υπολογισμό όλων των πίξελ και στις δυο περιπτώσεις (strong και weak filtering) αντί για 8 που θα χρειάζονταν αν δεν εφαρμοζόταν το "σπάσιμο" της διαδικασίας σε 2 μέρη. Το ελάχιστο αυτό επιπλέον κόστος σε υλικό έχει σαν αποτέλεσμα την σημαντική βελτίωση της ταχύτητας. Με παρόμοια λογική σπάει σε στάδια και η διαδικασία υπολογισμού των πίξελ στην περίπτωση όπου Bs = 1,2 ή 3. Οι τελικές τιμές δίνονται από τους εξής υπολογισμούς: 57

58 , όπου για τον υπολογισμό των μεταβλητών, και το πρότυπο ορίζει ότι: Η ποσότητα συμβολίζεται με και μπορεί να απλοποιηθεί ως εξής: Η ποσότητα συμβολίζεται με και μπορεί να απλοποιηθεί ως εξής:, όπου = p0+q0+1 όπως εξηγήθηκε παραπάνω. Ομοίως: Αντί να γίνουν όλοι αυτοί οι υπολογισμοί σε ένα στάδιο, κάτι που θα μεγάλωνε αρκετά την καθυστέρηση του συνολικού κυκλώματος (αφού η μέγιστη καθυστέρηση του σταδίου θα αυξανόταν σημαντικά), προτιμήθηκε να σπάσει η διαδικασία σε 3, όσο το δυνατόν πιο ισοδύναμα από άποψη κατανάλωσης χρόνου στάδια. Τα στάδια αυτά είναι το 2ο, το 3ο και το 4ο. 58

59 Oι τρεις μεταβλητές, και υπολογίζονται ταυτόχρονα στο 2ο στάδιο. Στο 3ο στάδιο υπολογίζονται οι κλιπαρισμένες ποσότητες: H τελική διαδικασία που απαιτείται γίνεται στο 4ο στάδιο και αποτελείται από τους εξής υπολογισμούς που αναφέρθηκαν και παραπάνω: Η συνολική διαδικασία παρουσιάζεται στο ακόλουθο σχήμα και περιλαμβάνει την διαδικασία που αποτελεί και τα τρία στάδια (στάδιο 2, 3 και 4): 59

60 Σχήμα : Αναλυτική διαδικασία φιλτραρίσματος στα στάδια 3 και 4 για Bs = 1,2 ή 3 μετά τις απλοποιήσεις των εξισώσεων 4.2 Transpose Buffers Κατά τη διάρκεια του φιλτραρίσματος η οργάνωση της μνήμης σχετικά με το MB που φιλτράρεται και του γειτονικού του MB πρέπει να είναι ετερογενής. Μια τέτοια οργάνωση επιτρέπει πρόσβαση σε μια σειρά/στήλη πίξελ (δηλαδή την είσοδο του φίλτρου), σε έναν μόνο κύκλο ρολογιού. Σε αντίθετη περίπτωση, αν δηλαδή δεν υπάρχει πρόβλεψη για transpose buffers, στις μισές ακριβώς από τις περιπτώσεις, μέχρι το σημείο να είναι προσβάσιμη μια γραμμή/στήλη πίξελ θα απαιτούνται τέσσερις κύκλοι ρολογιού. Αυτό εξηγείται καλύτερα από το παρακάτω σχήμα (4.2.1): 60

61 Σχήμα 4.2.1: Ετερογενής οργάνωση μνήμης. (a) Αποδοτική οργάνωση για οριζόντιο φιλτράρισμα (b) Αποδοτική οργάνωση για κάθετο φιλτράρισμα (c) Μη αποδοτική οργάνωση για κάθετο φιλτράρισμα (d) Μη αποδοτική οργάνωση για οριζόντιο φιλτράρισμα Στο (a) παρουσιάζεται η αποδοτική διάταξη όταν εφαρμόζεται κάθετο φιλτράρισμα. Με αυτήν την διάταξη, σε έναν κύκλο ρολογιού είναι εφικτή η πρόσβαση στα δεδομένα εισόδου που απαιτεί το κύκλωμα, δηλαδή στις τετράδες πίξελ p και q (p3, p2, p1, p0 και q0, q1, q2, q3). Στο (b) παρουσιάζεται η αποδοτική διάταξη σε περίπτωση οριζόντιου φιλτραρίσματος. Ομοίως τώρα, η πρόσβαση στα πίξελ που απαιτούνται για να εφαρμοστεί φιλτράρισμα γίνεται σε έναν μόνο κύκλο ρολογιού. Στα (c) και (d) παρουσιάζεται το πρόβλημα που προκύπτει όταν δεν υπάρχει η κατάλληλη διάταξη (οριζόντιο και κάθετο φιλτράρισμα αντίστοιχα). Το αποτέλεσμα είναι να απαιτούνται τέσσερις κύκλοι ρολογιού για να ληφθούν τα κατάλληλα δεδομένα. Προκύπτει λοιπόν ότι για να υπάρξει η μέγιστη εκμετάλλευση του φαινομένου αυτού, πρέπει να γίνεται αλλαγή στον τρόπο οργάνωσης της μνήμης κάθε φορά που 61

62 αλλάζει το φιλτράρισμα από κάθετο σε οριζόντιο και αντίθετα. Αυτή η διαδικασία γίνεται με την χρήση των transpose buffers και επεξηγείται αναλυτικά στο σχήμα Σχήμα 4.2.2: Σχηματική περιγραφή της διαδικασίας του transpose 4.3 Μονάδα υπολογισμού του Bs Η παράμετρος Βs έχει μεγάλη σημασία στην όλη διαδικασία καθώς είναι αυτή που ουσιαστικά καθορίζει το είδος του φιλτραρίσματος που θα πραγματοποιηθεί. Η μονάδα που είναοι υπεύθυνη για την επιλογή της παραμέτρου υπολογίζει επίσης και τις μεταβλητές a, b, tc0. Το κοινό όλων των μεταβλητών είναι ότι ο υπολογισμός τους γίνεται με χρήση Look-Up πινάκων (LUTs). Οι λειτουργίες που απαιτούνται για τον καθορισμό των παραμέτρων εκτελούνται σε 2 κύκλους ρολογιού (παράλληλα με τα πρώτα στάδια του pipeline του φίλτρου). Όταν είναι έτοιμες οι τιμές μπαίνουν σαν σήματα επιλογής στο δίκτυο πολυπλεκτών του τέταρτου σταδίου και καθορίζουν ποια από τα τροποποιημένα πίξελ θα εμφανιστούν στην έξοδο. Χρησιμοποιούνται επίσης και κάποιοι buffers ώστε να βγαίνουν οι τιμές στην έξοδο την κατάλληλη χρονική στιγμή. Η αρχιτεκτονική της μονάδας υπολογισμού των τιμών παρουσιάζεται στην εικόνα

63 Σχήμα 4.1: Αρχιτεκτονική μονάδας υπολογισμού του Bs 63

64 Κεφάλαιο 5 5. Πειραματικά αποτελέσματα 5.1 Επιβεβαίωση ορθής λειτουργίας Για να γίνει επαλήθευση της ορθής λειτουργίας του κώδικα του φίλτρου χρησιμοποιήθηκε ένα αρχείο εισόδου μορφής txt (in.txt) στο οποίο ήταν γραμμένος ένας μεγάλος αριθμός πίξελ. Τα πίξελ ήταν σε δεκαεξαδική μορφή (πχ το A40F συμβολίζει το ). Το αρχείο αυτό λαμβανόταν από τον κώδικα σαν είσοδος. Τη στιγμή που ξεκινούσε να τρέχει ο κώδικας του φίλτρου, οι έξοδοι (φιλτραρισμένα πίξελ) αποθηκεύονταν σε άλλο αρχείο txt (out.txt) με τον ίδιο τρόπο (δηλαδή σε δεκαεξαδική μορφή). Το αρχείο αυτό, κάθε χρονική στιγμή (με την έλευση δηλαδή κάθε ρολογιού) συγκρινόταν με άλλο αρχείο το οποίο περιείχε τις προσδοκόμενες εξόδους για τις εισόδους που λήφθησαν (expected_out.txt). Mε άλλα λόγια, με το πέρας κάθε κύκλου, γινόταν σύγκριση του out.txt με το expected_out.txt και αν παρατηρούταν κάποια διαφορά τότε η διαδικασία σταματούσε και έβγαινε μήνυμα λάθους. Χρησιμοποιώντας αυτήν την μέθοδο, ήταν εύκολος ο εντοπισμός του λάθους, καθώς η λειτουργία διακοπτόταν ακριβώς στο σημείο που υπήρχε αναντιστοιχία μεταξύ της εξόδου και της επιθυμητής εξόδου. Επίσης, το αρχείο εισόδου αποτελούταν από έναν πάρα πολύ μεγάλο αριθμό πίξελ, κάλυπτε όλες τις πιθανές περιπτώσεις και καθιστούσε πρακτικά αδύνατη την ύπαρξη μη ανιχνεύσιμων λαθών. Χαρακτηριστικό είναι πως η διαδικασία επαλήθευσης της ορθής λειτουργίας κράτησε αρκετά λεπτά λόγω του μεγάλου αριθμού των εισόδων που έπρεπε να εξεταστούν. Η διαδικασία αυτή έγινε με χρήση του ίδιου προγράμματoς στο οποίο γράφτηκε και ο κώδικας του φιλτρου. Το πρόγραμμα ήταν το Modelsim και συγκεκριμένα η έκδοση SE Το αρχείο με το οποίο έγινε η σύγκριση των αποτελεσμάτων (expected_out.txt) βρέθηκε από τον συνεργάτη του Πανεπιστημίου Πατρων, κύριο Νικόλαο Κεφάλα. 5.2 Μετρικές μελέτης Στο κεφάλαιο αυτό παρουσιάζονται αναλυτικά οι μετρήσεις που έγιναν. Επιπλέον, επιχειρήθηκε να ληφθούν κάποια συμπεράσματα σχετικά με πιθανά πλεονεκτήματα ή μειονεκτήματα που εμφανίζει η παρούσα σχεδίαση του φίλτρου σε σχέση με προυπάρχουσες. Οι μετρήσεις έγιναν σε επιλεγμένα fpga που επιλέγησαν από τις δυο μεγαλύτερες εταιρίες στον χώρο των fpga, την Xilinx και την Altera. Για την μέτρηση στα fpga της Xilinx 64

65 χρησιμοποιήθηκε το πρόγραμμα Ise (έκδοση 13.4) ενώ για αυτά της Altera το αντίστοιχο πρόγραμμα της εταιρίας, το Quartus (έκδοση 11.1). Επιλέχθηκε να μετρηθούν οι εξής ποσότητες: Η συχνότητα λειτουργίας (σε Mhz) : είναι η συχνότητα στην οποία λειτούργησε χωρίς κανένα πρόβλημα χρονισμού ο κώδικας του φίλτρου. Μικρή συχνότητα λειτουργίας συνεπάγεται ταχύτερο κύκλωμα και επομένως μεγαλύτερη ταχύτητα λειτουργίας. Επιφάνεια : Η επιφάνεια (area) είναι πολύ χρήσιμο μέγεθος καθώς αντιπροσωπεύει τον χώρο που καταλαμβάνει η σχεδίαση πάνω στο fpga. Είναι προφανές ότι η αύξηση της επιφάνειας συνεπάγεται και αύξηση του κόστους σχεδιασμού. Μετριέται σε διαφορετικές μονάδες ανάλογα με το πρόγραμμα που χρησιμοποιείται. Παραδείγματος χάριν, στο πρόγραμμα Ise της Xilinx η επιφάνεια μετριέται σε slices. Στο πρόγραμμα Quartus που χρησιμοποιείται για τα fpga της εταιρίας Altera εξαρτάται από το είδος του device που μετριέται κάθε φορά. Τα fpga της οικογένειας Cyclone πχ μετριούνται σε Logic Cells ενώ αυτά της οικογένειας Stratix σε Combinational ALUTS και Dedicated Logic Registers. Βάσει αυτών των ποσοτήτων υπολογίστηκε το Throughput το οποίο στην ουσία περιγράφει το πόσα μακρομπλοκ ανά δευτερόλεπτο μπορούν να φιλτραριστούν με τον υπάρχοντα σχεδιασμό. Για τον υπολογισμό αυτής της ποσότητας είναι απαραίτητη η γνώση των κύκλων ρολογιού που απαιτούνται ώστε να ολοκληρωθεί το φιλτράρισμα ενός μακρομπλοκ. Στην παρούσα σχεδίαση, για να φιλτραριστεί πλήρως ένα μακρομπλοκ (ένα τύπου Luma και δύο τύπου Chroma) απαιτούνται 116 κύκλοι (29x4=116, βλέπε σχήμα χρονισμών στο κεφάλαιο 4). Επομένως το throughput είναι το πηλίκο της συχνότητας με τον αριθμό 116. Η ποσότητα αυτή μετρήθηκε σε Kilomacroblocks/second. (1 Kilomacroblock = macroblocks). Επίσης, υπολογίστηκε το πόσα frames ανά δευτερόλεπτο μπορεί να παρέχει η παρούσα σχεδίαση για διαφορετικές ποιότητες εικόνας. Η ποσότητα frames/sec υποδηλώνει την ποιότητα της παραγόμενης εικόνας που θα προβληθεί. Το κάτω όριο στην ποσότητα αυτή έτσι ώστε να υπάρχει μια στοιχειώδης ποιότητα βίντεο, έχει επίσημα οριστεί να είναι τα 30 frames/sec. Για να είναι επαρκής η ποιότητα όμως, ένα πιο επαρκές όριο είναι τα 50 frames/sec και αυτό το δεύτερο όριο είναι που θέτουν σαν στόχο οι σχεδιαστές. Στην παρούσα σχεδίαση, οι ποιότητες εικόνας που επιλέχθηκε να εξεταστούν ήταν τέσσερις, κατά σειρά οι: Ultra HD ( ), Full HD ( ), HD ( ) και Cif ( ). Με αυτόν τον τρόπο, έγινε προσπάθεια να καλυφθεί ένα μεγάλο εύρος χρησιμοποιούμενων αναλύσεων ώστε να εξαχθούν όσο το δυνατόν πιο συνολικά συμπεράσματα. H πιο απαιτητική ανάλυση που επιλέχθηκε, λόγω της ιδιαίτερα υψηλής της ποιότητας είναι η ανάλυση Ultra HD (Ultra High Definition). Δυο αναλύσεις αποκαλούνται μέχρι στιγμής Ultra HD, η 4K UHDTV (2160p) και η 8K UHDTV (4320p). Η πρώτη έχει ανάλυση 3840x2160 (8.3 Megapixels), ανάλυση η οποία είναι η τετραπλάσια από αυτή των 1080p (HD), ενώ η δεύτερη έχει ανάλυση (33.2 Megapixels), δηλαδή 16πλάσια 65

66 από αυτή της HD. Γίνεται εμφανές πως οι αναλύσεις αυτές είναι ιδιαίτερα εξεζητημένες και ακόμα δεν χρησιμοποιούνται πολύ. Επιλέχτηκε παρ'όλα αυτά να μετρηθεί η σχεδίαση και σε τέτοια απαιτητική ανάλυση (συγκεκριμένα στην 4K UHDTV ). Επιλέχθηκε επιπλέον η ανάλυση 1920x1088 (2.1 megapixels). H ανάλυση αυτή είναι ευρύτατα διαδεδομένη και η εμπορική της ονομασία είναι Full HD. Το ίδιο ισχύει για την ανάλυση HD, ή αλλιώς 1280x720. Όλα τα γνωστά στάνταρντς μετάδοσης βίντεο περιλαμβάνουν τις αναλύσεις Full HD και HD. Τέλος, επιλέχθηκε και το φορμάτ CIF (Common Intermediate Format), επίσης γνωστό και σαν FCIF (Full Common Intermediate Format). Η ανάλυση που υποστηρίζει το συγκεκριμένο φορμάτ είναι 352x288, και χρησιμοποιείται συχνά σε συστήματα τηλεδιάσκεψης. Η ανάλυση δεν είναι υψηλή, η ποιότητα του βίντεο παρ'όλα αυτά είναι αξιοπρεπής, κάτι που το καθιστά εύχρηστο. Για να υπολογιστούν τα frames/sec ακολουθήθηκε η εξής διαδικασία: Δεδομένης της ποιότητας της εικόνας, υπολογίζεται από πόσα πίξελ αποτελείται. Βρίσκεται έτσι ο συνολικός αριθμός των πίξελ που βρίσκονται σε ένα frame. Στη συνέχεια, έχοντας ως δεδομένο ότι ένα μακρομπλόκ αποτελείται από 256 πίξελ (καθώς οι διαστάσεις του κάθε μακρομπλοκ σύμφωνα με το πρότυπο είναι 16x16 πίξελ), μπορεί να υπολογιστεί ο αριθμός των μακρομπλόκ που περιέχει ένα frame. Με δεδομένο αυτόν τον αριθμό και τη γνώση του Throughput (της ποσότητας δηλαδή μακρομπλόκ/sec), με μια απλή διαίρεση βρίσκεται η ζητούμενη ποσότητα frames/sec. Σχετικά με τα devices πάνω στα οποία έγιναν οι μετρήσεις, έγινε προσπάθεια να επιλεγούν κάποια από τα πιο διαδεδομένα και ευρύτερα χρησιμοποιούμενα στην αγορά. Από την εταιρία Altera επιλέχθηκαν devices 2 οικογενειών, της Cyclone (συγκεκριμένα τα Cyclone III-EP3C5U256C7 και Cyclone IV GX-EP4CGX75CF23C7) και της Stratix (Stratix II - EP2S15F484C4 και Stratix V - 5SGXEA7K2F35C3). Από την εταιρία Xilinx επιλέχθηκαν devices επίσης 2 οικογενειών, της Spartan (συγκεκριμένα τα Spartan 3 - xc3s1000-5fg320 και Spartan 6 - xc6slx16-3csg324) και της Virtex (Virtex 5 - xc5vlx20y-2ff323 και Virtex 7 - xc7vx330t-2ffg1157). 5.3 Πειραματικά αποτελέσματα Οι πίνακες με τα συνολικά αποτελέσματα των μετρήσεων παρουσιάζονται παρακάτω ξεχωριστά για την κάθε εταιρία. 66

67 5.3.1 Υλοποίηση σε τεχνολογία Altera Πίνακας 3: Αποτελέσματα μετρήσεων για fpga της Αltera Παρατηρείται ότι η επιφάνεια μετράται από το εργαλείο της Altera σε Logic Cells για τα devices κατηγορίας Cyclone αλλά σε διαφορετικό μέγεθος (Combinational ALUTS και Dedicated Logic Registers) για αυτά της κατηγορίας Stratix. Αυτό είναι θέμα της εταιρίας η οποία επιλέγει να ορίσει τις μονάδες μέτρησης της όπως θέλει η ίδια. Το αποτέλεσμα είναι να μην υπάρχει ενιαία μονάδα μέτρησης της επιφάνειας ακόμα και στα devices της ίδιας εταιρίας κάτι που καθιστά την σύγκριση μη εφικτή. Σχετικά με το throughput, τα devices της εταιρίας Stratix εμφανίζουν μεγαλύτερο συγκριτικά με αυτά της Cyclone και ειδικά το Stratix V εμφανίζει Throughput ίσο με 2262 kmacroblocks/sec (το μεγαλύτερο που μετρήθηκε συνολικά και από τις δυο εταιρίες). Μεγαλύτερο throughput συνεπάγεται και καλύτερη απόδοση στην ποσότητα frames/sec. Εδώ παρατηρείται ότι η προυπόθεση για τουλάχιστον 50 frames/sec από τα devices της Stratix πιάνεται για όλες τις αναλύσεις, συμπεριλαμβανομένης και της Ultra HD. Από αυτά της Cyclone, το όριο ξεπερνιέται εύκολα για αναλύσεις μέχρι και Full HD, για την Ultra HD όμως παραβιάζεται, έστω και οριακά. Το γεγονός όμως ότι η απόδοση που επιτυγχάνεται δεν είναι πολύ κάτω από το όριο των 50 frames/sec συνεπάγεται ότι ακόμα και σε αυτήν την περίπτωση δεν θα ήταν απαγορευτική η παρακολούθηση βίντεο. Η διαφοροποίηση του throughput σε κάθε device φαίνεται αναλυτικά στο παρακάτω διάγραμμα: 67

68 2500,0 Throughput(kMblocks/sec) 2262,1 2000,0 1822,9 1500,0 1459,9 1515,6 1000,0 500,0 0,0 Cyclone III Cyclone IV Stratix II Stratix V Σχήμα 5.3.1: Συγκριτικό διάγραμμα τoυ throughput των fpga της Altera Υλοποίηση σε τεχνολογία Xilinx Πίνακας 4: Αποτελέσματα μετρήσεων για fpga της Αltera To εργαλείο της Xilinx με το οποίο πραγματοποιήθηκαν οι μετρήσεις (Ise 13.4) χρησιμοποιεί για την μέτρηση της επιφάνειας την μονάδα "occupied slices". Επίσης, εμφανίζεται το συνολικό ποσοστό που καταλαμβάνει η σχεδίαση πάνω στο fpga. Παρατηρείται ότι με εξαίρεση το Spartan 3 το οποίο εμφανίζεται να καταλαμβάνει σχεδόν διπλάσια επιφάνεια, τα υπόλοιπα devices έχουν παρόμοια αποτελέσματα. Σχετικά με το ποσοστό πάνω στα fpga, οι μετρήσεις για το Virtex 7 δείχνουν ότι ο χώρος που πιάνει η σχεδίαση είναι σχεδόν αμελητέος (περίπου 1%) σε αντίθεση με αυτό που μετράται στα 68

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

ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ. Κωδικοποίηση εικόνας ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ 2 Κωδικοποίηση εικόνας Ακολουθία από ψηφιοποιημένα καρέ (frames) που έχουν συλληφθεί σε συγκεκριμένο ρυθμό frame rate (π.χ. 10fps,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κωδικοποίηση βίντεο (H.261 / DVI) Κωδικοποίηση βίντεο (H.261 / DVI) Αρχές κωδικοποίησης βίντεο Εισαγωγή στο H.261 Κωδικοποίηση βίντεο Ροή δεδοµένων Εισαγωγή στο DVI Κωδικοποίηση ήχου και εικόνων Κωδικοποίηση βίντεο Ροή δεδοµένων Τεχνολογία

Διαβάστε περισσότερα

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

Συµπίεση Εικόνας: Το πρότυπο JPEG ΒΕΣ : Συµπίεση και Μετάδοση Πολυµέσων ΒΕΣ Συµπίεση και Μετάδοση Πολυµέσων Συµπίεση Εικόνας: Το πρότυπο JPEG ΒΕΣ : Συµπίεση και Μετάδοση Πολυµέσων Εισαγωγή Σχεδιάστηκε από την οµάδα Joint Photographic Experts

Διαβάστε περισσότερα

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο Πρόβλημα ο Ασκήσεις Φροντιστηρίου 5 o Φροντιστήριο Δίνεται το παρακάτω σύνολο εκπαίδευσης: # Είσοδος Κατηγορία 0 0 0 Α 2 0 0 Α 0 Β 4 0 0 Α 5 0 Β 6 0 0 Α 7 0 Β 8 Β α) Στον παρακάτω κύβο τοποθετείστε τα

Διαβάστε περισσότερα

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

Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2013-2014 JPEG 2000 Δρ. Ν. Π. Σγούρος 2 JPEG 2000 Βασικά χαρακτηριστικά Επιτρέπει συμπίεση σε εξαιρετικά χαμηλούς ρυθμούς όπου η συμπίεση με το JPEG εισάγει μεγάλες παραμορφώσεις Ενσωμάτωση

Διαβάστε περισσότερα

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

MPEG-4: Βασικά Χαρακτηριστικά MPEG-4 MPEG-4: Βασικά Χαρακτηριστικά Σχεδιάστηκε ώστε να καλύπτει ευρύ φάσμα ρυθμών, από 5 kbps εώς 10 Mbps Εκτός από τη συμπίεση δίνει έμφαση και στην αλληλεπίδραση με το χρήστη Χρησιμοποιεί αντικείμενα

Διαβάστε περισσότερα

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

Ψηφιακή Επεξεργασία Εικόνας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Εικόνας Ενότητα 6 : Κωδικοποίηση & Συμπίεση εικόνας Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Group (JPEG) το 1992.

Group (JPEG) το 1992. Μέθοδοι Συμπίεσης Εικόνας Πρωτόκολλο JPEG Συμπίεση Εικόνας: Μείωση αποθηκευτικού χώρου Ευκολία στη μεταφορά αρχείων Δημιουργήθηκε από την ομάδα Joint Photographic Experts Group (JPEG) το 1992. Ονομάστηκε

Διαβάστε περισσότερα

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

χωρίςναδηµιουργείταιαίσθησηαπώλειαςτηςποιότηταςτηςανακατασκευασµένηςεικόνας. Το πρότυπο JPEG για κωδικοποίησηση εικόνας Το JPEG, που υιοθετήθηκε από την Joint Photographic Experts Group, είναι ένα πρότυπο που χρησιµοποιείταιευρέωςγιατησυµπίεσηακίνητωνεικόνων, µε µέσο λόγο συµπίεσης

Διαβάστε περισσότερα

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

Συστήµατα και Αλγόριθµοι Πολυµέσων Συστήµατα και Αλγόριθµοι Πολυµέσων Ιωάννης Χαρ. Κατσαβουνίδης Οµιλία #12: Αρχιτεκτονική Texas Instruments OMAP (διπλού πυρήνα ARM + DSP) και Intel XScale 29 Νοεµβρίου 2005 Επανάληψη ιεθνές στάνταρ H.264/MPEG4-10/AVC

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Αλέξανδρος Ελευθεριάδης Αναπ. Καθηγητής & Marie Curie Chair Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών eleft@di.uoa.gr,

Διαβάστε περισσότερα

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

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Αλέξανδρος Ελευθεριάδης Αναπ. Καθηγητής & Marie Curie Chair Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών eleft@di.uoa.gr,

Διαβάστε περισσότερα

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

Ακαδηµαϊκό Έτος , Χειµερινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ, ΤΜΗΜΑ Ι ΑΚΤΙΚΗΣ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΨΣ 50: ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ακαδηµαϊκό Έτος 005 006, Χειµερινό Εξάµηνο Καθ.: Νίκος Τσαπατσούλης ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ Η εξέταση

Διαβάστε περισσότερα

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

Τμήμα Μηχανικών Η/Υ και Πληροφορικής Τμήμα Μηχανικών Η/Υ και Πληροφορικής Εργαστήριο Επεξεργασίας Σημάτων και Τηλεπικοινωνιών Ασύρματες και Κινητές Επικοινωνίες Κωδικοποίηση καναλιού Τι θα δούμε στο μάθημα Σύντομη εισαγωγή Γραμμικοί κώδικες

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 4: ΣΥΣΤΗΜΑΤΑ ΠΟΛΥΜΕΣΩΝ Ακαδηµαϊκό Έτος 004 005, Χειµερινό Εξάµηνο Καθ.: Νίκος Τσαπατσούλης ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ Η εξέταση αποτελείται από δύο µέρη. Το πρώτο περιλαµβάνει

Διαβάστε περισσότερα

Συνδυαστικά Λογικά Κυκλώματα

Συνδυαστικά Λογικά Κυκλώματα Συνδυαστικά Λογικά Κυκλώματα Ένα συνδυαστικό λογικό κύκλωμα συντίθεται από λογικές πύλες, δέχεται εισόδους και παράγει μία ή περισσότερες εξόδους. Στα συνδυαστικά λογικά κυκλώματα οι έξοδοι σε κάθε χρονική

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ Χριστοδούλου Αντρέας Λεμεσός 2014 2 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Διαβάστε περισσότερα

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

MPEG-4 : Διαδραστικές εφαρμογές πολυμέσων MPEG-4 : Διαδραστικές εφαρμογές πολυμέσων Συμπίεση οπτικοακουστικών δεδομένων για το Διαδίκτυο Οπτικοί δίσκοι Ψηφιακή τηλεόραση (επίγεια, δορυφορική) Συμβατότητα με MPEG-1 και MPEG-2 Συνθετική σκηνή Εισαγωγή

Διαβάστε περισσότερα

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

Συµπίεση Ψηφιακών Εικόνων: Συµπίεση µε Απώλειες. Πρότυπα Συµπίεσης Εικόνων ΤΨΣ 5: Ψηφιακή Επεξεργασία Εικόνας ΤΨΣ 5 Ψηφιακή Επεξεργασία Εικόνας Συµπίεση Ψηφιακών Εικόνων: Συµπίεση µε απώλειες Πρότυπα Συµπίεσης Εικόνων Τµήµα ιδακτικής της Τεχνολογίας και Ψηφιακών Συστηµάτων Πανεπιστήµιο

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή διατριβή. Ονοματεπώνυμο: Αργυρώ Ιωάννου. Επιβλέπων καθηγητής: Δρ. Αντρέας Χαραλάμπους

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κωδικοποίηση βίντεο (MPEG) (MEG) Εισαγωγή στο MEG-1 Κωδικοποίηση βίντεο οµή βίντεο Κωδικοποίηση ήχου Ροή δεδοµένων Τεχνολογία Πολυµέσων 11-1 Εισαγωγή στο MEG-1 MEG (Motion ictures Experts Group) ίντεο και ήχος υψηλής ποιότητας ιανοµή

Διαβάστε περισσότερα

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

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων 1 2.1 Τύποι Δεδομένων Τα δεδομένα σήμερα συναντώνται σε διάφορες μορφές, στις οποίες περιλαμβάνονται αριθμοί,

Διαβάστε περισσότερα

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

Δ10. Συμπίεση Δεδομένων Συμπίεση Δεδομένων 203-204 Κωδικοποίηση εικονοροής (Video) Δρ. Ν. Π. Σγούρος 2 Ανάλυση Οθονών Δρ. Ν. Π. Σγούρος 3 Πρωτόκολλα μετάδοσης εικονοροών Πρωτόκολλο Ρυθμός (Hz) Φίλμ 23.976 ATSC 24 PAL,DVB-SD,DVB-HD

Διαβάστε περισσότερα

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

Τεχνικές Συµπίεσης Βίντεο. Δρ. Μαρία Κοζύρη Τµήµα Πληροφορικής Πανεπιστήµιο Θεσσαλίας Τεχνικές Συµπίεσης Βίντεο Δρ. Μαρία Κοζύρη Τµήµα Πληροφορικής Πανεπιστήµιο Θεσσαλίας Ενότητα 3: Entropy Coding Δρ. Μαρία Κοζύρη Τεχνικές Συµπίεσης Βίντεο Ενότητα 3 2 Θεωρία Πληροφορίας Κωδικοποίηση Θεµελιώθηκε

Διαβάστε περισσότερα

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

Πολυμέσα. Συμπίεση δεδομένων Κωδικοποίηση JPEG. Δρ. Γεώργιος Π. Παυλίδης ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ Πολυμέσα Συμπίεση δεδομένων Δρ. Γεώργιος Π. Παυλίδης Συμπίεση Δεδομένων Περιεχόμενα Γνωστοίαλγόριθμοισυμπίεσης JPEG, Οικογένεια H.26x, H.32x Χρησιμοποίηση Εφαρμογές Εκμάθηση Σχεδίαση Διασύνδεση χρήστη

Διαβάστε περισσότερα

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

Ραδιοτηλεοπτικά Συστήματα Ενότητα 4: Ψηφιοποίηση και συμπίεση σημάτων εικόνας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ραδιοτηλεοπτικά Συστήματα Ενότητα 4: Ψηφιοποίηση και συμπίεση σημάτων εικόνας Δρ. Νικόλαος- Αλέξανδρος Τάτλας Τμήμα Ηλεκτρονικών

Διαβάστε περισσότερα

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

ITU-T : H.261 (1990), H.262 (1996), H.263 (1995) MPEG-1, MPEG-2, MPEG-4. Αποθήκευση, Μετάδοση, Επικοινωνίες, ίκτυα Συµπίεση/κωδικοποίηση βίντεο ITU-T : H.261 (1990), H.262 (1996), H.263 (1995) Συνδιάσκεψη : ISDN, ATM, LANs, Internet, PSTN MPEG-1, MPEG-2, MPEG-4 Αποθήκευση, Μετάδοση, Επικοινωνίες, ίκτυα 1 H.261 : εισαγωγή

Διαβάστε περισσότερα

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

Τεράστιες ανάγκες σε αποθηκευτικό χώρο ΣΥΜΠΙΕΣΗ Τεράστιες ανάγκες σε αποθηκευτικό χώρο Παράδειγμα: CD-ROM έχει χωρητικότητα 650MB, χωρά 75 λεπτά ασυμπίεστου στερεοφωνικού ήχου, αλλά 30 sec ασυμπίεστου βίντεο. Μαγνητικοί δίσκοι χωρητικότητας

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

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

MPEG-4: Διαδραστικές εφαρμογές πολυμέσων MPEG-4: Διαδραστικές εφαρμογές πολυμέσων Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών http://www.csd.uoc.gr/~tziritas Άνοιξη 2016 1 Εισαγωγή Δημοσίευση 1998 (Intern. Telecom. Union) Επικοινωνίες με πολυμέσα,

Διαβάστε περισσότερα

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

Ψηφιακή Επεξεργασία Εικόνας ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ψηφιακή Επεξεργασία Εικόνας Ενότητα 9 : Κωδικοποίηση βίντεο Πρότυπο συμπίεσης MPEG Ιωάννης Έλληνας Τμήμα Η/ΥΣ Άδειες Χρήσης Το

Διαβάστε περισσότερα

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

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή 6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή Εισαγωγή Η σχεδίαση ενός ψηφιακού συστήµατος ως ακολουθιακή µηχανή είναι εξαιρετικά δύσκολη Τµηµατοποίηση σε υποσυστήµατα µε δοµικές µονάδες:

Διαβάστε περισσότερα

ΠΡΟΣΤΑΣΙΑ ΑΤΜΟΣΦΑΙΡΙΚΗΣ ΔΙΑΒΡΩΣΗΣ ΑΛΟΥΜΙΝΙΟΥ/ΑΝΟΔΙΩΣΗ Al

ΠΡΟΣΤΑΣΙΑ ΑΤΜΟΣΦΑΙΡΙΚΗΣ ΔΙΑΒΡΩΣΗΣ ΑΛΟΥΜΙΝΙΟΥ/ΑΝΟΔΙΩΣΗ Al Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΠΡΟΣΤΑΣΙΑ ΑΤΜΟΣΦΑΙΡΙΚΗΣ ΔΙΑΒΡΩΣΗΣ ΑΛΟΥΜΙΝΙΟΥ/ΑΝΟΔΙΩΣΗ Al Ανδρέας Παπαχριστοδούλου Λεμεσός, Μάιος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ

Διαβάστε περισσότερα

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

Η ανάγκη για συμπίεση Πρότυπα συμπίεσης Η ανάγκη για συμπίεση High-Definition Television (HDTV) 1920x1080 30 frames per second (full motion) 8 bits για κάθε κανάλι χρώματος 1.5 Gb/sec! Κάθε κανάλι 6 MHz Max data rate: 19.2

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016 2017 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

Διαβάστε περισσότερα

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis)

Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η ΜΕΘΟΔΟΣ PCA (Principle Component Analysis) Η μέθοδος PCA (Ανάλυση Κύριων Συνιστωσών), αποτελεί μία γραμμική μέθοδο συμπίεσης Δεδομένων η οποία συνίσταται από τον επαναπροσδιορισμό των συντεταγμένων ενός

Διαβάστε περισσότερα

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

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ Ενότητα # 7: Εφαρμογές με δυνατότητα προσαρμογής μετάδοσης Καθηγητής Χρήστος Ι. Μπούρας Τμήμα Μηχανικών Η/Υ & Πληροφορικής, Πανεπιστήμιο Πατρών email: bouras@cti.gr,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #2: Αναπαράσταση δεδομένων Αβεβαιότητα και Ακρίβεια Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Αναπαράσταση δεδομένων (Data Representation), Αβεβαιότητα

Διαβάστε περισσότερα

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΕΡΩΤΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ

Διαβάστε περισσότερα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ψηφιακή Σχεδίαση Ενότητα 9: Ελαχιστοποίηση και Κωδικοποίηση Καταστάσεων, Σχεδίαση με D flip-flop, Σχεδίαση με JK flip-flop, Σχεδίαση με T flip-flop Δρ. Μηνάς

Διαβάστε περισσότερα

Σχολή Διοίκησης και Οικονομίας. Μεταπτυχιακή διατριβή

Σχολή Διοίκησης και Οικονομίας. Μεταπτυχιακή διατριβή Σχολή Διοίκησης και Οικονομίας Μεταπτυχιακή διατριβή Samsung και Apple: Αναλύοντας τη χρηματοοικονομική πληροφόρηση των ηγετών της τεχνολογίας και η επίδραση των εξωτερικών και ενδοεπιχειρησιακών παραγόντων

Διαβάστε περισσότερα

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

ΕΙΔΗ ΠΛΑΙΣΙΩΝ Ενδο-πλαισιακή κωδικοποίηση (Intra- frame Coding): Δια-πλαισιακή κωδικοποίηση (Inter-frame Coding): ΕΙΔΗ ΠΛΑΙΣΙΩΝ Ενδο-πλαισιακή κωδικοποίηση (Intraframe Coding): κάθε εικόνα αντιμετωπίζεται και κωδικοποιείται ανεξάρτητα από τις υπόλοιπες (όπως στο JPEG) Δια-πλαισιακή κωδικοποίηση (Inter-frame Coding):

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Συμπίεση Πολυμεσικών Δεδομένων Συμπίεση Πολυμεσικών Δεδομένων Εισαγωγή στο πρόβλημα και επιλεγμένες εφαρμογές Παράδειγμα 2: Συμπίεση Εικόνας ΔΠΜΣ ΜΥΑ, Ιούνιος 2011 Εισαγωγή (1) Οι τεχνικές συμπίεσης βασίζονται στην απόρριψη της πλεονάζουσας

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

8. Σύνθεση και ανάλυση δυνάμεων

8. Σύνθεση και ανάλυση δυνάμεων 8. Σύνθεση και ανάλυση δυνάμεων Βασική θεωρία Σύνθεση δυνάμεων Συνισταμένη Σύνθεση δυνάμεων είναι η διαδικασία με την οποία προσπαθούμε να προσδιορίσουμε τη δύναμη εκείνη που προκαλεί τα ίδια αποτελέσματα

Διαβάστε περισσότερα

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

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

Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Συµπίεση Δεδοµένων: Συµπίεση Ψηφιακού Βίντεο Αλέξανδρος Ελευθεριάδης Αναπ. Καθηγητής & Marie Curie Chair Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών eleft@di.uoa.gr,

Διαβάστε περισσότερα

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

DIP_06 Συμπίεση εικόνας - JPEG. ΤΕΙ Κρήτης DIP_06 Συμπίεση εικόνας - JPEG ΤΕΙ Κρήτης Συμπίεση εικόνας Το μέγεθος μιας εικόνας είναι πολύ μεγάλο π.χ. Εικόνα μεγέθους Α4 δημιουργημένη από ένα σαρωτή με 300 pixels ανά ίντσα και με χρήση του RGB μοντέλου

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή εργασία ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΔΕΙΚΤΩΝ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ ΣΤΑ ΑΝΤΛΙΟΣΤΑΣΙΑ ΤΟΥ ΤΜΗΜΑΤΟΣ ΑΝΑΠΤΥΞΕΩΣ ΥΔΑΤΩΝ Γεωργίου

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή Εργασία. Κόπωση και ποιότητα ζωής ασθενών με καρκίνο.

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ. Πτυχιακή Εργασία. Κόπωση και ποιότητα ζωής ασθενών με καρκίνο. ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή Εργασία Κόπωση και ποιότητα ζωής ασθενών με καρκίνο Μαργαρίτα Μάου Λευκωσία 2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ ΤΜΗΜΑ

Διαβάστε περισσότερα

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία Φοιτητής:

Διαβάστε περισσότερα

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πανεπιστήμιο Πατρών Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Εργαστήριο Σχεδίασης Ολοκληρωμένων Κυκλωμάτων Σχεδιασμός Ολοκληρωμένων Συστημάτων με τεχνικές VLSI Χειμερινό Εξάμηνο 2015 FSM

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ 1) Το παρακάτω κύκλωμα του σχήματος 1 είναι ένας καταχωρητής-ολισθητής

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ Δίκτυα Μετάδοσης Δεδομένων Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές Γενικά Διδάσκουσα: Ελένη Αικατερίνη Λελίγκου Γραφείο ΖΑ202. Ε-mail:

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Ψηφιακά Ηλεκτρονικά Τεχνολογία ΙΙ, Θεωρητικής Κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

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

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

Διαβάστε περισσότερα

Πολυμέσα πάνω από κινητά δίκτυα

Πολυμέσα πάνω από κινητά δίκτυα Πολυμέσα πάνω από κινητά δίκτυα Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών http://www.csd.uoc.gr/~tziritas Άνοιξη 2016 1 Πολυμέσα σε ασύρματα δίκτυα Οι πολυμεσικές επικοινωνίες μέσω φορητών συσκευών

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Χ. Βέργος Καθηγητής

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ Χ. Βέργος Καθηγητής ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013 2014 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σηµμάτων

Ψηφιακή Επεξεργασία Σηµμάτων Ψηφιακή Επεξεργασία Σηµμάτων Διάλεξη 3: DSP for Audio ΚΩΔΙΚΟΠΟΙΗΣΗ ΚΑΙ ΣΥΜΠΙΕΣΗ ΗΧΗΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΤΟ ΠΡΟΤΥΠΟ ISO/IEC 11172-3 MPEG-1 Δρ. Θωµμάς Ζαρούχας Επιστηµμονικός Συνεργάτης Μεταπτυχιακό Πρόγραµμµμα:

Διαβάστε περισσότερα

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική

Διαβάστε περισσότερα

2 Η ΠΡΟΟΔΟΣ. Ενδεικτικές λύσεις κάποιων προβλημάτων. Τα νούμερα στις ασκήσεις είναι ΤΥΧΑΙΑ και ΟΧΙ αυτά της εξέταση

2 Η ΠΡΟΟΔΟΣ. Ενδεικτικές λύσεις κάποιων προβλημάτων. Τα νούμερα στις ασκήσεις είναι ΤΥΧΑΙΑ και ΟΧΙ αυτά της εξέταση 2 Η ΠΡΟΟΔΟΣ Ενδεικτικές λύσεις κάποιων προβλημάτων Τα νούμερα στις ασκήσεις είναι ΤΥΧΑΙΑ και ΟΧΙ αυτά της εξέταση Ένας τροχός εκκινεί από την ηρεμία και επιταχύνει με γωνιακή ταχύτητα που δίνεται από την,

Διαβάστε περισσότερα

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

Δ11 Δ12. Συμπίεση Δεδομένων Συμπίεση Δεδομένων 2013-2014 Κωδικοποιητές εικονοροής (Video) Δρ. Ν. Π. Σγούρος 2 Κωδικοποιητές Εικονοροών ITU-T VCEG H.261 (1990) ISO/IEC MPEG H.263 (1995/9 6) MPEG-2 (H.262) (1994/9 5) H.263+ (1997/98)

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Χρύσω Κωνσταντίνου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

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

ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ ΕΚΤΑΣΕΩΝ Σχολή Μηχανικής & Τεχνολογίας Τμήμα Πολιτικών & Μηχανικών Γεωπληροφορικής Μεταπτυχιακή διατριβή ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ

Διαβάστε περισσότερα

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

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ Σωτήρης Παύλου Λεμεσός, Μάιος 2018 i ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Διαβάστε περισσότερα

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

ΒΕΛΤΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΕΡΓΑΣΤΗΡΙΟΥ ΕΛΕΓΧΟΥ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΕΦΑΡΜΟΓΗ ΕΡΓΑΛΕΙΩΝ ΔΙΑΣΦΑΛΙΣΗΣ ΠΟΙΟΤΗΤΑΣ ΣΕ ΜΕΤΑΛΛΟΒΙΟΜΗΧΑΝΙΑ Σχολή Mηχανικής και Τεχνολογίας Πτυχιακή εργασία ΒΕΛΤΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΕΡΓΑΣΤΗΡΙΟΥ ΕΛΕΓΧΟΥ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΕΦΑΡΜΟΓΗ ΕΡΓΑΛΕΙΩΝ ΔΙΑΣΦΑΛΙΣΗΣ ΠΟΙΟΤΗΤΑΣ ΣΕ ΜΕΤΑΛΛΟΒΙΟΜΗΧΑΝΙΑ Στέλιος Καράσαββας Λεμεσός, Μάιος 2017

Διαβάστε περισσότερα

Μάθημα: Μηχανική Όραση

Μάθημα: Μηχανική Όραση Μάθημα: Μηχανική Όραση Εργασία 2: Advances in Digital Imaging and Computer Vision Ομάδα χρηστών 2 : Τσαγκαράκης Νίκος, Καραμήτρος Κώστας Εισαγωγή Σκοπός της άσκησης, είναι να εξοικειωθούμε με κάποιες βασικές

Διαβάστε περισσότερα

PLD. Εισαγωγή. 5 η Θεµατική Ενότητα : Συνδυαστικά. PLAs. PLDs FPGAs

PLD. Εισαγωγή. 5 η Θεµατική Ενότητα : Συνδυαστικά. PLAs. PLDs FPGAs 5 η Θεµατική Ενότητα : Συνδυαστικά Κυκλώµατα µε MSI και Εισαγωγή Οι προγραµµατιζόµενες διατάξεις είναι ολοκληρωµένα µε εσωτερικές πύλες οι οποίες µπορούν να υλοποιήσουν οποιαδήποτε συνάρτηση αν υποστούν

Διαβάστε περισσότερα

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.

Διαβάστε περισσότερα

Γιώργος Τζιρίτας Τµήµα Επιστήµης Υπολογιστών http://www.csd.uoc.gr/~tziritas

Γιώργος Τζιρίτας Τµήµα Επιστήµης Υπολογιστών http://www.csd.uoc.gr/~tziritas Συµπίεση/κωδικοποίηση βίντεο Γιώργος Τζιρίτας Τµήµα Επιστήµης Υπολογιστών http://www.csd.uoc.gr/~tziritas Άνοιξη 2009 1 Εφαρµογή Απαίτηση Παρα- µόρφωση Μετάδοση Πρότυπο ικτυακό βίντεο 1,5 Mbps Υψηλή Internet

Διαβάστε περισσότερα

ΕΡΓΑΣΙΕΣ 4 ου ΚΕΦΑΛΑΙΟΥ. 1 η Ομάδα: Ερωτήσεις πολλαπλής επιλογής

ΕΡΓΑΣΙΕΣ 4 ου ΚΕΦΑΛΑΙΟΥ. 1 η Ομάδα: Ερωτήσεις πολλαπλής επιλογής ΕΡΓΑΣΙΕΣ 4 ου ΚΕΦΑΛΑΙΟΥ 1 η Ομάδα: Ερωτήσεις πολλαπλής επιλογής 1. Σύμφωνα με το νόμο της προσφοράς: α) Η προσφερόμενη ποσότητα ενός αγαθού αυξάνεται όταν μειώνεται η τιμή του στην αγορά β) Η προσφερόμενη

Διαβάστε περισσότερα

Αλλαγεές και βελτιωέ σεις στην εέκδοση 1.50

Αλλαγεές και βελτιωέ σεις στην εέκδοση 1.50 Αλλαγεές και βελτιωέ σεις στην εέκδοση 1.50 Στο παρόν έγγραφο καταγράφονται οι βελτιώσεις και οι νέες εντολές που ενσωματώνονται στην έκδοση 1.50 των Οπλισμών. Βελτιώσεις Σχεδίαση οπλισμών Έχει βελτιωθεί

Διαβάστε περισσότερα

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6. ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.3) ΧΑΡΗΣ ΘΕΟΧΑΡΙΔΗΣ Επίκουρος Καθηγητής, ΗΜΜΥ (ttheocharides@ucy.ac.cy)

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) 3.1. ΣΚΟΠΟΣ ΑΣΚΗΣΗΣ Σκοπός της εργαστηριακής αυτής άσκησης είναι η μελέτη της παλμοκωδικής διαμόρφωσης που χρησιμοποιείται στα σύγχρονα τηλεπικοινωνιακά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ο μετασχηματισμός wavelet (Discrete Wavelet Transform, DWT) έχει χρησιμοποιηθεί με επιτυχία στη συμπίεση εικόνας6

Ο μετασχηματισμός wavelet (Discrete Wavelet Transform, DWT) έχει χρησιμοποιηθεί με επιτυχία στη συμπίεση εικόνας6 ΣΥΜΠΙΕΣΗ BINTEO ΜΕ WAVELETS) Ο μετασχηματισμός wavelet (Discrete Wavelet Transorm DWT) έχει χρησιμοποιηθεί με επιτυχία στη συμπίεση εικόνας6 Αλγόριθμοι EZW SPIHT και JPEG-0006 Ο DWT έχει καλύτερη απόδοση

Διαβάστε περισσότερα

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

5.1 Θεωρητική εισαγωγή ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 5 ΚΩ ΙΚΟΠΟΙΗΣΗ BCD Σκοπός: Η κατανόηση της µετατροπής ενός τύπου δυαδικής πληροφορίας σε άλλον (κωδικοποίηση/αποκωδικοποίηση) µε τη µελέτη της κωδικοποίησης BCD

Διαβάστε περισσότερα

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα