Large-scale image processing using mass parallelization techniques
First Claim
1. A method comprising:
- dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery;
for each tile;
extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, andtagging each neighboring mask fragment with a tag identifying the tile; and
storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment;
generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile;
wherein the method steps are performed by one or more computers.
3 Assignments
0 Petitions
Accused Products
Abstract
Assets of raw geo-located imagery can be divided into tiles and coverage masks can be generated for each tile. For each tile, fragments of pixels from coverage masks of neighboring tiles can be extracted and tagged. The fragments can be sorted and stored in a data structure so that fragments having the same tag can be grouped together in the data structure. The fragments can be used to feather the coverage mask of the tile to produce a blend mask. Multi-resolution imagery and mask pyramids can be generated by extracting fragments from tiles and minified (e.g., down-sampled). The minified fragments can be tagged (e.g., by ancestor tile name), sorted and stored in a data structure, so that fragments having like tags can be stored together in the data structure. The fragments can be assembled into fully minified tiles for each level in the pyramid. Input tiles in a first projection are re-projected into a second projection using techniques that minimize distortion in the re-projected imagery.
-
Citations
36 Claims
-
1. A method comprising:
-
dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; and storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile; wherein the method steps are performed by one or more computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage device having stored thereon instructions which, when executed by a computer, cause the computer to perform operations comprising:
-
dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system for generating a blend mask, comprising:
-
means for dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; means for performing on each tile operations including; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; means for storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and means for generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile.
-
-
20. A system, comprising:
-
one or more computers; and a computer readable storage device storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising; dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method of generating a blend mask, comprising:
-
dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask for a first tile, including; assembling a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile, applying a feathering filter to pixels in the first coverage mask and the first mask fragments to provide a blend mask, and extracting the blend mask from the feathered coverage mask; wherein the method steps are performed by one or more computers. - View Dependent Claims (30)
-
-
31. A system, comprising:
-
one or more computers; and a computer-readable storage device storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising; dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask for a first tile, including; assembling a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile into an image, applying a feathering filter to pixels in the first coverage mask and the first mask fragments to provide a blend mask; and extracting the blend mask from the feathered coverage mask. - View Dependent Claims (32)
-
-
33. A system comprising:
-
one or more computers; and a computer-readable storage device storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising; dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask associated with a first tile from a first coverage mask and the one or more first mask fragments having tags identifying the first tile, the generating including assembling the first coverage mask and the one or more first mask fragments and applying a feathering filter to pixels in the first coverage mask and the one or more first mask fragments s to generate a blend mask. - View Dependent Claims (34)
-
-
35. A method of generating a blend mask, comprising:
-
dividing imagery into tiles of pixels, each tile having at least one neighboring tile and each tile having an associated coverage mask, each coverage mask identifying all pixels in the tile that contain imagery and all pixels in the tile that lack imagery; for each tile; extracting a respective neighboring mask fragment from the coverage mask associated with each neighboring tile, and tagging each neighboring mask fragment with a tag identifying the tile; storing the tiles and the one or more mask fragments on multiple storage subsystems, using the tags to store each respective mask fragment on the same storage subsystem as the tile identified by the tag of the respective mask fragment; and generating a blend mask for a first tile from a first coverage mask associated with the first tile and one or more first mask fragments having tags identifying the first tile, the generating including applying a feathering filter to the pixels in the first coverage mask and the first mask fragments having the same tags, wherein the same tags correspond to the identifier for the first tile; and wherein the method steps are performed by one or more computers. - View Dependent Claims (36)
-
Specification