Software carrier containing corrected blotches in component images
Summary by NHIP
Image Blotch Correction
The system processes images to generate processed images containing irregularly-shaped modified blotches with colors similar to but different from neighboring areas. This difference defines a border between the modified blotch and the adjacent region, while artifacts from the modification process may appear nearby with substantially different colors.
Claim Score by NHIP
Abstract
Blotches may be identified and processed to reduce or eliminate the blotch. The blotch may be in just one of several separations and multiple separations may be used, for example, to identify the blotch. An implementation (i) compares a first component image of an image with a first component image of a reference image, (ii) compares a second component image of the image with a second component image of the reference image, and (iii) determines based on these comparisons whether the first component image of the image includes a blotch. Multiple image separations also, or alternatively, may be used, for example, to modify the blotch, as well as to evaluate whether a modification is beneficial.

Term
1.8 yearsleft in the term
Expires 6 July 2028, including 1,012 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
16 claims: 2 independent, 14 dependent
- 1Broadest claimClaim Score 61, broad(NHIP)A computer-readable storage device encoded with executable code and a processed image, the processed image comprising an irregularly-shaped modified blotch, the modified blotch having color that is similar to, but different from, color of a neighboring area, such that the difference defines a border between the modified blotch and the neighboring area, wherein the executable code includes instructions that, when executed by a processor, cause the processor to perform operations comprising enabling display of the processed image, and wherein the processed image is encoded on the computer-readable storage device by:accessing a first image comprising a blotch;processing the first image including the blotch to generate a second image, the second image comprising the irregularly-shaped modified blotch, the modified blotch having color that is similar to, but different from, color of the neighboring area, such that the difference defines a border between the modified blotch and the neighboring area;and storing the second image on the computer-readable storage device as the processed image.
- 9A computer-readable storage device having stored thereon a data structure including image data that defines an image, the image comprising an irregularly-shaped modified blotch, the modified blotch having color that is similar to, but different from, color of a neighboring area, such that the difference defines a border between the modified blotch and the neighboring area, wherein the data structure, when accessed by an electronic device, causes the electronic device to perform operations comprising enabling display of the image, and wherein the image data is stored on the computer-readable storage device by:accessing a first image comprising a blotch;processing the first image including the blotch to generate a second image, the second image comprising the irregularly-shaped modified blotch, the modified blotch having color that is similar to, but different from, color of the neighboring area, such that the difference defines a border between the modified blotch and the neighboring area;and storing the second image on the computer-readable storage device as at least a portion of the image data.
Independent claims2
142 paragraphs in 6 sections, as filed
RELATED APPLICATIONS
p-0002This application claims priority from U.S. Provisional Application Ser. No. 60/613,939, filed Sep. 29, 2004, and titled “Correction of Blotches in Separations,” which is hereby incorporated by reference.
TECHNICAL FIELD
p-0003This disclosure relates to image processing.
BACKGROUND
p-0004Color motion picture film is a relatively recent development. Before the advent of color film stock in the 1950s, a process for making color motion pictures included capturing color information on two or more reels of black and white film. In the original Technicolor three color film separation process, three reels of black and white film were loaded into a specially-designed movie camera. The light coming through the lens was split into three primary colors of light and each was recorded on a separate reel of black and white film. After developing the three reels, three photographic negatives representing the yellow (inverted blue), the cyan (inverted red), and the magenta (inverted green) portion of the original reels were created.
p-0005In addition to the creation of color separations through the original Technicolor process, color separations also have been produced and used for the archival of color film because black and white film stock generally has a much greater shelf-life than color film. In this process, the color film stock is used to expose one reel of black and white film with sequential records of red, green, and blue so that each frame is printed three times on the resultant reel to form a sequential separation.
p-0006Film studios may recombine the three color separations onto a single reel of color film using a photographic process that is performed in a film laboratory. The resulting destination reel, called an interpositive (“IP”), contains colors represented as red, green, and blue (as opposed to cyan, magenta, and yellow).
SUMMARY
p-0007The film processes described earlier, as well as other processes, may be subject to one or more of a variety of well-known film distortions, including differential resolution, loss of resolution, static misregistration, dynamic misregistration, and blotches, for example. Although referenced with respect to film, these distortions may be present in other applications and environments. For example, correction of blotches within separations may be required, and one or more distortions may be present, in film, photography, astronomy, and medical applications.
p-0008Moreover, various conditions may lead to these and other distortions. For example, blotches may arise on a separation or an IP due to dirt, such as, for example, dust particles, covering the film, a loss of gelatin covering the film, or other factors. These blotches may be manifested as dark or bright areas on the displayed film.
p-0009Digital image processing can be used to restore film with blotches. Each digital image includes an array of pixels having a dimensionality that may be quantified by multiplying the image width by the image height. Within the array, each pixel location (x, y), where 0<=x<width and 0<=y<height, has an associated gray-level value I(x, y), where 0<=I(x, y)<=65,535 (in the case of 16-bit data), that represents how much of the particular color (for example, red, green, or blue) is present at the corresponding pixel location (x, y). One aspect of digital image processing can include the process of modifying the digitized representation of a color component image that contains blotches in order to reduce these blotches. This and other processes may use information from the digitized representation of the other color component images for the frame as well as information from the digitized representation of the color component images from other frames within a sequence.
p-0010And, more generally, various general aspects address methods for the restoration of blotches within separations or images that may correspond to separations that relate to film or other fields.
p-0011In some of the implementations to follow, one or more of the following features may be achieved: (1) an automatic blotch correction process for color film separations, (2) a process that operates in the digital domain to enable the use of a number of digital image processing techniques, (3) a method requiring minimal human intervention, (4) a technique capable of determining where blotches occurs within an image, and (5) a method to modify the pixels of an image in order to decrease the blotches within the image. In addition, one or more of the described distortions may be compensated, corrected, or reduced. The implementations described may be applied to various types of component images, including, for example, color component images and non-color component images, and the component images may correspond to separations or to component images generated by other techniques.
p-0012According to a general aspect, processing images containing a blotch includes accessing one or more component images of a target image, the target image including a first component image and a second component image. Processing the images also includes accessing one or more component images of a reference image, the reference image including a first component image and a second component image. A motion vector is determined characterizing motion between the target image and the reference image. Based on motion indicated by the motion vector, the first component image of the target image is compared with the first component image of the reference image to produce a first-component comparison result. Based on motion indicated by the motion vector, the second component image of the target image is compared with the second component image of the reference image to produce a second-component comparison result. Processing the images further includes determining that the first component image of the target image includes a blotch based on the first-component comparison result and the second-component comparison result.
p-0013Implementations of the above general aspect may include one or more of the following features. For example, the first and/or second component images of the target image may include a color image. The target image may include a color image. The determined motion vector may be based on at least a portion of the first component image of the target image and at least a portion of the second component image of the target image.
p-0014Comparing the first component image of the target image with the first component image of the reference image may include determining a first-component difference between intensities of (i) a given pixel having a given location in the first component image of the target image and (ii) a corresponding pixel in the first component image of the reference image, the corresponding pixel in the first component image of the reference image being determined based on motion indicated by the motion vector. Comparing the second component image of the target image with the second component image of the reference image may include determining a second-component difference between intensities of (i) a pixel having the given location in the second component image of the target image and (ii) a corresponding pixel in the second component image of the reference image, the corresponding pixel in the second component image of the reference image being determined based on motion indicated by the motion vector. Determining that the first component image of the target image includes the blotch may include identifying the given pixel as being part of the blotch based on the first-component difference and the second-component difference.
p-0015A third-component difference may be determined between intensities of (i) a pixel having the given location in a third component image of the target image and (ii) a corresponding pixel in a third component image of the reference image, the corresponding pixel in the third component image of the reference image being determined based on motion indicated by the motion vector. Identifying the given pixel as being part of the blotch may include identifying the given pixel as being part of the blotch if: (i) the first-component difference minus the second-component difference exceeds a first/second-component threshold, (ii) the first-component difference minus the third-component difference exceeds a first/third-component threshold, (iii) the second-component difference is less than a second-component threshold, and (iv) the third-component difference is less than a third-component threshold.
p-0016Determining the motion vector may include determining a first value for first-component distortion characterizing distortion in the first component image of the target image associated with applying a first candidate motion vector to the first component image of the target image. Determining the motion vector may include determining a first value for second-component distortion characterizing distortion in the second component image of the target image associated with applying the first candidate motion vector to the second component image of the target image. Determining the motion vector may include determining a first value for a distortion function characterizing distortion from multiple component images of the target image associated with applying the first candidate motion vector to the multiple component images of the target image.
p-0017Determining the motion vector may include determining a second value for first-component distortion characterizing distortion in the second component image of the target image associated with applying a second candidate motion vector to the first component image of the target image. Determining the motion vector may include determining a second value for second-component distortion characterizing distortion in the second component image of the target image associated with applying the second candidate motion vector to the second component image of the target image. Determining the motion vector may include determining a second value for the distortion function characterizing distortion from multiple component images of the target image associated with applying the second candidate motion vector to the multiple component images of the target image.
p-0018Determining the motion vector may include evaluating the second candidate motion vector based on the relative values of the first and second values of (1) first-component distortion, (2) second-component distortion, and (3) the distortion function. Evaluating the second candidate motion vector may include making a determination that the first value of at least one of (1) first-component distortion, (2) second-component distortion, and (3) the distortion function is less than the respective second value. Evaluating the second candidate motion vector may include favoring the second candidate motion vector based on the made determination. Making the determination may include making a determination that the first value of at least two of (1) first-component distortion, (2) second-component distortion, and (3) the distortion function is less than the respective second value.
p-0019Determining the motion vector may include determining a first value for third-component distortion characterizing distortion in a third component image of the target image associated with applying the first candidate motion vector to the third component image of the target image. Determining the motion vector may include determining a second value for third-component distortion characterizing distortion in the third component image of the target image associated with applying the second candidate motion vector to the third component image of the target image.
p-0020Determining the motion vector may include making a component-distortion determination that the first value of at least two of (1) first-component distortion, (2) second-component distortion, and (3) third-component distortion are less than the respective second value. Determining the motion vector may include making a distortion-function determination that the first value of the distortion function is less than the second value of the distortion function. Determining the motion vector may include favoring the second candidate motion vector based on the component-distortion determination and the distortion-function determination.
p-0021An extent of the blotch in the first component image of the target image may be determined. The motion vector may be refined based on the determined extent of the blotch.
p-0022A corresponding extent may be determined in the first component image of the reference image that corresponds to the extent of the blotch in the first component image of the target image. The blotch may be modified in the first component image of the target image using information from the corresponding extent in the first component image of the reference image. A region may be determined in the first component image of the target image that includes more than the determined extent of the blotch. A blotch distortion value may be determined for the determined region that includes the modification of the blotch in the first component image of the target image. A corresponding extent may be determined in the second component image of the target image that corresponds to the extent in the first component image of the target image. A corresponding extent may be determined in the second component image of the reference image that corresponds to the extent in the first component image of the target image. The corresponding extent in the second component image of the target image may be modified using information from the corresponding extent in the second component image of the reference image. A corresponding region in the second component image of the target image may be determined that corresponds to the determined region. A corresponding-region distortion value may be determined for the corresponding region that includes the modification of the corresponding extent in the second component image of the target image. The modification of the blotch in the first component image of the target image may be evaluated based on the blotch distortion value and the corresponding-region distortion value.
p-0023The motion vector may be tested using the second component image of the target image. Testing the motion vector using the second component image of the target image may include determining an extent of the blotch in the first component image of the target image. Testing the motion vector using the second component image of the target image may include applying the motion vector to pixels in a corresponding extent of a digital representation of the second component image of the target image, the corresponding extent including pixels that correspond to the determined extent of the blotch. Testing the motion vector using the second component image of the target image may include determining a blotch distortion value for the application of the motion vector to the pixels in the corresponding extent.
p-0024Testing the motion vector using the second component image of the target image may include determining a region in the first component image of the target image that includes more than the determined extent of the blotch. Testing the motion vector using the second component image of the target image may include applying the motion vector to pixels in the digital representation of the second component image of the target image that are in a corresponding region but not in the corresponding extent, the corresponding region includes pixels that correspond to the determined region. Testing the motion vector using the second component image of the target image may include determining a non-blotch distortion value for the application of the motion vector to pixels that are in the corresponding region but not in the corresponding extent.
p-0025Testing the motion vector using the second component image of the target image may include evaluating the motion vector based on the blotch distortion value and the non-blotch distortion value. Evaluating the motion vector may include determining a difference between the blotch distortion value and the non-blotch distortion value, comparing the difference to a difference threshold, and evaluating the motion vector based on a result obtained from comparing the difference to the difference threshold.
p-0026A spatial correction may be performed in the first component image of the target image to modify the blotch. The spatial correction may be applied to the second component image of the target image. A spatial-correction distortion value may be determined for the application of the spatial correction to the second component image of the target image. The spatial-correction distortion value may be compared to a spatial-correction distortion threshold. The spatial correction of the first component image of the target image may be evaluated based on a result obtained from comparing the spatial-correction distortion value to the spatial-correction distortion threshold. Determining the spatial-correction distortion value may include determining a distortion value between (1) the second component image of the target image before applying the spatial correction and (2) the second component image of the target image after applying the spatial correction.
p-0027A correction may be performed in the first component image of the target image to modify the blotch. The correction may be evaluated using the second component image of the target image.
p-0028Evaluating the correction using the second component image of the target image may include determining a first-component distortion value characterizing distortion from performing the correction in the first component image of the target image. Evaluating the correction using the second component image of the target image may include performing the correction in the second component image of the target image. Evaluating the correction using the second component image of the target image may include determining a second-component distortion value characterizing distortion from performing the correction in the second component image of the target image. Evaluating the correction using the second component image of the target image may include comparing the first-component distortion value with the second-component distortion value to produce a result. Evaluating the correction using the second component image of the target image may include evaluating the correction in the first component image of the target image based on the result. The first-component distortion value may be based on a ratio of (i) a variance, before modification, of a particular region in the first component image of the target image, the particular region including the blotch, and (ii) a variance of the particular region after modification of the blotch.
p-0029According to another general aspect, one or more component images of a target image are accessed, the target image including a first component image. It is determined that the first component image of the target image includes a blotch. A metric is determined for the blotch. The metric is determined for a region of the first component image that connects to the blotch, wherein a region connects to the blotch if the region touches the blotch. The metric for the blotch is compared with the metric for the region to produce a result. Based on the result, it is determined whether to include the region in the blotch.
p-0030Implementations of the above general aspect may include one or more of the following features. For example, the metric may include a distortion function. Determining the metric for the blotch may include determining a value of the distortion function for the blotch. Determining the metric for the region may include determining a value of the distortion function for the region.
p-0031The metric may include an intensity value. Determining the metric for the blotch may include determining an average intensity value for the blotch. Determining the metric for the region may include determining an average intensity value for the region.
p-0032The metric may include a direction of a gradient of intensity values. Determining the metric for the blotch may include determining a direction of a gradient of intensity values for the blotch. Determining the metric for the region may include determining a direction of a gradient of intensity values for the region.
p-0033According to another general aspect, one or more digital component images of a target image are accessed, the target image including a first component image that includes pixels. It is determined that the first component image of the target image includes a blotch. A non-blotch pixel is identified that is connected to the blotch but is not in the blotch, wherein a pixel connects to the blotch if the pixel touches the blotch on one or more of a side or a corner. A count is determined of blotch neighbors for the non-blotch pixel, the blotch neighbors being those pixels that are (1) connected to the non-blotch pixel and (2) included in the blotch. A count is determined of non-blotch neighbors for the non-blotch pixel, the non-blotch neighbors being those pixels that are (1) connected to the non-blotch pixel and (2) not included in the blotch. The count of blotch neighbors is compared to the count of non-blotch neighbors. Based on a result obtained from comparing the count of blotch neighbors to the count of non-blotch neighbors, it is determined whether to include the non-blotch pixel in the blotch.
p-0034Implementations of the above general aspect may include one or more of the following features. For example, comparing the count of blotch neighbors to the count of non-blotch neighbors may include determining whether the count of blotch neighbors is larger than the count of non-blotch neighbors. Determining whether to include the non-blotch pixel in the blotch based on a result obtained from comparing may include determining to include the non-blotch pixel in the blotch if the count of blotch neighbors is larger than the count of non-blotch neighbors.
p-0035According to another general aspect, a software carrier has stored thereon an image, the image including an irregularly-shaped modified blotch. The modified blotch has color that is similar to, but different from, color of a neighboring area, such that the difference defines a border between the modified blotch and the neighboring area.
p-0036Implementations of the above general aspect may include one or more of the following features. For example, the image may be part of a series of images of a particular scene, the series of images representing the particular scene at different points in time. Color of the modified blotch may match color of a corresponding portion of another image in the series of images.
p-0037The image may include an artifact from a blotch modification process, the artifact being adjacent to the modified blotch and having color that differs substantially from color of the modified blotch. The artifact may include a portion of a blotch, the portion being free of modifications from the blotch modification process. The modified blotch may include a modification of another portion of the blotch.
p-0038The various aspects, implementations, and features may be implemented using, for example, one or more of a method, an apparatus, an apparatus for performing a method, a program or other set of instructions, an apparatus that includes a program or other set of instructions, and a software carrier. The software carrier may include, for example, instructions, software, images, and other data.
p-0039One or more implementations are set forth in the accompanying drawings and the description below. Other implementations will be apparent from the description, drawings, and claims.
DESCRIPTION OF DRAWINGS
p-0040The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
p-0041<figref idrefs="DRAWINGS">FIG. 1A</figref> is a color picture illustrating a few blotches on a frame from a movie. Three noticeable blotches (2 red, 1 green) are circled on the figure.
p-0042<figref idrefs="DRAWINGS">FIG. 1B</figref> is a non-color version of <figref idrefs="DRAWINGS">FIG. 1A</figref>.
p-0043<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram of an implementation of a blotch correction method.
p-0044<figref idrefs="DRAWINGS">FIG. 3</figref> is a flow diagram of the components illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref>.
p-0045<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates the computation of difference values between a pixel within the component images of a current frame and the corresponding component images in two reference frames.
p-0046<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates a set of refinement steps based on spatial neighborhoods to complete partially detected blotches or to remove falsely identified blotches.
p-0047<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates a set of steps used to accept or reject a blotch region (i.e., a set of contiguous blotch pixels) in its entirety as well as to further refine the identified blotch.
p-0048<figref idrefs="DRAWINGS">FIG. 7</figref> illustrates an example of a block containing a blotch that is used in a blotch modification prediction unit.
p-0049<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates one implementation of a set of operations applied in the blotch modification prediction unit.
p-0050<figref idrefs="DRAWINGS">FIG. 9A</figref> is a color picture illustrating a result of applying one implementation of a blotch correction technique to the picture in <figref idrefs="DRAWINGS">FIG. 1</figref>. The three locations where blotches were illustrated in <figref idrefs="DRAWINGS">FIGS. 1A and 1B</figref> are circled in this figure.
p-0051<figref idrefs="DRAWINGS">FIG. 9B</figref> is a non-color version of <figref idrefs="DRAWINGS">FIG. 9A</figref>.
p-0052<figref idrefs="DRAWINGS">FIGS. 10A-C</figref> illustrate incomplete identification of a blotch's boundaries.
DETAILED DESCRIPTION
p-0053Multiple component images of a target image (the target image typically being referred to throughout this disclosure as an image) may be used in a variety of operations in the process of identifying and modifying a given blotch. The operations include, for example, identifying a blotch, determining a motion vector, refining the motion vector based on the blotch, and evaluating the efficacy of a modification of the blotch.
p-0054One implementation compares each of multiple color components of an image with a corresponding color component of a reference image to assist in identifying a blotch in one of the color components of the image. The blotch is identified, in part, because the blotch will differ from the corresponding location in the reference image. After identifying the blotch, the implementation evaluates the modification by performing a corresponding modification on a color component image that does not have the blotch, and examining the corresponding modification to verify that a relatively small change occurred in the corresponding modification compared to the modification.
p-0055<figref idrefs="DRAWINGS">FIGS. 1A and 1B</figref> illustrate one visual manifestation of blotches that can occur due to one or more sources of distortion. <figref idrefs="DRAWINGS">FIG. 2</figref> illustrates a system <b>200</b> that provides one implementation for performing the blotch correction. As shown, digitization unit <b>210</b> receives a sequence of frames, each consisting of either three color component images or a single composite color image composed of three color component images, and outputs a sequence of frames, each consisting of three digital, and possibly transformed, color component images. A motion estimation unit <b>220</b> inputs the sequence of frames and computes a set of motion vectors to characterize the motion between a particular frame and a set of one or more reference frames.
p-0056A blotch classification map determination unit <b>230</b> receives the set of digital images and motion vectors, and processes them to produce a classification map that is provided to a blotch modification prediction unit <b>240</b>. The blotch modification prediction unit <b>240</b> uses the classification map, the motion vectors, and the set of digital images to determine whether the blotch modification should occur on the pixels identified by the classification map determination unit, and if so, the type of modification that should be applied. For example, the blotch modification prediction unit <b>240</b> applies additional operations, including a recalculation of motion vectors, in order to ensure that blotch modification would not introduce artifacts at the previously determined blotch locations.
p-0057A blotch modification application unit <b>250</b> modifies the pixels identified as part of a blotch so as to reduce the blotch and restore the pixels to values that would more closely represent the original, unblotched pixels. Finally, a composite phase unit <b>260</b> combines the modified images into a composite image.
p-0058One or more of the units <b>210</b>-<b>260</b> may be applied more than once in some implementations. <figref idrefs="DRAWINGS">FIG. 3</figref> is a flow diagram <b>300</b> of the components illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref> and is discussed below in conjunction with a more detailed discussion of the components of the system <b>200</b>.
p-0059As noted above, the digitization unit <b>210</b> may receive multiple color separations at multiple points in time (<b>304</b>). The digitization unit <b>210</b> typically accepts multiple photographic negative images (for example, yellow, cyan, and magenta) and typically outputs multiple photographic positive images (for example, blue, red, and green) as digital data (<b>308</b>). The digital data typically consists of a set of gray-level pixels. The three separations may be input to digitization unit <b>210</b> one at a time in their entirety, at the same time in parallel, or may be interleaved so that corresponding frames from each separation are input serially adjacent to each other.
p-0060In one implementation, a composite color film is input to digitization unit <b>210</b> and digitized. Digitization unit <b>210</b> may digitize the color film and then separate the color film into one or more component images. Three color component images are commonly derived, but implementations may use varying numbers. Separating a color film, or other input, into component images, may be performed in a separate unit as an alternative to performing such an operation in digitization unit <b>210</b>.
p-0061Various component images may be used. For example, a color film may be separated into RGB color component images, or YUV component images in which the U and V color components represent color rather than luminance.
p-0062The implementations described below are particularly suited to receiving an input composite color movie that has dirt (that is, a blotch) on a single color component only. A blotch (or “dirt”) may be caused, for example, by actual dirt, such as dust, or by a loss of gelatin covering a film. For example, a blotch may have appeared on a single separation and then all component separations may have been combined to form the composite color movie. One or more of the implementations below also may be adapted to work with blotches that are on all of the separations, such as might happen when the composite movie itself receives a blotch.
p-0063In one implementation, the digitization unit <b>210</b> thus transforms an input negative image into a positive image, and digitizes the positive image. Another implementation performs one or more of a variety of other transformations, such as, for example, positive-to-negative, in lieu of or in addition to the negative-to-positive transformation. Another implementation performs no transformation at all. Yet another implementation accepts digitized data such that digitization is not required.
p-0064As noted above, the digital color component images of a frame are input into the motion estimation unit <b>220</b> (<b>312</b>, <b>316</b>), and the motion estimation unit <b>220</b> determines one or more motion vectors (<b>320</b>). In addition, at least one set of digital color component images may be used from frames that precede, succeed, or both precede and succeed, in time, the frame under consideration.
p-0065To illustrate an implementation, define:
p-0066(i) F_i to be a frame consisting of a set of three color component images (e.g., red, green, and blue, respectively), where “i” varies from 1 to N, and
p-0067(ii) F_i_new to be a blotch-corrected frame consisting of a set of three color component images (e.g., red, green, and blue, respectively), where “i” varies from 1 to N.
p-0068Then, MV(F_i_)=f(F_(i−j), . . . , F_i, . . . , F_(i+k)) or MV(F_i)=f(F_(i−j)_new, . . . , F_i, . . . , F_(i+k)), where j and k are non-negative integers. That is, the motion vector corresponding to frame i can be a function of either frames that precede, succeed, or both precede and succeed frame i, in time. Or as one alternative, can be a function of blotch corrected frames that precede frame i in time, uncorrected frames that succeed frame i in time, or both. Note that the motion vector for frame i need not be based on all component images for frame i, or for the other frame(s) that are considered.
p-0069Motion vectors can be computed for each pixel within each frame with respect to a reference frame (note that a reference image, such as one component of a frame, may also be used in various implementations). For example, each frame can be subdivided into blocks (e.g., 16×16 block of pixels), and a motion vector can be computed for all pixels within each block. Motion vectors can be computed based on a function of the different color component images. For example, the luminance component of the frame can be computed as a function of the red, green, and blue component images, and the motion vectors can be computed based on the luminance component of the frame under consideration and the luminance component of the reference frame(s). Alternatively, different motion vectors can be computed for each of the red, green, and blue component images.
p-0070As an example, a motion vector may be determined based on an initial motion vector candidate. In some implementations, this initial motion vector candidate may be obtained based on a function of motion vectors of nearby blocks. In other implementations, this initial motion vector candidate may represent a zero motion vector. A distortion value based on some distortion measure may be computed for the candidate motion vector using pixels from the current frame and a reference frame. The distortion measure may be based on a function of the color component images or a function of the distortions generated on the different color component images. Distortion values associated with a number of candidate vectors (which may be obtained throughout a window around an initial candidate motion vector) may be computed for each. The candidate motion vector resulting in the lowest distortion based on the distortion measure may be selected as the “appropriate” motion vector.
p-0071As an example, the distortion measure associated with a motion vector may be based on the differences between the current and reference frame for each color component as well as the difference between the current and reference frame based on a combination of the color components. In one implementation, a motion vector is considered to produce a lower value for the distortion measure if two conditions are satisfied: (1) the difference between the luminance values between the current and reference pixels produce a lower distortion and (2) the differences for a majority of the color components (e.g., two out of three) also produce a lower distortion, compared to the corresponding distortion values obtained with other candidate motion vectors.
p-0072A scene detection unit within the motion estimation unit <b>220</b> can automatically determine whether to use reference frames that either precede or succeed the frame under consideration in time. For example, the scene detection unit can determine, based on the determined motion vectors, whether the frame under consideration is similar to the candidate reference frame. This can be determined with a variety of techniques.
p-0073For example, a distortion can be calculated between the motion compensated current frame and the candidate reference frame. If the distortion exceeds a particular threshold, the frame is considered to be too different from the reference frame, and, therefore, the reference frame is not used to provide motion vectors to the subsequent units of this process or for any other processing operations in the subsequent units of this process. The distortion can be computed as a function of the difference between the pixels within the block (or frame) of the current frame and the reference frame. For example, the distortion metric can be the sum of the absolute values of the differences between each pixel and the corresponding (motion-compensated) pixel in the reference frame.
p-0074As an example of a reference frame, the reference frame may be defined for any given target frame as the preceding frame, or the succeeding frame, in a sequence of frames (for example, in a movie) and thus the reference frame may be different for every target frame. As another example, the reference frame for all target frames in a given scene may be the first frame in the given scene and thus the reference frame may remain constant for all of the target frames in the given scene, particularly if there is little motion. As yet another example, any given frame may have multiple reference frames, for example, each the two succeeding frames and each of the two preceding frames, in which case any given frame shares one or more of its reference frames with other nearby frames.
p-0075The digital color component images corresponding to the frame under consideration as well as to the reference frame(s), and the associated motion vectors for the frame, are input into the blotch classification map determination unit <b>230</b> (<b>324</b>, <b>328</b>). Generally, the blotch classification map determination unit <b>230</b> determines which pixels are associated with a blotch and these pixels are considered candidates to be modified in a given color component image. The determination may include one or more processing operations. In an implementation described below, the blotch classification map determination unit <b>230</b> makes an initial determination on a pixel-by-pixel basis (<b>332</b>), and then refines that determination (<b>336</b>, <b>340</b>).
p-0076In one implementation of the system, the classification map determination unit <b>230</b> identifies these pixels (<b>332</b>) based on (i) a set of criteria applied to a set of motion compensated differences as well as (ii) the pixel intensities themselves. The classification map determination unit <b>230</b> outputs a map (labeled CMap_i, where CMap_i consists of three separate maps, CMap<sub>R</sub>, CMap<sub>G</sub>, or CMap<sub>B</sub>) that constitutes an image consisting of “blotch” or “non-blotch” type pixels for each of the color component images, where the “blotch” pixels indicate at which locations blotches may occur, and where the associated pixel intensity values may be modified during a subsequent operation.
p-0077The set of criteria used to determine the locations of blotches can be based on one or more of the various properties commonly associated with blotches. These include: (1) blotches seldom occur at the same pixel location within two consecutive frames, (2) blotches seldom occur at the same pixel location within more than one digital color component image comprising a frame (for example, within more than one separation of a color frame), (3) blotches tend to occur in spatially connected pixels (i.e., they occur across small regions of pixels rather than at isolated pixel locations), (4) intensity values of pixels within a particular blotch typically are similar, and (5) intensity values of pixels within a particular blotch are typically different than the intensity values of neighboring pixels outside the particular blotch.
p-0078For each pixel p, define DFD_r_p_i_j, DFD_g_p_i_j, and DFD_b_p_i_j to be the calculated displaced frame difference between pixel p in the red, green, and blue component images of frame i and the corresponding motion-compensated pixel based on red, green, and blue component images, respectively, in the reference frame j. For example, DFD_r_p_i_j can equal the absolute value of the difference between the pixel intensity value of pixel p in frame i and the pixel intensity value of the corresponding motion-compensated pixel in frame j. Alternatively, another type of distortion measure may be used to obtain DFD_r_p_i_j. A set of criteria can be applied based on these DFDs to determine an initial set of “blotch” or “non-blotch” type pixels for each of the color component images of the current frame.
p-0079<figref idrefs="DRAWINGS">FIG. 4</figref> illustrates red, green, and blue component images for frames i, i−1, and i+1. A pixel located at location (<b>13</b>, <b>12</b>) in frame i is indicated by a square in each of the component images for frame i. The corresponding pixels (determined by estimating motion) in the reference frames j and k are indicated by squares with associated pixel locations (<b>10</b>, <b>10</b>) for j and (<b>16</b>, <b>14</b>) for k. DFD values are computed between the various component images for the pixel and are associated in the figure with arrows indicating the two components used to compute the DFD value.
p-0080<figref idrefs="DRAWINGS">FIG. 4</figref> depicts the DFD values of DFD_r_p_i_k and DFD_r_p_j_k being computed with respect to the same pixel in frame k. However, depending on how motion is estimated, different locations in frame k may be attained. For example, DFD_r_p_j_k may be based on a motion estimate between frames j and k, and DFD_r_p_i_k may be based on a motion estimate between frames i and k. These two motion estimates, and the resulting “corresponding” pixel in frame k, may be different. Different motion estimates may result, for example, if a blotch in frame i causes a poor motion estimate between frames i and k.
p-0081To determine whether a blotch occurs on a pixel in the red component image, one set of criteria that may be applied tests for whether the displaced frame distance for one color component is higher than the displaced frame distances for the other two color components for a particular pixel. Further, the displaced frame distances can be tested with respect to two reference frames, and the two reference frames may be selected such that one precedes the current frame and one succeeds the current frame.
p-0082Pseudo-code to implement one such algorithm, for pixel “p,” follows, where the value of CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p </sub>determines whether pixel “p” in the red component of the current frame is designated as a “blotch” pixel or not. In the pseudo-code, TH_<b>1</b> through TH_<b>6</b> are thresholds, CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p </sub>is the value of CMap<sub>R </sub>for pixel “p,” and the “&&” operations require that all six of the threshold comparisons be satisfied in order for the “if” statement to be satisfied. <ul><li id="ul0001-0001" num="0082">If (DFD_r_p_i_j>TH_<b>1</b>) && (DFD_r_p_i_k>TH_<b>2</b>)</li><li id="ul0001-0002" num="0083">&& (DFD_g_p_i_j<TH_<b>3</b>) && (DFD_g_p_i_k<TH_<b>4</b>)</li><li id="ul0001-0003" num="0084">&& (DFD_b_p_i_j<TH_<b>5</b>) && (DFD_b_p_i_k<TH_<b>6</b>)</li><li id="ul0001-0004" num="0085">then CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p</sub>=1,</li><li id="ul0001-0005" num="0086">else CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p</sub>=0.</li></ul>
p-0083The thresholds listed above can be constant, or alternatively, can be adaptive based on various characteristics. For example, the threshold can differ on a film by film basis, a reel by reel basis, a frame by frame basis, a pixel by pixel basis, or on the basis of any other subset of data.
p-0084In one implementation, each of the thresholds may vary as a function of the DFDs associated with the pixel (i.e., TH_p=f_i(DFD_r_p_i_j, DFD_g_p_i_j, DFD_b_p_i_j)). For example, if the DFD for the pixel in the red component image is greater than the DFD for that pixel in the green and blue component images by particular threshold(s), where the DFD is computed relative to at least one reference frame, and if the DFD values for the pixel in the green and blue component images are smaller than particular thresholds, then the pixel is identified as a possible member of a blotch. This example may be expressed in the following pseudo-code, where TH_new<b>1</b> through TH_new<b>4</b> are thresholds.
p-0085In the pseudo-code below, the first four comparisons compare TH_new<b>1</b> through TH_new<b>4</b> to four different DFD differences for pixel “p” of frame “j.” The first DFD difference is between the red and green component images, taken with respect to reference frame “j.” The second DFD difference is between the red and blue component images, taken with respect to reference frame “j.” The third DFD difference is between the red and green component images, taken with respect to reference frame “k.” The fourth DFD difference is between the red and blue component images, taken with respect to reference frame “k.” <ul><li id="ul0002-0001" num="0090">If (DFD_r_p_i_j-DFD_g_p_i_j>TH_new<b>1</b>) && (DFD_r_p_i_j-DFD_b_p_i_j>TH_new<b>2</b>) && (DFD_r_p_i_k-DFD_g_p_i_k>TH_new<b>3</b>)</li><li id="ul0002-0002" num="0091">&& (DFD_r_p_i_k-DFD_b_p_i_k>TH_new<b>4</b>)</li><li id="ul0002-0003" num="0092">&& (DFD_g_p_i_j<TH_<b>3</b>) && (DFD_g_p_i_k<TH_<b>4</b>)</li><li id="ul0002-0004" num="0093">&& (DFD_b_p_i_j<TH_<b>5</b>) && (DFD_b_p_i_k<TH_<b>6</b>)</li><li id="ul0002-0005" num="0094">then CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p</sub>=1,</li><li id="ul0002-0006" num="0095">else CMap<sub>R</sub><sub><sub2>—</sub2></sub><sub>p</sub>=0.</li><li id="ul0002-0007" num="0096">The new thresholds may also be constant or adaptive, e.g., TH_newi=f_i(DFD_r_p_i_j, DFD_g_p_i_j, DFD_b_p_i_j).</li></ul>
p-0086In addition, if reference frames that both precede and succeed the frame under consideration are used, an additional criterion may also be applied. In one additional criterion, a DFD value is computed between these reference frames (e.g., DFD_r_p_j_k for the red component image) and is compared to determine whether it is smaller than particular threshold(s). If the computed DFD value is smaller than the threshold, and the other conditions listed above also hold true, then the pixel would be identified as a possible member of a blotch; otherwise, it would not. When the computed DFD values are small, this may suggest that the two reference frame components are similar and that non-motion differences between the reference frame components and the current frame components are due to blotches.
p-0087After the initial set of “blotch”-type pixels have been identified (<b>332</b>), a refinement step (<b>336</b>) may be performed to remove locations that have been falsely identified as blotches and to complete partially detected blotches. For example, in one implementation, the refinement is performed on pixel locations that are adjacent to pixels that have already been identified as a candidate blotch location by incorporating spatial information. In particular, various properties of blotches and their neighborhoods have been listed above, and these properties are incorporated into the set of criteria used within this refinement step. For example, pixels that are neighbors of a pixel that has already been identified as part of a blotch can be examined to see how similar they are. Similarity can be with respect to various characteristics, such as intensity values or DFD values.
p-0088<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates an example implementation of a set of refinement steps that incorporates spatial information to complete partially detected blotches or to remove locations that may have been falsely identified as blotches. A process <b>500</b> may be performed, for example, for each blotch-type pixel identified in operation <b>332</b> or for other types of regions such as multiple-pixel regions. Process <b>500</b> determines whether a particular blotch-type pixel is an isolated blotch-type pixel (<b>510</b>) by determining, for example, whether there are any other blotch-type pixels within a particular distance of the particular pixel. For example, operation <b>510</b> may determine whether the particular pixel is separated from all other blotch-type pixels by at least one pixel. If the particular pixel is isolated (“yes” branch from operation <b>510</b>), then the particular pixel is reclassified as a non-blotch type pixel (<b>520</b>) and process <b>500</b> ends (<b>595</b>).
p-0089If the particular blotch-type pixel is not isolated (“no” branch from operation <b>510</b>), then process <b>500</b> selects a non-blotch type pixel that is connected to the particular blotch-type pixel (<b>530</b>). Process <b>500</b> determines if the DFD of the selected non-blotch type pixel is greater than a threshold (<b>540</b>). The DFD may be determined, for example, with respect to one or more reference frames, and the threshold may be, for example, constant or adaptive. If the DFD is less than or equal to the threshold (“no” branch from operation <b>540</b>), then the selected non-blotch type pixel remains a non-blotch type pixel (<b>550</b>). However, if the DFD is greater than the threshold (“yes” branch from operation <b>540</b>), then process <b>500</b> continues processing the selected non-blotch type pixel with operation <b>560</b>.
p-0090Process <b>500</b> determines if the DFD of the selected non-blotch type pixel is similar to the average DFD for blotch-type pixels that are contiguous to the selected non-blotch type pixel (<b>560</b>). The contiguous pixels may be those pixels, for example, bordering the selected pixel on any of the four sides or the four corners of the selected pixel. The contiguous pixels can also be those pixels that have already been identified as belonging to the partially complete current blotch that is contiguous to the selected non-blotch pixel. Similarity of the DFDs may be determined, for example, by determining whether the DFDs are within a particular threshold of each other, with the threshold being, for example, an absolute number or a percentage. If the DFDs are not similar (“no” branch from operation <b>540</b>), then the selected non-blotch type pixel remains a non-blotch type pixel (<b>550</b>). However, if the DFDs are similar (“yes” branch from operation <b>540</b>), then process <b>500</b> continues processing the selected non-blotch type pixel with operation <b>570</b>.
p-0091Process <b>500</b> determines if the intensity value of the selected non-blotch type pixel is similar to the average intensity value for blotch-type pixels that are contiguous to the selected non-blotch type pixel (<b>570</b>). If the intensity values are not similar (“no” branch from operation <b>540</b>), then the selected non-blotch type pixel remains a non-blotch type pixel (<b>550</b>). However, if the intensity values are similar (“yes” branch from operation <b>540</b>), then process <b>500</b> reclassifies the selected non-blotch type pixel as a blotch-type pixel within the current blotch (<b>580</b>). Other implementations may omit or modify one or more of the operations <b>540</b>, <b>560</b>, and <b>570</b>, or supplement process <b>500</b> with additional operations.
p-0092In other implementations, process <b>500</b> may be applied to more than one pixel at a time. For example, process <b>500</b> may be applied to a region including multiple pixels, and the DFD (<b>540</b>, <b>560</b>) and intensity (<b>570</b>) may be computed for the entire region using, for example, an average of the DFD or intensity for each pixel in the region.
p-0093Further analysis can also be applied to each set of adjacent candidate blotch pixels to determine whether the entire set of pixels belonging to a particular blotch should be retained or rejected as candidate blotch pixels (<b>340</b>). A set of contiguous candidate blotch pixels is also referred to as a candidate blotch region. For example, the criteria of merit can include comparisons of each blotch dimension to minimum and maximum blotch dimensions or a comparison of the total number of pixels within a blotch to a particular threshold.
p-0094<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates an example implementation of a set of refinement steps for a candidate blotch region. A process <b>600</b> includes determining whether the number of pixels in the candidate blotch region is too small (<b>610</b>). If a candidate blotch region is too small (e.g., 1 pixel in dimension), the candidate blotch region may be due to random noise rather than due to a blotch caused by dirt particles or other causes. In this case, a condition that compares the candidate blotch region dimension to a minimum size could lead to the removal of this region as a “blotch” if the dimension was less than the minimum. If the number of pixels in the candidate blotch region is too small (“yes” branch from operation <b>610</b>), then all of the pixels in the candidate blotch region are reclassified as non-blotch type pixels (<b>620</b>). Else, if the number of pixels in the candidate blotch region is not too small (“no” branch from operation <b>610</b>), then process <b>600</b> continues processing the candidate blotch region with operation <b>630</b>.
p-0095Process <b>600</b> determines whether the number of pixels in the candidate blotch region is too large (<b>630</b>). If the number of pixels in a candidate blotch region is too large, it may be unlikely that the set of pixels actually belongs to a blotch (rather, the set may belong to a valid object within the image). As such, a condition that compares the candidate blotch region dimension to a maximum size could lead to the removal of the set of pixel locations as “blotch”-type pixels if the dimension exceeded the maximum. Indeed, if the number of pixels in the candidate blotch region is too large (“yes” branch from operation <b>630</b>), then all of the pixels in the candidate blotch region are reclassified as non-blotch type pixels (<b>620</b>). Else, if the number of pixels in the candidate blotch region is not too large (“no” branch from operation <b>630</b>), then process <b>600</b> continues processing the candidate blotch region with operation <b>640</b>.
p-0096Process <b>600</b> determines whether the number of pixels identified as belonging to a candidate blotch region prior to the refinement operation <b>336</b> is too large (<b>640</b>) in comparison to the total number of pixels identified as belonging to the candidate blotch region after the refinement operation <b>336</b>. For example, if the number of pixels that were added to a particular blotch region is much larger than the number of pixels that were originally identified as belonging to a blotch region, this may indicate that the blotch region is not a valid blotch. As such, a condition that compares the increase of the blotch region size to a threshold could lead to the removal of the set of pixel locations as “blotch”-type pixels if the increase exceeded this threshold. Accordingly, if the number of pixels added to the candidate blotch region is too large (“yes” branch from operation <b>640</b>), then all of the pixels in the candidate blotch region are reclassified as non-blotch type pixels (<b>620</b>). Else, if the number of pixels added to the candidate blotch region is not too large (“no” branch from operation <b>640</b>), then the candidate blotch is accepted (<b>340</b>).
p-0097After accepting a blotch (containing a set of contiguous “blotch”-type pixels) as a candidate blotch region (<b>340</b>), a further refinement may be made to the borders of the blotch (<b>340</b>). For example, process <b>600</b> continues by extending the borders of the candidate blotch region (i.e., adding additional pixels at the borders of the candidate blotch region) based on where the edge transitions that characterize the candidate blotch region end (<b>650</b>). For example, the candidate blotch region may be extended until one pixel prior to the location where the gradient, for example, the first derivative, of the intensity values of adjacent pixels changes direction.
p-0098Process <b>600</b> applies another refinement operation by reclassifying isolated “non-blotch”-type pixels within the candidate blotch region as “blotch”-type pixels if the majority of the isolated pixel's neighboring pixels are blotch-type pixels (<b>660</b>). After the refinement operations (<b>650</b>, <b>660</b>), a final blotch region is determined (<b>670</b>), and a classification map that indicates candidate blotch locations for each color component image is produced. This classification map is transferred from the blotch classification map determination unit <b>230</b> to the blotch modification prediction unit <b>240</b> (<b>344</b>, <b>348</b>).
p-0099The digital color component images corresponding to the frame under consideration as well as to the reference frame(s), the associated motion vectors for the frame under consideration, and the classification map produced by the blotch classification determination unit <b>230</b> are input into the blotch modification prediction unit <b>240</b> (<b>344</b>, <b>348</b>). The blotch modification prediction unit <b>240</b> uses the aforementioned information to accomplish two tasks on each identified set of pixels belonging to a blotch (<b>352</b>): (1) to determine the particular correction technique to be used to restore the pixels within the blotch, and (2) to determine whether or not the blotch modification resulting from the application of the particular correction technique identified in (1) should be accepted. The particular correction technique that is determined may be based on temporal information, spatial information, or both temporal and spatial information. Further, determining the correction technique may include one or more of determining or refining a motion vector, and determining a prediction method.
p-0100In one implementation of the system, predictions of the restored blotch pixels in the color component having the candidate blotch are determined, and predictions of the corresponding pixels in the other two color components are determined. Various tests are then performed on the predicted restored blotch to determine whether the result of the prediction is an appropriate removal of the blotch or an undesired introduction of artifacts. The goal of the tests is to prevent pixel value modifications at locations that have been falsely identified as blotches. If it is determined with the tests that the prediction is not appropriate, additional iterations of the two tasks of operation <b>352</b> may be performed using a correction technique.
p-0101These two tasks of operation <b>352</b> may be performed for each blotch, one blotch at a time, where all contiguous candidate “blotch” pixels are considered to be part of the same possible blotch.
p-0102For the various operations within this unit, the “block” is defined as the set of pixels contained within a box that has a size that is determined by a particular horizontal and vertical extent outside (or at least including, particularly in other implementations) the blotch area, where the blotch area is the set of pixels belonging to a particular blotch.
p-0103<figref idrefs="DRAWINGS">FIG. 7</figref> illustrates an example of a block <b>700</b> containing a blotch. There are fourteen “blotch”-type pixels indicated with a “B,” and the remaining pixels are “non-blotch”-type pixels indicated with an “N.” Note that block <b>700</b> is different than that used in the motion estimation unit <b>220</b>. Block <b>700</b> has a block width <b>710</b> that includes a left horizontal extension <b>720</b> from the blotch and a right horizontal extension <b>730</b> from the blotch. Block <b>700</b> also has a block height <b>740</b> that includes a top vertical extension <b>750</b> from the blotch and a bottom vertical extension <b>760</b> from the blotch.
p-0104<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates one implementation of a set of operations, applied in the blotch modification prediction unit <b>240</b>, that corresponds to operation <b>352</b>. A process <b>800</b> determines the “appropriate” (or “new”) motion vector for a block with a blotch (<b>810</b>). The new motion vector may be chosen, for example, from a set of possible motion vectors. In one implementation of process <b>800</b>, the determination of the “appropriate” motion vector is performed as follows. Initially, a motion vector is determined for the block in the corresponding color component that contains a blotch. This determination may be performed using a number of techniques.
p-0105In one implementation, this motion vector is determined using only those pixels in the block that were identified as being non-blotch pixels, e.g., the pixels labeled “N” in <figref idrefs="DRAWINGS">FIG. 7</figref>. In this way, the possible blotch pixels will not incorrectly impact the motion vector calculated for the block. The motion vector that results in the motion prediction with the least distortion for the non-blotch pixels in the block is chosen as the “appropriate” motion vector.
p-0106As an example, a candidate motion vector may be determined by using a vector determined in motion estimation unit <b>220</b> for the blotch under consideration (note that the blocks used in motion estimation <b>220</b> were not necessarily defined with respect to a blotch), or using a vector from a nearby blotch, or using a vector determined by considering other component images. A distortion value based on a distortion measure (such as DFD) may be computed for the candidate motion vector using only non-blotch pixels (or otherwise), and the distortion values associated with a number of candidate vectors (which may be obtained throughout a window around an initial candidate motion vector) may be computed. The candidate motion vector resulting in the lowest distortion value may be selected as the “appropriate” motion vector. As another example, an “appropriate” motion vector may be determined by selecting the vector that produces the lowest distortion value for the corresponding block in the other component images.
p-0107Process <b>800</b> includes performing an additional test to determine if the selected motion vector is acceptable (<b>820</b>). In one implementation, the selected motion vector is applied to the block in one of the two color components that does not have the possible blotch. A comparison is made between the performance of the motion prediction on those pixels that correspond to the pixels identified as a blotch (e.g., the pixels at the same pixel locations as those identified as “B” in <figref idrefs="DRAWINGS">FIG. 7</figref>) and those pixels that correspond to the pixels identified as non-blotch (e.g., the pixels at the same pixel locations as those identified as “N” in <figref idrefs="DRAWINGS">FIG. 7</figref>). In particular, the displaced frame differences of these two parts, with respect to the reference frame, are calculated. If the two displaced frame differences are within a threshold, indicating that the motion vector computed using the “non-blotch”-type pixels is appropriate (i.e., the motion vector captures the correct motion) for the “blotch”-type pixels within the block, then the motion vector is accepted.
p-0108The two displaced frame differences might not be within the threshold if, for example, the block is part of a relatively uniform object (so that multiple motion vectors may produce similarly low distortion) with the non-blotch-type pixels being relatively uniform but the blotch-type pixels having some information. In such a case, motion estimation using only the non-blotch-type pixels might be inaccurate and determine that another relatively uniform section of the object (which produces low DFD) reflects the proper motion vector. However, if such a motion vector results in the loss of the information of the blotch-type pixels in the other color components, then the DFD of the blotch-type pixels may be large enough (compared to the DFD of the non-blotch-type pixels) to reveal the inaccuracy of the motion vector.
p-0109If the selected motion vector is acceptable (“yes” branch from operation <b>820</b>), then a prediction for the blotch pixels in the block is determined using the chosen (selected) motion vector (<b>830</b>). For example, the pixels in the reference frames that have been computed to correspond to the “blotch”-type pixels in the current frame are used to replace those “blotch”-type pixels in the current frame. In one implementation, the reference pixels are used directly as a replacement. In an alternative implementation, a function of the reference pixels can be used to obtain the replacement. For example, this may be a weighted average of the pixels in the corresponding reference frames. Thereafter, operations (for example, operations to implement the second task of operation <b>352</b>) are performed in order to determine whether blotch modification would introduce undesired artifacts at the previously determined blotch locations.
p-0110If the displaced frame differences on the aforementioned two parts (i.e., the set of “N” pixels and the set of “B” pixels within the block) are not similar to each other (e.g., the two differences differ by more than a particular threshold), the motion vector is deemed not acceptable and temporal prediction will not be used to restore the block (“no” branch from operation <b>820</b>). Additionally, if the restored blotch using temporal prediction (<b>830</b>) introduces artifacts (<b>870</b>), as explained below, then temporal prediction will not be used. In each of these cases, process <b>800</b> determines a prediction for the restored blotch using spatial information (<b>840</b>).
p-0111In one implementation, a spatial prediction is performed using linear interpolation between the pixel values along either the horizontal or vertical axis of the possible blotch. The direction of the interpolation can be determined in several ways. One possible method is to choose the direction that has the smaller extent across the possible blotch.
p-0112Process <b>800</b> determines whether the spatial prediction seems appropriate (<b>850</b>) by, for example, determining whether the spatially predicted restoration satisfies one or more criteria. In one implementation, the spatial interpolation can be performed on one or more of the other two color components at the corresponding location of the possible blotch. Assuming both other color components are processed with this test, distortion measures can then be computed between the predicted pixels and the original pixels for the other color components. If the distortion for either color component is above a particular threshold, it is deemed that spatial interpolation is not appropriate. This is because the other color components are typically not expected to be changing much because these other color components do not contain a blotch in that location. If replacing these other color components with pixel values obtained with spatial interpolation causes the values to be very different, then it may imply that spatial interpolation would not produce a good replacement for the blotch in the color component that contains the blotch. Accordingly, in process <b>800</b>, if spatial prediction does not seem appropriate (“no” branch from operation <b>850</b>), then no correction is performed and the pixels retain their original intensity values (<b>860</b>). In such cases (<b>860</b>), it may often be assumed that the candidate blotch was not really a blotch.
p-0113However, if spatial prediction does seem appropriate (“yes” branch from operation <b>850</b>), then operations (for example, operations implementing the second task of operation <b>352</b>) are performed in order to determine whether blotch modification would introduce undesired artifacts at the previously determined blotch locations. The spatial prediction may seem appropriate if, for example, the distortion for both of the other color components is below a particular threshold. Operations, such as, for example, operations corresponding to the second task of operation <b>352</b>, are also performed after performing a temporal prediction (<b>830</b>).
p-0114In process <b>800</b>, an implementation of the second task of operation <b>352</b> begins with operation <b>870</b>, which determines if the prediction (spatial or temporal) introduces an artifact (<b>870</b>). In one implementation, a particular measure is computed on the block of the color component with the possible blotch using the pixels in the block before the predicted restoration of the block, and the same measure is computed using the pixels in the block after the predicted restoration of the block. The measure may be, for example, the variance of the block. The same measure is computed for the other two color components using corresponding sets of pixels. These computed values are then used to determine if the restored prediction of the block would benefit the block or introduce undesired artifacts.
p-0115For example, consider the case in which variance is used as the measure. If an actual blotch occurred within a color component image (this component will be referred to as the first color component in the remainder of this example), it is likely that the variance of the block that contains this blotch within this color component would decrease a large amount after it has been replaced by pixels from the corresponding reference frames. This is because the blotch would usually have very different intensity values compared to the other pixels in the block, thus leading to higher variance within the block before restoration. In contrast, the pixels used to replace the blotch would be more similar to the other pixels in the block since the replacement is intended to be a good representation of the original, unblotched pixel values (thus leading to a much lower variance within the block after restoration). Because the other color component images of the frame under consideration do not contain blotches in the corresponding blotch area, the corresponding pixels in the other color component images in a reference frame should be similar to the pixels being replaced in the other color component images of the frame under consideration. As such, the variance of the block within the other color component images should not be changed much after the “predicted” restoration in these other color components images.
p-0116This motivates a set of criteria to be used based on variance to determine whether the blotch in the first color component image should be replaced or whether it has been falsely identified as a blotch. In particular, the change in variance that results when the candidate blotch is replaced is computed for the block in the component containing the blotch. The change in variances for the other color component images are computed when the set of pixels corresponding to the same locations as the “blotch”-type pixels within the block in the first component are replaced with pixels within these other color component images (through either temporal or spatial interpolation of these other color component images). In the case where the reduction of variance in the block within the color component containing the blotch exceeds a particular threshold (either constant or adaptive), and the change in variances of the corresponding block for the other color component images are less than a particular threshold, the candidate blotch is probably an actual blotch and it therefore retains its blotch classification.
p-0117However, there are conditions on the variance that may indicate that the blotch has been falsely identified or that the replacement pixels chosen are not appropriate for that blotch and thus should not be used. For example, if the correction of the blotch does not reduce the variance of the block in the component image with the candidate blotch, then it is deemed not to be a candidate blotch, and the original pixel values at the possible blotch locations are retained.
p-0118Another example where replacement of the blotch is deemed undesirable occurs in the case where there is a reduction of variance for the block within the color component image containing the blotch that exceeds a particular threshold (either constant or adaptive) and the reduction in variance of the block for the other color component images also exceeds a particular threshold. In this case, it is likely that the candidate blotch was not actually a blotch. As explained above, this is because the other color components images, which do not contain a blotch for the set of pixels under consideration, should not be impacted much by a replacement of these pixels, since these pixels are intended to represent good replacements for the block (this is the motivation for using these pixels to replace the “blotch”-type pixels in the first color component). If the variance was reduced by replacement of the pixels in the other color component images as well as the color component image with the candidate blotch, then it is likely due to the fact that the area that the candidate blotch covers actually characterizes a particular valid object within the frame that was different from other pixels within the block (e.g., through different motion of this object). As such, the candidate blotch is not modified, and the original pixel values at the block locations are retained.
p-0119To elaborate, suppose a particular candidate blotch in the red color component is being analyzed to see whether or not it is a valid blotch. Define P_r as the set of pixels corresponding to the “block” containing the particular blotch in the red color component. Define PRest_r as the set of pixels corresponding to the block after the blotch within it has been “restored” by a particular technique, as described in the first process above. Define P_g and P_b as consisting of the same set of pixels as those in P_r. Define PRest_g as the set of pixels in the green color component that corresponds to the block after applying the same restoration technique as that used to generate PRest_r, and define PRest_b as the corresponding set of pixels in the blue color component. Also, define Var(x) as the variance on the set of pixels defined by the set x. Then one example of a set of conditions is as follows:
p-0120(i) If (Var(P_r)/Var(PRest_r)>1+Threshold<b>1</b>) and (Var(P_g)/Var(PRest_g) is close to one) and (Var(P_b)/Var(PRest_b) is close to one),
p-0121then replace the set of pixels corresponding to the blotch in the red color component;
p-0122(ii) Otherwise, do not replace the set of pixels corresponding to the blotch in the red color component.
p-0123Additional conditions can be used to account for cases where Var(P_r) and Var(PRest_r) are high. For example, if the variances are high, then the variances might not provide meaningful information. In such a case, a different measure, such as, for example, an average, may be used. Note that an average also may be used when the variances are not high.
p-0124Here the various thresholds (including those corresponding to “close to one”) can be constant or can be adaptive. In addition, Threshold<b>1</b>, as indicated here in this particular implementation, is a positive number. “Close to one” may define a range that is, or is not, symmetric about the value of one. In one implementation, the thresholds listed above are determined by machine learning on training data. In another implementation, a number of different measures are considered and a classifier is developed using machine learning to provide the set of measures (or a function of the measures) and the associated thresholds for the determination. For example, both variance and average measures can be used and different thresholds can be applied to each measure. In one implementation, an average measure is used for applications in which a blotch occurs in a high-variance area of a color component image because the variance, rather than decreasing, may remain relatively constant or may increase when the blotch pixels are replaced. Machine learning refers, for example, to the use of training data having known characteristics, thereby allowing the machine to iterate through various measures and thresholds and evaluate the success of each.
p-0125Process <b>800</b> accepts the selected prediction technique (spatial or temporal) (<b>880</b>) if the prediction technique does not introduce artifacts (“no” branch from operation <b>870</b>). However, if the prediction technique introduces artifacts (“yes” branch from operation <b>870</b>), then process <b>800</b> determines whether the prediction technique is temporal (<b>890</b>). If the prediction technique is temporal, and introduces artifacts (“yes” branch from operation <b>890</b>), then process <b>800</b> attempts to perform a spatial prediction (<b>840</b>). However, if the prediction technique is spatial and introduces artifacts (“no” branch from operation <b>890</b>), then process <b>890</b> does not correct the candidate blotch and the pixels retain their original intensity values (<b>860</b>). In various implementations, multiple algorithms may be selected by the first task of operation <b>352</b>, and the second task of operation <b>352</b> may be used to select among these algorithms. It is also possible, as just indicated, that no algorithm is selected by unit <b>240</b>.
p-0126After the steps outlined in this section, the blotch modification prediction unit <b>240</b> produces the refined classification map, which may also designate the particular blotch correction technique used for each blotch (including any refined motion vectors) and transfers this information to the blotch modification application unit <b>250</b> (<b>360</b>, <b>364</b>).
p-0127After the blotch modification prediction unit <b>240</b> has been applied, the blotch modification application unit <b>250</b> is used to restore those pixels that were identified as blotches (<b>368</b>). The pixels for each blotch are restored using the blotch modification prediction method chosen in the blotch modification prediction unit <b>240</b>. All pixels identified as non-blotch pixels remain unchanged. In other implementations, blotch modification prediction unit <b>240</b> also may apply the algorithm(s)/technique(s) that are selected in unit <b>240</b>, rather than using a separate unit to apply the algorithm(s)/technique(s).
p-0128Various implementations may correct blotches in a given component, for a given frame, on the fly, and may base subsequent decisions as to whether/how to correct another blotch in the given component (and frame) on the blotch-corrected data. Further, implementations may correct blotches in a given component (and frame) all at once after all identified blotches in that component (and frame) have been processed. Then, blotch correction of further components for that frame would be based on the blotch-corrected data of the previously processed component. More generally, correction for further components or frames may be based on corrected data for previous components or frames.
p-0129Additional processing may also be performed. For example, after all blotches in a given component of a frame, in all components of a frame, or in several frames have been corrected/restored, a further test may be performed to analyze the aggregate impact of the restorations. Such a test may include calculating another distortion measure for one or more blotch areas based only on the corrected data.
p-0130Once the color component images have been modified by the blotch modification application unit <b>250</b>, the modified images are provided to the composite phase unit <b>260</b> (<b>372</b>, <b>376</b>) and the modified images are recombined into a composite color frame by the composite phase unit <b>260</b> (<b>380</b>). <figref idrefs="DRAWINGS">FIG. 9A</figref> illustrates a color version of a composite frame after the composite phase unit <b>260</b> has been applied to the three color component images and <figref idrefs="DRAWINGS">FIG. 9B</figref> illustrates a non-color version. The locations where blotches occurred on <figref idrefs="DRAWINGS">FIGS. 1A and 1B</figref> are circled in <figref idrefs="DRAWINGS">FIGS. 9A and 9B</figref>. In one implementation, a laser film printer is optionally used to avoid the loss of resolution incurred with an optical printer.
p-0131Various of the implementations described do not assume that a blotch takes on a particular regular shape (e.g., circular, ellipsoid, or rectangular-shaped). Further, various of the implementations described do not replace areas strictly using a particular shape, such as by, for example, replacing areas on a block-by-block basis. Rather, various of the described implementations attempt to determine the shape of a blotch based on the particular characteristics of that blotch. Because a blotch may be arbitrary in shape, the shape determined for the blotch by one or more of the various described implementations also may be arbitrary in shape and may have, ideally, the same shape as the actual blotch.
p-0132Thus, if an image includes an arbitrarily shaped blotch, for example, an irregularly shaped blotch, and the blotch has been modified using the arbitrary shape of the blotch, then one of the described implementations may have been used to modify the blotch. Whether an arbitrary shape of a blotch has been identified and used to modify a blotch (e.g., an actual blotch or a suspected blotch) may be determined, for example, by determining the shape of the replaced portion of an image. The shape of the replaced portion of an image may be determined if the replaced portion of the image shows differences in color with a neighboring non-blotch, non-replaced portion of the image. Such differences may be due to imperfect color matching in the replaced portion of the identified blotch. Such imperfect color matching may arise, for example, from using the color from a corresponding area of a reference image. Ideally, these differences should be minimal, and various described implementations attempt to minimize the differences by applying various tests and replacement techniques.
p-0133Additionally, it is possible that application of one or more of the described implementations will produce other artifacts, particularly if only a portion of a described implementation is performed. One type of artifact may result if the arbitrary shape of a blotch is not perfectly identified and, in particular, if part of the blotch is not included in the identified blotch. In such a situation, part of the blotch might not be modified, leaving, for example, a smaller unmodified portion of the blotch adjacent to a larger area representing the modified portion of the blotch. The unmodified portion of the blotch may have a color that varies considerably from neighboring areas.
p-0134Further, artifacts also may result if non-blotch pixels are falsely identified as blotches (i.e., if there are false positives) and modified. These non-blotch artifacts may be more significant than the blotch artifacts, and may, for example, replace an actual object in an image. One or more of the described pruning algorithms may help to reduce the number of false positives.
p-0135Referring to <figref idrefs="DRAWINGS">FIG. 10</figref><i>a</i>, a portion <b>1000</b> of an image includes a blotch <b>1010</b> of arbitrary, and irregular, shape. Referring to <figref idrefs="DRAWINGS">FIG. 10</figref><i>b</i>, an algorithm detects blotch <b>1010</b> but determines that blotch <b>1010</b> has a shape indicated by a dashed contour <b>1020</b>. Referring to <figref idrefs="DRAWINGS">FIG. 10</figref><i>c</i>, dashed contour <b>1020</b> defines an estimated blotch <b>1030</b> having an arbitrary and irregular shape, indicated by hatched lines. As shown in <figref idrefs="DRAWINGS">FIG. 10</figref><i>b</i>, dashed contour <b>1020</b> perfectly tracks the shape of blotch <b>1010</b> except for two areas. As shown in <figref idrefs="DRAWINGS">FIG. 10</figref><i>c</i>, the first of these two areas is an overshoot of dashed contour <b>1020</b> that includes a non-blotch area <b>1040</b> (indicated with cross-hatched lines) within dashed contour <b>1020</b> and within estimated blotch <b>1030</b>. The second of these two areas is an undershoot of dashed contour <b>1020</b> that omits a blotch area <b>1050</b>, having an arbitrary and irregular shape, from within dashed contour <b>1020</b> and from within estimated blotch <b>1030</b>. Upon modification of the area within estimated blotch <b>1030</b>, estimated blotch <b>1030</b> may be referred to as a modified blotch (or a modified estimated-blotch).
p-0136Assuming a perfect color replacement of estimated blotch <b>1030</b>, <figref idrefs="DRAWINGS">FIGS. 10</figref><i>a</i>-<i>c </i>still produce an artifact as a result of not modifying blotch area <b>1050</b>. Area <b>1050</b> may have an arbitrary color depending on the nature of the blotch. Further, assuming that estimated blotch <b>1030</b> is not perfectly restored in color, then the modification of estimated blotch <b>1030</b> (that is, modified estimated-blotch <b>1030</b>) itself may appear as an artifact. Modified estimated-blotch <b>1030</b> may have an arbitrary color depending on the algorithm used to replace/modify estimated blotch <b>1030</b>. However, various described implementations perform good color matching, so modified estimated-blotch <b>1030</b> typically does not differ significantly in color from the surrounding area (except for blotch area <b>1050</b>).
p-0137As such, various described implementations may produce arbitrarily shaped areas of replacement pixels. These areas (e.g. modified estimated-blotch <b>1030</b>) may have color that is slightly different from a neighboring area, and perhaps very similar to previous or succeeding frames if temporal interpolation is used. These areas also may have color that varies significantly and incorrectly from the neighboring area, particularly if only a portion of a described implementation is performed. Also, various described implementations may produce (particularly if only a portion of a described implementation is performed) arbitrarily shaped artifacts (e.g. blotch area <b>1050</b>) that may vary in color from a neighboring area. Further, the occurrence of such arbitrarily shaped areas or artifacts may reveal that at least a portion of one of the described implementations has been applied to the image.
p-0138The implementations and techniques described above can be applied to a variety of applications in which blotches can occur on one or more of multiple component images, such as, for example, on separations. Examples include spectral and non-spectral separations. Spectral separations are used, for example, in: (1) color film applications capturing, for example, different color frequencies, (2) astronomical applications capturing, for example, radio frequencies and/or optical frequencies, and (3) medical applications capturing, for example, different magnetic (MRI), X-ray, and sound (ultrasound) frequencies. As the last example illustrates, spectral separations may be captured from various frequency sources, including, for example, electromagnetic and sound waves. Non-spectral separations may be obtained from, for example, variations in pressure, temperature, energy, or power.
p-0139A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the claims. For example, the features, operations, or components of one or more of the implementations described may be modified, omitted, combined, and supplemented to produce other implementations. Additionally, implementations and features may be implemented in a process, a device, a combination of devices employing a process, or in a computer readable medium of a storage device (for example, an external or internal hard disk, a floppy disk, a CD, a DVD, a cassette, a tape, ROM, RAM, or a programmable device) or a programmable device (for example, a processor, programmable logic device, application specific integrated circuit, or controller chip) embodying instructions (in, for example, software, firmware, or hardware) for such a process. A computer readable medium also may include electromagnetic waves encoding or transmitting instructions.
p-0140Further, implementations and features may be implemented in a software carrier that may include, for example, a storage device or programmable device having a computer readable medium, or another device that can carry software. A software carrier also may include a waveform and need not be computer readable. Additionally, software carried by a software carrier may include, for example, one or more of source code, executable code, and data.
p-0141One such device is, for example, a computer including a programmable device with appropriate programmed instructions and, if needed, a storage device. The computer may include, for example, one or more general-purpose computers (for example, personal computers), one or more special-purpose computers (for example, devices specifically programmed to communicate with each other), or some combination.
p-0142Further, images may be stored on a storage device. For example, a DVD may be used to store a single image or an entire movie that has been processed with a described implementation. The DVD, or other storage device, also may store an unmodified image, such that a user may view both the unmodified and modified image(s). Such DVDs, or other storage devices, may be provided to users to allow users to view the images, such as by providing a DVD with a restored/modified version of a famous movie. Such storage devices also include, however, computer hard drives and other storage devices used to produce and store modified images, such as a storage device of a computer of an engineer developing blotch-modification algorithms.
p-0143Accordingly, other implementations are within the scope of the following claims.
Contents6
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2001031128A1 | Cites | United States of America | Applicant |
| US2002021365A1 | Cites | United States of America | Applicant |
| US2002180885A1 | Cites | United States of America | Applicant |
| US2004036765A1 | Cites | United States of America | Applicant |
| US2004101195A1 | Cites | United States of America | Applicant |
| US2005152458A1 | Cites | United States of America | Applicant |
| US5613013A | Cites | United States of America | Applicant |
| US6208749B1 | Cites | United States of America | Search report |
| US6542199B1 | Cites | United States of America | Applicant |
| US6624844B1 | Cites | United States of America | Applicant |
| US6718068B1 | Cites | United States of America | Applicant |
| US6850651B2 | Cites | United States of America | Search report |
| US7046909B2 | Cites | United States of America | Applicant |
| MTI Digital Restoration Services, www.mathtech.com, published Dec. 6, 2000, 3 pages. | Non-patent | – | Applicant |
| MTI Digital Restoration Services, www.mathtech.com, published May 17, 2001, 7 pages. | Non-patent | – | Applicant |
| Mathematical Technologies Inc., "Mathematical Technologies Delivers Intellideck on New SGI Platforms", www.mathtech.com, published Apr. 23, 2001, 1 page. | Non-patent | – | Applicant |
| Van Roosmalen, P.M.B., "Restoration of Archived Film and Video," Thesis Delft University of Technology, Universal Press, 1999, 156 pages. | Non-patent | – | Applicant |
| Gangal et al., "An improved motion-compensated restoration method for damaged color motion picture films," Feb. 2004, Signal Processing: Image Communication, vol. 19, Issue 4, pp. 353-368. | Non-patent | – | Applicant |
| Saito T. et al, "Image Processing for Restoration on Heavily-Corrupted Old Film Sequences", Los Alamitos, CA, USA, vol. 3, Sep. 3, 2000, pp. 13-16. | Non-patent | – | Applicant |
| Tenze, L. et al, "Blotches Correction and Contrast Enhancement for Old Film Pictures", Piscataway, NJ, USA, Sep. 10, 2000, pp. 660-663. | Non-patent | – | Applicant |
| International Search Report, 6 pages, Feb. 23, 2006. | Non-patent | – | Applicant |
| Written Opinion of the International Searching Authority, 5 pages, Feb. 23, 2006. | Non-patent | – | Applicant |
21 members in 6 offices
Priority claims1
| Document | Office | Kind | Date |
|---|---|---|---|
| 61393904 | United States of America | P |
Members21
| Document | Office | Kind | |
|---|---|---|---|
| US2006067574A1 | United States of America | A1 | |
| US2006067589A1 | United States of America | A1 | |
| AU2005292129A1 | Australia | A1 | |
| CA2582094A1 | Canada | A1 | |
| WO2006039320A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP1800260A1 | European Patent Office (EPO) | A1 | |
| JP2008515347A | Japan | A | |
| US7689036B2 | United States of America | B2 | |
| US7724946B2This record | United States of America | B2 | |
| US2010232689A1 | United States of America | A1 | |
| US8160385B2 | United States of America | B2 | |
| US2012201429A1 | United States of America | A1 | |
| EP1800260B1 | European Patent Office (EPO) | B1 | |
| US8538194B2 | United States of America | B2 | |
| US2014016828A1 | United States of America | A1 | |
| CA2582094C | Canada | C | |
| US8977070B2 | United States of America | B2 | |
| US2015178942A1 | United States of America | A1 | |
| US9240052B2 | United States of America | B2 | |
| US2016210758A1 | United States of America | A1 | |
| US9619897B2 | United States of America | B2 |
80 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Receipt into PubsR1021 | R1021 | |
| Receipt into PubsR1021 | R1021 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail-Petition Decision - GrantedMPTGR | MPTGR | |
| Petition Decision - GrantedPTGR | PTGR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response to Election / Restriction FiledELC. | ELC. | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Restriction RequirementMCTRS | MCTRS | |
| Restriction/Election RequirementCTRS | CTRS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| Application Is Now CompleteCOMP | COMP | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Petition EnteredPET. | PET. | |
| Initial Exam Team nnIEXX | IEXX |
24 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 07724946
- Application
- 23679005
Titles
- English
- Software carrier containing corrected blotches in component images
Patent term adjustment
- A delay
- +681 daysthe office missed an examination deadline
- B delay
- +410 dayspendency past three years
- Overlap
- −11 daysdelays counted once
- Applicant delay
- −68 days
- Net adjustment
- 1,012 days
Classification
- CPC, 6
- G06T7/0004
- G06T7/248
- G06T5/50
- G06T2207/10024
- G06V10/267
- G06T5/77
- IPC, 1
- G06K9 00