Protokół przesyłania obrazu — Picture Transfer Protocol

Picture Transfer Protocol ( PTP ) to protokół opracowany przez International Imaging Industry Association w celu umożliwienia przesyłania obrazów z aparatów cyfrowych do komputerów i innych urządzeń peryferyjnych bez konieczności stosowania dodatkowych sterowników urządzeń . Protokół został ustandaryzowany jako ISO 15740.

Jest on dalej standaryzowany dla USB przez USB Implementers Forum jako klasa urządzeń do przechwytywania obrazów nieruchomych . USB jest domyślnym sieciowym nośnikiem transportowym dla urządzeń PTP. USB PTP jest powszechną alternatywą dla klasy urządzeń pamięci masowej USB (USB MSC), jako protokół połączenia aparatu cyfrowego. Niektóre aparaty obsługują oba tryby.

Opis

PTP określa sposób tworzenia, przesyłania i manipulowania obiektami, które są zazwyczaj obrazami fotograficznymi, takimi jak plik JPEG . Chociaż powszechnie uważa się, że obiekty obsługiwane przez PTP to pliki , są one abstrakcyjnymi jednostkami identyfikowanymi wyłącznie przez 32-bitowy identyfikator obiektu. Obiekty te mogą jednak mieć rodziców i rodzeństwo, dzięki czemu można utworzyć widok zawartości urządzenia podobny do systemu plików.

Historia

Do czasu standaryzacji PTP producenci aparatów cyfrowych stosowali różne zastrzeżone protokoły do ​​sterowania aparatami cyfrowymi i przesyłania obrazów do komputerów i innych urządzeń hosta. Termin „Picture Transfer Protocol” i akronim „PTP” zostały wymyślone przez Steve'a Manna, podsumowując prace nad stworzeniem przyjaznego dla Linuksa sposobu przesyłania zdjęć do i z domowych komputerów do noszenia w czasie, gdy wymagało to większości aparatów. wykorzystanie sterowników urządzeń Microsoft Windows lub Mac OS do przesyłania zdjęć do komputera.

PTP został pierwotnie ustandaryzowany jako PIMA 15470 w 2000 roku, podczas gdy został opracowany przez komisję IT10. Kluczowymi współtwórcami standardu byli Tim Looney i Tim Whitcher (Eastman Kodak Company) oraz Eran Steinberg (Fotonation).

Przechowywanie

PTP nie określa sposobu przechowywania obiektów – jest to protokół komunikacyjny. Nie określa też warstwy transportowej. Jest jednak zaprojektowany do obsługi istniejących standardów, takich jak Exif , TIFF/EP , DCF i DPOF , i jest powszechnie implementowany przez warstwy transportowe USB i FireWire .

Obrazy w aparatach cyfrowych są zazwyczaj przechowywane jako pliki na urządzeniu pamięci masowej , takim jak karta pamięci , która jest sformatowana w systemie plików, najczęściej FAT12 , FAT16 lub FAT32 , który może być ułożony zgodnie z regułą projektowania plików aparatu specyfikacja systemu (DCF). Ale żaden z nich nie jest wymagany jako abstrakty PTP z podstawowej reprezentacji.

W przeciwieństwie do tego, jeśli kamera jest zamontowana przez USB MSC , fizyczny system plików i układ są widoczne dla użytkownika.

Kontrola urządzenia

Wiele nowoczesnych aparatów cyfrowych firm Canon i Nikon może być sterowanych przez PTP z urządzenia komputerowego obsługującego host USB (np. smartfona, komputera PC lub Arduino ). Jak to jest w przypadku PTP, komunikacja odbywa się przez połączenie USB. Podczas interakcji z aparatem w ten sposób oczekuje się, że punkty końcowe USB są w (synchronicznym) trybie przesyłania zbiorczego, aby uzyskać/ustawić praktycznie wszystkie funkcje/właściwości aparatu (takie jak ISO, przysłona, czas otwarcia migawki i ostrość). Zdarzenia wywoływane przez kamerę w odpowiedzi na określone akcje wykonywane przez urządzenie hosta są wysyłane z powrotem do hosta za pośrednictwem punktu końcowego przerwania asynchronicznego USB.

Oprócz zmiany ustawień i trybu pracy kamery, możliwe jest uzyskanie widoku przez obiektyw za pomocą „Podglądu na żywo”. Jak opisano powyżej, można również manipulować obiektami pamięci na kartach pamięci aparatu.

Sterując kamerą w ten sposób można zwiększyć jej możliwości. Na przykład, jeśli oprogramowanie sterujące było uruchomione na smartfonie z funkcją GPS , możliwe byłoby dodanie współrzędnych GPS do danych Exif obrazu w momencie przechwytywania obrazu - nawet jeśli sam aparat nie miał funkcji GPS.

Rozszerzenia

Opracowano szereg protokołów rozszerzających PTP. PTP/IP , opracowany przez FotoNation i po raz pierwszy wdrożony w serii cyfrowych aparatów Wi-Fi firm Nikon , Canon i Eastman Kodak , umożliwia przesyłanie danych przez dowolną sieć opartą na protokole IP .

Media Transfer Protocol (MTP), opracowany przez Microsoft , pozwala na transfer przez sieci bezprzewodowe lub przewodowe oparte częściowo na PTP/IP FotoNation, ale także pozwala użytkownikom na przesyłanie innych mediów poza zdjęciami, a także na znakowanie obiektów rozszerzonymi metadanymi ( takie jak tytuł, wykonawca itp.).

Obsługa systemu operacyjnego

Microsoft Windows obsługuje PTP od Windows ME i nowszych (z wyjątkiem Windows CE ). Microsoft implementuje PTP w systemie Windows poprzez Windows Image Acquisition . Wadą PTP w systemie Windows w porównaniu z pamięcią masową USB jest to, że system Windows nie przypisuje liter dysków do urządzeń PTP, więc pliki graficzne na nich nie mogą być manipulowane przez skrypty lub standardowe programy systemu Windows, tylko przez Eksploratora Windows lub aplikacje ze specjalnie napisaną obsługą PTP . Ponadto Eksplorator Windows nie wyświetla znaczników czasu modyfikacji plików (chociaż są one dostępne w wyskakującym okienku Właściwości pliku).

PTP na Linux i inne wolne i open-source systemów operacyjnych jest obsługiwany przez wiele bibliotek, takich jak libgphoto i libptp , używane przez aplikacje, takie jak digiKam i F-Spot . Podobnie jak w systemie Microsoft Windows nie ma natywnej obsługi w systemie Linux, ale za pomocą GVfs urządzenia można łatwo montować i udostępniać aplikacjom korzystającym ze standardowych poleceń POSIX i funkcji bibliotecznych.

Android obsługuje PTP, chociaż podobnie jak w przypadku MTP , ograniczeniem jest to, że podczas przesyłania zdjęć z komputera na urządzenie z systemem Android, znaczniki czasu plików są zastępowane czasem kopii (przy kopiach w drugą stronę, z urządzenia na komputer, znaczniki czasu są zachowane).

Poseidon USB stos na Amidze obejmuje ptp.class .

Wersja 1.1

PTP v1.1 (ISO15740:2008) to aktualizacja PTP opublikowana przez ISO .

Ta zaktualizowana wersja PTP jest w pełni kompatybilna wstecz z PTP v1.0 i oferuje opcjonalną wydajność, kompatybilność i ulepszenia funkcji, w tym:

  • Mechanizm do obsługi treści przesyłanych strumieniowo
  • Mechanizm do obsługi wielu zestawów rozszerzeń dostawców
  • Obsługa obiektów większych niż limit rozmiaru 4GiB ustalony przez PTP v1.0, wymagając 64 bitów (8 bajtów) dla rozmiaru obiektu
  • Obsługa pobierania ObjectHandles w wyliczonych porcjach . Może to skrócić długie czasy odpowiedzi w przypadku niektórych urządzeń, które posiadają dużą liczbę obiektów
  • Obsługa dowolnej zmiany rozmiaru przed transmisją obrazu (skalowanie odpowiedzi). W PTP v1.0 rozmiary obrazów mogą być wymagane w pełnej rozdzielczości lub tylko w rozmiarze miniatur
  • Obsługa tablic zestawów danych. Można to wykorzystać do zmniejszenia liczby wymaganych transakcji niezbędnych do scharakteryzowania urządzenia z funkcji liczby obiektów na urządzeniu do jednego
  • Szybka operacja charakteryzowania plików, która wykorzystuje tablice zestawów danych do żądania, w pojedynczej transakcji, tylko minimalnej ilości danych wymaganej do scharakteryzowania typowego systemu plików
  • Nowy standardowy kod ObjectFormatCode obsługujący format plików Digital Negative (DNG)

Wady

  • Bezpośrednia zmiana nazw obiektów plików nie jest możliwa bez ich kopiowania lub przepisywania
  • Modyfikacja zawartości pliku nie jest obsługiwana (plik musi zostać całkowicie ponownie przesłany)
  • Niektóre wady są specyficzne dla systemu operacyjnego — zobacz § Obsługa systemu operacyjnego

Zobacz też

Bibliografia

Linki zewnętrzne