System and method for optimizing rescue efforts

A system for optimizing rescue efforts includes one or more processors, a network access device and a memory device. The network access device and the memory device are in communication with the one or more processors. The memory device includes an event detection module, a transmission module, and a reception module. The event detection module has instructions that cause the one or more processor to determine a location of an emergency event. The transmission module causes the one or more processors to transmit the location via the network access device to one or more detection systems that are within a detection range of the emergency event, wherein the one or more detection systems are one or more vehicles. The reception module causes the one or more processor to obtaining information regarding the emergency event via the one or more sensors that are within the detection range of the emergency event.

TECHNICAL FIELD

The subject matter described herein relates, in general, to a system and method for optimizing rescue efforts in response to an emergency event.

BACKGROUND

The background description provided is to present the context of the disclosure generally. Work of the inventor, to the extent it may be described in this background section, and aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present technology.

When an emergency event occurs, such as an earthquake, fire, flood, insurrection, and the like, response services may be dispatched to the location of the emergency event to prevent further destruction of property or harm to individuals. In order to assign appropriate response services to the emergency event, the dispatcher may need information regarding the emergency event, including location, type of event, and potential for destruction to property or harm to individuals.

SUMMARY

This section generally summarizes the disclosure and is not a comprehensive explanation of its full scope or all its features.

In one embodiment, a method for optimizing rescue efforts includes the steps of determining a location of an emergency event, transmitting the location to one or more detection systems having one or more sensors that are within a detection range of the emergency event, and obtaining information regarding the emergency event via the one or more sensors of the one or more detection systems that are within the detection range of the emergency event. The one or more detection systems may be one or more vehicles.

In another embodiment, a system for optimizing rescue efforts includes one or more processors, a network access device and a memory device. The network access device and the memory device are in communication with the one or more processors. The memory device includes an event detection module, a transmission module, and a reception module. The event detection module has instructions that cause the one or more processor to determine a location of an emergency event. The transmission module causes the one or more processors to transmit the location via the network access device to one or more detection systems that are within a detection range of the emergency event, wherein the one or more detection systems are one or more vehicles. The reception module causes the one or more processor to obtain information regarding the emergency event via the one or more sensors of the one or more detection systems that are within the detection range of the emergency event.

In yet another embodiment, a non-transitory computer-readable medium for optimizing rescue efforts includes instructions that when executed by one or more processors cause the one or more processors to determine a location of an emergency event, transmit the location to one or more detection systems having one or more sensors that are within a detection range of the emergency event, and obtain information regarding the emergency event via the one or more sensors of the one or more detection systems from the one or more detection systems that are within the detection range of the emergency event. The one or more detection systems may be one or more vehicles.

Further areas of applicability and various methods of enhancing the disclosed technology will become apparent from the description provided. The description and specific examples in this summary are intended for illustration only and are not intended to limit the scope of the present disclosure.

DETAILED DESCRIPTION

A system and method for optimizing rescue efforts utilizes information collected from sensors mounted on one or more vehicles. When an emergency event occurs, the system can send a request out to the one or more vehicles located near the emergency event to provide information from the sensors mounted to the one or more vehicles. This information could include image-related information, such as video or still images of the environment in which the one or more vehicles are operating in. The information received by the system allows the system to determine the threat level of the emergency event. The threat level could include information regarding potential destruction to property and potential harm to individuals. Based on the threat level, the system can then dispatch appropriate response services to respond to the emergency event. By being able to utilize sensor information from one or more vehicles located near the emergency event, the system can have better information regarding the emergency event and therefore provide appropriate response services.

Referring toFIG. 1, an example10of a situation that utilizes a system for optimizing rescue efforts is shown. The example10illustrates a roadway12that allows for the travel of vehicles, such as vehicles16A,16B, and/or16C. As this is just an example, it should be understood that any number of different vehicles may be utilized. Further, the vehicles16A,16B, and/or16C may be any one of several different types of vehicles capable of transporting persons or items from one location to another. In the example shown inFIG. 1, the vehicles16A,16B, and16C are in the form of an automobile. However, the vehicles16A,16B, and/or16C may take any one of several different forms, such as a truck, heavy-duty truck, tractor-trailer, tractor, mining vehicle, military vehicle, and the like. In addition, the vehicles16A,16B, and/or16C may not be limited to ground-based vehicles but could also include aircraft and seagoing vessels as well. The vehicles16A,16B, and/or16C may be autonomous, semi-autonomous or manually operated vehicles according to one or more levels of automation such as the levels defined by the Society of Automotive Engineers (SAE) (e.g., levels 0-5).

The vehicles16A,16B, and/or16C may be equipped with one or more sensor systems18A,18B, and/or18C, respectively. As will be explained in greater detail later in this disclosure, the sensor systems18A,18B, and/or18C may include any one of a number of different sensor systems, such as one or more cameras, LiDAR sensors, temperature sensors, air quality sensors, carbon dioxide/monoxide sensors, and the like. In this example, the sensors systems18A,18B, and18C are cameras each having fields of view22A,22B, and22C, respectively.

The example10includes an emergency event14. Here, the emergency event14is a forest fire. It should be understood that the emergency event could be any type of event that may need a response from police, firefighters, medical personnel, military personnel, and the like. As such, the emergency event could include events caused by natural disasters, weather, and human-related events or combinations thereof. As an example, emergency events could include earthquakes, fires, floods, hurricanes, tornados, volcanic eruptions, civil insurrections, criminal activity, wars, and the like.

Currently, some systems rely on individuals to contact a dispatch system, such as a911system commonly utilized in the United States. From there, the dispatch system would collect information from the individual and dispatch a response. However, information from individuals can be unreliable, as it can be antiquated, secondhand information, or be false, exaggerated, or understated.

The system for optimizing rescue efforts requests information from one or more electronic systems20A,20B, and/or20C of the vehicles16A,16B, and/or16C, respectively. The electronic systems20A,20B, and/or20C may be connected to the sensors systems18A,18B, and/or18C, respectively. The electronic systems20A,20B, and/or20C may then provide the system for optimizing rescue efforts information from the sensors systems18A,18B, and/or18C. From there, the system for optimizing rescue efforts can then utilize the information from the sensors systems18A,18B, and/or18C so as to dispatch the appropriate response services. In this example, the fields of view22A,22B, and22C may provide different perspectives of the emergency event14. As such, the system for optimizing rescue efforts could utilize this information from different perspectives to determine the appropriate response services that should be dispatched.

For example, as will be explained in greater detail later in this disclosure, information from the sensors systems18A,18B, and/or18C could include information regarding the potential destruction of property and/or potential loss of life. Based on these factors, a threat factor can be determined, and appropriate response services can be dispatched. In one example, if it is determined that there is a significant potential for loss of life caused by the emergency event14, the system for optimizing rescue efforts could prioritize the emergency event14as a high priority and dispatch more response services to the location of the emergency event14. On the other hand, if it is determined that there is no potential for loss of life and only a potential for damaged property, the system for optimizing rescue efforts could downgrade the priority and either delay in dispatching response services or dispatch response services that are not occupied with higher priority emergency events.

Referring toFIG. 2, a more detailed illustration of a system30for optimizing rescue efforts, an electronic system20for a vehicle, such as vehicles16A,16B, and/or16C, and a dispatch system70is shown. With regards to the system30for optimizing rescue efforts, the system30may include one or more processors32, a network access device34, and a memory device38. The network access device34and the memory device38may be in communication with the one or more processors32.

The network access device34may be an electronic device, such as a circuit, that connects the one or more processors32to a network31, such as the Internet. The network access device34may include any equipment required to make a connection to a wide area network from a local area network. As such, the network access device34acts as a conduit that allows for the communication of the one or more processors32to communicate with several different devices, such as the electronic system20for a vehicle and/or the dispatch system70.

The memory device38may be any type of memory capable of storing information that can be utilized by the one or more processors32. As such, the memory device38may be a solid-state memory device, magnetic memory device, optical memory device, and the like. In this example, the memory device38is separate from the one or more processors32, but it should be understood that the memory device38may be incorporated within any of the one or more processors32, as opposed to being a separate device.

The memory device38may be capable of storing one or more modules that when executed by the one or more processors32cause the one or more processors32to perform any one of several different methods disclosed in this disclosure. In this example, the memory device38includes an event detection module40, a transmission module42, and a reception module44.

The event detection module40includes instructions that when executed by the one or more processors32causes the one or more processors32to determine the location of an emergency event. Several different methodologies may be employed that allow the event detection module40to determine the location of an emergency event, such as the emergency event14ofFIG. 1. For example, the event detection module40may cause the one or more processors32to be able to receive information regarding the specific or general location of an emergency event. Information regarding the location of an emergency event may have originated from several different sources, such as the electronic system20of a vehicle and/or the dispatch system70.

As to the electronic system20of the vehicle, the electronic system20of the vehicle could provide information to the one or more processors32. The event detection module40could include instructions that are able to monitor information from the electronic system20of one or more vehicles. This information could include information from one or more sensors that are in communication with the electronic system20. As to the dispatch system70, the dispatch system70could receive information from a variety of different sources, including individuals or other entities contacting the dispatch system70. Furthermore, information could be provided electronically by third parties that monitor emergency events to the one or more processors32regarding the location of any emergency events. For example, sensors that can detect earthquakes or fires could provide information either directly or indirectly to the one or more processors32and the event detection module40could use this information to determine the location of the emergency event.

Once the system30for optimizing rescue efforts has determined the location of the emergency event, the transmission module42causes the one or more processors32to transmit the location of the emergency event to one or more detection systems that have one or more sensors that are within a detection range of the emergency event, which may be vehicles such as vehicles16A,16B, and/or16C ofFIG. 1. The reception module44causes the one or more processors32to obtain information regarding the emergency event from one or more sensors of the one or more detection systems that are within the detection range of the emergency event.

For example, with regard to the example10shown inFIG. 1, the vehicles16A,16B, and16C each have sensor systems18A,18B, and18C that have fields of view22A,22B, and22C, respectively. The fields of view22A,22B, and22C of the sensor systems18A,18B, and18C, respectively, are within a range capable of detecting information regarding the emergency event14. As stated before, the sensor systems18A,18B, and18C may be cameras that are capable of obtaining visual information of the emergency event14and can, therefore, relay this information to the one or more processors32of the system30.

The transmission module42may also configure the one or more processors32to dispatch one or more responders to the location of the emergency event. In this example, the one or more processors32may communicate with the dispatch system70via the network31. From there, the dispatch system70will then dispatch response services. Furthermore, the one or more processors32may communicate threat factor information to the dispatch system70and/or utilize threat factor information to determine and request the appropriate response services to be dispatched by the dispatch system70.

For example, the threat factor could be broken up into different levels, wherein some levels do not necessarily require an immediate response by responders. Some levels may require a response by responders but may not be a priority. Further still, there may be some levels of the threat factor that require an immediate and overwhelming response by responders. In one example, the threat factor may include a property threat level and a loss of life threat level. With regards to a property threat level, the property threat level indicates that only property will be destroyed or has been destroyed by the emergency event. With regards to the loss of life threat level, this threat level may indicate the potential or actual loss of life caused by the emergency event. In this situation, a loss of life threat level would receive a higher priority than the property threat level. As such, the system30for optimizing rescue efforts and/or the dispatch system70could utilize the threat factor to optimally respond to the emergency event.

Furthermore, in one embodiment, the system30includes a data store36. The data store36is, in one embodiment, an electronic data structure such as a database that is stored in the memory device38or another memory and that is configured with routines that can be executed by the one or more processors32for analyzing stored data, providing stored data, organizing stored data, and so on. Thus, in one embodiment, the data store36stores data used by the modules40,42, and/or44in executing various functions.

The modules40,42, and/or44could be a component of the one or more processors32or one or more of the modules40,42, and/or44can be executed on and/or distributed among other processing systems to which the one or more processors50are operatively connected. For example, the electronic system20and/or the dispatch system70could also execute and/or be included in the distribution among other processing systems to which the one or more processors32are operatively connected.

With regards to the electronic system20of the vehicle, the electronic system20may include one or more processors50, a global navigation satellite system (“GNSS”)52, a network access device54, sensors56A-56D, and a memory device57. As stated previously, the electronic system20may be mounted within a vehicle, such as vehicles16A,16B, and/or16C ofFIG. 1.

The GNSS system52may be a satellite navigation system that provides autonomous geo-spatial positioning with global coverage. The GNSS system52may include anyone of several different GNSS systems, such as GPS, GLONASS, Galileo, Beidou or other regional systems. The GNSS system52may be connected to an antenna58that is capable of receiving one or more signals62from one or more satellites38A-38D. Based on the one or more signals62from one or more satellites38A-38D, the GNSS system52can determine the relative location of the vehicle to which the GNSS system is installed. This relative location may be in the form of a coordinate system that may indicate the latitude, longitude, and/or altitude of a vehicle that has the GNSS system52installed within. As such, the GNSS system52allows the one or more processors50to determine the relative location of the vehicle to which it is installed, and then relay this information to the system30for optimizing rescue efforts.

The network access device54allows the one or more processors50of the electronic system20to communicate with a network31, such as the Internet. As such, the network access device54may be any one of several different components that allow the transmission of information to the network31and therefore to other electronic systems and subsystems connected to the network31. These electronic systems and subsystems could include the system30for optimizing rescue efforts and/or the dispatch system70.

The one or more sensors56A-56D may also be in communication with the one or more processors50. The sensors56A-56D may be any one of several different sensors capable of sensing any one of several different variables experienced by the vehicle and may form a sensor system18. For example, sensor56A could be a camera system that allows the electronic system20of the vehicle to capture visual information that may be related to the emergency event. The sensor56B could be an external temperature sensor that allows the electronic system20of the vehicle to measure the outside temperature near the vehicle. The sensor56C could be an air quality sensor that could include determining carbon dioxide/monoxide levels, smoke levels, and/or other environmental pollutants or air particles. The sensor56D could be a LiDAR sensor that is capable of capturing three-dimensional point cloud information that could include three-dimensional point cloud information of the emergency event. This information could then be provided to the system30and the event detection module40could then cause the one or more processors32to determine the presence of an emergency event and/or the threat factor of the emergency event.

While the different types of sensors56A-56D have been described, it should be understood that the sensors56A-56D described are merely examples in that any one of a number of different sensors could be utilized to determine any one of a number of different variables experienced by the vehicle. The information sensed by the sensors56A-56D may be provided to the one or more processors50and then relayed to the system30and/or dispatch system70.

The memory device57may be any type of memory capable of storing information that can be utilized by the one or more processors50. As such, the memory device57may be a solid-state memory device, magnetic memory device, optical memory device, and the like. In this example, the memory device57is separate from the one or more processors50, but it should be understood that the memory device57may be incorporated within any of the one or more processors50, as opposed to being a separate device.

The memory device57may include any one of several different modules to configure the one or more processors50to perform any one of several different functions or methodologies disclosed in this disclosure. In this example, the memory device57also includes an event detection module64, a transmission module66, and a reception module68. The event detection module64, transmission module66and/or reception module68may be similar to the event detection module40, transmission module42, and/or reception module44, respectively, of the system30for optimizing rescue efforts. As such, these modules will not be described again as the previous description is equally applicable here. Therefore, in one example, the electronic system20of the vehicle could perform some or all of the functions of the system30.

Further, the modules64,66, and/or68could be a component of the one or more processors50or one or more of the modules64,66, and/or68can be executed on and/or distributed among other processing systems to which the one or more processors50are operatively connected. For example, the system30and/or the dispatch system70could also execute and/or be included in the distribution among other processing systems to which the one or more processors50are operatively connected.

The dispatch system70may be any type of dispatch system that allows for the dispatching of responders. In one example, the dispatch system70includes one or more processors72in communication with a network access device74and a memory device76. The network access device74allows the one or more processors72of the dispatch system70to communicate with a network31, such as the Internet. As such, the network access device74may be any one of several different components that allow the transmission of information to the network31and therefore to other electronic systems and subsystems connected to the network31. These electronic systems and subsystems could include system30for optimizing rescue efforts and/or the electronic system20of a vehicle.

The memory device76may include any one of several different modules that cause the one or more processors72to dispatch responders. In one such example, the memory device76is capable of configuring the one or more processors72to receive information from a variety of different sources. These sources could include information provided by eyewitnesses, third-party information, information from emergency responders, information from sensors, such as the sensors56A-56D that form part of the electronic system20of the vehicle, other sensor systems, and the like.

Based on the information received from these sources, the one or more processors72may then be able to communicate with responders and dispatch the appropriate responders to an emergency event. Furthermore, it should be understood that the memory device76may include other modules previously described such as the event detection module40, the transmission module42and/or the reception module44. By so doing, the dispatch system70may perform any of the methods performed by the system30for optimizing rescue efforts and or the electronic system20of the vehicle.

Referring toFIG. 3A, an example of information captured by one or more sensors, such as sensors systems18A,18B, and/or18C ofFIG. 1or sensors56A-56D ofFIG. 2is shown. Here, vehicles116A-116D each include camera-based sensors. However, it should be understood that any type of sensor may be utilized as previously described. The camera-based sensors of the vehicles116A-116D can capture images180A-180D of an emergency event. In this example, the emergency event is a fire. Image180A illustrates damage to a structure. Image180B illustrates potential harm to a person. Image180C illustrates potential harm to an animal. Image180D illustrates responders in the form of a fire truck and a firefighter that are responding to the emergency event.

In one example, the images180A-180D may be transmitted to the one or more processors32of the system30for optimizing rescue efforts. Moreover, the event detection module40may configure the one or more processors32to determine that an emergency event has occurred. The transmission module42may then configure the processor32to communicate with the one or more vehicles116A-116D to request that they transmit information that of the emergency event. In this case, the information is in the form of images180A-180D which may be still images, recorded videos, or live videos.

Referring toFIG. 3B, the event detection module40ofFIG. 2may cause the one or more processors32to analyze the information provided by the vehicles116A-116D. Here, the information, as previously described, is in the form of images180A-180D. The event detection module40may cause one or more processors32of the system30to determine a threat factor of the event. Here, the event detection module40causes the one or more processors32to determine that the image180A indicates that the damage caused by the event relates to property and does not relate to persons or animals. Further, the one or more sensors of the vehicle116A may also be able to provide other information, such as information182A. This other information could include information regarding the temperature detected by the one or more sensors, the location of the vehicle, and the timestamp of any information collected by the one or more sensors of the vehicle116A.

The image180B captured by the vehicle116B may be determined by the system30to contain a person as indicated in rectangle184B. The information182B may indicate that a person is in danger and may indicate the temperature of the location, the timestamp of when the image180B was captured and the location of the vehicle116B. From here, the event detection module40may configure the one or more processors32to determine that the threat factor includes a loss of life threat level and that responders should be dispatched to prevent the loss of life.

The image180C captured by vehicle116C may be sent to the system30and the event detection module40can configure the processor32to detect if any animals are in danger, as indicated in rectangle184C. The detection of an animal as indicated in rectangle184C may cause the event detection module40to increase the threat factor to be somewhere between a level regarding property loss and a level regarding the potential loss of life. In addition to this information, information182C regarding the temperature, the timestamp in which the image180C was captured and the location of the vehicle116C may also be sent to the system30.

The image180D was captured by vehicle116D of the event and may be sent to the system30and the event detection module40can configure the processor32to detect the presence of any responders and associated equipment, such as fire trucks, police cars, military equipment, and the like. Here, the image includes a responder184D in the form of a firefighter and a response vehicle186D in the form of a fire truck. In addition, information182D may indicate that a rescue is underway, the temperature of the area, the timestamp in which the image180D was captured and the location of the vehicle116D.

It should be understood that the examples given inFIGS. 3A and 3Bare merely examples and are directed towards emergency events that involve a fire. As such, different information could be collected by the vehicles116A-116D that may be more appropriate based on the type of emergency event has occurred. For example, with regards to an emergency event that concerns flooding, information regarding the temperature of the location may be less valuable, but information regarding the weather may be more valuable.

The event detection module40may also be able to configure the one or more processors32to generate an electronic map that indicates the location of the emergency event and/or the location of any detection devices, which, as stated previously, may be one or more vehicles. For example, inFIG. 4A, an electronic map200is shown generated by the one or more processors32. The electronic map200includes indicia204that indicates reports of emergency events and the location of the emergency events. The indicia206indicates the confirmed location of emergency events. Here, the electronic map200may allow one to zoom into an area202.

FIG. 4Billustrates the zoomed in area202. Here, the zoomed in area202also shows the indicia204reports of an emergency event as well as the indicia206indicating the actual location of an emergency event. In addition, the zoomed in area202also displays the location of vehicles208A-208D that are capable of transmitting sensor information from the vehicles208A-208D to the system30for optimizing rescue efforts. Here, the zoomed in area202may allow one to select the vehicles208A-208D. After selecting a vehicle, the system30may then be able to provide information from the vehicles208A-208D which could include the information shown inFIGS. 3A and 3B, such as images from the camera sensors of the vehicles208A-208D and other information such as temperature, location, and timestamp information.

Referring toFIG. 5, a method300for optimizing rescue efforts is shown and will be discussed from the perspective of the system30for optimizing rescue efforts ofFIG. 2. While method300is discussed in combination with the system30for optimizing rescue efforts, it should be appreciated that the method300is not limited to being implemented within the system30for optimizing rescue efforts but is instead one example of a system that may implement the method300.

The method300begins at step302. At step302, the event detection module40causes the one or more processors32of the system30to determine if an emergency event has been detected. This determination may be made by any one of several different methodologies. For example, the event detection module40may cause the one or more processors32to be able to receive information regarding the specific or general location of an emergency event. Information regarding the location of an emergency event may have originated from several different sources, such as the electronic system20of a vehicle and/or the dispatch system70. If no emergency event is detected, the method300may continue the monitor for events.

If an emergency event is detected, the method300proceeds to step304, where a determination is made regarding the location of the emergency event. The event detection module40may configure the one or more processors32of the system30to determine the location of the emergency event based on the received information. This received information could come from a variety of different sources, such as the dispatch system70, the electronic system20of a vehicle, or other sources, such as third-party sources, eyewitness accounts, other types of sensors, and the like.

Additionally or alternatively, the method300may also include step306. In step306, the event detection module40configures the one or more processors32to generate a map of an area that includes the location of the emergency event and/or one or more locations of one or more detection systems. Examples of this electronic map were shown in previously described inFIGS. 4A and 4B.

In step308, the transmission module42configures the one or more processors32of the system30to transmit the location of the emergency event to one or more detection systems, which may be one or more vehicles. In response, the detection systems that have sensors that can collect information regarding the emergency event will then provide this information to the system30. As such, the reception module44configures the one or more processors32to obtain information regarding the emergency event from the one or more detection systems as indicated in step310.

In step312, the event detection module40configures the one or more processors32of the system30to determine a threat factor. As stated previously, the threat factor could include a variety of different levels that indicate different potential losses. For example, the threat factor could include a loss of life threat level and a loss of property threat level. The loss of life threat level is an indication that the emergency event has caused or may potentially cause loss of life. The loss of property threat level may indicate that the emergency event has caused or may potentially cause damage or destruction of property.

In step314, the transmission module42configures the one or more processors32of the system30to dispatch one or more responders to the location of the emergency event based on the threat factor. Here, the one or more processors32considers the threat factor to determine when and/or if responders should be sent to a location of an emergency event. For example, if there is no potential for loss of life and little potential for property damage, the one or more processors32may determine that responders do not need to be dispatched or should only be dispatched if there are no higher priority events. Conversely, if it is determined that there could be a significant loss of life, the one or more processors32may determine that all available responders should respond to the location of the emergency event or even repurpose responders that are responding to a lower priority event to respond to this higher priority event.

It should be appreciated that any of the systems described in this specification can be configured in various arrangements with separate integrated circuits and/or chips. The circuits are connected via connection paths to provide for communicating signals between the separate circuits. Of course, while separate integrated circuits are discussed, in various embodiments, the circuits may be integrated into a common integrated circuit board. Additionally, the integrated circuits may be combined into fewer integrated circuits or divided into more integrated circuits.

In another embodiment, the described methods and/or their equivalents may be implemented with computer-executable instructions. Thus, in one embodiment, a non-transitory computer-readable medium is configured with stored computer executable instructions that when executed by a machine (e.g., processor, computer, and so on) cause the machine (and/or associated components) to perform the method.

While for purposes of simplicity of explanation, the illustrated methodologies in the figures are shown and described as a series of blocks, it is to be appreciated that the methodologies are not limited by the order of the blocks, as some blocks can occur in different orders and/or concurrently with other blocks from that shown and described. Moreover, less than all the illustrated blocks may be used to implement an example methodology. Blocks may be combined or separated into multiple components. Furthermore, additional and/or alternative methodologies can employ additional blocks that are not illustrated.

Furthermore, arrangements described herein may take the form of a computer program product embodied in one or more computer-readable media having computer readable program code embodied, e.g., stored, thereon. Any combination of one or more computer-readable media may be utilized. The computer-readable medium may be a computer readable signal medium or a computer-readable storage medium. The phrase “computer-readable storage medium” means a non-transitory storage medium. A computer-readable medium may take forms, including, but not limited to, non-volatile media, and volatile media. Non-volatile media may include, for example, optical disks, magnetic disks, and so on. Volatile media may include, for example, semiconductor memories, dynamic memory, and so on. Examples of such a computer-readable medium may include, but are not limited to, a floppy disk, a flexible disk, a hard disk, a magnetic tape, other magnetic medium, an ASIC, a graphics processing unit (GPU), a CD, other optical medium, a RAM, a ROM, a memory chip or card, a memory stick, and other media from which a computer, a processor or other electronic device can read. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

The following includes definitions of selected terms employed herein. The definitions include various examples and/or forms of components that fall within the scope of a term, and that may be used for various implementations. The examples are not intended to be limiting. Both singular and plural forms of terms may be within the definitions.

“Module,” as used herein, includes a computer or electrical hardware component(s), firmware, a non-transitory computer-readable medium that stores instructions, and/or combinations of these components configured to perform a function(s) or an action(s), and/or to cause a function or action from another logic, method, and/or system. Module may include a microprocessor controlled by an algorithm, a discrete logic (e.g., ASIC), an analog circuit, a digital circuit, a programmed logic device, a memory device including instructions that when executed perform an algorithm, and so on. A module, in one or more embodiments, may include one or more CMOS gates, combinations of gates, or other circuit components. Where multiple modules are described, one or more embodiments may include incorporating the multiple modules into one physical module component. Similarly, where a single module is described, one or more embodiments distribute the single module between multiple physical components.

Additionally, module, as used herein, includes routines, programs, objects, components, data structures, and so on that perform tasks or implement data types. In further aspects, a memory generally stores the noted modules. The memory associated with a module may be a buffer or cache embedded within a processor, a RAM, a ROM, a flash memory, or another suitable electronic storage medium. In still further aspects, a module as envisioned by the present disclosure is implemented as an application-specific integrated circuit (ASIC), a hardware component of a system on a chip (SoC), as a programmable logic array (PLA), as a graphics processing unit (GPU), or as another suitable hardware component that is embedded with a defined configuration set (e.g., instructions) for performing the disclosed functions.