정말 간단한 압축 작업을 위해 프로젝트에서 MiniLZO를 사용하고 있습니다. 한 프로그램으로 압축하고 다른 프로그램으로 압축을 풀고 있습니다. 얼마나 많은 공간을 감압 버퍼에 할당할지 알고 싶습니다. 압축 해제 된 데이터가 얼마나 많은 공간을 차지하고 있는지를 선언하는 정수로 출력 파일에 주석을 달아야하는 번거 로움을 덜어 줄 수 있다면 공간을 너무 많이 할당하는 것이 좋습니다. 얼마나 많은 공간을 차지할 수 있을지 어떻게 알 수 있을까요?LZO 감압 버퍼 크기
몇 가지 고려 사항을 생각해 보면이 질문은 다음과 같이 요약됩니다. lzo1x 압축의 최대 압축률은 얼마입니까?
이것은 좋은 제안이기도하지만 주석을 추가하고 있습니다. 정확히 피하려고했던 것입니다. 따라서, 나는 단지 하나의 블록에서 데이터를 압축 할 수 있으며 (이미 저장된 방식이므로) 블록 크기로 주석을 달 수 있습니다. – Benson
출력에 * 압축 해제 * 크기를 저장하지 않으려 고 생각했습니다. 입력 블록이 항상 N 바이트보다 작지 않다면 어떤 종류의 end-of-block 마커를 저장하는 것을 피할 수는 없다고 생각합니다. 각 압축 된 스트림에는 정확하게 하나의 블록이 있으므로 구분 기호가 필요 없습니다. 또는 버퍼를 채울 때 압축 해제기를 확장하여 부분 결과와 "수행 할 작업"코드를 반환 할 수 있으므로 반복적으로 호출하여 전체 입력을 압축 해제 할 수 있습니다. –
좋은 제안이지만, 압축 해제 된 버퍼의 크기를 저장하는 것이 그보다 간단 할 것이라고 생각합니다. 그래서, 내 질문에 대한 답변은 "그것을 극복하고 압축 해제 된 크기로 주석을 달아주세요"라고 생각합니다. – Benson