Algoritmus Adam7 - Adam7 algorithm

Image
Ilustrace prokládání Adam7 přes obraz 16 × 16
Image
Obrázek se zobrazuje pomocí algoritmu Adam7.

Adam7 je prokládání algoritmus pro rastrové obrázky , nejlépe známý jako prokládání schématu případně používané v PNG obrázků. Prokládaný obraz Adam7 je rozdělen na sedm dílčích obrazů, které jsou definovány replikací tohoto vzoru 8 × 8 v celém obrazu.

1 6 4 6 2 6 4 6
7 7 7 7 7 7 7 7
5 6 5 6 5 6 5 6
7 7 7 7 7 7 7 7
3 6 4 6 3 6 4 6
7 7 7 7 7 7 7 7
5 6 5 6 5 6 5 6
7 7 7 7 7 7 7 7

Podobrazy se poté uloží do obrazového souboru v číselném pořadí.

Adam7 používá sedm průchodů a pracuje v obou dimenzích, ve srovnání s pouhými čtyřmi průchody ve vertikální dimenzi používanou GIF . To znamená, že aproximace celého obrazu může být vnímána mnohem rychleji v počátečních průchodech, zvláště pokud jsou použity interpolační algoritmy, jako je bikubická interpolace .

Dějiny

Adam7 je pojmenován po Adamovi M. Costellovi, který tuto metodu navrhl 2. února 1995 a po sedmi příslušných krocích.

Jedná se o přeskupení tohoto pětipásmového schématu, které dříve navrhl Lee Daniel Crocker :

1 5 3 5
5 4 5 4
3 5 2 5
5 4 5 4

Alternativní spekulativní návrhy v té době zahrnovaly čtvercové spirálové prokládání a používání Peano křivek , ale tyto byly odmítnuty jako přehnaně komplikované.

Průkazy

Pixely obsažené v každém průchodu a celkový počet pixelů zakódovaných v tomto bodě jsou následující:

Při vykreslování bude obrázek obvykle interpolován v dřívějších fázích, nikoli pouze při vykreslování těchto pixelů.

Související algoritmy

Adam7 je víceúrovňový model dat, podobný diskrétní vlnkové transformaci s vlnami Haar , i když vychází z bloku 8 × 8 a převzorkuje obraz, místo aby zdecimoval ( filtrování dolním průchodem , potom převzorkování). Nabízí tedy horší frekvenční chování, zobrazuje artefakty ( pixelace ) v raných fázích, na oplátku za jednodušší implementaci.

Opakování

Adam7 vzniká z iterace následujícího vzoru:

12
33

což lze interpretovat jako „skládací“ ve svislém a vodorovném rozměru. Podobně prokládání GIF 1324 lze považovat za iteraci 12 vzor, ​​ale pouze ve svislém směru ( 12 expanduje do 1.2. který je vyplněn jako 1324 ).

Použití tohoto tříprůchodového vzoru znamená, že první průchod je (1/2) 2  = 1/4 (25%) obrazu.

Iterací tohoto vzoru se získá 5pásmové schéma; po 3 průchodech to přináší

1 . 2 .
. . . .
3 . 3 .
. . . .

který je poté vyplněn do:

1 4 2 4
5 5 5 5
3 4 3 4
5 5 5 5

Ve vzoru 5 průchodů je první průchod (1/4) 2  = 1/16 (6,25%) obrazu.

Iterací se opět získá 7průchodové schéma Adam7, kde první průchod (1/8) 2  = 1/64 (1,5625%) obrazu.

V zásadě to lze iterovat, čímž se získá 9průchodové schéma, 11průchodové schéma atd., Nebo alternativně lze použít adaptivní počet průchodů, kolik dovolí velikost obrazu (takže první průchod se skládá z jeden pixel), jak je obvyklé v bezškálovém víceúrovňovém modelování. V kontextu, kdy byl vyvinut PNG (tj. Pro dotyčné velikosti obrazu a rychlosti připojení), bylo 7stupňové schéma považováno za dostatečné a výhodnější než jednoduché 5průchodové schéma.

Reference

externí odkazy