close

Framebuffer

Ga naar navigatie Ga naar zoeken

Een categorie grafische apparaten , die elk van de pixels op het scherm vertegenwoordigen als locaties in het RAM- geheugen, wordt een framebuffer genoemd . Apparaten die een dergelijke methode van toegang tot grafische apparaten gebruiken of lijken te gebruiken, worden ook wel genoemd op het gebied van besturingssystemen .

Geschiedenis

Computerwetenschappers bespraken lange tijd de voordelen van het gebruik van dit apparaat, maar ze waren niet in staat om een ​​machine met voldoende geheugen te produceren tegen een economisch haalbare prijs. In 1969 implementeerde Michael A. Noll van Bell Laboratories een gedigitaliseerd display met een tussengeheugen. Later werd het Bell Labs-systeem uitgebreid om een ​​drie-bits kleurdieptebeeld weer te geven op een standaard kleurentelevisiemonitor. Zelfs een eerdere schermscan werd gehouden in het Brookhaven National Laboratory. Vooruitgang in het geheugen van geïntegreerde schakelingen in de jaren zeventig zorgde voor meer praktische kosten om framebuffers te creëren die een standaard videobeeld kunnen opslaan.

In 1972 ontwikkelde Richars Shoup het SuperPaint -systeem bij Xerox PARC . Dit systeem had 311.040 bytes geheugen en kon 640 bij 480 pixels aan 8-bits kleurdieptegegevens opslaan. Het geheugen is verdeeld over 16 printplaten, elk geladen met meerdere 2-kilobit schuifregisterchips. Dit ontwerp vereist dat de gehele framebuffer moet worden geïmplementeerd als een schuifregister van 307.200 bytes, dat synchroon met het televisie-uitgangssignaal wordt verplaatst. Het belangrijkste nadeel van dit systeem was dat het geheugen niet willekeurig toegankelijk was.

Shoup was ook in staat om de SuperPaint framebuffer te gebruiken om een ​​digitaal video-opnamesysteem te creëren. Door het uitgangssignaal te synchroniseren met het ingangssignaal, kon Shoup elke pixel aan gegevens overschrijven terwijl deze bewoog. Shoup experimenteerde ook met het aanpassen van uitrijborden met behulp van de kleurenkaarten. Dankzij deze kleurentabellen kon het SuperPaint-systeem een ​​grote verscheidenheid aan kleuren produceren buiten het beperkte 8-bits datagamma dat het bevatte. Dit schema zou later gemeengoed worden in computerframebuffers.

In 1974 bracht Evans & Sutherland het eerste commerciële gebruik van dit apparaat uit, dat meer dan $ 15.000 kostte. Het was in staat om een ​​resolutie van maximaal 512 bij 512 pixels in 8-bits grijswaarden te produceren en werd een zegen voor grafische onderzoekers die niet over de middelen beschikten om hun eigen apparaat te bouwen. Het New York Institute of Technology creëerde later het eerste 24-bits systeem met behulp van drie van Evans & Shutterland's frambuffers. Elk gebruik van dit apparaat was verbonden met een RGB-kleurenuitgang (één voor rood, één voor groen en één voor blauw), met een Digital Equipment Corporation PDP 11/04 minicomputer, die alle drie de apparaten in één bedient.

In 1975 produceerde het Britse bedrijf Quantel de eerste commerciële full-color broadcast framebuffer: de Quantel DFS 3000. Het werd voor het eerst gebruikt in televisie-uitzendingen van de Olympische Spelen van Montreal in 1976 om een ​​beeld-in-beeld-invoeging van de Olympische fakkel te genereren , terwijl de de rest van het beeld toonde de loper die het stadion binnenkwam.

De snelle verbetering van de technologie voor geïntegreerde schakelingen maakte het voor veel van de personal computers van de jaren zeventig (zoals de Apple II ) mogelijk om framebuffers in kleur te hebben. Hoewel aanvankelijk bespot vanwege slechte prestaties in vergelijking met de meer geavanceerde grafische apparaten die in computers zoals de Atari 400 worden gebruikt , werden framebuffers uiteindelijk de standaard voor alle personal computers. Tegenwoordig gebruiken bijna alle computers met grafische mogelijkheden dit apparaat voor het genereren van het videosignaal.

Framebuffers werden ook populair op high-end workstation- en arcade-systeemborden gedurende de jaren 80. SGI , Sun Microsystems , HP , DEC en IBM gebruikten allemaal framebuffers voor hun werkcomputers. Deze framebuffers waren over het algemeen van een veel hogere kwaliteit dan op de meeste personal computers te vinden is, en werden regelmatig gebruikt bij televisie, printen, computermodellering en 3D-graphics. Framebuffers werden ook door Sega gebruikt voor hun high-end arcadespellen, die ook van hogere kwaliteit waren dan op personal computers.

Amiga - computers hebben met hun krachtige grafische ontwerp in de jaren tachtig een enorme markt gecreëerd voor op framebuffer gebaseerde grafische kaarten. Opmerkelijk was de grafische kaart in de Amiga A2500 Unix , die in 1991 de eerste computer was die een X11 -serverprogramma implementeerde als server voor het hosten van grafische omgevingen en de grafische interface OPEN LOOK , een gebruikersinterface met hoge resolutie (1024x1024) of 1024x768. bij 256 kleuren). De grafische kaart voor A2500 Unix heette A2410 ( TIGA Lowell grafische kaart ) en het was een 8-bit grafische kaart gebaseerd op de 50 MHz Texas Instruments TMS34010. Het was een volledig intelligente grafische coprocessor. De Amiga A2410 grafische kaart is ontwikkeld in samenwerking met de University of Lowell.

Andere opmerkelijke grafische kaarten gebaseerd op de Amiga framebuffers waren: GVP 's Impact Vision IV24 grafische kaart ; de DCTV , een externe grafische adapter en een video-opnamesysteem; de Firecracker 32-bit grafische kaart ; de Harlequin-kaart, ColorBurst; de externe framebuffer HAM-E. De Graffiti externe grafische kaart is nog steeds op de markt verkrijgbaar.

De meeste Atari ST (Mega model STE) en Atari TT framebuffers zijn gemaakt voor de VME-connectorsleuf van Atari-machines die zijn bedoeld voor video-uitbreidingskaarten: de Leonardo 24-bit VME grafische adapter, de CrazyDots grafische kaart II 24-bit VME, de Spektrum TC grafische kaart, de NOVA ET4000 VME SVGA grafische kaart (geschikt voor resoluties tot 1024x768 bij 256 kleuren of 800x600 bij 32768 kleuren), waarvan het ontwerp afkomstig is uit de ISA/PC-wereld.

Weergavemodi

Image
Een cgsix framebuffer van Sun.

Framebuffers die in personal computers worden gebruikt, hebben vaak een reeks "modi" waaronder de framebuffer kan werken. Deze modi configureren de hardware automatisch opnieuw om verschillende resoluties, kleurdiepten, geheugenlay-outs en vernieuwingsfrequenties weer te geven .

In de Unix -wereld (machines en besturingssystemen) werden deze conventies meestal geschuwd ten gunste van directe manipulatie van de hardwareconfiguratie. Deze manipulatie was veel flexibeler omdat elke resolutie, kleurdiepte en verversingssnelheid kon worden bereikt - alleen beperkt door het beschikbare geheugen van de framebuffer .

Een neveneffect van deze methode was dat de kijker buiten zijn mogelijkheden kon worden geduwd. In sommige gevallen schade aan beeldschermhardware veroorzakend. [ 1 ] Moderne CRT-monitoren corrigeren dit probleem door de introductie van "intelligente" beveiligingsschakelingen. Bij het wijzigen van weergavemodi probeert de monitor een synchronisatiesignaal te krijgen met de nieuwe verversingsfrequentie. Als de monitor geen synchronisatiesignaal kan verkrijgen, of als het signaal buiten het bereik van de ontwerpbeperkingen valt, negeert de monitor het framebuffersignaal en geeft hij waarschijnlijk een foutmelding aan de gebruiker.

Vloeibare -kristalmonitors bevatten meestal vergelijkbare beveiligingsschakelingen, maar om verschillende redenen. Aangezien deze het weergavesignaal digitaal moeten weergeven, kan elk signaal dat buiten hun bereik valt niet fysiek op de monitor worden weergegeven.

Hardware

In grafische apparaten van het framebuffertype wordt elke pixel die op een bepaald moment op het scherm wordt weergegeven, opgeslagen in een deel van het hoofdgeheugen van de computer in de vorm van binaire bytes . Omdat schermen verschillende kleurenweergavemogelijkheden hebben (bekend als kleurdiepte ), varieert de hoeveelheid informatie die nodig is om een ​​pixel weer te geven. Beeldschermen ondersteunen over het algemeen 8, 15, 16 of 24 - bits kleurdiepte, wat overeenkomt met respectievelijk 256, 32.768, 65.536 of 16.777.216 kleuren. Om de afbeelding op het scherm te wijzigen, hoeft u alleen maar de geheugenadressen op te schrijven voor de pixel die u wilt wijzigen.

Het geheugengebied dat aan de framebuffer is toegewezen, is gewoonlijk toegankelijk voor de centrale verwerkingseenheid als elk willekeurig toegankelijk geheugengebied voor lezen en schrijven, behalve dat het uitsluitend is gereserveerd voor de weergave van afbeeldingen, en het is gebruikelijk dat hieraan een vast minimum wordt toegewezen en maximaal aantal adressen. Framebuffergeheugen is lineair, aaneengesloten en adresseerbaar zoals elk ander deel van het RAM -geheugen; zodat u, om een ​​bepaalde pixel te selecteren, het adres moet weten en om dit te doen de juiste offset moet berekenen vanaf het startadres van het framebuffergeheugen .

Op zo'n manier dat de computer de op het scherm weergegeven afbeeldingen effectief aanpast door de inhoud van het eerder genoemde geheugengebied aan te passen, wat perfect past in de algemeen aanvaarde definitie van wat een framebuffer is .

Besturingssystemen

De framebuffer is een virtueel apparaat van het besturingssysteem dat op verschillende manieren aan applicaties wordt gepresenteerd, afhankelijk van het systeem waar we het over hebben, hoewel het over het algemeen verschijnt als een bestand of een blok willekeurig toegankelijk geheugen gereserveerd op de computer, en dat kan worden toegankelijk in lezen/schrijven door een of meer processen; in dit bestand of in het speciale geheugengebied worden de afbeeldingen die op het videoapparaat worden weergegeven rechtstreeks gewijzigd door schrijven, zodat programma's informatie op het scherm kunnen weergeven zonder zich zorgen te maken over implementatiedetails of de echte interactie tussen de computer en het videoapparaat.

Het idee van een framebuffer wordt echter meer geassocieerd met die systeemapparaten die zichtbaar of toegankelijk zijn voor gebruikersapplicaties. In sommige besturingssystemen kan het voorkomen dat de toegang tot het geheugen van het videoapparaat voor toepassingen wordt verborgen en dat elke wijziging van de afbeeldingen die op het scherm worden weergegeven, wordt uitgevoerd via een API (zoals bijvoorbeeld het geval is in het geval van Windows ).

Zie ook

Referenties

  1. http://tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/overd.html XFree86 Video Timings HOWTO: Je monitor oversturen