Easytizer - ein Videodigitizer im Selbstbau Teil 1

Die Überschrift sagt alles. Dieses Projekt soll Sie mit dem Selbstbau nes Video-Digitalisierers beschäftigen. Bei der Angebotsfülle an Video-Digitalisierern haben wir uns entschlossen, unseren Easytizer als Projekt in der ST-COMPUTER zu bringen, zumal so etwas im Selbstbau wohl nicht an der Tagesordnung steht. Im ersten Teil wird die Hardware des Easytizers besprochen und erklärt. Im nächsten Heft geht es dann um die softwaremäßige Ansteuerung der Hardware mit entsprechenden Assemblerroutinen zum digitalisieren eines Bildes. Nichtbastler können schon jetzt ein fertig aufgebautes Gerät samt Software oder auch einen Teilsatz bei der Merlin Computer GmbH bestellen.

Bild 1: Digitalisierter Taschenrechner

Ein Video-Digitizer im Selbstbau soll nicht gleich bedeuten, daß dieser weniger leisten kann als ein Industriegerät. Die folgenden Leistungsmerkmale zeigen, daß der Easytizer mit so manchen Besonderheiten ausgestattet ist, die einen Nachbau durchaus lohnenswert machen.

Technische Daten:

Aufbau eines Videosignals

Zunächst etwas über die deutsche Videonorm. Zur Übertragung von schwarzweiß-Bildern über einen Informationskanal einigte man sich schon vor langer Zeit auf die noch heute gebräuchliche Form, das BAS-Signal (Bild-, Austast- und Synchron-Signal). Ein Video-Signal enthält zweierlei Information:

  1. Synchroninformation
  2. Bildinformation
Bild 2: Obstschale aus ST Computer Nr. 4 digitalisiert

1.) Die Synchroninformation

Die Synchroninformation dient dazu, einen Gleichlauf des zeilenweise abgetasteten Bildes der Aufnahmeeinheit (z. B. Videokamera) und der Wiedergabeeinheit (z. B. Monitor) zu erzwingen. Dies ist nötig, da es in der Praxi; nahezu unmöglich ist, in der Wiedergabeeinheit exakt die selbe Frequenz und die Phasenlage zur Aufnahmeeinheit - besonders auf längere Zeit - zu halten. In der Synchroninformation ist die Zeilenfrequenz und die Bildfrequenz enthalten. Die Zeilenfrequenz (15.625 KHz) ist die Frequenz, mit der z. B. der Elektronenstrahl eines Monitors wieder an den linken Rand und ein Stück nach unten springt, um dann von links nach rechts eine neue Zeile zu zeichnen. Mit der Bildfrequenz (50 Hz) wiederholt sich eine komplette Bildperiode, die aus 312 beziehungsweise 313 Zeilen (später mehr dazu) besteht und der Elektronenstrahl springt an die linke obere Ecke zurück. Zur Bildwechsel-Synchronisation (Halbbildwechsel) bedient man sich einer speziellen Rasterwechselimpulsfolge (siehe auch Abbildung 1), die elektronisch jedoch durch simples Integrieren des abgetrennten Synchronsignals ausgewertet werden kann. Die Synchroninformation liegt pegelmäßig deutlich unter der Bildinformation und kann deshalb mit relativ einfachen Mitteln abgetrennt werden.

Bild 3: Macroaufnahme des Firmenlogos, daneben eine Büroklammer

2.) Die Bildinformation

Eine Zeile enthält im Verlauf von links nach rechts die Helligkeitsinformation des Bildes. Daher auch die Tatsache, daß die horizontale Bildauflösung nur durch die Bandbreite der Übertragungsstrecke bestimmt wird, die Vertikale jedoch von der Zeilenzahl.

Eine Zeile ist in Zeilensynchronimpulse eingeschlossen. Eines wurde Ihnen bis jetzt jedoch vorenthalten: Sie haben sich vielleicht schon gewundert, warum ein Bild einmal 312 und das andere mal 313 Zeilen haben soll. Das rührt daher, daß man damals einen akzeptablen Kompromiß zwischen Bandbreite der Übertragungsstrecke und der Zeilenzahl (Vertikale Auflösung) zu finden suchte, und es zur Entwicklung des Interlace-Verfahrens kam.

Das Interlace-Verfahren

steigert die Zeilenzahl des Video-Bildes auf das Doppelte ohne jedoch die nötige Übertragungsbandbreite zu erhöhen. Das Prinzip beruht einfach darauf, daß man in einem Halbbild nur ungerade Zeilen überträgt und im nächsten Halbbild um einen halben Zeilenabstand versetzt nur gerade Zeilen. Daraus resultiert, daß es jetzt zwei Halbbilder mit einmal 313 und einmal 312 Zeilen gibt. Der Rasterwechselunpulsfolge wird dabei die Aufgabe übertragen, ein Halbbild dem anderen gegenüber jeweils um einen halben Zeilenabstand zu versetzen. Das brachte natürlich Nachteile, denn eine einzige Zeile wird jetzt nur noch mit 25 Hz ’aufgefrischt’, die benachbarte Zeile jedoch gleich darauf und damit das ganze Bild wie gehabt mit 50 Hz. Das damit erkaufte Flimmern benachbarter Zeilen zueinander konnte bei normalen 'Fernsehbildern’ und aufgrund der zeitlichen Integrierwirkung des menschlichen Auges vernachlässigt werden. Abbildung 1 soll diese Zusammenhänge noch etwas anschaulicher darstellen.

Die Farbinformation im Videosignal

Ein FBAS-Signal (Farb-, Bild-, Austast-und Synchron-Signal) unterscheidet sich von einem BAS-Signal lediglich durch eine in quadraturmodulation aufmodulierte Farbinformation mit einer Trägerfrequenz von 4,43 MHz und dem sogenannten Farbburst, der direkt auf das Synchron-Signal folgt. Bei diesem Burst handelt es sich um etwa zehn Perioden der Farbträgerfrequenz, die zur Synchronisation des Quadraturdemulators benötigt werden. Da der EASYTIZER ein schwarzweiß-Digitizer ist und diese Farbinformation nicht auswerten kann, soll hierauf nicht weiter eingegangen werden. Jedoch wollen wir auf einen wuchtigen Punkt hinweisen: Diese dem Bildsignal überlagerte Farbträgerfrequenz macht sich unter Umständen als störendes Muster auf dem digitalisierten Bild (Moire) bemerkbar. Abhilfe schafft entweder ein Farbträgersperrfilter oder die Verwendung einer reinen schwarzweiß Kamera.

Video und Computer

Um Videosignale elektronisch zu verarbeiten, muß man schon etwas mehr Aufwand treiben als z. B. bei Audio-Signalen. Die ganze Elektronik des EASYTIZERs konnte jedoch auf einer nur 100 * 100 mm doppelseitig kaschierten Platine untergebracht werden, was dem Einsatz von relativ hochintegrierten Logik-Bausteinen und einem GAL zu verdanken ist. Bei diesem GAL handelt es sich um einen programmierbaren Logikbaustein, der hier praktisch die Rolle der ’allesverbindenden Logik’ spielt. Durch diese Maßnahme konnten etwa 5 weitere Logik-Bausteine eingespart werden.

Video und EASYTIZER

Zur Sache: betrachtet man zunächst einmal den Analog-Teil des Easytizers, so wird man wohl sinnvollerweise bei der Video-Eingangsbuchse anfangen. Zuerst gelangt das Video-Signal vom Eingang zu einem Emmitterfolger (T1) mit hohem Eingangswiderstand und niedrigem Ausgangswiderstand, wodurch eine Rückwirkung der Schaltung (durch die Komparatoren usw.) ausgeschlossen wird. Danach läßt sich die Schaltung in 3 Funktionsbereiche aufteilen:

1.) Synchronsignalabtrennung und „Klemmschaltung“

Die Synchronabtrennstufe inklusive Klemmschaltung ordnet sich rund um einen Komparator aus IC 10 an. Nachdem das Videosignal durch einen Tiefpaß entstört und erneut gepuffert wurde, gelangt es zur eigentlichen Synchronabtrennung. Da der Synchronpegel der niedrigste des ganzen Videosignals ist, wird sich der Synchronpegel an dem Knotenpunkt C3/D1 auf die Spannung am Knotenpunkt R14/ C4 (etwa 3.2V) minus der Durchbruchspannung von Dl und minus dem Spannungsabfall über R9 (etwa 100mV SS) einstellen. Die zum Zeitpunkt des Synchronimpulses an R9 abfallende Spannung wird zum einen von dem Strom durch R8 und dem konstanten Tastverhältnis (Synchron/Rest) bestimmt. Der Strom durch R8 bleibt weitestgehend signalunabhängig und damit auch die Synchronamplitude über R9. Ein nachfolgender Komparator (IC10) wertet diesen Spannungsabfall über R9 aus und springt mit seinem Ausgang auf 1, sobald die Spannung am Knotenpunkt D1/R9 die am nichtinvertierenden Eingang anliegende Spannung unterschreitet. R15 und C8 dienen lediglich der Störsicherheit. Somit liegt das positive Synchronsignal am Ausgang des Komparators an. Dieses Synchronsignal gelangt über ein Differenzierglied an das Gate des selbstsperrenden MOSFET T5. Durch das kurzzeitige Leiten von T5 bewirkt dies ein ’Festklemmen’ des Synchronpegels und damit Bezugspegels auf genau 0V. Das ist nötig, da Videosignale in den meisten Fällen gleichspannungsfrei übertragen werden und der Weiß- beziehungsweise Schwarzwert von der Signalamplitude abhängt. Klemmt man jedoch das Videosignal am Synchronpegel fest, so ist die Helligkeitsinformation nicht mehr relativ zum Synchronpegel des Videosignals, sondern fest auf OV bezogen.

Oszillogramm 1: Zeile eines FBAS-Video-Signals. (Erkenntlich am Farb-Burst direkt hinter dem Synchronsignal.)
Horizontal: 10µs/cm
Vertikal: 0,2V/cm

2.) Die Bildsignalauswertung

Das nun ’Festgeklemmte’ Videosignal gelangt an die nichtinvertierenden Eingänge von 3 Komparatoren, deren invertierende Eingänge wiederum mit einer als ’Referenzleiter’ dienenden Spannungsteilerkette verbunden sind. Die mit P2 einstellbare Spannung am unteren Ende des Spannungsteilers bestimmt den Schwarzwert und die am oberen logischerweise den Weißwert. Mit diesen 3 Komparatoren ist ein sogenannter Flash-A/D-Wandler realisiert, der an den Ausgängen den digitalen Momentwert des analogen Eingangssignals dezimal codiert hervorbringt. Die Anzahl der Komparatoren, deren Ausgänge logisch high werden, ist ein Maß für die Eingangsspannung (Helligkeit) und somit für eine der vier Graustufen. Sind alle Ausgänge null, so entspricht dies dem niedrigsten Grauwert (schwarz). Diese dezimal codierte Information wird dann im nachfolgenden GAL zu einem 2-Bit Binärcode decodiert.

3.) Der Weißwertgleichrichter u. die negative Spannungsversorgung

Der um T2 und T4 aufgebaute Weißwertgleichrichter dient lediglich dazu, den Maximalwert des Videosignals und damit die hellste Stelle festzuhalten, um ihn dann wahlweise als Referenz der oberen Spannungsteilerkette heranzuziehen (Automatische Helligkeitseinstellung).

Die zum Betrieb des Analog-Teils nötige negative Spannung wird ganz konventionell mit IC9 erzeugt. Außerdem sind die Versorgungsspannungen des Analogteils aufgrund der möglichen Störeinkoppelungen jeweils durch ein R/C-Glied entkoppelt.

Oszillogramm 2: Das abgetrennte Zeilensynchronsignal
Horizontal: 10µ s/cm
Vertikal: 2V/cm

Der Digitalteil

Um ein Bild zu Digitalisieren, muß man sowohl das Zeitraster (Takt) als auch die Zahl der analogen Werte (Graustufen) in eine begrenzte Anzahl von endlich kleinen Werten aufteilen. Der Punkttakt beträgt beim Easytizer exakt 16 MHz. Das bedeutet: mit einer Frequenz von 16 MHz wird dem Videosignal eine Probe entnommen, die Auskunft über die Helligkeit in vier Stufen gibt. Diese zwei Bit werden dann mit diesem Takt von 16 MHz in jeweils zwei 16-Bit Schieberegister (IC1/ IC3, IC2/IC4) geschoben. Den Takt für die Schieberegister liefert der Ausgang Qa der einen Hälfte des zweifachen 4-Bit Binärzählers IC6, der seinerseits von einem 32-MHz Quarzoszillator getaktet wird. Dieser Zähler wird von dem Synchronsignal gelöscht und damit synchronisiert. Ausgang Qc dieses Zählers taktet wiederum den synchronen 4-Bit Binärzähler IC7. In IC7 wird mit dem Synchronsignal der Zählerstand der anderen Hälfte von IC6 geladen, der allein der Softwarekontrolle unterliegt. Von IC7 wird lediglich der Übertragausgang (/CRY) benutzt, welcher bei einem Überlauf von IC7 den Schieberegisterinhalt von IC1-IC4 in die intern nachgeschalteten Register überträgt. Das geschieht aber nicht periodisch alle 16 Bittakte, sondern nur alle 64 und außerdem abhängig von dem Dateneingang n (an IC7) in n * 4 Stufen versetzt. Grund für diese Maßnahme ist, daß die Datenübertragung zum Rechner hin nicht mit 32 Mbit/s erledigt werden kann, sondern höchstens mit 8 Mbit/s. Also wird eine Videozeile in Spalten zu je sechzehn Bildpunkten eingeteilt, die sich im Abstand zu 64 Bildpunkten wiederholen. Um trotzdem alle Spalten für den Rechner zugänglich zu machen, ist die Verschiebung der Spalten in Schritten zu 16 Bildpunkten über den Zählerstand der zweiten Hälfte von IC6 softwaremäßig einstellbar. Damit wurde die nötige Übertragungsrate auf ein viertel reduziert, der Zeitaufwand ist jedoch um das vierfache gestiegen (80ms statt 20ms). Ein weiterer Nachteil soll nicht verschwiegen werden: Durch das Zusammenfassen von 4 aufeinanderfolgenden Bildern zu einem Bild im Rechner sollte sich der Bildinhalt über ier Perioden hinweg so gut wie nicht verändern, da es sonst zu störenden Verschiebungen kommen kann. In der Realität hat sich jedoch gezeigt, daß vch bewegte Bilder doch noch recht gut digitalisieren lassen, da eine Digitalisierzeit von 80 Millisekunden vergleichsweise kurz ist.

Oszillogramm 3: Oben (3a): Die Rasterwechselimpulsfolge des Synchronsignals Unten (3b): Das abgetrennte, vertikale Synchronsignal. (Bildfrequenz, 50Hz)
Horizontal: 100µs/ cm
Vertikal: 2V/cm

Die Seriell-parallel-Wandlung

Die Dateneingänge der Schieberegister sind mit den Ausgängen von IC8 verbunden, die die decodierte Information der 3 Komparatoren liefern. Die Ausgänge der Schieberegister sind direkt mit dem Datenbus des Rechners verbunden und werden über den 1 aus 8 Decoder IC5 aktiviert. Der Rest des Digitalteils setzt sich aus IC5, IC8 und wenigen passiver* Bauelementen zusammen. IC5 steuert den Zugriff auf die Hardware-Ressourcen in Abhängigkeit von der Zugriffsadresse und den Steuersignalen /ÜDS und /ROM3. IC8 bildet außer dem bereits erwähnten Decoder auch ein durch den Rechner lesbares Statusregister, welches Informationen über den Zustand der Hardware gibt. Die an IC8 angeordneten passiven Bauelemente dienen lediglich einer Verlängerung des Synchronimpulses beziehungsweise dem Abtrennen der Bildfrequenz aus dem Synchrongemisch.

Die besondere Rolle des GALs

Bei diesen GALs handelt es sich wie Sie vielleicht schon wissen um eine weiterentwickelte Variante der PAL-Familie. Gegenüber PAL-Bausteinen sind GALs in CMOS-Technologie gefertigt, zeigen einen geringeren Leistungsverbrauch, sind in den dynamischen Eigenschaften überlegen und besitzen eine wesentlich flexiblere Ausgangsstruktur. Durch den Einsatz dieses GALs konnte die nötige Gatterlogik auf null reduziert werden. Die Funktionen, die das GAL hier erfüllt, sollen im Folgenden kurz zusammengefaßt werden.

  1. Decodieren der von den 3 Komparatoren gelieferten Information zu einem 2-Bit Binärcode.
  2. Bildung eines vom Rechner lesbaren Statusregisters, das über Synchronsignale, die Schnappschusstaste und den Zustand der Schieberegister (voll/leer) Auskunft gibt.

Abbildung 2 zeigt die Jedec-Datei, welche zum Konfigurieren des GAL’s benötigt wird. Diese Datei muß in ein entsprechendes Programmiergerät übertragen werden. Falls Sie sich nicht in der Lage sehen, diesen Baustein mit Hilfe der von uns gelieferten Informationen zu programmieren, steht es ihnen frei, das GAL ’EASYTIZER’ von der Redaktion zu beziehen.

Aus hart mach weich...

Und nun zur softwareseitigen Ansteuerung der EASYTIZER-Hardware am ROM-PORT des ST. Der ROM-Bereich $FB0000 - $FBFFFF wird von den Registern des EASYTIZERs belegt. Es sind die 8 Register, für die nur lesender Wortzugriff oder lesender Byte-Zugriff auf geraden Adressen zugelassen ist:

$FB0000 SR0, nur Wort:
Niederwertigster Teil der Bildinformation, aus den mit dem Spaltenzähler eingestellten Spalten, der sich alle 4 Microsekunden verändert. Ein Zugriff auf diese Adresse löscht gleichzeitig die LWF-Flagge im Statusregister.

$FB0002 SR1, nur Wort:
Höchstwertiger Teil der Bildinformation, aus den mit dem Spaltenzähler eingestellten Spalten, der sich alle 4 Microsekunden verändert. Anmerkung: diese Register sind so organisiert, daß sie direkt mit den zwei Bildebenen in mittlerer Auflösung korrespondieren. (Also ist Bit 15 der am weitesten links liegende Bildpunkt.)

$FB0004 INZ, Wort/Byte:
Ein Lesezugriff auf dieses Register erhöht den Spaltenzähler um eins. Die gelesenen Daten sind irrelevant.

$FB0006 LZ, Wort/Byte:
Ein Lesezugriff auf dieses Register setzt den Spaltenzähler auf Null zurück. Die gelesenen Daten sind irrelevant.

$FB0008 STATUR, Wort/Byte:
Status-Register, das über verschiedene Signale im EASYTIZER Auskunft gibt. Von 16 Bits werden lediglich 4 benutzt:

Bit 15: LWF
Diese Flagge wird gesetzt, wenn ein neues Langwort aus den Schieberegistern IC1-IC4 in die intern nachgeschalteten Register übertragen wurde und wird durch einen Zugriff auf SRO wieder gelöscht. Zweck dieser Flagge ist es, eine Synchronisation zwischen Rechner und Videosignal am Anfang einer Zeile zu ermöglichen.

Bit 14: CSYNC
Über ein Monoflop um etwa 7,8 Microsecunden verlängertes, positives Synchronsignal, das ebenfalls zur Synchronisation des Rechners mit dem Videosignal dient.

Bit 13: VSYNC
Dieses Bit wird für etwa 160 Microsekunden Dauer während eines Rasterwechsels aktiv.

Bit 12: TASTE
Dieses Bit wird bei gedrückter ’Schnappschuß-Taste’ aktiv. Die Schnappschuß-Taste wird über BU2 an den Easytizer angeschlossen.

Schlußbemerkung

Im zweiten und letzten Teil dieser Serie geht es dann um die in Assembler verfassten Digitalisierroutinen und das genaue Software-Protokoll zur Ansteuerung des EASYTIZERs. Dadurch ist es möglich, diese Routinen in selbst verfasste Programme einzubinden und sich somit eine eigene Benutzeroberfläche zu programmieren. Weiterhin wird die fertig erhältliche Software beschrieben. Das fertig programmierte GAL und die Platine sowie ein Fertiggerät kann über die Redaktion bezogen werden.

(RH)

Abbildung 2: Die Jedec-Datei enthält alle Informationen um das GAL zu Konfigurieren. Über die Redaktion kann der Quellcode im ABEL-Format bezogen werden.

Easytizer Stückliste

Halbleiter

D1: 1N4148
TI, T2, T6: BC548C o. ä.
T3, T4: BC558C o. ä.
T5: BS170
IC1, IC2, IC3, IC4: 74HC595
IC5: 74HCT138
IC6: 74HC393 oder 74HCT393
IC7: 74HC191 IC8: GAL16V8-35 (programmiert)
IC9: ICL7660
IC10, IC11: LM319

Widerstände

alle 1/4 W Kohleschicht
R1: 750Ω R2: 27K
R3: 82K
R4, R23: 2200Ω R5, R7, R9, R26, R35: 1K
R6, R22: 10K
R8: 1M
R10: 100Ω
R11: 15K
R12, R21: 5K6
R13: 1M5
R14: 8K2
R15, R32: 22K
R16: 390Ω
R17: 1K8
R18, R19: 3K3
R24: 2Ω2
R25: 10Ω
R27, R28, R29: 470Ω
R30: 12K
R31: 47K
R33, R34, R36, R37: 4K7
Pl: Potentiometer 1K 4mm Achse
P2: Trimmer 1K klein liegend

Kondensatoren

C1: 47kµ/ 16V Elko stehend
C2, C4, C6, C12, C13, C15: 10µ/16V Elko stehend
C3: 1µ Folie
C5: 2µ2 / 16V Elko stehend
C7: 330p Keramik
C8: 47p Keramik
C10: 10n
C14: 220 J 16V Elko stehend
C16: 100µ / 16V Elko stehend
C17, C28, 09, C20, C35: 100n mini
C21: 4n7 Folie
C22: 1n2 Folie
C23: 1n Folie
C24: 100p Keramik
C25 bis C32: 8 mal 100n mini
C33: 10µ / 16V Tantal
C34: 100µ / 16V Elko stehend

Sonstiges

Q1: 32Mhz Quarzoszillator CMOS
BU1, BU2: Chinchbuchse für Printmontage
ST1, S1, J1: 8-polige Pfostenleiste
1 Platine 005 - Easytizer
1 Adressierstecker
4 Abstandsbolzen M3*15
4 Muttern M3
3 Stunden Geduld
S1 mini Kippschalter 1 mal Um

Für das Trigger-Kabel:
bis zu 10m einadrig abgeschirmtes Kabel
1 Taste (Schließer)
1 Chinch-Stecker

Bestückungsplan (vergrößert)


Aus: ST-Computer 10 / 1987, Seite 56

Links

Copyright-Bestimmungen: siehe Über diese Seite