The present invention relates generally to video processing, and more particularly to, detecting scene changes in video using a histogram of frame differences.
Scene change detection is used to detect a significant change in content between consecutive frames in a video sequence. For example, significant changes in content occur when a program switches to a commercial or another program, or switches to a different scene in the same program.
Accurate scene change detection may be used to improve the performance of different video processing algorithms. For example, it may be used in video enhancement algorithms to adjust certain parameters for different scene content. Scene change detection may also be used in video compression algorithms. For example, it may be used to determine when a new group of pictures has to be started or to anticipate bit rate changes.
A number of scene change detection techniques already exist. One technique take histograms of individual frames and then performs a comparison between the histograms of consecutive frames in order to detect a scene change. This technique works well in some situations. However, problems arise when the consecutive frames have similar pixel values in different positions. In this situation, the histograms of these two frames would be quite similar and thus would prevent a scene change from being detected.
Another technique uses coding information in order to detect a scene change. For example, this technique looks for an increase in a particular type of block in B-frames and P-frames in order to detect a scene change. This technique works well for B-frames and P-frames, however, it cannot be used for I-frames.
The present invention is directed to method of detecting a scene change in video. In one example, the method includes a difference being calculated between consecutive frames of the video producing a plurality of difference values. A histogram is taken of the difference values. A scene change is detected if a majority of the difference values in the histogram exceed a predetermined value.
In another example, the method includes determining if a frame of video is an I-frame. A scene change is detected based on a histogram of frame differences if the frame is an I-frame. Alternatively, a scene change is detected based on coding information if the frame is not an I-frame.
Referring now to the drawings were like reference numbers represent corresponding parts throughout:
The present invention is directed to a scene detection technique that may be used in any situation. According to the present invention, this technique uses the histogram of the differences between two frames in order to detect a scene change. Further, a strategy is also proposed to reduce the computational complexity of scene change detection for MPEG encoded video by exploiting coding information from the compressed bit-streams.
One example of a method for detecting a scene change in video according to the present invention is shown in
D({right arrow over (x)})=|(f({right arrow over (x)},n)−f({right arrow over (x)},n−1))| (1)
where
f({right arrow over (x)},n) is the pixel value of the frame n at the location {right arrow over (x)}, f({right arrow over (x)},n−1) is the pixel value of the previous frame n−1 at the same locations. As a result of step 2, a plurality of difference values are produced that are the magnitudes of the difference between corresponding pixel values in the frames.
According to the present invention, the difference calculated in step 2 may be for all of the pixel values in each of the frames. Alternatively, in order to reduce the number of computations required, the difference may be calculated for a selected portion of the frames. For example, the difference may be calculated for pixel values only in the center of the frames.
In step 4, a histogram of the difference values is taken. A histogram is a well known function for plotting the distribution of a particular variable. In this case, the distribution is defined as His(i):, which is the number of the difference values that equal a particular value i. As previously described, the difference values represent the magnitude of the difference between corresponding pixel values in the frames.
In step 6, a scene change is detected if a majority of the difference values in the histogram exceed a predetermined value. For the purpose of the discussion, a majority is defined as any number over fifty (50) percent. However, depending on the predetermined value selected, the majority of the difference values required to detect a scene change may preferably be greater than fifty (50) percent. For example, for a value of ten (10), it is preferable that sixty-three (63) percent of the difference values in the histogram exceed this value.
In order to perform step 6, it may be preferable to find a characteristic value Q, which satisfies the following condition:
where His(i) is the histogram value at i and n is the bit precision used by each frame of the video. T1 is a threshold, which in one example may be a value of 0.368. In this example, the characteristic value Q represents a particular difference value in the histogram where 36.8 percent of the difference values have a smaller value. Therefore, Q defines a predetermined range of the different values in the histogram.
An example of the characteristic value Q is shown in
As an example in
After finding the characteristic value Q, a scene change is detected if the following condition is met: Q>T2. Where T2 is a threshold value. In one example, the threshold value T2 may have a value of ten (10).
One example of a video device according to the present invention is shown in
As can be seen, the device includes a decoder 8 and a scene change detection unit 10. In one embodiment, the device of
During operation, the decoder will decode the incoming bit stream in order to produce decoded video frames. According to the present invention, the decoder may be a MPEG-1 decoder, MPEG-2 decoder, MPEG-4 decoder, H.26x decoder or another similar type. The scene change detection unit 10 will then look at the decoded video in order to determine if a scene change has occurred. If a scene change is detected in one of the video frames, the scene detection unit 10 produces a flag identifying which frame has a scene change.
According to the present invention, the scene change detection unit 10 may implement the method of
In view of the above, it may be desirable in some situations to implement a strategy to reduce the computational complexity and memory requirement for the scene change detection unit 10. In MPEG bitstreams, there are different types of frames such as an Intra-coded (I) frame, Predicted (P) frame and Bi-directional (B) frame. Depending on the frame type, it would be desirable to use a different technique to detect a scene change. For example, for P and B-frames coding information may be used, while for 1 frames the method of
A method of detecting a scene change implementing the above-described strategy is shown in
In step 12, if it is determined that a frame is an I-frame, then a scene change is detected for that particular frame based on a histogram of frame differences in step 14. Therefore, the scene change detection unit 10 will perform the method of
In step 12, if it is determined that a frame is not an I-frame, then a scene change is detected for that particular frame based on coding information in step 16. During operation, the decoder 8 will provide coding information to the scene detection unit 10. As previously described, the coding information includes information about the type of frames in the decoded video. The coding information will also include information about the type of macroblocks that make up a particular frame of video.
For example, if a scene change occurs in a P-frame, the number of Intra-coded macroblocks increases. Therefore, a scene change is detected based on the following criterion:
For example, if a scene change occurs in a B-frame, the number of backward-predicted macroblocks increases. Therefore, a scene change is detected based on the following criterion:
The video device will include other units (not shown) coupled to the outputs of the decoder 8 and scene change detection unit 10. These other units will utilize the flag produced by the scene change detection unit 10 in order to further process the video frames from the decoder 8. For example, a video processing algorithm using a motion-compensated filter may benefit from the scene change detection. During operation, the motion-compensated filtering must be turned off when a scene change occurs otherwise wrong results may result. The video processing algorithm will use the scene change flag produced by the scene change detection unit 10 in order to reset the motion compensated filtering operation.
While the present invention has been described above in terms of specific examples, it is to be understood that the invention is not intended to be confined or limited to the examples disclosed herein. Therefore, the present invention is intended to cover various structures and modifications thereof included within the spirit and scope of the appended claims.
Number | Date | Country | |
---|---|---|---|
Parent | 10109772 | Mar 2002 | US |
Child | 11259789 | Oct 2005 | US |