KR20100049562A - 음성 부호화 장치 및 음성 부호화 방법 - Google Patents

음성 부호화 장치 및 음성 부호화 방법 Download PDF

Info

Publication number
KR20100049562A
KR20100049562A KR1020107001665A KR20107001665A KR20100049562A KR 20100049562 A KR20100049562 A KR 20100049562A KR 1020107001665 A KR1020107001665 A KR 1020107001665A KR 20107001665 A KR20107001665 A KR 20107001665A KR 20100049562 A KR20100049562 A KR 20100049562A
Authority
KR
South Korea
Prior art keywords
pulse
search
correlation value
value
sorting
Prior art date
Application number
KR1020107001665A
Other languages
English (en)
Other versions
KR101369064B1 (ko
Inventor
도시유키 모리이
Original Assignee
파나소닉 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 파나소닉 주식회사 filed Critical 파나소닉 주식회사
Publication of KR20100049562A publication Critical patent/KR20100049562A/ko
Application granted granted Critical
Publication of KR101369064B1 publication Critical patent/KR101369064B1/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/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/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • 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/0013Codebook search algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

음성 부호화에 있어서, 대수적 코드북에 대해서 분할 탐색을 행하면서, 부호화 성능을 향상할 수 있는 음성 부호화 장치. CELP 부호화 장치의 왜곡 최소화부(112)에 있어서, 최대 상관값 산출부(221)는, 고정코드북을 구성하는 4개의 펄스에 대해서, 각 후보 위치에 있어서의 각 펄스와 타겟 신호를 이용해서 상관값을 산출하고, 펄스별로 상관값의 최대값을 구하고, 이 상관값의 최대값을 이용한 최대 상관값을 산출하고, 소팅부(222)는, 4개 펄스를 2개씩 2개의 서브세트로 분할하고, 탐색부(224)는, 고정코드북에 대해서 분할 탐색을 행하여, 부호화 왜곡이 최소가 되는 4개의 펄스 위치 및 극성을 나타내는 부호를 얻는다.

Description

음성 부호화 장치 및 음성 부호화 방법{AUDIO ENCODING DEVICE AND AUDIO ENCODING METHOD}
본 발명은, 음성 부호화 장치 및 음성 부호화 방법에 관한 것으로서, 특히 고정코드북 탐색을 행하는 음성 부호화 장치 및 음성 부호화 방법에 관한 것이다.
이동체 통신에 있어서는, 전송 대역의 유효 이용을 위하여 음성이나 화상의 디지탈 정보의 압축 부호화가 필수이다. 그 중에서도 휴대전화에서 널리 이용되는 음성 코덱(부호화/복호) 기술에 대한 기대는 크며, 압축율 높은 종래의 고효율 부호화에 대해 더한층 음질의 요구가 높아지고 있다.
최근, 다층 구조를 가지는 스케일러블 코덱의 표준화가 ITU-T (International Telecommunication Union Telecommunication Standardization Sector), MPEG(Moving Picture Expert Group) 등에서 검토되고 있으며, 보다 효율적이고 고품질의 음성 코덱이 요구되고 있다.
음성의 발성기구(發聲機構)를 모델화하여 벡터 양자화를 교묘하게 응용한 기본 방식 「CELP」(Code Excited Linear Prediction)를 이용해 크게 성능을 향상시킨 음성 부호화 기술은, 비특허 문헌 1에 기재된 대수적 코드북(Algebraic Codebook)과 같은 소수(少數) 펄스에 의한 고정 음원 기술에 의해, 한층 그 성능을 향상시켰다. ITU-T표준 G.729나, ETSI(European Telecommunications Standards Institute) 표준 AMR(Adaptive Multi-Rate)은, 대수적 코드북을 이용한 CELP의 대표적인 코덱으로서, 세계에서 널리 사용되고 있다.
대수적 코드북을 이용해 음성 부호화를 행할 경우, 대수적 코드북을 구성하는 하나하나의 펄스의 상호 영향을 고려하여, 모든 펄스의 조합을 탐색하는(이하, 전(全)탐색이라고 부름) 것이 바람직하다. 그러나, 펄스수가 많아지면 탐색에 필요한 계산량이 지수함수적으로 증가해 버린다. 이에 비해, 비특허 문헌 2에는, 전탐색일 경우의 성능을 거의 유지하면서 계산량을 대폭 저감할 수 있는 대수적 코드북의 탐색 방법으로서, 분할 탐색, 트리(tree) 탐색, 비터비 탐색 등을 개시하고 있다.
그 중에서도 분할 탐색은 가장 간단하면서도 계산량 삭감 효과가 큰 방법이다. 분할 탐색이란, 1개의 폐루프 탐색을 복수의 보다작은 폐루프로 분할하여, 복수의 폐루프 탐색의 개루프 탐색으로 하는 방법이다. 분할 탐색에 있어서는, 분할수에 따라 크게 계산량을 낮출 수 있다. 분할 탐색은 국제 표준 방식으로도 사용되고 있으며, 제3세대 휴대전화의 표준 코덱인 ETSI 표준 AMR의 대수적 코드북 탐색에 있어서는, 4개의 펄스를 2개의 서브세트(subset)로 나누어 분할 탐색을 행한다.
예를 들면, 8개의 위치 후보를 가지는 펄스가 4개 있는 경우를 생각하면, 4개의 펄스를 모두 1개의 폐루프로 탐색하려면, 평가하지않으면 안되는 펄스의 조합이 8의 4제곱으로 4096가지가 된다. 이것에 비해, ETSI 표준 AMR은, 4개의 펄스를 2개와 2개의 2개의 서브세트로 분할하여, 각각을 폐루프로 탐색한다. 따라서, ETSI 표준 AMR에 있어서 평가하지않으면 안되는 펄스의 조합은 8의 제곱의 2배로 128가지로 되어, 전탐색의 경우와 비교하여 32분의 1의 계산량이 된다. 또, ETSI 표준 AMR에 있어서의 각 평가는, 4 펄스보다도 적은 2 펄스에 대해서 행해지기 때문에, 계산량은 더욱 저감된다.
[비특허 문헌 1] Salami, Laflamme, Adoul, ”8kbit/s ACELP Coding of Speech with 10ms Speech-Frame:a Candidate for CCITT Standardization”, IEEE Proc. ICASSP94, pp.II-97n
[비특허 문헌 2] 노무라(野村) 외 , 「CELP에 있어서의 펄스 여진원(勵振源)의 효과적인 탐색법」, 일본 음향학회 춘계 강연 논문집 2-P-5, 헤세이(平成) 8년 3월, pp.311-312
그렇지만, 대수적 코드북의 분할 탐색에 의한 음성 부호화의 성능은, 대체로 전탐색의 경우에 비해 낮다. 왜냐하면 최초로 결정되는 2개 펄스의 위치가 반드시 최적의 것이라고는 할 수 없기 때문이다.
따라서, 분할 탐색에서는 먼저 탐색하는 서브세트를 구성하는 펄스로서 무엇을 선택하는지에 따라, 음성 부호화의 성능을 개선할 여지가 있다. 예를 들면, 4개 펄스 중에서 랜덤하게 2개를 선택해서 탐색하는 것을 여러 차례 행하여, 그 중 부호화 성능이 가장 좋은 결과를 얻는 방법이 생각된다. 예를 들면, 서브세트의 페어를 4 종류 준비하여, 4 종류의 페어에 대해서 각각 탐색을 행함으로써, 음성 부호화의 성능을 전탐색에 의한 부호화 성능에 접근시킬 수 있다. 이 경우, 128(8의 제곱의 2배)의 4배로 512가지의 계산이 필요하게 되지만, 그렇지만 전탐색 경우의 계산량의 1/8이다. 다만, 상기예에서는 서브세트를 임의로 구성하고 있고, 또 4 종류 페어의 어느 것에도 특히 먼저 탐색해야 할 이유는 없다. 따라서, 복수 케이스에 대해서 탐색을 행할 경우에 얻어지는 부호화 성능은 불규칙적이어, 종합적으로 부호화 성능은 충분하지 못하다.
본 발명의 목적은, 대수적 코드북에 대해서 분할 탐색을 행하면서, 부호화 성능을 향상시킬 수 있는 음성 부호화 장치 및 음성 부호화 방법을 제공하는 것이다.
본 발명의 음성 부호화 장치는, 고정코드북을 구성하는 복수의 펄스 각각과 타겟 신호를 이용하여 펄스 후보 위치 각각에 있어서의 상관값을 산출하여, 펄스마다, 상기 상관값의 최대값을 이용하여 펄스에 관한 대표값을 산출하는 산출 수단과, 펄스마다 얻어진 상기 대표값을 소팅(sorting)하고, 소팅한 상기 대표값에 대응하는 각각의 펄스를, 미리 설정된 복수의 서브세트로 그루핑(Grouping)하고, 상기 복수의 서브세트로부터, 최초로 탐색할 제1 서브세트를 결정하는 소팅 수단과, 상기 제1 서브세트를 이용해 상기 고정코드북을 탐색하여, 부호화 왜곡이 최소가 되는 상기 복수의 펄스 위치 및 극성을 나타내는 부호를 얻는 탐색 수단을 구비하는 구성을 취한다.
본 발명의 음성 부호화 방법은, 고정코드북을 구성하는 복수 펄스 각각과 타겟 신호를 이용하여 펄스 후보 위치 각각에 있어서의 상관값을 산출하고, 펄스마다, 상기 상관값의 대표값을 이용하여 펄스에 관한 대표값을 산출하는 스텝과, 펄스마다 얻어진 상기 대표값을 소팅하여, 소팅한 상기 대표값에 대응하는 각각의 펄스를, 미리 설정된 복수의 서브세트로 그루핑하고, 상기 복수의 서브세트로부터, 최초로 탐색할 제1 서브세트를 결정하는 스텝과, 상기 제1 서브세트를 이용해 상기 고정코드북을 탐색하여, 부호화 왜곡이 최소가 되는 상기 복수 펄스의 위치 및 극성을 나타내는 부호를 생성하는 스텝을 가지도록 했다.
본 발명에 의하면, 음성 부호화에 있어서 고정코드북의 분할 탐색을 행할 때, 예를 들면 최대 상관값과 같은, 펄스에 관한 대표값을 이용하여, 먼저 탐색하는 서브세트를 결정하기때문에, 대수적 코드북에 대해서 분할 탐색을 행하면서, 부호화 성능을 향상시킬 수가 있다.
도 1은 본 발명의 실시형태 1에 따른 CELP 부호화 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 실시형태 1에 따른 왜곡 최소화부의 내부 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시형태 1에 따른 최대 상관값 산출부에 있어서의 각 펄스의 최대 상관값의 산출 절차를 나타내는 흐름도이다.
도 4는 본 발명의 실시형태 1에 따른 소팅부에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리의 절차를 나타내는 흐름도이다.
도 5는 본 발명의 실시형태 1에 따른 탐색부에 있어서의 고정코드북의 분할 탐색의 절차를 나타내는 흐름도이다.
도 6은 본 발명의 실시형태 1에 따른 탐색부에 있어서의 고정코드북의 분할 탐색의 절차를 나타내는 흐름도이다.
도 7은 본 발명의 실시형태 2에 따른 소팅부에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리의 절차를 나타내는 흐름도이다.
도 8은 본 발명의 실시형태 3에 따른 소팅부에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리의 절차를 나타내는 흐름도이다.
도 9는 본 발명의 실시형태 3에 따른 소팅부에 있어서의, 펄스 순서의 재배열 처리의 절차를 나타내는 흐름도이다.
이하, 본 발명의 실시형태에 대해서, 도면을 참조하여 상세히 설명한다.
(실시형태 1)
도1은, 본 발명의 실시형태 1에 따른 CELP 부호화 장치(100)의 구성을 나타내는 블록도이다. 여기서는, 본 발명에 따른 음성 부호화 장치로서 CELP 방식의 부호화 장치를 예로 들어 설명한다.
도1에 있어서, CELP 부호화 장치(100)는, 성도(聲道) 정보와 음원 정보로 되어있는 음성 신호(s11)를, 성도 정보에 대해서는, LPC 파라미터(선형 예측 계수)를 구함으로써 부호화하고, 음원 정보에 대해서는, 미리 기억되어 있는 음성 모델의 어느것을 이용할지를 특정하는 인덱스를 구함으로써 부호화한다. 즉, 음원 정보에 대해서는, 적응코드북(103) 및 고정코드북(104)에서 어떠한 음원 벡터(코드 벡터)를 생성하는지를 특정하는 인덱스를 구함에 의해 부호화한다.
구체적으로는, CELP 부호화 장치(100)의 각 부는 이하의 동작을 행한다.
LPC 분석부(101)는, 음성 신호(s11)에 대해서 선형 예측 분석을 실시하여, 스펙트럼 포락 정보인 LPC 파라미터를 구하고, 구한 LPC 파라미터를 LPC 양자화부(102) 및 청감 가중부(111)에 출력한다.
LPC 양자화부(102)는, LPC 분석부(101)로부터 출력된 LPC 파라미터를 양자화하고, 얻어진 양자화 LPC 파라미터를 LPC 합성 필터(109)에, 양자화 LPC 파라미터의 인덱스를 CELP 부호화 장치(100)의 외부로 출력한다.
한편, 적응코드북(103)은, LPC 합성 필터(109)에서 사용된 과거의 구동 음원을 기억하고 있으며, 후술하는 왜곡 최소화부(112)로부터 지시된 인덱스에 대응하는 적응코드북 래그에 따라, 기억하고 있는 구동 음원으로부터 1 서브 프레임 분의 음원 벡터를 생성한다. 이 음원 벡터는, 적응코드북 벡터로서 곱셈기(106)에 출력된다.
고정코드북(104)은, 소정 형상의 음원 벡터를 복수개 미리 기억하고 있으며, 왜곡 최소화부(112)로부터 지시받은 인덱스에 대응하는 음원 벡터를, 고정코드북 벡터로서 곱셈기(107)에 출력한다. 여기서, 고정코드북(104)은 대수적 음원으로서, 대수적 코드북을 이용했을 경우에 대해서 설명한다. 대수적 음원이란, 많은 표준 코덱에 채용되고 있는 음원이다.
또한, 상기의 적응코드북(103)은, 유성음과 같이 주기성이 강한 성분을 표현하기 위해 사용되고, 한편, 고정코드북(104)은, 백색 잡음과 같이 주기성이 약한 성분을 표현하기 위해 사용된다.
게인 코드북(105)은, 왜곡 최소화부(112)로부터의 지시에 따라, 적응코드북(103)으로부터 출력되는 적응코드북 벡터용 게인(적응코드북 게인), 및 고정코드북(104)으로부터 출력되는 고정코드북 벡터용 게인(고정코드북 게인)을 생성하여, 각각 곱셈기(106),(107)에 출력한다.
곱셈기(106)는, 게인 코드북(105)으로부터 출력된 적응코드북 게인을, 적응코드북(103)으로부터 출력된 적응코드북 벡터에 곱하여, 가산기(108)에 출력한다.
곱셈기(107)는, 게인 코드북(105)으로부터 출력된 고정코드북 게인을, 고정코드북(104)으로부터 출력된 고정코드북 벡터에 곱하여, 가산기(108)에 출력한다.
가산기(108)는, 곱셈기(106)로부터 출력된 적응코드북 벡터와, 곱셈기(107)로부터 출력된 고정코드북 벡터를 가산하고, 가산 후의 음원 벡터를 구동 음원으로서 LPC 합성 필터(109)에 출력한다.
LPC 합성 필터(109)는, LPC 양자화부(102)로부터 출력된 양자화 LPC 파라미터를 필터 계수로 하여, 적응코드북(103) 및 고정코드북(104)에서 생성되는 음원 벡터를 구동 음원으로 한 필터 함수, 즉 LPC 합성 필터를 이용해 합성 신호를 생성한다. 이 합성 신호는, 가산기(110)에 출력된다.
가산기(110)는, LPC 합성 필터(109)에서 생성된 합성 신호를 음성 신호(s11)로부터 감산함으로써 오차 신호를 산출하고, 이 오차 신호를 청감 가중부(111)에 출력한다. 또한, 이 오차 신호가 부호화 왜곡에 상당한다.
청감 가중부(111)는, 가산기(110)로부터 출력된 부호화 왜곡에 대해서 청감적인 가중을 실시하여, 왜곡 최소화부(112)에 출력한다.
왜곡 최소화부(112)는, 청감 가중부(111)로부터 출력된 부호화 왜곡이 최소가 되는 등의, 적응코드북(103), 고정코드북(104) 및 게인 코드북(105)의 각 인덱스를 서브 프레임마다 구하여, 이들 인덱스를 부호화 정보로서 CELP 부호화 장치(100)의 외부에 출력한다. 보다 상세한 것은, 상기 적응코드북(103) 및 고정코드북(104)에 기초하여 합성 신호를 생성하고, 이 신호의 부호화 왜곡을 구하는 일련의 처리는 폐루프 제어(귀환 제어)로 되어 있어, 왜곡 최소화부(112)는, 각 코드북에 지시하는 인덱스를 1 서브 프레임내에서 여러가지로 변화시킴으로써 각 코드북을 탐색하고, 최종적으로 얻어지는, 부호화 왜곡을 최소로 하는 각 코드북의 인덱스를 출력한다.
또한, 부호화 왜곡이 최소가 될 때의 구동 음원은, 서브 프레임마다 적응코드북(103)에 피드백된다. 적응코드북(103)은, 이 피드백에 의해, 기억되어 있는 구동 음원을 갱신한다.
여기서, 고정코드북(104)의 탐색 방법에 대해 설명한다. 우선, 음원 벡터의 탐색과 부호의 도출은 이하의 수학식 1의 부호화 왜곡을 최소화하는 음원 벡터를 탐색함으로써 행해진다.
Figure pct00001
E:부호화 왜곡, x:부호화 타겟, p:적응코드북 벡터의 게인, H:청감 가중 합성 필터, a:적응코드북 벡터, q:고정코드북 벡터의 게인, s:고정코드북 벡터
일반적으로, 적응코드북 벡터와 고정코드북 벡터는 오픈루프로 (별개의 루프로) 탐색되므로, 고정코드북(104)의 부호의 도출은 이하의 수학식 2의 부호화 왜곡을 최소화하는 고정코드북 벡터를 탐색함으로써 행해진다.
Figure pct00002
E:부호화 왜곡, x:부호화 타겟(청감 가중 음성 신호), p:적응코드북 벡터의 최적 게인, H:청감 가중 합성 필터, a:적응코드북 벡터, q:고정코드북 벡터의 게인, s:고정코드북 벡터, y:고정코드북 탐색의 타겟 벡터
여기서, 게인 p, q는 음원의 부호를 탐색한 후에 결정하므로, 여기서는 최적 게인으로 탐색을 진행시키는 것으로 한다. 그러면, 상기 수학식 2는 이하의 수학식 3으로 적을 수 있다.
Figure pct00003
그리고, 이 왜곡의 수학식을 최소화하는 것은, 이하의 수학식 4의 함수 C를 최대화하는 것과 동값(同値)인 것을 알 수 있다.
Figure pct00004
따라서, 대수적 코드북의 음원과 같은 소수 펄스로 되어있는 음원의 탐색 경우는, yH와 HH를 미리 계산해 두면, 적은 계산량으로 상기 함수 C를 산출할 수 있다. 여기서, 벡터 yH의 요소는, 펄스 단독의 상관값에 상당한다. 즉, 타겟 y에 대해서 시간 역순 합성을 실시한 yH의 요소의 하나는 그 위치에 출력된 펄스의 합성 신호와 타겟 신호의 상관값과 동일하다.
도2는, 본 실시형태에 따른 왜곡 최소화부(112)의 내부 구성을 나타내는 블록도이다. 여기에서는, 왜곡 최소화부(112)의 고정코드북 탐색에 있어서 대수적 코드북을 구성하는 4개의 펄스를 2개와 2개의 서브세트로 분할해서 탐색하는 경우를 예로 들어 설명한다. 또, 각 펄스가 8개의 위치 후보를 구비한다고 한다.
도2에 있어서, 왜곡 최소화부(112)는, 적응코드북 탐색부(201), 고정코드북 탐색부(202), 및 게인 코드북 탐색부(203)를 구비한다. 고정코드북 탐색부(202)는, 최대 상관값 산출부(221), 소팅(sort)부(222), 전(前)처리부(223) 및 탐색부(224)를 구비한다.
적응코드북 탐색부(201)는, 청감 가중부(111)에 있어서 청감적인 가중이 실시된 부호화 왜곡을 이용해, 적응코드북(103)의 탐색을 행한다. 적응코드북 탐색부(201)는, 탐색 과정에서 얻어지는 적응코드북 벡터의 부호를 적응코드북(103)에 출력하고, 탐색 결과로서 얻어진 적응코드북 벡터의 부호를 고정코드북 탐색부(202)의 최대 상관값 산출부(221)에 출력함과 동시에, CELP 부호화 장치(100)의 외부로 출력한다.
고정코드북 탐색부(202)는, 청감 가중부(111)에 있어서 청감적인 가중이 실시된 부호화 왜곡 및 적응코드북 탐색부(201)로부터 입력되는 적응코드북 벡터의 부호를 이용하여 고정코드북의 분할 탐색을 행한다. 고정코드북 탐색부(202)는, 탐색 과정에서 얻어지는 고정코드북 벡터의 부호를 고정코드북(104)에 출력하고, 탐색 결과로서 얻어진 고정코드북 벡터의 부호를 CELP 부호화 장치(100)의 외부에 출력함과 동시에 게인 코드북 탐색부(203)에 출력한다.
게인 코드북 탐색부(203)는, 고정코드북 탐색부(202)의 탐색부(224)로부터 입력되는 고정코드북 벡터의 부호, 청감 가중부(111)에 있어서 청감적인 가중이 실시된 부호화 왜곡 및 적응코드북 탐색부(201)로부터 입력되는 적응코드북 벡터의 부호에 기초하여, 게인 코드북을 탐색한다. 그리고, 게인 코드북 탐색부(203)는, 탐색 과정에서 얻어지는 적응코드북 게인 및 고정코드북 게인을 게인 코드북(105)에 출력하고, 탐색 결과로서 얻어진 적응코드북 게인 및 고정코드북 게인을 CELP 부호화 장치(100)의 외부에 출력한다.
최대 상관값 산출부(221)는, 적응코드북 탐색부(201)로부터 입력되는 적응코드북 벡터의 부호를 이용해 적응코드북 벡터를 구하여, 수학식(2)에 나타내는 타겟 벡터 y를 계산한다. 또, 최대 상관값 산출부(221)는, 청감 가중부(111)에 있어서의 합성 필터의 계수 H를 이용해, 각 후보 위치에 있어서의 각 펄스 단독 상관값 yH를 산출하여 전처리부(223)에 출력한다. 그리고, 최대 상관값 산출부(221)는, 각 후보 위치에 있어서의 각 펄스 단독 상관값 yH를 이용하여, 각 펄스의 최대 상관값을 구하여, 소팅부(222)에 출력한다. 또한, 최대 상관값 산출부(221)에 있어서의 최대 상관값 산출의 상세한 것에 대해서는 후술한다.
소팅부(222)는, 최대 상관값 산출부(221)로부터 입력되는 각 펄스의 최대 상관값을 큰 쪽부터 차례로 배열한다(이하, 소팅처리라고 부름). 또, 소팅부(222)는, 소팅 결과에 기초하여, 4개 펄스를 2개씩의 2개의 서브세트로 분할하고, 분할 결과를 탐색부(224)에 출력한다. 또한, 소팅부(222)에 있어서의 소팅 처리의 상세한 것에 대해서는 후술한다.
전처리부(223)는, 청감 가중부(111)에 있어서의 합성 필터의 계수 H를 이용해 매트릭스(matrices) HH를 산출한다. 또, 전처리부(223)는, 최대 상관값 산출부(221)로부터 입력되는 벡터 yH의 요소의 극성(+-)으로, 펄스의 극성 pol을 결정하여, 탐색부(224)에 출력한다. 구체적으로는, 전처리부(223)는, 각 위치에 출력되는 펄스의 극성을 yH의 그 위치 값의 극성에 맞추고, yH 값의 극성을 별개의 배열에 저장해 놓는다. 전처리부(223)는, 각 위치의 극성을 다른 배열에 저장한 뒤, yH의 값에 대해서 전부 절대값을 취해 양(+)의 값으로 변환해 둔다. 또, 전처리부(223)는, 저장한 각 위치의 극성에 맞추어, HH의 값에 대해서도 극성을 곱함으로써 변환해 둔다. 구해진 yH 및 HH는, 탐색부(224)에 출력된다.
탐색부(224)는, 소팅부(222)로부터 입력되는 분할 결과, 청감 가중부(111)에 있어서 청감적인 가중이 실시된 부호화 왜곡 및 전처리부(223)로부터 입력되는 yH 및 HH를 이용해 고정코드북의 분할 탐색을 행한다. 탐색부(224)는, 탐색 과정에서 얻어지는 고정코드북 벡터의 부호를 고정코드북(104)에 출력하고, 탐색 결과로서 얻어진 고정코드북 벡터의 부호를 CELP 부호화 장치(100)의 외부에 출력함과 동시에, 게인 코드북 탐색부(203)에 출력한다. 또한, 탐색부(224)에 있어서의 고정코드북의 분할 탐색의 상세한 것에 대해서는 후술한다.
이어서, 최대 상관값 산출부(221)에 있어서 각 펄스의 최대 상관값을 산출하는 처리에 대해서 상세하게 설명한다.
도3은, 최대 상관값 산출부(221)에 있어서의 각 펄스의 최대 상관값의 산출 절차를 나타내는 흐름도이다. 여기서는, 최대 상관값 산출부(221)에 있어서 펄스 0의 상관값yH의 값이 가장 커지는 2개 후보 위치를 구해, 이것에 기초하여 펄스 0의 최대 상관값을 산출하는 처리를 예로 들어 설명한다.
우선, 최대 상관값 산출부(221)는, 미리 결정된 펄스 0의 후보 위치의 배열 ici0[8] 및 탐색에 이용하는 상관값 yH를 양의 값으로 변환하여 얻어지는 배열 yH[32]를 확보한다(ST1010).
이어서, 최대 상관값 산출부(221)는, 최대값 max00, 준최대값(2번째로 큰 값) max01 및 카운터 i의 초기화를 행하고(ST1020), ST1030~ST1080으로 된 루프로 이행한다.
이 루프에 있어서, 최대 상관값 산출부(221)는, 카운터 i의 값이 「8」이상일 경우(ST1040:「YES」)에는, 각 후보 위치에 대응하는 전부의 루프 처리가 끝났다고 판단하고, 처리를 종료한다. 한편, 카운터 i의 값이 「8」보다 작을 경우(ST1040:「NO」)에는, 최대 상관값 산출부(221)는, 전부의 루프 처리가 끝나지 않다고 판단하고, 처리를 ST1050으로 이행한다.
그 다음에, 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]가 최대값 max00보다 큰 경우(ST1050:「YES」)에는, 최대 상관값 산출부(221)는, 최대값 max00를 준최대값 max01으로서 보존하고, 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]를 최대값 max00에 대입한 뒤(ST1060), 처리를 ST1030으로 되돌린다. 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]가 최대값 max00 이하인 경우(ST1050:「NO」)에는, 최대 상관값 산출부(221)는 처리를 ST1070으로 이행한다.
그 다음에, 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]가 준최대값 max01보다 큰 경우(ST1070:「YES」)에는, 최대 상관값 산출부(221)는, 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]를 준최대값 max01에 대입하고, 처리를 ST1030으로 되돌린다(ST1080). 한편, 카운터 i가 나타내는 위치의 상관값 yH[ici0[i]]가 준최대값 max01 이하인 경우(ST1070:「NO」)에는, 최대 상관값 산출부(221)는, 처리를 ST1030으로 되돌린다.
그 다음에, ST1030에 있어서, 최대 상관값 산출부(221)는, 카운터 i를 1 인크리먼트(increment) 하고 나서, 처리를 ST1040으로 되돌린다.
이와 같이 하여, 최대 상관값 산출부(221)는 각 후보 위치에 있어서의 펄스 0 단독의 상관값의 최대값 max00 및 준최대값 max01을 구한다. 그리고, 최대 상관값 산출부(221)는, 도3에 나타낸 절차를 유용하여, 펄스 1, 2, 3 단독의 상관값(yH)의 값이 가장 커지는 후보 위치를 2개씩 구한다. 즉, 최대 상관값 산출부(221)는, 펄스 1, 2, 3각각의 단독 상관값의 최대값 및 준최대값 max10, max11, max20, max21, max30, max31을 구한다.
그 다음에, 최대 상관값 산출부(221)는, 펄스 0, 1, 2, 3각각의 단독 상관값의 최대값 및 준최대값을 이용해 하기의 수학식(5)에 따라, 각 펄스의 최대 상관값 S[0], S[1], S[2], S[3]을 구한다. 수학식(5)에 나타내는 바와 같이, 최대 상관값 산출부(221)는, 각 펄스 단독 상관값의 최대값에 준최대값을 소정의 비율로 가산함으로써, 각 펄스에 대응하는 안정된 최대 상관값을 얻는다.
S[0]=max00+max01×0.05
S[1]=max10+max11×0.05
S[2]=max20+max21×0.05
S[3]=max30+max31×0.05 …(5)
그 다음에, 소팅부(222)에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리에 대해서 상세하게 설명한다.
도4는, 소팅부(222)에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리의 절차를 나타내는 흐름도이다.
우선, 소팅부(222)는, 최대 상관값 산출부(221)로부터 각 펄스의 최대 상관값 S[j](j=0, 1, 2, 3)을 입력하고, 몇 위(位)까지 소팅했는지를 나타내는 카운터 i를 「0」으로 리셋트 한다(ST2010).
그 다음에, 소팅부(222)는, 카운터 i의 값이 「4」이상인 경우(ST2030:「YES」)에는, 전부의 소팅이 끝났다고 판단하고, 처리를 ST2100으로 이행한다. 한편, 카운터 i의 값이 4보다 작은 경우(ST2030:「NO」)에는, 소팅부(222)는, 펄스 번호 N[i]에 「0」을 대입하고, i위 최대 상관값 S[N[i]]를 탐색하기 위한 루프의 회수를 카운트하는 카운터 j를 「0」으로 리셋트하고, 최대값을 저장하는 변수 max를 「0」으로 리셋트한다(ST2040).
그 다음에, 카운터 j가 4보다 작은 경우(ST2060:「NO」)에는, 소팅부(222)는 처리를 ST2070으로 이행한다.
그 다음에, 최대 상관값 S[j]가 변수 max보다 큰 경우(ST2070:「YES」)에는, 소팅부(222)는, 최대 상관값 S[j]를 변수 max에 대입하고, 카운터 j의 값을, i위의 최대 상관값 S[N[i]]에 대응하는 펄스 번호 N[i]에 대입하고(ST2080), 처리를 ST2050으로 이행한다. 한편, 최대 상관값 S[j]가 변수 max 이하인 경우(ST2070:「NO」)에는, 소팅부(222)는 처리를 ST2050으로 이행한다. 그 다음에, ST2050에 있어서, 소팅부(222)는 카운터 j를 1 인크리먼트하고, 처리를 ST2060으로 되돌린다.
한편, ST2060에 있어서 카운터 j가 4이상인 경우(ST2060:「YES」)에는, 소팅부(222)는, i위의 최대 상관값 S[N[i]]를 탐색하기 위한, ST2050~ST2080으로 되어있는 루프가 끝났다고 판단하고, i위의 최대 상관값 S[N[i]]에 「-1」을 대입한다(ST2090). 이것에 의해, i위의 최대 상관값 S[N[i]]를, i+1위의 최대 상관값 S[N[i+1]]을 탐색하기 위한 루프 처리 대상으로부터 배제한다. 그 다음에, 소팅부(222)는, ST2020에서, 카운터 i를 1 인크리먼트하고, 처리를 ST2030으로 되돌린다.
이와 같이 하여, 소팅부(222)는, 각 펄스의 최대 상관값 S[0], S[1], S[2], S[3]을 큰쪽부터 순서대로 배열하여, 소팅 결과를 나타내는 N[i]를 얻는다. 이하, 소팅부(222)에 있어서 N[i]={2, 0, 3, 1}을 얻은 경우를 예로 들어 설명한다. 즉, 제일 큰 최대 상관값 S[N[0]]에 대응하는 펄스의 번호 N[0]의 값이 2이고, 다음 값은 차례로 0, 3, 1이라고 가정한다.
그 다음에, ST2100에 있어서, 소팅부(222)는, 소팅된 최대 상관값에 대응하는 4개의 펄스 번호 N[i]를, 미리 설정된 2개 서브세트의 분할 패턴으로 그루핑하여, 펄스의 탐색 순서를 결정하고, 얻어진 탐색 순서를 탐색부(224)에 출력한다. 즉, 소팅부(222)는, 탐색부(224)의 고정코드북의 분할 탐색에 있어서, 먼저 탐색하는 2 펄스의 번호 및 후에 탐색하는 2 펄스의 번호를 정한다. 소팅부(222)에서는, 미리, 하기 수학식(6)에 나타내는 3가지의 탐색순서 후보가 설정되어 있다.
{제1 서브세트} {제2 서브세트}
제1 후보 {N[0], N[1]} {N[2], N[3]}
제2 후보 {N[0], N[2]} {N[3], N[1]}
제3 후보 {N[0], N[3]} {N[1], N[2]} …(6)
분할 탐색에 있어서, 먼저 탐색하는 서브세트(제1 서브세트) 및 후에 탐색하는 서브세트(제2 서브세트)의 분할 패턴은, 많은 종류 존재한다. 그 중에서 식(6)에 나타내는 바와 같이, 최대 상관값이 가장 큰 펄스 N[0]을, 먼저 탐색하는 서브세트(제1 서브세트)에 포함시키는 분할 패턴을 채용하면, 양호한 부호화 성능이 얻어진다.
식(6)의 각 탐색순서 후보에 대해서는, 먼저 탐색하는 서브세트(제1 서브세트), 이어서, 다음에 탐색하는 서브세트(제2 서브세트)라는 차례로 탐색이 행해진다.
식(6) 중의 N[i]를, 소팅에 의해 얻어진 구체적인 값으로 나타내면, 하기의 수학식(7)이 얻어지며, 제1 후보, 제2 후보, 제3 후보의 차례로 탐색이 행해진다.
{제1 서브세트} {제2 서브세트}
제1 후보 {2, 0} {3, 1}
제2 후보 {2, 3} {1, 0}
제3 후보 {2, 1} {0, 3} …(7)
식(7)에 나타내는 3개의 탐색순서는, 하기의 수학식(8)에 나타내는 M[3][4]로 정리할 수 있다. 여기서 M[3][4]는, 펄스 4개에 대해서 분할 탐색을 3회 행하는 경우의 펄스의 탐색순서를 나타낸다.
M[3][4]={{2, 0, 3, 1},{2, 3, 1, 0},{2, 1, 0, 3}}…(8)
즉 소팅부(222)는, 탐색 순서로서 M[3][4]를 탐색부(224)에 출력한다.
그 다음에, 탐색부(224)에 있어서의 고정코드북의 분할 탐색에 대해 상세하게 설명한다.
도5 및 도6은, 탐색부(224)에 있어서의 고정코드북의 분할 탐색 절차를 나타내는 흐름도이다. 여기에서는, 대수적 코드북의 조건을 이하에 나타낸다.
(1) 비트수:16비트
(2) 처리 단위(서브 프레임 길이): 32
(3) 펄스 갯수: 4개
이 조건 하에서, 다음과 같은 대수적 코드북을 설계할 수 있다.
ici0[8]={0, 4, 8, 12, 16, 20, 24, 28}
ici1[8]={1, 5, 9, 13, 17, 21, 25, 29}
ici2[8]={2, 6, 10, 14, 18, 22, 26, 30}
ici3[8]={3, 7, 11, 15, 19, 23, 27, 31}
우선, 탐색부(224)는, ST3010에 있어서, 고정코드북의 4개의 펄스 각각의 후보 위치를 나타내는 배열 ici0[8], ici1[8], ici2[8], ici3[8]을 준비하고, yH를 양(+)의 값으로 변환하여 얻어진 배열 yH[32], HH의 극성을 조정해서 얻어진 배열 HH[32][32] 및 yH를 양의 값으로 변환하기 전의 yH의 극성값(-1,+1)을 저장한 벡터 pol[32]를 작성한다. 이어서, ST3020에 있어서, 후속하는 탐색 루프에 사용할 변수의 초기화가 행해진다.
탐색부(224)는, ST3030에 있어서 j와 수치 「3」을 비교하여, j가 3이상일 경우는 탐색을 종료하기 위해 ST3250의 처리로 진행하고, j가 3보다 작을 경우는 ST3050의 초기화로 진행한다. ST3040에 있어서는 j를 1 인크리먼트한다. 이에 의해, 탐색부(224)는, 소팅부(222)로부터 입력되는 탐색순서 M[3][4]가 나타내는 3개의 탐색순서에 대응하여, 2개의 서브세트로 되어있는 분할 탐색을 3회 행한다.
ST3050~ST3130는, 제1 서브세트의 탐색 루프 처리를 나타낸다. 구체적으로는, ST3050에 있어서는, 제1 서브세트의 탐색 루프의 초기화가 행해진다. 그 다음에, 탐색부(224)는, 판정 ST3060에 있어서 i0과 수치 「8」을 비교하고, i0가 8이상일 경우는 다음 탐색 루프의 초기화 ST3140으로 진행하고, i0가 8보다 작을 경우는 처리 ST3070으로 진행된다. ST3070에 있어서M[j][0](j=0, 1, 2)가 나타내는 펄스의 상관값 sy0 및 음원 파워 sh0를 산출한다. 또, 카운터 i1을 0으로 초기화한다. 또, ST3080에 있어서는, i0를 1 인크리먼트한다. 이에 의해, 탐색부(224)는, M[j][0](j=0, 1, 2)가 나타내는 펄스 8개의 후보 위치에 대응하여, 8회의 루프 처리를 행한다. 마찬가지로, ST3090~ST3130에 있어서, 탐색부(224)는, M[j][1](j=0, 1, 2)가 나타내는 펄스 8개의 후보 위치에 대응하여, 8회의 루프 처리를 행한다.
우선, 판정 ST3090에 있어서 i1과 수치 「8」을 비교하여, i1가 8이상일 경우는 인크리먼트 처리 ST3080으로 진행하고, i1이 8보다 작을 경우는 처리 ST3100으로 진행한다. ST3100에 있어서는, 탐색부(224)는, 전처리부(223)로부터 입력되는 yH 및 HH에 더해 ST3070에 있어서 산출된 상관값 sy0 및 음원 파워 sh0을 이용하여, M[j][1](j=0, 1, 2)가 나타내는 펄스의 상관값 sy1 및 음원 파워 sh1을 산출한다.
ST3120에 있어서, 탐색부(224)는, 제1 서브세트의 처리 대상이 되는 각 펄스의 상관값과 음원 파워를 이용하여 식(4)에 따라 함수 C의 값을 산출 및 비교하여, 보다 큰 함수치를 나타낼 때의 i0, i1을 ii0, ii1에 덮어쓰기(overwrite) 저장하고, 또 함수 C의 분자항, 분모항을 덮어쓰기 저장한다(ST3130). 또한, ST3120에 있어서 계산량이 많은 나눗셈을 피해, 분모항과 분자항의 인수분해 곱셈을 이용하여 산출 및 비교를 행하고 있다. 상기 판정에 있어서, 보다 작을 경우, 또 보다 클 경우에 처리 ST3130을 행한 경우는 인크리먼트 처리 ST3110로 진행한다. 인크리먼트 처리 ST3110에서는, i1을 1 인크리먼트한다.
ST3140~ST3220은, 제2 서브세트의 탐색 루프 처리를 나타낸다. 또한, 제2 서브세트의 탐색 루프 처리는, ST3050~ST3130에 나타낸 제1 서브세트의 탐색 루프 처리와 기본적으로 동일한 스텝을 가진다. 여기에서는, 제1 서브세트의 탐색 루프 처리와의 상이점에 대한 것만 설명한다. 우선, ST3140에서의, 제2 서브세트의 탐색 루프 처리의 초기화는, 제1 서브세트의 탐색 루프 처리의 결과를 이용해서 행해진다. 또, 제2 서브세트의 탐색 루프 처리의 처리 대상은, M[j][2](j=0, 1, 2) 및 M[j][3](j=0, 1, 2) 각각이 나타내는 펄스이다. 또 처리 ST3160에 있어서는, 제1 서브세트의 탐색 루프로 탐색되고, 저장된 카운터 정보 ii0, ii1을 이용해 펄스 2에 대한 상관값 sy2 및 음원 파워 sh2를 산출한다. 또, 마찬가지로, 처리 ST3190에서는, 제1 서브세트의 탐색 루프로 탐색되고, 저장된 카운터 정보 ii0, ii1을 이용해 펄스 3에 대한 상관값 sy3 및 음원 파워 sh3을 산출한다.
그 다음에, ST3230 및 ST3240에 있어서, 탐색부(224)는, 분할 탐색 전체에 있어서 함수 C의 값이 가장 크게 되는 펄스 위치의 조합을 구한다.
그 다음에, ST3250에 있어서, 탐색부(224)는, ii0, ii1, ii2, ii3을 각 펄스의 위치 정보로 한다. 또, 배열 pol의 값이 극성(±1)이며, 탐색부(224)는, 극성 p0, p1, p2, p3을 하기의 수학식(9)에 따라 0또는 1로 변환하여 1비트로 부호화한다.
p0=(pol[ichi0[ii0]]+1)/2
p1=(pol[ichi1[ii1]]+1)/2
p2=(pol[ichi2[ii2]]+1)/2
p3=(pol[ichi3[ii3]]+1)/2 … (9)
여기서, 위치 정보 및 극성에 대한 복호 방법으로서는, ichi0[ii0], ichi1[ii1], ichi2[ii2], ichi3[ii3]에 의해 펄스의 위치가 복호되고, 복호한 위치와 극성을 이용해 고정코드북 벡터가 복호된다.
도5 및 도6에 나타내는 바와 같이, 탐색부(224)는, 2개의 서브세트로 되어있는 분할 탐색을 행하기 때문에, 전탐색의 경우에 비해 계산량을 크게 삭감할 수 있다. 구체적으로는, 전탐색에 있어서는 8의 4제곱으로 4096회의 루프 처리를 행하는 것에 비해, 도5 및 도6에 나타내는 방법에 의하면 2개의 서브세트의 탐색 각각에 있어서는, 8의 제곱으로 64회씩의 루프 처리를 행한다. 그리고, M[3][4]에 대응하여 2개의 서브세트로 되어있는 분할 탐색을 3회 행하기 때문에, 64×2 서브세트×3배로 합계 384회의 루프 처리를 행한다. 이것은 전탐색의 약 1/10의 계산량이다.
이와 같이, 본 실시형태에 의하면, 고정코드북에 대해서 분할 탐색을 행하기 때문에, 고정코드북에 대해서 전탐색을 행할 경우에 비해, 계산량을 삭감할 수 있다.
또, 본 실시형태에 의하면, 분할 탐색에 있어서 고정코드북을 구성하는 펄스를, 먼저 탐색하는 서브세트 및 후에 탐색하는 서브세트로 분할할 때에, 최대 상관값이 제일 큰 펄스를 이용해서 먼저 탐색하는 서브세트를 구성하기때문에, 분할 탐색에 의한 부호화 왜곡을 억제할 수 있다. 즉, 전탐색을 행하는 경우라도, 최대 상관값이 높은 위치의 펄스는 채용될 가능성이 높고, 분할 탐색에 있어서 먼저 탐색함으로써 부호화 왜곡을 억제할 수 있다.
또한, 본 실시형태에서는 펄스수가 4이며, 분할수가 2인 경우에 대해서 설명했지만, 본 발명은 펄스수 또는 분할수에 의존하지 않으며, 각 펄스의 최대 상관값을 소팅한 결과에 기초해서 탐색하는 펄스의 차례를 결정하면, 본 실시형태와 동일한 효과를 얻을 수 있다.
또, 본 실시형태에서는, 최대 상관값 산출부(221)는, 각 펄스 단독 상관값의 최대값에 준최대값(準最大値)을 소정 비율로 가산하여 최대 상관값을 산출하는 경우를 예로 들어 설명했다. 그러나, 본 발명은 이것으로 한정되지않으며, 또, 각 펄스의 3번째로 큰 단독 상관값을 소정 비율로 가산하여 최대 상관값을 산출해도 좋고, 또는, 각 펄스 단독 상관값의 최대값을 그대로 최대 상관값으로 해도 좋다.
또, 본 실시형태에서는 각 펄스의 후보 위치의 예비 선택을 행하지 않는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 각 펄스의 후보 위치의 예비 선택을 행한 뒤에 소팅를 행해도 좋다. 이에 의해, 소팅의 효율을 향상시킬 수 있다.
또, 본 실시형태에서는 고정코드북으로서 대수적 코드북을 이용하는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 고정코드북으로서 멀티 펄스 코드북을 이용해도 좋다. 즉, 멀티 펄스의 위치 정보 및 극성 정보를 이용하여 본 실시형태에 적용하는 것이 가능하다.
또, 본 실시형태에서는 음성 부호화 방법으로서 CELP 부호화 방식을 이용하는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 음성 부호화 방법으로서, 갯수를 알 수 있는 음원 벡터가 저장되어 있는 코드북을 이용하는 부호화 방식이면 된다. 이것은, 본 발명에 따른 분할 탐색은, 고정코드북 탐색에 대해서만 행해지며, 적응코드북의 유무나, 스펙트럼 포락의 분석 방법이 LPC, FFT, 또는 필터 뱅크인지 아닌지에 의존하지 않기 때문이다.
(실시형태 2)
본 발명의 실시형태 2는, 실시형태 1과 기본적으로 동일하며, 소팅부(222)에 있어서의 소팅 처리(도4 참조)만 실시형태 1과 상위하다. 이하, 도2에 있어서, 소팅부(222)를 대신하여, 본 실시형태에 따른 소팅부를「422」라는 부호를 붙여서 배치하고, 소팅부(422)(도시하지 않음)에 있어서의 소팅 처리에 대한 것만 설명한다.
도7은, 본 실시형태에 따른 소팅부(422)에 있어서의, 각 펄스의 최대 상관값에 대한 소팅 처리의 절차를 나타내는 흐름도이다. 또한, 도7에 나타내는 순서는, 도4에 나타낸 순서와 기본적으로 동일한 스텝을 가지고 있어, 동일한 스텝에는 동일한 부호를 붙이며, 그 설명을 생략한다.
ST4040에 있어서, 소팅부(422)는, 펄스 번호 N[i]에 「0」을 대입하고, i위의 최대 상관값 S[N[i]]를 탐색하기 위한 루프의 회수를 카운트하는 카운터 j를 「0」으로 리셋트하고, 최대값을 저장하는 변수 max를 「0」으로 리셋트하고, i위의 최대 상관값 S[N[i]]를 보존하기 위한 변수 L[i]에 「0」을 대입한다.
ST4090에 있어서, 소팅부(422)는, i위의 최대 상관값 S[N[i]]를 L[i]에 대입하고, S[N[i]]에 「-1」을 대입한다. 이에 의해, i위의 최대 상관값 S[N[i]]를 L[i]에 보존하고, 또, i위의 최대 상관값 S[N[i]]를, i+1위의 최대 상관값 S[N[i+1]]을 탐색하기 위한 루프 처리의 대상으로부터 배제한다.
ST2010~ST4090까지의 처리에 의해, 소팅부(422)는, 각 펄스의 최대 상관값 S[0], S[1], S[2], S[3]을 큰 쪽부터 차례로 배열하고, 소팅 결과를 나타내는 N[i], 및 L[i]를 얻는다.
ST4100에 있어서, 소팅부(422)는, 소팅된 최대 상관값에 대응하는 4개의 펄스 번호 N[i]를, 미리 설정된 2개의 서브세트의 분할 패턴으로 그루핑하고, 펄스의 탐색 순서를 결정하여, 얻어진 탐색 순서를 탐색부(224)에 출력한다. 즉, 소팅부(422)는, 탐색부(224)의 고정코드북의 분할 탐색에 있어서, 먼저 탐색하는 2 펄스의 번호 및 후에 탐색하는 2 펄스의 번호를 결정한다. 소팅부(422)에는, 미리 3가지 탐색순서의 후보가 설정되어 있다. 여기서 실시형태 1의 소팅부(222)와 다른 것은, 제3 후보에 있어서, 최대 상관값이 저장된 L[i]를 이용해서 탐색순서를 결정하는 점이다.
구체적으로는, 소팅부(422)는, 우선, 소팅 결과 N[i]를 이용한, 하기 수학식(10)에 표시된 제1 후보와 제2 후보의, 2개의 탐색순서 후보가 설정되어 있다. 즉 소팅부(422)는, 식(10)에 나타내는 바와 같이, 제1 후보와 제2 후보에 있어서 최대 상관값이 가장 큰 펄스를 먼저 탐색하는 서브세트에 포함시켜, 부호화 성능을 향상시킨다.
{제1 서브세트} {제2 서브세트}
제1 후보 {N[0], N[1]}{N[2], N[3]}
제2 후보 {N[0], N[2]}{N[3], N[1]} … (10)
그 다음에, 소팅부(422)는, 이하와 같이 소팅 결과 N[i]및 L[i]를 이용해 3번째 탐색순서 후보가 설정되어 있다. 즉, 소팅부(422)는, L[2]+L[3]이 (L[0]+L[1])×0.91이상인지 아닌지를 판단하고, L[2]+L[3]이 (L[0]+L[1])×0.91이상일 경우에는, 제3 후보로서{N[2], N[3]}{N[0], N[1]}이 적용된다. L[2]+L[3]이 (L[0]+L[1])×0.91보다 작을 경우에는, 소팅부(422)는 계속해서, L[1]+L[3]이 (L[0]+L[2])×0.94 이상인지 아닌지를 판단한다. L[1]+L[3]이 (L[0]+L[2])×0.94 이상일 경우에는, 소팅부(422)는, 제3 후보로서 {N[1], N[3]}{N[2], N[0]}이 적용된다. L[1]+L[3]이 (L[0]+L[2])×0.94보다 작을 경우에는, 소팅부(422)는 계속해서, L[0]+L[3]이 L[1]+L[2]이상인지 아닌지를 판단한다. 소팅부(422)는, L[0]+L[3]이 L[1]+L[2]이상일 경우에, 제3 후보로서 {N[0], N[3]}{N[1], N[2]}를 생성하고, L[0]+L[3]이 L[1]+L[2]보다 작을 경우에, 제3 후보로서 {N[1], N[2]}{N[3], N[0]}이 적용된다.
소팅부(422)는, 제3 후보의 탐색순서를 적용할 때에, 나중에 탐색부(224)의 탐색에서의 항장성(抗張性)을 저감하기 위해, 각 펄스의 최대 상관값의 차(差)가 얼마되지 않을때는, 반드시 최대 상관값이 가장 큰 펄스를 포함시키지않고 먼저 탐색하는 서브세트를 구성한다. 즉, 소팅부(442)는, 소팅 결과 N[i]에 기초하여 각 펄스의 최대 상관값의 조합을 복수개 구성하고, 구성된 복수개의 조합에 계수를 곱하여 비교한 결과에 기초하여, 4개 펄스를 2개씩의 서브세트로 그루핑한다.
예를 들면, 소팅 결과로서 N[i]={2, 0, 3, 1}, L[i]={9.5, 9.0, 8.5, 8.0}이 얻어진 경우에, L[2]+L[3]이 (L[0]+L[1])×0.91보다 작고, L[1]+L[3]이 (L[0]+L[2])×0.94이상이 된다. 따라서, 소팅부(422)는, 제3 후보로서{N[1], N[3]}{N[2], N[0]}을 적용한다.
N[i]를 구체적인 값으로 나타내면, 제1 후보, 제2 후보, 제3 후보는 하기의 수학식(11)으로 표시된다.
{제1 서브세트}{제2 서브세트}
제1 후보 {2, 0} {3, 1}
제2 후보 {2, 3} {1, 0}
제3 후보 {0, 1} {3, 2} … (11)
식(11)에 나타내는 3개의 탐색순서 후보를 하기의 수학식(12)에 나타내는 M[3][4]로 정리할 수 있다.
M[3][4]={{2, 0, 3, 1},{2, 3, 1, 0},{0, 1, 3, 2}}…(12)
소팅부(422)는, 탐색순서 후보로서 M[3][4]를 탐색부(224)에 출력한다.
이와 같이, 본 실시형태에 의하면, 분할 탐색에 있어서 고정코드북을 구성하는 펄스를, 먼저 탐색하는 서브세트 및 후에 탐색하는 서브세트로 분할할 때에, 각 펄스의 최대 상관값의 순위뿐만이 아니라, 각 펄스의 최대 상관값의 값에 기초하여, 반드시 최대 상관값이 가장 큰 펄스를 포함시키지않고 먼저 탐색하는 서브세트를 구성한다. 이렇게 함으로써, 분할 탐색에 있어서의 탐색의 항장성을 저감할 수 있다.
또한, 본 실시형태에서는, 3번째 탐색순서 후보를 적용할 때에 0.91, 0.94등의 계수를 이용하는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 통계에 의해 미리 결정된 다른 계수를 이용해도 좋다.
또, 본 실시형태에서는, 3번째 탐색순서 후보를 적용할 때에 N[i]에 추가하여 L[i]를 더 이용하는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 1번째 탐색순서 후보 또는 2번째 탐색순서 후보를 적용할 때에서도, N[i] 및 L[i]의 양쪽을 이용해도 좋다.
(실시형태 3)
본 발명의 실시형태 3은, 실시형태 1과 기본적으로 동일하며, 각 서브세트로 그루핑한 펄스를 다시 소정의 순서를 따라 재배열하는 점만이 실시형태 1과 상위하다. 즉, 본 실시형태는, 도 4에 나타낸 소팅 처리의 일부만 실시형태 1과 상위하다. 이하, 도2에 있어서, 소팅부(222)를 대신하여, 본 실시형태에 따른 소팅부를 「522」라고 하는 부호를 붙여 배치하며, 소팅부(522)(도시하지 않음)에 있어서의 소팅 처리에 대한 것만 설명한다.
도8은, 본 실시형태에 따른 소팅부(522)에 있어서 각 펄스의 최대 상관값에 대해서 소팅 처리를 행하는 절차를 나타내는 흐름도이다. 또한, 도8에 나타내는 절차는, 도4에 나타낸 절차와 기본적으로 동일한 스텝을 가지고 있어, 동일한 스텝에는 동일한 부호를 붙이며, 그 설명을 생략한다.
도8에 나타내는 ST5100에 있어서 소팅부(522)는, 실시형태 1에 따른 소팅부(222)가 도4에 나타낸 ST2100에 있어서 행한 처리와 기본적으로 동일한 처리를 행하지만, 얻어진 M[3][4]를 바로 탐색부(224)에 출력하지 않고, 이하의 ST5110의 처리를 행한 뒤에, 탐색부(224)에 출력하는 점에 있어서 상위하다.
ST5110에 있어서 소팅부(522)는, M[3][4]에 포함되는 요소를 2개씩 모아 M'[6][2]를 구성하고, M'[6][2]에 포함되는 2개씩의 펄스 순서를{0, 1},{1, 2},{2, 3},{3, 0},{0, 2},{1, 3}의 어느 것인가로 재배열한다고 하는 조정을 행한다.
도9는, 도8에 나타낸 ST5110에 있어서의 소팅부(522)의 처리절차를 상세하게 나타내는 흐름도이다.
우선, ST6010에 있어서, 소팅부(522)는 변수 「i」를 「0」으로 초기화한다.
그 다음에, ST6020에 있어서, 소팅부(522)는 「i」가 「6」과 동일한지 아닌지를 판정한다.
ST6020에 있어서 「i」가 「6」과 동일하다고 판정했을 경우(ST6020:「YES」)에는, 소팅부(522)는 도9에 나타낸 처리(즉 ST5110의 처리)를 종료한다.
한편, ST6020에 있어서 「i」가 「6」과 동일하지않다고 판정했을 경우(ST6020:「NO」)에는, 소팅부(522)는 처리를 ST6030으로 이행한다.
ST6030에 있어서, 소팅부(522)는 M'[i][1]= 「2」이면서 또, M'[i][2]= 「1」인지 아닌지를 판정한다.
ST6030에 있어서, M'[i][1]= 「2」이면서 또, M'[i][2]= 「1」이라고 판정했을 경우(ST6030:「YES」)에는, 소팅부(522)는 ST6040에 있어서 M'[i][1]을 「1」로 설정하고, M'[i][2]를 「2」로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6030에 있어서, M'[i][1]= 「2」이면서 또, M'[i][2]= 「1」이라고 하는 2개의 조건이 동시에 성립하지 않는 다고 판정했을 경우(ST6030:「NO」)에는, 소팅부(522)는 처리를 ST6050으로 이행한다.
ST6050에 있어서, 소팅부(522)는 M'[i][1]= 「3」이면서 또, M'[i][2]= 「2」인지 아닌지를 판정한다.
ST6050에 있어서, M'[i][1]= 「3」이면서 또, M'[i][2]= 「2」라고 판정했을 경우(ST6050:「YES」)에는, 소팅부(522)는 ST6060에 있어서 M'[i][1]을 「2」로 설정하고, M'[i][2]를 「3」으로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6050에 있어서, M'[i][1]= 「3」이면서 또, M'[i][2]= 「2」라고 하는 2개의 조건이 동시에 성립하지 않는다고 판정했을 경우(ST6050:「NO」)에는, 소팅부(522)는 처리를 ST6070으로 이행한다.
ST6070에 있어서, 소팅부(522)는 M'[i][1]= 「4」이면서 또, M'[i][2]= 「3」인지 아닌지를 판정한다.
ST6070에 있어서, M'[i][1]= 「4」이면서 또, M'[i][2]= 「3」이라고 판정했을 경우(ST6070:「YES」)에는, 소팅부(522)는 ST6080에 있어서 M'[i][1]을 「3」으로 설정하고, M'[i][2]를 「4」로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6070에 있어서, M'[i][1]= 「4」이면서 또, M'[i][2]= 「3」이라고 하는 2개의 조건이 동시에 성립하지 않는다고 판정했을 경우(ST6070:「NO」)에는, 소팅부(522)는 처리를 ST6090으로 이행한다.
ST6090에 있어서, 소팅부(522)는 M'[i][1]= 「1」이면서 또, M'[i][2]= 「4」인지 아닌지를 판정한다.
ST6090에 있어서, M'[i][1]= 「1」이면서 또, M'[i][2]= 「4」라고 판정했을 경우(ST6090:「YES」)에는, 소팅부(522)는 ST6100에 있어서 M'[i][1]을 「4」로 설정하고, M'[i][2]를 「1」로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6090에 있어서, M'[i][1]= 「1」이면서 또, M'[i][2]= 「4」이라고 하는 2개의 조건이 동시에 성립하지 않는다고 판정했을 경우(ST6090:「NO」)에는, 소팅부(522)는 처리를 ST6110으로 이행한다.
ST6110에 있어서, 소팅부(522)는 M'[i][1]= 「3」이면서 또, M'[i][2]= 「1」인지 아닌지를 판정한다.
ST6110에 있어서, M'[i][1]= 「3」이면서 또, M'[i][2]= 「1」이라고 판정했을 경우(ST6110:「YES」)에는, 소팅부(522)는 ST6120에 있어서 M'[i][1]을 「1」로 설정하고, M'[i][2]를 「3」으로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6110에 있어서, M'[i][1]=「3」이면서 또, M'[i][2]=「1」이라고 하는 2개의 조건이 동시에 성립하지 않는다고 판정했을 경우(ST6110:「NO」)에는, 소팅부(522)는 처리를 ST6130으로 이행한다.
ST6130에 있어서, 소팅부(522)는 M'[i][1]= 「4」이면서 또, M'[i][2]= 「2」인지 아닌지를 판정한다.
ST6130에 있어서, M'[i][1]= 「4」이면서 또, M'[i][2]= 「2」라고 판정했을 경우(ST6130:「YES」)에는, 소팅부(522)는 ST6140에 있어서 M'[i][1]을 「2」로 설정하고, M'[i][2]를 「4」로 설정한 다음, 처리를 ST6150으로 이행한다.
한편, ST6130에 있어서, M'[i][1]= 「4」이면서 또, M'[i][2]= 「2」라고 하는 2개의 조건이 동시에 성립하지 않는다고 판정했을 경우(ST6130:「NO」)에는, 소팅부(522)는 처리를 ST6150으로 이행한다.
ST6150에 있어서, 소팅부(522)는, 「i」를 1 인크리먼트한 다음, 처리를 ST6020으로 이행한다.
예를 들면 소팅부(522)는, M[3][4]={{2, 0, 3, 1},{2, 3, 1, 0},{2, 1, 0, 3}}을 이용해 M'[6][2]={{2, 0},{3, 1},{2, 3},{1, 0},{2, 1},{0, 3}}을 구성했을 경우, 또 도 9에 나타낸 절차를 따라 M'[6][2]에 포함되는 2개씩의 펄스 순서를 조정하면, M'[6][2]={{0, 2},{1, 3},{2, 3},{0, 1},{1, 2},{3, 0}}이 얻어진다. 소팅부(522)는, 조정에 의해 얻어진 M'[6][2]={{0, 2},{1, 3},{2, 3},{0, 1},{1, 2},{3, 0}}을 이용해 다시 M[3][4]={{0, 2, 1, 3},{2, 3, 0, 1},{1, 2, 3, 0}}을 구성하여 탐색부(224)에 출력한다.
이하, 도9에 나타낸 소팅부(522)에 있어서의 조정 처리의 효과에 대해 설명한다.
고정코드북을 구성하는 펄스의 탐색은 상기의 식(4)의 함수 C를 가장 크게 하는 펄스 위치 및 극성을 탐색함으로써 행해진다. 따라서, 탐색 시에는 식(4)의 분모항의 「HH」의 매트릭스에 대응하는 메모리(RAM:Random Access Memory)가 필요하게 된다. 예를 들면 음원 벡터의 길이가 32일 경우에는, 32×32의 대각 벡터를 포함하는 절반의 매트릭스에 대응하는 메모리가 필요하게 된다. 즉(32×32/2+16) 바이트=528바이트의 메모리가 필요하게 된다. 다만, 계산할 때에 지정 인덱스에 액세스하는 계산량을 줄이기 위해서는 풀 매트릭스 (32×32바이트=1024바이트)에 대응하는 메모리가 필요하게 되기 때문에, 한층 더 큰 메모리가 필요하게 된다.
이것에 비해, 본 발명과 같이, 고정코드북을 구성하는 펄스를 먼저 탐색하는 서브세트 및 후에 탐색하는 서브세트(페어)로 분할하고, 페어마다 펄스의 탐색을 행한다면, 1 페어 당 엔트리수의 제곱인 8×8의 매트릭스가 있으면 되기 때문에, 메모리를 8×8×6바이트=384바이트로 절약할 수 있다. 다만, 이 매트릭스는 대칭 행렬은 아니기 때문에, 펄스 번호의 순서가 거꾸로 되면 매트릭스가 다르게 되어, 반대 매트릭스를 별도로 준비(메모리가 배가 되어 버림)하든가, 탐색때의 액세스 방법을 바꾸든가(계산량이 증가해 버림), 페어의 조합마다 프로그램을 준비할(메모리와 계산량이 증가해 버림) 필요가 있다. 그래서, 본 실시형태에 있어서는, 페어 별로 탐색을 행할 때에 펄스의 순서를 재배열하여, 모든 탐색을 6개 페어로 한정한다. 이렇게 함으로써, 펄스 탐색에 필요한 메모리를 상기 384바이트로 한정할 수 있어, 계산량도 삭감할 수 있다.
이와 같이, 본 실시형태에 의하면, 고정코드북을 구성하는 펄스를 페어로 그루핑할 때에, 그루핑되는 펄스를 소정의 순서로 재배열하고, 페어별로 펄스 탐색을 행하기 때문에, 고정코드북의 탐색에 필요한 메모리와 계산량을 삭감할 수 있다.
또한, 본 실시형태에서는, 펄스를 탐색하는 페어를{0, 1},{1, 2},{2, 3},{3, 0},{0, 2},{1, 3}의 6가지로 한정하는 경우를 예로 들어 설명했지만, 본 발명은 이것으로 한정되지 않으며, 상기 각 페어에 포함되는 펄스의 순서를 반대로 해도 좋으며, 이에 의해 펄스 탐색의 평균적 성능이 바뀌는 일은 없다.
이상, 본 발명의 각 실시형태에 대해서 설명했다.
또한, 상기 각 실시형태에 따른 고정코드북은, 잡음 코드북, 확률 코드북(stochastic codebook), 또는 난수 코드북(random codebook)으로 불리는 일도 있다.
또, 적응코드북은, 적응 음원 코드북으로 불리는 일도 있고, 고정코드북은, 고정 음원 코드북으로 불리는 일도 있다.
또, LSP는, LSF(Line Spectral Frequency)로 불리는 일도 있고, LSP를 LSF라고 바꾸어 읽어도 좋다. 또, LSP 대신에 ISP(Immittance Spectrum Pairs)를 스펙트럼 파라미터로서 부호화하는 경우도 있지만, 이 경우는 LSP를 ISP로 바꾸어 읽으면 ISP 부호화 장치로서 상기 각 실시형태를 이용할 수 있다.
또, 상기 각 실시형태에서는, 본 발명을 하드웨어로 구성하는 경우를 예로 들어 설명했지만, 본 발명은 소프트웨어로 실현하는 것도 가능하다.
또, 상기 각 실시형태의 설명에 이용한 각 기능 블록은, 전형적으로는 집적회로인 LSI로서 실현된다. 이들은 개별적으로 1 칩화되어도 괜찮고, 일부 또는 모두를 포함하도록 1 칩화되어도 괜찮다. 여기에서는, LSI라고 했지만, 집적도의 차이에 따라, IC, 시스템 LSI, 슈퍼 LSI, 울트라 LSI라고 호칭되는 일도 있다.
또, 집적회로화의 수법은 LSI에 한하는 것은 아니고, 전용 회로 또는 범용 프로세서로 실현해도 좋다. LSI 제조 후에, 프로그램하는 것이 가능한 FPGA(Field Programmable Gate Array)나, LSI 내부의 회로 셀의 접속이나 설정을 재구성 가능한 리컨피규러블 프로세서를 이용해도 괜찮다.
또, 반도체 기술의 진보 또는 파생하는 별개의 기술에 의해 LSI에 대체되는 집적회로화의 기술이 등장하면, 당연히, 그 기술을 이용해서 기능 블록의 집적화를 행해도 좋다. 바이오 기술의 적용 등이 가능성으로서 있을 수 있다.
2007년 7월 27 일에 출원한 특허출원 2007-196782, 2007년 10월 3 일에 출원한 특허출원 2007-260426 및 2008년 1월 16 일에 출원한 특허출원 2008-007418의 일본 출원에 포함되는 명세서, 도면 및 요약서의 개시 내용은, 모두 본원에 원용된다.
[산업상의 이용 가능성]
본 발명에 따른 음성 부호화 장치 및 음성 부호화 방법은, 비트를 유효하게 이용한 고정코드북에 의해 음성 부호화를 행할 수 있어, 예를 들면, 이동 통신 시스템에 있어서의 휴대전화 등에 적용할 수 있다.

Claims (9)

  1. 고정코드북을 구성하는 복수의 펄스 각각과 타겟 신호를 이용해 펄스 후보 위치 각각에 있어서의 상관값을 산출하여, 펄스마다, 상기 상관값의 대표값을 이용해 펄스에 관한 대표값을 산출하는 산출 수단과,
    펄스마다 얻어진 상기 대표값을 소팅하여, 소팅한 상기 대표값에 대응하는 각각의 펄스를, 미리 설정된 복수의 서브세트로 그루핑하고, 상기 복수의 서브세트로부터, 최초로 탐색하는 제1 서브세트를 결정하는 소팅 수단과,
    상기 제1서브세트를 이용해서 상기 고정코드북을 탐색하여, 부호화 왜곡이 최소가 되는 상기 복수 펄스의 위치 및 극성을 나타내는 부호를 얻는 탐색 수단을 구비하는 음성 부호화 장치.
  2. 제1항에 있어서,
    상기 산출 수단은,
    상기 각 펄스의 상관값의 최대값을 이용하여 산출된 상기 각 펄스의 최대 상관값을, 상기 대표값으로서 산출하고,
    상기 소팅 수단은,
    상기 최대 상관값을 소팅하는 음성 부호화 장치.
  3. 제1항에 있어서,
    상기 소팅 수단은,
    펄스마다 얻어진 상기 대표값 중 최대의 대표값에 대응하는 펄스를 포함하는 서브세트를 상기 제1서브세트로 하는, 음성 부호화 장치.
  4. 제1항에 있어서,
    상기 소팅 수단은,
    소팅한 상기 대표값에 대응하는 각각의 펄스를, 미리 설정된 복수의 서브세트의 복수의 조합 각각에 대해서 그루핑하고, 상기 복수 조합의 각각으로부터, 상기 제1 서브세트를 각각 결정하고,
    상기 탐색 수단은,
    상기 제1서브세트 각각을 이용하여 상기 고정코드북을 탐색하고, 그 중 부호화 왜곡이 최소가 되는 상기 부호를 얻는 음성 부호화 장치.
  5. 제2항에 있어서,
    상기 산출 수단은,
    펄스별로, 2번째로 큰 상기 상관값에 소정 비율을 곱한 값을, 상기 상관값의 최대값에 가산하여, 상기 각 펄스의 최대 상관값을 산출하는 음성 부호화 장치.
  6. 제1항에 있어서,
    상기 소팅 수단은,
    그루핑된 펄스에 대응하는 상기 대표값을 이용하여, 상기 제1 서브세트를 결정하는 음성 부호화 장치.
  7. 제1항에 있어서,
    상기 소팅 수단은,
    그루핑된 펄스에 대응하는 상기 대표값의 조합을 복수 생성하고, 상기 조합에 미리 설정한 값을 곱해서 비교한 결과에 기초하여, 상기 제1 서브세트를 결정하는 음성 부호화 장치.
  8. 제1항에 있어서,
    상기 소팅 수단은,
    상기 복수의 서브세트로 그루핑하는 펄스를 미리 결정된 순서로 재배열하는 음성 부호화 장치.
  9. 고정코드북을 구성하는 복수의 펄스 각각과 타겟 신호를 이용해 펄스 후보 위치 각각에 있어서의 상관값을 산출하고, 펄스별로, 상기 상관값의 최대값을 이용해서 펄스에 관한 대표값을 산출하는 스텝과,
    펄스별로 얻어진 상기 대표값을 소팅하고, 소팅한 상기 대표값에 대응하는 각각의 펄스를, 미리 설정된 복수의 서브세트로 그루핑하고, 상기 복수의 서브세트로부터, 최초로 탐색하는 제1 서브세트를 결정하는 스텝과,
    상기 제1서브세트를 이용해 상기 고정코드북을 탐색하여, 부호화 왜곡이 최소가 되는 상기 복수의 펄스의 위치 및 극성을 나타내는 부호를 생성하는 스텝을 가지는 음성 부호화 방법.
KR1020107001665A 2007-07-27 2008-07-25 음성 부호화 장치 및 음성 부호화 방법 KR101369064B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2007196782 2007-07-27
JPJP-P-2007-196782 2007-07-27
JP2007260426 2007-10-03
JPJP-P-2007-260426 2007-10-03
JP2008007418 2008-01-16
JPJP-P-2008-007418 2008-01-16
PCT/JP2008/001999 WO2009016816A1 (ja) 2007-07-27 2008-07-25 音声符号化装置および音声符号化方法

Publications (2)

Publication Number Publication Date
KR20100049562A true KR20100049562A (ko) 2010-05-12
KR101369064B1 KR101369064B1 (ko) 2014-02-28

Family

ID=40304060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107001665A KR101369064B1 (ko) 2007-07-27 2008-07-25 음성 부호화 장치 및 음성 부호화 방법

Country Status (9)

Country Link
US (1) US8620648B2 (ko)
EP (1) EP2172928B1 (ko)
JP (1) JP5388849B2 (ko)
KR (1) KR101369064B1 (ko)
CN (1) CN101765880B (ko)
AU (1) AU2008283697B2 (ko)
BR (1) BRPI0814129A2 (ko)
ES (1) ES2428572T3 (ko)
WO (1) WO2009016816A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103098128B (zh) * 2011-06-15 2014-06-18 松下电器产业株式会社 脉冲位置搜索装置、码本搜索装置及其方法
CN103377653B (zh) * 2012-04-20 2016-03-16 展讯通信(上海)有限公司 语音编码中代数码表的搜索方法及装置,语音编码方法
US10021130B2 (en) * 2015-09-28 2018-07-10 Verizon Patent And Licensing Inc. Network state information correlation to detect anomalous conditions
CN114023338A (zh) * 2020-07-17 2022-02-08 华为技术有限公司 多声道音频信号的编码方法和装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
JP3285185B2 (ja) * 1995-06-16 2002-05-27 日本電信電話株式会社 音響信号符号化方法
JP3579276B2 (ja) 1997-12-24 2004-10-20 株式会社東芝 音声符号化/復号化方法
US6385576B2 (en) 1997-12-24 2002-05-07 Kabushiki Kaisha Toshiba Speech encoding/decoding method using reduced subframe pulse positions having density related to pitch
CA2252170A1 (en) * 1998-10-27 2000-04-27 Bruno Bessette A method and device for high quality coding of wideband speech and audio signals
US7389227B2 (en) * 2000-01-14 2008-06-17 C & S Technology Co., Ltd. High-speed search method for LSP quantizer using split VQ and fixed codebook of G.729 speech encoder
JP3808270B2 (ja) 2000-02-17 2006-08-09 三菱電機株式会社 音声符号化装置、音声復号化装置及び符号語配列方法
CA2327041A1 (en) * 2000-11-22 2002-05-22 Voiceage Corporation A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals
JP2002366199A (ja) 2001-06-11 2002-12-20 Matsushita Electric Ind Co Ltd Celp型音声符号化装置
JP3881946B2 (ja) 2002-09-12 2007-02-14 松下電器産業株式会社 音響符号化装置及び音響符号化方法
EP1489599B1 (en) 2002-04-26 2016-05-11 Panasonic Intellectual Property Corporation of America Coding device and decoding device
JP3887598B2 (ja) * 2002-11-14 2007-02-28 松下電器産業株式会社 確率的符号帳の音源の符号化方法及び復号化方法
KR100503414B1 (ko) * 2002-11-14 2005-07-22 한국전자통신연구원 고정 코드북의 집중 검색 방법 및 장치
CA2457988A1 (en) * 2004-02-18 2005-08-18 Voiceage Corporation Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization
US20050256702A1 (en) * 2004-05-13 2005-11-17 Ittiam Systems (P) Ltd. Algebraic codebook search implementation on processors with multiple data paths
JP4871501B2 (ja) * 2004-11-04 2012-02-08 パナソニック株式会社 ベクトル変換装置及びベクトル変換方法
SG123639A1 (en) 2004-12-31 2006-07-26 St Microelectronics Asia A system and method for supporting dual speech codecs
CN100498934C (zh) 2005-10-31 2009-06-10 连展科技(天津)有限公司 一种新型的快速固定码本搜索方法
CN101000768B (zh) * 2006-06-21 2010-12-08 北京工业大学 嵌入式语音编解码的方法及编解码器
JPWO2008108077A1 (ja) 2007-03-02 2010-06-10 パナソニック株式会社 符号化装置および符号化方法
US8046214B2 (en) * 2007-06-22 2011-10-25 Microsoft Corporation Low complexity decoder for complex transform coding of multi-channel sound

Also Published As

Publication number Publication date
EP2172928B1 (en) 2013-09-11
AU2008283697A1 (en) 2009-02-05
EP2172928A1 (en) 2010-04-07
US20100191526A1 (en) 2010-07-29
CN101765880A (zh) 2010-06-30
JPWO2009016816A1 (ja) 2010-10-14
CN101765880B (zh) 2012-09-26
EP2172928A4 (en) 2011-07-13
BRPI0814129A2 (pt) 2015-02-03
WO2009016816A1 (ja) 2009-02-05
AU2008283697B2 (en) 2012-05-10
US8620648B2 (en) 2013-12-31
JP5388849B2 (ja) 2014-01-15
ES2428572T3 (es) 2013-11-08
KR101369064B1 (ko) 2014-02-28

Similar Documents

Publication Publication Date Title
EP0443548B1 (en) Speech coder
JP3114197B2 (ja) 音声パラメータ符号化方法
US8306007B2 (en) Vector quantizer, vector inverse quantizer, and methods therefor
KR101414341B1 (ko) 부호화 장치 및 부호화 방법
EP2254110A1 (en) Stereo signal encoding device, stereo signal decoding device and methods for them
EP2128858A1 (en) Encoding device and encoding method
EP1513137A1 (en) Speech processing system and method with multi-pulse excitation
KR101369064B1 (ko) 음성 부호화 장치 및 음성 부호화 방법
US9135919B2 (en) Quantization device and quantization method
US7337110B2 (en) Structured VSELP codebook for low complexity search
US20100049508A1 (en) Audio encoding device and audio encoding method
JP6195138B2 (ja) 音声符号化装置及び音声符号化方法
US20090240494A1 (en) Voice encoding device and voice encoding method
US20100094623A1 (en) Encoding device and encoding method
US20090164211A1 (en) Speech encoding apparatus and speech encoding method
RU2458413C2 (ru) Устройство кодирования аудио и способ кодирования аудио
Mohammadi et al. Efficient Two-Step Spectrum Quantization Methods For Low Rate Speech Coding
JPH09269800A (ja) 音声符号化装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200211

Year of fee payment: 7