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

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

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

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

Αρχιτεκτονική υπολογιστών

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

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

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

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

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

Αρχιτεκτονική Υπολογιστών

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

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

Αρχιτεκτονική υπολογιστών

Προχωρηµένα Θέµατα Αρχιτεκτονικής

Εντολές γλώσσας μηχανής

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

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

Chapter 3 Αριθμητική Υπολογιστών

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Data-Level Parallelism Linking & Loading

Αρχιτεκτονική Υπολογιστών

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»

Πράξεις με δυαδικούς αριθμούς

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ MPEG-2 ΑΠΟΚΩ ΙΚΟΠΟΙΗΤΗ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ARM CORTEX A8

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας

Αρχιτεκτονικές Σύγχρονων Επεξεργαστών

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

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

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. 5 ο Μάθημα. Λεωνίδας Αλεξόπουλος Λέκτορας ΕΜΠ. url:

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Εισαγωγή στον Προγραμματισμό

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Αρχιτεκτονική υπολογιστών

Στοιχεία από Assembly Γιώργος Μανής

ΜΜΚ 105: Πειραματική και Στατιστική Ανάλυση Δημιουργία Πινάκων και Γραφικών Παραστάσεων στην Excel 18/09/14

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική Υπολογιστών. Data. Κείμενο. Βίντεο. Αριθμοί Εικόνες. Ήχοι

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

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

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

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

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Πρόχειρες Σημειώσεις. Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

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

Αρχιτεκτονικές Υπολογιστών

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

ΜΑΘΗΜΑ Στοίχιση Παραγράφων. 2. Εσοχές Παραγράφων ΣΤΟΧΟΙ:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-ΙI. Ενότητα 5 : Αρχιτεκτονική ΙΑ-32

Αρχιτεκτονική Υπολογιστών

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Chapter 3. Αριθμητική Υπολογιστών. Έβδομη (7 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

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

ΗΥ 232. Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 1. Εισαγωγή στο μάθημα. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Βίντεο (Video) Περιεχόµενα. Βιβλιογραφία. Καγιάφας [2000]: Κεφάλαιο 5, [link]

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1. Εργαστήριο 6. Εαρινό Εξάμηνο

Επιστηµονικός Υπολογισµός Ι

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Αριθμητική Κινητής Υποδιαστολής Πρόσθεση Αριθμών Κινητής Υποδιαστολής

8 FORTRAN 77/90/95/2003

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

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Αρχιτεκτονικές Υπολογιστών

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

Εισαγωγή στην Πληροφορική ΓΕΝΙΚΟ ΤΜΗΜΑ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ TEI ΧΑΛΚΙ ΑΣ

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

Αρχιτεκτονική Υπολογιστών

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Εργαστήριο Αρ. 2

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

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

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

Τεχνολογίες ημιαγωγών. Chapter 2 Instructions: Language of the Computer 1

Τσουµπλέκας Γεώργιος του Κωνσταντίνου. Επιβλέπων Καθηγητής. Ιωάννης Κατσαβουνίδης. Συνεπιβλέπων Καθηγητής. Γεώργιος Σταµούλης

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

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

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

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy

Να αναφέρουµε τους πέντε τύπους δεδοµένων που χρησιµοποιούνται σε έναν υπολογιστή. Να περιγράψουµε τον τρόπο µε τον οποίο αποθηκεύονται οι

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

Transcript:

Συστήµατα και Αλγόριθµοι Πολυµέσων Ιωάννης Χαρ. Κατσαβουνίδης Οµιλία #8: Αρχιτεκτονική Pentium µε εντολές MMX/SSE/SSE2 για εφαρµογές πολυµέσων 14 Νοεµβρίου 2005

Επανάληψη ιεθνή στάνταρ MPEG1/MPEG2 Εκτίµηση και επανόρθωση κίνησης ιανύσµατα κίνησης (µετατόπισης) ως προς το(α) προηγούµενο(α) καρέ αναφοράς Ακρίβεια κίνησης εκφράζεται σε ακέραιες µονάδες κουκίδων ή µονάδες µισής κουκίδας Για την εύρεση του βέλτιστου διανύσµατος κίνησης, χρησιµοποιείται το άθροισµα των απολύτων τιµών των διαφορών (SAD): 15 15 SADi, (, ) = 0 j mv 0 x mvy i= 0 j= 0 x( i 0 + i, j 0 + j) y( i 0 + mv x + i, j 0 + mv y + j)

MPEG1 MPEG2 differences M P E G 1 Progressive Pictures Only; chrominance position at center YUV 4:2:0 Color format 8-bit Intra DC prediction; D- pictures; zigzag scan only IDCT mismatch for each coeff.; 8-bit ESC code Linear Quantization Scale only; halfpel motion optional M P E G 2 Progressive & interlaced Pictures; chrominance position at left YUV 4:2:0, 4:2:2 & 4:4:4 10-bit Intra DC; no D-pictures; alternate scan IDCT mismatch for AC[7][7] only; 12-bit ESC Linear & nonlinear quantization scale; half-pel motion standard

Αρχιτεκτονική MMX/SSE/SSE2 Βασίζεται στην τεχνική της παράλληλης εκτέλεσης µιας εντολής σε πολλαπλά δεδοµένα (SIMD) Αποτελεί το πιο σηµαντικό εργαλείο βελτιστοποίησης αλγόριθµων πολυµέσων Επιφέρει επιτάχυνση 3x 6x, ανάλογα µε την εφαρµογή και την ταχύτητα µνήµης

SIMD the MMX phenomenon Single-Instruction, Multiple-Data - Multi-Media extensions Intel IP, introduced early-1997 (Pentium MMX/ Pentium II) and incorporated in all Intel Pentium CPUs by mid-1998 Allows for 64-bit quantities to be manipulated as 8x8-bit, 4x16-bit, 2x32-bit or 1x64-bit separate entities Effective speed-up for video applications of about 4x over integer (x86) performance

SSE the next step Streaming SIMD Extensions Introduced with the Pentium-III (early 1999) Double MMX data-width (from 64-bit to 128-bit) for floating point operations Add new instructions (such as PSADBW, PAVGB)

SSE2 Evolution of the SSE family Introduced with the Pentium-IV (early 2001) Expanded 128-bit instructions to integer operands (16x8-bit, 8x16-bit, 4x32-bit, 2-64-bit or 1x128-bit entities) Out-of-order execution, uop architecture

SIMD Data types

SIMD example PSADBW mm1, mm2/mm64 PSADBW xmm1, xmm2/mm128

Pentium-4 architecture

SIMD

Εντολές/καταχωρητές ΜΜΧ

Καταχωρητές SSE/SSE2

Εντολές ΜΜΧ/SSE/SSE2 Κινητής υποδιαστολής Πράξεις ακεραίων Περισσότερο χρήσιµεςστοχώροτων πολυµέσων Ορισµένες εντολές έγιναν «κατά παραγγελία» για εφαρµογές πολυµέσων (π.χ. PSADBW)

Εντολές ΜΜΧ/SSE/SSE2 (2) Η χρήση τους γίνεται είτε µέσω προγραµµατισµού σε γλώσσα µηχανής (inline assembly) είτε µέσω επεκτάσεων της γλώσσας προγραµµατισµού C (intrinsics) Οι καινούργιοι τύποι δεδοµένων είναι m64 (64-bit packed integer) m128i (128-bit packed integer) m128 (128-bit floating point) m128d (128-bit double-precision floating point)

Εντολές ΜΜΧ/SSE/SSE2 (3) Η χρήση των καταχωρητών XMM (128-bit) δεν συνεπάγεται αυτόµατη επιτάχυνση εκτέλεσης x2 ως προς την χρήση καταχωρητών MMX (64-bit) Λόγω µικρότερης ταχύτητας εκτέλεσης εντολών SSE2 Λόγω σηµαντικής καθυστέρησης πρόσβασης διευθύνσεων µνήµης που δεν είναι ευθυγραµµισµένες σε πολλαπλάσια των 16- bytes

Εντολές MMX/SSE/SSE2 (4) Ιδιαίτερα χρήσιµες εντολές PAVGB ((x+y+1)>>1): γραµµική παρεµβολή µισής κουκίδας PSADBW: υπολογισµός αθροίσµατος απόλυτων διαφορών - εύρεση διανύσµατος κίνησης

Άσκηση Να γράψετε την ρουτίνα υπολογισµού του µέσου όρου δύο καρέ βίντεο, ανά κουκίδα. Να την υλοποιήσετε σε Αριθµητική κινητής υποδιαστολής, χρησιµοποιώντας γλώσσα προγραµµατισµού C Ακέραια αριθµητική, χρησιµοποιώντας γλώσσα προγραµµατισµού C Ακέραια αριθµητική, χρησιµοποιώντας εντολές MMX µέσω intrinsics Ακέραια αριθµητική, χρησιµοποιώντας εντολές MMX µέσω γλώσσας µηχανής

Άσκηση - συνέχεια Να υλοποιήσετε τη ρουτίνα σε Ακέραια αριθµητική, χρησιµοποιώντας εντολές SSE2 µέσω intrinsics/γλώσσας µηχανής Να χρησιµοποιήσετε το εργαλείο VTune και να υπολογίσετε την επιτάχυνση της εκτέλεσης των διαφόρων µορφών του προγράµµατος