Протокол передачи изображений ( PTP ) — это протокол, изначально разработанный Ассоциацией производителей фототехники и изображений (PIMA) (позже известной как Международная ассоциация индустрии изображений ), чтобы обеспечить передачу изображений с цифровых камер на компьютеры и другие периферийные устройства без необходимости установки дополнительных драйверов устройств . Протокол был стандартизирован ISO в 2005 году. Текущая версия стандарта — ISO 15740:2013. [1]
Он далее стандартизирован для USB Форумом разработчиков USB как класс устройств захвата неподвижных изображений . USB является сетевым транспортным носителем по умолчанию для устройств PTP. USB PTP является распространенной альтернативой классу устройств USB Mass-Storage Device (USB MSC) в качестве протокола подключения цифровой камеры. Некоторые камеры поддерживают оба режима.
PTP определяет способ создания, передачи и управления объектами , которые обычно являются фотографическими изображениями, такими как файл JPEG . Хотя принято считать, что объекты, которые обрабатывает PTP, являются файлами , они являются абстрактными сущностями, идентифицируемыми исключительно 32-битным идентификатором объекта. Однако эти объекты могут иметь родительские и родственные элементы , так что можно создать представление содержимого устройства, похожее на файловую систему.
До стандартизации PTP поставщики цифровых камер использовали различные фирменные протоколы для управления цифровыми камерами и передачи изображений на компьютеры и другие хост-устройства. В более раннем, но не связанном с этим проекте термин «Picture Transfer Protocol» и аббревиатура «PTP» были придуманы Стивом Манном, обобщающим работу по созданию Linux-дружественного способа передачи изображений на и с самодельных носимых компьютеров [2] в то время, когда большинству камер требовалось использование драйверов устройств Microsoft Windows или Mac OS для передачи своих изображений на компьютер.
PTP был первоначально стандартизирован как PIMA 15470 в 2000 году, в то время как он был разработан комитетом IT10. Ключевыми участниками стандарта были Тим Луни и Тим Уитчер ( Eastman Kodak Company ) и Эран Стейнберг ( Fotnation ). [3]
PTP не определяет способ хранения объектов — это протокол связи. Он также не определяет транспортный уровень. Однако он разработан для поддержки существующих стандартов, таких как Exif , TIFF/EP , DCF и DPOF , и обычно реализуется через транспортные уровни USB и FireWire .
Изображения на цифровых камерах обычно хранятся в виде файлов на запоминающем устройстве большой емкости , например, на карте памяти , которая отформатирована в файловой системе, чаще всего FAT12 , FAT16 или FAT32 , которая может быть размечена в соответствии со спецификацией Design rule for Camera File system (DCF). Но ни один из них не требуется, поскольку PTP абстрагируется от базового представления.
Напротив, если камера подключена через USB MSC , физическая файловая система и компоновка становятся видны пользователю.
Многие современные цифровые камеры Canon и Nikon могут управляться через PTP с помощью вычислительного устройства с поддержкой USB-хоста ( например, смартфона, ПК или Arduino ). Как это обычно бывает с PTP, связь осуществляется через USB-подключение. При таком взаимодействии с камерой ожидается, что конечные точки USB будут находиться в (синхронном) режиме массовой передачи для получения/настройки практически всех функций/свойств камеры (таких как ISO, диафрагма, выдержка и фокус). События, инициированные камерой в ответ на определенные действия, выполняемые хост-устройством, отправляются обратно на хост через конечную точку асинхронного прерывания USB.
Помимо изменения настроек и режима работы камеры, можно получать вид через объектив с помощью "Live View". Как описано выше, можно также управлять объектами хранения карт памяти камеры.
Управляя камерой таким образом, можно расширить ее возможности. Например, если управляющее программное обеспечение работает на смартфоне с функцией GPS , можно добавить координаты GPS к данным Exif изображения во время захвата изображения — даже если сама камера не имеет функции GPS.
Разработано несколько протоколов, расширяющих PTP. PTP/IP [ 4], разработанный FotoNation и впервые реализованный в серии цифровых камер Wi-Fi компаниями Nikon , Canon и Eastman Kodak , позволяет передавать данные по любой сети на основе IP . Реестр расширений поставщиков для PTP поддерживается Обществом по науке и технике обработки изображений (IS&T).
Протокол передачи мультимедиа (MTP), разработанный корпорацией Microsoft , позволяет осуществлять передачу по беспроводным или проводным сетям, частично основанным на протоколе PTP/IP компании FotoNation, но также позволяет пользователям передавать другие медиаданные, помимо изображений, а также маркировать объекты расширенными метаданными (например, название, исполнитель и аналогичные метаданные).
Microsoft Windows поддерживает PTP, начиная с Windows ME (исключая Windows CE ). Microsoft реализует PTP в Windows через Windows Image Acquisition . [5] [6] Недостатком 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. [7] Как и в случае с MTP , ограничение заключается в том, что при передаче фотографий с компьютера на устройство Android временные метки файлов заменяются временем копирования. Однако для копий с устройства Android на компьютер временные метки сохраняются.
PTP v1.11 (ISO 15740:2013) — это незначительная доработка PTP v1.1 (ISO 15740:2008). Обе версии PTP 2008 и 2013 годов полностью обратно совместимы с PTP v1.0 (ISO 15740:2005) и предлагают дополнительные улучшения производительности, совместимости и функций, включая: