KR100362355B1 - 이산 웨이브렛 변환용 프로세서 - Google Patents

이산 웨이브렛 변환용 프로세서 Download PDF

Info

Publication number
KR100362355B1
KR100362355B1 KR1020000057439A KR20000057439A KR100362355B1 KR 100362355 B1 KR100362355 B1 KR 100362355B1 KR 1020000057439 A KR1020000057439 A KR 1020000057439A KR 20000057439 A KR20000057439 A KR 20000057439A KR 100362355 B1 KR100362355 B1 KR 100362355B1
Authority
KR
South Korea
Prior art keywords
processor
vertical
output
horizontal
coefficient
Prior art date
Application number
KR1020000057439A
Other languages
English (en)
Other versions
KR20020025540A (ko
Inventor
박성모
정갑천
Original Assignee
박성모
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박성모 filed Critical 박성모
Priority to KR1020000057439A priority Critical patent/KR100362355B1/ko
Publication of KR20020025540A publication Critical patent/KR20020025540A/ko
Application granted granted Critical
Publication of KR100362355B1 publication Critical patent/KR100362355B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20064Wavelet transform [DWT]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 이산 웨이브렛 변환용 프로세서에 관한 것으로, 웨이브렛 필터 계수에서 저역과 고역의 수직 웨이브렛 필터 계수를 분리하는계수 큐 블록과 이 계수 큐 블록에서 분리된 수직 웨이브렛 필터 계수와 입력 데이터를 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수직상태변수와 덧셈하여 출력하는 덧셈기를 포함하는 수직프로세서 및, 웨이브렛 필터 계수에서 저역과 고역의 수평 웨이브렛 필터 계수를 분리하는 계수 큐 블록과 이 계수 큐 블록에서 분리된 수평 웨이브렛 필터 계수와 상기 수직프로세서로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값을 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수평상태변수와 덧셈하는 덧셈기를 포함하고 이 덧셈기로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값만을 1/2로 다운샘플링하여 출력하는 다운샘플러를 포함하는 수평프로세서로 구성된 것으로, 수직 프로세서와 수평 프로세서에 의해 입력 데이터에 대해 행과 열 방향으로 동시에 연산을 수행함으로써, 연산속도를 고속화하고 메모리의 저장 및 읽기에 소요되는 전달 지연시간을 감소시킬 수 있어 연산 웨이브렛 변환을 실시간으로 처리할 수 있다.

Description

이산 웨이브렛 변환용 프로세서 {Processor for discrete wavelet transform}
본 발명은 이산 웨이브렛 변환용 프로세서에 관한 것으로, 보다 상세하게는 웨이브렛 변환에 소요되는 시간을 단축할 수 있는 이산 웨이브렛 변환용 프로세서에 관한 것이다.
일반적으로, 웨이브렛 변환(Wavelet Transform)은 영상처리(패턴인식, 에지추출), 영상 압축, 신호분석 등에 널리 사용되고 있으며, 특히 영상을 처리하는 데는 이산 웨이브렛 변환(discrete Wavelet Transform)의 실시간 구현이 요구된다.
이산 웨이브렛 변환은 분해(Decomposition)을 위한 필터링과 데시메이션(Decimation)과 합성(Synthsis)을 위한 필터링 및 인터폴레이션(interpolation) 등의 복잡한 연산을 필요로 하기 때문에, 통상의 디지털시그널프로세서(Digital Signal Processor)로는 이산 웨이브렛 변환을 실시간으로 처리하기 곤란하다.
특히, 2차원 웨이브렛 변환의 경우 이러한 종래 디지털시그널프로세서나 종래 여타 구조의 하드웨어는 영상의 입력데이터에 대해 열이나 행의 어느 한 방향으로 연산을 수행한 후 그 결과를 메모리에 저장한 다음 다시 연산 값을 읽어 들여 열이나 행의 다른 방향으로 연산을 수행하는 바, 연산속도가 느릴 뿐만 아니라 메모리에 읽기 쓰기를 반복함으로써 신호의 전달 지연시간이 크게 발생되는 문제점이있었다.
이에 본 발명은 상기한 종래기술의 문제점을 해소하기 위해 안출한 것으로, 연산속도를 고속화하여 2차원 이산 웨이브렛 변환을 실시간으로 처리할 수 있는 이산 웨이브렛 변환용 프로세서를 제공하는 데에 그 목적이 있다.
도 1은 본 발명의 바람직한 실시예에 따른 이산 웨이브렛 변환용 프로세서의 개략적인 블록구성도,
도 2는 도 1에 도시된 수직 프로세서의 개략적인 블록구성도,
도 3은 도 1에 도시된 수평 프로세서의 개략적인 블록구성도,
도 4는 도 1에 도시된 수직 프로세서의 동작과정을 나타낸 플로우챠트,
도 5는 도 1에 도시된 수평 프로세서의 동작과정을 나타낸 플로우챠트,
도 6 내지 도 8은 본 발명의 웨이브렛 변환용 프로세서를 이용하여 구성될 수 있는 시스템의 어레이구조에 대한 여러 다양한 실시예를 예시한 개략도.
<도면의 주요 부분에 대한 부호의 설명>
PM: 웨이브렛 변환용 프로세서모듈 100: 수직프로세서
110, 210: 계수 큐 블록 120, 150, 160, 220, 250, 260: 레지스터
130, 230: 곱셈기 140: FIFO 버퍼
170, 270: 덧셈기 180, 280: 포화로직부
200: 수평프로세서 240: 레지스터 파일 기억부
290: 출력버퍼 300: 다운샘플러
상기 목적을 달성하기 위한 본 발명의 이산 웨이브렛 변환용 프로세서는, 웨이브렛 필터 계수에서 저역과 고역의 수직 웨이브렛 필터 계수를 분리하는 계수 큐 블록과 이 계수 큐 블록에서 분리된 수직 웨이브렛 필터 계수와 입력 데이터를 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수직상태변수와 덧셈하여 출력하는 덧셈기를 포함하는 수직프로세서 및, 웨이브렛 필터 계수에서 저역과 고역의 수평 웨이브렛 필터 계수를 분리하는 계수 큐 블록과 이 계수 큐 블록에서 분리된 수평 웨이브렛 필터 계수와 상기 수직프로세서로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값을 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수평상태변수와 덧셈하는 덧셈기를 포함하고 이 덧셈기로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값만을 1/2로 다운샘플링하여 출력하는 다운샘플러를 포함하는 수평프로세서로 구성된 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 실시예에 따른 이산 웨이브렛 변환용 프로세서의개략적인 블록구성도로서, 동도면을 참조하면 알 수 있듯이, 본 발명의 이산 웨이브렛 변환용 프로세서 모듈(PM)은 영상픽셀값의 열들을 필터링하는 수직 프로세서(100)와 영상픽셀값의 행들을 필터링하는 수평 프로세서(200)로 구성된다.
상기 수직 프로세서(100)는 도 2에 도시된 바와 같이, 계수 큐 블록(110)과 D_in 레지스터(120)와 제1곱셈기(130)와 FIFO버퍼(140)와 제1 및 제2 레지스터(150, 160)와 제1덧셈기(170)와 제1포화로직부(180)를 포함하여 구성된다.
여기서, 상기 계수 큐 블록(110)은 외부의 소정 장치(일예로, 웨이브렛 필터계수가 저장된 기억소자 등)로부터 입력되는 웨이브렛 필터 계수에서 저역과 고역의 수직 웨이브렛 필터 계수(Vcof)를 추출하기 위한 것으로, 한쌍의 입력용 멀티플렉서(Multiplexor; 111, 113)와 저역통과필터계수를 저장하고 있는 쉬프트레지스터(Shift Resistor; 112)와 고역통과필터계수를 저장하고 있는 쉬프트레지스터(114) 및 저역과 고역의 웨이브렛필터를 선택적으로 출력하는 출력용 멀티플렉서(115)로 구성된다.
상기 D_in 레지스터(120)는 외부의 소정 장치(일예로, 비디오카메라 등의 영상입력장치)로부터 입력되는 영상 픽셀값을 일시적으로 저장한다.
상기 제1곱셈기(130)는 계수 큐 블록(110)으로부터 출력되는 웨이브렛필터계수와 D_in 레지스터(120)로부터 입력되는 영상 픽셀값을 곱셈하여 출력하며, 상기 FIFO버퍼(First In First Out Buffer; 140)는 인접된 프로세서로부터 전달되거나 자체의 제1포화로직부(180)로부터 피드백(Peed Back)되는 수직상태변수를 입력받아 일시 저장한다.
상기 제1 및 제2 레지스터(150, 160)는 각각 제1곱셈기(130)로부터 출력된 데이터값과 FIFO버퍼(140)를 통해 입력된 해당열, 이전행의 수직상태변수를 일시 저장하였다가 제1덧셈기(170)로 입력하며, 상기 제1덧셈기(170)는 상기 제1곱셈기(130)로부터 출력된 데이터값과 상기 FIFO버퍼(140)를 통해 입력된 수직상태변수를 덧셈하여 출력한다.
상기 제1포화로직부(Saturation Logic Part; 180)는 상기 제1덧셈기(170)에 의해 덧셈된 결과가 소정의 지정된 비트 이상으로 오버플로우(Over Flow)되는 경우에 덧셈결과가 양수(+)이면 지정된 비트의 최대값을 출력하고, 덧셈결과가 음수(-)이면 지정된 비트의 최소값을 임의로 출력한다.
상기 수평 프로세서(200)는 도 3에 도시된 바와 같이, 계수 큐 블록(210)과 Yo 레지스터(220)와 제2곱셈기(230)와 레지스터파일(240)과 제3 및 제4 레지스터(250, 260)와 제2덧셈기(270)와 제2포화로직부(280)와 출력버퍼(290)와 다운샘플러(300)를 포함하여 구성된다.
여기서, 상기 계수 큐 블록(210)은 외부의 소정 장치(일예로, 웨이블렉 필터계수가 저장된 기억소자 등)로부터 입력되는 웨이브렛 필터 계수에서 저역과 고역의 수평 웨이브렛필터계수(Hcof)를 추출하기 위한 것으로, 한쌍의 입력용 멀티플렉서(Multiplexor; 211, 213)와 저역통과필터계수를 저장하고 있는 쉬프트레지스터(212)와 고역통과필터계수를 저장하고 있는 쉬프트레지스터(214) 및 저역과 고역의 웨이브렛필터계수를 선택적으로 출력하는 출력용 멀티플렉서(215)로 구성된다.
상기 Yo 레지스터(220)는 수직프로세서(100)로부터 출력된 데이터 중 영상픽셀값의 각 픽셀별로 계산이 완료된 결과값인 "Yo"의 값을 입력받아 일시적으로 저장한다.
상기 제2곱셈기(230)는 계수 큐 블록(210)으로부터 출력된 수평웨이브렛필터계수(Hcof)와 Yo 레지스터(220)를 통해 입력되는 수직프로세서(100)의 연산결과값 "Yo"를 곱셈하여 출력하며, 상기 레지스터파일기억부(240)는 제2포화로직부(280)로부터 출력되는 수평상태변수를 저장한다.
상기 제3 및 제4 레지스터(250, 260)는 각각 제2곱셈기(230)로부터 출력된 데이터값과 레지스터 파일기억부(240)로부터 출력된 해당행, 이전열의 수평상태변수를 일시 저장하였다가 제2덧셈기(270)로 입력하며, 상기 제2덧셈기(270)는 상기 제2곱셈기(230)로부터 출력된 데이터값과 상기 레지스터 파일기억부(240)로부터 출력된 수평상태변수를 덧셈하여 출력한다.
상기 제2포화로직부(280)는 상기 제2덧셈기(270)에 의해 덧셈된 결과가 소정의 지정된 비트 이상으로 오버플로우되는 경우에 덧셈결과가 양수(+)이면 지정된 비트의 최대값을 출력하고, 덧셈결과가 음수(-)이면 지정된 비트의 최소값을 임의로 출력한다.
상기 출력버퍼(290; out_buff)는 제2포화로직부(280)로부터 출력되는 연산결과값 "Y"를 일시 저장하고, 상기 다운샘플러(Down Sampler; 300)는 상기 출력버퍼(290)로부터 출력되는 연산결과값 "Y"에 대해 2개의 데이터 중 1개의 데이터만을 교번적으로 선택 출력함으로써, 열방향으로의 다운샘플링을 수행한다.
이제 상기와 같이 구성된 본 발명의 동작예를 첨부된 플로우챠트를 참조하여 설명하기로 한다.
먼저, 도 4를 참조하여 수직 프로세서(100)의 동작과정을 설명하기로 한다.
수직프로세서(100)는 초기상태에서 외부의 소정 장치(일예로, 웨이브렛필터계수가 저장된 기억소자와 이를 액세스하는 프로세서 등)로부터 웨이브렛필터계수를 로드하여 계수 큐 블록(110)으로 입력한다(S10).
상기 계수 큐 블록(110)으로 입력된 웨이브렛필터계수는 계수 큐 블록(110)에서 저역과 고역의 수직 웨이블렉필터계수(Vcof)로 분리되는데, 계수 큐 블록(110)의 상세한 동작과정은 다음과 같다.
계수 큐 블록(110)으로 입력된 웨이브렛필터계수는 각각 멀티플렉서(111, 113)을 매개로 저역통과필터계수가 저장된 쉬프트레지스터(112)와 고역통과필터계수가 저장된 쉬프트레지스터(114)로 입력된다.
상기 웨이브렛필터계수는 각각 쉬프트레지스터(112)와 쉬프트레지스터(114)를 거치면서 저역의 웨이브렛필터계수와 고역의 웨이브렛필터계수로 분리된다. 이때 분리된 저역의 웨이브렛필터계수와 고역의 웨이브렛필터계수는 멀티플렉서(115)를 통해 선택적으로 출력된다(Vcof).
다음, 수직프로세서(100)는 외부의 소정 장치(일예로, 비디오카메라 등의 영상입력장치)로부터 입력되는 데이터 즉, 영상픽셀값의 유용성을 판단하여(S20), 판단결과 입력된 영상픽셀값이 유용하면 D_in 레지스터(120)로 영상픽셀값이 입력되도록 한다(S30). 참고적으로, 수직프로세서(100)는 입력되는 데이터에 값(또는내용)이 포함되어 있는 지의 여부에 의해 유용성을 판단한다.
이와 동시에 수직프로세서(100)는 임의의 변수 "i"를 "1"로 설정한 다음(S40), 계수 큐 블록(110)으로부터 출력된 수직 웨이브렛 필터 계수(Vcof)와 D_in 레지스터(120)를 통해 입력된 영상픽셀값을 제1곱셈기(130)를 이용해 곱셈한 다음 이를 제2레지스터(160, reg2)로 입력한다(S50).
다음, 수직프로세서(100)는 인접위치에 연결된 다른 프로세서모듈(PM)로부터 입력되거나 자체의 제1포화로직부(180)로부터 출력되는 해당열, 이전행의 수직상태변수를 FIFO버퍼(140)를 통해 입력받아 이를 제1레지스터(150)로 입력한다(S60).
참고적으로, 프로세서모듈(PM) 1개만으로 구성된 어레이구조에서는 자체의 제1포화로직부(180)로부터 출력되는 수직상태변수가 FIFO버퍼(140)로 입력되므로, 초기 연산시점에서는 수직상태변수의 값이 제로 "0"이다.
수직프로세서(100)는 제1레지스터(150)에 입력된 수직상태변수와 제2레지스터(160)에 입력된 데이터값을 제1덧셈기(170)를 이용해 덧셈한 다음 이를 제1포화로직부(180)로 입력한다(S70).
여기서, 상기 제1곱셈기(130)와 제1덧셈기(170)에 의해 수행되는 연산은 하기의 수학식 1에 도시된 바와 같으며, 각 싸이클(cycle)마다 하기의 수학식 1의 각각의 열이 순차적으로 연산된다.
상기 수학식 1에서 "yo"는 입력 영상픽셀에 대한 수직방향의 연산결과값이고, " v"는 수직웨이브렛필터계수이며, "q2,N2 -1"는 수직상태변수이고, "x"는 입력 영상픽셀값이며, "n1"은 입력 영상픽셀값의 행을, "n2"는 입력 영상픽셀값의 열을 나타낸다.
제1포화로직부(180)에서는 오버플로우시의 출력오류를 방지하기 위해 상기 제1덧셈기(170)에 의해 덧셈된 결과가 소정의 지정된 비트 이상으로 오버플로우되면 덧셈결과가 양수(+)일 경우 지정된 비트의 최대값을, 음수(-)일 경우 지정된 비트의 최소값을 임의로 출력한다.
다음, 수직 프로세서(100)는 상기 제1포화로직부(180)로부터 출력되는 데이터가 영상픽셀값에 대해 각 픽셀별로 계산이 완료된 결과값인 "Yo"인지를 판단하여(S80), 판단결과 상기 제1포화로직부(180)로부터 출력되는 데이터가 연산결과값인 "Yo"이면 이를 수평프로세서(200)로 출력하고(S90), 상기 제1포화로직부(180)로부터 출력되는 데이터가 연산결과값인 "Yo"가 아니면 이는 수직상태변수(q2,1(n1,n2), q2,2(n1,n2) …q2,N2-1(n1,n2))이므로 이를 출력한다(S100).
상기 제1포화로직부(180)로부터 출력되는 수직상태변수는 프로세서의 어레이구성에 따라 자체 FIFO버퍼(140)로 피드백되어 입력되거나(단일 프로세서모듈로 구성된 어레이구조의 경우), 인접한 다른 프로세서모듈(PM)의 수직프로세서로 입력된다(복수의 프로세서 모듈로 구성된 어레이구조의 경우).
다음, 수직 프로세서(100)는 변수 "i"가 "N2"인지를 판단하여(S110), 판단결과 "i"가 "N2"이면 입력데이터의 유용성을 판단하는 상기 스텝(S20)으로 되돌아간다. 여기서, "N2"은 수직웨이브렛필터계수(Vcof)의 전체 개수를 나타내는 것으로, 변수 "i"가 "N2"이면 현재의 영상픽셀값에 대한 연산이 완료된 것이기 때문에, 다음 영상픽셀값의 연산을 수행하기 위해 상기 스텝(S20)으로 되돌아가는 것이다.
반면, 상기 스텝에서 "i"가 "N2"가 아닌 경우 현재의 영상픽셀값에 대한 연산이 완료되지 않은 상태이기 때문에, 수직프로세서(100)는 수직 웨이브렛 필터 계수(Vcof)를 한단계 쉬프트시키고(S120), 변수 "i"에 "1"을 가산한 다음(i=i+1)(S130), 입력데이터의 유용성을 판단하는 상기 스텝(S20)으로 되돌아간다.
다음으로는, 수평프로세서(200)의 동작과정에 대해 도 5의 플로우챠트를 참조하여 설명하기로 한다.
수평 프로세서(200)는 초기상태에서 외부의 소정 장치(일예로, 웨이브렛필터계수가 저장된 기억소자와 이를 액세스하는 프로세서 등)로부터 웨이브렛필터계수를 로드하여 계수 큐 블록(210)으로 입력한다(S210).
상기 계수 큐 블록(210)으로 입력된 웨이브렛필터계수는 계수 큐 블록(210)에서 저역과 고역의 수평 웨이브렛필터계수(hcof)로 분리되는데, 계수 큐 블록(210)의 상세한 동작과정은 다음과 같다.
계수 큐 블록(210)으로 입력된 웨이브렛필터계수는 각각 멀티플렉서(211, 213)을 매개로 저역통과필터계수가 저장된 쉬프트레지스터(212)와 고역통과필터계수가 저장된 쉬프트레지스터(214)로 입력된다.
상기 웨이브렛필터계수는 각각 쉬프트레지스터(212)와 쉬프트레지스터(214)를 거치면서 저역의 웨이브렛필터계수와 고역의 웨이브렛필터계수로 분리된다. 이때 분리된 저역의 웨이브렛필터계수와 고역의 웨이브렛필터계수는 멀티플렉서(215)를 통해 선택적으로 출력된다(Hcof).
다음, 수평프로세서(200)는 수직프로세서(100)로부터 출력되는 데이터값이 수직프로세서(100)의 연산결과값인 "Yo"인지를 판단하여(S220), 판단결과 수직프로세서(100)로부터 출력된 데이터값이 연산결과값인 "Yo"이면 상기 수직프로세서(100)로부터 출력된 연산결과값인 "Yo"이 Yo레지스터(220)로 입력되도록 한다(S230).
이와 동시에 수평프로세서(200)는 임의의 변수 "j"를 "1"로 설정한 다음(S240), 계수 큐 블록(210)으로부터 출력된 수평 웨이브렛 필터 계수(Hcof)와Yo레지스터(220)를 통해 입력된 수직프로세서(100)의 연산결과값인 "Yo"를 제2곱셈기(230)를 이용해 곱셈한 다음 이를 제4레지스터(260, reg4)로 입력한다(S250).
다음, 수평프로세서(200)는 레지스터 파일기억부(240)에 저장된 해당행, 이전열의 수평상태변수값을 제3레지스터(250, reg3)로 입력하며(S260), 제2덧셈기(270)를 이용해 제3레지스터(250)에 입력된 수평상태변수와 제4레지스터(260)에 입력된 데이터를 덧셈한 후 이를 제2포화로직부(280)로 입력한다(S270).
여기서, 상기 제2곱셈기(230)와 제2덧셈기(270)에 의해 수행되는 연산은 하기의 수학식 2에 도시된 바와 같으며, 각 싸이클(cycle)마다 하기의 수학식 2의 각각의 열이 순차적으로 연산된다.
상기 수학식 2에서 "yo"는 입력 영상픽셀에 대한 수직방향의 연산결과값이고,'y"는 입력 영상픽셀에 대한 수평방향의 연산결과값이며, "h"는 수평웨이브렛필터계수이며, "q1,N1 -1}"는 수평상태변수이고, "n1"은 입력 영상픽셀값의 행을, "n2"는 입력 영상픽셀값의 열을 나타낸다.
제2포화로직부(280)에서는 오버플로우시의 출력오류를 방지하기 위해 상기 제2덧셈기(270)에 의해 덧셈된 결과가 소정의 지정된 비트 이상으로 오버플로우되면 덧셈결과가 양수(+)일 경우 지정된 비트의 최대값을, 음수(-)일 경우 지정된 비트의 최소값을 임의로 출력한다.
수평 프로세서(200)는 상기 제2포화로직부(280)로부터 출력되는 데이터가 계산이 완료된 결과값인 "Y"인지를 판단하여(S280), 판단결과 상기 제2포화로직부(280)로부터 출력되는 데이터가 연산결과값인 "Y"이면 이 연산결과값 "Y"를 출력버퍼(290)에 저장하고(S290), 다운샘플러(300)을 통해 연산결과값 "Y"에 대해 2개중 1개만을 출력하는 1/2의 다운샘플링을 한다(S300). 반면, 상기 제2포화로직부(280)로부터 출력되는 데이터가 연산결과값인 "Y"가 아닌 경우 이는 수평상태변수값(q1,1(n1,n2), q1,2(n1,n2) …q2,N1-1(n1,n2))이므로 이를 수평프로세서내 레지스터 파일 기억부(240)로 출력한다(S310).
다음, 수평 프로세서(200)는 변수 "j"가 "N1"인지를 판단하여(S320), 판단결과 "j"가 "N1"이면 수직프로세서(100)의 출력을 판단하는 상기 스텝(S220)으로 되돌아간다. 여기서, "N1"은 수평웨이브렛필터계수(Hcof)의 전체 개수를 나타내는 것으로, 변수 "j"가 "N1"이면 현재의 영상픽셀값에 대한 연산이 완료된 것이기 때문에, 다음 영상픽셀값의 연산을 수행하기 위해 스텝(S220)으로 되돌아가는 것이다.
반면, 상기 스텝에서 "j"가 "N1"이 아닌 경우 현재의 영상픽셀값에 대한 연산이 완료되지 않은 상태이기 때문에, 수평프로세서(200)는 수평 웨이브렛 필터 계수(Hcof)를 한단계 쉬프트시킨 다음(S330), 변수 "j"에 "1"을 가산한 다음(j=j+1)(S340), 수직프로세서(100)을 출력을 판단하는 상기 스텝(S220)으로 되돌아간다.
이상에서 설명한 바와 같이 수직프로세서(100)와 수평프로세서(200)에 의해 수행되는 연산과정을 Daubieches(저역-9, 고역-7) 웨이브렛 필터 계수 이용시 요약하면 하기의 표1과 같다.
[표 1]
상기 표1에서, "G"는 저역 통과 필터계수를 "H"는 고역 통과 필터계수를 나타낸다. 상기 표1을 참조하면 알 수 있듯이, 본 발명의 이산 웨이브렛 변환용 프로세서 모듈(PM)은 모든 상태변수들과 출력(LL, LH, HL, HH)들을 계산하기 위해 한 픽셀당 총 21싸이클이 소요된다.
상기한 바와 같은 본 발명의 프로세서모듈(PM)을 다수개 사용하여 2차원 웨이브렛 변환을 위한 2차원 어레이 형태로 구성할 수 있는데, 이에 대한 대략적인구조는 도 6에 도시된 바와 같다.
도 6은 m행의 1차원 어레이 모듈이 2차원으로 결합된 형태인데, m은 웨이브렛 변환에 요구되는 분해 단 수를 나타낸다. 여기서, 각 프로세서모듈은(PM)은 기능적으로 동일한 모듈이며, 각 행의 1차원 어레이 모듈은 2차원 필터링 기능을 수행한다.
각 행의 출력은 다음 행의 입력이 되는데, 행방향으로의 다운샘플링을 위해 현재의 행의 프로세서 모듈 수에 비해 다음 행의 프로세서 모듈 수는 절반으로 감소하며, 현재 행 중 절반의 모듈만 다음 행의 프로세서 모듈과 연결되어 데이터를 전달한다. 현재 행의 모듈로부터 데이터가 출력되지 않으면 다음 행의 모듈은 대기하고 있다가 현재 행의 모듈로부터 데이터가 출력되는 즉시 동작한다.
이와 같은 어레이구조에 따르면, 프로세서 모듈 내는 동기적으로 동작하되, 프로세서 모듈과 프로세서 모듈간, 프로세서 모듈과 입출력 사이는 비동기적으로 동작되므로, 전체적으로 전역 클럭을 사용하지 않게 되어 프로세서 모듈 간의 제어가 간단하여 이를 초고밀도집적회로로 구현하기에 적합하며 매우 효율적으로 동작한다.
여기서, 각 프로세서들은 인접한 프로세서와 데이터를 주고 받기 위해 핸드 쉐이킹(Hand Shaking) 제어회로를 갖추어야하며, FIFO버퍼를 사용함에 의해 동기화 요구를 완곡하게 할 수 있다.
상기 도 6에 도시된 바와 같은 2차원 어레이 구성은 고속을 요하는 대규모 시스템에 적합한 것으로, 전체 하드웨어의 면적이 크고 전력소모가 많음으로 인해휴대형 장치 등 소형 시스템에는 적용하기 곤란하다.
본 발명의 프로세서를 소형 시스템에 적용하고자 할 경우에는 도 7 또는 도 8에 도시된 바와 같이, 프로세서 모듈(PM)의 출력을 다시 입력으로 이용함으로써 하나 또는 2개의 프로세서 모듈(PM)만으로 프로세서 어레이를 구성할 수 있는데, 이로 인해 처리 속도는 감소하나 전체 하드웨어의 면적을 축소시키고 소비전력을 절감시킬 수 있다.
상술한 바와 같이 본 발명은, 수직 프로세서와 수평 프로세서에 의해 영상의 입력 데이터에 대해 행과 열 방향으로 동시에 연산을 수행함으로써, 연산속도를 고속화하고 메모리의 저장 및 읽기에 소요되는 전달 지연시간을 감소시킬 수 있어 2차원 이산 웨이브렛 변환을 실시간으로 처리할 수 있는 효과가 있다.
또한, 본 발명의 프로세서는, 단일 또는 복수개의 프로세서를 연결하여 1차원 또는 2차원의 어레이로 구성할 수 있는 데, 이 경우 각각의 블록별로 데이터를 플로우하는 방식으로 데이터를 처리하여 프로세서 간의 데이터 통신에 대한 요구량을 감소시키고 전역 클럭을 사용하지 않아 클럭이 동기화될 때 전력 소비가 피크치로 상승하는 문제점을 방지할 수 있다.

Claims (3)

  1. 이산 웨이브렛 변환용 프로세서에 있어서,
    웨이브렛 필터 계수에서 저역과 고역의 수직 웨이브렛 필터 계수를 분리하는계수 큐 블록과 이 계수 큐 블록에서 분리된 수직 웨이브렛 필터 계수와 입력 데이터를 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수직상태변수와 덧셈하여 출력하는 덧셈기를 포함하는 수직프로세서 및,
    웨이브렛 필터 계수에서 저역과 고역의 수평 웨이브렛 필터 계수를 분리하는계수 큐 블록과 이 계수 큐 블록에서 분리된 수평 웨이브렛 필터 계수와 상기 수직프로세서로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값을 곱셈하는 곱셈기와 이 곱셈기에서 곱셈된 결과를 수평상태변수와 덧셈하는 덧셈기를 포함하고 이 덧셈기로부터 출력되는 데이터 중 하나의 입력 데이터 값에 대해 연산이 완료된 연산결과값만을 1/2로 다운샘플링하여 출력하는 다운샘플러를 포함하는 수평프로세서로 구성된 것을 특징으로 하는 이산 웨이브렛 변환용 프로세서.
  2. 제 1 항에 있어서, 상기 수직 프로세서는, 시스템의 어레이구성에 따라 단일의 프로세서로 데이터를 처리하는 구성인 경우에는 수직 프로세서 자체의 출력단으로부터 출력되는 수직 상태 변수값을 피드백받아 이를 덧셈하고, 복수의 프로세서가 연결된 구성인 경우에는 인접된 다른 수직 프로세서로부터 출력된 수직 상태 변수를 입력받아 이를 덧셈하는 것을 특징으로 하는 이산 웨이브렛 변환용 프로세서.
  3. 제 1 항에 있어서, 상기 수직 프로세서 및 수평 프로세서는, 각각의 덧셈기로부터 출력되는 출력데이터가 오버플로우되는 경우에 덧셈결과가 양수(+)일 경우에는 지정된 비트의 최대값을 출력하고, 음수(-)일 경우에는 지정된 비트의 최소값을 임의로 출력하는 포화로직부를 각각 더 포함하여 구성된 것을 특징으로 하는 이산 웨이브렛 변환용 프로세서.
KR1020000057439A 2000-09-29 2000-09-29 이산 웨이브렛 변환용 프로세서 KR100362355B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000057439A KR100362355B1 (ko) 2000-09-29 2000-09-29 이산 웨이브렛 변환용 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000057439A KR100362355B1 (ko) 2000-09-29 2000-09-29 이산 웨이브렛 변환용 프로세서

Publications (2)

Publication Number Publication Date
KR20020025540A KR20020025540A (ko) 2002-04-04
KR100362355B1 true KR100362355B1 (ko) 2002-11-23

Family

ID=19691144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000057439A KR100362355B1 (ko) 2000-09-29 2000-09-29 이산 웨이브렛 변환용 프로세서

Country Status (1)

Country Link
KR (1) KR100362355B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771153B1 (ko) * 2006-05-11 2007-10-29 엠텍비젼 주식회사 이산 웨이블릿 변환 장치 및 그 방법
KR100769109B1 (ko) * 2006-08-08 2007-10-22 충북대학교 산학협력단 필터를 사용한 효율적인 데이터 압축 방법
CN111240232B (zh) * 2019-03-13 2020-11-13 盐城智享科技咨询服务有限公司 电子设备即时微控终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110561A (ja) * 1997-09-30 1999-04-23 Advantest Corp 画像情報処理装置
JP2000059781A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd ウェーブレット変換装置
US6101277A (en) * 1994-10-28 2000-08-08 Oki Electric Industry Co., Ltd. Image encoding and decoding method and apparatus using edge synthesis and inverse wavelet transform
KR20000056311A (ko) * 1999-02-19 2000-09-15 박래홍 2차원 이산 웨이브렛 변환을 위한 초고밀도 집적회로 구조

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101277A (en) * 1994-10-28 2000-08-08 Oki Electric Industry Co., Ltd. Image encoding and decoding method and apparatus using edge synthesis and inverse wavelet transform
JPH11110561A (ja) * 1997-09-30 1999-04-23 Advantest Corp 画像情報処理装置
JP2000059781A (ja) * 1998-08-07 2000-02-25 Ricoh Co Ltd ウェーブレット変換装置
KR20000056311A (ko) * 1999-02-19 2000-09-15 박래홍 2차원 이산 웨이브렛 변환을 위한 초고밀도 집적회로 구조

Also Published As

Publication number Publication date
KR20020025540A (ko) 2002-04-04

Similar Documents

Publication Publication Date Title
US6047303A (en) Systolic architecture for computing an inverse discrete wavelet transforms
US7409417B2 (en) Polyphase filter with optimized silicon area
US6499045B1 (en) Implementation of a two-dimensional wavelet transform
JPH01237765A (ja) ディジタル信号処理プロセッサおよびディシタル信号処理プロセッサシステム
US5610849A (en) Real time two-dimensional discrete cosine transform/inverse discrete cosine transform circuit
Liu et al. Design and implementation of an RNS-based 2-D DWT processor
US20080114821A1 (en) Decimation filter
US6684235B1 (en) One-dimensional wavelet system and method
US8751553B2 (en) Filtering device with a hierarchical structure, and reconfigurable filtering device
KR100362355B1 (ko) 이산 웨이브렛 변환용 프로세서
Basheer et al. Design and FPGA implementation of a lifting scheme 2D DWT architecture
Fatemi et al. Pipeline, memory-efficient and programmable architecture for 2D discrete wavelet transform using lifting scheme
JP2513218B2 (ja) Firデイジタルフイルタ
Safari et al. Vlsi architecture of multiplier-less dwt image processor
Madanayake et al. A review of 2D/3D IIR plane-wave real-time digital filter circuits
Wu et al. An efficient architecture for two-dimensional inverse discrete wavelet transform
JP2004297314A (ja) 画素密度変換装置
KR100300338B1 (ko) 2차원 이산 웨이브렛 변환을 위한 초고밀도 집적회로 구조
Ruiz et al. Memory efficient programmable processor chip for inverse Haar transform
CN116108902B (zh) 采样操作实现系统、方法、电子设备及存储介质
Aroutchelvame et al. An efficient architecture for lifting-based forward and inverse discrete wavelet transform
Zhang et al. An efficient VLSI architecture for discrete wavelet transform based on the Daubechies architecture
Zhang et al. An efficient buffer-based architecture for on-line computation of 1-D discrete wavelet transform
Zhang et al. High speed architectures for two-dimensional state-space recursive filtering
Chuang et al. A high speed shift-invariant wavelet transform chip for video compression

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: 20081111

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee