KR100975602B1 - 이산 웨이브릿 변환 구조 - Google Patents

이산 웨이브릿 변환 구조 Download PDF

Info

Publication number
KR100975602B1
KR100975602B1 KR1020037015572A KR20037015572A KR100975602B1 KR 100975602 B1 KR100975602 B1 KR 100975602B1 KR 1020037015572 A KR1020037015572 A KR 1020037015572A KR 20037015572 A KR20037015572 A KR 20037015572A KR 100975602 B1 KR100975602 B1 KR 100975602B1
Authority
KR
South Korea
Prior art keywords
processing
input
stage
basic
values
Prior art date
Application number
KR1020037015572A
Other languages
English (en)
Other versions
KR20040018383A (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 노키아 코포레이션
Publication of KR20040018383A publication Critical patent/KR20040018383A/ko
Application granted granted Critical
Publication of KR100975602B1 publication Critical patent/KR100975602B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

이산 웨이브릿 변환 연산을 수행하는 마이크로프로세서 구조가 제공되고, 이산 웨이브릿 변환 연산은, r, k, m이 0이 아닌 양의 정수일 때 r x km의 입력 셈플들로 된 벡터를 구비한 입력 신호에 대해, 첫번째 분해 레벨에서 시작해 마지막 분설 레벨까지 진행하면서, 1에서 J 까지의 범위 안에 있는 특정 개수의 분해 레벨들 j에 걸쳐, 분해를 수행하고, 마이크로프로세서 구조는 다수의 처리 스테이지들을 구비하고, 상기 각각의 처리 스테이지는 이산 웨이브릿 변환 연산의 분해 레벨(j)에 해당하고 다수의 기본 처리 요소들로 구현되며, 각 처리 스테이지에서 구현되는 기본 처리 요소의 개수는 분해 레벨(j)에서 분해 레벨(j+1)까지 k 인수 만큼 감소된다.

Description

이산 웨이브릿 변환 구조{Architectures for discrete wavelet transforms}
본 발명은 이산 웨이브릿 변환(DWT)들을 구현하기 위한 구조에 관한 것이다. 본 발명은 DWT들이 이용될 수 있는 분야에 관한 것으로, 그에 한정되는 아니지만 특히 디지털 신호 및 이미지 프로세싱, 데이터 압축, 멀티미디어 및 통신 분야에서 이용되는 구조들에 관한 것이다.
이 명세서의 말미에 참고 문헌 목록이 주어지는데, 이 문헌들은 각([])괄호 안의 해당 번호에 이어 언급되고 있다.
이산 웨이브릿 변환(Discrete Wavelet Transform, DWT) [1]-[4]은 원형(prototype) 웨이브릿이라 명명된, 단일 기준 함수의 부연/단축 및 변화된 버전들을 이용해, 시간 영역에서
Figure 112003045273941-pct00001
길이의 입력 신호를 분해하는 수학적 기술이다. 한 특정 경우에서,
Figure 112003045273941-pct00002
(즉,
Figure 112003045273941-pct00003
)가 된다. DWT들은 하알(Haar) 웨이브릿, 하다마드(Hadamard) 웨이브릿 및 웨이브 패킷들을 이용해 수행될 수 있다. 하알 웨이브릿에 의한 분해는 저대역 및 고대역 필터링을 수반하고 뒤이어 그 두 양 필터링 결과에 대한 다운 샘플링을 수행하며 J 레벨 또는 옥타브까지 저주파수 대역의 분해를 반복한다.
지난 십년 동안, DWT는 고유의 스케일 능력, O(N)(N은 처리 시퀀스의 길이)의 산술적 복잡도, 신호 처리 어플리케이션을 위한 낮은 앨리어싱(aliasing) 왜곡, 및 적응적 시간-주파수 윈도우들과 같은 유용한 특징들을 제공하기 때문에 다른 전통적 신호 처리 기술들 보다 바람직하다고 흔히 알려져 왔다. 그래서 DWT는 수치 해석 [5]-[6], 생체임상의학[7], 이미지 및 비디오 처리 [1], [8]-[9], 신호 처리 기술들 [10], 및 음성 압축/압축해제 [11]를 포함하는 폭 넓은 어플리케이션 영역에서 연구 및 적용되어져 왔다. DWT 기반 압축 방식들은 JPEG 2000 및 MPEG-4와 같은 국제 표준의 기초가 되고 있다.
이러한 많은 어플리케이션들에서는 유용한 결과를 내기 위해 실시간 처리가 요구된다. DWT들이 선형적 복잡도를 가지고 있음에도 불구하고, 많은 어플리케이션들은 소프트웨어 해법에 의해서만 다뤄질 수 없다. 디지털 신호 처리기(DSP)들을 이용한 DWT 구현은 계산 속도를 크게 향상시키고, 따라서 일부 어플리케이션들에 대해 만족스러울 수 있다. 그러나, 많은 어플리케이션들에서 범용의 프로세서나 심지어 DSP에 기반한 소프트웨어적 DWT 구현은 너무 느린 것이 된다. 따라서, 전용 거대 스케일 집적(VLSI) 어플리케이션 고유 집적 회로(ASIC)를 사용해 DWT를 구축하는 것이 최근들어 수 많은 연구자들의 주의를 끌고 있으며, 수 많은 DWT 구조들이 제안되고 있다[12]-[24]. 이들 장치들 중 일부는 낮은 하드웨어 복잡도를 가지도록 의도되었다. 그러나, N개의 샘플들을 가진 시퀀스의 DWT를 계산하기 위해 이들은 적어도 2N 클록 사이클(cc's)을 필요로 한다. 그럼에도, 장치들은 약 N cc의 주기를 갖도록 설계되어 왔다(예를 들어, 이중 하드웨어가 제공될 때 [14]의 세 구조들, [15]의 구조 A1, [16]-[18]의 구조들, [19]의 병렬 필터 등). 이 구조들 대부분은, 계산되어야 할 분해 레벨(옥타브)의 수에 무관하게, 메모리 필요 요건도 줄이고 하나나 두개의 필터 유닛들만을 사용하도록, 반복적 피라미드 알고리즘(RPA)이나 그와 유사한 스케줄링 기술을 사용한다. 이러한 것은 제공할 수 있는 "가장 빠른" 경우에 각 출력을 발생함으로써 행해진다[26].
[17] 및 [18]에 제시된 구조들은 첫번째 파이프라인 스테이지가 첫번째 DWT 옥타브를 구현하고 두번째 스테이지가 RPA에 기반해 모든 다음 옥타브들을 구현하는 두 파이프라인 스테이지들로 이뤄진다. [17] 및 [18]의 구조들이 충분히 큰 수의 DWT 옥타브들에 대해 거의 100%의 하드웨어 활용성을 가지고 동작한다고 해도, 그 구조들은 복잡한 제어 및/또는 메모리 필요 요건을 가지게 된다. 또, 이들 구조들은 단지 두 개의 파이프라인 스테이지들만을 이용하므로 상대적으로 낮은 속도를 갖게 된다. 통상적인 구조들에서 달성되는 최대 처리 속도는
Figure 112003045273941-pct00004
-포인트 DWT를 구현하기 위한
Figure 112003045273941-pct00005
클록 사이클이다. 대략 100%의 하드웨어 활용성과 보다 높은 처리 속도는 [31], [32] 및 [34]에서 앞서 제안된 구조들에 의해 달성된다. [34]에 제시된 FPP 및 LPP 구조는 DWT 필터들의 길이에 좌우되며, FPP 구조의 경우 입력 신호의 길이에 좌우된다.
최근의 모바일/비주얼 통신 시스템에서는 저전력 VLSI 회로들에 대한 수요가 증가하고 있다. VLSI 기술의 진보는 하드웨어 비용을 크게 감소시켜왔다. 따라서, 하드웨어량을 증가시키는 댓가를 치르더라도, 주기를 감소시키는 것이 종종 가 치 있는 것이 된다. 예를 들어, 주기
Figure 112003045273941-pct00006
cc를 가진 장치 D가 주기
Figure 112003045273941-pct00007
인 장치 D' 에 비해 두 배가 빠른 처리를 수행하도록 사용될 수 있다. 이와 달리, 상기 장치 D가 주파수 f의 클록을 가지면 주파수 2f의 클록을 가진 장치 D'와 동일한 성능을 낼 수 있다. 따라서, 장치 D에서, (f에 대해 선형인) 공급 전압과 (
Figure 112003045273941-pct00008
에 대해 선형인) 소비 전력은 장치 D'의 공급 전압에 비해 각각 2 및 4의 인수만큼 감소될 수 있다[27].
고 처리속도 구조는 통상적으로 DWT 옥타브들이 유사한 하드웨어 유닛들(파이프라인 스테이지들)로 이뤄진 파이프라인으로 구축되는 파이프라이닝 또는 병렬처리를 이용한다. 파이프라이닝은 이미 (예를 들어, [12], [23]-[24]에 있는) 기존 DWT 구조들에 의해 활용되어 왔지만, 가장 빠른 파이프라인형 설계에서는
Figure 112003045273941-pct00009
-포인트 DWT를 구축하기 위해 적어도 N개의 시간 유닛들을 필요로 한다.
DWT들의 구현을 위한 알려진 설계법들 대부분은 도 1에 도시된 DWT의 세가지 구조의 필터 뱅크 개념을 기반으로 한다. 도 1에서는 신호 분해를 위한 몇 개(J)의 스테이지들(또는 옥타브)이 있고, 그 각 스테이지 다음에 2 인자만큼의 다운 샘플링이 뒤따른다. 다운샘플링의 결과, 각각 다음 분해 스테이지로 입력되는 데이터량은 바로 이전 분해단으로의 입력량의 절반이 된다. 이것은, 옥타브
Figure 112003045273941-pct00010
를 구축하는 스테이지의 클록 주파수가 보통 첫번째 옥타브에 사용되는 클록 주파수 보다
Figure 112003045273941-pct00011
배 더 낮기 때문에, 세 구조 방식을 이용해 DWT를 구현하도록 설계된 일반적인 파이프라인형 장치의 분해 스테이지들의 하드웨어가 과도하게 저활용되게 만 든다[24]. 이러한 저활용은 파이프라인 스테이지들이 DWT 옥타브를 구축할 때 그들의 조악한 균형으로부터 나오며, 따라서 저효율을 초래한다.
[30]의 파이프라인 구조는
Figure 112003045273941-pct00012
-포인트 DWT에 대해 거의 100%의 하드웨어 활용성 및
Figure 112003045273941-pct00013
클록 사이클의 처리속도를 달성하는 세 구조 필터 뱅크 개념에 기반해 제안되었다. 이 구조는 가능한 한, 한 스테이지에서 다음 스테이지까지 절반의 처리 유닛을 이용하는 J-스테이지 파이프라인을 수반한다. [34]-[35]에서, DWT들의 플로우그래프 개념이 제안되고 병렬/파이프라인 DWT 구조들을 제시하기 위해 상기 세 구조 필터 뱅크 개념과 비교된다. 특히, 그 플로우그래프 개념은, 옥타브들 내 그리고 옥타브들 사이의 데이터 전송을 보일 뿐만 아니라, 매 옥타브에서의 고유한 병렬구조를 완벽하게 드러낸다. 이것은 파이프라이닝과 병렬구조가 보다 높은 처리속도 및 하드웨어 유용성을 달성하기 위해 결합될 수 있게 한다. 특히, 그 플로우그래프 개념은
Figure 112003045273941-pct00014
-포인트 DWT의 j번째 옥타브(
Figure 112003045273941-pct00015
)가 병렬로 전체 또는 부분적으로 구현될 수 있는
Figure 112003045273941-pct00016
개의 독립적 유사 동작들을 필요로 함을 보인다. DWT 옥타브들은 한 파이프라인 모드로 구현되고, 각 옥타브는 병렬 모드로 구현되며 병렬구조의 레벨은 한 옥타브에서 다음 옥타브까지 절반으로 된다. 파이프라인 스테이지들 내 가변 레벨 병렬구조를 통합하는 것은 완벽하게 균형잡힌 파이프라인 스테이지들을 가진 병렬-파이프라인형 장치가 설계될 수 있게 한다. 이는 파이프라인 스테이지들이 스테이지에서 스테이지까지 가변하는 정도로 병렬로 놓여지는 파이프라인 모드로 옥타브들을 구현한다는 것을 의미한다. 이러한 개념은 수 많은 상이한 방식들로 구현되어질 수 있다. [34]에서, 전체적 병렬-파이프라인형(FPP) 및 한정된 병렬-파이프라인형(LPP) DWT 구조들이라 칭해지는 두 구조들이 제안되었다. 이 두 구조들은 J개의 파이프라인 스테이지들로 이뤄지고, 각 파이프라인 스테이지는 이전 스테이지와 비교해 절반이 되는 개수의 처리 요소를 포함한다. 결국 매우 높은 처리 속도 및 대략 100%의 하드웨어 활용도가 달성된다.
알려진 병렬 또는 파이프라인형 구조들은 입력 길이, 옥타브 개수, 저대역 필터 및 고대역 필터의 길이, 또는 어떤 경우 그 실제 계수값들과 같은 DWT 패러미터들에 실질적으로 의존한다. 이들 패러미터들의 보다 큰 값들에 대해, 이들 구조들이 매우 거대해 질 수 있다. 또, 소정 구조의 소정 하드웨어 실시안에서 고정된 패러미터들을 갖는 DWT를 구축하는 것만이 가능하다. 그러나, JPEG 2000에서, DWT는 이미지 타일들(tiles of an image)에 별도로 적용되고, 이때 타일들의 크기는 1부터
Figure 112003045273941-pct00017
까지 변화할 수 있다. 상이한 타일들에 대해 분해 옥타브의 개수는 0에서 255까지 변화할 수 있다. 따라서, 변화하는 패러미터를 가진 DWT들을 구축할 수 있는 장치, 즉 DWT 패러미터들에 상대적으로 무관한 일체화된 장치를 갖는 것이 바람직하다. 그러한 장치를 설계하는 것이 직렬 구조들의 경우에는 수월한 것이 되지만, 병렬 또는 파이프라인 구조의 경우에는 그다지 수월한 것이 아니다.
대부분의 통상적 구조들 [12]-[26]은 DWT 필터들의 길이에 비례해 다수의 곱셈기 및 가산기들을 이용한다. 어떤 구조들[17]-[18]에서는 가변 개수의 옥타브들을 가진 DWT들을 구축할 수 있으나, 그들의 효율성은 옥타브 수가 증가하면서 급속 도로 감소된다.
본 발명의 양상에 따라, 본 발명은 이산 웨이브릿 변환 동작을 수행하는 마이크로프로세서 구조를 개시한다. 일실시예에서, 이산 웨이브릿 변환 동작은, j가 1부터 J까지의 범위에 있는 정수일 때, 특정 수의 분해 레벨들 j를 통해, 첫번째 분해 레벨부터 시작해 마지막 분해 레벨까지 진행하여, 다수의 입력 샘플들을 구비한 입력 신호 벡터를 분해하는 것을 포함한다. 마이크로프로세서 구조는 다수의 처리 스테이지들을 포함하며, 각각의 스테이지는 이산 웨이브릿 변환의 분해 레벨 j에 해당하며 다수의 기본 처리 요소들에 의해 구현된다. 처리 스테이지들 각각에서 구현되는 기본 처리 요소들의 개수는 각각 증가한 분해 레벨 j에서 일정한 요인만큼 감소한다.
일반적으로 마이크로프로세서 구조는 이산 웨이브릿 변환의 플로우그래프 개념에 기반한 축소 가능(scalable) 구조이다.
본 발명에 있어서, 제1유형 및 제2유형 코어 DWT 구조들이라 일컫는 두 종류의 DWT의 일반 매개적 구조가, 코어 DWT 구조에 기반해 구성되고 각각 멀티 코어 DWT 구조 및 가변 분해 DWT 구조라 일컬어지는 다른 두 DWT 구조의 일반 매개적 구조와 함께 소개된다. 모든 구조들은 가변 레벨 병렬구조로 구현되므로, 특정 어플리케이션에 요구되는 하드웨어 자원량을 결정하고 계산 속도, 비용, 칩 면적 및 전력 소비 요건들 사이에 트레이드 오프(trade-off)가 이뤄지도록 기회를 제공할 수 있다. 본 발명에서는, 향상된 효율성(하드웨어 활용성)과 그로 인해 결과적으로 향상된 처리속도 및 전력소비를 보이는 DWT 구조를 개발하기 위해 병렬 및 파이프라인 처리 두 방식 모두의 장점이 결합된다. 병렬 구조의 모든 레벨에서 약 100%의 하드웨어 활용성을 가지고 동작하는 여러 DWT 구조들의 일반적인 구성이 제안된다. 제안된 구조들은 입력 신호의 크기, DWT 필터들의 길이 및, 가변 해석 DWT 구조의 경우 옥타브 수에 상대적으로 무관하며, 가변 레벨 병렬구조로 구현될 수 있다. 또, 그 구조는 기존의 DWT 설계와 비교할 때 탁월한 면적-시간 특성을 보인다. 본 발명은 정상적이고 손쉽게 제어되며, 피드백, (입력 길이에 좌우되는) 긴 연결이나 스위치들을 포함하지 않은 구조를 제공한다. 이들은 부분단축(semisystolic) 어레이들로 구현될 수 있다.
이제부터 첨부된 도면을 참조하여, 다만 예로서, 본 발명의 실시예들을 설명한다.
도 1은 대부분의 알려진 DWT 구조들이 기초로 하는 DWT들의 세 구조형(tree-structured) 정의/개념을 도시한 것이다.
도 2는 본 발명에 따른 구조가 기초로 하는 DWT들의 새로운 플로우그래프 개념도의 예를 도시한 것이다.
도 3은 DWT들에 대한 컴팩트형 플로우그래프 개념도의 일실시예를 도시한 것이다.
도 4는 본 발명에 따른 두 종류의 코어 DWT 구조의 일반 구성을 도시한 것이다.
도 5는 도 4의 제1유형 구조의 한 스테이지에 대한 가능한 실시예를 도시한 것이다.
도 6은
Figure 112003045273941-pct00018
인 패러미터들에 상응하는 도 5의 제1유형 코어 DWT 구조의 일실시에를 도시한 것이다.
도 7은
Figure 112003045273941-pct00019
인 패러미터들에 상응하는 도 5의 제1유형 코어 DWT 구조의 다른 실시예를 도시한 것이다.
도 8은 도 4의 제1유형 코어 DWT 구조에 사용될 수 있는 처리 요소들(PE)의 네가지 가능한 실시예들을 도시한 것이다.
도 9는 도 4의 제2유형 코어 DWT 구조의 한 스테이지에 대한 가능한 실시예를 도시한 것이다.
도 10은 제2유형 코어 DWT 구조의 가능한 구현 실시예를 도시한 것이다.
도 11은 본 발명에 따른 다중 코어 DWT 구조의 일반적인 구조를 도시한 것이다.
도 12는 본 발명에 따른 가변 해석 DWT 구조의 일반 구조를 도시한 것이다.
도 13은 기존의 구조와 본 발명의 DWT 구조에 있어서 지연 대 기본 유닛(BU) 개수에 대한 곡선을 도시한 것이다.
도 14는 표 1을 도시한 것이다.
도 15는 표 2를 도시한 것이다.
도 16은 표 3을 도시한 것이다.
본 발명에 제안된 구조들을 설명하기 위해, 먼저 DWT를 정의하고, 그 구조들 안에서 구현되는 기본 알고리즘을 제시할 필요가 있다. DWT들의 여러 선택적 정의/개념들 가운데 세 구조형(three-structured) 필터 뱅크, 격자 구조, 리프팅(lifting) 체계 또는 매트릭스 개념과 같은 것들이 있다. 다음 논의에서는 매트릭스 정의와, 효율적인 병렬/파이프라인형 DWT 구조들을 설계하는데 매우 효과적인 DWT들의 플로우그래프(flowgraph) 개념도를 사용할 것이다.
이산 웨이브릿 변환은 선형 변환
Figure 112003045273941-pct00020
이고,
Figure 112003045273941-pct00021
Figure 112003045273941-pct00022
는 각각
Figure 112003045273941-pct00023
인 길이의 입력 및 출력 벡터이며,
Figure 112003045273941-pct00024
Figure 112003045273941-pct00025
차원의 DWT 매트릭스로 희소(sparse) 매트릭스들의 곱으로서 형성된다:
Figure 112003045273941-pct00026
Figure 112003045273941-pct00027
는 식별
Figure 112003045273941-pct00028
매트릭스 (
Figure 112003045273941-pct00029
)이고,
Figure 112003045273941-pct00030
는 다음의 수학식 2와 같은 구조를 가진 스테이지 j에서의 분해
Figure 112003045273941-pct00031
매트릭스이다:
Figure 112003045273941-pct00032
Figure 112003045273941-pct00033
Figure 112003045273941-pct00034
는 각각 저대역 통과 및 고대역 통과 필터들의 계수들로 된 벡터들이고(L은 필터의 길이),
Figure 112003045273941-pct00035
Figure 112003045273941-pct00036
규격의 완전 언셔플(unshuffle) 연산자의 매트릭스이다. 완전 언셔플 연산자는 벡터 성분들의 번호가 0부터 시작한다고 했을 때 출력 벡터의 첫번째(두번째) 절반부에 있는 입력 벡터의 짝수(홀수)번호 성분들을 모은다. 명확성을 위해, 저대역 통과 및 고대역 통과 필터들 모두는 짝수인 동일한 길이를 가진다고 가정한다. 그 결과는 당연히 임의의 필터 길이들에 대한 일반적 경우까지 확대될 수 있다. (
Figure 112003045273941-pct00037
이 아닌
Figure 112003045273941-pct00038
인) 일반적인 경우들에서 k가 2와 같지 않을 때(즉 두 개의 필터링 연산 이외의 것들이 존재할 때), 언셔플 연산이 아닌 적절한 스트라이드(stride) 순열이 적용된다.
식 (1)과 (2)에 개시된 개념을 채택할 때, DWT는 J개의 스테이지들 (분해 레벨 또는 옥타브로도 불려짐)에서 계산된다. 이때
Figure 112003045273941-pct00039
인 j 번째 스테이지는 우연한 변수들로 된 현 벡터와 희소 매트릭스
Figure 112003045273941-pct00040
의 곱을 구성하며, 그 벡터의 첫번째가 입력 벡터
Figure 112003045273941-pct00041
이다. 모든 매트릭스
Figure 112003045273941-pct00042
의 하부 우측 구석은 식별(identity) 매트릭스라는 것에 유의하고, 매트릭스
Figure 112003045273941-pct00043
의 구조를 고려하면, 그에 해당하는 알고리즘이,
Figure 112003045273941-pct00044
Figure 112003045273941-pct00045
(
Figure 112003045273941-pct00046
)가 우연한 변수들로 된
Figure 112003045273941-pct00047
개의 벡터들이고
Figure 112003045273941-pct00048
의 표시는 연쇄적 열(column) 벡터들
Figure 112003045273941-pct00049
을 나타내는, 이하의 의사코드(pseudocode)로서 쓰여질 수 있다.
<제1알고리즘>
Figure 112003045273941-pct00050
Figure 112003045273941-pct00051
수학식 2의 매트릭스
Figure 112003045273941-pct00052
를 가진, 제1알고리즘의 계산이 플로우그래프 개념을 이용해 보여질 수 있다.
Figure 112003045273941-pct00053
인 경우의 예가 도 2에 도시된다. 이 플로우그래프는 J개의 스테이지들로 이뤄지고, j(
Figure 112003045273941-pct00054
)번째 스테이지는
Figure 112003045273941-pct00055
개의 노드들(도 2에서 박스들로 묘사됨)을 포함한다. 각 노드는 기본 DWT 연산(도 2(b) 참조)을 나타낸다.
Figure 112003045273941-pct00056
인 스테이지 j의 i번째 노드(
Figure 112003045273941-pct00057
)는 선행하는 스테이지의 순환적 연속 노드들인
Figure 112003045273941-pct00058
또는 (첫번째 스테이지의 노드들에 대한) 입력들로부터 들어오는 엣지(edge)들을 구비한다. 각 노드는 두 개의 출력 엣지들을 포함한다. 상위(하위) 출력 엣지는 저역 통과(고역 통과) 필터 계수들로 된 벡터와 들어오는 엣지들의 값들로 된 벡터의 내적(inner product)의 값을 나타낸다. 한 스테이지의 출력 값들은 완전 언셔플 연산자에 의해 치환되는데, 모든 저대역 통과 성분들(상위 출력 엣지들의 값들)이 첫번째 절반으로 모이고, 고대역 통과 성분들은 치환 벡터의 나머지 절반으로 모여지도록 한다. 그러면 저대역 통과 성분들은 다음 스테이지로의 입력을 형성하거나 (마지막 스테이지 노드들에 있어서) 출력 값을 나타낸다. 그 단계에서의 고대역 통과 성분들 및 저대역 통과 성분들은 주어진 해법(resolution)에서의 출력 값들을 나타낸다.
실질적으로, 플로우그래프 개념은 이산 웨이브릿 변환의 또 다른 정의를 제공한다. 그것은 세-구조 필터 뱅크, 리프팅 방식 또는 격자 구조 개념과 같은 통상적 DWT 개념과 비교해, 적어도 실시의 관점에서 여러 잇점들을 포함한다.
그러나, DWT들의 플로우그래프 개념은 제시된 바와 같이, 보다 큰 N의 값들에 대해 매우 커지게 된다는 단점을 가진다. 이러한 단점은 다음과 같은 것을 기반으로 극복될 수 있다.
Figure 112003045273941-pct00059
, 즉 분해 레벨의 개수가 입력 벡터의 포인트들의 개수 보다 훨씬 적다고 가정할 때(대부분의 어플리케이션에서,
Figure 112003045273941-pct00060
), DWT 플로우그래프는
Figure 112003045273941-pct00061
개의 유사 패턴들로 이뤄짐을 알 수 있다(도 2의 빗금 부분 참조). 각 패턴은 자신의 옥타브들 각각으로의 입력 신호들을 형성하는 특정 방식을 가진
Figure 112003045273941-pct00062
포인트 DWT라고 간주될 수 있다.
Figure 112003045273941-pct00063
인 j번째 옥타브의
Figure 112003045273941-pct00064
개의 입 력값들은 원래의 DWT(
Figure 112003045273941-pct00065
길이의) 안에서
Figure 112003045273941-pct00066
개의 연속적인 값들로 이뤄진
Figure 112003045273941-pct00067
개의 겹치지 않는(non-overlapping) 그룹들로 나눠진다. 이것은 수학식 3의 벡터
Figure 112003045273941-pct00068
를 서브 벡터들인
Figure 112003045273941-pct00069
으로 나눈다는 것과 같은 것이다. 상기 및 이하에서
Figure 112003045273941-pct00070
표시는 x의 a번째에서 b번째까지의 성분들로 이뤄진 x의 서브 벡터를 의미한다. 그러면, s번째 패턴내에서
Figure 112003045273941-pct00071
인 j 번째 옥타브의 입력은 수학식 4와 같은 벡터의 서브 벡터
Figure 112003045273941-pct00072
가 된다.
Figure 112003045273941-pct00073
수학식 4의 벡터는
Figure 112003045273941-pct00074
인 순환적 다음
Figure 112003045273941-pct00075
벡터들을 가진 연쇄적 벡터
Figure 112003045273941-pct00076
이다.
Figure 112003045273941-pct00077
개의 패턴들이 하나의 패턴으로 병합될 때, DWT의 컴팩트형(또는 핵심) 플로우그래프 개념이 얻어진다. J=3, L=4인 경우의 컴팩트형 DWT 플로우그래프 개념의 예가 도 3에 도시된다. 컴트형 DWT 플로우그래프는 j(
Figure 112003045273941-pct00078
) 번째 스테이지에서
Figure 112003045273941-pct00079
개의 노드들을 구비하며,
Figure 112003045273941-pct00080
개의 일시 분포 값들로 된 세트가 모든 노드 마다 할당된다. 모든 노드 마다 ("비컴팩트형") DWT 플로우그래프에서와 같은 L 개의 입력 엣지 및 두 개의 출력 엣지들을 포함한다. 또 입력 엣지들은 이전 스테이지의 L개의 "순환적 연속" 노드들로부터 나오지만 이제 각 노드는 일시적 분포 값들로 된 한 세트를 나타낸다.
즉, j(
Figure 112003045273941-pct00081
) 번째 스테이지 i번째 노드의 L 개의 입력들은, s 번째 값에 있어서(
Figure 112003045273941-pct00082
), (j-1) 번째 스테이지의 노드들인
Figure 112003045273941-pct00083
에 연결되며, 이제 (s+s')번째 값들을 나타낸다(
Figure 112003045273941-pct00084
). 또, 이제 출력들은 컴팩트형 플로우그래프의 출력 엣지들을 통해 공간적으로만이 아니라 시간적으로 분포된다. 즉, 마지막 스테이지의 한 노드의 저대역 통과 필터링 결과나 한 노드의 고대역 통과 필터링 결과에 상응하는 각각의 출력 엣지는
Figure 112003045273941-pct00085
개의 출력 값들의 세트를 나타낸다. 컴팩트형 DWT 플로우그래프의 구조는 DWT의 길이에 의존하지 않고 분해 레벨의 개수 및 필터 길이에만 의존함에 유의해야 한다. DWT 길이는 각 노드에 의해 나타내지는 값들의 개수에만 반영된다. 컴팩트형 플로우그래프가 다소 변형된 부가 방식을 가진
Figure 112003045273941-pct00086
포인트 DWT 구성을 포함한다는 것에도 주목해야 한다. 실제로, 이 부가 방식은 DWT 정의에 대한 매트릭스 형식에 자주 이용된다.
Figure 112003045273941-pct00087
Figure 112003045273941-pct00088
의 메인
Figure 112003045273941-pct00089
-마이너(minor)를 나타낸다고 하자(수학식 2 참조)(
Figure 112003045273941-pct00090
). 즉
Figure 112003045273941-pct00091
Figure 112003045273941-pct00092
의 첫번째
Figure 112003045273941-pct00093
행들과 첫번째
Figure 112003045273941-pct00094
열들로 이뤄진 매트릭스라고 하자. 예를 들어, J-j+1=2이고 L=6이면,
Figure 112003045273941-pct00095
는 다음과 같은 형태가 된다:
Figure 112003045273941-pct00096
수학식 4의 개념을 채용할 때, 컴팩트형 플로우그래프로 표현되는 계산 과정은 다음과 같은 의사코드로 표현될 수 있다.
<제2알고리즘>
Figure 112003045273941-pct00097
Figure 112003045273941-pct00098
s에 대한 사이클을 병렬로 구축하여 병렬 DWT를 구현할 수 있다. 한편, j와 s에 대한 사이클의 내포(nesting) 순서를 바꾸고 j에 대해 (내포된) 사이클을 병렬로 구축함으로써 파이프라인형 DWT 구현을 가능하게 할 수 있다. 그러나, 이러한 두 구현 방식은 연산의 수가 한 옥타브에서 다음 옥타브까지 절반으로 되기 때문에 효율적이지 않을 수도 있다. 그러나, 두 방법을 조합하여 매우 효율적인 병렬-파이프라인형이나 부분 병렬-파이프라인형 구현이 이뤄지게 된다.
파이프라인 방식을 제2알고리즘에 적용할 때, s에 대한 계산이 j번째 옥타브(
Figure 112003045273941-pct00099
)가
Figure 112003045273941-pct00100
단계들의 지연을 유발함을 의미하는
Figure 112003045273941-pct00101
에 대한 계산 결과를 포함하므로 재타이밍(retiming)이 적용되어야 한다. 상기 지연은 누적되므 로, j번째 옥타브(
Figure 112003045273941-pct00102
)는
Figure 112003045273941-pct00103
단계들 중에 다음의 수학식 5의 지연을 가지고 시작해야 한다.
Figure 112003045273941-pct00104
따라서,
Figure 112003045273941-pct00105
단계부터 시작해
Figure 112003045273941-pct00106
단계가 될 때까지 계산이 이뤄진다.
Figure 112003045273941-pct00107
단계들에서 첫번째 옥타브만의 계산이 수행되고,
Figure 112003045273941-pct00108
단계들일 때 처음 두 옥타브들만의 연산이 수행되는 식으로 이뤄진다.
Figure 112003045273941-pct00109
단계에서 시작해
Figure 112003045273941-pct00110
단계가 될 때까지(
Figure 112003045273941-pct00111
라고 가정함) 모든 옥타브들
Figure 112003045273941-pct00112
의 계산이 수행되지만,
Figure 112003045273941-pct00113
단계에서 시작할 때에는 첫번째 옥타브에 대한 어떤 계산도 수행되지 않으며,
Figure 112003045273941-pct00114
단계에서 시작할 때 처음 두 옥타브들에 대한 어떤 계산도 수행되지 않는 식으로 계산이 이뤄진다. 일반적으로,
Figure 112003045273941-pct00115
단계들에서, 옥타브
Figure 112003045273941-pct00116
들에 대한 계산이 수행되며, 이때
Figure 112003045273941-pct00117
이고
Figure 112003045273941-pct00118
이다. 다음의 의사코드는 본 발명의 제안된 구 조들 안에서 구축되는 파이프라인형 DWT 구현을 나타낸 것이다.
Figure 112003045273941-pct00119
본 발명에서, 제1유형 및 제2유형 코어 DWT 구조들이라 일컫는 두 종류의 DWT 구조들의 일반 매개적 구조가, 한 코어 DWT 구조에 기반해 구성되고 각각 멀티 코어 DWT 구조와 가변 분해 DWT 구조라 칭하는 두개의 다른 DWT 구조들의 일반 매개적 구조들과 함께 개시된다.
모든 구조들은 가변 레벨의 병렬구조로 구현될 수 있으므로 속도와 하드웨어 복잡도간의 트레이드 오프(trade-off)가 가능하게 된다. 병렬구조의 레벨에 따라, 일정 시간 구현때까지의 처리 속도(시간 유닛 당 하나의
Figure 112003045273941-pct00120
포인트 DWT)가 얻어진다. 병렬구조의 각 레벨에서, 구조들은 거의 100%의 하드웨어 활용도를 가지고 동작하므로 직렬 DWT 구현에 비교할 때 병렬 구조 레벨에 대한 거의 선형적 속도 향상을 이룰 수 있다. 이러한 구조들은 상대적으로 DWT 패러미터들에 독립적이다. 즉, 제안된 구조들 중 한 구조를 포함하는 장치는 단일 DWT 뿐 아니라, 서로 다른 필터 길이를 가지거나 가변 해법 DWT 구조의 경우 임의의 길이로 된 벡터들에 대해 서로 다른 개수의 분해 레벨들을 가진 다양한 서로 다른 DWT들을 효과적으로 구현할 수 있을 것이다.
제안된 구조들에 대한 서로 다른 많은 구현방식들이 있을 수 있다. 따라서, 그 구조들의 일반적 구성이 한 동작 레벨에서 서술된다. 레지스터 레벨에서의 일반적 구성에 예시적 구현방식 역시 개시된다. 이들 구현 방식들은 일반적 구성의 유효성을 보여준다. 제안된 구조들은 알려진 구조들과는 동작 서술 레벨의 측면에서 실질적으로 상이하다. 각각의 제안된 구조들의 보다 상세한 정리가 이하에서 이뤄질 것이다. [34]에 발표된 FPP 및 LPP 구조들은 제1유형(멀티 및 단일) 코어 DWT 구조들에 대한 특정한 구현방법이라 간주될 수 있다.
제1유형 및 제2유형의 코어 DWT 구조들은 소정 개수
Figure 112003045273941-pct00121
를 초과하지 않은 길이 L의 저대역 통과 필터 및 고대역 통과 필터들에 기반하여
Figure 112003045273941-pct00122
옥타브들을 가진
Figure 112003045273941-pct00123
포인트 DWT를 구현한다. 이때 J 및
Figure 112003045273941-pct00124
(m 이나 L이 아닌)는 그 구현 방식에서의 패러미터들이다. 이 두 제1유형 및 제2유형의 코어 DWT 구조들은 직렬 또는 병렬 데이터 입력 블록과 J 개의 파이프라인 스테이지를 구비하고,
Figure 112003045273941-pct00125
인 j번째 스테이지는 데이터 라우팅(routing) 블록과
Figure 112003045273941-pct00126
개의 처리 요소들(PE)로 이뤄진다. 이것은 도 4와 관련해 설명될 것이다. 이 구조의
Figure 112003045273941-pct00127
인 j번째 파이프라인 스테이지는 j번째 DWT 옥타브의
Figure 112003045273941-pct00128
개의 독립적 유사 동작들을
Figure 112003045273941-pct00129
개의 동작 단계로 구현한다. 각 단계에서,
Figure 112003045273941-pct00130
동작들로 된 그룹이 파이프라인 스테이지의
Figure 112003045273941-pct00131
개 처리 요소들 내에서 병렬로 구현된다. 처리 요소들은 가변 레벨의 병렬구조로 구현될 수 있고, 이것은 입력의 개수
Figure 112003045273941-pct00132
에 의해 구체화된다. p개의 입력을 가진 단일 처리 요소는, 모든 타임 유닛에서
Figure 112003045273941-pct00133
의 곱셈 및 가산의 결과가 병렬로 얻어지는
Figure 112003045273941-pct00134
시간 유닛들로 구성된 한 동작 단계로 된 단일 기본 DWT 연산(도 2(b) 참조)을 구현한다. 따라서, (연속적인 입력 벡터들이 구조안으로 진입할 때 시간 유닛들 사이의 인터벌로서 측정되는) 시간 주기는 시간 유닛의 듀레이션(duration)이 하나의 곱셈 동작 주기와 동일한,
Figure 112003045273941-pct00135
시간 유닛들과 동일하다. 이것은 앞서 알려진 구조들 [12-26] 중 최고로 빠른 주기 보다
Figure 112003045273941-pct00136
배가 빠르고 [30]에 기술된 구조들 보다는
Figure 112003045273941-pct00137
배 만큼 빠르다. 이 두 구조들의 효율성(또는 하드웨어 유용성)은
Figure 112003045273941-pct00138
가 된다.
Figure 112003045273941-pct00139
인 경우, 그 주기는
Figure 112003045273941-pct00140
시간 유닛이 되고, 이것은 필터 길이 L에 의존하는(LPP 구조는 고정 길이 L인 필터들로만 DWT를 구축할 수 있임) [34] 및 [35]에 개시된 LPP 구조에서와 동일하다. 두 유형의 코어 DWT 구조는 한 파이프라인 스테이지의 처리 요소들 사이의 상호 연결의 부재(제1유형)와 존재(제2유형)에 따라 달라진다. 이 두 유형의 코어 DWT 구조의 가능한 구현 방법이 도 5에서 10에 개시된다. 상술한 두 유형의 코어 DWT 구조는 패러미터
Figure 112003045273941-pct00141
에 따른 병렬구조의 가변 정도로 구현될 수 있다.
또, 새로운 패러미터인
Figure 112003045273941-pct00142
을 도입해, 병렬구조 레벨에서의 유연성(flexibility)이 멀티 코어 DWT 구조들 안에서 얻어질 수 있다. 멀티 코어 DWT 구조는, 실제로, 해당 (단일)코어 DWT 구조를
Figure 112003045273941-pct00143
회 확장함으로써 그 (단일)코 어 DWT 구조로부터 얻어진다. 그 일반적 구성이 도 11에 개시된다. 이 구조는 직렬 또는 병렬 데이터 입력 블록과 J 개의 파이프라인 스테이지로 이뤄지며, j (
Figure 112003045273941-pct00144
)번째 파이프라인 스테이지는 하나의 데이터 라우팅 블록 및
Figure 112003045273941-pct00145
개의 처리 요소들로 이뤄져 있다. 멀티 코어 DWT 구조의 시간 주기는
Figure 112003045273941-pct00146
개의 시간 유닛들과 같고, 단일 코어 DWT 구조의 시간 주기 보다
Figure 112003045273941-pct00147
배 만큼 빠르다. 즉, 선형 속도 증가가 이뤄진다. 멀티 코어 DWT 구조의 효율도는 단일 코어 구조에서와 동일한, 약 100%이다.
Figure 112003045273941-pct00148
Figure 112003045273941-pct00149
의 경우, 그 주기는
Figure 112003045273941-pct00150
포인트 DWT에 대한 단일 시간 유닛이 된다. 동일한 성능이 [34] 및 [35]에 개시된 FPP 구조에서 얻어지며, 이는 멀티 코어 DWT 구조의 가능한 구현 방식의 특별한 경우(
Figure 112003045273941-pct00151
Figure 112003045273941-pct00152
)로서 간주될 수 있다.
단일 및 멀티 코어 DWT 구조들은 입력 길이 및 필터들의 길이에 상대적으로 무관하며, 이것은 (
Figure 112003045273941-pct00153
를 초과하지 않는 길이를 가진) 임의의 필터들에 기초하고 임의의 길이로 된 신호들에 적용되는 DWT들이 제1유형 또는 제2유형 코어 DWT 구조를 구비한 동일한 장치들로 효과적으로 구현될 수 있음을 의미한다. 그러나, 제1유형, 제2유형 및 멀티 코어 구조들은 DWT 옥타브 개수 J에 의존한다. 이들은 J 개 보다 적은 옥타브들로 DWT들을 구현하지만, 하드웨어 유용도에서 약간의 손실이 따른다.
가변 해법 DWT 구조는 임의의 옥타브 개수 J'로 DWT들을 구현하며, 이 구조의 효율성은 J'가 소정 개수와 같거나 그보다 클 때면 약 100%를 유지한다. 가변 해법 DWT 구조는
Figure 112003045273941-pct00154
개의 분해 레벨에 상응하는 코어 DWT 구조와, 예를 들어 RPA 기반 구조(도 12(a) 참조)인 임의의 직렬 DWT 구조를 구비한다. 코어 DWT 구조는 J'-옥타브 DWT의 처음
Figure 112003045273941-pct00155
개의 옥타브들을 구현하고, 직렬 DWT 구조는 J'-옥타브 DWT의 마지막
Figure 112003045273941-pct00156
개의 옥타브들을 구현한다. 코어 DWT 구조가 가변 레벨 병렬구조로 구현될 수 있기 때문에,
Figure 112003045273941-pct00157
일 때마다 대략 100%의 하드웨어 유용도가 얻어지도록 직렬 DWT 구조와 균형을 맞출 수 있다.
멀티 코어 DWT 구조에 기반한 가변 해법 DWT 구조는 데이터 라우팅 블록이 멀티 코어 및 직렬 DWT 구조들 사이에 삽입되게 구성될 수도 있다(도 12(b) 참조).
<제안된 DWT 구조들>
여기서는, 멀티 코어 DWT 구조 및 가변 해법 DWT 구조라고 각각 일컬어지고 코어 DWT 구조들에 기반해 만들어진 두 개의 다른 DWT 구조들과 함께, 제1유형과 제2유형 코어 DWT 구조들이라 칭해지는 두 유형의 DWT 구조의 일반적 구성을 기술한다. 멀티 코어 DWT 구조는 코어 DWT 구조들 가운데 하나를 확장한 것으로서, 패러미터
Figure 112003045273941-pct00158
에 의존하여 가변 레벨 병렬구조로 구현될 수 있고, 특정의 경우(
Figure 112003045273941-pct00159
)에는 단일 코어 DWT 구조가 된다. 이해하기 쉽도록, 이 구조들에 대한 개시는 단일 코어 DWT 구조들의 설명으로부터 시작한다.
두 종류의 코어 DWT 구조는 소정 개수
Figure 112003045273941-pct00160
를 초과하지 않는 길이 L을 가진 저대역 통과 및 고대역 통과 필터들에 기반해 J개의 분해 레벨들(옥타브들)을 가진 임의의 이산 웨이브릿 변환을 구현한다. 그들의 동작은 앞서 기술한 제3알고리즘 에 기반한다. 그 두 유형의 코어 DWT 구조를 나타내는 일반적 구성이 도 4에 개시되며, 여기서 점선들은 특정 구현 방식에 따라 존재할 수도 존재하지 않을 수도 있는 연결을 묘사한다. 제1유형에서는 연결들이 존재하지 않지만 제2유형에서는 존재한다. 이 양 경우들에 있어, 구조는 데이터 입력 블록과 J개의 파이프라인 스테이지들로 이뤄지고, 각 스테이지는 데이터 라우팅 블록과 처리 요소들의 블록을 포함하며, 여기서 데이터 입력 블록은 제3알고리즘의 제1단계를 구현하고, 데이터 라우팅 블록들은 제2.1단계를 담당하며, 처리 요소들의 블록은 제2.2단계의 산출을 위한 것이다. 두 코어 구조 유형들은 주로 동일한 파이프라인 스테이지의 처리소자들 사이의 데이터 교환 가능성에 따라 달라진다. 제2유형 코어 DWT 구조에서, 단일 스테이지의 처리소자들은 상호 연결을 통해 즉각적인 데이터를 교환할 수 있는 한편, 제1유형 코어 DWT 구조에서는 파이프라인 스테이지 안에 처리 요소들간 상호 연결이 존재하지 않기 때문에 단일 스테이지의 처리소자들은 동작중에 데이터를 교환하지 않는다.
일반적으로, 데이터 라우팅 블록들 및 처리 요소들의 블록들에 대한 많은 다른 구현 방식들이 있을 수 있다. 따라서, 한 양상에 있어서, 본 발명은 처리 요소들 및 데이터 라우팅 블록들에 대해 선택된 정밀한 구현과 무관하게, 블록 레벨에서 묘사되고(도 4, 11 및 12) 이하의 동작 레벨에서 묘사되는 것과 같은 구조에 존재한다고 간주될 수 있다. 그러나, 레지스터 레벨에서의 제안된 코어 DWT 구조들의 몇몇 실제 구현 방식들이 도 5에서 10을 참조해 예로서 개시된다. 이들 예시적 구현 방식들은 본 발명의 유효함을 보인다.
도 4는 제1유형 및 제2유형 코어 DWT 구조의 일반적 구성을 개시한다. 앞서 설명한 바와 같이, 제1유형 및 제2유형은 한 스테이지 안의 처리 요소들간 상호 연결의 부재 및 존재에 있어서만 그 차이가 있다. 양 유형의 코어 DWT 구조들의 데이터 입력 블록은 직렬 워드(word-serial) 또는 병렬 워드(word-parallel)로 구현될 수 있다. 전자의 경우, 데이터 입력 블록은 셀들 각각으로부터 병렬 워드를 출력하는
Figure 112003045273941-pct00161
길이의 쉬프트 레지스터(도 4의 점선으로된 블록)에 연결되는 단일(직렬 워드) 입력 포트로 구성된다. 후자의 경우, 데이터 입력 블록은
Figure 112003045273941-pct00162
의 병렬 입력 포트들을 구비한다. 그 두 경우들에서, 데이터 입력 블록은 첫번째 파이프라인 스테이지에 있는 데이터 라우팅 블록의
Figure 112003045273941-pct00163
개의 입력들과 연결되는
Figure 112003045273941-pct00164
개의 병렬 출력들을 포함한다. 도 6에 병렬 워드 데이터 입력 블록의 예가 개시되고, 도 7 및 10은 직렬 워드 데이터 입력 블록의 예를 개시한다.
<제1유형 코어 DWT 구조>
제1유형 코어 DWT 구조 안에 구현되는 기본 알고리즘은 2.2단계를 구현하는 특정 순서를 가진 제3알고리즘이다.
Figure 112003045273941-pct00165
매트릭스
Figure 112003045273941-pct00166
의 구조는 2.2 단계의 매트릭트 벡터 곱셈이
Figure 112003045273941-pct00167
쌍의 벡터-벡터 내적 계산들로 분해될 수 있도록 하는 것이다:
Figure 112003045273941-pct00168
상기 구조는 병렬로 구현될 수 있다. 한편, 길이 L의 각 벡터-벡터 내적은 (계수 벡터들과 입력 벡터들이 적합한 개수의 0들로 첨가되고 연속적인
Figure 112003045273941-pct00169
개의 성분들로 된 서브 벡터들로 분할된다고 가정할 때) 내적의 결과가 누적된
Figure 112003045273941-pct00170
길이의 일련의
Figure 112003045273941-pct00171
내적들로 분해될 수 있다. 결국, 제3알고리즘은 이전 의사코드에 대해 다음과 같은 변형된 형태로서 제공될 수 있다.
Figure 112003045273941-pct00172
Figure 112003045273941-pct00173
s 및 j가 주어질 때, 수식 (6) 및 (7) 연산 그룹은, n=0에서의 서브 벡터
Figure 112003045273941-pct00174
,
Figure 112003045273941-pct00175
및, 일반적으로
Figure 112003045273941-pct00176
에서의 서브 벡 터
Figure 112003045273941-pct00177
을 관련시킨다는 것에 유의한다. 즉,
Figure 112003045273941-pct00178
에 대한 계산은, 벡터 성분들을 p 위치만큼 왼쪽으로 옮긴 벡터
Figure 112003045273941-pct00179
로부터 얻어지는 벡터
Figure 112003045273941-pct00180
의 최초
Figure 112003045273941-pct00181
개의 성분들을 관련시킨다. 소정의
Figure 112003045273941-pct00182
에 대한 계산에서는 항상 현재의 벡터
Figure 112003045273941-pct00183
성분들
Figure 112003045273941-pct00184
을 관련시킨다는 것에 유의해야 한다.
제1유형 코어 DWT 구조의 일반적 구성이 도 4에 개시된다. 이런 구조의 경우, 점선들은 무시될 수 있는데, 이는 단일 스테이지의 처리 요소들 사이에 어떤 연결도 존재하지 않기 때문이다. 이 구조는 (이미 상술한) 데이터 입력 블록과 J개의 파이프라인 스테이지들로 이뤄진다. 일반적으로 제1유형 코어 DWT 구조의 j(
Figure 112003045273941-pct00185
) 번째 파이프라인 스테이지는 그 스테이지로의 입력을 형성하는
Figure 112003045273941-pct00186
개의 입력들
Figure 112003045273941-pct00187
과,
Figure 112003045273941-pct00188
개의 처리 요소들의 입력들과 연결된
Figure 112003045273941-pct00189
개의 출력들
Figure 112003045273941-pct00190
을 구비하는 데이터 라우팅 블록을 구비한다. 모든 처리 요소는 p개의 입력과 두개의 출력을 가지며,
Figure 112003045273941-pct00191
는 모든 처리 요소의 병렬 구조 레벨을 나타내는 구현 방식의 패러미터이다. j(
Figure 112003045273941-pct00192
)번째 데이터 라우팅 블록의 연속적인 p개의 출력들
Figure 112003045273941-pct00193
은 동일한 스테이지의 i(
Figure 112003045273941-pct00194
) 번째 처리 요소(
Figure 112003045273941-pct00195
)의 p개의 입력들과 연결된다. j(
Figure 112003045273941-pct00196
)번째 파이프라인 스테이지의
Figure 112003045273941-pct00197
개의 처리 요소들 각각의 최초 출력들은 그 스테이지의 출력들인
Figure 112003045273941-pct00198
을 형성하고 다음 (j+1) 스테이지의 데이터 라우팅 블록의
Figure 112003045273941-pct00199
개의 입력들인
Figure 112003045273941-pct00200
와 연결된다. 마지막 J번째 스테이지의 (한) 처리 요소의 최초 출력은 이 구조의 0 번째 출력
Figure 112003045273941-pct00201
이다. j(
Figure 112003045273941-pct00202
)번째 파이프라인 스테이지의
Figure 112003045273941-pct00203
개의 처리소자들의 두번째 출력은, 이 구조의
Figure 112003045273941-pct00204
번째에서
Figure 112003045273941-pct00205
까지의 출력들
Figure 112003045273941-pct00206
을 형성한다.
제1유형 코어 DWT 구조의 블록들이 이제 그 동작 레벨에서 서술될 것이다. 편의를 위해, 한 시간 유닛은 처리 요소들이 한 동작(연산)을 완수하는 주기(처리 요소로 들어가는 p 개의 데이터로 된 일련의 그룹들간의 주기와 동일)라고 정의하고 이 구조의 동작 단계는
Figure 112003045273941-pct00207
개의 시간 유닛들을 구비한다고 정의한다.
데이터 입력 블록은 동작 단계당
Figure 112003045273941-pct00208
개의 성분들의 비율(rate)로 입력 벡터의 성분들로 된 그룹을 직렬 또는 병렬로 입력하고 병렬로 출력한다. 따라서, 벡터
Figure 112003045273941-pct00209
Figure 112003045273941-pct00210
단계들에서 데이터 입력 블록의 출력단에서 형성된다.
(
Figure 112003045273941-pct00211
스테이지)의 데이터 라우팅 블록은, 보통, 모든 동작 단계의 n=0인 최초 시간 유닛에서
Figure 112003045273941-pct00212
개의 성분들로 된 벡터를 병렬로 입력하는 임의의 회로로서 구현될 수 있으며, 그리고 나서 데이터 라우팅 블록은 그 동작 단계의 모든 시간 유닛인
Figure 112003045273941-pct00213
에서, 다음의 수학식 8과 같은 이전
Figure 112003045273941-pct00214
단계들에서 수용된 벡터들의 (시간 순서로 된) 연쇄적 벡터의
Figure 112003045273941-pct00215
개의 성분들
Figure 112003045273941-pct00216
로 된 벡터를 병렬로 출력한다.
Figure 112003045273941-pct00217
제1유형 코어 DWT 구조에 사용된 처리 요소들의 기능은 모든 각 시간 유닛 중에, p개의 입력단들에서의 벡터와 소정 계수들로 된 두 벡터들의 두 내적을 산출하고 한 동작 단계중에 계산된 그 두 내적의 결과를 (따로) 누적하는 것이다. 각 동작 단계의 마지막에서, 두 누적된 결과들은 처리 요소의 두 출력부로 보내지고 새로운 누적이 시작된다. 올바른 변수들이 각 처리 요소들의 입력단에 만들어지면 각 처리 요소가 한 쌍의 연산식인 수식 (6) 및 (7)을 구현함이 자명할 것이다.
이제 이 구조가 제3.1알고리즘에 따른 계산을 구현함을 보일 것이다.
Figure 112003045273941-pct00218
인 경우 추가 지연이 일어난다. 이 추가 지연은 임의의 필터 길이
Figure 112003045273941-pct00219
를 가진 DWT들을 구현할 수 있는 구조의 유연성에 따른 결과(댓가)이다. 이것은 고정 필터 길이 L을 가진 DWT의 계산방식을 개시한 제3.1알고리즘과 비교될 수 있다. 실제로, 그 구조는 필터 길이
Figure 112003045273941-pct00220
에 대해 설계된 것이지만, 다소 증가된 시간 지연을 가지면서 시간 주기의 증가는 없는 보다 짧은 필터들을 가진 DWT들 역시 구현한다.
Figure 112003045273941-pct00221
임에 유의한다.
이 구조의 동작 중, 벡터
Figure 112003045273941-pct00222
Figure 112003045273941-pct00223
단계의 데이터 입력 블록의 출력단에 형성되어, 첫번째 파이프라인 스테이지에 있는 데이터 라우팅 블록의 입력부로 들어간다. 이 구조가 제3.1알고리즘에 따른 계산을 수행한다는 것을 보이기 위해, 벡터들
Figure 112003045273941-pct00224
Figure 112003045273941-pct00225
단계들에서 j번째 스테이지로 들어간다고 할 때, 벡터들
Figure 112003045273941-pct00226
이 ((j+1)번째 스테이지의 입력단에 연결되는) j번째 스테이지의 처리 요소들의 첫번째 출력단에 형성된다는 것을 보이는 것으로 충분하다 (수학적 귀납으로 증명). 따라서, j (
Figure 112003045273941-pct00227
) 스테이지의 데이터 라우팅 블록이
Figure 112003045273941-pct00228
단계들에서
Figure 112003045273941-pct00229
벡터들을 수용한다고 가정한다. 그러면, 데이터 라우팅 블록들의 동작 사양에 따라, 각각
Figure 112003045273941-pct00230
단계들에서 수용되는 벡터들의 연쇄적 연결인 다음의 수학식 10과 같은 벡터의 성분들
Figure 112003045273941-pct00231
이,
Figure 112003045273941-pct00232
Figure 112003045273941-pct00233
단계의 시간 유닛
Figure 112003045273941-pct00234
에서 데이터 라우팅 블록의 출력단에 형성될 것이다.
Figure 112003045273941-pct00235
이므로(수학식 3과 수학식 9를 비교), 벡터
Figure 112003045273941-pct00236
(수학식 4에 의해 정의됨)는
Figure 112003045273941-pct00237
의 서브 벡터이고 그 벡터들의 첫번째
Figure 112003045273941-pct00238
성분들은 완전히 동일하다. 따라서 벡터
Figure 112003045273941-pct00239
Figure 112003045273941-pct00240
스테이지의 데이터 라우팅 블록의 출력단에,
Figure 112003045273941-pct00241
단계의 시간 유닛
Figure 112003045273941-pct00242
에서 형성된다. 데이터 라우팅 블록과 처리 요소들 사이의 연결로 인해, 실제로 수식 (6) 및 (7) 동작의 독립변수들인, 벡터
Figure 112003045273941-pct00243
의 성분들
Figure 112003045273941-pct00244
Figure 112003045273941-pct00245
단계의 시간 유닛
Figure 112003045273941-pct00246
Figure 112003045273941-pct00247
의 입력단에 형성될 것이다. 따라서, 처리소자들이 해당 계수들을 가지고 자신들의 동작을 구현할 때, 벡터
Figure 112003045273941-pct00248
가 처리소자들의 최초의 출력단에 형성되고, 벡터
Figure 112003045273941-pct00249
Figure 112003045273941-pct00250
단계 이후 처리소자들의 두번째 출력단에 형성될 것이다. 처리 요소들의 최초의 출력단이 다음 파이프라인 스테이지의 입력단에 연결되므로, 이 구조가 다른 타이밍을 가진다고는 해도(제3.1알고리즘의 모든 부분에서
Figure 112003045273941-pct00251
Figure 112003045273941-pct00252
로 대체함) 제3.1알고리즘에 따른 계산방식을 구현한다는 것을 입증한다.
상기 논의로부터
Figure 112003045273941-pct00253
-포인트 DWT가 각각이
Figure 112003045273941-pct00254
개의 시간 유닛들로 이뤄진
Figure 112003045273941-pct00255
단계들로 된 제1유형 코어 DWT 구조로서 구현됨이 명백해진다. 따라서, 해당 벡터들의 입력과 출력간의 지연은 다음의 수학식 11과 같은 타임 유닛과 같게 된다.
Figure 112003045273941-pct00256
이 구조는 입력 벡터들의 스트림인 DWT들을 구현할 수 있다는 것이 자명하다. 따라서, 처리 속도 혹은, (연속 입력 벡터들이 그 구조로 입력될 때의 시간 유닛들간 인터벌로서 측정되는) 시간 주기가 다음의 수학식 12의 시간 유닛들과 같다는 것이 명확해진다.
Figure 112003045273941-pct00257
병렬/파이프라인형 구조의 성능은 흔히 수학식 13과 같이 정의되는, 하드웨어 활용성 또는 효율성과 관련해 평가된다.
Figure 112003045273941-pct00258
T(1)은 한 처리소자를 가진 알고리즘의 구현 시간을 나타내고, T(K)는 K개의 처리소자들을 구비한 구조의 동일 알고리즘의 구현 시간이다.
Figure 112003045273941-pct00259
시간 유닛은 제1유형 코어 DWT 구조에 사용되는 처리소자들과 유사한 하나의 처리소자를 이용해
Figure 112003045273941-pct00260
포인트 DWT를 구현하는데 필요로 됨을 알 수 있다. 수학식 11 및 12와 함께, 제1유형 코어 DWT 구조 내에 총
Figure 112003045273941-pct00261
개의 처리소자들이 존재한다는 사실을 고려할 때, 시간 지연, 또는 덧붙여 시간 주기 복잡성 모두와 관련해, 이 구조에서 약 100%의 효율성(하드웨어 유용성)이 달성됨을 알 수 있다. 종래 기술([17] 참조)로부터 알려진 몇 개의 파이프라인형 DWT 디자인에서만 FPP 구조의 효율성과 가까운 효율성에 도달될 수 있는 반면, 기존의 파이프라인형 DWT 구조들 대부분은 100%의 평균 효율성 보다 훨씬 못미친다는 것에 유의해야 한다. 기존의 DWT 구조들에서 적어도 O(N) 시간 유닛의 시간 주기가 필요하다는 것 역시 유의해야 한다. 본 발명의 구조는 패러미터 p에 따른 가변 레벨 병렬구조로 구현되므로 원하는 시간 주기를 달성할 수 있다. 수학식 12로부터와 같이, 구현방식의 시간 주기 복잡 도는
Figure 112003045273941-pct00262
Figure 112003045273941-pct00263
사이에서 가변한다. 따라서, 이 구조의 처리속도는 가장 빠르다고 알려진 구조들에서의 처리속도 보다
Figure 112003045273941-pct00264
에서
Figure 112003045273941-pct00265
배 만큼 더 빠르다. 가변 레벨 병렬구조로 이 구조를 구현하는 것은 시간과 하드웨어 복잡도 사이에 타협이 될 기회 또한 제공한다. 이 구조는 매우 정상적이고 가령 [17]의 구조와는 달리 단순한 제어 구성(실질적으로, 클록)만을 필요로 한다는 것 역시 주목해야 한다. 이 구조는 피드백, 스위치들, 또는 입력의 크기에 종속되는 긴 연결을 포함하지 않으며, 다만 기껏해야 길이가 O(L)일 뿐인 연결들을 포함할 뿐이다. 따라서, 이 구조는 부분 단축(semisystolic) 어레이로서 구현될 수 있다.
<제1유형 코어 DWT 구조의 가능한 구현>
제1유형 코어 DWT 구조에 있어서, j(
Figure 112003045273941-pct00266
) 번째 파이프라인 스테이지의 가능한 구성이 도 5에 도시된다.
Figure 112003045273941-pct00267
인 경우에 대한 그러한 두 구현 예가 도 6 및 7에 도시되며, 여기서 각각
Figure 112003045273941-pct00268
이고 p=2이다.
Figure 112003045273941-pct00269
인 경우 및, 특히 도 6의 예에 대한 특정 버젼에 해당하는 이러한 구현에 대한 특정 경우가 [34] 및 [35]의 간행물들에 개시됨에 유의해야 하며, 이때 그 경우는 제한된 병렬-파이프라인형(LPP) 구조라고 언급되었다. 이와 반대로, 제1유형 DWT 구조 및 도 5에 있는 그 구현 방식은 임의의 p의 경우에 대한 것이다. [34] 및 [35] 문헌들에 설명된 LPP 구조는
Figure 112003045273941-pct00270
보다 작은 필터 길이들을 가진 DWT들의 효과적인 계산을 지원하지 않지만, 도 5에 개시된 제1유형 코어 DWT 구조의 구현 방식은 지원한다는 것 또한 유의해야 한다.
도 5를 참조할 때, 이 구현 방식에서 데이터 라우팅 블록은 각각
Figure 112003045273941-pct00271
지연의
Figure 112003045273941-pct00272
체인 연결 그룹들과, 각 시간 유닛에서 자신의 셀들 안의 값들을 p위치 만큼 위로 이동시키는
Figure 112003045273941-pct00273
길이의 쉬프트 레지스터로 이뤄짐을 알 수 있다. 스테이지로의
Figure 112003045273941-pct00274
개의 입력은 첫번째 지연 그룹과 병렬로 연결되고, 그 출력은 다음 지연 그룹의 입력들과 연결된다. 각 지연 그룹의 출력들은 쉬프트 레지스터의
Figure 112003045273941-pct00275
개의 연속 셀들과 병렬로 연결된다, 마지막
Figure 112003045273941-pct00276
번째 지연 그룹의 출력들은 첫번째
Figure 112003045273941-pct00277
셀들로 연결되고,
Figure 112003045273941-pct00278
번째 지연 그룹의 출력들은 그 다음
Figure 112003045273941-pct00279
셀들에 연결되는 식이지만, 예외적으로, 그 스테이지의 첫번째
Figure 112003045273941-pct00280
입력들은 쉬프트 레지스터의 마지막
Figure 112003045273941-pct00281
셀들로 직접 연결된다. 쉬프트 레지스터의 첫번째
Figure 112003045273941-pct00282
셀들의 출력들은 데이터 라우팅 블록의 출력을 형성하고 처리소자들의 입력들과 연결된다.
Figure 112003045273941-pct00283
의 경우(도 6 참조) 쉬프트 레지스터가 필요로 되지는 않지만, 지연 소자들의 그룹들의 출력 및 그 스테이지의
Figure 112003045273941-pct00284
개의 입력은 처리소자들의 입력에 직접 연결된다. 한편, p=2인 경우(도 7 참조) 쉬프트 레지스터의 첫번째 셀들로부터 처리소자들의 입력들까지
Figure 112003045273941-pct00285
개의 병렬 연결들만이 존재하므로, 데이터 라우팅 블록과 처리소자들 간의 상호 연결은 간단해진다. 이 분야의 당업자에게는 본 발명에 개시된 구현 방식이 제1유형 코어 DWT 구조의 데이터 라우팅 블록에 대한 동작 제한을 만족시킨다는 것이 명백할 것이다. 실제로, 모든 스텝이 시작될 때, 쉬프트 레지스터는
Figure 112003045273941-pct00286
단계들 이전에 수용된 데이터의 벡터와 다음에 수 용되는 벡터들로부터의 첫번째
Figure 112003045273941-pct00287
개의 성분들로 된 벡터와의 연쇄적 연결부(concatenation)를 포함한다.
Figure 112003045273941-pct00288
시간 유닛 도중, 쉬프트 레지스터는 매 시간마다 그 성분들을 p 위치만큼 위로 이동시킨다.
제1유형 코어 DWT 구조에 대한 처리소자들의 가능한 구성들이 임의의
Figure 112003045273941-pct00289
인 경우에 대해 도 8(각각 도 8a, b, c 및 d)에 도시된다. 역시 이 분야의 당업자에게는 이러한 구성이 수식 (6) 및 (7)의 동작을 구현한다는 것과, 따라서 처리소자들의 동작 사양을 만족시킬 수 있다는 것이 자명할 것이다. 이 구성들이 필터 계수들에 관계없이 일반적 DWT 구현에 적합하다는 것과, 특정 필터 계수들에 적합한 처리 요소 구성 역시 구현될 수 있다는 것에도 다시 유의해야 한다.
<제2유형 코어 DWT 구조>
제2유형 코어 DWT 구조는 제3.1알고리즘의 다소 변형된 버전을 구현한 것이다. 그 변형은 수식 6 및 7 동작의 피연산함수(operand)들이
Figure 112003045273941-pct00290
이 되는 색인 i 및 n으로 된
Figure 112003045273941-pct00291
Figure 112003045273941-pct00292
쌍에 있어서 동일하다는 관측에 기반하고 있다. 짝수 p를 가정할 때(홀수의 경우도 비슷하게 다뤄지나 그 표현에 있어 더 많은 기술을 요한다), 이는, 수학식 (6) 및 (7)의 동작을 구현할 때 브랜치
Figure 112003045273941-pct00293
내 시간 유닛
Figure 112003045273941-pct00294
에 사용되는데 필요로 되는 피승수들이, 브랜치
Figure 112003045273941-pct00295
내 n-1 단계에서 얻어지는 피승수들로부터 얻어질 수 있다는 것을 의미한 다. 상응하는 계산 과정이 이하의 의사코드로 설명될 것이다:
Figure 112003045273941-pct00296
<제3.2알고리즘>
Figure 112003045273941-pct00297
Figure 112003045273941-pct00298
제2유형 코어 DWT 구조의 일반적인 구성이 도 4에 도시된다. 이 경우, 동일한 파이프라인 스테이지에 속하는 처리소자(PE)들간의 연결들 (점선)은 유효하다. 도 4에서와 같이, 제2유형 코어 DWT 구조는, p개의 입력과 2개의 출력(이후부터 메인 입력과 메인 출력으로 칭함)에 있어 모든 처리소자가 추가의 p개 입력 및 p개의 출력(이후 중간 입력 및 출력으로 칭함)을 구비한다는 것을 제외하면 제1유형 코어 DWT 구조와 유사하다.
Figure 112003045273941-pct00299
의 p개의 중간 출력은
Figure 112003045273941-pct00300
의 p개의 중간 입력들과 연결된다. 제2유형 코어 DWT 안의 다른 연결들은 제1유형 코어 DWT 구조 내의 연결들과 유사하다.
제2유형 코어 DWT 구조의 동작은 제1유형 코어 DWT 구조의 동작과 실질적으로 동일하다. 데이터 입력 블록의 동작은 제1유형 DWT 구조의 경우에서와 완전히 동일하다.
(
Figure 112003045273941-pct00301
스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 타임 유닛 n=0에서
Figure 112003045273941-pct00302
개 성분들로 된 벡터를 병렬로 수용하고 수학식 8에 정의된 이전
Figure 112003045273941-pct00303
단계들에서 수용된 벡터들의 (시간적 순서로) 연결부인 벡터의 첫번째
Figure 112003045273941-pct00304
개의 성분들
Figure 112003045273941-pct00305
로 된 벡터를 병렬로 출력하는 임의의 회로로서 구현될 수 있다. 그러한 동작 단계의 각 시간 유닛
Figure 112003045273941-pct00306
에서, 데이터 라우팅 블록은 자신의 마지막 p개의 출력단에 동일 벡터의 p개의 성분
Figure 112003045273941-pct00307
으로 된 다음 서브 벡터를 병렬로 출력한다.
각 동작 단계의 모든 시간 유닛
Figure 112003045273941-pct00308
에서의 제2유형 코어 DWT 구조의 동작은 p 개의 메인, 또는 p개의 중간 입력단에 존재하는 벡터 x와, 소정 계수들로 된 두 벡터들인, 길이 p의 LP' 및 HP'와의 두 내적을 산출하는 것이고, 이와 함께 x와 LP'의 포인트별(point-by-point) 곱을 산출하는 것이다. n=0의 시간 유닛에서, 벡터 x는 처리 요소의 p개의 메인 입력들을 이용해 형성되고,
Figure 112003045273941-pct00309
의 시간 유닛들에서 벡터 x는 처리소자의 중간 입력들을 이용해 형성된다. 한 동작 단계 중에 산출된 두 내적들의 결과는 누적되어 처리 요소의 두 메인 출력단으로 보내지고, 한편 포인트별 곱셈의 결과들은 처리 요소의 중간 출력단으로 보내진다.
제1유형 코어 DWT 구조의 경우와 마찬가지로, 제2유형 코어 DWT 구조는 수학식 11 및 12에 의해 주어진 시간 지연 및 시간 주기 특성을 가진 제3.2알고리즘을 구현함을 알 수 있다. 제1유형 및 제2유형 구조들의 다른 특성들 역시 이와 비슷하다. 특히, 제2유형 구조는 매우 빠르고 부분 단축 구조 및 가변하는 레벨의 병렬구조로 구현될 수 있으므로, 시간과 하드웨어 복잡도 사이의 타협이 이뤄질 수 있는 기회를 제공할 수 있다. 이들 두 구조들 간의 차이는 제1유형 코어 DWT 구조의 데이터 라우팅 블록들의 쉬프트 레지스터들이 제2유형 코어 DWT 구조내 처리소자들 사이의 부가적 연결들로 대체된다는 데 있다.
<제2유형 코어 DWT 구조의 가능한 구현 방식>
제2유형 코어 DWT 구조에 있어서 j(
Figure 112003045273941-pct00310
)번째 스테이지의 가능한 구성이 도 9에 도시되어 있다.
Figure 112003045273941-pct00311
인 경우에 대한 그 구현예가 도 10(a)에 도시된다. 이 구현 방식에서, 데이터 라우팅 블록은 각각
Figure 112003045273941-pct00312
지연들로 이뤄진
Figure 112003045273941-pct00313
개의 체인 연결 그룹들 및, 각 시간 유닛 마다 값들을 p 위치씩 위로 이동시키는
Figure 112003045273941-pct00314
길이의 쉬프트 레지스터로 이뤄진다. 그 스테이지로의
Figure 112003045273941-pct00315
개의 입력들은 첫번째 지연 그룹에 병렬로 연결되고, 그 출력은 다음 지연 그룹의 입력들과 연결된다. 마지막
Figure 112003045273941-pct00316
번째 지연 그룹의 출력들은 데이터 라우팅 블록의 첫번째
Figure 112003045273941-pct00317
개의 출력들을 형성하고 처리 요소들의 메인 입력단으로 연결된다.
Figure 112003045273941-pct00318
,
Figure 112003045273941-pct00319
번째 그룹의 출력들은 쉬프트 레지스터의
Figure 112003045273941-pct00320
개의 연속 셀들에 병렬로 연결된다.
Figure 112003045273941-pct00321
번째 지연 그룹의 출력들은 첫번째
Figure 112003045273941-pct00322
개의 셀들에 연결되고,
Figure 112003045273941-pct00323
번째 지연 그룹의 출력들은 다음
Figure 112003045273941-pct00324
개의 셀들에 연결된다. 그러나, 그 스테이지의 최초
Figure 112003045273941-pct00325
개의 입력들은 쉬프트 레지스터의 마지막
Figure 112003045273941-pct00326
개의 셀들에 직접 연결된다. 쉬프트 레지스터의 최초 p-2개의 셀들로부터의 출력은 데이터 라우팅 블록의 마지막 p-2개의 출력을 형성하고 일반적 구성 내의 연결에 따라 처리소자들의 메인 입력단에 연결된다. 개시된 구현 방식이 제2유형 코어 DWT 구조의 데이터 라우팅 블록에 있어서의 동작 제한을 만족시킨다는 것을 알 수 있다. 실제로, 모든 스텝의 시작시, 이전
Figure 112003045273941-pct00327
단계들에서 수용된 벡터들의 (시 간 순서로 된) 연결부인 벡터의 최초
Figure 112003045273941-pct00328
개의 성분들은 데이터 라우팅 블록의 출력부에서 생성되고 그리고나서 모든 다음 시간 유닛 중에 그 벡터의 다음 p개의 성분들이 그 마지막 p개의 출력단에서 형성된다.
p=2인 경우에 있어서, 제2유형 DWT 구조의 가능한 처리소자 구성이 도 10(b)에 도시된다. 이 분야의 당업자에게는 임의의 p 및
Figure 112003045273941-pct00329
에 대한 처리소자 구성이 도 8(a),(b),(c) 및 (d)에 도시된 구성과 동일하게 설계될 수 있음이 자명할 것이다.
Figure 112003045273941-pct00330
인 경우, 제2유형 코어 DWT 구조의 이러한 구현 방식은 도 6에 도시된 제1유형 DWT 구조의 구형 방식과 동일하다.
<멀티 코어 DWT 구조>
상술한 두 종류의 코어 DWT 구조들은 패러미터 p에 따른 가변 레벨 병렬구조로 구현된다. 또 새로운 패러미터인
Figure 112003045273941-pct00331
를 도입하여, 병렬구조의 레벨에 서의 유연성이 멀티 코어 DWT 구조 안에서 얻어진다. 멀티 코어 DWT 구조는, 실제로, 단일 코어 DWT 구조를 r 회 확장함에 따른, 해당 단일 코어 DWT 구조로부터 얻어진다. 그 일반적 구성이 도 11에 개시된다. 이 구조는 데이터 입력 블록과 J개의 파이프라인 스테이지들로 이뤄지고, 각 스테이지는 데이터 라우팅 블록과 처리소자들로 된 블록을 포함한다.
데이터 입력 블록은 코어 DWT 구조들의 경우와 유사한 방식으로 직렬 워드(word-serial) 또는 병렬 워드(word-parallel)로서 구현될 수 있으나, 이 경우 데이터 입력 블록은 첫번째 파이프라인 스테이지의 데이터 라우팅 블록의
Figure 112003045273941-pct00332
개의 입력단들로 연결되는
Figure 112003045273941-pct00333
개의 병렬 출력단을 구비한다. 데이터 입력 블록의 동작은 동작 단계별로
Figure 112003045273941-pct00334
개의 성분들의 레이트로 입력 벡터의 성분들로 된 한 그룹을 직렬 혹은 병렬로 수용하고 병렬로 출력하는 것이다.
먼저, 제1유형 멀티 코어 DWT 구조를 고려할 수 있다. 이 경우, j(
Figure 112003045273941-pct00335
) 번째 파이프라인 스테이지는 그 스테이지로의 입력을 형성하는
Figure 112003045273941-pct00336
개의 입력단들인
Figure 112003045273941-pct00337
와,
Figure 112003045273941-pct00338
개의 처리소자들의 입력단과 연결된
Figure 112003045273941-pct00339
개의 출력단들인
Figure 112003045273941-pct00340
를 포함하는 데이터 라우팅 블록으로 이뤄진다. 각 처리소자는 p개의 입력단과 두 출력단을 구비하며,
Figure 112003045273941-pct00341
는 각 처리소자의 병렬 구조 레벨을 나타내는 구현 패러미터이다. j(
Figure 112003045273941-pct00342
) 번째 스테이지의 데이터 라우팅 블록의 연속된 p개의 출력단인
Figure 112003045273941-pct00343
은 동일한 스테이지의 i번째 (
Figure 112003045273941-pct00344
) 처리소자(
Figure 112003045273941-pct00345
)의 p개의 입력단들로 연결된다. j(
Figure 112003045273941-pct00346
) 번째 파이프라인 스테이지의
Figure 112003045273941-pct00347
개의 처리소자들의 최초 출력들은 그 스테이지의 출력들인
Figure 112003045273941-pct00348
을 형성하고, 다음 (j+1) 번째 스테이지의 데이터 라우팅 블록의
Figure 112003045273941-pct00349
개의 입력단들인
Figure 112003045273941-pct00350
과 연결된다. 마지막 J번째 스테이지의 r개의 처리소자들의 최초 출력들은 이 구조의 최초 r개의 출력들인 out(0),...,out(r-1)을 형성한다. j(
Figure 112003045273941-pct00351
) 번째 파이프라인 스테이지 의
Figure 112003045273941-pct00352
개의 처리소자들의 두번째 출력들은 이 구조의 (
Figure 112003045273941-pct00353
)에서 (
Figure 112003045273941-pct00354
)번째 출력들인
Figure 112003045273941-pct00355
을 형성한다.
(
Figure 112003045273941-pct00356
스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 시간 유닛 n=0에서
Figure 112003045273941-pct00357
개의 성분들로 된 벡터를 병렬로 수용하고, 그리고 나서 그 동작 단계의 각 시간 유닛
Figure 112003045273941-pct00358
에서 이전
Figure 112003045273941-pct00359
단계들에서 수용된 벡터들의 (시간적 순서로) 연속부인 벡터의 최초
Figure 112003045273941-pct00360
개의 성분들인
Figure 112003045273941-pct00361
로 된 벡터를 병렬로 출력한다(수학식 8 참조). 처리소자들의 동작은 제1유형 코어 DWT 구조의 경우에서와 완전히 동일하다.
제2유형 멀티 코어 DWT 구조를 고려하면, 데이터 입력 블록은 제1유형 멀티 코어 DWT 구조의 경우에서와 완전히 동일하다. 제2유형 멀티 코어 DWT 구조에 사용되는 처리소자들 및 그들 사이의 연결은 제2유형 단일 코어 DWT 구조의 경우에서와 유사하다. 차이라고 하면 이 구조의 j(
Figure 112003045273941-pct00362
)번째 스테이지 내에 (
Figure 112003045273941-pct00363
대신)
Figure 112003045273941-pct00364
개의 처리소자들이 있다는데 있다. 이제 데이터 라우팅 블록은 제1유형 멀티 코어 DWT 구조의 경우에서와 같이 처리소자들에 유사하게 접속된
Figure 112003045273941-pct00365
개의 입력단과
Figure 112003045273941-pct00366
개의 출력단들을 구비한다. (
Figure 112003045273941-pct00367
스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 시간 유닛 n=0에서
Figure 112003045273941-pct00368
개의 성분들로 된 벡터를 병렬로 수용하고, 이전
Figure 112003045273941-pct00369
단계들에서 수용된 벡터들의 (시간적 순서로) 연결부인 벡터의 최초
Figure 112003045273941-pct00370
개의 성분들인
Figure 112003045273941-pct00371
로 된 벡터를 병렬로 출력한다. 그리고나서 그 동작 단계의 각 시간 유닛
Figure 112003045273941-pct00372
에서 데이터 라우팅 블록은 마지막 p개의 출력단에 동일 벡터의 p개의 성분
Figure 112003045273941-pct00373
으로 된 다음 서브 벡터를 병렬로 출력한다.
이 두 종류의 멀티 코어 DWT 구조는 모두 단일 코어 DWT 구조들 보다 r 배만큼 더 빠르며, 즉 패러미터 r과 관련해 선형 속도 증가가 이뤄질 수 있다. 입력 및 해당 출력 벡터들 사이의 지연은 다음의 수학식 14의 시간 유닛과 같고,
Figure 112003045273941-pct00374
그 처리 속도 또는 시간 주기는 다음의 수학식 15의 시간 유닛과 같다.
Figure 112003045273941-pct00375
따라서, 추가 속도 증가 및 시간 및 하드웨어 복잡도간의 타협에 관한 유연성이 멀티 코어 DWT 구조 안에서 얻어진다. 또, 이 구조는 모듈구조이고 정상적이며 부분 단축 어레이들로 구현될 수 있다.
Figure 112003045273941-pct00376
Figure 112003045273941-pct00377
인 경우에 대한 멀티 코어 DWT 구조의 가능한 구현 방식으로서, 노드들(도 2의 직사각형들)이 처리소자들을 나타내고 작은 원들은 래치를 나타내는 DWT 플로우그래프(도 2 참조) 자체를 고려할 수 있다. 이 구현 방식은 완전-병렬 파이프라인형(FPP) 구조라고 일컫는 [34]에 개시되었다. 그러나, 그것은 본 발명에 따라 제안된 멀티코어 DWT 구조의 특정 구현 방식일 뿐이다.
<가변 해법 DWT 구조>
상술한 구조들은 소정 개수 J를 넘지 않는 개수의 옥타브를 갖는 DWT들을 구현한다. 이들은 하드웨어 활용성에 있어서의 약간의 손실에도 불구하고, J 보다 적은 개수의 옥타브들로 DWT들을 구현할 것이다. 가변 해법 DWT 구조는 임의의 J' 개의 옥타브들로 DWT들을 구현하는 한편, 그 구조의 효율성은 J'가 소정 수
Figure 112003045273941-pct00378
보다 크거나 같을 때 약 100%를 유지한다.
가변 해법 DWT 구조의 일반적 구성이 도 12(a)에 도시된다. 그 구조는
Figure 112003045273941-pct00379
개의 분해 레벨에 상응하는 코어 DWT 구조 및, 예를 들어 RPA([14]-[17], [19]-[20], [22])에 기반한, 임의의 직렬 DWT 구조로 이뤄진다. 코어 DWT 구조는 J'-옥타브 DWT의 최초
Figure 112003045273941-pct00380
옥타브들을 구현한다. 코어 DWT 구조의
Figure 112003045273941-pct00381
로부터의저대역 통과 결과는 직렬 DWT 구조로 전해진다. 직렬 DWT 구조는 J'-옥타브 DWT의 마지막
Figure 112003045273941-pct00382
개의 옥타브들을 구현한다. 코어 DWT 구조가 가변 레벨 병렬구조로 구현되므로, 이 구조는
Figure 112003045273941-pct00383
일 때마다 거의 100%의 하드웨어 활용성이 얻어지는 방식으로 직렬 DWT 구조와 균형을 이룰 수 있다.
그 두 부분 사이의 균형을 이루기 위해, 코어 DWT 구조는 (
Figure 112003045273941-pct00384
)-옥타브의 M-포인트 DWT (
Figure 112003045273941-pct00385
)를 구현하는 직렬 구조와 같거나 더 빠른 처리 속도를 가진
Figure 112003045273941-pct00386
옥타브 N-포인트 DWT를 구현하도록 정해진다. 말 안에서 알 수 있는 직렬 구조들은 L 또는 2L개의 기본 유닛(BU, 곱셈기-가산기 쌍)들을 각각 채용한 2M 시간 유닛들([14], [15]) 또는 M 시간 유닛들([14]-[19])로 M-포인트 DWT를 구현한 다. 이들은 M-포인트 DWT가
Figure 112003045273941-pct00387
개의 시간 유닛들로 구현되도록 임의의
Figure 112003045273941-pct00388
개수의 BU들을 포함하도록 축소될 수 있다. 제1유형 또는 제2유형 코어 DWT 구조는
Figure 112003045273941-pct00389
개의 시간 유닛들로 된
Figure 112003045273941-pct00390
-옥타브의 N-포인트 DWT를 구현하므로, 균형(balancing) 조건은
Figure 112003045273941-pct00391
일 때 만족될
Figure 112003045273941-pct00392
가 된다. 이 조건에서, 가변 해법 DWT 구조는 총 개수가
Figure 112003045273941-pct00393
인 BU들로 이뤄지고
Figure 112003045273941-pct00394
시간 유닛으로 된 J'-옥타브 N-포인트 DWT를 구현한다.
멀티 코어 DWT 구조에 기초한 가변 해법 DWT 구조는 멀티 코어 및 직렬 DWT 구조 사이에 삽입된 데이터 라우팅 블록을 가지고 구성될 수도 있다(도 12(b) 참조). 그 데이터 라우팅 블록의 동작은 동작 단계 마다 r 샘플 레이트로 디지트들을 병렬로 입력 및 직렬로 출력한다. 이 경우에서의 균형 조건은
Figure 112003045273941-pct00395
이고, 그 면적 시간(area time) 특성은
Figure 112003045273941-pct00396
이다.
도 14에 도시된 표 1은 제안된 구조들과 몇몇 종래의 구조들의 성능을 비교한 것이다. 이 표에서, 말 자체에서 공통적으로 수용되는 바와 같이, 곱셈기-가산기 쌍(DWT 구조의 베이직 유닛, BU)들의 개수는 소정 구조의 면적에 대한 표현으로서 간주된다. 이것이 민감한 파이프라인 스테이지이므로, 시간 유닛은 한 곱셈에 요구되는 시간 주기라고 간주된다. 본 발명에 따른 DWT 구조의 특성은, 표 1의 마지막 일곱 줄들에 나타난 바와 같이, 패러미터 선택의 몇몇 예들과 함께 임의의 구 현 패러미터들인
Figure 112003045273941-pct00397
에 대해 주어진다. 제안된 구조에 사용된 개수의 BU들은 도 8의 처리 요소 예를 가정할 때(도 8에서 p개의 입력을 가진 처리소자는 2p개의 BU들을 포함함) 주어진다. 그러나, 그 처리소자들은 보다 작은 개수의 BU들을 포함하도록 다시 최적화될 수 있을 것이다.
편의상, 도 15에 도시된 표 2는 J=3 또는 J=4, N=1024, 그리고 L=9(이것은 가장 대중적인 DWT인, 다우베키스(Daubechies) 9/7 웨이브릿에 해당한다)인 DWT 패러미터 선택을 위한 면적-시간 특성의 수치적 예들을 나타낸다. 도 16에 도시된 표 3은 J=3 또는 J=4, N=1024 및 L=5(다우베키스 5/3 웨이브릿)의 경우에 대한 수치적 예를 나타낸 것이다. 그 표들에 나타낸 게이트 카운트(gate count)는, 계층적 32-비트 가산기가 뒤따르고 따라서 총 1914 개의 게이트들을 포함하는([37] 참조) 16 비트의 부스(Booth) 곱셈기로 이뤄짐을 가정하여 계산되었다. 도 13은 표 2로부터 몇 개의 줄(행)을 그림의 형태로 나타낸 것이다. 제안된 구조들에 해당하는 라인은 훨씬 많은 수의 베이직 유닛들로 확장될 수 있으나, 이러한 존재하지 않는 경우들은 보다 큰 실리콘 면적을 필요로 하고, 이것은 현 단계의 기술로서는 불가능한 것이 될 것이다.
이러한 예들로 부터 알 수 있듯이, 제안된 구조들은 종래의 것들과 비교할 때, 적정 면적 요건에서 탁월한 시간 특성을 보인다. 제안된 구조들의 장점은, 고속 지향 구조들의 성능을 평가하는데 흔히 사용되는
Figure 112003045273941-pct00398
기준에 대한 그 구조들의 성능를 고려할 때 가장 잘 이해될 수 있다. 표들의 첫번째 줄은 범용 DSP 구조를 나타낸 것이다. 다음 두 줄에 나타낸 구조는, 본 발명에 따른 제안된 구조에서와 같이 약 100%의 하드웨어 활용도로 동작하는 비파이프라인형 또는 제한된(두 스테이지만 있는) 파이프라인형 구조들이다. 따라서, 그들의 성능 본 발명에서 제안된 구조들의 성능과 "비례"하지만, 본 발명의 구조가 병렬 구조의 레벨에 있어 훨씬 더 유연하여, 가능한 시간 및 면적 복잡성이 폭넓은 범위에 있게되는 결과를 가져올 수 있다. 표의 네번째 줄은 열악한 하드웨어 활용성 및 그에 따른 열악한 성능을 가진 J 스테이지 파이프라인형 구조를 나타낸다. 표의 다섯번째에서 일곱번째 줄은, J 스테이지 파이프라인형이고 100% 하드웨어 활용성을 달성하고 양호한 성능을 가지지만, 본 발명에 따른 구조들에서 제공하는 것과 같은 면적 및 시간 복잡성에서의 유연한 폭을 허용하지는 못하고 있다.
앞에서, 필터 길이 및 계수, 입력 길이, 및 분해 레벨의 개수와 같은 임의의 패러미터를 가진 웨이브릿 변환을 구현할 수 있는 "범용" 웨이브릿 변환기의 일반적 구성에 대해 논의하였다. 또, (상술한 패러미터들의 특정 세트에 상응하는) 특정 이산 웨이브릿 변환에 대한 구조들은 그 구조에 포함된 처리 요소(PE)들의 구조를 최적화함으로써 최적화될 수 있다.
본 발명은 CMOS 기술을 이용한 전용 부분 단축 VLSI 회로로서 구현될 수 있다. 이는 독립 조작이 가능한(stand-alone) 디바이스이거나 범용 프로세서의 내장된 엑셀러레이터일 수 있다. 제안된 구조들은 비용 및 성능을 변화시키게 하는 가변 레벨 병렬구조로 구현될 수 있다. 구현 모드의 선택은, 원하는 병렬구조 레벨과 마찬가지로 어플리케이션의 분야에 따라 다르다. 앞에서는 임의의 DWT들을 구 현하기 위한 구현의 맥락에서 구조들이 논의되었다. 그러나, 그 구조들은 또한 특정 유형의 DWT 전용이 되도록 하는 방식으로 적응되거나 구현될 수도 있다. 이것은 예를 들어, 다우베키스 5/3 또는 9/7 웨이브릿들이 기본 DWT들이 되도록 예정된, JPEG 2000과 관련된 어플리케이션들에 바람직할 것이다.
본 발명의 특정한 구현 방식 및 실시예들이 설명되었다. 이 분야의 당업자라면 본 발명이 상술한 실시예들의 세부 내용에 국한되지 않고, 본 발명의 특징으로부터 벗어남이 없이 등가적 수단을 이용해 다른 실시예들로 구현될 수 있다는 것이 자명할 것이다. 본 발명의 범위는 첨부된 특허 청구항들에 의해서만 제한된다.
<약어설명>
ASIC-Application Specific Integrated Circuits
CMOS-Compliementary Metal Oxide Silion
DSP-Digital Signal Processor
DWT-Discrete Wavelet Transform
FPP-Fully Parallel-Pipelined(DWT architecture)
LPP-Limited Parallel-Pipelined(DWT architecture)
PE-Processor Element
<참고문헌>
[1] 1989년 12월 IEEE 패턴 해석 및 기계 지능 분과 회보, 2권, 12호, 674-693 페이지, S.G. Mallat의 "신호 분해의 다중해법에 대한 이론: 웨이브릿 개념"
[2]잉글우드 클리프스(NJ):프렌티스 홀, 1995년 판, M.Veterli, J.Kovacevic 공저, 웨이브릿 및 서브밴드 코딩
[3]필라델피아(PA):시암, 1992년 판, I.Daubechies 저, 웨이브릿에 관한 10가지 강의
[4]1990년 9월 IEEE 정보 이론 분과 회보, 36권, 5호. 961-1005 페이지, I. Daubechies, "웨이브릿 변환, 시간 주파수, 위치측정 및 신호 해석"
[5]뉴욕(NY):존스 앤 바틀렛, 1992년 판, G.Beylkin, R.Coifman, V.Rokhlin 공저, 웨이브릿과 그 응용에 있어 "웨이브릿의 수치해석", 181-210페이지
[6]뉴헤븐(CT):예일대학, 1989 판, G.Beylkin, R.Coifman, V.Rokhlin 공저, 고속 웨이브릿 변환 및 수치 알고리즘
[7]1994년 10월 필라델피아 IEEE-SP 국제 심포지엄 중 시간-주파수 시간-스케일 해석 분과의, L. Senhadji, G.Carrault, J.J. Belianguer 발표 "Interictal EEG Spike Detection: 웨이브릿 변환에 기초한 새로운 프레임워크"
[8]1989년 IEEE 청각, 음성, 신호 처리 분과 회보, 37권, 12호. 2091-2110 페이지, S.G. Mallat의 "이미지 및 웨이브릿 모델에 대한 멀티 주파수 채널 분해"
[9]1991년 6월 IEEE 신호 처리 분과 회보, 39권, 6호. 1322-1332 페이지, Z.Mou와 P.Duhamel의 "고속 비반복 필터링시의 짧은 길이의 FIR 필터 및 그 사용"
[10]뉴욕(NY):아카데믹, 1992년 판, A.N.Akansu, R.A.Haddad 공저, 멀티해법 신호 분해:변환, 서브밴드 및 웨이브릿
[11]1987년 국제저널 패턴 인식 및 인공 지능 분과 회보, 1권, 2호. 273-302 페이지, R.Kronland-Martinet, J.Morlet, A.Grossman의 "웨이브릿 변환을 통한 음성 패턴 해석"
[12]1997년 IEEE 국제학회, 청각, 음성 및 신호 처리 분과 회보, 5권, 4113-4116 페이지, S.B.Pan, R.H.Park, "웨이브릿 변환, 시간 주파수, 위치측정 및 신호 해석"
[13]1997년 9월 싱가폴 9-12 IEEE 국제 학회, 정보, 통신 및 신호 처리(ICICS '97) 분과 회보, 1180-1183 페이지, A.B.Premkumar, A.S.Madhukumar, "1 차원 이산 웨이브릿 변환 계산을 위한 효율적인 VLSI 구조"
[14]1995년 5월 IEEE 회로 및 시스템 분과 회보, 42권, 5호. 305-316 페이지, M.Vishwanath, R.M.Owens, M.J.Irwin, "이산 웨이브릿 변환을 위한 VLSI 구조"
[15]1997년 5월 IEEE 신호 처리 분과 회보, 45권, 5호. 1291-1308 페이지, J.Fridman, S.Manolakos, "이산 웨이브릿 변환: 분산 메모리 및 제어 어레이 구조의 데이터 종속 해석 및 합성"
[16]1993년 IEEE VLSI 시스템 분과 회보, 1권, 2호. 191-202 페이지, K.K.Parhi, T.Nishitani, "이산 웨이브릿 변환을 위한 VLSI 구조"
[17]1998년 Thirty-Second Asilomar 학회 신호, 시스템 및 컴퓨터 분과 회보, 2권. 1220-1224 페이지, T.C.Denk, K.K.Parhi, "1 차원 이산 웨이브릿 변환을 위한 단축 VLSI 구조"
[18]1990년 전자 통신문, 26권, 15호. 1184-1185 페이지, G.Knowles, "이산 웨이브릿 변환을 위한 VLSI 구조"
[19]1995년 IEEE 신호 처리 분과 회보, 43권, 3호. 759-771 페이지, C.Chakrabarti, M.Vishwanath, "이산 및 연속 웨이브릿 변환의 효율적 구현: 단일 칩 구현에서 SIMD 어레이 컴퓨터 매핑까지"
[20]1996년 VLSI 신호 처리에 관한 저널, 14권, 2호. 171-192 페이지, C.Chakrabarti, M.Vishwanath, R.M.Owens, "웨이브릿 변환을 위한 구조: 개관"
[21]1996년 IEEE VLSI 시스템 분과 회보, 4권, 4호. 421-433 페이지, A.Grzeszczak, M.K.Mandal, S.Panchanatan, "이산 웨이브릿 변환의 VLSI 구현"
[22]1996년 IEEE 국제 학회 어플리케이션 고유 시스템, 구조 및 프로세서 분과 회보, 193-198 페이지, M.Vishwanath, R.M.Owens, "DWT 및 IDWT에 대한 일반 구조"
[23]1997년 IEEE 국제 학회 주문자 집적 회로 분과 회보, 237-240 페이지, C.Yu, C.H.Hsieh, S.J.Chen, "이산 웨이브릿 변환을 위한 고효율 VLSI 구조의 설계 및 구현"
[24]1995년 기계 인지를 위한 컴퓨터 구조 회보(CAMP 95'), 44-50 페이지, S.B.Syed, M.A.Bayoumi, "이산 웨이브릿 변환의 축소가능 구조"
[26]1994년 IEEE 신호 처리 분과 회보, 42권, 3호. 673-677 페이지, M.Vishwanath, "이산 웨이브릿 변환을 위한 반복적 피라미드 알고리즘"
[27]1993년 IEEE 반도체 회로에 관한 저널, 28권, 1호. 10-17 페이지, D.Liu, C.Svensson, "공급 및 문턱 전압 선택에 의한 저전력용 트레이딩 스피드"
[28]1982년 IEEE 컴퓨터, H.T.Kung, "왜 단축 구조인가?"
[30]2000년 5월 28-31일 스위스 제네바, IEEE 국제 학회 회로 및 시스템 분과 회보, 5권, 337-340 페이지, F.Marino, D.Gevorkian, J.Astola, "고효율성을 가진 고속/저전력의 1차원 DWT 구조"
[31]1997년 5월 기술 관련 박사 과정 논문, D.A.Gevorkian "필터 기반이산 선형 변환 및 랭크 순서의 산술적 양상" 총 214 페이지
[32]1995년 2월 미국 캘리포니아주 산호세에서 열린 전자 영상: 과학 및 기술에 관한 SPIE의 국제 심포지엄 회보 2421권, J.T.Astola, S.S.Agaian, D.Z.Gevorkian, "Haar-유형 변환 패밀리에 대한 병렬 알고리즘 및 구조"
[34]2000년 6월 2-3일에 핀란드 탐페레에서 열린 차세대 디지털 시스템을 위한 스펙트럼 변환 및 로직 디자인 고나련 TICSP 국제 워크샵 회보에 보인, D.Gevorkian, F.Marino, S.Agaian, J.Astola, "이산 웨이브릿 변환 및 웨이브릿 패팃의 효율적 병렬 구현을 위한 플로우그래프 개념"
[35]2000년 9월 4-8일에 핀란드 탐페레에서 열린 차세대 유럽 신호 처리 학회 회보 중, D.Gevorkian, J.Astola, F.Marino, S.Agaian, "플로우그래프 개념에 기반한 이산 웨이브릿 변환의 고효율 고속 구조"
[36]http://www.ti.com/sc/docs/products/dsp/c6000/benchmarks/64x.htm#filters
[37]J.Willey & Sons 1998년 판, 총 419 페이지, P.Pirsch 저, 디지털 신호 처리를 위한 구조.

Claims (45)

  1. j가 1에서 J까지의 범위에 있는 정수일 때, 첫번째 분해 레벨에서 시작해 마지막 분해 레벨까지 진행하면서, 소정 개수의 연속 분해 레벨(j)들에 걸쳐, 다수의 입력 샘플들을 구비한 입력 신호 벡터 (x)의 분해를 지원하는 이산 웨이브릿 변환을 수행하는 처리 회로(processing circuit)에 있어서,
    상기 처리 회로는 각각이 상기 이산 웨이브릿 변환의 분해 레벨(j)에 해당하고 다수의 기본 처리 요소들 (PE)을 이용해 구현되는 J 개의 처리 스테이지들을 구비하고, 상기 처리 스테이지들 각각에서 구현되는 상기 기본 처리 요소들 (PE)의 개수는 증가하는 각각의 분해 레벨(j)에서 일정한 비(factor) 만큼씩 감소함을 특징으로 하는 처리 회로.
  2. 제1항에 있어서, 상기 처리 회로는
    Figure 112010002483787-pct00448
    (k는 이산 웨이브릿 변환 연산에 사용되는 구분가능 (distinct) 필터링 연산 타입의 수를 나타내고, m 및 r은 0 아닌 양의 정수들임) 개의 입력들을 구비하고, 상기 처리 회로의 상기 처리 스테이지들 각각에서 구현되는 기본 처리 요소들 (PE)의 개수는 한 분해 레벨 (j)에서 다음 분해 레벨(j+1)까지 일정한 비 k 만큼씩 감소함을 특징으로 하는 처리 회로.
  3. 제2항에 있어서, 상기 처리 회로는
    Figure 112010002483787-pct00449
    개에 해당하는 다수의 입력 샘플들 N을 포함한 입력 신호 벡터 (x)의 입력 샘플들을 병렬로 처리하도록 구성됨을 특징으로 하는 처리 회로.
  4. 제2항에 있어서, 상기 처리 회로는, 입력 신호 벡터 (x)의
    Figure 112010002483787-pct00450
    개의 입력 샘플들을 병렬로 수신하도록 구성됨을 특징으로 하는 처리 회로.
  5. 제2항에 있어서, 첫번째 처리 스테이지의 상기 기본 처리 요소들 (PE)의 개수는
    Figure 112010002483787-pct00451
    와 같음을 특징으로 하는 처리 회로.
  6. 제2항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소 (PE)는, p 개의 입력단을 구비하고 L개 계수값들로 된 k 세트들을 상기 p 개의 입력단에서 L/p 연속 병렬 그룹들로서 수신되는 L 개의 입력 값들로 된 세트에 인가함으로써 k 개의 내적(inner product) 연산들의 세트를 수행하도록 구성되며, 상기 기본 처리 요소 (PE)는 각각이 상기 k 개의 내적 연산들의 세트 중 한 개의 결과에 상응하는 출력값을 출력하도록 정해진 k개의 출력단을 더 구비함을 특징으로 하는 처리 회로.
  7. 제2항에 있어서, 상기 각각의 처리 스테이지의 각 기본 처리 요소 (PE)는 Lmax 개의 입력단을 구비하고 Lmax 개의 계수값들로 된 k 개의 세트들을 상기 Lmax 개입력단들에서 병렬로 수신되는 Lmax 개의 입력 값들의 세트로 인가함으로써 k 개의 내적(inner product) 연산 세트를 수행하도록 정해지며, 상기 기본 처리 요소 (PE)는 각각이 상기 k 개의 내적들의 세트 중 하나의 결과에 상응하는 출력값을 출력하도록 정해진 k개의 출력단을 더 구비하고, 상기 Lmax는 최대 허용가능 필터 길이에 해당함을 특징으로 하는 처리 회로.
  8. 제1항에 있어서, 상기 각각의 처리 스테이지의 각 기본 처리 요소 (PE)는 p 개의 입력단을 구비하고 L 개의 계수값들로 된 두 세트를 상기 p 개 입력단들에서 L/p 개의 연속 병렬 그룹들로서 수신된 L 개의 입력 값들의 세트에 인가함으로써 두 번의 내적(inner product) 연산을 수행하도록 되며, 상기 두 내적 중 첫 번째는 저역 통과 필터링 연산 (LP)을 나타내고 상기 두 내적 중 두 번째는 고역 통과 필터링 연산 (HP)을 나타내며, 상기 기본 처리 요소 (PE)는, 첫 번째 출력단이 상기 L 개 입력값들의 세트에 대해 수행된 저대역 통과 필터링 연산 (LP)의 결과에 해당하는 저대역 통과 필터링된 출력값을 출력하도록 정해지고, 두 번째 출력단이 상기 L 개 입력값들의 세트에 대해 수행된 고대역 통과 필터링 연산 (HP)의 결과에 해당하는 고대역 통과 필터링된 출력값을 출력하도록 정해진 두개의 출력단을 더 구비함을 특징으로 하는 처리 회로.
  9. 제2항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 이전 처리 스테이지(j - 1)의 기본 처리 요소들 (PE) 각각으로부터 상기 k개의 출력값들 중 특정 출력값 하나씩을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 상기 특정 출력값들을 L 개의 출력값들로 된 세트들로 그루핑하고 그 L개의 출력값들로 된 세트들을 처리 스테이지(j)의 기본 처리 요소들 (PE)의 입력단에 병렬로 제공하도록 되어, 처리 스테이지(j)의 각 기본 처리 요소 (PE)가 상기 바로 이전 처리 스테이지(j - 1)로부터 얻어진 L개의 출력값들로 된 소정 세트를 수신하도록 함을 특징으로 하는 처리 회로.
  10. 제8항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 이전 처리 스테이지(j - 1)의 기본 처리 요소들 (PE) 각각으로부터 저대역 통과 필터링된 출력값들을 수신하도록 된 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 저대역 통과 필터링된 출력값들을 L 개의 저대역 통과 필터링된 출력값들로 된 세트들로 그루핑(group)하고 그 L개의 저대역 통과 필터링된 출력값들의 세트들을 처리 스테이지(j)의 기본 처리 요소들 (PE)의 입력단에 병렬로 제공하도록 되어, 처리 스테이지(j)의 각 기본 처리 요소 (PE)가 상기 바로 이전 처리 스테이지(j - 1)로부터 얻어진 L개의 저대역 통과 필터링된 출력값들로 된 소정 세트를 수신하도록 함을 특징으로 하는 처리 회로.
  11. 제1항에 있어서, 상기 첫번째 분해 레벨에 해당하는 처리 스테이지는 상기 입력 벡터 (x)의
    Figure 112010002483787-pct00452
    개 입력 샘플들을 병렬 수신하도록 된
    Figure 112010002483787-pct00453
    입력단을 구비한 라우팅 블록을 더 포함하고, 상기 라우팅 블록은 상기
    Figure 112010002483787-pct00454
    개 입력 샘플들을 L개의 입력 샘플들의 세트들로 그루핑하고 그 L개 입력 샘플들의 세트들을 첫 번째 처리 스테이지의 기본 처리 요소들 (PE)의 입력단에 병렬로 제공하도록 되어, 첫 번째 처리 스테이지의 각 기본 처리 요소 (PE)가 L개의 입력 샘플들로 된 소정 세트를 수신하도록 함을 특징으로 하는 처리 회로.
  12. 제1항에 있어서, 상기 첫번째 분해 레벨에 해당하는 처리 스테이지는 상기 입력 벡터 (x)의
    Figure 112010002483787-pct00455
    개 입력 샘플들을 병렬 수신하도록 된
    Figure 112010002483787-pct00456
    개 앱력단들을 구비한 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기
    Figure 112010002483787-pct00457
    개 입력 샘플들을 L개의 입력 샘플들로 된 세트들로 그루핑하고 그 L개 입력 샘플들의 세트들을 첫 번째 처리 스테이지의 기본 처리 요소들 (PE)의 입력단에 병렬로 제공하도록 되어, 첫 번째 처리 스테이지의 각 기본 처리 요소 (PE)가 L개의 입력 샘플들로 된 소정 세트를 수신하도록 함을 특징으로 하는 처리 회로.
  13. 제1항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소 (PE)는 p 개의 입력단들을 구비하고 L 개 계수값들로 된 두 세트를 상기 p 개 입력단들에서 L/p 연속 병렬 그룹들로서 수신되는 L 개 입력 값들의 세트로 인가함으로써 두 개의 내적 연산을 수행하도록 되며, 상기 각 기본 처리 요소 (PE)는 각각이 상기 두 내적 연산의 각자의 결과에 해당하는 값을 출력하도록 정해진 두 개의 출력단을 더 구비하며, 처리 회로의 후속 처리 스테이지는, 상기 처리 스테이지의 기본 처리 요소들 (PE)의 출력단들로부터의 내적 결과치들의 쌍들을 수신하도록 되고 각 처리 요소들(PE)에 의해 수행된 유사(like) 필터링 동작들로부터의 내적 결과치들을 함께 그루핑하도록 상기 내적 결과치들의 쌍들에 대해 완전한 언셔플(unshuffle) 동작(연산)을 수행하도록 된 데이터 라우팅 블록을 더 포함함을 특징으로 하는 처리 회로.
  14. 제1항에 있어서, 상기 각 처리 스테이지 (j)의 각 기본 처리 요소 (PE)는 p 개의 입력단을 구비하고 L 개의 계수값들로 된 k개의 세트를 상기 p 개의 입력단에서 L/p 연속 병렬 그룹들로서 수신되는 L 개의 입력 값들의 세트로 인가함으로써 k회의 내적 연산을 수행하도록 되며, 상기 기본 처리 요소는 각각이 상기 k회의 내적 연산들 중 각자의 결과에 해당하는 한 값을 출력하도록 정해진 k 개의 출력단을 더 구비하며, 처리 회로의 후속 처리 스테이지는, 상기 처리 스테이지의 기본 처리 요소들 (PE)의 출력단들로부터 k개의 내적 결과치들의 세트들을 수신하도록 되고 기본 처리 요소들 (PE) 각각에 의해 수행된 유사 필터링 연산들로부터의 내적 결과치들을 함께 그루핑하도록 상기 k 개 내적 결과치들의 집합들에 대해 스트라이드(stride) 순열을 수행하도록 된 데이터 라우팅 블록을 더 포함함을 특징으로 하는 처리 회로.
  15. 제1항에 있어서, 상기 연속 분해 레벨들 중 임의의 분해 레벨(j)로의 이산 웨이브릿 변환 결과는, 상기 임의의 분해 레벨(j)에 해당하는 처리 스테이지에서 고대역 통과 필터링 동작 및 저대역 통과 필터링 동작의 출력값들과 모든 이전 처리 스테이지들의 고대역 통과 필터링 동작의 출력값들로부터 만들어진 벡터에 의해 형성됨을 특징으로 하는 처리 회로.
  16. 제2항에 있어서, 상기 처리 회로는 적어도 하나의 코어 처리 유닛을 구비하고, 상기 코어 처리 유닛은 각 처리 스테이지(j)에서 kJ-j개의 기본 처리 요소들 (PE)을 구비함을 특징으로 하는 처리 회로.
  17. 제16항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소 (PE)는 소정 개수의 입력단을 구비하고 계수값들로 된 k개의 세트와 상기 소정 개수의 입력단들에서 병렬로 수신된 입력값들의 한 세트 간에 k번의 내적 연산의 세트를 수행하도록 되고, 상기 입력단의 개수, 상기 한 세트 내 상기 계수값들의 개수 및 병렬로 수신되는 상기 입력값들의 개수는 상기 k회의 내적 연산을 수행하는데 사용되는 필터 길이 L과 같고, 각 기본 처리 요소 (PE)는 각각이 상기 계수값들로 된 k 개의 세트들 중 하나와 상기 입력값들로 된 세트간에 수행된 상기 k회의 내적 연산 중 하나의 결과에 해당하는 출력값을 출력하도록 된 k개의 출력단을 더 구비함을 특징으로 하는 처리 회로.
  18. 제16항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 전 처리 스테이지(j-1)의 기본 처리 요소들 (PE) 각각으로부터 상기 k개의 출력값들을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 선택한 것들을 함께 L 개의 출력값들로 된 세트들로 그루핑하고, 처리 스테이지(j)의 각 기본 처리 요소 (PE)가 상기 바로 전 처리 스테이지(j-1)에서 수신된 L 개의 출력값들의 소정 세트를 수신하도록 상기 L개의 출력값들로 된 세트들을 처리 스테이지(j)의 기본 처리 요소들 (PE)의 입력단에 병렬로 제공하도록 된 것임을 특징으로 하는 처리 회로.
  19. 제16항에 있어서, 상기 첫번째 분해 레벨에 상응하는 처리 스테이지는 입력 신호 벡터(x)의 연속 서브 벡터(i)들 [상기 연속 서브 벡터(i)들은
    Figure 112010002483787-pct00458
    개의 입력 샘플들을 구비함] 을 수신하도록 된 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기
    Figure 112010002483787-pct00459
    개의 입력 샘플들을 L개의 입력 샘플들의 세트들로 만들도록 하고 [상기
    Figure 112010002483787-pct00460
    개의 입력 샘플들을 L개의 입력 샘플들의 세트들로 만드는 것은, 바로 다음의 서브 벡터(i+1)로부터의 다수의 샘플들을 부가하여, 서브 벡터(i)들이 나누어져서 정확하게 상기 L개의 세트들로 될 수 있도록 함으로써 이루어짐], 상기 라우팅 블록은 또한 첫번째 처리 스테이지의 기본 처리 요소들 (PE)의 입력단에 상기 L개의 입력 샘플들로 된 세트들을 병렬로 제공하여 첫번째 처리 스테이지의 각 기본 처리 요소 (PE)가 L개의 입력 샘플들로 된 소정 세트를 수신하도록 함을 특징으로 하는 처리 회로.
  20. 제16항에 있어서, 상기 입력 벡터의 상기
    Figure 112010002483787-pct00461
    입력 샘플들 중
    Figure 112010002483787-pct00462
    개의 입력 샘플들을 구비한 서브 벡터를 수신하도록 구성됨을 특징으로 하는 처리 회로.
  21. 제20항에 있어서,
    Figure 112010002483787-pct00463
    개의 입력 샘플들을 병렬로 수신함을 특징으로 하는 처리 회로.
  22. 제20항에 있어서, 상기 처리 회로의 첫번째 처리 스테이지는 개의 입력 샘플들로 된 상기 벡터를 시간에 따라 점차적으로 연속 서브 벡터들로서 수신하도록 된 것임을 특징으로 하는 처리 회로.
  23. 제22항에 있어서, 상기 적어도 하나의 처리 스테이지는 첫번째 시간 주기 중에, 첫번째 시간 주기에 대해 바로 연속되는 두번째 시간 주기의 서브 벡터(i+1)로부터의 적어도 한 샘플을 포함하는 서브 벡터(i)를 처리하도록 됨을 특징으로 하는 처리 회로.
  24. 제23항에 있어서, 상기 적어도 하나의 처리 스테이지는 서브 벡터(i+1)에서의 L/2개의 샘플들이 부가된 서브 벡터(i)를 처리하도록 됨을 특징으로 하는 처리 회로.
  25. 제1항에 있어서, 상기 각 기본 처리 요소 (PE)는 모든 기본 처리 요소들 (PE)에 대해 실질적으로 동일한 시간 주기 안에서 기본 동작 사이클을 실행하도록 됨을 특징으로 하는 처리 회로.
  26. 제19항에 있어서, 입력 샘플들로 된 벡터로부터 서브 벡터들을 형성하도록 된 쉬프트 레지스터를 더 구비함을 특징으로 하는 처리 회로.
  27. 제1항에 있어서, 상기 처리 회로의 기본 처리 요소들 (PE) 모두는 동일한 동작을 수행하도록 구현됨을 특징으로 하는 처리 회로.
  28. 제19항에 있어서, 서브 벡터(i)에 부가되는 샘플들의 개수는
    Figure 112010002483787-pct00465
    임을 특징으로 하는 처리 회로.
  29. 제16항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소 (PE)는 소정 개수의 입력단 p를 포함하고 계수값들로 된 k개의 세트와 입력값들의 한 세트간에 k회의 내적 연산의 한 세트를 수행하도록 되며, 상기 한 세트내 상기 입력값들의 총 개수 및 한 세트 내 계수값들의 개수는 1에서
    Figure 112010002483787-pct00466
    까지의 범위에서 선택가능한 L과 같고, 상기 기본 처리 요소 (PE)는 소정 시간에서 상기 p개의 입력들에서 p개의 입력값들의 세트를 병렬로 수신하고 소정 동작 주기 안에서 p개의 계수값들과 상기 p개의 입력값들 간의 k회의 내적 연산을 포함하는 내적 연산의 서브 세트를 수행하도록 됨을 특징으로 하는 처리 회로.
  30. 제29항에 있어서, 상기 각 기본 처리 요소 (PE)는 연속 동작 주기들에서 p개의 입력값들로 된 한 세트씩을 수신하도록 됨을 특징으로 하는 처리 회로.
  31. 제29항에 있어서, 상기 각 기본 처리 요소 (PE)는, 각각이 상기 계수값들로 된 k개의 세트들 중 하나와 상기 입력값들로 된 세트 간에 수행된 상기 k회의 내적 연산 중 한 결과에 상응하는 출력값을 출력하도록 된 k개의 출력단을 구비함을 특징으로 하는 처리 회로.
  32. 제29항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 한 스테이지는, 바로 전 처리 스테이지(j-1)의 기본 처리 요소들 (PE) 각각으로부터 상기 k개의 출력값들을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 지정된 것들을 L개의 출력값들로 된 세트들로 그루핑하여 연속 동작 주기들에서 그 L개의 출력값들의 세트들을 p개의 값들의 연속 그룹들로서 처리 스테이지(j)의 기본 처리 요소들 (PE)의 p개의 입력단들에 병렬로 제공하도록 됨을 특징으로 하는 처리 회로.
  33. 제29항에 있어서, 상기 첫번째 분해 레벨에 해당하는 처리 스테이지는
    Figure 112010002483787-pct00467
    개의 입력 샘플들을 구비한 상기 연속 서브 벡터(i)들을 수신하도록 된 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기
    Figure 112010002483787-pct00468
    개의 입력 샘플들을 L개의 입력 샘플들로 된 세트들로 만들도록 되고 [상기
    Figure 112010002483787-pct00469
    개의 입력 샘플들을 L개의 입력 샘플들로 된 세트들로 만드는 것은, 바로 계속되는 서브 벡터(i+1)로부터 다수의 샘플들을 부가하여, 서브 벡터(i)들이 나누어져서 정확하게 상기 L개의 세트들로 될 수 있도록 함으로써 이루어짐], 상기 라우팅 블록은 또한 연속 동작 주기들에서 첫번째 처리 스테이지의 기본 처리 요소들 (PE)의 p개의 입력단들로, p개의 값들로 된 연속적인 그룹들로서 상기 L개의 입력 샘플들로 된 세트들을 병렬로 공급하도록 됨을 특징으로 하는 처리 회로.
  34. 제1항에 있어서, 적어도 하나의 기본 처리 요소 (PE)는 동일한 처리 스테이지(j)의 적어도 한 다른 기본 처리 요소 (PE)와 기능적으로 연결됨을 특징으로 하는 처리 회로.
  35. 제29항에 있어서, 적어도 하나의 기본 처리 요소 (PE)는 동일한 처리 스테이지(j)의 적어도 한 다른 기본 처리 요소 (PE)와 기능적으로 연결됨을 특징으로 하는 처리 회로.
  36. 제29항에 있어서, 처리 스테이지(j)의 적어도 첫번째 기본 처리 요소 (PE)는 동일한 처리 스테이지(j)의 두번째 기본 처리 요소 (PE)로부터 입력값을 수신하도록 됨을 특징으로 하는 처리 회로.
  37. 제36항에 있어서, 상기 동일한 처리 스테이지의 상기 두번째 기본 처리 요소 (PE)로부터의 상기 입력값은 이전 동작 주기 중에 상기 두번째 기본 처리 요소 (PE)에서 수행된 내적 연산들의 p개의 중간 결과를 나타내는 p개의 값들로 된 세트이고, 상기 첫번째 기본 처리 요소 (PE)는 현재의 동작 주기에서 그 내적 연산 수행시의 p개의 중간 결과들의 세트를 이용하도록 됨을 특징으로 하는 처리 회로.
  38. 제37항에 있어서, 상기 p개의 중간 결과들은 상기 첫번째 기본 처리 요소 (PE)에서 병렬로 수신됨을 특징으로 하는 처리 회로.
  39. 제37항에 있어서, 상기 첫번째 기본 처리 요소 (PE)는 초기의 첫번째 동작 주기 이후, 각각의 연속적 동작 주기에서 상기 두번째 기본 처리 요소 (PE)로부터 p개의 입력값들로 된 세트를 수신함을 특징으로 하는 처리 회로.
  40. 제1항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(J)에 추가적으로 적어도 한 부가 분해 레벨을 수행하도록 된 제2 처리 회로와 함께 단일 장치에 집적되는 처리 회로.
  41. 제16항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(J)에 추가적으로 적어도 하나의 부가 분해 레벨을 수행하도록 된 제2 처리 회로와 함께 단일 장치에 집적되는 처리 회로.
  42. 제29항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(J)에 추가적으로 적어도 하나의 부가 분해 레벨을 수행하도록 된 제2 처리 회로와 함께 단일 장치에 집적되는 처리 회로.
  43. 제40항에 있어서, 상기 제2 처리 회로는 반복 피라미드(recursive pyramid) 알고리즘을 수행하도록 된 것임을 특징으로 하는 처리 회로.
  44. 삭제
  45. 제1항에 있어서,
    Figure 112010002483787-pct00470
    -포인트의 웨이브릿 변환 동작(k는 이산 웨이브릿 변환 연산에 사용되는 구분가능 (distinct) 필터링 연산 타입의 수를 나타냄)을 수행하도록 된 적어도 한 코어 처리 유닛을 구비함을 특징으로 하는 처리 회로.
KR1020037015572A 2001-06-01 2002-05-28 이산 웨이브릿 변환 구조 KR100975602B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/872,682 2001-06-01
US09/872,682 US6976046B2 (en) 2001-06-01 2001-06-01 Architectures for discrete wavelet transforms
PCT/FI2002/000455 WO2002097718A1 (en) 2001-06-01 2002-05-28 Architectures for discrete wavelet transforms

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020087018978A Division KR101123106B1 (ko) 2001-06-01 2002-05-28 이산 웨이브릿 변환 구조

Publications (2)

Publication Number Publication Date
KR20040018383A KR20040018383A (ko) 2004-03-03
KR100975602B1 true KR100975602B1 (ko) 2010-08-17

Family

ID=25360097

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020037015572A KR100975602B1 (ko) 2001-06-01 2002-05-28 이산 웨이브릿 변환 구조
KR1020087018978A KR101123106B1 (ko) 2001-06-01 2002-05-28 이산 웨이브릿 변환 구조

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087018978A KR101123106B1 (ko) 2001-06-01 2002-05-28 이산 웨이브릿 변환 구조

Country Status (8)

Country Link
US (1) US6976046B2 (ko)
EP (1) EP1412911B1 (ko)
JP (1) JP4180502B2 (ko)
KR (2) KR100975602B1 (ko)
CN (2) CN1271562C (ko)
AT (1) ATE463801T1 (ko)
DE (1) DE60235893D1 (ko)
WO (1) WO2002097718A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046322A1 (en) * 2001-06-01 2003-03-06 David Guevorkian Flowgraph representation of discrete wavelet transforms and wavelet packets for their efficient parallel implementation
DE10146582A1 (de) * 2001-09-21 2003-04-24 Micronas Munich Gmbh Vorrichtung und Verfahren zur Teilbandzerlegung von Bildsignalen
US7412103B2 (en) * 2003-10-20 2008-08-12 Lawrence Livermore National Security, Llc 3D wavelet-based filter and method
JP4649859B2 (ja) * 2004-03-25 2011-03-16 ソニー株式会社 信号処理装置および方法、記録媒体、並びにプログラム
US20050237699A1 (en) * 2004-04-21 2005-10-27 David Carroll Multi-screen mobile computing system
US7706992B2 (en) 2005-02-23 2010-04-27 Digital Intelligence, L.L.C. System and method for signal decomposition, analysis and reconstruction
US7577203B2 (en) * 2005-03-24 2009-08-18 Dell Products L.P. Minimizing non-deterministic noise by using wavelet transform
US20070180418A1 (en) * 2006-01-30 2007-08-02 Fam Fook T Clock scheme for circuit arrangement
US7724975B2 (en) * 2006-06-22 2010-05-25 National Chun Cheng University Design techniques and their circuit designs for versatile and scalable video coding
US20080288568A1 (en) * 2007-05-14 2008-11-20 Hou Hsieh S Low power Fast Hadamard transform
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20110176743A1 (en) * 2010-01-21 2011-07-21 Sankar Pathamadi V Data compression methods
US9037224B1 (en) 2010-08-02 2015-05-19 Chi Yung Fu Apparatus for treating a patient
US9095266B1 (en) 2010-08-02 2015-08-04 Chi Yung Fu Method for treating a patient
US8725669B1 (en) * 2010-08-02 2014-05-13 Chi Yung Fu Signal processing method and apparatus
KR200454396Y1 (ko) * 2010-10-28 2011-06-30 주식회사 농지개량 환경 수로관
US9197902B2 (en) 2010-11-30 2015-11-24 M.S. Ramaiah School Of Advanced Studies Wavelet transformation using multicore processors
FR2996033B1 (fr) * 2012-09-26 2015-10-30 Commissariat Energie Atomique Dispositif de decomposition d'images par transformee en ondelettes
EP2792300B1 (en) 2013-04-16 2019-06-05 BIOTRONIK SE & Co. KG Implantable cardiac device adapted to extract a patient's respiratory waveforms from an intrathoracic or intracardiac impedance, pressure and/or accelerometry input stream
CN106767952B (zh) * 2017-02-28 2018-12-07 西安交通大学 一种电感式位移传感器的干扰消除方法
RU2682860C2 (ru) * 2017-07-12 2019-03-21 Александр Васильевич Горепекин Способ и устройство преобразования сигналов произвольной формы с использованием пилообразных ступенчатых вейвлетов
US11602311B2 (en) 2019-01-29 2023-03-14 Murata Vios, Inc. Pulse oximetry system
WO2021016893A1 (zh) * 2019-07-30 2021-02-04 深圳市大疆创新科技有限公司 Dwt运算装置、方法、图像处理装置和可移动平台
CN112800386B (zh) * 2021-01-26 2023-02-24 Oppo广东移动通信有限公司 傅里叶变换处理方法和处理器、终端、芯片及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000005680A1 (en) * 1998-07-24 2000-02-03 Teralogic, Inc. Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications
US6047303A (en) * 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
US6178269B1 (en) * 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
WO2001009760A1 (en) * 1999-07-28 2001-02-08 Polaroid Corporation Method and apparatus for performing linear filtering in wavelet based domain

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6148111A (en) * 1998-04-27 2000-11-14 The United States Of America As Represented By The Secretary Of The Navy Parallel digital image compression system for exploiting zerotree redundancies in wavelet coefficients
US6584111B1 (en) * 1998-11-04 2003-06-24 Northern Telecom Limited ABR flow control using single bit congestion indication and wavelet transform filtering
US6466957B1 (en) * 1999-09-02 2002-10-15 3Com Corporation Reduced computation system for wavelet transforms
US6684235B1 (en) * 2000-11-28 2004-01-27 Xilinx, Inc. One-dimensional wavelet system and method
US6785700B2 (en) * 2000-12-13 2004-08-31 Amphion Semiconductor Limited Implementation of wavelet functions in hardware
US20030018599A1 (en) * 2001-04-23 2003-01-23 Weeks Michael C. Embedding a wavelet transform within a neural network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000005680A1 (en) * 1998-07-24 2000-02-03 Teralogic, Inc. Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications
US6047303A (en) * 1998-08-06 2000-04-04 Intel Corporation Systolic architecture for computing an inverse discrete wavelet transforms
US6178269B1 (en) * 1998-08-06 2001-01-23 Intel Corporation Architecture for computing a two-dimensional discrete wavelet transform
WO2001009760A1 (en) * 1999-07-28 2001-02-08 Polaroid Corporation Method and apparatus for performing linear filtering in wavelet based domain

Also Published As

Publication number Publication date
EP1412911A1 (en) 2004-04-28
ATE463801T1 (de) 2010-04-15
EP1412911B1 (en) 2010-04-07
KR20040018383A (ko) 2004-03-03
CN1537297A (zh) 2004-10-13
DE60235893D1 (de) 2010-05-20
KR20080081366A (ko) 2008-09-09
JP4180502B2 (ja) 2008-11-12
KR101123106B1 (ko) 2012-03-19
US20030065489A1 (en) 2003-04-03
WO2002097718A1 (en) 2002-12-05
CN1271562C (zh) 2006-08-23
US6976046B2 (en) 2005-12-13
CN1892640A (zh) 2007-01-10
JP2005500595A (ja) 2005-01-06

Similar Documents

Publication Publication Date Title
KR100975602B1 (ko) 이산 웨이브릿 변환 구조
Grzeszczak et al. VLSI implementation of discrete wavelet transform
US5875122A (en) Integrated systolic architecture for decomposition and reconstruction of signals using wavelet transforms
US20070156801A1 (en) Flowgraph representation of discrete wavelet transforms and wavelet packets for their efficient parallel implementation
KR101162649B1 (ko) 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치
Marino Two fast architectures for the direct 2-D discrete wavelet transform
Marino et al. A parallel implementation of the 2-D discrete wavelet transform without interprocessor communications
Chang et al. Hardware-efficient DFT designs with cyclic convolution and subexpression sharing
Benkrid et al. Design and implementation of a generic 2-D biorthogonal discrete wavelet transform on an FPGA
Parhi et al. Folded VLSI architectures for discrete wavelet transforms
Mamatha et al. Convolution based efficient architecture for 1-D DWT
Chiper Novel systolic array design for discrete cosine transform with high throughput rate
Hsiao et al. A cost-efficient and fully-pipelinable architecture for DCT/IDCT
Dhakar et al. A novel parallel architecture of lifting based 2D-discrete wavelet transform
Savić et al. Memory Efficient Hardware Architecture for 5/3 Lifting-Based 2-D Forward Discrete Wavelet Transform
Chehaitly et al. A generic, configurable and efficient architecture for first and second generation discrete wavelet packet transform with ultra-high speed and low-cost FPGA implementation
Tripathy et al. 3d discrete wavelet transform vlsi architecture for image processing
Zarowski et al. DFT spectrum filtering
Guevorkian et al. Highly efficient scalable parallel-pipelined architectures for discrete wavelet transforms
Zhang et al. An efficient VLSI architecture for discrete wavelet transform based on the Daubechies architecture
Gevorkian et al. Highly efficient fast architectures for discrete wavelet transforms based on their flowgraph representation
Hyun et al. Reconfigurable implementation of wavelet transform on an FPGA-augmented NIOS processor
Aziz et al. Three-dimensional digital filtering algorithm for parallel DSP implementation
Chen et al. An efficient VLSI architecture of 1-D lifting discrete wavelet transform
Lim et al. An efficient systolic array for the discrete cosine transform based on prime-factor decomposition

Legal Events

Date Code Title Description
A201 Request for examination
A107 Divisional application of patent
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee