KR20240042449A - 오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩 - Google Patents

오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩 Download PDF

Info

Publication number
KR20240042449A
KR20240042449A KR1020247004977A KR20247004977A KR20240042449A KR 20240042449 A KR20240042449 A KR 20240042449A KR 1020247004977 A KR1020247004977 A KR 1020247004977A KR 20247004977 A KR20247004977 A KR 20247004977A KR 20240042449 A KR20240042449 A KR 20240042449A
Authority
KR
South Korea
Prior art keywords
pulse
signal
encoded
spectrogram
audio signal
Prior art date
Application number
KR1020247004977A
Other languages
English (en)
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 KR20240042449A publication Critical patent/KR20240042449A/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/083Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being an excitation gain
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • G10L19/025Detection of transients or attacks for time/frequency resolution switching
    • 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/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
    • 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/22Mode decision, i.e. based on audio signal content versus external parameters
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/26Pre-filtering or post-filtering
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • 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/06Transformation of speech into a non-audible representation, e.g. speech visualisation or speech processing for tactile aids
    • G10L21/10Transforming into visible information
    • 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/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/18Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being spectral information of each sub-band

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 펄스 부분(P) 및 고정 부분을 포함하는 오디오 신호(PCMi)를 인코딩하기 위한 오디오 인코더(100, 101)에 관한 것으로: 오디오 신호(PCMi)로부터 펄스 부분(P)을 추출하도록 구성된 펄스 추출기(11,110)를 포함하며, 추출된 펄스 부분(P)을 인코딩하여 인코딩된 펄스 부분(CP)을 획득하는 펄스 코더(13,132); 여기서 펄스 추출기(110)는 펄스 부분(P)을 추출하기 위하여 오디오 신호(PCMi)의 스펙트로그램을 결정하도록 구성되고, 여기서 스펙트로그램은 신호 인코더(150)보다 더 높은 시간 분해능을 가짐; 인코딩된 잔차(CR) 신호를 획득하기 위하여 오디오 신호(PCMi)로부터 파생된 잔차(R) 신호를 인코딩하도록 구성된 신호 인코더(152, 156'), 잔차(R) 신호는 오디오 신호(PCMi)로부터 펄스 부분(P)을 감소 또는 제거하도록 오디오 신호(PCMi)로부터 파생되고; 및 인코딩된 신호를 제공하기 위하여 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR) 신호를 출력하도록 구성된 출력 인터페이스(170)를 더 포함한다.

Description

오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩
본 발명의 실시예는 오디오 신호를 인코딩하기 위한 인코더 및 대응하는 방법을 참조한다. 추가 실시예는 디코더 및 대응하는 디코딩 방법을 참조한다. 바람직한 실시예는 예를 들어 MDCT 코덱과 결합하여 펄스 추출 및 코딩을 위한 개선된 접근 방식을 참조한다.
MDCT 도메인 코덱은 MDCT가 악기와 노래하는 목소리에서 일반적으로 생성되는 고조파 구성 요소의 역상관 및 압축을 제공하므로 음악 신호 코딩에 매우 적합하다. 이 MDCT 특성은 신호에 과도 현상(짧은 에너지 버스트)이 있는 경우 악화된다. 신호가 필터링된 성문 펄스열(filtered train of glottal pulses)로 간주될 수 있는 낮은 음조의 말이나 노래의 경우에도 마찬가지이다.
기존 MDCT 코덱(예: MP3, AAC)은 일시적인 신호를 처리하기 위해 짧은 블록으로의 전환과 TNS(Temporal Noise Shaping)를 사용한다. 그러나 이러한 기술에는 문제가 있다. MDCT의 TDA(Time Domain Aliasing)는 TNS를 크게 제한한다. 짧은 블록은 고조파 및 과도 신호를 악화시킨다. 두 가지 방법 모두 저음 음성에서 성문 펄스열을 모델링하는 데 매우 제한적이다.
선행 기술 내에서 특히 MDCT 코덱에 대한 일부 코딩 원리가 알려져 있다.
[1]에서는 과도 신호 성분을 검출하고 추출하기 위한 알고리즘이 제시된다. 복합 스펙트럼(MDCT+MDST)의 각 대역에 대해 시간 엔벨로프가 생성된다. 시간 엔벨로프를 사용하여, 각 대역에서 시작(onset) 기간과 가중 지수가 계산된다. 급격한 시작의 시간 주파수 도메인에서의 타일의 위치는 시작 기간과 가중 지수를 사용하여 또한 이웃 대역도 고려하여 찾아진다. 가파른 시작의 타일은 특정 임계값 기준을 충족하는 경우 과도로 표시된다. 과도로 표시된 시간 주파수 도메인의 타일은 별도의 신호로 결합된다. 과도 현상의 추출은 MDCT 계수에 크로스 페이드 인자(cross fade factors)를 곱하여 달성된다. 과도 현상의 코딩은 MDCT 도메인에서 수행된다. 이렇게 하면 과도 시간 신호를 계산하기 위한 추가 역 MDCT가 절약된다. 인코딩된 과도 신호가 디코딩되고 결과 시간 도메인 신호가 오리지널 신호에서 감산된다. 잔차물은 변환 기반 오디오 코더를 사용하여 코딩할 수도 있다.
[2]에서 오디오 인코더는 오디오 신호에서 임펄스형 부분을 추출하기 위한 임펄스 추출기를 포함한다. 잔차 오디오 신호에서 임펄스형 부분이 감소되거나 제거되도록 잔차 신호가 오리지널 오디오 신호에서 파생된다. 임펄스형 부분과 잔차 신호는 별도로 인코딩되고 둘 다 디코더로 전송되어 별도로 디코딩되고 결합된다. 임펄스형 부분은 이상적인 임펄스형 신호의 LPC 합성에 의해 얻어지며, 여기서 이상적인 임펄스형 신호는 LPC 분석의 예측 오류 신호로부터 순수 피크 선택(pure peak picking) 및 임펄스 특성 향상(impulse characteristic enhancement)을 통해 얻어진다. 순수 피크 선택이란 피크 왼쪽의 일부 샘플에서 시작하여 피크 오른쪽의 일부 샘플에서 끝나는 임펄스가 신호에서 선택되고 피크 사이의 신호 샘플이 완전히 폐기됨을 의미한다. 임펄스 특성 향상은 각각의 피크가 동일한 높이와 모양을 갖도록 피크를 처리한다.
[3]에서는 고주파수에 대한 신호를 일시적으로 평탄화하는 전처리기 역할을 하는 HREP(고해상도 엔벨로프 처리)가 제안되었다. 디코더 측에서는 부가 정보를 사용하여 고주파수에 대한 신호를 일시적으로 형성하는 후처리기 역할을 한다.
[4]에서는 오리지널 신호와 코딩된 신호가 의미 구성 요소(즉, 뚜렷한 일시적 박수 이벤트 및 잡음과 유사한 배경)로 분해되고 해당 에너지가 코딩 전후의 여러 주파수 대역에서 측정된다. 에너지 차이에서 파생된 보정 이득은 대역 통과 영역에 대해 분리된 일시적 박수 이벤트 및 잡음과 유사한 배경 신호의 스케일링을 통한 후처리에 의해 오리지널 신호의 에너지 관계를 복원하는 데 사용된다. 사전 결정된 복원 프로파일이 후처리에 사용된다.
[5]에서는 로그 스펙트로그램의 구조 텐서(tensor)를 사용한 조화-충격-잔차 분리가 제시된다. 그러나 이 논문에서는 오디오/음성 코딩을 고려하지 않는다.
유럽 모출원 19166643.7은 추가적인 선행 기술을 구성한다. 이 출원은 소스 오디오 신호에서 주파수 강화 오디오 신호를 생성하는 개념을 나타낸다.
아래에서는 선행 기술의 분석이 제공될 것이며, 여기서 선행 기술의 분석 및 그 단점은 실시예의 일부인데, 이는 실시예의 맥락에서 설명된 솔루션이 이 분석에 기초하기 때문이다.
[3]과 [4]의 방법은 과도 이벤트를 별도로 코딩하는 것을 고려하지 않으므로 과도 현상에 대한 특수 코덱과 잔차/정상 신호에 대한 특수 코덱이 가질 수 있는 이점을 사용하지 않는다.
[2]에서는 임펄스 특성 향상을 수행함으로써 발생하는 모든 오류가 잔차 코더에서 설명된다. 임펄스 특성 향상은 각 피크가 동일한 높이와 모양을 갖도록 피크를 처리하므로, 임펄스 간의 차이를 포함하는 오류가 발생하며 이러한 차이는 과도 특성을 갖는다. 과도 특성을 갖는 이러한 오류는 정지 신호를 기대하는 잔차 코더에는 적합하지 않다. 이제 강한 정지 신호와 작은 과도 신호의 중첩으로 구성된 신호를 고려해 보겠다. 피크 위치의 모든 샘플이 유지되고 피크 사이의 모든 샘플이 제거되므로, 이는 임펄스에는 강한 정지 신호의 작은 과도 및 시간 제한 부분이 포함되고 잔차는 과도 위치에서 불연속성을 갖는 것을 의미한다. 이러한 신호의 경우 "임펄스형" 신호는 펄스 코더에 적합하지 않으며 "정지 잔차"도 잔차 코더에 적합하지 않다. [2]에서의 방법의 또 다른 단점은 단일 과도 상태가 아닌 임펄스의 열에만 적합하다는 것이다.
[1]에서는 시작만 고려되므로 성문 펄스와 같은 과도 이벤트는 고려되지 않거나 비효율적으로 코딩된다. 선형 크기 스펙트럼을 사용하고 각 대역에 대해 별도의 엔벨로프를 사용하면, 배경 잡음/신호가 있는 경우 광대역 과도 현상이 누락될 수 있다. 따라서 개선된 접근 방식이 필요하다.
펄스 코딩에 대해 더 나은 코딩 성능을 갖는 오디오 코딩에 대한 개념을 제공하는 것이 본 발명의 목적이다.
본 발명의 실시예는 펄스 부분과 고정 부분을 포함하는 오디오 신호를 인코딩하기 위한 오디오 인코더를 제공한다. 오디오 인코더는 펄스 추출기, 신호 인코더 및 출력 인터페이스로 구성된다. 펄스 추출기는 오디오 신호로부터 펄스 부분을 추출하도록 구성되고, 인코딩된 펄스 부분을 획득하기 위해 펄스 부분을 인코딩하는 펄스 코더를 더 포함한다. 펄스 추출기는 오디오 신호의 스펙트로그램, 예를 들어 크기 스펙트로그램, 위상 스펙트로그램을 결정하여 펄스 부분을 추출하도록 구성된다. 예를 들어 스펙트로그램은 신호 인코더보다 더 높은 시간 분해능을 가질 수 있다. 신호 인코더는 인코딩된 잔차 신호를 획득하기 위해 (펄스 부분을 추출한 후) 오디오 신호로부터 파생된 잔차 신호를 인코딩하도록 구성된다. 잔차 신호는 오디오 신호에서 파생되어 펄스 부분이 오디오 신호에서 감소되거나 제거된다. 인터페이스는 인코딩된 신호를 제공하기 위해 인코딩된 펄스 신호(코딩된 펄스 파형을 설명하는 신호(예: 파라미터를 사용하여)) 및 인코딩된 잔차 신호를 출력하도록 구성된다. 참고 - 실시예에 따르면 - 잔차 신호는 잔차 신호 내의 펄스 부분이 감소되거나 제거되도록 오디오 신호로부터 펄스 부분을 추출(함에 의해/한 이후)하는 경우에 획득된 신호이다.
실시예에 따르면, 펄스 코더는 펄스 추출기가 오디오 신호에서 펄스 부분을 찾을 수 없을 때 인코딩된 펄스 부분이 존재하지 않는다는 정보(예를 들어, 프레임 N PC의 펄스 수가 0으로 설정되는 방식으로)를 제공하도록 구성된다. 실시예에 따르면, 스펙트로그램은 신호 인코더보다 더 높은 시간 분해능을 갖는다.
본 발명의 실시예는 펄스 부분이 별도로 인코딩될 때 인코딩 성능, 특히 인코딩된 신호의 품질이 상당히 증가한다는 발견에 기초한다. 예를 들어, 정지 부분은 MDCT 도메인 코덱을 사용하여 펄스 부분을 추출한 후 인코딩될 수 있다. 추출된 펄스 부분은 다른 코더를 사용하여, 예를 들어 시간 도메인을 사용하여 코딩된다. 펄스 부분(펄스열 또는 과도 현상)은 오디오 신호의 스펙트로그램을 사용하여 결정되며, 여기서 스펙트로그램은 신호 인코더보다 더 높은 시간 분해능을 갖는다. 예를 들어, 비선형(로그) 크기 스펙트로그램 및/또는 위상 스펙트로그램이 사용될 수 있다. 비선형 크기 스펙트럼을 사용하면 배경 잡음/신호가 있는 경우에도 광대역 과도 현상을 정확하게 결정할 수 있다.
예를 들어, 펄스 부분은 스펙트로그램으로부터 얻은 시간 엔벨로프의 피크 에/근처에 위치하는 고역 통과 특성을 갖는 펄스 파형으로 구성될 수 있다. 추가 실시예에 따르면, 오디오 인코더가 제공되며, 여기서 펄스 추출기는 오디오 신호의 스펙트로그램으로부터 획득된 시간 엔벨로프의 피크에 위치한 고역 통과 특성을 갖는 파형 또는 펄스 파형으로 구성된 펄스 부분을 획득하도록 구성된다. 실시예에 따르면, 펄스 추출기는 펄스 부분을 추출하기 위해 크기 스펙트로그램 또는 비선형 크기 스펙트로그램 및/또는 위상 스펙트로그램 또는 이들의 조합을 결정하도록 구성된다. 실시예에 따르면, 펄스 추출기는 하나의 시간 인스턴스의 크기 스펙트로그램의 값들을 합산하여 시간 엔벨로프를 획득하도록 구성되며; 추가적으로 또는 대안적으로, 시간 엔벨로프는 하나의 시간 인스턴스의 비선형 크기 스펙트로그램의 값을 합산함으로써 얻어질 수 있다. 다른 실시예에 따르면, 펄스 추출기는 오디오 신호의 모든 시간 인스턴스에서 오디오 신호의 정지 부분을 제거함으로써 오디오 신호의 크기 스펙트로그램 및/또는 위상 스펙트로그램으로부터 펄스 부분(펄스 파형으로 구성됨)을 얻도록 구성된다.
실시예에 따르면, 인코더는 펄스 부분의 각각의 펄스 파형이 고역 통과 특성 및/또는 시작 주파수 이상에서 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함하도록 펄스 부분을 처리하도록 구성된 필터를 더 포함한다. 대안적으로 또는 추가적으로, 필터는 펄스 부분의 각 펄스 파형이 고역 통과 특성 및/또는 시작 주파수 이상으로 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함하도록 펄스 부분을 처리하도록 구성되며, 여기서 시작 주파수는 인근 펄스 파형 사이의 평균 거리의 역에 비례한다. 펄스 부분이 추출되는 방식에 관계없이 정지 부분에도 고역 통과 특성이 있을 수 있다. 그러나 펄스 부분이 발견되어 오디오 신호에서 제거되거나 감소되면 잔차 신호의 고역 통과 특성은 오디오 신호에 비해 제거되거나 감소된다.
실시예에 따르면, 인코더는 각 펄스 파형이 시간 중심에서 멀리 있는 것보다 시간 중심 근처에서 더 많은 에너지의 특성을 갖도록 또는 펄스 또는 펄스 파형이 오디오 신호의 스펙트로그램에서 얻은 시간 엔벨로프의 피크 또는 그 근처에 위치하도록 펄스 부분을 처리하기 위한 수단(예를 들어, 펄스 추출기, 배경 제거기, 펄스 위치 탐지기 또는 이들의 조합)을 더 포함한다.
실시예에 따르면, 펄스 추출기는 적어도 하나의 시간 인스턴스에서 크기 스펙트로그램의 값을 합산하고/하거나 적어도 하나의 시간 인스턴스에서 비선형 크기 스펙트로그램의 값을 합산함으로써 적어도 하나의 시간 인스턴스에서 시간 엔벨로프 또는 시간 엔벨로프의 적어도 하나의 샘플을 얻도록 구성된다.
추가 실시예에 따르면, 펄스 파형은 시간 중심으로부터 멀리 있는 것과 비교할 때 시간 중심 근처에서 더 많은 에너지를 갖는 특정 특성을 갖는다. 따라서, 펄스 추출부는 이러한 특성을 기초로 펄스 부분을 결정하도록 구성될 수 있다. 펄스 부분은 잠재적으로 여러 펄스 파형으로 구성될 수 있다. 펄스 파형이 시간 중심 근처에 더 많은 에너지를 갖는다는 것은 파형들을 찾고 추출하는 방법의 결과이다.
추가 실시예에 따르면, 각각의 펄스 파형은 고역 통과 특성 및/또는 시작 주파수 이상으로 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함한다. 시작 주파수는 인근 펄스 파형들 사이의 평균 거리의 역에 비례할 수 있다.
추가 실시예에 따르면, 펄스 추출기는 다음 중 하나에 따라 펄스 부분에 속하는 펄스 파형을 결정하도록 구성된다.
펄스 파형들 사이의 상관관계, 및/또는
펄스 파형들 사이의 거리, 및/또는
펄스 파형의 에너지와 오디오 또는 잔차 신호 간의 관계.
추가 실시예에 따르면, 펄스 추출기는 서로 가까운 펄스 파형에 공통된 스펙트럼 엔벨로프에 의해 그리고 스펙트럼적으로 평탄화된 펄스 파형을 제시하기 위한 파라미터에 의해 추출된 펄스 부분을 코딩하도록 구성된 추가 인코더를 포함한다. 추가 실시예에 따르면, 인코더는 (완전한) 예측 잔차에 대한 이득을 코딩 또는 코딩하고 양자화하도록 구성된 코딩 개체를 더 포함한다. 여기서, (완전한) 예측 잔차에 대한 이득을 계산하거나 및/또는 보정 인자를 적용하도록 구성되는 선택적인 보정 개체가 사용될 수 있다.
이러한 인코딩 접근법은 펄스 부분과 고정 부분을 포함하는 오디오 신호를 인코딩하는 방법에 의해 구현될 수 있다. 이 방법은 다음과 같은 네 가지 기본 단계로 구성된다.
오디오 신호의 스펙트로그램을 결정함으로써 오디오 신호로부터 펄스 부분을 추출하는 단계 - 스펙트로그램은 신호 인코더보다 더 높은 시간 분해능을 가짐 -
추출된 펄스 부분을 인코딩하여 인코딩된 펄스 부분을 획득하는 단계;
오디오 신호로부터 파생된 잔차 신호를 인코딩하여 인코딩된 잔차 신호를 획득하는 단계 - 잔차 신호는 오디오 신호로부터 펄스 부분이 감소되거나 제거되도록 오디오 신호로부터 파생됨 -; 그리고
인코딩된 신호를 제공하기 위해 인코딩된 펄스 부분 및 인코딩된 잔차 신호를 출력하는 단계.
또 다른 실시예는 인코딩된 펄스 부분 및 인코딩된 잔차 신호를 포함하는, 인코딩된 오디오 신호를 디코딩하기 위한 디코더를 제공한다. 디코더는 임펄스 디코더, 신호 디코더 및 신호 결합기로 구성된다. 펄스 디코더는 디코딩 알고리즘을 사용하도록 구성되며, 예를 들어 디코딩된 펄스 부분을 획득하기 위해 인코딩된 펄스 부분을 생성하는 데 사용되는 코딩 알고리즘에 적응된다. 신호 디코더는 디코딩된 잔차 신호를 획득하기 위해 인코딩된 잔차 신호를 생성하는데 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하도록 구성된다. 결합기는 디코딩된 펄스 부분과 디코딩된 잔차 신호를 결합하여 디코딩된 출력 신호를 제공하도록 구성된다.
위에서 논의한 바와 같이, 디코딩된 펄스 부분은 지정된 시간 위치에 위치한 펄스 파형으로 구성될 수 있다. 대안적으로, 인코딩된 펄스 부분은 스펙트럼적으로 평탄화된 펄스 파형을 나타내기 위한 파라미터를 포함하며, 각각의 펄스 파형은 시간 중심에서 멀리 있는 것보다 시간 중심 근처에서 더 많은 에너지의 특성을 갖는다.
실시예에 따르면, 신호 디코더 및 임펄스 디코더는 디코딩된 신호의 동일한 시간 인스턴스에 관련된 출력 값을 제공하도록 동작한다.
실시예에 따르면, 펄스 코더는, 예를 들어 펄스 파형 또는 펄스 STFT와 연관된 스펙트럼의 스펙트럼의 평탄화된 크기를 갖는, 스펙트럼적으로 평탄화된 펄스 파형을 획득하도록 구성된다. 디코더 측에서는 이전 펄스 파형 또는 이전 평탄화된 펄스 파형의 예측을 사용하여 스펙트럼적으로 평탄화된 펄스 파형을 얻을 수 있다. 추가 실시예에 따르면, 임펄스 디코더는 서로 가까운 펄스 파형에 공통된 스펙트럼 엔벨로프를 사용하여 스펙트럼적으로 평탄화된 펄스 파형을 스펙트럼적으로 형성함으로써 펄스 파형을 획득하도록 구성된다.
실시예에 따르면, 디코더는 고조파 후처리 필터링을 더 포함한다. 예를 들어, [9]에 개시된 바와 같이 고조파 후처리 필터링이 구현될 수 있다. 대안적으로, HPF는 복수의 중첩하는 하위 간격(sub-intervals)을 필터링하도록 구성될 수 있으며, 여기서 고조파 후처리 필터는 분자와 분모를 포함하는 전달 함수에 기초하고, 분자는 고조파성(harmonicity) 값을 포함하고, 분모는 피치 래그 값, 고조파성 값 및/또는 이득 값을 포함한다.
실시예에 따르면, 펄스 디코더는 현재 프레임 이전의 하나 이상의 프레임의 펄스 부분 또는 펄스 부분들을 고려하여 현재 프레임의 펄스 부분을 디코딩하도록 구성된다.
실시예에 따르면, 펄스 디코더는 예측 이득()을 고려하여 펄스 부분을 디코딩하도록 구성되며; 여기서 예측 이득()은 인코딩된 오디오 신호로부터 직접 추출될 수 있다.
추가 실시예에 따르면, 디코딩은 인코딩된 펄스 부분 및 인코딩된 잔차 신호를 포함하는 인코딩된 오디오 신호를 디코딩하는 방법에 의해 수행될 수 있다. 이 방법은 아래의 3 단계를 포함한다:
디코딩된 펄스 부분을 획득하기 위해 인코딩된 펄스 부분을 생성하는데 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하는 단계;
디코딩된 잔차 신호를 획득하기 위해 인코딩된 잔차 신호를 생성하는데 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하는 단계; 및
디코딩된 펄스 부분과 디코딩된 잔차 신호를 결합하여 디코딩된 출력 신호를 제공하는 단계.
위의 실시예는 컴퓨터로 구현될 수도 있다. 따라서, 다른 실시예는 컴퓨터에서 실행될 때 디코딩 및/또는 인코딩 방법을 수행하는 방법에 관한 것이다.
본 발명의 실시예는 첨부된 도면을 참조하여 이후에 논의될 것이다.
도 1a는 실시예에 따른 인코더와 디코더로 구성된 코덱의 기본 구현의 개략적 표현을 도시한다.
도 1b-1d는 실시예에 따라 제안된 접근법의 장점을 설명하기 위한 3개의 시간-주파수 다이어그램을 도시한다.
도 2a는 일 실시예에 따른 인코더 및 다른 실시예에 따른 디코더를 예시하는 개략적인 블록도를 도시한다.
도 2b는 일 실시예에 따른 인코더를 포함하는 도 2a의 발췌 부분을 예시하는 개략적인 블록도를 도시한다.
도 2c는 다른 실시예에 따른 디코더를 포함하는 도 2a의 발췌 부분을 예시하는 개략적인 블록도를 도시한다.
도 3은 실시예에 따른 잔차 신호에 대한 신호 인코더의 개략적인 블록도를 도시한다.
도 4는 추가 실시예에 따른 제로 필링 원리를 포함하는 디코더의 개략적인 블록도를 도시한다.
도 5는 실시예에 따른 피치 윤곽(블록 갭 피치 윤곽 참조)을 결정하는 원리를 예시하기 위한 개략도를 도시한다.
도 6은 추가 실시예에 따른 피치 윤곽에 대한 정보를 사용하는 펄스 추출기의 개략적인 블록도를 도시한다.
도 7은 대안적인 실시예에 따른 추가 정보로서 피치 윤곽을 사용하는 펄스 추출기의 개략적인 블록도를 도시한다.
도 8은 추가 실시예에 따른 펄스 코더를 예시하는 개략적인 블록도를 도시한다.
도 9a-9b는 실시예에 따라 펄스를 스펙트럼적으로 평탄화하는 원리를 설명하기 위한 개략도를 도시한다.
도 10은 추가 실시예에 따른 펄스 코더의 개략적인 블록도를 도시한다.
도 11a-11b는 평탄화된 오리지널로부터 시작하여 예측 잔차 신호를 결정하는 원리를 설명하는 개략도를 도시한다.
도 12는 추가 실시예에 따른 펄스 코더의 개략적인 블록도를 도시한다.
도 13은 실시예를 예시하기 위한 잔차 신호 및 코딩된 펄스를 예시하는 개략도를 도시한다.
도 14는 추가 실시예에 따른 펄스 디코더의 개략적인 블록도를 도시한다.
도 15는 추가 실시예에 따른 펄스 디코더의 개략적인 블록도를 도시한다.
도 16은 실시예에 따른 블록 IBPC를 사용하여 최적의 양자화 단계(즉, 단계 크기)를 추정하는 원리를 예시하는 개략적인 흐름도를 도시한다.
도 17a-17d는 실시예에 따른 장기 예측의 원리를 설명하기 위한 개략도를 도시한다.
도 18a-18d는 추가 실시예에 따른 고조파 후처리 필터링의 원리를 설명하기 위한 개략도를 도시한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하며, 동일하거나 유사한 기능을 갖는 물체에는 동일한 참조 번호를 부여하여 그 설명이 상호 적용 가능하고 상호 교환 가능하다.
도 1a는 PCM1 신호를 인코딩 및 디코딩하는 장치(10)를 도시한다. 장치(10)는 펄스 추출기(11), 펄스 코더(13) 및 신호 코덱(15), 예를 들어 주파수 도메인 코덱 또는 MDCT 코덱을 포함한다. 코덱은 인코더 측(15a)과 디코더 측(15b)을 포함한다. 코덱(15)은 신호 yM (펄스 추출을 수행한 후의 잔차분(개체 11 참조))과 개체(18)를 사용하여 결정된 피치 윤곽선(PC)에 대한 정보(피치 윤곽 얻기)를 사용한다.
또한, 도 1a와 관련하여 대응하는 디코더(20)가 도시된다. 이는 적어도 개체(22, 23) 및 개체(15)의 일부를 포함하며, 여기서 참조 번호 21로 표시된 단위 HPF는 선택적 개체이다. 일반적으로 일부 개체는 하나 이상의 요소로 구성될 수 있으며, 모든 요소가 필수는 아니다.
아래에서는 선택적 요소에 중점을 두지 않고 오디오 인코더의 기본 구현에 대해 설명한다. 펄스 추출기(11)는 입력 오디오 신호(PCMI)를 수신한다. 선택적으로 신호(PCMI)은 LP 분석 필터링의 출력일 수 있다. 이 신호(PCMI)는 예를 들어, PCMI 신호의 펄스 부분을 추출하기 위해 크기 스펙트로그램, 비선형 크기 스펙트로그램 또는 위상 스펙트로그램과 같은 스펙트로그램을 사용하여 분석된다. 신호. 스펙트로그램 내에서 양호한 펄스 결정을 가능하게 하기 위해 스펙트로그램은 선택적으로 신호 코덱(15)보다 더 높은 시간 분해능을 가질 수 있다. 이 추출된 펄스 부분은 펄스(P)로 표시되고 펄스 코더(13)로 전달된다. 펄스 추출(11) 후에 잔차 신호(R)은 신호 코덱(15)으로 전달된다.
신호 코덱보다 스펙트로그램의 시간 해상도가 높다는 것은 신호 코덱의 프레임에 있는 하위 프레임이 있는 것에 비해 스펙트로그램에 더 많은 스펙트럼이 있음을 의미한다. 예를 들어, 주파수 도메인에서 동작하는 신호 코덱에서 프레임은 1개 이상의 하위프레임으로 분할될 수 있고 각 하위프레임은 스펙트럼을 사용하여 주파수 도메인에서 코딩될 수 있으며 스펙트로그램은 프레임 내에 신호 코덱 스펙트럼이 있는 것에 비해 프레임 내에 더 많은 스펙트럼을 가질 수 있다. 신호 코덱은 신호 적응형 프레임당 하위프레임 수를 사용할 수 있다. 일반적으로 스펙트로그램은 신호 코덱에서 사용하는 최대 하위프레임 수보다 더 많은 프레임당 스펙트럼을 갖는 것이 유리하다. 예를 들어 초당 50개의 프레임, 프레임당 40개의 스펙트로그램의 스펙트럼, 프레임당 최대 5개의 신호 코덱의 하위프레임이 있을 수 있다.
펄스 코더(13)는 추출된 펄스 부분(P)을 인코딩하여 인코딩된 펄스 부분을 출력하고, 코딩된 펄스(CP)를 출력하도록 구성된다. 실시예에 따르면, 펄스 부분(펄스 파형을 포함함)은 도 10과 관련하여 논의되는 바와 같이 현재 펄스 부분(펄스 파형을 포함함) 및 하나 이상의 과거 펄스 파형을 사용하여 인코딩될 수 있다.
신호 코덱(15)은 잔차 신호(R)를 인코딩하여 인코딩된 잔차 신호(CR)를 획득하도록 구성된다. 잔차 신호는 오디오 신호(PCMI)에서 파생되어, 펄스 부분이 오디오 신호(PCMI)로부터 감소되거나 제거되도록 한다. 바람직한 실시예에 따르면, 잔차 신호(R)를 인코딩하기 위한 신호 코덱(15)은 정지 신호를 코딩하기 위해 구성된 코덱이거나 바람직하게는 MDCT 코덱과 같은 주파수 도메인 코덱이라는 점에 유의해야 한다. 실시예에 따르면, 이러한 MDCT 기반 코덱(15)은 코딩을 위해 피치 윤곽 정보(PC)를 사용한다. 이 피치 윤곽 정보는 참조 번호 18 "피치 윤곽 얻기"로 표시된 별도의 개체를 사용하여 (PCMI) 신호에서 직접 얻는다.
완전성을 위해 디코더(20)가 예시된다. 디코더(20)는 개체(22, 23), 개체(15)의 일부 및 선택적으로 개체(21)를 포함한다. 개체(22)는 재구성된 펄스 파형으로 구성된 펄스 부분을 디코딩하고 재구성하는 데 사용된다. 현재 재구성된 펄스 파형의 재구성은 220에 도시된 바와 같이 과거 펄스를 고려하여 수행될 수 있다. 예측을 사용하는 이 접근법은 도 15 및 도 14의 맥락에서 논의될 것이다. 도 14의 개체(220)에 의해 수행되는 프로세스는 (각각의 재구성된 펄스 파형에 대해) 여러 번 수행되어, 도 15의 개체(22')에 입력되는 재구성된 펄스 파형을 생성한다. 개체(22')는 코딩된 펄스(CP)로부터 획득된 펄스의 위치에 배치된 재구성된 펄스 파형으로 구성된 파형 (즉, 재구성된 펄스 부분 또는 디코딩된 펄스 부분)을 구성한다. 펄스 디코더와 병행하여 MDCT 코덱 개체(15)는 잔차 신호를 디코딩하는 데 사용된다. 디코딩된 잔차 신호는 결합기(23)에서 디코딩된 펄스 부분()과 결합될 수 있다. 결합기는 디코딩된 펄스 부분과 디코딩된 잔차 신호를 결합하여 디코딩된 출력 신호(PCMO)를 제공한다. 선택적으로 고조파 후처리 필터링을 위한 HPF 개체(21)가 결합기(23)와 MDCT 디코더(15) 사이에 또는 대안적으로 결합기(23)의 출력에 배열될 수 있다.
펄스 추출기(11)는 개체(110)에 대응하고, 펄스 코더(13)는 도 2a 및 도 2b의 개체(132)에 대응한다. 개체(22 및 23)는 또한 도 2a 및 2c에 도시된다.
요약하자면, 신호 디코더(20)는 신호 결합기(23)에 제공되는 디코딩된 잔차 신호를 획득하기 위해 인코딩된 잔차 신호를 생성하는 데 사용되는 코딩 알고리즘에 적합한 디코딩 알고리즘을 사용하도록 구성된다.
이하에서는 개체(110)가 수행하는 펄스 추출 메커니즘에 대해 자세히 설명한다.
실시예에 따르면, 펄스 추출(개체 110 참조)은 입력 오디오 신호의 STFT를 획득하고, STFT의 비선형(로그) 크기 스펙트로그램과 위상 스펙트로그램을 사용하여 펄스/과도를 찾아 추출하는데, 각각의 펄스/과도는 고역 통과 특성을 갖는 파형을 갖는다. 시간 엔벨로프의 피크는 펄스/과도의 위치로 간주되며, 여기서 시간 엔벨로프는 하나의 시간 인스턴스에서 비선형 크기 스펙트로그램의 값을 합산하여 얻는다. 각 펄스/과도는 STFT의 시간 중심 위치에서 왼쪽으로 2 시간 인스턴스, 오른쪽으로 2 시간 인스턴스 확장한다.
비선형 크기 스펙트로그램에서 배경(정지 부분)이 추정되고 선형 크기 영역에서 제거될 수 있다. 배경은 펄스/과도 주변의 비선형 크기의 보간을 사용하여 추정된다.
실시예에 따르면, 각 펄스/과도에 대해 시작 주파수는 인근 펄스 간의 평균 펄스 거리의 역에 비례하도록 설정될 수 있다. 시작 주파수 아래의 펄스/과도의 선형 영역 크기 스펙트로그램은 0으로 설정된다.
실시예에 따르면, 펄스 코더는 스펙트럼 엔벨로프를 사용하여 펄스 파형 또는 펄스 STFT(또는 예를 들어 스펙트로그램의)의 크기를 스펙트럼적으로 평탄화하도록 구성된다. 대안적으로, 필터 프로세서는 시간 도메인에서 펄스 파형을 필터링함으로써 펄스 파형을 스펙트럼적으로 평탄화하도록 구성될 수 있다. 또 다른 변형은 펄스 코더가 역 DFT, 윈도우 및 오버랩 앤 애드(overlap-and-add)을 통해 스펙트럼적으로 평탄화된 STFT로부터 스펙트럼적으로 평탄화된 펄스 파형을 얻도록 구성된다는 것이다. 실시예에 따르면, 펄스 파형은 역 DFT, 윈도우 및 오버랩 앤 애드를 통해 STFT로부터 획득된다.
펄스쌍이 펄스열에 속할 확률은 실시예에 따라 다음으로부터 계산될 수 있다.
·펄스/과도 파형 간의 상관관계
·두 펄스의 거리와 피치 분석에 따른 피치 래그 간의 오차
실시예에 따르면, 펄스의 확률은 다음으로부터 계산될 수 있다.
·펄스 에너지와 국부 에너지의 비율
·펄스열에 속할 확률
임계값보다 높은 확률을 가진 펄스는 코딩되고 코딩되지 않은 오리지널 파형은 입력 오디오 신호에서 뺄 수 있다.
실시예에 따르면, 펄스 P는 다음과 같이 개체(130)에 의해 코딩될 수 있다: 프레임 내의 펄스 파형의 수, 위치/장소, 시작 주파수, 스펙트럼 엔벨로프, 예측 이득 및 소스, 이노베이션(innovation) 이득 및 이노베이션 임펄스.
예를 들어, 프레임당 하나의 스펙트럼 엔벨로프가 코딩되어 프레임에 있는 펄스의 스펙트럼 엔벨로프의 평균을 나타낸다. 펄스 STFT의 크기는 스펙트럼 엔벨로프를 사용하여 스펙트럼적으로 평탄화된다. 대안적으로, 입력 신호의 스펙트럼 엔벨로프는 펄스(개체(130) 참조)와 잔차(개체(150) 참조) 모두에 사용될 수 있다.
스펙트럼 평탄화된 펄스 파형은 역 DFT, 윈도우 및 중첩 및 추가를 통해 스펙트럼 평탄화된 STFT로부터 얻을 수 있다.
가장 유사한 이전 양자화된 펄스가 발견될 수 있고 가장 유사한 이전 펄스로부터 구성된 예측이 스펙트럼적으로 평탄화된 펄스 파형에서 감산되어 예측 잔차를 얻는데, 여기서 예측은 예측 이득과 곱해진다.
예를 들어 예측 잔차는 최대 4개의 임펄스를 사용하여 양자화되며 임펄스 위치와 부호는 코딩된다. 추가적으로 (완전한) 예측 잔차에 대한 이노베이션 이득이 코딩될 수 있다. 예를 들어 완전한 예측 잔차는 최대 4개의 임펄스를 의미하는데, 즉, 하나의 이노베이션 이득이 발견되어 모든 임펄스에 적용된다. 따라서 완전 예측 잔차는 양자화된 예측 잔차가 최대 4개의 임펄스와 1개의 이득으로 구성되는 특성을 지칭할 수 있다. 그럼에도 불구하고 또 다른 구현에서는 예를 들어 각 임펄스에 대해 하나의 이득과 같이 여러 이득이 있을 수 있다. 또 다른 예에서는 4개 이상의 임펄스가 있을 수 있는데, 예를 들어 임펄스의 최대 수는 코덱 비트 전송률에 비례할 수 있다.
실시예에 따르면 초기 예측 및 이노베이션 이득은 SNR을 최대화하고 에너지 감소를 도입할 수 있다. 따라서 보정 인자가 계산되고 이득에 보정 인자를 곱하여 에너지 감소를 보상한다. 예측 소스나 임펄스의 선택을 변경하지 않고 보정 인자를 적용한 후에 이득을 양자화하고 코딩할 수 있다.
디코더에서, 임펄스는 실시예에 따라 디코딩되고 이노베이션 이득을 곱하여 이노베이션을 생성한다. 가장 유사한 이전 펄스/과도로부터 예측이 구성되고 예측 이득이 곱해진다. 예측이 이노베이션에 추가되어 평탄화된 펄스 파형을 생성하고, 디코딩된 스펙트럼 엔벨로프에 의해 스펙트럼적으로 형성되어 펄스 파형을 생성한다.
펄스 파형은 비트스트림으로부터 디코딩된 위치에서 디코딩된 MDCT 출력에 추가된다.
펄스 파형은 파형의 시간 중심 근처에 에너지가 집중되어 있다.
도 1b, 1c, 1d를 참조하여, 제안된 방법의 장점을 설명한다.
전체 대역폭에 대한 비선형 크기의 통합 덕분에 배경 신호/잡음이 있는 경우에도 분산된 과도 현상(펄스 포함)을 검출할 수 있다. 도 1b는 스펙트로그램(시간에 따른 주파수)을 나타내며, 여기서 서로 다른 크기 값은 서로 다른 음영으로 표시된다. 펄스를 나타내는 일부 부분은 참조 기호 10p로 표시된다. 이들 펄스 부분(10p) 사이에는 정지 부분(10s)이 표시되어 있다.
펄스의 크기 스펙트로그램(도 1c 참조)에서 고정 부분을 제거함으로써 MDCT 코더에 적합한 부분만 거의 입력 신호에서 제거된다(참조 번호 10s'). 펄스의 크기 스펙트럼의 비고정 부분을 수정하지 않음으로써 MDCT 코더에 적합하지 않은 거의 모든 부분이 입력 신호에서 제거된다(도 1d 참조).
펄스열의 펄스 간 거리가 짧은 신호일수록 F0가 높고 고조파 간 거리가 크기 때문에 MDCT 코더로 코딩하는 것이 효율적이다. 이러한 신호는 또한 광대역 과도 현상의 마스킹이 적다. 펄스 간 거리를 더 짧게 하기 위해 펄스/과도 시작 주파수를 높이면 펄스 추출 또는 코딩 오류가 약화된다.
단일 펄스/과도에서 단일 펄스/과도까지의 예측을 사용하여 펄스/과도의 코딩이 효율적으로 이루어진다. 스펙트럼 평탄화를 통해 펄스/과도의 스펙트럼 엔벨로프 변화가 무시되고 예측 활용도가 높아진다.
펄스 선택 시 펄스 파형 간의 상관관계를 사용하면 효율적으로 코딩할 수 있는 펄스가 추출된다. 펄스 선택에서 펄스 에너지 대 로컬 에너지의 비율을 사용하면 펄스열에 속하지 않는 강한 과도 현상도 추출할 수 있다. 따라서 성문 펄스를 포함하여 MDCT에서 효율적으로 코딩할 수 없는 모든 종류의 과도 현상이 입력 신호에서 제거된다. 아래에서는 추가 실시예가 논의될 것이다.
도 2a는 디코더(201)와 결합된 인코더(101)를 도시한다.
인코더(101)의 주요 개체는 참조 번호 110, 130, 150으로 표시된다. 개체(110)는 펄스 추출을 수행하며, 여기서 펄스 p는 펄스 코딩을 위해 개체(132)를 사용하여 인코딩된다.
신호 인코더(150)는 복수의 개체(152, 153, 154, 155, 156, 157, 158, 159, 160 및 161)에 의해 구현된다. 이들 개체(152-161)는 인코더(150)의 주요 경로를 형성하고, 여기서 추가 개체(162, 163, 164, 165 및 166)가 배열될 수 있다. 개체(162)(zfl 디코더)는 제로 필링(Zero filling)을 위해 개체(156)(iBPC)를 개체(158)와 정보적으로(informatively) 연결한다. 개체 165(TNS 가져오기)는 개체 153(SNSE)을 개체 154, 158 및 159와 정보적으로 연결한다. 개체 166(SNS 가져오기)은 개체 152를 개체 153, 163 및 160과 정보적으로 연결한다. 개체 158은 제로 필링을 수행하며, 도 4와 관련하여 논의될 결합기(158c)를 포함할 수 있다. 개체(159 및 160)가 존재하지 않는 구현이 있을 수 있다는 점에 유의한다 - 예를 들어 MDCT 출력의 LP 필터링을 갖는 시스템. 따라서 이러한 개체(159 및 160)는 선택 사항이다.
개체(163, 164)는 개체(180)로부터 피치 윤곽과 코딩된 잔차(YC)를 수신하여 예측 스펙트럼(XP) 및/또는 지각적으로 평탄화된 예측(XPS)을 생성한다. 다양한 개체의 기능과 상호 작용은 아래에서 설명된다.
인코더(101), 특히 인코더(150)의 기능을 논의하기 전에 디코더(210)에 대한 간단한 설명이 제공된다. 디코더(210)는 개체들(157, 162, 163, 166, 158, 159, 160, 161)뿐만 아니라 엔코더 특정 개체들(214(HPF), 23(신호 결합기) 및 22(파형을 구성하기 위한))을 포함할 수 있다. 더욱이, 디코더(201)는 신호 디코더(210)를 포함하고, 여기서 개체들(158, 159, 160, 161, 162, 163 및 164)은 개체(214)와 함께 신호 디코더(210)를 형성한다. 또한, 디코더(201)는 신호 결합기(23)를 포함한다.
아래에서는 인코딩 기능에 대해 설명한다. 펄스 추출(110)은 입력 오디오 신호(PCMI)의 STFT를 획득하고 STFT의 비선형 크기 스펙트로그램과 위상 스펙트로그램을 사용하여 펄스를 찾고 추출하며, 각 펄스는 하이패스 특성을 갖는 파형을 갖는다. 펄스 잔차 신호()는 입력 오디오 신호에서 펄스를 제거하여 획득한다. 펄스는 펄스 코딩(132)에 의해 코딩되고 코딩된 펄스(CP)는 디코더(201)로 전송된다.
펄스 잔차 신호()는 MDCT(152)를 통해 윈도우화되고 변환되어 길이 를 생성한다. 창은 [6]과 같이 3개의 창 중에서 선택된다. 아래 예에서는 가장 긴 창의 길이가 30밀리초이고 중첩되는 부분이 10밀리초이지만, 다른 창과 중첩 길이를 사용할 수도 있다. 의 스펙트럼 엔벨로프는 를 얻는 (153)을 통해 지각적으로 평탄화된다. 선택적으로 시간적 노이즈 성형 (154)은 스펙트럼의 적어도 일부에서 시간 엔벨로프를 평탄화하여 를 생성하도록 적용된다. 스펙트럼의 일부(또는 또는 )에서 적어도 하나의 조성 플래그()가 추정되어 디코더(201/210)로 전송될 수 있다. 선택적으로 피치 윤곽(180)을 따르는 장기 예측(LTP)(164)은 과거에 디코딩된 샘플로부터 예측 스펙트럼()을 구성하는 데 사용되고 지각적으로 평탄화된 예측()은 MDCT 영역에서 으로부터 차감되어, LTP 잔차 을 생성한다. 피치 윤곽(180)은 평균 고조파성이 높은 프레임에 대해 획득되어 디코더(201/210)로 전송된다. 피치 윤곽(180)과 고조파성은 코덱의 많은 부분을 조정하는 데 사용된다. 평균 고조파성은 각 프레임별로 계산될 수 있다.
도 2b는 개체(180, 110, 152, 153, 153, 155, 156', 165, 166 및 132)를 포함하는 인코더(101')에 초점을 맞춘 도 2a의 발췌를 도시한다. 도 2a에서의 156은 도 2b의 156'과 도 2c의 156''의 조합이다. 개체 163(도 2a, 2c)은 153과 일치하거나 비교할 수 있으며 160의 반대이다.
실시예에 따르면, 인코더는 입력 신호를 프레임으로 분할하고 예를 들어 각 프레임에 대해 다음 파라미터 중 적어도 하나 이상을 출력한다.
- 피치 윤곽
- MDCT 창 선택, 2비트
- LTP 파라미터
- 코딩된 펄스
- sns, SNS를 통한 스펙트럼 형성을 위한 코딩된 정보.
- tns, TNS를 통한 시간 형성을 위한 코딩된 정보,
- 전역 이득 gQo, MDCT 코덱에 대한 전역 양자화 단계 크기.
- spect, 엔트로피 코딩된 양자화된 MDCT 스펙트럼으로 구성됨,
- zfl, 파라메트릭으로 코딩된 양자화된 것의 제로 부분으로 구성됨.
코딩된 잔차 신호 CR은 spec 및/또는 gQ0 및/또는 zfl 및/또는 tns 및/또는 sns로 구성될 수 있다.
XPS 는 인코더에도 사용되는 LTP에서 나오지만 디코더에만 표시된다.
도 2c는 도 2a의 맥락에서 논의된 개체(156'', 162, 163, 164, 158, 159, 160, 161, 214, 23 및 22)를 포함하는 인코더(201')에 초점을 맞춘 도 2a의 발췌 부분을 도시한다. LTP 164에 관하여, 기본적으로 LTP는 디코더의 일부(HPF, "파형 구성" 및 해당 출력 제외)이며, 이는 인코더에서도 (내부 디코더의 일부로) 사용/필요할 수 있다. LTP가 없는 구현에서는 인코더에 내부 디코더가 필요하지 않다.
개체(155)에 의해 출력된 XMR(LTP의 잔차)의 인코딩은 도 3과 관련하여 논의되는 바와 같이 통합 대역별 파라미터 코더(iBPC)에서 수행된다.
개체(155)를 논의하기 전에 도 2의 MDCT(152)에 대해 설명한다: MDCT의 출력은 길이 LM의 XM 이다. 48kHz의 입력 샘플링 레이트의 예 및 20밀리초의 프레임 길이의 예에 대해, LM은 960이다. 코덱은 다른 샘플링 레이트 및/또는 다른 프레임 길이에서 동작할 수 있다. XM으로부터 파생된 모든 다른 스펙트럼: XMS, XMT, XMR, XQ, XD, XDT, XCT, XCS, XC, XP, XPS, XN, XNP, XS은 또한 동일한 길이 LM이지만, 일부 경우에 스펙트럼 중 일부만이 필요하고 사용될 수 있다. 스펙트럼은 스펙트럼 빈 또는 주파수 빈이라고도 알려진 스펙트럼 계수로 구성된다. MDCT 스펙트럼의 경우, 스펙트럼 계수는 양의 값과 음의 값을 가질 수 있다. 각 스펙트럼 계수가 대역폭을 포괄한다고 말할 수 있다. 샘플링 레이트가 48kHz이고 프레임 길이가 20밀리초인 경우 스펙트럼 계수는 25Hz의 대역폭을 포괄한다. 스펙트럼 계수는 0부터 LM-1 까지 인덱싱될 수 있다.
SNSE 및 SNSD에서 사용되는 SNS 스케일 팩터는 증가하는 대역폭을 갖는 NSB=64 주파수 하위 대역(종종 대역으로 칭하기도 함)에서의 에너지로부터 얻어질 수 있으며, 여기서 에너지는 주파수 하위 대역에서 분할되는 스펙트럼으로부터 얻어진다. 예를 들면, Hz로 표현되는 하위 대역 경계는 0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2050, 2200, 2350, 2500, 2650, 2800, 2950, 3100, 3300, 3500, 370 3900, 4100, 4350, 4600, 4850, 5100, 5400, 5700, 6000, 6300, 6650, 7000, 7350, 7750, 8150, 8600, 9100, 9650, 10250, 10850, 11500, 12150, 12800,13450, 14150, 15000, 16000, 24000으로 설정될 수 있다. 하위 대역은 0에서 NSB-1까지 인덱싱될 수 있다. 이 예에서, 0차 하위 대역(0 내지 50Hz)은 2 스펙트럼 계수를 포함하며, 하위 대역 1 내지 11과 동일하며, 하위 대역 62는 40개의 스펙트럼 계수를 포함하며, 하위 대역 63은 320개의 계수를 포함한다. NSB=64 주파수 하위 대역에서의 에너지는 코딩되는 16 값으로 다운샘플링될 수 있으며, 코딩된 값은 "sns"으로 표기된다. "sns"로부터 얻어진 16개의 디코딩된 값은 SNS 스케일 팩터로 보간되며, 이는 예를 들면 32, 64 또는 128 스케일 팩터일 수 있다. SNS를 획득하는 것에 대한 더 상세한 것은, [21-25]를 참조할 수 있다.
iBPC에서, "zfl 디코드" 및/또는 "제로 필링" 블록에서, 스펙트럼은 가변 길이 LBi의 하위 대역(Bi)으로 분할될 수 있으며, 하위 대역i는 jBi에서 시작한다. 동일한 64개의 하위 대역 경계가 SNS 스케일 팩터를 얻기 위한 에너지에 대해 사용된 것처럼 사용될 수 있으나, 임의의 다른 개수의 하위 대역 및 임의의 다른 하위 대역 경계도 사용될 수 있다 - SNS와 무관하게. 강조하자면, SNS와 동일한 하위 밴드 분할 원리를 사용할 수 있지만, iBPC에서의 하위 대역 분할에서, "zfl 디코드" 및/또는 "제로 필링" 블록은 SNS 및 SNSE 및 SNSD 블록과 독립적이다. 상기 하위 대역 분할에서, = 0 및 = 2, = 0 및 이다.
도 3은 하위 개체 156q, 156m, 156pc, 156sc 및 156mu를 가질 수 있는 개체 iBPC(156)를 보여준다. 비트스트림 멀티플렉서(156mu)의 출력에는 대역별 파라메트릭 디코더(L측) 디코더(162)가 스펙트럼 디코더(156sc)와 함께 배열된다. 두 개체(162 및 156sc)는 결합기(157)에 연결된다.
비트스트림 멀티플렉서(156mu)의 출력에서, 대역별 파라메트릭 디코더(162)는 스펙트럼 디코더(156sd)와 함께 배열된다. 개체(162)는 신호 zfl을 수신하고, 개체(156sd)는 신호 spect를 수신하며, 여기서 둘 다 전역 이득/스텝 크기 gQ0를 수신할 수 있다. 파라메트릭 디코더(162)는 zfl을 디코딩하기 위해 스펙트럼 디코더(156sd)의 출력 XD 를 사용한다는 점에 유의한다. 대안적으로 디코더(156sd)로부터 출력된 다른 신호를 사용할 수도 있다. 이에 대한 배경은 스펙트럼 디코더(156sd)가 2개의 부분, 즉 스펙트럼 무손실 디코더 및 역양자화기를 포함할 수 있다는 것이다. 예를 들어, 스펙트럼 무손실 디코더의 출력은 spect로부터 획득된 디코딩된 스펙트럼일 수 있으며, 파라메트릭 디코더(162)의 입력으로 사용할 수 있다. 스펙트럼 무손실 디코더의 출력은 156pc 및 156sc의 입력 XQ와 동일한 정보를 포함할 수 있다. 역양자화기는 스펙트럼 무손실 디코더의 출력으로부터 XD 파생하기 위해 전역 이득/스텝 크기를 사용할 수 있다. 디코딩된 스펙트럼 및/또는 역양자화된 스펙트럼 XD 에서 제로 하위 대역의 위치는 양자화 단계 와 무관하게 결정될 수 있다.
XMR는 양자화된 스펙트럼XQ(의 일부)에서 0 값에 대한 에너지의 양자화 및 코딩을 포함하여 양자화되고 코딩되는데, 여기서 XQ는 XMR의 양자화된 버전이다. XMR의 양자화 및 코딩은 iBPC(Integral Band-wise Parametric Coder)(156)에서 수행된다. iBPC의 부분 중 하나로서, 적응형 대역 제로잉(156m)과 함께 양자화(양자화기 156q)는 최적 양자화 단계 크기기 기초하여 양자화된 스펙트럼 XQ을 생성한다. iBPC(156)는 spect 156sc(XQ를 나타냄) 및 zfl 162(XQ의 부분에서 제로 값에 대한 에너지를 나타낼 수 있음)로 구성된 코딩된 정보를 생성한다.
개체(157)의 출력에 배열된 제로 필링 개체(158)가 도 4에 도시된다.
도 4는 요소(157)를 통해 선택적으로 개체(162)로부터 신호 EB를 수신하고, 개체(156sd)로부터 결합된 스펙트럼 XDT를 수신하는 제로 필링 개체(158)를 도시한다. 제로 필링 개체(158)는 두 개의 하위 개체(158sc 및 158sg)와 결합기(158c)를 포함할 수 있다.
spect은 XQ인 XMR의 양자화된 버전에 해당하는 역양자화된 스펙트럼 XD(디코딩된 LTP 잔차, 에러 스펙트럼)를 얻기 위해 디코딩된다. EB는 XD에서 0 값의 위치를 고려하여 zfl에서 얻는다. EB는 XQ의 영점 값에 대한 에너지의 평활화된 버전일 수 있다. EB는 zfl과 다른 해상도 바람직하게는 평활화로 인한 더 높은 해상도를 가질 수 있다.
EB를 얻은 후(참조: 162), 지각적으로 평탄화된 예측 XPS를 선택적으로 디코딩된 XD에 추가하여 XDT를 생성한다. 제로 필링 G가 얻어지고 "제로 필링"에서 (예를 들어 추가 158c를 사용하여) XDT와 결합되며, 여기서 제로 필링 XG은 대역별 소스 스펙트럼 (참조: 156sc)으로 구성된 소스 스펙트럼 XS에서 반복적으로 얻어지고 EB에 따라 가중치가 적용된 대역별 제로 필링 으로 구성된다. XCT는 제로 필링 XS와 스펙트럼 XDT(158c)의 대역별 조합(band-wise combination)이다. XS는 대역별로 구성되며(158sg은 XG를 출력), XCT는 가장 낮은 하위 대역부터 시작하여 대역별로 얻는다. 각각의 하위 대역에 대해, 소스 스펙트럼은, 예를 들어 하위 대역 위치, 조성 플래그(toi), XDT로부터 추정된 파워 스펙트럼, EB, 피치 정보(pii) 및 시간 정보(tei)에 따라 선택(참조: 158sc)된다. XDT에서 추정된 파워 스펙트럼은 XDT 또는 XD에서 파생될 수 있다는 점에 유의한다. 다르게는 비트스트림에서 소스 스펙트럼을 선택할 수도 있다. XS의 가장 낮은 하위 대역 에서 시작 주파수 fZFStart까지는 0으로 설정될 수 있으며, 이는 가장 낮은 하위 대역 XCT에서 XDT의 복사본이 될 수 있음을 의미한다. f_ZFStart는 0일 수 있으며, 이는 스펙트럼의 시작부터 0과 다른 소스 스펙트럼이 선택될 수 있음을 의미한다. 하위 대역 i에 대한 소스 스펙트럼은 예를 들어 랜덤 노이즈 또는 예측 스펙트럼이거나 이미 획득한 XCT의 하부 부분, 랜덤 노이즈 및 예측 스펙트럼의 조합일 수 있다. 소스 스펙트럼 XS는 EB를 기준으로 가중치를 부여하여 제로 필링 XG를 얻는다.
예를 들어, 가중치 부여는 개체(158sg)에 의해 수행되며 하위 대역 분할보다 더 높은 해상도를 가질 수 있으며, 부드러운 가중치를 얻기 위해 샘플 별로 결정될 수도 있다. 를 XDT의 하위 대역 i에 추가하여 XCT의 하위 대역 i를 생성한다. 완전한 XCT를 얻은 후, 그 시간 엔벨로프는 선택적으로 TNSD(159)(도 2a 참조)를 통해 XMS의 시간 엔벨로프와 일치하도록 수정하여 XCS를 생성한다. 그런 다음 XCS의 스펙트럼 엔벨로프가 XM의 스펙트럼 엔벨로프와 일치하도록 SNSD(160)을 사용하여 수정되어 XC를 생성한다. IMDCT(161)의 출력으로 XC로부터 시간 도메인 신호 yC를 얻는데, 여기서 IMDCT(161)은 역 MDCT, 윈도우잉 및 오버랩 앤 애드로 구성된다. yC는 다음 프레임에 대한 LTP 버퍼(164)(도 2a 및 2c의 버퍼(164) 또는 164+163의 조합과 비교 가능한)를 업데이트하는 데 사용된다. 피치 윤곽을 따르는 고조파 후처리 필터(HPF)가 yC에 적용되어 고조파 사이의 노이즈를 줄이고 yH를 출력한다. 코딩된 펄스 파형으로 구성된 코딩된 펄스가 디코딩되고, 디코딩된 펄스 파형에서 시간 도메인 신호 yP가 구성된다. yP를 yH와 결합하여 디코딩된 오디오 신호(PCMO)를 생성한다. 또는 yP를 yC와 결합하여 이 조합을 HPF의 입력으로 사용할 수 있으며, 이 경우 HPF(214)의 출력은 디코딩된 오디오 신호가 된다.
개체 "피치 윤곽 얻기"(180)는 도 5를 참조하여 아래에 설명된다.
"피치 윤곽 얻기(180)" 블록의 프로세스가 설명된다. 입력 신호는 전체 샘플링 레이트에서 더 낮은 샘플링 레이트(예: 8kHz)로 다운샘플링된다. 피치 윤곽은 현재 프레임의 pitch_mid 및 pitch_end와 이전 프레임의 pitch_end와 동일한 pitch_start에 의해 결정된다. 프레임은 도 5에 예시적으로 설명되어 있다. 피치 윤곽에 사용된 모든 값은 분수 정밀도의 피치 래그로 저장된다. 피치 래그 값은 최소 피치 래그 dFmin = 2.25 밀리초(444.4Hz에 해당) 및 최대 피치 래그 dFmax=19.5밀리초(51.3Hz에 해당) 사이에 있고, dFmin 에서 dFmax까지의 범위를 풀 피치 범위(full pitch range)라 명명한다. 다른 범위의 값도 사용될 수 있다. pitch_mid 및 pitch_end 값은 여러 단계에서 발견된다. 매 단계마다 다운샘플링된 신호 영역 또는 입력 신호 영역에서 피치 검색이 수행된다.
피치 검색은 입력의 정규화된 자기상관과 입력의 지연된 버전을 계산한다. 지연(dF)은 피치 검색 시작 dFstart와 피치 검색 종료 dFend 사이에 있다. 피치 검색 시작 dFstart, 피치 검색 종료 dFend, 자기 상관 길이 lpH 및 과거 피치 후보 dFpast는 피치 검색의 파라미터이다. 피치 검색은 분수 정밀도의 피치 래그로서 최적 피치()를 내어놓고, 또한 최적 피치 래그에서의 자기상관 값에서 고조파성 레벨()이 얻어진다. 의 범위는 0과 1 사이이며, 0은 고조파성이 없음을 의미하고 1은 최대 고조파성을 의미한다.
정규화된 자기상관에서 절대 최대값의 위치는 최적의 피치 래그에 대한 제1 후보 dF1이다. dFpast가 dF1에 가까우면 최적의 피치 래그에 대한 제2 후보 dF2가 되고, 그렇지 않으면 dFpast에 가까운 로컬 최대값의 위치가 제2 후보 dF2가 된다. 로컬 최대값은 dFpast가 dF1에 가까울 경우 검색되지 않는데, 그 이유는 dF1이 dF2에 대해 다시 선택되기 때문이다. dF1과 dF2에서 정규화된 자기 상관의 차이가 피치 후보 임계값 τdF를 초과하면, dFoptim은 dF1H[dF1]-ρH[dF2]>τdF⇒dFoptim=dF1)로 설정되고, 그렇지 않으면 dFoptim은 dF2로 설정된다. τdF는 dF1, dF2 및 dFpast에 따라 적응적으로 선택되며, 예를 들어 0.75·dF1≤dFpast≤1.25·dF1이면 τdF=001이고, 그렇지 않으면 dF1≤dF2이면 τdF=0.02 및 dF1>dF2이면τdF=0.03 이다(피치 변화가 작으면 새로운 최대 위치로 전환하는 것이 더 쉽고 변화가 크면 큰 피치 래그 보다 작은 피치 래그로 전환하는 것이 더 쉽다).
프레이밍(framing) 및 윈도잉(windowing)과 관련된 피치 검색 영역의 위치는 도 5에 나와 있다. 각 영역에 대해 피치 검색은 영역의 길이에 설정된 자기상관 길이()를 사용하여 실행된다. 먼저, 피치 래그 start_pitch_ds 및 관련 고조파성 start_norm_corr_ds는 피치 검색의 실행에서의 dFpast = pitch_start, dFstart = dFmin 및 dFend = dFmax를 사용하여 낮은 샘플링 레이트에서 계산된다. 다음으로, 피치 래그 avg_pitch_ds 및 관련 고조파성 avg_norm_corr_ds는 피치 검색의 실행에서 dFpast = start_pitch_ds, dFstart = dFmin 및 dFend = dFmax를 사용하여 낮은 샘플링 레이트에서 계산된다. 현재 프레임에서의 평균 고조파성은 max(start_norm_corr_ds, avg_norm_corr_ds)로 설정된다. 피치 래그 mid_pitch_ds 및 end_pitch_ds 및 관련 고조파성 mid_norm_corr_ds 및 end_norm_corr_ds는 피치 검색의 실행에서 dFast = avg_pitch_ds, dFstart = 0.3·avg_pitch_ds 및 dFend = 0.7·avg_pitch_ds를 사용하여 낮은 샘플링 레이트에서 계산된다. 피치 래그 pitch_mid 및 pitch_end 및 관련 고조파성 norm_corr_mid 및 norm_corr_end가 피치 검색의 실행에서 dFpast = pitch_ds, dFstart = pitch_ds-△Fdown 및 dFend = pitch_ds+△Fdown를 사용하여 전체 샘플링 레이트에서 계산되며, 여기서 △Fdown은 전체 및 낮은 샘플링 레이트 및 pitch_mid에 대한 pitch_ds=mid_pitch_ds 및 pitch_end에 대한 pitch_ds=end_pitch_ds의 비율이다.
평균 고조파성이 0.3 미만이거나 norm_corr_end가 0.3 미만이거나 norm_corr_mid가 0.6 미만이면 현재 프레임에 피치 윤곽이 없음을 단일 비트로 비트스트림에 시그널링된다. 평균 고조파성이 0.3보다 높으면 피치 윤곽은 pitch_end에 대한 절대 코딩과 pitch_mid에 대한 차등 코딩을 사용하여 코딩된다. pitch_mid는 미리 정의된 8개의 값 중 (pitch_start+pitch_end)/2와의 차이에 대한 코드를 사용하여 3비트를 사용하는 (pitch_start+pitch_end)/2로 차등적으로 코딩되며, 이는 pitch_mid 영역에서 자기상관을 최소화한다. 프레임에 고조파의 끝이 있는 경우(예:norm_corr_end<norm_corr_mid/2), pitch_start 및 pitch_mid로부터의 선형 외삽법이 pitch_end에 사용되므로, pitch_mid가 코딩될 수 있다(예:norm_corr_mid > 0.6 및 norm_corr_end < 0.3).
및 pitch_start 및 pitch_mid의 영역에서의 예상 HPF 이득이 1에 가깝고 크게 변하지 않는 경우, HPF가 상수 파라미터를 사용해야 한다는 것이 비트스트림에 시그널링된다.
피치 윤곽(dcontour)은 현재 창의 모든 샘플(i)에서 피치 래그 값(dcontour[i]) 및 과거 샘플에서 적어도 dFmax를 제공한다. 피치 윤곽의 피치 래그는 현재, 이전 및 제2 이전 프레임으로부터 pitch_mid 및 pitch_end의 선형 보관에 의해 얻어진다.
평균 피치 래그(pitch lag) 는 pitch_start, pitch_mid, pitch_end의 평균으로 계산된다.
추가 실시예에 따르면 하프 피치 래그 보정도 가능하다.
인코더와 디코더 모두에서 사용 가능한 LTP 버퍼는 입력 신호의 피치 래그가 dFmin 이하인지 확인하는 데 사용된다. 입력신호의 피치 래그가 dFmin 이하인 경우를 검출하는 것을 "하프 피치 래그 검출(half pitch lag detection"이라 하고, 검출되면 "하프 피치 래그가 검출됨"이라고 한다. 코딩된 피치 래그 값(pitch_mid, pitch_end)은 dFmin에서 dFmas까지의 범위에서 코딩되어 전송된다. 이러한 코딩된 파라미터로부터 피치 윤곽은 위에 정의된 대로 파생된다. 하프 피치 래그가 검출되면, 코딩된 피치 래그 값은 실제 피치 래그 값의 정수배(nFcorrection)에 가까운 값을 가질 것으로 예상된다(동등하게 입력 신호 피치는 코딩된 피치의 정수배(nFcorrection)에 가깝다). 코딩 가능한 범위 이상으로 피치 래그 범위를 확장하기 위해 수정된 피치 래그 값(pitch_mid_corrected, pitch_end_corrected)이 사용된다. 실제 피치 래그 값이 코딩 가능한 범위에 있는 경우, 수정된 피치 래그 값(pitch_mid_corrected, pitch_end_corrected)은 코딩된 피치 래그 값(pitch_mid, pitch_end)과 동일할 수 있다. 수정된 피치 래그 값은 피치 윤곽이 피치 래그 값으로부터 파생되는 것과 동일한 방식으로 수정된 피치 윤곽을 얻기 위해 사용될 수 있다는 점에 유의한다. 즉, 이는 코딩된 피치 파라미터에 대한 주파수 범위 외부로 피치 윤곽의 주파수 범위를 확장하여 수정된 피치 윤곽을 생성하는 것을 가능하게 한다.
하프 피치 검출은 피치가 현재 창에서 일정하고 인 경우에만 실행된다. 피치는 인 경우 현재 창에서 일정하다고 간주된다. 하프 피치 검출에서 각 피치 검색은, , , 를 사용하여 수행된다. nFcorrection은 피치 검색에서 반환된 정규화된 상관관계를 최대화하는 nFmultiple로 설정된다. nFcorrection>1이고 nFcorrection에 대한 피치 검색에서 반환된 정규화된 상관관계가 0.8 이상이고 nFmultiple=1에 대한 피치 검색에서 반환된 정규화된 상관관계가 0.02 이상이면 하프 피치가 감지된 것으로 간주된다.
하프 피치 래그가 검출되면 pitch_mid_corrected 및 pitch_end_correded는 nFmultiple = nFcorrection에 대한 피치 검색에서 반환된 값을 가져오고, 그렇지 않으면 pitch_mid_corrected 및 pitch_end_corrected는 각각 pitch_mid 및 pitch_end로 설정된다.
평균 수정된 피치 래그 는 최종 옥타브 점프를 수정한 후에 pitch_start, pitch_mid_corrected 및 pitch_end_corrected의 평균으로서 계산된다. 옥타브 점프 보정은 pitch_start, pitch_mid_corrected 및 pitch_end_corrected 중에서 최소값을 찾고, pitch_start, pitch_mid_corrected 및 pitch_end_correted 중 각각의 피치에 대해 최소값에 가장 가까운 pitch/nFmultiple를 찾는다(nFmultiple∈{1,2,...,nFmaxcorrection}의 경우). 그런 다음 평균 계산에 오리지널 값 대신 pitch/nFmultiple가 사용된다.
아래에서는 펄스 추출이 도 6과 관련하여 논의될 수 있다. 도 6은 개체(111hp, 112, 113c, 113p, 114 및 114m)를 갖는 펄스 추출기(110)를 도시한다. 입력에서의 제1 개체는 신호를 펄스 추출기(112)(펄스 및 통계 추출)로 출력하는 선택적 고역 통과 필터(111hp)이다.
출력에는 2개의 개체(113c 및 113p)가 배열되어 있으며, 이들은 함께 상호 작용하고 개체(180)로부터 피치 윤곽을 입력으로 수신한다. 펄스(113c)를 선택하는 개체는 펄스 P를 다른 개체(114)로 직접 출력하여 파형을 생성한다. 이는 펄스의 파형이며 믹서(114m)를 사용하여 PCMI 신호에서 차감하여 잔차 신호 R(펄스를 추출한 후의 잔차)을 생성할 수 있다.
프레임당 최대 8개의 펄스가 추출되고 코딩된다. 다른 예에서는 다른 개수의 최대 펄스가 사용될 수 있다. 이전 프레임의 펄스 는 유지되어 추출 및 예측 코딩에 사용된다(). 다른 예에서는 에 대해 다른 제한이 사용될 수 있다. "피치 윤곽 180 가져오기"는 을 제공한다; 대안으로 가 사용될 수 있다. 고조파성이 낮은 프레임에서는 이 0이 될 것으로 예상된다.
STFT(Short-time Fourier Transform)을 통한 시간-주파수 분석은 펄스를 찾고 추출하는 데 사용된다(개체 112 참조). 다른 예에서는 다른 시간-주파수 표현이 사용될 수 있다. 신호 는 고역 통과(111hp) 될 수 있으며 75% 중첩되는 2밀리초 길이의 제곱 사인 창을 사용하여 윈도우화되고 DFT(이산 푸리에 변환)를 통해 FD(주파수 도메인)로 변환될 수 있다. 필터(111HP)는 펄스 부분의 각각의 펄스 파형이 (추가 처리 후, 예를 들어 펄스 추출 후) 고역 통과 특성 및/또는 시작 주파수 이상으로 시작되는 주파수에서 더 많은 에너지를 갖는 특성을 포함하도록 오디오 신호 PCMI를 필터링하도록 구성되고, 잔차 신호에서 고역 통과 특성이 제거되거나 감소되도록 구성된다. 대안적으로, 고역 통과 필터링은 FD(112s 또는 112s의 출력에서)에서 수행될 수 있다. 따라서 20밀리초의 각 프레임에는 각각의 주파수 대역에 대해 40개의 포인트가 있으며, 각 포인트는 크기와 위상으로 구성된다. 각 주파수 대역의 폭은 500Hz이며, 나머지 47개 대역은 대칭 확장을 통해 구성할 수 있기 때문에 샘플링 속도 FS=48kHz의 경우 49개 대역만 고려하고 있다. 따라서 STFT의 각 시간 인스턴스에는 49개의 포인트가 있고, 프레임의 시간-주파수 평면에는 40·49 포인트가 있다. STFT 홉 크기는 HP=0.0005FS 이다.
도 7에는 개체(112)가 더 자세히 도시되어 있다. 112te에서 시간 엔벨로프는 주파수 축을 가로지르는 적분에 의해 로그 크기 스펙트로그램으로부터 얻어진다 즉, STFT 로그 크기의 각각의 시간 인스턴스에 대해 시간 엔벨로프의 하나의 샘플을 얻기 위해 합산된다.
도시된 개체(112)는 PCMI 신호에 기초하여 위상 및/또는 크기 스펙트로그램을 출력하는 Get 스펙트로그램 개체(112s)를 포함한다. 위상 스펙트로그램은 펄스 추출기(112pe)로 전달되고, 크기 스펙트로그램은 추가로 처리된다. 크기 스펙트로그램은 배경 제거기(112br), 제거될 배경 신호를 추정하기 위한 배경 추정기(112be)를 사용하여 처리될 수 있다. 추가적으로 또는 대안적으로 시간 엔벨로프 결정기(112te) 및 펄스 탐지기(112pl)는 크기 스펙트로그램을 처리한다. 개체(112pl 및 112te)는 펄스 추출기(112pe) 및 배경 추정기(112be)에 대한 입력으로서 사용되는 펄스 장소(들)를 결정하는 것을 가능하게 한다. 펄스 위치 파인더(112pl)는 피치 윤곽 정보를 이용할 수 있다. 선택적으로, 일부 개체, 예를 들어 개체(112be) 및 개체(112te)는 개체(112lo)에 의해 획득된 크기 스펙트로그램의 대수 표현을 사용할 수 있다.
실시예에 따르면, 펄스 코더(112pe)는 향상된 스펙트로그램을 처리하도록 구성될 수 있으며, 여기서 향상된 스펙트로그램은 오디오 신호 또는 펄스 부분(P)의 스펙트로그램으로부터 파생되어 펄스 부분(P)의 각 펄스 파형은 고역 통과 특성 및/또는 시작 주파수 이상으로 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함하며, 여기서 시작 주파수는 인근 펄스 파형 사이의 평균 거리의 역수에 비례한다. 평균 거리에 비례하는 시작 주파수는 펄스 위치를 찾은 후에 사용할 수 있다(참조: 112pl). 펄스 장소는 펄스 위치와 동일함에 유의한다.
아래에서 기능에 대해 설명한다. 평활화된 시간 엔벨로프는 짧은 대칭 FIR 필터(예: 4차 필터의 경우 FS = 48 kHz)를 사용하여 시간 엔벨로프의 저역 통과 필터링된 버전이다.
시간 엔벨로프의 정규화된 자기상관은 다음과 같이 계산된다.
여기서 는 평균 제거 후 시간 엔벨로프이다. 최대값()에 대한 정확한 지연은 정규화된 자기상관에서 피크를 형성하는 3점의 라그랑주 다항식을 사용하여 추정된다.
예상되는 평균 펄스 거리는 시간 엔벨로프의 정규화된 자기상관과 프레임의 평균 피치 래그로부터 추정될 수 있다.
여기서 고조파성이 낮은 프레임의 경우, 은 13으로 설정되며, 이는 6.5밀리초에 해당한다.
펄스의 위치는 피크가 주변보다 위에 있어야 한다는 요구 사항을 갖춘 평활화된 시간 엔벨로프의 로컬 피크이다. 주변은 적응형 길이를 갖는 단순 이동 평균 필터를 사용하여 시간 엔벨로프의 저역 통과 필터링 버전으로 정의된다. 필터의 길이는 예상되는 평균 펄스 거리()의 절반으로 설정된다. 정확한 펄스 위치()는 평활화된 시간 엔벨로프에서 피크를 형성하는 3점의 라그랑주 다항식을 사용하여 추정된다. 펄스 중심 위치()는 STFT 시간 인스턴스로 반올림된 정확한 위치이므로 펄스 중심 위치 사이의 거리는 0.5밀리초의 배수이다. 각 펄스는 시간 중심 위치에서 왼쪽으로 2번, 오른쪽으로 2번 확장되는 것으로 간주된다. 다른 횟수의 인스턴스도 사용될 수 있다.
20밀리초당 최대 8개의 펄스가 발견된다; 더 많은 펄스가 검출되면 더 작은 펄스는 무시된다. 발견된 펄스 수는 NPx로 표시된다. i 번째 펄스는 Pi로 표시된다. 평균 펄스 거리는 다음과 같이 정의된다.
향상된 스펙트로그램이라고도 하는 향상된 STFT가 펄스로만 구성되도록 펄스 위치를 기반으로 크기가 향상된다. 펄스의 배경은 왼쪽과 오른쪽 배경의 선형 보간으로 추정되며, 여기서 왼쪽과 오른쪽 배경은 시간 중심 위치에서 떨어진 3~5번째 인스턴스의 평균 이다. 배경은 112be의 로그 크기 영역에서 추정되고 112br의 선형 크기 영역에서 이를 빼서 제거된다. 향상된 STFT의 크기는 선형 스케일이다. 위상은 수정되지 않는다. 펄스에 속하지 않는 시간 인스턴스의 모든 크기는 0으로 설정된다.
펄스의 시작 주파수는 프레임의 (인근 펄스 파형 사이의)평균 펄스 거리의 역수에 비례하지만 750Hz에서 7250Hz 사이로 제한된다.
시작 주파수 (fPi)는 STFT 대역의 인덱스로 표현된다.
일반적으로 실시예에 따르면, 상기 간격은 펄스마다 변할 수 있어 평균이 형성될 수 있다. 펄스 사이의 평균 간격/평균 거리는 예를 들어 평균 펄스 거리()로서 추정될 수 있다. 이 평균 간격/평균 거리 추정은 설명된 대로 시작 주파수 (fPi)를 계산하는 데 사용된다.
연속 펄스의 시작 주파수 변경은 500Hz(1개의 STFT 대역)로 제한된다. 시작 주파수 아래의 향상된 STFT 크기는 112pe에서 0으로 설정된다.
각 펄스의 파형은 112pe의 향상된 STFT에서 얻어진다. 펄스 파형은 시간 중심을 기준으로 4밀리초 동안 0이 아니며 펄스 길이는 LWp = 0.004FS(펄스 파형의 샘플링 레이트는 입력 신호(FS)의 샘플링 레이트와 동일). 기호(XPi)는 i번째 펄스의 펄스 파형을 나타낸다.
각 펄스(Pi)는 중앙 위치(tPi) 및 펄스 파형(xPi)에 의해 고유하게 결정된다. 펄스 추출기(112pe)는 중심 위치(tPi) 및 펄스 파형(xPi)으로 구성된 펄스(Pi)를 출력한다. 펄스는 STFT 그리드에 정렬된다. 또는 펄스가 STFT 그리드에 정렬되지 않을 수 있으며/또는 정확한 펄스 위치()가 tPi 대신 펄스를 결정할 수 있다.
각 펄스에 대해 특징이 계산된다:
● 펄스 내 로컬 에너지의 백분율
● 펄스 내 프레임 에너지의 백분율
● 펄스 에너지가 로컬 에너지의 절반을 초과하는 대역의 백분율
● 각 펄스 쌍(현재 프레임의 펄스와 과거 프레임의 마지막 코딩된 펄스 중) 사이의 상관관계 와 거리
● 펄스의 정확한 위치에서의 피치 래그 - dPi
로컬 에너지는 오리지널 STFT의 펄스 중심 주변의 11개 시간 인스턴스에서 계산된다. 모든 에너지는 시작 주파수 이상에서만 계산된다.
펄스 쌍 사이의 거리()는 펄스 사이의 최대 상호 상관의 위치에서 구해진다. 상호 상관(cross-correlation)은 2밀리초 길이의 직사각형 창으로 윈도잉되고 펄스 표준으로 정규화된다(또한 2밀리초 직사각형 창으로 윈도잉). 펄스 상관은 정규화된 상호 상관의 최대값이다.
의 값은 0과 1 사이의 값이다.
피치와 펄스 거리 사이의 오차는 다음과 같이 계산된다.
펄스 거리()의 배수를 도입하면, 피치 추정의 오류가 고려된다. 피치 래그()의 배수를 도입하면 펄스 열의 불완전성으로 인한 누락된 펄스가 해결된다: 즉, 열의 펄스가 왜곡되거나 열에 속한 펄스의 검출을 방해하는 펄스 열에 속하지 않는 과도 현상이 있는 경우이다.
i 번째 및 j 번째 펄스가 펄스 열에 속할 확률(개체 113p 참조):
Figure pct00082
이미 코딩된 과거 펄스(개체 113p 참조)에만 관련된 펄스의 확률은 다음과 같이 정의된다.
Figure pct00083
펄스의 확률
Figure pct00084
(개체 113c 참조)은 아래를 반복적으로 발견된다.
1. 모든 펄스 확률은 1로 설정된다
2. 펄스의 시간 출현 순서에서, 여전히 유망한 각 펄스에 대해:
a. 현재 프레임의 펄스 열에 속하는 펄스의 확률이 계산된다:
b. 진정 펄스인 초기 확률은:
c. 많은 대역의 에너지가 로컬 에너지의 절반을 초과하는 펄스의 경우 확률이 증가된다:
d. 시간적 엔벨로프 상관관계와 펄스 내 로컬 에너지의 비율에 의해 확률은 제한된다:
e. 펄스 확률이 임계값 미만이면, 해당 확률은 0으로 설정되어 더 이상 고려되지 않는다:
로컬 에너지의 절반을 넘는 많은 대역의 에너지를 갖는 펄스에 대해 확률은 증가된다.
3. 단계 2는 현재 반복에서 0으로 설정된 적어도 하나의 가 있는 한 또는 모든 가 0으로 설정될 때까지 반복된다.
이 절차가 끝나면 1과 동일한 를 갖는 NPC 실제 펄스가 있다. 모든 실제 펄스만이 펄스 부분 P를 구성하며 CP로 코딩된다. 실제 NPC 펄스 중에서 최대 3개의 마지막 펄스가 다음 프레임에서 계산을 위해 메모리에 유지된다. 현재 프레임에 실제 펄스가 3개 미만인 경우, 이미 메모리에 있는 일부 펄스가 유지된다. 총 3개의 펄스가 메모리에 유지된다. 메모리에 유지되는 펄스 수에는 다른 제한이 있을 수 있다(예: 2 또는 4). 메모리에 3개의 펄스가 있는 후에 메모리는 새로 발견된 펄스로 대체되는 메모리에서 가장 오래된 펄스로 가득 차 있다. 즉, 메모리에 보관된 과거 펄스 의 수는 처리 시작 시 = 3까지 증가하여 이후에는 3으로 유지된다.
아래에서, 도 8과 관련하여 펄스 코딩(인코더 측, 도 1a의 개체(132) 참조)이 논의될 것이다.
도 8은 주 경로에 개체(132fs, 132c, 132pc)를 포함하는 펄스 코더(132)를 도시하며, 여기서 개체(132as)는 스펙트럼 평탄화를 수행하도록 구성된 개체(132fs)에 대한 입력으로서 펄스 스펙트럼 엔벨로프를 결정하고 제공하도록 구성된다. 주 경로(132fs, 132c, 132pc) 내에서, 펄스 P는 코딩되어 스펙트럼적으로 평탄화된 코딩된 펄스를 결정한다. 개체(132pc)에 의해 수행되는 코딩은 스펙트럼적으로 평탄화된 펄스에 대해 수행된다. 도 2a-c의 코딩된 펄스 CP는 코딩된 스펙트럼 평탄화된 펄스와 펄스 스펙트럼 엔벨로프으로 구성된다. 복수의 펄스의 코딩은 도 10과 관련하여 자세히 논의될 것이다.
펄스는 파라미터를 사용하여 코딩된다.
● 프레임 내 펄스 수
● 프레임 내 위치
● 펄스 시작 주파수
● 펄스 스펙트럼 엔벨로프
● 예측 이득 가 0이 아닌 경우:
○ 예측 소스의 인덱스
○ 예측 오프셋
● 이노베이션 이득
● 최대 4개의 임펄스로 구성된 이노베이션, 각 펄스는 위치와 부호로 코딩됨.
단일 코딩된 펄스는 다음 파라미터에 의해 결정된다.
● 펄스 시작 주파수
● 펄스 스펙트럼 엔벨로프
● 예측 이득 가 0이 아닌 경우:
○ 예측 소스의 인덱스
○ 예측 오프셋
● 이노베이션 이득
● 최대 4개의 임펄스로 구성된 이노베이션, 각 펄스는 위치와 부호로 코딩됨.
단일 코딩된 펄스를 결정하는 파라미터로부터 단일 코딩된 펄스를 나타내는 파형을 구성할 수 있다. 그러면 코딩된 펄스 파형은 단일 코딩된 펄스의 파라미터에 의해 결정된다고 말할 수도 있다.
펄스 수는 허프만 코딩된다.
제1 펄스 위치는 허프만 코딩을 사용하여 절대적으로 코딩된다. 다음 펄스의 경우 위치 델타 는 허프만 코딩된다. 프레임의 펄스 수와 제1 펄스 위치에 따라 서로 다른 허프만 코드가 있다.
제1 펄스 시작 주파수는 허프만 코딩을 사용하여 절대적으로 코딩된다. 다음 펄스의 시작 주파수는 차등적으로 코딩된다. 차이가 0이면 다음의 모든 차이도 0이므로 0이 아닌 차이의 수가 코딩된다. 모든 차이점은 동일한 부호를 가지므로 차이점의 부호는 프레임당 단일 비트로 코딩될 수 있다. 대부분의 경우 절대 차이는 최대 1이므로 최대 절대 차이가 1 이상이면 단일 비트가 코딩에 사용된다. 결국 최대 절대 차이가 1보다 큰 경우에만 0이 아닌 모든 절대 차이를 코딩해야 하며 이들은 단항 코딩된다.
예를 들어 STFT(도 8의 개체 132fs 참조)를 사용하여 수행된 스펙트럼 평탄화는 도 9a 및 9b에 도시되어 있으며, 여기서 도 9a는 도 9b의 평탄화된 버전과 비교하여 오리지널 펄스 파형(10pw)를 보여준다. 스펙트럼 평탄화는 대안적으로 필터에 의해, 예를 들어 시간 도메인에서 수행될 수 있다는 점에 유의한다. 추가적으로, 펄스가 펄스 파형에 의해 결정된다는 것이 도 9에 도시되어 있다, 예를 들어 오리지널 펄스는 오리지널 펄스 파형에 의해 결정되고 평탄화된 펄스는 평탄화된 펄스 파형에 의해 결정된다. 스펙트럼적으로 평탄화된 펄스 파형(도 9b)이 132c에서 스펙트럼적으로 평탄화된 STFT로 부터 얻어지는 것과 동일한 방식으로, 오리지널 펄스 파형(10pw)이 역 DFT, 윈도우 및 오버랩 앤 애드를 통해 증강된 STFT(10p')로부터 얻어질 수 있다.
프레임의 모든 펄스는 8개 대역의 예를 구성하는 동일한 스펙트럼 엔벨로프(개체 132as 참조)을 사용할 수 있다. 대역 경계 주파수는 1kHz, 1.5kHz, 2.5kHz, 3.5kHz, 4.5kHz, 6kHz, 8.5kHz, 11.5kHz, 16kHz이다. 16kHz 이상의 스펙트럼 콘텐츠는 명시적으로 코딩되지 않는다. 다른 예에서는 다른 밴드 경계가 사용될 수 있다.
펄스의 각 시간 인스턴스의 스펙트럼 엔벨로프는 엔벨로프 대역 내의 크기를 합산하여 얻고, 펄스는 5개의 시간 인스턴스로 구성된다. 엔벨로프는 프레임의 모든 펄스에 걸쳐 평균화된다. 시간-주파수 평면에서 펄스 사이의 지점은 고려되지 않다.
값은 제4 루트를 사용하여 압축되고 엔벨로프는 벡터 양자화된다. 벡터 양자화기는 2개의 스테이지를 가지며 두번째 스테이지는 2개의 절반으로 나누어진다.
을 갖는 프레임에 대해 및 NPC 및 fPi의 값에 대해 상이한 코드북이 존재한다. 상이한 코드북은 상이한 수의 비트를 필요로 한다.
양자화된 엔벨로프는 선형 보간을 사용하여 평활화될 수 있다. 펄스의 스펙트로그램은 평활화된 엔벨로프를 사용하여 평탄화된다(개체 132fs 참조). 평탄화는 (개체(132as)로부터 수신된) 엔벨로프로 크기를 나눔으로써 달성되며, 이는 대수 크기 영역에서의 빼기와 동일하다. 위상 값은 변경되지 않는다. 대안적으로, 필터 프로세서는 시간 도메인에서 펄스 파형을 필터링함으로써 펄스 파형을 스펙트럼적으로 평탄화하도록 구성될 수 있다.
스펙트럼적으로 평탄화된 펄스의 파형 은 132c에서 역 DFT, 윈도잉 및 오버랩 앤 애드를 통해 STFT로부터 획득된다.
도 10은 복수의 스펙트럼 평탄화된 펄스 파형 중 단일의 스펙트럼 평탄화된 펄스 파형을 코딩하기 위한 개체(132pc)를 도시한다. 각각의 단일 코딩된 펄스 파형은 코딩된 펄스 신호로 출력된다. 다른 관점에서 보면, 도 10의 단일 펄스를 코딩하기 위한 개체(132pc)는 도 8에 도시된 펄스 파형을 코딩하기 위해 구성된 개체(132pc)와 동일하지만, 여러 펄스 파형을 코딩하기 위해 여러 번 사용되었다.
도 10의 개체(132pc)는 일종의 피드백 루프로서 배열된 펄스 코더(132spc), 평탄화된 펄스 파형(132cpw)을 위한 구성자(constructor) 및 메모리(132m)를 포함한다. 구성자(132cpw)는 220cpw와 동일한 기능을 가지며 메모리(132m)는 도 14의 229와 동일한 기능을 갖는다. 각각의 단일/현재 펄스는 과거 펄스를 고려하여 평탄화된 펄스 파형을 기반으로 개체(132spc)에 의해 코딩된다. 과거 펄스에 대한 정보는 메모리(132m)에 의해 제공된다. 132pc로 코딩된 과거 펄스는 펄스 파형 구성자(132cpw)와 메모리(132m)를 통해 공급된다. 이를 통해 예측이 가능해진다. 이러한 예측 접근법을 사용한 결과는 도 11에 나와 있다. 여기서 도 11a는 도 11b의 예측 및 결과 예측 잔차 신호와 함께 평탄화된 오리지널을 나타낸다.
실시예에 따르면, 이전 프레임으로부터의 펄스와 현재 프레임으로부터의 이미 양자화된 펄스 중에서 가장 유사한 이전 양자화된 펄스가 발견된다. 위에서 정의한 상관관계 는 가장 유사한 펄스를 선택하는 데 사용된다. 상관관계의 차이가 0.05 미만이면 더 가까운 펄스가 선택된다. 가장 유사한 이전 펄스가 예측 소스이며 현재 코딩된 펄스와 관련된 해당 인덱스 가 펄스 코딩에 사용된다. 최대 4개의 상대 예측 소스 인덱스 를 그룹화하고 허프만 코딩한다. 그룹화 및 허프만 코드는 또는 여부에 따라 달라진다.
최대 상관관계에 대한 오프셋은 펄스 예측 오프셋 이다. 이는 추정값에 대해 절대적으로, 차등적으로 또는 상대적으로 코딩되며, 여기서 추정치는 펄스 의 정확한 위치에서 피치 래그로부터 계산된다. 각 코딩 유형에 필요한 비트 수가 계산되고 최소 비트를 가진 유형이 선택된다.
SNR을 최대화하는 이득 은 예측을 확장하는 데 사용된다. 예측 이득은 3~4비트로 불균일하게 양자화된다. 예측 잔차의 에너지가 펄스 에너지보다 5% 이상 작지 않으면 예측이 사용되지 않고 은 0으로 설정된다.
예측 잔차는 최대 4개의 임펄스를 사용하여 양자화된다. 다른 예에서는 다른 최대 임펄스 수가 사용될 수 있다. 임펄스로 구성된 양자화된 잔차를 이노베이션 이라고 한다. 이는 도 12에 설명되어 있다. 비트를 절약하기 위해 임펄스 수는 이 프레임의 펄스에서 예측된 각 펄스에 대해 1씩 줄어든다. 즉, 예측 이득이 0이거나 예측 소스가 이전 프레임의 펄스인 경우, 4개의 임펄스가 양자화되고, 그렇지 않으면 예측 소스에 비해 임펄스 수가 감소한다.
도 12는 도 10의 프로세스 블록(132spc)으로 사용될 처리 경로를 도시한다. 프로세스 경로는 코딩된 펄스를 결정하는 것을 가능하게 하고 3개의 개체(132bp, 132qi, 132ce)를 포함할 수 있다.
최적의 예측을 찾기 위한 제1 개체(132bp)는 과거 펄스와 펄스 파형을 사용하여 iSOURCE, Shift, GP' 및 예측 잔차를 결정한다. 양자화 임펄스 개체(132gi)는 예측 잔차를 양자화하여 GI'와 임펄스를 출력한다. 개체(132ce)는 보정 인자를 계산하고 적용하도록 구성된다. 펄스 파형과 함께 이 모든 정보는 에너지를 보정하기 위한 개체(132ce)에 의해 수신되어 코딩된 임펄스를 출력한다. 실시예에 따르면 다음의 알고리즘이 사용될 수 있다:
임펄스를 찾고 코딩하기 위해 다음 알고리즘이 사용된다.
1. 절대 펄스 파형 는 전파 정류를 사용하여 구성된다:
2. 각 위치의 임펄스 수를 갖는 벡터는 0으로 초기화된다:
3. 에서 최대값의 위치를 찾는다:
4. 임펄스 수를 갖는 벡터는 발견된 최대값 의 위치에서 하나씩 증가한다:
5. 에서의 최대값이 감소한다:
6. 필요한 임펄스 수를 찾을 때까지 3~5단계를 반복하며, 여기서 임펄스 수는 와 같다.
임펄스의 위치가 동일할 수 있다는 점에 유의한다. 임펄스의 위치는 펄스 중심으로부터의 거리에 따라 정렬된다. 제1 임펄스의 위치는 절대적으로 코드화되어 있다. 다음 임펄스의 위치는 이전 임펄스의 위치에 따른 확률로 차등적으로 코딩된다. 임펄스 위치를 위해 허프만 코딩(Huffman Coding)이 사용된다. 각 임펄스의 부호도 코딩된다. 여러 임펄스가 동일한 위치를 공유하는 경우 부호는 한 번만 코딩된다.
SNR을 최대화하는 이득 은 임펄스로 구성된 이노베이션 을 확장하는 데 사용된다. 이노베이션 이득은 펄스 수 에 따라 2~4비트로 불균일하게 양자화된다.
평탄화된 펄스 파형 의 양자화에 대한 제1 추정은 다음과 같다:
여기서 는 양자화를 나타낸다.
SNR을 최대화하여 이득을 찾기 때문에, 의 에너지는 오리지널 목표의 에너지보다 훨씬 낮을 수 있다. 에너지 감소를 보상하기 위해 보정 인자가 계산된다:
최종 이득은 다음과 같다:
예측을 위한 메모리는 양자화된 평탄화된 펄스 파형 을 사용하여 업데이트된다.
의 코딩이 끝나면 다음 프레임의 예측을 위해 메모리에 보관된다.
잔차 신호(15r)의 결과적인 4개의 스케일링된 임펄스(15i)가 도 13에 도시되어 있다. 상세하게 스케일링된 임펄스(15i)는 즉, 이득 의 양자화된 버전으로 스케일링된 임펄스로 구성된 이노베이션 을 나타낸다.
아래에서는 도 14를 참조하여 펄스를 재구성하는 방법에 대해 설명한다.
도 14는 단일 펄스 파형을 재구성하기 위한 개체(220)를 도시한다. 단일 펄스 파형을 재구성하기 위해 아래에 설명된 접근 방식은 여러 펄스 파형에 대해 여러 번 실행된다. 다중 펄스 파형은 다중 펄스를 포함하는 파형을 재구성하기 위해 도 15의 개체(22')에 의해 사용된다. 다른 관점에서 보면, 개체(220)는 복수의 코딩된 펄스 및 복수의 펄스 스펙트럼 엔벨로프에 의해 구성된 신호를 처리하고, 각각의 코딩된 펄스 및 관련 펄스 스펙트럼 엔벨로프에 대해 하나의 재구성된 펄스 파형을 출력하여, 개체(220)의 출력에서 복수의 재구성된 펄스 파형으로 구성된 신호가 되도록 할 수 있다.
개체(220)는 복수의 하위 개체, 예를 들어 스펙트럼적으로 평탄화된 펄스 파형을 구성하기 위한 개체(220cpw), 스펙트럼적으로 평탄화된 펄스 파형의 펄스 스펙트로그램(위상 및 크기 스펙트로그램)을 생성하기 위한 개체(224) 및 펄스 크기 스펙트로그램을 스펙트럼적으로 형성하기 위한 개체(226)를 포함한다. 이 개체(226)는 크기 스펙트로그램과 펄스 스펙트럼 엔벨로프를 사용한다. 개체(226)의 출력은 펄스 스펙트로그램을 파형으로 변환하기 위한 참조 번호 228로 표시된 변환기에 공급된다. 이 개체(228)는 스펙트럼적으로 형성된 펄스 크기 스펙트로그램뿐만 아니라 위상 스펙트로그램도 수신하여 펄스 파형을 재구성한다. 개체 220cpw(스펙트럼적으로 평탄화된 펄스 파형을 구성하기 위해 구성됨)가 그 입력에서 코딩된 펄스를 설명하는 신호를 수신함에 유의한다. 구성자(220cpw)는 업데이트 메모리(229)를 포함하는 일종의 피드백 루프로 구성된다. 이를 통해 과거 펄스를 고려하여 펄스 파형을 구성할 수 있다. 여기에서는 이전에 구성된 펄스 파형이 피드백되어 개체(220cpw)가 다음 펄스 파형을 구성하는 데 과거 펄스를 사용할 수 있다. 아래에서, 이 펄스 재구성기(220)의 기능이 논의될 것이다. 참고로, 디코더 측에는 양자화된 평탄화 펄스 파형(디코딩된 평탄화 펄스 파형 또는 코딩된 평탄화 펄스 파형이라고도 함)만 존재하고 디코더 측에는 오리지널 펄스 파형이 없기 때문에, 디코더 측에서 양자화된 평탄화 펄스 파형의 이름을 지정하기 위해 평탄화 펄스 파형을 사용하고 양자화된 펄스 파형(디코딩된 펄스 파형 또는 코드화된 펄스 파형 또는 디코딩된 펄스 파형이라고도 함)을 명명하기 위해 펄스 파형을 사용한다.
디코더 측(220)에서 펄스를 재구성하기 위해, 이득(), 임펄스/이노베이션, 예측 소스() 및 오프셋()을 디코딩한 후 양자화된 평탄화 펄스 파형이 구성된다(개체 220cpw 참조). 예측을 위한 메모리(229)는 (개체(132m)의 인코더에서와 동일한 방식으로) 업데이트된다. 그런 다음 각 펄스 파형에 대해 STFT(개체(224) 참조)가 획득된다. 예를 들어, 펄스 추출에서와 같이 75% 중첩되는 동일한 2밀리초 길이의 제곱 사인 창이 사용된다. STFT의 크기는 디코딩 및 평활화된 스펙트럼 엔벨로프를 사용하여 재구성되고 펄스 시작 주파수 아래에서 0으로 설정된다. STFT를 형성하기 위해 엔벨로프와 크기의 간단한 곱셈이 사용될 수 있다(개체 226 참조). 위상은 수정되지 않는다. 펄스의 재구성된 파형은 역 DFT, 윈도잉, 오버랩 앤 애드를 통해 STFT로부터 획득된다(개체 228 참조). 또는 엔벨로프는 FIR 또는 다른 필터를 통해 형성될 수 있으며 각 펄스 파형은 STFT를 피하면서 펄스 시작 주파수 로 설정된 고역 통과 필터 차단을 사용하여 고역 통과 필터링될 수 있다. 펄스 시작 주파수 이하의 STFT를 제로화하고 펄스 시작 주파수 로 설정된 고역 필터 차단을 사용한 고역 필터링은 고역 통과 특성 및/또는 시작 주파수 이상에서 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 구성하는 각 펄스 파형에 동일한 효과를 갖는다.
도 15는 파형 을 구성하기 위해 펄스의 복수의 재구성된 파형뿐만 아니라 펄스의 위치를 수신하는 개체(228)에 후속하는 개체(22')를 도시한다(도 2a, 2c 참조). 이 개체(22')는 예를 들어 도 1a, 2a 또는 2c의 파형 구성자(22) 내의 마지막 개체로서 사용된다.
재구성된 펄스 파형은 디코딩된 위치 를 기반으로 연결되어 도 15의 개체(22')의 펄스 사이에 0을 삽입한다. 연결된 파형()은 디코딩된 신호에 추가된다(도 2a 또는 도 2c의 23 참조). 도 15의 개체(22')와 도 6의 114는 동일한 기능을 갖는다.
재구성된 펄스 파형은 디코딩된 위치 를 기준으로 연결되어 재구성된 펄스(재구성된 펄스 파형) 사이에 0을 삽입한다. 어떤 경우에는 재구성된 펄스 파형이 연결된 파형()에서 겹칠 수 있으며 이 경우 펄스 파형 사이에 0이 삽입되지 않는다. 연결된 파형 ()이 디코딩된 신호에 추가된다. 동일한 방식으로 오리지널 펄스 파형 을 연결하여 MDCT 기반 코덱의 입력에서 감산된다.
재구성된 펄스 파형은 오리지널 펄스를 완벽하게 표현하지 않는다. 입력에서 재구성된 펄스 파형을 제거하면 신호의 일부 과도 부분이 남게 된다. MDCT 코덱으로는 과도 신호를 제대로 표현할 수 없기 때문에 전체 프레임에 걸쳐 잡음이 확산되고 펄스를 별도로 코딩하는 이점이 줄어든다. 이러한 이유로 오리지널 펄스가 입력에서 제거된다.
실시예에 따르면 HF 조성 플래그 는 다음과 같이 정의될 수 있다:
정규화된 상관관계 는 현재 창의 샘플과 (또는 ) 지연이 있는 지연된 버전 사이의 에서 계산되는데, 여기서 는 펄스 잔차 신호 의 고역 통과 필터링된 버전이다. 예를 들어, 약 6kHz의 크로스오버 주파수를 갖는 고역 통과 필터가 사용될 수 있다.
특정 주파수를 넘는 각각의 MDCT 주파수 빈에 대해, [7] 의 5.3.3.2.5에서와 같이 주파수 빈이 음조(tonal)인지 또는 잡음과 같은지 여부가 결정된다. 음조 주파수 빈의 총 개수 는 현재 프레임에서 계산되며 추가적으로 평활화된 토널 주파수의 총 개수는 과 같이 계산된다.
TNS가 비활성 상태이고 피치 윤곽이 존재하고 또한 고주파수에 조성이 존재하는 경우 HF 조성 플래그 는 1로 설정되며, 여기서 또는 인 경우 조성이 고주파수에 존재한다.
도 16과 관련하여 iBPC 접근 방식이 논의된다. 이제 최적의 양자화 단계 크기 를 얻는 과정을 설명한다. 프로세스는 블록 iBPC의 필수적인 부분일 수 있다. 도 16의 iBPC는 를 기반으로 를 출력한다. 다른 장치에서는 은 입력으로 사용될 수 있다(자세한 내용은 도 3 참조).
도 16은 스텝 크기를 추정하기 위한 접근 방식의 흐름도를 도시한다. 프로세스는 i = 0에서 시작되며, 양자화, 적응형 대역 제로화, 대역별 파라미터와 스펙트럼의 공통 결정 및 스펙트럼이 코딩 가능한지 여부의 결정과 같은 4 단계가 수행된다. 이들 단계는 참조 번호 301 내지 304로 표시된다. 스펙트럼이 코딩 가능한 경우 스텝 크기는 감소된다(단계 307 참조). 다음 반복 ++i가 수행된다(참조 번호 308 참조). 이는 i가 최대 반복 횟수와 동일하지 않은 한 수행된다(결정 단계 309 참조). 최대 반복이 달성된 경우 스텝 크기가 출력된다. 최대 반복이 달성되지 않은 경우 다음 반복이 수행된다.
스펙트럼이 코딩 가능하지 않은 경우, 검증 단계(스펙트럼은 이제 코딩 가능)(313)와 함께 단계 311 및 312를 갖는 프로세스가 적용된다. 그 후 다음 반복을 시작하기 전에(단계 308 참조) 스텝 크기가 증가된다(314 참조).
스펙트럼 엔벨로프가 지각적으로 평탄화되는 스펙트럼 은 전체 코딩된 대역폭에 걸쳐 단일 양자화 단계 크기 를 사용하여 스칼라 양자화되고 엔트로피는 예를 들어 코딩된 spect를 생성하는 컨텍스트 기반 산술 코더를 사용하여 코딩된다. 코딩된 스펙트럼 대역폭은 폭이 증가하는 하위 대역 으로 나뉜다.
전역 이득이라고도 칭하는 최적의 양자화 단계 크기 는 설명된 대로 반복적으로 찾아진다.
각 반복에서 스펙트럼 을 생성하기 위해 블록 에서 양자화된다. "적응 대역 제로화" 블록에서 제로 양자화 라인의 에너지와 오리지널 에너지의 비율이 하위 대역 에서 계산되고, 에너지 비율이 적응형 임계값 보다 높으면 전체 하위 대역은 0으로 설정된다. 임계값 은 조성 플래그 및 플래그 를 기반으로 계산되며, 여기서 플래그 는 하위 대역이 이전 프레임에서 0으로 설정되었는지 여부를 나타낸다.
0으로 설정된 각 하위 대역에 대해 플래그 는 1로 설정된다. 현재 프레임 처리가 끝나면 에 복사된다. 대안적으로, 하나 이상의 조성 플래그가 있을 수 있고, 복수의 조성 플래그로부터 각 하위 대역의 조성으로의 매핑이 있을 수 있으며, 이는 각 하위 대역에 대한 조성 값을 생성한다. 예를 들어 값 은 {0.25, 0.5, 0.75} 값 세트로부터의 값을 가질 수 있다. 대안적으로, 제로 양자화된 라인의 에너지와 오리지널 에너지 및 콘텐츠 에 기초하여 의 전체 하위 대역 i를 0으로 설정할지 여부를 결정하기 위해 다른 결정이 사용될 수 있다.
적응형 대역 제로화가 사용되는 주파수 범위는, 적응형 대역 제로화가 최하위 하위 대역이 제로가 될때까지 특정 주파수 (예 : 700Hz)까지 하방 연장하는, 특정 주파수 (예: 7000Hz) 이상으로 제한될 수 있다.
이상의 완벽히 0인 의 하위 대역의 개별 제로 필링 레벨(개별 zfl) - 여기서 는 예를 들어 3000Hz - 은 명시적으로 코딩되고, 아래의 모든 제로 하위 대역과 이상의 모든 제로 하위 대역에 대한 추가적으로 하나의 제로 필링 레벨 (zflsmall)이 코딩된다. 적응형 대역 제로화에 의해 명시적으로 0으로 설정되지 않더라도 블록 양자화의 양자화로 인해 의 하위 대역은 완전히 0이 될 수 있다. 제로 필링 레벨(zfl은 개별 zfl 및 zflsmall로 구성됨)과 의 스펙트럼 라인의 엔트로피 코딩에 필요한 비트 수가 계산된다. 또한 사용 가능한 비트 예산으로 명시적으로 코딩할 수 있는 스펙트럼 라인(NQ)의 수를 찾는다. NQ는 코딩된 spect의 필수 부분이며 디코더에서 스펙트럼 라인 코딩에 사용되는 비트 수를 알아내는 데 사용된다; 스펙트럼 라인을 코딩하기 위한 비트 수를 찾는 다른 방법(예: 특수 EOF 문자 사용)이 사용될 수 있다. 0이 아닌 모든 라인을 코딩하는 데 비트가 충분하지 않은 한 NQ 위 의 XQ1에서의 라인은 0으로 설정되고 필요한 비트 수가 다시 계산된다.
스펙트럼 라인 코딩에 필요한 비트 계산을 위해, 맨 아래부터 시작하는 코딩 라인에 필요한 비트가 계산된다. 이 계산은 단 한번만 필요한데, 이는 스펙트럼 라인을 코딩하는 데 필요한 비트의 재계산이 각각의 에 대한 n 라인을 코딩하는데 필요한 비트의 수를 저장함에 의해 효율적으로 되기 때문이다.
각 반복에서 필요한 비트 수가 사용 가능한 비트를 초과하면 전역 이득 은 감소하고(307), 그렇지 않으면 은 증가한다(314). 각 반복에서 전역 이득 변경 속도가 조정된다. EVS[20]의 속도-왜곡 루프에서와 동일한 변경 속도의 적응을 사용하여 전역 이득을 반복적으로 수정할 수 있다. 반복 프로세스가 끝나면 최적의 양자화 스텝 크기 는 예를 들어 EVS의 기준을 사용하여 스펙트럼의 최적 코딩을 생성하는 과 동일하며, 는 해당 와 같다.
실제 코딩 대신 코딩에 필요한 최대 비트 수에 대한 추정이 사용될 수 있다. 반복 프로세스의 출력은 최적의 양자화 스텝 크기 이며; 출력에는 코딩된 spect 및 코딩된 잡음 필링 레벨(zfl)이 포함될 수도 있는데, 이는 일반적으로 이미 사용 가능하므로 이를 다시 얻는데 있어서의 반복적인 처리를 피하기 위한 것이다.
아래에서는 제로 필링에 대해 자세히 설명한다.
실시예에 따르면, 이제 소스 스펙트럼을 선택하는 방법의 예부터 시작하여 "제로 필링" 블록을 설명한다.
제로 필링을 생성하기 위해 다음 파라미터가 적응적으로 발견된다.
● 최적 길이 복사 거리
● 최소 복사 거리
● 최소 복사 소스 시작
● 복사 거리 시프트
최적 복사 거리 는 소스 스펙트럼이 이미 획득된 XCT의 하위 부분인 경우 최적의 거리를 결정한다. 의 값은 예를 들면 5600Hz에 해당하는 인덱스로 설정된 최소값 과 예를 들면 6225Hz에 해당하는 인덱스로 설정된 최대값 사이이다. 제약 조건 과 함께 다른 값을 사용할 수도 있다.
고조파 사이의 거리는 평균 피치 래그 로부터 계산되는데, 여기서 평균 피치 래그 는 비트스트림에서 디코딩되거나 비트스트림의 파라미터에서 추론된다(예: 피치 카운터). 대안적으로 는 XDT 또는 그의 파생물(derivative)를 분석하여 얻을 수 있다 (예: XDT를 사용하여 얻은 시간 도메인 신호로부터). 고조파 사이의 거리는 반드시 정수일 필요는 없다. 이면 은 0으로 설정되고, 여기서 0은 의미 있는 피치 래그가 없음을 알리는 방식이다.
의 값은 최소 최적 복사 거리 보다 큰 고조파 거리 의 최소 배수이다:
이 0이면, 은 사용되지 않는다.
시작 TNS 스펙트럼 선과 TNS 차수는 로 표시되는데, 예를 들어 1000Hz에 해당하는 인덱스일 수 있다.
프레임에서 TNS가 비활성화된 경우, 로 설정된다. TNS가 활성화된 경우. 로 설정되고, HF가 음조인 경우(예: 가 1인 경우), 에 의해 추가로 하한이 설정된다.
크기 스펙트럼 ZC은 디코딩된 spect XDT로부터 추정된다:
추정된 크기 스펙트럼의 정규화된 상관관계는 다음과 같이 계산된다:
상관관계의 길이 LC는 사용 가능한 스펙트럼이 허용하는 최대값으로 설정되며, 선택적으로 일부 값(예: 5000Hz에 해당하는 길이)으로 제한된다.
기본적으로는 우리는 복사 소스 와 대상 사이의 상관관계를 최대화 하는 것을 찾고 있으며, 여기서 이다.
우리는 중에서 를 선택하는데, 여기서 는 제1 피크를 가지며 의 평균 이상이다, 즉: 이며, 모든 에 대해 은 성취되지 않는다. 다른 구현에서는 우리는 에서 까지의 범위에서 절대 최대값이 되도록 을 선택할 수 있다. 최적의 길이 복사 거리가 예상되는 경우에서 까지의 범위에서 에 대해 다른 값이 선택될 수 있다.
TNS가 활성화되어 있으면 을 선택할 수 있다.
TNS가 비활성인 경우 이며, 여기서 은 정규화된 상관관계이며 는 이전 프레임의 최적 거리이다. 플래그 는 이전 프레임에서 조성이 변경되었는지 여부를 나타낸다. 이 함수 또는 을 반환한다. 에서 어떤 값을 반환지에 대한 결정은 주로 값 을 주로 기초로 한다. 플래그 가 참이고 또는 가 유효한 경우, 는 무시된다. 의 값은 드문 경우에 사용된다.
예를 들어 은 이하 결정으로 정의할 수 있다:
가 적어도 에 대해 보다 큰 경우 및 적어도 에 대해 보다 큰 경우에 가 반환되며, 여기서 은 각각이 에 비례하는 적응형 임계값이다. 추가적으로 가 일부 절대 임계값(예: 0.5)을 초과하도록 요청할 수 있다.
● 그렇지 않으면 보다 적어도 임계값, 예를 들어 0.2에 대해 더 큰 경우에 가 반환된다.
● 그렇지 않으면 가 설정되고 이면 가 반환된다.
● 그렇지 않으면 가 설정되고 의 값이 유효한 경우, 즉 의미 있는 피치 래그가 있는 경우 가 반환된다.
● 그렇지 않으면 가 작고, 예를 들어 0.1 미만이고, 의 값이 유효한 경우, 즉 의미 있는 피치 래그가 있고 이전 프레임으로부터의 피치 래그 변화가 작은 경우 가 반환된다.
● 그렇지 않으면 가 반환된다.
TNS가 활성화되어 있거나 이고 조성이 낮은 경우 플래그 는 true로 설정되며, 예를 들어 가 false이거나 가 0인 경우 조성이 낮다. 는 1보다 작은 값, 예를 들면 0.7이다. 로 설정된 값은 다음 프레임에서 사용된다.
이전 프레임과 현재 프레임 사이의 의 백분율 변화도 계산된다.
최적의 복사 거리 과 동일하고 (는 미리 정의된 임계값)가 아닌 한 복사 거리 이동 로 설정되며, 이 경우 은 이전 프레임과 동일한 값으로 설정되어 연속 프레임에 걸쳐 일정하게 만든다. 은 이전 프레임과 현재 프레임 사이의 의 변화(예: 백분율 변화)를 측정한 것이다. 의 지각적 변화인 경우 은 예를 들면 0.1로 설정될 수 있다. TNS가 프레임에서 활성화된 경우 은 사용되지 않는다.
예를 들어 최소 복사 소스 시작 은 TNS가 활성화된 경우 로 설정될 수 있고, 선택적으로 HF가 음조(tonal)인 경우 에 의해 하한으로 설정될 수 있으며, 예를 들어 TNS가 현재 프레임에서 활성화되지 않은 경우 로 설정될 수 있다.
예를 들어 최소 복사 거리 는 TNS가 비활성화된 경우 로 설정된다. TNS가 활성화된 경우 예를 들어 HF가 음조가 아닌 경우 는 예를 들어 로 설정되고, 또는 예를 들어 HF가 음조인 경우 로 설정된다.
예를 들어 초기 조건으로 을 사용하면 랜덤 노이즈 스펙트럼(XN)이 와 같이 구성되고, 여기서 함수 short는 결과를 16비트로 자른다. 다른 임의의 잡음 생성기와 초기 조건을 사용할 수 있다. 그런 다음 랜덤 노이즈 스펙트럼(XN)은 XD에서 0이 아닌 값의 위치에서 0으로 설정되고 선택적으로 0으로 설정된 위치 사이의 XN의 부분은 윈도우처리하여 XD에서 0이 아닌 값의 위치 근처의 랜덤 노이즈를 줄인다.
XCT에서 에서 시작하는 길이 의 각 하위 대역에 대해, 에 대한 소스 스펙트럼이 발견된다. 하위 대역 분할은 zfl을 코딩하는 데 사용된 하위 대역 분할과 동일할 수 있지만, 더 높거나 낮을 수도 있다.
예를 들어, TNS가 활성화되지 않고 HF가 음조가 아닌 경우, 랜덤 노이즈 스펙트럼 XN이 모든 하위 대역의 소스 스펙트럼으로 사용된다. 또 다른 예에서는 XN은 다른 소스가 비어 있는 하위 대역 또는 최소 복사 대상 아래에서 시작하는 일부 하위 대역에 대한 소스 스펙트럼으로 사용된다: .
또 다른 예에서 TNS가 활성 상태가 아니고 HF가 음조인 경우, 예측 스펙트럼(XNP)은 이하에서 시작하고 여기서 EB가 이웃하는 하위 대역에서의 EB 보다 적어도 12dB 높은 하위 대역에 대한 소스로 사용될 수 있으며, 여기서 예측 스펙트럼은 과거 디코딩된 스펙트럼으로부터 획득되거나 과거 디코딩된 스펙트럼으로부터 획득된 신호(예를 들어, 디코딩된 TD 신호로부터)로부터 획득된다.
위의 예에 포함되지 않은 경우에는, 거리(dC)를 구하여 또는 의 혼합이 에서 시작하는 에 대한 소스 스펙트럼으로서 사용될 수 있는데, 여기서 이다. 일례로 TNS가 활성화되어 있지만 더 높은 주파수(예를 들어 4500Hz)에서만 시작하고 HF가 음조가 아닌 경우, 이라면 의 혼합이 소스 스펙트럼으로 사용될 수 있으며; 또 다른 예에서는 단지 또는 0으로 구성된 스펙트럼이 소스로 사용될 수 있다. 이면, dC로 설정할 수 있다. TNS가 활성화된 경우 양의 정수 n이 발견될 수 있으므로 이고 dC로, 예를 들어 가장 작은 정수 n으로 설정될 수 있다. TNS가 활성화되지 않은 경우 다른 양의 정수를 찾을 수 있으므로 및 dC로 예를 들어 가장 작은 정수 n로 설정된다.
다른 예에서 시작 주파수 까지의 가장 낮은 하위 대역 은 0으로 설정될 수 있으며, 이는 가장 낮은 하위 대역 XCT가 XDT의 복사본일 수 있음을 의미한다.
블록 "Zero Filling"의 EB를 기반으로 소스 스펙트럼에 가중치를 부여하는 예가 제공된다.
EB를 평활화하는 예에서, EBi는 zfl로부터 얻어질 수 있으며, 각각의 EBi는 EB의 하위 대역 i에 대응한다. EBi는 다음으로 평활화된다: .
스케일링 계수 는 소스 스펙트럼에 따라 각 하위 대역 Bi에 대해 계산된다:
또한 스케일링은 다음과 같이 계산된 계수 로 제한된다:
소스 스펙트럼 대역 은 두 절반으로 분할되고 각 절반은 스케일링된다, 제1 절반은 이고 제2 절반은 이다.
위 설명에서 를 사용하여 파생되고, 를 사용하여 파생되고, 를 사용하여 파생된다. 을 사용하여 파생된다. 추가 실시예에 따르면, EB을 사용하여 파생된다. 예를 들어 소스 스펙트럼의 스케일링은 선택적 추가 디코더인 최적의 양자화 단계를 사용하여 파생된다.
스케일링된 소스 스펙트럼 대역 , 여기서 스케일링된 소스 스펙트럼 대역은 , 이 에 추가되어 를 얻는다.
이제 제로 양자화된 라인(iBPC의 일부로서)의 에너지를 양자화하는 예가 제공된다.
0이 아닌 양자화 라인을 0으로 설정하여 XQZ을 얻는다. 예를 들어 XN에서와 같은 방식으로, XQ에서 0이 아닌 양자화된 라인의 위치에 있는 값은 0으로 설정되고 0이 아닌 양자화된 라인 사이의 0 부분은 XMR에서 윈도우화되어, XQZ를 생성한다.
제로 라인에 대한 밴드 i 당 에너지()는 다음과 같이 계산된다.
는 예를 들어 단계 크기 1/8를 사용하여 양자화되었으며 6/8로 제한된다. 개별 는 fEZ 위의 하위 대역에 대해서만 개별(zfl)로 코딩되며, 여기서 fEZ은 예를 들어 3000Hz이며, 이는 완전히 0으로 양자화된다. 추가로 하나의 에너지 레벨 은 fEZ아래의 0 하위 대역과 fEZ 위의 0 하위 대역으로부터 모든 의 평균으로 계산되며, 여기서 는 0으로 양자화되고, 0 하위 대역은 완전한 하위 대역이 0으로 양자화됨을 의미한다. 낮은 레벨 은 단계 크기 1/16로 양자화 되고. 3/16로 제한된다. 0이 아닌 하위 대역에 있는 개별 0 라인의 에너지는 추정되며 명시적으로 코딩되지 않는다.
의 값은 zfl로부터 디코더 측에서 획득되고 제로 하위 대역에 대한 의 값은 의 양자화된 값에 대응된다. 따라서 로 구성된 EB의 값은 최적의 양자화 단계 에 따라 코딩될 수 있다. 이는 파라메트릭 코더(156pc)가 에 대한 입력으로서 수신하는 도 3에 예시되어 있다. 다른 예에서는 최적의 양자화 단계 와 관계없이 파라메트릭 코더에 특정한 다른 양자화 단계 크기가 사용될 수 있다. 또 다른 예에서는 불균일 스칼라 양자화기 또는 벡터 양자화기가 zfl을 코딩하는 데 사용될 수 있다. 그러나 제시된 예에서는 최적의 양자화 단계 에 대한 0으로의 XMR의 양자화 의존성 때문에 최적의 양자화 단계 를 사용하는 것이 유리하다.
롱텀 예측(LTP)
이제 블록 LTP에 대해 설명한다.
시간 도메인 신호(yC)는 LTP에 대한 입력으로 사용되며, 여기서 yC는 IMDCT의 출력으로서 XC로부터 얻어진다. IMDCT는 역 MDCT, 윈도우잉 및 오버랩 앤 애드로 구성된다. 현재 프레임에서의 yC의 좌측 오버랩 부분 및 논오버래핑 부분은 LTP 버퍼에 저장된다.
LTP 버퍼는 MDCT의 전체 윈도우에 대한 예측 신호를 생성하기 위해 LTP의 다음 프레임에서 사용된다. 이는 도 17a에 설명되어 있다.
현재 윈도우의 오른쪽 오버랩에 대해 더 짧은 오버랩(예: 하프 오버랩)이 사용되는 경우 논오버래핑 부분인 "overlap diff"도 LTP 버퍼에 저장된다. 따라서 "overlap diff"(도 17b 참조) 위치의 샘플도 "overlap diff" 이전의 두 수직선 사이 위치의 샘플과 함께 LTP 버퍼에 저장된다. 논오버래핑 부분 "overlap diff"는 현재 프레임의 디코더 출력에는 없고 다음 프레임에만 있다(도 17b 및 17c 참조).
현재 윈도우의 왼쪽 오버랩에 더 짧은 오버랩이 사용되는 경우 현재 윈도우의 시작 부분까지 전체 논오버래핑 부분이 예측 신호를 생성하기 위한 LTP 버퍼의 일부로 사용된다.
MDCT의 전체 윈도우에 대한 예측 신호는 LTP 버퍼에서 생성된다. 윈도우 길이의 시간 간격은 홉 크기 를 갖는 길이 의 겹치는 하위 간격으로 분할된다. 다른 홉 크기 및 하위 간격 길이와 홉 크기 사이의 관계가 사용될 수 있다. 중첩 길이는 보다 작거나 같을 수 있다. 하위 간격 내에서 중요한 피치 변화가 예상되지 않도록 가 선택된다. 도 17d에 도시된 바와 같이, 예를 들어 에 가장 가깝지만 보다 크지 않은 정수이며, 로 설정된다. 다른 예에서는 프레임 길이 또는 윈도우 길이가 로 나누어질 수 있도록 추가적으로 요청될 수도 있다.
아래에는 "인코딩된 오디오 신호의 프레임과 연관된 간격 내 하위 간격의 위치에 따라 인코딩된 피치 파라미터로부터 하위 간격 파라미터를 파생하도록 구성된 계산 수단(1030)"의 예와 또한 "파라미터는 인코딩된 피치 파라미터 및 인코딩된 오디오 신호의 프레임과 관련된 간격 내 하위 간격 위치에서 파생되는" 예가 제공된다. 각 하위 간격에 대해 하위 간격 의 중앙의 피치 래그가 피치 윤곽에서 얻어진다. 제1 단계에서는 하위 간격 피치 래그 dsubF0를 하위 간격 중심 의 위치의 피치 래그로 설정한다. 하위 간격 끝에서 윈도우 시작까지의 거리가 dsubF0보다 큰 한, dsubF0는 피치 래그의 값에 대해 위치 dsubF0에서의 피치 윤곽으로부터 하위 간격 중심의 좌측까지 증가된다, 즉 까지 이다. 하위 간격 끝에서 윈도우 시작까지의 거리 는 또한 하위 간격 끝이라고도 한다.
각 하위 간격에서 예측된 신호는 LTP 버퍼와 전달 함수 가 있는 필터를 사용하여 구성된다. 여기서:
여기서 는 dsubF0의 정수 부분, 즉 이고 는 dsubF0의 분수 부분, 즉 이고, 는 분수 지연 필터이다. 는 저역 통과 특성을 가질 수 있다(또는 고주파수를 덜 강조할 수 있음). 그런 다음 예측 신호는 하위 간격의 중첩 영역에서 크로스페이드(cross-faded)된다.
다르게는 전달 함수를 갖는 필터와 필터의 초기 출력으로 사용되는 LTP 버퍼를 기반으로 하는 필터의 제로 입력 응답(ZIR)을 사용하여 [8]에 설명된 캐스캐이드 필터를 사용하는 방법을 사용하여 예측 신호가 구성될 수 있다, 여기서:
에 대한 예:
예제에서 는 일반적으로 값 목록에서 가장 가까운 값으로 반올림되며 목록의 각 값에 대해 필터 B가 미리 정의되어 있다.
예측된 신호 XP'(도 1a 참조)는 XM을 생성하는 데 사용된 윈도우과 동일한 윈도우로 윈도우를 적용하고, MDCT를 통해 변환하여 XP를 얻는다.
아래에서는, 인코딩된 피치 파라미터로부터 파생된 파라미터에 따라 예측 스펙트럼 또는 예측 스펙트럼의 파생물을 수정하기 위한 수단의 예가 주어질 것이다. 적어도 XP의 고조파로부터 떨어진 MDCT 계수의 크기는 0으로 설정되고(또는 1보다 작은 양의 인자와 곱해진다), 여기서 는 예를 들어 10이다. 대안적으로 직사각형 윈도우 보다 다른 윈도우를 사용하여 고조파 사이의 크기를 줄일 수 있다. XP에서의 고조파는 의 정수배인 빈 위치에 있는 것으로 간주된다. 여기서 LM은 XP 길이이고 는 평균 수정된 피치 래그 이다. 고조파 위치는 이다. 이는 특히 절반 피치 래그가 검출될 때 고조파 간의 노이즈를 제거한다.
XP의 스펙트럼 엔벨로프는 예를 들어 SNSE를 통해 XM와 동일한 방법으로 지각적으로 평탄화되어 XPS를 얻는다.
아래에는 코딩된 피치 파라미터를 기반으로 예측 가능한 고조파의 수가 결정된다는 예가 나와 있다. XPS, XMS를 이용하여 예측 가능한 고조파 nLTP의 개수를 결정한다. nLTP는 코딩되어 디코더로 전송된다. NLTP 고조파까지 예측될 수 있다, 예를 들어 NLTP= 8. XPS 및 XMS는 길이 의 NLTP 대역으로 나누어지며, 각 대역은 밴드는 에서 시작한다. nLTP는 모든 에 대한 XMS - XPS와 XMS의 에너지 비가 임계값 미만, 예를 들면 = 0.7이 되도록 선택된다. 그러한 n이 없으면 nLTP = 0이고 LTP는 현재 프레임에서 활성화되지 않는다. LTP가 활성화되었는지 여부는 플래그로 표시된다. XPS 및 XMS 대신 XP 및 XM를 사용할 수 있다. XPS 및 XMS 대신 XPS 및 XMT를 사용할 수 있다. 또는, 피치 윤곽 dcontour에 기초하여 예측 가능한 고조파의 개수가 결정될 수도 있다.
아래에는, 예측 스펙트럼(XP)의 적어도 일부 또는 예측 스펙트럼의 파생물(XPS)의 일부를 에러 스펙트럼(XD)와 결합하도록 구성되는 결합기(157)의 예가 제시될 것이다. LTP가 활성화된 경우 0번째 계수를 제외한 제1 의 계수를 XMT에서 빼서 XMR를 생성한다. 0번째와 위의 계수는 XMT에서 XMR로 복사된다.
양자화 과정에서 XQ는 XMR에서 얻어지고, XQ는 spect으로 코딩되며, 디코딩에 의해 XD는 spect에서 얻어진다.
LTP가 활성화된 경우 0번째 계수를 제외한 XPS의 제1 계수가 XD에 추가되어 XDT를 생성한다. 0번째와 위의 계수 는 XD에서 XDT로 복사된다.
아래에서는 고조파 후처리 필터의 선택적 기능에 대해 설명한다.
시간 도메인 신호 yC는 역 MDCT, 윈도잉 및 Overlap-and-Add로 구성된 IMDCT의 출력으로서 XC로부터 얻어진다. 피치 윤곽을 따르는 HPF(Harmonic Post-Filter)를 yC에 적용하여 고조파 간의 노이즈를 줄여 yH를 출력한다. yC 대신에, 디코딩된 펄스 파형으로부터 구성된 yC 및 시간 도메인 신호 yP의 조합이 HPF에 대한 입력으로 사용될 수 있다. 도 18a에 도시된 바와 같다.
현재 프레임 k의 HPF 입력은 이다. 과거 출력 샘플 (, 여기서 는 적어도 최대 피치 래그)도 사용할 수 있다. Nahead IMDCT 룩-어헤드 샘플도 이용 가능하며, 여기에는 역 MDCT 출력의 오른쪽 중첩 영역의 시간 알리어스된 부분(time aliased portions)이 포함될 수 있다. HPF가 적용되는 시간 간격이 현재 프레임과 동일하지만 다른 간격이 사용될 수 있는 예를 보여준다. HPF 현재 입력/출력, HPF 과거 출력 및 MDCT/IMDCT 윈도우에 대한 IMDCT 룩-어헤드의 위치가 도 18a에 설명되어 있으며 오버랩-앤-애드를 생성하기 위해 평소처럼 추가될 수 있는 중첩 부분도 보여준다.
HPF가 상수 파라미터를 사용해야 한다는 것이 비트스트림에서 신호를 받으면 현재 프레임의 시작 부분에 평활화가 사용되고 나머지 프레임에는 상수 파라미터가 있는 HPF가 사용된다. 대안으로, 상수 파라미터를 사용해야 하는지 결정하기 위해yC에 대해 피치 분석을 수행할 수도 있다. 평활화가 사용되는 영역의 길이는 피치 파라미터에 따라 달라질 수 있다.
상수 파라미터가 신호되지 않으면 HPF 입력은 홉 크기 를 갖는 길이 Lk의 겹치는 하위 간격으로 분할된다. 다른 홉 크기를 사용할 수도 있다. 중첩 길이는 보다 작거나 작을 수 있다. 하위 간격 내에서 중요한 피치 변화가 예상되지 않도록 Lk가 선택된다. 예를 들어, 는 pitch_mid/2에 가장 가까운 정수이지만, pitch_mid/2보다 크지 않고, Lk로 설정된다. pitch_mid 대신에 일부 다른 값, 예를 들어, pitch_mid 및 pitch_start의 평균 또는 yC에 대한 피치 분석에서 얻은 값 또는 예를 들어 다양한 피치를 갖는 신호에 대한 간격에서 예상되는 최소 피치 래그가 사용될 수 있다. 대안으로 고정된 개수의 하위 간격을 선택할 수도 있다. 다른 예에서는 프레임 길이가 로 나누어질 수 있도록 추가로 요청될 수도 있다(도 18b 참조).
현재 간격 k의 하위 간격 수는 Kk이고, 이전 간격 k-1에서는 Kk-1 이고, 다음 간격 k + 1에서는 Kk+1 이다. 도 18b의 예에서 Kk = 6 및 Kk-1 = 4 이다.
다른 예에서는 현재(시간) 간격이 정수가 아닌 개수의 하위 간격으로 분할되거나 하위 간격의 길이가 아래와 같이 현재 간격 내에서 변경되는 것이 가능하다. 이는 도 18c와 도 18d에 설명되어 있다.
현재 간격 의 각 하위 간격 l에 대해, 하위 간격 피치 래그(pk,l)는 피치 검색 알고리즘을 사용하여 구하며, 이는 피치 윤곽선을 구하는 데 사용된 피치 검색과 동일할 수도 있고 다를 수도 있다. 하위 간격 l에 대한 피치 검색은 검색의 복잡성을 줄이고 및/또는 하위 간격에 걸쳐 값(pk,l)의 안정성을 높이기 위해 코딩된 피치 래그(pitch_mid, pitch_end)에서 파생된 값을 사용할 수 있으며, 예를 들어 코딩된 피치 래그에서 파생된 값은 피치 윤곽의 값일 수 있다. 다른 예에서, yC의 전체 간격에서 전역 피치 분석에 의해 발견된 파라미터는 검색의 복잡성 및/또는 하위 간격에 걸친 값(pk,l)의 안정성을 줄이기 위해 코딩된 피치 래그 대신 사용될 수 있다. 또 다른 예로, 하위 간격 피치 래그를 검색할 때, 이전 하위 간격에 대한 고조파 후처리 필터링의 중간 출력이 가능하여 피치 검색(이전 간격의 하위 간격 포함)에 사용된다고 가정한다.
Nahead(잠재적으로 시간 알리어스된) 룩-어헤드 샘플은 간격/프레임 경계를 가로지르는 하위 간격에서 피치를 찾는 데 사용될 수도 있거나 또는 예를 들어 룩-어헤드를 사용할 수 없는 경우 간격의 마지막 하위 간격에 대한 룩-어헤드를 가지기 위하여 디코더에 지연이 도입될 수 있다. 대안적으로, 코딩된 피치 래그(pitch_mid, pitch_end)로부터 파생된 값이 에 사용될 수 있다.
고조파 후처리 필터로는 이득 적응형 고조파 후처리 필터가 사용될 수 있다. 이 예에서 HPF에는 다음과 같은 전달 함수가 있다.
여기서 는 분수 지연 필터이다. 선택은 독립적이므로, 는 LTPP에서 사용된 분수 지연 필터와 동일하거나 또는 이들과는 상이할 수 있다. HPF에서는 저역 통과(또는 고주파수를 덜 강조하는 틸트 필터) 역할도 한다.
의 계수로서의 bj(Tfr) 및 전달 함수 H(z)를 갖는 이득 적응형 고조파 후처리 필터의 미분 방정식의 예는 다음과 같다:
부분 지연이 있는 저역 통과 필터 대신에, 을 제공하는 항등 필터가 사용될 수 있고, 미분 방정식은:
파라미터 g는 최적 이득이다. 이는 신호의 진폭 변화(변조)를 모델링하고 이는신호 적응형이다.
파라미터 h는 고조파성 레벨이다. 이는 원하는 신호 고조파성의 증가를 제어하며 신호 적응형이다. 파라미터 β는 신호 고조파성의 증가도 제어하며 샘플링 레이트와 비트 전송률에 따라 일정하거나 이에 따라 달라진다. 파라미터 β는 1과 같을 수도 있다. 곱 βh의 값은 0과 1 사이여야 하며, 0은 고조파성에 변화가 없고 1은 고조파성을 최대로 증가시킨다. 실제로 가 일반적이다.
고조파 후처리 필터의 피드-포워드 부분(즉, )은 고역 통과(또는 저주파수를 덜 강조하는 틸트 필터) 역할을 한다. 파라미터 α는 고역 통과 필터링의 강도를 결정(또는 다시 말하면 디엠퍼시스 기울기를 제어함)하며 0과 1 사이의 값을 갖는다. 파라미터 α는 일정하거나 샘플링 레이트와 비트 전송률에 따라 달라진다. 실시예에서는 0.5와 1 사이의 값이 바람직하다.
각 하위 간격에 대해, 최적의 이득 gk,l 및 고조파성 레벨 hk,l이 발견되거나 경우에 따라 다른 파라미터에서 파생될 수 있다.
주어진 에 대해 신호를 이동/필터링하는 함수를 다음과 같이 정의한다:
이러한 정의를 사용하면 에 대해 길이 L가 있는 (하위) 간격 l의 신호 yC를 나타내고, 는 B(z, 0)를 갖는 yC의 필터링을 나타내고, y-p는 (아마도 분수) p 샘플에 대한 yH의 이동을 나타낸다.
우리는 길이 L 및 이동 p을 갖는 (하위) 간격 l에서의 신호 yC 및 yH의 정규화된 상관관계 을 다음과 같이 정의한다.
의 대체 정의는 다음과 같다:
대체 정의에서 에 대한 과거 하위 간격에서의 yH을 나타낸다. 위의 정의에서는 4차 를 사용했다. j에 대한 범위에서의 변화를 요구하는 임의의 다른 차수가 사용될 수도 있다. 예에서, 의 범위를 변경해야 하는 다른 순서를 사용할 수 있다. 예제에서, 인 경우, 을 얻고, 는 정수 이동이 고려되는 경우에만 사용될 수 있다.
이러한 방식으로 정의된 정규화된 상관관계를 통해 부분 이동 p에 대한 계산이 가능하다.
및 L의 파라미터는 정규화된 상관관계에 대한 윈도우를 정의한다. 위의 정의에서는 직사각형 윈도우가 사용되었다. 다른 유형의 윈도우(예: Hann, Cosine)을 대신 사용할 수 있으며 이는 에 w[n]을 곱하면 되며, 여기서 w[n]은 윈도우를 나타낸다.
하위 간격에 대한 정규화된 상관관계를 얻으려면 간격 번호에 l을 그리고 하위 간격의 길이에 L을 설정한다.
의 출력은 하위 프레임 l에 대해 이득 적응형 고조파 후처리 필터 H(z)의 ZIR을 나타내며, 여기서 .
최적 이득 은 하위프레임 l의 진폭 변화(변조)를 모델링한다. 예를 들어 예측 신호와 저역 통과 입력의 상관관계를 예측 신호의 에너지로 나누어 계산할 수 있다:
또 다른 예에서 최적 이득 은 저역 통과 입력의 에너지를 예측된 신호의 에너지로 나누어 계산할 수 있다:
고조파성 레벨 은 원하는 신호 고조파성의 증가를 제어하며 예를 들어 정규화된 상관관계의 제곱으로 계산할 수 있다:
일반적으로 하위 간격의 정규화된 상관관계는 하위 간격의 피치 검색을 통해 이미 사용할 수 있다.
고조파성 레벨 은 LTP 및/또는 디코딩된 스펙트럼 특성에 따라 수정될 수도 있다. 예를 들어 다음과 같이 설정할 수 있다.
여기서 는 0과 1 사이의 값이고 LTP에 의해 예측된 고조파 수에 비례하며 는 0과 1 사이의 값이며 XC의 기울기에 반비례 한다. 예를 들어 nLTP가 0인 경우 = 0.5이고, 그렇지 않으면 이다. XC의 기울기는 처음 7개 스펙트럼 계수의 에너지 대 다음 43개 계수의 에너지의 비율일 수 있다.
하위 간격 l에 대한 파라미터를 계산한 후에는 하위 간격 l+1과 겹치지 않는 하위 간격 l의 부분에 대한 고조파 후처리 필터의 중간 출력을 생성할 수 있다. 위에서 설명한 대로, 이 중간 출력은 후속 하위 간격에 대한 파라미터를 찾는 데 사용된다.
각 하위 간격은 중첩되며 두 필터 파라미터 간의 평활화 작업이 사용된다. [3]에 설명된 평활화를 사용할 수 있다. 이하, 바람직한 실시예가 논의될 것이다.
실시예는 펄스 부분과 고정 부분을 포함하는 오디오 신호를 인코딩하기 위한 오디오 인코더를 제공하며, 이는 오디오 신호로부터 펄스 부분을 추출하도록 구성된 펄스 추출기 - 펄스 추출기는 펄스 부분을 인코딩하여 인코딩된 펄스 부분을 획득하는 펄스 코더를 포함하며; 펄스 부분(들)은 오디오 신호의 (아마도 비선형) (크기) 스펙트로그램에서 얻은 시간 엔벨로프의 피크에 위치한 펄스 파형(고역 통과 특성을 가짐)으로 구성될 수 있음 - , 인코딩된 잔차 신호를 획득하기 위해 오디오 신호로부터 파생된 신호를 인코딩하도록 구성된 신호 인코더 - 잔차 신호는 오디오 신호로부터 펄스 부분이 감소되거나 제거되도록 오디오 신호로부터 파생됨 -; 및 인코딩된 펄스 부분과 인코딩된 잔차 신호를 출력하여 인코딩된 신호를 제공하도록 구성된 출력 인터페이스를 포함하며, 여기서 펄스 코더는 펄스 추출기가 오디오 신호에서 임펄스 부분을 찾을 수 없는 경우 인코딩된 펄스 부분을 제공하지 않도록 구성되며, 스펙트로그램은 신호 인코더보다 더 높은 시간 분해능을 갖는다.
추가 실시예에 따르면, 각각의 펄스 파형이 시간 중심에서 멀리 있는 것보다 시간 중심 근처에서 더 많은 에너지를 갖는 오디오 인코더(논의된 바와 같음)가 제공된다.
추가 실시예에 따르면, 시간적 엔벨로프가 하나의 시간 인스턴스에 (아마도 비선형적인) 크기 스펙트로그램의 값을 합산함으로써 획득되는 (논의된 바와 같은) 오디오 인코더가 제공된다.
추가 실시예에 따르면 펄스 파형이 크기 스펙트로그램의 모든 시간 인스턴스에서 신호의 고정 부분을 제거함으로써 오디오 신호의 (비선형) 크기 스펙트로그램 및 위상 스펙트로그램으로부터 획득되는 오디오 인코더가 제공된다.
추가 실시예에 따르면 펄스 파형이 고역 통과 특성을 갖고 시작 주파수 위에서 시작하는 주파수에서 더 많은 에너지를 갖는 오디오 인코더(논의된 바와 같음)가 제공되며, 시작 주파수는 인근 펄스 파형 사이의 평균 거리의 역수에 비례한다.
추가 실시예에 따르면, 펄스 부분에 속하는 펄스 파형의 결정이 다음 중 하나에 의존하는 오디오 인코더(논의된 바와 같음)가 제공된다:
● 펄스 파형 사이의 상관관계, 및/또는
● 펄스 파형 사이의 거리, 및/또는
● 펄스 파형의 에너지와 잔차 신호의 오디오 사이의 관계
추가 실시예에 따르면 펄스 파형이 서로 가까운 펄스 파형에 공통된 스펙트럼 엔벨로프에 의해 그리고 스펙트럼적으로 평탄화된 펄스 파형을 나타내기 위한 파라미터에 의해 코딩되는 오디오 인코더(논의된 바와 같음)가 제공된다.
또 다른 실시예는 인코딩된 펄스 부분 및 인코딩된 잔차 신호를 포함하는 인코딩된 오디오 신호를 디코딩하기 위한 디코더를 제공하며, 디코더는:
인코딩된 펄스 부분을 생성하기 위해 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하여 인코딩된 펄스 부분을 디코딩하도록 구성된 임펄스 디코더 - 디코딩된 펄스 부분이 획득됨 - ;
인코딩된 잔차 신호를 생성하기 위해 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하여 인코딩된 잔차 신호를 디코딩하도록 구성된 신호 디코더 - 디코딩된 잔차 신호가 획득됨 -; 그리고
디코딩된 출력 신호를 제공하기 위해 디코딩된 펄스 부분과 디코딩된 잔차 신호를 결합하도록 구성된 신호 결합기 - 여기서 신호 디코더 및 임펄스 디코더는 디코딩된 신호의 동일한 시간 인스턴스에 관련된 출력 값을 제공하도록 동작함 - 을 포함하고,
여기서 임펄스 디코더는 인코딩된 펄스 부분을 수신하고 지정된 시간 부분에 위치한 펄스 파형으로 구성된 디코딩된 펄스 부분을 제공하도록 동작하며, 인코딩된 임펄스 유사 신호는 스펙트럼적으로 평탄화된 펄스 파형을 제공하기 위한 파라미터를 포함하며, 여기서 각 펄스 파형은 시간 중심에서 멀리 떨어져 있는 것보다 시간 중심에 가까이 있는 것에 더 많은 에너지를 갖는다.
추가 실시예는 (논의된 바와 같은) 오디오 디코더를 제공하는데, 여기서 임펄스 디코더는 이전(평탄화된) 펄스 파형으로부터의 예측을 사용하여 스펙트럼적으로 평탄화된 펄스 파형을 획득한다.
추가 실시예는 (논의된 바와 같은) 오디오 디코더를 제공하는데, 여기서 임펄스 디코더는 서로 가까운(예를 들어, 현재 프레임에서 서로 연속적인 의미로) 펄스 파형에 공통된 스펙트럼 엔벨로프를 사용하여 스펙트럼적으로 평탄화된 펄스 파형을 스펙트럼적으로 성형함으로써 펄스 파형을 획득한다.
실시예에 따르면, 인코더는 양자화된 표현(XQ)에 따라 스펙트럼 표현(XMR)의 코딩된 파라메트릭 표현(zfl)을 제공하도록 구성된 대역 별 파라메트릭 코더를 포함할 수 있으며, 여기서 오디오 신호의 스펙트럼 표현(XMR)은 복수의 하위 대역으로 분할되고, 여기서 스펙트럼 표현(XMR)은 주파수 빈 또는 주파수 계수로 구성되고, 적어도 하나의 하위 대역은 하나보다 많은 주파수 빈으로 구성되며, 여기서 코딩된 파라메트릭 표현(zfl)은 하위 대역의 에너지를 설명하는 파라미터 또는 하위 대역의 에너지를 설명하는 파라미터의 코딩된 버전으로 구성되며; 여기서 적어도 2개의 하위 대역이 있고, 따라서 적어도 2개의 하위 대역의 에너지를 설명하는 파라미터가 상이하다. MDCT의 하위 대역에서 펄스 부분(P)을 파라미터적으로 표현하려면 많은 비트가 필요하고 잔차(R) 신호는 파라미터적으로 잘 코딩될 수 있는 많은 하위 대역을 갖기 때문에 잔차의 MDCT에서 파라메트릭 표현을 사용하는 것이 유리하다.
실시예에 따르면, 디코더는 제로 필링을 수행하도록 구성된 제로 필링 수단을 더 포함한다. 또한, 디코더는 추가 실시예에 따라 스펙트럼 도메인 디코더 및 대역별 파라메트릭 디코더를 포함할 수 있으며, 스펙트럼 도메인 디코더는 스펙트럼(spect)의 코딩된 표현으로부터 양자화 단계()에 따라 디코딩된 스펙트럼(XD)을 생성하도록 구성되고, 여기서 디코딩된 스펙트럼(XD)은 하위 대역으로 분할되며; 대역별 파라메트릭 디코더(1210, 162)는 디코딩된 스펙트럼(XD)에서 제로 하위 대역을 식별하고 코딩된 파라메트릭 표현(zfl)에 기초하여 제로 하위 대역의 파라메트릭 표현(EB)을 디코딩하도록 구성되고, 여기서 파라메트릭 표현(EB)은 하위 대역의 에너지를 설명하는 파라미터를 포함하고, 여기서 적어도 2개의 하위 대역이 서로 다르므로, 적어도 2개의 하위 대역의 에너지를 설명하는 파라미터가 다르고 및/또는 코딩된 파리메트릭 표현(zfl)은 다양한 수의 비트를 이용하여 코딩되고 및/또는 여기서 코딩된 파라메트릭 표현(zfl)을 표현하는데 사용되는 비트의 수는 오디오 신호(XMR)의 스펙트럼 표현에 따른다.
일부 측면이 장치의 맥락에서 설명되었지만 이러한 측면은 해당 방법에 대한 설명도 나타내는 것이 분명하며, 여기서 블록이나 장치는 방법 단계 또는 방법 단계의 특징에 해당한다. 유사하게, 방법 단계의 맥락에서 설명된 측면은 또한 해당 장치의 해당 블록이나 항목 또는 특징의 설명을 나타낸다. 방법 단계 중 일부 또는 전부는 예를 들어 마이크로프로세서, 프로그래밍 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이를 사용하여) 실행될 수 있다. 일부 실시예에서, 가장 중요한 방법 단계 중 일부 하나 이상이 이러한 장치에 의해 실행될 수 있다.
본 발명에 따라 인코딩된 오디오 신호는 디지털 저장 매체에 저장될 수도 있고, 무선 전송 매체 또는 인터넷과 같은 유선 전송 매체와 같은 전송 매체를 통해 전송될 수도 있다.
특정 구현 요구 사항에 따라, 본 발명의 실시예는 하드웨어 또는 소프트웨어로 구현될 수 있다. 구현은 전자적으로 판독 가능한 제어 신호가 저장되어 있는 플로피 디스크, DVD, Blu-Ray, CD, ROM, PROM, EPROM, EEPROM 또는 FLASH 메모리와 같은 디지털 저장 매체를 사용하여 수행될 수 있으며, 이들은 각각의 방법이 수행되도록 프로그래밍 가능한 컴퓨터 시스템과 협력한다(또는 협력할 수 있다). 따라서, 디지털 저장 매체는 컴퓨터 판독 가능하다.
본 발명에 따른 일부 실시예는 전자적으로 판독 가능한 제어 신호를 갖는 데이터 캐리어를 포함하며, 이는 프로그래밍 가능한 컴퓨터 시스템과 협력하여 여기에 설명된 방법 중 하나가 수행될 수 있다.
일반적으로, 본 발명의 실시예는 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때 방법 중 하나를 수행하도록 동작한다. 프로그램 코드는 예를 들어 기계 판독 가능 매체에 저장될 수 있다.
다른 실시예는 기계 판독 가능한 캐리어에 저장된, 본 명세서에 기술된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함한다.
즉, 본 발명의 방법의 실시예는 따라서 컴퓨터 프로그램이 컴퓨터에서 실행될 때 여기에 설명된 방법 중 하나를 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램이다.
따라서, 본 발명의 방법의 추가 실시예는 여기에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 포함하고 기록된 데이터 캐리어(또는 디지털 저장 매체, 또는 컴퓨터 판독 가능 매체)이다. 데이터 캐리어, 디지털 저장 매체 또는 기록 매체는 일반적으로 유형적이거나 비일시적이다.
따라서, 본 발명의 방법의 추가 실시예는 여기에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 나타내는 데이터 스트림 또는 신호 시퀀스이다. 데이터 스트림 또는 신호 시퀀스는 데이터 통신 연결을 통해, 예를 들어 인터넷을 통해 전송되도록 구성될 수 있다.
추가 실시예는 여기에 설명된 방법 중 하나를 수행하도록 구성되거나 적응되는 처리 수단, 예를 들어 컴퓨터 또는 프로그래밍 가능한 논리 장치를 포함한다.
추가 실시예는 여기에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램이 설치된 컴퓨터를 포함한다.
본 발명에 따른 추가 실시예는 여기에 설명된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램을 수신기에 전송(예를 들어, 전자적으로 또는 광학적으로)하도록 구성된 장치 또는 시스템을 포함한다. 수신기는 예를 들어 컴퓨터, 모바일 장치, 메모리 장치 등일 수 있다. 장치 또는 시스템은 예를 들어 컴퓨터 프로그램을 수신기에 전송하기 위한 파일 서버를 포함할 수 있다.
일부 실시예에서, 프로그래밍 가능 논리 장치(예를 들어, 필드 프로그래밍 가능 게이트 어레이)는 여기에 설명된 방법의 기능 중 일부 또는 전부를 수행하는 데 사용될 수 있다. 일부 실시예에서, 필드 프로그래밍 가능 게이트 어레이는 여기에 설명된 방법 중 하나를 수행하기 위해 마이크로프로세서와 협력할 수 있다. 일반적으로, 방법은 임의의 하드웨어 장치에 의해 수행되는 것이 바람직하다.
전술한 실시예는 단지 본 발명의 원리를 예시하는 것일 뿐이다. 본 명세서에 기술된 구성 및 세부 사항의 수정 및 변형은 당업자에게 명백할 것으로 이해된다. 따라서, 본 명세서의 실시예에 대한 설명 및 설명을 통해 제시된 특정 세부 사항에 의해서가 아니라 임박한 특허 청구 범위에 의해서만 제한되는 것이 의도이다.
참고자료
[1] O. Niemeyer 및 B. Edler, "오디오 코딩을 위한 과도 현상 검출 및 추출", 오디오 공학 협회 컨벤션 120, 2006.
[2] J. Herre, R. Geiger, S. Bayer, G. Fuchs, U. Krmer, N. Rettelbach 및 B. Grill, “임펄스 유사 부분과 고정 부분을 갖는 오디오 신호를 인코딩하기 위한 오디오 인코더, 인코딩 방법, 디코더, 디코딩 방법; 및 인코딩된 오디오 신호,” PCT/EP2008/004496, 2007.
[3] F. Ghido, S. Disch, J. Herre, F. Reutelhuber 및 A. Adami, "HREP(고해상도 엔벨로프 처리)를 사용한 미세한 오디오 신호 코딩", 2017년 IEEE 국제 음향학 회의, 연설 및 신호 처리(ICASSP), 2017, 페이지 701-705.
[4] A. Adami, A. Herzog, S. Disch 및 J. Herre, "코드화된 박수와 같은 신호의 과도 대 잡음비 복원", 오디오 및 음향학에 대한 신호 처리 응용에 관한 2017 IEEE 워크숍(WASPAA), 2017, pp. 349-353.
[5] R. F
Figure pct00520
g, A. Niedermeier, J. Driedger, S. Disch 및 M. M
Figure pct00521
ller, "스펙트로그램의 구조 텐서를 사용한 고조파-충격-잔차 사운드 분리", 2016년 음향, 음성 및 음향에 관한 IEEE 국제 컨퍼런스 신호 처리(ICASSP), 2016, 445-449페이지.
[6] C. Helmrich, J. Lecomte, G. Markovic, M. Schnell, B. Edler 및 S. Reuschl, "과도 위치 종속 중첩을 사용하여 오디오 신호를 인코딩하거나 디코딩하는 장치 및 방법", PCT/ EP2014/053293, 2014.
[7] 3세대 파트너십 프로젝트; 기술 사양 그룹 서비스 및 시스템 측면, 향상된 음성 서비스(EVS)용 코덱; 자세한 알고리즘 설명, 아니오. 26.445. 3GPP, 2019.
[8] G. Markovic, E. Ravelli, M. Dietz 및 B. Grill, "신호 필터링", PCT/EP2018/080837, 2018.
[9] E. Ravelli, C. Helmrich, G. Markovic, M. Neusinger, S. Disch, M. Jander 및 M. Dietz, "고조파 포스트 필터를 이용한 오디오 신호 처리 장치 및 방법", PCT/EP2015/066998, 2015.

Claims (29)

  1. 오디오 신호(PCMi)를 인코딩하기 위한 오디오 인코더(10, 101, 101')로서:
    오디오 신호(PCMi)로부터 펄스 부분(P)을 추출하도록 구성된 펄스 추출기(11,110) - 여기서 펄스 추출기(11,110)는 펄스 부분(P)을 추출하기 위하여 오디오 신호(PCMi)의 스펙트로그램을 결정하도록 구성됨 - ;
    추출된 펄스 부분(P)을 인코딩하여 인코딩된 펄스 부분(CP)을 획득하는 펄스 코더(13,132);
    인코딩된 잔차(CR) 신호를 획득하기 위하여 오디오 신호(PCMi)로부터 파생된 잔차(yM, R) 신호를 인코딩하도록 구성된 신호 인코더(152, 156') - 잔차(yM, R) 신호는 오디오 신호(PCMi)로부터 펄스 부분(P)을 감소 또는 제거함으로써 오디오 신호(PCMi)로부터 파생되고; 여기서 스펙트로그램은 신호 인코더(150)보다 더 높은 시간 분해능을 가짐 - ; 및
    인코딩된 신호를 제공하기 위하여 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR) 신호를 출력하도록 구성된 출력 인터페이스(170)
    를 포함하는 오디오 인코더(10, 101, 101').
  2. 청구항 1에 있어서, 펄스 코더(13,132)는, 펄스 추출기(11,110)가 오디오 신호(PCMi)에서 펄스 부분을 찾을 수 없는 경우, 인코딩된 펄스 부분(CP)이 존재하지 않는다는 정보를 제공하도록 구성되고 및/또는
    여기서 펄스 부분(P)은 오디오 신호(PCMi)의 스펙트로그램에서 파생되는 오디오 인코더(10, 101, 101').
  3. 청구항 1 또는 청구항 2에 있어서, 신호 인코더(152, 156')는 잔차(yM, R) 신호 또는 오디오 신호(PCMi)의 고정 부분을 포함하는 잔차(yM, R)를 코딩하도록 구성되고; 및/또는
    여기서 신호 인코더(152, 156')는 바람직하게는 주파수 도메인 인코더이고; 및/또는
    여기서 신호 인코더(152, 156')는 더욱 바람직하게는 MDCT 인코더이고; 및/또는
    여기서 신호 인코더(152, 156')는 MDCT 코딩을 수행하도록 구성되는 오디오 인코더(10, 101, 101').
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서, 펄스 추출기(11,110)는 펄스 파형(10pw)으로 구성된 펄스 부분(P)을 획득하도록 구성되거나; 또는
    여기서 상기 펄스 추출기(11,110)는 펄스(10p') 또는 펄스 파형(10pw)으로 구성된 펄스 부분(P)을 획득하도록 구성되며, 여기서 상기 펄스 또는 펄스 파형(10pw)은 오디오 신호(PCMi)의 스펙트로그램으로부터 획득된 시간 엔벨로프의 피크 또는 피크 근처에 위치되거나 또는 여기서 펄스 추출기(11,110)는 위치 및 펄스 파형 에 의해 펄스(10p')의 각각의 펄스(Pi)를 고유하게 결정하도록 구성되는 오디오 인코더(10, 101, 101').
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서, 펄스 부분(P)의 각각의 펄스 파형이 고역 통과 특성 및/또는 시작 주파수 이상으로 시작되는 주파수에서 더 많은 에너지를 갖는 특성을 포함하도록 오디오 신호(PCMI)를 처리하도록 구성되고 잔차(yM, R) 신호 내의 고역 통과 특성이 제거 또는 감소되도록 오디오 신호(PCMI)를 처리하도록 구성되는 고역 통과 필터(111hp)를 더 포함하고; 및/또는
    향상된 스펙트로그램을 처리하도록 구성된 필터(112pe) - 여기서 향상된 스펙트로그램은 펄스 부분(P) 또는 오디오 신호의 스펙트로그램으로부터 파생되어 펄스 부분(P)의 각각의 펄스 파형이 고역 통과 특성 및/또는 시작 주파수 이상으로 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함하며, 여기서 시작 주파수는 근처 펄스 사이의 평균 거리 추정의 역수에 비례함 - 을 더 포함하고 및/또는
    여기서 각각의 펄스 파형은 시작 주파수 이상으로 시작하는 주파수에서 더 많은 에너지를 갖는 특성을 포함하는 오디오 인코더(10, 101, 101').
  6. 청구항 4 또는 청구항 5에 있어서, 오디오 신호의 스펙트로그램 또는 오디오 신호의 스펙트로그램으로부터 파생된 향상된 스펙트로그램을 처리하기 위한 수단(112pe, 112pl, 112br)을 더 포함하여, 각각의 펄스(10p') 또는 펄스 파형(10pw)이 시간 중심에서 멀리 있는 것보다 시간 중심 근처에서 더 많은 에너지 특성을 가지거나 또는 펄스(10p') 또는 펄스 파형(10pw)이 오디오 신호의 스펙트로그램에서 얻은 시간 엔벨로프의 피크 또는 피크 근처에 위치하는 오디오 인코더(10, 101, 101').
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서, 상기 스펙트로그램은,
    크기 스펙트로그램;
    크기 및 위상 스펙트로그램;
    비선형 크기 스펙트로그램;
    비선형 크기 및 위상 스펙트로그램을 포함하는 그룹으로부터 나오고;
    및/또는
    여기서 펄스 추출기(11, 110)는 펄스 부분(P)을 추출하기 위해 스펙트로그램, 특히 오디오 신호의 스펙트로그램 및/또는 향상된 스펙트로그램을 결정하도록 구성되는 오디오 인코더(10, 101, 101').
  8. 청구항 7에 있어서, 펄스 추출기(11, 110)는 적어도 하나의 시간 인스턴스에서 크기 스펙트럼의 값들을 합산하여 - 여기서 크기 스펙트로그램은 적어도 하나의 크기 스펙트럼을 포함함 - 및/또는 적어도 하나의 시간 인스턴스에서 비선형 크기 스펙트럼의 값들을 합산하여 - 여기서 비선형 크기 스펙트로그램은 적어도 하나의 비선형 크기 스펙트럼을 포함함 - 적어도 하나의 시간 인스턴스에서 시간 엔벨로프 또는 시간 엔벨로프의 적어도 하나의 샘플을 획득하도록 구성되는 오디오 인코더(10, 101, 101').
  9. 청구항 1 내지 청구항 8 중 어느 한 항에 있어서, 펄스 추출기(11, 110)는 스펙트로그램의 모든 시간 인스턴스에서 오디오 신호(PCMi)의 고정 부분을 제거 또는 감소하여 및/또는 0으로 설정하여 및/또는 시작 주파수 아래로 스펙트로그램을 감소함으로써 오디오 신호(PCMi)의 스펙트로그램으로부터 펄스 부분(P)을 얻도록 구성되며, 여기서 시작 주파수는 인근 펄스 파형들 사이의 평균 거리의 역수에 비례하는 오디오 인코더(10, 101, 101').
  10. 청구항 1 내지 청구항 9 중 어느 한 항에 있어서, 펄스 코더(13, 132)는 현재 프레임에 대해 이전인 하나 이상의 프레임의 추출된 펄스 부분들(P) 또는 추출된 펄스 부분(P)을 고려하여 현재 프레임의 추출된 펄스 부분(P)을 인코딩하도록 구성되는 오디오 인코더(10, 101, 101').
  11. 청구항 1 내지 청구항 10 중 어느 한 항에 있어서, 상기 펄스 추출기(11,110)는:
    펄스 파형(10pw) 사이의 상관관계, 및/또는
    펄스 파형(10pw) 사이의 거리, 및/또는
    펄스 파형(10pw)의 에너지와 오디오 신호 사이의 관계 또는 펄스 파형(10pw)의 에너지와 정지 부분 사이의 관계 또는 오디오 신호의 에너지와 정지 부분 사이의 관계
    중 하나에 의존하여 펄스 부분(P)에 속하는 펄스 파형(10pw)을 결정하도록 구성되는 오디오 인코더(10, 101, 101').
  12. 청구항 1 내지 청구항 11 중 어느 한 항에 있어서, 펄스 코더(13, 132)는 서로 가까운 펄스 파형(10pw)에 공통적인 스펙트럼 엔벨로프에 의해 및 스펙트럼적으로 평탄화된 펄스 파형을 나타내기 위한 파라미터에 의해 추출된 펄스 부분(P)을 코딩하도록 구성되며, 여기서 추출된 펄스 부분(P)은 펄스 파형(10pw)으로 구성되고 스펙트럼적으로 평탄화된 펄스 파형은 스펙트럼 엔벨로프 또는 코딩된 스펙트럼 엔벨로프를 사용하여 펄스 파형에서 획득되는 오디오 인코더(10, 101, 101').
  13. 청구항 4 내지 청구항 12 중 어느 한 항에 있어서, 펄스 코더(13, 132)는 스펙트럼 엔벨로프를 사용하여 펄스 파형 또는 펄스 단시간 푸리에 변환(STFT)(10p')을 스펙트럼적으로 평탄화하도록 구성되고; 및/또는
    시간 도메인에서 펄스 파형을 필터링함으로써 펄스 파형을 스펙트럼적으로 평탄화하도록 구성된 필터 프로세서를 더 포함하고; 및/또는
    여기서 펄스 코더(13,132)는 역 이산 푸리에 변환(DFT), 윈도우 및 오버랩 앤 애드(overlap-and-add)를 통해 스펙트럼 평탄화된 단시간 푸리에 변환(STFT)으로부터 스펙트럼적으로 평탄화된 펄스 파형을 획득하도록 구성되는 오디오 인코더(10, 101, 101').
  14. 청구항 1 내지 청구항 13 중 어느 한 항에 있어서, 예측 잔차 신호에 대한 이득을 코딩하거나 또는 코딩하고 양자화하도록 구성된 코딩 개체(132bp)를 더 포함하고, 여기서 상기 예측 잔차 신호는 과거 펄스 부분을 기초로 얻어지는 오디오 인코더(10, 101, 101').
  15. 청구항 14에 있어서, 예측 잔차 신호에 대한 이득에 보정 인자를 계산 및/또는 적용하도록 구성된 보정 개체(132ce)를 더 포함하는 오디오 인코더(10, 101, 101').
  16. 청구항 1 내지 청구항 15 중 어느 한 항에 있어서, 스펙트럼 표현(XMR)의 코딩된 파라메트릭 표현(zfl)을 제공하도록 구성된 대역별 파라메트릭 코더를 더 포함하고, 여기서 오디오 신호의 스펙트럼 표현(XMR)은 시간 대 주파수 변환(152)을 사용하여 잔차(yM, R) 신호로부터 얻어지고, 여기서 오디오 신호의 스펙트럼 표현(XMR)은 복수의 하위 대역으로 분할되고, 여기서 스펙트럼 표현(XMR)은 주파수 빈 또는 주파수 계수로 구성되며, 여기서 적어도 하나의 하위 대역은 하나 이상의 주파수 빈을 포함하며; 여기서 코딩된 파라메트릭 표현(zfl)은 하위 대역을 설명하는 파라미터 또는 하위 대역을 설명하는 파라미터의 코딩된 버전으로 구성되며, 여기서 상이한 적어도 2개의 하위 대역이 존재하고, 따라서 상이한 적어도 2개의 하위 대역을 설명하는 파라미터가 존재하는 오디오 인코더(10, 101, 101').
  17. 청구항 1 내지 청구항 16 중 어느 한 항에 있어서, 펄스 추출기(11,110)는 피크가 그 주변 보다 높아야 한다는 요구를 가지면서, 펄스의 위치를 평활화된 시간 엔벨로프 내의 로컬 피크로서 결정하도록 구성되고; 여기서, 평활화된 시간 엔벨로프는 오디오 신호(PCMi)의 스펙트로그램으로부터 얻어진 시간 엔벨로프의 저역 통과 필터링된 버전이고; 및/또는
    여기서 펄스 추출기(11,110)는 펄스의 위치를 결정하도록 구성되고, 여기서 상기 펄스 코더는 인코딩된 펄스 부분(CP)의 일부로서 펄스의 위치에 대한 정보를 코딩하도록 구성되고; 및/또는
    여기서 펄스 추출기(11,110)는 위치 및 펄스 파형 에 의해 각 펄스(Pi)를 고유하게 결정하도록 구성되고; 및/또는
    여기서 펄스 추출기(11,110)는 펄스 또는 과도 상태의 위치로 간주되는 시간 엔벨로프에서의 피크를 결정하도록 구성되며, 상기 시간 엔벨로프는 크기 스펙트로그램의 값을 합산하여 얻어지는 오디오 인코더(10, 101, 101').
  18. 오디오 신호(PCMi)를 인코딩하는 방법으로서,
    오디오 신호(PCMi)의 스펙트로그램을 결정함으로써 오디오 신호(PCMi)로부터 펄스 부분(P)을 추출하는 단계 - 여기서 상기 스펙트로그램은 신호 인코더(152, 156')보다 더 높은 시간 분해능을 가짐 - ;
    추출된 펄스 부분(P)을 인코딩하여 인코딩된 펄스 부분(CP)을 획득하는 단계;
    오디오 신호(PCMi)로부터 파생된 잔차(yM, R) 신호를 인코딩하여 인코딩된 잔차(CR) 신호를 획득하는 단계 - 잔차(R) 신호는 오디오 신호(PCMi)로부터 펄스 부분(P)을 감소 또는 제거함으로써 오디오 신호(PCMi)로부터 파생됨 - ; 및
    인코딩된 신호를 제공하기 위해 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR) 신호를 출력하는 단계
    를 포함하는 오디오 신호(PCMi)를 인코딩하는 방법.
  19. 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR) 신호를 포함하는 인코딩된 오디오 신호를 디코딩하기 위한 디코더(20, 201, 201')로서,
    인코딩된 펄스 부분(CP)을 생성하기 위해 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하여 디코딩된 펄스 부분(yP)을 획득하도록 구성된 펄스 디코더(22);
    인코딩된 잔차(CR) 신호를 생성하기 위해 사용된 코딩 알고리즘에 적응된 디코딩 알고리즘을 사용하여 디코딩된 잔차(yC, yH) 신호를 획득하도록 구성된 신호 디코더(15b); 및
    디코딩된 펄스 부분(yP) 및 디코딩된 잔차(yC, yH) 신호를 결합하여 디코딩된 출력 신호(PCMO)를 제공하도록 구성된 신호 결합기(23)를 포함하되,
    여기서 신호 디코더(15b) 및 펄스 디코더(22)는 디코딩된 신호의 동일한 시간 인스턴스에 관련된 출력 값을 제공하도록 동작하고; 그리고
    여기서 상기 신호 디코더는 주파수-시간 변환을 포함하여 주파수 도메인에서 동작하고; 그리고
    여기서 디코딩된 펄스 부분(yP)은 특정 시간 부분에 위치한 펄스 파형(10pw)으로 구성되며, 특정 시간 부분에 대한 정보는 인코딩된 펄스 부분(CP)의 일부이고; 그리고
    여기서 인코딩된 펄스 부분(CP)은 스펙트럼적으로 평탄화된 펄스 파형을 나타내기 위한 파라미터를 포함하고; 그리고
    여기서 디코딩된 펄스 부분(yP)은 펄스 파형(10pw)으로 구성되고, 펄스 디코더(22)는 서로 가까운 펄스 파형에 공통적인 스펙트럼 엔벨로프를 사용하여 스펙트럼적으로 평탄화된 펄스 파형(10pw)을 스펙트럼적으로 성형함으로써 펄스 파형(10pw)을 얻도록 구성되는 디코더(20, 201, 201').
  20. 청구항 19에 있어서, 각각의 펄스 파형(10pw)은 시간 중심에서 멀리 있는 것보다 시간 중심 근처에서 더 많은 에너지의 특성을 갖는 디코더(20, 201, 201').
  21. 청구항 19 또는 청구항 20에 있어서, 상기 인코딩된 오디오 신호는 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR)를 포함하고, 인코딩된 펄스(CP) 부분은 고대역 통과 특성을 갖고; 및/또는
    상기 인코딩된 오디오 신호는 청구항 1 내지 청구항 18 중 어느 한 항에 기재된 인코더를 사용하여 인코딩되는 디코더(20, 201, 201').
  22. 청구항 19 내지 청구항 21 중 어느 한 항에 있어서, 펄스 디코더(22)는 이전 펄스 파형 또는 이전 평탄화된 펄스 파형으로부터 예측을 사용하여 스펙트럼적으로 평탄화된 펄스 파형을 얻도록 구성되는 디코더(20, 201, 201').
  23. 청구항 21 또는 청구항 22에 있어서, 인코딩된 펄스 부분(CP)은 펄스 시작 주파수()를 포함하고, 여기서 고역 통과 특성은 펄스 파형(10pw)을 펄스 시작 주파수() 이상으로 시작하는 주파수에서 더 많은 에너지를 가지도록 개조하여 결정되는 디코더(20, 201, 201').
  24. 청구항 19 내지 청구항 23 중 어느 한 항에 있어서, 제로 필링(zero filling)을 수행하도록 구성된 제로 필링 수단을 더 포함하고;
    스펙트럼 도메인 디코더 및 대역별 파라메트릭 디코더를 더 포함하고, 상기 스펙트럼 도메인 디코더는 인코딩된 잔차(CR)의 코딩된 표현으로부터 디코딩된 스펙트럼(XD)을 생성하도록 구성되며, 여기서 디코딩된 스펙트럼(XD)은 하위 대역으로 분할되고; 대역별 파라메터릭 디코더(1210, 162)는 디코딩된 스펙트럼(XD)에서 제로 하위 대역을 식별하고 코딩된 파라메트릭 표현(zfl)에 기초하여 제로 하위 대역(EB)의 파라메트릭 표현을 디코딩하도록 구성되며, 여기서 파라메트릭 표현(EB)은 하위 대역을 설명하는 파라미터를 포함하며, 여기서 상이한 적어도 2개의 하위 대역이 존재하고, 따라서 상이한 적어도 2개의 하위 대역을 설명하는 파라미터가 존재하며 및/또는 여기서 코딩된 파라메터릭 표현(zfl)은 다양한 수의 비트를 사용하여 코딩되는 디코더(20, 201, 201').
  25. 청구항 19 내지 청구항 24 중 어느 한 항에 있어서, 고조파 사이의 디코딩된 출력 신호(PCM0)를 감소시키도록 구성된 고조파 후처리 필터(21)를 더 포함하는 디코더(20, 201, 201').
  26. 청구항 19 내지 청구항 25 중 어느 한 항에 있어서, 펄스 디코더(22)는 인코딩된 펄스 부분 또는 현재 프레임 이전의 하나 이상의 프레임의 인코딩된 펄스 부분들을 고려하여 현재 프레임의 인코딩된 펄스 부분을 디코딩하도록 구성되는 디코더(20, 201, 201').
  27. 청구항 19 내지 청구항 26 중 어느 한 항에 있어서, 펄스 디코더(22)는 인코딩된 펄스 부분으로부터 직접 추출된 예측 이득을 고려하여 스펙트럼적으로 평탄화된 펄스 파형을 얻도록 구성되는 디코더(20, 201, 201').
  28. 인코딩된 펄스 부분(CP) 및 인코딩된 잔차(CR) 신호를 포함하는 인코딩된 오디오 신호(PCMi)를 디코딩하는 방법으로서,
    인코딩된 펄스 부분(CP)을 생성하기 위해 사용된 코딩 알고리즘에 적응된 펄스 디코딩 알고리즘을 사용하여 디코딩된 펄스 부분(yP)을 획득하는 단계;
    인코딩된 잔차(CR) 신호를 생성하기 위해 사용된 코딩 알고리즘에 적응된 신호 디코딩 알고리즘을 사용하여 디코딩된 잔차(yC, yH) 신호를 획득하는 단계; 및
    디코딩된 펄스 부분(yP)과 디코딩된 잔차(yC, yH) 신호를 결합하여 디코딩된 출력 신호(PCMO)를 제공하는 단계를 포함하되;
    여기서, 상기 신호 디코딩 알고리즘은 디코딩된 신호의 동일한 시간 인스턴스에 관련된 출력 값을 제공하도록 동작하고; 그리고
    상기 신호 디코딩 알고리즘은 주파수-시간 변환을 포함하는 주파수 도메인에서 동작하고; 그리고
    여기서 디코딩된 펄스 부분(yP)은 특정 시간 부분에 위치한 펄스 파형(10pw)으로 구성되며, 특정 시간 부분에 대한 정보는 인코딩된 펄스 부분(CP)의 일부이고; 그리고
    여기서 인코딩된 펄스 부분(CP)은 스펙트럼적으로 평탄화된 펄스 파형을 나타내기 위한 파라미터를 포함하고; 그리고
    여기서 디코딩된 펄스 부분(yP)은 펄스 파형(10pw)으로 구성되고 펄스 디코딩 알고리즘은 서로 가까운 펄스 파형에 공통적인 스펙트럼 엔벨로프를 사용하여 스펙트럼적으로 평탄화된 펄스 파형(10pw)을 스펙트럼적으로 형성하여 펄스 파형(10pw)을 얻기 위해 동작하는 방법.
  29. 컴퓨터에서 실행될 때 청구항 18 또는 청구항 28에 기재된 방법 중 하나를 수행하기 위한 컴퓨터 프로그램.
KR1020247004977A 2021-07-14 2022-07-14 오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩 KR20240042449A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP21185669.5 2021-07-14
EP21185669.5A EP4120257A1 (en) 2021-07-14 2021-07-14 Coding and decocidng of pulse and residual parts of an audio signal
PCT/EP2022/069812 WO2023285631A1 (en) 2021-07-14 2022-07-14 Coding and decocidng of pulse and residual parts of an audio signal

Publications (1)

Publication Number Publication Date
KR20240042449A true KR20240042449A (ko) 2024-04-02

Family

ID=76942810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247004977A KR20240042449A (ko) 2021-07-14 2022-07-14 오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩

Country Status (8)

Country Link
US (1) US20240177724A1 (ko)
EP (2) EP4120257A1 (ko)
JP (1) JP2024527615A (ko)
KR (1) KR20240042449A (ko)
CN (1) CN117957612A (ko)
CA (1) CA3224623A1 (ko)
MX (1) MX2024000616A (ko)
WO (1) WO2023285631A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5886276A (en) * 1997-01-16 1999-03-23 The Board Of Trustees Of The Leland Stanford Junior University System and method for multiresolution scalable audio signal encoding
CN101743586B (zh) * 2007-06-11 2012-10-17 弗劳恩霍夫应用研究促进协会 音频编码器、编码方法、解码器、解码方法

Also Published As

Publication number Publication date
CN117957612A (zh) 2024-04-30
US20240177724A1 (en) 2024-05-30
CA3224623A1 (en) 2023-01-19
JP2024527615A (ja) 2024-07-25
WO2023285631A1 (en) 2023-01-19
EP4371110A1 (en) 2024-05-22
MX2024000616A (es) 2024-03-08
EP4120257A1 (en) 2023-01-18

Similar Documents

Publication Publication Date Title
TWI555008B (zh) 使用在智慧間隙填充架構內之雙聲道處理之音頻編碼器、音頻解碼器及相關方法
KR101689489B1 (ko) 공간 오디오 객체 코딩에서 시간/주파수 분해능의 하위 호환 가능한 동적 적응을 위한 인코더, 디코더 및 방법들
KR102063900B1 (ko) 프레임 에러 은닉방법 및 장치와 오디오 복호화방법 및 장치
KR100958144B1 (ko) 오디오 압축
KR102063902B1 (ko) 프레임 에러 은닉방법 및 장치와 오디오 복호화방법 및 장치
CN101276587B (zh) 声音编码装置及其方法和声音解码装置及其方法
JP6980871B2 (ja) 信号符号化方法及びその装置、並びに信号復号方法及びその装置
RU2669079C2 (ru) Кодер, декодер и способы для обратно совместимого пространственного кодирования аудиообъектов с переменным разрешением
RU2762301C2 (ru) Устройство и способ для кодирования и декодирования аудиосигнала с использованием понижающей дискретизации или интерполяции масштабных параметров
KR101733326B1 (ko) 개선된 확률 분포 추정을 이용한 선형 예측 기반 오디오 코딩
US20240177720A1 (en) Processor for generating a prediction spectrum based on long-term prediction and/or harmonic post-filtering
US20100250260A1 (en) Encoder
TWI793666B (zh) 對多頻道音頻信號的頻道使用比例參數的聯合編碼的音頻解碼器、音頻編碼器和相關方法以及電腦程式
KR20240042449A (ko) 오디오 신호의 펄스 및 잔차 부분의 코딩 및 디코딩
EP4120253A1 (en) Integral band-wise parametric coder
RU2826967C2 (ru) Процессор для формирования спектра прогнозирования на основе долгосрочного прогнозирования и/или гармонической постфильтрации
RU2825308C2 (ru) Кодирование и декодирование импульсных и остаточных частей звукового сигнала