Picture Transfer Protocol (PTP)
This page describes PTP, the widely supported Picture Transfer Protocol standard for transferring images from digital cameras. PTP was originally developed by the IT 10 standards committee The current version of PTP is standardized in ISO 15740:2013 Photography — Electronic still picture imaging — Picture transfer protocol
(PTP) for digital still photography devices, and can be purchased from the this link.
What is PTP?
PTP stands for Picture Transfer Protocol. PTP is a platform- and transport-independent standard for communicating with digital photography devices, such as digital cameras. PTP defines a set of standard operations, responses, events, device properties, and required behaviors that control the creation and transfer of objects, such as digital images and other digital media files.
The benefits of PTP include:
- Enables platform and OS developers to build native support for PTP into their systems, removing the need for user-installed digital camera drivers.
- Allows camera vendors to support multiple transports using the same protocal.
- Enables third party developers to interface to digital cameras easily and uniformly.
- Requires support for only a small set of constructs, while allowing many optional features.
- Allows vendors to extend the protocol to provide proprietary commands and features.
History of PTP
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. PTP was originally standardized as PIMA 15740 in 2000. 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 version 1.0 was first standardized internationally as ISO 15740:2005, replacing PIMA 15740. In 2008, and then again in 2013, ISO 15740 underwent backwards compatible revisions, with additional features such as support for multiple vendor extensions and
Currently, PTP has standard transport definitions for the following transports:
- UBS: Still Image Device Class, USB-IF Device Working Group, available from: www.usb.org
- TCP/IP: PTP-IP IP Picture Transfer Protocol, version 1.0, Camera & Imaging Products Association (CIPA), available from: www.cipa.jp
PTP in Products
Since its standardization in 2000, PTP has been widely implemented in digital imaging products, such as digital cameras, and personal computer operating systems. PTP is currently supported by:
Digital Cameras: PTP has been supported by almost all digital cameras since 2005.
Microsoft OS: PTP has been supported natively in Microsoft’s operating systems beginning with Windows XP. Currently, Microsoft’s PTP driver enables PTP devices to support the WIA (Windows Imaging Architecture) driver model. PTP is also the foundation of Microsoft’s MTP (Media Transport Protocol), which extends PTP to support portable media centric devices.
Apple OS: PTP is supported natively in OS X
Linux OS: Several open-source driver packages have been developed for Linux
PictBridge: PTP is the underlying communication mechanism used by PictBridge, which was standardized by the Camera & Imaging Products Association (CIPA), in order to enable the direct printing of photos without the need for a PC
Request PTP Vendor Extension Identifiers (VEIDs)
PTP provides a mechanism for obtaining registered vendor extensions, using vendor extension identifiers (VEIDs). VEIDs are used to provide customized operations, responses, events, object format codes, and device properties. They enable device or software manufacturers with new or proprietary features to implement the necessary constructs in a standard fashion.
A vendor extension identifier is a unique 32-bit code. Since 2011, IS&T has been responsible for assigning VEID codes. If your organization wishes to be assigned a VEID, please follow the instructions on the following form:
» PTP vendor form
Registered Vendor Extensions
The following link provides a table of currently registered vendor extensions:
» View registry here