Apple Video
Apple Video är en algoritm för videokomprimering och dekomprimering med förlust ( codec ) utvecklad av Apple Inc. och släpptes först som en del av QuickTime 1.0 1991. Codec är även känd som QuickTime Video , genom dess FourCC RPZA och namnet Road Pizza . (Kodnamnet "Road Pizza" är en hänvisning till idén att "när du kör över ett djur, komprimerar du i princip det på motorvägen".) När det används i AVI-behållaren, används FourCC AZPR också .
Bitströmsformatet för Apple Video har omvänt konstruerats och en avkodare har implementerats i projekten XAnim och libavcodec .
Tekniska detaljer
Codecen fungerar på 4×4 block av pixlar i RGB -färgrymden. Varje ram är segmenterad i 4×4-block i raster-skanningsordning. Varje block är kodat i ett av fyra kodningslägen: hoppa över, enfärgad, fyrfärgad eller 16 färger. Färger representeras av 16 bitar med ett bitdjup på 5 bitar för var och en av de tre komponenterna röd, grön och blå, ett format som kallas RGB555 . Eftersom Apple Video fungerar i bilddomänen utan rörelsekompensation, är avkodning mycket snabbare än MPEG -liknande codecs som använder rörelsekompensation och utför kodning i en transformeringsdomän . Som en kompromiss är komprimeringsprestandan för Apple Video lägre.
Hoppa över läge
Överhoppningsläget realiserar villkorlig påfyllning. Om ett block är kodat i överhoppningsläge, kopieras innehållet i blocket på samma plats i föregående ram till den aktuella ramen. Körningar av överhoppningsblock kodas i ett körlängdskodningsschema , vilket möjliggör ett högt kompressionsförhållande i statiska områden av bilden.
Enfärgsläge
I enfärgsläge avkodas alla pixlar i ett block i samma färg. Detta kan tolkas som en palett med en enda färg.
Fyrfärgsläge
I fyrfärgsläge avkodas varje pixel i ett block som en av fyra färger som anges i en palett. För att välja en av de fyra posterna skrivs 2 bitar per pixel till bitströmmen. Samma palett används för en längd på mellan ett och 32 block. Av de fyra färgerna skrivs två explicit till bitströmmen, medan de andra två beräknas vid avkodaren genom linjär interpolation i RGB-färgrymden med hjälp av följande ekvationer:
där färg0 och färg3 är de två färgerna som skrivs i bitströmmen. De fyra färgerna kan tolkas som att de ligger på samma avstånd på ett linjesegment i det tredimensionella vektorutrymmet med de tre komponenterna röd, grön och blå. Slutpunkterna för denna linje skrivs i bitströmmen. Ett liknande färginterpolationsschema används i S3 Texture Compression .
tredimensionell vektor med komponenterna röd, grön och blå, tolkad som vektorkvantisering , kvantiseras med hjälp av en kodbok med fyra poster.
16 färgläge
I 16-färgsläge skrivs färgen på varje pixel i ett block explicit i bitströmmen. Detta läge är förlustfritt och likvärdigt med rå PCM utan någon komprimering.
Se även
- Indexerad färg
- Färgkvantisering
- Block trunkeringskodning , en liknande kodningsteknik för gråskaleinnehåll
- Color Cell Compression , en liknande kodningsteknik för färginnehåll, baserad på blocktrunkeringskodning
- Microsoft Video 1 , en codec baserad på en liknande design
- QuickTime Graphics , en codec baserad på en liknande design
- Smacker video , en codec baserad på en liknande design
- S3 Texture Compression , ett texturkomprimeringsformat baserat på en liknande design