XBUP - Dokumentace: Formát obrázkuTento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis formátu pro bitmapová data.
1. Popis
2. Bitmapa
2.1. Pixelová plocha
2.2. Rovina odrazu a pohlcení
2.3. Bodový poměr
2.4. Frekvenční mapa
2.5. Paleta
2.6. Pole vlastností pixelů
2.6.1. Pole RGB hodnot
3. Zahrnutí existujících formátů
3.1. Formát PNG
3.2. Formát TIFF
Obrázová data ve formě bitmapového obrázku patří mezi data ukládaná tradičně pomocí binárních formátů. Bitmapa je obvykle dvourozměrné pole pixelů, které určují hodnotu barev pro jednotlivé čtvercové či obdelníkové plochy.
Pokud se podíváme více do hloubky, představuje hodnota barvy intenzitu světelných paprsků v normou definovaných částech spektra elektromagnetického záření, v případě běžných obrázků vnímatelných buňkami sítnice lidského oka. Může se také jednat o bitmapu určující jiné části elektromagnetického spektra či jiné fyzikální i nefyzikální veličiny. Příkladem může být retgenový či infračervený snímek, spektrální rozklad, hustota obyvatel na čtvereční metr a podobně.
Pro první variantu bude definován klasický bitmapový obrázek s RGB paletou, který bude později rozšířen o vyjádření fyzikálního významu pomocí transformací a sémantických informací a rozšířen o možnost obecnějšího použití.
Základem bitmapového obrázku je bitmapa. Ta je definována jako konečná dvojrozměrná matice pixelů. Pixel je základní jednotka obrazové informace, která vyjadřuje intenzitu daného paprsku procházejícího/odraženého plochou pixelu. Pro určení vlastností elektromagnetického záření ve viditelném spektru se používá několik druhů
Jednotlivým formátům jsou přidělovány adresy umístění v katalogu.
Bitmapa je blok, který specifikuje, že jeho data představují bitmapový obrázek. Ten pak obsahuje data, které definují barvy.
ObrázekPixelová plocha je rovinné plátno rodělené na obdelníkové pixely. Základní informací je rozměr plátna uvedený jako počet pixelů v souřadnicích. Na této ploše se pak může nacházet nějaký viditelný objekt.
Blok RGBBitmap/PixelPlane
UBENatural - XSize - rozměr plochy X
UBENatural - YSize - rozměr plochy Y
UBPointer - ObjectLink
UBPointer - PixelRation
..
Jednou z možných položek je bitmapa
Blok RGBBitmap/ItemBitmap
UBNumber - BitsPerPixel
UBPointer - PixelColorMap
UBNatural - Width
UBNatural - Height
UBIngeter - PositionX
UBInteger - PositionY
UBPointer - Orientation
Bodový poměr určuje velikost jednoho pixelu vzhledem k reálném prostoru ať už pro zobrazení na obrazovce, tiskárně nebo jiném výstupním zařízení. V současné době se používá stále ještě větší množství jednotek, ať už je to např. metr, palec nebo jejich různá odvození.
Blok bude definován až po stanovení bloků a jednotek pro vzdálenost.
Tento blok určuje způsob interpretace jednoho stupně a výšky základní frekvence, především pomocí základních fyzikálních jednotek. Cílem je umožnit ukládání bitmapových obrázků i například pro infračervené či rentgenové snímky a jejich automatickou transformaci do viditelné části spektra dle potřeby. Bude dostupné později, až po deklaraci fyzikálních bloků.
Paleta je součástí komprimačního přístupu, který indexům pixelů přiřazuje barvu z tabulky.
Jedná se v podstatě o pole trojic čísel RGB případně později dalších možných hodnot.
V případě obrázků v true-color barevné hloubce se hodnoty pixelů přímo interpretují jako trojice RGB.
Jedna z možných palet slouží pro přímou interpretaci bitových hodnot pixelů jakožto RGB, respektive RGBA hodnoty. Jedná se o tři, respektive čtyři osmibitové hodnoty, tedy červenou, zelenou, modrou a případně alfa kanál. Jedná se o variantu frekvenční mapy.
Blok RGBPalette/DefaultRGBPalette
Blok RGBPalette/DefaultRGBAPalette
Blok RGBPalette/DefaultGScalePalette
Blok RGBPalette/DefaultGScaleAPalette
Další možnou variantou je definice palety pomocí tabulky RGB hodnot, přičemž položky bitmapy jsou vyhodnoceny jako indexy do této tabulky.
Blok RGBPalette/RGBPaletteList
UBPointerList RGBIndexes
Uvedené seznamy pak odkazují následující položky:
Blok RGBPalette/RGBPaletteValue
UBRatio Red
UBRatio Green
UBRatio Blue
UBRatio Aplha
Tato paleta je komprimací předchozí varianty.
Blok RGBPalette/RGBPaletteTable
UBNatural IndexCount
UBPointer PaletteData
Ukazatel PaletteData odkazuje datový blok v němž je posloupnost RGBA hodnot reprezentující jednotlivé údaje palety.
Vlastnosti jednotlivých pixelů jsou definovány pomocí binárního pole, které představuje kompresi vlnových vlastností pomocí volitelného algoritmu. Tím může být například RGB, CMYK, YUI, nebo gray-scale. Navíc i samotné toto datové pole může být dále kompresováno pomocí dalšího algoritmu, ať už ztrátovéno, nebo neztrátového.
Příkladem uvedeného pole je pole trojic RGB hodnot o bajtových rozsažích. Osmice bitů vyjadřuje intenzitu vlnové délky ve výsledném světle daného pixelu. 0 - pro nulový podíl, 255 - maximální intenzita.
Tato rovina je použitelná především pro opticky zobrazitelná data. Jedná se o trinární funkci, která vrací dvě reálné hodnoty v intervalu <0,1>, které určují indexy odrazu a pohlcení. Tři vstupní parametry určují souřadnice a frekvenci. Fyzikální význam je rovina která záření o frekvenci F dopadající do bodu (X,Y) pod libovolným úhlem rozdělí na tři části, a to na část, která projde, část která se odrazí a část, která je pohlcena (absorbována).
- Verze 0: Standard AbsorbingPlane
Tato základní forma používá pouze několik základních vlastností:
UBNatural - RatioIndex
UBNatural - FrequencyMapIndex
Tato kapitola se snaží uvést vlastnosti existujících bitmapových formátů a způsob reprezentace ekvivalentních vlastností v protokolu XBUP.
Portable Network Graphic je dobře dokumentovaný formát bez licenčních omezení, navržený pro široké použití na internetu. Disponuje kvalitní bezstrátovou kompresí a je vhodný pro proudové zpracování. Používá rozšiřitelnou blokovou strukturu a pevné kódování celých čísel s endianitou dle "Network Byte Order".
Kritické bloky se musí pro získání obrázku vždy zpracovat. Jsou to následující:
IHDR blok je povinně umístěn na začátku každého PNG obrázku. Má následující hodnoty:
Width: 4 bytesTento blok je řešen následujícím způsobem:
Width, Height jsou reprezentovány pomocí bloku Pixelová rovina.
Bit depth je realizována pomocí FrequencyMapIndex.
Color type má v PNG následující významné bity:
1 - palette used
2 - color used
3 - alpha channel used
Platné hodnoty jsou 0, 2, 3, 4, 6.
Následující bloky nejsou esenciální součástí obrázku, ale mohou být ignorovány, ačkoliv mohou mít na zobrazení vliv.
Poslední tři uvedené bloky používají následující standardní klíčová slova pro textové položky a spadají do bloků informací o vzniku dokumentu.
Title - Short (one line) title or caption for image
Author - Name of image's creator
Description - Description of image (possibly long)
Copyright - Copyright notice
Creation Time - Time of original image creation
Software - Software used to create the image
Disclaimer - Legal disclaimer
Warning - Warning of nature of content
Source - Device used to create the image
Comment - Miscellaneous comment; conversion from GIF comment
Todo: Compresion/Filter/Interlace jsou mutátory, viz. později...
PLTE Palette
Viz. frekvenční mapa
IDAT Image data
Representováno jako normální datový blok
Blok: Standard Palette Bitmap
Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2008-08-28