Videoface a Spectrumon

A VIDEOFACE híd a számítógépek és egy videokamera ill. video-magnetofon között.
Bizonyára sokan elmélkedtek már önök között azon, hogyan lehetséges fényképeket, esetleg animációs mozgást eltárolni, előhívni a számítógép segítségével.
A video-képek eltárolására (függetlenül attól, hogy azok kamerából, vagy magnetofonból származnak), a legkézenfekvőbb módszer egy analóg/digitális konverter (A/D Converter), felhasználása. Az A/D konverter olyan elven működik hogy a video-kép jel feszültség szintjét megfelelő bináris számokká alakítjuk és azokat megfelelően felépítve eltároljuk a számítógép memóriájában A konvertálás megvalósításában több probléma is felvetődik:
- számítógépünk maximális képernyő kihasználása
- a számítógép képernyő-felbontása
- a video-lap letapogatási sebessége

Az alapvető problémák megértéséhez feltétlenül szükség van néhány elméleti alap megismerésére. Egy video-kép 625 sorból épül fel, és a letapogatási sebesség 25 másodpercenként. Mint tudjuk szemünk tehetetlensége ezt a 'szaggatást' már nem veszi észre. A régebben elterjedt 8 mm-es házi mozi-film 18 képkockát váltott másodpercenként, még ez is elfogadható érték az emberi szem számára. Visszatérve a video-képhez, fontos megemlíteni, hogy a 625 sorból álló képernyő valójában két fél-képből áll, az egyik fél-képernyő foglalja magában a páratlan számú sorokat, míg a másik fél-képernyő a páros számúakat. A kettő együttes eredménye lesz az un. INTERLACE (összefűzött) képernyő. Ez az INTERLACE képernyő már 625 sorból áll, és ezt látja együttesen az emberi szem. Sajnos a legtöbb számítógép (pl. SPECTRUM) nem képes Interlace képernyő előállítására, ezért a memóriában történő konvertálás nem egyszerű dolog. Az biztos (függetlenül a számítógép tulajdonságaitól), hogy két fél-képernyőt kell külön-külön digitalizálnunk, és tárolnunk. Technikai alapfeltétel, hogy a fél-kép letapogatási sebessége 20 msec időn belül történjen. A legtöbb A/D konverter IC erre a feladatra sajnos nem képes. A FERRANTI cég (amely - mint tudjuk - a SPECTRUM ULA gyártásában is kivette részét) néhány egészen gyors A/D konverter IC gyártását is megoldotta, így ezek az áramkörök már alkalmasak a feladat ellátásara. Ha lassú a konverter, a digitalizált kép zavaros lesz, ez pedig annak a következménye, hogy az egyes fél-képek letapogatási ideje hosszú, így a fél-képek szinkronja elcsúszik.

A holland DATA SKIP cég 1986-ban SPECTRUM-ra is kifejlesztette, majd 1987-ben piacra dobta a VIDEOFACE DIGITISER nevű perifériái, amely lehetővé teszi video-képek SPECTRUM számítógépre való konvertálását. 1987-ben a ROMANTIC ROBOT megvette az angliai forgalmazási jogot; s ma már a kizárólagos forgalmazó szerepét tölti be.
A VIDEOFACE rendkívül egyszerűen kezelhető, formatervezése színvonalas. A perifériához közvetlenül csatlakoztatható video-kamera, vagy egy video-magnetofon. Természetesen a világon sokfele video-csatlakozót ismernek így amennyiben számunkra nem megfelelő az aljzat, úgy fordítókábelről gondoskodnunk kell. A hardware mellé software-t is kapunk, ez egyszerűen betölthető, és automatikusan indul. A képernyőn megjelenik a vezérlő menü, ilyenkor választhatunk. 'Q' megnyomása esetén elkezdődik a video-jel letapogatása. 'SPACE', vagy 'Z' megnyomása esetén a letapogatás befejeződik és a legutolsó 6 képfázis SCREEN$ file formájában eltárolódik a memóriában. Ezek a képek ezután visszahívhatók, melynek eredményeképpen egyszerűbb animációs mozgást generálhatunk a képernyőn.
Az animáció sebessége is állítható. Lehetőségünk van a 6 rendelkezésre álló képernyő bármelyikét külön kimenteni, vagy betölteni (magnetofon felhasználásával).
A software egy BASIC betöltőből és egy gépi kódú részből áll (ez utóbbi a 63232. címtől 1300 byte területet foglal csak el a memóriában). A többi területen tárolódik el a 6 képünk, mely lehet portré, idill, tájkép, stb.
A különös szolgáltatást nyújtó periféria (melynek jelenlegi ára Angliában mindössze 50 Font), hamar megnyerte a felhasználók rokonszenvét, de elsősorban azoknak hasznos, akik otthonukban SPECTRUM számítógépük mellett video-berendezéssel is rendelkeznek.

Tetszőleges video-lejátszó, video-magnetofon, vagy videokamera szabványos kimenő videojelét az interface RCA csatlakozójára kötve az aktuális video kép digitális formában tárolódik a Spectrum memóriájában, illetve megjelenik a képernyőn. Egyidőben 6 egymást követő képfázis tárolására nyílik lehetőség, a felhasználó pedig szabadon eldöntheti, hogy a 6 fázisból melyiket választja. Ezzel a lehetőséggel kisebb animáció is előállítható, ám legfőbb erénye mégiscsak az, ha valakit leültetünk egy videokamera elé, majd portréját kinyomtatjuk a Spectrum-hoz kötött sornyomtatón. Akik jártak 1989. december 2.-án, vagy 3.-án a Műszaki Egyetem főépületében megrendezett Mikrovilág Karácsony-on, azok láthatták is a készüléket működés közben.
A hardware felépítését áttanulmányozva azonnal a szemünkbe ötlik, hogy EPROM nem szükséges a rendszer vezérléséhez. Ez igen nagy előny, hiszen az alkatrészlistában szereplő elemek hazai forgalomban kisebb nagyobb sikerrel beszerezhetők. A PHILIPS IC HC típusú legyen (H = HIGH), a képletapogatási idő biztosítása miatt (34 msec). A rendszer vezérlését tehát software végzi.
A 13 db. integrált áramkört, 1 db. pnp tranzisztort, 3 db. diódát és néhány passzív alkatrészt tartalmazó kis áramkör egyszerűsége, valamint sebessége révén méltán szerzett barátokat szerte a világon a video és a számítógép szerelmeseinek.
A képdigitalizáló alkalmas monokróm, PAL vagy SECAM rendszerű színes videojel digitalizálására. A szabványos videoforások (TV, videomagnó, kamera, számítógép) kompozit videojelének feldolgozására alkalmas.
A kompozit videojel összeadott video, kép és sorszinkronjelet tartalmaz. Ezt a kb. 1V p-p amplitudójú videojelet fogadja az áramkör egy RCA "anya" csatlakozón keresztül. Maga a képdigitalizáló mindössze 1 bites képfeldolgozásra alkalmas. Ez azt jelenti, hogy amplitudómodulált spektrumú analóg videojelet - amely a képtartalomnak megfelelően nagyszámú árnyalatot (gradiációt) tartalmaz - mindössze kétállapotú (1 bit-es) pontok sorozatára bontja. A digitalizálás eredményeképpen kapott kép tehát csupán világos és sötét képpontokat tartalmaz (azaz a kép árnyalatokat nem tartalmaz). Mindez azonban jól illeszkedik ahhoz a tényhez, hogy a Spectrum számítógépen az egyes pontok úgysem színezhetők különböző színekre csak 8x8-as ponthalmazonként. A monitorunk, vagy a televíziónk elektronsugara a képet soronként tapogatja "scan"-eli le. A TV esetében a kép letapogatása két részletben történik. először a kép bal felső sarkából kiindulva a páratlan sorokat (1.3,5,7...) tapogatja le, majd a kép aljáról visszaugorva a bal felső sarokba a páros sorok (2,4,6 ...) letapogatása, megjelenítése következik. Egy komplett kép tehát két, (páratlan / páros) félképből áll, amelyeket 20-20 millisec. alatt visznek át (50 félkép/sec) Egy komplett kép letapogatása tehát 40 millisec. ideig tart (25 kep/sec.). A félképek szinkronizációját páratlan/páros félképváltó jelek teszik lehetővé. A két félkép együttesen 625 sorból illó képet eredményez.
A Spectrum és még nagyon sok számítógép nem ezt az ún. váltottsoros letapogatást használja, hanem másodpercenként 50 teljes képet jelenít meg, igaz ugyan, hogy ez a kép mindössze feleannyi TV sorból áll mint a TV megszokott 625 soros képe. 312,5 sor áll tehát rendelkezésre, azonban ez a Spectrum megjelenítő-rendszerének kialakítása miatt mindössze 192 grafikailag hasznosítható sort jelent. A TV képnek tehát a felénél is lényegesen kevesebb sora használható fel.
A Spectrum képdigitalizáló sajnos nem tesz különbséget az eredeti TV kép páratlan és páros félképeinek letapogatása között és ezért a digitalizált kép véletlenszerűen a páros illetve a páratlan félkép információját 16 pontokból álló oszlopokban együtt tartalmazza. Az eredeti TV képben a páratlan félkép 1 TV sorral feljebb, a páros félkép pedig 1 sorral lejjebb jelenik meg. A digitalizálás 16 pontos oszloponként, a páratlan fél képből, a következő 16 pontos oszlop pedig a páros fél képből készül el. A harmadik oszlop a következő páratlan, a 4. oszlop a következő páros fél képből készül el. stb... Végül elkészült 16 db. 16 pontból álló oszlop, azaz a teljes digitalizált kép, igaz, hogy az egymást követő oszlopok a páratlan és páros sorokból származó információkat egymás mellé helyezik. Így. ami az eredeti TV képben 1 sorral feljebb, illetve lejjebb jelenik meg egymás után, az a digitalizált képben sajnos egymás mellé kerül.

Nézzük meg ezek után, hogy egy TV sor vízszintesen hány pontra bontható fel a képdigitalizáló segítségével?
A digitalizáló ebben is a Spectrum adottságait követi, azaz 256 hasznos pontra bontja a TV sort. Ez nem túl sok pont, azonban már ez is mutatós kepekel eredményezhet!
Mit jelent ez a gyakorlatban?
A TV kép egy sorának letapogatása 64 msec. ideig tart. Ez az idő egy hasznos (display) szakaszból (57 msec.), valamint egy visszafutási szakaszból (7 msec.) áll. A képpontokat a hasznos szakasz időtartama alatt lehetne megjeleníteni, azonban ezt sem tudjuk teljesen kihasználni a képkeret (BORDER) miatt. Az 57 msec.-ből tehát még le kell vonni a BORDER időszakaszát, és a maradék időt 256-al, azaz a képpontok számával el kell osztani.
Ez az idő a képernyőn két egymást követő képpont felrajzolása között eltelt idő, amit raszterpont időnek nevezünk (a reciproka a raszterpont frekvencia), amelyet a digitalizáló áramkörben egy astabil óragenerátor állít elő. Ez az órajel a digitalizáló áramkörében nem kvarcstabil, értéke kb. 12,5 MHz. amelynek felezésével állítják elő a 6,125 MHz.-es raszterpont frekvenciát.

Az áramkör tehát a következőképpen működik:

  1. A kompozit videojel egy 22 mF-os elkó-n keresztül egy szintrögzítő diódával és egy 1 kohmos potenciométerrel megvalósított szinteltoló áramkörre jut. Ezzel eltolható a videojel szintje, melyet egy nagysebességű (H CMOS) 8-bites shift regiszter (és latch) (PHILIPS 74HC4094) soros bemenete kb. a tápfesz. felénél komparál. Ezzel tulajdonképpen az 1-bit-es digitalizálás megvalósult, a továbbiakban az így digitalizált biteket a shift regiszterbe a raszterpont frekvenciával sorosan beléptetjük. Két egymással sorbakapcsolt ilyen 8-bites shift regisztert alkalmaztak a tervezők, tehát 16 digitalizált képpont léptethető be. Ezt az információt először átírják az IC-ben ugyancsak megtalálható latch-regiszterbe (STROBE). Ez a regiszter 8-bites tristate kimenetű, amelynek adatai az OE jellel a 8-bites Spectrum adatbuszra helyezhetők.
    Azt, hogy melyik 8 bit olvasható be az adatbuszra, agy LS 138-as címdekóder biztosítja:
         IN 5FH - LOW BYTE INPUT
         IN 5BH - HIGH BYTE INPUT

    A digitalizáló egy TV sorperiódus alatt (a számítógép kis sebessége miatt) nem digitalizálja le az egész TV sor tartalmát (256 pontra), hanem csupán a legelső 16 pontot. Ezután a fenti módon két INPUT utasítással beolvassa és elhelyezi a Spectrum memóriájába.A második TV sor alatt ugyanez történik, azaz a második TV sornak az első 16 pontját kapjuk, és dolgozzuk fel.
    Ugyanez történik a 3., 4., ... stb. TV sorokban is, így egy teljes TV kép előrefutás végén annak csupán balról az első 16 pontos oszlopa készült el. Eredetileg egy kép lerajzolása 20 millisec. ideig tart a visszafutással együtt, tehát ezidő alatt nem a teljes kép, hanem annak csupán 1/16-od része készült el!
    A következő képelőrefutás alatt mindez megismétlődik, de most minden TV sorban a második 16 pont digitalizálása, valamint Spectrum általi feldolgozása történik meg. A kép végén elkészült a második 16-os oszlopa a digitalizálásnak.
    Ilyen módon tehát 16 TV képváltás alatt, azaz 16x20 millisec. alatt készül el egy teljes digitalizált kép. Ez a 0,32 másodperc alatt elkészülő digitális képelőállítás nem tekinthető túl lassúnak, így alkalmas arra, hogy akár kamera akár más videojelforrás képét eredményesen digitalizálhassuk, feltéve, hogy az
    egymást követő képváltások alatt a képtartalom nem változik jelentősen meg.

  2. Az áramkör bemenetére érkező kompozit videojel másik útja egy 150 nF-os kapacitáson keresztel egy PNP tranzisztor bázisára vezet amelynek a feladata az, hogy a videojelet a szinkronjelről leválassza és csupán a szinkronjeleket (kép- és sor) engedje tovább annak invertálása és erősítése útján (tranzisztor "c") Jelformálás után a kompozit szinkronjel az IC7/1 kimeneteről egy 74LS74 (dual D flip/flop) clear bemenetére kerül, ami engedélyezi az IC/1 astabil multivibrátort. Ennek 12,5 MHz-es kimenőjelét egy IC2 QA flip/flopja felezi és ezt a 6,125 MHz-es jelet használjuk arra, hogy a digitalizáló két sorbakapcsolt shift regiszterét léptessük.
    Ez a biztosítéka annak, hogy a digitalizálás és léptetés szinkronizáltan történjék. A kompozit szinkronjelből egy 1 kohm-os ellenállásból, valamint egy 22 nF-os kapacitásból álló integrálótag választja le a képszinkronjelet, amely az IC7/3 kimenetén jelenik meg, és aktív állapotában ("H") ki, inaktív állapotában ("L") bekapcsolja a zöld LED diódát jelezve a szinkronjel jelenlétét számunkra, másrészt pedig az IC6/1-gyel a számítógép adatbuszának D2-es bit-jén beolvashatóvá teszi a képszinkronjelet a Spectrum számára:
         Y2=0  IN 78H       D0, D2 - beolvasása
    A Spectrumon futó software számára a képszinkronjel jelzi, hogy új fél kép letapogatása kezdődik el. Ugyanakkor IC3/2 clear miatt IC3/Q2 "L" lesz, ami a piros LED dióda bekapcsolásával vizuálisan is jelzi, hogy kezdődik a kép letapogatása: azaz a "scan szakasz". Arra a kérdésre a választ, hogy mikor érhető el a számítógép számára a shift regiszterek aktuális 16 bites adata, azt a fenti input utasítás során beolvasott D0 bit adja meg. IC11 BORROW-jának lefutó éle IC4-en keresztül IC5/2 Q2-ét az órajel bemeneten keresztül "H"-ba állítja, és ezzel beírja a shift regiszterek 16 bit-jét (IC13, IC12) latch regiszterébe, tehát az aktuális 16 bit a buszra beolvasható. Ezzel egyidejűleg az óra-generator IC5/2 (Q2 invert) "L" ertéke miatt leáll. Ismét elindítani mar csak a következő szinkronjel fogja. Természetesen a képváltásokat figyelni kell (D2 bit), és azt is meg kell határoznunk, hogy vízszintesen hányadik 16 pontot lehet éppen beolvasni. Ezt a célt szolgálják az IC9, valamint az IC11-as 4 bit-es programozható bináris előre/hátra számláncok, amelyek segítségével az is lehetővé válik, hogy a betöltött kezdeti értékektől függően a digitalizált kép a display-n jobbra-balra (IC9) valamint fel-le (IC11) mozgatható legyen.
    Így az eredeti TV kép a Spectrum border által takart ablakban elmozdítható és így a kép kívánt része látható. A képdigitalizálóhoz tartozó program a klaviatúra '5'-ös billentyűjének a megnyomásakor a képet a Spectrum ablakban balra, a '8'-as billentyű jobbra (IC9 load), a '6'-os billentyű le, a '7'-es billentyű felfelé (IC11 load) mozgatja.
    A számítógépnek az IC9-et 1 fél képen belül minden TV sorban ugyanazzal a kezdőértékkel kellene töltenie (az aktuális 16 oszlop), de erre nem lenne ideje, ezért alkalmaztak egy IC10 jelű 4 bites latch regisztert, amelyet így félképváltásonként kell csak egyszer betölteni a képvisszafutás alatt, ennek az
    időpontját a software a D2-es bit ciklikus tesztelésével állapítja meg. Az IC9 egy fél kép váltás alatt ebből a latch-bo/ "táplálkozik", azaz soronként ebből a latch-ból töltődik a sorszinkronjel hatására egy fél kép alatt mindig ugyanaz a kezdőérték a számlálóba. A számítógép tehát IC10-et képvisszafutás alatt tölti fel a fél kép számtól, valamint az '5'-ös, ill. '8'-as billentyűk állapotától függő kezdőértékkel, ami meghatározza a digitalizálás vízszintes (oszlop) pozícióját és lehetőséget ad a képnek az ablakban történő vízszintes elmozdítására is.
    IC11 számlálónál a kezdőérték betöltése képvisszafutás alatt valósítható meg szintén a D2-es bit figyelésével (software).
    A betöltött számértéktől függően ('6'-os, '7'-es billentyű), a digitalizált kép az ablakban egész számú TV sorral mozdul felfelé, vagy lefelé.
    Az áramkörben az IC2 (4 bites bináris előre/hátra számlánc az IC3/1-gyel együtt egy frekvencia-osztót alkot, amely az áramkör időzítéséhez szükséges alapvető órajeleket állítja elő. IC2-t a szinkronjelek alaphelyzetbe állítják (CLEAR). IC2 QA kimenetén az eredeti (12.5 MHz-es) órajel fele: 6.125 MHz jelenik meg, ami a digitalizáló raszterpont frekvenciája. Ezt az órajelet kapja az IC12, IC13 shift & latch áramkör, azaz ezzel a frekvenciával lépteti be a komparált 8 + 8 - 16 bitet a shift regiszterbe az áramkör.
    IC2 QD kimenete QA frekvenciáját 1/8 aranyban leosztja, IC3/1 pedig ezt még tovább felezi, azaz Q1 kimenete a digitalizált 16 pontokat számlálja.
    IC5/1 élvezérelt D flip-flop órajelét IC9 borrow-ja alkotja, IC5/1 Q1 kimenete viszont IC3/1 Q1 jelét IC4/1-en keresztül engedélyezi. Így IC 4/2 6-os kimenetén egy olyan léptető jelet kapunk, amelynek fázisa IC9 tartalmától függ. IC11 ezt egész számú TV sorperiódus idővel késlelteti.
    Végeredményben IC11 borrow-jának lefutó éle (amely leállítja IC1/1 órajelgenerátort) mindig az aktuális 16-os oszlop végén (IC9) és mindig az adott (IC 11) TV sor késleltetéssel jelenik meg. Összefoglalva tehát nézzük át, hogy a képdigitalizálónál milyen input/output utasításokat használhatunk:
Y0 = 0 IN 5BH 8 magas helyértékű képpont beolvasása
Y1 = 0 IN 5FH 8 alacsony helyértékű képpont beolvasása
Y2 = 0

IN 7BH D0,D2 beolvasása, piros LED bekapcsolása

Y5 = 0

OUT 5FH D0-D3 IC11 töltése (függőleges mozgatás)

Y6 = 0

OUT 7BH SCAN-szakasz vége, piros LED kikapcsolása

Y7 = 0

OUT 7FH D4-D7 betöltése IC10 latch-be (vízszintes oszloppozíció és mozgatás)

Azok számára, akik kizárólag saját célra az áramkört meg szeretnék építeni, tanácskent annyit, hogy a 74 HC 94 IC nem helyettesíthető az egyébként azonos funkciót megvalósítható CD4094-gyel annak lassúsága miatt, de a tapasztalatok szerint a TC4094 BP TOSHIBA áramkörrel igen. Sok sikert a megépítéshez!
Reméljek, hogy ezzel a kis áramkori ismertetéssel segítségére lehettünk az érdeklődőknek!

Beültetési rajz

NYÁK-rajz (300 DPI-vel nyomtatva 1:1 mérethű!)

Kapcsolási rajz (Spectrum Világ)

Kapcsolási rajz

Működtető program

IC-k 1 db 74LS125
2 db 74LS00
2 db 74LS74
3 db 74LS193
1 db 74LS132
1 db 74LS138
1 db 74LS175
2 db PHILIPS
       PC74 HC4094
(IC6)
(IC4, IC7)
(IC3, IC5)
(IC2, IC9, IC11)
(IC1)
(IC8)
(IC10)
(IC12, IC13)
Tranzisztor 1 db BC179 (T1)
Kondenzátorok 3 db 22 mF/16V ELKO
1 db 22 pF kerámia
3 db 150 nF/65 V
1 db 22 nF
1 db 920 pF
(C1, C2, C3)
(C4)
(C5, C6, C7)
(C8)
(C9)
 
Diódák 1 db zöld LED
1 db piros LED
1 db 1N4148
(D1)
(D2)
(D3)
Ellenállások 1 db 1 kOhm pótméter
1 db 75 Ohm/ 0,1 W
1 db 15 kOhm/ 0,1 W
5 db 1 kOhm/ 0,1 W
2 db 390 Ohm/ 0,1 W
1 db 120 kOhm/ 0,1 W
1 db 820 Ohm
(R1)
(R2)
(R3)
(R4-R8)
(R9, R10)
(R11)
(R12)
Egyéb 1 db 56 pól. csatl.
1 db RCA aljzat
(CS)
(RCA)
Spectrum Világ