NL8300872A - Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen. - Google Patents

Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen. Download PDF

Info

Publication number
NL8300872A
NL8300872A NL8300872A NL8300872A NL8300872A NL 8300872 A NL8300872 A NL 8300872A NL 8300872 A NL8300872 A NL 8300872A NL 8300872 A NL8300872 A NL 8300872A NL 8300872 A NL8300872 A NL 8300872A
Authority
NL
Netherlands
Prior art keywords
point
processor
relevant
polygon
data structure
Prior art date
Application number
NL8300872A
Other languages
English (en)
Original Assignee
Philips Nv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Nv filed Critical Philips Nv
Priority to NL8300872A priority Critical patent/NL8300872A/nl
Priority to DE3407983A priority patent/DE3407983C2/de
Priority to GB08405937A priority patent/GB2136996B/en
Priority to FR848403682A priority patent/FR2542470B1/fr
Priority to JP59044853A priority patent/JPS59172068A/ja
Priority to US06/589,264 priority patent/US4631690A/en
Publication of NL8300872A publication Critical patent/NL8300872A/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Description

. , *, * 1 ESN 10.604 1 N.V. Philips' Gloeilampenfabrieken te Eindhoven
Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde ob j ekt-elementen
De uitvinding betreft een multiprocessor-rekenmachinesysteem voor het tot een afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objektelementen, welk systeem bevat een aansluiting voor een gastheerprocessor (host) om op die aansluiting de informatie van de 5 objektelementen te ontvangen ter opslag in een ontvangstgeheugen, een door het ontvangstgeheugen gevoed puntprocessorsysteem om uit de datastruktuur van de objektelementen per beeld de beeldpuntinformaties te berekenen ter aflevering op een aansluiting voor een afbeeldelement.
Als algemene stand van de techniek zij genoemd het boek door W.M.Newman 10 en R.F. Sproull, Principles of interactive computer graphics, ISBN 0-07-046338-7, Mc Grew Hill, 1981. Dit boek geeft onder meer op blz.137-142 verschillend georganiseerde data-strukturen, en in Fig.10-11 een hierarchische datastruktuur. Voorts geeft blz.421, Fig.26-4 een multiprocessorsysteem als gereleveerd, met onder meer een centrale 15 processor, een matrixvermenigvuldiger, en een afbeeldingsprocessor.
Appendix I, blz 481-489, geeft een overzicht over vektoren en matrices.
Bladzijden 315-320 geven de vorming en het gebruik van zogenoemde
Bezier-curves die hierna uitgebreider worden besproken. Onder objektelementen worden verstaan kwantitatieve modellen van ruimtelijke of 20 vlakke entiteiten zoals vlakken, lichamen en gekompliceerder strukturen.
Deze objektelementen zullen nader worden uitgelegd aan de hand van de
Figs.la-le.
Het voordeel van een hierarchische struktuur is eenvoudige modificeerbaarheid van een op een laag niveau van de hierarchische 25 struktuuur gelegen objektelement, zonder dat de struktuur als geheel verandert, en veelal ook in de multipele gebruiksmogelijkheid op een hoger niveau van objektelementen die op een lager niveau zijn gedefinieerd. Dit laatste geldt met name voor een tweedimensionale situatie, omdat bij het visualiseren daarvan uitsluitend lineaire 30 transformaties optreden. De gastheerprocessor nu levert ruimtelijkheidsbetrekkingen tussen de objektelementen, zoals relatieve of absolute posities. Ook kan de gastheerprocessor nieuwe objektelementen 8300872 . * < * PHN 10.604 2 aanleveren of bestaande verwijderen. Het is volgens de bekende techniek veelal een probleem dat eerst bepaald moet worden welk gedeelte van de objektelementen er binnen het afbeeldingsraam valt, het zogenoemde "dippen”. Het zal blijken dat volgens de hierna te ontvouwen procedures 5 dit pas aan het einde van de behandeling van het betreffende punt bepaald wordt, waarbij het betreffende punt voorbijgaand als het centrum van een coördinatenstelsel wordt beschouwd.
In een eenvoudig geval kan de beeldpuntgeneratie synchroon met de aftasting van het beeld in het afbeeldelement plaats vinden. Het 10 afbeeldelement kan bijvoorbeeld werken op basis van een lijnsgewijs afgetaste televisiebuis; het kan echter ook een matrix van meerkleurige LED- of plasma-elementen betreffen. De uitvinding beperkt zich tot volledig afgetaste afbeeldelementen, waarbij voor elk beeldpunt de beslissing ”kleur” of "geen kleur” genomen moet worden als het 15 betreffende beeldpunt aan de beurt komt. De uitvinding betreft met name niet zogenoemde vektor-gevormde beelden, die geheel uit geschreven vektor-lijnen bestaan en waarbij de volgorde van aftasten der beeldpunten op willekeurige manier kan plaats vinden.
20 Het is een doelstelling van de uitvinding om een snelle beeldpuntgeneratie te bewerkstelligen, een en ander met een arrangement van eenvoudige processoren, en zonder dat een zeer intensief verkeer noodzakelijk zij tussen de gastheerprocessor en het arrangement van processoren, respektievelijk tussen de processoren onderling. De 25 uitvinding realiseert de doelstelling doordat hij het kenmerk heeft, dat een elementair niveau van de datastruktuur objektelementen als uitsluitend door de beschrijvende punten van derzelver polygoonzijden gedefinieerde Bezier-polygonen bevat, dewelke per naasthoger hierarchisch niveau door ruimtelijkheidsbetrekkingen (relatieve transformaties) 30 verbonden zijn tot hierarchisch hogere elementen, totdat op een overkoepelend hierarchisch niveau een tweedimensionale samenhangstruktuur ontstaat die middels objektelementen en planaire ruimtelijkheidsbetrekkingen is opgeslagen in het ontvangstgeheugen, dat het puntprocessorsysteem bevat een arrangement (array) van 35 parallelgeschakelde puntprocessoren die via een ingangsnetwerk aan de aansluiting voor het ontvangstgeheugen zijn verbonden, dat elke puntprocessor beeldpuntgenererend werkt voor de beeldpunten van een enkelvoudig samenhangend deelbeeld op het afbeeldelement, en wel enerzijds als struktuurprocessor om bij een voorafbepaald beeldpunt 8300872 * * ΡΗΝ 10.604 3 achtereenvolgens vanaf het overkoepelende hierarchisch niveau van de datastruktuur niveausgewijs de bijbehorende applikatie-coordinaten binnen het objektelement van dat niveau te bepalen totdat ofwel voor het betreffende objektelement irrelevantie voor het betreffende beeldpunt 5 wordt gedetekteerd ofwel een of meer elementaire objektelementen zijn bereikt, dat anderzijds, gegeven als genoemde polygonen gedefinieerde elementaire objektelementen , elke puntprocessor werkt als polygoonprocessor om bij elk voorafbepaald beeldpunt voor elk relevant polygoon een binaire binnen/buiten-informatie te berekenen ter vorming 10 van een voor dat beeldpunt geldende lijst van elementaire objektelementen en bijbehorende kleurinformaties, voor welke objektelementen de ,fb innen"-inf o ma tie geldt, en dat voorts elke puntprocessor werkt als prioriteitsprocessor om uit genoemde lijst middels voor elk elementair objektelement geldende prioriteitsinformatie de voor dat beeldpunt te 15 implementeren kleur te bepalen, en dat de aansluiting voor het afbeeldelement een cyclisch aftastbare multiplexer bevat om de door de puntprocessoren gevormde kleursignalen te ontvangen middels een cyclisch aktiveerbare aftasting.
De uitvinding baseert zich op het inzicht, dat het voordelig is om per 2Ö beeldpunt telkenmale gelijksoortige en eenvoudige berekeningen te repeteren, waartoe dan met minder gekompliceerde en anderzijds specifiekere en dus snellere bouwstenen kan worden volstaan. Bovendien ! wordt de bewerking vanaf het hoogste niveau van de hierarchische j datastruktuur begonnen; het blijkt dat bij deze bewerkingsrichting een j 25 eenvoudige struktuur ontstaat in de bewerkingen. Het bovenstaande spreekt des te meer als elke puntprocessor slechts werkt op een deelbeeld van het totale beeld, zodat de parallellisatie tot een vergevorderd stadium wordt gerealiseerd en daardoor ook de verwerkingssnelheid wordt verhoogd.
50 Het is voordelig als in de polygoonprocessor per polygoonzijde van een polygoon een iteratieve beslissingsstruktuur is geïmplementeerd, waarbij per iteratieslag, een door een tenminste gedeeltelijk in het beeld gelegen polygoonzijde, respektievelijk polygoonzijdedeel, gegenereerd parallellogram wordt vergeleken met de plaats van het aktuele beeldpunt 55waarover te beslissen staat, dat met het beeldpunt binnen het parallellogram de polygoonzijde, respektievelijk het polygoonzijde-deel wordt gedeeld, totdat in een elementiare iteratieslag eventueel het samenvallen van beeldpunt en diagonaal wordt geconstateerd (ATSXDE), maar dat ten overige, met het aktuele beeldpunt buiten het parallellogram in 83 0 0 8 7 2 4 ( « PHN 10.604 4 kwestie, respektievelijk bij het niet-samenvallen van beeldpunt en diagonaal in een elementaire iteratieslag, het aantal snijpunten van alle polygoonzijden van het betreffende polygoon met een half-oneindige rechte door het aktuele beeldpunt wordt geteld en bij een oneven aantal een 5 ,,omslotenMinformatie (INSIDE) voor dat beeldpunt wordt gevormd, en uit de T,omsloten"-informatie de "binnenT,-informatie wordt gevormd. Dit blijkt een eenvoudig te implementeren iteratie, zeker als in het geval van rechte polygoonzijden het verdelen tot halveren wordt vereenvoudigd; de iteratie konvergeert gemiddeld zeer snel. Daarbij is het voordelig als 10 uit genoemd samenvallen eveneens genoemde Mbinnen"-informatie wordt gevormd, doch ten overige genoemde "buiten^-informatie. Zo wordt de omtrek van het polygoon bij het binnen- gebied gerekend; anderzijds kan deze omtrek ook tot het buitengebied gerekend worden. Een voordelige implementatie wordt bereikt voor een afbeeldelement waarin de beeldpunten 15 volgens rijen en kolommen zijn georganiseerd, de zijden van genoemd parallellogram met rijen, respektievelijk kolommen evenwijdig zijn en genoemde halfoneindige rechte met een der zijden. Zo wordt het testen in de puntprocessoren vereenvoudigd· 20 Het is voordelig als de verzameling der puntprocessoren verdeeld is in deelverzamelingen met per deelverzameling een hulpgeheugen, dat binnen een deelver- zameling de puntprocessoren werken op een gemeenschappelijk deelbeeld, dat tussen het ontvangstgeheugen en de daar- mee via een cyclisch aftastbare demultiplexer verbonden hulpgeheugens een 25 reduktieprocessor is geschakeld om uit de hierarchische datastruktuur ach- tereenvolgens vanaf het overkoepelend hierarchisch niveau telkens niveausgewijs de relevantie van het betreffende objektelement voor het betreffende deelbeeld te bepalen totdat een irrelevantie wordt gedetekteerd, respektievelijk totdat de elementaire objektelementen zijn 20bereikt om slechts het deel van de datastruktuur waarvoor tenminste een daarin verbonden elementair objekt- element als relevant werd gedetekteerd inclusief de verzameling der als relevant gedetekteerde elementaire objektelementen naar het betreffende hulpgeheugen over te voeren. Zo wordt de parallellisatie als het ware in twee niveaus 35 doorgevoerd, waardoor bij beperkte kosten toch een vergaande versnelling wordt bewerkt. Het door elke puntprocessor te bewerken deel van de hierarchische datastruktuur is nu slechts beperkt, zodat de verwerkingssnelheid door de puntprocessoren sterk toeneemt. Door de beperkte omvang van het te bewerken deel van de datastruktuur kan dit ook 8 3 C ö 6 7 2 ΡΗΝ 10.604 5 Ί Λ · zonder bezwaar gemultipliceerd worden: een bepaald objektelement kan tegelijk in meerdere hulpgeheugens aanwezig zijn. Door de invoering van bulpgeheugens behoeft elke puntprocessor nog slechts zelden een beroep te doen op het ont- vangstgeheugen. Competitieve en onvoorspelbare 5 leesakties vanuit de punt- processoren in het ontvangstgeheugen worden hierdoor vermeden. Ook behoeven de puntprocessoren onderling geen kommunikatie waardoor de struktuur van de informatievoorziening eenvoudig wordt: er zijn bijvoorbeeld geen onderbreek- mechanismes tussen de puntprocessoren en ook geen arbitrage tussen verschil- lende aanvragers 10 en mogelijke wederzijdse blokkering tussen verschillende aanvragers.
Het is voordelig als genoemde relevantie bestuurd wordt door een ten minste gedeeltelijk samenvallen van het betreffende deelbeeld en een per | objektelement van de datastruktuur in het ontvangstgeheugen opgeslagen en 15 dat objektelement omsluitend rechthoekig gebied. Dergelijke omsluitende rechthoeken leveren weer een eenvoudige rekenkundige verwerking, zodat de verwerking sneller kan worden gerealiseerd.
! |
Het is gunstig als tussen de verzameling van puntprocessoren en het 20 afbeeldelement een dubbel beeldbuffer is geschakeld met een ontvangstdeel om kleurinformatie betreffende een geheel beeld van de puntprocessoren te onvangen en een afgiftedeel om de kleurinformatie betreffende een geheel beeld te bevatten en aan het afbeeldelement af te geven totdat het ontvangstdeel na algehele vulling met de informatie van een beeld als 25afgiftedeel wordt omgeschakeld en het tot dan fungerende afgiftedeel als ontvangstdeel. Zo kan aan een beschouwer een continue afbeelding worden gegeven, omdat een eenmaal opgeslagen beeld een aantal malen kan worden afgetast. Flikkereffekten en dergelijke worden dan vermeden.
30Het is gunstig als in het ontvangstgeheugen elk elementair objektelement van een prioriteitsindikatie is voorzien. Dit is een eenvoudige implementatie. Het prioriteitsgegeven kan een getal zijn, waarbij bijvoorbeeld lagere getallen voor hogere gaan.
350m een driedimensionaal georganiseerde datastruktuur af te beelden in een centrale projektie of parallelprojektie, is het gunstig als voor de daarin als genoemde polygonen gedefinieerde elementaire objektelementen een impliciete prioriteitsindikatie is gegeven door de vergelijkingsparameters van het bevattingsvlak dat lokaal het betreffende 8300872 PHN 10.604 6 % »
I I
elementaire objektelement bevat en dat in het geval van na projektie op het tafereel lokaal overlappende polygonen de parameterwaarden van de snijpunten van de lokaal bijbehorende bevattingsvlakken met de geparametriseerde rechte langs de projektierichting en door het 5 betreffende projektiepunt bij vergelijking daartussen de relatieve prioriteit expliciet geven. Deze vergelijkingstest behoeft in de prioriteitsprocessoren pas geaktiveerd te worden als in de struktuur/polygoonprocessoren een overlapping wordt gedetekteerd tussen twee elementaire objektelementen. Bovendien worden hierbij geen 10 beperkingen opgelegd in de zin dat geen concave polygonen zouden mogen optreden of anderzijds geen onderling snijdende polygonen.
De uitvinding brengt met eenvoudige middelen tot nu toe moeilijk te realiseren puntgerichte bewerkingen in praktijk, zoals bijvoorbeeld het 15 kombineren(mengen) van verschillende kleuren volgens een prioriteitsvoorschrift. In een tweedimensionale situatie behoeft de prioriteit niet meer door een volgorde-definitie bepaald te zijn maar kan onafhankelijk voor elk elementair objektelement worden gekozen. In een driedimensionale situatie zijn geen moeilijk te implementeren 20 sorteeralgorithmes tussen de objektelementen als totaal nodig, maar kunnen de prioriteiten door een puntsgewijs georganiseerde berekening eenvoudig worden afgeleid.
KORTE BESCHRIJVING DER FIGUREN 25
De uitvinding wordt in gedeelten beschreven, namelijk achtereenvolgens de hierarchische datastruktuur der objektelementen, de achtereenvolgende fenomenologische bewerkingen op deze objektelementen, een globale beschrijving van het rekenmachinesysteem, de bewerkingen in de 30 reduktieprocessor, de bewerkingen in de polygoonprocessor, de realisatie van een polygoonprocessor, en aanvullingen voor een driedimensionale situatie.
Fig.la geeft enkele voorbeelden van door rechte lijnen 35 begrensde elementaire objektelementen;
Fig.lb-le geven details over het vormen van zogenoemde
Bezier-polygonen, waarvan de zijden door Bezier-curven van hogere orde gevormd kunnen zijn;
Fig.2 geeft een voorbeeld van een tak uit een hierarchische 8300872 m * 0 ΗίΝ 10.604 7 datastruktuur van. objektelementen;
Fig.3 geeft uitgebreider voorbeeld van een hierarchische datastruktuur;
Fig.4 geeft een symbolisch schema van een multiprocessorsysteem;
Fig.5 geeft de organisatie van een af te beelden beeld binnen een 5 tweedimensionale afbeeldingsruimte;
Fig.6 geeft een meer gedetailleerd schema van een multiprocessorsysteem;
Fig.7a,7b geven een stroomdiagram voor het selekteren van objektelementen in een reduktieprocessor; 10 Fig.8 geeft een programma voor het bewerken in een polygoonprocessor;
Fig.9a,9b geven daarbij enkele formules in figuurvorm;
Fig.l0a-10f illustreren enkele mogelijkheden bij het programma van Fig.8; 15 Fig.11 geeft een blokschema van een polygoonprocessor voor uit rechte lijnen opgebouwde Bezier-polygonen;
Fig.12 geeft een blokschema van een polygoonprocessor voor
Bezier-polygonen waarvan de zijden gevormd worden door Bezier-curves van ten hoogste derde orde.
20
OBJEKTELEMENTEN EN DATASTRUKTUUR
Fig.1 geeft enkele voorbeelden van elementaire, uit rechte lijnen opgebouwde objektelementen; eenvoudshalve wordt vooreerst een planaire 25 situatie beschouwd. Element 30 is een konvex polygoon, dit kan in de datastruktuur opgenomen worden als een keten (string) van gegevens, vermeldende achtereenvolgens: de naam van het objekt, in de vorm van een identifikator, die mede het aantal hoekpunten geeft, in dit geval dus "zes", vervolgens een rij van zeven hoekpunt-informaties, namelijk ' 30 achtereenvolgens het starthoekpunt, het bij het volgen van de uurwijzervolgorde (rechtsom, of daarentegen linksom) eerstvolgende hoekpunt en de achtereenvolgende verdere hoekpunten, totdat het starthoekpunt als laatste voor de tweede maal optreedt. Elk hoekpunt wordt gegeven door zijn relatieve coördinaten ten opzichte van een 35referentiepunt binnen het objektelement waarbinnen het betreffende elementaire objektelement is verbonden. De wijze van informatieopslag op systeemniveau in het oorsprongsgeheugen, bijvoorbeeld volgens een segment-organisatie, is niet specifiek voor de uitvinding en wordt niet nader besproken. Door de arcering is aangegeven dat de betreffende 8300872 PHN 10.604 8 veelhoek een binnengebied met een bepaalde kleur bezit. Hierbij kan het buitengebied ofwel kleurloos zijn, ofwel een andere kleur bezitten. In dit laatste geval kan ook juist het binnengebied van het polygoon de achtergrondkleur bezitten.
5 De omtrek van het polygoon wordt in het ultvoeringsvoorbeeld tot het binnengebied gerekend. Op zichzelf is deze keuze willekeurig. Voorts bevat de informatie van het betreffende polygoon nog een prioriteitsgegeven. Als twee polygonen een punt in het binnengebied gemeenschappelijk hebben kan het polygoon met lage prioriteit afgedekt 10 worden door een polygoon met hogere prioriteit. Het is echter ook mogelijk dat een mengkleur ontstaat. Er wordt op gewezen dat er slechts twee kleuren voor het betreffende polygoon relevant zijn en dat geen lijnen met als het ware oneindig kleine breedte optreden. Als in een beeld een lijn moet worden aangegeven wordt deze gerealiseerd als een 15 smal polygoon. Dit heeft het voordeel dat bij toenemende schaalverkleining de betreffende lijn automatisch steeds dunner zal worden en uiteindelijk door onderbemonstering(undersampling) verdwijnt, zonder dat een extra algorithme nodig is voor het behandelen van (contour)lijnen.
20
Element 32 is op overeenkomstige wijze een polygoon met acht hoeken en is gedeeltelijk konkaaf. Voor het overige gelden dezelfde zaken als opgemerkt ten aanzien van element 30.
25 Element 31 is een andere kategorie van polygoon. Dit kan enerzijds genoteerd zijn als een zeshoek met twee samenvallende hoekpunten; dit wordt dan op dezelfde manier als de eerder genoemde polygonen behandeld.
Anderzijds kan het betreffende polygoon ook genoteerd zijn als een vierhoek, waarvan twee zijden elkaar snijden. Steeds krijgt nu het 30 binnengebied, inclusief de contour, een andere kleur dan het buitengebied.
Op overeenkomstige manier kan element 33 genoteerd zijn als een vijfhoek; zoals aangegeven is een deel van het omsloten gebied als 35niet-binnengebied gedefinieerd, doordat geen arcering is getoond.
Ditzelfde is gebeurd bij element 35. Het is duidelijk dat door een ander algorithme dan dat wat in de voorkeursuitvoering besloten ligt ook andere afspraken voor het kleuren van dergelijke gecompliceerdere polygonen mogelijk zijn. Met name kan de contour van een polygoon de 8300872 » * * · EHN 10.604 9 achtergrondkleur krijgen.
Fig.lb-le geven details over het vormen van zogenoemde Bezier-polygonen, waarvan de zijden door Bezier-curven van hogere orde gevormd kunnen zijn.
5 Fig.lb geeft de formule van dergelijke Bezier-curves, nadere details over het fenomenologische gedrag van deze curves zijn gegeven in de geciteerde literatuurplaats- Een Bezier-curve van de orde n=l is een recht lijnstuk tussen de punten p0 en pl die als eindpunten werken. In de hier gebruikte terminologie zijn dit de beschrijvende punten van dit lijnstuk. De derde 10 en vierde regels geven respektievelijk Bezier-curves van tweede en derde orde. Op de derde regel zijn p0 en p2 de eindpunten van een parabool, het punt pl ligt niet op de parabool. Op de vierde regel zijn pO en p3 de eindpunten van de curve, de punten pl,p2 liggen niet op de curve. Het is gebleken dat met de gegeven gevallen een veelheid van mogelijkheden 15 realiseerbaar is. Fig.lc geeft het vormen van een Bezier-curve van eerste orde. De twee beschrijvende punten zijn 300 en 302. Het lijnstuk wordt in twee gelijke delen gedeeld door het punt 304. De helften worden respektievelijk in twee gelijke delen verdeeld door de punten 306 en 308.
Fig.ld geeft het vormen van een Bezier-curve van tweede orde. De drie | 20 beschrijvende punten zijn 310, 312 en 314; deze drie punten bepalen dus twee Bezier-curves van eerste orde. De respektievelijke lijnstukken worden in telkens twee gelijke delen verdeeld door de punten 316,318. Het door laatstgenoemde punten gevormde lijnstuk wordt in twee gelijke delen verdeeld door het punt 320. Men kan bewijzen dat dit laatste punt een 25 punt van de betreffende Bezier-curve van tweede orde is. Door de betreffende bewerkingen te herhalen kan een reeks van punten worden bepaald die de betreffende Bezier-curve telkens in kleinere stukken delen: De punten 310,316 en 320 vormen namelijk de beschrijvende punten van een Bezier-curve die samenvalt met de Bezier-curve die door de punten 30 310,314 en 312 is bepaald. Fig.le geeft het vormen van een Bezier-curve van derde orde. De vier beschrijvende punten zijn 322,324,326,328. De door opvolgende paren van beschrijvende punten bepaalde lijnstukken worden in twee gelijke delen verdeeld door de respektievelijke punten 330,332,334. Dit proces wordt herhaald door de punten 336,338. Het door 35 de laatste twee punten beschreven lijnstuk wordt in twee gelijke delen verdeeld door het punt 340. Men kan bewijzen dat laatstgenoemd punt weer een punt van de betreffende Bezier-curve van derde orde is, en ook, dat de door de puntenreeksen 322,330,336,340, respektievelijk 340,338,334,328 bepaalde Bezier-curves samen identiek zijn met de door de puntenreeks 8300872 PHN 10.604 10 • %
, I
322,324,326,328 bepaalde Bezier-curve. De halveringspunten der Bezier-curves, dus in de getoonde gevallen respektievelijk de punten 304,306,308,320,340, worden in de later te bespreken polygoonprocessor gebruikt om een iteratieve bewerking uit te voeren. Uit de besproken 5 polygoonzijdes kan men vlakke figuren vormen. In navolging van de klassieke polygonen uit Fig.la worden dit Bezier-polygonen genoemd. Deze kunnen dus opgebouwd zijn uit Bezier-curves van verschillende orde.
Door een lijnstuk volgens Fig.lc wordt een parallellogram 10 gediagonaliseerd, dat verder geheel gegeven is als de richtingen van de zijden zijn gegeven. Op dezelfde manier wordt door de beschrijvende punten van een Bezier-curve volgens Fig.ld/e ook een parallellogram gegenereerd als de richtingen van de zijden zijn gegeven: dat parallellogram is het kleinste dat alle beschrijvende punten van de 15 betreffende Bezier-curve bevat. We noemen dit het gegenereerde parallellogram. Het is eenvoudig in te zien dat alle punten van een Bezier- curve liggen binnen het door de beschrijvende punten ervan gegenereerde parallellogram. Bij het specificeren van een polygoonzijde door de beschrijvende punten wordt telkens de orde van de curve in het 20 ontvangstgeheugen meegespecificeerd.
Er wordt op gewezen dat de vorm van de curves ook van de volgorde der beschrijvende punten afhangt. Uit een concatenatie van een aantal Bezier-curves kan een Bezier-polygoon worden gevormd, net als uit een concatenatie van rechte lijnstukken een conventioneel polygoon. In de 25 hierna beschreven voorkeursuitvoering wordt geeist dat de beschrijvende punten van een Bezier-curve alle liggen binnen de rechthoek, die door de eindpunten wordt gegenereerd. Dit is geen fundamentele beperking, maar vereenvoudigt het algorithme. De geciteerde literatuurplaats geeft verder het vormen van al dan niet gekromde oppervlakken als beschreven door twee 30 verzamelingen Bezier-polygonen.
De objektelementen kunnen aan ruimtelijkheidsbetrekkingen (relatieve transformaties) zijn onderworpen. Deze gelden in een tweedimensionale situatie bijvoorbeeld ten opzichte van een referentie-assenkruis: 35 - translatie - rotatie - schaalverandering (vergroting of verkleining) - spiegeling ten opzichte van een punt of rechte lijn 8300872 ' ΕΉΝ 10.604 11
Fig.2 geeft een voorbeeld van een tak van een hierarchische datastruktuur van objektelementen. Elk niveau is symbolisch voorgesteld. Het laagste niveau 36 bevat links als objektelement een gelijkbenige driehoek die is gegeven als de eerder vermelde keten van hoekpunten. Rechts bevat dit 5 objektelement als extra gegeven een omgeschreven rechthoek (bounding box, hier een vierkant) van de gelijkbenige driehoek, die bijvoorbeeld gegeven is als x-coordinaten en y-coordinaten van de rechthoekszijden ten opzichte van het coördinatenstelsel van het objektelement van naasthogere orde waarin het is verbonden. De betreffende rechthoek is niet uniek voor 10 de driehoek want elke relatieve oriëntatie levert een eigen omschreven rechthoek. Het is niet nodig dat voor een bepaalde oriëntatie de kleinste figuuur wordt genomen, dit bespaart in het algemeen wel rekentijd. Met name zou in het geval dat de zijden gevormd worden door Bezier-curves van hogere orde een "te grote" omgeschreven rechthoek kunnen worden gebruikt.
15 De opslag van het elementaire objektelement kan weer op konventionele manier gebeuren. De plaats van de gelijkbenige driehoek binnen de ontschreven rechthoek is door stippellijnen aangegeven, terwijl de rechthoek uit onderbroken lijnen bestaat.
20 Op het naasthogere hierarchische niveau 38 is de gelijkbenige driehoek van niveau 36 gekombineerd met een haakvormige struktuur, dat is dus een polygoon met zeer smalle gedeelten, waarvan de arcering niet is j aangegeven. Deze haakvormige struktuur is hier niet als deel van een j lager hierarchisch niveau gegeven. Rechts is deze kombinatie weer binnen 25 de bijbehorende omschreven rechthoek (hier weer een vierkant) weergegeven. Het kombineren van de twee elementaire objektelementen kan worden gerealiseerd door ruimtelijkheidsbetrekkingen, zoals eerder besproken. De omgeschreven rechthoek van de kombinatie kan op elementaire manier worden bepaald.
30
Op het naasthogere niveau 40 wordt het getoonde objektelement van niveau 38 weer gekombineerd met een polygoon (vijfhoek), ook is een omschreven rechthoek door onderbroken lijnen aangegeven. Binnen de datastruktuur zijn de verbanden tussen de objektelementen bijvoorbeeld door 35 adresaanwijzers in het ontvangstgeheugen gegeven.
Fig.3 geeft een tweede voorbeeld van een hierarchische datastruktuur van objektelementen. Op een overkoepelend niveau stelt ruit 66 met bijbehorende omschreven rechthoek 42 een tweedimensionale 8300872 PHN 10.604 12 samenhangstruktuur voor; op de lagere niveaus zijn alleen de respektievelijke omschreven rechthoeken 44..64 genummerd en de al dat niet elementaire objektelementen slechts door ongenummerde ruiten weergegeven. Op het naastlagere niveau bestaat de samenhangstruktuur uit 5 drie objektelementen (44,46,48). Op het derde niveau in de figuur bestaat objektelement 46 uit samenstellende objektelementen 50,52 en objektelement 48 uit objektelementen 54,56. Op het vierde niveau in de figuur bestaat objektelement 44 uit objektelementen 58,60, objektelement 52 uit objektelement 60, en objektelement 54 uit objektelementen 62,64. 10 De objektelementen 50 en 56-64 zijn als elementair te beschouwen. Op zichzelf is het al dan niet elementair zijn van een objektelement slechts bepaald door zijn plaats in de hierarchisch datastruktuur, namelijk als er ten opzichte van dat objektelement geen lager niveau is. In een voorkeursuitvoering bevat de datastruktuur twee soorten onderdelen: in de 15 eerste plaats zijn er de eigenlijke objektelementen. In de tweede plaats zijn er zogenoemde oproepen: een oproep geeft de transformatie aan tussen het referentiekader van het oproepende of hogere objektelement en het opgeroepene of lagere objektelement. Alleen voor de elementaire objektelementen is dan geen oproep voorzien, omdat voorzien is dat op dit 20 laagste niveau de verbanden meestal onveranderlijk zijn; dit is dus iets anders dan in Eig.2, waar ook tusen de laagste twee niveaus rotatie en schaalverandering optreedt. Eenvoudshalve worden hierna de oproepen beschouwd als deel uit te maken van het lagere objektelement. De zin van de bovengenoemde scheiding tussen oproepen en objektelementen is gelegen 25
in de vereenvoudiging van het meervoudige gebruik van objektelementen. GLOBALE BESCHRIJVING VAN HET REKENMACHINESYSTEEM
De bewerkingen op de objektelementen worden beschreven aan de hand van 30 Fig.4, die min of meer symbolisch het multiprocessorsysteem geeft. Blok 68 is een geheugen met willekeurige toegankelijkheid, waarin zich de hierarchische datastruktuur bevindt, en wel in een driedimensionale situatie. In het geval van bijvoorbeeld een vluchtsimulator voor piloten geeft deze samenhang de ruimtelijke ’’werkelijkheid". Een eenvoudiger 35 situatie treedt vaak op bij "ontwerpen met rekenmachinebijstand" (CAD). Daar kan vaak de perspektivische vertekening verwaarloosd worden en wordt een parallelprojektie .gebruikt, in tegenstelling tot de zogenoemde centrale projektie van perspektivische systemen. Blok 70, dat in een rekenmachine is geïmplementeerd, symboliseert de transformatie van de 8300872 PHN 10.604 13 samenhangstruktuur voor; op de lagere niveaus zijn alleen de respektievelijke omschreven rechthoeken 44..64 genummerd en de al dat niet elementaire objektelementen slechts door ongenummerde ruiten weergegeven. Op het naastlagere niveau bestaat de samenhangstruktuur uit 5 drie objektelementen (44,46,48). Op het derde niveau in de figuur bestaat objektelement 46 uit samenstellende objektelementen 50,52 en objektelement 48 uit objektelementen 54,56. Op het vierde niveau in de figuur bestaat objektelement 44 uit objektelementen 58,60, objektelement 52 uit objektelement 60, en objektelement 54 uit objektelementen 62,64. 10 De objektelementen 50 en 56-64 zijn als elementair te beschouwen. Op zichzelf is het al dan niet elementair zijn van een objektelement slechts bepaald door zijn plaats in de hierarchisch datastruktuur, namelijk als er ten opzichte van dat objektelement geen lager niveau is. In een voorkeursuitvoering bevat de datastruktuur twee soorten onderdelen: in de 15 eerste plaats zijn er de eigenlijke objektelementen. In de tweede plaats zijn er zogenoemde oproepen: een oproep geeft de transformatie aan tussen het referentiekader van het oproepende of hogere objektelement en het opgeroepene of lagere objektelement. Alleen voor de elementaire objektelementen is dan geen oproep voorzien, omdat voorzien is dat op dit 20 laagste niveau de verbanden meestal onveranderlijk zijn; dit is dus iets anders dan in Fig.2, waar ook tusen de laagste twee niveaus rotatie en schaalverandering optreedt. Eenvoudshalve worden hierna de oproepen beschouwd als deel uit te maken van het lagere objektelement. De zin van de bovengenoemde scheiding tussen oproepen en objektelementen is gelegen 25 in de vereenvoudiging van het meervoudige gebruik van objektelementen.
GLOBALE BESCHRIJVING VAN HET REKENMACHINESYSTEEM
De bewerkingen op de objektelementen worden beschreven aan de hand van 30 Fig.4, die min of meer symbolisch het multiprocessorsysteem geeft. Blok 68 is een geheugen met willekeurige toegankelijkheid, waarin zich de hierarchische datastruktuur bevindt, en wel in een driedimensionale situatie. In het geval van bijvoorbeeld een vluchtsimulator voor piloten geeft deze samenhang de ruimtelijke "werkelijkheid". Een eenvoudiger 35 situatie treedt vaak op bij "ontwerpen met rekenmachinebijstand" (CAD). Daar kan vaak de perspektivische vertekening verwaarloosd worden en wordt een parallelprojektie gebruikt, in tegenstelling tot de zogenoemde centrale projektie van perspektivische systemen. Blok 70, dat in een rekenmachine is geïmplementeerd, symboliseert de transformatie van de 8300872 4 1 PHN 10.604 1.4 datastruktuur naar een visueel centrum, waarbij nog geen rekening gehouden wordt met de wijze van projektie. De transformaties bepalen dus de relatieve ligging van het betreffende objektelement ten opzichte van het visueel centrum, en dan ook uitgedrukt in het bijhorende 5 oogcoordinatenstelsel. Eventueel kan de betreffende voorziening deel uitmaken van de gastheerprocessor. In blok 72 wordt de reduktie van de driedimensionale naar tweedimensionale situatie gerealiseerd. Ook blok 72 is geimplementeerd in een rekenmachine. Daarin wordt met name de projektie van het objektelement bepaald die, punt voor punt, direkt 10 gegeven is uit de transformatievergelijkingen: x(p)= X'VZ", en y(p)= YM/Z", waarin het dubbele accent de coördinaten in het oogcoordinatenstelsel aangeeft.
Deze projektie wordt nu als een (deel van een) tweedimensionale samenhangstruktuur opgeslagen in het geheugen met willekeurige 15 toegankelijkheid 74. In tweedimensionale gevallen, bijvoorbeeld wanneer het besproken systeem in gebruik is bij het ontwerpen van geïntegreerde schakelingen, bevat dit geheugen 74 direkt de tweedimensionale hierarchische datastruktuur der objektelementen, en kunnen de blokken 68,70,72 dus vervallen. Op zichzelf kunnen de blokken 68-72 deel uitmaken 20 van de gastheerprocessor.
Blok 76 stelt voor een reduktieprocessor, waarvan de werking nader wordt besproken. Blok 78 is een arrangement van puntprocessoren, die op reduktieprocessor 76 zijn aangesloten middels een slechts als een 25 lijnvertakking aangegeven demultiplexerstruktuur. In dit eenvoudige voorbeeld zijn slechts vier puntprocessoren aangegeven. Puntprocessor 80 bestaat uit een geheugen 88 en de eigenlijke processor 90. De invoer-/uitvoerbesturing van processor 80 en een eventuele busstruktuur daarvoor zijn eenvoudshalve niet weergegeven.
30
Fig.5 geeft de organisatie van een beeld binnen een tweedimensionale afbeeldingruimte. Het vak 100 geeft aan het coordinatengebied waarin de overkoepelende samenhangstruktuur der objektelementen is gedefinieerd. Vak 102 geeft aan het coordinatengebied dat daarvan moet worden 35 afgebeeld. Eenvoudshalve zijn de hoofdrichtingen van de vakken 100, 102 overeenkomstig gekozen. Er is verondersteld dat het afbeeldelement een televisiebuis met rasteraftasting is, met de lijnrichting in het beeld horizontaal gericht. Het vak 102 bevat acht deelvakken 104-118, de verdeling van het verdere gebied is getoond, doch niet genummerd.
8300872 . ? EHN 10.604 15
De reduktieprocessor 76 voert nu de volgende reduktie uit. Als bijvoorbeeld de kleurinformatie van deelvak 104 moet worden berekend, dan wordt, gaande vanaf het hoogste niveau van de hierarchische datastruktuur, van alle objektelementen nagegaan of de omschreven 5 rechthoek van het betreffende objektelement een punt met het betreffende deelvak gemeenschappelijk heeft. Alleen als dit zo is worden van het betreffende objektelement de samenstellende, als objektelementen gegeven, onderdelen aan hetzelfde onderzoek onderworpen. Als er geen gemeenschappelijk punt is wordt het betreffende objektelement en ook de 10 samenstellende objektelementen verder verwaarloosd. Als een elementair objektelement wel een punt met het deelvak gemeenschappelijk heeft wordt van dat objektelement, alsmede van de alle objektelementen van hierarchisch hoger niveau waarin dat elementaire objektelement verbonden is, de informatie toegevoerd aan de puntprocessor die het betreffende 15 deelvak, of een gedeelte daarvan moet bewerken. Het verbonden zijn wordt gerealiseerd doordat het betreffende objektelement als onderdeel van een ruimtelijkheidsbetrekking optreedt. Een stroomdiagram van deze bewerkingen is gegeven in Figs.7a,7b, en wordt nader besproken.
20 Fig.6 geeft een meer gedetailleerd schema van een multiprocessorsysteem.
Blok 160 stelt voor een cyclisch aktiveerbare demultiplexer die middels de links aangegeven pijl gevoed wordt door de reduktieprocessor. Op de demultiplexer zijn aan gesloten zestien deelgeheugens, waarvan slechts het eerste(162) en het laatste(164) zijn aangegeven. In analogie met 25 Fig·5 is het televisiebeeld verdeeld in zestien vertikale stroken; elke strook is verdeeld in een vast aantal, bijvoorbeeld zestien, boven elkaar liggende deelvakken. Er zijn dus 256 deelvakken, waarvan er telkens een j horizontale strook van zestien deelvakken tesamen wordt bewerkt. In een eerste deelbewerking wordt de voor de bewerking van de respektievelijke 30 deelvakken relevante informatie uit de datastruktuur overgebracht naar het desbetreffende deelgeheugen. Als de strook van deelvakken is bewerkt, wordt de informatie voor de volgende strook deelvakken bepaald en in de deelgeheugens opgeslagen. Element 166 is een sekundaire demultiplexer die de inhoud van het deelgeheugen 162 beschikbaar stelt voor een aantal van 35 vier puntprocessoren(168-174). Er zijn dus in totaal 64 processoren voor een geheel beeld. Binnen elk deelvak is elke puntprocessor werkzaam voor voorafbepaalde beeldpunten, in een voordelige uitvoeringsvorm worden binnen een deelvak telkens twee televisielijnen bewerkt, en wel bewerkt puntprocessor 168 het linkerdeel van de bovenste lijn, puntprocessor 170 8300872 PHN 10.604 16 het rechterdeel van de bovenste lijn, puntprocessor 172 het linkerdeel van de volgende lijn en puntprocessor 174 het rechterdeel van die volgende lijn. Als alle puntprocessoren klaar zijn met de hun op die manier toegewezen lijngedeelten is dus de totale kleurinformatie van twee 5 televisielijnen bepaald. Element 176 een een cyclisch aftastbare multiplexer en deze tast dan eerst alle puntprocessoren af die een gedeelte van de eerste televisielijn hebben bewerkt, en daarna de puntprocessoren die een gedeelte van de tweede televisielijn hebben bewerkt. De informatie wordt overgevoerd naar het ontvangstdeel van het 10 beeldgeheugen. Als de informatie wordt toegevoerd in de juiste volgorde kan het beeldgeheugen (element 92/94 in Fig.4) serieel georganiseerd zijn, bijvoorbeeld met ladingsoverdragende elementen of magnetische domeinen. Als alle stroken van het beeld zijn afgewerkt wordt het beeld desgewenst opnieuw bewerkt, terwijl in het afbeeldgeheugen ontvangstdeel 15 en afgiftedeel van funktie wisselen. Uiteraard is dit alleen zinvol als het beeld daardoor veranderd wordt, bijvoorbeeld doordat het visueel centrum van plaats veranderd (zog. panning), doordat de vergrotingsfaktor wordt veranderd (zog. zooming), of doordat binnen de datastruktuur een of meer objektelementen worden gewijzigd, door verplaatsing, door 20 toevoeging, of door verwijdering. In geval van een onveranderd beeld behoeft het slechts eenmalig te worden bepaald.
DE BEWERKINGEN IN DE REDUKTIEPROCESSOR
25 Fig.7a,7b geven een stroomdiagram voor het selekteren van de objektelementen, zoals dit in de reduktieprocessor gebeurt, en zoals dit op vrijwel dezelfde manier kan gebeuren wanneer de puntprocessor als struktuurprocessor werkt. In blok 130 wordt de operatie gestart, bijvoorbeeld wordt in een programmageheugen de betreffende procedure 30 aangeroepen en worden de variabelen gedeclareerd. In blok 132 worden de coördinaten van de linkerrand XL, rechterrand XR, bovenrand YB en onderrand YO ingesteld, dat zijn de coördinaten, die op het laagste niveau van de hierarchische datastruktuur (de applikatiecoordinaten) het al of niet relevant zijn van het desbetreffende objektelement zullen 35 bepalen. Dit zijn dus de coördinaten van de hoekpunten van de omgeschreven rechthoek. In de struktuurprocessor worden hier de coördinaten van het betreffende punt ingevuld. In blok 134 wordt het geheugenadres van de te bewerken hierarchische datastruktuur aangeroepen, dit is dus het adres van de overkoepelende samerihangst ruk tuur. Alle 8300872 EHN 10.604 17 objektelementen bezitten een relevantiebit: al deze relevantiebits worden nu teruggesteld. In blok 136 wordt een globaal toegankelijke stapel gecreeerd. In blok 138 wordt de recursieve procedure ’'examine" opgeroepen die het eigenlijke onderzoeken van de objektelementen op al dan niet 5 aanwezige relevantie uitvoert. Als het systeem het eerstaangeroepene exemplaar van deze procedures weer verlaat, volgt in blok 140 de afsluiting. Daarbij worden alle objektelementen, waarvan de relevantiebits zijn heengesteld naar het deelgeheugen in kwestie overgevoerd. Bij het realiseren van de struktuurprocessor worden de 10 relevante elementaire objektelementen daarop in de polygoonprocessor behandeld.
Fig. 7b geeft de procedure "examine". In blok 142 wordt de procedure gestart. In blok 144 wordt gedetekteerd of het te onderzoeken deelvak een 15 overlap heeft met het aktuele objektelement; in eerste instantie is het objektelement de in Fig.7a opgeroepen overkoepelende samenhangstruktuur.
Als er geen overlap is gaat het systeem terug naar de routine, waaruit de betreffende procedure werd aangeroepen: blok 184. Als er wel overlap is wordt het adres van het aktuele objektelement op de globale stapel 20 geschreven: blok 146. Bovendien wordt de hulpvariabele BRA op nul gesteld. Deze geeft het nummer van het het volgende te onderzoeken objektelement aan, dit zijn dus de samenstellende objektelementen van het naastlagere niveau; deze zijn genummerd volgens de natuurlijke getallen. j
In blok 148 wordt de variabele BRA geincrementeerd en in blok 150 wordt 25 gedetekteerd of er overlap bestaat. Als dat niet zo is wordt in blok 180 gedetekteerd of dit van het aktuele objektelement het laatste samenstellende objektelement van naastlager niveau was. Als dat zo was wordt in blok 182 het meest recente gegeven van de globale stapel afgehaald en verder niet behandeld. Als in dit geval de globale stapel 20 geheel leeg was, is dit een loze operatie. In blok 184 gaat het systeem terug naar de procedure die het huidige exemplaar van de procedure "examine" had aangeroepen. Onder omstandigheden is dit dus de procedure van Fig. 7a. Als in blok 150 wel overlapping was gedetekteerd, wordt het adres van het aktuele, samenstellende objektelement op de globale stapel 35 geschreven. In blok 154 wordt gedetekteerd of laatstgenoemde een elementair objektelement was. Als dat zo is, wordt de gehele informatie van de globale stapel opgehaald, en wordt van alle daarin gerefereerde objektelementen de relevantiebit heengesteld. Daarna gaat het systeem weer naar blok 180.
8300872 PHN 10.604 18
Als in blok 154 geen elementair objektelement in bewerking was, worden in blok 186 de lokale variabelen op de procesomgeving (een zogenaamde run-time stack) gered. Dit zijn tenminste de coördinaten van het venster (blok 132), respektievelijk de middels de geeffektueerde transformaties 5 daaruit afgeleide coördinaten en de aktuele waarde van de variabele BRA binnen het betreffende exemplaar van de procedure "examine'’. In blok 188 worden de vensterkoordinaten herberekend middels de inverse van de ruimtelijkheidsbetrekkingen voor het betreffende objektelement naar het naasthogere objektelement, daarin begrepen de inmiddels uitgevoerde 10 transformaties daarop (dit laatste element was dus aktueel op het moment van binnengaan van de procedure in blok 142). Vervolgens wordt in blok 190 de procedure "examine" weer aangeroepen. Bij terugkeer uit blok 190 komt blok 192 overeen met blok 182 en gaat het systeem naar blok 180.
15 Als alle objektelementen behandeld zijn moeten degene waarvan de relevantiebits zijn heengesteld verder worden beschouwd. In een eenvoudige realisatie gaat het systeem alle objekt elementen af en onderzoekt telkens de relevantiebit. Het kan ook gerealiseerd worden met een tweede recursieve procedure: "process"; deze wordt slechts kort 20 besproken. In plaats van overlappen detekteert deze de relevantiebit. In plaats van blok 156/158 worden de betreffende objektelementen naar het deelgeheugen overgevoerd. Blok 188 valt weg, en voor het overige wordt vrijwel de gang van zaken van Fig.7b gerealiseerd.
25 DE WERKING VAN DE PUNTPROCESSOREN
Vervolgens wordt de werking van het arrangement van puntprocessoren besproken, waarbij eenvoudshalve wordt uitgegaan van Fig.4. Als het hulpgeheugen 88 binnen processor 80 de relevante gereduceerde 2Q datastruktuur voor het onderhanden deelvak bevat (deze datastruktuur is weer op dezelfde manier hierarchisch geordend), kan de bewerking van de informatie beginnen. De puntprocessor maakt achtereenvolgens voor elk behandeld beeldpunt dezelfde volgorde door, en fungeert voor dat beeldpunt achtereenvolgens als struktuurprocessor, als polygoonprocessor, 35 en als prioriteitsprocessor. In principe kunnen deze bewerkingen ook in andere samenhang worden uitgevoerd. Zo kunnen de polygoonbewerkingen -voor een bepaald polygoon beginnen als dit door de struktuurprocessorbewerkingen geheel is behandeld. De bewerkingen voor de prioriteitsprocessor kunnen beginnen ten aanzien van de polygonen, 8300872 EHN 10.604 19 waarvoor de bewerkingen voor het bepalen van de "binnen"- respektievelijk "buiten"-informatie geheel zijn uitgevoerd. In dat verband kan de processor 90 dus ook uit meerdere deelprocessoren zijn opgebouwd die elk een deel van de bewerkingen uitvoeren al naar gelang de daarvoor 5 noodzakelijke gegevens beschikbaar zijn . Op zichzelf is multiprocessing bekend en wordt kortheidshalve niet nader beschreven.
De bewerkingen voor het fungeren als struktuurprocessor gebeuren op dezelfde manier als de bewerkingen gebeuren in de reduktieprocessor, en wel voor een deelvak dat uit een enkel punt bestaat. Daardoor behoeft ook 10 slechts een enkel coordinatenpaar (in plaats van 2) getransformeerd te worden en op de genoemde "run-time-stack" te worden bewaard. Bovendien hoeft dan in de puntprocessor ook geen allgnering met de assen van het nieuwe coördinatenstelsel plaats te vinden, omdat het slechts een enkel punt betreft. Tenslotte behoeven in de puntprocessor alleen (de adressen 15 van) relevante elementaire objektelementen te worden gecopieerd ten behoeve van de polygoonprocessor, inclusief de eventuele prioriteitsinformatie voor de prioriteitsprocessor.
De bewerkingen ten aanzien van de polygoonprocessor zullen hierna worden 20 beschreven. De bewerkingen voor de prioriteitsprocessor zijn veelal eenvoudig: in een tweedimensionale omgeving is elk te kleuren polygoon voorzien van een eigen prioriteitsgetal en bij een overlappen wordt eenvoudig de kleur van het hoogste prioriteitsgetal als "winnend" aangewezen. Als meerdere polygonen kleuren met hetzelfde prioriteitsgetal 25 bezitten wordt een mengkleur geimplementeerd. Op zichzelf is het vormen van mengkleuren bekend. Als de te implementeren kleur voor een bepaald punt is bepaald, wordt het volgende beeldpunt van het door de betreffende puntprocessor te bewerken deelvak onder handen genomen. Als alle punten van een deelvak zijn bewerkt wordt de reduktieprocessor 76 30 ge-heraktiveerd om van een volgend deelvak de informatie aan te leveren. De zo gevormde kleurinformatie wordt aan een dubbele buffer 92/94 aangeleverd. Het gedeelte 92 is een ontvangstgedeelte en is eenvoudshalve opgebouwd als een serieel geheugen, bijvoorbeeld met 300 kbits modules, waarvan er een aantal parallel staan opgesteld om per beeldpunt een 35 meerbits informatie op te slaan. Voor elk beeldpunt wordt bijvoorbeeld een achtbits byte in parallel door de betreffende puntprocessor afgeleverd. Het gedeelte 94 is een afbeeldgedeelte en bezit dezelfde kapaciteit als het ontvangstgedeelte. Als alle beeldpunten van het vak 102 zijn behandeld worden de funkties van afbeeldgedeelte en 8300872 PHN 10.604 20 ontvangstgedeelte omgewisseld.
Het afbeeldelement 96 is bijvoorbeeld een konventioneel toestel op basis van een televisiebuis met 600 beeldlijnen, op elk waarvan 1000 beeldpunten worden berekend. Het uitgangsnetwerk tussen de 5 respektievelijke puntprocessoren en de dubbele buffer bevat een multiplexorganisatie, zodat de informatie van de door de puntprocessoren bepaalde kleuren wordt afgeleverd in de volgorde waarin ze de desbetreffende punten op het beeldscherm moeten worden afgebeeld. De puntsgewijze berekeningen kosten niet voor elk punt evenveel tijd, en 10 bovendien moeten de puntprocessoren cyclisch worden afgetast om de informatie in de juiste volgorde af te leveren. Daarom bevat de uitgang van een puntprocessor dus een hoeveelheid tussenbuffer waarin alreeds bepaalde kleurinformaties worden zijn opgeslagen, totdat ze aan de dubbele buffer beschikbaar moeten worden gesteld.
15
DE BEWERKINGEN IN DE POLYGOONPROCESSOR
Fig.8 geeft in een algorithmische rekenmachinetaal de door de polygoonprocessor te implementeren bewerkingen, waarbij dus voor een 7Π bepaald beeldpunt en voor een bepaalde polygoon de deelkleurinformatie "binnen" of "niet-binnen" wordt bepaald. Daarbij declareert Fig.9b enkele begingrootheden, namelijk een "bag" met puntenparen, waarbij dus hetzelfde puntenpaar meermaals mag voorkomen, drie booleaanse variabelen en twee integers. Een beeldpunt is een element van een verzameling 25 integerparen: punt P heeft de koordinaten (xp,yp). De onderlinge afstand "d"tussen twee punten wordt bepaald als de absolute waarde van de grootste afstand in een coordinaatrichting (x of y). Een kromme wordt gevormd als een rij punten met onderlinge afstand telkens gelijk aan "1"; het aantal punten van de kromme heet in deze definitie de "lengte". Een 30 afstand "1" correspondeert dus met een lengte "2". De omschrijvende rechthoek van twee punten P,Q bevat alle beeldpunten met (x - xp)*(x - xq) <1, en overeenkomstig voor de y-coordinaat (in feite moet het produkt ten hoogste gelijk aan nul zijn). De som van twee curves met samenvallend eindpunt is de concatenatie der curves met enkele telling 35 van dat eindpunt. Een zogenoemde lijntrekkende funktie (line drawing function) van de punten P,Q: "f(P,Q)" beeldt de punten P en Q af op de eindpunten van een kromme, van welke kromme elke deelkromme alle punten heeft liggen in de door de eindpunten van die deelkromme bepaalde omschrijvende rechthoek. Daaraan voldoen dus de in Figs.lc-le getoonde 8300872 PHN 10.604 21
Bezier- curves. Als funktie van de x-coordinaat is de funktie van de y-coordinaat ofwel "niet-stijgend", ofwel "niet-dalend"; het zelfde geldt voor de x-coordinaat als funktie van de y-coordinaat·
Bij het hier beschreven algorithme zijn niet alle Bezier-curves 5 toelaatbaar, .bijvoorbeeld niet steeds zulke waarbij een tussengelegen beschrijvend punt niet ligt binnen de door de uiterste beschrijvende punten bepaalde omgeschreven rechthoek. Als zulke krommes optreden is een eenvoudige oplossing, die geen benaderingen van de curve inhoudt, om een Bezier-curve in delen te verdelen, waarvoor het probleem niet optreedt. 10 Er wordt nog opgemerkt dat de gestelde eis minder zwaar is dan die welke luidt dat alle beschrijvende punten van een Bezier-curve moeten liggen binnen de door de eindpunten beschreven rechthoek.
Een polygoon "G" is een rij van punten die de eindpunten samenvallend bezit zonder verdere restrikties voor de andere. De kromme van een 15 polygoon onder een lijntrekkende funktie is de som van de door opvolgende zijden van het polygoon bepaalde krommen onder die lijntrekkende funkties. In het geval dat een polygoon slechts uit een enkel punt bestaat is deze kromme identiek met dat ene punt. Voor elk triplet van de grootheden polygoon G, lijntrekkende funktie f, en punt P worden nu 20 gedefinieerd een eerste predikaat ATSÏDE en en tweede predikaat INSIDE die elk "waar” of "onwaar" kunnen zijn. Het eerste predikaat is "waar" als het betreffende beeldpunt samenvalt met een door de lijntrekkende funktie in kwestie als zijde-punt van het polygoon aangewezen punt. Het predikaat INSIDE is "waar" wanneer het aantal snijpunten van een 25 willekeurige half-oneindige rechte vanuit het betreffende punt met enige der polygoonzijden oneven is. In de besproken uitvoeringsvorm heeft deze half-oneindige rechte de negatieve x-richting. Het predikaat INSIDE is als formule gegeven in Fig.9a. Een snijpunt wordt gedefinieerd door twee noodzakelijke voorwaarden. De eerste is dat twee punten k,k+l, van de 30 polygoonzijde op naasthogere, respektievelijk naastlagere y-coordinaat liggen ten opzichte van het oorsprongspunt P, zodat het produkt van de verschillen der y-coordinaten de waarde "-1" heeft. De tweede voorwaarde is, dat voor alle punten van de polygoonzijde tussen de punten k en k+1 de x-coordinaat kleiner is dan die van het oorsprongspunt P en de 35 y-coordinaat gelijk is aan die van het punt P. In dit verband geeft Fig.lOa dus een situatie aan waarin er een snijpunt is tussen punten k en k+1, terwijl in de situatie van Fig.IOb er geen snijpunt is. Het totaal aantal snijpunten van de half-oneindige rechte met enige der polygoonzijden moet dan oneven zijn voor een "binnen"-situatie. In de 8300872 EHN 10.604 22 uitdrukking wordt het teken voor modulo-x optelling gebruikt, waarbij x de waarde n heeft. Als op de derde regel van Fig.9a het teken "kleiner dan" gebruikt wordt, verloopt de betreffende half-oneindige rechte in de positieve x-richting. Als het aantal snijpunten oneven is, geldt het 5 predikaat INSIDE. Tenslotte wordt de kleurinformatie positief gerekend als ofwel het predikaat ATSIDE, ofwel het predikaat INSIDE waar is: dit is het predikaat INCLUDES. Bij gegeven polygoon, punt, en lijntrekkende funktie moet dan de waarde van het predikaat INCLUDES worden bepaald.
10 Men kan bewijzen, dat bovengenoemde predikaten, waarbij INCLUDES de uiteindelijke binnen/buiten-informatie oplevert, als volgt kunnen worden berekend. Daartoe moeten eerst twee intermediaire predikaten als volgt worden gedefinieerd.
Het predikaat INB0X1 tussen twee punten Q,R, en een te onderzoeken punt P 15 is waar als het betreffende punt in de door Q en R bepaalde omgeschreven rechthoek is omvat: (xP - xQ)*(xP - xR) < 1 (yP - yQ)*(yP - yR) < 1; in feite moet het produkt ten hoogste gelijk aan nul zijn.
Het predikaat INB0X2 is waar als de door de punten Q en R bepaalde omgeschreven rechthoek twee punten A en B bevat, waarvoor geldt dat het 20 punt A links op dezelfde y-coordinaat als het punt P ligt, en het punt B, naburig aan punt A, op naasthogere Y-coordinaat. Dat wil ondermeer zeggen: punt P ligt noch op de linker, noch op de bovenzijde van de omschreven rechthoek. Fig.l0d-10g geven een aantal mogelijkheden voor een rechthoek door A en B beschreven; voor elk van die mogelijkheden is het 25 predikaat INB0X2 "waar", waarbij enkele verschillende posities van het punt P telkens aangegeven zijn. Op deze manier is het predikaat INSIDE zeer gemakkelijk te testen, gegeven de gekozen eisen aan de lijntrekkende funktie.
30 Bij de opdrachtenlijst van Fig. 8 wordt uitgegaan van een verzameling (bag) puntenparen B, waarbij eventueel dubbele mogen optreden. Verder zijn er drie tweewaardige hulpgrootheden in,at, en stop, en zijn q en r gedefinieerd over de natuurlijke getallen. De opdrachtenlijst van Fig.8 bevat de volgende opdrachten. Op regel 200 wordt het betreffende polygoon 35 gedeklareerd. Op regel 201 wordt het aantal puntenparen gedeklareerd als telkens bepaald door een respektievelijke polygoonzijde, terwijl de grootheden in,at onwaar worden. Op regel 202 worden de operaties gestart en voortgezet totdat ofwel alle puntenparen uit B zijn bewerkt, ofwel de grootheid "at" in "waar" is overgegaan. Op regel 203 worden twee punten 8300872 t * * * PHN 10.604 23 Q,R, aan B onttrokken. Op regel 204 wordt gedetekteerd of het punt P binnen de door Q en R bepaalde rechthoek ligt. Als dat niet zo is, volgt het systeem de aldaar aanvangende vertikale rechte om op regel 230 te eindigen. Op dezelfde manier duiden de verdere vertikale rechtes een 5 iteratiestruktuur (nest) aan. Op regel 205 wordt gedetekteerd of het punt P met punt Q of met punt R samenvalt. Als dat zo is wordt de grootheid”at" "waar". Als de test een negatief resultaat geeft wordt op regel 208 een reeks van m punten benoemd middels de in Q en R eindigende kromme onder de lijntrekkende funktie f. Een hulpgrootheid stop wordt Ί0 "onwaar"gemaakt en de rangnummers q,r worden aan eerste respektievelijk laatste punt van de kurve gegeven. Zolang de grootheid"stop" nog"onwaar,,is gaat het systeem verder. Op regel 210 wordt de grootheid p gelijk gemaakt aan het verschil tussen q en r. Er zijn nu twee gevallen.
Als p gelijk is aan 0 of 1, dan zijn de punten Eq en Er buren en bevat de 15 door hun bepaalde omschreven rechthoek vier beeldpunten: de zogenaamde elementaire rechthoek die hier vier punten bevat door de eerdere test op regel 205. Op regel 213 wordt aangegeven dat in elk geval wordt gestopt.
Op regel 214 wordt getest of er geen van de punten Eq,Er rechts van het punt P ligt terwijl er tenminste 1 van de originele eindpunten Q en R in 20 de y-richting boven het punt P ligt. Als dat zo is, wordt de binaire variabele "in" van waarde veranderd. Enkele mogelijkheden daartoe worden in Figs.l0d-10f getoond.
Als de afstand tussen Eq en Er echter groter is, wordt op regel 217 de lijn tussen Eq en Er in twee stukken gedeeld, bijvoorbeeld onder 25 inachtname van af ronden, gehalveerd. Als het punt P samenvalt met dit tussenpunt Et, wordt op regel 219 gestopt, waarbij gekonstateerd is dat het betreffende punt op de polygoonzijde ligt. Als de voorgaande test negatief uitvalt, wordt op regels 224, respektievelijk getest of punt P | ligt in een van de door punt Et, en een der punten Eq, respektievelijk Er j
30 gediagonaliseerde rechthoeken. Als dit zo is gaat het systeem terug naar I
regel 209(while), waarbij de steeds aanwezige andere rechthoek - het punt kan bij deze test nooit in beide rechthoeken tegelijk liggen - wordt verworpen en het punt Et de plaats van een der punten Eq,Er, inneemt voor de volgende iteratieslag. Als het punt P niet in een van de twee 35 omschreven rechthoeken ligt, wordt er gestopt, maar wordt nog getest of het punt ten aanzien van het tussenpunt en een der eindpunten het predikaat INB0X2 wellicht waar zou maken. Als dit zo is wordt de grootheid"in"van waarde veranderd. Als het punt P niet in de door punten Q,R bepaalde rechthoek lag, en het systeem dus op regel 230 was beland, 8300872 PHN 10.604 24 wordt de test INB0X2 nog op de eindpunten Q,R uitgevoerd (regel 231). Tenslotte wordt in 233 het resultaat van het algorithme, namelijk de waarde van de grootheid '’at" teruggegegeven· Fig.10c geeft een aantal door onderbroken lijnen aangegeven omschrijvende rechthoeken, 5 eenvoudshalve worden hier Bezier-curves van eerste orde beschouwd. Bij het delen van een polygoonzijde (-deel) behoeft een groot aantal beeldpunten niet meer meegenomen te worden. Anders gezegd: vanwege het logarithmisch opdeelgedrag konvergeert voor veel beeldpunten het algorithme al na 1 of enkele verwerkingsslagen. Er wordt nog op gewezen 10 dat het in Fig.8 gegeven algorithme toepasselijk is voor Bezier-curves van eerste orde, en slechts daarbij bestaat de vrijheid in het kiezen van de deelfaktor die niet gelijk aan 1/2 behoeft te zijn. Het vormen van de deelpunten bij Bezier-curves van hogere orde is besproken bij Figs.ld,le. Het algorithme van Fig.8 hoeft voor dergelijke hogere orde Bezier-curves 15 alleen op dit punt te worden aangepast, waarbij er dus steeds enkele intermediaire beschrijvende punten moeten worden onthouden.
\
REALISATIE VAN EEN POLYGOONPROCESSOR
20 Fig.11 geeft een blokschema van een polygoonprocessor, voor een polygoon, waarvan de zijden door eerste orde Bezier-curves worden gevormd. Zo een schakeling kan in een processor-met-speciaal-doel gerealiseerd worden. Er is alleen het gedeelte met betrekking tot de x-coordinaat aangegeven. Voor de y-coordinaat is een corresponderende inrichting aanwezig, 25 respektievelijk wordt dezelfde inrichting in tijdmultiplex gebruikt. De programmabesturing is eenvoudshalve niet aangegeven, maar slechts de datapaden zijn aangegeven. Eerst worden de registers 240 en 242 geladen met respektievelijk de x-coordinaat van een beschrijvend punt (hier eindpunt) van de betreffende polygoonzijde en die van het betreffende te 30 onderzoeken punt. Bij de datapaden is telkens de breedte in bits aangegeven. De coördinaten van de punten bestaan uit N bits; dit wordt bepaald door de afmetingen van het werkveld 100 in Fig.5. In arithmetisch element 244 wordt allereerst het verschil van de twee x-coordinaten bepaald. Het betreffende datapad heeft een breedte van N bits, 35 vermeerderd met 1 tekenbit. Als het verschil de waarde +1,0, of -1 heeft kan het wezen dat het betreffende punt samenvalt met het betreffende eindpunt van de polygoonzijde, of anderszins in een door dat eindpunt bepaalde elementaire omschreven rechthoek ligt. Voor elk van bovengenoemde drie gevallen bevat register 250 een bitpositie Verder 8300872 * k * * PUN 10.604 25 wordt in een tweede bewerking het resultaat van de bewerking samen met de irihoud van register 248 over een datapad met breedte N+4 bits naar het register 250/252 overgevoerd: dit bevat dus de relatieve x-coordinaat van het eerste eindpunt van de betreffende polygoonzijde. Vervolgens wordt 5 dezelfde bewerking herhaald voor het andere eindpunt van de betreffende polygoonzijde, waarvan het resultaat opgeslagen wordt in register 254/256. Op dezelfde manier worden de y-coordinaten van de eindpunten van de betreffende polygoonzijde behandeld. Een niet getekende detektieschakeling kan nu de tests die in Fig.8 op regels 204,205,212 10 zijn aangegeven, uitvoeren. In voorkomende gevallen kan daarmee de behandeling van het betreffende punt beëindigd zijn, namelijk als het punt in kwestie ligt buiten het door de polygoonzijde gediagonaliseerde rechthoek, of wanneer direkt een beslissing gemaakt kan worden over de binnen/buiten informatie. Om de verdere regels van Fig.8 te implementeren 15 worden vervolgens de multiplexers 258, 260 doorlaatbaar gemaakt voor de inhouden van de registers 250-256, gesuppleerd door een minst signifikante Hln-bit, zoals van een nietgetekende signaalbron verkregen.
Vervolgens wordt het midden van de betreffende polygoonzijde bepaald: de relatieve x-coordinaten, worden toegevoerd aan het optelelement 270. De 20 som wordt voorlopig opgeslagen in register 272, de som is weer een relatieve waarde. Blok 274 komt in funktie overeen met blok 246. Verder bestuurt het resultaat van de test op regel 221 in Fig.8 naar welk van de twee registers 262-268 moet worden doorgelaten. Het te behandelen punt | moet dan weer in de door het polygoonzijde-deel gediagonaliseerde 23 rechthoek liggen· Zowel de x-coordinaten als de y-coordinaten van beide eindpunten van dat deel moeten dan tegengestelde tekens hebben. Zo gaat de bewerking verder totdat het eind van de opdrachtenlijst van Fig.8 is bereikt.
30 Fig.12 geeft een blokschema van een polygoonprocessor voor
Bezier-polygonen waarvan de zijden gevormd worden door Bezier-curves van ten hoogste derde orde. De informatiebron is een geheugen 350 met willekeurige toegankelijkheid, bijvoorbeeld het betreffende hulpgeheugen, waarin de relevante elementaire objektelementen van een relevantiebit 35 voor de betreffende polygoonprocessor zijn voorzien, welke relevantiebit is ingesteld door de struktuurprocessor. In geval van een grote en gecompliceerde datastruktuur kan ook hier deze datastruktuur als wegwijzer genomen worden: alleen objektelementen die zelf van een relevantiebit zijn voorzien kunnen op een lager niveau in de hiërarchie 8300872
* I
PHN 10.604 26 verwijzen naar een objektelement dat zou kunnen zijn voorzien van zo een relevantiebit. Als meerdere puntprocessoren op dezelfde datastruktuur werken, wordt eerst een uittreksel gemaakt ter opslag in het hulpgeheugen. Daarna maken de respektievelijke puntprocessoren elk hun 5 eigen kopie van dit uittreksel en kan de reduktieprocessor een nieuw uittreksel gaan maken terwijl de puntprocessoren hun werk doen. Register 354 geeft de coördinaat van het betreffende beeldpunt af. Optelelement 352 komt overeen met element 244 in Fig.11. De relatieve coördinaten van beginpunt Q en eindpunt R van de betreffende polygoonzljde worden 10 toegevoerd een de registers 356,358. Logische schakeling 420 test of het te onderzoeken beeldpunt met een van de twee eindpunten samenvalt(Fig.8, regel 205, dit wordt dus voor twee coördinaten tesamen bepaald), en zo ja, dan wordt de grootheid "at" ingesteld, en is het betreffende polygoon klaar. Dan wordt zo nodig het volgende polygoon in geheugen 350 15 geadresseerd. Voorts, als het beeldpunt buiten de beschreven rechthoek ligt (regel 204), dan wordt een stuursignaal gegeven aan voortgangsbesturingselement 422 om van het betreffende polygoon de volgende zijde te adresseren. Voorts test de logische schakeling 418 de conditie INB0X2(Q,R), Fig.8,regel 231. Eventueel wordt dan de grootheid 20 "in" "waar". Voorts worden de relatieve coördinaten van de ten hoogste vier beschrijvende punten achtereenvolgens toegevoerd aan de registers 360-366. Elementen 368-374 zijn multiplexers met 2-4 ingangen. Elementen 376-382 zijn registers, overeenkomstig met elementen 250/2 en 254/6. De blokken 384-394 stellen een boomstruktuur van accumulators voor om een of 25 meer nieuwe beschrijvende punten van een polygoonzijdedeel te bepalen-Element 404 is een multiplexer om het door de orde van de betreffende Bezier-curve gegeven uitgangsgetal(Et) door te laten. Voor een eerste orde curve is dit element 384, en zo verder. Element 396 is een multiplexer om de coördinaat van het laatste beschrijvende punt door te 30 laten. Daarbij is blok 402 een logische schakeling om de juiste informatie van Et aan verdere logische schakelingen toe te voeren. (400,408). Ditzelfde geldt voor de logische schakelingen 406,398 ten aanzien van de twee eindpunten van het polygoonzijde(deel). De coördinaat van eerste en laatste beschrijvende punt worden zo respektievelijk 35 toegevoerd aan de logicaschakelingen 406 en 398. De logische schakeling 400 test INBOXl(Eq,Er)resp.INBOXl(Er,Et). Als een van deze twee waar is worden de multiplexers 368,370,372,374 doorlaatbaar voor de inhouden van de accumulators die de gegevens van daarna relevante beschrijvende punten bevatten(test in regel 222,224)- De logische schakeling 410 test (regel 8300872 # * * PHN 10.604 27 212) of de twee beschrijvende punten een elementaire omschrijvende rechthoek vormen, zodat eventueel de situatie van Figs.10d,e,f zich kan voordoen (regel 212). Logische schakeling 408 test of het nieuw gevonden punt Et met het beeldpunt in kwestie samenvalt, eenzelfde test als in 5 logische schakeling 420. Als het betreffende beeldpunt zich buiten de twee door eindpunten en nieuw middenpunt beschreven rechthoeken ligt, voert logische schakeling 412 de test van regel 228 uit, waaruit eventueel de informatie ’'in" veranderd kan worden. De daartoe noodzakelijke informatie betreffende de punten Q,R waren al ontvangen van 10 de registers 356, 358, middels selekterende logische schakelingen 424,426. De elementen 414,416 vormen registers daarvoor.
AANVULLINGEN VOOR EEN DRIEDIMENSIONALE SITUATIE
15 In een driedimensionale situatie kunnen eerstens alle obj ektelementen nog steeds gegeven zijn als vlakke polygonen, daarvan bezitten dan alle beschrijvende punten dus een derde coördinaat, die dan mede opgeslagen is in geheugen 68 in Fig.4. Na transformatie door middel van element 70 wordt dan de vergelijking van dit vlak bepaald en worden de parameters 20 van de vergelijking van dit vlak bij wijze van prioriteitsinformatle bij de middels element 72 getransformeerde objéktelementen in geheugen 74 opgeslagen. Bij verwerking door de reduktieprocessor wordt de gehele informatie der relevante objektelementen in het betreffende hulpgeheugen opgeslagen. Als nu na de eerder beschreven bewerkingen in de 25 struktuurprocessor en in de polygoonprocessor gekonstateerd wordt dat twee of meer polygonen een bepaald beeldpunt overlappen, dan wordt het inkleuringsprobleem als volgt opgelost. Daarbij wordt opgemerkt dat een en ander bij een parallelprojektie exakt gebeuren kan doordat alleen de ' beschrijvende punten van de betreffende polygonen naar de 30 tweedimensionale situatie worden getransformeerd, waarna het beschreven polygoonproces wordt uitgevoerd.
De twee vlakken, waarin de polygonen zich bevinden zijn gegeven door de parameters van de parametervergelijking der vlakken a,b,c,d, respektievelijk a',b',c',d', terwijl van het eerste vlak de vergelijking 35 is: ax + by + cz + d = 0, en van het tweede a'x + b'y + c'z + d' * 0, terwijl de tekens van d en d' gelijk zijn (dit is geen feitelijke beperking). Het aktuele beeldpunt is gegeven door zijn koordinaten C,D,T, dat is dus de doorsnijding van de kijklijn en het tafereel, zodat de waarde van T voor alle beeldpunten vast is. Dan zijn in dit 8300872 , > PHN 10.604 28 oogkoordinatenstelsel de vergelijkingen van de projektierechte voor het aktuele beeldpunt: in het geval van parallelprojektie: 5 x=C,y=D,z=kT (k kan elke waarde hebben), zodat voor de respektievelijke polygonen de parameter-waarden van k voor de doorsnijdingspunten met de kijklijn gevonden worden als: k = (-d - a * C - b * D) / (c * T), en 10 k'=* (-d'- a'* C - b'* D) / (c'* T).
Bij centrale projektie: x=kC,y=kD,z=kT (k kan elke waarde hebben): k» (-d )/(a * C + b * D + c * T), en 15 k'= (-d')/(a'* C + b'* D + c'* T).
Alleen de relatieve waarden van de parameter k zijn echter van belang, en, onder meer doordat steeds gekozen werd voor een positieve waarde van de coefficient d, kan deze bepaling gebeuren na uitvermenigvuldiging van bovenstaande betrekkingen (zodat dus geen deling vereist is). De kleinste 20 waarde van k, respektievelijk k' wijst het polygoon aan, waarvoor de "binnen" informatie de hoogste prioriteit bezit, en waarvoor dus de inkleuring moet worden gerealiseerd. Als meer dan twee polygonen voor het betreffende beeldpunt relevant zijn wordt de beslissing achtereenvolgens paarsgewijze voor alle polygonen uitgevoerd, waarbij steeds slechts het 25 meest relevante van de twee wordt behouden in de verdere bewerking.
In het bovenstaande zijn vlakke Bezier-figuren beschouwd. De uitbreiding naar drie dimensies gebeurt doordat dan de Bezier kurves in twee bundels verlopen, die kunnen worden voorgesteld als een dubbel produkt, waar ze 30 in Fig.lb slechts een enkel produkt noodzakelijk maakten.
8300872 35 , * : PHN 10.604 28a LIJST VAN COMMANDO'S:
130: STRT
132: STO XL, XR, YB, YO 5 134: CALLDATSTRUCT RESET RELBITS
136: CREATE GLOBAL STACK 138: CALL EXAMINE 140: STR 142: STRT 10 144: OVERLAP? 146: PUSH PRESENT ADDRESS CN GLOBAL STACK BRA:=0 148: BRA = BRA + 1 150: OVERLAP? 152: PUSH PRESENT ADDRESS ON GLOBAL STACK 15 154: LOWEST? 156: SET REL BITS OF GLOBAL STACK ADDRES 158: POP WHOLE OF GLOBAL STACK 180: LAST BRA?
182: POP GLOBAL STACK ONE 20 184: RETURN
186: SAVE LOCAL VARIABLES
188: RECALL CHECK COORDINATES BY INVERSE TRANSFORM ' 190: CALL EXAMINE 192: POP GLOBAL STACK CNE 25 30 35 8300872

Claims (7)

  1. 3. Multiprocessorrekenmachinesysteem volgens conclusie 2, 25 met het kenmerk, dat uit genoemd samenvallen eveneens genoemde "binnen',-informatie wordt gevormd, doch ten overige genoemde ,lbuiten"-inf ormatie ·
  2. 4. Multiproeessorrekenmachinesysteem volgens conclusie 2 of 3, voor een 30 afbeeldelement dat de beeldpunten volgens een rechthoekige matrix van rijen en kolommen zijn georganiseerd, met het kenmerk, dat de zijden van genoemd parallellogram met rijen, respektievelijk kolommen evenwijdig zijn en genoemde half-oneindige ve rechte met een der zijden. 35
  3. 5. Multiprocessorrekenmachinesysteem volgens conclusie 3, met het kenmerk, dat de verzameling der puntprocessoren verdeeld is in deelverzamelingen(166/174), met per deelverzameling een hulpgeheugen(162), dat binnen een deelverzameling de puntprocessoren 8300872 XT PHN 10.604 31 werken op een gemeenschappelijk deelbeeld, dat tussen het ontvangstgeheugen en de daarmee via een cyclisch aftastbare demultiplexer verbonden hulpgeheugens een reduktieprocessor(76) is geschakeld om uit de hierarchische datastruktuur achtereenvolgens vanaf het overkoepelend 5 hierarchisch niveau telkens niveausgewijs de relevantie van het betreffende objektelement voor het betreffende deelbeeld te bepalen totdat een irrelevantie wordt gedetekteerd, respektievelijk totdat de elementaire objekt element en zijn bereikt om slechts het deel van de datastruktuur waarvoor tenminste een daarin verbonden elementair 10 objektelement als relevant werd gedetekteerd inclusief de verzameling der als relevant gedetekteerde elementaire objektelementen naar het betreffende hulpgeheugen over te voeren.
  4. 6. Multiprocessorrekenmachinesysteem volgens conclusie 5, 15 met het kenmerk, dat genoemde relevantie bestuurd wordt door een tenminste gedeeltelijk samenvallen van het betreffende deelbeeld en een per objektelement van de datastruktuur in het ontvangstgeheugen opgeslagen en dat objektelement omsluitend rechthoekig gebied(bounding box). 20
  5. 7. Multiprocessorrekenmachinesysteem volgens een der conclusies 1 tot en met 6, met het kenmerk dat tussen de verzameling van puntprocessoren en het afbeeldelement een dubbel beeldbuifer (92/94) is geschakeld met een 25 ontvangstdeel om kleurinformatie betreffende een geheel beeld van de puntprocessoren te ontvangen en een afgiftedeel om de kleurinformatie betreffende een geheel beeld te bevatten en aan het afbeeldelement af te geven totdat het ontvangstdeel, na algehele vulling met de informatie van een beeld, als afgiftedeel wordt omgeschakeld en het tot dan fungerende 30 afgiftedeel als ontvangstdeel.
  6. 8. Multiprocessorrekenmachinesysteem volgens conclusie 1, met het kenmerk dat in het ontvangstgeheugen elk elementair objektelement van een prioriteitsindikatie is voorzien. 35
  7. 9. Multiprocessorrekenmachinesysteem volgens conclusie 8 om een driedimensionaal georganiseerde datastruktuur af te beelden in een centrale projektie of parallelprojektie, met het kenmerk dat voor de daarin als genoemde polygonen gedefinieerde 8300872 PHN 10.604 32 elementaire objektelementen een impliciete prioriteitsindikatie is gegeven door de vergelijkingsparameters van het bevattingsvlak dat lokaal het betreffende elementaire ob j ektelement bevat en dat in het geval van na projektie op het tafereel lokaal overlappende polygonen de 5 parameterwaarden van de snijpunten van de lokaal bijbehorende bevattingsvlakken met de geparametriseerde rechte langs de projektierichting en door het betreffende projektiepunt bij vergelijking daartussen de relatieve prioriteit expliciet geven. 10 15 20 25 30 ί j 35 8300872
NL8300872A 1982-03-10 1983-03-10 Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen. NL8300872A (nl)

Priority Applications (6)

Application Number Priority Date Filing Date Title
NL8300872A NL8300872A (nl) 1983-03-10 1983-03-10 Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.
DE3407983A DE3407983C2 (de) 1983-03-10 1984-03-03 Mehrprozessorrechnersystem zum Erzeugen von Bildpunktinformationen aus in einer hierarchischen Datenstruktur definierten Objektelementen
GB08405937A GB2136996B (en) 1983-03-10 1984-03-07 Multiprocessor computer system for forming a picture display
FR848403682A FR2542470B1 (fr) 1983-03-10 1984-03-09 Systeme de machine a calculer a multiprocesseur pour convertir des elements-objets definis dans une structure de donnees hierarchique en une representation visuelle coloree
JP59044853A JPS59172068A (ja) 1983-03-10 1984-03-10 マルチプロセツサ・コンピユ−タシステム
US06/589,264 US4631690A (en) 1982-03-10 1984-03-13 Multiprocessor computer system for forming a color picture from object elements defined in a hierarchic data structure

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NL8300872 1982-03-10
NL8300872A NL8300872A (nl) 1983-03-10 1983-03-10 Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.

Publications (1)

Publication Number Publication Date
NL8300872A true NL8300872A (nl) 1984-10-01

Family

ID=19841532

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8300872A NL8300872A (nl) 1982-03-10 1983-03-10 Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.

Country Status (6)

Country Link
US (1) US4631690A (nl)
JP (1) JPS59172068A (nl)
DE (1) DE3407983C2 (nl)
FR (1) FR2542470B1 (nl)
GB (1) GB2136996B (nl)
NL (1) NL8300872A (nl)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
GB2163883B (en) * 1984-08-29 1989-02-01 British Aerospace Data processing arrangement
US4853971A (en) * 1985-03-18 1989-08-01 Dainippon Screen Mfg. Co., Ltd. Method and apparatus for processing image data
US4823281A (en) * 1985-04-30 1989-04-18 Ibm Corporation Color graphic processor for performing logical operations
JPH087569B2 (ja) * 1985-06-21 1996-01-29 株式会社日立製作所 表示制御装置
US4806921A (en) * 1985-10-04 1989-02-21 Ateq Corporation Rasterizer for pattern generator
US4758965A (en) * 1985-10-09 1988-07-19 International Business Machines Corporation Polygon fill processor
US4809201A (en) * 1985-12-02 1989-02-28 Schlumberger Systems, Inc. Graphic display region defining technique
US4811245A (en) * 1985-12-19 1989-03-07 General Electric Company Method of edge smoothing for a computer image generation system
JPS62145369A (ja) * 1985-12-20 1987-06-29 Hitachi Ltd 図形デ−タの検索方法
US4878178A (en) * 1985-12-25 1989-10-31 Sharp Kabushiki Kaisha Image processing device
US4821209A (en) * 1986-01-21 1989-04-11 International Business Machines Corporation Data transformation and clipping in a graphics display system
US4862392A (en) * 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US5343560A (en) * 1986-06-27 1994-08-30 Hitachi, Ltd. Image data display system
EP0513474A1 (en) * 1986-09-11 1992-11-19 Hughes Aircraft Company Digital visual and sensor simulation system for generating realistic scenes
GB2198019B (en) * 1986-11-18 1990-09-26 Ibm Graphics processing system
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
GB2204767B (en) * 1987-05-08 1991-11-13 Sun Microsystems Inc Method and apparatus for adaptive forward differencing in the rendering of curves and surfaces
GB8713819D0 (en) * 1987-06-12 1987-12-16 Smiths Industries Plc Information processing systems
US5063375A (en) * 1987-07-27 1991-11-05 Sun Microsystems, Inc. Method and apparatus for shading images
US5097411A (en) * 1987-08-13 1992-03-17 Digital Equipment Corporation Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs
US5251322A (en) * 1987-08-13 1993-10-05 Digital Equipment Corporation Method of operating a computer graphics system including asynchronously traversing its nodes
JPS6451888A (en) * 1987-08-24 1989-02-28 Sharp Kk Picture processor
US4873515A (en) * 1987-10-16 1989-10-10 Evans & Sutherland Computer Corporation Computer graphics pixel processing system
CA1309198C (en) * 1987-12-10 1992-10-20 Carlo J. Evangelisti Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display
FR2625345A1 (fr) * 1987-12-24 1989-06-30 Thomson Cgr Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
US5202985A (en) * 1988-04-14 1993-04-13 Racal-Datacom, Inc. Apparatus and method for displaying data communication network configuration after searching the network
US5134688A (en) * 1988-05-20 1992-07-28 U.S. Philips Corporation Computer method and an apparatus for generating a display picture representing a set of objects including a brush element
DE68928227T2 (de) * 1988-05-20 1998-02-12 Philips Electronics Nv Rechnerverfahren und Gerät zur Erzeugung eines Anzeigebildes, das einen Objektelementensatz mit einem Pinselobjektelement darstellt
KR930000693B1 (ko) * 1988-09-14 1993-01-29 가부시키가이샤 도시바 패턴 데이터 발생장치
JPH07104923B2 (ja) * 1988-12-28 1995-11-13 工業技術院長 並列画像表示処理方法
US5241654A (en) * 1988-12-28 1993-08-31 Kabushiki Kaisha Toshiba Apparatus for generating an arbitrary parameter curve represented as an n-th order Bezier curve
US5179647A (en) * 1989-01-09 1993-01-12 Sun Microsystem, Inc. Method and apparatus for implementing adaptive forward differencing using integer arithmetic
US5226175A (en) * 1989-07-21 1993-07-06 Graphic Edge, Inc. Technique for representing sampled images
US5142615A (en) * 1989-08-15 1992-08-25 Digital Equipment Corporation System and method of supporting a plurality of color maps in a display for a digital data processing system
SE464265B (sv) * 1990-01-10 1991-03-25 Stefan Blixt Grafikprocessor
JP2734711B2 (ja) * 1990-01-12 1998-04-02 日本電気株式会社 曲線発生装置
US5031117A (en) * 1990-02-13 1991-07-09 International Business Machines Corporation Prioritization scheme for enhancing the display of ray traced images
EP0559714A1 (en) * 1990-11-30 1993-09-15 Cambridge Animation Systems Limited Animation
CA2060975C (en) * 1991-02-25 1998-11-10 Gopalan Ramanujam Scientific visualization system
US5579409A (en) * 1991-09-27 1996-11-26 E. I. Du Pont De Nemours And Company Methods for determining the exterior points of an object in a background
US6054991A (en) * 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
US5590248A (en) * 1992-01-02 1996-12-31 General Electric Company Method for reducing the complexity of a polygonal mesh
GB2270243B (en) * 1992-08-26 1996-02-28 Namco Ltd Image synthesizing system
US5398315A (en) * 1992-12-30 1995-03-14 North American Philips Corporation Multi-processor video display apparatus
BE1007551A3 (nl) * 1993-09-24 1995-08-01 Philips Electronics Nv Werkwijze voor het in een rekenmachine automatisch herstellen van consistentie in een hierarchische objektstruktuur na een interaktie door een gebruiker en rekenmachine voorzien van zo een systeem voor automatische consistentieherstelling.
US5649079A (en) * 1994-02-28 1997-07-15 Holmes; David I. Computerized method using isosceles triangles for generating surface points
ES2141392T3 (es) * 1994-10-26 2000-03-16 Boeing Co Metodo para controlar el nivel del detalle presentado en un visualizador de pantalla generado por ordenador de una estructura compleja.
US5559941A (en) * 1994-10-26 1996-09-24 Brechner; Eric L. Method for smoothly maintaining a vertical orientation during computer animation
US5613049A (en) * 1994-10-26 1997-03-18 The Boeing Company Method for creating spatially balanced bounding volume hierarchies for use in a computer generated display of a complex structure
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US5870097A (en) 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5852443A (en) * 1995-08-04 1998-12-22 Microsoft Corporation Method and system for memory decomposition in a graphics rendering system
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5867166A (en) * 1995-08-04 1999-02-02 Microsoft Corporation Method and system for generating images using Gsprites
US5880737A (en) * 1995-08-04 1999-03-09 Microsoft Corporation Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5949428A (en) * 1995-08-04 1999-09-07 Microsoft Corporation Method and apparatus for resolving pixel data in a graphics rendering system
US5990904A (en) * 1995-08-04 1999-11-23 Microsoft Corporation Method and system for merging pixel fragments in a graphics rendering system
US5808617A (en) * 1995-08-04 1998-09-15 Microsoft Corporation Method and system for depth complexity reduction in a graphics rendering system
US5999189A (en) 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5710877A (en) * 1995-12-29 1998-01-20 Xerox Corporation User-directed interaction with an image structure map representation of an image
US5751852A (en) * 1996-04-29 1998-05-12 Xerox Corporation Image structure map data structure for spatially indexing an imgage
KR19990029027A (ko) * 1996-05-17 1999-04-15 엠. 제이. 엠. 반캄 표시장치
US5809179A (en) * 1996-05-31 1998-09-15 Xerox Corporation Producing a rendered image version of an original image using an image structure map representation of the image
US6111583A (en) 1997-09-29 2000-08-29 Skyline Software Systems Ltd. Apparatus and method for three-dimensional terrain rendering
JPH11345344A (ja) * 1998-06-01 1999-12-14 Matsushita Electric Ind Co Ltd 3次曲線を与える方法及び装置
US20030158786A1 (en) 1999-02-26 2003-08-21 Skyline Software Systems, Inc. Sending three-dimensional images over a network
IL135465A0 (en) * 2000-04-04 2001-05-20 Zviaguina Natalia Method and system for determining visible parts of transparent and nontransparent surfaces of three-dimensional objects
AU2002233556A1 (en) * 2001-03-07 2002-09-19 Internet Pro Video Limited Scalable video coding using vector graphics
US6753861B2 (en) * 2001-10-18 2004-06-22 Hewlett-Packard Development Company, L.P. Active region determination for line generation in regionalized rasterizer displays
US7891818B2 (en) 2006-12-12 2011-02-22 Evans & Sutherland Computer Corporation System and method for aligning RGB light in a single modulator projector
US8056086B2 (en) * 2008-05-19 2011-11-08 International Business Machines Corporation Load balancing for image processing using multiple processors
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
AU2013248248B2 (en) * 2013-10-25 2015-12-24 Canon Kabushiki Kaisha Text rendering method with improved clarity of corners
US20150178961A1 (en) * 2013-12-20 2015-06-25 Nvidia Corporation System, method, and computer program product for angular subdivision of quadratic bezier curves

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602702A (en) * 1969-05-19 1971-08-31 Univ Utah Electronically generated perspective images
US3816726A (en) * 1972-10-16 1974-06-11 Evans & Sutherland Computer Co Computer graphics clipping system for polygons
US3889107A (en) * 1972-10-16 1975-06-10 Evans & Sutherland Computer Co System of polygon sorting by dissection
US4208810A (en) * 1978-09-11 1980-06-24 The Singer Company Clipping polygon faces through a polyhedron of vision
US4674058A (en) * 1981-12-07 1987-06-16 Dicomed Corporation Method and apparatus for flexigon representation of a two dimensional figure

Also Published As

Publication number Publication date
FR2542470B1 (fr) 1990-11-09
FR2542470A1 (fr) 1984-09-14
DE3407983C2 (de) 1994-07-28
JPS59172068A (ja) 1984-09-28
GB2136996B (en) 1986-08-06
US4631690A (en) 1986-12-23
GB8405937D0 (en) 1984-04-11
GB2136996A (en) 1984-09-26
DE3407983A1 (de) 1984-09-13

Similar Documents

Publication Publication Date Title
NL8300872A (nl) Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.
AU600515B2 (en) Method and system for solid modelling
Potmesil et al. The pixel machine: a parallel image computer
Cao et al. Parallel banding algorithm to compute exact distance transform with the GPU
Sproull et al. A clipping divider
Rosenfeld Parallel image processing using cellular arrays
US6952204B2 (en) 3D computer modelling apparatus
JP3344597B2 (ja) グラフィック画像をテッセレーション化する方法および装置
EP0549944A2 (en) Multi-resolution graphic representation for interactive visualization applications
EP0210554A2 (en) A method of windowing image data in a computer system
JPH0731741B2 (ja) 画像情報処理装置と方法
JP2019102082A (ja) 折り畳まれた特徴データに対して畳み込み演算を実行するための方法および装置
US5134688A (en) Computer method and an apparatus for generating a display picture representing a set of objects including a brush element
EP1410337A2 (en) Method, apparatus and article of manufacture for determining visible parts of surfaces of three-dimensional objects and their parameters of shading while accounting for light and shadow volumes
US5537520A (en) Method and system for displaying a three dimensional object
US6043825A (en) Method of displaying 3D networks in 2D with out false crossings
KR20190035445A (ko) 전자 장치 및 그 제어 방법
JPH01204181A (ja) オブジエクト相互間の干渉を調べる方法
KR100544803B1 (ko) 영상 프리미티브의 고속 처리
Rachakonda et al. High-speed region detection and labeling using an FPGA-based custom computing platform
Lee et al. Display of visible edges of a set of convex polygons
Jansen CSG Hidden Surface Algorithms for VLSI Hardware Systems.
Gobron et al. GPU accelerated computation and visualization of hexagonal cellular automata
EP0342752B1 (en) A computer method and an aparatus for generating a display picture representing a set of object elements including a brush object element
Zhou et al. Selectively meshed surface representation

Legal Events

Date Code Title Description
A1B A search report has been drawn up
A85 Still pending on 85-01-01
BV The patent application has lapsed