This application claims priority from Indian application 1010/DEL/2012 titled “IDENTIFICATION AND ANALYSIS OF CADENCE PATTERN IN VIDEO” and filed on Feb. 4, 2012.
The embodiments herein relate to video analysis in Telecine and, more particularly, to identification of cadence pattern in video analysis.
With the advent of broadcast television, movie producers realized they needed more than live television programming. By turning to film-originated material, they would have access to the wealth of films made for the cinema in addition to recorded television programming on film that could be broadcasted over the airwaves at different times. Moving picture video is typically recorded or encoded at a pre-determined frame rate. For example, cinema films are typically recorded at a fixed rate of 24 frames per second (fps). Video as broadcast for television in accordance with the NTSC standard, on the other hand, is encoded at 30 fps. Video broadcast in accordance with European PAL or SECAM standards is encoded at 25 fps. However, the difference in frame rates between film generally (24 frames/s) and for television (30 or 25 frames/s) meant that simply playing a film onto a television camera would result in flickering when the film frame was changed in mid-field of the TV frame.
In recent decades, telecine which is primarily a film-to-videotape process, as opposed to film-to-air is employed. The most complex part of telecine is the synchronization of the mechanical film motion and the electronic video signal. Every time the video part of the telecine samples the light electronically, the film part of the telecine must have a frame in perfect registration and ready to photograph. This is relatively easy when the film is photographed at the same frame rate as the video camera will sample, but when this is not true, a sophisticated procedure is required to change frame rate.
Conversion between frame rates has created challenges. One common technique of converting frame rates involves dropping or repeating frames within a frame sequence. For example, a 3:2 pull down is used to convert 24 fps motion picture video to 30 fps or 60 fields per second. Each first frame spans 3 video fields, while each other second frame spans two fields. For instance, a cycle that starts with film frame B yields a 3:2 pattern: B-B-B-C-C-D-D-D-A-A or 3-2-3-2 or simply 3-2. In other words, there is no difference between the 2-3 and 3-2 patterns.
In video, the cadence pattern or telecine information is identified and detected Telecine information is useful for identifying system issues during media processing such as editing, transcoding and so on. It is important to correctly identify the cadence pattern in video even in case of noise, freeze frames, slow motion and complicated video sequences.
Existing methods for identification of cadence pattern and analysis are capable of detecting only one particular type of cadence pattern in the video. When the pattern sequences are complex or large there is every possibility of incorrect patterns or sequence being captured. In addition, there are no means to cross check such errors in identification of the sequence. In addition, most of the methods employed today are prone to noise, slow motion and have difficulty in eliminating freeze frames. Further, these methods are cumbersome in nature. Some of the methods may also require the system to be trained initially as a result making the overall process time consuming.
Due to the above stated reasons there is a need for generic algorithm to be able to detect any kind of cadence pattern in the video including complex sequences without errors. Further, the method must be efficient and free from initial training requirements.
In view of the foregoing, an embodiment herein provides a method for cadence sequence identification and analysis in a video stream. The method comprising encoding cadence signature for output data obtained from a state machine by a cadence signature generator module, analyzing the encoding cadence signature output from the cadence signature generator module by a data analyzer module and decoding the signature and identifying pull-down values for cadence pattern estimation by a cadence pattern estimator module.
Embodiments further disclose a system for cadence sequence identification and analysis in a video stream. The system provided with at least one means configured for encoding cadence signature for output data obtained from a state machine by a cadence signature generator module, analyzing the encoding cadence signature output from the cadence signature generator module by a data analyzer module and decoding the signature and identifying pull-down values for cadence pattern estimation by a cadence pattern estimator module.
These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings.
The embodiments herein will be better understood from the following detailed description with reference to the drawings, in which:
The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein may be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
The embodiments herein disclose a system and method of identification and analysis of cadence pattern in the video. Referring now to the drawings, and more particularly to
In one embodiment, the field relations (FRelation) are calculated between the fields Tn−1, Bn-1 and Tn, Bn. The Field relation are computed based on the previous frame (Tn−1, Bn-1) and the current frame (Tn, Bn). For example, if both the fields are same then the field relation are marked as NA, since it will not affect the state machine. In an example, the difference between the Tn−1, Bn−1, and Tn, Bn−1 shows that the fields of the previous frame (Tn-1, Bn-1) are strongly related as compared to the fields of the current frame (Tn, Bn−1), hence they are marked as related field as 1 (REL_FIELDS—1). In another example, the field are taken as Tn−1, Bn, Tn, Bn. It shows the difference between the previous frame and the current frame shows that the field of current frame (Tn, Bn) are strongly related as compared to fields of previous frame (Tn−1, Bn), hence they are marked as related field as 2 (REL_FIELDS—2).
, , =
analyzer module 105 the TDiff 401, BDiff 402 and FRelation403 are passed as input into the state machine module 106 which returns the field states Tstate 404 and Bstate 405 as output. The state machine produces one out of four states such as outside state, start state, in between state and end state for each field, as shown in Table 3.
In one embodiment, the outside state are determined when there is a difference between the top fields and the bottom fields and represented by the symbol |. The start state is represented by two symbols in which the first symbol represents that the top fields have difference and the bottom field is repeated. And the second symbol represents the top field is repeated and the bottom field have difference. If any of this state occurs then it is called as start state and marked as the beginning of the cadence pattern. If both the previous top and bottom fields are different then the state corresponds to in-between states and represented by the symbols/\ respectively. The difference between the outside state and the in between state is that, in between state comes after the start state and before the end state and outside lies outside the start state. In the case of end state the symbols denotes the bottom fields are repeating and the top fields has difference. The second symbol denotes the top fields are repeating and the bottom fields have difference. And third symbol=denotes both the top and bottom fields are repeated. The state machine computes the state of each frame based on the abovementioned calculations.
In one embodiment, the state machine determines the start state and end state by using the field relationship. For example, the first symbol of both the start and end state is taken and it infers that in both the symbols the bottom fields are repeated but the top fields have difference. In order to show the start state or the end state the state machine checks the field relationship. If the relationships turn out to be 1 (REL_FIELDS—1) then the state machine determines it is the start state and if the relationship turns out to be 2 (REL_FIELDS—2) then the state machine knows it is the end state.
Signature=(TState<<4)|BState
The above function determines the cadence signature from mathematical calculation of the TState multiplied by the 2 raised to the power of 4 and adds that with BState. The cadence signature is generated for each and every frame in the video. Below is the table 4 that shows all the encoded cadence signatures (as well as their field representation) that are generated from the field states generated by the state machine.
In an example, cadence signature 18 (L) indicates that 2 fields have been converted into 3 by repeating the bottom field. The cadence signature of 18 is generated in the cadence signature encoder module using the function as mentioned below
Signature=(1*2^4)+2=18 which is a start state
In another example, table 5 below shows the signatures generated for a 2:3 cadence sequence.
Below is an example that shows the principle frequency generated as result of Fourier analysis
Bottom Field
Signature
Repeating Pattern (Cadence Signature Pattern) 17 18 51 65 17
Principle Frequency 5
In the above example the principle frequency is determined by checking the sequence of five signatures (17 18 51 65 17) being repeated after every 5th signature.
Further, from the principle frequency the cadence info is generated by the cadence info generator module. In one embodiment, the list of cadence info can be depicted in the below table-5. List of cadence info are generated as the output from the cadence info generator module.
For example, by considering the above example (17 18 51 65 17) the cadence info of previous cadence pattern signature sequence will be null since it is the first cadence pattern, Current cadence pattern signature sequence will be 17 18 51 65 17, Frame location for start of current cadence pattern signature sequence will be frame number 1 and repetition count of current pattern will be as much as repetitions encountered. Further, when some new pattern is encountered, then for the new pattern the previous pattern is the current 17 18 51 65 17 pattern. Then the current pattern is again identified for the new pattern and the repetition count is noted. Each cadence info node is an independent entity and so, it can be independently used to detect cadence change in case of any change.
In an embodiment, Fourier analysis helps in accurate sequence identification and matching. Using Fourier analysis the principle frequency is generated. Further, employing this principle frequency a matching of the current pattern with the next pattern is done. As long as a match is obtained an increase is performed with repetition count on the current pattern. If no match is obtained, then principle frequency minus 1 up to the lowest count (i.e., 2) is checked for the match. If no results, then from principle frequency plus 1 to the maximum count is checked. If there are no matches yet, a single entry is added to the table. In this fashion, the matching patterns are identified. The method helps to analyze complex patterns and identifying matches for them.
TState=(Signature>>4)& 0xF
BState=Signature & 0xF
Then the TState and BState are given to the pull-down value calculator module 111 to find the actual pull-down value from which the actual cadence pattern is estimated. The pull-down value calculator module uses the field states for the estimation of the pull-down value. A state-machine is internally used for the generation of the sequence of pull-down value. The state machine handles the following cases shown in table-6 for the estimation of pull-down value.
The state machine applies some smart logic for handling of end sequences. Once the end state is encountered the pull-down value calculation is not over at that time. The algorithm checks the end-sequence pull-down value calculator in calculating the pull-down value for the end sequence. The algorithm employs the look-up table-7 in calculating the pull-down value for the end sequence.
The end-sequence pull-down calculator works on both previous as well as current pull down value as opposed to normal pull-down value calculator which works only on the current pull down value. The end-sequence pull down calculator is used once the end sequence is encountered and it keeps on working until a non-end sequence arrives. Table-8 below shows the end sequence pull-down value calculator. Table-6 and Table-7 are used for decoding the cadence signature to get actual cadence pattern.
In an embodiment, considering the example of decoding 17, 18, 51, 65, 17. Here the start 17 is divided 2^4 the remainder is 1 which indicates B state and the quotient is 1 which stands for the Tstate. Referring to the table 3 and tables 6 and 7 the pull down value sequence is obtained. For the next number 18 the Bstate is 2 and Tstate is 1, for 51 Bstate is 3 and Tstate is 3 and for 65 Bstate is 1 and Tstate is 4. Using the above computations and tables 3, 6 and 7 we obtain the sequence to be 2:3:2:3 (i.e., 2:3).
The overall computing environment can be composed of multiple homogeneous and/or heterogeneous cores, multiple GPUs of different kinds, special media and other accelerators. The processing unit is responsible for processing the instructions of the algorithm. The processing unit receives commands from the control unit in order to perform its processing. Further, any logical and arithmetic operations involved in the execution of the instructions are computed with the help of the ALU. Further, the plurality of process units may be located on a single chip or over multiple chips.
The instructions and codes required for the implementation are stored in either the memory unit or the storage or both. At the time of execution, the instructions may be fetched from the corresponding memory and/or storage, and executed by the processing unit.
In case of any hardware implementations various networking devices or external I/O devices may be connected to the computing environment to support the implementation through the networking unit and the I/O device unit.
Advantages
Bifurcation of Freeze Frame Sequences
With this method, the freeze frame sequences may be easily bifurcated from real Telecined sequences for example, 4-4 pattern-induced sequences. This is so because of the different encoded cadence pattern signatures sequence as identified for Telecined and freezed sequences (Signature for freeze sequence=68-68- . . . , Signature of 4-4 sequence=68-17-68-17- . . . ).
Detection of Large Cadence Patterns
A normal pattern detection algorithm would have detected the pattern, 2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-4, as 2-2 pattern with a break after 12 repetitions. But since the application uses Fourier transform to detect the principle frequency of the repetition, the algorithm can easily detect large patterns as well.
Detection of Complex Patterns
The method uses the state machine to generate the state of each field belonging to a frame depending only on the fields in the previous and current frames, the application may be used for the detection of even complex patterns.
No Learning is Required by the System
The method uses the current state of field for generation of cadence signatures and therefore no learning is required by the system.
Implementation of a Generic Algorithm
This method deals with the implementation of a generic algorithm, so, the algorithm has not been specialized for detection of only a few particular cadence pattern. It can be used in detection of any cadence pattern present with-in the stream.
The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the network elements. The network elements shown in
The embodiment disclosed herein specifies a system for identifications and analysis of cadence pattern in the video. The mechanism allows identifying and analyzing cadence pattern providing a system thereof. Therefore, it is understood that the scope of the protection is extended to such a program and in addition to a computer readable means having a message therein, such computer readable storage means contain program code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The method is implemented in a preferred embodiment through or together with a software program written in e.g. Very high speed integrated circuit Hardware Description Language (VHDL) another programming language, or implemented by one or more VHDL or several software modules being executed on at least one hardware device. The hardware device can be any kind of device which can be programmed including e.g. any kind of computer like a server or a personal computer, or the like, or any combination thereof, e.g. one processor and two FPGAs. The device may also include means which could be e.g. hardware means like e.g. an ASIC, or a combination of hardware and software means, e.g. an ASIC and an FPGA, or at least one microprocessor and at least one memory with software modules located therein. Thus, the means are at least one hardware means and/or at least one software means. The method embodiments described herein could be implemented in pure hardware or partly in hardware and partly in software. The device may also include only software means. Alternatively, the application may be implemented on different hardware devices, e.g. using a plurality of CPUs.
The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the claims as described herein.
Number | Date | Country | Kind |
---|---|---|---|
1010/DEL/2012 | Apr 2012 | IN | national |
Number | Name | Date | Kind |
---|---|---|---|
20050168634 | Wyman et al. | Aug 2005 | A1 |
20070052846 | Adams | Mar 2007 | A1 |
20080062308 | Zhai et al. | Mar 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20130259392 A1 | Oct 2013 | US |