WO2007131349A1 - Device and method for obtaining computer video - Google Patents

Device and method for obtaining computer video Download PDF

Info

Publication number
WO2007131349A1
WO2007131349A1 PCT/CA2007/000841 CA2007000841W WO2007131349A1 WO 2007131349 A1 WO2007131349 A1 WO 2007131349A1 CA 2007000841 W CA2007000841 W CA 2007000841W WO 2007131349 A1 WO2007131349 A1 WO 2007131349A1
Authority
WO
WIPO (PCT)
Prior art keywords
video
processing system
memory
computer
processed video
Prior art date
Application number
PCT/CA2007/000841
Other languages
French (fr)
Inventor
Peter D. Gray
Original Assignee
Digital Multitools, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Multitools, Inc. filed Critical Digital Multitools, Inc.
Publication of WO2007131349A1 publication Critical patent/WO2007131349A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling

Definitions

  • This invention relates to the field of computer video and related evidence applications.
  • Key loggers are software modules that are installed on a subject computer and that record all keys pressed on the subject computer's keyboard.
  • key loggers will record only a small fraction of the video generated by a subject computer, as most of the video generated by the computer would comprise subject matter other than keyboard entries.
  • Carrigan et al. describes an apparatus for facilitating control of a target computer by a remote computer.
  • the mouse and keyboard signals from the remote computer are routed to the target computer, while the video from the target computer is obtained and displayed at the remote computer.
  • the technology of the Carrigan et al. is not directed to the discreet obtaining of video for evidentiary or other similar purposes. Rather the purpose of Carrigan et al. is to send video to a remote computer for display, and to allow the user at the remote computer to use the remote computer's keyboard and mouse to control the target computer.
  • a device for obtaining video from a subject computer that addresses one or more of the shortcomings described above.
  • the device described herein will discreetly obtain and record the video of a subject computer. Therefore, there is provided a device for obtaining video produced by a subject computer, the device comprising: a connector module configured to be operatively connected to a video source within the subject computer; a processing system, operatively connected to said connector, for receiving said video, and for processing said video to create processed video for storage; a local memory for storing said processed video, the memory being operatively connected to the processing system.
  • a device for obtaining video produced by a subject computer comprising: a connector module configured to connect to a video source within the subject computer, the connector module having a high impedance so as not to substantially affect a display of said video; a processing system, for receiving said video, and for processing said video to create processed video for storage, the processing system having a system housing configured and positioned to resemble a component of said subject computer; a cable for operatively connecting said connector module and said processing system.
  • Figure 1 is a schematic illustration of a personal computer workstation
  • Figure 2 is a schematic diagram of a preferred from of the device
  • Figure 3 is a plan view of the device connected to the video module of a computer
  • Figure 4 is a diagram of a device installed in a computer; and Figure 5 is a schematic diagram of the preferred processing components of the device.
  • a personal computer 12 is shown.
  • the computer 12 is connected by a video cable 14 to a video monitor 16, resting on a table 18.
  • the monitor 16 displays the video produced by the computer 12, which video is provided to the monitor 16 by the cable 14.
  • the computer 12 includes a housing 20 which carries within it various modules, such as floppy disk drive 22, CD-ROM drive 24, and hard disk drive 26.
  • the housing 20 also encloses the device 10 for obtaining video produced by the subject computer 12, as will be more particularly described below.
  • the housing 20 of the computer 12 also houses other components of the computer 12, such as a video system, which typically takes the form of a video card 28.
  • the video card 28 is connected to the device 10.
  • the device 10 preferably includes connector module 30, to which the card 28 is connected.
  • the connector module 30 is configured to be operatively connected to a video source within the computer 12, the video source preferably comprising the video card 28.
  • the video system for generating video to be displayed on -A- monitor 16 is incorporated into the motherboard.
  • the video system may include a connector 38, or some other video source may be present.
  • the invention comprehends a variety of different video sources within the video system of the computer 12.
  • the device 10 further comprises a processing system 32, operatively connected to the module 30, for receiving the video of the computer 12 and for processing the video to create processed video for storage.
  • the device 10 further preferably comprises a local memory 34 for storing the processed video.
  • the memory 34 is operatively connected to the processing system 32.
  • the invention comprehends a connector without high input impedance, this feature is strongly preferred. Without high input impedance, the use of the device 10 is more likely to affect the video displayed on the monitor 16. If such an effect is noticed by a user of the computer, he may be prompted to investigate its cause, and may, as a result, become aware of the presence of the device 10. Since it is strongly preferred that the presence of the device 10 remain unknown to all but those who install it, having a high impedance connector module is preferred. It will be appreciated, however, that any other method of preventing an effect on the video likely to result in discovery of the device 10 may also be used.
  • the connector module 30 has a high input impedance, so that its connection to the video of the computer 12 does not substantially affect the display of the video on the monitor 16. Also, preferably, the module 30 is operatively connected to the processing system 32 by a cable 36.
  • a video card 28 is shown.
  • card 28 comprises a printed circuit board.
  • the video connector 38 On one side of the video card 28 is the video connector 38, which receives the video cable 14 when the computer 12 is operating.
  • the video of the computer 12 is generated on the card 28 and travels via the connector 38 and cable 14 to the monitor 16 for display.
  • the connector module 30 preferably comprises an adaptable connector 40 configured to be connected to card 28, and high impedance circuit 42.
  • the adaptable connector 40 comprises a flexible circuit configured to be soldered to connector 38.
  • the flexible circuit is preferably soldered at pin connections 44 to the pins of the video connector 38. In this way, the video of the computer 12 is obtained and transferred to the high impedance circuit 42.
  • the high impedance circuit 42 is configured to convert the video to a noise resistant format for transmission to the processing system 32.
  • the noise resistant signal format comprises a differential signal format. Therefore, as the video travels from circuit 42 to processing system 32, it will be less susceptible to noise.
  • the device 10 it is preferred for the device 10 to be installed in a discreet manner, so that its presence is effectively hidden from the user of the computer. For this reason, it is preferred that the connector module 30 be separated from the processing system by a cable, so that the module 30 is positioned outside the system housing 46 of the processing system 32.
  • the device 10 to be installed discreetly, flexibility is preferred.
  • Each computer 12 is different, and it is often not possible to know in advance where the device 10 can be connected to the video source of the computer 12. It is also often not possible to know in advance where there will be space for the processing system 32.
  • the device 10 By configuring the device 10 to have a relatively small connector module 30, connected by cable 36 to the processing system 32, the device 10 can be connected wherever necessary to effect discreet installation of device 10.
  • the use of the flexible circuit (or flexible PCB) 40 is also intended to facilitate discreet installation of the device 10. It is often not possible to know in advance what the surface of any particular video card 28 will look like, or whether there will be other components or cables in close proximity to the card 28 and connector 38.
  • the use of a flexible circuit 40 allows a connection to be made to the video source while bending around obstructions, if necessary.
  • a relatively small and flat flexible circuit 40, and of a relatively small and flat high impedance circuit 42 typically in PCB format
  • a connection can be made to the video source on the card 28 (or other video system) even if the space between the card 28 or other cards and components in the computer 12. Connections to video sources elsewhere in computer 12 are also comprehended by the invention.
  • the connector module 30 may take a different form than the preferred form just described, and still be comprehended by the invention.
  • the connector module 30 may comprise a single component, rather than two components 40 and 42 as in the preferred embodiment.
  • the invention comprehends the connector module 30, processing system 32 and memory 34 all being part of a single physical housing or casing, so that the system 32 and connector module are not physically separated.
  • Figure 5 shows in schematic form the preferred components and operation of a portion of the processing system 32.
  • the components include an analog-to-digital converter (ADC) 122, a central processing unit (CPU) 136, a synchronous dynamic random access memory (SDRAM) 138, and a field programmable gate array (FPGA) 140.
  • ADC analog-to-digital converter
  • CPU central processing unit
  • SDRAM synchronous dynamic random access memory
  • FPGA field programmable gate array
  • the preferred system 32 includes the CPU's non-volatile RAM (NVRAM) 137, which preferably stores, inter alia, the CPU program, the FPGA configuration, and other system information.
  • NVRAM non-volatile RAM
  • the processing system 32 is configured to process the video as follows.
  • the video is digitized by the ADC 122.
  • the output of the ADC 122 comprises a series of digital values, each of which represents of the particular video frame being received by the ADC.
  • the system 32 includes a new frame storage buffer and a reference frame storage buffer, both of which are most preferably implemented in the SDRAM 138. As each pixel is outputted by the ADC 122, it is stored in the new frame storage buffer, whose function is to act as a storage location for the new video frame currently being processed. The previous frame of video is stored in the reference frame storage buffer.
  • each frame is stored in the new frame storage buffer, that pixel is compared by the FPGA 140 with the corresponding pixel from the previous (or reference) frame, read by the FPGA 140 from the reference frame storage buffer. If the pixel from the new frame is sufficiently different from the corresponding pixel in the reference frame, a flag is set to indicate that the corresponding block has changed.
  • the processing system 32 reads each frame and conducts a frame-by-frame comparison. Instead of storing each frame in its entirety, only portions of each frame that have changed from the previous frame are stored. In the preferred processing system, each sixteen-pixel-by-sixteen- pixel tile of the frame is treated as a portion of the frame that is stored if it has changed, but otherwise not. It will be appreciated, that the tile size can vary, and still be comprehended by the invention. For example, the tile size could be a single pixel, or could be a larger block (e.g. 32 x 32 pixels).
  • FPGAs have the flexibility associated with being programmable, and yet, the speed associated with hardware.
  • software implementations of difference calculations are less preferred, because such implementations are typically slower, because such implementations are typically not capable of processing as many video frames per second as hardware (and particularly, FPGA) implementations.
  • invention comprehends a system 32 having a different configuration than the preferred one herein described.
  • the calculation of differences between frames could be implemented in software and still be comprehended by the invention, though this is strongly not preferred.
  • the system 32 could process the video without calculating differences at all. What is important is that the system 32 be configured to create processed video for storage.
  • key frames are stored at a fixed rate.
  • a key frame comprises an entire frame rather than simply the difference from the previous frame.
  • a key frame is stored every one-hundred frames, though other rates are comprehended by the invention.
  • the processing system 32 is configured to generate a key frame if the differences from the previous frame exceeds a threshold.
  • a typical such threshold is ninety percent, i.e. ninety percent or more of the tiles change from one frame to the next.
  • the system 32 is positioned in a system housing 46.
  • the system housing is configured and positioned to resemble a disk drive of the computer 12.
  • the housing 32 is preferably positioned within one of the drive compartments of the housing 20, so as to appear as a disk drive.
  • Figure 4 wherein an ordinary hard drive is shown installed in the lower drive compartment, while the system 32 in housing 46 is shown installed in the upper drive compartment.
  • the housing 46 is configured in shape (cuboid) and colour (in this case, black) to resemble the hard drive 26.
  • the system 32 is installed discreetly, so that an observer is unlikely to notice its presence.
  • system 32 may take other forms or positions for discreet installation.
  • the system 32 could be disguised as a PCI card mounted adjacent to the video card 28, or as a power supply mounted in the housing 20.
  • the system 32 may also be positioned within the casing of a working disk or CD-ROM drive.
  • the device 10 need not be positioned within the housing 20.
  • the device 10 may instead be installed outside the housing, disguised, for example, as a power adapter, surge suppressor or other component.
  • the device 10, in such an alternate external embodiment, would be installed inline with the video going from the connector 38 to the monitor 16.
  • the housing 46 preferably comprises a power connection 47, configured to receive power for the system 32.
  • the power connection 47 is oriented within the housing 20 such that a power connection can be made by a power cable 49 between the computer's power supply 51 and the system 32.
  • the system 32 preferably includes a USB interface 48 (see Figure 2).
  • the USB interface 48 is configured to permit configuration of the device 10 during installation.
  • the USB interface 48 is preferably positioned on the outside of housing 20, and is preferably configured to permit a wired connection between the system 32 and an external component on which video may be downloaded. It will be appreciated that, for evidentiary applications, it may be desirable to run a wire from the USB interface (or other interface) to a device which can be discreetly positioned outside the housing 20 and accessed by someone to obtain the video stored there.
  • This feature is to be distinguished from the local memory 34, which is preferably contained within, or associated with, the housing 46 (though the invention comprehends other, less preferred, locations for the memory 34).
  • the interface 48 can also act as a local memory access, connected to the memory 34, wherein the system 32 is configured to permit the processed video to be downloaded via the interface 48.
  • the device 10 may be configured to perform wired transmission of the video in other ways.
  • the transmission may be effected by an Ethernet interface which is discreetly positioned so as to be externally accessible, or alternatively, the system 32 could discreetly transmit the video over the existing internet connection for the computer 12.
  • the processing system 32 includes a wireless transmission system for transmitting processed video to a remote computer.
  • the wireless transmission system includes a wireless link
  • the antenna 55 is preferably positioned within the housing 20 of the computer 12 in a position to permit effective wireless transmission, and to be undiscernible from outside the housing 20.
  • the antenna would be positioned on the front side of the housing 20 (i.e. the side at which floppy disks and/or CD-ROMs are inserted), behind a plastic layer that does not interfere with wireless transmission, thus facilitating radiofrequency transmission.
  • This plastic layer has an appearance to the plastic front of a hard disk drive.
  • the antenna will be positioned outside of, or within a gap in, the metallic housing 20 of computer 12, so that the metallic housing will not interfere with the transmission.
  • the processed video is transmitted wirelessly to a remote computer, and the transmission can take two forms.
  • the processed video is sent to a remote computer comprising a serverthat is periodically downloaded. Transmission in the first mode that would typically take place if a prevailing wireless ethernet structure is present, as is true in many urban commercial environments.
  • processed video is stored in memory 34, and the contents of memory 34 are periodically automatically transmitted to the server.
  • the device 10 can operate indefinitely because, by virtue of the server, it has access to virtually unlimited memory.
  • the remote computer In the second (or "passive") mode, the remote computer has wireless reception capability and is configured to display the processed video in real time.
  • the processed video is transmitted directly to the remote computer, which, in this mode, must be positioned within reception range of the computer 12.
  • a user of the remote computer positioned within a reception range of the computer 12, can watch the video of the computer 12 essentially as it appears on the monitor 16 of the computer 12.
  • the invention comprehends devices 10 without wireless transmission capability, though such capability is preferred.
  • the device 10 may store video only to memory 34. In the event that memory 34 became full, the system 32 would simply loop back to the beginning when full and begin overwriting previous video.
  • the device 10 since the device 10 is preferably usable for evidence-related applications, it is important that the memory 34 store as much of the video from the computer 12 as possible. Furthermore, problems are created if a person watching the video from a remote computer sees that certain video has been displayed on the monitor 16 of the computer 12, but that same video is not stored on memory 34. Specifically, there would be a credibility issue as to whether the video had actually been displayed on the monitor 16. Therefore, preferably, the system 32 is configured such that, if, for whatever reason, the storing of processed video in the memory 34 is interrupted, transmission of processed video to a remote computer is also interrupted, so that processed video that is not stored in the memory 34 is also not transmitted to the remote computer.
  • the video of the computer 12 will typically generate a great deal of data - in the order of 500 megabytes per second of data. In many cases, it will be necessary to reduce the amount of data flowing through the processing system 32 and being stored in the memory 34. There are two reasons for this. First, producing and providing a processing system 32 configured to process two gigabytes per second of data will often be unduly expensive. Second, at such a high data rate, the memory 34 may be used up quickly. It may be difficult in such a circumstance to provide enough memory 34 for the device 10 to function effectively, in light of possible cost and space constraints.
  • one method for substantially reducing the data rate is to have the processing system 32 store in memory only the differences between consecutive video frames, rather than entire video frames, subject to certain limited exceptions.
  • Another method of reducing the data rate which may optionally be incorporated in the device 10 is to configure the processing system 32 to reduce the colour resolution of the video.
  • analog video is typically produced with 24 bits of colour per pixel.
  • the preferred processing system 32 is configured to sample the 24-bit colour, and strip the colour resolution to 16 bits per pixel (typically 5 bits blue, 6 bits green, 5 bits red). It will be appreciated that lesser or greater reduction of the colour resolution is also comprehended by the invention. It has been found that reduction of colour resolution from 24 to 16 bits continues to provide useful colour detail, while substantially reducing the amount of data through the processing system 32.
  • the processing system 32 may be configured to allow the user to select a greyscale mode.
  • greyscale mode the colour in the video is converted to black and white, with optional intervening shades of grey.
  • between one and five bit greyscale values are available, with 1-bit greyscale constituting black and white, and 5-bit greyscale constituting 32 levels of white-grey-black.
  • the processing system 32 is configured so that the user of the device 10 can program these user selectable features (e.g. greyscale, colour resolution) via the USB interface 48 discussed above.
  • a personal computer monitor 16 generates video at a particular frame rate - typically 75 video frames per second. Another method of reducing the data rate through the processing system 32 and into the memory 34 is to process and store only a portion of the 75 frames per second, so that the processing system 32 and memory 34 store video at a lesser frame rate than the frame rate of the computer 12. In such a case, no processed video is stored for a portion of the frames of the computer video.
  • the device 10, and processing system 32 are configured to offer two modes for setting the frame rate.
  • the user can simply specify the processed video frame rate of the system 32.
  • the user can select the processing frame rate to be one frame every 250 milliseconds; one, two, five, ten, fifteen or thirty seconds; or two, five, ten, fifteen or sixty minutes.
  • Other rates, including higher rates are also comprehended by the invention.
  • the processing system 32 is configured to permit a user to set a predetermined maximum data rate for storage in the memory 34; the processing system is also configured to automatically store processed video at a lesser processed video frame rate than the frame rate of the computer 12 to avoid exceeding the predetermined maximum data rate.
  • the processing system 32 is programmed to increase the frame rate to the extent possible without exceeding the predetermined maximum data rate set by the user.
  • the processing system 32 will automatically reduce the frame rate to keep the data rate below the predetermined maximum set by the user.
  • the processing system 32 is configured to keep track of the actual data rate of the computer video, and to automatically and dynamically adjust the processed video data rate upward or downward in accordance with the predetermined maximum data rate. It will be appreciated that the invention comprehends using other parameters, other than frame rate, to adjust the data rate within the processing system 32. For example, the processing system 32 could vary the amount the colour resolution reduction that takes place.
  • colour resolution reduction it is preferred for colour resolution reduction to be performed by hardware, because colour resolution reduction is operation intensive and, for the purposes of speed, it is preferred that this reduction be done by hardware.
  • frame rate reduction can be controlled effectively by software. The frame rate can thus be more easily made user selectable.
  • the maximum data rate is also preferably controlled by software, and is thus more easily made user selectable.
  • the system 32 is configurable to search for particular subject matter, to dynamically adjust the processed video frame rate upward to a user-selected level when the particular subject matter is present, and to dynamically adjust the processed video frame rate downward to a user- selected level when the particular subject matter is absent. It will be appreciated that this feature is useful for conserving memory 34. If the purpose of installing device 10 is to find evidence connected to the particular subject matter, then the user may wish to use this feature to focus on the particular subject matter, and use up less memory 34 when the subject matter is absent. For example, if the purpose of installing device 10 is to collect financial information, the system 32 may be configured to search for spreadsheet or accounting programs. It could do so, for example, by locating the word "Excel" (TM) in the video.
  • the frame rate would be dynamically increased to ensure that maximum information is collected.
  • the system 32 would reduce the processed video frame rate to a lower rate that uses less memory.
  • a screen password used to enter a particular program or website i.e. a password entered not by keyboard, but by clicking the screen with a mouse
  • the system 32 can be programmed to search for the password entry screen and increase the frame rate to ensure that the positions of the mouse are recorded. It will be appreciated that screen passwords are used to circumvent key loggers, so this feature is a useful way to counteract such a strategy.
  • the local memory 34 comprises flash memory (i.e. memory using quantum tunneling), and most preferably, CompactFlashTM.
  • Flash memory is non-volatile memory i.e. data is not lost when power is removed.
  • a typical flash memory can retain its contents for ten years without power.
  • Non-volatile memory is strongly preferred because the video being stored is preferably usable for forensic and evidentiary purposes. As such, reliable storage is important, even if power malfunctions or is disconnected.
  • non-volatile memory 34 While comprehended by the invention, are less preferred.
  • standard hard disk drives or other rotating magnetic media could be used, but are more susceptible to mechanical failure.
  • Static RAM with batteries could be used, but such a configuration would_be more expensive than flash memory.
  • the invention comprehends that the device 10 not contain a memory 34, and instead, process the video and send it by wireless transmission, or by wired transmission, to a remote location.
  • having memory 34 is strongly preferred, as it has been found that such a configuration is most reliable.
  • the final storage of the processed video in memory 34 is done in the AVI file format as defined by Microsoft Corporation (MS-RLE8 standard).
  • the AVI format is a widely used format that has been in existence for a relatively long time, and is therefore compatible with almost all software used to display video on computers. Therefore, this format is convenient for use in the device 10, because the stored processed video will need to be played back, and the software used to do this may be older software not compatible with other newer, or less widely used, file formats. It will be appreciated, however, that the invention comprehends the use of other file formats besides AVI. What is important is that the memory 34 store the video for future viewing.
  • the AVI format is not a streaming format.
  • the MS-RLE8 standard does not require data in an AVI file saved in the order that it is read.
  • received data may need to be rewound or revised prior to the AVI file being created.
  • the processing system 32 would need to hold the data for the file until it was all received, perform any necessary revisions, and then save the AVI file in its entirety.
  • flash memory has certain properties that make this approach less preferred. Specifically, flash memory can only be erased by erasing whole blocks (typically 512 bytes) and changing even one byte within a block requires erasing the whole block and rewriting the block with the changed byte. Furthermore, erasing blocks is a relatively slow process, while writing over erased blocks is relatively fast.
  • the processing system 32 is configured to write the processed video directly to the memory 34 in an intermediate streaming file format to store it temporarily. Then, the processing system 32 converts the processed video from the intermediate streaming file format to a non- streaming file format, which is preferably the AVI format.
  • the intermediate streaming files are a standard 10 megabytes or 600 video frames, whichever is less, though it will be appreciated that other sizes for the streaming file are comprehended by the invention.
  • the streaming file is completed, a new one is begun. In the background, the streaming file is converted to the non-streaming format (preferably AVI).
  • the incomplete streaming file will still be present on the memory.
  • this file can be converted into a viewable file, because, since the incomplete file in the memory 34 is in a streaming format, it does not need to be revised or rewound - rather, all of the data is present and in the correct order to create an AVI file.
  • the intermediate streaming file format comprises a header, followed by consecutive frames.
  • the data consists of difference information, i.e. data showing which blocks have changed between that frame and the previous frame.
  • the processing system 32 is configured so that if a frame difference exceeds a particular threshold (for example, more than ninety percent of the blocks of the new frame are different than those of the previous frame), then the entire frame will be saved. Also, at a predetermined rate (typically one out of every one hundred, though other rates are comprehended), an entire frame will be saved as a key frame, for the purpose of ensuring that, if an error has occurred in the recording of differences, the video will be reset to the proper image. It will be appreciated that, typically, four hundred video frames covers a period of only several seconds. Therefore, any error in recording differences would be corrected by a key frame within that time.
  • a particular threshold for example, more than ninety percent of the blocks of the new frame are different than those of the previous frame
  • the data for each frame (whether difference data or key frame data) is formatted in ZLIB compressed MS-RLE8 format.
  • ZLIB compression advantageously reduces the size of files being saved.
  • each frame is saved in MS-RLE8 format, because the data in each frame does not need to be decoded or reinterpreted as video when the conversion of the sreaming format to AVI is performed. Rather, this data can be treated as raw data that needs only to be expanded and recompressed without change when creating the AVI file output. Only the meta-data within the streaming files needs to be specially created when the AVI files are being created. The result is that the conversion from the intermediate streaming format to the preferred final AVI format is less memory- and processor-intensive than it would otherwise be.
  • other formats for storing the individual frames in the streaming format are also comprehended.
  • the streamed files are created by storing one frame at a time to memory 34, in the event of a power outage or the like, the most that would be lost is one frame of video. Therefore, the preferred method for storing processed video has the advantage of reducing the risk that important information will be lost.

Abstract

A device for obtaining video produced by a subject computer, the device comprising a connector module configured to be operatively connected to a video source within the subject computer; a processing system, operatively connected to said connector, for receiving said video, and for processing said video to create processed video for storage; and a local memory for storing said processed video, the memory being operatively connected to the processing system.

Description

Title: DEVICE AND METHOD FOR OBTAINING COMPUTER VIDEO
FIELD OF THE INVENTION
This invention relates to the field of computer video and related evidence applications.
BACKGROUND OF THE INVENTION
There are a number of situations in which it may be desirable to discreetly obtain the video generated and displayed by computers. One such case would be the obtaining of such video for evidentiary purposes in anticipation of legal proceedings. As another example, a parent may wish to keep track of what a child is viewing on the child's computer. Similarly, in an employment situation, an employer may wish to keep track of video being viewed by employees.
Technology exists to discreetly obtain certain aspects of computer video. For example, key loggers have been developed. Key loggers are software modules that are installed on a subject computer and that record all keys pressed on the subject computer's keyboard. However, key loggers will record only a small fraction of the video generated by a subject computer, as most of the video generated by the computer would comprise subject matter other than keyboard entries.
Technology exists for obtaining video from a subject computer and transmitting it to a remote computer. Such technology is described in U.S. published patent application number 2005/0246433 ("Carrigan et al."). Carrigan et al. describes an apparatus for facilitating control of a target computer by a remote computer. The mouse and keyboard signals from the remote computer are routed to the target computer, while the video from the target computer is obtained and displayed at the remote computer. The technology of the Carrigan et al., however, is not directed to the discreet obtaining of video for evidentiary or other similar purposes. Rather the purpose of Carrigan et al. is to send video to a remote computer for display, and to allow the user at the remote computer to use the remote computer's keyboard and mouse to control the target computer.
SUMMARY OF THE INVENTION
Therefore, what is desired is a device for obtaining video from a subject computer that addresses one or more of the shortcomings described above. Preferably, the device described herein will discreetly obtain and record the video of a subject computer. Therefore, there is provided a device for obtaining video produced by a subject computer, the device comprising: a connector module configured to be operatively connected to a video source within the subject computer; a processing system, operatively connected to said connector, for receiving said video, and for processing said video to create processed video for storage; a local memory for storing said processed video, the memory being operatively connected to the processing system.
There is also provided a device for obtaining video produced by a subject computer, the device comprising: a connector module configured to connect to a video source within the subject computer, the connector module having a high impedance so as not to substantially affect a display of said video; a processing system, for receiving said video, and for processing said video to create processed video for storage, the processing system having a system housing configured and positioned to resemble a component of said subject computer; a cable for operatively connecting said connector module and said processing system.
BRIEF DESCRIPTION OF THE DRAWINGS Reference will now be made, by way of example only, to drawings of the invention, which illustrate the preferred embodiment of the invention, and in which:
Figure 1 is a schematic illustration of a personal computer workstation;
Figure 2 is a schematic diagram of a preferred from of the device;
Figure 3 is a plan view of the device connected to the video module of a computer;
Figure 4 is a diagram of a device installed in a computer; and Figure 5 is a schematic diagram of the preferred processing components of the device.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring now to Figure 1 , a personal computer 12 is shown. The computer 12 is connected by a video cable 14 to a video monitor 16, resting on a table 18. The monitor 16 displays the video produced by the computer 12, which video is provided to the monitor 16 by the cable 14.
The computer 12 includes a housing 20 which carries within it various modules, such as floppy disk drive 22, CD-ROM drive 24, and hard disk drive 26. In the preferred embodiment, the housing 20 also encloses the device 10 for obtaining video produced by the subject computer 12, as will be more particularly described below.
As shown in Figure 2, the housing 20 of the computer 12 also houses other components of the computer 12, such as a video system, which typically takes the form of a video card 28. The video card 28 is connected to the device 10. The device 10 preferably includes connector module 30, to which the card 28 is connected. The connector module 30 is configured to be operatively connected to a video source within the computer 12, the video source preferably comprising the video card 28. It will be appreciated that not all personal computers have video systems that take the form of a discrete video card 28. For example, in some computers, the video system for generating video to be displayed on -A- monitor 16 is incorporated into the motherboard. In such an alternate configuration, the video system may include a connector 38, or some other video source may be present. The invention comprehends a variety of different video sources within the video system of the computer 12. The device 10 further comprises a processing system 32, operatively connected to the module 30, for receiving the video of the computer 12 and for processing the video to create processed video for storage. The device 10 further preferably comprises a local memory 34 for storing the processed video. The memory 34 is operatively connected to the processing system 32.
It will be appreciated that, although the invention comprehends a connector without high input impedance, this feature is strongly preferred. Without high input impedance, the use of the device 10 is more likely to affect the video displayed on the monitor 16. If such an effect is noticed by a user of the computer, he may be prompted to investigate its cause, and may, as a result, become aware of the presence of the device 10. Since it is strongly preferred that the presence of the device 10 remain unknown to all but those who install it, having a high impedance connector module is preferred. It will be appreciated, however, that any other method of preventing an effect on the video likely to result in discovery of the device 10 may also be used.
Preferably, the connector module 30 has a high input impedance, so that its connection to the video of the computer 12 does not substantially affect the display of the video on the monitor 16. Also, preferably, the module 30 is operatively connected to the processing system 32 by a cable 36.
Referring now to Figure 3, a video card 28 is shown. Typically, card 28 comprises a printed circuit board. On one side of the video card 28 is the video connector 38, which receives the video cable 14 when the computer 12 is operating. The video of the computer 12 is generated on the card 28 and travels via the connector 38 and cable 14 to the monitor 16 for display. The connector module 30 preferably comprises an adaptable connector 40 configured to be connected to card 28, and high impedance circuit 42. Most preferably, the adaptable connector 40 comprises a flexible circuit configured to be soldered to connector 38. Specifically, as shown in Figure 3, the flexible circuit is preferably soldered at pin connections 44 to the pins of the video connector 38. In this way, the video of the computer 12 is obtained and transferred to the high impedance circuit 42.
Preferably, the high impedance circuit 42 is configured to convert the video to a noise resistant format for transmission to the processing system 32. Most preferably, the noise resistant signal format comprises a differential signal format. Therefore, as the video travels from circuit 42 to processing system 32, it will be less susceptible to noise.
It will be appreciated that it is preferred for the device 10 to be installed in a discreet manner, so that its presence is effectively hidden from the user of the computer. For this reason, it is preferred that the connector module 30 be separated from the processing system by a cable, so that the module 30 is positioned outside the system housing 46 of the processing system 32. Specifically, for the device 10 to be installed discreetly, flexibility is preferred. Each computer 12 is different, and it is often not possible to know in advance where the device 10 can be connected to the video source of the computer 12. It is also often not possible to know in advance where there will be space for the processing system 32. By configuring the device 10 to have a relatively small connector module 30, connected by cable 36 to the processing system 32, the device 10 can be connected wherever necessary to effect discreet installation of device 10.
It will also be appreciated that the use of the flexible circuit (or flexible PCB) 40 is also intended to facilitate discreet installation of the device 10. It is often not possible to know in advance what the surface of any particular video card 28 will look like, or whether there will be other components or cables in close proximity to the card 28 and connector 38. The use of a flexible circuit 40 allows a connection to be made to the video source while bending around obstructions, if necessary. In addition, by the use of a relatively small and flat flexible circuit 40, and of a relatively small and flat high impedance circuit 42 (typically in PCB format), a connection can be made to the video source on the card 28 (or other video system) even if the space between the card 28 or other cards and components in the computer 12. Connections to video sources elsewhere in computer 12 are also comprehended by the invention.
However, it will be appreciated, however, that the connector module 30 may take a different form than the preferred form just described, and still be comprehended by the invention. For example, the connector module 30 may comprise a single component, rather than two components 40 and 42 as in the preferred embodiment. In addition, although much less preferred, the invention comprehends the connector module 30, processing system 32 and memory 34 all being part of a single physical housing or casing, so that the system 32 and connector module are not physically separated. Figure 5 shows in schematic form the preferred components and operation of a portion of the processing system 32. The components include an analog-to-digital converter (ADC) 122, a central processing unit (CPU) 136, a synchronous dynamic random access memory (SDRAM) 138, and a field programmable gate array (FPGA) 140. Also, the preferred system 32 includes the CPU's non-volatile RAM (NVRAM) 137, which preferably stores, inter alia, the CPU program, the FPGA configuration, and other system information.
It will be appreciated that the video of computer 12 comprises a very large amount of data, typically about 500 megabytes per second, and it would be difficult to be able to process all of this data, and to store it all. Therefore, preferably, the processing system 32 is configured to process the video as follows. The video is digitized by the ADC 122. The output of the ADC 122 comprises a series of digital values, each of which represents of the particular video frame being received by the ADC. Preferably, the system 32 includes a new frame storage buffer and a reference frame storage buffer, both of which are most preferably implemented in the SDRAM 138. As each pixel is outputted by the ADC 122, it is stored in the new frame storage buffer, whose function is to act as a storage location for the new video frame currently being processed. The previous frame of video is stored in the reference frame storage buffer.
A each frame is stored in the new frame storage buffer, that pixel is compared by the FPGA 140 with the corresponding pixel from the previous (or reference) frame, read by the FPGA 140 from the reference frame storage buffer. If the pixel from the new frame is sufficiently different from the corresponding pixel in the reference frame, a flag is set to indicate that the corresponding block has changed. Thus, the processing system 32 reads each frame and conducts a frame-by-frame comparison. Instead of storing each frame in its entirety, only portions of each frame that have changed from the previous frame are stored. In the preferred processing system, each sixteen-pixel-by-sixteen- pixel tile of the frame is treated as a portion of the frame that is stored if it has changed, but otherwise not. It will be appreciated, that the tile size can vary, and still be comprehended by the invention. For example, the tile size could be a single pixel, or could be a larger block (e.g. 32 x 32 pixels).
It will be appreciated that the use of hardware to perform difference calculations, and in particular, an FPGA 140, is strongly preferred. FPGAs have the flexibility associated with being programmable, and yet, the speed associated with hardware. By contrast, it has been found that software implementations of difference calculations are less preferred, because such implementations are typically slower, because such implementations are typically not capable of processing as many video frames per second as hardware (and particularly, FPGA) implementations.
Nevertheless, it will be appreciated that invention comprehends a system 32 having a different configuration than the preferred one herein described. For example, the calculation of differences between frames could be implemented in software and still be comprehended by the invention, though this is strongly not preferred. Also, though strongly not preferred, the system 32 could process the video without calculating differences at all. What is important is that the system 32 be configured to create processed video for storage.
Preferably, key frames are stored at a fixed rate. A key frame comprises an entire frame rather than simply the difference from the previous frame. Typically, a key frame is stored every one-hundred frames, though other rates are comprehended by the invention. Also, preferably, the processing system 32 is configured to generate a key frame if the differences from the previous frame exceeds a threshold. A typical such threshold is ninety percent, i.e. ninety percent or more of the tiles change from one frame to the next.
Referring now to Figure 4, the system 32 is positioned in a system housing 46. Preferably, the system housing is configured and positioned to resemble a disk drive of the computer 12. Thus, the housing 32 is preferably positioned within one of the drive compartments of the housing 20, so as to appear as a disk drive. This is shown in Figure 4, wherein an ordinary hard drive is shown installed in the lower drive compartment, while the system 32 in housing 46 is shown installed in the upper drive compartment. The housing 46 is configured in shape (cuboid) and colour (in this case, black) to resemble the hard drive 26. Thus, the system 32 is installed discreetly, so that an observer is unlikely to notice its presence.
It will be appreciated that the system 32 may take other forms or positions for discreet installation. For example, the system 32 could be disguised as a PCI card mounted adjacent to the video card 28, or as a power supply mounted in the housing 20. The system 32 may also be positioned within the casing of a working disk or CD-ROM drive. In addition, the device 10 need not be positioned within the housing 20. The device 10 may instead be installed outside the housing, disguised, for example, as a power adapter, surge suppressor or other component. The device 10, in such an alternate external embodiment, would be installed inline with the video going from the connector 38 to the monitor 16.
Also shown in Figure 4 is the connection between system 32 and connector module 30 by cable 36, running between the two. In addition, the housing 46 preferably comprises a power connection 47, configured to receive power for the system 32. Most preferably, the power connection 47 is oriented within the housing 20 such that a power connection can be made by a power cable 49 between the computer's power supply 51 and the system 32.
The system 32 preferably includes a USB interface 48 (see Figure 2). The USB interface 48 is configured to permit configuration of the device 10 during installation. Also, the USB interface 48 is preferably positioned on the outside of housing 20, and is preferably configured to permit a wired connection between the system 32 and an external component on which video may be downloaded. It will be appreciated that, for evidentiary applications, it may be desirable to run a wire from the USB interface (or other interface) to a device which can be discreetly positioned outside the housing 20 and accessed by someone to obtain the video stored there. This feature is to be distinguished from the local memory 34, which is preferably contained within, or associated with, the housing 46 (though the invention comprehends other, less preferred, locations for the memory 34). In addition, the interface 48 can also act as a local memory access, connected to the memory 34, wherein the system 32 is configured to permit the processed video to be downloaded via the interface 48.
In addition, the device 10 may be configured to perform wired transmission of the video in other ways. For example, the transmission may be effected by an Ethernet interface which is discreetly positioned so as to be externally accessible, or alternatively, the system 32 could discreetly transmit the video over the existing internet connection for the computer 12.
Preferably, the processing system 32 includes a wireless transmission system for transmitting processed video to a remote computer.
Most preferably, the wireless transmission system includes a wireless link
53 in the form of an 802.11 b ethernet card, together with an antenna 55. The antenna 55 is preferably positioned within the housing 20 of the computer 12 in a position to permit effective wireless transmission, and to be undiscernible from outside the housing 20. Typically, the antenna would be positioned on the front side of the housing 20 (i.e. the side at which floppy disks and/or CD-ROMs are inserted), behind a plastic layer that does not interfere with wireless transmission, thus facilitating radiofrequency transmission. This plastic layer has an appearance to the plastic front of a hard disk drive. Preferably, the antenna will be positioned outside of, or within a gap in, the metallic housing 20 of computer 12, so that the metallic housing will not interfere with the transmission.
It will be appreciated that other forms of wireless transmission are comprehended by the invention. For example, infrared transmission may be used.
In the preferred embodiment, the processed video is transmitted wirelessly to a remote computer, and the transmission can take two forms. In the first (or "active") mode, the processed video is sent to a remote computer comprising a serverthat is periodically downloaded. Transmission in the first mode that would typically take place if a prevailing wireless ethernet structure is present, as is true in many urban commercial environments. In this first mode, processed video is stored in memory 34, and the contents of memory 34 are periodically automatically transmitted to the server. In this first mode, the device 10 can operate indefinitely because, by virtue of the server, it has access to virtually unlimited memory. Once processed video from memory 34 is transmitted to, and received by, the server, the portion of memory 34 containing processed video that has already been sent can be overwritten with new processed video.
In the second (or "passive") mode, the remote computer has wireless reception capability and is configured to display the processed video in real time. The processed video is transmitted directly to the remote computer, which, in this mode, must be positioned within reception range of the computer 12. Thus, in this configuration, a user of the remote computer, positioned within a reception range of the computer 12, can watch the video of the computer 12 essentially as it appears on the monitor 16 of the computer 12. It will be appreciated that the invention comprehends devices 10 without wireless transmission capability, though such capability is preferred. In the absence of wireless transmission capability, the device 10 may store video only to memory 34. In the event that memory 34 became full, the system 32 would simply loop back to the beginning when full and begin overwriting previous video.
It will be appreciated that, since the device 10 is preferably usable for evidence-related applications, it is important that the memory 34 store as much of the video from the computer 12 as possible. Furthermore, problems are created if a person watching the video from a remote computer sees that certain video has been displayed on the monitor 16 of the computer 12, but that same video is not stored on memory 34. Specifically, there would be a credibility issue as to whether the video had actually been displayed on the monitor 16. Therefore, preferably, the system 32 is configured such that, if, for whatever reason, the storing of processed video in the memory 34 is interrupted, transmission of processed video to a remote computer is also interrupted, so that processed video that is not stored in the memory 34 is also not transmitted to the remote computer.
As mentioned above, the video of the computer 12 will typically generate a great deal of data - in the order of 500 megabytes per second of data. In many cases, it will be necessary to reduce the amount of data flowing through the processing system 32 and being stored in the memory 34. There are two reasons for this. First, producing and providing a processing system 32 configured to process two gigabytes per second of data will often be unduly expensive. Second, at such a high data rate, the memory 34 may be used up quickly. It may be difficult in such a circumstance to provide enough memory 34 for the device 10 to function effectively, in light of possible cost and space constraints.
Furthermore, in most applications, it is possible to substantially reduce the data rate while still obtaining most of the information contained in the computer video. As explained above, one method for substantially reducing the data rate is to have the processing system 32 store in memory only the differences between consecutive video frames, rather than entire video frames, subject to certain limited exceptions. Another method of reducing the data rate which may optionally be incorporated in the device 10 is to configure the processing system 32 to reduce the colour resolution of the video. Specifically, analog video is typically produced with 24 bits of colour per pixel. The preferred processing system 32 is configured to sample the 24-bit colour, and strip the colour resolution to 16 bits per pixel (typically 5 bits blue, 6 bits green, 5 bits red). It will be appreciated that lesser or greater reduction of the colour resolution is also comprehended by the invention. It has been found that reduction of colour resolution from 24 to 16 bits continues to provide useful colour detail, while substantially reducing the amount of data through the processing system 32.
Optionally, the processing system 32 may be configured to allow the user to select a greyscale mode. In greyscale mode, the colour in the video is converted to black and white, with optional intervening shades of grey. Thus, in the preferred embodiment, between one and five bit greyscale values are available, with 1-bit greyscale constituting black and white, and 5-bit greyscale constituting 32 levels of white-grey-black. The processing system 32 is configured so that the user of the device 10 can program these user selectable features (e.g. greyscale, colour resolution) via the USB interface 48 discussed above.
A personal computer monitor 16 generates video at a particular frame rate - typically 75 video frames per second. Another method of reducing the data rate through the processing system 32 and into the memory 34 is to process and store only a portion of the 75 frames per second, so that the processing system 32 and memory 34 store video at a lesser frame rate than the frame rate of the computer 12. In such a case, no processed video is stored for a portion of the frames of the computer video.
It will be appreciated that it is often possible to retain all of the useful information from computer video without processing every frame. Although the changes in video will appear slower than normal if a substantially lower frame rate is used, in most applications, this will be adequate to retain all of the useful information from the video. Furthermore, in some applications, it will be adequate for the processing system 32 to store in memory 34 a single frame at a fixed rate several minutes apart. In applications where this much lower amount of information from the computer video would suffice, substantial cost savings relating to hardware and software can be realized in the device 10 by reducing the processed frame rate to this very low rate.
However, in most cases, it will be desirable to have a frame rate which is high enough to make the processed video stored in memory 34 appear realistic, even if the processed video frame rate is lower than the particular frame rate of the computer 12. Optionally, the device 10, and processing system 32, are configured to offer two modes for setting the frame rate. In the first mode, the user can simply specify the processed video frame rate of the system 32. In the preferred embodiment, the user can select the processing frame rate to be one frame every 250 milliseconds; one, two, five, ten, fifteen or thirty seconds; or two, five, ten, fifteen or sixty minutes. Other rates, including higher rates ( any number of frames per second between five and the frame rate of the computer 12) are also comprehended by the invention. In the second mode, the processing system 32 is configured to permit a user to set a predetermined maximum data rate for storage in the memory 34; the processing system is also configured to automatically store processed video at a lesser processed video frame rate than the frame rate of the computer 12 to avoid exceeding the predetermined maximum data rate. In this second mode, if the data rate at a particular time is low (e.g. because few changes in the video are taking place between frames, or because there is little colour in the video being generated), then the processing system 32 is programmed to increase the frame rate to the extent possible without exceeding the predetermined maximum data rate set by the user. If, however, the data rate begins to rise, so that it would exceed the predetermined maximum data rate set by the user if the processed video frame rate were not reduced, then the processing system 32 will automatically reduce the frame rate to keep the data rate below the predetermined maximum set by the user. Thus, the processing system 32 is configured to keep track of the actual data rate of the computer video, and to automatically and dynamically adjust the processed video data rate upward or downward in accordance with the predetermined maximum data rate. It will be appreciated that the invention comprehends using other parameters, other than frame rate, to adjust the data rate within the processing system 32. For example, the processing system 32 could vary the amount the colour resolution reduction that takes place. However, it has been found that it is preferred for colour resolution reduction to be performed by hardware, because colour resolution reduction is operation intensive and, for the purposes of speed, it is preferred that this reduction be done by hardware. However, it has been found that frame rate reduction can be controlled effectively by software. The frame rate can thus be more easily made user selectable. The maximum data rate is also preferably controlled by software, and is thus more easily made user selectable.
Preferably, the system 32 is configurable to search for particular subject matter, to dynamically adjust the processed video frame rate upward to a user-selected level when the particular subject matter is present, and to dynamically adjust the processed video frame rate downward to a user- selected level when the particular subject matter is absent. It will be appreciated that this feature is useful for conserving memory 34. If the purpose of installing device 10 is to find evidence connected to the particular subject matter, then the user may wish to use this feature to focus on the particular subject matter, and use up less memory 34 when the subject matter is absent. For example, if the purpose of installing device 10 is to collect financial information, the system 32 may be configured to search for spreadsheet or accounting programs. It could do so, for example, by locating the word "Excel" (TM) in the video. When such programs are shown in the video, the frame rate would be dynamically increased to ensure that maximum information is collected. When none are present, the system 32 would reduce the processed video frame rate to a lower rate that uses less memory. As another example, if one of the purposes of the device 10 is to find out a screen password used to enter a particular program or website (i.e. a password entered not by keyboard, but by clicking the screen with a mouse) the system 32 can be programmed to search for the password entry screen and increase the frame rate to ensure that the positions of the mouse are recorded. It will be appreciated that screen passwords are used to circumvent key loggers, so this feature is a useful way to counteract such a strategy.
Preferably, the local memory 34 comprises flash memory (i.e. memory using quantum tunneling), and most preferably, CompactFlash™. Flash memory is non-volatile memory i.e. data is not lost when power is removed. A typical flash memory can retain its contents for ten years without power. Non-volatile memory is strongly preferred because the video being stored is preferably usable for forensic and evidentiary purposes. As such, reliable storage is important, even if power malfunctions or is disconnected.
Other types of non-volatile memory 34, while comprehended by the invention, are less preferred. For example, standard hard disk drives or other rotating magnetic media could be used, but are more susceptible to mechanical failure. Static RAM with batteries could be used, but such a configuration would_be more expensive than flash memory. Other options
(MRAM, ferroram) have been found to be less reliable than flash memory.
It will be appreciated that, though memory 34 is strongly preferred, the invention comprehends that the device 10 not contain a memory 34, and instead, process the video and send it by wireless transmission, or by wired transmission, to a remote location. However, as explained, having memory 34 is strongly preferred, as it has been found that such a configuration is most reliable.
Preferably, the final storage of the processed video in memory 34 is done in the AVI file format as defined by Microsoft Corporation (MS-RLE8 standard). The AVI format is a widely used format that has been in existence for a relatively long time, and is therefore compatible with almost all software used to display video on computers. Therefore, this format is convenient for use in the device 10, because the stored processed video will need to be played back, and the software used to do this may be older software not compatible with other newer, or less widely used, file formats. It will be appreciated, however, that the invention comprehends the use of other file formats besides AVI. What is important is that the memory 34 store the video for future viewing.
It will be appreciated, however, that the AVI format is not a streaming format. In other words, the MS-RLE8 standard does not require data in an AVI file saved in the order that it is read. As a result, to create an AVI file, received data may need to be rewound or revised prior to the AVI file being created. To create an AVI file directly, the processing system 32 would need to hold the data for the file until it was all received, perform any necessary revisions, and then save the AVI file in its entirety.
This approach is less preferred for two reasons. First, if power to the device 10 fails for some reason, or if there is some other kind of malfunction in the device 10, then some video may be lost before an AVI file is finalized and saved to the memory 34. If this happens, hundreds or thousands of frames of video could be lost, and the information they contain could be critically important. Second, flash memory has certain properties that make this approach less preferred. Specifically, flash memory can only be erased by erasing whole blocks (typically 512 bytes) and changing even one byte within a block requires erasing the whole block and rewriting the block with the changed byte. Furthermore, erasing blocks is a relatively slow process, while writing over erased blocks is relatively fast. Finally, bytes can be written to memory individually, but only entire blocks can be erased. Therefore, using the storing data temporarily on the memory and then creating AVI files by rewinding and revising the data would be a slow process, given that entire blocks of memory would need to be erased.
Therefore, preferably, the processing system 32 is configured to write the processed video directly to the memory 34 in an intermediate streaming file format to store it temporarily. Then, the processing system 32 converts the processed video from the intermediate streaming file format to a non- streaming file format, which is preferably the AVI format. Preferably, the intermediate streaming files are a standard 10 megabytes or 600 video frames, whichever is less, though it will be appreciated that other sizes for the streaming file are comprehended by the invention. Once the streaming file is completed, a new one is begun. In the background, the streaming file is converted to the non-streaming format (preferably AVI).
It will be appreciated that this procedure has certain advantages. First, if there is a power outage or other malfunction in the middle of a streaming file being stored, then the incomplete streaming file will still be present on the memory. When the device 10 is accessed, this file can be converted into a viewable file, because, since the incomplete file in the memory 34 is in a streaming format, it does not need to be revised or rewound - rather, all of the data is present and in the correct order to create an AVI file. Preferably, the intermediate streaming file format comprises a header, followed by consecutive frames. In this preferred format, for almost all of the frames, the data consists of difference information, i.e. data showing which blocks have changed between that frame and the previous frame. Also, as explained above, the processing system 32 is configured so that if a frame difference exceeds a particular threshold (for example, more than ninety percent of the blocks of the new frame are different than those of the previous frame), then the entire frame will be saved. Also, at a predetermined rate (typically one out of every one hundred, though other rates are comprehended), an entire frame will be saved as a key frame, for the purpose of ensuring that, if an error has occurred in the recording of differences, the video will be reset to the proper image. It will be appreciated that, typically, four hundred video frames covers a period of only several seconds. Therefore, any error in recording differences would be corrected by a key frame within that time. Also, in the preferred form of the streaming format, the data for each frame (whether difference data or key frame data) is formatted in ZLIB compressed MS-RLE8 format. The use of ZLIB compression advantageously reduces the size of files being saved. In addition, it is advantageous that each frame is saved in MS-RLE8 format, because the data in each frame does not need to be decoded or reinterpreted as video when the conversion of the sreaming format to AVI is performed. Rather, this data can be treated as raw data that needs only to be expanded and recompressed without change when creating the AVI file output. Only the meta-data within the streaming files needs to be specially created when the AVI files are being created. The result is that the conversion from the intermediate streaming format to the preferred final AVI format is less memory- and processor-intensive than it would otherwise be. However, it will be appreciated that other formats for storing the individual frames in the streaming format are also comprehended.
It will be appreciated that, because in the preferred embodiment the streamed files are created by storing one frame at a time to memory 34, in the event of a power outage or the like, the most that would be lost is one frame of video. Therefore, the preferred method for storing processed video has the advantage of reducing the risk that important information will be lost.
While the foregoing embodiments of the present invention have been set forth in considerable detail for the purpose of making a complete disclosure of the invention, it will be apparent to those skilled in the art that various modifications can be made to the device without departing from the broad scope of the invention as defined in the attached claims. Some of these variations are discussed above and others will be apparent to those skilled in the art. For example, though preferred, the system 32 need not comprise an FPGA 140 to fall within the scope of the invention. Rather, the functions of the CPU 136 and the FPGA 140 can be implemented in software, hardware or combinations thereof and still be comprehended by the invention. Also, various data rate reduction techniques are comprehended by the invention, and the invention also comprehends no data reduction.

Claims

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A device for obtaining video produced by a subject computer, the device comprising: a connector module configured to be operatively connected to a video source within the subject computer; a processing system, operatively connected to said connector, for receiving said video, and for processing said video to create processed video for storage; a local non-volatile memory for storing said processed video, the memory being operatively connected to the processing system.
2. A device as claimed in claim 1 , wherein the subject computer includes a housing and a video system contained therein, and wherein the connector module comprises a connector configured to be connected to the video system.
3. A device as claimed in claim 2, wherein the connector comprises a flexible circuit configured to be connected to the video system.
4. A device as claimed in claim 3, wherein the video system includes a video connector, and wherein the flexible circuit is configured to be soldered to the video connector.
5. A device as claimed in claims 1 , 2, 3 or 4 wherein the connector module comprises a circuit having a high input impedance so as not to substantially affect a display of the video of the subject computer.
6. A device as claimed in claims 1 , 2, 3, 4 or 5 wherein the connector module is configured to convert the video to a noise resistant format for transmission to the processing system.
7. A device as claimed in claim 6, wherein the noise resistant format comprises a differential signal format.
8. A device as claimed in claim 1 , wherein the processing system and connector module are connected by a cable.
9. A device as claimed in claim 8, wherein the processing system is positioned in a system housing, and said connector module is positioned outside said system housing.
10. A device as claimed in claim 1 , wherein the processing system is configured to digitize said video.
11. A device as claimed in claim 10, wherein the processing system is further configured to determine differences between successive frames of said video and to cause corresponding difference information to be stored in said memory.
12. A device as claimed in claim 10 or claim 11 , wherein the processing system is further configured to cause key frames of said video to be stored in said memory.
13. A device as claimed in claim 9, wherein the subject computer is a personal computer, and wherein the system housing is configured and positioned to resemble a disk drive of said personal computer.
14. A device as claimed in claim 9, wherein the system housing is configured to appear to be a generic power supply.
15. A device as claimed in claim 1 or claim 9, wherein the device further comprises a USB interface configured to permit configuration of the device during installation.
16. A device as claimed in claim 1 or claim 9, wherein the processing system further comprises a wireless transmission system for transmitting said processed video to a remote computer.
17. A device as claimed in claim 16, wherein the wireless transmission system comprises a wireless interface and an antenna for transmitting the processed video.
18. A device as claimed in claim 17, wherein said subject computer comprises a personal computer having a housing, and wherein said antenna is positioned in said housing in a position to permit effective transmission and to be undiscernible from outside said housing.
19. A device as claimed in claim 16, wherein the processing system is configured to automatically periodically transmit processed video from said memory to said remote computer.
20. A device as claimed in claim 1 , wherein the device further includes a local memory access connected to said memory, and wherein the processing system is configured to permit said processed video to be downloaded via said memory access.
21. A device as claimed in claim 16, wherein the processing system is configured such that, if the storing of processed video in said memory is interrupted, transmission of processed video to the remote computer is also interrupted, wherein processed video not stored in the memory is not transmitted to the remote computer.
22. A device as claimed in claim 16, wherein the remote computer comprises a server from which processed video is periodically downloaded.
23. A device as claimed in claim 16, wherein the remote computer comprises a computer having wireless reception capability, and wherein the remote computer is configured to display the processed video in real time, whereby a user may watch the video of the subject computer at the remote computer.
24. A device as claimed in claim 1 , wherein said processing system is configured to reduce the data rate of the video from the subject computer when storing processed video in said memory.
25. A device as claimed in claim 24, wherein the processing system is configured to reduce the colour resolution of the video.
26. A device as claimed in claim 24, wherein the processing system is configured to convert the colours of the video to greyscale.
27. A device as claimed in claim 26, wherein the processing system is configurable to permit between two and thirty-two greyscale levels.
28. A device as claimed in claim 24, wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured to store processed video at a lesser frame rate, wherein no processed video is stored for a portion of the frames of the subject computer's video.
29. A device as claimed in claim 24, wherein the processing system is configured to permit a user to set a predetermined maximum data rate for storage in the memory.
30. A device as claimed in claim 29, wherein the video from the subject computer has a particular frame rate, and where the processing system is configured to automatically store processed video at a lesser frame rate to avoid exceeding the predetermined maximum data rate.
31. A device as claimed in claim 29, wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured to keep track of an actual data rate of said video, and to automatically adjust a processing data rate upward or downward in accordance with the predetermined maximum data rate.
32. A device as claimed in claim 1 , wherein the processing system is configured to temporarily store processed video in said memory in an intermediate streaming file format, and to subsequently convert said processed video in said memory to a non-streaming file format.
33. A device as claimed in claim 32, wherein the non-streaming file format comprises AVI format.
34. A device as claimed in claim 1 , wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured permit a user to select a processing frame rate less than or equal to said particular frame rate.
35. A device as claimed in claim 33, wherein the processing system is configurable to search for particular subject matter in said video, to increase said processing frame rate when said particular subject matter is present, and to decrease the processing frame rate when said particular subject matter is absent.
36. A device as claimed in claim 1 , wherein the memory comprises flash memory.
37. A device for obtaining video produced by a subject computer, the device comprising: a connector module configured to connect to a video source within the subject computer, the connector module having a high impedance so as not to substantially affect a display of said video; a processing system, for receiving said video, and for processing said video to create processed video for storage, the processing system having a system housing configured and positioned to resemble a component of said subject computer; a cable for operatively connecting said connector module and said processing system.
38. A device as claimed in claim 37, wherein the device further comprises a local non-volatile memory for storing said processed video, the memory being operatively connected to the processing system.
39. A device as claimed in claim 37 or claim 38, wherein the subject computer includes a housing and a video system contained therein, and wherein the connector module is configured to be connected to the video system.
40. A device as claimed in claim 39, wherein the connector module comprises a flexible circuit configured to be connected to the video system.
41. A device as claimed in claim 40, wherein the video system includes a video connector, and wherein the flexible circuit is configured to be soldered to the video connector.
42. A device as claimed in claims 37, 38, 39, 40 or 41 , wherein the connector module is configured to convert the video to a noise resistant format for transmission to the processing system.
43. A device as claimed in claim 42, wherein the noise resistant format comprises a differential signal format.
44. A device as claimed in claim 37, wherein said connector module is positioned outside said system housing.
45. A device as claimed in claim 37, wherein the processing system is configured to digitize said video.
46. A device as claimed in claim 45, wherein the processing system is further configured to determine differences between successive frames of said video and to cause corresponding difference information to be stored in said memory.
47. A device as claimed in claim 46, wherein the processing system is further configured to cause key frames of said video to be stored in said memory.
48. A device as claimed in claim 44, wherein the subject computer is a personal computer, and wherein the system housing is configured and positioned to resemble a disk drive of said personal computer.
49. A device as claimed in claim 37 or claim 44, wherein the device further comprises a USB interface configured to permit configuration of the device during installation.
50. A device as claimed in claim 37 or claim 44, wherein the processing system further comprises a wireless transmission system for transmitting said processed video to a remote computer.
51. A device as claimed in claim 50, wherein the wireless transmission system comprises a radiofrequency interface and an antenna for transmitting the processed video.
52. A device as claimed in claim 50, wherein said wireless interface comprises a wireless ethernet interface.
53. A device as claimed in claim 50, wherein said subject computer comprises a personal computer having a housing, and wherein said antenna is positioned in said housing in a position to permit effective transmission and to be undiscernible from outside said housing.
54. A device as claimed in claim 50, wherein the device further comprises a local memory for storing said processed video, the memory being operatively connected to the processing system, and wherein the processing system is configured to automatically periodically transmit processed video from said memory to said remote computer.
55. A device as claimed in claim 38, wherein the device further includes a local memory access connected to said memory, and wherein the processing system is configured to permit said processed video to be downloaded via said memory access.
56. A device as claimed in claim 50, wherein the device further comprises a local memory for storing said processed video, the memory being operatively connected to the processing system, and wherein the processing system is configured such that, if the storing of processed video in said memory is interrupted, transmission of processed video to the remote computer is also interrupted, wherein processed video not stored in the memory is not transmitted to the remote computer.
57. A device as claimed in claim 50, wherein the remote computer comprises a server from which processed video is periodically downloaded.
58. A device as claimed in claim 50, wherein the remote computer comprises a computer having wireless reception capability, and wherein the remote computer is configured to display the processed video in real time, whereby a user may watch the video of the subject computer at the remote computer.
59. A device as claimed in claim 38, wherein said processing system is configured to reduce the data rate of the video from the subject computer when storing processed video in said memory.
60. A device as claimed in claim 59, wherein the processing system is configured to reduce the colour resolution of the video.
61. A device as claimed in claim 59, wherein the processing system is configured to convert the colours of the video to greyscale.
62. A device as claimed in claim 61 , wherein the processing system is configurable to permit between two and thirty-two greyscale levels.
63. A device as claimed in claim 59, wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured to store processed video at a lesser frame rate, wherein no processed video is stored for a portion of the frames of the subject computer's video.
64. A device as claimed in claim 59, wherein the processing system is configured to permit a user to set a predetermined maximum data rate for storage in the memory.
65. A device as claimed in claim 64, wherein the video from the subject computer has a particular frame rate, and where the processing system is configured to automatically store processed video at a lesser frame rate to avoid exceeding the predetermined maximum data rate.
66. A device as claimed in claim 64, wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured to keep track of an actual data rate of said video, and to automatically adjust a processing data rate upward or downward in accordance with the predetermined maximum data rate.
67. A device as claimed in claim 38, wherein the processing system is configured to temporarily store processed video in said memory in an intermediate streaming file format, and to subsequently convert said processed video in said memory to a non-streaming file format.
68. A device as claimed in claim 67, wherein the non-streaming file format comprises AVI format.
69. A device as claimed in claim 37, wherein the video from the subject computer has a particular frame rate, and wherein the processing system is configured permit a user to select a processing frame rate less than or equal to said particular frame rate.
70. A device as claimed in claim 37 or 38, wherein the processing system is configurable to search for particular subject matter in said video, to increase a processing frame rate when said particular subject matter is present, and to decrease a processing frame rate when said particular subject matter is absent.
71. A device as claimed in claim 37, wherein the memory comprises flash memory.
PCT/CA2007/000841 2006-05-16 2007-05-11 Device and method for obtaining computer video WO2007131349A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2,547,108 2006-05-16
CA 2547108 CA2547108A1 (en) 2006-05-16 2006-05-16 Device and method for obtaining computer video

Publications (1)

Publication Number Publication Date
WO2007131349A1 true WO2007131349A1 (en) 2007-11-22

Family

ID=38686906

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2007/000841 WO2007131349A1 (en) 2006-05-16 2007-05-11 Device and method for obtaining computer video

Country Status (2)

Country Link
CA (1) CA2547108A1 (en)
WO (1) WO2007131349A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010026678A1 (en) * 2000-03-17 2001-10-04 Akio Nagasaka Video access method and video access apparatus
WO2003085984A1 (en) * 2002-04-02 2003-10-16 Intervideo, Inc. A method and system for a distributed digital video recorder
WO2006022775A2 (en) * 2004-07-29 2006-03-02 Microsoft Corporation Automatic tv signal and tuner setup
WO2006038004A2 (en) * 2004-10-04 2006-04-13 Democracy Systems Inc Method, apparatus and system for monitoring computing apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010026678A1 (en) * 2000-03-17 2001-10-04 Akio Nagasaka Video access method and video access apparatus
WO2003085984A1 (en) * 2002-04-02 2003-10-16 Intervideo, Inc. A method and system for a distributed digital video recorder
WO2006022775A2 (en) * 2004-07-29 2006-03-02 Microsoft Corporation Automatic tv signal and tuner setup
WO2006038004A2 (en) * 2004-10-04 2006-04-13 Democracy Systems Inc Method, apparatus and system for monitoring computing apparatus

Also Published As

Publication number Publication date
CA2547108A1 (en) 2007-11-16

Similar Documents

Publication Publication Date Title
CN1822004B (en) System and method for using a file system to automatically backup a file as a generational file
CN103310723B (en) The method of the panel self refresh operation of display device and this display device of control
US20070220581A1 (en) Network type television video recorder
US11158284B2 (en) Electronic apparatus and control method thereof
US7478260B2 (en) System and method for setting a clock rate in a memory card
US20090135256A1 (en) Sata camera system
US20070174353A1 (en) Method and apparatus to proactively capture and transmit dense diagnostic data of a file system
CN101923374A (en) Non-standalone TV PC
US20220269716A1 (en) File processing device, file processing method, and program
EP3975552A1 (en) File processing device, file processing method, and program
US20070242925A1 (en) Recording and reproducing apparatus and reproducing apparatus
WO2007131349A1 (en) Device and method for obtaining computer video
US20070098370A1 (en) Digital video recorder
CN203406954U (en) Integrated type network hard disk video recorder
US20100296375A1 (en) Information reproducing apparatus
US7457512B2 (en) Information recording device
US20050086398A1 (en) Method of changing EDID of motherboard
CN109089084B (en) Video line transmission data online extraction and invisible storage control device and working method thereof
US20080055471A1 (en) Video integrated circuit and video processing apparatus thereof
US20040076398A1 (en) Electronic Album
CN201081781Y (en) Digital image frame capable of synchronizing data with remote server
GB2359185A (en) Information recording method and system,image compression/decompression system,system control method,and monitoring system including part or all of them
KR100761010B1 (en) Screen information management method and system using access direct of video memory
US20040017511A1 (en) Video information indexing support apparatus and method, and computer program
CN218413978U (en) Host graphical interface recording and returning device

Legal Events

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

Ref document number: 07719765

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07719765

Country of ref document: EP

Kind code of ref document: A1