Subpixel-based image down-sampling
Systems, methods, and apparatus for sampling images using minimum mean square error subpixel-based down-sampling (MMSE-SD) are presented herein. A partition component can receive a first array of pixels, and divide the first array of pixels into two-dimensional (2-D) blocks of pixels. Further, a sampling component can diagonally down-sample subpixels of a block of the 2-D blocks, and generate a second array of pixels based on the down-sampled subpixels. The sampling component can alternately sample subpixels of adjacent pixels of the block in a diagonal direction, and generate the second array of pixels based on the subpixels. A reconstruction component can create a virtual image based on, at least in part, the second array of pixels. A MMSE-SD component can determine an optimal low resolution image based on, at least in part, respective color components of the virtual image and a high resolution image associated with the first array of pixels.
1. A method, comprising:
partitioning, by a system comprising a processing device, a two-dimensional (2-D) array of pixels into at least 3 pixel by at least 3 pixel blocks, wherein pixels of a block of the at least 3pixel by at least 3 pixel blocks comprise at least 3 subpixels;
alternately down-sampling selected subpixels of the pixels of the block in a diagonal direction; and
generating an image based on a result of the alternately sampling the selected subpixels.
2. The method of claim 1 , wherein the alternately down-sampling the selected subpixels comprises alternately selecting a red subpixel, a green subpixel, and a blue subpixel from consecutive pixels of the block in the diagonal direction.
3. The method of claim 1 , further comprising:
deriving, based on the image, a virtual image according to a size of another image associated with the 2-D array of pixels.
4. The method of claim 3 , wherein the generating the image comprises minimizing a mean square error between the virtual image and the other image.
5. The method of claim 1 , wherein the generating the image comprises determining at least one color component of a defined low resolution image associated with the result based on a block circulant matrix.
6. The method of claim 5 , wherein the determining the at least one color component includes determining the at least one color component based on a block circulant matrix of size MN×9MN including N×9N arrays of blocks that are block-tri-circulant.
7. A system comprising:
a memory to store instructions; and
a processor, coupled to the memory, that executes or facilitates execution of the instructions to at least:
receive a first array of pixels;
divide the first array of pixels into 3 or more pixel ×3 or more pixel blocks, wherein pixels of a block of the 3 or more pixel ×3 or more pixel blocks comprise at least 3subpixels;
alternately down-sample selected subpixels of the at least 3 subpixels of the pixels of the block in a diagonal direction; and
generate a second array of pixels based on the selected subpixels.
8. The system of claim 7 , wherein the processor further executes or facilitates the execution of the instructions to:
alternately sample a red subpixel, a green subpixel, and a blue subpixel of adjacent pixels of the block in the diagonal direction; and
generate the second array of pixels based on the red subpixel, the green subpixel, and the blue subpixel.
9. The system of claim 7 , wherein the processor further executes or facilitates the execution of the instructions to alternately select the selected subpixels in the diagonal direction.
10. The system of claim 7 , wherein the processor further executes or facilitates the execution of the instructions to create a virtual image based on the second array of pixels.
11. The system of claim 10 , wherein the processor further executes or facilitates the execution of the instructions to create the virtual image utilizing a directional weighted average of neighboring subpixels of the second array of pixels.
12. The system of claim 10 , wherein the processor further executes or facilitates the execution of the instructions to determine a first resolution image that satisfies a defined criterion based on respective color components of the virtual image and a second resolution image associated with the first array of pixels, wherein the second resolution image has a resolution higher than the first resolution image.
13. The system of claim 12 , wherein the processor further executes or facilitates the execution of the instructions to:
minimize a mean square error between the virtual image and the second resolution image; and
determine the first resolution image based on the first resolution image being determined to satisfy a condition with respect to the mean square error.
14. The system of claim 12 , wherein the processor further executes or facilitates the execution of the instructions to determine color components of the first resolution image according to a block circulant matrix.
15. The system of claim 14 , wherein the block circulant matrix is an MN×9MN matrix including N×9N arrays of blocks that are block-tri-circulant.
16. An apparatus, comprising:
means for dividing a first resolution image into at least 3 pixel × at least 3 pixel blocks, wherein pixels of a block of the at least 3 pixel × at least 3 pixel blocks comprise at least 3subpixels;
means for alternately selecting subpixels of the pixels of the block along a diagonal direction; and
means for creating a second resolution image based on the subpixels selected by the means for alternately selecting, wherein the first resolution image is defined to have a higher resolution than the second resolution image.
17. The apparatus of claim 16 , further comprising:
means for creating a virtual high resolution image using the second resolution image.
18. The apparatus of claim 17 , further comprising:
means for minimizing a mean square error between the first resolution image and the virtual image; and
means for determining another second resolution image based on an output of the means for minimizing the mean square error.
19. A computer readable storage device comprising computer-executable instructions that, in response to execution, cause a system comprising a processor to perform operations, comprising:
dividing a first resolution image into m pixel by m pixel blocks, wherein pixels of a block of the m pixel by m pixel blocks comprise n subpixels, wherein m and n are integers that are at least 3;
alternately selecting selected subpixels of the n subpixels of the pixels of the block along a diagonal direction; and
generating a second resolution image based on the selected subpixels, wherein the first resolution image is defined to have a higher resolution than the second resolution image.
20. The computer readable storage device of claim 19 , wherein the operations further comprise:
generating a virtual high resolution image using the second resolution image;
minimizing a mean square error between the first resolution image and the virtual high resolution image; and
determining another second resolution image based on an output of the minimizing the mean square error.