KR101896486B1 - 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더 - Google Patents

오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더 Download PDF

Info

Publication number
KR101896486B1
KR101896486B1 KR1020167033851A KR20167033851A KR101896486B1 KR 101896486 B1 KR101896486 B1 KR 101896486B1 KR 1020167033851 A KR1020167033851 A KR 1020167033851A KR 20167033851 A KR20167033851 A KR 20167033851A KR 101896486 B1 KR101896486 B1 KR 101896486B1
Authority
KR
South Korea
Prior art keywords
signal
current frame
sub
window function
frame
Prior art date
Application number
KR1020167033851A
Other languages
English (en)
Other versions
KR20160147048A (ko
Inventor
저신 류
레이 먀오
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20160147048A publication Critical patent/KR20160147048A/ko
Application granted granted Critical
Publication of KR101896486B1 publication Critical patent/KR101896486B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • G10L19/135Vector sum excited linear prediction [VSELP]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/20Vocoders using multiple modes using sound class specific coding, hybrid encoders or object based coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech 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/02Speech enhancement, e.g. noise reduction or echo cancellation
    • G10L21/038Speech enhancement, e.g. noise reduction or echo cancellation using band spreading techniques
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/45Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of analysis window

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (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)
  • Spectroscopy & Molecular Physics (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

오디오 신호의 시간 엔벨로프를 처리하기 위한 방법 및 장치, 및 인코더가 개시된다. 복수의 시간 엔벨로프가 얻어지는 경우, 신호 에너지의 연속성이 잘 유지될 뿐만 아니라, 시간 엔벨로프를 계산하는 복잡도가 줄어든다. 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법은, 수신되는 현재 프레임 오디오 신호에 따라 현재 프레임 오디오 신호의 고대역 신호를 획득하는 단계(S21); 사전 결정된 시간 엔벨로프 수량(M)에 따라 현재 프레임 오디오 신호의 고대역 신호를 M개의 서브프레임으로 분할하는 단계(S22) - M은 2보다 크거나 같은 정수임 -; 서브프레임 각각의 시간 엔벨로프를 계산하는 단계(S23); M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계; 및 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하는 단계를 포함한다.

Description

오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더{METHOD AND APPARATUS FOR PROCESSING TEMPORAL ENVELOPE OF AUDIO SIGNAL, AND ENCODER}
본 발명의 실시예는 통신 기술 분야에 관한 것으로, 상세하게는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더에 관한 것이다.
음성 및 오디오 압축 기술이 빠르게 발전함에 따라, 다양한 음성 및 오디오 코딩 알고리즘이 잇따라 출현하고 있다. 음성 및 오디오 코딩 알고리즘을 처리하는 동안, 시간 엔벨로프(temporal envelope)가 계산될 필요가 있다. 종래의 시간 엔벨로프를 계산하고 양자화하는 프로세스는 다음과 같다: 계산을 위한 시간 엔벨로프의 사전 결정된 수량(M)에 따라 사전 처리된 원 고대역 신호 및 예측되는 고대역 신호를 M개의 서브프레임으로 개별적으로 분할하고 - 여기서, M은 양의 정수임 -, 서브프레임에 대해 윈도잉을 수행하며, 그 다음에 각각의 서브프레임 내에서 사전 처리된 원 고대역 신호의 에너지나 진폭에 대한 예측되는 고대역 신호의 에너지나 진폭의 비율을 계산한다. 계산을 위한 시간 엔벨로프의 사전 결정된 수량(M)은 룩어헤드 버퍼(lookahead buffer) 길이에 따라 결정된다. 룩어헤드 버퍼는, 현재 프레임 내에서, 일부 파라미터를 계산하는 필요에 대해, 입력 신호의 일부 마지막 샘플이 버퍼링되고 사용되지 않지만, 파라미터가 다음 프레임에서 계산되는 경우에 사용된다는 것을 의미한다. 여기서, 이전 프레임 내에 버퍼링된 샘플이 현재 프레임에 대해 사용된다. 이러한 버퍼링된 샘플이 룩어헤드 버퍼이고, 이 버퍼링된 샘플의 수량이 룩어헤드 버퍼 길이이다.
시간 엔벨로프를 처리하는 전술한 프로세스에 존재하는 문제는, 시간 엔벨로프가 얻어지는 경우, 대칭 윈도 함수가 사용되고, 더구나 서브프레임 간 및 프레임 간 앨리어싱(aliasing)을 보장하기 위해 복수의 시간 엔벨로프가 룩어헤드 버퍼(lookahead) 길이에 따라 계산된다는 것이다. 하지만, 시간 엔벨로프를 계산하는 동안, 신호의 시간 영역 분해능이 과도하게 높으면, 불연속적인 프레임 내 에너지의 원인이 되며, 따라서 극도로 열악한 청각 경험을 초래한다.
본 발명의 실시예는, 시간 엔벨로프가 계산되는 경우 야기되는 불연속적인 프레임 내 에너지의 문제를 해결하기 위해 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법 및 장치, 및 인코더를 제공한다.
제1 양태에 따라, 본 발명의 일 실시예는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법을 제공한다. 상기 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법은,
수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 고대역 신호를 획득하는 단계;
사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할하는 단계 - M은 2보다 크거나 같은 정수임 -; 및
상기 서브프레임 각각의 시간 엔벨로프를 계산하는 단계를 포함하고,
상기 서브프레임 각각의 시간 엔벨로프를 계산하는 단계는,
상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉(windowing)을 수행하는 단계; 및
상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉(windowing)을 수행하는 단계를 포함한다.
본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 따르면, 시간 엔벨로프들 간의 과도하게 큰 차이로 인해 야기되는 에너지 불연속의 영향을 줄일 수 있도록, 시간 엔벨로프가 서로 다른 조건 하에서 서로 다른 윈도 길이 및/또는 윈도 모양을 이용하여 얻어지며, 이로써 출력 신호의 성능을 향상시킨다.
제1 양태의 제1 가능한 구현 방식에서, 상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계 이전에, 상기 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법은,
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이(lookahead buffer length)에 따라 상기 비대칭 윈도 함수를 결정하는 단계; 또는
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 상기 시간 엔벨로프 수량(M)에 따라 상기 비대칭 윈도 함수를 결정하는 단계를 더 포함한다.
제1 양태 또는 제1 양태의 제1 가능한 구현 방식을 참조하여, 제1 양태의 제2 가능한 구현 방식에서, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하는 단계는,
상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계; 또는
상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계를 포함한다.
제1 양태를 참조하여, 제1 양태의 제3 가능한 구현 방식에서, 상기 비대칭 윈도 함수의 윈도 길이는, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 수행된 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일하다.
제1 양태의 제1 가능한 구현 방식 내지 제1 양태의 제3 가능한 구현 방식 중 어느 하나에 따른 방법을 참조하여, 제1 양태의 제4 가능한 구현 방식에서, 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계는,
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 작은 경우, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호 및 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계를 포함하고, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 상기 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분(aliased part)은 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이와 동일하고, 상기 제1 임계값은 상기 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일하다.
제1 양태의 제1 가능한 구현 방식 내지 제1 양태의 제3 가능한 구현 방식 중 어느 하나에 따른 방법을 참조하여, 제1 양태의 제5 가능한 구현 방식에서, 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계는,
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 큰 경우, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호 및 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계를 포함한다. 여기서, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 상기 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분은 상기 제1 임계값과 동일하고, 상기 제1 임계값은 상기 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일하다.
제1 양태 내지 제1 양태의 제5 가능한 구현 방식 중 어느 하나에 따른 방법을 참조하여, 제1 양태의 제6 가능한 구현 방식에서, 상기 시간 엔벨로프 수량(M)은,
상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기(pitch period)가 제2 임계값보다 큰 경우 M1을 M에 할당하는 방식; 또는
상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 결정된다.
여기서, M1 및 M2는 둘 다 양의 정수이고, M2>M1이다.
제1 양태 내지 제1 양태의 제5 가능한 구현 방식 중 어느 하나에 따른 방법을 참조하여, 제1 양태의 제7 가능한 구현 방식에서, 상기 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법은,
상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호의 피치 주기를 획득하는 단계; 및
상기 현재 프레임 신호의 타입이 상기 현재 프레임의 이전 프레임 신호의 타입과 동일하고 상기 현재 프레임의 저대역 신호의 피치 주기가 제3 임계값보다 큰 경우, 상기 서브프레임 각각의 시간 엔벨로프에 대해 평활화 처리를 수행하는 단계를 더 포함한다.
제2 양태에 따라, 본 발명의 일 실시예는 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치를 제공한다. 상기 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치는,
수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 고대역 신호를 획득하도록 구성된 고대역 신호 획득 모듈;
사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할하도록 구성된 서브프레임 획득 모듈 - M은 2보다 크거나 같은 정수임 -; 및
상기 서브프레임 각각의 시간 엔벨로프를 계산하도록 구성된 시간 엔벨로프 획득 모듈을 포함한다.
여기서, 상기 시간 엔벨로프 획득 모듈은 구체적으로,
상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고;
상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하도록 구성된다.
본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치에 따르면, 시간 엔벨로프들 간의 과도하게 큰 차이로 인해 야기되는 에너지 불연속의 영향을 줄일 수 있도록, 시간 엔벨로프가 서로 다른 조건 하에서 서로 다른 윈도 길이 및/또는 윈도 모양을 이용하여 얻어짐으로써, 출력 신호의 성능을 향상시킨다.
제2 양태의 제1 가능한 구현 방식에서, 상기 시간 엔벨로프 획득 모듈은 추가적으로,
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하거나; 또는
상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 상기 시간 엔벨로프 수량(M)에 따라 상기 비대칭 윈도 함수를 결정하도록 구성된다.
제2 양태의 구현 방식을 참조하여, 제2 양태의 제2 가능한 구현 방식에서, 상기 시간 엔벨로프 획득 모듈은 구체적으로,
상기 M개의 서브프레임 중 상기 제1 서브프레임 및 상기 M개의 서브프레임 중 상기 마지막 서브프레임에 대해 상기 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하거나; 또는
상기 M개의 서브프레임 중 상기 제1 서브프레임 및 상기 M개의 서브프레임 중 상기 마지막 서브프레임에 대해 상기 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하도록 구성된다.
제2 양태의 구현 방식을 참조하여, 제2 양태의 제3 가능한 구현 방식에서, 상기 비대칭 윈도 함수의 윈도 길이는, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 수행된 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일하다.
제2 양태 내지 제2 양태의 제3 가능한 구현 방식 중 어느 하나에 따른 장치를 참조하여, 제2 양태의 제4 가능한 구현 방식에서, 상기 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치는,
상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 M1을 M에 할당하는 방식; 또는
상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 상기 시간 엔벨로프 수량을 결정하도록 구성되는 결정 모듈을 더 포함한다.
여기서, M1 및 M2는 둘 다 양의 정수이고, M2>M1이다.
본 발명의 제3 양태의 실시예는 인코더를 개시한다. 상기 인코더는 구체적으로,
수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호 및 상기 현재 프레임 신호의 고대역 신호를 획득하고;
저대역 인코딩된 여기 신호를 획득하기 위해 상기 현재 프레임 신호의 저대역 신호를 인코딩하며;
선형 예측 계수를 획득하기 위해 상기 현재 프레임 신호의 고대역 신호에 대해 선형 예측을 수행하고;
양자화된 선형 예측 계수를 획득하기 위해 상기 선형 예측 계수를 양자화하며;
상기 저대역 인코딩된 여기 신호 및 상기 양자화된 선형 예측 계수에 따라 예측되는 고대역 신호를 획득하고;
상기 예측되는 고대역 신호의 시간 엔벨로프를 계산하고 양자화하도록 구성된다.
여기서, 상기 예측되는 고대역 신호의 시간 엔벨로프를 계산하는 것은,
사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 예측되는 고대역 신호를 M개의 서브프레임으로 분할하고 - 여기서, M은 2보다 크거나 같은 정수임 -;
상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하며;
상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하고;
상기 양자화된 시간 엔벨로프를 인코딩한다.
본 발명의 본 실시예에서 제공되는 인코더에 따르면, 시간 엔벨로프들 간의 과도하게 큰 차이로 인해 야기되는 에너지 불연속의 영향을 줄일 수 있도록, 시간 엔벨로프가 서로 다른 조건 하에서 서로 다른 윈도 길이 및/또는 윈도 모양을 이용하여 얻어짐으로써, 출력 신호의 성능을 향상시킨다.
본 발명의 실시예에서의 과제 해결수단을 더 명확하게 설명하기 위해, 다음에서는 실시예를 설명하기 위해 필요한 첨부 도면에 대해 간략하게 설명한다. 명백히, 다음의 설명에서 첨부 도면은 본 발명의 일부 실시예를 나타내며, 당업자라면 창의적인 노력 없이도 이러한 첨부 도면으로부터 다른 도면을 여전히 도출해낼 수 있을 것이다.
도 1은 오디오 신호를 인코딩하는 프로세스의 개략도이다.
도 2는 본 발명에 따른 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법의 실시예 1의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다.
도 4는 본 발명의 다른 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다.
도 5는 본 발명의 또 다른 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다.
도 6은 본 발명에 따른 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법의 실시예 2의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 시간 엔벨로프를 처리하기 위한 장치의 개략적인 구조도이다.
도 8은 본 발명의 일 실시예에 따른 인코더의 개략적인 구조도이다.
본 발명의 실시예의 목적, 과제 해결수단, 및 장점을 명확하게 하기 위하여, 이하에서는 본 발명의 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 과제 해결수단에 대해 명확하고 완전하게 설명한다. 명백히, 이하의 실시예는 본 발명의 실시예의 전부가 아니라 단지 일부일 뿐이다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 1은 음성 또는 오디오 신호를 인코딩하는 프로세스의 개략도이다. 도 1에 도시된 바와 같이, 인코딩 측에서, 원 오디오 신호(original audio signal)가 획득된 후에, 원 오디오 신호의 저대역 신호 및 고대역 신호를 획득하기 위해 원 오디오 신호에 대해 신호 분리가 먼저 수행된다. 그 후에, 저대역 스트림을 획득하기 위해, 저대역 신호가 종래의 알고리즘을 이용하여 인코딩된다. 종래의 알고리즘은 대수 코드 여기 선형 예측(Algebraic Code Excited Linear Prediction, ACELP), 또는 코드 여기 선형 예측(Code Excited Linear Prediction, CELP)와 같은 알고리즘이다. 또한, 저대역 인코딩을 수행하는 프로세스에서, 저대역 여기 신호가 획득되고, 저대역 여기 신호가 사전 처리된다. 원 오디오 신호의 고대역 신호의 경우, 사전 처리가 먼저 수행된 후에, 선형 예측(Linear prediction, LP) 분석이 LP 계수를 획득하기 위해 수행되며, LP 계수가 양자화된다. 그 후에, 예측되는 고대역 신호를 획득하기 위해, 사전 처리된 저대역 여기 신호가 LP 합성 필터를 이용하여 처리된다(필터 계수는 양자화된 LP 계수임). 고대역 신호의 시간 엔벨로프가 사전 처리된 고대역 신호 및 예측되는 고대역 신호에 따라 계산되고 양자화되며, 마지막으로 인코딩된 스트림(MUX)이 출력된다. 고대역 신호의 시간 엔벨로프를 계산하고 양자화하는 프로세스는 다음과 같다: 사전 처리된 고대역 신호 및 예측되는 고대역 신호를 사전 결정된 시간 엔벨로프 수량(N)에 따라 N개의 서브프레임으로 개별적으로 분할하고; 서브프레임 각각에 대해 윈도잉을 수행하며; 그 다음에 사전 처리된 원 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 사전 처리된 원 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값을 계산하고; 예측되는 고대역 신호의 대응하는 서브프레임의 시간 영역 에너지의 평균값, 또는 예측되는 고대역 신호의 대응하는 서브프레임 내의 샘플 진폭의 평균값을 계산한다. 사전 결정된 시간 엔벨로프 수량(N)은 룩어헤드 버퍼(lookahead) 길이에 따라 결정된다. 여기서, N은 양의 정수이다.
본 발명의 본 실시예는 도 1에 도시된 시간 엔벨로프를 계산하고 양자화하는 단계에 주로 사용되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법을 제공하며, 동일한 원리를 이용하여 시간 엔벨로프를 얻는 다른 처리 프로세스에 추가적으로 사용될 수 있다. 이하, 첨부 도면을 참조하여 본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 대해 상세하게 설명한다.
도 2는 본 발명에 따른 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법의 실시예 1의 흐름도이다. 도 2에 도시된 바와 같이, 본 실시예의 방법은 다음의 단계를 포함한다.
S21. 수신된 현재 프레임 신호에 따라 현재 프레임 신호의 고대역 신호를 획득한다.
현재 프레임 신호는 음성 신호일 수 있거나, 음악 신호일 수 있거나, 또는 노이즈 신호일 수 있으며, 이는 본 명세서에서 구체적으로 제한되지 않는다.
S22. 사전 결정된 시간 엔벨로프 수량(M)에 따라 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할한다. 여기서, M은 2보다 크거나 같은 정수이다.
구체적으로, 사전 결정된 시간 엔벨로프 수량(M)은 전반적인 알고리즘의 요구 및 경험적인 값에 따라 결정될 수 있다. 시간 엔벨로프 수량(M)은, 예를 들어, 인코더에 의해 전체 알고리즘 또는 경험적인 값에 따라 사전 결정되며, 결정된 후에는 변경되지 않는다. 예를 들어, 일반적으로, 20 ms의 프레임을 가진 입력 신호의 경우, 입력 신호가 비교적 안정적이면, 4개의 또는 2개의 시간 엔벨로프가 얻어지지만, 일부 불안정한 신호의 경우에는, 더 많은 시간 엔벨로프, 예를 들어 8개의 시간 엔벨로프가 얻어질 필요가 있다.
S23. 서브프레임 각각의 시간 엔벨로프를 계산한다.
서브프레임 각각의 시간 엔벨로프를 계산하는 단계는,
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계; 및
M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하는 단계를 포함한다.
또한, M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계 이전에, 본 실시예에서의 방법은,
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하는 단계; 또는
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 시간 엔벨로프 수량(M)에 따라 비대칭 윈도 함수를 결정하는 단계를 더 포함할 수 있다.
M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하는 단계는 구체적으로,
M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계; 또는
M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계를 포함할 수 있다.
가능한 일 구현 방식에서, 제1 서브프레임 및 마지막 서브프레임에 대해 수행된 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이는 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 수행된 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일하다.
전술한 실시예의 구현 가능한 방식에서, 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하는 단계는,
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 작은 경우, 현재 프레임의 이전 프레임 신호의 고대역 신호 및 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하는 단계를 포함한다. 여기서, 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분(aliased part)은 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이와 동일하고, 제1 임계값은 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일하다.
가능한 일 구현 방식에서, 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하는 단계는,
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 큰 경우, 현재 프레임의 이전 프레임 신호의 고대역 신호 및 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하는 단계를 포함한다. 여기서, 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분은 제1 임계값과 동일하고, 제1 임계값은 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일하다.
본 발명의 일 실시예에서, 시간 엔벨로프 수량(M)은,
현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호를 획득하고, 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 M1을 M에 할당하는 방식; 또는
현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호를 획득하고, 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 결정된다.
여기서, M1 및 M2는 둘 다 양의 정수이고, M2>M1이며; 가능한 방식에서, M1=4이고 M2=8이다.
전술한 실시예에서, 본 실시예의 방법은,
현재 프레임 신호에 따라 현재 프레임의 저대역 신호의 피치 주기를 획득하는 단계; 및
현재 프레임 신호의 타입이 현재 프레임의 이전 프레임 신호의 타입과 동일하고 현재 프레임의 저대역 신호의 피치 주기가 제3 임계값보다 큰 경우, 서브프레임 각각의 시간 엔벨로프에 대해 평활화 처리를 수행하는 단계를 더 포함할 수 있다.
시간 엔벨로프에 대해 평활화 처리를 수행하는 단계는 구체적으로, 2개의 인접한 서브프레임의 시간 엔벨로프에 가중치를 주고, 가중된 시간 엔벨로프를 2개의 인접한 서브프레임의 시간 엔벨로프로서 사용하는 단계일 수 있다. 예를 들어, 디코딩 측의 2개의 연속 프레임의 신호가 유성음 신호(voiced signal)이거나, 또는 하나의 프레임이 유성음 신호이고 다른 프레임이 정상적인 신호이며, 저대역 신호의 피치 주기가 주어진 임계값(70개의 샘플보다 크고, 이 경우 저대역 신호의 샘플링 레이트는 12.8 kHz임)보다 큰 경우, 디코딩되는 고대역 신호의 시간 엔벨로프에 대해 평활화 처리가 수행되고; 그렇지 않으면, 시간 엔벨로프는 변경되지 않고 남아있다. 평활화 처리는 다음과 같을 수 있다:
env[0] = 0.5*(env[0]+env[1]);
env[1] = 0.5*(env[0]+env[1]);
...
env[N-1]=0.5*(env[N-1]+env[N]); 및
env[N] = 0.5*(env[N-1]+env[N]).
여기서, env[]는 시간 엔벨로프이다.
전술한 단계 시퀀스 번호는 본 발명의 본 실시예를 이해하도록 돕기 위해 사용되는 단지 예일 뿐이고, 본 발명의 본 실시예에 대한 구체적인 제한이 아니라는 것을 이해할 수 있을 것이다. 실제 처리 프로세스에서, 전술한 시퀀스 제한을 엄밀하게 따를 필요는 없다. 예를 들어, 윈도잉은 제1 서브프레임 및 마지막 서브프레임을 제외한 서브프레임에 대해 먼저 수행될 수 있고, 그 다음에 제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉이 수행된다.
도 3은 본 발명의 일 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다.
도 3에 도시된 바와 같이, 인코딩 측에서, 원 오디오 신호가 획득된 후에, 원 오디오 신호의 저대역 신호 및 고대역 신호를 획득하기 위해 원 오디오 신호에 대해 신호 분리가 먼저 수행된다. 그 후에, 저대역 스트림을 획득하기 위해, 저대역 신호가 종래의 알고리즘을 이용하여 인코딩된다. 또한, 저대역 인코딩을 수행하는 프로세스에서, 저대역 여기 신호가 획득되고, 저대역 여기 신호가 사전 처리된다. 원 오디오 신호의 고대역 신호의 경우, 사전 처리가 먼저 수행되고, 그 다음에 LP 분석이 LP 계수를 획득하기 위해 수행되며, LP 계수가 양자화된다. 그 후에, 사전 처리된 저대역 여기 신호가 예측되는 고대역 신호를 획득하기 위해 LP 합성 필터를 이용하여 처리된다(필터 계수는 양자화된 LP 계수임). 고대역 신호의 시간 엔벨로프가 사전 처리된 고대역 신호 및 예측되는 고대역 신호에 따라 계산되어 양자화되고, 마지막으로 인코딩된 스트림이 출력된다.
고대역 신호의 시간 엔벨로프를 계산하고 양자화하는 단계를 제외하고는, 오디오 신호의 다른 단계의 처리를 위해 종래 기술에 사용되는 방법을 참조하며, 본 명세서에서는 세부사항에 대해 설명하지 않는다.
이하, 도 3에 도시된 (N+1)번째 프레임에 대한 처리를 예로서 사용하여 본 발명의 본 실시예에서 시간 엔벨로프를 계산하고 양자화하는 단계에 대해 상세하게 설명한다.
도 3에 도시된 바와 같이, (N+1)번째 프레임은 계산될 필요가 있는 시간 엔벨로프의 수량에 따라 M개의 서브프레임으로 분할된다. 여기서, M은 양의 정수이다. 가능한 일 구현 방식에서, M의 값은 3, 4, 5, 또는 8 등일 수 있으며, 이는 본 명세서에서 제한되지 않는다.
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉이 수행된다. (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임은 이전 프레임(N번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이고, 마지막 서브프레임은 다음 프레임(도면에 도시되지 않는 (N+2)번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이다. 가능한 방식에서, 도 3에 도시된 바와 같이, 제1 서브프레임은 (N+1)번째 프레임 내 가장 왼쪽의 서브프레임이고, 마지막 서브프레임은 (N+1)번째 프레임 내 가장 오른쪽 서브프레임이다. 도 3을 참조하면 가장 왼쪽 및 가장 오른쪽은 단지 구체적인 예일 뿐이고 본 발명의 본 실시예에 대한 제한이 아니라는 것을 이해할 수 있을 것이다. 실제로는, 서브프레임 분할에는 가장 왼쪽 및 가장 오른쪽과 같은 방향 제한이 없다.
제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 비대칭 윈도우는 완전히 동일할 수 있거나 또는 서로 다를 수 있으며, 이는 본 명세서에서 제한되지 않는다. 가능한 일 구현 방식에서, 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이는 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 동일하다.
본 발명의 일 실시예에서, 도 3에 도시된 바와 같이, (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉이 수행된다.
본 발명의 일 실시예에서, 제1 서브프레임 및 마지막 서브프레임에 대해 수행된 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이는, 다른 서브프레임에 사용되는 대칭 윈도 함수의 윈도 길이와 동일하다. 다른 가능한 방식에서, 비대칭 윈도 함수의 윈도 길이가 대칭 윈도 함수의 윈도 길이와 같지 않을 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 8개의 시간 엔벨로프가 얻어질 수 있다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 4개의 시간 엔벨로프가 얻어질 수 있다.
본 발명의 일 실시예에서, 사전 설정에 추가하여, 시간 엔벨로프의 수량(N)이 (N+1)번째 프레임의 다른 정보에 따라 사전 설정될 수 있다. 다음은 시간 엔벨로프의 수량(N)을 결정하는 구현 방식의 예이다:
가능한 일 구현 방식에서, (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 4가 N에 할당되거나, 또는 (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 8이 N에 할당된다. 샘플링 레이트가 12.8 kHz인 저대역 신호의 경우, 제2 임계값이 70개의 샘플일 수 있다. 전술한 값은 단지 본 발명의 본 실시예의 이해를 돕기 위해 사용되는 구체적인 예일 뿐이며, 본 발명의 본 실시예에 대한 구체적인 제한이 아니라는 것을 이해할 수 있을 것이다. 도 3에 도시된 바와 같이, (N+1)번째 프레임의 신호에 대해 신호 분리가 수행되는 경우, (N+1)번째 프레임의 저대역 신호가 획득될 수 있다. 신호 분리에 사용되는 방법 및 저대역 신호의 피치 주기를 얻는 방식은 종래 기술에서의 임의의 방식일 수 있으며, 이는 본 명세서에서 구체적으로 제한되지 않는다.
저대역 신호의 피치 주기를 사용하는 것에 추가하여, 신호 에너지와 같은 다른 파라미터도 사용될 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, 비대칭 윈도 함수가 제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 경우, 비대칭 윈도 함수는 룩어헤드 버퍼 길이에 따라 결정된다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고, 샘플링 레이트가 4 kHz이며, 8개의 시간 엔벨로프가 얻어지는 경우, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 20개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 10과 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 작은 경우, 제8 서브프레임(즉, 마지막 서브프레임)에 사용되는 윈도 함수의 앨리어싱된 부분과 제1 서브프레임(즉, 제1 서브프레임)에 사용되는 윈도 함수는 룩어헤드 버퍼 길이와 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 크거나 같은 경우, 제8 서브프레임에 사용되는 윈도 함수의 우측의 길이와 제1 서브프레임에 사용되는 윈도 함수의 좌측의 길이가 다른 측(예컨대, 제1 서브프레임에 사용되는 윈도 함수의 우측 또는 제8 서브프레임에 사용되는 윈도 함수의 좌측)의 윈도 길이(10개의 샘플)와 같을 수 있거나, 또는 길이가 경험에 따라 설정될 수 있다(예컨대, 룩어헤드 버퍼가 10개의 샘플보다 작은 경우에 사용되는 길이와 동일한 길이를 유지함).
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플인 경우, 샘플링 레이트가 4 kHz이고, 4개의 시간 엔벨로프가 얻어지며, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 40개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 20과 같다.
윈도잉 이후에, 사전 처리된 원 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 사전 처리된 원 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값; 및 예측되는 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 예측되는 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값이 계산된다. 구체적인 계산 방식에 관해서는, 종래 기술에서 제공되는 방식을 참조하라. 본 발명의 본 실시예에서 제공되는 신호를 처리하기 위한 방법의 윈도잉에 사용되는, 윈도 모양을 결정하는 방식 및 필요한 윈도 수량은 종래 기술의 방식 및 수량과 다르다. 다른 계산 방식에 대해서는, 종래 기술에서 제공되는 방식을 참조하라.
본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 따르면, 시간 엔벨로프들 간의 과도하게 큰 차이로 인해 야기되는 에너지 불연속의 영향을 줄일 수 있도록, 시간 엔벨로프가 서로 다른 조건 하에서 서로 다른 윈도 길이 및/또는 윈도 모양을 이용하여 얻어짐으로써, 출력 신호의 성능을 향상시킨다.
이하에서는 본 발명의 다른 실시예의 시간 엔벨로프를 계산하고 양자화하는 단계에 대해 도4에 예로서 도시되어 있는 (N+1)번째 프레임에 대한 처리를 사용하여 상세하게 설명한다.
도 4는 본 발명의 다른 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다. 도 4에 도시된 바와 같이, 도 3에 도시된 것과 유사하게, (N+1)번째 프레임이 계산될 필요가 있는 시간 엔벨로프의 수량에 따라 M개의 서브프레임으로 분할된다. 여기서, M은 양의 정수이다. 가능한 일 구현 방식에서, M의 값은 3, 4, 5, 또는 8 등일 수 있으며, 이는 본 명세서에서 제한되지 않는다.
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉이 수행된다. 도 4에 도시된 바와 같이, 제1 서브프레임에 대해 수행된 윈도잉에 사용되는 비대칭 윈도 함수는 마지막 서브프레임에 대해 수행된 윈도잉에 사용되는 비대칭 윈도 함수와 다르다. 가능한 일 구현 방식에서, 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이가 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 동일하거나, 또는 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이가 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 서로 다를 수 있다.
본 발명의 일 실시예에서, 도 4에 도시된 바와 같이, (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 동일한 모양의 비대칭적인 윈도우를 이용하여 윈도잉이 수행된다.
본 발명의 일 실시예에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 8개의 시간 엔벨로프가 얻어질 수 있다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 4개의 시간 엔벨로프가 얻어질 수 있다.
본 발명의 일 실시예에서, 사전 설정에 추가하여, 시간 엔벨로프의 수량(N)이 (N+1)번째 프레임의 다른 정보에 따라 사전 설정될 수 있다. 다음은 시간 엔벨로프의 수량(N)을 결정하는 구현 방식의 예이다:
가능한 일 구현 방식에서, (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 4가 N에 할당되거나, 또는 (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 8이 N에 할당된다. 샘플링 레이트가 12.8 kHz인 저대역 신호의 경우, 제2 임계값이 70개의 샘플일 수 있다. 전술한 값은 본 발명의 본 실시예의 이해를 돕기 위해 사용되는 단지 구체적인 예일 뿐이고, 본 발명의 본 실시예에 대한 구체적인 제한이 아니라는 것을 이해할 수 있을 것이다. 도 4에 도시된 바와 같이, (N+1)번째 프레임의 신호에 대해 신호 분리가 수행되는 경우, (N+1)번째 프레임의 저대역 신호가 획득될 수 있다. 신호 분리에 사용되는 방법 및 저대역 신호의 피치 주기를 얻는 방식은 종래 기술에서의 임의의 방식일 수 있으며, 이는 본 명세서에서 구체적으로 제한되지 않는다.
저대역 신호의 피치 주기를 사용하는 것에 추가하여, 신호 에너지와 같은 다른 파라미터가 사용될 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, 비대칭 윈도 함수가 제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 경우, 비대칭 윈도 함수는 룩어헤드 버퍼 길이에 따라 결정된다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고, 샘플링 레이트가 4 kHz이며, 8개의 시간 엔벨로프가 얻어지는 경우, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 20개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값이 10과 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 작은 경우, 제8 서브프레임(즉, 마지막 서브프레임)에 사용되는 윈도 함수 및 제1 서브프레임(즉, 제1 서브프레임)에 사용되는 윈도 함수의 앨리어싱된 부분은 룩어헤드 버퍼 길이와 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 크거나 같은 경우, 제8 서브프레임에 사용되는 윈도 함수의 우측의 길이와 제1 서브프레임에 사용되는 윈도 함수의 좌측의 길이가 다른 측(예컨대, 제1 서브프레임에 사용되는 윈도 함수의 우측 또는 제8 서브프레임에 사용되는 윈도 함수의 좌측)의 윈도 길이(10개의 샘플)와 같을 수 있거나, 또는 길이가 경험에 따라 설정될 수 있다(예컨대, 룩어헤드 버퍼가 10개의 샘플보다 작은 경우에 사용되는 길이와 동일한 길이를 유지함).
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플인 경우, 샘플링 레이트가 4 kHz이고, 4개의 시간 엔벨로프가 얻어지며, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 40개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 20과 같다.
윈도잉 이후에, 사전 처리된 원 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 사전 처리된 원 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값; 및 예측되는 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 예측되는 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값이 계산된다. 구체적인 계산 방식에 관해서는, 종래 기술에서 제공되는 방식을 참조하라. 본 발명의 본 실시예에서 제공되는 신호를 처리하기 위한 방법의 윈도잉에 사용되는, 윈도 모양을 결정하는 방식 및 필요한 윈도 수량은 종래 기술에서의 방식 및 수량과는 다르다. 다른 계산 방식에 대해서는, 종래 기술에서 제공되는 방식을 참조하라.
이하에서는 본 발명의 다른 실시예의 시간 엔벨로프를 계산하고 양자화하는 단계에 대해 도 5에 도시된 (N+1)번째 프레임에 대한 처리를 예로서 사용하여 상세하게 설명한다.
도 5는 본 발명의 또 다른 실시예에 따른 오디오 신호에 대한 처리를 도시한 개략도이다. 도 5에 도시된 바와 같이, 인코딩 측에서, 원 오디오 신호가 획득된 후에, 원 오디오 신호의 저대역 신호 및 고대역 신호를 획득하기 위해 원 오디오 신호에 대해 신호 분리가 먼저 수행된다. 그 후에, 저대역 스트림을 획득하기 위해, 저대역 신호가 종래의 알고리즘을 이용하여 인코딩된다. 또한, 저대역 인코딩을 수행하는 프로세스에서, 저대역 여기 신호가 획득되고, 저대역 여기 신호가 사전 처리된다. 원 오디오 신호의 고대역 신호의 경우, 사전 처리가 먼저 수행되고, 그 다음에 LP 분석이 LP 계수를 획득하기 위해 수행되며, LP 계수가 양자화된다. 그 후에, 예측되는 고대역 신호를 획득하기 위해 사전 처리된 저대역 여기 신호가 LP 합성 필터를 이용하여 처리된다(필터 계수는 양자화된 LP 계수임). 고대역 신호의 시간 엔벨로프가 사전 처리된 고대역 신호 및 예측되는 고대역 신호에 따라 계산되어 양자화되며, 마지막으로 인코딩된 스트림이 출력된다.
고대역 신호의 시간 엔벨로프를 계산하고 양자화하는 단계를 제외하고는, 오디오 신호의 다른 단계의 처리를 위해 종래 기술에 사용되는 방법을 참조하고, 본 명세서에서는 세부사항에 대해 설명하지 않는다.
이하, 본 발명의 본 실시예에서 시간 엔벨로프를 계산하고 양자화하는 단계에 대해 도 5에 도시된 (N+1)번째 프레임에 대한 처리를 예로서 사용하여 상세하게 설명한다.
도 5에 도시된 바와 같이, (N+1)번째 프레임이 계산될 필요가 있는 시간 엔벨로프의 수량에 따라 M개의 서브프레임으로 분할된다. 여기서, M은 양의 정수이다. 가능한 일 구현 방식에서, M의 값은 3, 4, 5, 또는 8 등일 수 있으며, 이는 본 명세서에서 제한되지 않는다.
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉이 수행된다. (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임은 이전 프레임(N번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이고, 마지막 서브프레임은 다음 프레임(도면에 도시되지 않는 (N+2)번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이다. 가능한 방식에서, 도 3에 도시된 바와 같이, 제1 서브프레임은 (N+1)번째 프레임 내 가장 왼쪽의 서브프레임이고, 마지막 서브프레임은 (N+1)번째 프레임 내 가장 오른쪽 서브프레임이다. 도 3을 참조하면 가장 왼쪽 및 가장 오른쪽은 단지 구체적인 예일 뿐이고 본 발명의 본 실시예에 대한 제한이 아니라는 것을 이해할 수 있을 것이다. 실제로, 서브프레임 분할에 있어서는 가장 왼쪽 및 가장 오른쪽과 같은 방향 제한이 없다.
제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 비대칭 윈도우는 완전히 동일할 수 있거나 또는 서로 다를 수 있으며, 이는 본 명세서에서 제한되지 않는다. 가능한 일 구현 방식에서, 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이는 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 동일하다.
본 발명의 가능한 구현 방식에서, M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉이 수행된다. M개의 서브프레임 중 제1 서브프레임에 사용되는 비대칭 윈도 함수의 모양은, M개의 서브프레임 중 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 모양과 다르다. 하나의 비대칭 윈도 함수는, 가로 방향으로 180도 회전된 후에, 다른 비대칭 윈도 함수와 중첩할 수 있다. 가능한 일 구현 방식에서, 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이는 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 동일하다. 본 발명의 일 실시예에서, 도 5에 도시된 바와 같이, (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉이 수행된다. 대칭 윈도 함수의 윈도 길이는 비대칭 윈도 함수의 윈도 길이와 다르다. 예를 들어, 프레임 길이가 20 ms(80개의 샘플)이고 샘플링 레이트가 4 kHz인 신호의 경우, 룩어헤드 버퍼가 5개의 샘플이면 4개의 시간 엔벨로프가 얻어진다. 본 실시예서의 윈도 함수가 사용된다. 2개의 단부의 윈도 길이는 30개의 샘플이다. 2개의 연속 프레임이 앨리어싱되는 경우, 샘플 수량은 5이고, 2개의 증간 윈도 길이는 50개의 샘플이며, 25개의 샘플이 앨리어싱된다.
본 발명의 일 실시예에서, 도 5에 도시된 바와 같이, (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉이 수행된다.
본 발명의 일 실시예에서, 제1 서브프레임 및 마지막 서브프레임에 대해 수행되는 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이는 다른 서브프레임에 사용되는 대칭 윈도 함수의 윈도 길이와 동일하다. 다른 가능한 방식에서, 비대칭 윈도 함수의 윈도 길이가 대칭 윈도 함수의 윈도 길이와 같지 않을 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 8개의 시간 엔벨로프가 얻어질 수 있다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 4개의 시간 엔벨로프가 얻어질 수 있다.
본 발명의 일 실시예에서, 사전 설정에 추가하여, 시간 엔벨로프의 수량(N)이 (N+1)번째 프레임의 다른 정보에 따라 사전 설정될 수 있다. 다음은 시간 엔벨로프의 수량(N)을 결정하는 구현 방식의 예이다:
가능한 일 구현 방식에서, (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 4가 N에 할당되거나, 또는 (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 8이 N에 할당된다. 샘플링 레이트가 12.8 kHz인 저대역 신호의 경우, 제2 임계값이 70개의 샘플일 수 있다. 전술한 값은 본 발명의 본 실시예의 이해를 돕기 위해 사용되는 단지 구체적인 예일 뿐이며, 본 발명의 본 실시예에 대한 구체적인 제한이 아니라는 것을 이해할 수 있을 것이다. 도 3에 도시된 바와 같이, (N+1)번째 프레임의 신호에 대해 신호 분리가 수행되는 경우, (N+1)번째 프레임의 저대역 신호가 획득될 수 있다. 신호 분리에 사용되는 방법 및 저대역 신호의 피치 주기를 얻는 방식은 종래 기술에서의 임의의 방식일 수 있으며, 이는 본 명세서에서 구체적으로 제한되지 않는다.
저대역 신호의 피치 주기를 사용하는 것에 추가하여, 신호 에너지와 같은 다른 파라미터가 사용될 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, 비대칭 윈도 함수가 제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 경우, 비대칭 윈도 함수가 룩어헤드 버퍼 길이에 따라 결정된다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고, 샘플링 레이트가 4 kHz이며, 8개의 시간 엔벨로프가 얻어지는 경우, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 20개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 10과 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 작은 경우, 제8 서브프레임(즉, 마지막 서브프레임)에 사용되는 윈도 함수 및 제1 서브프레임(즉, 제1 서브프레임)에 사용되는 윈도 함수의 앨리어싱된 부분은 룩어헤드 버퍼 길이와 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 크거나 같은 경우, 제8 서브프레임에 사용되는 윈도 함수의 우측의 길이와 제1 서브프레임에 사용되는 윈도 함수의 좌측의 길이가 다른 측(예컨대, 제1 서브프레임에 사용되는 윈도 함수의 우측 또는 제8 서브프레임에 사용되는 윈도 함수의 좌측)의 윈도 길이(10개의 샘플)와 같을 수 있거나, 또는 길이가 경험에 따라 설정될 수 있다(예컨대, 룩어헤드 버퍼가 10개의 샘플보다 작은 경우에 사용된 길이와 동일한 길이를 유지함).
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플인 경우, 샘플링 레이트가 4 kHz이고, 4개의 시간 엔벨로프가 얻어지며, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 40개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 20과 같다.
윈도잉 이후에, 사전 처리된 원 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 사전 처리된 원 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값; 및 예측되는 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 예측되는 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값이 계산된다. 구체적인 계산 방식에 관해서는, 종래 기술에서 제공되는 방식을 참조하라. 본 발명의 본 실시예에서 제공되는 신호를 처리하기 위한 방법의 윈도잉에 사용되는, 윈도 모양을 결정하는 방식 및 필요한 윈도 수량은 종래 기술에서의 방식 및 수량과는 다르다. 다른 계산 방식에 대해서는, 종래 기술에서 제공되는 방식을 참조하라.
본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 따르면, 시간 엔벨로프들 간의 과도하게 큰 차이로 인해 야기되는 에너지 불연속의 영향을 줄일 수 있도록, 시간 엔벨로프가 서로 다른 조건 하에서 서로 다른 윈도 길이 및/또는 윈도 모양을 이용하여 얻어짐으로써, 출력 신호의 성능을 향상시킨다.
본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 따르면, 오디오 프레임의 고대역 신호가 수신되는 오디오 프레임 신호에 따라 획득되고, 그 다음에 오디오 프레임의 고대역 신호가 사전 결정된 시간 엔벨로프 수량(M)에 따라 M개의 서브프레임으로 분할되며, 마지막으로 서브프레임 각각의 시간 엔벨로프 계산되고, 이로써 룩어헤드가 극히 짧고 극히 양호한 서브프레임 간 앨리어싱이 보장될 필요가 있는 경우에 야기되는 시간 엔벨로프가 과도하게 얻어지는 문제를 효과적으로 피하며, 일부 신호에 대한 시간 엔벨로프를 얻어서 야기되는 에너지 불연속의 문제를 추가적으로 피하며, 또한 계산 복잡도가 줄어든다.
도 6은 본 발명에 따른 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법의 실시예 2의 흐름도이다. 도 6에 도시된 바와 같이, 본 실시예의 방법은 다음의 단계를 포함할 수 있다.
S60. 처리될 신호가 수신된 후에, 제1 주파수 대역 내의 시간 영역 신호의 안정된 상태 또는 제2 주파수 대역 내의 신호의 피치 주기의 값에 따라 처리될 신호의 시간 엔벨로프 수량(M)을 결정한다. 여기서, 제1 주파수 대역은 처리될 신호의 시간 영역 신호의 주파수 대역 또는 전체 입력 신호의 주파수 대역이고, 제2 주파수 대역은 주어진 임계값 또는 전체 입력 신호의 주파수 대역보다 작은 주파수 대역이다.
처리될 신호의 시간 엔벨로프 수량(M)을 결정하는 단계는 구체적으로,
제1 주파수 대역 내의 시간 영역 신호가 안정된 상태에 있거나 또는 제2 주파수 대역 내의 신호의 피치 주기가 사전 결정된 임계값보다 큰 경우, M은 M1과 같고; 그렇지 않으면 M은 M2와 같다는 것을 포함한다. 여기서, M1은 M2보다 크고, M1 및 M2는 둘 다 양의 정수이며, 사전 결정된 임계값은 샘플링 레이트에 따라 결정된다.
안정된 상태는 일정 기간 동안 에너지의 평균값 및 시간 영역 신호의 진폭이 많이 변하지 않는다는 것, 또는 일정 기간 동안의 시간 영역 신호의 편차가 주어진 임계치보다 작다는 것을 말한다.
예를 들어, 고대역 프레임 길이가 20 ms(80개의 샘플)이고 샘플링 레이트가 4 kHz인 신호의 경우, 고대역 시간 영역 신호의 서브프레임 간 에너지의 비율이 주어진 임계값보다 작거나(0.5보다 작거나), 또는 저대역 신호의 피치 주기가 주어진 임계값보다 크면(70 샘플보다 크면, 이 경우 저대역 신호의 샘플링 레이트는 12.8 kHz임), 시간 엔벨로프가 고대역 신호에 대해 얻어지는 경우, 4개의 시간 엔벨로프가 얻어지고; 그렇지 않으면, 8개의 시간 엔벨로프가 얻어진다.
예를 들어, 프레임 길이가 20 ms(320개의 샘플)이고 샘플링 레이트가 16 kHz인 고대역 신호의 경우, 고대역 시간 영역 신호의 서브프레임 간 에너지의 비율이 주어진 임계값보다 작거나(0.5보다 작거나), 또는 저대역 신호의 피치 주기가 주어진 임계값보다 크면(70 샘플보다 크고, 이 경우 저대역 신호의 샘플링 레이트는 12.8 kHz임), 시간 엔벨로프가 고대역 신호에 대해 얻어지는 경우, 2개의 시간 엔벨로프가 얻어지고; 그렇지 않으면, 4개의 시간 엔벨로프가 얻어진다.
S61. 처리될 신호를 M개의 서브프레임으로 분할하고, 서브프레임 각각의 시간 엔벨로프를 계산한다.
본 실시예에서, 윈도잉이 서브프레임 각각에 대해 수행되는 경우, 윈도잉이 수행되는 방식은 제한되지 않는다.
본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법에 따르면, 서로 다른 수량의 시간 엔벨로프가 서로 다른 조건에 따라 얻어짐으로써, 조건 아래의 신호에 대해 과도한 시간 엔벨로프가 해결되는 경우에 초래되는 에너지 불연속을 효과적으로 피하며, 에너지 불연속에 의해 야기되는 청각의 품질 감소를 추가적으로 피하고, 또한 알고리즘의 평균 복잡도가 효과적으로 줄어든다.
본 발명의 일 실시예는 도 1 내지 도 5에 도시된 일부 방법을 실행하도록 구성될 수 있는 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치를 더 제공하고, 동일한 원리를 이용하여 시간 엔벨로프를 얻는 다른 처리 프로세스에 추가적으로 사용될 수 있다. 이하, 첨부 도면을 참조하여, 본 발명의 본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치의 구조에 대해 상세하게 설명한다.
도 7은 본 발명의 일 실시예에 따른 시간 엔벨로프를 처리하기 위한 장치의 개략적인 구조도이다. 도 7에 도시된 바와 같이, 시간 엔벨로프를 처리하기 위한 본 실시예의 장치(70)는, 수신되는 현재 프레임 신호에 따라 현재 프레임 신호의 고대역 신호를 획득하도록 구성되는 고대역 신호 획득 모듈(71); 사전 결정된 시간 엔벨로프 수량(M)에 따라 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할하도록 구성된 서브프레임 획득 모듈(72) - M은 2보다 크거나 같은 정수임 -; 및 서브프레임 각각의 시간 엔벨로프를 계산하도록 구성된 시간 엔벨로프 획득 모듈(73)을 포함한다. 여기서, 시간 엔벨로프 획득 모듈(73)는 구체적으로, M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하도록 구성된다.
본 발명의 본 실시예의 가능한 방식에서, 시간 엔벨로프 획득 모듈(73)는 추가적으로,
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 비대칭 윈도 함수를 결정하거나; 또는
현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 시간 엔벨로프 수량(M)에 따라 비대칭 윈도 함수를 결정하도록 구성된다.
본 발명의 일 실시예에서, 시간 엔벨로프 획득 모듈(73)는 구체적으로,
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하거나; 또는
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하도록 구성된다.
본 발명의 본 실시예의 가능한 구현 방식에서, 비대칭 윈도 함수의 윈도 길이가, M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 수행되는 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일하다. 본 발명의 일 실시예에서, 시간 엔벨로프 획득 모듈(73)은 추가적으로, 현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호의 피치 주기를 획득하고;
현재 프레임 신호의 타입이 현재 프레임의 이전 프레임 신호의 타입과 동일하고 현재 프레임의 저대역 신호의 피치 주기가 제3 임계값보다 큰 경우, 서브프레임 각각의 시간 엔벨로프에 대해 평활화 처리를 수행하도록 구성된다.
시간 엔벨로프에 대해 평활화 처리를 수행하는 단계는 구체적으로, 2개의 인접한 서브프레임의 시간 엔벨로프에 가중치를 주고, 가중된 시간 엔벨로프를 2개의 인접한 서브프레임의 시간 엔벨로프로서 사용하는 단계일 수 있다. 예를 들어, 디코딩 측의 2개의 연속 프레임의 신호가 유성음의 신호이거나, 또는 하나의 프레임이 유성음의 신호이고 다른 프레임이 정상적인 신호이고, 저대역 신호의 피치 주기가 주어진 임계값(70 샘플보다 크고, 이 경우 저대역 신호의 샘플링 레이트는 12.8 kHz임)보다 큰 경우, 디코딩되는 고대역 신호의 시간 엔벨로프에 대해 평활화 처리가 수행되고; 그렇지 않으면, 시간 엔벨로프가 변하지 않고 남아있다. 평활화 처리는 다음과 같을 수 있다:
env[0] = 0.5*(env[0]+env[1]);
env[1] = 0.5*(env[0]+env[1]);
...
env[N-1]=0.5*(env[N-1]+env[N]); 및
env[N] = 0.5*(env[N-1]+env[N]);
여기서, env[]는 시간 엔벨로프이다.
본 발명의 일 실시예에서, 시간 엔벨로프를 처리하기 위한 장치(70)는 결정 모듈(74)을 더 포함하고, 결정 모듈(74)은,
현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호를 획득하고, 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 M1을 M에 할당하거나; 또는
현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호를 획득하고, 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 시간 엔벨로프 수량(M)을 결정하도록 구성된다.
여기서, M1 및 M2는 둘 다 양의 정수이고, M2>M1이다.
본 발명의 본 실시예에서, 사전 결정된 시간 엔벨로프 수량(M)은 전반적인 알고리즘의 요구 및 경험적인 값에 따라 결정될 수 있다. 시간 엔벨로프 수량(M)은, 예를 들어, 인코더에 의해 전체 알고리즘 또는 경험적인 값에 따라 사전 결정되며, 결정된 후에는 변경되지 않는다. 예를 들어, 일반적으로, 20 ms의 프레임을 가진 입력 신호의 경우, 입력 신호가 비교적 안정적이면 4개의 또는 2개의 시간 엔벨로프가 얻어지지만, 일부 불안정한 신호의 경우 더 많은 시간 엔벨로프, 예를 들어 8개의 시간 엔벨로프가 얻어질 필요가 있다.
구체적으로, 먼저, 인코딩 측에서, 원 오디오 신호가 획득된 후에, 원 오디오 신호의 저대역 신호 및 고대역 신호를 획득하기 위해 원 오디오 신호에 대해 신호 분리가 먼저 수행된다. 그 후에, 저대역 스트림을 획득하기 위해, 저대역 신호가 종래의 알고리즘을 이용하여 인코딩된다. 또한, 저대역 인코딩을 수행하는 프로세스에서, 저대역 여기 신호가 획득되고, 저대역 여기 신호가 사전 처리된다. 원 오디오 신호의 고대역 신호의 경우, 사전 처리가 먼저 수행되고, 그 다음에 LP 분석이 LP 계수를 획득하기 위해 수행되며, LP 계수가 양자화된다. 그 후에, 사전 처리된 저대역 여기 신호가 예측되는 고대역 신호를 획득하기 위해 LP 합성 필터를 이용하여 처리된다(필터 계수는 양자화된 LP 계수임). 고대역 신호의 시간 엔벨로프는 사전 처리된 고대역 신호 및 예측되는 고대역 신호에 따라 계산되어 양자화되고, 마지막으로 인코딩된 스트림이 출력된다.
고대역 신호의 시간 엔벨로프를 계산하고 양자화하는 단계를 제외하고는, 오디오 신호의 다른 단계의 처리를 위해 종래 기술에 사용되는 방법을 참조하고, 본 명세서에서는 세부사항에 대해 설명하지 않는다.
본 실시예에서의 장치는 도 2 내지 도 5 방법 실시예의 과제 해결수단을 실행하도록 구성될 수 있다. 그 구현 원리는 유사하다.
특정 예에서, 인코딩 측에서, 원 오디오 신호가 획득된 후에, 원 오디오 신호의 저대역 신호 및 고대역 신호를 획득하기 위해 원 오디오 신호에 대해 신호 분리가 먼저 수행된다. 그 후에, 저대역 스트림을 획득하기 위해, 저대역 신호가 종래의 알고리즘을 이용하여 인코딩된다. 또한, 저대역 인코딩을 수행하는 프로세스에서, 저대역 여기 신호가 획득되고, 저대역 여기 신호가 사전 처리된다. 원 오디오 신호의 고대역 신호의 경우, 사전 처리가 먼저 수행되고, 그 다음에 LP 분석이 LP 계수를 획득하기 위해 수행되며, LP 계수가 양자화된다. 그 후에, 예측되는 고대역 신호를 획득하기 위해 사전 처리된 저대역 여기 신호가 LP 합성 필터를 이용하여 처리된다(필터 계수는 양자화된 LP 계수임). 고대역 신호의 시간 엔벨로프가 사전 처리된 고대역 신호 및 예측되는 고대역 신호에 따라 계산되어 양자화되며, 마지막으로 인코딩된 스트림이 출력된다.
고대역 신호의 시간 엔벨로프를 계산하고 양자화하는 단계를 제외하고는, 오디오 신호의 다른 단계의 처리를 위해 종래 기술에 사용되는 방법을 참조하고, 본 명세서에서는 세부사항에 대해 설명하지 않는다.
(N+1)번째 프레임은 계산될 필요가 있는 시간 엔벨로프의 수량에 따라 M개의 서브프레임으로 분할된다. 여기서, M은 양의 정수이다. 가능한 일 구현 방식에서, M의 값은 3, 4, 5, 또는 8 등일 수 있으며, 이는 본 명세서에서 제한되지 않는다.
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉이 수행된다. (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임은 이전 프레임(N번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이고, 마지막 서브프레임은 다음 프레임(도면에 도시되지 않는 (N+2)번째 프레임)의 신호와 중첩되는 부분을 가진 서브프레임이다. 가능한 방식에서, 제1 서브프레임은 (N+1)번째 프레임 내 가장 왼쪽의 서브프레임이고, 마지막 서브프레임은 (N+1)번째 프레임 내 가장 오른쪽 서브프레임이다. 가장 왼쪽 및 가장 오른쪽은 단지 특정 예일 뿐이고, 본 발명의 본 실시예에 대한 제한은 아니라는 것을 이해할 수 있을 것이다. 실제로, 서브프레임 분할에 있어서는 가장 왼쪽 및 가장 오른쪽과 같은 방향 제한이 없다.
제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 비대칭 윈도우는 완전히 동일할 수 있거나 또는 서로 다를 수 있으며, 이는 본 명세서에서 제한되지 않는다. 가능한 일 구현 방식에서, 제1 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이는 마지막 서브프레임에 사용되는 비대칭 윈도 함수의 윈도 길이와 동일하다.
본 발명의 일 실시예에서, (N+1)번째 프레임의 M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉이 수행된다.
본 발명의 일 실시예에서, 제1 서브프레임 및 마지막 서브프레임에 대해 수행된 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이는 다른 서브프레임에 사용되는 대칭 윈도 함수의 윈도 길이와 동일하다. 다른 가능한 방식에서, 비대칭 윈도 함수의 윈도 길이가 대칭 윈도 함수의 윈도 길이와 같지 않을 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 8개의 시간 엔벨로프가 얻어질 수 있다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고 샘플링 레이트가 4 kHz인 경우, 4개의 시간 엔벨로프가 얻어질 수 있다.
본 발명의 일 실시예에서, 사전 설정에 추가하여, 시간 엔벨로프의 수량(N)은 (N+1)번째 프레임의 다른 정보에 따라 사전 설정될 수 있다. 다음은 시간 엔벨로프의 수량(N)을 결정하는 구현 방식의 예이다:
가능한 일 구현 방식에서, (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 N=4이거나, 또는 (N+1)번째 프레임의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 N=8이다. 샘플링 레이트가 12.8 kHz인 저대역 신호의 경우, 제2 임계값이 70개의 샘플일 수 있다. 전술한 값은 본 발명의 본 실시예의 이해를 돕기 위해 사용되는 단지 구체적인 예일 뿐이고, 본 발명의 본 실시예에 대한 구체적인 제한이 아니라는 것을 이해할 수 있을 것이다. 신호 분리가 (N+1)번째 프레임의 신호에 대해 수행되는 경우, (N+1)번째 프레임의 저대역 신호가 획득될 수 있다. 신호 분리에 사용되는 방법 및 저대역 신호의 피치 주기를 얻는 방식은 종래 기술에서의 임의의 방식일 수 있으며, 이는 본 명세서에서 구체적으로 제한되지 않는다.
저대역 신호의 피치 주기를 사용하는 것에 추가하여, 신호 에너지와 같은 또 다른 파라미터가 사용될 수 있다는 것을 이해할 수 있을 것이다.
본 발명의 일 실시예에서, 비대칭 윈도 함수가 제1 서브프레임 및 마지막 서브프레임에 대해 윈도잉을 수행하기 위해 사용되는 경우, 비대칭 윈도 함수가 룩어헤드 버퍼 길이에 따라 결정된다.
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플이고, 샘플링 레이트가 4 kHz이며, 8개의 시간 엔벨로프가 얻어지는 경우, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 20개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 10과 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 작은 경우, 제8 서브프레임(즉, 마지막 서브프레임)에 사용되는 윈도 함수 및 제1 서브프레임(즉, 제1 서브프레임)에 사용되는 윈도 함수의 앨리어싱된 부분은 룩어헤드 버퍼 길이와 같다. 룩어헤드 버퍼 길이가 10개의 샘플보다 크거나 같은 경우, 제8 서브프레임에 사용되는 윈도 함수의 우측의 길이와 제1 서브프레임에 사용되는 윈도 함수의 좌측의 길이가 다른 측(예컨대, 제1 서브프레임에 사용되는 윈도 함수의 우측 또는 제8 서브프레임에 사용되는 윈도 함수의 좌측)의 윈도 길이(10개의 샘플)와 같을 수 있거나, 또는 길이가 경험에 따라 설정될 수 있다(예컨대, 룩어헤드 버퍼가 10개의 샘플보다 작은 경우에 사용된 길이와 동일한 길이를 유지함).
가능한 일 구현 방식에서, (N+1)번째 프레임의 프레임 길이가 80개의 샘플인 경우, 샘플링 레이트가 4 kHz이고, 4개의 시간 엔벨로프가 얻어지며, 윈도잉에 사용되는 비대칭 윈도 함수의 윈도 길이 및 윈도잉에 사용되는 대칭 윈도 함수의 윈도 길이는 둘 다 40개의 샘플일 수 있다. 제1 임계값은 프레임 길이를 엔벨로프의 수량으로 나누어 획득된다. 이 예에서, 제1 임계값은 20과 같다.
윈도잉 이후에, 사전 처리된 원 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 사전 처리된 원 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값; 및 예측되는 고대역 신호의 서브프레임의 시간 영역 에너지의 평균값, 또는 예측되는 고대역 신호의 서브프레임 내의 샘플 진폭의 평균값이 계산된다. 구체적인 계산 방식에 관해서는, 종래 기술에서 제공되는 방식을 참조하라. 본 발명의 본 실시예에서 제공되는 신호를 처리하기 위한 방법의 윈도잉에 사용되는, 윈도 모양을 결정하는 방식 및 필요한 윈도 수량은 종래 기술에서의 방식 및 수량과는 다르다. 다른 계산 방식에 대해서는, 종래 기술에서 제공되는 방식을 참조하라.
본 실시예에서 제공되는 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치에 따르면, 서로 다른 수량의 시간 엔벨로프가 서로 다른 조건에 따라 얻어짐으로써, 조건에 따른 신호에 대해 과도한 시간 엔벨로프가 얻어지는 경우에 초래되는 에너지 불연속을 효과적으로 피하며, 에너지 불연속에 의해 야기되는 청각의 품질 감소를 추가적으로 피하고, 또한 알고리즘의 평균 복잡도가 효과적으로 줄어든다.
이하, 도 8을 참조하여, 본 발명의 일 실시예의 인코더(80)에 대해 설명한다. 도 8은 본 발명의 일 실시예에 따른 인코더의 개략적인 구조도이다. 도 8에 도시된 바와 같이, 인코더(80)는 구체적으로,
수신되는 현재 프레임 신호에 따라 현재 프레임 신호의 저대역 신호 및 현재 프레임 신호의 고대역 신호를 획득하고;
저대역 인코딩된 여기 신호를 획득하기 위해 현재 프레임 신호의 저대역 신호를 인코딩하며;
선형 예측 계수를 획득하기 위해 현재 프레임 신호의 고대역 신호에 대해 선형 예측을 수행하고;
양자화된 선형 예측 계수를 획득하기 위해 선형 예측 계수를 양자화하며;
저대역 인코딩된 여기 신호 및 양자화된 선형 예측 계수에 따라 예측되는 고대역 신호를 획득하고;
예측되는 고대역 신호의 시간 엔벨로프를 계산하고 양자화하도록 구성된다.
여기서, 예측되는 고대역 신호의 시간 엔벨로프를 계산하는 것은,
사전 결정된 시간 엔벨로프 수량(M)에 따라 예측되는 고대역 신호를 M개의 서브프레임으로 분할하고 - 여기서, M은 2보다 크거나 같은 정수임 - ;
M개의 서브프레임 중 제1 서브프레임 및 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하며;
M개의 서브프레임 중 제1 서브프레임과 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하고;
양자화된 시간 엔벨로프를 인코딩하는 것을 포함한다.
인코더(80)는 전술한 방법 실시예 중 어느 하나를 실행하도록 구성될 수 있고, 임의의 실시예에서의 시간 엔벨로프를 처리하기 위한 장치(70)를 포함할 수 있다는 것을 이해할 수 있을 것이다. 인코더(80)에 의해 실행되는 특정 기능에 대해서는, 전술한 방법 및 장치 실시예를 참조하고, 본 명세서에서는 세부사항에 대해 설명하지 않는다.
당업자라면 방법 실시예의 단계 중 전부 또는 일부가 적절한 하드웨어에게 지시하는 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행되면, 방법 실시예의 단계가 수행된다. 전술한 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 저장 매체, 예를 들어, ROM, RAM, 마그네틱 디스크, 또는 광 디스크를 포함한다.
마지막으로, 전술한 실시예는 본 발명을 제한하려는 것이 아니라 본 발명의 과제 해결수단을 설명하기 위한 것일 뿐이라는 것을 유의해야 한다. 전술한 실시예를 참조하여 본 발명을 상세히 설명하였으나, 당업자라면 본 발명의 실시예의 과제 해결 수단의 보호 범위를 벗어나지 않고도 전술한 실시예에서 설명된 과제 해결 수단에 대해 수정하거나 또는 과제 해결 수단의 기술적 특징 중 일부나 전부에 대해 등가의 대체가 가능하다는 것을 이해할 수 있을 것이다.

Claims (15)

  1. 오디오 신호의 시간 엔벨로프(temporal envelope)를 처리하기 위한 방법으로서,
    수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 고대역 신호를 획득하는 단계;
    사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할하는 단계 - M은 2보다 큰 정수임 -; 및
    상기 서브프레임 각각의 시간 엔벨로프를 계산하는 단계
    를 포함하고,
    상기 서브프레임 각각의 시간 엔벨로프를 계산하는 단계는,
    상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉(windowing)을 수행하는 단계; 및
    상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉(windowing)을 수행하는 단계
    를 포함하고,
    상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 윈도잉을 수행하는 단계는,
    상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계
    를 포함하는, 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  2. 제1항에 있어서,
    상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하는 단계 이전에,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이(lookahead buffer length)에 따라 상기 비대칭 윈도 함수를 결정하는 단계; 또는
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 상기 시간 엔벨로프 수량(M)에 따라 상기 비대칭 윈도 함수를 결정하는 단계
    를 더 포함하는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  3. 제1항에 있어서,
    상기 비대칭 윈도 함수의 윈도 길이는, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 수행된 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일한, 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계는,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 작은 경우, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호 및 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계를 포함하고, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 상기 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분(aliased part)은 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이와 동일하고, 상기 제1 임계값은 상기 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일한, 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  5. 제2항 또는 제3항에 있어서,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계는,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이가 제1 임계값보다 큰 경우, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호 및 상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하는 단계를 포함하고, 상기 현재 프레임의 이전 프레임 신호의 고대역 신호의 마지막 서브프레임에 사용되는 비대칭 윈도 함수 및 상기 현재 프레임 신호의 고대역 신호의 제1 서브프레임에 사용되는 비대칭 윈도 함수 중 앨리어싱된 부분은 상기 제1 임계값과 동일하고, 상기 제1 임계값은 상기 현재 프레임의 고대역 신호의 프레임 길이를 M으로 나눈 값과 동일한, 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 시간 엔벨로프 수량(M)은,
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기(pitch period)가 제2 임계값보다 큰 경우 M1을 M에 할당하는 방식; 또는
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 결정되고,
    M1 및 M2는 둘 다 양의 정수이고, M2>M1인, 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호의 피치 주기를 획득하는 단계; 및
    상기 현재 프레임 신호의 타입이 상기 현재 프레임의 이전 프레임 신호의 타입과 동일하고 상기 현재 프레임의 저대역 신호의 피치 주기가 제3 임계값보다 큰 경우, 상기 서브프레임 각각의 시간 엔벨로프에 대해 평활화 처리를 수행하는 단계
    를 더 포함하는 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법.
  8. 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치로서,
    수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 고대역 신호를 획득하도록 구성된 고대역 신호 획득 모듈;
    사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 현재 프레임의 고대역 신호를 M개의 서브프레임으로 분할하도록 구성된 서브프레임 획득 모듈 - M은 2보다 큰 정수임 -; 및
    상기 서브프레임 각각의 시간 엔벨로프를 계산하도록 구성된 시간 엔벨로프 획득 모듈
    을 포함하고,
    상기 시간 엔벨로프 획득 모듈은 구체적으로,
    상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하고, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하도록 구성되는, 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치.
  9. 제8항에 있어서,
    상기 시간 엔벨로프 획득 모듈은 추가적으로,
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이에 따라 상기 비대칭 윈도 함수를 결정하거나; 또는
    상기 현재 프레임 신호의 고대역 신호의 룩어헤드 버퍼 길이 및 상기 시간 엔벨로프 수량(M)에 따라 상기 비대칭 윈도 함수를 결정하도록 구성되는, 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치.
  10. 제8항에 있어서,
    상기 비대칭 윈도 함수의 윈도 길이는, 상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 상기 서브프레임에 대해 수행된 윈도잉에 사용되는 윈도 함수의 윈도 길이와 동일한, 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 큰 경우 M1을 M에 할당하는 방식; 또는
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호를 획득하고, 상기 현재 프레임 신호의 저대역 신호의 피치 주기가 제2 임계값보다 크지 않은 경우 M2를 M에 할당하는 방식 중 하나의 방식으로 상기 시간 엔벨로프 수량을 결정하도록 구성되는 결정 모듈을 더 포함하고,
    M1 및 M2는 둘 다 양의 정수이고, M2>M1인, 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 시간 엔벨로프 획득 모듈은 추가적으로,
    상기 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호의 피치 주기를 획득하고;
    상기 현재 프레임 신호의 타입이 상기 현재 프레임의 이전 프레임 신호의 타입과 동일하고 상기 현재 프레임의 저대역 신호의 피치 주기가 제3 임계값보다 큰 경우, 상기 서브프레임 각각의 시간 엔벨로프에 대해 평활화 처리를 수행하도록 구성되는, 오디오 신호의 시간 엔벨로프를 처리하기 위한 장치.
  13. 인코더로서,
    인코더는 구체적으로,
    수신되는 현재 프레임 신호에 따라 상기 현재 프레임 신호의 저대역 신호 및 상기 현재 프레임 신호의 고대역 신호를 획득하고;
    저대역 인코딩된 여기 신호를 획득하기 위해 상기 현재 프레임 신호의 저대역 신호를 인코딩하며;
    선형 예측 계수를 획득하기 위해 상기 현재 프레임 신호의 고대역 신호에 대해 선형 예측을 수행하고;
    양자화된 선형 예측 계수를 획득하기 위해 상기 선형 예측 계수를 양자화하며;
    상기 저대역 인코딩된 여기 신호 및 상기 양자화된 선형 예측 계수에 따라 예측되는 고대역 신호를 획득하고;
    상기 예측되는 고대역 신호의 시간 엔벨로프를 계산하고 양자화하도록 구성되며,
    상기 예측되는 고대역 신호의 시간 엔벨로프를 계산하는 것은,
    사전 결정된 시간 엔벨로프 수량(M)에 따라 상기 예측되는 고대역 신호를 M개의 서브프레임으로 분할하고 - 여기서, M은 2보다 큰 정수임 -;
    상기 M개의 서브프레임 중 제1 서브프레임 및 상기 M개의 서브프레임 중 마지막 서브프레임에 대해 비대칭 윈도 함수를 이용하여 윈도잉을 수행하며;
    상기 M개의 서브프레임 중 상기 제1 서브프레임과 상기 마지막 서브프레임을 제외한 서브프레임에 대해 대칭 윈도 함수를 이용하여 윈도잉을 수행하고;
    상기 양자화된 시간 엔벨로프를 인코딩하는 것을 포함하는, 인코더.
  14. 삭제
  15. 삭제
KR1020167033851A 2014-06-12 2015-01-28 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더 KR101896486B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410260730.5 2014-06-12
CN201410260730.5A CN105336336B (zh) 2014-06-12 2014-06-12 一种音频信号的时域包络处理方法及装置、编码器
PCT/CN2015/071727 WO2015188627A1 (zh) 2014-06-12 2015-01-28 一种音频信号的时域包络处理方法及装置、编码器

Publications (2)

Publication Number Publication Date
KR20160147048A KR20160147048A (ko) 2016-12-21
KR101896486B1 true KR101896486B1 (ko) 2018-09-07

Family

ID=54832857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033851A KR101896486B1 (ko) 2014-06-12 2015-01-28 오디오 신호의 시간 엔벨로프를 처리하기 위한 방법과 장치, 및 인코더

Country Status (8)

Country Link
US (3) US9799343B2 (ko)
EP (2) EP3579229B1 (ko)
JP (2) JP6510566B2 (ko)
KR (1) KR101896486B1 (ko)
CN (2) CN105336336B (ko)
ES (1) ES2895495T3 (ko)
PT (1) PT3579229T (ko)
WO (1) WO2015188627A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105336336B (zh) * 2014-06-12 2016-12-28 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器
JP6501259B2 (ja) * 2015-08-04 2019-04-17 本田技研工業株式会社 音声処理装置及び音声処理方法
WO2017125840A1 (en) * 2016-01-19 2017-07-27 Hua Kanru Method for analysis and synthesis of aperiodic signals
CN108109629A (zh) * 2016-11-18 2018-06-01 南京大学 一种基于线性预测残差分类量化的多描述语音编解码方法和系统
CN111402917B (zh) * 2020-03-13 2023-08-04 北京小米松果电子有限公司 音频信号处理方法及装置、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100217607A1 (en) 2009-01-28 2010-08-26 Max Neuendorf Audio Decoder, Audio Encoder, Methods for Decoding and Encoding an Audio Signal and Computer Program
US20120245947A1 (en) 2009-10-08 2012-09-27 Max Neuendorf Multi-mode audio signal decoder, multi-mode audio signal encoder, methods and computer program using a linear-prediction-coding based noise shaping
US20130246074A1 (en) 2007-08-27 2013-09-19 Telefonaktiebolaget L M Ericsson (Publ) Low-Complexity Spectral Analysis/Synthesis Using Selectable Time Resolution

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1062963C (zh) * 1990-04-12 2001-03-07 多尔拜实验特许公司 用于产生高质量声音信号的解码器和编码器
US5754534A (en) * 1996-05-06 1998-05-19 Nahumi; Dror Delay synchronization in compressed audio systems
JPH10222194A (ja) * 1997-02-03 1998-08-21 Gotai Handotai Kofun Yugenkoshi 音声符号化における有声音と無声音の識別方法
JP3518737B2 (ja) * 1999-10-25 2004-04-12 日本ビクター株式会社 オーディオ符号化装置、オーディオ符号化方法、及びオーディオ符号化信号記録媒体
JP3510168B2 (ja) * 1999-12-09 2004-03-22 日本電信電話株式会社 音声符号化方法及び音声復号化方法
EP1199711A1 (en) * 2000-10-20 2002-04-24 Telefonaktiebolaget Lm Ericsson Encoding of audio signal using bandwidth expansion
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
CN1186765C (zh) * 2002-12-19 2005-01-26 北京工业大学 2.3kb/s谐波激励线性预测语音编码方法
US7630902B2 (en) * 2004-09-17 2009-12-08 Digital Rise Technology Co., Ltd. Apparatus and methods for digital audio coding using codebook application ranges
SG161223A1 (en) * 2005-04-01 2010-05-27 Qualcomm Inc Method and apparatus for vector quantizing of a spectral envelope representation
ES2705589T3 (es) 2005-04-22 2019-03-26 Qualcomm Inc Sistemas, procedimientos y aparatos para el suavizado del factor de ganancia
KR101390188B1 (ko) * 2006-06-21 2014-04-30 삼성전자주식회사 적응적 고주파수영역 부호화 및 복호화 방법 및 장치
US9159333B2 (en) 2006-06-21 2015-10-13 Samsung Electronics Co., Ltd. Method and apparatus for adaptively encoding and decoding high frequency band
US8532984B2 (en) 2006-07-31 2013-09-10 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of active frames
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
US8260609B2 (en) * 2006-07-31 2012-09-04 Qualcomm Incorporated Systems, methods, and apparatus for wideband encoding and decoding of inactive frames
CN101615394B (zh) * 2008-12-31 2011-02-16 华为技术有限公司 分配子帧的方法和装置
EP2381439B1 (en) * 2009-01-22 2017-11-08 III Holdings 12, LLC Stereo acoustic signal encoding apparatus, stereo acoustic signal decoding apparatus, and methods for the same
US8718804B2 (en) * 2009-05-05 2014-05-06 Huawei Technologies Co., Ltd. System and method for correcting for lost data in a digital audio signal
BR122020024236B1 (pt) 2009-10-20 2021-09-14 Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E. V. Codificador de sinal de áudio, decodificador de sinal de áudio, método para prover uma representação codificada de um conteúdo de áudio, método para prover uma representação decodificada de um conteúdo de áudio e programa de computador para uso em aplicações de baixo retardamento
US9047875B2 (en) * 2010-07-19 2015-06-02 Futurewei Technologies, Inc. Spectrum flatness control for bandwidth extension
US8560330B2 (en) * 2010-07-19 2013-10-15 Futurewei Technologies, Inc. Energy envelope perceptual correction for high band coding
CN102436820B (zh) * 2010-09-29 2013-08-28 华为技术有限公司 高频带信号编码方法及装置、高频带信号解码方法及装置
SG192745A1 (en) * 2011-02-14 2013-09-30 Fraunhofer Ges Forschung Noise generation in audio codecs
MX370012B (es) * 2011-06-30 2019-11-28 Samsung Electronics Co Ltd Aparato y método para generar señal extendida de ancho de banda.
WO2013066238A2 (en) * 2011-11-02 2013-05-10 Telefonaktiebolaget L M Ericsson (Publ) Generation of a high band extension of a bandwidth extended audio signal
US9275644B2 (en) * 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding
US9384746B2 (en) * 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
CN105336336B (zh) * 2014-06-12 2016-12-28 华为技术有限公司 一种音频信号的时域包络处理方法及装置、编码器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246074A1 (en) 2007-08-27 2013-09-19 Telefonaktiebolaget L M Ericsson (Publ) Low-Complexity Spectral Analysis/Synthesis Using Selectable Time Resolution
US20100217607A1 (en) 2009-01-28 2010-08-26 Max Neuendorf Audio Decoder, Audio Encoder, Methods for Decoding and Encoding an Audio Signal and Computer Program
US20120245947A1 (en) 2009-10-08 2012-09-27 Max Neuendorf Multi-mode audio signal decoder, multi-mode audio signal encoder, methods and computer program using a linear-prediction-coding based noise shaping

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Markus Vaalgamaa, et al, Audio Coding with Auditory Time-Frequency Noise Shaping and Irrelevancy Reducing Vector Quantization. AES 17th international conference. 1999.09.01.*

Also Published As

Publication number Publication date
CN105336336B (zh) 2016-12-28
EP3579229B1 (en) 2021-07-28
JP2017523448A (ja) 2017-08-17
EP3133599A4 (en) 2017-07-12
US9799343B2 (en) 2017-10-24
CN106409304B (zh) 2020-08-25
ES2895495T3 (es) 2022-02-21
US10170128B2 (en) 2019-01-01
JP6765471B2 (ja) 2020-10-07
US10580423B2 (en) 2020-03-03
JP6510566B2 (ja) 2019-05-08
US20170098451A1 (en) 2017-04-06
US20180005638A1 (en) 2018-01-04
CN106409304A (zh) 2017-02-15
PT3579229T (pt) 2021-08-20
EP3579229A1 (en) 2019-12-11
WO2015188627A1 (zh) 2015-12-17
EP3133599B1 (en) 2019-07-10
JP2019135551A (ja) 2019-08-15
US20190096415A1 (en) 2019-03-28
CN105336336A (zh) 2016-02-17
EP3133599A1 (en) 2017-02-22
KR20160147048A (ko) 2016-12-21

Similar Documents

Publication Publication Date Title
KR100647336B1 (ko) 적응적 시간/주파수 기반 오디오 부호화/복호화 장치 및방법
JP6765471B2 (ja) オーディオ信号の時間包絡線を処理するための方法および装置、ならびにエンコーダ
US10706865B2 (en) Apparatus and method for selecting one of a first encoding algorithm and a second encoding algorithm using harmonics reduction
AU2017206243B2 (en) Method and apparatus for determining encoding mode, method and apparatus for encoding audio signals, and method and apparatus for decoding audio signals
US8744841B2 (en) Adaptive time and/or frequency-based encoding mode determination apparatus and method of determining encoding mode of the apparatus
KR101562281B1 (ko) 트랜지언트 검출 및 품질 결과를 사용하여 일부분의 오디오 신호를 코딩하기 위한 장치 및 방법
KR101966782B1 (ko) 가중 윈도우들을 코딩/디코딩하는 지연최적화 오버랩 변환
KR20150108848A (ko) 제 1 오디오 인코딩 알고리즘 및 제 2 오디오 인코딩 알고리즘 중 하나를 선택하기 위한 장치 및 방법
KR102486258B1 (ko) 스테레오 신호 인코딩 방법 및 인코딩 장치
KR20170003596A (ko) 음성 정보를 갖는 개선된 프레임 손실 보정
US20130096913A1 (en) Method and apparatus for adaptive multi rate codec
RU2660633C2 (ru) Устройство и способ для кодирования, обработки и декодирования огибающей аудиосигнала путем разделения огибающей аудиосигнала с использованием квантования и кодирования распределения
Li et al. A 1.8 kbps vocoder based on Mixed Excitation Linear Prediction

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