3 ms·
How's that? Can't you think of a pixel as the average value of it's subpixels (=blur)?
by timwe 11y ago
How's that? Can't you think of a pixel as the average value of it's subpixels (=blur)?
- zero_iq 11y agoIn focus-blurred images, the blur spreads the information about certain pixels throughout a region of the image. (Objects appear larger and fainter because of this when they are blurred. It's why you can shoot through a mesh-wire fence with a wide lens aperture, for example, and not see the fence.) This 'spread out' information is being used to reconstruct an approximation of the original image. However, when images are downscaled, all the information from 'subpixels' is kept within the reduced-resolution-image-pixel, and all replaced with a single RGB value. There is no 'spread out' information from those pixels. The 'blur' only applies to a region with sharp edges that exactly coincide with the unit of information. So, none of the data from the sub-pixels remain. To reconstruct the pixels that were within you have to essentially guess based on the context of the surrounding pixels.
- darkmighty 11y agoYou can! The problem in that case is it's not a convolution (blur) per se. Each pixel is an average of subpixels P(1)=S1(1)+S2(1)+...+Sn(1), P(2)=S1(2)+...+Sn(2) -- but as you can see there are no elements in common between pixels, which is the case with convolution. That is, in the deconvolution case there are as many variables as unknowns, whereas in the upscaling case you're creating unknowns out of a single variable. To estimate those subpixels then you're going to be forced to make additional assumptions; if you assume they are independent you would simply estimate Sk(j)=P(j). The traditional (easiest) assumption is that the image is somewhat "bandlimited" -- it does not have many variations (frequencies) faster than once per pixel (so no equal or faster than subpixel variation). If this were the case, you could reconstruct the subpixels perfectly [1], save for some noise. But this is not always the case (and fails spectacularly when you have edges), resulting in upscale blur. So simple linear upscaling algorithms by reaching a compromise between blur and edge enhancing. If you want to do better though, you have to use non-linear kernels and have good underlying models for your image content. A promising approach is to use machine learning/NNs: http://engineering.flipboard.com/2015/05/scaling-convnets/ http://engineering.flipboard.com/2015/05/scaling-convnets/ [1] https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampli...
- BurningFrog 11y agoIf the information that belongs in one pixel is spread out over 50x50 pixels, according a known mathematical formula, you can reconstruct it pretty well. If you just have one pixel with the average of what it covers, then that is all you have.
- stan_rogers 11y ago"Subpixels" are an artifact of the display type you're using. Although there may be individual colour components of an image pixel, they aren't restricted to a region of that pixel. And in most digital images - those made with a colour filter array, as opposed to a multi-chip, multi-shot, or Foveon-type sensor - the colours at each individual pixel are just an educated guess based on the surrounding pixel values; the RGB values are not captured separately, and attempting to increase resolution depending on which part of your screen is lit up by how much in order to render the colour that should appear at the corresponding pixel can only introduce artifacts. (If green is brighter than red in a particular pixel, it only means that green is brighter than red, not that the detail is laterally displaced.)