AU2006252143A1 - High Reliability Video Recording System - Google Patents

High Reliability Video Recording System Download PDF

Info

Publication number
AU2006252143A1
AU2006252143A1 AU2006252143A AU2006252143A AU2006252143A1 AU 2006252143 A1 AU2006252143 A1 AU 2006252143A1 AU 2006252143 A AU2006252143 A AU 2006252143A AU 2006252143 A AU2006252143 A AU 2006252143A AU 2006252143 A1 AU2006252143 A1 AU 2006252143A1
Authority
AU
Australia
Prior art keywords
camera
storage servers
video data
storage
status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
AU2006252143A
Inventor
Matthew James Allen
Rajanish Calisa
George Anthony Filippoff
Hayden Graham Fleming
Rupert William Galloway Reeve
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to AU2006252143A priority Critical patent/AU2006252143A1/en
Publication of AU2006252143A1 publication Critical patent/AU2006252143A1/en
Abandoned legal-status Critical Current

Links

Description

S&F Ref: 790602
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address of Applicant: Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3-chome, Ohta-ku, Tokyo, 146, Japan Hayden Graham Fleming Rajanish Calisa Rupert William Galloway Reeve George Anthony Filippoff Matthew James Allen Spruson Ferguson St Martins Tower Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) High Reliability Video Recording System The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5845c(61651 11) O-1- HIGH RELIABILITY VIDEO RECORDING SYSTEM SField of the Invention The current invention relates generally to digital video recording and, in particular, to a method and apparatus for recording video data. The present invention also relates to a computer program product including a computer readable medium having recorded thereon ,i a computer program for recording video data.
Background Video recording systems for recording video data for surveillance from analogue cameras is well know. Such systems typically record an analogue video signal to tape.
An improvement on tape based video recording systems is a digital video recorder (DVR). A digital video recorder digitizes the analogue video signal from an analogue video camera and records a digital representation of the video signal in the form of video data. The video data is typically recorded on to a hard disk. Digital video recorders are typically built as custom designed units for stand alone operation. Digital video recorders typically record the video signal from a plurality of cameras.
More recently, systems have been developed for performing networked digital video recording. Such systems are often comprised of readily available components. The components often include a TCP/IP network, one or more digital video cameras and one or more digital video recorders. In this instance, the digital video recorders are computer systems running software that receives video data from the video cameras and stores the video data on a storage medium such as a hard disk drive. Such digital video recorders may also be referred to as "storage servers".
790602_Final C:\NrPortbl\SAF\PDM\615765_I .DOC r 11 2- In some cases a digital video recording system may be implemented as software on a Sstandard personal computer (PC) platform with appropriate connection to a network.
C Conventionally, most digital video recording systems have no redundancy in recording. If a digital video recorder recording from a given network digital video camera fails then all video data and events information on the digital video recorder can be lost.
,IC Digital video recorders may be duplicated in a configuration that records, from a given
INO
network digital video camera to more than one digital video recorder simultaneously. This can provide protection from certain types of failure, for example if a disk drive on one digital video recorders fails then the video data will continue to be recorded on remaining digital video recorders.
A disadvantage of the duplicated configuration described above is that in normal operation, when no failure exists, the video data is recorded on each of the digital video recorders. Thus the video data is being duplicated on each of the digital video recorders unnecessarily using up disk capacity.
In some known digital video recording systems, a schedule is used to determine when recording should be started and stopped and what mode of recording should be used.
For example, the schedule may determine what frame rate should be used for recording and if the recording should be continuous or only in response to the detection of motion in the video data.
One disadvantage of known digital video recording systems is that they can become overloaded if configured to record from too many cameras at the same time and at high frame rates. Typically, the requested frame rate can not be achieved by the digital video recorder and some video frames will be discarded. In such a case it may be possible to add extra digital video recorders (or storage servers) to the system and to distribute some of the 790602_Final C:\NrPortbl\SAF\PDM\615765_1. DOC IN -3network digital video cameras to the new digital video recorders. However, the correct Sallocation of network digital video cameras to the digital video recorder may be complex C1 as recording schedules may vary the load on the digital video recorders at different times.
Cc, In some cases optimal use of the capacity of the digital video recorders may be impossible to achieve because of the variations in load caused by the required recording schedules at C different times.
Thus, a need clearly exists for an improved method of recording video data.
(N
Summary According to one aspect of the present invention there is provided a method of recording video data captured by a camera connected to a network, said method comprising the steps of: determining a status for each of a plurality of storage servers connected to the network; and assigning two or more of the plurality of storage servers to record the video data captured by the camera depending on the status of each of the plurality of storage servers, wherein if one of the assigned storage servers fails to record from the camera then another one of the plurality of storage servers is assigned to record the video data captured by the camera depending on the status of each of the plurality of storage servers.
According to another aspect of the present invention there is provided a system for recording video data, said method comprising the steps of: at least one camera connected to a network for capturing the video data; a plurality of storage servers connected to the network for recording the video data; and 790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC
O
D-4a presiding server for determining a status for each of said plurality of storage d,) Sservers, and for assigning two or more of said plurality of storage servers to record the C video data captured by the camera depending on the status of each of the plurality of cc storage servers, wherein if one of the assigned storage servers fails to record from the camera then another one of the plurality of storage servers is assigned to record the video I data captured by the camera depending on the status of each of the plurality of storage servers.
According to still another aspect of the present invention there is provided a computer readable medium, having a program recorded thereon, where the program is configured to make a computer execute a procedure to record video data captured by a camera connected to a network, said program comprising: code for determining a status for each of a plurality of storage servers connected to the network; and code for assigning two or more of the plurality of storage servers to record the video data captured by the camera depending on the status of each of the plurality of storage servers, wherein if one of the assigned storage servers fails to record from the camera then another one of the plurality of storage servers is assigned to record the video data captured by the camera depending on the status of each of the plurality of storage servers.
Other aspects of the invention are also disclosed.
Brief Description of the Drawings Some aspects of the prior art and one or more embodiments of the present invention will now be described with reference to the drawings and appendices, in which: Fig. 1 is schematic diagram of a digital video recording system upon which embodiments described may be practiced; 790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC Fig. 2 is a schematic block diagram of a general-purpose computer upon which a
O
presiding server described herein may be practiced; ,I Fig. 3 is a schematic block diagram of a general-purpose computer upon which a storage server described herein may be practiced; Fig. 4 shows the software modules resident on the presiding server of Fig. 2; Fig. 5 shows the software modules resident on the storage server of Fig. 3;
INO
Fig. 6 shows an example of a user interface that may be used with the system of Fig 1; Fig. 7 shows an another user interface that may be used with the system of Fig. 1; Fig. 8(a) shows an example of a recording schedule; Fig. 8(b) shows an example of a responsibility table; Fig. 9(a) shows an example of a redundancy table; Fig. 9(b) shows an example of a storage server status table; Fig. 10 is a flow diagram showing a method of distributing a responsibility table to the storage servers of Fig. 1; Fig. 11 is a flow diagram showing a method of updating current recording operations; Fig. 12 is a flow diagram showing a method of generating a responsibilities table; Fig. 13 is a flow diagram showing a method of adding a camera entry to a responsibility table, as executed in the method of Fig. 12; and Fig. 14 is a flow diagram showing a method of recording video data captured by one of the cameras connected to the network of Fig. 1.
Detailed Description including Best Mode 790602 Final C:\NrPortbl\SA F\PDM\615765_I .DOC 0-0 Where reference is made in any one or more of the accompanying drawings to steps Sand/or features, which have the same reference numerals, those steps and/or features have C1 for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
It is to be noted that the discussions contained in the "Background" section and that CI above relating to prior art arrangements relate to discussions of documents or devices which form public knowledge through their respective publication and/or use. Such should not be interpreted as a representation by the present inventor(s) or patent applicant that such documents or devices in any way form part of the common general knowledge in the art.
Methods of recording video data are described below with reference to Figs. 1 to 14.
In the exemplary embodiment, the described methods are implemented within a digital video recording system 100 as shown in Fig 1.
The digital video recording system 100 comprises video cameras 120, 122 and 124 connected to a computer network 140, such as the Internet or an Intranet. The network 140 may be a local area network (LAN) or the Internet. Accordingly, the system 100 can operate with all components locally or with some components distributed widely and connected over the network the Internet). Some examples of proprietary cameras 120-124 are the Canon T M VC-C4 video camera.
Each of the cameras 120-124 are responsible for the capture of video data representing images. Accordingly, each of the cameras 120-124 may be referred to as a "video data source". The video data is output by the cameras 120-124 as a stream of video data.
790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC I-7-
\O
The system 100 also comprises storage servers 300A, 300B, 300C to 300N, which
U
Smay be used for monitoring the output of video data from any one of the cameras 120-124 and for recording requesting and storing) the video data captured by any one of the cameras 120-124. One or more of the plurality of storage servers 300A-300N may record video data from a plurality of the cameras 120-124 connected to the network 140. The CI storage servers 300A-300N may also be used for accessing video data, for event handling and for control of the system 100. The storage servers 300A-300N may also be configured to record events that are generated by the cameras 120-124 as well as potentially creating and storing other events, such as recording start and stop events when the storage servers 300A-300N start and stop recording the video data from any one of the cameras 120-124.
The storage servers 300A-300N will hereinafter be generically referred to as the storage server 300, excepting where explicitly distinguished.
The video data captured by one or more of the cameras 120-124 may be uploaded, via the computer network 140, to the storage server 300. Any one of the storage servers 300 can send a command to one of the cameras 120-124 to configure the camera to upload the video data as a stream of video data back to the storage server 300. When the storage server 300 receives a stream of video data from one of the cameras 120-124, the video data may be processed by the storage server 300 and/or recorded on a hard disk drive 310 of the storage server 300 (see Fig. so that the video data may be viewed by a user using a display 314 (see Fig. 3) of the storage server 300. Thus, any one of the storage servers 300 may record video data from one or more network cameras 120-124, and video data from any network camera 120-124 may be simultaneously recorded to one or more of the storage servers 300.
790602_Final C:\NrPortbl\SAF\PDM\615765_I .DOC
I
O -8-
O
Also connected to the network 140 is a presiding server 200. The presiding server S200 is used for storing recording schedule information that defines when recording should ri be performed. As will be described in detail below, the presiding server 300 may be used for scheduling recording for cameras 120-124 so that the video data captured by the camera 120-124 is recorded on more than one of the servers 300A-300N. In this instance, ri if one of the servers 300A-300N recording from a particular camera 120-124 fails, then
INO
video data and events for that particular camera 120-124 are still accessible. If, after a failure, there are other storage servers 300A-300N still operating that are not recording from the particular camera 120-124, then one of the spare storage servers 300A-300N may to be assigned to the particular camera 120-124.
The presiding server 200 may also store details such as a desired frame rate for the recording, the mode of recording continuous recording, recording on detection of motion, recording on detection of some other input, recording on detection of some attribute of the video data such as detection of a person in the video data).
As seen in Fig. 2, the presiding server 200 is preferably formed by a computer module 201, input devices such as a keyboard 202 and mouse 203, output devices including a printer 215, a display device 214 and loudspeakers 217. A network interface 208 configured within the computer module 201 may be used for communicating to and from the computer network 140, for example, connectable via a network link 221 (such as a coaxial cable, a twisted pair cable, a fibre optic cable, a wireless connection using 802.11 lb or BluetoothTM or other connection type). A Modulator-Demodulator (Modem) transceiver device (not shown) incorporated within the network interface 208 or otherwise, may also be used to obtain access to the computer network 140, via a telephone line for example.
790602_Final C:\NrPortbl\SAF\PDM\615765 I.DOC \O r
IND
The computer module 201 typically includes at least one processor unit 205, and a Smemory unit 206, for example, formed from semiconductor random access memory "I (RAM) and read only memory (ROM). The module 201 also includes a number of input/output interfaces including an audio-video interface 207 that couples to the video display214 and loudspeakers217, an I/O interface213 for the keyboard202 I mouse203, printer 215 and optionally a joystick (not illustrated) or trackball (not illustrated). Optionally the module 201 may include a touch-screen (not shown) formed by an overlaid touch-sensitive surface on the video display 214, allowing user input by touching or moving a finger along the video display 214. A storage device 209 is provided and typically includes a hard disk drive 210 and a floppy disk drive 211. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 212 is typically provided as a non-volatile source of data. The components 205 to 213 of the computer module 201, typically communicate via an interconnected bus 204 and in a manner, which results in a conventional mode of operation of a computer system as known to those in the relevant art.
Examples of computers on which the described arrangements may be practiced include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
The storage server 300 is also shown in detail in Fig. 3. The storage server 300 is preferably formed by a computer module 301, input devices such as a keyboard 302 and mouse 303, output devices including a printer315, a display device314 and loudspeakers 317. A network interface 308 is also configured within the computer module 301 and may be used for communicating to and from the computer network 140, for example connectable via network link 321 (such as a coaxial cable, a twisted pair cable, a fibre optic cable, a wireless connection using 802.1 lb or BluetoothTM or other connection 790602_Final C:\NrPortbl\SAF\PDM\615765_ I.DOC
\O
type). A Modulator-Demodulator (Modem) transceiver device (not shown) incorporated
O
within the network interface 308 or otherwise, may also be used to obtain access to the I computer network 140, via a telephone line for example.
Similar to the computer module 201, the computer module 301 typically includes at least one processor unit305, and a memory unit 306, for example formed from ,IC semiconductor random access memory (RAM) and read only memory (ROM). The
INO
module 301 also includes a number of input/output interfaces including an audiovideo interface 307 that couples to the video display 314 and loudspeakers 317, an /0 interface 313 for the keyboard 302, printer 315 and mouse 303 and optionally a joystick (not illustrated) or trackball (not illustrated). Optionally the module 301 may include a touch-screen (not shown) formed by an overlaid touch-sensitive surface on the video display 314, allowing user input by touching or moving a finger along the video display 314. A storage device 309 is provided and typically includes a hard disk drive 310 and a floppy disk drive 311. A magnetic tape drive (not illustrated) may also be used. Peripheral storage devices (not shown) connected to the computer module 301 may be used. In addition, network accessible storage devices or collections of such devices (not shown), including Network Attached Storage (NAS) and Storage Area Networks (SAN), may be connected to the network 140 and may be accessed through the network interface 308. A CD-ROM drive312 is typically provided as a non-volatile source of data. The components 305 to 313 of the computer module301, typically communicate via an interconnected bus 304 and in a manner, which results in a conventional mode of operation of such a computer system as known to those in the relevant art.
The presiding server 200 communicates with the storage servers 300A-300N over the network 140 and ensures that the recording schedule is executed by making best use of the 790602_Final C:\NrPortbl'SAF\PDM\6157651 .DOC -11-
\O
storage servers 300A-300N available in the system 100 in consideration of the status of Sthose storage servers 300A-300N. Accordingly, the presiding server 200 may assign the ,I storage servers 300A-300N to record video data captured by the cameras 120-124 so that Cr reliability of the recording is ensured. In particular the presiding server 200 allows scheduled recording that supports: ,IC i) 'redundant' recording where two or more storage servers 300A-300N are directed
\O
to record video data from a given camera 120-124. In this instance, the storage servers 300A-300N recording from the two or more storage servers 300A-300N may be referred to as a recording "group".; ii) 'fail-over' recording where failure of a storage server 300A-300N to record video data captured by a particular camera 120-124 is addressed by assigning a different storage server 300 to record the video data captured by the particular network camera 120-124; iii) 'load balancing' where the storage servers 300A-300N are assigned to record the video data captured by one or more of the cameras 120-124 so that each of the plurality of storage servers 300 is not overloaded each of the plurality of storage servers 300 is substantially equally loaded).
In Fig 1, the storage servers 300A 300N are shown as separate entities to the presiding server 200. However, while the presiding server 200 and storage server 300 are logically different, the presiding server 200 can reside on the same computer module 301 as one of the storage servers 300A-300N.
The methods described herein may be implemented as software, such as one or more application programs executable within the presiding server 200 and/or the storage server 300. In particular, the steps of the described methods are effected by instructions in the software that are carried out within the servers 200 and 300. The instructions may be 790602_Final C:\NrPortbl\SA F\PDM\615765 1. DOC O ~-12-
\O
formed as one or more code modules, each for performing one or more particular tasks.
O
The software may also be divided into two separate parts, in which a first part and the C corresponding code modules performs the described methods and a second part and the corresponding code modules manage a user interface between the first part and the user.
The software may be stored in a computer readable medium, including the storage devices Sdescribed below, for example. The software may be loaded into the servers 200 and 300
INO
from the computer readable medium, and then executed by the corresponding server 200 and/or 300. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the system 100 preferably effects an advantageous apparatus for implementing the described methods.
Fig. 4 shows the software modules 412, 414, 416, 418 and 420 resident on the presiding server 200, where the software for the presiding server 200 as a whole is represented as an outer box 410. The software modules comprise a schedule distributor 412, a status monitor 414, a responsibility allocator 416, a group comms 418 and a network interface 420.
The schedule distributor 412 is responsible for reading a desired schedule from a configuration file resident on the hard disk drive 210 and dynamically distributing the schedule to all the storage servers 300A-300N via the group comms 418. The status monitor 414 is responsible for compiling status information about the storage servers 300A-300N that is received from the storage servers 300A-300N by the group comms 418.
Using the information received, the status monitor 414 compiles a storage server status table configured in memory 206 and containing information about availability and status of the storage servers 300A-300N. An example of a storage server status table 950 is shown 790602 Final C:\NrPortnb\SAF\PDM\615765_1 .DOC N-13-
\O
in Fig The responsibility allocator 416 reviews the schedule and in consideration of Sthe server status table 950 generates a new responsibility table. After generating a new NI responsibility table the responsibility allocator 416 distributes the responsibility table to all the storage servers 300A-300N via the group comms 418. The group comms 418 performs ¢€3 sending and receiving functions. Data to be sent is formatted for transmission to the ,I storage servers 300A-300N and written to the network interface 420 which sends the
INO
messages to the storage servers 300A-300N via the network 140. Data that is received from the network 140 is parsed by the group comms 418 into appropriate data structures and is made available to the status monitor 414.
The software modules of the storage server 300 are shown in Fig 5, where the software for the storage server 300 as a whole is shown as the outer box 510. The software modules of the storage server 300 comprises a scheduler 512, a local status 514, a buffer 524, a camera comms 522, a group comms 516, a writer 526 and a network interface 518.
The scheduler 512 receives the schedule information from the presiding server 200 including the responsibility table via the group comms module 516. The scheduler 512 sends commands to the network cameras 120-124 to initiate video data streaming for the network cameras 120-124 that the scheduler 512 is responsible for and which are currently scheduled for recording. The scheduler 512 is also responsible for terminating video data streaming for the network 120-124 cameras that the scheduler 512 is not responsible for or which are not currently scheduled for recording.
A video data stream that is received from a network camera 120-124 via the network interface 518 is passed to the camera comms 522 where the video data stream is parsed into video data and buffered in the buffer 524 configured within the memory 206.
790602_Final C:NrPortbl\SAF\PDM\615765_1 .DOC I-14-
\O
A separate thread is preferably used to operate the writer 326 which reads the video data from the buffer 524 and writes the video to the hard disk drive 210. The local status C module 514 is responsible for periodically checking the status of the storage server 300 processor load, hard disk load, network load) and transmitting status information to the presiding server 200 via the group comms module 516.
Fig. 6 shows an example of a user interface 600 that may be displayed on the display 214 of the presiding server 200 to enable the user to indicate (or define) that certain ones of the cameras 120-124 have a higher priority and should be recorded redundantly. In this instance, the storage servers 300A-300N may be assigned to the cameras 120-124 based on a priority assigned to one or more of the cameras 120-124. This priority may be input by the user using the user interface 600 of Fig. 6. Accordingly, the assignment of the storage servers 300A-300N to record the video data captured by the cameras 120-124 may be based on user input.
In the user interface 600 of Fig. 6 check boxes 612 and 616 are checked indicating that "Camera 1" 120 and "Camera 3"(not shown) have been assigned a "high" priority (or "high availability") and should be recorded on two storage servers 300 more than one storage server 300) simultaneously. Accordingly, if one of the storage servers assigned to "Camera 1" 120 and/or "Camera 3" fail, "Camera 1" 120 and "Camera 3" remain available and recording from "Camera 1" 120 and "Camera 3" continues. In contrast, in the example of Fig. 6 "Camera 2" 122 and "Camera 4" (not shown) have check boxes 614 and 618 that are not checked meaning that "Camera 2" 122 and "Camera 4" have been assigned a low priority and will be recorded on only one storage server 300.
Fig. 7 shows another user interface 700 that may be displayed on the display 214 of the presiding server 200. In the user interface 700, each network camera Camera 1, 790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC 15 Camera 2, Camera 3 and Camera 4) has an associated editable numeric field 712).
The user interface 700 may be used for assigning the level of redundant recording (or redundancy level) to be performed for each of the cameras 120-124. For example, "Camera 1" 120 has an associated field 712 with a value of entered indicating that the video data from "Camera 1" 712 should be recorded on two storage servers 300 simultaneously. The value may be considered a redundancy level for the camera 712.
In the example, the in the check boxes 714 and 718 means that video data from "Camera 2" 122 and "Camera 4" (not shown) will be recorded normally, that is on a single storage server 300 only. Further, the in the check box 716 means that video data from "Camera 3" (not shown) will be recorded on three storage servers 300. Settings entered into the check boxes 712-718 are retained in memory 206 in a redundancy table.
Accordingly, the assignment of the storage servers 300A-300N to record the video data captured by the cameras 120-124 may be based on a user defined redundancy level. An example of a redundancy table 910 is shown in Fig 9(a) An example of a recording schedule 810 is shown in Fig The recording schedule 810, as seen in Fig. 8, may be recorded in the hard disk drive 210 of the presiding server 200 in a schedule configuration file such as is read by the schedule distributor 412.
The schedule configuration file uses a simple text format. Each line 801) in the schedule configuration file 810 represents a recording item. For example, "Camera 1" 120 is shown in three recording items on three lines 801, 802 and 803) for three different time periods 00:00 09:00, 09:00 18:00 and 18:00 24:00) and in each recording item a mode of recording motion) and a desired frame rate 30 frames/s) are nominated. The recording schedule 810 does not specify which storage server 300 must perform the recording for any particular item.
790602 Final C:\NrPortbl\SAF\PDM\615765_I .DOC IND -16-
O
An example of a responsibility table 850 is shown in Fig The responsibility Stable 850, as shown in Fig. is a table but any suitable data structure for access to the Sinformation of the responsibility table 850 in the memory of the presiding server 200 and the storage servers 300A-300N can be used. For example, an array of simple structures containing a storage server 300 and camera 120-124 pair may be used to provide the C information of responsibility table 850. In the example of Fig. "storage server 1" 300A is responsible for scheduling recording for "Camera 1" 120, "Camera 2" 122 and "Camera 3" (not shown). In contrast, "storage server 2" 300B is responsible for scheduling recording for "Camera 1" 120 and "Camera 3" only. Further, "Camera 1" 120 will be recorded on two storage servers "storage server 1" 300A and "storage server 2" 300B) where as "Camera 4" (not shown) will only be recorded by one storage server "storage server 3" 300C).
A method 1400 of recording video data captured by one of the cameras 120-124 connected to the network 140 will now be described with reference to Fig. 14. The method 1400 may be implemented by one or more of the software modules 412 to 420 resident on the hard disk drive 210 and being controlled in its execution by the processor 205.
The method 1400 continues at the next step 1401, where the processor 205 performs the step of determining a status for each of the plurality of storage servers 300A-300N connected to the network 140. As described above, the status monitor 414 is responsible for compiling status information about the storage servers 300A-300N that is received from the storage servers 300A-300N by the group comms 418. Using the information received, the status monitor 414 compiles a storage server status table configured in memory 206 and containing information about availability and status of the storage servers 300A-300N.
790602_Final C:\NrPonrtbl\SAF\PDM\615765_ .DOC 1 0 -17-
O
O
The method 1400 continues at the next step 1403, where the processor 205 of the Spresiding server 200 performs the step of assigning two or more of the plurality of storage
O
CN servers 300A- 300N to record the video data captured by the camera 120-124 depending on the status of each of the plurality of storage servers 300A-300N. The storage servers 5 300A-300N may be assigned to record the video data captured by the camera 120-124 by C1 appending a new entry to a responsibility table 850). The new entry assigns the
INO
selected storage server 300 with the camera 120-124 of the camera entry found in such a responsibility table. If one of the assigned storage servers 300A-300N fails to record from the camera 120-124 then another one of the plurality of storage servers 300A-300N is assigned to record the video data captured by the camera 120-124 depending on the status of each of the plurality of storage servers 300A-300N.
The failure of one of the storage servers 300A-300N to record from the camera 120- 124 may occur during recording. In this instance, again, another one of the plurality of storage servers 300A-300N is assigned to record the video data captured by the camera 120-124 depending on the status of each of the plurality of storage servers 300A-300N.
As will be described in detail below, the assigning of the storage servers 300A-300N to the cameras 120-124 may be based on, for example, total number of video data frames per second being recorded by each of the storage servers 300A-300N or the number of bytes of video data received by each of the storages servers.
A method 1000 of distributing a responsibility table to the storage servers 300A to 300N will now be described with reference to Fig. 10. The method 1000 may be implemented by one or more of the software modules 412 to 420 resident on the hard disk drive 210 and being controlled in its execution by the processor 205.
790602 Final C:\NrPortbl\SAF\PDM\6157651 .DOC
I
IND -18- The method 1000 begins at step 1001 where the schedule distributor 412 reads the Srecording schedule configuration file resident on the hard disk drive 210. Then at the next r, step 1002, the schedule distributor 412 performs the step of distributing the recording schedule in the form of a recording schedule 810) to each of the plurality of storage servers 300A-300N known to the presiding server 200. Proceeding then to step 1003, the r, status monitor 414 receives any status information messages sent by the storage servers 300A-300N and compiles a storage server status table within memory 406. An example of a storage server status table 950 is shown in Fig The storage server status table 950 includes a row 906) for each storage server 300, the name of the storage server "Storage Server for the row is recorded in a first column 901. A second column 902 describes whether the storage server 300 is available online). If the storage server 300 has recently within some predetermined time period) sent a status update then the column 902 is marked "yes" and the storage server 300 is deemed to be available.
Otherwise, if no status information has been received by the presiding server 200 within the predetermined time period, then the storage server 300 is deemed to be not available and the column 902 contains a If the storage server 300 is not available then the remaining columns 903, 904, 905 will contain a value a indicating that the status information is not available. The third column 903 contains a number 3) which is the number of cameras 120-124 which are assigned to be recorded by the storage server 300 Storage Server 1) (300A). The storage server status table 950 may also include other columns 905) containing information about the status of the storage server 300, and which may include: Sthe total target number of frames per second configured to be recorded by the storage server 300; 790602_Final C:\NrPortbl\SA F\PDM\615765 I.DOC N-19the total number of frames per second actually recorded by the storage server ¢d S300; the total number of frames per second received but not being recorded; the percent of processor CPU) usage of the storage server 300 applications executed on the storage server 300; number of bytes of video data received by the storage server 300; and t* number of bytes of video data recorded by the storage server 300.
Returning to Fig 10, the method 1000 continues at the next step 1004, where the responsibility allocator 416 evaluates the storage server status table 900), the redundancy table 910) and the current responsibility table 850) and generates a new responsibility table. A method 1200 of generating a responsibility table, as executed at step 1004, will be described in detail below with reference to Figs. 12 and 13.
The method 1000 continues at the next step 1005, where the processor 205 distributes the responsibility table to all of the storage servers 300A-300N known to the presiding server 200. Following step 1005, the method 1000 returns to step 1003 and steps 1003, 1004 and 1005 are repeated.
A method 1100 of updating current recording operations will now be described with reference to Fig. 11. The method 1100 may be implemented by the software modules 512 to 526 resident in the hard disk drive 310 of the storage server 300 and being controlled in its execution by the processor 305.
The method 1100 begins at step 1101, where the local status module 514 gathers status information about the storage server 300 and formats and sends this information to the presiding server 200. In the next step 1102, the storage server 300 receives any new schedule in the form of the table 810) or any new responsibilities table 850) from the presiding server 200. Then in step 1103, the scheduler 512 executes any updates 790602_Final C:\NrPortbl\SAF\PDM\615765_ I.DOC IN
O
to the current recording operations of the storage server 300 indicated by the new schedule Sinformation or the new responsibilities table. Accordingly, the recording operations of the C1 storage server 300 may be assigned and executed dynamically, if the schedule information or the information in the new responsibilities table changes. That is, the storage sever 300 may be dynamically scheduled.
SFollowing step 1103, the method 1100 returns to step 1101 and steps 1101 to 1103 are repeated.
The method 1200 of generating a responsibility table 850), as executed at step 1004, will be described in detail below with reference to Figs. 12. The method 1200 may be implemented by one or more of the software modules 412 to 420 resident on the hard disk drive 210 and being controlled in its execution by the processor 205. The method 1200 generates an updated responsibility table. The inputs for the method 1200 are a redundancy table 910), a storage server status table 950) and an existing responsibility table 850). The existing responsibility table typically contains the responsibility assignments from the previous time that the method 1200 was executed.
However, on a first execution of the method 1200 the responsibilities table will typically be empty. In the method 1200 the responsibility table is modified in place so that when the method 1200 ends the responsibility table has been updated and is ready to send to the storage servers 300A to 300N in accordance with the method 1000 described above.
Accordingly, the responsibility table is updated dynamically.
The method 1200 comprises two nested loops. The outer loop iterates over all the camera 120-124 entries in the redundancy table 910) starting from the top of the table.
790602 Final C:\NrPortbl\SAFPDM\6157651 .DOC ID -21-
\O
The method 1200 begins at step 1212, where the processor 205 iterates over all the
U
Scamera 120-124 entries in the redundancy table 910) starting from the top of the N table. At the next step 1214, if the processor 205 determines that the end of the table has been reached, then the method 1200 concludes. If the end of the redundancy table is reached then this indicates that all the cameras 120-124 in the system 100 have been Saccounted for, including any redundancy. Alternatively if there are remaining cameras 120-124 in the redundancy table then the method 1200 proceeds to step 1216 to begin the inner loop. This inner loop iterates for the number of the redundancy value in the redundancy table.
At step 1216, the processor 205 initialises a counter, rcount, to zero rcount 0).
At the next step 1218, if the processor 205 determines that the exit condition has been reached the count, rcount, has equalled the redundancy value from the redundancy table for the camera), then the method 1200 proceeds to step 1236. Otherwise, if the count, rcount, is less than the redundancy level, then the method 1200 proceeds to step 1220. At step 1236, the processor 205 moves to the next row next camera) of the redundancy table and then proceeds back to step 1214.
In step 1220 the responsibility table is scanned to find the first camera entry that relates to the camera currently being considered according to the current row in the redundancy table) and that is not marked confirmed. At the next step 1226, if a camera 120-124 relating to the camera 120-124 currently being considered is found, then the method 1200 proceeds to step 1230. Otherwise, if no such camera entry is found then the method 1200 proceeds to step 1222. At step 1222 the processor 205 adds a new camera entry to the responsibility table. This situation typically occurs when starting the system 100 or when a new camera has been added to the redundancy table if the system 100 790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC NO-22-
\O
configuration has been updated), or if the level of redundancy (or redundancy level) for a Scamera 120-124 has been increased. A method 1300 of adding a camera entry to a i responsibility table, as executed at step 1222, will be described in detail below with reference to Fig. 13. Following step 1222, the method 1200 proceeds to step 1234, where a count rcount) for the inner loop is incremented and the method 1200 returns to step ,I 1218.
INO
At step 1230, the storage server 300 corresponding to the camera 120-124 of the camera entry found in the responsibility table at step 1220 is considered to determine the status of the storage server 300. The status of the storage server 300 may be determined from the storage server status table 950. The storage server status table 950 is evaluated at step 1230 to determine if the storage server status is acceptable. The evaluation of acceptable status is typically based on one or more conditions. In particular, the status of one of the plurality of storage servers 300A-300N may be determined based on one or more of the following conditions: availability of the storage server; number of cameras currently recording to the storage server being below a predetermined threshold; a number of frames of video data not being recorded by the storage server 300 is less than a predetermined threshold; and/or e percentage processor 305 CPU) usage on the storage server 300 is less than a predetermined threshold.
If the processor 205 determines that the storage server status is acceptable at step 1230, then the method 1200 proceeds to step 1232. At step 1232, the camera entry of the responsibility table found at step 1220 is marked as confirmed. Thus, the camera entry will not be modified and continuity is retained. This has the advantage of not needlessly moving responsibilities between storage servers. Following step 1232, the method 1200 790602 Final C:NrPortbl\SAF\PDM\615765_1 .DOC INO -23proceeds to step 1234, where a count rcount) for the second loop is incremented and Sthe method 1200 returns to step 1218.
If at step 1230, the storage server status is determined as not acceptable then the method 1200 proceeds to steps 1224 and 1228. In steps 1224 and 1228, the responsibility for the camera 120-124 is reassigned.
r At step 1224, the camera entry found at step 1220 is removed from the responsibility
\O
table. Then at step 1228, the processor 205 adds a new camera entry to the responsibility table in accordance with the method 1300 which will be described below. Following step 1228, the method 1200 proceeds to step 1234 where a count, rcount, for the second loop is incremented and the method 1200 returns to step 1218.
The method 1300 of adding a camera entry to a responsibility table, as executed at steps 1222 and 1228, will be described in detail below with reference to Fig. 13. The method 1300 may be implemented by one or more of the software modules 412 to 420 resident on the hard disk drive 210 and being controlled in its execution by the processor 205. The camera of the camera entry that is not marked confirmed, as determined at step 1220, is an input to the method 1200. The storage server status table is modified in the method 1300 because the storage server status table is a convenient place to maintain information about the number of cameras loading a storage server. However, the changes made to the storage server status table at steps 1222 or 1228 are temporary and will be discarded by the presiding server 200 at step 1004 of the method 1000 as described above.
At the first step 1312, the storage server status table of the storage server 300 corresponding to the camera 120-124 of the camera entry found in the responsibility table at step 1220, is scanned to find the storage server entry with the least number of cameras 120-124. In the example storage server status table 950 of Fig the camera entry with 790602 Final C:NrPortbl\SAF\PDM\615765_1 .DOC NO-24-
\O
the least number of cameras is the lowest value in the third column 903 and in this example Seither the row for "Storage Server 3" 907 or for "Storage Server 4" 908 can be selected.
SThe storage servers that are not available are ignored.
In step 1314, the value for the number of cameras in the storage server status table for the selected storage server entry is incremented. Incrementing this value avoids the C situation where a single least loaded storage server is made the sole recipient of all newly
INO
assigned or reassigned cameras 120-124 and becomes itself overloaded.
The method 1300 concludes at the next step 1316, where a new entry is appended to the responsibility table. The new entry assigns the selected storage server 300 with the camera 120-124 of the camera entry found in the responsibility table at step 1220 of the method 1200.
The methods 1200 and 1300 allow the assignment of new camera recording responsibilities to the storage servers 300 and the re-assignment of existing camera recording responsibilities to the storage servers 300. The described methods make use of a count of cameras 120-124 assigned to the storage servers 300A-300N as the basis for distributing the required camera assignments evenly over the storage servers 300A-300N.
The count of cameras 120-124 is used as a measure of the current load and a means to predict future load of a storage server 300. In alternative embodiments, other measures may be used to for determining the current load and predicting future load of the storage server 300, including the following: total target number of frames per second configured to be recorded by the storage server 300; 0 total number of frames per second actually recorded by the storage server 300; total number of frames per second received but not being recorded by the storage server 300 with out recording; 790602 Final C:\NrPortbl\SA F\PDM\615765 I.DOC ID
O
O
the percent of processor CPU) usage of the applications executing on the Sstorage server 300; O number of bytes of video data received; and/or number of bytes of video data recorded by the storage server 300.
5 Industrial Applicability It is apparent from the above that the arrangements described are applicable to the CN, computer and data processing industries).
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings.
790602_Final C:\NrPortbl\SAF\PDM\615765_ .DOC

Claims (15)

  1. 2. The method according to claim 1, wherein the storage servers are assigned to record the video data captured by the camera so that each of the plurality of storage servers is not overloaded.
  2. 3. The method according to claim 1, further comprising the step of distributing a recording schedule to each of the plurality of storage servers.
  3. 4. The method according to claim 1, wherein the status of one of the plurality of storage servers is determined based on availability of said one storage server. The method according to claim 1, wherein the status of one of the plurality of storage servers is determined based on percentage processor usage on said one storage server. 790602 Final C:\NrPonrbl\SAF\PDM\615765_1 .DOC -27-
  4. 6. The method according to claim 1, wherein the status of one of the plurality of storage 0 CI servers is determined based on number of cameras recording to said one storage server.
  5. 7. The method according to claim 1, wherein the status of one of the plurality of storage CI servers is determined based on number of frames of video data not being recorded by said one storage server.
  6. 8. The method according to claim 1, wherein the allocation of the storage servers to the camera is based on a priority assigned to the camera.
  7. 9. The method according to claim 1, wherein the assigning of the storage servers to the camera is based on total number of video data frames per second being recorded by each of the storage servers. The method according to claim 1, wherein the assigning of the storage servers to the camera is based on number of bytes of video data received by each of the storage servers.
  8. 11. The method according to claim 1, wherein the assigning of the storage servers is performed by a presiding server connected to the network.
  9. 12. The method according to claim 1, wherein if one of the assigned storage servers fails to record from the camera during recording then another one of the plurality of storage 790602 Final C:\NrPortbl\SAF\PDM\61 5765_1 .DOC ID-28- servers is assigned to record the video data captured by the camera depending on the status Sof each of the plurality of storage servers.
  10. 13. The method according to claim 1, wherein the assignment of the storage servers to ¢€3 record the video data captured by the camera is based on user input. IND
  11. 14. The method according to claim 1, wherein the assignment of the storage servers to record the video data captured by the camera is based on a user defined redundancy level.
  12. 15. The method according to claim 1, wherein one or more of the plurality of storage servers records video data from a plurality of cameras connected to the network.
  13. 16. A system for recording video data, said method comprising the steps of: at least one camera connected to a network for capturing the video data; a plurality of storage servers connected to the network for recording the video data; and a presiding server for determining a status for each of said plurality of storage servers, and for assigning two or more of said plurality of storage servers to record the video data captured by the camera depending on the status of each of the plurality of storage servers, wherein if one of the assigned storage servers fails to record from the camera then another one of the plurality of storage servers is assigned to record the video data captured by the camera depending on the status of each of the plurality of storage servers. 790602 Final C:NrPortb\ISAF\PDM\615765_1.DOC IN -29-
  14. 17. A computer readable medium, having a program recorded thereon, where the Sprogram is configured to make a computer execute a procedure to record video data i captured by a camera connected to a network, said program comprising: code for determining a status for each of a plurality of storage servers connected to the network; and C(N code for assigning two or more of the plurality of storage servers to record the video data captured by the camera depending on the status of each of the plurality of storage servers, wherein if one of the assigned storage servers fails to record from the camera then another one of the plurality of storage servers is assigned to record the video data captured by the camera depending on the status of each of the plurality of storage servers.
  15. 18. A method of recording video data captured by a camera connected to a network, said method being substantially as herein before described with reference to any one of the embodiments as that embodiment is shown in the accompanying drawings. DATED this Twentieth Day of December 2006 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant SPRUSON&FERGUSON 790602 Final C:\NrPortbl\SAF\PDM\615765_1 .DOC
AU2006252143A 2006-12-20 2006-12-20 High Reliability Video Recording System Abandoned AU2006252143A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2006252143A AU2006252143A1 (en) 2006-12-20 2006-12-20 High Reliability Video Recording System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2006252143A AU2006252143A1 (en) 2006-12-20 2006-12-20 High Reliability Video Recording System

Publications (1)

Publication Number Publication Date
AU2006252143A1 true AU2006252143A1 (en) 2008-07-10

Family

ID=39665863

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2006252143A Abandoned AU2006252143A1 (en) 2006-12-20 2006-12-20 High Reliability Video Recording System

Country Status (1)

Country Link
AU (1) AU2006252143A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843442A (en) * 2011-06-21 2012-12-26 安讯士有限公司 Method for configuring networked cameras
US11330341B1 (en) 2016-07-05 2022-05-10 BoxCast, LLC System, method, and protocol for transmission of video and audio data

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102843442A (en) * 2011-06-21 2012-12-26 安讯士有限公司 Method for configuring networked cameras
CN102843442B (en) * 2011-06-21 2015-05-27 安讯士有限公司 Method for configuring networked cameras
US11330341B1 (en) 2016-07-05 2022-05-10 BoxCast, LLC System, method, and protocol for transmission of video and audio data
US11483626B1 (en) 2016-07-05 2022-10-25 BoxCast, LLC Method and protocol for transmission of video and audio data

Similar Documents

Publication Publication Date Title
EP2359536B1 (en) Adaptive network content delivery system
US8612668B2 (en) Storage optimization system based on object size
US10204017B2 (en) Variable drive health determination and data placement
US5832523A (en) Archiving device and data file server using data file recorded in division over recording media
USRE45192E1 (en) System and method for storing user data
US7467143B2 (en) Storage operation management system
US9641638B2 (en) Application-guided bandwidth-managed caching
US10911796B2 (en) Dynamic quality adjustments for media transport
CN108259939B (en) New video push control method and device and server
US20060204229A1 (en) Video recording control system
US20180089780A1 (en) Server-side, variable drive health determination
US20130132504A1 (en) Adaptive network content delivery system
JP2004199853A (en) Method for reliably distributing digital data
JP2003533843A (en) How to improve bandwidth efficiency
JP4377899B2 (en) Resource management apparatus and program
CN102334092A (en) Storage system and control method thereof as well as program
CN102608923B (en) Control system and SOE device
KR20140107544A (en) Proportional quality of service based on client usage and system metircs
US9244719B2 (en) Batch processing system
CN101847392A (en) Image supply device, image feed system and image supply method
CN113938640A (en) Selective use of cameras in a distributed surveillance system
AU2006252143A1 (en) High Reliability Video Recording System
US7920178B2 (en) Image storage system
US8711240B2 (en) Data recording apparatus with recording control based on defect block and control method thereof
JP4347131B2 (en) Video distribution apparatus and method

Legal Events

Date Code Title Description
MK1 Application lapsed section 142(2)(a) - no request for examination in relevant period