KR100208389B1 - Method and apparatus for uniformly scaling adigital image - Google Patents
Method and apparatus for uniformly scaling adigital image Download PDFInfo
- Publication number
- KR100208389B1 KR100208389B1 KR1019960030433A KR19960030433A KR100208389B1 KR 100208389 B1 KR100208389 B1 KR 100208389B1 KR 1019960030433 A KR1019960030433 A KR 1019960030433A KR 19960030433 A KR19960030433 A KR 19960030433A KR 100208389 B1 KR100208389 B1 KR 100208389B1
- Authority
- KR
- South Korea
- Prior art keywords
- original
- line
- sum
- memory
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
- G06T3/4007—Interpolation-based scaling, e.g. bilinear interpolation
Abstract
본 발명은 (M)개의 연속하는 원하는 영상 데이터를 가지고 균일하게 스케일된 원하는 디지탈 영상을 얻기 위하여, (N)개의 연속하는 원 영상 데이터를 가진 원 디지탈 영상을 처리하는 데 사용되는 장치이다.The present invention is an apparatus used to process a raw digital image with (N) consecutive original image data in order to obtain a uniformly scaled desired digital image with (M) consecutive desired image data.
(M)이 (N)보다 클 경우, (M-N)을 (N-1)로 나누어 나머지(S)를 발생하고 (s)가 1 에서 (S) 사이의 범위에서 변할 때 (n)이 (n+1)*(S) 1 (s)*(N)을 만족하는 최소 수라 하면, (n)번째와 (n+1)번째의 원 영상 데이터 사이에 삽입된 나머지 보간 영상 데이터를 생성하기 위해 (n)번째와 (n+1)번째의 원 영상 데이터의 선형 보간이 수행된다. 그리고 (M)이 (N)보다 작을 경우, 어드레스 생성기(37)는 메모리(2)를 제어하여 선택된 원 영상 데이터를 출력한다. (N)을 (M)으로 나누어 발생하는 몫을 (V)라 할 때, 메모리(2)에 의해 출력된 이어지는 원 영상 데이터는 바로 직전에 출력된 원 영상 데이터로 부터 (V) 또는 (V+1) 만큼 오프셋된다.If (M) is greater than (N), divide (MN) by (N-1) to produce the remainder (S), and (n) becomes (n) when (s) varies from 1 to (S) A minimum number that satisfies +1) * (S) 1 (s) * (N) is used to generate the remaining interpolation image data inserted between the (n) th and (n + 1) th original image data. Linear interpolation of the n) th and (n + 1) th original image data is performed. When (M) is smaller than (N), the address generator 37 controls the memory 2 to output the selected original image data. When the quotient generated by dividing (N) by (M) is (V), the subsequent original image data output by the memory 2 is (V) or (V +) from the immediately preceding original image data output. Offset by 1).
Description
본 발명은 영상 처리 장치 및 방법에 관한 것으로서, 특히 디지탈 영상을 실시간으로 2차원 균일 스케일링(scaling)할 수 있는 장치 및 방법에 관한 것이다.The present invention relates to an image processing apparatus and method, and more particularly, to an apparatus and method capable of two-dimensional uniform scaling of a digital image in real time.
디지탈 영상을 결합하는 능력은 컴퓨터의 멀티미디어 응용에 있어서 매우 중요하다. 일반적으로 디지탈 영상은 다른 디지탈 영상과 결합되기 전에 전처리 과정을 거친다. 전처리 과정은 보통 디지탈 영상의 크기를 증가시키거나(이하 스케일링 업이라 함), 감소시키거나(이하 스케일링 다운이라 함), 디지탈 영상의 선택된 부분만 잘라내거나, 디지탈 영상의 선택된 부분을 다른 위치로 이동시키는 등의 방법에 의해 수행된다.The ability to combine digital images is very important for multimedia applications in computers. In general, digital images are preprocessed before being combined with other digital images. The preprocessing process usually increases the size of the digital image (hereinafter referred to as scaling up), reduces it (hereinafter referred to as scaling down), crops only selected portions of the digital image, or moves the selected portion of the digital image to another location. It is carried out by a method such as.
디지탈 영상의 스케일링 업(Scaling Up)과 스케일링 다운(Scaling Down)은 보통 특수하게 프로그램된 컴퓨터에 의해 수행된다. 스케일링 업은 디지탈 영상의 매 두 개의 주사선 마다 선형 보간을 수행하여 두 개의 주사선 사이에 삽입되는 적어도 한 개의 보간된 주사선을 얻고, 또한 각 주사선의 매 두개의 픽셀 데이터 마다 선형 보간을 수행하여 두 개의 픽셀 데이터 사이에 삽입되는 적어도 한 개의 보간된 픽셀 데이터를 얻음으로써 이루어진다.Scaling up and scaling down of digital images are usually performed by specially programmed computers. Scaling-up performs linear interpolation every two scan lines of the digital image to obtain at least one interpolated scan line inserted between the two scan lines, and also performs linear interpolation for every two pixel data of each scan line to give two pixel data. By obtaining at least one interpolated pixel data inserted in between.
그리고 스케일링 다운은 디지탈 영상의 주사선의 일부를 삭제하고, 또한 삭제되지 않고 남아있는 각 주사선의 픽셀 데이터의 일부를 삭제함으로써 이루어진다.Scaling down is performed by deleting part of the scan lines of the digital image, and also deleting part of the pixel data of each scan line which remains undeleted.
디지탈 영상의 스케일링 업에 있어서, 컴퓨터에 의해 원 영상 데이터의 선형 보간은 상대적으로 처리속도가 느리다. 따라서 이를 해결하기 위해 여러가지의 전용 하드웨어 장치가 개발되어, 디지탈 영상의 실시간 스케일링 업을 가능하게 하고 있다.In scaling up digital images, linear interpolation of original image data by a computer is relatively slow. Therefore, in order to solve this problem, various dedicated hardware devices have been developed to enable real-time scaling up of digital images.
그러나 대부분의 전용 하드웨어 장치들은 제한된 범위에서 디지탈 영상을 스케일링 업만 할 수 있다. (N) 개의 주사선을 가진 디지탈 영상을 스케일링 업 할 때, 균일성을 유지하기 위해 원 디지탈 영상의 매 두 개의 원 주사선 사이 마다 서로 같은 수의 보간된 주사선을 삽입하기 위해서는, 보간되는 총 주사선 수는 (N-1)개의 배수가 되어야 한다. 그리고 (N')개의 픽셀 데이터를 가진 주사선을 스케일링 업 할 때도 위와 마찬가지이다.However, most dedicated hardware devices can only scale up digital images in a limited range. When scaling up a digital image with (N) scan lines, in order to insert the same number of interpolated scan lines between every two original scan lines of the original digital image to maintain uniformity, the total number of interpolated scan lines is It should be a multiple of (N-1) pieces. The same applies to scaling up a scan line having (N ') pixel data.
현재, 영상을 가변적으로 확대하고 축소하는 디지털 영상의 2차원 스케일링은 특수한 그래픽 프로세서를 사용하거나 전용 하드웨어 장치를 사용함으로써 가능하다. 처음에, 원래의 영상은 프레임 메모리에 저장된다. 이 때 상기 원 영상은 첫 번째 차원에서 스케일링되고, 그 결과로 스케일링된 일차원 영상은 프레임 메모리에 저장된다. 그리고 나서 상기 스케일링된 영상은 두 번째 차원에서 스케일링되고, 그 결과로 스케일링된 이차원 영상은 컴퓨터 디스플레이 장치 또는 프린터와 같은 출력장치로 전달되기 전에 프레임 메모리에 저장된다. 종래의 스케일링 방법들은 상대적으로 큰 메모리를 요구하므로 비용면에서 효율적이지 못하다. 특히 큰 비율로 확대를 할 경우 더욱 그러하다. 게다가, 종래의 스케일링 방법은 많은 처리 단계를 거쳐야 하고, 따라서 영상을 두 번째 차원에서 스케일링하기 전에 일차원으로 스케일링된 영상을 프레임 메모리에 저장해야 하며, 이차원으로 스케일링된 영상을 출력장치로 제공하기 전에 먼저 프레임 메모리에 상기 이차원으로 스케일링된 영상을 저장해야 하기 때문에 상대적으로 효율성이 떨어진다. 따라서, 종래의 스케일링 방법은 생(live) 비디오 응용분야에서 사용하기에는 적당하지 않다.Currently, two-dimensional scaling of digital images to variably enlarge and reduce the image is possible by using a special graphics processor or by using a dedicated hardware device. Initially, the original image is stored in the frame memory. At this time, the original image is scaled in the first dimension, and the scaled one-dimensional image is stored in the frame memory. The scaled image is then scaled in a second dimension, and as a result the scaled two-dimensional image is stored in frame memory before being transferred to an output device such as a computer display device or a printer. Conventional scaling methods require relatively large memory and are therefore not cost effective. This is especially true if you zoom in at a large rate. In addition, conventional scaling methods require a number of processing steps, and therefore, before scaling an image in a second dimension, the scaled image in one dimension must be stored in the frame memory, and before a two-dimensional scaled image is provided to the output device. Since the two-dimensional scaled image must be stored in a frame memory, the efficiency is relatively low. Thus, conventional scaling methods are not suitable for use in live video applications.
본 발명의 목적은 디지털 영상을 실시간으로 이차원 균일 스케일링 가능하게 하는 장치 및 방법을 제공함에 있다.An object of the present invention is to provide an apparatus and method for enabling two-dimensional uniform scaling of a digital image in real time.
좀 더 자세하게 말하면, 본 발명의 목적은 특히 생(live) 비디오 응용분야에서 사용하기에 적합한 저렴하고 매우 효율적인 스케일링 장치 및 방법을 제공한다.More specifically, it is an object of the present invention to provide an inexpensive and highly efficient scaling apparatus and method that is particularly suitable for use in live video applications.
도 1은 본 발명에 따른 스케일링 장치의 바람직한 실시예의 개략적인 회로 블럭도이다.1 is a schematic circuit block diagram of a preferred embodiment of a scaling apparatus according to the present invention.
도 2는 바람직한 실시예의 이원선형 가산기의 개략적인 회로 블럭도이다.2 is a schematic circuit block diagram of a binary linear adder of a preferred embodiment.
도 3은 바람직한 실시예의 수직 스케일링 제어기의 개략적인 회로 블럭도이다.3 is a schematic circuit block diagram of a vertical scaling controller of the preferred embodiment.
도 4는 수직 스케일링 제어기의 나머지 분산기의 개략적인 회로 블럭도이다.4 is a schematic circuit block diagram of the remaining disperser of the vertical scaling controller.
도 5는 수직 스케일링 제어기의 직렬 알파 생성기의 개략적인 회로 블럭도이다.5 is a schematic circuit block diagram of a serial alpha generator of a vertical scaling controller.
도 6은 수직 스케일링 제어기의 어드레스 생성기의 개략적인 회로 블럭도이다.6 is a schematic circuit block diagram of an address generator of a vertical scaling controller.
도 7은 N=5 이고 |$N=2 일 때 수직 스케일링부의 수직 스케일링 업 동작을 설명하는 타이밍도이다.7 is a timing diagram illustrating the vertical scaling up operation of the vertical scaling unit when N = 5 and | $ N = 2.
도 8은 N=5 이고 |$N=6 일 때 수직 스케일링부의 수직 스케일링 업 동작을 설명하는 타이밍도이다.8 is a timing diagram illustrating the vertical scaling up operation of the vertical scaling unit when N = 5 and | $ N = 6.
도 9는 N=5 이고 |$N=2 일 때 수직 스케일링부의 수직 스케일링 다운 동작을 설명하는 타이밍도이다.9 is a timing diagram illustrating a vertical scaling down operation of the vertical scaling unit when N = 5 and | $ N = 2.
도 10은 N'=5 이고 |$N'=2 일 때 바람직한 실시예의 수평 스케일링부의 수평 스케일링 업 동작을 설명하는 타이밍도이다.Fig. 10 is a timing diagram illustrating the horizontal scaling up operation of the horizontal scaling unit in the preferred embodiment when N '= 5 and | N' = 2.
도 11은 N'=5 이고 |$N'=2 일 때 수평 스케일링부의 수평 스케일링 다운 동작을 설명하는 타이밍도이다.11 is a timing diagram illustrating a horizontal scaling down operation of the horizontal scaling unit when N '= 5 and | $ N' = 2.
본 발명에 따른, 장치는 원(原) 디지털 영상을 처리하여 균일하게 스케일링된 원하는 디지털 영상을 획득할 수 있게 한다. 상기 장치는 원래의 디지털 영상을 저장하는 프레임 메모리를 포함한다. 원(original) 디지털 영상은 (N)개의 연속되는 원(original) 주사선 및 원 주사선 당 (N')개의 연속하는 원 픽셀 데이터를 가진다. 상기 장치는 원 디지털 영상을 수직방향으로 스케일링하여 (M)개의 연속하는 원하는 주사선을 얻기위한 수직 스케일링부 및 상기 수직 스케일링부로부터 원하는 주사선을 수평방향으로 스케일링하여 주사선당 (M')개의 연속하는 원하는 픽셀 데이터를 얻기위한 수평 스케일링부를 더 포함한다.In accordance with the present invention, an apparatus may process a raw digital image to obtain a uniformly scaled desired digital image. The device includes a frame memory for storing the original digital image. The original digital image has (N) consecutive original scan lines and (N ') continuous original pixel data per original scan line. The apparatus comprises a vertical scaling unit for scaling the original digital image in the vertical direction to obtain (M) continuous desired scan lines and (M ′) continuous desired per scan line by horizontally scaling the desired scanning line from the vertical scaling unit. The apparatus further includes a horizontal scaling unit for obtaining pixel data.
(M)이 (N)보다 클 때 수직스케일링부가 원 디지털 영상을 스케일링하기 위해, 상기 수직 스케일링부는In order for the vertical scaling unit to scale the original digital image when (M) is greater than (N), the vertical scaling unit
프레임 메모리로부터 (n+1)번째 원 주사선을 저장하기 위한, 상기 프레임 메모리에 연결된 라인 메모리;A line memory coupled to the frame memory for storing an (n + 1) th original scan line from a frame memory;
(n)번째 원 주사선을 저장하기 위한, 상기 라인 메모리에 연결된 라인 버퍼;a line buffer coupled to said line memory for storing an (n) th original scan line;
상기 라인 메모리와 라인버퍼에 연결된 제1선형 보간기; 및A first linear interpolator connected to the line memory and a line buffer; And
상기 프레임 메모리, 라인 버퍼 및 제1선형 보간기에 연결된 수직 스케일링 제어기를 포함한다.And a vertical scaling controller coupled to the frame memory, line buffer, and first linear interpolator.
상기 수직 스케일링 제어기는 원 주사선의 라인 메모리 및 라인 버퍼로의 저장을 제어하고, 더구나 (M-N)을 (N-1)로 나눈 나머지가 (S) 이고, 1 부터 (S) 까지의 범위에 속하는 (s)에 대해 (n)이 (n+1)*(S) 1 (s)*(N)을 만족하는 최소수일 때, 상기 라인메모리와 라인버퍼로부터 (n)번째와 (n+1)번째의 원 주사선을 선형보간하여 그 사이에 삽입된 잉여 보간된 주사선을 생성하도록 상기 제1선형보간기를 제어한다.The vertical scaling controller controls the storage of the original scan line into the line memory and the line buffer, and furthermore, the remainder of dividing (MN) by (N-1) is (S), which is in the range from 1 to (S) ( (n) and (n + 1) th from the line memory and linebuffer when (n) is the minimum number satisfying (n + 1) * (S) 1 (s) * (N) for s) The first linear interpolator is controlled to linearly interpolate the original scan line of to generate an excess interpolated scan line inserted therebetween.
(M)이 (N)보다 작을 때 수직스케일링부가 원 디지털 영상을 스케일링하기 위해, 수직 스케일링 제어기는In order for the vertical scaling unit to scale the original digital image when (M) is less than (N), the vertical scaling controller
상기 프레임 메모리를 제어하여 상기 라인메모리에 저장하기 위해 첫번째 원 주사선을 출력하는, 상기 프레임 메모리에 연결된 제1어드레스 생성기;A first address generator coupled to said frame memory for controlling said frame memory and outputting a first original scan line for storage in said line memory;
(N)을 (M)으로 나누어 발생하는 나머지 (U)를 생성하기 위한 제1생성수단;First generating means for generating a remainder (U) generated by dividing (N) by (M);
제1데이터 레지스터;A first data register;
상기 제1생성수단과 상기 제1데이터 레지스터에 연결되어, 상기 (U)와 상기 제1데이터 레지스터에 저장된 숫자를 더하여 합을 구하는 제1가산기 수단; 및First adder means connected to said first generating means and said first data register to obtain a sum by adding the numbers stored in said (U) and said first data register; And
상기 제1가산기수단, 상기 제1어드레스생성기 및 상기 데이터 레지스터에 연결되어, 상기 합을 (M)과 비교하고, 상기 제1어드레스 생성기를 활성화시켜, 상기 프레임메모리를 제어하여 상기 라인메모리에 저장하기 위한, (N)을 (M)으로 나누어 몫을 (V)라 할 때 상기 프레임 메모리에 의해 출력된 직전의 원 주사선으로 부터 합이 (M)보다 작을 때는 (V)만큼, 합이 (M)과 적어도 같을 때는 (V+1)만큼 오프셋(offset)된 또 다른 원 주사선을 출력하는 제1계산수단을 포함한다.Connected to the first adder means, the first address generator and the data register, comparing the sum with (M), activating the first address generator, controlling the frame memory to store in the line memory (N) is divided by (M) and the quotient is (V), the sum is (M) by (V) when the sum is less than (M) from the previous original scanning line output by the frame memory. And first calculating means for outputting another original scanning line offset by (V + 1) when at least equal to (V + 1).
상기 제1계산수단은 합이 적어도 (M)과 같을 때는 상기 (M)과 합의 차를 제1데이터 레지스터에 저장하고, 합이 (M)보다 작을 때는 상기 합을 제1데이터 레지스터에 저장한다.The first calculating means stores a difference in agreement with (M) in the first data register when the sum is at least equal to (M), and stores the sum in the first data register when the sum is less than (M).
상기 수평 스케일링부가 (M')이 (N')보다 클 때 상기 수직 스케일링부로부터 원하는 주사선들을 스케일링하기 위해, 상기 수평 스케일링부는In order to scale desired scan lines from the vertical scaling portion when the horizontal scaling portion M 'is greater than (N'), the horizontal scaling portion
상기 제1선형보간기에 연결되어, 상기 제1선형보간기로부터 한 주사선의 (n'+1)번째 픽셀 데이터를 저장하는 도트 레지스터;A dot register coupled to the first linear interpolator to store (n '+ 1) th pixel data of one scan line from the first linear interpolator;
상기 도트 레지스터에 연결되어, 상기 주사선의 (n')번째 픽셀 데이터를 저장하는 도트 버퍼;A dot buffer connected to the dot register to store (n ') th pixel data of the scan line;
상기 도트 레지스터와 상기 도트버퍼에 연결되어 있는 제2선형 보간기; 및A second linear interpolator connected to the dot register and the dot buffer; And
상기 라인 메모리, 라인버퍼, 도트버퍼 및 상기 제2선형 보간기에 연결되어 있는 수평 스케일링 제어기를 포함한다. 상기 수평 스케일링 제어기는 픽셀데이터의 도트 레지스터, 도트버퍼로의 저장을 제어하고, 더구나 (M'-N')을 (N'-1)로 나눈 나머지가 (S') 이고, 1 부터 (S') 까지의 범위에 속하는 (s')에 대해 (n')이 (n'+1)*(S') 1 (s')*(N')을 만족하는 최소수일 때, 상기 도트레지스터와 도트버퍼로부터 (n')번째와 (n'+1)번째의 픽셀 데이터의 선형보간을 수행하여 상기 (n')번째와 (n'+1)번째의 픽셀 데이터 사이에 삽입된 잉여 보간된 픽셀데이터를 생성하도록 상기 제2선형보간기를 제어한다.And a horizontal scaling controller coupled to the line memory, line buffer, dot buffer, and the second linear interpolator. The horizontal scaling controller controls the storage of the pixel data in the dot register and the dot buffer, and furthermore, the remainder obtained by dividing (M'-N ') by (N'-1) is (S'), from 1 to (S '). The dot register and dot when (n ') is the minimum number satisfying (n' + 1) * (S ') 1 (s') * (N ') for (s') in the range up to Redundant interpolated pixel data inserted between the (n ') and (n' + 1) th pixel data by performing linear interpolation of the (n ') th and (n' + 1) th pixel data from the buffer The second linear interpolator is controlled to generate a.
(M')이 (N')보다 작을 때 수평스케일링부가 상기 수직스케일링부로부터 원하는 주사선을 스케일링하기 위해, 상기 수평 스케일링 제어기는In order for the horizontal scaling portion to scale the desired scan line from the vertical scaling portion when (M ') is smaller than (N'), the horizontal scaling controller
상기 라인 메모리에 연결되어, 상기 라인 메모리를 제어하여 하나의 원 주사선의 첫 번째 원 픽셀데이터를 출력하는 제2어드레스 생성기;A second address generator connected to the line memory and configured to control the line memory to output first original pixel data of one original scan line;
(N')을 (M')으로 나누어 발생하는 나머지 (U')를 생성하기 위한 제2생성수단;Second generating means for generating a remainder (U ') generated by dividing (N') by (M ');
제2데이터 레지스터;A second data register;
상기 제2생성수단과 상기 제2데이터 레지스터에 연결되어, 상기 (U')와 상기 제2데이터 레지스터에 저장된 숫자를 더하여 합을 구하는 제2가산기 수단; 및Second adder means connected to said second generating means and said second data register to obtain a sum by adding the number stored in said U 'and said second data register; And
상기 제2가산기수단, 상기 제2어드레스생성기 및 상기 제2데이터 레지스터에 연결되어, 상기 합을 (M')과 비교하고, 상기 제2어드레스 생성기를 활성화시켜, 상기 라인메모리를 제어하여, (N')을 (M')으로 나누어 몫을 (V')라 할 때 상기 라인 메모리에 의해 출력된 직전의 원 픽셀 데이터로부터 합이 (M')보다 작을 때는 (V')만큼, 합이 (M')과 적어도 같을 때는 (V'+1)만큼 오프셋(offset)된, 상기 하나의 원 주사선의 또 다른 원 픽셀 데이터를 출력하는 제2계산수단을 포함한다. 상기 제2계산수단은 합이 적어도 (M')과 같을 때는 상기 (M')과 합의 차를 제2데이터 레지스터에 저장하고, 합이 (M')보다 작을 때는 상기 합을 제2데이터 레지스터에 저장한다.Connected to the second adder means, the second address generator and the second data register, compare the sum with M ', activate the second address generator to control the line memory, and (N When ') is divided by (M') and the quotient is (V '), when the sum is less than (M') from the previous original pixel data output by the line memory, the sum is (M '). And second calculating means for outputting another original pixel data of the one original scanning line, offset by (V '+ 1) when at least equal to'). The second calculating means stores a difference in agreement with (M ') in a second data register when the sum is at least equal to (M'), and stores the sum in the second data register when the sum is less than (M '). Save it.
수평 스케일링부의 상기 제2선형보간기의 출력은 출력장치로 직접 제공될 수 있다.The output of the second linear interpolator of the horizontal scaling unit may be directly provided to the output device.
본 발명의 한 측면에 따르면, 원 디지탈 영상이 (N)개의 연속하는 원 영상 데이타를 가지고 있고, 원하는 디지탈 영상은 (M)개의 연속하는 원하는 영상 데이타를 가지고 있으며, (M)이 (N)보다 클 때, 균일하게 스케일된 원하는 디지탈 영상을 얻기 위한 원 디지탈 영상을 처리하는 방법은According to one aspect of the invention, the original digital image has (N) consecutive original image data, the desired digital image has (M) consecutive desired image data, and (M) is greater than (N) When large, the method of processing the original digital image to obtain a uniformly scaled desired digital image is
선형 보간기를 제공하는 단계; 및Providing a linear interpolator; And
(M-N)을 (N-1)로 나누어 나머지를 (S)라 하고, (s)가 1 부터 (S) 까지의 범위에서 변할 때 (n)이 (n+1)*(S) 1 (s)*(N)을 만족하는 최소 수라 하면, 원 영상 데이타의 (n)번째와 (n+1)번째 영상 데이타의 선형 보간을 수행하여, (n)번째와 (n+1)번째 원 영상 데이타 사이에 삽입된 잉여 보간 영상 데이타를 생성하기 위해 선형 보간기를 제어하는 단계로 이루어 진다.Dividing (MN) by (N-1), the remainder is called (S), and when (s) varies from 1 to (S), (n) is (n + 1) * (S) 1 (s If the minimum number satisfies) * (N), linear interpolation of the (n) th and (n + 1) th image data of the original image data is performed, and the (n) th and (n + 1) th original image data is performed. Controlling a linear interpolator to generate redundant interpolation image data interposed therebetween.
본 발명의 다른 측면에 따르면, 원 디지탈 영상이 (N)개의 연속하는 원 영상 데이타를 가지고 있고, 원하는 디지탈 영상은 (M)개의 연속하는 원하는 영상 데이타를 가지고 있으며, (M)이 (N)보다 작을 때, 균일하게 스케일된 원하는 디지탈 영상을 얻기 위한 원 디지탈 영상을 처리하는 방법은According to another aspect of the invention, the original digital image has (N) consecutive original image data, the desired digital image has (M) consecutive desired image data, and (M) is greater than (N) When small, the method of processing the original digital image to obtain a uniformly scaled desired digital image
(I-1) 원 영상 데이타를 메모리부에 저장하는 단계;(I-1) storing original image data in a memory unit;
(I-2) 메모리부를 제어하여 원 영상 데이타 중 첫번째 데이타를 출력시키는 어드레스 생성기를 제공하는 단계;(I-2) providing an address generator for controlling the memory unit to output the first data of the original image data;
(I-3) (N)을 (M)으로 나눈 나머지 (U)를 데이타 레지스터에 저장하는 단계;(I-3) storing the remainder (U) by dividing (N) by (M) in a data register;
(I-4) (U)와 데이타 레지스터에 저장되어 있는 수를 더하여 합을 구하는 단계;(I-4) adding up (U) and the number stored in the data register to obtain a sum;
(I-5) 합과 (M)을 비교하는 단계;(I-5) comparing the sum with (M);
(I-6) (N)을 (M)으로 나누어 몫을 (V)라 할 때, 메모리부를 제어하여 바로 전에 메모리 부에 의해 출력된 원 영상 데이타로 부터 합이 (M)보다 작을 때는 (V)만큼, 합이 (M)과 적어도 같을 때는 (V+1)만큼 차감된 또 다른 영상 데이타를 출력하기 위해 어드레스 생성기를 활성화시키는 단계;(I-6) When (N) is divided by (M) and the quotient is (V), when the sum is less than (M) from the original image data output by the memory section immediately before controlling the memory section, Activating the address generator to output another image data subtracted by (V + 1) when the sum is at least equal to (M);
(I-7) 합이 (M)과 적어도 같을 때는 합에서 (M)을 빼서 데이타 레지스터에 생성된 차를 저장하고, 합이 (M) 보다 작을 때는 합을 데이타 레지스터에 저장하는 단계; 및(I-7) storing the difference generated in the data register by subtracting (M) from the sum when the sum is at least equal to (M), and storing the sum in the data register when the sum is less than (M); And
(I-8) (M)개의 원 영상 데이타가 메모리부에 의해 출력될 때 까지 상기 (I-4)단계에서 (I-7)단계를 반복하는 단계로 이루어진다.(I-8) Steps (I-4) to (I-7) are repeated until (M) original image data is outputted by the memory unit.
본 발명의 또 다른 측면에 따르면, 원 디지탈 영상이 (N)개의 연속하는 원 영상 데이타를 가지고 있고, 원하는 디지탈 영상은 (M)개의 연속하는 원하는 영상 데이타를 가지고 있으며, (M)이 (N)보다 클 때, 균일하게 스케일된 원하는 디지탈 영상을 얻기 위한 원 디지탈 영상을 처리하는 장치는According to another aspect of the invention, the original digital image has (N) consecutive original image data, the desired digital image has (M) consecutive desired image data, and (M) (N) When larger, the apparatus for processing the original digital image to obtain a uniformly scaled desired digital image
선형 보간기; 및Linear interpolator; And
(M-N)을 (N-1)로 나누어 나머지를 (S)라 하고, (s)가 1 부터 (S) 까지의 범위에서 변할 때 (n)이 (n+1)*(S) 1 (s)*(N)을 만족하는 최소 수라 하면, 선형 보간기를 제어하여 원 영상 데이타의 (n)번째와 (n+1)번째 영상 데이타의 선형 보간을 수행하여, (n)번째와 (n+1)번째 원 영상 데이타 사이에 삽입된 잉여 보간 영상 데이타를 생성하기 위한, 선형 보간기에 연결된 제어기 수단으로 이루어진다.Dividing (MN) by (N-1), the remainder is called (S), and when (s) varies from 1 to (S), (n) is (n + 1) * (S) 1 (s If the minimum number satisfies) * (N), the linear interpolator is controlled to perform linear interpolation of the (n) th and (n + 1) th image data of the original image data, and the (n) th and (n + 1) Control means connected to a linear interpolator for generating redundant interpolation image data inserted between the < RTI ID = 0.0 > th < / RTI > original image data.
본 발명의 또 다른 측면에 의하면, 원 디지탈 영상이 (N)개의 연속하는 원 영상 데이타를 가지고 있고, 원하는 디지탈 영상은 (M)개의 연속하는 원하는 영상 데이타를 가지고 있으며, (M)이 (N)보다 작을 때, 균일하게 스케일된 원하는 디지탈 영상을 얻기 위한 원 디지탈 영상을 처리하는 장치는According to another aspect of the invention, the original digital image has (N) consecutive original image data, the desired digital image has (M) consecutive desired image data, and (M) (N) When smaller, the apparatus for processing the original digital image to obtain a uniformly scaled desired digital image
원 영상데이타를 저장하는 메모리부;A memory unit for storing original image data;
상기 메모리부에 연결되어, 메모리 유니트를 제어하여 원 영상 데이타의 첫번째 데이타를 출력하는 어드레스 생성기;An address generator connected to the memory unit for controlling a memory unit to output first data of original image data;
(N)에 (M)을 나누어 발생하는 나머지 (U)를 생성하기 위한 생성수단;Generating means for generating a remainder (U) generated by dividing (M) by (N);
데이타 레지스터;Data registers;
상기 생성수단과 상기 데이타 레지스터에 연결되어, (U)와 데이타 레지스터에 저장된 숫자를 더하여 합을 구하는 가산기 수단; 및An adder means connected to the generating means and the data register to add a sum of the numbers stored in the data register and (U); And
상기 가산기 수단과 상기 어드레스 생성기와 상기 데이타 레지스터에 연결되어, 합과 (M)과 비교하고, (N)을 (M)으로 나누어 몫을 (V)라 할 때 메모리부를 제어하여 바로 전에 메모리 부에 의해 출력된 원 영상 데이타로 부터 합이 (M)보다 작을 때는 (V)만큼, 합이 (M)과 적어도 같을 때는 (V+1)만큼 차감된 또 다른 영상 데이타를 출력하기 위해 어드레스 생성기를 활성화시키는 계산 수단; 합이 적어도 (M)과 같을 때는 (M) 값과 데이타 레지스터의 합에 대한 차를 저장하고, 합이 (M)보다 작을 때는 데이타 레지스터에 합을 저장하는 계산수단으로 이루어진다.Connected to the adder means and the address generator and the data register, comparing the sum with (M), dividing (N) by (M), and controlling the memory portion when the quotient is (V). Activate the address generator to output another image data subtracted by (V) when the sum is less than (M) and (V + 1) when the sum is at least equal to (M) from the original image data output by the Calculation means for causing; When the sum is at least equal to (M), the difference between the value of (M) and the sum of the data register is stored, and when the sum is less than (M), the calculation means stores the sum in the data register.
이하에서 첨부한 도면을 참조하여 바람직한 실시예를 들어 본 발명을 상세히 설명하고 본 발명의 특징과 잇점을 나타내고자 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and features and advantages of the present invention will be described.
도 1에 도시된 바와 같이, 본 발명에 따른 디지탈 영상을 균일하게 스케일링하는 장치의 바람직한 실시예는 수직 스케일링부와 수평 스케일링부로 구성되어 있다. 수직 스케일링부는 수직 방향으로 디지탈 영상을 스케일링 업하거나 스케일링 다운할 수 있으며, 라인 메모리(3), 라인 버퍼(4), 이원선형 가산기(5), 수직 스케일링 제어기(6)를 포함하고 있다. 수평 스케일링부는 수평 방향으로 디지탈 영상을 스케일링 업하거나 스케일링 다운 할 수 있으며, 도트 레지스트(7), 도트 버퍼(8), 이원선형 가산기(9), 수평 스케일링 제어기(10)를 포함하고 있다.As shown in FIG. 1, a preferred embodiment of the apparatus for uniformly scaling a digital image according to the present invention includes a vertical scaling unit and a horizontal scaling unit. The vertical scaling unit may scale up or scale down the digital image in the vertical direction and includes a line memory 3, a line buffer 4, a binary linear adder 5, and a vertical scaling controller 6. The horizontal scaling unit may scale up or scale down the digital image in the horizontal direction, and includes a dot resist 7, a dot buffer 8, a binary linear adder 9, and a horizontal scaling controller 10.
실제 사용에 있어서, 장치의 바람직한 실시예를 통해 처리되는 디지탈 영상은 먼저 프레임 메모리(2)에 저장된다. 디지탈 영상은 영상 디코더 또는 영상 포착 시스템으로 부터 나온다. 수직 스케일링 제어기(6)는 프레임 메모리(2)를 제어하여 디지탈 영상의 선택된 주사선을 라인 메모리(3)에 공급한다. 또한 수직 스케일링 제어기(6)는 라인 버퍼(4)를 제어하여 라인 메모리(3)에서 출력되는 이전의 주사선을 라인 버퍼(4)에 저장한다. 이원선형 가산기(5)는 라인 메모리(3)와 라인버퍼(4)로 부터 주사선 데이터를 받아 수직 스케일링 제어기(6)로 부터 한쌍의 가중계수 |A, 1-|A 에 따라 이원 보간을 행한다.In actual use, the digital image processed through the preferred embodiment of the apparatus is first stored in the frame memory 2. Digital video comes from a video decoder or video capture system. The vertical scaling controller 6 controls the frame memory 2 to supply the selected scan lines of the digital image to the line memory 3. The vertical scaling controller 6 also controls the line buffer 4 to store the previous scan line output from the line memory 3 in the line buffer 4. The binary linear adder 5 receives the scan line data from the line memory 3 and the line buffer 4 and performs binary interpolation from the vertical scaling controller 6 according to a pair of weighting factors | A and 1- | A.
이원선형 가산기(5)의 출력은 도트레지스터(7)에 입력된다. 수평 스케일링 제어기(10)는 도프버퍼(8)을 제어하여 도트레지스터(7)로부터 이전 픽셀 데이터를 상기 도트버퍼(8)에 저장한다. 이원선형 가산기(9)는 도트레지스터(7) 및 도트버퍼(8)로부터 픽셀데이터를 받고, 수평 스케일링 제어기(10)로 부터 한쌍의 가중계수 |A, 1-|A 에 따라 이원선형 보간을 수행한다.The output of the binary linear adder 5 is input to the do register 7. The horizontal scaling controller 10 controls the dope buffer 8 to store previous pixel data from the do register 7 into the dot buffer 8. The binary linear adder 9 receives pixel data from the dosistor 7 and the dot buffer 8, and performs binary linear interpolation from the horizontal scaling controller 10 according to a pair of weighting factors | A and 1- | A. do.
도 2는 이원선형 가산기(5)의 회로에 대한 개략적인 블럭도이다. 도 2에 도시된 바와 같이 프레임 메모리(2)에 있는 디지탈 영상의 (n)번째 주사선에 해당하는 라인 버퍼(4)에서 출력되는 주사선 데이터는 계수 1-|A로 곱해진다. 반면에 프레임 메모리(2)에 있는 디지탈 영상의 (n+1)번째 주사선에 해당하는 라인 메모리(3)로 부터 출력되는 주사선 데이터는 계수 |A로 곱해진다. 따라서 계수 |A가 0 또는 1의 정수가 아닌 분수일 때 보간된 주사선을 얻기 위해 결과치가 더해진다. 이원선형 가산기(5)의 동작은 이하에서 보다 더 상세히 기술한다.2 is a schematic block diagram of the circuit of the binary linear adder 5. As shown in Fig. 2, the scan line data output from the line buffer 4 corresponding to the (n) th scan line of the digital image in the frame memory 2 is multiplied by the coefficient 1- | A. On the other hand, the scan line data output from the line memory 3 corresponding to the (n + 1) th scan line of the digital image in the frame memory 2 is multiplied by the coefficient | A. Therefore, the result is added to obtain the interpolated scan line when the coefficient | A is a non-integer fraction of 0 or 1. The operation of the binary linear adder 5 is described in more detail below.
이원선형가산기(9)의 구조는 도 2에 도시된 상기 이원선형 가산기(5)의 구조와 유사하다. 그러나, 상기 이원선형가산기(9)에서는 이원선형 가산기(5)로 부터 주사선 데이터의 (n')번째 픽셀 데이터에 해당하는 도트버퍼(8))에서 출력되는 픽셀 데이터는 계수 1-|A로 곱해지고, 반면에 이원선형 가산기(5)로부터의 주사선 데이터의 (n'+1)번째 픽셀 데이터에 해당하는, 도프레지스터(7)로부터 출력되는 픽셀데이터는 계수 |A로 곱해진다. 따라서 도트레지스터(7)는 수직 스케일링부의 라인메모리(3)와 같은 역할을 하고, 반면에 도트버퍼(8)는 수직 스케일링부의 라인버퍼(4)와 같은 역할을 한다.The structure of the binary linear adder 9 is similar to that of the binary linear adder 5 shown in FIG. However, in the binary linear adder 9, the pixel data output from the binary linear adder 5 from the dot buffer 8 corresponding to the (n ') th pixel data of the scan line data) is multiplied by a coefficient 1- | A. On the other hand, the pixel data output from the dopistor 7, which corresponds to the (n '+ 1) th pixel data of the scan line data from the binary linear adder 5, is multiplied by the coefficient | A. Thus, the dosistor 7 serves as the line memory 3 of the vertical scaling unit, while the dot buffer 8 serves as the line buffer 4 of the vertical scaling unit.
도 3에 도시된 바와 같이, 수직 스케일링 제어기(6)는 제1레지스터(30a), 제2레지스터(30b), 제3레지스터(30c)로 이루어진 프로그램 가능한 레지스터 세트(30)를 포함하고 있는데, 상기 제1레지스터(30a)는 프레임 메모리(2)의 디지탈 영상의 (N)개의 원 주사선을 저장하기 위한 것이고, 상기 제2레지스터(30b)는 보간되거나 삭제되는 (|$N)개의 주사선을 저장하기 위한 것이고, 제3레지스터(30c)는 수직 방향으로 디지탈 영상이 스케일링 업으로 수행되는지 또는 스케일링 다운으로 수행되는지를 표시하는 INC/DEC 플래그(38)를 저장하는 레지스터이다. 또한 수직스케일링제어기(6)는 상기 제1,제2,제3 레지스터(30a,30b, 30c)의 내용을 읽는 제1,제2,제3계산회로(31,32,33)를 포함하고 있다. 제1계산 회로(31)는 (|$N)을 (N-1)으로 나누어 발생하는 몫 T를 출력한다. 반면에 제2계산 회로(32)는 (|$N)을 (N-1)으로 나누어 발생하는 나머지 S를 출력한다. 상기 몫 T는 프레임 메모리(2)에 저장된 디지탈 영상의 매 두개의 원 주사선 사이에 삽입되는 보간된 주사선의 최소값에 해당하며, 반면에 나머지 S는 디지탈 영상이 스케일링 업 될 때 프레임 메모리(2)에 저장되어 있는 디지탈 영상의 원 주사선 사이에 균일하게 분포되어 있는 잉여 보간 주사선의 총수에 해당한다. 제3계산 회로(33)는 (N)을 (N-|$N)으로 나눌 때 발생하는 나머지 U를 출력한다. 나머지 U는 디지탈 영상을 스케일링 다운 할 때 프레임 메모리(2)에 저장된 디지탈 영상으로부터 삭제되는 잔존 주사선의 총수에 해당한다.As shown in FIG. 3, the vertical scaling controller 6 includes a programmable register set 30 consisting of a first register 30a, a second register 30b, and a third register 30c. The first register 30a is for storing (N) original scan lines of the digital image of the frame memory 2, and the second register 30b is for storing (| $ N) scan lines that are interpolated or deleted. The third register 30c is a register for storing an INC / DEC flag 38 indicating whether the digital image is performed with scaling up or scaling down in the vertical direction. In addition, the vertical scaling controller 6 includes first, second and third calculation circuits 31, 32 and 33 for reading the contents of the first, second and third registers 30a, 30b and 30c. . The first calculation circuit 31 outputs the quotient T generated by dividing (| $ N) by (N-1). On the other hand, the second calculation circuit 32 outputs the remaining S generated by dividing (| $ N) by (N-1). The quotient T corresponds to the minimum value of the interpolated scan line inserted between every two original scan lines of the digital image stored in the frame memory 2, while the remaining S is stored in the frame memory 2 when the digital image is scaled up. It corresponds to the total number of redundant interpolation scan lines uniformly distributed among the original scan lines of the stored digital image. The third calculating circuit 33 outputs the remaining U generated when dividing (N) by (N- | $ N). The remaining U corresponds to the total number of remaining scan lines that are deleted from the digital image stored in the frame memory 2 when scaling down the digital image.
두개의 입력신호 선택기(34)는 제3계산회로(33)으로 부터 출력되는 나머지 U를 제1입력신호로 받고, 제2계산 회로로 부터 출력되는 나머지 S를 제2입력신호로 받는다. 또한 상기 선택기(34)는 제3레지스터(30c)로 부터 INC/DEC 플래그(38)를 제어입력신호로 받아 들이며, 선택기(34)의 출력신호(42)는 나머지 분산기(35)로 입력된다. 나머지 분산기(35)는 제1계산회로(31)로부터 출력되는 몫 T를 입력으로 받아 들이고 제3레지스터(30c)로부터 출력되는 INC/DEC 플래그(38)를 입력제어 신호로 받아 들여 직렬알파 생성기(36)와 어드레스 생성기(37)로 출력제어 신호(39)를 보낸다. 또한 나머지 분산기(35)는 디지탈 영상의 스케일링 업 동안에 잉여 보간 단계가 수행되는 싯점과 스케일링 다운 동안에 잔존 주사선이 삭제되는 싯점을 결정한다. 직렬알파생성기(36)는 제1계산수단(31)으로부터 몫 T와 제3레지스터(30c)로부터 INC/DEC 플래그(38)를 입력으로 받아 이원선형 가산기(5)를 위해 계수 |A와 1-|A를 생성하고 라인버퍼(4)를 위해 저장 명령 신호를 출력한다.(도 1 참조) 또한 어드레스 생성기(37)는 제1계산수단(31)으로 부터 몫 T와 제3레지스터(30c)로 부터 INC/DEC 플래그(38)을 입력신호로 받아 프레임 메모리(2)로 라인 어드레스 데이터를 공급한다.The two input signal selectors 34 receive the remaining U output from the third calculating circuit 33 as the first input signal, and receive the remaining S output from the second calculating circuit as the second input signal. In addition, the selector 34 receives the INC / DEC flag 38 from the third register 30c as a control input signal, and the output signal 42 of the selector 34 is input to the remaining spreaders 35. The remaining disperser 35 receives the quotient T output from the first calculation circuit 31 as an input and receives the INC / DEC flag 38 output from the third register 30c as an input control signal and receives a serial alpha generator ( 36 and an output control signal 39 to the address generator 37. The remaining disperser 35 also determines the point at which the redundant interpolation step is performed during scaling up of the digital image and the point at which the residual scan line is deleted during scaling down. The serial alpha generator 36 receives the quotient T from the first calculating means 31 and the INC / DEC flag 38 from the third register 30c as inputs for the coefficient | A and 1- for the binary linear adder 5. Generates A and outputs a store command signal for the line buffer 4 (see FIG. 1). The address generator 37 also passes from the first calculation means 31 to the quotient T and the third register 30c. The line address data is supplied to the frame memory 2 from the INC / DEC flag 38 as an input signal.
도 4에 도시된 바와 같이, 나머지 분산기(35)는 (N)과 (|$N)의 차를 출력하는 계산회로(40)와 상기 계산회로(40)의 출력신호를 제1입력신호로 하고 제1레지스터(30a)의 숫자 (N)을 제2입력신호로 하며 제3레지스터(30c)의 INC/DEC 플래그(38)를 제어 입력신호로 하는 두입력신호 선택기(41)를 포함하고 있다. 중간 데이터 레지스터(56)는 선택기(34)의 출력(42)을 받아(도 3 참조), 2입력 가산기(43)의 두개의 입력중 하나의 입력과 연결된 출력을 가지고 있다. 가산기(43)의 다른 하나의 입력은 선택기(34)의 출력(42)을 받는다. 가산기(43)의 출력과 선택기(41)의 출력은 계산회로(44)의 입력으로 사용되며, 상기 계산회로(44)는 전자에서 후자를 빼고 가산기의 출력(43)이 선택기의 출력(41) 보다 크거나 같을 때의 제어 출력에서 인에이블 신호를 생성한다. 두 입력 선택기(45)는 가산기(43)의 출력을 받는 제1입력, 계산회로(44)로 부터 가산기(43)의 출력과 선택기(41)의 출력의 차를 받는 제2입력, 계산회로(44)의 제어출력(39)과 연결된 제어입력, 중간 데이터 레지스터(56)에 연결된 출력을 가지고 있다.As shown in FIG. 4, the remaining disperser 35 uses the calculation circuit 40 for outputting the difference between (N) and (| $ N) and the output signal of the calculation circuit 40 as the first input signal. It includes two input signal selectors 41 using the number N of the first register 30a as a second input signal and the INC / DEC flag 38 of the third register 30c as a control input signal. The intermediate data register 56 receives the output 42 of the selector 34 (see FIG. 3) and has an output connected to one of the two inputs of the two-input adder 43. The other input of the adder 43 receives the output 42 of the selector 34. The output of the adder 43 and the output of the selector 41 are used as inputs to the calculation circuit 44, which calculates the latter from the former and the output 43 of the adder is the output 41 of the selector. Generate an enable signal at the control output when greater than or equal to. The two input selectors 45 have a first input receiving the output of the adder 43, a second input receiving the difference between the output of the adder 43 and the output of the selector 41 from the calculating circuit 44, It has a control input connected to the control output 39 of 44 and an output connected to the intermediate data register 56.
클럭 수정 회로(46)는 원 입력 라인 클럭을 받아, 제어출력(39)에서 의 신호와 제1계산회로(31)에서 출력되는 몫 T 에 따라 원입력라인 클럭을 수정한다. 원입력라인 클럭은 원 영상 데이터가 프린터나 컴퓨터 디스플레이와 같은 출력장치상에 디스플레이를 위해 출력되는 도중에 수직 스케일링 동작이 일어나도록 하기 위해 디스플레이 주사선 클럭이 되기도 한다. 제어출력(39)이 논리상으로 하이(high) 상태에 있을 때 클럭수정회로(46)은 원 입력라인 클럭의 (T+2)배의 길이를 갖는 (T+2)분주 클럭을 출력한다. 제어출력(39)이 논리상으로 로(low) 상태에 있을 때 클럭수정회로(46)은 원 입력라인 클럭의 (T+1)배의 길이를 갖는 (T+1)분주 클럭을 출력한다. 클럭수정회로(46)의 출력과 원 입력라인 클럭은 선택기(47)의 제어입력으로 사용된다. 제3레지스터(30c)로 부터 출력된 INC/DEC 플래그(38)는 선택기(47)의 제어입력으로 제공된다. 중간 데이터 레지스터(56)은 선택기(47)로 부터 클럭 신호 mClock1를 받는 로드(load)단자 LD를 가지고 있다.The clock correction circuit 46 receives the original input line clock, and corrects the original input line clock according to the signal from the control output 39 and the quotient T output from the first calculation circuit 31. The raw input line clock may also be a display scan line clock so that vertical scaling operations occur while the raw image data is output for display on an output device such as a printer or computer display. When the control output 39 is logically in a high state, the clock correction circuit 46 outputs a (T + 2) divided clock having a length (T + 2) times the original input line clock. When the control output 39 is logically in a low state, the clock correction circuit 46 outputs a (T + 1) divided clock having a length (T + 1) times the original input line clock. The output of the clock correction circuit 46 and the original input line clock are used as control inputs of the selector 47. The INC / DEC flag 38 output from the third register 30c is provided to the control input of the selector 47. The intermediate data register 56 has a load terminal LD that receives the clock signal mClock1 from the selector 47.
도 5에 도시된 바와 같이, 알파급수 생성기(36)은 계산회로(44)의 제어출력(39)과 연결되고 원 입력라인 클럭과 제1계산 회로(31)로 부터 몫 T를 받는 계수 생성기(363)를 포함한다. 제어출력(39)가 논리상 하이 상태에 있을 때 계수 생성기(363)는 연속하는 (T+2) 라인 클럭 주기로 각각 연속적인 1, 1/(T+2), 2/(T+2), ... (T+1)/(T+2) 알파 계수를 생성하고, 제어출력(39)이 논리상 로 상태에 있을 때 계수 생성기(363)는 연속하는 (T+1) 라인 클럭 주기로 각각 연속적인 1, 1/(T+1), 2/(T+1), ... (T)/(T+1) 알파 계수를 생성한다. 선택기(364)는 1로 고정된 제1입력, 계수 생성기의 출력을 받는 제2입력, INC/DEC 플래그(38)를 받는 제어 입력을 가진다. 선택기(364)의 출력은 계수 |A 이며, 이는 감산회로(365)의 입력 중 하나로 사용된다. 감산회로(365)의 다른 입력은 1 로 고정되어 있다. 감산회로(365)의 출력중 하나는 계수 1-|A 이며, 다른 출력은 도 1에 도시된 바와 같이 라인 버퍼(4)의 입력으로 사용되는 저장 명령 신호이다. 감산회로(365)는 계수 1-|A 가 영 즉 |A = 1 일 때 저장명령 신호를 생성한다.As shown in FIG. 5, the alpha series generator 36 is connected to the control output 39 of the calculation circuit 44 and receives a quotient T from the original input line clock and the first calculation circuit 31. 363). When control output 39 is logically in a high state, coefficient generator 363 is delimited by 1, 1 / (T + 2), 2 / (T + 2), ... generate the (T + 1) / (T + 2) alpha coefficients, and when the control output 39 is in the logical state, the coefficient generator 363 is each in successive (T + 1) line clock periods. Generate successive 1, 1 / (T + 1), 2 / (T + 1), ... (T) / (T + 1) alpha coefficients. The selector 364 has a first input fixed at 1, a second input receiving the output of the coefficient generator, and a control input receiving the INC / DEC flag 38. The output of the selector 364 is the coefficient | A, which is used as one of the inputs of the subtraction circuit 365. The other input of the subtraction circuit 365 is fixed at one. One of the outputs of the subtraction circuit 365 is coefficient 1- | A, and the other output is a store command signal used as an input of the line buffer 4 as shown in FIG. The subtraction circuit 365 generates a storage command signal when the coefficient 1- | A is zero, that is, | A = 1.
도 6에 도시된 바와 같이, 어드레스 생성기(37)는 (N)을 (N-|$N)으로 나누었을 때 생기는 몫 V를 출력하는 계산회로(371)를 포함하고 있다. 몫 V는 디지탈 영상이 스케일링 다운 될 때 프레임 메모리(2)에 있는 디지탈 영상의 두 선택된 주사선 사이의 오프셋 숫자에 해당한다. 몫 V 와 제어 출력(39)는 가산기(372)의 입력으로 사용된다. 가산기(372)의 출력은 선택기(373)의 입력중 하나로 사용된다. 선택기(373)의 다른 입력은 1 로 고정된다. INC/DEC 플래그(38)은 선택기(373)의 제어 입력으로 사용된다. 선택기(373)는 가산기(374)에 제공되는 오프셋 숫자를 생성한다. 가산기(374)의 출력은 어드레스 레지스터(375)에 연결되어 있다. 어드레스 레지스터(375)의 출력은 라인 어드레스 데이터이며, 아울러 가산기(374)에 입력으로 들어간다. 어드레스 레지스터(375)는 입력신호 시작(start)를 가지고 있으며, 이는 프레임 메모리(2)에 있는 원 주사선 중 첫번째 라인 어드레스를 프리셋reset)시킨다. 어드레스 레지스터 (375)는 또한 그 안에 있는 다음 어드레스를 제어하는 로드단자 LD를 가지고 있다.As shown in Fig. 6, the address generator 37 includes a calculation circuit 371 that outputs a quotient V generated when (N) is divided by (N- | $ N). The quotient V corresponds to the offset number between two selected scan lines of the digital image in the frame memory 2 when the digital image is scaled down. The quotient V and control output 39 are used as inputs to the adder 372. The output of adder 372 is used as one of the inputs of selector 373. The other input of the selector 373 is fixed at one. The INC / DEC flag 38 is used as a control input of the selector 373. The selector 373 generates an offset number provided to the adder 374. The output of adder 374 is coupled to address register 375. The output of the address register 375 is line address data and enters an input to the adder 374. The address register 375 has an input signal start, which presets the first line address of the original scan lines in the frame memory 2. The address register 375 also has a load terminal LD that controls the next address therein.
래치회로(376)은 원입력라인 클럭에 따라 제어출력(39)에서 샘플(sample)하고 유지(hold)한다. 클럭수정회로(377)는 원입력라인 클럭을 수신하여 래치회로(376)의 출력과 제1계산회로(31)의 몫 T에 따라서 원입력라인 클럭을 수정한다. 래치회로(376)의 출력이 논리상 하이 상태에 있을 때, 클럭수정회로(377)는 원입력라인 클럭의 (T+2)배 길이를 갖는 (T+2)분주 클럭을 출력한다. 그리고 래치회로(376)의 출력이 논리상 로 상태에 있을 때, 클럭수정회로(377)는 원입력라인 클럭의 (T+1)배 길이를 갖는 (T+1)분주 클럭을 출력한다. 선택기(378)는 원입력라인 클럭과 클럭수정회로(377)의 출력을 입력으로 받고, INC/DEC 플래그에 의해 제어되어, 어드레스 레지스터(375)의 입력단자 LD 로 사용되는 클럭입력 mClock2 를 출력한다.The latch circuit 376 samples and holds at the control output 39 in accordance with the original input line clock. The clock correction circuit 377 receives the original input line clock and modifies the original input line clock according to the output of the latch circuit 376 and the quotient T of the first calculation circuit 31. When the output of the latch circuit 376 is in a logic high state, the clock correction circuit 377 outputs a (T + 2) division clock having a length (T + 2) times the original input line clock. When the output of the latch circuit 376 is in the logical state, the clock correction circuit 377 outputs a (T + 1) divided clock having a length (T + 1) times the original input line clock. The selector 378 receives the input of the original input line clock and the output of the clock correction circuit 377 as inputs, and is controlled by the INC / DEC flag to output the clock input mClock2 used as the input terminal LD of the address register 375. .
수평 스케일링 제어기(10)의 구조는 도 3 내지 도 6에 도시된 수평 스케일링 제어기(6)의 구조와 실질적으로 유사하다. 상기 두 제어기(6,10) 간에는 작은 차이만이 있다. 예를 들어, 수평 스케일링 제어기(10)에서, 프로그램 가능한 레지스터 세트의 제1레지스터는 프레임 메모리(2)에 있는 디지털 영상의 원 주사선당 픽셀 데이터의 숫자 (N')을 저장하기 위해 사용되고, 제2레지스터는 주사선당 보간되거나 삭제되는 픽셀 데이터의 숫자 (|$N')을 저장하기 위해 사용된다. 제3레지스터는 수평 방향으로 디지털 영상의 스케일링 업이 수행될지 스케일링 다운이 수행될지를 가리키는 INC/DEC 플래그를 저장한다. 제1계산회로는 이원선형가산기(5)에서 나오는 주사선 데이터의 매 픽셀 데이터 사이에 삽입될, 보간된 픽셀 데이터의 최소수에 해당하는 몫 T'를 생성한다. 제2계산회로는 디지털 영상이 스케일 업될 때 이원선형가산기(5)로부터 주사선 데이터의 픽셀 데이터간에 균일하게 분포되는 잉여 보간된 픽셀 데이터의 총수에 해당하는 나머지 S'을 생성한다. 제3계산회로는 디지털영상이 스케일다운될 때 이원선형 가산기(5)에서 나오는 주사선 데이터로부터 삭제되는 잉여 픽셀 데이터의 총수에 해당하는 나머지 U'을 생성한다. 저장명령 신호 대신에, 수평 스케일링 제어기(10)의 알파 급수(series) 생성기는 도트버퍼(8)를 위한 래치명령신호를 생성한다. 상기 어드레스 생성기, 알파 급수 생성기 및 나머지 분산기에 대한 클럭 입력은 원 픽셀 클럭이다. 원 픽셀 클럭은 원 영상 데이터가 프린터나 컴퓨터 디스플레이와 같은 출력장치상에 디스플레이를 위해 출력되는 도중에 수평 스케일링 동작이 일어나도록 하기 위해 디스플레이 도트 클럭이 되기도 한다. 수평 스케일링 제어기(10)의 어드레스 레지스터의 어드레스 출력은 라인메모리(3) 및 라인버퍼(4)를 제어하는데 사용되는 도트 어드레스이다. 따라서, 수평 방향으로 스케일링 업되는 동안, (n)번째와 (n+1)번째 주사선의 모든 픽셀 데이터와, 만일 상기 (n)번째와 (n+1)번째 주사선 사이에 보간된 주사선이 있다면 상기 보간된 주사선의 모든 픽셀 데이터는 이원선형 가산기(5)를 통과한다. 수직 및 수평 양방향으로 스케일링 다운이 이루어질때, 원주사선 중 선택된 주사선의 선택된 픽셀 데이터만이 이원선형 가산기(5)를 통과한다.The structure of the horizontal scaling controller 10 is substantially similar to that of the horizontal scaling controller 6 shown in FIGS. 3 to 6. There is only a small difference between the two controllers 6, 10. For example, in the horizontal scaling controller 10, the first register of the programmable register set is used to store the number N 'of pixel data per original scan line of the digital image in the frame memory 2, and the second register. The register is used to store the number of pixel data (| $ N ') that is interpolated or deleted per scan line. The third register stores an INC / DEC flag indicating whether scaling up or scaling down of the digital image is performed in the horizontal direction. The first calculation circuit generates a quotient T 'corresponding to the minimum number of interpolated pixel data to be inserted between every pixel data of scan line data coming out of the binary linear adder 5. The second calculation circuit generates the remaining S 'corresponding to the total number of redundant interpolated pixel data uniformly distributed among the pixel data of the scan line data from the binary linear adder 5 when the digital image is scaled up. The third calculation circuit generates the remaining U 'corresponding to the total number of redundant pixel data deleted from the scan line data from the binary linear adder 5 when the digital image is scaled down. Instead of the store command signal, the alpha series generator of the horizontal scaling controller 10 generates a latch command signal for the dot buffer 8. The clock inputs for the address generator, alpha series generator, and the remainder spreader are the one pixel clock. The one pixel clock may also be a display dot clock so that horizontal scaling operations occur while the raw image data is output for display on an output device such as a printer or computer display. The address output of the address register of the horizontal scaling controller 10 is a dot address used to control the line memory 3 and the line buffer 4. Thus, while scaling up in the horizontal direction, if there is any pixel data of the (n) th and (n + 1) th scan lines, and if there are interpolated scanlines between the (n) th and (n + 1) th scan lines, All pixel data of the interpolated scan lines pass through the binary linear adder 5. When scaling down in both the vertical and horizontal directions, only the selected pixel data of the selected scanning line of the circumferential line passes through the binary linear adder 5.
따라서, 바람직한 실시예는 수직방향으로 스케일링 업 또는 스케일링 다운, 수평방향으로 스케일링 업 또는 스케일링 다운을 동시에 수행 가능하게 동작한다. 이하에서 상기 바람직한 실시예의 동작을 설명한다.Therefore, the preferred embodiment operates to simultaneously perform scaling up or scaling down in the vertical direction, scaling up or scaling down in the horizontal direction. The operation of the preferred embodiment will be described below.
A. 바람직한 실시예의 수직 스케일링 업 동작을 용이하게 설명하기 위해, 5개의 원 주사선 및 주사선당 5개의 픽셀 데이터를 갖는 원 디지탈 영상이 7개의 원하는 주사선과 주사선당 5개의 픽셀 데이터를 갖는 원하는 디지탈 영상을 얻기 위해 스케일 업되는 하나의 예를 들기로 한다.A. To facilitate the description of the vertical scaling up operation of the preferred embodiment, a raw digital image with five original scan lines and five pixel data per scan line may produce a desired digital image with seven desired scan lines and five pixel data per scan line. Let's take an example of scaling up to get.
도 3에 도시된 바와 같이, 수직 스케일링 제어기(6)의 프로그램 가능한 레지스터 세트(30)는 제1레지스터(30a)에 숫자 '5', 제2레지스터(30b)에 숫자 '2', 제3레지스터(30c)에 논리 '1' 을 저장함으로써 초기에 프로그램된다. 숫자 '5' 는 프레임 메모리(2)에 있는 원디지탈 영상의 원주사선의 숫자 (N)에 해당한다. 숫자 '2'는 보간되는 주사선의 총수 (|$N)에 해당한다. 제3레지스터(30c)의 논리 '1' 은 수직 방향으로 원디지탈 영상의 스케일링 업이 수행됨을 표시한다. 이 때 수평 스케일링 제어기(10)의 프로그램 가능한 레지스터 세트는 원 주사선 각각에 5개의 픽셀 데이터가 있고, 원주사선에 대해서는 보간된 픽셀 데이터는 없으며, 수평 방향으로 원 디지털 영상의 스케일링 업이 수행될 것임을 카리키도록 프로그램된다.As shown in FIG. 3, the programmable register set 30 of the vertical scaling controller 6 has a number '5' for the first register 30a, a number '2' for the second register 30b, and a third register. It is initially programmed by storing logic '1' in 30c. The number '5' corresponds to the number N of the circumferential lines of the one digital image in the frame memory 2. The number '2' corresponds to the total number of interpolated scan lines (| $ N). A logic '1' of the third register 30c indicates that scaling up of the original digital image is performed in the vertical direction. At this time, the programmable register set of the horizontal scaling controller 10 has five pixel data on each original scan line, no interpolated pixel data on the original scan line, and scaling up of the original digital image in the horizontal direction will be carried out. It is programmed to turn on.
제1계산회로(31)는 (|$N)을 (N-1)로 나누어 발생하는 몫 T를 출력한다. (|$N)이 (N-1)보다 작기 때문에 몫 T는 0 이다. 제2계산회로(32)는 (|$N)을 (N-1)로 나누어 발생하는 나머지 S를 출력한다. 상기 예의 경우에 나머지 S는 2 이다. 선택기(34)가 스케일 업 동작 동안에 제2계산회로(32)의 출력을 나머지 분산기(35)에 제공하기 때문에 제3계산회로(33)의 출력은 부적절하다. 수평 스케일링 업 또는 스케일링 다운 동작이 수행되지 않았기 때문에 수평 스케일링 제어기(10)의 제1, 제2 및 제3 계산회로는 0 이다.The first calculation circuit 31 outputs a quotient T generated by dividing (| $ N) by (N-1). The quotient T is zero because (| $ N) is less than (N-1). The second calculation circuit 32 outputs the remaining S generated by dividing (| $ N) by (N-1). In the case of the above example, the remaining S is two. The output of the third calculation circuit 33 is inappropriate because the selector 34 provides the output of the second calculation circuit 32 to the remaining disperser 35 during the scale up operation. The first, second and third calculation circuits of the horizontal scaling controller 10 are zero because no horizontal scaling up or scaling down operation is performed.
도 1 및 도 3 내지 도 7에 도시된 바와 같이, 어드레스 생성기(37)의 어드레스 레지스터(375)는 초기에 프레임 메모리(2)에 저장된 원주사선 중 첫번째 주사선의 라인 어드레스를 세팅하고, 프레임 메모리(2)를 제어하여 시작 라인 클럭동안에 라인메모리(3)에 원 주사선 중 첫번째 주사선을 공급한다. 동시에 나머지 S는 중간데이터 레지스터(56)에 저장되고, 그 때 가산기(43)는 나머지 S와 중간 데이터 레지스터(56)의 내용을 더한다. 이 때 '4'의 값을 갖는 가산기(43)의 출력이 '5'의 값을 갖는 (N)보다 작기 때문에 계산회로(44)의 제어출력(39)은 논리상의 로(low)상태에 있게 된다. 선택기(45)는 가산기(43)의 출력을 중간데이터 레지스터(56)에 공급하고, 중간데이터 레지스터(56)에 공급된 클럭입력 mClock1 은 (T+1)분주 클럭이며 이는 몫 T가 0 이기 때문에 원입력라인 클럭과 같다.As shown in Figs. 1 and 3 to 7, the address register 375 of the address generator 37 sets the line address of the first scan line among the circumferential scan lines initially stored in the frame memory 2, and the frame memory ( 2), the first scan line of the original scan lines is supplied to the line memory 3 during the start line clock. At the same time, the remaining S is stored in the intermediate data register 56, at which time the adder 43 adds the contents of the remaining S and the intermediate data register 56. At this time, since the output of the adder 43 having a value of '4' is smaller than (N) having a value of '5', the control output 39 of the calculation circuit 44 is in a logic low state. do. The selector 45 supplies the output of the adder 43 to the intermediate data register 56, and the clock input mClock1 supplied to the intermediate data register 56 is a (T + 1) division clock because the quotient T is zero. Same as the original input line clock.
제어출력(39)은 논리상으로 로(low)상태에 있기 때문에, 그리고 몫 T가 영이기 때문에, 계수 생성기(363)은 선택기(364)에 숫자 '1'을 공급한다. INC/DEC 플레그(38)은 논리상으로 '1'이기 때문에 선택기(364)는 계수생성기(363)의 출력을 가중계수 |A 로 선택한다. 계수 |A는 1 이기 때문에 계수 1-|A는 0 이고, 라인버퍼(4)를 제어하여 라인 메모리(3)으로 부터 원주사선중 첫번째 주사선을 라인버퍼(4)에 저장하기 위해 저장명령 신호가 발생된다. 상기 단계에서 2원선형 가산기(5)의 출력은 원주사선 중 첫번째 주사선이다.Since the control output 39 is logically in the low state, and the quotient T is zero, the coefficient generator 363 supplies the selector 364 with the number '1'. Since the INC / DEC flag 38 is logically '1', the selector 364 selects the output of the coefficient generator 363 as the weighting factor | A. Since the coefficient | A is 1, the coefficient 1- | A is 0, and the storage command signal is used to control the line buffer 4 to store the first scan line of the circular scan line from the line memory 3 to the line buffer 4 Is generated. In this step, the output of the binary linear adder 5 is the first scan line of the circular scan line.
선택기(373)는 가산기(374)에 오프셋 숫자를 공급하며 상기 옵셋 숫자는 1 이다. 따라서 가산기(374)는 다음 클럭 펄스 mClock2가 도착할 때 어드레스 레지스터(375)의 출력을 한 단위 증가시키고 나서, 프레임 메모리(2)를 제어하여 라인 메모리(3)에 원주사선 중 두번째 주사선을 공급한다.The selector 373 supplies an offset number to the adder 374 and the offset number is one. Therefore, the adder 374 increases the output of the address register 375 by one unit when the next clock pulse mClock2 arrives, and then controls the frame memory 2 to supply the second scan line of the circular scan line to the line memory 3.
다음 클럭 펄스 mClock1 이 도착하면, 중간데이터 레지스터(56)은 숫자 '4' 인 가산기(43)의 이전 출력을 저장한다. 이 때 현재 '6'의 값을 갖는 가산기(43)의 출력은 '5'의 값을 갖는 숫자 (N)보다 크기 때문에 계산회로(44)의 제어출력(39)이 논리상의 하이 상태로 있게된다.When the next clock pulse mClock1 arrives, the intermediate data register 56 stores the previous output of the adder 43 of the number '4'. At this time, since the output of the adder 43 having a value of '6' is larger than the number N having a value of '5', the control output 39 of the calculation circuit 44 is in a logic high state. .
선택기(45)는 가산기(43)와 선택기(41)의 출력의 차를 중간데이터 레지스터(56)에 공급하고, 중간데이터 레지스터(56)에 대한 클럭입력 mClock1은 이제 원입력라인 클럭의 2배의 길이를 갖는 (T+2)분주 클럭이 된다.The selector 45 supplies the difference between the output of the adder 43 and the selector 41 to the intermediate data register 56, and the clock input mClock1 to the intermediate data register 56 is now twice the original input line clock. It becomes a (T + 2) division clock having a length.
제어출력(39)이 논리상 하이(high) 상태에 있으므로, 계수생성기(363)는 하나의 mClock1 펄스 내에서 연속적으로 두개의 출력 1과 1/2, 즉 두개의 연속적인 원 입력라인 클럭을 생성한다. 첫번째 원 입력라인 클럭 내에서, 이원선형 가산기(5)는 원주사선 중 두번째 주사선을 출력하고, 동시에 계수 |A가 1 이기 때문에 후자는 라인버퍼(4)에 저장된다. 두번째 원 입력라인 클럭 내에서, 어드레스 레지스터(375)의 내용은 다음 mClock2 펄스를 받아 한 단위 증가되어, 프레임 메모리(2)를 제어하여 라인메모리(3)에 원주사선 중 세번째 것을 공급한다. 이 때 계수 생성기(363)의 출력은 1/2이며, 계수 |A가 1/2 이므로 계수 1-|A는 1/2로 된다. 그리고 아무런 저장명령 신호도 발생되지 않는다. 따라서 원주사선 중 두번째 것은 라인버퍼(4)에 그대로 남아있게 된다. 이 단계에서 이원가산기(5)의 출력은 원주사선의 두번째와 세번째 것의 이원 보간이 된다.Since control output 39 is logically high, coefficient generator 363 generates two outputs 1 and 1/2 in succession within one mClock1 pulse, i.e., two consecutive original input line clocks. do. Within the first circle input line clock, the binary linear adder 5 outputs the second scan line of the circular scan lines, and at the same time the latter is stored in the line buffer 4 because the coefficient | A is one. Within the second one input line clock, the contents of the address register 375 are incremented by one by receiving the next mClock2 pulse, controlling the frame memory 2 to supply the third of the circle scan lines to the line memory 3. At this time, the output of the coefficient generator 363 is 1/2, and since the coefficient | A is 1/2, the coefficient 1- | A is 1/2. And no save command signal is generated. Thus, the second of the circumferential lines remains in the line buffer 4. At this stage, the output of the binary adder 5 is the binary interpolation of the second and third ones of the circular scan line.
중간데이터 레지스터(56)의 내용은 다음 mClock1 펄스가 도달할 때 가산기(43)의 출력과 숫자 (N)의 차인 '1'로 갱신된다. 가산기(43)의 출력은 숫자 (N)보다 작은 3 이기 때문에, 제어출력(39)는 논리상의 로 상태에 있게 된다. 선택기(45)는 가산기(43)의 출력을 중간 데이터 레지스터(56)에 공급하고, 중간 데이터 레제스터(56)에 공급된 클럭입력 mClock1은 (T+1)분주 클럭이며, 직렬 알파 생성기(36)로 부터 출력되는 계수 |A 는 1 이다. 이원가산기(5)의 출력은 원주사선의 세번째 것이다. 그리고 계수 |A 는 1 이기 때문에 원주사선의 세번째 것이 라인버퍼(4)에 저장된다.The contents of the intermediate data register 56 are updated to '1' which is the difference between the output of the adder 43 and the number N when the next mClock1 pulse arrives. Since the output of the adder 43 is 3 smaller than the number N, the control output 39 is in a logical low state. The selector 45 supplies the output of the adder 43 to the intermediate data register 56, the clock input mClock1 supplied to the intermediate data register 56 is a (T + 1) division clock, and the serial alpha generator 36 The coefficient | A outputted from) is 1. The output of the binary adder 5 is the third of the circular scan line. And since the coefficient | A is 1, the third one of the circular scanning lines is stored in the line buffer 4.
수직 스케일링부의 이어지는 동작은 원주사선의 다섯번째 것이 이원선형 가산기(5)에서 출력될 때 까지는 이전 것과 유사하다.The subsequent operation of the vertical scaling portion is similar to the previous one until the fifth of the circumferential line is output from the binary linear adder 5.
도 7은 예를 들어 N=5, |$N=2 일 때 바람직한 실시예의 스케일링 업 동작을 설명하는 타이밍도이다.Fig. 7 is a timing diagram illustrating the scaling up operation of the preferred embodiment when, for example, N = 5 and | $ N = 2.
(|$N)을 (N-1)로 나누어 나머지를 (S)라 하고, (s)가 1 부터 (S) 까지의 범위에서 변할 때 (n)이 (n+1)*(S) 1 (s)*(N)을 만족하는 최소 수라 하면, 수직 스케일링 제어기(6)는 이원선형 가산기(5)를 제어하여, 라인버퍼(4)에 저장되어 있는 원 주사선의 (n)번째 것과 라인 메모리(3)에 저장되어 있는 원 주사선의 (n+1)번째 것의 이원선형 보간을 수행하여, (n)번째와 (n+1)번째 원 영상 데이터 사이에 삽입된 잉여 보간 주사선을 생성한다.Dividing (| $ N) by (N-1), the remainder is called (S), and (n) is (n + 1) * (S) 1 when (s) varies from 1 to (S) If the minimum number satisfies (s) * (N), the vertical scaling controller 6 controls the binary linear adder 5, which is the (n) th and the line memory of the original scanning line stored in the line buffer 4; The binary interpolation of the (n + 1) th of the original scan lines stored in (3) is performed to generate a redundant interpolation scan line inserted between the (n) th and (n + 1) th original image data.
도 1을 다시 참조하면, 수평 스케일링 동작이 수행되지 않았으므로, 수평 스케일링 제어기(10)는 라인메모리(3) 및 라인버퍼(4)를 제어하여 픽셀버퍼(4)에 저장된 픽셀 데이터를 순차적으로 이원선형가산기(5)에 제공한다. 이원 선형 가산기(5)로부터의 원 픽셀 데이터 및 보간된 픽셀 데이터는 이원 선형 가산기(9)로 도트레지스터(7)로 전달되고, 이는 다시 차례로 이원선형 가산기(9)로 전달된다. 동시에, 계수 |A는 항상 1과 같고, 도트버퍼(8)의 출력은 이원선형 가산기(9)에 의해 무시된다. 이원선형가산기(9)의 출력은 이원선형가산기(5)의 출력과 같으며, 출력장치(미도시)에 직접 제공될 수도 있다.Referring back to FIG. 1, since the horizontal scaling operation is not performed, the horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to sequentially process the pixel data stored in the pixel buffer 4 in the binary line. It is provided to the mold adder 5. The original pixel data and the interpolated pixel data from the binary linear adder 5 are passed to the doresistor 7 to the binary linear adder 9, which in turn is passed to the binary linear adder 9. At the same time, the coefficient | A is always equal to 1, and the output of the dot buffer 8 is ignored by the binary linear adder 9. The output of the binary linear adder 9 is the same as the output of the binary linear adder 5, and may be provided directly to an output device (not shown).
상기 예에서, (|$N)을 (N-1)로 나눌 때 발생하는 몫 (T) 는 0 이다. 만일 몫 T 가 0 이 아니면 즉 (|$N) 이 (N-1)보다 크거나 같을 때, 수직 스케일링 제어기(6)는 이원선형 가산기(5)를 제어하여, 원주사선 중 (n)번째와 (n+1)번째 주사선 사이에 삽입된 부가적인 T 개의 연속적인 보간된 주사선을 생성하기 위해 원주사선의 (n)번째와 (n+1)번째의 것을 이원보간을 수행한다. 도 8은 N=5 이고 |$N=6 일 때 바람직한 실시예에 의해 수행된 샘플 스케일링 업 동작의 타이밍도를 나타내고 있다. 상기 예에서, 몫 T는 1 이고, 나머지 S는 2 이다. 분명히, 원주사선중 (n) 번째와 (n+1)번째 것의 매 간격 사이에 삽입된 부가적인 보간된 주사선이 있다.In the above example, the quotient (T) that occurs when dividing (| $ N) by (N-1) is zero. If the quotient T is not zero, i.e. (| $ N) is greater than or equal to (N-1), the vertical scaling controller 6 controls the binary linear adder 5 to Binary interpolation is performed on the (n) th and (n + 1) th of the circumferential line to generate additional T consecutive interpolated scanlines inserted between the (n + 1) th scan lines. 8 shows a timing diagram of a sample scaling up operation performed by the preferred embodiment when N = 5 and | $ N = 6. In this example, the quotient T is 1 and the remainder S is 2. Clearly, there is an additional interpolated scanline inserted between every interval of the (n) th and (n + 1) th of the circumferential line.
B. 다음의 예에서, 5개의 원 주사선과 상기 주사선당 5개의 픽셀 데이터를 갖는 원 디지털 영상은 3개의 원하는 주사선과 상기 주사선당 5개의 픽셀 데이터를 갖는 원하는 디지털 영상을 얻기위해 스케일 다운된다.B. In the following example, a raw digital image with five original scan lines and five pixel data per scan line is scaled down to obtain a desired digital image with three desired scan lines and five pixel data per scan line.
다시 도 3를 참조하면, 프로그램 가능한 레시스터 세트(30)는 제1레지스터(30a)에 숫자 '5', 제2레지스터(30b)에 숫자 '2', 제3레지스터(30c)에 논리 '0' 을 저장함으로써 초기에 프로그램된다. 숫자 '5' 는 프레임 메모리(2)에 있는 원디지탈 영상의 원주사선의 숫자 (N)에 해당한다. 숫자 '2'는 삭제될 주사선의 총수 (|$N)에 해당한다. 제3레지스터(30c)의 논리 '0' 은 원디지탈 영상의 스케일링 다운이 수행됨을 표시한다. 이 때 수평 스케일링 제어기(10)의 프로그램 가능한 레지스터 세트는 원 주사선 각각에는 5개의 픽셀 데이터가 있고, 원 주사선 각각에 대해을 위한 보간된 픽셀 데이터는 없어야 하며, 수평방향으로 원디지털 영상의 스케일링 업이 수행어야 함을 가리키도록 프로그램된다.Referring again to FIG. 3, the programmable register set 30 has a number '5' for the first register 30a, a number '2' for the second register 30b, and a logic '0' for the third register 30c. It is programmed initially by storing '. The number '5' corresponds to the number N of the circumferential lines of the one digital image in the frame memory 2. The number '2' corresponds to the total number of scan lines (| $ N) to be deleted. Logic '0' of the third register 30c indicates that scaling down of the original digital image is performed. At this time, the programmable register set of the horizontal scaling controller 10 has five pixel data in each of the original scan lines, no interpolated pixel data for each of the original scan lines, and scaling up of the original digital image in the horizontal direction is performed. It is programmed to indicate that it should.
제1,제2계산회로(31,32)의 출력은 스케일 다운 동작일 동안에는 부적절하다. 제3계산회로(33)는 (N)을 (N-|$N)으로 나눌 때 발생하는 나머지 U를 출력하고, 여기서 (N-|$N)은 보유되어 있는 원주사선의 수이다. 상기 예에서, 나머지 U는 2 이다. 선택기(34)는 제3계산회로(33)의 출력을 나머지 분산기(35)에 공급한다.The outputs of the first and second calculation circuits 31 and 32 are inappropriate during the scale down operation. The third calculation circuit 33 outputs the remaining U generated when dividing (N) by (N- | $ N), where (N- | $ N) is the number of retained circular lines. In the above example, the remaining U is two. The selector 34 supplies the output of the third calculating circuit 33 to the remaining dispersers 35.
도 1 및 도 3 내지 도 6, 그리고 도 9를 참고로 하면, 어드레스 생성기(37)의 어드레스 레지스터(375)는 초기에 프레임 메모리(2)에 저장되어 있는 원주사선의 첫번째 것의 라인 어드레스를 세팅하고, 프레임 메모리(2)를 제어하여 시작 라인 클럭 동안에 원주사선 중 첫번째 것을 라인 메모리(3)에 공급한다. 동시에 나머지 U는 중간데이터 레지스터(56)에 저장되어 있고, 그 때 가산기(43)는 나머지 U와 중간 데이터 레지스터(56)의 내용을 더한다. 계산회로(44)는 가산기(43)의 출력에서 선택기의 (N-|$N)을 뺀다. 이 때 4의 값을 가지고 있는 가산기(43)의 출력은 3의 값을 가지고 있는 (N-|$N) 보다 크고, 계산회로(44)의 제어출력(39)은 논리상의 하이 상태에 있다. 선택기(45)은 중간 데이터 레지스터(56)에 가산기(43)의 출력과 선택기(41)의 출력의 차를 공급한다. 원라인 클럭은 선택기(47)을 거쳐 중간 데이터 레지스터(56)에 공급된다.1, 3-6, and 9, the address register 375 of the address generator 37 sets the line address of the first one of the circumferential lines stored in the frame memory 2 initially. The frame memory 2 is controlled to supply the first of the circumferential lines to the line memory 3 during the start line clock. At the same time, the remaining U is stored in the intermediate data register 56, at which time the adder 43 adds the contents of the remaining U and the intermediate data register 56. The calculation circuit 44 subtracts (N- | $ N) of the selector from the output of the adder 43. At this time, the output of the adder 43 having a value of 4 is larger than (N- | $ N) having a value of 3, and the control output 39 of the calculation circuit 44 is in a logic high state. The selector 45 supplies the intermediate data register 56 with the difference between the output of the adder 43 and the output of the selector 41. The one-line clock is supplied to the intermediate data register 56 via the selector 47.
도 3과 도 5를 참조하면, 논리 '0' 은 제3레지스터(30c)에 저장되어 있기 때문에 선택기(364)는 1 에서 계수 |A를 유지하고 있다. 따라서 계수 1-|A는 0 가 되고, 저장명령 신호는 라인버퍼(4)를 활성화하여 계속적으로 라인 메모리(3)의 원주사선을 라인버퍼(4)에 저장하기 위해 항상 발생된다. 게다가 이원가산기(5)의 출력은 항상 라인메모리(3)의 출력이 된다.3 and 5, the selector 364 maintains the coefficient | A at 1 since the logic '0' is stored in the third register 30c. Therefore, the coefficient 1- | A becomes 0, and a storage command signal is always generated to activate the line buffer 4 and continuously store the circumferential lines of the line memory 3 in the line buffer 4. In addition, the output of the binary adder 5 always becomes the output of the line memory 3.
도 6을 참조하면, 계산회로(371)은 (N)을 (N-|$N)으로 나누어 발생하는 몫 V 를 출력한다. 상기 예에서, 몫 V는 1 이다. 가산기(372)는 몫 V 와 현재는 하이 상태인 제어출력(39)의 논리 상태의 합을 발생한다. 선택기(373)는 2 의 값을 가진 가산기(372)의 출력을 선택하여 가산기(374)에 같은 값을 공급한다. 따라서 다음 mClock2 펄스가 도달될 때, 어드레스 레지스터(375)의 출력은 두 단위 증가되고, 그것에 의해 프레임 메모리(2)를 제어하여 원주사선 중 세번째 것을 라인 메모리(3)에 공급한다.Referring to Fig. 6, the calculation circuit 371 outputs the quotient V generated by dividing (N) by (N- | $ N). In this example, the quotient V is one. The adder 372 generates the sum of the quotient V and the logic state of the control output 39 which is currently high. The selector 373 selects the output of the adder 372 having a value of 2 to supply the same value to the adder 374. Therefore, when the next mClock2 pulse is reached, the output of the address register 375 is increased by two units, thereby controlling the frame memory 2 to supply the third of the circumferential lines to the line memory 3.
다시 도 4를 참조하면, 다음 라인 클럭펄스가 도달할 때, 중간데이터 레지스터(56)는 계산회로(44)에 의해 계산된 이전의 차(difference)인 숫자 '1'을 저장한다. 이 때 값이 3인 가산기(43)의 출력은 선택기(41)의 출력과 같다. 계산회로(44)의 제어출력(39)은 논리상의 하이 상태에 있고, 선택기(45)는 가산기(43)의 출력과 선택기(41)의 출력의 차를 중간데이터 레지스터(56)에 공급한다.Referring again to FIG. 4, when the next line clock pulse arrives, the intermediate data register 56 stores the number '1', which is the previous difference calculated by the computation circuit 44. At this time, the output of the adder 43 having the value 3 is the same as the output of the selector 41. The control output 39 of the calculation circuit 44 is in a logical high state, and the selector 45 supplies the intermediate data register 56 with the difference between the output of the adder 43 and the output of the selector 41.
다시 도6을 참조하면, 가산기(372)는 몫 V 와 제어출력(39)의 현재 논리상태의 합을 한번 더 생성한다. 값이 2인 가산기(372)의 출력은 선택기(373)을 거쳐 가산기(374)에 공급된다. 따라서 다음 mClock2 펄스가 도달할 때 어드레스 레지스터(375)의 출력은 다시 두 단위 증가되고, 그것에 의해 프레임 메모리(2)를 제어하여 원주사선 중 다섯번째 것을 라인 메모리(3)에 공급한다. 도 9는 상기 예에서 N=5이고 |$N=2 일 때 바람직한 실시예의 수직 스케일링 다운 동작을 설명하는 타이밍도이다. 상기 예에 대한 수평 스케일링부는 전술한 바와 유사하며, 여기서는 설명을 반복하지 않기로 한다.Referring back to FIG. 6, the adder 372 generates the sum of the quotient V and the current logical state of the control output 39 once more. The output of adder 372 having a value of 2 is supplied to adder 374 via selector 373. Therefore, when the next mClock2 pulse arrives, the output of the address register 375 is again increased by two units, thereby controlling the frame memory 2 to supply the fifth of the circumferential lines to the line memory 3. Fig. 9 is a timing diagram illustrating the vertical scaling down operation of the preferred embodiment when N = 5 and | $ N = 2 in the above example. The horizontal scaling unit for this example is similar to that described above, and the description thereof will not be repeated herein.
전술한 것으로 부터, 수직 스케일링 제어기(6)의 어드레스 생성기(37)는 프레임 메모리(2)를 제어하여 원주사선중 선택된 것만 출력한다는 것을 보여준다. 프레임 메모리(2)에 의해 출력되지 않은 원주사선은 사실상 무시된다. 그리고 프레임 메모리(2)에 의해 출력되는 원주사선은 나머지 분산기(35)의 가산기(43)의 출력이 차 (N-|$N) 보다 작을 때는 숫자 V 만큼, 가산기(43)의 출력이 차 (N-|$N)와 적어도 같을 때는 숫자 (V+1) 만큼 프레임 메모리(2)에 의해 출력된 바로 직전의 원주사선으로 부터 오프셋됨을 유의해야 한다.From the foregoing, it is shown that the address generator 37 of the vertical scaling controller 6 controls the frame memory 2 to output only selected ones of the circumferential lines. Circular scanning lines not output by the frame memory 2 are virtually ignored. The circumferential line output by the frame memory 2 is equal to the number V when the output of the adder 43 of the remaining disperser 35 is smaller than the difference N- | $ N, and the output of the adder 43 is different ( It should be noted that when at least equal to N- | $ N), the number (V + 1) is offset from the immediately preceding circumferential line output by the frame memory 2.
5개의 원 주사선과 주사선당 5개의 픽셀 데이터를 갖는 원 디지털 영상은 5개의 원하는 주사선과 주사선당 7개의 픽셀 데이터를 갖는 원하는 디지털 영상을 제공하도록 스케일 업되는 바람직한 실시예를 들어, 상기 실시예의 수평 스케일링 업 동작을 설명하기로 한다.A raw digital image having five original scan lines and five pixel data per scan line is scaled up to provide a desired digital image with five desired scan lines and seven pixel data per scan line, for example, the horizontal scaling of the above embodiment. The up operation will be described.
수직 스케일링 제어기(6)의 프로그램 가능한 레지스터 세트(30)는 초기에 프레임 메모리(2)에 5개의 원 주사선이 있고, 어떤 주사선도 보간되지 않아야 하며, 수직 방향으로 원 디지털 영상의 스케일링 업이 수행되지 않아야 함을 가리키도록 프로그램된다. 이 때 수평 스케일링 제어기(10)의 상기 프로그램 가능한 레지스터 세트는 제1레지스터에 숫자 5를, 제2레지스터에 숫자 2를, 그리고 제3레지스터에 로직 1 을 저장함으로써 프로그램된다. 상기 숫자 5는 프레임 메모리(2)에 있는 원 주사선 각각의 픽셀 데이터 개수 (N')에 해당한다. 상기 숫자 2는 주사선당 보간되어야 할 픽셀 데이터의 총수 (|$N')에 해당한다. 상기 제3레지스터에 저장된 로직 1은 수평방향으로 원디지털 영상의 스케일링 업이 수행되어야 함을 가리킨다.The programmable register set 30 of the vertical scaling controller 6 initially has five circular scan lines in the frame memory 2, no scan lines should be interpolated, and scaling up of the original digital image in the vertical direction is not performed. It is programmed to indicate that it should not be. The programmable register set of horizontal scaling controller 10 is then programmed by storing the number 5 in the first register, the number 2 in the second register, and the logic 1 in the third register. The number 5 corresponds to the number N 'of pixel data of each of the original scan lines in the frame memory 2. The number 2 corresponds to the total number (| $ N ') of pixel data to be interpolated per scan line. Logic 1 stored in the third register indicates that scaling up of the original digital image should be performed in the horizontal direction.
수직 스케일링 제어기(6)의 제1,제2 및 제3계산수단(31,32,33)의 출력은 어떠한 수직 스케일링 업 이나 스케일링 다운 동작이 수행되지 않기 때문에 0 이다. 수평 스케일링 제어기(10)의 제1계산회로는 (|$N')을 (N'-1)으로 나누어 발생하는 몫 T'을 출력한다. (|$N')는 (N'-1)보다 작으므로, 몫 T'은 0 이다. 수평 스케일링 제어기(10)의 제2계산회로는 (|$N')을 (N'-1)으로 나누어 발생하는 나머지 S'을 출력한다. 이 예에서, 나머지 S'은 2와 같다. 수평 스케일링 제어기(10)의 제3계산회로의 출력은 제2계산회로의 출력이 수평 스케일 업 동작동안에 나머지 분산기에 제공되기 때문에 부적절하다.The outputs of the first, second and third calculating means 31, 32, 33 of the vertical scaling controller 6 are zero since no vertical scaling up or scaling down operation is performed. The first calculation circuit of the horizontal scaling controller 10 outputs the quotient T 'generated by dividing (| $ N') by (N'-1). Since (| $ N ') is less than (N'-1), the quotient T' is zero. The second calculation circuit of the horizontal scaling controller 10 outputs the remaining S 'generated by dividing (| $ N') by (N'-1). In this example, the remaining S 'is equal to two. The output of the third calculating circuit of the horizontal scaling controller 10 is inappropriate because the output of the second calculating circuit is provided to the remaining disperser during the horizontal scale up operation.
수직 스케일링 동작이 수행되어야 하므로, 수직 스케일링 제어기(6)는 프레임 메모리(2)를 제어하여 라인메모리(3)에 순차적으로 원 주사선을 제공한다. 수평 스케일링 제어기(10)는 라인메모리(3) 및 라인버퍼(4)를 제어하여 상기 라인메모리(3) 및 라인버퍼(4)에 저장된 픽셀데이터를 순차적으로 이원선형 가산기(5)에 제공한다. 이 때, 수직 스케일링 제어기(6)로부터의 계수 |A는 항상 1과 같으며, 라인버퍼(4)의 출력은 이원선형 가산기(5)에 의해 무시된다. 이원선형 가산기(5)의 출력은 라인메모리(3)의 출력과 같다.Since the vertical scaling operation should be performed, the vertical scaling controller 6 controls the frame memory 2 to sequentially provide the original scan line to the line memory 3. The horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to sequentially provide the pixel data stored in the line memory 3 and the line buffer 4 to the binary linear adder 5. At this time, the coefficient | A from the vertical scaling controller 6 is always equal to 1, and the output of the line buffer 4 is ignored by the binary linear adder 5. The output of the binary linear adder 5 is the same as the output of the line memory 3.
상술한 바와 같이, 수평 스케일링부의 스케일링 업 동작은 실질적으로 수직스케일링부의 동작과 유사하다. 그러나, 수직스케일링 제어기(6)와는 달리, 수평 스케일링 제어기(10)는 이원선형 가산기(9)를 제어하여 도트버퍼(8)에 저장되어 있는 (n')번째 원픽셀데이터와 도트레지스터(7)에 저장되어 있는 (n'+1)번째 원픽셀 데이터의 이원선형 보간을 수행하므로써, (|$N')을 (N'-1)로 나누어 나머지를 (S')라 하고 (s')가 1 부터 (S') 까지의 범위에서 변할 때 (n')이 (n'+1)*(S') 1 (s')*(N')을 만족하는 최소수라 할 때, (n')번째와 (n'+1)번째 원 픽셀 데이터 사이에 삽입된 잉여 보간 픽셀 데이터를 생성한다. 따라서, (N'), (|$N') 및 (S')이 각각 5, 2 및 2일 때, 잉여 보간된 픽셀 데이터는 주사선의 제2원픽셀 데이터와 제3원픽셀 데이터 사이 및 제4원픽셀데이터와 제5원픽셀데이터 사이에 삽입된다.As described above, the scaling up operation of the horizontal scaling unit is substantially similar to that of the vertical scaling unit. However, unlike the vertical scaling controller 6, the horizontal scaling controller 10 controls the binary linear adder 9 to store the (n ′) th pixel data and the dosistor 7 stored in the dot buffer 8. By performing binary linear interpolation of the (n '+ 1) th pixel data stored in, divide (| $ N') by (N'-1) and call the rest (S ') (N ') is the smallest number that satisfies (n' + 1) * (S ') 1 (s') * (N ') when varying from 1 to (S'). Generates redundant interpolation pixel data inserted between the nth and (n '+ 1) th original pixel data. Therefore, when (N '), (| $ N'), and (S ') are 5, 2, and 2, respectively, the interpolated pixel data is divided between the second one-pixel data and the third one-pixel data of the scan line. It is inserted between the four-one pixel data and the fifth one-pixel data.
수평 스케일링 제어기(10)는 초기에 라인메모리(3)에 저장되어 있는 주사선 데이터의 제1픽셀데이터의 도트 어드레스를 세트하고, 시작 픽셀 클럭(starting pixel clock) 동안에 도트 레지스터(7)에 의해 수신되도록 라인메모리(3)를 제어하여 제1픽셀 데이터를 이원선형 가산기(5)에 제공한다. 수평 스케일링 제어기(10)로부터의 계수 |A는 1과 같으며, 도트버퍼(8)를 제어하여, 도트레지스터(7)로부터 제1원픽셀 데이터를 도트버퍼(8)에 저장하기 위하여, 래치명령 신호가 생성된다. 이 단계(stage)에서 이원선형 가산기(9)의 출력은 제1원픽셀 데이터이며, 출력장치(미도시)에 직접 제공되기도 한다.이 때, 수평 스케일링 제어기(10)는 라인메모리(3)를 제어하여 도트 레지스터(7)로의 수신을 위해 제2원픽셀데이터를 이원선형 가산기(5)에 제공한다. 수평스케일링 제어기(10)는 두 개의 연속적인 원 픽세 클럭내에서 연속적으로 두 개의 |A 계수, 1과 1/2을 생성한다. 제1원픽셀 클럭내에서, 이원선형 가산기(9)는 두 번째 원픽셀 데이터를 출력하고, 동시에 후자는 계수 |A가 1이므로 도트 버퍼(8)에 저장된다. 제2픽셀 원픽셀 클럭 내에서, 라인메모리(3)는 세 번째 원픽셀 데이터를 도트레지스터(7)로의 수신을 위해 이원선형 가산기(5)에 제공한다. 계수 |A는 이제 1/2이 되며, 두 번째 원픽셀 데이터는 도트버퍼(8)에 남아있다. 이 단계(stage)에서 이원선형 가산기(9)의 출력은 두 번째와 세 번째 원 픽셀 데이터의 이원선형보간이다.The horizontal scaling controller 10 initially sets the dot address of the first pixel data of the scan line data stored in the line memory 3 and is received by the dot register 7 during the starting pixel clock. The line memory 3 is controlled to provide the first pixel data to the binary linear adder 5. The coefficient | A from the horizontal scaling controller 10 is equal to 1, and the latch command is used to control the dot buffer 8 to store the first one-pixel data from the dot register 7 in the dot buffer 8. The signal is generated. In this stage, the output of the binary linear adder 9 is the first one pixel data, which may be directly provided to an output device (not shown). At this time, the horizontal scaling controller 10 Control is provided to the binary linear adder 5 for the second one pixel data for reception into the dot register 7. Horizontal scaling controller 10 generates two | A coefficients, 1 and 1/2, in succession within two consecutive one-pixel clocks. Within the first one pixel clock, the binary linear adder 9 outputs the second one pixel data, and at the same time the latter is stored in the dot buffer 8 since the coefficient | A is one. Within the second pixel one pixel clock, the line memory 3 provides the third one pixel data to the binary linear adder 5 for reception into the do register 7. The coefficient | A is now 1/2, and the second one pixel data remains in the dot buffer 8. In this stage, the output of the binary linear adder 9 is binary linear interpolation of the second and third one pixel data.
다음 원픽셀 클럭 동안에는, 수평 스케일링 제어기(10)로부터의 계수 |A는 다시 1로 되고, 이원선형 가산기(9)의 출력은 도트버퍼(8)에 동시에 저장되는 세 번째 원픽셀 데이터이다.During the next one pixel clock, the coefficient | A from the horizontal scaling controller 10 again becomes 1, and the output of the binary linear adder 9 is the third one pixel data stored simultaneously in the dot buffer 8.
수평스케일링부의 이어지는 동작은 한 주사선의 다섯 번째 원픽셀 데이터가 이원선형 가산기(9)에 의해 출력되어질 때 까지 전술한 바와 유사하다.The subsequent operation of the horizontal scaling portion is similar to that described above until the fifth one-pixel data of one scan line is output by the binary linear adder 9.
도 10은 상기 바람직한 실시예, 즉 N'=5이고 |$N'=2일 때의 수평 스케일링 업 동작을 설명하는 타이밍도이다.Fig. 10 is a timing diagram illustrating the horizontal scaling up operation when the above preferred embodiment, i.e., N '= 5 and | $ N' = 2.
이 예에서, (|$N)을 (N'-1)으로 나누어서 발생하는 몫 (T')은 0이다. 만일 몫 T'이 0이 아니라면, 즉 (|$N')이 (N'-1)보다 같거나 크면, 수평 스케일링 제어기(10)는 (n')번째와 (n'+1)번째 원픽셀데이터 사이에 삽입되는 연속하는 보간된 픽셀 데이터의 부가적인 수 T'를 생성하기 위해 이원선형 가산기(9)를 제어하여 한 주사선의 (n')번째와 (n'+1)번째 원픽셀 데이터의 이원선형 보간을 수행한다.In this example, the quotient (T ') resulting from dividing (| $ N) by (N'-1) is zero. If the quotient T 'is not zero, i.e. (| $ N') is greater than or equal to (N'-1), then the horizontal scaling controller 10 has the (n ') th and (n' + 1) th one pixels. The binary linear adder 9 is controlled to generate an additional number T 'of consecutive interpolated pixel data interleaved between the data, so that the (n') and (n '+ 1) Perform binary linear interpolation.
D. 다음의 예에서, 5개의 원주사선과 주사선당 5개의 픽셀 데이터를 갖는 원디지털 영상은 5개의 원하는 주사선과 주사선당 3개의 픽셀 데이터를 갖는 원하는 디지털 영상을 얻기 위하여 스케일 다운된다.D. In the following example, the original digital image with five circular scan lines and five pixel data per scan line is scaled down to obtain a desired digital image with five desired scan lines and three pixel data per scan line.
수직 스케일링 제어기(6)의 프로그램 가능한 레지스터 세트(30)는 초기에 프레임 메모리(2)에 5개의 원 주사선이 있고, 어떤 주사선도 보간되지 않아야 하며, 수직 방향으로 원 디지털 영상의 스케일링 업이 수행되지 않아야 함을 가리키도록 프로그램된다. 이 때 수평 스케일링 제어기(10)의 상기 프로그램 가능한 레지스터 세트는 제1레지스터에 숫자 5를, 제2레지스터에 숫자 2를, 그리고 제3레지스터에 로직 0 을 저장함으로써 프로그램된다. 상기 숫자 5는 프레임 메모리(2)에 있는 디지털 영상의 원 주사선 당 픽셀 데이터 개수 (N')에 해당한다. 상기 숫자 2는 주사선당 삭제되어야 할 픽셀 데이터의 총수 (|$N')에 해당한다. 상기 제3레지스터에 저장된 로직 0은 수평방향으로 원디지털 영상의 스케일링 다운이 수행되어야 함을 가리킨다.The programmable register set 30 of the vertical scaling controller 6 initially has five circular scan lines in the frame memory 2, no scan lines should be interpolated, and scaling up of the original digital image in the vertical direction is not performed. It is programmed to indicate that it should not be. The programmable register set of horizontal scaling controller 10 is then programmed by storing the number 5 in the first register, the number 2 in the second register, and the logic 0 in the third register. The number 5 corresponds to the number N 'of pixel data per original scan line of the digital image in the frame memory 2. The number 2 corresponds to the total number (| $ N ') of pixel data to be deleted per scan line. Logic 0 stored in the third register indicates that scaling down of the original digital image should be performed in the horizontal direction.
수직 스케일링 제어기(6)의 제1,제2 및 제3계산수단(31,32,33)의 출력은 어떠한 수직 스케일링 업 이나 스케일링 다운 동작이 수행되지 않기 때문에 0 이다. 따라서 수직 스케일링 제어기(6)는 프레임 메모리(2)를 제어하여 원주사선을 라인메모리(3)에 차례로 제공한다. 수평 스케일링 제어기(10)는 라인메모리(3)와 라인버퍼(5)를 제어하여 상기 라인메모리(5)와 라인버퍼(5)에 저장되어 있는 선택된 픽셀 데이터를 이원선형 가산기(5)에 제공한다. 이 예를 위해, 수직 스케일링제어기(6)로부터의 계수 |A는 항상 1과 같으며, 라인버퍼(4)의 출력은 이원선형 가산기(5)에 의해 무시된다. 이원선형 가산기(5)의 출력은 라인메모리(3)의 출력과 같다.The outputs of the first, second and third calculating means 31, 32, 33 of the vertical scaling controller 6 are zero since no vertical scaling up or scaling down operation is performed. Accordingly, the vertical scaling controller 6 controls the frame memory 2 to sequentially provide the circumferential line to the line memory 3. The horizontal scaling controller 10 controls the line memory 3 and the line buffer 5 to provide the binary linear adder 5 with the selected pixel data stored in the line memory 5 and the line buffer 5. . For this example, the coefficient | A from the vertical scaling controller 6 is always equal to one, and the output of the line buffer 4 is ignored by the binary linear adder 5. The output of the binary linear adder 5 is the same as the output of the line memory 3.
수평 스케일링부의 스케일링 다운 동작은 실질적으로 수직 스케일링부의 동작과 유사하다. 그러나, 수평 스케일링부에서, 수평 스케일링 제어기(10)는 라인메모리(3)와 라인버퍼(4)를 제어하여 선택된 원픽셀데이터만을 출력한다. 라인메모리(3)와 라인버퍼(4)에 의해 출력되는 원픽셀 데이터는 수평 스케일링 제어기(10)의 나머지 분산기의 가산기 출력이 (N'-|$N')보다 작을 때는, 후자에 의해 출력된 바로 전의 원픽셀데이터로부터 (N')을 (N'-|$N')으로 나누었을 때의 몫인 V'만큼 오프셋되고, 그렇지 않을 때는 (V'+1)만큼 오프셋된다.The scaling down operation of the horizontal scaling portion is substantially similar to that of the vertical scaling portion. However, in the horizontal scaling unit, the horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to output only the selected one pixel data. The one pixel data output by the line memory 3 and the line buffer 4 is output by the latter when the adder output of the remaining disperser of the horizontal scaling controller 10 is smaller than (N'- | $ N '). It is offset by V 'which is the quotient of dividing (N') by (N'- | $ N ') from the previous one-pixel data, otherwise it is offset by (V' + 1).
수평 스케일링 제어기(10)의 제1,제2 계산회로의 출력은 수평 스케일 다운 동작 동안에는 부적절하다. 제3게산회로는 (N')을 주사선당 보유하고 있는 원픽셀 데이터 갯수 (N'-|$N')으로 나누었을 때 발생하는 나머지 U'을 출력한다. 이 예에서, 나머지 U'은 2와 같으며 수평 스케일링 제어기(10)의 나머지 분산기에 제공된다.The output of the first and second calculation circuits of the horizontal scaling controller 10 is inappropriate during the horizontal scale down operation. The third summation circuit outputs the remaining U 'that occurs when (N') is divided by the number of one-pixel data (N'- | $ N ') held per scan line. In this example, the remaining U 'is equal to two and provided to the remaining disperser of the horizontal scaling controller 10.
수평 스케일링 제어기(10)은 초기에 라인메모리(3)에 저장되어 있는 주사선 데이터의 첫 번째 픽셀데이터의 도트어드레스를 세트하고, 라인메모리(3)를 제어하여 시작 픽셀 클럭(starting pixel clock) 동안에 첫 번째 픽셀 데이터를 이원선형 가산기(5)에 공급한다. 로직 0가 수평 스케일링 제어기(10)의 제3레지스터에 저장되어 있기 때문에, 수평 스케일링 제어기(10)의 계수 |A는 1로 유지된다. 따라서, 도트버퍼(8)은 도트레지스터(7)로부터의 픽셀데이터를 저장하기 위해 계속 활성화되고, 이원선형 가산기(9)의 출력은 항상 도트레지스터(7)의 출력이다.The horizontal scaling controller 10 sets the dot address of the first pixel data of the scan line data stored in the line memory 3 initially, and controls the line memory 3 to control the first during the starting pixel clock. The second pixel data is supplied to the binary linear adder 5. Since logic 0 is stored in the third register of the horizontal scaling controller 10, the coefficient | A of the horizontal scaling controller 10 is maintained at one. Thus, the dot buffer 8 continues to be activated for storing pixel data from the dosistor 7, and the output of the binary linear adder 9 is always the output of the dosistor 7. As shown in FIG.
다음 픽셀 클럭 펄스가 도착하면, 수평 스케일링 제어기(10)의 나머지 분산기의 가산기 출력은 차 (N'-|$N') 이고, 거기에 의해 오프셋 (V'-2) 또는 2를 발생한다. 수평 스케일링 제어기(10)는 라인메모리(3)와 라인버퍼(4)를 제어하여 상기 라인메모리(3)와 라인버퍼(4)에 저장되어 있는 주사선의 다섯 번째 픽셀데이터를 도트레지스터(7)로의 수신을 위해 이원선형 가산기(5)에 공급한다.When the next pixel clock pulse arrives, the adder output of the remaining disperser of horizontal scaling controller 10 is the difference (N'- | $ N '), thereby generating an offset (V'-2) or two. The horizontal scaling controller 10 controls the line memory 3 and the line buffer 4 to transfer the fifth pixel data of the scanning lines stored in the line memory 3 and the line buffer 4 to the do register 7. It is supplied to the binary linear adder 5 for reception.
도 11은 이 예 즉 N'=5이고 |$N'=2에 대한 바람직한 실시예의 수평 스케일링 다운 동작을 설명하는 타이밍도이다.FIG. 11 is a timing diagram illustrating the horizontal scaling down operation of the preferred embodiment for this example, N '= 5 and | $ N' = 2.
본 발명의 장치는 디지털 영상의 실시간 2차원 스케일링을 허용하는 전용 하드웨어 장치이다. 게다가, 본 발명의 장치는 스케일링 율에 상관없이 상대적으로 작은 메모리를 요구한다는 관점에서 볼 때 상대적으로 값이 싸고, 처리단계가 적으며, 이로인해 보다 높은 효율성을 얻을 수 있다. 이는 수직 스케일링부의 출력은 중간 프레임버퍼에 같은 데이터를 저장할 필요가 없이 직접 수평 스케일링부에 공급되고, 수평 스케일링부의 출력은 출력 프레임 버퍼에 상기 출력을 저장할 필요없이 직접 출력장치에 공급될 수 있기 때문이다. 따라서 본 발명은 생(live) 비디오 응용에 사용하면 이상적이다.The device of the present invention is a dedicated hardware device that allows real-time two-dimensional scaling of digital images. In addition, the device of the present invention is relatively inexpensive, has fewer processing steps, and can achieve higher efficiency from the viewpoint of requiring a relatively small memory regardless of the scaling ratio. This is because the output of the vertical scaling unit is directly supplied to the horizontal scaling unit without having to store the same data in the intermediate frame buffer, and the output of the horizontal scaling unit can be directly supplied to the output device without the need to store the output in the output frame buffer. . Thus, the present invention is ideal for use in live video applications.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019960030433A KR100208389B1 (en) | 1995-07-26 | 1996-07-25 | Method and apparatus for uniformly scaling adigital image |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR95-22308 | 1995-07-26 | ||
KR101995022308 | 1995-07-26 | ||
KR1019950022308A KR970009342A (en) | 1995-07-26 | 1995-07-26 | Method and apparatus for uniformly scaling digital images |
KR1019960030433A KR100208389B1 (en) | 1995-07-26 | 1996-07-25 | Method and apparatus for uniformly scaling adigital image |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970009341A KR970009341A (en) | 1997-02-24 |
KR100208389B1 true KR100208389B1 (en) | 1999-07-15 |
Family
ID=66250472
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950022308A KR970009342A (en) | 1995-07-07 | 1995-07-26 | Method and apparatus for uniformly scaling digital images |
KR1019960030433A KR100208389B1 (en) | 1995-07-26 | 1996-07-25 | Method and apparatus for uniformly scaling adigital image |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950022308A KR970009342A (en) | 1995-07-07 | 1995-07-26 | Method and apparatus for uniformly scaling digital images |
Country Status (1)
Country | Link |
---|---|
KR (2) | KR970009342A (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865310B1 (en) * | 2002-08-20 | 2008-10-27 | 주식회사 포스코 | Automatic cleaning device of hot coil segment |
-
1995
- 1995-07-26 KR KR1019950022308A patent/KR970009342A/en active Search and Examination
-
1996
- 1996-07-25 KR KR1019960030433A patent/KR100208389B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970009341A (en) | 1997-02-24 |
KR970009342A (en) | 1997-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2612939B2 (en) | Interpolator for image display system and image display system | |
US5329614A (en) | Method and apparatus for enlarging gray scale images | |
US5335295A (en) | System and method for scaling a digital image | |
US4979136A (en) | Processing system and method for enhancing image data | |
US5068905A (en) | Scaler gate array for scaling image data | |
US5825367A (en) | Apparatus for real time two-dimensional scaling of a digital image | |
US5801678A (en) | Fast bi-linear interpolation pipeline | |
US4858018A (en) | Image processing apparatus | |
EP0723688B1 (en) | Digital image resizing apparatus and method of using the same | |
US5621870A (en) | Method and apparatus for uniformly scaling a digital image | |
KR100208389B1 (en) | Method and apparatus for uniformly scaling adigital image | |
US6304679B1 (en) | Method and apparatus for implementing two-dimensional digital filters | |
GB2303758A (en) | Apparatus for uniformly scaling a digital image | |
JP3025437B2 (en) | Method and apparatus for processing original digital images | |
US20070002381A1 (en) | Error diffusion method and hardware architecture | |
CN114387162A (en) | Image scaling apparatus and method, and computer-readable storage medium | |
US7151861B2 (en) | Raster image transformation circuit using micro-code and method | |
KR100269140B1 (en) | Context generating circuit for small picture and method the refor | |
WO2003036942A1 (en) | Motion compensation with subblock scanning | |
JP2004522356A (en) | Conversion unit and device, and image processing device | |
EP0903692A2 (en) | System and method for two-dimensional interpolation | |
JPH02135880A (en) | Image pickup device | |
US20030174250A1 (en) | Digital signal processor and digital signal processing method | |
CN1202496C (en) | Homogeneous digital image size extending and reducing method and device | |
JP4277764B2 (en) | Image processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130226 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20140325 Year of fee payment: 16 |
|
FPAY | Annual fee payment |
Payment date: 20160406 Year of fee payment: 18 |
|
EXPY | Expiration of term |