2011-06-13 5 views
3

네트워크를 통해 필수 데이터 유형을 전송해야하지만 모든 32 비트 (또는 64 비트)를 항상 전송하고 싶지는 않습니다. 데이터는 단지 1 바이트의 99 % 시간에 맞춰집니다. 그것은 어떻게 든 압축해야합니다 : 예를 들어, 첫 번째 비트가 0이면 다른 7 비트는 단지 약간의 값 (0-127)을 의미합니다. 그렇지 않으면 (첫 번째 바이트가 1이면)이 7 바이트를 왼쪽으로 시프트하고 두 번째 바이트를 읽어야합니다 동일한 프로세스를 수행합니다.이진 통합 데이터 압축

몇 가지 일반적인 방법이 있습니까? 나는 바퀴를 재발 명하고 싶지 않다 ...

고맙습니다.

+0

내 "안녕하세요"접두어를 잘라 냈습니다. ( – Slav

답변

3

기본적으로 기본 128 인코딩입니다 : 각 바이트는 7 비트 기본 128 "숫자"이고 마지막 비트인지 여부를 나타내는 단일 비트 플래그입니다. 입니다. 이것을하는 일반적인 방법.

참조 예 :

0

다만 대략 어떤 데이터 압축 알고리즘은 그 종류의 자료 흐름을 아주 잘 압축 할 수있을 것입니다. 귀하의 언어가 제공하는 압축 라이브러리를 사용하십시오.

+0

아마도 base-128은 아마도 여기에 훨씬 적합 할 것입니다 ... – SamB