Picture Transfer Protocol
Picture Transfer Protocol (PTP) is a widely supported protocol developed by the International Imaging Industry Association to allow the transfer of images from digital cameras to computers and other peripheral devices without the need of additional device drivers. The protocol has been standardised as ISO 15740.
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 USB MSC, as a digital camera connection protocol. Some cameras support both modes.
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 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.
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.
Media Transfer Protocol, 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).
Operating-system support 
Both Microsoft and Apple include PTP support in their operating systems, from Windows Me onwards (excluding Windows CE), and Mac OS X v10.1 onwards, respectively. Microsoft implements PTP on Windows through Windows Image Acquisition.
Version 1.1 
As of the middle of 2008, most devices and operating systems do not yet support PTP v1.1. This updated version of PTP is fully backward-compatible with PTP v1.0, and offers optional performance, compatibility, and feature enhancements including:
- A mechanism for handling streaming content
- A mechanism to support multiple vendor extension sets
- Support for objects larger than the 4GiB size limit set by PTP v1.0, by requiring 64 bits (8 bytes) for object size
- Support for retrieval of ObjectHandles in enumerated chunks. This may reduce long response times for some devices that possess large numbers of objects
- Support for arbitrary resizing prior to image transmission (responder scaling). In PTP v1.0, image sizes might be requested in full-resolution or thumbnail size only
- Support for arrays of datasets. This can be used to reduce the number of required transactions necessary for device characterization from being a function of the number of objects on the device down to one
- A fast file characterization operation that exploits dataset arrays to request, in a single transaction, only the minimum data required to characterize a typical filesystem
- A new standard ObjectFormatCode to support the Digital Negative (DNG) file format
- Renaming file objects directly is not possible without copying or rewriting them
- Modification of file contents is not supported (the file needs to be re-transferred completely)