벡터 양자화


벡터 양자화 방법은 패턴 대체(pattern substitution)의 특별한 경우이다. 벡터 양자화 과정은 아래와 같다.

- 데이타 스트림을 먼저 '벡터'라고 부르는 블럭으로 나눈다. 예로서 영상을 벡터 양자화시킬 때 벡터는 보통 픽셀들의 작은 사각형이다. 또한 모든 벡터의 크기는 일정하고 v바이트로 구성할 수 있다.

- 참조표는 각각 v바이트로 구성한 패턴의 집합이다. 이 참조표는 코드표(code-book)라고 하는데 압축과 복원시에 사용한다. 이 코드표는 미리 정의할 수도 있고, 동적으로 구성할 수도 있다.

- 코드표에서 각각의 벡터와 일치하는 패턴을 찾는다.

- 일치하는 패턴을 찾으면 코드표에서의 인덱스값으로 그 벡터값을 기술한다.

이러한 벡터 양자화 과정을 요약해 보면 다음과 같다.

먼저 비트 스트림을 벡터들로 나눈다. 비트 스트림의 실재값을 전송하는 대신에 코드표에서 일치하는 패턴의 인덱스값을 전송한다. 만일 코드표에서 실재값과 일치하는 패턴이 없으면 가장 유사한 패턴의 인덱스 값과 차이값을 전송한다. 이런 차이값들은 양자화 할 수도 있다. 차이값을 전송하느냐 안하느냐에 따라, 어떤 양자화 방법을 사용하느냐에 따라 무손실 기법이 될 수도 있고, 손실 기법이 될 수도 있다.

벡터 양자화 기법은 특히 음성(speech) 부호화에 적합하다. 벡터 양자화의 예로서는 프랙탈 변환(fractal transform)의 방법이 있다. 벡터 양자화에는 풀어야 할 2가지 문제점이 있다. 첫째는 실재 데이타 벡터의 빈도수를 가장 잘 적용할 수 있는 최적의 코드표를 어떻게 생성할 것인가 하는 문제이고, 둘째는 코드표에서 가장 유사한 코드 패턴을 찾는 최적의 알고리즘을 찾는 것이 어렵다는 것이다.



이전으로


한단계 위


처음으로


다음으로