데이터의 특성을 감안할 때 일종의 원시 샘플을 처리하는 것 같습니다. 그래서 가장 쉽고 가장 일반적인 "손실"기법은 원하는 수준까지 정밀도를 줄여 하위 비트를 제거하는 것입니다.
"하단 비트를 버려야합니다."는 "다음 10의 거듭 제곱"과 완전히 다릅니다. 컴퓨터는 2 번베이스에서 작동하며 가능한 모든 하위 비트가 "00000"으로 압축되기를 원합니다. 이 방법은 선택된 압축 알고리즘이 예측 가능한 0 비트 패턴을 사용한다고 가정합니다.
또 다른 방법은 더 복잡하고 더 구체적이며 색인으로 값을 표로 변환하는 것입니다. 장점은 원하는 곳에서 정밀도를 "목표"할 수 있다는 것입니다. 분명한 단점은 테이블이 배포 패턴에만 해당된다는 것입니다.
또한 값 자체가 아닌 값 사이의 관계가있는 경우 값의 델타와 이전 값의 델타를 저장할 수도 있습니다. 이것은 압축에도 도움이됩니다.
데이터를 압축하려면 적절한 크기 (예 : 64KB)의 패킷으로 그룹화해야합니다. 단일 필드에서 압축 알고리즘을 사용하면 적합한 결과를 얻을 수 있습니다. 이는 차례로 필드에 액세스 할 때마다 전체 패킷의 압축을 풀어야하므로, 원하는 부분에 따라 더 잘 조정해야 함을 의미합니다. 순차적 액세스는 이러한 상황에서 다루기가 더 쉽습니다.
압축 알고리즘과 관련하여 이러한 데이터는 "실시간"이기 때문에 데이터 액세스가 지연 시간에 미치는 영향은 매우 적습니다.
거기에 몇 가지 오픈 소스 대안이 있습니다. 라이센스 관리를 쉽게하기 위해 BSD 대안을 추천합니다. 당신은 C++을 사용하기 때문에, 다음과 같은 것들에 적합한 모양 : http://code.google.com/p/snappy/ 및 http://code.google.com/p/lz4/
하면 기본적으로 JPEG 코덱의 구현을 찾고 계십니까? 어떤 언어로 작업하고 있습니까? –
어떤 종류의 데이터가 관련되어 있습니까? 이미지 압축은 텍스트 외환과 매우 다릅니다. – ergosys
통계 SE 사이트에서 더 좋을 것 같습니다. 데이터 샘플링, 변환, 요약, 분석 등은 모두 통계 영역에 있습니다. 데이터가 특정 성격, e, g, 이미지, 오디오, 텍스트 등일 경우보다 전문화 된 방법이 적용됩니다. – Iterator