Is Xbox 360 holding back Kinect?

USB "technicalities" blamed.

Blitz Games founder Phillip Oliver says that the "technicalities of the Xbox" are holding back Kinect from providing higher resolution images. Talking about Blitz's new game, Yoostar, with Gamesindustry.biz, Oliver describes how Microsoft added a digital zoom to the Kinect feature-set as the full high resolution image was not available for the developers to access themselves.

"So what we wanted to do was, instead of asking the player to get closer to the camera, was zoom the camera into where they were," Oliver explains, talking about how Yoostar handles close-up shots of the player.

"The Kinect camera is quite a high res camera, so we actually asked that we have access to the higher res picture. But they can't give the full resolution picture, at the full frame-rate, because of the USB 2.0 connection. It's just the technicalities of the Xbox.

"So what we said was, we just need to access a section, a piece of the image and bring that through in a higher resolution. Effectively a digital zoom. Which they gave us. That's an excellent feature. So now you don't even have to get into frame yourself. The camera can select the right bit of the high res picture and zoom in itself."

Oliver's comments may obliquely address one of the most curious technical mysteries surrounding Kinect. Hackers have interfaced their PCs with Kinect and attained a full 640x480 resolution from both the RGB camera, and the infra-red depth sensor (which I tested myself with the OpenKinect driver installed on my laptop - download it, it's way cool!). However, Microsoft's own spec says that the depth image's resolution is limited to a quarter of what the hackers are getting via their own experimentation: 320x240. Update: Kinect hacker Hector Martin has confirmed to Digital Foundry full 640x480 from both sensors at 30FPS via his driver, with throughput in the region of 20MB/s.

The question is, why? One decent theory is that while the depth sensor may format in a 640x480 res, the actual sensor resolution quality may be somewhat lower - you see this a lot with the CMOS sensors on so-called HD camcorders. Downscaling (if you can call it that) the depth image may address this, save data throughput and save depth image processing to boot: a worthwhile compromise in minimising the use of console resources.

However, Oliver's comments about USB being the issue brought to mind a previous DF article: our analysis of the USB flash storage update Microsoft added to the 360 dashboard. We saw a limit of around 16MB/s copying from hard disk to USB storage, even when using an ultra-fast SSD as our target drive. This is somewhat at odds with the PC, where you would expect the same HDD to flash operation to top out at just over 30MB/s - pretty much the "real world" limit of USB 2.0. A USB to USB copy operation saw that 16MB/s drop to 10MB/s, perhaps suggesting that the bandwidth of the available ports is shared.

So when Phillip Oliver talks about the "technicalities of the Xbox", you have to wonder if Microsoft's own USB 2.0 controller is allocating certain amounts of available bandwidth for different purposes - after all, in theory that single chip has to handle Kinect, flash drives (which support game installs, remember), WiFi adaptors and wired controllers - all simultaneously. It'll also be curious to test out whether the Xbox 360S has the same bandwidth cap issue on USB transfers, or whether the USB architecture was upgraded in order to accommodate the more numerous ports the new unit has.

Comments (38) Latest comment 1 year ago

Comments for this article are now closed, but please feel free to continue chatting on the forum!

  • StolenGlory #1 2 years ago

    I thought it was games developers that were holding back Kinect?

    Ah well.
  • sfp_noodle #2 2 years ago

    I never thought I'd ever read that the actual console is holding back an OFFICIAL peripheral.
  • mkreku #3 2 years ago

    USB only manages 30 MB/s? But I've seen memory sticks boasting about speeds much higher than that! Filthy liars.
  • Dizzy #4 2 years ago

    "Compared to the PC consoles are limited" shocker.

    Yeah probably Kinect on PC will be able to do a lot more with mega processing power available.

    Then again Kinect is doing what it should do on 360. What kind of weird article is this anyway?
  • Fab4 #5 2 years ago

    Couldn't they have had the Kinect process a full size image and send only the useful stuff over the USB?
  • NimbusTLD #6 2 years ago

    @Fab4

    Kinect and what processor??
  • Moonprince #7 2 years ago

    kinect is holding back 360 more like!
  • dsmx #8 2 years ago

    @fab4 that was why originally it had a processor in it.
  • TopKatt #9 2 years ago

    Yeah, all those great games taking up shelf space that could be used for fitness and dance shovelware.
  • ThePissartist #10 2 years ago

    Apparently Kinect has a processor of some sort.

    If the 360's USB is limited to 16MB/s, doesn't that mean you'll never be able to make use of a faster than 16MB/s internet connection? Surely that means the Zune HD video is limited to 16MB/s (which is my current connection speed).

    I'd be interested to know whether devs could use JUST the depth sensor and get the higher resolution, while negating the RGB image?
  • ThePissartist #11 2 years ago

    Though I might be mistaking megabit and megabyte
  • smirny #12 2 years ago

    I guess this all goes to reinforce the fact that kinect could itself outlive the 360. If the Xbox next gen wipes the slate clean on hardware restrictions from the current gen, the high priced investment now is going to provide real value down the line, something that I'm pretty sure none of the other peripherals are really capable of.
  • kangarootoo #13 2 years ago

    Interesting as this is, I'm not sure it is quite as profound as is being suggested.

    In any chain of devices that are sending data to each other, one of the parts of the chain will be the slowest, and consequently affect the data available (per unit of Time) that is available to the other devices in the chain (this is kind of obvious, right).

    What we have here is a chain in which the communciation bus between devices is the slowest link.... which is really not that uncommon.

    I guess what we also have in the mix is that all the USB ports on a 360 seem to be on one controller, meaning they can't all run at full pelt. But its a console, and part of any console's design is to be cost effective. Using a controller per port would be pricey (remember the PS3 dropping from 4 ports to 2 - it wasn't the ports themselves that cost money, it was the second controller behind them) so its naturally not going to be built that way.


    All that is going on here is someone looked at a bunch of technologies combined, and said "if you changed that bit there for something else, the whole system would be better". Well, of course.
  • kangarootoo #14 2 years ago

    I'm being very self indulgent here.

    In truth, I only barely know wtf I am going on about. Consider it to be thinking out loud :)
    Edited by kangarootoo at 22/11/10 @ 15:10
  • ThePissartist #15 2 years ago

    Does Kinect Adventures/Sports use the mic? They definitely use the depth and RGB cameras.

    The Hub uses all of them, so theoretically the two cameras (not including the projector - of course) at their lower resolution take up the total 16MB/s. What is either of the above games dropped use of the mic, doesn't that leave more bandwidth for the cameras?

    Didn't the Kinect only gain the mics recently? Maybe MS decided that the higher res cameras were worth losing in favour of the mic(s). Surely, they could theoretically allows devs to choose which parts to make use of?

    It's possible that future games do a lot of than we're getting now.
    Edited by ThePissartist at 22/11/10 @ 15:24
  • ThePissartist #16 2 years ago

    Does resolution have an effect on response time?

    Sorry if I'm taking over this thread, I find the device really interesting. :)
  • Dave52 #17 2 years ago

    Does this affect the new Xbox Slims (that were redesigned with Kinect in mind), or just the older Xboxes..?

  • nolim #18 2 years ago

    Well that explains all the fuss M$ make about plugging Kinect into the 360s rear usb port! Looks like plugging it into one of the ports on the HDDVD drive will be fine provided the hddvd isnt being used at the same time, is plugged into the rear port itself and nothing else is plugged into the other Usb slot on the back of the drive..
  • drumbaby #19 2 years ago

    Seems to make sense if Microsoft didn't really think too hard about Kinect's final specs when they were designing the Xbox 360.
  • udat #20 2 years ago

    They should do a LightPeak version :)

    edit: can't type...
    Edited by udat at 22/11/10 @ 16:08
  • kangarootoo #21 2 years ago

    @Dave52

    I've heard that the slim 360 supplies power as well, so you don't need a separate PSU. Not sure about transfer speed, but I think it is kind of academic. A dev can't make a game that only works on the new slim system, so any advantages it might bring in this area probably can't be realised.
  • kangarootoo #22 2 years ago

    @ThePissartist

    My guess would be that camera systems like this work by analysing pixels (I'm sure groups are analysed, and all sorts of other clover codey stuff, but essentially pixels are "looked at";), and so the more pixels the more data there is to analyse. You would think therefore that a higher res image would introduce more lag. However, there is probably some clever stuff you can do such as only analysing every 3rd pixel, and then zooming in only on the areas that show change, which might mean that a higher res source is no more work to process.
  • ThePissartist #23 2 years ago

    @tangarootoo

    That theory suggests analysing 3x the pixels may equate to as much as 3x the lag? Though I guess it depends on the speed of the internal processor. Analysing a lower res image may still take the same time as a higher res image.

    Reading every 3rd pixel is sort of what it's doing now with the lower res.
  • kangarootoo #24 2 years ago

    @ThePissartist

    "That theory suggests analysing 3x the pixels may equate to as much as 3x the lag?"

    I wouldn't be so bold as to suggest the degree by which the work would be increased. I think words like "more" and "less" are about as much as my experience will allow me to use with any kind of authority.


    "Reading every 3rd pixel is sort of what it's doing now with the lower res."

    If you only did one pass, that might be true. But you missed out the bit in my theory that said you zoom in for a closer look. If you start with a 320x240 source, you can't get any more detail than it provides. However, if you start with a 640x480 image, scan every 3rd pixel for changes (movement in other words), and then do a second pass analysing the pixels that surround ONLY the ones that showed change in the first pass, you get the same potential level of detail without wasting time analysing parts of the image that have already been identified as "still".
    Edited by kangarootoo at 22/11/10 @ 17:46
  • kangarootoo #25 2 years ago

    @trebell

    Absolutely, though if part of the issue is to do with throttling the bandwidth of a USB port (as the analysis suggests), that is something that could be different on a customisable platform such as a PC, as the vendor could simply demand that the peripheral have its own USB controller (impractical as that may be).
    Edited by kangarootoo at 22/11/10 @ 17:56
  • ThePissartist #26 2 years ago

    So you're only looking at the person within the image and analysing those pixels? I guess that'd be less than 320x240 anyway.

    Serve my curiosity; what is your experience?
  • MrChuckles #27 2 years ago

    The Kinect doesn't have a decent processor of it's own, so the xbox has to process all the data internally, so the games can't be as hi powered as non Kinect games. That's the biggest way that Kinect & Xbox are holding each other back.

    I expect the xbox is limited to 320x240 to limit the processing power the xbox loses to the camera.

    First prototypes of Kinect did have a better processor, but it was too expensive to release as an add on so it was removed.
  • sanctusmortis #28 2 years ago

    So, 3rd gen Xbox with USB 3.0 and a full decent res Kinect 2.0 then?
  • Retroid #29 2 years ago

    Oh Digital Foundry, always so biased towards 360.

    ...

    HANG ON A MINUTE :D
  • Bilstar #30 2 years ago

    That was actually pretty interesting. Good read.
  • womble #31 2 years ago

    @Retroid "Oh Digital Foundry, always so biased towards 360. "

    Tee hee. You're terrible, Muriel.
  • orangpelupa #32 2 years ago

    @article about USB in xbox slow
    if i remember correctly, xbox 360 USB 1 and USB 2 (2 ports on front) yes its slow.
    But the USB 0 (the USB port on back, near Ethernet) is a lot faster.


    @article about the "high resolution".

    it make me thinking what IF, kinect sensor (camera) is actually really high resolution. Maybe more than the current 640x480pixels.

    But for some reasons, MS decided to stream :
    RGB @ 640x480 @ 30fps and
    Depth @ 640x480 @30fps

    but also for some reason, MS decided to downscale the depth from 640x480@30fps to 320x240@30fps in "game mode".

    this make me wonder, what if kineck kamera is both high-res (maybe 1.3MP or more?), also what if the depth also capable projecting higher resolution "Dots" (higher dpi).

    so when Kinect is fully hacked, installed custom firmware (or something), PC can stream ONLY the depth sensor. Thus USB 2.0 bandwidth will still sufficient for maybe about 1MP depth image.

    i wish MS if really support the "hacks/mods", MS release the real tech spec of kinect, etc.
    give some web page containing knowlege base or something, etc
    Edited by orangpelupa at 23/11/10 @ 06:43
  • kangarootoo #33 2 years ago

    @ThePissartist

    I'm actually a designer, but I've quite a technical background from other jobs. I can't write code well enough to do it for a living (translation: these days, I can't write functional code at all), but I understand a lot of the logic behind it.


    "So you're only looking at the person within the image and analysing those pixels?"

    Pretty much yeah. I think that initially its just about "which pixels have changed and which haven't", but eventually (assuming that your furniture stays still and you move about) it will boil down to "we know the player is in this area, so we'll only bother looking at that area in detai, unless we see drastic changes during our first pass" as you say. This will be done over and over of course, every frame perhaps.

    I think face recognition in particular works this way. You scan the whole image very quickly, dismiss the bits you know for sure aren't a face, and then go in for a "closer look" at the bits to that MIGHT be a face, to see for sure. I guess you could do this several times, increasing the detail but reducing the area examined with each successive pass.


    Analogy (perhaps patronisingly simple - apologies). You are looking out of a tall building next to a field. You've been asked to identify cows. You have a pair of binoculars. So you look down at the field using your naked eyes, and you are able to see black dots on a green field. You dismiss the green bits ('cos you know cows aren't green), but you note the position of the black dots. You then use your binoculars to look at the black dots, to see which of them are cows and which are something else.

    By this method you can find cows in a very large area without wasting too much time. If you had no binoculars (the 320x240 situation) you would likely miss cows, or mis-identify things as cows that were not. If you were ONLY allowed to use your binoculars (the single pass 640x480 situation) you would find all the cows, but it would take ages as you would also be looking in detail at lots of empty grass.
  • Judas_Priest #34 2 years ago

    Well, it's not really the 360's rendering or processing hardware holding kinect back, just the peripheral connection. Considering that maybe they should have decided for a dedicated port for kinect in the new 360's, while that of course would have prevented older consoles without the special hardware from using it, whiny dev teams would have nothing to complain about..... I guess Microsoft made the right decision in the end.
  • orangpelupa #35 2 years ago

    hmm.. if MS allow dev to completely disable RGB camera feed, and use the USB bandwidth to only deliver sound stream (mic) and depth (640x480 or higher if the hardware is really high res). Seems will it will improve accuracy significantly. and maybe reduce lag
  • Shakey_Jake33 #36 2 years ago

    It'll be interesting to see if the official Microsoft PC drivers, when they release them, will support the full resolution.
  • EGoode #37 2 years ago

    kinect is holding back kinect. A 'cool idea' too far ahead of it's time and released to a population of people who can't all live in palace sized buildings with perfect lighting and energy levels day and night.

    I hope if they insist on motion gaming next gen, MS will make something more akin to Wii/Move to go with Xbox720 - THAT is the only way forward for things like FPS and immersion/feedback. Waving around in thin air while looking at a static display (with no controller) is retarded. If it had a HMD full stereoscopic and wide FOV *THEN* they may be onto something (personally I'd still feel better in a gyroscope ala lawnmower man than making dangerous wankerish movements in my everyday living space).

    This is one heck of an ill thought out product!
  • Robborboy #38 1 year ago

    @EGoode palace sized rooms? Funny, my Kinect unit functions perfectly in my small room mounted six foot from the floor looking down.