PlayStation 4 Camera: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
m (Reverted edits by 209.16.156.26 (talk) to last revision by Pop13 13)
Tag: Rollback
 
(32 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Wikify}}
== Playstation 4 Camera ==
== Playstation 4 Camera ==
See also {{talk}} page
RRA filing: http://rra.go.kr/board/device/view.jsp?app_no=201317100000152603 {{date|2013-08-22}}
[[File:Ps4-new-playstation-4-console-camera-07.jpg|300px|thumb|right|Camera at or above knee level]]
[[File:Ps4-new-playstation-4-console-camera-07.jpg|300px|thumb|right|Camera at or above knee level]]
=== Specifications ===
=== Specifications ===
Line 12: Line 19:
| '''Weight''' || approximately 183g
| '''Weight''' || approximately 183g
|-
|-
| '''[http://en.wikipedia.org/wiki/USB#Cabling Cable Length]''' || Cord length: 200cm approximately
| '''[http://en.wikipedia.org/wiki/USB#Cabling Cable Length]''' || Cord length: 200cm approximately  
See [http://ps4eye.tumblr.com/post/81377229916/extending-the-ps4-camera-cable extending the ps4 camera cable]
|-
|-
| '''[[Connectors|Connection Type]]''' || PS4 dedicated connector [[AUX]] ([[USB_3.0|USB 3.0]]-derived)
| '''[[Connectors|Connection Type]]''' || PS4 dedicated connector [[AUX]] ([[USB_3.0|USB 3.0]]-derived)
Line 27: Line 35:
|-
|-
| '''[http://en.wikipedia.org/wiki/Frame_rate Video Frame Rate]''' ||  
| '''[http://en.wikipedia.org/wiki/Frame_rate Video Frame Rate]''' ||  
*7.5, 15, 30 or 60fps at 1280x800 pixels
{| class="wikitable sortable"
*7.5, 15, 30, 60 or 120fps at 640x400 pixels
|-
*7.5, 15, 30, 60, 120 or 240fps at 320x200 pixels
! resolution !! aspectratio !! framerate || remarks
*7.5, 15, 30, 60, 120 or 240fps at 160x100 pixels
|-
| 1280x800 || 16:10 || 7.5, 15, 30 or 60fps || [http://en.wikipedia.org/wiki/Graphics_display_resolution#1280x800 WXGA]
|-
| 640x400 || 16:10 || 7.5, 15, 30, 60 or 120fps || 1/4<sup>th</sup> WXGA
|-
| 320x200 || 16:10 || 7.5, 15, 30, 60, 120 or 240fps || 1/16<sup>th</sup> WXGA
|-
| 160x100 || 16:10 || 7.5, 15, 30, 60, 120 or 240fps || 1/64<sup>th</sup> WXGA
|-
|}
|-
|-
| '''[http://en.wikipedia.org/wiki/Color_depth Color depth] || 12-bit tonal gradation (=4096 tonal levels)
| '''[http://en.wikipedia.org/wiki/Color_depth Color depth] || 12-bit tonal gradation (=4096 tonal levels)
Line 48: Line 65:
The [[PlayStation 4 Camera]] runs without user login (kernel/system device?) and depends for many of its system functions on the [[APU]], using a tripple buffering system
The [[PlayStation 4 Camera]] runs without user login (kernel/system device?) and depends for many of its system functions on the [[APU]], using a tripple buffering system


'''Available functions:'''
==== Available functions ====
* photo, video
* photo, video
* [[Phoneme|voice commands]] (available as well with an [[Earset|earset]] with microphone)
* depth calculation/imaging
* depth calculation/imaging
* pad, move, face, head and hand recognition/tracking
* pad, move, face, head and hand recognition/tracking
* one of the cameras can be used for generating the video image, with the other used for motion tracking.
* one of the cameras can be used for generating the video image, while the other used for motion tracking.
 
==== Hardware review ====
<imagemap>
File:PS4-Camera-diagram.jpg|350px|thumb|right|Ps4 Camera diagram
</imagemap>
 
*'''OV580''': Back chip connected to [[Aux]] port is labeled OV00580-B21G-1C. The OmniVision 580 {{G|ASIC}}  is not publicy documented (without signing a NDA with Omnivision), so it seems to have been made specially for Sony (other companies using it are Mantis Vision and LeapMotion) out of the [http://www.ovt.com/products/ip_table.php 500/600 serie] of processors.
 
others Omnivision USB bridge solutions: PlayStation EyeToy(OV519) and [http://www.psdevwiki.com/ps3/PlayStation_Eye PlayStation Eye] (OV534).
 
*'''OV9713''': The 1-megapixel [http://en.wikipedia.org/wiki/Image_sensor Image Sensors] are two CMOS OV9713.


Back chip connected to [[Aux]] port is labeled OV00580-B21G-1C. The OmniVision 580 {{G|ASIC}} is not documented, so it seems it was made specially for Sony out of the [http://www.ovt.com/products/ip_table.php 500/600 serie] (none of them featuring [[USB 3.0]], see external reference).
*'''AK5703''': The Front chip connected to microphone array, labeled 5703 324A, is a 4-channel 24-bit '''A'''nalog-to-'''d'''igital  (A/D) converter packaged in a space-saving 28-pin {{G|QFN}} package. Datasheet is available [http://www.akm.com/akm/en/file/datasheet/AK5703EN.pdf here] and [http://www.akm.com/page.jsp?id=230677 here.]


Front chip connected to microphone array is labeled 5703 324A.
*'''4g51a''': {{G|EEPROM}} is labeled as 4g51a. It contains the initial configuration for PlayStation 4 Camera.


=== Gallery ===
=== Gallery ===
{{Anchored|Pre E3 Playstation 4 Camera pictures}}
<gallery>
File:PS4 Camera 01.jpg|PS4 Camera - pic1
File:PS4 Camera 02.jpg|PS4 Camera - pic2
File:PS4 Camera 03.jpg|PS4 Camera - pic3
File:PS4 Camera 04.jpg|PS4 Camera - pic4
File:PS4 Camera 05.jpg|PS4 Camera - pic5
File:PS4 Camera 06.jpg|PS4 Camera - pic6
File:PS4 Camera 07.jpg|PS4 Camera - pic7
File:PS4 Camera 08.jpg|PS4 Camera - pic8
</gallery>


{{Anchored|Playstation 4 Camera teardown pictures}}
{{Anchored|Playstation 4 Camera teardown pictures}}
Line 80: Line 98:
</gallery>
</gallery>


=== Videos ===
{{Anchored|Pre E3 Playstation 4 Camera pictures}}
{{#ev:youtube|e9nsFAFedrY}}  
(The C-Note Files - Episode 12: Tutorial - PS4 Face Recognition)
 
{{#ev:youtube|nSxXXZTD5rc}}
(The C-Note Files - Episode 13: Tutorial - PS4 Voice Recognition)


== Analysis ==
Mouseover for different pictures. 
=== USB ===
==== Device Descriptor ====
 
<div style="height:600px; width:600px; overflow:auto">
{| class="wikitable"
{| class="wikitable"
! Front || Side
|-
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |[http://linuxcommand.org/man_pages/lsusb8.html Device Descriptor]
|{{HoverImage
|-
|PS4_Camera_01.jpg|PS4_Camera_02.jpg|
! Offset
|thumb|300px|
! Field
|
! Size
PS4 Camera - pic1|
! Value
PS4 Camera - pic2}}
! Description
||
|-
{{HoverImage
| 0 || bLength || 1 || Number: 0x12 || Size of this descriptor in bytes (18)
|PS4_Camera_03.jpg|PS4_Camera_04.jpg|
|-
|thumb|300px|
| 1 || bDescriptorType || 1 || Constant: 0x01 || DEVICE descriptor type (= 1)
|
|-
PS4 Camera - pic3|
| 2 || bcdUSB || 2 || BCD: 0x0300 || USB Spec release number ([http://en.wikipedia.org/wiki/USB#USB_3.0 3.00]):
PS4 Camera - pic4}}
<small>with which the device and is descriptors are compliant (e.g.: 0x0200 (USB2.0), 0x0300,
([[USB_3.0|USB3.0]]))</small>
|-
| 4 || bDeviceClass || 1 || Class: 0x00 || [http://www.usb.org/developers/defined_class Class code] assigned by [http://en.wikipedia.org/wiki/USB_Implementers_Forum USB-IF]
<small>(used by the operating system to find a class driver for your device)</small>
<small>
*00h means each interface defines its own class (identify itself at the interface level)
*FFh means vendor-defined class
*Any other value must be a class code
</small>
|-
| 5 || bDeviceSubClass || 1 || SubClass: 0x00 || SubClass Code assigned by USB-IF
<small>(used by the operating system to find a class driver for your device)</small>
|-
| 6 || bDeviceProtocol || 1 || Protocol: 0x00 || Protocol Code assigned by USB-IF
<small>(used by the operating system to find a class driver for your device)</small>
|-
| 7 || bMaxPacketSize0 || 1 || Number: 0x09  || Max packet size for endpoint 0.
<small>Must be 8, 16, 32 or 64</small>
|-
| 8 || idVendor || 2 || ID: 0x05a9 || [http://www.linux-usb.org/usb.ids Vendor ID (VID)] (OmniVision Technologies, Inc.) - must be obtained from USB-IF
<small>(used by the operating system to find a driver for your device)</small>
|-
| 10 || idProduct || 2 || ID: 0x0580 || Product ID (PID) - assigned by the manufacturer
<small>(used by the operating system to find a driver for your device)</small>
|-
| 12 || bcdDevice || 2 || BCD: 0x0100 || Device release number (Version: 1.00)
<small>in binary coded decimal</small>
|-
| 14 || iManufacturer || 1 || Index: 0x01 || Index of string descriptor describing manufacturer
<small>set to 0 if no string</small>
|-
| 15 || iProduct || 1 || Index: 0x02  || Index of string descriptor describing product
<small>set to 0 if no string</small>
|-
| 16 || iSerialNumber || 1 || Index: 0x00 || Index of string descriptor describing device serial number<BR /> <small>set to 0 if no string</small>
|-
| 17 || bNumConfigurations || 1 || Number: 0x01 || Number of possible configurations
|-
|}
|}
</div><br />
==== Configuration Descriptor ====


{| class="wikitable"
{| class="wikitable"
! Front || Side
|-
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |Configuration Descriptor
|{{HoverImage
|-
|PS4_Camera_05.jpg|PS4_Camera_06.jpg|
! Offset
|thumb|300px|
! Field
|
! Size
PS4 Camera - pic5|
! Value
PS4 Camera - pic6}}
! Description
||
|-
{{HoverImage
| 0 || bLength || 1 || 0x09 || Size
|PS4_Camera_07.jpg|PS4_Camera_08.jpg|
|-
|thumb|300px|
| 1 || bDescriptorType || 1 || 0x02 || CONFIGURATION descriptor type (= 2)
|
|-
PS4 Camera - pic7|
| 2 || wTotalLength || 2 || 0x002C || Total number of bytes (44) in this descriptor and all the following descriptors (9+9+ + +)
PS4 Camera - pic8}}
|-
| 4 || bNumInterfaces || 1 || 0x01 || Number of interfaces supported by this configuration
|-
| 5 || bConfigurationValue || 1 || 0x01 || Value used by Set Configuration to select this configuration
|-
| 6 || iConfiguration || 1 || 0x00 || Index of string descriptor describing configuration - set to 0 if no string
|-
| 7 || bmAttributes || 1 || 0x80 || Powered by the bus (10000000)
<small>
specify power parameters for the configuration :
<small>
{| cellpadding="4" style="border-collapse: collapse; text-align: center;"
|-
| colspan="6" |<code>''8-digit bit binary''</code>
|-
|style="border: 1px solid; border-left: hidden;"  |
|style="border: 1px solid;"                      | 7|6|5|4|3|2|1|0
|style="border: 1px solid; border-right: hidden;" | …
|}
|}
</small>
*D0 - D4: Reserved.
*D5: The configuration supports remote wakeup.
*D6: The configuration is self-powered and does not use power from the bus.
*D7: The configuration is powered by the bus.
</small>
|-
| 8 || bMaxPower || 1 || 0x32 || Maximum current: 100mA drawn by device in this configuration.<BR /><small>In units of 2mA. So 0x32 (50) means 100 mA</small>
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |Interface Descriptor
|-
| 0 || bLength || 1 || 0x09 || Size
|-
| 1 || bDescriptorType || 1 || 0x04 || INTERFACE descriptor type (= 4)
|-
| 2 || bInterfaceNumber || 1 || 0x00 || Number identifying this interface.
<small>Zero-based value</small>
|-
| 3 || bAlternateSetting || 1 || 0x00 || The first (and default) value used to select alternative setting is always 0
<small>
(An interface can have more than one variant, and these variants can be switched between, while other interfaces are still in operation)
</small>
|-
| 4 || bNumEndpoints || 1 || 0x02  || Number of Endpoints used for this interface
|-
| 5 || bInterfaceClass || 1 || 0xFF || Class code assigned by USB-IF
<small>
*00h is a reserved value
*FFh means vendor-defined class
*Any other value must be a class code
</small>
|-
| 6 || bInterfaceSubClass || 1 || 0x00 || SubClass Code assigned by USB-IF
|-
| 7 || bInterfaceProtocol || 1 || 0x00 || Protocol Code assigned by USB-IF
|-
| 8 || iInterface || 1 || 0x00 || Index of string descriptor describing interface - set to 0 if no string
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |Endpoint (OUT) Descriptor
|-
| 0 || bLength || 1 || 0x0- || Size
|-
| 1 || bDescriptorType || 1 || 0x05 || Endpoint descriptor type (= 5)
|-
| 2 || bEndpointAddress || 1 || 0x01 || OUT (00000001)-->1
<small>
The address of this endpoint within the device:
*D3-D0: Endpoint number
*D6-D4: Reserved. set to Zero
*D7: Direction: 0 = OUT, 1 = IN (Ignored for Control Endpoints)
</small>
|-
| 3 || bmAttributes || 1 || 0x02 || Bulk (00000010)
<small>
(D1:0) [http://www.inno-logic.com/resources/21.php#4 Transfer Type:]
*00 = Control
*01 = Isochronous
*10 = Bulk
*11 = Interrupt


The following only apply to isochronous endpoints. Else set to 0.
=== Videos ===
{{#ev:youtube|e9nsFAFedrY}}
(The C-Note Files - Episode 12: Tutorial - PS4 Face Recognition)
 
{{#ev:youtube|nSxXXZTD5rc}}
(The C-Note Files - Episode 13: Tutorial - PS4 Voice Recognition)


(D3:2) Synchronisation Type (ISO mode):
== Analysis ==
*00 = No Synchronisation
*[[PS4cam-USB|Communication USB]]
*01 = Asynchronous
*10 = Adaptive
*11 = Synchronous


(D5:4) Usage Type (ISO mode):
== Project ==
*00 = Data endpoint
*01 = Feedback endpoint
*10 = Implicit feedback Data endpoint
*11 = Reserved


(D7:6) Reserved
* PS4 Camera on linux/OSX: https://github.com/ps4eye/ps4eye / http://ps4eye.tumblr.com/
Set to 0
* https://github.com/bigboss-ps3dev/PS4EYECam/ / http://bigboss-eyetoy.blogspot.co.uk/2014/09/ps4eyecam-released.html
</small>
<small>(The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems. See also [[Aux|AUX page]])</small>
|-
| 4 || wMaxPacketSize || 2 || 0x0400 || (1024)
|-
| 6 || bInterval || 1|| 0x00 || - (unit depends on device speed)
<small>
Interval for polling endpoint for data transfers. Expressed in frames (ms) for low/full speed or microframes (125{{micro}}s) for high speed<BR />
(ignored for Bulk & Control Endpoints. Isochronous must equal 1 and field may range from 1 to 255 for interrupt endpoints)
|-
| - || bMaxBurst || 1 || 0x0F || MaxBurst (15)
<small>
The number of packets the endpoint can send or receive as part of a burst (range 1 - 16). See transfer Type.
</small>
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |Endpoint (IN) Descriptor
|-
| 0 || bLength || 1 || 0x0- || Size
|-
| 1 || bDescriptorType || 1 || 0x05 || Endpoint descriptor type
|-
| 2 || bEndpointAddress || 1 || 0x82 || IN (10000010)-->2
|-
| 3 || bmAttributes || 1 || 0x02 || Bulk
|-
| 4 || wMaxPacketSize || 2 || 0x0400 || (1024)
|-
| 6 || bInterval || 1 || 0x00 || 0
|-
| - || bMaxBurst || 1 || 0x0F || MaxBurst (15)
|-
! colspan="5" style="background-color:#C0C0C0; color:#000000;" |Binary Object Store Descriptor
|-
| 0 || bLength ||  ||  ||
|-
| 1 || bDescriptorType ||  ||  ||
|-
| 2 || wTotalLength ||  ||  ||
|-
| 3 || bNumDeviceCaps ||  ||  || (2)
|-
| - || colspan="4" style="background-color:#F0B0BF; color:#000000; text-align:center;"|USB 2.0 Extension Device Capability:
|-
| || bLength ||  ||  ||
|-
| || bDescriptorType ||  || ||
|-
| || bDevCapabilityType ||  || || (2)
|-
| || bmAttributes ||  || 0x00000002 ||
<small>
*Link Power Management (LPM) Supported
<small>
|-
| - || colspan="4" style="background-color:#F0B0BF; color:#000000; text-align:center;"|SuperSpeed USB Device Capability:
|-
| || bLength ||  ||  ||
|-
| || bDescriptorType ||  || ||
|-
| || bDevCapabilityType ||  || || (3)
|-
| || bmAttributes ||  || 0x00 ||
|-
| || wSpeedsSupported ||  || 0x000e ||
<small>
*Device can operate at Full Speed (12Mbps)
*Device can operate at High Speed (480Mbps)
*Device can operate at SuperSpeed (5Gbps)
</small>
|-
| || bFunctionalitySupport ||  ||  ||
<small>
*Lowest fully-functional device speed is Full Speed 12Mbps)
</small>
|-
| || bU1DevExitLat ||  ||  || 10{{micro}}
|-
| || bU2DevExitLat ||  ||  || 32{{micro}}s
|-
| || Device Status ||  || 0x0000 ||
|-
|}


== External references ==
== External references ==
* http://ps4eye.tumblr.com/
* http://ps4eye.tumblr.com/
* https://twitter.com/psxdev


=== Generic ===
=== Generic ===
* http://en.wikipedia.org/wiki/Computer_stereo_vision
* http://en.wikipedia.org/wiki/Computer_stereo_vision
* [http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spry199&fileType=pdf Gesture recognition: Enabling natural interactions with electronic]
* [http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spry199&fileType=pdf Gesture recognition: Enabling natural interactions with electronic]
* [http://www.softkinetic.com/AboutUs/NewsEvents/ArticleView/tabid/562/ArticleId/312/language/en-US/NEWS-SoftKinetic-To-Bring-Gesture-Recognition-Technology-To-Video-Games-On-PlayStation-4.aspx Softkinetic Patent:]
* [http://www.softkinetic.com/AboutUs/NewsEvents/ArticleView/tabid/562/ArticleId/312/language/en-US/NEWS-SoftKinetic-To-Bring-Gesture-Recognition-Technology-To-Video-Games-On-PlayStation-4.aspx Softkinetic Patent:] [https://www.google.co.uk/patents/US8517834 Computer video-game system with body position detector]
[https://www.google.co.uk/patents/US8517834 Computer videogame system with body position detector]




{{Peripherals}}
{{Peripherals}}
<noinclude>[[Category:Main]]</noinclude>
<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 19:13, 31 January 2023


Playstation 4 Camera[edit | edit source]

See also Discussion page

RRA filing: http://rra.go.kr/board/device/view.jsp?app_no=201317100000152603 22 August 2013

Specifications[edit | edit source]

Overview of Technical Specifications
Product Code CUH-ZEY1
External Dimension approximately 186mm x 27mm x 27mm (height x width x depth)
Weight approximately 183g
Cable Length Cord length: 200cm approximately

See extending the ps4 camera cable

Connection Type PS4 dedicated connector AUX (USB 3.0-derived)
Capture Range 30cm -
Camera lens Dual camera (move like)
Aperture f/2.0 /fixed focus
Field of view (FOV) 85°
Video Format RAW16/RAW8, YUV422/YUV8 (greyscale)
Video Frame Rate
resolution aspectratio framerate remarks
1280x800 16:10 7.5, 15, 30 or 60fps WXGA
640x400 16:10 7.5, 15, 30, 60 or 120fps 1/4th WXGA
320x200 16:10 7.5, 15, 30, 60, 120 or 240fps 1/16th WXGA
160x100 16:10 7.5, 15, 30, 60, 120 or 240fps 1/64th WXGA
Color depth 12-bit tonal gradation (=4096 tonal levels)
Microphone 4 Channel Microphone Array
Programmable settings

The PlayStation 4 Camera runs without user login (kernel/system device?) and depends for many of its system functions on the APU, using a tripple buffering system

Available functions[edit | edit source]

  • photo, video
  • voice commands (available as well with an earset with microphone)
  • depth calculation/imaging
  • pad, move, face, head and hand recognition/tracking
  • one of the cameras can be used for generating the video image, while the other used for motion tracking.

Hardware review[edit | edit source]

Ps4 Camera diagram
  • OV580: Back chip connected to Aux port is labeled OV00580-B21G-1C. The OmniVision 580 ASIC is not publicy documented (without signing a NDA with Omnivision), so it seems to have been made specially for Sony (other companies using it are Mantis Vision and LeapMotion) out of the 500/600 serie of processors.

others Omnivision USB bridge solutions: PlayStation EyeToy(OV519) and PlayStation Eye (OV534).

  • AK5703: The Front chip connected to microphone array, labeled 5703 324A, is a 4-channel 24-bit Analog-to-digital (A/D) converter packaged in a space-saving 28-pin QFN package. Datasheet is available here and here.
  • 4g51a: EEPROM is labeled as 4g51a. It contains the initial configuration for PlayStation 4 Camera.

Gallery[edit | edit source]

Playstation 4 Camera teardown pictures

Pre E3 Playstation 4 Camera pictures

Mouseover for different pictures.

Front Side
PS4 Camera - pic1
PS4 Camera - pic2
PS4 Camera - pic3
PS4 Camera - pic4
Front Side
PS4 Camera - pic5
PS4 Camera - pic6
PS4 Camera - pic7
PS4 Camera - pic8

Videos[edit | edit source]

(The C-Note Files - Episode 12: Tutorial - PS4 Face Recognition)

(The C-Note Files - Episode 13: Tutorial - PS4 Voice Recognition)

Analysis[edit | edit source]

Project[edit | edit source]

(The PS4 camera is USB 3.0 only and is not compatible with USB 2.0 systems. See also AUX page)

External references[edit | edit source]

Generic[edit | edit source]