KR20140139601A - 복수-스테이지 iir 필터 및 이를 사용한 데이터의 병렬화된 필터링 - Google Patents

복수-스테이지 iir 필터 및 이를 사용한 데이터의 병렬화된 필터링 Download PDF

Info

Publication number
KR20140139601A
KR20140139601A KR1020147030205A KR20147030205A KR20140139601A KR 20140139601 A KR20140139601 A KR 20140139601A KR 1020147030205 A KR1020147030205 A KR 1020147030205A KR 20147030205 A KR20147030205 A KR 20147030205A KR 20140139601 A KR20140139601 A KR 20140139601A
Authority
KR
South Korea
Prior art keywords
filter
stage
stages
values
memory
Prior art date
Application number
KR1020147030205A
Other languages
English (en)
Other versions
KR101707127B1 (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 KR20140139601A publication Critical patent/KR20140139601A/ko
Application granted granted Critical
Publication of KR101707127B1 publication Critical patent/KR101707127B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/0017Lossless audio signal coding; Perfect reconstruction of coded audio signal by transmission of coding error
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/04Recursive filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/009Theoretical filter design of IIR filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Abstract

일부 실시예에서, 스테이지들 사이에 레이턴시가 결합되는 바이쿼드 필터 스테이지들을 가진 복수-스테이지 필터, 이러한 필터를 포함하는 시스템(예를 들면, 오디오 엔코더 또는 디코더), 및 복수-스테이지 바이쿼드 필터링을 위한 방법. 전형적인 실시예에서, 필터의 모든 바이쿼드 필터 스테이지들은 데이터의 완전히 병렬화된 처리를 수행하게 독립적으로 동작한다. 일부 실시예에서, 발명의 복수-스테이지 필터는 버퍼 메모리, 적어도 2개의 바이쿼드 필터 스테이지들, 및 단일 스트림의 명령들을 필터 스테이지들에 어서트하게 결합되고 구성된 제어기를 포함한다. 전형적으로, 복수-스테이지 필터는 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 한 블록의 입력 샘플들의 복수-스테이지 필터링을 수행하게 구성된다.

Description

복수-스테이지 IIR 필터 및 이를 사용한 데이터의 병렬화된 필터링{MULTISTAGE IIR FILTER AND PARALLELIZED FILTERING OF DATA WITH SAME}
관련출원에 대한 상호참조
이 출원은 전체를 참조로 본원에 포함시키는 2012년 5월 10일에 출원된 미국가특허 출원번호 61/645,291에 대한 우선권을 주장한다.
발명은 바이쿼드래틱 필터 스테이지를 포함하는 복수-스테이지 필터, 및 이러한 필터를 사용한 데이터(예를 들면, 오디오 데이터)의 병렬화된 필터링에 관한 것이다. 발명의 일부 실시예는 돌비 디지털(AC-3), 돌비 디지털 플러스(E-AC-3)로서 알려진 포맷들 중 하나에 따라, 혹은 또 다른 엔코딩 포맷에 따라, 데이터의 엔코딩 또는 디코딩 동안 오디오 데이터를 필터링하기 위한(바이쿼드래틱 필터 스테이지를 포함하는 복수-스테이지 필터를 사용하여) 방법, 시스템, 및 프로세서이다. 돌비, 돌비 디지털, 돌비 디지털 플러스, 및 돌비 E는 돌비 레버러토리즈 라이쎈싱 코오포레이션의 등록상표들이다.
청구항을 포함하여, 이 발명 전체에 걸쳐, 신호 또는 데이터 "에 대한" 동작(예를 들면, 신호 또는 데이터를 필터링 또는 스케일링)을 수행한다는 표현은 신호 또는 데이터에 직접, 혹은 신호 또는 데이터의 처리된 버전(예를 들면, 신호에 대한 동작을 수행하기에 앞서 예비 필터링 또는 다른 처리가 행해진 신호의 버전)에 대한 동작을 수행하는 것을 나타내기 위해 넓은 의미로 사용된다.
신호 처리에서, 디지털 바이쿼드래틱 필터는 두 개의 극과 두 개의 제로를 내포하는, 2차 재귀 선형 필터이다. 약어 "바이쿼드"(또는 "바이-쿼드") 필터는 본원에서 디지털 바이쿼드래틱 필터를 나타내기 위해 사용될 것이다. Z 영역에서, 바이쿼드 필터의 전달함수는 두 개의 쿼드래틱 함수의 비이다.
Figure pct00001
고차 재귀 필터(무한 임펄스 응답 또는 2차보다 큰 차수의 "IIR" 필터)는 이들의 계수의 양자화에 매우 민감할 수 있고, 쉽게 불안정해질 수 있다. 또한, 1차 재귀 필터 및 2차 재귀 필터는 이 유형의 불안정 문제를 가질 수 있지만 그러나 불안정 문제는 훨씬 덜 심각하다. 그러므로, 고차 재귀 필터는 전형적으로 직렬 종속연결된 바이-쿼드 섹션(및 선택적으로 1차 필터도)를 포함하는 직렬 종속연결된 필터로서 구현된다. 이러한 직렬 종속연결된 필터는 본원에서는 복수-스테이지 바이쿼드 필터라고도 지칭되고, 일련의 바이-쿼드 필터(본원에서는 바이-쿼드 스테이지 또는 바이쿼드 섹션이라고도 지칭됨)를 포함한다.
예를 들면, 공지된 AC-3(돌비 디지털) 포맷에 따른, 혹은 공지된 돌비 디지털 플러스 포맷 혹은 돌비 E 포맷의 오디오 데이터를 엔코딩하게 구성된 종래의 엔코더는 다수의 복수-스테이지 바이쿼드 필터를 구현한다. 예를 들면, 돌비 디지털 플러스 엔코더는 전형적으로, 과도 검출기 부-시스템에서 고역 통과 필터링을 구현하기 위해 2-스테이지 바이쿼드 필터(즉, 2개의 종속연결된 바이쿼드 필터를 포함하는 필터)를, 저 주파수 효과("LFE") 부-시스템에서 저역 통과 필터링을 구현하기 위해 4-스테이지 바이쿼드 필터(즉, 4개의 종속연결된 바이쿼드 필터를 포함하는 필터)를, 그리고 대역폭 제한 저역 통과 필터링을 구현하기 위해 3-스테이지 바이쿼드 필터를 채용한다. 돌비 E 엔코더는 전형적으로, 과도 검출기 부-시스템에서 고역 통과 필터링을 구현하기 위해 2-스테이지 바이쿼드 필터(즉, 2개의 종속연결된 바이쿼드 필터를 포함하는 필터)를, 그리고 저 주파수 효과("LFE") 부-시스템에서 저역 통과 필터링을 구현하기 위해 4-스테이지 바이쿼드 필터(즉, 4개의 종속연결된 바이쿼드 필터를 포함하는 필터)를 채용한다. 돌비 E 디코더는 전형적으로, 저 주파수 효과("LFE") 부-시스템에서 저역 통과 필터링을 구현하기 위해 3-스테이지 바이쿼드 필터(즉, 3개의 종속연결된 바이쿼드 필터를 포함하는 필터)을 채용한다.
예를 들면, 도 1은 도시된 바와 같이 연결된, 요소(1, 2, 3, 4, 5, b0, b1, b2, -a1, -a2)를 포함하는, 바이쿼드 필터(다이렉트 폼 II - 트랜스포즈 구조라고도 하는 유형의)를 도시한 것이다. 요소(1, 2, 3)는 가산 요소이고 요소(4, 5)는 지연 요소이고, 이득 요소(b0, b1, b2, -a1, 및 -a2) 각각은 이의 입력에 어서트된 신호에 이득(b0, bl, b2, -a1, -a2) 중 대응하는 이득을 적용한다. 여기에 도시되거나 기술되지 않았을지라도, 이외 다른, 동등한, 바이쿼드 필터 구조, 예를 들면 다이렉트 폼 I, 다이렉트 폼 I - 트랜스포즈, 및 다이렉트 폼 II이 존재함이 당업자에게 공지되어 있다. 임의의 이러한 동등한 바이쿼드 필터 구조는 발명의 발명 내에 있다.
도 1a에 도시된 바와 같이, 도 1의 바이쿼드 필터(도 1a에서 바이쿼드(1)로서 표기된)가 구조(도 1a에서 바이쿼드(2)로서 표기된)는 동일하지만 도 1 필터와는 다른 이득을 적용할 수 있는 이득 요소를 가진 바이쿼드 필터에 종속연결된다면, 결과적인 복수-스테이지 바이쿼드 필터는 채용될 수 있는 2-스테이지 바이쿼드 필터의 예가 된다(예를 들면, 위에 언급된 바와 같이 오디오 엔코더의 과도 검출기 부-시스템에서 고역 통과 필터링을 구현하기 위해). 도 1a의 복수-스테이지 바이쿼드 필터에서, 제 1 스테이지의 출력 신호 x1(n)은 제 2 스테이지에의 입력 신호이다.
복수-스테이지 바이쿼드 필터(및 이외 일부 다른 복수-스테이지 IIR 필터)에 있어서, 시점 "n" 및 이전의 시점들에서 시간-영역 신호 x(n)(복수-스테이지 필터의 또 다른 스테이지에서 발생된 입력 신호 또는 신호)의 값들에 응하여, 시점 "n"(즉, 스테이지의 출력 신호 y(n))에서 각 스테이지에서 출력 샘플 계산은 이전의 출력들(즉, 시점 n-1 및 시점 n-2에서 출력 y(n-1) 및 출력y(n-2))에 의존성을 갖는다. 또한, 복수-스테이지 바이쿼드 필터에서 각각의 2개의 연이은 스테이지(바이쿼드 필터)에 있어서, 각 앞선 스테이지의 출력은 후속 스테이지에 입력되며, 따라서 후속 스테이지의 출력은 앞선 스테이지의 출력이 결정되어질 때까지는 결정될 수 없다. 이들이, 복수-스테이지 바이쿼드 필터를 구현하기 위해 완전히 병렬화된 처리가 왜 채용되지 않았는지에 대한 주 이유이다.
많은 최근의 코어 프로세서 아키텍처(예를 들면, 디지털 신호 프로세서 아키텍처)에는 많은 알고리즘들을 병렬화하여 수행을 개선하기 위해 사용될 수 있는 SIMD(단일 명령, 복수 데이터) 유닛 및/또는 복수의 ALU(산술 논리 유닛) 또는 AMU(산술 조작 유닛)가 있다. 그러나, 복수-스테이지 바이쿼드 필터를 구현하기 위해 프로세서를 프로그램하기 위한 종래의 알고리즘은 SIMD 명령을 사용하지 않으며 병렬화되지 않는다.
예를 들면, 돌비 디지털 플러스 엔코더(돌비 디지털 플러스 포맷에 따라 오디오 데이터를 엔코딩한다)는 프로그램된 ARM 네온 프로세서들(이 각각은 병렬 처리를 할 수 있게 하는 네온 SIMD 엔진을 가진 ARM 코텍스 프로세서이다)로서, 그리고 프로그램된 텍사스 인스트루먼츠 C64 디지털 신호 프로세서로서 구현되어졌다. 많은 오디오 데이터 엔코더(예를 들면, AC-3, 돌비 디지털 플러스, 돌비 E, 및/또는 이외 다른 엔코딩 포맷에 따라 오디오 데이터를 엔코딩하는 엔코더)는 SIMD(단일 명령, 복수 데이터) 유닛 및/또는 복수의 ALU(산술 논리 유닛) 또는 AMU(산술 조작 유닛)을 갖는, 다양한 아키텍처 중 어느 것을 가진 프로그램된 프로세서로서 구현되어졌거나 구현되었을 수도 있을 것이다. 이러한 프로세서는 병렬 처리를 사용하여 여러 알고리즘들(오디오 데이터 엔코딩에 포함된)을 구현하기 위해 프로그램되었을 수도 있을 것이다. 그러나, 이러한 프로세서에서 복수-스테이지 바이쿼드 필터를 구현하기 위해 채용되었던 종래의 프로그래밍은 병렬 처리를 구현하지 않았다.
본 발명의 전형적인 실시예는 복수-스테이지 바이쿼드 필터를 구현하기 위해 병렬 처리를 채용한다. 일부 실시예는 AC-3(돌비 디지털) 포맷, 돌비 디지털 플러스 포맷, 또는 돌비 E 포맷에 따라 오디오 데이터를 엔코딩하는데 사용되는 유형의 복수-스테이지 바이쿼드 필터를 구현하기 위해 병렬 처리를 채용한다.
발명이 AC-3, 돌비 디지털 플러스, 또는 돌비 E 포맷에 따라 오디오 데이터를 엔코딩하는데 사용하는 것으로 제한되지 않을지라도, 일부 실시예는 발명의 실시예를 구현하는(발명의 실시예에 따라 설계된) 적어도 한 복수-스테이지 바이쿼드 필터를 채용하는 오디오 엔코딩 방법, 시스템, 및 프로세서(예를 들면, AC-3, 돌비 디지털 플러스, 또는 돌비 E 포맷에 따라 오디오 데이터를 엔코딩하기 위한)이다.
AC-3 엔코딩된 비트스트림은 1 내지 6 채널의 오디오 콘텐트, 및 오디오 콘텐트의 적어도 한 특징을 나타내는 메타데이터를 포함한다. 오디오 콘텐트는 지각적 오디오 코딩을 사용하여 압축되어진 오디오 데이터이다.
AC-3(돌비 디지털이라고도 알려진) 코딩의 상세는 공지되어 있고, 다음을 포함하여 많은 공개된 참조문헌에 개시되어 있다.
ATSC Standard A52/A: Digital Audio Compression Standard (AC-3), Revision A, Advanced Television Systems Committee, 20 Aug. 2001;
Flexible Pperceptual Coding for Audio Transmission and Storage," by Craig C. Todd, et al, 96th Convention of the Audio Engineering Society, February 26, 1994, Preprint 3796;
"Design and Implementation of AC-3 Coders," by Steve Vernon, IEEE Trans. Consumer Electronics, Vol. 41, No. 3, August 1995;
"Dolby Digital Audio Coding Standards," book chapter by Robert L. Andersen and Grant A. Davidson in The Digital Signal Processing Handbook, Second2 Edition, Vijay K. Madisetti, Editor-in-Chief, CRC Press, 2009;
"High Quality, Low-Rate Audio Transform Coding for Transmission and Multimedia Applications," by Bosi et al, Audio Engineering Society Preprint 3365, 93rd AES Convention, October, 1992; and
미국특허 5,583,962; 5,632,005; 5,633,981; 5,727,119; 및 6,021,386.
돌비 디지털 (AC-3) 및 돌비 디지털 플러스(인핸스드 AC-3 또는 "E-AC-3"이라고도 함) 코딩의 상세는 "Introduction to Dolby Digital Plus, an Enhancement to the Dolby Digital Coding System" AES Convention Paper 6196, 117th AES Convention, October 28, 2004에, 그리고 http://www.atsc.org/cms/index.php/standards/published-standards에서 입수할 수 있는 돌비 디지털/돌비 디지털 플러스 명세(ATSC A/52:2010)에 개시되어 있다.
발명의 간략한 설명
한 부류의 실시예들에서, 발명은 적어도 2개의 스테이지들(이 각각은 바이쿼드 필터이다)을 포함하는 복수-스테이지 필터이며, 스테이지들은 모든 스테이지들이 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하기 위해 명령들의 단일의 공통의 스트림에 응하여 독립적으로 동작하게 스테이지들 사이에 레이턴시가 결합된다. 전형적으로, 복수-스테이지 필터는 명령들의 공통 스트림을 모든 스테이지들에 어스트하게 결합된 제어기, 및 모든 스테이지들에 결합된 데이터 메모리를 더 포함하며, 모든 스테이지들은 명령들의 공통 스트림에 응하여 한 블록의 입력 데이터 값들을 병렬로 필터링하게 동작하는 것으로, 스테이지들 각각은 서로 다른 데이터 값들에 대해 동작하고, 스테이지들 중 적어도 하나는 한 부-세트의 입력 데이터 값들에 응하여 스테이지들 중 또 다른 한 스테이지에 의해 발생되어 스테이지들 중 상기 스테이지에서 처리를 위해 인출되기 전에 메모리 내 서로 다른 레이턴시들을 갖고 저장된, 버퍼된 값들을 포함하는 데이터 값들에 대해 동작한다. 이에 따라, 이들 실시예에서 복수-스테이지 필터는 개개의 바이쿼드 필터 스테이지가 단일 스트림의 명령에 응하여 독립적으로 그리고 병렬로 동작하는 SIMD(단일 명령, 복수 데이터) 아키텍처를 갖는다. 예를 들면, 복수-스테이지 필터는 N 스테이지(N은 1보다 큰 수이다)를 포함할 수 있고, 스테이지들(시퀀스에서 제 "M+1" 스테이지) 중 하나는, 서로 다른 시간들(예를 들면, 블록의 서로 다른 입력 데이터 값들의 시퀀스에 응하여)에서 스테이지들(시퀀스에서 제 "M" 스테이지) 중 이전 스테이지에 의해 발생되고, 버퍼 메모리에 저장되고(서로 다른 시간들에서), 서로 다른 레이턴시 시간들을 갖고 버퍼 메모리에 체류한 후에 버퍼 메모리로부터 판독된(제 "(M+1)" 스테이지에 의해) 데이터 값들에 대해 동작할 수 있다.
일부 실시예에서, 발명은
버퍼 메모리;
제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지를 포함하는 적어도 2개의 바이쿼드 필터 스테이지들; 및
바이쿼드 필터 스테이지들에 결합되고 제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지 둘 다에 명령들의 단일 스트림을 어서트하게 구성된 제어기를 포함하고, 제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지는 명령들의 스트림에 응하여 독립적으로 그리고 병렬로 동작하며,
제 1 바이쿼드 필터 스테이지는 메모리에 결합되고 명령들의 스트림에 응하여 한 블록의 N 입력 샘플들에 대해 바이쿼드래틱 필터링을 수행하여 중간값들을 발생하여 중간값들을 메모리에 어서트하게 구성되고(메모리에 저장하기 위해), 중간값들은 적어도 한 부-세트의 입력 샘플들 각각의 필터링된 버전을 포함하며,
후속 바이쿼드 필터 스테이지는 메모리에 결합되고 명령들의 스트림에 응하여 메모리로부터 인출된 버퍼된 값들에 대해 바이쿼드래틱 필터링을 수행하여 한 블록의 출력값들을 발생하게 구성되고, 출력값들은 한 블록의 N 입력 샘플들 내 입력 샘플들 각각에 대응하는 출력값을 포함하고, 버퍼된 값들은 한 블록의 N 입력 샘플들에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 중간값들의 적어도 일부를 포함하는, 복수-스테이지 필터이다.
전형적인 실시예에서, 복수-스테이지 필터는 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 한 블록의 N 입력 샘플들의 복수-스테이지 필터링을 수행하게 구성된다.
복수-스테이지 필터가 M 스테이지들을 갖는 발명의 복수-스테이지 필터의 일부 실시예에서, 후속 바이쿼드 필터 스테이지는 메모리로부터 인출된 한 부-세트의 버퍼된 값들에 응하여 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 부-세트는 입력 샘플들 중 제 "j" 샘플의 필터링된 버전, 입력 샘플들 중 제 "j-1" 샘플의 필터링된 버전, 입력 샘플들 중 제 "j-2" 샘플의 필터링된 버전을 포함한다.
발명의 복수-스테이지 필터의 일부 실시예에서, 후속 바이쿼드 필터 스테이지는 메모리로부터 인출된 상이한 한 부-세트의 버퍼된 값들에 응하여 입력 샘플들 각각에 대응하는 출력값을 발생하게 구성되고, 각 상기 부-세트는 제 1 바이쿼드 필터 스테이지에서 발생되고 서로 다른 레이턴시 시간들 동안 메모리에 체류 후에 메모리로부터 인출된 중간값들 중 적어도 3개를 포함한다. 예를 들면, 복수-스테이지 필터가 바이쿼드 필터 스테이지들을 갖는 전형적인 실시예에서, j가 M-1 내지 N-1 범위 내 인덱스이고, 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하기 위해 인출된 한 부-세트의 버퍼된 값들은 입력 샘플들 중 제 "j" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값, 입력 샘플들 중 제 "j-1" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값, 및 입력 샘플들 중 제 "j-2" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값을 포함한다.
또 다른 한 부류의 실시예에서, 발명은 한 블록의 N 입력 샘플들에 대해 복수-스테이지 필터링을 수행하는 방법이며, 상기 방법은
(a) 한 블록의 N 입력 샘플들에 대해 제 1 바이쿼드래틱 필터링 동작을 수행하여 중간값들을 발생하고, 중간값들을 버퍼 메모리에 어서트하는(상기 메모리에 저장하기 위해) 단계로서, 중간값들은 적어도 한 부-세트의 입력 샘플들 각각의 필터링된 버전을 포함하는 것인, 단계; 및
(b) 메모리로부터 인출된 버퍼된 값들에 대해 제 2 바이쿼드래틱 필터링 동작을 수행하여 한 블록의 출력값들을 발생하는 단계로서, 출력값들은 한 블록의 N 입력 샘플들 내 입력 샘플들 각각에 대응하는 출력값을 포함하며, 상이한 한 부-세트의 버퍼된 값들이 인출되고 필터링되어 블록 내 입력 샘플들 각각에 대응하는 출력값을 발생하며, 각 상기 한 부-세트의 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 메모리에 체류한 후에 메모리로부터 인출되는 단계(a)의 수행 동안 발생된 중간값들 중 적어도 2개(예를 들면, 3개)를 포함하며, 단계(a) 및 단계(b)는 단계(a) 및 단계(b)가 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로 수행되게, 명령들의 단일 스트림에 응하여 수행된다. 전형적인 실시예에서, 한 블록의 입력 샘플들의 복수-스테이지 필터링은 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 수행된다.
M 스테이지들을 갖는 복수-스테이지 필터에서 필터링이 수행되는 발명의 방법의 일부 실시예에서, j가 M-1 내지 N-1 범위 내 인덱스이고, 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하기 위해 단계(b)에서 인출된 버퍼된 값들은 단계(a)에서 발생된 입력 샘플들 중 제 "j" 샘플의 필터링된 버전, 단계(a)에서 발생된 입력 샘플들 중 제 "j-1" 샘플의 필터링된 버전, 및 단계(a)에서 발생된 입력 샘플들 중 제 "j-2" 샘플의 필터링된 버전을 포함한다.
또 다른 부류의 실시예들에서, 발명은 입력 오디오 데이터에 응하여 엔코딩된 오디오 데이터를 발생하게 구성된 오디오 엔코더이며, 상기 엔코더는 오디오 데이터를 필터링하게(예를 들면, 오디오 데이터의 사전 처리된 버전을 필터링하기 위해) 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다. 또 다른 부류의 실시예들에서, 발명은 오디오 데이터에 대해(예를 들면, 오디오 데이터의 사전 처리된 버전에 대해) 발명의 복수-스테이지 바이쿼드 필터링 방법의 임의의 실시예를 수행함으로써, 엔코딩된 오디오 데이터를 발생하기 위해 오디오 데이터를 엔코딩하는 방법이다. 예를 들면, 발명의 실시예는 선-처리 스테이지(엔코더에 의해 엔코딩될 입력 오디오 데이터의 사전 처리를 위한)을 포함하는 오디오 엔코더이며, 선-처리 스테이지는 오디오 데이터(예를 들면, 입력 데이터 또는 오디오 데이터의 사전 처리된 버전)를 필터링하게 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다. 발명의 또 다른 실시예는 선(pre)-프로세서(엔코더에 의해 엔코딩될 입력 오디오 데이터의 사전 처리를 수행하기 위한)이며, 선-프로세서는 오디오 데이터(예를 들면, 선-프로세서에 입력되는 데이터 또는 이러한 입력 데이터의 사전 처리된 버전)를 필터링하게 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다.
또 다른 부류의 실시예들에서, 발명은 엔코딩된 오디오 데이터에 응하여 디코딩된 오디오 데이터를 발생하게 구성된 오디오 디코더이다. 이 부류에 일부 실시예에서, 디코더는 엔코딩된 오디오 데이터를 필터링하게(예를 들면, 엔코딩된 오디오 데이터의 사전 처리된 버전을 필터링하기 위해) 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다. 또 다른 부류의 실시예들에서, 발명은 엔코딩된 오디오 데이터를 디코딩하여 디코딩된 오디오 데이터를 발생하기 위한 방법이다. 일부 이러한 실시예에서, 디코딩은 엔코딩된 오디오 데이터에 대한(예를 들면, 엔코딩된 오디오 데이터의 사전 처리된 버전에 대한) 발명의 복수-스테이지 바이쿼드 필터링 방법의 임의의 실시예의 수행을 포함한다. 예를 들면, 발명의 실시예는 후-처리 스테이지(디코더에 의해 디코딩되어진 디코딩된 오디오 데이터의 후-처리를 위한)를 포함하는 오디오 디코더이며, 후-처리 스테이지는 오디오 데이터(예를 들면, 디코딩된 데이터 또는 디코딩된 데이터의 처리된 버전)를 필터링하게 결합되고 구성된 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다. 발명의 또 다른 실시예는 후-프로세서(엔코더에 의해 디코딩되어진 디코딩된 오디오 데이터의 후-처리를 수행하기 위한)이며, 후-프로세서는 오디오 데이터(예를 들면, 후-프로세서에 입력되는 디코딩된 데이터 또는 이러한 입력 데이터의 처리된 버전)를 필터링하게 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다.
본 발명의 전형적인 실시예에 따라, 복수-스테이지 필터를 구현하기 위해 프로세서(예를 들면, 디지털 신호 프로세서 또는 범용 프로세서)를 프로그램하기 위해서 SIMD 명령(또는 복수의 ALU 또는 AMU에 의한 병렬 처리를 위한 명령)이 사용된다. 복수-스테이지 필터는 대역폭 필터링, 저역 통과 필터링(예를 들면, 오디오 엔코더의 LFE 부-시스템에서), 고역 통과 필터링(예를 들면, 오디오 엔코더의 과도 검출기 부-시스템에서), 또는 이외 다른 필터링을 구현할 수 있다.
발명의 다른 측면들은 발명의 방법의 임의의 실시예를 수행하게 구성된(예를 들면, 프로그램된) 시스템 또는 장치(예를 들면, 엔코더, 디코더, 또는 프로세서) 및 발명의 방법 또는 이의 단계들의 임의의 실시예를 구현하기 위한 코드를 저장하는 컴퓨터 판독가능 매체(예를 들면, 디스크)를 포함한다. 예를 들면, 발명의 시스템은 소프트웨어 또는 펌웨어로 프로그램된 및/또는 아니면 발명의 방법 또는 이의 단계의 실시예를 포함하여, 데이터에 대한 다양한 동작들 중 임의의 동작을 수행하게 구성된, 프로그램가능한 범용 프로세서, 디지털 신호 프로세서, 또는 마이크로프로세서이거나 이를 포함할 수 있다. 이러한 범용 프로세서는 입력 장치, 메모리및 자신에 어스트된 데이터에 응하여 발명의 방법(혹은 이의 단계)의 실시예를 수행하게 프로그램된 (및/또는 아니면 구성된) 처리 회로를 포함하는 컴퓨터 시스템일 수 있거나 이를 포함할 수 있다.
발명의 일부 실시예는 프로그램된 프로세서(예를 들면, 각각이 병렬 처리를 가능하게 하는 네온 SIMD 엔진을 가진 ARM 코텍스 프로세서인 ARM 네온 프로세서들, 혹은 SIMD(단일 명령, 복수 데이터) 유닛 및/또는 복수의 ALU(산술 논리 유닛) 또는 AMU(산술 조작 유닛)을 가진 이외 다른 프로세서들) 또는 프로그램된 (및/또는 아니면 구성된) 디지털 신호 프로세서(예를 들면, SIMD 유닛 및/또는 복수의 ALU 또는 AMU를 갖는 DSP)로서 구현된, 엔코더(예를 들면, 돌비 디지털 플러스, AC-3, 또는 돌비 E 포맷에 따라 오디오 데이터를 엔코딩하는 엔코더) 또는 디코더이다.
도 1은 종래의 바이쿼드 필터의 블록도이다.
도 1a는 종래의 복수-스테이지 바이쿼드 필터의 블록도이다.
도 2는 직렬-종속연결된 바이쿼드 필터("종속연결된 바이쿼드 섹션")로서 구현된 필터에서 필터링을 수행하기 위한 종래의 방법의 흐름도이다.
도 3은 명령들의 단일 스트림에 응하여 병렬로 동작하는 종속연결된 바이쿼드 필터("종속연결된 바이쿼드 섹션")을 포함하는 복수-스테이지 바이쿼드 필터에서 필터링을 수행하기 위한 발명의 방법의 실시예의 흐름도이다.
도 4는 종속연결된 바이쿼드 필터를 포함하며 도 3을 참조하여 기술된 유형의 방법을 수행할 수 있는 복수-스테이지 필터(예를 들면, 발명의 실시예에 따라 DSP 또는 이외 다른 프로세서를 프로그램함으로써 구현되는)의 블록도이다. 도 4에서, 메모리(10)는 각각의 한 블록의 입력 데이터 x(n)를 저장하는 메모리 위치들, 및 바이쿼드 필터들에 의해 발생된 중간값들 x1(n),..., xN-1(n) 중 모든 요구되는 값들을 저장하는 버퍼 메모리 위치들을 포함한다.
도 5는 엔코더(발명의 복수-스테이지 필터의 실시예를 포함하는) 및 디코더 (발명의 복수-스테이지 필터의 실시예를 포함하는)를 포함하는 시스템의 블록도이다.
도 6은 명령들의 단일 스트림에 응하여 병렬로 동작하는 종속연결된 바이쿼드 필터("종속연결된 바이쿼드 섹션")을 포함하는 복수-스테이지 바이쿼드 필터에서 필터링을 수행하기 위한 발명의 방법의 또 다른 실시예의 흐름도이다.
도 7은 발명의 방법의 도 6의 실시예의 단계들(40, 41, 42)의 실시예의 흐름도이다.
도 8은 발명의 방법의 도 6의 실시예의 단계들(47, 48, 49)의 실시예의 흐름도이다.
도 9는 계산들이 동시에(in place) 수행되는 도 4 시스템의 구현에서 발생된 값들을 도시한 것이다.
도 10은 발명의 디코더의 실시예인 엔코더(발명의 복수-스테이지 필터의 실시예를 포함하는) 및 디코더를 포함하는 시스템의 블록도이다.
발명의 방법을 구현하게 구성된 발명의 방법 및 시스템(예를 들면, 엔코더 및 디코더)의 실시예가 도 3, 도 4, 도 5, 도 6, 도 7, 및 도 8을 참조하여 이제 기술될 것이다.
먼저, 도 2를 참조하여, 종속연결된 M 바이쿼드 필터(M은 도 2에서 그리고 이하 "n섹션"이라 지칭되는 수이다)를 포함하는 복수-스테이지 필터로 데이터 샘플(예를 들면, 오디오 데이터 샘플 블록)을 필터링하는 종래의 방법을 기술한다. 이러한 종래의 복수-스테이지 바이쿼드 필터의 예는 위에 기술된 도 1a의 필터이다.
도 2의 방법에서, 필터링될 각 새로운 한 블록의 N 샘플이 초기에 버퍼된다(단계(20)에서). 블록 내 각 샘플은 인덱스 j, 0≤j≤N-1에 의해 식별된다. 복수-스테이지 필터 내 각 스테이지(섹션)는 인덱스 i, 0≤i≤M-1에 의해 식별된다.
단계(21)에서, 인덱스 i는 제로로 초기화되고, 단계(22)에서, 인덱스 j는 제로로 초기화된다.
단계(23)에서, 제 "j" 입력 샘플은 제 "i" 바이쿼드 필터에서 필터링되고, 이어 단계(24)에서, 인덱스 j는 증분된다. 단계(25)는 증분된 인덱스 j(j+1과 같다)가 N 미만인지를 판정한다. 단계(25)에서 증분된 인덱스 j가 N 미만인 것으로 판정되면, 단계(23)은 제 "i" 바이쿼드 필터에서 다음 (제 "(j+1)") 샘플을 필터링하기 위해 다시 수행된다.
단계(25)에서 증분된 인덱스 j가 N과 같은 것으로 판정되면(따라서, 현재 블록 내 모든 샘플이 현재 바이쿼드 필터에서 필터링되어졌다), 단계(26)에서, 인덱스 i가 증분된다.
단계(27)은 가장 최근에 증분된 인덱스 i(i+1와 같다)가 "n섹션" 수(M과 같다) 미만인지를 판정한다. 단계(27)에서 가장 최근에 증분된 인덱스 i가 M 미만인 것으로 판정되면, 다음 (제 "(i+l)") 바이쿼드 필터에서 가장 최근의 블록의 중간값들(단계(22 ~ 25)의 이전 반복에서 이전 바이쿼드 필터에서 발생된, 이전 (제 "i") 바이쿼드 필터의 출력들)을 필터링하기 위해 단계(22 ~ 26)의 또 다른 반복이 수행된다.
단계(27)에서 가장 최근에 증분된 인덱스 i이 M과 같고, 따라서 모든 바이쿼드 필터에서 현재 블록 내 모든 샘플의 처리가 완료된 것으로 판정되면, 단계(28)이 수행된다. 단계(28)에서, 복수-스테이지 필터에서 현재 블록의 입력 샘플을 필터링함으로써 발생된 N개의 필터링된 샘플이 출력된다. 이 시점에서, 필터링될 임의의 추가의 한 블록의 N 샘플이 버퍼되고(단계(20)의 새로운 수행에서), 도 2 방법은 복수-스테이지 필터에서 새로운 한 블록의 샘플을 필터링하기 위해 반복된다.
도 2의 프로세스에 있어서, M=2인 경우에(즉, 복수-스테이지 필터가 2개의 종속연결된 바이쿼드 필터만을 포함하는 경우에), 복수-스테이지 필터의 각 스테이지에서 수행되는 처리는 다음 의사코드에 의해 기술되고, 여기에서 N = 복수-스테이지 필터에서 한 블록의 N 샘플을 필터링함으로써 발생될 출력 샘플의 수이다:
for (i = 0; i < 2; i++)
{
for (j = 0; j < N; j++)
{
Output[j]= function (output[j-l], output[j-2], input[j] , input[j-1], input[j-2]);
}
}
종래의 도 2의 방법이 수행 동안에, 각 샘플 ("output[j]")에 대한 복수-스테이지 필터의 각 스테이지의 출력은, 일반적으로, 2개의 이전의 샘플(output[j'-1] 및 output[j-2])에 대한 스테이지의 출력들에, 그리고 스테이지("input[j]")에의 현재의 입력과 스테이지(input[j-l] 및 input[j'-2])에의 2개의 이전의 입력들에 의존하기 때문에, 스테이지 내에서 구현되는 루프(도 2의 단계(23, 24, 25))에 대한 동작들은 병렬화되지 않는다. 또한, 제 1 스테이지(i=0)의 출력은 제 2 스테이지(i=1)에 입력되기 때문에, 스테이지들에 걸친 동작들은 종래의 도 2의 방법의 수행에서 병렬화되지 않는다. 이것은 복수의 ALU(또는 AMU) 또는 SIMD 유닛을 포함하는 아키텍처를 가진 프로세서에 의해 구현될 때라도 복수-스테이지 필터에 대한 상당한 명령 카운트(MIPS 또는 초당 백만 명령이라고도 함) 요건에 이르게 한다.
다음에, 도 3을 참조하여, 종속연결된 두 바이쿼드 필터를 포함하는 복수-스테이지 필터로 한 블록의 데이터 샘플(예를 들면, 한 블록의 오디오 데이터 샘플)을 필터링하기 위한 발명의 방법의 실시예를 기술한다. 처음에, 단계(30)에서, 후속 단계들(단계(31, 33, 34)을 포함한)에서 사용할 수 있게 하기 위해서 필터링될 각 새로은 한 블록의 N 샘플이 버퍼된다(예를 들면, 도 4의 메모리(10)에).
블록 내 각 샘플은 인덱스 j, 0≤j≤N-1에 의해 식별된다. 복수-스테이지 필터 내 각 스테이지(섹션)는 인덱스 i, 0≤i≤1에 의해 식별된다.
단계(31)에서, 제 1 입력 샘플(j=0)는 제 1 (i=0) 바이쿼드 필터에서 필터링된다. 이 단계에 의해 발생된 값은 후속 사용에서(예를 들면, 단계(33 및/또는 34)의 후속 수행에서) 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
단계(32)에서, 인덱스 j는 1에 설정된다.
이어, 단계(33, 34)가 병렬로 수행된다. 단계(33)에서, 제 "j'" 입력 샘플은 제 1 (i=0) 바이쿼드 필터에서 필터링되고, 이 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(34)에서, 제 2 (i=1) 바이쿼드 필터에 제 "j'-1" 입력 샘플이 필터링되고, 이 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
이어, 단계(35)에서, 인덱스 j가 증분된다. 단계(36)는 증분된 인덱스 j(j+1과 같다)이 N 미만인지 여부를 판정한다. 단계(36)에서 증분된 인덱스 j가 N 미만인 것으로 판정되면, 단계(33, 34)는 제 1 바이쿼드 필터(단계(33)에서)에 다음 입력 샘플과 제 2 바이쿼드 필터(단계(34)에서)에 다음 입력 샘플을 필터링하기 위해 다시 수행된다. 단계(33, 34) 각각의 각 반복에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 예를 들면, 단계(33)의 하나 이상의 이전 반복에서 발생된 하나 이상의 중간값들은 단계(34)의 수행에서 사용하기 위해 버퍼로부터 인출될 수 있다.
증분된 인덱스 j가 N과 같은 것으로 판정되면(따라서 현재 블록 내 모든 입력 샘플은 제 1 바이쿼드 필터에서 필터링되어졌다), 단계(37)이 수행된다.
단계(37)에서, 제 2 (i=1) 바이쿼드 필터에 마지막 입력 샘플(j=N-1)이 필터링된다. 이 단계에 의해 발생된 값은 후속 사용에서 사용할 수 있게 하기 위해서(예를 들면, 단계(38)에서 출력에 대해) 버퍼된다(예를 들면, 도 4의 메모리(10)에).
이어서, 단계(38)에서, 제 2 바이쿼드 필터에 의해 발생된 N개의 필터링된 샘플이 출력된다(현재 한 블록의 N 입력 샘플에 응하여 복수-스테이지 필터의 출력으로서). 이 시점에서, 필터링된 임의의 추가의 한 블록의 N 샘플은 버퍼되고(단계(30)의 새로운 수행에서), 도 3의 방법은 복수-스테이지 필터에서 새로운 한 블록의 샘플을 필터링하기 위해 반복된다.
복수-스테이지 필터의 각 스테이지에서 수행되는 처리(도 3의 방법의 수행 동안에)는 또한 다음 의사코드에 의해 기술되며, 여기에서 N = 복수-스테이지 필터에서 한 블록의 N 샘플을 필터링함으로써 발생될 출력 샘플의 수이며, outputstagel[k]은 제 k 입력 샘플에 응하여 복수-스테이지 필터의 제 1 스테이지 의 출력이며, outputstage2[k]은 제 k 입력 샘플에 대응하는 복수-스테이지 필터의 제 2 스테이지의 출력이며, input[k]은 복수-스테이지 필터의 제 1 스테이지에의 제 k 입력 샘플이다.
{ 1st sample processing of the 1st stage}
for (j = 1;j < N;j++)
{
outputstagel[j] = function ( outputstagel[j-1],
outputstagel[j-2], input[j], input[j-l], input[j-2]);
outputstage2[j-1] = function ( outputstage2[j-2], outputstage2[j-3],
outputstagel[j-1] , outputstagel[j-2], outputstagel[j-3]);}
{Last ("N-l"th) sample processing of the second stage}
도 3 및 대응하는 의사코드로부터 명백한 바와 같이, 복수-스테이지 필터의 두 스테이지에서 처리는 단일 샘플 루프(도 3의 단계(33, 34, 35, 36))로 결합된다. 두 스테이지(2-스테이지 바이쿼드 필터의 경우에) 사이에 한 샘플 레이턴시를 도입함으로써, 혹은 더 일반적으로, 도 6, 도 7, 및 도 8에 관련하여 이하 기술되는 바와 같이, 2 이상의 바이쿼드 필터 스테이지를 갖는 복수-스테이지 필터의 각 스테이지 사이에 한 샘플 레이턴시를 도입함으로써, 복수-스테이지 필터의 모든 스테이지에서 처리는 발명에 따라 완전히 병렬화될 수 있다. 이에 따라, 복수-스테이지 필터의 모든 바이쿼드 필터 스테이지에서 한 블록의 샘플의 처리는 발명의 기술된 실시예에 따라 단일 샘플 루프(모든 스테이지들에 대해 결합된)에서 병렬화될 수 있다.
종속연결된 M 바이쿼드 필터(M은 2보다 크다)를 포함하는 복수-스테이지 필터로 한 블록의 데이터 샘플(예를 들면, 한 블록의 오디오 데이터 샘플)을 필터링하기 위한, 발명의 방법의 도 3의 실시예에 대한 변형들이 고찰된다. 이러한 변형들은 전형적으로 도 6, 도 7, 및 도 8을 참조하여 기술되는 방식으로 구현된다.
처음에, 도 6의 흐름도의 단계(40)에서, 필터링될 각 새로운 한 블록의 N 샘플이 후속 단계에서 사용할 수 있게 하기 위해서(단계(41, 43 ~ 45, 48)을 포함하여) 버퍼된다(예를 들면, 도 4의 메모리(10)에).
블록 내 각 샘플은 인덱스 j, 0≤j≤ N-1에 의해 식별된다. 복수-스테이지 필터 내 각 바이쿼드 스테이지(섹션)은 인덱스 i, 0≤i≤M-1에 의해 식별된다.
단계(41)에서, 바이쿼드 필터 스테이지들(i=0 내지 i=M-2)(예를 들면, 도 7을 참조하여 기술되는 방식으로)에서 제 1 M-1 입력 샘플(j=0 내지 j=M-2)에 대해 선(pre)-루프 필터링이 수행된다. 도 7에 도시된 바와 같이, 일부 바이쿼드 필터 스테이지들에 대해서, 한 부-세트의 제 1 M-1 입력 샘플만에 대응하여 선(pre)-루프 필터링이 행해짐에 유의한다. 이 단계에 의해 발생된 값은 후속 사용에 사용할 수 있게 하기 위해서(예를 들면, 단계(43 ~ 45)의 후속 수행에서). 버퍼된다(예를 들면, 도 4의 메모리(10)에).
단계(42)에서, 인덱스 j은 M-1에 설정된다.
이어서, 단계(43 ~ 45)(M 스테이지 각각에 대해 한 단계)가 병렬로 수행된다. 단계(43)에서, 제 1(i=0) 바이쿼드 필터에 제 "j" 입력 샘플이 필터링되고, 이 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(44)에서, 제 2 (i=1) 바이쿼드 필터에 제 "j'-1" 입력 샘플이 필터링되고, 이 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 유사하게 (M이 2보다 크다고 가정하고, 단계(43, 44)와 병렬로 수행되는 적어도 한 단계에서), 제 3(i=2) 바이쿼드 필터에 제 "j-2" 입력 샘플이 필터링되고, 제 4 (i=3) 바이쿼드 필터에 제 "j-3" 입력 샘플이 필터링되고(M이 4 이상이라고 가정하고), 등등을 바이쿼드 필터들의 각각의 추가의 필터(i=4 내지 i=M-2)에 대해 행하고, 각 이러한 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다. 단계(45)에서(M이 2보다 크다면, 단계(43, 44)와 병렬로 수행된다), 마지막 (i=M-1) 바이쿼드 필터에 제 "j-M+1" 입력 샘플이 필터링되고, 이 단계에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
이어서, 단계(46)에서, 인덱스 j이 증분되고, 단계(47)은 증분된 인덱스 j(j+1과 같다)이 N 미만인지를 판정한다. 단계(47)에서 증분된 인덱스 j가 N미만인 것으로 판정되면, 단계(43 ~ 45)(및 단계(43 ~ 45)와 병렬로 수행되는 이외 임의의 다른 단계(들))은 제 1 바이쿼드 필터(단계(43)에서 다음 샘플을 필터링하기 위해 수행되고, 제 2 바이쿼드 필터(단계(44)에서 다음 샘플을 필터링하기 위해 수행되고, 등등을 각 추가의 바이쿼드 필터 스테이지에 대해 행한다. 단계(43 ~ 45) 각각의 각 반복에 의해 발생된 적어도 한(예를 들면, 각) 값("중간" 값)은 후속 단계들에서 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 예를 들면, 단계(43)의 하나 이상의 이전 반복에서 발생된 하나 이상의 중간값은 단계(44)의 수행에서 사용하기 위해 버퍼로부터 인출될 수도 있다.
단계(47)에서, 증분된 인덱스 j이 N과 같은 것으로 판정되면(따라서 현재 블록 내 모든 입력 샘플은 바이쿼드 필터 중 하나에서 필터링되어졌다(i = 0인 필터)), 후(post)-루프 필터링 단계(48)이 수행된다.
단계(48)에서, 후(post)-루프 필터링은 바이쿼드 필터 스테이지(i=1 내지 i=M-1)에의 임의의 남은 필터링되지 않은 입력 샘플에 대해 수행된다(예를 들면, 도 8을 참조하여 기술될 방식으로). 이 단계에 의해 발생된 값(들)은 후속 사용(예를 들면, 단계(49)에서 출력에 대해)에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
단계(48) 후에, 단계(49)에서, 최종의 (i=M-1) 바이쿼드 필터에 의해 발생된 N개의 필터링된 샘플이 출력된다(현재 한 블록의 N 입력 샘플에 응하여 복수-스테이지 필터의 출력으로서). 이 시점에서, 필터링될 임의의 추가의 한 블록의 N 샘플은 버퍼되고(단계(40의 새로운 수행에서), 복수-스테이지 필터에서 새로운 한 블록의 샘플을 필터링하기 위해 도 6의 방법이 반복된다.
도 7은 발명의 방법의 도 6의 실시예의, 단계(40, 42)의 흐름도, 및 단계(41)의 실시예의 상세이다. 도 7의 단계(50 ~ 58)는 도 6의 선(pre)-루프 필터링 단계(41)의 구현이다. 단계(50)에서, 현재 블록의 제 1 샘플(j = 0)은 제 1 바이쿼드 필터 스테이지(i=0)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용(예를 들면, 단계(51, 52에서)에 사용할 수 있기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(51)에서, 블록의 제 2 샘플(j=1)은 제 1 바이쿼드 필터 스테이지(i=0)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용(예를 들면, 단계(53)에서)에 사용할 수 있기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(52)에서, 제 2 바이쿼드 필터 스테이지(i=1)에 블록(j=0)의 제 1 샘플은 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서(예를 들면, 단계(54)에서) 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(51, 52)는 바람직하게 병렬로 수행된다(제 1 및 제 2 스테이지에 어서트된 동일 명령 또는 일련의 명령들에 응하여).
도 7에서 단계(51)에서 수직으로 밑에 도시된 단계에서(단계(53, 56)를 포함한), 현재 블록의 제 3 샘플(j=2) 내지 제 "M-1" 샘플(j=M-2) 각각이 제 1 바이쿼드 필터 스테이지(i=0)에서 필터링되고, 각 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다. 단계(53)에서, 블록의 제 3 샘플(j = 2)이 제 1 바이쿼드 필터 스테이지(i=0)에서 필터링되고, 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다. 단계(56)에서, 현재 블록의 제 "M-1" 샘플(j=M-2)은 제 1 바이쿼드 필터 스테이지(i=0)에서 필터링되고, 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다.
도 7에서 단계(52)에서 수직으로 밑에 도시된 단계에서(단계(54, 57)를 포함한), 제 2 바이쿼드 필터 스테이지(i=1)에 제 2 입력 샘플(j=1) 내지 제 "M-2" 입력 샘플(j=M-3) 각각이 필터링되고, 각 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다. 단계(54)에서, 제 2 바이쿼드 필터 스테이지에 제 2 입력 샘플(j=1)이 필터링되고, 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(57)에서, 제 2 바이쿼드 필터 스테이지에 제 "M-2" 입력 샘플(j=M-3)이 필터링되고, 이러한 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
일반적으로, k는 0 내지 M-2 범위의 인덱스 내에 있는 것으로, 제 "k" 바이쿼드 필터 스테이지에 있어서, 제 "k" 바이쿼드 필터 스테이지에의 제 1 입력 샘플(j=0) 내지 제 "k" 바이쿼드 필터 스테이지에의 제 "M-1-k" 입력 샘플(j=M-2-k) 각각을 필터링하기 위해 일련의 단계(도 7에서 한 컬럼의 단계)가 수행되고, 각 이러한 단계에 의해 발생된 필터링된 샘플 값(들)은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
이에 따라, M=3이라면, 도 7의 단계(53, 54, 55)가 수행된다(바람직하게 병렬로). 단계(53)에서, 제 1 바이쿼드 필터 스테이지(i = 0)에의 제 3 입력 샘플(j=2)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 버퍼된다. 단계(54)에서, 제 2 바이쿼드 필터 스테이지(i=1)에의 제 2 입력 샘플(j=1)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 버퍼된다. 단계(55)에서, 제 3 바이쿼드 필터 스테이지(i=2)에 제 1 입력 샘플(j=0)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 버퍼된다.
유사하게, M>5이라면, 단계(53 ~ 55)(도 7에 나타낸 바와 같은)를 포함하는 행 밑에 한 행의 단계들의 단계들이 수행되고(바람직하게 병렬로), 이어 도 7의 단계(56, 57, 58)를 포함하는 한 행의 단계의 단계들이 수행된다(바람직하게 병렬로). 단계(56)에서, 제 1 바이쿼드 필터 스테이지(i=0)에 제 "M-1" 입력 샘플(j=M-2)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 버퍼된다. 단계(57)에서, 제 2 바이쿼드 필터 스테이지(i=1)에 제 "M-2" 입력 샘플(j=M-3)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값이 버퍼된다. 단계(58)에서, 제 "M-1" 바이쿼드 필터 스테이지(i=M-2)에 제 1 입력 샘플(j=0)이 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 버퍼된다.
도 7에서 각 한 행의 단계의 단계들(예를 들면, 단계(51, 52), 또는 단계(53, 54, 55))은 바람직하게 병렬로 수행된다(관계된 스테이지에 어서트된 동일 명령 또는 일련의 명령들에 응하여).
도 8은 발명의 방법의 도 6의 실시예의, 단계(47, 49)의 실시예의 흐름도, 및 단계(48)의 실시예의 상세이다. 도 8의 단계(60 ~ -66)는 도 6의 후(post)-루프 필터링 단계(48)의 구현이다.
일반적으로, 도 8에 도시된 바와 같이, k는 1 내지 M-1 범위의 인덱스로서, 제 "k" 바이쿼드 필터 스테이지에 있어서, 제 "k" 바이쿼드 필터 스테이지에 제 "N-k+1" 입력 샘플(j=N-k) 내지 제 "k" 바이쿼드 필터 스테이지에 마지막 입력 샘플(j=N-1) 각각을 필터링하기 위해 일련의 단계(도 8에서 한 컬럼의 단계)가 수행되고, 각 이러한 단계에 의해 발생된 필터링된 샘플 값(들)은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에).
예를 들면, 단계(60)에서, 현재 블록의 마지막 샘플(j=N-1)이 제 2 바이쿼드 필터 스테이지(i=1)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(61)에서, 블록의 제 2 마지막 샘플(j=N-2)이 제 3 바이쿼드 필터 스테이지(i=2)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서(예를 들면, 단계(63))에서 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(63)에서, 블록의 마지막 (j=N-1) 샘플은 제 3 바이쿼드 필터 스테이지(i=2)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에).
단계(64)에서, 블록의 마지막 (j=N-1) 샘플이 제 2 마지막 바이쿼드 필터 스테이지(i=M-2)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에).
단계(62)에서, 블록의 제 "N-M+1' 샘플이 마지막 바이쿼드 필터 스테이지(i=M-1)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서(예를 들면, 도 8에서 단계(62)에 수직으로 밑에 단계에서) 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(65)에서, 블록의 제 2 마지막 (j=N-2) 샘플이 마지막 바이쿼드 필터 스테이지(i=M-1)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서(예를 들면, 도 8에 단계(66에서) 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에). 단계(66)에서, 블록의 마지막 (j=N-1) 샘플이 마지막 바이쿼드 필터 스테이지(i= M-1)에서 필터링되고, 이 단계에 의해 발생된 필터링된 샘플 값은 후속 사용에 사용할 수 있게 하기 위해서 바람직하게 버퍼된다(예를 들면, 도 4의 메모리(10)에).
도 8에서 각 한 행의 단계의 단계(예를 들면, 단계(64, 65), 또는 단계(60, 61, 62)을 포함한 행 내의 단계)은 바람직하게 병렬로 수행된다(관계된 스테이지에 어서트된 동일 명령 또는 일련의 명령들에 응하여).
도 3의 방법(및 종속연결된 2 이상의 바이쿼드 필터를 포함하는 복수-스테이지 필터로 한 블록의 데이터 샘플을 필터링하는 상기 방법의 변형들)은 샘플 인덱스(도 3의 인덱스 j)에 대해 반복하여 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이 단일 루프에서 한 블록의 N 입력 샘플의 복수-스테이지 필터링을 수행한다. 반대로, 도 2의 종래의 방법은 샘플 인덱스(도 2의 인덱스 j)에 대한 반복과 바이쿼드래틱 필터 스테이지 인덱스(도 2의 인덱스 i)에 대한 반복을 가진 2개의 네스트된(nested) 루프들에서 한 블록의 데이터 샘플을 처리한다.
전형적인 실시예(예를 들면, 이하 기술될 도 4 실시예)에서, 발명의 복수-스테이지 필터(이들 스테이지 각각은 바이쿼드 필터이다)의 스테이지는 모든 스테이지가 독립적으로 동작하여 서로 다른 스테이지들의 처리를 병렬화할 수 있게 하도록 스테이지들 사이에 레이턴시와 조합된다. 모든 스테이지는 제어기로부터 명령들의 단일 공통 스트림에 응하여 병렬로 동작할 수 있는데(한 블록의 입력 데이터 값를 필터링하기 위해), 그러나 각 스테이지는 서로 다른 데이터 값들에 대해 동작하며, 스테이지들 중 적어도 하나는 버퍼된 값(한 부-세트의 입력 데이터 값에 응하여 스테이지들 중 다른 스테이지에 의해 발생되고, 스테이지들 중 상기 스테이지에서 처리하기 위해 인출되기 전에 버퍼 메모리에 서로 다른 레이턴시들을 갖고 저장된)을 포함하는 데이터 값들에 대해 동작한다. 모든 스테이지는 제어기로부터 명령들의 단일 공통 스트림에 응하여 병렬로 동작할 수 있는데(한 블록의 입력 데이터 값을 필터링하기 위해), 그러나, 각 스테이지는 서로 다른 데이터 값들에 대해 동작하며, 스테이지들 중 적어도 하나는 버퍼된 값들(한 부-세트의 입력 데이터 값들에 응하여 스테이지들 중 다른 스테이지에 의해 발생되고, 스테이지들 중 상기 스테이지에서 처리하기 위해 인출되기 전에 버퍼 메모리에 서로 다른 레이턴시들을 갖고 저장된)을 포함하는 데이터 값들에 대해 동작한다. 이에 따라, 복수-스테이지 필터는 개개의 바이쿼드 필터 스테이지들이 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로 동작하는 SIMD(단일 명령, 복수 데이터) 아키텍처를 갖는다. 예를 들면, 복수-스테이지 필터는 N 스테이지를 포함할 수 있는데, 스테이지(시퀀스에서 제 "M+1" 스테이지) 중 하나는, 서로 다른 시간들(예를 들면, 블록의 한 시퀀스의 서로 다른 입력 데이터 값들에 응하여)에서 스테이지(시퀀스에서 제 "M" 스테이지) 중 이전 스테이지에 의해 발생되고, 버퍼 메모리에 저장되고(서로 다른 시간들에서), 서로 다른 레이턴시 시간들을 갖고 버퍼 메모리에 체류 후에 버퍼 메모리로부터 판독된(제 "(M+1)" 스테이지에 의해) 데이터 값에 대해 동작할 수 있다.
다음에, 도 4를 참조하여, 발명의 복수-스테이지 필터의 한 부류의 실시예를 기술한다. 도 4의 복수-스테이지 필터는 복수의 바이쿼드 필터(M 바이쿼드 필터, 여기에서 M은 1보다 큰 정수)를 포함하고, 도 3(혹은 도 6에 도시된 것과 같은, 이러한 방법의 변형)을 참조하여 기술되는 유형의 방법을 수행하게 구성된다. 도 4의 필터는 도시된 바와 같이 연결된, 메모리(10), 제어기(11), 및 바이쿼드 필터(B1, B2,..., BM)을 포함하며, 제어기(11)에 의해 바이쿼드 필터에 어서트된 단일 스트림의 명령에 응하여, 한 블록의 N 입력 데이터 값들 x(n), "n"은 1 내지 N 범위의 인덱스, 을 필터링하게 구성된다. 입력 데이터 값들 x(n) 각각은 오디오 데이터 샘플일 수 있다.
복수-스테이지 필터의 개개의 스테이지들(예를 들면, 이 각각은 바이쿼드 필터이다)에 "단일 스트림의 명령들"이 어서트된다는 표현은 본원에서는 단일 스트림의 명령들이 모든 스테이지에 어서트되는 경우(예를 들면, 모든 스테이지가 결합되는 단일 버스 또는 도체 상에), 및 동일한(혹은 실질적으로 동일한) 스트림의 명령이 스테이지에 동시에(혹은 실질적으로 동시에) 어서트되는 경우(예를 들면, 각 스트림은 스테이지들의 서로 다른 스테이지에 결합된 다른 버스 또는 도체 상에 어서트된다) 둘 다를 포함하는 넓은 의미에서 사용됨을 알아야 할 것이다.
한 블록의 입력 데이터 값 x(n)에 응하여, 필터(B1)는 N 중간 (바이쿼드 필터링된) 값 x1(n)을 발생하고, 이들을 메모리(10) 내 버퍼 메모리 위치들에 어서트한다. 동작에서, 필터(B2)는 요구되는 중간값 x1(n)을 메모리(10)로부터 인출하고, 이에 응하여 중간 (바이쿼드 필터링된) 값 x2(n)을 발생하며, 이것이 발생하는 중간값들을 메모리(10) 내 버퍼 메모리 위치들에 어서트한다. 유사하게, 동작에서, 바이쿼드 필터(필터(Bi), i는 3 내지 M 범위의 인덱스이다)의 각각의 다른 필터는 메모리(10)로부터 중간값 xi-1(n)을 인출하며, 이에 응하여 바이쿼드 필터링된 값 xi(n)을 발생하고, 이것이 발생하는 값을 메모리(10) 내 버퍼 메모리 위치들에 어서트한다. 최종의 바이쿼드 필터(BM)에서 발생된, 바이쿼드 필터링된 값, xM(n) = y(n)은 한 블록의 입력 데이터 값 x(n)에 응하여 발생된 한 블록의 N개의 완전히 필터링된 출력 데이터 값들을 포함한다.
메모리(10)는 각각의 한 블록의 입력 데이터 x(n)을 저장하는 메모리 위치들 및 바이쿼드 필터들(B1, B2,...,BM-1)에 의해 발생된 중간값들 x1(n),...,xM-1(n)을 저장하는 버퍼 메모리 위치들(예를 들면, 각각의 한 블록의 입력 데이터에 대해 발생된 중간값들 x1(n),..., xM-1(n)을 저장하는 버퍼 위치들)을 포함한다. 계산이 동시에(in place) 수행되는 일부 구현에서, 입력 데이터 x(n)을 저장하기 위해 사용되는 동일 메모리 위치들은 일단 특정 입력 데이터 샘플이 더 이상 복수-스테이지 필터에 의해 필요로 되지 않게 되면, 중간값(x1(n),...,xM-1(n))을 저장하기 위해 사용될 수 있다. 이러한 구현에서, 메모리(10)는, 종래의 메모리(복수-스테이지 필터의 종래의 병렬화되지 않은 버전을 구현하기 위한)가 전형적으로 필터링될 각각의 한 블록의 입력 데이터 x(n)을 저장하기 위한 메모리 위치들을 포함할 것이고 각 출력값은 스테이지 자신의 동작을 위해서 및/또는 필터의 각 후속 스테이지의 동작을 위해 요구되는 복수-스테이지 필터의 스테이지들 각각에 의해 발생되기 때문에, 전형적으로 이러한 종래의 메모리보다 더 많은(혹은 현저하게 더 많은) 메모리 위치들을 포함할 필요가 없다.
예를 들면, 도 9는 N=4 및 M=2(즉, 한번에 4 샘플 블록에 대해 동작하는 2개의 스테이지 바이쿼드)인 경우에, 계산이 동시에(in place) 수행되는 도 4의 시스템의 구현에서 발생되는 값들을 도시한 것이다.
도 9의 예에서, 입력 버퍼 내 4개의 샘플 x(0),...x(3)로 시작한다.
제 1 단계에서, 샘플 x(0)이 필터(BO)(제 1 스테이지 바이쿼드)를 통해 필터링되어 샘플 x1(0)을 생성한다. 샘플 x1(0)은 샘플 x(0)에 의해 이전에 점유된 위치에서 메모리에 저장된다. 모든 다른 메모리 위치들은 변경되지 않는다.
제 2 단계에서, 샘플 x1(0)이 필터(B1)(제 2 스테이지 바이쿼드)를 통해 필터링되어 샘플 y(0)을 생성한다. 샘플 y(0)은 샘플 x1(0)에 의해 이전에 점유된 위치에서 메모리에 저장된다.
병렬로, 샘플 x(1)이 필터(BO)을 통해 필터링되어 샘플 x1(1)을 생성한다. 샘플 x1(1)은 샘플 x(1)에 의해 이전에 점유된 위치에서 메모리에 저장된다.
후속 단계들에서, 처리는 모든 입력 샘플 x(0)...x(3)이 출력 샘플 y(0)...y(3)에 의해 대체될 때까지 계속된다.
도 9의 예에서, 필터(B1)가 샘플 x1(2)에 적용될 때, 샘플 x1(1) 및 샘플 x1(0)은 더 이상 버퍼(y(0) 및 y(1)로 대체되어졌다) 내에 체류하지 않는다. 대신에, x1(1) 및 x1(0)로부터 필터(B1)(즉, 도 1에서 s1(n) 및 s2(n)에 대응하는 샘플)에 의해 도출되었던 샘플은 필터(B1)에 연관된 2 상태 변수 내에 내포된다.
도 9의 예에서, 각 필터(예를 들면, 필터(BO, B1) 각각)는 이것이 현재의 한 블록의 제 "j" 입력 샘플을 필터링하는데 사용하기 위해 발생하는(현재의 한 블록의 N 입력 샘플 중 제 "j-1" 및 제 "j-2" 입력 샘플에 응하여) 두 샘플(도 1에서 s1(n) 및 s2(n)에 대응하는)을 저장하는 메모리 위치들에의 액세스를 요구한다. 이들 메모리 위치들은 도 4의 시스템의 메모리(10) 내 일 수도 있을 것이다(혹은 다른 버퍼 메모리 위치들일 수도 있을 것이다).
필터 각각에 있어서, 필터에 의해 발생된 각각의 한 쌍의 저장된 샘플(도 1에서 s1(n) 및 s2(n)에 대응하는)는 새로운 입력 샘플(증분된 인덱스 j와 함께)이 필터에 어서트될 때마다 업데이트된다. 저장된 샘플(도 1에서 s1(n) 및 s2(n)에 대응하는)는 필터(복수-스테이지 필터중 한 스테이지인)에 의해 발생되어 발명에 따라 후속 사용을 위해 버퍼되는 "중간값"(이 어구는 본원에 다른 곳에서도 사용된다)의 예들인데, 그러나 이들은 이들을 발생하였던 필터에 의해서(복수-스테이지 필터 중 다른 필터 스테이지에 의해서가 아니라) 나중에 사용된다.
도 9가 블록 크기(N)가 4와 같고 발명의 필터에서 바이쿼드 필터 스테이지 의 수(M)가 2인, 동시(in place) 필터링을 사용하는 발명의 방법의 구체적 예를 도시할지라도, 동시(in place) 필터링을 사용하는 발명의 방법의 실시예는 M>1 및 N>M이라는 제약을 조건으로 하여 M 및 N의 임의의 값들에 대해 고찰된다. 도 9의 구현(및 블록 크기가 4와는 다르고 및/또는 바이쿼드 스테이지의 수가 2와는 다른 동시(in place) 필터링을 사용하는 다른 실시예)에서, 입력 데이터 x(n)을 저장하기 위해 사용되는 동일 메모리 위치들(예를 들면, 도 4의 메모리(10)에)은 일단 특정 입력 데이터 샘플이 더 이상 복수-스테이지 필터에 의해 필요하지 않게 되면, 중간값 x1(n),...,xM-1(n)을 저장하기 위해 사용될 수 있다.
도 4의 필터는 메모리(메모리(10)로서 기능하는), 제어기(제어기(11)로서 기능하는), 및 ALU(산술 논리 유닛) 또는 AMU(산술 조작 유닛)를 포함하는 디지털 신호 프로세서(DSP) 또는 이외 다른 프로세서를 프로그램함으로써 구현될 수 있고, 바이쿼드 필터s(B1, B2,..., BM) 각각은 ALU 또는 AMU 중 적합하게 구성된 것으로서 구현된다.
이에 따라, 도 4 필터는
버퍼 메모리(메모리(10) 내 버퍼 위치들);
제 1 바이쿼드 필터 스테이지(예를 들면, 바이쿼드 필터(B1)) 및 후속 바이쿼드 필터 스테이지(예를 들면, 바이쿼드 필터(B2))를 포함하는, 적어도 2개의 바이쿼드 필터 스테이지(바이쿼드 필터(B1, B2,..., BM); 및
바이쿼드 필터 스테이지에 결합되고, 제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지 둘 다에 단일 스트림의 명령을 어서트하게 구성된 제어기(제어기(11))를 포함한다. 제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지(및 도 4의 필터의 각각의 다른 바이쿼드 필터 스테이지)는 명령들의 스트림에 응하여 독립적으로 그리고 병렬로 동작한다.
제 1 바이쿼드 필터 스테이지는 메모리에 결합되고, 명령들의 스트림에 응하여 한 블록의 N 입력 샘플에 대해 바이쿼드래틱 필터링을 수행하여 중간값(예를 들면, 값 x1(n))을 발생하고 중간값을 메모리(상기 메모리에 저장을 위해)에 어서트하게 구성된다. 이들 중간값은 입력 샘플 각각의 필터링된 버전을 포함한다. 발명의 어떤 실시예에서, 언제든 단지 한 중간값 x1(n)만이 메모리(10)에 있을 필요가 있다. 후속 바이쿼드 필터 스테이지는 메모리에 결합되고, 명령들의 스트림에 응하여 메모리로부터 인출된 버퍼된 값에 대해 바이쿼드래틱 필터링을 수행하여 한 블록의 출력값(예를 들면, 값 x2(n))을 발생하게 구성되며, 출력값은 한 블록의 N 입력 샘플 내 입력 샘플 각각에 대응하는 출력값을 포함하며, 버퍼된 값은 한 블록의 N 입력 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 중간값들 중 일부를 포함한다.
복수-스테이지 필터가 M 스테이지를 갖는 실시예에서, 후속 바이쿼드 필터 스테이지(예를 들면, 도 4의 필터(B2))는 메모리로부터 인출된 한 부-세트의 버퍼된 값에 응하여 입력 샘플 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되며, j는 M-1 내지 N-1 범위 내 인덱스이며, 상기 부-세트는 입력 샘플들 중 제 "j" 샘플의 필터링된 버전, 입력 샘플들 중 제 "j-1" 샘플의 필터링된 버전, 및 입력 샘플들 중 제 "j-2" 샘플의 필터링된 버전을 포함한다.
후속 바이쿼드 필터 스테이지(예를 들면, 도 4의 필터(B2))는 메모리로부터 인출된 상이한 부-세트의 버퍼된 값에 응하여, 입력 샘플 x(n) 각각에 대응하는 출력값(x2(n))을 발생하게 구성되며, 각 상기 부-세트는 제 1 바이쿼드 필터 스테이지(예를 들면, 도 4에 나타낸 값 x1(n), x1(n-1), x1(n-2))에서 발생되고 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 메모리로부터 인출되는 중간값 중 적어도 2개(예를 들면, 3개)를 포함한다. 더 구체적으로, 복수-스테이지 필터가 M 스테이지를 갖는 실시예에서, j는 M-1 내지 N-1의 범위 내 인덱스로서, 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하기 위해 필터(B2)에 의해 인출된 한 부-세트의 버퍼된 값은 입력 샘플들 중 제 "j" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값, 입력 샘플들 중 제 "j-1" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값, 및 입력 샘플들 중 제 "j-2" 샘플에 응하여 제 1 바이쿼드 필터 스테이지에서 발생된 적어도 한 값을 포함한다.
도 4의 필터는 (a) 한 블록의 N 입력 샘플에 대해 제 1 바이쿼드래틱 필터링 동작을 수행하여 중간값(예를 들면, 도 4에 나타낸 값 x1(n), x1(n-1), 및 x1(n-2))을 발생하고, 중간값을 버퍼 메모리에 어서트하는(상기 메모리에 저장하기 위해) 단계로서, 중간값은 적어도 한 부-세트의 입력 샘플 각각의 필터링된 버전을 포함하는 것인, 단계; 및
(b) 메모리로부터 인출된 버퍼된 값에 대해 제 2 바이쿼드래틱 필터링 동작을 수행하여 한 블록의 출력값(예를 들면, 도 4에 나타낸 값 x2(n))을 발생하는 단계로서, 출력값은 한 블록의 N 입력 샘플 내 입력 샘플 각각에 대응하는 출력값을 포함하고, 상이한 한 부-세트의 버퍼된 값이 인출되고 필터링되어 블록 내 입력 샘플 각각에 대응하는 출력값을 발생하고, 각각의 상기 한 부-세트의 버퍼된 값은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 메모리로부터 인출되는 단계(a)(예를 들면, 도 4에 나타낸, 값 x1(n), x1(n-l), 및 x1(n-2))의 수행동안 발생되는 중간값들 중 적어도 2개(예를 들면, 3개)를 포함하며, 단계(a) 및 단계(b)은 단계(a) 및 단계(b)이 단일 스트림의 명령에 응하여 독립적으로 그리고 병렬로 수행되게, 단일 스트림의 명령에 응하여 수행되는 것인, 단계를 수행함으로써, 한 블록의 N 입력 샘플(데이터 값 x(n))에 대해 복수-스테이지 필터링을 수행하게 구성된다.
j는 M-1 내지 N-1의 범위 내 인덱스로서, M 스테이지를 갖는 복수-스테이지 필터에서 필터링이 수행되는 실시예에서 입력 샘플 중 제 "j" 샘플에 대응하는 출력값을 발생하기 위해 단계(b)에서 인출된 버퍼된 값은 단계(a)에서 발생된 입력 샘플 중 제 "j" 샘플의 필터링된 버전, 단계(a)에서 발생된 입력 샘플 중 제 "j-1" 샘플의 필터링된 버전, 단계(a)에서 발생된 입력 샘플 중 제 "j-2" 샘플의 필터링된 버전을 포함한다.
도 5는 발명의 복수-스테이지 필터("M B 필터"(153))의 실시예를 포함하는 엔코더(엔코더(150))를 포함하는 시스템의 블록도이다. 예를 들면, 필터(153)는 도 4에 도시되고 이를 참조하여 기술되는 유형의 것일 수 있다. 엔코더(150)는 선택적으로 2 이상의 복수-스테이지 필터를 포함하며, 이 각각은 발명의 복수-스테이지 필터의 실시예이다. 입력 오디오 데이터 샘플에 응하여, 엔코더(150)는 엔코딩된 오디오 데이터를 발생하고 엔코딩된 오디오 데이터를 전달 부-시스템(151)에 어서트한다.
전달 부-시스템(151)은 엔코딩된 오디오 데이터를 저장하고 및/또는 엔코딩된 오디오 데이터를 나타내는 신호를 전송하게 구성된다. 디코더(152)는 엔코딩된 오디오 데이터를 부-시스템(151)으로부터 수신하게 결합되고 구성된다(예를 들면, 프로그램된)(예를 들면, 엔코딩된 오디오 데이터를 부-시스템(151) 내 저장장치로부터 판독 또는 인출함으로써, 혹은 부-시스템(151)에 의해 송신되어진 엔코딩된 오디오 데이터를 나타내는 신호를 수신함으로써).
디코더(152)는 발명의 복수-스테이지 필터("M B 필터"(154))의 실시예를 포함한다. 예를 들면, 필터(154)는 도 4에 도시되고 이를 참조하여 기술되는 유형의 것일 수 있다. 디코더(152)는 선택적으로 2 이상의 복수-스테이지 필터를 포함하고, 이 각각은 발명의 복수-스테이지 필터의 실시예이다. 디코더(152)는 엔코딩된 오디오 데이터를 디코딩하고 그럼으로써 디코딩된 오디오 데이터를 발생하게 동작한다.
또한, 도 5 시스템은 엔코더(150)에 의해 엔코딩될 오디오 데이터의 사전 처리를 수행하게 구성되는 오디오 선-처리 부-시스템("선(pre)-프로세서")(155)을 포함한다. 선-프로세서(155)는 발명의 복수-스테이지 필터 ("M B 필터"(157))의 실시예를 포함한다. 예를 들면, 필터(157)는 도 4에 도시되고 이를 참조하여 기술되는 유형의 것일 수 있다.
또한 도 5 시스템은 디코더(154)에 의해 디코딩되어진 디코딩된 오디오 데이터의 후-처리를 수행하게 구성된 오디오 후-처리 부-시스템("후(post)-프로세서")(156)을 포함한다. 후-프로세서(156)는 발명의 복수-스테이지 필터("M B 필터"(158))의 실시예를 포함한다. 예를 들면, 필터(158)는 도 4에 도시되고 이를 참조하여 기술되는 유형의 것일 수 있다.
일부 구현에서, 엔코더(150)는 AC-3(또는 인핸스드 AC-3, 또는 돌비 E) 엔코더이며, 이것은 시간-영역 입력 오디오 데이터에 응하여 AC-3(또는 인핸스드 AC-3, 또는 돌비 E) 엔코딩된 오디오 비트스트림을 발생하게 구성되고, 디코더(52)는 AC-3(또는 인핸스드 AC-3, 또는 돌비 E) 디코더이다.
한 부류의 실시예에서, 발명은 입력 오디오 데이터에 응하여 엔코딩된 오디오 데이터를 발생하게 구성된 오디오 엔코더(예를 들면, 도 5의 엔코더(150))이며, 상기 엔코더는 오디오 데이터를 필터링하게(예를 들면, 오디오 데이터의 사전 처리된 버전을 필터링하게) 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)을 포함한다. 엔코더(150)는 오디오 데이터에 대해(예를 들면, 오디오 데이터의 사전 처리된 버전에 대해) 발명의 복수-스테이지 필터링 방법의 실시예를 수행함으로써, 오디오 데이터를 엔코딩하여 엔코딩된 오디오 데이터,를 발생하게 구성된다.
한 부류의 실시예에서, 발명은 엔코딩된 오디오 데이터에 응하여 디코딩된 오디오 데이터를 발생하게 구성된 오디오 디코더(예를 들면, 도 5의 디코더(152))이며, 상기 디코더는 엔코딩된 오디오 데이터을 필터링하게(예를 들면, 엔코딩된 오디오 데이터의 사전 처리된 버전을 필터링하게) 결합되고 구성된 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다. 디코더(152)는 엔코딩된 오디오 데이터에 대해(예를 들면, 엔코딩된 오디오 데이터의 사전 처리된 버전에 대해) 발명의 복수-스테이지 필터링 방법의 실시예를 수행함으로써, 엔코딩된 오디오 데이터를 디코딩하여 디코딩된 오디오 데이터를 발생하게 구성된다.
발명의 또 다른 실시예는 오디오 데이터(예를 들면, 엔코더에 의해 엔코딩될 오디오 데이터)의 사전 처리를 수행하기 위한 선-프로세서(예를 들면, 도 5의 선-프로세서(155))이며, 선-프로세서는 오디오 데이터(예를 들면, 선-프로세서에 입력되는 데이터 또는 이러한 입력 데이터의 사전 처리된 버전)를 필터링하게 결합되고 구성된 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다.
발명의 또 다른 실시예는 디코더에 의해 디코딩되어진 디코딩된 오디오 데이터의 후-처리를 수행하기 위한 후-프로세서(예를 들면, 도 5의 후프로세서(156))이며, 후-프로세서는 오디오 데이터(예를 들면, 후-프로세서에 입력되는 디코딩된 데이터 혹은 이러한 입력 데이터의 처리된 버전)를 필터링하기 하게 결합되고 구성되는 적어도 한 복수-스테이지 필터(발명의 복수-스테이지 필터의 임의의 실시예인)를 포함한다.
도 10은 발명의 복수-스테이지 필터("M B 필터"(153))의 실시예를 포함하는 엔코더(엔코더(150))를 포함하는 시스템의 블록도이다. 도 10의 엔코더(150)는 도 5의 엔코더(150)와 동일하고, 도 5의 엔코더(150)가 구현될 수 있는 방법들 중 어느 것으로 구현될 수 있다. 복수-스테이지 필터(153)는 발명의 복수-스테이지 필터의 임의의 실시예를 구현할 수 있다. 입력 오디오 데이터 샘플에 응하여, 엔코더(150)는 엔코딩된 오디오 데이터(하나 이상의 입력 오디오 채널을 나타내는)를 발생하고 엔코딩된 오디오 데이터를 전달 부-시스템(151)에 어서트한다.
전달 부-시스템(151)은 엔코딩된 오디오 데이터를 저장하고 및/또는 엔코딩된 오디오 데이터를 나타내는 신호를 전송하게 구성된다. 도 10의 부-시스템(151)은 도 5의 부-시스템(151)과 동일하고, 도 5의 부-시스템(151)이 구현될 수 있는 방법들 중 어느 것으로 구현될 수 있다.
도 10의 디코더(252)는 부-시스템(151)으로부터 엔코딩된 오디오 데이터를 수신하게(예를 들면, 부-시스템(151)내 저장장치로부터 엔코딩된 오디오 데이터를 판독 또는 인출함으로써, 혹은 부-시스템(151)에 의해 송신되어진 엔코딩된 오디오 데이터를 나타내는 신호를 수신함으로써) 결합된 입력을 갖는다.
디코더(252)는 복수-스테이지 필터(153)에 의해 처리된 오디오 정보의 하나 이상의 채널을 나타내는 엔코딩된 데이터를 추출(수신된 엔코딩된 비트스트림으로부터)하고, 엔코딩된 데이터를 디코딩하여 하나 이상의 채널의 오디오 정보의 디코딩된 표현을 제공하게 구성된다(예를 들면, 프로그램된).
본 발명의 전형적인 실시예에 따라, 복수-스테이지 필터를 구현하기 위해 프로세서(예를 들면, 디지털 신호 프로세서 또는 범용 프로세서)를 프로그램하기 위해서 SIMD 명령(또는 복수의 ALU 또는 AMU에 의한 병렬 처리를 위한 명령)이 사용된다. 복수-스테이지 필터는 대역폭 제한 저역 통과 필터링, 저역 통과 필터링(예를 들면, 오디오 엔코더의 LFE 부-시스템에서), 고역 통과 필터링(예를 들면, 오디오 엔코더의 과도 검출기 부-시스템에서), 또는 이외 다른 필터링을 구현할 수 있다.
발명의 다른 측면들은 발명의 방법의 임의의 실시예를 수행하게 구성된(예를 들면, 프로그램된) 시스템 또는 장치(예를 들면, 엔코더, 디코더, 또는 프로세서), 및 발명의 방법 또는 이의 단계들의 임의의 실시예를 구현하기 위한 코드를 저장하는 컴퓨터 판독가능 매체(예를 들면, 디스크)를 포함한다. 예를 들면, 발명의 시스템은 소프트웨어 또는 펌웨어로 프로그램된 및/또는 아니면 발명의 방법 또는 이의 단계의 실시예를 포함하여, 데이터에 대한 다양한 동작들 중 임의의 동작을 수행하게 구성된, 프로그램가능한 범용 프로세서, 디지털 신호 프로세서, 또는 마이크로프로세서이거나 이를 포함할 수 있다. 이러한 범용 프로세서는 입력 장치, 메모리및 자신에 어스트된 데이터에 응하여 발명의 방법(혹은 이의 단계)의 실시예를 수행하게 프로그램된 (및/또는 아니면 구성된) 처리 회로를 포함하는 컴퓨터 시스템일 수 있거나 이를 포함할 수 있다.
발명의 일부 실시예는 발명의 일부 실시예는 프로그램된 프로세서(예를 들면, 각각이 병렬 처리를 가능하게 하는 네온 SIMD 엔진을 가진 ARM 코텍스 프로세서인 ARM 네온 프로세서들, 혹은 SIMD(단일 명령, 복수 데이터) 유닛 및/또는 복수의 ALU(산술 논리 유닛) 또는 AMU(산술 조작 유닛)을 가진 이외 다른 프로세서들) 또는 프로그램된 (및/또는 아니면 구성된) 디지털 신호 프로세서(예를 들면, SIMD 유닛 및/또는 복수의 ALU 또는 AMU를 갖는 DSP)로서 구현된, 엔코더(예를 들면, 돌비 디지털 플러스, AC-3, 또는 돌비 E 포맷에 따라 오디오 데이터를 엔코딩하는 엔코더) 또는 디코더이다.
발명의 전형적인 실시예에 따라 복수-스테이지 바이쿼드 필터의 모든 바이쿼드 필터 스테이지의 동작을 결합하는 것은(단일 샘플 루프로) 병렬성을 할 수 있게 함으로써 수행을 개선한다. SIMD 유닛 및 복수의 ALU(또는 AMU)을 가진 프로세서는 이들의 자원을 발명의 방법의 실시예을 구현함으로써 효율적으로 사용하게 할 수 있다.
복수-스테이지 바이쿼드 필터를 구현하기 위한 발명의 방법의 전형적인 실시예는 출력의 정밀도 또는 필터의 안정성에 영향을 미치지 않는다(필터의 종래의 구현에 의해 달성될 수 있는 정밀도 및 안정성에 비해).
발명자에 의해 수행된 테스트는 돌비 디지털 플러스 포맷에 따라 오디오 데이터를 엔코딩하게 구성되고 발명의 2-스테이지 바이쿼드 필터(엔코더의 과도 검출기 부-시스템에서 고역 통과 필터링을 구현하는)의 실시예를 포함하게 프로그램된 텍사스 인스트루먼츠 C64 디지털 신호 프로세서로서 구현된 엔코더는 엔코더가 2-스테이지 필터의 종래의(병렬화되지 않은) 구현을 포함하게 종래에 프로그램되었을 때 블록을 필터링하게 위해 요구된 평균 사이클 수 4141과는 대조적으로, 전형적인 한 블록의 오디오 데이터를 필터링하기 위해 단지 평균 1846 사이클만을 요구하였음을 보였다.
또한, 발명자에 의해 수행된 테스트는 돌비 디지털 플러스 포맷에 따라 오디오 데이터를 엔코딩하게 구성되고 발명의 4-스테이지 바이쿼드 필터(엔코더의 저 주파수 효과("LFE") 부-시스템에서 고역 통과 필터링을 구현하는)의 실시예를 포함하게 프로그램된 텍사스 인스트루먼츠 C64 디지털 신호 프로세서로서 구현된 엔코더는 엔코더가 4-스테이지 필터의 종래의(병렬화되지 않은) 구현을 포함하게 종래에 프로그램되었을 때 블록을 필터링하게 위해 요구된 평균 사이클 수 10375와는 대조적으로, 전형적인 한 블록의 오디오 데이터를 필터링하기 위해 단지 평균 5802 사이클만을 요구하였음을 보였다.
발명의 필터가 다른 프로세서(다른 코더 프로세서 아키텍처를 가진)를 적합히 프로그램함으로 구현되었을 때 유사한 수행 이익을 제공할 수 있을 것으로 예상된다. 또한, 수행 개선의 정도는 프로세서 아키텍처, 필터의 스테이지 수, 및 펄터에 극들의 수에 따를 것으로 예상된다.
발명은 하드웨어, 펌웨어, 또는 소프트웨어, 혹은 이들의 조합(예를 들면 프로그램가능한 로직 어레이로서)으로 구현될 수있다. 달리 명시되지 않는한, 발명의 부분으로서 포함된 알고리즘 또는 프로세스는 본질적으로 어떠한 특별한 컴퓨터 또는 장치에도 관계되지 않는다. 특히, 다양한 범용 기계에 본원에 교시된 바에 따라 작성된 프로그램들이 사용될 수 있고, 혹은 요구되는 방법의 단계들을 수행하기 위해 더 특별화된 장치(예를 들면, 집적회로)를 제작하는 것이 더 편리할 수도 있다. 이에 따라, 발명은 각각이 적어도 한 프로세서, 적어도 한 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함하는), 적어도 한 입력 장치 또는 포트, 및 적어도 한 출력 장치 또는 포트를 포함하는 것인 하나 이상의 프로그램가능한 컴퓨터 시스템(예를 들면, 도 5의 엔코더를 구현하는 컴퓨터 시스템) 상에서 실행하는 하나 이상의 컴퓨터 프로그램들로 구현될 수 있다. 프로그램 코드는 본원에 기술된 기능을 수행하여 출력 정보를 제공하기 위해 입력 데이터에 적용된다. 출력 정보는 기지의 방식으로, 하나 이상의 출력 장치에 적용된다.
각각의 이러한 프로그램은 컴퓨터 시스템과 통신하기 위해 임의의 요망되는 컴퓨터 언어(기계, 어셈블리, 또는 고 레벨 절차, 논리, 혹은 개체 지향 프로그래밍 언어를 포함하는)로 구현될 수 있다. 어째든, 언어는 컴파일되거나 해석된 언어일 수 있다.
예를 들면, 컴퓨터 소프트웨어 명령 시퀀스에 의해 구현되었을 때, 발명의 실시예의 여러 기능 및 단계는 적합한 디지털 신호 처리 하드웨어에서 실행되는 복수-스레드 소프트웨어 명령 시퀀스에 의해 구현될 수 있는데, 이 경우 실시예의 여러 장치, 단계, 및 기능은 소프트웨어 명령의 부분들에 대응할 수 있다. 각각의 이러한 컴퓨터 프로그램은 저장 매체 또는 장치가 본원에 기술된 절차를 수행하기 위해 컴퓨터 시스템에 의해 판독되었을 때 컴퓨터를 구성하고 동작시키기 위해서, 범용 또는 전용의 프로그램가능한 컴퓨터에 의해 판독가능한 저장 매체 또는 장치(예를 들면, 고체상태 메모리 또는 매체, 또는 자기 또는 광학 매체)에 바람직하게 저장되거나 이에 다운로드된다. 또한, 발명의 시스템은 컴퓨터 프로그램으로 구성된(즉, 저장) 컴퓨터-판독가능 저장 매체로서 구현될 수 있는데, 이와 같이 구성된 저장 매체는 컴퓨터 시스템이 본원에 기술된 기능을 수행하게 특정하고 기정의된 방식으로 동작하게 한다.
개개의 스테이지가 IIR 필터이지만 바이쿼드 필터(이들이 본원에 기술된 구체적인 실시예에서 있는 바와 같은)가 아닌 복수-스테이지 필터는 이의 개개의 스테이지의 처리가 병렬화되도록(예를 들면, 이의 모든 스테이지가 상기 스테이지에서 데이터의 완전히 병렬화된 처리를 수행하게 명령들의 단일 공통 스트림에 응하여 독립적으로 동작하도록) 발명에 따라 구현될 수도 있음이 고찰된다. 예를 들면, 2012년 1월 26일에 공개된 미국특허 출원공개번호 2012/0019723 A1에 기술된 유형의 복수-스테이지 필터는 이의 개개의 스테이지의 처리가 병렬화되도록(예를 들면, 이의 모든 스테이지가 상기 스테이지에서 데이터의 완전히 병렬화된 처리를 수행하게 명령들의 단일 공통 스트림에 응하여 독립적으로 동작하도록) 발명의 실시예에 따라 수정될 수 있다.
발명의 방법의 일부 실시예에서, 본원에 기술된 일부 또는 모든 단계들은 동시에, 혹은 본원에 기술된 예들에서 명시된 것과는 다른 순서로 수행된다. 단계들이 발명의 방법의 일부 실시예에서 특정 순서로 수행될지라도, 일부 단계는 다른 실시예에서 동시에 혹은 다른 순서로 수행될 수도 있다.
발명의 다수의 실시예가 기술되었다. 그럼에도불구하고, 발명의 정신 및 범위 내에서 다양한 수정이 행해질 수있음이 이해될 것이다. 본 발명의 수많은 수정 및 변형은 위에 교시된 바들에 비추어 가능하다. 첨부된 청구항의 범위 내에서 발명은 본원에 특정하게 기술된 것과는 다르게 실시될 수 있음이 이해될 것이다.

Claims (56)

  1. 복수-스테이지 필터에 있어서,
    버퍼 메모리;
    제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지를 포함하는 적어도 2개의 바이쿼드 필터 스테이지들; 및
    상기 바이쿼드 필터 스테이지들에 결합되고 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지 둘 다에 단일 스트림의 명령들을 어서트하게 구성된 제어기를 포함하고, 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지는 상기 명령들의 스트림에 응하여 독립적으로 그리고 병렬로 동작하며,
    상기 제 1 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 한 블록의 N 입력 샘플들에 대해 바이쿼드래틱 필터링을 수행하여 중간값들을 발생하여 상기 중간값들을 상기 메모리에 어서트하게 구성되고, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하며,
    상기 후속 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 상기 메모리로부터 인출된 버퍼된 값들에 대해 바이쿼드래틱 필터링을 수행하여 한 블록의 출력값들을 발생하게 구성되고, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하고, 상기 버퍼된 값들은 상기 한 블록의 N 입력 샘플들에 응하여 상기 제 1 바이쿼드 필터 스테이지에서 발생된 상기 중간값들의 적어도 일부를 포함하는, 복수-스테이지 필터.
  2. 제 1 항에 있어서, 상기 복수-스테이지 필터는 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 상기 한 블록의 N 입력 샘플들의 복수-스테이지 필터링을 수행하게 구성된, 복수-스테이지 필터.
  3. 제 1 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-1" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 복수-스테이지 필터.
  4. 제 1 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에 의해 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전과, 상기 입력 샘플들 중 제 "j-1" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값 및, 상기 입력 샘플들 중 "j'-2" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값을 포함하는, 복수-스테이지 필터.
  5. 제 1 항에 있어서, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 상이한 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 각각에 대응하는 출력값을 발생하게 구성되고, 각 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에서 발생되고 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출된 상기 중간값들 중 적어도 3개를 포함하는, 복수-스테이지 필터.
  6. 적어도 두 바이쿼드 필터 스테이지들을 포함하는 복수-스테이지 필터로서, 상기 스테이지들은 상기 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하기 위해 명령들의 단일 공통의 스트림에 응하여 모든 상기 스테이지들이 독립적으로 동작하게, 상기 스테이지들 간에 레이턴시가 조합되는, 복수-스테이지 필터.
  7. 제 6 항에 있어서, 상기 명령들의 공통 스트림을 모든 상기 스테이지들에 어서트하게 결합된 제어기, 및 모든 상기 스테이지들에 결합된 데이터 메모리를 더 포함하고, 모든 상기 스테이지들은 상기 명령들의 공통 스트림에 응하여 한 블록의 입력 데이터 값들을 병렬로 필터링하게 동작하는 것으로, 상기 스테이지들 각각은 서로 다른 데이터 값들에 대해 동작하고, 상기 스테이지들 중 적어도 하나는 한 부-세트의 상기 입력 데이터 값들에 응하여 상기 스테이지들 중 또 다른 한 스테이지에 의해 발생되어 상기 스테이지들 중 상기 스테이지에서 처리를 위해 인출되기 전에 상기 메모리 내 서로 다른 레이턴시들을 갖고 저장된, 버퍼된 값들을 포함하는 데이터 값들에 대해 동작하는, 복수-스테이지 필터.
  8. 제 6 항에 있어서, 상기 복수-스테이지 필터는 단일 명령 복수 데이터 아키텍처를 갖는, 복수-스테이지 필터.
  9. 제 8 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 포함하고, M은 1보다 큰 수이며, 상기 스테이지들 중 하나는 서로 다른 시간들에서 상기 스테이지들 중 이전 스테이지에 의해 발생되고, 서로 다른 시간들에서 버퍼 메모리에 저장되고, 서로 다른 레이턴시 시간들을 갖고 상기 버퍼 메모리에 체류한 후에 상기 버퍼 메모리로부터 상기 스테이지들 중 상기 스테이지에 의해 판독된 데이터 값들에 대해 동작하는, 복수-스테이지 필터.
  10. 한 블록의 N 입력 샘플들에 대해 복수-스테이지 필터링을 수행하는 방법에 있어서,
    (a) 상기 한 블록의 N 입력 샘플들에 대해 제 1 바이쿼드래틱 필터링 동작을 수행하여 중간값들을 발생하고, 상기 중간값들을 버퍼 메모리에 어서트하는 단계로서, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하는 것인, 단계; 및
    (b) 상기 메모리로부터 인출된 버퍼된 값들에 대해 제 2 바이쿼드래틱 필터링 동작을 수행하여 한 블록의 출력값들을 발생하는 단계로서, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하며, 상이한 한 부-세트의 상기 버퍼된 값들이 인출되고 필터링되어 상기 블록 내 상기 입력 샘플들 각각에 대응하는 상기 출력값을 발생하며, 각 상기 한 부-세트의 상기 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출되는 단계(a)의 수행 동안 발생된 상기 중간값들 중 적어도 2개를 포함하는, 단계를 포함하며,
    단계(a) 및 단계(b)는 단계(a) 및 단계(b)가 상기 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로 수행되게, 명령들의 단일 스트림에 응하여 수행되는, 복수-스테이지 필터 수행 방법.
  11. 제 10 항에 있어서, 상기 한 블록의 입력 샘플들의 상기 복수-스테이지 필터링은 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 수행되는, 복수-스테이지 필터 수행 방법.
  12. 제 10 항에 있어서, 상기 복수-스테이지 필터링은 M 스테이지들을 가진 복수-스테이지 필터에서 수행되며, j는 M-1 내지 N-1의 범위 내 인덱스로서, 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 상기 출력값을 발생하기 위해 단계(b)에서 인출된 상기 버퍼된 값들은, 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 단계(a)에서 발생된 상기 입력 샘플들 중 제 "j-1" 샘플의 상기 필터링된 버전, 및 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 복수-스테이지 필터 수행 방법.
  13. 입력 오디오 데이터에 응하여 엔코딩된 오디오 데이터를 발생하게 구성된 오디오 엔코더로서, 상기 엔코더는 상기 오디오 데이터를 필터링하게 결합되고 구성된 적어도 한 복수-스테이지 필터를 포함하며, 상기 복수-스테이지 필터는
    버퍼 메모리;
    제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지를 포함하는 적어도 2개의 바이쿼드 필터 스테이지들; 및
    상기 바이쿼드 필터 스테이지들에 결합되고 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지 둘 다에 단일 스트림의 명령들을 어서트하게 구성된 제어기를 포함하고, 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지는 상기 명령들의 스트림에 응하여 독립적으로 그리고 병렬로 동작하며,
    상기 제 1 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 한 블록의 N 입력 샘플들에 대해 바이쿼드래틱 필터링을 수행하여 중간값들을 발생하고 상기 중간값들을 상기 메모리에 어서트하게 구성되고, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하며,
    상기 후속 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 상기 메모리로부터 인출된 버퍼된 값들에 대해 바이쿼드래틱 필터링을 수행하여 한 블록의 출력값들을 발생하게 구성되고, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하고, 상기 버퍼된 값들은 상기 한 블록의 N 입력 샘플들에 응하여 상기 제 1 바이쿼드 필터 스테이지에서 발생된 상기 중간값들의 적어도 일부를 포함하는, 오디오 엔코더.
  14. 제 13 항에 있어서, 상기 복수-스테이지 필터는 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 상기 한 블록의 N 입력 샘플들의 복수-스테이지 필터링을 수행하게 구성된, 오디오 엔코더.
  15. 제 13 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-1" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 오디오 엔코더.
  16. 제 13 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에 의해 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전과, 상기 입력 샘플들 중 제 "j-1" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값 및, 상기 입력 샘플들 중 "j'-2" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값을 포함하는, 오디오 엔코더.
  17. 제 13 항에 있어서, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 상이한 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 각각에 대응하는 출력값을 발생하게 구성되고, 각 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에서 발생되고 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출된 상기 중간값들 중 적어도 3개를 포함하는, 오디오 엔코더.
  18. 제 13 항에 있어서, 상기 엔코더는 상기 복수-스테이지 필터를 구현하게 프로그램된 적어도 한 단일 명령 복수 데이터 유닛을 포함하는 프로세서인, 오디오 엔코더.
  19. 제 13 항에 있어서, 상기 엔코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 논리 유닛들을 포함하는 프로세서인, 오디오 엔코더.
  20. 제 13 항에 있어서, 상기 엔코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 조작 유닛들을 포함하는 프로세서인, 오디오 엔코더.
  21. 입력 오디오 데이터에 응하여 엔코딩된 오디오 데이터를 발생하게 구성된 오디오 엔코더로서, 상기 엔코더는 상기 오디오 데이터를 필터링하게 결합되고 구성되는 적어도 한 복수-스테이지 필터를 포함하고, 상기 복수-스테이지 필터는 적어도 2개의 바이쿼드 필터 스테이지들을 포함하고, 상기 스테이지들은 상기 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하기 위해 명령들의 단일의 공통 스트림에 응하여 모든 상기 스테이지들이 독립적으로 동작하게, 상기 스테이지들 사이에 레이턴시가 결합된, 오디오 엔코더.
  22. 제 21 항에 있어서, 상기 복수-스테이지 필터는 상기 공통 명령들의 스트림을 모든 상기 스테이지들에 어서트하게 결합된 제어기, 및 모든 상기 스테이지들에 결합된 데이터 메모리를 포함하고, 모든 상기 스테이지들은 상기 공통 명령들의 스트림에 응하여 한 블록의 입력 데이터 값들을 필터링하게 병렬로 동작하는 것으로, 상기 스테이지들 각각은 서로 다른 데이터 값들에 대해 동작하며, 상기 스테이지들 중 적어도 하나는 한 부-세트의 상기 입력 데이터 값들에 응하여 상기 스테이지들 중 다른 스테이지에 의해 발생되어, 상기 스테이지들 중 상기 스테이지에서 처리를 위해 인출되기 전에 상기 메모리 내 서로 다른 레이턴시들을 갖고 저장된, 버퍼된 값들을 포함하는 데이터 값들에 대해 동작하는 것인, 오디오 엔코더.
  23. 제 21 항에 있어서, 상기 복수-스테이지 필터는 단일 명령 복수 데이터 아키텍처를 갖는, 오디오 엔코더.
  24. 제 23 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 포함하고, M은 1보다 큰 수이며, 상기 스테이지들 중 하나는 서로 다른 시간들에서 상기 스테이지들중 이전 스테이지에 의해 발생되어, 서로 다른 시간들에서 버퍼 메모리에 저장되고, 서로 다른 레이턴시 시간들을 갖고 상기 버퍼 메모리에 체류한 후에 상기 버퍼 메모리로부터 상기 스테이지들 중 상기 스테이지에 의해 판독된, 데이터 값들에 대해 동작하는, 오디오 엔코더.
  25. 제 21 항에 있어서, 상기 엔코더는 상기 복수-스테이지 필터를 구현하게 프로그램된 적어도 한 단일 명령 복수 데이터 유닛을 포함하는 프로세서인, 오디오 엔코더.
  26. 제 21 항에 있어서, 상기 엔코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 논리 유닛들을 포함하는 프로세서인, 오디오 엔코더.
  27. 제 21 항에 있어서, 상기 엔코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 조작 유닛들을 포함하는 프로세서인, 오디오 엔코더.
  28. 한 블록의 N 오디오 데이터 샘플들에 대해 복수-스테이지 필터링을 수행함으로써, 엔코딩된 오디오 데이터를 발생하게 오디오 데이터를 엔코딩하는 방법에 있어서, 상기 복수-스테이지 필터링은
    (a) 상기 한 블록의 N 입력 샘플들에 대해 제 1 바이쿼드래틱 필터링 동작을 수행하여 중간값들을 발생하고, 상기 중간값들을 버퍼 메모리에 어서트하는 단계로서, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하는 것인, 단계; 및
    (b) 상기 메모리로부터 인출된 버퍼된 값들에 대해 제 2 바이쿼드래틱 필터링 동작을 수행하여 한 블록의 출력값들을 발생하는 단계로서, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하며, 상이한 한 부-세트의 상기 버퍼된 값들이 인출되고 필터링되어 상기 블록 내 상기 샘플들 각각에 대응하는 상기 출력값을 발생하며, 각 상기 한 부-세트의 상기 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출되는 단계(a)의 수행 동안 발생된 상기 중간값들 중 적어도 2개를 포함하는, 단계를 포함하며,
    단계(a) 및 단계(b)은 단계(a) 및 단계(b)가 상기 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로 수행되게, 단일 스트림의 명령들에 응하여 수행되는, 오디오 데이터 엔코딩 방법.
  29. 제 28 항에 있어서, 상기 한 블록의 샘플들의 상기 복수-스테이지 필터링은 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 수행되는, 오디오 데이터 엔코딩 방법.
  30. 제 28 항에 있어서, 상기 복수-스테이지 필터링은 M 스테이지들을 가진 복수-스테이지 필터에서 수행되며, j는 M-1 내지 N-1의 범위 내 인덱스로서, 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 상기 출력값을 발생하기 위해 단계(b)에서 인출된 상기 버퍼된 값들은, 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 단계(a)에서 발생된 상기 입력 샘플들 중 제 "j-1" 샘플의 상기 필터링된 버전, 및 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 오디오 데이터 엔코딩 방법.
  31. 엔코딩된 오디오 데이터에 응하여 디코딩된 오디오 데이터를 발생하게 구성된 오디오 디코더로서, 상기 디코더는 상기 엔코딩된 오디오 데이터를 필터링하게 결합되고 구성된 적어도 한 복수-스테이지 필터를 포함하며, 상기 복수-스테이지 필터는
    버퍼 메모리;
    제 1 바이쿼드 필터 스테이지 및 후속 바이쿼드 필터 스테이지를 포함하는 적어도 2개의 바이쿼드 필터 스테이지들; 및
    상기 바이쿼드 필터 스테이지들에 결합되고 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지 둘 다에 단일 스트림의 명령들을 어서트하게 구성된 제어기를 포함하고, 상기 제 1 바이쿼드 필터 스테이지 및 상기 후속 바이쿼드 필터 스테이지는 상기 명령들의 스트림에 응하여 독립적으로 그리고 병렬로 동작하며,
    상기 제 1 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 한 블록의 N 입력 샘플들에 대해 바이쿼드래틱 필터링을 수행하여 중간값들을 발생하고 상기 중간값들을 상기 메모리에 어서트하게 구성되고, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하며,
    상기 후속 바이쿼드 필터 스테이지는 상기 메모리에 결합되고 상기 명령들의 스트림에 응하여 상기 메모리로부터 인출된 버퍼된 값들에 대해 바이쿼드래틱 필터링을 수행하여 한 블록의 출력값들을 발생하게 구성되고, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하고, 상기 버퍼된 값들은 상기 한 블록의 N 입력 샘플들에 응하여 상기 제 1 바이쿼드 필터 스테이지에서 발생된 상기 중간값들의 적어도 일부를 포함하는, 오디오 디코더.
  32. 제 31 항에 있어서, 상기 복수-스테이지 필터는 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 상기 한 블록의 N 입력 샘플들의 복수-스테이지 필터링을 수행하게 구성된, 오디오 디코더.
  33. 제 31 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-1" 샘플의 상기 필터링된 버전, 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 오디오 디코더.
  34. 제 31 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 가지며, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 출력값을 발생하게 구성되고, j는 M-1 내지 N-1의 범위 내 인덱스이며, 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에 의해 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전과, 상기 입력 샘플들 중 제 "j-1" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값, 및 상기 입력 샘플들 중 "j'-2" 샘플에 응하여 상기 후속 바이쿼드 필터 스테이지에 의해 발생된 값을 포함하는, 오디오 디코더.
  35. 제 31 항에 있어서, 상기 후속 바이쿼드 필터 스테이지는 상기 메모리로부터 인출된 상이한 한 부-세트의 상기 버퍼된 값들에 응하여 상기 입력 샘플들 각각에 대응하는 출력값을 발생하게 구성되고, 각 상기 부-세트는 상기 제 1 바이쿼드 필터 스테이지에서 발생되고 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출된 상기 중간값들 중 적어도 3개를 포함하는, 오디오 디코더.
  36. 제 31 항에 있어서, 상기 디코더는 상기 복수-스테이지 필터를 구현하게 프로그램된 적어도 한 단일 명령 복수 데이터 유닛을 포함하는 프로세서인, 오디오 디코더.
  37. 제 31 항에 있어서, 상기 디코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 논리 유닛들을 포함하는 프로세서인, 오디오 디코더.
  38. 제 31 항에 있어서, 상기 디코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 조작 유닛들을 포함하는 프로세서인, 오디오 디코더.
  39. 엔코딩된 오디오 데이터에 응하여 디코딩된 오디오 데이터를 발생하게 구성된 오디오 디코더로서, 상기 디코더는 엔코딩된 상기 오디오 데이터를 필터링하게 결합되고 구성되는 적어도 한 복수-스테이지 필터를 포함하고, 상기 복수-스테이지 필터는 적어도 2개의 바이쿼드 필터 스테이지들을 포함하고, 상기 스테이지들은 상기 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하기 위해 명령들의 단일 공통 스트림에 응하여 모든 상기 스테이지들이 독립적으로 동작하게, 상기 스테이지들 사이에 레이턴시가 결합된, 오디오 디코더.
  40. 제 39 항에 있어서, 상기 복수-스테이지 필터는 상기 공통 명령들의 스트림을 모든 상기 스테이지들에 어서트하게 결합된 제어기, 및 모든 상기 스테이지들에 결합된 데이터 메모리를 더 포함하고, 모든 상기 스테이지들은 상기 공통 명령들의 스트림에 응하여 한 블록의 입력 데이터 값들을 필터링하게 병렬로 동작하는 것으로, 상기 스테이지들 각각은 서로 다른 데이터 값들에 대해 동작하며, 상기 스테이지들 중 적어도 하나는 한 부-세트의 상기 입력 데이터 값들에 응하여 상기 스테이지들 중 다른 스테이지에 의해 발생되어, 상기 스테이지들 중 상기 스테이지에서 처리를 위해 인출되기 전에 상기 메모리 내 서로 다른 레이턴시들을 갖고 저장된, 버퍼된 값들을 포함하는 데이터 값들에 대해 동작하는 것인, 오디오 디코더.
  41. 제 39 항에 있어서, 상기 복수-스테이지 필터는 단일 명령 복수 데이터 아키텍처를 갖는, 오디오 디코더.
  42. 제 41 항에 있어서, 상기 복수-스테이지 필터는 M 바이쿼드 필터 스테이지들을 포함하고, M은 1보다 큰 수이며, 상기 스테이지들 중 하나는 서로 다른 시간들에서 상기 스테이지들 중 이전 스테이지에 의해 발생되어, 서로 다른 시간들에서 버퍼 메모리에 저장되고, 서로 다른 레이턴시 시간들을 갖고 상기 버퍼 메모리에 체류한 후에 상기 버퍼 메모리로부터 상기 스테이지들 중 상기 스테이지에 의해 판독된, 데이터 값들에 대해 동작하는, 오디오 디코더.
  43. 제 39 항에 있어서, 상기 디코더는 상기 복수-스테이지 필터를 구현하게 프로그램된 적어도 한 단일 명령 복수 데이터 유닛을 포함하는 프로세서인, 오디오 디코더.
  44. 제 39 항에 있어서, 상기 디코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 논리 유닛들을 포함하는 프로세서인, 오디오 디코더.
  45. 제 39 항에 있어서, 상기 디코더는 상기 바이쿼드 필터 스테이지들을 구현하게 프로그램된 복수의 산술 조작 유닛들을 포함하는 프로세서인, 오디오 디코더.
  46. 한 블록의 N 오디오 데이터 샘플들에 대해 복수-스테이지 필터링을 수행함으로써, 디코딩된 오디오 데이터를 발생하게 오디오 데이터를 디코딩하는 방법에 있어서, 상기 복수-스테이지 필터링은
    (a) 상기 한 블록의 N 입력 샘플들에 대해 제 1 바이쿼드래틱 필터링 동작을 수행하여 중간값들을 발생하고, 상기 중간값들을 버퍼 메모리에 어서트하는 단계로서, 상기 중간값들은 적어도 한 부-세트의 상기 입력 샘플들 각각의 필터링된 버전을 포함하는 것인, 단계; 및
    (b) 상기 메모리로부터 인출된 버퍼된 값들에 대해 제 2 바이쿼드래틱 필터링 동작을 수행하여 한 블록의 출력값들을 발생하는 단계로서, 상기 출력값들은 상기 한 블록의 N 입력 샘플들 내 상기 입력 샘플들 각각에 대응하는 출력값을 포함하며, 상이한 한 부-세트의 상기 버퍼된 값들이 인출되고 필터링되어 상기 블록 내 상기 샘플들 각각에 대응하는 상기 출력값을 발생하며, 각 상기 한 부-세트의 상기 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출되는 단계(a)의 수행 동안 발생된 상기 중간값들 중 적어도 2개를 포함하는, 단계를 포함하며,
    단계(a) 및 단계(b)는 단계(a) 및 단계(b)가 상기 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로 수행되게, 단일 스트림의 명령들에 응하여 수행되는, 오디오 데이터 디코딩 방법.
  47. 제 46 항에 있어서, 상기 한 블록의 샘플들의 상기 복수-스테이지 필터링은 샘플 인덱스에 대해 반복을 가진, 그러나 바이쿼드래틱 필터 스테이지 인덱스에 대해선 반복없이, 단일 처리 루프에서 상기 한 블록의 N 입력 샘플들의 복수-스테이지 필터링을 수행되는, 오디오 데이터 디코딩 방법.
  48. 제 46 항에 있어서, 상기 복수-스테이지 필터링은 M 스테이지들을 가진 복수-스테이지 필터에서 수행되며, j는 M-1 내지 N-1의 범위 내 인덱스로서, 상기 입력 샘플들 중 제 "j" 샘플에 대응하는 상기 출력값을 발생하기 위해 단계(b)에서 인출된 상기 버퍼된 값들은, 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j" 샘플의 상기 필터링된 버전, 단계(a)에서 발생된 상기 입력 샘플들 중 제 "j-1" 샘플의 상기 필터링된 버전, 및 단계(a)에서 발생된 상기 입력 샘플들 중 상기 제 "j-2" 샘플의 상기 필터링된 버전을 포함하는, 오디오 데이터 디코딩 방법.
  49. 엔코딩된 비트스트림을 처리하는 방법에 있어서,
    상기 엔코딩된 비트스트림을 수신하고, 모든 스테이지들이 상기 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하게 명령들의 단일 공통 스트림에 응하여 독립적으로 동작하게, 상기 스테이지들 사이에 레이턴시가 결합된 적어도 두 바이쿼드 필터 스테이지들을 포함하는 복수-스테이지 필터에 의해 처리된 하나 이상의 채널들의 오디오 정보를 나타내는 엔코딩된 데이터를 상기 엔코딩된 비트스트림로부터 추출하는 단계; 및
    상기 엔코딩된 데이터를 디코딩하여 상기 복수-스테이지 필터에 의해 처리된 상기 하나 이상의 채널들의 오디오 정보의 디코딩된 표현들을 제공하는 단계를 포함하는, 엔코딩된 비트스트림 처리 방법.
  50. 엔코딩된 비트스트림을 처리하는 방법에 있어서,
    상기 엔코딩된 비트스트림을 수신하고, 복수-스테이지 필터에 의해 처리된 하나 이상의 채널들의 오디오 정보를 나타내는 엔코딩된 데이터를 상기 엔코딩된 비트스트림로부터 추출하는 단계; 및
    상기 엔코딩된 데이터를 디코딩하여 상기 복수-스테이지 필터에 의해 처리된 상기 하나 이상의 채널들의 오디오 정보의 디코딩된 표현들을 제공하는 단계를 포함하고,
    상기 복수-스테이지 필터는 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로, 다음을 수행하게 동작하는, 엔코딩된 비트스트림 처리 방법.
    (a) 적어도 한 부-세트의 상기 N 샘플들 각각의 필터링된 버전을 포함하는 중간값들을 발생하여 버퍼 메모리에 어서트하게 한 블록의 N 샘플들에 대한 제 1 바이쿼드래틱 필터링 동작; 및
    (b) 한 블록의 출력값들을 발생하기 위해 상기 메모리로부터 인출된 버퍼된 값들에 대한 제 2 바이쿼드래틱 필터링 동작으로서, 상기 출력값들은 상기 한 블록의 N 샘플들 내 상기 샘플들 각각에 대응하는 출력값을 포함하고, 상이한 한 부-세트의 상기 버퍼된 값들이 인출되고 상기 블록 내 상기 샘플들 각각에 대응하는 상기 출력값을 발생하게 필터링되고, 각각의 상기 한 부-세트의 상기 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출된 단계(a)의 수행 동안 발생된 상기 중간값들 중 적어도 2개를 포함하는, 엔코딩된 비트스트림 처리 방법.
  51. 제 49 항 또는 제 50 항에 있어서, 상기 복수-스테이지 필터는 대역폭 제한 저역-통과 필터링을 수행하기 위한 3-스테이지 바이쿼드 필터인, 엔코딩된 비트스트림 처리 방법.
  52. 제 49 항 또는 제 50 항에 있어서, 상기 하나 이상의 채널들 중 하나는 LFE 채널이며, 상기 복수-스테이지 필터는 상기 LFE 채널 상에서 저역 통과 필터링을 수행하기 위한 4-스테이지 바이쿼드 필터인, 엔코딩된 비트스트림 처리 방법.
  53. 엔코딩된 비트스트림을 처리하기 위한 장치에 있어서,
    상기 엔코딩된 비트스트림을 수신하게 결합된 입력; 및
    상기 입력에 결합되고, 모든 스테이지들이 상기 스테이지들에서 데이터의 완전히 병렬화된 처리를 수행하게 명령들의 단일 공통 스트림에 응하여 독립적으로 동작하게, 상기 스테이지들 사이에 레이턴시가 결합된 적어도 두 바이쿼드 필터 스테이지들을 포함하는 복수-스테이지 필터에 의해 처리된 오디오 정보의 하나 이상의 채널들을 나타내는 엔코딩된 데이터를 상기 엔코딩된 비트스트림로부터 추출하고, 상기 엔코딩된 데이터를 디코딩하여 상기 복수-스테이지 필터에 의해 처리된 상기 하나 이상의 채널들의 오디오 정보의 디코딩된 표현들을 제공하게 구성된, 디코더를 포함하는, 엔코딩된 비트스트림 처리 장치.
  54. 엔코딩된 비트스트림을 처리하기 위한 장치에 있어서,
    상기 엔코딩된 비트스트림을 수신하게 결합된 입력; 및
    상기 입력에 결합되고, 복수-스테이지 필터에 의해 처리된 하나 이상의 채널들의 오디오 정보를 나타내는 엔코딩된 데이터를 상기 엔코딩된 비트스트림로부터 추출하고, 상기 엔코딩된 데이터를 디코딩하여 상기 복수-스테이지 필터에 의해 처리된 상기 하나 이상의 채널들의 오디오 정보의 디코딩된 표현들을 제공하는 디코더를 포함하고, 상기 복수-스테이지 필터는 단일 스트림의 명령들에 응하여 독립적으로 그리고 병렬로, 다음을 수행하게 동작하는, 엔코딩된 비트스트림 처리 장치.
    (a) 적어도 한 부-세트의 상기 N 샘플들 각각의 필터링된 버전을 포함하는 중간값들을 발생하여 버퍼 메모리에 어서트하는 한 블록의 N 샘플들에 대한 제 1 바이쿼드래틱 필터링 동작; 및
    (b) 한 블록의 출력값들을 발생하는 상기 메모리로부터 인출된 버퍼된 값들에 대한 제 2 바이쿼드래틱 필터링 동작으로서, 상기 출력값들은 상기 한 블록의 N 샘플들 내 상기 샘플들 각각에 대응하는 출력값을 포함하고, 상이한 한 부-세트의 상기 버퍼된 값들이 인출되고 상기 블록 내 상기 샘플들 각각에 대응하는 상기 출력값을 발생하게 필터링되고, 각각의 상기 한 부-세트의 상기 버퍼된 값들은 서로 다른 레이턴시 시간들 동안 상기 메모리에 체류한 후에 상기 메모리로부터 인출된 단계(a)의 수행 동안 발생된 상기 중간값들 중 적어도 2개를 포함하는, 엔코딩된 비트스트림 처리 방법.
  55. 제 53항 또는 제 54 항에 있어서, 상기 복수-스테이지 필터는 대역폭 제한 저역-통과 필터링을 수행하기 위한 3-스테이지 바이쿼드래틱 필터인, 엔코딩된 비트스트림 처리 방법.
  56. 제 53항 또는 제 54 항에 있어서, 상기 하나 이상의 채널들 중 하나는 LFE 채널이고, 상기 복수-스테이지 필터는 상기 LFE 채널 상에서 저역 통과 필터링을 수행하기 위한 4-스테이지 바이쿼드래틱 필터인, 엔코딩된 비트스트림 처리 방법.
KR1020147030205A 2012-05-10 2013-04-17 복수-스테이지 iir 필터 및 이를 사용한 데이터의 병렬화된 필터링 KR101707127B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261645291P 2012-05-10 2012-05-10
US61/645,291 2012-05-10
PCT/US2013/036932 WO2013169450A1 (en) 2012-05-10 2013-04-17 Multistage iir filter and parallelized filtering of data with same

Publications (2)

Publication Number Publication Date
KR20140139601A true KR20140139601A (ko) 2014-12-05
KR101707127B1 KR101707127B1 (ko) 2017-02-15

Family

ID=48430922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147030205A KR101707127B1 (ko) 2012-05-10 2013-04-17 복수-스테이지 iir 필터 및 이를 사용한 데이터의 병렬화된 필터링

Country Status (22)

Country Link
US (3) US20160254006A1 (ko)
EP (1) EP2847860B1 (ko)
JP (1) JP5866062B2 (ko)
KR (1) KR101707127B1 (ko)
CN (1) CN104272593B (ko)
AU (1) AU2013260023B2 (ko)
BR (1) BR112014027685B1 (ko)
CA (1) CA2872262C (ko)
DK (1) DK2847860T3 (ko)
ES (1) ES2862999T3 (ko)
HK (1) HK1208568A1 (ko)
HU (1) HUE053514T2 (ko)
IL (1) IL235271B (ko)
IN (1) IN2014DN09176A (ko)
MX (1) MX338857B (ko)
MY (1) MY167846A (ko)
PL (1) PL2847860T3 (ko)
RU (1) RU2599970C2 (ko)
SG (1) SG11201407338SA (ko)
TW (1) TWI538000B (ko)
UA (1) UA112001C2 (ko)
WO (1) WO2013169450A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
SG11201908276SA (en) * 2017-03-09 2019-10-30 Avnera Corp Real-time acoustic processor
RU2716902C1 (ru) * 2019-07-22 2020-03-17 Федеральное государственное бюджетное образовательное учреждение высшего образования "Омский государственный технический университет" (ОмГТУ) Многокаскадный биквадратный фильтр
US11388670B2 (en) * 2019-09-16 2022-07-12 TriSpace Technologies (OPC) Pvt. Ltd. System and method for optimizing power consumption in voice communications in mobile devices
US11165414B2 (en) 2019-12-20 2021-11-02 Infineon Technologies Ag Reconfigurable filter network with shortened settling time
CN113258902B (zh) * 2021-04-29 2022-02-22 睿思芯科(深圳)技术有限公司 一种处理器、滤波方法及相关设备
CN113741972B (zh) * 2021-08-20 2023-08-25 深圳市风云实业有限公司 一种sm3算法的并行处理方法及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050007574A (ko) * 2002-05-30 2005-01-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 코딩

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63222510A (ja) * 1987-03-12 1988-09-16 Oki Electric Ind Co Ltd 多重信号処理装置
EP0520068B1 (en) 1991-01-08 1996-05-15 Dolby Laboratories Licensing Corporation Encoder/decoder for multidimensional sound fields
US5632005A (en) 1991-01-08 1997-05-20 Ray Milton Dolby Encoder/decoder for multidimensional sound fields
US5727119A (en) 1995-03-27 1998-03-10 Dolby Laboratories Licensing Corporation Method and apparatus for efficient implementation of single-sideband filter banks providing accurate measures of spectral magnitude and phase
US6175849B1 (en) * 1998-02-10 2001-01-16 Lucent Technologies, Inc. System for digital filtering in a fixed number of clock cycles
US7933341B2 (en) 2000-02-28 2011-04-26 Broadcom Corporation System and method for high speed communications using digital signal processing
US20020049799A1 (en) 2000-10-24 2002-04-25 Minsheng Wang Parallel implementation for digital infinite impulse response filter
US6836839B2 (en) * 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7290021B2 (en) 2001-04-24 2007-10-30 California Institute Of Technology Method and apparatus for parallel signal processing
CA2389969A1 (en) 2002-06-25 2003-12-25 John W. Bogdan Digital signal processing of multi-sampled phase
US7152084B2 (en) 2002-11-08 2006-12-19 Socovar, S.E.C. Parallelized infinite impulse response (IIR) and integrator filters
US6873280B2 (en) 2003-06-12 2005-03-29 Northrop Grumman Corporation Conversion employing delta-sigma modulation
US7159002B2 (en) * 2003-08-29 2007-01-02 Texas Instruments Incorporated Biquad digital filter operating at maximum efficiency
US7411444B2 (en) 2003-11-13 2008-08-12 Texas Instruments Incorporated Technique for improving antialiasing and adjacent channel interference filtering using cascaded passive IIR filter stages combined with direct sampling and mixing
US7747666B2 (en) 2004-08-09 2010-06-29 L-3 Communications Corporation Parallel filter realization for wideband programmable digital radios
US7421050B2 (en) 2004-10-14 2008-09-02 Agere Systems Inc. Parallel sampled multi-stage decimated digital loop filter for clock/data recovery
US7319580B2 (en) 2005-03-29 2008-01-15 Intel Corporation Collapsing zipper varactor with inter-digit actuation electrodes for tunable filters
US20110113082A1 (en) * 2007-02-07 2011-05-12 Amirhossein Alimohammad Signal filtering and filter design techniques
JP5059508B2 (ja) * 2007-07-26 2012-10-24 ルネサスエレクトロニクス株式会社 マイクロプロセッサ
TW200919521A (en) 2007-10-16 2009-05-01 Inpaq Technology Co Ltd Chip-type feedthrough filter with over-voltage protection function
TWI538394B (zh) 2009-04-10 2016-06-11 杜比實驗室特許公司 利用順逆向濾波方式獲取所欲非零相移之技術
JP5540211B2 (ja) * 2010-04-06 2014-07-02 株式会社コルグ 1ビットオーディオ信号用イコライズ装置
RU2436228C1 (ru) * 2010-04-21 2011-12-10 Андрей Александрович Костоглотов Цифровой интеллектуальный многокаскадный фильтр

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050007574A (ko) * 2002-05-30 2005-01-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 오디오 코딩

Also Published As

Publication number Publication date
TW201411673A (zh) 2014-03-16
EP2847860A1 (en) 2015-03-18
SG11201407338SA (en) 2014-12-30
US20140046673A1 (en) 2014-02-13
EP2847860B1 (en) 2021-03-03
MX2014013481A (es) 2015-05-07
IL235271B (en) 2019-12-31
KR101707127B1 (ko) 2017-02-15
JP5866062B2 (ja) 2016-02-17
CN104272593B (zh) 2017-02-08
US20160254006A1 (en) 2016-09-01
US20150310872A1 (en) 2015-10-29
UA112001C2 (uk) 2016-07-11
US9076449B2 (en) 2015-07-07
CA2872262C (en) 2017-01-03
US9324335B2 (en) 2016-04-26
AU2013260023A1 (en) 2014-10-30
CA2872262A1 (en) 2013-11-14
PL2847860T3 (pl) 2021-07-05
AU2013260023B2 (en) 2015-11-05
RU2599970C2 (ru) 2016-10-20
HK1208568A1 (en) 2016-03-04
MY167846A (en) 2018-09-26
BR112014027685A2 (pt) 2017-06-27
ES2862999T3 (es) 2021-10-08
CN104272593A (zh) 2015-01-07
JP2015520974A (ja) 2015-07-23
IN2014DN09176A (ko) 2015-07-10
RU2014144746A (ru) 2016-06-10
MX338857B (es) 2016-05-03
DK2847860T3 (da) 2021-03-29
HUE053514T2 (hu) 2021-07-28
TWI538000B (zh) 2016-06-11
BR112014027685B1 (pt) 2021-10-05
IL235271A0 (en) 2014-12-31
WO2013169450A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
KR101707127B1 (ko) 복수-스테이지 iir 필터 및 이를 사용한 데이터의 병렬화된 필터링
JP7138140B2 (ja) パラメトリック・マルチチャネル・エンコードのための方法
US8738385B2 (en) Pitch-based pre-filtering and post-filtering for compression of audio signals
US8731951B2 (en) Variable order short-term predictor
EP2676263B1 (en) Method for configuring filters
KR100778349B1 (ko) 이산값의 시퀀스를 갖는 신호 처리 장치 및 방법
RU2323469C2 (ru) Устройство и способ для обработки, по меньшей мере, двух входных значений
US20130019029A1 (en) Lossless compression of a predictive data stream having mixed data types
KR20080032639A (ko) 오버샘플링된 필터 뱅크의 동작을 최적화하는 방법 및오버샘플링된 이산 푸리에 변환 필터 뱅크를 포함하는 장치
WO2014096236A2 (en) Signal adaptive fir/iir predictors for minimizing entropy
US20070027695A1 (en) Computing circuits and method for running an MPEG-2 AAC or MPEG-4 AAC audio decoding algorithm on programmable processors
US11581000B2 (en) Apparatus and method for encoding/decoding audio signal using information of previous frame
Bang et al. Design optimization of MPEG-2 AAC decoder
JP6629256B2 (ja) 符号化装置、方法及びプログラム
WO2023118138A1 (en) Ivas spar filter bank in qmf domain
WO2023198862A1 (en) Time-domain gain modeling in the qmf domain
Hourani et al. An efficient VLSI implementation for the 1D convolutional discrete wavelet transform
JP2005128401A5 (ko)
CA2718865A1 (en) Rate-distortion optimization for advanced audio coding
Dolecek Digital Filters

Legal Events

Date Code Title Description
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