KR101512320B1 - 양자화 및 역양자화 방법 및 장치 - Google Patents

양자화 및 역양자화 방법 및 장치 Download PDF

Info

Publication number
KR101512320B1
KR101512320B1 KR1020080000163A KR20080000163A KR101512320B1 KR 101512320 B1 KR101512320 B1 KR 101512320B1 KR 1020080000163 A KR1020080000163 A KR 1020080000163A KR 20080000163 A KR20080000163 A KR 20080000163A KR 101512320 B1 KR101512320 B1 KR 101512320B1
Authority
KR
South Korea
Prior art keywords
subvector
elements
subvectors
codebook
bits
Prior art date
Application number
KR1020080000163A
Other languages
English (en)
Other versions
KR20090074395A (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 삼성전자주식회사
Priority to KR1020080000163A priority Critical patent/KR101512320B1/ko
Publication of KR20090074395A publication Critical patent/KR20090074395A/ko
Application granted granted Critical
Publication of KR101512320B1 publication Critical patent/KR101512320B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 선형예측계수를 순서의 성질을 갖는 소정의 계수로 변환하여 벡터 양자화하는 방법 및 장치에 관한 것으로서, 순서의 성질을 갖는 계수의 벡터를 서브 벡터로 분할하여 서브 벡터의 원소가 존재하는 분포에 따라 가변적으로 각 서브 벡터에 가용한 비트가 할당된 코드북을 선택하여 양자화한다.

Description

양자화 및 역양자화 방법 및 장치{Method and apparatus for quantization and de-quantization}
본 발명은 오디오 신호 또는 음성 신호의 부호화 및 복호화에 관한 것으로, 보다 상세하게는 선형예측계수를 순서의 성질을 갖는 소정의 계수로 변환하여 벡터 양자화(vector quantization)하는 방법 및 장치에 관한 것이다.
아날로그 신호를 양자화하는 방식에는 스칼라 양자화(scalar quantization) 방식과 벡터 양자화 방식이 있다. 스칼라 양자화 방식은 입력 신호를 개별적인 값으로 양자화하는 것을 말하며, 벡터 양자화 방식은 입력 신호를 몇 개의 관련성이 있는 신호의 열로 판단하여 벡터 자체를 양자화의 기본 단위로 하는 양자화 기법을 말한다.
오디오 신호 또는 음성 신호를 부호화/복호화함에 있어서, 적은 비트를 이용하여 LPC(Linear Predictive Coding) 계수를 직접 양자화할 경우 변화가 심하게 일어나므로 LSF(Line Spectrum Frequency) 계수로 변환시킨 후 양자화하는 것이 일반적이다. 그러나 스칼라 양자화 방식은 각 LSF를 개별적으로 양자화하므로 양질의 음성을 나타내기 위해서 적어도 32비트/프레임(bits/frame)이 요구되지만 4.8K bps(bit per sec)이하에 해당하는 대부분의 음성 부호화기(speech coder)들은 LSF에 24비트/프레임 이상을 할당하지 않는다. 그러므로 이용하는 비트 수를 줄이기 위해서 벡터 양자화 방식을 이용한다.
여기서, 벡터 양자화 방식은 데이터를 하나의 블록으로 생성하여 벡터 단위로 양자화함으로써 강력한 데이터 압출 효과를 얻는 방식으로 영상 처리, 음성 처리, 팩시밀리 전송 그리고 기상 위성 등을 포함하여 다양한 범위에 걸쳐 유용하게 이용된다. 벡터 양자화 방식에 의하여 부호화/복호화함에 있어서 데이터 벡터를 나타나는 코드북이 상당히 중요한 비중을 차지한다.
본 발명이 이루고자 하는 기술적 과제는, 선형예측계수로부터 변환된 순서의 성질을 갖는 계수의 벡터를 서브 벡터로 분할하여 서브 벡터의 원소가 존재하는 분포에 따라 가변적으로 각 서브 벡터에 가용한 비트가 할당된 코드북을 선택하여 양자화하는 양자화 방법 및 장치를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는, 선형예측계수로부터 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터들로 분할하여 양자화함으로써 생성된 코드북 인덱스를 이용하여 선형예측계수로 역양자화하는 역양자화 방법 및 장치를 제공하는 것이다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 정규화된 코드북을 생성하는 코드북 생성 방법 및 장치를 제공하는 것이다.
상기의 과제를 이루기 위한 본 발명에 의한 양자화 방법은, 선형예측계수를 순서의 성질을 갖는 계수로 변환하는 단계; 상기 변환된 계수의 벡터를 서브 벡터들로 분할하는 단계; 및 상기 분할된 서브 벡터들의 간격을 기준으로 상기 각 서브 벡터에 가용한 비트를 할당하여 상기 분할된 서브 벡터들을 양자화하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위한 본 발명에 의한 역양자화 방법은, 서브 벡터의 간격을 기준으로 가용한 비트가 할당되어 양자화된 서브 벡터들을 역양자화하는 단계; 상기 역양자화된 서브 벡터들을 합성하여 순서의 성질을 갖는 계수를 복원하는 단계; 및 상기 복원된 계수를 선형예측계수로 역변환하는 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 양자화 및 역양자화 방법 및 장치의 실시예에 대해 상세히 설명한다.
도 1은 본 발명에 의한 양자화 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
먼저, LPC(Linear Predictive Coding, 선형예측부호화)를 적용하여 입력 신호로부터 추출한 선형예측계수를 순서의 성질을 갖는 계수의 벡터로 변환한다(제100단계). 여기서, 선형예측계수는 입력 신호를 선형 예측(Linear Prediction)하여 추출된 계수를 말한다. 순서의 성질을 갖는 계수의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다.
제100단계에서 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터(sub-vector)와 하위 서브 벡터들로 분할한다(제110단계). 여기서, 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터에 마련된 원소(element)들 가운데 기준이 되는 원소로 구성되며, 하위 서브 벡터들은 순서의 성질을 갖는 계수의 벡터에 마련된 원소들 가운데 상위 서브 벡터를 구성하는 원소들 사이에 각각 마련된 원소들로 구성된다.
도 2를 예로 들어 설명하면, 상위 서브 벡터는 제1 서브 벡터(211)에 해당하며, 하위 서브 벡터들은 제2 서브 벡터(212) 및 제3 서브 벡터(213)에 해당한다. 여기서, 제1 서브 벡터(211)는 원소 w1, w5 및 w10으로 구성되며, 원소 w1과 w5 사이에 존재하는 제2 서브 벡터(212)는 원소 w2, w3 및 w4으로 구성되고, 원소 w5와 w10 사이에 존재하는 제3 서브 벡터(213)는 원소 w6, w7, w8 및 w9으로 구성된다.
제110단계에서 분할된 상위 서브 벡터를 벡터 양자화(vector quantization)에 의해 양자화한다(제120단계). 예를 들어, 제120단계에서는 제1 서브 벡터(711)를 양자화하여 제1 코드북 인덱스를 생성한다.
제120단계에서는 예측 벡터 양자화(predictive vector quantization) 및 비-예측 벡터 양자화(non-predictive vector quantization)로 실시할 수 있다. 제120단계에서는 비-예측 벡터 양자화인 MSVQ 또는 Split-VQ로 실시할 수 있으며, 이 경우 사용되는 메모리가 절감되어 복잡도를 감소시킬 수 있다.
또한, 제120단계에서는 1개의 코드북 인덱스를 생성할 수도 있지만 순서의 성질을 갖는 계수의 벡터에 대하여 최적화된 조합을 구하기 위해 상위 서브 벡터에 대하여 복수의 코드북 인덱스를 생성할 수도 있다.
제120단계에서 양자화된 상위 서브 벡터의 원소들을 이용하여 각 서브 벡터에 가용할 비트(bit)가 할당된 코드북을 선택한다(제130단계). 제130단계에서 상위 서브 벡터의 원소들을 이용하여 코드북을 선택하는 실시예로 다음에 기재된 실시예가 있다.
첫째, 제120단계에서 양자화된 상위 서브 벡터에 마련된 소정의 원소들 사이의 간격에 따라 각 하위 서브 벡터에 가용할 비트가 할당된 코드북을 선택한다. 보다 상세하게 설명하면, 상위 서브 벡터에 마련된 원소들의 간격이 넓다면 그 원소들 사이에 마련된 하위 서브 벡터에는 많은 비트가 할당된 코드북을 선택하고, 상위 서브 벡터에 마련된 원소들의 간격이 좁다면 그 원소들 사이에 마련된 하위 서브 벡터에는 적은 비트를 할당한다.
도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w3과 w6의 간격이 좁아질수록 하위 서브 벡터인 제3 서브 벡터(320)를 양자화하는 데 가용할 비트를 5비트에서 4비트로 줄이고, 하위 서브 벡터인 제2 서브 벡터(310)를 양자화하는 데 가용할 비트를 5비트에서 6비트로 높인다. 이와 동일한 방식으로 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w6과 w10의 간격이 좁아질수록 하위 서브 벡터인 제4 서브 벡터(330)를 양자화하는 데 가용할 비트를 7비트에서 6비트로 줄이고, 하위 서브 벡터인 제5 서브 벡터(340)를 양자화하는 데 가용할 비트를 6비트에서 7비트로 높인다.
또한, 도 4에 도시된 바와 같이 상위 서브 벡터인 제1 서브 벡터(300)에 포 함된 원소로 w3과 w6의 간격에 따라 제2 서브 벡터(310)에 가용한 비트가 할당된 코드북을 후술할 제2 멀티-코드북 저장부(1141)에서 선택할 수 있고 제3 서브 벡터(320)에 가용한 비트가 할당된 코드북을 후술한 제3 멀티-코드북 저장부(1142)에서 선택할 수 있다.
그러나 상위 서브 벡터에 마련된 모든 원소들을 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하여야 하는 것은 아니다. 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 마련된 원소들을 정규화하는 동시에 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용하고, 그 외 나머지 원소들은 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용할 수 있다. 도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소인 w3, w6, w10, w14 및 w15 가운데 원소 w3, w10 및 w14는 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하고 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트를 결정하는 데도 이용하고, 원소 w6, w15는 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데만 이용할 수 있다.
또한, 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하는 경우, 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 상위 서브 벡터의 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용 되는 상위 서브 벡터의 원소(들)에 많은 비트를 할당하여 양자화할 수 있다. 이 때 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하고 별도의 서브 벡터들로 마련하여 split-VQ를 적용함으로써 각각 다른 가용할 비트를 할당하여 양자화할 수 있다.
둘째, 제120단계에서 양자화된 상위 서브 벡터의 원소들 사이의 간격에 대한 비율에 따라 각 하위 서브 벡터에 가용한 비트가 할당된 코드북을 선택한다. 도 5을 예를 들어 설명하면, s는 상위 서브 벡터의 원소들 사이의 간격에 대한 비율로서 도 2에서 (w5-w0)/(w10-w5)에 해당하는 값이다. 여기서, w5와 w10 사이의 간격에 비하여 w0와 w5의 간격이 점차 증차함에 따라 w0과 w5 사이에 존재하는 제2 서브 벡터(212)에 할당되는 비트가 점차 증가하므로 코드북에 할당되는 비트도 M비트에서 (M+3)비트로 증가하고, 반면에 w5와 w10 사이에 존재하는 제3 서브 벡터(213)에 할당되는 비트는 점차 감소하므로 L비트에서 (L-3)비트로 감소한다.
셋째, 제120단계에서 양자화된 상위 서브 벡터의 원소들 가운데 소정의 양자화된 원소가 존재하는 범위에 따라 각 하위 서브 벡터에 가용할 비트가 할당된 코드북을 선택한다. 여기서, 소정의 양자화된 원소는 서브 벡터의 원소가 존재하는 분포에 대하여 중요한 영향을 미치는 기준이 되는 원소를 상위 서브 벡터의 원소들 가운데 선택하여 기 설정된다. 도 6에 도시된 바와 같이 x는 w4라고 가정하면, w4가 존재하는 범위에 따라 가용한 비트가 할당된 코드북을 선택한다. 도 2를 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(211)에 포함된 원소인 w1, w5 및 w10가 존재하는 분포를 판단함으로써 제2 서브 벡터(212) 및 제3 서브 벡터(213)에 가용한 비트가 할당된 코드북을 선택한다.
넷째, 전술한 첫째, 둘째 및 셋째 실시예를 적어도 둘 이상 조합하여 실시할 수 있다. 도 3을 예를 들어 설명하면, 제2 서브 벡터(310) 및 제3 서브 벡터(320)에 가용할 비트는 w3과 w6 사이의 간격을 기준으로 결정하고 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트는 w6과 w10 간격 사이와 w10과 w11 간격 사이의 비율인 (w10-w6)/(w11-w10)을 기준으로 결정할 수 있다.
전술한 실시예에 한정하여 실시해야 하는 것은 아니며 상위 서브 벡터에 마련된 원소의 분포를 이용하는 모든 방식으로 실시할 수 있다.
또한, 제120단계 및 제140단계에서 서브 벡터를 양자화함에 있어서 각 벡터또는 원소의 중요도에 따라 가중치를 계산하여 가중치에 따라 적응적으로 양자화할 수 있다. 여기서, 가중치를 계산하는 실시예에 있어서 다음에 기재된 두 가지 방식이 있을 수 있다. 첫째, 순서의 특성을 갖는 계수가 각각의 벡터에 따라 중요도가 다르므로 전체 벡터의 관계를 이용한 오버얼 웨이팅(overall weighting)을 계산함으로써 가중치를 계산할 수 있다. 여기서, 오버얼 웨이팅을 결정하는 방식은 종래에 다양한 방식으로 개시되어 있다. 둘째, 동일한 서브벡터 내에서 중요도에 따라 가중치를 계산할 수 있다. 예를 들어, ISF의 경우 마지막에 마련된 원소는 순서의 특성(ordering property)를 따르지 않지만 상위 서브 벡터에 마련된 다른 원소에 비해 상대적으로 중요도가 낮으므로 가중치를 낮게 적용한다. 또한, 하위 서 브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)에 더 많은 가중치를 적용할 수 있다.
그러나 가중치를 이용하지 않고 상위 서브 벡터에 마련된 원소들 가운데 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하고 별도의 서브 벡터들로 마련하여 스플릿 벡터 양자화(split-VQ)를 적용함으로써 각각 다른 가용할 비트를 할당하여 양자화할 수 있다.
제130단계에서 선택하는 코드북들은 다음과 같은 방식에 의하여 마련될 수 있다.
첫째, 도 7에 도시된 바와 같이 각 서브 벡터에 가용된 비트에 따라 다양한 코드북을 저장하는 복수의 멀티-코드북들로 구성하여 저장하는 방식이 있다.
둘째, 도 8에 도시된 바와 같이 각 하위 서브 벡터에 가용한 비트를 다르게 할당하는 멀티-코드북들로 구성된 조합들에 해당하는 복수의 클래스(class)들로 구성하여 저장하는 방식이 있다. 여기서, 제130단계는 복수의 클래스들에서 소정의 클래스를 선택하고, 각 하위 서브 벡터에 할당된 비트에 따라 선택된 클래스에서 소정의 코드북을 선택한다. 예를 들어, 전체 사용 가능한 비트가 24비트이고 제1 서브 벡터(211)에서 9비트를 사용한다고 가정하고 제1 클래스(800)와 제4 클래스(803)가 선택될 경우 제1 클래스(800)에서는 5비트가 할당된 제1 멀티-코드 북이 선택되고 제4 클래스(803)에서는 10비트가 할당된 제1 멀티-코드북이 선택된다. 또한, 제1 클래스(800)와 제6 클래스(805)가 선택되면 제1 클래스(800)에서는 7비트가 할당된 제3 멀티-코드북이 선택되고 제6 클래스(805)에서는 8비트가 할당된 제9 멀티 코드북이 선택된다.
제130단계에서 선택된 코드북을 이용하여 하위 서브 벡터를 양자화하여 코드북 인덱스를 생성한다(제140단계).
제140단계에서 이용하는 코드북은 정규화된 코드북을 이용할 수 있다. 여기서, 정규화된 코드북은 상위 서브 벡터의 원소 사이에 존재하는 하위 서브 벡터에 마련된 각 원소를 상위 서브 벡터의 원소 가운데 작은 값으로 감산한 후, 상위 서브 벡터의 원소 사이의 차이에 해당하는 값으로 제산하여 정규화한다. 도 2를 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(211)를 구성하는 원소인 w1, w5 및 w10에서 w1과 w5 사이에 마련된 제2 서브 벡터(212)의 각 코드워드를 w1과 w5 가운데 작은 값에 해당하는 w1로 감산한 후 w1과 w5 사이의 차이에 해당하는 (w5-w1)으로 제산하고, 제3 서브 벡터(213)의 각 원소를 w5와 w10 가운데 작은 값에 해당하는 w5로 감산한 후 w5와 w10 사이의 차이에 해당하는 (w10-w5)으로 제산한다. 그러나 반드시 이에 한정하여야 하는 것은 아니며 공지된 모든 정규화 방식을 이용하여 실시할 수 있다.
제140단계에서는 제130단계에서 선택된 코드북을 이용하여 양자화함에 있어서, 제130단계에서 선택된 코드북의 각 코드워드 값에 양자화된 상위 서브 벡터의 원소 사이의 차이에 해당하는 값을 승산한 후 상위 서브 벡터의 원소 가운데 작은 값으로 가산하고, 가장 작은 왜곡을 갖는 코드북 인덱스를 검출한다.
제120단계에서 생성된 복수의 코드북 인덱스에 대하여 제130단계와 제140단계를 반복하여 수행한다. 즉, 제130단계에서는 제120단계에서 상위 서브 벡터에 의하여 생성된 각 코드북 인덱스에 대하여 하위 서브 벡터들의 코드북을 선택하고, 제140단계에서는 제130단계에서 선택된 복수의 하위 서브 벡터들의 코드북를 이용하여 각 하위 서브 벡터를 양자화한다.
제120단계에서 생성된 복수의 코드북 인덱스 가운데 가장 왜곡(distortion)이 작은 코드북 인덱스를 검출한다(제150단계). 제150단계에서는 복수의 제1 서브 벡터(211)의 코드북 인덱스 가운데 가장 왜곡이 작은 코드북 인덱스를 검출하고, 검출된 코드북 인덱스에 상응하는 제2 서브 벡터(212)의 코드북 인덱스와 제3 서브 벡터(213)의 코드북 인덱스를 검출한다.
제120단계에서 양자화된 결과, 제150단계에서 양자화된 결과 및 정규화 정보를 포함하여 다중화함으로써 비트스트림을 생성한다(제160단계).
도 9는 본 발명에 의한 역양자화 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
먼저, 부호화단으로부터 비트스트림을 입력받아 역다중화한다(제900단계). 제900단계에서는 부호화단에서 LPC(Linear Predictive Coding, 선형예측부호화) 방식에 의해 추출된 선형예측계수로부터 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터들로 분할하여 양자화함으로써 생성된 코드북 인덱스 및 정규화 정보를 포함하여 역다중화한다. 여기서, 순서의 성질을 갖는 계수 의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다. 또한, 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 기준이 되는 원소로 구성되며, 하위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 상위 서브 벡터를 구성하는 원소들 사이에 각각 존재하는 원소로 구성된다.
제900단계에서 역다중화된 상위 서브 벡터의 코드북 인덱스를 이용하여 상위 서브 벡터를 역양자화한다(제910단계). 예를 들어, 제910단계에서는 예측 벡터 역양자화(predictive vector dequantization) 및 비-예측 벡터 역양자화(non-predictive vector dequantization)로 역양자화를 실시할 수 있다. 만일 제910단계에서 비-예측 벡터 역양자화인 MSVQ 또는 Split-VQ로 실시할 수 있으며 이 경우 사용되는 메모리가 절감되어 복잡도를 감소시킬 수 있다.
제910단계에서 역양자화된 상위 서브 벡터의 원소들을 이용하여 하위 서브 벡터들의 코드북을 선택한다(제920단계).
제920단계에서 선택된 하위 서브 벡터들의 코드북에서 하위 서브 벡터들의 인덱스에 대응하는 코드 벡터를 선택하여 역양자화한다(제930단계). 제930단계에서 사용하는 코드북은 정규화된 코드북으로 실시할 수 있다. 이 경우 제930단계에서는 역양자화된 하위 서브 벡터들의 원소들을 역정규화한다. 제930단계에서 역정규화함에 있어서 제900단계에서 역다중화된 정규화 정보를 이용할 수 있다.
제910단계에서 역양자화된 상위 서브 벡터 및 제920단계에서 역양자화된 하위 서브 벡터를 합성하여 순서의 성질을 갖는 계수를 복원한다(제940단계).
제940단계에서 복원된 순서의 성질을 갖는 계수를 선형예측계수로 변환한다(제950단계).
도 10은 본 발명의 실시예에서 이용하는 코드북을 생성하는 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
먼저, 트레이닝(training) 데이터베이스로부터 순서의 성질을 갖는 계수의 벡터를 입력받는다(제1000단계). 여기서, 순서의 성질을 갖는 계수의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다.
제1000단계에서 입력받은 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터로 분할한다(제1010단계). 제1010단계에서 분할되는 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 기준이 되는 원소로 구성되며, 하위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들 가운데 상위 서브 벡터를 구성하는 원소들 사이에 각각 존재하는 원소로 구성된다.
제1010단계에서 분할하는 상위 서브 벡터는 다음과 같은 사항을 고려하여 설정한다. 여기서, 일반적으로 협대역 스피치 코덱(Narrowband Speech Codec)은 10차를 이용하고, 광대역 스피치 코덱(Wideband Speech Codec)은 16차 또는 그 이상을 사용할 수 있다.
첫째, 최대 벡터 양자화 차원(Dimension)을 10차의 경우 4이하로 하고, 16차의 경우 6이하로 한다. 왜냐하면 벡터 양자화 차원이 4 또는 6을 초과하면, 코드북의 크기가 너무 커지고 정규화된 코드북의 성능이 저하된다. 둘째, 정규화를 시 켜주는 상위 서브 벡터의 원소의 개수를 10차의 경우 3이하로 하고, 16차의 경우 5이하로 한다. 그러나 정규화를 시켜주는 상위 서브 벡터에 마련된 원소의 최대 개수는 10차의 경우 4이하로 할 수 있고, 16차의 경우 6이하로 할 수 있다. 이는 상위 서브 벡터의 원소가 수행되는 개수가 많을 경우 벡터 양자화의 성능이 저하되고 인접한 원소 사이의 인트라-프레임 상관도(Intra-frame Correlation)를 이용하기 어렵기 때문이다. 셋째, 상위 서브 벡터는 상위 서브 벡터의 원소들 간의 인트라-프레임 상관도가 최대가 될 수 있도록 구성된다. 왜냐하면 원소들 사이의 간격이 커지면 정규화된 코드북의 성능이 저하된다. 넷째, 상위 서브 벡터는 하위 서브 벡터의 양단에 상위 서브 벡터의 원소가 마련되도록 구성된다. 이는 상위 서브 벡터의 원소들 사이에 하위 서브 벡터가 마련된 경우가 하위 서브 벡터의 한쪽에만 상위 서브 벡터의 원소가 마련된 경우 보다 정규화된 코드북의 성능이 우수하기 때문이다. 다섯째, 상위 서브 벡터는 상위 서브 벡터의 원소가 연속하지 않도록 구성된다. 왜냐하면 상위 서브 벡터의 원소를 중심으로 양단에 존재하는 하위 서브 벡터에 가용한 비트를 효율적으로 분배하기 위해서이다.
제1010단계에서 분할된 상위 서브 벡터에 대하여 LBG 알고리즘을 이용하여 제1 코드북을 생성한다(제1020단계).
제1010단계에서 분할된 상위 서브 벡터의 원소들을 이용하여 하위 서브 벡터에 가용한 비트를 할당하여 분류한다(제1030단계).
제1030단계에서 가용한 비트를 하위 서브 벡터에 할당하여 분류하는 방식으로 다음에 기재된 예가 있다. 그러나 후술하는 예에 한정하여 실시해야 하는 것은 아니며 상위 서브 벡터에 마련된 원소들의 분포를 이용하는 모든 방식으로 실시할 수 있다.
첫째, 상위 서브 벡터에 마련된 소정의 원소들 사이의 간격에 따라 각 하위 서브 벡터에 가용할 비트를 할당하여 분류한다. 보다 상세하게 설명하면, 상위 서브 벡터에 마련된 원소들의 간격이 넓을수록 그 원소들 사이에 마련된 하위 서브 벡터에는 많은 비트를 할당하고, 상위 서브 벡터에 마련된 원소들의 간격이 좁을수록 그 원소들 사이에 마련된 하위 서브 벡터에는 적은 비트를 할당한다.
도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w3과 w6의 간격이 좁아질수록 제3 서브 벡터(320)를 양자화하는 데 가용할 비트를 5비트에서 4비트로 줄이고, 제2 서브 벡터(310)를 양자화하는 데 가용할 비트를 5비트에서 6비트로 높인다. 이와 동일한 방식으로 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w6과 w10의 간격이 좁아질수록 제4 서브 벡터(330)를 양자화하는 데 가용할 비트를 7비트에서 6비트로 줄이고, 제5 서브 벡터(340)를 양자화하는 데 가용할 비트를 6비트에서 7비트로 높인다.
그러나 상위 서브 벡터에 마련된 모든 원소들을 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하여야 하는 것은 아니다. 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 마련된 원소들을 정규화하는 동시에 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용하고, 그 외 나머지 원소들은 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용할 수 있다. 도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소인 w3, w6, w10, w14 및 w15 가운데 원소 w3, w10 및 w14는 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데도 이용하고 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트를 결정하는 데도 이용하고, 원소 w6, w15는 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데만 이용할 수 있다.
또한, 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하는 경우, 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)에 많은 비트를 할당할 수 있다. 이 때 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하여 별도의 서브 벡터로 마련함으로써 각각 다른 가용한 비트를 할당할 수 있다.
둘째, 상위 서브 벡터의 원소들 사이의 간격에 대한 비율에 따라 각 하위 서브 벡터에 가용한 비트를 할당하여 분류한다. 예를 들어, 도 2에서 (w5-w0)/(w10-w5)에 해당하는 값이다. 여기서, w5와 w10 사이의 간격에 비하여 w0와 w5의 간격이 점차 증차함에 따라 w0과 w5 사이에 존재하는 제2 서브 벡터(212)에 할당되는 비트가 점차 증가하도록 하고, 반면에 w5와 w10 사이에 존재하는 제3 서브 벡 터(213)에 할당되는 비트는 점차 감소하도록 한다.
셋째, 상위 서브 벡터의 원소들 가운데 소정의 양자화된 원소가 존재하는 범위에 따라 각 하위 서브 벡터에 가용한 비트를 할당하여 분류한다. 여기서, 소정의 양자화된 원소는 서브 벡터의 원소가 존재하는 분포에 대하여 중요한 영향을 미치는 기준이 되는 원소를 상위 서브 벡터의 원소들 가운데 선택한다. 예를 들어, 선택된 원소를 x는 w4라고 가정하면 w4가 존재하는 범위에 따라 가용한 비트가 할당된 코드북을 선택한다.
넷째, 전술한 첫째, 둘째 및 셋째 실시예를 적어도 둘 이상 조합하여 실시할 수 있다.
제1030단계에서 분류된 하위 서브 벡터를 이용하여 LBG 알고리즘에 의해 제2 코드북을 생성한다(제1040단계).
제1030단계에서 LBG 알고리즘에 의해 생성되는 코드북은 정규화되어 생성되는 것이 바람직하다. 여기서, 정규화된 코드북은 상위 서브 벡터의 원소 사이에 존재하는 하위 서브 벡터의 각 코드워드(codeword)를 상위 서브 벡터의 원소 가운데 작은 값으로 감산한 후, 상위 서브 벡터의 원소 사이의 차이에 해당하는 값을 제산하여 정규화한다. 도 2를 예로 들어 설명하면, 상위 서브 벡터를 구성하는 원소인 w1, w5 및 w10에서 w1과 w5 사이에 마련된 제2 서브 벡터의 각 원소를 w1과 w5 가운데 작은 값에 해당하는 w1로 감산한 후 w1과 w5 사이의 차이에 해당하는 (w5-w1)로 제산하고, 제3 서브 벡터의 각 원소를 w5와 w10 가운데 작은 값에 해당하는 w5로 감산한 후 w5와 w10 사이의 차이에 해당하는 (w10-w5)으로 제산한다.
도 11은 본 발명에 의한 양자화 장치에 대한 일 실시예를 블록도로 도시한 것으로서, 양자화 장치는 변환부(1100), 벡터 분할부(1105), 제1 양자화부(1110), 선택부(1120), 제2 양자화부(1130), 제3 양자화부(1140) 및 코드북 저장부(1140)를 포함하여 이루어진다.
변환부(1100)는 LPC(Linear Predictive Coding, 선형예측부호화)를 적용하여 입력단자 IN을 통해 입력받은 입력 신호로부터 추출한 선형예측계수를 순서의 성질을 갖는 계수의 벡터로 변환한다. 여기서, 선형예측계수는 입력 신호를 선형 예측(Linear Prediction)하여 추출된 계수를 말한다. 순서의 성질을 갖는 계수의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다.
벡터 분할부(1105)는 변환부(1100)에서 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터로 분할한다. 벡터 분할부(1105)에서 분할되는 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소(element)들에서 기준이 되는 원소로 구성되며, 하위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 상위 서브 벡터를 구성하는 원소들 사이에 각각 존재하는 원소로 구성된다.
도 2를 예로 들어 설명하면, 상위 서브 벡터는 제1 서브 벡터(211)에 해당하며, 하위 서브 벡터들은 제2 서브 벡터(212) 및 제3 서브 벡터(213)에 해당한다. 여기서, 제1 서브 벡터(211)는 원소 w1, w5 및 w10으로 구성되며, 원소 w1과 w5 사이에 존재하는 제2 서브 벡터(212)는 원소 w2, w3 및 w4으로 구성되고, 원소 w5와 w10 사이에 존재하는 제3 서브 벡터(213)는 원소 w6, w7, w8 및 w9으로 구성된다.
제1 양자화부(1110)는 벡터 분할부(1105)에서 분할된 상위 서브 벡터를 벡터 양자화(vector quantization)를 이용하여 양자화하고 코드북 인덱스(codebook index)를 생성한다. 또한, 제1 양자화부(1110)에서는 예측 벡터 양자화(predictive vector quantization) 및 비-예측 벡터 양자화(non-predictive vector quantization)로 실시할 수 있다. 제1 양자화부(1110)에서는 비-예측 벡터 양자화인 MSVQ 또는 Split-VQ로 실시할 수 있으며 이 경우 사용되는 메모리가 절감되어 복잡도를 감소시킬 수 있다.
또한, 제1 양자화부(1110)에서는 1개의 코드북 인덱스를 생성할 수 있지만 순서의 성질을 갖는 계수의 벡터의 최적화된 조합을 구하기 위해 상위 서브 벡터에 대하여 복수의 코드북 인덱스를 생성할 수도 있다.
선택부(1120)는 제1 양자화부(1110)에서 양자화된 상위 서브 벡터의 원소를 이용하여 상위 서브 벡터의 원소가 존재하는 분포에 따라 각 하위 서브 벡터에 가용할 비트(bit)가 할당된 코드북을 코드북 저장부(1140)에서 선택한다. 도 2를 예로 들어 설명하면, 선택부(1120)에서는 상위 서브 벡터인 제1 서브 벡터(211)에 마련된 w1와 w5를 이용하여 하위 서브 벡터인 제2 서브 벡터(212)의 원소가 존재하는 분포를 판단함으로써 하위 서브 벡터인 제2 서브 벡터(212)에 가용할 비트가 할당된 코드북을 제1 멀티-코드북 저장부(1141)에서 선택하고, 상위 서브 벡터인 제1 서브 벡터(211)에 마련된 w5와 w10을 이용하여 하위 서브 벡터인 제3 서브 벡터(213)의 원소가 존재하는 분포를 판단함으로써 하위 서브 벡터인 제3 서브 벡 터(713)에 가용한 비트가 할당된 코드북을 제2 멀터-코드북 저장부(1142)에서 선택한다.
선택부(1120)에서 상위 서브 벡터의 원소를 이용하여 제2 멀티-코드북 저장부(241) 및 제3 멀티-코드북 저장부(242)에서 코드북을 선택하는 실시예로 다음에 기재된 실시예가 있다.
첫째, 제1 양자화부(1110)에서 양자화된 상위 서브 벡터에 마련된 소정의 원소들 사이의 간격에 따라 각 하위 서브 벡터에 가용할 비트가 할당된 코드북을 선택한다. 보다 상세하게 설명하면, 상위 서브 벡터에 마련된 원소들의 간격이 넓다면 그 원소들 사이에 마련된 하위 서브 벡터에는 많은 비트가 할당된 코드북을 선택하고, 상위 서브 벡터에 마련된 원소들의 간격이 좁다면 그 원소들 사이에 마련된 하위 서브 벡터에는 적은 비트를 할당한다.
도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w3과 w6의 간격이 좁아질수록 하위 서브 벡터인 제3 서브 벡터(320)를 양자화하는 데 가용할 비트를 5비트에서 4비트로 줄이고, 제2 서브 벡터(310)를 양자화하는 데 가용할 비트를 5비트에서 6비트로 높인다. 이와 동일한 방식으로 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w6과 w10의 간격이 좁아질수록 하위 서브 벡터인 제4 서브 벡터(330)를 양자화하는 데 가용할 비트를 7비트에서 6비트로 줄이고, 하위 서브 벡터인 제5 서브 벡터(340)를 양자화하는 데 가용할 비트를 6비트에서 7비트로 높인다. 또한, 도 4에 도시된 바와 같이 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소로 w3과 w6의 간격에 따라 제2 서브 벡 터(310)에 가용한 비트가 할당된 코드북을 후술할 제2 멀티-코드북 저장부(1141)에서 선택할 수 있고 제3 서브 벡터(320)에 가용한 비트가 할당된 코드북을 후술한 제3 멀티-코드북 저장부(1142)에서 선택할 수 있다.
그러나 상위 서브 벡터에 마련된 모든 원소들을 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하여야 하는 것은 아니다. 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 마련된 원소들을 정규화하는 동시에 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용하고, 그 외 나머지 원소들은 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용할 수 있다. 도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소인 w3, w6, w10, w14 및 w15 가운데 원소 w3, w10 및 w14는 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하고 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트를 결정하는 데도 이용하고, 원소 w6 및 w15는 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데만 이용할 수 있다.
또한, 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하는 경우, 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 상위 서브 벡터의 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 상위 서브 벡터의 원소(들)에 많은 비트를 할당하여 양자화할 수 있다. 이 때 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하고 별도의 서브 벡터들로 마련하여 split-VQ를 적용함으로써 각각 다른 가용할 비트를 할당하여 양자화할 수 있다.
둘째, 제1 양자화부(1110)에서 양자화된 상위 서브 벡터의 원소들 사이의 간격에 대한 비율에 따라 각 하위 서브 벡터에 가용한 비트가 할당된 코드북을 선택한다. 도 5를 예를 들어 설명하면, s는 상위 서브 벡터의 원소들 사이의 간격에 대한 비율로서 도 2에서 (w5-w0)/(w10-w5)에 해당하는 값이다. 여기서, w5와 w10 사이의 간격에 비하여 w0와 w5의 간격이 점차 증차함에 따라 w0과 w5 사이에 존재하는 제2 서브 벡터(212)에 할당되는 비트가 점차 증가하므로 코드북에 할당되는 비트도 M비트에서 (M+3)비트로 증가하고, 반면에 w5와 w10 사이에 존재하는 제3 서브 벡터(213)에 할당되는 비트는 점차 감소하므로 L비트에서 (L-3)비트로 감소한다.
셋째, 제1 양자화부(1110)에서 양자화된 상위 서브 벡터의 원소들 가운데 소정의 양자화된 원소가 존재하는 범위에 따라 각 하위 서브 벡터에 가용할 비트가 할당된 코드북을 선택한다. 여기서, 소정의 양자화된 원소는 서브 벡터의 원소가 존재하는 분포에 대하여 중요한 영향을 미치는 기준이 되는 원소를 상위 서브 벡터의 원소들 가운데 선택하여 기 설정된다. 도 6에 도시된 바와 같이 x는 w4라고 가정하면, w4가 존재하는 범위에 따라 가용한 비트가 할당된 코드북을 선택한다. 도 2를 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(711)에 포함된 원소인 w1, w5 및 w10가 존재하는 분포를 판단함으로써 제2 서브 벡터(712) 및 제3 서브 벡터(213)에 가용한 비트가 할당된 코드북을 선택한다.
넷째, 전술한 첫째, 둘째 및 셋째 실시예를 적어도 둘 이상 조합하여 실시할 수 있다. 도 3을 예를 들어 설명하면, 제2 서브 벡터(310) 및 제3 서브 벡터(320)에 가용할 비트는 w3과 w6 사이의 간격을 기준으로 결정하고 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트는 w6과 w10 및 w10과 w11 간격 사이의 비율인 (w10-w6)/(w11-w10)을 기준으로 결정할 수 있다.
전술한 실시예에 한정하여 실시해야 하는 것은 아니며 상위 서브 벡터에 마련된 원소의 분포를 이용하는 모든 방식으로 실시할 수 있다.
제2 양자화부(1130)는 선택부(1120)가 제2 멀티-코드북 저장부(1141)에서 선택한 코드북을 이용하여 하위 서브 벡터인 제2 서브 벡터(212)를 양자화함으로써 제2 코드북 인덱스를 생성한다.
제3 양자화부(1131)는 선택부(1120)가 제3 멀티-코드북 저장부(1142)에서 선택한 코드북을 이용하여 하위 서브 벡터인 제3 서브 벡터(213)를 양자화함으로써 제3 코드북 인덱스를 생성한다.
제1 양자화부(1110), 제2 양자화부(1130) 및 제3 양자화부(1131)에서 하위 서브 벡터를 양자화함에 있어서 각 벡터 또는 원소의 중요도에 따라 가중치를 계산하여 가중치에 따라 적응적으로 양자화할 수 있다. 여기서, 가중치를 계산하는 실시예에 있어서 다음에 기재된 두 가지 방식이 있을 수 있다. 첫째, 순서의 특성을 갖는 계수가 각각의 벡터에 따라 중요도가 다르므로 전체 벡터의 관계를 이용한 오버얼 웨이팅(overall weighting)을 계산함으로써 가중치를 계산할 수 있다. 여기서, 오버얼 웨이팅을 결정하는 방식은 종래에 다양한 방식으로 개시되어 있다. 둘째, 동일한 서브벡터 내에서 중요도에 따라 가중치를 계산할 수 있다. 예를 들어, ISF의 경우 마지막에 마련된 원소는 순서의 특성(ordering property)를 따르지 않지만 상위 서브 벡터에 마련된 다른 원소에 비해 상대적으로 중요도가 낮으므로 가중치를 낮게 적용한다. 또한, 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)에 더 많은 가중치를 적용할 수 있다.
그러나 가중치를 이용하지 않고 상위 서브 벡터에 마련된 원소들 가운데 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하고 별도의 서브 벡터들로 마련하여 스플릿 벡터 양자화(split-VQ)를 적용함으로써 각각 다른 가용할 비트를 할당하여 양자화할 수 있다.
코드북 저장부(1140)는 순서의 성질을 갖는 계수의 벡터를 구성하는 각 서브 벡터들의 원소들이 존재하는 분포에 따라 각 서브 벡터에 가용한 비트가 할당된 코드북들을 저장한다. 여기서, 코드북 저장부(1140)는 제2 멀티-코드북 저장부(1141) 및 제3 멀티-코드북 저장부(1142)를 포함하여 이루어진다.
제2 멀티-코드북 저장부(1141)는 하위 서브 벡터인 제2 서브 벡터(212)에 대해 다양한 비트가 할당된 멀티-코드북들을 저장한다. 제3 멀티-코드북 저장부(1142)는 제3 서브 벡터(213)에 대해 다양한 비트가 할당된 멀티-코드북들을 저장한다.
제2 멀티-코드북 저장부(1141) 및 제3 멀티-코드북 저장부(1142)에 저장된 코드북은 다음과 같은 방식에 의하여 저장된다.
첫째, 도 7에 도시된 바와 같이 각 서브 벡터에 가용된 비트에 따라 다양한 코드북을 저장하는 복수의 멀티-코드북들로 구성하여 저장하는 방식이 있다.
둘째, 도 8에 도시된 바와 같이 각 하위 서브 벡터에 가용한 비트를 다르게 할당하는 멀티-코드북들로 구성된 조합들에 해당하는 복수의 클래스(class)들로 구성하여 저장하는 방식이 있다. 여기서, 선택부(1120)는 복수의 클래스들에서 소정의 클래스를 선택하고, 각 하위 서브 벡터에 할당된 비트에 따라 선택된 클래스에서 소정의 코드북을 선택한다. 예를 들어, 전체 사용 가능한 비트가 24비트이고 제1 서브 벡터(211)에서 9비트를 사용한다고 가정하고 제1 클래스(800)와 제4 클래스(803)가 선택될 경우 제1 클래스(800)에서는 5비트가 할당된 제1 멀티-코드북이 선택되고 제4 클래스(803)에서는 10비트가 할당된 제1 멀티-코드북이 선택된다. 또한, 제1 클래스(800)와 제6 클래스(805)가 선택되면 제1 클래스(800)에서는 7비트가 할당된 제3 멀티-코드북이 선택되고 제6 클래스(805)에서는 8비트가 할당된 제9 멀티 코드북이 선택된다.
코드북 저장부(1140)에서 저장되는 코드북은 정규화하여 실시할 수 있다. 여 기서, 정규화된 코드북은 상위 서브 벡터의 원소 사이에 존재하는 하위 서브 벡터에 마련된 각 원소를 상위 서브 벡터의 원소 가운데 작은 값으로 감산한 후, 상위 서브 벡터의 원소 사이의 차이에 해당하는 값으로 제산하여 정규화한다. 도 2를 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(211)를 구성하는 원소인 w1, w5 및 w10에서 w1과 w5 사이에 마련된 제2 서브 벡터(212)의 각 코드워드를 w1과 w5 가운데 작은 값에 해당하는 w1로 감산한 후 w1과 w5 사이의 차이에 해당하는 (w5-w1)으로 제산하고, 제3 서브 벡터(213)의 각 원소를 w5와 w10 가운데 작은 값에 해당하는 w5로 감산한 후 w5와 w10 사이의 차이에 해당하는 (w10-w5)으로 제산한다. 그러나 반드시 이에 한정하여야 하는 것은 아니며 공지된 모든 정규화 방식을 이용하여 실시할 수 있다.
제2 양자화부(1130) 및 제3 양자화부(1140)에서 정규화된 코드북을 이용하여 양자화함에 있어서, 선택부(1120)에서 선택된 코드북의 각 코드워드 값에 양자화된 상위 서브 벡터의 원소 사이의 차이에 해당하는 값으로 승산한 후 상위 서브 벡터의 원소 가운데 작은 값으로 가산하고, 가장 작은 왜곡을 갖는 코드북 인덱스를 검출한다.
제1 양자화부(1110)에서 생성된 복수의 코드북 인덱스에 대하여 반복하여 수행함으로써 복수의 코드북 인덱스 가운데 가장 왜곡(distortion)이 작은 코드북 인덱스를 검출한다. 이렇게 검출된 복수의 제1 서브 벡터(211)의 코드북 인덱스 가운데 가장 왜곡이 작은 코드북 인덱스를 검출하고, 그 코드북 인덱스에 상응하는 제2 서브 벡터(212)의 코드북 인덱스와 제3 서브 벡터(213)의 코드북 인덱스를 검 출한다.
다중화부(1150)는 제1 양자화부(1110), 제2 양자화부(1130) 및 제3 양자화부(1131)에서 양자화된 결과 및 정규화 정보를 포함하여 다중화함으로써 비트스트림을 생성하여 출력단자 OUT을 통해 출력한다.
도 12는 본 발명에 의한 역양자화 장치에 대한 일 실시예를 블록도로 도시한 것으로서, 역양자화 장치는 역다중화부(1200), 제1 역양자화부(1210), 선택부(1220), 제2 역양자화부(1230), 제3 역양자화부(1231), 코드북 저장부(1240), 벡터 합성부(1250) 및 역변환부(1260)를 포함하여 이루어진다.
역다중화부(1200)는 입력단자 IN을 통해 비트스트림을 입력받아 역다중화한다. 역다중화부(1200)에서는 부호화단에서 LPC(Linear Predictive Coding, 선형예측부호화) 방식에 의해 추출된 선형예측계수로부터 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터들로 분할하여 양자화함으로써 생성된 코드북 인덱스 및 정규화 정보를 포함하여 역다중화한다. 여기서, 순서의 성질을 갖는 계수의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다. 또한, 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 기준이 되는 원소로 구성되며, 하위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 상위 서브 벡터를 구성하는 원소들 사이에 각각 존재하는 원소로 구성된다.
제1 역양자화부(1210)는 역다중화부(1200)에서 역다중화된 상위 서브 벡터의 코드북 인덱스를 이용하여 상위 서브 벡터를 역양자화한다. 예를 들어, 제1 역양 자화부(1210)에서는 예측 벡터 역양자화(predictive vector dequantization) 및 비-예측 벡터 역양자화(non-predictive vector dequantization)로 역양자화를 실시할 수 있다. 제910단계에서는 비-예측 벡터 역양자화인 MSVQ 또는 Split-VQ로 실시할 수 있으며 이 경우 사용되는 메모리가 절감되어 복잡도를 감소시킬 수 있다.
선택부(1220)는 제1 역양자화부(1210)에서 역양자화된 상위 서브 벡터의 원소를 이용하여 하위 서브 벡터의 코드북을 선택한다.
제2 역양자화부(1230)는 선택부(1220)에서 선택된 코드북을 제2 멀티-코드북 저장부(1241)에 저장된 멀티-코드북에서 독출함으로써 하위 서브 벡터인 제2 서브 벡터(212)의 코드북 인덱스에 대응하는 코드 벡터를 선택하여 역양자화한다.
제3 역양자화부(1231)는 선택부(1220)에서 선택된 코드북을 제3 멀티-코드북 저장부(1242)에 저장된 멀티 코드북에서 독출함으로써 하위 서브 벡터인 제3 서브 벡터(213)의 인덱스에 대응하는 코드 벡터를 선택하여 역양자화한다.
제2 역양자화부(1230) 및 제3 역양자화부(1231)에서 역양자화하는 데 사용하는 코드북이 정규화된 코드북일 경우 제2 역양자화부(1230) 및 제3 역양자화부(1231)에서는 역양자화된 하위 서브 벡터들의 원소들을 역정규화한다. 제2 역양자화부(1230) 및 제3 역양자화부(1231)에서 역정규화함에 있어서 역다중화부(1200)에서 역다중화된 정규화 정보를 이용할 수 있다.
코드북 저장부(1240)는 순서의 성질을 갖는 계수의 벡터를 구성하는 각 서브 벡터들의 원소들이 존재하는 분포에 따라 각 하위 서브 벡터에 가용한 비트가 할당된 코드북들을 저장한다. 여기서, 코드북 저장부(1240)는 제2 멀티-코드북 저장 부(1241) 및 제3 멀티-코드북 저장부(1242)를 포함하여 이루어진다.
제2 멀티-코드북 저장부(1241)는 하위 서브 벡터인 제2 서브 벡터(212)에 대한 멀티-코드북들을 저장한다. 제3 멀티-코드북 저장부(1242)는 제3 서브 벡터(213)에 대한 멀티-코드북들을 저장한다.
제2 멀티-코드북 저장부(1241) 및 제3 멀티-코드북 저장부(1242)에 저장된 코드북은 다음과 같은 방식에 의하여 저장된다.
첫째, 도 7에 도시된 바와 같이 각 서브 벡터에 가용된 비트에 따라 다양한 코드북을 저장하는 복수의 멀티-코드북들로 구성하여 저장하는 방식이 있다.
둘째, 도 8에 도시된 바와 같이 각 하위 서브 벡터에 가용한 비트를 다르게 할당하는 멀티-코드북들로 구성된 조합들에 해당하는 복수의 클래스(class)들로 구성하여 저장하는 방식이 있다.
코드북 저장부(1240)에서 저장되는 코드북은 정규화하여 실시할 수 있다. 여기서, 정규화된 코드북은 상위 서브 벡터의 원소 사이에 존재하는 하위 서브 벡터에 마련된 각 원소를 상위 서브 벡터의 원소 가운데 작은 값으로 감산한 후, 상위 서브 벡터의 원소 사이의 차이에 해당하는 값으로 제산하여 정규화된다. 도 2를 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(211)를 구성하는 원소인 w1, w5 및 w10에서 w1과 w5 사이에 마련된 제2 서브 벡터(212)의 각 코드워드를 w1과 w5 가운데 작은 값에 해당하는 w1로 감산한 후 w1과 w5 사이의 차이에 해당하는 (w5-w1)으로 제산하고, 제3 서브 벡터(213)의 각 원소를 w5와 w10 가운데 작은 값에 해당하는 w5로 감산한 후 w5와 w10 사이의 차이에 해당하는 (w10-w5)으로 제산 한다. 그러나 반드시 이에 한정하여야 하는 것은 아니며 공지된 모든 정규화 방식을 이용하여 실시할 수 있다.
서브벡터 합성부(1250)는 제1 역양자화부(1210)에서 역양자화된 상위 서브 벡터와 제2 역양자화부(1230) 및 제3 역양자화부(1231)에서 역양자화된 하위 서브 벡터들을 합성하여 순서의 성질을 갖는 계수를 복원한다.
역변환부(1260)는 서브벡터 합성부(1250)에서 복원된 순서의 성질을 갖는 계수를 LPC 계수로 역변환하여 출력단자 OUT을 통해 출력한다.
도 13은 본 발명의 실시예에서 이용되는 코드북을 생성하는 장치에 대한 일 실시예를 블록도로 도시한 것으로서, 변환부(1300), 벡터 분할부(1305), 제1 LBG알고리즘 처리부(1310), 제1 코드북 저장부(1320), 분류부(1330), 제2 서브벡터 분류부(1340), 제3 서브벡터 분류부(1341), 제2 데이터베이스 저장부(1350), 제3 데이터베이스 저장부(1351), 제2 LBG알고리즘 처리부(1360), 제3 LBG알고리즘 처리부(1361), 제2 코드북 저장부(1370) 및 제3 코드북 저장부(1371)를 포함하여 이루어진다.
변환부(1300)는 트레이닝(training) 데이터베이스로부터 LPC(Linear Predictive Coding, 선형예측부호화) 계수를 입력받아 순서의 성질을 갖는 계수의 벡터로 변환한다. 여기서, 순서의 성질을 갖는 계수의 예로 LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair)가 있다.
벡터 분할부(1305)는 변환부(1300)에서 변환된 순서의 성질을 갖는 계수의 벡터를 상위 서브 벡터와 하위 서브 벡터로 분할한다. 벡터 분할부(1305)에서 분할되는 상위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들에서 기준이 되는 원소로 구성되며, 하위 서브 벡터는 순서의 성질을 갖는 계수의 벡터의 원소들 가운데 상위 서브 벡터를 구성하는 원소들 사이에 각각 존재하는 원소로 구성된다.
벡터 분할부(1305)에서 분할하는 상위 서브 벡터는 다음과 같은 사항을 고려하여 설정한다. 여기서, 일반적으로 협대역 스피치 코덱(Narrowband Speech Codec)은 10차를 이용하고, 광대역 스피치 코덱(Wideband Speech Codec)은 16차 또는 그 이상을 사용한다.
첫째, 최대 벡터 양자화 차원(Dimension)을 10차의 경우 4이하로 하고, 16차의 경우 6이하로 한다. 왜냐하면 벡터 양자화 차원이 4 또는 6을 초과하면, 코드북의 크기가 너무 커지고 정규화된 코드북의 성능이 저하된다. 둘째, 정규화를 시켜주는 상위 서브 벡터의 원소의 개수를 10차의 경우 3이하로 하고, 16차의 경우 5이하로 한다. 그러나 정규화를 시켜주는 상위 서브 벡터에 마련된 원소의 최대 개수는 10차의 경우 4이하로 할 수 있고, 16차의 경우 6이하로 할 수 있다. 이는 상위 서브 벡터의 원소가 수행되는 개수가 많을 경우 벡터 양자화의 성능이 저하되고 인접한 원소 사이의 인트라-프레임 상관도(Intra-frame Correlation)를 이용하기 어렵기 때문이다. 셋째, 상위 서브 벡터는 상위 서브 벡터의 원소들 간의 인트라-프레임 상관도가 최대가 될 수 있도록 구성된다. 왜냐하면 원소들 사이의 간격이 커지면 정규화된 코드북의 성능이 저하된다. 넷째, 상위 서브 벡터는 하위 서브 벡터의 양단에 상위 서브 벡터의 원소가 마련되도록 구성된다. 이는 상위 서브 벡 터의 원소들 사이에 하위 서브 벡터가 마련된 경우가 하위 서브 벡터의 한쪽에만 상위 서브 벡터의 원소가 마련된 경우 보다 정규화된 코드북의 성능이 우수하기 때문이다. 다섯째, 상위 서브 벡터는 상위 서브 벡터의 원소가 연속하지 않도록 구성된다. 왜냐하면 상위 서브 벡터의 원소를 중심으로 양단에 존재하는 하위 서브 벡터에 가용한 비트를 효율적으로 분배하기 위해서이다.
제1 LBG알고리즘 처리부(1310)는 벡터 분할부(1300)에서 분할된 상위 서브 벡터인 제1 서브 벡터(211)에 대해 LBG 알고리즘을 이용하여 코드북을 생성한다.
제1 코드북 저장부(1320)는 제1 LBG알고리즘 처리부(1310)에서 생성된 제1 서브 벡터(211)에 대한 코드북을 저장한다.
분류부(1330)는 벡터 분할부(1305)에서 분할된 상위 서브 벡터의 원소들을 이용하여 하위 서브 벡터인 제2 서브 벡터(212) 및 제3 서브 벡터(213)에 가용한 비트를 할당하여 분류한다.
분류부(1330)에서 가용한 비트를 하위 서브 벡터에 할당하여 분류하는 방식으로 다음에 기재된 예가 있다. 그러나 후술하는 예에 한정하여 실시해야 하는 것은 아니며 상위 서브 벡터에 마련된 원소들의 분포를 이용하는 모든 방식으로 실시할 수 있다.
첫째, 상위 서브 벡터에 마련된 소정의 원소들 사이의 간격에 따라 각 하위 서브 벡터에 가용할 비트를 할당하여 분류한다. 보다 상세하게 설명하면, 상위 서브 벡터에 마련된 원소들의 간격이 넓을수록 그 원소들 사이에 마련된 하위 서브 벡터에는 많은 비트를 할당하고, 상위 서브 벡터에 마련된 원소들의 간격이 좁을수 록 그 원소들 사이에 마련된 하위 서브 벡터에는 적은 비트를 할당한다.
도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w3과 w6의 간격이 좁아질수록 제3 서브 벡터(320)를 양자화하는 데 가용할 비트를 5비트에서 4비트로 줄이고, 제2 서브 벡터(310)를 양자화하는 데 가용할 비트를 5비트에서 6비트로 높인다. 이와 동일한 방식으로 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소들인 w6과 w10의 간격이 좁아질수록 제4 서브 벡터(330)를 양자화하는 데 가용할 비트를 7비트에서 6비트로 줄이고, 제5 서브 벡터(340)를 양자화하는 데 가용할 비트를 6비트에서 7비트로 높인다.
그러나 상위 서브 벡터에 마련된 모든 원소들을 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하여야 하는 것은 아니다. 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 마련된 원소들을 정규화하는 동시에 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용하고, 그 외 나머지 원소들은 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용할 수 있다. 도 3을 예를 들어 설명하면, 상위 서브 벡터인 제1 서브 벡터(300)에 포함된 원소인 w3, w6, w10, w14 및 w15 가운데 원소 w3, w10 및 w14는 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데도 이용하고 제2 서브 벡터(310), 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 가용할 비트를 결정하는 데도 이용하고, 원소 w6, w15는 제3 서브 벡터(320), 제4 서브 벡터(330) 및 제5 서브 벡터(340)에 마련된 원소들을 정규화하는 데만 이용할 수 있다.
또한, 상위 서브 벡터에 마련된 일부 원소들만 하위 서브 벡터에 가용할 비트를 결정하는 데 이용하는 경우, 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들) 보다 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)에 많은 비트를 할당한다. 이 때 하위 서브 벡터에 마련된 원소들을 정규화하는 데도 이용하고 각 하위 서브 벡터에 가용할 비트를 결정하는 데도 이용되는 원소(들)과 하위 서브 벡터에 마련된 원소들을 정규화하는 데만 이용하는 원소(들)을 각각 분할하여 별도의 서브 벡터로 마련함으로써 각각 다른 가용한 비트를 할당할 수 있다.
둘째, 상위 서브 벡터의 원소들 사이의 간격에 대한 비율에 따라 각 하위 서브 벡터에 가용한 비트를 할당하여 분류한다. 예를 들어, 도 2에서 (w5-w0)/(w10-w5)에 해당하는 값이다. 여기서, w5와 w10 사이의 간격에 비하여 w0와 w5의 간격이 점차 증차함에 따라 w0과 w5 사이에 존재하는 제2 서브 벡터(212)에 할당되는 비트가 점차 증가하도록 하고, 반면에 w5와 w10 사이에 존재하는 제3 서브 벡터(213)에 할당되는 비트는 점차 감소하도록 한다.
셋째, 상위 서브 벡터의 원소들 가운데 소정의 양자화된 원소가 존재하는 범위에 따라 각 하위 서브 벡터에 가용한 비트를 할당하여 분류한다. 여기서, 소정의 양자화된 원소는 서브 벡터의 원소가 존재하는 분포에 대하여 중요한 영향을 미치는 기준이 되는 원소를 상위 서브 벡터의 원소들 가운데 선택한다. 예를 들어, 선택된 원소를 x는 w4라고 가정하면, w4가 존재하는 범위에 따라 가용한 비트가 할 당된 코드북을 선택한다.
넷째, 전술한 첫째, 둘째 및 셋째 실시예를 적어도 둘 이상 조합하여 실시할 수 있다.
제2 서브벡터 분류부(1340)는 분류부(1330)에서 분류된 결과를 이용하여 하위 서브 벡터인 제2 서브 벡터(212)를 제2 데이터베이스 저장부(1350)에 구분하여 저장한다.
제3 서브벡터 분류부(1341)는 분류부(1330)에서 분류된 결과를 이용하여 하위 서브 벡터인 제3 서브 벡터(213)를 제3 데이터베이스 저장부(1351)에 구분하여 저장한다.
제2 LBG알고리즘 처리부(1360)는 제2 데이터베이스 저장부(1350)에 구분되어 저장된 제2 서브 벡터(212)에 대해 LBG 알고리즘을 이용하여 코드북을 생성한다.
제3 LBG알고리즘 처리부(1361)는 제3 데이터베이스 저장부(1351)에 구분되어 저장된 제3 서브 벡터(213)에 대해 LBG 알고리즘을 이용하여 코드북을 생성한다.
제2 코드북 저장부(1370)는 제2 LBG알고리즘 처리부(1360)에서 생성된 제2 서브 벡터(212)에 대한 코드북을 저장한다.
제3 코드북 저장부(1371)는 제3 LBG알고리즘 처리부(1361)에서 생성된 제3 서브 벡터(213)에 대한 코드북을 저장한다.
제2 데이터베이스 저장부(1350) 및 제3 데이터베이스 저장부(1351)는 양자화된 제1 서브 벡터(211)의 원소들의 값을 이용하여 정규화되는 것이 바람직하다. 여기서, 정규화는 상위 서브 벡터의 원소 사이에 존재하는 하위 서브 벡터의 각 코 드워드를 상위 서브 벡터의 원소 가운데 작은 값으로 감산한 후, 상위 서브 벡터의 원소 사이의 차이에 해당하는 값을 제산하여 이루어진다. 도 2를 예로 들어 설명하면, 상위 서브 벡터를 구성하는 원소인 w1, w5 및 w10에서 w1과 w5 사이에 마련된 제2 서브 벡터의 각 코드워드를 w1과 w5 가운데 작은 값에 해당하는 w1로 감산한 후 w1과 w5 사이의 차이에 해당하는 (w5-w1)로 제산하고, 제3 서브 벡터의 각 원소를 w5와 w10 가운데 작은 값에 해당하는 w5로 감산한 후 w5와 w10 사이의 차이에 해당하는 (w10-w5)으로 제산한다.
도 14는 본 발명에 의한 양자화 장치에 대한 일 실시예를 블록도로 도시한 것이다. 도 14에서는 순서의 성질을 갖는 계수의 p차 벡터
Figure 112008000143459-pat00001
가 다음 기재된 수학식 1과 같이 구성되어 있다고 가정한다.
[수학식 1]
Figure 112008000143459-pat00002
단,
Figure 112008000143459-pat00003
이다.
벡터 분할부(1400)는 LPC 계수로부터 변환된 순서의 성질을 갖는 계수의 p차 벡터를 N개의 서브 벡터들로 분할한다. 순서의 성질을 갖는 계수의 p차 벡터를 N개의 서브 벡터로 분할함에 있어서, 벡터 분할부(1400)는 도 15 및 다음 기재된 수학식 2와 같이 상위 서브 벡터인
Figure 112008000143459-pat00004
와 하위 서브 벡터들인
Figure 112008000143459-pat00005
으로 분할한다.
[수학식 2]
Figure 112008000143459-pat00006
단,
Figure 112008000143459-pat00007
Figure 112008000143459-pat00008
이다.
제0 벡터 양자화부(1410)는 벡터 분할부(1400)에서 분할된 상위 서브 벡터인
Figure 112008000143459-pat00009
를 벡터 양자화하여
Figure 112008000143459-pat00010
가 양자화된 결과인
Figure 112008000143459-pat00011
를 출력하고, 코드북 인덱스를 생성한다.
제1 내지 제(M-1) 코드북 선택부(1420 내지 1429)는 제0 벡터 양자화부(1410)에서 양자화된 상위 서브 벡터
Figure 112008000143459-pat00012
의 원소
Figure 112008000143459-pat00013
가 존재하는 분포에 따라 각 서브 벡터에 가용한 비트를 계산하고, 계산된 비트에 대응하는 정규화된 코드북을 기 저장된 멀티 코드북에서 선택한다. 예를 들어, 제1 코드북 선택부(1420)는
Figure 112008000143459-pat00014
Figure 112008000143459-pat00015
사이의 길이에 따라 하위 서브 벡터
Figure 112008000143459-pat00016
의 정규화된 코드북을 멀티 코드북에서 선택한다. 그리고 상위 서브 벡터
Figure 112008000143459-pat00017
에 포함되는 원소의 개수는 (N-2)개로 고정되어 있으므로 상위 서브 벡터
Figure 112008000143459-pat00018
에 할당되는 비트는 변하지 않는 상수이다. 제1 내지 제(M-1) 코드북 선택부(1420 내지 1429)에서 각 서브 벡터에 가용한 비트를 다음에 기재된 방법에 의하여 계산한다.
각 하위 서브 벡터
Figure 112008000143459-pat00019
에 할당되는 비트를 결정하는 기준인 상위 서브 벡터에 포함된 원소들 사이의 길이인
Figure 112008000143459-pat00020
은 다음 기재된 수학식 3에 의해 계산한다.
[수학식 3]
Figure 112008000143459-pat00021
여기서,
Figure 112008000143459-pat00022
내지
Figure 112008000143459-pat00023
의 합은
Figure 112008000143459-pat00024
이다.
최적화된 코드 워드를 검색하기 위해서 실제 서브 벡터 V와 근사 벡터 V'는 다음 기재된 수학식 4에 의해 정의된다.
[수학식 4]
Figure 112008000143459-pat00025
여기서, 가변적인 가중치를 적용하는 벡터 W는 다음 기재된 수학식 5에 의하여 정의된다.
[수학식 5]
Figure 112008000143459-pat00026
여기서, i는 1이상 (p-1)이하이며,
Figure 112008000143459-pat00027
는 다음 기재된 수학식 5에 의하여 계산한다.
[수학식 6]
Figure 112008000143459-pat00028
제1 내지 제(M-1) 정규화부(1430 내지 1439)는 제0 벡터 양자화부(1410)에서 양자화된 결과인
Figure 112008000143459-pat00029
를 이용하여 하위 서브 벡터의 원소를 다음 기재된 수학식 7에 의하여 정규화한다.
[수학식 7]
Figure 112008000143459-pat00030
제1 내지 제(M-1) 벡터 양자화부(1411 내지 1419)는 제1 내지 제(M-1) 코드북 선택부(1420 내지 1429)에서 선택된 코드북에서 제1 내지 제(M-1) 정규화부(1430 내지 1439)에서 정규화된 값에 대응하는 코드 워드를 검색하여 벡터 양자화한다.
이러한 본 발명에 대한 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
또한, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장 치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장 장치 등이 있다.
도 1은 본 발명에 의한 양자화 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
도 2은 순서의 성질을 갖는 계수의 벡터가 서브 벡터로 분할된 일 실시예를 개념도로 도시한 것이다.
도 3은 서브 벡터의 원소가 존재하는 분포에 따라 비트를 할당하는 일 실시예를 개념도로 도시한 것이다.
도 4는 서브 벡터들의 간격을 기준으로 각 서브 벡터에 가용한 비트를 할당한 코드북의 일 실시예를 개념도로 도시한 것이다.
도 5은 코드북을 분류하는 방식의 일 실시예를 개념도로 도시한 것이다.
도 6는 코드북을 분류하는 방식의 다른 일 실시예를 개념도로 도시한 것이다.
도 7은 코드북이 저장된 방식의 일 실시예를 개념도로 도시한 것이다.
도 8은 코드북이 저장된 방식의 다른 일 실시예를 개념도로 도시한 것이다.
도 9는 본 발명에 의한 역양자화 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
도 10은 본 발명의 실시예에서 이용하는 코드북을 생성하는 방법에 대한 일 실시예를 흐름도로 도시한 것이다.
도 11은 본 발명에 의한 양자화 장치에 대한 일 실시예를 블록도로 도시한 것이다.
도 12는 본 발명에 의한 역양자화 장치에 대한 일 실시예를 블록도로 도시한 것이다.
도 13은 본 발명의 실시예에서 이용되는 코드북을 생성하는 장치에 대한 일 실시예를 블록도로 도시한 것이다.
도 14는 본 발명에 의한 선형예측계수의 양자화 장치에 대한 일 실시예를 블록도로 도시한 것이다.
도 15은 LPC 계수로부터 변환된 순서의 성질을 갖는 계수의 p차 벡터를 N개의 서브 벡터들로 분할한 일 실시예를 개념도로 도시한 것이다.

Claims (25)

  1. 선형예측계수를 순서의 성질을 갖는 계수로 변환하는 단계;
    상기 변환된 계수의 벡터를 서브 벡터들로 분할하는 단계; 및
    상기 분할된 서브 벡터들을 양자화하는 단계를 포함하고,
    상기 서브 벡터들은 상기 순서의 성질을 갖는 계수의 벡터에 포함된 원소들 가운데 기준이 되는 원소들로 구성된 제1 서브 벡터와 상기 기준이 되는 원소들 사이에 각각 존재하는 원소들로 구성된 제2 서브 벡터들로 구성되고, 상기 제2 서브 벡터보다 상기 제1 서브 벡터에 더 많은 비트를 할당하여 양자화하는 것을 특징으로 하는 양자화 방법.
  2. 제1항에 있어서, 상기 양자화하는 단계에서
    상기 각 서브 벡터에 상기 분할된 서브 벡터들 사이의 간격과 상기 간격에 대한 비율 중 적어도 하나를 기준으로 하여 상기 각 서브 벡터에 가용한 비트를 할당하는 것을 특징으로 하는 양자화 방법.
  3. 제2항에 있어서, 상기 양자화하는 단계에서
    상기 각 서브 벡터에 가용한 비트를 할당하는 기준에 상기 분할된 서브 벡터들 가운데 소정의 양자화된 원소가 마련된 범위를 추가하는 것을 특징으로 하는 양자화 방법.
  4. 제1항에 있어서, 상기 양자화하는 단계는
    상기 각 서브 벡터에 가용한 비트가 할당된 코드북(codebook)을 선택하는 단계; 및
    상기 선택된 코드북에 의해 상기 분할된 서브 벡터들을 양자화하는 단계를 포함하는 것을 특징으로 하는 양자화 방법.
  5. 제4항에 있어서, 상기 코드북은
    정규화된 것을 특징으로 하는 양자화 방법.
  6. 제1항에 있어서, 상기 양자화하는 단계는
    상기 분할된 서브 벡터들을 정규화하여 양자화하는 것을 특징으로 하는 양자화 방법.
  7. 삭제
  8. 제1항에 있어서, 상기 제1 서브 벡터는
    상기 제2 서브 벡터들에 마련된 원소들을 정규화하는 데 이용하거나 상기 각 제2 서브 벡터에 가용한 비트를 할당하는 데 이용되는 것을 특징으로 하는 양자화 방법.
  9. 제8항에 있어서, 상기 양자화하는 단계는
    상기 정규화하는 데만 이용되는 원소(들) 보다 상기 가용한 비트를 할당하는 데도 이용되는 원소(들)에 보다 많은 비트를 할당하여 양자화하는 것을 특징으로 하는 양자화 방법.
  10. 제1항에 있어서, 상기 양자화하는 단계는
    상기 분할된 각 서브 벡트의 간격에 비례하여 상기 각 서브 벡터에 가용한 비트를 할당하여 양자화하는 것을 특징으로 하는 양자화 방법.
  11. 삭제
  12. 삭제
  13. 제1항에 있어서, 상기 순서의 성질을 갖는 계수는
    LSF(Line Spectrum Frequency), LSP(Line Spectral Pair), ISF(Immittance Spectral Frequencies) 및 ISP(Immittance Spectral Pair) 중 어느 하나인 것을 특징으로 하는 양자화 방법.
  14. 양자화된 서브 벡터들을 역양자화하는 단계;
    상기 역양자화된 서브 벡터들을 합성하여 순서의 성질을 갖는 계수를 복원하는 단계; 및
    상기 복원된 계수를 선형예측계수로 역변환하는 단계를 포함하고,
    상기 서브 벡터들은 상기 순서의 성질을 갖는 계수의 벡터에 포함된 원소들 가운데 기준이 되는 원소들로 구성된 제1 서브 벡터와 상기 기준이 되는 원소들 사이에 각각 존재하는 원소들로 구성된 제2 서브 벡터들로 구성되고, 상기 제2 서브 벡터보다 상기 제1 서브 벡터에 더 많은 비트를 할당하여 역양자화하는 것을 특징으로 하는 역양자화 방법.
  15. 제14항에 있어서, 상기 서브 벡터의 간격과 상기 간격에 대한 비율 중 적어도 하나를 기준으로 하여 상기 서브 벡터에 가용한 비트가 할당되는 것을 특징으로 하는 역양자화 방법.
  16. 제15항에 있어서, 상기 기준에
    상기 서브 벡터들 가운데 소정의 양자화된 원소가 마련된 범위를 추가하는 것을 특징으로 하는 역양자화 방법.
  17. 제14항에 있어서, 상기 역양자화하는 단계는
    상기 서브 벡터를 양자화하는 데 이용된 코드북에 대응하는 코드북을 선택하 는 단계; 및
    상기 선택된 코드북에 의해 상기 서브 벡터들을 역양자화하는 단계를 포함하는 것을 특징으로 하는 역양자화 방법.
  18. 제17항에 있어서, 상기 코드북은
    정규화된 것을 특징으로 하는 역양자화 방법.
  19. 제14항에 있어서, 상기 역양자화하는 단계는
    상기 양자화된 서브 벡터들을 역양자화하고 역정규화하는 것을 특징으로 하는 역양자화 방법.
  20. 삭제
  21. 제14항에 있어서, 상기 제1 서브 벡터는
    상기 제2 서브 벡터들에 마련된 원소들을 정규화하는 데 이용하거나 상기 각 제2 서브 벡터에 가용한 비트를 할당하는 데 이용되는 것을 특징으로 하는 역양자화 방법.
  22. 제21항에 있어서,
    상기 정규화하는 데만 이용되는 원소(들) 보다 상기 가용한 비트를 할당하는 데도 이용되는 원소(들)에 보다 많은 비트가 할당된 것을 특징으로 하는 역양자화 방법.
  23. 삭제
  24. 삭제
  25. 제14항에 있어서, 상기 순서의 성질을 갖는 계수는
    LSF, LSP, ISF 및 ISP 중 어느 하나인 것을 특징으로 하는 역양자화 방법.
KR1020080000163A 2008-01-02 2008-01-02 양자화 및 역양자화 방법 및 장치 KR101512320B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080000163A KR101512320B1 (ko) 2008-01-02 2008-01-02 양자화 및 역양자화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080000163A KR101512320B1 (ko) 2008-01-02 2008-01-02 양자화 및 역양자화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090074395A KR20090074395A (ko) 2009-07-07
KR101512320B1 true KR101512320B1 (ko) 2015-04-23

Family

ID=41331690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080000163A KR101512320B1 (ko) 2008-01-02 2008-01-02 양자화 및 역양자화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101512320B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202215237A (zh) * 2020-09-02 2022-04-16 美商賽發馥股份有限公司 向量運算記憶體保護

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322706B1 (ko) 1995-09-25 2002-06-20 윤종용 선형예측부호화계수의부호화및복호화방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322706B1 (ko) 1995-09-25 2002-06-20 윤종용 선형예측부호화계수의부호화및복호화방법

Also Published As

Publication number Publication date
KR20090074395A (ko) 2009-07-07

Similar Documents

Publication Publication Date Title
US10339948B2 (en) Method and apparatus for encoding and decoding high frequency for bandwidth extension
US10811022B2 (en) Apparatus and method for encoding/decoding for high frequency bandwidth extension
JP5343098B2 (ja) スーパーフレーム構造のlpcハーモニックボコーダ
EP2101318B1 (en) Encoding device, decoding device and corresponding methods
EP2617033B1 (en) Apparatus and method for encoding audio signals
KR100304092B1 (ko) 오디오 신호 부호화 장치, 오디오 신호 복호화 장치 및 오디오 신호 부호화/복호화 장치
CA2853987C (en) Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
JP6542796B2 (ja) 線形予測係数量子化方法及びその装置、並びに線形予測係数逆量子化方法及びその装置
JP3344962B2 (ja) オーディオ信号符号化装置、及びオーディオ信号復号化装置
EP1047047A2 (en) Audio signal coding and decoding methods and apparatus and recording media with programs therefor
WO2007132750A1 (ja) Lspベクトル量子化装置、lspベクトル逆量子化装置、およびこれらの方法
KR20130047643A (ko) 통신 시스템에서 신호 코덱 장치 및 방법
JPWO2007114290A1 (ja) ベクトル量子化装置、ベクトル逆量子化装置、ベクトル量子化方法及びベクトル逆量子化方法
KR20220067003A (ko) 선형예측계수 양자화방법 및 장치와 역양자화 방법 및 장치
JPWO2002052732A1 (ja) 符号化装置および復号装置
JP2000338998A (ja) オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記録媒体
EP2490216B1 (en) Layered speech coding
KR100651712B1 (ko) 광대역 음성 부호화기 및 그 방법과 광대역 음성 복호화기및 그 방법
KR101393301B1 (ko) 선형예측계수의 양자화 및 역양자화 방법 및 장치
KR20060124568A (ko) 잔차 신호 부호화 및 복호화 장치와 그 방법
KR101512320B1 (ko) 양자화 및 역양자화 방법 및 장치
EP0871158A2 (en) System for speech coding using a multipulse excitation
RU2464650C2 (ru) Устройство и способ кодирования, устройство и способ декодирования
EP2490217A1 (en) Encoding device, decoding device and methods therefor
KR20210133554A (ko) 선형 예측 코딩을 이용한 오디오 신호의 부호화 및 복호화 방법과 이를 수행하는 부호화기 및 복호화기

Legal Events

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

Payment date: 20180329

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee