VIDEOANDTELEMETRYAPPARATUS AND METHODS
Background of the Invention Field of the Invention The present invention is related to video and telemetry, and in particular to methods and systems for acquiring, storing, and distributing video and telemetry information. Description of the Related Art
Conventional video surveillance systems often suffer from many deficiencies. For example, many conventional video surveillance systems fail to deliver television-quality streaming video with synchronized audio. Instead, many systems use a technique called motion JPEG or Wavelet "push" technology. Disadvantageous!/, motion JPEG and Wavelet systems are primarily designed to provide a series of individual "photographs" from a video camera source. This process of transporting individual pictures is sometimes called "Serial Still Frame" transport, or "SSF." SSF does not adequately synchronize audio and other data. Further, the bandwidth needed for SSF transmission can be relatively high, as with conventional systems each individual picture is separately encoded, recorded and transmitted.
Further, once the image data is captured, it can be very difficult to find a particular frame or sequence of frames without having to manually search by viewing large number of the frames to locate the desired frame or sequence of frames.
In addition, many conventional systems do not provide tamper-proof archiving technologies to ensure that archived data is not later improperly modified or edited. For example, some conventional video archiving systems rely on watermarks embedded within the video frames during the recording process to detect tampering. This method however, can often be circumvented, and so these systems often do not have adequate evidentiary credibility.
Summary of the Invention
The present invention is related to methods and systems for acquiring, storing, and distributing video and telemetry. Example embodiments further provide methods and systems for the comprehensive management of audio, video and data recorded by one or more sensors. Thus, embodiments of the present invention enables users to select and play back video records based on meta-data embedded within the video record.
One embodiment is a recording and transmission system comprising: a recorder mountable in a police vehicle configured to record video and meta-data synchronized with the video, wherein the recorded video includes a plurality of segments having fixed lengths, the recorder including a wireless transmitter configured to wirelessly transmit the recorded video segments and meta-data, wherein the meta-data includes: data related to vehicle status; subjective time information; objective time information; serial data. An assembler is configured to wirelessly receive the transmitted video segments and assemble the video segments into a file including the meta-data, the assembler further including a mass storage device used to store the assembled video and transmit the assembled video. An information management system is coupled to the assembler to receive the assembled video and to store the meta-data in a relational database, wherein the information management system is configured to receive a user search query from a first terminal having a first resolution, conduct a search of the meta-data based at least in part on the search query, transmit the results of the search to the first terminal, receive a user selection of at least a first of the results, configure the video corresponding to the selected result for the first terminal based at least in part on the first resolution, and transmit the configured video to the first terminal. Another embodiment is a method of storing and providing video data, the method comprising: receiving a first video file including video and embedded meta-data, the metadata including at least timing information and status information; storing copies of at least a portion of the first video file in a second video file on a first data storage system and in a third file on a second storage system; generating at least a first string searchable file based at least in part on the meta-data; receiving a user search query; conducting a search of information in the first string searchable file based at least in part on the user search query; presenting results of the search to the user via a user terminal; receiving a user search results selection corresponding to the second video file; retrieving the second video file and the third video file based at least in part on the user selection; comparing at least a first portion of the meta-data in the second video file with a corresponding portion in the third video file in order to determine if file tampering has occurred; and transmitting at least a portion of the second video file to the user terminal. One embodiment is a method of storing and providing video data, the method comprising: receiving and storing data including a video sequence and synchronized metadata; generating at least a first string searchable data structure based at least in part on the
meta-data; receiving a user search query; and conducting a search of information in the first string searchable data structure based at least in part on the user search query.
One embodiment is an apparatus for storing and providing video data, the apparatus comprising: a storage device configured to store data including a video sequence and synchronized meta-data; a first instruction configured to generate at least a first string searchable data structure based at least in part on the meta-data; a second instruction receive a user search query; and a third instruction configured to conduct a search of information in the first string searchable data structure based at least in part on the user search query.
Brief Description of the Drawings Figure 1 illustrates an example video acquisition, storage and distribution system. Figure 2 illustrates an example authentication process and system. Figure 3 illustrates an example Web page used to display a retrieved video. Figures 4A, 4B and 4C illustrate example video files with embedded timing information.
Figure 5 illustrates example video segments. Figure 6 illustrates an example assembler file conversion process. Figure 7 illustrates an example of merging data from multiple sources for rendering on a user terminal.
Figure 8 illustrates an example search page.
Figure 9 illustrates an example file access, download and rendering process.
Figure 10 illustrates an example encoding process.
Detailed Description of the Preferred Embodiment The present invention is related to methods and systems for acquiring, storing, and distributing video and telemetry. Example embodiments further provide video archive management that enables users to select and play back video records based on meta-data embedded within the video record.
For example, when used in a law enforcement patrol vehicle scenario, the meta-data may include, by way of example, date, time, vehicle identification, personnel names, global positioning coordinates, and a comprehensive variety of additional data, including mobile data terminal traffic, event logs or intrusion alarms. As discussed in greater detail below,
automated upload of video files onto archive storage media and automatic entry into a corresponding database is also provided, optionally with little to no user intervention.
For example, in the law enforcement patrol vehicle scenario, in one embodiment, files, including video, audio, and meta-data, are temporarily stored onboard vehicle-based recording units which are transmitted to an archive database when the vehicle returns to its home station. The meta-data is optionally stored both in the home station archive database, as well as on a remote centralized database that stores meta-data from a plurality of station archive databases.
A variety of electronic sensors and associated electronics and software, that encode, transmit, and record video, audio, and many channels of streaming real-time meta-data, such as telemetry and event information, can be included in an embodiment of a surveillance system to detect a variety of events or occurrences. The meta-data is embedded and synchronized with the recorded video. The sensors may be positioned on mobile platforms, such as cars, trains, or planes, or on stationary platforms, such as buildings, posts, fences, and the like. The sensors can include, by way of example, one or more of pan/tilt/zoom, passive and active infrared and visible light cameras, covert wireless cameras and microphones, glass breakage detectors, door open/close detectors, gun discharge detectors, crash detectors, light bar on/off inputs, siren on/off inputs, gun rack detectors that sense when a gun is removed from and/or placed in the rack, vehicle speed sensors, tachometer, radar gun, fuel level, heartbeat monitors, pulse monitors, chemical weapons detectors, GPS systems, radio receive and transmit switches, public address ports, and the like.
Advantageously, the sensors and supporting circuitry are optionally capable of simultaneously transmitting live (low latency) video, audio, and data telemetry wirelessly over wireless networks while recording, and further provide data terminal functionality. In one embodiment, a variety of server components are used to cost effectively and securely deliver video, audio, and data telemetry, such as that recorded via the sensors and supporting circuitry, to long-term storage archives, optionally in accordance with Federal Evidentiary Rules. Upon receiving the recorded files that include video, audio, and data telemetry, an example apparatus automatically extracts and parses pre-determined data-points from the recorded telemetry to construct a scalable video meta-data "comparator" file that is used by
a central database to enter the data to fields for sorting; seek extract, and include selected data and information from other databases related to the recording for central access; and provide for string-searches of meta-data embedded in videos. For example, in response to user string searches and using the meta-data entered into the meta-data database, specific videos and even specific segments or frames within a video sequence are located and retrieved from the video archives. The located videos can be substantially instantly delivered to the requesting user starting from the moment of a selected meta-data "incident" or data-points, or beginning at a selected time period relative to the incident or data point. Thus, use of an embodiment of the present invention can result in the reduction or elimination in the need to spend time manually locating and retrieving video records, or manually viewing such records in order to locate specific events.
Further, the system advantageously optionally provides secure user access locally and/or remotely, optionally without needing customized client display software on the user computer or terminal. For example, access to and display of videos and meta-data can be provided using a standard browser, such as Microsoft Internet Explorer or the like, and a standard media player, such as Windows Media Player or Apple QuickTime, executing on a personal or server computer, personal digital assistant, cell phone, and the like, thereby lowering the client cost and easing maintenance. However, custom media players and browsers can be used as well. In addition, video teleconferencing interfaces, such as the standard H.323 teleconferencing, is provided for remote observers. By optionally using an existing teleconferencing standard the system is compatible with legacy video teleconferencing systems. Optionally, the system and applicable sensors can utilize one or more of ISO MPEG-4, MPEG-1, MPEG-2, and H.323 encoding/decoding. Optionally, for certain application, the system employs extremely compressed video to reduce bandwidth and storage requirements. For example, in one embodiment, an I (intracoded) frame is only transmitted when at least a certain number or percentage, such as 25% of pixels change luminance and/or chrominance relative to the previous intracoded frame, otherwise P (predicted) frames or B (bi-directionally interpolated) frames are used. As is well known in the field, I frames generally utilize many more bits than P or B frames. Optionally, this process allows six frames/second to be transmitted using as little as about 5.9 kbs, and at a
nominal transmission rate of 7.2kbps, which is well within the capacity of existing cellular data transmission services.
One embodiment advantageously utilizes asymmetrical encoding which provides a multi-session digital video compression process that enables multiple simultaneous transmissions of various video resolutions and frames rates while a high quality recording is created or played. This process permits various users utilizing dissimilar devices to view live and/or prerecorded video transmissions appropriate for the type of viewing device in use.
The foregoing methods and systems will be described in greater detail below with reference to the figures. Throughout the following description, the term "Web site" is used to refer to a user-accessible server site that implements the basic World Wide Web standards for the coding and transmission of hypertextual documents. These standards currently include HTML (the Hypertext Markup Language) and HTTP (the Hypertext Transfer Protocol). In addition, reference is made to Java script (also referred to as JavaScript), though other types of script, programming languages, and code can be used as well. For example, VBScript or Active X objects can be used with appropriate platforms. It should be understood that the term "site" is not intended to imply a single geographic location, as a Web or other network site can, for example, include multiple geographically distributed computer systems that are appropriately linked together. Furthermore, while the following description relates to an embodiment utilizing the Internet and related protocols, other networks, such as networked interactive televisions, and other protocols may be used as well.
In addition, unless otherwise indicated, the functions described herein are preferably performed by executable code and instructions running on one or more general-purpose computers, terminals, personal digital assistants, cellular phones, or the like. However, the present invention can also be implemented using special purpose computers, state machines, and/or hardwired electronic circuits. The example processes described herein do not necessarily have to be performed in the described sequence, and not all states have to be reached or performed. Further, while the following description may refer to "clicking on" a link or button, or pressing a key in order to provide a command or make a selection, the commands or
selections can also be made using other input techniques, such as using voice input, pen input, mousing or hovering over an input area, and/or the like.
The overall system is shown in Figure 1 to which reference is hereby made. The system includes a mobile video/audio data recorder 100 which records high quality video/audio and serial data telemetry while simultaneously transmitting specially formatted live video/audio and information to personnel using a variety of reception devices or terminals. For example, the mobile video/audio data recorder 100 optionally records at 30 frames per second, though other frame rates can be used as well. Optionally, the mobile video/audio data recorder 100 utilizes RTSP (real time streaming protocol), a client-server multimedia presentation control protocol, which provides efficient delivery of streamed multimedia over IP networks. The RTSP may utilize RTP (Realtime Transport Protocol), which is a packet format for multimedia data streams.
The mobile video/audio data recorder 100 optionally saves video files in multiple file segments, the length and/or duration of which is selectable by a user or system administrator. For example, if segment sizes of 300 seconds are selected with a recording bit-rate of 800kbits per second, mobile video/audio data recorder 100 will break long duration recordings into files of approximately 30Mbytes each. The foregoing process advantageously provides enhanced file resiliency, thereby reducing the incidence of file corruption, and facilitating the recovery of damaged or corrupted files by limiting the size of each binary recording. The recorder 100 can transmit files, including video records, audio records, and/or meta-data, using one or more of CDPD, GPRS, GSM, satellite, dial- up, or broadband Internet networks.
Optionally the frame rate, bit rate and resolution for transmission can be selected based on the wired or wireless network and the receiving terminal. For example, some devices, such as palm-held personal digital assistants (PDAs) and hybrid cell phones may have limited display resolution and processor power, hi applications where such devices are used to view the video, such as by remote field persomiel performing surveillance, the recorder 100 maintains compatibility with the target device by optionally formatting video specifically for the target device. By way of example, personnel equipped with a PDA that may only be capable of displaying 15 video frames (pictures) per second at a resolution of 320x240 pixels connect to a special URL (Universal Resource Location) associated with a Web site, and are provided video specifically formatted for the receiving device. At the
same time, when video and data streams to devices that can display full resolution and frame rates, such as notebooks and PCs, the devices receive full resolution frames at the recorded frame rate.
Thus, for example, live video can selectively be transmitted at one or more of the following video frame/bit rates, while at the same time optionally recording at a minimum frame rate and resolution, such as 30 FPS at a minimum resolution of 352 x 240 with 48KHz audio:
6 FPS (frames per second) with a resolution of 160 x 120 utilizing less than 8 kilobits per second via CDPD, GSM, GPRS, 802.1 lg, 802.11b, 802.11a, or Ethernet 10/100.
15 FPS with a resolution of 320 x 240 at 47 kilobits per second via GPRS, GSM, 802.1 lg, 802.11b, 802.11a, or Ethernet 10/100.
30 FPS with a resolution of 352 x 240 at 192 to 600 kilobits per second via 802.1 lg, 802.11b, 802.11a, or Ethernet 10/100. The mobile video/audio data recorder 100 can be located in and transmit from a variety of stationary and mobile locations, such as aircraft, ships, patrol vehicles, buildings, lots, fields and the like. i one example embodiment, a ring buffer in a recorder, such as recorder 100, captures video, audio and data until an instruction or trigger to start the recording process occurs. When the instruction or trigger is received, the content of the ring buffer is assigned a new serial record number. A file is created in the system's local temporary archive with a file name including the serial record number, system identifier, and the user assigned file naming convention is appended. The start instruction can be the result of any particular event, such as a patrol vehicle light bar being turned on, or as a result of a user providing a manual signal start instruction. Files, including video, audio, and meta-data, are then recorded and closed in optionally fixed duration intervals. The file intervals can be specified by the user or administrator during system set-up. As discussed above, the files can include embedded video, audio, and meta-data. Meta-data is recorded as virtual channels utilizing a packet-based addressing scheme, enabling a large number of virtual channels, such as up to 256 or more virtual channels. The meta-data can optionally correspond to inputs from one or more of the sensors and detectors discussed above. As each file is closed, a buffer, such as the ring buffer, captures the data for the next file
segment so that data is not lost. Advantageously, the data, video, and audio sources and encoders can remain active during file close intervals.
The files are stored in an archive clearing directory, and are serialized and identified by a record event string in preparation for automated file upload to an assembler server system 120.
The video/audio data signals recorded by the mobile video/audio data recorder 100 are uploaded either wirelessly or via a wired connection to the assembler server system 120. By way of further example, if the mobile video/audio data recorder 100 is located in a police or other vehicle, the recorder 100 can automatically upload the recorded video/audio and data using 802.11(b, g, or a) protocol upon reaching the police station at which the vehicle is based. The data transmitted with the video/audio can, for example, include the date and time of recorded segments, together with organization and sequencing information, as well as digital serial data and event data. This data may also include police vehicle number, shift, time, personnel designations, and other fields, as desired. The date and time information can be embedded in the video file with high accuracy, such as, in one embodiment, to within 1/30 of a second accuracy.
Advantageously, because the date and time are recorded as meta-data, the date and time information does not have to be recorded in the actual visible video frame. Thus, upon viewing or playback, the date and time do not obstruct information in the video frame, and instead are optionally displayed in a separate window.
The serial data, for example, can include records of data communications of an external remote data terminal, alarm data from an external security sensor system, or other data from other serial interfaces, such as an RS-232 or IP interface. The serial data can be embedded in the video stream and recorded in the video file to within 1/30 of a second accuracy, though greater or less accuracy can be used in other embodiments, hi one embodiment, up to 256 external data sources can be simultaneously supported, though in other embodiments more than 256 data sources can be recorded, h addition to serial data, parallel data can be recorded as well. In one embodiment, parallel data is first serialized and then recorded as serial data. Advantageously, because the data from any virtual channel are recorded as meta-data, the data and/or information derived therefrom does not have to be recorded in the actual visible video frame. Thus, upon viewing or playback, the
data and/or information do not obstruct information in the video frame, and instead are optionally displayed in a separate window.
One embodiment of the recorder 100 provides event-based recording that enables users to activate a recording session by either pressing a button or activating another device used as an event trigger such as a vehicle light bar, or an alarm contact or other sensor. In cases where a recording is already in progress, a digital "flag" is created and embedded that enables a viewer to find the event during playback. Recording may optionally be started remotely by network connection, either manually, or automatically using a plurality of predetermined external events, parameters, or triggers. Optionally, a record of the location of a vehicle, such as a patrol vehicle or aircraft, can be embedded in the video file. For example, the GPS data can be provided by a GPS system within the vehicle and embedded in the same fashion as serial data. hi particular, when a recorder 100 comes into proximity with its designated home network, using, by way of example, an 802.11 wireless network, the assembler 120 recognizes each recorder 100, and interrogates the recorder 100 for new records or files. If the recorder 100 contains new recordings, the assembler 120 automatically commences the file upload process. Once the files have been transferred and verified, the assembler 120 notifies the recorder 100 that the file upload is complete, and instructs the recorder 100 to clear its record volume for new recordings. The assembler 120 optionally returns the recorder 100 to normal operations mode, or shuts the recorder 100 down.
The assembler 120 can, for example, be located in a facility with which the recorder 100 is likely to come within close proximity with on a regular basis, such as a station house. This allows a relatively short-range wireless network, such as 802.1 lg, to be used to communicate information and video between the recorder and the assembler 120. The assembler 120 is coupled to a media server 123, such as Microsoft Media
Server, which is coupled to a video access controller (VAC) 124, which is coupled to an archive controller 126. The archive controller 126 is coupled to mass storage units 160, 162.
The assembler server 120 optionally "assembles" associated files into a one cohesive and user-playable video recording. The assembler extracts and parses meta-data from the meta-data channels of the newly archived video file. A string searchable format file, such as an XML document, is then created by an XML generator 128 and associated
with the video recording, parsed by information type, to enable "string" searches of the data embedded with the video and audio. The searchable document is stored in an information management system (IMS) 132. In one example embodiment, the assembler 120 combines related files into a single Internet streamable file containing the original data while preserving encoded RTP/RTSP streaming protocols embedded in the files by the recorder 100.
The video/audio stream is then transmitted, either immediately, or by predetermined schedule, by the assembler 120 to an appropriate video-on-demand database or storage media, such as the storage units 160 and 162 controlled by the archive controller 126. The storage unit 160 can be implemented as a RAID (redundant array of inexpensive disks) system providing high speed storage and retrieval, while the storage unit 162 can be implemented as a plurality of high capacity optical digital data storage disks providing relatively more capacity at lower overall long-term storage cost than the storage unit 160. The storage unit 162 provides a more permanent record of video stored in the RAID system 160, however, the write/read time may be slower than that provided by RAID system 160. Optionally, the storage unit 162 may be in the form of an optical WORM (write once, read many) drive or carrousel, including DVD disk or disks, the use of which prevents the editing of recorded files.
The system may include one or more digital recorder transmitter units 169, which can include or be connected to a plurality of mobile video/audio data recorders. For example, the digital recorder transmitter unit 169 can optionally record on internal magnetic or optical media 165 large amounts of video, such as one year or more of GIF video from, each of several cameras at relatively high frame rates. For example, one embodiment records at 30 frames per second (fps) for 160 video cameras at GIF simultaneously, with multiple audio channels, though other frame rates, resolutions, and quantity of video cameras can be used as well. The digital recorder transmitter unit 169 can further record one or more audio sources and multiple streaming data sources, such as data from alarm panels and machine controls. The system can also include one or more encoder systems 172, which is an MPEG multichannel encoder coupled to a plurality cameras transmitting live video, coupled to assembler keeper 139 via (Video Access System) VAS 170.
The digital recorder transmitter unit 169 also includes an omniport which includes or acts as a television tuner card. The omniport acts as a capture device so that the digital
recorder transmitter unit 169 can be tuned to receive CCTV cable channels. This provides the capability for frequency division multiplexing to view desired images. This capability enables the user of the digital recorder transmitter unit 169 to capture the video/audio images that may be generated in such a closed circuit television system of the type often utilized for security purposes in various facilities.
The omniport interfaces into existing frequency modulation CCTV signals. This may include a number of different cameras, for example 160 or more cameras, the images of which are substantially simultaneously transmitted within a particular facility. The user of the digital recorder transmitter unit 169 may then select the desired channel in addition to being able to record images from other cameras. One such specific application where security is involved is on trains.
Trains or other vehicles traveling through various geographic regions will encounter communication and other device frequencies that could interfere with- the wireless transmission of video/audio data signals. Under such circumstances, the video/audio data signals in analog format are frequency modulated and then are applied to the AC or DC electrical network utilized within the trains or other like vehicles. This frequency modulated signal may then be acquired through the omniport resident on the digital recorder transmitter unit structure in much the same manner as acquisition of a frequency modulated CCTV signal as described above. The digital recorder transmitter unit 169 also includes an assembler server system
163, a VAC 164, a media server 166, and an archive controller 168, which functions in the same manner as described above with respect to the assembler server system 120. The output from the digital recorder transmitter units 169 may then be transmitted to the assembler keeper 139 as was the XML signal from the assembler 120. The video/audio signal is then transmitted directly to a storage medium, such as the RAID system 165. As previously discussed with regard to the mobile video/audio data recorder 100, the meta-data and other identifying information regarding the video/audio is transmitted to the IMS 132.
With regard to both the mobile video/audio data recorder 100 and the digital recorder transmitter units 169, the archive controllers 126 and 168 respectively control the recording of the video in the RAID systems 160 and 165. Optionally, the storage unit 162 stores an exact copy of at least a portion of the meta-data and/or video on more permanent storage, such as on a optical media, of selected files recorded in the RAID system 160 for
authentication purposes, as discussed below, and for backup purposes. Further, having the recorded copy can be kept at a site geographically remote, such as more than 150 meters distant, from the RAID system 160 provides for increased security.
The IMS 132 will now be discussed. The IMS 132 includes one or more relational databases, such as Oracle 9i or lOg, an ASP (Active Server Page)/Fusion module 134, a Java generator 138, an assembler keeper 139, and a computer aided dispatch (CAD) keeper 140. The CAD keeper 140 is further coupled to a CAD system 175.
The ASP/Fusion module 134 is used to generate pages, such as HTML pages, that include one or more scripts, such as JavaScript or VBScript. The module 134 processes the scripts on a Web server associated with the module 134 to customize the pages for the user and to provide transaction security. The customization can be based on information received from the user or the user terminal. By way of example, the information can be provided by way of a URL or address for an appropriate Web site page. The URL can be provided by the user browser when requesting a page to access data from one or more of the system databases. The ASP/Fusion module 134 can then build the requested page in substantially real time and send it, via a Web server, to the requesting user terminal for display in a browser or other application. By way of example, the ASP/Fusion module 134 can be implemented using Macromedia's ColdFusion product, including the ColdFusion Studio and the ColdFusion Server, though other applications and Web servers can be used as well.
The CAD system 175 can, for example, be used to process emergency or help calls from the public and handle police dispatches to police officers or police vehicles. Of course the CAD system 175 can also be used to handle dispatches from other entitites, such as fire department dispatches, hospital dispatches, and dispatches of other governmental or non-governmental entities. By way of further example, a CAD system 175 can be used to guide a call-taker or dispatcher into collecting relevant information, such as the address or location, related to an incident or compliant being reported, which the call-taker then enters into a form presented by the CAD system 175 on the call-taker's computer terminal. The information is optionally then stored in a CAD database. The CAD system 175 may check to make sure certain information, such as the address, is valid. The CAD system 175 or other entity may assign an incident or case number or code to the incident.
Appropriate resources, such as one or more police cars, foot patrols, motorcycle officers, and/or ambulance units are then selected and dispatched to handle the incident. The CAD database also stores information on which resources were selected and dispatched to handle the incident. One or more status events for each resource may also be recorded in the database. For example, the status can include an acknowledgement from the resource that the dispatch was received. Another status can include a report from the resource that the resource has arrived at the scene of the incident. Still another status might relate to the resource leaving the scene.
In particular, the IMS 132 provides users with the ability to view a particular video record which has been made of a particular event in the past. The IMS 132 further enables the user to search for meta-data associated with archived videos, permits users to play back recordings at subjective times based on the meta-data and data field searches, and enables playback of specific records when selected by a user. Authorized users also have the ability to navigate and play back requested files on the storage system, provided that they have clearance to do so. There can be multiple levels of clearance, such as up to 30 or more levels of authorization that are used to determine user access to file types and specific data. The authorization can be centrally specified by the system administrator. The IMS 132 tracks user access to files and user activity on the IMS 132. Thus, for example, if a user chooses a file by going directly to the storage system to commence playback directly from archive, the user's activities are automatically logged. User's are optionally prevented from erasing archived files. Access to "housekeeping" functions are optionally reserved to the system administrator.
The IMS 132 extracts files created by the assembler 120 and automatically enters files to its database that are initially designated by the system administrator or other user during system set-up. Video files are stored in a separated storage volume, such as storage unit 160, accessible to users provided that they receive access authorization from the IMS 132.
For example, upon occasion an individual may desire to view a particular video record which has been made of a particular event in the past. With reference to Figure 2, when such is desirable, a user may access the IMS 132 over a network 204 through the utilization of a terminal 212, which can be a personal computer, personal digital assistant, cell phone, interactive television, or the like. The network 204 can be a local or wide area
network, the Internet, or an intranet. When contact has been made between the user's terminal 212 and the IMS 132, the user logs on by providing a user identifier and pass code. After the log in has been completed and appropriately acknowledged by the IMS 132, the active server page/fusion module 134 generates a web page which will appear in a browser on the user terminal's screen 302, as illustrated in Figure 3.
Optionally, the web page is configured specifically for this particular user and will identify for the user, depending upon his position, the various files to which the user is entitled to have access. This web page is built in conjunction with the JAVA. generator 138 which generates appropriate JavaScript. A web page, an example of which is illustrated in Figure 8, provides the ability for the user to enter a specific string of information into a database search field or value field for the purpose of generating a search for a specific event or for a specific period of time. The user can initiate a search by clicking on the "find" button, cancel a search in progress by clicking on the "cancel" button, initiate a new search by clicking on the "new search" button, add criteria by clicking on the "add criteria" button. The user can also specify as to whether subfolders are to be searched by clicking on the "recurse" field.
The query can include a Boolean combination of one or more of an incident or case identification code, the identity (for example, name or employee identification code) of a person or officer responding to a dispatch, the name of a person reporting an incident, the name of a person arrested, cited, or questioned during an incident, the police vehicle number, the video camera identification number, the date and/or time of an incident, the date and/or time of a video recording, an event, such as a weapon removal from a rack, a light bar turning on/off, a siren turning on/off, a vehicle speed, a vehicle door opening/closing, a gun discharge, an alarm signal, a crash signal, geographical location, GPS geographical position coordinates, and the like.
For example, the user can request or search for files associated with a particular vehicle that were recorded in response to the vehicle light bar being turned on in order to locate the beginning of all situations in which the officer issued a traffic ticket, hi another example, in order to determine if an office was driving unnecessarily fast, the user can request files wherein a police vehicle driven by a named officer exceeded 65 miles/hour when the vehicle light bar was not turned on. Similarly, the user can request files associated with a specific incident number to locate videos and meta-data associated with
the incident, even when the video and meta-data was recorded by different recorders, such as recorders in all police vehicles assigned to respond to the incident. By way of further example, the user can request files associated a specific incident number that were originally recorded within 1 hour after an officer responded to a dispatch. By way of yet another example, the user can request files associated with the swiping or entering a driver's license number taken during a traffic stop in order to locate video for a particular citation incident. hi response to the query, the user will be provided a list of files which matches the search string and which the user is authorized to access. The list can be sorted by time of date, time, size, name, incident code, officer name, name of person reporting an incident, event, and/or on other fields, including customizable fields. Optionally, the user can specify one or more search properties, one or more operators, including Boolean and other operators (such as AND, OR, XOR, NOT, exact match, NEAR), values, and the like.
As similarly discussed above, in one optional embodiment, the particular file of interest may not be stored in the IMS 132, and is accessed from the storage device 160 coupled to the assembler 120 or alternatively the RAID storage system 165 associated with a corresponding digital recorder transmitter unit 169.
Access to video files and data can be restricted and controlled. For example, when the user clicks on a link corresponding to a particular video file of interest, the video access controller (VAC) 124 generates a certificate in the form of an ultra long alphanumeric string, such as a 64, 128, or 256 bit string, which can be arbitrary in nature. That certificate is transmitted as shown at 208 to the user terminal 212 along with a command to redirect the user's browser to the particular file which resides on the storage system 160, for example, as is shown at 210. Substantially simultaneously, the video access controller (VAC) 124 will transmit the identical certificate directly to the archive manager or RAID system 160 as shown at 206. The certificates, transmitted by the video access controller 124 as shown at 206 and redirected by the computer 212 as shown at 210, are then matched to ascertain identical confirmation thereof, hi the event that a match is obtained within a predetermined of time such as a very short period of time (seconds), access to the selected file is then granted and the file is forwarded to the computer 212 and appears on the screen 302 as illustrated graphically at 304. Thus, the video associated with the selected file is
displayed, as well as the synchronized meta-data that was recorded and embedded in the video file.
For example, if a recorded event occurs, such as the light bar being turned on, the user will see that discrete recorded event happening at a certain time during the video. If the user desires to search for the light bar "on" event, the video will begin playing at the moment when the light bar is activated. Similarly, the user can search on other data or events, such as a drivers license number, which was either embedded in the video file at the time of the recording, or associated with the file during the data mining procedure after the comparator file was delivered to the IMS. Likewise, a user can search for the removal of a weapon from a weapon rack, activation of a siren, the vehicle reaching a specified speed, specified data communication transmitted to police car terminal, that were either recorded at the time of the creation of the record, or associated with the video during the data mining procedure.
As the video plays, the user may control what appears on the screen. For example, the user may play the whole video in full screen. Alternatively, as illustrated by display 718 in Figure 7, multiple frames or windows can be provided. For example, a GPS map may be generated and displayed, as well as terminal traffic (including data entered by the officer or other user), speedometer readings, date and time, and like in corresponding windows or frames. Other displayed information can show the status of various other events, such as the status of firearms, seat belts, and the like. The foregoing information optionally will appear scrolling up synchronized to the video/audio, map location, speedometer reading, etc. If the recorded video did not have a data terminal, then that information would not be displayed. Under those circumstances, the page gets reconfigured automatically and so what is displayed is something that is size appropriate reconstructed in substantially real time because it is generated for the specific user. So now the video is larger and the telemetry data is repositioned to whatever is most convenient. The ASP/fusion generator module 134 automatically determines the best or preferred way to display the desired file.
If there is a failure to obtain the desired match up between the certificate directed by the VAC to the storage device 160 with the redirect from the computer 32 to the storage device 160, then the following process is optionally performed. The connection is immediately terminated. The period of time within which this match of the ultra long alphanumeric string needs to occur can be any time desired for the particular application,
such as for example, a few seconds or a few minutes. If the match does not occur within the specific period of time, then the user is optionally required to again log on to the IMS 132, establish the secure connection, enter the pass code and again request the file as described above. If the system fails to obtain a match up of the alphanumeric string for a predetermined number of times, for example, three, then the user attempting to obtain access is optionally locked out of the system and will not be able to obtain access to the files desired without obtaining clearance through the system administrator. This process for video access control is referred to as a temporally extinguished certificate. It will be recognized by those skilled in the art that what has occurred is that when the user has established initial user authentication and when the temporally extinguished certificate matches within the specified period of time, then the particular file which the user has selected and particularly for the specific moment from which playback is to start appears on the screen as shown in 304 in Figure 3. Once access has been granted, then the user may control viewing of the selected video by going forward, backward, stop framing or the like as long as the socket remains open. Optionally, unless appropriately authorized by the appropriate supervisor or administrator, the user will have no overwrite capabilities of any type and may only view the video.
Because the user is requesting a specific video file identified on the web page which has been generated specifically for that user by the ASP/fusion module 134 and- JAVA generator 138, the URL for the media server for that particular storage media is provided by the video access control (VAC) and is contained in the redirect 210 generated by the video access controller 124 and transmitted to the user's computer 212. The video is streamed to the user's terminal or computer 212, and so television-quality video playback can start very quickly, such as within seconds or faster, without having to wait for files to transfer to the local user's machine. Optionally, however, the entire file can be transferred to the local user terminal 212 before playback begins, though this may be a more time consuming process.
The media storage may also include information which is obtained from alien databases obtained and associated with the specific file during a data mining procedure as described below. Alien databases are databases controlled or existing outside of the information management system 132. In one embodiment, through the utilization of the
CAD keeper 140 a search is made of the alien or external databases to obtain information which is relevant to the information being generated from the video stored in the overall system. That information is automatically entered into the IMS relational database stored on the RAID 142 that is connected to the IMS 132, and optionally associated with corresponding video files. This information is then also available and will appear for utilization by the user on the web page generated and displayed on the terminal 212 when log in occurs and is authenticated.
The database searches can be performed in substantially real time by generating quires, or in batch mode. By way of example, the alien databases can include one or more of a DMV (department of motor vehicle records) database, a CAD database included in the CAD system 175, a database of police reports filed by police officers, a database of 911 emergency phone calls, a database of incident reports, and so on. By way of further example, as similarly discussed above with respect to CAD system 175, the CAD database can include information related to an incident or compliant being reported, such as the incident or case number, the date and time the incident was reported, the date, time and location of the incident, the type of incident, which resources were assigned to handle the incident, the status of those resources before during and after handling the incident, and related incident reports.
In some applications, such as for evidentiary purposes law enforcement, it can be important to ensure that archived video and meta-data has not been tampered with. Therefore, in one embodiment when a record is being uploaded for storage in a database, the IMS 132 creates a second duplicate meta-data record and stores it in a file, and optionally on a different storage device at a removed location, separate from the original uploaded record. When a user requests a record the IMS 132 automatically compares the two stored meta-data records, including for example the objective time ticks, subjective time ticks, event data, serial data, and so on, to authenticate the record. If the original digital record has been modified, such as by deleting or replacing one or more video frames, the duplicate meta-data record will not match, and the IMS will alert the user and/or system administrator of the match failure. Further, because most of the encoded, stored video frames are predicted or interpolated from other frames, the deletion of one or more frames can cause the other frames to visibly render properly, further indicating tampering.
An XML compare file is provided below. The file is generated by the assembler 120 and is used to transmit extracted data embedded by a recorder 100 into a video data chamiel of an archive file for automated data entry by the assembler keeper to the IMS relational database. In addition, the file is used to authenticate an archived record by comparing subjective time tick proximity to data for file validation. The file is further used to format the ASP user interface for concurrent data display of video and meta-data from multiple sources.
1. <?xml version="1.0" encoding="UTF-8"?>
2. <xs:schema xmlns:xs= (ASM Comparator File) 3. <xs:element name- 'Mobile video/audio data recorder File ID" type- ' xs:string "/>
4. <xs:element name="Mobile video/audio data recorder ID" type- ' xs:string "/>
5. <xs:element name- 'Event Date Objective Value" type- ' xs:string "/>
6. <xs:element name- 'Event Start Objective Time" type="xs:string"/>
7. <xs:element name- 'Event Start Objective TimeZone" type="xs:string"/> 8. <xs:element name- 'User Label" type- ' xs:string"/>
9. <xs:element name- ' Subjective Duration" type="xs:duration"/>
10. <xs : element name- 'EndingValue" type="xs:fioat"/>
11. <xs:element name- 'Increment" type="xs:int"/>
12. <xs:element name- 'System Label" type- 'xs:string"/> 13. <xs:element name- 'Element List" type- ' xs:string .
14. <xs:element name- 'Video Format" type- ' xs:string "/>
15. </xs:sequence>
16. <xs:element ref="subjective time tick"/>
17. <xs:element name- 'State Change Name" type="xs:float"/> 18. <xs:element name="Serial Data Channel Name" type="String"/>
19. <xs:element name- ' Objective DateTime" type="String"/>
20. <xs:element ref=" subjective time tick"/>
21. <xs:element name- 'State Change Name" type="xs: float "/> (state change labels assigned to Mobile video/audio data recorder digital IO ports corresponding to application — any number of different elements to maximum available IOs)
22. <xs:element name- 'Serial Data Channel Name" type="String"/> (serial data labels assigned to Mobile video/audio data recorder serial data or network IO ports corresponding to application - any number of different elements to maximum available IOs) 23. <xs:element name- ' Objective DateTime" type="String"/>
24. <xs:element ref- ' subjective time tick"/>
25. <xs:element name- 'State Change Name" type="xs:float"/> (state change labels assigned to Mobile video/audio data recorder digital IO ports corresponding to application - any number of different elements to maximum available IOs) 26. <xs:element name- 'Serial Data Channel Name" type="String"/> (serial data labels assigned to Mobile video/audio data recorder serial data or network IO ports corresponding to application - any number of different elements to maximum available IOs) 27. <xs:element name- Objective DateTime" type="String"/> 28. <xs:element ref="subjective time tick"/>
29. <xs:element name- 'State Change Name" tyρe="xs:float"/> (state change labels assigned to Mobile video/audio data recorder digital IO ports corresponding to application - any number of different elements to maximum available IOs)
30. <xs:element name- 'Serial Data Channel Name" type- 'String'7> (serial data labels assigned to Mobile video/audio data recorder serial data or network IO ports corresponding to application - any number of different elements to maximum available IOs)
31. <xs:element name- 'Objective DateTime" type="String"/>
Lines 1-14 comprise the header information used to define constants, such as recorder identifier, date, time increments, and the like. The other lines are used to specify information specific to a segment, such as the value or change in status of events, time tick values, and the like.
Line 1 of the example file format provides the version number and the encoding type. In this example, UTF-8 is used, though other encoding types can be used as well. UCS characters U+0000 to U+007F (ASCII) are encoded as bytes 0x00 to 0x7F (ASCII compatibility). Advantageously, files and strings which contain 7-bit ASCII characters have the same encoding under both ASCII and UTF-8. Line 2 is used to declare the namespace. Line 3 is used to define the mobile video/audio data recorder file identifier.
Line 4 is used to define the mobile video/audio data recorder identifier. Line 5 is used to specify the event date using an objective date, such as the Greenwich Mean Time (GMT) date.
Line 6 is used to specify an event start time using an objective time, such as GMT. Line 7 is used to specify the time zone being used in lines 5 and 6. For example, the objective time zone can be GMT or Pacific standard time (PST).
Line 8 is used to specify the user label, which can be a easily remembered label, such a "Bank" recorder if the recorder is located in a bank, or "Intersection of Westwood and Wilshire" if the recorder is located on a post located at the intersection of Westwood and Wilshire.
Line 9 is used to specify the subjective duration
Line 10 is used to specify the file size.
Line 11 is used to specify the time increment used for the subjective time ticks.
Line 12 is used to specify the system label, such as the System ID which can indicate that the system is associated with a certain entity, such as the Los Angeles Police Department, California Highway Patrol, FBI, and so on.
Line 13 is used to specify the element list that assigns channels to data sources. For example, GPS coordinates can be assigned to channel 1, and terminal traffic can be assigned to terminal 2. This information can also be stored in a unit configuration file in the IMS database.
Line 14 is used to specify the video format, such as MPEG 1, MPEG 2, MPEG 4, H.323 encoding. Line 15 is used to as compositor to define the virtual data channel sequence.
Because, in one embodiment, channels that contain no data are not transmitted, the sequence provides an efficient way of delineating what the ASM keeper is about to parse.
Line 16 is used to specify the current subjective time tick for the corresponding segment. Line 17 is used to specify state change values for labels assigned to the mobile video/audio data recorder digital IO ports corresponding to a given application.
Line 18 is used to specify the serial data values for labels assigned to the mobile video/audio data recorder serial data or network IO ports corresponding to a given application. Line 19 is used to specify the objective data and time for the corresponding segment.
Lines 20-31 are used to specify the subjective time ticks, state change values, serial data values and objective dates and times for additional segments.
As will be clearly understood from the foregoing description, the user may wish to simultaneously access different video files from the storage media. For example, as illustrated in Figure 4, three different video files labeled A, B, and C may be retrieved for simultaneous display on the user's screen. It will often be desired to synchronize the video streams A, B and C in order to assure that the events being viewed arc being viewed with relation to the exact time which they occurred even though the video streams A, B and C may have been generated by totally different cameras and, even in some instances, totally different parts of the world.
To facilitate such synchronization, each of the video streams A, B and C have an objective time recorded thereon as shown at 404, 412 and 416. The time indicators 404, 412 and 416 are each objective time. The objective time can be Greenwich Mean Time (GMT), sometimes referred to as ZULU time, though other time zones can be used as well. As a result, the video stream A and the video stream B may be synchronized so that the objective times 404 and 412 are identical or substantially identical, as well as having the video stream C also synchronized so that the events occurring on each of the video streams A, B and C are all occurring based upon commencement at the objective times 404, 412 and 416. hi addition, each of the video streams will have a subjective time marking as shown at 406, 410 and 414, respectively, on the video streams A, B and C. Each of these subjective time markings are relative to the duration of the specified video file. As an example, the ticks of the clock are recorded for each video frame or picture within the file. Once the video streams A, B and C are properly synchronized according to the objective time designations times 404, 412 and 416, the user may then be able to correspond the events being depicted on each of the video steams A, B and C with the local time at the particular venue for purposes of analysis, comparison to other events, or the like. This ability to synchronize is provided using a UTBC (Universal Time Base Controller) included in the assembler 120. Figure 5 illustrates an example video sequence 500 which includes video 502, a first audio channel 504, a second audio channel 506, and meta-data 508. The variable vA is the bit rate variable, which is related to the number of frames/second and the image quality. The variable vB is the audio bit rate, which can relate to bit depth, how many audio channels are being recorded, the dynamic range. The variable vC is the meta-data bandwidth which is related to maximum bit-per second of aggregate channels. A recorder, such as recorder 100, can be constantly capturing data 510 in a buffer, such as a ring buffer or FIFO, until an instruction or start event starts the recording. The duration of the buffer is vl. The recorder then records multiple segments, such as multiple segments 512, 514, 516, 518, 520 of duration v2. The time v2 can be specified by the user and/or the system administrator. Figure 6 illustrates the conversion of the segments 512-520 illustrated in Figure 5 into an assembled file 602 as assembled or merged by the assembler.
Figure 7 illustrates the process of converting assembled video/audio and meta-data files into a Web page for display on a user terminal. The meta-data in file 602 is packetized for transmission over the meta-channel 710 using an address header 704 and a barer channel variable length packet 706, wherein the meta-data can include channels corresponding to multiple datasources.
Figure 9 illustrates an example process of accessing and rendering video streams. At state 902 a user accesses the IMS. As similarly described above, the user may need to log on and provide a user identifier and password. At state 904 a determination is made as to what files the user is authorized to view, and the list of authorized files are sorted and transmitted to the user terminal. The list can be sorted by time of day, date, size, event, or on other fields, including customizable fields. In response to the user selecting one or more of the files, at state 906 the ASP downloads the selected file or files. The frame rate, bit rate and resolution for transmission can be selected based on the wired or wireless network being used and/or on the receiving terminal resolution and frame rate rending capability. At state 908 data, including video, audio, and meta-data may be transmitted from more than one source, such as the IMS and/or ASM. For example, the IMS may transit a GPS map and the ASM can transmit GPS coordinates that was recorded by a vehicle in synchronization with video taken by a video camera mounted in the vehicle. At state 910 the data in rendered on the user terminal screen, such as in the user's browser. Figure 10 illustrates an example encoding process for live source transmission and recording from up to four different simultaneous streams generated from a single camera source, though fewer or more cameras can be used and fewer or more streams can be transmitted and recorded. The example encoding process optionally uses a dedicated processor for MPEG 1, MPEG 2, MPEG 4, CIF, D-l, and High Definition, as well as using real-time software-based encoders that substantially simultaneously encode at various bitrates/frame rates/frame sizes for playback or viewing on a plurality of different user devices such as PDAs, notebooks, and desktop computers. In this example, the "Stream controller" is a infinite pin tee that replicates video/audio data from a single sample source device to enable multiple encoders to simultaneously access different memory addresses for the same data stream. Those familiar with the art will recognize that this is also a software driver "wrapper" used to "spoof the functionality of a device driver for each of the
replicated signal sources. Each of the encoded video streams may be recorded, formatted for RTP/RTSP, while any or all of them are simultaneously available for live transmission . It should be understood that certain variations and modifications of this invention would suggest themselves to one of ordinary skill in the art. The scope of the present invention is not to be limited by the illustrations or the foregoing descriptions thereof.