Odolnost formátu JPEG 2000 proti přenosovým chybám

Autor: T. Valenta <valent1(at)fel.cvut.cz >, Pracoviště: České vysoké učení technické v Praze, FEL, Téma: Digitální zpracování signálu, Vydáno dne: 17. 03. 2008

Tento článek popisuje metody ochrany proti přenosových chybám použité u obrazového formátu JPEG 2000. Metody odolnosti vycházející z části I standardu jsou popsány odděleně od speciálních metod pro bezdrátové přenosy, podchycených v částí II standardu - rozšíření JPWL. Ve stručnosti je zmíněno porovnání těchto schopností s ostatními obrazovými formáty.


Image format JPEG 2000 - methods of protection against transmission errors
Abstract
This paper describes methods of protection against transmission errors, used in image format JPEG 2000. Resistibility methods, which come out from I part of standard, are explained separately from special methods for wireless transmission described is II part of standard – extension JPWL. Generally it can be said that it is comparison of those capabilities with the others video formats.


Úvod

Formát JPEG 2000 byl navržen uskupením JPEG [1], které reprezentuje různorodou skupinu akademických institucí a firem. Tento návrh přinesl několik vylepšení do oblasti obrazových formátů. Jeho hlavním cílem však nebyl vysoce efektivní kompresní algoritmus, ale snaha vytvořit univerzální formát pro ztrátovou a bezeztrátovou kompresi včetně podpory široké škály moderních vlastností obrazových formátů. Hlavní vlastnosti formátu JPEG 2000 jsou:

Požadavek na univerzálnost formátu bylo třeba kombinovat s požadavkem na snadnou implementaci. Za tímto účelem byl navržen standard složený z několika oddělených částí, kde část 1 uvádí základní informace potřebné pro vytvoření funkční implementace. K této části je v příloze I doplněn popis souborového formátu. Část 2 standardu definuje pokročilé vlastnosti formátu a přidává další nutné specifikace souborového formátu v dalších přílohách. Ostatní vlastnosti a doplňující informace jsou uvedeny v dalších částech standardu. Kupříkladu část 3 definuje použití JPEG 2000 pro animace, část 5 obsahuje ukázkový dekompresní algoritmus, část 9 obsahuje definice bezpečné varianty JPEG 2000 apod. Kompletní seznam těchto částí lze nalézt v literatuře [2]. Část 11 standardu je rozšíření určené pro bezdrátové aplikace a obsahuje nejpokročilejší metody ochrany proti poruchám při přenosu. Základní metody odolnosti jsou obsaženy již v části 1 standardu, kde je popsáno použití restartovacích značek, v části 2 jsou přidány další metody ochrany. Význam ochranných značek se projevuje zejména při použití formátu JPEG 2000 pro video kompresi.

Odolnost proti chybám

Masivní prosazení mobilních zařízení s integrovanou kamerou nebo fotoaparátem přináší podporu multimédií do běžného života a zároveň klade vyšší nároky na přenos těchto obrazových a zvukových informací po běžných, proti chybám nezabezpečených sítích. Formát JPEG 2000 je velmi dobrou volbou pro malá mobilní zařízení vzhledem ke své univerzálnosti, podporu videa, schopnosti interaktivní práce s daty a také díky své odolnosti proti přenosovým chybám. Jak uvádím dále, část 1 standardu poskytuje velmi omezenou podporu pro opravu chyb, která je ale podstatně vylepšena v dalších částech normy.

Požadavek bezpečnostního kódování koliduje často s požadavkem na minimální objem přenášených dat; pro jeho snížení vlastně provádíme kompresi obrazových dat. Při použití formátu JPEG 2000 však máme možnost uložit ochranné informace ve zdrojovém souboru, ale po přenosové cestě je posílat pouze v případě, že je to nutné. Toho je dosaženo strukturou datového toku formátu a nezávislou činností jednotlivých bloků zpracovávajících obrazová data. Tento princip je popsán dále v textu.

Část I – Core Coding System

Proces kódování ve formátu JPEG 2000 probíhá rámcově takto: obrazová data ve formátu RGB jsou převedena do barevného prostoru YCbCr (jasová a dvě barevné složky) pomocí nevratné barevné transformace, resp. do barevného prostoru YUV pomocí vratné barevné transformace. Tyto barevné složky sice mohou být převzorkovány na nižší rozlišení (jako u původního formátu JPEG), ale díky použití vlnkové komprese není tento krok potřebný. Jednotlivé složky jsou následně rozděleny do nepřekrývajících se obdélníkových oblastí stejné velikosti. Vlastní vlnková transformace se provádí na tyto oblasti a použitý algoritmus je odlišný pro ztrátovou a bezztrátovou kompresi. Po ztrátové kompresi následuje navíc proces kvantizace, který při bezeztrátové kompresi nemůže být použit. Výsledná data jsou potom nově uspořádána do jednotlivých bitových vrstev (bitplanes), které se dále dělí na sub-bitové (sub-bitplanes) vrstvy. Jednotlivé sub-bitové vrstvy tvoří ve výsledku tzv. kódové bloky (code-blocks).

Na tento proces dále navazuje proces ochrany proti chybám přenosu. Pokud by část kódového bloku z předchozího procesu byla porušena při přenosu, došlo by k narušení vnitřního stavu dekódovacího algoritmu a tím ke vzniku neplatných výstupních obrazových dat. První ochranou formátu JPEG 2000 proti poruše je reinicializace vnitřního stavu dekodéru po každém kódovém bloku. Dále může být dekodér pomocí značek v datovém toku restartován i na hranici každé sub-bitové vrstvy. Tím se dopad případné přenosové chyby omezí jen na velmi malou část výstupního obrazu.

Vytvořené kódové bloky jsou organizovány do paketů ke kterým jsou doplněny hlavičky s informacemi o obsažených datech. Pakety obsahující stejné bitové vrstvy tvoří jednu kvalitativní vrstvu, která reprezentuje jeden stupeň kvality celého obrázku (pokud si představíme obrazová data zapsaná jako skupinu 10 bitových čísel, pak jedna tato vrstva obsahuje všechny bity například na páté pozici každého obrazového bodu). Počet bitových vrstev v jedné kvalitativní vrstvě může být omezen a jejich pořadí může být zvoleno, čímž vniká možnost postupného načítání obrazu s rostoucí obrazovou kvalitou, rostoucím rozlišením nebo i postupným načítáním jednotlivých barevných nebo prostorových komponent. Větší počet kvalitativních vrstev ovšem zvyšuje množství informací v hlavičkách paketů a snižuje tím celkový kompresní poměr, který je nejlepší při použití minimálního počtu kvalitativních vrstev, kdy je celá jedna vrstva obsažena v jednom paketu.

Toto uspořádání také ovlivňuje citlivost datového toku na poruchy, jelikož poškození hlavičky má za následek ztrátu celého paketu a resynchronizační značky uvnitř datového toku pak nemají žádný význam. V tomto ohledu je pro chybové přenosy lepší použít podrobnější členění s větším množstvím paketů, kde je sice větší počet kontrolních informací, ale při poruše dochází ke ztrátě menšího množství informací.

Část II – JPWL

Rozšíření JPWL je doplňkem k originálnímu standardu JPEG 2000 označeným číslem 11 a stalo se mezinárodním standardem v červnu 2007. Definuje vybranou skupinu nástrojů a metod pro ochranu datového toku proti chybám při přenosu. Navíc poskytuje možnost označovat citlivost jednotlivých částí obrazu na poruchy. Tuto vlastnost lze dále využít i při jiných aplikacích než pouze pro ochranu proti chybám při přenosu. Umožňuje aplikovat zvláštní postupy na data citlivější na poruchy než na ostatní data.

Klíčové vlastnosti rozšíření JPWL jsou: ochrana datového toku, definice chybové citlivosti jednotlivých částí, označení přítomnosti zbytkových chyb v datovém toku. Schéma fungování JPWL je zobrazeno na následujícím obrázku.

JPEG2000

Obr. 1 - Schéma fungování JPWL

Vstupní obrazová data jsou zpracována základní JPEG kodérem; vzniklá data jsou označena různým stupně poruchové citlivosti a na jejím základě je použita relevantní metoda jejich ochrany. Po přenosu chybovým kanálem je aplikována ochrana proti přenosových chybám a pokud se nepodaří všechny přenosové chyby opravit, jsou zbytkové chyby označeny tak, aby mohly být dále správně identifikovány. To umožňuje správné rozhodování dekodéru jak nakládat s blokem poškozených dat podle jeho umístění, významnosti a dalších vlastností.

JPWL syntaxe

JPWL definuje 4 nové značky pro datový tok formátu JPEG 2000, které realizují vlastnosti popsané výše. Díky vnitřní struktuře obrazového formátu JPEG 2000 je snadné přidávání nových značek do datového toku, aniž by tím byla narušena funkce dekodérů, které tyto značky neznají. Tzn. dekodér vytvořený bez podpory těchto značek je schopný správně dekomprimovat obrazová data obsahující tyto ochranné značky.

EPC (schopnost chybové ochrany)

Schopnost chybové ochrany (Error protecting capability) označená kódovou značkou EPC určuje jaké metody ochrany dat jsou použity v datovém toku. Navíc informuje dekodér o tom, jaké nástroje byly použity pro vytvoření ochranných bloků informací a musí být tedy použity při případné obnově.

EPB (blok chybové ochrany)

Blok chybové ochrany (Error protection block) uvozený značkou EPB se používá hlavně pro ochranu záhlaví paketů, které jinak v části 1 standardu nemají definován žádný způsob ochrany pro přenosovým chybám. Zároveň může být tento blok použit také na ochranu datového toku. Tento blok obaluje chráněná data a přidává data redundantní potřebná pro eliminaci vzniklých chyb. Blok EPB se může na přijímací straně vyskytovat opakovaně, jelikož vysílací strana může být libovolně požádána a nové zaslaní bloku s velkým poškozením (při dvousměrné komunikaci).

ESD (popisovač chybové citlivosti)

Popisovač chybové citlivosti (Error Sensitivity Descriptor) uvozený značkou ESD uvádí informaci o tom, jak velký význam z hlediska možného poškození má daný datový blok. Umožňuje snadnou identifikaci kritických informací a automatizaci komunikačního procesu, který se například pokouší poškozené bloky opakovaně žádat od vysílací strany. Tyto bloky definuje JPWL pouze pro použití v následných implementacích komunikačních a dekompresních algoritmů a samo s touto informací nijak neoperuje.

RED (popisovač zbytkových chyb)

Popisovač zbytkových chyb (Residual Error Descriptor) uvozený značkou RED signalizuje přítomnost chyb v datovém toku po provedení chybové korekce, jelikož redundance dat nebo použité algoritmy nemusí dostačovat na opravu všech poškozených dat. Tyto informace může úspěšně použít dekodér pro rozhodování jak naložit s přijatým blokem podle toho zda byl nebo nebyl úspěšně opraven.

Srovnání s jinými formáty

Jelikož jsem u žádného z běžné používaných obrazových formátu nenalezl metody ochrany proti přenosových chybám, srovnávám vlastnosti formátu JPEG 2000 proti jeho přímému předchůdci, formátu JPEG. Typicky používané obrazové formáty jako je GIF, PNG, BMP nebo TIFF nemají žádné metody ochrany proti chybám přenosu. Pouze formát PNG má podporu pro detekci vnitřních chyb, nikoliv však pro jejich opravu.

Dopad přenosových chyb na formát JPEG a JPEG 2000 může být snadno posouzen z povahy vlastního kompresního procesu. Jelikož JPEG používá kompresní bloky fixní velikost 8x8 bodů, jakákoliv přenosová chyba poškodí celý tento blok a způsobí viditelnou chybu ve výsledném obraze. Pokud jde o chybu ve formátu JPEG 2000, bude velmi záležet na tom, kolik reinicializačních značek bude v datovém toku použito. Jelikož však použití maximálního počtu reinicializačních značek zvýší celkový objem přenášených dat o méně než 1%, není důvod se v použití těchto značek omezovat. Tím se zajistí restartování vnitřního stavu dekodéru po každé sub-bitové vrstvě a jakákoliv přenosová chyba tedy ovlivní pouze tuto jednu vrstvu. Pokud by se jednalo o část některé vrchní kvalitativní vrstvy pro danou barevnou komponentu v daném prostorovém celku, může tato chyba způsobit lokální zkreslení barevného podání části obrazu. Nezpůsobí však jeho celkové porušení a většinou bude mít pouze mizivý dopad na celkový vizuální dojem obrazu (např. změna 7 bitu jedné barevné informace v malém obrazovém bloku). Tato úvaha navíc nezahrnuje použití rozšíření JPWL, které dále eliminuje vlastní vznik a prosazení chyb v obraze.

Závěr

V tomto článku popisuji nejprve schopnosti první části obrazového standardu JPEG 2000 pro detekci přenosových chyb a jejich řešení za pomocí reinicializačních značek, které zvyšuje celkovou chybovou odolnost přenášených obrazových dat. První část standardu očividně postrádá metody ochrany záhlaví dat a jejich poškození tedy bude mít dopad na část výstupního obrazu, která však díky organizační struktuře formátu JPEG 2000 nemusí být vizuálně příliš podstatná.

Část II standardu označená jako JPWL zavádí několik nových kódových značek použitelných nejen pro ochranu datových bloků pomocí libovolné metody využívající redundance, ale také poskytuje schopnost označovat citlivost datových bloků na poškození během přenosu a signalizaci porušených bloků dalším funkčním bloků v dekompresním procesu. Použití rozšíření JPWL navíc nenarušuje zpětnou kompatibilitu formátu JPEG 2000 vzhledem ke starším dekompresním algoritmům, které tyto nové značky neznají a mohou je jednoduše ignorovat.

Celkově hodnotím schopnosti formátu JPEG 2000 v oblasti přenosové odolnosti jako velmi nadprůměrné a neporovnatelné s ostatním formáty pro kompresi statických obrazů nebo pro kompresi videosignálu využívající pouze vnitro-snímkové kódování.

Reference

[1] JPEG committee, http://www.jpeg.org/
[2] JPEG 2000 documents, http://www.jpeg.org/jpeg2000/
[3] Michael W. Marcellin, Michael J. Gormish, Ali Bilgin, Martin P. Boliek - “An Overview of JPEG-2000”, Proc. of IEEE Data Compression Conference, pp. 523-541, 2000
[4] J.Meessen, C. Parisot, J-F. Delaigle, D. Nicholson, F. Dufaux, X. Duthu, A. Nix, C. Serrao, C. Lebarz, D. Bull, F-O. Devaux, Y. Sadourny, A. Doufexi, D.Agrafiotis, C. Tricot. - “State-of-the-art / multimedia and video surveillance convergence”, April 2004
[5] Frédéric Dufaux, Giuseppe Baruffa, Fabrizio Frescura, Didier Nicholson - “JPWL – an Extension of JPEG 2000 for Wireless Imaging”, Circuits and Systems, 2006
[6] Frederic Dufaux, and Didier Nicholson - “JPWL: JPEG 2000 for Wireless Applications”, Applications of Digital Image Processing XXVII Volume 5558, pp. 309-318, November 2004
[7] Diego Santa-Cruz, Touradj Ebrahimi, Joel Askelof, Mathias Larsson, Charilaos A. Christopoulos - “JPEG 2000 still image coding versus other standards”, Applications of Digital Image Processing XXIII, Andrew G. Tescher, Editors, pp.446-454, 28 December 2000

Příspěvek vznikl v rámci výzkumného záměru MSM6840770014.