Abstract:
The present invention relates generally to video communication systems, and more specifically to a method and device for determining a degree of animation of a graphical overlay for a video stream based on a degree of movement in the video stream.

Description:
FIELD OF INVENTION 
     The present invention relates generally to video communication systems, and more specifically to a method and device for inserting an animated graphical overlay in a video stream. 
     BACKGROUND 
     Digital video systems generally communicate a sequence of digital images from a source, such as a camera, to a destination, such as a display. The communication can be directly from a camera to a live display or the communication can be time delayed by storing the video and displaying it at a later time. The digital images may be compressed or communicated in their native format. 
     Various system failures within a digital video system may cause the sequence of images to stop, or to lock-up, resulting in a frame freeze condition. For example, a communications fault between the camera capturing a live video stream and the display showing the live video stream may cause such freeze condition. In some critical applications, it is important for an operator to know quickly that the video system has failed. This may be especially true where a static image on the operator&#39;s display may cause the operator to erroneously conclude that scene at the source is simply not changing, when in fact the video system is not operating properly. Some examples of critical applications are security monitoring, medical monitoring, military surveillance, navigation, or manufacturing system tracking. 
     U.S. Pat. No. 8,165,226 (The Boeing Company) allegedly solves this problem by placing a code into each frame of the video stream. The code counts sequentially from one frame to the next and is embedded into a pixel of each frame. Verification at the destination, or display, of the changing code within the frames of the video stream can confirm that the video stream is not in a frame freeze fault condition prior to display. If a fault condition is detected by the code verification process, an operator can be made aware of the fault. However, such a system is complex and requires that the display is connected to a processor running the code verification process. 
     SUMMARY 
     In view of the above, an objective of the invention is to solve or at least reduce one or several of the drawbacks discussed above. Generally, the above objective is achieved by the attached independent patent claims. 
     According to a first aspect, the present invention is realized by a method for inserting a graphical overlay on a video stream during a time period of a video stream, comprising the steps of: estimating a degree of motion of the video stream during the time period of the video stream, determining a degree of animation of the graphical overlay for said time period of the video stream based on the determined degree of motion, inserting the graphical overlay on the video stream during the time period of the video stream. At least a first and a second degree of animation can be determined, wherein the first degree of animation is higher compared to the second degree of animation, wherein the first degree of animation is based on an estimated degree of motion below a threshold and wherein the second degree of animation is based on an estimated degree of motion above the threshold. 
     By the term “a time period of a video stream” should, in the context of present specification, be understood at least one video frame of the video stream. 
     The graphical overlay may comprise any type of graphical object, such as a logotype or a representation of an hour-glass. 
     The degree of motion may be estimated by any suitable video motion detection (VIVID) algorithm. VIVID is a way of defining activity in a scene by analyzing image data and differences in a series of images. In its simplest form, the VIVID may be performed by comparing the values of the pixel in one image with the values of the corresponding pixels in a preceding image and count the number of pixels that have changed between the two images. Consequently, the larger the difference between the two images is the higher will the degree of motion be. The estimation of the degree of motion may be performed by analyzing a preceding time period of the video stream (e.g. the last second) and assume that the degree of motion for the current time segment of the video stream is the same. 
     The present invention is based upon the realization that by inserting a graphical overlay having a degree of animation which is based on the degree of motion of the video stream on which the graphical overlay is placed, an viewer of the video stream can easily see if the scene depicted by the video stream is simply not changing, since in this case the graphical overlay will be animated event though the rest of the image is still, or if the video stream is in a frame freeze condition, since in this case the graphical overlay also will be freezed. 
     In other words, since the degree of animation is determined such that a lower degree of motion, e.g. below the threshold, will result in a higher degree of animation, and a higher degree of motion, e.g. above the threshold, will result in a lower degree of animation, a scene which is not changing will result in that the graphical overlay will have a higher degree of animation compared to if the scene is indeed moving. 
     By providing a method that is performed on a time period of the video stream, a more flexible way of determining the degree of animation of the graphical overlay is achieved. The degree of animation may thus be independently assignable for each time period of the video stream. 
     In other words, the degree of animation of the graphical overlay may be determined for a time period of the video stream, for example 1/30 second (one frame), 1 second, 10 seconds, 1 minute etc. When the degree of animation is determined, it may not yet be known for how long time period this degree of animation will apply. The length of the time period may be based on e.g. properties of the video stream, or a threshold number of frames. 
     Moreover, by indicating movement, or lack of movement, in the video stream by the degree of animation of the graphical overlay, a reduced complexity of a client displaying the video stream may be achieved since the client only have to display the video stream in an ordinary way and still make the viewer aware of a fault condition due to a frame freeze condition of the video stream. 
     According to some embodiments, an increased degree of motion corresponds to a decreased degree of animation. This may be advantageous since a video stream with a high degree of motion requires a higher bitrate for transmitting an encoded bitstream comprising the time period of the video stream. Thus, the increase in the bitrate due to the movement of the scene depicted by the video stream may be neutralized by reducing the degree of animation of the graphical overlay. Moreover, by decreasing the animation of the graphical overlay when the scene moves, the attention of the viewer of the video stream including the graphical overlay may advantageously be directed towards the actual movement of the scene and not towards the graphical overlay. 
     According to some embodiments, if the degree of motion is exceeding a threshold value, the degree of animation of the graphical overlay is determined to be zero. This may further ensure that the attention of the viewer of the video stream including the graphical overlay is directed towards the actual movement of the scene and not towards the graphical overlay. Moreover, the bitrate required for the transmission of the encoded bitstream comprising the time period of the video stream and the graphical overlay may be kept at a reasonable level. 
     According to some embodiments, a decreased degree of motion corresponds to an increased degree of animation. According to some embodiments, the degree of animation of the graphical overlay may increase up to a threshold degree of animation. 
     According to some embodiments, the method further comprises the steps of: encoding the time period of the video stream and the graphical overlay into a single encoded bit stream, and transmitting the single encoded bit stream. 
     According to some embodiments, the video stream is a live video stream. A frame freeze of a live video stream may be especially disadvantageous since a viewer then may miss important incidents that occur in the scene, e.g. a start of a fire or a burglary. By using an animated graphical overlay according to the above, such a frame freeze condition may be quickly noticed and taken care of. 
     According to some embodiments, the method further comprises the step of: determining a start frame of the time period of the video stream by at least one of: calculating a number of frames since a start frame of a preceding time period of the video stream for which the degree of animation of the graphical overlay was determined, and determining if the calculated number of frames is larger than a threshold value; receiving a pan, tilt and/or zoom (PZT) signal from a PTZ video camera acquiring the video stream; and/or determining a degree of difference between a current frame and a frame of a preceding time period of the video stream for which the degree of animation was determined by performing a block-matching operation between the current frame and the frame of the preceding time period and determining if the degree of difference is larger than a threshold value. 
     By only determining the degree of animation of the graphical overlay after at least one of the above conditions have been met, the degree of animation of the graphical overlay may be determined at advantageous moments. For example, when a PZT signal is received, the depicted scene in the video stream is probably changed and an adjustment of the degree of animation of the graphical overlay may be needed. 
     Moreover, by only determining a new degree of animation if the scene in a current frame in the video stream is noticeably different from the scene depicted in the preceding time period where the degree of animation was determined, unnecessary determinations, e.g. adjustments, of the degree of animation may be avoided. Consequently a reduced computational complexity can be achieved. 
     Furthermore, by not determining a new degree of animation until a certain number of frames has passed since the last determination, unnecessary adjustment of the degree of animation may be avoided. Consequently a reduced computational complexity can be achieved. 
     According to some embodiments, the step of estimating the degree of motion for the time period of the video stream is performed using at least one of: a subset of data of the time period of the video stream, and a subset of data of a preceding time period of the video stream. 
     By the term “subset of data” should, in the context of present specification, be understood that according to some embodiment, only a sub-set of the frames comprised in the corresponding time period is used for the estimation, and/or that only a part of each frame is used when estimating the degree of motion. This may reduce the computational complexity of the estimation, and further also reduce the time required for the estimation. 
     In a second aspect, the present invention provides a computer program product comprising a computer-readable storage medium with instructions adapted to carry out the method according to the first aspect when executed by a device having processing capability. 
     In a third aspect, the present invention provides a video stream processing device comprising: a motion determining module configured to estimate a degree of motion for a video stream during a time period of the video stream, an animation determining module configured to determine a degree of animation of the graphical overlay for said time period of the video stream based on the determined degree of motion, a graphical overlay inserting module configured to insert the graphical overlay on the video stream during the time period of the video stream. 
     The animation determining module is configured to determine at least a first and a second degree of animation, wherein the first degree of animation is higher compared to the second degree of animation, wherein the first degree of animation is based on an estimated degree of motion below a threshold and wherein the second degree of animation is based on an estimated degree of motion above the threshold 
     The video processing device may advantageously be a part of a digital video camera, wherein the time period of the video stream is acquired by the digital video camera. This reduces the need of further electronic devices connected to the video camera and is e.g. advantageous for assembling reasons and for reducing the required space for mounting the video processing device and the camera. 
     It should be noted that the video stream processing device may be configured for performing any of the embodiments of the first aspect described above. 
     In a fourth aspect, the present invention provides a system comprising: a video stream processing device comprising: a motion determining module configured to estimate a degree of motion for a video stream during a time period of the video stream, an animation determining module configured to determine a degree of animation of the graphical overlay for said time period of the video stream based on the determined degree of motion, and a graphical overlay inserting module configured to insert the graphical overlay on the video stream during the time period of the video stream. The animation determining module is configured to determine at least a first and a second degree of animation, wherein the first degree of animation is higher compared to the second degree of animation, wherein the first degree of animation is based on an estimated degree of motion below a threshold and wherein the second degree of animation is based on an estimated degree of motion above the threshold 
     The system further comprises an encoder configured to encode the time period of the video stream and the graphical overlay into a single encoded bit stream, a first digital network module configured to transmit the single encoded bit stream via digital network, a second digital network module configured to receive the single encoded bitstream via the digital network, and a decoder configured to decode the single encoded bitstream into a time period of a video stream comprising the graphical overlay. 
     The system further comprises a client comprising a display configured to display the time period of the video stream. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above, as well as additional objects, features and advantages of the present invention, will be better understood through the following illustrative and non-limiting detailed description of embodiments of the present invention, with reference to the appended drawings, where the same reference numerals will be used for similar elements, wherein: 
         FIG. 1  shows by way of example an unchanging scene from a video stream onto which an animated graphical overlay is inserted, 
         FIG. 2  shows by way of example that the animation of the graphical overlay is stopped as response to an increased degree of motion in the scene from the video stream, 
         FIG. 3  describes by way of example a method for inserting a graphical overlay on a video stream during a time period of a video stream, 
         FIG. 4  schematically describes a video stream processing device, 
         FIG. 5  schematically describes a system including the video stream processing device of  FIG. 4  and a display for displaying the video stream including the graphical overlay, and 
         FIG. 6  shows the system of  FIG. 5  in action. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       FIGS. 1-2  show snapshots of a time period of a video stream, along with a graphical overlay  102  having different degrees of animation  104 , wherein the degree of animation  104  of the graphical overlay  102  for said time period of the video stream is based on a determined degree of motion of the scene depicted in respective figure. 
       FIG. 1  shows a typical scene which is depicted in a video stream acquired by a camera, for example a monitoring camera. Onto this scene, a graphical overlay  102  is placed. The graphical overlay  102  is in this case a logotype but other types of graphical overlays, such as a representation of a clock or a flag, are equally possible. The degree of motion in the scene in  FIG. 1  is low, which means that no major movements take place. The scene comprises a tree which may move a little, but such small movements may be difficult to notice for a viewer of the video stream. For this reason, a degree of animation  104  of the graphical overlay  102  is determined to be above zero, e.g. such that the graphical overlay  102  will rotate, move, spin or any other type of animation, to inform the viewer that the video stream is not in a frame freeze condition. 
     In  FIG. 2 , a plane  202  is flying by, and this means that the degree of motion in the scene is increased and thus more noticeable for a viewer of the video stream. For this reasons, the degree of animation of the graphical overlay  102  is determined to be zero. The viewer no longer needs to see a graphical overlay  102  that moves around in order to determine that the video stream is not in a frame freeze condition. Moreover, when movement takes place in the scene, it is advantageous that the attention of the viewer is directed towards the movement and not towards an animated logotype  102 . Moreover, for most video encoding methods, such as H.264, H.265, MPEG 1, MPEG 2, MPEG 4, a video stream with a lot of motion can be less compressed compared to a video stream with low or no motion. Consequently, the required bitrate for transmitting an encoded bitstream of a video stream with motion is increased. By reducing the degree of animation for the graphical overlay  102  in response to an increased degree of motion in the video stream, the increase in the bitrate due to the movement in the video stream may be neutralized. It should be noted that according to some embodiment, the degree of animation of the graphical overlay  102  is not determined to be zero, but only reduced, compared to degree of animation  104  of the graphical overlay  102  in  FIG. 1 . When the plane  202  has flied out of the scene depicted by the video stream, the degree of motion in the video stream may yet again decrease. This decreased degree of motion may then correspond to an increased degree of animation of the graphical overlay  102 . 
       FIG. 3  describe a method for inserting a graphical overlay on a video stream during a time period of a video stream. 
     The method starts off by estimating S 302  a degree of motion, using any suitable VIVID algorithm, of the video stream during the time period of the video stream. 
     Based on the estimated degree of motion, the degree of animation of the graphical overlay for said time period of the video stream is determined S 304 . According to some embodiments, the degree of animation is determined by selecting between just two values, either zero (no degree of animation), or X, X being any suitable degree of animation above zero which e.g. means that the graphical overlay will rotate, spin or move. According to other embodiments, the degree of animation is determined by mapping the degree of motion in the video stream against a continuous function to determine the degree of animation. 
     When the degree of animation has been determined, the overlay is inserted S 306  on the video stream during the time period of the video stream. This means that for each frame in the video stream during the time period of the video stream, the graphical overlay is rotated, spun, or moved according to an animation scheme and according to the determined degree of animation (which may be zero which means that no rotation, spin, or moving occur) and then inserted on the frame. 
     According to some embodiments, the method further comprises the steps of encoding S 308  the time period of the video stream and the graphical overlay into a single encoded bitstream, and transmitting S 310  the single encoded bitstream. 
     Also, according to some embodiments, after the graphical overlay has been inserted on the video stream, and possibly at the same time as the video stream and the graphical overlay is encoded S 308  into a single encoded bitstream, the method comprises the step of determining S 301  a start frame of the next time period of the video stream, i.e. determining when a degree of animation should be determined again. This is done by checking if at least one of the following conditions has been met: calculating a number of frames since a start frame of a preceding time period of the video stream for which the degree of animation of the graphical overlay was determined, and determining if the calculated number of frames is larger than a threshold value; has a pan, tilt and/or zoom signal from a PTZ video camera acquiring the video stream been received; and/or determining a degree of difference between a current frame and a frame of a preceding time period of the video stream for which the degree of animation was determined by performing a block-matching operation between the current frame and the frame of the preceding time period and determining if the degree of difference is larger than a threshold value. 
     That is, if a certain number of frames in the video stream have passed since the last time the degree of animation was determined, and/or if a PTZ signal has been received, and/or if the content of the frames in the video stream has changed to a certain extent, the steps S 302 , S 304  and S 306  are performed again in order to possibly adjust the degree of animation of the graphical overlay. 
       FIG. 4  describes a video stream processing device  400 . The video stream processing device comprises a motion determining module  402  configured to estimate a degree of motion of the video stream during the time period of a video stream. Moreover, the video stream processing device comprises an animation determining module  404  configured to determine a degree of animation of the graphical overlay for said time period of the video stream based on the determined degree of motion. The animation determining module  404  is configured to determine at least a first and a second degree of animation, wherein the first degree of animation is higher compared to the second degree of animation, wherein the first degree of animation is based on an estimated degree of motion below a threshold and wherein the second degree of animation is based on an estimated degree of motion above the threshold. As clearly described above, the animation determining module  404  may be configured for determining more than two degrees of animations. Further, the video stream processing device comprises a graphical overlay inserting module  406  configured to insert the graphical overlay on the video stream during the time period of the video stream. The motion determining module  402 , the animation determining module  404  and the graphical overlay inserting module  406  may be implemented in software and executed by at least one processor in the video stream processing device  400 , for example by a central processing unit (CPU) and/or a graphical processing unit (GPU) of the video stream processing device  400 . 
       FIG. 5  describes a video system  500  comprising the video stream processing device  400  described in  FIG. 4 . The time period of the video stream  513  and the graphical overlay  102  is transmitted from the video processing device  400  to an encoder  502  configured to encode the time period of the video stream  513  and the graphical overlay  102  into a single encoded bitstream  514 . The encoder may be implemented in software and executed by a processor. It should be noted that the encoder may be part of the video stream processing device  400  or implemented in a separate device. The single encoded bitstream  514  is then transmitted to a first digital network module  504  configured to transmit the single encoded bitstream  514  via digital network  506 . The digital network module  504  may be part of the video stream processing device  400  or the encoder  502  or implemented in a separate device. 
     The single encoded bitstream  514  is received by a second digital network module  508  via the digital network  506 . A decoder  510  is configured to decode the single encoded bitstream into a time period of a video stream  514  comprising the graphical overlay. The system further comprises a client  511  which comprises a display  512  configured to display the time period of the video stream comprising the graphical overlay. According to embodiments, the client  511  comprises the digital network module  508  and the decoder  510 . The client may for example be a computer, a computer screen, a tablet or a Smartphone. 
       FIG. 6  describe the system  500  in action. The video processing device  400 , and the digital network module (not shown) and the encoder (not shown), are parts of a digital video camera  604  which acquires a video stream of a scene  602 . The single encoded bitstream  514  is transmitted, via the digital network module and the digital network  506 , to a client  511 . The client comprises a display  512  and further a decoder (not shown) and a digital network module (not shown). 
     The displayed video stream comprises a graphical overlay  102  which in this particular example has a degree of animation  104  of above zero since the degree of motion in the scene  602  is low, which means that no major movements take place. As discussed above, due to the animated graphical overlay  102 , the viewer of the video stream as displayed in the client  511  can rely on that the video stream is not in a frame freeze condition. 
     It will be appreciated that a person skilled in the art can modify the above-described embodiments in many ways and still use the advantages of the invention as shown in the embodiments above. Thus, the invention should not be limited to the shown embodiments but should only be defined by the appended claims Additionally, as the skilled person understands, the shown embodiments may be combined.