Object tracking using enhanced video surveillance through a distributed network

Tracking a tagged object may include receiving, using a first processor, a first video of an object tagged with a radio frequency identification (RFID) tag and first metadata read from the RFID tag. The first metadata may be stored in association with the first video using the first processor. First updated metadata may be written to the RFID tag using the first processor. The first updated metadata may specify at least one of a time the first video is received or a location of the first processor.

BACKGROUND

The present invention relates to video surveillance. Many systems that provide video surveillance and/or tracking functions are built around the notion of data pedigree. Data pedigree is the record of the ancestry of data items. Data pedigree may include metrics such as estimated reliability of the data items and/or confidence in the data items. One common way of maintaining data pedigree is to create a system in which the data is stored within a large, centralized database. The centralized database allows access to the data to be tightly controlled.

This approach, however, is not without disadvantages. For example, using a large, centralized database may add complexity to the system. Further, all participating entities must be integrated into the same system in order to access the centralized database. In addition, a centralized database may pose a rich target for nefarious activities thereby creating a security risk. One breech of the centralized database may reveal complete tracking information about one or more different tracked objects.

SUMMARY

A method of tracking a tagged object may include receiving, using a first processor, a first video of an object tagged with a radio frequency identification (RFID) tag and first metadata read from the RFID tag. The method may also include storing, using the first processor, the first metadata in association with the first video. The method further may include writing, using the first processor, first updated metadata to the RFID tag responsive to the receiving. The first updated metadata may specify at least one of a time the first video is received or a location of the first processor.

A system for tracking a tagged object may include a first processor programmed to initiate executable operations. The executable operations may include receiving a first video of an object tagged with an RFID tag and first metadata read from the RFID tag. The executable operations may also include storing the first metadata in association with the first video and writing first updated metadata to the RFID tag responsive to the receiving. The first updated metadata may specify at least one of a time the first video is received or a location of the first processor.

A computer program includes a computer readable storage medium having program code stored thereon. The program code is executable by one or more processors to perform a method of tracking a tagged object. The method may include receiving, using a first processor, a first video of an object tagged with an RFID tag and first metadata read from the RFID tag. The method may also include storing, using the first processor, the first metadata in association with the first video. The method further may include writing, using the first processor, first updated metadata to the RFID tag responsive to the receiving. The first updated metadata may specify at least one of a time the first video is received or a location of the first processor.

DETAILED DESCRIPTION

This disclosure relates to object tracking using enhanced video surveillance and, more particularly, to object tracking through a distributed network. In accordance with the inventive arrangements disclosed herein, an object may be tracked through a distributed network of video surveillance devices over time. The object may be tracked without establishing a global or centralized data repository for storing captured video and/or other associated data.

An object may be tagged with a device such as a tag that may be read and written using radio frequency (RF) signals. As the tagged object encounters each security device, the security device may interrogate the tagged object thereby obtaining data from the tag relating to the last, or prior, location of the tagged object. The security device may capture video of the tagged object. Data from the tag may be stored in association with the captured video. The security device may write updated data to the tag on the tagged object specifying information about the current location, time, and/or other data. As the updated data is written to the tag, any data previously written to the tag by another surveillance device, including data just read from the tag, may be overwritten. This means that each tag stores a limited amount of data concerning the movement of a tagged object. In one arrangement, the tag may store only data for the most recent surveillance device encountered by the tag. Since prior stored data is overwritten, capturing the tag yields only information for the most recent surveillance device encountered by the tagged object.

The surveillance devices may be queried to determine a series of links that track, or reconstruct, movement of the tagged object from one surveillance device to another. For example, the surveillance devices may be queried to trace movement of the tagged object back in time as seen and/or detected by one or more different surveillance devices. These surveillance devices may be distributed and may be independent and unaffiliated with one another. Since the need for multiple or all parties to be integrated together through the use of a centralized database may be eliminated, the security risk relating to breach of one surveillance device as a link in the series of links for a given tagged object is minimized and would reveal an incomplete history of whereabouts of the tagged object.

FIG. 1is a block diagram illustrating an example of a distributed surveillance system. In this example, the distributed surveillance system includes a plurality of surveillance devices102-1,102-2, and102-3(collectively referred to as surveillance devices102). Surveillance devices102may include a video camera104, a transceiver106, a processor108, and a data storage device110. Video cameras104may be coupled to processors108. Transceivers106may be coupled to processors108. Processors108may be coupled to data storage devices110. The various elements of surveillance devices102may be coupled by a communication bus, by direct connections, or via other circuitry.

Each of video cameras104may be configured to capture video. In one aspect, one or more or all of video cameras104may be configured to capture audio in combination with video. For example, video cameras104may be equipped with a microphone or other audio transducer. In another aspect, one or more or all of video cameras104be configured to capture video without capturing audio.

Video cameras104, for example, may capture video in a field of view illustrated by the dotted lines for each respective one of video cameras104. Video cameras104may provide videos to processors108. As defined within this specification, the term “video” means digital video data whether provided as a stream, e.g., using a streaming protocol, as a file, or the like. Video may or may not include audio data depending upon the particular video camera used. Video cameras104may capture video digitally. Video cameras104may capture analog video that may converted to digital form.

Transceivers106may be configured to interrogate (e.g., read) radio frequency identification (RFID) tags and obtain data from the RFID tags referred to herein as metadata. Transceivers106may receive radio frequency (RF) signals specifying the metadata. In one aspect, the metadata may be encoded. Transceivers106and/or processors108may decode the metadata. Transceivers106further may be configured to write metadata to the RFID tags. As defined within this disclosure, the term “write,” in the context of a transceiver writing to an RFID tag, refers to sending RF signals to the RFID tag thereby storing data in a user data memory of the RFID tag or sending RF signals that, when received by the RFID tag, cause the RFID tag to perform a write operation. It should be appreciated that the particular operations performed when writing will depend upon the particular type of RFID tag technology being used. In any case, transceivers106may be configured to send RF signals specifying updated metadata to an RFID tag causing the updated metadata, which may be in encoded form, to be written to the RFID tag. Processors108and/or transceivers106may be configured to encode updated metadata.

As defined within this disclosure, a “radio frequency identification tag” or “RFID tag” is a device that emits RF energy, may be written (at least in part), and is tracked by an RF-based surveillance device. For example, an RFID tag may be activated by a wireless transmission emitted by a transceiver and, in response, relay, convey, or communicate metadata that may be detected or received by the transceiver. Further, an RFID tag may be activated by a wireless transmission emitted by the transceiver which causes writes updated metadata to the RFID tag or otherwise initiates a write operation of updated metadata to the RFID tag. Data written to the RFID tag may overwrite existing data stored in the RFID tag. In one aspect, an RFID tag may include a unique identifier (ID) such as a serial number that cannot be overwritten. The RFID tags may be active or passive.

In one arrangement, RFID tags used with the distributed surveillance system may include a first memory that stores the ID. The first memory of the RFID tag that stores the ID may be read-only. The ID may be associated with the object to which the RFID tag is coupled or included within. The RFID tag further may include a second memory called a user data memory that may be read and written, e.g., a read-write memory. Transceivers106may read the read-only memory of the RFID tags and read and write the user data memory of the RFID tags.

While RFID tags are described as including multiple memories within this disclosure, this terminology is used for ease of description. It should be appreciated that RFID tags may include a single memory where a first portion of the memory is implemented, or partitioned, as read-only and a second portion of the memory is implemented, or partitioned, as read-write (e.g., the user data memory). The inventive arrangements described within this disclosure are not intended to be limited to one particular type of RFID tag or RFID tag memory architecture.

Processors108may store videos received from video cameras104in data storage devices110. Processors108further may store metadata within data storage devices110. In one aspect, processors108may store metadata in association with a particular video in data storage devices110. In another aspect, one or more items of metadata may also be stored in data storage devices110that may be read by processors108, provided to transceivers106, and written to RFID tags by transceivers106. Data storage device110may be any of a variety of different memory devices. For example, data storage device110may be a volatile memory such as random access memory (RAM), a non-volatile memory such as a hard disk, solid state drive, or a combination thereof.

In one arrangement, storing metadata in association with a video may mean storing the video and the metadata separately, e.g., as separate files, and associating the metadata with the video through a mechanism such as storing the file in a same directory, associating the items through a stored record such as a table entry, or the like. In another arrangement, storing metadata in association with a video may mean embedding or otherwise including the metadata within, or as part of, the video.

In one example, surveillance devices102-1,102-2, and102-3may be placed at different locations. The different locations may be within, or part of, a same building, located at different buildings, located indoors, located outdoors, or various combinations thereof. The locations may be part of the same organization or entity, be at or part of different organizations or entities, or the like. In one example, surveillance device102-1may be located at an entry of a building, surveillance device102-2may be located at an exit of the building, and surveillance device102-3may be located at a different building that is part of a different organization. In any case, for purposes of illustration, an object112having an RFID tag114coupled thereto and/or fixed inside may be moved on a path116that enters and exits the detectable ranges of each of surveillance devices102. A detectable range may be an area of overlap between a field of view of a video camera104with a read-write range of a transceiver106of a same surveillance device102.

Video cameras104may start recording video responsive to any of a variety of different events. For example, the event may be detected motion, an object entering the field of view of video cameras104, detection of an RFID tag by transceivers106in the same surveillance system, a combination of both, or the like. Video cameras104may discontinue recording responsive to any of a variety of further events such as the passage of a predetermined amount of time, lack of motion in the field of view, the detected object leaving the field of view, or the like. In still another arrangement, video cameras104may continually record video, e.g., on a loop, and only a portion of video may be saved responsive to one or more events such as those described above. It should be appreciated that the recording and/or streaming of video by video cameras104may started and/or stopped in any of a variety of different ways and that the particular way in which the recording of video is started, stopped, and/or provided to processors108is not intended as a limitation of the inventive arrangement described within this disclosure.

In one example, object112may pass within the detectable range of surveillance device102-1. Accordingly, video camera104-1may capture and generate video118of object112. Video camera104-1may provide video118including object112to processor108-1. Processor108-1may store video118in data storage device110-1. Transceiver106-1may detect, or read, RFID tag114. Transceiver106-1may receive one or more RF signals specifying metadata120. Metadata120may include the ID (i.e., the unique identifier for RFID tag114) that is associated with object112, a location (LOC_A), and a time (T1). Processor108-1may receive metadata120from transceiver106-1and store metadata120within data storage device110-1in association with video118.

In one exemplary implementation, the term “location,” in reference to a location within metadata as read from, or written to, an RFID tag, may mean global positioning system (GPS) coordinates such as latitude and longitude. In another exemplary implementation, the term “time,” in reference to a time within metadata, may mean a date and time. In one example, time may be specified as a timestamp using ISO 8601 format.

As discussed, RFID tag114may include a read-only memory and a user data memory that is read-write. Transceiver106-1may read the ID of metadata120from the read-only memory of RFID tag114. Other data such as location LOC_A and time T1may be read from the user data memory of RFID tag114. Data read from the user data memory of RFID tag114is written by a prior surveillance device having detected RFID tag114. For example, location LOC_A is the location of the prior surveillance device and time T1is the time that RFID tag114was detected by the surveillance device located at location LOC_A.

In one aspect, responsive to receiving video118and/or metadata120, processor108-1may write data to RFID tag114. Processor108-1, for example, may instruct transceiver106-1to send updated metadata122to RFID tag114as one more RF signals. Updated metadata122may include a location LOC_B of surveillance system102-1and a time T2that video118was obtained or received. Transceiver106-1may transmit updated metadata122to RFID tag114. The write operation that is initiated overwrites the data stored in the user data memory of RFID tag114. For example, the user data memory of RFID tag114, subsequent to the write operation initiated by surveillance device102-1, specifies location LOC_B and time T2. The prior data of location LOC_A and time T1is overwritten.

Processor108-1further may store updated metadata122in data storage device110-1in association with video118and/or metadata120. In another aspect, however, processor108-1may only store the time T2as opposed to the entirety of updated metadata122in association with video118and/or metadata120. For example, time T2, video118, and metadata120may be stored as an entry within a data structure such as a table or database.

Object112may continue on path116and, subsequently, pass within the detectable range of surveillance device102-2. As such, video camera104-2may capture and generate video124of object112. Video camera104-2may provide video124including object112to processor108-2. Processor108-2may store video124in data storage device110-2. Transceiver106-2may detect, or read, RFID tag114. Transceiver106-2may receive one or more RF signals specifying metadata126. Metadata126may include the ID of RFID tag114that is associated with object112and updated metadata122previously written to the user data memory of RFID tag114. For example, metadata126may include the ID, location LOC_B, and time T2. Processor108-2may receive metadata126from transceiver106-2and store metadata126within data storage device110-2in association with video124.

In the example ofFIG. 1, transceiver106-2may read the ID of metadata126from the read-only memory of RFID tag114. Transceiver106-2may read other data such as location LOC_B and time T2from the user data memory of RFID tag114. The location and/or time read from the user data memory of RFID tag114by surveillance system102-2is the location and time (e.g., updated metadata122) written to the user data memory of RFID tag114by surveillance system102-1.

Responsive to receiving video124and/or metadata126, processor108-2may write data to RFID tag114. Processor108-2, for example, may instruct transceiver106-2to send updated metadata128to RFID tag114as one or more RF signals. Updated metadata128may include a location LOC_C of surveillance system102-2and a time T3that video124was obtained or received. Transceiver106-2may transmit updated metadata128to RFID tag114. The write operation that is initiated overwrites the data stored in the user data memory of RFID tag114. For example, the user data memory of RFID tag114, subsequent to the write operation being initiated by surveillance system102-2, specifies location LOC_C and time T3(e.g., updated metadata128). The prior data of location LOC_B and time T2(updated metadata122) is overwritten.

Processor108-2further may store updated metadata128in data storage device110-2in association with video124and/or metadata126. In another aspect, however, processor108-2may only store the time T3as opposed to the entirety of updated metadata128in association with video124and/or metadata126. For example, time T3, video124, and metadata126may be stored as an entry within a data structure such as a table or database.

Object112may continue on path116and, subsequently, pass within the detectable range of surveillance device102-3. As such, video camera104-3may capture and generate video130of object112. Video camera104-3may provide video130including object112to processor108-3. Processor108-3may store video130in data storage device110-3. Transceiver106-3may detect, or read, RFID tag114. Transceiver106-3may receive one or more RF signals specifying metadata132. Metadata132may include the ID of RFID tag114and updated metadata128, which specifies location LOC_C and time T3. Processor108-3may receive metadata132from transceiver106-3and store metadata132within data storage device110-3in association with video130.

In the example ofFIG. 1, transceiver106-3may read the ID of metadata132from the read-only memory of RFID tag114. Transceiver106-3may read other data such as location LOC_C and time T3(e.g., updated metadata128) from the user data memory of RFID tag114. The location and/or time read from the user data memory of RFID tag114by surveillance device102-3is the location and time written to the user data memory of RFID tag114by surveillance device102-2.

Responsive to receiving video130and/or metadata132, processor108-3may write data to RFID tag114. Processor108-3, for example, may instruct transceiver106-3to send updated metadata134to RFID tag114as one or more RF signals. Updated metadata134may include a location LOC_D of surveillance system102-3and a time T4that video130was obtained or received. Transceiver106-3may transmit updated metadata134to RFID tag114. The write operation that is initiated overwrites the data stored in the user data memory of RFID tag114. For example, the user data memory of RFID tag114, subsequent to the write operation being initiated by surveillance system102-3, specifies updated metadata134which includes location LOC_D and time T4. The prior data of location LOC_C and time T3(updated metadata128) is overwritten.

Processor108-3further may store updated metadata134in data storage device110-3in association with video130and/or metadata132. In another aspect, however, processor108-3may only store the time T4as opposed to the entirety of updated metadata134in association with video130and/or metadata132. For example, time T4, video130, and metadata132may be stored as an entry within a data structure such as a table or database.

FIG. 1illustrates an exemplary technique for tracking a tagged object using enhanced video surveillance. For purposes of illustration, consider the following example. Object112having RFID tag114may be observed to entering a place of employment at a particular entrance corresponding to surveillance device102-1and location LOC_B at time T1. Object112may be observed leaving the place of employment through an exit at a different location corresponding to surveillance device102-2and location LOC_C at time T3. Object112may later be observed on a city street in front of a business establishment corresponding to surveillance device102-3at location LOC_D at time T4. Each surveillance device stores a portion of path116as traveled by object112and RFID tag114.

Subsequently, path116may be recovered by querying surveillance devices102. For example, the data logs of surveillance device102-3may be evaluated to determine that object112arrived at location LOC_D at time T4and from location LOC_C. Object112was detected at location LOC_C at time T3. Accordingly, the logs of surveillance device102-2may be evaluated to determine that object112traveled to location LOC_C from location LOC_B and that object112was at location LOC_B at time T2. Using this technique, the path of an object may be reconstructed or tracked.

WithinFIG. 1, surveillance devices102are illustrated as integrated systems where the various elements described are shown as part of a single housing. It should be appreciated, however, that one or more or all of surveillance devices102may be implemented in a distributed manner. For example, one or more or each of video cameras104, transceivers106, processors108, and/or data storage devices110may be implemented as individual and/or discrete elements that are communicatively linked or otherwise coupled to form a surveillance device. In one aspect, for example, video camera104and/or transceiver106may be implemented as peripheral devices coupled to a data processing system that includes processor108and/or data storage device110.

FIG. 2is a flow chart illustrating an exemplary method200of tracking a tagged object. Method200may be implemented by a distributed surveillance system including a plurality of surveillance devices as generally described with reference toFIG. 1. For ease of discussion, the object being tracked is coupled to and/or includes an RFID tag and is referred to as the “tagged object.” The RFID tag may be a read-write RFID tag that includes a read-only memory and a read-write memory referred to as a user data memory. As noted, while the read-only memory and the user data memory are referred to individually as memories, the memories may be a part, e.g., a partition, of a same memory with read and write protections in place as described. Method200may begin in a state where the tagged object has entered the detectable range of a first surveillance device.

In block205, the first surveillance device may receive first video of the tagged object and first metadata read from the RFID tag. In one aspect, the first metadata may include the ID of the RFID tag, a location, and optionally a time. The location may be the location of a surveillance device the tagged object passed in detectable range of immediately prior to passing in detectable range of the first surveillance device. The time may be the time that the tagged object was detected by the prior surveillance device.

In one arrangement, video and metadata may be received by a surveillance device or the processor of the surveillance device substantially concurrently. As defined within this specification, the term “substantially concurrently,” in reference to the receipt of video and metadata, means that the video and the metadata are received responsive to the tagged object entering the detectable range of the surveillance system or within a predetermined amount of time of the tagged object entering the detectable range of the tagged object.

In another arrangement, the user data memory of the RFID tag may store additional data that may be read and/or written. For example, within the user data memory of the RFID tag, data such as direction (or directionality), addresses, names, security information to assist with notifications and/or tampering, and the like may be written and/or read in addition to the data items previously noted. Examples of direction may be “incoming,” “outgoing,” “north,” “east,” “west,” “south,” or the like describing the motion of the tagged object. Examples of names may include building names such as “Library East,” “Library West,” particular exit and/or entry names, area names, or the like.

In block210, the first surveillance device may store the first metadata in association with the first video in a memory or other data storage device. In storing the first metadata and the first video, the first surveillance device may also store the time that the first video was received and/or the location of the first surveillance device.

In block215, the first surveillance device may write data to the RFID tag. The first surveillance device may initiate a write operation of first updated metadata to the RFID tag. In one aspect, the first surveillance device may write the RFID tag with the first updated metadata responsive to receiving the first video. The first updated metadata may include the time that the first video was received by the first surveillance device and the location of the first surveillance device. In one aspect, the time of receipt and location may be the time that a processor of the first surveillance device receives the first video and the location of the processor of the first surveillance device. The write operation initiated by the first surveillance device may overwrite the user data memory of the RFID tag. In one aspect, the entirety of the user data memory of the RFID tag may be overwritten. As such, any of the first metadata read from the user data memory of the RFID tag is deleted by overwriting the user data memory of the RFID tag with the first updated metadata.

Method200may continue to block220, where the tagged object has been moved to a different location within the detectable range of a second surveillance device. Accordingly, in block220, the second surveillance device may receive second video of the tagged object and second metadata from the RFID tag. The second metadata may include the first updated metadata written by the first surveillance device. For example, the second metadata may include the ID of the RFID tag, the location of the first surveillance device, and the time that the first video was received by the first surveillance device. As such, the time indicates when the tagged object was detected by the first surveillance device.

In block225, the second surveillance device may store the second metadata in association with the second video in a memory or other data storage device. In storing the second metadata and the second video, the second surveillance device may also store the time that the second video was received and/or the location of the second surveillance device.

In block230, the second surveillance device, or another system, may optionally track the tagged object. The tagged object may be tracked by evaluating the second metadata. The second metadata, for example, specifies the prior location where the tagged object was detected corresponding to the first surveillance device and the time. Further information about the path taken by the tagged object may be obtained by retrieving the video and associated metadata stored in the first surveillance system for the tagged object using the ID as a reference. The process may continue tracing links back in time to retrace the route of the tagged object.

In block240, the second surveillance device may write data to the RFID tag. The second surveillance device may initiate a write operation of second updated metadata to the RFID tag. In one aspect, the second surveillance device may write the RFID tag with the second updated metadata responsive to receiving the second video. The second updated metadata may include the time that the second video was received by the second surveillance device and the location of the second surveillance device. In one aspect, the time of receipt and location may be the time that a processor of the second surveillance device receives the second video and the location of the processor of the second surveillance device. The write operation initiated by the second surveillance device may overwrite the user data memory of the RFID tag. As noted, the entirety of the user data memory of the RFID tag may be overwritten. As such, any of the second metadata (e.g., the first updated metadata) read from the user data memory of the RFID tag is deleted by overwriting the user data memory of the RFID tag with the second updated metadata.

The examples described with reference toFIGS. 1 and 2are provided for purposes of illustration. It should be appreciated that fewer or more surveillance devices may be included in a distributed surveillance system. As such, the inventive arrangements described within this disclosure are not intended to be limited by the particular number of surveillance devices shown.

In the case where a surveillance device is the first to write to an RFID tag, it should be appreciated that the user data memory of the RFID tag, when read, will be initially blank or include default data. As such, the metadata stored in association with the video captured by the surveillance device may not specify a time or location of a prior surveillance device.

FIG. 3is a block diagram illustrating an example of a surveillance device300that may be used with the distributed surveillance system ofFIG. 1. Surveillance device300and one or more others having a same or similar architecture to that ofFIG. 3may implement the operations described with reference toFIG. 2.

As pictured, surveillance device300may include at least one processor (e.g., a central processing unit)305coupled to memory elements310through a system bus315or other suitable circuitry. As such, surveillance device300may store program code (e.g., computer readable program instructions) within memory elements310. Processor305executes the program code accessed from memory elements310via system bus315or the other suitable circuitry.

Memory elements310include one or more physical memory devices such as, for example, local memory320and one or more bulk storage devices325. Local memory320refers to RAM or other non-persistent memory device(s) generally used during actual execution of the program code. Bulk storage device(s)325may be implemented as a hard disk drive (HDD), solid state drive (SSD), or other persistent data storage device. Surveillance device300also may include one or more cache memories (not shown) that provide temporary storage of at least some program code in order to reduce the number of times program code must be retrieved from bulk storage device325during execution.

Input/output (I/O) devices such as a keyboard330, a display device335, and a pointing device340optionally may be coupled to surveillance device300. I/O devices such as one or more network adapters345may also be coupled to surveillance device300to enable surveillance device300to become coupled to other systems, computer systems, remote printers, and/or remote storage devices through intervening private or public networks. Modems, cable modems, wireless transceivers, and Ethernet cards are examples of different types of network adapters345that may be used with surveillance device300. For example, network adapter345may implement a transceiver used to read and/or write to an RFID tag. Surveillance device300further may be coupled to an I/O device such as video camera350. The I/O devices may be coupled to surveillance device300either directly or through intervening I/O controllers.

As pictured inFIG. 3, memory elements310may store an operating system355and an application360. Operating system355and application360, being implemented in the form of executable program code, are executed by surveillance device300and, as such, may be considered an integrated part of surveillance device300. In another arrangement, surveillance device300may include operational program code that combines operating system355and application360as an integrated application, e.g., as in the case of some embedded systems. Any data items, parameters, and/or attributes utilized by processor305as discussed herein, including operating system355and/or application360, are functional data structures that impart functionality when employed as part of surveillance device300.

Processor305, in executing operating system355and/or application360, may be programmed to perform and/or initiate the various operations described within this disclosure. For example, processor305may receive video from video camera350and metadata via network adapter345. Processor305may store the video and metadata and within memory element310as described herein. Further, processor305may direct network adapter345to write updated metadata to an RFID tag as described herein.

For purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the various inventive concepts disclosed herein. The terminology used herein, however, is for the purpose of describing particular aspects of the inventive arrangements only and is not intended to be limiting.

As defined herein, the term “another” means at least a second or more.

As defined herein, the term “computer readable storage medium” means a storage medium that contains or stores program code for use by or in connection with an instruction execution system, apparatus, or device. As defined herein, a “computer readable storage medium” is not a transitory, propagating signal per se.

As defined herein, the term “coupled” means connected, whether directly without any intervening elements or indirectly with one or more intervening elements, unless otherwise indicated. Two elements may be coupled mechanically, electrically, or communicatively linked through a communication channel, pathway, network, or system.

As defined herein, the term “output” means storing in physical memory elements, e.g., devices, writing to display or other peripheral output device, sending or transmitting to another system, exporting, or the like. As defined herein, the term “plurality” means two or more than two.

As defined herein, the term “responsive to” means responding or reacting readily to an action or event. Thus, if a second action is performed “responsive to” a first action, there is a causal relationship between an occurrence of the first action and an occurrence of the second action. The term “responsive to” indicates the causal relationship.

As defined herein, the terms “one embodiment,” “an embodiment,” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment described within this disclosure. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this disclosure may, but do not necessarily, all refer to the same embodiment.

As defined herein, the term “processor” means at least one hardware circuit configured to carry out instructions contained in program code. The hardware circuit may be an integrated circuit. Examples of a processor include, but are not limited to, a central processing unit (CPU), an array processor, a vector processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), a programmable logic array (PLA), an application specific integrated circuit (ASIC), programmable logic circuitry, and a controller.

As defined herein, the term “user” means a human being.