bzip2 파일 (5GB 이상)이 있고 블록 #x 만 압축을 풀고 싶다고 말합니다. 내 데이터가있는 곳 (블록이 매번 다릅니다)이 있기 때문입니다. 어떻게하면 좋을까요?특정 bzip2 블록의 압축을 풉니 다.
모든 블록이 어디에 있는지 색인을 작성한 다음 파일에서 필요로하는 블록을 잘라내 bzip2recover를 적용하는 방법에 대해 생각했습니다.
또한 한 번에 1MB라고 말한 다음 파일에이 파일을 추가하고 위치를 기록하는 방법을 생각해 보았습니다. 필요할 때 파일을 간단히 가져 오는 것이었지만 원본 bzip2 파일은 그대로 유지하고 싶습니다.
내가 선호하는 언어는 Ruby이지만 모든 언어의 해결책은 저에게 있습니다 (원칙을 이해하는 한).
sic! 블록 시작은 바이트 경계가 아닐 수 있습니다 :(원래의 데이터 블록 크기의 비트 변위와 크기의 목록을 얻으려면 "seek-bzip2"에 bzip 테이블 프로그램이 있습니다.) – osgx
불행하게도 "bzip 테이블"은 거의 동일합니다 실제 압축 풀기 속도 : (. 그것은 거의 전체 압축 풀기 사이클을 수행하지만 CRC를 확인하지 않습니다. – osgx
또한 Jeff Gilchrist의 pbzip2와 같은 병렬 bzips를 살펴보십시오. 병렬 압축 풀기에서 블록 헤더를 검색해야합니다 코드 : http://www.google.com/codesearch/p?hl=ko#calSvFpbfuI/trunk/trunk/demo/pbzip2-1.0.2/pbzip2.cpp&q=pbzip2&sa=N&cd=2&ct=rc&l=3'producer_decompress' 함수 – osgx