KR970004544B1 - 디지탈 화상의 확대/축소 방법 - Google Patents

디지탈 화상의 확대/축소 방법 Download PDF

Info

Publication number
KR970004544B1
KR970004544B1 KR1019930009489A KR930009489A KR970004544B1 KR 970004544 B1 KR970004544 B1 KR 970004544B1 KR 1019930009489 A KR1019930009489 A KR 1019930009489A KR 930009489 A KR930009489 A KR 930009489A KR 970004544 B1 KR970004544 B1 KR 970004544B1
Authority
KR
South Korea
Prior art keywords
image
line
src
pixel
dst
Prior art date
Application number
KR1019930009489A
Other languages
English (en)
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 KR1019930009489A priority Critical patent/KR970004544B1/ko
Application granted granted Critical
Publication of KR970004544B1 publication Critical patent/KR970004544B1/ko

Links

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

요약없음

Description

디지탈 화상의 확대/축소 방법
제1도는 FANT의 방법에 의한 처리 결과예시도.
제2도는 본 발명의 실시예에 적용되는 시스템도.
제3도는 브레슨햄모듈의 예시도.
제4도는 본 발명의 실시예에 따른 흐름도.
제5도는 제4도의 (4d)과정의 수평(X축)방향 변배 처리 구체흐름도.
제6도는 본 발명의 실시예에 따른 수평방향에 있어서 확대예시도.
제7도는 본 발명의 실시예에 따른 수평방향에 있어서 축소예시도.
제8도는 제4도(4c)과정의 수직(Y축)방향 변배 처리 구체흐름도.
본 발명은 디지탈 화상의 확대/축소 방법 및 회로에 관한 것으로, 특히 종방향 정방향의 독립적인 변배율을 지정하여 디지탈 화상을 확대/축소할 수 있는 디지탈 화상의 확대/축소방법에 관한 것이다.
최근 화상처리 기능을 컴퓨터에 대행시키려는 시도가 활발히 이루어지고 있다. 그 첫번째 이유는 화상정보의 종류나 양이 증가함에 따라서 인간에게는 비교적 단순한 화상처리를 장시간 계속하지 않으면 안될 기회가 늘었다는데 있다. 물론 단조로운 화상처리의 자동화에 대한 요청은 전부터 있었지만 그 가능성이 실용적인 수준에서 논의된 것은 최근 몇 년간의 일이다.
또 두 번째 이유는 실제로 인간의 화상처리 능력에도 실제로 한계가 있다는 것이다. 그 가장 큰 것은 처리의 객관성 혹은 재현성이 없다는 것이다. 왜냐하면 인간은 주관적인 동물이기 때문에 때와 장소가 바뀐 것만으로 같은 화상을 같은 목적으로 처리하여도 그 결과는 다르기 때문에 인간사회의 사회전체의 조정에 따라 이 경우 큰 문제가 된다.
세 번째 이유는 컴퓨터가 지금까지 인간에게는 볼 수 없었던 화상을 만들어 내게 된 일이다. 최근 의학분야에서 주목을 받고 있는 컴퓨터단층(CT)상 등은 그 좋은 예이다. 이와 같이 화상은 인간이 보기 이전에 이미 컴퓨터 속에 들어가 있으므로 이것을 컴퓨터로 처리하는데에는 아무런 하자도 없다. 따라서 상기 컴퓨터속에 화상데이타를 많이 모운다는 것은 그만큼 여러 다양한 기능에 성능을 배가 시킬 수 있다는 것을 알 수 있으며, 이를 위해 컴퓨터는 많은 데이타를 필요로 하고, 이에 따라 저장데이타 베이스를 가지게 된다.
상기 화상데이타 베이스란 화상 및 그 부속정보를 해당양만큼 모은 데이타를 뜻하는 것으로 어떠한 영상처리에 있어서도 필요한 화상이 한곳에 많이 모아져 있는 편이 편리하다. 한곳에 많은 데이타를 모우는데 여러방법이 있을 수 있으나 여러기법에 의해 화상을 축소시키려는 방법이 강구되고 있다.
상기 축소된 화상데이타는 재생기 보간하여 원화상으로 처리하게 된다. 상기 화상데이타의 축소/확대 방법은 회로 영상처리장치(HDTV, FAX, UTR, LD …)에서 많이 적용 되고 있다. 이와같은 종래기술의 하나의 예로 "Graf"의 특허인 미국특허 4,645,459를 살펴보면, 이는 원화상과 모화상을 저장하기 위한 메모리와, 변배의 처리를 실제적으로 처리하는 변배처리부, 엔진 부분으로 구성 되어있다.
그리고 여기에서 제시되는 종래의 기술은 방법적인 것이 주요한 부분이므로 아래의 동작성명에서 구체적으로 설명하기로 하면, 상기 "Graf" 특허에서 "Fant"의 방법의 동작은 2차원의 확대/축소의 처리를 동시에 한 번으로 처리 되지 않고 수직/수평의 2가지 방향으로 분리하여 처리한다. 따라서 각 단계별 입력되는 입력화소는 화소의 열로서 다루어진다. 그리고 입력화소에 따라 주어진 방향의 변배율과 현재 저장되어 있는 누산기(accumulator)의 값에 따라서 출력화소의 값이 결정된다. 예를들면, 수평방향의 다음과 같은 화소의 열을 75%로 축소하는 경우는 제1도와 같다.
상기 제1도에서 표현된 결과를 얻기 위한 각 단계별 처리 과정은 하기 표1과 같다.
[표 1]
상기 표1에서 사용되는 용어에서 inseg, outseg는 "Fant"의 엔진내부에서 사용되는 실수형레지스터이고, accum는 "Fant"의 엔진내부에 저장되는 현재의 단계에서의 누적연산 레지스터이며, outval는 "Fant"의 방법에 의하여 실제로 출력되는 화소의 값이고, po, pi는 출력화소의 값과 입력화소의 값이다. 이 방법에서의 처리되는 수순은 다음과 같다.
ㄱ. 주어진 변배율(s)에 따라서 역배율(inss=1./s)를 구하고,
ㄴ. 처리할 변수를 초기화 하며,
inseg=1.0, outseg=inss, accm=0
ㄷ. 원화상에서의 화소수만큼 루프(loop)를 돌면서 다음의 계산을 한다.
만약, SNSEG와 OUTSEG의 값이 같으면
accum=accum+pi*inseg
inseg=0.0, outseg=inss, po=accum*s
accm=0, 새로운 pi를 읽고,
그러나 상기 INSEG의 값이 OUTSEG값보다 작으면
accm=accm+pi*inseg
outseg=outseg-inseg
inseg=1.0, 새로운 pi를 읽는다.
한편, 상기 INSEG값이 OUTSEG값보다 크면
accm=accm+pi*outseg
inseg=inseg-outseg, outseg=inss, po=accum*s
accum=0, po를 출력한다.
상기 수순은 화상의 리샘플링 방법을 이용한 "Fant"의 풀이법이나, 2차원의 보간(interpolation)법을 이용하는 U. S. Pat. No. 4, 302, 776, U. S. Pat. No. 4, 532, 602, U. S. Pat. No. 4, 587, 621 등에 있다. 이외에 기존의 방법은 근본적으로 지나치게 수학적으로 부담을 주는 실수형의 연산이 많으므로 목적화상을 구하는 처리시간이 오래 걸릴 뿐만 아니라 이를 H/W적으로 구현했을 경우 장치의 복잡도가 커서 경제적으로 부담이 가중되는 문제점이 있다.
따라서 본 발명의 목적은 화상의 품질에 대한 요구가 비교적 적고, 화상의 축소/확대의 처리시간이 빠른 것이 더욱 요구되는 경우에 적합하게 처리할 수 있는 방법을 제공함에 있다.
상기 목적을 수행하기 위한 본 발명은 스케너에 의해 입력되거나 FAX등에서 전화선을 타고 들어오는 화상 데이타 등과 같이 외부로 부터 디지탈 화상을 입력하는 화상 입력장치와, 상기 화상입력장치로 부터 원화상의 데이타를 보관하고 있는 제1화상메모리와, 상기 화상입력장치의 입력 데이타를 제1화상메모리로 저장토록 제어하고 상기 저장된 데이타를 확대/축소토록 제어하는 중앙처리장치와, 상기 화상 입력장치에서 입력된 디지탈 화상을 저장하되 확대/축소 처리를 하기 전의 원화상과 확대/축소를 시행한 후의 결과로서 얻고자 하는 목적화상을 저장하기 위한 제2화상메모리와, 상기 확대/축소의 대상인 원화상에서 한줄의 데이타를 읽어 임시 저장하는 라인버퍼와, 상기 라인버퍼를 통해 전송되는 화상 데이터에 대해 확대/축소인 경우에 따라서 처리해야 할 원화상의 한줄의 화소들을 주어진 확대/축소의 조건, 즉 원화상의 크기를 기준으로 하여 얻고자 하는 목적화상의 크기나 원화상에 대비한 목적화상의 변배율에 따라서 내부적으로 변수의 값들을 설정하고 그 설정된 값과 단계에 따라서 라인버퍼에 있는 원화상의 화소를 기준으로 하여 목적화상을 얻는 브레슨햄모듈로 구성되어 있으며, 상기 중앙처리장치에서 원화상크기와 목적 화상크기를 정하고, 상기 원화상의 기록 영역에서 현재 가르키는 라인카운트에 기록 되어 있는 값을 라인 버퍼로 옮기며, 상기 옮겨진 라인 버퍼의 값을 X, Y축으로 변배처리하고, 상기 현재 가르키는 라인카운트의 값이 상기 지정 원화상의 수직라인수에 도달했는가를 중앙처리장치에서 체킹하여 이에 도달 되었는지 전체화상의 변배처리를 종료처리토록 함을 특징으로 한다.
이하 본 발명의 바람직한 일실시예를 첨부되는 도면을 참조하여 상세히 설명한다.
제2도는 본 발명의 실시예에 적용되는 시스템도로서, 각 구성요소간 연결은 데이타와 제어버스(207)를 통해 연결되고, 화상 입력장치(205)(Image Input Device)는 스케너에 의해 입력되거나 FAX등에서 전화선을 타고 들어오는 화상 데이타등과 같이 외부로부터 디지탈 화상을 입력할 수 있고, 제1화상메모리(201)는 원화상의 데이타를 보관하고 있는 보관장치이고, 중앙처리장치(204)는 본 발명에서 제안되는 방법에 따라서 동작이 이루어지도록 제어를 하고, 제2화상메모리(Image Memory)(203)는 상기 화상 입력장치(205)에서 입력된 디지탈 화상을 저장하기 위한 장치로서 이는 확대/축소 처리를 하기 전의 원화상과 본 발명의 방법에 따라 확대/축소를 시행한 후의 결과로서 얻고자 하는 목적화상을 저장 하기 위한 메모리이다. 라인버퍼(Line Buffer)(208)은 확대/축소의 대상인 원화상에서 한줄의 데이타를 읽어 저장하는 처리를 위한 임시 화상버퍼로서 여기에 저장된 화상데이타는 후술하는 브레슨햄 모듈(202)에 의하여 확대/축소인 경우에 따라서 처리되는 실제의 화소를 일시 저장하는 장소이며, 브레슨햄 모듈(Bresenham Module) (202)은 본 발명 방법의 핵심적인 것으로서 처리해야 할 원화상의 한줄의 화소들을 주어진 확대/축소의 조건, 즉 원화상의 크기를 기준으로 하여 얻고자 하는 목적 화상의 크기나 원화상에 대비한 목적화상의 변배율에 따라서 내부적으로 변수의 값들을 설정하고 그 설정된 값을 단계에 따라서 라인버퍼(208)에 있는 원화상의 화소를 기준으로 하여 목적화상을 얻는 모듈에 해당된다.
여기에서 제안되는 축소/확대에서 이용되는 브레슨햄 모듈(202)을 다음과 같이 설명한다.
1965년 J. E. Bresenham이 발표(IBM System Journal 4(1) 1965, pp.25-30)한 이 풀이법은 두개의 주어진 화소(X1, Y1)과 (X2, Y2)사이에 이어지는 직선에서 제일 가깝게 위치하는 화소들의 집합을 그림으로 나타낸 풀이법이다. 이것은 X1이 X2보다 작고 직선의 기울기는 0과 1 사이에 있는 값이라고 가정하고, 직선의 방정식을 간소화 하기 위해서 이 풀이법은 첫째 시작점(X1, Y1)을 (0, 0)라고 가정한다, 그래서 직선 방정식은 Y=(dY/dX)X가된다. 여기서 dY=Y2-Y1이고 dX=X2-X1이다.
브레슨햄의 풀이법을 구체적으로 살펴보면, 제3도와 같이 직선의 부분을 예를 들면, 이 풀이법은 X1부터 X2까지 X의 각 값에 대한 해당되는 Y값을 되풀이해서 결정 해나가도록 만들어져 있다. 예를 들어서 (Xi-1, Yi-1)좌표의 화수를 작도한 뒤에 화소 A나 화소 B가 어느 것이 정확한 직선에 더 가까운가를 결정하여 더 가까운 화소를 그리는 것이다.
Xi점에서 정확한 직선상의 Y좌표와 화소 A의 Y좌표사이의 차이를 a라고 하면 아래와 같다.
a=(Yi+1)-(dY/dX)Xi 여기에서 dY/dX는 직선의 기울기를 표시한다.
마찬가지로 화소 B로부터의 직선상의 점까지의 거리 b는
b=(dY/dX)Xi-Yi
만일 거리 b가 거리 a보다 작으면 화소 B가 진짜 직선에 더 가까이 놓여있는 것이다. 혹은 a가 b보다 작으면 화소 A가 직선에 더 가깝게 놓여있는 것이다. 다시 말하면(a-b)의 부호에 따라서 화소 A나 화소 B가 직선에 어느쪽에 가깝게 놓여 있나를 결정하게 된다. 그런데 이 과정을 보면 직선에 대한 방정식을 간단히 사용하는 것보다 더 많은 계산을 해야 되는 것처럼 보인다. 그러나 a와 b의 값의 비교작업은 다음과 같은 계산과정 중에 암시적으로 비료가 쉽게 되어버린다. 즉, 값에 대한(b-a)의 값을 반복적으로 계산함으로써 a와 b의 값이 비교된다. 그 원리를 유도하는 데는 약간의 대수가 필요하게 되나 결과를 얻는 계산은 간단하다.
상기 풀이법의 결과를 다기 위하여 앞서의 a와 b에 대한 두 방정식을 다음과 같이 결합한다.
(b-a)=2*(dY/dX)-2*Yi-1
X1은 X2보다 작기 때문에 dX는 항상 양의 값을 갖게 되고 (b-a)대신(b-a)의 부호를 결정하는데 dX*(b-a)를 사용할 수 있다. 즉, 화소 A를 선택할 것인가? 화소 B를 선택할 것인가를 결정하는 dX*(b-a)를 이용할 수 있다.
그러면 위 식의 양변에 dX를 곱하면,
dX*(b-a)2*dY*Xi=2*Yi*dX-dX
=2*(dY*Xi-dX*Yi)-dX (1)
여기서 dX*(b-a)를 결정변수라 부르기로 하고, 이것을 di로 표시하기로 하자.
d1, d2, d3 … dn을 모두 계산하기 위해서는 di-1로부터 di를 계산해 내는 방법을 알 필요가 있다.
식(1)은
di=2*(dY*Xi-dX*Yi)-dX (2)
이고, di-1=2*(dY*Xi-1-dX*Yi-1)-dX가 된다.
그러므로
di-di-1=(2*(dY*Xi-dX*Yi)-(2*(dY*Xi-1-dX*Yi-1))
=(2*(dY*(Xi-Xi-1)-dX*(Yi-Yi-1))
이 된다. 그런데 Xi-Xi-1은 화소의 기본 간격이므로 항상 1이 된다. Yi-Yi-1은 (Xi, Yi+1)좌표의 화소 A가 선택되면 1이 되고, (Xi, Yi)좌표의 화소 B가 선택되면 0이 된다.
그래서 di와 di-1 사이의 차를 계산하는 것은 쉬워지고, 다음 두가지 중의 하나로 di-1을 증가시킴으로써 쉽게 di값을 계산할 수 있다.
만일 di-1>=0이면 (Xi, Yi+1)에 있는 화소 A를 선택하고, di-1에 대한 증가는 다음과 같다.
(di-di-1)=2*(dY-dX)
di=di-1+2*(dY=dX) (결정변수) (3)
만일 di-1<0이면 (Xi, Yi)에 있는 화소 B를 선택하고, di-1에 대한 증가는 다음과 같이 된다.
di=di-1+2*dY (4)
di의 초기값을 계산해 보자. 선상에 있는 첫 번째 화소는 (0, 0)좌표에 있다고 가정한 사실을 기억하자. di에 관한 방정식(2)에 Xi= 1, Yi=0을 대입하면
di=2*dY-dX (5)
가 된다.
대부분의 복잡한 계산은 화소를 그리는 루우프(loop)밖에서 한번만 계산되기 때문에 이 최종 풀이법은 대단히 효율적이다.
이상에서 설명된 브레슨햄의 방법은 간단히 하면 디지탈 화상에서 기울기가 1 이하인 직선을 그리는 방법이라 할 수 있다.
제4도는 본 발명에 따른 디지탈 화상의 확대/축소를 위한 처리흐름도로써, 원화상의 크기를 세트(SRC-X, SRC-Y)하고 목적화상의 크기를 세트(DST-X, DST-Y)하며 라인 카운터(LC)를 초기화상태로 하는 제1과정과, 상기 제1과정의 화상의 저장영역에서 현재라인 카운터(LC)값이 가르키는 라인의 화상데이타를 라인 버퍼로 옮기는 제2과정과, 상기 라인버퍼로 옮긴 원화상의 해당라인의 화상값을 수직방향에서 변배로 확대/축소 처리하는 제3과정과, 상기 제3과정의 수직방향에서 확대/축소처리한 해당라인의 값을 수평방향에서 변배로 확대/축소 처리하는 제4과정과, 상기 제3, 4과정에서 처리한 해당라인 카운터(LC)의 값이 원화상의 수직라인수에 도달할때까지 상기 제2, 4과정의 처리를 반복 진행하는 제5과정으로 이루어진다. 제5도는 본 발명에 따른 제4과정으로 제4도의 (4d)과정의 X축(수평 방향 변배)처리를 위한 구체흐름도로서, 원화상의 수평방향 화소수(이하 "SRC-X"라 칭함)와 얻고자할 목적화상의 수평방향 화소수(이하 "DST-X"라 칭함)와 같은가를 비교하는 제1단계와, 상기 제1단계에서 같을때는 등배조건이므로 수평축 변배처리를 종료하고 같지 않을때는 상기 SRC-X와 DST-X의 값으로부터 축소/확대 조건을 검색하는 제2단계와, 상기 제2단계에서 축소 조건일때 원화상의 수평 방향 화소수(SRC-X)를 축소를 위하여 계산해야 할 직선에 있어서 X축방향의 거리로 처리하고 (X-Size←SRC-X), 목적저장의 수평방향 화소수(DST-X)를 축소를 위하여 계산해야할 직선에서 Y축 방향의 거리로 처리하며 (X-Size←DST-X), 확대 조건일 때 상기와 같이 X-Size←DST-X, X-Size←SRC-X를 처리하는 제3단계와, 상기 제3단계에서 원화상과 목적화상의 수평방향의 화소수로부터 확대/축소를 위하여 계산할 직선에서 X, Y축 방향의 거리로 환산하여 브레슨햄 모듈의 결정변수를 초기화하고 수평방향 화소카운트(IC)를 초기화하는 제4단계와, 상기 제4단계의 화소카운터(IC)가 확대/축소를 위한 계산할 직선에서 X축 방향거리(X-Size) 보다 큰지를 비교하여 화소카운터(IC)가 클때 현재라인 버퍼안의 한줄의 화상 데이타에 대해 확대/축소 처리를 완료하는 제5단계와, 상기 제4단계에서 화소카운터(IC)가 작을때 상기 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)를 구하여 축소 또는 확대 조건을 체킹하는 제6단계와, 상기 제6단계에는 확대조건일때 목적하는 X번째 화소하는 원화상의 Y번째 화소로 복사하고 축소조건일 때 원화상에서 X번째의 화소를 목적 화상의 Y번째 화소로 복사한 후 다음을 위해 화소카운터(IC)를 증가시키는 제7단계로 이루어진다.
제6도는 제5도에서 수평방향에 있어서 확대되는데는 설명하기 위한 도면이고, 제7도는 제5도에서 수평방향에 있어서 축소되는 예를 설명하기 위한 도면이다.
제8도는 본 발명에 따른 제3과정으로 제4도의 (4c)과정의 Y축(수직방향변배)처리를 위한 구체 흐름도로서, 원화상 수직 방향화소수(이하 "SRC-Y"라 칭함)와 얻고자하는 수직 목적방향화소수(이하 "DST-Y"라 칭함)와 크기를 비교하는 제1비교과정과, 상기 제1비교과정에서 SRC-Y보다 DST-Y가 클때 수직방향 축소조건이 X-Size←SRC-Y가 클때 수직방향 축소조건이 X-Size←SRC-Y, Y-Size←DST-Y되도록 하고, 수직방향 확대조건으로 X-Size←DST-Y, Y-Size←SRC-Y로 되도록 하는 수직방향 축소/확대 조건설정과정과, 상기 수직방향 축소/확대조건이 설정되면 수직방향 브레슨햄 모듈의 결정변수를 초기화하는 수직방향 라인카운트를 하는 결정변수 초기화 및 라인 카운팅과정과, 상기 라인카운트(LC)값이 X-Size값보다 클때 X, Y축 방향으로 변배처리를 종료하고 적을 때 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)를 구하여 SRC-Y와 DST-Y와 같은지를 비교하는 제2비교과정과, 상기 제2비교과정에서 같을 때 수직(Y) 방향 등배조건으로 입력 화상에서 X위치의 라인 데이타를 라인버퍼로 이동하는 수직(Y)방향 등배조건 처리과정과, 상기 제2비교과정에서 SRC-Y와 DST-Y가 같지 않을 때 DST-Y보다 SRC-Y가 크면 입력화상에서 Y위치의 라인데이타를 라인버퍼로 이동시키고 SRC-Y보다 DST-Y가 크면 입력화상에서 X위치의 라인 데이타를 라인 버퍼로 이동하는 X, Y위치 라인 데이타 이동과정으로 이루어진다.
따라서 본 발명의 구체적인 일실시예를 제2도-제8도를 참조하여 상세히 설명하면, 저장 입력장치(205)는 스케너, CCD카메라를 통해 입력되는 값이나 FAX의 전송라인이 될 수 있으며, 상기 화상입력장치(205)를 통해 입력된 디지탈 화상데이타는 중앙처리장치(204)의 제어에 의해 제1화상메모리(201)에 기록된다.
상기 디지탈 화상데이타를 확대/축소하기 위해서는 중앙처리장치(204)는 (4a)과정에서 제1화상메모리(20)에 기록된 원화상의 크기를 세팅하고, (SRC-X, SRC-Y), 목적화상의 크기를 세팅하며 (RTS-X, DSY-Y), 라인카운터(LC)를 "0"로 하여 초기상태로 한다. (4a)과정에서 SRC-X는 원화상에서 있어서 수평방향의 크기(화소수)를 나타내고, DST-X는 얻고자 하는 목적화상에 있어서 수평방향의 크기 (화소수)를 나타내며, X-Size는 아래에서와 같이 확대/축소를 위하여 계산해야할 직선에 있어서 X축방향의 거리를 나타내고, Y-Size는 아래에서와 같이 확대/축소를 위하여 계산해야할 직선에 있어서 Y축방향의 거리를 나타낸다.
그리고 (4b)과정에서 중앙처리장치(204)의 제어에 의해 제1화상메모리(201)에서 현재 라인카운터(LC)의 값이 가르키는 라인의 화상데이타를 라인버퍼(208)로 옮긴다. 상기 라인버퍼(208)로 옮긴값으로부터 (4c)과정에서 제8도와 같이 방향(Y축)을 변배처리하고, (4d)과정에서 수평방향(X축)을 변배처리한다.
상기 (4c)과정의 수직(Y축)변배처리를 제8도를 참조하여 구체적으로 살펴보면, (8a)과정에서 원화상에 있어서 수직방향의 화소수(SRC-Y)와 얻고자 하는 목적화상에서 수직방향이 화소수(DST-Y)를 비교하여 SRC-Y가 크면 (8b)과정에서 DST-Y를 X-Size값으로 복사하고, SRC-Y를 Y-Size값으로 하여 수직(Y)방향 확대 조건을 설정하고 DST-Y가 크면 (8k)과정에서 SRC-Y를 X-Size값으로 복사하고, DST-Y를 Y-Size값으로 복사하여 수직방향(Y)으로 축소 조건을 결정한다.
그리고 중앙처리장치(204)는 (8c)과정에서 수직방향 브레슨햄 모듈(202)를 제어하여 결정변수를 초기화시키고, (8d)과정에서 수직방향라인 카운트(LC)을 초기화하고(0), (8e)과정에서 라인 카운터(LC)값이 X-Size값보다 큰지를 비교한다. 여기서 크지 않으면 (8f)과정에서 상기한 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)를 구하여 (8g)과정에서 SRC-Y와 DST-Y가 같은지를 비교한다. 여기서 같을때(81)과정에서 수직방향(Y)등배조건으로 입력화상에서 X위치 라인 데이타를 라인 버퍼(208)로 이동한다.
상기(8g)과정에서 같지 않으면(8h)과정에서 SRC-Y와 DST-Y의 크기를 비교하여 SRC-Y가 크면 Y축방향의 확대조건으로 (8i)과정의 입력화상에서 Y위치의 라인 데이터를 라인버퍼(208)로 이동하고, DST-Y가 크면 수직(Y축)방향 축소조건으로 (8m)과정에서 입력화상에서 X위치의 라인 데이터로 라인 버퍼(208)로 이동한다. 이리하여 상기(4c)과정의 수직축(Y)에 대한 변배처리가 완료된다. 그리고 다음(4X)과정의 수평(X)축방향에 대한 변배처리를 한다. 상기 (4d)과정의 수평(X축)방향의 변배처리 즉, 수평방향의 확대 및 축소에 대한것으로 제5도에서 구체적으로 설명하면, 수평방향 축소시 예를들어, 제6도의 도시와 같이 원화상의 수평방향의 화상의 크기가 100개의 화소로서 구성되어 있고, 얻고자하는 목적화상의 크기가 123개의 화상의 크기를 갖을때 이는 123%로의 확대를 의미하고 원화상의 화소의 갯수에 비하여 23개의 화소가 첨가시켜야 한다. 따라서 확대라는 것은 원화상을 기준으로 하여 23개의 화소를 만들어 내야 하는 문제이며, 이것의 의미는 몇개의 추가되는 화소를 원화상 위의 어느 화소에서 얻어내야 하는가의 결정을 말하며, 이는 원화상과 목적화상의 변환(mapping)의 문제를 푸는데 있어서 얻고자 하는 목적화소의 위치에서 계산을 통하여 가장 거리적으로 최적인 원화소를 얻어 내는 역변환(inverse mapping)의 기법인 것이다.
화상의 확대를 직선으로 표현시 계산의 편리성을 위하여 원점을 직선이라고 가정하면 수평방향의 이동량이 목적화상의 화소수이고, 수직방향의 이동량이 목적화상의 화소수이고, 수직방향의 이동량이 원화상의 화소수인 직선 즉, 기울기는 원화상의 화소수/목적화상의 화소수가 된다. 이를 제5도에서 살펴보면, (5a)과정에 SRC-X와 DST-X가 같은지를 비교한다.
SKC-X=DST-X일때 등배 조건이므로 X축 변배처리가 종료되고, SRC-X와 DST-X가 같지 않을때 SRC-X와 DST-X의 값의 비교로 부터 축소 또는 확대 조건을 체킹한다. 확대조건일때(SRE-X<DST-X)DST-X를 X-Size로 복사하고 SRC-X를 Y-Size로 복사한다.
한편, 축소조건일때 (SRC-X>DST-X) (5c)과정에서 SRC-X를 X-Size로 복사하고, DST-X를 Y-Size로 복사한다. (5e)과정에서 중앙처리장치(204)는 (5e)과정에서 브레슨햄 모듈(202)를 제어하여 결정변수를 초기화하고 (5f)과정에서 수평방향 화소카운터(IC)를 초기화하고 (5g)과정에서 화소카운터(IC)가 상기 X-Size의 값을 초과했나를 체킹한다. 상기 (5g)과정에서 초과했을 때 현재 라인버퍼(208)의 한 라인의 화상데이타에 대한 확대/축소처리를 완료한다. 그러나 상기 (5g)과정에서 X-Size가 화소카운터(IC)보다 클때 (5h)과정에서 상기 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)을 구한다.
상기 (5h)과정의 브레슨햄의 풀이법이란 디지탈 좌표계에서 그렸을때에 직선상에 존재하는 한 점의 위치(수평좌표, 수직좌표)의 의미는 다음과 같다.
수평좌표값은 목적화상에서 화소의 위치이고, 수직좌표값은 얻고자 하는 목적화상에서의 화소가 원화상의 화소에서 가장 가까운 화소의 위치를 나타낸다는 것이다. 따라서 직선의 원점에서 출발하여 수평방향으로 증분을 1로 하여 직선을 그려나가는 경우에 얻어지는 직선상의 모든 점을 구한다는 것은 화상의 줄단위의 처리에 있어서 목적화소의 위치와 그에 거리상으로 최적인 원화소의 위치를 구할 수 있음을 의미한다.
제6도를 통해 설명하면, 직선상의 점(62, 50)은 현재 처리되고 있는 라인내에서 목적화상의 62번째위치의 화소가 원화상의 50번째의 화소값과 같으므로 이를 취하여 목적화상에 옮겨 놓으면 확대된 목적화상을 얻을 수 있음을 표시한다. 즉(5i)과정에서 SRC-X와 DST-X의 값과 비교하여 축소 및 확대조건을 체킹한다.
상기 (5i)과정에서 축소조건일때 (SRC-X>DSY-X) (5j)과정에서 원화상에서 X번째의 화소를 목적화상의 Y번째 화소로 복사하고, 확대조건일 때(SRC-X<DSY-X)(5k)과정에서 목적화상의 X번째 화소는 원화상의 Y번째 화소에서 복사된다. 그리고 (5p)과정에서 화소카운터(IC)를 증가시킨다(IC+1). 수평방향의 축소의 경우, 제7도의 도시와 같이 예를들면, 원화상의 수평방향의 화상의 크기가 100개의 화소로서 구성되어 있고, 얻고자하는 목적화상의 크기가 88개의 화상의 크기를 갖을 때 이는 88%로의 축소를 의미하고 원화상의 화소의 갯수에 비하여 12개의 화소가 삭제되어져야 한다. 따라서 축소라는 것은 원화상을 기준으로 하여 12개의 화소를 없애야 하는 문제이며, 이것의 의미는 몇개의 삭제되는 화소를 원화상 위의 어느 화소로서 결정해야 하는가의 문제를 말하며 이는 원화상과 목적화상의 변환(mapping)의 문제를 푸는데 있어서 얻고자 하는 원화소의 위치를 계산을 통하여 최적인 삭제할 화소의 위치를 얻어 내는 목적화상을 얻어 내는 순변환(forward mapping)의 기법인 것이다.
계산의 편리성을 위하여 원점을 지나는 직선이라고 가정한다면, 수평방향의 이동량이 원화상의 화소수이고 수직방향의 이동량이 목적화상의 화소수인 직선 즉, 기울기가(목적화상의 화소수/원화상의 화소수)이다.
그렇다면 이러한 직선을 브레슨햄의 풀이법에 의하여 디지탈 좌표계의 위에서 그렸을때의 직선상에 존재하는 한점의 위치(수평좌표, 수직좌표)의 의미는 다음과 같다.
수직좌표값은 얻고자 하는 목적화상에서 화소의 위치이고 수평좌표값은 원화상에서의 화소중에서 목적화상의 화소에 가장 가까운 화소의 위치를 나타낸다는 것이다. 따라서 직선의 원점에서 출발하여 수평방향으로 증분을 1로 하여 직선을 그려나가는 경우에 얻어지는 직선상의 모든 점을 구한다는 것은 화상의 줄단위의 처리에 있어서 목적화소의 위치와 그에 거리상으로 최적인 원화소의 위치를 구할 수 있음을 의미한다.
위의 그림을 통해 설명하면 직선상의 점(50, 44)은 현재 처리되고 있는 줄내에서 목적화상의 44번째위치의 화소가 원화상의 50번째의 화소값과 같으므로 이를 위하여 목적화상에 옮겨 놓으면 축소된 목적화상을 얻을 수 있음을 표시한다.
이상은 정수표현으로 표현되는 디지탈 좌표계에서 수평방향 확대와 축소의 방법을 직선을 그리는데에 있어서 공지되어 있는 바와 같이 빠른 방법이면서 정수의 연산만으로 최적화되어 있는 브레슨햄의 풀이법을 이용하여 위와같이 제안된 직선을 그리는 방법을 통하여 원화상에서 목적화상을 얻는 방법을 설명하는 것이다.
상술한 바와 같이 원화상에서 하나의 줄의 화소들은 중앙처리장치(204)에 의해 제어되는 브레슨햄 모듈(202)에 의해 라인버퍼(208)로 읽혀진다.
이렇게 읽혀진 한줄의 화소들은 수평방향에서의 적용예에서와 같이 주어진 수직방향의 변배율에 따른 원화상의 수직방향의 화소수와 목적화상의 수직방향의 화소수와의 매핑에 의하여 결정되는 브레슨햄 모듈(202)의 동작에 의하여 본 방법에서 제안되는 직선을 구한다.
상술한 바와같이 구해진 직선을 브레슨햄 모듈(202)이 그려 나가면서 현재의 라인버퍼(208)의 데이터를 목적화상의 화상메모리 위에 복사 해 나가는 것으로 얻고자 했던 목적화상을 구할때 다음과 같은 효과가 있다.
기본적으로 본 방법에 적용되는 모든 연산은 목적화상을 구하기 위해 정수형의 데이터 처리방법을 취하여 훨씬 고속처리가 가능하고, 외부로 부터 입력되어진 원화상과 목적화상의 변배율에 의하여 결정되는 브레슨햄 모듈의 내부의 동작이 간단하고 또한 동일한 방법으로 수평과 수직의 방향에 각각 동일한 적용이 가능하며, 본 발명을 이용하여 H/W화한 경우에는 그의 구현을 위하여 콘볼루션법(convolution), 보간법(interpolation)에 비하여 필요한 H/W의 수가 적어서 구현장치를 경제적이고 간단히 이룰 수 있다.
본 발명의 방법의 적용에 의하면 원화상의 화소들을 읽어 들이는 한줄의 라인버퍼만을 이용하여 2차원의 화상의 변배의 처리가 가능하므로 별도의 2차원의 임시 처리용 버퍼를 사용하는 방법에 비하여 훨씬 임시처리용 메모리의 사용량이 적어지며 처리의 대상이 2차원의 데이타가 아니므로 리얼타임(real time)의 처리도 가능한 이점이 있다.

Claims (1)

  1. 디지탈 화상의 확대/축소 방법에 있어서, 상기 디지탈 원화상의 크기를 세트(SRC-X, SRC-Y)하고 목적화상의 크기를 세트 (DST-X, DST-Y)하며 라인 카운터(LC)를 초기화상태로 하는 초기화과정과, 상기 초기화과정의 화상의 저장영역에서 현재라인 카운터(LC)값이 가르키는 라인의 화상데이타를 라인 버퍼로 옮기는 화상데이타이송과정과, 상기 라인버퍼로 옮긴 원화상의 해당라인의 화상값을 원화상의 수직 방향화소수(이하 "SRC-Y"라 칭함)와 얻고자하는 수직 목적방향 화소수(이하 "DST-Y"라 칭함)와 크기를 비교하는 제1비교과정과, 상기 제1비교과정에서 SRC-Y와 DST-Y가 클 때 수직방향 축소조건이 X-Size←SRC-Y가 클때 수직방향 축소조건이 X-Size←SRC-Y, Y-Size←DST-Y되도록 하고, 수직방향 확대조건으로 X-Size←DST-Y, Y-Size←SRC-Y로 되도록 하는 수직방향 축소/확대 조건설정과정과, 상기 수직방향 축소/확대조건이 설정되면 수직방향 브레슨햄 모듈의 결정변수를 초기화하는 수직방향 라인카운트를 하는 결정변수 초기화 및 라인 카운팅과정과, 상기 라인카운트(LC)값이 X-Size값보다 클때 X, Y축 방향으로 변배처리를 종료하고 적을 때 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)를 구하여 SRC-Y와 DST-Y와 같은지를 비교하는 제2비교과정과, 상기 제2비교과정에서 같을 때 수직(Y)방향 등배조건으로 입력화상에서 X위치의 라인 데이타를 라인버퍼로 이동하는 수직(Y)방향 등배조건 처리과정과, 상기 제2비교과정에서 SRC-Y와 DSY-Y가 같지 않을 때 DST-Y보다 SRC-Y가 크다면 입력화상에서 Y위치의 라인데이타를 라인버퍼로 이동시키고 SRC-Y보다 DST-Y가 크면 입력화상에서 X위치의 라인 데이터를 라인버퍼로 이동하는 X, Y위치 라인데이타 이동과정과, 상기 수직방향에서 확대/축소처리한 해당라인의 값을 원화상의 수평방향 화소수(이하 "SRC-X"라 칭함)와 얻고자할 목적화상의 수평방향 화소수(이하 "DST-X"라 칭함)와 같은가를 비교하는 제3비교과정과, 상기 제3비교과정서 같을 때는 등배조건이므로 수평축 변배처리를 종료하고 같지 않을때는 상기 SRC-X와 DST-X의 값으로부터 축소/확대 조건을 검색하는 조건검색과정과, 상기조건검색과정에서 축소 조건일때 원화상의 수평 방향 화소수(SRC-X)를 축소를 위하여 계산해야 할 직선에 있어서 X축방향의 거리로 처리하고 (X-Size←SRC-X), 목적저장의 수평방향 화소수(DST-X)를 축소를 위하여 계산해야할 직선에서 Y축 방향의 거리로 처리하며 (X-Size←DST-X), 확대조건일때 상기와 같이 X-Size←DST-X, Y-Size←SRC-X를 처리하는 조건설정과정과, 상기 과정에서 원화상과 목적화상의 수평방향의 화소수로부터 확대/축소를 위하여 계산할 직선에서 X, Y축 방향의 거리로 환산하여 브레슨햄 모듈의 결정변수를 초기화하고 수평방향 화소카운트(IC)를 초기화하는 화소카운트 초기화과정과, 상기 화소카운터(IC)가 확대/축소를 위한 계산할 직선에서 X축 방향거리(X-Size)보다 큰지를 비교하여 화소카운터(IC)가 클 때 현재 라인 버퍼안의 한줄의 화상 데이터에 대해 확대/축소 처리를 완료하는 라인 확대/축소과정과, 상기 화소카운터(IC)가 작을 때 상기 브레슨햄 풀이법에 의해 직선상의 한점(X, Y)를 구하여 축소 또는 확대 조건을 체킹하여 확대조건일때 목적하는 X번째 화소는 원화상의 Y번째 화소로 복사하고 축소조건일때 원화상에서 X번째의 화소를 목적 화상의 Y번째 화소로 복사한 후 다음을 위해 화소카운터(IC)를 증가시키는 다음화소 증가 처리과정과, 상기 과정에서 처리한 해당라인 카운터(LC)의 값이 원화상의 수직라인수에 도달할때까지 상기 과정의 처리를 진행하는 원화상 수직라인 검색과정으로 이루어짐을 특징으로 하는 디지탈 화상의 확대/축소방법.
KR1019930009489A 1993-05-31 1993-05-31 디지탈 화상의 확대/축소 방법 KR970004544B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930009489A KR970004544B1 (ko) 1993-05-31 1993-05-31 디지탈 화상의 확대/축소 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930009489A KR970004544B1 (ko) 1993-05-31 1993-05-31 디지탈 화상의 확대/축소 방법

Publications (1)

Publication Number Publication Date
KR970004544B1 true KR970004544B1 (ko) 1997-03-28

Family

ID=19356338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930009489A KR970004544B1 (ko) 1993-05-31 1993-05-31 디지탈 화상의 확대/축소 방법

Country Status (1)

Country Link
KR (1) KR970004544B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894362A (zh) * 2010-07-05 2010-11-24 昆山龙腾光电有限公司 一种图像放大装置及方法
KR101297177B1 (ko) * 2008-01-10 2013-08-20 삼성전자주식회사 디지털 이미지의 적응적 리포맷팅을 위한 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101297177B1 (ko) * 2008-01-10 2013-08-20 삼성전자주식회사 디지털 이미지의 적응적 리포맷팅을 위한 방법 및 시스템
CN101894362A (zh) * 2010-07-05 2010-11-24 昆山龙腾光电有限公司 一种图像放大装置及方法

Similar Documents

Publication Publication Date Title
JP4196216B2 (ja) 画像合成システム、画像合成方法及びプログラム
KR101035836B1 (ko) 화상 처리 장치, 화상 처리 시스템, 촬상 장치 및 화상처리 방법
EP1650705B1 (en) Image processing apparatus, image processing method, and distortion correcting method
JP4657367B2 (ja) 画像処理装置、撮像装置、および画像歪み補正方法
US6393162B1 (en) Image synthesizing apparatus
US7868923B2 (en) Imaging system
US5422997A (en) Texture address generator, texture pattern generator, texture drawing device, and texture address generating method
JP4218022B2 (ja) 合成画像を生成する方法
EP0664525B1 (en) Device and method for detecting image matching
US20040022419A1 (en) Optical flow and image forming
JP2006140886A (ja) 撮像装置および画像の高解像化方法
CN113674146A (zh) 图像超分辨率
US6597816B1 (en) Correcting distortion in an imaging system using parametric motion estimation
US6539128B1 (en) Method and apparatus for interpolation
JP5566199B2 (ja) 画像処理装置およびその制御方法、並びにプログラム
Zhang et al. Optical flow reusing for high-efficiency space-time video super resolution
JPH1049665A (ja) 画像処理装置および方法
KR970004544B1 (ko) 디지탈 화상의 확대/축소 방법
US6501862B1 (en) Picture information processing method and apparatus and entertainment apparatus
US7110620B2 (en) Apparatus for processing digital image and method therefor
JP2021012596A (ja) 演算処理装置及び演算処理方法
JP3047681B2 (ja) 画像歪み補正方法及び装置
JP2009064193A (ja) 解像度変換装置及び方法
US6674922B1 (en) Image processing method, image processing apparatus, and storage medium
JP2012014268A (ja) 情報処理装置およびその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050228

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee