12
\$\begingroup\$

In the specs of a forthcoming smartphone camera (it was this one, just for the record), the camera is described as "12MP, 1080p".

But this doesn't make much sense. If the camera is 1080p, i.e. capable of FHD with a resolution of 1920x1080 pixels, then this is 2073600 pixels, or about 2MP — so much less than is technically achievable by a 12MP camera. And with 12MP this camera would be capable of shooting images way above UHD or 4k (which is around 4000x2000 pixels ~ 8MP) — so does 12MP means we can also shoot images with this high resolution?

So my question, how to read this contradictory spec of 12MP and 1080p, and if it does not mean that the highest resolution of an image is 1920x1080p, what then are the maximal dimensions?

\$\endgroup\$
4
  • 2
    \$\begingroup\$ There is no contradiction. They are diferent things. \$\endgroup\$
    – Rafael
    Commented Feb 1, 2017 at 14:58
  • 4
    \$\begingroup\$ Why did you ignore the "@30fps"? \$\endgroup\$
    – MonkeyZeus
    Commented Feb 1, 2017 at 16:46
  • \$\begingroup\$ @MonkeyZeus Just saw the big picture above. \$\endgroup\$
    – StefanH
    Commented Feb 1, 2017 at 17:07
  • \$\begingroup\$ @MonkeyZeus Because both "1920x1080 pixels" and "12MP" are statements about how big a photograph one can take, not statements about how many photographs. \$\endgroup\$ Commented Feb 2, 2017 at 13:44

3 Answers 3

28
\$\begingroup\$

The 12MP designation is usually used to refer to still photography while the 1080p designation refers to video.

The sensor has 12 megapixels - sometimes a little more which gets masked out. This means it takes 12 megapixel photos. Most likely this is a 4:3 aspect-ratio image which means about 4000x3000px.

Video is a stream of images, most commonly captured from 24 to 60 FPS. This means that for a 12 MP sensor it would output 12 MP (let's say 8-bit RAW for the sake of simplicity) which at 24 FPS is 12 x 24 = 288 MB/s. That is really a huge amount of data, and this is a minimum, as bit-depth is often 12-bit so 50% more.

There are several ways to work with this. One is to have a processor which can read that amount of data but not output it, in which case each 12 MP frame is scaled down to around 2 MP and then the processor encodes and writes it to memory card. This allows you to get a 1080p video which is as wide as a 12 MP image would be. This is the most common implementation.

Another implementation is to take a crop-region of the image. This is extremely common with 4K video since very few sensors and processor can handle that data at 30 FPS. The disadvantage of this is a diminished angle-of-view. How much depends on the sensor resolution; for 12 MP, it would be very minimal since 4000x3000 is not much wider than 3840x2160. For a 16 or 20 MP sensor, it can be as much as 1.3X. Note that HD and 4K video have a 16:9 aspect-ratio, so even on a 12 MP sensor, there will be a high amount of vertical cropping.

Some sensors have additional circuitry that makes them able to output binned pixels which then must be resampled down to the desired video resolution. So say a 12 MP sensor with 4000x3000px resolution could output 2000x1500 which would then be resampled or cropped to 1080p. This way one does not need such fast readout and a less powerful processor can be used.

CMOS sensors - which are the most common nowadays - can also perform random reading of pixels so they can subsample pixels from a large area of the sensor, skipping some in between. This results in certain artifacts, particularly moire.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ Another other implementation is subsampling, i.e. only read every nth pixel of every nth row. This is perfectly possible on CMOS sensors. I was using a camera that supports this for faster frame rates just this morning \$\endgroup\$
    – Chris H
    Commented Feb 1, 2017 at 16:06
  • 1
    \$\begingroup\$ @Chris - Added. \$\endgroup\$
    – Itai
    Commented Feb 1, 2017 at 16:18
  • 1
    \$\begingroup\$ This really isnt the correct answer. OP wasn't talking about video. \$\endgroup\$
    – enorl76
    Commented Feb 1, 2017 at 21:56
  • 7
    \$\begingroup\$ That's what the FHD and 1080p were referring do, even if he didn't know it. \$\endgroup\$
    – Itai
    Commented Feb 1, 2017 at 22:12
19
\$\begingroup\$

1080p refers to video: 1920×1080 progressive scan. The phone is capable of 12 Mpixel still images but only 1080p video. (This is fairly typical; it takes a lot more processing power to take video at a given resolution than to take a still at that resolution.)

\$\endgroup\$
3
\$\begingroup\$

The difference is that the video image is processed from still frames. The data transfer rate for full sensor resolution (i.e. 12 Mp) would be too high for normal use and there's no standard for such video. We barely make full use of 1080p video.

So the hardware in your phone does a specialized and very fast scaling of each frame of video down from the full 12Mp to the standard 1080p (or whatever you specified). That video frame is then encoded using the required codec (again typically by fast specialized hardware) to form a compact video stream.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.