GB2481648A - Encoding geographical route information for use by vehicles in a traffic information system - Google Patents

Encoding geographical route information for use by vehicles in a traffic information system Download PDF

Info

Publication number
GB2481648A
GB2481648A GB201011193A GB201011193A GB2481648A GB 2481648 A GB2481648 A GB 2481648A GB 201011193 A GB201011193 A GB 201011193A GB 201011193 A GB201011193 A GB 201011193A GB 2481648 A GB2481648 A GB 2481648A
Authority
GB
United Kingdom
Prior art keywords
points
route
routing
specified distance
end point
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
GB201011193A
Other versions
GB201011193D0 (en
Inventor
Uri Lavee
Alan Henry Jones
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ITIS GLOBAL SERVICES Ltd
Original Assignee
ITIS GLOBAL SERVICES Ltd
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 ITIS GLOBAL SERVICES Ltd filed Critical ITIS GLOBAL SERVICES Ltd
Priority to GB201011193A priority Critical patent/GB2481648A/en
Publication of GB201011193D0 publication Critical patent/GB201011193D0/en
Publication of GB2481648A publication Critical patent/GB2481648A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)

Abstract

A method of encoding a geographical route is provided comprising: defining a first and second end point 21a,21b of the route, and the path of the route 20 between the points; defining at least one routing point 21c lying on said path 20 between the first and second end points 21a, 21b, such that the first end point 21a, the at least one routing point 21c, and the second end point 21b form a sequence of points along the route 20; the at least one routing point 21c being at a specified distance T from the first end point 21a; carrying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding further points 21d to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points uniquely defines the path of the route between them. The method is particularly suited to improving the efficiency and minimizing the time required to encode a route.

Description

SYSTEM AND METHOD FOR ENCODiNG GEOGRAPHICAL INFORMATION
TECHNICAL FIELD
This invention relates to systems and methods for encoding geographical route information; and in particular to the use of such systems and methods for encoding geographical route information for use by vehicles in a traffic information system. The invention can be applied to many encoding systems, for example, but not exclusively limited to, systems using the AGORA-C standard.
BACKGROUND
In the field of telematics, it is necessary to transmit route information from a source to a receiver so that the receiver can unambiguously reconstruct the same route as was intended by the source. This may be needed, for example, in order to provide traffic information services, conduct traffic management, or to assist emergency, or other location dependent, services. Further, it is required that the route intended by the source can be unambiguously reconstructed at the receiver even when there are inconsistencies between the map databases used at the transmifter and receiver. Such inconsistencies can arise, for example, because the transmifter and receiver may have different map database versions issued at different times, or by different publishers. Further, the transmission of route information between a source and a receiver is generally subject to limitations such as cost, transmission rate, or available communications resources, so that it is generally desirable to keep the amount of route information transmifted as low as possible. This is particularly the case if one or more of the source and destination is a vehicle so that at least a part of the transmission must take place through a wireless link.
One known technique for transmitting route information is defined in the AGORA-C standard. According to AGORA-C a route is encoded by a transmitter defining a number of routing points which unambiguously define the intended route. The defined routing points are sent to a receiver, which decodes the routing points to reproduce the original route.
A problem which has been encountered with systems according to the AGORA-C standard, and other techniques of this type, is that the computational demands of encoding an intended route, and also of decoding the intended route, can be very high. This can result in unacceptable delay in encoding, transmitting, and decoding a route, and/or unacceptable cost and complexity of the encoding apparatus and decoding apparatus.
SUMMARY
According to a first aspect of the present invention there is provided a method of encoding a route, the method comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at a specified distance from the first end point; caffying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding further points to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
According to a second aspect of the present invention there is provided an apparatus adapted to encode a route, the apparatus comprising: means adapted to define a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; means adapted to define at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at a specified distance from the first end point; means adapted to cany out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding firther points to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
According to a third aspect of the present invention there is provided a computer program comprising instructions executable by a processor of a computing device to cause said device to implement a method of encoding a route comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at or close to a specified distance from the first end point; canying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding fIrther points to the sequence of points between said pair of points, the frirther points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
According to a third aspect of the present invention there is provided an article of manufacture comprising: a machine readable storage medium; and a first set of executable program instructions embodied in the machine readable storage medium that when executed by a programmable system cause the system to perform frmnctions encoding a route comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at or close to a specified distance from the first end point; carrying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding frirther points to the sequence of points between said pair of points, the further points lying on the path between said pair ofpoints, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of the present invention, and to show how the same may be carned into effect, reference will now be made, by way of example only, to the accompanying drawings, in which: Figure 1 shows an explanatory diagram of a system using AGORA-C; Figure 2 shows an explanatory diagram of the operation of AGORA-C; Figures 3a to 3c show different stages in the encoding of a route according to a first embodiment of the invention; Figure 4 shows an explanatory graph; Figure 5 shows an explanatory graph; and Figures 6a and 6b show different stages in the encoding of a route according to a third embodiment of the invention.
DETAILED DESCRIPTION
Reference will now be made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying figures. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the invention.
Preferred embodiments of the invention are discussed below in terms of their application to a system and method to encode, transmit, and decode route information. The discussion refers to systems and methods according to the AGORA-C standard. However, this is by way of example only. The present invention is not limited to systems using AGORA-C, and the present invention can be applied to other route encoding, transmitting and decoding methods and protocols.
Referring to Figure 1, an exemplary traffic information system 1 is shown. The traffic information system 1 comprises a base station 2 and a mobile station 4 mounted in a vehicle 3.
The base station 2 comprises a route encoder 6 and a first map database 7. The mobile station 4 comprises a route decoder 8 and a second map database 9. In operation the base station 2 acts as a sender, sending route information identifkjing a route to be followed by the vehicle 3 to the mobile station 4 through a wireless link 5. The mobile station 4 acts as a receiver, receiving the route information from the base station 2. In general, the route information is generated by the base station 2 in response to a request for route advice from the mobile station 4.
It should be understood that this is merely an outline of a traffic information system to assist in understanding the present invention. The present invention can be applied to the sending of information between any encoder and decoder, although the sending of route information from a fixed base station to a mobile station is expected to be the most common application of the invention in practice. Route information may have a number of fijnctions.
For example, the route information may be used to identifkj a route intended to be followed by the mobile station, or route information may be used with traffic information to identifkj a section of road referred to by the traffic information, such as a traffic queue or a stretch of road affected by roadworks.
Referring to Figure 2, the first map database 7 in the base station 2 comprises map data defining a network of roads 10. An intended route 11 running along roads 10 is encoded by the encoder 6, which uses map data from the first map database 7 to define a series of routing points 12, in the illustrated examplc 12a to 12d, arranged as waypoints along the route 11 as locations in the map data of the first map database 7. Information 13 identifkjing the encoded series of routing points 12a to 12d is then sent from the base station 2 to the mobile station 4. The second map database 9 in the mobile station 4 also comprises map data defining the network of roads 10. The intended route 11 is decoded by the decoder 8, which uses map data from the second map database 9 to interpret the series of routing points 12a to 12d as locations in the map data of the second map database 9, and decodes the series of routing points 12a to 12d to reconstruct the intended route 11. The series of routing points 12a to 12d are selected so that the decoding by the decoder 8 is expected to reproduce the original intended route 11.
In practice there may be discrepancies between the map data in the first map database 7 and the map data in the second map database 9. This can arise, for example, because the first map database 7 and the second map database 9 have different versions of the map data issued at different times, or by different vendors. In figure 2 these discrepancies are represented by the network of roads 10 appearing slightly different in the databases 7 and 9, although the data in both of the databases 7 and 9 is intended to represent the same real physical network of roads.
In order to select the series of routing points 12 used, and to ensure that they unambiguously encode the intended route 11, the encoder 6 caffies out an iterative encoding process. First, the end points of the route are selected as an initial pair of routing points. Then, the encoder 6 performs a validation process to confirm whether the pair of routing points allows the intended route between them to be unambiguously reconstructed using the first map database 7 at the base station 2.
If the validation confirms that the pair of routing points does allow the intended route between them to be unambiguously reconstructed, this pair of routing points is used to encode the route. Alternatively, if the pair of routing points does not allow the intended route to be unambiguously reconstructed, a further intermediate routing point is added at a location on the route between the pair of routing points to provide a series of consecutive routing points defining between them a series of consecutive partial routes.
The validation process is then repeated on the new series of routing points to confirm whether each pair of consecutive routing points making up the new series of routing points allows the intended partial route between them to be unambiguously reconstructed. If the validation confirms that a pair of consecutive routing points does allow the intended partial route between them to be unambiguously reconstructed, then this pair of consecutive routing points is used to encode that part of the intended route. Alternatively, if a pair of consecutive routing points does not allow the intended partial route between them to be unambiguously reconstructed, a further intermediate routing point is added on the route between the pair of consecutive routing points to provide a new series of consecutive routing points which collectively define between them a new series of consecutive partial routes.
The encoder 6 iteratively repeats the steps of validating the series of routing points and adding intermediate routing points on the route between pairs of consecutive routing points that do not allow the intended partial route between them to be unambiguously reconstructed, until it is determined that every pair of consecutive routing points in the series allows the intended partial route between them to be unambiguously reconstructed. The series of routing points is then accepted as validated.
Clearly, if every pair of consecutive routing points in a series of consecutive routing points unambiguously defines the partial route between them, the series of consecutive routing points as a whole will unambiguously define the route as a whole.
Information 13 defining the validated series of routing points 12 is then sent to the mobile unit 4, where the decoder 8 interprets the received encoded routing point information 13 to reproduce the intended route 11.
In some embodiments it may be prefeffed that the routing points 12 are selected to be located at geographical features of the network of roads 10, such as road junctions, which are recorded in the map databases 7 and 9, to ensure that the locations of the routing points 12 can be easily identified by the decoder 8 even if there are inconsistencies between the first map database 7 and the second map database 9.
In other embodiments, it may be preferred to select the routing points to be in the middle of road sections between junctions, where no other roads are nearby.
One known protocol for encoding, transmitting, and decoding route information is AGORA-C. In AGORA-C, in order to validate whether a pair of routing points unambiguously defines the intended route between them, all available routes passing between the pair of routing points are identified and assigned a value, using a cost function. The values assigned to the different available routes are compared, and the route having the best value is accepted as being a route uniquely defined by the pair of routing points, provided that the route having the best value has a value at least 25% better than any alternative route between the pair of routing points. In AGORA-C, the series of routing points are selected so that the route having the best value, which is to say the route having the lowest cost, between the series of routing points is identical to the intended route which it is desiid to encode. Thus, in AGORA-C, in order to validate that a series of routing points unambiguously defines the intended route between them, any sub-part of the route having the best value must have a value at least 25% better than any disjoint alternative route to that sub-part. Thus, all routes between two consecutive points in the series of routing points on the intended route that do not use any part of the intended route, must have a cost that is at least 25% greater than the cost of the intended route between that pair of points.
It can be checked, or confirmed, that this has been achieved by artificially increasing the cost of the road segments on the intended route by 25%, and then running a conventional routing algorithm to find the lowest cost route between a pair of routing points. If this found route is identical to the intended route between the pair of routing points, then there cannot be any route between the pair of routing points that has a cost that is not at least 25% greater then the cost of the intended route between that pair of points. This applies even if the pair of routing points are not consecutive routing points in the series. In this case, if the found route is identical to the intended route between the pair of routing points, then there cannot be any route between any two consecutive points in the section of the intended route between the pair of routing points that have a cost that is not at least 25% greater then the cost of the intended route between those two consecutive points.
As discussed above, the map data in the first map database 7 and the second map database 9 may be different even though the map data in both databases is intended to represent the same road network. As a result, the decoder 8 will not necessarily produce a route identical to the intended route 11 from the series of routing points provided by the encoder 6. It is for this reason that there is the requirement that, when validating a pair of routing points, the route having the best value must have a value at least 25% better than the route having the next best value. This requirement provides a margin of enor to make it more likely that any discrepancies between the map data in the first map database 7 and the map data in the second map database 9 do not result in an incorrect route being selected during decoding of an encoded route by the decoder 8. Although 25% is the figure used in AGORA-C, different margins may be used in different systems or circumstances. For example, if the base station 2 and mobile station 4 are known to have identical first and second map databases 7 and 9 it might be sufficient to validate a pair of routing points merely by confirming that they define a route having a better value than any other possible route.
In general, each available route between a pair of routing points through a road network will run along a number of route segments extending along roads between road junctions. Tn a prefeffed arrangement, the value assigned to each available route is determined by giving each route segment making up a route a value, determining the sum of the values given to all of the route segments making up the route, and assigning this sum as a value to the route. The value given to each route segment is based on the length of the route segment weighted with a weighting factor derived from the type of road making up the route segment.
In this affangement, the weighting factor applied to a route segment is lower if use of the type of road making up the route segment is prefeffed, for example if the average travel speed expected on that type ofroad is higher. In this arrangement a route having a lower weighted value will be regarded as having a better value.
In AGORA-C, the weighting factor for the cost assigned to each road section is based upon the type of the road, e.g. motorway, major road, or minor road, which are usually defined and available from the map data stored in the first map database used by the encoder.
In order to validate a series of routing points this validation process is followed to validate each pair of successive routing points in the series. As explained above, if all of the pairs of successive routing points are successfully validated, the series of routing points as a whole is successfully validated.
A similar decoding process of assigning values to all possible routes through the set of routing points and selecting the route having the best value is caffied out by the decoder 8 to decode a series of routing points 12 and determine the decoded route. It is of course intended that this should be identical to the original intended route.
A problem with this approach is that both coding and validating a series of routing points by the encoder at the sender, and decoding of the series of routing points by the decoder at the receiver, require calculating many different routes between each successive pair of routing points in the series. Although the coding, decoding and validating procedure according to AGORA-C is described above, it will be understood that this problem is also encountered with other methods of coding, decoding and validating.
In practice, both the coding and validating, and the decoding, are done by running a respective routing algorithm that searches and identifies the available routes between pairs of routing points. The operating principles of such routing algorithms are well known in the art and do not need to be discussed in detail in the present application. Although the processing carned out by the respective routing algorithms in the sender, to code and validate the routing points, and in the receiver, to decode the routing points, are similar, it is not essential that these routing algorithms are identical. It may be necessary, for example, to use a different algorithm in the sender and receiver because they have different processing capabilities.
In general, the computational complexity of such a search is related to the number of road junctions which must be searched through, or the number of links, that is road sections, which must be searched through. Which of these two measures determines the complexity of the search will depend on how the search is caffied out in any particular implementation.
Although the number ofjunctions and the number of links are not identical they are in practice closely related.
One common method to cay out such a search is for a routing algorithm to search the available routes between two routing points by searching a graph that represents the road network to find the least cost route solution connecting the two routing points. In this method, the computational complexity of the search is related to the number of nodes which must be searched through in the graph, which coffesponds to the number of road junctions in the section of the road network represented by the graph.
As a result, it has been found that although systems and methods such as AGORA-C can be readily implemented for short routes that require only a small number of road links and nodes to be searched in order to encode or decode a series of routing points, for long routes the amount of computation required to cariy out the encoding and/or decoding can be unacceptably high, resulting in an unacceptable delay while a desired route is encoded and validated at the sender, and/or while it is decoded at the receiver.
A first embodiment of the present invention now will be explained with reference to Figures 3A to 3C. In the first embodiment, as shown in Figure 3A, an intended route 20 is defined and the end points of the intended route 20 are identified. End routing points 21 a and 21b are then located at the end points of the intended route 20.
Then, the length of the intended route 20 between the end routing points 21a and 21b, that is, the length of the intended route between its end points, is measured and compared to a predetermined threshold distance value. If the length of the intended route 20 between the end routing points 21a and 21b is less than the threshold distance value no action is taken.
However, if the length of the intended route 20 between the end routing points 21a and 21b is greater than the threshold distance value, further routing points 21c are inserted along the intended route 20 between the end routing points 21a and 21b, dividing the intended route 20 into a series of consecutive partial routes 20a, as shown in Figure 3B. The number and location of the added firther routing points 21 c are selected so that the distance between each two successive routing points 21a to 21c in the series of initial routing points 21a to 21c, and thus the length of each partial route 20a, is equal to or less than a threshold distance T corresponding to the threshold distance value.
In general, the added further routing points 21 c may be arranged in any convenient manner along the intended route 20 provided that each consecutive pair of the routing points 21a to 21c are spaced by no more than the threshold distance T. For example, the added routing points 21 c may be located substantially evenly spaced along the intended route 20 between the end routing points 21 a and 21 b, or they may be arranged to be spaced apart by approximately the threshold distance T starting from one of the end routing points 21a or 21b, or some other convenient arrangement may be used. In a specific implementation of the invention the most convenient arrangement of the added frirther routing points may be determined by the manner in which the intended route is processed and encoded. For example, if the encoding method used starts from one end routing point and works along the intended route towards the other end routing point, it may be convenient to add a series of routing points spaced apart by the threshold distance T starting from said one end routing point.
In practice, it is of course unlikely that the total length of the intended route 20 will be an integer multiple of the threshold distance T. This could be dealt with by adjusting the threshold distance so that the length of the intended route is an integer multiple of the threshold distance, preferably by slightly reducing the threshold distance. Alternatively, in order allow for any difference between the length of the intended route and an integer multiple of the threshold distance it may be convenient to have at least one consecutive pair of routing points spaced by significantly less than the threshold distance. When the routing points are added in order starting from one end routing point, this closely spaced pair of routing points can conveniently be the final pair of routing points. Alternatively, in order allow for any difference between the length of the intended route and an integer multiple of the threshold distance it would be possible, as an exception to the threshold, to have at least one consecutive pair of routing points spaced by significantly more than the threshold distance.
The series of initial routing points 21a to 21c is then validated in the same way as discussed above using an iterative process of validating pairs of successive routing points 21a to 21c, and adding intermediate routing points 21d as necessary, as shown in Figure 3C, until all of the pairs of successive routing points 21a to 21d are successftilly validated and the series of routing points as a whole is successfully validated. In the illustrated example of Figure 3C intermediate routing points 21d have been added between some, but not all, of the initial routing points 21 a to 21 c. It will be understood that for any particular intended route, one, or plural, intermediate routing points 21 d may need to be added between all, some, or none, of the initial routing points 21a to 21c, depending on the results of the iterative validation process.
The validated series of routing points is then sent to a receiver and is decoded to reproduce the original intended route in the same manner as described above. It will be understood that the manner in which the routing points have been selected by the sender during encoding and validation does not affect the manner in which they are decoded by the receiver.
As explained above, both validating the routing points at the sender and reproducing the intended route at the receiver are carried out by a respective routing algorithm that searches the available routes between pairs of routing points. The computational complexity of searching the available routes between pairs of routing points is related to the number of road junctions which must be searched through, the relationship being that the computational complexity increases with the number of road junctions searched through.
In practice it has been found that the computational complexity of searching the available routes between pairs of routing points generally increases faster than the square of the distance between the two routing points. As a result, in the present invention, by adding further routing points which divide the route into a number of route sections which can be separately searched, the total amount of computation, that is the number of operations which must be calTied out, to search the whole route, is reduced. Accordingly, the amount of computation required to validate the route is reduced.
In general, the computational cost of running a router scales roughly as order 0(N2 log N), where N is the linear distance between the end points the router is operating between, and 0 is a scaling factor. This is because the number of links visited by the router, or other road features considered by the router, is the number which are present in a searched area that grows as 0(N2), and that in a conventional router, as each link is visited, an insertion may have to be made into a sorted list of the active links whose length grows as N, and whem the insertion cost is roughly 0(log(N)).
This is illustrated in Figure 4, which shows a graph of processing time used by the central processing unit (cpu) of the router to search a route against the length of the route in meters for route searches carried out in a map database of the German road network for a randomly selected set of routes. The cpu time taken to carry out the search is a measure of the computational complexity, or computing cost, of the search. The graph scale is logarithmic, and it can be seen that the graph approaches a gradient of about 2 for the middle distance routes. It is believed that the longer routes have had their cpu time reduced due to the geographical limitation of the map database to Germany. This is because, for longer routes, part of the expected 0(N2) searched area will lie outside Germany, and so is not present in the map database and cannot be searched.
So, for a route of 1000 km, the computing cost, that is the required cpu may be K * 1000 * 1000 * log(1000) = K * 3,000,000, where K is a scaling factor.
A route of 100 km takes roughly K * 100 * 100 * log(100) = K * 20,000.
So, if we have a route of 1000 1cm, but insert an added routing point at about every 100km, we can verifkj the route by ten searches at a total cost of 10 * K * 20,000 = K * 200,000, rather than a single search at a cost of K * 3,000,000. We have thus reduced the overall cost by a factor of about 15.
If we place an added routing point every 10km, then we will have to run a router to search lOOtimes at atotal cost ofaround 100 * K * 10 * 10 * log(10) = K < 10,000, which reduces the cost by a factor of about 300 compared to searching the entire route as a single search.
However, placing frirther added routing points to frirther reduce the distance of each search will not continue to be advantageous indefinitely. At some point, other fixed costs of running each small route search start to become significant, so the gains in computing efficiency get smaller, and eventually running the router over shorter search distances becomes counter-productive.
Further, the locations of the routing points must be sent from the encoder to the decoder, and the amount of routing point location data which must be sent will increase if the number of added routing points becomes larger than the number of routing points required to uniquely define the intended route. When AGORA-C is used, as the number of routing points is increased, the size of the Agora string which must be sent from the encoder to the decoder is increased.
As a result, in practice, the best, or optimum, threshold value for any specific implementation will depend on the details of the encoder and decoder being used, and may also depend upon the relative importance attached to different performance criteria. However, in each case the skilled person will be able to determine the optimum threshold value.
Thus, the present invention allows the amount of computation required to validate a route to be reduced so that the problems of unacceptable delay in encoding a route, and/or unacceptable cost and complexity of the encoding apparatus can be avoided. It will be understood that these problems are interrelated because in general there is a trade-off between the time taken to cay out an amount of computation and the cost and complexity of the computing apparatus used.
As explained above, the reproducing of a route at the receiver requires similar searching to that used for validation. Accordingly, the present invention also allows the amount of computation required to reproduce a route to be reduced so that the problems of unacceptable delay in decoding a route, and/or unacceptable cost and complexity of the decoding apparatus can be avoided.
It might be expected that the problem of the computational complexity of searching the available routes between routing points would not arise during decoding at the receiver because the routing points will have been placed at locations uniquely defining the route between them during the encoding and validation at the sender. However, it is possible for a pair of routing points to define a unique route between them and still be far enough apart that the computational complexity of searching the available routes between them is a problem.
Further, the receiver may have significantly lower data processing capabilities than the sender, for example when the receiver carrying out the decoding is a mobile unit in a vehicle, or carned by a person.
The amount of computation required to reconstruct a long route will be further reduced because using the initial series of routing points provided by adding the further routing points 21c between the end routing points 21a and 21b will reduce the complexity of the route finding process between each pair of routing points by such a large factor that the complexity of the overall reconstruction will be drastically reduced.
In practice, when using AGORA-C, using a threshold of 6km between successive initial routing points has been found to be successful at improving performance of the encoding and validation by an encoder and of the reconstruction by a decoder.
As discussed above, it may be prefeffed that routing points are selected to be placed at geographical locations, such as road junctions, which are recorded in the map data in the map databases. In AGORA-C, road junctions recorded in the map database are refeffed to as intersection points. In AGORA-C, the use of such intersection points as the routing points will allow the amount of data sent from the encoder to the decoder, the AGORA string, to be reduced. In order to allow sufficient choice of location to do this it is preferred to allow some leeway in the location of the added further routing points instead of placing them exactly at the threshold distance. That is, the threshold value is treated as a target distance rather than a strict maximum. Preferably, in order to avoid the separation of the consecutive routing points becoming too large or small as a result of this leeway, an upper limit is placed on the amount of leeway or variance from the threshold value which is permitted, so that the threshold distance value is defined as a band of acceptable distance values. If no suitable geographical location on the intended route lies within this band of acceptable distance values a point on the intended route and within this band which is not a prefeffed geographical location is selected. For example, when using AGORA-C, using a threshold of 6km plus or minus 2km between successive initial routing points has been found to be successful at improving performance of the encoding and validation by an encoder and of the reconstruction by a decoder.
There are a number of ways in which this can be done. For example, the further routing points could be selected so that the distance between each two successive routing points 21 a to 21 c in the series of initial routing points 21 a to 21 c is within a predetermined range, the upper limit of this range corresponding to the threshold value. For example, if an absolute maximum distance between successive routing points of 6km is desired, this could be defined as a distance range of 4 to 6km. Other definitions are possible, for example, a threshold of 5km with a maximum variance of 1km.
As discussed above, there are possible advantages in defining the threshold distance as a range of distances. However, this approach also has a disadvantage, compared to setting the threshold distance to be a fixed value, that the router will not generally be operating at its most optimal or efficient, so the required processing time will increase slightly.
A method of finding appropriate values for threshold distances and ranges will be discussed with reference to Figure 5. Figure 5 shows a graph of total cpu time against the size of the AGORA string for an AGORA-C system to validate the same route for a set of different threshold distance ranges having different threshold and variance values. In this example the route has a total length of 870km.
For example, the point at (3728 bytes, 0.11 s) was generated from a spacing range of 8km to 9.5km, or 8.75km +-0.75km, while the point at (4340 bytes, 0.078 s) was generated by a range from 6km to 7km, or 6.5km +-0.5km.
A graph of this type will allow the skilled person to identify a best spacing range having low values in both time and string size. Since the specific values will vary for different implementations, all of the distance ranges coffesponding to the different points shown in the graph will not be listed here.
In this case, an implementer can advantageously choose between a string size of 3.Skbytes requiring 0.13 seconds of cpu time, or a string size of 4.3kbytes requiring a time of 0.08 seconds. These points correspond to actual threshold distances involved in the routing point placement of around 8km, and a good allowed variance in range is about plus or minus 1km.
As discussed above, if the threshold distance selected is too low the number of routing points used to define a route can become relatively large, undesirably increasing the amount of routing point information which must be transmitted to the receiver. This is a particular problem where either or both of the sender and receiver are a mobile station so that the sender and receiver are connected by a wireless communication link, which may have a relatively low bandwidth or a relatively high cost. Further, the separation of the intended route into a plurality of partial routes extending between successive routing points, and the subsequent reintegration of the partial routes, requires computational effort. Thus, if the threshold selected is too low the increased computational effort required to carry out these operations will tend to counteract the saving in computational effort required to check the route. In extreme cases, this could even result in an increase in the total amount of computation required.
These potential problems can be avoided by appropriate selection of the threshold distance. In practice the appropriate threshold distance, or distance range, will depend on the properties of the sender and receiver and the communication system connecting them, and the properties of the relevant road network. The skilled person will be able to readily determine an appropriate threshold on a case by case basis in practice.
In further embodiments the invention is improved by arranging that the threshold distance between routing points is not predetermined and fixed, but instead is varied based upon the characteristics of the local road network.
As discussed above, the computational complexity of searching the available routes between pairs of routing points is related to the number of road junctions which must be searched through. As a result, although the computational complexity will increase as the distance between a pair of routing points increases, generally proportionally to the square of the distance, the rate of increase will depend upon the properties of the local road network extending between and around the routing points. In general, the rate of increase will depend upon the rate of increase in the number of road junctions that must be searched, which is a function of the square of the distance between the routing points and the complexity of the local road network, that is, the road density and connectivity and the average distance between junctions along the roads of the local road network.
In a second embodiment, the same method is followed as in the first embodiment, except that the threshold distance is varied at different points along an intended route based upon the properties of the local road network at that part of the intended route, instead of the threshold distance being a constant. In the second embodiment, different areas of the map are assigned values indicating the complexity of the local road network, and the threshold distance used to control the placing of further routing points on an intended route in each area is variable, and is based, at least in part, on this assigned value.
A problem which can be encountered when using the method of the first embodiment with a fixed threshold distance is that it may be difficult or impossible to select a distance between routing points which is effective at all locations. For example, in a rural area placing a routing point every 6km will generally require an area of about 100km2 to be searched to validate the route section between two consecutive routing points, requiring around 500 road junctions or links to be searched. In contrast, if the same procedure is followed in an urban area the same validation search of about 100km2 will require around 100,000 junctions or links to be searched. As a result, the use of a fixed threshold distance can result in routing points being undesirably close together in mral areas and/or undesirably far apart in urban areas. This problem is overcome in the second embodiment by varying the threshold distance at different points along an intended route based upon the properties of the local road network.
In the second embodiment, one approach is for the assigned values for different areas of the map to be determined in advance. Advantageously, the pre-determined assigned values can then be stored in the sender map database together with the other map data and obtained from the map database as required when an intended route is being encoded.
An alternative approach is to derive the assigned values for each part of an intended route in real time when the route is identified to the encoder to be encoded. When an intended route is identified to the encoder, the encoder processes data regarding the local road network around different parts of the intended route and assigns values speciTing the distance used as a threshold to the different parts of the intended route. Conveniently, the data regarding the local road network around different parts of the intended route used to derive the threshold distances can be obtained from the sender map database associated with the encoder.
As a further alternative, a pre-processor could be provided to process data regarding the local road network around different parts of the intended route instead of this processing being caffied out by the encoder itself.
There are a number of ways in which the assigned values can specify the distance, or range of distances used as a threshold. For example, the assigned values could be the actual distance, or range, used as a threshold in each area. Alternatively, the assigned values could simply identify the characteristics of the local road network in each area, for example identifying each area as being urban or rural. The threshold distance used in each area can then be based on the identified characteristics, for example using a first, low, threshold distance in urban areas and a second, high, threshold distance in rural areas.
Similarly to the first embodiment, the threshold distance is preferably a threshold distance range in order to allow the routing points to be placed at geographical locations, if possible. In this case the extent of the range, that is, the maximum distance variance from the threshold value, is preferably different for different threshold values. Generally, it is preferred that the maximum variance is proportional to the threshold value.
The second embodiment provides the firther advantage that the threshold can be matched to the characteristics of the local road network. This allows the amount of computation required to validate a route in areas having a more complex road network to be reduced without unnecessary routing points being specified in areas having a less complex road network.
In a third embodiment the threshold is not defined directly in terms of distance, but is instead defined as the number of road junctions lying along the intended route between two successive routing points. It will be understood that for any intended route any specific number of road junctions along the route will correspond to a specific distance along the route, since road junctions are at specific geographic locations, so that defining a number of road junctions along a route indirectly defines a distance.
In operation, the third embodiment is similar to the first embodiment, except that the threshold is defined in terms of road junctions rather than distance. In the third embodiment, as shown in Figure 6A, an intended route 30 is defined and the end points of the intended route 30 are identified. End routing points 31 a and 3 lb are then located at the end points of the intended route 30. The number of road junctions 32 lying along the intended route 30 are counted and compared to a threshold value. If the number of road junctions lying along the intended route 30 between the end routing points 31a and 3 lb is less than the threshold value no action is taken. However, if the number ofjunctions 32 lying along the intended route 30 between the end routing points 31 a and 3 lb is greater than the threshold value, further routing points 31c are inserted at road junctions 32 along the intended route 30 between the end routing points 31 a and 31 b, dividing the intended route 30 into a series of consecutive partial routes 30a, as shown in Figure 6B. The number and location of the added further routing points 31c are selected so that the number of road junctions 32 between each two successive routing points 31 a to 31 c in the series of initial routing points 31 a to 31 c is less than or equal to the threshold value. In the illustrated example, the threshold value is 2, so that a further routing point 31c is added at every third road junction 32 along the intended route 30.
As explained above, the computational complexity of validating an intended route increases as the number of junctions which must be searched through increases. As a result, the computational effort required to validate a route will generally be related to the number of road junctions which lie along the route. This is because the distance between road junctions along a route will generally reduce as the complexity of the local road network increases.
Accordingly, the second embodiment provides the advantage that basing the location of the further added routing points on the number of road junctions along the route tends to automatically adjust the distance between routing points in response to changes in the complexity of the local road network without it being necessary to directly assess or measure this complexity.
A further advantage of the third embodiment is that the added further routing points are always located at road junctions, which are prefeffed geographical locations for locating routing points.
The first to third embodiments have been described separately above, although the skilled person will understand that they are closely related. It is possible for different ones of the first to third embodiments to be combined together in a single encoder. For example, the first and third embodiments could be combined to locate routing points along an intended route based on the number of road junctions located on the route, but also subject to having a maximum and/or minimum distance between consecutive routing points. The encoder could further use the second embodiment to set the maximum and/or minimum distance based on the complexity of the local road network.
In the first to third embodiments the locations of the added further routing points are based on the properties of the road network recorded in the map database at the sender canying out the encoding. As discussed above, these properties of the road network may be measured and recorded in advance or measured in real time.
In further embodiments of the invention the locations of the added firther routing points can instead be based on the processing of the route data during the encoding and validation.
This approach of basing the locations of the added firther routing points on the processing of the route data during the encoding and validation has the advantage that variations in the properties of the road network can automatically be taken into account.
A fourth embodiment can be used where the common approach is used of a routing algorithm searching the available routes between two routing points by searching nodes in a graph that represents the road network in order to find the least cost route solution connecting the two routing points.
In the fourth embodiment the optimum distance between consecutive routing points is set by limiting the maximum number of nodes which are searched.
In the fourth embodiment, an upper limit is set to the number of nodes which are to be searched in any one route section extending between two consecutive routing points. In a search along any route this upper limit on the number of nodes searched will correspond to a maximum distance searched along the route, although the actual distance searched will of course vary depending on the complexity of the local road network being searched over.
In this fourth embodiment, a router applies a routing algorithm starting from a routing point and carries out a search along the intended route towards the next routing point in the series of routing points. The router keeps a count of the number of nodes searched over by the routing algorithm and compares this to a pre-determined threshold. When the number of nodes searched over reaches the threshold the router stops the searching by the routing algorithm and adds a further routing point to the series of routing points at the location which the search algorithm has reached. Thus, the firther routing point is added at a location on the intended route corresponding to the distance searched along the route by the routing algorithm from the previous routing point.
As discussed above regarding the previous embodiments, it may be preferred to place routing points at geographical features if possible. Accordingly, in the fourth embodiment it may be preferred to place the firther routing point at a geographical feature located on the intended route within a specified distance of the location where the search ended, if such a geographical feature can be identified, rather than placing the frirther routing point on the intended route exactly where the search ended. The specified distance may be fixed or may be proportional to, or otherwise based on, the distance searched along the route since the routing point where the search started. Further, it may be preferred to place the routing point at a geographical feature within a specified distance of the location where the search ended, and also closer to the previous routing point than the location where the search ended, if possible.
The computational complexity of the routing algorithm search is related to the number of nodes which must be searched through. Accordingly, by basing the locations of the frirther routing points on the number of nodes searched through to reach the locations, the amount of computation required to search each route section between two consecutive routing points can be limited to a predetermined amount. This allows the performance of the routing algorithm to be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in response to changes in the properties of the local road network.
The number of nodes which are searched through by the search algorithm is more closely related to the amount of computational effort, processor time or memory required to carry out the search than are distance or estimated complexity of the road network.
Accordingly, the fourth embodiment will allow the performance of the routing algorithm to be better optimized than the earlier embodiments.
A fifth embodiment is similar to the fourth embodiment. However, the fifth embodiment is not limited to routing algorithms which searching nodes in a graph that represents the road network. In the fifth embodiment, instead of counting the number of nodes searched over and basing the distance between routing points on the number of searched nodes, the number of links or road junctions searched is counted and the distance between routing points is based on the number of searched links or junctions. In the fifth embodiment the routing algorithm starts from a routing point and caffies out a search along the intended route towards the next routing point in the series of routing points. The router keeps a count of the number of links or junctions searched by the routing algorithm, and compares this count to a pre-determined threshold. When the number of links or junctions searched reaches the threshold the router stops the routing algorithm and adds a firther routing point to the series of routing points at the location which the search algorithm has reached. Thus, the firther routing point is added at a location on the intended route coffesponding to the distance searched along the route by the routing algorithm from the prnvious routing point.
In general, the computational complexity of the routing algorithm search is related to the number of links or junctions searched. Accordingly, by basing the locations of the firther routing points on the number of links or junctions searched to reach the locations, the amount of computation required to search each route section between two consecutive routing points can be limited to a predetermined amount. This allows the performance of the routing algorithm to be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in the series in response to changes in the properties of the local road network.
The number of links or junctions which are searched by the search algorithm is morn closely related to the processor time or memory required to carry out the search than are distance or estimated complexity of the road network. Accordingly, the fifth embodiment will allow the performance of the routing algorithm to be befter optimized.
The above description of the fifth embodiment refers to basing the location of firther routing points on the number of links or junctions searched over. Which of these should be used in any particular application will depend upon whether the routing algorithm bases its search on links or junctions. Further, if the routing algorithm bases its search on both links and junctions the number of both which have been searched over should be compared to the threshold.
A sixth embodiment can be used where a routing algorithm is used in the encoder.
In general, routing algorithms have a run time to complete a search that grows faster than Order 0(N2), where N is the number of links in the route. The run time required to complete a search is directly related to the number of computational actions required to cany out the search. The run time grows in this way because 0(N2) links must be visited by the algorithm as the possible routes cover an area which grows with N2. Further, when the routing algorithm operates by calculating the weighted cost to reach each link by different routes and recording the minimum weighted cost to reach each link, the algorithm must maintain a list of active links, that is, links which have been reached by a new route at a cost which is lower than before, but where these lower costs have not yet been propagated to frirther links reachable from these active links. Each time a link is visited by a route and is found to have a lower cost than known before the link must be added to this active list so that the links reachable from it can also be updated with the lower cost. This list grows as 0(N), and is sorted by the cost, so insertion of each link into the list has a run time cost that grows as 0(logN). As a result, the run time of routing algorithms tends to grow at 0(N2logN).
Accordingly, as the active list becomes longer, the overheads for updating each link become higher, and the efficiency of the routing algorithm falls. The active list, and a record of the length of the active list, is maintained by the routing algorithm.
In the sixth embodiment, the length of the active link list maintained by the routing algorithm is used to control the distance between consecutive routing points. The router keeps a record ofthe length of the active list maintained by the routing algorithm and compares this length to a pre-determined threshold value. When the length of the active list reaches the threshold value the router stops the routing algorithm and adds a firther routing point to the series of routing points at the location which the search algorithm has reached. Thus, the farther routing point is added at a location on the intended route coffesponding to the distance searched along the route by the routing algorithm from the pmvious routing point.
As explained above, the computational complexity, and the run time, of the routing algorithm is related to the length of the active link list. Accordingly, by basing the locations of the further routing points on the length of the active link list required to reach the locations, the run time required to search each route section between two consecutive routing points can be limited to a predetermined amount. This allows the performance of the routing algorithm to be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in response to changes in the properties of the local road network.
The length of the active link list maintained by the search algorithm is more closely related to the processor time or memory required to carry out the search than are distance or estimated complexity of the road network. Accordingly, the sixth embodiment will allow the performance of the routing algorithm to be beifer optimized.
In a seventh embodiment the locations of the frirther routing points is directly based on the computation time required for the routing algorithm to cany out the validation search.
In the seventh embodiment, the encoder keeps a record of the elapsed computation time or CPU time to carry out the search and compares this to a pre-determined threshold.
When the elapsed time reaches the threshold the encoder stops the routing algorithm and adds a further routing point to the series of routing points at the location which the search algorithm has reached. Thus, the firther routing point is added at a location on the intended route corresponding to the distance searched along the route by the routing algorithm from the previous routing point.
By basing the locations of the frirther routing points on the computation time or CPU time required to reach the locations, the performance of the routing algorithm can be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in response to changes in the properties of the local road network.
In practice, when using AGORA-C, using a threshold of 3Oms cpu time or processing time between successive initial routing points has been found to be successfil at improving performance of the encoding and validation by an encoder.
The direct measurement of computation time or CPU time in the seventh embodiment will allow the performance of the routing algorithm to be heifer optimized.
In an eighth embodiment the locations of the frirther routing points is based on the amount of memory required by the routing algorithm to carry out the validation search.
Some routing algorithms allocate memory for use in a search as the search is carried out so that there is an increase in the amount of memory required as the search is carried out.
In some applications it may be desirable to limit the amount of memory used to carry out the search.
In the eighth embodiment, the encoder keeps a record of the amount of memory allocated to carry out the search and compares this to a pre-determined threshold. When the amount of memory allocated reaches the threshold the encoder stops the routing algorithm and adds a firther routing point to the series of routing points at the location which the search algorithm has reached. Thus, the firther routing point is added at a location on the intended route corresponding to the distance searched along the route by the routing algorithm from the previous routing point.
By basing the locations of the frirther routing points on the amount of memory allocated required for the routing algorithm to reach the locations, the performance of the routing algorithm can be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in response to changes in the properties of the local road network.
The direct measurement of allocated memory in the eighth embodiment will allow the performance of the routing algorithm to be better optimized.
In a ninth embodiment the locations of the firther routing points is based on the computational efficiency of the routing algorithm canying out the validation search.
The concept of computational efficiency can be understood by considering that if the elapsed computation time required by the search algorithm conducting the search is c, the length of the route searched from the last routing point is d, and the total distance to be searched between the last routing point and the next routing point is r, then the total time expected to be required to complete the search is cr/d. This expected total time value cr/d can be regarded as a measure of computational efficiency with an increase in the cr/d value corresponding to a reduction in efficiency, and vice versa. This is because if the computational efficiency increases, clearly the time required to carry out the computation will decrease, and vice-versa.
If the efficiency value cr/d is tracked during a search the value will rise to a maximum value when the distance searched is close to the optimum distance for placing the next frirther routing point, and then decline.
In the ninth embodiment, the encoder keeps a record of the efficiency value during the search and identifies when this value begins to decline. When the value begins to decline the encoder stops the routing algorithm and adds a further routing point to the series of routing points at the location which the search algorithm has reached. Thus, the further routing point is added at a location on the intended route coffesponding to the distance searched along the route by the routing algorithm from the previous routing point.
In the ninth embodiment, for each search the value r will be a constant. Accordingly, as an alternative to tracking the value of cr/d as the efficiency value, as an alternative the encoder could track the value of c/d as the efficiency value, and respond to a decline in this value. As a further alternative, the elapsed central processing unit (cpu) time used by the search algorithm conducting the search could be used as c instead of the elapsed computation time. This may provide a more accurate measure of efficiency where in systems where the search algorithm must share cpu time with other processes. Other definitions of efficiency value may also be used.
In the ninth embodiment there is a risk that a temporary small decline in the calculated efficiency value due to local properties of the road network could trigger premature ending of the search and placing of a further routing point, with the result that successive routing points in the series of routing points will be placed undesirably close together. In order to prevent this it is prefeffed to apply smoothing to the efficiency value before deciding that a drop in the efficiency value has occuffed and should be responded to.
One prefeffed form of smoothing is to only respond to a drop in the calculated efficiency value when the value has dropped by at least a predetermined percentage below its maximum value during the current search. For example a drop could be responded to only when it reaches 5% below the maximum value. This should ensure that the encoder or cpu is operating within 5% of optimum efficiency throughout the encoding and that the smallest number of routing points to allow this are used.
In the ninth embodiment it is preferred that the efficiency value, for example cr/d or c/d are calculated starting at each routing point in the series of routing points defining the intended route. However, as an alternative it would be possible to calculate these values for a route as a whole starting from the first routing point in the series.
By basing the locations of the further routing points on the computational efficiency of the search algorithm caffying out a search to reach the locations, the performance of the routing algorithm can be optimized, ensuring that there are an optimum number of routing points in the series, and automatically adjusting the distance between consecutive routing points in response to changes in the properties of the local road network.
The direct measurement of computational efficiency in the ninth embodiment will allow the performance of the routing algorithm to be better optimized.
As discussed above regarding the fourth embodiment, it is prefeffed to place routing points at geographical features if possible. Accordingly, it may be prefeffed to place a routing point at a geographical feature located on the intended route within a maximum distance of the location where the search ended, if such a geographical feature can be identified, rather than placing the routing point exactly where the search ended. The maximum distance may be fixed or may be proportional to, or otherwise based on, the distance searched along the route since the last routing point. Further, it may be preferred to place the routing point at a geographical feature within a maximum distance of the location where the search ended, and also closer to the previous routing point than the location where the search ended, if possible. This approach of placing routing points near to the location where the search was ended can be applied to any of the fifth to ninth embodiments.
The description of the different embodiments of the invention set out above discusses the invention mainly in terms of improving the performance or efficiency of an encoder.
However, as mentioned above the decoder must also carry out a search so that the performance and efficiency of the decoder can also be improved by the invention.
In some systems the encoder and decoder may have different requirements and capabilities so that it may be desirable to set the distance between consecutive routing points in a sequence based upon the properties of the encoder, or the decoder, or both. In general, this can be done in the different embodiments described above by selecting appropriate values for the different threshold values used in the different embodiments.
Further, in a system where an encoder at a base station may send routing information to a number of different decoders having different performance the maximum distance between consecutive routing points can be set so that the lowest performing decoder using the system can reach desired performance targets when decoding a sequence of routing points.
In the ninth embodiment the placing of routing points is based on the computational efficiency in the encoder. As a tenth embodiment the placing of routing points could instead be based on an estimate of the computational efficiency in the decoder.
In the tenth embodiment, since the distance between consecutive routing points is decided by the encoder, an estimate of the computational efficiency with which the decoder will decode the routing points must be made at the encoder. This can be done, for example, by the encoder calculating the same values cr/d or c/d as the ninth embodiment, but with the estimated elapsed computation time or cpu time of the decoder being used as the value of c.
This estimate can be readily made provided that the relevant characteristics of the decoder are known.
The tenth embodiment may be useful in the common affangement where a system comprises a fixed base station generating encoded routing information and sending the encoded routing information to mobile stations located in vehicles. In such an affangement it is common for the computing resources of each mobile station to be relatively small compared to the computing resources of the base station, and for the computing resources of each mobile station to be fixed, in contrast to the computing resources of the base station, which often can be readily upgraded. As a result it may be useftil for the encoder to base the distance between consecutive routing points on an estimate of the computational efficiency of the decoder.
While various embodiments above refer to the use of AGORA-C, it will be appreciated that this invention can be applied to other route encoding methods and protocols.
For example, embodiments according to the invention for encoding, transmitting and decoding route information may be used in a wide variety of applications; including (but not limited to): location-based services, generally; traffic information systems; for emergency purposes; for escape planning; and for security, intelligence, and national defense applications.
The apparatus described above may be implemented at least in part in software. Those skilled in the art will appreciate that the apparatus described above may be implemented using general purpose computer equipment or using bespoke equipment.
The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith, Of course, the server functions may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
Here, aspects of the methods and apparatuses described herein can be executed on a mobile station and on a computing device such as a server. Program aspects of the technology can be thought of as "products" or "articles of manufacture" typically in the form of executable code and/or associated data that is caffied on or embodied in a type of machine readable medium. "Storage" type media include any or all of the memory of the mobile stations, computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives, and the like, which may provide storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunications networks. Such communications, for example, may enable loading of the software from one computer or processor into another computer or processor. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible non-transitory "storage" media, terms such as computer or machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage caffier, a caffier wave medium or physical transaction medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in computer(s) or the like, such as may be used to implement the encoder, the decoder, etc. shown in the drawings. Volatile storage media include dynamic memory, such as the main memory of a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise the bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards, paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will appreciate that while the foregoing has described what are considered to be the best mode and, where appropriate, other modes of performing the invention, the invention should not be limited to specific apparatus configurations or method steps disclosed in this description of the preferred embodiment. It is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings. Those skilled in the art will recognize that the invention has a broad range of applications, and that the embodiments may take a wide range of modifications without departing from the inventive concept as defined in the appended claims.

Claims (60)

  1. CLAIMS: 1. A method of encoding a route, the method comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at a specified distance from the first end point; carrying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding further points to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
  2. 2. The method of claim 1, wherein defining at least one routing point comprises defining a plurality of routing points lying on said path between the first end point and the second end point such that the first end point, said plurality of routing points, and the second end point form a sequence of points along the route; the plurality of routing points being defined such that each routing point is at a specified distance from the preceding point in the sequence.
  3. 3. The method of claim 1 or claim 2, wherein said specified distance is a predetermined fixed distance.
  4. 4. The method of claim 3, wherein the fixed distance is 6km.
  5. 5. The method of claim 1 or claim 2, wherein said specified distance is different at different locations.
  6. 6. The method of claim 5, further comprising obtaining different specified distances associated with different locations.
  7. 7. The method of claim 6, wherein the specified distance associated with each location is obtained from a data store.
  8. 8. The method of claim 6, wherein the specified distance associated with each location is determined based upon the characteristics of the local road network about said location.
  9. 9. The method of claim 8, wherein the specified distance is determined based upon stored data identifying characteristics of the local road network about said location.
  10. 10. The method of claim 8, wherein the specified distance is determined based upon stored data identifying characteristics of the local road network in a plurality of different regions.
  11. 11. The method of claim 8, wherein the specified distance is determined based upon an analysis of characteristics of the local road network about said location.
  12. 12. The method of claim 11, wherein the route lies along at least one road and the specified distance is determined based upon the number of road junctions lying along the path of the route from the previous point in the sequence.
  13. 13. The method of claim 12, wherein the at least one routing point is at a predetermined numbered road junction from the previous point in the sequence.
  14. 14. The method of claim 11, wherein the validation process is caffied out by a routing algorithm searching nodes in a graph that represents the local road network and the specified distance is determined based upon the number of nodes searched by the routing algorithm.
  15. 15. The method of claim 14, wherein the specified distance corresponds to a predetermined number of nodes being searched by the routing algorithm.
  16. 16. The method of claim 11, wherein the validation process is caffied out by a routing algorithm searching the local road network and the specified distance is determined based upon the number of links searched by the routing algorithm.
  17. 17. The method of claim 16, wherein the specified distance coffesponds to a predetermined number of links being searched by the routing algorithm.
  18. 18. The method of claim 11, wherein the validation process is caffied out by a routing algorithm searching the local road network and the specified distance is determined based upon the number of junctions searched by the routing algorithm.
  19. 19. The method of claim 18, wherein the specified distance corresponds to a predetermined number of junctions being searched by the routing algorithm.
  20. 20. The method of claim 11, wherein the validation process is caffied out by a routing algorithm maintaining an active list of links and the specified distance is determined based upon the number of links in the active list searched by the routing algorithm.
  21. 21. The method of claim 20, wherein the specified distance corresponds to a predetermined number of links being in the active list.
  22. 22. The method of claim 11, wherein the validation process is caffied out by a routing algorithm and the specified distance is determined based upon the elapsed time taken by the routing algorithm.
  23. 23. The method of claim 22, wherein the specified distance corresponds to a predetermined period of elapsed time taken by the routing algorithm.
  24. 24. The method of claim 23, wherein the elapsed time is elapsed central processing unit time.
  25. 25. The method of claim 23, wherein the elapsed time is elapsed computation time.
  26. 26. The method of claim 11, wherein the validation process is caffied out by a routing algorithm and the specified distance is determined based upon the amount of memory used by the routing algorithm.
  27. 27. The method of claim 26, wherein the specified distance corresponds to a predetermined amount of memory by the routing algorithm.
  28. 28. The method of claim 11, wherein the validation process is caffied out by a routing algorithm and the specified distance is determined based upon the computation efficiency of the routing algorithm.
  29. 29. The method of claim 28, wherein the specified distance corresponds to a reduction in the computation efficiency of the routing algorithm from a maximum value.
  30. 30. The method of claim 29, wherein the specified distance corresponds to a reduction of the computation efficiency of the routing algorithm by a predetermined amount from a maximum value.
  31. 31. The method of claim 30, wherein the predetermined amount is a percentage of the maximum value.
  32. 32. The method of claim 31, wherein the predetermined amount is 5% of the maximum value.
  33. 33. The method of any one of claims 28 to 32, wherein the computational efficiency of the routing algorithm is defined as computation time taken by the algorithm divided by the distance searched by the algorithm.
  34. 34. The method of claim 33, wherein the distance searched is the distance searched from the previous point in the sequence.
  35. 35. The method of claim 33, wherein the distance searched is the distance searched from the first end point of the route.36. The method of any one of claims 28 to 35, wherein the computational efficiency is the computational efficiency of the routing algorithm caffying out the encoding.
  36. 36. The method of any one of claims 28 to 35, wherein the computational efficiency is an estimate of the computational efficiency of a routing algorithm intended to decode the encoded route.
  37. 37. The method according to any preceding claim, wherein said specified distance is a specified distance range.
  38. 38. The method according to any preceding claim, wherein the validation process is AGORA-C.
  39. 39. The method according to any preceding claim, and frirther comprising, after it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them, outputting the sequence of points.
  40. 40. Apparatus adapted to encode a route, the apparatus comprising: means adapted to define a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; means adapted to define at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at a specified distance from thc first end point; means adapted to cany out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding frirther points to the sequence of points between said pair of points, the further points lying on the path between said pair ofpoints, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
  41. 41. The apparatus of claim 40, wherein said means adapted to define at least one routing point are adapted to define a plurality of routing points lying on said path between the first end point and the second end point such that the first end point, said plurality of routing points, and the second end point form a sequence of points along the route; the plurality of routing points being defined such that each routing point is at a specified distance from the preceding point in the sequence.
  42. 42. The apparatus of claim 40 or claim 41, wherein said specified distance is a predetermined fixed distance.
  43. 43. The apparatus of claim 40 or claim 41, wherein said specified distance is different at different locations.
  44. 44. The apparatus of claim 43, firther comprising means adapted to obtain different specified distances associated with different locations.
  45. 45. The apparatus of claim 44, wherein the specified distance associated with each location is determined based upon the characteristics of the local road network about said location.
  46. 46. The apparatus of claim 45, wherein the specified distance is determined based upon an analysis of characteristics of the local road network about said location.
  47. 47. The apparatus of claim 46, wherein the route lies along at least one road and the specified distance is determined based upon the number of road junctions lying along the path of the route from the previous point in the sequence.
  48. 48. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm searching nodes in a graph that represents the local road network and the specified distance is determined based upon the number of nodes searched by the routing algorithm.
  49. 49. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm searching the local road network and the specified distance is determined based upon the number of links searched by the routing algorithm.
  50. 50. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm searching the local road network and the specified distance is determined based upon the number of junctions searched by the routing algorithm.
  51. 51. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm maintaining an active list of links and the specified distance is determined based upon the number of links in the active list searched by the routing algorithm.
  52. 52. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm and the specified distance is determined based upon the elapsed time taken by the routing algorithm.
  53. 53. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm and the specified distance is determined based upon the amount of memory used by the routing algorithm.
  54. 54. The apparatus of claim 46, wherein the validation process is carried out using a routing algorithm and the specified distance is determined based upon the computation efficiency of the routing algorithm.
  55. 55. The apparatus according to any one of claims 40 to 54, wherein said specified distance is a specified distance range.
  56. 56. The apparatus according to any one of claims 40 to 55, wherein the validation process is that defined by the AGORA-C standard.
  57. 57. The apparatus according to any one of claims 40 to 56, and firther comprising, means adapted to output the sequence of points after it has been determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
  58. 58. A computer program comprising instructions executable by a processor of a computing device to cause said device to implement a method of encoding a route comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at or close to a specified distance from the first end point; carrying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding further points to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.
  59. 59. The computer program according to claim 58 and further comprising instructions executable by a processor of a computing device to cause said device to implement the steps of the method of any one of claims 1 to 39.
  60. 60. An article of manufacture comprising: a machine readable storage medium; and a first set of executable program instructions embodied in the machine readable storage medium that when executed by a programmable system cause the system to perfonn functions encoding a route comprising: defining a first end point of the route, a second end point of the route, and the path of the route between the first and second end points; defining at least one routing point lying on said path between the first end point and the second end point such that the first end point, said at least one routing point, and the second end point form a sequence of points along the route; the at least one routing point being at or close to a specified distance from the first end point; carrying out a validation process to determine whether each pair of consecutive points in the sequence of points uniquely defines the path of the route between them, and if not, adding further points to the sequence of points between said pair of points, the further points lying on the path between said pair of points, until it is determined that each pair of consecutive points in the sequence of points does uniquely define the path of the route between them.t::r: INTELLECTUAL . ...* PROPERTY OFFICE Application No: GB 1011193.8 Examiner: Richard Kersiake Claims searched: 1-60 Date of search: 28 October 2010 Patents Act 1977: Search Report under Section 17 Documents considered to be relevant: Category Relevant Identity of document and passage or figure of particular relevance to claims A -US2004/0111214A1 (BUECHER et al.) A -US5543802A (VILLEVIEILLE et al.) Categories: X Document indicating lack of novelty or inventive A Document indicating technological background and/or state step of the art.Y Document indicating lack of inventive step if P Document published on or after the declared priority date but combined with one or more other documents of before the filing date of this invention.same category.& Member of the same patent family E Patent document published on or after, but with priority date earlier than, the filing date of this application.Field of Search:Search of GB, EP, WO & US patent documents classified in the following areas of the UKCX: Worldwide search of patent documents classified in the following areas of the IPC Goic The following online and other databases have been ised in the preparation of this search report EPODOC,WPI International Classification: Subclass Subgroup Valid From GO1C 0021/34 01/01/2006 Intellectual Property Office is an operating name of the Patent Office www.ipo.gov.uk
GB201011193A 2010-07-02 2010-07-02 Encoding geographical route information for use by vehicles in a traffic information system Withdrawn GB2481648A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB201011193A GB2481648A (en) 2010-07-02 2010-07-02 Encoding geographical route information for use by vehicles in a traffic information system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201011193A GB2481648A (en) 2010-07-02 2010-07-02 Encoding geographical route information for use by vehicles in a traffic information system

Publications (2)

Publication Number Publication Date
GB201011193D0 GB201011193D0 (en) 2010-08-18
GB2481648A true GB2481648A (en) 2012-01-04

Family

ID=42669126

Family Applications (1)

Application Number Title Priority Date Filing Date
GB201011193A Withdrawn GB2481648A (en) 2010-07-02 2010-07-02 Encoding geographical route information for use by vehicles in a traffic information system

Country Status (1)

Country Link
GB (1) GB2481648A (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543802A (en) * 1993-03-01 1996-08-06 Motorola, Inc. Position/navigation device and method
US20040111214A1 (en) * 2001-02-09 2004-06-10 Andreas Buecher Method of exchanging navigation information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543802A (en) * 1993-03-01 1996-08-06 Motorola, Inc. Position/navigation device and method
US20040111214A1 (en) * 2001-02-09 2004-06-10 Andreas Buecher Method of exchanging navigation information

Also Published As

Publication number Publication date
GB201011193D0 (en) 2010-08-18

Similar Documents

Publication Publication Date Title
CN104850604B (en) A kind of user trajectory method for digging based on tensor
CN106165506B (en) Computing device, method and storage medium for identifying rogue access points
TWI500297B (en) Path searching method and path search device
Zhao et al. Using truck probe GPS data to identify and rank roadway bottlenecks
US20060200303A1 (en) The static or dynamic roadway travel time system to determine the path with least travel time between two places
EP2957869B1 (en) Method and apparatus for determining reachable area based on road network
Chaturvedi et al. Multi-modal design of an intelligent transportation system
CN104596531A (en) Navigation route generation method, navigation route generation apparatus, and server
US9344467B2 (en) Sensor data acquisition system and method based on integration of terminal and cloud
Acharya et al. Edge compression of gps data for mobile iot
Movaghar et al. Optimum location of autonomous vehicle lanes: A model considering capacity variation
CN111199451A (en) Car sharing service system and car sharing service method
CN108770057B (en) Method for determining predetermined fingerprint database, method and device for positioning fingerprint, and storage medium
US20150012213A1 (en) Method, system and computer-readable storage mediums for estimating a route
Song et al. Efficient routing through discretization of overlapped road segments in VANETs
KR101313958B1 (en) Methods and system for predicting travel time
CN112651546A (en) Bus route optimization method and system
CN110972258B (en) Method and device for establishing position fingerprint database
JP2014191531A (en) Device, program and method for estimating place of short-time stay of user carrying mobile terminal
CN108574927B (en) Mobile terminal positioning method and device
Mazaré et al. COMPUTING TRAVEL TIMES FROM FILTERED TRAFFIC STATES.
EP3010255A1 (en) Method, system, user terminal and computer programs for estimating user terminal mobile paths through cellular network and map information
GB2481648A (en) Encoding geographical route information for use by vehicles in a traffic information system
El-Sayed et al. An infrastructure based congestion detection and avoidance scheme for VANETs
CN111829530B (en) Evaluation method, evaluation device, storage medium and electronic equipment

Legal Events

Date Code Title Description
732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20141030 AND 20141105

WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)