Seam-based reduction and expansion of images using parallel processing of retargeting matrix strips
First Claim
1. A system, comprising:
- one or more processors; and
a memory coupled to the one or more processors and storing program instructions executable by the one or more processors to implement;
accessing a retargeting matrix for an image, wherein the retargeting matrix is a data structure comprising an indication of a cost order for each of a plurality of seams in the image, wherein a seam represents a monotonic path of pixels from one edge of the image to the opposite edge of the image, wherein the pixels included in each seam are dependent on the respective energy values of the pixels, and wherein in the retargeting matrix the indication of the cost order for each seam is associated with each of the pixels of the seam;
dividing the retargeting matrix into a plurality of sub-matrices, wherein each sub-matrix comprises the indication of the cost order for each seam of a subset of the plurality of seams in a respective portion of the image, and wherein each subset of the plurality of seams comprises two or more seams;
identifying, in each of two or more of the plurality of sub-matrices, any pixels associated with an indication of a lowest-cost seam in the image; and
removing or replicating the identified pixels in the image to produce a resized version of the image;
wherein said identifying and said removing or replicating are performed independently and concurrently on the one or more processors for each of the two or more of the plurality of sub-matrices.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-readable storage media for resizing images using seam carving techniques may access a pre-computed retargeting matrix for an input image that associates each pixel of the input image with a cost order of a horizontal and/or vertical seam of which the pixel is a part. The retargeting matrix may be divided into sub-matrices corresponding to horizontal or vertical strips of the image, in the direction of a desired seam carving operation, for parallel processing on multiple processors or threads thereof. The retargeting matrix and/or sub-matrices may be usable in performing one or more reduction or expansion operations on the input image without re-computation of the matrices between retargeting iterations. The methods may include pre-computing the retargeting matrix and/or sub-matrices. The methods may be implemented as stand-alone applications or as program instructions implementing components of a graphics application, executable by a CPU and/or GPU configured for parallel processing.
55 Citations
33 Claims
-
1. A system, comprising:
-
one or more processors; and a memory coupled to the one or more processors and storing program instructions executable by the one or more processors to implement; accessing a retargeting matrix for an image, wherein the retargeting matrix is a data structure comprising an indication of a cost order for each of a plurality of seams in the image, wherein a seam represents a monotonic path of pixels from one edge of the image to the opposite edge of the image, wherein the pixels included in each seam are dependent on the respective energy values of the pixels, and wherein in the retargeting matrix the indication of the cost order for each seam is associated with each of the pixels of the seam; dividing the retargeting matrix into a plurality of sub-matrices, wherein each sub-matrix comprises the indication of the cost order for each seam of a subset of the plurality of seams in a respective portion of the image, and wherein each subset of the plurality of seams comprises two or more seams; identifying, in each of two or more of the plurality of sub-matrices, any pixels associated with an indication of a lowest-cost seam in the image; and removing or replicating the identified pixels in the image to produce a resized version of the image; wherein said identifying and said removing or replicating are performed independently and concurrently on the one or more processors for each of the two or more of the plurality of sub-matrices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory, computer-readable storage medium, storing program instructions computer-executable to implement:
-
accessing a retargeting matrix for an image, wherein the retargeting matrix is a data structure comprising an indication of a cost order for each of a plurality of seams in the image, wherein a seam represents a monotonic path of pixels from one edge of the image to the opposite edge of the image, wherein the pixels included in each seam are dependent on the respective energy values of the pixels, and wherein in the retargeting matrix the indication of the cost order for each seam is associated with each of the pixels of the seam; dividing the retargeting matrix into a plurality of sub-matrices, wherein each sub-matrix comprises the indication of the cost order for each seam of a subset of the plurality of seams in a respective portion of the image, and wherein each subset of the plurality of seams comprises two or more seams; identifying, in each of two or more of the plurality of sub-matrices, any pixels associated with an indication of a lowest-cost seam in the image; and removing or replicating the identified pixels in the image to produce a resized version of the image; wherein said identifying and said removing or replicating are performed independently and concurrently for each of the two or more of the plurality of sub-matrices. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method, comprising:
performing, by one or more computers; accessing a retargeting matrix for an image, wherein the retargeting matrix is a data structure comprising an indication of a cost order for each of a plurality of seams in the image, wherein a seam represents a monotonic path of pixels from one edge of the image to the opposite edge of the image, wherein the pixels included in each seam are dependent on the respective energy values of the pixels, and wherein in the retargeting matrix the indication of the cost order for each seam is associated with each of the pixels of the seam; dividing the retargeting matrix into a plurality of sub-matrices, wherein each sub-matrix comprises the indication of the cost order for each seam of a subset of the plurality of seams in a respective portion of the image, and wherein each subset of the plurality of seams comprises two or more seams; identifying, in each of two or more of the plurality of sub-matrices, any pixels associated with an indication of a lowest-cost seam in the image; and removing or replicating the identified pixels in the image to produce a resized version of the image; wherein said identifying and said removing or replicating are performed independently and concurrently for each of the two or more of the plurality of sub-matrices. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
Specification