Введение

Протокол передачи изображений с цифровых камер на компьютеры

Протокол передачи изображений (PTP) – это протокол, изначально разработанный Ассоциацией производителей фотографий и изображений (PIMA), позднее известной как Международная ассоциация индустрии изображений, для обеспечения передачи изображений с цифровых камер на компьютеры и другие периферийные устройства без необходимости использования дополнительных драйверов устройств. Протокол был стандартизирован ISO в 2005 году. Текущая версия стандарта – ISO 15740:2013. Он также стандартизирован для USB Форумом разработчиков USB как класс устройств захвата изображений. USB является основным сетевым транспортным средством для устройств PTP. USB PTP является распространенной альтернативой классу устройств USB массового хранения (USB MSC) в качестве протокола подключения цифровой камеры. Некоторые камеры поддерживают оба режима.

Описание

PTP определяет способ создания, передачи и обработки объектов, представляющих собой, как правило, изображения, такие как JPEG-файлы. Хотя объекты, с которыми работает PTP, часто воспринимаются как файлы, на самом деле это абстрактные сущности, идентифицируемые исключительно 32-битным идентификатором объекта. Тем не менее, эти объекты могут иметь родительские и дочерние элементы, что позволяет создать представление содержимого устройства, подобное файловой системе.

История

До стандартизации PTP производители цифровых камер использовали различные проприетарные протоколы для управления цифровыми камерами и передачи изображений на компьютеры и другие хост-устройства. В более раннем, но не связанном проекте, термин "Протокол передачи изображений" и аббревиатура "PTP" были предложены Стивеном Манном, обобщив работу над созданием способа передачи изображений, дружественного к Linux, на самодельные носимые компьютеры, в то время как для передачи изображений на компьютер большинству камер требовалось использование драйверов устройств Microsoft Windows или Mac OS. PTP был первоначально стандартизирован как PIMA 15470 в 2000 году и разработан комитетом IT10. Ключевыми разработчиками стандарта были Тим Луни и Тим Уитчер (Eastman Kodak Company) и Эран Штайнберг (Fotonation).

Хранение

PTP не определяет способ хранения объектов – это протокол связи. Он также не определяет транспортный уровень. Однако он разработан для поддержки существующих стандартов, таких как Exif, TIFF/EP, DCF и DPOF, и обычно реализуется поверх транспортных уровней USB и FireWire. Изображения на цифровых камерах обычно хранятся в виде файлов на устройстве массового хранения, таком как карта памяти, отформатированная файловой системой, чаще всего FAT12, FAT16 или FAT32, которая может быть организована в соответствии со спецификацией "Правила проектирования файловой системы камеры" (DCF). Но ни одно из этих требований не предъявляется, поскольку PTP абстрагируется от базового представления данных. В отличие от этого, при подключении камеры через USB MSC физическая файловая система и структура данных становятся видимыми для пользователя.

Управление устройством

Многие современные цифровые камеры Canon и Nikon можно управлять по протоколу PTP с помощью вычислительного устройства с поддержкой USB-хоста (например, смартфона, ПК или Arduino). Как и в случае с PTP, связь осуществляется через USB-соединение. При взаимодействии с камерой таким образом предполагается, что USB-endpoints работают в (синхронном) режиме Bulk Transfer для получения и изменения практически всех функций и параметров камеры (таких как ISO, диафрагма, выдержка и фокусировка). События, генерируемые камерой в ответ на действия, выполненные хост-устройством, отправляются обратно хосту через асинхронный USB-endpoint прерываний. Помимо изменения настроек и режима работы камеры, можно получить изображение с матрицы в режиме "Live View". Кроме того, можно управлять файлами на картах памяти камеры, как описано выше. Управляя камерой таким образом, можно расширить её функциональные возможности. Например, если управляющее программное обеспечение работает на смартфоне с GPS, можно добавить координаты GPS в Exif-данные изображения в момент его создания, даже если сама камера не оснащена GPS-модулем.

Расширения

Разработан ряд протоколов, расширяющих возможности PTP. PTP/IP, разработанный FotoNation и впервые реализованный в линейке цифровых камер Wi-Fi от Nikon, Canon и Eastman Kodak, обеспечивает передачу данных по любой сети на базе IP. Общество науки и техники изображений (IS&T) ведет реестр расширений протокола PTP от сторонних разработчиков. Протокол передачи медиафайлов (MTP), разработанный Microsoft, позволяет осуществлять передачу данных по беспроводным или проводным сетям, частично основанным на PTP/IP от FotoNation, а также предоставляет пользователям возможность передавать медиафайлы других типов, помимо изображений, и добавлять к объектам расширенные метаданные (например, название, исполнитель и другие подобные данные).

Поддержка операционной системы

Microsoft Windows поддерживает PTP, начиная с Windows ME (за исключением Windows CE). Microsoft реализует PTP в Windows через Windows Image Acquisition. Отличием PTP в Windows от USB-накопителей является то, что Windows не назначает буквам дисков устройствам PTP, поэтому файлы изображений на них нельзя обрабатывать с помощью скриптов или стандартных программ Windows, а только через проводник Windows или приложения со специально разработанной поддержкой PTP. Кроме того, проводник Windows не отображает метки времени изменения файлов (хотя они доступны через всплывающее меню свойств файла). Поддержка PTP в Linux и других свободных операционных системах обеспечивается рядом библиотек, таких как libgphoto и libptp, которые используются приложениями, такими как digiKam и F Spot. Как и в Microsoft Windows, в Linux нет встроенной поддержки, но с помощью GVfs устройства можно легко монтировать и предоставлять приложениям, использующим стандартные команды POSIX и функции библиотек. Android поддерживает PTP, поэтому программы, способные извлекать фотографии с цифровых камер, смогут извлекать фотографии и с телефона Android при выборе режима PTP. Как и в случае с MTP, ограничением является замена меток времени файлов на время копирования при передаче фотографий с компьютера на устройство Android. Однако при копировании с устройства Android на компьютер метки времени сохраняются.