KR20170033883A - 절단 분석 또는 합성 윈도우 중첩부를 이용한 오디오 신호 처리를 위한 프로세서, 방법 및 컴퓨터 프로그램 - Google Patents
절단 분석 또는 합성 윈도우 중첩부를 이용한 오디오 신호 처리를 위한 프로세서, 방법 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR20170033883A KR20170033883A KR1020177004865A KR20177004865A KR20170033883A KR 20170033883 A KR20170033883 A KR 20170033883A KR 1020177004865 A KR1020177004865 A KR 1020177004865A KR 20177004865 A KR20177004865 A KR 20177004865A KR 20170033883 A KR20170033883 A KR 20170033883A
- Authority
- KR
- South Korea
- Prior art keywords
- window
- overlap
- length
- asymmetric
- overlapping portion
- Prior art date
Links
- 230000005236 sound signal Effects 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 title claims abstract description 36
- 238000004458 analytical method Methods 0.000 title claims description 71
- 238000000034 method Methods 0.000 title claims description 70
- 230000015572 biosynthetic process Effects 0.000 title claims description 56
- 238000003786 synthesis reaction Methods 0.000 title claims description 49
- 238000004590 computer program Methods 0.000 title claims description 13
- 230000008859 change Effects 0.000 claims abstract description 10
- 230000007704 transition Effects 0.000 claims description 54
- 238000006243 chemical reaction Methods 0.000 claims description 37
- 230000006870 function Effects 0.000 claims description 31
- 238000005520 cutting process Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 9
- 230000000630 rising effect Effects 0.000 claims description 8
- 230000001052 transient effect Effects 0.000 description 13
- 230000009466 transformation Effects 0.000 description 11
- 238000011084 recovery Methods 0.000 description 9
- 239000002131 composite material Substances 0.000 description 8
- 238000011914 asymmetric synthesis Methods 0.000 description 7
- 230000003595 spectral effect Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- OVOUKWFJRHALDD-UHFFFAOYSA-N 2-[2-(2-acetyloxyethoxy)ethoxy]ethyl acetate Chemical compound CC(=O)OCCOCCOCCOC(C)=O OVOUKWFJRHALDD-UHFFFAOYSA-N 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/022—Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
- G10L19/025—Detection of transients or attacks for time/frequency resolution switching
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/032—Quantisation or dequantisation of spectral components
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0272—Voice signal separating
- G10L21/028—Voice signal separating using properties of sound source
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Stereophonic System (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
제 2 윈도우(1402)가 제 1 윈도우(1400) 보다 짧고, 제 3 윈도우(1450)가 제 4 윈도우(1452) 보다 짧은 상태에서, 제 1 비대칭 윈도우(1400)에서 제 2 윈도우(1402)로의 변화 또는 제 3 윈도우(1450)에서 제 4 비대칭 윈도우(1452)로의 변화를 지시하는 윈도우 제어 신호(204)를 오디오 신호(200)로부터 추출하는 분석기;
제 1 비대칭 윈도우(1400)의 제 1 중첩부(800)을 이용하여 제 2 윈도우(1402)를 형성하는데, 제 1 비대칭 윈도우에서 절단된 제 1 중첩부를 이용해서 제 2 윈도우(1402)의 제 1 중첩부(1000)를 결정하고, 또한 제 4 비대칭 윈도우에(1452)에서 절단된 제 2 중첩부(814)를 이용해서 제 3 윈도우(1450)의 제 2 중첩부(1330)를 계산하는 것을 특징으로 하는 윈도우 형성기(206); 및
제 1 및 제 2 윈도우 또는 제 3 및 제 4 윈도우를 부가하여 윈도우화 된 오디오 신호부(210)를 얻는 윈도우어(208);
들을 포함하는 오디오 신호 처리를 위한 프로세서.
제 1 비대칭 윈도우(1400)의 제 1 중첩부(800)을 이용하여 제 2 윈도우(1402)를 형성하는데, 제 1 비대칭 윈도우에서 절단된 제 1 중첩부를 이용해서 제 2 윈도우(1402)의 제 1 중첩부(1000)를 결정하고, 또한 제 4 비대칭 윈도우에(1452)에서 절단된 제 2 중첩부(814)를 이용해서 제 3 윈도우(1450)의 제 2 중첩부(1330)를 계산하는 것을 특징으로 하는 윈도우 형성기(206); 및
제 1 및 제 2 윈도우 또는 제 3 및 제 4 윈도우를 부가하여 윈도우화 된 오디오 신호부(210)를 얻는 윈도우어(208);
들을 포함하는 오디오 신호 처리를 위한 프로세서.
Description
본 발명은 오디오 신호 처리, 보다 상세하게는 오디오 신호 처리 체인의 분석 또는 합성을 위해 중첩 윈도우를 적용한 오디오 신호 처리기술에 관한 것이다.
현재 대부분의 MDCT(Modified Discrete Cosine Transform)와 같은 중첩 변환기술에 기초한 주파수 영역 오디오 코더는 시간 및 주파수 해상도를 전류신호 특성에 맞추기 위해 어떤 형태로든 변환크기 스위칭을 사용한다. 가용 변환 크기와 그에 상응한 윈도우 형상 사이의 스위칭 처리를 위하여 다양한 접근 방법들이 개발되어 왔다. 몇몇 접근방법들에서는 서로 다른 변환 길이를 사용하여 인코딩된 프레임들 사이에 전이(transition) 윈도우를 삽입한다.(예 MPEG-4 (HE-)AAC [1]) 이러한 전이 윈도우의 사용은 증가된 인코더 룩-어헤드(look-ahead)가 요구되어 저 지연(low dealy) 응용분야에서는 적절하지 않은 단점이 있다. 다른 접근방법들에서는 전이 윈도우를 사용할 필요가 없도록 모든 변환크기들에 고정된 낮은 크기의 윈도우 중첩부를 적용하고 있다.(예 CELT [2]) 그러나 낮은 중첩부는 주파수 분리를 축소 시켜 음색 신호의 코딩 효율을 떨어뜨린다. 대칭적인 중첩부에 서로 다른 변환 및 중첩 길이를 적용한 개선된 인스탄트 스위칭 (Instant Switching) 기술이 [3]에 제시되어 있다. [6}에서 저(low)-중첩 사인(sine) 윈도우를 이용한 서로 다른 변환 길이들 사이의 인스탄트 스위칭의 예를 나타내고 있다.
한편, 저-지연(low delay) 오디오 코더는 종종 비대칭 MDCT 윈도우를 사용하여 지연과 주파수 분리 사이에 양호한 절충이 이루어지게 한다. 인코더 측에는 후속되는 프레임과의 중첩을 단축 시켜 룩-어헤드(look-ahead)를 감소시키는 한편, 이전 프레임과의 중첩을 늘려서 주파수 분리가 향상되도록 한다. 디코더 측에는 인코더 윈도우의 미러 버전 (mirrored version)이 사용된다. 비대칭 신호 분석 및 합성 윈도우 처리 예가 도 8a 내지 8c에 도시되어 있다.
본 발명의 목적은 오디오 신호 처리의 개선된 개념을 제공하는 데 있다. 이러한 목적은 청구항 1의 오디오 신호 처리 프로세서, 청구항 17의 오디오 신호 처리 방법, 및 청구항 18의 컴퓨터 프로그램들로써 달성될 수 있다.
본 발명은 비대칭 변환 윈도우가 저 지연 상태에서 정상파 신호를 효율적으로 코딩하는데 유용하다는 데 근거한다. 한편, 신축적인 변환 크기로 스위칭시키기 위하여 어느 한 블록 크기에서 다른 블록 크기로의 전이에 신호분석 및 합성 윈도우를 적용함으로써, 완전한 신호 복원을 방해하지 않으면서 비대칭 윈도우의 절단된 중첩부가 윈도우 에지 또는 윈도우 에지의 근거로서 사용될 수 있도록 한다.
따라서, 비대칭 윈도우의 긴 중첩부와 같은 비대칭 윈도우의 절단부가 전이 윈도우 내에서 사용될 수 있다. 그러나, 전이 윈도우의 필요한 길이에 맞추기 위해서 중첩부 또는 비대칭 윈도우 에지 또는 측면은 전이 윈도우의 제한 내에서 허용되는 길이로 절단된다. 이것은 완전한 신호 복원을 어렵게 하지 않는다. 따라서, 이러한 비대칭 윈도우의 중첩부 절단은 신호 복원에 문제를 일으키지 않으면서 전이 윈도우의 짧고 즉각적인 스위칭이 가능하도록 한다.
또 다른 실시예에서는 중첩부 절단을 직접적으로 행하는 것보다 고려중인 비대칭 윈도우의 중첩부를 절단하면서 생기는 불연속성이 점차 완만해 지도록 하는 것이 바람직하다.
또 다른 실시예는 윈도우 에지나 측면의 최소분만 메모리에 저장되고 페이드 인(fading-in) 또는 페이드 아웃(fading-out)실행 시에도 윈도우 에지의 일정분만 사용된다는 사실에 근거해서 메모리 저장을 높여서 구현된다. 이러한 메모리 효율적인 구현에서는 논리 또는 산술 작업을 통하여 저장되어 있는 상승 윈도우 에지로부터 하강 윈도우 에지로 또는 그 역으로 윈도우 에지가 추가적으로 형성되어서, 상승 또는 하강 에지와 같은 단일 에지만이 저장되어야 하고 다른 하나는 유동적으로 도출될 수 있도록 한다.
실시예는 오디오 신호 프로세서와 처리 방법을 포함한다. 프로세서는 오디오 신호 처리상에서 제 1 비대칭 윈도우에서 제 2 윈도우로의 변화를 지시하는 윈도우 제어 신호를 오디오 신호로부터 추출하는 분석기를 갖는다. 윈도우 제어 신호는 예컨대 신호 합성 처리의 경우에 대안적으로 또는 추가적으로 제 3 윈도우에서 제 4윈도우로의 변화를 지시한다. 특히, 신호 분석 측에서는 제 2 윈도우가 제 1 윈도우 보다 짧게 되고, 신호 합성 측면에서는 제 3 윈도우가 제 4 윈도우 보다 짧게 된다.
프로세서는 제 1 비대칭 윈도우의 제 1 중첩부을 이용하여 제 2 또는 제 3 윈도우를 형성하는 윈도우 형성기를 더 포함한다. 특히, 윈도우 형성기는 제 1 비대칭 윈도우의 제 1 절단 중첩부를 이용해서 제 2 윈도우의 제 1 중첩부가 결정되도록 구성된다. 윈도우 형성기는 대안적으로 또는 추가적으로 제 4 비대칭 윈도우의 제 2 중첩부을 이용해서 제 3 윈도우의 제 2 중첩부가 계산되도록 구성된다.
마지막으로, 프로세서는 신호 분석처리용으로 제 1 윈도우와 제 2 윈도우를, 신호 합성처리용으로 제 3 윈도우와 제 4 윈도우를 첨부하는 윈도우어 (windower)를 포함하며, 이를 통해 윈도우가 첨부된 오디오 신호부를 얻게 된다.
알려진 바와 같이, 신호 분석용 윈도우 처리는 오디오 인코더의 매우 초기 단계에서 이루어지는데 시간상 분리되어 후속되는 오디오 신호 샘플 스트림에 순서에 따라 윈도우 처리된다. 예로서, 분석기가 실제로 오디오 신호에서 과도신호(transient signal)를 검출하면 장(long) 윈도우에서 단(short) 윈도우로 스위칭이 일어난다. 이때, 윈도우 형성에 뒤이어 시간 영역에서 주파수 영역으로의 변환이 이루어지고, 바람직하기로, 이러한 변환은 MDCT에 의해 이루어진다. MDCT는 폴딩(folding) 연산과 후속되는 DCT IV 변환을 통하여 2N 개의 시간영역 샘플에서 N 개의 주파수 영역 샘플을 만들고, 이후 이러한 주파수 영역의 값들이 더 프로세싱된다.
신호 합성 측에서는 분석기가 실제 오디오 신호 분석을 하지 않으나, 부가 정보로부터 도출된 윈도우 제어 신호를 인코드 된 오디오 신호로 보내어, 인코드 측 분석기에서 결정된 윈도우 순서가 디코드 측 프로세서로 전달되게 지시한다. 신호 합성용 윈도우는 디코드 프로세스의 맨 뒤에 생성된다, 즉, 주파수 변환과 N 개의 스펙트럼 값으로부터 2N 개의 값들을 생성하는 언폴딩(unfolding) 연산과정에 뒤이어 윈도우 생성이 이루어지고, 본 발명의 절단된 윈도우 에지를 이용한 합성 윈도우 생성에 뒤이어 필요한 중첩-첨가 과정이 수행된다. 바람직 하기로는, 신호 분석 윈도우 설정과 신호 합성 윈도우 생성에 뒤이은 중첩-첨가 과정에 50%의 중첩이 적용된다.
따라서, 본 발명의 장점은 정상파 신호를 저 지연 상태에서 우수한 효율로 코딩 가능하게 하는 비대칭 변환 윈도우를 사용하는 데 있다. 한편, 본 발명은 과도 신호의 효율적인 코딩을 위해 신축적인 변환 크기의 스위칭을 가능케 하여 전체 코딩 지연이 증가하지 않도록 한다. 본 발명은 장(long) 변환에는 비대칭 윈도우를, 짧은 윈도우의 대칭적 중첩 범위에는 신축적인 변환/중첩 길이의 스위칭 개념을 조합해서 적용한다. 짧은 윈도우는 양측에 동일한 대칭적 중첩부를 갖는 완전히 대칭성일 수도 있고, 또는 선행 윈도우와는 제 1 대칭적 중첩을 이루고 후속되는 윈도우와는 제 2의 또 다른 대칭적 중첩을 이루는 비대칭성일 수도 있다.
본 발명의 장점은 상세하게는, 비대칭적인 긴 윈도우에서 절단된 중첩부를 사용하여 서로 다른 블록크기를 갖는 윈도우 사이의 어떠한 전이에도 추가적인 장 변이 윈도우를 삽입할 필요가 없게 함으로써 어떠한 코딩 지연이나 요구되는 코더 룩-어헤드(look-ahead)가 증가하지 않도록 하는 데 있다.
본 발명의 바람직한 실시예들을 이후에 도면과 함께 설명한다.
도 1a는 절단된 중첩부와 관련된 인코딩의 한 예를 나타낸다.
도 1b는 절단된 중첩부와 관련된 디코딩 장치를 나타낸다.
도 1c는 신호 합성을 보다 상세히 도시한 것이다.
도 1d는 인코더, 디코더, 및 메모리를 갖는 모바일 디바이스의 구현을 보여준다.
도 2는 본 발명의 신호분석 (case A) 또는 합성 (case B)의 바람직한 실시예를 보여준다.
도 3은 윈도우 형성기의 바람직한 실시예를 나타낸다.
도 4는 도 3의 메모리 내용을 나타내는 도식도 이다.
도 5는 신호 분석 변환 윈도우의 제 1 및 제 2 중첩부를 결정하는 바람직한 절차를 나타낸다.
도 6는 신호 합성 변환 윈도우을 결정하는 바람직한 절차를 나타낸다.
도 7은 최대길이보다 작게 절단하는 추가 과정을 나타낸다.
도 8a는 비대칭 분석 윈도우를 보여준다.
도 8b는 비대칭 합성 윈도우를 보여준다.
도 8c는 폴딩이 들어간 비대칭 분석 윈도우를 나타낸다.
도 9a는 대칭 분석/합성 윈도우를 나타낸다.
도 9b는 대칭적이나 서로 다른 중첩부를 갖는 분석/합성 윈도우를 추가적으로 보여준다.
도 9c는 서로 다른 길이의 대칭적 중첩부를 갖는 윈도우를 추가적으로 보여준다.
도 10a는 절단된 제 1 중첩부를 가진 제 2 윈도우와 같은 신호분석용 변환 윈도우를 나타낸다.
도 10b는 절단되고 페이드-인 된 제 1 중첩부를 갖는 제 2 윈도우를 보여준다.
도 10c는 선행 및 후속되는 윈도우의 해당 중첩부들과 관련한 도 10a의 제 2 윈도우를 나타낸다.
도 10d는 도 10c에서 제 1 중첩부가 페이드-인 상태를 보여준다.
도 11a는 신호 분석 측에 페이드-인 된 서로 다른 변환 윈도우를 나타낸다.
도 11b는 필요 이상으로 절단된 신호 분석 변환 윈도우와 그 변형을 보여준다.
도 12a와 12b는 작은 크기에서 큰 크기의 블록 사이즈로 변환된 신호 분석 변환 윈도우를 보여준다.
도 13a와 13b는 큰 블록 크기에서 작은 크기로 변환된 신호 합성 변환 윈도우를 보여준다.
도 13c는 제 2 중첩부가 절단된 제 3 윈도우와 같은 신호 합성 변환 윈도우를 보여준다.
도 13d는 도 13c의 윈도우가 페이드-아웃 된 것을 보여준다.
도 14a는 신호 분석 윈도우 절차의 한 예를 보여준다.
도 14b는 해당 신호 합성 윈도우 절차를 보여준다.
도 15a는 신호 분석 윈도우의 또 다른 예를 나타낸다.
도 15b는 도 15a에 매칭되는 대응 신호 합성 윈도우를 나타낸다.
도 16은 서로 다른 변환 길이들 간에 대칭적 중첩만을 사용하여 즉시 스위칭하는 한 실시예를 보여준다.
도 1b는 절단된 중첩부와 관련된 디코딩 장치를 나타낸다.
도 1c는 신호 합성을 보다 상세히 도시한 것이다.
도 1d는 인코더, 디코더, 및 메모리를 갖는 모바일 디바이스의 구현을 보여준다.
도 2는 본 발명의 신호분석 (case A) 또는 합성 (case B)의 바람직한 실시예를 보여준다.
도 3은 윈도우 형성기의 바람직한 실시예를 나타낸다.
도 4는 도 3의 메모리 내용을 나타내는 도식도 이다.
도 5는 신호 분석 변환 윈도우의 제 1 및 제 2 중첩부를 결정하는 바람직한 절차를 나타낸다.
도 6는 신호 합성 변환 윈도우을 결정하는 바람직한 절차를 나타낸다.
도 7은 최대길이보다 작게 절단하는 추가 과정을 나타낸다.
도 8a는 비대칭 분석 윈도우를 보여준다.
도 8b는 비대칭 합성 윈도우를 보여준다.
도 8c는 폴딩이 들어간 비대칭 분석 윈도우를 나타낸다.
도 9a는 대칭 분석/합성 윈도우를 나타낸다.
도 9b는 대칭적이나 서로 다른 중첩부를 갖는 분석/합성 윈도우를 추가적으로 보여준다.
도 9c는 서로 다른 길이의 대칭적 중첩부를 갖는 윈도우를 추가적으로 보여준다.
도 10a는 절단된 제 1 중첩부를 가진 제 2 윈도우와 같은 신호분석용 변환 윈도우를 나타낸다.
도 10b는 절단되고 페이드-인 된 제 1 중첩부를 갖는 제 2 윈도우를 보여준다.
도 10c는 선행 및 후속되는 윈도우의 해당 중첩부들과 관련한 도 10a의 제 2 윈도우를 나타낸다.
도 10d는 도 10c에서 제 1 중첩부가 페이드-인 상태를 보여준다.
도 11a는 신호 분석 측에 페이드-인 된 서로 다른 변환 윈도우를 나타낸다.
도 11b는 필요 이상으로 절단된 신호 분석 변환 윈도우와 그 변형을 보여준다.
도 12a와 12b는 작은 크기에서 큰 크기의 블록 사이즈로 변환된 신호 분석 변환 윈도우를 보여준다.
도 13a와 13b는 큰 블록 크기에서 작은 크기로 변환된 신호 합성 변환 윈도우를 보여준다.
도 13c는 제 2 중첩부가 절단된 제 3 윈도우와 같은 신호 합성 변환 윈도우를 보여준다.
도 13d는 도 13c의 윈도우가 페이드-아웃 된 것을 보여준다.
도 14a는 신호 분석 윈도우 절차의 한 예를 보여준다.
도 14b는 해당 신호 합성 윈도우 절차를 보여준다.
도 15a는 신호 분석 윈도우의 또 다른 예를 나타낸다.
도 15b는 도 15a에 매칭되는 대응 신호 합성 윈도우를 나타낸다.
도 16은 서로 다른 변환 길이들 간에 대칭적 중첩만을 사용하여 즉시 스위칭하는 한 실시예를 보여준다.
실시예들은 비대칭 윈도우를 사용하는 MDCT 장 변환에서 대칭적 중첩 윈도우를 갖는 단 변환으로의 스위칭을 중간 프레임의 삽입이 필요없이 즉각적으로 할 수 있는 개념에 관한 것들이다.
짧은 변환 길이를 적용하여 제 1 프레임의 윈도우 형상을 형성시킬 때는 두가지 제약이 따른다.
1. 윈도우의 좌측 중첩부는 앞서는 비대칭 윈도우의 형상과 매치되어 완전하거나 또는 거의 완전한 재형성이 이루어져야 한다.
2. 중첩부 길이는 단 변환 길이에 의해 구속된다.
긴 비대칭 윈도우의 좌측 중첩부는 첫번째 조건을 만족시킬 것이나, 장 변환 크기의 절반 또는 그 이하의 크기를 갖는 단 변환에는 너무 긴 것이 된다. 그러므로 단 변환 윈도우 형상이 선택될 필요가 있다.
비대칭 신호 분석 및 합성 윈도우들은 서로 대칭된다는 것, 즉 합성 윈도우는 분석 윈도우의 미러 버전인 것을 가정한다. 이 경우 윈도우 W 는 완전 재복구를 위해서 다음식을 만족해야 한다.
WnW2L-1-n + WL+nWL-1-n = 1, n= 0...L-1,
L은 변환길이를 n은 샘플 지수를 나타낸다.
지연 감소를 위해서 신호분석용 긴 비대칭 윈도우의 우측 중첩부는 단축되어져 모든 최우측 윈도우 샘플들은 영 값을 갖는다. 윗 식으로부터 윈도우 샘플 Wn이 영이면 대칭적 샘플 W2L -1-n 에는 임의의 값을 선택할 수 있음을 알 수 있다. 윈도우의 최우측 샘플 m 이 영 이면, 최좌측 샘플 m 또한 완전 재복구를 상실하지 않으면서 영으로 대체될 수 있다. 즉, 좌측 중첩부는 우측 중첩부의 길이로 단축 절단될 수 있다.
만약 절단된 중첩부 길이가 충분히 짧아서 제 1 짧은 변환 윈도우의 우측부에 충분한 중첩이 남게 되면, 위 두 조건을 만족시키면서 제 1 짧은 변환 윈도우의형상이 해결된다. 비대칭 윈도우의 중첩부의 좌측단은 절단되고 뒤따르는 짧은 윈도우에 사용되는 대칭 중첩부와 결합된다. 결과적인 윈도우 형상의 예가 도 10c에 나타나 있다.
존재하는 긴 윈도우 중첩부의 절단 버전을 사용하면 변환을 위해서 완전히 새로운 윈도우 형상을 설계할 필요가 없어진다. 또한, 변환을 위해서 추가적인 윈도우 표가 요구되지 않아 알고리즘이 수행되는 하드웨어의 ROM/RAM 부담이 줄어든다.
디코더 쪽의 신호합성 윈도우 생성에는 대칭적 방법이 사용된다. 비대칭 신호 합성 윈도우는 우측에 긴 중첩부를 갖는다. 그러므로 우측 중첩부의 절단된 버전은 마지막 짧은 변환 윈도우가 비대칭의 긴 변환 윈도우로 스위칭 백 되기 전에 그 우측 윈도우부로 사용된다. (도 13d)
위에서 보여준 바와 같이 긴 윈도우의 절단된 버전의 사용은 스펙트럼 데이타가 신호 분석과 합성 변환 사이에 수정되지 않는다면, 시간 영역 상의 신호들의 완전한 복원을 가능하게 한다. 그러나, 오디오 코딩에는 스펙트럼 데이타에 양자화가 적용된다. 신호 합성 변환시에 양자화 결과 나오는 노이즈가 합성 윈도우에 형상화 된다. 긴 윈도우의 절단은 윈도우 형상화에 한 단계를 더 들어가게 하기 때문에 불연속성이 출력 신호의 양자화 노이즈로 나타날 수 있다. 이러한 불연속성은 클릭과 같은 가공음으로 들릴 수 있다.
이러한 가공음을 없애기 위해 페이드-아웃을 절단된 윈도우의 끝에 적용하여 변환을 영으로 완만하게 할 수 있다. 페이드-아웃은 몇가지 다른 방법들로서 구현될 수 있는데, 예로써, 선형, 사인 또는 코사인 형태로 할 수 있다. 페이드-아웃의 길이는 가공음이 발생되지 않도록 충분히 길게 잡아야 한다. 완전한 재복구를 상실하지 않게 하는 선에서 최대 가능한 페이드-아웃 길이는 짧은 변환 길이와 윈도우 중첩부 길이에 의해 결정된다. 몇몇 경우에는 가용길이가 영이거나 또는 가공음을 억제하기해 너무 작은 경우가 있다. 그러한 경우에는 페이드-아웃 길이를 늘리고 작은 재복구 에러는 받아 들이는게 좋을 수 있다. 왜냐하면, 이러한 조치들이 종종 양자화 노이즈에 불연속성 보다 작은 영향을 주기 때문이다. 주의 깊게 페이드-아웃 길이를 조절하면 양자화 에러인 불연속성에 비해 재복구 에러를 적절히 수용함으로써 최상의 오디오 품질을 만들어 낼 수 있다.
도 10d는 윈도우의 절단부에 사인(sine) 함수를 곱한 짧은 페이드-아웃을 갖는 절단 중첩부의 한 예를 도시한다.
다음에 본 발명의 실시예에 따른 오디오 신호처리를 위한 프로세서를 도 2를 참조하여 설명한다. 오디오 신호는 입력부 200 에서 분석기 202 로 주어진다. 분석기는 오디오 신호에서 윈도우 제어 신호 204 를 도출하는데 윈도우 제어 신호는 제 1 비대칭 윈도우에서 제 2 원도우로 변화를 지시한다. (예; 도 14a 및 도 15a의 제 1 윈도우 1400, 1500) 이 실시예에서 제 2 윈도우는 도 14a의 1402 및 도 15a의 1502 이다. 윈도우 제어 신호 204 는 다시 신호 합성 작업을 위해 제 3 윈도우 (예; 도 14b의 1450, 도 5b의 1550) 에서 제 4 윈도우 (예; 도 14b의 1452, 도 15b의 1552)로 변화를 지시한다. 도면에서 보여지는 바와 같이 1402와 같은 제 2 윈도우는 제 1 윈도우 1400 보다 짧고, 제 3 윈도우 1450, 1550 는 제 4 윈도우 1452, 1552 보다 짧다.
프로세서는 제 1 비대칭 윈도우의 제 1 중첩부를 사용하여 제 2 원도우를 형성하기 위한 윈도우 형성기 206 을 더 포함하는데, 이러한 윈도우 형성기는 신호 합성 측 제 1 비대칭 윈도우에서 절단된 제 1 중첩부를 사용하여 제 2 윈도우의 제 1 중첩부를 결정한다 (예; 도 2의 case B). 윈도우 형성기는 제 1 윈도우, 즉, 비대칭 윈도우에서 절단된 제 2 중첩부를 사용하여 제 3 윈도우 1502, 1550 의 제 2 중첩부를 계산하도록 설정된다.
신호 분석 측 제 2 윈도우 또는 신호 합성 측 제 3 윈도우들과 같은 윈도두들이나 선행 및/또는 후속되는 윈도우들은 윈도우 형성기 206 에서 윈도우어 208 로 전달된다. 윈도우어 208 는 출력부 210 에서 신호부가 얻어지도록 제 1 및 제 2 윈도우, 또는 제 3 및 제 4 윈도우들을 오디오 신호에 부여한다.
Case A는 신호 분석 측에 관한 것이다. 여기서, 입력은 오디오 신호이고 실제 분석기 202 는 과도(transient) 분석 등과 같은 실제 오디오 신호 분석을 수행한다. 제 1 및 제 2 윈도우는 분석 윈도우들이고, 윈도우가 부가된 신호는 이후에 도 1A을 참조해서 설명될 바와 같이 인코더 측에서 처리된다.
따라서, 도 2에 나타난 디코더 프로세서 214 에 대한 설명은 case A에서 언급되지 않는다.
본 발명 프로세스가 신호 합성 측에 적용된 case B에서, 입력되는 것은 오디오 신호 정보와 그 측면 정보를 갖는 비트스트림과 같은 인코딩 오디오 신호이고, 분석기 202 는 비트스트림 분석 및 인코딩 오디오 신호로부터 인코더에 적용되는 윈도우 형성 절차를 지시하는 윈도우 제어 신호를 추출하기 위한 비트스트림 내지 인코딩 신호 해석 기능을 수행하며, 이로부터 디코더에 적용될 윈도우 형성 절차가 도출될 수 있다.
이때, 제 3 및 제 4 윈도우는 합성용 윈도우이고 윈도우 신호는 도 1B 내지 1C에서 보여지는 바와 같이 오디오 신호 합성을 위하여 중첩-첨가 과정을 거치게 된다.
도 1a은 오디오 신호 100 를 인코딩하는 장치를 보여준다. 오디오 신호 인코딩 장치는 오디오 신호 100 를 윈도우 처리하여 그 샘플의 연속된 블록들 103 을 제공하기 위한 제어 가능한 윈도우부 102 를 포함한다.
인코더는 윈도우 처리된 샘플의 일련의 블록들 103 을 스텍트럼 값들로 구성된 일련의 프레임 105 으로 이루어진 스펙트럼 형태로 전환 시키는 컨버터 104 를 추가적으로 포함한다. 또한, 과도(transient) 위치 검출기 106 를 포함한다. 이 검출기는 프레임의 과도 신호 예측 범위 내에서 과도 신호의 위치를 파악하기 위해 구성된다. 또한, 윈도우부 제어를 위한 제어부 108 은 과도 신호 107 의 위치 파악에 따라 오디오 신호 100 에 특정 중첩 길이를 갖는 특정 윈도우를 부가한다. 더 나아가 실시예의 제어기 108 는 윈도우 정보 112 를 제어 가능한 윈도우 부 102 뿐만 아니라 인코드 오디오 신호 115 를 출력하는 출력 인터페이스 114 에도 제공한다. 스텍트럼 값들로 구성된 일련의 프레임으로 이루어진 스펙트럼 형태는 인코딩 프로세서 110 에 입력된다. 인코딩 프로세서는 예측, 일시적 노이즈 형상화, 음향심리학 모델 또는 최소한 하나 이상의 음향 심리학 원리에 따른 양자화 등과 같은 어떤 종류의 인코딩 작업도 수행할 수 있으며, Huffman 인코딩 또는 산술적 인코딩들과 같은 중복-감소 인코딩 작업도 포함할 수 있다. 인코딩 프로세서 100 의 출력물은 출력 인터페이스 114 로 전달되고, 출력 인테페이스 114 는 최종적으로 각 인코딩 프레임에 일정 윈도우 정보 112 가 연계된 인코딩 오디오 신호를 제공한다.
제어기 108 는 최소 세 개의 윈도우들 그룹에서 특정 윈도우를 선택하게 구성된다. 윈도우 그룹은 제 1 중첩길이를 갖는 제 1 윈도우, 제 2 중첩길이를 갖는 제 2 윈도우, 및 제 3 윈도우 중첩길이 또는 중첩이 없는 제 3 윈도우를을 포함한다. 제 1 중첩길이는 제 2 중첩길이 보다 크고 제 2 중첩길이는 영 보다 크다. 특정 윈도우는 제어 가능한 윈도우부 102 에 의해 과도신호 위치에 따라 선택되는데, 시간상 서로 인접한 두 개의 중첩하는 윈도우들 중 하나는 과도신호 위치에서 제 1 윈도우 계수값을 갖고, 다른 하나는 제 2 윈도우 계수값을 갖게 되며 제 2 윈도우 계수값은 제 1 계수값 보다 최소 9 배 이상 크게 된다. 이렇게 함으로써, 과도신호는 제 1 의 작은 계수값을 갖는 제 1 윈도우에 의해 실질적으로 억제되고, 제 2 윈도우 계수값을 갖는 제 2 윈도우에 의해서 영향을 전혀 받지 않게 된다. 바람직 하기로는, 제 1 윈도우 계수값이 +/- 5% 허용오차 범위 내에서 1 (예; 0.95나 1.05)이고 제 2 윈도우 계수값은 0 이나 최소한 0.05 보다 작은 것이 좋다. 윈도우 계수값은 음수일 수도 있는데 이 경우 계수값들 간의 관계나 양들은 절대치로 본다.
나아가, 대안적으로나 추가적으로 제어기 108 는 도 2와 관련해서 설명되는 윈도우 형성기 206 의 기능들을 포함할 수 있는데 이에 대해서는 후술한다. 또한, 과도신호 위치 검출기 106 가 포함되어 case A의 도 2의 분석기 202 기능들, 예컨대, 신호 분석 측에 윈도우 첨가와 같은 기능들이 수행될 수 있다.
또한, 블록 104 와 110은 윈도우 처리된 오디오 신호 210, 즉 도 1A 에서 오디오 신호 103 에 해당하는 신호에 의해 수행되는 프로세싱을 설명하고 있다. 나아가, 윈도우 형성기 206 는 도 2에서 구체적으로 제시되어 있지 않으나 도 1A 의 윈도우 정보 112 를 출력 인터페이스 114 에 제공하고, 이 윈도우 정보는 디코더 측에(예; case B) 작동하는 분석기 202 에 의해 인코딩된 신호로부터 다시 얻을 수 있다.
MDCT 프로세싱 기술, 즉 일반적으로 앨리어싱-유도(aliasing-introducing) 변환을 이용한 프로세싱 기술에서 알려진 바와 같이, 앨리어싱-유도 변환은 폴딩-인 단계와 비 앨리어싱 유도 변환을 이용한 후속 단계로 분리 될 수 있다. 일예로, 세션들이 다른 세션으로 겹쳐지고, 그 폴딩의 결과는 MDCT와 같은 변환을 사용하여 스펙트럼 영역으로 변환된다. MDCT의 경우에는 DCT IV 변환이 적용된다.
이후에, 이러한 과정이 MDCT를 참조해서 예시되어 있는데 또 다른 앨리어싱-유도 변환도 유사하게 적용될 수 있다. 랩 변환(lapped transform)의미에서 MDCT 는 출력 수가 입력 수의 절반(동일한 수 대신에)이 된다는 점에서 다른 푸리에르 변환과는 약간 틀리다. 특히 이것은 선형 함수 F: R 2N -> R N (R은 실수 집합)이다. 2N 개의 실수, x0,..., x2N-1 들은 N개의 실수 x0,..., xN-1 들로 다음 식에 따라 변환된다.
( 이 변환 앞에 있는 정규(normalization) 계수는 여기서는 1이나 처리방법에 따라 임의로 정해진다. 오직 MDCT 및 IMDCT 의 정규화 값들의 곱만이 구속된다.)
역 MDCT는 IMDCT로 알려져 있다. 서로 다른 수의 입력 및 출력이 있기 때문에 일견 MDCT는 비 가역적으로 보일 수 있다. 그러나, 시간 영역 상에서 인접하여 중첩된 블록들의 IMCDT들을 더함으로써 완전한 가역(invertibility)이 이루어져 에러가 제거되고 원래의 데이터가 회수된다 : 이 기술은 시간 영역 앨리어싱 제거 기술(TDAC)로 알려져 있다.
IMDCT는 N 개의 실수 X0, ...XN-1 들을 2N 개의 실수 y0, ...y2N-1 로 아래 식에 따라 변환한다.
(직교변환 DCT-IV 에서와 같이, 역변환은 순변환과 같은 형태를 갖는다)
통상의 윈도우 정규화(아래 참조)로 윈도우 처리된 MDCT의 경우에는 IMDCT 앞의 졍규화 계수에 2가 곱해 져야한다, (즉 2N)
전형적인 신호 압축에서는 n = 0, 2N 경계에서 함수값이 영으로 완만해 지도록하여 불연속성이 생기지 않도록 위 MDCT 나 IMDCT 식에서 xn 이나 yn 으로 곱해진 윈도우 함수 wn (n=0,,...2N-1)을 사용함으로써 변환 특성이 개선된다. (즉, MDCT 전이나 IMDCT 후에 데이터를 윈도우 처리한다.) 기본적으로 x 나 y 는 서로 다른 윈도우 함수를 가질수 있고, 윈도우 함수 또한 한 블록에서 다음 블록으로 변화할 수 있으나 (특히 서로 다른 크기의 데이터 블록이 결합되는 경우), 본 실시예는 단순히 같은 크기의 블록들에 대한 동일한 윈도우 함수를 고려한다.
여러 윈도우 함수가 사용되는데 변조 랩 변환으로 알려진 한 형태를 보이는 윈도우 함수는 다음과 같이 주어지고,
MP3나 MPEG-2 AAC 에 사용되고, Vorbis에는 아래식이 사용된다.
AC-3는 Kaiser-Bessel derived(KBD) 윈도우를 사용하고, MPEG-4 AAC 또한 KBD 윈도우를 사용할 수 있다.
MDCT에 적용되는 윈도우는 Princen-Bradley 조건을 만족해야 하기 때문에 다른 형태의 신호 분석에 사용되는 윈도우와 상이하다. 이러한 차이의 한 이유는 MDCT 윈도우에는 MDCT(분석)와 IMDCT(합성) 모두가 두 차레 적용되어야 하기 때문이다.
정의된 것들을 살펴보면 알 수 있듯이 짝수의 N 에 대해서는 MDCT가 반드시 DCT-IV와 일치하게 되는데, 입력이 N/2 만큼 이동되고 두 개의 N 블록 데이터가 한번에 변환된다. 이러한 일치성을 주의깊게 들여다 보면, TDAC와 같은 중요한 특성들을 쉽게 도출해 낼 수 있다.
DCT-IV와의 관계를 정확히 정의하기 위해서는 DCT-IV가 교대로 바뀌는 짝수/홀수 경계 조건들에 해당한다는 것을 이해해야 한다: 좌측 경계( n=-1/2 주위)에서는 짝수, 우측 경계(n=N-1/2 주위)에서는 홀수 등. (DFT에서와 같은 주기적 경계 대신에) 이는 아래 아이덴터티 (identities) 식들을 따른다 :
여기서, 입력이 길이 N의 배열 x 라고 하면, 이 배열을 (x, -xR, -x, xR,...)등으로 확장시킬 수 있음을 알 수 있다. 여기서 xR은 x의 역순을 나타낸다.
2N 개의 입력과 N 개의 출력을 갖는 MDCT에서 입력들을 각각 N/2의 크기를 가진 네 개의 블록(a, b, c, d)로 나누는 것을 고려하자. 이들을 우측으로 N/2 만큼 이동시키면 (MDCT 정의에서 +N/2 으로부터), (b, c, d)는 N 개의 DCT-IV 입력들을의 끝을 지나쳐 확장되어 위에서 설명한 경계 조건들에 따라 블록들의 "겹침"이발생 되게 된다.
이리하여, 2N 개의 입력 (a,b,c,d)들을 가진 MDCT는 N 개의 입력(-cR-d, a-bR)들을 갖는 DCT-IV와 정확하게 일치하게 된다. 여기서, R은 역을 나타낸다.
(이러한 식으로, DCT-IV를 계산하기 위한 어떠한 알고리즘도 MDCT에 용이하게 적용할 수 있다.)
유사하게 위의 MDCT 식은 DCT-IV의 1/2이 정확히 되고 (자체적으로 역 변환되는), 그 출력은 2N 길이로 확장되어(경계 조건을 통하여) 좌측으로 N/2 만큼 뒤로 이동하게 된다. 이로부터 역변환 DCT-IV가 간단히 입력(-cR-d, a-bR) 값들을 다시 내놓게 된다. 경계조건들을 통한 이러한 확장과 이동을 통해 다음식을 얻게 된다.
따라서, b-aR = -(a-bR)R이고 마찬가지로 마지막 두 항들도 같기 때문에 MDCT 출력의 절반은 중복된다. 입력을 보다 큰 N 크기의 블록 A,B (A=(a,b), B=(c,d))들로 묶으면 그 결과을 보다 간단히 아래와 같이 표시할 수 있다.
이렇게 TDAC가 작동되는 것을 알 수 있다. 시간영역에서 인접하고, 50% 중첩되며, 2N 크기를 갖는 블록 (B,C)을 MDCT 계산한다고 가정해 보자. IMDCT는 위와 유사한 결과를 가져온다: (B-BR, C+CR)/2. 절반의 중첩부에 대해 IMDCT 결과를 MDCT 결과에 더하면, 역변환 항들은 제거되고 단순히 B 만을 얻게 되면서 원래 데이터가 복원되게 된다.
"시간영역 앨리어싱 제거"라는 용어의 근거가 이제 명확해 진다. 논리적 DCT-IV의 경계를 넘어서서 입력 데이터를 확장하여 사용하면 데이터의 앨리어싱이 일어나게 되는데, 이는 나이퀴스트 (Nyquist) 주파수를 넘어선 주파수들이 저 주파수로 앨리어싱 되는 것과 같다. 단지, 앨리어싱이 주파수 영역 대신에 시간영역에서 일어나다는 것만이 다를 뿐이다 : a 및 bR 이 (a,b,c,d)의 MDCT나 IMDCT(MDCT(a,b,c,d))=(a-bR, b-aR, c+dR, d+cR)/2 의 결과에 주는 기여도를 구별할 수는 없다. c-dR 등과 같은 조합들은 더해지는 경우에 정확히 제거되는 조합들에 맞는 부호값들을 갖는다.
N이 홀수인(실제 좀처럼 사용되진 않으나) 경우, N/2는 정수가 안 되어 MDCT가 단순히 DCT-IV의 시프트 순열(shift permutation)이 되지 않는다. 이 경우 추가 적으로 샘플의 절반만큼 이동시키면 MDCT/IMDCT가 DCT-III/II와 동등하게 되고 그 분석은 상술한 바와 유사하게 된다.
2N 개의 입력(a,b,c,d)을 갖는 MDCT 는 N 개의 입력(-cR-d, a-bR)을 갖는 DCT-IV와 동등하게 됨을 알 수 있었다. DCT-IV는 우측 경계의 함수가 홀함수인 경우에 설계되므로 우측 경계에 가까운 값들은 0 에 가깝게 된다. 입력 신호가 완만해 지는 경우는 우측의 성분들 a나 bR이 입력(a,b,c,d) 순차 상에 연속적이어서 그들 간의 차이가 작은 경우이다. 구간의 중간을 살펴 볼 때, 상기 식을 (-cR-d, a-bR) = (-d, a)-(b, c)R으로 다시 쓰면, 두번째 항 (b,c)R이 구간 중간에 완만한 전이를 이루게 한다는 것을 알 수 있다. 그러나, 첫번째 항 (-d, a)에서는 -d의 우측단이 a의 좌측단과 만나기 때문에 잠재적으로 불연속점이 존재한다. 이러한 이유로 입력(a,b,c,d)순차의 경계에 가까이에 있는 성분 값들을 0 으로 낮주게 하는 윈도우 함수가 사용된다.
위에서, 시간상 인접한 블록들이 서로 중첩하는 구간의 절반에서 블록들의 IMDCT들을 더하면 원래의 데이터가 복원되는 것을 보임으로써 보통의 MDCT 에 TDAC 특성이 있음을 입증하였다. 윈도우가 부가되면 이러한 MDCT의 역함수 유도가 약간 복잡해진다.
N 개의 블록 A,B,C에 대해 두 개의 연속하면서 중첩하는 2N 개의 입력 (A,B) 및 (B,C)을 생각해 보자. 위에서 설명한 바와 같이 (A,B)와 (B,C) 를 각각 MDCT, IMDCT 변환하고 그들간 중첩부의 절반에서 변화된 것들을 더하면 (B+BR)/2 + (B-BR)/2 =B 식이 얻어지면서 원 데이터를 얻게 된다. 여기서, MDCT 입력과 IMDCT 출력 양쪽 모두에 2N 길이를 갖는 윈도우 함수를 곱한다고 설정해 보자.
앞에서와같이, 대칭적 윈도우 함수를 가정하면 그 함수는 (W, WR)형태가 된다. W는 길이-N 벡터이고 R은 역을 나타낸다. 이때, Princen-Bradley 조건을 W+WR 2 = (1, 1,....)로 표시할 수 있고 제곱과 덧셈은 요소별로 수행된다.
따라서, (A,B)를 MDCT 변환하는 대신에 (WA, WRB)를 요소별로 곱셈을 하면서 MDCT 변환한다. 이것을 다시 IMDCT 변환하고 요소별로 윈도우 함수를 곱하면, 후반 N 은 다음과 같이 된다.
( IMDCT 정규화는 윈도우 처리된 경우에는 2배수로 바뀌게 되기 때문에 더 이상 1/2로 곱하지 않는 것에 주의)
유사하게, (B,C)의 윈도우 처리된 것을 MDCT와 IMDCT 변환 하면, 전반 N은 다음과 같이 된다.
이들 두 절반 부를 더하면 원래의 데이터가 복원된다.
위에서 설명한 MDCT는 동일한 신호 분석/합성용 윈도우의 경우에 해당한다. 비대칭적인 윈도우의 경우에는 달라지나 대칭적인 것이 바람직하고 그 경우 Princen-Bradley조건은 보다 일반적인 아래의 식으로 바뀐다.
도 1b는 인코드 신호를 디코드하는 디코더 구현사례를 보여주는데 입력부 150을 갖으며, 입력 인터페이스 152는 인코드 형태의 오디오 신호 154을 제공하는 한편,부가정보를 분석기 202로 제공한다. 분석기 202는 인코드 신호 150에서 윈도우 정보 160을 추출하여 윈도우 형성기 206으로 보낸다. 또한, 인코드 오디오 신호 154 는 도 2의 디코더 프로세서 214에 해당하는 디코더 또는 디코딩 프로세서 156으로 입력되고, 윈도우 형성기 206 는 MDCT 나 IMDCT 또는 앨리어싱-유도의 역변환과 같은 다른 어떤 변환들을 수행하기 위해 구성되는 제어 가능한 컨버터 158 로 윈도우를 보낸다.
도 1c는 제어 가능한 컨버터 158 의 디코드 측 바람직한 실시예를 나타낸다. 특히, 컨버터 158은 주파수-시간 컨버터 170, 뒤따라 연결된 신호 합성용 윈도우어 172, 및 최종 중첩부-첨가기 174 를 포함한다. 상세하게로는, 주파수-시간 컨버터는 DCT-IV 변환과 뒤이어 폴드-아웃 작업을 수행하여 첫번째 긴 윈도우에 대하여 주파수-시간 컨버터로의 입력이 예컨대 N 개의 스펙트럼 값들일 때, 출력이 2N 샘플이 되도록 한다. 한편, 주파수-시간 컨버터로의 입력이 예로써 N/8 개의 스펙트럼 값일 때는 출력은 MDCT 작업을 위해 N/4 개의 시간영역 값들이 된다.
그리고, 주파수-시간 컨버터 170 의 출력은 인코드 측 윈도우와 바람직하게는 대칭되는 신호 합성용 윈도우를 첨가하는 윈도우어로 입력된다. 이렇게 하여, 각 샘플은 중첩-첨가가 수행되기 전에 두개의 윈도우에 의해 윈도우 처리되어 이전에 설명한 Princen-Bradley 조건을 만족하면서 분석 윈도우 계수와 합성 윈도우 계수 간의 곱으로 "전체 윈도우 형성"이 이루어지도록 한다.
마지막으로, 중첩-첨가기 174 는 디코딩 되는 오디오 신호를 출력부 175 에서 얻을 수 있도록 해당 중첩-첨가를 수행한다.
도 1d는 모바일 디바이스에 적용된 본 발명의 또 다른 실시예를 나타내는데 모바일 디바이스는 한편으론 인코더 195 다른 한편으론 디코더 196을 포함한다. 또한 본 발명의 바람직한 실시예에 따르면, 인코더 195에 사용되는 윈도우는 디코더 196에 사용되는 사용되는 윈도우와 서로 대칭적이기 때문에, 인코더 105와 디코더 106는 모두 오직 단일 메모리 107로부터 동일한 윈도우 정보를 회수한다. 따라서, 디코더는 ROM 197 이나 RAM, 또는 일반적인 어떤 메모리 197를 가지며, 윈도우 절차나 윈도우의 단일 세트만이 인코더와 디코더에 사용되게 메모리에 저장된다. 서로 다른 윈도우의 서로 다른 윈도우 계수들이 두 번씩 저장될 필요 없이 인코더와 디코더 각각에 대해 단일 세트만이 저장되는 장점이 있다. 본 발명에 따르면 동일한 윈도우나 윈도우 절차가 인코더와 디코더에 사용되기 때문에 오직 단일 세트의 윈도우 계수만이 저장되어야 한다. 그러므로, 도 1d에 나타난 본 발명의 모바일 디바이스에서 인코더와 디코더에 서로 다른 윈도우를 사용하거나 또는 윈도우 작업과 다른 후속 프로세싱이 실행되는 경우에 메모리 사용이 현저히 줄어들게 된다.
이하에 바람직한 윈도우를 도 8a를 참조해서 설명한다. 윈도우는 제 1 중첩부 800, 제 2 중첩부 802, 높은 값을 갖는 추가적인 부분 804, 및 낮은 값을 갖는 또 다른 부분 806를 포함한다. 높은 값을 갖는 부분 804는 1 값 또는 최소한 0.95 보다 큰 값을 갖고, 806의 낮은 값은 0 또는 바람직하게는 0.1 보다 작다. 실시예에서 비대칭 분석용 윈도우의 길이는 40ms이고, 50%의 중첩-첨가가 바람직하기 때문에 결과적인 블록 크기는 20ms가 된다. 그러나, 다른 중첩 비율 또한 사용될 수 있다.
구체적인 실행에서는 제 1 중첩부 800 을 제2 중첩부 802 보다 크게 하여 저 지연이 실행되게 하고, 또한 낮은 값의 부분 806이 제 2 중첩부에 선행하므로 도 8a에 나타난 비대칭 분석 윈도우가 0 값의 부분과 짧은 제 2 중첩부 802 들로 인해 저 지연 필터를 가능하게 하며, 긴 제 1의 중첩부 800으로 인해 매우 양호하게 분리되어 있게 된다. 그러나, 이러한 긴 중첩부는 비대칭 분석 윈도우의 전반부에 해당하기 때문에 더 이상의 지연을 초래하지 않는다. 구체적인 실시예에서, 제 1 중첩부 800 는 14.375 ms, 제 2의 비 중첩부나 높은 값 부분은 11.25 ms, 제 3 부분이나 제 2 중첩부 802 는 8.75 ms 들이며, 마지막 제 4 부분이나 낮은 값 부분은 5.625 ms이다.
도 8b는 분석 윈도우와 대응되는 비대칭 합성 윈도우를 나타내는데, 이 윈도우는 0 또는 낮은 값의 제 1 부분 810, 제 1 중첩부 812, 제 2 중첩부 814 및 제 1중첩부 812와 제2 중첩부 814 사이에 일정한 높은 값의 부분 816 을 포함한다.
해당 부분의 예시적인 길이가 제시되어 있으나, 일반적으로 제 1 중첩부 812는 제 2 중첩부 814 보다 짧은 것이 바람직하며, 일정한 높은 값 부분 816 의 길이는 제 1 중첩부의 길이와 제 2 중첩부 길이 사이에 있는 것이 좋고, 제 1 부분 810의 길이나 0 값의 부분 길이는 제 1 중첩부 812의 길이보다 작은 것이 바람직하다.
도 8a 에 나타내어진 바와 같이 제 1 중첩부 800의 길이는 제 2 중첩부 802 의 길이 보다 크고, 높은 값 부분 804 의 길이는 제 2 중첩부 802 와 제 1 중첩부 800 사이에 있는 것이 좋고 제 4 부분 806 의 길이는 제 2 중첩부 802 의 길이보다 낮은 것이 바람직하다.
도 8a와 도 8B는 선행하는 비대칭 분석 윈도우 807 과 후속되는 분석 윈도우 808 사이의 중첩을 나타내는데, 긴 블록만이 사용되고 도 2의 윈도우 제어 신호에 의한 어떤 스위칭도 없는 경우를 보여준다.
유사하게, 도 8b는 선행하는 합성 윈도우 819 와 후속되는 합성 윈도우 820 사이의 합성 절차를 보여준다.
또한, 도 8c는 도 8a에서와 같은 분석 윈도우를 나타내는데, 인코더 측의 폴드-인 작업시 폴딩(folding) 되고, 디코더 측의 폴드-아웃 작업시 디 폴드(de-folding) 되는 폴딩(folding) 821, 822 들을 같이 보여주고 있다. 이러한 폴딩 821, 822 는 폴딩선 823, 824를 따라 발생한다고 볼 수 있는데 (도 8a, 8b), 폴딩선들이 윈도우가 서로 지나치는 점들과 직접적으로 일치하지 않게 보인다. 이는 도 8a의 분석 윈도우나 도 8b의 합성 윈도우의 비대칭 특징에 기인한다.
도 9a는 블록 길이가 10 ms 이고 중첩부가 3.75 ms 인 대칭적 분석/합성 윈도우를 보여준다. 대칭적 분석 윈도우는 제 1의 낮은 또는 0 인 부분 900, 제 1 중첩부 902, 제 2 중첩부 904, 높거나 일정한 부분 906 및 더 낮거나 0 인 부분 908을 포함한다. 또한, 도 9a는 폴딩선 910, 911을 보여주는데 여기서 MDCT 나 MDST 와 같은 앨리어싱-유도 변환에서 요구되는 폴딩 작업이 이루어진다. 특히 폴딩-인 작업은 인코더 측 프로세싱에서 수행되고 폴딩-아웃 작업은 디코더 측 프로세싱에서 수행된다. 따라서, 선 912, 913은 폴딩 부를 나타내는데, 좌측 900 과 우측 908에 해당하는 하강부분과 뒤이은 0 인 부분을 보여준다. 표시선 915 은 좌측 폴드-인 부 912와 우측 폴드-인 부 913 사이의 경계를 나타낸다.
도 9a는 완전한 대칭적 분석 및 합성 윈도우를 나타내어 좌측 중첩부와 우측 중첩부가 서로 대칭적이고 같은 중첩길이 (실시예의 3.75 ms)를 갖는다. 일반적으로, 0 값의 부분 900, 908 은 중첩부 902, 904 보다 작은것이 바람직하여 결과적으로 높은 부분 906 의 길이는 900과 908이 같은 길이일 때 0 값 부분길이의 2배가 된다.
도 9b는 대칭적 중첩을 이루나 좌측과 우측이 서로 다른 윈도우를 보여준다. 특히, 도 9a와 유사하게, 0 인 부분 920, 제 1 중첩부 922, 일정하거나 높은 부분 924, 제 2 중첩부 926, 및 제 2의 0 또는 낮은 부분 928 로 이루어진다. 폴딩선 910과 911이 표시되어 있고, 표시선 915는 좌측 폴드-인 부 929와 우측 폴드-인 부 930 사이의 경계를 표시한다. 좌측 중첩부 922 는 1.25 ms와 같이 짧은 중첩부이고 우측 중첩부 926은 3.75 ms와 같은 긴 중첩부이다. 따라서, 이러한 윈도우는 짧은 중첩 윈도우에서 긴 중첩 윈도우로 되는 전이 윈도우이나 각 중첩 윈도우는 대칭적이다.
도 9c는 제시된 바와 같이 지속시간이 10 ms 에 해당하는 블록 크기가 5 ms인 또 다른 윈도우를 보여준다. 이 윈두우는 도 9b와 유사하나 상당히 다른 시간 길이를 갖는데, 도 9의 윈도우는 보다 짧은 지속시간을 갖으나 또 다시 0 값의 부분, 짧은 중첩을 가진 좌측 중첩부, 높은 값의 부분, 그 뒤를 잇는 제 2 중첩부, 및 마지막 0 값의 부분들로 배열 된다. 또한 폴딩선, 폴딩-인 부분 등이 도 9c에 나타나 있다.
일반적으로 도 8a 내지 도 15b의 대부분의 윈도우 그림들은 도 9a의 910, 911과 같은 폴딩선들을 표시하고 있고 추가해서 도 9a의 912, 913과 같이 바깥쪽으로 폴딩된 윈도우 부들을 보여준다.
또한, 변환 길이는 폴딩점들 간의 거리에 해당한다고 볼 수 있다. 예컨대, 도 9a를 볼 때, 변환 길이가 15 ms와 5 ms 차이인 10 ms 에 해당하는 것이 분명해 진다. 따라서, 변환 길이는 도 9a 및 다른 도면들에서 "블록"으로 표기되는 것에 해당한다. 그러나, 실제 윈도우 처리된 부분의 시간은 실시예의 도 9a 에서의 20 ms와 같이 변환 또는 블록 길이의 2배가 된다.
따라서, 도 9c의 윈도우는 변환 길이 5 ms를 갖는데 이는 윈도우 처리된 부분의 시간이 도 9c에서와 같이 10 ms 에 해당된다.
도 8a의 비대칭 경우에는 변환 길이 또는 블록 크기가 823, 824 와 같은 겹침선 사이의 거리가 되어, 20 ms 가 되며, 윈도우 부 길이은 40 ms가 된다.
완전한 신호 복원을 위해서는 비대칭 윈도우의 긴 중첩부 또는 윈도우 에지(합성 측의 800, 804)가 절단될 때 폴딩선 또는 폴딩된 점들을 유지시키는 것이 필요하다.
또한, 도 4 에서 상세히 설명된 바와 같이, 본 발명의 실시예 에서는 6 개의 서로 다른 샘플링 속도를 사용하고 있으며, 윈도우 에지 또는 측면의 길이를 각 샘플링 속도에서 샘플링 값들의 정수에 해당하도록 선택한다.
또한, 10 ms 변환에서는 3.75 ms의 중첩부 또는 1.25 ms의 중첩부가 사용된다. 그러므로, 도 8a 내지 도 15b에서 설명된 것 보다 많은 경우의 조합이 유용하게 가능하며, 특정 부분에서 전이부를 갖는 어떤 오디오 신호에 대해 적절한 윈도우 절차가 선택되도록 윈도우 제어 신호에 의해 신호처리 될 수 있다.
도 10a는 전이 윈도우 또는 첫번째(제 1) 긴 윈도우 이후의 두번째(제2) 윈도우를 보여준다. 도 10a 에서 비대칭 분석 윈도우 800 의 긴 에지가 원래 길이인 14.375 ms 에서 좌측이 절단되어 그 길이가 8.75 ms로 된다. 따라서, 도 10a는 제 1 비대칭 윈도우의 제 1 중첩부 800 의 절단으로 생긴 제 1 중첩부 1000을 보여주고 있다. 또한 도 10a의 분석 전이 윈도우는 추가적으로 짧은 중첩부 1002 인 1.25 ms의 우측 중첩부를 포함한다. 이 윈도우는 블록 크기가 5 ms로서 윈도우 길이 10 ms에 해당한다. 폴딩선들이 4,375 ms (1004) 와 9.375 ms (1006)에 나타나 있다. 또한, 좌측 폴딩선 1004 와 우측 폴딩선 1010으로 된 폴드-인 부 1008 가 나타나 있다.
도 10b는 페이드-인 적용된 실시예를 보여준다. 제 1 중첩부는 또 다른 제 1 부분 1012 과 수정되지 않은 제 2 부분 1014 를 갖는데 이 둘 다 도 10 a의 제 1 중첩부 1000에 해당한다. 윈도우는 도 10a와 다르지 않다. 바람직하기로, 도 10b에서 1012로 표시된 제 1 중첩부의 제 1 부분을 계산하기 위해서 1,25 ms 사인(sine) 중첩부, 즉, 예로써 도 9b에서 922로 표시된 부분이 사용된다. 이렇게 하여, 매우 양호한 페이드-인 특성이 얻어지는데, 짧은 윈도우의 제 1 중첩부 922 가 말하자면 "재사용" 되는 것이다. 즉 이 윈도우부는 도 9b의 경우에서와 같이 윈도우 처리에 사용될 뿐 아니라, 추가적으로 절단에 의해 생긴 가공 흔적을 줄이기 위해서 분석 전이 윈도우의 계산에도 사용된다. 완전한 신호 복구는 실제 절단된 제 1 중첩부 (도 10 a의 1000)를 사용할 때 얻어지나, 페이드-인 부를 갖는 도 10b의 전이 윈도우를 사용해서도 오디오 품질이 향상될 수 있음이 발견되었다. 이러한 페이드-인 부는 완전한 신호 복구 특성을 잃지 않으면서 도 10 a와 비교했을 때 보다 양호한 오디오 품질을 가져오는데, 이는 도 10a의 좌측 중첩부 1000의 좌측에서 불연속점이 제거되기 때문이다. 그럼에도 불구하고 다른 페이드-인 또는 페이드-아웃(합성측에서) 특성들, 즉 사인 함수와 다른 특성들도 유용하게 가능하면 사용될 수 있다.
도 10c는 도 10a의 윈도우를 나타내나 선행 윈도우의 우측 중첩부 1020 와 후속 윈도우의 좌측 중첩부 1022가 중첩되는 상황을 보여준다. 일반적으로, 우측 중첩부 1020 은 비대칭 분석 윈도우의 우측부(802) (도 8a)가 되고, 후속 윈도우의 1022는 윈도우의 제 1 중첩부 또는 경우에 따라 추가적인 전이 윈도우의 좌특 중첩부가 된다.
도 10d 는 도 10b와 유사한 상황을 보여주며 선행 윈도우의 제 2 중첩부 1020과 후속 윈도우의 제 1 중첩부 1022가 나타나 있다.
도 11a는 추가적인 분석 전이 윈도우를 나타내는데, 도 10a와 다르게, 20 ms 블록에서 10 ms블록으로의 전이 대신에 20 ms 블록에서 5 ms 블록으로의 전이를 보여준다. 일반적으로 20 ms 블록은 긴 블록이고, 5 ms 블록은 짧은 블록, 10 ms는 중간 블록으로 볼 수 있다. 제 1 중첩부 1100 이 짧은 양 만큼 만 절단 되어 있고, 그 절단이 1150 에 나타나 있다. 그러나, 오디오 품질을 더 향상시키기 위해서 1.25 ms 사인 에지를 곱하여 페이드-인이 적용되어 있고, 페이드-인은 실선으로 나타나 있다. 또한, 윈도우는 높은 부분 1101을 가지고 있고, 제 2 중첩부 1102는 3.75 ms의 긴 중첩부이다. 따라서, 도 11a 는 변환 길이를 20 ms 에서 10 ms 로 하는 도 2의 "제 2 윈도우"에 해당되는 분석 전이 윈도우를 최적화 한 것으로서, 좌측 중첩부 1100 를 비대칭 윈도우의 긴 에지 800 을 가능한 한 최소가 되게 절단해서 얻고, 추가 적으로 1.25 ms 사인 에지를 절단된 에지 1150에 곱하여 페이드-인을 구현한 것이다. 도시된 바와 같이 우측 중첩부는 3.75 ms이다.
도 11 b는 20 ms 변환 길이에서 10 ms 변환 길이로, 즉, 긴 변환 길이에서 짧은 변환 길이로의 분석 전이 윈도우의 다른 예를 보여준다. 그러나, 비대칭 윈도우의 좌측 에지를 절단하고 여기에 1,25 ms 사인 에지를 곱하여 페이드-인을 추가함으로써 좌측 윈도우가 8.75 ms가 된다. 즉, 좌측 중첩부 1130 이 도 10a 의 경우와 같은 8.75 ms가 된다. 이러한 윈도우를 얻기 위해서는 추가적인 수정작업이 행해진다. 이러한 수정들은 제 1의 낮은 또는 0 인 부분 1131, 제 2 높고 일정한 부분 1132, 및 제 3의 낮은 부분 1133 들이고, 제 2 중첩부 1134 는 도 11a 에서 해당되는 부분 1102 과 유사하나 제 4의 0 또는 낮은 부분 1133 으로 인해 좌측으로 이동되어 진다. 또한 겹침선 1104, 1106 이 폴드-인 된 부분을 나타내는데 표시선 1135 이 좌측 폴드-인 부분 1136 과 우측 폴드-인 부분 1137 사이의 경계를 나타낸다. 1131, 1132, 1133 들의 부분들은 절단이 도 11a 에서의 최소양보다 더 수행된 결과로 정해진다. 예로써, 1131 부는 0 으로 될 수 있고, 따라서 1132 와 1133 의 길이가 늘어 날 수 있다. 한편, 1133의 길이가 0 으로 될 수 있음으로 해서 1131 의 길이가 커질 수 있고, 또한 1131, 1132, 1133의 모든 부분들은 0 은 아니나 그 해당 길이들이 도 11b의 실시예와 다르게 될 수 있다. 이러한 모든 서로 다른 윈도우 구현에서, 겹침선 1104, 1106 을 통한 폴딩이 가능해야 하고, 도 11b 는 또한, 도 11a와 비교해서, 폴딩 시 제 1 중첩부 1130의 계산과 도 10 b의 좌측부 1012, 1012의 계산이 유사하여 실제적인 윈도우 구현을 쉽게 하는 장점을 갖는다. 그러나, 이러한 특징들이 두드러지게 나타나지 않는 경우에는, 도 11a를 적용할 수 있는데, 이는 제 1 중첩부의 더 긴 중첩부가 더 양호한 신호 복구 특성을 가져와 완전한 복구 법칙을 보다 잘 따르기 때문이다.
도 12a 와 12 b는 짧은 윈도우에서 긴 윈도우로의 추가적인 분석 전이 윈도우들을 보여준다. 도 12a 에 5 ms에서 20 ms로의 예가 나타나 있다. 좌측 중첩부 1200은 짧은 중첩부로 예컨대 1,25 ms이고 우측 중첩부 1202는 긴 중첩부로 8.75 ms이다. 도 12b는 10 ms 블록에서 20 ms 블록으로의 추가적인 분석 전이 윈도우를 나타낸다. 좌측 중첩부는 1210이고 우측 중첩부는 1212 이다. 좌측 중첩부는 3.75 ms의 중간 길이이고 우측 중첩부는 높고 긴 8.75 ms 이다. 폴딩선과 폴드-인 된 부분이 도시되어 있다. 도 12b는 10 에서 20 ms로의 분석 윈도우가 중첩부 1210, 1212 에 더하여 좌측 낮은 또는 0 인 부분 1214, 중간의 높고 일정한 부분 1216, 및 우측의 낮은 또는 0인 부분 1218을 갖는 것을 분명히 보여주고 있다.
도 12 a의 우측 중첩부 1202 와 도 12 b의 우측 중첩부 1212 는 도 8a에서 802 로 표시된 비대칭 분석 윈도우의 짧은 에지에 해당한다.
도 13a, 13b, 13c, 및 13d 는 신호 합성 측 상황을 보여주는데, 즉, 도 2 또는 Case B의 제 3 윈도우 형성을 나타낸다. 또한, 도 13a의 상황은 도 12a의 것과 유사하다. 도 13b의 상황은 도 12b의 것과 유사하다. 도 13c 와 도 13d는 도 10b 및 도 10c와 각각 유사하다.
특히, 도 13a은 긴 블록에서 짧은 블록으로의 합성 전이 윈도우를 나타내는데, 좌측 긴 중첩부 1300, 우측 중첩부 1302, 및 해당 폴딩선과 폴딩부를 보여준다.
도 13b는 20 ms 블록에서 10 ms 블록으로의 합성 전이 윈도우를 나타내는데, 좌측 중첩부는 1310으로 표시된 긴 중첩부이고, 우측 중첩부는 1312 이며, 여기에 추가해서 제 1 낮은 부분 1314, 제 2 높은 부분 1316, 및 제 3의 낮은 부분 1318들이 필요에 맞게 주어져 있다.
도 13c는 도 2, Case B에서 설명된 제 3 합성 윈도우를 보여주는데, 제 2 중첩부 1330 이 나타나 있다. 이 윈도우는 8.75 ms의 길이로, 즉, 도 8b의 비대칭 합성 윈도우에서 우측 또는 제 2 중첩부의 길이로 절단되어 있다. 다시 말해, 우측 중첩부 814를 절단해서 합성 전이 윈도우의 우측 중첩부 1330를 얻고, 도 10b의 분석 측에서 설명된 바와 기본적으로 유사한 페이드-아웃이 추가적으로 행해진다. 이는 도 2, Case B 에서 페이드-아웃 대신에 절단만 가해진 제 3 윈도우의 제 2 중첩부 1330의 상황을 나타낸다. 따라서, 도 13c의 제 1 부분 1331은 도 13d의 해당 제 1 부분과 유사하게 되나, 제 2 부분 1332은 도 13d의 절단된 윈도우에 하강 1.25 ms 사인 에지를 곱한 페이드-아웃으로 인해 달라진다.
또한, 도 13d는 바로 다음의 이어지는 합성 윈도우의 제 1 중첩부 1340을 보여주는데 이는 도 2 에서의 "제 4 윈도우"에 해당한다. 도 13d는 또한 선행 윈도우의 제 2 중첩부 1342를 보여주는데, 1342는 제 2 중첩부 1330과 짧은 중첩부 (예, 1.25ms)인 제 1 중첩부 1331로 이루어진 제 3 윈도우 앞의 윈도우이다.
도시되어 있지 않으나, 도 11의 상황에 해당하는 합성 윈도우가 유용하다. 이 합성 윈도우는 최소한의 절단과 더불어 도 11a에서와 유사한 페이드-인이 가해지거나 또는 안 가해진 윈도우이거나, 또는 도 13d에서와 같은 절단과 함께 제 1 및 제 2의 0 또는 낮은 부분들과 중간의 일정한 부분을 갖는 윈도우이다.
도 14a는 블록 크기들이 긴, 긴, 짧은, 짧은, 중간, 긴 배열로 된 분석 윈도우를 보여주고 도 14b는 해당 합성 윈도우 배열을 보여준다. 도 2 의 제 2 윈도우가 1402로 표시되어 있고, 이는 도 10b에서 설명된 윈도우에 해당한다. 따라서, 도 14b의 제 3 윈도우 함수에 해당하는 매칭 합성 윈도우는 도면에 나타나 있지 않으나 도 11b 의 분석 함수에 해당하는 합성 함수이다.
또한, 도 15a의 1502가 도 11b에 상세히 나타내져 있고, 도 15b의 제 3 윈도우 함수 1550 은 도 13c의 합성 윈도우 함수에 해당한다.
따라서, 도 14a는 20 ms 의 매우 긴 제 1 비대칭 윈도우 (1406) 에서 제 1 비대칭 윈도우 (1400) 으로의 전이를 보여주는데, 도 8a의 0 값인 부분 (806) 또한 나타내져 있다. 도 14a에서 긴 비대칭 윈도우 1400 에 뒤이어 절단된 제 1 중첩부 1402 를 갖는 제 2 윈도우 함수가 보여진다. 그 이후의 윈도우 1408은 도 9b의 윈도우와 유사하고, 그 다음 윈도우 1410은 도 9c의 윈도우에 해당하며, 마지막 윈도우 1412는 다시 도 8a의 비대칭 분석 윈도우가 된다.
도 14b는 도 8b에 해당하는 긴 합성 윈도우 1454, 도 8b에 해당하는 추가적인 비대칭 합성 윈도우 1456, 및 이후의 도 13a에 해당하는 짧은 전이 윈도우 1458을 보여준다. 후속하는 윈도우 1460 또한 도 8c에 해당되는 5 ms의 블록크기를 갖는 짧은 윈도우이다.
도 15a와 15b는 유사한 윈도우 순서를 보여주는데 이 경우에는 긴 윈도우에서 10 ms의 길이를 갖는 중간 윈도우로의 전이와 그 반대 전이를 보여준다. 윈도우 1504와 1500은 도 8a에 해당한다. 이들 윈도우에 이어 본 발명의 절단 되고 페이드-인 된 윈도우 1502 가 뒤따르고, 뒤이어 도시된 순서와 같이 1506, 1508, 및 1510 윈도우들이 따른다. 윈도우 1506 은 도 9b에 해당하나 좌측에 긴 중첩부, 우측에 짧은 중첩부를 갖는다. 윈도우 1508은 도 12a의 윈도우에 해당되고, 윈도우 1510은 다시 긴 비대칭 윈도우가 된다.
도 15b의 합성 윈도우에는 윈도우 1554, 1556, 1558, 및 1560 들이 있다. 1554는 도 8b의 합성 윈도우에 해당하고 1556도 마찬가지이다. 윈도우 1558은 20 ms 에서 10 ms로의 전이를 나타내며 도 13b에 해당한다. 윈도우 1560은 10 ms에서 5 ms 로의 전이를 보이고 도 9b에 해당하는데, 또 다시 좌측의 긴 중첩부가 우측과 중첩되게 된다. 뒤이어 본 발명의 절단되고 페이드-아웃된 윈도우 1550과 연이은 긴 비대칭 합성 윈도우가 따른다.
이하에, 윈도우 형성기 206의 바람직한 실시예를 도 3을 참조해서 설명한다. 특히, 윈도우 형성기는 바람직하기로는 메모리 300, 윈도우부 절단기 302, 와 페이더 304를 포함한다. 310 요소에서 설명된 전이를 지시하는 윈도우 제어 정보에 따라, (예컨대, 제 1 윈도우에서 제 2 윈도우로 또는 제 3 윈도우에서 제 4 윈도우로) 윈도우부 절단기 302 가 실행된다. 절단기는 비대칭 윈도우부 800과 제 4 윈도우의 제 2 중첩부 814 를 얻기 위해 메모리에 접근한다. 각 부분은 메모리 300의 회수선 308에 의해 윈도우 절단기로 회수된다. 윈도우 절단기 302는 최대 절단 길이 또는 최대 보다 짧은 일정 길이로의 절단을 수행한다. 절단되 중첩부 또는 윈도우 에지 316 는 페이더 304 로 전달된다. 그러면 페이더는 페이드-인 또는 페이드-아웃을 수행하는데, 예컨대, 페이드-인이 없는 절단된 윈도우 (도 10c)에서 도 10b의 윈도우를 얻는 작업을 수행한다. 이러한 작업 수행을 위하여, 페이더는 회수선 312을 통한 짧은 중첩부 메모리에서 액세스 선 314 을 통한 메모리에 접근한다. 그리고 나서 페이더 304 는 316 선에서 절단된 윈도우에 대해 페이드-인 또는 페이드-아웃을, 예로서, 중첩부에 절단부를 곱해서 수행한다. 그 결과물은 출력선 318에서의 절단되고 페이드 처리된 부가 된다.
도 4 는 메모리 300, 윈도우 형성기의 윈도우 형성, 윈도우의 여러 형태와 가능성들을 메모리 최소로 사용되도록 최적화 하는 바람직한 실시예를 보여준다. 본 발명의 바람직한 실시예는 6 개의 샘플링 속도, 48 kHz, 32 kHz, 25.6 kHz, 16 kHz, 12.8 kHz, 또는 8 kHz 들을 사용한다. 각 샘플링 속도에 대해 일단의 윈도우 계수 또는 윈도우부가 저장된다. 이것은 제 1의 20 ms 비대칭 윈도우부, 제 2의 20 ms 비대칭 윈도우부, 3.75 ms 중첩부를 갖는 10 ms 대칭 윈도우 단일부, 1.25 ms의 중첩부를 갖는 5 ms 대칭 윈도우 단일부로 구성된다. 일반적으로, 10 ms 대칭 윈도우의 단일부는 윈도우의 상승 에지일 수 있고, 미러링과 같은 산술 또는 논리 작업을 통하여 하강부가 계산될 수 있다. 또는 하강부가 단일부로 메모리 300에 저장될 때는 상승부를 산술 또는 논리 작업으로 계산해 낼 수 있다. 이는 5 ms 대칭 윈도우 단일부에도 똑같이 적용될 수 있는데, 5 내지 190 ms의 길이를 갖는 모든 윈도우는 각 측면에 3.75 ms와 같은 중간 중첩부나 1.25 ms와 같은 짧은 중첩부를 가질 수 있기 때문이다.
또한, 윈도우 형성기는 자체로 정해진 룰에 따라 도 8a 내지 15b에 나타난 바와 같이 낮거나 0 인 부분과 높은 단일부의 특정 윈도우들의 길이와 위치를 결정하도록 구성된다.
이렇게 함으로써, 메모리의 최소양 만 인코더나 디코더를 실행하는데 필요하게 된다. 따라서, 인코더나 디코더가 하나의 동일한 메모리 300에 의존한다는 사실과는 별도로, 여러 윈도우나 전이 윈도우 등에서 버려지는 것들마저도 각 샘플링 속도에 대해 단지 4개 세트의 윈도우 계수만을 저장하여 실행될 수 있다.
위에서 설명된 변환 윈도우 스위칭을 장 변환 비대칭 윈도우나 단변환 저 중첩 사인 윈도우를 사용하여 오디오 코딩 시스템에서 실행 하었다. 긴 블록크기는 20 ms 이고 짧은 블록 크기는 5 ms이다. 비대칭 분석 윈도우의 좌측 윈도우는 길이가 14,375 ms이고 우측 중첩부 길이는 8.75 ms이다. 짧은 윈도우는 3.75 ms와 1.25 ms의 중첩부를 사용한다. 인코더 즉에서 20 ms에서 10 도는 5 ms로의 전이를 위해서 비대칭 분석 윈도우의 좌측 중첩부는 8.75 ms로 절단되어 제 1 단 변환의 좌측 윈도우부로 사용된다. 절단된 윈도우의 좌측단에 1.25 ms 의 상승 윈도우 중첩부를 곱하여 1.25 ms 사인 형상의 페이드-인 이 적용된다. 1.25 ms,중첩 윈도후 형상을 페이드-인에 사용함으로써 추가적인 ROM'RAM 표를 사용할 필요가 없어지고, 페이드-인 형상의 복잡한 이동식 계산도 필요없게 된다. 그 결과 도 14a에 예로서 20 mw, 5 ms, 5 ms, 10 ms, 20,ms의 변환길이 순서를 갖는 윈도우 순서가 도시되어 있다.
디코더 측의 10 ms 또는 5 ms에서 20ms 로의 전이에서는 비대칭 합성 윈도우의 우측 중첩부가 8,75 ms로 절단되어 마지막 짧은 변환 윈도우의 우측부에 사용된다. 인코더의 페이드-인과 유사하게 1.25 ms 사인 형상의 페이드-아웃이 윈도우 절단부에 적용된다. 디코더 윈도우 순서의 예가 도 14b에 나타나 있다.
도 5는 제 2 윈도우, 즉, 도 2의 CAse A의 분석 전이 윈도우를 결정하는 실시예의 흐름도를 보여준다. 단계 500에서 제 1 및 제 2 비대칭 윈도우부가 회수된다. 단계 502에서 제 1 비대칭 분석 윈도우가 설정된다. 이렇게 도 14B,의 분석 윈도우 1400이나 도 15A의 1500가 생성된다. 단계 504에서 비대칭 윈도우의 제 1 부분이 회수선에 의해 회수된다. (예; 도 3의 308) 단계 506에서, 절단 길이가 결정되고, 도 3의 윈도우 절단기 302에 의해 절단이 이루어진다. 단계 508에서, 5 ms 대칭 윈도우의 단일부 (401)가 회수되어 메모리 300 에 저장된다. 단계 510에서 절단부의 페이드-인이 계산되는데 예로서 페이더 304에 의해 이루어진다. 단계 512에서 예로서, 긴 윈도우에서 짧은 윈도우로의 전이로 5 ms 대칭 윈도우 단일부가 회수되고 또는, 긴 윈도우에서 중간 윈도로의 전이로 10 ms 대칭 윈도우 단일부가 회수된다. 마지막으로, 단계 512에서 회수된 데이터에서 논리 또는 산술 작업으로 제 2 부분이 결정된다. (단계 514). 그러나, 도 4의 메모리 300 에서 단계 512에 의해 회수되는 해당 대칭 윈도우 단일부가 제 2 부, 즉, 상승 윈도우 에지로 사용될 수 있기 때문에 단계 514가 반드시 필요한 것은 아니다.
도 5에 명확히 나타나 있지 않으나, 도 15a에서 설명된 전이를 위해서 추가적인 단계가 더 필요하다. 이 경우 제 1 의 0 인 부분, 제 2의 0 인 부분과 중간의 높은 부분들이 윈도우 형성기에 의해 추가적으로 삽입되어야 하는데, 이러한 삽입은 제 2 윈도우의 제 1 및 제 2 중첩부가 결정되기 전이나 후에 이루어 질 수 있다.
도 6은 제 3 윈도우와 같은 합성 전이 윈도우를 형성하는 절차를 보여주는 실시예이다. 이를 위해 도 6a의 절차가 수행될 수 있다. 단계 800에서 제 3 윈도우의 제 1 중첩부가 메모리에서 회수되거나, 또는 이러한 형태를 구체적으로 얻을 수 없을 경우에는 메모리 데이터로부터 산술 또는 논리 연산에 의해 계산되는데, 합성 윈도우의 제 1 중첩부는 이미 선행 윈도우의 중첩부에의해 고정되기 때문에 선행 윈도우에 따라 계산된다. 비대칭 윈도우의 제 2 부분, 즉, 비대칭 합성 윈도우의 긴 부분이 회수되어 단계 604에서 절단 길이가 결정된다. 단계 606에서, 제 1 부분은 필요할 경우 미러화 되어, 정해진 절단 길이로 절단이 이루어진다. 단계 608에서 대칭 윈도우의 5 ms 단일 중첩부가 회수되고, 이어서 단계 608에서 절단된 부분의 페이드-아웃이 단계 610에서 설명된 바와 같이 실행된다. 제 3 윈도우의 제 2 중첩부 완성에 이어 비대칭 제 4 윈도우 함수의 제 2 및 제 4 부분들이 회수되고, 최종적으로 제 4 윈도우 형성에 적용된다. (단계 612)
도 7은 절단 길이를 결정하는 절차를 나타낸다. 도 10b와 11b에서 설명된 바와 같이, 서로 다른 절단 길이가 정해질 수 있다. 최대 절단 길이로 절단이 이루어 질 수 있고 (도 11a의 상황) 또는 같은 상황에 대해 도 11b에서와 같이 최대보다 작은 길이로 절단 될 수 있다. 이를 위해, 도 7의 절차는 단계 700에서 전이 윈도우의 길이를 지시하는데서 부터 시작한다. 따라서, 단계 700 은 전이 윈도우가 10ms의 블록 크기에 대해 20 ms 이거나, 또는 블록 크기 5 ms에 대해 10 ms길이가 된다.
그 다음 단계 702에서 윈도우의 대칭 중첩부의 길이가 정해진다. 신호 분석측에서 제 2 중첩부 길이가 정해지고, 합성 측에서 제 1 중첩부의 길이가 정해진다는 것을 의미한다. 단계 702는 전이 윈도우의 "고정된" 상황을 인지하여 전이 윈도우가 대칭적 중첩부를 확실히 갖도록 한다. 단계 704에서, 윈도우의 제 2 에지 또는 다른 중첩부가 결졍된다. 기본적으로 최대 절단 길이는 전이 윈도우의 길이와 대칭 중첩부 길이 사이의 차이이다. 이 길이가 비대칭 윈도우의 긴 에지보다 큰 경우에는 절단이 전혀 필요 없게 된다. 그러나 이 차이가 비대칭 윈도우의 긴 에지보다 작은 경우에는 절단이 일어난다. 최대 절단 길이, 즉, 최소 절단이 얻어지는 길이는 이 차이와 동등하다. 필요한 경우 최대 길이로의 절단, 즉, 최소 절단을 할 수 있고 도 11a나 10b 에서와 같이 일정 페이드를 적용할 수 있다. 도 11a에서와 같이 폴딩선 1104, 1106을 따른 폴딩이 가능하기 위해서 일정한 수의 1 값들이 필요하게 되는데 이는 폴딩선이 어떤 실시예에서도 바뀌지 않아야 하기 때문이다. 따라서, 일정한 수의 1 값들은 도 11a의 1101 과 같이 20 에서 10 ms로 되는 분석 전이 윈도우에는 필요하나 도 10b과 같은 20에서 5ms로의 전이 윈도우에는 필요 없게 된다.
단계 704 는 단계 708 에서와 같이 우회될 수도 있다. 이 경우 최대 길이보다 작은 절단이 단계 710에서 이루어지고, 도 11b의 상황으로 이어진다. 남아 있는 윈도우부는 0 과 1 로서 채워져야 하고 특히, 단계 712 에서 1131과 1133으로 표시된 바와 같이 윈도우의 맨 처음과 끝에는 0 이 삽입되어야 한다. 또한, 대응되는 수 만큼의 1 값이 높은 부분 1132를 얻기 위해 삽입되어야 하는데 (단계 714), 이는 폴딩점 1104와 1106을 주위로 폴딩-인이 도 11b에서와 같이 적절하게 수행되도록 하기 위해서다.
그러므로, 1131 부분의 0 의 갯수는 바로 인접한 제 1 중첩부 1130 의 0 의 갯수와 같고, 도 11b의 1133 부분의 0의 갯수는 인접한 제 2 중첩부 (도 11b의 1134)의 0 의 갯수에 해당한다. 이리하여 표시선 1135으로 된 폴딩이 폴딩선 1104와 1106을 주위로 적절하게 이루어지게 된다.
실시예에서 긴 윈도우로서 40 ms 윈도우 길이, 20 ms 변환 길이, 중간 윈도우로서 10 ms 블록크기, 및 짧은 윈도우로서 5 ms 블록크기들을 갖는 경우는 설명되어 있지 않으나, 본 발명은 단지 두 개의 서로 다른 블록크기들에 대해서도 유용하나 과도 신호에 대해 짧은 윈도우 함수를 매우 양호하게 위치시키기 위해서는 세 개의 서로 다른 블록 크기들도 바람직하다는 것이 강조되어야 하겠다. 이러한 예는 도 15a, 15b 14a, 및 14b에서 보인 두 개 이상의 윈도우들 사이의 중첩과 같은 다중 중첩부를 설명하는 PCT/EP2014/053287에 상세히 설명되어 있다.
본 발명의 블록도에서 각 블록이 실제 또는 논리상 하드웨어 요소들을 나타내는 것으로 되어 있으나, 본 발명은 컴퓨터 수행 방법으로도 실시될 수 있다. 후자의 경우, 각 블록은 방법상의 단계에 해당하며 그 기능들은 해당되는 논리 또는 물리적 블록들에 의해 수행된다.
본 발명에서 장치와 관련해서 몇 가지 경우를 설명하고 있으나, 이러한 경우들 또한, 해당 방법들의 설명을 나타내고, 각 블록 또는 디바이스는 방법상 단계 또는 그 특징에 해당한다. 마찬가지로, 방법상 단계와 관련된 것들은 해당 장치의 해당 블록 또는 아이템 또는 특징을 나타낸다. 방법상 단계들의 일부 또는 전부는 하드웨어 장치, 예컨대, 마이크로프로세서, 프로그램머블 컴퓨터 또는 전자 회로 등과 같은 들로써 수행될 수 있다. 몇몇 실시예들에서, 하나 이상의 가장 중요한 방법상 단계들은 그러한 장치에 의해 수행된다.
본 발명의 인코드 되거나 전달되는 신호는 디지털 저장 장치에 저장될 수 있거나, 무선 전달 매체나 인터넷과 같은 유선 전달 매체상에서 전달될 수 있다.
어떤 실시 요구사항에 따라 본 발명의 실시예는 하드웨어나 소프트웨어에서 실시될 수 있다. 그러한 실시는 디지털 저장 매체, 예컨대, 플로피 디스크, DVD, 블루레이, CD, ROM, PROM, EPROM, 플래시 메모리와 그들에 저장된 전자적으로 해독 가능한 제어 신호를 이용하여 수행될 수 있으며, 이들은 각 방법이 수행되도록 프로그램머블 컴퓨터 시스템과 연계되거나 연계될 수 있다. 따라서, 디지털 저장매체는 컴퓨터 해독 가능하다.
본 발명에 따는 몇몇 실시예는 전자적으로 해독 가능한 제어 신호를 갖는 데이터 캐리어를 포함하여 여기에서 설명된 각 방법이 수행되도록 프로그램머블 컴퓨터 시스템과 연계될 수 있다.
일반적으로, 본 발명은 프로그램 코드를 갖는 컴퓨터 프로그램으로 실시될 수 있는데, 컴퓨터 프로그램이 컴퓨터에서 실행될 때 프로그램 코드가 각 방법의 수행을 위해 실행될 수 있다. 그러한 프로그램 코드는 예컨대 기계 해독이 가능한 캐리어에 저장될 수 있다.
다른 실시예는 각 방법을 수행하고 기계 해독이 가능한 캐리어에 저장되는 컴퓨터 프로그램을 포함한다.
다시 말해, 본 발명의 방법의 실시예는 컴퓨터 프로그램이 컴퓨터에서 실행될 때 각 방법을 실행하는 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 또 다른 실시예는 데이터 캐리어 (또는 디지털 저장 매체와 같은 비 일시적 저장 매체, 또는 컴퓨터 해독 가능한 매체)가 되는데, 이는 그에 기록된 각 방법들을 수행하기 위한 컴퓨터 프로그램이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 일반적으로 손에 잡힐 수 있으며 비 일시적인 것들이다.
본 발명의 또 다른 실시예는 신호의 데이터 스트림 또는 시퀀스로서 각 방법을 수행하기 위한 컴퓨터 프로그램이다. 신호의 데이터 스트림 또는 시퀀스는 예로서, 인터넷과 같은 데이터 통신 연결을 통하여 전달되도록 구성된다.
또 다른 실시예는 컴퓨터 또는 프로그램머블 로직 디바이스 들과 같은 프로세싱 수단으로서 각 방법들을 수행하기 위해 구성 또는 맞추어 진다.
또 다른 실시예는 각 방법들을 수행하기 위한 컴퓨터와 그에 설치된 컴퓨터 프로그램이다.
본 발명에 따른 또 다른 실시예는 각 방법들을 수행하는 컴퓨터 프로그램을 수신기로 전달하도록(전기적으로 또는 광으로) 구성되는 장치 또는 시스템이다. 수신기는 예컨대, 컴퓨터, 모바일 디바이스, 메모리 디바이스 등과 같은 것 들이다.장치 및 시스템은 예컨대 컴퓨터 프로그램을 수신기로 전달하는 파일 서버를 포함한다.
몇몇 실시예에서는 프로그래머블 로직 디바이스 (예, 필드 프로그램머블 게이트 어레이)가 방법들의 일부 또는 모든 기능들을 수행하기 위해 사용될 수 있다. 몇몇 실시예에서 필드 프로그램머블 게이트 어레이는 각 방법을 수행하기 위해 마이크로프로세서와 연동할 수 있다. 일반적으로 각 방법들은 하드웨어 장치에 의해 수행되는 것이 바람직하다.
상기에 설명된 실시예는 단지 본 발명의 윈리를 나타내는 것이다. 그 구성이나 상세한 내용의 어떠한 수정이나 변형도 이 분야의 다른 기술자들에게 자명하게 될수 있으며, 그 범위가 첨부된 특허 클레임이나 실시예에서 구체적으로 설명된 상세한 내용 들에 의해서 제한되지 않다는 것을 이해해야 한다.
참고문헌
[1] International Organization for Standardization, ISO/IEC 14496-3, "Information Technology- Coding of audio-visual objects - Part 3: Audio, " Geneva, Switzerland, Aug. 2009.
[2] Internet Engineering Task Force (IETF), RFC 6716, "Definition of the Opus Audio Codec," Sep. 2012.
[3] C.R.Helmrich, G.Markovic and B.Edler, "Improved Low-Delay MDCT-Based Coding of Both Stationary and Transient Audio Signals," in Proceedings of the IEEE 2014 Int. Conference on Acoustics, Speech and Signal Processing (ICASSP), 2014, or PCT/EP2014/053287.
102; 제어가능한 윈도우어, 104; 컨버터. 108; 윈도우 형성기
170; 주파수-시간 컨버터, 174; 중첩-첨가기
202; 분석기, 214; 디코더 프로세서
302; 윈도우 절단기, 304; 페이더
170; 주파수-시간 컨버터, 174; 중첩-첨가기
202; 분석기, 214; 디코더 프로세서
302; 윈도우 절단기, 304; 페이더
Claims (18)
- 오디오 신호 처리를 위한 프로세서에 있어서,
제 2 윈도우(1402)가 제 1 윈도우(1400) 보다 짧고, 제 3 윈도우(1450)가 제 4 윈도우(1452) 보다 짧은 상태에서, 제 1 비대칭 윈도우(1400)에서 제 2 윈도우(1402)로의 변화 또는 제 3 윈도우(1450)에서 제 4 비대칭 윈도우(1452)로의 변화를 지시하는 윈도우 제어 신호(204)를 오디오 신호(200)로부터 추출하는 분석기;
제 1 비대칭 윈도우(1400)의 제 1 중첩부(800)을 이용하여 제 2 윈도우(1402)를 형성하는데, 제 1 비대칭 윈도우에서 절단된 제 1 중첩부를 이용해서 제 2 윈도우(1402)의 제 1 중첩부(1000)를 결정하고, 또한 제 4 비대칭 윈도우에(1452)에서 절단된 제 2 중첩부(814)를 이용해서 제 3 윈도우(1450)의 제 2 중첩부(1330)를 계산하는 것을 특징으로 하는 윈도우 형성기(206); 및
제 1 및 제 2 윈도우 또는 제 3 및 제 4 윈도우를 부가하여 윈도우화 된 오디오 신호부(210)를 얻는 윈도우어(208);
들을 포함하는 오디오 신호 처리를 위한 프로세서. - 제 1 항에 있어서,
제 1 및 제 2 윈도우는 분석 윈도우이고, 제 3 및 제 4 윈도우는 합성 윈도우이며;
제 1 및 제 2 윈도우로 처리된 샘플들을 추가 적으로 프로세싱하기 위한 오디오 인코더(110)와 제 3 및 제 4 윈도우로 처리된 샘플들을 중첩-첨가하기 위한 중첩-첨가기(174);
를 더 포함하는 오디오 신호 처리를 위한 프로세서. - 제 1 항 또는 2 항에 있어서,
윈도우 형성기(206)가
제 1 윈도우에서 제 1 중첩부를 절단하고 이 절단부를 페이드-인 처리하여 제 2 윈도우의 제 1 중첩부를 도출하고; 또한,
제 4 윈도우에서 제 2 중첩부를 절단하고 이 절단부를 페이드-아웃 처리하여 제 3 윈도우의 제 2 중첩부를 도출하도록 구성되는 것;
을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 3 항에 있어서,
윈도우 형성기(206)가
사인 페이드-인 함수와 사인 페이드-아웃 함수를 사용하여 페이드-인 및 페이드-아웃을 수행하도록 구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 3 항 또는 4 항에 있어서,
윈도우 형성기(206)가
프로세서에서 사용되는 어느 다른 윈도우의 중첩부를 사용하여 페이드-인 또는 페이드-아웃을 계산하도록 구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 5 항에 있어서,
윈도우 형성기(206)가
사용되는 모든 중첩부들 중에서 가장 짧은 중첩부(401)를 사용하여 페이드-인 또는 페이드-아웃(304)을 계산하도록 구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
일정 샘플링 속도에 대하여, 제 1 비대칭 윈도우의 제 1 중첩부(800), 제 1 비대칭 윈도우의 제 2 중첩부(802), 및 제 1 윈도우 보다 짧은 추가적인 윈도우의 제 3 중첩부들을 저장하는 메모리(300)를 더 포함하고;
메모리(300)의 제 1 비대칭 윈도우에서 제 1 중첩부를 회수(308)하여, 제 1 중첩부의 길이 보다 짧은 길이로 제 1 중첩부를 절단(302)하고, 제 3 중첩부를 회수(312)해서 절단된 제 1 중첩부에 제 3 중첩부를 곱하여(304) 제 2 윈도우의 제 1 중첩부를 생성하고; 또한,
메모리(300)의 제 4 비대칭 윈도우에서 제 2 중첩부를 회수(300)하여, 제 2 중첩부의 길이 보다 짧은 길이로 제 2 중첩부를 절단(302)하고, 제 3 중첩부를 회수(312)해서 절단된 제 2 중첩부에 제 3 중첩부를 곱하여 제 3 윈도우의 제 2 중첩부를 생성하도록;
윈도우 형성기(206)가 구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 7 항에 있어서,
메모리(300)가 더 추가되는 윈도우의 제 4 중첩부(402)를 더 저장하고, 더 추가되는 윈도우의 길이가 제 1 윈도우의 길이와 추가되는 윈도우 길이 사이에 있는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 8 항에 있어서,
윈도우 형성기(206)가 윈도우 제어 신호(204)에 따라,
제 1 윈도우(1400); 제 2 윈도우(1402); 제 3 중첩부와 제 4 중첩부를 사용하거나, 또는 제 3 중첩부만을 사용해서 형성되는 추가적인 윈도우; 및 제 3 중첩부와 제 1 윈도우의 제 2 중첩부를 사용해서 형성되는 더 추가적인 윈도우(1410) 들을 포함하는 순서를 형성하도록 구성되어지는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
윈도우 형성기(206)가
제 1 비대칭 윈도우의 제 2 중첩부의 길이로 절단되는 제 1 중첩부를 사용하여 제 1 중첩부를 결정하고; 또한
제 4 비대칭 윈도우의 제 1 중첩부의 길이로 절단되는 제 4 윈도우의 제 2 중첩부를 사용하여 제 3 윈도우의 제 2 중첩부를 결정하도록;
구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
윈도우 형성기(206)가
제 2 윈도우를 제 1 중첩부와 제 2 윈도우 이후에 추가되는 윈도우의 제 1 중첩부(1022)에 해당되는 제 2 중첩부(1002)를 사용해서 결정하고; 또한,
제 3 윈도우(1450)를 이에 선행하는 윈도우의 제 2 중첩부(1342)에 해당되는 제 1 중첩부(1331)를 사용하여 형성하도록;
구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
제 1 비대칭 윈도우의 제 1 중첩부와 제 4 비대칭 윈도우의 제 2 중첩부를 제 2 또는 제 3 윈도우의 길이와 동등한 또는 짧은 길이로 절단하는데, 제 2 윈도우에 후속하여 추가되는 윈도우의 제 1 중첩부의 길이나 제 3 윈도우에 선행하여 추가되는 윈도우의 제 2 중첩부의 길이보다 작게 되도록 윈도우 형성기(206)가 구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 12 항에 있어서,
윈도우 형성기(206)가
절단 길이를 윈도우 길이보다 작게 하여 추가되는 윈도우의 제 1 중첩부 길이나 제 2 중첩부 길이보다 작게 되게 할 때,
제 2 또는 제 3 윈도우의 제 1 및 제 2 중첩부 이전이나 이후에 0 값(1131, 1133)을 삽입(712)하고;
제 2 또는 제 3 윈도우의 제 1 및 제 2 중첩부 사이에는 1 값을(714; 1132) 추가 삽입하도록;
구성되는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 제 1 항 내지 3 항 중 어느 한 항에 있어서,
제 1 비대칭 윈도우는 제 1 중첩부, 제 2 중첩부, 제 1과 제 2 중첩부 사이에 높은 값을 갖는 제 1 부분 및 제 2 중첩부 이후에 낮은 값을 갖는 제 2 부분들로 구성되고, 높은 값은 0.9 보다 크고, 낮은 값은 0.1 보다 작으며, 제 2 중첩부의 길이는 제 1 중첩부의 길이보다 작게 되도록 하는 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
프로세서는 다수의 서로 다른 샘플링 속도에서 작동하고,
각 샘플링 속도에서, 제 1 및 제 4 윈도우(403, 404)의 제 1 및 제 2 중첩부, 추가되는 윈도우(402)의 대칭적 중첩부, 및 추가되는 윈도우 보다 짧은 더 추가되는 윈도우의 추가된 대칭적 중첩부(401)들을 저장하고;
대칭적 중첩부와 더 추가된 대칭적 중첩부는 상승 또는 하강부로서만 저장되고; 또한,
윈도우 형성기(206)가 저장된 상승 또는 하강부에서 산술 또는 논리 연산에 의해 하강 또는 상승부를 도출하도록 구성되는 것을;
특징으로 하는 오디오 신호 처리를 위한 프로세서. - 상기 어느 한 항에 있어서,
제 1 윈도우는 20 ms의 변환 길이로 구성되고;
윈도우 형성기는 10 ms 또는 5 ms 의 변환 길이을 위해 추가적인 윈도우를 사용하도록 구성되며;
제 2 윈도우는 20 ms 변환 길이에서 10 ms 또는 5 ms 변환 길이로의 전이 윈도우이고;
제 4 윈도우는 20 ms 변환 길이로 구성되고; 및
제 3 윈도우는 5 ms 에서 20 ms 변환 길이로 또는 10 ms 에서 20 ms 변환 길이로의 전이 윈도우인 것을 특징으로 하는 오디오 신호 처리를 위한 프로세서. - 오디오 신호 처리 방법에 있어서,
제 2 윈도우(1402)가 제 1 윈도우(1400) 보다 짧고, 제 3 윈도우(1450)가 제 4 윈도우(1452) 보다 짧은 상태에서, 제 1 비대칭 윈도우(1400)에서 제 2 윈도우(1402)로의 변화 또는 제 3 윈도우(1450)에서 제 4 비대칭 윈도우(1452)로의 변화를 지시하는 윈도우 제어 신호(204)를 오디오 신호(200)로부터 추출하는 단계;
제 1 비대칭 윈도우(1400)의 제 1 중첩부(800)을 이용하여 제 2 윈도우(1402)를 형성하는데, 제 1 비대칭 윈도우에서 절단된 제 1 중첩부를 이용해서 제 2 윈도우(1402)의 제 1 중첩부(1000)를 결정하고, 또한 제 4 비대칭 윈도우에(1452)에서 절단된 제 2 중첩부(814)를 이용해서 제 3 윈도우(1450)의 제 2 중첩부(1330)를 계산하는 것을 특징으로 하는 윈도우를 형성하는 단계(206); 및
제 1 및 제 2 윈도우 또는 제 3 및 제 4 윈도우를 부가하여 윈도우화 된 오디오 신호부(210)를 얻는 윈도우어(208) 단계;
들을 포함하는 오디오 신호 처리 방법. - 컴퓨터 또는 프로세서상에서 작동하여 제 17 항의 방법을 실행하는 컴퓨터 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14178774.7A EP2980791A1 (en) | 2014-07-28 | 2014-07-28 | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
EP14178774.7 | 2014-07-28 | ||
PCT/EP2015/066997 WO2016016120A1 (en) | 2014-07-28 | 2015-07-24 | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170033883A true KR20170033883A (ko) | 2017-03-27 |
KR102006897B1 KR102006897B1 (ko) | 2019-08-02 |
Family
ID=51224864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177004865A KR102006897B1 (ko) | 2014-07-28 | 2015-07-24 | 절단 분석 또는 합성 윈도우 중첩부를 이용한 오디오 신호 처리를 위한 프로세서, 방법 및 컴퓨터 프로그램 |
Country Status (18)
Country | Link |
---|---|
US (3) | US10262666B2 (ko) |
EP (4) | EP2980791A1 (ko) |
JP (3) | JP6612846B2 (ko) |
KR (1) | KR102006897B1 (ko) |
CN (2) | CN107077854B (ko) |
AR (1) | AR102037A1 (ko) |
AU (1) | AU2015295602B2 (ko) |
CA (1) | CA2956010C (ko) |
ES (2) | ES2940783T3 (ko) |
FI (1) | FI3584792T3 (ko) |
MX (1) | MX369755B (ko) |
MY (1) | MY192272A (ko) |
PL (2) | PL3584792T3 (ko) |
PT (2) | PT3175448T (ko) |
RU (1) | RU2677385C2 (ko) |
SG (1) | SG11201700694PA (ko) |
TW (1) | TWI581252B (ko) |
WO (1) | WO2016016120A1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2980791A1 (en) | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
US9959877B2 (en) * | 2016-03-18 | 2018-05-01 | Qualcomm Incorporated | Multi channel coding |
JP6976277B2 (ja) * | 2016-06-22 | 2021-12-08 | ドルビー・インターナショナル・アーベー | 第一の周波数領域から第二の周波数領域にデジタル・オーディオ信号を変換するためのオーディオ・デコーダおよび方法 |
US10249307B2 (en) * | 2016-06-27 | 2019-04-02 | Qualcomm Incorporated | Audio decoding using intermediate sampling rate |
EP3483879A1 (en) * | 2017-11-10 | 2019-05-15 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Analysis/synthesis windowing function for modulated lapped transformation |
CN108847258B (zh) * | 2018-06-10 | 2021-06-04 | 北京酷我科技有限公司 | 一种截取音频控件的实现方法 |
CN111402917B (zh) * | 2020-03-13 | 2023-08-04 | 北京小米松果电子有限公司 | 音频信号处理方法及装置、存储介质 |
CN112309425B (zh) * | 2020-10-14 | 2024-08-30 | 浙江大华技术股份有限公司 | 一种声音变调方法、电子设备及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140142930A1 (en) * | 2011-07-12 | 2014-05-22 | Orange | Adaptations of analysis or synthesis weighting windows for transform coding or decoding |
Family Cites Families (24)
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 |
CN1062963C (zh) * | 1990-04-12 | 2001-03-07 | 多尔拜实验特许公司 | 用于产生高质量声音信号的解码器和编码器 |
JP3518737B2 (ja) | 1999-10-25 | 2004-04-12 | 日本ビクター株式会社 | オーディオ符号化装置、オーディオ符号化方法、及びオーディオ符号化信号記録媒体 |
JP2002118517A (ja) | 2000-07-31 | 2002-04-19 | Sony Corp | 直交変換装置及び方法、逆直交変換装置及び方法、変換符号化装置及び方法、並びに復号装置及び方法 |
CN101035527A (zh) * | 2004-09-13 | 2007-09-12 | 伊利舍医药品公司 | 治疗疾病的方法 |
US8744862B2 (en) | 2006-08-18 | 2014-06-03 | Digital Rise Technology Co., Ltd. | Window selection based on transient detection and location to provide variable time resolution in processing frame-based data |
US7987089B2 (en) * | 2006-07-31 | 2011-07-26 | Qualcomm Incorporated | Systems and methods for modifying a zero pad region of a windowed frame of an audio signal |
US8036903B2 (en) * | 2006-10-18 | 2011-10-11 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Analysis filterbank, synthesis filterbank, encoder, de-coder, mixer and conferencing system |
MY154452A (en) * | 2008-07-11 | 2015-06-15 | Fraunhofer Ges Forschung | An apparatus and a method for decoding an encoded audio signal |
CN102177426B (zh) | 2008-10-08 | 2014-11-05 | 弗兰霍菲尔运输应用研究公司 | 多分辨率切换音频编码/解码方案 |
US9384748B2 (en) * | 2008-11-26 | 2016-07-05 | Electronics And Telecommunications Research Institute | Unified Speech/Audio Codec (USAC) processing windows sequence based mode switching |
AR075199A1 (es) | 2009-01-28 | 2011-03-16 | Fraunhofer Ges Forschung | Codificador de audio decodificador de audio informacion de audio codificada metodos para la codificacion y decodificacion de una senal de audio y programa de computadora |
WO2011048117A1 (en) * | 2009-10-20 | 2011-04-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Audio signal encoder, audio signal decoder, method for encoding or decoding an audio signal using an aliasing-cancellation |
ES2805349T3 (es) * | 2009-10-21 | 2021-02-11 | Dolby Int Ab | Sobremuestreo en un banco de filtros de reemisor combinado |
EP2372705A1 (en) | 2010-03-24 | 2011-10-05 | Thomson Licensing | Method and apparatus for encoding and decoding excitation patterns from which the masking levels for an audio signal encoding and decoding are determined |
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 |
CN103282958B (zh) * | 2010-10-15 | 2016-03-30 | 华为技术有限公司 | 信号分析器、信号分析方法、信号合成器、信号合成方法、变换器和反向变换器 |
TWI606440B (zh) | 2012-09-24 | 2017-11-21 | 三星電子股份有限公司 | 訊框錯誤隱藏裝置 |
EP2720222A1 (en) * | 2012-10-10 | 2014-04-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for efficient synthesis of sinusoids and sweeps by employing spectral patterns |
US9305559B2 (en) | 2012-10-15 | 2016-04-05 | Digimarc Corporation | Audio watermark encoding with reversing polarity and pairwise embedding |
RU2625560C2 (ru) * | 2013-02-20 | 2017-07-14 | Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. | Устройство и способ кодирования или декодирования аудиосигнала с использованием перекрытия, зависящего от местоположения перехода |
FR3004876A1 (fr) | 2013-04-18 | 2014-10-24 | France Telecom | Correction de perte de trame par injection de bruit pondere. |
US9431987B2 (en) | 2013-06-04 | 2016-08-30 | Sony Interactive Entertainment America Llc | Sound synthesis with fixed partition size convolution of audio signals |
EP2980791A1 (en) * | 2014-07-28 | 2016-02-03 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Processor, method and computer program for processing an audio signal using truncated analysis or synthesis window overlap portions |
-
2014
- 2014-07-28 EP EP14178774.7A patent/EP2980791A1/en not_active Withdrawn
-
2015
- 2015-07-24 PL PL19189446.8T patent/PL3584792T3/pl unknown
- 2015-07-24 PL PL15742237T patent/PL3175448T3/pl unknown
- 2015-07-24 MX MX2017001239A patent/MX369755B/es active IP Right Grant
- 2015-07-24 PT PT157422379T patent/PT3175448T/pt unknown
- 2015-07-24 CA CA2956010A patent/CA2956010C/en active Active
- 2015-07-24 SG SG11201700694PA patent/SG11201700694PA/en unknown
- 2015-07-24 WO PCT/EP2015/066997 patent/WO2016016120A1/en active Application Filing
- 2015-07-24 TW TW104124102A patent/TWI581252B/zh active
- 2015-07-24 EP EP23150316.0A patent/EP4191582B1/en active Active
- 2015-07-24 RU RU2017106179A patent/RU2677385C2/ru active
- 2015-07-24 EP EP15742237.9A patent/EP3175448B1/en active Active
- 2015-07-24 PT PT191894468T patent/PT3584792T/pt unknown
- 2015-07-24 AU AU2015295602A patent/AU2015295602B2/en active Active
- 2015-07-24 MY MYPI2017000130A patent/MY192272A/en unknown
- 2015-07-24 FI FIEP19189446.8T patent/FI3584792T3/fi active
- 2015-07-24 CN CN201580052557.2A patent/CN107077854B/zh active Active
- 2015-07-24 ES ES19189446T patent/ES2940783T3/es active Active
- 2015-07-24 CN CN202110621690.2A patent/CN113990333A/zh active Pending
- 2015-07-24 KR KR1020177004865A patent/KR102006897B1/ko active IP Right Grant
- 2015-07-24 JP JP2017504679A patent/JP6612846B2/ja active Active
- 2015-07-24 EP EP19189446.8A patent/EP3584792B1/en active Active
- 2015-07-24 ES ES15742237T patent/ES2751275T3/es active Active
- 2015-07-28 AR ARP150102393A patent/AR102037A1/es active IP Right Grant
-
2017
- 2017-01-27 US US15/417,236 patent/US10262666B2/en active Active
-
2019
- 2019-02-28 US US16/289,523 patent/US10902861B2/en active Active
- 2019-10-31 JP JP2019198983A patent/JP7043113B2/ja active Active
-
2021
- 2021-01-08 US US17/145,015 patent/US11664036B2/en active Active
-
2022
- 2022-03-10 JP JP2022037055A patent/JP7420848B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140142930A1 (en) * | 2011-07-12 | 2014-05-22 | Orange | Adaptations of analysis or synthesis weighting windows for transform coding or decoding |
Non-Patent Citations (1)
Title |
---|
Definition of the Opus Audio Codec. Internet Engineering Task Force (IETF) RFC 6716, 2012.09. * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170033883A (ko) | 절단 분석 또는 합성 윈도우 중첩부를 이용한 오디오 신호 처리를 위한 프로세서, 방법 및 컴퓨터 프로그램 | |
JP6175148B2 (ja) | マルチオーバーラップ部分を使用して符号化済み信号を生成し又は符号化済みオーディオ信号を復号化するための装置及び方法 | |
EP3002750B1 (en) | Audio encoder and decoder for encoding and decoding audio samples | |
EP3002751A1 (en) | Audio encoder and decoder for encoding and decoding audio samples | |
BR112017001630B1 (pt) | Processador e método para processamento de um sinal de áudio utilizando análise truncada ou partes de sobreposição da janela de síntese |
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 |