The present disclosure relates generally to video processing, and more particularly to a method and system of encoding video data.
Encoding of digital video data is generally performed in order to compress the amount of data needed to represent a video stream. It is known in the art to encode a frame one set of pixels at a time. For example, each macroblock of a frame can be encoded by comparing the macroblock's pixels to the pixels of other macroblocks of a frame that has been previously displayed, or decoded. Once a set of pixels in the previous frame that corresponds closely to the set of pixels being encoded is found, a motion vector pointing to that set of pixels is identified. Once a motion vector to the set of pixels is identified, any information difference between the two sets of pixels can be quantified and efficiently compressed.
Known methods of encoding will correlate the set of pixels being encoded to sets of pixels in the previous frame or a portion of the previous frame until a correlation threshold is met. Once the correlation threshold is met, it is known that a pixel set in a previous frame that corresponds sufficiently close to the pixel set being encoded has been found. Due to the large amount of data associated with video streams, and video frames, the encoding process can be a very time-consuming process. Therefore, a system or method capable of more efficiently encoding pixels sets would be useful.
In accordance with the specific embodiment of the present disclosure, a first window is selected in a reference frame of video data. The first window contains one or more pixel sets, each that are to be correlated with a pixel set being encoded to determine a correlation factor. In addition, a first threshold value is determined for the first search window. The first threshold value is the value to which correlation factors are compared. For example, if a correlation factor between a specific pixel set of the first search window and the pixel set being encoded meets the first threshold value, a successful match between the two pixel sets has been found, and a corresponding motion vector can be assigned to the pixel set being encoded.
If none of the pixel sets within the first window meet the first threshold value, a second search window within the first frame is selected. A second threshold value different than the first threshold value, is determined for the second search window. Typically, the second threshold value will be less stringent than the first threshold value. The correlation factors for the pixel sets of the second search window that are correlated to the pixel set being encoded are compared to the second threshold value. By using multiple search windows with varying threshold values, a more efficient encoding process can be obtained. For example, by setting the first search window to be relatively small, a faster match can be expected while maintaining a high correlation level. This provides a decoder system a mechanism to set a trade off between processing power of an encode process, and the desired quality of the encode process.
At step 201 a first search window size and location is determined. For example, referring to
It will be appreciated that the location of the first search window is generally be based upon a predicted motion vector. It will be appreciated that there are many method of predicting motion vectors, and how the initial location of the first search window is determined can be determined by a variety of methods.
At step 202 of
At step 203, a search window pixel set is determined. With respect to
At step 204, a correlation factor is determined between the pixel set being encoded and the search window pixel set. The correlation factor can be determined using any of a variety of correlation techniques. Such techniques can be as simple as subtracting one pixel set from the other to determine a difference between the pixel sets. Other techniques can be more complicated. For example, where the pixel set information represents spatial data, the correlation technique can perform a mathematical transform to convert the data to non-spatial pixel set data. For example, sub-sampling techniques and/or techniques that operate on frequency domain data can be used. Furthermore, it will be appreciated, that each application of the step 204, in the loop formed by steps 204-205-211-210, can apply the same correlation technique or different correlation techniques. For example, the first search window location can use a different correlation technique than a subsequent search window.
At step 205, a determination is made whether or not the correlation factor meets the correlation threshold identified in step 202. If the correlation factor does meet the correlation threshold the flow proceeds to step 206 where a motion vector is used corresponding to the search window pixel set. If at step 205 the correlation factor does not meet the correlation threshold, the flow proceeds to step 211. Note that in an embodiment where the current window is to be the last window searched, the correlation threshold can be set so that it will never be met. This would allow the pixel set with the best correlation factor to be selected at step 221.
At step 211 a determination is made whether or not more search window pixel sets exist in the current search window. If so, the flow proceeds to step 210, otherwise the flow proceeds to step 209.
At step 210, a next search window pixel set is determined within the current window. Once the next search window pixel set is determined the flow proceeds to step 204. A loop including steps 204, 205, 211, and 210 continues until all of the search window pixel sets within the current window have been correlated to the pixel set being encoded, or until a successful correlation has occurred.
When no more search window pixel sets exist in the current search window the flow proceeds from step 211 to step 209. At step 209, a determination is made whether or not more search windows are to be identified. If not, the flow proceeds from step 209 to step 221 where the method of
At step 208, a next search window size and location is determined. Referring to
Step 207, a correlation threshold is set for the next search window 112. Again, with reference to
At step 203, a new search window pixel set is identified. It will be appreciated that where the first search window 111 is a subset of the new search window 112, the correlation factors associated with the pixel sets of the first search window can be maintained, without re-correlating, and compared to the new threshold value. By saving the correlation factors for the first search window only the search window pixel sets that are unique to the second search window 112 would have to be correlated, thereby saving processing time.
Again in the manner previously described, the steps 204, 205, 211, and 210 will be repeated until either all of the search window pixel sets have been correlated against the pixel set being encoded, or a successful pixel set correlation has occurred.
In the manner described, a plurality of search windows, i.e., search windows 111, 112, and 113, can each be searched for pixels sets meeting different correlation threshold values. In this manner, tradeoffs between picture quality and the amount of processing time expected to be potentially spent can be dynamically maintained. It will be appreciated, that this is an advantage over the prior art, which would identify a single window and a single threshold value.
In the preceding detailed description of the embodiments, reference has been made to the accompanying drawings which for a part thereof, and in which is shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and logical, mechanical and electrical changes may be made without departing from the spirit or scope of the present disclosure. To avoid detail not necessary to enable those skilled in the art to practice the disclosure, the description may omit certain information known to those skilled in the art. Furthermore, many other varied embodiments that incorporate the teaching of the disclosure may be easily constructed by those skilled in the art. Accordingly, the present disclosure is not intended to be limited to the specific form set forth herein, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents, as can be reasonably included within the spirit and scope of the disclosure. The preceding detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present disclosure is defined only by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4866395 | Hosteller | Sep 1989 | A |
5027203 | Samad et al. | Jun 1991 | A |
5093847 | Cheng | Mar 1992 | A |
5115812 | Sano et al. | May 1992 | A |
5162907 | Keating et al. | Nov 1992 | A |
5253056 | Puri | Oct 1993 | A |
5475434 | Kim | Dec 1995 | A |
5557341 | Weiss et al. | Sep 1996 | A |
5563950 | Easter et al. | Oct 1996 | A |
5602589 | Vishwanath et al. | Feb 1997 | A |
5635985 | Boyce et al. | Jun 1997 | A |
5644361 | Ran et al. | Jul 1997 | A |
5652749 | Davenport et al. | Jul 1997 | A |
5732391 | Fiocca | Mar 1998 | A |
5737020 | Hall et al. | Apr 1998 | A |
5740028 | Sugiyama et al. | Apr 1998 | A |
5844545 | Suzuki et al. | Dec 1998 | A |
5850262 | Ibenthal et al. | Dec 1998 | A |
5850443 | Van Oorschot et al. | Dec 1998 | A |
5872604 | Ogura | Feb 1999 | A |
5940130 | Nilsson et al. | Aug 1999 | A |
5996029 | Sugiyama et al. | Nov 1999 | A |
6005623 | Takahashi et al. | Dec 1999 | A |
6005624 | Vainsencher | Dec 1999 | A |
6014694 | Aharoni et al. | Jan 2000 | A |
6040863 | Kato | Mar 2000 | A |
6081295 | Adolph et al. | Jun 2000 | A |
6141693 | Perlman et al. | Oct 2000 | A |
6144402 | Norsworthy et al. | Nov 2000 | A |
6167084 | Wang et al. | Dec 2000 | A |
6182203 | Simar, Jr. et al. | Jan 2001 | B1 |
6215821 | Chen | Apr 2001 | B1 |
6219358 | Pinder et al. | Apr 2001 | B1 |
6222886 | Yogeshwar | Apr 2001 | B1 |
6236683 | Mougeat et al. | May 2001 | B1 |
6259741 | Chen et al. | Jul 2001 | B1 |
6263022 | Chen et al. | Jul 2001 | B1 |
6285712 | Kondo et al. | Sep 2001 | B1 |
6300973 | Feder et al. | Oct 2001 | B1 |
6307939 | Vigarie | Oct 2001 | B1 |
6314138 | Lemaguet | Nov 2001 | B1 |
6323904 | Knee | Nov 2001 | B1 |
6366614 | Pian et al. | Apr 2002 | B1 |
6385248 | Pearlstein et al. | May 2002 | B1 |
6438168 | Arye | Aug 2002 | B2 |
6480541 | Girod et al. | Nov 2002 | B1 |
6526099 | Christopoulos et al. | Feb 2003 | B1 |
6549561 | Crawford | Apr 2003 | B2 |
6584509 | Putzolu | Jun 2003 | B2 |
6714202 | Dorrell | Mar 2004 | B2 |
6724726 | Coudreuse | Apr 2004 | B1 |
6748020 | Eifrig et al. | Jun 2004 | B1 |
20010026591 | Keren et al. | Oct 2001 | A1 |
20020106022 | Satoh et al. | Aug 2002 | A1 |
20020110193 | Yoo et al. | Aug 2002 | A1 |
20020138259 | Kawahara | Sep 2002 | A1 |
20020145931 | Pitts | Oct 2002 | A1 |
20020196851 | Lecoutre | Dec 2002 | A1 |
20030093661 | Loh et al. | May 2003 | A1 |
20030152148 | Laksono | Aug 2003 | A1 |
Number | Date | Country |
---|---|---|
0661826 | Jul 1995 | EP |
0739138 | Oct 1996 | EP |
0805599 | Nov 1997 | EP |
0855805 | Jul 1998 | EP |
0896300 | Feb 1999 | EP |
0896300 | Feb 1999 | EP |
0901285 | Feb 1999 | EP |
0955607 | Nov 1999 | EP |
1032214 | Aug 2000 | EP |
1032214 | Aug 2000 | EP |
1087625 | Mar 2001 | EP |
07-210670 | Aug 1995 | JP |
WO 0195633 | Dec 2001 | WO |
WO 0195633 | Dec 2001 | WO |
WO 02080518 | Oct 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20040141556 A1 | Jul 2004 | US |