KR20080028608A - 리프팅 이산 웨이블릿 변환 장치 및 시스템 - Google Patents

리프팅 이산 웨이블릿 변환 장치 및 시스템 Download PDF

Info

Publication number
KR20080028608A
KR20080028608A KR1020060094107A KR20060094107A KR20080028608A KR 20080028608 A KR20080028608 A KR 20080028608A KR 1020060094107 A KR1020060094107 A KR 1020060094107A KR 20060094107 A KR20060094107 A KR 20060094107A KR 20080028608 A KR20080028608 A KR 20080028608A
Authority
KR
South Korea
Prior art keywords
register
data
input
discrete wavelet
lifting
Prior art date
Application number
KR1020060094107A
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 KR1020060094107A priority Critical patent/KR20080028608A/ko
Publication of KR20080028608A publication Critical patent/KR20080028608A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/10Details of semiconductor or other solid state devices to be connected
    • H01L2924/11Device type
    • H01L2924/14Integrated circuits
    • H01L2924/143Digital devices
    • H01L2924/1434Memory
    • H01L2924/1435Random access memory [RAM]
    • H01L2924/1436Dynamic random-access memory [DRAM]
    • H01L2924/14361Synchronous dynamic random access memory [SDRAM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 리프팅(Lifting) 기법의 동일한 연산구조에서 나타나는 단위연산을 하드웨어에 적합한 리프팅 구조를 통해 효율적으로 수행할 수 있는 리프팅 이산 웨이블릿 변환 장치와, 다양한 형태로 입력되는 데이터를 이러한 장치를 사용하여 처리할 수 있도록 하는 시스템에 관한 것이다.
리프팅, 이산 웨이블릿 변환, DWT, 단위연산, 클럭

Description

리프팅 이산 웨이블릿 변환 장치 및 시스템{ Apparatus and System for Lifting Discrete Wavelet Transform }
도 1은 이산 웨이블릿 변환 방식의 개요,
도 2는 이산 웨이블릿 변환에 따라 분해 과정이 수행되는 개요,
도 3은 종래의 리프팅 과정에 관한 개요,
도 4는 재구성된 리프팅 연산구조,
도 5는 리프팅 연산구조의 연산 단위,
도 6은 본 발명에 따른 리프팅 이산 웨이블릿 변환 장치의 일 실시예,
도 7은 덧셈처리부를 구성하는 실시예,
도 8은 본 발명에 따른 리프팅 연산 단위의 타이밍 스케쥴,
도 9는 메모리 맵의 일 예,
도 10은 본 발명에 관한 Pseudo Code의 예,
도 11은 본 발명에 따른 리프팅 이산 웨이블릿 변환 시스템의 실시예이다.
* 도면의 주요부분에 대한 부호의 설명
12-1,14-1,14-3: 저역통과필터 12-2,14-2,14-4: 고역통과필터
31: 분할과정 32: 예측과정
33: 갱신과정
61,62-1~62-3,63,64,64-1,65,66: 레지스터
67: 곱셈기 68,69-3,69-4: 선택부
69: 덧셈처리부 69-1,69-2,69-5: 덧셈기
90: 리프팅 이산 웨이블릿 변환 시스템
91: A/D 변환부 92: SDRAM 제어부
93: SDRAM 버퍼부 94: 프로그래밍 레지스터
95: 제어부 96: 버스 인터페이스부
97: 리프팅 이산 웨이블릿 변환 장치 100: SDRAM
본 발명은 리프팅 이산 웨이블릿 변환 장치 및 시스템에 관한 것으로서, 특히 하드웨어(H/W)화에 적합한 리프팅(Lifting) 구조를 통해 리프팅 기법의 동일한 연산구조에서 나타나는 단위연산을 효율적으로 수행할 수 있는 장치와, 다양한 형태로 입력되는 데이터를 이러한 장치를 사용하여 처리할 수 있도록 하는 시스템에 관한 것이다.
영상 정보를 효율적으로 처리하고자 하는 대표적인 기술이 JPEG(Joint Photographic Experts Group)과 MPEG(Moving Picture Experts Group) 및 H.26X의 표준들이다.
그러나 JPEG 또는 MPEG은 이산 코사인 변환(Discrete Cosine Transform,DCT)을 기반으로 하는 기술로서 여러 각도의 기술적 진보에도 불구하고 블록효과라는 필연적인 단점을 갖고 있다.
이를 보완하고 대체하기 위한 기술이 최근 연구되고 있는데, 대표적인 것이 웨이블릿(Wavelet)을 기반으로 하는 영상처리 방법이다. 이산 웨이블릿 변환(Discrete Wavelet Transform, DWT)은 DCT와는 다르게 블록효과를 제거할 수 있을 뿐 아니라 전체영상을 대상으로 인간의 시각에 따른 처리가 가능하여 JPEG2000으로 표준화되었다. JPEG2000의 저변 확대와 함께 2D DWT에 대한 연구 및 개발도 활발히 진행되고 있다.
도 1을 참조하여, 웨이블릿 변환 방식을 간략히 설명하자면, 웨이블릿 변환은 입력되는 데이터(이미지, 비디오 프레임 등)를 계층적인 서브밴드로 분해하는 과정이다. 여기에는 수평, 수직, 대각 위치에 세 가지의 고주파 서브밴드가 존재한다. 고주파 서브밴드는 'LH','HL','HH'로 표기하는데, 이는 각각 수평방향 고주파, 수직방향 고주파, 그리고 수평 및 수직방향 고주파 서브밴드를 의미한다. 그리고, 수평 및 수직 방향 모두에 대하여 저주파인 저주파 서브밴드는 'LL'이라고 표기한다. 또한, 저주파 서브밴드는 반복적으로 더 분해될 수 있으며 웨이블릿 분해 레벨은 괄호 안의 숫자로 표시할 수 있다. 도면에서는 LL(1)이 다시 한번 분해되어 LL(2), LH(2), HL(2), HH(2)로 된 상태가 나타나 있다.
기본적인 웨이블릿 변환 방식에서 사용되는 웨이블릿 필터의 종류에는 Haar 필터, (5,3) 필터, (9,7) 필터 등 여러 가지가 있다.
Haar 필터는 인접한 두 개의 데이터를 하나의 저주파 데이터와 하나의 고주파 데이터로 분해하는 방식을 이용한다. (5,3) 필터는 인접한 5개의 데이터를 참조하여 저주파 데이터를 생성하고, 인접한 3개의 데이터를 참조하여 고주파 데이터를 생성한다. 마찬가지로, (9,7) 필터는 인접한 9개의 데이터를 참조하여 저주파 데이터를 생성하고, 인접한 7개의 데이터를 참조하여 고주파 데이터를 생성한다.
도 2를 참조하여 분해 과정이 수행되는 구체적 과정을 살펴보자면, 웨이블릿 필터는 저역 통과 필터와 고역 통과 필터를 포함한다. 저역 통과 필터와 고역 통과 필터의 종류에 따라, Haar 필터, (5,3) 필터, (9,7) 필터 등으로 구분된다. 웨이블릿 변환을 사용한다고 하더라도 어떠한 웨이블릿 필터를 사용하는지에 따라서 그 코딩 특성 및 화질이 달라질 수 있다.
입력 이미지(11)가 저역 통과 필터(12-1)를 통과하면 좌우 폭 또는 상하 폭이 1/2로 축소된 저주파 이미지 L(1)(13-1)이 생성되고, 고역 통과 필터(12-2)를 통과하면 좌우 폭 또는 상하 폭이 1/2로 축소된 고주파 이미지 H(1)(13-2)이 생성된다. 그리고, 1/2로 축소된 저주파 이미지(13-1)와 고주파 이미지(13-2)에 대하여 각각 다시 저역 통과 필터(14-1,14-3)와 고역 통과 필터(14-2,14-4)를 통과시키면, LL(1)(15-1), LH(1)(15-2), HL(1)(15-3), HH(1)(15-4)의 4 가지 서브밴드 이미지가 생성된다. 또한, 위에서 설명한 바와 같이 서브밴드 이미지 중 저주파 이미지 LL(1)을 같은 방법에 의하여 다시 4개의 하위 서브밴드 이미지 LL(2), LH(2), HL(2), HH(2)로 분할할 수 있다. 이와 같이, 2D 웨이블릿 변환을 통하여 서브밴드를 생성하는 과정 자체는 여러 가지 웨이블릿 필터에 있어서 공통적이다.
한편, 최근에는 컨벌루션(Convolution) 방식에 비해서 우수한 성능을 보이는 리프팅(Lifting) 방식의 DWT 변환이 주로 연구되고 있다.
리프팅 기법은 기본적인 웨이블릿 변환(컨벌루션 방식)을 이용한 필터링 기법에 비해서 메모리량과 메모리에 대한 참조 횟수가 적고 정변환과 역변환이 동일한 구조로 이루어진다는 장점을 가지고 있다. 대표적으로는 연산의 효율성을 위해 입력 영상을 블록으로 구분하여 처리하는 방식과 (5,3) 필터를 이용하여 데이터를 인터리빙하는 구조들이 있다.
또한 EZW(Embedded Zerotree Wavelet) 알고리즘 기반의 양자화 방식에 적합한 리프팅 구조와 예측(Predict)과 갱신(Update)의 과정을 처리하는 단위 동작을 전체로 확장하는 구조들 역시 개발 되었다. JPEG2000에서 규정하고 있는 여러 종류의 필터에 대해서 적용 가능하도록 확장성을 가진 연산 단위와 이들에 의한 리프팅 구조도 많이 사용되고 있다.
도 3을 참조하여 리프팅 과정을 설명하자면, 리프팅 과정은 분할과정(Split,31), 예측과정(Predict,32), 갱신과정(Update,33)의 세 가지 과정으로 수행된다.
분할과정(31)에서는 입력신호(X)가 짝수 샘플(Xeven)과 홀수 샘플(Xodd)로 분할되고, 예측과정(32)에서는 짝수 샘플(Xeven)이 홀수 샘플(Xodd)을 예측하기 위해 사용되며, 홀수 샘플(Xodd)과 예측 값들 사이의 차를 계산하여 고주파 계수를 계산한다. 또한, 갱신과정(33)에서는 예측과정(32)에서 제공되는 고주파 계수(d)를 이용하여 저주파 계수(s)를 계산한다.
JPEG2000에서 사용하는 쌍직교(Biorthogonal) (9,7)/(5,3) 필터에 대한 리프팅 이산 웨이브렛 변환 계산은 다음의 수학식 1과 같이 나타낼 수 있다.
d0(i)=X(2i+1), s0(i)=X(2i)
d1(i)=d0(i)+α( s0(i)+s0(i+1) ), s1(i)=s0(i)+β( d1(i-1)+d1(i) )
d2(i)=d1(i)+γ( s1(i)+s1(i+1) ), s2(i)=s1(i)+δ( d2(i-1)+d2(i) )
H(i)=d(i)=d1(i), L(i)=s(i)=s1(i) for (5,3) filter
H(i)=(1/ζ)d2(i), L(i)=ζs2(i) for (9,7) filter
α = -0.5, β= 0.25 for (5,3) filter
α = -1.586134342, β = -0.0529811854,
γ = 0.8829110762, δ=0.4435068522, ζ=1.149604398 for (9,7)filter
이상의 수학식 1에서, X(n)는 입력 시퀀스(Sequence)를 나타내며, N개의 입력 시퀀스에 대해 n=0,1,2,...N 이고, i의 경우는 i=0,1,2,....N/2 이다. d(i)는 예측과정(Predict)에 의한 고주파 결과이며, s(i)는 갱신과정(Update)에 의한 저주파 결과를 나타낸다. 그리고,ζ와 1/ζ는 스케일링 인자(Scaling factor)를 나타내는데, (5,3)필터의 경우 1이다. (5,3)필터의 경우에는 한 번의 예측과정과 갱신과정으로 저주파와 고주파 결과를 계산할 수 있으며, (9,7) 필터는 예측과정과 갱신과정을 한번 더 수행하여 고주파 결과와 저주파 결과를 계산한다.
그러나, 이러한 리프팅 구조는 데이터 패스부가 완벽히 파이프라인화 되어 있지 않으면 임계경로가 큰 단점을 가지고, 리프팅 연산을 그대로 H/W화하여 구조적으로 간결성을 유지하려면 연속된 입력 데이터에 대한 처리결과가 모호하게 되며, 리프팅 연산과 내부 메모리와의 관계를 명확히 보이지 못한다. 이를 해결하기 위하여 전체적으로 파이프라인화된 리프팅 연산과 확장성을 가진 H/W 구조가 개발되었는데, 고속의 성능을 갖지만 리프팅 알고리즘을 그대로 사상하였기 때문에 파이프라인을 위해 많은 수의 레지스터가 요구되고 라인 기반의 리프팅 방식을 명확히 나타내지 못하는 단점이 있다.
또한, (9.7) 필터를 이용한 필터링이 (5.3) 필터를 이용한 필터링에 비해서 리프팅의 경우에 약 2배 이상의 복잡도를 가지는 것을 고려하여 다른 H/W와 동일한 기준을 적용하면 약 2배 정도로 H/W양이 증가해야 한다. 두 가지 필터를 수용하면서 H/W 양을 감소시키려면 출력 데이터율도 1/2 감소해야 한다. 이러한 구조에서 데이터율을 높이기 위해서는 수직 필터링 블록을 하나 증가시켜야 하는데, 이 경우에 곱셈기와 덧셈기가 원래의 H/W에서 약 30% 정도 증가해야 한다. 또한 내부적인 파이프라인 단계를 맞추기 위한 레지스터와 FIFO가 상당히 많이 내장되어야 하는 단점이 있다.
최근에는 JPEG-2000이 JPEG을 대체할 것으로 예상되고 있어 관련 IP가 개발되고 있으며, 많은 IP에서 하드웨어에 적합한 리프팅 구조를 제시하고 있지만 동작의 복잡성이나 여러 부가회로의 부재 및 메모리와의 관계 제시가 불분명해서 실제적인 동작 및 구현이 어려움이 많다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 리프팅(Lifting) 기법의 동일한 연산구조에서 나타나는 단위 연산을 하드웨어에 적합한 리프팅 구조를 통해 효율적으로 수행할 수 있는 리프팅 이산 웨이블릿 변환 장치와, 다양한 형태로 입력되는 데이터를 이러한 장치를 사용하여 처리할 수 있는 리프팅 이산 웨이블릿 변환 시스템을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 리프팅 이산 웨이블릿 변환 장치는, 데이터가 순차적으로 입력되는 입력 레지스터; 상기 입력 레지스터의 데이터를 각각 순차적으로 지연시키는 레지스터 DR1, DR2, DR3; 필터 계수와 '0'값이 교대로 입력되는 필터 레지스터; 상기 입력 레지스터와 필터 레지스터의 값을 곱하는 곱셈기; 상기 곱셈기의 출력 값을 저장하는 레지스터 MR; 상기 레지스터 MR의 데이터를 지연시키는 레지스터 DR4; 동작 초기에 초기화되어 있는 레지스터 AR; 상기 레지스터 DR1과 DR4의 값을 더한 값 또는 상기 레지스터 MR과 레지스터 AR의 값을 더한 값을 교대로 상기 레지스터 AR에 입력시키는 덧셈처리부; 및 상기 레지스터 DR3 또는 레지스터 AR의 데이터를 교대로 출력 레지스터에 입력시키는 선택부를 포함하여 이루어진다.
상기 덧셈처리부는 상기 지연 레지스터 DR1과 DR4의 값을 더하는 덧셈기, 상기 레지스터 MR과 레지스터 AR의 값을 더하는 덧셈기, 및 클럭 수에 따라 상기 덧셈기들 중 어느 하나의 출력을 선택적으로 상기 레지스터 AR에 입력시키는 선택부를 포함하여 구성될 수 있다.
상기 덧셈처리부는 클럭 수에 따라 상기 지연 레지스터 DR1과 DR4의 데이터 또는 상기 레지스터 MR과 레지스터 AR의 데이터를 출력하는 선택부, 및 상기 선택부에서 출력하는 두 데이터 값을 더하여 상기 레지스터 AR에 입력시키는 덧셈기를 포함하여 구성될 수도 있다.
상기 각 구성요소의 동작은 매 클럭마다 이루어지도록 구성될 수 있다.
본 발명에 따른 리프팅 이산 웨이블릿 변환 시스템은, 변환 대상 데이터를 입력받는 데이터 입력부; 구동 프로그램을 입력받아 저장하는 프로그래밍 레지스터; 상기 제1항에 기재된 이산 웨이블릿 변환장치; 버스 인터페이스부; 및 상기 프로그래밍 레지스터에 저장된 구동 프로그램에 의해 동작하여 총괄적 제어를 담당하며, 상기 버스 인터페이스부를 통해 상기 이산 웨이블릿 변환장치가 상기 데이터 입력부로부터 입력되는 데이터를 이산 웨이블릿 변환하여 출력하도록 제어하는 제어부를 포함하여 이루어진다.
상기 데이터 입력부는 디지털 데이터를 직접 입력받도록 구성될 수 있다.
상기 데이터 입력부는 입력되는 아날로그 신호를 디지털 신호로 변환하는 A/D 변환부를 포함하여 구성될 수 있다.
상기 데이터 입력부는 SDRAM을 제어하는 SDRAM 제어부, 및 상기 SDRAM과 주고 받는 데이터를 일시 저장하는 SDRAM 버퍼부를 포함하여 구성될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 4를 참조하여 재구성된 리프팅 연산구조를 설명하자면, 각각의 입력 데이터 Xn에 대하여 고주파 데이터 d0(i)는 3개의 주변 데이터를 반영하고 저주파 데이터 s0(i)는 5개의 주변 데이터를 반영한다. 이와 같이 자신을 포함하여 5개의 주변 데이터를 이용해서 저주파 데이터를 생성하고 3개의 주변 데이터를 이용해서 고주파 데이터를 생성하는 웨이블릿 필터를 (5,3) 필터라 한다.
또한, 다시 한번 공간적 예측과정과 갱신과정을 반복 수행하면 결국 9개의 주변 데이터를 이용하여 저주파 데이터 s1(i)를 생성할 수 있고, 7개의 주변 데이터를 이용하여 고주파 데이터 d1(i)를 생성할 수 있게 되는데, 이러한 웨이블릿 필터를 (9,7) 필터라 한다. 이 때, 첫 번째 공간적 예측과정과 갱신과정에는 필터 계수 α와 β를 이용하고, 두 번째 공간적 예측과정과 갱신과정에는 필터 계수 γ와 δ를 이용한다.
한편, 도 4의 연산구조에서는 도 5a에 도시한 예와 같은 단위 연산이 반복되는 것을 알 수 있다. 각각의 단위 연산은 순서대로 첫 번째 데이터에 필터 계수를 곱한 값과, 세 번째 데이터에 필터 계수를 곱한 값과, 두 번째 데이터를 더하여 고주파 데이터 또는 저주파 데이터를 생성하며, 첫 번째 데이터와 세 번째 데이터는 그대로 다음 연산에 이용된다.
즉, 리프팅은 동일한 연산구조를 가지므로 도 4에 도시된 바와 같은 리프팅 연산을 도 5a와 같은 하나의 단계로 대치시킬 수 있다.
도 5b를 참조하여 필터 계수가 α인 예를 들자면, 입력 데이터가 순서대로 xi, xi+1, xi+2라고 가정할 때 고주파 데이터 d0(i)는 xi+1 + α*xi + α*xi+2가 되고, xi와 xi+2는 그대로 s0(i)의 연산에 이용됨을 알 수 있다. 그러므로, 이러한 단위 연산구조를 시간에 따라 겹치지 않고 반복적으로 이용할 수 있도록 하면 리프팅 연산을 효과적으로 수행할 수 있는 하드웨어 설계가 가능해질 수 있다.
도 6을 참조하여, 본 발명에 따른 리프팅 이산 웨이블릿 변환 장치의 일 실시예를 설명하기로 한다.
이산 웨이블릿 변환할 입력 데이터는 입력 레지스터 IR(61)에 매 클럭마다 순차적으로 입력된다. 입력 레지스터 IR(61)에 입력된 데이터는 지연 레지스터 DR1(62-1)에 의해 지연되고, 레지스터 DR1(62-1)에 입력된 데이터는 지연 레지스터 DR2(62-2)에 의해 지연되며, 레지스터 DR2(62-2)에 입력된 데이터는 지연 레지스터 DR3(62-3)에 의해 지연된다.
필터 레지스터 FR(63)은 필터 계수가 입력되는 레지스터로서 필터 계수와 '0'값이 교대로 입력된다. 예로서, 현재 연산에 사용되는 필터 계수가 α라면 최초에 α로부터 시작하여 α, 0, α, 0, α...와 같이 필터 계수와 '0' 값이 교대로 입력된다.
입력 레지스터 IR(61)의 데이터는 매 클럭마다 필터 레지스터 FR(63)의 데이터와 곱셈부(67)에 의해 곱해져서 레지스터 MR(64)에 저장된다. 그리고, 레지스터 MR(64)에 저장된 데이터는 레지스터 DR4(64-1)에 의하여 지연된다.
레지스터 AR(65)은 덧셈처리부(69)에서 해당 데이터 값을 덧셈한 값을 저장하며, 동작 초기에는 '0'으로 초기화된 상태이다.
한편, 덧셈처리부(69)는 현재 클럭 수가 짝수인지 또는 홀수인지의 여부에 따라 레지스터 DR1(62-1)과 DR4(64-1)의 값을 더한 값 또는 레지스터 MR(64)과 레지스터 AR(65)의 값을 더한 값을 선택적으로 출력하고, 덧셈처리부(69)에서 출력된 값은 레지스터 AR(69)에 입력된다.
또한, 레지스터 DR3(62-3) 또는 레지스터 AR(65)의 데이터는 현재 클럭 수가 짝수인지 또는 홀수인지의 여부에 따라 선택적으로 출력 레지스터(66)에 입력된다.
도 7을 참조하여 덧셈처리부(69)를 구성하는 실시예를 설명하기로 한다.
도 7a을 참조하자면, 덧셈처리부(69)는 2개의 덧셈기(69-1,69-2)와 하나의 선택부(69-3)로 구성할 수 있는데, 선택부(69-3)는 멀티플랙서를 이용하여 바람직하게 구성할 수 있다.
이 때, 덧셈기 69-1은 레지스터 DR1(62-1)과 DR4(64-1)의 값을 더하고, 덧셈기 69-2는 레지스터 MR(64)과 레지스터 AR(65)의 값을 더한다. 덧셈기 69-1과 덧셈기 69-2에서 더해진 값은 모두 선택부(69-3)에 입력되고, 선택부(69-3)는 현재 클럭 수가 짝수인 경우에는 덧셈기 69-2에서 더해진 값을 출력하고, 홀수인 경우에는 덧셈기 69-1에서 더해진 값을 출력한다. 그리고, 선택부(69-3)의 출력 데이터는 레지스터 AR(65)로 입력된다.
도 7b를 참조하여 덧셈처리부(69)를 구성하는 또 다른 실시예를 설명하자면, 하나의 덧셈기(69-5)와 하나의 선택부(69-4)로 구성할 수 있다.
이 때, 선택부(69-4)에는 레지스터 DR1(62-1)과 DR4(64-1)의 데이터, 그리고 레지스터 MR(64)과 레지스터 AR(65)의 데이터가 입력되며, 현재 클럭 수가 짝수인 경우에는 레지스터 MR(64)과 레지스터 AR(65)의 데이터를 선택하여 출력하고, 현재 클럭 수가 홀수인 경우에는 레지스터 DR1(62-1)과 DR4(64-1)의 데이터를 선택하여 출력한다. 선택부(69-4)에서 선택적으로 출력되는 두 데이터는 덧셈기 69-5에서 더해진 후 출력되어 레지스터 AR(65)로 입력된다.
이상의 각 구성요소들의 동작은 매 클럭마다 이루어지게 된다.
도 8을 참조하여 본 발명에 따라 이루어지는 리프팅 연산의 타이밍 스케쥴을 설명하기로 한다. 설명의 편의를 위하여 입력 데이터 xi에 대하여 고주파 데이터 d0(i)가 구해지는 과정의 예로서 설명하기로 한다.
먼저, 필터 레지스터 FR(63)에는 매 클럭마다 필터 계수와 '0'값이 교대로 입력되는데, 최초 입력 값은 필터 계수 α이다. 그리고, 매 클럭마다 레지스터 IR(61)에는 입력 데이터가 순차적으로 입력되고, 지연 레지스터인 DR1(62-1), DR2(62-2), DR3(62-3)에서 각각 지연된다.
또한, 매 클럭마다 입력 레지스터 IR(61)의 값과 필터 레지스터 FR(63)의 값이 곱해지고, 곱해진 값은 다음 클럭에서 레지스터 MR(64)에 입력된다. 레지스터 MR(64)의 데이터는 다시 지연 레지스터 DR4(64-1)에 의하여 지연된다.
한편, 현재 클럭 수가 짝수인 경우에는 레지스터 MR(64)과 레지스터 AR(65) 의 값에 대한 덧셈이 이루어지게 되고, 덧셈 결과는 다음 클럭에 레지스터 AR(65)에 입력되며, 레지스터 AR(65)의 데이터는 다음 클럭에 출력 레지스터 OR(66)로 입력된다. 그러나 현재 클럭 수가 홀수인 경우에는 레지스터 DR1(62-1)과 DR4(64-1)의 값에 대한 덧셈이 이루어지게 되고, 덧셈 결과는 다음 클럭에 레지스터 AR(65)에 입력되며, 레지스터 DR3(62-3)의 데이터는 다음 클럭에 출력 레지스터 OR(66)로 입력된다.
이상의 타이밍 스케쥴에서 볼 수 있는 바와 같이, 파이프라인 구조에 따라 출력 레지스터 OR(66)에는 5 클럭 이후부터 출력 값이 나타나게 되며, 입력 데이터 xi에 대하여 짝수번째 데이터 x0, x2,...와 고주파 데이터 d0(0), d0(1),...이 교대로 나타남을 알 수 있다. 위에서 보인 수학식 1을 참조하자면, 출력 레지스터 OR(66)에 순차적으로 나타나는 출력 데이터가 그 순서대로 동일한 연산 단위에 입력되면 저주파 데이터 s0(i)가 구해질 수 있음을 알 수 있다.
도 9를 참조하여, 본 발명에 따라 리프팅을 수행할 때의 메모리 맵에 관한 실시예를 설명하기로 한다.
먼저, 웨이블릿 변환할 N행 M열의 입력 데이터에 대한 수평방향의 리프팅을 수행하고, 리프팅된 저주파 데이터(L)와 고주파 데이터(H)를 L(0,0), H(0,0), L(0,1), H(0,1), ... L(0,M/2), H(0,M/2), L(1,0), H(1,0), ... L(1,M/2), H(1,M/2), ... L(N,M/2), H(N,M/2)의 순서로 메모리에 저장한다.
그리고, 메모리에 저장된 저주파 데이터와 고주파 데이터에 대하여 수직방향 의 리프팅을 수행한다.
이 때, 수직방향의 리프팅이 저주파 데이터로 이루어진 열에 대하여 수행된 결과는 LL과 LH 서브밴드 데이터로서 저장하고, 고주파 데이터로 이루어진 열에 대하여 수행된 결과는 HL과 HH 서브밴드 데이터로서 저장한다.
도 10은 본 발명에 관한 Pseudo Code의 예를 도시한 것으로서, 본 발명에 따른 각 구성요소의 동작 상태를 나타내고 있다.
도 11을 참조하여, 본 발명에 따른 리프팅 이산 웨이블릿 변환 시스템의 일 실시예를 설명하기로 한다.
리프팅 이산 웨이블릿 변환 시스템(90)은 다양한 입력을 수용할 수 있도록 구성된다. 이를 위하여 데이터 입력부는 디지털 데이터(Data Input)를 직접 입력받도록 구성될 수 있으며, 입력되는 신호가 아날로그 신호인 경우에는 아날로그 신호(Data Input)를 비디오 제어 신호(Video Control Signal)에 따라 디지털 신호로 변환하는 A/D 변환부(91)를 포함할 수 있다. 또한, 영상 데이터를 저장하는 SDRAM(100)과 인터페이스할 수 있도록 구성할 수도 있는데, 이러한 실시예에서는 SDRAM(100)을 제어하는 SDRAM 제어부(92)와, SDRAM(100)과 주고 받는 데이터를 버퍼링하는 SDRAM 버퍼부(93)를 포함할 수 있다. 이 경우 SDRAM(100)으로부터 입력된 데이터의 처리와 함께 다음 프레임을 SDRAM(100)에 저장하여 프레임 단위의 실시간 처리 동작을 수행할 수 있다.
프로그래밍 레지스터(14)는 리프팅 이산 웨이블릿 변환 시스템(90)의 구동 프로그램을 입력받아 저장하는데, I2C(Inter Integrated Circuit) 인터페이스를 통 해 외부에서 프로그래밍 레지스터(14)에 프로그램을 입력하도록 구성할 수 있다.
이산 웨이블릿 변환장치(97)는 이상에서 설명한 본 발명의 각 실시예가 사용될 수 있다. 버스 인터페이스부(96)는 각 구성요소들이 서로 데이터를 주고 받을 수 있도록 하고, 타 구성요소로 제어신호를 보내는 등의 통로 역할을 수행한다.
제어부(95)는 프로그래밍 레지스터(95)에 저장된 구동 프로그램에 의해 동작하여 리프팅 이산 웨이블릿 변환 시스템(90)을 총괄적으로 제어하며, 중앙처리장치(CPU)나 마이크로 프로세서(MPU) 등을 이용하여 바람직하게 구성할 수 있다.
이러한 제어부(95)는 직접 입력되는 디지털 데이터, A/D 변환부(91)를 통해 변환된 디지털 입력, 또는 SDRAM(100)으로부터 SDRAM 버퍼부(93)를 통해 입력되는 디지털 데이터가 버스 인터페이스부(96)를 통해 이산 웨이블릿 변환 장치(97)로 입력되도록 하고, 이산 웨이블릿 변환 장치(97)를 제어하여 입력되는 데이터에 대하여 리프팅 방식에 의한 이산 웨이블릿 변환을 수행하여 출력하도록 한다.
이상에서 설명한 바와 같이, 본 발명에 따르면 다중으로 사용되는 중간 연산결과들을 구조화된 데이터 경로와 연산순서에 따라 최소의 대기 지연 시간만을 가지면서 여러 연산에 관여하도록 할 수 있다. 따라서 동일한 결과를 가지는 중간 연산들은 두 번 이상 수행되지 않게 되므로, 최소의 연산 횟수와 최적의 생존 시간을 갖는 효율적인 리프팅이 가능하다. 이에 따라 필터의 적응성, 처리할 수 있는 영상크기에 따른 저장 공간(메모리의 양), 동일 성능에 대한 곱셈기 및 덧셈기의 수, 그리고 제어의 복잡도 등에서 우수한 결과를 가져 올 수 있다.

Claims (8)

  1. 데이터가 순차적으로 입력되는 입력 레지스터;
    상기 입력 레지스터의 데이터를 각각 순차적으로 지연시키는 레지스터 DR1, DR2, DR3;
    필터 계수와 '0'값이 교대로 입력되는 필터 레지스터;
    상기 입력 레지스터와 필터 레지스터의 값을 곱하는 곱셈기;
    상기 곱셈기의 출력 값을 저장하는 레지스터 MR;
    상기 레지스터 MR의 데이터를 지연시키는 레지스터 DR4;
    동작 초기에 초기화되어 있는 레지스터 AR;
    상기 레지스터 DR1과 DR4의 값을 더한 값 또는 상기 레지스터 MR과 레지스터 AR의 값을 더한 값을 교대로 상기 레지스터 AR에 입력시키는 덧셈처리부; 및
    상기 레지스터 DR3 또는 레지스터 AR의 데이터를 교대로 출력 레지스터에 입력시키는 선택부를 포함하여 이루어지는 리프팅 이산 웨이블릿 변환 장치.
  2. 제 1 항에 있어서,
    상기 덧셈처리부는 상기 지연 레지스터 DR1과 DR4의 값을 더하는 덧셈기, 상기 레지스터 MR과 레지스터 AR의 값을 더하는 덧셈기, 및 클럭 수에 따라 상기 덧셈기들 중 어느 하나의 출력을 선택적으로 상기 레지스터 AR에 입력시키는 선택부를 포함하여 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 장치.
  3. 제 1 항에 있어서,
    상기 덧셈처리부는 클럭 수에 따라 상기 지연 레지스터 DR1과 DR4의 데이터 또는 상기 레지스터 MR과 레지스터 AR의 데이터를 출력하는 선택부, 및 상기 선택부에서 출력하는 두 데이터 값을 더하여 상기 레지스터 AR에 입력시키는 덧셈기를 포함하여 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 장치.
  4. 제 1 항 내지 제 3 항 중 어느 하나의 항에 있어서,
    상기 각 구성요소의 동작은 매 클럭마다 이루어지도록 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 장치.
  5. 변환 대상 데이터를 입력받는 데이터 입력부;
    구동 프로그램을 입력받아 저장하는 프로그래밍 레지스터;
    상기 제1항에 기재된 이산 웨이블릿 변환장치;
    버스 인터페이스부; 및
    상기 프로그래밍 레지스터에 저장된 구동 프로그램에 의해 동작하여 총괄적 제어를 담당하며, 상기 버스 인터페이스부를 통해 상기 이산 웨이블릿 변환장치가 상기 데이터 입력부로부터 입력되는 데이터를 이산 웨이블릿 변환하여 출력하도록 제어하는 제어부를 포함하여 이루어지는 리프팅 이산 웨이블릿 변환 시스템.
  6. 제 5 항에 있어서,
    상기 데이터 입력부는 디지털 데이터를 직접 입력받도록 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 시스템.
  7. 제 5 항에 있어서,
    상기 데이터 입력부는 입력되는 아날로그 신호를 디지털 신호로 변환하는 A/D 변환부를 포함하여 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 시스템.
  8. 제 5 항에 있어서,
    상기 데이터 입력부는 SDRAM을 제어하는 SDRAM 제어부, 및 상기 SDRAM과 주고 받는 데이터를 일시 저장하는 SDRAM 버퍼부를 포함하여 구성되는 것을 특징으로 하는 리프팅 이산 웨이블릿 변환 시스템.
KR1020060094107A 2006-09-27 2006-09-27 리프팅 이산 웨이블릿 변환 장치 및 시스템 KR20080028608A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060094107A KR20080028608A (ko) 2006-09-27 2006-09-27 리프팅 이산 웨이블릿 변환 장치 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060094107A KR20080028608A (ko) 2006-09-27 2006-09-27 리프팅 이산 웨이블릿 변환 장치 및 시스템

Publications (1)

Publication Number Publication Date
KR20080028608A true KR20080028608A (ko) 2008-04-01

Family

ID=39531520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060094107A KR20080028608A (ko) 2006-09-27 2006-09-27 리프팅 이산 웨이블릿 변환 장치 및 시스템

Country Status (1)

Country Link
KR (1) KR20080028608A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101718862B (zh) * 2009-11-13 2012-03-21 浙江大学 基于ar模型和小波变换的核电站松动件定位方法
KR101291432B1 (ko) * 2012-02-29 2013-07-31 주식회사 글로벌미디어테크 고속 이산 웨이블릿 변환 처리를 위한 리프팅연산 병렬화 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101718862B (zh) * 2009-11-13 2012-03-21 浙江大学 基于ar模型和小波变换的核电站松动件定位方法
KR101291432B1 (ko) * 2012-02-29 2013-07-31 주식회사 글로벌미디어테크 고속 이산 웨이블릿 변환 처리를 위한 리프팅연산 병렬화 장치 및 그 방법

Similar Documents

Publication Publication Date Title
Wu et al. A high-performance and memory-efficient pipeline architecture for the 5/3 and 9/7 discrete wavelet transform of JPEG2000 codec
JP4425561B2 (ja) イメージおよびビデオ符号化のための2−d変換
US5838377A (en) Video compressed circuit using recursive wavelet filtering
CA2682436C (en) Parallel or pipelined macroblock processing
US5984514A (en) Method and apparatus for using minimal and optimal amount of SRAM delay line storage in the calculation of an X Y separable mallat wavelet transform
Das et al. An efficient architecture for 3-D discrete wavelet transform
JPH08275160A (ja) 離散余弦変換方法
JPH08280007A (ja) プロセッサ及び転送方法
Ahmad et al. Video compression with parallel processing
Lafruit et al. An efficient VLSI architecture for 2-D wavelet image coding with novel image scan
WO2005098756A1 (en) Video compression and decompression circuits
US8204331B2 (en) Information processing apparatus and method to reduce delay in image decoding
JPH08275149A (ja) データ符号化方法
WO2007072644A1 (ja) 2次元フィルタ演算装置及び方法
KR20080028608A (ko) 리프팅 이산 웨이블릿 변환 장치 및 시스템
Das et al. Data-folded architecture for running 3-D DWT using 4-tap Daubechies filters
KR101045650B1 (ko) 직교정규 시공간 변환의 리프팅에 기초한 구현
KR20060113666A (ko) 양자화 잡음 전파 효과의 감소를 위한 최적의 시공간 변환
Nagabushanam et al. FPGA implementation of 1D and 2D DWT architecture using modified lifting scheme
Kleihorst et al. MPEG2 video encoding in consumer electronics
Stroobandt et al. Reconfigurable hardware for a scalable wavelet video decoder and its performance requirements
JP2004194224A (ja) ウェーブレット変換装置およびウェーブレット変換方法
JPH1155668A (ja) 画像符号化装置
Zeinolabedin et al. Low computational complexity hardware implementation of Laplacian Pyramid
KR100628441B1 (ko) Jpeg2000의 리프팅 이산 웨이브렛 변환장치

Legal Events

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