http://www.spinellis.gr/pubs/trade/1993-Winmag/fastwin6/html/win6.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:
- Diomidis Spinellis.
Implementing
multimedia applications: Handling moving images.
Win Magazine, October 1993.
In Greek.
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: ΕΓΓΡΑΦΗ ΚΑΙ ΑΝΑΠΑΡΑΓΩΓΗ ΨΗΦΙΑΚΗΣ ΚΙΝΟΥΜΕΝΗΣ ΕΙΚΟΝΑΣ
Διομήδης Δ. Σπινέλλης
Multimedia Products Technical Support
FAST Hellas S.A.
Εθνικής Αντιστάσεως 14α, 152 32 Χαλάνδρι
Σε προηγούμενα άρθρα της σειράς αυτής είχαμε αναφερθεί στην
κινούμενη ψηφιακή εικόνα ως ανερχόμενο στοιχείο των τεχνολογιών
multimedia.
Στο άρθρο αυτό θα αναφερθούμε στο λογισμικό που επιτρέπει την
εισαγωγή και παρουσίαση ψηφιακής κινούμενης εικόνας στο
περιβάλλον Windows, θα αναλύσουμε το λεπτό θέμα της
σωστής εγγραφής νέων εικονοσειρών, και τέλος, θα περιγράψουμε
πώς η τεχνολογία αυτή μπορεί να χρησιμοποιηθεί σε ανάπτυξη
εφαρμογών.
Η συνεχώς αυξανόμενη ταχύτητα και αποθηκευτική ικανότητα των
προσωπικών υπολογιστών κάνει εφικτές όλο και περισσότερες
εφαρμογές που πριν από λίγο καιρό ανήκαν στο χώρο της
επιστημονικής φαντασίας.
Ετσι μετά την υψηλής ποιότητας γραφική εικόνα και τον
ψηφιακό ήχο ήρθε και η σειρά της κινούμενης εικόνας
να εισέλθει ως πρακτική δυνατότητα στους προσωπικούς
υπολογιστές (εικόνα 1).
Εικόνα
1: Σειρά εικόνων
ψηφιακού video
Το νέο αυτό μέσο έκφρασης μπορεί να χρησιμοποιηθεί σε
πολλές και διάφορες εφαρμογές:
- Παρουσιάσεις:
- Σύμφωνα με έρευνα που έγινε
από την Market Vision στις ΗΠΑ 43% των επιχειρηματικών
στελεχών θεωρούν τις επαγγελματικές συσκέψεις βαρετές.
Ενα μάλιστα 40\% παραδέχτηκε ότι έχει συμβεί να κοιμηθούν
κατά τη διάρκειά τους.
Αλλη έρευνα κατέληξε στο συμπέρασμα ότι η χρήση video
στις παρουσιάσεις μπορεί να μειώσει τη διάρκειά τους κατά 40%
και να αυξήσει το ποσοστό των πληροφοριών που απομνημονεύουν οι
συμμετέχοντες σε ποσοστό 38%.
- Εκπαίδευση:
-
Κινούμενη εικόνα μπορεί να χρησιμοποιηθεί για να δώσει ζωντάνια και αμεσότητα
σε εκπαιδευτικό λογισμικό.
Έννοιες που είναι δύσκολο να εξηγηθούν μπορούν να παρουσιαστούν με
ζωντανά παραδείγματα.
- Τεκμηρίωση:
-
Αντίστοιχα η τεκμηρίωση περίπλοκων θεμάτων μπορεί να απλουστευτεί με τη
χρήση ζωντανής εικόνας.
Σαν παράδειγμα η σειρά χειρισμών για τη συντήρηση ή την επισκευή ενός κινητήρα
αυτοκινήτου μπορεί να αποθηκευτεί σε ζωντανές εικόνες που εμφανίζονται
στη οθόνη ανάλογα με το είδος του προβλήματος που διαγιγνώσκει ο υπολογιστής.
- Πληροφόρηση:
-
Η κινούμενη εικόνα αποτελεί ακόμα αναπόσπαστο τμήμα των τεχνολογιών
πληροφόρησης.
Βιβλία, εγκυκλοπαίδειες και ειδήσεις που μεταδίδονται με ηλεκτρονική
μορφή μπορούν να περιέχουν κινούμενη εικόνα για μεγαλύτερη παραστατικότητα.
Ολες αυτές οι εφαρμογές μπορούν να πραγματοποιηθούν με το λογισμικό
Video for Windows της Microsoft που δίνει τη δυνατότητα
σε υπολογιστές που τρέχουν Windows να αναπαράγουν κινούμενη
εικόνα.
Με την προσθήκη μάλιστα μιας κάρτας ψηφιοποίησης εικόνας (όπως η
Screen Machine II) το ίδιο λογισμικό επιτρέπει στον χρήστη
να εισάγει νέες εικονοσειρές, τις οποίες μπορεί να δει οποιοσδήποτε
άλλος χρήστης του Video for Windows.
Το λογισμικό Video for Windows
Η υλοποίηση της κινούμενης εικόνας
κάτω από το περιβάλλον Windows 3.1 από τη Microsoft
ονομάστηκε AVI (Audio Video Interleaved).
Οι επεκτάσεις AVI προσφέρουν οδηγούς για
τη συμπίεση και την αποσυμπίεση εικονοσειρών καθώς και μια σειρά από βοηθητικά
προγράμματα. Τα κυριότερα από αυτά είναι:
- Media Player
-
Έκδοση του media player των Windows που υποστηρίζει AVI.
Για την αύξηση της
ταχύτητας εναλλαγής πλαισίων, οι οδηγοί AVI προσπαθούν να φορτώσουν από την αρχή
όσο το δυνατό μεγαλύτερο κομμάτι της σειράς στην κεντρική μνήμη του υπολογιστή.
Ακόμα, ορισμένες συσκευές προσφέρουν ειδικούς οδηγούς που επιτρέπουν
την ταχύτερη εναλλαγή των πλαισίων.
Για παράδειγμα η Screen Machine II επιτρέπει την αυτόματη μεγέθυνση
της εικόνας AVI (η οποία συνήθως καταλαμβάνει το ένα τέταρτο της
οθόνης του υπολογιστή) στο μέγεθος όλης της οθόνης χωρίς καμία μείωση
της ταχύτητας.
Αν αυτή η μεγέθυνση γινόταν από τον κεντρικό επεξεργαστή του συστήματος
μέσω της VGA η ταχύτητα εναλλαγής των πλαισίων θα έπεφτε στο ένα τέταρτο.
- VidCap
-
Πρόγραμμα εγγραφής ήχου και εικόνας (εικόνα 2).
Εικόνα 2: Το
πρόγραμμα
vidcap
Το πρόγραμμα επιτρέπει τον καθορισμό του χρόνου, του χώρου
και της ταχύτητας εγγραφής (εικόνα 3),
Εικόνα 3: Οι
επιλογές του
τρόπου εγγραφής
των πηγών και των χαρακτηριστικών του ήχου και της εικόνας (εικόνα 4),
Εικόνα 4: Οι
επιλογές του
τρόπου αποθήκευσης
και τον καθορισμό της χρωματικής παλέτας.
Η υπόλοιπη επεξεργασία της εικονοσειράς πραγματοποιείται μέσω του
προγράμματος videdit.
- VidEdit
-
Πρόγραμμα που επιτρέπει την αλλαγή εικονοσειρών AVI (εικόνα 5).
Εικόνα 5: Το
πρόγραμμα
videdit
Μέσα από το videdit είναι
δυνατή η διαγραφή ή η εισαγωγή εικονοσειρών σε μια υπάρχουσα εικονοσειρά, ο
συγχρονισμός του ηχητικού τμήματος με το οπτικό, ο καθορισμός της
παλέτας των χρωμάτων, καθώς και η αλλαγή του ρυθμού
αλλαγής πλαισίων ανά δευτερόλεπτο.
Επιπλέον το videdit παρέχει τη δυνατότητα συμπίεσης του αρχείου
μειώνοντας το μέγεθός του και και προσαρμόζοντας το
στις απαιτήσεις διαμεταγωγής των εξωτερικών συσκευών (εικόνα 6).
Εικόνα 6: Οι
επιλογές συμπίεσης
Οσο μεγαλύτερο χώρο καταλαμβάνει κάθε εικόνα ενός αρχείου τόσο πιο
γρήγορα πρέπει να μεταφέρονται τα δεδομένα από την περιφερειακή
μνήμη (σκληρός δίσκος, CD-ROM) στον υπολογιστή.
Κάθε δευτερόλεπτο έγχρωμης κινούμενης και ασυμπίεστης εικόνας
καταλαμβάνει περίπου 27MB απαιτώντας ταχύτητα διαμεταγωγής
108Mbits/sec ενώ οι σκληροί δίσκοι παρέχουν διαμεταγωγή
της τάξης των 30Mbits/sec και οι δίσκοι CD-ROM 1.2Mbits/sec.
Με τη χρήση συμπίεσης, περιορισμένων χρωμάτων και μεγέθους εικόνας,
η απαιτούμενη ταχύτητα διαμεταγωγής μειώνεται σημαντικά.
Εγγραφή ψηφιακού video
Ο μεγάλος όγκος δεδομένων που εμπεριέχει η κινούμενη εικόνα προϋποθέτει
τη σωστή κατανόηση ορισμένων λεπτομερειών για μια επιτυχημένη εγγραφή.
Πρώτα απ' όλα είναι σημαντική η σωστή εγκατάσταση της κάρτας εγγραφής.
Η εγγραφή γίνεται με τη χρήση διακοπών interrupts οι οποίες
πρέπει να είναι σωστά ρυθμισμένες από το τμήμα οδηγών του
control panel.
Πολύ βοηθά στην ταχύτητα η διαμεταγωγή μέσω μνήμης direct memory
access αντί της διαμεταγωγής μέσω του διαύλου εισόδου / εξόδου.
Ενα δεύτερο σημείο που χρήζει προσοχής είναι η προετοιμασία πριν από την
εγγραφή.
Το υλικό που θα γράψετε, καλό είναι να είναι καλά φωτισμένο και με
σχετικά έντονες αντιθέσεις.
Πριν από την εγγραφή πρέπει να αποφασίσετε αν θα προτιμήσετε περισσότερα
πλαίσια (frames) ανά δευτερόλεπτο ή αυξημένη ποιότητα εικόνας.
Εικόνες δυναμικές με πολύ κίνηση (λ.χ. ένας αγώνας αυτοκινήτων) απαιτούν
αυξημένη ταχύτητα πλαισίων, εικόνες με αργές εναλλαγές (λ.χ. τοπία)
μπορούν να εγγραφούν με μεγαλύτερη πιστότητα.
Πριν την εγγραφή πρέπει να υπολογίσετε το μέγεθος του αρχείου εγγραφής.
Η εγγραφή εικόνων PAL μεγέθους ενός τετάρτου της εικόνας (192 x 144)
και με συχνότητα 25 πλαίσια ανά δευτερόλεπτο απαιτεί 1.5MB/sec.
Καλό είναι ο δίσκος σας (που πρέπει να υποστηρίζει αυτή την ταχύτητα
διαμεταγωγής) να έχει αποκερματιστεί (defragmented).
Σε μικρής διάρκειας σειρές μπορείτε να δώσετε εντολή στο VidCap η σειρά να
αποθηκευτεί αρχικά στη μνήμη ή να χρησιμοποιήσετε το smartdrv με
αρκετό χώρο ενταμίευσης.
Για σειρές με διάρκεια μεγαλύτερη από ένα λεπτό μάλλον πρέπει να πάρετε
απόφαση από την αρχή να καθορίσετε τη μισή συχνότητα εγγραφής.
Σημασία για την ποιότητα εγγραφής έχει και το μέσο αναπαραγωγής.
Η εγγραφή με πλήρες χρώμα είναι περιττή σπατάλη χώρου και χρόνου αν
ο υπολογιστής στον οποίο θα αναπαραχθεί η σειρά διαθέτει κάρτα οθόνης
που υποστηρίζει μόνο 256 χρώματα.
Επίσης, αν η σειρά προορίζεται να
αποθηκευτεί σε δίσκο CD-ROM πρέπει να ληφθεί υπόψη ότι
η τυπική ταχύτητα διαμεταγωγής από CD-ROM είναι 150KB/sec
και η συχνότητα εγγραφής πρέπει να περιοριστεί ανάλογα.
Τέλος σχετικά με το χρώμα, η καλύτερη ευκρίνεια επιτυγχάνεται με
μονόχρωμες εικόνες.
Οι έγχρωμες σειρές καλό είναι να εγγράφονται με 16 bit χρώματος,
αλλά να αναπαράγονται με 8 bit χρώματος από παλέτα την
οποία καθορίζετε σε επόμενο στάδιο μέσα από το VidEdit.
Κατά την εγγραφή το μέγεθος της εικόνας πρέπει να είναι τέτοιο ώστε
να χάνονται το πολύ 10\% των εικόνων.
Η εγγραφή του ήχου ελέγχεται και αυτή από το VidEdit αλλά
πρέπει να καθορίσετε τη σωστή πηγή.
Αρχίστε την εγγραφή λίγο πριν από το επιθυμητό σημείο και τελειώστε
την λίγο πριν από το τέλος με το πλήκτρο ESC.
Το τελικό στάδιο της προετοιμασίας μιας κινούμενης σειράς γίνεται
μέσω του VidEdit.
Εκεί θα κόψετε τη σειρά στο επιθυμητό μέγεθος,
θα καθορίσετε την παλέτα του αρχείου, και θα το συμπιέσετε σύμφωνα
με τα κριτήρια που αναφέραμε παραπάνω.
Η όλη διαδικασία είναι μια σειρά πειραματισμών για την εύρεση των βέλτιστων
παραμέτρων.
Πρέπει να κρατάτε συνέχεια αντίγραφα των προηγουμένων σταδίων μέχρι να
μείνετε ικανοποιημένοι από το τελικό αποτέλεσμα.
Προσθήκη ψηφιακού video σε εφαρμογές
Ο προγραμματισμός εφαρμογών εφαρμογών AVI
βασίζετε στη χρήση εντολών MCI που αναπτύξαμε στο προηγούμενο
άρθρο.
Οι οδηγοί MCI για AVI προσφέρουν στο χρήστη ένα ιδεατό
ψηφιακό video, το οποίο μπορεί να αντιμετωπιστεί από πλευράς εφαρμογών
όμοια με τις πραγματικές οικιακές αναλογικές συσκευές που λειτουργούν
με μαγνητικές κασέτες.
Είναι δηλαδή δυνατή η εγγραφή μίας εικονοσειράς, η επανάληψή της, η
γρήγορη αναδρομή προς ένα σημείο, το πάγωμα της εικόνας, η πλαίσιο προς
πλαίσιο απεικόνιση κλπ.
Για παράδειγμα, η παρακάτω σειρά εντολών μπορεί να χρησιμοποιηθεί για να
εμφανίσει μια εικονοσειρά στην οθόνη με τη χρήση AVI (εικόνα 7):
open d:\space\r_launch.avi type mciavi alias avi
window avi
play avi
close avi
Εικόνα 7: Ελεγχος
ψηφιακής εικόνας
με το πρότυπο
mci
Μέσα από το περιβάλλον της Visual Basic η χρήση του MCI
γίνεται με την δήλωση:
Global Const WS_CHILD = &H40000000
Declare Function mciSendString Lib "mmsystem" (ByVal lpstrCommand$,
ByVal lpstrReturnStr As Any, ByVal wReturnLen%, ByVal hCallBack%)
As Long
Στη συνέχεια ανοίγουμε το αρχείο που περιέχει το σειρά που θέλουμε
να παραστήσουμε με τις εντολές:
DIM CmdStr as String
DIM ret as Integer
CmdStr = ("open d:space.avi type AVIVideo alias spaceavi parent"
+ LTrim$(Str$(form1.hWnd)) + " style " + LTrim$(Str$(WS_CHILD)))
Ret = mciSendString(CmdStr, 0&, 0, 0)
Από αυτό το σημείο και μετά αναφερόμαστε στο αρχείο αυτό με
τον κωδικό spaceavi που ορίσαμε παραπάνω.
Η επόμενη εντολή τοποθετεί το παράθυρο στη θέση 5 10 με μέγεθος
192 x 144.
Ret = mciSendString("put spaceavi window at 5 10 192 144", 0&, 0, 0)
Τέλος, οι επόμενες δύο εντολές αναπαράγουν την κινούμενη εικονοσειρά
μέσα στο παράθυρο και κλείνουν το αρχείο.
Ret = mciSendString("play spaceavi wait", 0&, 0, 0)
Ret = mciSendString("close spaceavi", 0&, 0, 0)
(C) Copyright 1993-97 Διομήδης Σπινέλλης. Επιτρέπεται η ελεύθερη ανάγνωση από browsers του WWW και παρόμοια προγράμματα. Με την επιφύλαξη κάθε άλλου δικαιώματος.