Seam-based reduction and expansion of images using partial solution matrix dependent on dynamic programming access pattern
First Claim
1. A system comprising:
- one or more processors; and
memory coupled to the one or more processors, the memory comprising instructions executable by the one or more processors to;
resize an image in one direction by seam carving along a lowest-cost seam of the image, discovery of the lowest-cost seam comprising;
identifying a first portion of the image, having a predetermined shape, for which a partial solution to a dynamic programming problem for finding the lowest energy values of the image can be solved independent of a partial solution to the dynamic programming problem for finding the lowest energy values of a second portion of the image, the second portion of the image having the predetermined shape and not overlapping the first portion of the image;
generating a partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and a partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image independently and concurrently on respective ones of the one or more processors; and
determining a solution to the dynamic programming problem for the image dependent at least in part on the partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and the partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer-readable storage media for resizing images using seam carving techniques may include generation of a partial solution matrix by at least partially isolating dependencies between sub-problems of a dynamic programming problem corresponding to its solution within different regions of an input image. The number and/or shape of the isolated (or partially isolated) sub-problems may be dependent on the access pattern used by a dynamic programming operation to identify seams in the input image. Multiple sub-problems may be processed independently and in parallel on respective processor core(s) or threads thereof to generate the partial solution matrix. The partial solution matrix may then be processed to identify one or more low-cost seams of the input image. 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.
87 Citations
29 Claims
-
1. A system comprising:
-
one or more processors; and memory coupled to the one or more processors, the memory comprising instructions executable by the one or more processors to; resize an image in one direction by seam carving along a lowest-cost seam of the image, discovery of the lowest-cost seam comprising; identifying a first portion of the image, having a predetermined shape, for which a partial solution to a dynamic programming problem for finding the lowest energy values of the image can be solved independent of a partial solution to the dynamic programming problem for finding the lowest energy values of a second portion of the image, the second portion of the image having the predetermined shape and not overlapping the first portion of the image; generating a partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and a partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image independently and concurrently on respective ones of the one or more processors; and determining a solution to the dynamic programming problem for the image dependent at least in part on the partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and the partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more tangible computer-readable storage media comprising multiple instructions stored thereon that responsive to execution by one or more processors, cause the one or more processors to:
resize an image in one direction by seam carving along a lowest-cost seam of the image, discovery of the lowest-cost seam comprising; identifying a first portion of the image, having a predetermined shape, for which a partial solution to a dynamic programming problem for finding the lowest energy values of the image can be solved independent of a partial solution to the dynamic programming problem for finding the lowest energy values of a second portion of the image, the second portion of the image having the predetermined shape and not overlapping the first portion of the image; generating a partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and a partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image independently and concurrently; and determining a solution to the dynamic programming problem for the image dependent at least in part on the partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and the partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
21. A computer-implemented method for resizing an image in one direction by seam carving along a lowest-cost seam of the image comprising:
-
identifying a first portion of the image, having a predetermined shape, for which a partial solution to a dynamic programming problem for finding the lowest energy values of the image can be solved independent of a partial solution to the dynamic programming problem for finding the lowest energy values of a second portion of the image, the second portion of the image having the predetermined shape and not overlapping the first portion of the image; generating a partial solution to the dynamic programming problem for the first portion of the image and a partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image independently and concurrently; and determining a solution to the dynamic programming problem for the image dependent at least in part on the partial solution to the dynamic programming problem for finding the lowest energy values of the first portion of the image and the partial solution to the dynamic programming problem for finding the lowest energy values of the second portion of the image. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
-
Specification