zum Onlineshop  Onlineshop
Home Sitemap Contact Imprint
Hardware
Frame Grabber
Motor controller
Special boards
Software
Image processing tools
Motion Analysis
Image Data Bases
Technologies
System solutions
Biomedical equipment
Custom designed
HaSoTec GmbH
Burgwall 20
D-18055 Rostock
Tel.: +49 381 4909834
Fax: +49 381 4909835
Online Shop
Download
Support / FAQ
Inquiry / Contact
Company
Support / FAQ
768x576

Das Beispiel des Kapitels 1 wird nachfolgend auf die volle PAL-Auflösung geändert. Dabei wird gezeigt, wie 2 aufeinanderfolgende Halbbilder digitalisiert werden.

Das 384x288 Beispiel benötigte lediglich ein digitalisiertes Halbbild, um die gewünschten Bilddaten zu erhalten. Da Videosignale interlaced in zwei Halbbildern übertragen werden, ist die Digitaliserung eines Vollbildes ein wenig aufwendiger.

 

Nachdem das gewünschte Format mit den Funktionen 50,51,52 eingestellt wurde wird zunächst auf das gerade Halbbild gewartet:

cx=1;

while (cx!=0)
   {
   FG30DRV (57,&cx,&dx);
   cx&=0x2000;
   }

Die Digitalsierung wird jetzt gestartet, damit ist das nächste Halbbild ein ungerades Halbbild.

FG30DRV (53,&cx,&dx);

Nun wird das erste Halbbild aus der Karte in den Hauptspeicher übertragen. Dabei wird jede zweite Zeile frei gelassen. Der Wert xp.zoffset wird am Ende jeder Zeile zusätzlich zum Bilddatenpointer addiert. Mit entsprechenden xp.zoffset- Werten ist auch eine direkter Transfer in den Speicher der Grafilkkarte möglich. Für eine Bildschirmauflösung von 1024x768 Pixel mit 32K Farben würde xp.zoffset 768*2+256*2+256*2 betragen.

 
xp.ptr=pimg;  //odd halfframe Adresse TopLeft
xp.dx=768;  // Breite in Pixel
xp.zcount=288; // Zeilenanzahl
xp.zlen=768*2; // Zeilenoffset in Bytes
xp.zoffset=768*2; // Zeilenlänge in Bytes
 
DDRCO15 (&xp);
 

Zur Sicherheit werden zwei zusätzliche Zeilen digitalisiert. Über Funktion 116 ist ein Wert für die Anzahl blind zu lesender Zeilen abfragbar. Sollte eine Videoquelle eine nicht normgerechte Zeilenanzahl haben, so ist mit Funktion 115 die Lage des zweiten Halbbildes verschiebbar.

FG30DRV (116,&cx,&dx);//interlaced value
cx=cx*384;
dx=0;
FG30DRV (58,&cx,&dx);//read [interlaced value] lines blind
 

Jetzt wird das zweite Halbbild in die frei gelassenen Lücken transferiert.

xp.ptr=pimg+768*2; //even halfframe
DDRCO15 (&xp);
 

Hier das komplette Beispiel zum download:768x576x555.zip

nach obennach oben
©2017 HaSoTec