Протокол передачи изображений с цифровых камер (PTP)
Picture Transfer Protocol
Протокол PTP: передача фото с цифровых камер на компьютер без драйверов. Стандарт ISO 15740:2013, USB-совместимость. Простое подключение и обмен изображениями.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Протокол передачи изображений с цифровых камер на компьютеры
Protocol to transfer images from digital cameras to computers
Протокол передачи изображений (PTP) – это протокол, изначально разработанный Ассоциацией производителей фотографий и изображений (PIMA), позднее известной как Международная ассоциация индустрии изображений, для обеспечения передачи изображений с цифровых камер на компьютеры и другие периферийные устройства без необходимости использования дополнительных драйверов устройств. Протокол был стандартизирован ISO в 2005 году. Текущая версия стандарта – ISO 15740:2013. Он также стандартизирован для USB Форумом разработчиков USB как класс устройств захвата изображений. USB является основным сетевым транспортным средством для устройств PTP. USB PTP является распространенной альтернативой классу устройств USB массового хранения (USB MSC) в качестве протокола подключения цифровой камеры. Некоторые камеры поддерживают оба режима.
Picture Transfer Protocol (PTP) is a protocol originally developed by the Photographic and Imaging Manufacturers Association (PIMA) (later known as the International Imaging Industry Association) to allow the transfer of images from digital cameras to computers and other peripheral devices without the need for additional device drivers. The protocol was standardized by the ISO in 2005. The current version of the standard is ISO 15740:2013. It is further standardized for USB by the USB Implementers Forum as the still image capture device class. USB is the default network transport media for PTP devices. USB PTP is a common alternative to the USB mass storage device class (USB MSC), as a digital camera connection protocol. Some cameras support both modes.
Описание
PTP определяет способ создания, передачи и обработки объектов, представляющих собой, как правило, изображения, такие как JPEG-файлы. Хотя объекты, с которыми работает PTP, часто воспринимаются как файлы, на самом деле это абстрактные сущности, идентифицируемые исключительно 32-битным идентификатором объекта. Тем не менее, эти объекты могут иметь родительские и дочерние элементы, что позволяет создать представление содержимого устройства, подобное файловой системе.
PTP specifies a way of creating, transferring and manipulating objects which are typically photographic images such as a JPEG file. While it is common to think of the objects that PTP handle as files, they are abstract entities identified solely by a 32 bit object ID. These objects can however have parents and siblings so that a file system–like view of device contents can be created.
История
До стандартизации PTP производители цифровых камер использовали различные проприетарные протоколы для управления цифровыми камерами и передачи изображений на компьютеры и другие хост-устройства. В более раннем, но не связанном проекте, термин "Протокол передачи изображений" и аббревиатура "PTP" были предложены Стивеном Манном, обобщив работу над созданием способа передачи изображений, дружественного к Linux, на самодельные носимые компьютеры, в то время как для передачи изображений на компьютер большинству камер требовалось использование драйверов устройств Microsoft Windows или Mac OS. PTP был первоначально стандартизирован как PIMA 15470 в 2000 году и разработан комитетом IT10. Ключевыми разработчиками стандарта были Тим Луни и Тим Уитчер (Eastman Kodak Company) и Эран Штайнберг (Fotonation).
Until the standardization of PTP, digital camera vendors used different proprietary protocols for controlling digital cameras and transferring images to computers and other host devices. In an earlier but unrelated project, the term "Picture Transfer Protocol" and the acronym "PTP" were both coined by Steve Mann, summarizing work on the creation of a Linux friendly way of transferring pictures to and from home made wearable computers, at a time when most cameras required the use of Microsoft Windows or Mac OS device drivers to transfer their pictures to a computer. PTP was originally standardized as PIMA 15470 in 2000, while it was developed by the IT10 committee. Key contributors to the standard included Tim Looney and Tim Whitcher (Eastman Kodak Company) and Eran Steinberg (Fotonation).
Хранение
PTP не определяет способ хранения объектов – это протокол связи. Он также не определяет транспортный уровень. Однако он разработан для поддержки существующих стандартов, таких как Exif, TIFF/EP, DCF и DPOF, и обычно реализуется поверх транспортных уровней USB и FireWire. Изображения на цифровых камерах обычно хранятся в виде файлов на устройстве массового хранения, таком как карта памяти, отформатированная файловой системой, чаще всего FAT12, FAT16 или FAT32, которая может быть организована в соответствии со спецификацией "Правила проектирования файловой системы камеры" (DCF). Но ни одно из этих требований не предъявляется, поскольку PTP абстрагируется от базового представления данных. В отличие от этого, при подключении камеры через USB MSC физическая файловая система и структура данных становятся видимыми для пользователя.
PTP does not specify a way for objects to be stored – it is a communication protocol. Nor does it specify a transport layer. However, it is designed to support existing standards, such as Exif, TIFF/EP, DCF, and DPOF, and is commonly implemented over the USB and FireWire transport layers. Images on digital cameras are generally stored as files on a mass storage device, such as a memory card, which is formatted with a file system, most commonly FAT12, FAT16 or FAT32, which may be laid out as per the Design rule for Camera File system (DCF) specification. But none of these are required as PTP abstracts from the underlying representation. By contrast, if a camera is mounted via USB MSC, the physical file system and layout are exposed to the user.
Управление устройством
Многие современные цифровые камеры Canon и Nikon можно управлять по протоколу PTP с помощью вычислительного устройства с поддержкой USB-хоста (например, смартфона, ПК или Arduino). Как и в случае с PTP, связь осуществляется через USB-соединение. При взаимодействии с камерой таким образом предполагается, что USB-endpoints работают в (синхронном) режиме Bulk Transfer для получения и изменения практически всех функций и параметров камеры (таких как ISO, диафрагма, выдержка и фокусировка). События, генерируемые камерой в ответ на действия, выполненные хост-устройством, отправляются обратно хосту через асинхронный USB-endpoint прерываний. Помимо изменения настроек и режима работы камеры, можно получить изображение с матрицы в режиме "Live View". Кроме того, можно управлять файлами на картах памяти камеры, как описано выше. Управляя камерой таким образом, можно расширить её функциональные возможности. Например, если управляющее программное обеспечение работает на смартфоне с GPS, можно добавить координаты GPS в Exif-данные изображения в момент его создания, даже если сама камера не оснащена GPS-модулем.
Many modern digital cameras from Canon and Nikon can be controlled via PTP from a USB host enabled computing device (smartphone, PC or Arduino for example). As is the norm for PTP, the communication takes place over a USB connection. When interacting with the camera in this manner, it is expected that the USB endpoints are in (synchronous) Bulk Transfer Mode, for getting/setting virtually all the camera's features/properties (such as ISO, Aperture, Shutter speed and focus). Events raised by the camera, in response to specific actions performed by the host device, are sent back to the host via the USB asynchronous Interrupt endpoint. In addition to changing the camera's settings and operating mode, it is possible to receive a through the lens view using "Live View". As described above, the storage objects of the camera's memory cards can be manipulated too. By controlling a camera in this way it is possible to augment its capabilities. For example, if the controlling software was running on a smartphone with GPS functionality, it would be possible to add the GPS coordinates to an image's Exif data, at the time of image capture — even if the camera itself had no GPS functionality.
Расширения
Разработан ряд протоколов, расширяющих возможности PTP. PTP/IP, разработанный FotoNation и впервые реализованный в линейке цифровых камер Wi-Fi от Nikon, Canon и Eastman Kodak, обеспечивает передачу данных по любой сети на базе IP. Общество науки и техники изображений (IS&T) ведет реестр расширений протокола PTP от сторонних разработчиков. Протокол передачи медиафайлов (MTP), разработанный Microsoft, позволяет осуществлять передачу данных по беспроводным или проводным сетям, частично основанным на PTP/IP от FotoNation, а также предоставляет пользователям возможность передавать медиафайлы других типов, помимо изображений, и добавлять к объектам расширенные метаданные (например, название, исполнитель и другие подобные данные).
A number of protocols have been developed that extend PTP. PTP/IP, developed by FotoNation and first implemented in a round of Wi Fi digital cameras by Nikon, Canon, and Eastman Kodak, allows data transfer over any IP based network. A vendor extension registry for PTP is maintained by the Society for Imaging Science and Engineering (IS&T). Media Transfer Protocol (MTP), developed by Microsoft, allows for transfer over wireless or wired networks based in part on FotoNation's PTP/IP, but also allows users to transfer other media aside from pictures, as well as for tagging objects with extended metadata (such as title, artist and similar metadata).
Поддержка операционной системы
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 на компьютер метки времени сохраняются.
Microsoft Windows has supported PTP from Windows ME onwards (excluding Windows CE). Microsoft implements PTP on Windows through Windows Image Acquisition. A disadvantage of PTP on Windows as compared to USB mass storage is that Windows does not assign drive letters to PTP devices, so image files on them cannot be manipulated by scripts or standard Windows programs, only by Windows Explorer or applications with specially written PTP support. Also, Windows Explorer does not display file modification timestamps (though these are available via the file Properties popup). PTP on Linux and other free and open source operating systems is supported by a number of libraries, such as libgphoto and libptp, used by applications such as digiKam and F Spot. As on Microsoft Windows there is no native support on Linux, but by means of GVfs the devices can easily be mounted and made available to applications that use standard POSIX commands and library functions. Android supports PTP, so that software programs that support grabbing photos from a digital camera will support grabbing photos from an Android phone when you select the PTP mode. As with MTP, a limitation is that when transferring photos from a computer to the Android device, file timestamps are replaced with the time of the copy. For copies from the Android device to a computer however, the timestamps are preserved.