KR20060131732A - 오디오 인코딩에서 짧은 윈도우를 그룹화하는 방법 - Google Patents
오디오 인코딩에서 짧은 윈도우를 그룹화하는 방법 Download PDFInfo
- Publication number
- KR20060131732A KR20060131732A KR1020067005398A KR20067005398A KR20060131732A KR 20060131732 A KR20060131732 A KR 20060131732A KR 1020067005398 A KR1020067005398 A KR 1020067005398A KR 20067005398 A KR20067005398 A KR 20067005398A KR 20060131732 A KR20060131732 A KR 20060131732A
- Authority
- KR
- South Korea
- Prior art keywords
- short
- short windows
- type
- windows
- window
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 80
- 230000003595 spectral effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 16
- 230000005236 sound signal Effects 0.000 description 8
- 230000001052 transient effect Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 238000001228 spectrum Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000002123 temporal effect 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
제 1 유형의 윈도우와 제 2 유형의 윈도우는 프레임 내의 각 짧은 윈도우와 연관된 에너지를 사용하여 프레임 내에서 확인된다. 제 1 유형의 짧은 윈도우와 제 2 유형의 짧은 윈도우는 이후 각 짧은 윈도우의 윈도우 유형에 기초하여 2개의 예비 그룹으로 그룹화된다. 더욱이, 상기 2개의 예비 그룹 중 임의의 그룹 내의 상기 짧은 윈도우의 수가 임계 수를 초과하는 경우, 이 큰 예비 그룹 내의 짧은 윈도우는 적어도 2개 이상의 많은 그룹으로 더 그룹화된다.
Description
본 발명은 일반적으로 오디오 인코딩에 관한 것이다, 좀 더 구체적으로, 본 발명은 오디오 인코딩에서 짧은 윈도우를 그룹화하는 것에 관한 것이다.
본 특허 명세서의 개시의 일부는 저작권 보호를 받는 내용을 포함한다. 저작권자는 특허 상표청의 특허 파일 또는 기록에 나타난 것과 같은 특허 서류 또는 특허 개시의 임의의 자에 의한 팩스 사본에 이의를 가지지 않지만, 그렇지 않은 경우에는 모든 저작권을 보유한다. 다음 공지는 이하 설명되고 본 명세서 내의 도면에서의 소프트웨어 및 데이터에 적용된다: Copyright ⓒ 2001, Sony Electronics, Inc., All Rights Reserved.
표준화된 법인, MPEG(Motion Picture Experts Group)는 예컨대, MPEG-2 진보된 오디오 코딩(AAC) 표준(ISO/IEC 13818-7 참조)과 MPEG-4 AAC 표준(ISO/IEC 14496-3)과 같은 표준으로 종래의 데이터 압축 방법을 개시한다. 이들 표준은 본 명세서에서 총칭하여 MPEG 표준이라고 한다.
MPEG 표준으로 정의된 오디오 인코더는 오디오 신호를 수신하고, 이것을 변형된 이산 코사인 변환(MDCT: modified discrete cosine transform) 연산을 통해 주파수 스펙트럼 데이터로 변환하며, 속도-왜곡 제어 메커니즘을 사용하여 주파수 스펙트럼 데이터를 양자화하기 위한 최적 스케일 계수(scale factor) 결정한다. 오디오 인코더는 최적 스케일 계수를 사용하여 주파수 스펙트럼 데이터를 양자화하고, 최종 양자화된 스펙트럼 계수를 배율 범위로 그룹화하며, 이후 그룹화된 양자화 계수를 허프만 인코딩(Huffman encoding)으로 처리한다.
MPEG 표준에 따라, MDCT는 해당 인접 변환 범위가 인접 변환 범위 사이에 경계 부분에서 발생한 왜곡을 억제하기 위해 시간 축을 따라 50%까지 중첩되도록 오디오 신호 상에서 수행된다. 더욱이, 오디오 신호는 긴 변환 범위(긴 윈도우에 의해 한정됨) 또는 짧은 변환 범위(각각 짧은 윈도우에 의해 한정됨) 중 하나를 사용하여 주파수 도메인으로 매핑된다. 긴 윈도우는 2048개의 샘플을 포함하고 짧은 윈도우는 256개의 샘플을 포함한다. 긴 윈도우에서 생성된 MDCT 계수의 수는 1024개이며, 각 짧은 윈도우에서 생성된 MDCT 계수의 수는 128개이다. 일반적으로, 신호 파형에서의 변화가 크지 않은 안정된 부분에 대해, 긴 윈도우 유형이 사용되어야 한다. 신호 파형 내의 변화가 심한 공격 부분의 경우, 짧은 윈도우 유형이 사용되어야 한다. 어느 것이 사용되는 지는 중요한 문제이다. 긴 윈도우 유형이 과도 신호에 대해 사용된 경우, 사전-에코(pre-echo)라고 하는 잡음이 공격 부분 이전에 발생한다. 짧은 윈도우 유형이 안정된 신호에 대해 사용될 때, 적절한 비트 분배는 주파수 도메인에서 해상도의 부족으로 인해 수행되지 않으며, 코딩 효율성이 감소되고 잡음도 역시 발생한다. 이러한 단점은 특히 낮은 주파수 소리에서 현저하다.
MPEG 표준에 의해 제안된 방법에 따라, 스펙트럼 데이터의 프레임에 대한 윈 도우 유형의 결정은 시간-도메인 오디오 데이터 상의 고속 푸리에 변환(FFT: Fast Fourier Transform)을 수행하는 단계 및 FFT 계수를 계산하는 단계로 시작한다. FFT 계수는 이후 프레임 내의 각 배율 범위에 대한 오디오 신호 강도를 계산하는데 사용된다. 또한 정신분석 음향 모델링(psychoacoustic modeling)은 프레임에 대한 허용가능한 왜곡 레벨을 결정하는데 사용된다. 허용가능한 왜곡 레벨은 들을 수 있게 되지 않으면서 스펙트럼 데이터로 주입될 수 있는 잡음의 최대량을 가리킨다. 허용가능한 왜곡 레벨과 프레임 내의 각 배율 범위의 오디오 신호 강도에 기초하여, 지각있는 엔트로피가 계산된다. 지각있는 엔트로피가 미리 결정된 상수보다 큰 경우, 짧은 윈도우 유형이 프레임에 대해 사용된다. 그렇지 않으면, 긴 윈도우 유형이 프레임에 대해 사용된다.
전술한 윈도우 유형 결정 방법은 많은 계산 과정을 거쳐야 한다. 더욱이, 신호가 일시적이거나 일정하거나 신호 강도가 높은 경우 지각있는 엔트로피의 최종값은 높을 수 있다. 즉, 프레임이 전이 중이 아니라도 프레임에 짧은 윈도우 유형이 할당될 수 있다. 앞서 논의한 바와 같이, 이것은 코딩 효율성과 잡음 발생에 감소를 초래할 것이다.
게다가, 짧은 윈도우 유형을 사용하기로 결정한 경우, MDCT 계수의 8개의 연속적인 블록(짧은 윈도우)이 생성된다. 짧은 윈도우와 관련된 부가 정보의 양을 감소시키기 위해, 짧은 윈도우가 그룹화될 수 있다. 각 그룹은 배율이 같은 하나 이상의 연속적인 짧은 윈도우를 포함할 수 있다. 그러나, 그룹화가 적절히 수행되지 않을 때, 코드 수의 증가 또는 음질의 저하가 발생한다. 그룹의 수가 짧은 윈도우 의 수에 대해 너무 클 때, 다른 경우에 공통으로 코딩될 수 있는 배율은 반복적으로 코딩되며, 이에 따라, 코딩 효율성이 감소한다. 그룹의 수가 짧은 윈도우의 수에 대해 너무 작을 때, 공통 배율은 오디오 신호의 변화가 심한 경우조차 사용된다. 그 결과, 음질이 저하된다. MPEG 표준은 짧은 윈도우를 그룹화하기 위한 임의의 특정 방법을 제공하지 않는다.
제 1 유형의 윈도우와 제 2 유형의 윈도우는 프레임 내의 각 짧은 윈도우와 연관된 에너지를 사용하여 프레임 내에서 확인된다. 제 1 유형의 짧은 윈도우와 제 2 유형의 짧은 윈도우는 이후 각 짧은 윈도우의 윈도우 유형에 기초하여 2개의 예비 그룹으로 그룹화된다. 더욱이, 2개의 예비 그룹들 중 임의의 그룹에서 짧은 윈도우 수가 임계 수를 초과하는 경우, 이 큰 예비 그룹 내의 짧은 윈도우는 적어도 2개 이상의 그룹으로 더 그룹화된다.
본 발명은 이하 주어진 자세한 설명으로부터 그리고 본 발명의 다양한 실시예의 첨부 도면으로부터 더욱 완전히 이해할 수 있지만, 이는 특정 실시예로 본 발명을 한정하는 것으로 이해되어서는 안 되고, 설명과 이해의 목적으로 이해되어야 한다.
도 1은 인코딩 시스템의 일 실시예의 블록도.
도 2는 스펙트럼 데이터의 프레임 상에서 MDCT를 수행하기 위한 프로세스의 일 실시예의 흐름도.
도 3은 윈도우 유형 결정 프로세스의 일 실시예의 흐름도.
도 4는 프레임 내의 안정된 신호에서 과도 신호로 전이의 표시를 검출하는 프로세스의 일 실시예의 흐름도.
도 5는 다음 프레임의 예비 윈도우 유형 및 이전 프레임의 윈도우 유형에 기초하여 현재 프레임의 윈도우 유형을 결정하는 프로세스의 일 실시예의 흐름도.
도 6은 프레임 내의 짧은 윈도우를 그룹화하기 위한 프로세스의 일 실시예의 흐름도.
도 7은 짧은 윈도우의 유형을 결정하기 위한 프로세스의 일 실시예의 흐름도.
도 8은 짧은 윈도우의 2개의 예비 그룹을 생성하기 위한 프로세스의 일 실시예의 흐름도.
도 9는 짧은 윈도우의 최종 그룹화를 수행하기 위한 프로세스의 일 실시예의 흐름도.
도 10은 프레임의 짧은 윈도우의 예시적인 그룹화를 도시한 도면.
도 11은 본 발명의 실시예를 실행하기에 적합한 컴퓨터 환경의 블록도.
본 발명의 실시예의 다음 자세한 설명에서, 첨부된 도면을 참조하며, 이 도면에서 유사 참조 번호는 유사 요소를 가리키며, 예시로써, 본 발명이 실행될 수 있는 특정 실시예가 도시된다. 이들 실시예들은 당업자가 본 발명을 실행할 수 있도록 충분히 자세하게 설명되며, 다른 실시예들이 이용될 수 있으며, 논리적, 기계 적, 전기적, 기능적 그리고 기타 변경들이 본 발명의 범위를 이탈하지 않고 이루어질 수 있음을 이해할 것이다. 다음의 자세한 설명은, 그러므로, 한정적인 의미로 이해되어서는 안되며, 본 발명의 범위는 첨부된 청구항에 의해서만 한정된다.
본 발명의 작동의 개요부터 시작하면, 도 1은 인코딩 시스템(100)의 일 실시예를 도시한다. 인코딩 시스템(100)은 본 명세서에서 총칭하여 MPEG 표준이라고 하는 MPEG 오디오 인코딩 표준(예, MPEG-2 AAC 표준, MPEG-4 AAC 표준 등)을 따른다. 인코딩 시스템(100)은 필터뱅크 모듈(102), 코딩 툴(104), 정신 분석 음향 모델러(106), 양자화 모듈(110) 및 허프만 인코딩 모듈(114)을 포함한다.
필터뱅크 모듈(102)은 오디오 신호를 수신하고 오디오 신호를 주파수 도메인으로 매핑하기 위해 변형된 이산 코사인 변환 연산(MDCT)을 수행한다. 이 매핑은 분석될 신호가 개선된 주파수 해상도에 대해 시간상 연장되는 긴 변환 범위(긴 윈도우로 한정됨) 또는 분석될 신호가 개선된 시간 해상도에 대해 시간상 단축되는 짧은 변환 범위(짧은 윈도우로 한정됨) 중 하나를 사용하여 수행된다. 긴 윈도우 유형은 정지된 신호만이 존재하는 경우에만 사용되고, 짧은 윈도우 유형은 갑작스런 신호 변화가 존재하는 때에 사용된다. 분석될 신호의 특성에 따라 이들 2가지 유형의 작동을 사용함으로써, 사전-에코라고 하는 불쾌한 잡음의 생성을 방지하는 것이 가능하며, 이 사전-에코는 그 외의 경우 불충분한 시간 해상도로 인해 발생할 수 있다.
이하 더욱 자세히 논의되는 바와 같이, 필터뱅크 모듈(102)은 어떤 윈도우 유형을 사용할지 결정하고 결정된 윈도우 유형을 사용하여 MDCT 계수를 생성하는 역할을 한다. 필터뱅크 모듈(102)은 또한, 일 실시예에서, 짧은 윈도우 유형이 MDCT 계수를 생성하는데 사용될 때 그룹화를 수행하는 역할을 할 수 있다. 그룹화를 통해 짧은 윈도우와 관련된 부가 정보의 양을 감소시킨다. 각 그룹은 배율이 같은 하나 이상의 연속적인 짧은 윈도우를 포함한다.
코딩 툴(104)은 스펙트럼 처리에 대해 선택적인 툴의 세트를 포함한다. 예컨대, 코딩 툴은 예측적인 코딩을 수행하기 위한 일시적인 잡음 정형화(TNS: Temporal Noise Shaping) 툴과 예측 툴, 그리고 입체음향 상관 코딩을 수행하기 위한 강도/연결 툴과 중간 측 스테레오(M/S) 툴을 포함할 수 있다.
정신 분석 음향 모델러(106)는 청각적인 마스킹 곡선을 결정하기 위해 샘플을 분석한다. 청각적인 마스킹 곡선은 들리지 않고 각각의 샘플로 주입될 수 있는 잡음의 최대 양을 나타낸다. 이 점에서 들리는 것은 사람의 청각의 정신 분석 음향 모델에 기초한다. 청각의 마스킹 곡선은 원하는 잡음 스펙트럼을 추정하는 역할을 한다.
양자화 모듈(110)은 주파수 스펙트럼 데이터에 대한 최적 배율을 선택하는 역할을 한다. 배율 선택 프로세스는 마스킹 커브에서 계산된 허용된 왜곡과 인코딩과 동시에 지정된 비트 율로부터 계산된 비트의 허용가능한 수에 기초한다. 일단 최적의 배율이 선택되면, 양자화 모듈(110)은 이들을 주파수 스펙트럼 데이터를 양자화하기 위해 사용한다. 최종 양자화된 스펙트럼 계수는 배율 범위(SFB: Scale Factor Bands)로 그룹화된다. 각 SFB는 동일한 배율의 사용으로 인해 발생한 계수를 포함한다.
허프만 인코딩 모듈(114)은 양자화된 스펙트럼 계수의 각 그룹에 대한 최적의 허프만 코드북을 선택하며 최적의 허프만 코드북을 사용하여 허프만-인코딩 작동을 수행하는 역할을 한다. 최종 가변 길이 코드(VLC), 인코딩에 사용된 코드북을 확인하는 데이터, 양자화 모듈(110)로 선택된 배율, 및 일부 기타 정보는 비트 스트림으로 이어서 어셈블링된다.
일 실시예에서, 필터뱅크 모듈(102)은 윈도우 유형 결정기(108), MDCT 계수 계산기(112), 및 짧은 윈도우 그룹화 결정기(116)를 포함한다. 윈도우 유형 결정기(108)는 MDCT 작동에 사용될 윈도우 유형을 결정하는 역할을 한다. 일 실시예에서, 이하 좀 더 구체적으로 논의되는 바와 같이, 긴 윈도우의 사용을 선호하는 윈도우 유형의 결정 방법을 사용하여 결정이 이루어진다.
MDCT 계수 계산기(112)는 결정된 윈도우 유형을 사용하여 MDCT 계수를 계산하는 역할을 한다. 일 실시예에서, MDCT 계수 계산기(112)는 우선 추정된 긴 윈도우 유형을 사용하여 예비 MDCT 계수를 계산한다. 이후, 윈도우 유형 결정기(108)가 사용될 윈도우 유형이 긴 윈도우 유형이 아니라고 결정한 경우, MDCT 계수 계산기(112)는 결정된 윈도우 유형을 사용하여 MDCT 계수를 재계산한다. 그렇지 않으면, 예비 MDCT 계수는 재계산될 필요가 없다.
짧은 윈도우 그룹화 결정기(116)는 짧은 윈도우 유형이 사용될 때 작동하고, 짧은 윈도우를 그룹화하는 방법을 한정하는 역할을 한다. 일 실시예에서, 짧은 윈도우 그룹화 결정기(116)는 짧은 윈도우를 각 짧은 윈도우와 연관된 에너지에 기초하여 두 개의 그룹으로 예비 그룹화를 수행한다. 이들 두 예비 그룹 중 임의의 그 룹이 너무 큰 경우, 큰 그룹은 이하 더욱 자세히 설명되는 바와 같이, 2개 이상의 그룹으로 더 분할된다.
도 2 내지 도 9는 본 발명의 다양한 실시예에 따른, 도 1의 필터뱅크 모듈(102)에 의해 수행될 수 있는 프로세스의 흐름도이다. 이 프로세스는 하드웨어(예, 회로, 전용 로직 등), 소프트웨어(예, 범용 컴퓨터 시스템 또는 전용 기기에서 실행됨) 또는 이들의 결합물을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 소프트웨어-구현된 프로세스의 경우, 흐름도의 설명은 당업자가 적절히 구성된 컴퓨터 상에서 프로세스를 수행하기 위한 명령어를 포함한 프로그램을 개발할 수 있도록 한다(컴퓨터의 프로세서는 메모리를 포함해, 컴퓨터-판독가능 매체에서 명령어를 실행함). 컴퓨터-실행가능한 명령어는 컴퓨터 프로그래밍 언어로 작성될 수 있거나 펌웨어 로직으로 구현될 수 있다. 인지된 표준에 따른 프로그래밍 언어로 작성된 경우, 이러한 명령어는 다양한 하드웨어 플랫폼에서 다양한 운영 체제에 대한 인터페이스에 대해 실행될 수 있다. 더욱이, 본 발명의 실시예는 임의의 특정 프로그래밍 언어를 참조로 설명되지 않는다. 다양한 프로그래밍 언어는 본 명세서에 설명된 교시를 구현하기 위해 사용될 수 있다는 것을 이해할 수 있다. 게다가, 이 기술 분야에서는 흔히, 일 형태 또는 다른 형태의 소프트웨어(예, 프로그램, 절차, 프로세스, 애플리케이션, 모듈, 로직 등)에 대해, 조치를 취하거나 결과를 초래한다고 말한다. 이러한 표현은 단지 컴퓨터에 의해 소프트웨어를 실행하는 것이 컴퓨터의 프로세서가 조치를 수행하거나 결과를 야기하도록 한다는 것의 약어적인 표현이다. 더 많은 또는 더 적은 작동이 본 발명의 범위를 이탈함이 없이 도 2 내지 도 9에 도시된 프로세스에 병합될 수 있으며 어떠한 특정 순서도 본 명세서에 도시되고 설명된 블록의 배열로 암시되지 않았음을 이해할 것이다.
도 2는 스펙트럼 데이터의 프레임 상에서 MDCT를 수행하기 위한 프로세스(200)의 일 실시예의 흐름도이다.
도 2를 참조하면, 처리 로직은 현재 프레임에 대한 예비 MDCT 계수의 세트 그리고 다음 프레임에 대한 예비 MDCT 계수의 세트를 계산하는 것(처리 블록 202)으로 시작한다. 계산은 현재 프레임과 다음 프레임 모두의 윈도우 유형은 긴 윈도우 유형이라는 가정 하에 수행된다. 현재와 다음 프레임의 계산된 예비 MDCT 계수는 버퍼에 저장된다. 일 실시예에서, 현재 프레임과 다음 프레임은 인접 프레임이 서로 중첩되도록(예, 50%까지) 시간 축을 따라 제조된 샘플의 프레임(또한 블록으로 알려짐)의 시퀀스에서 2개의 인접한 프레임이다. 중첩은 인접 프레임 사이의 경계 부분에서 발생하는 왜곡을 억제한다.
처리 블록(204)에서, 처리 로직은 현재 프레임의 예비 MDCT 계수와 다음 프레임의 예비 MDCT 계수를 사용하여 현재 프레임의 윈도우 유형을 결정한다. 윈도우 유형 결정은 긴 윈도우의 사용을 선호하는 윈도우 유형 결정 방법을 사용하여 이루어진다. 이러한 방법의 일 실시예는 도 3과 연관하여 더욱 자세히 이하 논의될 것이다.
결정 박스(206)에서, 처리 로직은 현재 프레임의 결정된 윈도우 유형이 긴 윈도우 유형인지를 결정한다. 그렇지 않은 경우, 처리 로직은 결정된 윈도우 유형을 사용하여 현재 프레임에 대한 최종 MDCT 계수의 세트를 계산한다(처리 블록 208). 그러한 경우, 처리 로직은 현재 프레임의 예비 MDCT 계수를 최종적인 것으로 간주한다(처리 블록 210).
도 3은 윈도우 유형 결정 프로세스(300)의 일 실시예의 흐름도이다.
도 3을 참조하면, 처리 로직은 안정된 신호로부터 다음 프레임에서 과도 신호로의 전이의 표시가 존재하는지를 결정하는 것(결정 박스 302)으로 시작된다. 일 실시예에서, 이 결정은 현재 프레임과 연관된 에너지와 다음 프레임과 연관된 에너지를 비교함으로써 이루어진다. 안정된 신호로부터 프레임의 과도 신호로의 전이를 검출하기 위한 프로세스의 일 실시예는 도 4와 연관하여 이하 더욱 자세히 논의된다.
결정 박스(302)에서 이루어진 결정이 긍정이면, 처리 로직은 다음 프레임의 예비 윈도우 유형이 짧은 윈도우 유형이라고 결정한다(처리 블록 304). 그렇지 않으면, 처리 로직은 다음 프레임의 예비 윈도우 유형이 긴 윈도우 유형이라고 결정한다(처리 블록 306).
더욱이, 처리 로직은 다음 프레임의 예비 윈도우 유형과 이전 프레임의 윈도우 유형에 기초하여 현재 프레임의 윈도우 유형을 결정한다(처리 블록 308). 현재 프레임의 윈도우 유형의 결정은 긴 윈도우 유형의 사용을 선호한다. 일 실시예에서, 각 별개의 윈도우 유형에 MPEG 표준에 의해 한정된 바와 같이 2개의 전이되는 윈도우 유형이 후속될 수 있으며, 처리 로직은 현재 프레임과 후속 프레임에서 짧은 윈도우의 사용을 최소화하는 윈도우 유형을 선택한다. 즉, MPEG 표준은 각 별도의 윈도우 유형으로부터 2개의 전이되는 윈도우 유형에 대해 하나의 전이되는 윈도 우 유형을 제공하며, 현재 프레임 또는 다음 프레임 중 하나에서 짧은 윈도우의 사용을 허용하고, 다른 전이되는 윈도우 유형은 현재 프레임 또는 다음 프레임 중 하나에서 긴 윈도우의 사용을 허용한다. 구체적으로, MPEG 표준은 다음 전이를 허용한다.
a. 긴 윈도우 유형에서 긴 윈도 유형 또는 길고-짧은 윈도우 유형으로;
b. 길고-짧은 윈도우 유형에서 짧은 윈도우 유형 또는 짧고-긴 윈도우 유형으로;
c. 짧고-긴 윈도우 유형에서 긴 윈도우 유형 또는 길고-짧은 윈도우 유형으로; 및
d. 짧은 윈도우 유형에서 짧은 윈도우 유형 또는 짧고-긴 윈도우 유형으로.
따라서, 이전 프레임의 윈도우 유형이 예컨대, 짧고-긴 윈도우 유형이고 다음 프레임의 예비 윈도우 유형이 긴 윈도우 유형인 경우, 처리 로직은 현재 프레임에 대해, 다음 프레임에서 짧은 윈도우의 사용을 촉진시킬 길고-짧은 윈도우 유형의 다른 옵션보다는 긴 윈도우 유형을 선택한다.
다음 프레임의 예비 윈도우 유형과 이전 프레임의 윈도우 유형에 기초한 현재 프레임의 윈도우 유형을 결정하기 위한 프로세스의 일 실시예는 도 5와 관련하여 더욱 구체적으로 논의될 것이다.
전술한 윈도우 유형 결정 방법은 MDCT 계산과 결합되며, MDCT 데이터 상에서 바로 작동하며, 고속 푸리에 변형(FFT) 작동과 지각있는 엔트로피 계산을 필요로 하지 않는다. 게다가, 전술한 윈도우 유형 결정 방법은 긴 윈도우의 사용을 선호하 며, 따라서 짧은 위도우의 사용을 최소화한다. 이 방법은 안정된 신호에서 과도 신호로의 전이의 지시가 검출되는 경우에만 짧은 윈도우를 사용한다.
도 4는 프레임에서 안정된 신호에서 과도 신호로의 전이의 지시를 검출하는 프로세스(400)의 일 실시예의 흐름도이다.
도 4를 참조하면, 처리 로직은 현재 프레임에 대한 MDCT 계수의 세트와 다음 프레임에 대한 예비 MDCT 계수 세트를 계산하는 것으로 시작된다(처리 블록 402). 처리 로직은 이후 버퍼에 MDCT 계수의 계산된 세트를 저장한다.
처리 블록(404)에서, 처리 로직은 현재 프레임의 계산된 예비 MDCT 계수를 사용하여 현재 프레임의 전체 에너지를 계산한다. 일 실시예에서, 현재 프레임의 전체 에너지는
current_total_energy = sum(current_coef[i]*current_coef[i]/C)(i= 0 내지 1023)
으로 계산되며, current_coef[i]은 현재 프레임에서 i번째 MDCT 계수의 값이며, C는 합계의 과잉을 방지하기 위해 사용된 상수이다(예, 16-비트 레지스터에 대해 C=32767).
처리 블록(406)에서, 처리 로직은 다음 프레임의 계산된 예비 MDCT 계수를 사용하여 다음 프레임의 전체 에너지를 계산한다. 이와 유사하게, 다음 프레임의 전체 에너지는,
next_total_energy = sum(next_coef[i]*next_coef[i]/C)(i= 0 내지 1023)
next_coef[i]는 다음 프레임에서 I번째의 MDCT 계수의 값이며, C는 합계의 과잉을 방지하기 위해 사용된 상수이다.
처리 블록(408)에서, 처리 로직은 대수 방식으로 현재 프레임의 전체 에너지와 다음 프레임의 전체 에너지를 스케일링한다. 일 실시예에서, 스케일링은 다음과 같이 수행된다.
c_pow = log(current_total_energy) 그리고 n_pow = log(next_total_energy)
처리 블록(410)에서, 처리 로직은 다음 프레임의 측정된 전체 에너지에서 현재 프레임의 측정된 전체 에너지를 뺌으로써 변화된 에너지를 계산한다.
결정 박스(412)에서, 처리 로직은 변화된 에너지가 임계값(예, 1)을 초과하는지를 결정한다. 일 실시예에서 임계값은 실험적으로 한정된다. 결정 상자(412)에서 이루어진 결정이 긍정인 경우, 처리 로직은 과도 신호로의 전이가 다음 프레임에서 발생하기 쉽다고 결정한다(처리 로직 414).
도 5는 다음 프레임의 예비 윈도우 유형과 이전 프레임의 윈도우 유형에 기초한 현재 프레임의 윈도우 유형을 결정하는 프로세스(500)의 일 실시예의 흐름도이다.
도 5를 참조하면, 처리 로직은 다음 프레임의 예비 윈도우 유형이 긴 윈도우 유형인지를 결정하는 것(결정 상자 502)으로 시작된다. 그러한 경우, 처리 로직은 이전 프레임의 윈도우 유형이 긴 윈도우 유형인지 아니면 짧은 윈도우 유형인지를 더 결정한다(결정 상자 504). 그러한 경우, 처리 로직은 현재 프레임의 윈도우 유형이 긴 윈도우 유형이라고 결정한다(처리 블록 506). 그렇지 않은 경우, 처리 로직은 현재 프레임의 윈도우 유형은 짧고-긴 윈도우 유형이라고 결정한다(처리 블록 508).
결정 박스(502)에서의 결정이 부정인 경우, 즉, 다음 프레임의 예비 윈도우 유형이 짧은 윈도우 유형인 경우, 처리 로직은 이전 프레임의 윈도우 유형이 긴 윈도우 유형인지 아니면 짧고-긴 윈도우 유형인지를 더 결정한다(결정 상자 510). 그러한 경우, 처리 로직은 현재 프레임의 윈도우 유형이 길고-짧은 윈도우 유형이라고 결정한다(처리 블록 512). 그렇지 않은 경우, 처리 로직은 현재 프레임의 윈도우 유형이 짧은 윈도우 유형이라고 결정한다(처리 블록 514).
일 실시예에서, 프레임에 대한 짧은 윈도우 유형을 사용하기로 결정한 경우, 짧은 윈도우 그룹화는 짧은 윈도우와 연관된 부가 정보의 양을 감소시키는데 사용된다. 각 그룹은 배율이 같은 하나 이상의 연속적인 짧은 윈도우를 포함한다. 일 실시예에서, 그룹화에 대한 정보는 지정된 비트스트림 요소에 포함된다. 일 실시예에서, 그룹화에 대한 정보는 프레임 내의 그룹의 수와 각 프레임 내의 짧은 윈도우의 수를 포함한다.
도 6은 프레임 내의 짧은 윈도우를 그룹화하기 위한 프로세스(600)의 일 실시예의 흐름도이다.
도 6을 참조하면, 처리 로직은 프레임 내의 제 1 유형의 짧은 윈도우와 제 2 유형의 짧은 윈도우를 식별하는 것으로 시작된다(처리 블록 602). 짧은 윈도우의 유형은 이 윈도우와 연관된 에너지에 기초하여 결정된다. 짧은 윈도우의 유형을 결정하는 프로세스의 일 실시예는 도 7과 관련하여 이하 더욱 구체적으로 논의될 것이다.
처리 블록(604)에서, 처리 로직은 분류가 부정확한 경향이 있는 짧은 위도우의 유형을 조정한다. 일 실시예에서, 짧은 윈도우의 분류는 그 유형이 인접한 윈도우의 유형과 일치하지 않고 인접한 윈도우가 동일한 유형인 경우 부정확할 수 있다. 프레임 내의 짧은 윈도우의 수가 8인, 일 실시예에서, 조정 프로세스는 다음과 같이 표현될 수 있다:
win_index 1 내지 6에 대해
만약 (candidate[win_index-1] = candidate [win_index+1])
candidate[win_index] = candidate [win_index-1],
여기서, win_index는 프레임 내의 짧은 윈도우의 수를 가리키며, candidate[win_index], candidate[win_index-1] 및 candidate[win_index+1]는 현재 윈도우, 이전 윈도우 및 다음 윈도우의 유형을 각각 나타낸다.
처리 블록(606)에서, 처리 로직은 프레임 내의 짧은 윈도우를 그들의 유형에 기초하여 2개의 예비 그룹으로 그룹화한다. 짧은 윈도우의 2개의 예비 그룹을 생성하는 프로세스의 일 실시예는 도 8과 연관하여 이하 더욱 자세히 논의될 것이다.
결정 박스(608)에서, 처리 로직은 임의의 예비 그룹에서 짧은 윈도우의 수가 임계 수를 초과하는지를 결정한다. 일 실시예에서, 임계 수는 실험적으로 결정된 상수이다. 임계 수에 따라서, 0개, 1개 또는 모두의 예비 그룹은 너무 클 수 있다. 다른 실시예에서, 임계 수는 다른 예비 그룹에서 짧은 윈도우의 수이며, 처리 로직은 하나의 예비 그룹 내의 짧은 윈도우 수가 다른 예비 그룹 내의 짧은 윈도우 그룹의 수를 초과하는 경우 하나의 예비 그룹 내의 짧은 윈도우 수가 임계값을 초과 한다고 결정한다. 비교가 사용될 때, 0개 또는 1개의 예비 그룹은 너무 클 수 있다. 그룹이 너무 클 때, 다른 특성과 짧은 윈도우를 결합하는 경향이 있다. 이후, 이 그룹에 대한 공통 배율의 사용은 음질의 저하를 야기할 수 있다.
처리 로직이 2개의 예비 그룹 중 하나가 너무 큰지를 결정 상자(608)에서 결정하는 경우, 처리 로직은 큰 예비 그룹을 2개 이상의 최종 그룹으로 더 분할한다(처리 블록 610). 최종 그룹화는 코딩 효율성과 음질 사이의 균형을 가능케하는 그룹 수를 갖도록 하는 방법으로 수행된다. 짧은 윈도우의 최종 그룹화를 수행하는 프로세스의 일 실시예는 도 9와 연관하여 이하 더욱 구체적으로 설명될 것이다.
처리 블록(612)에서, 처리 로직은 프레임 내의 그룹의 수와 최종 그룹화에 기초한 각 그룹에서의 짧은 윈도우의 수를 결정한다.
도 7은 짧은 윈도우의 유형을 결정하는 프로세스(700)의 일 실시예의 흐름도이다.
도 7을 참조하면, 처리 로직은 프레임 내의 각 짧은 윈도우의 에너지를 계산하는 것으로 시작된다(처리 블록 702). 일 실시예에서, 각 짧은 윈도우의 에너지는 다음과 같이 계산된다.
win_energy[win_index] = log[sum(coef[i]*coef[i])+0.5],
여기서 [win_index]는 프레임 내의 현재 짧은 윈도우의 수를 확인하고, win_energy는 결과 에너지이며, coef[i]는 짧은 윈도우 내의 i번째 스펙트럼 계수이다.
다음으로, 처리 로직은 최소 에너지를 가진 짧은 윈도우를 찾고(처리 블록 704) 프레임에서 각 짧은 윈도우에 대한 오프셋 에너지 값을 계산한다(처리 블록 706). 일 실시예에서, 오프셋 에너지 값은 대응하는 짧은 윈도우의 에너지에서 최소 에너지를 차감함으로써 계산된다.
처리 블록(708)에서, 처리 로직은 프레임 내의 모든 오프셋 에너지 값의 합계를 프레임 내의 짧은 윈도우의 수로 나눔으로써 프레임에 대한 평균 오프셋 에너지값을 계산한다.
결정 박스(710)에서, 처리 로직은 제 1 짧은 윈도우에 대해 그 오프셋 에너지 값이 평균 오프셋 에너지 값을 초과하는지를 결정한다. 초과하는 경우, 처리 로직은 짧은 윈도우가 제 1 유형이라고 결정한다(처리 블록 712). 초과하지 않는 경우, 처리 로직은 짧은 윈도우를 제 2 유형이라고 결정한다(처리 블록 714).
다음으로, 처리 로직은 프레임에서 처리되지 않은 더 많은 윈도우가 존재하는지를 결정한다(결정 박스 715). 존재하는 경우, 처리 로직은 다음 짧은 윈도우로 이동하고(처리 블록 716) 결정 박스(710)로 진행된다. 존재하지 않는 경우, 프로세스(700)는 종료한다.
도 8은 짧은 윈도우의 2개의 예비 그룹을 생성하기 위한 프로세스(800)의 일 실시예의 흐름도이다.
도 8을 참조하면, 처리 로직은 변수의 세트를 초기화하는 것으로 시작된다(처리 블록 802). 예컨대, 처리 로직은 제 1 짧은 윈도우의 유형으로 이전 윈도우 유형변수 값을 설정하고, 예비 그룹 수 변수의 값을 1로 설정하고, 제 1 예비 그룹 길이 변수 값을 1로 설정할 수 있다.
다음으로, 처리 로직은 짧은 윈도우의 처리를 시작하고, 프레임 내의 제 2 짧은 윈도우로 시작된다. 특히, 처리 로직은 현재 짧은 윈도우의 유형이 제 1 짧은 윈도우의 유형과 같은지를 결정한다(결정 박스 804). 같은 경우, 처리 로직은 제 1 예비 그룹 길이를 1만큼 증가시키고(처리 블록 806), 더 많은 짧은 윈도우가 처리되지 않은 상태인지를 점검한다(결정 박스 808). 더 많은 짧은 윈도우가 처리되지 않은 경우, 처리 로직은 다음 짧은 윈도우로 이동하고(처리 블록 810), 결정 상자(804)로 돌아온다. 처리되지 않은 상태인 짧은 윈도우가 더 이상 없는 경우, 프로세스(800)는 종료한다.
처리 로직은 결정 박스(804)에서 현재 짧은 윈도우의 유형이 제 1 짧은 윈도우의 유형과 같지 않은지를 결정하는 경우, 처리 로직은 예비 그룹 수를 2로 설정하며(처리 블록 812) 짧은 프레임의 전체 수(예, 8)에서 제 1 예비 그룹의 길이를 차감함으로써 제 2 예비 그룹의 길이를 계산한다(처리 블록 814).
도 9는 짧은 윈도우의 최종 그룹화를 수행하기 위한 프로세스(900)의 일 실시예의 흐름도이다. 프로세스(900)는 MPEG 표준에 따라 작동하고, 이에 따라서 프레임 내의 짧은 윈도우의 수는 8과 같다.
도 9를 참조하면, 처리 로직은 제 1 예비 그룹의 길이가 임계값(예를 들어, 4)을 초과하는지를 결정하는 것으로 시작한다(결정 박스 902). 초과하는 경우, 처리 로직은 제 1 예비 그룹의 길이가 8과 같은지를 더 결정한다(결정 박스 904). 8과 같은 경우, 처리 로직은 그룹의 최종 수를 2로 설정하고, 제 1 최종 그룹의 길이를 제 1 예비 그룹의 길이로 설정하며, 제 2 최종 그룹의 길이를 제 2 예비 그룹 의 길이로 설정한다(처리 블록 906). 그렇지 않은 경우, 처리 로직은 그룹의 최종 수를 3으로 설정하고(처리 블록 908), 제 3 최종 그룹의 길이를 제 2 예비 그룹의 길이로 설정하고(처리 블록 910), 예비 제 2 그룹의 길이를 2로 나눔으로써 제 2 최종 그룹의 길이를 계산하며(계산은 window_group_length[1]>>1)로 표현될 수 있다)(처리 블록 912), 제 2 최종 그룹의 길이를 제 1 예비 그룹의 길이에서 차감함으로써 제 1 최종 그룹의 길이를 계산한다(처리 블록 914).
처리 로직이 제 1 예비 그룹의 길이가 임계값을 초과하지 않는지를 결정 박스(902)에서 결정하는 경우, 처리 로직은 제 1 예비 그룹의 길이가 임계값 이하인지를 더 결정한다(결정 박스 916). 임계값 이하인 경우, 처리 로직은 그룹의 최종 수를 3으로 설정하고(처리 블록 917), 제 2 예비 그룹의 길이를 2로 나눔으로써 제 3 최종 그룹의 길이를 계산하며(계산은 window_group_length[2]>>1으로 표현될 수 있다)(처리 블록 918), 제 2 예비 그룹의 길이에서 제 3 최종 그룹의 길이를 차감함으로써 제 2 최종 그룹의 길이를 계산하며(처리 블록 920), 제 1 최종 그룹의 길이를 제 1 예비 그룹의 길이로 설정한다(처리 블록 922).
처리 로직이 제 1 예비 그룹의 길이가 임계값 이하인지를 결정 박스(916)에서 결정하는 경우, 처리 로직은 그룹의 수를 2로 설정하고, 제 1 최종 그룹의 길이를 제 1 예비 그룹의 길이로 설정하며 제 2 최종 그룹의 길이를 제 2 예비 그룹의 길이로 설정한다(처리 블록 924).
도 10은 프레임의 짧은 윈도우의 예시적인 그룹화를 도시한다.
도 10을 참조하면, 그룹화된 짧은 윈도우의 유형은 grouping_bit "11100011" 로 도시된다. 짧은 윈도우의 유형은 도 7의 프로세스(700)에 의해 결정될 수 있다. 짧은 윈도우의 이들 유형에 기초하여, 짧은 윈도우는 도 8의 프로세스(800)를 사용하여 2개의 예비 그룹으로 우선 그룹화될 수 있으며, 따라서 3개의 짧은 윈도우를 가진 제 1 예비 그룹과 5개의 짧은 윈도우를 가진 제 2 예비 그룹을 생성한다. 다음으로, 도 9의 프로세스(900)는 제 2 예비 그룹을 두 개의 그룹으로 더 분할하기 위해 임계수 4를 사용하여 수행될 수 있다. 그 결과, 3개의 최종 그룹이 생성되고, 제 1 최종 그룹은 3개의 짧은 윈도우를 가지며, 제 2 최종 그룹은 3개의 짧은 윈도우를 갖고, 제 3 최종 그룹은 2개의 짧은 윈도우를 가진다.
도 11의 다음 설명은 본 발명을 구현하기에 적합한 컴퓨터 하드웨어의 개요와 다른 작동 성분을 제공하기 위한 것이지만, 적용가능한 환경을 제한하기 위한 것이 아니다. 도 11은 도 1의 인코딩 시스템(100) 또는 필터뱅크 모듈(102)로 사용에 적합한 컴퓨터 시스템의 일 실시예를 도시한다.
컴퓨터 시스템(1140)은 시스템 버스(1165)와 연결된 프로세서(1150), 메모리(1155) 및 입력/출력 성능(1160)을 포함한다. 메모리(1155)는 프로세서(1150)에 의해 실행될 때, 본 명세서에 설명된 방법을 수행하는 명령을 저장하기 위해 구성된다. 입력/출력(1160)은 또한 프로세서(1150)에 의해 액세스 가능한 임의의 유형의 저장 디바이스를 포함해, 다양한 유형의 컴퓨터-판독가능한 매체를 포함한다. 당업자는 "컴퓨터 판독가능한 매체"라는 용어가 데이터 신호를 인코딩하는 반송파를 더 포함한다는 것을 바로 인식할 것이다. 또한 시스템(1140)이 메모리(1155)에서 시스템 소프트웨어 실행을 작동시킴으로써 제어가능하다는 것을 더 이해할 것이다. 입 력/출력 및 관련 매체(1160)는 운영 체제와 본 발명의 방법을 위한 컴퓨터-실행가능한 명령을 저장한다. 도 1에 도시된 필터뱅크 모듈(102)은 프로세서(1150)에 연결된 분리된 구성요소일 수 있거나, 프로세서(1150)에 의해 실행된 컴퓨터-판독가능한 명령으로 구현될 수 있다. 일 실시예에서, 컴퓨터 시스템(1140)은 인터넷에서 이미지 데이터를 전송 또는 수신하기 위해 입력/출력(1160)을 통해 ISP(Internet Service Provider)의 일부이거나 이에 연결될 수 있다. 본 발명은 인터넷 액세스와 인터넷 웹-기반 싸이트에 한정되지 않으며; 직접 연결된 사설 네트워크 또한 고려된다는 것이 곧바로 명백해 진다.
컴퓨터 시스템(1140)은 다른 아키텍처를 가진 많은 가능한 컴퓨터 시스템들 중 일례라는 것을 이해할 것이다. 전형적인 컴퓨터 시스템은 대개 적어도 프로세서, 메모리, 그리고 메모리를 프로세서로 연결하는 버스를 포함한다. 당업자는 본 발명이 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함해서, 다른 컴퓨터 시스템 구성으로 실행될 수 있다는 것을 즉시 이해할 것이다. 본 발명은 또한 분산 컴퓨터 환경에도 실행될 수 있으며 이 환경에서 작업은 통신 네트워크를 통해 연결된 원격 처리 디바이스에 의해 수행된다.
오디오 인코딩에서 짧은 윈도우를 그룹화하는 다양한 양상이 설명되었다. 특정한 실시예가 본 명세서에 도시되고 설명되었지만, 당업자는 동일한 목적을 달성하기 위해 계산된 임의의 장치가 도시된 특정 실시예를 대체할 수 있을 것이라는 것을 이해할 것이다. 본 출원은 본 발명의 임의의 적응예 또는 변형예를 포괄할 것으로 의도된다.
본 발명은 일반적으로 오디오 인코딩에 관한 것이다, 좀 더 구체적으로, 오디오 인코딩에서 짧은 윈도우를 그룹화하는 것에 이용가능하다.
Claims (21)
- 제 1 유형의 하나 이상의 짧은 윈도우와 프레임 내의 복수의 짧은 윈도우 각각과 연관된 에너지를 사용하여 데이터의 프레임 내의 제 2 유형의 하나 이상의 짧은 윈도우를 식별하는 단계;상기 복수의 짧은 윈도우 각각의 윈도우 유형에 기초하여 상기 제 1 유형의 하나 이상의 짧은 윈도우와 상기 제 2 유형의 하나 이상의 짧은 윈도우를 2개의 예비 그룹으로 그룹화하는 단계;상기 2개의 예비 그룹 중 하나의 짧은 윈도우의 수가 임계수를 초과하는 경우, 상기 2개의 예비 그룹 중 하나의 짧은 윈도우를 적어도 2개의 그룹으로 더 그룹화하는 단계를 포함하는, 방법.
- 제 1항에 있어서, 상기 프레임 내의 상기 복수의 짧은 윈도우는 8개의 짧은 윈도우로 구성된, 방법.
- 제 1항에 있어서,상기 프레임에 대해 짧은 윈도우 그룹의 최종 수를 결정하는 단계를 더 포함하는, 방법.
- 제 3항에 있어서,상기 최종 수의 짧은 윈도우 그룹 각각에 있는 짧은 윈도우의 수를 결정하는 단계를 더 포함하는, 방법.
- 제 1항에 있어서, 제 1 유형의 하나 이상의 짧은 윈도우와 제 2 유형의 하나 이상의 짧은 윈도우를 식별하는 단계는:상기 프레임 내의 상기 복수의 짧은 윈도우 각각의 에너지를 계산하는 단계;최소 에너지를 가진 상기 복수의 짧은 윈도우 중 하나를 발견하는 단계;상기 복수의 윈도우 각각에 대한 오프셋 에너지 값을 계산하는 단계;상기 프레임에 대한 평균 오프셋 에너지 값을 계산하는 단계; 및상기 복수의 짧은 윈도우 각각의 평균 오프셋 에너지 값과 오프셋 에너지 값에 기초하여 상기 복수의 짧은 윈도우 각각의 유형을 결정하는 단계를 포함하는, 방법.
- 제 5항에 있어서, 상기 복수의 짧은 윈도우 각각의 에너지는 다음 식win_energy[win_index]=log[sum(coef[i]*coef[i])+0.5]을 사용하여 계산되고,여기서 [win_index]는 상기 프레임 내의 윈도우 수를 확인하고, win_energy는 결과 에너지이며, coef[i]는 상기 짧은 윈도우 내의 i-번째 스펙트럼 계수인, 방법.
- 제 5항에 있어서, 상기 오프셋은 상기 최소 에너지를 상기 복수의 짧은 윈도우 각각의 에너지에서 감산함으로써 상기 복수의 짧은 윈도우 각각에 대해 계산되는, 방법.
- 제 5항에 있어서, 상기 복수의 짧은 윈도우 각각의 유형을 결정하는 단계는:상기 복수의 짧은 윈도우 각각의 오프셋 에너지 값이 평균 오프셋 에너지 값보다 큰 경우 상기 복수의 짧은 윈도우 각각이 상기 제 1 유형이 되도록 결정하는 단계; 및상기 복수의 짧은 윈도우 각각의 오프셋 에너지 값이 상기 평균 오프셋 에너지 값보다 크지 않은 경우 상기 복수의 짧은 윈도우 각각이 상기 제 2 유형이 되도록 결정하는 단계를 포함하는, 방법.
- 제 1항에 있어서,인접하는 짧은 윈도우가 상기 동일한 유형인 경우, 상기 유형의 인접한 짧은 윈도우에 일치하도록 유형이 부정확할 수 있는 상기 복수의 짧은 윈도우 각각의 유형을 조정하는 단계를 더 포함하는, 방법.
- 제 1항에 있어서, 상기 제 1 유형의 하나 이상의 윈도우와 상기 제 2 유형의 하나 이상의 짧은 윈도우를 2개의 예비 그룹으로 그룹화하는 단계는:상기 복수의 짧은 윈도우 중 제 1 하나를 제 1 예비 그룹에 추가하는 단계; 및후속하는 짧은 윈도우가 상기 제 1 짧은 윈도우의 유형을 갖는 경우 상기 복수의 짧은 윈도우 내의 각 후속하는 짧은 윈도우를 상기 제 1 예비 그룹에 추가하는 단계; 및상기 제 1 윈도우의 유형과 다른 유형을 가진 후속 짧은 윈도우와 마주치는 순간, 제 2 예비 그룹을 생성하고 상기 제 1 예비 그룹에 있는 짧은 윈도우의 수를 상기 복수의 짧은 윈도우의 전체 수에서 감산함으로써 상기 제 2 예비 그룹 내의 짧은 윈도우의 수를 계산하는 단계를 포함하는, 방법.
- 제 1항에 있어서, 상기 임계 수는 미리 결정된 수와 상기 2개의 예비 그룹 중 다른 하나 내의 짧은 그룹의 수 중 임의의 하나인, 방법.
- 제 1항에 있어서,상기 2개의 예비 그룹 내의 짧은 윈도우의 수가 상기 임계 수와 같은 경우, 상기 2개의 예비 그룹이 상기 프레임에 대한 최종 그룹으로 간주하는 단계를 더 포 함하는, 방법.
- 명령을 제공하는 컴퓨터 판독가능 매체로서, 이 명령은 프로세서에서 실행될 때 상기 프로세서가제 1 유형의 하나 이상의 짧은 윈도우와 프레임 내의 복수의 짧은 윈도우 각각과 연관된 에너지를 사용하여 데이터의 프레임 내에 제 2 유형의 하나 이상의 짧은 윈도우를 확인하는 단계;상기 복수의 짧은 윈도우 각각의 윈도우 유형에 기초하여 상기 제 1 유형의 하나 이상의 짧은 윈도우와 상기 제 2 유형의 하나 이상의 짧은 윈도우를 2개의 예비 그룹으로 그룹화하는 단계; 및상기 2개의 예비 그룹 중 하나에서 짧은 윈도우의 수가 임계 수를 초과하는 경우, 상기 2개의 예비 그룹 중 하나에 있는 짧은 윈도우를 적어도 2개의 그룹으로 더 그룹화하는 단계를 포함하는 방법을 수행하도록 하는, 명령을 제공하는 컴퓨터 판독가능 매체.
- 제 13항에 있어서, 상기 프레임 내의 상기 복수의 짧은 윈도우는 8개의 짧은 윈도우로 구성된, 명령을 제공하는 컴퓨터 판독가능 매체.
- 제 13항에 있어서,상기 방법은 상기 프레임에 대해 짧은 윈도우의 최종 수를 결정하는 단계를 더 포함하는, 명령을 제공하는 컴퓨터 판독가능 매체.
- 제 15항에 있어서,상기 방법은 상기 최종 수의 짧은 윈도우 그룹 각각 내의 짧은 윈도우의 수를 결정하는 단계를 더 포함하는, 명령을 제공하는 컴퓨터 판독가능 매체.
- 컴퓨터화된 시스템으로서,메모리; 및상기 메모리에 연결된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 명령 세트를 실행하며, 이 명령은 상기 적어도 하나의 프로세서가상기 프레임 내의 복수의 짧은 윈도우 각각과 연관된 에너지를 사용하여 데이터의 프레임 내의 제 1 유형의 하나 이상의 짧은 윈도우와 제 2 유형의 하나 이상의 짧은 윈도우를 확인하고,상기 복수의 짧은 윈도우 각각의 윈도우 유형에 기초하여 상기 제 1 유형의 하나 이상의 짧은 윈도우와 상기 제 2 유형의 하나 이상의 짧은 윈도우를 2개의 예비 그룹으로 그룹화하며,상기 2개의 예비 그룹 중 하나 내의 짧은 윈도우의 수가 임계 수를 초과하는 경우, 상기 2개의 예비 그룹 중 하나 내의 짧은 윈도우를 적어도 2개의 그룹으로 더 그룹화하도록 하는,컴퓨터화된 시스템.
- 제 17항에 있어서, 상기 프레임 내의 상기 복수의 짧은 윈도우는 8개의 짧은 윈도우로 구성된, 컴퓨터화된 시스템.
- 제 17항에 있어서, 상기 적어도 하나의 프로세서는 명령의 세트를 실행하며, 이 명령은 상기 적어도 하나의 프로세서가 상기 프레임에 대한 짧은 윈도우 그룹의 최종 수를 더 결정하도록 하는, 컴퓨터화된 시스템.
- 제 19항에 있어서, 상기 적어도 하나의 프로세서는 명령 세트를 실행하며, 이 명령은 상기 적어도 하나의 프로세서가 상기 최종 수의 짧은 윈도우 그룹 각각 내의 다수의 짧은 윈도우의 수를 더 결정하도록 하는, 방법.
- 프레임 내의 복수의 짧은 윈도우 각각과 연관된 에너지를 사용하여 데이터의 프레임 내의 제 1 유형의 하나 이상의 짧은 윈도우와 제 2 유형의 하나 이상의 짧은 윈도우를 확인하기 위한 수단;상기 복수의 짧은 윈도우 각각의 윈도우 유형에 기초하여 상기 제 1 유형의 하나 이상의 짧은 윈도우와 상기 제 2 유형의 하나 이상의 짧은 윈도우를 2개의 예비 그룹으로 그룹화하기 위한 수단;상기 2개의 예비 그룹의 하나 내의 짧은 그룹의 수가 임계 수를 초과하는 경우 상기 2개의 예비 그룹 중 하나 내의 짧은 윈도우를 적어도 2개의 그룹으로 더 그룹화하기 위한 수단을 포함하는, 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/674,982 | 2003-09-29 | ||
US10/674,982 US7283968B2 (en) | 2003-09-29 | 2003-09-29 | Method for grouping short windows in audio encoding |
PCT/US2004/031585 WO2005034081A2 (en) | 2003-09-29 | 2004-09-27 | A method for grouping short windows in audio encoding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060131732A true KR20060131732A (ko) | 2006-12-20 |
KR101102016B1 KR101102016B1 (ko) | 2012-01-04 |
Family
ID=34393518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020067005398A KR101102016B1 (ko) | 2003-09-29 | 2004-09-27 | 오디오 인코딩에서 짧은 윈도우를 그룹화하는 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7283968B2 (ko) |
EP (1) | EP1673765B1 (ko) |
JP (1) | JP4750707B2 (ko) |
KR (1) | KR101102016B1 (ko) |
CN (1) | CN1918629B (ko) |
DE (1) | DE602004024811D1 (ko) |
WO (1) | WO2005034081A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010134759A2 (ko) * | 2009-05-19 | 2010-11-25 | 한국전자통신연구원 | Mdct-tcx 프레임과 celp 프레임 간 연동을 위한 윈도우 처리 장치 및 윈도우 처리 방법 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100530377B1 (ko) * | 2003-12-30 | 2005-11-22 | 삼성전자주식회사 | 엠펙 오디오 디코더의 합성필터 및 그 디코딩 방법 |
JP5069909B2 (ja) * | 2004-01-20 | 2012-11-07 | ドルビー ラボラトリーズ ライセンシング コーポレイション | ブロック系列化に基づくオーディオコーディング |
KR100668319B1 (ko) * | 2004-12-07 | 2007-01-12 | 삼성전자주식회사 | 오디오 신호의 변환방법 및 장치와 오디오 신호에적응적인 부호화방법 및 장치, 오디오 신호의 역변환 방법및 장치와 오디오 신호에 적응적인 복호화 방법 및 장치 |
WO2007107046A1 (fr) * | 2006-03-23 | 2007-09-27 | Beijing Ori-Reu Technology Co., Ltd | Procédé de codage/décodage de signaux audio à variations rapides de fréquence |
FR2911228A1 (fr) * | 2007-01-05 | 2008-07-11 | France Telecom | Codage par transformee, utilisant des fenetres de ponderation et a faible retard. |
PL2186090T3 (pl) | 2007-08-27 | 2017-06-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Detektor stanów przejściowych i sposób wspierający kodowanie sygnału audio |
US20090144054A1 (en) * | 2007-11-30 | 2009-06-04 | Kabushiki Kaisha Toshiba | Embedded system to perform frame switching |
WO2009088258A2 (ko) * | 2008-01-09 | 2009-07-16 | Lg Electronics Inc. | 프레임 타입 식별 방법 및 장치 |
CN101751928B (zh) * | 2008-12-08 | 2012-06-13 | 扬智科技股份有限公司 | 应用音频帧频谱平坦度简化声学模型分析的方法及其装置 |
CN103325373A (zh) | 2012-03-23 | 2013-09-25 | 杜比实验室特许公司 | 用于传送和接收音频信号的方法和设备 |
EP2830058A1 (en) | 2013-07-22 | 2015-01-28 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Frequency-domain audio coding supporting transform length switching |
CN108550369B (zh) * | 2018-04-14 | 2020-08-11 | 全景声科技南京有限公司 | 一种可变长度的全景声信号编解码方法 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341457A (en) | 1988-12-30 | 1994-08-23 | At&T Bell Laboratories | Perceptual coding of audio signals |
US4964113A (en) | 1989-10-20 | 1990-10-16 | International Business Machines Corporation | Multi-frame transmission control for token ring networks |
US5642437A (en) | 1992-02-22 | 1997-06-24 | Texas Instruments Incorporated | System decoder circuit with temporary bit storage and method of operation |
JP2693893B2 (ja) | 1992-03-30 | 1997-12-24 | 松下電器産業株式会社 | ステレオ音声符号化方法 |
US5734789A (en) | 1992-06-01 | 1998-03-31 | Hughes Electronics | Voiced, unvoiced or noise modes in a CELP vocoder |
IL104636A (en) | 1993-02-07 | 1997-06-10 | Oli V R Corp Ltd | Apparatus and method for encoding and decoding digital signals |
US5729556A (en) | 1993-02-22 | 1998-03-17 | Texas Instruments | System decoder circuit with temporary bit storage and method of operation |
US5748763A (en) | 1993-11-18 | 1998-05-05 | Digimarc Corporation | Image steganography system featuring perceptually adaptive and globally scalable signal embedding |
US5488665A (en) * | 1993-11-23 | 1996-01-30 | At&T Corp. | Multi-channel perceptual audio compression system with encoding mode switching among matrixed channels |
WO1995032499A1 (fr) | 1994-05-25 | 1995-11-30 | Sony Corporation | Procede de codage, procede de decodage, procede de codage-decodage, codeur, decodeur et codeur-decodeur |
JP3046224B2 (ja) | 1994-07-26 | 2000-05-29 | 三星電子株式会社 | 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法 |
TW316302B (ko) | 1995-05-02 | 1997-09-21 | Nippon Steel Corp | |
WO1996035269A1 (en) | 1995-05-03 | 1996-11-07 | Sony Corporation | Non-linearly quantizing an information signal |
DE19638997B4 (de) | 1995-09-22 | 2009-12-10 | Samsung Electronics Co., Ltd., Suwon | Digitales Toncodierungsverfahren und digitale Toncodierungsvorrichtung |
US5956674A (en) * | 1995-12-01 | 1999-09-21 | Digital Theater Systems, Inc. | Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels |
US5893066A (en) | 1996-10-15 | 1999-04-06 | Samsung Electronics Co. Ltd. | Fast requantization apparatus and method for MPEG audio decoding |
JP3484908B2 (ja) | 1997-01-27 | 2004-01-06 | 三菱電機株式会社 | ビットストリーム再生装置 |
US5982935A (en) | 1997-04-11 | 1999-11-09 | National Semiconductor Corporation | Method and apparatus for computing MPEG video reconstructed DCT coefficients |
GB2326572A (en) | 1997-06-19 | 1998-12-23 | Softsound Limited | Low bit rate audio coder and decoder |
DE19730130C2 (de) | 1997-07-14 | 2002-02-28 | Fraunhofer Ges Forschung | Verfahren zum Codieren eines Audiosignals |
KR100335609B1 (ko) * | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
KR100335611B1 (ko) * | 1997-11-20 | 2002-10-09 | 삼성전자 주식회사 | 비트율 조절이 가능한 스테레오 오디오 부호화/복호화 방법 및 장치 |
JP3515903B2 (ja) | 1998-06-16 | 2004-04-05 | 松下電器産業株式会社 | オーディオ符号化のための動的ビット割り当て方法及び装置 |
US6108622A (en) | 1998-06-26 | 2000-08-22 | Lsi Logic Corporation | Arithmetic logic unit controller for linear PCM scaling and decimation in an audio decoder |
US6298087B1 (en) | 1998-08-31 | 2001-10-02 | Sony Corporation | System and method for decoding a variable length code digital signal |
JP3352406B2 (ja) | 1998-09-17 | 2002-12-03 | 松下電器産業株式会社 | オーディオ信号の符号化及び復号方法及び装置 |
US6282631B1 (en) * | 1998-12-23 | 2001-08-28 | National Semiconductor Corporation | Programmable RISC-DSP architecture |
JP3739959B2 (ja) * | 1999-03-23 | 2006-01-25 | 株式会社リコー | デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体 |
JP3323175B2 (ja) | 1999-04-20 | 2002-09-09 | 松下電器産業株式会社 | 符号化装置 |
JP2000323993A (ja) | 1999-05-11 | 2000-11-24 | Mitsubishi Electric Corp | Mpeg1オーディオレイヤiii復号処理装置およびコンピュータをmpeg1オーディオレイヤiii復号処理装置として機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体 |
JP3762579B2 (ja) * | 1999-08-05 | 2006-04-05 | 株式会社リコー | デジタル音響信号符号化装置、デジタル音響信号符号化方法及びデジタル音響信号符号化プログラムを記録した媒体 |
JP2001154698A (ja) * | 1999-11-29 | 2001-06-08 | Victor Co Of Japan Ltd | オーディオ符号化装置及びその方法 |
JP3597750B2 (ja) * | 2000-04-11 | 2004-12-08 | 松下電器産業株式会社 | グループ化方法及びグループ化装置 |
US6542863B1 (en) | 2000-06-14 | 2003-04-01 | Intervideo, Inc. | Fast codebook search method for MPEG audio encoding |
US20030079222A1 (en) * | 2000-10-06 | 2003-04-24 | Boykin Patrick Oscar | System and method for distributing perceptually encrypted encoded files of music and movies |
JP3639216B2 (ja) | 2001-02-27 | 2005-04-20 | 三菱電機株式会社 | 音響信号符号化装置 |
US6587057B2 (en) | 2001-07-25 | 2003-07-01 | Quicksilver Technology, Inc. | High performance memory efficient variable-length coding decoder |
US6732071B2 (en) * | 2001-09-27 | 2004-05-04 | Intel Corporation | Method, apparatus, and system for efficient rate control in audio encoding |
US6950794B1 (en) * | 2001-11-20 | 2005-09-27 | Cirrus Logic, Inc. | Feedforward prediction of scalefactors based on allowable distortion for noise shaping in psychoacoustic-based compression |
US6662154B2 (en) | 2001-12-12 | 2003-12-09 | Motorola, Inc. | Method and system for information signal coding using combinatorial and huffman codes |
DE60323331D1 (de) * | 2002-01-30 | 2008-10-16 | Matsushita Electric Ind Co Ltd | Verfahren und vorrichtung zur audio-kodierung und -dekodierung |
JP4272897B2 (ja) * | 2002-01-30 | 2009-06-03 | パナソニック株式会社 | 符号化装置、復号化装置およびその方法 |
US7110941B2 (en) * | 2002-03-28 | 2006-09-19 | Microsoft Corporation | System and method for embedded audio coding with implicit auditory masking |
US20030215013A1 (en) * | 2002-04-10 | 2003-11-20 | Budnikov Dmitry N. | Audio encoder with adaptive short window grouping |
JP4009948B2 (ja) * | 2003-03-31 | 2007-11-21 | 日本ビクター株式会社 | オーディオ信号符号化装置及びその符号化プログラム |
-
2003
- 2003-09-29 US US10/674,982 patent/US7283968B2/en not_active Expired - Fee Related
-
2004
- 2004-09-27 WO PCT/US2004/031585 patent/WO2005034081A2/en active Application Filing
- 2004-09-27 JP JP2006533992A patent/JP4750707B2/ja not_active Expired - Fee Related
- 2004-09-27 CN CN2004800282430A patent/CN1918629B/zh not_active Expired - Fee Related
- 2004-09-27 KR KR1020067005398A patent/KR101102016B1/ko not_active IP Right Cessation
- 2004-09-27 EP EP04785096A patent/EP1673765B1/en not_active Expired - Lifetime
- 2004-09-27 DE DE602004024811T patent/DE602004024811D1/de not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010134759A2 (ko) * | 2009-05-19 | 2010-11-25 | 한국전자통신연구원 | Mdct-tcx 프레임과 celp 프레임 간 연동을 위한 윈도우 처리 장치 및 윈도우 처리 방법 |
WO2010134759A3 (ko) * | 2009-05-19 | 2011-03-03 | 한국전자통신연구원 | Mdct-tcx 프레임과 celp 프레임 간 연동을 위한 윈도우 처리 장치 및 윈도우 처리 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP1673765B1 (en) | 2009-12-23 |
CN1918629B (zh) | 2010-05-26 |
KR101102016B1 (ko) | 2012-01-04 |
JP4750707B2 (ja) | 2011-08-17 |
DE602004024811D1 (de) | 2010-02-04 |
WO2005034081A3 (en) | 2006-04-27 |
US20050075861A1 (en) | 2005-04-07 |
EP1673765A4 (en) | 2008-12-31 |
EP1673765A2 (en) | 2006-06-28 |
WO2005034081A2 (en) | 2005-04-14 |
US7283968B2 (en) | 2007-10-16 |
JP2007507751A (ja) | 2007-03-29 |
CN1918629A (zh) | 2007-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101157930B1 (ko) | 오디오 인코딩에서 mdct 데이터에 기초한 윈도우 유형의 결정 방법 | |
JP6789365B2 (ja) | 音声符号化装置および方法 | |
JP5356406B2 (ja) | オーディオコーディングシステム、オーディオデコーダ、オーディオコーディング方法及びオーディオデコーディング方法 | |
KR101419151B1 (ko) | 영역-의존 산술 코딩 매핑 규칙을 이용하는 오디오 인코더, 오디오 디코더, 오디오 정보를 인코딩하기 위한 방법, 오디오 정보를 디코딩하기 위한 방법 및 컴퓨터 프로그램 | |
RU2680352C1 (ru) | Способ и устройство для определения режима кодирования, способ и устройство для кодирования аудиосигналов и способ и устройство для декодирования аудиосигналов | |
EP3671738A1 (en) | Audio encoder and decoder | |
KR101102016B1 (ko) | 오디오 인코딩에서 짧은 윈도우를 그룹화하는 방법 | |
KR20090083070A (ko) | 적응적 lpc 계수 보간을 이용한 오디오 신호의 부호화,복호화 방법 및 장치 | |
KR101008520B1 (ko) | 오디오 신호 코딩 | |
TR201902394T4 (tr) | Gürültü doldurma konsepti. | |
KR101103004B1 (ko) | 오디오 인코딩 시의 레이트-왜곡 제어 구조 | |
AU2020294839B2 (en) | Audio encoder with a signal-dependent number and precision control, audio decoder, and related methods and computer programs | |
KR20060084440A (ko) | 오디오 인코딩에서 신속한 코드북 선택 방법 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20141210 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |