본문 바로가기
IT

샘플링 (Sampling), 양자화 (Quantization) 및 부호화 (Coding)

by CHML 2016. 10. 24.
1. 샘플링 (Sampling)

컴퓨터는 0과 1 같은 이산적인 자료들로 구성된다. 그러나 실세계에서는 0과 1사이에도 무한히 많은 수가 존재한다. 샘플링은 연속적인 시간에 대해 생성되는 데이터를 이산적인 시간에 대한 데이터로 변환하는 과정이다.


[그림 1] 아날로그 데이터에 대한 샘플링


컴퓨터에서는 연속적인 시간에 대한 데이터에 포함되어 있는 무한히 많은 정보를 모두 저장할 수 없기 때문에 위의 [그림 1]과 같이 0, 1, 2, ... 와 같은 일정 시간 간격으로 데이터를 읽는 샘플링을 수행한다.


2. 양자화 (Quantizaton)

샘플링은 연속적인 시간에 대해 생성되는 데이터를 이산적인 시간에 대한 데이터로 변환하는 과정이다. 실세계의 아날로그 데이터는 시간뿐만 아니라, 데이터가 표현하는 값에 대해서도 연속적인 성질을 갖는다.


[그림 2] 아날로그 데이터에 대한 양자화


위의 [그림 2]는 연속적인 값을 갖는 아날로그 데이터를 양자화하여 이산적인 분포를 갖는 값들로 데이터를 재구성하는 양자화 과정을 보여준다.  [그림 2]의 양자화 과정에서는 연속적인 값을 갖는 아날로그 데이터를 { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 5 }으로 구성되는 이산적인 값으로 변환한다. 총 11개의 값을 표현하기 위해서 컴퓨터는 각각의 값에 4비트를 할당해야 한다.


3. 비트율 (Bit rate)

신호 처리에서 비트율이라는 것은 어떠한 아날로그 데이터에 대해 샘플링 및 양자화를 수행할 때 생성되는 단위 시간당 비트를 의미한다. 비트율은 아래의 [식 1]과 같이 계산된다.



예를 들어, 0.2초마다 아날로그 데이터의 값을 읽고, 읽은 값마다 4비트를 할당하여 값을 표현한다면, 비트율은 20bit/s가 된다.


4. 부호화 (Coding)

부호화는 샘플링 및 양자화된 데이터를 특정 비트 스트림으로 변환하는 과정이다.


[그림 3] 부호화의 한 예시


예를 들어, 위의 [그림 3]과 같은 부호화를 통해 4비트로 표현되는 0001이라는 값은 00으로 표현되며, 0100은 10으로 표현된다. 즉, 위의 예시에서는 부호화를 통해 4비트로 양자화된 데이터를 2비트로 줄이는 것이 가능하다.