CONTROLLING AN IMAGE SERVER
FIELD OF THE INVENTION
[0001] The invention relates to image servers, especially to transmitting images by request from an image server to a user.
BACKGROUND OF THE INVENTION
[0002] An image server is a device connected to a data network that is typically a network server and has one or more cameras connected to it. An image server controls the cameras to produce images according to requests from a user and transmits the images to the user in response. The camera is arranged to produce images of the surrounding area, for instance, for monitoring purposes, and it can be directed to a desired site. Users typically transmit requests to the server through a telecommunications network, and the requests define the image that the user would like to receive. Traditionally, monitoring cameras controlled by an image server have been used for instance to transmit video images to a remote usage site. Systems of this type generally comprise several cameras used by one user.
[0003] During the last few years, while the Internet and other public data networks have become more common, a need has arisen to have image server systems, in which the images produced by one camera can be transmit- ted from the image server to several users. This requires a mechanism for managing control requests coming from several users. The server controls the camera to produce images according to the requests and transmits the images to the user. The user may for example request a single image one at a time or periodically, or if video images are required, several consecutive images. [0004] Known image server solutions are described in the following publications, for instance: JP 10,164,562; JP 2,001 ,157,105; JP 10,341 ,429; US 6,133,941 ; EP 845,904; JP 2,001 , 008,137, and US 5,521 ,631.
[0005] In the image server solutions of the prior art, a problem arises in a situation, in which several users make several, substantially simul- taneous image requests to the image server. The image server typically processes the image requests in the order of arrival. To produce the image according to the request and to transmit it to the user always causes a delay. Especially images transmitted over a wireless connection should typically be coded and compressed, which causes a further delay. Thus, if the image server re- ceives several nearly simultaneous image requests, this inevitably causes
considerable delays in image processing at least for some image requests. This is a significant drawback in the situation in particular, in which the user wants practically real-time video images from a specific camera.
BRIEF DESCRIPTION OF THE INVENTION [0006] It is thus an object of the present invention to develop a method and an apparatus implementing the method so as to solve the above- mentioned problems. The object of the invention is achieved by a method, image server and computer program that are characterized by what is stated in the independent claims. [0007] Preferred embodiments are set forth in the dependent claims.
[0008] The invention is based on the idea that the image server comprises a buffer memory, to which image files are stored that are produced in accordance with predefined parameters and also preferably have a time stamp disclosing the time of production attached to them. Then, when an image request is transmitted from the user terminal to the image server, said predefined parameters and a parameter defining the allowed maximum age of the image file are attached to the image request. Said predefined parameters of the image request are first compared with corresponding parameters of im- age files in the buffer memory, and if the buffer memory comprises an image file corresponding to the parameters defined in the image request, the parameter defining the allowed maximum age of the image file is then compared with the time stamp of the image file in question. If this time stamp shows the time of production of the image to be within the range of the allowed maximum age, the image file stored in the buffer memory is transmitted to the user terminal that made the request.
[0009] According to a preferred embodiment of the invention, the image request is transmitted to the camera only if either of the above- mentioned conditions is not met; if an image corresponding to the parameters of the image request cannot be found in the buffer memory or an image corresponding to the parameters of the image request is found in the buffer memory, but its time stamp shows that the time of production of the image is older than the parameter defining the maximum age allows.
[0010] The method and system of the invention provide the advan- tage that the use of the limited resources of the camera can be avoided in this
manner in a situation, in which the desired image file can be slightly older than real-time. At the same time, it is, however, preferably possible to minimize the delay in transmitting the desired image from the image server. The image request is preferably transmitted to the camera only if a desired image that is sufficiently new cannot be found in the buffer memory.
BRIEF DESCRIPTION OF THE FIGURES
[0011] The invention will now be described in greater detail by means of preferred embodiments and with reference to the attached drawings, in which Figure 1 is a block diagram of a typical image server system,
Figure 2 is a block diagram of a general structure of an image server, and
Figure 3 is a flow chart of the steps of the method of the invention.
DETAILED DESCRIPTION OF THE INVENTION [0012] Figure 1 is block diagram illustrating a typical image server system, to which the method of the invention can be applied. In Figure 1 , an image server 100 has two cameras 102, 104 connected to it. The cameras can be still-image cameras or video cameras known per se, the image information of which can be stored in digital format. The camera can thus also be an ana- logue camera, the image information of which is converted and stored into digital format in some other means in the image server. Further, the camera can be connected to the image server over either a wire connection or a wireless connection, and there may also be a separate telecommunications network between the camera and image server. User terminals 106, 108, 110 transmit to the image server 100 over a network 112 image requests, on the basis of which the image server directs the cameras 102, 104. The network 112 can be any telecommunications network known per se, such as a local area network LAN, wide are network WAN or the Internet. Further, the network 112 can be any wireless telecommunications network, such as a wireless local area net- work WLAN, a Bluetooth network or a mobile system, such as a GSM or UMTS network.
[0013] The cameras 102, 104 are arranged to produce images, and their panorama angle, alignment ratio and other corresponding parameters can be controlled by external commands issued by the image server. A control unit 114 controls the cameras 102, 104 according to the requests made by the us-
ers. An identification unit 116 manages the access rights of the cameras and performs user authentication. A transmitting and receiving unit 118 receives image requests transmitted by the users through the network 112 and correspondingly, transmits to the users the images produced by the cameras 102, 104 according to the image requests.
[0014] Correspondingly, a typical user terminal 110 also comprises a transmitting and receiving unit 120 that is arranged to transmit image requests to the image server through the network 112 and to receive images transmitted by the image server. The images transmitted by the image server are transmitted on from the receiving unit 120 to a display unit 122. Further, the user terminal 110 comprises input means 124, by means of which a user can define his image request that is transmitted on to the transmitting unit 120 for transmission on through the network 112 to the image server 100.
[0015] In the following, the structure of the image server 100 is de- scribed in greater detail with reference to Figure 2. In the block diagram of Figure 2, the image server 100 comprises a processing unit CPU 200 that performs various control operations of the image server. Further, the image server comprises a ROM memory 202 for storing various control programs executed in the processing unit. The processing unit 200 uses a RAM memory 204 as its workspace when executing said control programs. A camera interface 206 receives an image signal from the camera 102. A control interface 208 controls the panorama angle, alignment ratio and other parameters of the camera 102. Data transmission between the users accessing the network 112 and the image server 100 goes through a network interface 210. [0016] According to a preferred embodiment of the invention, the image server 100 also comprises a buffer memory 212 for buffering images produced by the cameras 102, 104. The method of the invention for processing the buffered images is described in more detail later on. The image server 100 can also comprise user interface means 214, such as a display and keyboard, for entering various control commands to the image server, especially to the processing unit 200. The above-mentioned units and components are connected to each other by means of a bus 216. With reference to Figure 1 , the control unit 114, identification unit 116, and transmitting and receiving unit 118 perform actions that are, in practice, executed as a program stored in the ROM memory 202 that the processing unit 200 executes in the RAM memory 204 reserved as its workspace.
[0017] In addition, the camera 102 comprises an image-producing unit 218 for feeding an image signal to the camera interface 206. Further, the camera 102 comprises a control unit 220 for making adjustments in the camera unit in accordance with control commands, such as the panorama angle, alignment ratio and corresponding parameters, received from the control interface 208 of the control unit 220.
[0018] Known image server systems have numerous procedures and protocols, according to which the image requests made by the users can be formed into image requests supported by the image server. An image re- quest transmitted from the user terminal 110 typically comprises the identifier of the desired camera, a user name and possibly a password, on the basis of which the identification unit 116 authenticates the user and checks his access rights to the camera in question. In addition, an image request comprises the control commands of the camera, such as the panorama angle and alignment ratio, on the basis of which the camera is adjusted to produce the desired image. Further, it is possible to define in an image request, whether the image is to be produced once, periodically or whether several consecutive images are required during a specific period of time, such as a video clip during 5 seconds. A video sequence can also be created in the server in such a manner that the server receives individual still images from a still-image camera at specific intervals and joins these into a video sequence that is transmitted to the user terminal. Thus, an image request can comprise numerous different parameters that direct the production of the image or images in the image server 100.
[0019] According to the invention, a new parameter is attached to the image request transmitted from the user terminal 110, i.e. the maximum age of the image that defines, how old an image can be transmitted to the user, if the other parameters of the image correspond to those defined in the image request. Further, the image server 100 comprises a buffer memory, to which the images produced by the cameras are stored temporarily in such a manner that when the image file is stored, a time stamp is attached to the image file to define the time instant when the image was produced. This typically differs from the storage time. The buffer memory comprises at least the latest produced image for each image request with different parameters.
[0020] Now, according to the invention, when an image request is transmitted from a user terminal to the image server 100, the parameters in the image request are checked and compared with the parameters of the buffered
images. If in the buffer memory an image file is found having parameters corresponding to those of the image request, the parameter defining the maximum age of the image in the image request is compared with the time stamp in the image file in question. If the time stamp shows that the time of production of the image is within the range of the allowed maximum age, the image file in question is transmitted directly from the buffer memory to the user terminal that made the request. Because the image request is not automatically transmitted to the camera, the limited resources of the camera are preferably not used in vain. At the same time, it is, however, possible to minimize the delay in trans- mitting the desired image from the image server.
[0021] The image request is transmitted to the camera only if either of the above-mentioned conditions is not met; in other words, if an image corresponding to the parameters of the image request cannot be found in the buffer memory or an image corresponding to the parameters of the image re- quest is found in the buffer memory, but its time stamp shows that the time of production of the image is older than the parameter defining the maximum age allows. The image request is then transmitted to the camera, which processes the image requests in the order of arrival. The produced image and the time stamp defining the time of production are stored into the buffer memory that typically observes the FIFO (First In, First Out) principle. When a new image according to specific parameters is then stored into the buffer memory, the oldest image having the same parameters is deleted from the memory. The buffer memory can be implemented in such a manner, for instance, that only one image having the same specific parameters is kept in the buffer at a time. This minimizes the need for buffer memory capacity. At the same time as the image server stores the produced image into the buffer memory, it also transmits the image to the user terminal that requested it.
[0022] This way, it is possible to advantageously reduce the load problems of an image server, which are typically caused by an essentially slow response of a distributed resource, i.e. camera, to a submitted request. If the submission frequency of image requests is high, the desired image is most often found in the image buffer and the image request need not be transmitted to the camera. The method is especially advantageous when used with wireless cameras, because a wireless transmission path between the camera and image server, and the image file compression typically required by wireless
data transmission often cause a considerable delay in producing the image and transmitting it to the image server.
[0023] According to a preferred embodiment of the invention, the user of the terminal can define the parameter defining the maximum age. Al- ternatively, the maximum age of the image file can also be a constant value specific to the terminal or image server, in which case image requests from a specific terminal or to a specific server always comprise the same value for the parameter defining the maximum age.
[0024] The image requests are typically standard requests, in other words, the user terminals connected to the image server often request images having the same parameters and at specific intervals. According to a preferred embodiment of the invention, if an image corresponding to the given conditions is not found in the buffer memory, the image requests are put in several queues in the camera in such a manner that a separate queue is formed for each different parameter combination, but the camera processes the requests in the order of arrival. A specific parameter combination with specific ranges represents one queue. The forming of a new queue can be indicated in the server as a flag that is raised in response to the fact that an image request with parameters differing from those already in queue is made to the image server. [0025] Then, when the camera produces an image according to the first request in the image request queue and it is stored in the buffer memory with a time stamp, it is possible to re-check, prior to producing the next image, the image requests in the queue and if this latest image corresponds in parameters and time stamp to a request in the queue, the image in question is transmitted from the buffer to the user terminal requesting it and the request can be deleted from the camera queue. On the other hand, the parameter combinations of each queue and their ranges can be formed in such a manner that it can be assumed that the image according to the service request first in the queue is also suitable for the other service requests in the same queue. The same image is then transmitted automatically to all the terminals that have made a service request and are in the same queue and the above comparison between parameters and time stamps can be left out.
[0026] Because the image requests are typically standard requests, it is possible that during a time, when there are no image requests in queue in the server or cameras, according to a preferred embodiment of the invention, the cameras produce the images that are most often requested and transfer
them to the buffer memory of the image server. This further increases the probability that an image file corresponding an image request is found directly in the buffer memory.
[0027] In the following, the method of the invention is described to a necessary extent with reference to the flow chart of Figure 3. The image server receives an image request transmitted by a user terminal (300). Next, the image server checks the parameters of said image request (302) and compares said parameters with the parameters of image files in the buffer memory (304). This comparison step is for checking, whether in the buffer memory, there is an image file with image parameters corresponding to the parameters in said image request. If such an image file with parameters corresponding to the parameters of the image request is found, the time stamp stored with said image file is next checked (306). If the time stamp shows that the image file in question is produced at a time that does not exceed the parameter value defining the maximum age in the image request, the image in question, which thus corresponds to the image request made by the user terminal, is transmitted to the user terminal (308).
[0028] However, if it is detected in the first comparison step (304) that an image file corresponding to the parameters of the image request is not found in the buffer memory, the image request is transmitted to the camera (310). This also occurs, if an image corresponding to the parameters of the image request is found in the image buffer, but its time stamp shows that the time of production of the image is older than the parameter defining the maximum age allows. In this case, too, the operation moves to a step, in which the image request of the user terminal is transmitted to the camera (310). The image according to the image request and produced by the camera is stored into the buffer memory in such a manner that a time stamp is attached to it indicating the time of production of the image (312). After this, the operation returns to the step, in which the image defined in the image request is transmitted to the user terminal in response to the image request made by the user terminal (308).
[0029] With reference to Figure 2, the above-mentioned actions can preferably be executed as a program stored in the ROM memory 202 and executed by the processing unit CPU 200 in the workspace reserved from the RAM memory 204. The program is arranged to receive through the network interface 210 image requests and to check the parameters of the image re-
quests and to compare the parameters with the image files and their time stamps in the buffer memory 212. If the desired image is found in the buffer memory 212, the program is arranged to transmit the image in question through the network interface 210 to the user terminal that made the request. Further, if the desired image is not found in the buffer memory or the time stamp shows that it is too old, the program is arranged to modify the parameters of the image request into such a format as can be transmitted to the camera over the control interface 208. Correspondingly, the program is arranged to store an image file of an image signal arriving over the camera interface 206 from the camera and the time stamp attached to it into the buffer memory 212. [0030] It is obvious to a person skilled in the art that while the technology advances, the basic idea of the invention can be implemented in many different ways. The invention and its embodiments are thus not restricted to the examples described above, but can vary within the scope of the claims.