KR20010045909A - filter coefficient generatig method for image scaling - Google Patents

filter coefficient generatig method for image scaling Download PDF

Info

Publication number
KR20010045909A
KR20010045909A KR1019990049421A KR19990049421A KR20010045909A KR 20010045909 A KR20010045909 A KR 20010045909A KR 1019990049421 A KR1019990049421 A KR 1019990049421A KR 19990049421 A KR19990049421 A KR 19990049421A KR 20010045909 A KR20010045909 A KR 20010045909A
Authority
KR
South Korea
Prior art keywords
coeff
scale
filter coefficient
window
coefficient
Prior art date
Application number
KR1019990049421A
Other languages
Korean (ko)
Inventor
한용인
허창원
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR1019990049421A priority Critical patent/KR20010045909A/en
Publication of KR20010045909A publication Critical patent/KR20010045909A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

PURPOSE: A method for generating a filter coefficient for an image scaling is provided to quickly increase filter coefficients and to reduce the load of a hardware by storing filter coefficients for the interpolation points in a filter coefficient memory and accessing it during the scaling. CONSTITUTION: A scale function is sampled and stored in a coefficient memory. A window function is sampled and stored in a window memory to restrain the scale function. A filter coefficient for each interpolation point is read out from the coefficient memory referring to the scale factor, M. A window coefficient is read out from the window memory referring to the scale factor, M. A filter coefficient obtained by multiplying the scale factor, M with the window coefficient is stored in a filter coefficient memory. For each interpolation point, a filter coefficient stored in the filter coefficient memory is read out.

Description

이미지 스케일링을 위한 필터 계수 발생 방법{filter coefficient generatig method for image scaling}Filter coefficient generatig method for image scaling

본 발명은 이미지 스케일러에 관한 것으로서, 특히 보간점의 위치에 따라 빠른 시간내에 필터 계수를 제공할 수 있는 필터 계수 발생 방법에 관한 것이다.The present invention relates to an image scaler, and more particularly, to a method of generating filter coefficients capable of providing filter coefficients in a short time depending on the position of an interpolation point.

디스플레이 장치의 대형화 및 디지털화 추세에 따라 여러가지 해상도를 지원할 수 있는 디스플레이 장치가 상품화되고 있다. 이러한 디스플레이 장치에 있어서 출력되는 해상도를 조절하기 위해 해상도 변환기 즉, 영상 스케일러(image scaler)가 필요하게 된다.In accordance with the trend toward larger and more digitized display devices, display devices capable of supporting various resolutions have been commercialized. In such a display device, a resolution converter, that is, an image scaler, is required to adjust the output resolution.

고화질의 영상 스케일러에서 사용되는 스케일 펑션은 다항식(polynomial)로 표현되므로 많은 연산이 요구되며 특히 주변 픽셀에 곱해지는 필터 계수는 보간점에 따라 다르게 된다.Since the scale function used in the high quality image scaler is expressed as a polynomial, many operations are required. In particular, the filter coefficients multiplied by neighboring pixels are different depending on the interpolation point.

스케일 펑션이 쌍일차(bilinear)등과 같은 단순한 수식으로 표현되는 경우 필터 계수를 계산하기 위한 하드웨어가 간단하지만, 다항식으로 표현되는 스케일 펑션일 경우에는 필터 계수를 계산하는 하드웨어의 처리 속도 및 사이즈를 감안한 설계가 필요하다.The hardware for calculating filter coefficients is simple when the scale function is expressed by simple equations such as bilinear, etc., but the scale function represented by the polynomial is designed considering the processing speed and size of the hardware for calculating the filter coefficients. Is needed.

본 발명은 이미지 스케일러에 있어서 보간점의 위치에 따라 빠른 시간내에 필터 계수를 제공할 수 있는 필터 계수 발생 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a filter coefficient generating method capable of providing filter coefficients in a short time depending on the position of an interpolation point in an image scaler.

도 1은 스케일 펑션의 일종인 스플라인 함수(spline function)을 보이는 그래프이다.1 is a graph showing a spline function, which is a kind of scale function.

도 2는 도 1에 도시된 스케일 펑션을 샘플링하는 것을 개념적으로 보이기 위해 도시된 것이다.FIG. 2 is shown to conceptually show sampling the scale function shown in FIG. 1.

도 3은 0과 1사이의 구간에 위치하는 임의의 보간점 w에서 필터 계수들을 독출하는 방법을 개념적으로 보이기 위한 것이다.3 is a conceptual illustration of a method of reading filter coefficients at any interpolation point w located in a section between 0 and 1. FIG.

도 4는 필터 계수 메모리의 저장 내용을 도식적으로 보이는 것이다.4 schematically shows the contents of the filter coefficient memory.

도 5는 스케일 다운의 경우 윈도우 펑션에 의한 효과를 도식적으로 보이기 위해 도시된 것이다.FIG. 5 is a diagram for schematically showing the effect of the window function in the case of scale down.

도 6은 본 발명에 따른 필터 계수 발생 방법을 수행하는 장치의 구성을 보이는 블록도이다.6 is a block diagram showing the configuration of an apparatus for performing a filter coefficient generation method according to the present invention.

도 7은 도 6에 도시된 장치에 있어서 스케일 업/다운 준비 과정을 보이는 흐름도이다.7 is a flowchart illustrating a scale up / down preparation process in the apparatus shown in FIG. 6.

도 8은 도 6에 도시된 장치에 있어서 필터 계수 출력 과정을 보이는 흐름도이다.FIG. 8 is a flowchart illustrating a filter coefficient output process in the apparatus of FIG. 6.

상기의 목적을 달성하는 본 발명에 따른 필터 계수 발생 방법은Filter coefficient generation method according to the present invention to achieve the above object

입력 이미지의 해상도를 소정의 스케일 팩터 M에 따라 변환하여 출력하는 이미지 스케일링을 위한 필터 계수 발생 방법에 있어서,A filter coefficient generation method for image scaling for converting and outputting a resolution of an input image according to a predetermined scale factor M,

스케일링을 위한 스케일 펑션을 샘플링하여 계수 메모리에 저장하는 과정;Sampling a scale function for scaling and storing the scale function in a coefficient memory;

상기 스케일 펑션을 제한하기 위한 윈도우 펑션을 샘플링하여 윈도우 메모리에 저장하는 과정;Sampling a window function for limiting the scale function and storing the sampled window function in a window memory;

스케일 팩터 M을 참조하여 상기 계수 메모리로부터 각 보간점들에 대한 필터 계수들을 독출하는 과정;Reading filter coefficients for each interpolation point from the coefficient memory with reference to a scale factor M;

상기 상기 스케일 팩터 M을 참조하여 윈도우 메모리로부터 윈도우 계수를 독출하는 과정;Reading window coefficients from a window memory with reference to the scale factor M;

상기 필터 계수들과 윈도우 계수를 곱하여 얻은 필터 계수들을 필터 계수 메모리에 저장하는 과정; 및Storing filter coefficients obtained by multiplying the filter coefficients by a window coefficient in a filter coefficient memory; And

각 보간점들에 대해 상기 필터 계수 메모리에 저장된 필터 계수들을 독출하여 출력하는 과정을 포함함을 특징으로 한다.And reading out and outputting filter coefficients stored in the filter coefficient memory for each interpolation point.

이하 첨부된 도면을 참조하여 본 발명의 구성 및 동작에 대하여 상세히 설명한다.Hereinafter, the configuration and operation of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 스케일 펑션의 일종인 스플라인 함수(spline function)을 보이는 그래프이다. 기본적으로 스케일 펑션의 폭(width)은 보간에 관여하는 화소의 수에 따라 결정되며 도 1에 도시된 바에 있어서는 8개의 화소가 보간에 관여하는 경우를 보이는 것이다. 또한, 횡축상에서 영교차점들에는 각각 보간에 관여하는 화소들이 위치된다.1 is a graph showing a spline function, which is a kind of scale function. Basically, the width of the scale function is determined according to the number of pixels involved in interpolation, and as shown in FIG. 1, eight pixels are involved in interpolation. In addition, pixels that participate in interpolation are located at the zero crossing points on the horizontal axis.

도 1에 도시된 바를 참조하면, 스케일 펑션의 함수값을 f(x)라 하고, 보간에 관여하는 화소의 값을 Q(x)라 하면, 정수 x와 x+1 사이의 임의의 보간점 x+w에서의 화소값 Q(x+w)은 다음과 같이 표현된다.Referring to FIG. 1, when the function value of the scale function is f (x) and the value of the pixel involved in interpolation is Q (x), an arbitrary interpolation point x between integers x and x + 1 The pixel value Q (x + w) at + w is expressed as follows.

Q(x+w) = f(n+w)*Q(x+n) + ,,, + f(2+w)Q(x+2) + f(1+w)Q(x+1) + f(w)Q(x) + f(w-1)Q(x-1) + f(w-1)Q(x-2) + ,,, + f(w-n)Q(x-n)Q (x + w) = f (n + w) * Q (x + n) + ,,, + f (2 + w) Q (x + 2) + f (1 + w) Q (x + 1) + f (w) Q (x) + f (w-1) Q (x-1) + f (w-1) Q (x-2) + ,,, + f (wn) Q (xn)

여기서, n은 정수로서 보간에 관여하는 화소의 수 내지는 필터의 탭(tap)수를 나타내고, f(n+w),,, f(2+w), f(1+w), f(w), f(w-1), f(w-2), ,,, f(w-n)들은 보간에 관여하는 화소들 각각에 곱해지는 계수(이하 필터 계수라 함)들이다.Where n is an integer representing the number of pixels involved in interpolation or the number of taps of the filter, f (n + w), f (2 + w), f (1 + w), f (w ), f (w-1), f (w-2), ,, and f (wn) are coefficients (hereinafter referred to as filter coefficients) that are multiplied by each of the pixels involved in interpolation.

본 발명에 따른 필터 계수 연산 과정은 다음과 같이 수행된다.The filter coefficient calculation process according to the present invention is performed as follows.

1) 먼저, 스케일 펑션을 샘플링하여 저장한다.1) First, sample and save the scale function.

스케일 펑션을 주관적, 객관정 화질을 보장할 만큼의 균등 간격(2의 멱승)으로 샘플링하여 계수 메모리에 저장한다.The scale function is sampled at equal intervals (power of 2) to ensure the subjective and objective image quality and stored in the coefficient memory.

스케일 펑션이 도 1에 도시된 바와 같이 원점을 기준으로 대칭일 경우에는 원점을 중심으로 좌측 혹은 우측만을 샘플링하여 스케일 평션 메모리의 용량을 줄인다.When the scale function is symmetric with respect to the origin as shown in FIG. 1, only the left or right side is sampled from the origin to reduce the capacity of the scale function memory.

도 2는 도 1에 도시된 스케일 펑션을 샘플링하는 것을 개념적으로 보이기 위해 도시된 것이다.FIG. 2 is shown to conceptually show sampling the scale function shown in FIG. 1.

스케일 펑션이 도 1에 도시된 바와 같이 원점을 중심으로 대칭인 경우 도 2에 도시된 바와 같이 원점을 중심으로 한쪽만 샘플링한다.When the scale function is symmetric about the origin as shown in FIG. 1, only one side is sampled about the origin as shown in FIG. 2.

도 2에 도시된 바에 있어서 전체 128개(27)의 소구간(이하 오프세트라 함)들로 분할되고, 각 오프세트에 있어서의 스케일 펑션값 f(x)는 원점에서부터의 순서에 따라 차례로 계수 메모리에 저장된다.As shown in Fig. 2, a total of 128 (2 7 ) small sections (hereinafter referred to as offsets) are divided, and the scale function value f (x) in each offset is sequentially counted in order from the origin. Stored in memory.

수학식1에 보여지는 바와 같이 임의의 보간점 (x+w)에서의 화소값 Q(x+w)을 구하기 위해서는 8개의 필터 계수들이 요구되며 각 필터 계수들은 스케일 펑션상에서 일정한 거리만큼 떨어져 있다. 각 필터 계수들의 이격 거리는 스케일 팩터 M에 의존한다. 스케일 업(scale up) 즉, 입력 영상보다 해상도가 높은 화상을 출력하는 경우에는 각 필터 계수들의 이격 거리는 '1"이고, 스케일 다운(scale down) 즉, 입력 영상 보다 해상도가 낮은 영상을 출력하는 경우에는 각 필터 계수들의 이격 거리는 스케일 팩터 M에 반비례한다.As shown in Equation 1, eight filter coefficients are required to obtain the pixel value Q (x + w) at an arbitrary interpolation point (x + w), and each filter coefficient is separated by a certain distance on the scale function. The separation distance of each filter coefficient depends on the scale factor M. In the case of outputting an image having a higher resolution than the input image, the separation distance of each filter coefficient is 1, and in the case of outputting an image having a lower resolution than the input image The separation distance of each filter coefficient is in inverse proportion to the scale factor M.

2) 스케일 팩터 M을 참조하여 모든 보간점들 각각에서의 필터 계수들을 계수 메모리로부터 읽어내어 필터 계수 메모리에 저장한다.2) The filter coefficients at each of all interpolation points are read from the coefficient memory with reference to the scale factor M and stored in the filter coefficient memory.

스케일 팩터 M에 따른 각 보간점에서의 필터 계수들은 계수 메모리의 독출 어드레스를 제어함에 의해 읽혀진다.The filter coefficients at each interpolation point according to the scale factor M are read by controlling the read address of the coefficient memory.

스케일링에 있어서 보간점은 도 2에 도시된 오프세트들 중의 하나에 위치한다. 따라서, 계수 메모리에서 보간점에 대응하는 필터 계수들이 저장된 어드레스들은 보간점이 속한 오프세트의 어드레스를 알면 소정의 수식을 통하여 자동적으로 계산할 수 있다.The interpolation point in scaling is located in one of the offsets shown in FIG. Accordingly, addresses in which filter coefficients corresponding to the interpolation point are stored in the coefficient memory may be automatically calculated through a predetermined equation when the address of the offset to which the interpolation point belongs is known.

도 3은 0과 1사이의 구간에 위치하는 임의의 보간점 w에서 필터 계수들을 독출하는 방법을 개념적으로 보이기 위한 것이다.3 is a conceptual illustration of a method of reading filter coefficients at any interpolation point w located in a section between 0 and 1. FIG.

0과 1사이의 구간에 위치하는 임의의 보간점 w에서 보간값을 얻기 위해 필요한 필터 계수들은 f(3+w), f(2+w), f(1+-w), f(w), f(1-w), f(2-+w), f(3-w), f(4-w)들이다. 이들은 계수 메모리에서 보간점이 속한 오프세트의 어드레스를 얻고, 이를 참조하여 계수 메모리에서 차례로 필터 계수들을 독출한다. 독출된 결과는 비트 스트림 형태로 필터 계수 메모리에 저장된다. 이를 모든 보간점들에 대해 수행하여 모든 보간점들 각각에 대한 필터 계수들을 독출하여 필터 계수 메모리에 저장한다.The filter coefficients required to obtain the interpolation value at any interpolation point w located in the interval between 0 and 1 are f (3 + w), f (2 + w), f (1 + -w), f (w) , f (1-w), f (2- + w), f (3-w), f (4-w). They obtain the address of the offset to which the interpolation point belongs in the coefficient memory, and read the filter coefficients in order from the coefficient memory with reference to this. The read result is stored in the filter coefficient memory in the form of a bit stream. This is performed for all interpolation points, and the filter coefficients for each of all interpolation points are read and stored in the filter coefficient memory.

(1) 스케일 업의 경우(1) In the case of scale up

먼저, 스케일 팩터 M을 참조하여 보간점들이 속한 오프세트의 어드레스 결정한다. 스케일 업시 스케일 팩터 M은 실수로 표현되어지며, 보간점은 0〈x〈1에서 나누어진 32개의 오프세트들 중의 하나에 있게 된다. 각 보간점이 속한 오프세트의 어드레스 w가 결정되면 다음의 수학식2에 의해 해당 보간점에 대한 필터 계수들을 독출하기 위해 계수 메모리를 액세스할 어드레스(coeff address)가 결정된다.First, the offset address to which the interpolation points belong is determined by referring to the scale factor M. When scaling up, the scale factor M is represented by a real number, and the interpolation point is at one of 32 offsets divided by 0 < When the address w of the offset to which each interpolation point belongs is determined, the following equation (2) determines an address (coeff address) to access the coefficient memory to read the filter coefficients for the corresponding interpolation point.

첫번째 필터 계수 coeff[0]의 어드레스 coeff address1 = 3*32 + wAddress of the first filter coefficient coeff [0] coeff address1 = 3 * 32 + w

두번째 필터 계수 coeff[1]의 어드레스 coeff address2 = 2*32 + wAddress of the second filter coefficient coeff [1] coeff address2 = 2 * 32 + w

세번째 필터 계수 coeff[2]의 어드레스 coeff address3 = 1*32 + wAddress of the third filter coefficient coeff [2] coeff address3 = 1 * 32 + w

네번째 필터 계수 coeff[3]의 어드레스 coeff address4 = wAddress of the fourth filter coefficient coeff [3] coeff address4 = w

다섯번째 필터 계수 coeff[4]의 어드레스 coeff address5 = 1*32 - wAddress of the fifth filter coefficient coeff [4] coeff address5 = 1 * 32-w

여섯번째 필터 계수 coeff[5]의 어드레스 coeff address6 = 2*32 - wAddress of the sixth filter coefficient coeff [5] coeff address6 = 2 * 32-w

일곱번째 필터 계수 coeff[6]의 어드레스 coeff address7 = 3*32 - wAddress of the seventh filter coefficient coeff [6] coeff address7 = 3 * 32-w

여덟번째 필터 계수 coeff[7]의 어드레스 coeff address8 = 4*32 - wAddress of the eighth filter coefficient coeff [7] coeff address8 = 4 * 32-w

여기서, 32라는 숫자는 스케일 펑션의 0〈x〈1 구간에서 분할된 오프세트들의 수이다. 도 2에 도시된 바에 있어서 보간에 관여하는 화소의 개수를 H라 하고, 샘플링 개수를 P라 하면 스케일 펑션의 각 구간에서 분할된 오프세트들의 수는 P/H로 나타내어 진다.Here, the number 32 is the number of offsets divided in the interval 0 <x <1 of the scale function. As shown in FIG. 2, when the number of pixels involved in interpolation is H and the number of samplings is P, the number of offsets divided in each section of the scale function is represented by P / H.

모든 보간점들에 대하여 계수 메모리로부터 8개의 필터 계수들을 독출하여 차례로 필터 계수 메모리에 저장한다.Eight filter coefficients are read out from the coefficient memory for all interpolation points and stored in the filter coefficient memory in turn.

필터 계수 메모리의 각 어드레스 fc_address에 저장되는 내용은 다음과 같다.The contents stored in each address fc_address of the filter coefficient memory are as follows.

fc_address[0] = coeff_0[0], coeff_0[1], coeff_0[2], coeff_0[3], coeff_0[4], coeff_0[5], coeff_0[6], coeff_0[7]fc_address [0] = coeff_0 [0], coeff_0 [1], coeff_0 [2], coeff_0 [3], coeff_0 [4], coeff_0 [5], coeff_0 [6], coeff_0 [7]

fc_address[1] = coeff_1[0], coeff_1[1], coeff_1[2], coeff_1[3], coeff_1[4], coeff_1[5], coeff_1[6], coeff_1[7]fc_address [1] = coeff_1 [0], coeff_1 [1], coeff_1 [2], coeff_1 [3], coeff_1 [4], coeff_1 [5], coeff_1 [6], coeff_1 [7]

,,

,,

fc_address[m-11 = coeff_m-1[0], coeff_m-1[1], coeff_m-1[2], coeff_m-1[3], coeff_m-1[4], coeff_m-1[5], coeff_m-1[6], coeff_m-1[7]fc_address [m-11 = coeff_m-1 [0], coeff_m-1 [1], coeff_m-1 [2], coeff_m-1 [3], coeff_m-1 [4], coeff_m-1 [5], coeff_m- 1 [6], coeff_m-1 [7]

여기서, m은 1 ∼ 32 인 정수이고, coeff_m[0]은 m번째 보간점에서의 첫번째 필터 계수를 의미한다.Here, m is an integer of 1 to 32, and coeff_m [0] means the first filter coefficient at the mth interpolation point.

도 4는 필터 계수 메모리의 저장 내용을 도식적으로 보이는 것이다. 필터 계수 메모리의 첫번째 어드레스에는 첫번째 보간점에서의 필터 계수들이 비트 스트림 형태로 기억된다. 마찬가지로 필터 계수 메모리의 어드레스 순서에 따라 대응되는 보간점에서의 필터 계수들이 저장된다.4 schematically shows the contents of the filter coefficient memory. In the first address of the filter coefficient memory, the filter coefficients at the first interpolation point are stored in the form of a bit stream. Similarly, filter coefficients at corresponding interpolation points are stored according to the address order of the filter coefficient memory.

(2) 스케일 다운의 경우(2) In case of scale down

먼저, 스케일 팩터 M을 참조하여 보간점들이 속한 오프세트의 위치를 결정한다. 스케일 팩터 M은 실수로 표현되어지며, 인접한 (1/M)개의 화소들 사이에 (1/M -1)개의 보간점들이 있게 된다.First, the position of the offset to which the interpolation points belong is determined by referring to the scale factor M. The scale factor M is represented by a real number and there are (1 / M-1) interpolation points between adjacent (1 / M) pixels.

각 보간점이 속한 오프세트의 어드레스 w가 결정되면 다음의 수학식3에 의해 해당 보간점에 대한 필터 계수를 독출할 어드레스(coeff address)가 결정된다.When the address w of the offset to which each interpolation point belongs is determined, an address (coeff address) for reading a filter coefficient for the corresponding interpolation point is determined by Equation 3 below.

첫번째 필터 계수 coeff[0]의 어드레스 coeff address1 = 3*(1/M)*32 + wAddress of the first filter coefficient coeff [0] coeff address1 = 3 * (1 / M) * 32 + w

두번째 필터 계수 coeff[1]의 어드레스 coeff address2 = 2*(1/M)*32 + wAddress of the second filter coefficient coeff [1] coeff address2 = 2 * (1 / M) * 32 + w

세번째 필터 계수 coeff[2]의 어드레스 coeff address3 = 1*(1/M)*32 + wAddress of the third filter coefficient coeff [2] coeff address3 = 1 * (1 / M) * 32 + w

네번째 필터 계수 coeff[3]의 어드레스 coeff address4 = wAddress of the fourth filter coefficient coeff [3] coeff address4 = w

다섯번째 필터 계수 coeff[4]의 어드레스 coeff address5 = 1*(1/M)*32 - wAddress of the fifth filter coefficient coeff [4] coeff address5 = 1 * (1 / M) * 32-w

여섯번째 필터 계수 coeff[5]의 어드레스 coeff address6 = 2*(1/M)*32 - wAddress of the sixth filter coefficient coeff [5] coeff address6 = 2 * (1 / M) * 32-w

일곱번째 필터 계수 coeff[6]의 어드레스 coeff address7 = 3*(1/M)*32 - wAddress of the seventh filter coefficient coeff [6] coeff address7 = 3 * (1 / M) * 32-w

여덟번째 필터 계수 coeff[7]의 어드레스 sf_address8 = 4*(1/M)*32 - wAddress of the eighth filter coefficient coeff [7] sf_address8 = 4 * (1 / M) * 32-w

여기서, 32라는 숫자는 스케일 펑션의 각 구간에서 분할된 오프세트들의 수이다. 도 2에 도시된 바에 있어서 보간에 관여하는 화소의 개수를 H라 하고, 샘플링 개수를 P라 하면 스케일 펑션의 각 구간에서 분할된 오프세트들의 수는 P/H로 나타내어 진다.Here, the number 32 is the number of offsets divided in each section of the scale function. As shown in FIG. 2, when the number of pixels involved in interpolation is H and the number of samplings is P, the number of offsets divided in each section of the scale function is represented by P / H.

그런데, 스케일 다운에 있어서의 스케일 펑션은 실질적으로 도 1에 도시된 스케일 펑션을 폭 방향으로 1/M만큼 늘인 것이 되며, 계수 메모리의 어드레싱에 있어서는 필터 계수를 독출하기 위한 어드레스들의 간격이 1/M만큼 줄어든 것을 의미한다. 따라서, 실질적으로 도 1에 도시된 스케일 펑션에 있어서-까지의 구간만이 사용되고 나머지 구간은 0이 된다.By the way, the scale function in scale down substantially extends the scale function shown in FIG. 1 by 1 / M in the width direction. In addressing the coefficient memory, the interval of addresses for reading filter coefficients is 1 / M. Means reduced. Therefore, substantially in the scale function shown in FIG. - Only intervals up to are used, and the remaining intervals are zero.

따라서, 스케일 다운의 경우에는 계수 메모리로부터 독출된 필터 계수들에 스케일 펑션을-까지의 구간으로 제한하기 위한 윈도우 펑션을 곱해준다. 그런데, 윈도우 펑션이-까지의 구간에 존재하는 펄스로 표현될 경우 스케일 다운된 영상에서 알리아싱(alising)이 발생하게 되므로 도 5(b)에 도시된 바와 같이 주변부로 갈수록 크기가 감소되는 윈도우 펑션을 사용하게 된다. 이러한 윈도우 펑션의 예로서는 가우시안 함수(gausian function)를 들 수 있다.Therefore, in the case of scale down, the scale function is applied to the filter coefficients read out from the coefficient memory. - Multiply the window function to limit the interval to. By the way, the window function - When expressed as a pulse present in the interval up to, since aliasing occurs in the scaled down image, as shown in FIG. 5 (b), a window function of decreasing size toward a peripheral part is used. An example of such a window function is a Gaussian function.

윈도우 평션은 스케일 펑션과 동일하게 샘플링된다. 즉, 동일한 샘플링 주기 및 개수를 갖는다. 또한, 윈도우 메모리를 액세스하는 어드레스는 스케일 다운시에도 수학식 2에의해 결정된다.The window function is sampled the same as the scale function. That is, they have the same sampling period and number. The address for accessing the window memory is also determined by equation (2) at scale down.

도 5는 스케일 다운의 경우 윈도우 펑션에 의한 효과를 도식적으로 보이기 위해 도시된 것으로서 도 5(a)는 스케일링을 위하여 사용되는 스케일 펑션을 보이는 것이고, 도 5(b)는 윈도우 펑션을 보이는 것이고, 그리고 도 5(c)는 윈도우 펑션의 영향에 의해 결과된 스케일 다운을 위한 스케일 펑션을 보이는 것이다. 도 5에 도시된 바와 같은 윈도우 펑션에 의해 알리아싱이 줄어든 영상을 얻을 수 있다.5 is a diagram showing the effect of the window function in the case of scale down, FIG. 5 (a) shows the scale function used for scaling, FIG. 5 (b) shows the window function, and 5 (c) shows the scale function for scale down resulting from the influence of the window function. By the window function as shown in Figure 5 it is possible to obtain an image with reduced aliasing.

모든 보간점들에 대하여 계수 메모리로부터 8개의 필터 계수들을 독출하고 윈도우 펑션을 곱하여 차례로 필터 계수 메모리에 저장한다.Eight filter coefficients are read from the coefficient memory for all interpolation points and multiplied by a window function and stored in the filter coefficient memory in turn.

필터 계수 메모리의 각 어드레스 fc_address에 저장되는 내용은 다음과 같다.The contents stored in each address fc_address of the filter coefficient memory are as follows.

fc_address[0] = coeff_1[0], coeff_1[1], coeff_1[2], coeff_1[3], coeff_1[4], coeff_1[5], coeff_1[6], coeff_1[7]fc_address [0] = coeff_1 [0], coeff_1 [1], coeff_1 [2], coeff_1 [3], coeff_1 [4], coeff_1 [5], coeff_1 [6], coeff_1 [7]

fc_address[1] = coeff_2[0], coeff_2[1], coeff_2[2], coeff_2[3], coeff_2[4], coeff_2[5], coeff_2[6], coeff_2[7]fc_address [1] = coeff_2 [0], coeff_2 [1], coeff_2 [2], coeff_2 [3], coeff_2 [4], coeff_2 [5], coeff_2 [6], coeff_2 [7]

,,

,,

fc_address[m-1] = coeff_m[0], coeff_m[1], coeff_m[2], coeff_m[3], coeff_m[4], coeff_m[5], coeff_m[6], coeff_m[7]fc_address [m-1] = coeff_m [0], coeff_m [1], coeff_m [2], coeff_m [3], coeff_m [4], coeff_m [5], coeff_m [6], coeff_m [7]

여기서, m은 1 ∼ M인 정수이고, coeff_m[0]은 m번째 보간점에서의 첫번째 필터 계수를 의미한다.Here, m is an integer of 1 to M, and coeff_m [0] means the first filter coefficient at the mth interpolation point.

윈도우 펑션은 스케일 업에서도 사용될 수 있다. 스케일 업의 경우에 도 5(b)에 도시된 바와 같은 윈도우 펑션을 사용하면 스케일 평션의-이외의 구간에 존재하는 필터 계수들은 모드 "0"이 되어 실질적으로 필터 계수의 수를 감소시키는 역할을 하게 된다.Window functions can also be used to scale up. In the case of scale up, the window function as shown in FIG. - The filter coefficients present in the other sections become the mode "0", which serves to substantially reduce the number of filter coefficients.

3) 보간점들에 따라 저장된 필터 계수들을 출력한다.3) Output the stored filter coefficients according to the interpolation points.

각 클록마다 스케일 팩터 M을 참조하여 보간점의 위치를 얻고, 이를 인덱스로하여 각 보간점들에 대한 필터 계수를 출력한다. 출력된 필터 계수들은 보간에 관여하는 화소들의 화소값과 곱해져서 보간점의 화소값을 결정한다.For each clock, the position of the interpolation point is obtained by referring to the scale factor M, and the filter coefficient for each interpolation point is output by using the index as the index. The output filter coefficients are multiplied by pixel values of pixels involved in interpolation to determine pixel values of interpolation points.

도 6은 본 발명에 따른 필터 계수 발생 방법을 수행하는 장치의 구성을 보이는 블록도이다. 도 6에 도시된 장치는 필터 계수 연산부(600)와 필터 계수 저장 및 출력부(700)를 구비한다.6 is a block diagram showing the configuration of an apparatus for performing a filter coefficient generation method according to the present invention. The apparatus shown in FIG. 6 includes a filter coefficient calculating unit 600 and a filter coefficient storing and outputting unit 700.

필터 계수 연산부(600)는 테이블 어드레스 발생부(602), 계수 메모리(604), 그리고 윈도우 메모리(606)를 포함한다.The filter coefficient calculator 600 includes a table address generator 602, a coefficient memory 604, and a window memory 606.

필터 계수 연산부(600)는 수평 수직 방향에 대한 각각의 스케일 팩터(H_factor, V_factor)와 그들의 역수(H_INV_factor, V_IN_factor)를 입력받는다.The filter coefficient calculating unit 600 receives respective scale factors H_factor and V_factor and their inverses H_INV_factor and V_IN_factor for the horizontal and vertical directions.

테이블 어드레스 발생부(602)는 수평 수직 방향에 대한 각각의 스케일 팩터(H_factor, V_factor)와 그들의 역수(H_INV_factor, V_IN_factor)에 따라 계수 메모리(602)에 제공되는 어드레스 신호(coeff address)와 윈도우 메모리(604)에 제공되는 어드레스 신호(window address)를 발생한다.The table address generator 602 may provide an address signal and a window memory provided to the coefficient memory 602 according to the respective scale factors H_factor and V_factor in the horizontal and vertical directions and their inverses H_INV_factor and V_IN_factor. Generates an address signal provided to 604.

coeff address는 상기한 수학식2에 따라 결정되며, window address는 상기한 수학식 3에 의해 결정된다.The coeff address is determined by Equation 2 above, and the window address is determined by Equation 3 above.

계수 메모리(604)는 테이블 어드레스 발생부(602)에서 제공되는 어드레스(coeff address)에 따라 그에 저장된 필터 계수를 독출하고, 윈도우 평션 메모리(606)에서 제공되는 윈도우 계수를 곱하여 출력한다.The coefficient memory 604 reads the filter coefficients stored therein according to an address provided by the table address generator 602 and multiplies the window coefficients provided by the window function memory 606 to output them.

윈도우 메모리(606)는 테이블 어드레스 발생부(602)에서 제공되는 어드레스(window address0에 따라 그에 저장된 윈도우 계수를 독출하여 출력한다.The window memory 606 reads and outputs window coefficients stored therein according to the address provided by the table address generator 602 (window address 0).

계수 메모리(604)에서 출력되는 필터 계수는 수평/수직 필터 계수 메모리(704, 708)에 저장된다.The filter coefficients output from the coefficient memory 604 are stored in the horizontal / vertical filter coefficient memories 704 and 708.

, 수평/수직 필터 계수 저장부(704, 708)를 선택하기 위한 신호(RAM_sel), 그리고 수평/수직 필터 계수 저장부(704, 708)의 어드레스 신호(table address)를 발생한다.A signal RAM_sel for selecting the horizontal / vertical filter coefficient storage units 704 and 708 and a table address of the horizontal / vertical filter coefficient storage units 704 and 708 are generated.

한편, 필터 계수 저장 및 출력부(700)는 수평 어드레스 발생부(702), 수평 필터 계수 저장부(704), 수직 어드레스 발생부(706), 수직 필터 계수 저장부(708)를 포함한다. 필터 계수 저장 및 출력부(700)는 수평 방향 스케일링시 수평 동기 신호(H_SYNC) 및 수평 활성 영역(H_START)인 경우에 한해 수평 필터 계수 저장부(704)에 저장된 필터 계수(H_coeff, H_uv_coeff)들을 출력하며, 수직 방향 스케일링시 수직 동기 신호(V_SYNC) 및 수직 활성 영역(V_START)이 인에이블인 경우에 한해 수직 필터 계수 저장부(708)에 저장된 필터 계수(V_coeff)를 출력한다.The filter coefficient storage and output unit 700 includes a horizontal address generator 702, a horizontal filter coefficient storage unit 704, a vertical address generator 706, and a vertical filter coefficient storage unit 708. The filter coefficient storage and output unit 700 outputs the filter coefficients H_coeff and H_uv_coeff stored in the horizontal filter coefficient storage unit 704 only in the case of the horizontal synchronization signal H_SYNC and the horizontal active area H_START during horizontal scaling. In the vertical scaling, the filter coefficient V_coeff stored in the vertical filter coefficient storage unit 708 is output only when the vertical synchronization signal V_SYNC and the vertical active region V_START are enabled.

여기서, H_uv_coeff는 YUV신호체계내 4:2:2 포맷인 U,V신호를 H_FACTOR*2의 배율로 스케일링하는 수평 방향의 UV신호용 계수들이다. H_FACTOR*2의 배율의 계수 테이블이 정해지면 H_FACTOR의 계수 테이블릉 H_FACTOR*2의 배율의 계수 테이블의 짝수배 어드레스가 되어, 계수 테이블은 RGB신호 및 YUV신호에 대해 겸용으로 쓰이게 된다.Here, H_uv_coeff are coefficients for the UV signal in the horizontal direction in which a U, V signal having a 4: 2: 2 format in the YUV signal system is scaled at a magnification of H_FACTOR * 2. When the coefficient table of H_FACTOR * 2 magnification is determined, it becomes the even-numbered address of the coefficient table of H_FACTOR * 2 magnification, and the coefficient table is used for both RGB and YUV signals.

수평 어드레스 발생부(702)와 수직 어드레스 발생부는 입력된 1/scale factor를 매 클록(clk)마다 더하여 나온 결과로 수평 필터 계수 정장부(704) 및 수직 필터 계수 저장부(708)에 제공되는 어드레스 신호를 발생한다.The address provided to the horizontal filter coefficient formal unit 704 and the vertical filter coefficient storage unit 708 as a result of adding the input 1 / scale factor to each clock clk as a result of the horizontal address generator 702 and the vertical address generator 702. Generate a signal.

도 6에 도시된 장치의 동작을 상세히 설명한다.The operation of the apparatus shown in FIG. 6 will be described in detail.

1) 스케일 업 과정1) Scale up process

(1-1) 스케일 업 준비 과정(1-1) Scale up preparation process

계수 메모리(604)로부터 각각의 보간점들에 대한 수평/수직 방향의 필터 계수들을 얻고, 이를 수평/수직 필터 계수 저장부(704, 708)에 저장한다.Filter coefficients in the horizontal / vertical direction for the respective interpolation points are obtained from the coefficient memory 604 and stored in the horizontal / vertical filter coefficient storages 704 and 708.

(1-2) 스케일 업 과정(1-2) Scale up process

수평/수직 필터 계수 저장부(704, 708)에 저장된 필터 계수들을 독출하여 스케일링을 실시한다.The filter coefficients stored in the horizontal / vertical filter coefficient storage units 704 and 708 are read out to perform scaling.

2) 스케일 다운 과정2) scale down process

(2-1) 스케일 다운 준비 과정(2-1) Scale Down Preparation

계수 메모리(604)로부터 독출된 각각의 보간점들에 대한 수평/수직 방향의 필터 계수들을 얻고, 이를 윈도우 메모리(606)로부터 독출된 윈도우 계수들과 곱하여 실제의 수평/수직 방향의 필터 계수를 얻고 이를 수평/수직 필터 계수 저장부(704, 708)에 저장한다.Obtain the filter coefficients in the horizontal / vertical direction for each interpolation points read out from the coefficient memory 604, and multiply them by the window coefficients read out from the window memory 606 to obtain the actual filter coefficients in the horizontal / vertical direction. This is stored in the horizontal / vertical filter coefficient storage units 704 and 708.

(2-2) 스케일 다운 과정(2-2) Scale down process

수평/수직 필터 계수 저장부(704, 708)에 저장된 필터 계수들을 독출하여 스케일링을 실시한다.The filter coefficients stored in the horizontal / vertical filter coefficient storage units 704 and 708 are read out to perform scaling.

도 7은 도 6에 도시된 장치에 있어서 스케일 업/다운 준비 과정을 보이는 흐름도로서 8개의 필터 계수를 사용하는 경우를 보이는 것이다. 도 7에 도시된 흐름도는 오프세트 결정 과정(702), 스케일 업/다운 판단 과정(704), 제1계수 메모리 어드레스 발생 과정(706), 계수 메모리 액세스 과정(708), 제2계수 메모리 어드레스 발생 과정(710), 윈도우 메모리 어드레스 발생 과정(712), 윈도우 메모리 액세스 과정(714), 계수 발생 과정(716), 그리고 계수 저장 과정(718)을 포함한다.FIG. 7 is a flowchart illustrating a scale up / down preparation process in the apparatus illustrated in FIG. 6, in which eight filter coefficients are used. 7 shows an offset determination process 702, a scale up / down determination process 704, a first coefficient memory address generation process 706, a coefficient memory access process 708, and a second coefficient memory address generation. A process 710, a window memory address generation process 712, a window memory access process 714, a coefficient generation process 716, and a coefficient storage process 718.

스케일 업 준비 과정은 오프세트 결정 과정(702), 스케일 업/다운 판단 과정(704), 제1계수 메모리 어드레스 발생 과정(706), 계수 메모리 액세스 과정(708), 계수 발생 과정(716), 그리고 계수 저장 과정(718)을 통하여 수행된다.The scale up preparation process includes an offset determination process 702, a scale up / down decision process 704, a first coefficient memory address generation process 706, a coefficient memory access process 708, a coefficient generation process 716, and This is performed through the coefficient storage process 718.

한편, 스케일 다운 준비 과정은 오프세트 결정 과정(702), 스케일 업/다운 판단 과정(704), 제2계수 메모리 어드레스 발생 과정(710), 윈도우 메모리 어드레스 발생 과정(712), 계수 메모리 액세스 과정(708), 윈도우 메모리 액세스 과정(714), 계수 발생 과정(716), 그리고 계수 저장 과정(718)을 통하여 수행된다.Meanwhile, the scale down preparation process includes an offset determination process 702, a scale up / down determination process 704, a second coefficient memory address generation process 710, a window memory address generation process 712, a coefficient memory access process ( 708, the window memory access process 714, the coefficient generation process 716, and the coefficient storage process 718.

도 7에 있어서 offset[N]은 계수 메모리(602)에 있어서 n번째 보간점이 위치하는 오프세트의 어드레스를 나타내고, Factor는 스케일 팩터 M을 나타내고, INVFactor는 스케일 팩터 M의 역수를 나타낸다.In FIG. 7, offset [N] represents an offset address at which the nth interpolation point is located in the coefficient memory 602, Factor represents the scale factor M, and INVFactor represents the inverse of the scale factor M. In FIG.

도 8은 도 6에 도시된 장치에 있어서 필터 계수 출력 과정을 보이는 흐름도이다. 도 8에 도시된 흐름도는 오프세트 초기화 과정(802), 필터 계수 독출 과정(804), 필터 계수 저장 과정(806), 그리고 필터 계수 출력 과정(808)을 포함한다.FIG. 8 is a flowchart illustrating a filter coefficient output process in the apparatus of FIG. 6. 8 includes an offset initialization process 802, a filter coefficient read process 804, a filter coefficient storage process 806, and a filter coefficient output process 808.

도 8에 있어서 offset[N]은 계수 메모리(602)에 있어서 n번째 보간점이 위치하는 오프세트의 어드레스를 나타내고, Factor는 스케일 팩터 M을 나타내고, INVFactor는 스케일 팩터 M의 역수를 나타낸다.In FIG. 8, offset [N] represents an offset address at which the nth interpolation point is located in the coefficient memory 602, Factor represents a scale factor M, and INVFactor represents an inverse of the scale factor M. In FIG.

본 발명에 따른 필터 계수 발생 방법은 스케일링 수행 전에 각 보간점들에 대한 필터 계수들을 필터 계수 메모리에 저장하여 두고, 스케일링 수행시에 필터 계수 메모리를 액세스하여 필터 계수들을 출력하므로 빠른 시간 내에 필터 계수를 제고할 수 있는 효과가 있다.The filter coefficient generating method according to the present invention stores the filter coefficients for each interpolation point in the filter coefficient memory before scaling, and accesses the filter coefficient memory to output the filter coefficients at the time of scaling, so that the filter coefficients can be quickly generated. There is an effect that can be improved.

또한, 연산에 의해 필터 계수를 발생하지 않고 메모리 액세스에 의해 필터 계수를 발생하므로 하드웨어의 부담이 적어지는 잇점이 있다.In addition, since the filter coefficients are generated by the memory access without generating the filter coefficients by the operation, the burden on the hardware is reduced.

Claims (3)

입력 이미지의 해상도를 소정의 스케일 팩터 M에 따라 변환하여 출력하는 이미지 스케일링을 위한 필터 계수 발생 방법에 있어서,A filter coefficient generation method for image scaling for converting and outputting a resolution of an input image according to a predetermined scale factor M, 스케일링을 위한 스케일 펑션을 샘플링하여 계수 메모리에 저장하는 과정;Sampling a scale function for scaling and storing the scale function in a coefficient memory; 상기 스케일 펑션을 제한하기 위한 윈도우 펑션을 샘플링하여 윈도우 메모리에 저장하는 과정;Sampling a window function for limiting the scale function and storing the sampled window function in a window memory; 스케일 팩터 M을 참조하여 상기 계수 메모리로부터 각 보간점들에 대한 필터 계수들을 독출하는 과정;Reading filter coefficients for each interpolation point from the coefficient memory with reference to a scale factor M; 상기 상기 스케일 팩터 M을 참조하여 윈도우 메모리로부터 윈도우 계수를 독출하는 과정;Reading window coefficients from a window memory with reference to the scale factor M; 상기 필터 계수들과 윈도우 계수를 곱하여 얻은 필터 계수들을 필터 계수 메모리에 저장하는 과정; 및Storing filter coefficients obtained by multiplying the filter coefficients by a window coefficient in a filter coefficient memory; And 각 보간점들에 대해 상기 필터 계수 메모리에 저장된 필터 계수들을 독출하여 출력하는 과정을 포함하는 필터 계수 발생 방법.And reading out and outputting filter coefficients stored in the filter coefficient memory for each interpolation point. 제1항에 있어서, 상기 스케일 펑션 저장 과정은 스케일 펑션이 원점을 중심으로 대칭일 경우 원점을 중심으로 한쪽의 스케일 펑션만을 저장하는 것을 특징으로 하는 필터 계수 발생 방법.The method of claim 1, wherein the storing of the scale function comprises storing only one scale function about the origin when the scale function is symmetric about the origin. 제1항에 있어서, 상기 스케일 펑션 저장 과정 및 상기 윈도우 펑션 저장 과정에서 상기 스케일 펑션 및 윈도우 펑션을 샘플링하는 샘플링 주기 및 샘플링 횟수는 같은 것을 특징으로 하는 필터 계수 발생 방법.The method of claim 1, wherein a sampling period and a sampling frequency for sampling the scale function and the window function in the scale function storing step and the window function storing step are the same.
KR1019990049421A 1999-11-09 1999-11-09 filter coefficient generatig method for image scaling KR20010045909A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990049421A KR20010045909A (en) 1999-11-09 1999-11-09 filter coefficient generatig method for image scaling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990049421A KR20010045909A (en) 1999-11-09 1999-11-09 filter coefficient generatig method for image scaling

Publications (1)

Publication Number Publication Date
KR20010045909A true KR20010045909A (en) 2001-06-05

Family

ID=19619188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990049421A KR20010045909A (en) 1999-11-09 1999-11-09 filter coefficient generatig method for image scaling

Country Status (1)

Country Link
KR (1) KR20010045909A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100695916B1 (en) * 2000-08-14 2007-03-19 삼성전자주식회사 Image scaler apparatus using Cubic Spline Interpolation
CN112886944A (en) * 2019-11-29 2021-06-01 西安诺瓦星云科技股份有限公司 Filter coefficient generation method and device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100695916B1 (en) * 2000-08-14 2007-03-19 삼성전자주식회사 Image scaler apparatus using Cubic Spline Interpolation
CN112886944A (en) * 2019-11-29 2021-06-01 西安诺瓦星云科技股份有限公司 Filter coefficient generation method and device

Similar Documents

Publication Publication Date Title
CA2129092A1 (en) Image Interpolation Apparatus
US5410616A (en) Loop-up table image scaling for rational factors
KR960009610A (en) How to provide image scaling filters and video scaling
KR100416370B1 (en) Method and apparatus for deinterlacing video fields into sequential scan video frames
JPH06295338A (en) Method for producing picture
KR20010045909A (en) filter coefficient generatig method for image scaling
KR20000039714A (en) Texture mapping system
US7609326B2 (en) Image scaler and method of the same
JPH0310380A (en) Image converting circuit
US6801252B1 (en) Electronic zooming circuit
KR100218318B1 (en) Frequency converting apparatus
JP3433086B2 (en) Image conversion method and image conversion device
JPH11203467A (en) Display and its method
KR20020004169A (en) Zoom buffer control circuit having function of up/down scaling
JPH08111852A (en) Motion adaptive scanning line interpolation device
KR100218350B1 (en) Flicker subpressing apparatus
GB2373950A (en) Image processing apparatus and method, and recording medium
KR100223857B1 (en) Apparatus for general image format transformation
KR970006553B1 (en) Display zooming apparatus of image signal processing system
JP2004227485A (en) Interpolation coefficient generating circuit
JP2006003481A (en) Image size conversion apparatus and image pickup apparatus
JP2004193895A (en) Image signal processing apparatus
JPH11272858A (en) Resolution converting device
JP2004240432A (en) Audio data display device and simultaneous display method
JPH1091143A (en) Picture display device

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination