Bezztrátový JPEG - Lossless JPEG
Lossless JPEG je 1993 přírůstek do JPEG standardu podle Joint Photographic Experts Group umožní bezeztrátové komprese . Termín však lze také použít k označení všech bezztrátových kompresních schémat vyvinutých skupinou, včetně JPEG 2000 a JPEG-LS.
Bezztrátový JPEG byl vyvinut jako pozdní přírůstek do JPEG v roce 1993, za použití zcela odlišné techniky od ztrátového standardu JPEG. Používá prediktivní schéma založené na třech nejbližších (kauzálních) sousedech (horní, levý a levý horní) a na chybu predikce se používá kódování entropie . Standardní knihovny nezávislé skupiny JPEG to nemohou kódovat ani dekódovat, ale Ken Murchison z Oceana Matrix Ltd. napsal opravu, která rozšiřuje knihovnu IJG tak, aby zvládla bezztrátový JPEG. Bezztrátový JPEG má určitou popularitu v lékařském zobrazování a používá se v DNG a některých digitálních fotoaparátech ke kompresi nezpracovaných obrázků, ale jinak nebyl nikdy široce přijat. Adobe je DNG SDK poskytuje knihovnu software pro kódování a dekódování bezeztrátovou JPEG s až 16 bitů na vzorek.
Skupina ISO / IEC Joint Photography Experts Group udržuje referenční implementaci softwaru, která může kódovat jak základní JPEG (ISO / IEC 10918-1 a 18477-1), tak JPEG XT rozšíření (ISO / IEC 18477 části 2 a 6-9), stejně jako JPEG-LS (ISO / IEC 14495).
Bezztrátový provozní režim
Bezztrátový JPEG je vlastně provozní režim JPEG. Tento režim existuje, protože forma založená na diskrétní kosinové transformaci (DCT) nemůže zaručit, že vstup kodéru by přesně odpovídal výstupu dekodéru. Na rozdíl od ztrátového režimu, který je založen na DCT, využívá proces bezztrátového kódování jednoduchý prediktivní kódovací model zvaný diferenciální pulzní kódová modulace (DPCM). Jedná se o model, ve kterém jsou předpovědi hodnot vzorků odhadovány ze sousedních vzorků, které jsou již na obrázku kódovány. Většina prediktorů odebírá průměr vzorků bezprostředně nad a nalevo od cílového vzorku. DPCM kóduje rozdíly mezi predikovanými vzorky namísto kódování každého vzorku samostatně. Rozdíly od jednoho vzorku k dalšímu se obvykle blíží nule. Typický kodér DPCM je zobrazen na obr.1. Blok na obrázku funguje jako úložiště aktuálního vzorku, který bude později předchozím vzorkem.
Hlavní kroky bezztrátového provozního režimu jsou znázorněny na obr. V tomto procesu prediktor kombinuje až tři sousední vzorky na A, B a C zobrazené na obr. 3, aby vytvořil predikci hodnoty vzorku v poloze označené X. Tři sousední vzorky musí být již kódované vzorky . K odhadu vzorku umístěného na X lze použít kterýkoli z prediktorů zobrazených v tabulce níže. Lze použít kterýkoli z osmi prediktorů uvedených v tabulce. Všimněte si, že výběry 1, 2 a 3 jsou jednorozměrné prediktory a výběry 4, 5, 6 a 7 jsou dvourozměrné prediktory. První hodnota výběru v tabulce, nula, se používá pouze pro diferenciální kódování v hierarchickém provozním režimu. Jakmile jsou všechny vzorky předpovězeny, lze získat rozdíly mezi vzorky a entropicky kódovat bezztrátovým způsobem pomocí Huffmanova kódování nebo aritmetického kódování .
| Hodnota výběru | Předpověď |
|---|---|
| 0 | Žádná předpověď |
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | A + B - C. |
| 5 | A + (B - C) / 2 |
| 6 | B + (A - C) / 2 |
| 7 | (A + B) / 2 |
Komprese využívající bezztrátový provozní režim mohou u barevných obrázků dosáhnout kompresního poměru přibližně 2: 1 . Tento režim je v oblasti lékařského zobrazování velmi populární a je definován jako možnost ve standardu DNG, ale jinak se příliš nepoužívá kvůli složitosti provádění aritmetiky na hodnotách 10, 12 nebo 14 bpp na typickém zabudovaném 32bitovém procesoru a malý výsledný zisk ve vesmíru.
JPEG-LS
Obecný popis
JPEG-LS je bezztrátový / téměř bezztrátový kompresní standard pro obrazy s nepřetržitým tónem. Jeho oficiální označení je ISO-14495-1 / ITU-T.87. Jedná se o jednoduchý a efektivní základní algoritmus, který se skládá ze dvou nezávislých a odlišných fází nazývaných modelování a kódování. JPEG-LS byl vyvinut s cílem poskytnout standard komprese obrazu bez ztráty a téměř bez ztráty obrazu, který by mohl nabídnout lepší účinnost komprese než bezztrátový JPEG. Byl vyvinut, protože v té době byl Huffmanovo kódovací standard JPEG bezztrátový a další standardy omezeny v kompresním výkonu. Totální dekorelace nelze dosáhnout entropií prvního řádu predikčních reziduí použitých těmito nižšími standardy. JPEG-LS na druhé straně může dosáhnout dobré dekorelace. Část 1 tohoto standardu byla dokončena v roce 1999. Část 2, vydaná v roce 2003, představila rozšíření, jako je aritmetické kódování . Jádro JPEG-LS je založeno na algoritmu LOCO-I, který se opírá o predikci, reziduální modelování a kontextové kódování reziduí. Většina nízké složitosti této techniky vychází z předpokladu, že zbytky predikce sledují oboustranné geometrické rozdělení (nazývané také diskrétní Laplaceovo rozdělení ) a z použití Golombových kódů, o nichž je známo, že jsou přibližně optimální pro geometrická rozdělení . Kromě bezeztrátové komprese poskytuje JPEG-LS také ztrátový režim („téměř bezztrátový“), kde lze kodérem řídit maximální absolutní chybu.
Výkon
- Komprese pro JPEG-LS je obecně mnohem rychlejší než JPEG 2000 a mnohem lepší než původní bezztrátový standard JPEG.
- Komprese pro JPEG-LS je obecně o něco horší než JPEG 2000, ale to velmi závisí na obsahu obrázku.
- Dekomprese pro JPEG-LS je obecně mnohem rychlejší než JPEG 2000, ale to záleží na přesné implementaci softwarového dekodéru.
- Toto prohlášení je platné pro implementace open-source.
Podpora aplikace
- Prohlížeč a editor obrázků IrfanView má plnou podporu čtení a zápisu pro obrazový kodek JPEG-LS (přípona souboru .jls).
-
Prohlížeč a editor obrázků XnView tvrdí, že je schopen číst soubory JPEG-LS (.jls).
- XnViewMP v0.98.1 však neumí číst soubory JPEG-LS vytvořené IrfanView v4.54.
- CharLS - open-source kodek JPEG-LS.
- Libjpeg Thomase Richtera - kodek JPEG-LS s otevřeným zdrojovým kódem.
- Kodek UBC JPEG-LS
- Kodek JPEG-LS Davida Clunieho
-
Referenční kodér Hewlett-Packard JPEG-LS v1.00
- Poznámka: Přímý odkaz na soubor!
Algoritmus LOCO-I
Před kódováním je třeba ve fázi modelování provést dva základní kroky: dekorelace (predikce) a modelování chyb .
Dekorelace / predikce
V algoritmu LOCO-I je primitivní detekce hran vodorovných nebo svislých hran dosažena zkoumáním sousedních pixelů aktuálního pixelu X, jak je znázorněno na obr. Pixel označený B se použije v případě svislé hrany, zatímco pixel umístěný v A se použije v případě vodorovné hrany. Tento jednoduchý prediktor se nazývá prediktor Median Edge Detection (MED) nebo LOCO-I. Pixel X je předpovídán prediktorem LOCO-I podle následujících odhadů:
Tři jednoduché prediktory jsou vybrány podle následujících podmínek: (1) má tendenci vybírat B v případech, kdy existuje svislá hrana vlevo od X, (2) A v případě vodorovné hrany nad X, nebo (3) A + B - C, pokud není detekována žádná hrana.
Kontextové modelování
Algoritmus JPEG-LS odhaduje podmíněná očekávání chyb predikce pomocí odpovídajících ukázkových prostředků v každém kontextu Ctx . Účelem kontextového modelování je, že struktury vyššího řádu, jako jsou textury vzorů a lokální aktivita obrazu, lze využít kontextovým modelováním chyby predikce. Kontexty jsou určeny získáním rozdílů sousedních vzorků, což představuje lokální gradient :
Místní gradient odráží úroveň aktivit, jako je hladkost a ostrost sousedních vzorků. Všimněte si, že tyto rozdíly úzce souvisí se statistickým chováním predikčních chyb. Každý z rozdílů nalezených ve výše uvedené rovnici je poté kvantován do zhruba ekvipravitelných a spojených oblastí. U JPEG-LS jsou rozdíly g1, g2 a g3 kvantovány do 9 oblastí a oblast je indexována od −4 do 4. Účelem kvantizace je maximalizovat vzájemné informace mezi aktuální hodnotou vzorku a jejím kontextem tak, že lze zachytit závislosti vyššího řádu. Lze získat kontexty na základě předpokladu, že
Po sloučení kontextů pozitivních i negativních znaků je celkový počet kontextů kontexty. Odhad zkreslení lze získat vydělením kumulativních chyb predikce v každém kontextu počtem výskytů kontextu. V algoritmu LOCO-I je tento postup upraven a vylepšen tak, aby se snížil počet odčítání a sčítání. Postup výpočtu zkreslení bez rozdělení je uveden v [2] . Zpřesnění predikce lze poté provést použitím těchto odhadů v mechanismu zpětné vazby, který eliminuje předpovědní předsudky v různých kontextech.
Kódování opravilo zbytky predikce
V běžném režimu JPEG-LS používá standard kódy Golomb – Rice, které jsou způsobem, jak kódovat nezáporné délky běhu. Jeho speciální případ s optimální hodnotou kódování 2 k umožňuje jednodušší postupy kódování.
Spusťte délkové kódování v jednotných oblastech
Vzhledem k tomu, že kódy Golomb – Rice jsou pro kódování distribucí s nízkou entropií docela neúčinné, protože rychlost kódování je alespoň jeden bit na symbol, může být vytvořena významná redundance, protože hladké oblasti v obraze mohou být kódovány s méně než 1 bitem na symbol. Aby se zabránilo nadměrné délce kódu nad entropií, lze použít příponu abecedy, která místo kódování jednotlivých symbolů kóduje bloky symbolů. To rozloží přebytečnou délku kódování na mnoho symbolů. Toto je „běhový“ režim JPEG-LS a je prováděn, jakmile je detekována plochá nebo hladká kontextová oblast charakterizovaná nulovými přechody. Očekává se běh západního symbolu „a“ a konec běhu nastane, když dojde k novému symbolu nebo je dosaženo konce řádku. Celková délka běhu je kódována a kodér by se vrátil do „normálního“ režimu.
JPEG 2000
JPEG 2000 obsahuje bezztrátový režim založený na speciálním celočíselném vlnkovém filtru (biortogonální 3/5). Bezztrátový režim JPEG 2000 běží pomaleji a má často horší kompresní poměr než JPEG-LS na umělých a složených obrázcích, ale vede lépe než implementace JPEG-LS na obrázcích z digitálních fotoaparátů UBC. JPEG 2000 je také škálovatelný, progresivní a široce implementovaný.
JPEG XT
JPEG XT obsahuje bezztrátový režim transformace DCT na celé číslo založený na kompresi waveletů z JPEG 2000.
Reference
externí odkazy
- Kódování statických obrázků JPEG 2000 oproti jiným standardům
- JPEG2000, JPEG-LS a další bezztrátové kodeky na obrázcích ve stupních šedi
- Domovská stránka JPEG-LS
- Domovská stránka LOCO-I
- Domovská stránka HP Labs LOCO-I / JPEG-LS
- Licenční podmínky pro technologii HP LOCO v JPEG-LS (bezplatné reg. Požadavky; nelze sublicencovat; k dispozici pouze společnostem)
- Odkazy na různé implementace
- Algoritmus kodéru JPEG-LS s jedním tónem / stupně šedi
- Vyhodnocení JPEG-LS, IEEE TRANSAKCE NA GEOSCIENCI A DÁLKOVÉ SNÍMÁNÍ, sv. 39, č. 10. ŘÍJNA 2001