QuickTime-afbeeldingen - QuickTime Graphics
QuickTime Graphics is een lossy video compressie en decompressie algoritme ( codec ) ontwikkeld door Apple Inc. en voor het eerst uitgebracht als onderdeel van QuickTime 1.x in de vroege jaren 1990. De codec is ook bekend onder de naam Apple Graphics en zijn FourCC SMC . De codec werkt op 8-bits gepalletiseerde RGB- gegevens. Het bitstream-formaat van QuickTime Graphics is reverse-engineered en er is een decoder geïmplementeerd in de projecten XAnim en libavcodec .
Technische details
De invoervideo waarop de codec werkt, bevindt zich in een 8-bits RGB- kleurruimte met paletten . Compressie wordt bereikt door voorwaardelijke aanvulling en door het palet te verkleinen van 256 kleuren naar een aanpasbaar palet per 4 × 4 blokken van 1-16 kleuren. Omdat Apple Video in het beelddomein werkt zonder bewegingscompensatie, is decodering veel sneller dan codecs in MPEG- stijl die bewegingscompensatie gebruiken en coderen in een transformatiedomein . Als afweging zijn de compressieprestaties van Apple Graphics lager. De decoderingscomplexiteit is ongeveer 50% die van de QuickTime Animation- codec.
Elk frame wordt gesegmenteerd in 4 × 4 blokken in rasterscanvolgorde. Elk blok kan worden gecodeerd in een van de volgende coderingsmodi: modus overslaan, enkele kleur, 2-, 4- en 8 kleurenpaletmodi, twee herhaalmodi en PCM.
Overslaan modus
De skip-modus realiseert voorwaardelijke aanvulling . Als een blok wordt gecodeerd in de modus overslaan, wordt de inhoud van het blok op dezelfde locatie in het vorige frame gekopieerd naar het huidige frame. Run-length-coderingsschema wordt gecodeerd met overslaanblokken , waardoor een hoge compressieverhouding in statische delen van het beeld mogelijk is.
Enkele kleur
In de modus voor één kleur is het hele blok van 4 × 4 geverfd met een enkele kleur. Deze modus kan ook worden beschouwd als een 1-kleurenpaletmodus.
Paletmodi (2, 4 of 8 kleuren)
In de paletmodi wordt elk 4 × 4 blok gecodeerd met een 2, 4 of 8 kleurenpalet. Om een van de kleuren uit het palet te selecteren, worden respectievelijk 1, 2 of 3 bits per pixel gebruikt. Het palet kan expliciet naar de bitstroom worden geschreven of als verwijzing naar een item in de paletcache. De paletcache is een set van drie ronde buffers die de 256 meest recent gebruikte paletten opslaan, een voor elk van de 2-, 4- en 8-kleurenmodi.
Geïnterpreteerd als vectorkwantisering , worden driedimensionale vectoren met componenten rood, groen en blauw gekwantiseerd met behulp van een voorwaarts adaptief codeboek met tussen 1 en 8 ingangen.
Herhaal modi
Er zijn twee verschillende herhaalmodi. In de modus voor herhalen van één blok wordt het vorige blok een bepaald aantal keren herhaald. In de herhaalmodus met twee blokken worden de vorige twee blokken een gespecificeerd aantal keren herhaald.
PCM-modus (16 kleuren)
In de 16-kleurenmodus wordt de kleur van elke pixel in een blok expliciet naar de bitstroom geschreven. Deze modus is verliesvrij en gelijk aan onbewerkte PCM zonder enige compressie.
Zie ook
- Geïndexeerde kleur
- Kleurkwantisering
- Block truncation coding , een vergelijkbare coderingstechniek voor inhoud in grijstinten
- Color Cell Compression , een vergelijkbare coderingstechniek voor kleurinhoud, gebaseerd op blokafbrekingscodering
- Apple Video , een codec gebaseerd op een vergelijkbaar ontwerp
- Microsoft Video 1 , een codec gebaseerd op een vergelijkbaar ontwerp
- Smacker video , een codec gebaseerd op een vergelijkbaar ontwerp
- S3 Texture Compression , een structuurcompressieformaat gebaseerd op een vergelijkbaar ontwerp