NL8921391A - Inrichting voor verticaal filteren voor een rasterafgetaste weergave. - Google Patents

Inrichting voor verticaal filteren voor een rasterafgetaste weergave. Download PDF

Info

Publication number
NL8921391A
NL8921391A NL8921391A NL8921391A NL8921391A NL 8921391 A NL8921391 A NL 8921391A NL 8921391 A NL8921391 A NL 8921391A NL 8921391 A NL8921391 A NL 8921391A NL 8921391 A NL8921391 A NL 8921391A
Authority
NL
Netherlands
Prior art keywords
pixel data
pixel
data
buffer
line
Prior art date
Application number
NL8921391A
Other languages
English (en)
Other versions
NL193229B (nl
NL193229C (nl
Original Assignee
Apple Computer
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 Apple Computer filed Critical Apple Computer
Publication of NL8921391A publication Critical patent/NL8921391A/nl
Publication of NL193229B publication Critical patent/NL193229B/nl
Application granted granted Critical
Publication of NL193229C publication Critical patent/NL193229C/nl

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G1/00Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data
    • G09G1/06Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows
    • G09G1/14Control arrangements or circuits, of interest only in connection with cathode-ray tube indicators; General aspects or details, e.g. selection emphasis on particular characters, dashed line or dotted line generation; Preprocessing of data using single beam tubes, e.g. three-dimensional or perspective representation, rotation or translation of display pattern, hidden lines, shadows the beam tracing a pattern independent of the information to be displayed, this latter determining the parts of the pattern rendered respectively visible and invisible
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0224Details of interlacing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0247Flicker reduction other than flicker reduction circuits used for single beam cathode-ray tubes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0271Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping
    • G09G2320/0276Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping for the purpose of adaptation to the characteristics of a display device, i.e. gamma correction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/123Frame memory handling using interleaving
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/06Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour palettes, e.g. look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Image Processing (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Measurement Of Resistance Or Impedance (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Sampling And Sample Adjustment (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Manipulator (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

Reg. nr.: 133801 FV/AK
INRICHTING VOOR VERTICAAL FILTEREN VOOR EEN RASTERAFGETASTE WEERGAVE
De uitvinding ligt op het terrein van het filteren van videosignalen voor een rasterafgetaste weergave, in het bijzonder waarbij door een computer opgewekte pixelgegevens worden toegepast .
De meeste kathodestraalbuis (CRT)-computervideo-weergeeforganen zijn voorzien van een rasteraftasting. Vele van de bij deze weergeeforganen toegepaste standaarden kunnen worden herleid tot televisiestandaarden. Bijvoorbeeld worden dikwijls twee vervlochten velden gebruikt om een raster te vormen. Vele vroegere personal computers verschaffen compatibele NTSC-signalen om een gebruiker in staat te stellen goedkope televisie-ontvangers te gebruiken. In andere gevallen wekken computers signalen zoals over-legsels op die worden gebruikt in samenhang met NTSC-signalen. Aldus wekken personal computers vaak pixelgegevens op om te worden gebruikt op rasterafgetaste weergeeforganen roet interliniëring.
Door een computer opgewekte gegevens hebben kenmerken die deze minder geschiktk maken voor een vervlochten, rasteraf-getaste weergave dan videosignalen die afkomstig zijn van een videocamera. Bijvoorbeeld kunnen pixelgegevens veranderingen (bijvoorbeeld in amplitude) vertonen over hun gehele bereik van pixel tot pixel· Dat wil zeggen dat praktisch elke verandering in pixelgegevens kan voorkomen van één pixel tot het volgende. Daarentegen wordt bij videogegevens van een gebruikelijke videocamera een bun-delvlek toegepast die meer dan een enkel pixeloppervlak beslaat. De gegevens die worden geïnterpreteerd voor een enkel pixel in dit geval nemen tot in zekere mate de intensiteit en de kleur van het omgevende gebied in rekening. Er is dientengevolge een verzachting, zelfs een verdoezeling, die optreedt wanneer de bundel het beeld in een camera aftast.
Het menselijke visuele stelsel is. een randdetectie-stelsel. De ogen zijn zeer goed in het vinden van contouren die vormen afbakenen. Om een voorbeeld te geven, wanneer een opeenvolging van aangrenzende grijze balken met toenemende intensiteit wordt weergegeven op een computerweergeeforgaan, lijken de randen tussen de balken benadrukt. Perceptueel zien de grijze balken er niet uit als met vaste kleuren, maar in plaats daarvan zien zij er uit alsof zij tussen hun randen donker zijn gemaakt. Met andere woorden, de grens tussen de grijze balken lijkt versterkt door de randdetectiemechanismen van het oog.
Wanneer een typisch realistisch tafereel wordt weergegeven op een weergeeforgaan met interliniëring, zijn er geen abrupte overgangen van de ene aftastlijn naar de andere. Voorwerpen hebben gewoonlijk geen zeer scherpe randen, en die voorwerpen die dat wel hebben, hebben doorgaans geen randen die op één lijn liggèn met een aftastlijn. Het gevolg is dat het oog geen rand kan vinden vanaf een aftastlijn naar de volgende. Wanneer het oog geen rand kan vinden tussen een aftastlijn en de volgende, kan het geen onderscheid maken tussen de lijnen. In een geïnterlinieerde weergave wordt een volledig raster elke 1/30 seconde getekend, evenwel flitst vanwege het interliniëren elke 1/60 seconde hetzij een gegeven aftastlijn hetzij de volgende aftastlijn op. Het oog ontvangt deze meervoudige aftastlijnen als dikke enkele lijnen die opflitsen met een frequentie van 60 raster/seconde, zelfs ofschoon zij in feite met 30 raster/seconde opflitsen. Door dit model zou het van dichtbij aanschouwen van een geïnterlinieerde weergave leiden tot de perceptie van flikkeren bij 30 raster/seconde. Dit is in feite wat gebeurt; indien men afzonderlijke aftastlijnen op een NTSC-te-levisie voldoende nabij aanschouwt, wordt het flikkeren door interliniëring (dat wil zeggen 30 raster/seconde flitsen) gezien, zelfs bij een realistisch beeld.
In het geval van een door een computer opgewekt beeld, zoals een beeld van een MACINTOSH computer op een weergeeforgaan met interliniëring, zijn er op elke plaats waar geen getrokken wit of getrokken zwart is, abrupte overgangen in de verticale dimensie (Macintosh is een geregistreerd handelsmerk van Apple Computer, Ine). In het geval van "lopende stroken" (afwisselend zwarte en witte horizontale lijnen) bovenaan een kenmerkend Macintosh venster, is de meest abrupte overgang mogelijk, van zwart naar wit uitgestrekt over de lengte van het venster en herhaald voor verscheidene lijnen. Hier is het gemakkelijk voor het menselijke oog om de rand van één aftastlijn naar de volgende te detecteren, zodat het de aftastlijnen als afzonderlijk beschouwt, opflitsend roet 30 raster/seconde. De visuele perceptie van de roenselijke waarnemer is dat wanneer er abrupte overgangen zijn op het weergeeforgaan, het NTSC-beeld flikkert in een mate die voldoende is om storend te zijn.
Eén bijkomende subtiliteit is waard om te worden vermeld. Het menselijke oog zal een weergave zien flikkeren steeds wanneer er overgangen (dat wil zeggen randen) in de verticale dimensie zijn. Echter is de mate van flikkeren niet uniform voor elk type grafisch patroon. Het ongunstigste patroon is de lopende stroken over het bovenste deel van een venster, zoals hierboven vermeld. Tekst en andere willekeurige patronen flikkeren eveneens, maar lang niet zo ernstig. Dit wordt verklaart door het feit dat het gemakkelijker is verticale randen te onderscheiden wanneer er een hoge horizontale correlatie met het patroon is (zoals in het geval van lopende stroken), maar het moeilijker is om de randen te vinden wanneer een lage horizontale correlatie is (zoals in het geval van tekst). (Zoals zal worden gezien voorziet de onderhavige uitvinding in zich aanpassend filteren voor deze subtiliteit.)
Talrijke technieken zijn bekend die "anti-alia-sing"-filters omvatten voor het verwijderen van dit flikkeren. In sommige gevallen dupliceren filters de verzachtende effecten van de camerabundel, dat wil zeggen dat pixelgegevens voor een cluster of vlek van pixels wordt "gemiddeld" of "geconvolueerd" om gefilterde pixelgegevens te produceren. In het algemeen vereisen deze technieken een aanzienlijke rekencapaciteit.
Zoals zal worden gezien, verschaft de onderhavige uitvinding gefilterde pixelgegevens, evenwel slechts in de verti cale richting. Het convolueren dat wordt uitgevoerd door de onderhavige uitvinding om de gefilterde pixelgegevens te verschaffen wordt "terloops" uitgevoerd, aangezien de rekenvereisten aanzienlijk geringer zijn dan die welke worden vereist door bekende stelsels.
SAMENVATTING VAN DE UITVINDING
Beschreven wordt een verbeterde werkwijze voor het opwekken van verticaal gefilterde pixelgegevens in een rasterafge-taste videoweergave. De videogegevens worden opgeslagen in een ras-terbuffer die is geordend door aftastlijnen, waarbij gegevens zijn opgeslagen voor elk pixel langs elke aftastlijn. Om de gefilterde pixelgegevens op te wekken voor een eerste pixel van een eerste lijn, worden pixelgegevens uit de buffer gelezen voor het eerste pixel van de n-de, n+1, n+2, ..., n+N-de aftastlijnen. Dit wordt uitgevoerd voordat pixelgegevens voor andere pixels langs deze aftastlijnen worden uitgelezen door de rasterbuffer. Dit vermijdt de noodzaak van een veelheid van lijnbuffers of zelfs aanvullende ras-terbuffers indien alle gegevens werden gelezen van elk van de aftastlijnen. De pixelgegevens voor het eerste pixel van de n-de, n+1, n+2, ..·, n+N-de aftastlijnen worden geconvolueerd om de pixelgegevens te verschaffen voor het eerste pixel van de eerste aftastlijn.
In een thans de voorkeur hebbende "hardware"-uitvoeringsvorm , waarbij N=2, worden de pixelgegevens opgeslagen in twee banken video-RAM's (VRAM's), waarbij de videogegevens voor aftastlijnen 0, 1, 4, 5, 8, 9, ... worden opgeslagen in één bank en de videogegevens voor aftastlijnen 2, 3, 6, 7, 10, 11, ... worden opgeslagen in de andere bank. Vervolgens worden de gegevens voor pixel 0 van de aftastlijnen 0, 1, 2 en 3 uit de VRAM's gelezen. De gegevens voor pixel 0 van de lijnen 0, 1 en 2 worden geconvolueerd. De gegevens voor pixel 0 van lijn 3 worden genegeerd. Dit proces wordt herhaald voor pixel 1, enz., teneinde de lijn te voltooien.
In deze uitvoeringsvorm bestaat de convolutiestap uit een betrekkelijk eenvoudig wegen, waarbij de helft van het ge- wicht wordt gegeven aan de pixelgegevens van de n-de en n+2-de af-tastlijnen, in vergelijking met het gewicht dat wordt gegeven aan de pixelgegeven van de n+1-de aftastlijn.
Andere details van de onderhavige uitvinding zullen duidelijk worden uit de navolgende beschrijving» die "software"-uitvoeringvormen omvat.
KORTE BESCHRIJVING VAN DE TEKENING
Fig. 1 is een algemeen blokschema dat de algemene plaatsing van de onderhavige uitvinding in een videostelsel illustreert; fig. 2 is een diagram dat wordt gebruikt om een werkwijze te illustreren die wordt gebruikt door de onderhavige ..... uitvinding om gegevens uit een rasterbuffer te lezen; fig. 3 is een diagram dat wordt gebruikt om een alternatieve werkwijze te illustreren die wordt gebruikt door de onderhavige uitvinding om gegevens uit een rasterbuffer te lezen; fig. 4 is een blokschema dat een uitvoeringvorm van een convolutie-orgaan illustreert dat wordt gebruikt in de onderhavige uitvinding; fig. 5 is een blokschema dat een andere uitvoeringsvorm van een convolutie-orgaanillustreert dat wordt gebruikt in de onderhavige uitvinding; fig. 6 is een blokschema dat een andere werkwijze illustreert voor het verkrijgen van geconvolueerde gegevens» die in het bijzonder bruikbaar is wanneer niet veel bits worden opgeslagen voor elk pixel; fig. 7a is een blokschema van een algemeen voor-schalingsorgaan dat kan worden gebruikt met het convolutie-orgaan volgens de onderhavige uitvinding; fig. 7B is een blokschema van een ander voorscha-lingsorgaan dat kan worden gebruikt met het convolutie-orgaan van de onderhavige uitvinding; fig. 8 is een blokschema van een schakeling die een thans de voorkeur hebbende hardware-uitvoeringsvorm van de uitvin- ding illustreert, waarbij een tweewegvervlechting wordt toegepast; fig. 9 is een diagram dat een pixelgegevensstroom illustreert, dat wordt gebruikt om de werking van de schakeling van fig. 8 te beschrijven; fig. 10 is een diagram dat de betrekking tussen CPU- en VRAM-adressen illustreert voor de tweewegvervlochten rasterbuffer van fig. 8; fig. 11 is een blokscheroa van een schakeling die een andere hardware-uitvoeringsvorm van de onderhavige uitvinding illustreert, waarbij een vierwegvervlechting wordt toegepast; fig. 12 is een diagram dat een pixelgegevensstroom illustreert, dat wordt gebruikt om de werking van de schakeling van fig. 11 te beschrijven; fig. 13 is een diagram dat de betrekking tussen CPU- en VRAM-adressen illustreert voor de vierwegvervlochten ras-terbuffer van fig. 10; fig. 14 is een stroomdiagram dat een uitvoeringsvorm van de onderhavige uitvinding illustreert die is geïmplementeerd in een softwareprogramma; deze uitvoeringsvorm is voor een planaire rasterbuffer; fig. 15 illustreert in een meer grafische vorm een planaire rasterbuffer; fig. 16 illustreert een eerste stap van het implementeren van de onderhavige uitvinding in software voor een "gedrongen" rasterbuffer; fig. 17 illustreert een tweede stap van de implementatie die is beschreven in samenhang met fig. 16; fig. 18 illustreert een derde stap van de implementatie die is beschreven in samenhang met de figuren 16 en 17; fig. 19 illustreert een vierde stap van de implementatie die is beschreven in samenhang met de figuren 16—18; fig. 20 illustreert een vijfde stap van de implementatie die is beschreven in samenhang met de figuren 16-19; fig. 21 illustreert grijswaarden die zijn geladen in de kleurenopzoektabel.
GEDETAILLEERDE BESCHRIJVING VAN DE ONDERHAVIGE UITVINDING
Beschreven wordt een werkwijze en inrichting voor het verschaffen van het filteren van gegevens in een video-inrich-ting roet rasteraftasting. De uitvinding voorziet in het filteren in de verticale richting (loodrecht op de richting van de aftastlij-nen). In de volgende beschrijving worden talrijke specifieke details vermeld teneinde een beter begrip van de onderhavige uitvinding te verschaffen* Het zal evenwel voor een deskundige duidelijk zijn dat de onderhavige uitvinding zonder deze details kan worden toegepast. In andere gevallen zijn welbekende schakelingen en computer operaties in blokschemavorro getoond teneinde de onderhavige uitvinding niet in onnodige details te verhullen.
In fig. 1 wordt een rasterbuffer 10 geïllustreerd die in de thans de voorkeur hebbende uitvoeringsvorm een gewone rasterbuffer kan zijn, bijvoorbeeld vervaardigd uit dynamische willekeurig toegankelijke geheugens (DRAM's) of willekeurig toegankelijke videogeheugens (VRAM's). Meestal zijn gegevens in de rasterbuffer geordend door aftastlijnen, waarbij gegevens worden opgeslagen voor elk pixel langs elke aftastlijn. In sommige gevallen worden de pixelgegevens in vlakken geordend, zodanig dat de pixelgege-vens voor een gegeven pixel worden opgeslagen met elk bit op een verschillend vlak (dat wil zeggen een planair rasterbuffer volgens fig. 15). Wanneer gegevens worden geordend volgens deze opstelling, veroorzaakt een aftastadres dat een bit vanaf elk vlak uit het geheugen wordt gelezen, de bits worden samengesteld om een pixel te vormen, en bij gevolg, worden de gegevens voor een gegeven pixel uit het geheugen gelezen voor een videoweergave. (Dikwijls wordt, wanneer gegevens worden geschreven naar een geheugen die is ingericht met vlakken, een 8 of 16-bits woord geschreven in elk vlak? dit is in het bijzonder bruikbaar voor een zwart/wit of een twee-kleurenweergave, waarbij slechts een enkel bit per pixel wordt opgeslagen en bij gevolg worden gegevens slechts in een enkel vlak geschreven.) Voor sommige uitvoeringsvormen van de onderhavige uitvinding worden de gegevens op een gebruikelijke wijze zoals hierboven is beschreven opgeslagen. In andere uitvoeringsvormen worden de gegevens langs twee wegen vervlochten tussen twee geheugenbanken zoals zal worden beschreven in samenhang met fig. 8, Zelfs met deze inrichting worden de gegevens evenwel nog opgeslagen door aftast-lijnen.
Een adresgenerator 11 wordt gebruikt om de gegevens in de buffer te adresseren om een uitgangssignaal voor een video-weergave te verschaffen. Zoals zal worden gezien is de volgorde waarin de gegevens worden afgetast uit de buffer volgens de onderhavige uitvinding verschillend van die welke wordt gebruikt in de bekende techniek en bij gevolg verschaft de adresgenerator 11 deze unieke adresseringsvolgorde. (Dit wordt aangeduid als "met kernaf-tasting" in fig. 1.) Deze specifieke volgorde die wordt toegepast zal duidelijk worden, in het bijzonder uit de onderstaande bespreking van de figuren 2 en 3. Gebruikelijke schakelingen kunnen worden toegepast om de generator 11 te implementeren en om de in de figuren 2 en 3 beschreven volgorde te verschaffen. Zoals het geval is bij bekende generatoren, wordt de adresgenerator 11 gewoonlijk gesynchroniseerd met een stipklok.
Het uitgangssignaal vanuit de buffer 10 wordt ge-convolueerd door een convolutie-orgaan 12. Het uitgangssignaal van het convolutie-orgaan 12 is pixelgegevens die op een gebruikelijke wijze kunnen worden gebruikt voor een videoweergave. Het convolutie-orgaan 12 wordt in samenhang met de figuren 4 en 5 beschreven en gedeelten daarvan worden beschreven in samenhang met de figuren 7A en 7B.
In de thans de voorkeur hebbende uitvoeringsvorm heeft het uitgangssignaal van het convolutie-orgaan 12 een gamroa-correctie ondergaan. Een dergelijke gammacorrectie is bekend in de techniek en wordt gebruikt om te compenseren voor de niet-lineaire lichtintensiteitskromme van cathodestraalbuisweergeefórganen. De digitale informatie op een lijn 14 wordt omgezet in een analoge vorm om te worden gekoppeld aan een weergeeforgaan.
In de navolgende beschrijving wordt verondersteld dat de buffer 10 pixelgegevens opslaat. Het zal duidelijk zijn dat de buffer wijzers naar een ander geheugen zoals een kleurenopzoek- tabel kan opslaan. In dat geval wordt de uitgang van de buffer 10 gekoppeld aan een kleurenopzoektabel en wordt de uitgang van de kleurenopzoektabel gekoppeld aan het convolutie-orgaan 12.
In fig. 2 wordt verondersteld dat elk blok in het weergegeven rooster een pixel weergeeft in een buffer roet bitaf-bealding. In de horizontale richting zijn de pixels genummerd van 0 t/m 9; het zal duidelijk zijn dat in een kenmerkend geheugen, veel meer pixels worden gebruikt in de weergave. In de verticale richting zijn de rijen van pixelgegevens door een aftastlijn genummerd, beginnende met lijn 0 en eindigende met lijn 5. Wederom zal begrepen worden dat in een kenmerkend weergeeforgaan veel meer aftast-lijnen zullen worden gebruikt. Fig. 2 geeft aldus de gegevensorga-nisatie weer die wordt gevonden in een kenmerkend rasterbuffer.
Volgens de onderhavige uitvinding worden de gegevens voor een gegeven pixel (bijvoorbeeld pixel 0) gelezen uit het geheugen voor verscheidene lijnen (bijvoorbeeld de lijnen 1, 2 en 3) voordat de pixelgegevens voor pixel 1 wordt gelezen uit het geheugen. De pixelgegevens voor de verscheidene lijnen Van een gegeven pixel worden geconvolueerd teneinde de pixelgegevens te verschaffen die worden gebruikt door het weergeeforgaan.
Meer specifiek worden in fig. 2 de gegevens op de lokaties 16, 17 en 18 uit het geheugen gelezen voordat de gegevens voor het pixel 19 worden gelezen uit het geheugen. De pixelgegevens vanaf de lokaties 16, 17 en 18 worden vervolgens geconvolueerd om pixelgegevens te verschaffen voor het pixel 0 van een weergeeflijn. Vervolgens wordende pixelgegevens bij de lokaties 19, 20 en 21 uit het geheugen gelezen en geconvolueerd om pixelgegevens voor het pixel 1 van de weergeeflijn te verschaffen. Dit proces zet zich voort voor elk van de pixels 0 t/m 9 voor de aftastlijnen 1-3, teneinde pixelgegevens voor een gegeven weergeeflijn te verschaffen.
Ten behoeve van de geïllustreerde uitvoeringsvorm worden drie lijnen met gegevens gebruikt in het convolutieproces. Evenwel kan elk aantal lijnen worden gebruikt, bijvoorbeeld kunnen de gegevens vanaf de lijnen n+1, n+2, ..., N+n eerst worden gebruikt om pixelgegevens voor een eerste weergeeflijn te verschaf fen. Hierop volgend worden de gegevens vanaf de lijnen n+1/ n+2, n+3, ... n+N+1 gebruikt om de pixelgegevens voor een tweede weer-geeflijn te verschaffen. Evenwel worden de gegevens vanuit de buffer zodanig gebruikt dat alle pixelgegevens voor bijvoorbeeld pixel M worden gelezen voor alle aftastlijnen die worden gebruikt bij de convolutie voordat de pixelgegevens voor het pixel M+1 worden gelezen uit de buffer.
In sommige gevallen verschaft het adresserings- en afbeeldingsschema dat wordt gebruikt voor een rasterbuffer meer dan de gegevens voor een enkel pixel voor elk adres. Veronderstel dat, zoals is geillusteerd in fig. 3, een enkel adres de pixelgegevens verschaft voor een pixel 0 en een pixel 1 van een lijn 1, aangegeven door de gesloten lijn 23. Volgens de onderhavige uitvinding worden de gegevens behorende de lijn 23 eerst uit het geheugen gelezen, gevolgd door de convolutie van gegevens behorende bij de lijnen 24 en 25. Daarna wordt een convolutie uitgevoerd op de gegevens voor het pixel 0 van de lijnen 1, 2 en 3, gevolgd door de gegevens voor pixel 1 voor de lijnen 1, 2, 3. Nu worden de gegevens behorende bij de lijnen 26, 27 en 28 uit het geheugen gelezen, enz.
In een op speciale wijze georganiseerde rasterbuffer, zoals die beschreven in een thans de voorkeur hebbende uitvoeringsvorm, verschaft een enkel adres de gegevens voor verscheidene lijnen in de buffer. Bijvoorbeeld kan een enkel adres de gegevens verschaffen behorende bij de lijnen 23, 24 en 25. In dit geval worden de eerste gegevens voor het pixel nul geconvolueerd, vervolgens worden die van pixel 1 geconvolueerd. Daarna worden de gegevens behorende bij de lijnen 26, 27 en 28 uit het geheugen gelezen en worden de gegevens voor pixel 2 en vervolgens 3 geconvolueerd. Dit proces zet zich voort voor alle gegevens langs de lijn voor de aftastlijnen 1, 2 en 3.
Aldus worden, in het algemeen, de gegevens voor een eerste pixel voor aftastlijnen n, n+1, n+2, ... n+N uit de buffer gelegen voordat de pixelgegevens voor daaropvolgende pixels op deze aftastlijnen uit de buffer worden gelezen. Deze gegevens worden dan geconvolueerd om pixelgegevens te verschaffen voor een enkel pixel.
Dit proces wordt herhaald voor elk pixel langs de aftastlijnen n, n+1, n+2 ...n+N. Dit volgende, worden de gegevens voor een eerste pixel langs lijnen n+1, n+2 ... n+N+1 uit de buffer gelezen, weder-om voor de pixelgegevens voor daaropvolgende pixels langs deze lijnen. Deze gegevens worden vervolgens geconvolueerd om de gefilterde pixelgegevens voor het eerste pixel van de volgende weergeeflijn te verschaffen. Dit proces wordt herhaald totdat verticaal gefilterde gegevens voor de gehele weergave worden verschaft.
UITVOERINGSVORMEN VAN HET CONVOLUTIE-ORGAAN
Zoals hierboven vermeld, kunnen de pixelgegevens vanaf “n+V gegevenslijnen worden geconvolueerd. In de thans de voorkeur hebbende uitvoeringsvorm is N = 2. (Een bespreking van de convolutie voor andere kernen volgt verderop in deze beschrijving.) In dit geval leidt N tot de vergelijking aPi+bP2+a^3 2a + b waarin P-| de pixelgegevens zijn voor het eerste pixel van de n-de aftastlijn, P2 de pixelgegevens voor het eerste pixel van de (n+1)-de lijn en P3 de pixelgegevens voor de (n+2)-de aftastlijn. "a" en "b" zijn constanten, waarbij "b" gewoonlijk groter is dan "a". In een kenmerkende toepassing is a=1 en b=2.
In fig. 4 omvat het convolutie-orgaan (corresponderende roet het kernconvolutie-orgaan 12 in fig. 1) een voorscha-lingsorgaan 32 dat de pixelgegevensinvoer vanuit de buffer ontvangt. De mate van voorschaling die wordt uitgevoerd door het voor-schalingsorgaan 32 wordt bestuurd door het uitgangssignaal van een coëfficiëntentabel 33. Het uitgangssignaal van de tabel 33 wordt bestuurd door het huidige cyclusnuromer dat zal worden besproken. Het uitgangssignaal van het voorschalingsorgaan 32 verschaft een ingangssignaal naar een opteller 34. Het andere ingangssignaal naar de opteller 34 is, in feite, het uitgangssignaal van de opteller 34 na te zijn gekoppeld via het grendelorgaan 35 en de multiplexer 31. De multiplexer 31 verschaft als een ingangssignaal naar de opteller 34 hetzij het uitgangssignaal van het grendelorgaan 35 hetzij de waarde 0. Zoals zal blijken, wordt bij "cyclus 0" het 0-ingangsig-naal aan de opteller 34 aangeboden, in het andere geval wordt de inhoud van het grendelorgaan 35 het ingangssignaal naar de opteller 34. De inhoud van het grendelorgaan 35 wordt genormaliseerd door een normalisatie-orgaan 36, waarbij de mate van normalisatie, kenmerkend een constante, wordt getoond als een normalisatiewaarde 37. Het uitgangssignaal van het normalisatie-orgaan 36 wordt vergrendeld door een grendelorgaan 38 en de inhoud van dit grendelorgaan verschaft de pixelgegevens voor een pixel langs de weergeeflijn.
In de praktijk is het voorschalingsorgaan eenvoudig een digitaal schuiforgaan dat een digitale vermenigvuldiging met een factor 1 of 2 verschaft en het normalisatie-orgaan 36 is een ander digitaal schuiforgaan dat een deling uitvoert door de digitale gegevens bijvoorbeeld over twee plaatsen voor een deling door vier te schuiven.
Veronderstel allereerst dat a=1 en b=2 in de hierboven besproken vergelijking. Veronderstel voorts dat gegevens worden afgetast uit een buffer op de wijze die is geïllustreerd en beschreven in samenhang met fig. 2. Het convolutie-orgaan kan worden beschouwd als te werken volgens een opeenvolging van drie klokcycli. Gedurende een cyclus 0 worden de gegevens behorende bij een cirkel 16 aan het voorschalingsorgaan 32 gekoppeld. Het cyclusnuro-mer 0 veroorzaakt, wanneer aangelegd aan de coëfficiëntentabel 33, dat het voorschalingsorgaan 32 deze gegevens met één vermenigvuldigen, waardoor de gegevens rechtstreeks worden gekoppeld aan de opteller 34. De cyclus 0 die is gekoppeld aan de multiplexer 31 selecteert het O-ingangssignaal naar de opteller; dientengevolge wordt 0 opgeteld bij de gegevens behorende bij de cirkel 16. Deze gegevens worden eenvoudig vergrendeld in het vergrendelorgaan 35 onder besturing van de pixelklok. Vervolgens worden de gegevens behorende bij de cirkel 17 gekoppeld aan het voorschalingsorgaan 32 bij cyclus 1. De invoer van de cyclus 1 naar de tabel 33 veroor- zaakt dat het voorschalingsorgaan deze gegevens met twee vermenigvuldigd (een verschuiving met één naar links) alvorens deze aan de opteller 34 te koppelen. Tegelijkertijd wordt de uitvoer van het grendelorgaan 35 via de multiplexer 31 gekoppeld en opgeteld bij de uitvoer van het voorschalingsorgaan 32. Bij gevolg wordt de som P-I+2P2 gevormd en aan het grendelorgaan 35 gekoppeld. Hieropvol-gend worden bij cyclus 2 de gegevens behorende bij de cirkel 18 gekoppeld aan het voorschalingsorgaan 32. Het cyclusnumroer "2" dat wordt gekoppeld aan de tabel 33 veroorzaakt dat deze gegevens rechtstreeks aan de opteller 34 worden gekoppeld. Deze opteller 34 telt deze gegevens op bij de gegevens die zich bevinden in het grendelorgaan 35, waarbij de som ^2+^2+^3 wordt gevormd. Deze som wordt in het grendelorgaan 35 vergrendeld en vervolgens genormaliseerd door een normalisatie-orgaan 34. In de beschreven uitvoering, deelt het normalisatie-orgaan 36 de gegevens door een factor 4 (een verschuiving over 2 naar rechts), waarbij de uiteindelijke vergelijking P2+2P2+P3 4 wordt gevormd. De resulterende pixelgegevens worden in het grendelorgaan 38 vergrendeld. Bij cyclus 0 kunnen deze gegevens uit het grendelorgaan 38 worden gelezen terwijl nieuwe gegevens voor het volgende pixel aan het voorschalingsorgaan 32 worden gekoppeld.
Een vierde cyclus kan worden gebruikt (bijvoorbeeld cyclus 3) in welk geval cyclus 3 het grendelorgaan 38 kan besturen zonder dat gegevens naar het voorschalingsorgaan 32 worden verschoven tijdens cyclus 3. Dit kan worden gebruikt indien een tijdafpas-sing met 3 cycli bezwaarlijk is.
Een alternatief convolutie-orgaan is in fig. 5 weergegeven. In deze uitvoeringsvorm ontvangt een opteller 40 als een eerste ingangssignaal het uitgangssignaal van het voorschalingsorgaan 43. Wederom ontvangt het voorschalingsorgaan 43 de A Q 0 1 7 0 1 pixelgegevens uit de buffer. De mate van voorschaling van het voor-schalingsorgaan 43 wordt bestuurd door de coëfficiëntentabel 44. De uitvoer van tabel 44 wordt bestuurd door het cyclusnumer dat wordt gekoppeld aan de tabel. De andere ingangsaansluitklem van de optel-ler 40 ontvangt het uitgangssignaal van het grendelorgaan 42. Het ingangssignaal naar het grendelorgaan is het uitgangssignaal van de multiplexer 41. De multiplexer 41 kiest hetzij het uitgangssignaal van het voorschalingsorgaan 43 hetzij het uitgangssignaal van de opteller 40. De multiplexer 41 wordt bestuurd door het cyclus 0-signaal; voor cyclus 0 kiest de multiplexer 41 het uitgangssignaal van het voorschalingsorgaan 43, anders kiest het het uitgangssignaal van de opteller. Het uitgangssignaal van het grendelorgaan 42 wordt gekoppeld aan een normalisatie-orgaan 46. De mate van normalisatie wordt bestuurd door de waarden die zijn getoond als "norroa-lisatiewaarde 45". Het uitgangssignaal van het normalisatie-orgaan 45 wordt gekoppeld aan een grendelorgaan 47. Het uitgangssignaal van het grendelorgaan 47 verschaft de gefilterde pixelgegevens.
De schakeling volgens fig. 5 voert dezelfde convo-lutie uit als de schakeling van fig. 4.
Veronderstel dat de gegevens voor de lijn n voor pixel 0 aan het voorschalingsorgaan 43 worden gekoppeld. Gedurende de cyclus 0 kiest de multiplexer 41 het uitgangssignaal van het voorschalingsorgaan 43 en koppelt de gegevens in het grendelorgaan 42. Het voorschalingsorgaan 43 voert geen schaling van de gegevens uit omdat a=1 in de hierboven besproken vergelijking. De gegevens voor pixel 0 van de lijn n+1 worden voorgeschaald met 2 en deze gegevens worden vervolgens opgeteld bij de inhoud van het grendelorgaan, waarbij de som wordt gekoppeld aan de multiplexer 41 en vergrendeld in het grendelorgaan 42. Het proces zet zich voort totdat de som aPl+2P2+aP3 gevormd, berekend en opgeslagen is in het grendelorgaan 42. Het normalisatie-orgaan 46 deelt deze som door een factor 4 en de resulterende genormaliseerde waarde wordt gekoppeld aan het grendelorgaan 47. Wederom worden, bij cyclus 0 (de start van nieuwe gegevens naar het voorschalingsorgaan 43 voor het volgende pixel) de gegevens geklokt uit het grendelorgaan, waardoor de gefilterde pixelgegevens voor het weergeeforgaan worden verschaft. Wederom kan een schema met vier cycli worden gebruikt, waarbij de vierde cyclus (cyclus 3) het grendelorgaan 47 bestuurt.
In fig. 7A wordt een algemeen voorschalingsorgaan getoond dat een vermenigvuldiger 50 omvat. De pixelgegevensinvoer wordt aan de vermenigvuldiger gekoppeld, waarbij de uitgang van de vermenigvuldiger de geschaalde pixelgegevens verschaft. De vermenigvuldigingsfactor wordt bestuurd door het uitgangssignaal van de coëfficiëntenopzoektabel 51. Dit uitgangssignaal wordt bepaald door het cyclusnummer. Het cyclusnumer (bijvoorbeeld 1, 2, 3 ...) kiest de vermenigvuldigingsfactor die is vereist voor de convolutie die wordt gebruikt en bestuurt daardoor de vermenigvuldigingsfactor die wordt uitgevoerd door de vermenigvuldiger 50.
Fig. 7B illustreert een voorschalingsorgaan dat kan worden gebruikt wanneer de vermenigvuldiging die wordt toegepast door de convolutiestap een vermenigvuldiging met ëên of met twee met zich meebrengt. In dit geval ontvangt een vermenigvuldiger 53 de pixelgegevensinvoer bij één aansluitklem en de pixelgegevensinvoer vermenigvuldigd met twee (dat wil zeggen naar. links over 1 verschoven met een opvulling met nul rechts) aan zijn andere aansluitklem. Het cyclusnummer vereist dat de "x2" pixelgegevens worden gebruikt om de "0"-invoer naar de multiplexer 53 te kiezen en het verschaft aldus de vereiste geschaalde pixelgegevensinvoer.
De hierboven besproken convolutie-organen zijn in het bijzonder geschikt voor een seriële kerngegevensstroom. Fig. 6 illustreert een convolutie-orgaan dat in een tabel 71 is geïmplementeerd die kan worden gebruikt voor een parallelle gegevensstroom. Het is in het bijzonder nuttig wanneer een beperkt aantal bits worden gebruikt; bijvoorbeeld in een 1 bit/pixel weergave, waarbij de 1-2-1 kern wordt gebruikt. De resultaten van de convolu-tierekenkunde worden vooraf berekend en in de tabel geplaatst. Zoals zal worden gezien, wordt dit gebruikt voor software-uitvoe-ringsvormen van de uitvinding, waarbij de kleurenopzoektabel vooraf wordt geladen om te worden gebruikt als een convolutie-opzoektabel.
In een thans de voorkeur hebbende uitvoeringsvorm van de uitvinding, worden de pixelgegevens opgeslagen in twee banken van een VRAM-geheugen, die tezamen een rasterbuffer omvatten. In fig. 8 is dit geïllustreerd door de bank 0 en bank 1 van het geheugen 58. De adressen voor de geheugenbanken worden hetzij verschaft vanuit de centrale verwerkingseenheid (CPU), hetzij vanuit een pixeladresteller 55. Een van deze adressen wordt door de multi-plexer 56 gekozen. Gegevens naar en van de CPU worden aan de RAM-poorten van het geheugen gekoppeld via de bus 59. De schuifregis-teruitgangen van elke bank 0 of 1 worden door de multiplexer 60 gekozen. (Deze multiplexer kan worden weggelaten indien de 3-toestan-denvoorziening van het VRAM-schuifregister snel genoeg schakelt.)
De parallelle lijnen vanuit de multiplexer 60 worden aan drie grendelorganen gekoppeld, zoals grendelorgaan 6Q, en vervolgens parallel naar drie schuifregisters, zoals schuifregister 63. De multiplexer 64 kiest gegevens uit één van de drie schuifre-gisters en koppelt deze aan de kleurenopzoektabel (CLUT) 65. De uitgang van de CLUT wordt gekoppeld aan een convolutie-orgaan, zoals convolutie-orgaan 68, dat kan zijn geconstrueerd zoals hierboven is beschreven. De digitale uitgangssignalen vanuit het convolutie-orgaan worden omgezet door een digitaal-in-analoog-omzetter, zoals omzetter 69, om RGB-signalen te verschaffen voor een kleuren-monitor. Normaal is na het convolutie-orgaan 68 digitaal of na de omzetters 69 analoog een gammacorrectie-orgaan geplaatst.
Zoals aangeduid in fig. 8, wordt de bank 0 gebruikt om even lijnparen van pixelgegevens op te slaan en de bank 1 wordt gebruikt om oneven lijnparen van pixelgegevens op te slaan. Merk op dat dit verwijst naar "lijnparen", niet naar lijnen zelf. Meer in het bijzonder, verwijzen de "even lijnparen" naar de lijnen 0 en 1, 4 en 5, 8 en 9, enz. De oneven lijnparen verwijzen naar de lijnen 2 en 3, 6 en 7, enz. De uitgangsstromen vanuit de twee geheugenbanken (met tweewegvervlechting) worden met elkaar in multiplex gebracht, teneinde een enkele woordstroom te Vormen, zoals is getoond in fig. 1. Dit verschaft groepen van vier woorden, waarbij één woord voor elke groep niet wordt gebruikt. De andere drie woorden worden ge-convolueerd zoals hierboven is beschreven.
Een uitvoer vanaf de bank 0, meer specifiek woord 0/lijn 0, woord 0/lijn 1, woord 1/lijn 0 en woord 1/lijn 1, is getoond in fig. 9. Een bijbehorende uitvoer vanuit de bank 1 is ook getoond, meer specifiek woord 0/ lijn 2, woord 0/lijn 3, woord 1/lijn2 en woord 1/lijn 3. Na het multiplexen verschaffen zij een enkele woordstroom, zoals meer specifiek woord 0/lijn 0, woord 0/lijn 2, woord 0/lijn 1, woord 0/lijn 3, woord 1/lijn 0, woord 1/lijn 2, woord 1/lijn 1 en woord 1/lijn 3. Dan worden, zoals aangeduid door convolueren, woord 0/lijn 0, woord 0/lijn 2 en woord 0/lijn 1 gebruikt om gegevens te verschaffen voor het pixel of de pixels (afhankelijk van hoeveel pixels voor elk woord worden opgeslagen) voor de lijn 1 in het vervlochten veld 1. Op soortgelijke wijze verschaffen woord 1/lijn 0, woord 1/lijn 2 en woord 1/lijn 1 gegevens voor het daaropvolgende pixel of de daaropvolgende pixels op die lijn. Tegelijkertijd worden woord 0/lijn 3 en woord 2/lijn 3 genegeerd. Bij een andere gang door het geheugen worden gegevens voor de pixels voor de lijn 2 in het vervlochten veld 2 gebruikt; dit keer worden woord 0/lijn 0 en woord 1/lijn 0 genegeerd.
Gezien vanuit de CPU wordt het VRM gemaakt om te verschijnen als een aaneengesloten blok. Dit veroorzaakt dat het vervlechten transparant is voor de CPU. De onderlinge verbindingen die deze doorzichtigheid verschaffen worden hierna besproken.
In de linkerkolom van fig. 10 wordt een gebruikelijke koppeling van de adressen tussen de CPU en een VRAM getoond. In feite is er een één-op-één-verbinding tussen de CPU-adreslijnen en de VRAM-adreslijnen. Het voorbeeld van fig. 10 veronderstelt een 32-bits woordafmeting. De CPU-adresbits A0 en A1 worden aldus gebruikt om VRAM-bytes en woorden vrij te geven, in plaats van specifieke VRAM-adresbits. Om deze reden wordt het CPU-adresbit A2 aan het VRAM-adresbit A0 gekoppeld, CPU-adresbit A3 aan VRAM-adresbit A1, enz. Ook moet één adreslijn, aangezien er twee VRAM-banken zijn, worden aangewezen als een bankselectiesignaal. Bij een gebruikelijke koppeling kan elk adresbit worden gebruikt dat geschikt is voor het ontwerp. Het CPU-adres Ά19 is in dit voorbeeld gekoppeld aan BANKSEL.
De verbindingen tussen de CPU-adresbits en de VRAM-adresbits voor het tweewegvervlechten wordt getoond in de tweede kolom van fig. 10. Dit voorbeeld veronderstelt dat er 1024 bytes per aftastlijn zijn. Indien dit het geval is, is het adresbit A1Q vanuit de CPU het bit dat tussen oneven en even aftastlijnen kiest. Dit bit wordt gekoppeld aan A0 van het VRAM. Het effect van deze bitmanipulatie is dat in plaats van het kiezen tussen oneven en even aftastlijnen, het adresbit kiest tussen oneven en even woorden, waardoor twee lijnen per woord tezamen worden vervlochten. Ook wordt A11 gekoppeld aan BANKSEL om tussen de VRAM-banken 0 en T te kiezen om de andere aftastlijn. Het is deze bitmanipulatie die het tweewegvervlechten transparant doet voorkomen voor de CPU. (Verondersteld wordt dat de aftastlijnlengte een macht van twee is, in het andere geval is de adressering complexer).
De schuifregisters, zoals het schuifregister 63 van fig. 8, worden gebruikt om een enkel pixel in staat te stellen uit een woord te worden uitgeklokt. Op kenmerkende wijze bevat een woord meer dan één pixel, dientengevolge is een parallel geladen schuifregister vereist om het de afzonderlijke pixels mogelijk te maken te worden verwijderd uit het woord. Bovendien zijn, indien meerbits pixels worden gebruikt, meerbitsschuifregister vereist voor elk woord.
De hierboven beschreven resultaten voor een stelsel met tweewegvervlechting kan ook worden verkregen uit een enkele geheugenbank, wanneer een vierwegvervlechting wordt toegepast. Deze uitvoering heeft het nadeel dat een dubbele geheugencapaciteit is vereist aangezien twee kopieën van de gegevens nodig zijn voor het vierwegvervlechten, zoals zal worden beschreven.
Fig. 11 illustreert een blokschema voor de uitvoering met een vierwegvervlechting, waarbij wederom een VRAM-geheugen met dubbele poort wordt toegepast. De RAM-poort van het geheugen wordt via een grendelorgaan 73 verbonden met de CPU, teneinde het mogelijk te maken dat gegevens worden gelezen in en uit het geheu- gen. De schuifregisterpoort van het geheugen wordt gekoppeld aan drie grendelorganen, zoals een grendelorgaan 74, waarbij elk gren-delorgaan wordt gekoppeld aan een schuifregister, zoals een schuif-register 75. De multiplexer 76 kiest één van de schuifregisters en kopppelt zijn uitgang aan een CLUT 77. Een digitale kleurenuitvoer vanuit de CLUT, na het convolueren door het convolutie-orgaan 78, verschaft RGB-uitvoeren. De grendelorganen, schuifregisters, de multiplexer, de CLUT en het convolutie-orgaan voor deze uitvoeringsvorm zijn op dezelfde wijze werkzaam als in de uitvoeringsvorm van fig. 8, met uitzondering van hetgeen hierna wordt besproken.
De adressen naar het VRAM worden door de multiplexer 79 gekozen hetzij uit een pixeladresteller 80 hetzij uit de CPU nadat de CPU-adressen aan de parallelle laadteller en grendelorgaan 81 (zoals zal worden, beschreven) zijn gekoppeld. De meest significante bits van het adres worden aan de teller 81 gekoppeld, de minst significante bits worden eenvoudigweg doorgelaten door een grendelorgaan naar de multiplexer 79.
Zoals gezegd, wordt een enkele bank van het VRAM gebruikt roet een vierwegvervlechting en door het opslaan van twee complete kopieën van de pixelgegevens in het VRAM 72. Dit is nodig om pixelgegevens te verkrijgen vanuit drie lijnen (sequentieel) en om verschillende lijnengroeperingen te verschaffen, zoals duidelijk zal worden. Het vierwegvervlechten veroorzaakt dat de CPU woorden in het VRAM schrijft in een vier-lijns "zig-zag" volgorde, hetgeen evenwel vanuit het gezichtspunt van de CPU transparant is. In het VRAM wordt elk van de twee kopieën van de pixelgegevens opgeslagen met zijn vervlechtingsverschuiving over twee lijnen vanaf de andere kopie. Dat wil zeggen dat de woordvolgorde van de eerste lijn van de even kopie is: lijn 0/woord 0, lijn 1/woord0, lijn 2/woord 0, lijn 3/woord 0, lijn 0/woord 1, lijn 1/woord 1, lijn 2/woord 1, lijn 3/woord 1, enz. En de eerste lijn van de oneven kopie van het rasterbuffer is: lijn-1/woord 0, lijn-2/woord 0, lijnO/woord 0, lijn 1/woord 1, lijn-1/woord 1, lijn-2/woord 1, lijn 0/woord 1, lijn 1/woord 1, enz. (Lijnen -1 en lijnen -2 geven zwarte lijnen aan boven de eerste lijn op het weergeeforgaan. Zij worden gebruikt om flikkeren aan de omtrek van de weergave te vermijden, zij worden bij aanvang geladen met gegevens die de kleur zwart representeren en behoeven niet toegankelijk te zijn voor de CPU wanneer zij een-maal zijn geladen.)
Ofschoon twee complete kopieën van de pixelgegevens in het geheugen worden opgeslagen, heeft de CPU slechts toegang tot de even kopie. Wanneer de CPU-gegevens in het geheugen schrijft, worden de adressen en de gegevens vergrendeld en wordt de schrijf-operatie herhaald om de gegevens in de oneven kopie te schrijven. Bovendien wordt slechts de even kopie gelezen door de CPU. Dit bijkomende schrijven van de oneven kopie wordt uitgevoerd door gebruikelijke schakelingen in de rasterbuffer. De even en oneven kopieën worden onderscheiden door het meest significante bit in het VRAM, waardoor de even rasterkopie in de onderste helft van het geheugen wordt geplaatst en de oneven kopie in de bovenste helft.
Het vierwegvervlechten van de even kopie wordt verkregen door de adresbits uit de CPU te nemen die kiezen tussen oneven en even aftastlijnen en door deze te verbinden aan bit 0 van het VRAM. Het adresbit vanuit de CPU dat tussen even en oneven af-tastlijnparen kiest, wordt verbonden met bit 1 van het VRAM en vervolgens worden alle andere bits vanuit de CPU "in bovenwaartse richting" verschoven, zoals getoond in fig. 13 in de rechterkolom. Wederom wordt in fig. 13 de gebruikelijke onderlinge verbinding getoond in de linkerkolom ten behoeve van een vergelijking, zoals het geval was in fig. 10. Het effect van deze bit-herafbeelding voor de 1024 bytes per aftastweergeeflijn is dat het oneven en even aftast-lijn-"bit" (bijvoorbeeld bit 10) kiest tussen oneven en even woorden, en dat het oneven en even aftastlijnpaarbit (bijvoorbeeld bit 11) kiest tussen oneven en even woordparen. Vanuit het gezichtspunt van de CPU verschijnt het geheugen wederom als een aaneengesloten blok.
Het vierwegvervlechten voor de oneven rasterbuffer-kopie wordt verkregen op dezelfde wijze als de even kopie, behalve dat voor de bit-herafbeelding een opteller de lengte van twee aftastlijnen optelt bij het adres dat wordt opgewekt door de CPU
(bijvoorbeeld wordt het getal 2048, voor 1024 bytes per aftastlijn, opgeteld bij het CPU-adres voorafgaande aan de bit-herafbeelding). Het effect van deze optelling is het verschuiven van de inhoud van de oneven kopie in de buffer over twee aftastlijnen (dat wil zeggen na herafbeelding over twee woorden).(Verondersteld wordt dat de aftas t lijnlengte een macht van twee is, in het andere geval is het adresseren complexer.)
De twee-aftastlijnenopteller wordt gemakkelijk geïmplementeerd aangezien de enige keer dat de oneven bankkopie wordt geadresseerd, is nadat de even kopie is geadresseerd. Deze optelling wordt verkregen uit de teller 81 van fig. 11 door de teller stapsgewijs te verhogen. Veronderstel dat er 1024 bytes per aftast-lijn zijn, dan worden de CPU-adresbits A0-A10 vergrendeld in het grendelorgaan van de teller en grendelorgaan 81, en de adresbits 11 en hogere worden aan de teller gekoppeld. Om de even kopie te schrijven, worden de adresbits eenvoudig vergrendeld door de teller en vergrendelorgaan 81. Om de oneven kopie te schrijven wordt de teller stapsgewijs verhoogd en worden de gegevens die zijn vergrendeld geschreven in het geheugen met een verschuiving over twee aftastlijnen.
Een ander effect van de adresmanipulatie is te veroorzaken dat de uitvoer van het geheugen (schuifregisterpoort) in aftastlijnen van "lijnquadrupletten" is· De even lijnquadrupletten zijn 0/1/2/3, 4/5/6/7, 8/9/10/11, enz. De oneven lijnquadrupletten zijn -2/-1/-0/1, 2/3/4/5, 6/7/8/9, enz. Elk convolutietriplet vereist door het convolutie-orgaan wordt dan beschikbaar in ién van deze lijnquadrupletten. De lijnquadrupletten worden in dezelfde volgorde gezet voor beide velden; oneven lijnquadruplet -2/-1/-0/1, even lijnquadruplet 0/1/2/3, oneven lijnquadruplet 2/3/4/5, even lijnquadruplet 4/5/6/7, enz. Het specifieke veld dat wordt weergegeven, wordt bepaald door welke drie lijnen worden geconvolueerd uit elk lijnquadruplet. Bijvoorbeeld zijn in veld 1 voor de lijnen -1, 1, 3 en 5 de tripletten -2/-1/0, 0/1/2, 2/3/4 en 4/5/6 vereist. Vervolgens zijn in veld 2 voor de lijnen 0, 2, 4 en 6 de tripletten -1/0/1, 1/2/3, 3/4/5 en 5/6/7 vereist, hetgeen leidt tot dezelfde lijnquadruplettenopeenvolging.
De uitroer van het geheugen wordt vergrendeld en vervolgens worden de schuifregisters gebruikt op de wijze die is beschreven in samenhang met de voorgaande uitvoeringsvorm, met uitzondering dat de lijnvolgorde en de lijnquadrupletten verschillend zijn, dit verschil wordt getoond in fig. 12.
De werkwijze volgens de onderhavige uitvinding kan geroakkelijk worden geïmplementeerd in software om een tijdgetrouwe convolutie te verschaffen. Twee uitvoeringsvormen van de uitvinding worden hierna beschreven, een voor een planair rasterbuffer en de ander voor een "gedrongen" ("chunky") rasterbuffer. De werkwijze voor de planaire rasterbuffer is in het bijzonder bruikbaar wanneer een enkel bit per pixel (die bijvoorbeeld zwart of wit aangeeft) wordt opgeslagen in de buffer.
Een planaire rasterbuffer ten behoeve van deze toepassing (tevens zijnde de algemeen geaccepteerde definitie) is er iin die is samengesteld uit bitvlakken, waarbij elk vlak één bit voor elk pixel van de weergave verschaft. Deze inrichting wordt bij talrijke commercieel verkrijgbare computers gebruikt, zoals die vervaardigd door Sun Microsystems, Ine.; Apollo, SGI, enz. Teneinde een kleur voor een gegeven pixel te specificeren, draagt elk vlak één bit bij. Bij gevolg is, indien er acht vlakken zijn, de maximale kleurendiepte 8 bits per pixel; indien er 24 vlakken zijn is de maximale kleurendiepte 24 bits per pixel, enz. Aan de CPU. wordt toegang geboden tot woorden in een planaire rasterbuffer met slechts één vlak tegelijkertijd. Bijvoorbeeld zou een 32-bits lezen . of schrijven vanuit de CPU de toegang toestaan tot één bit van 32 horizontaal aangrenzende pixels tegelijk. Om de CPU toegang te laten krijgen tot alle bits in een enkel pixel, moet deze zoveel toe-gangscircuit uitvoeren als er vlakken zijn.
Daarentegen worden bij een gedrongen rasterbuffer alle bits voor een gegeven pixel opgeslagen als aangrenzende bits van een geheugenwoord. Bijvoorbeeld worden, indien de kleurendiepte 4 bits per pixel is, en de CPU-woordafmeting 32 bits is, dan 8 pixels opgeslagen in elk CPU-woord. In tegenstelling tot de planai- re rasterbuffer, zal een gegeven CPU-toegang altijd toegang hebben tot alle bits in een gegeven pixel, en in sommige gevallen de bits in aangrenzende pixels. Gedrongen rasterbuffers zijn ook gebruikt in commercieel beschikbare computers zoals Apple Computer, Inc's, Macintosh II computer.
A. Software-uitvoeringsvora van de onderhavige uitvinding voor een planaire rasterbuffer·
Veronderstel dat een één bit per pixelweergave wordt opgeslagen in de rasterbuffer, bijvoorbeeld in vlak 0. Onder verwijzing naar fig. 14 en voor een ogenblik stap 83 buiten beschouwing latende, worden gebruikelijke blokverplaatsingen toegepast om de pixelgegevens vanuit het vlak 0 naar het vlak 1 te verplaatsen, evenwel worden, wanneer deze gegevens naar het vlak 1 worden verplaatst, deze 1 aftastlijn omlaag geplaatst, zoals getoond door blok 84. De gegevens worden nogmaals in een blok verplaatst vanuit het vlak 0 naar het vlak 2 van de buffer, maar dit keer worden zij bij het schrijven naar het vlak 2 één aftastlijn omhoog geschreven ten opzichte van het vlak 0, zoals aangegeven door de stap 85.
Zoals aan gegeven door de stap 86, worden de gegevens vanuit de vlakken 0, 1 en 2 door aftasting uit het geheugen gelezen. De blokverplaatsingen waarborgen dat de juiste bits beschikbaar zijn in de bits 0, 1 en 2 van elk pixel om terstond een convolutie uit te voeren zoals hierboven is beschreven (op kenmerkende wijze een "1-2-1"-convolutie). Voor elk gegeven pixel bevat het vlak 0 het lijn n bit, het vlak 1 bevat het lijn n-1 bit en het vlak 2 bevat het lijn n+1 bit.
In de thans de voorkeur hebbende uitvoeringsvorm van deze werkwijze is de convolutie in feite vooraf berekend voor elke mogelijke 3-bits combinatie-uitvoer vanuit het geheugen en opgeslagen in een kleurenopzoektabel. Dit is getoond door de eerste stap 83 waarin de CLUT wordt voorgeladen met grijsschaalgegevens. De uitvoer van het geheugen tijdens het aftasten wordt gekoppeld aan de CLÜT en de uitvoer van de CLUT verschaft de geconvolueerde pixelgegevens, zoals getoond bij stap 87.
Deze uitvoeringsvorm is wederom geïllustreerd in fig. 15, waarbij is verondersteld dat de planaire rasterbuffer vier vlakken heeft, vlakken 88, 89, 90 en 91. Bij een kenmerkende operatie, worden de vier bits die zijn gedefinieerd in elk pixel verschaft als één uit elk vlak, zoals getoond door de stippellijn 92. Ook wordt tijdens een kenmerkend kleurenbedrijf de 4-bits uitvoer vanuit de buffer gekoppeld aan de kleurenopzoektabel 93 om bijvoorbeeld een 12-bits RGB-uitvoer te verschaffen.
Wanneer de werkwijze volgens de onderhavige uitvinding wordt geïmplementeerd, wordt een weergave met één bit per pixel opgeslagen in het vlak 0. Bij het opstarten van het stelsel worden de acht invoeren van de CLUT (aangezien er drie bits per pixel zijn, zijn er 8 invoeren) in de tabel van grijsschalen (zie fig. 21) geladen. Vervolgens verricht de CPU herhaaldelijk blokver-plaatsingen van het geheel van het vlak 0 naar het vlak 1, evenwel één aftastlijn omlaag. De gegevens vanuit het blok 0 worden ook verplaatst naar het blok 2, ditmaal één aftastlijn omhoog. Wanneer dit is uitgevoerd, worden de gegevens vanuit de vlakken 88, 89 en 90 aan de kleurenopzoektabel gekoppeld om de grijsschaaluitvoer te verschaffen. (De gegevens, indien aanwezig, uit het vlak 3 worden voor deze modus genegeerd.)
Stappen worden ondernomen om flikkeren aan de rand van het scherm of de weergave te voorkomen, dat wil zeggen abrupte overgangen bovenaan en onderaan te voorkomen. In het algemeen is het het beste dat de rand van de weergave geleidelijk convolueert in zwart bovenaan en onderaan. Dit wordt verkregen door één lijn toe te wijzen die zwart initialliseert bovenaan en onderaan het vlak 0, twee lijnen bovenaan het vlak 1 en twee lijnen onderaan het vlak 2. Deze "bewakingsbanden" waarborgen dat de boven- en onderranden geleidelijk convolueren naar zwart.
In de thans de voorkeur hebbende uitvoeringsvorm wordt een gammacorrectie toegepast, zoals getoond door het blok 13 van fig. 1. De gammacorrectie kan in de grijsschaalgegevens worden ingebouwd en bijgevolg in de CLUT bij aanvang worden geladen.
In een kenmerkende toepassing kan de CPU niet snel genoeg zijn om de blokverplaatsingen naar de vlakken 1 en 2 te voltooien in een enkel rastertijdsduur. Het is gebleken dat het visueel acceptabel is de blokverplaatsingen binnen verscheidene raster-tijdsduren te voltooien/ aangezien het vlak 0 altijd bijgewerkt is en dit de helft van de intensiteit voor een gegeven pixelwaarde bijdraagt.
B Sof tware-uitvoeringsvorm voor de gedrongen rasterbuffer
In deze uitvoeringsvorm wordt een tijdgetrouwe con-volutie met één bit per pixel met een gedrongen rasterbuffer gerealiseerd. In tegenstelling tot de hierboven beschreven werkwijze voor de planaire rasterbuffer, kan het exacte aantal bits per pixel niet worden verkregen wanneer de gegevens worden geherrangschikt, waardoor de volgende macht van twee groter dan het aantal bits dat is vereist, wordt gebruikt. Voor de beschreven uitvoeringsvorm wor- ... den drie lijnen gebruikt voor de convolutie en worden bijgevolg vier pixelbits opgeslagen in een buffer voor elk pixel. De hieronder beschreven werkwijze plaatst de bits in hun juiste positie·
Eerst dient te worden opgemerkt dat een één bit per pi-xelrasterbuffer "van het scherm af" ("off screen") in RAM wordt gebruikt door de CPU in de tekening. Deze rasterbuffer is gescheiden van de vier bits per pixelrasterbuffer die feitelijk wordt afgetast om de weergave te verschaffen. De hieronder beschreven werkwijze leest gegevens uit de één bit per pixelrasterbuffer, expandeert de gegevens naar de vier bits per pixel, schrijft de gegevens vervolgens in de vier bits per pixelrasterbuffer. De werkwijze voegt de pixelinformatie vanuit de twee eerdere lijnen samen alvorens zij de resultaten in de vier bits per pixelrasterbuffer schrijft. Wanneer het vier-bits pixel wordt gepresenteerd aan de kleurenopzoektabel, zijn de drie bits voor de lijnen n-1, n en n+1 beschikbaar voor het opzoeken van de juiste grijsschaal voor de 1-2-1-convolutie. Net als bij de vorige uitvoeringsvorm wordt de kleurenopzoektabel wederom geladen roet grijsschaalinformatie om de convolutie te verschaffen. (Drie van de vier bits die uit de vier bits per pixelras- terbuffer worden gelezen, worden door de CLUT gebruikt om het ge-convolueerde uitgangssignaal voor de weergave te verschaffen.) stap 0
Vier 32-bits woorden (A, B, C en D) worden aanvankelijk op nul gezet. (A, B, C en D verwijzen elk naar 32-bits registers in de CPU.) Een 32-bits woord R wordt gelezen beginnende bij de uiterst linkse pixelpositie van de bovenste aftastlijn van de een bit per pixelrasterbuffer. A, B, C en D worden alle opgeslagen bij aangrenzende lokaties van links naar rechts, beginnende bij de bovenste aftastlijn van de vier bits per pixelrasterbuffer.
stap 1 R wordt uit de volgende 32 bits gelezen in de één bit per pixelrasterbuffer direct onder het laatste 32-bits woord dat is gelezen uit de één bit per pixelrasterbuffer. Dit is weergegeven in fig. 16, waarin twee woorden, de woorden 93 en 94, zijn getoond voor de lijnen n en n+1 in de één bit per pixelrasterbuffer.
stap 2
Zoals is getoond in fig. 17, wordt één byte van R geëxpandeerd tot een tweede 32-bits woord M, zodanig dat elk van de 8 bits met 4-bits intervallen wordt geplaatst in het 32-bits woord, beginnende bij bit 1 (dat wil zeggen bit 0 naar bit 1, bit 1 naar bit 5, bit 2 naar bit 9, enz.) en een 1 wordt in elke vierde bit geplaatst beginnende bij bit 0. Alle andere bits worden op nul gesteld. Bijvoorbeeld wordt de byte 0111 0101 omgezet in (getoond als groepen van 4): 0001 0011 0011 0011 0001 0011 0001 0011. Dit wordt uitgevoerd door gebruikmaking van een 256x32-bits vooraf geladen opzoektabel in RAM* stap 3 A wordt naar links over 1 verschoven. In sommige microprocessors, zoals Motorola onderdeel nr. 68020, kan dit sneller tot stand worden gebracht door A bij zichzelf op te tellen. In het bovenste gedeelte van fig. 18 is A voor de verschuiving getoond en in het onderste gedeelte van fig. 18 na de verschuiving.
stap 4 M wordt bitgewijs aan een OF-bewerking onderworpen in A, zoals getoond in fig. 19. Ten eerste dient dit om de byte vanuit R in A te voegen aangezien het bekend is dat de bits in A die corresponderen met de bits uit de byte uit R alle nul zijn (alles dat aan een OF-bewerking wordt onderworpen met nul blijft zijn waarde behouden). Ten tweede dient dit om elke vierde bit dat begint met bit 0 in A tot één te dwingen (dit bereidt de samenvoeg-operatie in stap 10 hieronder voor).
stap 5 A wordt opgeslagen in de vier bits per pixelraster-buffer direct onder de laatste plaats waar A werd opgeslagen zoals is getoond in fig. 20.
stap 6
De stappen 2 t/m 4 worden herhaald voor de drie andere bytes van R. Ditmaal worden B, C en D gebruikt in plaats van A.
stap 7 R wordt gelezen voor het volgende 32-bits woord in de één bit per pixelrasterbuffer direct onder het laatste 32-bits woord zoals in stap 1 hierboven.
stap 8
Zoals is getoond in fig. 17, wordt één byte van R geëxpandeerd tot N, waarbij elk van de acht bits bij 4-bitsinter-vallen wordt geplaatst beginnende bij bit 1. Ook wordt een 0 geplaatst in elk vierde bit beginnende bij elk bit 0 en alle andere bits worden op 1 gesteld. Bijvoorbeeld zou de byte 0111 0101 omgezet worden in 1100 1110 1110 1110 1100 1110 1100 1110. Dit wordt tot stand gebracht door middel van een tweede 256x32-bits voorgeladen opzoektabel in RAM.
stap 9
Zoals getoond in fig. 18, wordt A naar links over 1 verschoven. Wederom, kan, zoals vermeld voor stap 3, een optelling van de A bij zichzelf worden toegepast.
stap 10
Zoals getoond in fig. 19, wordt M bitgewijs aan een EN-werking onderworpen in A. Ten eerste dient dit om de byte vanuit R in A te voegen aangezien het bekend is dat de bits in A die corresponderen met de bits vanuit de byte vanuit R alle enen zijn (alles dat aan een EN-bewerking wordt onderworpen met 1 behoudt zijn waarde), Ten tweede dient dit om elke vierde bit beginnende bij bit 0 in A tot nul te dwingen (dit bereidt de samenvoegoperatie in stap vier hierboven voor).
stap 11 A wordt in de 4-bits rasterbuffer opgeslagen direct onder de laatste plaats waar A werd opgeslagen. Zie woord 95 van fig. 20.
stap 12
De stappen 8 t/m 10 worden herhaald voor de drie andere bytes vanuit R. Zij worden in B, C en D samengevoegd in plaats van A. Zie de woorden 96, 97 en 98 van fig. 20.
stap 13
De stappen 1 t/m 12 worden herhaald totdat de bodem van de rasterbuffer wordt bereikt, waarbij vervolgens R wordt gelezen voor de pixels op de bovenste aftastlijn van de 1 bit per rasterbuffer juist rechts van waar het werd geladen bij de aanvang van de laatste doorgang. A, B, C en D worden alle opgeslagen bij naburige lokaties van links naar rechts op de bovenste aftastlijn van de 4 bits per pixelrasterbuffer juist rechts vanwaar zij werden geladen bij de aanvang van de laatste doorgang.
Samengevat worden de pixels in de 4-bits per pixelrasterbuffer 100 van fig. 20 gecodeerd met lijn n+1 in bit 1, n in bit 2 en n-1 in bit 3 (deze resulterende bitconfiguratie is getoond in fig. 19). Bit 0 wordt genegeerd door de CLUT 101 van fig- 20. De 1 bit per pixelrasterbuffer van fig. 16 wordt verticaal afgetast met een nieuw bit opgeteld bij elk 4-bits pixel voor elke aftastlijn door een verschuiving naar links van het bestaande bit voor het pixel roet één en het nieuwe bit samen te voegen bij bit 1 van het 4-bits per pixel woord. De schuifoperatie dient voor het verstellen van het pixel vanuit zijn eerdere centrering op lijn n-1 (de lijn erboven) naar zijn huidige centrering op lijn n. Met andere woorden, wanneer de operatie begint, bevatten de 4-bits pixelgegevens bits van de lijnen n-2, n-1 en n aangezien de gegevens werden gebruikt voor de lijn erboven. De schuifoperatie naar links verandert de configuratie van de vier bits tot n-1, n en een 1 of een 0 in bit 1 (bit 0 wordt genegeerd). Vervolgens wordt het nieuwe bit vanuit de 1 bit per pixelrasterbuffer toegevoegd aan bit 1 voor de lijn n+1. Het nieuwe samengestelde 4-bits woord wordt opgeslagen in de 4 bits per pixelrasterbuffer en, zoals vermeld wordt de CLUT gebruikt om de convolutie te verschaffen.
In detail begint de werkwijze linksboven de raster-buffer en werkt zij naar beneden langs een 32-pixels kolom. Het in R lezen laadt de 32 1-bits pixels, waarbij vervolgens elke acht pixels van de 32 afzonderlijk worden behandeld. De eerste 8 pixels (een byte) worden gebruikt als een opzoektabelindex om een 32-bits woord M op te halen. M houdt de 8 pixels, uitgespreid bij 4-bits intervallen, zodanig dat zij gereed zijn om te worden samengevoegd voor de 4 bits per pixelrasterbuffer.
M is ook opgezet met de rest van zijn bits geprepareerd voor hetzij een bitgewijze EN-samenvoeging, hetzij een bitge-wijze OF-samenvoeging. De reden dat het wisselt tussen EN en OF is dat dit de wis- (of instel)-stap van de bits in A bespaart, welke bits de bestemming zijn voor de 8 pixels vanuit R. Aangezien A naar links zal worden verschoven juist voorafgaande aan de EN- of OF-sa-menvoeging, wordt het bit direct rechts van de bestemming van de R-bits zodanig gedwongen dat bij de volgende stap zij reeds geprepareerd zijn Voor het samenvoegen. EN bereidt voor de OF voor door nullen op te leggen en OF bereidt voor de EN voor door enen op te leggen.
A wordt met één naar links verschoven om het pixel dat is gecentreerd voor de voorafgaande lijn bij te werken tot te zijn gecentreerd voor de huidige lijn. De verschuiving naar links verplaatst de eerdere lijn n+1 naar de huidige lijn n en de eerdere lijn n naar de huidige lijn n-1. De eerdere lijn n-1 (huidige lijn n-2) wordt weggeschoven. Merk op dat deze verschuiving van toepas- cïnrf is rrn alle 8 ni s dis zi oh havinden in dfi 32 bits van Ά. zn— dat het een parallelle operatie langs acht wegen is. Merk ook op dat de bits van de eerdere lijn n-1 schuiven naar het niet gebruikte bit van het volgende 4-bits pixel naar links (of van de linker-rand van het 32-bits woord af).
Vervolgens wordt M samengevoegd bij A door hetzij een EN-bewerking of een OF-bewerking. Bits van n en n-1 worden alleen gelaten, nieuwe n+1 bits worden ingevoegd, en de niet gebruikte bits worden op een bekende toestand (0 indien een EN, 1 indien een OF) ingesteld. A wordt tenslotte opgeslagen in de 4 bits per pixelrasterbuff er.
De andere 24 pixels in R worden op dezelfde wijze behandeld, met 8 pixels elk voor B, C en D.
Dezelfde stappen worden uitgevoerd voor elke successievelijke aftastlijn daaronder totdat de lijn van de rasterbuf-fer worden bereikt. Dan worat de volgende kolom van 32 pixels direct naar rechts neerwaarts afgetast, enz. totdat het gehele raster is afgetast.
De CLUT 101 van fig. 10 wordt op een soortgelijke wijze geladen als die van de planaire rasterbufferimplementatie die hierboven in fig. 21 is getoond. De verschillen zijn dat de bitvol-gorde verschillend is en dat, aangezien bit 0 in de 4-bits pixels onbepaald is (het verandert afhankelijk van of de laatste samenvoeging met een EN-bewerking of een OF-bewerking was), dezelfde grijswaarde voor elke twee CLUT-invoeren wordt opgeslagen.
Andere convolutiekemen
In de vorige paragraaf is de meeste nadruk gelegd op de 1-2-1 kern. Experimenten hebben getoond dat noch een 3-lijns convo-lutie noch een aan-uit-aan-uit reductie van 50% grijs wezenlijk is in alle situaties voor een effectieve flikkerreductie met vervlechting. Indien de voorwaarde dat aan-uit-aan-uit horizontale lijnpatronen worden gereduceerd tot een 50% grijs wordt gehandhaafd en andere kernafmetingen anders dan 1x3 worden geprobeerd, is er voor elke kernafmeting een verandering coëfficiënten om te voldoen aan de aan-uit-aan-uit voorwaarde.Deze coëfficiënten passen in de driehoek van Pascual (dat wil zeggen 1;1,1; 1,2,1;1,3,3,1;1,4,6,4,1; enz. )
Zich aanpassende convolutie
Zoals hierboven vermeld zijn de ergste flikkerpa-tronen die welke een hoge horizontale coherentie hebben (dat wil zeggen horizontaal herhalen). Horizontale getrokken lijnen, horizontale streeplijnen en grijsoscillatiepatronen zijn voorbeelden van patronen met een hoge horizontale coherentie. Tekst is een voorbeeld van patronen zonder een dergelijke coherentie· De hierboven besproken convolutie kan zichzelf aanpassen, dat wil zeggen dat deze kan worden veranderd afhankelijk van het type patronen dat wordt weergegeven. Ten eerste wordt bepaald of een herhaald patroon optreedt in een lokale horizontale groep kernen, bijvoorbeeld over 8 pixels· Indien er een patroon in de kernen is, worden vervolgens alle kernen geconvolueerd, bijvoorbeeld roet de 1-2-1 coëfficiënten. Indien er niet een dergelijk patroon is, worden de 8 pixels vervolgens geconvolueerd roet coëfficiënten die een scherper filter maken (bijvoorbeeld 1-3-1 of 1—4-1). De toets om te bepalen of een patroon zich herhaalt moet voortdurend worden toegepast in een bewegend horizontaal venster, kern voor kern. Omdat de testvensters overlappen, kunnen sommige kernen deel uitmaken van een patroon in één testvenster maar niet in een ander. Voor deze kernen wordt de 1-2-1 convolutie gebruikt aangezien zij bij de rand van het patroon zijn. Verschillende toetsen kunnen worden gebruikt om te bepalen of een patroon herhaald, bijvoorbeeld kunnen de vier linker kernen worden vergeleken met de vier rechter kernen binnen het venster.

Claims (22)

1. Werkwijze voor het opwekken van gefilterde pixel-gegevens voor een eerste weergeeflijn in een videoweergave met ras-teraftasting voor een computer/ waarbij gegevens voor de weergave worden opgeslagen in een rasterbuffer en waarbij de gegevens worden geordend in de rasterbuffer door aftastlijnen/ waarbij gegevens worden opgeslagen voor elk pixel langs elke aftastlijn/ omvattende: (a) het uit de buffer lezen van de pixelgegevens voor een eerste pixel van de n# n+1, n+2 ...n+N aftastlijnen alvorens uit de buffer de pixelgegevens voor daaropvolgende pixels van de n, n+1, n+2...n+N aftastlijnen te lezen; (b) het convolueren van de pixelgegevens voor het eerste pixel van de n, n+1, n+2...n+N aftastlijnen, teneinde de gefilterde pixelgegevens voor het eerste pixel van de eerste weer-geeflijn te verschaffen, (c) het herhalen van de stappen (a) en (b) voor elk daaropvolgend pixel op de eerste weergeeflijn.
2. Werkwijze volgens conclusie 1, met het kenmerk, dat N=2.
3. Werkwijze volgens conclusie 2, omvattende een initiële stap van het opslaan van de pixelgegevens in een rasterbuffer die een eerste en een tweede bank video-R&M's heeft, waarbij pixelgegevens voor aftastlijnen 2, 3, 6, 7, 10, 11, ... worden opgeslagen in de eerste bank en pixelgegevens voor aftastlijnen 0,1,4,5,8,9,... worden opgeslagen in de tweede bank.
4. Werkwijze volgens conclusie 3, waarbij de lees-stap het lezen uit de eerste bank omvat van de pixelgegevens voor het eerste pixel voor de n en n+1 aftastlijnen en het lezen uit de tweede bank van de pixelgegevens voor de n+2 en n+3 aftastlijnen alvorens uit de rasterbuffer de pixelgegevens voor daarop volgende pixels van de n, n+1, n+2...n+N aftastlijnen te lezen.
5. Werkwijze volgens conclusie 1 of 4, waarbij de convolutiestap omvat het uitvoeren van de volgende berekening:
Figure NL8921391AC00341
, waarbij P-j de pixel gegevens zijn voor het eerste pixel van de n-de aftastlijn, P2 de pixelgegevens voor het eerste pixel van de n+1-de lijn en P3 de pixelgegevens voor het pixel van de n+2-de aftastlijn, en waarbij a en b constanten zijn.
6. Werkwijze volgens conclusie 5, net het kenmerk, dat b gelijk is aan 2a.
7. Werkwijze volgens conclusie 1, met het kenmerk, dat de stappen (a) t/m (c) worden herhaald voor elke weer-geeflijn in de weergave.
8. Werkwijze volgens conclusie 1, met het kenmerk, dat pixelgegevens worden opgeslagen voor twee aftastlijnen voorafgaande aan de eerste weergegeven aftastlijn in de rasterbuf-fer.
9. Werkwijze volgens conclusie 1, met het kenmerk, dat de pixelgegevens die zijn opgeslagen voor de twee aftastlijnen voorafgaande aan een eerste weergegeven aftastlijn beide zwart representeren, waardoor een geleidelijker overgang bovenaan de weergave wordt verschaft.
10. Werkwijze volgens conclusie 1, met het kenmerk, dat de pixelgegevens worden opgeslagen in de rasterbuffer in de volgende aftastlijnvolgorde 0,1,2,3,2,3,4,5,4,5,6,7,6,7,8,9.
11. Werkwijze volgens conclusie 10, met het kenmerk, dat N=2 en dat elke vierde aftastlijn van pixelgegevens niet wordt gelezen voor de convolutiestap.
12. Werkwijze voor het opwekken van gefilterde pixelgegevens voor een weergeeflijn, in een videoweergave met ras-teraftasting voor een computer, waarbij gegevens voor de weergave worden opgeslagen in een rasterbuffer, waarbij de gegevens worden geordend in de rasterbuffer door aftastlijnen, waarbij gegevens worden opgeslagen voor elk pixel langs elke aftastlijn, en waarbij elk van de aftastlijnen bovendien aangrenzende groepen pixelgege- vens omvat, omvattende: (a) het uit de buffer lezen van de pixelgegevens voor een eerste groep van de n, n+1, n+2...n+N aftastlijnen alvorens uit de buffer de pixelgegevens in de volgende groep pixels langs de n, n+1, n+2...n+N aftastlijnen te lezen; (b) het convolueren van de pixelgegevens voor het pixel in de eerste groep, teneinde de gefilterde pixelgegevens te verschaffen; (c) het herhalen van de stappen (a) en (b) voor de overige groepen pixelgegevens langs de weergeeflijn.
13. Werkwijze volgens conclusie 12, met het kenmerk, dat de convolutiestap omvat het uitvoeren van de volgende berekening:
Figure NL8921391AC00351
, waarbij P-j de pixelgegevens zijn voor het eerste pixel van de eerste groep voor de n-de aftastlijnen, P2 de pixelgegevens voor het eerste pixel van de eerste groep voor de n+1-de aftastlijn en P3 de pixelgegevens voor het eerste pixel van de eerste groep van de n+2-de aftastlijn/ en waarbij a en b constanten zijn.
14. Werkwijze volgens conclusie 13, eet het kenmerk, dat b gelijk is aan 2a.
15. Inrichting voor het opwekken van een rasteraf-getaste weergave uit pixelgegevens die zijn opgeslagen in een buffer en geordend door aftastlijnen, waarbij pixelgegevens zijn opgeslagen voor pixels langs elke aftastlijn, omvattende middelen voor het verschaffen van verticaal gefilterde pixelgegevens, welke middelen omvatten: een adresopwekkingsorgaan dat is gekoppeld aan de buffer voor het opwekken van een adres voor de buffer, zodanig dat de pixelgegevens voor een eerste pixel op de n, n+1, n+2...n+N aftastlijnen wordt geadresseerd en uit de buffer gelezen voordat alle pixelgegevens voor de pixels langs de n, n+1, n+2...n+N aftastlij- nen uit de buffer worden gelezen; een convolutie-orgaan voor het convolueren van de pixelgegevens voor het eerste pixel van de n, n+1, n+2...n+N af-tastlijnen om verticaal gefilterde gegevens te verschaffen voor het eerste pixel, waarbij het convolutie-orgaan aan de buffer is gekoppeld.
16. Inrichting volgens conclusie 15, met het kenmerk, dat het convolutie-orgaan omvat: een opteller, een multi-plexer die is gekoppeld aan de opteller, een voorschalingsorgaan voor het voorschalen van een invoer naar de opteller, een grendel-orgaan waarvan de uitgang is gekoppeld aan een ingangsaansluitklero van de opteller, waarbij van de opteller de uitgang is gekoppeld aan het grendelorgaan, en een normalisatie-orgaan voor het normaliseren van het uitgangssignaal van de opteller.
17. Inrichting volgens conclusie 15 of 16, met het kenmerk, dat de buffer een eerste bank video-RAM's omvat die pixelgegevens opslaan voor aftastlijnen 2, 3, 6, 7, 10, 11, ... en een tweede bank video-RAM's die pixelgegevens opslaan voor aftastlijnen 0,1,4,5,8,9,....
18. Werkwijze voor in een inrichting voor rasteraf-getaste grafische videovoorstellingen met een buffer waarin pixelgegevens worden geordend in vlakken, zodanig dat de pixelgegevens voor een gegeven pixel met elk van zijn bits in een verschillend vlak worden opgeslagen, waarbij de werkwijze gefilterde pixelgegevens voor een weergave verschaft die zijn opgeslagen in een eerste vlak, omvattende de stappen van: het reproduceren van de pixelgegevens voor de n, n+1, n+2...n-1, n+N lijnen van het eerste vlak als respectievelijk de n+1, n+2, n+3...n+N+1 lijnen van een tweede vlak; het reproduceren van de pixelgegevens voor de n, n+1, n+2...n+N lijnen van het eerste vlak als respectievleijk de n-1, n+2, n+1...n+N-1 lijnen van een derde vlak; het aftasten van de pixelgegevens uit het eerste, tweede en derde vlak; het convolueren van de pixelgegevens zoals uitgele zen uit de buffer.
19. Werkwijze voor in een inrichting voor rasteraf-getaste grafische videovoorstellingen met een buffer waarin pixel-gegevens worden geordend in vlakken, zodanig dat de pixel gegevens voor een gegeven pixel worden opgeslagen met elk bit in een ander vlak, waarbij de werkwijze gefilterde pixelgegevens voor een weer-geeflijn verschaft, die zijn opgeslagen in een eerste vlak, omvattende de stappen van: het reproduceren van de pixelgegevens in het eerste vlak en het opslaan hiervan in een tweede vlak waarbij elke aftast-lijn van pixelgegevens is verschoven in een verticale richting; het reproduceren van de pixelgegevens in het eerste vlak en het opslaan hiervan in een derde vlak waarbij elke aftast-lijn van pixelgegevens is verschoven in een tweede verticale richting, tegengesteld aan de eerste richting; het aftasten van de pixelgegevens uit het eerste, tweede en derde vlak, zodanig dat de pixelgegevens voor lijnen n-1, n en n+1 tegelijkertijd worden gelezen; het convolueren van de pixelgegevens zoals uit de buffer zijn gelezen.
20. Werkwijze volgens conclusie 19, met het kenmerk, dat de convolutiestap de stap omvat van het vooraf laden van een tabel met grijsschaalgegevens.
21. Werkwijze voor het verschaffen van gefilterde pixelgegevens voor een weergave, in een video-inrichting met ras-teraftasting met een geheugen waarin gegevens voor elke aftastlijn in aangrenzende lokaties in het geheugen worden opgeslagen, zodanig dat elk woord waartoe vanuit het geheugen toegang wordt verkregen de gegevens omvat voor tenminste een pixel, omvattende de stappen van: het lezen van de pixelgegevens uit het geheugen en het schrijven hiervan in een tweede geheugen, zodanig dat de pixelgegevens voor een eerste pixel van n, n+1, n+2...n+N aftast-lijnen worden gelokaliseerd in aangrenzende lokaties in de buffer; het lezen uit de buffer van de pixelgegevens voor het eerste pixel van de n, n+1, n+2...n+N aftastlijnen; het convolueren van de pixelgegevens , teneinde de gefilterde pixelgegevens te verschaffen.
22. Werkwijze volgens conclusie 21, met het kenmerk, dat N=3, waarbij evenwel slechts de pixelgegevens voor drie aftastlijnen worden geconvolueerd.
NL8921391A 1988-12-23 1989-12-08 Werkwijze en inrichting voor het verticaal filteren voor een rasterafgetaste weergave. NL193229C (nl)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29018288 1988-12-23
US07/290,182 US5005011A (en) 1988-12-23 1988-12-23 Vertical filtering apparatus for raster scanned display
PCT/US1989/005566 WO1990007767A1 (en) 1988-12-23 1989-12-08 Vertical filtering apparatus for raster scanned display
US8905566 1989-12-08

Publications (3)

Publication Number Publication Date
NL8921391A true NL8921391A (nl) 1990-12-03
NL193229B NL193229B (nl) 1998-11-02
NL193229C NL193229C (nl) 1999-03-03

Family

ID=23114877

Family Applications (1)

Application Number Title Priority Date Filing Date
NL8921391A NL193229C (nl) 1988-12-23 1989-12-08 Werkwijze en inrichting voor het verticaal filteren voor een rasterafgetaste weergave.

Country Status (12)

Country Link
US (1) US5005011A (nl)
EP (4) EP0685829B1 (nl)
JP (1) JP3081899B2 (nl)
KR (1) KR0138991B1 (nl)
AT (4) ATE176353T1 (nl)
AU (1) AU4828390A (nl)
CA (1) CA1320600C (nl)
DE (5) DE68928923T2 (nl)
GB (1) GB2233867B (nl)
HK (3) HK1012458A1 (nl)
NL (1) NL193229C (nl)
WO (1) WO1990007767A1 (nl)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IE63461B1 (en) * 1989-09-11 1995-04-19 Jeremy Owen Jones Improvements in and relating to stable memory circuits
US5428456A (en) * 1991-03-15 1995-06-27 Eastman Kodak Company Method and apparatus for adaptively reducing interline flicker of TV-displayed image
US5264838A (en) * 1991-08-29 1993-11-23 Honeywell Inc. Apparatus for generating an anti-aliased display image halo
JP2585957B2 (ja) 1992-08-18 1997-02-26 富士通株式会社 ビデオデータ変換処理装置とビデオデータ変換装置を有する情報処理装置
GB9223492D0 (en) * 1992-11-10 1992-12-23 Display Research Lab Processing of signals for interlaced display
JPH07334669A (ja) * 1994-06-07 1995-12-22 Matsushita Electric Ind Co Ltd 図形処理方法および図形処理装置
US5510843A (en) * 1994-09-30 1996-04-23 Cirrus Logic, Inc. Flicker reduction and size adjustment for video controller with interlaced video output
US5640532A (en) * 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read
US5835948A (en) * 1994-10-14 1998-11-10 Compaq Computer Corporation Single bank, multiple way cache memory
US5838299A (en) * 1995-05-03 1998-11-17 Apple Computer, Inc. RGB/YUV video convolution system
US5748178A (en) * 1995-07-18 1998-05-05 Sybase, Inc. Digital video system and methods for efficient rendering of superimposed vector graphics
WO1997014247A1 (en) * 1995-10-13 1997-04-17 Apple Computer, Inc. Method and apparatus for video scaling and convolution for displaying computer graphics on a conventional television monitor
US5996022A (en) 1996-06-03 1999-11-30 Webtv Networks, Inc. Transcoding data in a proxy computer prior to transmitting the audio data to a client
US5862220A (en) * 1996-06-03 1999-01-19 Webtv Networks, Inc. Method and apparatus for using network address information to improve the performance of network transactions
US6957260B1 (en) * 1996-06-03 2005-10-18 Microsoft Corporation Method of improving access to services provided by a plurality of remote service providers
US6034689A (en) 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US6473099B1 (en) * 1996-06-03 2002-10-29 Webtv Networks, Inc. Automatically upgrading software over a satellite link
US5935207A (en) 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US6311197B2 (en) 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5896444A (en) * 1996-06-03 1999-04-20 Webtv Networks, Inc. Method and apparatus for managing communications between a client and a server in a network
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US5745909A (en) 1996-07-09 1998-04-28 Webtv Networks, Inc. Method and apparatus for reducing flicker when displaying HTML images on a television monitor
US5838927A (en) * 1996-11-22 1998-11-17 Webtv Networks Method and apparatus for compressing a continuous, indistinct data stream
US6604242B1 (en) * 1998-05-18 2003-08-05 Liberate Technologies Combining television broadcast and personalized/interactive information
US5991799A (en) * 1996-12-20 1999-11-23 Liberate Technologies Information retrieval system using an internet multiplexer to focus user selection
AUPO478897A0 (en) * 1997-01-24 1997-02-20 Canon Information Systems Research Australia Pty Ltd Scan line rendering of convolutions
AU721232B2 (en) * 1997-01-24 2000-06-29 Canon Kabushiki Kaisha Scan line rendering of convolutions
KR19980080990A (ko) * 1997-04-01 1998-11-25 랜스그리게인 픽셀레이티드 디스플레이 방법 및 장치
US5963262A (en) * 1997-06-30 1999-10-05 Cirrus Logic, Inc. System and method for scaling images and reducing flicker in interlaced television images converted from non-interlaced computer graphics data
US6348978B1 (en) 1997-07-24 2002-02-19 Electronics For Imaging, Inc. Method and system for image format conversion
JP3758362B2 (ja) * 1998-04-13 2006-03-22 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
US6650327B1 (en) 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
US6501565B1 (en) * 1998-07-07 2002-12-31 Electronics For Imaging, Inc. Method and apparatus for smoothing text outlines
US6310697B1 (en) 1998-07-07 2001-10-30 Electronics For Imaging, Inc. Text enhancement system
AU3712300A (en) 1999-06-11 2001-01-02 Liberate Technologies Hierarchical open security information delegation and acquisition
US6570562B1 (en) * 2000-05-03 2003-05-27 Hewlett-Packard Development Company, L.P. Method for drawing patterned lines in a system supporting off-screen graphics
US6903753B1 (en) * 2000-10-31 2005-06-07 Microsoft Corporation Compositing images from multiple sources
US20020167612A1 (en) * 2001-04-02 2002-11-14 Pelco Device and method for reducing flicker in a video display
JP4410997B2 (ja) * 2003-02-20 2010-02-10 パナソニック株式会社 表示パネルの駆動装置
US8159440B2 (en) 2003-06-30 2012-04-17 Advanced Micro Devices, Inc. Controller driver and display apparatus using the same
JP5732887B2 (ja) * 2011-02-14 2015-06-10 株式会社リコー フレームメモリ制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0342022A2 (en) * 1988-05-11 1989-11-15 Fujitsu Limited Image data read out sytem in a digital image processing system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2640759C2 (de) * 1976-09-10 1982-10-14 Robert Bosch Gmbh, 7000 Stuttgart System zur Wiedergabe von Videosignalen
US4215414A (en) * 1978-03-07 1980-07-29 Hughes Aircraft Company Pseudogaussian video output processing for digital display
NL7901119A (nl) * 1979-02-13 1980-08-15 Philips Nv Beeldweergeefinrichting voor het als een tweevoudig geinterlinieerd televisiebeeld weergeven van een door een beeldsignaalgenerator opgewekt tweewaardig signaal.
US4322750A (en) * 1979-05-08 1982-03-30 British Broadcasting Corporation Television display system
US4454506A (en) * 1981-09-04 1984-06-12 Bell Telephone Laboratories, Incorporated Method and circuitry for reducing flicker in symbol displays
US4808984A (en) * 1986-05-05 1989-02-28 Sony Corporation Gamma corrected anti-aliased graphic display apparatus
US4843380A (en) * 1987-07-13 1989-06-27 Megatek Corporation Anti-aliasing raster scan display system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0342022A2 (en) * 1988-05-11 1989-11-15 Fujitsu Limited Image data read out sytem in a digital image processing system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
I.B.M. JOURNAL OF RESEARCH AND DEVELOPMENT deel 28, nr. 4, Juli 1984, NEW YORK, USA bladzijden 393 - 398; D.L. OSTAPKO: 'A MAPPING AND MEMORY CHIP HARDWARE WHICH PROVIDES SYMMETRIC READING/WRITING OF HORIZONTAL AND VERTICAL LINES' *
IBM TECHNICAL DISCLOSURE BULLETIN deel 32, nr. 4A, September 1989, ARMONK, USA bladzijden 458 - 463; 'EXTENDING VIDEO MEMORY ADDRESSING' *
PROCEEDINGS OF THE SOCIETY FOR INFORMATION DISPLAY (SID) deel 28, nr. 4, 1987, NEW YORK,USA bladzijden 425 - 429; D. OAKLEY AND D.I. PARSONS: 'DEJAGGING RASTER GRAPHICS DISPLAYS BY FLASH FILTERING' *

Also Published As

Publication number Publication date
KR0138991B1 (ko) 1998-06-15
GB9017115D0 (en) 1990-09-19
ATE168489T1 (de) 1998-08-15
DE68928773D1 (de) 1998-09-10
JPH03504171A (ja) 1991-09-12
EP0681281A2 (en) 1995-11-08
EP0681281B1 (en) 1998-08-05
ATE138216T1 (de) 1996-06-15
NL193229B (nl) 1998-11-02
WO1990007767A1 (en) 1990-07-12
HK1012458A1 (en) 1999-07-30
KR910700513A (ko) 1991-03-15
JP3081899B2 (ja) 2000-08-28
EP0404911A4 (en) 1992-09-09
HK1013160A1 (en) 1999-08-13
CA1320600C (en) 1993-07-20
DE68926502D1 (de) 1996-06-20
EP0685829A1 (en) 1995-12-06
GB2233867B (en) 1993-09-08
DE68928923D1 (de) 1999-03-11
DE68928923T2 (de) 1999-08-05
US5005011A (en) 1991-04-02
DE68928744T2 (de) 1999-02-11
EP0685829B1 (en) 1998-07-15
EP0681281A3 (nl) 1995-12-06
DE3991534T1 (de) 1991-04-04
HK1012457A1 (en) 1999-07-30
EP0681280B1 (en) 1999-01-27
DE68928744D1 (de) 1998-08-20
DE68926502T2 (de) 1996-12-19
EP0404911B1 (en) 1996-05-15
EP0404911A1 (en) 1991-01-02
NL193229C (nl) 1999-03-03
EP0681280A2 (en) 1995-11-08
DE68928773T2 (de) 1999-02-11
EP0681280A3 (nl) 1995-12-06
GB2233867A (en) 1991-01-16
AU4828390A (en) 1990-08-01
ATE169419T1 (de) 1998-08-15
ATE176353T1 (de) 1999-02-15

Similar Documents

Publication Publication Date Title
NL8921391A (nl) Inrichting voor verticaal filteren voor een rasterafgetaste weergave.
JP2854866B2 (ja) イメージ処理システム及びその画素データの処理法
US5481275A (en) Resolution enhancement for video display using multi-line interpolation
US5097257A (en) Apparatus for providing output filtering from a frame buffer storing both video and graphics signals
US4991122A (en) Weighted mapping of color value information onto a display screen
US5742349A (en) Memory efficient video graphics subsystem with vertical filtering and scan rate conversion
US5109348A (en) High speed image processing computer
EP0264726B1 (en) Picture transformation memory
EP0895187A2 (en) A method for scaling an image
US4665551A (en) Apparatus and method for implementing transformations in digital image processing
JPS6224297A (ja) グラフィック・パタ−ンの制御装置
EP0016651A1 (en) Graphic display area classification
JP2817111B2 (ja) 高解像度ビデオ出力フレーム生成方法及び装置
US6563511B1 (en) Anti-flickering for video display based on pixel luminance
US6271850B1 (en) Image generation apparatus, image generation method, image generation program recording medium, image composition apparatus, image composition method, and image composition program recording medium
US5815143A (en) Video picture display device and method for controlling video picture display
US4647971A (en) Moving video special effects system
US6034664A (en) Method and apparatus for pseudo-random noise generation based on variation of intensity and coloration
US6559857B2 (en) Method and apparatus for pseudo-random noise generation based on variation of intensity and coloration
US5097256A (en) Method of generating a cursor
US6252578B1 (en) Method for reducing flicker when displaying processed digital data on video displays having a low refresh rate
EP0308125A2 (en) High speed image processing computer employing video drams to produce raster scan pixel data
JPH0571113B2 (nl)
JPH0693247B2 (ja) 画像表示装置
JPS60181875A (ja) 濃度ヒストグラム表示回路

Legal Events

Date Code Title Description
BA A request for search or an international-type search has been filed
BB A search report has been drawn up
BC A request for examination has been filed
TNT Modifications of names of proprietors of patents or applicants of examined patent applications

Owner name: APPLE INC.

Effective date: 20080516

V4 Discontinued because of reaching the maximum lifetime of a patent

Effective date: 20091208