Διπλωματική Εργασία Διάθεση πολυμέσων σε ετερογενή δίκτυα κατά

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

Download "Διπλωματική Εργασία Διάθεση πολυμέσων σε ετερογενή δίκτυα κατά"

Transcript

1 ΑΡΙΣΤΟΤΈΛΕΙΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΘΕΣΣΑΛΟΝΊΚΗΣ ΤΜΉΜΑ ΗΛΕΚΤΡΟΛΌΓΩΝ ΜΗΧΑΝΙΚΏΝ & ΜΗΧΑΝΙΚΏΝ Η/Υ Διπλωματική Εργασία Διάθεση πολυμέσων σε ετερογενή δίκτυα κατά το πρότυπο Μανωλόπουλος Βασίλειος ΑΕΜ:4791 Επιβλέπων Καθηγητής : Δημήτριος Μητράκος Πανεπιστημιακό Έτος Θεσσαλονίκη

2 Περιεχόμενα 1. Εισαγωγή 2. Πρότυπα του MPEG MPEG MPEG MPEG MPEG-7 XML 3.1. Βασικά χαρακτηριστικά 3.2. Δομικά στοιχεία της XML 3.3. Πλεονεκτήματα της XML MPEG Εισαγωγή 4.2. Προβλήματα στη διάθεση πολυμέσων 4.3. Στόχοι του MPEG Βασικά Στοιχεία του MPEG Digital Item Declaration 4.6. Digital Item Identification 4.7. Intellectual Property Management 4.8. Rights Expression Language 4.9. Digital Item Adaptation Java & XML 5.1. Παρουσίαση των APIs της JAVA 5.2. JAXP API 5.3. DOM API 5.4. XSLT API Ανάπτυξη εφαρμογής client-server 6.1. Στόχοι Γενική Περιγραφή 6.2. XML αρχεία 6.3. Περιγραφή Κλάσεων Εφαρμογής 6.4. Χρήση της εφαρμογής και screenshots Επίλογος Βιβλιογραφία

3 Εισαγωγή 1 Εισαγωγή Η παρούσα διπλωματική εργασία έχει ως στόχο την παρουσίαση του προτύπου και την ανάπτυξη μιας προγραμματισμού JAVA, η οποία να ενσωματώνει εφαρμογής στη γλώσσα τις τεχνικές και τις μεθόδους που προτείνει το πρότυπο στη διάθεση των πολυμέσων. Το σε αντίθεση με τα προηγούμενα MPEG-1, MPEG-2, MPEG-4 και MPEG-7 δεν προτείνει τρόπους για την κωδικοποίηση, επεξεργασία ή περιγραφή πολυμέσων αλλά στοχεύει κυρίως στο τρόπο με τον οποίο θα γίνει η διάθεση. Το όραμα που υπάρχει πίσω από την δημιουργία του είναι η απρόσκοπτη πρόσβαση σε διαφόρων ειδών πολυμέσα, από διαφορετικές τερματικές συσκευές και διαμέσου ετερογενών δικτύων. Στο κεφάλαιο που ακολουθεί γίνεται αρχικά μία μικρή παρουσίαση των προηγούμενων προτύπων που έχουν αναπτυχθεί από την ομάδα του MPEG, έτσι ώστε να γίνει αντιληπτό το πλαίσιο μέσα στο οποίο αναπτύχθηκε το καθώς και τα προβλήματα, στη διάθεση των πολυμέσων, στα οποία καλείται να παρέχει λύση. Στη συνέχεια, κρίθηκε σκόπιμο να γίνει μια αναφορά στη γλώσσα XML, αφού είναι η γλώσσα πάνω στην οποία στηρίζεται το πρότυπο και είναι απαραίτητη για την κατανόηση τον επόμενων κεφαλαίων. Στο τέταρτο κεφάλαιο της εργασίας γίνεται μία περιγραφή του προτύπου, οργανωμένη κατά μέρη, όπως αυτά έχουν προταθεί από την ομάδα του MPEG. Στο ίδιο κεφάλαιο παρουσιάζονται και παραδείγματα των αρχείων που υλοποιούν το πρότυπο σε γλώσσα XML. Στη συνέχεια γίνεται μία μικρή αναφορά στις βιβλιοθήκες της JAVA για το χειρισμό XML εγγράφων. Το τελευταίο κεφάλαιο της εργασίας παρουσιάζει την εφαρμογή που αναπτύχθηκε, τη δομή της και την λειτουργικότητα την οποία παρέχει. Επίσης υπάρχει και ένα παράδειγμα χρήσης της εφαρμογής από έναν χρήστη και σχετικά screenshots. Τέλος θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου κ.μητράκο Δημήτριο για όλη την πολύτιμη βοήθειά του στην ολοκλήρωση αυτής της εργασίας. -3-

4 Πρότυπα του MPEG 2 Πρότυπα του MPEG Η ομάδα MPEG (Moving Pictures Experts Group) ιδρύθηκε το 1988 με σκοπό την ανάπτυξη προτύπων για την κωδικοποιημένη απεικόνιση κινούμενων εικόνων (video) και ήχου καθώς και το συνδυασμό αυτών. Η βάση στην οποία στηρίχτηκε η ίδρυση αυτής της ομάδας ήταν το όραμα για τη δημιουργία ενιαίων προτύπων που θα περιέγραφαν πλήρως την απεικόνιση εικόνας και ήχου, και θα μπορούσαν να υλοποιηθούν από συμβατές συσκευές αναπαραγωγής. Η MPEG δρα κάτω από το πλαίσιο της επιτροπής Joint Technical Committee on Information Technology (JTC) του οργανισμού ISO/IEC1 από όπου έχει πάρει και το επίσημο όνομα ISO/IEC JTC1/SC29/WG11. Ανάμεσα στους στόχους του προγράμματος εργασίας συγκαταλέγονται τα παρακάτω σημεία : Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας κινούμενων εικόνων. Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας ήχου. Πρόταση προτύπων για κωδικοποιημένη αναπαράσταση πληροφορίας ήχου, για κινούμενων εικόνων καθώς και τον συνδυασμό τους λαμβάνοντας υπόψη την ποιότητα, την αποτελεσματική υλοποίηση και τους περιορισμούς στην μεταφορά και διάδοση. Εκτίμηση των χαρακτηριστικών από τεχνολογίες που υλοποιούν αλγόριθμους κωδικοποίησης, αποθήκευσης και μεταφοράς media. Εκτίμηση των απαιτήσεων για συνεργασία και συμβατότητα με συναφείς εφαρμογές τηλεπικοινωνιών και αναμετάδοσης ή με συναφείς αλγόριθμους κωδικοποίησης media που έχουν τυποποιηθεί από άλλους οργανισμούς. Ορισμός μεθόδων για την εκτίμηση της ποιότητας του ήχου, των κινούμενων εικόνων καθώς και του συνδυασμού τους. Στο πλαίσιο των εργασιών της η ομάδα MPEG έχει αναπτύξει, από την ίδρυσή της, τα παρακάτω πρότυπα : α) ISO/IEC (MPEG-1) Coding of Moving Pictures and Associated Audio at up to 1.5Mbps. β) ISO/IEC (MPEG-2) Generic Coding of Moving Pictures and Associated Audio γ) ISO/IEC (MPEG-4) Coding of Audio-Visual Objects 1 International Standards Organization and International Electrotechnical Commission -4-

5 Πρότυπα του MPEG δ) ISO/IEC (MPEG-7) Multimedia Content Description Interface ε) ISO/IEC (MPEG-21) Multimedia Framework Πριν αναφερθούμε στο πρότυπο MPEG-21, του οποίου η αναλυτική περιγραφή θα γίνει σε παρακάτω κεφάλαιο, είναι σκόπιμο να παρουσιαστούν τα πρότυπα που παρουσιάστηκαν πριν από αυτό. Γενικά η αρχή που ακολουθείται σε όλα τα πρότυπα του MPEG είναι ότι το κάθε standard θα πρέπει να ορίζει όσο το δυνατόν λιγότερα στοιχεία, ενώ ταυτόχρονα θα πρέπει να εξασφαλίζει την μεγαλύτερη δυνατή συμβατότητα και διαλειτουργικότητα. 2.1 MPEG-1 Αποτελεί το πρώτο πρότυπο που εκδόθηκε από το MPEG κατά την περίοδο Ο σκοπός του προτύπου ήταν να παρέχει μια ολοκληρωμένη λύση για την κωδικοποίηση οπτικο-ακουστικού υλικού και την αποθήκευσή του σε ψηφιακά μέσα, όπως CD, DAT και οπτικούς δίσκους. Μιας και ο κύριος σκοπός ήταν η αποθήκευση σε CD το standard περιορίστηκε στο εύρος του 1.5Mbps bitrate, αλλά μπορεί να δουλέψει και σε χαμηλότερα όσο και σε υψηλότερα bitrate. Ανάμεσα στις άλλες προδιαγραφές του προτύπου ήταν και ο ορισμός λειτουργιών όπως fast forward, fast reverse και random access, κατά αναλογία με τις αναλογικές συσκευές εγγραφής, ενώ επίσης θα έπρεπε να παρέχει υποστήριξη για ποιότητα video τουλάχιστον συγκρίσιμη με την ποιότητα κασέτας VHS. Γενικά η ομάδα MPEG συνηθίζει να αναπτύσσει τα πρότυπά της παράλληλα, όσον αφορά την κωδικοποίηση εικόνας και ήχου, αλλά και τις προδιαγραφές για συγχρονισμό και πολυπλεξία. Όμως, παρόλο που είναι σχεδιασμένες να χρησιμοποιηθούν ενοποιημένες, ξεχωριστές προδιαγραφές μόνο για ήχο ή μόνο για εικόνα, μπορούν να χρησιμοποιηθούν κωδικοποίησης. αυτόνομα ή και σε συνδυασμό με άλλα εργαλεία Για αυτόν ακριβώς το λόγο το κάθε πρότυπο οργανώνεται σε μέρη, κάθε ένα από τα οποία περιγράφουν ένα συγκεκριμένο τομέα. Το MPEG-1 διαιρείται σε 5 μέρη. Μέρος 1 Συστήματα : Αναφέρεται στον συνδυασμό ενός ή και περισσότερων data streams (Mpeg-1 Video ή Audio) μαζί με χρονικές πληροφορίες για την διαμόρφωση ενός data stream βελτιστοποιημένου για ψηφιακή αποθήκευση και μετάδοση. Μέρος 2 Video : Παρέχει τις προδιαγραφές για ένα format κωδικοποίησης (video stream και την αντίστοιχη διαδικασία αποκωδικοποίησης) για -5-

6 ακολουθίες Πρότυπα του MPEG video σε bitrates των 1.5Mbps. Υποστηρίζει interactive μεθόδους, όπως fast forward και fast reverse πάνω στο κωδικοποιημένο bitstream. Η κωδικοποίηση που χρησιμοποιείται αποτελεί μια τυπική διαδικασία κωδικοποίησης βασισμένη στο μετασχηματισμό DCT(Discrete Cosine Transform) πάνω σε blocks. Ο μετασχηματισμός εφαρμόζεται πάνω σε κάθε μία εικόνα ή πάνω σε σφάλμα πρόβλεψης που δημιουργείται μετά από προσωρινή πρόβλεψη (στη βάση ενός ή δύο εικόνων ) και την αντιστάθμιση κίνησης. Μετά τον DCT μετασχηματισμό ακολουθεί κβαντισμός, zig zag scan και κωδικοποίηση μεταβλητού μήκους. Μέρος 3 Audio : Παρέχει τις προδιαγραφές για ένα format κωδικοποίησης (audio stream και την αντίστοιχη διαδικασία αποκωδικοποίησης) σε μονοφωνικό ήχο με bitrates από 32 έως 192 kbps και στερεοφωνικό ήχο σε bitrates από 128 έως 384 kbps. Επίσης έχουν οριστεί τρία διαφορετικά ιεραρχικά επίπεδα κωδικοποίησης (Layers I,II,III), τα οποία αναφέρονται σε αυξημένη πολυπλοκότητα, καθυστέρηση και αποτελεσματικότητα του αλγορίθμου. Το πλέον διαδεδομένο είναι το Layer III, περισσότερο γνωστό και ως MP3. Οι κωδικοποιήσεις που περιγράφονται σε αυτό το μέρος αναφέρονται γενικά για οποιαδήποτε μορφή ήχου (όχι αποκλειστικά φωνής) και χρησιμοποιούν τα όρια που τίθενται από την αντιληπτική ικανότητα του ανθρώπινου συστήματος ακοής, αποσκοπώντας στο να αφαιρέσουν την επιπλέον ακουστική πληροφορία που δεν γίνεται αντιληπτή από τον άνθρωπο. Μέρος 4 Τεστ Συμβατότητας : Σε αυτό το μέρος προδιαγράφονται τεστ που ελέγχουν αν ένα bitstream κάποιου περιεχομένου, καθώς και ο αποκωδικοποιητής που θα χρησιμοποιηθεί για αυτό, ικανοποιούν τις προδιαγραφές τον μερών 1, 2 και 3. Μέρος 5 Προσομοίωση Software : Αποτελείται από λογισμικό που υλοποιεί τα μέρη 1, 2 και 3. Το μέρος αυτό έχει καθαρά χαρακτήρα πληροφοριακό ενώ στα επόμενα πρότυπα το μέρος αυτό με ονομασία «Software αναφοράς» καθιερώθηκε ως ένα σταθερό και μόνιμο μέρος. Το πρότυπο που περιγράφτηκε παραπάνω αποτελεί μέχρι και σήμερα ένα δημοφιλές format για την ανταλλαγή video και ήχου μέσω του Internet (ειδικά για τον ήχο το format mp3 είχε και έχει ακόμα τεράστια απήχηση). Στο τομέα της ψηφιακής αποθήκευσης video δεν χρησιμοποιήθηκε τόσο ευρέως, κυρίως γιατί ξεπεράστηκε από το DVD και το πρότυπο MPEG-2 που το ακολούθησε. -6-

7 Πρότυπα του MPEG 2.2 MPEG-2 Η επιτυχία του προτύπου MPEG 1 οδήγησε στη δημιουργία του επόμενου προτύπου MPEG 2 το οποίο προσπάθησε να φέρει μια πιο γενική περιγραφή των μεθόδων κωδικοποίησης εικόνας και ήχου, με περισσότερες επιλογές διαβάθμισης της ποιότητας, το οποίο θα στόχευε κυρίως σε εφαρμογές μεσαίας και υψηλής ποιότητας (συμπεριλαμβανομένης και της τηλεόρασης υψηλής πιστότητας HDTV). Το πρότυπο αυτό βγήκε σε συνεργασία της ομάδας του MPEG με τους ειδικούς στην κωδικοποίηση της ITU-T2 και σε ένα μεγάλο βαθμό τα μέρη του, που αναφέρονται ως Συστήματα, Video και Εικόνα, στηρίζονται στα αντίστοιχα του MPEG 1. Μέρος 1 Συστήματα : Αναφέρεται στις ίδιες προδιαγραφές με αυτές του MPEG 1, αλλά παράλληλα παρέχει και υποστήριξη σε κάποια επιπλέον στοιχεία. Αρχικά, λαμβάνει υπόψη περιβάλλοντα επιρρεπή σε σφάλματα όπως τα δίκτυα εκπομπής. Επίσης συμπεριλαμβάνει προδιαγραφές για επεξεργασία των media και με hardware εκτός από software. Τέλος, υποστηρίζει την μεταφορά σε περιβάλλοντα ATM (Asychronous Transfer Mode). Μέρος 2 Video : Ορίζει τις προδιαγραφές για ένα γενικό format κωδικοποίησης video (και την αντίστοιχη διαδικασία αποκωδικοποίησης) σε αναλύσεις και ποιότητα μέχρι και HDTV. Η βασική αρχιτεκτονική του αλγόριθμου κωδικοποίησης παραμένει η ίδια με αυτή του προτύπου MPEG1, αλλά έχει προστεθεί η δυνατότητα για format video τύπου interlaced, καθώς και για format με βαθμωτή πολυπλοκότητα και ποιότητα. Για να είναι όσο το δυνατό πιο γενικό στην περιγραφή του, το πρότυπο καθορίζει ένα μεγάλο αριθμό εργαλείων που μπορούν να εφαρμοστούν κατά την κωδικοποίηση ανάλογα με την εφαρμογή. Για αυτό το λόγο, στο μέρος αυτό καθορίζονται κάποια profiles και στη συνέχεια διάφορα levels. Τα profiles είναι υποκατηγορίες εργαλείων που μπορούν να χρησιμοποιηθούν κατά περίπτωση ανάλογα με την εφαρμογή. Στη συνέχεια για κάθε profile ορίζονται κάποια levels, τα οποία συνιστούν ένα ελάχιστο όριο στις απαιτήσεις για μνήμη και υπολογιστική ισχύ που θα πρέπει να έχει ο κάθε συμβατός αποκωδικοποιητής. Ταυτόχρονα ορίζουν και ένα άνω όριο στην πολυπλοκότητα του κάθε bitstream, εξασφαλίζοντας έτσι τη συμβατότητα μεταξύ των αποκωδικοποιητών. Το MPEG-2 παρέχει αυτό που ονομάζεται forward compatibility, δηλαδή ένα video κωδικοποιημένο κατά MPEG-1 2 International Telecommunication Union Telecommunication Standardization Sector -7-

8 Πρότυπα του MPEG μπορεί να αναπαραχθεί σε έναν αποκωδικοποιητή MPEG-2, αλλά το αντίστροφο μπορεί να συμβεί μόνο για ορισμένα profiles. Μέρος 3 Audio : Σε αυτό το μέρος προδιαγράφονται οι απαιτήσεις για το format κωδικοποίησης του ήχου. Το συγκεκριμένο μέρος παρέχει συμβατότητα πλήρη με το αντίστοιχο του MPEG-1 (forward and backward compatibility), ενώ δεν υπάρχουν σημαντικές διαφορές ανάμεσα στα δύο πρότυπα. Η σημαντικότερη ίσως διαφορά είναι, ότι πλέον υποστηρίζεται ο πολυκάναλος ήχος (σε συνδυασμό 5.1). Μέρος 4 Τεστ Συμβατότητας : Αντίστοιχα με το MPEG-1 παρέχει τεστ τα οποία ελέγχουν την συμβατότητα με τα προηγούμενα μέρη του προτύπου. Για την περίπτωση του video η συμβατότητα ορίζεται στο επίπεδο του συνδυασμού profile@level, όπως αναφέρθηκε στο μέρος 2. Μέρος 5 - Software αναφοράς: Αντίστοιχα με το MPEG-1, παρέχει software αναφοράς που υλοποιεί το πρότυπο. Μέρος 6 Μέσα Ψηφιακής Αποθήκευσης Εντολές και Έλεγχος (Digital Storage Media Command and Control DSM-CC): Αυτό το μέρος παρέχει προδιαγραφές για τον ορισμό πρωτοκόλλων, που παρέχουν εντολές ελέγχου των bitstream ασυσχέτιστες με το μέσο στο οποίο είναι αποθηκευμένο το περιεχόμενο. Σε ένα τέτοιο μοντέλο DSM-CC ένα multimedia stream προέρχεται από ένα server και παραδίδεται σε ένα πελάτη. Το DSM-CC μοντέλο περιγράφει μια λογική οντότητα τον Session and Resource Manager(SRM) που παρέχει κεντρική διαχείριση. Μέρος 7 Προηγμένη Κωδικοποίηση ήχου (Advanced Audio Coding AAC) : Λόγω της ολικής συμβατότητας του μέρους 3 με το αντίστοιχο του MPEG-1 και της μειωμένης αποτελεσματικότητας που συνεπάγεται, κρίθηκε αναγκαίο να προστεθεί αυτό το μέρος, το οποίο δεν είναι βέβαια συμβατό με το MPEG-1, αλλά προσφέρει κωδικοποίηση ήχου υψηλής αποτελεσματικότητας καταφέρνοντας να επιτύχει ανάλογες ποιότητες με το MPEG-2 Μέρος 3, αλλά διατηρώντας πολύ χαμηλότερα επίπεδα bitrate. Μέρος 8 Αποσύρθηκε : Αρχικά προοριζόταν για την κωδικοποίηση video που προέρχεται από δείγματα των 10 bits, αλλά απορρίφθηκε επειδή δεν υπήρξε ενδιαφέρον από τη βιομηχανία. Μέρος 9 Διασύνδεση Real Time : Ορίζει ειδικά εργαλεία για την χρήση των συστημάτων που περιγράφονται στο Μέρος 1 Συστήματα του προτύπου για την ανταλλαγή δεδομένων σε εφαρμογές real-time. -8-

9 Πρότυπα του MPEG Μέρος 10 DSM-CC Έλεγχος συμβατότητας : Ορίζει εργαλεία για τον έλεγχο των bitstream και των decoders σχετικά με τις προδιαγραφές που τίθενται στο Μέρος 6 του προτύπου. Μέρος 11 Προστασία και διαχείριση πνευματικής ιδιοκτησίας (IPMP): Μια πρόσφατη προσθήκη που επιτρέπει τη διαχείριση και τον ορισμό εργαλείων για τον έλεγχο των πνευματικών δικαιωμάτων. 2.3 MPEG-4 Ενώ τα προηγούμενα δύο πρότυπα του MPEG ακολουθούν μια διαδικασία απεικόνισης και επεξεργασίας ανάλογη με αυτή που έχει τις ρίζες της στην αναλογική τηλεόραση, το πρότυπο MPEG-4 κάνει ένα βήμα μπροστά στην αντιμετώπιση και γενικότερη επεξεργασία του οπτικο-ακουστικού περιεχομένου. Τα προηγούμενα δύο μοντέλα χρησιμοποιούν το λεγόμενο frame-based model, δηλαδή αντιμετωπίζουν το video σαν μια αλληλουχία εικόνων (frames) ενώ το MPEG-4 εισάγει την έννοια του object-based model. Στο object-based model μια οπτικο-ακουστική σκηνή θεωρείται ότι αποτελείται από τη σύνθεση και την αλληλεπίδραση διαφόρων στοιχείων (οπτικά ή ηχητικά), τα οποία ονομάζονται objects (αντικείμενα). Το πρότυπο αυτό δημιουργήθηκε μέσα από την ανάγκη των χρηστών του διαδικτύου για ένα αυξημένο βαθμό αλληλεπίδρασης με την πληροφορία που λαμβάνουν, όχι μόνο στο βαθμό του κειμένου και των γραφικών, αλλά και στην κινούμενη εικόνα και τον ήχο. Με βάση αυτές τις ανάγκες το objectbased μοντέλο προσφέρει τους μηχανισμούς για την ανεξάρτητη κωδικοποίηση της μορφής, της συμπεριφοράς και των αλληλεπιδράσεων του κάθε object που απαρτίζει μια οπτικο-ακουστική σκηνή, καθώς και δυνατότητες για διαμόρφωση του περιεχομένου ως προς το επίπεδο της λεπτομέρειας που ο τελικός χρήστης επιθυμεί να λάβει. Ανάμεσα στα κύρια πλεονεκτήματα του προτύπου MPEG-4 συγκαταλέγονται τα εξής : Υβριδική συνθετική και φυσική κωδικοποίηση : Στο περιβάλλον του MPEG4 τα ηχητικά ή οπτικά objects μπορεί να είναι οποιαδήποτε προέλευσης φυσικά, τεχνητά, κείμενο, γραφικά, video βασισμένο σε frame-based model, μουσική, φωνή, 3D μοντέλα, 2D μοντέλα και άλλα. Χρήση βασισμένη στο περιεχόμενο : Επειδή από τη φύση του μοντέλου, το κάθε object κωδικοποιείται ξεχωριστά, του δίνεται η δυνατότητα να έχει ξεχωριστές ιδιότητες, να μπορεί -9- να χρησιμοποιηθεί αυτούσιο σε

10 Πρότυπα του MPEG περισσότερες από μία σκηνές, όπως επίσης να αλληλεπιδράσει με άλλα objects της σκηνής και να τροποποιήσει ανάλογα τις ιδιότητές του. Κωδικοποίηση βασισμένη στο περιεχόμενο : Αφού τα διάφορα objects κωδικοποιούνται αυτόνομα, τότε για την κωδικοποίηση του καθενός μπορούν να χρησιμοποιηθούν διαφορετικά εργαλεία, κάτι που τελικά αυξάνει την αποτελεσματικότητα και την ευελιξία του προτύπου. Για παράδειγμα, objects βασισμένα στο κείμενο μπορούν να κωδικοποιηθούν με εργαλεία κωδικοποίησης κειμένου, ενώ objects που περιγράφουν 3D μοντέλα με τα ανάλογα εργαλεία. Καθολική Χρήση : Με την αυξημένη χρήση και εξάπλωση ασύρματων και κινητών τερματικών, με διαφορές στις διάφορες δυνατότητες αναπαραγωγής περιεχομένου, το πρότυπο αυτό παρέχει την ευελιξία και την προσαρμοστικότητα, έτσι ώστε το ίδιο περιεχόμενο να είναι δυνατό να αναπαραχθεί με διαφορετικό επίπεδο λεπτομέρειας, σε διάφορα τερματικά, παρέχοντας στο καθένα την απαιτούμενη ποιότητα για την εκάστοτε χρήση. Μια απλή αναπαράσταση μιας οπτικο-ακουστικής περιγράφεται με το MPEG-4 φαίνεται στην εικόνα σκηνής όπως αυτή

11 Πρότυπα του MPEG Εικόνα 2.1 Στην παραπάνω φωτογραφία φαίνεται πως απλά objects ενώνονται για τον σχηματισμό πολύπλοκων objects, δίνοντας την δυνατότητα στον δημιουργό μιας σκηνής να συνθέσει πολύπλοκες σκηνές και στον καταναλωτή μιας σκηνής να χειριστεί ομάδες αντικειμένων με ένα συγκεκριμένο σημασιολογικό περιεχόμενο. Γενικά όσων αφορά στα objects του MPEG-4, το πρότυπο παρέχει τυποποιημένες μεθόδους για την τοποθέτησή τους σε ένα δοσμένο σύστημα συντεταγμένων, μεθόδους για την μεταμόρφωση της γεωμετρικής ή ακουστικής μορφής τους, μεθόδους για την ομαδοποίησή τους σε σύνθετα objects, μεθόδους για την αλλαγή των ιδιοτήτων τους σύμφωνα με δεδομένα που λαμβάνονται από το τερματικό και μεθόδους για την αλλαγή της οπτικής γωνίας ή της ακουστικής θέσης, από την οποία ο χρήστης βλέπει ή ακούει ένα object. Η ισχύς και τα προτερήματα του object-based μοντέλου που χρησιμοποιεί το MPEG-4, όπως επίσης και το προτέρημα του ότι δεν απευθύνεται αποκλειστικά και μόνο σε έναν τύπο εφαρμογών, το κάνουν ικανό να χρησιμοποιηθεί σε ένα ευρύ φάσμα εφαρμογών, από τις επικοινωνίες με κινητά τηλέφωνα σε χαμηλά bitrate -11-

12 Πρότυπα του MPEG μέχρι και για κωδικοποίηση video υψηλής ανάλυσης. Ακριβώς για αυτό το λόγο όμως το MPEG-4 χρειάστηκε να λάβει υπόψη του ένα μεγάλο αριθμό προδιαγραφών, να μεγαλώσει σε όγκο και τελικά να χωριστεί από την ομάδα του MPEG σε 21 μέρη. Αυτά είναι τα εξής : Μέρος 1 Συστήματα : Σε αυτό το μέρος ορίζεται η αρχιτεκτονική των συστημάτων που ακολουθούν το πρότυπο MPEG-4 και εργαλεία που αφορούν τη περιγραφή των σχέσεων οπτικο-ακουστικών object που αποτελούν μια σκηνή. Τα βασικά εργαλεία αυτού του μέρους είναι το format BIFS(Binary Format for Scenes) και το format XMT(eXtensible MPEG-4 Textual). Το BIFS είναι μια δυαδική γλώσσα που έχει αναπτυχθεί για την περιγραφή μιας σκηνής, ενώ το XMT περιγράφει μια σκηνή χρησιμοποιώντας σύνταξη κειμένου. Επίσης σε αυτό το μέρος του προτύπου ορίζεται και ένα καινούριο format αρχείων το MP4, το οποίο σχεδιάστηκε για να επιτρέπει την εύκολη μεταφορά και ανταλλαγή μιας απεικόνισης σε MPEG-4 και να είναι ανεξάρτητο του πρωτοκόλλου μεταφοράς που θα χρησιμοποιηθεί. Τέλος ορίζεται το MPEG-J, που είναι ένα προγραμματιστικό σύστημα το οποίο υλοποιεί ένα API (Application Program Interface) για την συνεργασία ενός λογισμικού αναπαραγωγής MPEG-4 με κώδικα Java. Μέρος 2 Visual : Σε αυτό το μέρος προδιαγράφονται όλα τα εργαλεία για την κωδικοποίηση όλων των οπτικών αντικειμένων, είτε αυτά είναι φυσικά, είτε τεχνητά, αρχίζοντας από πολύ χαμηλά bitrates μέχρι και για πολύ υψηλές απαιτήσεις ποιότητας. Μέρος 3 Audio : Αντίστοιχα με το Μέρος 2, εδώ περιγράφονται όλα τα εργαλεία για την κωδικοποίηση φυσικών ή τεχνητών ήχων σε διάφορες διαβαθμίσεις ποιότητας. Μέρος 4 Τεστ Συμβατότητας : Ορίζει τεστ για τον έλεγχο της συμβατότητας των bitstream και τον αποκωδικοποιητών με τις προδιαγραφές που ορίζει το MPEG-4. Ο έλεγχος συμβατότητας αναφέρεται, όπως και στο MPEG-2, σε συνδυασμούς profile@level. Όπου το profile αναφέρεται σε ομάδες από τύπους object. Μέρος 5 Software Αναφοράς : Σε αυτό το μέρος υπάρχει ενδεικτικό software το οποίο υλοποιεί σχεδόν όλα τα μέρη του προτύπου, αλλά κυρίως το μέρος των ηχητικών και οπτικών κωδικοποιητών και αποκωδικοποιητών. Μέρος 6 Delivery Multimedia Integration Framework : Ορίζει ένα format για την αποστολή media ανεξαρτήτως περιεχομένου, μέσα από διάφορα περιβάλλοντα αποστολής. -12-

13 Πρότυπα του MPEG Μέρος 7 Βελτιστοποιημένο Software για εργαλεία του MPEG-4 : Περιλαμβάνει βελτιστοποιημένο software για διάφορα εργαλεία οπτικής κωδικοποίησης που χρησιμοποιούνται στο MPEG-4 όπως για fast motion estimation, fast global motion estimation κ.α. Μέρος 8 Μεταφορά περιεχομένου MPEG-4 πάνω από δίκτυα IP (4onIP): Εξετάζει την μεταφορά περιεχομένου κωδικοποιημένου κατά MPEG-4 πάνω από δίκτυα IP. Μέρος 9 Περιγραφή hardware αναφοράς : Περιέχει υλοποιήσεις σε γλώσσα VHDL εργαλείων του MPEG-4, τα οποία μπορούν να μεταφερθούν και να χρησιμοποιηθούν για την κατασκευή πιο ολοκληρωμένων λύσεων και να εξομοιωθούν χρησιμεύοντας σε διάφορες αναλύσεις. Μέρος 10 Advanced Video Coding (AVC): Στο μέρος αυτό ορίζονται περισσότερο αναπτυγμένα εργαλεία κωδικοποίησης video τύπου framebased από ότι στο Μέρος 2. Το αποτέλεσμα είναι 50% αυξημένη αποτελεσματικότητα στην κωδικοποίηση, αλλά και αύξηση της πολυπλοκότητας του αποκωδικοποιητή κατά δύο φορές. Το μέρος αυτό αναπτύχθηκε από την ομάδα Joint Video Team (JVT), που δημιουργήθηκε για τη συνεργασία του MPEG με την ITU-T. Η ονομασία του AVC κατά ITUT είναι H.264. Μέρος 11 Περιγραφή Σκηνής : Περιλαμβάνει κάποια συμπληρωματικά εργαλεία σε αυτά που έχουν ήδη οριστεί στο Μέρος 1. Μέρος 12 ISO Base format αρχείων media : Ορίζει το format ISO base για αρχεία με media. Αυτό το format αποτελεί τη βάσει για άλλα πιο ειδικά format αρχείων. Περιέχει τις πληροφορίες για τη δομή, το περιεχόμενο και τον συγχρονισμό για οπτικά ή ηχητικά δεδομένα. Μέρος 13 Επέκταση IPMP : Ανάλογα με το Μέρος 11 του MPEG-2 ορίζει διάφορα εργαλεία για την προστασία και τον έλεγχο των πνευματικών δικαιωμάτων σε media. Μέρος 14 Format αρχείων MP4 : Αυτό το μέρος αποσπάστηκε από το Μέρος 1 και πλέον το format αρχείων mp4 ορίζεται εδώ. To mp4 αποτελεί ειδικότερο μέρος και βασίζεται στο γενικό format ISO που περιγράφεται στο Μέρος 12. Μέρος 15 Format αρχείων AVC : Περιγράφει ένα format αρχείων για αποθήκευση video κωδικοποιημένου χρησιμοποιώντας το AVC του Μέρους 10. Και αυτό το αυτό το format βασίζεται στο format ISO -13-

14 Πρότυπα του MPEG Μέρος 16 Animation Framework extension (AFX) : To AFX προσφέρει ένα ενοποιημένο πλαίσιο για 3D interactive απεικονίσεις, που προσφέρει τα απαραίτητα εργαλεία για συμπίεση, μεταφορά και απρόσκοπτη ενσωμάτωση με άλλα media για την δημιουργία εφαρμογών. Μέρος 17 Streaming Timed Text Format : Αυτό το μέρος ορίζει ένα format για υπότιτλους το οποίο μπορεί να ενσωματωθεί σε ένα αρχείο mp4. Μέρος 18 - Font Compression and Streaming : Περιγράφει εργαλεία για την αντιμετώπιση και τη μεταφορά δεδομένων γραμματοσειράς, σαν ένα μέρος της κωδικοποιημένης κατά MPEG-4 παρουσίασης. Μέρος 19 Synthesized Texture Stream : Σε αυτό το μέρος ορίζονται συνθετικές φωτο-ρεαλιστικές υφές, που δημιουργούνται από διανύσματα που περιγράφουν πληροφορία χρώματος. Μέρος 20 Lightweight Application Scene Representation (Laser) : Παρέχει μια αναπαράσταση μιας σκηνής σκοπεύοντας σε ένα συμβιβασμό ανάμεσα στο επίπεδο συμπίεσης, την πολυπλοκότητα του αποκωδικοποιητή και την αποτελεσματικότητα της απεικόνισης. Μέρος 21 Graphics Framework extensions : Παρέχει ένα πλήρες προγραμματιστικό πλαίσιο για την ευέλικτη σύνθεση και απεικόνιση συνθετικών, όσο και φυσικών media. Το GFX παρέχει τις δυνατότητες για την ανάπτυξη ενός μεγάλου φάσματος οπτικο-ακουστικών εφαρμογών από κινητά τηλέφωνα έως και σταθερούς η/υ. 2.4 MPEG 7 Με την ύπαρξη των προτύπων MPEG-1, MPEG-2 και MPEG-4 καθώς και άλλων προτύπων για την κωδικοποίηση, επεξεργασία και διανομή οπτικοακουστικού υλικού, είχαμε μια αφθονία media προς τους χρήστες. Αυτό είχε σαν αποτέλεσμα να δημιουργηθούν άλλου είδους ανάγκες στους χρήστες, αυτή τη φορά σχετικές με την δυνατότητα ταξινόμησης όλου αυτού του διαθέσιμου υλικού, οργάνωσης του και τελικά φιλτραρίσματός του. Έγινε εμφανές ότι ένα πρόβλημα που έπρεπε να αντιμετωπιστεί ήταν πως μπορεί ο τελικός χρήστης να έχει πρόσβαση στα media που επιθυμεί επιλέγοντας, ανεξάρτητα από τον τρόπο κωδικοποίησής τους, ακριβώς αυτά που τον ενδιαφέρουν, απορρίπτοντας όσο το -14-

15 Πρότυπα του MPEG δυνατό περισσότερες άσχετες πληροφορίες. Έτσι η ομάδα του MPEG ξεκίνησε το 1996 ένα νέο πρότυπο, το MPEG-7. Στόχος του ήταν να περιγράψει όλα τα είδη οπτικο-ακουστικής πληροφορίας, από πρωταρχικά στοιχεία μέχρι ολοκληρωμένες δουλειές, ανεξάρτητα του format στο οποίο είναι κωδικοποιημένα και ανεξάρτητα του μέσου στο οποίο είναι αποθηκευμένα. Αντίθετα με τα προηγούμενα standards, το MPEG-7 παρέχει τα εργαλεία, αντί για τη συμπίεση και αναπαραγωγή των δεδομένων, για την περιγραφή των ίδιων των δεδομένων. Ο όρος που χρησιμοποιείται σε αυτή την περίπτωση είναι metadata και αποδίδει ακριβώς αυτά τα δεδομένα(meta-data) που χρησιμοποιούνται για περιγραφή των data που αποτελούν τα ωφέλιμα δεδομένα για αναπαραγωγή. Ακολουθώντας την ίδια αρχή, όπως και στα προηγούμενα πρότυπα, το MPEG προσδιορίζει μόνο της ελάχιστες αναγκαίες αρχές που καθορίζουν το πρότυπο, παραχωρώντας έτσι την ευελιξία στους προγραμματιστές της εκάστοτε εφαρμογής στην υλοποίηση του προτύπου. Το MPEG-7 καθορίζει δύο βασικά εργαλεία : Α) Descriptors : Ένας descriptor είναι μια αναπαράσταση μιας ιδιότητας, που ορίζει τη σύνταξη και τη σημασιολογία αυτής της ιδιότητας. Με τον όρο ιδιότητα αναφερόμαστε σε ένα διακριτό χαρακτηριστικό των οπτικο-ακουστικών δεδομένων με συγκεκριμένο νόημα. Για παράδειγμα ένα string χαρακτήρων που αναπαριστά τον τίτλο μιας ταινίας ή ένα ιστόγραμμα φάσματος χρώματος μιας σκήνης της ταινίας αποτελούν πιθανούς descriptors. Β) Description Scemes : Μια description scheme ορίζει τη δομή και τη σημασιολογία της σχέσης ανάμεσα σε ένα σύνολο που αποτελείται από descriptors, από description schemes ή και από τα δύο. Για παράδειγμα μια description scheme μπορεί να είναι η περιγραφή μιας ολόκληρης ταινίας δομημένη σε σκηνές και στιγμιότυπα. Σε κάθε σκηνή μπορεί να υπάρχει μια περιγραφή (descriptor) σε μορφή text, ενώ για κάθε στιγμιότυπο descriptors που αναφέρονται στο φάσμα του χρώματος ή του ήχου. Τα descriptors του MPEG-7 μπορούν να εκφραστούν με δύο τρόπους. Αρχικά ως streams κειμένου (textual streams) χρησιμοποιώντας μια περιγραφική γλώσσα αναπτυγμένη στα πλαίσια του προτύπου, την Description Definition Language (DDL) που χρησιμοποιεί την τεχνολογία XML3. Είτε ως binary streams χρησιμοποιώντας το format BiM (Binary Format for MPEG-7), που είναι ένα εργαλείο συμπίεσης της DDL. Το format αυτό αναπτύχθηκε για να ξεπεραστεί η αδυναμία της γλώσσας XML (στην οποία βασίζεται και η DDL) για λειτουργία σε εφαρμογές real-time, όπου το overhead το οποίο εισάγεται από την απεικόνιση ως κείμενο είναι αρκετά κρίσιμο. Η οργάνωση του MPEG-7 γίνεται σε 11 μέρη τα βασικά σημεία των οποίων αναπτύσσονται παρακάτω. 3 extensible Markup Language -15-

16 Πρότυπα του MPEG Μέρος 1 Συστήματα : Σε αυτό το μέρος περιγράφονται από το πρότυπο εργαλεία σύμφωνα με τα οποία μπορεί να γίνει μεταφορά και αποθήκευση των περιγραφών MPEG-7, χρησιμοποιώντας το format κωδικοποίησης BiM, καθώς και εργαλεία για τον συγχρονισμό των περιγραφών με το περιεχόμενο το οποίο αυτές περιγράφουν. Εδώ πρέπει να διευκρινιστεί ότι, οι MPEG-7 περιγραφές μπορούν να μεταδίδονται μαζί ή και ξεχωριστά από το περιεχόμενο στο οποίο αναφέρονται. Τέλος υπάρχει πρόβλεψη και για τη διαχείριση και προστασία των πνευματικών δικαιωμάτων που σχετίζονται με αυτές τις περιγραφές. Μέρος 2 Description Definition Language (DDL): Σε αυτό το μέρος ορίζεται η γλώσσα DDL με τη χρήση της οποίας δημιουργούνται οι περιγραφές των πολυμεσικών δεδομένων. Η γλώσσα αυτή παρέχει την ευκολία για την χρήση κάποιων ήδη ορισμένων περιγραφικών σχημάτων, καθώς και τη δυνατότητα για δημιουργία νέων ή τη τροποποίηση των υπαρχόντων ανάλογα με τις ιδιαιτερότητες του περιεχομένου. Η γλώσσα DDL βασίζεται στην XML. Μέρος 3 Visual : Σε αυτό το μέρος ορίζονται descriptors και description schemes, δηλαδή βασικές περιγραφικές δομές, για την περιγραφή οπτικού περιεχομένου. Αυτά παρέχουν, εκτός από πληροφορίες για βασικές οπτικές ιδιότητες και χρονικές πληροφορίες, όπως η θέση ενός συγκεκριμένου αντικειμένου σε μια αλληλουχία εικόνων ή video. Πέντε από τις βασικές ιδιότητες που περιγράφονται είναι το χρώμα, το σχήμα, η κίνηση, η υφή και η χρονική θέση. Μέρος 4 Audio : Eδώ ορίζονται descriptors σχετικά με τον ήχο, οι οποίοι οργανώνονται σε μέρη, όπως μελωδία, ηχητικά εφέ, λόγος και άλλα. Μέρος 5 Multimedia Description Schemes(MDS) : Τα description schemes που ορίζονται στο MPEG-7, είναι δομές από metadata για την περιγραφή οπτικο-ακουστικού περιεχομένου. Το κύριο σημείο της διαφοράς τους με τους descriptors, είναι τα χαρακτηριστικά που καλούνται να περιγράψουν. Οι descriptors αναφέρονται κυρίως σε χαρακτηριστικά χαμηλού επιπέδου όπως το χρώμα, η υφή ή η κίνηση σε ένα video. Επίσης αναφέρονται σε τέτοιου είδους χαρακτηριστικά, που είναι αναμενόμενο να παράγονται κατευθείαν από την εφαρμογή που θα υποστηρίζει το πρότυπο. Αντίθετα τα Description Schemes αναφέρονται σε χαρακτηριστικά επιπέδου, όπως για παράδειγμα ολόκληρες σκηνές υψηλότερου video, τμήματα ενός μουσικού κομματιού, αντικείμενα ή γεγονότα. Τα Description Schemes -16-

17 Πρότυπα του MPEG μπορούν να οργανωθούν σε 6 διαφορετικές κατηγορίες ανάλογα με τη λειτουργικότητά τους, όπως φαίνεται και στην παρακάτω εικόνα 2.2. Εικόνα 2.2 Αυτές είναι: i) περιγραφή περιεχομένου : αναφέρεται και σε δομικούς και σε σημασιολογικούς τομείς. ii) διαχείριση περιεχομένου : χρήση και δημιουργία των media. iii) οργάνωση περιεχομένου : συλλογές και μοντέλα. Στην εικόνα 2.3 φαίνεται μια τέτοια οργάνωση μιας εικόνας όπου αρχικά εικόνα περιγράφεται ως ακίνητη περιοχή 1 (Still Region 1,SR1), δίνοντας χαρακτηριστικά για τη δημιουργία του αντικειμένου, το format της εικόνας, μια περιγραφή σε κείμενο της εικόνας και το χρωματικό ιστόγραμμα. Στη συνέχεια η αρχική εικόνα αναλύεται σε υποπεριοχές, δίνοντας επιπλέον χαρακτηριστικά για την κάθε μία. -17-

18 Πρότυπα του MPEG Εικόνα 2.3 iv) πλοήγηση και πρόσβαση : διευκόλυνση στην πλοήγηση στο υλικό ορίζοντας συλλογές και παραλλαγές αυτών. v) ιδιότητες χρήστη : προτιμήσεις χρήστη και ιστορικό των επιλογών του. vi) βασικά στοιχεία : δομές, τύποι δεδομένων και κάποια description schemes, τα οποία παρέχουν βασικές δομές για την περιγραφή των δεδομένων, όπως διανύσματα και πίνακες, συνδέσμους σε άλλα media, χρονικές σημάνσεις και δομές για την περιγραφή προσώπων. Μέρος 6 Software αναφοράς : Κατά αντιστοιχία με τα προηγούμενα πρότυπα, περιέχει software που υλοποιεί τα εργαλεία που περιγράφονται στα παραπάνω μέρη. Μέρος 7 Τεστ Συμβατότητας : Ορίζει τις διαδικασίες για τον έλεγχο της συμβατότητας των description streams με τα παραπάνω μέρη του προτύπου. Μέρος 8 Εξαγωγή και χρήση MPEG-7 descriptions : Παρέχει πληροφορίες για την εξαγωγή και χρήση των description, αναφορικά με τις υλοποιήσεις που δίνονται στο software αναφοράς. -18-

19 Πρότυπα του MPEG Μέρος 9 Profiles and Levels : Καθορίζει επίπεδα αναλυτικότητας και πολυπλοκότητας των descriptors, ανάλογα με αυτά που ορίζονται και στο πρότυπο MPEG-2. Μέρος 10 Ορισμός Σχήματος : Ορίζει το σχήμα (schema), το οποίο θα πρέπει να ακολουθείται από όλους τους descriptors στα διάφορα μέρη του προτύπου. Συγκεντρώνει όλες τις συντακτικές πληροφορίες για όλο το πρότυπο σε ένα τελικό XML schema, το οποίο περιγράφεται με τη χρήση της γλώσσας DDL. Τέλος ορίζει και το ανάλογο XML namespace για το πρότυπο. Μέρος 11 Σχήματα για τα profiles : Συμπεριλαμβάνει τα XML schemas για κάθε διαφορετικό profile του προτύπου. -19-

20 XML 3 XML Σε αυτό το κεφάλαιο θα γίνει μια σύντομη αναφορά στη γλώσσας XML, η οποία θα μας χρειαστεί στη μετέπειτα παρουσίαση του προτύπου MPEG-21, αφού η XML είναι η γλώσσα στην οποία βασίζεται η περιγραφή και υλοποίηση των δομικών μονάδων του MPEG-21. Τα αρχικά XML προέρχονται από το extensible Markup Language (Επεκτάσιμη Γλώσσα Σημείωσης). H γλώσσα XML είναι μια γλώσσα, η οποία αναπτύχθηκε ως πρότυπο από τo W3C4 το Ο βασικός σκοπός, για τον οποίο αναπτύχθηκε η XML, είναι η περιγραφή και σημείωση διάφορων μορφών δεδομένων σε ένα τυποποιημένο, αλλά και ευέλικτο format, έτσι ώστε αυτά να είναι ευανάγνωστα και κατανοητά, τόσο από τον άνθρωπο όσο και από μία εφαρμογή. Αυτό επιτυγχάνεται κυρίως με τη χρήση κάποιων tags(ετικέτες), που μπορούν να παρομοιαστούν με τα HTML tags τις γλώσσας HTML. Ένα απλό παράδειγμα ενός XML document που παρουσιάζει ένα σημείωμα και πληροφορίες σχετικές με αυτό δίνεται παρακάτω στο έγγραφο 3.1. <note> <to> Tove </to> <from> Jani </from> <heading> Reminder </heading> <body> Don't forget me this weekend! </body> </note> Έγγραφο Βασικά χαρακτηριστικά Η XML είναι ουσιαστικά μια γλώσσα για έγγραφα κειμένου. Όλα τα δεδομένα που παρουσιάζονται σε ένα έγγραφο XML, καθώς και τα διάφορα tags που χρησιμοποιούνται, είναι σε μορφή string κειμένου. Αυτό είναι και το βασικό προσόν της XML, αφού προσφέρει απλότητα και μεγάλη ευελιξία, μιας και οποιαδήποτε εφαρμογή, η οποία μπορεί να διαβάσει ένα έγγραφο κειμένου, μπορεί να έχει πρόσβαση στα δεδομένα που περιγράφονται. Η βασική δομική μονάδα της XML είναι το element (στοιχείο), το οποίο καθορίζεται από ένα αρχικό tag και ένα τελικό. Λόγου χάρη, στο παραπάνω παράδειγμα το στοιχείο «heading» ορίζεται από το αρχικό tag <heading>, το τελικό </heading> και περιέχει τα 4 The World Wide Web Consortium -20-

21 XML δεδομένα «Reminder». Το σημαντικό όμως που πρέπει να τονιστεί είναι, ότι τα elements δεν είναι ανάγκη να ανήκουν σε ένα προκαθορισμένο σύνολο, αλλά ο δημιουργός κάθε εγγράφου είναι ελεύθερος να ορίσει τα δικά του elements, σύμφωνα με τις ανάγκες των δεδομένων που επιθυμεί να περιγράψει. Παρόλη την ευελιξία ως προς την επιλογή των elements, η XML ορίζει μία συγκεκριμένη συντακτική δομή, την οποία κάθε έγκυρο έγγραφο θα πρέπει να ακολουθεί. Η δομή αυτή αναφέρεται κυρίως στη θέση την οποία θα πρέπει να μπουν τα tags, πως θα πρέπει να είναι ορισμένα, ποια ονόματα είναι έγκυρα για elements και πως μπορούν να προσαρμοστούν attributes (ιδιότητες) για κάθε element. Κάθε έγγραφο που ακολουθεί αυτούς τους συντακτικούς κανόνες ονομάζεται well-formed (καλά δομημένο). Επίσης για την επαλήθευση της συντακτικής ορθότητας ενός εγγράφου, χρησιμοποιούνται οι XML parsers(συντακτικοί αναλυτές), οι οποίοι διαβάζουν ένα έγγραφο και έχουν τη δυνατότητα να το απορρίψουν αν περιέχει συντακτικά λάθη. Σε ένα well-formed XML έγγραφο οι σχέσεις μεταξύ των διαφόρων elements, δηλαδή πόσα άλλα elements περιέχει ένα element ή σε ποιο element ανήκει ένα element, περιγράφονται από την ίδια τη δομή του εγγράφου και την επιλογή των ονομάτων των elements. Για λόγους διαλειτουργικότητας μπορεί να συμφωνηθεί, ανάμεσα σε άτομα ή κοινότητες, η χρήση μιας ομάδας τυποποιημένων tags για τον ορισμό των elements. Τότε τα επιτρεπόμενα tags μπορούν να περιγραφούν σε ένα άλλο έγγραφο, το οποίο ονομάζεται XML schema (XML σχήμα). Οι parsers έχουν την δυνατότητα να ελέγχουν τη συμβατότητα ενός XML εγγράφου σύμφωνα με ένα συγκεκριμένο XML schema. Σε μια τέτοια περίπτωση, το έγγραφο κρίνεται από τον parser ως valid(έγκυρο) ή invalid(μη έγκυρο). Η συμβατότητα με ένα XML schema είναι κάτι προαιρετικό και αποφασίζεται ανάλογα με την εφαρμογή. Εξάλλου σε πολλές εφαρμογές είναι αρκετό τα XML αρχεία να είναι απλά well-formed. Για την ανάπτυξη τέτοιων XML schemas έχουν αναπτυχθεί διάφορες γλώσσες. Αυτή που προδιαγράφεται από το W3C ονομάζεται XML Schema Language, ενώ υπάρχει και η σχετικά πιο απλή DTD(Document Type Definition). Τέλος, μιας και η χρήση των tags κάνει την XML να μοιάζει με HTML, πρέπει να τονιστεί ότι πρόκειται για δύο τελείως διαφορετικά πράγματα με τελείως διαφορετικούς στόχους. H HTML είναι μια γλώσσα παρουσίασης δεδομένων που έχει ένα σταθερό και προκαθορισμένο σύνολο από tags. Αντίθετα η XML στοχεύει αποκλειστικά και μόνο στην δομή, την οργάνωση και την παρουσίαση της σημασιολογίας των δεδομένων. Έτσι, σε ένα well-formed XML έγγραφο δεν υπάρχουν πληροφορίες για τον αν για παράδειγμα, ένα string χαρακτήρων θα παρουσιαστεί με έντονη γραφή ή πλαγιαστή και γενικότερα δεν υπάρχουν οι -21-

22 XML πληροφορίες για την παρουσίαση και εμφάνιση των δεδομένων που περιγράφονται. 3.2 Δομικά Στοιχεία της XML Elements Όπως αναφέρθηκε και παραπάνω βασική δομική μονάδα ενός εγγράφου XML είναι το element. Κάθε element πρέπει να ξεκινά με ένα tag της μορφής <element_name> και να κλείνει με ένα της μορφής </element_name>. Επίσης μπορούν να οριστούν κενά elements με τον εξής τρόπο <element_name/>. To κάθε element μπορεί να περιέχει δεδομένα χαρακτήρων ή άλλα elements ή και τα δύο. Τα elements που περιέχονται σε ένα άλλο element ονομάζονται παιδιά του (child elements), ενώ το element που τα περιέχει γονέας (parent element). Κάθε element μπορεί να έχει άπειρα child elements, αλλά μόνο ένα parent element. Αυτό σημαίνει ότι κάθε element πρέπει να αρχίζει και να τελειώνει μέσα στο ίδιο element. Εξαίρεση αποτελεί το root element του εγγράφου, που είναι απαραίτητο να υπάρχει. Δεν έχει parent element και είναι το πρώτο element του εγγράφου, που περιέχει όλα τα υπόλοιπα. Τέλος, πρέπει να αναφερθεί ότι τα tags στην XML είναι case-sensitive, δηλαδή το tag <root> διαφέρει από το tag <Root>. Τα ονόματα που μπορούν να χρησιμοποιηθούν μπορούν να έχουν οποιουσδήποτε χαρακτήρες, εκτός από ορισμένα σημεία στίξης όπως εισαγωγικά, απόστροφο, επί τοις εκατό και τον χαρακτήρα δολάριο. Ένα well-formed XML document φαίνεται στο έγγραφο 3.2. Σε αυτό το παράδειγμα γίνεται η περιγραφή της οντότητας person, η οποία έχει τα εξής βασικά χαρακτηριστικά : name και profession. Στην συγκεκριμένη περίπτωση το element name αποτελείται από τα first_name και last_name ενώ το element person έχει τρία child elements profession που περιγράφουν συνολικά το επάγγελμα του ατόμου. Η ακριβής δομή, τα ονόματα, καθώς και ο αριθμός των elements είναι τελείως υποκειμενικό θέμα και ο συντάκτης του κάθε εγγράφου είναι ελεύθερος να αποφασίσει το format, που εξυπηρετεί καλύτερα την εφαρμογή του και τη φύση των δεδομένων, που θέλει να περιγράψει. <person> <name> <first_name>alan</first_name> <last_name>turing</last_name> </name> <profession>computer scientist</profession> <profession>mathematician</profession> <profession>cryptographer</profession> -22-

23 XML </person> Έγγραφο 3.2 Attributes (Ιδιότητες) Κάθε XML element μπορεί να έχει ένα ή και περισσότερα attributes, τα οποία ορίζονται στο αρχικό tag του element. Τα attributes είναι ζεύγη ονόματος τιμής και ορίζονται από το όνομα, το σημείο ισον(=), και την τιμή κλεισμένη σε εισαγωγικά, όπως φαίνεται και παρακάτω. Ο μόνος περιορισμός που υπάρχει είναι να μην υπάρχουν δύο attributes με το ίδιο όνομα στο ίδιο element. Στο παράδειγμα του εγγράφου 3.3 φαίνεται το έγγραφο 3.2 ξαναγραμμένο, αλλά τώρα με τη χρήση attributes. Το αν κανείς θα χρησιμοποιήσει attribute ή ένα νέο element για μια πληροφορία, είναι καθαρά υποκειμενικό θέμα. Εξαρτάται από τη δομή της πληροφορίας, την εφαρμογή που θα χρησιμοποιήσει το XML έγγραφο και τέλος από την κρίση του δημιουργού του εγγράφου. <person> <name first="alan" last="turing"/> <profession value="computer scientist"/> <profession value="mathematician"/> <profession value="cryptographer"/> </person> Έγγραφο 3.3 Σχόλια CDATA Οδηγίες επεξεργασίας Μέσα σε ένα XML document μπορούμε να προσθέσουμε και σχόλια τα οποία θα αγνοηθούν τελείως από τον XML parser. Τα σχόλια ξεκινούν με τους χαρακτήρες <!-- και κλείνουν με τους χαρακτήρες --> όπως στο παράδειγμα του εγγράφου 3.4. <person> <!-- Need to be checked again --> <name first="alan" last="turing"/> <profession value="computer scientist"/> <profession value="mathematician"/> <profession value="cryptographer"/> </person> Έγγραφο

24 XML Σε ένα XML έγγραφο μπορεί να περιέχονται δείγματα από κώδικα σε HTML ή από ένα άλλο XML αρχείο ή γενικά μέρος ενός οποιουδήποτε αρχείου κειμένου. Σε αυτή την περίπτωση για να μην υπάρχει πρόβλημα και συνεχίσει να είναι well-formed το έγγραφο θα πρέπει να αντικαταστήσουμε τους χαρακτήρες < και &, που εμφανίζονται για παράδειγμα στη γλώσσα HTML, αλλά είναι και μέρη της συντακτικής δομής της XML, με &lt και &amp αντίστοιχα. Για ευκολία αν έχουμε ένα μεγάλο μέρος που περιέχει τέτοιους χαρακτήρες, μπορούμε να ορίσουμε μια περιοχή CDATA αρχίζοντας με <![CDATA[ και κλείνοντας με ]]>. Σε αυτή την περίπτωση τα δεδομένα που βρίσκονται σε αυτή την περιοχή, δεν μεταφράζονται ως μέρος του XML εγγράφου από τον parser, αλλά θεωρούνται ως string χαρακτήρων με αδιάφορη δομή για το XML έγγραφο. Η γλώσσα XML παρέχει μια έξτρα δυνατότητα για την παροχή πληροφοριών σε μια συγκεκριμένη εφαρμογή που πρόκειται να επεξεργαστεί το XML έγγραφο. Αυτή η δυνατότητα δίνεται μέσα από τις οδηγίες επεξεργασίας, που ορίζονται από ένα αρχικό tag <? και ένα τελικό tag?>. Αμέσως μετά το αρχικό tag μπαίνει μια λέξη (target name) που αναφέρεται στην εφαρμογή για την οποία έχει προβλεφθεί αυτή η οδηγία επεξεργασίας. Για παράδειγμα: <?robots index="yes" follow="no"?> Σε αυτό το παράδειγμα η εφαρμογή στην οποία αναφέρεται η οδηγία, είναι η εφαρμογή robots. Το περιεχόμενο της οδηγίας μπορεί να έχει οποιαδήποτε μορφή και να περιέχει οτιδήποτε σε μορφή κειμένου, ανάλογα με την εφαρμογή στην οποία αναφέρεται. Declaration. Μπαίνει Μια συνήθως προαιρετικά χρησιμοποιούμενη στην αρχή κάθε οδηγία εγγράφου είναι και η XML παρέχει πληροφορίες σχετικά με την έκδοση της XML στην οποία έχει γραφτεί το έγγραφο, την κωδικοποίηση των χαρακτήρων του εγγράφου και για το αν η εφαρμογή θα χρειαστεί να διαβάσει ένα εξωτερικό DTD έγγραφο ή όχι, όπως φαίνεται στο έγγραφο 3.5. <?xml version="1.0" encoding="iso " standalone="yes"?> <person> Erwin Schrödinger </person> Έγγραφο

25 XML Namespaces Τα namespaces στη XML εξυπηρετούν δύο λόγους κυρίως. Αφενός για να ξεχωρίζονται μέσα στο ίδιο έγγραφο elements και attributes που έχουν διαφορετικό νόημα, αλλά τυχαίνει να έχουν το ίδιο όνομα και αφετέρου για να μπορούν να ομαδοποιηθούν τα elements σε ομάδες που έχουν συναφές νόημα και έτσι να αναγνωριστούν πιο εύκολα από τις εφαρμογές. Τα namespaces υλοποιούνται προσθέτοντας ένα prefix(πρόθεμα) στο κάθε element. Επίσης κάθε namespace αντιστοιχίζεται σε ένα URI5 με μία attribute της μορφής xmlns:prefix. Στο έγγραφο 3.6 που ακολουθεί φαίνεται η χρήση namespace για τη διάκριση και ομαδοποίηση των elements. <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0"xmlns:xsl=" <xsl:template match="/"> <html> <body> <h2>my CD Collection</h2> <table border="1"> <tr> <th align="left">title</th> <th align="left">artist</th> </tr> <xsl:for-each select="catalog/cd"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="artist"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Έγγραφο Πλεονεκτήματα της XML Ένα από τα βασικά πλεονεκτήματα της γλώσσας XML είναι ότι είναι ανεξάρτητη της πλατφόρμας πάνω στην οποία τρέχει η εφαρμογή που πρόκειται να επεξεργαστεί ένα έγγραφο XML. Το γεγονός ότι πρόκειται απλά για ένα κείμενο χαρακτήρων, 5 της δίνει την δυνατότητα Universal Resource Identifier -25- της επεξεργασίας από εφαρμογές

26 XML γραμμένες ακόμα και σε διαφορετικές γλώσσες προγραμματισμού. Η ευελιξία στον ορισμό των elements, σε συνδυασμό με τη σαφή και αυστηρή δομή, την καθιστούν ικανή για μεταφορά δεδομένων μέσα από δίκτυα και την αξιοποίησή τους από διάφορες εφαρμογές. Η εφαρμογή που πρόκειται να επεξεργαστεί το έγγραφο χρειάζεται να γνωρίζει μόνο κάποιες βασικές πληροφορίες για το χειρισμό των elements που θα περιέχει το έγγραφο που θα λάβει. Τελικά η εφαρμογή είναι έτσι υλοποιημένη, ώστε να μπορεί να επεξεργαστεί διάφορες παραλλαγές του εγγράφου, γνωρίζοντας εξειδικευμένες μόνο πληροφορίες για κάποιες τα δομικές, συγκεκριμένα αρχικές πληροφορίες. δεδομένα του Οι εκάστοτε εγγράφου προκύπτουν μέσα από την ίδια τη δομή. Τέλος η XML μπορεί να χρησιμοποιηθεί σε οποιαδήποτε μορφή δεδομένων, που μπορούν να περιγραφτούν με κείμενο και απαιτείται να αποθηκευτούν ή να ανταλλαχτούν μεταξύ υπολογιστών. Για τους παραπάνω λόγους η XML κρίθηκε από την ομάδα του MPEG, ως η κατάλληλη γλώσσα για την δημιουργία των Digital Items (ψηφιακών αντικειμένων) του MPEG-21, όπως θα παρουσιαστεί και στα επόμενα κεφάλαια. -26-

27 Το πρότυπο 4 MPEG Εισαγωγή To MPEG-21 είναι το τελευταίο από τα πρότυπα, τα οποία έχει αναπτύξει η ομάδα MPEG. Η προσπάθεια για την ανάπτυξή του ξεκίνησε το 2000 σε μία προσπάθεια για τη δημιουργία ενός πλαισίου, που θα κάλυπτε όλες τις ανάγκες του ψηφιακού κόσμου για διαλειτουργικότητα και απρόσκοπτη ενοποίηση στις υπηρεσίες ψηφιακά κωδικοποιημένου, multimedia περιεχομένου. Σύμφωνα με τη διαδικασία πιστοποίησης του ISO, έχει τον κωδικό ISO/IEC Το MPEG-21 διαφέρει σημαντικά με τα προηγούμενα πρότυπα MPEG, καθώς δεν αναφέρεται στην κωδικοποίηση του περιεχομένου όπως τα MPEG 1-2-4, αλλά ούτε και στη σημασιολογική περιγραφή του, όπως το MPEG-7. Με λίγα λόγια θα μπορούσαμε να πούμε ότι το MPEG-21 έρχεται να ενοποιήσει τα πριν από αυτό πρότυπα, ορίζοντας αρχικά ένα πλαίσιο για τη συνεργασία των άλλων προτύπων και έπειτα καλύπτοντας οποιαδήποτε άλλα κενά προκύπτουν στην αλυσίδα της μετάδοσης multimedia από έναν χρήστη σε έναν άλλο. Στα επόμενα κεφάλαια θα γίνει μια περιγραφή του προτύπου αρχίζοντας από τις ανάγκες που οδήγησαν σε αυτό το πρότυπο και τους στόχους που καλείται να εκπληρώσει. 4.2 Προβλήματα στη διάθεση πολυμέσων Οι σημερινές απαιτήσεις του σύγχρονου κόσμου για multimedia είναι συνεχώς αυξανόμενες και εκτείνονται σε ένα ευρύ φάσμα ανθρώπινων δραστηριοτήτων, ξεκινώντας από την εργασία και την ενημέρωση, έως και τη διασκέδαση. Εκτός όμως από την απλή πρόσβαση σε αυτό το περιεχόμενο, αυξάνεται και η απαίτηση του κοινού για γρήγορη, άμεση αλλά και επιλεκτική πρόσβαση. Για την εξυπηρέτηση αυτών των αναγκών, διάφορες εταιρίες του χώρου, προχωρούν στην προώθηση συσκευών, οι οποίες διαφημίζουν τις δυνατότητές τους για αναπαραγωγή πολυμεσικού περιεχομένου. Για παράδειγμα, το κινητό τηλέφωνο έχει εξελιχθεί σε ένα φορητό σημείο πρόσβασης στο διαδίκτυο και σε ένα μέσο αναπαραγωγής και δημιουργίας εικόνας, video και ήχου, ξεφεύγοντας από τον αρχικό σκοπό του, που ήταν η τηλεφωνία. Γενικά υπάρχει μια αφθονία τερματικών συσκευών για την αναπαραγωγή και δημιουργία media -27-

28 Το πρότυπο και η κάθε εταιρία προσπαθεί να εξοπλίσει τα προϊόντα της, με όσο το δυνατόν περισσότερες λειτουργίες. Εκτός από την αφθονία των τερματικών συσκευών, υπάρχει και μεγάλη διαφοροποίηση και πλουραλισμός στον τρόπο με τον οποίο αυτές επικοινωνούν και δίνουν τελικά την πρόσβαση στο ζητούμενο περιεχόμενο. Ενδεικτικά, υπάρχουν δίκτυα κινητής τηλεφωνίας, τοπικά δίκτυα υπολογιστών, ευρυζωνικά δίκτυα που παρουσιάζουν αρκετές ιδιαιτερότητες, οι οποίες θα πρέπει να ληφθούν υπόψη για την εύκολη μεταφορά των δεδομένων. Τα παραπάνω, τερματικές συσκευές και δίκτυα επικοινωνιών, διαμορφώνουν ένα πολύπλοκο περιβάλλον, το οποίο δυσχεραίνει την πρόσβαση των χρηστών. Επίσης αυτή η ετερογένεια παρουσιάζει δυσκολίες, τόσο στους δημιουργούς των πολυμέσων, όσο και σε εταιρίες, που είτε παράγουν, είτε προσφέρουν υπηρεσίες σχετικές με πολυμέσα. Έτσι, τους είναι δύσκολο να εξασφαλίσουν ότι το προϊόν τους θα έχει το συμφωνημένο με το χρήστη επίπεδο ποιότητας (Quality of service), όπως και το αν ο τελικός χρήστης θα μπορέσει να αναπαράγει σωστά το προϊόν τους. Αν και υπάρχουν σήμερα αρκετά πρότυπα για πολυμέσα, τα οποία στοχεύουν στη διαδικασία διάδοσης και παραγωγής, αυτό που λείπει είναι η πρόβλεψη για συνεργασία μεταξύ αυτών των προτύπων σε περιπτώσεις, όπου μεμονωμένοι χρήστες ή κοινότητες χρηστών έχουν επιλέξει, για διάφορους λόγους, διαφορετικές τεχνολογίες για την κωδικοποίηση των δεδομένων τους. Μία άλλη επίπτωση είναι ο μη σαφής προσδιορισμός του δημιουργού και του καταναλωτή των πολυμέσων. Με την πτώση του κόστους και την εξάπλωση των δικτύων Η/Υ ο κάθε απλός χρήστης μπορεί να δρα και σαν καταναλωτής, αλλά και σαν δημιουργός πολυμέσων. Χρειάζεται λοιπόν ο καθορισμός ενός γενικού πλαισίου, που θα φέρνει σε συνεργασία διαφορετικές τεχνολογίες και θα παρέχει στον κάθε χρήστη τη δυνατότητα για παραγωγή και κατανάλωση πολυμέσων με διαφανή τρόπο, χωρίς να τον αναγκάζει να εισέρχεται σε εξειδικευμένες πληροφορίες της κάθε τεχνολογίας. Ανάμεσα στα παραπάνω, ένα άλλο μεγάλο ζήτημα που έχει προκύψει, είναι η σωστή και νόμιμη διαχείριση των πολυμέσων. Με την ελευθερία για δημιουργία και διάθεση υλικού παρέχεται και η ευκολία σε διάφορα άτομα της διάθεσης παράνομου υλικού, καθώς και υλικού που περιέχει προσωπικά δεδομένα σε τρίτους χρήστες. Προκύπτει έτσι η ανάγκη, για ένα πλαίσιο διάθεσης πολυμέσων, που θα μπορεί να εξασφαλίζει με διάφορους μηχανισμούς την ασφάλεια των προσωπικών δεδομένων και θα παρέχει τα κατάλληλα εργαλεία για την προστασία των πνευματικών δικαιωμάτων των δημιουργών. Πάνω σε αυτόν τον τομέα έχουν αναπτυχθεί από διάφορες εταιρίες αρκετές τεχνολογίες που χαρακτηρίζονται γενικά ως DRM(Digital Rights Management). Το πρόβλημα είναι ότι οι τεχνολογίες αυτές δεν είναι συμβατές μεταξύ τους, οπότε στην προσπάθειά τους για προστασία -28-

29 Το πρότυπο των δεδομένων προσθέτουν ακόμα έναν βαθμό πολυπλοκότητας και επιβάλλουν περιορισμούς στον τελικό χρήστη. Είναι εμφανές ότι υπάρχει η ανάγκη, εκτός από τους άλλους τομείς να υπάρξει και μια πρόβλεψη για συνεργασία αυτών των συστημάτων DRM, ώστε παράλληλα με την ασφάλεια να εξασφαλίζεται συνεργασία και άνετη πρόσβαση του χρήστη στο υλικό. 4.3 Στόχοι του MPEG-21 Οι στόχοι της ομάδας MPEG-21 για το καινούριο πρότυπο MPEG-21 μπορούν να συνοψιστούν γενικά με μία λέξη, τη διαλειτουργικότητα. Το «όραμα» ήταν η δημιουργία ενός γενικού πλαισίου, το οποίο θα παρείχε τη δυνατότητα να θέσει το χρήστη και το υλικό σαν τα πρωταρχικά στοιχεία στην μεταφορά πολυμέσων, ενώ οι διάφορες τεχνολογίες για την αναπαράσταση και διάθεση του υλικού δεν θα ήταν εμφανείς στο χρήστη. Έτσι το μοντέλο αυτό θα έδινε την ελευθερία στον τελικό χρήστη να έχει πρόσβαση σε όποιο υλικό επιθυμεί, ανάλογα με τις ανάγκες του, χωρίς να χρειάζεται να λάβει υπόψη τεχνικά ζητήματα. Για την επίτευξη αυτού του γενικού στόχου, είναι απαραίτητο να προδιαγραφούν τεχνολογίες, τόσο για την αναπαράσταση και δόμηση του υλικού, όσο και για τη διαδικασία της επικοινωνίας. Όπως και στα προηγούμενα πρότυπα, έτσι και σε αυτό, έγινε προσπάθεια, έτσι ώστε να καθοριστούν οι λιγότερες δυνατές προδιαγραφές που θα εξασφαλίζουν το επιθυμητό αποτέλεσμα, αλλά θα αξιοποιούν και τις υπάρχουσες τεχνολογίες στο χώρο των πολυμέσων. Αυτό εξασφαλίζει την ενσωμάτωση στο πρότυπο και νέων καινοτομιών, εκτός των υφιστάμενων στο χώρο, καθώς και την προώθηση της ανταγωνιστικότητας και της ελευθερίας στην υλοποίηση του προτύπου, σύμφωνα με τις εκάστοτε ανάγκες. Η τελική προσδοκία είναι διαφορετικές ομάδες χρηστών να μπορούν, κάτω από το κοινό πλαίσιο, να ανταλλάσουν άνετα πολυμεσικό υλικό, διατηρώντας όμως η καθεμία τα διαφορετικά, ως προς τον τρόπο αναπαράστασης των δεδομένων, χαρακτηριστικά της. Για την επίτευξη των γενικών στόχων του MPEG-21 τέθηκαν έξι συγκεκριμένα βήματα που θα έπρεπε να ακολουθηθούν κατά τη διάρκεια της ανάπτυξης, έτσι ώστε να εξασφαλισθεί ότι το τελικό αποτέλεσμα θα ικανοποιούσε τους παραπάνω γενικούς στόχους. Αυτά τα έξι βήματα είναι τα εξής : 1. Δημιουργία μιας βασικής δομής ενός πλαισίου για multimedia που θα υποστηρίζει τον στόχο του MPEG Αναγνώριση και προσδιορισμός τον σημαντικών στοιχείων του πλαισίου. -29-

30 Το πρότυπο 3. Κατανόηση και προσδιορισμός των σχέσεων μεταξύ τον στοιχείων του πλαισίου. Παράλληλα προσδιορισμός των πιθανών στοιχείων που λείπουν. 4. Διαβεβαίωση ότι άλλοι οργανισμοί πιστοποίησης με παρόμοιο αντικείμενο θα καλεστούν να συμμετέχουν στην όλη προσπάθεια. 5. Εκτίμηση των στοιχείων που λείπουν για τη δημιουργία της ολοκληρωμένης εικόνας του προτύπου. Αν αυτά εμπίπτουν στα ενδιαφέροντα του MPEG εκκίνηση εργασιών για την ανάπτυξή τους. Σε διαφορετική περίπτωση ενημέρωση από άλλους οργανισμούς που ασχολούνται με συναφή αντικείμενα. 6. Ενσωμάτωση του τελικού προτύπου σε υπάρχουσες ή νέες ευρύτερες τεχνολογίες είτε του MPEG είτε άλλων οργανισμών. Εκτός από την ανάπτυξη του προτύπου, οι τελευταίες από τις παραπάνω θέσεις του MPEG φανερώνουν και τη μέριμνα που έχει ληφθεί για την εξασφάλιση της, όσο το δυνατόν μεγαλύτερης συνεργασίας αυτού του προτύπου με άλλα, έτσι ώστε να επιτευχθεί ο αρχικός στόχος της διαλειτουργικότητας. 4.4 Βασικά Στοιχεία του MPEG-21 Σε αυτό το κεφάλαιο θα γίνει μια πρώτη παρουσίαση των βασικών στοιχείων που αποτελούν το MPEG-21 και τα οποία θα χρησιμοποιηθούν συχνά στην περαιτέρω ανάλυση. Τα βασικά στοιχεία που συνθέτουν το πρότυπο είναι τρία. Αυτά είναι η έννοια του Digital Item(Ψηφιακό αντικείμενο), του Resource (Πόρος) και του User(Χρήστη). i. Digital Item : Για την ανάπτυξη του MPEG-21 ήταν απαραίτητο να εισαχθεί ένα νέος όρος για την περιγραφή κάθε «ορισμένης οντότητας» που μπορεί να αποσταλεί στα πλαίσια του προτύπου. Αυτό οδήγησε στην υιοθέτηση του όρου Digital Item (DI), ο οποίος χρησιμοποιείται για να περιγράψει ένα ψηφιακό αντικείμενο με συγκεκριμένη δομή, αναπαράσταση και metadata μέσα στο πρότυπο MPEG-21. Το DI είναι η βασική μονάδα που χρησιμοποιείται σε κάθε αποστολή περιεχομένου και κάθε συναλλαγή. Μπορεί να είναι ένα μουσικό album, ένα video ή οτιδήποτε άλλο. Στην πραγματικότητα κάθε τι που θα χρησιμοποιηθεί στο MPEG-21, πρέπει να βρίσκεται μέσα σε αυτό το «ψηφιακό πακέτο» που προσφέρει μια δομή γύρω από το ψηφιακό υλικό(video,audio), καθώς επίσης παρέχει τη δυνατότητα για προσθήκη και άλλων resources σχετικές με αυτό. Ένα πολύ απλό παράδειγμα ενός DI είναι ένα μουσικό κομμάτι κωδικοποιημένο σε -30-

31 Το πρότυπο format MP3 μαζί με metadata, που έχουν πληροφορίες για τον τίτλο, τον καλλιτέχνη και το bitrate του κομματιού. Μια περισσότερο σύνθετη μορφή ενός DI παρουσιάζεται στην εικόνα 4.1. Αυτό το DI περιέχει πληροφορίες και multimedia που σχετίζονται με ένα πανεπιστήμιο. Εικόνα 4.1 ii. Resource(πόρος) : Αυτός ο όρος χρησιμοποιείται για να δηλώσει μια ξεχωριστή, ορισμένη οντότητα, όπως ένα συγκεκριμένο κομμάτι video ή ήχου, μια εικόνα ή ένα κείμενο. Βασική διαφορά με τα DIs είναι ότι ένα resource δεν έχει δομή, αντίθετα με ένα DI που πάντοτε έχει μια σαφώς ορισμένη δομή. Το προτέρημα που παρέχεται με τον ορισμό των resources, είναι η δυνατότητα που προσφέρουν στο δημιουργό ενός DI, να επιλέξει τα δικά του resource ανάλογα με την αναλυτικότητα που επιθυμεί να έχει το τελικό DI. Τα resources χρησιμοποιούνται ευρύτατα στο MPEG-21 και μπορούν να είναι ακόμη και φυσικά αντικείμενα, τα οποία χρησιμοποιούνται σε ένα DI με αναφορά. iii. User(χρήστης) : Ως user ορίζεται η οντότητα που ενεργεί πάνω σε ένα DI ή χρησιμοποιεί ένα DI και γενικότερα το πρότυπο MPEG-21. Δεν υπάρχει διαχωρισμός ανάμεσα στον «πάροχο υλικού» και στον «καταναλωτή». Και οι δύο ορίζονται ως users που μπορούν να αλληλεπιδρούν με DIs. Σε κάθε -31-

32 Το πρότυπο user μπορεί να δίνονται συγκεκριμένα δικαιώματα και δυνατότητες ανάλογα με το βαθμό και τον τρόπο που αυτός αλληλεπιδρά με άλλους users και συγκεκριμένα DIs. Μια από τις δυσκολίες στην ανάπτυξη ενός προτύπου «πλαισίου», σε αντίθεση με την ανάπτυξη ενός προτύπου κωδικοποίησης, είναι η κατανόηση του πως θα μπορούσε κάποιος να το χρησιμοποιήσει για τις ανάγκες μια συγκεκριμένης εφαρμογής. Υιοθετώντας ένα τέτοιο πρότυπο «πλαίσιο», οι χρήστες θα πρέπει να επιλέξουν πιο τμήμα του αφορά τις ανάγκες της εφαρμογής τους και να το χρησιμοποιήσουν. Είναι φανερό ότι εφαρμογές που έχουν διαφορετικό αντικείμενο θα επιλέξουν και θα υλοποιήσουν διαφορετικό τμήμα του προτύπου. Όπως έχει ήδη αναφερθεί, δομικό στοιχείο του προτύπου αποτελεί το DI. Εδώ πρέπει να γίνει μια αναφορά για τη λειτουργία ενός DI και του ρόλου του μέσα στο πρότυπο, κάτι που αποτελεί και το κυριότερο σημείο διαφοράς φιλοσοφίας με τα προηγούμενα πρότυπα. Ένα DI και κατά συνέπεια ολόκληρο το MPEG-21, δε βασίζεται σε ένα συγκεκριμένο format κωδικοποίησης, αλλά μπορεί να αναφέρεται σε άλλα format και μορφές metadata, ακόμη και σε format που δεν έχουν τυποποιηθεί ακόμα. Ένα απλό παράδειγμα, για να γίνει εμφανής αυτή η σημαντική διαφορά είναι η παρομοίωση ενός DI με ένα μουσικό CD. Ένα μουσικό CD αποτελείται από τη θήκη, το εξώφυλλο μαζί και με πιθανές άλλες πληροφορίες σε μορφή εντύπου και από το CD. Η αντιστοιχία με το DI είναι ότι το εξώφυλλο αποτελεί τα metadata και το CD τα resources του DI. Η νέα άποψη που εισάγει, λοιπόν, η έννοια του DI είναι η αντιμετώπιση των multimedia ως «ηλεκτρονικά πακέτα» που έχουν σαφή δομή και ιεραρχία, με δεδομένες σχέσεις μεταξύ των μελών τους. Έχοντας απομακρυνθεί από τη θεώρηση των media ως ξεχωριστά αρχεία, είναι πιο εύκολο ένας χρήστης να έχει τη δυνατότητα, να αναζητήσει αυτό που επιθυμεί και γενικά να έχει μια περισσότερο συγκεντρωμένη άποψη, παράλληλα με διάφορες συμπληρωματικές πληροφορίες για το υλικό που θα χρησιμοποιήσει. Για να ορίσει το κάθε DI το MPEG-21 παρέχει μια γλώσσα την DIDL(Digital Item Declaration Language), η οποία βασίζεται στη γλώσσα XML. Με αυτή τη γλώσσα σε ένα αρχείο δήλωσης (declaration file) γίνεται ο ορισμός και η περιγραφή των DI. -32-

33 Το πρότυπο 4.5 Digital Item Declaration Σε αυτό το κεφάλαιο θα γίνει μια παρουσίαση του τρόπου δήλωσης των DI στο πρότυπο MPEG-21, σύμφωνα με την γλώσσα DIDL που αναπτύχθηκε για αυτό το σκοπό. Στόχος ήταν να επιτευχθεί η μέγιστη δυνατή ευελιξία και προσαρμοστικότητα σε οποιασδήποτε μορφής υλικό και δομή που θα χρειαστεί να παρουσιαστεί ως DI. Όπως αναφέρθηκε και προηγουμένως η γλώσσα DIDL στηρίζεται στην XML. Έτσι αρχικά ορίζονται κάποια δομικά elements της XML τα οποία αντιπροσωπεύουν κάποιες γενικές οντότητες που συνθέτουν το εκάστοτε DI. Παρακάτω θα αναφερθούν η κάθε μία ξεχωριστά, καθώς και οι σχέσεις που αναπτύσσονται μεταξύ αυτών. Για ευκολία θα χρησιμοποιηθεί το παράδειγμα ενός DI, που αναφέρεται σε ένα μουσικό album. Ένα γενικό σχεδιάγραμμα αυτών των γενικών οντοτήτων και η σύνθεσή τους σε DI φαίνεται στην εικόνα 4.2. Εικόνα 4.2 Resource Το XML element resource αποτελεί την αναπαράσταση σε XML της έννοιας που ορίστηκε ως resource παραπάνω. Τυπικά, ένα element Resource περιέχει το multimedia υλικό του DI. Ένα DI μπορεί να έχει ένα ή και πολλά resource, το κάθε ένα από τα οποία προσδιορίζουν τα μέρη ενός multimedia αρχείου ή και πολλά διαφορετικά αρχεία. Ένα resource έχει τη δυνατότητα να περιέχει διάφορους τύπους δεδομένων. Ο προσδιορισμός του τύπου των δεδομένων γίνεται χρησιμοποιώντας ένα XML attribute με όνομα mimetype. Πρόκειται για συνδυασμό του media type MIME(Multipurpose Internet Mail Extensions) και ενός subtype -33-

34 Το πρότυπο που δείχνει τον τύπο δεδομένων του Resource, όπως ορίζεται στο RFC Για το παράδειγμα μας, ένα resource που θα περιείχε ένα αρχείο mp3 θα είχε mimetype attribute audio/mpeg. Χρησιμοποιώντας αυτή τη πληροφορία θα μπορούσε ένας -player να προσδιορίσει τον τύπο των δεδομένων του resource και να εκτελέσει την κατάλληλη διαδικασία, όπως να απεικονίσει μια εικόνα, να αναπαράγει ένα clip ήχου ή video ή να εκκινήσει έναν επεξεργαστή κειμένου. Εκτός από αυτό το attribute, ένα resource element μπορεί να περιέχει και το attribute contentencoding, που παρέχει πρόσθετες πληροφορίες σχετικές με την κωδικοποίηση του περιεχομένου. Πρωταρχικός ρόλος αυτού του attribute είναι να μπορεί ένα αρχείο να συμπιεστεί χωρίς να χάνει τον προσδιορισμό του ως προς το mimetype. Μια πιθανή χρήση είναι η συμπίεση ενός κειμένου με το format gzip. Τότε το resource θα είχε mimetype= text/plain και contentencoding= gzip. Ένα element resource μπορεί να προσδιοριστεί περιέχοντας τα ακριβή δεδομένα ή και απλά έχοντας μια αναφορά προς αυτά τα δεδομένα. Σε περίπτωση που θα χρησιμοποιήσουμε τα ακριβή δεδομένα, αυτά πρέπει να είναι είτε σε μορφή κειμένου, είτε δεδομένα κωδικοποιημένα σε base64. Σε περίπτωση που χρησιμοποιήσουμε δεδομένα κωδικοποιημένα σε base64, θα πρέπει να ορίσουμε contentencoding= base64. Παρακάτω φαίνεται ένα τμήμα ενός DID αρχείου με ένα resource που περιέχει κείμενο. <Resource mimetype= text/plain > This is a plain text Resource. </Resource> Έγγραφο 4.1 Αν θέλαμε να χρησιμοποιήσουμε resource με αναφορά, τότε θα έπρεπε να προσθέσουμε το attribute ref με τιμή ένα URI που δείχνει στα πραγματικά δεδομένα, όπως παρακάτω που ορίζεται ένα resource με αναφορά σε ένα αρχείο mp3. <Resource mimetype= audio/mpeg ref= > Έγγραφο Internet Engineering Task Force, Multipurpose Internet Mail Extensions(MIME) Part One:Format of Internet Message Bodies -34-

35 Το πρότυπο Το αν θα χρησιμοποιήσουμε resource με πραγματικά δεδομένα ή με αναφορά εξαρτάται από το πλήθος των resource που θα βάλουμε σε ένα αρχείο DID καθώς και από το μέγεθος των δεδομένων. Statement Το XML element statement χρησιμοποιείται για να δώσει πληροφορίες σχετικές με το parent element μέσα στο οποίο βρίσκεται. Ένα statement μπορεί να περιέχει δεδομένα κάθε είδους, από απλό κείμενο και εικόνες, μέχρι και XML. Επίσης ισχύουν και εδώ τα ίδια attributes με το resource. Με μια πρώτη εκτίμηση τα elements statement και resource μοιάζουν αρκετά αφού μπορούν και τα δύο, να περιέχουν διάφορους τύπους δεδομένων, δεδομένα σε base64 και παίρνουν τα ίδια attributes. Η διαφορά τους βρίσκεται κυρίως στη χρησιμότητα του καθενός μέσα σε ένα DI. Έτσι ένα resource περιέχει το βασικό περιεχόμενο ενός DI, δηλαδή ήχο,video ή κείμενο. Αντίθετα ένα statement περιέχει πληροφορίες(διαφόρου τύπου), οι οποίες αφορούν ένα άλλο element(πιθανώς και ένα resource). Αυτές οι πληροφορίες είναι κυρίως περιγραφικές ή αφορούν τον έλεγχο στο DI. Μια άλλη διαφορά είναι το σημασιολογικό νόημα των δεδομένων. Έτσι ένα resource θεωρείται μια αυτόνομη και ανεξάρτητη οντότητα, ενώ ένα statement θεωρείται μια πληροφορία. Για να γίνει περισσότερο κατανοητή αυτή η διαφορά, μια φωτογραφία σημαντική για τον δημιουργό του DI θα μπει σε ένα resource, ενώ πληροφορίες για το copyright της εικόνας σε ένα statement. Σε ένα statement μπορεί να παρέχονται πληροφορίες για το parent element, που μπορούν να κατανοηθούν από έναν αναγνώστη, όπως το statement για τον τίτλο ενός album παρακάτω <Statement mimetype= text/plain > Bob Dylan s Greatest Hits </Statement> Έγγραφο 4.3 ή και σε μορφή XML, για να παρέχουν πληροφορίες σε μια εφαρμογή, όπως το statement που σε format MPEG-7 περιγράφει το bitrate στο έγγραφο 4.4. <Statement mimetype= text/xml > <Mpeg7 xmlns= urn:mpeg:mpeg:7:schema:2001 > <Description xsi:type= MediaDescriptionType > <MediaInformation> <MediaProfile> -35-

36 Το πρότυπο <MediaFormat> <Content href= /> <Bitrate>192000<Bitrate> </MediaFormat> </MediaProfile> </MediaInformation> </Description> </Mpeg7> </Statement> Έγγραφο 4.4 Descriptor Το element descriptor χρησιμοποιείται για να συνδέσει δεδομένα περιγραφής με το parent element στο οποίο ανήκει. Τα δεδομένα της περιγραφής μπορεί να είναι ένα element statement ή ένα element resource(μέσα σε ένα στοιχείο component το οποίο θα περιγραφεί αναλυτικά παρακάτω). Στο έγγραφο 4.5 φαίνεται ένα descriptor με resource. Επειδή ακριβώς το resource βρίσκεται μέσα σε ένα descriptor, τα δεδομένα του μεταφράζονται σαν δεδομένα περιγραφής. <Descriptor> <Component> <Resource mimetype= image/jpeg ref= thumbnail.jpg /> </Component> </Descriptor> Έγγραφο 4.5 Η εναλλακτική περίπτωση με statement φαίνεται στο έγγραφο 4.6. <Descriptor> <Statement mimetype= text/plain > Bob Dylan s Greatest Hits </Statement> </Descriptor> Έγγραφο 4.6 Πρέπει να τονιστεί ότι σε ένα parent element μπορούν να υπάρχουν περισσότερα του ενός descriptors με διαφορετικούς τύπους δεδομένων. Στο προηγούμενο παράδειγμα με την εικόνα σε format JPEG, θα μπορούσε να υπάρχει και ένα άλλο descriptor σε format TIFF, για την περίπτωση που ένα τερματικό δεν είναι σε θέση να παρουσιάσει εικόνες σε format JPEG. -36-

37 Το πρότυπο Component To element component χρησιμοποιείται για την ομαδοποίηση των elements descriptor και resource. Δηλαδή, για να συνδέσει τις περιγραφικές πληροφορίες ενός descriptor με το resource στο οποίο αυτές αναφέρονται. Στο έγγραφο 4.7 που ακολουθεί, ένα descriptor που αναφέρεται στον τίτλο ενός τραγουδιού συνδέεται με ένα resource που περιέχει το τραγούδι σε format mp3. <Component> <Descriptor mimetype= text/plain > Blowin' In the Wind </Descriptor> <Resource mimetype= audio/mpeg ref= > </Component> Έγγραφο 4.7 Σε ένα component μπορεί να υπάρχουν περισσότερα του ενός resource, που έχουν διαφορετικές εκδόσεις του ίδιου αρχείου. Με αυτόν τον τρόπο ένα τερματικό που λαμβάνει το συγκεκριμένο DI μπορεί να επιλέξει ένα από τα resources, ανάλογα με τις δυνατότητές του και τις απαιτήσεις του χρήστη. Item Ένα element item ομαδοποιεί Components, Descriptors και άλλα sub-items σε μια ολοκληρωμένη οντότητα. Σε αυτή την ομαδοποίηση τα elements descriptor έχουν πληροφορίες που περιγράφουν το item και τα components έχουν τα πραγματικά δεδομένα. Το item του μουσικού album, σύμφωνα με το παράδειγμα που ακολουθούμε, θα έχει τη εξής ολοκληρωμένη μορφή: <Item> <Descriptor> <Statement mimetype= text/plain > Bob Dylan s Greatest Hits </Statement> </Descriptor> <Descriptor> <Component> <Resource mimetype= image/jpeg ref= thumbnail.jpg /> </Component> </Descriptor> <Component> <Descriptor> <Statement mimetype= text/plain > Blowin' In the Wind </Statement> -37-

38 Το πρότυπο </Descriptor> <Resource mimetype= audio/mpeg ref= > </Component> <Component> <Descriptor mimetype= text/plain > <Statement mimetype= text/plain > Stuck In The Middle With You </Statement> </Descriptor> <Resource mimetype= audio/mpeg ref= > </Component> </Item> Έγγραφο 4.8 Ένα πλεονέκτημα του element item είναι ότι μπορεί να περιέχει και άλλα item στο εσωτερικό του. Με τη βοήθεια αυτών των sub-items μπορούν να οριστούν ακόμα πιο πολύπλοκες δομές και να υπάρχει μια καλύτερη οργάνωση του υλικού. DIDL Το element DIDL είναι το root element ενός DID εγγράφου. Χρειάζεται να περιέχει μια δήλωση για το namespace, έτσι ώστε οι διάφορες εφαρμογές να μπορούν να το αναγνωρίσουν σαν ένα έγγραφο που είναι γραμμένο σε γλώσσα DIDL. Επίσης δίνει τη δυνατότητα σε έναν XML parser να κρίνει, αν το έγγραφο XML είναι valid σύμφωνα με το MPEG-21 DIDL Schema που ορίζεται στο namespace. Έτσι γενικά ένα έγγραφο DID θα έχει τη μορφή του εγγράφου 4.9. <?xml version= 1.0 encoding= UTF-8?> <DIDL xmlns= urn:mpeg:mpeg21:2002:02-didl-ns > <Item>.... </Item> <Item>.... </Item> </DIDL> Έγγραφο 4.9 Container Το element container χρησιμοποιείται για να ομαδοποιήσει διαφορετικά items ή άλλα containers μαζί με descriptors, που παρέχουν περιγραφικές πληροφορίες για το container. Η διαφορά του με το element item βρίσκεται στο ότι ένα item θεωρείται μια αδιαίρετη οντότητα, ενώ το container μια συλλογή από -38-

39 Το πρότυπο παρόμοιες οντότητες. Για παράδειγμα αν θέλαμε να ομαδοποιήσουμε μια μεγάλη συλλογή από μουσικά albums θα χρησιμοποιούσαμε container, ενώ αντίθετα για την περιγραφή και την ομαδοποίηση των τραγουδιών κάθε μουσικού album, θα χρησιμοποιούσαμε item, όπως στο έγγραφο <?xml version= 1.0 encoding= UTF-8?> <DIDL xmlns= urn:mpeg:mpeg21:2002:02-didl-ns > <Container> <Item> <Descriptor> <Statement mimetype= text/plain > Bob Dylan s Greatest Hits </Statement> </Descriptor>.... </Item> <Item> <Descriptor> <Statement mimetype= text/plain > My first music album </Statement> </Descriptor>.... </Item> </Container> </DIDL> Έγγραφο 4.10 Choice-Condition-Selection Αυτά τα τρία elements θα περιγραφούν μαζί, καθώς η λειτουργία του καθενός είναι άμεσα συνδεδεμένη με τα υπόλοιπα. Χρησιμοποιώντας τα, τα DI μπορούν να έχουν διαφορετικές ρυθμίσεις και να συμπεριφέρονται διαφορετικά ανάλογα με αυτές. Ουσιαστικά ο συνδυασμός αυτών των elements, δίνει τη δυνατότητα για συγκεκριμένες αποφάσεις μέσα σε ένα DI. Ο μηχανισμός της λήψης αυτών των αποφάσεων και των επιλογών που αυτές συνεπάγονται, βασίζεται σε ορισμένες δηλώσεις που γίνονται μέσα σε ένα element selection και συγκεκριμένα σε ένα attribute αυτού με το όνομα select_id, όπως παρακάτω. <Selection select_id= MP3_FORMAT /> Ένα selection element πρέπει να βρίσκεται μέσα σε ένα choice element, το οποίο ουσιαστικά περιέχει την όλη διαδικασία της επιλογής και λήψης μιας απόφασης. Το element choice αποτελεί μια ομαδοποίηση διαφορετικών selection elements. -39-

40 Το πρότυπο Το επόμενο element είναι το element condition, το οποίο ορίζει το πως το parent element αυτού περιορίζεται από μία συνθήκη(βασισμένη σε κάποια select_id ), που αυτό ορίζει. Έχει δύο attributes, με τα ονόματα require και except. Όπως υπονοείται και από το όνομά τους, για να ικανοποιηθεί η συνθήκη που περιγράφεται στο condition πρέπει να επιλεχθεί το select_id του require και να μην έχει επιλεχθεί του except. Για παράδειγμα ένα component που περιορίζεται από ένα condition φαίνεται στη συνέχεια. <Component> <Condition require= MP3_FORMAT /> <Resource mimetype= audio/mpeg ref= /> </Component> Έγγραφο 4.11 Σε ένα require ή except attribute μπορούν να συνδυαστούν περισσότερα από ένα select_id, δηλώνοντας έτσι ότι πρέπει να ικανοποιηθούν και τα δύο. Από προγραμματιστικής πλευράς αυτό ορίζεται ως μια σχέση AND. Επίσης ένα element μπορεί να έχει περισσότερα του ενός condition, δηλώνοντας έτσι ότι πρέπει να ικανοποιηθεί τουλάχιστον ένα από αυτά. Από προγραμματιστικής πλευράς αυτό ορίζεται ως μια σχέση OR. Ένας τέτοιος τρόπος ορισμού μιας συνθήκης παρουσιάζεται παρακάτω. Τα S1, S2, S3, S4 δηλώνουν πιθανά select_id. <Choice choice_id= my_choice > <Descriptor> </Descriptor> <Selection select_id= S1 > </Selection> <Selection select_id= S2 > </Selection> <Selection select_id= S3 > </Selection> <Selection select_id= S4 > </Selection> </Choice> <Component> <Condition require= S1 S2 except= S3 > <Condition require= S4 > <Resource mimetype= audio/mpeg ref= /> </Component> Έγγραφο

41 Το πρότυπο Προσθέτοντας ακόμα μεγαλύτερη ευελιξία τα elements choice και selection μπορούν να περιέχουν descriptors. Με αυτόν το τρόπο μπορεί να δοθεί μια περιγραφή της επιλογής που πρέπει να γίνει και του αποτελέσματος, που θα έχει η κάθε διαφορετική επιλογή. Επίσης προαιρετικά μπορούν να προστεθούν σε ένα choice element τα attributes minselections, maxselections και default. Το minselections ορίζει τα ελάχιστα selections που πρέπει να επιλεχθούν, το maxselections ορίζει το μέγιστο αριθμό των selections που μπορούν να επιλεχθούν και στο default μπορούμε να έχουμε ορίσει μια προεπιλογή κάποιων selections. Τέλος μπορούμε να έχουμε condition elements ακόμη και μέσα σε choice ή σε selection, παρέχοντας έτσι τη δυνατότητα να ορίσουμε πιο περίπλοκα δένδρα αποφάσεων, ανάλογα με τα δεδομένα του κάθε DI. Κλείνοντας με αυτή την ομάδα από elements, πρέπει να αναφέρουμε ότι στα πλαίσια της γλώσσας DIDL μπορούμε να υλοποιήσουμε σύνθετα δένδρα αποφάσεων παρέχοντας μεγάλη ευελιξία στα DIs που υλοποιούμε. Αυτή η ευελιξία φαίνεται ιδιαίτερα χρήσιμη σε περιπτώσεις, όπου χρειάζεται προσαρμογή των δεδομένων στις δυνατότητες του κάθε τερματικού ή στις επιθυμίες του κάθε χρήστη. Όμως, όπως φαίνεται και από τον ορισμό αυτών των elements, ενώ παρέχονται όλες οι πληροφορίες για τις αποφάσεις και τις δυνατές επιλογές, δεν υπάρχει αναφορά στον τρόπο υλοποίησης αυτών των αποφάσεων. Σε κάθε περίπτωση, ο προγραμματιστής της εκάστοτε εφαρμογής που θα αξιοποιήσει το DI μπορεί να υλοποιήσει την εφαρμογή του χωρίς περιορισμούς. Ακόμη διαφορετικές εφαρμογές μπορούν να συνεργαστούν και να αξιοποιήσουν το DI, αρκεί να υπάρχει συμβατότητα της εφαρμογής τους με το συγκεκριμένο XML schema της DIDL. Annotation Αυτό το element χρησιμοποιείται για να προσθέσει κάποιες επιπλέον πληροφορίες (σε μορφή υποσημείωσης) σε κάποιο άλλο element, χωρίς όμως να επηρεάζει το πραγματικό περιεχόμενο ενός DI. Κάθε annotation element έχει ένα attribute με όνομα target, με το οποίο μπορεί να αναφερθεί και έτσι να παρέχει τις επιπλέον πληροφορίες για ένα συγκεκριμένο element. Σε αυτό το σημείο πρέπει να αναφερθεί ότι για τον προσδιορισμό ενός element μέσα σε ένα DI χρησιμοποιείται το attribute id. Δίνοντας μια μοναδική τιμή σε αυτό το attribute για κάθε element μπορεί να γίνει αναφορά σε αυτό, από οποιοδήποτε άλλο σημείο του εγγράφου DIDL. Τα elements που μπορούν να έχουν το attribute id είναι τα εξής : Container, Item, Descriptor, Component, -41-

42 Το πρότυπο Anchor και Annotation. Ακόμα το element choice μπορεί να έχει για τον ίδιο σκοπό με τα παραπάνω, το attribute choice_id. Ένα annotation element μπορεί να περιέχει, για να προσδώσει πληροφορίες, άλλα element του τύπου assertion και anchor. Ένα παράδειγμα χρήσης annotation φαίνεται παρακάτω. <Item id= my_track > <Component> <Statement mimetype= text/plain > Title </Statement> <Resource mimetype= audio/mpeg ref= > </Component> <Annotation target= #my_track > <Descriptor mimetype= text/plain > <Statement mimetype= text/plain > My favorite song </Statement> </Descriptor> </Annotation> </Item> Έγγραφο 4.13 Assertion To element assertion χρησιμοποιείται για τη ρύθμιση των επιλογών ενός choice. Δηλαδή, μπορεί να έχει μία συγκεκριμένη προεπιλογή από select_ids, που αναφέρονται σε ένα ορισμένο choice. To συγκεκριμένο element μπορεί να χρησιμοποιηθεί μόνο μέσα σε ένα annotation, αφού οι πληροφορίες που παρέχει, έχουν συμπληρωματικό και προαιρετικό χαρακτήρα. Ένα assertion μπορεί να έχει τα attributes target, true και false. Η λειτουργία του target είναι παρόμοια με αυτή του target του annotation, αλλά στοχεύει μόνο σε choice_id. Τα attributes true και false χρησιμοποιούνται για να θέσουν κάποια select_id σε κατάσταση true ή false. Είναι προφανές ότι η προεπιλογή που περιγράφει ένα assertion θα πρέπει να ικανοποιεί τις συνθήκες minselections και maxselections του choice στο οποίο αναφέρεται. παράδειγμα χρήσης του assertion φαίνεται στο έγγραφο 4.14 που ακολουθεί. <Item id= my_item > <Choice choice_id= my_choice minselections= 1 maxselections= 2 > <Selection select_id= S1 /> <Selection select_id= S2 /> <Selection select_id= S3 /> </Choice> <Annotation target= #my_item > <Assertion target= #my_choice false= S2 > -42- Ένα

43 Το πρότυπο <Assertion target= #my_choice false= S1 true= S3 > </Annotation> </Item> Έγγραφο 4.14 Fragment-Anchor Tο element fragment χρησιμοποιείται για να προσδιορίσει ένα συγκεκριμένο σημείο ή και διάστημα με σε ένα resource. Μπορεί να περιέχει metadata οποιασδήποτε μορφής. Η συνηθέστερη μορφή αυτών των metadata είναι του προτύπου MPEG-7, το οποίο παρέχει διάφορα elements που μπορούν να προσδιορίσουν επακριβώς ένα σημείο μέσα σε multimedia αρχείο οποιασδήποτε μορφής. Εναλλακτικά μπορεί να έχει ένα attribute με όνομα fragmentid και τιμή ένα fragment identifier κατά RFC To element anchor χρησιμοποιείται για να συνδέσει τα fragments με ένα descriptor. Έτσι, περιέχοντας ένα descriptor και ένα fragment μπορεί να προσθέσει διάφορες συμπληρωματικές πληροφορίες για ένα συγκεκριμένο σημείο μέσα σε ένα αρχείο resource. Η διαφορά των anchors με τα annotations είναι, ότι τα annotations παρέχουν πληροφορίες για κάποιο DIDL element, ενώ τα anchors αναφέρονται σε ένα πραγματικό αρχείο multimedia. Ένα παράδειγμα χρήσης anchor φαίνεται στο έγγραφο <Component> <Resource mimetype= audio/mpeg ref= > <Anchor> <Descriptor mimetype= text/plain > <Statement mimetype= text/plain > John s best solo </Statement> </Descriptor> <Fragment fragmented= mp(/~time( npt, 70 )) /> </Anchor> </Component> Έγγραφο 4.15 DIDLInfo Το τελευταίο από τα elements που θα συζητηθούν σε αυτή την παράγραφο είναι συμπληρωματικό και χρησιμοποιείται μόνο ως child element του element DIDL για να δώσει κάποιες πληροφορίες για το συγκεκριμένο DI που εξαρτώνται από την εφαρμογή που θα το χρησιμοποιήσει. Τα περιεχόμενά του είναι συνήθως elements, που ανήκουν σε ένα ξεχωριστό namespace σχετικό με την εφαρμογή. 7 Internet Engineering Task Force, Uniform Resource Identifiers (URI) : Generic Syntax -43-

44 Το πρότυπο 4.6 Digital Item Identification Ο σκοπός αυτού του μέρους του MPEG-21 είναι να δώσει τα εργαλεία ώστε να είναι δυνατός ο μοναδικός προσδιορισμός και αναγνώριση των DI, καθώς και των διαφορετικών στοιχείων από τα οποία αυτά αποτελούνται. Σύμφωνα με την αντιμετώπιση που επιλέχτηκε από την ομάδα του MPEG, δεν γίνεται προσπάθεια για ανάπτυξη νέων σχημάτων προσδιορισμού δεδομένων ή μεταβολής αυτών που ήδη υπάρχουν. Η προσπάθεια που έγινε επικεντρώνεται κυρίως στους τρόπους για την συνεργασία με υπάρχουσες τεχνολογίες και την ενσωμάτωσή τους στα πλαίσια του προτύπου. Για παράδειγμα για τον προσδιορισμό ενός DI που αναφέρεται σε ένα βιβλίο, η γλώσσα DIDL μπορεί να ενσωματώσει τον αριθμό ISBN(International Standard Book Number), έτσι ώστε να γίνεται η ταυτοποίηση και η αναγνώριση του συγκεκριμένου βιβλίου. Στα πλαίσια του DII(Digital Item Identification) έχουν οριστεί τα XML elements Identifier, RelatedIdentifier και Type τα οποία χρησιμοποιούνται μέσα σε ένα αρχείο DID. Επειδή στην πραγματικότητα τα δεδομένα που χρειάζονται για τον προσδιορισμό ενός DI, είναι δεδομένα κειμένου, τα παραπάνω elements χρησιμοποιούνται μέσα element statement που έχουν οριστεί για την παρουσίαση δεδομένων κειμένου. Πριν από την παρουσίαση των παραπάνω elements, πρέπει να αναφερθεί ότι για την ενσωμάτωσή τους σε ένα έγγραφο DIDL χρειάζεται να οριστούν κάτω από το namespace xmlns:dii= urn:mpeg:mpeg21:2002:01-diins. Στη συνέχεια θα γίνει μια περιγραφή του καθένα από αυτά τα element ξεχωριστά. Identifier Αυτό το element ενσωματώνοντας URI, προσδιορίζει το parent element του descriptor μέσα στο οποίο ανήκει. Είναι πιθανό μέσα σε ένα DI να περιέχονται περισσότερα το ενός identifiers και να το προσδιορίζουν σύμφωνα με περισσότερες από μία τεχνολογίες. Στο έγγραφο 4.16 φαίνεται ένα παράδειγμα χρήσης ενός identifier σε ένα DI, που αναφέρεται σε ένα μουσικό album. <DIDL xmlns= urn:mpeg:mpeg21:2002:02-didl-ns xmlns:dii= urn:mpeg:mpeg21:2002:01-dii-ns > <Item> <Descriptor>.... </Descriptor> <Descriptor> <Statement> <dii:identifier> myauthority:albumid:a

45 Το πρότυπο </dii:identifier> </Statement> </Descriptor> </Item> <DIDL> Έγγραφο 4.16 RelatedIdentifier Έχει την ίδια χρήση με το element identifier με τη διαφορά ότι χρησιμεύει στον προσδιορισμό πληροφοριών, που είναι σχετικές με το DI ή ένα μέρος αυτού. Δηλαδή δεν παρέχει πληροφορίες που χαρακτηρίζουν μοναδικά το ίδιο το DI, αλλά προσδιορίζουν κάτι που έχει σχέση με αυτό. Η σχέση αυτή ορίζεται με ένα URI, που μπαίνει ως τιμή σε ένα attribute με το όνομα relationshiptype. Type Έχει και αυτό το element την ίδια χρήση με το identifier, αλλά χρησιμεύει για να υποδηλώσει ότι ένα DI ή ένα μέρος αυτού, ανήκει σε ένα συγκεκριμένο τύπο από DIs. Αν για παράδειγμα μια μουσική βιομηχανία αποφασίσει τη χρήση ενός συγκεκριμένου format DI με κάποιους περιορισμούς ως προς τη μορφή τους, τότε μπορεί να δηλώσει με το element type, ότι ένα DI ανήκει στην συγκεκριμένη κατηγορία. 4.7 Intellectual Property Management and Protection (IPMP) Αυτό το μέρος του προτύπου αναπτύχθηκε ως απάντηση στην απαίτηση της βιομηχανίας για ασφαλή μεταφορά των DI. Εδώ πρέπει να διευκρινιστεί ότι δεν πρόκειται για ένα καινούριο σύστημα DRM(Digital Rights Management). Για την ακρίβεια θα μπορούσαμε να πούμε ότι σε αυτό το μέρος παρέχονται οι κατάλληλοι μηχανισμοί για τον έλεγχο των DI, με τη βοήθεια άλλων ήδη αναπτυγμένων και τυποποιημένων τεχνολογιών DRM. Ο στόχος λοιπόν του IPMP έγκειται στον προσδιορισμό των τρόπων (εργαλεία,δικαιώματα,υπογραφές), ώστε ένα DI ή ένα μέρος αυτού να μπορεί να ελεγχθεί. Στην επίτευξη αυτού του στόχου υπάρχουν δύο σημαντικά θέματα τα οποία θα αναφερθούν ξεχωριστά παρακάτω. Πρώτον, ο τρόπος που γίνεται η προσθήκη ειδικών metadata σε ένα σημείο της ιεραρχίας του DI με χρήση της IPMP DIDL, μιας προσθήκης στην γλώσσα DIDL που έχει ήδη περιγραφεί. Δεύτερον, είναι τα ίδια τα metadata, που πρέπει να εκφράζουν τον έλεγχο με έναν ευέλικτο και εύκολα επεκτάσιμο τρόπο και αναφέρονται ως Ipmp Infos. -45-

46 Το πρότυπο IPMP DIDL Ένα πρόβλημα με τη γλώσσα DIDL, όσον αφορά το περιεχόμενο ενός DI που κρίνεται ευαίσθητο ή προστατευόμενο, είναι ότι τελικά το DI που προκύπτει είναι ένα απλό XML έγγραφο. Αυτό δίνει τη δυνατότητα σε οποιονδήποτε μη εξουσιοδοτημένο χρήστη να έχει πρόσβαση σε αυτό. Για την αντιμετώπιση αυτού του προβλήματος προτάθηκε η αντικατάσταση των DIDL elements με elements του τύπου ipmpdidl:elementname. Για κάθε ένα element της DIDL υπάρχει ένα αντίστοιχο element, το οποίο αντιστοιχίζεται σε ένα νέο namespace με όνομα xmlns:ipmpdidl= urn:mpeg:mpeg21:2004:01-ipmpdidl-ns. Με αυτό τον τρόπο κάθε item, για παράδειγμα, που περιέχει ευαίσθητες πληροφορίες αντικαθίσταται με ένα ipmpdidl:item, το οποίο περιέχει μια κρυπτογραφημένη έκδοση του αρχικού, μαζί με κλειδιά για την αποκρυπτογράφησή του(ή μηχανισμούς πρόσβασης σε αυτά) και κατάλληλες εκφράσεις για τα δικαιώματα. Ο χρήστης που δεν είναι εξουσιοδοτημένος, βλέπει το συγκεκριμένο item σαν ένα item αγνώστου περιεχομένου, ενώ ο εξουσιοδοτημένος χρήστης μπορεί να το δει και να το χρησιμοποιήσει με τον ίδιο τρόπο, όπως και ένα απλό item. Με αυτόν τον τρόπο παρέχεται το επιθυμητό επίπεδο ασφάλειας, ενώ το XML εξακολουθεί να είναι έγκυρο και προσβάσιμο ως ένα βαθμό σε όλους τους χρήστες. Αυτή η διαδικασία φαίνεται σχηματικά στο γράφημα 4.1. Εικόνα 4.1 Ένα επιπλέον element που ορίζεται εδώ, σε σχέση με την DIDL, είναι το element ipmpdidl:protectedasset. Η χρήση αυτού του element είναι να προστατέψει μια ψηφιακή οντότητα (δηλαδή δυαδικά δεδομένα video, ήχου κτλ), που αναφέρεται από ένα element Resource. Η διαφορά του από το element ipmpdidl:resource είναι ότι προστατεύει -46- μόνο τα δυαδικά δεδομένα που

47 Το πρότυπο αναφέρονται μέσα σε ένα resource και όχι όλη την ιεραρχική δομή που βρίσκεται κάτω από το Resource, όπως το ipmpdidl:resource. Το κάθε ipmpdidl:elment έχει μια συγκεκριμένη δομή. Αποτελείται από τρία element: το ipmpdidl:identifier, το ipmpdidl:contents και το ipmpdidl:infos. I. Identifier : Περιέχει έναν identifier σαν και αυτούς που περιγράφτηκαν στο μέρος DII, έτσι ώστε να μπορεί να αναφερθεί όλο το προστατευόμενο element από κάποιο εξωτερικό σημείο. II. Info : Περιέχει την έκφραση των μηχανισμών προστασίας. Μπορεί να συνδέεται άμεσα με ένα σύστημα DRM ή να έχει ένα element IPMPDescriptor από το σχήμα του IPMP Infos. III. Contents : Περιέχει τα πραγματικά δεδομένα κρυπτογραφημένα ή με αναφορά. Η μορφή ενός τέτοιου element σχηματικά φαίνεται στο επόμενο γράφημα 4.2. Εικόνα 4.2 IPMP INFO Οι πληροφορίες σχετικά με την προστασία των DI χωρίζονται σε δύο κατηγορίες που εκφράζονται αντίστοιχα από δύο διαφορετικά elements, το IPMPGeneralInfoDescriptor και το IPMPInfoDescriptor. Στο element IPMPGeneralInfoDescriptor περιέχονται γενικές πληροφορίες σχετικά με την προστασία και διαχείριση ενός ολόκληρου DI, ενώ στο element IPMPInfoDescriptor πληροφορίες για ένα συγκεκριμένο τμήμα. To IPMPGeneralInfoDescriptor δίνει τη δυνατότητα στον δημιουργό του DI να έχει μία λίστα από εργαλεία της τεχνολογίας IPMP, τα οποία θα μπορούν να αναφέρονται σε κάθε IPMPInfoDescriptor. Επίσης λειτουργεί σαν ένα πακέτο για να κρατά τις άδειες που -47-

48 Το πρότυπο χρειάζεται κάθε DI, ενώ δηλώνεται στη αρχή του DI σαν child element ενός element DIDLInfo. Για το element IPMPGeneralInfoDescriptor, η λίστα των εργαλείων περιγράφεται σε ένα child element με το όνομα ToolList. Για κάθε ξεχωριστό εργαλείο σε αυτή τη λίστα δηλώνεται ένα ξεχωριστό element ToolDescription, το οποίο παίρνει και ένα attribute LocalID για να μπορεί να γίνει η αναφορά του από τα IPMPInfoDescriptors. Επίσης κάθε ToolDescription παίρνει ένα γενικό URI σε ένα child element IPMPToolId. Ο πραγματικός κώδικας για κάθε εργαλείο μπορεί να αναφερέται μέσα από το έγγραφο, χρησιμοποιώντας το element Remote ή να περιέχεται μέσα σε αυτό, σε ένα element Inline. Τα παραπάνω γίνονται περισσότερο κατανοητά στο παράδειγμα που ακολουθεί. <ipmpinfo:ipmpgeneralinfodescriptor> <ipmpinfo:toollist> <ipmpinfo:tooldescription localid= Tool1 > <ipmpinfo:ipmptoolid> urn:mpegra:mpeg21:ipmp:456 </ipmpinfo:ipmptoolid> <ipmpinfo:remote ref= urn:ipmptoolserver /> <ipmpinfo:tooldescription> <ipmpinfo:tooldescription localid= Tool1 > <ipmpinfo:ipmptoolid> urn:mpegra:mpeg21:ipmp:456 </ipmpinfo:ipmptoolid> <ipmpinfo:inline> <ipmpinfo:binary>dfjkdhfjk...</ipmpinfo:binary> </ipmpinfo:inline> <ipmpinfo:tooldescription> </ipmpinfo:toollist> </ipmpinfo:ipmpgeneralinfodescriptor> Έγγραφο 4.17 Σε ένα element ToolDescriptor μπορούν να περιέχονται προαιρετικά άλλα τρία elements: τα ConfigurationSettings, RightsDescriptor και Signature. ConfigurationSettings : Παρέχει επιπλέον πληροφορίες για ρυθμίσεις του κάθε ToolDescriptor. RightDescriptor : Εάν το ίδιο το εργαλείο που ορίζεται υπόκειται σε περιορισμούς και χρειάζεται άδεια, τότε εδώ περιέχονται οι επιπλέον πληροφορίες. Signature : Για να εξασφαλιστεί η ακεραιότητα και η αυθεντικότητα των πληροφοριών για το συγκεκριμένο εργαλείο IPMP, μπορεί σε αυτό το element να περιληφθεί μια ψηφιακή υπογραφή. -48-

49 Το πρότυπο Για την δήλωση των αδειών χρησιμοποιείται το element LicenceCollection, που περιέχει τις διάφορες άδειες μέσα σε elements RightDescriptor. Σε ένα RightDescriptor μια άδεια μπορεί είτε να δηλωθεί με αναφορά, είτε χρησιμοποιώντας την γλώσσα περιγραφής δικαιωμάτων(rel), που έχει αναπτυχθεί στα πλαίσια του MPEG-21, να συμπεριληφθεί ολόκληρη ή να υπάρχει αναφορά προς κάποια υπηρεσία έκδοσης αδειών. Η σύνταξη που χρησιμοποιείται είναι παρόμοια με το ToolDescriptor <ipmpinfo:ipmpgeneralinfodescriptor> <ipmpinfo:toollist>.... </ipmpinfo:toollist> <ipmpinfo:licencecollection> <ipmpinfo:licence> Rights in REL Language </ipmpinfo:licence> <ipmpinfo:licencereference> urn:licenceserver: </ipmpinfo:licence> <ipmpinfo:licenceservice> Reference to Licence Service in REL Language </ipmpinfo:licenceservice> <ipmpinfo:licencecollection> </ipmpinfo:ipmpgeneralinfodescriptor> Έγγραφο 4.18 Το element συγκεκριμένα το IPMPInfoDescriptor εργαλείο που θα χρησιμοποιείται για χρησιμοποιηθεί για να τη περιγράψει χρήση ενός συγκεκριμένου μέρους ενός DI. Αυτό υπάρχουν δύο τρόποι για να γίνει. Αν το εργαλείο έχει περιγραφτεί στο element IPMPGeneralInfoDescriptor, τότε μπορεί να γίνει αναφορά σε αυτό με το element ToolRef. Εναλλακτικά μπορεί να οριστεί σε εκείνο το σημείο χρησιμοποιώντας το element ToolBaseDescription, που ακολουθεί την ίδια σύνταξη με το ToolDescription του ΤοοlList. Επειδή μπορεί να χρειαστεί να χρησιμοποιηθούν πολλά διαφορετικά εργαλεία με μια δεδομένη σειρά προτεραιότητας σε κάθε IPMPInfoDescriptor, τα διάφορα εργαλεία οργανώνονται σε elements Tools με attributes order που προδιαγράφουν τη σειρά που πρέπει να ακολουθηθεί. Στο παρακάτω παράδειγμα φαίνονται οι διαφορετικοί δήλωσης του element IPMPInfoDescriptor. <ipmpinfo:ipmpinfodescriptor> <ipmp:tool order= 1 > <ipmpinfo:toolbasedescription> </ipmpinfo:toolbasedescription> </ipmp:tool> <ipmp:tool order= 2 > <ipmp:toolref localidref= ToolID - 1 /> -49- τρόποι

50 Το πρότυπο </ipmp:tool> </ipmpinfo:ipmpinfodescriptor> Έγγραφο Rights Expression Language Στα πλαίσια του προτύπου MPEG-21 προτάθηκε και η ανάπτυξη της γλώσσας REL, που όπως δηλώνεται και από την ονομασία της, είναι μια γλώσσα περιγραφής δικαιωμάτων. Η ανάγκη που οδήγησε στην ανάπτυξή της ήταν η υποστήριξη των συστημάτων DRM με μία ευέλικτη, αξιόπιστη και εύκολα επεκτάσιμη γλώσσα, που θα μπορούσε να περιγράψει τα δικαιώματα των χρηστών πάνω σε συγκεκριμένα μέρη των προστατευμένων δεδομένων. Αρχικά θα πρέπει να γίνει ένας διαχωρισμός με το κομμάτι IPMP του, που περιγράφτηκε στο προηγούμενο κεφάλαιο. Η γλώσσα REL χρησιμοποιείται για τον ορισμό και τη δημιουργία metadata, τα οποία μπορούν να προσδιορίσουν σε διάφορους χρήστες δικαιώματα, σχετικά με το πώς θα αλληλεπιδράσουν με τα DI και το υλικό που αυτά περιέχουν. Με αυτό τον τρόπο δημιουργούνται άδειες χρήσης (Licences), σύμφωνα με τα δικαιώματα του κάθε χρήστη. Από αυτό το σημείο και ύστερα, εμπλέκεται η τεχνολογία του IPMP, που επιτρέπει την ενσωμάτωση αυτών των αδειών σε DI και την συσχέτισή τους με αυτά ή με συγκεκριμένα μέρη αυτών. Στη συνέχεια θα γίνει μια σύντομη γενική παρουσίαση της REL και των βασικών χαρακτηριστικών της, χωρίς να αναφερθούν περισσότερο εξειδικευμένες λεπτομέρειες. Βασικά Χαρακτηριστικά Η REL βασίζεται και αυτή στη γλώσσα XML. Οι στόχοι της είναι η δημιουργία μιας γλώσσας κατανοητής σε επίπεδο μηχανής, η οποία θα παρέχει τις συντακτικές και σημασιολογικές εκφράσεις για τον σαφή προσδιορισμό δικαιωμάτων σε χρήστες, ομάδες χρηστών, συσκευές ή συστήματα. Επίσης θα πρέπει να είναι ικανή να υποστηρίξει διάφορα μοντέλα επιχειρήσεων, διάφορες μορφές υλικού και διάφορους τρόπους διανομής του προστατευόμενου υλικού. Η δομή της διαδικασίας που ακολουθείται για να δοθεί ένα δικαίωμα παρουσιάζεται στο επόμενο γράφημα. -50-

51 Το πρότυπο Εικόνα 4.3 Για την καλύτερη κατανόηση του σχήματος θα χρησιμοποιήσουμε ένα παράδειγμα μιας έκφρασης παραχώρησης δικαιώματος και την αντιστοίχησή της σε στοιχεία της REL. Έστω λοιπόν ότι το δικαίωμα που πρέπει να περιγραφεί εκφράζεται ως «Κάτω από την εξουσία των Studio Acme, παραχωρείται στον X το δικαίωμα για αναπαραγωγή της ταινίας Ocean Wild, κατά τη διάρκεια του Νοεμβρίου 2007». Στην ορολογία της REL μπορούμε να πούμε πως το άτομο X είναι ο δικαιούχος του δικαιώματος (principal), το δικαίωμα(right) είναι η αναπαραγωγή της ταινίας, η ίδια η ταινία είναι το υλικό πάνω στο οποίο εφαρμόζεται το δικαίωμα(resouce), ο Νοέμβριος 2007 είναι μία συνθήκη για την εγκυρότητα του δικαιώματος(condition) και τέλος τα Studio Acme είναι ο εκδότης(issuer) του δικαιώματος. Το μέρος της πρότασης που αναφέρεται στην παραχώρηση του δικαιώματος και τις συνθήκες της, ονομάζεται grant. Ολόκληρη η πρόταση αποτελεί μια άδεια(licence), η οποία σε μια πιο περίπλοκη μορφή μπορεί να περιέχει περισσότερα από ένα grants, πολλές εκδοτικές αρχές(issuer) και δικαιούχους(principal). Αν και το παράδειγμα αυτό είναι αρκετά απλό και χρησιμοποιεί ελάχιστο μέρος των δυνατοτήτων της REL, παρέχει τις βασικές αρχές πάνω στις οποίες στηρίζεται η οργάνωση της διαδικασίας ανάθεσης και περιγραφής δικαιωμάτων. H γλώσσα REL προσφέρει μεγάλη υποστήριξη σε διάφορους τύπους δικαιωμάτων, καλύπτοντας έτσι ένα μεγάλο μέρος των εφαρμογών και των επιχειρηματικών μοντέλων που απαιτούν ασφάλεια, ως προς τη διάθεση του υλικού τους. Μερικοί από τους πιο κοινούς τύπους αδειών που μπορούν να οριστούν είναι άδειες που εκφράζουν δικαιώματα χρήσης, προσφοράς, διανομής και πιστοποίησης. Άδειες Χρήσης : Σε αυτή την κατηγορία ανήκει και το παράδειγμα που αναφέρθηκε προηγουμένως. Άδειες αυτού του τύπου ορίζουν κυρίως δικαιώματα αναπαραγωγής υλικού και επεξεργασίας υλικού. Άδειες Προσφοράς : Άδειες αυτού του τύπου περιγράφουν το δικαιώματα της απόκτησης κάποιων καινούριων δικαιωμάτων από τον δικαιούχο, -51-

52 Το πρότυπο εφόσον βέβαια ικανοποιεί τις συνθήκες που ορίζονται. Σε αυτή την περίπτωση το δικαίωμα περιγράφεται με τη λέξη obtain, ενώ ως resource αντιμετωπίζονται μια σειρά από grants που προσφέρονται στον δικαιούχο. Άδειες Διανομής : Μία άδεια διανομής προσφέρει τη δυνατότητα στον κάτοχο και δημιουργό του πραγματικού υλικού να ορίσει δικαιώματα σε τρίτους, που αφορούν τη διάδοση και διανομή του αρχικού υλικού. Άδειες Πιστοποίησης : Μία τέτοια άδεια αναπαριστά την αξίωση του εκδότη της άδειας, στην συγκεκριμένων παράδειγμα θα κατοχή ρόλων ή μπορούσε από μέρους ιδιοτήτων. η του δικαιούχου Επεκτείνοντας συνθήκη για την το (principal) προηγούμενο αναπαραγωγή της συγκεκριμένης ταινίας να απαιτούσε την κατοχή μιας άδειας πιστοποίησης, που θα ανέφερε ότι το άτομο Χ είναι μέλος ενός συγκεκριμένου video club. Στο τέλος αυτής της σύντομης παρουσίασης της γλώσσας REL, θα πρέπει να αναφερθεί ότι βασικό πλεονέκτημά της είναι η δυνατότητα για ενσωμάτωση νέων επεκτάσεων, οι οποίες σκοπεύουν στην κάλυψη εξειδικευμένων υπηρεσιών. Επίσης για μεγαλύτερη ευελιξία, η REL οργανώνεται σε profiles που παρέχουν επίπεδα πολυπλοκότητας της γλώσσας. 4.9 Digital Item Adaptation Το κομμάτι του MPEG-21 που ασχολείται με το πρόβλημα της ετερογένιας των τερματικών, των δικτύων και των χρηστών, που επιθυμούν να καταναλώσουν περιεχόμενο με την μορφή πολυμέσων, ονομάζεται Digital Item Adaptation. Αυτή η ετερογένεια που αναφέρθηκε νωρίτερα, παρουσιάζει διάφορα προβλήματα που τελικά δυσχεραίνουν την πρόσβαση στα multimedia και μειώνουν την ποιότητα των παρεχόμενων υπηρεσιών στον τελικό χρήστη. Η προσπάθεια σε αυτόν τον τομέα ήταν να αναπτυχθούν εκείνοι οι μηχανισμοί, ώστε να είναι εφικτή η απρόσκοπτη πρόσβαση στα Digital Items και κυρίως στο υλικό που αυτά περιγράφουν. Για να πραγματοποιηθεί κάτι τέτοιο, θα πρέπει να μεταβληθούν διάφορες παράμετροι ώστε να υπάρξει μια προσαρμογή στις ανάγκες του χρήστη, στις δυνατότητες που του παρέχει ο εξοπλισμός του (τερματικό και δικτυακή πρόσβαση), καθώς και στις συνθήκες κάτω από τις οποίες πρόκειται να προβληθεί το εκάστοτε υλικό. Το συγκεκριμένο πρόβλημα, που περιγράφεται και ως Universal Multimedia Access(UMA), θα αναπτυχθεί στην παράγραφο που ακολουθεί. -52-

53 Το πρότυπο Universal Multimedia Access Μια πρώτη προσέγγιση έχει ήδη γίνει με τους αλγόριθμους κωδικοποίησης και συμπίεσης σε διαφορετικά επίπεδα πολυπλοκότητας. Αυτός ο απλός τρόπος αντιμετώπισης προσφέρει ήδη την ευχέρεια σε τερματικά και δίκτυα να αναπαράγουν multimedia, τα οποία αλλιώς δε θα ήταν δυνατό να αναπαραχθούν. Το επόμενο βήμα έγινε με το πρότυπο MPEG-7, το οποίο τυποποίησε εργαλεία για την ακριβή περιγραφή πολυμεσικού περιεχομένου, καθώς και εργαλεία που παρέχουν πληροφορίες για την μετατροπή ενός format κωδικοποίησης σε ένα άλλο. Εξετάζοντας το πρόβλημα κατά μήκος της αλυσίδας μεταφοράς των δεδομένων, από το δημιουργό ενός multimedia αρχείου ή το server στον οποίο είναι αυτό αποθηκευμένο, μέχρι τον τελικό χρήστη-καταναλωτή, είναι εμφανές ότι εμπλέκονται διάφορα στοιχεία ενός δικτύου, routers, switches, gateways και protocol converters. Η διαδικασία λοιπόν της προσαρμογής μπορεί να εφαρμοστεί σε διάφορα σημεία από τον αρχικό server έως το τελικό τερματικό. Γενικά θα μπορούσαμε να διακρίνουμε τρεις δυνατές επιλογές οι οποίες είναι: (i) κατάλληλη επιλογή υλικού, (ii) προσαρμογή του αρχικού υλικού, (iii) προσαρμογή του περιβάλλοντος χρήσης του υλικού. Εικόνα 4.4 Για την επιλογή του αρχικού υλικού σύμφωνα με τις ανάγκες του τελικού χρήστη, έχουν ήδη διαμορφωθεί λύσεις που μπορούν να ενσωματωθούν στο έγγραφο DIDL ενός DI. Συγκεκριμένα με τη χρήση των elements DIDL choice και selection, μπορεί να επιλεχθεί η κατάλληλη κωδικοποίηση και το κατάλληλο format. Μία προϋπόθεση για αυτό, είναι να υπάρχουν οι περιγραφές για τις δυνατότητες του τερματικού, τις ανάγκες του χρήστη και για το είδος και την ποιότητα της δικτυακής πρόσβασης στο υλικό. Ακόμη θα πρέπει να είναι διαθέσιμο -53-

54 Το πρότυπο το κάθε multimedia αρχείο σε όλα τα πιθανά format και σε διαφορετικές ποιότητες bitrate, ανάμεσα στα οποία θα χρειαστεί να γίνει η επιλογή. Είναι προφανές ότι αυτή η λύση, αν και υπολογιστικά είναι εύκολα υλοποιήσιμη, είναι πολυέξοδη σε χώρους αποθήκευσης, αφού το κάθε multimedia αρχείο θα πρέπει να υπάρχει σε περισσότερα του ενός αντίγραφα. Αντίθετα, όταν έχουμε real-time προσαρμογή του υλικού, τότε γλυτώνουμε σε κόστος αποθήκευσης, όμως αυξάνεται αρκετά η υπολογιστική πολυπλοκότητα της εφαρμογής. Γενικά, θα μπορούσαμε να διαχωρίσουμε τον τρόπο προσαρμογής του υλικού σε δύο βασικές κατηγορίες. Προσαρμογή σε επίπεδο σήματος και προσαρμογή σε επίπεδο σημασιολογίας. Η προσαρμογή σε επίπεδο σήματος επιτυγχάνεται με τροποποίηση του bitrate, frame rate, resolution ή την αλλαγή του format κωδικοποίησης της αναπαράστασης. Σε αυτή την κατηγορία προσαρμογής, βασικό ρόλο στον ορισμό των προδιαγραφών και των περιορισμών, παίζουν τα δικτυακά χαρακτηριστικά και τα χαρακτηριστικά που αφορούν το τερματικό. Στην περίπτωση της προσαρμογής σε επίπεδο σημασιολογίας, γίνεται προσαρμογή του υλικού με βάση πληροφορίες σχετικά με τη σημασία και το νόημα των πραγμάτων που απεικονίζονται μέσα στα δεδομένα. Συγκριτικά αυτή η περίπτωση παρουσιάζει περισσότερες δυσκολίες από την προηγούμενη, αφού απαιτεί βαθύτερη κατανόηση και περιγραφή της σημασιολογίας των δεδομένων. Στο τέλος για την προσαρμογή σε επίπεδο περιβάλλοντος χρήσης, πρέπει να υπάρχουν μηχανισμοί για την απόκτηση πρόσθετων πόρων για την διαχείριση του υλικού. Οι πρόσθετοι πόροι μπορούν να είναι επιπλέον bandwidth που δεσμεύεται δυναμικά, δυναμική βελτίωση χαρακτηριστικών δικτύου, όπως το delay και το error rate, πόροι σε επίπεδο υπολογιστικής ισχύος ή δυναμική απόκτηση από το τερματικό επιπλέον αποκωδικοποιητών για την αναπαραγωγή των δεδομένων. Βασικά χαρακτηριστικά Γενικά τα εργαλεία που ανήκουν στην κατηγορία MPEG-21 DIA ορίζονται και αυτά σε γλώσσα XML, χρησιμοποιώντας μια συγκεκριμένη σύνταξη και δομούνται κάτω από ένα root element DIA. Η φιλοσοφία που υπάρχει πίσω από το Digital Item Adaptation απεικονίζεται στο επόμενο γράφημα. -54-

55 Το πρότυπο Εικόνα 4.5 Ένα DI που υπόκειται στη διαδικασία προσαρμογής, περνάει μέσα από μια DIA Engine και τελικά προκύπτει ένα DI προσαρμοσμένο σύμφωνα με τις περιγραφές στο τμήμα DIA. Η προσαρμογή γίνεται σε δύο τομείς. H πρώτη προσαρμογή, που πραγματοποιείται από την Resource Adaptation Engine, αφορά την προσαρμογή του πραγματικού υλικού, δηλαδή των δεδομένων, που περιγράφονται ως resource στη DIDL. Η δεύτερη αφορά την προσαρμογή των metadata ενός DI, δηλαδή των desciptors στη γλώσσα DIDL. Τα εργαλεία που χρησιμοποιούνται για να περιγράψουν και να παρέχουν τις πληροφορίες για αυτή την προσαρμογή, ονομάζονται γενικά DIA Tools και μπορούν να διακριθούν οχτώ υποκατηγορίες ανάλογα με τη λειτουργία τους, οι οποίες φαίνονται σχηματικά στην επόμενη εικόνα. -55-

56 Το πρότυπο Εικόνα 4.6 Στη συνέχεια θα δοθεί μια σύντομη περιγραφή της κάθε κατηγορίας, ενώ περισσότερο αναλυτική παρουσίαση θα γίνει για την κατηγορία Usage Environment Description Tools, που ήταν και αυτή για την οποία έγινε μια προσπάθεια υλοποίησης στο κομμάτι της εφαρμογής αυτής της διπλωματικής εργασίας. Bitstream Syntax Description : Στα πλαίσια αυτού του κομματιού έχει αναπτυχθεί μια νέα γλώσσα βασισμένη στο σχήμα της XML, που ονομάζεται Bitstream Syntax Description Language. Τα πραγματικά δεδομένα αποτελούνται από μια αλληλουχία από bits, η οποία είναι ανάλογη του format κωδικοποίησης. Αυτή η αλληλουχία των bits αναφέρεται και ως bitstream. Με την γλώσσα BSDL γίνεται η περιγραφή του bitstream σε ένα XML έγγραφο, που ενσωματώνεται στις περιγραφές DIA. Πρέπει να διευκρινιστεί, ότι η περιγραφή του bitstream δε γίνεται στο επίπεδο των bits, αλλά σε ένα υψηλότερο επίπεδο, για παράδειγμα στον τρόπο που τα bits οργανώνονται σε layers ή σε πακέτα δεδομένων. Η BSDL δεν αποβλέπει στο να αντικαταστήσει τα αυθεντικά δυαδικά δεδομένα, αλλά παρέχει μόνο μια περιγραφή -56- για αυτά λειτουργώντας σε ένα

57 Το πρότυπο συμπληρωματικό επίπεδο, παρόμοια με τα metadata. Για την περιγραφή δεδομένων που είναι κωδικοποιημένα σε ένα συγκεκριμένο format, υπάρχουν τα ανάλογα BSD schemas, ενώ υπάρχει και ένα γενικό schema για κάθε τύπο κωδικοποίησης, που ονομάζεται generic BSD(gBSD) schema. Επίσης η ίδια η γλώσσα είναι βαθμωτή σε layers, παρέχοντας διαφορετικά επίπεδα λεπτομέρειας, όσον αναφορά την περιγραφή του bitstream. Ακόμη, αντίθετα με πρότυπα όπως το MPEG-7, αγνοεί τελείως τη σημασιολογία του bitstream, δηλαδή δεν παρέχει πληροφορίες και περιγραφές για τον πραγματικό ήχο ή video που αναπαριστούν τα δεδομένα. Bitstream Syntax Description Link : Σε αυτό το κομμάτι έχουν αναπτυχθεί εργαλεία, για την αναφορά από την εφαρμογή που κάνει την προσαρμογή (Adaptation Engine) στα πραγματικά δυαδικά δεδομένα(resources) και στις BSD περιγραφές αυτών των δεδομένων, είτε πρόκειται για περιγραφές ειδικές για κάποιο format, είτε πρόκειται για γενικές(generic) περιγραφές και τέλος για την αναφορά στα διάφορα εργαλεία για τον ορισμό και πραγματοποίηση της προσαρμογής. Terminal and Network Quality of Service : Σε αυτήν την κατηγορία υπάρχουν εργαλεία για την περιγραφή των σχέσεων μεταξύ των περιορισμών, που εισάγουν οι δυνατότητες του δικτύου και του τερματικού. Περιγράφονται ακόμα λειτουργίες προσαρμογής που μπορεί να γίνουν για να ικανοποιηθούν αυτοί οι περιορισμοί και οι ποιότητα υπηρεσιών που ορίζουν. Universal Constraints Description Tool : Εργαλεία αυτής της κατηγορίας μπορούν να χρησιμοποιηθούν για να προσδιορίσουν συμπληρωματικούς περιορισμούς, τόσο στην πλευρά του καταναλωτή ενός DI, όσο και στην πλευρά του παρόχου. Οι περιορισμοί αυτοί μπορούν να διαμορφωθούν ανάλογα και να στοχεύουν σε συγκεκριμένα σημεία μέσα στα δεδομένα. Για παράδειγμα μπορούν να αφορούν συγκεκριμένες σκηνές ενός αρχείου video. Metadata Adaptability : Σε αυτήν την κατηγορία υπάρχουν εργαλεία, που περιγράφουν τη διαδικασία για το φιλτράρισμα και τη διαβάθμιση κομματιών XML, όπως για παράδειγμα περιγραφές του προτύπου MPEG-7 Session Mobility : Αυτή η κατηγορία, αναφέρεται σε εργαλεία, που έχουν τη δυνατότητα για την περιγραφή πληροφοριών σχετικά με τη διατήρηση και μεταφορά της κατανάλωσης ενός DI από μία συσκευή σε μία άλλη. DIA Configuration Tools : Αυτά τα εργαλεία παρέχουν πληροφορίες σχετικές με τις ρυθμίσεις της Adaptation Engine, συμπεριλαμβανομένου και -57-

58 Το πρότυπο του τόπου που θα γίνει η διαδικασία της προσαρμογής. Αν δηλαδή θα γίνει στην πλευρά του server, του χρήστη ή και στις δύο. Usage Environment Description : Αυτή η κατηγορία εργαλείων μπορεί να διαιρεθεί περαιτέρω σε τέσσερις κατηγορίες. Αυτές είναι: (i)user Characteristics, (ii)terminal Characteristics, (iii)network Characteristics, (iv)natural Environment Characteristics. Στις επόμενες παραγράφους θα παρουσιαστούν η καθεμία από αυτές τις κατηγορίες ξεχωριστά. User Characteristics Στην κατηγορία αυτή περιγράφονται διάφορα χαρακτηριστικά του χρήστη που προτίθεται να καταναλώσει ένα DI. Τα χαρακτηριστικά του χρήστη που περιγράφονται μπορούν να οργανωθούν γενικά στις παρακάτω κατηγορίες. I. Γενικές πληροφορίες : Αναφέρεται σε γενικές πληροφορίες που αποτελούν το προφίλ του χρήστη. II. Προτιμήσεις και ιστορικό χρήσης : Αναφέρεται σε προτιμήσεις σχετικά με το είδος των DI που καταναλώνει ο χρήστης, το είδος των DI που συνηθίζει να δημιουργεί ο χρήστης και κρατάει και το ιστορικό των DI που επέλεξε ο χρήστης. III. Προτιμήσεις παρουσίασης : Αναφέρεται σε προτιμήσεις του χρήστη, σχετικές με τον τύπο και το format των multimedia των DI. Για παράδειγμα σε αυτή την κατηγορία θα περιγραφόταν οι προτιμώμενες ρυθμίσεις του χρήστη στο frequency equalizer του τερματικού ή ρυθμίσεις σχετικές με τη φωτεινότητα ή την αντίθεση ενός video. IV. Χαρακτηριστικά της πρόσβασης : Σε αυτή την κατηγορία μπορεί να γίνει η περιγραφή των ιδιαίτερων χαρακτηριστικών ενός χρήστη και να προσαρμοστούν τα δεδομένα σε αυτόν, ανάλογα με οπτικές ή ακουστικές δυσκολίες που αυτός παρουσιάζει. Για παράδειγμα μπορεί να οριστούν κατώφλια έντασης, σε συγκεκριμένες συχνότητες για ένα χρήστη που παρουσιάζει συγκεκριμένα ακουστικά προβλήματα Για την περιγραφή όλων των παραπάνω έχουν υιοθετηθεί descriptors, που αναπτύχθηκαν στα πλαίσια του προτύπου MPEG-7 για την περιγραφή των multimedia. Ένα παράδειγμα που αναφέρεται στις προτιμήσεις του χρήστη, ως προς το είδος των DI που καταναλώνει φαίνεται στη συνέχεια. <DIA> <Description xsi:type= UsageEnviromentPropertyType > <UsageEnviromentProperty xsi:type= Userstype > -58-

59 Το πρότυπο <User> <UserCharacteristic xsi:type= UsaePreferencesType > <UsagePreferences> <mpeg7:filteringandsearchpreferences> <mpeg7:genre> <mpeg7:name> Sports </mpeg7:name> </mpeg7:genre> <mpeg7:genre> <mpeg7:name> Music </mpeg7:name> </mpeg7:genre> </mpeg7:filteringandsearchpreferences> </UsagePreferences> </UserCharacteristic> </User> </UsageEnviromentProperty> </Description> </DIA> Έγγραφο 4.20 Terminal Characteristics Σε αυτήν την κατηγορία υπάρχουν περιγραφές για τα χαρακτηριστικά του τερματικού, το οποίο θα αναπαράγει τα DI. Αυτά τα χαρακτηριστικά μπορούν να οργανωθούν σε τρεις κατηγορίες. I. Ικανότητες κωδικοποίησης/αποκωδικοποίησης : Σε αυτή την κατηγορία περιγράφονται χαρακτηριστικά, σχετικά με την δυνατότητα του τερματικού για την αναπαραγωγή συγκεκριμένων format πολυμέσων. Η περιγραφή γίνεται πάλι υιοθετώντας descriptors από το πρότυπο MPEG-7 που χρησιμοποιούνται για την περιγραφή multimedia υλικού. II. Ιδιότητες Συσκευής : Εδώ περιγράφονται ιδιότητες του τερματικού σχετικές με την υπολογιστική του ισχύ, τον διαθέσιμο χώρο αποθήκευσης δεδομένων, καθώς και ιδιότητες σχετικές με την υποστήριξη τεχνολογιών IPMP στο συγκεκριμένο τερματικό. III. Ικανότητες για ηχητική/οπτική παρουσίαση : Σε αυτή την κατηγορία υπάρχουν περιγραφές για την οθόνη του τερματικού και τις δυνατότητές της. Μπορούν να δοθούν πληροφορίες σχετικές με την ανάλυση της οθόνης, όπως επίσης και πιο εξειδικευμένες πληροφορίες. Για την ομαδοποίηση αυτών των πληροφοριών έχει οριστεί ένα element Display, μέσα στο οποίο βρίσκονται οι πιο ειδικές πληροφορίες. Αντίστοιχα, για τον ήχο ορίζεται το element Audio που συγκεντρώνει πληροφορίες σχετικές με τα διαθέσιμα ηχεία, τα κανάλια εξόδου ήχου κτλ. Στο παράδειγμα που ακολουθεί φαίνεται η περιγραφή ενός τερματικού, ως προς τους διαθέσιμους decoders και την ανάλυση της οθόνης. -59-

60 Το πρότυπο <DIA> <Description xsi:type= UsageEnviromentPropertyType > <UsageEnviromentProperty xsi:type=terminalstype > <Terminal> <TerminalCapability xsi:type= CodecCapabilitiesType > <Decoding xsi:type= VideoCapabilitiesType > <Format href= urn:mpeg:mpeg7:videocodingformat:2001:3: > <mpeg7:name> MPEG-4 Visual Simple 1 </mpeg7:name> </Format> </Decoding> </TerminalCapability> <TerminalCapability xsi:type= DisplaysType > <Display> <DisplayCapability xsi:type= DisplaysCapabilitiesType > <Mode> <Resolution vertical= 176 horizontal= 144 /> </Mode> </DisplayCapability> </Display> </TerminalCapability> </Terminal> </UsageEnviromentProperty> </Description> </DIA> Έγγραφο 4.21 Network Descriptions Σε αυτή τη κατηγορία υπάρχουν περιγραφές για τη δικτυακή πρόσβαση ενός τερματικού. Μπορούν να υπάρχουν τόσο στατικές περιγραφές της υπάρχουσας δικτύωσης, όσο και πληροφορίες για δυναμική μεταβολή σε δίκτυα, όπου υπάρχει αυτή η δυνατότητα. Στην τελευταία περίπτωση ορίζονται συνθήκες οι οποίες εξασφαλίζουν μια συγκεκριμένη ποιότητα παροχής υπηρεσιών. Στο επόμενο παράδειγμα φαίνεται μια περιγραφή χαρακτηριστικών δικτύου <DIA> <Description xsi:type= UsageEnviromentPropertyType > <UsageEnviromentProperty xsi:type= NetworksType > <Network> <NetworkCharacteristic xsi:type= NetworkCapabilityType maxcapacity= minguaranteed= > <NetworkCharacteristic xsi:type= NetworkConditionType starttime= T15: :00 duration= PS2T <AvailableBandwidth average= /> <Error packetlossrate= 0.10 /> </NetworkCharacteristic> -60-

61 Το πρότυπο </Network> </UsageEnviromentProperty> </Description> </DIA> Έγγραφο 4.22 Natural Enviroment Characteristics Σε αυτή την κατηγορία μπορούν να μπουν περιγραφές σχετικά με το φυσικό περιβάλλον στις συνθήκες του οποίου ο χρήστης θα καταναλώσει ένα DI. Αυτές οι περιγραφές αφορούν κυρίως χαρακτηριστικά του περιβάλλοντος, όπως η φωτεινότητα ή το επίπεδο θορύβου στο περιβάλλον και μπορούν να βοηθήσουν στην προσαρμογή, έτσι ώστε ο χρήστης να έχει μια ακόμα περισσότερο άνετη εμπειρία σε σχέση με τα multimedia του DI. Επίσης σε αυτό το μέρος μπορούν να μπουν περιγραφές σχετικές με την τοπική ώρα της τοποθεσίας, στην οποία ο χρήστης θα καταναλώσει το DI, κάτι που είναι κυρίως χρήσιμο για real-time media. -61-

62 Java & XML 5 Java & XML 5.1 Παρουσίαση των APIs της JAVA για XML Σε αυτή την παράγραφο θα γίνει μια συνολική παρουσίαση των κυριότερων APIs της JAVA για τον χειρισμό των XML εγγράφων. Τα κύρια APIs για XML φαίνονται παρακάτω, μαζί με τα βασικά χαρακτηριστικά που έχει το καθένα. JAXP: Java API for XML Processing Αυτό το API παρέχει τη δυνατότητα για τη δημιουργία και χρήση των βασικών SAX, DOM και XSLT APIs στη Java. Είναι το API που επιλέχθηκε να χρησιμοποιηθεί στην εφαρμογή που αναπτύχθηκε στα πλαίσια αυτής της εργασίας και τα επιμέρους χαρακτηριστικά του θα παρουσιαστούν αργότερα σε ξεχωριστό κεφάλαιο. JAXB: Java Architecture for XML Binding Αυτό το API περιέχει κλάσεις που δίνουν τη δυνατότητα για την περιγραφή ενός JAVA object σε XML αρχείο, καθώς και κλάσεις για την δημιουργία ενός Java object από την περιγραφή του σε XML. Χρησιμοποιώντας τις δυνατότητες αυτού του API, μπορεί κανείς να κάνει compile μια περιγραφή ενός object και να χρησιμοποιήσει το object που θα προκύψει μέσα στην εφαρμογή του. Η διαδικασία μετατροπής και περιγραφής ενός object σε XML, ονομάζεται marshaling, ενώ η αντίστροφη διαδικασία, unmarshaling. JDOM: Java DOM Το standard API DOM έχει πολύ απλή δομή και αναπαριστά όλα τα είδη κόμβων με ένα object type node. Αυτό έχει σαν αποτέλεσμα, την ανάγκη να διατρέχει στον κώδικα του ο προγραμματιστής, συλλογές από πολλά nodes και να κάνει κάθε φορά τον απαραίτητο έλεγχο για να επιλέξει το element node ή ένα node άλλου τύπου που τον ενδιαφέρει. Σε αυτό το σημείο το API JDOM έρχεται να διευκολύνει την κατάσταση, προσφέροντας ένα δένδρο από objects κατευθείαν από μια δομή XML, χωρίς να μεσολαβεί διαδικασία compilation. Αυτό παρέχει μεγαλύτερη ευκολία στον προγραμματιστή στον χειρισμό των XML κόμβων που τον ενδιαφέρουν. -62-

63 Java & XML DOM4J Είναι ένα open-source API που λειτουργεί ως εναλλακτική πρόταση στο standard DOM. Η λειτουργίες που προσφέρει είναι συναφείς του JDOM αν και σε πολλά σημεία παρέχει ακόμα περισσότερο αναπτυγμένες λειτουργίες. JAXM: Java API for XML Messaging Αυτό το API παρέχει κλάσεις για ανταλλαγή ασύγχρονων μηνυμάτων, βασισμένων σε XML, μεταξύ των εφαρμογών. JAX-RPC: Java API for XML-based Remote Process Communications Αυτό το API παρέχει κλάσεις για ανταλλαγή σύγχρονων μηνυμάτων, βασισμένων σε XML, μεταξύ των εφαρμογών. JAXR: Java API for XML Registries To API αυτό παρέχει κλάσεις για την δημοσίευση διαθέσιμων υπηρεσιών σε ένα εξωτερικό μητρώο βασισμένο σε XML. Επίσης παρέχει κλάσεις και για την εύρεση υπηρεσιών σε ένα τέτοιο μητρώο. 5.2 JAXP API Σε αυτό το κεφάλαιο θα γίνει μια ειδικότερη περιγραφή του API JAXP που χρησιμοποιήθηκε στην εφαρμογή, για τον χειρισμό και την ανάγνωση δεδομένων από XML αρχεία. Το API αυτό χωρίζεται αρχικά σε τρία επιμέρους APIs, τα οποία είναι το SAX, DOM και XSLT. Τα κύρια στοιχεία του API ορίζονται στο πακέτο javax.xml.parsers. Αυτό το πακέτο περιέχει δύο βασικές, ανεξάρτητες υλοποίησης, κλάσεις. Αυτές είναι οι SAXParserFactory και DocumentBuilderFactory, που δίνουν έναν SAXParser και έναν DocumentBuilder αντίστοιχα. Στη συνέχεια η κλάση DocumentBuilder δημιουργεί ένα συμβατό με το πρότυπο DOM Document Object. Θα πρέπει να διευκρινιστεί ότι λέγοντας ανεξάρτητες υλοποίησης, εννοούμε πως αυτές οι κλάσεις με την επονομασία Factory, έχουν τη δυνατότητα να ενσωματώνουν υλοποιήσεις XML κλάσεων από διαφορετικές εταιρίες ή ομάδες προγραμματιστών, χωρίς να χρειάζεται να γίνει αλλαγή στον πηγαίο κώδικα της εφαρμογής που τις χρησιμοποιεί. Έτσι η κλάση, για παράδειγμα, SAXParserFactory μπορεί να χρησιμοποιηθεί με τον ίδιο τρόπο, αλλά να παράγει έναν SAXParser διαφορετικής υλοποίησης από το κλασσικό, που παρέχεται από τη JAVA. Η -63-

64 Java & XML υλοποίηση που θα παραχθεί εξαρτάται από τις μεταβλητές συστήματος javax.xml.parsers.saxparserfactory και javax.xml.parsers.documentbuilderfactory. Ο ορισμός μιας τιμής για τις προηγούμενες μεταβλητές γίνεται με τη βοήθεια της παρακάτω εντολής, μέσα στον κώδικα της εφαρμογής μας. System.setProperty("javax.xml.parsers.SAXParserFactory","new-factory") Τα APIs DOM και SAX έχουν οριστεί από την ομάδα XML-DEV του οργανισμού W3C και προσδιορίζουν και τα δύο, συγκεκριμένα μοντέλα για τον χειρισμό δεδομένων σε XML. Το μοντέλο SAX είναι ένα μοντέλο που στηρίζεται σε events, τα οποία παράγονται κατά την ανάγνωση του XML εγγράφου από τον parser. Ο μηχανισμός με τον οποίο γίνεται η επεξεργασία, είναι σειριακός, δηλαδή η όλη επεξεργασία των δεδομένων μπορεί να γίνει μόνο με τη συγκεκριμένη σειρά που είναι ορισμένα τα elements στο έγγραφο. Αυτός ο τρόπος λειτουργίας προσφέρει μεγάλη ταχύτητα, αλλά παρουσιάζει αρκετές προγραμματιστικές δυσκολίες, όταν τα έγγραφα που πρόκειται να επεξεργαστούν είναι μεγάλα σε έκταση και σύνθετα στη δομή. Το μοντέλο DOM είναι γενικά ευκολότερο στη χρήση και παρέχει μια δενδρική απεικόνιση της συνολικής ιεραρχίας του XML εγγράφου. Για να γίνει εφικτό αυτό, ολόκληρη η δομή φορτώνεται στη μνήμη ως ένα αυτοτελές object. Στη συνέχεια με κατάλληλη χρήση μεθόδων που παρέχονται, επιτρέπεται η πρόσβαση σε εσωτερικά elements της ιεραρχίας, καθώς και στα περιεχόμενα αυτών. Βέβαια, αυτή η ευκολία στη διαχείριση και επεξεργασία της δομής των δεδομένων, κάνει το μοντέλο αυτό πιο αργό σε σχέση με το SAX, καθώς απαιτείται μεγαλύτερη υπολογιστική ισχύ και περισσότερη μνήμη. Στην εφαρμογή που αναπτύχθηκε στα πλαίσια αυτής της διπλωματικής εργασίας, κρίθηκε προτιμότερη η χρήση του μοντέλου DOM, αφού στο πρότυπο MPEG-21, εκτός από τα ίδια τα δεδομένα έχει μεγάλη σημασία και η ιεραρχία τους. Έτσι, μιας και τα XML έγγραφα που αναπτύχθηκαν δεν έχουν ιδιαίτερα μεγάλη έκταση, προτιμήθηκε το μοντέλο DOM που παρέχει μεγαλύτερη ευελιξία και ευκολία στην διαχείριση της δομής και της ιεραρχίας της XML. Το τελευταίο από τα APIs που περιλαμβάνονται στο JAXP, είναι το API XSLT. Αυτό το API παρέχει κλάσεις για την εγγραφή δεδομένων XML σε ένα αρχείο ή σε ένα stream χαρακτήρων, καθώς και κλάσεις για τον μετασχηματισμό XML δεδομένων σε άλλες μορφές. Στην εφαρμογή του MPEG-21 χρησιμοποιήθηκαν κλάσεις από αυτό το API, για τη διαδικασία της εγγραφής δεδομένων XML σε ένα πίνακα από bytes, ώστε να γίνει η μεταφορά τους από το server προς τον client. -64-

65 Java & XML Τα πακέτα της JAVA που περιέχει το JAXP API είναι τα ακόλουθα : javax.xml.parsers Περιέχει ένα κοινό interface για parsers org.w3c.dom από διαφορετικούς παρόχους. Ορίζει τη βασική κλάση Document του μοντέλου DOM καθώς και κλάσεις για τα org.xml.sax υπόλοιπα μέλη του μοντέλου Περιέχει τις βασικές κλάσεις για το javax.xml.transform μοντέλο SAX Περιέχει τις κλάσεις του API XSLT που επιτρέπουν την επεξεργασία XML εγγράφων σε άλλες μορφές. 5.3 DOM API Σε αυτή την παράγραφο θα γίνει μια περιγραφή των βασικών κλάσεων του πακέτου org.w3c.dom, που δομούν την υλοποίηση του μοντέλου DOM και θα δοθούν επίσης μερικά βασικά παραδείγματα κώδικα για την επεξεργασία και τον χειρισμό των εγγράφων XML, με το API DOM, που αποτέλεσε και τη βασική βιβλιοθήκη για την ανάπτυξη της εφαρμογής του MPEG-21. Κάθε εφαρμογή επεξεργασίας XML με αυτό το API ξεκινάει με τη δημιουργία ενός object org.w3c.dom.document, που αναπαριστά ουσιαστικά τα περιεχόμενα και τη δομή ενός αρχείου σε XML. Επίσης παρέχει όλες εκείνες τις κλάσεις για το χειρισμό του, μέσω τον μεθόδων του. Η διαδικασία δημιουργίας αυτού του object παρουσιάζεται σχηματικά στο παρακάτω σχήμα. -65-

66 Java & XML Εικόνα 5.1 Η κλάση DocumentBuilderFactory Βρίσκεται στο πακέτο javax.xml.parsers. Η κλάση αυτή χρησιμοποιείται για να επιτρέψει στην εφαρμογή, να πάρει έναν parser, οποίος θα χρησιμοποιηθεί για την ανάγνωση ενός XML αρχείου και για τη δημιουργία ενός αντικειμένου DOM δενδρικής δομής. Περιέχει μεθόδους που ορίζουν διάφορες παραμέτρους του parser, όπως για παράδειγμα αν θα κάνει έλεγχο της εγκυρότητας του εγγράφου σε σχέση με ένα XML schema, που ορίζεται από τον προγραμματιστή. Η βασική μέθοδος είναι η newdocumentbuilder(), που δίνει ένα object DocumentBuilder. Η κλάση DocumentBuilder Βρίσκεται στο πακέτο javax.xml.parsers. Η κλάση αυτή χρησιμοποιείται για να δημιουργηθεί ένα object Document από ένα έγγραφο XML και παίζει το ρόλο του parser. Οι βασικές μέθοδοι της κλάσης είναι δύο, η newdocument() και η parse(file f). Η πρώτη μέθοδος δημιουργεί και επιστρέφει ένα κενό object Document. Η δεύτερη επιστρέφει ένα object Document, το οποίο έχει τη δομή και το περιεχόμενο του αρχείου XML που της δόθηκε σαν όρισμα. Επίσης υπάρχουν υλοποιημένες μέθοδοι parse, που δέχονται διαφορετικά ορίσματα, όπως object InputStream για την ανάγνωση και δημιουργία Document από διάφορες πηγές, εκτός από ένα συγκεκριμένο αρχείο αποθηκευμένο στο σκληρό δίσκο. Τέλος, η κλάση DocumentBuilder διαθέτει και μεθόδους που επιστρέφουν τις τρέχουσες ρυθμίσεις ενός object, δημιουργημένου από αυτή την κλάση. -66-

67 Java & XML To interface Document Βρίσκεται στο πακέτο org.w3c.dom.το interface Document αναπαριστά ολόκληρο το XML έγγραφο και κατά συνέπεια είναι το αρχικό σημείο πρόσβασης σε όλα τα δεδομένα του εγγράφου. Όλα τα στοιχεία που αποτελούν ένα XML έγγραφο δεν μπορούν να υπάρξουν έξω από ένα Document. Συνεπώς, σε αυτό το interface παρέχονται μέθοδοι για την δημιουργία των όλων των objects, που αναπαριστούν αυτά τα στοιχεία. Μερικές βασικές και συχνά χρησιμοποιούμενες μέθοδοι του interface παρουσιάζονται στον παρακάτω πίνακα. createattribute(string name) Δημιουργεί ένα object Attr με το createcomment(string data) συγκεκριμένο όνομα. Δημιουργεί ένα object Comment με createelement(string tagname) το συγκεκριμένο περιεχόμενο. Δημιουργεί ένα object Element με το createtextnode(string data) συγκεκριμένο όνομα. Δημιουργεί ένα object Text με το getdocumentelement() συγκεκριμένο περιεχόμενο. Επιστρέφει το root element getelementsbytagname(string tagname) εγγράφου. Επιστρέφει ένα object NodeList με του όλα τα elements του εγγράφου με αυτό το όνομα ταξινομημένα με τη σειρά εμφάνισής τους στο έγγραφο. Επιστρέφει ένα string με την getxmlencoding() κωδικοποίηση του εγγράφου όπως αυτή δηλώνεται στο τμήμα του XML Declaration. Θα πρέπει να τονιστεί ότι αναφέρθηκε πρώτα το interface Document, επειδή στη διαδικασία μιας εφαρμογής ανάγνωσης XML χρειάζεται να χρησιμοποιηθεί πρώτο. Στην πραγματικότητα αυτό το interface κληρονομεί το interface Node, που είναι το δομικό στοιχείο του μοντέλου DOM και θα παρουσιαστεί στη συνέχεια. Το interface Node Το interface Node είναι το βασικό στοιχείο και η βασική δομή για ολόκληρο το μοντέλο DOM. Αναπαριστά κάθε κόμβο στη δενδρική δομή ενός εγγράφου. Το συγκεκριμένο interface παρέχει μεθόδους για τη διαχείριση και επεξεργασία των child elements ενός κόμβου ή του parent element ενός κόμβου. Ενώ όλα τα objects που υλοποιούν αυτό το interface παρέχουν τις ίδιες μεθόδους, δεν μπορούν όλα να έχουν child elements. Για να γίνει περισσότερο κατανοητό αυτό, -67-

68 Java & XML θα δώσουμε ένα παράδειγμα. Στο μοντέλο DOM ακόμα και ένα μέρος κειμένου σε ένα XML έγγραφο αναπαρίσταται σαν object, που υλοποιεί το interface Node, δηλαδή ως Text Node. Σε αυτή την περίπτωση, εάν καλέσουμε την συνάρτηση getfirstchild που δίνει το πρώτο παιδί ενός Node, τότε αυτή θα επιστρέψει null. Παρόμοια εάν προσπαθήσουμε να προσθέσουμε ένα Node παιδί, με την μέθοδο AppendChild(Node NewChild) τότε θα προκληθεί ένα DOMException. Για τη διάκριση μεταξύ των στοιχείων XML που αντιπροσωπεύει κάθε object Node, υπάρχει η μέθοδος getnodetype(), που επιστρέφει έναν ακέραιο, ενδεικτικό του τύπου του Node. Οι διάφορες τιμές, καθώς και η αντιστοιχία τους, φαίνονται στον πίνακα που ακολουθεί. Στον παραπάνω πίνακα φαίνονται και οι τιμές που επιστρέφουν οι βασικές μέθοδοι getnodename(), getnodevalue() και getattributes() για κάθε τύπο των object που υλοποιούν το interface. Για να γίνει η διάκριση μέσω του τύπου τον στοιχείων που αναπαριστά ένα object Node, είναι απαραίτητο να υπάρχει ένας σταθερός πίνακας με strings, έτσι ώστε σε κάθε σημείο του προγράμματος να μπορεί να προσδιοριστεί ο τύπος του Node και να γίνει ο κατάλληλος χειρισμός του από το πρόγραμμα. Αυτό φαίνεται στο παράδειγμα που ακολουθεί. -68-

69 Java & XML public class Mpeg21Parser { static final String[] typename = { "none", "Element", "Attr", "Text", "CDATA", "EntityRef", "Entity", "ProcInstr", "Comment", "Document", "DocType", "DocFragment", "Notation", }; Node node;.... String nodetype = typename[node.getnodetype()];.. } Όπως αναφέρθηκε και προηγουμένως το interface Node είναι αυτό που παρέχει στον προγραμματιστή ένα μεγάλο αριθμό από μεθόδους, έτσι ώστε να είναι δυνατή η περιήγηση στα διάφορα στοιχεία του XML και η ανάκτηση των δεδομένων που περιγράφονται. Μερικές από τις πιο βασικές μεθόδους που χρησιμοποιήθηκαν στην εφαρμογή περιγράφονται στον πίνακα που ακολουθεί. appendchild(node newchild) Προσθέτει το Node newchild στο τέλος getattributes() της λίστας των child Nodes του κόμβου. Αν το Node είναι τύπου Element επιστρέφει ένα object NamedNodeMap getchildnodes() με τις ιδιότητες του Element. Επιστρέφει ένα object NodeList που περιέχει -69- τα child Nodes του

70 Java & XML getfirstchild() συγκεκριμένου Node. Επιστρέφει το πρώτο child Node του getnodename() συγκεκριμένου Node. Επιστρέφει ένα string με το όνομα του getnextsibling() Node ανάλογα με τον τύπο του. Επιστρέφει το επόμενο Node στη δομή getnodetype() του XML εγγράφου Επιστρέφει ένα αριθμό getnodevalue() ενδεικτικό του τύπου του Node. Επιστρέφει ένα string με την τιμή του getparentnode() Node ανάλογα με τον τύπο του. Επιστρέφει το parent Node removechild(node oldchild) συγκεκριμένου Node. Αφαιρεί το node oldchild από τα child τύπου short του Nodes του συγκεκριμένου Node και το επιστρέφει. Παράδειγμα κώδικα σε JAVA Σε αυτό το κεφάλαιο θα δοθεί ένα μικρό ενδεικτικό μέρος κώδικα, που περιέχει τις βασικές λειτουργίες για το άνοιγμα, διάβασμα και την επεξεργασία ενός XML εγγράφου αποθηκευμένου στον σκληρό δίσκο. public XMLHandler() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = factory.newdocumentbuilder(); Document xmldoc = builder.parse( new File("Users.xml") ); NodeList childnodes = xmldoc.getchildnodes(); Node firstnode = childnodes.item(0); System.out.println( firstnode.getnodename() );.... } catch (ParserConfigurationException pcex) { ex.printstacktrace(); } catch (SAXException saex) { sex.printstacktrace(); }catch (IOException ioex) { -70-

71 Java & XML ioex.printstacktrace(); } } Ο κώδικας του προηγούμενου παραδείγματος ανοίγει ένα έγγραφο XML και στη συνέχεια δημιουργεί ένα object document. Έπειτα δημιουργεί ένα node με τον πρώτο κόμβο του εγγράφου και στη συνέχεια εκτυπώνει το όνομα αυτού του κόμβου. 5.4 XSLT API Το API αυτό περιέχει κλάσεις που διευκολύνουν την δημιουργία ενός XML εγγράφου στο σκληρό δίσκο από ένα object σε μορφή DOM ή το αντίθετο. Στην εφαρμογή αυτής της εργασίας χρησιμοποιήθηκαν μόνο κάποιες πολύ βασικές κλάσεις αυτού το API που περιέχονται στο πακέτο java.xml.transform. Με τη βοήθεια αυτών των κλάσεων ένα Node object,στην πλευρά του server, αφού είχε προηγουμένως επεξεργαστεί από τον Mpeg21Parser της εφαρμογής και είχε τροποποιηθεί αναλόγως, πήρε την μορφή ενός πίνακα από bytes, ώστε να γίνει δυνατή η μεταφορά του στον client. Από την πλευρά του client, χρησιμοποιούνται αντίστοιχες κλάσεις για να γίνει η αντίστροφη διαδικασία. Στον πίνακα που ακολουθεί δίνονται οι βασικές κλάσεις του πακέτου μαζί με μια μικρή περιγραφή. TransformerFactory Χρησιμοποιείται για την δημιουργία ενός Transformer object Transformer Χρησιμοποιείται για να μετατρέψει ένα DOM dom.domsource object σε μια άλλη μορφή. Χρησιμοποιείται για να περιγράψει το αρχικό Dom object που θα δοθεί ως είσοδος dom.domresult σε ένα object Transformer. Χρησιμοποιείται για να περιγράψει το τελικό αποτέλεσμα stream.streamsource της επεξεργασίας object Transformer. Χρησιμοποιείται για να από ένα περιγράψει ένα stream από bytes που αντιστοιχούν σε ένα XML έγγραφο και δίνονται ως είσοδος στον stream.streamresult Transformer. Χρησιμοποιείται για να περιγράψει ένα stream από bytes που αντιστοιχούν σε ένα XML έγγραφο και παίρνονται ως έξοδος από τον Transformer. -71-

72 Java & XML -72-

73 Ανάπτυξη Εφαρμογής Client-Server 6 Ανάπτυξη εφαρμογής client-server 6.1 Στόχοι - Γενική περιγραφή Η εφαρμογή που αναπτύχθηκε στα πλαίσια αυτής της εργασίας, είχε ως στόχο να δείξει τη συμβολή και τη χρησιμότητα των δομών και των τεχνικών, που προτείνονται από το πρότυπο MPEG-21 στην ομαλή διάθεση και μεταφορά πολυμεσικού περιεχομένου. Πιο συγκεκριμένα, έγινε προσπάθεια εφαρμογής βασικών στοιχείων του προτύπου, όπως αυτά αναφέρθηκαν στο προηγούμενο κεφάλαιο, σε ένα πραγματικό περιβάλλον, αποτελούμενο από έναν βασικό server που παρέχει το υλικό και μια εφαρμογή client που συνδέεται με τον server και αποτελεί τον καταναλωτή του υλικού. Ο server έχει την δυνατότητα να «αναγνωρίσει» τον χρήστη που συνδέεται σε αυτόν και στη συνέχεια χρησιμοποιώντας αρχεία σε μορφή XML να προσδιορίσει χαρακτηριστικά, που έχουν σχέση με τις προτιμήσεις του ίδιου του χρήστη και τις δυνατότητες του τερματικού που αυτός χρησιμοποιεί. Στη συνέχεια έχει την δυνατότητα να τροποποιήσει ανάλογα, αφενός το είδος του υλικού που θα εμφανίσει στον χρήστη και αφετέρου την ποιότητα στην οποία θα παρέχει αυτό το υλικό. Το υλικό που είναι σε θέση να παρέχει ο server, είναι αρχεία ήχου κωδικοποιημένα σε μορφή wav και video από μια webcam. Τα αρχεία ήχου τα οποία χρησιμοποιήθηκαν, έχουν στην ανώτερη δυνατή ποιότητα ρυθμό δειγματοληψίας 48000Hz, μέγεθος δείγματος 16bit και είναι stereo. Αναλόγως με τον χρήστη ο ρυθμός δειγματοληψίας μπορεί να διαβαθμιστεί στα 44100Hz, 32000Hz, 22050Hz, 16000Hz, 11025Hz και 8000Ηz, το μέγεθος δείγματος μπορεί να μειωθεί στα 8bit και ο ήχος μπορεί να γίνει μονοφωνικός. Για το video χρησιμοποιήθηκε μια webcam με μέγιστη δυνατή ανάλυση 640x480 και 15fps, ενώ η κωδικοποίηση που χρησιμοποιείται είναι RGB. Η ποιότητα του video μπορεί να μειωθεί στις παρακάτω αναλύσεις 352x288, 320x240, 176x144, 160x120. Κάθε φορά που ξεκινάει μια συνεδρία από τον client προς τον server, ο client αποστέλλει έναν αριθμό που λειτουργεί ως id και βάση αυτού του αριθμού γίνεται η ταυτοποίησή του στον server. Στη συνέχεια ο server προσδιορίζει τα χαρακτηριστικά του χρήστη και αποστέλλει σε αυτόν ένα κατάλληλο xml αρχείο, που περιέχει το υλικό που είναι διαθέσιμο σε αυτόν. Αυτό το xml αρχείο έχει δομή που στηρίζεται στο DIDL του MPEG-21 και είναι τροποποιημένο ανάλογα με τα -73-

74 Ανάπτυξη Εφαρμογής Client-Server χαρακτηριστικά του χρήστη. Τα χαρακτηριστικά του χρήστη που είναι δυνατόν να περιγραφούν, είναι η δυνατότητά για πρόσβαση στα αρχεία ήχου, σε video ή και στα δύο. Η μεταφορά των δεδομένων γίνεται χρησιμοποιώντας το πρότυπο RTP. Το media.xml αρχείο εμφανίζεται στη μεριά του client σε ένα GUI interface χρησιμοποιώντας ένα JTree. Έτσι το xml έγγραφο μετατρέπεται σε μία δενδρική μορφή που παρουσιάζεται οπτικά στο χρήστη ως ένα JTree. Ο client στη συνέχεια επιλέγει το αρχείο ήχου ή το video που επιθυμεί και στη συνέχεια ο server ξεκινά μια RTP συνεδρία προς αυτόν, με το ανάλογο περιεχόμενο. Για τα αρχεία ήχου υπάρχει και η εναλλακτική δυνατότητα ο client να κατεβάσει και να αποθηκεύσει στο τερματικό του ολόκληρο το αρχείο ήχου από έναν web server, στη μέγιστη δυνατή ποιότητα. H επιλογή γίνεται χρησιμοποιώντας το element choice από το DIDL. Εκτενέστερη περιγραφή του τρόπου επιλογής θα γίνει σε επόμενο κεφάλαιο, όπου θα παρουσιαστούν τα xml αρχεία που αποτελούν τον πυρήνα της εφαρμογής. Για την μεταφορά των δεδομένων με το πρότυπο RTP, χρησιμοποιήθηκε το πακέτο της JAVA Java Media Framework. Το πακέτο αυτό επιλέχθηκε λόγω της απλότητας στην υλοποίηση και λόγω της δυνατότητας για transcoding σε multimedia με σχετικά εύκολο και απλό τρόπο. Το ίδιο πακέτο χρησιμοποιήθηκε και για τη διαδικασία του capturing από την webcam. Τέλος, θα πρέπει να αναφερθεί ότι δεν θα γίνει ιδιαίτερη αναφορά στον τρόπο με τον οποίο επιτυγχάνεται η αλλαγή της κωδικοποίησης του ήχου και του video με το Java Media Framework, καθώς κάτι τέτοιο κρίθηκε πως ξεφεύγει από τα πλαίσια του MPEG-21 που είναι και το θέμα αυτής της εργασίας. Άλλωστε, όπως αναφέρθηκε και στην περιγραφή του προτύπου, η επιλογή των εργαλείων για την μεταφορά και την κωδικοποίηση/αποκωδικοποίηση των δεδομένων, είναι θέμα υλοποίησης και είναι ανεξάρτητη από το ίδιο το πρότυπο, που έχει στόχο την περιγραφή της τελικής ποιότητας και μορφής των δεδομένων. Έτσι σε κάποια άλλη υλοποίηση θα μπορούσαν να χρησιμοποιηθούν άλλοι κωδικοποιητές/αποκωδικοποιητές για την επεξεργασία του ήχου ή του video. 6.2 Xml αρχεία Η εφαρμογή που αναπτύχθηκε στηρίζεται σε τέσσερα XML αρχεία, το Users.xml, Terminals.xml, Media.xml και Media_Rtp_Server.xml, τα οποία βρίσκονται στον server και προσφέρουν όλη την υποστήριξη για την παροχή της λειτουργικότητας στον server. Χονδρικά, μπορούμε να αναφέρουμε, πως σε αυτά -74-

75 Ανάπτυξη Εφαρμογής Client-Server τα αρχεία γίνεται η περιγραφή των χαρακτηριστικών των χρηστών, η περιγραφή των τερματικών που χρησιμοποιούν οι χρήστες και τέλος, η περιγραφή των multimedia που προσφέρονται από τον server, μαζί με τον τρόπο για τη διάθεσή τους. Με αυτόν τον τρόπο προσδιορίζεται η λειτουργία του server, ως server, καθώς παρέχεται η δυνατότητα της προσαρμογής του υλικού με βάση τον χρήστη και η μεταφορά του ανεξάρτητα από το εκάστοτε πρωτόκολλο που έχει επιλεγεί. Στη συνέχεια του κεφαλαίου αυτού θα παρουσιαστεί το κάθε έγγραφο ξεχωριστά και θα αναλυθούν η δομή του και η λειτουργικότητα που προσφέρει. Users.xml <?xml version="1.0" encoding="utf-8"?> <DIA> <Description> <User user_id="100"> <UserCharacteristic type="mediapreferences" value="audio"/> <TerminalCharacteristic terminal_id="1"/> </User> <User user_id="200"> <TerminalCharacteristic terminal_id="2"/> <UserCharacteristic type="mediapreferences" value="audio"/> <UserCharacteristic type="mediapreferences" value="video"/> </User> <User user_id="300"> <UserCharacteristic type="mediapreferences" value="audio"/> <UserCharacteristic type="mediapreferences" value="video"/> <TerminalCharacteristic terminal_id="3"/> </User> </Description> </DIA> Έγγραφο 6.1 Το αρχείο αυτό χρησιμοποιείται για να περιγράψει τον εκάστοτε χρήστη που συνδέεται στον server. Η λειτουργικότητα που προσφέρει αφορά, πρώτον, την αναγνώριση και ταυτοποίηση χρήστη με τη βοήθεια ενός user_id που αποστέλλεται στον client και στη συνέχεια τον προσδιορισμό των προτιμήσεών του ως προς τα multimedia και τον προσδιορισμό του είδους του τερματικού, που αυτός χρησιμοποιεί. Σε αναλογία με το πρότυπο, το είδος των πληροφοριών που παρέχονται από το συγκεκριμένο αρχείο, εντάσσονται στην κατηγορία του Digital -75-

76 Ανάπτυξη Εφαρμογής Client-Server Item Adaptation και για αυτό το λόγο το root element του εγγράφου ονομάζεται <DIA>. Η δομή του αποτελείται από elements <User>, τα οποία πρέπει να έχουν ένα attribute user_id που αναφέρεται στο αποκλειστικό id του κάθε χρήστη και χρησιμεύει στην αναγνώρισή του. Στη συνέχεια περιέχουν elements δύο ειδών : TerminalCharacteristics και UserCharacteristics, που χρησιμοποιούνται για την περιγραφή χαρακτηριστικών τερματικού και χρήστη αντίστοιχα. Για τον ακριβή προσδιορισμό των χαρακτηριστικών του τερματικού, επιλέχθηκε η δημιουργία ενός ξεχωριστού εγγράφου του Terminals.xml. Η αντιστοίχηση τερματικού σε χρήστη γίνεται με τη χρήση του attribute terminal_id, που προσδιορίζει ένα συγκεκριμένο τερματικό, που περιγράφεται στο Terminals.xml. Στη συγκεκριμένη υλοποίηση το element UserCharacteristics έχει δύο attributes, τo type και value. Όπως φαίνεται και από τα ονόματά τους, προσδιορίζουν ένα τύπο χαρακτηριστικών χρήστη και μια τιμή του χαρακτηριστικού. Στην εφαρμογή χρησιμοποιήθηκε μόνο ο τύπος MediaPreferences, που αντιστοιχεί στις προτιμήσεις του χρήστη σε οπτικό ή ακουστικό υλικό, αλλά χρησιμοποιήθηκε και το attribute type για να γίνει εμφανές ο τρόπος με τον οποίο θα μπορούσε να γίνει επέκταση του εγγράφου και σε άλλα πιο ειδικά χαρακτηριστικά του χρήστη. Τέλος σύμφωνα με τις προδιαγραφές του, όλα τα παραπάνω περιέχονται σε ένα element Descriptor, αφού περιέχουν περιγραφικές, όσον αφορά τον χρήστη, πληροφορίες. Terminals.xml <?xml version="1.0" encoding="utf-8"?> <DIA> <Description type="terminalstype"> <Terminal terminal_id="1"> <TerminalCapability type="codeccapabilitiestype"> <Decoding type="audiocapabilitiestype"> <MediaFormat> <Format value="mpegaudio/rtp"/> <Samplerate value="22050"/> <Sampleinbits value="16"/> <Channels value="1"/> </MediaFormat> </Decoding> <Decoding type="videocapabilitiestype"> <MediaFormat> <Format value="rgb"/> </MediaFormat> </Decoding> </TerminalCapability> <TerminalCapability type="displaystype"> <Display> <DisplayCapability type="displaycapabilitytype"> <Resolution horizontal="176" -76-

77 Ανάπτυξη Εφαρμογής Client-Server vertical="144" /> </DisplayCapability> </Display> </TerminalCapability> </Terminal> <Terminal terminal_id="2"> <TerminalCapability type="codeccapabilitiestype"> <Decoding type="audiocapabilitiestype"> <MediaFormat> <Format value="mpegaudio/rtp"/> <Samplerate value="44100"/> <Sampleinbits value="16"/> <Channels value="2"/> </MediaFormat> </Decoding> <Decoding type="videocapabilitiestype"> <MediaFormat> <Format value="rgb"/> </MediaFormat> </Decoding> </TerminalCapability> <TerminalCapability type="displaystype"> <Display> <DisplayCapability type="displaycapabilitytype"> <Resolution horizontal="320" vertical="240" /> </DisplayCapability> </Display> </TerminalCapability> </Terminal> <Terminal terminal_id="3"> <TerminalCapability type="codeccapabilitiestype"> <Decoding type="audiocapabilitiestype"> <MediaFormat> <Format value="dvi/rtp"/> <Samplerate value="8000"/> <Sampleinbits value="4"/> <Channels value="1"/> </MediaFormat> </Decoding> <Decoding type="videocapabilitiestype"> <MediaFormat> <Format value="rgb"/> </MediaFormat> </Decoding> </TerminalCapability> <TerminalCapability type="displaystype"> <Display> <DisplayCapability type="displaycapabilitytype"> <Resolution horizontal="176" vertical="144" /> </DisplayCapability> </Display> </TerminalCapability> </Terminal> </Description> </DIA> Έγγραφο

78 Ανάπτυξη Εφαρμογής Client-Server Το αρχείο αυτό χρησιμοποιείται για την περιγραφή των χαρακτηριστικών των τερματικών, έτσι ώστε στη συνέχεια, βάση αυτών των χαρακτηριστικών, ο server να είναι σε θέση να μορφοποιήσει κατάλληλα τα multimedia που θα παρέχει στον client. Όπως και το προηγούμενο αρχείο Users.xml, εντάσσεται στο τμήμα του που αναφέρεται ως Digital Item Adaptation και για αυτόν τον λόγο το root element του εγγράφου έχει το όνομα DIA. Στη συγκεκριμένη περίπτωση υπάρχουν οι περιγραφές για τρία διαφορετικά τερματικά, τα οποία δηλώνονται μέσα σε elements Terminals. Το κάθε <Terminal> έχει ένα attribute terminal_id με τη βοήθεια του οποίου γίνεται η ταυτοποίησή του. Η δομή του terminal element αποτελείται από elements TerminalCapability, που με το attribute type, προσδιορίζουν μια ξεχωριστή ικανότητα του τερματικού. Χρησιμοποιήθηκαν δύο είδη τέτοιων elements, τα CodecCapabilitiesType και DisplaysType, που περιγράφουν αντίστοιχα τις δυνατότητες του τερματικού, όσον αφορά την κωδικοποίηση των multimedia και τον τύπο της οθόνης, όπου αυτή υπάρχει. Το element με type= CodecCapabilitiesType, με την χρήση των elements Decoding, είναι σε θέση να περιγράψει τα χαρακτηριστικά κωδικοποιήσεων ήχου και video, που το συγκεκριμένο τερματικό είναι σε θέση να χειριστεί. Εδώ θα πρέπει να διευκρινιστεί, ότι χρησιμοποιήθηκε για την περιγραφή αυτών των κωδικοποιήσεων, ένα απλό αλλά ενδεικτικό format δομής. Σε μία πολυπλοκότερη εφαρμογή θα μπορούσαν να ενσωματωθούν σε ένα element Decoding περιγραφές σε μορφή MPEG7, που προσφέρουν μία περισσότερο αναλυτική και τυποποιημένη περιγραφή στον τρόπο κωδικοποίησης των πολυμέσων. Τέλος, η παραπάνω δομή προσφέρει την ευελιξία που χρειάζεται για την περιγραφή και άλλων πιθανών κωδικοποιήσεων, που δεν έχουν ενσωματωθεί στη συγκεκριμένη υλοποίηση. Επίσης, δίνεται η δυνατότητα για την περιγραφή και άλλων παραμέτρων ενός τερματικού, όπως για παράδειγμα το διαθέσιμο bandwidth ή γενικά παράμετροι δικτύου, απλά προσθέτοντας ένα νέο element TerminalCapability, χωρίς να απαιτείται τροποποίηση της υπάρχουσας δομής. Media.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE DIDL SYSTEM "Media.dtd"> <DIDL xmlns="urn:mpeg:mpeg21:2002:02-didl-ns"> <Declarations> <Descriptor id="creator"> <Statement mimetype="text/plain" > Vasilis Manolopoulos -78-

79 Ανάπτυξη Εφαρμογής Client-Server </Statement> </Descriptor> </Declarations> <Container id="music_collection"> <Descriptor id="media_type"> <Statement mimetext="text/plain"> Audio </Statement> </Descriptor> <Item id="song 1"> <Descriptor id="title"> <Statement mimetype="text/plain"> alexiou - Xronia xelidonia </Statement> </Descriptor> <Choice choice_id="payment" minselections="1" maxselextions="1"> <Descriptor> <Statement mimetype="text/plain"> Do you want to pay for listening </Statement> </Descriptor> <Selection select_id="not paid"> <Descriptor> <Statement mimetype="text/plain"> I don't want to pay </Statement> </Descriptor> </Selection> <Selection select_id="paid"> <Descriptor> <Statement mimetype="text/plain"> I want to pay </Statement> </Descriptor> </Selection> </Choice> <Component> <Condition require="paid"/> <Descriptor > <Statement mimetype="text/plain"> Download and preview of the song </Statement> </Descriptor> <Resource mimetype="audio/wav" ref="ftp:// //alexiou-xronia Xelidonia.wav"/> </Component> <Component> <Condition require="not paid"/> <Descriptor> <Statement mimetype="text/plain"> Preview of the song via rtp server </Statement> </Descriptor> <Resource mimetype="audio/rtp" ref="rtp:// :16000"/> </Component> </Item> <Item id="song 2"> <Descriptor id="title"> -79-

80 Ανάπτυξη Εφαρμογής Client-Server <Statement mimetype="text/plain"> Barry White - Never never gonna give ya up.wav </Statement> </Descriptor> <Component> <Descriptor> <Statement mimetype="text/plain"> Preview of the song via rtp server </Statement> </Descriptor> <Resource mimetype="audio/rtp" ref="rtp:// :16002"/> </Component> </Item> </Container> <Item id="video from Webcam"> <Descriptor id="title"> <Statement mimetype="text/plain"> My Home Webcam </Statement> </Descriptor> <Descriptor id="media_type"> <Statement mimetext="text/plain"> Video </Statement> </Descriptor> <Component> <Descriptor> <Statement mimetype="text/plain"> rtp transmission of web cam </Statement> </Descriptor> <Resource mimetype="video/rtp" ref="rtp:// :16004"/> </Component> </Item> </DIDL> Έγγραφο 6.3 Το έγγραφο Media.xml είναι το πιο σύνθετο έγγραφο XML, που χρησιμοποιείται από τον Server και περιγράφει όλο το multimedia υλικό που παρέχει ο server. Επίσης το συγκεκριμένο έγγραφο αποστέλλεται στον client, ο οποίος στη συνέχεια μπορεί να επιλέξει ανάμεσα στο video από τη webcam και στα μουσικά αρχεία που επιθυμεί. Το έγγραφο αυτό αποτελεί το κομμάτι της υλοποίησης που αντιστοιχεί στο Digital Item Declaration του και χρησιμοποιεί τα elements και τη δομή που περιγράφεται στη Digital Item Declaration Language του προτύπου. Η συγκεκριμένη δομή που παρουσιάζεται, περιγράφει ένα container element, που χρησιμοποιείται για να δηλώσει μια ομαδοποίηση ομοειδών Digital Items, που στη περίπτωση αυτή είναι μουσικά κομμάτια, καθώς και ένα ξεχωριστό Item που αντιστοιχεί στο video από τη webcam του server. Στη αρχή του εγγράφου υπάρχει ένα element Declarations, που με τη βοήθεια των elements -80-

81 Ανάπτυξη Εφαρμογής Client-Server Descriptor και Statement, όπως αυτά ορίζονται στη DIDL, χρησιμοποιούνται για την παρουσίαση πληροφοριών σχετικά με τoν δημιουργό των DI που βρίσκονται στο έγγραφο. Θα πρέπει να τονιστεί ότι το συγκεκριμένο έγγραφο δεν αποστέλλεται στον client όπως έχει, αλλά υφίσταται κάποια τροποποίηση ανάλογα με τις προτιμήσεις του χρήστη. Η διαδικασία που ακολουθείται έχει ως εξής. Αρχικά ο η εφαρμογή του server αναγνωρίζει τον χρήστη από το id που αυτός του στέλνει και από το αρχείο users.xml, ανακτά τον τύπο του τερματικού που αυτός χρησιμοποιεί, καθώς και τις προτιμήσεις του σχετικά με audio video ή και τα δύο. Στη συνέχεια διαβάζεται το αρχείο media.xml και ελέγχονται όλα τα items και τα containers που αυτό περιέχει. Εκεί, ανάλογα με τα descriptors και με τα id media_type που αυτά περιέχουν, καθορίζεται αν πρόκειται για audio ή για video. Στη συνέχεια με βάση τις προτιμήσεις του χρήστη αφαιρούνται τα αντίστοιχα items ή containers και τελικά το τροποποιημένο έγγραφο στέλνεται στον client. Ένα επιπλέον στοιχείο που χρίζει αναφοράς στο έγγραφο που εξετάζεται, είναι η χρήση των elements choice και selection για την επιλογή του τρόπου με τον οποίο θα διατεθεί ένα τραγούδι στο χρήστη. Χρησιμοποιώντας τη δομή που αναφέρεται στο DIDL, προσδιορίζεται η επιλογή ανάμεσα σε μια απευθείας ακρόαση με rtp ή η πρόσβαση σε ολόκληρο το αρχείο, από έναν web server, στη μέγιστη δυνατή ποιότητα και η αποθήκευση του στο τερματικό του χρήστη. Η επιλογή γίνεται με βάση το εάν ο χρήστης διατίθεται να πληρώσει κάποιο αντίτιμο για να έχει μόνιμα το τραγούδι ή όχι. Στην υπάρχουσα υλοποίηση δεν χρησιμοποιούνται κάποιοι περαιτέρω μηχανισμοί για τον έλεγχο των δικαιωμάτων και για την «τίμια» επιλογή του χρήστη. Παρόλα αυτά ένας πιθανός τρόπος για τον έλεγχο στα δικαιώματα χρησιμοποιώντας την υπάρχουσα δομή, θα ήταν αντί να παρουσιάζεται η ακριβής τοποθεσία του αρχείου στον webserver, να υπάρχει μία ενδιάμεση σελίδα που ο χρήστης θα έπρεπε να κάνει login και να δώσει τον αριθμό της πιστωτικής κάρτας για την πληρωμή του αντιτίμου. Τα πλεονεκτήματα του μηχανισμού με τα elements choice και selections είναι ότι υπάρχει η δυνατότητα, χρησιμοποιώντας ακριβώς τον ίδιο μηχανισμό, να δοθούν διαφορετικές επιλογές και οι αντίστοιχες περιγραφές αυτών, στον τελικό χρήστη. Για παράδειγμα χρησιμοποιώντας ένα choice με descriptor «Live έκδοση ή από studio» και τα αντίστοιχα selection, θα μπορούσε να παρουσιαστεί στο χρήστη η επιλογή για ακρόαση ενός τραγουδιού από μια live ηχογράφηση ή την αρχική ηχογράφηση στο studio. Στη συνέχεια ο χρήστης θα μπορούσε να επιλέξει, χωρίς να χρειάζεται να υπάρχει ιδιαίτερη μέριμνα στην αρχική εφαρμογή του client για το χειρισμό των διαφόρων πιθανών επιλογών. Τέλος, εκτός από το element choice, ολόκληρη η δομή είναι σε θέση να περιγράψει διαφορετικής φύσεως multimedia δεδομένων με -81-

82 Ανάπτυξη Εφαρμογής Client-Server την μόνη προϋπόθεση ο client να είναι σε θέση να ξεχωρίσει και να διαχειριστεί τη σημασιολογία των elements της DIDL. Media_Rtp_Server.xml <?xml version="1.0" encoding="utf-8"?> <Media_Rtp_Server> <Item id="video from Webcam" > <Resource mimetype="video/rtp" ref="vfw:microsoft WDM Image Capture (Win32):0" port="16004"/> </Item> <Item id="song 1" > <Resource mimetype="audio/rtp" ref="alexiou - Xronia Xelidonia.wav" port="16000"/> </Item> <Item id="song 2" > <Resource mimetype="audio/rtp" ref="barry White - Never never gonna give ya up.wav" port="16002"/> </Item> </Media_Rtp_Server> Έγγραφο 6.4 Το έγγραφο Media_Rtp_Server.xml χρησιμοποιείται από την κλάση MyRtpServer της εφαρμογής του server και συνδέει τα multimedia του media.xml με την συσκευή webcam για το video ή με ένα αρχείο ήχου στο σκληρό δίσκο του server. Η χρήση του συγκεκριμένο εγγράφου δεν εντάσσεται στα πλαίσια του MPEG-21, αλλά είναι απλά ένα βοηθητικό έγγραφο για την έναρξη των rtp συνεδριών προς τον client. Στην υλοποίηση του συστήματος, ο server παρέχει τις υπηρεσίες ενός MPEG-21 server, αλλά παράλληλα αποτελεί και τον rtp server για τη διάθεση του υλικού, παρέχοντας υπηρεσίες του τύπου on demand video-audio. Δηλαδή, παρέχει συγκεκριμένο οπτικοακουστικό υλικό σε απευθείας χρόνο και ύστερα από αίτηση του client. Σε μία διαφορετική υλοποίηση θα μπορούσαν οι υπηρεσίες rtp να παρέχονται από μία ξεχωριστή εφαρμογή, που ενδεχομένως να έτρεχε και σε ένα ξεχωριστό υπολογιστή. Σε αυτή την περίπτωση η δομή του media.xml δε θα χρειαζόταν τροποποίηση, όμως οι διευθύνσεις που αναφέρονται στα recources του κάθε item θα έπρεπε να τροποποιηθούν και να αναφέρονται στον ξεχωριστό rtp server. Media.dtd -82-

83 Ανάπτυξη Εφαρμογής Client-Server <?xml version='1.0' encoding='utf-8'?> <!ELEMENT DIDL (Item Container Declarations)*> <!ATTLIST DIDL xmlns CDATA #IMPLIED > <!ELEMENT Declarations (Descriptor)+> <!ELEMENT Descriptor (Statement)+> <!ATTLIST Descriptor id CDATA #IMPLIED > <!ELEMENT Statement (#PCDATA)> <!ATTLIST Statement mimetext CDATA #IMPLIED mimetype CDATA #IMPLIED > <!ELEMENT Container (Descriptor Item)*> <!ATTLIST Container id CDATA #IMPLIED > <!ELEMENT Item (Component Choice Descriptor)*> <!ATTLIST Item id CDATA #IMPLIED > <!ELEMENT Choice (Descriptor,Selection+)+> <!ATTLIST Choice maxselextions CDATA #IMPLIED minselections CDATA #IMPLIED choice_id CDATA #IMPLIED > <!ELEMENT Selection (Descriptor)*> <!ATTLIST Selection select_id CDATA #IMPLIED > <!ELEMENT Component (Condition*,Descriptor+,Resource+)+> <!ELEMENT Condition EMPTY> <!ATTLIST Condition require CDATA #IMPLIED > <!ELEMENT Resource EMPTY> <!ATTLIST Resource ref CDATA #IMPLIED mimetype CDATA #IMPLIED > Έγγραφο 6.3 Το έγγραφο media.dtd είναι ένα έγγραφο τύπου Document Type Definition και χρησιμοποιείται από τη μεριά του client για να γίνει έλεγχος εγκυρότητας του αρχείου media.xml που αποστέλλεται από τον server. Η γλώσσα DTD είναι μία από τις πιο απλές γλώσσες για την περιγραφή ενός XML schema. Το συγκεκριμένο έγγραφο χρησιμοποιήθηκε στην εφαρμογή για να ελεγχθεί και να διασφαλιστεί η σωστή μεταφορά του εγγράφου από τον server -83-

84 Ανάπτυξη Εφαρμογής Client-Server προς τον client. Έτσι έχοντας μια περιγραφή των element του media.xml, καθώς και της δομής αυτών, ο xml parser στη μεριά του client, αφού έχει πρώτα εξετάσει αν το έγγραφο είναι well-formed, εξετάζει και την εγκυρότητά του σύμφωνα με το media.dtd. Όπως φαίνεται και στο παράδειγμα που ακολουθεί ο ορισμός ενός element, των elements που αυτό περιέχει καθώς και των attributes του είναι αρκετά απλός. <!ELEMENT Choice (Descriptor,Selection+)+> <!ATTLIST Choice maxselextions CDATA #IMPLIED minselections CDATA #IMPLIED choice_id CDATA #IMPLIED > Έγγραφο 6.4 Στο παράδειγμα αυτό ορίζεται πως το choice πρέπει να έχει οπωσδήποτε ένα ή περισσότερα descriptor ή selection elements, καθώς και τα attributes maxselections, minselections και choice_id. Οι χαρακτήρες?,+,* υπονοούν αντίστοιχα προαιρετικό(0 ή 1), απαραίτητο (1 ή και περισσότερα) και τελείως ελεύθερο (0 ή και περισσότερα). Ένα σφάλμα στην εγκυρότητα του εγγράφου αντιμετωπίζεται από τον client σαν σφάλμα στη μεταφορά και σε αυτή την περίπτωση ζητείται από τον server να ξαναστείλει το έγγραφο media.xml. Η γλώσσα DTD δεν προσφέρεται για πιο πολύπλοκα έγγραφα, καθώς δεν παρέχει μηχανισμούς για πιο σύνθετο έλεγχο. Στην περίπτωση μιας πολύπλοκης εφαρμογής με μεγαλύτερα αρχεία XML, που θα χρειάζονταν να μεταφερθούν, θα ήταν καλύτερο να προτιμηθεί η γλώσσα W3C s XML Schema Language που έχει προταθεί από τον οργανισμό W3C και προσφέρει αρκετά υψηλό επίπεδο ελέγχου σε ένα έγγραφο XML. 6.3 Περιγραφή Κλάσεων Εφαρμογής Από τη μεριά του server η εφαρμογή αποτελείται από τέσσερις βασικές τις Server, Serving_Thread, MyRtpServer και Mpeg21Parser. Στη συνέχεια θα γίνει μία μικρή περιγραφή αυτών των κλάσεων και των βασικών μεθόδων τους για να δειχθεί η υλοποίηση και ο σχεδιασμός της εφαρμογής κυρίως σε ότι αφορά το κομμάτι του προτύπου MPEG-21, χωρίς να μπαίνουμε σε λεπτομέρειες που αφορούν τον κώδικα και την γενικότερη υλοποίηση σε Java. -84-

85 Ανάπτυξη Εφαρμογής Client-Server Server Είναι η αρχική κλάση της εφαρμογής. Περιέχει μία συνάρτηση main στην οποία υπάρχει ένα endless-loop το οποίο περιμένει για συνδέσεις νέων χρηστών. Για κάθε καινούριο χρήστη ξεκινάει ένα νέο Serving_Thread που είναι υπεύθυνο για τη διαχείριση όλης τη συνεδρίας του χρήστη. Serving_Thread Η κλάση αυτή κληρονομεί τη native κλάση Thread και ελέγχει όλη τη λειτουργικότητα που παρέχεται στον server. Αναγνωρίζει τον χρήστη, απαντάει στις διάφορες αιτήσεις από την πλευρά του client και στέλνει τις ανάλογες απαντήσεις. Περιέχει τις ακόλουθες μεθόδους : run : Αναγνωρίζει τον χρήστη και παίρνει τα χαρακτηριστικά που αντιστοιχούν σε αυτόν με τη βοήθεια της κλάσης Mpeg21Parser. Στη συνέχεια περιμένει για αιτήσεις από τον client και εκκινεί τις κατάλληλες διαδικασίες για την αποστολή απάντησης. Επίσης όταν λάβει το αντίστοιχο αίτημα από τον client εκκινεί τον rtp server χρησιμοποιώντας τη κλάση MyRtpServer. SendData : Είναι η μέθοδος που χρησιμοποιείται για να σταλεί ένας πίνακας από bytes στον client, ο οποίος περιέχει την κατάλληλη απάντηση στο αίτημά του. XmlSend : Χρησιμοποιεί τη μέθοδο SendData και με τη βοήθεια αυτής στέλνει στον client το τροποποιημένο, ανάλογα με τον χρήστη, αρχείο Media.xml. Mpeg21Parser Η κλάση αυτή είναι υπεύθυνη για τον χειρισμό των xml αρχείων της εφαρμογής και χρησιμοποιείται για να εξάγει από αυτά όλα τα χαρακτηριστικά, που αφορούν τον χρήστη και το τερματικό που αυτός χρησιμοποιεί. Περιέχει τις ακόλουθες μεθόδους : getavailusers : Η μέθοδος αυτή διαβάζει από το Users.xml τα user_id των χρηστών. getuserproperties : Αυτή η μέθοδος με βάση το user_id που δέχεται ως όρισμα επιστρέφει τα χαρακτηριστικά του χρήστη από το Users.xml. getterminalproperties : Εδώ η είσοδος είναι το terminal_id και βάση αυτού επιστρέφονται τα χαρακτηριστικά του εκάστοτε τερματικού. getprocessedmediadoc : Με βάση τα χαρακτηριστικά του χρήστη επιστρέφει το τροποποιημένο έγγραφο media.xml που θα του σταλεί. findmediartpserverrec : Me βάση το item που επέλεξε ο χρήστης διαβάζει και επιστρέφει τα δεδομένα του Media_Rtp_Server που χρειάζονται για την εκκίνηση του rtp server. -85-

86 Ανάπτυξη Εφαρμογής Client-Server MyRtpServer Η κλάση αυτή περιέχει την υλοποίηση του rtp server της εφαρμογής. Με βάση τα χαρακτηριστικά που έχουν εξαχθεί με τη βοήθεια της Mpeg21Parser ξεκινά τον rtp server που προσφέρει ένα συγκεκριμένο αρχείο ήχου ή video από τη webcam σε συγκεκριμένη ποιότητα. Στη κλάση αυτή γίνεται και το downscaling του ήχου ή του video. Η βασικές μέθοδοι που περιέχει είναι : Beginsession : Ξεκινά μία συνεδρία με έναν client. StopTransmission : Σταματά τη μετάδοση και τη συνεδρία με τον client. Από τη μεριά του client η εφαρμογή αποτελείται από τέσσερις βασικές κλάσεις τις MainFrame, AdapterNode, DomToTreeModelAdapter, SimplePlayer και μια βοηθητική κλάση Ask_For_Choice, η οποία εμφανίζει ένα παράθυρο με τις διαθέσιμες επιλογές σε περίπτωση που υπάρχει choice. Η κλάση που υλοποιεί τη λειτουργικότητα σε σχέση με το, είναι η κλάση MainFrame και για αυτό το λόγο στη συνέχεια θα σταθούμε περισσότερο σε αυτή, αφού οι υπόλοιπες κλάσεις έχουν σχέση κυρίως με την οπτική παρουσίαση και με την αναπαραγωγή των πολυμέσων. MainFrame Κληρονομεί την native κλάση της Java javax.swing.jframe και παρέχει όλο το GUI interface για την αλληλεπίδραση του χρήστη με την εφαρμογή. Το βασικό μέρος του GUI αποτελείται από ένα panel που παρουσιάζεται ένα JTree με τη δομή του Media.xml, ένα panel με τις απαντήσεις του server, text fields για την είσοδο σταθερών, όπως το IP του server και το user_id, καθώς και buttons που χρησιμεύουν για την αποστολή δεδομένων και την εκκίνηση της διαδικασίας για προβολή video ή ακρόαση ενός ηχητικού κομματιού. Οι βασικές μέθοδοι που δίνουν τη λειτουργικότητα ενός Mpeg21 terminal, είναι οι παρακάτω: getdibyserver : Αποστέλλει ένα συγκεκριμένο μήνυμα στον server και στη συνέχεια περιμένει για απάντηση το έγγραφο media.xml. Στη συνέχεια επιστρέφει ένα object Document που αντιστοιχεί στο έγγραφο media.xml. Επίσης κάνει έλεγχο στο έγγραφο για το αν είναι well-formed και το αν είναι έγκυρο βάσει του media.dtd. getresourcebuttonmouseclicked : Η μέθοδος αυτή εκκινείται μετά από το πάτημα του κουμπιού getresource και ανάλογα με το ποιο Item είναι επιλεγμένο στο JTree προκαλεί την αποστολή του αντίστοιχου Digital Item από τον server στον client -86-

87 Ανάπτυξη Εφαρμογής Client-Server και στη συνέχεια με τη βοήθεια της κλάσης SimplePlayer παρουσιάζει αυτό το Digital Item στο χρήστη. getfilefromweb : Η μέθοδος αυτή χρησιμοποιείται για τον εναλλακτικό τρόπο του κατεβάσματος ενός μουσικού αρχείου από έναν webserver και την μετέπειτα αποθήκευσή του στο σκληρό δίσκο του client. Στη συνέχεια γίνεται η αναπαραγωγή του αρχείου από την κλάση SimplePlayer. AdapterNode Η κλάση λειτουργεί σαν ένας ενδιάμεσος και τροποποιεί τα object Nodes που προκύπτουν από το έγγραφο media.xml για να διευκολυνθεί η παρουσίασή τους από το Jtree. Περιέχει εσωτερικές υποκλάσεις για κάθε τύπο element που κληρονομούν την αρχική AdapterNode και προσδίδουν ξεχωριστές ιδιότητες για κάθε τύπο element. DomToTreeModelAdapter Η κλάση αυτή κληρονομεί τη native javax.swing.tree.treemodel και χρησιμοποιείται για την δημιουργία του JTree από ένα object Dom Document. SimplePlayer Η κλάση αυτή χρησιμοποιεί κλάσεις του πακέτου Java Media Framework, συνδέεται στον rtp server και χρησιμεύει στην προβολή του video και την αναπαραγωγή των αρχείων. 6.4 Χρήση της εφαρμογής και screenshots. Σε αυτή την παράγραφο θα παρουσιαστεί ένα σενάριο χρήσης της εφαρμογής του client από έναν χρήστη με την βοήθεια screenshots. -87-

88 Ανάπτυξη Εφαρμογής Client-Server Εικόνα6.1 Στην εικόνα 6.1 φαίνεται το γραφικό περιβάλλον της εφαρμογής του client. Υπάρχουν κάποια βασικά πεδία, όπως το ip του server και το user_id του χρήστη, στα αριστερά ο DIBrowser, που εμφανίζει σε δενδρική δομή το αρχείο media.xml που λαμβάνεται από το server, ένα πεδίο Descriptor που εμφανίζει περιγραφές από τα διάφορα μέρη ενός DI και τέλος ένα πεδίο με τις απαντήσεις από τον server. Με το button Connect γίνεται η σύνδεση με το server και τον authentication του χρήστη. -88-

89 Ανάπτυξη Εφαρμογής Client-Server Εικόνα 6.2 Όταν ο χρήστης πατήσει το button getdi, ο server στέλνει το αρχείο media.xml κατάλληλα τροποποιημένο για τον κάθε χρήστη και αυτό εμφανίζεται στον DIBrowser, όπως φαίνεται και στην εικόνα

90 Ανάπτυξη Εφαρμογής Client-Server Εικόνα 6.3 Επιλέγοντας ένα στοιχείο στον DIBrowser εμφανίζεται στο πεδίο Description το περιεχόμενο του αντίστοιχου Descriptor, όπως φαίνεται και στην εικόνα 6.3. Επιλέγοντας ένα Item στον DIBrowser και πατώντας το button getresource, ο χρήστης παίρνει το αντίστοιχο multimedia υλικό που έχει επιλέξει, τροποποιημένο στην αντίστοιχη ποιότητα που αντιστοιχεί στις δυνατότητες του τερματικού του. Στην περίπτωση που το item περιέχει choice, τότε εμφανίζεται ένα παράθυρο με τις επιλογές που έχει το choice και ο χρήστης καλείται να επιλέξει. Στη εικόνα 6.4 φαίνεται το παράθυρο που ρωτά τον χρήστη αν θέλει να πληρώσει για την ακρόαση ενός μουσικού κομματιού ή όχι. Αν επιλέξει να πληρώσει θα μπορέσει να κατεβάσει ολόκληρο το αρχείο στο σκληρό του δίσκου στη μέγιστη δυνατή ποιότητα. Αλλιώς, θα ακούσει το μουσικό αρχείο από ένα rtp session real-time και σε ποιότητα ανάλογη με το τερματικό του. -90-

91 Ανάπτυξη Εφαρμογής Client-Server Εικόνα 6.4 Στην εικόνα 6.5 εμφανίζεται το video από τη webcam, σε ποιότητα αντίστοιχη του χρήστη με user ID 200, ενώ στην εικόνα 6.6 σε ποιότητα αντίστοιχη του user με user ID 300. Στα παράθυρα που εμφανίζονται σχετικά με τις ιδιότητες του video, φαίνεται η διαφορά στην ποιότητα και τα συγκεκριμένα χαρακτηριστικά που αφορούν το μέγεθος και την κωδικοποίηση του video. -91-

92 Ανάπτυξη Εφαρμογής Client-Server Εικόνα

93 Ανάπτυξη Εφαρμογής Client-Server Εικόνα 6.6 Επίσης από τα παραπάνω screenshots μπορούμε να δούμε πως ανάλογα με το χρήστη και τα MediaPreferences του αρχείου users.xml, στους χρήστες με user ID 200 και 300 εμφανίζονται multimedia δεδομένα με video, ενώ στον χρήστη με user ID 100, που δεν έχει προτίμηση σε video multimedia, εμφανίζονται μόνο Di s με audio. -93-

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων Contents 2. Lesson 5: Video Metadata What Metadata is data about data. An item of metadata may describe an individual datum, or content item, or a collection of data including

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

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

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

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

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

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

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

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

Εισαγωγή. Τεχνολογία Πολυµέσων 01-1 Εισαγωγή Τι είναι τα πολυµέσα Ποιοι εµπλέκονται στα πολυµέσα Χαρακτηριστικά των µέσων Απαιτήσεις πολυµέσων Ιδιότητες πολυµέσων Μετάδοση πολυµέσων οµή συστηµάτων πολυµέσων Τεχνολογία Πολυµέσων 01-1 Τι είναι

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

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

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

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

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

Εισαγωγή. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 01-1 Εισαγωγή Τι είναι τα πολυμέσα; Χαρακτηριστικά των μέσων Ιδιότητες συστημάτων πολυμέσων Δομή συστημάτων πολυμέσων Δικτυακά συστήματα πολυμέσων Μετάδοση πολυμέσων Απαιτήσεις πολυμέσων Ποιοι εμπλέκονται στα

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

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

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

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

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

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

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

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας Ενότητα 7: Πρότυπα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

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

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

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

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

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

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

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

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

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

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

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

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών World Wide Web (WWW) Θέματα Επεξεργασία δεδομένων στο Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων XHTML στοιχείων (tags) Εξέλιξης του WWW Το WWW

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

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006

ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΚΡΗΤΗΣ 2000-2006 ΜΕΤΡΟ 1.2 Κοινοπραξίες Έρευνας και Τεχνολογικής Ανάπτυξης σε τομείς Εθνικής Προτεραιότητας Παροχή υπηρεσιών τουριστικού και αρχαιολογικού ενδιαφέροντος μέσω πλατφόρμας

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

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

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

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

Τι συσχετίζεται με τον ήχο ΗΧΟΣ Τι συσχετίζεται με τον ήχο Υλικό Κάρτα ήχου Προενυσχιτής Equalizer Ενισχυτής Ηχεία Χώρος Ανθρώπινη ακοή Ψυχοακουστικά φαινόμενα Ηχητική πληροφορία Σημείο αναφοράς 20 μpa Εύρος συχνοτήτων Δειγματοληψία

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου 1. Τι ονομάζουμε κόμβο και τι σύνδεσμο σε μια μη γραμμικά διαρθρωμένη ύλη; Με την έννοια σύνδεσμος (link) σε μια μη γραμμικά διαρθρωμένη

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

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

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

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1 Αρχές κωδικοποίησης Απαιτήσεις κωδικοποίησης Είδη κωδικοποίησης Κωδικοποίηση εντροπίας Διαφορική κωδικοποίηση Κωδικοποίηση μετασχηματισμών Στρωματοποιημένη κωδικοποίηση Κβαντοποίηση διανυσμάτων Τεχνολογία

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

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

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

Κωδικοποίηση βίντεο (MPEG) Κωδικοποίηση βίντεο (MPEG) Εισαγωγή στο MPEG-2 Κωδικοποίηση βίντεο Κωδικοποίηση ήχου Ροή δεδοµένων Εισαγωγή στο MPEG-4 οµή σκηνών Κωδικοποίηση ήχου και βίντεο Τεχνολογία Πολυµέσων 11-1 Εισαγωγή στο MPEG-2

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

Κείμενο ASCII Unicode - HTML. Κωδικοποίηση ASCII / Unicode HTML

Κείμενο ASCII Unicode - HTML. Κωδικοποίηση ASCII / Unicode HTML Κείμενο ASCII Unicode - HTML Κωδικοποίηση ASCII / Unicode HTML Κείμενο και Τυπογραφία Αναπαράσταση κειμένου Αρχικά οι ανάγκες των προγραμμάτων απαιτούσαν ένα περιορισμένο σύνολο κωδικοποιημένων χαρακτήρων

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

Συστήματα Πολυμέσων. Ανάπτυξη Πολυμεσικών Εφαρμογών Ι

Συστήματα Πολυμέσων. Ανάπτυξη Πολυμεσικών Εφαρμογών Ι Συστήματα Πολυμέσων Ανάπτυξη Πολυμεσικών Εφαρμογών Ι Ορισμός των Πολυμέσων / Multimedia Η ταυτόχρονη ενσωμάτωση μέσα σε ένα ψηφιακό περιβάλλον πληροφορίας, των: Κειμένου Ήχου Κάθε τύπου εικόνας (στατική,

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

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

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

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

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

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 CubisLITE Client Οδηγίες Χρήσεως Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ. 176 75, Ελλάδα, Τηλ. 210 9580887-8 Φαξ.2109580885 1 ΠΕΡΙΕΧΟΜΕΝΑ Γενικά 1. Τι είναι ο CubisLITE Server 2. Τι είναι ο

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ Μεταπτυχιακό Πρόγραµµα Σπουδών Τµήµατος Εφαρµοσµένης Πληροφορικής Θεσσαλονίκη, Ιούνιος 2007 Στόχοι χρήση αντικειµενοστρεφούς

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

Ποιότητα μετάδοσης πολυμεσικού περιεχομένου στο διαδίκτυο

Ποιότητα μετάδοσης πολυμεσικού περιεχομένου στο διαδίκτυο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΓΡΑΦΙΚΕΣ ΤΕΧΝΕΣ ΠΟΛΥΜΕΣΑ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΓΤΠ 61 Πληροφορική Πολυμέσα Ποιότητα μετάδοσης πολυμεσικού περιεχομένου στο διαδίκτυο Παρουσίαση 13-12-2009 Δροσοπούλου Χρυσάνθη

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

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

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

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

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

BibConvert μετατροπές LOM

BibConvert μετατροπές LOM BibConvert μετατροπές LOM Δημοσθένης Νικούδης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας BibConvert 2 Μετατρέπει μεταδεδομένα από άλλες μορφές σε MARC21 (ή πιο σωστά MARCXML) Command-line tool Δεν έχει web interface

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

Λειτουργικότητα και Τεχνικές Προδιαγραφές

Λειτουργικότητα και Τεχνικές Προδιαγραφές Λειτουργικότητα και Τεχνικές Προδιαγραφές Η ΕΔΕΤ Α.Ε. αναπτύσσει την Υπηρεσία Δίαυλος, μία ηλεκτρονική υπηρεσία ζωντανών διαδικτυακών μεταδόσεων εκδηλώσεων, ομιλιών, σεμιναρίων, επιστημονικών συνεδρίων

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

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

A8-0188/298. Morten Løkkegaard Απαιτήσεις προσβασιμότητας για τα προϊόντα και τις υπηρεσίες COM(2015)0615 C8-0387/ /0278(COD)

A8-0188/298. Morten Løkkegaard Απαιτήσεις προσβασιμότητας για τα προϊόντα και τις υπηρεσίες COM(2015)0615 C8-0387/ /0278(COD) 7.9.2017 A8-0188/298 298 Παράρτημα I Ενότητα IV Μέρος A Υπηρεσίες οπτικοακουστικών μέσων και σχετικός τερματικός εξοπλισμός καταναλωτών με προηγμένη υπολογιστική ικανότητα Υπηρεσίες οπτικοακουστικών μέσων

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

1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΠΟΛΥΜΕΣΩΝ

1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΠΟΛΥΜΕΣΩΝ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΠΟΛΥΜΕΣΩΝ ΤΕΧΝΟΛΟΓΙΑ ΠΟΛΥΜΕΣΩΝ Τι είναι ΠΟΛΥΜΈΣΑ (Multimedia) : Τεχνολογία Πολυμέσων: είναι κλάδος της Πληροφοριακής τεχνολογίας και ασχολείται με παραγωγή και παρουσίαση του

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

Σε παγκόσμιο επίπεδο, οιμηχανέςαναζήτησηςτουinternet αναπτύχθηκαν για να κάνουν αναζήτηση πληροφοριών σε πολλαπλές τοποθεσίες ιστού.

Σε παγκόσμιο επίπεδο, οιμηχανέςαναζήτησηςτουinternet αναπτύχθηκαν για να κάνουν αναζήτηση πληροφοριών σε πολλαπλές τοποθεσίες ιστού. Τζίτζικας Αγαπητός Τζίτζικας Αγαπητός Σε παγκόσμιο επίπεδο, οιμηχανέςαναζήτησηςτουinternet αναπτύχθηκαν για να κάνουν αναζήτηση πληροφοριών σε πολλαπλές τοποθεσίες ιστού. Δυστυχώς, αυτές οι μηχανές αναζήτησης

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

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας

Ιόνιο Πανεπιστήμιο - Τμήμα Αρχειονομίας - Βιβλιοθηκονομίας Μεταδεδομένα για Ψηφιακές Βιβλιοθήκες Γ. Δ. Μπώκος Μεταδεδομένα: Ο όρος Μεταδεδομένα: «Δεδομένα σχετικά με Δεδομένα» Αναλυτικότερα: «Το σύνολο όσων θα μπορούσε να πει κανείς για ένα πληροφοριακό αντικείμενο

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

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

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

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

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

3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ 3. ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΠΟΛΥΜΕΣΩΝ ΑΝΑΓΚΗ ΣΥΜΠΙΕΣΗΣ ΔΕΔΟΜΕΝΩΝ Local Multimedia Π.χ. Μία ταινία 90 min απαιτεί 120 GB, και τα σημερινά μέσα αποθήκευσης < 25 GB. Άρα σήμερα είναι αδύνατη η αποθήκευση και η

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Διαχείριση Πολιτισμικών Δεδομένων Μάθημα 9 Μεταδεδομένα Τζανέτος Πομόνης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι τα Μεταδεδομένα; Ο όρος

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

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ TRAVIS-V1-2012 TRAVIS Λογισμικό Διαχείρισης Παραβάσεων Φωτοεπισήμανσης Το σύστημα διαχείρισης παραβάσεων φωτοεπισήμανσης

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

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

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο

Μοντέλο Επικοινωνίας Δεδομένων. Επικοινωνίες Δεδομένων Μάθημα 6 ο Μοντέλο Επικοινωνίας Δεδομένων Επικοινωνίες Δεδομένων Μάθημα 6 ο Εισαγωγή Με τη βοήθεια επικοινωνιακού σήματος, κάθε μορφή πληροφορίας (κείμενο, μορφή, εικόνα) είναι δυνατόν να μεταδοθεί σε απόσταση. Ανάλογα

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

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

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

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

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address> ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟ ΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Οδηγίες

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

Πολιτισμική Τεχνολογία. Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α

Πολιτισμική Τεχνολογία. Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α Πολιτισμική Τεχνολογία Πολυμέσα & Διαδίκτυο Παράμετροι Δικαίου Μέρος Α Δυνατότητες: Σύλληψη, συντήρηση, ανάδειξη Χρήση : Ψηφιακών βίντεο, ήχων, εικόνων, γραφικών παραστάσεων Οι συλλογές καθίστανται διαθέσιμες

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

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων 5. Διάλεξη 5: XML XML Μεταγλώσσα για την κωδικοποίηση δεδομένων Πρόβλημα που επιζητά λύσεις: Kοινή γλώσσα επικοινωνίας των εφαρμογών Σημαίνει extensible Markup Language Σχεδιάστηκε

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

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

Κωδικοποίηση ήχου. Κωδικοποίηση καναλιού φωνής Κωδικοποίηση πηγής φωνής Αντιληπτική κωδικοποίηση Κωδικοποίηση ήχου MPEG Κωδικοποίηση ήχου Κωδικοποίηση καναλιού φωνής Κωδικοποίηση πηγής φωνής Αντιληπτική κωδικοποίηση Κωδικοποίηση ήχου MPEG Τεχνολογία Πολυµέσων και Πολυµεσικές Επικοινωνίες 10-1 Κωδικοποίηση καναλιού φωνής

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

Θέμα: «ΣΥΜΠΙΕΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΟΛΥΜΕΣΑ» Εισηγητής: Παναγιώτης Γιώτης 20 Μαϊου 2007 Αθήνα

Θέμα: «ΣΥΜΠΙΕΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΟΛΥΜΕΣΑ» Εισηγητής: Παναγιώτης Γιώτης 20 Μαϊου 2007 Αθήνα Θέμα: «ΣΥΜΠΙΕΣΗ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΟΛΥΜΕΣΑ» Εισηγητής: Παναγιώτης Γιώτης 20 Μαϊου 2007 Αθήνα Βασικοί άξονες της παρουσίασης ΜΕΡΟΣ Ι: Τι είναι η συμπίεση και γιατί είναι απαραίτητη ΜΕΡΟΣ ΙΙ: Τεχνικές Συμπίεσης

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

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

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

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

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID

Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ- ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, Ανάπτυξηλογισμικού υλοποίησης του ανοικτού πρότυπου EPCALEv1.1 για εφαρμογές RFID ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Marie-Aurélie

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

Τεχνικές Προδιαγραφές ιαλειτουργικότητας

Τεχνικές Προδιαγραφές ιαλειτουργικότητας ΤΕΧΝΙΚΕΣ ΠΡΟ ΙΑΓΡΑΦΕΣ ΕΙΓΜΑ ΠΑΡΑΡΤΗΜΑΤΟΣ ΙΑΓΩΝΙΣΜΟΥ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ 2000-2006 ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «Κοινωνία της Πληροφορίας» http://www.infosociety.gr Μάιος 2003 Τεχνικές Προδιαγραφές ιαλειτουργικότητας

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

Δίκτυα Υπολογιστών I

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

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

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

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

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

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 example Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 Πρότυπα και XML Πρότυπα ενιαίο

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

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

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

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

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

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

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

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

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

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ.

Πληροφορική Ι. Μάθημα 9 ο Συμπίεση δεδομένων. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Δρ. Οι διαφάνειες έχουν βασιστεί στο βιβλίο «Εισαγωγή στην επιστήμη των υπολογιστών» του B. Forouzanκαι Firoyz Mosharraf(2 η έκδοση-2010) Εκδόσεις Κλειδάριθμος Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου

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

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ XML (extended Markup Language) Ι. Χατζηλυγερούδης ΕΙΣΑΓΩΓΗ SGML (Standard Generalized Markup Language) Διεθνές πρότυπο ορισμού μεθόδων αναπαράστασης πληροφοριών

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

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη Τεχνολογίες Παγκόσμιου Ιστού 1η διάλεξη Χαρακτηριστικά Μαθήματος Μάθημα προγραμματισμού (και όχι μόνον) Μπορεί να εξελιχθεί σε εφιάλτη αν δεν έχετε καλή γνώση και αρκετή εμπειρία προγραμματισμού (Java)

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

7ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ ΤΑΞΗ Β3 ΜΑΘΗΜΑ : ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑ ΕΡΓΑΣΙΑΣ : ΠΟΛΥΜΕΣΑ ΚΑΘΗΓΗΤΗΣ : ΧΑΤΖΗΣ ΜΑΘΗΤΡΙΑ : ΣΙΟΥΛΑ ΔΗΜΗΤΡΑ

7ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ ΤΑΞΗ Β3 ΜΑΘΗΜΑ : ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑ ΕΡΓΑΣΙΑΣ : ΠΟΛΥΜΕΣΑ ΚΑΘΗΓΗΤΗΣ : ΧΑΤΖΗΣ ΜΑΘΗΤΡΙΑ : ΣΙΟΥΛΑ ΔΗΜΗΤΡΑ 7ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ ΤΑΞΗ Β3 ΜΑΘΗΜΑ : ΠΛΗΡΟΦΟΡΙΚΗ ΘΕΜΑ ΕΡΓΑΣΙΑΣ : ΠΟΛΥΜΕΣΑ ΚΑΘΗΓΗΤΗΣ : ΧΑΤΖΗΣ ΜΑΘΗΤΡΙΑ : ΣΙΟΥΛΑ ΔΗΜΗΤΡΑ ΠΟΛΥΜΕΣΑ ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΟΛΥΜΕΣΑ ΕΙΚΟΝΑ & ΗΧΟΣ ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΟΛΥΜΕΣΑ Ετυμολογία

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

VIDEO ΚΑΙ ΕΦΑΡΜΟΓΕΣ. Υπάρχουσες εφαρμογές:

VIDEO ΚΑΙ ΕΦΑΡΜΟΓΕΣ. Υπάρχουσες εφαρμογές: VIDEO ΚΑΙ ΕΦΑΡΜΟΓΕΣ Υπάρχουσες εφαρμογές: Αναπαραγωγή αποθηκευμένου οπτικοακουστικού υλικού (εκπαιδευτικές/ψυχαγωγικές π.χ. video on demand) Οπτικοακουστική επικοινωνία πραγματικού χρόνου (ένας-προς-έναν

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

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

Ενότητα 1η. Εισαγωγή στην Πληροφορική Ενότητα 1η Εισαγωγή στην Πληροφορική 1.1 Τι είναι Πληροφορική Ένας σύντομος ορισμός για το τι είναι πληροφορική είναι ο παρακάτω: όλα εκείνα που χρειάζεται κανείς για να παράγει, να οργανώνει και να διαχειρίζεται

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

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

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

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

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

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

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

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών Βερονίκης Σπύρος Τμήμα Αρχειονομίας- Βιβλιοθηκονομίας, Ιόνιο Πανεπιστήμιο spver@ionio.gr Stoica Adrian Τμήμα Ηλεκτρολόγων Μηχανικών

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

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

Εισαγωγή στις τεχνολογίες μετάδοσης

Εισαγωγή στις τεχνολογίες μετάδοσης Εισαγωγή στις τεχνολογίες μετάδοσης Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Copyright

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

ηµοτικό ιαδικτυακό Ραδιόφωνο και Τηλεόραση

ηµοτικό ιαδικτυακό Ραδιόφωνο και Τηλεόραση Κατάρτιση και Πιστοποίηση σε βασικές εξιότητες και Κατάρτιση σε Προηγµένες εξιότητες στη Χρήση Τεχνολογιών Πληροφορικής & Επικοινωνιών Εργαζόµενων στην Τοπική Αυτοδιοίκηση ηµοτικό ιαδικτυακό Ραδιόφωνο

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

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

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

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

Συστήματα Πολυμέσων. Ενότητα 16: Διαμορφώσεις και Πρότυπα Ψηφιακού Βίντεο. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής

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

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

Εισαγωγή στην τεχνική της ψηφιοποίησης των διαφανειών και των μικροταινιών των χειρογράφων της συλλογής του Π.Ι.Π.Μ

Εισαγωγή στην τεχνική της ψηφιοποίησης των διαφανειών και των μικροταινιών των χειρογράφων της συλλογής του Π.Ι.Π.Μ Εισαγωγή στην τεχνική της ψηφιοποίησης των διαφανειών και των μικροταινιών των χειρογράφων της συλλογής του Π.Ι.Π.Μ Επιμέλεια Άννα Γ. Λυσικάτου «Το αληθινό ταξίδι της ανακάλυψης δε βρίσκεται στην εξερεύνηση

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

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML

Γιώργος Χρ. Μακρής. Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Σύγχρονες Γλώσσες Σήμανσης του Διαδικτύου. Αναπαράσταση Μαθηματικών κειμένων στο διαδίκτυο. Η Γλώσσα MathML Γιώργος Χρ. Μακρής Θεσσαλονίκη, Μάρτιος 2012 Αναπαράσταση Μαθηματικών Κειμένων στο διαδίκτυο

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED σχεδιασμός ιστοσελίδας ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο της

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

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4 Διαδικασίες παραγωγής λογισμικού Στόχοι Παρουσίαση μοντέλων παραγωγής λογισμικού Περιγραφή τριών γενικών μοντέλων παραγωγής λογισμικού και πότε μπορούν να χρησιμοποιούνται Γενική περιγραφή των μοντέλων

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

"Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0"

Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0 "Ανάπτυξη προηγμένης εφαρμογής απεικόνισης και ενσωμάτωσης Υπηρεσιών Καταλόγου (LDAP) με τη χρήση των τεχνολογιών Web 2.0" Βλαχάκης Εμμανουήλ Οικονομάκης Σπυρίδων Εισηγητής: Δ.Ν. Καλλέργης, MSc. Εργ. Συνεργάτης

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΕΙΜΕΝΟΥ ΚΕΙΜΕΝΟ Ο πρώτος τρόπος απεικόνισης πληροφορίας (και βασικός ως σήμερα). Αδυναμία πρώτων υπολογιστών να χειριστούν άλλη μορφή πληροφορίας. Πρόβλημα με καθιερωμένα πρότυπα (π.χ. ASCII), π.χ. σε πολυγλωσσικές

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

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

Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1 Ήχος Χαρακτηριστικά του ήχου Ψηφιοποίηση με μετασχηματισμό Ψηφιοποίηση με δειγματοληψία Κβαντοποίηση δειγμάτων Παλμοκωδική διαμόρφωση Συμβολική αναπαράσταση μουσικής Τεχνολογία Πολυμέσων και Πολυμεσικές

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

Πρόγραμμα Πιστοποίησης Γνώσεων και Δεξιοτήτων H/Y ΕΝΟΤΗΤΑ 1: «ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ»

Πρόγραμμα Πιστοποίησης Γνώσεων και Δεξιοτήτων H/Y ΕΝΟΤΗΤΑ 1: «ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ» Πρόγραμμα Πιστοποίησης Γνώσεων και Δεξιοτήτων H/Y ΕΝΟΤΗΤΑ 1: «ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ» Μάθημα 0.2: Το Λογισμικό (Software) Δίκτυα υπολογιστών Αντώνης Χατζηνούσκας 2 ΠΕΡΙΕΧΟΜΕΝΑ Α. Σκοπός του Μαθήματος

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

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

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

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

XML related standards

XML related standards XML Handling XML related standards SAX (Simple API for XML) event-driven interface απλό γρήγορο διάτρεξη XML εγγράφου DOM (Document Object Model) tree-based representation αργό μνημοβόρο Αλλαγή δομής XML

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

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

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

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

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

Ερωτήσεις Απαντήσεις επανάληψης κεφ.9 (Πολυμέσα).

Ερωτήσεις Απαντήσεις επανάληψης κεφ.9 (Πολυμέσα). 14 ο Γυμνάσιο Περιστερίου 1 Ερωτήσεις Απαντήσεις επανάληψης κεφ.9 (Πολυμέσα). Μάθημα 9.1 Ο κόσμος των Πολυμέσων 1. Τι είναι μια Εφαρμογή Πολυμέσων. Λογισμικό στο οποίο χρησιμοποιούνται πολλά και διαφορετικά

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

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

Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ψηφιοποίηση και Ψηφιακή Επεξεργασία Εικόνας Ενότητα 9: Εισαγωγή στα πολυμέσα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

Βάσεις Δεδομένων Ενότητα 1

Βάσεις Δεδομένων Ενότητα 1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Εισαγωγή στις Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Υπηρεσίες Διαχείρισης MPEG Πληροφορίας για Οπτικοακουστικές Εφαρμογές

Υπηρεσίες Διαχείρισης MPEG Πληροφορίας για Οπτικοακουστικές Εφαρμογές Υπηρεσίες Διαχείρισης MPEG Πληροφορίας για Οπτικοακουστικές Εφαρμογές Γεωργία Κυριακάκη Μεταπτυχιακή Διατριβή Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Η/Υ Πολυτεχνείο Κρήτης Χανιά Περίληψη Τα σύγχρονα

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