|
||
Κεφάλαιο 20 Συμπίεση ήχου και video Για να σταλθεί ήχος ή video πάνω στο διαδίκτυο απαιτείται αυτά να συμπιεστούν. Η συμπίεση ήχου μπορεί να χρησιμοποιηθεί για μετάδοση φωνής ή μουσικής. Υπάρχουν δύο τεχνικές που χρησιμοποιούνται για συμπίεση ήχου: η πρώτη είναι η αναμενόμενη κωδικοποίηση (predictive encoding) και η δεύτερη είναι η αντιληπτή κωδικοποίηση (perceptual encoding).
Η συμπίεση video αποτελείται από πολλαπλά frames, όπου κάθε frame είναι μια εικόνα. Μπορούμε να συμπιέσουμε ένα video, συμπιέζοντας πρώτα τις εικόνες. Υπάρχουν δύο πρότυπα συμπίεσης, τα οποία είναι τα εξής:
Συμπίεση εικόνας - JPEG Σε μια εικόνα η οποία είναι σε ασπρόμαυρες αποχρώσεις (gray scale), κάθε της pixel μπορεί να αναπαρασταθεί ως ένας 8-bit ακέραιος. Αν μια εικόνα είναι έγχρωμη, κάθε pixel μπορεί να αναπαρασταθεί σε 24 bits (3 * 8 bits), οπού κάθε 8 bits αναπαριστά το κόκκινο (red), πράσινο (green) και μπλε (blue), R.G.B. Για να γίνει πιο απλό ας πάρουμε για παράδειγμα μια ασπρόμαυρη εικόνα (gray scale). Στο πρότυπο JPEG μια ασπρόμαυρη εικόνα χωρίζεται σε blocks των 8 * 8 pixels όπως δείχνει η παρακάτω εικόνα. ![]() Αναπαράσταση bits σε μια ασπρόμαυρη εικόνα ![]() Διεργασία JPEG Μετασχηματισμός Διακριτού Συνημίτονου (Discrete Cosine Transform - DCT): Στην εικόνα που είδαμε παραπάνω, στο DCT κάθε block των 64 pixel περνάει από έναν μετασχηματισμό που καλείται μετασχηματισμός διακριτού συνημίτονου - DCT. Ας δούμε τρεις περιπτώσεις εικόνων για να δούμε πως λειτουργεί ο μετασχηματισμός DCT.
Στην πρώτη περίπτωση έχουμε ένα block ομοιόμορφου γκρι χρώματος και η τιμή κάθε pixel είναι 20. Όταν εφαρμόσουμε τους μετασχηματισμούς προκύπτει μια μη μηδενική τιμή για το πρώτο στοιχείο (που βρίσκεται στην πάνω αριστερή γωνία). Τα υπόλοιπα pixels έχουν την τιμή μηδέν. Η τιμή 160 (στο παράδειγμα μας) αποτελεί την μέση τιμή του αθροίσματος όλων των pixels (πολλαπλασιαζόμενων με μια σταθερά που στην περίπτωση μας είναι το 8). ![]() Εικόνα με μια απόχρωση του γκρι Στην δεύτερη περίπτωση έχουμε ένα block με δύο διαφορετικές γκρι αποχρώσεις. Όπως βλέπουμε σε σχέση με την πρώτη περίπτωση παρατηρούμε μεγάλες αλλαγές στις τιμές των pixles (από το 20 έως το 50). Όταν εφαρμόζουμε μετασχηματισμό παίρνουμε μια dc τιμή όπως και μη μηδενικές ac τιμές (στο παράδειγμα μας η dc τιμή είναι η 280 και οι υπόλοιπες μη μηδενικές τιμές είναι οι ac τιμές). Παρόλα αυτά υπάρχουν μόνο μερικές μη μηδενικές τιμές οι οποίες έχουν μαζευτεί γύρω από την τιμή dc. Οι περισσότερες τιμές είναι μηδέν όπως παρατηρούμε και στην παρακάτω εικόνα. ![]() Εικόνα με δυο αποχρώσεις του γκρι Στην τρίτη περίπτωση, έχουμε ένα block που η απόχρωση του μεταβάλλεται σταδιακά. Δεν υπάρχει δηλαδή μεγάλη αλλαγή ανάμεσα στις τιμές των γειτονικών pixels. Όταν εφαρμόζουμε μετασχηματισμούς, παίρνουμε μια dc τιμή, μαζί με πολλές μη μηδενικές ac τιμές. Από αυτά μπορούμε να συμπεράνουμε τα εξής:
![]() Εικόνα με γκρι διαβάθμιση (gradient gray) Συμπίεση Video: MPEG Το πρότυπο MPEG (Moving Picture Experts Group) χρησιμοποιείται για συμπίεση video. Σε αυτήν την αρχή, μια κινούμενη εικόνα είναι μια γρήγορη ροή συνόλων από frames, όπου κάθε frame είναι μια εικόνα. Με απλά λόγια, ένα frame είναι ένας ξεχωριστός συνδυασμός από pixels και ένα video είναι ένας προσωρινός συνδυασμός από frames που στέλνονται το ένα μετά το άλλο. Οπότε λοιπόν όταν συμπιέζουμε ένα video στην ουσία συμπιέζουμε ένα group από frames αυτού του video. Στο πρότυπο MPEG υπάρχουν τρείς κατηγορίες για συμπίεση των frames:
![]() Απεικόνιση των MPEG Frames Τελευταία ενημέρωση: 22/02/2017 |
||
|
☰ | |