EBML
EBML (англ. Extensible Binary Meta Language, расширяемый бинарный метаязык) — двоичный формат файлов, при создании которого стояла задача создать аналог XML для двоичных данных. Изначально был создан для мультимедиа контейнера Matroska.
Общая структура
Типы данных
- Signed Integer - знаковое целое, порядок байт big-endian, произвольного размера от 1 до 8 байт.
- Unsigned Integer - беззнаковое целое, порядок байт big-endian, произвольного размера от 1 до 8 байт.
- Float - число с плавающей запятой, порядок байт big-endian, размер 4 или 8 байт.
- String - текстовая строка в формате ASCII (символы ASCII, с кодами от 32 до 127). Наличие завершающего нуля опционально и зависит от требований парсера.
- UTF-8 - строка Unicode в формате UTF-8. Наличие завершающего нуля опционально и зависит от требований парсера.
- Date - время в наносекундах, знаковое целое, 64 бита. 0 означает начало второго тысячелетия 01.01.2001 00:00:00,000000000 UTC
- master-element - контейнер для других EBML элементов (более низкого уровня)
- Binary - данные, не интерпретируемые парсером
Числа плавающего размера
Одной из особенностей формата являются числа плавающего размера. Кодирование числа осуществляется подобно кодированию символов в кодировке UTF-8, размер числа определяется количеством нулевых бит (точнее, положением первого ненулевого бита). Максимальное число вычисляется как 2количество битов-2.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | битов | кодируемый диапазон |
---|---|---|---|---|---|---|---|---|---|
1××××××× | 7 | [0;126] | |||||||
01×××××× | ×××××××× | 14 | [0;16382] | ||||||
001××××× | ×××××××× | ×××××××× | 21 | [0;2097150] | |||||
0001×××× | ×××××××× | ×××××××× | ×××××××× | 28 | [0;268435454] | ||||
00001××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | 35 | [0;34359738366] | |||
000001×× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | 42 | [0;4398046511102] | ||
0000001× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | 49 | [0;562949953421310] | |
00000001 | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | ×××××××× | 56 | [0;72057594037927934] |
См. также
Ссылки
- Официальный сайт: ebml.sourceforge.net
- RFC-подобное описание формата [1]
de:EBML en:Extensible Binary Meta Language es:EBML fr:Extensible Binary Meta Language it:EBML
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....