Grafika QuickTime - QuickTime Graphics
QuickTime Graphics to stratny algorytm kompresji i dekompresji wideo ( kodek ) opracowany przez firmę Apple Inc. i wydany po raz pierwszy jako część programu QuickTime 1.x na początku lat 90. Kodek jest również znany pod nazwą Apple Graphics i jego FourCC SMC . Kodek działa na 8-bitowych paletowanych danych RGB . Format strumienia bitów w grafice QuickTime został poddany inżynierii wstecznej, a dekoder został zaimplementowany w projektach XAnim i libavcodec .
Szczegóły techniczne
Wideo wejściowe, na którym działa kodek, jest w 8-bitowej paletowanej przestrzeni kolorów RGB . Kompresję osiąga się poprzez warunkowe uzupełnianie i redukcję palety z 256 kolorów do adaptacyjnej palety 4 × 4 bloków obejmującej 1-16 kolorów. Ponieważ Apple Video działa w domenie obrazu bez kompensacji ruchu, dekodowanie jest znacznie szybsze niż w przypadku kodeków w stylu MPEG, które używają kompensacji ruchu i wykonują kodowanie w domenie transformacji . W zamian wydajność kompresji grafiki Apple jest niższa. Złożoność dekodowania wynosi około 50% złożoności kodeka QuickTime Animation .
Każda ramka jest podzielona na bloki 4 × 4 w kolejności skanowania rastrowego. Każdy blok może być zakodowany w jednym z następujących trybów kodowania: tryb pomijania, pojedynczy kolor, 2-, 4- i 8 trybów palety kolorów, dwa tryby powtarzania i PCM.
Tryb pomijania
Tryb pomijania realizuje uzupełnianie warunkowe . Jeśli blok jest kodowany w trybie pomijania, zawartość bloku w tym samym miejscu w poprzedniej klatce jest kopiowana do bieżącej ramki. Sekwencje bloków pomijania są kodowane w schemacie kodowania długości serii , co zapewnia wysoki współczynnik kompresji w statycznych obszarach obrazu.
Pojedynczy kolor
W trybie jednokolorowym cały blok 4 × 4 malowany jest jednym kolorem. Ten tryb można również traktować jako tryb z 1-kolorową paletą.
Tryby palety (2, 4 lub 8 kolorów)
W trybach palety każdy blok 4 × 4 jest oznaczony paletą 2, 4 lub 8 kolorów. Aby wybrać jeden z kolorów z palety, stosuje się odpowiednio 1, 2 lub 3 bity na piksel. Paleta może być zapisana w strumieniu bitów jawnie lub jako odniesienie do wpisu w pamięci podręcznej palety. Pamięć podręczna palet to zestaw trzech okrągłych buforów, które przechowują 256 ostatnio używanych palet, po jednej dla trybów 2, 4 i 8 kolorów.
Zinterpretowane jako kwantyzacja wektorów , trójwymiarowe wektory ze składowymi czerwonymi, zielonymi i niebieskimi są kwantyzowane przy użyciu adaptacyjnej książki kodowej w przód z od 1 do 8 wpisów.
Tryby powtarzania
Istnieją dwa różne tryby powtarzania. W trybie powtarzania pojedynczego bloku poprzedni blok jest powtarzany określoną liczbę razy. W trybie powtarzania dwóch bloków poprzednie dwa bloki są powtarzane określoną liczbę razy.
Tryb PCM (16 kolorów)
W trybie 16-kolorowym kolor każdego piksela w bloku jest jawnie zapisywany w strumieniu bitów. Ten tryb jest bezstratny i odpowiada surowemu PCM bez żadnej kompresji.
Zobacz też
- Kolor indeksowany
- Kwantyzacja kolorów
- Blokowe kodowanie z obcięciem , podobna technika kodowania treści w skali szarości
- Color Cell Compression , podobna technika kodowania zawartości kolorów, oparta na kodowaniu obcinania bloków
- Apple Video , kodek oparty na podobnej konstrukcji
- Microsoft Video 1 , kodek oparty na podobnej konstrukcji
- Smacker video , kodek oparty na podobnej konstrukcji
- S3 Texture Compression , format kompresji tekstur oparty na podobnym projekcie