Cinepak - Cinepak

Cinepak je ztrátový video kodek vyvinutý Peterem Barrettem ve společnosti SuperMac Technologies a vydaný v roce 1991 s Video Spigot a poté v roce 1992 jako součást sady videa QuickTime společnosti Apple Computer . Jeden z prvních nástrojů pro kompresi videa k dosažení plného pohybu videa na disku CD-ROM byl navržen tak, aby kódoval video v rozlišení 320 × 240 při přenosových rychlostech 1 × (150 kbyte /s) CD-ROM . Původní název tohoto kodeku byl Compact Video , proto je jeho identifikátor FourCC CVID . Kodek byl přenesen do systému Microsoft Windows v roce 1993. Byl také použit na herních konzolách čtvrté a páté generace , jako je Atari Jaguar CD , Sega CD , Sega Saturn a 3DO . libavcodec obsahuje dekodér Cinepak a kodér, oba licencovaní podle podmínek LGPL .

Dějiny

Jednalo se o primární video kodek raných verzí QuickTime a Microsoft Video pro Windows , ale později byl nahrazen Sorenson Video , Intel Indeo a naposledy MPEG-4 Part 2 a H.264/MPEG-4 AVC . Filmy komprimované pomocí Cinepak jsou však obecně stále možné přehrávat ve většině přehrávačů médií.

Technika

Cinepak je založen na vektorové kvantizaci , což je výrazně odlišný algoritmus od algoritmu diskrétní kosinové transformace (DCT), který používá většina současných kodeků (zejména rodina MPEG a JPEG ). Tato povolená implementace na relativně pomalých CPU (video kódované v Cinepaku bude obvykle hrát dobře i na 25 MHz Motorola 68030 , konzole jako Sega CD obvykle používaly ještě pomalejší CPU, např. 12,5 MHz 68000), ale obvykle vedly k blokovým artefaktům na nízké přenosové rychlosti , což vysvětlovalo kritiku vznesenou u videoher založených na FMV . Soubory Cinepak bývají asi o 70% větší než soubory MPEG-4 Part 2 nebo Theora podobné kvality .

Vektory, které jsou kvantovány v Cinepaku, jsou bloky 2 × 2 pixelů. Blok může sestávat ze 4 hodnot jasu (ve stupních šedi) nebo ze 4 hodnot jasu a 2 barevností ( podvzorkování chroma 4: 2: 0 ). Kvantované bloky jsou uloženy ve dvou číselnících, pojmenovaných V1 a V4, každý s až 256 položkami. Vektory v číselníku V1 představují zmenšené bloky pixelů 4 × 4, zatímco ty v číselníku V4 představují bloky 2 × 2 pixely.

Pro zpracování Cinepak rozděluje video na klíčové (uvnitř kódované) obrázky a interkódované obrázky. V klíčových obrázcích jsou číselníky přenášeny od nuly, zatímco v mezikódovaných obrázcích jsou položky číselníku selektivně aktualizovány. Každý obrázek je dále rozdělen do několika horizontálních pásem. Číselníky lze aktualizovat na základě pásma. Každé pásmo je rozděleno na bloky 4 × 4 pixelů. Každý blok lze kódovat buď z V1, nebo z číselníku V4. Při kódování z číselníku V1 je do bitového proudu zapsán jeden indexový seznam kódů na blok 4 × 4 a odpovídající položka číselníku 2 × 2 je upscalována na 4 × 4 pixely. Při kódování z číselníku V4 se do bitového proudu zapisují čtyři indexy číselníků na blok 4 × 4, jeden pro každý subblok 2 × 2. Alternativně ke kódování z číselníku V1 nebo V4 lze přeskočit blok 4 × 4 v interkódovaném obrázku. Vynechaný blok se zkopíruje beze změny z předchozího rámce způsobem podmíněného doplňování . Datovou rychlost lze řídit nastavením rychlosti klíčových rámců a úpravou povolené chyby v každém bloku.

Reference

externí odkazy