KR100710013B1 - 효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및방법 - Google Patents

효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및방법 Download PDF

Info

Publication number
KR100710013B1
KR100710013B1 KR1020007011324A KR20007011324A KR100710013B1 KR 100710013 B1 KR100710013 B1 KR 100710013B1 KR 1020007011324 A KR1020007011324 A KR 1020007011324A KR 20007011324 A KR20007011324 A KR 20007011324A KR 100710013 B1 KR100710013 B1 KR 100710013B1
Authority
KR
South Korea
Prior art keywords
delete delete
sequence
mdct
fourier transform
input data
Prior art date
Application number
KR1020007011324A
Other languages
English (en)
Other versions
KR20010042633A (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 KR20010042633A publication Critical patent/KR20010042633A/ko
Application granted granted Critical
Publication of KR100710013B1 publication Critical patent/KR100710013B1/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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • 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/02Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/0212Speech 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 spectral analysis, e.g. transform vocoders or subband vocoders using orthogonal transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Radio Relay Systems (AREA)
  • Complex Calculations (AREA)
  • Tires In General (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 디지털 오디오의 시간 도메인 에일리어싱 소거(TDAC) 인식 인코딩 압축을 지원하여 변형 이산 코사인 변환(MDCT)을 수행하기 위한 효율적인 시스템 및 방법을 포함한다. 일 실시예에서, AC-3 인코더는 MDCT를 통해 요구되는 시간 도메인을 주파수 도메인으로 변환하는 작업을 수행한다. 이 AC-3 규격은 MDCT를 계산하기 위한 최적화되지 않은 계산식을 제시한다. 본 발명의 일 실시예에서, AC-3 계산식에서와 같이 상기 계산을 직접 실행한 것과 같은 결과 값을 산출하지만 실질적으로 더 낮은 계산 자원을 요구하는 MDCT 변환기(230)가 이용된다. TDAC 구성(scheme)은 장 블록 및 단 블록이라고 하는 서로 다른 블록 크기에 대한 MDCT 계산을 요구하기 때문에, 본 발명의 일 실시예는, 장 블록 변환과 단 블록 변환 모두 계산 효율적인 FFT를 이용하여 계산될 수 있도록 하기 위하여 데이터 샘플들을 준비하고 배치하는 복소값의 사전 곱셈 단계와 복소값의 사후 곱셈 단계를 이용한다. 사전 곱셈 단계와 사후 곱셈 단계는 MDCT의 직접 계산으로 성취되는 것과 같은 값의 결과를 제공하는 방식으로 FFT를 이용하여 작용하도록 주의 깊게 구성된다.

Description

효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및 방법{SYSTEM AND METHOD FOR EFFICIENT TIME-DOMAIN ALIASING CANCELLATION}
본 발명은 일반적으로 디지털 오디오 처리의 개선에 관한 것이고, 구체적으로는 디지털 오디오 인코딩에서 효율적인 시간 도메인 에일리어싱 소거를 구현시키는 시스템 및 방법에 관한 것이다.
현재 디지털 오디오는 디지털 비디오 디스크(DVD) 플레이어, 디지털 위성 시스템(DSS), 그리고 디지털 텔레비전(DTV)에 널리 사용된다. 이들 모든 시스템의 문제점은 저장 용량 또는 대역폭이 제한된다는 것인데, 상기 제한들은 공통적인 문제점의 2가지 양상으로 볼 수 있다. 제한적인 저장 용량을 가진 저장 장치에 더 많은 디지털 오디오를 넣기 위하여, 또는 제한적인 대역폭 채널을 통해 디지털 오디오를 송신하기 위하여, 일부 형태의 디지털 오디오 압축 방법이 요구된다. 일반적으로 사용되는 한가지 형태의 압축 방법은 인식(perceptual) 인코딩 방법으로, 이 인코딩 방법에서 인간 청력에 기초한 모델들은 인간이 감지하지 못하는 사운드에 해당하는 정보를 제거하게 한다.
고화질 텔레비전 시스템 위원회(ATSC)는 디지털 텔레비전(DTV) 시스템(이전에, HDTV로 알려짐)에서 사용하기 위한 인식 인코딩용 돌비 설계{Dolby(등록 상표) Labs design}를 선택했다. 이 설계는 나중에 오디오 압축 방식 3(Audio Compression version3 AC-3) 규격 ATSC A/52(이후부터는 "AC-3 규격"으로 칭함)에서 설명되는데, 이 규격은 본 명세서에서 참고로 병합한다. AC-3 규격은 나중에 제 1 지역(북미 시장) DVD와 DSS 방송용으로 채택됐다.
AC-3 규격은 디지털 오디오용 표준 디코더 설계를 제공하는데, 이 설계는 녹음된 모든 AC-3 인코딩 디지털 오디오를 다른 판매 회사의 장비에서 재생되도록 한다. 이와는 다르게, AC-3 오디오 인코딩 처리 규격은 AC-3 표준의 규범적 요구사항은 아니다. 그럼에도 불구하고, 인코더는 신택스가 표준에 부합하는 비트스트림을 반드시 생성하여야 하며, 상기 비트스트림은 디코딩 될 때 의도된 애플리케이션에서 충분한 품질의 오디오를 생성한다. 그러므로, 많은 인코더 설계 세부 사항들은 표준 디코더 설계로 재생될 최종 인코딩 디지털 오디오 성능에 영향을 끼치지 않은 채 개별 설계자에게 일임될 수 있다. 일반적으로 오디오 데이터를 압축하는데는 시간 도메인보다는 주파수 도메인에서 하는 것이 더 효율적이다. 시간 도메인에서 주파수 도메인으로 전환하는 한가지 방법은 변형 이산 코사인 변환{modified discrete cosine transform(MDCT)}인데, 이 변환은 이산 변수 함수에 작용하는 이산 푸리에 변환의 한 형태이다. MDCT는 시간 도메인 데이터 샘플로 불리는 이산 변수의 입력 데이터 시퀀스를 주파수 도메인 계수(frequency-domain coefficients)로 불리는 이산 변수의 출력 데이터 시퀀스로 변환하는데 종종 사용된다. 시간 도메인 데이터 샘플은 이산적 시간 값에서 인입 오디오 데이터의 측정값을 나타내고, 주파수 도메인 계수는 이산적 주파수 값에서 대응 신호의 크기를 나타낸다.
인코딩 신호가 재생되는 중에 나중에 디코딩될 때 고 충실도(high-fidelity)의 오디오를 얻기 위하여, AC-3 규격은 시간 도메인 에일리어싱 소거(TDAC)라 불리는 방법을 채택했다. TDAC 방법은 나중에 인코딩 오디오 데이터를 재생하기 위해 디코딩 될 때, 원 오디오를 거의 완벽하게 복구할 수 있다. TDAC 방법은 두 개의 프로세스를 포함하는데, 윈도 처리 계수(windowing coefficients)를 곱하여 적절히 선택된 윈도 처리 동작(windowing operation)이 있으며, MDCT가 이에 후속한다.
인식 인코딩 표준에 있어 중요한 설계 결정은 MDCT에서 한번에 변환되는 디지털 샘플의 수이며, 이 수는 MDCT 블록 길이로 불린다. 과도 현상(시간 도메인 샘플 시퀀스의 값이 빠르게 변동하는 현상)이 관측되지 않으면, 블록 스위치 플래그(blksw)는 0으로 설정되고, TDAC를 위해 설계된 AC-3 인코더는 512 샘플의 장 블록 MDCT 계산(long-block MDCT calculation)으로 스위칭 된다. 과도 현상이 관측되면, 블록 스위치 플래그(blksw)는 1로 설정되고, 상기 인코더는 쌍으로된 256 샘플의 단 블록 MDCT 계산(short-block MDCT calculation)의 쌍으로 스위칭한다. 더 긴 블록 길이는 주파수 분해능을 증가시키지만, 시간 분해능은 낮아진다. 더 긴 블록 변환은, 신호가 상대적으로 안정될 때 보통 채택된다. 더 짧은 블록 변환은 사전 반향 효과(pre-echoing effects)를 막기 위하여 신호가 상대적으로 불안정 할 때 채택된다. 그러므로, 단일 MDCT 블록 길이를 선택하기보다는, TDAC용으로 설계된 인코더는 오디오 환경이 필요로 하는 충실도를 최대화하기 위하여 512 샘플 및 256 샘플의 MDCT 블록 길이 사이에서 스위칭한다.
AC-3 규격은 인코더 MDCT의 계산을 위한 기본 계산식을 제공한다. 그러나, 기본 계산식을 사용하여 MDCT를 직접 계산하는 것은 지나친 프로세서 성능(processor power)을 요구하는데, 이것은 실용적이고 비용 효율적인 처리 요소를 갖는 인코더의 구현을 막는다. 그러므로, 서로 다른 블록 길이에 대한 MDCT 계산을 최적화하는 것이 효율적인 AC-3 인코더 설계의 쟁점이다.
본 발명은 디지털 오디오 인코딩의 효율적인 시간 도메인 에일리어싱 소거(TDAC)를 위한 시스템 및 방법을 포함한다. 일 실시예에서, 본 발명은 돌비(등록상표) 디지털 AC-3 포맷으로 디지털 오디오의 효율적인 인식 인코딩 압축을 위한 개선된 변형 이산 코사인 변환(MDCT) 방법을 포함한다. 대안 실시예에서, 개선된 MDCT 방법은 다른 인식 인코딩 포맷에서 사용될 수 있다.
본 발명의 일 실시예는 복소값의 사전 곱셈(complex-valued premultiplication) 단계 및 복소값의 사후 곱셈(complex-valued postmultiplication) 단계를 이용하는데, 이 단계들은 장 블록 변환과 단 블록 변환 모두 효율적으로 수행될 수 있도록 데이터 샘플을 준비하고 배열한다. 사전 곱셈 단계와 사후 곱셈 단계는, MDCT의 직접 계산으로 성취되는 것과 동일한 수치 결과 값을 제공하는 방식으로 이산 푸리에 변환(DFT)을 이용하여 수행되도록 주의 깊게 구성된다. 그러나, 복소값의 사전 곱셈 단계, DFT, 복소값의 사후 곱셈 단계는 모두 MDCT의 직접 계산에서 보다 훨씬 더 적은 계산 단계들을 필요로 한다. 이 같은 방식에서, 본 발명은 감소된 계산 능력을 가진 소비자 지향(consumer-oriented) 디지털 신호 프로세서(DSP)들의 사용을 용이하게 하는데, 이 감소된 계산 능력은 실제 구현 비용을 감소시킨다.
도 1은 본 발명에 따른, 판독/기록 DVD 플레이어의 일 실시예에 대한 블록도.
도 2 는 본 발명에 따른, 도 1의 AC-3 인코더/디코더(CODEC)의 일 실시예에 대한 블록도.
도 3은 본 발명에 따른, 샘플 변환 및 시간 도메인 에일리어싱 소거의 일 실시예에 대한 타이밍 도.
도 4a는 본 발명에 따른, 도 2의 고속 계산 변형 이산 코사인 변환(fast computational MDCT)의 일 실시예에 대한 블록도.
도 4b는 본 발명에 따른, 도 2의 변형 이산 코사인 변환의 대안 실시예에 대한 블록도.
도 5는 본 발명에 따른, 변형 이산 코사인 변환을 수행하기 위한 방법 단계들의 흐름도.
본 발명은 디지털 신호 처리의 개선에 관한 것이다. 이후부터의 설명은 통상 당업자가 본 발명을 제작하여 이용할 수 있도록 제시되며, 특허 출원서와 그 요구사항의 환경에서 제공된다. 본 발명은 오디오 압축 방식 3(AC-3) 포맷의 디지털 오디오 인식 인코딩 환경에 구체적으로 개시되고, 상기 포맷은 인코더/디코더(CODEC) 집적 회로에서 수행된다. 그러나, 본 발명은 시간 도메인 에일리어싱 소거(TDAC)가 시간 도메인에서 주파수 도메인으로 데이터를 변환하는데 사용되는 어느 경우에나 행하여 질 수 있다. 개시된 실시예의 다양한 변경물은 당업자에게 쉽게 명백할 것이고, 본 명세서의 일반적 원리들은 다른 실시예에 적용될 수 있다. 따라서, 본 발명은 예시된 실시예로 제한되도록 의도되지 않고, 본 명세서에서 설명되는 원리와 특징에 부합하는 최대 범위로 허용된다.
일 실시예에서, 본 발명은 디지털 오디오 TDAC 인식 인코딩 압축을 지원하여 변형 이산 코사인 변환(MDCT)을 수행하기 위한 효율적인 시스템 및 방법을 포함한다. 인식 인코딩은, 인간의 귀로 인지되지 않는 사운드에 해당하는 정보를 제거하여 오디오를 압축하도록 실험적으로 정해진 인간 청력 특성을 이용한다. 통상적으로, 시간 도메인 데이터 샘플의 디지털 오디오 입력 데이터 시퀀스는 먼저 이산 푸리에 변환의 일부 형식을 이용하여 주파수 도메인 계수의 출력 데이터 시퀀스로 변환된다. 일 실시예에서, AC-3 인코더는 MDCT를 통해 이 변환을 수행한다.
AC-3 규격은 MDCT 계산을 위한 계산식을 제시하지만, 이 계산식에 규정된 이 계산을 직접 실행하는데는 과도한 처리 능력이 요구된다. 본 발명의 일 실시예에서, AC-3 계산식으로 상기 계산을 직접 실행할 때와 같은 동일한 결과를 산출하는 MDCT 변환기가 이용된다. 이 MDCT 변환기는 3 단계의 프로세스로 계산을 수행하는데, 이 3 단계는 복소값의 사전 곱셈 단계, 복소값의 고속 푸리에 변환(FFT) 단계, 복소값의 사후 곱셈 단계이다. 복소값의 사전 곱셈 단계는 매우 효율적인 복소값 FFT의 입력 요구 사항과 부합되도록 인입 디지털 오디오 샘플을 배열한다. FFT를 수행한 후에, 복소값의 사후 곱셈단계는, 실수부와 허수부가 분리될 때 AC-3 규격 계산식을 사용하여 직접 계산한 결과와 정확히 일치하게 하도록 FFT의 출력을 변환한다.
이제 도 1을 참고하면, 본 발명에 따른, 판독/기록 DVD 플레이어(100)의 일 실시예에 대한 블록도가 도시되어 있다. 일 실시예에서, 판독/기록 DVD 플레이어(100)는 DVD(102), 헤드 암(head-arm) 어셈블리(104), 드라이브 제어 전자장치(106), 멀티플렉서/디멀티플렉서(108), 동영상 전문가 그룹(MPEG) 비디오 CODEC(110), AC-3 오디오 CODEC(120), 제어 프로세서(130), 운영자 제어 및 디스플레이부(132)를 포함한다. 일 실시예에서, DVD(102)는 오디오 및 비디오 정보의 디지털 표현을 포함하는 광 디스크 플래터이다. DVD(102)는 DVD 플레이어(100)에서 회전하고, DVD(102)의 오디오 및 비디오 데이터는 드라이브 제어 전자 장치(106)의 제어로 헤드 암 어셈블리(104)에 의해 판독된다. 드라이브 제어 전자 장치(106)는 헤드 암 어셈블리(104)에 의해 읽혀진 정보로부터 조합된 오디오 및 비디오 디지털 비트스트림을 추출하고 이 조합된 디지털 비트스트림을 멀티플렉서/디멀티플렉서(108)에 전송한다.
멀티플렉서/디멀티플렉서(108)는 신호 라인(114)에 들어가는 조합된 디지털 비트스트림에서 오디오 및 비디오 비트스트림을 분리한다. 바람직하게 MPEG-2 포맷의 비디오 비트스트림이 MPEG 비디오 CODEC(110)에 의해 처리되도록 전송된다. DVD에서 비디오가 디코딩 될 때, 아날로그 포맷으로 바뀌고, 외부 비디오 모니터에 디스플레이하기 위해 전송된다. 외부 소스로부터의 비디오 입력은 MPEG 비디오 CODEC(110)에 의해 인코딩되고, DVD(102)에 기록되도록 멀티플렉서/디멀티플렉서(108)를 통해 전송된다.
본 발명의 일 실시예에서, 멀티플렉서/디멀티플렉서(108)에 들어가는 신호 라인(114)의 조합된 디지털 비트스트림에서 인코딩된 오디오 데이터용 포맷은 AC-3 오디오 데이터이다. 신호 라인(114)상의 DVD(102)로 가고 또한 DVD(102)로부터 오는 오디오 데이터는 바람직하게 6개의 뚜렷한 오디오 채널을 갖는 AC-3 오디오 데이터를 포함하는데, 상기 채널은 5개의 전(full) 대역폭(fbw) 채널과 1개의 저 주파수 효과(low frequency effects)(lfe) 채널이다.
DVD(102)가 재생되고 있을 때, AC-3 CODEC(120)은 멀티플렉서/디멀티플렉서(108)로부터 AC-3 오디오 데이터를 수신하고, 선형 펄스 코드 변조(LPCM)된 오디오 데이터를 생성하기 위하여 상기 데이터를 디코딩한다. 그리고 나서 LPCM 데이터는 증폭기와 확성기를 구비한 오디오 시스템을 통해 재생하기 위하여 아날로그 신호로 변환될 수 있다.
DVD(102)가 기록되고 있을 때, AC-3 CODEC(120)은 인입 LPCM 데이터를 수신하고, AC-3 포맷으로 상기 데이터를 인코딩한다. 이 인코딩 프로세스는 다음 도 2의 설명에서 자세히 설명된다.
이제 도 2를 참고하면, 본 발명에 따른, 도 1 의 AC-3 CODEC(120)의 일 실시예에 대한 블록도가 도시된다. 일 실시예에서, AC-3 CODEC(120)은 AC-3 디코더(200)와 AC-3 인코더(218)를 포함한다.
AC-3 디코더(200)의 자세한 설계는 참고로 본 명세서에서 병합된 AC-3 규격에 자세히 개시된다. 간단히, 도 2 의 실시예에서, 인입 멀티 채널 AC-3 비트스트림은 완전한 프레임의 비트스트림 데이터를 한번에 버퍼링(buffers the bitstream data an entire frame)시키는 디멀티플렉서(202)에 들어가는데, 여기서 각 프레임은 최대 6개의 디지털 오디오 이산 채널에 대하여 채널 당 256개의 주파수 도메인 계수의 압축 표현을 포함할 수 있다. 디멀티플렉서(202)는 압축된 주파수 도메인 계수(오디오 데이터)를 압축 제어 데이터와 분리시킨다. 비트 할당기(212)는 압축 주파수 도메인 계수의 압축을 푸는 방법을 결정하기 위하여 압축 제어 데이터를 사용한다. 이 압축 풀기 방법은 역 양자화기(204)에 의해 수행되는데, 이 역 양자화기는 압축되지 않은 주파수 도메인 계수를 역 변형 이산 코사인 변환(MDCT) 변환기(206)로 전송한다. 역 MDCT 변환기(206)와 윈도 및 오버랩 애드(window & overlap add)(208)는 함께 주파수 도메인 계수를 시간 도메인 샘플로 바꾼다. 그 다음에, 시간 도메인 샘플은 출력 버퍼(210)에 의해 송신되기 위해 정렬된다.
AC-3 인코더(218)는 AC-3 규격에서 자세히 설명되지 않는다. 일반 설명과 알고리즘은, 출력 AC-3 비트스트림이 표준 AC-3 디코더(200)에 의해 신뢰할 수 있도록 디코딩 될 것을 보장하는 것이 필요할 때만 나타나는 세부사항과 함께 주어진다. 본 발명의 일 실시예에서, AC-3 인코더(218)의 주요 회로 블록은 입력 버퍼(220), 3 Hz 고역 통과 필터(222), 블록 크기 제어기(224), 윈도우어(windower)(228), MDCT 변환기(230), 서브밴드 블록 부동 소수점(FP) 컨버터(236), 양자화기(238), 비트 할당기(240), 멀티플렉서(242)를 포함한다.
입력 버퍼(220)는 인입 LPCM 디지털 오디오 데이터 블록을 저장하고, 3 Hz 고역 통과 필터(222)는 차단 주파수(3Hz)로 데이터를 필터링한다. 블록 크기 제어기(224)는, 윈도우어(228)와 MDCT 변환기(230)에서 수행되는 시간 도메인 에일리어싱 소거(TDAC)를 지원하기 위하여 과도 용량(transient content)(시간 도메인 샘플 시퀀스의 값의 빠르게 변동하는 크기)을 결정한다. 충분한 과도 용량이 결정될 때, 블록 크기 제어기(224)는 블록 스위치 플래그(blksw)를 1로 설정하고, 그것에 의해 개개의 장 블록보다는 한 쌍의 단 블록들을 변환하도록 MDCT 변환기(230)에 명령한다.
디지털 샘플은 입력 버퍼(220)에 의해 3 Hz 고역 통과 필터(222)와 윈도우어(228)를 통과하여 전송된다. 윈도우어(228)는 변환 경계 효과(transform boundary effects)를 감소시키고 주파수 선택성을 개선시키기 위하여, (AC-3 규격에 주어진) 필더 윈도(Fielder's window)에 인입 디지털 샘플 블록을 곱한다. 윈도우어(228)에서 윈도 처리(windowing)를 한 후에, 디지털 샘플은 MDCT 변환기(230)에서 시간 도메인이 주파수 도메인으로 변환할 준비가 된다.
AC-3 규격은 필요한 MDCT에 대한 다음과 같은 수학적 설명을 제공한다.
장 블록 변환을 위한 계산식 1A
Figure 112000021384620-pct00001
여기서 0≤k < N 이다.
단 블록 변환을 위한 계산식 1B
Figure 112000021384620-pct00002
여기서 0≤k < N/2 이고, 제1 단 블록 변환에서 α= -1, 제2 단 블록 변환에서 α= +1 이다.
계산식 1A와 계산식 1B의 변환은 윈도 처리된 시간 도메인 샘플 x[n]을 주파수 도메인 계수 XD[k]로 전환한다. 계산식 1A와 계산식 1B의 변환에서, N은 장 블록 변환과 단 블록 변환 모두에서 256 값을 갖는다. 주목되는 사항으로, 주파수 도메인 계수의 개수는 시간 도메인 샘플 수의 절반으로 존재한다는 것이다.
계산식 1A 또는 계산식 1B에서 지시된 모든 연산을 수행하여 시퀀스 XD[k]를 직접 계산하는 것은 가능하지만 매우 비효율적이다. 계산식 1A 또는 계산식 1B의 이와 같은 직접 계산은 O(N2)로 쓰여지는 차수(N2)의 계산 복잡도를 갖는다. 본 발명의 일 실시예에서, 중간 시퀀스 Z[p]와 z[q]이 계산된다. 이 같은 방식에서, 시퀀스 XD[k]의 전체 계산은 계산 복잡도에서 O(Nlog2N)으로 감소된다. 복소값의 사전 곱셈 단계는 x[n]에서 Z[p]로의 변환을 수행한다. 고속 푸리에 변환(FFT)으로서 실행될 수 있는 DFT는 Z[p]를 z[q]로 전환한다. 마지막으로, 복소값의 사후 곱셈 단계는 z[q]를 XD[k]로 전환한다. 이 세 단계의 세부 사항은 다음 도 4의 논의에서 다뤄진다.
MDCT 변환기(230)가 시간 도메인 샘플을 주파수 도메인 계수로 변환 완료한 후에, 서브 밴드 블록 부동 소수점(FP) 컨버터(236)는 주파수 도메인 계수를 부동 소수점 표현으로 전환한다. 이 부동 소수점 표현은 지수와 가수(mantissas)를 포함한다. 서브 밴드 블록 FP 컨버터(236)는 지수를 비트 할당기(240)로 전송하고, 비트 할당기(240)로부터의 출력에 기초하여 양자화 되도록 양자화기(238)에 가수를 전송한다. 비트 할당기(240)와 양자화기(238)는 마스킹 함수(masking function)를 초과하는 이 사운드에만 데이터 비트를 할당함으로써, 그리고 유한한 비트수로 이 데이터를 양자화 함으로써 실제 데이터 압축을 수행한다. 이것은 인간의 청력으로 감지되지 않는 사운드에 데이터 비트를 할당하는 것을 제거한다. 인간의 청력으로 양자화 에러를 인식할 수 없는 최대 레벨로 양자화 하여 압축이 더 향상된다. 일단 주파수 도메인 계수가 압축되면, 이 계수들은 AC-3 프레임에 넣기 위하여 멀티플렉서(242)로 송신된다. 완료된 AC-3 프레임은 멀티플렉서(242)로부터 인코더(218)를 빠져나온다.
이제 도 3을 참고하면, 본 발명에 따른 샘플 변환과 시간 도메인 에일리어싱 소거의 일 실시예에 대한 타이밍도가 도시되어 있다. 일 실시예에서, 6 개의 디지털 오디오 독립 채널은 LPCM 포맷으로 도착한다. 도 3은 설명을 위해 채널 1에 대응하는 디지털 데이터 시퀀스만을 도시한다. 도시된 숫자가 붙은 각 블록은 512개의 디지털 오디오 샘플을 포함한다. 6개의 독립 채널이 있는 일 실시예에서, 도 3의 채널 1 블록에는 다른 채널(도시되지 않음)을 나타내는 블록들이 인터리브된다.
도 3의 예에서, 블록 크기 제어기(224)는 과도 용량이 충분히 큰지를 결정하기 위하여 몇 가지 기준(criteria)을 사용한다. 이 기준들 중 하나로, 블록 크기 제어기(224)는 블록의 후반 절반 부분에서 과도 용량을 테스트한다. 여러 기준 결과가 과도 용량이 충분히 크다고 결정하면, blksw[1]은 1로 설정된다. 도 3의 예에서, 블록 1(310)의 과도 용량은 충분히 크다고 결정되지 않아서 blksw[1]은 0(314)의 값으로 설정된다. 그러므로, MDCT 변환기(230)는 현 블록 1(310)에 대하여 장 변환(304)을 수행한다. 블록 2(324)에서도 비슷한 프로세스가 진행된다.
블록 3(340) 에서, 블록 크기 제어기(224)는 과도 용량이 충분히 크다고 결정하고, 따라서 blksw[1]은 1(330)로 설정된다. 1(330)의 값으로 설정된 blksw[1]을 읽는 즉시, MDCT 변환기(230)는 현 블록 3(340)에 대하여 한 쌍의 단 변환(332, 324)을 실행한다.
이어지는 블록에서, 블록 크기 제어기(224)는 과도 용량에 대하여 버퍼링된 블록 테스트를 계속하고, 이에 따라 blksw[1] 플래그를 설정한다. 이와 같은 방식으로, 변환 블록의 길이는 부적절한 블록 길이가 선택되면 발생하는 사전 반향 효과를 감소시키기 위하여 거의 실시간으로 계속 조절된다.
이제 도 4a를 참고하면, 본 발명에 따른, 도 2의 고속 계산 변형 이산 코사인 변환(MDCT) 변환기(230)의 일 실시예에 대한 블록도가 도시된다. 도 4a의 MDCT 변환기(230)는 디지털 신호 프로세서(DSP) 코어(400), 기록/판독 RAM(410), 프로그램 가능 ROM(PROM)(420)을 포함한다. 일 실시예에서, 3개의 소프트웨어 모듈은 TDAC에 대한 MDCT 변환의 효율적인 실행을 위한 3단계 프로세스를 제어하기 위하여 DSP 코어(400)에 의해 실행된다. 이들 모듈은 사전 곱셈기(430), DFT(440), 사후 곱셈기(450)이다. 도 4a의 실시예에서, 사전 곱셈기(430)는 DFT(440)에 의해 변환될 수 있도록 디지털 오디오 샘플을 곱셈하고 배열한다. DFT(440)가 사전 곱셈기(430)에서 온 데이터를 변환한 후에, 사후 곱셈기(450)는 앞의 계산식(1A, 1B)의 직접 계산으로부터 나오는 데이터와 같은 값을 갖고, 그리고 표준 AC-3 디코더와 호환할 수 있도록 하기 위하여 DFT(440)로부터 온 데이터를 배열한다.
사전 곱셈기(430), DFT(440) 및 사후 곱셈기(450)에서의 기본 단계들의 개요는 아래의 의사 코드(pseudo-code)로 주어진다. 의사 코드는 설명하기 위해 일반적인 프로그래밍 언어로 쓰여진 소스 코드이고, 임의의 특별한 컴파일러로 반드시 번역되도록 의도되지는 않는다. 의사 코드는 설명을 위해 "C" 프로그래밍 언어의 포맷과 정의를 채택했다. 장 블록 변환을 위한 사전 곱셈기(430)의 일 실시예에 대한 의사 코드 실행은 아래의 코드 예(1)와 같이 될 수 있다.
코드 예(1)
for(p=0;p<N/2; p++)
{
Z[p] = ((x[2p] - x[2N -2p -1]) - (x[N + 2p] + x[N -1 - 2p])- j(x[2p] + x[2N - 1 - 2p] + (x[N + 2p] - x[N - 1 - 2p])) * (cos(2π/(16N) * (8p +1)) - jsin(2π/(16N) * (8p + 1 )));
}
여기서, p는 출력 시퀀스 Z[p]의 변수이고, j는 허수 단위이고, N = 256이고, x[n]은 윈도 처리된 입력 샘플이다. 출력 시퀀스Z[p]는 N/2 = 128의 복소값의 요소를 갖는다는 것을 주목한다.
단 블록 변환을 위한 사전 곱셈기(430)의 일 실시예에 대한 의사 코드 실행은 아래의 코드 예(2)와 같이 될 수 있다. 본 발명의 일 실시예에서, 사전 곱셈기(430)는 제 1 단(short) 블록과 제 2 단(short) 블록 모두에 동시에 작용할 수 있는데, 제 1 단 블록에 대응하는 출력 시퀀스 Z1[p]와 제 2 단 블록에 대응하는 출력 시퀀스 Z2[p]를 생성한다.
코드예(2)
for (p=0; p<N/4; p++)
{
Z1[p] = ((x[2p] - x[N - 1 - 2p]) + j(x[N/2 - 1 -2p] - x[N/2 + 2p] - x[N/2 + 2p])) * (cos(2π/(8N) * (8p + 1)) - jsin(2π/(8N)*(8p + 1)));
Z2[p] = (0 - (x[N/2 + 2p + N] + x[N/2-1-2p+N]) - j(x[2p+N] + x[N-1-2p+N])) * (cos(2π/(8N) * (8p+1)) - jsin(2π/(8N) * (8p+1)));
}
여기서 p는 출력 시퀀스Z1[p]와 Z2[p]의 변수이고, j 는 허수 단위이고, N = 256이고, x[n]은 윈도 처리된 입력 샘플이다. 주목할 만한 것으로, 서브 시퀀스 Z1[m]과 Z2[m] 각각은 64(43)개의 요소를 포함하는데, 이는 각 서브 시퀀스가 기수-4 FFT(radix-4 FFT)에 의해 변환되기에 적합하도록 한다는 것이다.
일단 사전 곱셈기(430)가 입력 시퀀스 x[n]을 Z[p]로 바꾸면, Z[p]는 DFT(440)에 의해 변환된다. 장 블록 변환의 경우, DFT(440)는 128개의 Z[p] 요소를 128개의 중간 시퀀스 z[q] 요소로 변환한다. 단 블록 변환의 경우, DFT(440)는 64개의 Z1[p] 요소를 64개의 z1[q] 요소로 변환하고, 64개의 Z2[p] 요소를 64개의 z2[q] 요소로 변환한다.
장 블록 변환을 위한 DFT(440)의 일 실시예에 대한 의사 코드 실행은 아래의 코드 예(3)와 같이 될 수 있다.
코드 예(3)
for (q=0; q<N/2; q++)
{
z[q] = 0;
for(p=0; p<N/2; p++)
{
z[q] += Z[p] * (cos(2πpq/(N/2)) - jsin(2πpq/(N/2)));
}
}
여기서 p는 복소값의 입력 시퀀스 Z[p]의 변수이고, q는 복소값의 출력 시퀀스 z[q]의 변수이고, N = 256이고, j 는 허수 단위이다. z[q] = zr[q] + jzi[q]와 같이 z[q]의 실수부와 허수부를 나타내는 것이 유용할 수 있다.
단 블록 변환에 대한 DFT(440)의 일 실시예의 의사 코드 실행은 다음의 코드예(4)로 주어질 수 있다. 본 발명의 일 실시예에서, DFT(440)는 제 1 단 블록과 제 2 단 블록에 모두 동시에 작용하는데, 제 1 단 블록에 대응하는 출력 시퀀스 z1[q]와 제 2 단 블록에 대응하는 출력 시퀀스 z2[q]를 생성한다.
코드예(4)
for (q=0; q<N/4; q++)
{
z1[q] = z2[q] = 0;
for (p=0; p<N/4; p++)
{
z1[q] += Z1[p] * (cos(2πpq/(N/4)) - jsin(2πpq/(N/4)));
z2[q] += Z2[p] * (cos(2πpq/(N/4)) - jsin(2πpq/(N/4)));
}
}
여기서 p는 복소값의 입력 시퀀스 Z[p]의 변수이고, q는 복소값의 출력 시퀀스 z[q]의 변수이고, N = 256이고, j 는 허수 단위이다.
도 4의 실시예에서, DFT(440)가 일단 입력 시퀀스 Z[p]를 z[q]로 변경했다면, 사후 곱셈기(450)는 z[q] 값에 작용한다. 장 블록 변환의 경우에 있어서, 사후 곱셈기(450)는 128개의 z[q] 요소를 128개의 복소값의 시퀀스 요소 y[k]로 변환한다. 요소 y[k]의 실수부와 허수부는 256개의 실수값의 최종 출력 시퀀스 요소 XD[k]를 산출하기 위하여 분리되고 셔플링된다(shuffled). 단 블록 변환의 경우에 있어서, 사후 곱셈기(450)는 64개의 z1[q] 요소를 64개의 복소값의 시퀀스 요소 y1[k]로 변환하고, 64개의 요소 z2[q]를 64개의 복소값의 시퀀스 요소 y2[k]로 변환한다. y1[k]의 실수부와 허수부는 128개의 실수 값을 갖는 최종 출력 시퀀스 요소 X1D[k]를 산출하기 위하여 분리되고 셔플링되며, y2[k]의 실수부와 허수부도 128개의 실수 값을 갖는 최종 출력 시퀀스 요소 X2D[k]를 산출하기 위하여 분리되고 셔플링 된다.
장 블록 변환을 위한 사후 곱셈기(450) 일 실시예의 의사 코드 실행은 다음의 코드예(5)와 같이 주어질 수 있다.
코드예(5)
for(k=0; k<N/2; k++)
{
y[k] = (-1)^{k}/(
Figure 112005003515407-pct00003
2) * z[k] * (cos(2π/(16N) * (8k + 1)) - jsin(2π/(16N) * (8k +1)));
}
여기서 k는 출력 시퀀스y[k]의 변수이고, N = 256이고, j 는 허수 단위이다.
실수 값을 갖는 최종 출력 시퀀스 XD[k]는 복소값의 시퀀스 y[k]의 실수부와 허수부를 분리하고 셔플링하여 유도되는데, y[k] = yr[k] + jyi[k]이다. k가 짝수 값이면, XD[k] = yr[k/2] 이다. k가 홀수 값이면, XD[k] = yi[N/2 - 1 - (k-1)/2]이다.
단 블록 변환을 위한 사후 곱셈기(450) 일 실시예의 의사 코드 실행은 다음 의 코드예(6)와 같이 주어질 수 있다. 본 발명의 일 실시예에서, 사후 곱셈기(450)는 동시에 제 1 단 블록과 제 2 단 블록 모두에 작용하는데, 제 1 단 블록에 대응하는 출력 시퀀스 X1D[k]와 제 2 단 블록에 대응하는 출력 시퀀스 X2D[k]를 생성한다.
코드 예(6)
for (k=0; k<N/2; k++)
{
y1[k] = z1[k] * (cos(2π/(8N)*(8k+1)) - jsin(2π/(8N) * (8k+1)));
y2[k] = z2[k] * (cos(2π/(8N)*(8k+1)) - jsin(2π/(8N) * (8k+1)));
}
여기서 k는 복소값의 출력 시퀀스 y1[k]과 y2[k]의 변수이고, N = 256이고, j 는 허수 단위이다.
실수값의 최종 출력 시퀀스 X1D[k]는 복소값의 시퀀스 y1[k]의 실수부와 허수부로부터 유도되는데, 여기서 y1[k] = y1r[k] + jy1i[k] 이다. k가 짝수 값이면, X1D[k] = y1r[k/2] 이다. k가 홀수 값이면, X1D[k] = y1i[N/4 - 1 - (k-1)/2]이다. 마찬가지로, 실수값의 최종 출력 시퀀스 X2D[k]는 복소값의 시퀀스 y2[k]의 실수부와 허수부로부터 유도되는데, 여기서 y2[k] = y2r[k] + jy2i[k] 이다. k가 짝수 값이면, X2D[k] = y2r[k/2] 이다. k가 홀수 값이면, X2D[k] = y2i[N/4 - 1 - (k-1)/2] 이다.
도 4의 실시예에서 산출된 실수값의 최종 출력 시퀀스 XD[k]는 앞 부분의 (AC-3 표준의)계산식 1A와 계산식 1B를 이용하여 직접 계산될 수 있는 XD[k]에 대응한다.
이제 도 4b를 참고하면, 본 발명에 따라, 도 2의 MDCT 변환기(230)의 대안 실시예에 대한 블록도가 도시되어 있다. 본 발명에 따른 도 4b의 실시예에서, 코드예(3)와 코드예(4)의 이산 푸리에 변환(DFT)은 고속 푸리에 변환(FFT)으로 대체될 수도 있다. (FFT란 용어는 J.W. 쿨리와 J.W. 투케이에 의해 처음으로 널리 공표된 이산 푸리에 변환을 계산하기 위한 일련의 효율적인 알고리즘을 통틀어 언급한다.) DFT가 FFT로 대체될 때, MDCT 계산의 계산 복잡도는 O(N2)에서 O(Nlog2N)로 줄어든다.
DFT 계산을 위한 효율적인 FFT 알고리즘은 계산을 더 작은 DFT 계산들로 나누어 연산한다. 이렇게 더 작은 계산들로 나누는 것은 모든 FFT 알고리즘의 기초가 되는 기본 원리이다. DFT의 64 포인트(26 또는 43과 같음) 계산에 대하여, 계산은 2 포인트 DFT 계산의 6 단계 또는 4 포인트 DFT 계산의 3 단계로 나누어 질 수 있다. 2 포인트 DFT 계산의 6 단계를 이용하는 계산은 기수-2 FFT 알고리즘이라 불린다. 4 포인트 DFT 계산의 3 단계를 이용하는 계산은 기수-4 FFT 알고리즘이라 불린다. 본 발명에서, 기수-4 FFT 알고리즘은, 기수-2 FFT 알고리즘과 비교했을 때 기수-4 알고리즘의 계산 복잡도가 더 낮기 때문에 선호된다. 일반적으로, 기수 값이 커질수록 FFT에서 더 큰 대칭 효과가 얻어진다(exploited). 기수-4 FFT는 대칭 효과와 더 적은 수의 계산 단계로 인해 기수-2 FFT 보다 더 효율적이다.
본 발명의 도 4b의 실시예에 있어서, DFT(440)는 FFT(460)로 대체될 수 있다. TDAC에 대해, 변환 블록 길이는 장 변환에 있어서는 512(29)이거나, 단 변환에 있어서는 256(28 = 44)이라는 것을 상기한다. 본 발명의 도 4b의 실시예에 있어, 사전 곱셈기(430)는 인입 디지털 오디오 샘플 x[n]에 작용해서 이 샘플들을 새 시퀀스 Z[p]로 변환한다. 이 시퀀스 Z[p]는 장 블록 변환에 대하여 128개의 샘플을 포함한다. 128 = 2 ×43 이기 때문에, 이 시퀀스 Z[p]는 한 쌍의 기수-4 변환에 연속되는(cascaded) 기수-2 변환에 의해 변환될 수 있다. 단 블록 변환을 위한 한 쌍의 시퀀스 Z1[p]와 Z2[p] 각각은 64 샘플을 포함한다. 64 = 43이므로, 더 효율적인 기수-4 FFT가 단 블록 변환에서 이 시퀀스 Z1[p]와 Z2[p]에 대해 수행될 수도 있다.
장 블록 변환을 위한 FFT(460)의 일 실시예의 의사 코드 실행은 다음의 코드 예(7)와 같이 주어질 수 있다. 주목할 만한 것은, 코드 예(7)의 함수 FFT_radix4_128는 함수 FFT_radix4_64를 두 번 호출(call)하여 한 쌍의 기수-4 FFT에 연속된 기수-2 FFT를 이용한다는 것이다. 함수 FFT_radix4_64의 예시적인 실행은 아래의 코드 예(8)에 주어진다.
코드예(7)
/** 128 point FFT **/
void FF7_radix4_128()
{
long x[2], y[2];
long X[2], Y[2];
adr0 = 0;
adr2 = 64;
/** radix 2 transform **/
for(j =0; j<2; j++)
{
for(i = 0; i<32; i++)
{
x[0] = R[adr0]; y[0] = I[adr0];
x[1] = R[adr2]; y[1] = I[adr2];
Wx = cos(2* π*i*j/128);
Wy = sin(2* π*i*j/128);
X[0] = (R[adr0] + R[adr2])/2;
Y[0] = (I[adr0] + I[adr2])/2;
X[1] = (R[adr0] - R[adr2])/2 * Wx-(Y[adr0] - Y[adrl])/2 * Wy;
Y[1] = (R[adr0] - R[adr2])/2 * Wy+(Y[adr0] - Y[adrl])/2 * Wx;
R[adr0] = X[0];
I[adr0] = Y[0];
R[adr2] = X[1];
I[adr2] = Y[l];
adr0++;
adr2++;
}
}
/** a pair of 64-point FFT **/
FFT_radix4_64(0, 16, 0);
FFT_radix4_64(64, 16, 0);
}
여기서 R[i] = Z[i]의 실수부,
I[i] = Z[i]의 허수부,
i= 0, 1‥‥ N/2-1 이다.
단 블록 변환을 위한 FFT(460)의 일 실시예의 의사 코드 실행은 다음의 코드 예(8)와 같이 주어질 수 있다. 코드 예(8)의 실시예에 있어서, 함수 FFT_radix4_64의 독립 변수는 입력 데이터를 포함하는 어레이에 대한 방향(directions to arrays)이다.
코드 예(8)
/** 64-point FFT**/
void FFT_radix4_64(short adr0_par, short off0_par, short adr3_par)
{
long x[4], y[4];
long X[4], Y[4];
/** interface **/
adr0 = adr0_par; /* adr0 = 0 or 64 */
off0 = off0_par; /* off0 = 16 */
mod1 = 1;
for(k= 0; k<3; k++) /* stage loop */
{
offl = off0 * 2;
for(j = 0; j < modl; j++) /* group loop: 1, 4, 16 */
{
for(i = 0; i < off0; i++) /* butterfly loop */
{
x[0] = R[adr0+off0*0]; y[0] = I[adr0+off0*0];
x[1] = R[adr0+off0*1]; y[1] = I[adr0+off0*1];
x[2] = R[adr0+off0*2]; y[2] = I[adr0+off0*2];
x[3] = R[adr0+off0*3]; y[3] = I[adr0+off0*3];
fft4(&x, &y, &X, &Y); /* Radix-4 butterfly **/
R[adr0+off0*0] = X[0]; I[adr0+off0*0] = Y[0];
R[adr0+off0*1] = X[1]; I[adr0+off0*1] = Y[1];
R[adr0+off0*2] = X[2]; I[adr0+off0*2] = Y[2];
R[adr0+off0*3] = X[3]; I[adr0+off0*3] = Y[3];
adr0 += 1;
}
afr0 += off1;
adr0 += off0 ;
}
if(k<2)
{
for(m=0; m<modl; m++) /*modl: 1 4*/
{
for(n=0; n<off0; n++) /* off0: 16 4 */
{
for(i=0; i<4; i++)
{
(R[adr1 +i*off0+n] + j*I[adr1 + i*off0+n]) =
(R[adr1+i*off0+n]+ j*I[adr1+i*off0+n])*(cos(2* π*(i*n)/64)+
j sin(2* π*(i*n/64));
}
}
adr1 += mod1*off0;
}
}
mod1 = mod1*4;
off0 = off0 / 4;
}
}
/** radix-4 butterfly **/
void fft4(long*x, long*y, long*X, long*Y)
{
/**real part**/
*X = (*x + *(x+1) + *(x+2) + *(x+3))/4;
*(X+l) = (*x + *(y+1) - *(x+2) - *(y+3))/4;
*(X+2) = (*x - *(x+1) + *(x+2) - *(x+3))/4;
*(X+3) = (*x - *(y+1) - *(x+2) + *(y+3))/4;
/** imag part **/
*Y = (*y+ *(y+1) + *(y+2) + *(y+3))/4;
*(Y+1) = (*y - *(x+1) - *(y+2) + *(x+3))/4;
*(Y+2) = (*y - *(y+1) + *(y+2) - *(y+3))/4;
*(Y+3) = (*y + *(x+1) - *(y+2) - *(x+3))/4;
}
이제 도 5를 참고하면, 본 발명에 따라, 변형 이산 코사인 변환을 수행하기 위한 방법 단계들의 흐름도가 도시되어 있다. 도 5의 방법에서, 윈도우어(228)는 윈도 처리된 디지털 오디오 샘플 블록을 오디오 채널(ch)에서 MDCT 변환기(230)로 주기적으로 전송한다. 블록 크기 제어기(224)는 오디오 채널(ch)을 위한 blksw[ch] 플래그 내에 포함된 값을 결정한다. 채널(ch)로부터 온 디지털 오디오 샘플의 초기 블록이 윈도우어(228)에서 MDCT 변환기(230)로 전송될 준비가 될 때, 현재의 프로세서는 단계(500)에서 시작한다.
단계(510)에서, MDCT 변환기(230)는 512 개의 디지털 오디오 샘플 블록을 윈도우어(228)로부터 수신한다. 그 다음, MDCT 변환기(230)는 결정 단계(514)에서 즉시 blksw[ch] 플래그에 포함된 값을 점검한다. blksw[ch]의 값이 0이라면, MDCT 변환기(230)는 장 블록 변환을 수행한다. 이 장 블록 변환은 입력 시퀀스 x[n]을 중간 시퀀스 Z[p]로 변환하기 위하여 장 블록 사전 곱셈을 이용하여 단계(518)에서 시작한다. 그 다음, 단계(520)에서, MDCT 변환기(230)는 중간 시퀀스 Z[p]를 중간 시퀀스 z[q]로 변환하기 위하여 DFT를 수행한다. 마지막으로, 단계(524)에서, MDCT 변환기(230)는 중간 시퀀스 z[q]를 출력 시퀀스 XD[k]로 변환하기 위하여 장 블록 사후 곱셈을 수행한다.
MDCT 변환기(230)는 단계(526)에서 최종 출력 시퀀스 XD[k]를 서브 밴드 블록 부동소수점 컨버터(236)로 전송한다. 그 다음, 단계(544)에서 MDCT 변환기(230)는 윈도우어(228)에 다른 디지털 오디오 샘플 블록이 있는지를 결정한다. 대답이 아니오라면, MDCT 변환기(230)는 단계(550)에서 처리를 멈춘다. 이와 반대로 대답이 예이면, MDCT 변환기(230)는 다른 디지털 오디오 샘플 블록을 입력하기 위하여 단계(510)로 되돌아가서 도 5에 있는 처리를 반복한다.
앞서 말한 설명은 결정 단계(514)에서 MDCT 변환기(230)가 blksw[ch] 플래그 내에 포함된 값이 0과 같은 것으로 이미 결정했다고 가정한다. 이와 반대로, blksw[ch] 플래그 값이 1이라면, 단계(514)에서 MDCT 변환기(230)는 한 쌍의 단 블록 변환을 수행한다. 단 블록 변환은 입력 시퀀스 x[n]를 한 쌍의 중간 시퀀스 Z1[p]와 Z2[p]로 변환하는 단 블록 사전 곱셈을 이용하여 단계(530)에서 시작한다. 그 다음으로, 단계(534)에서, MDCT 변환기(230)는 중간 시퀀스 Z1[p]와 Z2[p]를 중간 시퀀스 z1[q]와 z2[q]로 변환하기 위하여 2갈래로 나누어 DFT를 수행한다. 마지막으로 단계(538)에서 MDCT 변환기(230)는 중간 시퀀스 z1[q]와 z2[q]를 출력 시퀀스 X1D[k]와 X2D[k]로 변환하기 위하여 단 블록 사후 곱셈을 수행한다.
단계(540)에서 MDCT 변환기(230)는 최종 출력 시퀀스 X1D[k]와 X2D[k]를 서브밴드 블록 부동 소수점 컨버터(236)에 전송한다. 그 다음 MDCT 변환기(230)는 단계(544)에서 윈도우어(228)에 다른 디지털 오디오 샘플 블록이 있는지를 결정한다. 대답이 아니오이면, MDCT 변환기(230)는 단계(550)에서 처리를 중지한다. 이와 반대로 대답이 예이면, MDCT 변환기(230)는 다른 디지털 오디오 샘플 블록을 입력하기 위하여 단계(510)로 되돌아가고 도 5에 있는 처리를 반복한다.
본 발명은 일 실시예를 참고하여 위에서 설명했다. 다른 실시예들은 본 명세서에 개시된 견지에서 당업자에게 명백해 질 것이다. 예를 들면, 본 발명은 위의 실시예에 설명된 것들 외의 구성과 기술을 이용하여 쉽게 실행될 수 있다. 추가로, 본 발명은 위의 일 실시예에서 설명된 것 외의 시스템과 연관돼서 효과적으로 사용될 수 있다. 그러므로, 개시된 실시예의 이러한 변경물 및 다른 변경물들이 본 발명에 포함되도록 의도되는데, 본 발명은 단지 첨부된 청구항으로만 한정된다.
전술된 바와 같이, 본 발명은 디지털 오디오 인코딩에서 효율적인 시간 도메인 에일리어싱 소거를 구현하는데 이용가능하다.

Claims (40)

  1. 변환 작업(transformation)을 제공하는 방법으로서,
    사전 곱셈기를 이용하여 제 1 중간 시퀀스를 생성하기 위하여 입력 데이터 시퀀스를 사전 곱셈 처리하는 단계로서, 상기 입력 데이터 시퀀스는 입력 데이터 샘플의 장 블록들을 포함하고, 상기 장 블록들은 512개의 상기 입력 데이터 샘플 단위를 포함하고, 상기 제 1 중간 시퀀스는 128개의 사전 곱셈된 데이터 샘플을 포함하며, 상기 사전 곱셈기는 상기 입력 데이터 시퀀스로부터의 상기 제 1 중간 시퀀스를 계산하기 위한 수단을 포함하고, 상기 제 1 중간 시퀀스를 계산하기 위한 상기 수단은, 다음 수식 즉, Z[p] = ((x[2p] - x[2N - 2p -1]) - (x[N + 2p] + x[N - 1 - 2p]) - j(x[2p] + x[2N - 1 - 2p] + (x[N + 2p] - x[N - 1 - 2p])) * (cos( 2π/(16N) *(8p + 1)) - jsin(2π/(16N) *(8p + 1)))을 설정함으로써, 상기 입력 데이터 시퀀스의 요소 x[n]으로부터 상기 제 1 중간 시퀀스의 요소 Z[p]를 계산하는 단계를 포함하며, 위의 수식에서 n은 상기 입력 데이터 시퀀스의 변수이고, p는 상기 제 1 중간 시퀀스의 변수이고, j는 허수 단위이고, N이 256의 값을 갖는, 사전 곱셈 단계와,
    이산 푸리에 변환을 이용하여 제 2 중간 시퀀스를 생성하기 위하여 상기 제 1 중간 시퀀스에 이산 푸리에 변환부의 변환 작업(discrete Fourier transform transformations)을 수행하는 단계와,
    사후 곱셈기를 이용하여 출력 데이터 시퀀스를 생성하기 위하여 상기 제 2 중간 시퀀스를 사후 곱셈 처리하는 단계로서, 상기 출력 데이터 시퀀스는 상기 입력 데이터 시퀀스의 변형 이산 코사인 변환물인, 사후 곱셈 단계
    를 포함하는, 변환 작업을 제공하는 방법.
  2. 제 1 항에 있어서, 상기 이산 푸리에 변환은 수식, ∑z[q] += Z[p] *(cos(2πpq/(N/2)) - jsin(2πpq/(N/2)))에 의해 상기 요소 Z[p]로부터 상기 제 2 중간 시퀀스의 요소 z[q]를 계산하는 단계를 포함하는데, 상기 수식에서 q는 상기 제 2 중간 시퀀스의 변수이고, 상기 p 값의 범위는 0 에서 N/2까지인, 변환 작업을 제공하는 방법.
  3. 제 2 항에 있어서, 상기 이산 푸리에 변환은 고속 푸리에 변환인, 변환 작업을 제공하는 방법.
  4. 제 3 항에 있어서, 상기 고속 푸리에 변환은 한 쌍의 기수-4(radix-4) 고속 푸리에 변환에 연속된 기수-2 고속 푸리에 변환인, 변환 작업을 제공하는 방법.
  5. 변환 작업(transformation)을 제공하는 방법으로서,
    사전 곱셈기를 이용하여 제 1 중간 시퀀스를 생성하기 위하여 입력 데이터 시퀀스를 사전 곱셈 처리하는 단계로서, 상기 입력 데이터 시퀀스는 입력 데이터 샘플의 단 블록들(short-blocks)을 포함하고, 상기 단 블록들은 256개의 상기 입력 데이터 샘플 단위를 포함하며, 상기 제 1 중간 시퀀스는 64 개의 사전 곱셈된 데이터 샘플을 포함하고, 상기 사전 곱셈기는 상기 입력 데이터 시퀀스로부터 상기 제 1 중간 시퀀스를 계산하기 위한 수단을 포함하며, 상기 제 1 중간 시퀀스를 계산하기 위한 상기 수단은, 다음 수식, 즉 Z1[p] = ((x[2p] - x[N - 1 - 2p]) + j(x[N/2 - 1 - 2p] - x[N/2 + 2p] - x[N/2 + 2p])) *(cos(2π/(8N) *(8p + 1)) - jsin(2π/(8N) *(8p + 1)))을 설정함으로써, 상기 입력 데이터 시퀀스의 요소 x[n]으로부터 상기 제 1 중간 시퀀스의 요소 Z1[p]를 계산하는 단계와, 다음 수식, 즉 Z2[p] = (0 - (x[N/2 +2p + N] + x[N/2 - 1 - 2p + N]) - j(x[2p + N] + x[N - 1 - 2p + N])) *(cos(2π/(8N) * (8p + 1)) - jsin(2π/(8N) * (8p + 1)))을 설정함으로써, 상기 요소 x[n]으로부터 상기 제 1 중간 시퀀스의 요소 Z2[p]를 계산하는 단계를 포함하는데, 상기 수식에서 n은 상기 입력 데이터 시퀀스의 변수이고, p는 상기 제 1 중간 시퀀스의 변수이고, j는 허수 단위이고, N이 256의 값을 갖는, 사전 곱셈 단계와,
    이산 푸리에 변환을 이용하여 제 2 중간 시퀀스를 생성하기 위하여 상기 제 1 중간 시퀀스에 이산 푸리에 변환부의 변환 작업(discrete Fourier transform transformations)을 수행하는 단계와,
    사후 곱셈기를 이용하여 출력 데이터 시퀀스를 생성하기 위하여 상기 제 2 중간 시퀀스를 사후 곱셈 처리하는 단계로서, 상기 출력 데이터 시퀀스는 상기 입력 데이터 시퀀스의 변형 이산 코사인 변환물인, 사후 곱셈 단계
    를 포함하는, 변환 작업을 제공하는 방법.
  6. 제 5 항에 있어서, 상기 이산 푸리에 변환은 다음 수식, 즉 z1[q] += Z1[p] * (cos(2πpq/(N/2)) - jsin(2πpq/(N/2)))으로 합하여 상기 요소 Z1[p]로부터 상기 제 2 중간 시퀀스의 요소 z1[q]를 계산하는 단계와, 다음 수식, 즉 ∑z2[q] += Z2[p] * (cos(2πpq/(N/2)) - jsin(2πpq/(N/2)))에 의해 상기 요소 Z2[p]로부터 상기 제 2 중간 시퀀스의 요소 z2[q]를 계산하는 단계를 포함하는데, 상기 수식에서 q는 상기 제 2 중간 시퀀스의 변수이고, 상기 p 값의 범위는 0 에서 N/4까지인, 변환 작업을 제공하는 방법.
  7. 제 6 항에 있어서, 상기 이산 푸리에 변환은 고속 푸리에 변환인, 변환 작업을 제공하는 방법.
  8. 제 7 항에 있어서, 상기 고속 푸리에 변환은 기수-4 고속 푸리에 변환인, 변환 작업을 제공하는 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020007011324A 1999-02-26 2000-02-18 효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및방법 KR100710013B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/259,512 1999-02-26
US09/259,512 US6430529B1 (en) 1999-02-26 1999-02-26 System and method for efficient time-domain aliasing cancellation
US9/259,512 1999-02-26

Publications (2)

Publication Number Publication Date
KR20010042633A KR20010042633A (ko) 2001-05-25
KR100710013B1 true KR100710013B1 (ko) 2007-04-20

Family

ID=22985255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007011324A KR100710013B1 (ko) 1999-02-26 2000-02-18 효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및방법

Country Status (9)

Country Link
US (1) US6430529B1 (ko)
EP (1) EP1074020B1 (ko)
JP (1) JP4031909B2 (ko)
KR (1) KR100710013B1 (ko)
AT (1) ATE313118T1 (ko)
AU (1) AU3236700A (ko)
CA (1) CA2329484A1 (ko)
DE (1) DE60024729T2 (ko)
WO (1) WO2000051108A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735561B1 (en) * 2000-03-29 2004-05-11 At&T Corp. Effective deployment of temporal noise shaping (TNS) filters
US6959222B1 (en) * 2000-04-13 2005-10-25 New Japan Radio Co., Ltd. Accelerator engine for processing functions used in audio algorithms
US6754618B1 (en) * 2000-06-07 2004-06-22 Cirrus Logic, Inc. Fast implementation of MPEG audio coding
US7369989B2 (en) * 2001-06-08 2008-05-06 Stmicroelectronics Asia Pacific Pte, Ltd. Unified filter bank for audio coding
WO2004008806A1 (en) * 2002-07-16 2004-01-22 Koninklijke Philips Electronics N.V. Audio coding
EP1559101A4 (en) * 2002-11-07 2006-01-25 Samsung Electronics Co Ltd METHOD AND APPARATUS FOR MPEG AUDIO CODING
KR100477701B1 (ko) * 2002-11-07 2005-03-18 삼성전자주식회사 Mpeg 오디오 인코딩 방법 및 mpeg 오디오 인코딩장치
US6965859B2 (en) * 2003-02-28 2005-11-15 Xvd Corporation Method and apparatus for audio compression
US7853469B2 (en) * 2003-08-22 2010-12-14 Mastercard International Methods and systems for predicting business behavior from profiling consumer card transactions
US7516064B2 (en) * 2004-02-19 2009-04-07 Dolby Laboratories Licensing Corporation Adaptive hybrid transform for signal analysis and synthesis
US8214200B2 (en) * 2007-03-14 2012-07-03 Xfrm, Inc. Fast MDCT (modified discrete cosine transform) approximation of a windowed sinusoid
EP2186088B1 (en) * 2007-08-27 2017-11-15 Telefonaktiebolaget LM Ericsson (publ) Low-complexity spectral analysis/synthesis using selectable time resolution
US20090180531A1 (en) * 2008-01-07 2009-07-16 Radlive Ltd. codec with plc capabilities
EP2375409A1 (en) * 2010-04-09 2011-10-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Audio encoder, audio decoder and related methods for processing multi-channel audio signals using complex prediction
JP5762620B2 (ja) 2011-03-28 2015-08-12 ドルビー ラボラトリーズ ライセンシング コーポレイション 低周波数エフェクトチャネルのための複雑さが低減された変換
FR2977969A1 (fr) * 2011-07-12 2013-01-18 France Telecom Adaptation de fenetres de ponderation d'analyse ou de synthese pour un codage ou decodage par transformee
IN2015DN04001A (ko) 2012-11-07 2015-10-02 Dolby Int Ab
US10438597B2 (en) 2017-08-31 2019-10-08 Dolby International Ab Decoder-provided time domain aliasing cancellation during lossy/lossless transitions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230038A (en) * 1989-01-27 1993-07-20 Fielder Louis D Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
JPH05230038A (ja) * 1989-09-26 1993-09-07 Takeda Chem Ind Ltd トリアゾール化合物およびその用途
US5845249A (en) * 1996-05-03 1998-12-01 Lsi Logic Corporation Microarchitecture of audio core for an MPEG-2 and AC-3 decoder
JP5845249B2 (ja) * 2010-05-28 2016-01-20 ユニベルシテ ボルドー アン 感光媒体上の蛍光によるデータを書き込み及び読み出す方法及びそれに関連する媒体

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297236A (en) 1989-01-27 1994-03-22 Dolby Laboratories Licensing Corporation Low computational-complexity digital filter bank for encoder, decoder, and encoder/decoder
FR2675969B1 (fr) * 1991-04-24 1994-02-11 France Telecom Procede et dispositif de codage-decodage d'un signal numerique.
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
US5781888A (en) * 1996-01-16 1998-07-14 Lucent Technologies Inc. Perceptual noise shaping in the time domain via LPC prediction in the frequency domain
US5890106A (en) * 1996-03-19 1999-03-30 Dolby Laboratories Licensing Corporation Analysis-/synthesis-filtering system with efficient oddly-stacked singleband filter bank using time-domain aliasing cancellation
TW301103B (en) 1996-09-07 1997-03-21 Nat Science Council The time domain alias cancellation device and its signal processing method
US6304847B1 (en) * 1996-11-20 2001-10-16 Samsung Electronics, Co., Ltd. Method of implementing an inverse modified discrete cosine transform (IMDCT) in a dial-mode audio decoder
US6119080A (en) * 1998-06-17 2000-09-12 Formosoft International Inc. Unified recursive decomposition architecture for cosine modulated filter banks
US6119038A (en) * 1998-11-20 2000-09-12 Proventure, Llc Handheld skin treatment system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230038A (en) * 1989-01-27 1993-07-20 Fielder Louis D Low bit rate transform coder, decoder, and encoder/decoder for high-quality audio
JPH05230038A (ja) * 1989-09-26 1993-09-07 Takeda Chem Ind Ltd トリアゾール化合物およびその用途
US5845249A (en) * 1996-05-03 1998-12-01 Lsi Logic Corporation Microarchitecture of audio core for an MPEG-2 and AC-3 decoder
JP5845249B2 (ja) * 2010-05-28 2016-01-20 ユニベルシテ ボルドー アン 感光媒体上の蛍光によるデータを書き込み及び読み出す方法及びそれに関連する媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
05230038 *
05845249 *

Also Published As

Publication number Publication date
US6430529B1 (en) 2002-08-06
JP2002538644A (ja) 2002-11-12
WO2000051108A1 (en) 2000-08-31
JP4031909B2 (ja) 2008-01-09
DE60024729T2 (de) 2006-08-17
DE60024729D1 (de) 2006-01-19
CA2329484A1 (en) 2000-08-31
ATE313118T1 (de) 2005-12-15
KR20010042633A (ko) 2001-05-25
AU3236700A (en) 2000-09-14
EP1074020A1 (en) 2001-02-07
EP1074020B1 (en) 2005-12-14

Similar Documents

Publication Publication Date Title
KR100710013B1 (ko) 효율적인 시간 도메인 에일리어싱 소거를 위한 시스템 및방법
RU2422987C2 (ru) Канальное кодирование на основе комплексного преобразования с частотным кодированием с расширенной полосой
US6356639B1 (en) Audio decoding apparatus, signal processing device, sound image localization device, sound image control method, audio signal processing device, and audio signal high-rate reproduction method used for audio visual equipment
JP6531649B2 (ja) 符号化装置および方法、復号化装置および方法、並びにプログラム
KR101309672B1 (ko) 부가정보 비트스트림 변환을 포함하는 다양한 채널로 구성된 다객체 오디오 신호의 부호화 및 복호화 장치 및 방법
RU2668060C2 (ru) Способ и устройство для сжатия и распаковки представления на основе амбиофонии высшего порядка
EP1810281B1 (en) Encoding and decoding of audio signals using complex-valued filter banks
US7801735B2 (en) Compressing and decompressing weight factors using temporal prediction for audio data
US8255234B2 (en) Quantization and inverse quantization for audio
EP2750134A1 (en) Encoding device and method, decoding device and method, and program
JP2007526691A (ja) 信号解析及び合成のための適応型混合変換
US6772111B2 (en) Digital audio coding apparatus, method and computer readable medium
US9646615B2 (en) Audio signal encoding employing interchannel and temporal redundancy reduction
JP2007187749A (ja) マルチチャンネル符号化における頭部伝達関数をサポートするための新装置
US20110116551A1 (en) Apparatus and methods for processing compression encoded signals
US6463405B1 (en) Audiophile encoding of digital audio data using 2-bit polarity/magnitude indicator and 8-bit scale factor for each subband
TW202123220A (zh) 使用方向性元資料之多通道音頻編碼及解碼
JP6179122B2 (ja) オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム
US9837085B2 (en) Audio encoding device and audio coding method
JP2012032713A (ja) 復号装置、復号方法、およびプログラム
JP6299202B2 (ja) オーディオ符号化装置、オーディオ符号化方法、オーディオ符号化プログラム及びオーディオ復号装置
JP2011257575A (ja) 音声処理装置、音声処理方法、プログラムおよび記録媒体
JP2000250598A (ja) 音声データ復号化装置、音声データ復号化方法及び記憶媒体
JP2011118215A (ja) 符号化装置、符号化方法、プログラムおよび電子機器

Legal Events

Date Code Title Description
A201 Request for examination
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