Large-scale image processing using mass parallelization techniques
First Claim
1. A computer-implemented method comprising:
- receiving a plurality of tiles of imagery, wherein each tile has a level;
generating, from each tile and using one or more computers, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times;
tagging each fragment with a tag identifying an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery;
storing the fragments on multiple storage subsystems, wherein all fragments having a same tag are stored on a same storage subsystem; and
generating, using one or more computers, imagery for an ancestor tile identified with a first tag using all the fragments that are tagged with the first tag.
2 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
18 Claims
-
1. A computer-implemented method comprising:
-
receiving a plurality of tiles of imagery, wherein each tile has a level; generating, from each tile and using one or more computers, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times; tagging each fragment with a tag identifying an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery; storing the fragments on multiple storage subsystems, wherein all fragments having a same tag are stored on a same storage subsystem; and generating, using one or more computers, imagery for an ancestor tile identified with a first tag using all the fragments that are tagged with the first tag. - View Dependent Claims (2, 3, 4)
-
-
5. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:
-
receiving a plurality of tiles of imagery, wherein each tile has a level; generating, from each tile, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times; tagging each fragment with a tag identifying an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery; storing the fragments on multiple storage subsystems, wherein all fragments having a same tag are stored on a same storage subsystem; and generating imagery for an ancestor tile identified with a first tag using all the fragments that are tagged with the first tag. - View Dependent Claims (6)
-
-
7. A computer-implemented method, comprising:
-
receiving a plurality of tiles of imagery, wherein each tile has a level; generating, from each tile, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times; associating each fragment with an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery; storing the fragments on multiple storage subsystems, including storing each fragment associated with a particular ancestor tile on a same storage subsystem as all other fragments associated with the particular ancestor tile; and generating imagery for the particular ancestor tile using fragments associated with the particular ancestor tile. - View Dependent Claims (8, 9, 10)
-
-
11. A system comprising:
-
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising; receiving a plurality of tiles of imagery, wherein each tile has a level; generating, from each tile, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times; tagging each fragment with a tag identifying an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery; storing the fragments on multiple storage subsystems, wherein all fragments having a same tag are stored on a same storage subsystem; and generating imagery for an ancestor tile identified with a first tag using all the fragments that are tagged with the first tag. - View Dependent Claims (12, 13, 14)
-
-
15. A system comprising:
-
one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising; receiving a plurality of tiles of imagery, wherein each tile has a level; generating, from each tile, a respective fragment for each of one or more ancestor levels of a multi-resolution image pyramid, wherein each fragment is generated by minifying a tile one or more times; associating each fragment with an ancestor tile at an ancestor level in the pyramid to which the fragment will contribute imagery; storing the fragments on multiple storage subsystems, including storing each fragment associated with a particular ancestor tile on a same storage subsystem as all other fragments associated with the particular ancestor tile; and generating imagery for the particular ancestor tile using fragments associated with the particular ancestor tile. - View Dependent Claims (16, 17, 18)
-
Specification