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

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

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

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

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

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

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

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

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

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

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

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 18

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

Βασικές Έννοιες της Πληροφορικής

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

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

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

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

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

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

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

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

24-Μαρ-2009 ΗΜΥ Φίλτρα απόκρισης πεπερασμένου παλμού (FIR)

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

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

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

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

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

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

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

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

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

12/5/18. Αποτίµηση του υποσυστήµατος CPU. Κεφάλαιο 6. Κατανόηση και εκτίμηση του υλικού: Αποτιμήστε το σύστημά σας. Στόχοι

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Ηλεκτρονικός Υπολογιστής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λογικός Σχεδιασµός και Σχεδιασµός Η/Υ. ΗΜΥ-210: Εαρινό Εξάµηνο Σκοπός του µαθήµατος. Ψηφιακά Συστήµατα. Περίληψη. Εύρος Τάσης (Voltage(

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

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

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

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

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

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

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

Προγραμματισμός Ι (HY120)

Βασική δοµή και Λειτουργία Υπολογιστή

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

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

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

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

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

Ήχος και φωνή. Τεχνολογία Πολυµέσων 04-1

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Αναπαράσταση Μη Αριθμητικών Δεδομένων

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

! Δεδομένα: ανεξάρτητα από τύπο και προέλευση, στον υπολογιστή υπάρχουν σε μία μορφή: 0 και 1

Αφήγηση Μαρτυρία. Μουσική. Ενίσχυση μηνύματος Μουσική επένδυση Ηχητικά εφέ

Εφαρμογές που συνδυάζουν ταυτόχρονα πολλαπλά μέσα : Κί Κείμενο, Εικόνα, Ήχος, Video, Animation. Στα υπερμέσα η πρόσπέλαση της πληροφορίας γίνεται

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

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

Οργάνωση Υπολογιστών (IΙI)

Group (JPEG) το 1992.

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

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

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

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

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

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

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

Μαλούτα Θεανώ Σελίδα 1

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Transcript:

Συστήµατα και Αλγόριθµοι Πολυµέσων Ιωάννης Χαρ. Κατσαβουνίδης Οµιλία #6: Αρχές Βελτιστοποίησης Λογισµικού Πολυµέσων 8 Νοεµβρίου 2005

Επανάληψη Θεωρία Πληροφορίας Αριθµητική Κωδικοποίηση CABAC Θεωρία ρυθµού µετάδοσης µείωσης ποιότητας Προ- και Μετά-επεξεργασία πολυµεσικών σηµάτων Αλλαγή συστήµατος συντεταγµένων χρώµατος ιασπορά σφάλµατος κβαντοποίησης (dithering) Βίντεο εναλλασόµενων/διαδοχικών γραµµών

Επανάληψη (2) Προ- και Μετά-επεξεργασία πολυµεσικών σηµάτων Αλλαγή φωτεινότητας/χρώµατος και υφής σήµατος βίντεο Φιλτράρισµα ασυνεχειών στα όρια τετραγώνων συµπίεσης (de-blocking, de-ringing) Αλλαγή αριθµού καναλιών ήχου (mono-stereo, Dolby 5.1-stereo) Αλλαγή ρυθµού αναπαραγωγής χωρίς αλλαγή συχνότητας ήχου ( time-stretching )

Άσκηση #6 Να µετατρέψετε το 1οκαρέτουsrc14 από το σύστηµα συντεταγµένων YUV σε RGB, απεικονίζοντας τις τιµές RGB µε 8 bits και µετά να το επαναφέρετε στο σύστηµαυuv. Ποιο είναι το µέσο σφάλµα κατά τη µετατροπή? Να επαναλάβετε την µετατροπή απεικονίζοντας τις τιµές RGB µε 4 bits. Στη συνέχεια να εισάγετε διατεταγµένη διασπορά σφάλµατος D 4. Παραδώστε τα αρχεία εξόδου (.YUV)

Βασικές τεχνικές (αρχές) επεξεργασίας πολυµέσων ειγµατοληψία Κβαντοποίηση Μετασχηµατισµοί Θεωρία Πληροφορίας Προ- και Μετά-επεξεργασία επεξεργασία πολυµεσικών σηµάτων

Πειραµατική µέτρηση απόδοσης και βελτιστοποίηση λογισµικού Οι αλγόριθµοι πολυµέσων είναι πολύπλοκοι υπολογιστικά Το βίντεο αποτελεί µια από τις πιο απαιτητικές εφαρµογές λογισµικού Υψηλοί ρυθµοί πρόσβασης µνήµης, δικτύου και αποθηκευτικών συσκευών Μεγάλες ποσότητες υπολογισµών ανά δευτερόλεπτο Υψηλές απαιτήσεις πιστότητας εικόνας και ήχου Μεγάλη απήχηση στο ευρύ κοινό

Υπολογισµός πολυπλοκότητας Παράδειγµα: αποκωδικοποίηση βίντεο MPEG2, διαστάσεων W(width) x H(height) x f(frames/sec) x B (bitrate bps) Το πρώτο στάδιο της αποκωδικοποίησης Huffman απαιτεί 1 getbits(1) για κάθε bit. Ησυνάρτηση getbits(1) χρειάζεται 1 AND + 1 SHIFT => B*2 ops/sec Το δεύτερο στάδιο της αντίστροφης κβαντοποίησης απαιτεί 1 πολλαπλασιασµό για κάθε συντελεστή DCT, συνεπώς W*H*f*1.5 ops/sec

Υπολογισµός πολυπλοκότητας (2) Αποκωδικοποίηση βίντεο MPEG2, διαστάσεων W(width) x H(height) x f(frames/sec) x B (bitrate bps) συνέχεια Το τρίτο στάδιο είναι το IDCT, το οποίο απαιτεί log2(8) + log2(8) = 6 ops/sec για κάθε pixel => W*H*1.5*f*6 = 9*W*H*f ops/sec Το επόµενο στάδιο είναι ο υπολογισµός των pixels του πίνακα αναφοράς (παρεµβολή), το οποίο απαιτεί 0 (ακέραια pixels), 3 (παρεµβολή µόνο κατά τη µία κατεύθυνση) ή 6 (παρεµβολή κατά τις δύο κατευθύνσεις) πράξεις για κάθε pixel => 3 ops/sec για κάθε pixel => 4.5*W*H*f ops/sec Το τελευταίο στάδιο είναι η πρόσθεση των pixels του πίνακα αναφοράς µετιςτιµές εξόδου του IDCT, το οποίο απαιτεί 1 op/sec για κάθε pixel => W*H*1.5*f ops/sec

Υπολογισµός πολυπλοκότητας (3) Ηκάθεπράξη(operation) χρειάζεται πολλαπλούς κύκλους µηχανής, καθότι υπάρχει η καθυστέρηση λόγω µεταφοράς δεδοµένων από και προς τη µνήµη. Υποθέτοντας 4 κύκλους για κάθε πράξη, τότε έχουµε 8*B + 66*W*H*f cycles/sec DVD (720x480x30x8.0): 748M cycles/sec

Υπολογισµός πολυπλοκότητας (4) Στην περίπτωση της τηλεόρασης υψηλής ευκρίνειας (HDTV), ο ίδιος υπολογισµός δίνει ~ 4.5GHz Στην πράξη, τα πράγµατα είναι χειρότερα από τον προηγούµενο υπολογισµό, καθότι υπάρχει µεγάλο overhead Μεταφορά δεδοµένων από πίνακα σε πίνακα Καθυστέρηση λόγω πρόσβασης αποθηκευτικών µέσων (σκληρός δίσκος, οπτικός δίσκος) Μετα-επεξεργασία, όπως αλλαγή συστήµατος συντεταγµένων χρώµατος, επαναδειγµατοληψία κλπ.

Βελτιστοποίηση λογισµικού Είναι λοιπόν απαραίτητη η βελτιστοποίηση του λογισµικού πολυµέσων για να καταφέρουµε ναέχουµε τηµέγιστη δυνατή βάση εγκατάστασης της εφαρµογής µας WinDVD: αναπαραγωγή DVD χρησιµοποιώντας περίπου 200MHz Pentium-II

Βελτιστοποίηση λογισµικού (2) Τεχνικές βελτιστοποίησης Αλγοριθµικά, π.χ. ηχρήσηfdct αντί για τον ορισµό του (πολλαπλασιασµός πίνακα µε διάνυσµα) Μείωση στο ελάχιστο δυνατό της χρήσης µνήµης και µεγιστοποίηση της επανα-χρησιµοποίησης ενδιάµεσων αποτελεσµάτων σε καταχωρητές Χρήση εξειδικευµένων εντολών, όπως η οικογένεια των εντολών Μονή-Εντολή-Σε-Πολλαπλά- εδοµένα (SIMD MMX/SSE/SSE2) Χρήση επιπρόσθετου υλικού, όπως η κάρτα γραφικών, για την επιτάχυνση ορισµένων κοµµατιών του αλγόριθµου

Βελτιστοποίηση λογισµικού (3) Απαραίτητο βήµα για τη βελτιστοποίηση λογισµικού αποτελεί η συλλογή πειραµατικών δεδοµένων που να αντικατοπτρίζουν την πολυπλοκότητα της εφαρµογής στο σύστηµα τοοποίο επιθυµούµε νατρέξουµε τηνεφαρµογή µας. Το βήµααυτόλέγεται profiling

Βελτιστοποίηση λογισµικού (4) Τα εργαλεία που µας επιτρέπουν να κάνουµε profiling είναι διάφορα και εξαρτώνται τόσο από το σύστηµαπουχρησιµοποιούµε (PC/embedded device/asic) όσοκαιαπότολειτουργικό σύστηµα (Windows/Linux/u-Kernel) Το πιο δηµοφιλές εργαλείο για profiling σε περιβάλλον PC-Windows-Intel λέγεται Vtune και διατίθεται µέσω της εταιρίας Intel

Intel VTune Η πιο ανανεωµένη έκδοσή του (Νοεµ. 2005) είναι η 7.2 Επιτρέπει τη συλλογή πειραµατικών στοιχείων για την κατανόηση της πολυπλοκότητας οποιαδήποτε εφαρµογής Τρέχει σε λειτουργικά συστήµατα Windows και Linux Τρέχει σε όλους της µικρο-επεξεργαστές της Intel, δηλ. Pentium, Xscale, Itanium

Intel VTune (2) Έχει δύο βασικούς τρόπους συλλογής δεδοµένων ειγµατοληπτικά (Sampling) Εξουθενωτικά (Exhaustive call graph)

Intel VTune (3) ειγµατοληπτική συλλογή δεδοµένων µας επιτρέπει να γνωρίζουµεσεποιακοµµάτια της εφαρµογής µας «ξοδεύουµε» το µεγαλύτερο ποσοστό του χρόνου εκτέλεσης Εξουθενωτική συλλογή δεδοµένων µας επιτρέπει να γνωρίζουµε την ακριβή δοµήκαισχέσηµεταξύ κλητή (caller) και καλούµενης συνάρτησης (callee functions) µαζί µεακριβήαριθµόκλήσεων.

Intel VTune (4) Ηδειγµατοληπτική συλλογή βασίζεται στη στατιστική για την ακρίβεια των αποτελεσµάτων, χωρίς να αλλοιώνει την εκτέλεση του προγράµµατος. Η εξουθενωτική συλλογή είναι εξ ορισµού ακριβής, όµως αλλοιώνει κατά µεγάλο βαθµό την εκτέλεση της εφαρµογής µας εισάγοντας «ξένο» κοµµάτι κώδικα για τον αποκλειστικό σκοπό τη συλλογή της απαραίτητης πληροφορίας.

Εξουθενωτική συλλογή δεδοµένων εφαρµογών Συνήθως εφαρµόζεται στην αρχή της ανάπτυξης µιας εφαρµογής µε σκοπό Την κατανόηση του πηγαίου κώδικα Την κατανόηση της συχνότητας εκτέλεσης των διαφόρων συναρτήσεων του προγράµµατος Την κατανόηση της σχέσης καλούντος (caller) και κληθείσας (callee) συνάρτησης Την απόκτηση µιας πρώτης εικόνας της πολυπλοκότητας των διαφόρων συναρτήσεων

ειγµατοληπτική συλλογή δεδοµένων εφαρµογών Υπάρχουν 2 τρόποι δειγµατοληψίας Με τη βοήθεια του ρολογιού του συστήµατος Με τη βοήθεια εσωτερικών καταχωρητών/µετρητών του µικρο-επεξεργαστή Και οι δύο µέθοδοι χρησιµοποιούν interrupts Η συχνότητα του interrupt καθορίζεται από το χρήστη, όµως συνήθως είναι 1KHz (=1 δείγµα κάθε 1 msec)

ειγµατοληπτική συλλογή δεδοµένων εφαρµογών (2) Τα interrupts σταµατούν την εκτέλεση του προγράµµατός µας και αποθηκεύουν την τιµή του µετρητή εντολών προγράµµατος (PC) Αφού ολοκληρωθεί η εφαρµογή, ήεφόσονέχουµε συλλέξει αρκετά δείγµατα, οι τιµές του PC που έχουν αποθηκευτεί αντιστοιχίζονται στις διάφορες συναρτήσεις του προγράµµατος µετηβοήθεια κάποιας βάσης δεδοµένων (.pdb) Έτσι λοιπόν έχουµετηνκατανοµή του χρόνου εκτέλεσης στις διάφορες συναρτήσεις του προγράµµατος

ειγµατοληπτική συλλογή δεδοµένων εφαρµογών (3) Επιπλέον, µπορούµενααποκτήσουµε και την κατανοµή του χρόνου εκτέλεσης στις διάφορες εκτελέσιµες εντολές της κάθε συνάρτησης Κατ αυτό τον τρόπο, µπορούµε να επικεντρώσουµε τηνπροσοχήµας στα κοµµάτια του κώδικα που είναι υπεύθυνα για το µεγαλύτερο ποσοστό του χρόνου εκτέλεσης. Ξανα-γράφοντας τα κοµµάτια αυτά µπορούµε να πετύχουµε τηµέγιστη βελτίωση του χρόνου εκτέλεσης της εφαρµογής µας

ειγµατοληπτική συλλογή δεδοµένων εφαρµογών (4) Ηδιαδικασίααυτήεπαναλαµβάνεται κάθε φορά που έχουµε επιφέρει αλλαγές στον αλγόριθµο ή στην υλοποίησή του Γιαναεπιβεβαιώσουµε ότι οι αλλαγές είναι προς την σωστή κατεύθυνση Γιαναεπιλέξουµε από πιθανώς περισσότερων από µία εναλλακτικών λύσεων

ειγµατοληπτική συλλογή δεδοµένων εφαρµογών (5) Η χρήση του ρολογιού του συστήµατος είναι η πιο αντικειµενική για την αξιολόγηση της συνολικής πολυπλοκότητας (=χρόνος εκτέλεσης) των διάφορων συναρτήσεων του προγράµµατος Η χρήση των εσωτερικών καταχωρητών/µετρητών του µικρο-επεξεργαστή επιτρέπει να µελετήσουµε µε λεπτοµέρεια το λόγο της αυξηµένης πολυπλοκότητας, όπως Μεγάλος αριθµός εντολών Χρήση εντολών αυξηµένης πολυπλοκότητας Υπερβολική ή µη-βέλτιστη χρήση µνήµης

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών Οι περισσότεροι µικρο-επεξεργαστές γενικής χρήσης έχουν µια σειρά εσωτερικών καταχωρητών οι οποίοι δεν είναι διαθέσιµοι για γενικές εφαρµογές, παρά µόνο για την παρακολούθηση ορισµένων εσωτερικών σηµάτων, όπως Οαριθµός εντολών που εκτελέστηκαν Οαριθµός των εσωτερικών κύκλων ρολογιού Οαριθµός των προσπελάσεων εξωτερικής µνήµης µέσω της γρήγορης µνήµης cache

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών (2) Οι εσωτερικοί αυτοί καταχωρητές µπορούν να προγραµµατιστούν ως µετρητές αυτών των εσωτερικών σηµάτων Εν συνεχεία, µπορούµε ναπρογραµµατίσουµε ένα όριο για κάθε ένα από αυτούς τους µετρητές όταν η τιµήτου µετρητή φτάσει το όριο, δηµιουργείται µια διακοπή (interrupt), ηοποίασταµατά την κανονική εκτέλεση του προγράµµατος και οδηγείται στην εκτέλεση µιας ρουτίνας εξυπηρέτησης διακοπής (ISR) Στην περίπτωση του VΤune, αυτή η ρουτίνα απλά καταχωρεί την τιµήτουµετρητή προγράµµατος (PC)

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών (3) Οι πιο χρήσιµοι µετρητές είναι αυτοί των εσωτερικών κύκλων ρολογιού και του αριθµού των εκτελέσιµων εντολών Οπρωταρχικόςµας σκοπός είναι να µειώσουµε στο ελάχιστοδυνατότοναριθµό τωνκύκλωνρολογιού Συνήθως, µειώνοντας τον αριθµό τον εντολών, µειώνεται και ο αριθµός των κύκλων ρολογιού Εκτός αν χρησιµοποιούµε πολύπλοκες εντολές Ήέχουµε µεγάλη καθυστέρηση λόγω πρόσβασης µνήµης Ένας πολύ σηµαντικός δείκτης «ποιότητας» του κώδικα είναι ο λόγος εσωτερικών κύκλων ρολογιού του µικροεπεξεργαστή προς τον αριθµό τωνεκτελέσιµων εντολών (CPI)

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών (4) Πολύ σηµαντικός µετρητής είναι και αυτός του αριθµού των αποτυχιών εύρεσης δεδοµένων στην γρήγορη µνήµη (cache), το οποίο συνεπάγεται πρόσβαση της αργής εξωτερικής µνήµης του συστήµατος (RAM). Αυτός ο µετρητής ονοµάζεται L2 Cache Read Misses. Η ελαχιστοποίηση των προσπελάσεων αργής µνήµης είναι το «µυστικό» της βελτιστοποίησης λογισµικού πολυµέσων

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών (5) Γιαναυπολογιστείησωστήτιµήορίουτου µετρητή κατά τρόπο ώστε η συχνότητα δειγµατοληψίας να είναι η ζητούµενη (συνήθως 1KHz), το VΤune εκτελεί το πρόγραµµα 2 φορές Την πρώτη φορά απλά συλλέγει το συνολικό αριθµό των συµβάντων που επιθυµούµε να συλλέξουµε (π.χ. αριθµός εκτελέσιµων εντολών). Αυτή η πρώτη εκτέλεση λέγεται calibration run. ιαιρώντας το συνολικό αριθµό συµβάντων µε τον συνολικό χρόνο εκτέλεσης υπολογίζει ποιο πρέπει να είναι το όριο για τη δηµιουργία διακοπής (interrupt)

ειγµατοληπτική συλλογή µε χρήση εσωτερικών µετρητών (6) Για τη σωστή ερµηνεία των αποτελεσµάτων του VTune, πρέπει να δηµιουργήσουµε όλατα σύµβολα κατά τη διαδικασία µεταγλώττισης του πηγαίου κώδικα. Αυτό γίνεται µε την επιλογή του C/C++ -> General -> Debug Information Format/Program database (/Zi) στον περιβάλλον Microsoft.NET 2003 Επίσης πρέπει να ενεργοποιήσουµε τηναντίστοιχη επιλογή στο Linker -> Debugging -> Generate Debug Ingo/Yes (/DEBUG) καθώς και να εισάγουµε /fixed:no στο Linker -> Command Line -> Additional Options

Άσκηση Να µεταφέρετε το πρόγραµµα αναφοράς αποκωδικοποίησης βίντεο MPEG2 ( MPEG2DEC ) σε περιβάλλον Windows/.NET 2003 Να µετατρέψετε την έξοδο του προγράµµατος κατά τρόπο που να δηµιουργεί ένα ενιαίο αρχείο εξόδου.yuv Να επιτρέψετε την εκτέλεση του προγράµµατος τόσο µε δηµιουργία αρχείου εξόδου (π.χ. Με τη χορήγηση των παραµέτρων -b Dantes_2_00M_cut.m2v -f -g -o0 Dantes_2_00M_cut.yuv ), όσο και χωρίς τη δηµιουργία αρχείου εξόδου Νααναφέρετετοσυνολικόαριθµό καρέπου αποκωδικοποιήθηκαν, το χρόνο εκτέλεσης και την ταχύτητα αποκωδικοποίησης (frames per sec, fps)

Άσκηση (συνέχεια) Να δοκιµάσετε τις διάφορες επιλογές βελτιστοποίησης κατά τη διαδικασία µεταγλωττισµού που σας δίνει το περιβάλλον.net 2003 Να αντικαταστήσετε το µεταγλωττιστή Microsoft VC7 µε τον µεταγλωττιστή Intel Compiler 9.0 (IC9) και να δοκιµάσετε τις διάφορες επιλογές βελτιστοποίησης Να αναφέρετε την µεγαλύτερη ταχύτητα εκτέλεσης που επιτυγχάνετε από το VC7 και το (IC9) Να συλλέξετε δεδοµένα µε τοπρόγραµµα Vtune για αυτή την εφαρµογή