KR20180026528A - 오디오 신호 디코더를 위한 비트 에러 검출기 - Google Patents

오디오 신호 디코더를 위한 비트 에러 검출기 Download PDF

Info

Publication number
KR20180026528A
KR20180026528A KR1020187003540A KR20187003540A KR20180026528A KR 20180026528 A KR20180026528 A KR 20180026528A KR 1020187003540 A KR1020187003540 A KR 1020187003540A KR 20187003540 A KR20187003540 A KR 20187003540A KR 20180026528 A KR20180026528 A KR 20180026528A
Authority
KR
South Korea
Prior art keywords
value
bit error
data
decoder
determining
Prior art date
Application number
KR1020187003540A
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 KR20180026528A publication Critical patent/KR20180026528A/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/005Correction of errors induced by the transmission channel, if related to the coding algorithm
    • 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/012Comfort noise or silence 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/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
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • 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/06Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
    • G10L19/07Line spectrum pair [LSP] 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/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks
    • 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
    • G10L2019/0001Codebooks
    • G10L2019/0016Codebook for LPC parameters

Landscapes

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

Abstract

적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하는 단계와, 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계와, 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하는 단계를 포함하는 방법이 제공된다.

Description

오디오 신호 디코더를 위한 비트 에러 검출기
본 출원은 멀티채널 또는 스테레오 오디오 신호 디코더 내의 비트 에러 검출기에 관한 것으로서, 전적인 것은 아니지만, 특히 휴대형 장치에서의 사용을 위한 향상된 보이스 서비스 오디오 신호 디코더에 관한 것이다.
음성 또는 음악과 같은 오디오 신호는 예를 들어 오디오 신호의 효율적인 전송 또는 저장을 가능하게 하도록 인코딩된다.
오디오 인코더 및 디코더(또한 코덱으로서 알려져 있음)는 음악 및 주위 사운드(음성 코딩 견지에서, 배경 노이즈라 칭할 수 있음)와 같은 오디오 기반 신호를 표현하는데 사용된다. 이들 유형의 코더(coder)는 통상적으로 코딩 프로세스를 위한 음성 모델을 이용하지 않고, 오히려 음성을 포함하는 모든 유형의 오디오 신호를 표현하기 위한 프로세스를 사용한다. 음성 인코더 및 디코더(코덱)는 음성 신호를 위해 최적화된 오디오 코덱인 것으로 간주될 수 있고, 고정 또는 가변 비트 레이트(bit rate)로 동작할 수 있다.
오디오 인코더 및 디코더는 종종 낮은 복잡도 소스 코더로서 설계된다. 달리 말하면, 매우 복잡한 프로세싱이 필요하지 않고 오디오 신호의 인코딩 및 디코딩을 수행하는 것이 가능하다.
그 예는 변환 코딩(transform coding)이다. 음악 신호 오디오 인코딩에 대해, 변환 코딩은 일반적으로 음성 신호에 더 적합하고 직접적으로 적용되는 ACELP (Algebraic Code Excited Linear Prediction) 기술보다 더 낫다. 변환 코딩은 코딩 변환 계수 벡터 서브밴드 방식에 의해 수행된다. 달리 말하면, 오디오 신호는 파라미터가 결정되는 서브밴드로 분할되고, 파라미터는 벡터 또는 격자(lattice)가 양자화되는 서브벡터를 표현한다.
음성 및 오디오 코딩을 위한 낮은 복잡도 알고리즘은 예를 들어 모바일 단말기 기반 통신을 위한 매우 적절한 자산을 구성한다. 구조화된 코드북은 코딩 효율성을 유지하면서도 낮은 저장성 및 낮은 복잡도를 가지므로, 예컨대 3GPP(3rd Generation Partnership Project) 내에서 표준화된 향상된 보이스 서비스(Enhanced Voice Service: EVS) 코덱과 같은 여러 최신 음성 및 오디오 코덱에서 선호될 수 있다.
이러한 음성 및 오디오 코덱들 내에서 사용되는 코드북들은 예컨대 참고 문헌인 엘세비어(Elsevier), 신호 처리, 2002년, 제82호, 563-586 페이지, A. Vasilache, B. Dumitrescu 및 I. Tabus의 "LSF 양자화에 대한 응용을 가진 다중 스케일 리더 격자 구조 VQ(Multiple-scale leader-lattice VQ with application to LSF quantization)"에 서술된 바와 같은 격자 구조들에 기반할 수 있으며, 이 참고 문헌은 참조에 의해 본 명세서에 통합된다.
격자 코드북을 리더 클래스들의 유니온으로서 정의하는 것이 가능하며, 리더 클래스들 각각은 리더 벡터에 의해 특징지어진다. 리더 벡터는 n 차원 벡터(n은 정수를 나타냄)이며 그것의 (가령, 양의) 성분들은 (가령, 내림 차순으로) 정렬된다. 리더 벡터에 대응하는 리더 클래스는 이때 상기 리더 벡터 및 상기 리더 벡터의 모든 부호 순열을 통해 획득되는 모든 벡터들로 구성된다(일부 가능한 한계가 있음). 하나, 일부, 또는 모든 리더 클래스들은 각기 하나 이상의 스케일들과 결부되며 그런 다음 격자 코드북이 스케일링되고/되거나 스케일링되지 않은 리더 클래스들의 유니온으로서 형성되는 것 역시 가능하다.
제 1 양태에 따르면, 적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하는 단계와, 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계와, 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하는 단계를 포함하는 방법이 제공된다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는, 격자 벡터 양자화된 파라미터 데이터로부터 인덱스를 형성하는 인덱스 정수 값을 결정하는 단계와, 인덱스를 형성하는 인덱스 정수 값 중 적어도 하나가 정확히 음수라는 것을 판정하는 단계와, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함할 수 있다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는, 데이터로부터 결합된 인덱스 값(I)을 결정하는 단계와, 결합된 인덱스 값(I)을 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 1 서브벡터 이외의 적어도 하나의 서브벡터에 대한 리더 클래스의 유니온의 카디널리티의 적어도 하나의 조합으로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하는 단계와, 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함하는 최상위 서브 인덱스를 결정하는 단계와, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함할 수 있다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는, 데이터가 컴포트 노이즈 생성 오디오 프레임을 나타내는 것을 판정하는 단계와, 정의된 파라미터 성분 값을 결정하는 단계와, 정의된 파라미터 성분 값이 정의된 한계 값보다 큰 것을 판정하는 단계 - 정의된 한계 값보다 큰 정의된 파라미터 성분 값은 디코더의 내부 샘플링 레이트를 나타냄 - 와, 디코더의 내부 샘플링 레이트의 값을 나타내는 시그널링 비트를 결정하는 단계와, 정의된 파라미터 성분 값에 기초한 디코더의 내부 샘플링 레이트가 시그널링 비트에 기초한 디코더의 내부 샘플링 레이트와 일치하지 않음을 판정하는 단계와, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함할 수 있다.
정의된 파라미터 성분 값은 최종 또는 최대 주파수 양자화된 파라미터일 수 있다.
정의된 파라미터 성분 값은 최고 차수 양자화된 파라미터일 수 있다.
비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하는 단계는, 데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 단계를 포함할 수 있다.
데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 단계는, 코드 벡터를 0(zero)으로 설정하는 단계를 포함할 수 있다.
파라미터는 라인 스펙트럼 주파수일 수 있다.
제 2 양태에 따르면, 적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하도록 구성된 입력과, 데이터 내에서 적어도 하나의 비트 에러를 판정하도록 구성된 비트 에러 판정기와, 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하도록 구성된 파라미터 디코더를 포함하는 디코더가 제공된다.
비트 에러 판정기는, 격자 벡터 양자화된 파라미터 데이터로부터 인덱스를 형성하는 인덱스 정수 값을 결정하고, 인덱스를 형성하는 인덱스 정수 값 중 적어도 하나가 정확히 음수라는 것을 판정하고, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 인덱스 정수 판정기를 포함할 수 있다.
비트 에러 판정기는, 데이터로부터 결합된 인덱스 값(I)을 결정하고, 결합된 인덱스 값(I)을 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 1 서브벡터 이외의 적어도 하나의 서브벡터에 대한 리더 클래스의 유니온의 카디널리티의 적어도 하나의 조합으로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하고, 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함하는 최상위 서브 인덱스를 결정하고, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 서브벡터 인덱스 비교기를 포함할 수 있다.
비트 에러 판정기는, 데이터가 컴포트 노이즈 생성 오디오 프레임을 나타내는 것을 판정하고, 정의된 파라미터 성분 값을 결정하고, 정의된 파라미터 성분 값이 정의된 한계 값보다 큰 것을 판정 - 정의된 한계 값보다 큰 정의된 파라미터 성분 값은 디코더의 내부 샘플링 레이트를 나타냄 - 하고, 디코더의 내부 샘플링 레이트의 값을 나타내는 시그널링 비트를 결정하고, 정의된 파라미터 성분 값에 기초한 디코더의 내부 샘플링 레이트가 시그널링 비트에 기초한 디코더의 내부 샘플링 레이트와 일치하지 않음을 판정하고, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 샘플링 레이트 비트 비교기를 포함할 수 있다.
정의된 파라미터 성분 값은 최종 또는 최대 주파수 양자화된 파라미터일 수 있다.
정의된 파라미터 성분 값은 최고 차수 양자화된 파라미터일 수 있다.
파라미터 디코더는 비트 에러의 판정에 기초하여 데이터와 연관된 코드 벡터를 정의된 값으로 설정하도록 구성될 수 있다.
정의된 값은 0일 수 있다.
파라미터는 라인 스펙트럼 주파수일 수 있다.
제 3 양태에 따르면, 적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하는 수단과, 데이터 내에서 적어도 하나의 비트 에러를 판정하는 수단과, 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하는 수단을 포함하는 장치가 제공된다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 수단은, 격자 벡터 양자화된 파라미터 데이터로부터 인덱스를 형성하는 인덱스 정수 값을 결정하는 수단과, 인덱스를 형성하는 인덱스 정수 값 중 적어도 하나가 정확히 음수라는 것을 판정하는 수단과, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 수단을 포함할 수 있다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 수단은, 데이터로부터 결합된 인덱스 값(I)을 결정하는 수단과, 결합된 인덱스 값(I)을 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 1 서브벡터 이외의 적어도 하나의 서브벡터에 대한 리더 클래스의 유니온의 카디널리티의 적어도 하나의 조합으로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하는 수단과, 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함하는 최상위 서브 인덱스를 결정하는 수단과, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 수단을 포함할 수 있다.
데이터 내에서 적어도 하나의 비트 에러를 판정하는 수단은, 데이터가 컴포트 노이즈 생성 오디오 프레임을 나타내는 것을 판정하는 수단과, 정의된 파라미터 성분 값을 결정하는 수단과, 정의된 파라미터 성분 값이 정의된 한계 값보다 큰 것을 판정하는 수단 - 정의된 한계 값보다 큰 정의된 파라미터 성분 값은 디코더의 내부 샘플링 레이트를 나타냄 - 과, 디코더의 내부 샘플링 레이트의 값을 나타내는 시그널링 비트를 결정하는 수단과, 정의된 파라미터 성분 값에 기초한 디코더의 내부 샘플링 레이트가 시그널링 비트에 기초한 디코더의 내부 샘플링 레이트와 일치하지 않음을 판정하는 수단과, 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 수단을 포함할 수 있다.
정의된 파라미터 성분 값은 최종 또는 최대 주파수 양자화된 파라미터일 수 있다.
정의된 파라미터 성분 값은 최고 차수 양자화된 파라미터일 수 있다.
비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 데이터의 디코딩을 제어하는 수단은, 데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 수단을 포함할 수 있다.
데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 수단은, 코드 벡터를 0(zero)으로 설정하는 수단을 포함할 수 있다.
파라미터는 라인 스펙트럼 주파수일 수 있다.
컴퓨터 프로그램 제품은 장치로 하여금 본 명세서에서 설명된 방법을 수행하게 할 수 있다.
전자 디바이스는 본 명세서에서 설명된 장치를 포함할 수 있다.
칩셋은 본 명세서에서 설명된 장치를 포함할 수 있다.
본 발명을 더 잘 이해하기 위해, 이제, 첨부 도면을 예로서 참조할 것이다.
도 1은 몇몇 실시예를 사용하는 전자 디바이스를 개략적으로 도시한다.
도 2는 몇몇 실시예에 따른 오디오 코덱 시스템을 개략적으로 도시한다.
도 3은 몇몇 실시예에 따른 도 2에 도시된 인코더를 개략적으로 도시한다.
도 4는 몇몇 실시예에 따른 도 2에 도시된 디코더를 개략적으로 도시한다.
도 5는 몇몇 실시예에 따른 도 4에 도시된 비트 에러 검출기를 개략적으로 도시한다.
도 6은 도 5에 도시된 인덱스 양수 판정기(index positive integer determiner)의 동작을 나타내는 흐름도를 도시한다.
도 7은 도 5에 도시된 서브벡터 인덱스 값 결정기의 동작을 나타내는 흐름도를 도시한다.
도 8은 도 5에 도시된 샘플링 레이트 비트 비교기의 동작을 도시하는 흐름도를 도시한다.
이하에는 계층화된 또는 스케일러블 가변 레이트 음성 및 오디오 코덱을 포함하는, 가능한 스테레오 및 멀티채널 음성 및 오디오 코덱을 더 상세히 설명한다.
EVS 코덱은 패킷 교환(PS) 네트워크의 특징인 프레임 손실 에러 유형을 위해 주로 개발되었다. 이러한 비트 에러에서, 즉 플립된 비트 스트림 내의 하나 이상의 비트는 받아들여질 수 없었다. 회선 교환(CS) 네트워크에서 이러한 추정은 더 이상 유효하지 않으며 이러한 에러는 처리될 필요가 있다.
일반적으로 코드북의 코드 벡터의 수 또는 카디널리티는 2의 거듭 제곱이므로 비트 에러를 판정할 수 없다. 따라서, 본 명세서에서 논의되는 몇몇 실시예에서의 개념은 격자 코드북에 대해 코드북의 카디널리티가 2의 거듭 제곱이 아니라는 정보를 이용하는 것이며, 따라서 인덱스의 값을 코드북의 카디널리티와 비교함으로써 유효하지 않은 인덱스가 판독될 때 비트 에러가 검출될 수 있는 것이다.
또한, 본 명세서에서 논의된 바와 같이, 실시예는 EVS 코덱에서의 라인 스펙트럼 주파수(LSF's)와 같은 인코딩 특성의 비트 에러를 검출하기 위한 다수의 접근법을 제안한다. 하나의 접근법은 인덱스가 그 정수 형태로 이용 가능하지 않으므로, 격자 코드 벡터 인덱스의 서브 파트 또는 서브벡터를 결정하는 것을 기초로 한다. 다른 접근법은 통신 노이즈 생성 시나리오에서 LSF 디코딩에 적용될 수 있으며, 다수의 내부 샘플링 레이트(예를 들어, 12.8kHz 및 16kHz)를 커버하는 제 1 스테이지 코드북의 특정 구조에 의존한다.
본 명세서에서 논의된 바와 같은 LSF 파라미터는 멀티스테이지 접근법을 사용하여 인코딩될 수 있으며, 그 최종 스테이지는 멀티 스케일 격자 벡터 양자화기(MSLVQ)에 의해 형성된다. 몇몇 예에서, MSLVQ는 16차원 LSF 벡터의 각 8차원 서브벡터에 대한 하나의 멀티스테이지 양자화기이다. 또한, 멀티스테이지 양자화기의 모든 스테이지는 신호 유형에 따라 주어진 비트 수를 사용할 수 있다. VQ 최적화 스테이지는 그들에게 할당된 모든 비트를 사용하지만, 최종 MSLVQ 스테이지는, 최종 스테이지에 대한 코드 벡터의 수 NCV가 2B-1 < NCV <= 2B를 성립하는 경우에 사용 가능한 비트들(B)의 양만큼 정확하게는 사용하지 않는다. 이 제약은 격자 리더 클래스의 카디널리티 또는 격자 리더 클래스의 유니온의 카디널리티가 정확히 2의 거듭 제곱이 아니라는 사실에서 기인한다. 이 차이는 리더 클래스의 고려된 유니온의 카디널리티보다 큰 인덱스가 수신될 때 코드 벡터 인덱스의 비트 에러를 시그널링하고 결정하기 위해 이용될 수 있다.
몇몇 실시예에서, 최종 MSLVQ 스테이지에 할당된 비트들의 수는 16보다 크거나 심지어 32보다도 크다. 따라서, 몇몇 실시예에서, 비트 스트림은 16비트의 정수로 형성될 수 있으므로, 따라서, 인덱스는 16비트의 정수 시퀀스로서 수신된다. 인덱스가 그것의 실제 값으로 결정될 수 있다면, 그 유효성은 그것을 16차원 잔류 벡터에 대해 이용 가능한 총 코드 벡터 수와 비교함으로써 평가될 수 있다. 그러나, 이러한 접근법은 16차원 잔류 벡터에 대해 이용 가능한 총 코드 벡터 수들의 계산을 필요로 하므로, 즉 코덱에서는 그와 같이 사용되지 않는다. 이러한 수들을 모두 계산하면 계산 복잡도가 증가하고/증가하거나 ROM에 저장된 룩업 테이블에 상당한 추가가 있을 것이다.
이와 관련하여, 본 출원의 실시예에 따른 코덱을 구비할 수 있는 예시적인 전자 디바이스 또는 장치(10)의 개략 블록도를 도시하고 있는 도 1을 먼저 참조한다.
장치(10)는 예를 들어, 무선 통신 시스템의 모바일 단말 또는 사용자 장비일 수 있다. 다른 실시예에서, 장치(10)는 비디오 카메라, 텔레비전(TV) 수신기, mp3 레코더/플레이어와 같은 오디오 레코더 또는 오디오 플레이어, 미디어 레코더(mp4 레코더/플레이어로서 또한 알려져 있음), 또는 오디오 신호의 프로세싱을 위해 적합한 임의의 컴퓨터와 같은 오디오-비디오 디바이스일 수 있다.
전자 디바이스 또는 장치(10)는 몇몇 실시예에서, 아날로그-대-디지털 컨버터(analogue-to-digital converter: ADC)(14)를 거쳐 프로세서(21)에 연결된 마이크로폰(11)을 포함한다. 프로세서(21)는 디지털-대-아날로그(digital-to-analogue: DAC) 컨버터(32)를 거쳐 라우드스피커(33)에 또한 연결된다. 프로세서(21)는 송수신기(RX/TX)(13)에, 사용자 인터페이스(UI)(15)에 그리고 메모리(22)에 또한 연결된다.
프로세서(21)는 몇몇 실시예에서 다양한 프로그램 코덱을 실행하도록 구성될 수 있다. 구현된 프로그램 코덱은 몇몇 실시예에서 본 명세서에 설명된 바와 같은 오디오 인코딩 또는 디코딩 또는 비트 에러 검출 코드를 포함한다. 구현된 프로그램 코드(23)는 몇몇 실시예에서, 예를 들어 필요할 때마다 프로세서(21)에 의한 검색을 위해 메모리(22) 내에 저장될 수 있다. 메모리(22)는 또한 데이터, 예를 들어 용례에 따라 인코딩되어 있는 데이터를 저장하기 위한 섹션(24)을 제공할 수 있다.
인코딩 및 디코딩 코드는 실시예에서 적어도 부분적으로 하드웨어 및/또는 펌웨어 내에 구현될 수 있다.
사용자 인터페이스(UI)(15)는 사용자가 예를 들어, 키패드를 거쳐 전자 디바이스(10)에 명령을 입력하고, 그리고/또는 예를 들어 디스플레이를 거쳐 전자 디바이스(10)로부터 정보를 얻는 것을 가능하게 한다. 몇몇 실시예에서, 터치 스크린은 사용자 인터페이스를 위한 입력 및 출력 기능의 모두를 제공할 수 있다. 장치(10)는 몇몇 실시예에서, 예를 들어 무선 통신 네트워크를 거쳐 다른 장치와 통신을 가능하게 하기 위해 적합한 송수신기(RX/TX)(13)를 포함한다.
송수신기(13)는 임의의 적합한 공지의 통신 프로토콜에 의해 다른 디바이스와 통신할 수 있고, 예를 들어 몇몇 실시예에서 송수신기(13) 또는 송수신기 수단은 적합한 범용 이동 통신 시스템(universal mobile telecommunications system: UMTS) 프로토콜, 예를 들어 IEEE 802.X와 같은 무선 근거리 통신망(wireless local area network: WLA), 블루투스(Bluetooth)와 같은 적합한 단거리 무선 주파수 통신 프로토콜, 또는 적외선 데이터 통신 경로(infrared data communication pathway: IRDA)를 사용할 수 있다.
장치(10)의 구조는 다양한 방식으로 보완되고 변경될 수 있다는 것을 이해할 수 있어야 한다.
장치(10)의 사용자는 예를 들어, 몇몇 다른 장치에 전송될 또는 메모리(22)의 데이터 섹션(24) 내에 저장될 음성 또는 다른 오디오 신호를 입력하기 위해 마이크로폰(11)을 사용할 수 있다. 대응 애플리케이션은 몇몇 실시예에서, 사용자 인터페이스(15)를 거쳐 사용자에 의해 이 목적으로 활성화될 수 있다. 몇몇 실시예에서, 오디오 신호의 포맷과 인코딩은 메모리(22) 내에 저장된 인코딩 코드를 이용하여 프로세서(21)에 의해 수행될 수 있다. 이하의 예에서, 마이크로폰(11)은 입력을 위해 오디오 신호를 발생하도록 구성되지만, 입력 오디오 신호는 메모리(22)로부터와 같이 임의의 적합한 입력으로부터 그리고 구체적으로 메모리(22)의 저장된 데이터 섹션(24) 내에 수신될 수 있다는 것이 이해될 수 있을 것이다. 몇몇 실시예에서, 입력 오디오 신호 또는 적어도 하나의 오디오 신호는 송수신기(13)를 거쳐 수신될 수 있다. 예를 들어, 송수신기(13)는 예를 들어, 송수신기(13)를 거쳐 장치에 연결된 블루투스 디바이스와 같은, 장치(10)의 외부 마이크로폰에 의해 발생된 오디오 신호를 수신하도록 구성될 수 있다.
아날로그-대-디지털 컨버터(ADC)(14)는 몇몇 실시예에서, 아날로그 오디오 신호를 디지털 오디오 신호로 변환하고, 디지털 오디오 신호를 프로세서(21)에 제공한다. 몇몇 실시예에서, 마이크로폰(11)은 일체형 마이크로폰 및 ADC 기능을 포함할 수 있고, 디지털 오디오 신호를 프로세싱을 위해 프로세서에 직접 제공할 수 있다.
프로세서(21)는 이러한 실시예에서, 이어서 도 2에 도시된 시스템, 및 구체적으로 도 3에 도시된 인코더, 및 도 4 및 도 5에 도시된 디코더, 및 도 6 내지 도 8에 도시된 인코더의 상세를 참조하여 설명되는 바와 동일한 방식으로 디지털 오디오 신호를 프로세싱한다.
생성된 비트 스트림은 몇몇 실시예에서 다른 장치로의 전송을 위해 송수신기(13)에 제공될 수 있다. 대안적으로, 코딩된 오디오 데이터는 몇몇 실시예에서, 예를 들어 동일한 장치(10)에 의한 이후의 전송을 위해 또는 이후의 제시를 위해, 메모리(22)의 데이터 섹션(24) 내에 저장될 수 있다.
또한, 장치(10)는 몇몇 실시예에서, 대응적으로 인코딩된 데이터를 갖는 비트 스트림을 다른 장치로부터 송수신기(13)를 거쳐 수신할 수 있다. 본 예에서, 프로세서(21)는 메모리(22) 내에 저장된 디코딩 프로그램 코드를 실행할 수 있다. 프로세서(21)는 이러한 실시예에서, 수신된 데이터를 디코딩하고, 디코딩된 데이터를 디지털-대-아날로그 컨버터(32)에 제공한다. 디지털-대-아날로그 컨버터(32)는 디지털 디코딩된 데이터를 아날로그 오디오 데이터로 변환하고, 몇몇 실시예에서 라우드스피커(33)를 거쳐 아날로그 오디오를 출력할 수 있다. 디코딩 프로그램 코드의 실행은 몇몇 실시예에서, 사용자 인터페이스(15)를 거쳐 사용자에 의해 호출된 애플리케이션에 의해 마찬가지로 트리거링될 수 있다.
수신된 인코딩된 데이터는 몇몇 실시예에서, 또한 예를 들어 이후의 디코딩 및 제시 또는 디코딩 또는 또 다른 장치로의 포워딩을 위해, 메모리(22)의 데이터 섹션(24) 내의 라우드스피커(33)를 거쳐 즉각적인 제시 대신에 저장될 수 있다.
도 3에 설명된 개략적인 구조는 단지 오디오 코덱의 동작의 일부, 구체적으로 도 1에 도시된 장치에서 구현된 예시적으로 도시된 바와 같은 오디오 인코더 장치 또는 방법의 일부만을 표현하고 있다는 것이 이해될 수 있을 것이다. 유사하게, 도 4 및 도 5에 도시된 개략적인 구조 및 도 6 내지 도 8에 도시된 방법 단계는 오디오 코덱의 동작의 일부만을 나타내며, 구체적으로는 도 1에 도시된 장치에 구현된 예시적인 오디오 디코더 장치 또는 방법의 일부만을 나타낸다.
실시예에 의해 채용된 바와 같은 오디오 코덱의 일반적인 동작이 도 2에 도시되어 있다. 일반적인 오디오 코딩/디코딩 시스템은 도 2에 개략적으로 도시된 바와 같이, 인코더 및 디코더의 모두를 포함한다. 그러나, 몇몇 실시예는 인코더 또는 디코더 중 하나, 또는 인코더 및 디코더의 모두를 구현할 수 있다는 것이 이해될 수 있을 것이다. 도 2에 의해 도시된 것은 인코더(104), 저장소 또는 미디어 채널(106) 및 디코더(108)를 갖는 시스템(102)이다. 전술된 바와 같이, 몇몇 실시예는 디코더(108), 또는 인코더(104) 및 디코더(108) 모두 중 하나를 포함하거나 구현할 수 있다는 것이 이해될 수 있을 것이다.
인코더(104)는 몇몇 실시예에서 미디어 채널(106)을 통해 저장되거나 전송될 수 있는 비트 스트림(112)을 생성하는 입력 오디오 신호(110)를 포함한다. 인코더(104)는 몇몇 실시예에서, 2개 이상의 오디오 신호를 인코딩하는 멀티채널 인코더를 포함할 수 있다.
비트 스트림(112)은 디코더(108) 내에서 수신될 수 있다. 디코더(108)는 비트 스트림(112)을 압축 해제하고, 출력 오디오 신호(114)를 생성한다. 디코더(108)는 전체 디코딩 동작의 부분으로서 변환 디코더를 포함할 수 있다. 디코더(108)는 2개 이상의 오디오 신호를 디코딩하는 멀티채널 디코더를 또한 포함할 수 있다. 입력 신호(110)와 관련하는 비트 스트림(112)의 비트 레이트 및 출력 오디오 신호(114)의 품질은 코딩 시스템(102)의 성능을 규정하는 주요 특징이다.
도 3은 몇몇 실시예에 따른 인코더(104)를 개략적으로 도시하고 있다.
본 명세서에 설명된 바와 같은 실시예의 개념은 효율적인 고품질 및 저 비트 레이트 실제 코딩을 생성하기 위해 인코딩을 결정하고 오디오 신호에 적용하는 것이다. 이와 관련하여, 도 3과 관련하여, 예시적인 인코더(104)가 몇몇 실시예에 따라 도시되어 있다. 이하의 예에서, 인코더는 오디오 신호를 표현하는 주파수 도메인 파라미터를 발생하고 발생된 주파수 도메인 파라미터를 적합한 벡터 격자 양자화를 사용하여 인코딩하도록 구성되지만, 몇몇 실시예에서, 본 명세서에 설명된 바와 같은 격자 양자화에 사용된 파라미터는 오디오 신호 또는 다른 유형의 신호(예를 들어, 이미지 또는 비디오)를 규정하거나 표현하는 임의의 적합한 파라미터일 수 있다는 것이 이해될 수 있을 것이다. 유사하게, 본 명세서에서 기술된 것 이외의 격자 양자화 방법의 변형이 오디오 신호를 인코딩하기 위해 사용될 수 있다.
인코더(104)는 몇몇 실시예에서, 프레임 분할기(frame sectioner)(201) 또는 오디오 신호를 분할하기 위한 적합한 수단을 포함한다. 프레임 분할기(201)는 오디오 신호(예를 들어, 모노, 좌측 및 우측 스테레오 또는 임의의 멀티채널 오디오 표현)를 수신하고, 오디오 신호 및 섹션을 입력하거나 또는 오디오 신호 데이터를 주파수 또는 다른 도메인 변환을 위해 적합한 섹션 또는 프레임으로 분할하도록 구성된다. 프레임 분할기(201)는 몇몇 실시예에서, 또한 임의의 적합한 윈도잉 기능에 따라 오디오 신호 데이터의 이들 프레임 또는 섹션을 윈도잉하도록 구성될 수 있다. 예를 들어, 프레임 분할기(201)는 몇몇 실시예에서 10 ms 만큼 각각 선행 및 후속 프레임을 중첩하는 20 ms의 프레임을 발생하도록 구성될 수 있다.
몇몇 실시예에서, 오디오 프레임은 파라미터 결정기(203)로 통과될 수 있다.
몇몇 실시예에서, 인코더는 입력 오디오 신호(들) 또는 입력 오디오 신호 프레임을 표현하는 적어도 하나의 파라미터를 결정하기 위한 적합한 수단의 파라미터 결정기(203)를 포함한다. 이하의 예에서, 파라미터는 선 스펙트럼 주파수(line spectral frequency: LSF) 파라미터이지만, 몇몇 실시예에서 임의의 적합한 파라미터가 결정될 수 있다는 것이 이해될 수 있을 것이다.
예를 들어, 몇몇 실시예에서, 파라미터 결정기는 변환기(203) 또는 변환을 위한 적합한 수단을 포함한다. 변환기(203)는 몇몇 실시예에서, 이들 오디오 신호의 주파수 도메인(또는 다른 적합한 도메인) 파라미터를 발생하도록 구성된다. 이들 주파수 도메인 파라미터 표현은 몇몇 실시예에서 파라미터 인코더(205)로 통과될 수 있다.
몇몇 실시예에서, 변환기(203)는 오디오 신호 데이터 상에 임의의 적합한 시간 대 주파수 도메인 변환을 수행하도록 구성될 수 있다. 예를 들어, 시간 대 주파수 도메인 변환은 이산 푸리에 변환(discrete Fourier transform: DFT), 고속 푸리에 변환(Fast Fourier transform: FFT), 변형 이산 코사인 변환(modified discrete cosine transform: MDCT)일 수 있다. 이하의 예에서, 고속 푸리에 변환(FFT)이 사용된다.
더욱이, 변환기는 또한 각각의 입력 채널 오디오 신호 데이터의 개별 주파수 밴드 도메인 파라미터 표현(서브밴드 파라미터 표현)을 발생하도록 구성될 수 있다. 이들 밴드는 임의의 적합한 방식으로 배열될 수 있다. 예를 들어, 이들 밴드는 선형으로 이격되거나, 또는 지각적 또는 정신음향적으로 할당될 수 있다. 발생된 파라미터는 임의의 적합한 파라미터일 수 있다.
몇몇 실시예에서, LSF 파라미터와 같은 표현이 파라미터 인코더(205)에 통과된다.
몇몇 실시예에서, 인코더(104)는 파라미터 인코더(205)를 포함할 수 있다. 파라미터 인코더(205)는 오디오 신호 입력의 파라미터 표현, 예를 들어 결정된 LSF 파라미터를 수신하도록 구성될 수 있다. 파라미터 인코더(205)는 또한 몇몇 실시예에서, 각각의 LSF 파라미터값을 서브벡터로서 사용하고 벡터 양자화기 내로 입력을 위한 벡터를 생성하기 위해 각각의 서브벡터를 조합하도록 구성될 수 있다. 달리 말하면, 장치는 적어도 하나의 오디오 신호를 규정하는 파라미터의 제 1 벡터(또는 파라미터를 표현하는 제 1 벡터의 튜플)를 발생하도록 구성된 벡터 발생기를 포함할 수 있다. 이하의 예에서, 파라미터는 선형 스펙트럼 주파수이지만, 다른 실시예에서는 임의의 다른 적절한 주파수 유도 파라미터가 될 수 있다.
벡터 양자화기의 출력은 몇몇 실시예에서 인코더이고, 따라서 벡터 양자화된 오디오 신호 출력은 오디오 신호의 '인코딩된' 또는 파라미터 인코딩된 표현이다.
몇몇 실시예에서, 파라미터 인코더(205)는 벡터 발생기(451)를 포함한다. 벡터 발생기(451)는 LSF 파라미터를 수신하고 이들 값으로부터 N 차원 벡터를 발생하도록 구성된다.
발생된 벡터는 몇몇 실시예에서 격자 벡터 양자화기(453)로 통과될 수 있다.
몇몇 실시예에서, 파라미터 인코더(205)는 격자 벡터 양자화기(453)를 포함한다. 격자 벡터 양자화기(453)는 LSF 파라미터로부터 발생된 입력 벡터를 수신하고, 규정된 격자 내에서 발생하고 따라서 디코더에서 유사한 격자를 사용하여 디코딩될 수 있는 가장 가까운 이웃 또는 N 출력을 발생한다.
격자 양자화기(453)는 몇몇 실시예에서, 유형의 저장 매체 메모리(22) 상에 저장된 컴퓨터 프로그램의 각각의 프로그램 코드(23)에 의해 규정될 수 있다.
본 발명에 대한 개념 및 실시예를 소개하기 전에, 본 출원인은 먼저 통상의 격자 벡터 양자화를 설명할 것이다. 몇몇 격자 양자화기에서, 잠재적인 기저 코드 벡터의 이 세트의 각각의 결정된 잠재적인 기저 코드 벡터가 기저 코드 벡터의 상이한 세트의 잠재적인 기저 코드 벡터와 연계되는, 잠재적인 기저 코드 벡터의 세트의 초기 발생 또는 결정이 수행된다.
잠재적인 기저 코드 벡터의 각각의 세트는 적어도 하나의 기저 코드 벡터를 포함한다. 기저 코드 벡터의 각각의 세트는 복수의 스케일 대표(scale representative) 중 적어도 하나의 스케일 대표와 연계되기 때문에, 코드 벡터는 잠재적인 기저 코드 벡터의 세트의 기저 코드 벡터와 잠재적인 기저 코드 벡터의 세트와 연계된 적어도 하나의 스케일 대표의 스케일 대표에 기초하여 결정될 수 있다. 달리 말하면, 코드 벡터는 각각의 스케일 대표에 의해 스케일링된 기저 코드 벡터에 기초하여 표현될 수 있다. 예를 들어, 스케일 대표는 스케일값을 표현할 수도 있는데, 여기서 코드 벡터는 기저 코드 벡터 및 각각의 스케일값의 곱에 기초하여 결정될 수 있다. 더욱이, 몇몇 실시예에서, 코드북이 기저 벡터의 (부호가 붙은) 치환을 적용함으로써 얻어진다.
예를 들어, 기저 코드 벡터의 적어도 하나의 세트는 적어도 2개의 스케일 대표와 연계된다.
이에 따라, 예로서, 코드북은 기저 코드 벡터의 복수의 세트에 기초하는 그리고 복수의 기저 코드 벡터의 기저 코드 벡터의 각각의 세트와 연계된 각각의 적어도 하나의 스케일값에 기초하는 코드 벡터를 포함하는 코드 벡터의 세트를 포함할 수 있다. 이 코드 벡터의 세트는 기저 코드 벡터의 각각의 세트의 각각의 기저 코드 벡터에 대해 그리고 기저 코드 벡터의 각각의 세트와 연계된 적어도 하나의 스케일 대표의 각각에 대해, 각각의 스케일 대표에 의해 스케일링된 각각의 기저 코드 벡터에 기초하는 코드 벡터를 포함할 수 있다.
예를 들어, 기저 코드 벡터의 상기 세트는 리더 클래스(leader class)를 표현할 수 있는데, 여기서 각각의 리더 클래스는 상이한 리더 벡터 및 상기 리더 벡터의 치환을 포함한다. 따라서, 상기 리더 벡터 및 상기 리더 벡터의 치환은 기저 코드 벡터의 각각의 세트의 기저 코드 벡터를 표현할 수 있다.
기저 코드 벡터의 복수의 세트는 기저 코드 벡터의 제 2 복수의 세트의 서브세트를 표현할 수 있다. 예를 들어, 기저 코드 벡터의 각각의 세트가 리더 클래스를 표현한다는 가정 하에, 복수의 리더 클래스는 제 2 복수의 리더 클래스의 서브세트를 표현할 수 있다. 따라서, 복수의 리더 클래스는 제 2 복수의 리더 클래스에 대해 절삭된(truncated) 복수의 리더 클래스로서 고려될 수 있다.
예를 들어, 각각의 잠재적인 기저 코드 벡터는 인코딩될 입력 벡터에 가장 가까운 기저 코드 벡터의 각각의 세트의 적어도 하나의 기저 코드 벡터의 기저 코드 벡터를 결정함으로써 결정될 수 있다. 임의의 종류의 적합한 기준이 인코딩될 입력 벡터에 대해 가장 가까운 기저 코드 벡터를 발견하기 위해 사용될 수 있다.
예로서, 잠재적인 기저 코드 벡터는 절대값으로 표현된 입력 벡터에 대해 가장 가까운 기저 코드 벡터에 기초하여 그리고 입력 벡터의 값의 부호의 정보에 기초하여 결정될 수 있고, 여기서 이 정보는 입력 벡터 내의 각각의 값의 각각의 위치의 부호를 포함할 수 있고 결정된 잠재적인 기저 코드 벡터의 값에 부호를 할당하는데 사용된다. 더욱이, 예로서, 절대값으로 표현된 입력 벡터에 가장 가까운 기저 코드 벡터가 결정될 수 있는데, 여기서 절대값으로 표현된 입력 벡터는 입력 벡터의 값에 대응하는 절대값을 포함하고, 잠재적인 기저 코드 벡터는 결정된 가장 가까운 기저 코드 벡터를 표현하고, 잠재적인 기저 코드 벡터의 값의 부호는 벡터 내의 동일한 위치에서 입력 벡터의 값의 부호에 대응하고, 이는 기저 코드 벡터의 세트의 기저 코드 벡터의 패리티(parity)가 0이면 성립할 수 있다. 다른 예로서, 기저 코드 벡터의 세트의 기저 코드 벡터의 패리티가 -1이면, 잠재적인 기저 코드 벡터의 값의 부호는 벡터 내의 동일한 위치에서 입력 벡터의 값의 부호에 대응하여 각각 할당될 수 있고, 홀수의 음의(negative) 성분이 존재하지 않으면, 최저 0이 아닌 절대값을 갖는 잠재적인 기저 코드 벡터 내의 값이 그 부호를 변경할 수 있다. 또는, 다른 예로서, 기저 코드 벡터의 세트의 기저 코드 벡터의 패리티가 +1이면, 잠재적인 기저 코드 벡터의 값의 부호는 벡터 내의 동일한 위치에서 입력 벡터의 값의 부호에 대응하여 각각 할당될 수 있고, 짝수의 음의 성분이 존재하지 않으면, 최저 0이 아닌 절대값을 갖는 잠재적인 기저 코드 벡터 내의 값이 그 부호를 변경할 수 있다.
입력 벡터를 인코딩하기 위한 코드 벡터는 이어서 결정된 잠재적인 코드 벡터의 세트에 기초하여 통상적으로 결정되고, 여기서 결정된 잠재적인 코드 벡터의 상기 세트는 코드 벡터의 서브세트를 규정하고, 코드 벡터의 상기 서브세트는 각각의 결정된 잠재적인 기저 코드 벡터 및 각각의 잠재적인 기저 코드 벡터의 기저 코드 벡터의 세트와 연계된 각각의 스케일 대표에 대해, 각각의 스케일 대표에 의해 스케일링된 각각의 잠재적인 기저 코드 벡터에 기초하는 코드 벡터를 포함한다.
이에 따라, 입력 벡터를 인코딩하기 위한 코드 벡터의 탐색이 결정된 잠재적인 코드 벡터에 의해 규정된 그리고 각각의 결정된 잠재적인 코드 벡터의 기저 코드 벡터의 세트와 연계된 각각의 적어도 하나의 스케일 대표에 의해 규정된 코드 벡터의 서브세트 내에서 수행되었다. 코드 벡터의 이 서브세트는 코드북과 연계된 코드 벡터의 서브세트를 표현할 수 있기 때문에, 코드 벡터의 이 서브세트의 코드 벡터의 수는 코드 벡터의 세트의 코드 벡터의 수보다 작을 수 있다.
예로서, 복수의 스케일 대표의 각각의 스케일 대표는 코드 벡터의 적어도 하나의 세트와 연계될 수 있고, 여기서 각각의 스케일 대표와 연계된 코드 벡터의 상기 적어도 하나의 세트의 코드 벡터의 각각의 세트는 기저 코드 벡터의 복수의 세트의 기저 코드 벡터의 세트와 연계되어 각각의 스케일 대표와 연계된 코드 벡터의 상기 적어도 하나의 세트의 코드 벡터의 각각의 세트가 각각의 스케일 대표로 기저 벡터의 연계된 각각의 세트의 기저 벡터를 스케일링함으로써 얻어진 코드 벡터를 포함하게 된다.
이에 따라, 복수의 스케일 대표의 각각의 스케일 대표와 연계된 기저 코드 벡터의 적어도 하나의 세트의 코드 벡터는 이 스케일 대표로 스케일 대표와 연계된 기저 코드 벡터의 각각의 세트의 기저 코드 벡터를 스케일링하는 것에 기초하여 결정될 수 있다.
예를 들어, 기저 코드 벡터의 상기 세트가 리더 클래스를 표현하는 경우에, 각각의 스케일 대표와 연계된 기저 코드 벡터의 적어도 하나의 세트는 리더 클래스의 유니온으로서 고려될 수 있다. 일반적으로 리더 클래스의 유니온은 스케일에 독립적인 것으로 이해될 수 있을 것이다. 따라서, 코드북은 리더 클래스의 적어도 하나의 유니온을 포함할 수 있고, 리더 클래스의 각각의 유니온은 적어도 하나의 스케일 대표 중 하나와 그리고 복수의 기저 코드 벡터의 기저 코드 벡터의 적어도 하나의 세트와 연계된다. 예로서, 적어도 하나의 스케일 대표는 적어도 2개의 스케일 대표를 포함할 수 있는 복수의 스케일 대표를 표현할 수 있다.
따라서, 예를 들어, bx - 여기서, x∈{0, 1, ... X-1} - 는 기저 코드 벡터의 복수의 세트의 기저 코드 벡터의 세트를 표현하는데, 여기서 X는 기저 코드 벡터의 복수의 세트의 세트의 수를 표현한다. 기저 코드 벡터의 각각의 세트는 적어도 하나의 기저 코드 벡터 bx,y와 연계되거나 포함하고, 여기서 Bx는 기저 코드 벡터의 각각의 세트의 기저 코드 벡터의 수를 표현하는데, 즉 y∈{0, 1, ... Bx-1}이 성립한다. 예를 들어, 기저 코드 벡터의 세트의 기저 코드 벡터의 수(Bx)는 기저 코드 벡터의 상이한 세트에 대해 상이할 수 있고 그리고/또는 기저 코드 벡터의 적어도 2개의 세트에 대해 동일할 수 있다.
달리 말하면, 리더 벡터는 단지 하나의 벡터이다. 리더 벡터의 모든 부호가 붙은 치환과 함께, 이어서 이 세트는 리더 벡터의 리더 클래스(또는 본 명세서에 설명된 바와 같이, 기저 코드 벡터)를 형성한다. 다수의 리더 클래스를 함께 조합할 때, 리더 클래스의 유니온이 형성된다. 다음에, 이 유니온/유니온들에 하나 이상의 스케일이 부착될 수 있다.
따라서, 예를 들어, 기저 코드 벡터(bx,y)에 기초하여 그리고 스케일 대표(sz)에 기초하여 코드 벡터(cx,z,y)를 결정하는 것이 가능할 수 있고, 여기서 인덱스 z는 복수의 스케일 대표(s0 ... sS-1)의 각각의 스케일 대표의 인덱스를 표현하는데, 즉 z∈{0, 1, ... S-1}이 성립한다.
예를 들어, 기저 코드 벡터 bx,y=[bx,y,0, bx,y,1, ... bx,y,n-1]의 값(bx,y,t)이 절대값을 표현하는 경우에, 여기서 t∈{0, 1, ... n-1}이 성립하고 n은 각각의 기저 코드 벡터(bx,y)의 길이를 표현하고, 절대값으로 표현된 입력 벡터가 기저 코드 벡터의 각각의 세트의 잠재적인 코드 벡터를 결정하기 위해 사용되면, 결정된 가장 가까운 기저 코드 벡터(bx,y)의 (t+1)번째 위치에서 각각의 값(bx,y,t)의 부호는, 기저 코드 벡터(bx,y)에 기초하여 그리고 스케일 대표(sz)에 기초하여 코드 벡터(cx,z,y)를 결정하는 것이 수행되기 전에, 입력 벡터(i)의 (t+1)번째 위치에서 각각의 값(it)의 부호에 기초하여 할당될 수 있다.
예로서, i=[i0, i1, ..., in-1]이 입력 벡터를 표현하면, 절대값으로 표현된 입력 벡터는 [|i0|, |i1|, ..., |in-1|]에 의해 표현될 수 있다. 예를 들어, 결정된 가장 가까운 기저 코드 벡터(bx,y)의 (t+1)번째 위치에서 각각의 값(bx,y,t)의 부호는 입력 벡터의 (t+1)번째 위치에서 각각의 값(k)의 부호에 각각 할당될 수 있는데, 여기서 기저 코드 벡터(bx)의 세트의 기저 코드 벡터(bx,y)의 패리티가 0이면 이것이 성립할 수 있다. 다른 예로서, 기저 코드 벡터(bx)의 기저 코드 벡터(bx,y)의 패리티가 -1이면, 잠재적인 기저 코드 벡터의 값(bx,y,t)의 부호는 벡터 내의 동일한 위치에서 입력 벡터의 값의 부호에 대응하여 각각 할당될 수 있고, 홀수의 음의 성분이 존재하지 않으면, 최저 0이 아닌 절대값을 갖는 잠재적인 기저 코드 벡터 내의 값(bx,y,t)은 그 부호를 변경할 수 있다. 또는, 다른 예로서, 기저 코드 벡터(bx)의 세트의 기저 코드 벡터(bx,y)의 패리티가 +1이면, 잠재적인 기저 코드 벡터의 값(bx,y,t)의 부호는 벡터 내의 동일한 위치에서 입력 벡터의 값의 부호에 대응하여 각각 할당될 수 있고, 짝수의 음의 성분이 존재하지 않으면, 최저 0이 아닌 절대값을 갖는 잠재적인 기저 코드 벡터 내의 값(bx,y,t)은 그 부호를 변경할 수 있다.
비한정적인 예로서, 코드 벡터(cx,z,y)는 cx,z,y = [bx,y,0·sz, bx,y,1·sz, ..., bx,y,n-1·sz,]에 의해 결정될 수 있다.
각각의 스케일 대표(sz) - 여기서 z∈{0, 1, ... S-1}이 성립함 - 는 기저 코드 벡터의 적어도 하나의 세트와 연계된다. 예를 들어, 비한정적인 예로서, 이 각각의 기적 코드 벡터의 적어도 하나의 세트는 기저 코드 벡터(bx)의 세트에 의해 표현될 수 있고, 여기서 x∈{0, 1, ... nz-1}이고, nz는 각각의 스케일 대표(sz)와 연계된 기저 코드 벡터의 세트의 수를 표현할 수 있고, 여기서 0<nz<X가 성립한다. 각각의 스케일 대표(sz)와 기저 코드 벡터(bx)의 연계된 적어도 하나의 세트 사이의 이 링크에 기초하여 - 여기서, x∈{0, 1, ... nz-1} - , 코드 벡터(cx,z,y)의 연계된 적어도 하나의 세트 - 여기서, x∈{0, 1, ... nz-1} 및 y∈{0, 1, ... Bx-1} 및 z∈{0, 1, ... S-1} - 가 결정될 수 있다.
따라서, 예로서, 전술된 코드북의 코드북 구조는 복수의 스케일 대표(sz), 기저 코드 벡터(bx)의 복수의 세트, 및 기저 코드 벡터의 연계된 적어도 하나의 세트와 각각의 스케일 대표 사이의 링크에 의해 규정될 수 있다.
기저 코드 벡터의 적어도 하나의 세트, 예를 들어 기저 코드 벡터(b0)의 적어도 세트는 적어도 2개의 스케일 대표와 연계되기 때문에, 기저 코드 벡터의 동일한 세트는 제 1 스케일 대표와 연계된 코드 벡터의 적어도 하나의 세트의 코드 벡터를 구성하고 적어도 하나의 추가의 스케일 대표와 연계된 코드 벡터의 적어도 하나의 세트의 코드 벡터를 구성하는데 사용될 수 있다.
기저 코드 벡터의 복수의 세트의 기저 코드 벡터의 각각의 세트에 대해, 다른 방식으로 입력 벡터를 인코딩하기 위한 잠재적인 기저 코드 벡터를 결정하는 것이 가능하다.
예를 들어, 코드 벡터의 서브세트로부터 입력 벡터를 인코딩하기 위한 코드 벡터를 결정하는 것은 결정된 왜곡 메트릭 또는 거리, 또는 에러값에 기초한다.
이러한 예에서, 복수의 스케일 표현의 스케일 표현이 선택된다.
더욱이, 선택된 스케일 표현과 연계된 기저 코드 벡터의 세트의 결정된 잠재적인 기저 코드 벡터가 선택된다.
코드 벡터는 이어서 선택된 잠재적인 기저 코드 벡터에 기초하여 그리고 선택된 스케일 표현에 기초하여 결정될 수 있는데, 여기서 코드 벡터의 이 결정은 본 명세서에 설명된 방법에 대해 설명된 바와 같이 수행될 수 있다.
결정된 코드 벡터 및 입력 벡터에 기초하는 몇몇 예에서, 왜곡 메트릭이 결정된다. 예를 들어, 상기 왜곡 메트릭은 결정된 코드 벡터와 입력 벡터 사이의 임의의 종류의 적합한 거리에 기초할 수 있다. 예로서, 해밍 거리(Hamming distance) 또는 유클리드 거리(Euclidian distance) 또는 임의의 다른 거리가 사용될 수 있다. 예로서, 코드 벡터 및 왜곡 메트릭을 결정하는 것은 선택된 스케일 표현과 연계된 각각의 코드 벡터 및 이 선택된 스케일 표현과 연계된 기저 코드 벡터의 세트를 고유적으로 고려함으로써 계산될 수 있다.
예를 들어,
Figure pct00001
이 코드 벡터를 표현하고,
Figure pct00002
이 입력 벡터를 표현하면, 거리(d)는 이하의 식에 기초하여 계산될 수 있다.
Figure pct00003
상기 식에 따른 이 거리(d)는 이하의 식에 기초하여 계산된 거리(d')로 대체될 수 있다.
Figure pct00004
또는, 다른 예로서, 왜곡 메트릭이 가중 함수에 기초하여 결정되는 경우에, 상기 식에 따른 거리(d)는 이하와 같이 보정될 수도 있는데,
Figure pct00005
여기서, wk는 가중 함수의 가중 팩터를 표현한다.
이에 따라, 상기 식에 따른 거리(d')는 이하의 방식으로 가중 함수에 의해 가중될 수 있다.
Figure pct00006
예를 들어, 만일 이것이 최초 결정된 왜곡 메트릭이면, 왜곡 거리(d 또는 d' 또는 dw 또는 dw')가 저장될 수 있고, 또는 저장된 왜곡 메트릭과 비될 수 있는데, 여기서 저장된 왜곡 메트릭은 새롭게 결정된 왜곡 메트릭이 저장된 왜곡 메트릭보다 양호하면 교체된다. 더욱이, 저장된 왜곡 메트릭과 연계된 코드 벡터가 저장될 수 있고 또는 이 코드 벡터의 식별자가 저장될 수 있다.
다음에, 예를 들어, 동작은 선택된 스케일 표현과 연계된 기저 코드 벡터의 임의의 추가의 세트가 존재하는지 여부를 점검할 수 있다. 만일 예이면, 선택된 스케일 표현과 연계된 기저 코드 벡터의 이 추가의 세트의 결정된 잠재적인 기저 코드 벡터가 선택된다. 만일 아니면, 복수의 스케일 표현의 추가의 스케일 표현에 대해 점검이 행해지지 않는다.
복수의 스케일 표현의 추가의 스케일 표현이 존재하면, 추가의 스케일 표현이 선택되고, 그렇지 않으면 최선의 거리 메트릭과 연계된 코드 벡터가 입력 벡터를 인코딩하기 위해 선택될 수 있다.
예를 들어, 기저 코드 벡터의 세트가 리더 클래스를 표현할 수 있는 경우에, 각각의 리더 클래스는 상이한 리더 벡터 및 상기 리더 벡터의 치환을 포함한다. 따라서, 리더 벡터 및 상기 리더 벡터의 치환은 기저 코드 벡터의 각각의 세트의 기저 코드 벡터를 표현할 수 있다. 예로서, 리더 벡터는 n-차원 벡터(n은 정수를 나타냄)이고, 그 (양의(positive)) 성분은 순서화된다(예를 들어, 내림차순으로). 리더 벡터에 대응하는 리더 클래스는 이어서 리더 벡터의 모든 부호가 붙은 치환(몇몇 가능한 한정을 가짐)을 통해 얻어진 리더 벡터 및 모든 벡터로 이루어진다.
리더 클래스의 유니온은 복수의 스케일 표현의 동일한 스케일 표현 및 각각의 스케일 표현과 연계된 기저 코드 벡터의 세트에 의해 규정될 수 있다. 예를 들어, 리더 클래스의 유니온은 스케일 대표로 기저 코드 벡터의 연계된 단계의 기저 코드 벡터를 스케일링함으로써 얻어진 코드 벡터의 세트와 연계될 수 있다.
리더 클래스의 이러한 유니온은 절삭으로서 고려될 수 있다. 따라서, 복수의 스케일 표현이 n개의 스케일 표현이면, 리더 클래스의 n개의 유니온이 규정될 수 있고, 여기서 리더 클래스의 각각의 유니온은 각각의 스케일 표현 및 각각의 스케일 표현과 연계된 기저 코드 벡터의 세트에 의해 규정된다.
이에 따라, 복수의 스케일 표현 및 기저 코드 벡터의 복수의 세트는 리더 클래스의 복수의 유니온을 규정하여 이에 의해 코드북을 규정할 수도 있는데, 여기서 예로서, 리더 클래스의 각각의 유니온은 스케일링된 리더 클래스의 유니온으로서 고려될 수 있다.
이들 음성 및 오디오 코덱 내에 사용된 코드북은 예를 들어, 본 명세서에 그전체가 참조로서 포함된 참조 문헌 "Multiple-scale leader-lattice VQ with application to LSF quantization" by A, Vasiiache, B. Dumitrescu and I, Tabus, Signal Processing, 2002, vol, 82, pages 583-586, Elsevier에 설명된 바와 같이, 격자 구조에 기초할 수 있다. 예를 들어, D10+ 격자가 양자화를 위해 고려될 수 있지만, 임의의 다른 양호하게 맞는 격자 양자화가 또한 고려될 수 있다.
예를 들어, 기저 코드 벡터의 세트는 리더 클래스이고, 여기서 각각의 리더 클래스는 상이한 리더 벡터 및 상기 리더 벡터의 치환을 포함하고, 여기서 각각의 리더 벡터는 내림차순 또는 오름차순으로 배열된 n개의 절대값을 포함하는 n차원 벡터를 표현한다.
기저 코드 벡터(bx)의 각각의 세트의 리더 벡터(I)는 I=[I0, I1, ... In-1]에 의해 표현될 수 있는데, 여기서, I0, I1, ... In-1은 절대값이다. 내림차순 I0이 1-최고값을 표현하는 경우에, I1은 2-최고값을 표현하고, In-1은 n-최고값을 표현한다. 오름차순 I0이 1-최저값을 표현하는 경우에, I1은 2-최저값을 표현하고, In-1은 n-최저값을 표현한다.
각각의 리더 벡터 내의 k번째 위치에서 값을 표현하는 각각의 리더 벡터의 값 Ik-1은 입력 벡터 내의 k-최고 절대값의 위치(내림차순 리더 벡터의 경우에) 또는 k-최저 절대값의 위치(오름차순 리더 벡터의 경우에)에 대응하는 잠재적인 기저 코드 벡터 내의 위치에 할당될 수 있다. 예를 들어, 이 위치는 위치(m)로서 나타낼 수 있다. 예로서, 잠재적인 기저 코드 벡터는 p=[p0, p1, ..., pn-1]에 의해 표현될 수 있다.
예를 들어, 비한정적인 예로서, 예시적인 입력 벡터는
i=[-2.4, 5.0, -1.3, 0.2]일 수 있고, 여기서 대응 절대값으로 표현된 입력 벡터는
ia=[2.4, 5.0, 1.3, 0.2]일 수 있다.
내림차순의 리더 벡터의 경우에, 리더 벡터의 위치(k) 내의 값, 즉 값(Ik-1)은 입력 벡터 내에 k-최고 절대값의 위치에 대응하는 잠재적인 기저 코드 벡터 내의 위치에 할당된다. 예를 들어, 카운터 k=1에 의해 표현된 제 1 위치에서 시작하여, 값 5.0이 절대값으로 표현된 입력 벡터 내의 1-최고값이고 위치 m=2에 위치되어 있기 때문에, 즉 ia1이기 때문에, 입력 벡터 내의 1-최고 절대값의 위치는 위치 m=2이다. 이에 따라, 값 I0은 잠재적인 기저 코드 벡터 내의 위치 m=2에 할당되는데, 즉 p1=I0이 성립할 수 있다.
더욱이, 잠재적인 기저 코드 벡터(pm-1) 내의 할당된 값의 부호(+ 또는 -)는 k-최고 절대값과 연계된 입력 벡터의 값의 부호에 따라 설정된다. 이에 따라,
Figure pct00007
이 성립할 수 있다.
따라서, 예시적인 입력 벡터 i=[-2.4, 5.0, -1.3, 0.2]의 비한정적인 예에서, 값 i1=5.0이 양의 부호를 갖기 때문에, p1=I0이 성립할 수 있다.
위치 카운터(k)는 증분될 수 있고, 리더 벡터 내에 다른 값이 존재하는지 여부, 즉 k≤n이 성립하는지 여부가 점검될 수 있다.
만일 예이면, 방법은 진행하고 비한정적인 예에서, 위치 k=2에 대해, 위치 m=1에서 값 2.4는 입력 벡터 내의 2-최고(k-최고) 절대값을 표현한다. 따라서, 입력 벡터 내의 값 i0 = -2.4가 음의 부호를 갖기 때문에,
Figure pct00008
이 각각의 부호를 I1에 할당하기 위해 성립할 수 있다.
이 방식으로, 비한정적인 예에서, 루프는 이하의 방식으로 리더 벡터의 위치를 통해 반복될 수 있다:
k=3 → m=3 → P2 = I2·sign(i2) = -I2; 및
k=4 → m=4 → P3 = I3·sign(i3) = +I3
이에 따라, 예시적인 방법에 의해 얻어진 각각의 잠재적인 코드 벡터는 내림차순의 각각의 리더 벡터(I)의 경우에 p=[-I1, I0, -I2, I3]를 야기할 수 있다.
리더 벡터(I)가 오름차순 방식으로 순서화되면, 전술된 방법은 절대값으로 표현된 입력 벡터 내의 k-최저값의 위치를 표현하는 m으로 수행될 수 있는데, 여기서 pm-1 = Ik-1·sign(im-1)이 성립할 수 있다.
얻어진 잠재적인 코드 벡터(p)는 기저 코드 벡터(bx)의 각각의 세트와 연계되고, 여기서 I는 기저 코드 벡터의 이 각각의 세트의 리더 벡터를 표현한다. 예를 들어, 기적 코드 벡터(bx,y,t) 및 스케일 대표(sz)에 기초하여 그리고 전술된 바와 같이 코드 벡터를 결정하는 예시적인 프로세스와 관련하여, 잠재적인 코드 벡터(p)는 입력 벡터에 대해 기저 코드 벡터(bx)의 세트의 가장 가까운 기저 코드 벡터(bx,y)를 표현하고, 여기서 절대값으로 표현된 입력 벡터는 기저 코드 벡터의 각각의 세트의 잠재적인 코드 벡터를 결정하기 위해 사용되고, 결정된 가장 가까운 기저 코드 벡터(bx,y)의 k번째 값에서 각각의 값(bx,y,k-1)의 부호는 입력 벡터(i)의 k번째 위치에서 각각의 값(ik)의 부호가 할당되고, 여기서 0<k≤n이 성립한다.
따라서, 잠재적인 코드 벡터(p)를 표현하는 이 가장 가까운 기저 코드 벡터(bx,y)는 전술된 바와 같이, 가장 가까운 기저 코드 벡터(bx,y)에 기초하여 그리고 각각의 스케일 대표(sz)에 기초하여 코드 벡터(cx,z,y)를 결정하기 위해 사용될 수 있다.
각각의 절삭을 위해, 상이한 스케일 대표가 할당되는데(예를 들어, 훈련을 통해), 예를 들어,
float scale[] = {0.8, 1.2, 2.7}이다.
이에 따라, 예를 들어, 코드북의 복수의 코드 벡터 중 제 1 세트의 코드 벡터는 제 1 스케일 표현 0.8에 의해 스케일링된 제 1 절삭값에 의해 규정되고, 코드북의 복수의 코드 벡터 중 제 2 세트의 코드 벡터는 제 2 스케일 표현 1.2에 의해 스케일링된 제 2 절삭값에 의해 규정되고, 코드북의 복수의 코드 벡터 중 제 3 세트의 코드 벡터는 제 3 스케일 표현 2.7에 의해 스케일링된 제 3 절삭값에 의해 규정되고, 코드북은 다중 스케일 격자 구조를 갖는다.
예로서, 다중 스케일 격자 구조 내의 탐색은 2개의 단계를 갖는 것으로서 보여질 수 있는데: 제 1 단계는 각각의 리더 클래스에 대해, 즉 기저 코드 벡터의 각각의 세트에 대해 잠재적인 코드 벡터를 컴퓨팅할 수 있고, 제 2 단계는 잠재적인 코드벡터에 대해서만 왜곡을 계산할 수 있다.
예를 들어, 절대값 함수가 입력 벡터(i)에 적용될 수 있어 절대 입력 벡터(ia)는 벡터(i)의 절대값을 포함하게 되고, 이어서 절대 입력 벡터는 내림(또는 대안적으로 오름)차순으로 분류될 수 있다.
예로서, 인덱스 표현은 내림(또는 오름)차순 절대값으로 표현된 벡터 내의 각각의 입력 벡터(i)의 인덱스를 지시하는 대표를 포함할 수 있다. 예를 들어, 상기 인덱스 표현은 정수 어레이 'indx'일 수 있다.
예를 들어, 입력 벡터가 [-2.4 5.0 -1.3 0.2]이면, 절대값으로 표현된 벡터는 [2.4 5.0 1.3 0.2]이고 'indx' 어레이는 [1 0 2 3]이다. 리더 벡터는 내림차순일 수도 있기 때문에, 가장 가까운 이웃 탐색 알고리즘 중에, 리더 벡터의 제 1 값은 입력 벡터의 최고 절대값 성분 등에 대응하는 위치에 할당될 수 있다.
이하의 비한정적인 예에서, 'idx_lead_max'는 X에 대응할 수 있는 모든 절삭값 외부의 최대수의 리더 클래스이다. 이에 따라, 기저 코드 벡터의 9개의 세트가 9개의 리더 클래서에 의해 규정되고, 여기서 n번째 리더 클래스는 &pl[n-1]에 의해 규정된다.
최저값을 갖는 왜곡 메트릭이 최선의 왜곡 메트릭을 표현하도록 결정되는데, 여기서 이 왜곡 메트릭 코드 벡터와 연계된 코드 벡터가 입력 벡터를 인코딩하기 위해 사용될 수 있다. 예를 들어, 이 코드 벡터는 최선의 스케일 대표 및 잠재적인 기저 코드 벡터의 세트의 최선의 잠재적인 기저 코드 벡터에 의해 규정될 수 있다.
몇몇 실시예에서, 격자 벡터 양자화기는 입력 벡터를 수신하도록 구성된다.
격자 벡터 양자화기는 입력 벡터를 절대값 내림차순으로 분류하도록 더 구성될 수 있다(몇몇 실시예에서, 분류는 후속의 동작으로의 적합한 변화를 갖고 절대값 오름차순으로 수행될 수 있다는 것이 이해될 수 있을 것이다).
따라서, 예를 들어 입력 벡터가
I = [-2.4 5.0 -1.3 0.2]이면,
절대값으로 표현된 벡터는
absi = [2.4 5,0 1.3 0.2]이고,
여기서 정의된 분류된 절대값으로 표현된 벡터는
cv_pot1 = [5.0 2.4 1.3 0.2]이고,
분류 치환 'indx' = [1 0 2 3]이다.
몇몇 실시예에서, 격자 벡터 양자화기)는 코드 벡터를 발생하는데 사용된 리더 클래스를 저장하거나 발생하도록 구성된다.
예를 들어, 리더 클래스는 이하와 같이 정의될 수 있다(Q1 값에서, 달리 말하면, 2를 곱함)
Figure pct00009
Figure pct00010
몇몇 실시예에서, 격자 벡터 양자화기(453)는 입력 벡터와 연계된 출력 코드 벡터를 결정할 수 있다.
결정될 거리가 가중된 유클리드 거리이면, 몇몇 실시예에서 가중치는 치환 벡터에 따라 전치되고 중간 입력 벡터 곱이 발생된다. 몇몇 실시예에서, 가중치는 균일하거나 또는 가중 작업은 가중되지 않은 유클리드 거리가 채용되는 경우에 선택적이라는 것이 이해될 수 있을 것이다.
이어서, 이들은 신호 출력(207)에 의해 출력될 수 있다.
도 4는 몇몇 실시예에 따른 디코더(108)를 개략적으로 도시한다.
본 명세서에 설명된 실시예에 대한 개념은 인코딩된 오디오 신호를 결정하고 적용하여 효율적인 고음질 오디오 출력을 생성하고, 또한 비트 에러가 전송 및/또는 저장 프로세스 내에서 발생했는지 여부를 판정하는 것이다. 도 4에는 몇몇 실시예에 따른 예시적인 디코더(104)가 도시된다. 이하의 예에서, 디코더는 오디오 신호를 나타내는 인코딩된 주파수 도메인 파라미터를 수신하고 벡터 격자 양자화된 인코딩된 주파수 도메인 파라미터를 디코딩하도록 구성되지만, 몇몇 실시예에서는 파라미터가 오디오 신호 또는 다른 유형의 신호(예를 들어, 이미지 또는 비디오)를 정의하거나 나타내는 임의의 적합한 파라미터일 수 있음을 이해할 것이다.
몇몇 실시예에서, 디코더(108)는 인코딩된 오디오 신호를 수신하도록 구성된 신호 입력(301)을 포함할 수 있다. 따라서, 신호 입력(301)은 몇몇 실시예에서 인코딩된 비트 스트림(112)이 수신될 수 있는 방법일 수 있다. 수신된 비트 스트림(12)의 일부로서, 음성 또는 오디오 디코더에 대한 인코딩된 파라미터 세트의 일부를 형성할 수도 있는 양자화된 LSF 계수 인덱스가 있을 수 있다.
실시예에서 음성 또는 오디오 디코더는 출력 오디오 프레임마다 변하는 개수의 샘플들에서 그리고 변하는 출력 샘플링 주파수에서 동작하도록 구성될 수 있다. 다시 말해, 디코더(108)는 재구성된 오디오 신호의 프레임을 출력하도록 구성될 수 있는데, 이에 따라 프레임의 샘플들의 수 및 샘플링 레이트가 한 프레임에서 다음 프레임으로 변화될 수 있다.
또한, 디코더(108)는 다수의 상이한 디코딩 모드로 동작하도록 구성될 수 있으며, 여기서 사용되는 디코딩 모드는 오디오 프레임 샘플링 주파수에 좌우될 수 있다.
또한, 인코딩된 파라미터 세트의 비트 레이트는 인코더에 의해 사용되는 코딩 모드에 따라 다를 수 있다.
신호 입력(301)은 인코딩된 양자화된 오디오 신호 성분을 LSF 역 양자화기/디코더(303)에 전달할 수 있다.
몇몇 실시예에서, 음성 또는 오디오 디코더는 코어 계층 디코더일 수 있는데, 이 코어 계층 디코더의 재구성된 오디오 출력은 상위 계층 디코더들로부터의 추가의 재구성된 오디오 신호 출력들과 결합될 수 있다. 인코딩된 상위 계층 비트는 대응하는 인코딩된 코어 계층 비트와 함께 디코더에 전송될 수 있다.
도 4를 참조하면, 인코딩된 비트 스트림(112)의 일부로서 수신된 양자화된 LSF 인덱스는 LSF 역 양자화기(303)의 입력으로 전달되도록 구성될 수 있다.
다시 말해, 인코딩된 오디오 파라미터 세트를 수신하는 수단이 제공될 수 있는데, 세트는 적어도 2개의 양자화된 라인 스펙트럼 주파수 계수를 나타내는 인덱스를 포함하고, 오디오 프레임은 디코딩될 때 샘플링 주파수로 디지털 샘플링되는 오디오 샘플들을 포함하고, 샘플링 주파수는 오디오 디코더를 위한 복수의 샘플링 주파수 중 하나이다.
실시예에서, LSF 역 양자화기(303)는 수신된 양자화된 LSF 인덱스를 양자화된 LSF 계수로 변환하도록 구성될 수 있다.
실시예에서, LSF 역 양자화기(303)가 각 오디오 프레임에 대해 다수의 양자화된 LSF 계수를 생성할 수 있음을 이해해야 한다. 양자화된 LSF 계수의 수는 LPC 분석기의 예측 차수로 인코더에서 미리 결정될 수 있다. 예를 들어, 크기 16의 예측 차수를 결정하는 LPC 분석기의 경우, LSF 역 양자화기(303)에 의해 생성된 양자화된 LSF 계수의 수 또한 16일 것이다.
다시 말해, 인덱스를 적어도 2개의 양자화된 라인 스펙트럼 주파수 계수로 변환하는 수단이 제공될 수 있다.
몇몇 실시예에서, LSF 역 양자화기(303)는 비트 에러 검출기(304)를 포함할 수 있다. 비트 에러 검출기는 수신된 신호가 임의의 비트 에러를 포함하는지 여부를 검출 또는 판정하도록 그리고 비트 에러를 판정하는 것에 기초하여 출력을 관리하도록 구성된 일련의 비트 에러 검출기 모듈들을 포함할 수 있다.
도 5를 참조하면, 비트 에러 검출기(304)의 개략도가 더욱 상세히 도시된다. 도 5에 도시된 예에서는, 3개의 별개의 비트 에러 검출기 모듈들이 도시되어 있지만, 몇몇 실시예에서는 비트 에러 관리자 모듈에 결합된 후속하는 하나 또는 2개의 검출 모듈이 있을 수 있다는 것을 이해해야 한다.
몇몇 실시예에서, 비트 에러 검출기(304)는 인덱스 양수 판정기(401)를 포함한다. 인덱스 양수 판정기(401)의 동작은 도 6의 흐름도와 관련하여 더 도시된다.
몇몇 실시예에서, 인덱스 양수 판정기는 인덱스 정수 값 I을 결정하거나 검색하도록 구성될 수 있다.
인덱스 정수 값을 결정하는 동작은 단계(501)로 도 6에 도시된다.
인덱스 정수 값 I을 결정하거나 검색한 후, 인덱스 양수 판정기(401)는 최종 스테이지의 인덱스 번호까지의 모든 인덱스 정수 값이 양수인지 여부를 판정하도록 구성될 수 있다. 따라서, 예를 들어 몇몇 실시예에서 인덱스 양수 판정기는 인덱스를 형성하는 16개의 정수 모두가 양수인지를 판정하도록 구성될 수 있다. 모든 정수는 최종 스테이지 인덱스(I)가 가질 것으로 예측되는 비트 수까지의 모든 정수를 의미한다. 즉, I가 32 비트 미만을 사용하는 경우 처음 두 개의 16비트 정수만이 체크될 필요가 있다.
몇몇 실시예에서, 결정은 인덱스(16 비트) 정수가 정확히 음수인지 여부를 판정함으로써 행해질 수 있다.
최종 스테이지까지의 모든 인덱스 정수 값이 양수(또는 정확히 음수가 아님)인지 여부를 판정하는 동작은 단계(503)으로 도 6에 도시된다.
정수 값 중 적어도 하나가 음수라고 판정되는 몇몇 실시예에서, 비트 에러는 비트 에러 관리자(407)에 시그널링된다.
비트 에러를 시그널링하는 동작은 단계(505)로 도 6에 도시된다.
몇몇 실시예에서, 비트 에러 검출기는 비트 에러 관리자(407)를 포함한다. 비트 에러 관리자(407)는 예를 들어 인덱스 양수 판정기에 연결될 수 있고 비트 에러가 검출되었음을 나타내는 신호를 수신하도록 구성될 수 있다. 몇몇 실시예에서, 비트 에러 관리자(407)는 디코딩된 격자 코드 벡터를 0으로 설정하도록 구성될 수 있다.
디코딩된 격자 코드 벡터를 0으로 설정하는 동작은 단계(507)로 도 6에 도시된다.
모든 정수 값이 양수라고 판정되는 몇몇 실시예에서, 추가적인 체크 또는 테스트가 수행될 수 있다. 예를 들어, 도 6의 단계(511)에 도시된 바와 같이, 비트 에러 검출기는 인덱스 I1 값 테스트를 수행하도록 구성될 수 있다.
몇몇 실시예에서, 비트 에러 검출기(304)는 서브벡터 인덱스 I1 값 결정기/비교기(403)를 포함한다. 서브벡터 인덱스 I1 값 결정기/비교기(403)는 도 7에 도시된 바와 같이 인덱스 I1 값 테스트를 수행하도록 구성될 수 있다.
서브벡터 인덱스 I1 값 결정기/비교기(403)는 결합된 인덱스 I 값을 수신하도록 구성될 수 있다.
결합된 인덱스 I 값을 수신하는 동작은 단계(601)로 도 7에 도시된다.
16차원 격자 코드 벡터의 인덱스 I는, 예를 들어,
Figure pct00011
에 의해 인코더에서 형성될 수 있다.
여기서, I1 및 I2는 양자화될 16차원 잔류 벡터를 형성하는 8차원의 2개의 서브벡터의 인덱스이고, N2는 제 2 서브벡터에 대한 격자 코드북을 형성하는 리더 클래스의 유니온의 카디널리티이다.
서브벡터 인덱스 I1 값 결정기/비교기(403)는 I를 N2로 나누어 I1 및 I2 값을 결정할 수 있도록 구성될 수 있다. 이는 예를 들어 64비트 I 값을 32비트 N2 값으로 나눔으로써 얻어질 수 있다. 이러한 예에서, 64비트 I 정수는 연속되는 16비트 정수로 표현된다.
인덱스 I 값을 N2 값으로 나누는 동작은 단계(603)로 도 7에 도시된다.
위의 등식에 의해 정의된 대로 I2가 N2보다 작은 것은 확실하지만, 디코딩된 I1 값이 첫 번째 8차원 서브벡터에 대한 코드북을 형성하는 리더 클래스의 유니온의 카디널리티(N1)보다 커지는 것을 막는 것은 존재하지 않는다. I1이 허용된 양보다 크다고 판정되는 것은 적어도 하나의 비트 에러가 오리지널 인덱스에 존재함을 나타낸다. 또한, 오리지널 인덱스 I는 2개의 인덱스의 단순한 연결로 형성되지는 않으므로, 이는 나누기 이후에 얻어진 디코딩된 인덱스 I2가 비트 에러의 영향을 받는다는 것을 의미한다.
다시 말해, 데이터 내에서의 결정은 적어도 하나의 비트 에러가 데이터로부터 결합된 인덱스 값 I을 결정하는 단계와, 결합된 인덱스 값 I을 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 2 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N2)로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하는 단계와, 최상위 서브 인덱스를 결정하는 단계 - 최상위 서브 인덱스는 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함 - 를 포함할 수 있다.
본 명세서에 도시된 예에는, 2개의 하위 벡터가 있고 따라서 2개의 카디널리티 N1와 N2가 있다. 이 방법은 2개 보다 많은 서브벡터가 인코딩되는 실시예에서 수행될 수 있다.
이러한 실시예에서, 2개 보다 많은 인덱스(예를 들어, 3개의 인덱스)로부터의 결합된 인덱스가 있을 수 있다:
Figure pct00012
이것은 2개의 인덱스 예와 유사하지만, 제 1 서브벡터 인덱스와 연관된 것을 제외한 인덱스 및 카디널리티의 조합이 N2 * N3가 N2를 대체하고, I2 * N3 + I3이 I2를 대체하는 것이 2개의 인덱스 예와 다르다. 따라서, 이 예에서 결합된 인덱스를 제 1 서브벡터 인덱스 이외의 인덱스 또는 카디널리티의 조합으로 나눔으로써 N1 값에 대해 테스트될 수 있는 I1 값을 생성한다.
이것은 일반적으로 다음과 같이 더 확장될 수 있다.
Figure pct00013
따라서, 몇몇 실시예에서, 서브벡터 인덱스 I1 값 결정기/비교기(403)는 디코딩된 I1 값을 N1 값과 비교하도록 구성될 수 있다.
I1 값이 N1 값보다 큰지 여부를 판정하기 위해 디코딩된 I1 값을 N1 값과 비교하는 동작은 단계(605)로 도 7에 도시된다.
I1 값이 N1 값보다 크다고 판정되는 몇몇 실시예에서, 비트 에러는 비트 에러 관리자(407)에 시그널링된다.
비트 에러를 시그널링하는 동작은 단계(607)로 도 7에 도시된다.
몇몇 실시예에서, 비트 에러 관리자(407)는 서브벡터 인덱스 I1 값 결정기/비교기(403)에 연결될 수 있고, 비트 에러가 검출되었음을 나타내는 신호를 수신하도록 구성될 수 있다. 몇몇 실시예에서, 비트 에러 관리자(407)는 디코딩된 격자 코드 벡터를 0으로 설정하도록 구성될 수 있다.
디코딩된 격자 코드 벡터를 0으로 설정하는 동작은 단계(609)로 도 7에 도시된다.
서브벡터 인덱스 I1 값이 N1 값보다 작은 것으로 판정되는 몇몇 실시예에서, 추가적인 체크 또는 테스트가 수행될 수 있다. 예를 들어, 도 7의 단계(611)에 도시된 바와 같이, 비트 에러 검출기는 샘플링 레이트 비트 테스트를 수행하도록 구성될 수 있다.
몇몇 실시예에서, 비트 에러 검출기(304)는 샘플링 레이트 비트 비교기(405)를 포함한다. 샘플링 레이트 비트 비교기(405)는 도 8에 도시된 바와 같은 샘플링 레이트 비트 테스트를 수행하도록 구성될 수 있다.
몇몇 실시예에서, 샘플링 레이트 비트 비교기(405)는 현재 디코딩된 프레임이 컴포트 노이즈 생성 프레임인지를 판정하도록 구성될 수 있다. 또는 다시 말해, 디코더가 현재 컴포트 노이즈 생성 모드에 있는지 여부를 판정한다.
디코딩된 프레임이 컴포트 노이즈 생성(CNG) 프레임인지를 판정하는 동작은 단계(701)로 도 8에 도시된다.
디코더가 CNG 모드에서 동작하는 것으로 판정되면, 전체 LSF 디코딩된 벡터를 결정한 후에 추가적인 비트 에러 검출 동작이 수행될 수 있다.
몇몇 실시예에서, 입력 오디오 신호는 계층화된 코딩 방식을 전개함으로써 코딩되고, 코어 계층 코덱은 다른 인코딩 모드에 대응하는 상이한 샘플링 레이트에서 동작할 수 있다. 코어 계층 코덱에 의해 사용되는 특정 샘플링 레이트 및 코딩 모드는 먼저 최종 또는 최대 주파수 LSF의 값을 검사한 다음 그 값을 특정 주파수 범위에 할당함으로써 식별될 수 있다.
다시 말해, 멀티 모드 디코더의 디코딩 모드는 최종 또는 최대 주파수 LSF의 값에 의해 결정될 수 있다.
코어 계층 코덱이 2개의 동작 모드 중 하나에서 동작하도록 구성될 수 있는 몇몇 실시예에서, 제 1 동작 모드는 12800Hz의 오디오 프레임 샘플링 주파수에서의 동작 모드일 수 있고, 제 2 동작 모드는 16000Hz의 샘플링 주파수에서의 동작 모드일 수 있다. 따라서, 오디오 프레임에 대한 수신된 최종 또는 최대 주파수 양자화된 LSF가 3950Hz에서 6350Hz까지의 주파수 범위에 있다고 판정되면, 코어 계층 디코더의 동작 모드는 12800Hz로 샘플링된 오디오 프레임의 파라미터를 디코딩하는 모드일 수 있다. 그러나, 오디오 프레임에 대해 수신된 최종 또는 최대 주파수 양자화된 LSF가 6350Hz 내지 7950Hz의 주파수 범위에 있다고 판정되면, 코어 계층 디코더의 동작 모드는 16000Hz로 샘플링된 오디오 프레임의 파라미터를 디코딩하는 모드일 수 있다.
다시 말해, 수신된 양자화된 라인 스펙트럼 주파수 계수의 최종 또는 최대 주파수 양자화된 라인 스펙트럼 주파수 계수의 값을 체크함으로써 오디오 프레임에 대한 샘플링 주파수를 결정하는 수단이 제공된다.
예를 들어, CNG 모드에서의 LSF 인코딩을 위한 첫 번째 코드북이 16개의 코드 벡터로 구성되어있는 경우, 처음 6개의 코드 벡터는 16kHz의 내부 샘플링 레이트를 위해 할당하고 나머지(10개의 코드 벡터)를 12.8kHz의 내부 샘플링 레이트를 위해 할당할 수 있다. 이러한 실시예에서, 최종 LSF 성분의 값은 특정 값 WB_LIMIT_LSF보다 크면 16kHz 내부 샘플링 레이트를 시그널링한다는 의미에서 12.8kHz 또는 16kHz인 내부 샘플링 레이트의 표시자일 수 있다.
몇몇 실시예에서, 표시자는 임의의 적절하게 결정된 LSF 값일 수 있다.
최종 LSF 성분 값이 한계 값보다 큰 것을 판정하여 LSF 표시자 값을 결정하는 동작은 단계(703)로 도 8에 도시된다.
또한, 몇몇 실시예에서는 내부 샘플링 레이트를 시그널링하는 비트가 또한 수신된다.
따라서, 몇몇 실시예에서, 샘플링 레이트 비트 비교기(405)는 다음의 체크를 수행할 수 있다.
Figure pct00014
여기서, L_frame_fx는 16kHz에 대한 320개의 샘플 및 12.8kHz에 대한 256개의 샘플과 동일한 프레임 길이이고, lsf_q는 양자화된 디코딩된 LSF 벡터, M = 16, L_FRAME16k = 320이며, 비트 에러가 검출될 수 있다.
샘플링 레이트 LSF 표시자 값이 내부 샘플링 레이트 비트와 일치하는지 여부를 판정하기 위해 이들을 비교하는 동작이 단계(705)로 도 8에 도시된다.
샘플링 레이트 LSF 표시자 값이 내부 샘플링 레이트 비트와 일치하지 않는 몇몇 실시예에서, 비트 에러는 비트 에러 관리자(407)에 시그널링된다.
비트 에러를 시그널링하는 동작은 단계(707)로 도 8에 도시된다.
몇몇 실시예에서, 비트 에러 관리자(707)는 샘플링 레이트 비트 비교기(405)에 연결될 수 있고, 비트 에러가 검출되었음을 나타내는 신호를 수신하도록 구성될 수 있다. 몇몇 실시예에서, 비트 에러 관리자(407)는 디코딩된 격자 코드 벡터를 0으로 설정하도록 구성될 수 있다.
본 명세서에 설명된 예는 몇몇 실시예에서 디코딩된 격자 코드 벡터를 0으로 설정하는 것을 특징으로 하였지만, 비트 에러가 검출될 때 비트 에러 관리자(407)는 디코딩된 격자 코드 벡터를 결정된 또는 일반적인 값으로 설정하도록 구성될 수도 있다.
디코딩된 격자 코드 벡터를 0으로 설정하는 동작은 단계(709)로 도 8에 도시된다.
실시예에서, 디코더의 동작 모드가 오디오 프레임의 샘플링 레이트에 의존할 수 있다는 것을 이해해야 한다. 따라서, 시그널링 라인은 코딩 모드 또는 대안적으로 샘플링 레이트를 직접 운반함으로써 디코딩 모드를 전달할 수 있다.
따라서, LSF 역 양자화기(303)는 2개의 출력을 갖도록 구성될 수 있음을 이해해야 한다.
제 1 출력은 LSF 대 LPC 변환기(305)의 입력에 연결되도록 구성될 수 있고, 양자화된 LSF 계수 값 세트를 포함할 수 있다.
LSF 역 양자화기(303)로부터의 제 2 출력은 코딩 모드 및/또는 샘플링 레이트를 디코더(108)의 후속 디코딩 구성요소로 전달하는데 사용될 수 있는 시그널링 라인을 포함할 수 있다.
몇몇 실시예에서, 양자화된 LSF 계수 값은 LSF 대 LPC 변환기(512)에 의해 수신될 수 있고, 이어서 LP 계수 세트로 변환될 수 있다.
변환 프로세스를 돕기 위해, LLSF 대 LPC 변환기(512)는 시그널링 라인을 추가 입력으로 수신하도록 구성될 수 있다. 시그널링 라인은 인코딩된 오디오 프레임의 샘플링 주파수를 나타낼 수 있고, 따라서 LSF 대 LPC 변환 프로세스의 차수를 결정할 수 있다.
대안적으로, 다른 실시예에서, 시그널링 라인은 LSF 대 LPC 변환 프로세스의 차수를 결정하는데 사용될 수 있는 코딩 모드를 운반할 수 있다.
LP 계수 세트 내의 요소의 수는 예측 차수와 동일할 것이다.
LSF 대 LPC 변환기(305)에 의해 생성된 LP 계수는 출력 오디오 프레임에 대응할 것임을 이해해야 한다.
LSF 대 LPC 변환기(305)의 출력은 디코더(108)의 추가 디코딩 구성 요소에 의해 사용될 수 있음을 이해해야 한다. 예를 들어, LP 계수는 임의의 후속 LP 필터에 대한 필터 계수로서 사용될 수 있다.
또한, 시그널링 라인이 디코더(108)에서 추가 디코딩 구성 요소에 의해 사용되어 추가 디코딩 구성 요소를 위한 적절한 디코딩 모드를 선택할 수도 있다.
이어서, 디코더(108)의 디코딩 구성 요소는 출력 오디오 신호(114)를 형성할 수 있다.
상기 예는 장치(10) 내의 코덱 내에서 동작하는 애플리케이션의 실시예를 설명하고 있지만, 후술되는 바와 같이 본 발명은 임의의 가변 레이트/적응형 레이트 오디오(또는 음성) 코덱을 포함하여, 임의의 오디오(또는 음성) 코덱의 부분으로서 구현될 수 있다는 것이 이해될 수 있을 것이다. 따라서, 예를 들어, 본 출원의 실시예는 고정된 또는 유선 통신 경로를 통한 오디오 코딩을 구현할 수 있는 오디오 코덱으로 구현될 수 있다.
따라서, 사용자 장비는 상기 본 출원의 실시예에 설명된 것들과 같은 오디오 코덱을 포함할 수 있다.
용어 사용자 장비는 휴대폰, 휴대형 데이터 프로세싱 디바이스 또는 휴대형 웹 브라우저와 같은 임의의 적합한 유형의 무선 사용자 장비를 커버하도록 의도된다는 것이 이해될 수 있을 것이다.
더욱이, 공중 육상 이동 통신망(public land mobile network: PLMN)의 요소는 전술된 바와 같은 오디오 코덱을 또한 포함할 수 있다.
일반적으로, 본 출원의 다양한 실시예는 하드웨어 또는 특정 용도 회로, 소프트웨어, 논리 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 몇몇 양태는 하드웨어로 구현될 수 있고, 반면에 다른 양태는 콘트롤러, 마이크로프로세서 또는 다른 컴퓨팅 디바이스에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있지만, 본 발명은 이들에 한정되는 것은 아니다. 본 출원의 다양한 양태가 블록도, 흐름도로서, 또는 몇몇 다른 회화적 표현을 사용하여 도시되고 설명될 수 있지만, 본 명세서에 설명된 이들 블록, 장치, 시스템, 기술 또는 방법은 비한정적인 예로서, 하드웨어, 소프트웨어, 펌웨어, 특정 용도 회로 또는 논리, 범용 하드웨어 또는 콘트롤러 또는 다른 컴퓨팅 디바이스, 또는 이들의 몇몇 조합으로 구현될 수 있다는 것이 양호하게 이해될 수 있다.
본 출원의 실시예는 프로세서 엔티티에서와 같은, 모바일 디바이스의 데이터 프로세서에 의해 실행 가능한 컴퓨터 소프트웨어에 의해, 또는 하드웨어에 의해, 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 또한, 이와 관련하여, 도면에서와 같은 논리 흐름의 임의의 블록은 프로그램 단계, 또는 상호접속된 논리 회로, 블록 및 기능, 또는 프로그램 단계와 논리 회로, 블록 및 기능의 조합을 표현할 수 있다는 것이 주목되어야 한다.
메모리는 로컬 기술 환경에 적합한 임의의 유형일 수 있고, 반도체 기반 메모리 디바이스, 자기 메모리 디바이스 및 시스템, 광학 메모리 디바이스 및 시스템, 고정식 메모리 및 이동식 메모리와 같은, 임의의 적합한 데이터 저장 기술을 사용하여 구현될 수 있다. 데이터 프로세서는 로컬 기술 환경에 적합한 임의의 유형일 수 있고, 비한정적인 예로서, 범용 컴퓨터, 특정 용도 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(digital signal processors: DSPs), 응용 주문형 집적 회로(application specific integrated circuits: ASIC), 게이트 레벨 회로 및 멀티코어 프로세서 아키텍처에 기초하는 프로세서 중 하나 이상을 포함할 수 있다.
본 출원의 실시예는 집적 회로 모듈과 같은 다양한 구성요소에서 실시될 수 있다. 집적 회로의 디자인은 대체로 고도로 자동화된 프로세스이다. 복잡한 그리고 강력한 소프트웨어 툴이 논리 레벨 디자인을 반도체 기판 상에 에칭되고 형성될 준비가 된 반도체 회로 디자인으로 변환하기 위해 이용 가능하다.
미국 캘리포니아주 마운틴 뷰 소재의 Synopsys, Inc. 및 미국 캘리포니아주 산호세 소재의 Cadence Design에 의해 제공된 것들과 같은 프로그램은 양호하게 확립된 디자인의 규칙 뿐만 아니라 사전 프로그램된 디자인 모듈의 라이브러리를 사용하여 반도체 칩 상에 전도체를 자동으로 라우팅하고 구성요소를 로케이팅한다. 일단, 반도체 회로를 위한 디자인이 완료되면, 표준화된 전자 포맷(예를 들어, Opus, GDSII 등)의 최종적인 디자인이 제조를 위해 반도체 제조 설비 또는 "팹(fab)"으로 전달될 수 있다.
본 출원에 사용될 때, 용어 '회로'는 이하의 모두를 칭한다:
(a) 하드웨어 전용 회로 구현예(단지 아날로그 및/또는 디지털 회로 내의 구현예와 같은) 및
(b) (i) 프로세서(들)의 조합 또는 (ii) 휴대폰 또는 서버와 같은 장치가 다양한 기능을 수행하게 하도록 함께 동작하는 프로세서(들)/소프트웨어(디지털 신호 프로세서(들)를 포함함), 소프트웨어 및 메모리(들)의 부분과 같은, 회로와 소프트웨어(및/또는 펌웨어)의 조합 및
(c) 소프트웨어 또는 펌웨어가 물리적으로 존재하지 않더라도, 동작을 위한 소프트웨어 또는 펌웨어를 필요로 하는 마이크로프로세서(들) 또는 마이크로프로세서(들)의 부분과 같은 회로.
'회로'의 이 정의는 임의의 청구범위를 포함하여, 본 출원에서 이 용어의 모든 사용에 적용된다. 다른 예로서, 본 출원에 사용될 때, 용어 '회로'는 또한 단지 프로세서(또는 다중 프로세서) 또는 프로세서의 부분 및 그(또는 이들의) 부속 소프트웨어 및/또는 펌웨어의 구현예를 커버할 것이다. 용어 '회로'는 또한 예를 들어 그리고 특정 청구항 요소에 적용 가능하면, 휴대폰용 기저대역 집적 회로 또는 애플리케이션 프로세서 집적 회로 또는 서버, 셀룰러 네트워크 디바이스 또는 다른 네트워크 디바이스 내의 유사한 집적 회로를 커버할 것이다.
상기 설명은 본 발명의 예시저인 실시예의 완전한 그리고 정보적인 설명인 것으로 예시적인 비한정적인 예에 의해 제공되었다. 그러나, 다양한 수정 및 개조는 첨부 도면 및 첨부된 청구범위와 함께 숙독될 때, 상기 설명의 견지에서 당 기술 분야의 숙련자들에게 명백해질 수 있다. 그러나, 본 발명의 모든 이러한 및 유사한 수정은 첨부된 청구범위에 정의된 바와 같이 여전히 본 발명의 범주 내에 있을 것이다.

Claims (19)

  1. 방법으로서,
    적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하는 단계와,
    상기 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계와,
    상기 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 상기 데이터의 디코딩을 제어하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는,
    상기 격자 벡터 양자화된 파라미터 데이터로부터 인덱스를 형성하는 인덱스 정수 값을 결정하는 단계와,
    상기 인덱스를 형성하는 상기 인덱스 정수 값 중 적어도 하나가 정확히 음수라는 것을 판정하는 단계와,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함하는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는,
    상기 데이터로부터 결합된 인덱스 값(I)을 결정하는 단계와,
    상기 결합된 인덱스 값(I)을 상기 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 1 서브벡터 이외의 적어도 하나의 서브벡터에 대한 리더 클래스의 유니온의 카디널리티의 적어도 하나의 조합으로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하는 단계와,
    상기 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함하는 최상위 서브 인덱스를 결정하는 단계와,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 데이터 내에서 적어도 하나의 비트 에러를 판정하는 단계는,
    상기 데이터가 컴포트 노이즈 생성 오디오 프레임을 나타내는 것을 판정하는 단계와,
    정의된 파라미터 성분 값을 결정하는 단계와,
    상기 정의된 파라미터 성분 값이 정의된 한계 값보다 큰 것을 판정하는 단계 - 상기 정의된 한계 값보다 큰 정의된 파라미터 성분 값은 상기 디코더의 내부 샘플링 레이트를 나타냄 - 와,
    상기 디코더의 내부 샘플링 레이트의 값을 나타내는 시그널링 비트를 결정하는 단계와,
    상기 정의된 파라미터 성분 값에 기초한 상기 디코더의 내부 샘플링 레이트가 상기 시그널링 비트에 기초한 상기 디코더의 내부 샘플링 레이트와 일치하지 않음을 판정하는 단계와,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하는 단계를 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 정의된 파라미터 성분 값은 최종 또는 최대 주파수 양자화된 파라미터인
    방법.
  6. 제 4 항에 있어서,
    상기 정의된 파라미터 성분 값은 최고 차수 양자화된 파라미터인
    방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 상기 데이터의 디코딩을 제어하는 단계는,
    상기 데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 단계를 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 데이터와 연관된 코드 벡터를 정의된 값으로 설정하는 단계는,
    상기 코드 벡터를 0(zero)으로 설정하는 단계를 포함하는
    방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 파라미터는 라인 스펙트럼 주파수인
    방법.
  10. 디코더로서,
    적어도 하나의 오디오 신호를 나타내는 격자 벡터 양자화된 파라미터 데이터를 수신하도록 구성된 입력과,
    상기 데이터 내에서 적어도 하나의 비트 에러를 판정하도록 구성된 비트 에러 판정기와,
    상기 비트 에러의 판정에 기초하여 오디오 신호를 생성하기 위해 상기 데이터의 디코딩을 제어하도록 구성된 파라미터 디코더를 포함하는
    디코더.
  11. 제 10 항에 있어서,
    상기 비트 에러 판정기는,
    상기 격자 벡터 양자화된 파라미터 데이터로부터 인덱스를 형성하는 인덱스 정수 값을 결정하고,
    상기 인덱스를 형성하는 상기 인덱스 정수 값 중 적어도 하나가 정확히 음수라는 것을 판정하고,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 인덱스 정수 판정기를 포함하는
    디코더.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 비트 에러 판정기는,
    상기 데이터로부터 결합된 인덱스 값(I)을 결정하고,
    상기 결합된 인덱스 값(I)을 상기 적어도 하나의 오디오 신호를 나타내는 파라미터 값의 격자 벡터 양자화에 사용된 제 1 서브벡터 이외의 적어도 하나의 서브벡터에 대한 리더 클래스의 유니온의 카디널리티의 적어도 하나의 조합으로 나누어 양자화된 파라미터 값의 서브벡터와 연관된 적어도 2개의 서브 인덱스를 생성하고,
    상기 제 1 서브벡터에 대한 리더 클래스의 유니온의 카디널리티(N1)보다 큰 값을 포함하는 최상위 서브 인덱스를 결정하고,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 서브벡터 인덱스 비교기를 포함하는
    디코더.
  13. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 비트 에러 판정기는,
    상기 데이터가 컴포트 노이즈 생성 오디오 프레임을 나타내는 것을 판정하고,
    정의된 파라미터 성분 값을 결정하고,
    상기 정의된 파라미터 성분 값이 정의된 한계 값보다 큰 것을 판정 - 상기 정의된 한계 값보다 큰 정의된 파라미터 성분 값은 상기 디코더의 내부 샘플링 레이트를 나타냄 - 하고,
    상기 디코더의 내부 샘플링 레이트의 값을 나타내는 시그널링 비트를 결정하고,
    상기 정의된 파라미터 성분 값에 기초한 상기 디코더의 내부 샘플링 레이트가 상기 시그널링 비트에 기초한 상기 디코더의 내부 샘플링 레이트와 일치하지 않음을 판정하고,
    상기 데이터가 적어도 하나의 비트 에러를 포함한다는 표시자를 생성하도록 구성된 샘플링 레이트 비트 비교기를 포함하는
    디코더.
  14. 제 13 항에 있어서,
    상기 정의된 파라미터 성분 값은 최종 또는 최대 주파수 양자화된 파라미터인
    디코더.
  15. 제 13 항에 있어서,
    상기 정의된 파라미터 성분 값은 최고 차수 양자화된 파라미터인
    디코더.
  16. 제 10 항 내지 제 15 항 중 어느 한 항에 있어서,
    상기 파라미터 디코더는 상기 비트 에러의 판정에 기초하여 상기 데이터와 연관된 코드 벡터를 정의된 값으로 설정하도록 구성되는
    디코더.
  17. 제 16 항에 있어서,
    상기 정의된 값은 0인
    디코더.
  18. 제 10 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 파라미터는 라인 스펙트럼 주파수인
    디코더.
  19. 장치로 하여금 제 1 항 내지 제 9 항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 프로그램 제품.
KR1020187003540A 2015-07-06 2015-07-06 오디오 신호 디코더를 위한 비트 에러 검출기 KR20180026528A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/065396 WO2017005296A1 (en) 2015-07-06 2015-07-06 Bit error detector for an audio signal decoder

Publications (1)

Publication Number Publication Date
KR20180026528A true KR20180026528A (ko) 2018-03-12

Family

ID=53502693

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003540A KR20180026528A (ko) 2015-07-06 2015-07-06 오디오 신호 디코더를 위한 비트 에러 검출기

Country Status (8)

Country Link
US (1) US10580416B2 (ko)
EP (1) EP3320539A1 (ko)
JP (1) JP2018526669A (ko)
KR (1) KR20180026528A (ko)
CN (1) CN108028045A (ko)
CA (1) CA2991341A1 (ko)
WO (1) WO2017005296A1 (ko)
ZA (1) ZA201800626B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3413308A1 (en) 2017-06-07 2018-12-12 Nokia Technologies Oy Efficient storage of multiple structured codebooks

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958225A (en) 1989-06-09 1990-09-18 Utah State University Foundation Full-search-equivalent method for matching data and a vector quantizer utilizing such method
CA2111290C (en) 1993-12-13 1997-09-23 Hughes Electronics Corporation Robust vector quantization of line spectral frequencies
US5774838A (en) 1994-09-30 1998-06-30 Kabushiki Kaisha Toshiba Speech coding system utilizing vector quantization capable of minimizing quality degradation caused by transmission code error
US5699485A (en) 1995-06-07 1997-12-16 Lucent Technologies Inc. Pitch delay modification during frame erasures
CA2177413A1 (en) 1995-06-07 1996-12-08 Yair Shoham Codebook gain attenuation during frame erasures
US5774849A (en) 1996-01-22 1998-06-30 Rockwell International Corporation Method and apparatus for generating frame voicing decisions of an incoming speech signal
US5920853A (en) * 1996-08-23 1999-07-06 Rockwell International Corporation Signal compression using index mapping technique for the sharing of quantization tables
JP3707153B2 (ja) 1996-09-24 2005-10-19 ソニー株式会社 ベクトル量子化方法、音声符号化方法及び装置
JP4308345B2 (ja) 1998-08-21 2009-08-05 パナソニック株式会社 マルチモード音声符号化装置及び復号化装置
US6658383B2 (en) 2001-06-26 2003-12-02 Microsoft Corporation Method for coding speech and music signals
CA2388358A1 (en) 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
GB0326262D0 (en) 2003-11-11 2003-12-17 Nokia Corp Speech codecs
US7792670B2 (en) 2003-12-19 2010-09-07 Motorola, Inc. Method and apparatus for speech coding
TWI231656B (en) 2004-04-08 2005-04-21 Univ Nat Chiao Tung Fast bit allocation algorithm for audio coding
CN101023472B (zh) 2004-09-06 2010-06-23 松下电器产业株式会社 可扩展编码装置和可扩展编码方法
CN1815894A (zh) 2005-02-06 2006-08-09 许牧 一种音频信号编码的方法和设备
US7707034B2 (en) 2005-05-31 2010-04-27 Microsoft Corporation Audio codec post-filter
US7587314B2 (en) * 2005-08-29 2009-09-08 Nokia Corporation Single-codebook vector quantization for multiple-rate applications
US20070094035A1 (en) * 2005-10-21 2007-04-26 Nokia Corporation Audio coding
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
EP2084922A1 (en) * 2006-10-31 2009-08-05 Thomson Licensing A method and apparatus for producing a map for mobile reception at each cell tower
JP5235309B2 (ja) * 2007-01-25 2013-07-10 京セラ株式会社 音声再生装置および音声再生方法
US7995668B2 (en) 2007-06-22 2011-08-09 Alcatel Lucent Method and apparatus for quantizing complex vectors in communication system
CA2701757C (en) 2007-10-12 2016-11-22 Panasonic Corporation Vector quantization apparatus, vector dequantization apparatus and the methods
US20110026581A1 (en) * 2007-10-16 2011-02-03 Nokia Corporation Scalable Coding with Partial Eror Protection
CN101335004B (zh) 2007-11-02 2010-04-21 华为技术有限公司 一种多级量化的方法及装置
WO2009093714A1 (ja) 2008-01-24 2009-07-30 Nippon Telegraph And Telephone Corporation 符号化方法、復号化方法、それらの装置、及びそれらのプログラムと記録媒体
PL3367381T3 (pl) 2008-02-15 2020-12-14 Nokia Technologies Oy Kwantyfikacja dźwięku poprzez redukcję złożoności indeksowania wektorów
US20110135007A1 (en) * 2008-06-30 2011-06-09 Adriana Vasilache Entropy-Coded Lattice Vector Quantization
CN102144256B (zh) 2008-07-17 2013-08-28 诺基亚公司 用于针对矢量量化器的快速最近邻搜索的方法和设备
CN102081926B (zh) * 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和***
US8924222B2 (en) * 2010-07-30 2014-12-30 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for coding of harmonic signals
EP2645366A4 (en) * 2010-11-22 2014-05-07 Ntt Docomo Inc AUDIO CODING DEVICE, METHOD AND PROGRAM, AND AUDIO CODING DEVICE, METHOD AND PROGRAM
EP2458585B1 (en) * 2010-11-29 2013-07-17 Nxp B.V. Error concealment for sub-band coded audio signals
MY185091A (en) * 2011-04-21 2021-04-30 Samsung Electronics Co Ltd Method of quantizing linear predictive coding coefficients, sound encoding method, method of de-quantizing linear predictive coding coefficients, sound decoding method, and recording medium
US9972325B2 (en) 2012-02-17 2018-05-15 Huawei Technologies Co., Ltd. System and method for mixed codebook excitation for speech coding
US9082398B2 (en) 2012-02-28 2015-07-14 Huawei Technologies Co., Ltd. System and method for post excitation enhancement for low bit rate speech coding
US9560386B2 (en) * 2013-02-21 2017-01-31 Mozilla Corporation Pyramid vector quantization for video coding
KR101895198B1 (ko) * 2013-05-24 2018-09-07 돌비 인터네셔널 에이비 오디오 인코더 및 디코더
JP6306177B2 (ja) * 2013-10-31 2018-04-04 フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 時間ドメイン励振信号を修正するエラーコンシールメントを用いて、復号化されたオーディオ情報を提供する、オーディオデコーダおよび復号化されたオーディオ情報を提供する方法

Also Published As

Publication number Publication date
ZA201800626B (en) 2019-07-31
WO2017005296A1 (en) 2017-01-12
EP3320539A1 (en) 2018-05-16
CN108028045A (zh) 2018-05-11
CA2991341A1 (en) 2017-01-12
JP2018526669A (ja) 2018-09-13
US20180374489A1 (en) 2018-12-27
US10580416B2 (en) 2020-03-03

Similar Documents

Publication Publication Date Title
US9865269B2 (en) Stereo audio signal encoder
US9542149B2 (en) Method and apparatus for detecting audio sampling rate
EP2915166B1 (en) A method and apparatus for resilient vector quantization
US20160027445A1 (en) Stereo audio signal encoder
US20160111100A1 (en) Audio signal encoder
US20110135007A1 (en) Entropy-Coded Lattice Vector Quantization
US10580416B2 (en) Bit error detector for an audio signal decoder
US20100292986A1 (en) encoder
KR101868252B1 (ko) 오디오 신호 인코더
RU2769429C2 (ru) Кодер звукового сигнала
US8924202B2 (en) Audio signal coding system and method using speech signal rotation prior to lattice vector quantization
WO2011114192A1 (en) Method and apparatus for audio coding
WO2023198383A1 (en) Method for quantizing line spectral frequencies
EP3095117A1 (en) Multi-channel audio signal classifier

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application