KR100982211B1 - 다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화 - Google Patents

다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화 Download PDF

Info

Publication number
KR100982211B1
KR100982211B1 KR1020087007436A KR20087007436A KR100982211B1 KR 100982211 B1 KR100982211 B1 KR 100982211B1 KR 1020087007436 A KR1020087007436 A KR 1020087007436A KR 20087007436 A KR20087007436 A KR 20087007436A KR 100982211 B1 KR100982211 B1 KR 100982211B1
Authority
KR
South Korea
Prior art keywords
codebook
vectors
reproduction
reproduction vectors
vector
Prior art date
Application number
KR1020087007436A
Other languages
English (en)
Other versions
KR20080039523A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37697832&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100982211(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20080039523A publication Critical patent/KR20080039523A/ko
Application granted granted Critical
Publication of KR100982211B1 publication Critical patent/KR100982211B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/18Vocoders using multiple modes
    • G10L19/24Variable rate codecs, e.g. for generating different qualities using a scalable representation such as hierarchical encoding or layered encoding
    • 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
    • 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

Landscapes

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

Abstract

본 발명은 벡터들의 N-레벨 양자화를 위한 방법, 기기 및 소프트웨어 애플리케이션 생성물에 관한 것으로, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 각 벡터에 대한 재생 벡터가 N개 재생 벡터들의 N-레벨 코드북으로부터 선택되어, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현된다. 본 발명은 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 위한 방법, 기기 및 소프트웨어 애플리케이션 생성물, 벡터의 표현들을 전송하기 위한 시스템, 접합 코드북을 결정하는 방법, 기기 및 스프트웨어 애플케이션 생성물, 그리고 그런 접합 코드북 자체에 추가로 관련된다.

Description

다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화{Single-codebook vector quantization for multiple-rate applications}
본 발명은 벡터의 N-레벨 양자화를 위한 방법, 기기 및 소프트웨어 애플리케이션에 대한 것이며, N 은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택될 수 있다. 본 발명은 N-레벨로 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 방법, 기기 및 컴퓨터 프로그램 생성물, 벡터 표현들을 전송하기 위한 시스템, 그런 양자화에서 사용되는 코드북을 결정하기 위한 방법, 기기 및 소프트웨어 애플리케이션 생성물 그리고 그런 코드북 자체에 추가로 관련된다.
음성과 오디오 부호화 알고리즘은 통신, 멀티미디어 및 저장 시스템에서 광범위하게 다양한 애플리케이션을 가진다. 그런 부호화 알고리즘의 발전은 부호화된 신호들의 높은 품질을 유지하면서도 전송과 저장 용량을 절약하기 위한 필요에 의해 주도된다. 부호화기의 복잡성은 애플리케이션 플랫폼의 처리 능력에 따라 제한된다. 예를 들면 음성 저장과 같은, 어떤 애플리케이션에서, 복호기는 가능한 단순해야 하는 반면, 부호화기는 아주 복잡할 수 있을 것이다.
전형적인 스피치 부호화기에서, 입력 스피치 신호는, 프레임이라고 불리는. 세그먼트 단위로 처리된다. 보통 프레임의 길이는 10-30 ms이며, 이어지는 프레임의 5-15 ms의 룩 어헤드 세그먼트 (look ahead segment) 또한 가능하다. 각 프레임에 대하여, 부호화기는, 예를 들면 선형 예측 부호화(Linear Predictive Coding, LPC)에 의해 입력 신호의 파라미터적인 표현을 결정한다. 얻어진 파라미터들은 이산화되어 통신 채널을 통해 전송되거나 또는 디지털의 형식으로 저장 매체 내에 저장된다. 수신단에서, 복호기는 수신된 파라미터들을 기반으로 합성 신호를 구성한다.
거기에서, LPC에 의해 얻어진 LPC 계수들 (또는 대응하는 라인 스펙트럼 주파수들 (Line Spectrum Frequencies, LSFs))은 오늘날 보통은 LPC/LSF 계수들을 벡터에 적재함으로써 벡터 양자화 (Vector Quantization, VQ)와 함께 양자화된다. 유사하게, 몇몇의 이어지는 프레임들 또는 서브-프레임들의 여기 (excitation) 신호에 관련된 파라미터들 역시 VQ에 의해 양자화될 수 있을 것이다.
VQ는 블록 부호화의 원칙을 기반으로 하는 손실 데이터 압축 방법이다. N-레벨 VQ에서, 벡터들은 그 벡터들에 관해 최소의 왜곡을 일으키게 하는 재생 (reprodiuction) 벡터들을, N 개의 재생 벡터들을 포함하는 코드북(codebook) ( (소위 코드워드들 (codewords))으로부터, 선택함으로써 양자화된다 (상기 왜곡은 적절한 왜곡 측정에 의해, 몇 가지 예를 들면 유클리디안 거리(Euclidean Distance) 또는 평방 유클리디안 거리(squared Euclidean distance)로서 결정된다). 이렇게 선택된 재생 벡터들은 각 식별자들에 의해 유일하게 식별될 수 있다. 양자화된 벡터들이 전송 채널을 통해 전송되면, 그리고 그 코드북이 수신측에 알려져 있다면, 전송 사이트에서의 양자화기 (quantizer)와, 전송 사이트에서 벡터를 위해 선택된 재생 벡터를 회수하려는, 수신 사이트에서의 유닛 간에 그 식별자들만을 교환하는 것으로 충분할 것이다. 그러면 이 유닛은 상기 식별자에 의해 식별된 재생 벡터를 코드북으로부터 간단하게 회수한다. 자주, N은 2의 거듭제곱으로 선택되며, 그러면 워드 길이 n=log2(N)인 이진 워드가 상기 재생 벡터들의 식별자로서 사용될 수 있다. 그러면 그 워드 길이 n은 양자화기의 출력 비트 속도 (rate)에 비례한다. 증가하는 워드 길이 n과 함께, 레벨의 수 N=2n 및 그 양자화기의 해상도도 증가하며, 상기 양자화기의 출력 비트 속도도 또한 증가한다.
파라미터들을 양자화하는 것은 코드북들을 필요로 하며, 그 코드북들은 양자화 작업을 위해 최적화된 재생 벡터들을 포함한다. 초기에는, VQ에 대한 코드북의 설계는 다중 차원의 적분이 필요하기 때문에 도전적인 작업이었다. 1980년에, Linde, Buzo 그리고 Gray (LBG)는 벡터들의 트레이닝 시퀀스를 기반으로 코드북을 생성하는 소위 LBG 알고리즘을 제안했다 (Linde, Y., Buzo, A. and Gray, R. M., "An algorithm for Vector Quantization", IEEE Transactions on Communications, vol. 28, No. 1, January 1980 참조). 벡터들의 트레이닝 (training) 시퀀스를 사용하는 것은 다중 차원의 적분에 대한 필요를 피하게 한다. LBG 알고리즘은 스칼라 양자화를 위한 코드북들을 구성하는데 적합한 고전적인 로이드 (Lloyd) 알고리즘의 다중 차원의 일반화로서 간주될 수 있다.
LBG 알고리즘은 레벨들의 원하는 수 N에 대한 코드북을 생성한다. 동일한 코 덱 내라면, 레벨들 N의 몇몇 수들이 지원되어야만 하며, 그러면 레벨들의 각 수 N에 대해, 대응 코드북이 트레인(train)되어야만 하며, 그리고 재생 벡터들의 식별자들로부터 재생 벡터들을 회수하는데 사용되는 유닛과 상기 양자화기 양쪽에 저장되어야만 한다. 레벨의 몇몇 수들 N에 대한 그런 필요는, 몇 가지 예를 들면, 단말들로의 전송이 상이한 저장 및 처리 능력을 포함하는 경우, 또는 전송 채널 특성이 시-가변 (time-variant)인 경우, 또는 전체적인 가용 비트 속도가 동적으로 소스 (source)와 채널 부호화 사이에 할당되는 경우의 부호화 시나리오 내에서 일어날 수 있을 것이다. 레벨들의 수 N의 몇몇의 서로 다른 수들에 대한 각 코드북들을 저장하는 것은 양자화되었던 벡터들의 양자화 벡터들을 회수하려는 유닛과 양자화기 모두의 메모리 필요량을 늘게 하며, 그래서 크기와 비용을 늘게 한다. 더 나아가, 몇몇 코드북들에 대한 액세스가 제어되어야 하기 때문에, 양자화기 및 재생 벡터 회수 유닛의 구조는 어려워진다.
Haoui, A. and Messerschmitt, D. G.: "Embedded Coding of Speech: A Vector Quantization Approach", Proceedings IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), April 1985, vol. 10, pp. 1703-1706, 의 종래 기술 문서가 내장된 음성 부호화기에 관련된다. 내장된 음성 부호화기는 비트 속도가 최대 속도로부터 최소 속도로 단계적으로 감소할 때에 입력 신호의 재생에 대한 충실도가 저하된다는 특성을 가진 소스 부호화기이다. 그러므로, 그 부호화기는 전송되는 실제의 비트 속도를 알지 못하고, 단지 비트들이 버려지게 될 순서만을 알고 있을 뿐이다 (예를 들면, 전송된 비트 스트림은 바이트 지향이어서, 비트들이 최하위로부터 최상위의 순서로 버려질 수 있을 것이다). 코드북은 최대 속도를 위해 설계되며, 전송 동안에 버려지게 될 (그래서 실제의 비트 속도에는 영향을 주는) 비트들의 개수에는 관계없이, 양자화는 그 최대 속도에 대응하는 고정된 수의 레벨들에 대해 항상 실행된다. 비트들이 버려지는 것을 설명하기 위해, 예를 들면, 최하위 비트의 0으로의 치환이 오류가 작게 증가하도록 하기 위해, 최하위 비트만이 다른 두 개의 이진 워드를 서로가 유클리디안 거리 내에 근접하게 있는 두 개의 코드워드에 할당하는 것이 제안되었다.
Ragot, S., Bessette, B. and Lefebvre, R. : "Low-Complexity Multi-Rate Lattice Vector Quantization with Application to Wideband TCX Speech Coding at 32 kbit/s", Proceedings IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2004, vol. 1, pp. 501-504, 의 종래 기술 문서가 다중 속도의 격자 (lattice) 벡터 양자화에 관련된다. 거기에서, 8차원 벡터가 6개의 코드북들의 하나로 부호화되며, 그 코드북들은 각각 정수 격자 RE8의 셸(shell)을 구성한다. 격자 VQ는 자체적으로 크기 조절 가능하며, 즉, 코드북의 선택 그리고, 그래서, 워드 길이 n은 양자화될 벡터에 의존하며, 그래서, 양자화 이전에는 선택될 수 없다. 코드벡터(codevector)들은 대수학적으로 구성되며, 그래서 트레인되거나 저장될 필요가 없다. 격자 VQ의 유연성은 각 코드북은 그 기본이 격자에 달려있는 격자의 몇몇 셸들로 구성된다는 사실에 의해 일반적으로 제한된다. 몇몇의 셀들을 같이 결합함으로써, 코드북들의 크기는 예를 들면, 모든 원하는 숫자는 아닐지라도, 2 또는 다른 숫자의 거듭제곱으로 만들어질 수 있다.
상기에 언급된 문제점들을 고려하면, 그 중에서도 특히, 서로 다른 선택 가능한 레벨들의 수 N과 함께 벡터들의 N-레벨 양자화를 위한 개선된 방법, 기기 및 소프트웨어 애플리케이션 생성물을 제공하는 것이 본 발명의 목적의 하나이다.
본 발명의 또 다른 목적은 서로 다른 선택 가능한 레벨들의 수 N과 함께 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 위한 개선된 방법, 기기 및 소프트웨어 애플리케이션 생성물을 제공하는 것이다.
본 발명의 또 다른 목적은 벡터들의 표현을 전송하는 개선된 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 레벨들의 서로 다른 선택 가능한 수 N과 함께 N-레벨 양자화에서 사용하기 위해 코드북을 결정하는 개선된 방법, 기기 및 소프트웨어 애플리케이션 생성물을 제공하는 것이다.
본 발명의 또 다른 목적은 레벨들의 서로 다른 선택 가능한 수 N과 함께 N-레벨 양자화에서 사용하기 위한 개선된 코드북을 제공하는 것이다.
본 발명의 첫 번째 모습
본 발명의 첫 번째 모습에 따르면, 벡터들의 N-레벨 양자화를 위한 방법이 제안되며, 이때에 N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 방법은, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 단계를 포함하며, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현된다.
거기에서, 상기 벡터들과 상기 재생 벡터들은 k가 1과 같거나 더 큰 k 차원의 벡터들이며, 스칼라 및 벡터 양자화의 두 경우가 목표가 될 수 있을 것이다. 상기 벡터들은 양자화될 데이터를 포함한다. 각 벡터 내에 포함된 상기 데이터는 예를 들면, 음성 또는 오디오 신호의 프레임이나 서브-프레임의 LPC/LSF 계수의 집합, 하나 또는 그 이상의 이어지는 프레임들 또는 서브-프레임들의 이득, 피치 또는 음성 파라미터들의 집합과 같은 파라미터 집합일 수 있다.
N-레벨 코드북으로부터의 재생 벡터들을 선택함으로써 상기 벡터들은 N-레벨로 양자화된다. 상기 선택은 예를 들면 벡터와 재생 벡터 사이의 왜곡을 계량하는 왜곡 기준 (예를 들면, 유클리디안 거리 또는 평방 유클리디안 거리 또는 다른 기준)에 의해 좌우될 수 있을 것이며, 그러면 상기 왜곡 기준을 최소화시키는 재생 벡터가 선택된다. 그러면 상기 선택된 재생 벡터들의 식별자는 양자화의 결과로서 출력되며, 재생 벡터 회수 유닛이 상기 코드북을 알고 있다면, 그 재생 벡터 회수 유닛이 상기 선택된 재생 벡터를 회수하도록 허용한다. 거기에서, N이 증가하면, N-레벨 코드북이 더 많은 재생 벡터들을 포함하고 그래서 상기 벡터가 더 나은 방법으로 포함되어 있는 벡터 공간을 커버할 수 있으므로, 상기 벡터와 상기 선택된 재생 벡터 간의 왜곡은 레벨들의 수 N이 증가할수록 감소한다. 그러나, N이 증가함에 따라, 또한 상기 식별자를 저장하고 전송하는 것이 일반적으로 더 복잡하게 된다.
거기에서, 상기 레벨의 수 N은 (양자화가 최대 비트 속도에 대응하는 레벨들의 고정된 수와 함께 항상 실행되는 종래의 내장 부호화와 비교하면) 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 (양자화가 스스로 크기 조절 가능하며 양자화될 현재의 벡터를 기반으로 양자화 동안에 가장 적합한 레벨들의 수를 결정하는, 스스로 크기 조절 가능한 격자 벡터 양자화의 종래 기술과 비교하여) 상기 양자화 이전에 선택 가능하다. 예를 들면, M은 256일 수 있고, 그로부터 레벨 N의 상기 수들이 선택될 수 있는 미리 정의된 값들의 집합은 {2,4,8,16,32,64,128,256} 일 수 있다.
그러나, 일부 양자화 애플리케이션 내에서, 예를 들어, 상기 선택된 재생 벡터의 식별자로서 워드 길이 n=log2(N)인 이진 워드가 사용되지 않는다면, 2의 거듭 제곱이 아닌 재생 벡터들의 수를 포함하는 코드북을 사용하는 것이 더 효율적일 수 있기 때문에, M 및/또는 N이 꼭 2의 거듭제곱일 필요는 없다. 그러면 M은 예를 들면 어떤 원하는 정수일 수 있고, N은 1 ≤ N ≤ M 인 어떤 원하는 수도 될 수 있을 것이다.
상기 레벨 N의 수에 대한 상기 선택은 예를 들면 상기 양자화기에 대해 외부인 예에 의해 실행될 수 있을 것이다. 상기 레벨 N에 대한 선택은, 두서너 가지의 가능성이지만, 예를 들면 상기 양자화된 벡터에 관한 정보가 그를 통해 전송되어야만 하는 전송 채널의 전송 특성에 의존하거나 또는 상기 양자화된 벡터가 그 내부에 저장되어야만 하는 저장 유닛의 저장 용량에 의존하여 실행될 수 있을 것이다.
본 발명의 이런 첫 번째 모습에 따라서, 벡터들의 양자화는 동일한 접합 코드북 (joint codebook)을 기반으로 레벨 N의 상이한 수에 대해 실행된다. 이 접합 코드북은 N ≤ M 인 레벨 N의 상이한 수와 함께 양자화를 위해 요구되는 N-레벨 코드북들을 모두 포함한다. 각 N에 대해, 상기 N-레벨 코드북들은 접합 코드북의 첫 번째 N개 재생 벡터들 각각에 의해 표현된다. 예를 들면, M=256 이고, 그리고 N에 대한 적어도 두 값들의 미리 정의된 상기 집합이 {128,256} 이며, N=128 인 경우에는, M=256 개의 재생 벡터들의 상기 코드북 내의 첫 번째 128개의 재생 벡터들은 128-레벨 양자화에 대한 코드북을 형성하고, N=256 인 경우에는, M=256 개 재생 벡터들의 상기 동일한 코드북 내의 첫 번째 256개의 재생 벡터들은 256-레벨 양자화에 대한 코드북을 형성한다. 본 발명이 속한 기술 분야의 통상의 지식을 가진 자에게는, 더 적절한 경우에는, 상기 N-레벨 코드북이 접합 코드북의 끝 부분에 위치할 수 있다는 것은 아주 명백하다.
하나의 대응 코드북이 구성되어 레벨들의 N의 원하는 각 수에 대해 저장되는 종래의 기술과 비교하면, 본 발명에 따라 오직 하나의 접합 코드북만이 구성되어 저장된다. 예를 들면, 라벨들 M의 최대 수가 256으로 정의되면, 종래의 기술에서는 (256 및 128개의 재생 벡터들을 가진) 두 개의 코드북들이 구성되고 저장될 것인 반면, 본 발명에 따라서 256개의 재생 벡터를 가진 단 하나의 코드북만이 구성되고 저장되며, 이는 예를 들면 그것이 N=128에 대해 더 작은 수의 레벨 N에 대한 코드북을 또한 포함하기 때문이다. 이는 N-레벨 양자화되었던 벡터들의 재생 벡터들을 회수하는 유닛과 양자화기 모두의 저장의 요구를 줄이는데 크게 기여하며, 하나의 코드북으로의 액세스만이 제어되기 때문에 양자화기와 그런 유닛의 구조를 또한 단순화시킨다. 레벨 N의 상이한 수에 대해 접합 코드북을 사용하는 것은 그에 맞게 상기 접합 코드북을 구성하는 것에 의해 가능해진다. 일반적으로, 본 발명에 따라 접합 코드북 내에 포함된 각 N-레벨 코드북 내의 재생 벡터들의 수 N은 유연하게 선택될 수 있고, 특히 종래의 기술인 격자 VQ에서의 경우와 같은 격자 셸들의 원칙에 의해 제한되지 않는다. 그러므로 본 발명에 따른 접합 코드북은 양자화 레벨들의 수를 특히 유연하게 선택하는 것을 허용한다. 유연성의 추가적인 정도가 상기 벡터의 차원을 선택하는 가능성에 의해 제공되어, 스칼라 양자화 및 벡터 양자화의 양 경우가 역점을 주어 다루어질 수 있다.
본 발명의 첫 번째 모습에 따른 방법에서, n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지할 수 있을 것이다. 워드 길이 n의 이진 워드들이 상기 선택된 재생 벡터들의 식별자로서 사용된다면 M 과 N을 2의 거듭 제곱으로 강제하는 것은 특히 이로우며, 이는 길이 i의 이진 워드는 2i 개의 상이한 재생 벡터들을 나타내는 것을 허용하기 때문이다.
본 발명의 첫 번째 모습에 따른 방법에서, 상기 N-레벨 코드북 내의 상기 재생 벡터들 각각은 n-비트 이진 워드에 의해 식별될 수 있을 것이다. N=2n인 경우, 상기 이진 워드는 상기 N-레벨 코드북 내의 모든 N=2n 개의 재생 벡터들을 효율적으로 나타낼 수 있을 것이다.
본 발명의 첫 번째 모습에 따른 방법에서, 상기 벡터들은 데이터 시퀀스의 선형 예측 부호화(Linear Predictive Coding)에 관련된 파라미터들을 포함할 수 있을 것이다. 상기 파라미터들은 예를 들면 음성 또는 오디오 신호의 몇몇 프레임들 또는 서브-프레임들 동안에 음성 계통 (vocal tract)을 특성을 기술하는 LPC/LSF 계수이거나, 그리고/또는 상기 음성 또는 오디오 신호의 하나 또는 몇몇의 이어지는 프레임들 또는 서브-프레임들 내의 여기 (excitation) 신호와 관련된 파라미터들일 수 있다.
본 발명의 첫 번째 모습에 따른 방법에서, 상기의 선택 단계는 휴대용 통신 기기에 의해 실행될 수 있을 것이다. 그런 휴대용 통신 기기는 예를 들면 이동 전화기, PDA (Personal Digital Assistant), 휴대용 컴퓨터 등일 수 있다. 마찬가지로, 상기 단계는 물론, 기지국 또는 통신 시스템의 코어 네트워크 엘리먼트와 같은, 이동하지 않는 통신 기기에 의해 실행될 수도 있을 것이다.
본 발명의 첫 번째 모습에 따라서, 벡터들의 N-레벨 양자화 기기가 더 제안되어, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 기기는 N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 수단을 포함하며, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현된다.
본 발명의 첫 번째 모습에 따른 이 기기에 대해, 본 발명의 첫 번째 모습에 따른 방법의 문맥에서 이이 설명된 것과 동일한 특성 및 이점들이 적용된다.
본 발명의 첫 번째 모습에 따른 상기의 기기는 휴대용 통신 기기일 수 있다. 그런 휴대용 통신 기기는 예를 들면 이동 전화기, PDA (Personal Digital Assistant), 휴대용 컴퓨터 등일 수 있다. 마찬가지로, 상기 단계는 물론, 기지국 또는 통신 시스템의 코어 네트워크 엘리먼트와 같은, 이동하지 않는 통신 기기에 의해 실행될 수도 있을 것이다.
본 발명의 첫 번째 모습에 따라서, 소프트웨어 애플리케이션 생성물이 더 제안되어, 벡터들의 N-레벨 양자화를 위해 구체화된 소프트웨어 애플리케이션을 구비하는 저장 매체를 포함하며, 이 경우에 N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 소프트웨어 애플리케이션은, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 프로그램 코드를 포함하며, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현된다.
상기 저장 매체는 예를 들면, ROM (Read only Memory), RAM (Random Access Memory), 메모리 스틱이나 카드 그리고 광학적, 전기적 또는 자기적으로 읽기 가능한 디스크와 같은, 휘발성 또는 비휘발성인 메모리 또는 저장 요소일 수 있다. 상기 소프트웨어 애플리케이션 내에 포함된 상기 프로그램 코드는 컴퓨터 시스템과 통신하기 위해 높은 수준의 절차 또는 객체 지향적인 프로그램 언어 또는 디지털 프로세서와 통신하기 위해 어셈블리 또는 기계어로 구현될 수 있을 것이다. 어떤 경우에건, 상기 프로그램 코드는 컴파일될 수도 있을 것이고 인터프리트되는 코드일 수도 있다.
본 발명의 첫 번째 모습에 따른 소프트웨어 애플리케이션 생성물에 대해, 본 발명의 첫 번째 모습에 따른 방법의 문맥에서 이이 설명된 것과 동일한 특성 및 이점들이 적용된다.
본 발명의 두 번째 모습
본 발명의 두 번째 모습에 따르면, N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 위한 방법이 제안되며, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 방법은, 상기 양자화에서 벡터에 대해 선택되었던 재생 백터의 식별자를 수신하는 단계; 및 상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하며, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는. 회수 단계;를 포함한다.
거기에서, 본 발명의 첫 번째 모습의 문맥에서 제공되었던 벡터들과 재생 벡터들에 대한 설명, 레벨들의 수 N에 대한 선택에 대한 설명 그리고 각 벡터에 대한 재생 벡터의 선택에 대한 설명은 본 발명의 두 번째 모습에도 또한 적용된다는 것에 유의해야 한다.
상기 벡터들은, 예를 들면 본 발명의 첫 번째 모습의 문맥 내에서 설명된 것과 같이, 왜곡 기준에 따라 N-레벨 코드북으로부터 재생 벡터를 선택하여 양자화된다. 이 재생 벡터는 식별자에 의해 식별되며, 그 식별자는 예를 들면 n-비트의 이진 워드일 수 있으며, 그리고 예를 들면 본 발명의 두 번째 모습에 따른 방법을 실행하는 기기로 전송 채널을 통해 전송될 수 있을 것이다. 상기 식별자를 수신하면, 상기 식별자를 기반으로 하여, 대응하는 재생 벡터가 상기 접합 코드북의 첫 번째 N 개의 재생 벡터들에 의해 표현되는 N-레벨 코드북으로부터 회수된다. 상기 양자화를 위해 선택 가능한 모든 N에 대해, 대응하는 N-레벨 코드북들이 상기 접합 코드북 내에 포함된다는 그 사실은 본 발명의 두 번째 모습에 따른 방법을 실행하는 유닛에서 요구되는 저장 용량을 크게 줄여준다. 더 나아가, 복수의 코드북에 대해서가 아니라 하나의 단일 코드북 (접합 코드북)에 대한 액세스만이 필요하기 때문에, 그 유닛의 동작은 단순화된다.
본 발명의 두 번째 모습에 따라, N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 위한 기기가 추가로 제안되며, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 기기는, 상기 양자화에서 벡터에 대해 선택되었던 재생 백터의 식별자를 수신하는 수단; 및 상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하는 수단으로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 회수 수단;을 포함한다.
본 발명의 두 번째 모습에 따라, 소프트웨어 애플리케이션 생성물이 추가로 제안되며, N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 것이 구체화된 소프트웨어 애플리케이션을 구비하는 저장 매체를 포함하며, 이 때에 N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하다. 상기 소프트웨어 애플리케이션은, 상기 양자화에서 벡터에 대해 선택되었던 재생 벡터의 식별자를 수신하는 프로그램 코드; 및 상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하는 프로그램 코드로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 프로그램 코드;를 포함한다.
상기 저장 매체는 예를 들면, ROM (Read only Memory), RAM (Random Access Memory), 메모리 스틱이나 카드 그리고 광학적, 전기적 또는 자기적으로 읽기 가능한 디스크와 같은, 휘발성 또는 비휘발성인 메모리 또는 저장 요소일 수 있다. 상기 소프트웨어 애플리케이션 내에 포함된 상기 프로그램 코드는 컴퓨터 시스템과 통신하기 위해 높은 수준의 절차 또는 객체 지향적인 프로그램 언어 또는 디지털 프로세서와 통신하기 위해 어셈블리 또는 기계어로 구현될 수 있을 것이다. 어떤 경우에건, 상기 프로그램 코드는 컴파일될 수도 있을 것이고 인터프리트되는 코드일 수도 있다.
본 발명에 따른 세 번째 모습
본 발명의 세 번째 모습에 따르면, 벡터들의 표현들을 전송하는 시스템이 제안된다. 상기 시스템은, N개 재생 벡터들의 N-레벨 코드북으로부터 각 벡터에 대한 재생 벡터를 선택하는 수단으로, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 N개 재생 벡터들은 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 선택 수단; 상기 선택된 재생 벡터의 식별자를 전송 채널을 경유하여 전송하는 수단; 상기 식별자를 수신하는 수단; 및 상기 제1 코드북과 동등한 M개 재생 벡터들의 제2 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표시되는 N개 재생 벡터들의 N-레벨 코드북으로부터, 상기 식별자를 기반으로, 상기 재생 벡터를 회수하는 수단;을 포함한다.
거기에서, 본 발명의 첫 번째 모습의 문맥에서 제공되었던 벡터들과 재생 벡터들에 대한 설명, 레벨들의 수 N에 대한 선택에 대한 설명 그리고 각 벡터에 대한 재생 벡터의 선택에 대한 설명은 본 발명의 세 번째 모습에도 또한 적용된다는 것에 유의해야 한다.
상기 첫 번째 접합 코드북 내에 포하된 N-레벨 코드북으로부터 각 벡터에 대해 재생 벡터를 선택하고, 그리고 상기 재생 벡터의 식별자, 예를 들면 n-비트 이진 워드 n=log2(N)와 같은 식별자만을 전송함으로써, 상기 벡터 (즉, 상기 재생 벡터 또는 그의 대응하는 식별자) 표현에 대한 특별하게 효율적으로 전송하는 것이 획득되며, 이는 상기 식별자에 대한 정보가 상기 식별자를 수신한 유닛으로 하여금 상기 재생 벡터를 (상기 첫 번째 코드북과 동일한) 상기 두 번째 접합 코드북에 포함된 대응하는 N-레벨 코드북으로부터 회수하는 것을 가능하게 하기 때문이다. 거기에서, 재생 벡터들은 제한된 수의 재생 벡터들을 가진 코드북으로부터 유래하며 그래서 상기 벡터와는 일반적으로 다르다는 사실에 의해 초래된, 벡터의 왜곡은, n-비트 이진 워드의 워드 길이는 증가하는 반면, N이 증가하면 감소한다. 그러므로, N을 통해, 정밀도와 필요한 전송 용량 간의 트레이드-오프 (trade-off)가 제어될 수 있다.
상기 재생 벡터 (즉, 벡터의 상기 양자화)를 선택하는 것은 예를 들면 이동 무선 시스템과 같은 통신 네트워크 내의 전송기에서 발생할 수 있을 것이며, 그러면 상기 재생 벡터를 회수하는 것은 상기 통신 네트워크 내의 수신기에서 실행될 수 있을 것이다. 상기 전송기와 수신기 간의 전송 채널은 무선의 또는 유선의 전송 채널일 수 있을 것이다. 상기 전송 채널은 상기 재생 벡터의 상기 식별자가 전송기 사이트에서 저장되고 수신기 사이트에서 읽혀지는 저장 매체를 나타내는 것으로도 이해될 수 있다. 더 나아가, 상기 식별자는 전송되기 전에 채널 부호화 또는 추가로 처리될 수 있을 것이다.
본 발명의 네 번째 모습
본 발명의 네 번째 모습에 따르면, 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북을 결정하는 방법이 제안되어, 그 때에, M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택된다. 상기 방법은 적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 단계; 및 상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하는 단계로서, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 배열 단계;를 포함한다.
거기에서, 본 발명의 첫 번째 모습의 문맥에서 제공되었던 벡터들과 재생 벡터들에 대한 설명, 레벨들의 수 N에 대한 선택에 대한 설명 그리고 각 벡터에 대한 재생 벡터의 선택에 대한 설명은 본 발명의 세 번째 모습에도 또한 적용된다는 것에 유의해야 한다.
그러면, 본 발명의 네 번째 모습에 따른 상기 방법에 의해 결정된 접합 코드북은 예를 들면 양자화기를 이용하는 기기 및/또는 N-레벨 양자화되었던 벡터들의 재생 벡터들을 회수하는 유닛 내의 메모리로 저장될 수 있을 것이다. 상기 배열 알고리즘에 따라 상기 접합 코드북 내 M 개의 재생 벡터들의 특정한 배열은 상기 접합 코드북이 N ≤ M인 레벨 N의 선택 가능한 상이한 수들을 가진 벡터들의 양자화를 위한 단일의 코드북으로서 사용되는 것을 허용하며 그래서 양자화기와 재생 벡터 회수 유닛 모두의 내부에 있는 메모리를 절약하는데 기여한다.
상기 트레이닝 알고리즘은 상기 복수의 트레이닝 벡터들의 적어도 일부를 기반으로 하여 L 개의 재생 벡터들의 집합을 생성하며, 이 경우 L 은 임의로 선택될 수 있다. 상기 트레이닝 알고리즘은 예를 들면 LBG 알고리즘이거나 또는 다른 유형의 코드북 트레이닝 알고리즘일 수 있을 것이다. LBG 알고리즘의 한 모습은 본 명세서 시작 부분에서 인용된 종래 참조 기술인 Linde 등에 의해 제안된 것과 같이 벡터들의 알려지지 않은 분배를 위한 LBG 알고리즘이다. 상기 복수의 트레이닝 알고리즘에 추가하여, 상기 알고리즘은 상기 L 개의 재생 벡터들을 상기와 같이 생성하는 동안에 고정된 것으로 간주되는 하나 또는 그 이상의 재생 벡터들과 함께 제공될 수 있을 것이다.
상기 재생 벡터들을 생성하는 상기 단계는 이미 획득된 모든 M 개 재생 벡터들을 획득하기 위해 단 한번만 실행되어야 할 필요는 없으며, 여러 번 동등하게 제대로 실행될 수도 있을 것이다 (예를 들면 매 경우마다 증가된 수의 재생 벡터들이 생성될 수 있다).
상기 배열 알고리즘은, 각 N에 대해, 상기 M 개의 재생 벡터들의 상기 집합 내의 첫 번째 N 개의 재생 벡터들이 상기 벡터들의 상기 N-레벨 양자화 내에서 사용될 때에 상기 벡터들이 조금만 왜곡되도록 허용하는 N-레벨 코드북을 형성한다. 거기에서, 상기 왜곡은 상기 벡터의 상기 양자화에서 상기 N-레벨 코드북으로부터 선택된 재생 벡터로부터의 벡터의 편차를 계량화한다. 사용된 배열 알고리즘에 따라, M 개 재생 벡터들의 상이한 코드북들이 생성될 수 있을 것이다. 더 나아가, 레벨들의 수 N이 증가하면 (즉, 상기 N-레벨 코드북 내의 재생 벡터들의 수가 증가됨), N-레벨 코드북 내의 증가된 수의 재생 벡터들의 이용 가능성 때문에 상기 벡터들의 평균 왜곡은 감소한다. 그러므로, 예를 들면, 64개의 재생 벡터들의 코드북과 함께 얻어질 수 있는 평균 왜곡은 128개의 재생 벡터들의 코드북과 함께 얻어질 수 있는 평균 왜곡보다 아주 더 클 것이지만, 그러나 64개 재생 벡터들의 코드북의 컨텍스트 (context) 내에서는 여전히 작은 것으로 간주될 수 있을 것이다.
본 발명의 네 번째 모습에 따른 방법에서, n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지할 수 있을 것이다. 워드 길이 n의 이진 워드들이 상기 선택된 재생 벡터들의 식별자로서 사용된다면 이는 특히 이로울 수 있을 것이며, 이는 길이 i의 이진 워드는 2i 개의 상이한 재생 벡터들을 나타내는 것을 허용하며 그래서 상기 선택된 재생 벡터들에 관한 정보를 전송하고 저장하는 효율적인 수단을 나타내기 때문이다.
본 발명의 네 번째 모습에 따른 방법의 첫 번째 실시예는, 상기 트레이닝 알고리즘에 의해 M개 재생 벡터들의 초기 코드북을 생성하는 단계; 상기 트레이닝 알고리즘에 의해 2개 재생 벡터들의 2-레벨 코드북을 생성하는 단계; 상기 2-레벨 코드북 내의 상기 2개 재생 벡터들과 가장 유사한 2개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 단계; 상기 2개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개의 위치로 복사하고 상기 초기 코드북으로부터 상기 2개의 선택된 재생 벡터들을 삭제하는 단계; 및 1 < i ≤ m 인 동안 다음의: 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계; 상기 접합 코드북으로 이미 복사된 I/2 개 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 식별하는 단계; 상기 I-레벨 코드북 내의 남아있는 식별되지-않은 I/2 개의 재생 벡터들에 대해, 상기 남아있는 식별되지-않은 I/2 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 단계; 및 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;를 반복하는 단계;를 포함한다.
N 과 M이 2의 거듭제곱으로 가정된, 이 첫 번째 실시예에서, 먼저 처음의 모든 M 개의 재생 벡터들 (초기 코드북)이 복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 한꺼번에 생성되며, 그러면, 그 생성된 재생 벡터들은 연속적으로 상기 접합 코드북 내로 배열되며, 그 때에, 상기 알고리즘의 각 스테이지 i에 대해, 상기와 같이 배열하는 것은, 상기 스테이지 i의 각 최적 코드북에서 오리엔테이션 (orientation)을 허용하기 위해, 상기 트레이닝 알고리즘에 의해 I 개의 재생 벡터들의 코드북을 생성하는 것을 포함한다. 거기에서, 벡터들의 유사성이 어떤 유사성 기준에 의해 구해지며, 이는 몇 가지 예를 들면 벡터들 간의 유클라디언 거리 또는 평방 유클리디안 거리일 수 있다.
본 발명의 네 번째 모습에 따른 방법의 두 번째 실시예는, 상기 트레이닝 알고리즘에 의해 2개의 재생 벡터들의 2-레벨 코드북을 생성하는 단계; 상기 2개의 재생 벡터들을 상기 2-레벨 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개 위치로 복사하는 단계; 및 1 < i ≤ m 인 동안 다음의: 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계로서, 상기 트레이닝 알고리즘에서, 상기 접합 코드북으로 이미 복사된 상기 I/2 개의 재생 벡터들은 I 개의 재생 벡터들의 코드북의 첫 번째 부분을 형성하며, 그 첫 번째 부분은 상기 트레이닝 알고리즘에 의해 생성된 상기 I-레벨 코드북의 초기값으로서 동작하고 상기 트레이닝 알고리즘 동안 내내 고정된 것으로 간주되는, 생성 단계; 및 상기 생성된 I-레벨 코드북의 I/2개의 마지막 재생 벡터들을 상기 접합 코드북 내의 다음 빈 I/2개의 위치의 증가하는 자리로 복사하는 단계;를 반복하는 단계;를 포함한다.
N 과 M이 2의 거듭제곱으로 가정된, 이 두 번째의 실시예에서, 상기 접합 코드북에 대한 재생 벡터들은 한꺼번에 생성되지 않으며, 크기 I/2의 블록으로 연속적으로 생성된다. 거기에서, I 개의 재생 벡터들의 코드북을 생성하는 과정에서의 트레이닝 알고리즘의 자유도는 상기 코드북의 첫 번째 I/2 개의 재생 벡터들과 함께 트레이닝 알고리즘을 제공하고 그리고 남아있는 I/2 개의 재생 벡터들의 생성 동안에 그 재생 벡터들이 고정된 채로 남아있을 것을 요청함으로써 제한된다. 접합 코드북 내의 다음의 I/2 개의 빈 위치들에 상기 생성된 코드북의 마지막 I/2 개의 재생 벡터들을 복사하는 것에 대한 대안으로서, 물론, 생성된 코드북 전체가 상기 코드북 내의 첫 번째 I 개의 위치로 또한 복사될 수 있다.
본 발명의 네 번째 모습에 따른 방법의 세 번째 실시예의 첫 번째 대안은, 복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계; 상기 초기 코드북으로부터, 서로 가장 차이가 나는 두 개의 재생 벡터들을 선택하는 단계; 상기 두 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 두 개의 위치로 복사하고 상기 초기 코드북으로부터 상기 두 개의 선택된 재생 벡터들을 삭제하는 단계; 및 상기 초기 코드북이 비어있지 않을 때까지 다음의: 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터를 삭제하는 단계;를 반복하는 단계;를 포함한다.
본 발명의 네 번째 모습에 따른 방법의 세 번째 실시예의 두 번째 대안은, 복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계; 상기 초기 코드북으로부터, 상기 트레이닝 벡터들의 모두와 가장 유사한 재생 벡터를 선택하는 단계; 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째의 위치로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 단계; 및 상기 초기 코드북이 비어있지 않을 때까지 다음의: 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 단계;를 반복하는 단계;를 포함한다.
이 세 번째 실시예에서, 처음 M 개의 모든 재생 벡터들 (초기 코드북)은 트레이닝 데이터를 기반으로 상기 트레이닝 알고리즘에 의해 한꺼번에 생성되고, 그러면 그 생성된 재생 벡터들은 상기 접합 코드북으로 연속적으로 배열되며, 그때에 상기 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북의 시작 부분으로 배열하려고 시도되어, 가장 차이가 나는 재생 벡터들이 접합 코드북의 시작 부분에 위치하게 된다. 거기에서, 벡터들간의 차이가, 몇 가지 예를 들면 벡터들 간의 유클라디언 거리 또는 평방 유클리디안 거리와 같은, 어떤 거리 기준을 기반으로 추정된다. 첫 번째 대안에 따르면, 상기 초기 코드북 내에 있는 서로에 대해 가장 차이가 나는 두 재생 벡터들은 상기 접합 코드북 내의 첫 번째 두 위치로 복사되며, 그 반면에, 두 번째 대안에 따르면, 상기 초기 코드북으로부터 상기 복수의 트레이닝 벡터들 내의 모든 트레이닝 벡터들에 가장 유사한 재생 벡터가 상기 접합 코드북 내의 첫 번째 위치로 복사된다.
이 세 번째 실시예에서, 아주 드물게 사용되는 재생 벡터들은 접합 코드북 내의 첫 번째 엔트리가 되지 않도록 어떤 제한들을 가하는 것이 이로울 수 있을 것이다. 이는 예를 들면 재생 벡터 성분들의 크기가 어떤 제한을 넘어서지 않도록 요청함으로써 달성될 수 있을 것이며, 이 경우 이 제한은 재생 벡터에게는 접합 코드북 시작 부분에서는 작을 수 있을 것이며 접합 코드북의 끝 부분으로 향하면서 커질 수 있을 것이다.
본 발명의 네 번째 모습에 따른 방법의 네 번째 실시예는, 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계; 및 상기 초기 코드북이 비어있지 않을 때까지 다음의: 상기 초기 코드북으로부터 서로 가장 유사한 두 개의 재생 벡터들을 선택하는 단계; 및 상기 선택된 두 개의 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음의 빈 위치로, 마지막 위치로부터 감소하는 자리로, 복사하고 상기 초기 코드북으로부터 상기 선택된 두 개의 재생 벡터들을 삭제하는 단계;를 반복하는 단계;를 포함한다.
이 네 번째 실시예에서, 처음의 모든 M 개의 재생 벡터들 (초기 코드북)은 트레이닝 데이터를 기반으로 상기 트레이닝 알고리즘에 의해 한꺼번에 생성되며, 그러면 그 생상된 재생 벡터들은 상기 접합 코드북 내로 연속적으로 배열되며, 그때에 그 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북으로, 상기 접합 코드북의 끝 부분으로부터 계산하면서, 다른 재생 벡터들과의 차이의 정도가 커지게 배열하는 것이 시도된다. 거기에서, 벡터들간의 유사성이, 몇 가지 예를 들면 벡터들 간의 유클라디언 거리 또는 평방 유클리디안 거리와 같은, 어떤 유사성 기준을 기반으로 추정된다.
본 발명의 네 번째 모습에 따른 방법의 다섯 번째 실시예에서, M보다 작거나 같은 N에 대한, 적어도 두 개의 미리 정의된 값들의 상기 집합이 K 개의 값들인 Ni (i= 1, ..., K)를 포함하고, j = 2,..., K 에 대해 Nj-1 < Nj ≤ M 이다. 상기 방법은, 복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계; 상기 초기 코드북으로부터 Ni 개의 재생 벡터들을 선택하여, 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들 모두에 대한 왜곡이 최소가 되도록 하는 단계; 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북으로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계; 및 1 < i ≤ K 인 각 Ni 에 대해: 상기 초기 코드북으로부터 Ni - Ni-1 개의 재생 벡터들을 선택하여 상기 접합 코드북으로 복사된 Ni-1 개의 재생 벡터들 및 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들의 모두에 대한 왜곡이 최소가 되도록 하는 단계; 및 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;를 반복하는 단계;를 포함한다.
이 다섯 번째 실시예에서, 처음 모든 M 개의 재생 벡터들 (초기 코드북)은 트레이닝 데이터를 기반으로 하여 상기 트레이닝 알고리즘에 의해 한꺼번에 생성되며, 그러면, 그 생성된 재생 벡터들은 상기 접합 코드북으로 코드북 대 코드북 기반으로 배열된다. 상기 접합 코드북 내에 포함될, 크기 Ni 인 (i=l, ...,K, 이며, Nk 는 예를 들면 M과 같을 수 있을 것이다) K 개의 코드북들 각각에 대해, 재생 벡터들이 초기 코드북으로부터 선택되어, 그 결과, 이전 스테이지들에서 이미 결정된 재생 벡터들과 상기 새롭게 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 알고리즘에 의해 사용되는 트레이닝 벡터들에 대한 왜곡이 최소가 되도록 한다. 거기에서 Nk 는 M과 같을 수도 있고 아닐 수도 있을 것이다. 코드북의 왜곡은 예를 들면 그 코드북 내에 포함된 각 재생 벡터의, 보로노이 (Voronoi) 셀(cell)로부터의 모든 트레이닝 벡터에 대한 왜곡의 합을 계산하고 상기 코드북 내의 모든 재생 벡터들의 왜곡들의 합을 마지막 값에 도착할 때까지 계산하여 결정될 수 있을 것이다. 재생 벡터의 보로노이 셀은, 주어진 거리 하에서, 그 코드북으로부터 다른 어떤 재생 벡터보다 가깝게 있는 것으로 간주되는 재생 벡터인 입력 벡터들의 집합으로서 간주될 수 있을 것이며, 그 코드북은 상기와 같이 간주된 재생 벡터를 포함한다. 거기에서, 그 입력 벡터들은 그 주어진 코드북을 통해서 양자화될 것이 가능한 모든 벡터들이며, 그래서 그 트레이닝 벡터들의 집합은 보통은 입력 벡터들의 집합의 부분 집합일 뿐이다 (단지 하나의 재생 벡터를 가진 코드북의 나쁜 경우에, 그 단일 재생 벡터의 보로노이 셀은 모든 입력 공간이다). 그 왜곡은 어떤 왜곡 기준에 의해 결정되며, 이는 몇 가지 예를 들면 벡터들 간의 유클라디언 거리 또는 l1 놈(norm)으로부터 유도된 거리일 수 있다.
본 발명의 네 번째 모습에 따라, 더 나아가 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북을 결정하는 기기가 제안되어, 그 때에, M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택된다. 상기 기기는, 적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 수단; 및 상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하여, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 배열 수단;을 포함한다. 거기에서, 상기 트레이닝 알고리즘은 예를 들면 LBG 알고리즘일 수 있을 것이다.
본 발명의 네 번째 모습에 따라, 더 나아가 컴퓨터 애플리케이션 생성물이 제안되어, 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북을 결정하는 것이 구체화된 소프트웨어 애플리케이션 구비하는 저장 매체를 포함하며, 이 때에, M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택된다. 상기 소프트웨어 애플리케이션은, 적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 프로그램 코드; 및 상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하여, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 프로그램 코드;를 포함한다. 거기에서, 상기 트레이닝 알고리즘은 예를 들면 LBG 알고리즘일 수 있을 것이다.
상기 저장 매체는 예를 들면, ROM (Read only Memory), RAM (Random Access Memory), 메모리 스틱이나 카드 그리고 광학적, 전기적 또는 자기적으로 읽기 가능한 디스크와 같은, 휘발성 또는 비휘발성인 메모리 또는 저장 요소일 수 있다. 상기 소프트웨어 애플리케이션 내에 포함된 상기 프로그램 코드는 컴퓨터 시스템과 통신하기 위해 높은 수준의 절차 또는 객체 지향적인 프로그램 언어 또는 디지털 프로세서와 통신하기 위해 어셈블리 또는 기계어로 구현될 수 있을 것이다. 어떤 경우에건, 상기 프로그램 코드는 컴파일될 수도 있을 것이고 인터프리트되는 코드일 수도 있다.
본 발명의 다섯 번째 모습
마지막으로, 본 발명의 다섯 번째 모습에 따르면, 벡터들의 N-레벨 양자화에서 사용하기 위한 접합 코드북이 제안되어, 그 때에, M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개의 재생 벡터들의 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택된다. 상기 접합 코드북은, 상기 M개의 재생 벡터들의 집합 내의 상기 재생 벡터들은 적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성되며; 그리고 상기 재생 벡터들은 배열 알고리즘에 따라서 M 개의 재생 벡터들의 상기 집합 내에서 배열되어, 각 N에 대해, 상기 M개의 재생 벡터들의 집합 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 한다.
거기에서, 본 발명의 첫 번째 모습의 문맥에서 제공되었던 벡터들과 재생 벡터들에 대한 설명, 레벨들의 수 N에 대한 선택에 대한 설명 그리고 각 벡터에 대한 재생 벡터의 선택에 대한 설명은 본 발명의 다섯 번째 모습에도 또한 적용된다는 것에 유의해야 한다. 상기 트레이닝 알고리즘은 예를 들면 LBG 알고리즘일 수 있다.
본 발명의 다섯 번째 모습에 따른 코드북은 예를 들면 N-레벨 양자화되었던 벡터들의 재생 벡터들을 회수하는 유닛 및/또는 양자화기를 사용하는 기기의 메모리로 저장될 수 있을 것이다. 상기 배열 알고리즘에 따른 M 개의 재생 벡터들의 상기 집합을 포함하는 상기 코드북 내의 M 개 재생 벡터들의 특정한 배열은 상기 코드북이 레벨들의 상이한 선택 가능한 수 N (N ≤ M) 을 가지는 양자화 벡터에 대한 단일의 코드북으로서 사용되는 것을 허용하며 그래서 양자화기와 재생 벡터 회수 유닛 모두에서 메모리를 절약하게 하는데 기여한다.
본 발명의 이러한 그리고 다른 모습들은 이하에서 설명되는 실시예들을 참조하면 명백하고 명료해질 것이다.
도 1은 본 발명의 첫 번째 모습에 따른 벡터의 N-레벨 양자화 기기의 실시예를 도식적으로 표시하고, 본 발명의 두 번째 모습에 따라 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 실시예를 도시한 것이며, 이들은 본 발명의 세 번째 모습에 따른 표현을 전송하는 시스템에 포함된다.
도 2a는 본 발명의 첫 번째 모습에 따른 벡터들의 N-레벨 양자화 방법의 실시예 흐름도이다.
도 2b는 본 발명의 두 번째 모습에 따라 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 방법의 실시예의 흐름도이다.
도 3은 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 기기의 실시예를 개략적으로 나타낸 것이다.
도 4a는 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 방법의 첫 번째 실시예의 흐름도이다.
도 4b는 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 방법의 두 번째 실시예의 흐름도이다.
도 4c는 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 방법의 세 번째 실시예의 흐름도이다.
도 4d는 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 방법의 네 번째 실시예의 흐름도이다.
도 4e는 본 발명의 네 번째 모습에 따라 벡터들의 N-레벨 양자화에서 사용되는 접합 코드북을 결정하는 방법의 다섯 번째 실시예의 흐름도이다.
도 5는 본 발명의 다섯 번째 모습에 따는 접합 코드북을 개략적으로 나타낸 것이다.
본 발명은 벡터들의 N-레벨 양자화의 컨텍스트에 일반적으로 관련되었으며, 이때에 N-레벨 코드북으로부터의 재생 벡터가 상기 벡터에 대해 선택된다. 비록 양자화가 미리 정의된 집합으로부터 취해진 상이한 선택 가능한 레벨들의 개수 N에 대해 실행될 수 있지만, 모든 N-레벨 코드북들의 N 개 재생 벡터들은 M 개의 재생 벡터들을 포함하는 단일의 접합 코드북 내의 각 첫 번째 N 개 재생 벡터들에 의해 표현되며, M은 선택 가능한 레벨들의 최대 개수를 나타낸다.
거기에서, 본 발명의 첫 번째 모습은 벡터의 N-레벨 양자화에 대한 것이며, 두 번째 모습은 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 것에 대한 것이며, 세 번째 모습은 벡터들의 표현들을 전송하는 것에 관련된 것이며, 네 번째 모습은 복수의 상이한 N-레벨 양자화들에 대해 N-레벨 코드북들을 제공하는 접합 코드북을 결정하는 것에 관한 것이며, 그리고 다섯 번째 모습은 그런 접합 코드북 자체에 관한 것이다.
도 1은 본 발명의 세 번째 모습에 따라 벡터들의 표현들을 전송하는 시스템(4)의 실시예를 도식적으로 표현한 것이다. 이 시스템(4)은 본 발명의 첫 번째 모습에 따른 벡터들의 N-레벨 양자화를 위한 기기(1)와 N-레벨로 양자화되었던 재생 벡터들을 회수하기 위한 기기(2)를 포함한다. 이 시스템은 예를 들면 두 통신 유닛들 간의 통신을 가능하게 하는 통신 시스템 내에 포함될 수 있을 것이며, 그 때에 첫 번째 통신 유닛은 기기(1)를 포함할 수 있을 것이며, 두 번째 통신 유닛은 기기(2)를 포함할 수 있을 것이다. 그런 통신 시스템의 예는, 예를 들면, 음성 또는 오디오 데이터가 상기 음성 또는 오디오 데이터를 양자화하는 기능을 포함하는 음성 또는 오디오 코덱에 따라 전달되는 모바일 무선 시스템이다.
기기(1)는 선택 및 매핑 유닛(10), 접합 코드북 메모리(11) 그리고 전송 (Tx) 유닛(12)을 포함한다. 선택 및 매핑 유닛(10)은 k ≥ 1 인 k 차원 벡터들의 시퀀스를 수신할 수 있고, 상기 벡터들 각각에 대해 N-레벨 코드북에서 기원하는 k 차원의 재생 벡터를 수신할 수 있으며, 성기 선택된 재생 벡터를 상기 선택된 재생 벡터를 유일하게 식별하는 식별자로 매핑할 수 있다. 상기 벡터들은 예를 들면 음성 또는 오디오 신호의 몇몇 프레임들이나 서브-프레임들의 LPC/LSF 계수들이나 이득, 음성 파라미터들의 피치와 같은 음성 또는 오디오를 부호화하는 것에 관련되어 적재된 데이터를 포함한다. 거기에서, 양자화 레벨들의 수를 나타내는, 상기 파라미터 N은 외부 유닛, 예를 들면 기기(1)를 포함하는 통신 유닛의 중앙 제어기로부터, 상기 유닛(10)으로 귀환된다.
상기 재생 벡터들을 상기와 같이 선택하는 것은 어떤 왜곡 기준을 기반으로 실행되며, 그 왜곡 기준은 그 벡터와 각 재생 벡터 간의 차이를 계량화한다. 복수의 왜곡 기준은 예를 들면 본 특허 명세서의 시작 부분에서 인용된 종래 참조 기술인 Linde 등에서 제안되었으며, 몇 가지 예를 들면 평방-오류 왜곡 (squared-error distortion) 또는 홀더 놈 (Holder norm)이다. 일반적으로, 선택 유닛(10)은 상기 N-레벨 코드북 내에 포함된 다른 재생 벡터들에 대해 적용된 왜곡 기준을 최소화시 키는 상기 N-레벨 코드북으로부터 재생 벡터를 선택할 것이다.
상기 선택 및 매칭 유닛(10)은 접합 코드북 메모리(11)로부터 상기의 N-레벨 코드북을 얻으며, 접합 코드북 메모리(11)는 본 발명의 다섯 번째 모습에 따른 접합 코드북을 저장한다. 이 접합 코드북은 M 개의 재생 벡터들을 포함하며, 이때에 M은 미리 정의된 값이다. 상기 접합 코드북은, 예를 들어 상기 메모리(11)가 ROM이라면, 예를 들면 기기(1)를 생산하는 동안에 상기 메모리(11) 내로 저장될 수 있을 것이다. 마찬가지로, 상기 기기(1)는 그를 통해 상기 접합 코드북이 상기 외부 유닛에 의해 변경될 수 있고 갱신될 수 있는 인터페이스를 포함할 수 있을 것이다. 그러면 상기 메모리(11)는 예를 들면 RAM이 될 수 있을 것이다.
본 발명의 다섯 번째 모습에 따른 접합 코드북은 그 접합 코드북이 N ≤ M 인 N의 미리 정의된 복수의 상이한 값들에 대한 N-레벨 코드북을 포함한다는 특징이 있다. 거기에서, M 은 기기(1)가 레벨들의 수에 대해 양자화를 실행할 수 있는 그 레벨들의 최대 수를 정의한다. 그러므로, 반면에 그 기기는 여전히 복수의 값들 N에 대해 N-레벨 양자화를 실행할 수 있지만, 본 발명에 따라, 단 하나의 단일 접합 코드북만이 저장되어야 한다. N-레벨 양자화에 대해 필요한 N-레벨 코드북들은 상기 접합 코드북 내에 포함된 각 첫 번째 N 개의 재생 벡터들이다. 이하에서 더 상세하게 설명될 것과 같이, 이런 특성은 접합 코드북을 적절하게 결정하여 얻어진다.
도 5는 본 발명의 다섯 번째 모습에 따른 그런 접합 코드북(5)의 예를 도시한 것이며, M=16 이며 N 은 집합 {2,4,8,16}으로부터 선택 가능하다. 접합 코드 북(5)은 M=16 개의 k 차원 재생 벡터들을 포함하며, 그 재생 벡터들은 수평 바(bar)들로서 도시된다. 더 나아가, 도 5는 접합 코드북을 가진 재생 벡터들을 참조번호 52 내지 55의 범위 표시자에 의해 단일의 N-레벨 코드북들에 연관시키는 것을 도시한다. 예를 들면, N=2에 대한 2-레벨 코드북은 접합 코드북의 처음 2개 재생 벡터들만을 포함하며, 이는 범위 표시자(52)에 의해 지시되며, N=4에 대한 4-레벨 코드북은 접합 코드북의 첫 번째 4개의 재생 벡터만을 포함하며, 이는 범위 표시자(53)에 의해 지시되며, 계속 동일하다. 마지막으로, 범위 표시자(55)는 N=M=16 일 때에, N=16에 대한 16-레벨 코드북은 접합 코드북의 M=16 개의 재생 벡터들 모두를 포함한다.
각 N-레벨 코드북에 대해, 그 내부에 포함된 N 개의 재생 벡터들은, n=log2(N)인, n-비트 이진 워드로 매핑될 수 있다. 예를 들면, N=4 (즉, n=2)에 대해, 4-레벨 코드북 내의 첫 번째 재생 벡터는 2-비트 이진 워드 '00'에 의해 식별될 수 있으며, 두 번째 재생 벡터는 2-비트 이진 워드 '01'에 의해, 세 번째 재생 벡터는 2-비트 이진 워드 '10'에 의해, 네 번째 재생 벡터는 2-비트 이진 워드 '11'에 의해 식별될 수 있다. 그러므로 재생 벡터 당 2비트들이 이 경우에는 사용되어야만 한다. N=8 (즉, n=3)에 대해서는 3비트가 사용되어야 하며, 이하 마찬가지이다.
더 명시적으로 하기 위해, 다음에는 음성 또는 오디오 신호의 이득 파라미터의 양자화에서 사용하기 위한 M=16의 1차원 재생 벡터들을 구비한 예시적인 접합 코드북이 제시된다. 이 예는 도 5의 접합 코드북(5)에 따른다. 이득 파라미터의 범위는 0 dB부터 96 dB까지 양자화되며, 접합 코드북은 2-레벨, 4-레벨, 8-레벨 및 16-레벨 양자화에 적합하게 될 것이며, 그 결과 N=2, 4, 8 그리고 16에 대한 코드북들이 접합 코드북 내에 포함되어야 한다. 그 이득 파라미터가 0 dB부터 96 dB 까지의 구간에서 균일하게 분포되는 것을 가정하면, 적합한 코드북은 다음과 같이 주어지며 (모든 재생 벡터들은 dB 단위이다) :
[24, 72, 0,48, 12, 36, 60, 84, 6, 18, 30, 42, 54, 66, 78, 90],
그래서 그 내부에 포함된 N-레벨 코드북들은 다음과 같다 (모든 재생 벡터들은 dB 단위로 주어진다)
N=2: [24,72]
N=4: [24,72,0,48]
N=8: [24,72,0,48,12,36,60,84]
N=16: [24, 72, 0,48, 12, 36, 60, 84, 6, 18, 30, 42, 54, 66, 78, 90].
각 N에 대해, 상기 코드북들은 0 dB부터 96 dB 까지의 범위를 균일하게 커버하려고 시도하는 재생 벡터들을 포함하며, 그 경우 각각의 N이 증가하면, 재생 벡 터들 간의 유클리안 거리는 감소한다는 것을 명확하게 볼 수 있다. 예를 들어, N=2 에 대해, 이 거리는 48 dB이며, N=4 에 대해, 이 거리는 24 dB이며, N=8 에 대해, 이 거리는 12 dB이며, N=16 에 대해, 이 거리는 단지 6 dB이다. 그러므로, N에서 2배가 증가하면 그 거리는 반이 된다.
이제, 이득 파라미터가 양자화되는 것이 실현되는 예시적인 경우를 고려하며, 상기 실현은 40 dB와 동일하다. 오직 n=1 (N=2)만이 양자화를 위해 사용될 것이며, 유클리디안 거리가 왜곡 기준으로서 선택되면, 2-레벨 코드북 내의 첫 번째 재생 벡터, 즉, 24 dB 가 선택될 것이다. 그러므로 이 재생 벡터에 의해 초래된 왜곡은 40 - 24 dB = 16 dB 이다. 하나 더 많은 비트, 즉 n=2 (N=4) 를 사용함으로써, 4-레벨 코드북 내의 최선의 재생 벡터는 48 dB 이며, 그에 상응하여, 왜곡은 단지 8 dB이다. 재생 벡터 당 n=3 비트 (N=8)에 대해, 최선의 재생 벡터는 36 dB이며, 그래서 그 왜곡은 4 dB로 감소된다. 마지막으로, 재생 벡터 당 n=4 비트 (N=16)에 대해, 16-레벨 코드북 내의 최선의 재생 벡터는 42 dB이며, 그래서 그 왜곡은 2 dB로 더 감소된다.
그러므로, N을 선택함으로써 왜곡이 필요한 전송/저장 용량에 대해 교환될 수 있다는 것이 명확하다.
도 1로 돌아와서, 상기에 설명된, 각 벡터에 대해 N-레벨 양자화될 재생 벡터를 선택하고 선택된 재생 벡터들을 n=log2(N)의 워드 길이의 이진 값에 매핑하는 것이 기기의 선택 및 매핑 유닛(10)에 의해 실행된다. 그러면 이런 방법에서 얻어 진 식별자들은 Tx 유닛(12)으로 전달되며, Tx 유닛(12)은 그 식별자가 전송 채널을 통해 전송되는 것을 허용하는 것을 추가로 처리한다. 이렇게 처리하는 것은 예를 들면 채널 코딩, 인터리빙, 기저 대역 변조 및/또는 RF 처리를 포함할 수 있을 것이다. 상기 전송 채널은 상기 식별자가 저장되는 저장 매체로서 마찬가지로 이해될 수 있다. 그러면, 이런 경우에, Tx 유닛(12)은 그런 저장 매체 상에 그 식별자를 저장하는 것을 허용하도록 처리한다.
도 1의 시스템(4) 내의 기기(2)는 수신 (Rx) 유닛(23), 기기(1) 내에서 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 유닛(2) 그리고 접합 코드북 메모리(21)를 포함한다. 거기에서, 메모리(21) 내에 저장된 접합 코드북은 기기(1)의 메모리 내에 저장된 접합 코드북과 동일하다. Rx 유닛(23)은 기기(1)의 Tx 유닛(12)에 의해, 예를 들면, RF 처리, 동기화, 등화 (equalization), 복조, 역-인터리빙 (de-interleaving) 및/또는 채널 복호화를 실행함으로써, 전송된 식별자들을 수신한다. 상기 전송 채널이 저장 매체를 표시하면, Rx 유닛(23)은 그 식별자들을 그 저장 매체로부터 읽어내는 절차를 실행한다. 그러면 수신된 식별자들은 유닛(20)으로 전달되며, 그 유닛(20)은 수신된 식별자들, 파라미터 N 및 메모리(21) 내에 저장된 접합 코드북을 기반으로, 상기 수신된 식별자들에 대응하는 재생 벡터들을 회수한다. 이는 재생 벡터들을 식별자들로 매핑하는 것이 참조번호 1의 기기와 참조번호 2의 기기 모두에 대해 동일하다는 것을 필요로 한다. 더 나아가, 파라미터 N은 유닛(20)으로의 입력이어야 하며, 유닛(20)이 접합 코드북으로부터 정확한 N-레벨 코드북을 추출하는 것을 가능하게 한다. N 은, 예를 들면 기기(2)를 격 납하는 통신 유닛의 중앙 제어기와 같은, 외부 유닛에 의해 유닛(20)에 이용 가능하도록 될 수 있을 것이다. 그러면 회수된 재생 벡터는 기기(2)에 의해 추가적인 처리 단계들로 출력될 수 있다.
그러므로 본 발명의 세 번째 모습에 따른 시스템(4)은 벡터들의 표현을 전송 채널을 통해 전송하는 것을 허용한다. 양자화를 위해 이용 가능한 N-레벨 코드북들은 그로부터 선택하는 재생 벡터들의 제한된 수만을 포함하고 있기 때문에, 기기(2)에서 회수된 재생 벡터가 기기(1)에서 양자화된 벡터의 왜곡 없는 표현이 일반적으로 아니라는 것이 쉽게 이해될 것이다. N 이 증가하면, 그 왜곡은 감소될 수 있지만, 그 재생 벡터들을 식별하기 위해 사용되어야 하는 비트들의 수는 따라서 증가한다. 그러므로, 파라미터 N에 의해, 왜곡은 전송 대역 요구들 (또는 상기 전송 채널이 데이터 반송파에 의해 표시된다면, 저장 요구들)에 반해서 교환될 수 있을 것이다.
도 2a는 본 발명의 첫 번째 모습에 따른 벡터들의 N-레벨 양자화의 방법에 대한 실시예의 흐름도이다. 이 방법은 예를 들면 도 1의 시스템(4)의 기기(1)의 선택 및 매칭 유닛(10)에 의해 실행될 수 있을 것이다. 이런 목적을 위해, 이 방법의 단계들은 상기 기기(1)의 디지털 프로세서에 의해 실행되는 소프트웨어 애플리케이션 생성물의 소프트웨어 애플리케이션으로 구현될 수 있다.
첫 번째인 100 단계에서, 예를 들면 외부 유닛으로부터 N을 위한 값을 수신함으로써, 파라미터 N이 초기화된다. 101 단계에서, 그러면 양자화를 위한 벡터들이 이용 가능한가가 검사된다. 그런 경우가 아니라면, 그 방법은 종료된다. 그렇지 않다면, 102 단계에서 하나의 벡터가 수신되고, 연속되는 단계(103)에서 재생 벡터가 대응하는 N-레벨 코드북으로부터 선택되며, 그 N-레벨 코드북은 접합 코드북의 첫 번째 N 개 재생 벡터들에 의해 표현되는 것이며, 그렇게 해서 이 재생 벡터는 왜곡 기준을 최소화시킨다. 단계(104)에서, 그러면 상기 선택된 재생 벡터의 식별자가, 예를 들면 도 1의 기기(1)의 Tx 유닛(12)으로 출력된다.
그러면 단계(105)에서, 예를 들면 외부 신호 때문에, 파라미터 N이 변경될 것인가의 여부가 검사된다. 그런 경우가 아니라면, 그 방법은 그 방법은 추가의 벡터를 양자화하기 위해 단계(101)로 점프해서 돌아간다. 그렇지 않다면, N 에 대한 새로운 선택이 단계(106)에서 수신되며, 그러면 그 방법은 단계(101)로 점프해서 돌아갈 뿐이다.
도 2b는 본 발명의 두 번째 모습에 따라 N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 방법의 실시예의 흐름도이다. 이 방법은 예를 들면 도 1의 시스템(4) 내의 기기(2)의 유닛(20)에 의해 실행될 수 있을 것이다. 이 목적을 위해, 이 방법의 단계들은 상기 기기(2)의 디지털 프로세서에 의해 실행되는 소프트웨어 애플리케이션 생성물의 소프트웨어 애플리케이션 내에서 구현될 수 있을 것이다.
단계(200)에서, 예를 들면 외부 인스턴스로부터 N 에 대한 값을 수신함으로써, 파라미터 N 이 초기화된다. N 은 접합 코드북으로부터 적절한 N-레벨 코드북을 선택하는 것에 필요하다. 그러면 단계(201) 내에서 식별자들이 이용 가능한가의 여부가 검사된다. 그런 경우가 아니라면, 그 방법은 종결한다. 그렇지 않다면, 하나 의 식별자가 단계(202) 내에서 수신된다. 단계(203)에서, 그러면 상기 식별자에 의해 식별되는 재생 벡터가 상기 접합 코드북 내에서 첫 번째 N 개의 재생 벡터들에 의해 표현된 N-레벨 코드북으로부터 회수된다. 그러면 이렇게 회수된 재생 벡터는 단계(204)에서 출력된다. 205 단계에서, 파라미터 N 이 변경되는가의 여부가 검사된다. 그런 경우가 아니면, 그 방법은 추가의 식별자들을 수신하기 위해 201 단계로 점프해서 돌아간다. 그렇지 않다면, 206 단계에서 N의 새로운 선택이 수신되며, 그러면 이 방법은 201 단계로 돌아갈 뿐이다.
도 3은 본 발명의 네 번째 모습에 따른 벡터들의 N-레벨 양자화에서 사용되기 위한 접합 코드북을 결정하는 기기(3)의 실시예에 대한 도식적인 표현이다. 이 기기(3)는 예를 들면 도 4의 참조번호 1의 기기 또는 참조번호 2의 기기와 같은 기기들을 위한 접합 코드북을 구성하기 위해 배치될 수 있을 것이다. 그러면 결정된 접합 코드북은 참조번호 1의 기기 또는 참조번호 2의 기기의 각 메모리들(11, 21)로 이런 기기들의 제조 동안에 또는, 그 후에, 예를 들면 상기 메모리들(11, 21)로의 인터페이스를 경유해서 저장될 수 있을 것이다.
기기(3)는 제어 유닛(30), LBG 유닛(31) 및 배열 유닛(32)을 포함한다.
그것에서, LBG 유닛(31)은 복수의 트레이닝 벡터들을 기반으로 하여 L 개의 재생 벡터들의 집합을 생성하기 위해 LBG 알고리즘을 실행할 수 있으며, 그 경우 L 은 선택 가능한 정수이다. 상기 LBG 알고리즘은 예를 들면 본 특허 명세서의 시작 부분에서 인용된 종래 참조 기술인 Linde 등에서 제안된 것과 같이 양자화될 벡터들의 알려지지 않은 분포에 대한 알고리즘을 기반으로 할 수 있을 것이다. 상기의 복수의 트레이닝 벡터들에 추가하여, 상기 LBG 알고리즘은 L 개의 재생 벡터들의 상기 집합을 생성하는 상기의 과정 동안에 고정된 것으로 간주될 하나 또는 그 이상의 재생 벡터들과 함께 제공될 수 있을 것이며, 이는 이하에서 도 4b 를 참조하여 본 발명의 네 번째 모습에 따른 방법의 두 번째 실시예에서 더 상세하게 설명될 것이다. 본 발명의 실시예에서 LBG 알고리즘을 사용하는 것이 예시적인 속성만을 위한 것이라는 것은 쉽게 이해될 것이다. 마찬가지로, 다른 코드북 트레이닝 알고리즘이 그 대신에 적용될 수 있을 것이다.
배열 유닛(32)은 배열 알고리즘에 따라 접합 코드북 내의 LBG 유닛(32)에 의해 생성된 재생 벡터들을 배열할 수 있으며, 그 결과, 각 N 에 대해, 접합 코드북 내의 처음 N 개 재생 벡터들은 이런 벡터들의 N-레벨 양자화 과정에서 N-레벨 코드북이 사용될 때에 벡터들의 평균 왜곡이 작아지도록 하는 N-레벨 코드북을 형성한다.
제어 유닛(30)은 기기(3)의 전반적인 동작을 제어하며 특히 LBG 유닛(31)과 배열 유닛(32) 간의 동작을 제어한다.
접합 코드북을 결정하기 위해, 기기(3)는 레벨의 최대 수 M 과 함께 제공되며 (그 접합 코드북은 M에 대해 설계될 것이다), 그리고 그 접합 코드북을 기반으로 나중에 양자화 될 벡터들을 표현하는 복수의 트레이닝 벡터들과 함께 제공된다. 선택적으로, 또한 레벨들의 수 N (그 N에 대해 접합 코드북이 N-레벨 코드북들을 포함할 것이다) 의 미리 정해진 집합이 기기(3)로 제공될 수 있다. 예를 들면, M=256 이면, 그 접합 코드북이 N=128 그리고 N=256 에 대한 코드북들만을 포함하는 것으로 충분할 것이며, 그러면 레벨들의 개수 N 의 미리 정해진 집합은 {128, 256} 일 것이다. 그러면, N=2,4,8,16,32,64,128,256 의 모든 N에 대해 최적화된 코드북을 결정하기 위해 시도하는 것 대신에, 이런 정보는 레벨들의 이런 두개의 수를 위해서만 최적화된 코드북을 결정하기 위해 기기(3)에 의해 이용될 것이다. 거기에서, 2의 거듭제곱인 N을 선택하는 것은 예시적인 속성만을 위한 것이라는 것에 유의해야 한다. 상기 기기(2)는 코드북의 유연성을 증가시키기 위해 2의 거듭 제곱이 아닌 레벨들의 수 N에 대한 접합 코드북들을 마찬가지로 잘 결정할 수 있을 것이다.
도 4a는 본 발명의 네 번째 모습에 따른 접합 코드북을 결정하기 위한 방법의 첫 번째 실시예의 흐름도이다. 이 첫 번째 실시예는 예를 들면 도 3의 기기(3)에 의해 구현될 수 있을 것이다.
첫 번째 단계(400)에서, 구성될 접합 코드북은 M 개의 재생 벡터들을 저장할 수 있는 용량의 빈 코드북으로서 초기화된다. 401 단계에서, 그러면 루프 카운터 i는 1로 초기화된다. 402 단계에서, 그러면 소위 '초기' M-레벨 코드북이 LBG 알고리즘에 따라서 복수의 트레이닝 벡터들을 기반으로 생성된다. 이는 예를 들면 기기(3)의 LBG 유닛(31) (도 3 참조) 에 의해 성취될 수 있을 것이다. 그러면 도 4a의 남아있는 단계들은 상기 초기 코드북 내에 포함된 재생 벡터들을 400 단계에서 초기화된 상기 접합 코드북 내로 배열하는 것으로 지시된다. 이 배열은 예를 들면 기기(3)의 배열 유닛(32) (도 3 참조)에 의해 실행될 수 있을 것이다.
이런 목적을 위해, 403 단계에서, 2-레벨 코드북이 LBG 알고리즘에 의해 402 단계에서 사용된 것과 동일한 트레이닝 시퀀스를 기반으로 하여 결정된다. 이는 또한 기기(3)의 LBG 유닛(31) (도 3 참조)에 의해 실행될 수 있을 것이다. 404 단계에서, 그러면 상기 초기 코드북 내에서 상기 2-레벨 내의 두 재생 벡터들과 가장 유사한 두 재생 벡터들이 식별되어, 그리고, 405 단계에서, 400 단계에서 초기화된 그 접합 코드북 내의 첫 번째 두 위치로 복사된다. 단계 406에서, 그러면 카운터 Pos 는 2로 설정된다.
다음의 407 내지 412의 단계들은 상기 초기 코드북으로부터 모든 재생 벡터들이 상기 접합 코드북 내로 배열될 때까지 반복해서 실행된다.
407 단계에서, LBG 알고리즘과 402 및 403 단계에서 사용된 것과 동일한 트레이닝 벡터들을 기반으로 하여 I-레벨 코드북이 결정되며, 이 단계는 예를 들면 기기(3)의 LBG 유닛(31) (도 3 참조)에 의해 구현된다. 거기에서, I=2i 가 유지되며, 루프 카운터인 i는 401 단계에서 초기화된다. 이 I-레벨 코드북은 N=I에 대한 최적의 코드북을 표시한다. 그러나, 접합 코드북 내에서, 첫 번째 I/2 개의 재생 벡터들은 이전에 실행된 흐름도에서 이미 배열되었으며, 마지막 I/2 개의 재생 벡터들에 대한 배열만이 가능할 뿐이다. 그러므로, 408 단계에서, 상기 I-레벨 코드북 내의 I/2 개의 벡터들이 (왜곡 기준을 최소화 시킨다는 점에서) 접합 코드북 내에 이미 포함된 I/2 개의 재생 벡터들에게 가장 유사하다고 결정되어 식별된다 (그리고 무시된다). 그러면, 409 단계에서, 상기 I-레벨 코드북으로부터의 남아있는 (408 단계에서 식별되지 않은) 재생 벡터들에 가장 유사한 상기 초기 코드북 내의 I/2 개의 재생 벡터들이 (왜곡 기준을 최소화 시킨다는 관점에서) 선택되며, 그리고, 410 단계에서, 상기 접합 코드북 내의 Pos+1 에서 Pos+I/2 까지의 위치들로 복사된다. 411 단계에서, 그러면 위치 카운터 Pos는 I/2 만큼 증가하고, 그러면 루프 카운터 역시 412 단계에서 1 씩 증가한다. 413 단계에서, 루프 카운터가 m=log2(M)인 m 보다 큰가의 여부가 검사된다. 그런 경우에는, 초기 코드북으로부터의 모든 재생 벡터들이 접합 코드북 내로 배열되었으며, 그러면 그 방법은 종료한다. 그렇지 않으면, 그 방법은 407 단계로 점프하여 돌아가서 접합 코드북 내에 포함된 다음의 코드북을 위해 배열하는 것을 실행한다.
도 4a는 본 발명의 네 번째 모습에 따른 접합 코드북을 결정하기 위한 방법의 두 번째 실시예의 흐름도이다. 이 두 번째 실시예는 예를 들면 도 3의 기기(3)에 의해 구현될 수 있을 것이다.
처음의 단계(420)에서, M 재생 벡터들에 대한 용량을 구비한 (타겟) 접합 코드북이 초기화된다. 421 단계에서, 루프 카운터 i 가 1로 초기화된다. 422 단계에서, 2-레벨 코드북이 LBG 알고리즘에 의해 복수의 트레이닝 벡터들을 기반으로 하여 생성된다. 이는 예를 들면 도 3의 기기(3)의 LBG 유닛(31)에 의해 실행될 수 있을 것이다. 이 2-레벨 코드북의 두 재생 벡터들이 423 단계에서 접합 코드북 내의 처음의 두 자리들로 복사된다. 424 단계에서, 위치 카운터 Pos는 2로 설정된다. 접합 코드북 내의 첫 번째 코드북 (N=2)의 재생 벡터들을 결정하고 배열하는, 이런 전제되는 동작 이후에, 다음으로 높은 레벨 코드북들을 생성하고 결정하기 위해 425 내지 428의 단계들이 반복적으로 실행된다.
이런 목적을 위해, 425 단계에서, 복수의 트레이닝 벡터들을 기반으로 하여 LBG 알고리즘에 의해 I-레벨 코드북이 결정되며, 이 경우에 I=2i가 유지되며, 421 단계에서 루프 카운터인 i 가 초기화된다. 실제로, 이 I-레벨 코드북은 N=I에 대한 최적 코드북을 표시할 것이다. 그러나, 그 접합 코드북에서, 이전에 실행된 흐름도의 단계들에서 처음의 I/2 개의 재생 벡터들이 이미 배치되었기 때문에, 마지막 I/2 재생 벡터들에 대해 배열하는 것만이 가능하다. 본 발명의 네 번째 모습에 따른 방법의 두 번째 실시예에 따르면, 이 문제는 접합 코드북으로 이미 복사되었던 처음의 I/2 개 재생 벡터들을 포함하는 코드북과 함께 LBG 알고리즘을 초기화함으로써 그리고 남아있는 이런 처음 I/2 개 재생 벡터들이 LBG 알고리즘의 동작 동안에 고정된 채로 유지될 것을 요구함으로써 돌보아지게 된다. 상기 I-레벨 코드북 내의 마지막 재생 벡터들이 고정되었다는 사실을 여전히 고려하면서도 (그리고 그 사실을 부분적으로는 보상하면서), 이는 LBG 알고리즘에 의한 I-레벨 코드북이 접합 코드북 내에 이미 포함된 (그리고 하위-레벨 코드북들에 대해 최적화되었던) 이와 같은 최초 I/2 개의 재생 벡터들로 구성되고, 그리고 현재의 I-레벨 코드북에 대해 최적화된 I/2 개의 재생 벡터들로 구성되는 것을 보장한다. 그러면 425 단계에서 결정된 I-레벨 코드북의 마지막 I/2 개 재생 벡터들은 접합 코드북의 Pos+1 에서 Pos + I/2 까지의 위치들로 426 단계에서 복사될 수 있다.
이런 425 및 426 단계의 적절한 반복은, 427 단계에서 위치 카운터 Pos를 갱 신함으로써, 428 단계에서 루프 카운터 i를 증가시킴으로써 그리고 429 단계에서 그 루프 카운터를 m=log2(M)인 m과 비교함으로써 보장된다. i가 m보다 크면, 그 방법은 종료하고, 그렇지 않다면, 425 단계로 점프하여 돌아간다.
도 4c는 본 발명의 네 번째 모습에 따른 접합 코드북을 결정하기 위한 방법의 세 번째 실시예의 흐름도이다. 이 세 번째 실시예는 예를 들면 도 3의 기기(3)에 의해 구현될 수 있을 것이다.
처음의 단계(440)에서, M 재생 벡터들에 대한 용량을 구비한 (타겟) 접합 코드북이 초기화된다. 두 번째인 441 단계에서, 그러면 소위 '초기' M-레벨 코드북이 LBG 알고리즘에 따라서 복수의 트레이닝 벡터들을 기반으로 생성된다. 이는 예를 들면 기기(3)의 LBG 유닛(31) (도 3 참조) 에 의해 성취될 수 있을 것이다. 그러면 도 4c의 흐름도의 남아있는 단계들은 상기 초기 코드북 내에 포함된 재생 벡터들을 440 단계에서 초기화된 상기 접합 코드북 내로 배열하는 것으로 지시된다. 이 배열은 예를 들면 기기(3)의 배열 유닛(32) (도 3 참조)에 의해 실행될 수 있을 것이다.
441 단계 이후에, 상기 접합 코드북 내의 첫 번째 위치(들)로 복사되는 상기 초기 코드북으로부터의 첫 번째 재생 벡터(들)를 선택하기 위한 두 대안들이 존재한다.
첫 번째 대안에 따르면, 442a 단계에서, (왜곡 기준을 최대화한다는 의미에서) 서로에게 대해 가장 차이가 나는 두 재생 벡터들이 초기 코드북으로부터 선택 된다. 그러면, 443a 단계에서, 그 두 개의 선택된 재생 벡터들이 초기 코드북으로부터 접합 코드북 내의 첫 번째 두 위치들로 복사된다. 더 나아가, 이런 재생 벡터들은 초기 코드북으로부터 삭제된다. 444a 단계에서, 그러면 위치 카운터 Pos 가 3으로 초기화된다.
두 번째 대안에 따르면, 442b 단계에서, (왜곡 기준을 최대화한다는 의미에서) 441 단계에서 LBG 알고리즘에 의해 초기 코드북을 생성하는데 사용된 모든 트레이닝 벡터들에 가장 유사한 재생 벡터가 초기 코드북으로부터 선택된다. 그러면, 443b 단계에서, 그 선택된 재생 벡터가 초기 코드북으로부터 접합 코드북 내의 첫 번째 위치로 복사된다. 더 나아가, 이런 재생 벡터는 초기 코드북으로부터 삭제된다. 444b 단계에서, 그러면 위치 카운터 Pos 가 2로 초기화된다.
그 초기 코드북이 비어 있지 않는 동안 (이는 단계 445에서 제어된다), 446 내지 448의 다음 단계들이 (이전에 어떤 대안의 방법이 실행되었는지에 관계없이) 반복되어, 매번마다 상기 초기 코드북으로부터의 하나의 재생 벡터를 상기 접합 코드북 내의 다음에 비어있는 위치 Pos 내로 배열한다.
이 목적을 위해, 446 단계에서, 상기 초기 코드북 내에서 상기 접합 코드북 내에 이미 포함된 모든 재생 벡터들과 가장 차이가 나는 재생 벡터가 선택된다. 거기에서, 상기 접합 코드북 내에 이미 포함된 모든 재생 벡터들과 가장 차이가 나는 재생 벡터는 예를 들면, 상기 초기 코드북 내의 후보 재생 벡터 각각에 대해, 상기 초기 코드북 내의 모든 다른 재생 벡터들에 대한 각 왜곡을 계산함으로써 그리고 후보 재생 벡터 당 단일의 값으로 도달할 때까지 이런 왜곡들을 더함으로써 결정될 수 있을 것이다. 그러면 가장 큰 합 왜곡을 가지는 후보 재생 벡터는 상기 접합 코드북 내에 이미 포함된 모든 재생 벡터들에 대해 가장 차이가 나는 것으로 간주될 수 있다. 이렇게 선택된 재생 벡터는, 447 단계에서, 접합 코드북 내의 (비어있는 다음의) 위치 Pos 로 복사되며, 초기 코드북으로부터 삭제된다. 448 단계에서, 그러면 그 위치 카운터는 하나씩 증가하고, 그 방법은 445 단계로 점프하여 돌아간다.
이런 방법으로, 접합 코드북은 상기 접합 코드북 내에 이미 포함된 가장 차이가 나는 상기 초기 코드북으로부터의 재생 벡터들로 연속적으로 채워지며, 그래서 심지어는 낮은 레벨의 코드북들에 대해서도 양자화될 벡터들의 벡터 공간에 대한 양호한 커버리지를 보장한다.
아주 좀처럼 사용되지 않는 재생 벡터들이 접합 코드북 내에서 첫 번째 엔트리가 되는 것을 피하기 위해, 도 4c의 흐름도에 의해 반영된 추가적인 제한들이 배열 알고리즘에 부과될 수 있을 것이다. 예를 들면, 446 단계에서, 상기의, 모든 벡터 성분을 어떤 제한 밑으로 유지하는, 접합 코드북 내에 이미 포함된 모든 재생 벡터와 가장 차이가 나는 재생 벡터가 선택되어 접합 코드북으로 447 단계에서 복사될 수 있을 것이다. 상기 제한은 예를 들면, 재생 벡터가 접합 코드북에 대해 상기 초기 코드북 내에서 선택되는, 그 접합 코드북 내의 실제 위치 Pos에 의존할 수 있을 것이다. 예를 들면, 접합 코드북 내의 2-레벨 코드북에 대응하는 위치들 (접합 코드북 내의 위치 1 및 2)에 대해 첫 번째 제한이 적용될 수 있을 것이며, 4-레벨 코드북의 두 번째 반에 대응하는 위치(접합 코드북 내의 위치 3 및 4)에 대해서 두 번째 제한이 적용될 수 있을 것이며, 계속 그렇게 적용될 것이다. 거기에서, 상기 제한들의 값은 유리하게 증가할 수 있을 것이다 (즉, 첫 번째 제한은 두 번째 제한보다 더 작고, 두 번째 제한은 세 번째 제한보다 더 작고,.. 등)
도 4d는 본 발명의 네 번째 모습에 따른 접합 코드북을 결정하기 위한 방법의 네 번째 실시예의 흐름도이다. 이 네 번째 실시예는 예를 들면 도 3의 기기(3)에 의해 구현될 수 있을 것이다.
첫 번째 단계(460)에서, M 개의 재생 벡터들에 대한 용량을 구비한 (타겟) 접합 코드북이 초기화된다. 두 번째인 461 단계에서, 그러면 소위 '초기' M-레벨 코드북이 LBG 알고리즘에 따라서 복수의 트레이닝 벡터들을 기반으로 생성된다. 이는 예를 들면 기기(3)의 LBG 유닛(31) (도 3 참조) 에 의해 성취될 수 있을 것이다. 462 단계에서, 위치 카운터 Pos가 M으로 초기화된다. 그러면 도 4d의 남아있는 단계들은 상기 초기 코드북 내에 포함된 재생 벡터들을 460 단계에서 초기화된 상기 접합 코드북 내로 배열하는 것으로 지시된다. 이 배열은 예를 들면 기기(3)의 배열 유닛(32) (도 3 참조)에 의해 실행될 수 있을 것이다.
그 초기 코드북이 비어 있지 않는 동안 (이는 단계 463에서 제어된다), 464 내지 466의 다음 단계들이 반복되어, 매 번마다 상기 초기 코드북으로부터의 하나의 재생 벡터를 상기 접합 코드북 내의 다음에 비어있는 위치 Pos 내로 배열하는데, 그러나 이번에는 접합 코드북의 끝 부분에서 시작하여 시작 부분으로 진행한다.
이 목적을 위해, 464 단계에서, 상기 초기 코드북에서 서로 가장 유사한 두 재생 벡터들이 (왜곡 기준을 최소화하려는 관점에서) 선택된다. 465 단계에서, 이런 첫 번째의 두 선택된 재생 벡터들이 접합 코드북 내의 (비어있는 다음의) 위치 Pos에 복사되며, 그리고 초기 코드북으로부터 삭제된다. 448 단계에서, 그러면 그 위치 카운터는 하나씩 감소하고, 그 방법은 463 단계로 점프하여 돌아간다.
이런 방법으로, 접합 코드북은 상기 초기 코드북 내의 다른 재생 벡터들에 유사한 상기 초기 코드북으로부터의 재생 벡터들로 끝에서부터 채워진다. 이런 낮은 레벨 코드북에 대한 재생 벡터들이 접합 코드북의 시작 부분에 위치하기 때문에, 이런 것은 낮은 레벨의 코드북들에 대해서도 양자화될 벡터들의 벡터 공간에 대한 양호한 커버리지를 보장한다.
도 4e는 본 발명의 네 번째 모습에 따른 접합 코드북을 결정하기 위한 방법의 다섯 번째 실시예의 흐름도이다. 이 다섯 번째 실시예는 예를 들면 도 3의 기기(3)에 의해 구현될 수 있을 것이다.
첫 번째 단계(480)에서, M 개의 재생 벡터들에 대한 용량을 구비한 (타겟) 접합 코드북이 초기화된다. 두 번째인 481 단계에서, 그러면 소위 '초기' M-레벨 코드북이 LBG 알고리즘에 따라서 복수의 트레이닝 벡터들을 기반으로 생성된다. 이는 예를 들면 기기(3)의 LBG 유닛(31) (도 3 참조) 에 의해 성취될 수 있을 것이다. 그러면 도 4e의 남아있는 단계들은 상기 초기 코드북 내에 포함된 재생 벡터들을 480 단계에서 초기화된 상기 접합 코드북 내로 배열하는 것으로 지시된다. 이 배열은 예를 들면 기기(3)의 배열 유닛(32) (도 3 참조)에 의해 실행될 수 있을 것이다.
482 단계에서, 카운터 i 는 0으로 초기화된다. 더 나아가, 변수 N0는 0으로 정의된다. 마지막으로, 위치 카운터 Pos 는 0으로 초기화된다.
483 단계부터 487 단계까지는 K 번 반복되는 루프를 설명한다. 거기에서, K는, 접합 코드북에 의해 제공될, 코드북 크기들의 수인 Ni 를 표시한다 (이 경우, i= 1, ..., K, 그리고 j = 2,..., K 에 대해 Nj-1 < Nj ≤ M ). 각 루프 i에서, 코드북 크기 Ni 는 아래에서 설명될 것과 같이 완료된다.
루프의 484 단계에서, Ni - Ni-1 개의 재생 벡터들이 초기 코드북으로부터 선택되어, 접합 코드북 내의 비어있는 다음 위치들로 복사되고 초기 코드북으로부터 삭제된다. 이런 재생 벡터들을 선택하는 것은 이전의 루프들에서 접합 코드북에 이미 복사되었던 Ni 개 재생 벡터들과 상기 선택된 재생 벡터들을 포함하는 Ni-레벨 코드북의 LBG 알고리즘 (481 단계 참조)에서 사용된 트레이닝 벡터들에 대한 왜곡이 최소가 되도록 실행된다. i=1 (그리고, 대응하여, Ni=N0=0) 에 대해, 어떤 재생 벡터들도 접합 코드북으로 아직 복사되지 않았으며, 그러므로 재생 벡터들을 선택하는 것은, 선택된 재생 벡터들만을 포함하는 Ni-레벨 코드북의 LBG 알고리즘 내에서 사용된 트레이닝 벡터들에 대한 왜곡이 최소가 되도록 실행된다.
거기에서, 코드북의 왜곡은 예를 들면 그 코드북의 왜곡은 예를 들면 그 Ni-레벨 코드북 내에 포함된 각 재생 벡터의, 고려되었던 재생 벡터의 보로노이 (Voronoi) 셀(cell)로부터의 모든 트레이닝 벡터에 대한 왜곡의 합을 계산함으로써 그리고 상기 코드북 내의 모든 재생 벡터들의 왜곡들의 합을 마지막 값에 도착할 때까지 계산함으로써 결정될 수 있을 것이다. 거기에서, 그 왜곡은 몇 가지 예를 들면 벡터들 간의 유클라디언 거리 또는 l1 놈(norm)으로부터 유도된 거리일 수 있다.
루트의 485 단계에서, 그 선택된 재생 벡터들은 상기 접합 코드북 내의 Pos + 1부터 Pos + Ni - Ni-1 까지의 위치 (이는 접합 코드북 내의 비어있는 다음 위치이다) 로 복사되며, 그 선택된 재생 벡터들은 초기 코드북으로부터 삭제되어, 그들은 다음의 루프에서 재생 벡터들을 선택하는 데 있어서 고려될 필요가 없다. 도시된 것과 같이, 각 Ni-레벨 코드북의 마지막 Ni - Ni-1 개 위치들만이 각 루프 i에서 결정되며, 이는 첫 번째의 Ni-1 위치가 이전의 루프들에서 이미 결정되었기 때문이다. 그러므로 Ni-레벨 코드북은 루프 i에서 완결되는 (그리고 완전히 결정되지는 않은) 것으로 말해진다.
486 단계에서, 따라서 위치 카운터 Pos 는 Ni - Ni-1 씩 증가한다. 487 단계에서, 그러면 접합 코드북 내에 포함된 모든 K 개의 코드북들이 이미 처리되었는가의 여부가 검사된다 (i=K). 그런 경우에는, 그 방법을 종결한다. 그렇지 않다면 (i< K), 그 방법은 다음의 코드북을 완결시키기 위해 483 단계로 점프하여 돌아간다.
일 예로서, i=1인 첫 번째 루프에서, M=4, N1=2 그리고 N2=4를 유지하고, 초기 코드북으로부터 N1=2 개의 재생 벡터들이 선택되어, 그래서 이 2개의 재생 벡터를 포함하는 2-엘리먼트 코드북의, 트레이닝 벡터들에 대한 왜곡이 최소가 되도록 한다. 이런 2개의 재생 벡터들은 접합 코드북 내의 1 및 2의 위치들로 복사되고 (그래서 접합 코드북의 시작 부분에 포함된 2-엘리먼트 코드북이 완결된다) 초기 코드북으로부터 제거된다. i=2인 다음의 루프에서, N1-N2 = 2 개 재생 벡터들이 선택되어, 그래서 접합 코드북 내에 이미 포함된 2개의 재생 벡터들과 상기 선택된 2개의 재생 벡터들을 구비한 코드북이 트레이닝 벡터들에 대하여 최소의 왜곡을 가지도록 한다. 그러면 2 개의 재생 벡터들이 접합 코드북 내의 3 및 4의 위치들에 복사되고 (그래서 접합 코드북의 시작 부분에 포함된 4-엘리먼트 코드북이 완결된다) 그리고 초기 코드북으로부터 삭제된다. 거기에서, M 그리고 Ni을 선택하는 것은 2의 거듭제곱으로 한정될 필요가 없다는 것은 쉽게 이해된다.
본 발명은 상기의 예시적인 실시예에 의해 설명되었다. 본 발명이 속한 기술 분야의 통상의 지식을 가진 자에게는 대안의 방법과 변형들이 자명한 것이며 첨부된 청구범위들의 범위와 사상으로부터 벗어나지 않고 구현될 수 있다는 것에 유의하여야 한다. 특히, 본 발명은 음성이나 오디오 처리의 컨텍스트 내의 애플리케이션으로 한정되지 않는다. 본 발명은 어떤 다른 유형의 데이터를 양자화하기 위해서 마찬가지로 잘 배치될 수 있다.

Claims (36)

  1. 벡터들의 N-레벨 양자화를 위한 방법으로서,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며,
    상기 방법은,
    N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 단계로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 선택 단계;를 포함하는, 벡터들의 N-레벨 양자화 방법.
  2. 제1항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 벡터들의 N-레벨 양자화 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 N-레벨의 코드북의 각 재생 벡터는 n 비트 이진 워드에 의해 식별되는, 벡터들의 N-레벨 양자화 방법.
  4. 제1항에 있어서,
    상기 벡터들은 데이터 시퀀스의 선형 예측 부호화(Linear Predictive Coding)에 관련된 파라미터들을 포함하는, 벡터들의 N-레벨 양자화 방법.
  5. 제1항에 있어서,
    상기 선택 단계는 휴대용 통신 기기에 의해 실행되는, 벡터들의 N-레벨 양자화 방법.
  6. 벡터들의 N-레벨 양자화를 위한 장치로서,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며,
    상기 장치는
    N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 수단으로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 수단;을 포함하는, 벡터들의 N-레벨 양자화 장치.
  7. 제6항에 있어서,
    상기 장치는 휴대용 통신 기기인, 벡터들의 N-레벨 양자화 장치.
  8. 벡터들의 N-레벨 양자화를 위해 구체화된 컴퓨터 프로그램을 구비한, 컴퓨터로 읽을 수 있는 저장 매체를 포함하며,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능할 때에,
    상기 컴퓨터 프로그램은,
    N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 각 벡터에 대해 재생 벡터를 선택하는 프로그램 코드로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 프로그램 코드;를 포함하는, 컴퓨터로 읽을 수 있는 저장 매체.
  9. N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 위한 방법으로서,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능할 때에,
    상기 방법은,
    상기 양자화에서 벡터에 대해 선택되었던 재생 백터의 식별자를 수신하는 단 계; 및
    상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하며, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는. 회수 단계;를 포함하는, 재생 벡터 회수 방법.
  10. N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하기 (retrieving) 위한 장치로서,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능할 때에,
    상기 장치는,
    상기 양자화에서 벡터에 대해 선택되었던 재생 백터의 식별자를 수신하는 수단; 및
    상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하는 수단으로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 회수 수단;을 포함하는, 재생 벡터 회수 장치.
  11. N-레벨 양자화되었던 벡터들에 대한 재생 벡터들을 회수하는 것이 구체화된 컴퓨터 프로그램을 구비하는, 컴퓨터로 읽을 수 있는 저장 매체로서,
    N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능할 때에,
    상기 컴퓨터 프로그램은,
    상기 양자화에서 벡터에 대해 선택되었던 재생 벡터의 식별자를 수신하는 프로그램 코드; 및
    상기 식별자를 기반으로, N개 재생 (reproduction) 벡터들의 N-레벨 코드북(codebook)으로부터 상기 재생 벡터를 회수하는 프로그램 코드로서, 상기 N개 재생 벡터들은, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 (reproduction) 벡터들의 동일한 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 프로그램 코드;를 포함하는, 컴퓨터로 읽을 수 있는 저장 매체.
  12. 벡터들의 표현들을 전송하는 시스템으로서,
    N개 재생 벡터들의 N-레벨 코드북으로부터 각 벡터에 대한 재생 벡터를 선택하는 수단으로, N은 레벨들의 미리 정의된 최대값인 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 선택하기 이전에 선택 가능하며, 상기 N개 재생 벡터들은 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, M개 재생 벡터들의 동일한 제1 접합 코드북 (joint codebook)의 첫 번째 N개 재생 벡터들에 의해 표현되는, 선택 수단;
    상기 선택된 재생 벡터의 식별자를 전송 채널을 경유하여 전송하는 수단;
    상기 식별자를 수신하는 수단; 및
    상기 제1 접합 코드북과 동등한 M개 재생 벡터들의 제2 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표시되는 N개 재생 벡터들의 N-레벨 코드북으로부터, 상기 식별자를 기반으로, 상기 재생 벡터를 회수하는 수단;을 포함하는 전송 시스템.
  13. 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북을 결정하는 방법으로서,
    M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택될 때에,
    상기 방법은,
    적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 단계; 및
    상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하는 단계로서, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 배열 단계;를 포함하는, 접합 코드북 결정 방법.
  14. 제13항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 접합 코드북 결정 방법.
  15. 제14항에 있어서,
    상기 트레이닝 알고리즘에 의해 M개 재생 벡터들의 초기 코드북을 생성하는 단계;
    상기 트레이닝 알고리즘에 의해 2개 재생 벡터들의 2-레벨 코드북을 생성하는 단계;
    상기 2-레벨 코드북 내의 상기 2개 재생 벡터들과 가장 유사한 2개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 단계;
    상기 2개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개의 위치로 복사하고 상기 초기 코드북으로부터 상기 2개의 선택된 재생 벡터들을 삭제하는 단계; 및
    1 < i ≤ m 인 동안:
    (a) 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계;
    (b) 상기 접합 코드북으로 이미 복사된 I/2 개 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 식별하는 단계;
    (c) 상기 I-레벨 코드북 내의 남아있는 식별되지-않은 I/2 개의 재생 벡터들에 대해, 상기 남아있는 식별되지-않은 I/2 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 단계; 및
    (d) 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;인
    상기 (a) 내지 (d) 를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  16. 제14항에 있어서,
    상기 트레이닝 알고리즘에 의해 2개의 재생 벡터들의 2-레벨 코드북을 생성하는 단계;
    상기 2개의 재생 벡터들을 상기 2-레벨 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개 위치로 복사하는 단계; 및
    1 < i ≤ m 인 동안:
    (a) 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계로서, 상기 트레이닝 알고리즘에서, 상기 접합 코드북으로 이미 복사된 I/2 개의 재생 벡터들은 I 개의 재생 벡터들의 코드북의 첫 번째 부분을 형성하며, 그 첫 번째 부분은 상기 트레이닝 알고리즘에 의해 생성된 상기 I-레벨 코드북의 초기값으로서 동작하고 상기 트레이닝 알고리즘 동안 내내 고정된 것으로 간주되는, 생성 단계; 및
    (b) 상기 생성된 I-레벨 코드북의 I/2개의 마지막 재생 벡터들을 상기 접합 코드북 내의 다음 빈 I/2개의 위치의 증가하는 자리로 복사하는 단계;인
    상기 (a) 내지 (b)를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  17. 제13항에 있어서,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계;
    상기 초기 코드북으로부터, 서로 가장 차이가 나는 두 개의 재생 벡터들을 선택하는 단계;
    상기 두 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 두 개의 위치로 복사하고 상기 초기 코드북으로부터 상기 두 개의 선택된 재생 벡터들을 삭제하는 단계; 및
    상기 초기 코드북이 비어있지 않을 때까지:
    (a) 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및
    (b) 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터를 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  18. 제13항에 있어서,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계;
    상기 초기 코드북으로부터, 상기 트레이닝 벡터들의 모두와 가장 유사한 재생 벡터를 선택하는 단계;
    상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째의 위치로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 단계; 및
    상기 초기 코드북이 비어있지 않을 때까지:
    (a) 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및
    (b) 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  19. 제13항에 있어서,
    상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계; 및
    상기 초기 코드북이 비어있지 않을 때까지 다음의:
    (a) 상기 초기 코드북으로부터 서로 가장 유사한 두 개의 재생 벡터들을 선택하는 단계; 및
    (b) 상기 선택된 두 개의 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음의 빈 위치로, 마지막 위치로부터 감소하는 자리로, 복사하고 상기 초기 코드북으로부터 상기 선택된 두 개의 재생 벡터들을 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  20. 제13항에 있어서,
    M보다 작거나 같은 N에 대한, 적어도 두 개의 미리 정의된 값들의 상기 집합이 K 개의 값들인 Ni (i= 1, ..., K)를 포함하고, j = 2,..., K 에 대해 Nj-1 < Nj ≤ M 일 때에,
    상기 방법은,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 단계;
    상기 초기 코드북으로부터 Ni 개의 재생 벡터들을 선택하여, 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들 모두에 대한 왜곡이 최소가 되도록 하는 단계;
    상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북으로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계; 및
    1 < i ≤ K 인 각 Ni 에 대해:
    (a) 상기 초기 코드북으로부터 Ni - Ni-1 개의 재생 벡터들을 선택하여 상기 접합 코드북으로 복사된 Ni-1 개의 재생 벡터들 및 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들의 모두에 대한 왜곡이 최소가 되도록 하는 단계; 및
    (b) 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 단계;를 포함하는, 접합 코드북 결정 방법.
  21. 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북(joint codebook)을 결정하는 장치로서,
    M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택될 때에,
    상기 장치는,
    적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 수단; 및
    상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하여, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 배열 수단;을 포함하는, 접합 코드북 결정 장치.
  22. 벡터들의 N-레벨 양자화에서 사용하기 위한 M개 재생 벡터들의 접합 코드북을 결정하는 것이 구체화된 컴퓨터 프로그램을 구비하는, 컴퓨터로 읽을 수 있는 저장 매체로서,
    M은 레벨들의 미리 정의된 최대값이며, N은 M보다 작거나 같은 적어도 두 개의 미리 정의된 값들의 집합으로부터 상기 양자화 이전에 선택 가능하며, 상기 양자화에서, 각 벡터에 대한 재생 벡터는, 적어도 2개의 미리 정의된 값들의 상기 집합 내의 각 N에 대해, 상기 접합 코드북의 첫 번째 N개 재생 벡터들에 의해 표현되는 N개 재생 벡터들의 N-레벨 코드북으로부터 선택될 때에,
    상기 컴퓨터 프로그램은,
    적어도 부분적으로 복수의 트레이닝 (training) 벡터들을 기반으로 하는 트레이닝 알고리즘에 의해 상기 재생 벡터들을 생성하는 프로그램 코드; 및
    상기 생성된 재생 벡터들을 배열 알고리즘에 따라서 상기 접합 코드북 내에 배열하여, 각 N에 대해, 상기 접합 코드북 내의 상기 첫 번째 N개 재생 벡터들이 N-레벨 코드북을 형성하여 상기 벡터들의 상기 양자화에 사용될 때에 상기 벡터들의 평균 왜곡(average distortion)이 작아지도록 하는, 프로그램 코드;를 포함하는 컴퓨터로 읽을 수 있는 저장 매체.
  23. 삭제
  24. 제6항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 벡터들의 N-레벨 양자화 장치.
  25. 제6항 또는 제24항에 있어서,
    상기 N-레벨의 코드북의 각 재생 벡터는 n 비트 이진 워드에 의해 식별되는, 벡터들의 N-레벨 양자화 장치.
  26. 제9항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 재생 벡터 회수 방법.
  27. 제9항 또는 제26항에 있어서,
    상기 N-레벨의 코드북의 각 재생 벡터는 n 비트 이진 워드에 의해 식별되는, 재생 벡터 회수 방법.
  28. 제10항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 재생 벡터 회수 장치.
  29. 제10항 또는 제28항에 있어서,
    상기 N-레벨의 코드북의 각 재생 벡터는 n 비트 이진 워드에 의해 식별되는, 재생 벡터 회수 장치.
  30. 제21항에 있어서,
    n, m이 정수값일 때에 N=2n 그리고 M=2m 을 유지하는, 접합 코드북 결정 장치.
  31. 제30항에 있어서, 상기 장치는,
    상기 트레이닝 알고리즘에 의해 M개 재생 벡터들의 초기 코드북을 생성하는 수단;
    상기 트레이닝 알고리즘에 의해 2개 재생 벡터들의 2-레벨 코드북을 생성하는 수단;
    상기 2-레벨 코드북 내의 상기 2개 재생 벡터들과 가장 유사한 2개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 수단;
    상기 2개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개의 위치로 복사하고 상기 초기 코드북으로부터 상기 2개의 선택된 재생 벡터들을 삭제하는 수단; 및
    1 < i ≤ m 인 동안:
    (a) 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계;
    (b) 상기 접합 코드북으로 이미 복사된 I/2 개 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 식별하는 단계;
    (c) 상기 I-레벨 코드북 내의 남아있는 식별되지-않은 I/2 개의 재생 벡터들에 대해, 상기 남아있는 식별되지-않은 I/2 재생 벡터들과 가장 유사한 I/2 개의 재생 벡터들을 상기 초기 코드북으로부터 선택하는 단계; 및
    (d) 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 I/2 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;인,
    상기 (a) 내지 (d) 단계를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
  32. 제30항에 있어서, 상기 장치는,
    상기 트레이닝 알고리즘에 의해 2개의 재생 벡터들의 2-레벨 코드북을 생성하는 수단;
    상기 2개의 재생 벡터들을 상기 2-레벨 코드북으로부터 상기 접합 코드북 내의 첫 번째 2개 위치로 복사하는 수단; 및
    1 < i ≤ m 인 동안:
    (a) 상기 트레이닝 알고리즘에 의해 I=2i 개 재생 벡터들의 I-레벨 코드북을 생성하는 단계로서, 상기 트레이닝 알고리즘에서, 상기 접합 코드북으로 이미 복사된 I/2 개의 재생 벡터들은 I 개의 재생 벡터들의 코드북의 첫 번째 부분을 형성하며, 그 첫 번째 부분은 상기 트레이닝 알고리즘에 의해 생성된 상기 I-레벨 코드북의 초기값으로서 동작하고 상기 트레이닝 알고리즘 동안 내내 고정된 것으로 간주되는, 생성 단계; 및
    (b) 상기 생성된 I-레벨 코드북의 I/2개의 마지막 재생 벡터들을 상기 접합 코드북 내의 다음 빈 I/2개의 위치의 증가하는 자리로 복사하는 단계;인
    상기 (a) 내지 (b)를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
  33. 제21항에 있어서, 상기 장치는,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 수단;
    상기 초기 코드북으로부터, 서로 가장 차이가 나는 두 개의 재생 벡터들을 선택하는 수단;
    상기 두 개의 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째 두 개의 위치로 복사하고 상기 초기 코드북으로부터 상기 두 개의 선택된 재생 벡터들을 삭제하는 수단; 및
    상기 초기 코드북이 비어있지 않을 때까지:
    (a) 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및
    (b) 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터를 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
  34. 제21항에 있어서, 상기 장치는,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 수단;
    상기 초기 코드북으로부터, 상기 트레이닝 벡터들의 모두와 가장 유사한 재생 벡터를 선택하는 수단;
    상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 첫 번째의 위치로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 수단; 및
    상기 초기 코드북이 비어있지 않을 때까지:
    (a) 이미 상기 접합 코드북으로 복사된 모든 재생 벡터들에 대해 가장 차이가 나는 재생 벡터를 상기 초기 코드북으로부터 선택하는 단계; 및
    (b) 상기 선택된 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 초기 코드북으로부터 상기 선택된 재생 벡터들을 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
  35. 제21항에 있어서, 상기 장치는,
    상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 수단; 및
    상기 초기 코드북이 비어있지 않을 때까지:
    (a) 상기 초기 코드북으로부터 서로 가장 유사한 두 개의 재생 벡터들을 선택하는 단계; 및
    (b) 상기 선택된 두 개의 재생 벡터를 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음의 빈 위치로, 마지막 위치로부터 감소하는 자리로, 복사하고 상기 초기 코드북으로부터 상기 선택된 두 개의 재생 벡터들을 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
  36. 제21항에 있어서,
    M보다 작거나 같은 N에 대한, 적어도 두 개의 미리 정의된 값들의 상기 집합이 K 개의 값들인 Ni (i= 1, ..., K)를 포함하고, j = 2,..., K 에 대해 Nj-1 < Nj ≤ M 일 때에,
    상기 장치는,
    복수의 트레이닝 벡터들을 기반으로 상기 트레이닝 알고리즘에 의해 M개의 재생 벡터들의 초기 코드북을 생성하는 수단;
    상기 초기 코드북으로부터 Ni 개의 재생 벡터들을 선택하여, 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들 모두에 대한 왜곡이 최소가 되도록 하는 수단;
    상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북으로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 수단; 및
    1 < i ≤ K 인 각 Ni 에 대해:
    (a) 상기 초기 코드북으로부터 Ni - Ni-1 개의 재생 벡터들을 선택하여 상기 접합 코드북으로 복사된 Ni-1 개의 재생 벡터들 및 상기 선택된 재생 벡터들을 포함하는 코드북의 상기 트레이닝 벡터들의 모두에 대한 왜곡이 최소가 되도록 하는 단계; 및
    (b) 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 상기 접합 코드북 내의 다음 빈 위치의 증가하는 자리로 복사하고 상기 선택된 재생 벡터들을 상기 초기 코드북으로부터 삭제하는 단계;인
    상기 (a) 내지 (b)를 반복하는 수단;을 포함하는, 접합 코드북 결정 장치.
KR1020087007436A 2005-08-29 2006-08-25 다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화 KR100982211B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/214,484 2005-08-29
US11/214,484 US7587314B2 (en) 2005-08-29 2005-08-29 Single-codebook vector quantization for multiple-rate applications

Publications (2)

Publication Number Publication Date
KR20080039523A KR20080039523A (ko) 2008-05-07
KR100982211B1 true KR100982211B1 (ko) 2010-09-14

Family

ID=37697832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087007436A KR100982211B1 (ko) 2005-08-29 2006-08-25 다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화

Country Status (17)

Country Link
US (1) US7587314B2 (ko)
EP (1) EP1920434B1 (ko)
JP (1) JP4777429B2 (ko)
KR (1) KR100982211B1 (ko)
CN (1) CN101288118B (ko)
AT (1) ATE446571T1 (ko)
AU (1) AU2006286177C1 (ko)
BR (1) BRPI0615709B1 (ko)
DE (1) DE602006009950D1 (ko)
ES (1) ES2332330T3 (ko)
HK (1) HK1122640A1 (ko)
MX (1) MX2008002434A (ko)
MY (1) MY144576A (ko)
PL (1) PL1920434T3 (ko)
RU (1) RU2391715C2 (ko)
WO (1) WO2007026295A2 (ko)
ZA (1) ZA200801844B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966175B2 (en) * 2006-10-18 2011-06-21 Polycom, Inc. Fast lattice vector quantization
US7961640B2 (en) * 2006-10-26 2011-06-14 Qualcomm Incorporated Method and apparatus for codebook exchange in a multiple access wireless communication system
JP5006404B2 (ja) 2006-12-05 2012-08-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ベクトル量子化装置
US7813922B2 (en) * 2007-01-30 2010-10-12 Nokia Corporation Audio quantization
RU2461079C2 (ru) * 2008-02-15 2012-09-10 Нокиа Корпорейшн Упрощенная индексация и деиндексация векторов
US20100257174A1 (en) * 2009-04-02 2010-10-07 Matthew Dino Minuti Method for data compression utilizing pattern-analysis and matching means such as neural networks
CN101577551A (zh) * 2009-05-27 2009-11-11 华为技术有限公司 一种生成格型矢量量化码书的方法及装置
KR101826331B1 (ko) 2010-09-15 2018-03-22 삼성전자주식회사 고주파수 대역폭 확장을 위한 부호화/복호화 장치 및 방법
SG191771A1 (en) 2010-12-29 2013-08-30 Samsung Electronics Co Ltd Apparatus and method for encoding/decoding for high-frequency bandwidth extension
EP4274235A3 (en) * 2012-03-29 2024-01-10 Telefonaktiebolaget LM Ericsson (publ) Vector quantizer
US9304703B1 (en) * 2015-04-15 2016-04-05 Symbolic Io Corporation Method and apparatus for dense hyper IO digital retention
CA2959450C (en) * 2014-08-28 2019-11-12 Nokia Technologies Oy Audio parameter quantization
CN108028045A (zh) * 2015-07-06 2018-05-11 诺基亚技术有限公司 用于音频信号解码器的位错误检测器
US10531099B2 (en) * 2016-09-30 2020-01-07 The Mitre Corporation Systems and methods for distributed quantization of multimodal images
CN112036821B (zh) * 2020-08-24 2024-02-02 智能创谷(北京)科技有限公司 基于网格图规划专线的量化方法、装置、介质和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151968A (en) 1989-08-04 1992-09-29 Fujitsu Limited Vector quantization encoder and vector quantization decoder
WO2004015689A1 (en) 2002-08-08 2004-02-19 Qualcomm Incorporated Bandwidth-adaptive quantization

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734791A (en) * 1992-12-31 1998-03-31 Apple Computer, Inc. Rapid tree-based method for vector quantization
US5481739A (en) * 1993-06-23 1996-01-02 Apple Computer, Inc. Vector quantization using thresholds
WO1995010760A2 (en) * 1993-10-08 1995-04-20 Comsat Corporation Improved low bit rate vocoders and methods of operation therefor
GB2300548B (en) * 1995-05-02 2000-01-12 Motorola Ltd Method for a communications system
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US6952671B1 (en) * 1999-10-04 2005-10-04 Xvd Corporation Vector quantization with a non-structured codebook for audio compression
US6504877B1 (en) * 1999-12-14 2003-01-07 Agere Systems Inc. Successively refinable Trellis-Based Scalar Vector quantizers
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
CA2415105A1 (en) * 2002-12-24 2004-06-24 Voiceage Corporation A method and device for robust predictive vector quantization of linear prediction parameters in variable bit rate speech coding
US7680670B2 (en) * 2004-01-30 2010-03-16 France Telecom Dimensional vector and variable resolution quantization
DE602004026645D1 (de) * 2004-07-23 2010-05-27 Telecom Italia Spa Verfahren zum erzeugen und verwenden eines vektorcodebuchs, verfahren und einrichtung zum komprimieren von daten und verteiltes spracherkennungssystem
US20060080090A1 (en) * 2004-10-07 2006-04-13 Nokia Corporation Reusing codebooks in parameter quantization
US8510105B2 (en) * 2005-10-21 2013-08-13 Nokia Corporation Compression and decompression of data vectors
JP5006404B2 (ja) * 2006-12-05 2012-08-22 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ベクトル量子化装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151968A (en) 1989-08-04 1992-09-29 Fujitsu Limited Vector quantization encoder and vector quantization decoder
WO2004015689A1 (en) 2002-08-08 2004-02-19 Qualcomm Incorporated Bandwidth-adaptive quantization

Also Published As

Publication number Publication date
ZA200801844B (en) 2009-10-28
BRPI0615709B1 (pt) 2019-08-20
AU2006286177A1 (en) 2007-03-08
DE602006009950D1 (de) 2009-12-03
HK1122640A1 (en) 2009-05-22
ES2332330T3 (es) 2010-02-02
RU2008106651A (ru) 2009-10-10
BRPI0615709A2 (pt) 2011-05-24
CN101288118B (zh) 2011-07-20
CN101288118A (zh) 2008-10-15
PL1920434T3 (pl) 2010-03-31
AU2006286177B2 (en) 2011-04-14
ATE446571T1 (de) 2009-11-15
RU2391715C2 (ru) 2010-06-10
KR20080039523A (ko) 2008-05-07
MX2008002434A (es) 2008-04-03
US7587314B2 (en) 2009-09-08
WO2007026295A3 (en) 2007-07-05
MY144576A (en) 2011-10-14
JP4777429B2 (ja) 2011-09-21
US20070055509A1 (en) 2007-03-08
EP1920434B1 (en) 2009-10-21
JP2009506368A (ja) 2009-02-12
WO2007026295A2 (en) 2007-03-08
AU2006286177C1 (en) 2011-08-18
EP1920434A2 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
KR100982211B1 (ko) 다중의 속도 애플리케이션에 대한 단일 코드북 벡터 양자화
EP2274833B1 (en) Vector quantisation method
US7106228B2 (en) Method and system for multi-rate lattice vector quantization of a signal
Vasuki et al. A review of vector quantization techniques
US6504877B1 (en) Successively refinable Trellis-Based Scalar Vector quantizers
US4791654A (en) Resisting the effects of channel noise in digital transmission of information
US8558724B2 (en) Coding method, coding appartaus, decoding method, decoding apparatus, program, and recording medium
JP7356513B2 (ja) ニューラルネットワークのパラメータを圧縮する方法および装置
KR101170137B1 (ko) 복잡성이 축소된 벡터 인덱싱 및 탈-인덱싱
Sitaram et al. Efficient codebooks for vector quantization image compression with an adaptive tree search algorithm
JP4508490B2 (ja) 符号化装置および復号化装置
Effros et al. Multiresolution vector quantization
Aksu et al. Multistage trellis coded quantisation (MS-TCQ) design and performance
Cao et al. A fast search algorithm for vector quantization using a directed graph
CN103366752B (zh) 生成用于编码信息信号的候选码矢的方法和设备
Bouzid et al. Optimized trellis coded vector quantization of LSF parameters, application to the 4.8 kbps FS1016 speech coder
Gersho et al. Vector quantization techniques in speech coding
Hwang et al. Genetic entropy-constrained vector quantizer design algorithm
Popescu et al. CELP coding using trellis-coded vector quantization of the excitation
Vasilache et al. Robust indexing of lattices and permutation codes over binary symmetric channels
CA2482994C (en) Method and system for multi-rate lattice vector quantization of a signal
WO2008003832A1 (en) Method of treating voice information
JPH08101700A (ja) ベクトル量子化装置

Legal Events

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

Payment date: 20130820

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 9