# LANGUAGE Czech # ENCODING MSDOS-CP852 # 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