EBML (англ. Extensible Binary Meta Language — расширяемый бинарный метаязык) — двоичный формат файлов, при создании которого стояла задача создать аналог XML для двоичных данных. Изначально был создан для мультимедиа-контейнера Matroska, используется в WebM.

Важной особенностью формата является наличие «значений по умолчанию» для многих элементов, это позволяет создавать файл без детального описания всех (повторяющихся из файла в файл) параметров.

Типы данных

[править | править код]

Числа переменного размера

[править | править код]

Одной из особенностей формата являются числа переменного размера. Кодирование числа осуществляется подобно кодированию символов в кодировке 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]

См. также

[править | править код]

Ссылки

[править | править код]