# Patent

## Title
Motion adaptive image processing

## Abstract

A method of image processing for converting interlaced images to progressive scan images comprises the steps of generating a motion dependent mixing value for determining the extent to which a preceding image field should be mixed with a current intra-field interpolated image field at a given pixel position, comparing the generated mixing value with a preceding historical mixing value, and if the comparison indicates an increase in motion, using the generated mixing value; otherwise, if the comparison indicates a decrease in motion, temporally filtering the generated mixing value prior to use.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to motion adaptive image processing.
2. Description of the Prior Art
Video image capture represents a spatial and temporal sampling process. An image is captured as a set of pixels arranged in rows or lines. Successive images are captured at spaced instants in time.
A complication is the common use of interlaced video capture and processing. In an interlaced video signal, each image is handled as two sets or fields of alternate lines of pixels. For example, odd numbered lines might be included in one field, whereas even numbered lines could be included in the next field. An advantage of interlaced techniques is that they give an apparent doubling of the image rate, so reducing flicker effects, for no substantial increase in video signal bandwidth.
All of these aspects of sampling can give rise to alias effects if an attempt is made to capture or process video material having spatial or temporal frequencies which are too high for the respective sampling rate. But a particular alias problem will be described here in the area of interlace to progressive scan video conversion.
If it is desired to convert between interlaced video and progressive scan (non-interlaced) video, then for non-moving images it is merely necessary to interleave two successive fields to recreate a non-interlaced frame having all lines of pixels present. However, if there is any significant inter-field motion, this approach may not work. In such circumstances it can be more appropriate to derive the lines of pixels which are missing in one field from other pixels in that same field. In other words an intra-field interpolation process is used.
In practice, a video source may comprise image sequences in which some regions represent moving images whilst some regions do not. For example, when a newscaster speaks to a fixed camera, the newscaster's mouth, face, and head may move considerably, whilst their torso, the desk and the wall behind them do not.
Therefore the different conversion strategies noted above may be appropriate within different regions of the same image. It is therefore important to determine which strategy to use for a given pixel.
Interpolation will generally give a worse result than interleaving for non-moving portions, whereas interleaving and will generally give a worse result than interpolation for moving portions. So, the choice of the more appropriate technique is very important.
Notably, the presence of noise within the video signal can cause differences between successive fields that may be erroneously interpreted as motion, causing in turn different interpolation strategies to be used that give different output results in the progressive image, thereby exacerbating the noise.
Moreover, the application of different conversion strategies within different adjoining parts of a single image, or in different corresponding parts of successive images, can cause a further subjective impact on perceived quality by the viewer of the resulting image sequence; in general terms, a constant and consistent level of noise subjectively looks much better than noise that is isolated in discrete spatial or temporal parts of the image sequence.
However as noted above, the selection of different conversion strategies within discrete spatial or temporal regions has the potential to highlight variations in noise within the image sequence.
It is therefore an object of the invention to reduce the impact of differing conversion strategies upon the subjective perception of noise in an image.
SUMMARY OF THE INVENTION
In a first aspect of the present invention, a method of image processing for converting interlaced images to progressive scan images comprises the steps of generating a motion dependent mixing value for determining the extent to which an adjacent image field should be mixed with a current intra-field interpolated image field at a given pixel position, comparing the generated motion dependent mixing value with a historical motion dependent mixing value, and if the comparison indicates an increase in motion, using the generated mixing value; otherwise, if the comparison indicates a decrease in motion, temporally filtering the generated mixing value prior to use.
In another aspect of the present invention, an image processing apparatus for converting interlaced images to progressive scan images comprises mixing means operable to mix an adjacent image field with a current intra-field interpolated image field at a given pixel position, value generating means operable to generate a motion dependent mixing value for determining the extent to which the adjacent image field should be mixed with the current image field at a given pixel position, and comparator means operable to compare the generated motion dependent mixing value with a historical motion dependent mixing value; in operation, if the comparison indicates an increase in motion, the mixing means uses using the generated mixing value, otherwise if the comparison indicates a decrease in motion, the generated mixing value is temporally filtered prior to use by the mixing means.
Beneficially, by applying temporal filtering in this conditional fashion the above aspects of the present invention therefore allow sudden fast motion to be quickly detected whilst still preventing interlace effects on fast-moving sequences. This effect is illustrated in FIGS. 11 and 12 of the accompanying drawings, which are expanded views of the two images, one (FIG. 11) generated without an embodiment of the technique defined above, and the other (FIG. 12) generated with the use of an embodiment of the present invention. In FIG. 11, the motion blur associated with a fast-moving fairground ride can bee seen in region 501 to show striations caused by the interleaving of the present image with a preceding image in which the ride was not present at that position. By contrast, in FIG. 12, the motion blur in corresponding region 502 is spatially interpolated from the present image, thereby avoiding the striation problem seen in FIG. 11.
Further respective aspects and features of the invention are defined in the appended claims.



BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects, features and advantages of the invention will be apparent from the following detailed description of illustrative embodiments which is to be read in connection with the accompanying drawings in which:
FIG. 1 schematically illustrates a flat-screen display arrangement;
FIG. 2 schematically illustrates video mixing operation in a studio environment;
FIG. 3 schematically illustrates an interlace to progressive converter;
FIGS. 4a to 4c schematically illustrate gradient detection;
FIGS. 5 and 6a to 6e schematically illustrate a spatial block matching operation;
FIGS. 7a and 7b schematically illustrate an alias situation;
FIGS. 8a to 8d schematically illustrate alias detection techniques;
FIG. 9a schematically illustrates a motion adaptive interpolator;
FIG. 9b schematically illustrates motion detection between successive video fields;
FIG. 10 schematically illustrates a high frequency check operation;
FIG. 11 schematically illustrates interleaving artefacts;
FIG. 12 schematically illustrates the mitigation of the interleaving artefacts seen in FIG. 11; and
FIG. 13 is a schematic flow diagram illustrating a method of image processing.



DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 schematically illustrates a flat screen display arrangement 10 comprising a source of interlaced video material 20, an interlace to progressive scan converter 30 and a display panel 40 such as a liquid crystal (LCD) or plasma display. This illustrates a typical use of interlace to progressive scan conversion, in that many broadcast signals are in the interlaced format whereas many flat panel displays operate most successfully in a progressive scan format. Accordingly, in FIG. 1, a broadcast signal received by the source of interlaced material 20 is used to generate an interlaced signal for display. This is passed to the interlace to progressive scan converter 30 to generate a progressive scan signal from the interlaced signal. It is the progressive scan signal which is passed to the display 40.
It will be appreciated that the source of interlaced material 20 need not be a broadcast receiver, but could be a video replay apparatus such as a DVD player, a network connection such as an internet connection and so on.
FIG. 2 schematically illustrates a video mixing operation in a studio environment, in order to give another example of the use of interlace to progressive scan conversion. Here, a source of interlaced material 50 and source of progressive scan material 60 are provided. These sources could be cameras, video replay apparatus such as video tape recorders or hard disk recorders, broadcast receivers or the like.
The interlaced output from the source of interlaced material 50 is supplied to an interlace to progress scan converter 70 to generate a progressive scan signal. This can be processed by the vision mixer 80 along with the progressive scan material from the source 60 to generate a processed progressive scan output. Of course, the progressive scan output of the vision mixer 80 can be converted back to an interlaced format if required, e.g. for subsequent broadcast or recording. It will also be appreciated that the vision mixer 80 is just one example of video processing apparatus; instead, a digital video effects unit, for example, could be used at this position in FIG. 2.
FIG. 3 schematically shows an interlace to progressive scan converter. In general terms, the converter comprises an intra-field interpolator such as a spatial interpolator 100, a motion adaptive interpolator 110 and a set of three field stores 120.
The converter of FIG. 3 operates to generate output progressive scan frames at the same repetition frequency as the input interlaced fields. Therefore, a main requirement of the converter is to generate the “missing” pixels in each interlaced field to turn that interlaced field into a progressive scan frame. This can be achieved in one of two ways. On one hand, the spatial interpolator 100 generates the “missing” pixels by spatial interpolation within the field concerned. In other words, this is an intra-field operation. On the other hand, the motion adaptive interpolator generates the missing pixels by inserting pixels from an adjacent field of the opposite polarity. This is valid only if there is no image motion between the fields, so the basic organisation of FIG. 3 is that the output of the spatial interpolator 100 is used at image positions where image motion is detected, while the output of the motion adaptive interpolator 110 is used at pixel positions where image motion is not detected. For simplicity of operation, the spatial interpolator operates at each pixel position, and the motion adaptive interpolator either selects the output of the spatial interpolator, or selects a pixel from another field of the opposite polarity for output, or mixes the two.
The motion adaptive interpolator will be described in more detail below. First, the spatial interpolator will be briefly described.
The spatial interpolator comprises a 1:2 horizontal pixel scaler 130, a spatial block matcher 140, a minimum error selector 150, a diagonal interpolator 160, a dot noise reducer 170 and a Kell-factor corrector 180. The operation of each of these is summarised below.
The scaler 130 uses horizontal linear interpolation to generate one additional pixel value between each two pixels of the input interlaced field (i.e. a 1:2 scaling operation). So, the horizontal resolution (at least in terms of number of available pixel values) is doubled, but no difference is made at this stage to the vertical resolution.
The overall operation of the spatial block matcher 140 and the diagonal interpolator 160 is to detect the orientation of an image feature relevant to a pixel position where a new pixel is to be interpolated, and then to apply an interpolation along that image feature direction. So, if a current pixel position to be interpolated lies within a diagonal image feature (a line, an edge etc.) at, say, 45° to the horizontal, interpolation of that new pixel would take place along that 45° direction. This can tend to give a better output result than restricting the interpolation to horizontal or vertical interpolation. A key part of this process, clearly, is therefore to detect the direction of an image feature at each pixel position.
Referring now to FIGS. 4A-4C, this detection is carried out using a block matching process. FIG. 4A schematically illustrates a successful block match between two blocks 200, 210 of pixels around the position of an unknown pixel 220 (a circle with a question mark inside). Indeed, the notation used in the present drawings is that a square indicates a known pixel whereas a circle indicates a pixel to be interpolated by the diagonal interpolator 160. The shading in FIGS. 4A to 4C is a schematic representation of an image feature.
So, referring to FIG. 4A, a successful block match is obtained between the blocks 200, 210 around the unknown pixel position 220, indicating a gradient of an image feature of 1/2.
Turning now to FIG. 4C, an image feature is vertical and there is again a successful block match between overlapping blocks 230, 240.
However, in FIG. 4B, the image feature has a gradient of 1/1. It is not possible to obtain a successful block match with the blocks at integral pixel positions. A successful match between blocks 250, 260 occurs at a half integral pixel position. Accordingly, in order to detect gradients of this nature (indeed any gradients sharper than 1/2), it is necessary to operate at a sub-pixel accuracy. In the present case, a half-pixel accuracy was adopted, by using pixels from the 1:2 scaler. If a greater accuracy still was used, (e.g. quarter-pixel accuracy) then gradients yet closer to vertical could be detected.
FIGS. 5 and 6A to 6E schematically illustrate the spatial block matching operation.
As noted above, spatial block matching is carried out at sub-pixel accuracy; in this case half-pixel accuracy.
A range of block sizes is used, with corresponding search ranges (maximum displacements relative to the pixel position under test). Taking into account the 1:2 scaling operation, example block sizes and search ranges are given in the following table:














Block Size (in scaled pixels)
Search Range (in scaled pixels)









3v × 5h
  0h



3v × 5h
±1h



3v × 7h
±2h



. . .
. . .



 3v × 41h
±19h 










FIG. 5 schematically illustrates a block match operation between two blocks of 3 v (vertical) by 7 h (horizontal) pixels 300, 310, around an unknown pixel position 320. The variable d signifies a horizontal displacement of the block's horizontal centre from the pixel position under test. A condition applied to the block matches is that the blocks must always overlap the pixel position under test. Also, the blocks are shown displaced in integral numbers of real pixel displacements (so a displacement of m corresponds to a displacement of 2m interpolated pixels). Accordingly, the particular block size shown in FIG. 5 allows nine possible tests including at a displacement of −2 pixels (FIG. 6A) −1 pixel (FIG. 6B), 0 pixels (FIG. 6C), +1 pixel (FIG. 6D), and +2 pixels (FIG. 6E).
Note that the displacement is indicated as a displacement from the centre. The two blocks are displaced by equal amounts, though in opposite directions. Symmetrical displacements are used because otherwise the block matching could detect lines or edges which are not relevant to the pixel under test.
A sum of absolute differences (SAD) is calculated for each block match. This is defined as:




  
    SAD
    ⁡
    
      (
      
        x
        ,
        y
        ,
        d
        ,
        n
      
      )
    
  
  =
  
    
      ∑
      
        dx
        =
        
          -
          n
        
      
      n
    
    ⁢
    
      
    
    ⁢
    
      
        ∑
        
          
            dy
            =
            
              -
              3
            
          
          ,
          
            -
            1
          
          ,
          1
        
        
          
        
      
      ⁢
      
        
      
      ⁢
      
        
          ∑
          
            RGB
            /
            YCbCr
          
          
            
          
        
        ⁢
        
          
        
        ⁢
        
          
          
            
              p
              ⁢
              
                (
                
                  
                    x
                    -
                    d
                    +
                    dx
                  
                  ,
                  
                    y
                    +
                    dy
                  
                
                )
              
            
            -
            
              p
              ⁡
              
                (
                
                  
                    x
                    +
                    d
                    +
                    dx
                  
                  ,
                  
                    y
                    +
                    dy
                    +
                    2
                  
                
                )
              
            
          
          
        
      
    
  




where x, y represent the current pixel co-ordinate (y being a frame line number), d is the displacement being tested, and n is the “radius” of the block (the block width is n′=2n+1).

In general terms, the SAD values for three colour components (red, green and blue) are combined, and a minimum normalised SAD value determines a gradient for interpolation. Various checks are made to avoid poor interpolation, as described below.
Measures are taken to avoid problems caused by alias situations. FIGS. 7A and 7B illustrate a possible alias situation.
Referring to FIG. 7A, a block match between blocks 340 and 350 suggests that an unknown pixel 330 should be a dark grey colour. Here, the block match is 100% successful and so the SAD value would be zero (note that this is a schematic example!)
However, in FIG. 7B, a block match between blocks 360 and 370 is also 100% successful, again giving a SAD value of zero. The block match of FIG. 7B suggests that the unknown pixel 330 should be a light grey colour.
This conflict of block match results is a product of aliasing between the closely spaced diagonal image features in the image portions shown in FIGS. 7A and 7B. While it may at first appear that either diagonal line is equally valid (i.e. a steep diagonal line from upper left to lower right or a more gentle diagonal line from upper right to lower left), a processing rule has been set up to allow an appropriate selection to be made.
The basis of the rule is that the block match process is restricted so that only areas considered to be “line segments” are detected. That is to say, each block in a block match should contain a line segment.
A digitised line segment is considered to have two properties. Firstly, it is monotonic along the central scan line row of the block in question, and secondly there is a vertical transition between scan lines in the block in question. The way in which these properties may be tested will be described with reference to FIGS. 8A to 8D.
In FIG. 8A, a source field contains multiple diagonal lines. FIG. 8B schematically illustrates one row of pixels within the image of FIG. 8A. FIGS. 8C and 8D illustrate the two edges of the diagonal line shown in FIG. 8B. It will be seen that each of these edges has a region of pixels which show a monotonic variation in luminance. Also, referring back to FIG. 8A, it can be seen that such segments exhibit a vertical transition between adjacent rows of pixels.
So, turning back to FIGS. 7A and 7B, the block match of FIG. 7A would be rejected in favour of the block match of FIG. 7B according to the rule described above. This is because the central line of pixels of the two blocks of FIG. 7B shows a monotonic variation in luminance, whereas the centre line of pixels of the blocks 340, 350 in FIG. 7A does not.
The tests are performed separately in respect of each of the colour components (e.g. R, G and B). All three tests must be passed separately. Alternatively, for example to save hardware, fewer than three tests could be performed. For example, only the luminance, or only one colour component, might be tested. Of course, a YCbCr or YPbPr representation could be tested instead.
The diagonal interpolator 160 is a simple pixel averager: given a direction it picks the pixel in that direction on the line below and the pixel in that direction on the line above and averages them.
The dot noise reducer 170 involves a process which is applied to the output of the diagonal interpolator 160. A test is applied to detect whether an interpolated pixel lies within the maximum and minimum values of four neighbouring vertical and horizontal pixels, i.e. the pixels immediately above, below, left and right of the interpolated pixel. Note that the pixels above and below the interpolated pixel will be real pixels, whereas those to the left and right will be interpolated themselves.
If the interpolated pixel does not lie within this range, then;
Let v be the original value of the pixel under consideration, and let v′ be v, clipped to lie within the range of the four locally neighbouring pixels.
Let the new pixel value be kDNR v′+(1−kDNR)v, where kDNR is a programmable constant.
The operation of the Kell-factor corrector 180 will now be described.
In the present discussion, references to the Kell-factor are simply to help explain the operation of this part of an exemplary system. What the filter is actually exploiting is simply the knowledge that the source image did not use the full bandwidth available to it, whether that is because of scanning artefacts or because of a low pass filtering process.
The Kell-factor is a quantity which represents a property of progressive scan and interlaced images. In order to represent the information being scanned, it is generally considered that only 70% (the Kell-factor) of the possible vertical bandwidth is (or should be) represented. Hence when performing an interlace to progressive scan conversion, it is potentially hazardous to attempt to produce a full vertical bandwidth image. Instead, a compensation to account for a Kell-factor of less than unity may be used.
One method to compensate for the Kell-factor would be to use a 70% bandwidth filter on the frame output of any interlace to progressive scan algorithm. However, one of the fields in the frame is ‘real’ data—i.e. it was sampled correctly, so the content arising from that field must by definition be perfect. Thus a method to filter just the interpolated lines is used.
FIG. 9a schematically illustrates the operation of the motion adaptive interpolator 110. The interpolator 110 comprises and inter-field block matcher 600, an optional high frequency checker 610 and a mixer 620.
The inter-field block matcher 600 uses data from the current input field and the three field stores 120 to carry out inter-field motion comparisons. This involves comparing blocks of pixels the current field (FN in FIG. 9b) with correspondingly positioned blocks in the previous field of the same type (FN-2) and likewise comparing the preceding field (FN-1) and the previous field of the same type (FN-3). The results of these comparisons are used to detect a degree of motion in the image.
In particular, weighted sums of absolute differences (SWADs) are generated as follows.
Four block matches are performed to produce two SWADs, SWADAREA and SWADLOCAL. These are:
a 5hx4v weighted block match on fields FN and FN-2.
a 5hx3v weighted block match on fields FN-1 and FN-3.
a 1hx1v weighted block match on fields FN-1 and FN-3.
a 1hx2v weighted block match on fields FN and FN-2.
Weighted block matches sum weighted absolute differences between coincident pixels, SWAD.




  SWAD
  =
  
    
      ∑
      
        dx
        =
        
          -
          2
        
      
      2
    
    ⁢
    
      
        ∑
        
          
            dy
            =
            
              -
              2
            
          
          ,
          0
          ,
          2
        
        
          
        
      
      ⁢
      
        
      
      ⁢
      
        
          ∑
          
            RGB
            /
            YCbCr
          
          
            
          
        
        ⁢
        
          
            w
            ⁡
            
              (
              
                dx
                ,
                dy
              
              )
            
          
          ⁢
          
            
            
              
                
                  F
                  
                    N
                    -
                    1
                  
                
                ⁡
                
                  (
                  
                    dx
                    ,
                    dy
                  
                  )
                
              
              -
              
                
                  F
                  
                    N
                    -
                    3
                  
                
                ⁡
                
                  (
                  
                    dx
                    ,
                    dy
                  
                  )
                
              
            
            
          
        
      
    
  




where FN-1(dx,dy) is the value at the frame-relative position dx, dy to the current pixel. Typical values for the weights are:

















5hx4v block:
[12/1024 23/1024 28/1024 23/1024 12/1024









32/1024 62/1024 77/1024 62/1024 32/1024



32/1024 62/1024 77/1024 62/1024 32/1024



12/1024 23/1024 28/1024 23/1024 12/1024]










5hx3v block:
[20/1024 39/1024 48/1024 39/1024 20/1024









48/1024 94/1024 117/1024 94/1024 48/1024



20/1024 39/1024 48/1024 39/1024 20/1024]










1hx2v block:
[128/256 128/256]











1hx1v block:
[255/256]
- effectively no weighting.










Summing the first two SWADs gives an area-based block match, SWADAREA 
Summing the latter two SWADs gives a localised block match, SWADLOCAL 
All three colour components contribute to the SWADs in the same manner. The system need only maintain a SAD of the three components for each pixel, which is then weighted and combined with the values from the other pixels in the block. This means that this aspect of the process requires only 5 line stores of about 10 bpp (bits per pixel).
Optionally, the high frequency checker 610 is arranged to detect high frequencies in the input fields. The algorithm is based on the following principle. If interleaving the two source fields produces a lot of high frequency energy, then it is appropriate to try to make sure that the inputs are reasonably static. Only static video can produce reliable high frequencies; highly aliased motion can produce high frequencies, but this is not a desirable situation for inter-field interpolation. If motion is present, then high frequencies may be produced where the fields are incorrectly interleaved.
Referring to FIG. 10, the high frequency checker uses the lines above and below the currently interpolated pixel from the current field FN and the line from the preceding field FN-1 that corresponds to the missing line. The HFC may be considered as a 5×3 pixel neighbourhood check.
Let HFCthresh1 and HFCthresh2 be two programmable constants, with the former greater than the latter.
Set a flag: exceededHighEnergy=false
Over each component (or a subset of them) (RGB/YPbPr)—where YPbPr indicatesthe colour space in a high definition system, in a similar way to YCbCr in a standard definition system:
Set energy=0
For the pixels having a horizontal position x=−2,−1,0,1,2 (relative to the current pixel), let the interleaved (FN-1) field value be v0, and the current field value of the line above and below be v−1 and v1, then:

    
    
        if v0<min(v1,v−1), set diff min(v1,v−)−v0
        else if v0>max(v1,v−1), set diff v0−max(v1,v−1) else set diff=0

If (diff>HFCthresh1),set energy=energy+(HFCthsesh1HFCthresh2)*weighting[x]

else if (diff>HFCthresh2),set energy=energy+(diff−HFCthresh2)*weighting[x]

If energy>HFCallowance,set flag exceededHighEnergy=true

    
    


This ends the processing carried out over each component.
Subsequently, if exceededHighEnergy=true, increase SWADAREA by a programmable constant value, HFCpenalty.
The increase in SWADAREA will tend to act against the use of the motion adaptive pixel at that output position.
The mixer 620 operates according to the criteria SWADAREA and SWADLOCAL and also various thresholds thresh1, 2, etc.
If SWADLOCAL>thresh1, use only spatially interpolated field, FN′
Else if SWADAREA>thresh2, use only spatially interpolated field, FN′, only
Else if SWADAREA<thresh3, use only field FN-1 
Else mix field FN-1 and FN′:

let α=(thresh2−SWADAREA)/(thresh2−thresh3)

The resulting pixel value=αFN-1+(1−α) FN′. In other words, α represents pixel motion and determines contributions from the intra and inter-field interpolators.
Whilst only FN-1 and FN′ are mixed in the above equation, it will be appreciated that additional image fields or portions thereof may be mixed with FN-1 and FN′ at a given pixel position, for example the unfiltered lines of FN for alternate lines of the image, or earlier image field FN-3 if there is substantially no motion at all.
However, the α value of a pixel may be prone to sudden changes when a rapidly moving element is present in a sequence of images, so causing α to rapidly change from either from static to motion, or from motion to static.
Such rapid changes can result in rapid temporal and spatial fluctuations in the interpolation strategies used within the image sequence. However as noted previously, changes in interpolation strategy can potentially be discerned by the viewer of the output image sequence. Subjectively, the choice of interpolation strategy is less noticeable if it is applied constantly and consistently, and therefore it is desirable to limit sudden changes in a if possible to mitigate its subjective impact on the viewer.
Consequently, in an embodiment of the present invention, the value of α is temporally filtered to provide a smooth transition over time, thereby improving the continuity and consistency of application of the available interpolation strategies. However, such temporal filtering potentially makes a unresponsive to new motion in the image.
This can cause interlace effects if the preceding frame FN-1 did not show the rapidly moving element in roughly the same place. This can be seen, for example, in FIG. 11 where the motion blur associated with a rapidly turning fairground ride in the circled region 501 is only visible in alternate lines of the final image.
In this particular case, striations are visible on the leading edge of the red chair due to the categorisation of α over the preceding image fields:
Field N−2: Blue Sky;
Field N−1: Blue Sky (Hence α is static);
Field N: Red Chair (Hence α is motion).
If temporal filtering results in the value of α for Field N instead being more static, then the mixing of fields N and N−1 with result in the striations seen.
By contrast, on the trailing edge of the chair, both field N−1 and N categorise α as in motion and hence there is no mixing even when α is temporally filtered.
Therefore temporal filtering is only applied for a transition from motion to static (‘no motion’) pixels.
Specifically, α is calculated from the SWAD values as before, and then modified by the previous field's alpha value (αN-1) at the corresponding position as follows:




  
    
      
        
          if
          ⁢
          
            
          
          ⁢
          
            α
            N
          
        
        >
        
          α
          
            N
            -
            1
          
        
      
    
    
      
        
          α
          N
          ′
        
        =
        
          
            v
            ·
            
              α
              N
            
          
          +
          
            
              w
              ·
              
                α
                
                  N
                  -
                  1
                
              
            
            ⁢
            
              
            
            ⁢
            
              (
              
                
                  
                    where
                    ⁢
                    
                      
                    
                    ⁢
                    v
                  
                  +
                  w
                
                =
                1
              
              )
            
          
        
      
    
  
  
    
      otherwise
    
    
      
        
          α
          N
          ′
        
        =
        
          
            α
            N
          
          ⁢
          
            
          
          ⁢
          
            (
            
              no
              ⁢
              
                
              
              ⁢
              change
            
            )
          
        
      
    
  




where a high value of α indicates a static or ‘no motion’ pixel, and a low value of alpha indicates motion in the pixel. Typical values of v and w are 1/7 and 7/8 respectively, thus heavily biasing the result toward the old value of α.
By applying temporal filtering in this asymmetric fashion, sudden motion can still be quickly detected whilst still preventing interlace effects on fast-moving sequences. This can be seen for example in FIG. 12, where the motion blur at the leading edge of the rapidly turning fairground ride in circled region 502 is now smoothly rendered, because a transition from static values for the blue sky, to motion values for the red chair (and blur) has not been temporally filtered. Consequently the α values still signify motion, resulting in an intra-field interpolation (such as spatial interpolation) of the current image at this point, rather than interlacing between image fields.
In an embodiment of the present invention, mixer 620 provides the mixing means for mixing the preceding image filed with the current image field, whilst the inter-field block-matcher 600 generates the α value. Typically the block-matcher 600 also performs the comparison between the generated α and a preceding α value and if necessary temporally filters the generated α value.
It will be appreciated by a person skilled in the art, however, that any of these functions may in principle be implemented by any element of the converter 70 that is located in a suitable part of the image processing chain to perform such a function.
It will also be appreciated that the temporal filtering of α, and the comparison with a preceding historical value of α, can alternatively or in addition be based on other historical values of α.
A corresponding method of image processing for converting interlaced images to progressive scan images is now described with reference to FIG. 13, and comprises the steps of
generating (s1), a motion dependent mixing value αn for determining the extent to which a preceding image field should be mixed with an intra-field interpolated version of a current image field at a given pixel position;
comparing (s2), the generated mixing value αn with a preceding historical mixing value αN-1; and
if the comparison indicates an increase in motion, adopting (s3) the generated mixing value αN directly, otherwise
if the comparison indicates a decrease in motion, temporally filtering (s4) the generated mixing value αN.
It will be appreciated by a person skilled in the art that in the above embodiments, the comparison between the current and previous image fields may alternatively be between the current and future image fields, where a delay of one or more image fields has been applied during processing, thereby enabling acquisition of the adjacent future image field. Thus the comparison may be performed between the notional current frame and an adjacent field being the preceding or succeeding image field.
It will be appreciated by a person skilled in the art that the reference to the mixing of fields FN′ and FN-1 is one of several potential mixing options available for interlacing images in an image sequence. Generalising FN′ to FSx and FN-1 to FM, a selection of interpolation modes may be defined as:
Mode 1: Zero field system delay (as in the description)—

    
    
        FSx=interpolated field associated with field FN 
        FM=field FN-1 
    
    


Mode 2: One field system delay, backward mixing—

    
    
        FSx=interpolated field associated with field FN-1 
        FM=field FN-2 
    
    


Mode 3: One field system delay, forward mixing—

    
    
        FSx=interpolated field associated with field FN-1 
        FM=field FN.
    
    


Consequently, for example, the mixed pixel value would equal α FM+(1−α) FSx.
It will be appreciated that the invention can be implemented in programmable or semi-programmable hardware operating under the control of appropriate software. This could be a general purpose computer or arrangements such as an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array). The software could be supplied on a data carrier or storage medium such as a disk or solid state memory, or via a transmission medium such as a network or interne connection as a signal, or via combinations of these.
Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various changes and modifications can be effected therein by one skilled in the art without departing from the scope and spirit of the invention as defined by the appended claims.
APPENDIX
Some example Parameters:














YPbPr setting
RGB setting




















HFC weighting
[2 4 5 4 2 ]
[2 4 5 4 2]



HFCthresh1
40
40



HFCthresh2
8
8



HFCallowance
218
128



HFCpenalty
10
25



thresh1
60
120



thresh2
20
50



thresh3
25
60



v
1/8
1/8



w
7/8
7/8

## Claims

1. A method of converting interlaced images to progressive scan images, comprising the steps of:
generating a motion dependent mixing value that determines the extent to which an adjacent image field should be mixed with a current intra-field interpolated image field at a given pixel position;
comparing the generated motion dependent mixing value with a historical motion dependent mixing value; and
when the comparison indicates an increase in motion, using the generated mixing value, otherwise
when the comparison indicates a decrease in motion, temporally filtering the generated mixing value prior to use.

2. The method according to claim 1 in which the historical motion dependent mixing value is the motion dependent mixing value at the same pixel position in the directly preceding image field.

3. The method according to claim 1, in which generating a motion dependent mixing value comprises the step of:
obtaining weighted sums of absolute pixel differences between blocks of the current source image field and previous image field.

4. The method according to claim 3, in which generating a motion dependent mixing value comprises the step of:
summating the weighted sum of absolute pixel differences between blocks of the current source image field and the previous corresponding interlaced image field and blocks of the directly preceding image field and its previous corresponding interlaced image field.

5. The method according to claim 3, in which the generated motion dependent mixing value is based upon the summation of a weighted 5 horizontal by 4 vertical pixel block match of fields FN and FN-2 and a weighted 5 horizontal by 3 vertical pixel block match of fields FN-1 and FN-3, where FN is the current source image field, FN-2 is the next previous image field prior to FN having the same interlace polarity as FN, FN-1 is the image field immediately preceding the current image field FN, and FN-3 is the next previous image field prior to FN-1 having the same interlace polarity as FN-1.

6. A method according to claim 1, in which the motion dependent mixing value is temporally filtered as:


αN′=v·αN+w·αN-1,

where v+w=1, αN is the generated motion dependent mixing value, and αN-1 is the historical mixing value.

7. An image processing apparatus for converting interlaced images to progressive scan images, comprising:
a mixer configured to mix an adjacent image field with a current intra-field interpolated image field at a given pixel position;
a value generator configured to generate a motion dependent mixing value that determines the extent to which the adjacent image field should be mixed with the current image field at a given pixel position; and
a comparator configured to compare the generated motion dependent mixing value with a historical motion dependent mixing value,
wherein
when the comparison indicates an increase in motion, the mixer the generated mixing value, otherwise
when the comparison indicates a decrease in motion, the generated mixing value is temporally filtered prior to use by the mixer.

8. The image processing apparatus according to claim 7 in which the historical motion dependent mixing value is the motion dependent mixing value at the same pixel position in the directly preceding image field.

9. The image processing apparatus according to claim 7, in which the generated motion dependent mixing value is based upon weighted sums of absolute pixel differences between blocks of the current source image field and previous image fields.

10. The image processing apparatus according to claim 9 in which the generated motion dependent mixing value is based upon the summation of the weighted sum of absolute pixel differences between blocks of the current source image field and the previous corresponding interlaced image field and blocks of the directly preceding image field and its previous corresponding interlaced image field.

11. The image processing apparatus according to claim 9, in which the generated motion dependent mixing value is based upon the summation of a weighted 5 horizontal by 4 vertical pixel block match of fields FN and FN-2 and a weighted 5 horizontal by 3 vertical pixel block match of fields FN-1 and FN-3, where FN is the current source image field, FN-2 is the next previous image field prior to FN having the same interlace polarity as FN, FN-1 is the image field immediately preceding the current image field FN, and FN-3 is the next previous image field prior to FN-1 having the same interlace polarity as FN-1.

12. The image processing apparatus according to claim 7, in which the motion dependent mixing value is temporally filtered as:


αN′v·αN+w·αN-1,

where v+w=1, αN is the generated motion dependent mixing value, and αN-1 is the preceding historical mixing value.

13. A non-transitory computer readable medium comprising computer readable instructions that, when executed by a computer, cause the computer to carry out the method, comprising:
generating a motion dependent mixing value that determines the extent to which an adjacent image field should be mixed with a current intra-field interpolated image field at a given pixel position;
comparing the generated motion dependent mixing value with a historical motion dependent mixing value; and
when the comparison indicates an increase in motion, using the generated mixing value, otherwise
when the comparison indicates a decrease in motion, temporally filtering the generated mixing value prior to use.