The HTC One M8: Depth Discernment Without The Multi-Shot Wait
Several weeks ago, a previous news post published on the Alliance website forecasted (based on plentiful information leaks) that HTC was set to shortly unveil a new premium smartphone with a dual rear camera arrangement. That prognostication indeed came to pass, with the March 25 unveiling of the 2014 edition of the HTC One. For brevity, I'll refer to this model as "M8", reflective of its pre-introduction internal code name; the premier 2013 edition of the HTC One was "M7". Perhaps obviously, for purposes of assessing the handset's embedded vision capabilities, the cameras' specifications are of most interest, along with the robustness of the system's various processing resources.
Last things first; whereas "M7" contained Qualcomm's 1.7 GHz APQ8064AB i.e. the Snapdragon 600, "M8" is equipped with Qualcomm's latest 2.26 GHz (2.45 GHz in Asian markets) MSM8974ABv3 Snapdragon 801, just unveiled at February's Mobile World Congress show. The quad-core CPU is a Krait 400 generation processor, versus a quad-core Krait 300 in "M7". Similarly, the GPU core evolves from the 450 MHz Adreno 320 to the 578 MHz Adreno 330, and the DSP core advances from the 500 MHz QDSP6V4 to the 600 Mhz QDSP6V5A. And the integrated ISP (image signal processor) makes similar advancements in clock speed and feature set.
Now about those cameras...let's first look at the front-mounted sensor. On "M8" it's 5 Mpixels in resolution, comprised of 2.0 μm pixels, and implemented using a BSI (backside illumination) architecture for increased pixel fill factor. On "M7", it was 2.1 Mpixels in resolution. While the increased resolution's appeal for "selfie" photographers is predictable (and, alas, probably also apt), embedded vision applications will likely also benefit from it; improved facial analysis algorithms, for example, along with finer granularity gesture control techniques.
While you might expect "M8's" two rear-mounted image sensors to be of equivalent resolution, in a conventional stereo array setup, this actually isn't the case. The primary sensor is 4 Mpixels in resolution, identical to the one in "M7" (and yes, lower in resolution than "M8's" front sensor). And the secondary sensor, which HTC simplistically describes as being present to capture "depth of field" information which is subsequently embedded within the image file's metadata, is the same 2.1 Mpixel sensor (with 1.4 μm pixels) which "M7" used to construct the front camera. The above image, from iFixit's "M8" teardown, shows the two-sensor assembly.
How can you derive accurate depth map data from a single conventional (i.e. not time-of-flight or structured light) image sensor? You can't, I suspected; instead, I surmised that the primary 4 Mpixel rear image sensor found use not only in capturing conventional 2D still and video images but also as a partner for the secondary 2.1 Mpixel sensor in a stereo depth discernment approach. I ran my hypothesis past Goksel Dedeoglu, Founder and Lab Director of Alliance member company PercepTonic (and former embedded vision R&D manager at Texas Instruments), and he concurred:
Yes, very much like you suspected, one could use the 4 Mpixel and 2 Mpixel cameras together, running a stereo vision algorithm to infer the depth information. The separation of the cameras is telling; too; it's not really for long-distance depth measurements, but for shorter ranges, i.e. for figuring out foreground and background objects, most likely.
"M8's" depth analysis approach provides an interesting contrast both to the technique employed by Lytro's cameras and that advocated by companies like Qualcomm and LG. The "M8" dual-lens scheme doesn't require an uncommon plenoptic image sensor and associated algorithms, but it doesn't (at least so far) seem to deliver Lytro-like fine-grained depth discernment. Conversely, Qualcomm's technique requires only a conventional single image sensor-plus-lens, but involves sequential capture of multiple images at multiple focus-point settings. Granted, this multi-capture process can take place quite rapidly, especially if the intermediary images are temporarily stored to system RAM. Nonetheless, any inter-image camera and/or subject motion must be subsequently compensated for, with consequent quality impacts.
Curiously, and presumably at least in part as a cost-cutting move (although HTC also claims that the second rear sensor ended up taking up too much room), the company also stripped out OIS (optical image stabilization) from the "M7" design in developing the "M8" successor. More generally, although "M8" reviews generally conclude that it's near (if not at) the top of the Android smartphone heap, there's also consistently stated disappointment with the lack of rear primary camera advancement from the "M7" foundation. HTC's longstanding claim that large "UltraPixels" are more important than high pixel counts, so say the reviewers, doesn't definitively "hold water", either standalone or in comparison to competitive handsets from other suppliers.
For more information, including examples of the various depth-related special effects which the "M8" is capable of (blurred backgrounds, shading, cartoon and sketch simulations, parallax, props, etc), check out the following reviews: