EBML

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

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.

12345678битовкодируемый диапазон
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]

См. также

Ссылки

en:Extensible Binary Meta Language es:EBML fr:Extensible Binary Meta Language it:EBML

Источник — «http://www.sbup.com/wiki/EBML»
Личные инструменты

Served in 0.050 secs.