KR19980034878A - 가중치를 가진 벡터 양자화 장치 및 방법 - Google Patents

가중치를 가진 벡터 양자화 장치 및 방법 Download PDF

Info

Publication number
KR19980034878A
KR19980034878A KR1019960053079A KR19960053079A KR19980034878A KR 19980034878 A KR19980034878 A KR 19980034878A KR 1019960053079 A KR1019960053079 A KR 1019960053079A KR 19960053079 A KR19960053079 A KR 19960053079A KR 19980034878 A KR19980034878 A KR 19980034878A
Authority
KR
South Korea
Prior art keywords
subvector
quantization
vector
codebook
index
Prior art date
Application number
KR1019960053079A
Other languages
English (en)
Inventor
박성희
김연배
Original Assignee
김광호
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김광호, 삼성전자 주식회사 filed Critical 김광호
Priority to KR1019960053079A priority Critical patent/KR19980034878A/ko
Publication of KR19980034878A publication Critical patent/KR19980034878A/ko

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 양자화해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 입력벡터를 여러개의 서브벡터들로 나누고, 각 서브벡터를 양자화할 때 할당하는 양자화 비트의 수를 달리하는 가중치를 가진 벡터 양자화 장치에 관한 것으로서, 가중치를 가진 벡터 양자화 장치는 심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산하여 주는 허용가능 잡음 계산부; 입력벡터를 서브벡터로 분할하여 주는 서브벡터 분할부; 각 서브벡터별로 코드북에서 서브벡터와 가장 근접한 코드벡터를 지닌 항목의 인덱스와 상기 항목에 포함된 평균 MSE를 찾고,상기 항목에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 n개의 서브벡터 양자화부; 및 전체 양자화 잡음값이 허용가능한 잡음보다 크면, n개의 서브벡터 양자화부에서 전달된 평균 MSE를 비교하여 추가로 양자화 비트를 할당할 서브벡터 양자화부를 선택하는 양자화 비트 할당부를 포함함을 특징으로 한다.
본 발명에 의하면, 벡터 양자화에서 양자화해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 여러개의 서브벡터들을 양자화할 때 할당하는 비트의 수를 달리하여 벡터의 크기가 작은 경우에 발생하는 성능의 저하를 보완함으로써, 상대적으로 작은 저장공간과 복잡성을 지닌 코드북에 의해 차원이 높은 벡터 양자화의 성능을 얻을 수 있다.

Description

가중치를 가진 벡터 양자화 장치 및 방법
본 발명은 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에 관한 것으로서, 특히 양자화해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 입력벡터를 여러개의 서브벡터들로 나누고, 각 서브벡터를 양자화할 때 할당하는 양자화 비트의 수를 달리하는 가중치를 가진 벡터 양자화 장치 및 방법, 그리고 가중치를 가진 벡터 역양자화 장치 및 방법에 관한 것이다.
정보를 포함하고 있는 파형은 원래 진폭에 있어서 연속적이고 시간상으로도 연속적인 아날로그(Analog) 신호이다. 따라서, 파형을 이산 신호로 표현하기 위해서 A/D(Analog-to-Digital) 변환이 필요하다. A/D 변환을 하기 위해서는 두 가지의 과정을 필요로 한다. 그 중 하나는 시간상의 연속 신호를 이산 신호를 바꾸어 주는 표본화(Sampling)과정이고, 다른 하나는 가능한 진폭의 수를 유한한 값으로 제한하기 위한 진폭 양자화 과정이다. 즉, 상기 진폭의 양자화 과정은 시간 n에서 입력 진폭 x(n)을 가능한 진폭의 유한한 집합중의 한 원소인 y(n)으로 변환해 주는 과정이다.
일반적으로, 한 샘플의 단순한 양자화는 전후의 입력 샘플에 영향을 받지 않고 곧바로 변환을 해 주는 방식이다. 이런 기법은 단순하기는 하지만, 입력 샘플이 통계적으로 상호 독립적인 경우에도 최적의 방법은 아니다. 더구나, 입력 샘플이 통계적으로 종속적인 경우에도 더욱 불충분한 방법이다. 이런 문제점때문에 엔트로피(Entropy) 부호화나 소정의 적응 양자화를 포함하는 부호화 시스템으로 구성하고 있다.
x1, x2, … , xm 의 샘플이 있을 때 스칼라 양자화는 m개의 샘플을 각각 양자화하는 방식인데 비하여, 벡터 양자화는 순서를 가지고 배열된 샘플의 집합인 m차원 벡터, (x1, x2, … , xm)를 양자화하는 것이다. 즉, 입력 패턴을 미리 결정되어 있는 표준 패턴들의 집합인 코드북(codebook)에서 하나의 패턴으로 근사화하는 패턴 인식의 일종이라고 볼 수 있다. 따라서, 벡터 양자화는 스칼라 양자화의 단점을 보완하기 위해서 스칼라 양자화의 개념을 확장하여 일반화한 것으로서, 이론적으로 최적의 방식이라 할 수 있다.
상기 벡터 양자화에서 양자화기의 성능을 향상시키기 위해서는 되도록이면 높은 차원의 벡터를 사용해야 한다. 하지만, 벡터의 차원이 높아질수록 코드북을 저장하기 위한 공간과 최적의 패턴을 탐색(Search)하는데 필요한 복잡성이 커진다는 문제점이 있다. 이런 문제점을 해결할 수 있는 가장 단순하고 직접적인 방법은 벡터를 두 개 이상의 서브벡터(subvector)로 나누어 양자화를 하는 분할 벡터 양자화(Partitioned Vector Quantization)를 사용하는 것이다. 즉, 전체 벡터에 대해 한 개의 벡터 양자화를 사용하는 대신에, 좀 더 차원이 낮은 서브벡터들로 분리해서, 각 서브벡터들에 대해 각각의 코드북을 가지고 부호화를 한다. 그 다음, 상기 코드북의 각 항목들에 대한 인덱스(index)들의 집합을 복호화기에 전송하고, 복호화기는 각 서브벡터를 복호화하고 연결함으로써 원래의 큰 벡터의 근사치를 재생할 수 있도록 하는 방식이다.
그런데, 큰 벡터를 여러 개의 서브벡터들로 나누면, 여러 서브벡터들 사이에 존재하는 통계적 의존성(Stastical dependency)을 고려하여야 하는 문제가 발생한다. 결국, 상기 통계적 의존성을 고려하지 않는 경우, 큰 벡터를 여러 개의 서브벡터로 나누어 서브벡터의 차원이 낮아질수록 벡터 양자화를 하는 이득은 감소하게 된다. 또한, 상기한 바와 같이 원래의 벡터를 차원이 낮은 여러 개의 서브벡터로 만들어 양자화를 하는 경우, 호프만 부호화와 같은 엔트로피 부호화 방식에 비해 벡터들 사이에 비트를 효율적으로 배분할 수 없기 때문에 원래 벡터를 가지고 양자화를 하는 것에 비해서 양자화기의 성능이 저하된다. 실제 부호화에 벡터 양자화를 적용하기 위해서는 저장 공간과 부호화 성능 사이의 적당한 트레이드오프(tradeoff)가 필요하다.
벡터 양자화는 신호의 압축을 위해 효율적인 부호화 방식으로 널리 사용되어 왔다. 하지만 오디오 부호화 방식에서는 아직 적용되지 않았고, 주로 스칼라 양자화 방식이 사용되고 있다. 상기한 바와 같이, 스칼라 양자화 방식은 신호의 압축에는 최적이 방식이 아니다. 그래서, 이런 문제점을 해결하기 위해 양자화를 하고 다시 호프만(huffman) 부호화를 사용하여 최적의 값에 근접한 결과를 얻을 수 있는 부호화 방식이 제안되기도 했다. 하지만, 이 방법의 경우, 전체 부호화기의 성능을 향상시킬 수 있기는 하지만, 모든 부호값들이 가변적인 길이를 가지고 있기 때문에 통신 경로상이나 저장 매체상에서 비트 에러(bit error)가 발생할 경우에 비트 에러의 영향을 많이 받는 단점을 가지고 있다.
이런 양자화들에 대한 대안으로 벡터 양자화를 사용할 수 있다. 벡터 양자화에서 높은 품질을 얻기 위해서는, 코드북을 저장하기 위한 공간과 최적의 패턴을 찾기 위한 탐색(Search) 시간이 증가한다. 그래서, 성능과 저장 공간사이의 적절한 트레이드오프를 할 수 있는 방식으로 MSVQ(Multi-Stage Vector Quantization), CSVQ(Constrained-Storage Vector Quantization)와 같은 방식이 제안되었다. 이런 방식들은 사용되는 코드북의 크기와 사용되는 비트의 수가 일정하다.
상기 MSVQ 또는 CSVQ와 같은 벡터 양자화는 양자화를 해야 할 시퀀스의 크기와 벡터의 크기가 같은 경우, 어느 정도 최적의 양자화 비트 값에 가까운 값으로 양자화를 할 수 있다. 하지만, 양자화를 해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 호프만 부호화와 같은 엔트로피 부호화 방식에 비해 벡터들 사이에서 비트를 효율적으로 배분할 수 없다는 단점을 가지고 있다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 벡터 양자화에서 양자화해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 여러개의 서브벡터들을 양자화할 때 할당하는 비트의 수를 달리하여 벡터의 크기가 작은 경우에 발생하는 성능의 저하를 보완함으로써, 상대적으로 작은 저장공간과 복잡성을 지닌 코드북에 의해 차원이 높은 벡터 양자화의 성능에 근접하는 가중치를 가진 벡터양자화 장치 및 방법, 그리고 가중치를 가진 벡터 역양자화 장치 및 방법을 제공함에 그 목적이 있다.
도 1은 본 발명에 의한 가중치를 가진 벡터 양자화 장치의 구성을 도시한 블락구성도이다.
도 2는 본 발명에서 사용되는 트리 구조의 코드북의 구성을 도시한 것이다.
도 3은 본 발명에 의한 가중치를 가진 벡터 역양자화 장치의 구성을 도시한 블락구성도이다.
도 4는 본 발명에 의한 가중치를 가진 벡터 양자화 과정을 시간의 흐름에 따라 도시한 흐름도이다.
도 5는 본 발명에 의한 가중치를 가진 벡터 역양자화 과정을 시간의 흐름에 따라 도시한 흐름도이다.
도 6은 본 발명의 일실시예로서 두 개의 서브벡터를 양자할 경우, 양자화의 순서를 트리 구조의 코드북에 의해 설명하기 위한 도면이다.
상기의 목적을 달성하기 위한 본 발명의 구성은 다음과 같다.
오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 가중치를 가진 벡터 양자화 장치는 심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산하여 주는 허용가능 잡음 계산부; 입력벡터의 차원을 N이라고 하고, 서브벡터의 수를 n이라고 하고, 상기 서브벡터의 차원을 각각 M1, M2,…,Mn라고 할 때, 상기 N차원의 입력벡터를 각각 M1차원, M2차원,…,Mn차원의 서브벡터로 분할하여 주는 서브벡터 분할부; 상기 서브벡터 분할부에서 서브벡터를 전달받고, 양자화 비트를 할당받을 때마다 코드북에서 상기 서브벡터와 좀 더 근접한 코드벡터를 지닌 항목을 찾아 그 항목에 대한 인덱스와 그 항목에 포함된 평균 MSE를 추출하고, 그 항목에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 n개의 서브벡터 양자화부; 및 상기 n개의 서브벡터 양자화부에서 전달된 상기 양자화 잡음을 모두 합하고, 그 합한 값이 상기 허용가능 잡음 계산부에서 전달된 상기 허용가능한 잡음보다 크면, 상기 n개의 서브벡터 양자화부에서 전달된 평균 MSE를 상호 비교하여 추가로 양자화 비트를 할당할 서브벡터 양자화부를 선택하는 양자화 비트 할당부를 포함함을 특징으로 한다.
오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에서 생성된 인덱스 시퀀스 신호를 역양자화하는 가중치를 가진 벡터 역양자화 장치는 상기 상기 인덱스 시퀀스 신호를 개개의 인덱스 신호를 분석하고, 서브벡터별 평균 MSE를 상호 비교하여 가장 큰 평균 MSE를 갖는 서브벡터 또는 가장 큰 평균 MSE가 여러개 있는 경우에는 가장 큰 평균 MSE를 갖는 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택하고, 선택된 서브벡터에 인덱스 신호를 부여하여 좀 더 서브벡터에 가까운 코드벡터를 찾는 과정을 모든 인덱스 신호에 대하여 반복하는 서브벡터별 코드북 노드 위치 결정부; 및 상기 각 서브벡터별 노드 위치 결정부에서 결정된 노드에 포함된 코드벡터를 모아 원래의 벡터 신호를 재생하는 원벡터신호 재생부를 포함함을 특징으로 한다.
오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에서 이용되는 하나의 입력 벡터에 대한 가중치를 가진 벡터 양자화 방법은 심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산하여 주는 허용가능 잡음 계산 과정; 입력벡터의 차원을 N이라고 하고, 서브벡터의 수를 n이라고 하고, 상기 서브루틴의 차원을 각각 M1, M2,…,Mn라고 할 때, 상기 N차원의 입력벡터를 각각 M1차원, M2차원,…,Mn차원의 서브벡터로 분할하여 주는 서브벡터 분할 과정; 상기 각 서버벡터에 대해 코드북에서의 현재 노드를 루트에 두는 초기화 과정; 상기 각 서버벡터에 대해 코드북에서의 현재 노드에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 각 서브벡터별 양자화 잡음 계산 과정; 상기 각 서브벡터에 대해 코드북에서의 현재 노드에 포함된 평균 MSE를 상호 비교하여 추가로 양자화 비트를 할당할 서브벡터를 선택하는 추가비트할당 서브벡터 선택 과정; 상기 각 서브벡터별 양자화 잡음 계산 과정에서 계산된 상기 양자화 잡음을 모두 합산하는 전체 양자화 잡음 계산 과정; 상기 전체 양자화 잡음이 상기 허용가능한 잡음보다 작거나 같으면 다음 입력 벡터를 처리하기 위해 리턴하고, 크면 상기 추가비트할당 서브벡터 선택 과정에서 선택한 서브벡터에 추가비트를 할당하는 전체 양자화 비트양 결정 과정; 및 상기 선택된 서브벡터에서 서브벡터와 가장 근접한 코드벡터를 지닌 자식 노드를 찾아 그 인덱스를 출력하고, 현재 노드를 상기 자식 노드로 변경하고, 상기 각 서브벡터별 양자화 잡음 계산 과정으로 되돌아 가는 코드북 탐색 과정을 포함함을 특징으로 한다.
그리고, 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에서 생성된 상기 인덱스 시퀀스 신호를 역양자화하는 가중치를 가진 벡터 역양자화 방법은 각 서브벡터별 코드북의 현재 노드 위치를 루트에 두는 제1단계; 상기 코드북의 자식 노드 수를 K라고 할 때, log2K보다 같거나 큰 최초 정수의 크기로 인덱스 시퀀스 신호를 분해하여 입력 인덱스로 두는 제2단계; 각 서브벡터별 코드북의 현재 노드 위치에 포함된 평균 MSE를 비교하여 상기 입력 인덱스를 받는 서브벡터를 선택하는 제3단계; 상기 선택된 서브벡터에서 상기 입력 인덱스를 이용하여 코드북의 현재 노드를 변경하는 제4단계; 하나의 인덱스 시퀀스가 완료되지 않은 경우에는 제3단계로 되돌아 가고, 완료된 경우에는 각 서브벡터별 코드북의 현재 노드에 포함된 코드벡터를 모아 출력하는 제5단계를 포함함을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 1은 본 발명에 의한 가중치를 가진 벡터 양자화 장치의 구성을 도시한 블락구성도이다. 도 1에 의하면 가중치를 가진 벡터 양자화 장치는 허용가능 잡음 계산부(100), 선택벡터 분할부(110), 소정의 수의 서브벡터 양자화부(120), 양자화 비트 할당부(130)으로 구성된다.
상기 허용가능 잡음 계산부(100)는 오디오 부호화의 경우 심리음향모델(Psychoaccoustic Model)과 같은 방식에 의해 구한다. 상기 허용가능 잡음 계산부는 현재의 입력벡터 뿐만 아니라, 기존의 입력벡터의 누적적 정보를 함께 포함하여 그 값을 구한다.
상기 선택벡터 분할부(110)는 높은 차원의 입력벡터를 두 개 이상의 서브벡터(subvector)로 나누어 주는 역할을 하는 구성블락으로서, 본 발명이 분할 벡터 양자화(Partitioned VQ) 기법을 사용하므로 필요한 부분이다. 즉, 입력벡터의 차원을 N이라고 하고, 서브벡터의 수를 n이라고 하고, 상기 서브루틴의 차원을 각각 M1, M2,…,Mn라고 할 때, 상기 N차원의 입력벡터를 각각 M1차원, M2차원,…,Mn차원의 서브벡터로 분할하여 준다. 이때, N = M1 + M2 + … + Mn 의 관계가 성립한다.
상기 서브벡터 양자화부(120)는 상기한 바와 같이 분할한 서브벡터의 수만큼 별도의 구성블락을 지니는데, 각 서브벡터 양자화부는 상기 서브벡터 분할부(110)에서 자기의 서브벡터를 전달받고, 양자화 비트를 할당받을 때마다 코드북(codebook)에서 상기 서브벡터와 좀 더 근접한 코드벡터(codevector)를 지닌 항목을 찾아 그 항목에 대한 인덱스(index)를 구하여 출력하고, 상기 항목에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하고, 상기 구한 양자화 잡음과 상기 항목에 포함된 평균 MSE(Mean Squared Error)를 상기 양자화 비트 할당부(130)에 전달한다. 상기 서브벡터 양자화부(120)은 코드북(122), 코드북 탐색부(124) 및 양자화 잡음 계산부(126)으로 구성된다. 상기 코드북(122)은 상기 서브벡터와 동일한 차원을 가진 표준 패턴의 집합으로서, 본 발명에서는 트리(tree) 형태로 구성되고 있으며, 모든 서브벡터가 하나의 코드북을 공유할 수도 있으며, 각 서브벡터마다 각기의 특성을 살린 별도의 코드북을 지닐 수도 있다. 상기 코드북 탐색부(124)는 상기 코드북에서 현재 노드(node) 위치를 보유하고, 현재 노드의 자식 노드(child node) 중 상기 서브벡터와 가장 근접한 코드벡터를 지닌 항목을 찾아 그 인덱스를 출력하고, 그 노드가 지닌 정보를 상기 양자화 계산부(126)과 상기 양자화 비트 할당부(130)에 전달한다. 상기 양자화 잡음 계산부(126)는 상기 코드북 탐색부(124)에서 찾은 노드에 포함된 코드벡터와 상기 서브벡터 사이의 양자화 잡음을 구하여 상기 양자화 비트 할당부(130)에 전달한다.
상기 양자화 비트 할당부(130)는 추가비트할당 서브벡터 선택부(132), 전체 잡음 계산부(134) 및 전체 양자화 비트양 결정부(136)으로 구성된다. 상기 추가비트할당 서브벡터 선택부(132)는 상기 n개의 서브벡터 양자화부(132)에서 전달된 평균 MSE를 상호 비교하여 추가로 양자화 비트를 할당할 서브벡터 양자화부(132)를 선택하는 역할을 한다. 상기 전체 잡음 계산부(134)는 상기 n개의 서브벡터 양자화부(132)에서 전달된 상기 양자화 잡음을 모두 합산한다. 그리고, 상기 전체 양자화 비트양 결정부(136)는 상기 허용가능 잡음 계산부(100)에서 전달된 상기 허용가능한 잡음과 상기 전체 잡음 계산부(134)에서 구한 전체 양자화 잡음을 비교하여 전체 양자화 비트에 추가비트를 할당할 것인지 여부를 결정한다.
도 2는 본 발명에서 사용되는 트리 구조의 코드북의 구성을 도시한 것이다. 상기 트리 구조에서 트리의 깊이는 루트 노드로부터의 탐색의 단계를 의미하고, 트리의 폭은 각 노드에서 자식 노드의 수를 의미한다. 도 2에 표시된 코드북 트리의 각 노드는 부모 노드(parent node)에 대한 포인터(pointer); 자식 노드들에 대한 포인터 리스트(pointer list); 코드 벡터; 평균 MSE를 구성항목으로 가진다.
상기 코드북에서는 트레이닝 시퀀스(training sequence)들을 코드북의 노드 수만큼의 그룹으로 만들고, 구분된 각 그룹에 대한 대표값을 정하여(예를 들면, 평균값) 상기 코드벡터로 둔다. 그리고, 상기 코드벡터가 속한 그룹의 트레이닝 시퀀스들로부터 평균 MSE를 구할 수 있다. 여기에서 트레이닝 시퀀스는 표본이 되는 데이터의 시퀀스를 일컫는다.
도 3은 본 발명에 의한 가중치를 가진 벡터 역양자화 장치의 구성을 도시한 블락구성도이다. 도 3에 의하면 가중치를 가진 벡터 역양자화 장치는 코드북 노드 위치 결정부(300), 원 벡터신호 재생부(310)을 포함하여 구성된다.
상기 코드북 노드 위치 결정부(300)는 상기 상기 인덱스 시퀀스 신호를 개개의 인덱스 신호를 분석하고, 서브벡터별 평균 MSE를 상호 비교하여 가장 큰 평균 MSE를 갖는 서브벡터 또는 가장 큰 평균 MSE가 여러개 있는 경우에는 가장 큰 평균 MSE를 갖는 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택하고, 선택된 서브벡터에 인덱스 신호를 부여하여 좀 더 서브벡터에 가까운 코드벡터를 찾는 과정을 모든 인덱스 신호에 대하여 반복한다. 상기 원벡터 신호 재생부(310)는 상기 코드북 노드위치 결정부(300)에서 최종 결정된 노드에 포함된 코드벡터를 모아 원래의 벡터신호를 재생한다.
즉, 역양자화 장치에서는 여러 개의 서브벡터들에 대한 인덱스가 혼합되어 하나의 시퀀스로써 전달되기 때문에, 우선 한 비트씩 어느 서브벡터를 역양자화하기 위한 정보인지에 대해서 현재까지의 역양자화되어 있는 평균 MSE값들을 비교함으로써 결정한다. 이렇게 결정된 서브벡터에 하나의 입력 인덱스를 이용하여, 좀 더 세밀하게 역양자화하고, 전체의 입력 인덱스가 없어질 때까지 앞의 과정을 반복한다. 이런 과정을 반복하고 나면, 각 서브벡터에 대해 코드북에서 역양자화된 코드벡터 값들을 추출해 낼 수 있다.
도 4는 본 발명에 의한 가중치를 가진 벡터 양자화 과정을 시간의 흐름에 따라 도시한 흐름도이다. 이하에서 본 발명에 의한 가중치를 가진 벡터 양자화 과정을 예를 들어 설명하고자 한다.
예를 들어, 32개의 입력 샘플들이 있다고 하자. 이런 입력 샘플은 32차원의 한 개의 입력 벡터라 볼 수 있다. 만약 샘플당 양자화 비트가 1비트라고 한다면 32차원의 벡터의 코드북의 크기는 232개의 32차원 코드벡터로 코드북이 구성되어야 한다. 하지만, 이는 실제로 우리가 사용하기에는 코드북의 크기가 너무 크다. 따라서, 앞서 기술했듯이 실제로 벡터 양자화를 적용하기 위해서는 이 32차원의 입력 벡터를 좀 더 낮은 차원의 서브벡터들로 나누어 각각 양자화를 한다. 32 차원의 입력 벡터 X = (x1,x2,…,x32) 를 8개의 4차원의 서브벡터 X4,1 = (x1,x2,x3,x4),X4,2 = (x5,x6,x7,x8),…,X4,8 = (x29,x30,x31,x32)로 나눌 수 있다.
가중치를 가진 벡터 양자화 과정은 먼저 심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산한다(400단계).
다음, 상기예에 의하면, 입력벡터의 차원 32이고, 서브벡터의 수가 8이고, 상기 서브루틴의 차원이 각각 4이므로, 상기 32차원의 입력벡터를 각각 8개의 4차원의 서브벡터로 분할하여 준다(410단계).
그리고, 상기 각 서버벡터에 대해 코드북에서의 현재 노드를 루트에 둔다(420단계). 즉, 양자화 비트가 아직 각 서브벡터에 1비트로 할당되지 않은 경우, 각 서브벡터는 트리 구조 코드북의 루트 노드에 관한 정보를 가지고 양자화된다. 따라서, 각 서브벡터를 양자화할 때 발생하는 양자화 잡음에 대한 통계적인 평균치인 평균 MSE 값들은 같다.
그 다음, 상기 각 서버벡터에 대해 코드북에서의 현재 노드에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 각 서브벡터별 양자화 잡음을 계산한다(430단계).
이후에, 상기 각 서브벡터에 대해 코드북에서의 현재 노드에 포함된 평균 MSE를 비교하여 추가로 양자화 비트를 할당할 서브벡터를 선택하는 추가비트할당 서브벡터 선택한다(440단계). 즉, 상기 각 서브벡터에 대해 코드북에서의 현재 노드에 포함된 평균 MSE를 비교하여 가장 큰 평균 MSE를 갖는 서브벡터를 선택하고, 상기 평균 MSE에서 가장 큰 평균 MSE가 여러개 있는 경우, 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택한다. 일반적으로, 평균 MSE 값이 크다는 것은 실제로 발생할 잡음의 크기가 클 확률이 높다는 것을 뜻하기 때문에 상기한 바와 같이 계속하여 평균 MSE 값을 큰 서브벡터에 양자화 비트들 추가로 할당함으로써 전체적인 양자화 잡음의 크기가 좀 더 작아질 확률이 높아진다.
상기 각 서브벡터별 양자화 잡음 계산 과정에서 계산된 상기 양자화 잡음을 모두 합산하는 전체 잡음 계산하고(450단계), 상기 전체 양자화 잡음이 상기 허용가능한 잡음보다 작거나 같으면 다음 입력 벡터를 처리하기 위해 리턴하고, 크면 상기 추가비트할당 서브벡터 선택 과정에서 선택한 서브벡터에 추가비트를 할당하는 전체 양자화 비트양 결정한다(460단계).
그 다음, 상기 선택된 서브벡터에서의 코드북의 현재 노드에 결합된 자식 노드 중에서 서브벡터와 가장 근접한 코드벡터를 지닌 자식 노드를 찾아서, 상기 찾은 자식 노드에 대한 인덱스를 출력하고, 상기 선택된 서브벡터의 현재 노드를 상기 찾은 자식 노드로 두고, 상기 각 서브벡터별 양자화 잡음 계산 과정으로 되돌아 간다(470단계).
상기한 바와 같이 반복하다가 원하는 결과가 나타난 경우, 사용된 전체 양자화 비트에 대한 정보와 각 서브벡터를 양자화하면서 코드북에서 선택된 코드벡터에 대한 지수 정보를 복호화 장치에 전송한다. 각 서브벡터를 양자화한 정보인 코드벡터 인덱스들은 길이가 다르고, 다른 정보도 복호화 장치에 전송되지 않기 때문에 복호화 장치에서 올바른 정보를 복원해 낼 수 없다. 따라서, 평균 MSE 값에 따라서 각 서브벡터를 양자화한 인덱스의 비트 순으로 복호화 장치에 전송해야 역양자화 장치에서 평균 MSE 값에 따라서 각 서브벡터에 코드벡터 인덱스를 복원해 낼 수 있다.
도 5는 본 발명에 의한 가중치를 가진 벡터 역양자화 과정을 시간의 흐름에 따라 도시한 흐름도이다. 가중치를 가진 벡터 역양자화 과정은 먼저 각 서브벡터별 코드북의 현재 노드 위치를 루트에 둔다(500단계). 다음, 상기 코드북의 자식 노드 수를 K라고 할 때, log2K보다 같거나 큰 최초 정수의 크기로 입력 디지탈 신호를 분해하여 입력 인덱스로 두고(510단계), 각 서브벡터별 코드북의 현재 노드 위치에 포함된 평균 MSE를 비교하여 상기 입력 인덱스를 받는 서브벡터를 선택한다(520단계). 그 다음, 상기 선택된 서브벡터에서 상기 입력 인덱스를 이용하여 코드북의 현재 노드를 변경한다(530단계). 하나의 시퀀스가 완료되지 않은 경우에는 520단계로 되돌아 가고, 완료된 경우에는 각 서브벡터별 코드북의 현재 노드에 포함된 코드벡터를 모아 출력한다(550단계).
다음은 본 발명의 일실시예를 이용하여 가중치를 가진 벡터 양자화 과정을 설명한다. 입력 벡터를 X = (x1,x2,…,x8) 이라고 하자. 상기 입력 벡터는 서브벡터1=(x1,x2,x3,x4), 서브벡터2=(x5,x6,x7,x8)로 두 개의 4차원 벡터로 나눌 수 있다.
이렇게 두 개로 나뉜 서브벡터1, 서브벡터2를 가중치를 가진 벡터 양자화 기법에 의해 양자화 하기 위해, 우선 도 6와 같은 4진 트리 구조의 코드북을 제작했다고 하자. 우선 서브벡터1과 서브벡터2에 대한 평균 MSE의 값은 400, 400으로 초기화 된다. 그리고, 이 평균 MSE값들이 같기 때문에 서브벡터1을 먼저 양자화 한다. 그래서, 서브벡터1에 비트를 할당하여 양자화하면, 서브벡터1의 평균 MSE값이 90이 된다고 하자. 이제, 양 서브벡터의 평균 MSE값이 90, 400이므로, 서브벡터2의 평균 MSE값이 더 크다. 따라서, 서브벡터2가 양자화 비트를 할당할 서브벡터로 선택된다. 서브벡터2에 비트를 할당하여 양자화를 한 경우, 평균 MSE가 40인 노드로 변하게 된다. 좀 더 양자화 잡음을 줄여야 한다면, 두 개의 평균 MSE 값인 90, 40을 비교하여 값이 큰 서브벡터1를 선택하여 더 양자화를 하게 된다.
이런 과정을 실제 양자화 잡음이 원하는 수준이 될 때까지 계속해서 반복하면 된다. 따라서 양자화 비트의 시퀀스는 (2, 3, 1, ...)의 순서로 전송된다. 2는 서브벡터1의 첫번째 인덱스이고, 3은 서브벡터2의 첫번째 인덱스이고, 1은 서브벡터1의 두번째 인덱스를 나타내게 된다.
따라서, 역양자화 장치에서는 이런 순서에 의해 이전에 역양자화된 결과를 기반으로 해서 인덱스가 어느 서브벡터를 역양자화하기 위한 정보인지를 결정한다. 그 다음, 마지막 인덱스까지 연속적으로 인덱스를 사용할 서브벡터를 찾아서 좀 더 세밀하게 역양자화를 하게 되고, 전체적인 역양자화 과정은 마무리되어 역양자화된 신호를 복원할 수 있게 된다.
본 발명에 의하면, 벡터 양자화에서 양자화해야 할 시퀀스의 크기가 벡터의 차원보다 클 경우, 여러개의 서브벡터들을 양자화할 때 할당하는 비트의 수를 달리하여 벡터의 크기가 작은 경우에 발생하는 성능의 저하를 보완함으로써, 상대적으로 작은 저장공간과 복잡성을 지닌 코드북에 의해 차원이 높은 벡터 양자화의 성능을 얻을 수 있다.
스칼라 양자화를 대체하여 벡터 양자화를 사용함으로써 양자화기의 성능을 향상시킬 수 있다. 뿐만 아니라, 기존의 스칼라 양자화에서 사용되는 호프만 부호화를 함께 사용하는 부호화기와 성능은 비슷하면서 이 방법에 비해 비트 에러에 강하고, 허용가능한 잡음의 양에 따라 가변 길이의 양자화를 함으로써 유연함을 갖는다는 효과를 지닌다. 또한, 기존의 변환이나 대역 분할에 기반을 둔 오디오 부호화기의 양자화기를 대체할 경우 오디오 부호화기의 성능을 향상시킬 수 있다.

Claims (9)

  1. 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에 있어서,
    심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산하여 주는 허용가능 잡음 계산부;
    입력벡터의 차원을 N이라고 하고, 서브벡터의 수를 n이라고 하고, 상기 서브벡터의 차원을 각각 M1, M2,…,Mn라고 할 때, 상기 N차원의 입력벡터를 각각 M1차원, M2차원,…,Mn차원의 서브벡터로 분할하여 주는 서브벡터 분할부;
    상기 서브벡터 분할부에서 서브벡터를 전달받고, 양자화 비트를 할당받을 때마다 코드북에서 상기 서브벡터와 좀 더 근접한 코드벡터를 지닌 항목을 찾아 그 항목에 대한 인덱스와 그 항목에 포함된 평균 MSE를 추출하고, 그 항목에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 n개의 서브벡터 양자화부; 및
    상기 n개의 서브벡터 양자화부에서 전달된 상기 양자화 잡음을 모두 합하고, 그 합한 값이 상기 허용가능 잡음 계산부에서 전달된 상기 허용가능한 잡음보다 크면, 상기 n개의 서브벡터 양자화부에서 전달된 평균 MSE를 상호 비교하여 추가로 양자화 비트를 할당할 서브벡터 양자화부를 선택하는 양자화 비트 할당부를 포함함을 특징으로 하는 가중치를 가진 벡터 양자화 장치.
  2. 제1항에 있어서, 상기 서브벡터 양자화부는
    상기 서브벡터와 동일한 차원의 표준 패턴의 집합인 코드북;
    상기 양자화 비트 할당부로부터 추가로 양자화 비트를 할당받을 때마다, 상기 코드북에서 상기 서브벡터와 좀 더 근접한 코드벡터를 지닌 항목을 찾아 그 항목에 대한 인덱스와 그 항목에 포함된 평균 MSE를 추출하는 코드북 탐색부; 및
    상기 코드북 탐색부에서 찾은 항목에 포함된 코드벡터와 상기 서브벡터 사이의 양자화 잡음을 구하는 양자화 잡음 계산부를 구비함을 특징으로 하는 가중치를 가진 벡터 양자화 장치.
  3. 제1항에 있어서, 상기 양자화 비트 할당부는
    상기 n개의 서브벡터 양자화부에서 전달된 평균 MSE를 상호 비교하여 가장 큰 평균 MSE를 갖는 서브벡터 또는 가장 큰 평균 MSE가 여러개 있는 경우에는 가장 큰 평균 MSE를 갖는 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택하는 추가비트할당 서브벡터 선택부;
    상기 n개의 서브벡터 양자화부에서 전달된 상기 양자화 잡음을 모두 합산하는 전체 잡음 계산부;
    상기 허용가능 잡음 계산부에서 전달된 상기 허용가능한 잡음과 상기 전체 잡음 계산부에서 구한 전체 양자화 잡음을 비교하여 상기 전체 양자화 잡음에 크면, 추가 양자화 비트를 할당하도록 결정하는 전체 양자화 비트양 결정부를 구비함을 특징으로 하는 가중치를 가진 벡터 양자화 장치.
  4. 제2항에 있어서, 상기 코드북은
    동일한 수의 자식 노드를 가지는 트리 구조를 가지며, 각 노드는
    부모 노드에 대한 포인터;
    자식 노드들에 대한 포인터 리스트;
    코드 벡터;
    평균 MSE를 구성항목으로 하는 데이터 구조를 갖는 코드북임을 특징으로 하는 가중치를 가진 벡터 양자화 장치.
  5. 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에서 생성된 인덱스 시퀀스 신호를 역양자화하는 장치에 있어서,
    상기 상기 인덱스 시퀀스 신호를 개개의 인덱스 신호를 분석하고, 서브벡터별 평균 MSE를 상호 비교하여 가장 큰 평균 MSE를 갖는 서브벡터 또는 가장 큰 평균 MSE가 여러개 있는 경우에는 가장 큰 평균 MSE를 갖는 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택하고, 선택된 서브벡터에 인덱스 신호를 부여하여 좀 더 서브벡터에 가까운 코드벡터를 찾는 과정을 모든 인덱스 신호에 대하여 반복하는 서브벡터별 코드북 노드 위치 결정부; 및
    상기 각 서브벡터별 노드 위치 결정부에서 결정된 노드에 포함된 코드벡터를 모아 원래의 벡터 신호를 재생하는 원벡터신호 재생부를 포함함을 특징으로 하는 가중치를 가진 벡터 역양자화 장치.
  6. 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에서 이용되는 하나의 입력 벡터에 대한 벡터 양자화 방법에 있어서,
    심리음향모델 방식에 의해 입력 신호에 대한 허용가능한 잡음을 계산하여 주는 허용가능 잡음 계산 과정;
    입력벡터의 차원을 N이라고 하고, 서브벡터의 수를 n이라고 하고, 상기 서브루틴의 차원을 각각 M1, M2,…,Mn라고 할 때, 상기 N차원의 입력벡터를 각각 M1차원, M2차원,…,Mn차원의 서브벡터로 분할하여 주는 서브벡터 분할 과정;
    상기 각 서버벡터에 대해 코드북에서의 현재 노드를 루트에 두는 초기화 과정;
    상기 각 서버벡터에 대해 코드북에서의 현재 노드에 포함된 코드벡터와 상기 서브벡터 사이에 발생하는 양자화 잡음을 구하는 각 서브벡터별 양자화 잡음 계산 과정;
    상기 각 서브벡터에 대해 코드북에서의 현재 노드에 포함된 평균 MSE를 상호 비교하여 추가로 양자화 비트를 할당할 서브벡터를 선택하는 추가비트할당 서브벡터 선택 과정;
    상기 각 서브벡터별 양자화 잡음 계산 과정에서 계산된 상기 양자화 잡음을 모두 합산하는 전체 양자화 잡음 계산 과정;
    상기 전체 양자화 잡음이 상기 허용가능한 잡음보다 작거나 같으면 다음 입력 벡터를 처리하기 위해 리턴하고, 크면 상기 추가비트할당 서브벡터 선택 과정에서 선택한 서브벡터에 추가비트를 할당하는 전체 양자화 비트양 결정 과정; 및
    상기 선택된 서브벡터에서 서브벡터와 가장 근접한 코드벡터를 지닌 자식 노드를 찾아 그 인덱스를 출력하고, 현재 노드를 상기 자식 노드로 변경하고, 상기 각 서브벡터별 양자화 잡음 계산 과정으로 되돌아 가는 코드북 탐색 과정을 포함함을 특징으로 하는 가중치를 가진 벡터 양자화 방법.
  7. 제6항에 있어서, 상기 추가비트할당 서브벡터 선택 과정은
    상기 각 서브벡터에 대해 코드북에서의 현재 노드에 포함된 평균 MSE를 상호 비교하여 가장 큰 평균 MSE를 갖는 서브벡터를 선택하는 단계; 및
    상기 평균 MSE에서 가장 큰 평균 MSE가 여러개 있는 경우, 가장 큰 평균 MSE를 가진 서브벡터 중 가장 작은 인덱스 번호를 갖는 서브벡터를 선택하는 단계를 포함하여 구성됨을 특징으로 하는 가중치를 가진 벡터 양자화 방법.
  8. 제6항에 있어서, 상기 코드북 탐색 과정은
    상기 선택된 서브벡터에서의 코드북의 현재 노드에 결합된 자식 노드 중에서 서브벡터와 가장 근접한 코드벡터를 지닌 자식 노드를 찾는 단계;
    상기 찾은 자식 노드에 대한 인덱스를 출력하는 단계;
    상기 선택된 서브벡터의 현재 노드를 상기 찾은 자식 노드로 두는 단계; 및
    상기 각 서브벡터별 양자화 잡음 계산 과정으로 되돌아 가는 단계를 포함하여 구성됨을 특징으로 하는 가중치를 가진 벡터 양자화 방법.
  9. 오디오 아날로그 신호를 디지탈 신호로 변환하는 A/D 변환기에 이용되는 벡터 양자화 장치에서 생성된 상기 인덱스 시퀀스 신호를 역양자화하는 방법에 있어서,
    각 서브벡터별 코드북의 현재 노드 위치를 루트에 두는 제1단계;
    상기 코드북의 자식 노드 수를 K라고 할 때, log2K보다 같거나 큰 최초 정수의 크기로 인덱스 시퀀스 신호를 분해하여 입력 인덱스로 두는 제2단계;
    각 서브벡터별 코드북의 현재 노드 위치에 포함된 평균 MSE를 비교하여 상기 입력 인덱스를 받는 서브벡터를 선택하는 제3단계;
    상기 선택된 서브벡터에서 상기 입력 인덱스를 이용하여 코드북의 현재 노드를 변경하는 제4단계;
    하나의 인덱스 시퀀스가 완료되지 않은 경우에는 제3단계로 되돌아 가고, 완료된 경우에는 각 서브벡터별 코드북의 현재 노드에 포함된 코드벡터를 모아 출력하는 제5단계를 포함함을 특징으로 하는 가중치를 가진 벡터 역양자화 방법.
KR1019960053079A 1996-11-09 1996-11-09 가중치를 가진 벡터 양자화 장치 및 방법 KR19980034878A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960053079A KR19980034878A (ko) 1996-11-09 1996-11-09 가중치를 가진 벡터 양자화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960053079A KR19980034878A (ko) 1996-11-09 1996-11-09 가중치를 가진 벡터 양자화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR19980034878A true KR19980034878A (ko) 1998-08-05

Family

ID=66519450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960053079A KR19980034878A (ko) 1996-11-09 1996-11-09 가중치를 가진 벡터 양자화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR19980034878A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463577B1 (ko) * 2002-11-01 2004-12-29 한국전자통신연구원 음성 부호화기용 선스펙트럼주파수 벡터 양자화 장치
KR100467326B1 (ko) * 2002-12-09 2005-01-24 학교법인연세대학교 추가 비트 할당 기법을 이용한 음성 부호화 및 복호화를위한 송수신기
KR100554072B1 (ko) * 1999-08-24 2006-02-22 삼성전자주식회사 벡터양자화, 분류벡터양자화를 위한 코드북의 인덱스배정방법들
KR20200050895A (ko) * 2018-11-02 2020-05-12 울산과학기술원 스토캐스틱 연산을 위한 로그-양자화된 곱셈 및 누적기와 이를 포함하는 가속기

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100554072B1 (ko) * 1999-08-24 2006-02-22 삼성전자주식회사 벡터양자화, 분류벡터양자화를 위한 코드북의 인덱스배정방법들
KR100463577B1 (ko) * 2002-11-01 2004-12-29 한국전자통신연구원 음성 부호화기용 선스펙트럼주파수 벡터 양자화 장치
KR100467326B1 (ko) * 2002-12-09 2005-01-24 학교법인연세대학교 추가 비트 할당 기법을 이용한 음성 부호화 및 복호화를위한 송수신기
KR20200050895A (ko) * 2018-11-02 2020-05-12 울산과학기술원 스토캐스틱 연산을 위한 로그-양자화된 곱셈 및 누적기와 이를 포함하는 가속기

Similar Documents

Publication Publication Date Title
Gray et al. Quantization
JP4963498B2 (ja) 非典型的な部分系列に関する部分情報を用いた音声及びオーディオ符号化パラメータの量子化
Makhoul et al. Vector quantization in speech coding
Chou et al. Entropy-constrained vector quantization
Goyal Theoretical foundations of transform coding
US8712783B2 (en) Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes
CN1080036C (zh) 实旋不同编码法则的发送系统
CN102577132B (zh) 用于阶乘脉冲编码器的算术编码
EP1142130B1 (en) Entropy code mode switching for frequency-domain audio coding
Gersho Quantization
KR101152707B1 (ko) 다단계 양자화 방법 및 장치
US6128346A (en) Method and apparatus for quantizing a signal in a digital system
KR20080025403A (ko) 디지털 미디어의 효율적인 코딩을 위한 대역을 획득하기위한 주파수 세그먼트화
KR20080049116A (ko) 오디오 코딩
US20120092197A1 (en) Coding method, coding appartaus, decoding method, decoding apparatus, program, and recording medium
Chan et al. Constrained-storage quantization of multiple vector sources by codebook sharing
US9991905B2 (en) Encoding method, decoding method, encoder and decoder
US7979273B2 (en) Method and apparatus for the digitization of and for the data compression of analog signals
JP4382090B2 (ja) 符号化装置、符号化方法およびコードブック
KR20090061628A (ko) 벡터 양자화를 위한 방법 및 장치
KR19980034878A (ko) 가중치를 가진 벡터 양자화 장치 및 방법
Effros et al. Weighted universal image compression
KR101577848B1 (ko) 규칙적인 지점의 네트워크에서 벡터를 카운팅하는 방법
KR20070051761A (ko) 선형예측계수의 양자화 및 역양자화 방법 및 장치
Matschkal et al. Spherical logarithmic quantization

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination