http://www.spinellis.gr/pubs/trade/1993-Winmag/fastwin1/html/win1.html
This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:

The document's metadata is available in BibTeX format.

Find the publication on Google Scholar

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

Diomidis Spinellis Publications

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

Διομήδης Δ. Σπινέλλης
FAST Hellas S.A.
Εθνικής Αντιστάσεως 14α, 152 32 Χαλάνδρι

Ένα ιδιαίτερο συστατικό του προγραμματισμού στο περιβάλλον Windows είναι η δυνατότητα υλοποίησης εφαρμογών multimedia,. Ο προγραμματισμός εφαρμογών multimedia παρουσιάζει πολύ ενδιαφέρον, αλλά και αρκετές ιδαιτερότητες. Σε αυτή τη σειρά των άρθρων θα ορίσουμε τι είναι μια εφαρμογή multimedia και θα εξετάσουμε τους τρόπους υλοποίησης τέτοιων εφαρμογών καθώς και τα συγκεκριμένα προβλήματα που παρουσιάζονται. Επιπλέον θα εξετάσουμε πως μπορούν να υλοποιηθούν βασικά στοιχεία εφαρμογών multimedia όπως η ένθεση κινούμενης εικόνας, ο έλεγχος εξωτερικών περιφερειακών συσκευών, η μετατροπή και συμπίεση σταθερών πλάνων, και η αποθήκευση και αναπαραγωγή κινούμενης εικόνας. Η παρουσίαση χρησιμοποιεί ως παράδειγμα την κάρτα ένθεσης Screen Machine, αλλά οι τεχνικές είναι εφαρμόσιμες και σε άλλες ανάλογες συσκευές.

1. OI ΕΦΑΡΜΟΓΕΣ MULTIMEDIA

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

1.1. Ορισμός

Ο όρος multimedia έχει τόσους ορισμούς όσοι είναι και οι άνθρωποι που τον χρησιμοποιούν. Η ECMA ορίζει ως multimedia μία δομή στην οποία συνυπάρχουν διάφοροι τύποι περιεχομένου, όπως κείμενο, γραφικά, ψηφιοποιημένη φωνή, ηχογραφήσεις, κινούμενα σχέδια, κομμάτια από ταινίες κλπ. Ως εφαρμογή multimedia, ορίζουμε ένα σύστημα πληροφορικής που αξιοποιεί ένα ή περισσότερα από τα στοιχεία, σε συνδυασμό συνήθως με ειδικές συσκευές αναπαραγωγής τους όπως δίσκοι laser και video.

1.2. Περιβάλλον υλοποίησης

Οι εφαρμογές multimedia συνήθως υλοποιούνται σε περιβάλλον που βασίζεται σε γραφική επικοινωνία με το χρήστη, όπως το περιβάλλον του Macintosh, τα Microsoft Windows, το NeXTdimension και το X-Window system. Δεν λείπουν όμως και περιπτώσεις όπου εξειδικευμένες ενσωματωμένες εφαρμογές αναπτύσσονται ανεξάρτητα από το γραφικό περιβάλλον, αναλαμβάνοντας όλο το φάσμα της επικοινωνίας με το χρήστη. Κλασικά παραδείγματα τέτοιων εφαρμογών είναι τα προϊόντα CD-I (Compact Disk Interactive) και τα οπτικά τηλέφωνα που εμφανίστηκαν φέτος στην καταναλωτική αγορά.

Σχήμα 1: Εφαρμογή multimedia (ψηφιακός δέκτης τηλεόρασης).

1.3. Ειδικά προβλήματα υλοποίησης

Τα ειδικά προβλήματα υλοποίησης εφαρμογών multimedia πηγάζουν από τη συνθετότητα των εφαρμογών και των υποστηριζομένων συσκευών, αλλά και από τις υψηλές απαιτήσεις που έχει ο τελικός χρήστης από τις εφαρμογές αυτές. Συγκεκριμένα:

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

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

Ταυτόχρονα με την αύξηση του όγκου των δεδομένων, υπάρχει η απαίτηση από το χρήστη για τη γρήγορη μεταγωγή και επεξεργασία τους - συνήθως σε πραγματικό χρόνο - γεγονός που οδηγεί στην υιοθέτηση ειδικών περιφερειακών υποστήριξης (π.χ. ψηφιακών επεξεργαστών σήματος), και προηγμένων τεχνικών ελέγχου των περιφερειακών.
AVIAudio Video Interleaved
CD-ICompact Disk Interactive
DDEDynamic Data Exchange
DLLDynamic Link Library
DVIDigital Video Interactive
EPSEncapsulated Postscript
GIFGraphics Interchange Format
JPEGJoint Photographic Expert Goup
MCIMedia Control Interface
MPEGMotion Picture Expert Group
PLVProduction Level Video
RIFFResource Interchange File Format
RTVReal Time Video
SDKSoftware Development Kit
TIFFTagged Interchange File Format
TPUTurbo Pascal Unit

Πίνακας 1: Στη σειρά των άρθρων θα χρησιμοποιήσουμε αρκετά αρχικά όρων από το χώρο των εφαρμογών multimedia. Η επεξήγησή τους υπάρχει μέσα στο κείμενο στο σημείο της πρώτης αναφοράς. Ο πίνακας αυτός περιέχει μιά σύνοψη των αρχικών που χρησιμοποιούνται. Περισσότερες πληροφορίες υπάρχουν στο λεξικό όρων multimedia που υπάρχει στο τέλος του άρθρου.

2. ΕΝΘΕΣΗ ΚΙΝΟΥΜΕΝΗΣ ΕΙΚΟΝΑΣ

Η ένθεση κινούμενης εικόνας (live video overlay) συχνά συνιστά βασικό στοιχείο εφαρμογών multimedia. Αποτελεί βασικό εργαλείο εφαρμογών εκπαίδευσης ή παρουσίασης διότι ενδυναμώνει τις στατικές δισδιάστες εικόνες παρέχοντας τη διάσταση του χρόνου. Τα δεδομένα που συμβολίζουν ψηφιακά την κινούμενη εικόνα είναι πολλά σε όγκο. Γι' αυτό το λόγο η συνήθης πρακτική είναι αυτά να προέρχονται από ένα σύστημα αναλογικής φύλαξης και αναπαραγωγής εικόνας που χρησιμοποιεί μέσα όπως οι κασέτες video και οι οπτικοί laser δίσκοι. Το ενδιαφέρον του καταναλωτικού κοινού για τέτοιες και άλλες συσκευές έχει χαμηλώσει το κόστος τους και των παρελκομένων τους (camcoders, video visualisers) και έτσι αποτελούν ένα ρεαλιστικό μέσο αποθήκευσης κινούμενης εικόνας για εφαρμογές multimedia.

Την ένθεση του αναλογικού σήματος video που προέρχεται από τις συσκευές αυτές μέσα στην εικόνα που δημιουργείται από τον υπολογιστή, αναλαμβάνει συνήθως ένα ειδικό περιφερειακό, η συσκευή ένθεσης (overlay). Η χρησιμοποιούμενη διάταξη είναι αυτή τους σχήματος 1. Στις επόμενες ενότητες θα περιγράψουμε την κάρτα ένθεσης Screen Machine, τις βασικές της δυνατότητες και τον τρόπο χρήσης τους.

Σχήμα 2: Λειτουργία της κάρτας ένθεσης

2.1. Η κάρτα Screen Machine

Η κάρτα Screen Machine κατασκευάζεται στο Μόναχο της Γερμανίας από την εταιρεία Fast Electronic GmbH και παρέχει τη δυνατότητα ένθεσης κινούμενης εικόνας video από τρείς διαφορετικές πηγές σε οποιοδήποτε μέρος της οθόνης του υπολογιστή και με οποιοδήποτε μέγεθος. Παράλληλα επιτρέπει την ψηφιοποίηση στιγμιοτύπων της εικόνας καθώς και αναπαραγωγή τους με ανάλυση 21 εκατομυρίων χρωμάτων. Η κάρτα μπορεί να συνδεθεί σε υπολογιστές συμβατούς με τον IBM AT καθώς και τον Apple Macintosh. Μαζί με την κάρτα περιλαμβάνεται λογισμικό που επιτρέπει την ένθεση εικόνας, την αποθήκευση σταθερών πλάνων με τη μορφή ψηφιακών φιλμ, καθώς και την επεξεργασία τους.

Σχήμα 3: Παράδειγμα λειτουργίας του λογισμικού που συνοδεύει την κάρτα ένθεσης.

2.2. Βασικές παράμετροι ελέγχου μιας κάρτας ένθεσης

Υπάρχουν πολλοί τρόποι με τους οποίους μπορεί κανείς να ελέγξει την κάρτα ένθεσης. Οι βασικές λειτουργίες που μπορούν να ελεγχθούν είναι οι εξής:

Εγκατάσταση

Σε ένα σύστημα μπορούν να είναι εγκατεστημένες μέχρι και τρείς κάρτες Screen Machine. Υπάρχουν συναρτήσεις που ορίζουν την εκάστοτε ενεργή κάρτα και αναλαμβάνουν το διαχωρισμό των καρτών ανάμεσα σε πολλαπλές εφαρμογές για περιβάλλοντα πολυεπεξεργασίας.

Καθορισμός παραμέτρων

Κατά την πρώτη χρήση της Screen Machine μπορεί να χρειαστεί να ρυθμιστούν παράμετροι, όπως ο οριζόντιος και κάθετος συγχρονισμός της κάρτας με το σήμα video και η σχετική κλίμακα της οριζόντιας διάστασης. Μια ομάδα συναρτήσεων επιτρέπει τον ορισμό και την προσπέλαση αυτών των παραμέτρων, καθώς και την αποθήκευσή τους σε αρχείο αρχικοποίησης.

Ορισμός θέσης και μεγέθους

Η ένθεση της ζωντανής εικόνας επιτυγχάνεται αφού καθοριστούν παράμετροι όπως η θέση της εικόνας και το μέγεθός της. Άλλες συναρτήσεις επιτρέπουν την προσπέλαση των παραμέτρων αυτών.

Ένθεση με βάση το χρώμα

Εκτός από την ένθεση ενός τετράγωνου πλαισίου κινούμενης εικόνας στην οθόνη του υπολογιστή, η Screen Machine επιτρέπει την επιλογή των τμημάτων που θα είναι ορατά με βάση ένα προκαθορισμένο διαφανές χρώμα (color keying). Ετσι για παράδειγμα, μπορούμε να ορίσουμε ότι σε όσα μέρη της οθόνης υπάρχει το γαλάζιο χρώμα θα είναι ορατό το σήμα video. Είναι προφανές, ότι με αυτόν τον τρόπο μπορούμε να σχεδιάσουμε γραφικά αντικείμενα πάνω από την εικόνα video, αρκεί αυτά να έχουν οποιοδήποτε χρώμα εκτός από το χρώμα το οποίο έχουμε ορίσει ως διαφανές, γεμίζοντας προηγουμένως την οθόνη με το διαφανές χρώμα. Οι βιβλιοθήκες συναρτήσεων της Screen Machine παρέχουν τη δυνατότητα του προγραμματισμού αυτής της δυνατότητας.

Ψαλίδισμα της εικόνας

Ένας άλλος τρόπος ελέγχου του τμήματος της εικόνας που εμφανίζεται είναι ο καθορισμός ψαλιδισμένων τμημάτων (clipping regions). Αυτά μπορούν να χρησιμοποιηθούν για να επιτρέψουν σε ένα παράθυρο που περιέχει ζωντανή εικόνα να συμπεριφέρεται σαν οποιοδήποτε άλλο αντικείμενο ενός παραθυρικού περιβάλλοντος.

Ορισμός παραμέτρων παρουσίασης

Μιά άλλη ομάδα συναρτήσεων επιτρέπει τον ορισμό και τον έλεγχο, της λαμπρότητας, του κορεσμού των χρωμάτων, των συνιστωσών του κόκκινου, πράσινου και μπλέ, καθώς και τον ορισμό κινούμενης ή σταθερής εικόνας.

Ορισμός φίλτρων εικόνας

Η κατάλληλη επεξεργασία του αναλογικού σήματος video πριν από την ψηφιοποίησή του μπορεί να επιδράσει σημαντικά στην ποιότητα του τελικού αποτελέσματος. Οι συναρτήσεις που επηρεάζουν το αναλογικό τμήμα της επεξεργασίας ελέγχουν ένα ημιπερατό φίλτρο, ένα φίλτρο θορύβου, και ένα φίλτρο εξομάλυνσης, τη λειτουγία για έγχρωμη η ασπρόμαυρη εικόνα, τη θέση των χρωμάτων στο πρότυπο NTSC, και τη λειτουργία ενός διορθωτή χρονισμού για πηγές των οποίων ο χρονισμός δεν είναι ακριβής λ.χ. συσκευές video.

Ειδικά εφέ

Οι εφαρμογές multimedia μπορούν να γίνουν πιο ενδιαφέρουσες με τη χρήση ειδικών εφέ. Για την Screen Machine υπάρχουν συναρτήσεις που επιτρέπουν τον καθορισμό βαθμιαίας εξασθενήσεως του σήματος video (fading), καθώς και την οριζόντια η κάθετη σάρωση κατά βαθμίδες του (wiping). Επιπλέον η τετράγωνη εικόνα μπορεί να μετατραπεί σε σφαιρική και να μετακινηθεί στην οθόνη σε πραγματικό χρόνο.

3. ΣΥΝΕΧΙΖΟΝΤΑΣ

Στο επόμενο άρθρο θα ασχοληθούμε με τον προγραμματισμό των συσκευών multimedia στο περιβάλλον Windows και τους βασικούς τρόπυς ελέγχου τους. Θα εξετάσουμε πως αυτό μπορεί να επιτευχθεί με τις βιβλιοθήκες DLL και τους οδηγούς MCI. Μείνετε μαζί μας!