Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας
Ενότητα 4: Συµπίεση Εικόνας 2
Συµπίεση Εικόνας Μείωση Πλεονασµού: Το σήµα εικόνας παρουσιάζει στατιστικό πλεονασµό (οι τιµές των pixel είναι έντονα συσχετισµένες σε τοπικό ή καθολικό επίπεδο) Οι Τεχνικές Συµπίεσης Εικόνας εκµεταλλεύονται την τοπική οµοιότητα (πλεονασµό). Είδη Πλεονασµού Εικόνας: Χωρικός Πλεονασµός (spatial redundancy) Φασµατικός Πλεονασµός (spectral redundancy) 3
Πλεονασµός Εικόνας 4
Κατηγορίες Τεχνικών Συµπίεσης Εικόνας 5
Συµπίεση Εικόνας Χωρίς Απώλειες Στο JPEG-LS (χωρίς απώλειες) χρησιµοποιείται η κωδικοποίηση πρόβλεψης. Για κάθε pixel X(i,j) βρίσκουµε µια πρόβλεψη X"(i, j). Υπολογισµός Διαφοράς: D i, j = X i, j X" i, j or D i, j = X i, j X" i, j Η τελική εικόνα (εικόνα σφαλµάτων ή διαφορών) έχει χαµηλότερη εντροπία και µπορεί να κωδικοποιηθεί αποτελεσµατικά µε κωδικοποίηση εντροπίας (Huffman, Arithmetic Coding). 6
Συµπίεση Εικόνας Χωρίς Απώλειες 7
Συµπίεση Εικόνας Με Μετασχηµατισµό 8
Συµπίεση Εικόνας Με Μετασχηµατισµό 9
Συµπίεση Εικόνας Με Μετασχηµατισµό 10
Συµπίεση Εικόνας Με Μετασχηµατισµό 11
JPEG Bitstream 12
Μειονεκτήµατα του JPEG Χαµηλής ποιότητας συµπίεση για χαµηλούς ρυθµούς δεδοµένων. Συµπίεση µε και χωρίς απώλειες. Άµεση προσπέλαση (random access) της δυαδικής µορφής. Διαχείριση µεγάλων εικόνων. (δεν υποστηρίζει εικόνες µεγαλύτερες από 64Κ x 64K ) Μετάδοση σε ενθόρυβα περιβάλλοντα. Εικόνες και έγγραφα που δηµιουργούνται από υπολογιστή. 13
Συµπίεση Εικόνας Με Wavelet (Κυµατίδια) Η περίπτωση του JPEG2000 14
Συµπίεση Εικόνας Με Wavelet (Κυµατίδια) Η περίπτωση του JPEG2000 Το στάδιο της προεργασίας Διαδικασία Κατάτµησης (tiling) : προαιρετική διαδικασία που εφαρµόζεται συνήθως για πολύ µεγάλες εικόνες. Μετατροπής σε YCbCr : Το JPEG2000 θεωρεί ως είσοδο στη διαδικασία κωδικοποίησης µια εικόνα YCbCr, εποµένως εάν η εικόνα εισόδου δεν είναι σε αυτόν τον χρωµατικό χώρο, πρέπει να µετατραπεί. Διαδικασία Μετατόπισης Επιπέδου (level offseting): Ολίσθηση των DC επιπέδων. Ο DWT απαιτεί να έχει κέντρο µηδέν το εύρος των τιµών των pixel. 15
Συµπίεση Εικόνας Με Wavelet (Κυµατίδια) Η περίπτωση του JPEG2000 DWT Discrete Wavelet Transform Ο διδιάστατος DWT στον JPEG2000 εφαρµόζεται ως µονοδιάστατος µετασχηµατισµός δυο ορθογωνίων διαστάσεων 16
Συµπίεση Εικόνας Με Wavelet (Κυµατίδια) Η περίπτωση του JPEG2000 DWT Discrete Wavelet Transform 17
Συµπίεση Εικόνας Με Wavelet (Κυµατίδια) Η περίπτωση του JPEG2000 DWT Discrete Wavelet Transform 18
Fractal Image Coding Οι τεχνικές που χρησιµοποιούνται λειτουργούν προσπαθώντας να ανιχνεύσουν ενδεχόµενες αυτό-οµοιότητες στην εικόνα. Εάν µπορούν να προβλεφθούν χαρακτηριστικά της εικόνας µέσω ανάλυσης της ίδιας εικόνας, τότε ολόκληρη η εικόνα µπορεί να γεννηθεί ξεκινώντας από λίγα τµήµατα «σπόρους» και χρησιµοποιώντας κατάλληλους µετασχηµατισµούς να δηµιουργηθούν οι υπόλοιπες περιοχές της. Στη θεωρία η προσέγγιση αυτή µπορεί να οδηγήσει σε πολύ καλούς λόγους συµπίεσης, στην πράξη όµως είναι συχνά υπολογιστικά ανέφικτο να βρεθούν οι κατάλληλοι «σπόροι» και µετασχηµατισµοί. 19
DCT Transform Forward DCT (FDCT): Y = AXA. Inverse DCT (IDCT): X = A. YA Α είναι ο πίνακας µετασχηµατισµού µε στοιχεία: A /0 = C / cos 5067 /8 59, όπου C / = 7 9 (i = 0), C / = 5 9 (i > 0) Τεχνικές Συµπίεσης Βίντεο Ενότητα 1 20
DCT Transform Άρα: Y => = C = C > 9@7 9@7 X /0 /AB 0AB cos X /0 = 9@7 9@7 C = C > Y => =AB >AB cos 5067 >8 59 5067 >8 59 cos cos 5/67 =8 59 5/67 =8 59 Τεχνικές Συµπίεσης Βίντεο Ενότητα 1 21
4x4 DCT Transform 1 2 cos (0) 1 2 cos (0) 1 2 cos (0) 1 cos (0) 2 1 ( π ) ( ) ( ) ( ) 1 3π 1 5π 1 7π 2 cos 8 2 cos 8 2 cos 8 2 cos 8 A = ( ) ( ) ( ) ( ) 1 2π 1 6π 1 10π 1 14π 2 cos 8 2 cos 8 2 cos 8 2 cos 8 ( ) ( ) ( ) ( ) 1 3π 1 9π 1 15π 1 21π 2 cos 8 2 cos 8 2 cos 8 2 cos 8 Επειδή όµως το συνηµίτονο είναι συµµετρικό και επαναλαµβάνεται κάθε 2π, έχουµε ότι:
4x4 DCT Transform or A = 1 2 1 ( π ) 2 cos 8 1 2 cos 1 2 ( ) 3π 8 1 2 ( ) 1 3π 2 cos 8 1 2 1 ( π ) 2 cos 8 1 2 ( ) 1 3π 2 cos 8 1 2 1 ( π ) 2 cos 8 1 2 1 ( π ) 2 cos 8 1 2 ( ) 1 3π 2 cos 8 A = Evaluating the cosines gives: a a a a b c c b a a a a c b b c a = 1 2 1 ( π ) where b = 2 cos 8 ( ) 1 3π c = 2 cos 8
4x4 DCT Transform (Example) 4x4 input block X 5 11 8 10 9 8 4 12 1 10 11 4 19 6 15 7
4x4 DCT Transform (Example) Y =AX 17 17.5 19 16.5-6.981 2.725-6.467 4.125 7-0.5 4 0.5-9.015 2.660 2.679-4.414
Y=Y A T =AXA T 4x4 DCT Transform (Example) 35-0.079-1.5 1.115-3.299-4.768 0.443-9.010 5.5 3.029 2 4.699-4.045-3.010-9.384-1.232