Video Scaling is an essential part of video processing devices where the output resolution has to be greater than the input resolution by some rational value. Sometimes this scaling ratio is greater than 2 or even 4 times.
A common approach to scale the video frame is to use polyphase filters independently in the vertical direction and then for each line of vertically scaled frame in the horizontal direction. However, independent usage of the cascade structure of vertical and horizontal scalers causes a severe artifact or jaggedness for diagonal edges and texture elements. To avoid this jagged effect the directional scaler is used.
For each output pixel the direction has to be determined by the direction detector. The basic directional scaler blends three interpolated values:
- vertical-horizontal interpolated value
- diagonal “north-west to south-east” interpolated value
- diagonal “north-east to south-west” interpolated value
The blending is based on three weights W0, W2 and W3 that are defined by the direction detector. Each of these values is a float value between 0 and 1. To detect the direction for the output pixel, the direction detector determines the directions for each of 4 surrounding input pixels. Each of three weights for the output pixel is obtained as a result of linear interpolation from the corresponding weights for four surrounding input pixels based on the distances Δx and Δy (Fig.2).