WO2017046656A1 - Method and device for storing and compressing data of spatial objects - Google Patents

Method and device for storing and compressing data of spatial objects Download PDF

Info

Publication number
WO2017046656A1
WO2017046656A1 PCT/IB2016/050521 IB2016050521W WO2017046656A1 WO 2017046656 A1 WO2017046656 A1 WO 2017046656A1 IB 2016050521 W IB2016050521 W IB 2016050521W WO 2017046656 A1 WO2017046656 A1 WO 2017046656A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate
coordinates
spatial
type
spatial object
Prior art date
Application number
PCT/IB2016/050521
Other languages
French (fr)
Inventor
Anton Vasilyevich KORZUNOV
Sergey Sergeevich KONSTANTINOV
Original Assignee
Yandex Europe Ag
Yandex Llc
Yandex Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yandex Europe Ag, Yandex Llc, Yandex Inc. filed Critical Yandex Europe Ag
Publication of WO2017046656A1 publication Critical patent/WO2017046656A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects

Definitions

  • the present solution relates to storing spatial objects in general and specifically to a method and a device for storing and compressing data of spatial objects.
  • implementations of the present technology provide a method of storing spatial objects; the method is executable at a computing device.
  • the method includes: receiving a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a record of at least the first object and the second object by indicating combined coordinates of at least the first type and the second type; storing the formed record at the computing device.
  • the coordinates can be represented by sets of at least one of bits and bytes.
  • indicating combined coordinates may include sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
  • indicating combined coordinates may include sequential indicating one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
  • forming records by indicating combined coordinates of spatial object's coordinates is performed; forming includes: determining a number of changes of at least one bit and byte of coordinates of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern , wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
  • the formed records of at least the first spatial object and the second spatial object can be compressed using at least one frequency compression algorithm.
  • the at least one frequency compression algorithm comprises: Huffman algorithm, LZ algorithm or a combination thereof.
  • coordinates the coordinates are transformed, such that to decrease informational entropy can be performed.
  • the first type coordinates and the second type coordinates are of a single coordinate type.
  • the present technology describes a method for compressing data of spatial objects; the method is performed at a computing device.
  • the method includes retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type; determining a common part of the combined coordinates of at least the first spatial object and the second spatial object; determining a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; and
  • the coordinates can be represented by sets of at least one bits and bytes.
  • the indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
  • Indicating combined coordinates may include sequential indicating one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
  • forming combined coordinates can include: determining a number of changes of each one of a bit and a byte of coordinates; forming a coordinate pattern, wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
  • implementations of the present technology provide an electronic computing device; the electronic computing device includes a memory and at least one processor; the processor is connected to the memory; the processor is configured to: receive a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; form a combined coordinate of at least the first spatial object and the second spatial objects by indicating combined coordinates of at least the first type and the second type; determine a common part of the combined coordinates of at least the first spatial object and the second spatial object; determine a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determine a second distinct part of the
  • the first spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part
  • the second spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part; store the formed record of at least the first spatial object and the second spatial object.
  • implementations of the present technology provide a method of retrieving data of spatial objects, the method comprises: retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; uncombining the coordinates of the first type and the second type when the coordinates of the first spatial object and the second spatial object are retrieved.
  • the coordinates can be represented by sets of at least one of bits and bytes.
  • Indicating combined coordinates may include sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
  • the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
  • a coordinate pattern can be defined, and coordinates can be uncombined according to the pattern.
  • the record with the combined indication of coordinates is retrieved by decompressing data; the data has been previously compressed by at least one of: Huffman algorithm, LZ algorithm or a combination thereof.
  • the first type coordinates and the second type coordinates are of a single coordinate type.
  • first, second, third, etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns.
  • first server and “third server” is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the servers, nor is their use (by itself) intended to imply that any “second server” must necessarily exist in any given situation.
  • reference to a "first” element and a "second” element does not preclude the two elements from being the same actual real-world element.
  • a "first” server and a “second” server may be the same software and/or hardware, in other cases they may be different software and/or hardware.
  • a "server” is meant to include a computer program that is running on appropriate hardware and is capable of receiving requests (e.g. from client devices) over a network, and carrying out those requests, or causing those requests to be carried out.
  • the hardware may be implemented as one physical computer or one physical computer system, but neither is required to be the case with respect to the present technology.
  • the use of the expression a "server” is not intended to mean that every task (e.g. received instructions or requests) or any particular task will have been received, carried out, or caused to be carried out, by the same server (i.e.
  • a "client device” is meant to include any computer hardware that is capable of running software appropriate to the relevant task at hand.
  • the client devices may be implemented, inter alia, as personal computers (desktops, laptops, netbooks, etc.), smartphones, tablets, as well as network equipment (routers, switches, or gateways). It should be noted, that a device acting as a client device in the present context is not precluded from acting as a server to other client devices.
  • the use of the expressions "a client device” and "a communication device” does not preclude multiple devices being used in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.
  • a “database” is any structured collection of data, irrespective of its particular structure, the database management software, or the computer hardware on which the data is stored, implemented or otherwise rendered available for use.
  • a database may reside on the same hardware as the process that stores or makes use of the information stored in the database or it may reside on separate hardware, such as a dedicated server or plurality of servers.
  • the expression "information” includes information of any nature or kind whatsoever capable of be stored in a database.
  • information includes, inter alia, audiovisual works (images, movies, sound records, presentations etc.), data (location data, numerical data, etc.), text (opinions, comments, questions, messages, etc.), documents, spreadsheets, etc.
  • component is meant to include software (appropriate to a particular hardware context) that is both necessary and sufficient to achieve the specific function being referenced.
  • non-transitory computer- readable information storage medium (or “memory”) is intended to include volatile and nonvolatile memory of any nature and kind whatsoever, including RAM, ROM, disks (CD- ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc.
  • first, second, third, etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns.
  • first server and “third server” is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the servers, nor is their use (by itself) intended to imply that any “second server” must necessarily exist in any given situation.
  • reference to a "first” element and a "second” element does not preclude the two elements from being the same actual real-world element.
  • a "first” server and a “second” server may be the same software and/or hardware, in other cases they may be different software and/or hardware.
  • Implementations of the present technology each have at least one of the above- mentioned object and/or aspects. It should be understood that some aspects of the present disclosure that have resulted from attempting to attain the above-mentioned object may satisfy other objects not specifically recited herein.
  • Fig. 1 depicts a spatial object with coordinate axes and coordinates of points of the spatial object, the spatial object shown on a screen of a user device (a computer).
  • Fig. 2 depicts a schematic representation of a user interaction with the electronic device, a communication network, and a server in accordance with some non-limiting embodiments of the present technology.
  • Fig. 3 depicts a block diagram of an implementation of a method in accordance with some non-limiting embodiments of the present technology.
  • Fig. 4 depicts a block diagram of another implementation of a method in accordance with some non-limiting embodiments of the present technology.
  • Fig. depicts a schematic illustration of an electronic computing device that can be used by a user and/or a server for implementing embodiments of the present technology.
  • the present technology is directed to a method for storing spatial objects.
  • the spatial objects are characterized by a set of coordinates.
  • the spatial objects can also include other data, aside from the coordinates (such as, their spatial locations and the like). More specifically, in one implementation, data of a spatial object can include the data of its location and a characteristic of the spatial object.
  • a plurality of spatial objects can characterize a location of a cable in space; the cable being displayed on a screen of an electronic device.
  • the cable is a thin and long spatial unit, i.e. it is characterized by its length first and foremost, and not by its cross section.
  • This object can be represented as a set of spatial objects, i.e. a sequence of points this object consist of.
  • the terms "spatial object”, “object” and “point” can be used interchangeably without departing from the scope of the present technology.
  • Each spatial object is characterized by its location in space.
  • orthogonal coordinates x and y coordinates
  • a zero point radius and an angle for an angular coordinate system
  • non-orthogonal coordinates and other coordinates for example, cylindrical coordinates, spherical coordinates and the like
  • the present technology is not limited by a particular type of the coordinate system used for implementing embodiments thereof.
  • information about the spatial object can include an additional coordinate, for example, a mass; the mass being non-intermitting and gradually changing along the object.
  • the object in this example, the cable
  • the object can be set by three coordinates (two coordinates, which determine the location of the spatial object, and one coordinate, which determines a characteristic thereof, in this case the mass of the spatial object).
  • 3D space there can be four coordinates (three coordinates for determining the location of the spatial object and one coordinate for determining the characteristic).
  • 4D space (3D space and time)
  • a number of coordinates is not limited and is provided as a mere illustration.
  • the present technology can be used in case of N-dimensional space; where N stands for a natural number: 1, 2, 3, 4, 5, 6 and the like. Accordingly, the number of coordinates for the spatial object cannot be less than the number of dimensions of the N-dimensional space.
  • the spatial object includes its location data only and does not include additional characteristics (coordinates), as in the above-mentioned example of the cable, then the number of coordinates for the spatial object is the same as the number of dimensions of the N-dimensional space.
  • space is meant to include a mathematical term, i.e. the term “space” should be read to include a set, every element of which can be written as a number of coordinates, corresponding to a number of dimensions of the N-dimensional space.
  • a number of characteristics of a spatial object is not limited by the above mentioned example.
  • a mass, a color, a brightness and other qualities can be used as a characteristic of any given spatial object.
  • some qualities can be characterized by more than one coordinate; for example, a color can be characterized by three coordinates, using an intensity of mixing R, G, and B (red, green, blue) components.
  • R, G, and B red, green, blue
  • coordinate is meant to include a certain value (characteristic) of a spatial object.
  • a coordinate can indicate a spatial object location, but this is not required to be the case in every embodiment of the present technology; the coordinate can indicate an object characteristic, for example, its color, brightness, mass, time or another quality.
  • coordinates of a spatial object when coordinates of a spatial object are described; the term "coordinates”, as was mentioned above, should be understood to include coordinates, which indicate a spatial object location as well as coordinates, which indicate certain characteristics of an object.
  • Embodiments of the present technology have one or more advantages, more specifically, in describing and storing, by an electronic computing device, spatial units; the spatial units include spatial objects; the spatial units are unintermitting and gradually changing.
  • the spatial units include spatial objects; the spatial units are unintermitting and gradually changing.
  • embodiment of the present technology are not limited to those spatial objects / units that are unintermitting and gradually changing.
  • the present technology can be used for any spatial objects and any spatial unit.
  • coordinates of spatial objects along the x-axis can be thought of as "first type coordinates" and coordinates of spatial objects along the y-axis can be thought of as "second type coordinates".
  • the first type and the second type can be the same; the first type and the second type can be different.
  • the difference can lie in a coordinate length, for example, coordinates along the x-axis are written by five bits, and coordinates along the y-axis are written by three bits.
  • Fig. 1 a smooth continuous line 101 ABCDEFGH starting at a point A with coordinates (1, 1) and ending at a point H with coordinates (2, 3).
  • the line 101 can be depicted on a screen of an electronic computing device 100.
  • three bits will be required for x coordinates 102 and two bits for y coordinates 103.
  • coordinates of each point of the ABCDEFGH line 101 are represented.
  • a number of bits of the coordinate system (X,Y) is the same: 3 bits.
  • Table 1 coordinates of the objects represented in Fig. 1.
  • X coordinates and y coordinates, listed in the table, can be transformed by the electronic computing device 100 into a combined coordinate, the combined coordinate includes the information representative of both coordinates.
  • Combining can be an invertible function of coordinate transforming.
  • combining can be performed as recording first three bits of an x coordinate and recording first three bits of a y coordinate.
  • combining can be performed as sequential recording bits of x and y coordinates, i.e. firstly the first bit of the x coordinate, then the first bit of the y coordinate, then the second bit of the x coordinate, then the second bit of the y coordinate, then the third bit of the x coordinate, then the third bit of the y coordinate.
  • combining can be performed as recording first two bits of the x coordinate, then first two bits of the y coordinate, then the third bit of the x coordinate, then the third bit of the y coordinate.
  • bits is not a limitation of the present technology; bytes and other information units can be used, for example, for other number systems.
  • Some implementations of the present technology provide for combining by a mirror reflection of bits or bytes recording. For example, combining can be performed as recording the first bit of the x coordinate, them the third bit of the y coordinate, then the second bit of the x coordinate, then the second bit of the y coordinate, then the third bit of the x coordinate, then the first bit of the y coordinate.
  • Some implementations provide determining a probability (or frequency) of changing for each bit.
  • the bits After determining the probability (or frequency) of changing for each bit, the bits are recorded in a descending order of their probability (or frequency) of changing.
  • a number of changes for each particular bit or byte for a coordinate can be determined.
  • a pattern of coordinate combining is formed. For example, the first bite of the y coordinate is not changed in the example in Fig. 1, its value is always zero. Thus, this bit will be recorded in the first place.
  • the second bit of the y coordinate is changed once (when moving from the spatial object C to the spatial object D), so this bit will be recorded as a second bit.
  • the first bit of the x coordinate is changed two times (the first change occurs when moving from the spatial object C to the spatial object D; the second change occurs when moving from the spatial object E to the spatial object F), so this bit will recorded as a third bit.
  • the second bit of the x coordinate is changed three times (when moving from the spatial object A to the spatial object B; when moving from the spatial object C to the spatial object D; and when moving from the spatial object E to the spatial object F), so this bit will recorded as a fourth bit.
  • the third bit of the y coordinate is changed four times (when moving from the spatial object C to the spatial object D; when moving from the spatial object D to the spatial object E; when moving from the spatial object E to the spatial object F; and when moving from the spatial object G to the spatial object H), so this bit will recorded as a fifth bit.
  • the third bit of the x coordinate is changed five times (the biggest number of changes) (when moving from the spatial object A to the spatial object B; when moving from the spatial object B to the spatial object C; when moving from the spatial object C to the spatial object D; when moving from the spatial object D to the spatial object E; and when moving from the spatial object F to the spatial object G;), so this bit will recorded in the end, as a sixth bit (when looking from left to right).
  • Table 2 coordinates of objects and combined (according to one implementation) coordinates of objects, shown in Fig. 1.
  • a continuous function can be an example of gradual changing.
  • the continuous function may have some derivative discontinuities (i.e. dramatic discontinuous direction changes).
  • a discontinued spatial object for example, a chain
  • the chain includes chain links (each chain link is a continuous function, but links are not rigidly bound with each other); for the spatial object of chain type it can be said that the chain links are located in close proximity, i.e. characteristics of sequential elements (chain links) are changing slightly, relative to each other.
  • the first two bits (00) are common; for the second and the third point (B and C points) five bits
  • (00101) are common.
  • coordinates of point A can be used, and then the difference between points A and B can be indicated (i.e. an indicator to the common part of the combined coordinate of points A and B and the value 1010 can be used).
  • the indicator to the previous point B and the difference between points A and B i.e. an indicator to the point B and the value 1. Retrieving the common part of the combined coordinate and retrieving the distinct parts is described further in the present specification with the reference to Fig. 6.
  • Coordinate combining allows increasing the common part for spatial objects.
  • points of the line ABCDEFGH (101) in Fig. 1 have a small amount of bits for recording their coordinates, so the effect may not necessarily be very significant.
  • Values in Fig. 1 are limited to 1 - 5 along the x-axis and 1 - 3 along the y-axis.
  • coordinates (for example, geographical) are coded using a larger number of bits or bytes, for example, 8 bits. If 8 bits are used for recording both x and y coordinates, then the combined coordinate will have length of 16 bits, where the first 10 bits of the combined coordinate would be zeros and they would be replaced by a single indicator to the common part of the combined coordinate.
  • embodiments of the present technology can be applied to the above- mentioned line ABCDEFGH 101 depicted in Fig. 1.
  • the coordinates can be recorded as it is shown in the following table.
  • Table 3 coordinates of objects and combined (according to one implementation) coordinates of objects, shown in Fig. 1.
  • FIG. 2 depicts an example of a schematic representation of a system, in which embodiments of the present technology can be implemented.
  • a user 201 can communicate with a user device 203.
  • the user device 203 is not particularly limited and can be implemented, for example, as an AppleTM IPhoneTM 6+ mobile phone.
  • the user device 203 can be connected to a communication network 205; the communication network 205 can be implemented as Internet, intranet, local network, global network and other communication networks.
  • the communication network 205 is connected with a server 207.
  • the server 207 is not particularly limited. Connections between the user 201, the user device 203, the communication network 205 and the server 207 are shown as double arrows because the communication can be performed in both directions; however, in some implementations, the communication could be one-directional, more specifically, the user 201 could enter data of spatial objects without the ability (or need) to receive any information from the user device 203. This may be the case, for example, when the user 201 provisions a database (not depicted) hosted by the server 207, the provisioning being executed using the user device 203.
  • Fig. 3 depicts a block diagram of an implementation of a method implemented in accordance with embodiments of the present technology. The present method can be performed, for example, by the user device 203 depicted in Fig. 2.
  • receiving a plurality of spatial objects, intended to be stored, is performed; the plurality of spatial objects including two spatial objects: a first object, characterized by a first coordinate and a second coordinate; and a second object, characterized by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type.
  • coordinates of points A and B from Fig. 1 are retrieved.
  • step 302 in one implementation, forming a combined coordinate of the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type is performed.
  • a result of performing this step can be presented, for example, in the rightmost column of the above-mentioned Table 3.
  • step 302 determining a common part of the combined coordinates of the first spatial object and the second spatial object is performed. This step results in, for example, forming an indicator to the common part of points A and B shown in Fig. 1; more specifically, the common part of points A and B shown in Fig. 1 is 000, i.e. the first three bits of the combined coordinates of points A and B.
  • the method then proceeds to the step 304 of determining a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; and determining a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object.
  • a distinct part for a point A is 011 (the first distinct part); and a distinct part for a point B is 110 (the second distinct part).
  • Step 302 includes forming a record; the record indicating: (i) the first spatial object by indicating a reference (indicator) to the common part of the combined coordinates of the first spatial object and the second spatial object and indicating the first distinct part and (ii) the second spatial object by indicating a reference (indicator) to the common part of the combined coordinates of the first spatial object and the second spatial object and indicating the second distinct part.
  • This step results in, for example, using the indicator to the common part and indicating the first distinct part; using the indicator to the common part and indicating the second distinct part.
  • Step 305 can include indicating references to more than one common parts and distinct parts, for example, the indicating can be formed as follows: an indicator to a first common part; an indicator to a second common part; a distinct part. Indicating more than one common part can be useful (but not limited to) when it is not practical to use a large common part, as it would be applicable to only a small number of spatial objects; and the smaller first common part would be applicable to all (or almost all) spatial objects, and the second common part would be applicable to half of combined coordinates of spatial objects. In such case, it is practical to use more than one indicator of common parts, as it would result in a more compact compression of data.
  • step 306 of storing the formed record of the first spatial object and the second spatial object on the electronic computing device 100.
  • This step results in, for example, a formed file of a pre-determined type, the file including the results of performing the step 305.
  • Fig. 6 depicts forming a record of a combined coordinate.
  • the process of recording combined coordinates is shown, irrespective of the method of the present technology that was used for generating the combined coordinate.
  • two spatial objects are used: the first object and the second object.
  • the combined coordinate of the first object is written as 00011010011100110.
  • the combined coordinate of the second object is written as 000011010010110111.
  • the electronic computing device determines the common part 601 of the combined coordinate.
  • the common part in the given example is written as 00001101001.
  • a processor of the electronic computing device determines a first distinct part 602 and a second distinct part 603.
  • the first distinct part 602 of the combined coordinate of the first spatial object is written as 1100110.
  • the second distinct part 603 of the combined coordinate of the second spatial object is written as 0110111.
  • Data of the first object and the second object, in accordance with the present technology, will be formed using an indicator; the indicator indicates the common part 601.
  • the first object will be recorded as the indicator to the common part 601 and the first distinct part 602.
  • the second object will be recorded as the indicator to the common part 601 and the second distinct part 603.
  • a single indicator is used; and a single bit of information may be enough to encode the single indicator.
  • the common part includes 11 bits.
  • data of the first object and the second object can be compressed by 9 bits.
  • the information about the first object and the second object would have required at least 18 bits for the first object and 18 bits for the second object, i.e. 36 bits.
  • the present technology allows to form records of the first object and the second object, using 11 bits for recording the indicator to the common part 601; 1 bit for indicating the indicator to the common part 601 in the record of the first object; 7 bits for recording the first distinct part 602; 1 bit for indicating the indicator to the common part 601; and 7 bits for recording the second distinct part 603, i.e. 27 bits.
  • the more objects have common parts the more compact compression can be provided; further, it should be expressly understood, that the discussed example referred to two objects, and using the present technology has the bigger advantage the more objects are involved.
  • Fig. 4 depicts a block diagram of an implementation of a method of the present technology.
  • step 401 retrieving a record is performed; the record includes a combined indication of the coordinates of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes spatial objects: a first object, characterized by a first coordinate and a second coordinate; and a second object, characterized by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type.
  • This step results in, for example, retrieving the file of the pre-determined type, the file including data of spatial objects; the spatial objects have been stored in the file, for example, by using the steps 301 - 306 of the method of Fig. 3, i.e. using the present technology.
  • the technology then proceeds to the step 402 of un-combining the coordinates of the first type and the second type, when the coordinates of the first spatial object and the second spatial object are retrieved.
  • This step results in retrieving the coordinates of the first spatial object and the second spatial object.
  • the number of the spatial objects is not limited to two; it can be more than two objects, for example, eight spatial objects, as shown in Fig. 1.
  • Uncombining is performed in reverse to forming a combined coordinate, for example, but without being limitative, if combining with sequential indicating bits of coordinates of the first type and the second type was performed, then uncombining is performed as sequential retrieving bits of the coordinates of the first type and the second type.
  • Transforming coordinates of spatial objects can be performed on computing devices.
  • such device can be a galaxy s5, Apple IPhone 6 mobile phone and server hardware, for example, DellTM PowerEdgeTM server, running MicrosoftTM Windows ServerTM operational system.
  • the server may be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof.
  • the present technology can be performed on other devices, for example, e-books, laptops, netbooks, GPS -navigators, tablets and the like.
  • the non-limiting embodiments of the present technology can be executed on an electronic device; the electronic device includes a memory and a processor; the processor is connected to the memory.
  • the memory can be divided into more than one blocks or it can be represented by one block;
  • the processor can be a multiple-core processor or a single-core processor; further, more than one processor can be used. More than one processor or the multiple-core processor may allow to process data in several streams. It can lead to saving time of processing data.
  • Above-illustrated devices can perform a reverse operation with the spatial object data.
  • a device for example, the user device 203 or the server 207 can receive the data in an archive form; the data having been compressed by, for example, but without being limitative, Huffman algorithm.
  • a record or a plurality of records of the spatial object is (are) decompressed. After retrieving the record (or the plurality of records) of the spatial object by the electronic device, uncombining of spatial object coordinates can be performed.
  • FIG. 5 depicts a schematic illustration of the user device 203 or the server 207, shown in Fig. 2.
  • An electronic computing device 500 includes a processor 502; the processor 502 is connected with a memory 501.
  • a connection can be performed in both directions (as shown by arrows), i.e. the processor 502 can perform storing data in the memory 501 and the processor 502 can read data from the memory 501.
  • the connection can be one-directional, for example, the processor 502 receives data of a spatial object as the input and performs storing them in the memory 501; in another example, the processor 502 can receive from the memory
  • An electronic computing device 500 can include a data receive-transmit block 503; the block 503 being implemented as a screen for information displaying, a network interface card for connecting to the communication network 205, a keyboard for entering data, a sensor display for information input/output and other variances.
  • the block 503 can include more than one device, for example, a screen and a keyboard, a device for sound output and a speaker, indicator lamps and keyboards; other implementations are possible.
  • the connection of the data receive-transmit block 503 with the memory 501 and the processor 502 is shown as bidirectional.
  • this connection with the processor 502 and/or the memory 501 can be one-directional, for example, in one implementation, the processor 502 can receive from the data receive-transmit block 503 data of spatial objects, but the processor 502 can not transmit to the block 503 the data of spatial objects.
  • Uncombining which can be performed by the electronic computing device 500, in one implementation, includes retrieving a pattern; the pattern having been used for combining coordinates of spatial objects.
  • the pattern can be determined, using a common rule (by default); or it can be individual for all spatial objects or for a part of the spatial objects.
  • more than one pattern can be used when combining coordinates, i.e. one pattern can be used for a first portion of spatial objects (one combining rule) and another pattern (or a plurality of patterns) is used for another portion of the spatial objects.
  • uncombining is performed by the electronic computing device by retrieving a first bit or byte of a first coordinate from a first bit or byte of a combined coordinate; retrieving a first bit or byte of a second coordinate from a second bit or byte of the combined coordinate and the like.
  • odd-numbered bits/bytes relate to the first coordinate and even-numbered bits/bytes relate to the second coordinate; i.e. bits/bytes of coordinates placed sequentially in the combined coordinate.
  • a spatial object is characterized by, for example, three coordinates
  • all bits/bytes equal 1 modulus 3 in their stored order characterize the first coordinate
  • all bits/bytes equal 2 modulus 3 in their stored order characterize the second coordinate
  • all bits/bytes equal 0 modulus 3 in their stored order characterize the third coordinate.
  • N-dimensional space bits/bytes placed on an M position modulus N in a record of a combined coordinate (wherein M stands for a coordinate number and N stands for a number of dimensions of coordinates) characterize the coordinate of a spatial object by M-coordinate, apart from bits/bytes placed on 0 position modulus N in the record of the combined coordinate, because these bits/bytes characterize N-coordinate.
  • the user device 203 receives a request from the user 201 for a map of a current location and surroundings of the user 201.
  • the user device 230 receives coordinates of its current location, for example, but without being limitative, via a wireless communication network (WiFi) or a satellite navigation system (GLONASS, GPS).
  • WiFi wireless communication network
  • GLONASS satellite navigation system
  • the user device 230 sends the request to the server 207 via the communication network 205 with an indication of the coordinate of interest and a size of a surrounding area of the coordinate.
  • the server 207 receives the corresponding request from the user device 203 and determines, which map area should be sent to the user device 203 for displaying to the user 201.
  • the server 207 archives map data (the map is represented by a plurality of spatial objects) using the present technology and sends compressed maps to the user device 203.
  • the user device 203 decompresses the received archive and retrieves coordinates of the spatial objects.
  • the user device 203 retrieves the coordinates of the spatial objects; using these coordinates, the user device 203 renders the map on a screen of the user device 203.
  • the present technology is applied twice: firstly, on the side of the server 207, when the server 207 performs archiving (compressing data of spatial objects) of a map area and secondly, on the side of user device 203, when the user device 203 receives compressed data and retrieves the coordinates of the spatial objects from the data.
  • the user 201 uses a program for processing images.
  • the program provides to the user 201 a graphical interface and a field; the field displays an image, for example, such an image as in Fig. 1.
  • a landscape is characterized by the presence of gradually changing colors in certain places; there can be more than one such areas on a photo. Each area with gradually changing colors can be represented as a gradient change of a color along a certain direction.
  • each point can be represented by five coordinates: Coordinates along the x and y axes (location coordinates) and coordinates of R, G and B colors (coordinates of basic colors, more specifically, of red, green and blue colors; however, other colors can be user as basic ones).
  • coordinates along the x and y axes location coordinates
  • R, G and B colors coordinates of basic colors, more specifically, of red, green and blue colors; however, other colors can be user as basic ones.
  • the coordinates of points are changing gradually (a continuous line); colors are changing gradually too. It is a sign of a large number of common parts in coordinates of close points of the photo. For such an image, the present technology can be used conveniently.
  • the present solution is not limited by using the binary number system. Any number system can be used, for example, the ternary number system, the octal number system, the decimal number system, the sexadecimal number system and the like. Further, combined number systems can be used, when for different coordinates different number systems are used; or when for one coordinate two systems are used simultaneously (for some values, for example, which are less than a certain threshold, the binary number system is used; and for values, which are more than the certain threshold, the sexadecimal number system or the octal number system is used.
  • the decimal number system is used for spatial objects.
  • the spatial objects are located on a plane and each object has two information items in the decimal number system along each axis (x-axis and y-axis).
  • a first spatial object is characterized by a coordinate of 17 along the x-axis and 18 along the y-axis.
  • a second spatial object is characterized by a coordinate of 18 along the x-axis and 19 along the y-axis. Combining in the given example will be performed by indicating a first information item of the first spatial object, then a first information item of the second spatial object, then a second information item of the first spatial object, then a second information item of the second spatial object, i.e.
  • the combined coordinate of the first spatial object is written as 1178 in the given example.
  • the combined coordinate of the second spatial object is written as 1189.
  • a common part of the combined coordinates of the first spatial object and the second spatial object will be equal two units of information in this number system - 11.
  • An information item in the present number system (decimal) requires four bits in the binary number system. Storing will require using two indicators (references) to the common part and 16 bits.
  • the same spatial objects will be stored in the binary number system.
  • the first spatial object is characterized by a coordinate of 17 along the x-axis (10001 in the binary number system) and 18 along the y-axis (10010 in the binary number system).
  • the second spatial object is characterized by a coordinate of 18 along the x-axis (10010 in the binary number system) and 19 along the y-axis (10011 in the binary number system).
  • the combined coordinate of the first spatial object is written as 1100000110.
  • the combined coordinate of the second spatial object is written as 1100001101.
  • the common part in the given example is written as 110000, i.e. 6 bits.
  • a first distinct part will be 0110, a second distinct part will be 1101.
  • the first spatial object can be stored as is, i.e. without using the indicator to the common part.
  • the indicator to the common part can be stored as a quantity of bits and bytes in the combined coordinate of the first spatial object.
  • both spatial objects can be stored by using the indicator to the common part.
  • an electronic computing device 500 includes a memory 501 and a processor 502, connected to the memory 501. It should be understood, that the electronic computing device 500 can have more than one processor 502; the processors 502 can be multiple-core; the memory 501 can be implemented as any memory, for example, RAM, primary memory, disks, audio tapes etc.
  • the processor 502 of the electronic computing device 500 is configured to receive a plurality of spatial objects intended for storing.
  • the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate.
  • the quantity of coordinates can be different.
  • the first coordinate and the third coordinate being represented by the coordinates of a first type
  • the second coordinate and the fourth coordinate being represented by the coordinates of a second type.
  • Types of coordinates are intended to mean a type of coordinate axes in space (angle coordinates, line coordinates and the like), a quantity of information items, which are required for storing a coordinate and the like.
  • the processor 502 of the electronic computing device 500 is configured to form a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type.
  • the coordinate combination can be performed by at least one of the methods, which were described in the present specification; the methods, illustrated in the present specification, are not limiting the present technology. As those skilled in the art will appreciate, other variants of receiving the combined coordinate are possible.
  • the processor 502 of the electronic computing device 500 is further configured to determine a common part 601 of the combined coordinates of at least the first spatial object and the second spatial object.
  • the processor 502 is further configured to determine a first distinct part 602, the first distinct part denoting differences between a combined coordinate of the first spatial object; and to determine a second distinct part 603 the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object.
  • the processor 502 is further configured to form a record of: the first spatial object by indicating a reference to the common part 601 of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part 602 and the second spatial object by indicating a reference to the common part 601 of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part 603;
  • the processor 502 is configured to store the formed record of at least the first spatial object and the second spatial object in the memory 501.
  • a method of storing spatial objects (101), the method executable at a computing device (500), the method comprises: receiving, by the computing device (500), a plurality (101) of spatial objects, intended to be stored; the plurality (101) of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type.
  • forming a record of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; storing the formed record at the computing device (500).
  • indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).
  • a method of compressing data of spatial objects (101), the method executable at a computer device (500), the method comprises: receiving, by the computing device (500), a plurality (101) of spatial objects, intended to be stored; the plurality (101) of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type.
  • a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; determining a common part (601) of the combined coordinates of at least the first spatial object and the second spatial object; determining a first distinct part (602), the first distinct part (602) denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determining a second distinct part (603) of the combined coordinate, the second distinct part (603) denoting differences between the second spatial object and the combined coordinate of the first spatial object.
  • the first spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part (602)
  • the second spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part (603); storing the formed record of at least the first spatial object and the second spatial object on the computing device (500).
  • indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).
  • the processor (500) includes a memory (501) and at least one processor (502); the processor (502) is connected to the memory (501); the processor (502) is configured to: receive a plurality of spatial objects (101), intended to be stored; the plurality of spatial objects (101) includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type.
  • the plurality of spatial objects (101) includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second
  • a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; determine a common part (601) of the combined coordinates of at least the first spatial object and the second spatial object; determine a first distinct part (602), the first distinct part (602) denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determine a second distinct part (603) of the combined coordinate, the second distinct part (603) denoting differences between the second spatial object and the combined coordinate of the first spatial object.
  • the first spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part (602)
  • the second spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part (603); store the formed record of at least the first spatial object and the second spatial object in the memory (501).
  • a method of retrieving data of spatial objects comprises: retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type. uncombining the combined coordinates when the coordinates of the first spatial object and the second spatial object are retrieved.
  • indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

There is disclosed a method executable at a computer device of compressing data of spatial objects, comprising a number of steps: receiving a plurality of spatial objects intended to be stored, the first object characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; forming a combined coordinate of at least the first spatial object and the second spatial object; determining a common part of the combined coordinate; determining a first and second distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of he first and second objects; forming a record of the first spatial object and the second spatial object, and storing the formed record of at least the first spatial object and the second spatial object on the computing device.

Description

METHOD AND DEVICE FOR STORING AND COMPRESSING DATA OF
SPATIAL OBJECTS
CROSS-REFERENCE
[0001] The present application claims priority to Russian Patent Application No 2015139563, filed September 17, 2015, entitled "CTIOCOE H YCTPOHCTBO flJW XPAHEHPL3 H QKATPL3 flAHHblX O nPOCTPAHCTBEHHblX OELEKTAX" the entirety of which is incorporated herein.
FIELD OF THE TECHNOLOGY
[0002] The present solution relates to storing spatial objects in general and specifically to a method and a device for storing and compressing data of spatial objects.
BACKGROUND
[0003] Today applications and programs for displaying information about spatial objects are very popular among users. Examples of such applications and programs includes, for example: applications and programs, which provide to a user data of his/her location and objects in the neighborhood; applications and programs for technical drawing; applications and programs for processing and displaying images. Such solutions perform transmitting and retrieving data of a plurality of spatial objects, the plurality of spatial objects including at least two spatial objects.
[0004] In most cases the user is interested in a particular area, the particular area including a small number of spatial objects located in close proximity to each other. For such spatial objects, their respective coordinates would not differ much.
[0005] US patent application 2014279970, published on September 18th, 2014 teaches a method of compact storing geometric objects as a set of points, wherein discrete points are presented as binary/ternary strings (having a following feature: points, which are located closer to each other, are connected by long binary/ternary prefixes) and geometric objects are coded by compressing of the binary/ternary representations of the prefixes. [0006] Developers of the present technology observed that it is possible to diminish a data volume, the data includes data of spatial objects, and overcome some disadvantages of the prior art.
SUMMARY
[0007] It is an object of the present technology to ameliorate at least some of the inconveniences present in the prior art and propose new improvements for development the given field of technology.
[0008] In one aspect, implementations of the present technology provide a method of storing spatial objects; the method is executable at a computing device. The method includes: receiving a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a record of at least the first object and the second object by indicating combined coordinates of at least the first type and the second type; storing the formed record at the computing device.
[0009] In one implementation, non-limiting a scope of legal protection, the coordinates can be represented by sets of at least one of bits and bytes.
[0010] In one implementation, indicating combined coordinates may include sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
[0011] In alternative implementation, indicating combined coordinates may include sequential indicating one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate. [0012] In another implementation, forming records by indicating combined coordinates of spatial object's coordinates is performed; forming includes: determining a number of changes of at least one bit and byte of coordinates of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern , wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
[0013] In one implementation, the formed records of at least the first spatial object and the second spatial object can be compressed using at least one frequency compression algorithm.
[0014] In some implementations, wherein the at least one frequency compression algorithm comprises: Huffman algorithm, LZ algorithm or a combination thereof.
[0015] In one implementation, prior to the combining, coordinates the coordinates are transformed, such that to decrease informational entropy can be performed.
[0016] In some implementations, the first type coordinates and the second type coordinates are of a single coordinate type.
[0017] The present technology describes a method for compressing data of spatial objects; the method is performed at a computing device. The method includes retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type; determining a common part of the combined coordinates of at least the first spatial object and the second spatial object; determining a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; and determining a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object; forming a record of: the first spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct partthe second spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part; storing the formed record of at least the first spatial object and the second spatial object on the computing device.
[0018] In one implementation, the coordinates can be represented by sets of at least one bits and bytes.
[0019] In some implementations, the indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
[0020] Indicating combined coordinates may include sequential indicating one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
[0021] In some implementations, forming combined coordinates can include: determining a number of changes of each one of a bit and a byte of coordinates; forming a coordinate pattern, wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
[0022] In another aspect, implementations of the present technology provide an electronic computing device; the electronic computing device includes a memory and at least one processor; the processor is connected to the memory; the processor is configured to: receive a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; form a combined coordinate of at least the first spatial object and the second spatial objects by indicating combined coordinates of at least the first type and the second type; determine a common part of the combined coordinates of at least the first spatial object and the second spatial object; determine a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determine a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object. form a record of: the first spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part and the second spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part; store the formed record of at least the first spatial object and the second spatial object.
[0023] In additional aspect, implementations of the present technology provide a method of retrieving data of spatial objects, the method comprises: retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; uncombining the coordinates of the first type and the second type when the coordinates of the first spatial object and the second spatial object are retrieved.
[0024] In one implementation, the coordinates can be represented by sets of at least one of bits and bytes. [0025] Indicating combined coordinates may include sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
[0026] In some implementations, the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
[0027] In some implementations, a coordinate pattern can be defined, and coordinates can be uncombined according to the pattern.
[0028] In some additional implementations, the record with the combined indication of coordinates is retrieved by decompressing data; the data has been previously compressed by at least one of: Huffman algorithm, LZ algorithm or a combination thereof.
[0029] In some implementations, the first type coordinates and the second type coordinates are of a single coordinate type.
[0030] In the context of the present specification, the words "first", "second", "third", etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns. Thus, for example, it should be understood that, the use of the terms "first server" and "third server" is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the servers, nor is their use (by itself) intended to imply that any "second server" must necessarily exist in any given situation. Further, as is discussed herein in other contexts, reference to a "first" element and a "second" element does not preclude the two elements from being the same actual real-world element. Thus, for example, in some instances, a "first" server and a "second" server may be the same software and/or hardware, in other cases they may be different software and/or hardware.
[0031] In the context of the present specification, unless specifically provided otherwise, a "server" is meant to include a computer program that is running on appropriate hardware and is capable of receiving requests (e.g. from client devices) over a network, and carrying out those requests, or causing those requests to be carried out. The hardware may be implemented as one physical computer or one physical computer system, but neither is required to be the case with respect to the present technology. In the present context, the use of the expression a "server" is not intended to mean that every task (e.g. received instructions or requests) or any particular task will have been received, carried out, or caused to be carried out, by the same server (i.e. the same software and/or hardware); it is intended to mean that any number of software elements or hardware devices may be involved in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, associated with a client device; and all of this software and hardware may be one server or multiple servers, both cases are included within the expression "at least one server".
[0032] In the context of the present specification, unless specifically provided otherwise, a "client device" is meant to include any computer hardware that is capable of running software appropriate to the relevant task at hand. The client devices may be implemented, inter alia, as personal computers (desktops, laptops, netbooks, etc.), smartphones, tablets, as well as network equipment (routers, switches, or gateways). It should be noted, that a device acting as a client device in the present context is not precluded from acting as a server to other client devices. The use of the expressions "a client device" and "a communication device" does not preclude multiple devices being used in receiving/sending, carrying out or causing to be carried out any task or request, or the consequences of any task or request, or steps of any method described herein.
[0033] In the context of the present specification, unless specifically provided otherwise, a "database" is any structured collection of data, irrespective of its particular structure, the database management software, or the computer hardware on which the data is stored, implemented or otherwise rendered available for use. A database may reside on the same hardware as the process that stores or makes use of the information stored in the database or it may reside on separate hardware, such as a dedicated server or plurality of servers.
[0034] In the context of the present specification, unless specifically provided otherwise, the expression "information" includes information of any nature or kind whatsoever capable of be stored in a database. Thus, information includes, inter alia, audiovisual works (images, movies, sound records, presentations etc.), data (location data, numerical data, etc.), text (opinions, comments, questions, messages, etc.), documents, spreadsheets, etc. [0035] In the context of the present specification, unless expressly provided otherwise, the expression "component" is meant to include software (appropriate to a particular hardware context) that is both necessary and sufficient to achieve the specific function being referenced.
[0036] In the context of the present specification, the expression "non-transitory computer- readable information storage medium" (or "memory") is intended to include volatile and nonvolatile memory of any nature and kind whatsoever, including RAM, ROM, disks (CD- ROMs, DVDs, floppy disks, hard drivers, etc.), USB keys, solid state-drives, tape drives, etc.
[0037] In the context of the present specification, the words "first", "second", "third", etc. have been used as adjectives only for the purpose of allowing for distinction between the nouns that they modify from one another, and not for the purpose of describing any particular relationship between those nouns. Thus, for example, it should be understood that, the use of the terms "first server" and "third server" is not intended to imply any particular order, type, chronology, hierarchy or ranking (for example) of/between the servers, nor is their use (by itself) intended to imply that any "second server" must necessarily exist in any given situation. Further, as is discussed herein in other contexts, reference to a "first" element and a "second" element does not preclude the two elements from being the same actual real-world element. Thus, for example, in some instances, a "first" server and a "second" server may be the same software and/or hardware, in other cases they may be different software and/or hardware.
[0038] Implementations of the present technology each have at least one of the above- mentioned object and/or aspects. It should be understood that some aspects of the present disclosure that have resulted from attempting to attain the above-mentioned object may satisfy other objects not specifically recited herein.
[0039] Additional and/or alternative features, aspects, and advantages of embodiments of the present disclosure will become apparent from the following description, the accompanying drawings, and the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS [0040] For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:
[0041] Fig. 1 depicts a spatial object with coordinate axes and coordinates of points of the spatial object, the spatial object shown on a screen of a user device (a computer).
[0042] Fig. 2 depicts a schematic representation of a user interaction with the electronic device, a communication network, and a server in accordance with some non-limiting embodiments of the present technology.
[0043] Fig. 3 depicts a block diagram of an implementation of a method in accordance with some non-limiting embodiments of the present technology.
[0044] Fig. 4 depicts a block diagram of another implementation of a method in accordance with some non-limiting embodiments of the present technology.
[0045] Fig. depicts a schematic illustration of an electronic computing device that can be used by a user and/or a server for implementing embodiments of the present technology.
DETAILED DESCRIPTION
[0046] The present description is an illustration of possible implementations of the present technology and is simply provided for ease of understanding and is not intended to be a limitative description of the present technology.
[0047] This description is not intended to define the scope or set forth the bounds of the present technology. In some cases, what are believed to be helpful examples of modifications to the system may also be set forth below. This is done merely as an aid to understanding, and, again, not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and, as a person skilled in the art would understand, other modifications are likely possible. Further, where this has not been done (i.e., where no examples of modifications have been set forth), it should not be interpreted that no modifications are possible and/or that what is described is the sole manner of implementing that element of the present technology. As a person skilled in the art would understand, this is likely not the case. In addition it is to be understood that the description presented herein may provide in certain instances simple implementations of the present technology, and that where such is the case they have been presented in this manner as an aid to understanding. As persons skilled in the art would understand, various implementations of the present technology may be of a greater complexity.
[0048] The present technology is directed to a method for storing spatial objects. The spatial objects are characterized by a set of coordinates. The spatial objects can also include other data, aside from the coordinates (such as, their spatial locations and the like). More specifically, in one implementation, data of a spatial object can include the data of its location and a characteristic of the spatial object.
[0049] As a non-limiting example, a plurality of spatial objects can characterize a location of a cable in space; the cable being displayed on a screen of an electronic device. As an aid to understanding, let's say that the cable is a thin and long spatial unit, i.e. it is characterized by its length first and foremost, and not by its cross section. This object can be represented as a set of spatial objects, i.e. a sequence of points this object consist of. The terms "spatial object", "object" and "point" can be used interchangeably without departing from the scope of the present technology. Each spatial object is characterized by its location in space. In case of a plane, orthogonal coordinates (x and y coordinates), a zero point radius and an angle (for an angular coordinate system), non-orthogonal coordinates and other coordinates, for example, cylindrical coordinates, spherical coordinates and the like can be used as a "system of coordinates". The present technology is not limited by a particular type of the coordinate system used for implementing embodiments thereof. Aside from the data of spatial object location, information about the spatial object can include an additional coordinate, for example, a mass; the mass being non-intermitting and gradually changing along the object. Thus, in case of a plane, the object (in this example, the cable) can be set by three coordinates (two coordinates, which determine the location of the spatial object, and one coordinate, which determines a characteristic thereof, in this case the mass of the spatial object). For 3D space, there can be four coordinates (three coordinates for determining the location of the spatial object and one coordinate for determining the characteristic). For 4D space (3D space and time), there can five coordinates: three coordinates for determining the location of the spatial object, one coordinate for determining time and one coordinate for determining a characteristic of the spatial object.
[0050] A number of coordinates is not limited and is provided as a mere illustration. The present technology can be used in case of N-dimensional space; where N stands for a natural number: 1, 2, 3, 4, 5, 6 and the like. Accordingly, the number of coordinates for the spatial object cannot be less than the number of dimensions of the N-dimensional space.
[0051] If the spatial object includes its location data only and does not include additional characteristics (coordinates), as in the above-mentioned example of the cable, then the number of coordinates for the spatial object is the same as the number of dimensions of the N-dimensional space.
[0052] In the present description the term "space" is meant to include a mathematical term, i.e. the term "space" should be read to include a set, every element of which can be written as a number of coordinates, corresponding to a number of dimensions of the N-dimensional space.
[0053] Similarly, a number of characteristics of a spatial object is not limited by the above mentioned example. As such, a mass, a color, a brightness and other qualities can be used as a characteristic of any given spatial object. However, some qualities can be characterized by more than one coordinate; for example, a color can be characterized by three coordinates, using an intensity of mixing R, G, and B (red, green, blue) components. Thus, a spatial object in a 3D space with a color characteristic would have six coordinates.
[0054] In the present description, the term "coordinate" is meant to include a certain value (characteristic) of a spatial object. A coordinate can indicate a spatial object location, but this is not required to be the case in every embodiment of the present technology; the coordinate can indicate an object characteristic, for example, its color, brightness, mass, time or another quality.
[0055] Further, in the description herein above and below, when coordinates of a spatial object are described; the term "coordinates", as was mentioned above, should be understood to include coordinates, which indicate a spatial object location as well as coordinates, which indicate certain characteristics of an object.
[0056] Embodiments of the present technology have one or more advantages, more specifically, in describing and storing, by an electronic computing device, spatial units; the spatial units include spatial objects; the spatial units are unintermitting and gradually changing. However, it should be noted that embodiment of the present technology are not limited to those spatial objects / units that are unintermitting and gradually changing. The present technology can be used for any spatial objects and any spatial unit.
[0057] In the present description, coordinates of spatial objects along the x-axis can be thought of as "first type coordinates" and coordinates of spatial objects along the y-axis can be thought of as "second type coordinates". The first type and the second type can be the same; the first type and the second type can be different. The difference can lie in a coordinate length, for example, coordinates along the x-axis are written by five bits, and coordinates along the y-axis are written by three bits.
[0058] In Fig. 1 a smooth continuous line 101 ABCDEFGH starting at a point A with coordinates (1, 1) and ending at a point H with coordinates (2, 3). The line 101 can be depicted on a screen of an electronic computing device 100. For describing the line 101, three bits will be required for x coordinates 102 and two bits for y coordinates 103. In the following table, coordinates of each point of the ABCDEFGH line 101 are represented. For ease of understanding of the present technology, let us say that a number of bits of the coordinate system (X,Y) is the same: 3 bits.
Figure imgf000014_0001
Point X coordinate X coordinate in Y coordinate Y coordinate in bits bits
H 2 010 3 Oi l
Table 1: coordinates of the objects represented in Fig. 1.
[0059] X coordinates and y coordinates, listed in the table, can be transformed by the electronic computing device 100 into a combined coordinate, the combined coordinate includes the information representative of both coordinates. Combining can be an invertible function of coordinate transforming.
[0060] In some implementations, combining can be performed as recording first three bits of an x coordinate and recording first three bits of a y coordinate. In other implementations, combining can be performed as sequential recording bits of x and y coordinates, i.e. firstly the first bit of the x coordinate, then the first bit of the y coordinate, then the second bit of the x coordinate, then the second bit of the y coordinate, then the third bit of the x coordinate, then the third bit of the y coordinate. In other implementations, combining can be performed as recording first two bits of the x coordinate, then first two bits of the y coordinate, then the third bit of the x coordinate, then the third bit of the y coordinate. Some variants of coordinate combining, implemented in accordance with the present technology, will now be described.
[0061] The above-mentioned examples are not limitative; other variants of combining can be used without departing from the scope of the present technology. Using bits is not a limitation of the present technology; bytes and other information units can be used, for example, for other number systems. Some implementations of the present technology provide for combining by a mirror reflection of bits or bytes recording. For example, combining can be performed as recording the first bit of the x coordinate, them the third bit of the y coordinate, then the second bit of the x coordinate, then the second bit of the y coordinate, then the third bit of the x coordinate, then the first bit of the y coordinate. [0062] Some implementations provide determining a probability (or frequency) of changing for each bit. After determining the probability (or frequency) of changing for each bit, the bits are recorded in a descending order of their probability (or frequency) of changing. In one implementation, a number of changes for each particular bit or byte for a coordinate can be determined. Thus, a pattern of coordinate combining is formed. For example, the first bite of the y coordinate is not changed in the example in Fig. 1, its value is always zero. Thus, this bit will be recorded in the first place. The second bit of the y coordinate is changed once (when moving from the spatial object C to the spatial object D), so this bit will be recorded as a second bit. The first bit of the x coordinate is changed two times (the first change occurs when moving from the spatial object C to the spatial object D; the second change occurs when moving from the spatial object E to the spatial object F), so this bit will recorded as a third bit. The second bit of the x coordinate is changed three times (when moving from the spatial object A to the spatial object B; when moving from the spatial object C to the spatial object D; and when moving from the spatial object E to the spatial object F), so this bit will recorded as a fourth bit. The third bit of the y coordinate is changed four times (when moving from the spatial object C to the spatial object D; when moving from the spatial object D to the spatial object E; when moving from the spatial object E to the spatial object F; and when moving from the spatial object G to the spatial object H), so this bit will recorded as a fifth bit. The third bit of the x coordinate is changed five times (the biggest number of changes) (when moving from the spatial object A to the spatial object B; when moving from the spatial object B to the spatial object C; when moving from the spatial object C to the spatial object D; when moving from the spatial object D to the spatial object E; and when moving from the spatial object F to the spatial object G;), so this bit will recorded in the end, as a sixth bit (when looking from left to right).
[0063] As a non-limiting example, let us consider the case when bits are recorded sequentially: firstly, one bit of the x coordinate; then one bit of the y coordinate. In such coordinate combining each point of the line ABCDEFGH line 101 has one combined coordinate, this combined coordinate can be recorded as is shown in the following table:
Figure imgf000016_0001
Point X coordinate X coordinate Y coordinate Y coordinate Combined in bits in bits coordinate
A 1 001 1 001 000011
B 2 010 1 001 001010
C 3 011 1 001 001011
D 4 100 2 010 100100
E 5 101 3 011 100111
F 3 011 2 010 001110
G 2 010 2 010 001100
H 2 010 3 011 001101
Table 2: coordinates of objects and combined (according to one implementation) coordinates of objects, shown in Fig. 1.
[0064] As can be seen in Fig.l points A, B, C have the same y coordinate and the gradually changing x coordinate. Combined coordinates of these points are changing gradually as well.
In the context of the present specification, the word "gradually" is meant to include characteristics of objects, located in close proximity, that do not differ much, for example, a continuous function can be an example of gradual changing. The continuous function may have some derivative discontinuities (i.e. dramatic discontinuous direction changes). A discontinued spatial object, for example, a chain, can be an example of gradual changing; the chain includes chain links (each chain link is a continuous function, but links are not rigidly bound with each other); for the spatial object of chain type it can be said that the chain links are located in close proximity, i.e. characteristics of sequential elements (chain links) are changing slightly, relative to each other. For first three points of the example line in Fig. 1 the first two bits (00) are common; for the second and the third point (B and C points) five bits
(00101) are common. For forming a record of first three points (A, B and C), coordinates of point A can be used, and then the difference between points A and B can be indicated (i.e. an indicator to the common part of the combined coordinate of points A and B and the value 1010 can be used). For the point C, the indicator to the previous point B and the difference between points A and B (i.e. an indicator to the point B and the value 1) can be used. Retrieving the common part of the combined coordinate and retrieving the distinct parts is described further in the present specification with the reference to Fig. 6.
[0065] Coordinate combining allows increasing the common part for spatial objects. Thus, it is possible to use indicators to repeating intervals of coordinates more often, such using allows to use fewer information items for storing data associated with spatial objects. In the given example points of the line ABCDEFGH (101) in Fig. 1 have a small amount of bits for recording their coordinates, so the effect may not necessarily be very significant. Values in Fig. 1 are limited to 1 - 5 along the x-axis and 1 - 3 along the y-axis. In most cases, coordinates (for example, geographical) are coded using a larger number of bits or bytes, for example, 8 bits. If 8 bits are used for recording both x and y coordinates, then the combined coordinate will have length of 16 bits, where the first 10 bits of the combined coordinate would be zeros and they would be replaced by a single indicator to the common part of the combined coordinate.
[0066] For geographical coordinates, which are changing continuously and without abrupt jumps, longer sequences of one of bits and bytes are used for recording a spatial object, for example, sequences of 16 bits for each coordinate are used. Thus, for 3D space 48 bits of information are required; and a significant part of bits are likely to be repeated (depending on a size of an area to be described by spatial objects). For spatial objects, representing continents, a total amount of bits can be 3 or 4 bits. For comparatively smaller objects (for example, countries, regions, cities, streets) the total number of bits can be much bigger; so embodiments of the present technology are likely to render a more appreciable advantage when used for storing information about such spatial objects.
[0067] As an example, embodiments of the present technology can be applied to the above- mentioned line ABCDEFGH 101 depicted in Fig. 1. In this example, the coordinates can be recorded as it is shown in the following table. Point X coordinate X coordinate Y coordinate Y coordinate Combined in bits in bits coordinate
A 1 001 1 001 000011
B 2 010 1 001 000110
C 3 011 1 001 000111
D 4 100 2 010 011000
E 5 101 3 011 011011
F 3 011 2 010 010101
G 2 010 2 010 010100
H 2 010 3 011 010110
Table 3: coordinates of objects and combined (according to one implementation) coordinates of objects, shown in Fig. 1.
[0068] In the above-mentioned example with forming a pattern based on a number of changes of bits in coordinates, it can be seen that points A, B and C have three common bits, points B and C have five common bits, points D and E have four common bits, points F, G and H have four common bits and points F and G have five common bits. A larger number of common parts allows for applying references (indicators) to these common parts and, thus, enjoy more of an affect of embodiments of the present technology.
[0069] Data of spatial objects can be stored as combined coordinates. Further, the combined coordinates can be compressed using, for example, a Huffman algorithm, a Shannon algorithm, an LZ algorithm and the like. Compressing allows reducing a volume of transmitted data. Conducted experiments showed reduction of the volume of data by 34% in comparison with the original data. [0070] Fig. 2 depicts an example of a schematic representation of a system, in which embodiments of the present technology can be implemented. A user 201 can communicate with a user device 203. The user device 203 is not particularly limited and can be implemented, for example, as an Apple™ IPhone™ 6+ mobile phone. The user device 203 can be connected to a communication network 205; the communication network 205 can be implemented as Internet, intranet, local network, global network and other communication networks. The communication network 205 is connected with a server 207. The server 207 is not particularly limited. Connections between the user 201, the user device 203, the communication network 205 and the server 207 are shown as double arrows because the communication can be performed in both directions; however, in some implementations, the communication could be one-directional, more specifically, the user 201 could enter data of spatial objects without the ability (or need) to receive any information from the user device 203. This may be the case, for example, when the user 201 provisions a database (not depicted) hosted by the server 207, the provisioning being executed using the user device 203.
[0071] Fig. 3 depicts a block diagram of an implementation of a method implemented in accordance with embodiments of the present technology. The present method can be performed, for example, by the user device 203 depicted in Fig. 2.
[0072] At step 301 receiving a plurality of spatial objects, intended to be stored, is performed; the plurality of spatial objects including two spatial objects: a first object, characterized by a first coordinate and a second coordinate; and a second object, characterized by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type. As a non-limiting example, at this step coordinates of points A and B from Fig. 1 are retrieved.
[0073] At step 302, in one implementation, forming a combined coordinate of the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type is performed. A result of performing this step can be presented, for example, in the rightmost column of the above-mentioned Table 3.
[0074] At step 302 determining a common part of the combined coordinates of the first spatial object and the second spatial object is performed. This step results in, for example, forming an indicator to the common part of points A and B shown in Fig. 1; more specifically, the common part of points A and B shown in Fig. 1 is 000, i.e. the first three bits of the combined coordinates of points A and B.
[0075] The method then proceeds to the step 304 of determining a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; and determining a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object. As an example, returning to points A and B, a distinct part for a point A is 011 (the first distinct part); and a distinct part for a point B is 110 (the second distinct part).
[0076] Step 302 includes forming a record; the record indicating: (i) the first spatial object by indicating a reference (indicator) to the common part of the combined coordinates of the first spatial object and the second spatial object and indicating the first distinct part and (ii) the second spatial object by indicating a reference (indicator) to the common part of the combined coordinates of the first spatial object and the second spatial object and indicating the second distinct part. This step results in, for example, using the indicator to the common part and indicating the first distinct part; using the indicator to the common part and indicating the second distinct part.
[0077] Step 305, in one implementation, can include indicating references to more than one common parts and distinct parts, for example, the indicating can be formed as follows: an indicator to a first common part; an indicator to a second common part; a distinct part. Indicating more than one common part can be useful (but not limited to) when it is not practical to use a large common part, as it would be applicable to only a small number of spatial objects; and the smaller first common part would be applicable to all (or almost all) spatial objects, and the second common part would be applicable to half of combined coordinates of spatial objects. In such case, it is practical to use more than one indicator of common parts, as it would result in a more compact compression of data.
[0078] The technology then proceeds to the step 306 of storing the formed record of the first spatial object and the second spatial object on the electronic computing device 100. This step results in, for example, a formed file of a pre-determined type, the file including the results of performing the step 305. [0079] Thus, with the reference to Fig. 3, there is described one implementation of the present technology, in which embodiments of transforming and storing data of spatial objects are performed.
[0080] For a better understanding of the present technology, reference is made to Fig. 6. Fig. 6 depicts forming a record of a combined coordinate. In this non-limiting example, the process of recording combined coordinates is shown, irrespective of the method of the present technology that was used for generating the combined coordinate. In the given example, two spatial objects are used: the first object and the second object. The combined coordinate of the first object is written as 00011010011100110. The combined coordinate of the second object is written as 000011010010110111. To form the record of the first spatial object and the second spatial object, the electronic computing device (the electronic computing device can be the user device 203 or the server 207) determines the common part 601 of the combined coordinate. The common part in the given example is written as 00001101001. Then a processor of the electronic computing device determines a first distinct part 602 and a second distinct part 603. The first distinct part 602 of the combined coordinate of the first spatial object is written as 1100110. The second distinct part 603 of the combined coordinate of the second spatial object is written as 0110111. Data of the first object and the second object, in accordance with the present technology, will be formed using an indicator; the indicator indicates the common part 601. The first object will be recorded as the indicator to the common part 601 and the first distinct part 602. The second object will be recorded as the indicator to the common part 601 and the second distinct part 603. In the given example a single indicator is used; and a single bit of information may be enough to encode the single indicator. The common part includes 11 bits. Thus, in the given example data of the first object and the second object can be compressed by 9 bits. Without applying the present technology, the information about the first object and the second object would have required at least 18 bits for the first object and 18 bits for the second object, i.e. 36 bits. The present technology allows to form records of the first object and the second object, using 11 bits for recording the indicator to the common part 601; 1 bit for indicating the indicator to the common part 601 in the record of the first object; 7 bits for recording the first distinct part 602; 1 bit for indicating the indicator to the common part 601; and 7 bits for recording the second distinct part 603, i.e. 27 bits. As those skilled in the art will appreciate, the more objects have common parts, the more compact compression can be provided; further, it should be expressly understood, that the discussed example referred to two objects, and using the present technology has the bigger advantage the more objects are involved.
[0081] Furthermore, the inverse transformation from combined coordinates to regular coordinates of spatial objects is possible. Having combined coordinates of a spatial object and knowing a pattern (if an irregular pattern was used), it is possible to determine coordinates of the spatial object.
[0082] Fig. 4 depicts a block diagram of an implementation of a method of the present technology.
[0083] At step 401 retrieving a record is performed; the record includes a combined indication of the coordinates of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes spatial objects: a first object, characterized by a first coordinate and a second coordinate; and a second object, characterized by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type. This step results in, for example, retrieving the file of the pre-determined type, the file including data of spatial objects; the spatial objects have been stored in the file, for example, by using the steps 301 - 306 of the method of Fig. 3, i.e. using the present technology.
[0084] The technology then proceeds to the step 402 of un-combining the coordinates of the first type and the second type, when the coordinates of the first spatial object and the second spatial object are retrieved. This step results in retrieving the coordinates of the first spatial object and the second spatial object. As those skilled in the art will appreciate, the number of the spatial objects is not limited to two; it can be more than two objects, for example, eight spatial objects, as shown in Fig. 1. Uncombining is performed in reverse to forming a combined coordinate, for example, but without being limitative, if combining with sequential indicating bits of coordinates of the first type and the second type was performed, then uncombining is performed as sequential retrieving bits of the coordinates of the first type and the second type.
[0085] Transforming coordinates of spatial objects can be performed on computing devices. As an example, but without being limitative, such device can be a galaxy s5, Apple IPhone 6 mobile phone and server hardware, for example, Dell™ PowerEdge™ server, running Microsoft™ Windows Server™ operational system. Needless to say, the server may be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof. The present technology can be performed on other devices, for example, e-books, laptops, netbooks, GPS -navigators, tablets and the like. The non-limiting embodiments of the present technology can be executed on an electronic device; the electronic device includes a memory and a processor; the processor is connected to the memory. Needless to say, the memory can be divided into more than one blocks or it can be represented by one block; the processor can be a multiple-core processor or a single-core processor; further, more than one processor can be used. More than one processor or the multiple-core processor may allow to process data in several streams. It can lead to saving time of processing data.
[0086] Above-illustrated devices can perform a reverse operation with the spatial object data. A device (for example, the user device 203 or the server 207) can receive the data in an archive form; the data having been compressed by, for example, but without being limitative, Huffman algorithm. A record or a plurality of records of the spatial object is (are) decompressed. After retrieving the record (or the plurality of records) of the spatial object by the electronic device, uncombining of spatial object coordinates can be performed.
[0087] Fig. 5 depicts a schematic illustration of the user device 203 or the server 207, shown in Fig. 2. An electronic computing device 500, in one implementation of the present technology, includes a processor 502; the processor 502 is connected with a memory 501. A connection can be performed in both directions (as shown by arrows), i.e. the processor 502 can perform storing data in the memory 501 and the processor 502 can read data from the memory 501. It should be understood, that the connection can be one-directional, for example, the processor 502 receives data of a spatial object as the input and performs storing them in the memory 501; in another example, the processor 502 can receive from the memory
501 the data of spatial objects and transmit them to other devices, but the processor 502 does not need to be responsible for performing storing any data in the memory 501. An electronic computing device 500 can include a data receive-transmit block 503; the block 503 being implemented as a screen for information displaying, a network interface card for connecting to the communication network 205, a keyboard for entering data, a sensor display for information input/output and other variances. The block 503 can include more than one device, for example, a screen and a keyboard, a device for sound output and a speaker, indicator lamps and keyboards; other implementations are possible. The connection of the data receive-transmit block 503 with the memory 501 and the processor 502 is shown as bidirectional. It should be understood, that in some implementations of the present technology this connection with the processor 502 and/or the memory 501 can be one-directional, for example, in one implementation, the processor 502 can receive from the data receive-transmit block 503 data of spatial objects, but the processor 502 can not transmit to the block 503 the data of spatial objects.
[0088] Uncombining, which can be performed by the electronic computing device 500, in one implementation, includes retrieving a pattern; the pattern having been used for combining coordinates of spatial objects. The pattern can be determined, using a common rule (by default); or it can be individual for all spatial objects or for a part of the spatial objects. In one implementation of the present technology, more than one pattern can be used when combining coordinates, i.e. one pattern can be used for a first portion of spatial objects (one combining rule) and another pattern (or a plurality of patterns) is used for another portion of the spatial objects.
[0089] In some implementations, uncombining is performed by the electronic computing device by retrieving a first bit or byte of a first coordinate from a first bit or byte of a combined coordinate; retrieving a first bit or byte of a second coordinate from a second bit or byte of the combined coordinate and the like. Thus, in some implementations, odd-numbered bits/bytes relate to the first coordinate and even-numbered bits/bytes relate to the second coordinate; i.e. bits/bytes of coordinates placed sequentially in the combined coordinate. As those skilled in the art will appreciate, if a spatial object is characterized by, for example, three coordinates, then all bits/bytes equal 1 modulus 3 in their stored order characterize the first coordinate; all bits/bytes equal 2 modulus 3 in their stored order characterize the second coordinate; all bits/bytes equal 0 modulus 3 in their stored order characterize the third coordinate. In general, for N-dimensional space bits/bytes placed on an M position modulus N in a record of a combined coordinate (wherein M stands for a coordinate number and N stands for a number of dimensions of coordinates) characterize the coordinate of a spatial object by M-coordinate, apart from bits/bytes placed on 0 position modulus N in the record of the combined coordinate, because these bits/bytes characterize N-coordinate. [0090] In one implementation, the user device 203 (Fig. 2) receives a request from the user 201 for a map of a current location and surroundings of the user 201. The user device 230 receives coordinates of its current location, for example, but without being limitative, via a wireless communication network (WiFi) or a satellite navigation system (GLONASS, GPS). The user device 230 sends the request to the server 207 via the communication network 205 with an indication of the coordinate of interest and a size of a surrounding area of the coordinate. The server 207 receives the corresponding request from the user device 203 and determines, which map area should be sent to the user device 203 for displaying to the user 201. The server 207 archives map data (the map is represented by a plurality of spatial objects) using the present technology and sends compressed maps to the user device 203. The user device 203 decompresses the received archive and retrieves coordinates of the spatial objects. By using combined coordinates of the spatial objects according to the present technology, the user device 203 retrieves the coordinates of the spatial objects; using these coordinates, the user device 203 renders the map on a screen of the user device 203. In the given example, which is a mere illustration of the present technology and is not intended to limit the scope of the present technology, the present technology is applied twice: firstly, on the side of the server 207, when the server 207 performs archiving (compressing data of spatial objects) of a map area and secondly, on the side of user device 203, when the user device 203 receives compressed data and retrieves the coordinates of the spatial objects from the data.
[0091] In another implementation, the user 201 uses a program for processing images. The program provides to the user 201 a graphical interface and a field; the field displays an image, for example, such an image as in Fig. 1. As an example, but without being limitative, processing a landscape photo will be described. A landscape is characterized by the presence of gradually changing colors in certain places; there can be more than one such areas on a photo. Each area with gradually changing colors can be represented as a gradient change of a color along a certain direction. For a photo each point can be represented by five coordinates: Coordinates along the x and y axes (location coordinates) and coordinates of R, G and B colors (coordinates of basic colors, more specifically, of red, green and blue colors; however, other colors can be user as basic ones). Thus, along the direction of the gradient change, the coordinates of points are changing gradually (a continuous line); colors are changing gradually too. It is a sign of a large number of common parts in coordinates of close points of the photo. For such an image, the present technology can be used conveniently.
[0092] The present solution is not limited by using the binary number system. Any number system can be used, for example, the ternary number system, the octal number system, the decimal number system, the sexadecimal number system and the like. Further, combined number systems can be used, when for different coordinates different number systems are used; or when for one coordinate two systems are used simultaneously (for some values, for example, which are less than a certain threshold, the binary number system is used; and for values, which are more than the certain threshold, the sexadecimal number system or the octal number system is used.
[0093] In one non-limiting embodiment of the present technology, the decimal number system is used for spatial objects. The spatial objects are located on a plane and each object has two information items in the decimal number system along each axis (x-axis and y-axis). A first spatial object is characterized by a coordinate of 17 along the x-axis and 18 along the y-axis. A second spatial object is characterized by a coordinate of 18 along the x-axis and 19 along the y-axis. Combining in the given example will be performed by indicating a first information item of the first spatial object, then a first information item of the second spatial object, then a second information item of the first spatial object, then a second information item of the second spatial object, i.e. information items are indicated sequentially: one item from each coordinate. The combined coordinate of the first spatial object is written as 1178 in the given example. The combined coordinate of the second spatial object is written as 1189. A common part of the combined coordinates of the first spatial object and the second spatial object will be equal two units of information in this number system - 11. Thus, for recording the data of the first spatial object and the second spatial object, using two information items for each spatial object will be required, in total for two spatial objects it will require two indicators and four information items. An information item in the present number system (decimal) requires four bits in the binary number system. Storing will require using two indicators (references) to the common part and 16 bits.
[0094] In other implementations, the same spatial objects will be stored in the binary number system. The first spatial object is characterized by a coordinate of 17 along the x-axis (10001 in the binary number system) and 18 along the y-axis (10010 in the binary number system). The second spatial object is characterized by a coordinate of 18 along the x-axis (10010 in the binary number system) and 19 along the y-axis (10011 in the binary number system). The combined coordinate of the first spatial object is written as 1100000110. The combined coordinate of the second spatial object is written as 1100001101. The common part in the given example is written as 110000, i.e. 6 bits. A first distinct part will be 0110, a second distinct part will be 1101. For storing data of the first spatial object and the second spatial object, using two indicators and four bits for each spatial object (four bits are defining distinct parts), will be required. Thus, using two indicators (references) to the common part and 8 bits will be required.
[0095] In the above-mentioned examples of implementations of the present technology, using two indicators (references) to the common part is mentioned, however these indicators are identical, because they are referencing one common part of the first spatial object and the second spatial object, i.e. only one indicator will be coded; this indicator will be used twice.
[0096] In one implementation, the first spatial object can be stored as is, i.e. without using the indicator to the common part. The indicator to the common part can be stored as a quantity of bits and bytes in the combined coordinate of the first spatial object. In another implementation, both spatial objects can be stored by using the indicator to the common part.
[0097] According to one aspect of the present technology, there is provided an electronic computing device 500. The electronic computing device 500 includes a memory 501 and a processor 502, connected to the memory 501. It should be understood, that the electronic computing device 500 can have more than one processor 502; the processors 502 can be multiple-core; the memory 501 can be implemented as any memory, for example, RAM, primary memory, disks, audio tapes etc. The processor 502 of the electronic computing device 500 is configured to receive a plurality of spatial objects intended for storing. The plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate. Needless to say, it should be understood, that the quantity of coordinates can be different. The first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type. Types of coordinates, as it was mentioned above, are intended to mean a type of coordinate axes in space (angle coordinates, line coordinates and the like), a quantity of information items, which are required for storing a coordinate and the like. The processor 502 of the electronic computing device 500 is configured to form a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type. The coordinate combination can be performed by at least one of the methods, which were described in the present specification; the methods, illustrated in the present specification, are not limiting the present technology. As those skilled in the art will appreciate, other variants of receiving the combined coordinate are possible. The processor 502 of the electronic computing device 500 is further configured to determine a common part 601 of the combined coordinates of at least the first spatial object and the second spatial object.
[0098] The processor 502 is further configured to determine a first distinct part 602, the first distinct part denoting differences between a combined coordinate of the first spatial object; and to determine a second distinct part 603 the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object. The processor 502 is further configured to form a record of: the first spatial object by indicating a reference to the common part 601 of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part 602 and the second spatial object by indicating a reference to the common part 601 of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part 603; The processor 502 is configured to store the formed record of at least the first spatial object and the second spatial object in the memory 501.
[0099] Modifications and improvements to the above-described embodiments of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be exemplary rather than limiting. As those skilled in the art will appreciate, other implementations of the present technology, which are not specifically described in the present specification, but are included in the scope of the appended claims and are obvious from the present specification, are possible. Thus, the scope of legal protection is limited by the scope of the appended claims only.
[00100] The present technology can be described, more specifically, as follows: [00101] 1. A method of storing spatial objects (101), the method executable at a computing device (500), the method comprises: receiving, by the computing device (500), a plurality (101) of spatial objects, intended to be stored; the plurality (101) of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type. forming a record of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; storing the formed record at the computing device (500).
[00102] 2. The method of clause 1, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
[00103] 3. The method of clause 2, wherein indicating combined coordinates comprises comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).
[00104] 4. The method of clause 3, wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate (102) and one of a bit and a byte of a second type coordinate (103).
[00105] 5. The method of clause 2, wherein forming the record of at least the first object and the second object comprises: determining a number of changes of at least one bit and byte of coordinates (102; 103) of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
[00106] 6. The method of any one of clauses 2 to 5, further comprising compressing the formed records of at least the first spatial object and the second spatial object, compressing being executed using at least one frequency compression algorithm.
[00107] 7. The method of any one of clauses 1 to 5, wherein the at least one frequency compression algorithm comprises: Huffman algorithm, LZ algorithm or a combination thereof.
[00108] 8. The method of any one of clauses 1 to 7, wherein prior to the combining, coordinates the coordinates are transformed, such that to decrease informational entropy.
[00109] 9. The method of any one of clauses 1 to 8, wherein the same types of coordinates are used for the first type coordinates (102) and the second type coordinates (103).
[00110] 10. A method of compressing data of spatial objects (101), the method executable at a computer device (500), the method comprises: receiving, by the computing device (500), a plurality (101) of spatial objects, intended to be stored; the plurality (101) of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type. forming a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; determining a common part (601) of the combined coordinates of at least the first spatial object and the second spatial object; determining a first distinct part (602), the first distinct part (602) denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determining a second distinct part (603) of the combined coordinate, the second distinct part (603) denoting differences between the second spatial object and the combined coordinate of the first spatial object. forming a record of: the first spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part (602) the second spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part (603); storing the formed record of at least the first spatial object and the second spatial object on the computing device (500).
[00111] 11. The method of clause 10, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
[00112] 12. The method of clause 11, wherein indicating combined coordinates comprises comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).
[00113] 13. The method of clause 12, wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate (102) and one of a bit and a byte of a second type coordinate (103).
[00114] 14. The method of clause 11, wherein forming combined coordinates of spatial objects includes: determining a number of changes of at least one bit and byte of coordinates (102; 103) of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
[00115] 15. An electronic computing device (500); the electronic computing device
(500) includes a memory (501) and at least one processor (502); the processor (502) is connected to the memory (501); the processor (502) is configured to: receive a plurality of spatial objects (101), intended to be stored; the plurality of spatial objects (101) includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type. form a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates (102; 103) of at least the first type and the second type; determine a common part (601) of the combined coordinates of at least the first spatial object and the second spatial object; determine a first distinct part (602), the first distinct part (602) denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determine a second distinct part (603) of the combined coordinate, the second distinct part (603) denoting differences between the second spatial object and the combined coordinate of the first spatial object. form a record of: the first spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part (602) the second spatial object by indicating a reference to the common part (601) of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part (603); store the formed record of at least the first spatial object and the second spatial object in the memory (501).
[00116] 16. A method of retrieving data of spatial objects (101), the method comprises: retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates (102) of a first type, the second coordinate and the fourth coordinate being represented by the coordinates (103) of a second type. uncombining the combined coordinates when the coordinates of the first spatial object and the second spatial object are retrieved.
[00117] 17. The method of clause 16, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
[00118] 18. The method of clause 17, wherein indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate (102) and at least one of a bit and a byte of a second type coordinate (103).
[00119] 19. The method of clause 18, wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate (102) and one of a bit and a byte of a second type coordinate (103). [00120] 20. The method of any one of clauses 17 to 19, wherein a coordinate pattern is defined, and coordinates are uncombined according to the pattern.
[00121] 21. The method of any one of clauses 17 to 20, wherein the record with the combined indication of coordinates is retrieved by decompressing data; the data has been previously compressed by at least one of: Huffman algorithm, LZ algorithm or a combination thereof.
[00122] 22. The method of any one of clauses 16 to 21, the first type coordinates and the second type coordinates are of a single coordinate type.

Claims

1. A method of storing spatial objects, the method executable at a computing device, the method comprises: receiving, by the computing device, a plurality of spatial objects, intended to be stored; the plurality of spatial objects including at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a record of at least the first object and the second object by indicating combined coordinates of at least the first type and the second type; storing the formed record at the computing device.
2. The method of claim 1, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
3. The method of claim 2, wherein the indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
4. The method of claim 3, wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
5. The method of claim 2, wherein forming the record of at least the first object and the second object comprises: determining a number of changes of at least one bit and byte of coordinates of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
6. The method of any one of claims 2 to 5, further comprising compressing the formed records of at least the first spatial object and the second spatial object, compressing being executed using at least one frequency compression algorithm.
7. The method of claim 6, wherein the at least one frequency compression algorithm comprises: Huffman algorithm, LZ algorithm or a combination thereof.
8. The method of claim 1, wherein prior to the combining, coordinates the coordinates are transformed, such that to decrease informational entropy.
9. The method of claim 1, the first type coordinates and the second type coordinates are of a single coordinate type.
10. A method of compressing data of spatial objects, the method executable at a computing device, the method comprises: receiving, by the computing device, a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; forming a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type; determining a common part of the combined coordinates of at least the first spatial object and the second spatial object; determining a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determining a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object. forming a record of: the first spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part the second spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part; storing the formed record of at least the first spatial object and the second spatial object on the computing device.
11. The method of claim 10, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
12. The method of claim 11, wherein indicating combined coordinates comprises sequential indicating of at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
13. The method of claim 12, wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
14. The method of claim 11, wherein forming combined coordinates of spatial objects includes: determining a number of changes of at least one bit and byte of coordinates of at least the first type and the second type when comparing the first spatial object and the second spatial object; forming a coordinate pattern wherein one of bits and bytes of coordinates with the lowest number of changes are indicated first.
An electronic computing device; the electronic computing device includes a memory and at least one processor; the processor is connected to the memory; the processor is configured to: receive a plurality of spatial objects, intended to be stored; the plurality of spatial objects includes at least two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; form a combined coordinate of at least the first spatial object and the second spatial object by indicating combined coordinates of at least the first type and the second type; determine a common part of the combined coordinates of at least the first spatial object and the second spatial object; determine a first distinct part, the first distinct part denoting differences between a combined coordinate of the first spatial object and a combined coordinate of the second spatial object; determine a second distinct part of the combined coordinate, the second distinct part denoting differences between the second spatial object and the combined coordinate of the first spatial object. form a record of: the first spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the first distinct part the second spatial object by indicating a reference to the common part of the combined coordinates in the first spatial object and the second spatial object and indicating the second distinct part; store the formed record of at least the first spatial object and the second spatial object in the memory.
16. A method of retrieving data of spatial objects, the method comprises: retrieving a record with a combined indication of the coordinates at least of the first type and the second type of a plurality of spatial objects; the plurality of spatial objects includes at lest two spatial objects: a first object, characterized at least by a first coordinate and a second coordinate; and a second object, characterized at least by a third coordinate and a fourth coordinate; the first coordinate and the third coordinate being represented by the coordinates of a first type, the second coordinate and the fourth coordinate being represented by the coordinates of a second type; uncombining the combined coordinates when the coordinates of the first spatial object and the second spatial object are retrieved.
17. The method of claim 16, wherein the first and second coordinates are represented as sets of at least one of bits and bytes.
18. The method of claim 17, wherein indicating combined coordinates comprises comprises sequential indicating of at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate.
19. The method of claim 18 wherein the sequential indicating at least one of a bit and a byte of a first type coordinate and at least one of a bit and a byte of a second type coordinate comprises sequential indicating of one of a bit and a byte of a first type coordinate and one of a bit and a byte of a second type coordinate.
20. The method of claim 17, wherein a coordinate pattern is defined, and coordinates are uncombined according to the pattern.
21. The method of any one of claims 17 to 20, wherein the record with the combined indication of coordinates is retrieved by decompressing data; the data has been previously compressed by at least one of: Huffman algorithm, LZ algorithm or a combination thereof.
2. The method of claim 16, the first type coordinates and the second type coordinates are of a single coordinate type.
PCT/IB2016/050521 2015-09-17 2016-02-02 Method and device for storing and compressing data of spatial objects WO2017046656A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2015139563A RU2015139563A (en) 2015-09-17 2015-09-17 METHOD AND DEVICE FOR STORING AND COMPRESSING DATA ON SPATIAL OBJECTS
RU2015139563 2015-09-17

Publications (1)

Publication Number Publication Date
WO2017046656A1 true WO2017046656A1 (en) 2017-03-23

Family

ID=58288198

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2016/050521 WO2017046656A1 (en) 2015-09-17 2016-02-02 Method and device for storing and compressing data of spatial objects

Country Status (2)

Country Link
RU (1) RU2015139563A (en)
WO (1) WO2017046656A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116563950A (en) * 2023-07-07 2023-08-08 东莞先知大数据有限公司 Long jump distance determining method and device, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997013372A2 (en) * 1995-10-05 1997-04-10 Microsoft Corporation Feature-based video compression method
US20060215923A1 (en) * 2005-03-25 2006-09-28 Microsoft Corporation Lossless compression algorithms for spatial data
US8493381B1 (en) * 2008-04-14 2013-07-23 Google Inc. Methods and systems for geometry compression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997013372A2 (en) * 1995-10-05 1997-04-10 Microsoft Corporation Feature-based video compression method
US20060215923A1 (en) * 2005-03-25 2006-09-28 Microsoft Corporation Lossless compression algorithms for spatial data
US8493381B1 (en) * 2008-04-14 2013-07-23 Google Inc. Methods and systems for geometry compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116563950A (en) * 2023-07-07 2023-08-08 东莞先知大数据有限公司 Long jump distance determining method and device, electronic equipment and storage medium
CN116563950B (en) * 2023-07-07 2024-04-16 东莞先知大数据有限公司 Long jump distance determining method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
RU2015139563A (en) 2017-03-22

Similar Documents

Publication Publication Date Title
US8878851B2 (en) Method and system for streaming documents, e-mail attachments and maps to wireless devices
CN111399956A (en) Content display method and device applied to display equipment and electronic equipment
US10521144B2 (en) Data block storage by splitting file content and file headers for independent storage
CN110222775B (en) Image processing method, image processing device, electronic equipment and computer readable storage medium
US20090079729A1 (en) Rendering three-dimensional objects on a server computer
US8856262B1 (en) Cloud-based image hosting
CN110069191B (en) Terminal-based image dragging deformation implementation method and device
US20230169729A1 (en) Tile three-dimensional mapping tool
CN112966469A (en) Method, device and equipment for processing chart in document and storage medium
US9373272B2 (en) Dynamically updating map projections
CN114330277B (en) Reading typesetting method, device, equipment and storage medium
CN109615668B (en) Component-based digital image synchronization
CN111383329A (en) Three-dimensional image display method and device based on browser and electronic equipment
CN113347276B (en) Mobile access system based on GIS
WO2017046656A1 (en) Method and device for storing and compressing data of spatial objects
CN105453116A (en) Transforming visualized data through visual analytics based on interactivity
CN115146087A (en) Resource recommendation method, device, equipment and storage medium
WO2017092576A1 (en) Method, device, and electronic apparatus for determining area of information operation region
CN112256175B (en) Text display method, text display device, electronic equipment and computer readable storage medium
EP2874072A1 (en) Streaming weather animation
CN110780898A (en) Page data upgrading method and device and electronic equipment
CN111460334A (en) Information display method and device and electronic equipment
CN114785771B (en) Automatic driving data uploading method and device, computer equipment and storage medium
CN114036313B (en) Ethnic group display method and device and electronic equipment
CN111275828B (en) Data processing method and device of three-dimensional assembly and electronic equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16845790

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16845790

Country of ref document: EP

Kind code of ref document: A1