Methods, devices, media, and products for generation of distributed tile data
By using a distributed tile data generation scheme, the location data is distributed to multiple computing nodes for processing by leveraging the concurrent computing power of the computing cluster. This solves the problem of insufficient computing power on a single machine and enables efficient and fast tile generation and visualization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- BEIJING ZHANGDIANZISHI TECH CO LTD
- Filing Date
- 2025-06-25
- Publication Date
- 2026-04-17
AI Technical Summary
Existing technologies suffer from insufficient single-machine computing power when processing massive amounts of geographic location data. Data sampling or reducing processing cycles can lead to reduced tile detail, low response efficiency when switching regions, and the consumption of computing resources for indexing and data compression.
A distributed tile data generation scheme is adopted, which uses the concurrent computing power of the computing cluster to distribute location data to multiple computing nodes for parallel processing, generating multiple tile identifiers and pixels. This eliminates the need for data sampling or region delineation, avoids the need to build indexes, and achieves efficient tile generation of full data.
It improves the visualization efficiency of geographic location data, reduces computing resource consumption, enhances response speed and generation efficiency, and supports rapid rendering of large-scale geographic information systems.
Smart Images

Figure CN120371931B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to the field of computers, and more particularly to methods, apparatus, media, and products for generating distributed tile data. Background Technology
[0002] Providing map-related services requires processing massive amounts of geographic location data. How to efficiently visualize this vast and complex geographic location data to provide strong support for related applications or services has become a direction that urgently needs in-depth exploration. Summary of the Invention
[0003] Embodiments of this disclosure provide a scheme for generating distributed tile data.
[0004] In a first aspect of this disclosure, a method for generating distributed tile data is provided. The method includes, based on the concurrent computing power of a computing cluster, assigning multiple location point information of location data to corresponding computing nodes of the computing cluster to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information, and multiple pixels for the multiple location point information, wherein at least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. The method further includes, based on the multiple first tile identifiers, assigning multiple pixels to corresponding computing nodes of the computing cluster to concurrently generate multiple first tiles with the multiple first tile identifiers, each first tile being uniquely identified by its corresponding first tile identifier, wherein at least two pixels corresponding to the same first tile identifier are assigned to the same computing node of the computing cluster.
[0005] In a second aspect of this disclosure, an apparatus for generating distributed tile data is provided. The apparatus includes a concurrent tile identifier determination module, which, based on the concurrent computing power of a computing cluster, assigns multiple location point information of location data to corresponding computing nodes of the computing cluster to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information, and multiple pixels for the multiple location point information. At least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. The apparatus also includes a concurrent tile generation module, configured to assign multiple pixels to corresponding computing nodes of the computing cluster based on the multiple first tile identifiers to concurrently generate multiple first tiles with the multiple first tile identifiers. Each first tile is uniquely identified by its corresponding first tile identifier, and at least two pixels corresponding to the same first tile identifier are assigned to the same computing node of the computing cluster.
[0006] According to a third aspect of this disclosure, an electronic device is provided. The computing device includes a processor and a memory storing instructions that, when executed by the processor, cause the processor to perform a method or process according to embodiments of this disclosure.
[0007] According to a fourth aspect of this disclosure, a machine-readable storage medium is provided. The machine-readable storage medium stores machine-executable instructions that, when executed by a processor, cause the processor to perform a method or process according to embodiments of this disclosure.
[0008] In a fifth aspect of this disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-transitory computer-readable storage medium and includes a computer program that, when executed by a processor of a computer, causes the processor to perform a method or process according to an embodiment of this disclosure.
[0009] Please note that the Summary of the Invention is provided to introduce a series of concepts in a simplified form, which will be further described below in the Detailed Description. The Summary of the Invention is not intended to identify key or essential features of the disclosure, nor is it intended to limit the scope of the disclosure. Attached Figure Description
[0010] The above and other objects, features, and advantages of this disclosure will become clearer through a more detailed description of the embodiments thereof in conjunction with the accompanying drawings, in which:
[0011] Figure 1 This is a schematic diagram illustrating an example environment in which methods and / or processes according to embodiments of the present disclosure may be implemented;
[0012] Figure 2 This is a schematic illustration of a flowchart of a method for generating tiles according to an embodiment of the present disclosure;
[0013] Figure 3 A schematic diagram illustrating a schematic example of preprocessing for location data according to an embodiment of the present disclosure is shown.
[0014] Figure 4 A schematic diagram illustrating a schematic example of distributed tile generation for an underlying tile according to an embodiment of the present disclosure is shown.
[0015] Figure 5A A schematic illustration shows a schematic example of distributed tile generation for high-level tiles according to an embodiment of the present disclosure;
[0016] Figure 5B The diagram schematically illustrates a schematic example of reusing child tiles in the generation of a parent tile according to an embodiment of the present disclosure;
[0017] Figure 6 This is a schematic illustration of an apparatus for generating tiles according to an embodiment of the present disclosure;
[0018] Figure 7 These are schematic block diagrams that can be used to implement example devices according to embodiments of the present disclosure.
[0019] In all the accompanying drawings, the same or similar reference numerals usually indicate the same or similar elements. Detailed Implementation
[0020] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0021] In the description of embodiments of this disclosure, the term "comprising" and its variations should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects unless explicitly indicated otherwise.
[0022] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0023] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0024] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0025] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0026] As mentioned above, it is necessary to explore how to efficiently visualize massive and complex geographic location data. More specifically, when the amount of geographic location data is in the millions, tens of millions, or even hundreds of millions, quickly viewing the geographic location data of a certain region, a certain city, or even a larger area results in extremely high real-time rendering costs.
[0027] Some related solutions may employ tile services. For example, tiles can be generated for geographic locations, and corresponding services can be built based on these tiles to be accessed in conjunction with Geographic Information System (GIS) tools or front-end frameworks. A key challenge is how to quickly process massive amounts of location data and generate images corresponding to all the data. This directly impacts the timeliness of users viewing location information.
[0028] In terms of tile generation in related schemes, a single-machine processing approach is generally adopted. This is mainly achieved by reducing the magnitude of the data to be processed, thereby meeting the requirements of single-machine processing. For example, the amount of data to be processed can be reduced by data sampling or reducing the processing cycle, and thermal information of corresponding small areas can be generated by defining a specific region. In addition, spatial indexing can be established to quickly obtain data at a specified location, and data compression can be performed during data processing to reduce the amount of data transmitted.
[0029] However, current solutions still have many shortcomings and face challenges in practical applications. First, the computing power provided by a single machine is insufficient when dealing with so much location data. Second, data sampling or reducing processing cycles may reduce the detail of the generated tiles, leading to rendering degradation (e.g., poor visualization). Delineating small areas limits the user experience of applications or services, such as reduced response efficiency during area switching and mismatch of user needs. Furthermore, building spatial indexes and performing data compression may consume additional computing resources.
[0030] To address at least some of the aforementioned and other potential problems, embodiments of this disclosure propose a scheme for generating distributed tile data. The scheme includes, based on the concurrent computing power of a computing cluster, assigning multiple location point information of location data to corresponding computing nodes of the computing cluster to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information, and multiple pixels for the multiple location point information, wherein at least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. The scheme also includes, based on the multiple first tile identifiers, assigning multiple pixels to corresponding computing nodes of the computing cluster to concurrently generate multiple first tiles with multiple first tile identifiers, each first tile being uniquely identified by its corresponding first tile identifier, wherein at least two pixels corresponding to the same first tile identifier are assigned to the same computing node of the computing cluster.
[0031] According to the distributed tile data generation scheme of the embodiments of this disclosure, a distributed tile data generation strategy is provided that eliminates the need for sampling or filtering of location data and pre-delineation of small areas, enabling tile generation for both full-volume and full-range data. Furthermore, this distributed tile data generation strategy eliminates the need for indexing and enables distributed processing at different granularities such as location points (information) and tiles, thereby improving generation efficiency.
[0032] The following is for reference. Figures 1 to 7 The present disclosure is provided to illustrate its basic principles and several exemplary implementations. It should be understood that these exemplary embodiments are given only to enable those skilled in the art to better understand and implement the embodiments of the present disclosure, and are not intended to limit the scope of the disclosure in any way.
[0033] Figure 1 This is a schematic diagram illustrating an example environment 100 in which methods and / or processes according to embodiments of the present disclosure may be implemented. Figure 1 As shown, example environment 100 includes a database 110 for location data, and computing nodes (e.g., Figure 1 The diagram schematically illustrates a computing cluster 120 (computing nodes 121 and 122 deployed locally and computing node 123 deployed in the cloud), and tile data 130. Figure 1 The implementation environment according to embodiments of this disclosure is illustrated using a hybrid computing cluster as an example. It should be understood that this is merely exemplary and not a limiting description; other types of computing clusters are also feasible, such as on-premises or cloud-based computing clusters. A suitable computing environment configuration can be selected based on actual usage requirements.
[0034] exist Figure 1Only a limited set of components and exemplary connections are shown in this document. It should be understood that this is for illustrative and diagrammatic purposes and is not intended to limit the scope of this disclosure, and other different components may exist. For example, display components and input components, etc. By way of example and not limitation, the generated tile data 130 and the heat map built based thereon may be displayed on the display component, and the requirements for tile generation (e.g., scale bar, etc.) may be entered through the input component.
[0035] According to embodiments of this disclosure, a database 110 for location data can be configured to store raw location data, including information on multiple location points (e.g., location point information represented by spherical coordinates). The location data can originate from different data sources and can be organized into data tables within the database based on predetermined attributes (e.g., time, region, etc.). Examples of data tables may include, but are not limited to, Hive tables.
[0036] According to embodiments of this disclosure, by assigning multiple location point information from location data in database 110 to multiple computing nodes (e.g., computing nodes 121-123) in computing cluster 120, distributed tile data generation according to embodiments of this disclosure can be performed to generate tile data 130 hierarchically from bottom to top. The generation of distributed tile data according to embodiments of this disclosure will be further described in detail below.
[0037] The computing cluster 120 can be a system with computing capabilities. As described above, the computing cluster 120 can include multiple computing nodes. According to embodiments of this disclosure, the computing cluster 120 and its computing nodes can concurrently execute corresponding tile generation processes at the granularity of location points (information), or concurrently execute corresponding tile generation processes at the granularity of tiles at each level. Figure 1 In this example, and not in a limiting manner, compute nodes 121 and 122 can be deployed locally on the user's machine, and compute node 123 can be deployed in the cloud. The cloud can refer to a service model built on cloud or distributed technologies. In this model, compute resources, storage resources, etc., are coupled together via a network to form a schedulable and scalable collection of resources. At least a portion of these resources can be dynamically accessed or allocated to complete tasks without requiring local ownership or management of these physical resources.
[0038] A compute node can refer to a unit of computing resource and can be a device with computing capabilities. For example, a compute node can be configured with processors (such as a central processing unit (CPU)) and memory, and can also be equipped with dedicated accelerators (such as a graphics processing unit (GPU)). In addition, data can be stored and maintained on compute nodes.
[0039] like Figure 1 As exemplarily shown, local computing nodes 121 and 122 and cloud computing node 123 can be interconnected via a network to communicate. Figure 1 Taking the architecture in the example environment 100 as an example, compute nodes 121-123 can communicate via a network to achieve, for example, data synchronization or sharing between nodes. Multiple compute nodes in example environment 100 can process computational tasks in parallel. Furthermore, the multiple compute nodes in example environment 100 can have redundancy and fault tolerance mechanisms to ensure the reliable execution of computational tasks. When a compute node fails, the system can automatically migrate the job to other normally functioning nodes, ensuring task continuity and availability.
[0040] Examples of computing nodes may include supercomputers, personal computers, laptops, in-vehicle computing devices, mobile devices (such as smartphones, tablets, etc.), wearable electronic devices, multimedia devices, personal digital assistants (PDAs), or combinations thereof. It should be understood that, with reference to… Figure 1 The computing nodes described are merely exemplary and not limiting; for example, other numbers and types of computing nodes may also be used.
[0041] The above combination Figure 1 The following describes an example environment in which methods and / or processes according to embodiments of this disclosure may be implemented, in conjunction with... Figure 2 This document describes a method 200 for generating distributed tile data according to embodiments of the present disclosure. This method 200 not only effectively visualizes large-scale geographic location information but also exhibits excellent computational performance and response speed, providing valuable data support for planning, management, and analysis.
[0042] Figure 2 This is a schematic flowchart illustrating a method 200 for generating distributed tile data according to an embodiment of the present disclosure. At 210, based on the concurrent computing power of the computing cluster, multiple location point information of location data is assigned to corresponding computing nodes of the computing cluster to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information and multiple pixels for the multiple location point information, wherein at least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. The process of determining the first tile identifier for each location point information at 210 is intended to depend on the available parallel computing power of the computing cluster (e.g., the total amount of concurrency that can be requested) rather than on the correlation in location relationships, and to distribute the location point information to computing nodes in a distributed manner, hoping that the multiple location point information is distributed as much as possible across different computing nodes to enhance the parallelism of the processing and minimize the number of iteration rounds.
[0043] In some embodiments, each location point in the plurality of location point information may have a corresponding latitude and longitude value, and its first tile identifier can be determined based on the latitude and longitude value of each location point, for example, by calculating the underlying tile coordinates. Furthermore, for each location point in the plurality of location point information, the pixel corresponding to that location point information can be determined based on its latitude and longitude value, for example, by calculating pixel coordinates. It should be understood that the determination of the first tile identifier and the pixel is not limited to latitude and longitude values, but can also be based on relative positional relationships, etc.
[0044] The first tile identifier can uniquely identify the corresponding first tile, which can be the bottom-level tile or the base tile in the tile pyramid. One first tile identifier can correspond to several location point information (e.g., due to rounding during the calculation of the first tile identifier), meaning the first tile identifier calculated for several location point information can be the same, and the location point information can correspond one-to-one with pixels. Thus, one first tile identifier can correspond to several pixels. According to embodiments of this disclosure, when determining the first tile identifier for each location point information, based on the computing power of the corresponding computing node, the first dispersion of multiple location point information being distributed and assigned to different computing nodes for computation is maximized. Dispersion here can refer to the degree to which processing is distributed across different computing nodes in the cluster. The processing at 210 is distributed at the granularity of location point information. In the process of determining the first tile identifier for each location point information, based on the available parallel computing power of the computing cluster, multiple location point information is distributed as much as possible across different computing nodes for processing. For example, multiple location points associated with a given location are not assigned to the same computing node. Instead, considering the current total available concurrency, the location point information can be assigned to computing nodes that have not reached their bandwidth bottleneck. If the overall computing power for the corresponding node is sufficient, these multiple location points can be assigned to different computing nodes to ensure that several location points corresponding to the same first tile identifier are processed within the same concurrent task. In other words, several location points corresponding to the same first tile identifier do not need to be assigned to the same computing node to sequentially determine the first tile identifier and pixels; instead, they are expected to be assigned to different computing nodes to concurrently determine the first tile identifier and pixels. It should be understood that at position 210, the first tile has not yet been generated; however, the first tile identifier of the first tile to be generated and the pixels included in the first tile to be generated have been determined.
[0045] At point 220, based on multiple first tile identifiers, multiple pixels are assigned to corresponding computing nodes in the computing cluster to concurrently generate multiple first tiles with multiple first tile identifiers. Each first tile is uniquely identified by its corresponding first tile identifier, wherein at least two pixels corresponding to the same first tile identifier are assigned to the same computing node in the computing cluster. As mentioned above, a first tile identifier can correspond to several pixels, which can be organized into a pixel matrix, for example, based on pixel identifiers (e.g., pixel coordinates). The process at point 220 for generating first tiles for each first tile identifier aims to assign pixels corresponding to the same first tile identifier to the same computing node as much as possible based on the first tile identifier. It is expected that each computing node generates the corresponding first tile in parallel, thereby reducing the potential data interaction overhead between computing nodes and improving parallel processing efficiency.
[0046] According to embodiments of this disclosure, when generating a first tile for each first tile identifier, based on the computing power of a single computing node in the corresponding computing node, the second dispersion of pixels corresponding to the same first tile identifier being distributed and assigned to different computing nodes for computation is minimized. For example, considering the first tile identifier, pixels corresponding to the same first tile identifier can be assigned to the same computing node as much as possible, rather than being distributed to different computing nodes. In this way, a first tile can be generated on a single computing node. When the unit computing power of a single computing node is sufficient, all pixels corresponding to the same first tile identifier are assigned to the same computing node.
[0047] The processing at point 220 is distributed at the granularity of the first tile. For multiple pixel matrices identified by multiple first tile identifiers, it is desirable that a single pixel matrix be assigned to the same computing node, while multiple pixel matrices are distributed across different computing nodes as much as possible to generate the corresponding first tiles in parallel at each computing node. In some embodiments, for a first tile identifier, the corresponding computing node calculates the depth value information of each pixel for the assigned pixel matrix and generates the corresponding image information (i.e., the corresponding first tile) based on this. The generated multiple first tiles can be stored in an object storage platform. In some embodiments, the multiple first tiles can be customized. For example, color can indicate the direction of movement, or brightness can indicate the location heat. In addition, transparency can be used to indicate other metrics.
[0048] The method 200 for generating distributed tile data according to embodiments of this disclosure provides a distributed tile data generation strategy that eliminates the need for sampling or filtering location data, as well as pre-delineating small areas, enabling tile generation for both full-volume and full-range data. Furthermore, this distributed tile data generation strategy eliminates the need for indexing and allows for distributed processing at different granularities such as location points (information) and tiles, thereby improving generation efficiency.
[0049] Figure 3 A schematic illustration is provided for a schematic example 300 of location data processing according to an embodiment of the present disclosure. It should be understood that, in Figure 3 In the illustrative example 300, for ease of explanation and illustration, the processing of location data is illustrated with a limited number of location point information and calculation nodes, and the connection relationships between the various location point information are also illustrative rather than restrictive.
[0050] According to embodiments of this disclosure, multiple location point information can be assigned to corresponding computing nodes of the computing cluster based on the concurrent computing power of the computing cluster to concurrently generate corresponding line objects. At least two location point information corresponding to the same trajectory can be assigned to different computing nodes of the computing cluster. In the interpolation processing according to embodiments of this disclosure, location point information can be distributed to computing nodes based on the available parallel computing power of the computing cluster, rather than on the correlation of positional relationships, thereby improving the parallelism of the interpolation processing. Figure 3 As shown, location point information 312 can be assigned to computing node 301, location point information 314 can be assigned to computing node 302, and location point information 316 can be assigned to computing node 301, as... Figure 3 As shown by the dashed arrows, the process of assigning location point information to computing nodes for processing at the granularity of the information can be random or dependent on the total available concurrency, regardless of whether the location point information is trajectory-related. This reduces the resistance to distributed execution. For example, within a concurrent task on computing node 301, location point information 312 and location point information 322 to be processed belong to different trajectories. In other words, given an unlimited total available concurrency, it is desirable to distribute multiple location point information pieces as widely as possible across different computing nodes to concurrently execute location data processing according to embodiments of this disclosure.
[0051] After concurrent processing by each computing node, it can be determined which location points belong to the same trajectory, and these location points belonging to the same trajectory can be connected into a line object. For example, after processing by computing nodes 301 and 302 respectively, it can be determined that location points 312, 314, and 316 correspond to the same trajectory, and therefore, location points 312, 314, and 316 can be connected into a line object, such as... Figure 1 As shown in the diagram, the generation of line objects for position point information 322, position point information 324, and position point information 326 is the same or similar.
[0052] According to embodiments of this disclosure, for example, in response to the fact that the marking frequency for location point information does not meet the marking frequency threshold, interpolation processing can be performed on the corresponding line object to obtain interpolation points. Taking a line-to-line pair of location point information 322, 324, and 326 as an example, assuming that the recording time of location point information 322 is significantly different from the recording time of location 324, and / or the recording time of location point information 324 is significantly different from the recording time of location 326, interpolation processing can be performed on the line-to-line pair to obtain interpolation points 323 and 325, thereby compensating for the insufficient location point information caused by the low marking frequency. It should be understood that the processing of location data according to embodiments of this disclosure is not limited to the above-described line object generation and interpolation point acquisition, and may also include, for example, filtering of illegal locations.
[0053] Figure 4 A schematic example 400 of generating distributed tile data for an underlying tile according to an embodiment of the present disclosure is illustrated. Figure 4 As shown, location data can be read from a database 410 for location data, wherein the read location data can be organized into a location data Hive table 415. In some embodiments, before performing processing on the location data (e.g., line object generation), multiple location point information can be divided into multiple location point information groups with regional characteristics (e.g., ... Figure 4 The diagram schematically illustrates 420 location point information groups (1-3), where each of the multiple location point information groups can correspond to a corresponding area. Distributed tile data generation according to embodiments of this disclosure can be performed on one or more of these groups, such as processing to determine a first tile identifier for each location point information, processing to generate a first tile for each first tile identifier, etc. This can facilitate the generation of thermal information for a predetermined area.
[0054] At 430, feature calculations for tile generation will be explained. First, at 431, processing of the location data can be performed before feature calculation, such as combining the above... Figure 3 The description covers line object generation and interpolation point acquisition. It should be understood that, like position point information, each interpolation point, once generated, will participate in subsequent processing.
[0055] At 432, based on the concurrent computing power of the computing cluster, each of the multiple location points (information) and interpolation points can be assigned to the corresponding computing node of the computing cluster to calculate the first tile identifier corresponding to that point. This first tile identifier can correspond to several points, and the first tile identifier (e.g., bottom-layer tile coordinates) can uniquely identify the first tile to be generated (i.e., the bottom-layer tile). At 433, based on the concurrent computing power of the computing cluster, each of the multiple location points (information) and interpolation points can be assigned to the corresponding computing node of the computing cluster to determine the pixel corresponding to that point. In some embodiments, determining the pixel may include calculating the pixel identifier (e.g., pixel coordinates) for each pixel at 433, calculating the depth value for each pixel at 434, and determining which pixel group the pixel belongs to. As mentioned above, one first tile identifier can correspond to several pixels. In some embodiments, multiple pixels for multiple location point information and interpolation points can be aggregated into multiple pixel groups (e.g., ...) based on multiple first tile identifiers. Figure 4 The pixel groups 1-3 at position 440 are schematically shown, where several pixels within each pixel group can be organized into a pixel matrix based on their corresponding pixel identifiers.
[0056] At 450, an example implementation for tile generation will be described. According to an embodiment of this disclosure, at 451, the maximum luminance value of each pixel matrix in a plurality of pixel matrices for a plurality of first tile identifiers can be determined. As shown above, luminance can be used to indicate location heat. A higher location heat for a location point information corresponds to a higher luminance value for the corresponding pixel. Thus, determining the maximum luminance value for each pixel matrix is equivalent to determining the luminance value of the brightest pixel in that pixel matrix.
[0057] At position 452, normalization is performed on multiple pixel matrices based on the maximum brightness value of each pixel matrix. This is to effectively represent the brightness differences between pixel matrices and avoid situations where large differences in location temperature are not reflected in the brightness representation. At position 453, based on the normalized multiple pixel matrices, a first image, i.e., the first tile, corresponding to each pixel matrix is generated. Furthermore, at position 454, the generated first tile can be stored as an object.
[0058] Figure 5A A schematic example 500A of the generation of distributed tile data for high-level tiles according to an embodiment of the present disclosure is illustrated. It should be understood that, in Figure 5A In the description of 500A, the first tile refers to the bottom tile, the second tile refers to the higher-level tile that is one level above the first tile, and the third tile refers to the higher-level tile that is one level above the second tile.
[0059] At point 510, the calculation of the parent tile (i.e., the higher-level tile) identifier and an example implementation based on its aggregated corresponding child tiles (i.e., the tiles one level lower than the higher-level tile in the tile pyramid) are explained. At point 511, the corresponding second tile identifier is calculated for each of the multiple first tile identifiers. As mentioned above, the calculation of the first tile identifier can be based on the latitude and longitude values of the location point information. This calculation process is complex and involves many operations, such as exponentiation, rounding, trigonometric functions, and logarithmic operations. After obtaining the first tile identifier, it can be reused. By performing simple operations (e.g., division and rounding) on the first tile identifier, the corresponding second tile identifier can be calculated.
[0060] Figure 5B A schematic illustration is provided for a schematic example 500B of reusing child tiles in the generation of a parent tile according to an embodiment of the present disclosure. Figure 5B As shown in the figure, (1) shows an example of a sub-tile, with the sub-tile identifiers of the four sub-tiles being (x, y), (x+1, y), (x, y+1), and (x+1, y+1), where each sub-tile is 256. 256 pixels.
[0061] According to embodiments of this disclosure, child tile identifiers can be reused. For example, a simple division and rounding of the child tile identifier yields the corresponding parent tile identifier. Figure 5B As shown in (2), the parent tile identifier corresponding to the four child tile identifiers mentioned above can be (x / 2, y / 2). It should be understood that... Figure 5B The example calculations in this document are not intended to limit the scope of this disclosure; for example, other parameters may be used, and multiplication is also possible. Furthermore, images of sub-tiles may be reused, for example... Figure 5B The parent tile (x / 2, y / 2) shown at (2) is 512. The parent image of 512 pixels consists of child tiles (x, y), (x+1, y), (x, y+1), and (x+1, y+1) of 256 pixels. The 256-pixel sub-images are aggregated (e.g., stitched together). Then, image compression can be performed on the parent image at (2) to obtain the 256-pixel parent tile at (3). A compressed parent image of 256 pixels. This eliminates the need to calculate pixel depth values and generate tile images based on them, as was done with the underlying tiles previously, thus saving computational resources and improving generation efficiency.
[0062] Back Figure 5AAt point 511, based on the concurrent computing power of the computing cluster, multiple first tile identifiers can be assigned to corresponding computing nodes of the computing cluster to concurrently determine multiple second tile identifiers corresponding to at least some of the multiple first tile identifiers, wherein at least two first tile identifiers corresponding to the same second tile identifier are assigned to different computing nodes of the computing cluster. According to embodiments of this disclosure, when determining a second tile identifier for each first tile identifier, a third dispersion is maximized based on the computing power of the corresponding computing node, ensuring that multiple first tile identifiers are distributed and assigned to different computing nodes for computation. The process of determining a second tile identifier for each first tile identifier is distributed at the granularity of the first tile (identifier). During the process, based on the current total available concurrency, multiple first tile identifiers are distributed as much as possible across different computing nodes to enhance the parallelism of the second tile identifier determination process and minimize the number of iteration rounds. If the overall computing power of the corresponding computing nodes is sufficient, the multiple first tile identifiers are assigned to different computing nodes so that several first tile identifiers corresponding to the same second tile identifier can be processed in the same concurrent task.
[0063] Furthermore, at position 512, corresponding first tiles can be aggregated based on the second tile identifier. One second tile identifier can correspond to several first tile identifiers, and each first tile identifier corresponds to a specific first tile; that is, one second tile identifier can correspond to several first tiles. Several first tiles with the same second tile identifier can be aggregated into a first tile group (e.g., ...). Figure 5A The first tile group (1-3) at position 520 is schematically shown. This first tile group can be a collection of pixels of the plurality of first tiles.
[0064] At 530, an example implementation of parent tile (i.e., high-level tile) generation will be described. At 531, the computed multiple second tile identifiers are obtained. According to embodiments of this disclosure, based on multiple second tile identifiers, multiple first tiles can be assigned to corresponding compute nodes in a compute cluster to concurrently generate multiple second tiles by aggregating the corresponding first tiles for each second tile identifier. The second tiles are at a higher level than the first tiles, and each second tile is uniquely identified by its corresponding second tile identifier, wherein at least two first tiles corresponding to the same second tile identifier are assigned to the same compute node in the compute cluster. According to embodiments of this disclosure, when generating second tiles for each second tile identifier, a fourth dispersion is minimized based on the computing power of a single compute node in the corresponding compute node, where first tiles corresponding to the same second tile identifier are distributedly assigned to different compute nodes for computation. The generation of second tiles for each second tile identifier is distributed at the second tile level. During processing, the second tile identifier is considered, and efforts are made to assign first tiles corresponding to the same second tile identifier to the same computing node, rather than distributing them across different nodes. This allows each computing node to generate the corresponding second tiles in parallel, reducing potential data interaction overhead between computing nodes and improving parallel processing efficiency. When the computing power of a single computing node is sufficient, all first tiles corresponding to the same second tile identifier are assigned to the same computing node.
[0065] At point 532, for each of the multiple first tiles corresponding to each second tile identifier (e.g., for each of the multiple first tile groups), a second image (i.e., a parent image) corresponding to each second tile identifier can be obtained by aggregating the corresponding first tiles (i.e., child tiles). At point 533, a second tile (i.e., a parent tile) is generated by performing image compression on the obtained second image. According to embodiments of this disclosure, the acquisition of the second image and the generation of the second tile can be assigned to different computing nodes of the computing cluster at the granularity of the second tile for concurrent execution.
[0066] It should be understood that, Figure 5AProcesses 510-530 in 500A can be iterative loops to generate a tile pyramid including tiles at various levels from bottom to top. For example, after determining multiple second tile identifiers and generating multiple second tiles, based on the concurrent computing power of the computing cluster, the multiple second tile identifiers can be assigned to corresponding computing nodes of the computing cluster to concurrently determine multiple third tile identifiers corresponding to at least some of the multiple second tile identifiers, wherein at least two second tile identifiers corresponding to the same third tile identifier are assigned to different computing nodes of the computing cluster. According to embodiments of this disclosure, when determining a third tile identifier for each second tile identifier, the dispersion of multiple second tile identifiers being distributed and assigned to different computing nodes for computation is maximized based on the computing power of the corresponding computing node. When the overall computing power of the corresponding computing node is sufficient, the multiple second tile identifiers are assigned to different computing nodes respectively.
[0067] Then, based on multiple third tile identifiers, multiple second tiles can be assigned to corresponding computing nodes in the computing cluster to concurrently generate multiple third tiles by aggregating the corresponding second tiles for each third tile identifier. The third tiles are at a higher level than the second tiles, and each third tile is uniquely identified by its corresponding third tile identifier. At least two second tiles corresponding to the same third tile identifier are assigned to the same computing node in the computing cluster. According to embodiments of this disclosure, when generating third tiles for each third tile identifier, the dispersion of second tiles corresponding to the same third tile identifier being distributed and assigned to different computing nodes for computation is minimized based on the computing power of a single computing node within that corresponding computing node. If the unit computing power of a single computing node is sufficient, all second tiles corresponding to the same third tile identifier are assigned to the same computing node. This iterative loop can continue until, for example, the generation of tiles at a level corresponding to a predetermined scale is completed. The process ends at 540.
[0068] According to embodiments of this disclosure, a heat map can be constructed based on the bottom layer tiles, or a heat map can be constructed based on the bottom layer tiles and the top layer tiles. The constructed heat map can be a directional heat map, for example, one color represents one direction, or it can be a non-directional heat map, and point heat maps are also possible.
[0069] Figure 6 This is a schematic diagram illustrating an apparatus 600 for generating distributed tile data according to an embodiment of the present disclosure. The apparatus 600 may include multiple units or modules for performing steps or actions in the methods or processes discussed above. Figure 6As shown, the device 600 includes a concurrent tile identifier determination module 610, configured to assign multiple location point information of location data to corresponding computing nodes of the computing cluster based on the concurrent computing power of the computing cluster, so as to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information and multiple pixels for the multiple location point information, wherein at least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. The device 600 also includes a concurrent tile generation module 620, configured to assign multiple pixels to corresponding computing nodes of the computing cluster based on the multiple first tile identifiers, so as to concurrently generate multiple first tiles with multiple first tile identifiers, each first tile being uniquely identified by a corresponding first tile identifier, wherein at least two pixels corresponding to the same first tile identifier are assigned to the same computing node of the computing cluster.
[0070] In some embodiments, the concurrent tile identifier determination module 610 may be further configured to, when determining a first tile identifier for each location point information, maximize a first dispersion in which the multiple location point information is distributed and assigned to different computing nodes for computation based on the computing power of the corresponding computing node.
[0071] In some embodiments, the concurrent tile generation module 620 may be further configured to, when generating a first tile for each first tile identifier, minimize a second dispersion in which pixels corresponding to the same first tile identifier are distributedly assigned to different computing nodes for computation, based on the computing power of a single computing node in the corresponding computing node.
[0072] In some embodiments, the apparatus 600 may further include: a second concurrent tile identifier determination module, configured to assign the plurality of first tile identifiers to the corresponding computing nodes of the computing cluster based on the concurrent computing power of the computing cluster, to concurrently determine second tile identifiers corresponding to at least some of the first tile identifiers among the plurality of first tile identifiers, wherein at least two first tile identifiers corresponding to the same second tile identifier are assigned to different computing nodes of the computing cluster; and a second concurrent tile generation module, configured to assign the plurality of first tiles to the corresponding computing nodes of the computing cluster based on the second tile identifier, to concurrently generate a plurality of second tiles by aggregating the corresponding first tiles for each second tile identifier, wherein the second tiles are at a higher level than the first tiles, and each second tile is uniquely identified by a corresponding second tile identifier, wherein at least two first tiles corresponding to the same second tile identifier are assigned to the same computing node of the computing cluster.
[0073] In some embodiments, the second concurrent tile identifier determination module may be further configured to, when determining a second tile identifier for each first tile identifier, maximize a third dispersion based on the computing power of the corresponding computing node, such that the plurality of first tile identifiers are distributed and assigned to different computing nodes for computation.
[0074] In some embodiments, the second concurrent tile generation module may be further configured to, when generating a second tile for each second tile identifier, minimize a fourth dispersion based on the computing power of a single computing node in the respective computing node, such that the first tile corresponding to the same second tile identifier is distributedly assigned to different computing nodes for computation.
[0075] In some embodiments, the concurrent tile identifier determination module 610 may be further configured to: determine a pixel identifier for each of the plurality of pixels; and aggregate the plurality of pixels into a plurality of pixel matrices based on the plurality of first tile identifiers and the pixel identifiers, wherein each pixel matrix corresponds to a corresponding first tile identifier.
[0076] In some embodiments, the concurrent tile generation module 620 may be further configured to: determine the maximum brightness value of each pixel matrix in the plurality of pixel matrices; perform normalization processing on the plurality of pixel matrices based on the maximum brightness value of each pixel matrix; and generate a first image corresponding to each pixel matrix based on the normalized plurality of pixel matrices.
[0077] In some embodiments, the second concurrent tile generation module may be further configured to: obtain a second image corresponding to each second tile identifier by aggregating the corresponding first tiles; and generate the second tile by performing image compression on the second image.
[0078] In some embodiments, the apparatus 600 may further include: a line object generation module configured to assign the plurality of location point information to corresponding computing nodes of the computing cluster based on the concurrent computing power of the computing cluster, so as to concurrently generate corresponding line objects, wherein at least two location point information corresponding to the same trajectory are assigned to different computing nodes of the computing cluster; and an interpolation module configured to obtain interpolation points by performing interpolation processing on the corresponding line objects.
[0079] Figure 7 A block diagram of an electronic device 700 according to certain embodiments of the present disclosure is shown. Device 700 may be the device or apparatus described in the embodiments of the present disclosure. Figure 7As shown, device 700 includes a central processing unit (CPU) and / or a graphics processing unit (GPU) 701, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 702 or loaded from storage unit 708 into random access memory (RAM) 703. Various programs and data required for the operation of device 700 can also be stored in RAM 703. CPU / GPU 701, ROM 702, and RAM 703 are interconnected via bus 704. Input / output (I / O) interface 705 is also connected to bus 704. Although not shown in... Figure 7 As shown, device 700 may also include a coprocessor.
[0080] Multiple components in device 700 are connected to I / O interface 705, including: input unit 706, such as keyboard, mouse, etc.; output unit 707, such as various types of monitors, speakers, etc.; storage unit 708, such as disk, optical disk, etc.; and communication unit 709, such as network card, modem, wireless transceiver, etc. Communication unit 709 allows device 700 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0081] The various methods or processes described above can be executed by CPU / GPU 701. For example, in some embodiments, the methods can be implemented as computer software programs tangibly contained in a machine-readable medium, such as storage unit 708. In some embodiments, part or all of the computer program can be loaded and / or installed on device 700 via ROM 702 and / or communication unit 709. When the computer program is loaded into RAM 703 and executed by CPU / GPU 701, one or more steps or actions in the methods or processes described above can be performed.
[0082] In some embodiments, the methods and processes described above can be implemented as a computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of this disclosure.
[0083] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination thereof. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0084] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, a local area network (LAN), a wide area network (WAN), and / or a wireless network, to an external computer or external storage device. The network may include copper cables, fiber optic cables, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0085] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages and conventional procedural programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to execute the computer-readable program instructions, thereby implementing various aspects of this disclosure.
[0086] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0087] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0088] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of devices, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0089] Various embodiments of the present disclosure have been described above. These descriptions are exemplary and not exhaustive, and are not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements to the technology in the market, or to enable others skilled in the art to understand the various embodiments disclosed herein.
Claims
1. A method for generating distributed tile data, comprising: Based on the concurrent computing power of the computing cluster, multiple location point information of the location data is assigned to the corresponding computing nodes of the computing cluster to concurrently determine multiple first tile identifiers corresponding to at least some of the multiple location point information and multiple pixels for the multiple location point information, wherein at least two location point information corresponding to the same first tile identifier are assigned to different computing nodes of the computing cluster. as well as Based on the plurality of first tile identifiers, the plurality of pixels are assigned to the corresponding computing nodes of the computing cluster to concurrently generate a plurality of first tiles with the plurality of first tile identifiers. Each first tile is uniquely identified by its corresponding first tile identifier, wherein at least two pixels corresponding to the same first tile identifier are assigned to the same computing node of the computing cluster, and wherein assigning the plurality of pixels to the corresponding computing nodes of the computing cluster includes: minimizing a second dispersion of pixels corresponding to the same first tile identifier being distributed and assigned to different computing nodes for computation based on the computing power of a single computing node in the corresponding computing nodes.
2. The method according to claim 1, wherein assigning the plurality of location point information to the corresponding computing nodes of the computing cluster comprises: When determining the first tile identifier for each location point, the first dispersion of the multiple location point information being distributed and assigned to different computing nodes for computation is maximized based on the computing power of the corresponding computing node.
3. The method according to claim 1, further comprising: Based on the concurrent computing power of the computing cluster, the plurality of first tile identifiers are assigned to the corresponding computing nodes of the computing cluster to concurrently determine the second tile identifiers corresponding to at least some of the first tile identifiers among the plurality of first tile identifiers, wherein at least two first tile identifiers corresponding to the same second tile identifier are assigned to different computing nodes of the computing cluster. as well as Based on the second tile identifier, the plurality of first tiles are assigned to the corresponding computing nodes of the computing cluster to concurrently generate a plurality of second tiles by aggregating the corresponding first tiles for each second tile identifier. The second tiles are at a higher level than the first tiles, and each second tile is uniquely identified by its corresponding second tile identifier, wherein at least two first tiles corresponding to the same second tile identifier are assigned to the same computing node of the computing cluster.
4. The method of claim 3, wherein assigning the plurality of first tile identifiers to the corresponding computing nodes of the computing cluster comprises: When determining the second tile identifier for each first tile identifier, a third dispersion is maximized based on the computing power of the corresponding computing node, in which the multiple first tile identifiers are distributed and assigned to different computing nodes for computation.
5. The method of claim 3, wherein assigning the plurality of first tiles to the corresponding computing nodes of the computing cluster comprises: When generating the second tile for each second tile identifier, the fourth dispersion is minimized based on the computing power of a single computing node in the corresponding computing node, where the first tile corresponding to the same second tile identifier is distributed and assigned to different computing nodes for computation.
6. The method of claim 1, wherein determining the plurality of pixels comprises: Determine the pixel identifier for each of the plurality of pixels; as well as Based on the plurality of first tile identifiers and the pixel identifiers, the plurality of pixels are aggregated into a plurality of pixel matrices, each pixel matrix corresponding to a corresponding first tile identifier.
7. The method of claim 6, wherein generating the plurality of first tiles comprises: Determine the maximum brightness value of each pixel matrix in the plurality of pixel matrices; Based on the maximum brightness value of each pixel matrix, normalization processing is performed on the plurality of pixel matrices; as well as Based on the normalized plurality of pixel matrices, a first image corresponding to each pixel matrix is generated.
8. The method of claim 3, wherein generating the plurality of second tiles comprises: By aggregating the corresponding first tiles, a second image corresponding to each second tile identifier is obtained; as well as The second tile is generated by performing image compression on the second image.
9. The method according to claim 1, further comprising: Based on the concurrent computing power of the computing cluster, the multiple location point information is assigned to corresponding computing nodes of the computing cluster to concurrently generate corresponding line objects, wherein at least two location point information corresponding to the same trajectory are assigned to different computing nodes of the computing cluster; and Interpolation points are obtained by performing interpolation on the corresponding line objects.
10. An electronic device, comprising: processor; as well as A memory coupled to the processor, the memory storing instructions that, when executed by the processor, cause the processor to perform the method according to any one of claims 1 to 9.
11. A machine-readable storage medium having stored thereon machine-executable instructions, wherein the machine-executable instructions, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 9.
12. A computer program product comprising a computer program that, when executed by a processor of a computer, causes the processor to perform the method according to any one of claims 1 to 9.
Citation Information
Patent Citations
Method and apparatus for processing video frame pixel data with artificial intelligence video frame segmentation
CN116405708A
Spatial data processing method and device based on administrative division, equipment and medium
CN117271536A