KR20080081366A - 이산 웨이브릿 변환 구조 - Google Patents
이산 웨이브릿 변환 구조 Download PDFInfo
- Publication number
- KR20080081366A KR20080081366A KR1020087018978A KR20087018978A KR20080081366A KR 20080081366 A KR20080081366 A KR 20080081366A KR 1020087018978 A KR1020087018978 A KR 1020087018978A KR 20087018978 A KR20087018978 A KR 20087018978A KR 20080081366 A KR20080081366 A KR 20080081366A
- Authority
- KR
- South Korea
- Prior art keywords
- input
- values
- basic processing
- dwt
- parallel
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/148—Wavelet transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
본 발명은 이산 웨이브릿 변환(DWT)들을 구현하기 위한 구조에 관한 것이다. 본 발명은 DWT들이 이용될 수 있는 분야에 관한 것으로, 그에 한정되는 아니지만 특히 디지털 신호 및 이미지 프로세싱, 데이터 압축, 멀티미디어 및 통신 분야에서 이용되는 구조들에 관한 것이다.
이 명세서의 말미에 참고 문헌 목록이 주어지는데, 이 문헌들은 각([])괄호 안의 해당 번호에 이어 언급되고 있다.
이산 웨이브릿 변환(Discrete Wavelet Transform, DWT) [1]-[4]은 원형(prototype) 웨이브릿이라 명명된, 단일 기준 함수의 부연/단축 및 변화된 버전들을 이용해, 시간 영역에서 길이의 입력 신호를 분해하는 수학적 기술이다. 한 특정 경우에서, (즉, )가 된다. 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%의 하드웨어 활용성을 가지고 동작한다고 해도, 그 구조들은 복잡한 제어 및/또는 메모리 필요 요건을 가지게 된다. 또, 이들 구조들은 단지 두 개의 파이프라인 스테이지들만을 이용하므로 상대적으로 낮은 속도를 갖게 된다. 통상적인 구조들에서 달성되는 최대 처리 속도는 -포인트 DWT를 구현하기 위한 클록 사이클이다. 대략 100%의 하드웨어 활용성과 보다 높은 처리 속도는 [31], [32] 및 [34]에서 앞서 제안된 구조들에 의해 달성된다. [34]에 제시된 FPP 및 LPP 구조는 DWT 필터들의 길이에 좌우되며, FPP 구조의 경우 입력 신호의 길이에 좌우된다.
최근의 모바일/비주얼 통신 시스템에서는 저전력 VLSI 회로들에 대한 수요가 증가하고 있다. VLSI 기술의 진보는 하드웨어 비용을 크게 감소시켜왔다. 따라 서, 하드웨어량을 증가시키는 댓가를 치르더라도, 주기를 감소시키는 것이 종종 가치 있는 것이 된다. 예를 들어, 주기 cc를 가진 장치 D가 주기 인 장치 D' 에 비해 두 배가 빠른 처리를 수행하도록 사용될 수 있다. 이와 달리, 상기 장치 D가 주파수 f의 클록을 가지면 주파수 2f의 클록을 가진 장치 D'와 동일한 성능을 낼 수 있다. 따라서, 장치 D에서, (f에 대해 선형인) 공급 전압과 (에 대해 선형인) 소비 전력은 장치 D'의 공급 전압에 비해 각각 2 및 4의 인수만큼 감소될 수 있다[27].
고 처리속도 구조는 통상적으로 DWT 옥타브들이 유사한 하드웨어 유닛들(파이프라인 스테이지들)로 이뤄진 파이프라인으로 구축되는 파이프라이닝 또는 병렬처리를 이용한다. 파이프라이닝은 이미 (예를 들어, [12], [23]-[24]에 있는) 기존 DWT 구조들에 의해 활용되어 왔지만, 가장 빠른 파이프라인형 설계에서는 -포인트 DWT를 구축하기 위해 적어도 N개의 시간 유닛들을 필요로 한다.
DWT들의 구현을 위한 알려진 설계법들 대부분은 도 1에 도시된 DWT의 세가지 구조의 필터 뱅크 개념을 기반으로 한다. 도 1에서는 신호 분해를 위한 몇 개(J)의 스테이지들(또는 옥타브)이 있고, 그 각 스테이지 다음에 2 인자만큼의 다운 샘플링이 뒤따른다. 다운샘플링의 결과, 각각 다음 분해 스테이지로 입력되는 데이터량은 바로 이전 분해단으로의 입력량의 절반이 된다. 이것은, 옥타브 를 구축하는 스테이지의 클록 주파수가 보통 첫번째 옥타브에 사용되는 클록 주파수 보다 배 더 낮기 때문에, 세 구조 방식을 이용해 DWT를 구현하도록 설계된 일반 적인 파이프라인형 장치의 분해 스테이지들의 하드웨어가 과도하게 저활용되게 만든다[24]. 이러한 저활용은 파이프라인 스테이지들이 DWT 옥타브를 구축할 때 그들의 조악한 균형으로부터 나오며, 따라서 저효율을 초래한다.
[30]의 파이프라인 구조는 -포인트 DWT에 대해 거의 100%의 하드웨어 활용성 및 클록 사이클의 처리속도를 달성하는 세 구조 필터 뱅크 개념에 기반해 제안되었다. 이 구조는 가능한 한, 한 스테이지에서 다음 스테이지까지 절반의 처리 유닛을 이용하는 J-스테이지 파이프라인을 수반한다. [34]-[35]에서, DWT들의 플로우그래프 개념이 제안되고 병렬/파이프라인 DWT 구조들을 제시하기 위해 상기 세 구조 필터 뱅크 개념과 비교된다. 특히, 그 플로우그래프 개념은, 옥타브들 내 그리고 옥타브들 사이의 데이터 전송을 보일 뿐만 아니라, 매 옥타브에서의 고유한 병렬구조를 완벽하게 드러낸다. 이것은 파이프라이닝과 병렬구조가 보다 높은 처리속도 및 하드웨어 유용성을 달성하기 위해 결합될 수 있게 한다. 특히, 그 플로우그래프 개념은 -포인트 DWT의 j번째 옥타브()가 병렬로 전체 또는 부분적으로 구현될 수 있는 개의 독립적 유사 동작들을 필요로 함을 보인다. DWT 옥타브들은 한 파이프라인 모드로 구현되고, 각 옥타브는 병렬 모드로 구현되며 병렬구조의 레벨은 한 옥타브에서 다음 옥타브까지 절반으로 된다. 파이프라인 스테이지들 내 가변 레벨 병렬구조를 통합하는 것은 완벽하게 균형잡힌 파이프라인 스테이지들을 가진 병렬-파이프라인형 장치가 설계될 수 있게 한다. 이는 파이프라인 스테이지들이 스테이지에서 스테이지까지 가변하는 정도로 병렬로 놓여 지는 파이프라인 모드로 옥타브들을 구현한다는 것을 의미한다. 이러한 개념은 수많은 상이한 방식들로 구현되어질 수 있다. [34]에서, 전체적 병렬-파이프라인형(FPP) 및 한정된 병렬-파이프라인형(LPP) DWT 구조들이라 칭해지는 두 구조들이 제안되었다. 이 두 구조들은 J개의 파이프라인 스테이지들로 이뤄지고, 각 파이프라인 스테이지는 이전 스테이지와 비교해 절반이 되는 개수의 처리 요소를 포함한다. 결국 매우 높은 처리 속도 및 대략 100%의 하드웨어 활용도가 달성된다.
알려진 병렬 또는 파이프라인형 구조들은 입력 길이, 옥타브 개수, 저대역 필터 및 고대역 필터의 길이, 또는 어떤 경우 그 실제 계수값들과 같은 DWT 패러미터들에 실질적으로 의존한다. 이들 패러미터들의 보다 큰 값들에 대해, 이들 구조들이 매우 거대해 질 수 있다. 또, 소정 구조의 소정 하드웨어 실시안에서 고정된 패러미터들을 갖는 DWT를 구축하는 것만이 가능하다. 그러나, JPEG 2000에서, DWT는 이미지 타일들(tiles of an image)에 별도로 적용되고, 이때 타일들의 크기는 1부터 까지 변화할 수 있다. 상이한 타일들에 대해 분해 옥타브의 개수는 0에서 255까지 변화할 수 있다. 따라서, 변화하는 패러미터를 가진 DWT들을 구축할 수 있는 장치, 즉 DWT 패러미터들에 상대적으로 무관한 일체화된 장치를 갖는 것이 바람직하다. 그러한 장치를 설계하는 것이 직렬 구조들의 경우에는 수월한 것이 되지만, 병렬 또는 파이프라인 구조의 경우에는 그다지 수월한 것이 아니다.
대부분의 통상적 구조들 [12]-[26]은 DWT 필터들의 길이에 비례해 다수의 곱셈기 및 가산기들을 이용한다. 어떤 구조들[17]-[18]에서는 가변 개수의 옥타브들을 가진 DWT들을 구축할 수 있으나, 그들의 효율성은 옥타브 수가 증가하면서 급속 도로 감소된다.
본 발명의 목적은, 이산 웨이브릿 변환(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) 어레이들로 구현될 수 있다.
본 발명에 따라, 특정 이산 웨이브릿 변환에 대한 구조들은 그 구조에 포함된 처리 요소(PE)들의 구조를 최적화함으로써 최적화될 수 있다.
본 발명에 제안된 구조들을 설명하기 위해, 먼저 DWT를 정의하고, 그 구조들 안에서 구현되는 기본 알고리즘을 제시할 필요가 있다. DWT들의 여러 선택적 정의/개념들 가운데 세 구조형(three-structured) 필터 뱅크, 격자 구조, 리프 팅(lifting) 체계 또는 매트릭스 개념과 같은 것들이 있다. 다음 논의에서는 매트릭스 정의와, 효율적인 병렬/파이프라인형 DWT 구조들을 설계하는데 매우 효과적인 DWT들의 플로우그래프(flowgraph) 개념도를 사용할 것이다.
및 는 각각 저대역 통과 및 고대역 통과 필터들의 계수들로 된 벡터들이고(L은 필터의 길이), 는 규격의 완전 언셔플(unshuffle) 연산자의 매트릭스이다. 완전 언셔플 연산자는 벡터 성분들의 번호 가 0부터 시작한다고 했을 때 출력 벡터의 첫번째(두번째) 절반부에 있는 입력 벡터의 짝수(홀수)번호 성분들을 모은다. 명확성을 위해, 저대역 통과 및 고대역 통과 필터들 모두는 짝수인 동일한 길이를 가진다고 가정한다. 그 결과는 당연히 임의의 필터 길이들에 대한 일반적 경우까지 확대될 수 있다. (이 아닌 인) 일반적인 경우들에서 k가 2와 같지 않을 때(즉 두 개의 필터링 연산 이외의 것들이 존재할 때), 언셔플 연산이 아닌 적절한 스트라이드(stride) 순열이 적용된다.
식 (1)과 (2)에 개시된 개념을 채택할 때, DWT는 J개의 스테이지들 (분해 레벨 또는 옥타브로도 불려짐)에서 계산된다. 이때 인 j 번째 스테이지는 우연한 변수들로 된 현 벡터와 희소 매트릭스 의 곱을 구성하며, 그 벡터의 첫번째가 입력 벡터 이다. 모든 매트릭스 의 하부 우측 구석은 식별(identity) 매트릭스라는 것에 유의하고, 매트릭스 의 구조를 고려하면, 그에 해당하는 알고리즘이, 과 ()가 우연한 변수들로 된 개의 벡터들이고 의 표시는 연쇄적 열(column) 벡터들 을 나타내는, 이하의 의사코드(pseudocode)로서 쓰여질 수 있다.
<제1알고리즘>
수학식 2의 매트릭스 를 가진, 제1알고리즘의 계산이 플로우그래프 개념을 이용해 보여질 수 있다. 인 경우의 예가 도 2에 도시된다. 이 플로우그래프는 J개의 스테이지들로 이뤄지고, j()번째 스테이지는 개의 노드들(도 2에서 박스들로 묘사됨)을 포함한다. 각 노드는 기본 DWT 연산(도 2(b) 참조)을 나타낸다. 인 스테이지 j의 i번째 노드()는 선행하는 스테이지의 순환적 연속 노드들인 또는 (첫번째 스테이지의 노드들에 대한) 입력들로부터 들어오는 엣지(edge)들을 구비한다. 각 노드는 두 개의 출력 엣지들을 포함한다. 상위(하위) 출력 엣지는 저역 통과(고역 통과) 필터 계수들로 된 벡터와 들어오는 엣지들의 값들로 된 벡터의 내적(inner product)의 값을 나타낸다. 한 스테이지의 출력 값들은 완전 언셔플 연산자에 의해 치환되는데, 모든 저대역 통과 성분들(상위 출력 엣지들의 값들)이 첫번째 절반으로 모이고, 고대역 통과 성분들은 치환 벡터의 나머지 절반으로 모여지도록 한다. 그러면 저대역 통과 성분들은 다음 스테이지로의 입력을 형성하거나 (마지막 스테이지 노드들에 있어서) 출력 값을 나타낸다. 그 단계에서의 고대역 통과 성분들 및 저대역 통과 성분들은 주어진 해법(resolution)에서의 출력 값들을 나타낸다.
실질적으로, 플로우그래프 개념은 이산 웨이브릿 변환의 또 다른 정의를 제공한다. 그것은 세-구조 필터 뱅크, 리프팅 방식 또는 격자 구조 개념과 같은 통상적 DWT 개념과 비교해, 적어도 실시의 관점에서 여러 잇점들을 포함한다.
그러나, DWT들의 플로우그래프 개념은 제시된 바와 같이, 보다 큰 N의 값들에 대해 매우 커지게 된다는 단점을 가진다. 이러한 단점은 다음과 같은 것을 기반으로 극복될 수 있다. , 즉 분해 레벨의 개수가 입력 벡터의 포인트들의 개수 보다 훨씬 적다고 가정할 때(대부분의 어플리케이션에서, ), DWT 플로우그래프는 개의 유사 패턴들로 이뤄짐을 알 수 있다(도 2의 빗금 부분 참조). 각 패턴은 자신의 옥타브들 각각으로의 입력 신호들을 형성하는 특정 방식을 가진 포인트 DWT라고 간주될 수 있다. 인 j번째 옥타브의 개의 입 력값들은 원래의 DWT( 길이의) 안에서 개의 연속적인 값들로 이뤄진 개의 겹치지 않는(non-overlapping) 그룹들로 나눠진다. 이것은 수학식 3의 벡터 를 서브 벡터들인 으로 나눈다는 것과 같은 것이다. 상기 및 이하에서 표시는 x의 a번째에서 b번째까지의 성분들로 이뤄진 x의 서브 벡터를 의미한다. 그러면, s번째 패턴내에서 인 j 번째 옥타브의 입력은 수학식 4와 같은 벡터의 서브 벡터 가 된다.
개의 패턴들이 하나의 패턴으로 병합될 때, DWT의 컴팩트형(또는 핵심) 플로우그래프 개념이 얻어진다. J=3, L=4인 경우의 컴팩트형 DWT 플로우그래프 개념의 예가 도 3에 도시된다. 컴트형 DWT 플로우그래프는 j() 번째 스테이지에서 개의 노드들을 구비하며, 개의 일시 분포 값들로 된 세트가 모든 노드 마다 할당된다. 모든 노드 마다 ("비컴팩트형") DWT 플로우그래프에서와 같은 L 개의 입력 엣지 및 두 개의 출력 엣지들을 포함한다. 또 입력 엣지들은 이전 스테이지의 L개의 "순환적 연속" 노드들로부터 나오지만 이제 각 노드는 일시적 분포 값들로 된 한 세트를 나타낸다.
즉, j() 번째 스테이지 i번째 노드의 L 개의 입력들은, s 번째 값에 있어서(), (j-1) 번째 스테이지의 노드들인 에 연결되며, 이제 (s+s')번째 값들을 나타낸다(). 또, 이제 출력들은 컴팩트형 플로우그래프의 출력 엣지들을 통해 공간적으로만이 아니라 시간적으로 분포된다. 즉, 마지막 스테이지의 한 노드의 저대역 통과 필터링 결과나 한 노드의 고대역 통과 필터링 결과에 상응하는 각각의 출력 엣지는 개의 출력 값들의 세트를 나타낸다. 컴팩트형 DWT 플로우그래프의 구조는 DWT의 길이에 의존하지 않고 분해 레벨의 개수 및 필터 길이에만 의존함에 유의해야 한다. DWT 길이는 각 노드에 의해 나타내지는 값들의 개수에만 반영된다. 컴팩트형 플로우그래프가 다소 변형된 부가 방식을 가진 포인트 DWT 구성을 포함한다는 것에도 주목해야 한다. 실제로, 이 부가 방식은 DWT 정의에 대한 매트릭스 형식에 자주 이용된다.
가 의 메인 -마이너(minor)를 나타낸다고 하자(수학식 2 참조)(). 즉 가 의 첫번째 행들과 첫번째 열들로 이뤄진 매트릭스라고 하자. 예를 들어, J-j+1=2이고 L=6이면, 는 다음과 같은 형태가 된다:
수학식 4의 개념을 채용할 때, 컴팩트형 플로우그래프로 표현되는 계산 과정은 다음과 같은 의사코드로 표현될 수 있다.
<제2알고리즘>
s에 대한 사이클을 병렬로 구축하여 병렬 DWT를 구현할 수 있다. 한편, j와 s에 대한 사이클의 내포(nesting) 순서를 바꾸고 j에 대해 (내포된) 사이클을 병렬로 구축함으로써 파이프라인형 DWT 구현을 가능하게 할 수 있다. 그러나, 이러한 두 구현 방식은 연산의 수가 한 옥타브에서 다음 옥타브까지 절반으로 되기 때문에 효율적이지 않을 수도 있다. 그러나, 두 방법을 조합하여 매우 효율적인 병렬-파이프라인형이나 부분 병렬-파이프라인형 구현이 이뤄지게 된다.
파이프라인 방식을 제2알고리즘에 적용할 때, s에 대한 계산이 j번째 옥타브()가 단계들의 지연을 유발함을 의미하는 에 대한 계산 결과를 포함하므로 재타이밍(retiming)이 적용되어야 한다. 상기 지연은 누적되므 로, j번째 옥타브()는 단계들 중에 다음의 수학식 5의 지연을 가지고 시작해야 한다.
따라서, 단계부터 시작해 단계가 될 때까지 계산이 이뤄진다. 단계들에서 첫번째 옥타브만의 계산이 수행되고, 단계들일 때 처음 두 옥타브들만의 연산이 수행되는 식으로 이뤄진다. 단계에서 시작해 단계가 될 때까지(라고 가정함) 모든 옥타브들 의 계산이 수행되지만, 단계에서 시작할 때에는 첫번째 옥타브에 대한 어떤 계산도 수행되지 않으며, 단계에서 시작할 때 처음 두 옥타브들에 대한 어떤 계산도 수행되지 않는 식으로 계산이 이뤄진다. 일반적으로, 단계들에서, 옥타브 들에 대한 계산이 수행되며, 이때 이고 이다. 다음의 의사코드는 본 발명의 제안된 구조들 안에서 구축되는 파이프라인형 DWT 구현을 나타낸 것이다.
본 발명에서, 제1유형 및 제2유형 코어 DWT 구조들이라 일컫는 두 종류의 DWT 구조들의 일반 매개적 구조가, 한 코어 DWT 구조에 기반해 구성되고 각각 멀티 코어 DWT 구조와 가변 분해 DWT 구조라 칭하는 두개의 다른 DWT 구조들의 일반 매개적 구조들과 함께 개시된다.
모든 구조들은 가변 레벨의 병렬구조로 구현될 수 있으므로 속도와 하드웨어 복잡도간의 트레이드 오프(trade-off)가 가능하게 된다. 병렬구조의 레벨에 따라, 일정 시간 구현때까지의 처리 속도(시간 유닛 당 하나의 포인트 DWT)가 얻어진다. 병렬구조의 각 레벨에서, 구조들은 거의 100%의 하드웨어 활용도를 가지고 동작하므로 직렬 DWT 구현에 비교할 때 병렬 구조 레벨에 대한 거의 선형적 속도 향상을 이룰 수 있다. 이러한 구조들은 상대적으로 DWT 패러미터들에 독립적이다. 즉, 제안된 구조들 중 한 구조를 포함하는 장치는 단일 DWT 뿐 아니라, 서로 다른 필터 길이를 가지거나 가변 해법 DWT 구조의 경우 임의의 길이로 된 벡터들에 대해 서로 다른 개수의 분해 레벨들을 가진 다양한 서로 다른 DWT들을 효과적으로 구현할 수 있을 것이다.
제안된 구조들에 대한 서로 다른 많은 구현방식들이 있을 수 있다. 따라서, 그 구조들의 일반적 구성이 한 동작 레벨에서 서술된다. 레지스터 레벨에서의 일반적 구성에 예시적 구현방식 역시 개시된다. 이들 구현 방식들은 일반적 구성의 유효성을 보여준다. 제안된 구조들은 알려진 구조들과는 동작 서술 레벨의 측면에서 실질적으로 상이하다. 각각의 제안된 구조들의 보다 상세한 정리가 이하에서 이뤄질 것이다. [34]에 발표된 FPP 및 LPP 구조들은 제1유형(멀티 및 단일) 코어 DWT 구조들에 대한 특정한 구현방법이라 간주될 수 있다.
제1유형 및 제2유형의 코어 DWT 구조들은 소정 개수 를 초과하지 않은 길이 L의 저대역 통과 필터 및 고대역 통과 필터들에 기반하여 옥타브들을 가진 포인트 DWT를 구현한다. 이때 J 및 (m 이나 L이 아닌)는 그 구현 방식에서의 패러미터들이다. 이 두 제1유형 및 제2유형의 코어 DWT 구조들은 직렬 또는 병렬 데이터 입력 블록과 J 개의 파이프라인 스테이지를 구비하고, 인 j번째 스테이지는 데이터 라우팅(routing) 블록과 개의 처리 요소들(PE)로 이뤄진다. 이것은 도 4와 관련해 설명될 것이다. 이 구조의 인 j번째 파이프라인 스테이지는 j번째 DWT 옥타브의 개의 독립적 유사 동작들을 개의 동작 단계로 구현한다. 각 단계에서, 동작들로 된 그룹이 파이프라인 스테이지의 개 처리 요소들 내에서 병렬로 구현된다. 처리 요소들은 가변 레벨의 병렬구조로 구 현될 수 있고, 이것은 입력의 개수 에 의해 구체화된다. p개의 입력을 가진 단일 처리 요소는, 모든 타임 유닛에서 의 곱셈 및 가산의 결과가 병렬로 얻어지는 시간 유닛들로 구성된 한 동작 단계로 된 단일 기본 DWT 연산(도 2(b) 참조)을 구현한다. 따라서, (연속적인 입력 벡터들이 구조안으로 진입할 때 시간 유닛들 사이의 인터벌로서 측정되는) 시간 주기는 시간 유닛의 듀레이션(duration)이 하나의 곱셈 동작 주기와 동일한, 시간 유닛들과 동일하다. 이것은 앞서 알려진 구조들 [12-26] 중 최고로 빠른 주기 보다 배가 빠르고 [30]에 기술된 구조들 보다는 배 만큼 빠르다. 이 두 구조들의 효율성(또는 하드웨어 유용성)은 가 된다. 인 경우, 그 주기는 시간 유닛이 되고, 이것은 필터 길이 L에 의존하는(LPP 구조는 고정 길이 L인 필터들로만 DWT를 구축할 수 있임) [34] 및 [35]에 개시된 LPP 구조에서와 동일하다. 두 유형의 코어 DWT 구조는 한 파이프라인 스테이지의 처리 요소들 사이의 상호 연결의 부재(제1유형)와 존재(제2유형)에 따라 달라진다. 이 두 유형의 코어 DWT 구조의 가능한 구현 방법이 도 5에서 10에 개시된다. 상술한 두 유형의 코어 DWT 구조는 패러미터 에 따른 병렬구조의 가변 정도로 구현될 수 있다.
또, 새로운 패러미터인 을 도입해, 병렬구조 레벨에서의 유연성(flexibility)이 멀티 코어 DWT 구조들 안에서 얻어질 수 있다. 멀티 코어 DWT 구조는, 실제로, 해당 (단일)코어 DWT 구조를 회 확장함으로써 그 (단일)코어 DWT 구조로부터 얻어진다. 그 일반적 구성이 도 11에 개시된다. 이 구조는 직렬 또는 병렬 데이터 입력 블록과 J 개의 파이프라인 스테이지로 이뤄지며, j ()번째 파이프라인 스테이지는 하나의 데이터 라우팅 블록 및 개의 처리 요소들로 이뤄져 있다. 멀티 코어 DWT 구조의 시간 주기는 개의 시간 유닛들과 같고, 단일 코어 DWT 구조의 시간 주기 보다 배 만큼 빠르다. 즉, 선형 속도 증가가 이뤄진다. 멀티 코어 DWT 구조의 효율도는 단일 코어 구조에서와 동일한, 약 100%이다. 및 의 경우, 그 주기는 포인트 DWT에 대한 단일 시간 유닛이 된다. 동일한 성능이 [34] 및 [35]에 개시된 FPP 구조에서 얻어지며, 이는 멀티 코어 DWT 구조의 가능한 구현 방식의 특별한 경우( 및 )로서 간주될 수 있다.
단일 및 멀티 코어 DWT 구조들은 입력 길이 및 필터들의 길이에 상대적으로 무관하며, 이것은 (를 초과하지 않는 길이를 가진) 임의의 필터들에 기초하고 임의의 길이로 된 신호들에 적용되는 DWT들이 제1유형 또는 제2유형 코어 DWT 구조를 구비한 동일한 장치들로 효과적으로 구현될 수 있음을 의미한다. 그러나, 제1유형, 제2유형 및 멀티 코어 구조들은 DWT 옥타브 개수 J에 의존한다. 이들은 J 개 보다 적은 옥타브들로 DWT들을 구현하지만, 하드웨어 유용도에서 약간의 손실이 따른다.
가변 해법 DWT 구조는 임의의 옥타브 개수 J'로 DWT들을 구현하며, 이 구조의 효율성은 J'가 소정 개수와 같거나 그보다 클 때면 약 100%를 유지한다. 가변 해법 DWT 구조는 개의 분해 레벨에 상응하는 코어 DWT 구조와, 예를 들어 RPA 기반 구조(도 12(a) 참조)인 임의의 직렬 DWT 구조를 구비한다. 코어 DWT 구조는 J'-옥타브 DWT의 처음 개의 옥타브들을 구현하고, 직렬 DWT 구조는 J'-옥타브 DWT의 마지막 개의 옥타브들을 구현한다. 코어 DWT 구조가 가변 레벨 병렬구조로 구현될 수 있기 때문에, 일 때마다 대략 100%의 하드웨어 유용도가 얻어지도록 직렬 DWT 구조와 균형을 맞출 수 있다.
멀티 코어 DWT 구조에 기반한 가변 해법 DWT 구조는 데이터 라우팅 블록이 멀티 코어 및 직렬 DWT 구조들 사이에 삽입되게 구성될 수도 있다(도 12(b) 참조).
<제안된 DWT 구조들>
여기서는, 멀티 코어 DWT 구조 및 가변 해법 DWT 구조라고 각각 일컬어지고 코어 DWT 구조들에 기반해 만들어진 두 개의 다른 DWT 구조들과 함께, 제1유형과 제2유형 코어 DWT 구조들이라 칭해지는 두 유형의 DWT 구조의 일반적 구성을 기술한다. 멀티 코어 DWT 구조는 코어 DWT 구조들 가운데 하나를 확장한 것으로서, 패러미터 에 의존하여 가변 레벨 병렬구조로 구현될 수 있고, 특정의 경우()에는 단일 코어 DWT 구조가 된다. 이해하기 쉽도록, 이 구조들에 대한 개시는 단일 코어 DWT 구조들의 설명으로부터 시작한다.
두 종류의 코어 DWT 구조는 소정 개수 를 초과하지 않는 길이 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)로 구현될 수 있다. 전자의 경우, 데이터 입력 블록은 셀들 각각으로부터 병렬 워드를 출력하는 길이의 쉬프트 레지스터(도 4의 점선으로된 블록)에 연결되는 단일(직렬 워드) 입력 포트로 구성된다. 후자의 경우, 데이터 입력 블록은 의 병렬 입력 포트들을 구비한다. 그 두 경우들에서, 데이터 입력 블록은 첫번째 파이프라인 스테이지에 있는 데이터 라우팅 블록의 개의 입력들과 연결되는 개의 병렬 출력들을 포함한다. 도 6에 병렬 워드 데이터 입력 블록의 예가 개시되고, 도 7 및 10은 직렬 워드 데이터 입력 블록의 예를 개시한다.
<제1유형 코어 DWT 구조>
제1유형 코어 DWT 구조 안에 구현되는 기본 알고리즘은 2.2단계를 구현하는 특정 순서를 가진 제3알고리즘이다. 매트릭스 의 구조는 2.2 단계의 매트릭트 벡터 곱셈이 쌍의 벡터-벡터 내적 계산들로 분해될 수 있도록 하는 것이다:
상기 구조는 병렬로 구현될 수 있다. 한편, 길이 L의 각 벡터-벡터 내적은 (계수 벡터들과 입력 벡터들이 적합한 개수의 0들로 첨가되고 연속적인 개의 성 분들로 된 서브 벡터들로 분할된다고 가정할 때) 내적의 결과가 누적된 길이의 일련의 내적들로 분해될 수 있다. 결국, 제3알고리즘은 이전 의사코드에 대해 다음과 같은 변형된 형태로서 제공될 수 있다.
s 및 j가 주어질 때, 수식 (6) 및 (7) 연산 그룹은, n=0에서의 서브 벡터 , 및, 일반적으로 에서의 서브 벡터 을 관련시킨다는 것에 유의한다. 즉, 에 대한 계 산은, 벡터 성분들을 p 위치만큼 왼쪽으로 옮긴 벡터 로부터 얻어지는 벡터 의 최초 개의 성분들을 관련시킨다. 소정의 에 대한 계산에서는 항상 현재의 벡터 성분들 을 관련시킨다는 것에 유의해야 한다.
제1유형 코어 DWT 구조의 일반적 구성이 도 4에 개시된다. 이런 구조의 경우, 점선들은 무시될 수 있는데, 이는 단일 스테이지의 처리 요소들 사이에 어떤 연결도 존재하지 않기 때문이다. 이 구조는 (이미 상술한) 데이터 입력 블록과 J개의 파이프라인 스테이지들로 이뤄진다. 일반적으로 제1유형 코어 DWT 구조의 j() 번째 파이프라인 스테이지는 그 스테이지로의 입력을 형성하는 개의 입력들 과, 개의 처리 요소들의 입력들과 연결된 개의 출력들 을 구비하는 데이터 라우팅 블록을 구비한다. 모든 처리 요소는 p개의 입력과 두개의 출력을 가지며, 는 모든 처리 요소의 병렬 구조 레벨을 나타내는 구현 방식의 패러미터이다. j()번째 데이터 라우팅 블록의 연속적인 p개의 출력들 은 동일한 스테이지의 i() 번째 처리 요소()의 p개의 입력들과 연결된다. j()번째 파이프라인 스테이지의 개의 처리 요소들 각각의 최초 출력들은 그 스테이지의 출력들인 을 형성하고 다음 (j+1) 스테이지의 데이터 라우팅 블록의 개 의 입력들인 와 연결된다. 마지막 J번째 스테이지의 (한) 처리 요소의 최초 출력은 이 구조의 0 번째 출력 이다. j()번째 파이프라인 스테이지의 개의 처리소자들의 두번째 출력은, 이 구조의 번째에서 까지의 출력들 을 형성한다.
제1유형 코어 DWT 구조의 블록들이 이제 그 동작 레벨에서 서술될 것이다. 편의를 위해, 한 시간 유닛은 처리 요소들이 한 동작(연산)을 완수하는 주기(처리 요소로 들어가는 p 개의 데이터로 된 일련의 그룹들간의 주기와 동일)라고 정의하고 이 구조의 동작 단계는 개의 시간 유닛들을 구비한다고 정의한다.
데이터 입력 블록은 동작 단계당 개의 성분들의 비율(rate)로 입력 벡터의 성분들로 된 그룹을 직렬 또는 병렬로 입력하고 병렬로 출력한다. 따라서, 벡터 는 단계들에서 데이터 입력 블록의 출력단에서 형성된다.
( 스테이지)의 데이터 라우팅 블록은, 보통, 모든 동작 단계의 n=0인 최초 시간 유닛에서 개의 성분들로 된 벡터를 병렬로 입력하는 임의의 회로로서 구현될 수 있으며, 그리고 나서 데이터 라우팅 블록은 그 동작 단계의 모든 시간 유닛인 에서, 다음의 수학식 8과 같은 이전 단계들에서 수용된 벡터들의 (시간 순서로 된) 연쇄적 벡터의 개의 성분들 로 된 벡터를 병렬로 출력한다.
제1유형 코어 DWT 구조에 사용된 처리 요소들의 기능은 모든 각 시간 유닛 중에, p개의 입력단들에서의 벡터와 소정 계수들로 된 두 벡터들의 두 내적을 산출하고 한 동작 단계중에 계산된 그 두 내적의 결과를 (따로) 누적하는 것이다. 각 동작 단계의 마지막에서, 두 누적된 결과들은 처리 요소의 두 출력부로 보내지고 새로운 누적이 시작된다. 올바른 변수들이 각 처리 요소들의 입력단에 만들어지면 각 처리 요소가 한 쌍의 연산식인 수식 (6) 및 (7)을 구현함이 자명할 것이다.
이제 이 구조가 제3.1알고리즘에 따른 계산을 구현함을 보일 것이다. 인 경우 추가 지연이 일어난다. 이 추가 지연은 임의의 필터 길이 를 가진 DWT들을 구현할 수 있는 구조의 유연성에 따른 결과(댓가)이다. 이것은 고정 필터 길이 L을 가진 DWT의 계산방식을 개시한 제3.1알고리즘과 비교될 수 있다. 실제로, 그 구조는 필터 길이 에 대해 설계된 것이지만, 다소 증가된 시간 지연을 가지면서 시간 주기의 증가는 없는 보다 짧은 필터들을 가진 DWT들 역시 구현한다.
이 구조의 동작 중, 벡터 이 단계의 데이터 입력 블록의 출력단에 형성되어, 첫번째 파이프라인 스테이지에 있는 데이터 라우팅 블록의 입력부로 들어간다. 이 구조가 제3.1알고리즘에 따른 계산을 수행한다는 것을 보이기 위해, 벡터들 이 단계들에서 j번째 스테이지로 들어간다고 할 때, 벡터들 이 ((j+1)번째 스테이지의 입력단에 연결되는) j번째 스테이지의 처리 요소들의 첫번째 출력단에 형성된다는 것을 보이는 것으로 충분하다 (수학적 귀납으로 증명). 따라서, j () 스테이지의 데이터 라우팅 블록이 단계들에서 벡터들을 수용한다고 가정한다. 그러면, 데이터 라우팅 블록들의 동작 사양에 따라, 각각 단계들에서 수용되는 벡터들의 연쇄적 연결인 다음의 수학식 10과 같은 벡터의 성분들 이,
각 단계의 시간 유닛 에서 데이터 라우팅 블록의 출력단에 형성될 것이다. 이므로(수학식 3과 수학식 9를 비교), 벡터 (수학식 4에 의해 정의됨)는 의 서브 벡터이고 그 벡터들의 첫번째 성분들은 완전히 동일하다. 따라서 벡터 이 스테이지의 데이터 라우팅 블록의 출력단에, 단계의 시간 유닛 에서 형성된다. 데이터 라우팅 블록과 처리 요소들 사이의 연결로 인해, 실제로 수식 (6) 및 (7) 동작의 독립변수들인, 벡터 의 성분들 이 단계의 시간 유닛 의 의 입력단에 형성될 것이다. 따라서, 처리소자들이 해당 계수들을 가지고 자신들의 동작을 구현할 때, 벡터 가 처리소자들의 최초의 출력단에 형성되고, 벡터 는 단계 이후 처리소자들의 두번째 출력단에 형성될 것이다. 처리 요소들의 최초의 출력단이 다음 파이프라인 스테이지의 입력단에 연결되므로, 이 구조가 다른 타이밍을 가진다고는 해도(제3.1알고리즘의 모든 부분에서 를 로 대체함) 제3.1알고리즘에 따른 계산방식을 구현한다는 것을 입증한다.
상기 논의로부터 -포인트 DWT가 각각이 개의 시간 유닛들로 이뤄진 단계들로 된 제1유형 코어 DWT 구조로서 구현됨이 명백해진다. 따라서, 해당 벡터들의 입력과 출력간의 지연은 다음의 수학식 11과 같은 타임 유닛과 같게 된다.
이 구조는 입력 벡터들의 스트림인 DWT들을 구현할 수 있다는 것이 자명하다. 따라서, 처리 속도 혹은, (연속 입력 벡터들이 그 구조로 입력될 때의 시간 유닛들간 인터벌로서 측정되는) 시간 주기가 다음의 수학식 12의 시간 유닛들과 같다는 것이 명확해진다.
병렬/파이프라인형 구조의 성능은 흔히 수학식 13과 같이 정의되는, 하드웨어 활용성 또는 효율성과 관련해 평가된다.
T(1)은 한 처리소자를 가진 알고리즘의 구현 시간을 나타내고, T(K)는 K개의 처리소자들을 구비한 구조의 동일 알고리즘의 구현 시간이다. 시간 유닛은 제1유형 코어 DWT 구조에 사용되는 처리소자들과 유사한 하나의 처리소자를 이용해 포인트 DWT를 구현하는데 필요로 됨을 알 수 있다. 수학식 11 및 12와 함께, 제1유형 코어 DWT 구조 내에 총 개의 처리소자들이 존재한다는 사실을 고려할 때, 시간 지연, 또는 덧붙여 시간 주기 복잡성 모두와 관련해, 이 구조에서 약 100%의 효율성(하드웨어 유용성)이 달성됨을 알 수 있다. 종래 기술([17] 참조)로부터 알려진 몇 개의 파이프라인형 DWT 디자인에서만 FPP 구조의 효율성과 가까운 효율성에 도달될 수 있는 반면, 기존의 파이프라인형 DWT 구조들 대부분은 100%의 평균 효율성 보다 훨씬 못미친다는 것에 유의해야 한다. 기존의 DWT 구조들에서 적어도 O(N) 시간 유닛의 시간 주기가 필요하다는 것 역시 유의해야 한다. 본 발명의 구조는 패러미터 p에 따른 가변 레벨 병렬구조로 구현되므로 원하는 시간 주기를 달성할 수 있다. 수학식 12로부터와 같이, 구현방식의 시간 주기 복잡 도는 및 사이에서 가변한다. 따라서, 이 구조의 처리속도는 가장 빠르다고 알려진 구조들에서의 처리속도 보다 에서 배 만큼 더 빠르다. 가변 레벨 병렬구조로 이 구조를 구현하는 것은 시간과 하드웨어 복잡도 사이에 타협이 될 기회 또한 제공한다. 이 구조는 매우 정상적이고 가령 [17]의 구조와는 달리 단순한 제어 구성(실질적으로, 클록)만을 필요로 한다는 것 역시 주목해야 한다. 이 구조는 피드백, 스위치들, 또는 입력의 크기에 종속되는 긴 연결을 포함하지 않으며, 다만 기껏해야 길이가 O(L)일 뿐인 연결들을 포함할 뿐이다. 따라서, 이 구조는 부분 단축(semisystolic) 어레이로서 구현될 수 있다.
<제1유형 코어 DWT 구조의 가능한 구현>
제1유형 코어 DWT 구조에 있어서, j() 번째 파이프라인 스테이지의 가능한 구성이 도 5에 도시된다. 인 경우에 대한 그러한 두 구현 예가 도 6 및 7에 도시되며, 여기서 각각 이고 p=2이다. 인 경우 및, 특히 도 6의 예에 대한 특정 버젼에 해당하는 이러한 구현에 대한 특정 경우가 [34] 및 [35]의 간행물들에 개시됨에 유의해야 하며, 이때 그 경우는 제한된 병렬-파이프라인형(LPP) 구조라고 언급되었다. 이와 반대로, 제1유형 DWT 구조 및 도 5에 있는 그 구현 방식은 임의의 p의 경우에 대한 것이다. [34] 및 [35] 문헌들에 설명된 LPP 구조는 보다 작은 필터 길이들을 가진 DWT들의 효과적인 계산을 지원하지 않지만, 도 5에 개시된 제1유형 코어 DWT 구조의 구현 방식은 지원한다는 것 또한 유의해야 한다.
도 5를 참조할 때, 이 구현 방식에서 데이터 라우팅 블록은 각각 지연의 체인 연결 그룹들과, 각 시간 유닛에서 자신의 셀들 안의 값들을 p위치 만큼 위로 이동시키는 길이의 쉬프트 레지스터로 이뤄짐을 알 수 있다. 스테이지로의 개의 입력은 첫번째 지연 그룹과 병렬로 연결되고, 그 출력은 다음 지연 그룹의 입력들과 연결된다. 각 지연 그룹의 출력들은 쉬프트 레지스터의 개의 연속 셀들과 병렬로 연결된다, 마지막 번째 지연 그룹의 출력들은 첫번째 셀들로 연결되고,번째 지연 그룹의 출력들은 그 다음 셀들에 연결되는 식이지만, 예외적으로, 그 스테이지의 첫번째 입력들은 쉬프트 레지스터의 마지막 셀들로 직접 연결된다. 쉬프트 레지스터의 첫번째 셀들의 출력들은 데이터 라우팅 블록의 출력을 형성하고 처리소자들의 입력들과 연결된다. 의 경우(도 6 참조) 쉬프트 레지스터가 필요로 되지는 않지만, 지연 소자들의 그룹들의 출력 및 그 스테이지의 개의 입력은 처리소자들의 입력에 직접 연결된다. 한편, p=2인 경우(도 7 참조) 쉬프트 레지스터의 첫번째 셀들로부터 처리소자들의 입력들까지 개의 병렬 연결들만이 존재하므로, 데이터 라우팅 블록과 처리소자들 간의 상호 연결은 간단해진다. 이 분야의 당업자에게는 본 발명에 개시된 구현 방식이 제1유형 코어 DWT 구조의 데이터 라우팅 블록에 대한 동작 제한을 만족시킨다는 것이 명백할 것이다. 실제로, 모든 스텝이 시작될 때, 쉬프트 레지스터는 단계들 이전에 수용된 데이터의 벡터와 다음에 수 용되는 벡터들로부터의 첫번째 개의 성분들로 된 벡터와의 연쇄적 연결부(concatenation)를 포함한다. 시간 유닛 도중, 쉬프트 레지스터는 매 시간마다 그 성분들을 p 위치만큼 위로 이동시킨다.
제1유형 코어 DWT 구조에 대한 처리소자들의 가능한 구성들이 임의의 인 경우에 대해 도 8(각각 도 8a, b, c 및 d)에 도시된다. 역시 이 분야의 당업자에게는 이러한 구성이 수식 (6) 및 (7)의 동작을 구현한다는 것과, 따라서 처리소자들의 동작 사양을 만족시킬 수 있다는 것이 자명할 것이다. 이 구성들이 필터 계수들에 관계없이 일반적 DWT 구현에 적합하다는 것과, 특정 필터 계수들에 적합한 처리 요소 구성 역시 구현될 수 있다는 것에도 다시 유의해야 한다.
<제2유형 코어 DWT 구조>
제2유형 코어 DWT 구조는 제3.1알고리즘의 다소 변형된 버전을 구현한 것이다. 그 변형은 수식 6 및 7 동작의 피연산함수(operand)들이 이 되는 색인 i 및 n으로 된 및 쌍에 있어서 동일하다는 관측에 기반하고 있다. 짝수 p를 가정할 때(홀수의 경우도 비슷하게 다뤄지나 그 표현에 있어 더 많은 기술을 요한다), 이는, 수학식 (6) 및 (7)의 동작을 구현할 때 브랜치 내 시간 유닛 에 사용되는데 필요로 되는 피승수들이, 브랜치 내 n-1 단계에서 얻어지는 피승수들로부터 얻어질 수 있다는 것을 의미한다. 상응하는 계산 과정이 이하의 의사코드로 설명될 것이다:
<제3.2알고리즘>
제2유형 코어 DWT 구조의 일반적인 구성이 도 4에 도시된다. 이 경우, 동일한 파이프라인 스테이지에 속하는 처리소자(PE)들간의 연결들 (점선)은 유효하다. 도 4에서와 같이, 제2유형 코어 DWT 구조는, p개의 입력과 2개의 출력(이후부터 메인 입력과 메인 출력으로 칭함)에 있어 모든 처리소자가 추가의 p개 입력 및 p개의 출력(이후 중간 입력 및 출력으로 칭함)을 구비한다는 것을 제외하면 제1유형 코어 DWT 구조와 유사하다. 의 p개의 중간 출력은 의 p개의 중간 입력들과 연결된다. 제2유형 코어 DWT 안의 다른 연결들은 제1유형 코어 DWT 구조 내의 연결들과 유사하다.
제2유형 코어 DWT 구조의 동작은 제1유형 코어 DWT 구조의 동작과 실질적으로 동일하다. 데이터 입력 블록의 동작은 제1유형 DWT 구조의 경우에서와 완전히 동일하다.
( 스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 타임 유닛 n=0에서 개 성분들로 된 벡터를 병렬로 수용하고 수학식 8에 정의된 이전 단계들에서 수용된 벡터들의 (시간적 순서로) 연결부인 벡터의 첫번째 개의 성분들 로 된 벡터를 병렬로 출력하는 임의의 회로로서 구현될 수 있다. 그러한 동작 단계의 각 시간 유닛 에서, 데이터 라우팅 블록은 자신의 마지막 p개의 출력단에 동일 벡터의 p개의 성분 으로 된 다음 서브 벡터를 병렬로 출력한다.
각 동작 단계의 모든 시간 유닛 에서의 제2유형 코어 DWT 구조의 동작은 p 개의 메인, 또는 p개의 중간 입력단에 존재하는 벡터 x와, 소정 계수들로 된 두 벡터들인, 길이 p의 LP' 및 HP'와의 두 내적을 산출하는 것이고, 이와 함께 x와 LP'의 포인트별(point-by-point) 곱을 산출하는 것이다. n=0의 시간 유닛에서, 벡터 x는 처리 요소의 p개의 메인 입력들을 이용해 형성되고, 의 시간 유닛들에서 벡터 x는 처리소자의 중간 입력들을 이용해 형성된다. 한 동작 단계 중에 산출된 두 내적들의 결과는 누적되어 처리 요소의 두 메인 출력단으로 보내지고, 한편 포인트별 곱셈의 결과들은 처리 요소의 중간 출력단으로 보내진다.
제1유형 코어 DWT 구조의 경우와 마찬가지로, 제2유형 코어 DWT 구조는 수학식 11 및 12에 의해 주어진 시간 지연 및 시간 주기 특성을 가진 제3.2알고리즘을 구현함을 알 수 있다. 제1유형 및 제2유형 구조들의 다른 특성들 역시 이와 비슷하다. 특히, 제2유형 구조는 매우 빠르고 부분 단축 구조 및 가변하는 레벨의 병렬구조로 구현될 수 있으므로, 시간과 하드웨어 복잡도 사이의 타협이 이뤄질 수 있는 기회를 제공할 수 있다. 이들 두 구조들 간의 차이는 제1유형 코어 DWT 구조의 데이터 라우팅 블록들의 쉬프트 레지스터들이 제2유형 코어 DWT 구조내 처리소자들 사이의 부가적 연결들로 대체된다는 데 있다.
<제2유형 코어 DWT 구조의 가능한 구현 방식>
제2유형 코어 DWT 구조에 있어서 j()번째 스테이지의 가능한 구성이 도 9에 도시되어 있다. 인 경우에 대한 그 구현예가 도 10(a)에 도시된다. 이 구현 방식에서, 데이터 라우팅 블록은 각각 지연들로 이뤄진 개 의 체인 연결 그룹들 및, 각 시간 유닛 마다 값들을 p 위치씩 위로 이동시키는 길이의 쉬프트 레지스터로 이뤄진다. 그 스테이지로의 개의 입력들은 첫번째 지연 그룹에 병렬로 연결되고, 그 출력은 다음 지연 그룹의 입력들과 연결된다. 마지막 번째 지연 그룹의 출력들은 데이터 라우팅 블록의 첫번째 개의 출력들을 형성하고 처리 요소들의 메인 입력단으로 연결된다. , 번째 그룹의 출력들은 쉬프트 레지스터의 개의 연속 셀들에 병렬로 연결된다. 번째 지연 그룹의 출력들은 첫번째 개의 셀들에 연결되고, 번째 지연 그룹의 출력들은 다음 개의 셀들에 연결된다. 그러나, 그 스테이지의 최초 개의 입력들은 쉬프트 레지스터의 마지막 개의 셀들에 직접 연결된다. 쉬프트 레지스터의 최초 p-2개의 셀들로부터의 출력은 데이터 라우팅 블록의 마지막 p-2개의 출력을 형성하고 일반적 구성 내의 연결에 따라 처리소자들의 메인 입력단에 연결된다. 개시된 구현 방식이 제2유형 코어 DWT 구조의 데이터 라우팅 블록에 있어서의 동작 제한을 만족시킨다는 것을 알 수 있다. 실제로, 모든 스텝의 시작시, 이전 단계들에서 수용된 벡터들의 (시간 순서로 된) 연결부인 벡터의 최초 개의 성분들은 데이터 라우팅 블록의 출력부에서 생성되고 그리고나서 모든 다음 시간 유닛 중에 그 벡터의 다음 p개의 성분들이 그 마지막 p개의 출력단에서 형성된다.
p=2인 경우에 있어서, 제2유형 DWT 구조의 가능한 처리소자 구성이 도 10(b) 에 도시된다. 이 분야의 당업자에게는 임의의 p 및 에 대한 처리소자 구성이 도 8(a),(b),(c) 및 (d)에 도시된 구성과 동일하게 설계될 수 있음이 자명할 것이다.
<멀티 코어 DWT 구조>
상술한 두 종류의 코어 DWT 구조들은 패러미터 p에 따른 가변 레벨 병렬구조로 구현된다. 또 새로운 패러미터인 를 도입하여, 병렬구조의 레벨에 서의 유연성이 멀티 코어 DWT 구조 안에서 얻어진다. 멀티 코어 DWT 구조는, 실제로, 단일 코어 DWT 구조를 r 회 확장함에 따른, 해당 단일 코어 DWT 구조로부터 얻어진다. 그 일반적 구성이 도 11에 개시된다. 이 구조는 데이터 입력 블록과 J개의 파이프라인 스테이지들로 이뤄지고, 각 스테이지는 데이터 라우팅 블록과 처리소자들로 된 블록을 포함한다.
데이터 입력 블록은 코어 DWT 구조들의 경우와 유사한 방식으로 직렬 워드(word-serial) 또는 병렬 워드(word-parallel)로서 구현될 수 있으나, 이 경우 데이터 입력 블록은 첫번째 파이프라인 스테이지의 데이터 라우팅 블록의 개의 입력단들로 연결되는 개의 병렬 출력단을 구비한다. 데이터 입력 블록의 동작은 동작 단계별로 개의 성분들의 레이트로 입력 벡터의 성분들로 된 한 그룹을 직렬 혹은 병렬로 수용하고 병렬로 출력하는 것이다.
먼저, 제1유형 멀티 코어 DWT 구조를 고려할 수 있다. 이 경우, j() 번째 파이프라인 스테이지는 그 스테이지로의 입력을 형성하는 개의 입력단들인 와, 개의 처리소자들의 입력단과 연결된 개의 출력단들인 를 포함하는 데이터 라우팅 블록으로 이뤄진다. 각 처리소자는 p개의 입력단과 두 출력단을 구비하며, 는 각 처리소자의 병렬 구조 레벨을 나타내는 구현 패러미터이다. j() 번째 스테이지의 데이터 라우팅 블록의 연속된 p개의 출력단인 은 동일한 스테이지의 i번째 () 처리소자()의 p개의 입력단들로 연결된다. j() 번째 파이프라인 스테이지의 개의 처리소자들의 최초 출력들은 그 스테이지의 출력들인 을 형성하고, 다음 (j+1) 번째 스테이지의 데이터 라우팅 블록의 개의 입력단들인 과 연결된다. 마지막 J번째 스테이지의 r개의 처리소자들의 최초 출력들은 이 구조의 최초 r개의 출력들인 out(0),...,out(r-1)을 형성한다. j() 번째 파이프라인 스테이지의 개의 처리소자들의 두번째 출력들은 이 구조의 ()에서 ()번째 출력들인 을 형성한다.
( 스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 시간 유닛 n=0에서 개의 성분들로 된 벡터를 병렬로 수용하고, 그리고 나서 그 동작 단계의 각 시간 유닛 에서 이전 단계들에서 수용된 벡터들의 (시간적 순서로) 연속부인 벡터의 최초 개의 성분들인 로 된 벡터를 병렬로 출력한다(수학식 8 참조). 처리소자들의 동작은 제1유형 코어 DWT 구조의 경우에서와 완전히 동일하다.
제2유형 멀티 코어 DWT 구조를 고려하면, 데이터 입력 블록은 제1유형 멀티 코어 DWT 구조의 경우에서와 완전히 동일하다. 제2유형 멀티 코어 DWT 구조에 사용되는 처리소자들 및 그들 사이의 연결은 제2유형 단일 코어 DWT 구조의 경우에서와 유사하다. 차이라고 하면 이 구조의 j()번째 스테이지 내에 ( 대신) 개의 처리소자들이 있다는데 있다. 이제 데이터 라우팅 블록은 제1유형 멀티 코어 DWT 구조의 경우에서와 같이 처리소자들에 유사하게 접속된 개의 입력단과 개의 출력단들을 구비한다. ( 스테이지의) 데이터 라우팅 블록은, 일반적으로, 각 동작 단계의 첫번째 시간 유닛 n=0에서 개의 성분들로 된 벡터를 병렬로 수용하고, 이전 단계들에서 수용된 벡터들의 (시간적 순서로) 연결부인 벡터의 최초 개의 성분들인 로 된 벡터를 병렬로 출력한다. 그리고나서 그 동작 단계의 각 시간 유닛 에서 데이터 라우팅 블록은 마지막 p개의 출력단에 동일 벡터의 p개의 성분 으로 된 다음 서브 벡터를 병렬로 출력한다.
이 두 종류의 멀티 코어 DWT 구조는 모두 단일 코어 DWT 구조들 보다 r 배만 큼 더 빠르며, 즉 패러미터 r과 관련해 선형 속도 증가가 이뤄질 수 있다. 입력 및 해당 출력 벡터들 사이의 지연은 다음의 수학식 14의 시간 유닛과 같고,
그 처리 속도 또는 시간 주기는 다음의 수학식 15의 시간 유닛과 같다.
따라서, 추가 속도 증가 및 시간 및 하드웨어 복잡도간의 타협에 관한 유연성이 멀티 코어 DWT 구조 안에서 얻어진다. 또, 이 구조는 모듈구조이고 정상적이며 부분 단축 어레이들로 구현될 수 있다.
및 인 경우에 대한 멀티 코어 DWT 구조의 가능한 구현 방식으로서, 노드들(도 2의 직사각형들)이 처리소자들을 나타내고 작은 원들은 래치를 나타내는 DWT 플로우그래프(도 2 참조) 자체를 고려할 수 있다. 이 구현 방식은 완전-병렬 파이프라인형(FPP) 구조라고 일컫는 [34]에 개시되었다. 그러나, 그것은 본 발명에 따라 제안된 멀티코어 DWT 구조의 특정 구현 방식일 뿐이다.
<가변 해법 DWT 구조>
상술한 구조들은 소정 개수 J를 넘지 않는 개수의 옥타브를 갖는 DWT들을 구현한다. 이들은 하드웨어 활용성에 있어서의 약간의 손실에도 불구하고, J 보다 적은 개수의 옥타브들로 DWT들을 구현할 것이다. 가변 해법 DWT 구조는 임의의 J' 개의 옥타브들로 DWT들을 구현하는 한편, 그 구조의 효율성은 J'가 소정 수 보다 크거나 같을 때 약 100%를 유지한다.
가변 해법 DWT 구조의 일반적 구성이 도 12(a)에 도시된다. 그 구조는 개의 분해 레벨에 상응하는 코어 DWT 구조 및, 예를 들어 RPA([14]-[17], [19]-[20], [22])에 기반한, 임의의 직렬 DWT 구조로 이뤄진다. 코어 DWT 구조는 J'-옥타브 DWT의 최초 옥타브들을 구현한다. 코어 DWT 구조의 로부터의저대역 통과 결과는 직렬 DWT 구조로 전해진다. 직렬 DWT 구조는 J'-옥타브 DWT의 마지막 개의 옥타브들을 구현한다. 코어 DWT 구조가 가변 레벨 병렬구조로 구현되므로, 이 구조는 일 때마다 거의 100%의 하드웨어 활용성이 얻어지는 방식으로 직렬 DWT 구조와 균형을 이룰 수 있다.
그 두 부분 사이의 균형을 이루기 위해, 코어 DWT 구조는 ()-옥타브의 M-포인트 DWT ()를 구현하는 직렬 구조와 같거나 더 빠른 처리 속도를 가진 옥타브 N-포인트 DWT를 구현하도록 정해진다. 말 안에서 알 수 있는 직렬 구조들은 L 또는 2L개의 기본 유닛(BU, 곱셈기-가산기 쌍)들을 각각 채용한 2M 시간 유닛들([14], [15]) 또는 M 시간 유닛들([14]-[19])로 M-포인트 DWT를 구현한다. 이들은 M-포인트 DWT가 개의 시간 유닛들로 구현되도록 임의의 개수의 BU들을 포함하도록 축소될 수 있다. 제1유형 또는 제2유형 코어 DWT 구조는 개의 시간 유닛들로 된 -옥타브의 N-포인트 DWT를 구현하므 로, 균형(balancing) 조건은 일 때 만족될 가 된다. 이 조건에서, 가변 해법 DWT 구조는 총 개수가 인 BU들로 이뤄지고 시간 유닛으로 된 J'-옥타브 N-포인트 DWT를 구현한다.
멀티 코어 DWT 구조에 기초한 가변 해법 DWT 구조는 멀티 코어 및 직렬 DWT 구조 사이에 삽입된 데이터 라우팅 블록을 가지고 구성될 수도 있다(도 12(b) 참조). 그 데이터 라우팅 블록의 동작은 동작 단계 마다 r 샘플 레이트로 디지트들을 병렬로 입력 및 직렬로 출력한다. 이 경우에서의 균형 조건은 이고, 그 면적 시간(area time) 특성은 이다.
도 14에 도시된 표 1은 제안된 구조들과 몇몇 종래의 구조들의 성능을 비교한 것이다. 이 표에서, 말 자체에서 공통적으로 수용되는 바와 같이, 곱셈기-가산기 쌍(DWT 구조의 베이직 유닛, BU)들의 개수는 소정 구조의 면적에 대한 표현으로서 간주된다. 이것이 민감한 파이프라인 스테이지이므로, 시간 유닛은 한 곱셈에 요구되는 시간 주기라고 간주된다. 본 발명에 따른 DWT 구조의 특성은, 표 1의 마지막 일곱 줄들에 나타난 바와 같이, 패러미터 선택의 몇몇 예들과 함께 임의의 구현 패러미터들인 에 대해 주어진다. 제안된 구조에 사용된 개수의 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로부터 몇 개의 줄(행)을 그림의 형태로 나타낸 것이다. 제안된 구조들에 해당하는 라인은 훨씬 많은 수의 베이직 유닛들로 확장될 수 있으나, 이러한 존재하지 않는 경우들은 보다 큰 실리콘 면적을 필요로 하고, 이것은 현 단계의 기술로서는 불가능한 것이 될 것이다.
이러한 예들로 부터 알 수 있듯이, 제안된 구조들은 종래의 것들과 비교할 때, 적정 면적 요건에서 탁월한 시간 특성을 보인다. 제안된 구조들의 장점은, 고속 지향 구조들의 성능을 평가하는데 흔히 사용되는 기준에 대한 그 구조들의 성능를 고려할 때 가장 잘 이해될 수 있다. 표들의 첫번째 줄은 범용 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 저, 디지털 신호 처리를 위한 구조.
도 1은 대부분의 알려진 DWT 구조들이 기초로 하는 DWT들의 세 구조형(tree-structured) 정의/개념을 도시한 것이다.
도 2는 본 발명에 따른 구조가 기초로 하는 DWT들의 새로운 플로우그래프 개념도의 예를 도시한 것이다.
도 3은 DWT들에 대한 컴팩트형 플로우그래프 개념도의 일실시예를 도시한 것이다.
도 4는 본 발명에 따른 두 종류의 코어 DWT 구조의 일반 구성을 도시한 것이다.
도 5는 도 4의 제1유형 구조의 한 스테이지에 대한 가능한 실시예를 도시한 것이다.
도 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을 도시한 것이다.
Claims (45)
- j가 1에서 J까지의 범위에 있는 정수일 때, 첫번째 분해 레벨에서 시작해 마지막 분해 레벨까지 진행하면서, 소정 개수의 분해 레벨(j)들에 걸쳐, 다수의 입력 샘플들을 구비한 입력 신호 벡터의 분해를 수행하는 이산 웨이브릿 변환을 수행하는 마이크로프로세서 구조에 있어서,각각이 상기 이산 웨이브릿 변환의 분해 레벨(j)에 해당하고 다수의 기본 처리 요소들에 의해 구현되는 다수의 처리 스테이지들을 구비하고, 상기 처리 스테이지들 각각에서 구현되는 상기 기본 처리 요소들의 개수는 각각 증가한 분해 레벨(j)에서 상수 인자 만큼 감소함을 특징으로 하는 마이크로프로세서 구조.
- 제2항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들로 된 k개의 세트와 상기 소정 개수의 입력단들에서 병렬로 수신된 입력값들로 된 세트 간에 k번의 내적(inner product) 연산의 세트를 수행하도록 되며, 상기 입력단의 개수, 상기 한 세트내 계수값들의 개수 및 상기 병렬로 수신된 입력값들의 개수는 상기 k개의 내적을 형성하는데 사용되는 필터 길이 L과 동일하고, 상기 기본 처리 요소는 각각이 상기 계수값들의 k 세트와 상기 입력값들의 세트 간에 수행된 상기 k번의 내적의 세트 중 한 결과에 상응하는 출력값을 출력하도록 정해진 k개의 출력단을 더 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제2항에 있어서, 상기 각각의 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들의 k개의 세트와 상기 소정 개수의 입력단들에서 병렬로 수신된 입력값들의 세트 간에 k번의 내적(inner product) 연산 세트를 수행하도록 정해지며, 상기 입력단의 개수와 상기 병렬로 수신된 입력값들의 개수는 상기 k개의 내적 중 어느 것이라도 형성하는데 사용되는 계수값들의 최다 개수인 필터 길이 와 동일하고, 상기 기본 처리 요소는 각각이 상기 계수값들의 k 세트와 상기 L개의 입력값들의 세트 간에 수행된 상기 k번의 내적들의 세트 중 한 결과에 상응하는 출력값을 출력하도록 정해진 k개의 출력단을 더 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 각각의 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들로 된 두 세트와 상기 L개의 입력단들에서 병렬로 수신된 입력값들의 세트 간에 두번의 내적(inner product)을 수행하도록 되며, 상기 두 내적 중 첫번째는 저역 통과 필터링 동작을 나타내고 상기 두 내적 중 두번째는 고역 통과 필터링 동작을 나타내며, 상기 입력단의 개수, 상기 계수값들의 개수 및 상기 병렬로 수신된 입력값의 개수는 상기 두 내적을 행하는데 사용되는 필터 길이 L과 같고, 상기 기본 처리 요소는, 첫번째 출력단이 상기 입력값들의 세트에 대해 수행된 저대역 통과 필터링 동작의 결과에 해당하는 저대역 통과 필터링된 출력값을 출력하도록 정해지고, 두번째 출력단이 상기 입력값들의 세트에 대해 수행된 고대역 통과 필터링 동작의 결과에 해당하는 고대역 통과 필터링된 출력값을 출력하도록 정해진 두개의 출력단을 더 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제2항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 이전 처리 스테이지(j-1)의 기본 처리 요소들 각각으로부터 상기 k개의 출력값들 중 특정 출력값 하나씩을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 상기 특정 출력값들을 L 개의 출력값들로 된 세트들로 그루핑하고 그 L개의 출력값들로 된 세트들을 처리 스테이지(j)의 기본 처리 요소들의 입력단에 병렬로 제공하도록 되어, 처리 스테이지(j)의 각 기본 처리 요소가 상기 바로 전 처리 스테이지(j-1)로부터 얻어진 L개의 출력값들로 된 소정 세트를 수신하도록 함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 이전 처리 스테이지(j-1)의 기본 처리 요소들 각각으로부터 저대역 통과 필터링된 출력값들을 수신하도록 된 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 저대역 통과 필터링된 출력값들을 L 개의 저대역 통과 필터링된 출력값들로 된 세트들로 그루핑(group)하고 그 L개의 저대역 통과 필터링된 출력값들의 세트들을 처리 스테이지(j)의 기본 처리 요소들의 입력단에 병렬로 제공하도록 되어, 처리 스테이지(j)의 각 기본 처리 요소가 상기 바로 전 처리 스테이지(j-1)로부터 얻어진 L개의 저대역 통과 필터링된 출력값들로 된 소정 세트를 수신하도록 함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들로 된 두 세트와 상기 소정 개수의 입력단에서 병렬로 수신된 입력값들로 된 한 세트 간에 두개의 내적 연산을 수행하도록 되며, 상기 입 력단의 개수, 한 세트 내 상기 계수값들의 개수 및 병렬로 수신된 상기 입력값들의 개수는 두개의 내적을 수행하는데 사용된 필터 길이 L과 같고, 상기 기본 처리 요소는 각각이 상기 두 내적 각각의 것을 출력하도록 정해진 두개의 출력단을 더 구비하며, 마이크로프로세서 구조는, 기본 처리 요소들로부터 내적의 쌍들을 수신하도록 되고 각 처리 요소들에서의 유사 필터링 동작들로부터의 내적 결과들을 그루핑하도록 완전한 언셔플(unshuffle) 동작을 수행하는 데이터 라우팅 블록을 더 포함함을 특징으로 하는 마이크로프로세서 구조.
- 제2항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들로 된 k개의 세트와 상기 소정 개수의 입력단에서 병렬로 수신된 입력값들로 된 한 세트 간에 k회의 내적 연산을 수행하도록 되며, 상기 입력단의 개수, 한 세트 내 상기 계수값들의 개수 및 병렬로 수신된 상기 입력값들의 개수는 k 회의 내적을 수행하는데 사용된 필터 길이 L과 같고, 상기 기본 처리 요소는 각각이 상기 k회의 내적 중 각자의 것을 출력하도록 정해진 k 개의 출력단을 더 구비하며, 마이크로프로세서 구조는, 기본 처리 요소들로부터 k개의 내적을 수신하도록 되고 각 프로세싱 소자들에서의 유사 필터링 동작들로부터의 내적 결과를 그루핑하도록 스트라이드(stride) 순열을 수행하는 데이터 라우팅 블록을 더 포함함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 임의의 분해 레벨(j)로의 이산 웨이브릿 변환 결과는, 임의의 분해 레벨(j)에 해당하는 처리 스테이지에서 고대역 통과 필터링 동작 및 저대역 통과 필터링 동작의 출력값들과 모든 이전 처리 스테이지들의 고대역 통과 필터링 동작의 출력값들로부터 만들어진 벡터에 의해 형성됨을 특징으로 하는 마이크로프로세서 구조.
- 제16항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단을 구비하고 계수값들로 된 k개의 세트와 상기 소정 개수의 입력단들에서 병렬로 수신된 입력값들의 한 세트 간에 k번의 내적 연산의 세트를 수행하도록 되고, 상기 입력단의 개수, 상기 한 세트 내 상기 계수값들의 개수 및 병렬로 수신되는 상기 입력값들의 개수는 상기 k회의 내적 연산을 수행하는데 사용되는 필터 길이 L과 같고, 각 기본 처리 요소는 각각이 상기 계수값들로 된 k 개의 세트들 중 하나와 상기 입력값들로 된 세트간에 수행된 상기 k회의 내적 연산 중 하나의 결과에 해당하는 출력값을 출력하도록 된 k개의 출력단을 더 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제16항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 하나는, 바로 전 처리 스테이지(j-1)의 기본 처리 요소들 각각으로부터 상기 k개의 출력값들을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 선택한 것들을 함께 L 개의 출력값들로 된 세트들로 그루핑하고, 처리 스테이지(j)의 각 기본 처리 요소가 상기 바로 전 처리 스테이지(j-1)에서 수신된 L 개의 출력값들의 소정 세트를 수신하도록 상기 L개의 출력값들로 된 세트들을 처리 스테이지의 각 기본 처리 요소의 입력단에 병렬로 제공하도록 된 것임을 특징으로 하는 마이크로프로세서 구조.
- 제16항에 있어서, 상기 첫번째 분해 레벨에 상응하는 처리 스테이지는 개의 입력 샘플들을 구비한 상기 연속 서브 벡터(i)들을 수신하도록 된 라우팅 블록을 더 구비하고, 상기 라우팅 블록은, 바로 다음의 서브 벡터(i+1)에서의 다수의 샘플들을 부가하여 서브 벡터(i)들이 상기 L의 세트들로 정확하게 나눠질 수 있도록 함으로써 상기 개의 입력 샘플들을 L개의 입력 샘플들의 세트들로 만들도록 하고, 상기 라우팅 블록은 또한 첫번째 처리 스테이지의 기본 처리 요소들의 입력단에 상기 L개의 입력 샘플로된 세트들을 병렬로 제공하여 첫번째 처리 스테이지의 각 기본 처리 요소가 L개의 입력 샘플들로 된 소정 세트를 수신하도록 함을 특징으로 하는 마이크로프로세서 구조.
- 제22항에 있어서, 상기 적어도 하나의 처리 스테이지는 첫번째 시간 주기 중에, 첫번째 시간 주기에 대해 바로 연속되는 두번째 시간 주기의 서브 벡터(i+1)로부터의 적어도 한 샘플을 포함하는 서브 벡터(i)를 처리하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제23항에 있어서, 상기 적어도 하나의 처리 스테이지는 서브 벡터(i+1)에서의 L/2개의 샘플들이 부가된 서브 벡터(i)를 처리하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 각 기본 처리 요소는 모든 기본 처리 요소들에 대해 실질적으로 동일한 시간 주기 안에서 기본 동작 사이클을 실행하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제19항에 있어서, 입력 샘플들로 된 벡터로부터 서브 벡터들을 형성하도록 된 쉬프트 레지스터를 더 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 상기 모든 기본 처리 요소들은 동일한 동작을 수행하도록 구현됨을 특징으로 하는 마이크로프로세서 구조.
- 제16항에 있어서, 상기 각 처리 스테이지의 각 기본 처리 요소는 소정 개수의 입력단 p를 포함하고 계수값들로 된 k개의 세트와 입력값들의 한 세트간에 k회의 내적 연산의 한 세트를 수행하도록 되며, 상기 한 세트내 상기 입력값들의 총 개수 및 한 세트 내 계수값들의 개수는 1에서 까지의 범위에서 선택가능한 L과 같고, 상기 기본 처리 요소는 소정 시간에서 상기 p개의 입력들에서 p개의 입력값들의 세트를 병렬로 수신하고 소정 동작 주기 안에서 p개의 계수값들과 상기 p개의 입력값들 간의 k회의 내적 연산을 포함하는 내적 연산의 서브 세트를 수행하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 각 기본 처리 요소는 연속 동작 주기들에서 p개의 입력값들로 된 한 세트씩을 수신하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 각 기본 처리 요소는, 각각이 상기 계수값들로 된 k개의 세트들 중 하나와 상기 입력값들로 된 세트 간에 수행된 상기 k회의 내적 연산 중 한 결과에 상응하는 출력값을 출력하도록 된 k개의 출력단을 구비함을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 2에서 J까지의 처리 스테이지들 중 적어도 한 스테이지는, 바로 전 처리 스테이지(j-1)의 기본 처리 요소들 각각으로부터 상기 k개의 출력값들을 수신하도록 된 데이터 라우팅 블록을 더 구비하고, 상기 라우팅 블록은 상기 k개의 출력값들 중 지정된 것들을 L개의 출력값들로 된 세트들로 그루핑하여 연속 동작 주기들에서 그 L개의 출력값들의 세트들을 p개의 값들의 연속 그룹들로서 처리 스테이지(j)의 기본 처리 요소들의 p개의 입력단들에 병렬로 제공하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 첫번째 분해 레벨에 해당하는 처리 스테이지는 개의 입력 샘플들을 구비한 상기 연속 서브 벡터(i)들을 수신하도록 된 라우팅 블록 을 더 구비하고, 상기 라우팅 블록은, 바로 계속되는 서브 벡터(i+1)로부터 다수의 샘플들을 부가하여 상기 개의 입력 샘플들을 L개의 입력 샘플들로 된 세트들로 만들도록 되고, 상기 라우팅 블록은 또한 연속 동작 주기들에서 첫번째 처리 스테이지의 기본 처리 요소들의 p개의 입력단들로, p개의 값들로 된 연속적인 그룹들로서 L개의 세트들을 병렬로 공급함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 적어도 하나의 기본 처리 요소는 동일한 처리 스테이지의 적어도 한 다른 기본 처리 요소와 기능적으로 연결됨을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 적어도 한 기본 처리 요소는 동일한 처리 스테이지(j)의 적어도 한 다른 기본 처리 요소와 기능적으로 연결됨을 특징으로 하는 마이크로프로세서 구조.
- 제29항에 있어서, 상기 처리 스테이지(j)의 적어도 첫번째 기본 처리 요소는 동일한 처리 스테이지(j)의 두번째 기본 처리 요소로부터 입력값을 수신하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제36항에 있어서, 상기 동일한 처리 스테이지의 상기 두번째 기본 처리 요소로부터의 상기 입력값은 이전 동작 주기 중에 상기 두번째 기본 처리 요소에서 수 행된 내적 연산들의 p개의 중간 결과를 나타내는 p개의 값들로 된 세트이고, 상기 첫번째 기본 처리 요소는 현재의 동작 주기에서 그 내적 연산 수행시의 p개의 중간 결과들의 세트를 이용하도록 됨을 특징으로 하는 마이크로프로세서 구조.
- 제37항에 있어서, 상기 p개의 중간 결과들은 상기 첫번째 기본 처리 요소에서 병렬로 수신됨을 특징으로 하는 마이크로프로세서 구조.
- 제37항에 있어서, 상기 첫번째 기본 처리 요소는 초기의 첫번째 동작 주기 이후, 각각의 연속적 동작 주기에서 상기 두번째 기본 처리 요소로부터 p개의 입력값들로 된 세트를 수신함을 특징으로 하는 마이크로프로세서 구조.
- 제1항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(j)에 추가적으로 적어도 한 부가 분해 레벨을 수행하도록 된 제2마이크로프로세서 구조와 함께 단일 장치에 집적되는 마이크로프로세서 구조.
- 제16항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(j)에 추가적으로 적어도 하나의 부가 분해 레벨을 수행하도록 된 제2마이크로프로세서 구조와 함께 단일 장치에 집적되는 마이크로프로세서 구조.
- 제29항에 있어서, 이산 웨이브릿 변환을 수행하기 위해, 상기 마지막 분해 레벨(j)에 추가적으로 적어도 하나의 부가 분해 레벨을 수행하도록 된 제2마이크로프로세서 구조와 함께 단일 장치에 집적되는 마이크로프로세서 구조.
- 제40항에 있어서, 상기 제2마이크로프로세서 구조는 반복 피라미드(recursive pyramid) 알고리즘을 수행하도록 된 것임을 특징으로 하는 마이크로프로세서 구조.
- 청구항 1항의 구조로 구현되도록 단계들을 수행하는 이산 웨이브릿 변환동작 방법.
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 Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037015572A Division KR100975602B1 (ko) | 2001-06-01 | 2002-05-28 | 이산 웨이브릿 변환 구조 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080081366A true KR20080081366A (ko) | 2008-09-09 |
KR101123106B1 KR101123106B1 (ko) | 2012-03-19 |
Family
ID=25360097
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087018978A KR101123106B1 (ko) | 2001-06-01 | 2002-05-28 | 이산 웨이브릿 변환 구조 |
KR1020037015572A KR100975602B1 (ko) | 2001-06-01 | 2002-05-28 | 이산 웨이브릿 변환 구조 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020037015572A KR100975602B1 (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) | KR101123106B1 (ko) |
CN (2) | CN1271562C (ko) |
AT (1) | ATE463801T1 (ko) |
DE (1) | DE60235893D1 (ko) |
WO (1) | WO2002097718A1 (ko) |
Families Citing this family (24)
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 |
US7702502B2 (en) | 2005-02-23 | 2010-04-20 | Digital Intelligence, L.L.C. | Apparatus 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 |
US8725669B1 (en) * | 2010-08-02 | 2014-05-13 | Chi Yung Fu | Signal processing method and apparatus |
US9095266B1 (en) | 2010-08-02 | 2015-08-04 | Chi Yung Fu | Method for treating a patient |
KR200454396Y1 (ko) * | 2010-10-28 | 2011-06-30 | 주식회사 농지개량 | 환경 수로관 |
KR101490153B1 (ko) * | 2010-11-30 | 2015-02-05 | 엠.에스. 라마이아 스쿨 오브 어드밴스드 스터디스 | 멀티코어 프로세서를 사용하는 웨이블릿 변환 |
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 |
CN111684484A (zh) * | 2019-07-30 | 2020-09-18 | 深圳市大疆创新科技有限公司 | Dwt运算装置、方法、图像处理装置和可移动平台 |
CN112800386B (zh) * | 2021-01-26 | 2023-02-24 | Oppo广东移动通信有限公司 | 傅里叶变换处理方法和处理器、终端、芯片及存储介质 |
Family Cites Families (10)
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 |
US6229926B1 (en) * | 1998-07-24 | 2001-05-08 | Picsurf, Inc. | Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications |
US6178269B1 (en) | 1998-08-06 | 2001-01-23 | Intel Corporation | Architecture for computing a two-dimensional discrete wavelet transform |
US6047303A (en) * | 1998-08-06 | 2000-04-04 | Intel Corporation | Systolic architecture for computing an inverse discrete wavelet transforms |
US6584111B1 (en) * | 1998-11-04 | 2003-06-24 | Northern Telecom Limited | ABR flow control using single bit congestion indication and wavelet transform filtering |
US6643406B1 (en) * | 1999-07-28 | 2003-11-04 | Polaroid Corporation | Method and apparatus for performing linear filtering in wavelet based domain |
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 |
-
2001
- 2001-06-01 US US09/872,682 patent/US6976046B2/en not_active Expired - Lifetime
-
2002
- 2002-05-28 CN CNB028150821A patent/CN1271562C/zh not_active Expired - Fee Related
- 2002-05-28 JP JP2003500824A patent/JP4180502B2/ja not_active Expired - Fee Related
- 2002-05-28 KR KR1020087018978A patent/KR101123106B1/ko not_active IP Right Cessation
- 2002-05-28 EP EP02724362A patent/EP1412911B1/en not_active Expired - Lifetime
- 2002-05-28 DE DE60235893T patent/DE60235893D1/de not_active Expired - Lifetime
- 2002-05-28 CN CNA2006101000466A patent/CN1892640A/zh active Pending
- 2002-05-28 KR KR1020037015572A patent/KR100975602B1/ko not_active IP Right Cessation
- 2002-05-28 AT AT02724362T patent/ATE463801T1/de not_active IP Right Cessation
- 2002-05-28 WO PCT/FI2002/000455 patent/WO2002097718A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN1271562C (zh) | 2006-08-23 |
CN1537297A (zh) | 2004-10-13 |
DE60235893D1 (de) | 2010-05-20 |
KR100975602B1 (ko) | 2010-08-17 |
KR101123106B1 (ko) | 2012-03-19 |
EP1412911B1 (en) | 2010-04-07 |
JP2005500595A (ja) | 2005-01-06 |
KR20040018383A (ko) | 2004-03-03 |
CN1892640A (zh) | 2007-01-10 |
ATE463801T1 (de) | 2010-04-15 |
JP4180502B2 (ja) | 2008-11-12 |
WO2002097718A1 (en) | 2002-12-05 |
US20030065489A1 (en) | 2003-04-03 |
US6976046B2 (en) | 2005-12-13 |
EP1412911A1 (en) | 2004-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100975602B1 (ko) | 이산 웨이브릿 변환 구조 | |
Vishwanath et al. | VLSI architectures for the discrete wavelet transform | |
Parhi et al. | VLSI architectures for discrete wavelet transforms | |
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) | 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치 | |
Cheng et al. | Hardware efficient fast DCT based on novel cyclic convolution structures | |
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 | |
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 | |
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 | |
Wilburn et al. | A parallel implementation of the discrete wavelet transform | |
Hyun et al. | Reconfigurable implementation of wavelet transform on an FPGA-augmented NIOS processor | |
Gevorkian et al. | Highly efficient fast architectures for discrete wavelet transforms based on their flowgraph representation | |
Aziz et al. | Three-dimensional digital filtering algorithm for parallel DSP implementation | |
Lim et al. | An efficient systolic array for the discrete cosine transform based on prime-factor decomposition | |
Deguchi et al. | Implementing core tasks of JPEG2000 Encoder on the Dynamically Reconfigurable Processor. | |
Guntoro et al. | A lifting-based discrete wavelet transform and discrete wavelet packet processor with support for higher order wavelet filters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
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 | ||
LAPS | Lapse due to unpaid annual fee |