# LANGUAGE Czech # ENCODING CZ-KAM # AUTHOR Miroslav Hajda http://bomi.zde.cz bomi@zde.cz # COPYRIGHT BOMI group 2003 http://bomi.zde.cz # POSITION Galaxy/Earth/Europe/Czech_Republic # VERSION 1.0 WORK RELEASE 2, 2003 04 01 # DESCRIPTION XB File Format Ver.1 Specification ================================================== Form t XB - popis form tu eXtensible Binary Format ================================================== Obsah dokumentu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 1. —vod k form tu 1.1 C¡le 1.2 Licence 1.3 N zev form tu 1.4 Podpora form tu 2. Pou‘¡van˜ typ ‡¡sel 2.1. Form t ‡¡sel typu BNumber 2.1.1. Varianta HighestBitAtByteAsStopBit 2.1.2. Varianta HighestBitsAsByteCount 2.1.3. Varianta ExtendedHighestBitsAsByteCount 2.2. Formy Form tu BNumber 2.2.1. Redundantn¡ podtyp 2.2.2. Neredundantn¡ podtyp 3. Struktura form tu 3.1. Typ bloku 3.2. Specifikace verz¡ 4. Z kladn¡ typy blok– 4.1. Obecn˜ datov˜ blok 4.2. Odkaz 4.3. Textov˜ ©etˆzec 4.3.1. Jazyk 4.3.2. K¢dov n¡ znak– 5. Z kladn¡ promˆnn‚ 5.1. €¡slo 5.2. €asov˜ £daj 6. Bitmapov˜ obr zek 6.1. Blok bitmapov‚ho obr zku 6.2. Rovina odrazu a pohlcen¡ 6.2.1 Bodov˜ pomˆr 6.2.2 Frekven‡n¡ mapa 1. —vod k form tu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Dost v  se v m do rukou popis digit ln¡ho form tu XB, zalo‘en‚ho na principu potenci lnˆ neomezen˜ch ‡¡sel. Rozhodl jsem se vytvo©it tento form t, neboŸ jsem postr dal form t, kter˜ by mˆl neomezenou dop©ednou kompatibilitu a nebyl z visl˜ na pou‘it‚ platformˆ. Nav¡c jsem pot©eboval ukl dat nˆkter‚ m‚nˆ ‡ast‚ typy dat, jejich‘ v t‚ dobˆ dostupn‚ form ty byly pro mne ponˆkud nepou‘iteln‚. Rozhodl jsem se tedy vytvo©it form t nov˜ a uvolnit jej pod licenc¡ GNU/GPL. Vˆ©¡m, ‘e v˜hody, kter‚ tento form t p©in ¨¡ p©ev˜¨¡ n klady na zaveden¡ jeho podpory v programech a opera‡n¡ch syst‚mech. Pokud se chcete pod¡let na v˜voji tohoto form tu, nebo mˆ upozornit na nˆjak‚ chyby, m–‘ete mi napsat email "bomi@zde.cz". Upozor¤uji ‘e vesmˆs nem m s tvorbou tohoto typu zku¨enosti, tak‘e je mo‘n‚ o‡ek vat mnoho chyb. 1.1 C¡le ÄÄÄÄÄÄÄÄÄÙ C¡lem je vytvo©it digit ln¡ form t s n sleduj¡c¡mi vlastnostmi (se©azeno podle priority) : - k dispozici volnˆ a zdarma pod licenc¡ GNU/GPL - dop©edn  kompatibilita - platformov  nez vislost - jednotn  blokovˆ-stromov  struktura - p©esvˆd‡iv  reprezentace fyzik ln¡ reality - co nejvˆt¨¡ vyjad©ovac¡ schopnost - snadn  roz¨i©itelnost - v˜konn‚ n stroje volnˆ k dispozici/platformovˆ nez visl‚ - p©edpisy pro v˜konn‚ n stroje volnˆ k dipozici - pou‘it‚ metody bez z vislosti na existuj¡c¡ch licenc¡ch - podpora vˆdeck˜ch v˜po‡t– a teoretick˜ch model– - pevn‚ specifikace pro t©¡dy za©¡zen¡ 1.2 Licence ÄÄÄÄÄÄÄÄÄÄÄÄÙ Z v˜¨e uveden˜ch c¡l– je snad dostate‡nˆ z©ejm‚, ‘e licence je zcela free, a‘ na ‡ sti k¢d–, kter‚ jsou k dispozici pod GNU/GPL2. Je zak z no zahrnout k tomuto form tu jak˜koukoli uzav©enou n dstavbu. Takov  nebude schv lena a zahrnuta do datab ze platn˜ch kl¡‡– form t– a nesm¡ pou‘¡vat logo XB. 1.3 N zev form tu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ N zev form tu je v t‚to f zi ur‡en pou‘itou p©¡ponou .XB, a to na eXtensible Binary format. Tento n zev stejnˆ jako p©¡pona mohou b˜t v budoucnu zmˆnˆny v z vislosti na tom, zda ji‘ nˆjak˜ form t s t¡mto n zvem existuje, ‡i nikoli. Seznam mo‘n˜ch n zv– form tu (n zev potenci ln¡ p©¡pony): - Extensible Binary Format XB, EB, X2, E2 - Extensible File Format XF, XO, XI - Bit Extend Format BF, BE, BX, 2E, 2X, 2F - Binary Universal Format BU, 2U, UF - Free File Format 3F, FF, FR Skute‡n  p©¡pona souboru se nicm‚nˆ bude skl dat z 2 p¡smen n zvu form tu a dal¨¡ch znak– specifikuj¡c¡ch bl¡‘e typ obsahu. Mˆlo by se vˆt¨inou jednat o prvn¡ znak v anglick‚m n zvu slova popisuj¡c¡ho typ obsahu. N¡‘e udan‚ p©¡pony jsou pouze orienta‡n¡ a budou pravdˆpodobnˆ zmˆnˆny. Seznam p©¡pojn˜ch p©¡pon (typ p©¡pona): - Picture P - Bitmap Picture PB - Multisize Picture PM - Vector Picture PV - Animation A - Bitmap Animation AB - Multisize Animation AM - Vector Animation AV - Sound S - Audio Sound SA - Modulable Sound SM - Video V - Text T - Text Document TD - Executable E 1.4 Podpora form tu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Webov  str nka pro podporu form tu se nach z¡ na adrese http://bomi.zde.cz/xb, kde je um¡stˆna specifikace. Dal¨¡ informace m–‘ete tak‚ z¡skat na ofici ln¡ str nce skupiny BOMI: http://bomi.zde.cz V sou‡asn‚ dobˆ je form t ve stadiu v˜voje a existuje dosud pouze jedin  aplikace, kter  bude pr–bˆ‘nˆ zahrnovat jednotliv‚ typy blok–. 2. Pou‘¡van˜ typ ‡¡sel ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Z d–vod– dop©edn‚ kompatibility bylo nutn‚ vytvo©it takov˜ form t ‡¡sla, kter˜ by umo‘¤oval ukl dat neomezenˆ velk  ‡¡sla, p©¡padnˆ ‡¡sla s potenci lnˆ nekone‡nou p©esnost¡. Velikost takov‚ho ‡¡sla by pak byla omezena jen maxim ln¡ velikost¡ prostoru, kter˜ je po‡¡ta‡ schopen alokovat. Pou‘it¡ neomezen˜ch ‡¡sel je ji‘ implementov no v nˆkolika programovac¡ch jazyc¡ch, ale jejich nev˜hodou je vˆt¨¡ n ro‡nost v˜kon po‡¡ta‡e. P©i vlastn¡m zpracov n¡ souboru by mˆla b˜t data ve vnit©n¡ pamˆti po‡¡ta‡e ukl d na p©irozen˜m zp–sobem. V˜sledkem snahy naj¡t takovou formu ukl d n¡ ‡¡sel je form t BNumber. Tento form t umo‘¤uje ukl dat nekone‡n  p©irozen  ‡¡sla v‡etnˆ nuly, nehod¡ se v¨ak pro vnit©n¡ reprezentaci ve vnit©n¡ pamˆti po‡¡ta‡e. 2.1. Form t ‡¡sel typu BNumber ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ V dobˆ uveden¡ t‚to verze dokumentu nebylo je¨tˆ rozhodnuto kone‡n‚m tvaru jednotliv˜ch blok– form tu. P©ed uvolnˆn¡m prvn¡ ofici ln¡ specifikace bude nutn‚ vybrat nejvhodnˆj¨¡ tvar. Tak‚ n zev BNumber (Bit extend NUMBER) m–‘e b˜t zmˆnˆn. 2.1.1. Varianta HighestBitAtByteAsStopBit ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Z kladn¡ tvar ‡¡sla je jednobajtov˜, p©i‡em‘ hodnota nejvy¨¨¡ho (prvn¡ho) bitu je 0. Pokud je nejvy¨¨¡ bit 1, roz¨i©uje se d‚lka ‡¡sla o jeden bajt, p©i‡em‘ se u nov‚ho bajtu toto pravidlo aplikuje rekurzivnˆ. Posloupnost hodnot vypad  takto (bin rn¡ tvar = interval mo‘n˜ch hodnot): 0xxxxxxx = 0..7Fh 1xxxxxxx 0xxxxxxx = 0..3FFFh 1xxxxxxx 1xxxxxxx 0xxxxxxx = 0..1FFFFFh 1xxxxxxx 1xxxxxxx 1xxxxxxx 0xxxxxxx = 0..0FFFFFFFh ... Jak je vidˆt, jedn  se o relativnˆ jednoduch˜ model, ve kter‚m se m–‘e ‡lovˆk relativnˆ snadno orientovat. Je mo‘n‚ se tak‚ rozhodnout, kter˜ bajt bude ur‡ovat jedni‡ku (Big/Little Endian). Nicm‚nˆ jsou zde i jist‚ nev˜hody: - p©esko‡en¡ ‡¡sla vy‘aduje cel‚ jeho p©e‡ten¡ - p©i p©evodu se mus¡ prov dˆt mno‘stv¡ bitov˜ch posun– - d‚lku prostoru nutn‚ho pro alokaci lze zjistit pouze p©e‡ten¡m v¨ech bajt– Jeliko‘ se domn¡v m, ‘e se jedn  o dost nep©¡jemn‚ vlastnosti, p©ikl n¡m se osobnˆ ke druh‚ variantˆ, respektive k jej¡ roz¨¡©en‚ verzi. 2.1.2. Varianta HighestBitsAsByteCount ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ I tento model m  stejn˜ z kladn¡ jednobajtov˜ tvar, kde nejvy¨¨¡ bit je 0 a ostatn¡ bity ur‡uj¡ ‡¡slo. Pokud je nejvy¨¨¡ bit 1, roz¨i©uje se ‡¡slo o dal¨¡ bajt, p©i‡em‘ se po‡et bajt– roz¨i©uje rekurzivnˆ podle dal¨¡ch nejvy¨¨¡ch bit–. L‚pe to lze pochopit z p©¡kladu posloupnosti, kter  vypad  takto (bin rn¡ tvar = interval mo‘n˜ch hodnot): 0xxxxxxx = 0..7Fh 10xxxxxx xxxxxxxx = 0..3FFF 110xxxxx xxxxxxxx xxxxxxxx = 0..1FFFFF 1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx = 0..0FFFFFFFh ... Tato varianta je mnohem p©ijatelnˆj¨¡, a to jak vzhledem k operaci p©esko‡en¡ ‡¡sla, tak i vzhledem k zji¨tˆn¡ m¡sta pot©ebn‚ho k alokaci. Nav¡c nen¡ t©eba prov dˆt tolik aritmetick˜ch posun– k ur‡en¡ hodnoty ‡¡sla. Sta‡¡ z ‡¡sla odstranit v¨echny nejvy¨¨¡ bity a‘ do prvn¡ho nulov‚ho. Tento typ je nejv¡ce podobn˜ form tu UTF-8 pou‘¡van‚ho k ukl d n¡ znak– ve standardu Unicode. Je vhodn‚ um¡stit jedni‡ku na posledn¡ bajt (podobnˆ jako Big Endian), neboŸ t¡m odpad v  mno‘stv¡ aritmetick˜ch posun–. T¡m, ‘e se rezervuj¡ bity pro z znam d‚lky, vznik  ztr ta. Z intervalu, kter˜ by bylo mo‘n‚ na dan˜ po‡et bajt– ulo‘it tak lze um¡stit m‚nˆ informace. Tuto ztr tu lze vyj d©it nap©¡klad jako po‡et nevyu‘it˜ch bit– na bajt. U obou p©edchoz¡ch variant je tato ztr ta konstantn¡ a jej¡ hodnota je 1 bit na bajt. L‚pe si lze tuto ztr tu uk zat pomoc¡ pod¡lu interval– na bajt, tedy 1/(2^po‡et_nevyu‘it˜ch_bit–_na_bajt). Konkr‚tnˆ je to v tomto p©¡padˆ 1/2, co‘ znamen , ‘e m¡sto intervalu 0..0FFh je mo‘n‚ v jednom bajtu ulo‘it pouze polovinu, tedy 0..7Fh. Tuto ztr tu lze u velk˜ch ‡¡sel sn¡‘it pou‘it¡m n sleduj¡c¡ varianty. 2.1.3. Varianta ExtendedHighestBitsAsByteCount ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ T©et¡ a zat¡m posledn¡ navrhovanou variantou je jednoduch‚ roz¨¡©en¡ p©edchoz¡ varianty o takzvanou prefixovou formu bajtu. Plat¡ v¨echny pravidla p©edchoz¡ varianty, pouze nav¡c plat¡, ‘e pokud je hodnota prvn¡ho bajtu 0FFh, je p©ed vlastn¡ hodnotu vlo‘en dal¨¡ bajt, kter˜ je interpretov n jako £daj o d‚lce vlastn¡ hodnoty. Tato hodnota je opˆt typu ExtendedHighestBitsAsByteCount. Nejl‚pe je to opˆt vidˆt na p©¡kladˆ. 0xxxxxxx = 0..7Fh 10xxxxxx xxxxxxxx = 0..3FFFh 110xxxxx xxxxxxxx xxxxxxxx = 0..1FFFFFh 1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx = 0..0FFFFFFFh ... 11111110 xxxxxxxx .. xxxxxxxx = 0..0FFFFFFFFFFFFFFh \_____ 7 kr t _____/ 11111111 00000000 xxxxxxxx .. xxxxxxxx = 0..0FFFFFFFFFFFFFFFFh \_____ 8 kr t _____/ 11111111 00000001 xxxxxxxx .. xxxxxxxx = 0..0FFFFFFFFFFFFFFFFFFh \_____ 9 kr t _____/ ... - obecnˆ pro prefix 0FFh: 11111111 N xxxxxxxx .. xxxxxxxx = 0..2^( 8*(N + 8)) \____ n+8 kr t ____/ kde N je dal¨¡ ‡¡slo typu BNumber. Na prvn¡ pohled se jedn  o zna‡n‚ zeslo‘itˆn¡, jeho‘ p©¡nosem je pouze zmen¨en¡ ztr ty u ‡¡sel, kter‚ se nevejdou do intervalu 0..2^112 a u nˆkter˜ch ‡¡sel men¨¡ch se jedn  naopak o zvˆt¨en¡ ztr ty. Nicm‚nˆ vzhledem k rekurzi je pak mo‘n‚ mnohem jednodu¨eji ukl dat velmi velk  nebo p©esn  ‡¡sla (nap©¡klad p¡) a s mnohem men¨¡ datovou ztr tou. Pr–bˆh ztr t je (po‡et bajt– vyjad©uj¡c¡ch vlastn¡ ‡¡slo = mno‘stv¡ ztracen‚ informace): 1..7 = 0,500000 8 = 0,670123 9 = 0,635129 10 = 0,603149 .. 14 = 0,500000 15 = 0.478801 .. 127+8 = 0,077761 127+9 = 0,112795 127+10 = 0,112037 ... Ztr ta se tedy postupnˆ zmˆn¨uje (posloupnost konverguje k nule). Nejvy¨¨¡ ztr ta (limes superior) dosahuje hodnoty p©ibli‘nˆ 0,67 (na bajt), co‘ je celkem dost velk  ztr ta. Jin˜m zp–sobem, jak je tak‚ mo‘n‚ tuto ztr tu sn¡‘it je pou‘it¡ z kladn¡ d‚lky dvoubajtov‚ho slova. To by tak‚ mohlo v‚st ke zrychlen¡ a zefektivnˆn¡ pr ce s tˆmito ‡¡sly na procesorech s alespo¤ 16 bitovou datovou sbˆrnic¡ (co‘ je dneska ji‘ vpodstatˆ vˆt¨ina), nicm‚nˆ by to tak‚ vedlo k zeslo‘itˆn¡ cel‚ho probl‚mu, neboŸ by se musely mimo jin‚, hodnoty ukl dat na sud‚ pozice a prov dˆt dal¨¡ optimalizace. Bajt, jako‘to v sou‡asn‚ dobˆ z kladn¡ datov  jednotka, se zd  b˜t nejvhodnˆj¨¡m kandid tem. Nav¡c d¡ky frekventovan‚mu pou‘¡v n¡ ‡¡sel ze z kladn¡ho intervalu 0..7Fh m–‘e t¡mto zp–sobem doj¡t d¡ky pou‘¡v n¡ jednobajtov‚ z kladn¡ formy k drobn‚ £spo©e m¡sta. 2.2. Formy Form tu BNumber ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Kromˆ z kladn¡ho tvaru p©irozen‚ho ‡¡sla BNatural lze odvodit mno‘stv¡ dal¨¡ch forem. Jedn  se p©edev¨¡m o celo‡¡seln˜ typ se znam‚nkem a re ln˜ typ. Uveƒme si nˆkter‚ z podporovan˜ch tvar– (n zev - popis): BNatural - p©irozen‚ ‡¡slo v‡etnˆ nuly BInteger - cel‚ ‡¡slo BReal - re ln‚ ‡¡slo BNReal - nez porn‚ re ln‚ ‡¡slo BEReal - re ln‚ ‡¡slo s konstantami pro +- nekone‡no BMultiBit - pole logick˜ch hodnot V dal¨¡m textu budeme vych zet z varianty ExtendedHighestBitsAsByteCount s jedni‡kou vpravo. D le je nutn‚ uv ‘it dva dal¨¡ podtypy. Jedn  se o redundantn¡ a neredundantn¡ podtypy. 2.2.1. Redundantn¡ podtyp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Povolen‚ intervaly jednotliv˜ch bin rn¡ch tvar– r–zn˜ch d‚lek se prol¡naj¡. V t‚to prvn¡ formˆ budeme jednodu¨e tyto intervaly po‡¡tat bez dal¨¡ch £prav, tud¡‘ t¡mto vznik  jist  nejednozna‡nost a redundance. Nap©¡klad ‡¡slo 1 m–‘eme vytvo©it v tˆchto nekone‡nˆ mnoha tvarech r–zn˜ch d‚lek: 00000001 = 1 10000000 00000001 = 1 11000000 00000000 00000001 = 1 ... Tato redundance m  z©ejmˆ nˆkter‚ v˜hody, p©edev¨¡m se s takto zjednodu¨en˜mi ‡¡sly pracuje mnohem jednodu¨eji, a tak‚ lze pomoc¡ t‚to redundance v souboru dop©edu rezervovat prostor, pro vˆt¨¡ interval hodnot, d¡ky ‡emu‘ m–‘e doj¡t o omezen¡ p©¡stupu k souboru. Nap©¡klad p©i z pisu ‡¡sla 200 m¡sto jin‚ho vˆt¨¡ho (nebo i men¨¡ho ‡¡sla, pokud m  alokovan‚ alespo¤ dva bajty) nemus¡ nutnˆ doj¡t ke zmˆnˆ velikosti cel‚ho souboru. Na druhou stranu m–‘e tato redundance zvˆt¨it velikost souboru bez zv˜¨en¡ celkov‚ informa‡n¡ hodnoty. Jednotliv‚ typy jsou interpretov n˜ takto (typ - popis): BNatural - Nese prostˆ cel‚ ‡¡slo na ur‡en‚m po‡tu bit– BInteger - Jednodu¨e je prvn¡ pou‘iteln˜ bit znam‚nko. 0 - kladn‚, 1 - z porn‚ a z d–vodu redundace je v podstatˆ jedno, zda jsou z porn  ‡¡sla v norm ln¡m, inverzn¡m, nebo dvojkov‚m dopl¤kov‚m k¢du BReal - Re ln‚ ‡¡slo reprezentuj¡ dvˆ ‡¡sla typu BInteger. Prvn¡ ‡¡slo je b ze a druh‚ je mantisa, kter  ud v  index dvojkov‚ho posunu BNReal - Stejnˆ jako BREAL, akor t je prvn¡ ‡¡slo typu BNatural BEReal - Re ln‚ ‡¡slo s vyzna‡en˜mi konstantami pro +- nekone‡no: 00111111 00000000 = +nekone‡no 01000000 00000000 = -nekone‡no jeliko‘ hodnoty odpov¡daj¡c¡ tˆmto konfigurac¡m lze uv‚st i v jin‚ formˆ, lze tyto konstanty takto stanovit zcela bez probl‚mu BMultiBit - pole bit– indexovan˜ch zprava od 0 Mezi dal¨¡ nev˜hody t‚to interpretace pat©¡ nejednozna‡nost z pisu uveden˜ch typ–. Mnohem vhodnˆj¨¡ bude z©ejmˆ pou‘¡v n¡ n sleduj¡c¡ho podtypu. 2.2.2. Neredundantn¡ podtyp ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tento podtyp vznikl odstranˆn¡m redundance z redundantn¡ho podtypu. Hodnoty jednotliv˜ch typ– maj¡ jednozna‡n‚ vyj d©en¡, pokud se v¨ak hodnota dostane mimo vyhrazen˜ interval mus¡ doj¡t k p©epracov n¡ cel‚ho souboru, co‘ m–‘e v‚st ke zna‡n‚ re‘ii. Dal¨¡ nev˜hodou je pak slo‘itˆj¨¡ p©evod ‡¡sel. Jednotliv‚ typy lze interpretovat takto (typ - popis): BNatural - Z nejjednodu¨¨¡ho typu BNatural se hodnota z¡sk v  pomoc¡ algoritmu: Hodnota := X Pro ka‘d‚ I z intervalu <1..Count> Hodnota:=Hodnota + (2^(I*7)) kde X je vlastn¡ hodnota a Count je po‡et bajt–, kter‚ tuto hodnotu vyjad©uje. Uveƒme si nˆkter‚ p©echody: 00000000 = 0 00000001 = 1 ... 01111111 = 7Fh 10000000 00000000 = 80h 10000000 00000001 = 81h ... 10111111 11111111 = 407Fh 11000000 00000000 00000000 = 4080h ... Obdobnˆ jsou o¨et©eny p©echody i vzhledem k prefixu prvn¡ho bajtu 0FFh (viz. 2.1.3 Varianta ExtendedHighestBitsAsByteCount) BInteger - Zahrnut¡ znam‚nka je ji‘ ponˆkud slo‘itˆj¨¡ operace. Je toti‘ nutn‚ po‡¡tat jinak kladn  a jinak z porn  ‡¡sla. S ohledem na odstranˆn¡ redundance mus¡ b˜t ‡¡sla ukl d na ve dvojkov‚m dopl¤kov‚m tvaru. V˜po‡et pro z¡sk n¡ vlastn¡ hodnoty je pak tento: Je-li (Znam‚nko = "-") potom ( Hodnota := ( - Neg(X) ) - 1 Pro ka‘d‚ I cel‚ z intervalu <1..Count> Hodnota:=Hodnota - (2^(I*6)) ) jinak ( Hodnota := X Pro ka‘d‚ I cel‚ z intervalu <1..Count> Hodnota:=Hodnota + (2^(I*6)) ) kde X je vlastn¡ hodnota bez znam‚nka a Count je po‡et bajt–, kter‚ tuto hodnotu vyjad©uje. Operace Neg je inverze platn˜ch bit– v X. Uveƒme si nˆkter‚ p©echody: ... 11011111 11111111 11111111 = -2041h 10100000 00000000 = -2040h ... 10111111 11111110 = -42h 10111111 11111111 = -41h 01000000 = -40h ... 01111110 = -2 01111111 = -1 00000000 = 0 00000001 = 1 ... 00111111 = 3Fh 10000000 00000000 = 40h 10000000 00000001 = 41h ... 10011111 11111111 = 203Fh 11000000 00000000 00000000 = 2040h ... BReal - Nejbˆ‘nˆj¨¡ zp–sob reprezentace re ln˜ch ‡¡sel je pomoc¡ dvou cel˜ch ‡¡sel, p©i‡em‘ jedno z nich ur‡uje b zi a druh‚ mantisu. Nap©¡klad procesor– s architekturou Intel jsou re ln  ‡¡sla realizov na pomoc¡ standardu IEEE 764, kter˜ pou‘¡v  k odstranˆn¡ redundance metodu "neviditeln‚" jedni‡ky. Tuto metodu lze s v˜hodou pou‘¡t i v tomto p©¡padˆ. Je mo‘n‚ volit mezi um¡stˆn¡m jedni‡ky p©ed nejvy¨¨¡, nebo za nejni‘¨¡ bit. Mimo jin‚ je zde tak‚ mo‘nost nˆkolika interpretac¡ mantisy. Obˆ ‡¡sla lze ch pat ve smyslu p©edchoz¡ho typu BInteger. Popi¨me tedy nejprve techniku um¡stˆn¡ "neviditeln‚" jedni‡ky p©ed nejvy¨¨¡ bit b ze. P©i interpretaci ‡¡sla je pak nutn‚ po p©¡padn‚ negaci z porn‚ho ‡¡sla p©idat p©ed platn‚ bity jeden bit hodnoty 1. U‘ v t‚to f zi je vidˆt jist‚ obt¡‘e s p©eskakov n¡m znam‚nka. Dal¨¡m probl‚mem je pak hned interpretace posunu "polovinn‚" (dvojkov‚) te‡ky. Uka‘me si t©i ze zp–sob– interprece: - interpretace te‡ky k nejspodnˆj¨¡mu bitu 00000000 00000000 = 64 [(1)000000.] - interpretace te‡ky k nejvy¨¨¡mu bity 00000000 00000000 = 1 [(1).000000] - interpretace te‡ky p©ed "neviditelnou" jedni‡ku 00000000 00000000 = 0.5 [.(1)000000] Jak je vidˆt, v˜hodnˆj¨¡ je um¡stit te‡ku k nejvy¨¨¡mu bitu, s ‡¡m‘ ale souvis¡ probl‚my s p©epo‡tem mantisy v z vislosti na d‚lce vlastn¡ hodnoty b ze, kter˜m bychom se v¨ak nevyhnuli ani pou‘it¡m um¡stˆn¡m te‡ky na konec slova, kdy by zase bylo nutn‚ nˆjak˜m zp–sobem posouvat mantisu. T©et¡ zp–sob je vpodstatˆ zcela nevhodn˜. Vhodnˆj¨¡ asi bude pou‘¡vat m‚nˆ neobvyklou techniku p©id n¡ jedni‡ky na konec ‡¡sla. Opˆt si uvedeme zp–soby interpretace te‡ky: - interpretace te‡ky k nejvy¨¨¡mu bity 00000000 00000000 = 0.015625 [.000000(1)] - interpretace te‡ky k nespodnˆj¨¡mu bitu 00000000 00000000 = 0.5 [000000.(1)] - interpretace te‡ky za "neviditelnou" jedni‡ku 00000000 00000000 = 1 [000000(1).] Tento na prvn¡ pohled kostrbat˜ zp–sob um¡stˆn¡ jedni‡ky m  nˆkolik v˜hod a nev˜hod. Z©ejmˆ nejvhodnˆj¨¡ zp–sob je t©et¡ z uveden˜ch. Je nutn‚ stanovit speci ln¡ konstantu pro nulu. Nab¡z¡ se vyu‘¡t konstantu odpov¡daj¡c¡ nule ve form tu BInteger i BNatural. Takov to volba vede k tomuto algoritmu: Je-li (X=0 a z rove¤ Y=0) potom Hodnota:=0 jinak ( Hodnota:=(X*2+1)*(2^Y) Je-li (X>0 a z rove¤ Y=0) potom Hodnota:=Hodnota - 2 ) Opˆt si uveƒme nˆkter‚ konstanty a p©echody. Pokud je za hodnotou uvedena druh  hodnota v z vorce, pak tato hodnota odpov¡d  rozd¡lu oproti interpretaci bez hodnoty 0. - ‡¡sla s mantisou nula: ... 10111111 11111111 00000000 = -81h 01000000 00000000 = -7Fh 01000001 00000000 = -7Dh ... 01111110 00000000 = -3 01111111 00000000 = -1 00000000 00000000 = 0 (1) 00000001 00000000 = 1 (3) 00000010 00000000 = 3 (5) ... 00111111 00000000 = 7Dh (7Fh) 10000000 00000000 00000000 = 7Fh (81h) ... - dal¨¡ ‡¡sla s r–zn˜mi mantisami: 01111111 00000001 = -2 00000000 00000001 = 2 00000001 00000001 = 6 00000010 00000001 = 10 00000000 00000010 = 4 00000000 00000011 = 8 00000000 01111111 = 0.5 00000001 01111111 = 1.5 Z©ejmˆ p©evod ‡¡sla z nativn¡ho tvaru do BReal je ponˆkud obt¡‘nˆj¨¡. Je toti‘ nutn‚ dˆlit ‡¡slo dvˆmi, dokud nebude zbytek 1, nebo n sobit, dokud nebude necel  ‡ st ‡¡sla rovna 1/2. Takto vznikl‚ cel‚ ‡¡slo se pak ulo‘¡ do b ze a po‡et dˆlen¡, nebo - po‡et n soben¡ se pot‚ ulo‘¡ do mantisy. Tento postup bude vhodn‚ v budoucnu co nejv¡ce optimalizovat. K v˜hod m zvolen‚ formy pat©¡ i to, ‘e parita mantisy ur‡uje, zda se jedn  o cel‚ ‡¡slo, nebo ‡¡slo, kter‚ m  i necelou ‡ st. BNReal - Realizuje se stejnˆ jako BREAL, pouze prvn¡ ‡¡slo je typu BBYTE BEReal - Re ln‚ ‡¡slo s vyzna‡en˜mi konstantami pro +- nekone‡no: 00111111 00000000 = +nekone‡no 01000000 00000000 = -nekone‡no Z©ejmˆ lze pou‘¡t stejn‚ konstanty vybran‚ pro redundantn¡ verzi. Tentokr t v¨ak to ji‘ nen¡ proto, ‘e by odpov¡daj¡c¡ hodnoty bylo mo‘no vyj d©it jinak. Je nutn‚ upravit p©evod ‡¡sla a to takto: Je-li (X=0 a z rove¤ Y=0) potom Hodnota:=0 jinak Je-li (X=3Fh a z rove¤ Y=0) potom Hodnota:=+nekone‡no jinak Je-li (X=-40h a z rove¤ Y=0) potom Hodnota:=-nekone‡no jinak ( Hodnota:=(X*2+1)*(2^Y) Je-li (X>0 a z rove¤ Y=0) potom Hodnota:=Hodnota - 2 jinak Je-li (X>3Fh a z rove¤ Y=0) potom Hodnota:=Hodnota - 2 jinak Je-li (X<-40h a z rove¤ Y=0) potom Hodnota:=Hodnota + 2 ) T¡mto relativnˆ jednoduch˜m postupem se uvoln¡ dan‚ konstanty posunut¡ v˜znamu ostatn¡ch. BMultibit - pole bit– indexovan˜ch zprava od 0. Stejn‚ jako u redundantn¡ formy V dal¨¡m textu budeme v‘dy pou‘¡vat tyto typy pr vˆ v tomto uveden‚m podtypu. 3. Struktura form tu ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Ka‘d˜ soubor za‡¡n  t©emi konstantn¡mi znaky 'XB1'. Za tˆmito znaky n sleduj¡ jednotliv‚ bloky. Prvn¡ blok se nemus¡ vyskytovat, pak se soubor naz˜v  pr zdn˜. Pokud se v souboru prvn¡ blok vyskytuje, ur‡uje jeho typ typ cel‚ho dokumentu. Ka‘d˜ blok se skl d  ze t©¡ ‡ st¡. Prvn¡ ‡ st se naz˜v  hlavi‡ka a obsahuje t©i hodnoty: BNatural - BlockType BNatural - DataSize BNatural - SubBlocksSize Hodnota BlockType specifikuje typ bloku podle datab ze platn˜ch kl¡‡– (viz. Typ Bloku), DataSize ur‡uje d‚lku druh‚ tzv. datov‚ ‡ sti v bajtech. SubBlockSize ur‡uje d‚lku ‡ sti obsahuj¡c¡ pod©¡zen‚ objekty. Pokud existuje rozpor mezi SubBlockSize a vlastn¡mi d‚lkami blok–, je cel˜ soubor neplatn˜. Za v¨emi bloky se nach z¡ tzv. AdvancedData, kter  nem  omezenou d‚lku. 3.1. Typ bloku ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Typ bloku je p©irozen‚ ‡¡slo, kter‚ uv d¡ typ bloku (dle specifikace form tu). Prvn¡ch 407Fh kombinac¡ je vyhra‘eno pro vnit©n¡ pot©ebu form tu, zb˜vaj¡c¡ indexy jsou k dispozici pro voln‚ pou‘it¡. Typ bloku ur‡uje strukturu datov‚ ‡ sti. Ta se skl d  z jednotliv˜ch polo‘kek, kter‚ jsou obecnˆ typu BNatural. Jedinou vyj¡mkou je blok typu Obecn˜ datov˜ blok (viz. n¡‘e). U v¨ech ostatn¡ch blok– plat¡, ‘e m  tyto prvn¡ dvˆ hodnoty: BNatural - Major Version BNatural - Minor Version Tyto konstanty ur‡uj¡ £pln˜ v˜znam druh‚ ‡ sti bloku, zat¡mco BlockType ur‡uje pouze z kladn¡ v˜znam. Nav¡c se podle tˆchto konstant interpretuj¡ v¨echny dal¨¡ hodnoty v datov‚m bloku, povolen‚ maxima, stejnˆ jako povolen‚ typy blok– v bloku pod©¡zen˜ch blok–. D–vodem k uv dˆn¡ dvou ‡¡sel verz¡ je snaha o implementace zpˆtn‚ kompatibility. Program–m pou‘¡vaj¡c¡m form t XB ukl d  specifikace jist  striktn¡ pravidla. Pokud se ‡ten˜ soubor li¨¡ od podporovan‚ verze pouze v hodnotˆ Minor Version, m–‘e aplikace soubor otev©¡t, a to p©esko‡en¡m nepodporovan˜ch hodnot a blok–. Pokud p©i tomto procesu naraz¡ na p©ekro‡en¡ meze, je vstupn¡ soubor neplatn˜. Pokud se soubor li¨¡ v hodnotˆ Major Version nesm¡ program soubor interpretovat. Mus¡ b˜t pou‘ita nov  verze programu, nebo sta‘eny n stroje pro konverzi. 3.2. Specifikace verz¡ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Jednotliv‚ verze blok– se nemus¡ nutnˆ li¨it v po‡tu a tvaru promˆnn˜ch. Z d–vodu lep¨¡ hardwarov‚ podpory umo‘¤uje form t specifikovat takzvanou omezenou normu, kter  omezuje po‡ty blok– a hodnoty tak, aby dan‚ soubory mohly b˜t pou‘¡v ny za©¡zen¡mi s konstantn¡ kapacitou pamˆti. 4. Z kladn¡ typy blok– ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Bloky tohoto typu jsou by mˆli b˜t pou‘¡v ny jako z kladn¡ bloky pro ukl d n¡ dat ve v¨ech dal¨¡ch bloc¡ch. 4.1. Obecn˜ datov˜ blok ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Obecn˜ datov˜ blok je z kladn¡ typ bloku, kter˜ umo‘¤uje ukl d n¡ posloupnosti dat. Velikost ‡ sti pod©¡zen˜ch blok– je striktnˆ 0 a velikost datov‚ ‡ sti m–‘e b˜t libovoln‚ p©irozen‚ ‡¡slo v‡etnˆ 0. Pokud je velikost datov‚ ‡ sti 0, hovo©¡me o takzvan‚m pr zdn‚m bloku. Pokud je nenulov , jsou jednotliv‚ bajty interpretov ny pole bajtov˜ch prvk–. Obecn˜ datov˜ blok je tedy p©edpis p©i©azuj¡c¡ cel‚mu ‡¡slu z intervalu <0..DataSize-1> ‡¡slo z intervalu <0..255> a je rozumn‚ hovo©it o nˆm jako o poli, nebo tak‚ jako o jedno© dkov‚ matici, p©¡padnˆ jako o funk‡n¡m symbolu arity 1. Konstanta BlockType m  hodnotu 0. Plat¡ tedy, ‘e tento blok je p©edpis: <0..DataSize-1> -> <0..255> V dobˆ vyd n¡ t‚to specifikace je tento blok jedin˜, kter˜ m  pevnˆ stanovenou konstantu BlockType. U v¨ech dal¨¡ch blok– je vyhrazena mo‘nost zmˆnit index p©ed prvn¡ ve©ejnou verz¡. 4.2. Odkaz ÄÄÄÄÄÄÄÄÄÄÄÙ Jednotliv‚ bloky jsou ‡¡slov ny dle po©ad¡, ve kter‚m jsou uvedeny. Tento typ pak umo‘¤uje odkazovat se na nˆkter˜ z tˆchto blok– ve stejn‚m nebo jin‚m souboru aŸ ji‘ v m¡stn¡ slo‘ce, nebo kdekoli jinde v s¡t¡, nebo internetu. Jedn  se tedy o blok, kter˜ p©i pou‘it¡ vrac¡ odkazovan˜ blok. V z kladn¡ verzi je zp–sob z¡sk n¡ tohoto bloku plnˆ p©enech n opera‡n¡mu syst‚mu. A tedy to, zda bude blok st hnut z internetu, nebo bude pou‘ita jeho verze ulo‘en  v m¡stn¡ vyrovn vac¡ pamˆti by nemˆlo b˜t postatn‚. - Verze 0: File Inner Path Adresace polo‘ky v r mci souboru. Hodnoty jsou n sleduj¡c¡: BNatural - UpCount BNatural - FileIndex0 BNatural - FileIndex1 BNatural - FileIndex2 ... Tyto hodnoty jednozna‡n˜m zp–sobem ur‡uj¡ cestu k bloku. Hodnota UpCount = 0 odpov¡d  odkazu na nad©azen˜ blok. Pokud hodnota UpCount p©es hne hloubku ko©enov‚ hloubky souboru, nebo pokud kter koli z hodnot FileIndex p©es hne po‡et blok– na dan‚ £rovni, je cel˜ odkaz pova‘ov n za neplatn˜. Nutno je¨tˆ zm¡nit p©¡pad, kdy odkaz odkazuje na jin˜ odkaz, co‘ nen¡ obecnˆ zak z no. V takov‚m p©¡padˆ je nutn‚ ovˆ©ovat posloupnost odkaz– na zacyklen¡. - Verze 1: Basic FileSystem Path Jedn  se o adresaci polo‘ky, nebo souboru v r mci souborov‚ho syst‚mu. Omezen¡ je kladeno pouze na z kaz p©es hnut¡ takzvan‚ ko©enov‚ slo‘ky. Tato slo‘ka je odli¨n  v opera‡n¡ch syst‚mech Windows a Unix. Zat¡mco u opera‡n¡ch syst‚m– Windows se jedn  o ko©en jednotky "X:\", v syst‚mech Unix se jedn  o ko©enovou slo‘ku "/". Cesta je opˆt relativn¡: BNatural - UpCount BNatural - TextPathIndex BNatural - FileIndex0 BNatural - FileIndex1 BNatural - FileIndex2 ... Hodnota UpCount je tentokr t omezena na z kaz p©es hnut¡ hloubky ko©enov‚ slo‘ky, p©i‡em‘ mezi slo‘kami opera‡n¡ho syst‚mu a ‡ st¡ z visl˜ch blok– je plynul˜ p©echod ve formˆ tzv. ko©enov‚ho bloku, jeho‘ nad©azenou slo‘kou je slo‘ka opera‡n¡ho syst‚mu. Kromˆ toho existuj¡ dal¨¡ neplatn‚ formy z pisu. Jsou to p©edev¨¡m kolizn¡ situace, kdy je pou‘it FileIndex a TextPathIndex neukazuje na soubor kompatibiln¡ s form tem XB. Dal¨¡ podm¡nkou je, ‘e pokud Hodnota UpCount "nedos hne" mimo vlastn¡ soubor, mus¡ b˜t blok odpov¡daj¡c¡ TextPathIndex pr zdn˜. T¡m se dost v me k v˜znamu hodnoty TextPathIndex, kter  ur‡uje index bloku v ‡ sti pod©¡zen˜ch blok–, kter˜ je typu (nebo vrac¡ typ) posloupnosti textov˜ch ©etˆzc–. Plat¡ tak‚, ‘e tento odkaz m–‘e ukazovat na soubor, nebo slo‘ku v souborov‚m syst‚mu. Kromˆ toho je z©ejm‚, ‘e verze 0 je podmno‘inou verze 1. - Verze 2: Protokol Path Dal¨¡ z podverz¡ je odkaz na soubor nebo blok adresovan˜m ur‡it˜m protokolem. Jedn  se opˆt o roz¨¡©en¡ p©edchoz¡ verze, tentokr t s pou‘it¡m bloku Protokol. Seznam promˆnn˜ch v¨e osvˆtl¡: BNatural - FileProtocolIndex BNatural - UpCount BNatural - TextPathIndex BNatural - FileIndex0 BNatural - FileIndex1 BNatural - FileIndex2 ... Zpˆtnou "kompatibilitu" s verz¡ 1 nyn¡ zaji¨Ÿuje tzv. pr zdn˜ protokol, neboli protokol "internal" (viz. Komunika‡n¡ protokol). Novˆ je tedy mo‘nost realizovat ko©en cesty pomoc¡ takzvan‚ho protokolu, co‘ je zp–sob, jak umo‘nit p©¡stup k libovoln‚mu souboru pou‘it¡m st vac¡ch technologi¡, jako jsou nap©¡klad protokoly http, ftp, smb a dal¨¡. - Verze 3: Link Elongation Dal¨¡ z verz¡ je u‘ pouze kosmetickou £pravou. Jedn  se o takzvan‚ nav z n¡ na vnit©n¡ link: BNatural - LinkIndex BNatural - UpCount BNatural - TextPathIndex BNatural - FileIndex0 BNatural - FileIndex1 BNatural - FileIndex2 ... 4.3. Textov˜ ©etˆzec ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ P©i ukl d n¡ textu je nutn‚ vz¡t do £vahy podporu libovoln‚ho jazyka, k¢dov n¡ a dal¨¡ch vlastnost¡ textu. Text je toti‘ jist  forma komprese. 4.3.1. Jazyk ÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tento blok slou‘¡ pro ur‡en¡ jazyka, ve kter‚m je ulo‘en text, p©¡padnˆ obr zek, nebo jin  jazykov  data. Pro z kladn¡ verzi byla pou‘ita dostupn  definice ‡¡sel pro jednotliv‚ svˆtov‚ jazyky. Dal¨¡ verze bloku jsou rezervov ny pro budouc¡ pou‘it¡ (nap©¡klad mimozemsk‚ jazyky). - Verze 0: RFC LanguageNumber Tento blok vyu‘¡v  pro specifikaci jazyka normalizovan˜ch ‡¡sel uveden˜ch na internetu, nap©¡klad na str nk ch IANA. BNatural - Major Language Number BNatural - Minor Language Number Pozn. Pro verzi 0.1 p©ipad  v £vahu p©id n¡ indexu pro m¡stn¡ pozici ve vesm¡ru / jazykovou skupinu. - Verze 1: RFC LanguageString Tato verze vyu‘¡v  specifikace n zv– jazyk–. BNatural - StringIndex 4.3.2. K¢dov n¡ znak– ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Ur‡en¡ k¢dovan¡ textu pomoc¡ interpretativn¡ tabulky v˜znamu do univerz ln¡ho jazyka (dosud neexistuje?). - Verze 0: IANA CharacterSet Number Vyu‘it¡ index– znakov˜ch sad z internetu. BNatural - Major CharacterSet Number BNatural - Minor CharacterSet Number - Verze 1: IANA CharacterSet String Tato verze vyu‘¡v  specifikace k¢dov n¡ podle jednozna‡n‚ identifikace znakov˜m ©etˆzcem. BNatural - StringIndex 5. Z kladn¡ promˆnn‚ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tato sada blok– slou‘¡ pro ukl d n¡ nˆkter˜ch matematick˜ch hodnot. 5.1. €¡slo ÄÄÄÄÄÄÄÄÄÄÄÙ Tento blok se pou‘¡v  pro ukl d n¡ z kladn¡ch ‡¡sel p©edev¨¡m ve spojitosti s konfiguracemi a matematick˜mi modely. - Verze 0: Basic Number Pou‘¡v  prvn¡ promˆnnou pro ur‡en¡ typu hodnoty a d le n sleduje ur‡it˜ po‡et dal¨¡ch promˆnn˜ch obsahuj¡c¡ch vlastn¡ hodnotu. BNatural - NumberType ? - Value Promˆnn  NumberType m–‘e v budoucnu ur‡ovat nˆkterou z hodnot: BNatural, BInteger, BReal, BNReal, BNNatural, BNInteger, BMultiBit, BComplex, BCustom 5.2. €asov˜ £daj ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Pro ukl d n¡ ‡asov‚ho £daje je mo‘n‚ vyu‘¡t nˆkolik forem ukl d n¡ data a ‡asu, jako jsou nap©¡klad GMT, nebo Timestamp. - Verze 0: Basic Time Promˆnn  TimeType by mˆla ur‡ovat nap©¡klad nˆkter˜ z typ–: Timestamp, GMT, DOSTime BNatural - TimeType BNatural - TimeValue 5.2. Poloha ÄÄÄÄÄÄÄÄÄÄÄÄÙ Tento blok umo‘¤uje ur‡it polohu v prostoru. Vyu‘¡v  k tomu index planet (asi neexistuje) a adresu skl daj¡c¡ se z index– oblast¡, p©¡padnˆ planet rn¡ sou©adnici. 6. Bitmapov˜ obr zek ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Jako jedno z prvn¡ch pou‘it¡ form tu bylo vybr no ukl d n¡ bitmapov˜ch dat, neboŸ se jedn  hojnˆ ukl dan  data, jejich‘ vyj d©en¡ v textov‚ formˆ nen¡ p©¡li¨ vhodn‚. 6.1. Blok bitmapov‚ho obr zku ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tento blok ur‡uje, ‘e data ukl dan  v podbloc¡ch reprezentuj¡ obr zek a uv d¡ povolen‚ typy podblok–. Povolen‚ bloky jsou zat¡m: vytvo©en¡, £prava, p©¡stup, rovina. Uveƒme alespo¤ specifikaci bloku rovina. 6.2. Rovina odrazu a pohlcen¡ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 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. - Verze 0: Standard AbsorbingPlane Tato z kladn¡ forma pou‘¡v  pouze nˆkolik z kladn¡ch vlastnost¡: BNatural - RatioIndex BNatural - FrequencyMapIndex 6.2.1 Bodov˜ pomˆr ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Bodov˜ pomˆr ur‡uje pomˆr jedn‚ vzd lenostn¡ jednotky v rovinˆ vzhledem ke skute‡n‚ velikosti aŸ u‘ 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‘ jsou to centimetry, palce nebo jejich r–zn  odvozen¡. 6.2.2 Frekven‡n¡ mapa ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Tento blok ur‡uje zp–sob interpretace jedn‚ jednotky a v˜¨ku z kladn¡ frekvence pomoc¡ fyzik ln¡ch jednotek, p©edev¨¡m pomoc¡ z kladn¡ch. Pozn mky pro dal¨¡ v˜voj: Dal¨¡m omezen¡m maxim ln¡ velikosti ‡¡sel m–‘e b˜t specifika‡n¡ omezen¡. (viz. Specifikace verz¡) Verze blok– - specifikace Rezervace index– Digit ln¡ efekty Detekce souboru Kompatibilita Vzta‘n‚ jednotky Mo‘n‚ hodnoty BlockType 0 - obecn˜ datov˜ typ 1 - z stupce cesty k objektu 2 - mno‘ina objekt– 3 - Dal¨¡ bloky : CRC blok Crypt blok Compressed blok Bitmapov˜ obr zek Vektorov˜ obr zek Bitmapov˜ prostor Vektorov˜ prostor Animace (€as. konst. + obr.) Video (€as. konst. + obr. + zvuk) Font (obr zek + index. tab.) Textov˜ soubor Zvukov  stopa €asov  konstanta D‚lkov  konstanta Indexov  tabulka Datab zov  polo‘ka Poloha bodu Energetick˜ paprsek (... r dio ... svˆtlo ... gama ...) Spustiteln˜ program Apendixy: IANA Character Sets Language Numbers