9.데이터 양자화

부동소수점 단위의 큰 값을 네트워크로 주고 받을 때 패킷량을 줄이는 트릭이 가능할 때가 있습니다. 예를 들어 캐릭터의 위치 x값은 100~200 사이에서만 결정되고 소수점 두자리 이하로의 정밀도는 무시되어도 될 정도라면 이 값은 100 * 100 = 10000 이하의 값으로 변환해서 주고받을 수 있으며 이렇게 되면 double(8바이트)를 word(2바이트)로 절약하게 됩니다.

이러한 트릭을 양자화(quantization)이라 지칭합니다.

이 클래스는 양자화 및 양자화의 반대 급부 기능을 제공합니다.

사용 예

Proud::CQuantizer q(-10000,10000,65535); // -10000~10000 사이의 값을 65535 등분의 정밀도로 양자화하는 기능
double a = 3423.38274f;
int b = q.Quantize(a);      // 양자화
double c= q.Dequantize(b);  // 양자화된 값으로부터 실제값을 복원