Общий двоичный формат между iOS и Python

1

Есть ли общий двоичный формат между iOS и Python? Я нашел бинарные списки свойств.

У меня есть список UIBeziarPath в массиве, который я хочу отправить на Python. Я просто ищу что-то, что очень эффективно сможет это сделать. Я просмотрел текстовые форматы, такие как JSON, за исключением того, что для этой цели они кажутся менее эффективными, чем двоичный формат.

  • 0
    JSON может быть менее эффективным, в зависимости от содержимого ваших данных. Если контрольными точками Безье являются все длинные десятичные числа - [[3.52134223,-1.138012382],[0.847120941,0.001883412]] - тогда победит двоичный формат, но если они целые числа - [[234,28],[-202,0]] - тогда вы можете обнаружить, что JSON более компактен, чем двоичные форматы, которые обычно используют восемь байтов плюс накладные расходы для хранения реалов. Если пропускная способность является серьезной проблемой, вам, вероятно, придётся свернуть собственное сжатие, которое использует шаблоны данных, присутствующих в ваших кривых (например, дельта-сжатие соседних контрольных точек).
  • 0
    На самом деле, если вы используете BERT (еще один двоичный формат, о котором я забыл упомянуть ранее), на самом деле вещественные значения кодируются с использованием их десятичного представления ASCII, поэтому преимущество в размере кодирования отсутствует вообще.
Показать ещё 2 комментария
Теги:
binary

2 ответа

1
Лучший ответ

Нет форматов, специально предназначенных для iOS/Python. Существуют многочисленные форматы обмена данными, которые вы могли бы использовать, включая буферы протоколов, BSON, ASN.1 (если вы так наклонены) и даже целый ряд бинарных форматов сериализации XML.

OTOH, я бы сильно поддержал JSON (текстовый формат), если полоса пропускания исключительно жесткая.

EDIT: Я ужасно отказался не упоминать еще одного сильного претендента на двоичную передачу: BERT. Я бы поддержал BERT над любым другим двоичным форматом, но обратите внимание на мои комментарии к исходному вопросу о размере кодирования.

1

Python имеет struct стандартный модуль, который позволяет легко манипулировать простыми двоичными форматами с преобразованием в типы python (struct.unpack) или в обратном направлении (struct.pack).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню