Vui lòng đề xuất một công nghệ phù hợp với nhiệm vụ sau.API đơn giản để truy cập ngẫu nhiên vào một tệp dữ liệu nén
Tôi có một đoạn dữ liệu khá lớn (500MB), về cơ bản là ma trận số. Các entropy dữ liệu là thấp (nó nên được nén tốt) và lưu trữ là đắt tiền, nơi nó ngồi.
Điều tôi đang tìm kiếm, là nén nó bằng thuật toán nén tốt (Giống như, nói, GZip) với các điểm đánh dấu cho phép truy cập ngẫu nhiên rất thường xuyên. Truy cập ngẫu nhiên như trong "đọc byte từ vị trí [địa chỉ 64 bit] trong luồng gốc (không nén)". Đây là một chút khác biệt so với các thư viện làm lệch hướng cổ điển như ZLIB, điều này sẽ cho phép bạn giải nén luồng liên tục. Những gì tôi muốn, là có sự truy cập ngẫu nhiên ở độ trễ của, nói rằng, càng nhiều càng tốt 1MB công việc giải nén cho mỗi byte đọc.
Tất nhiên, tôi hy vọng sẽ sử dụng thư viện hiện có thay vì phát minh lại bánh xe NIH.
Trong khi dữ liệu thô được xử lý theo khối, khối dữ liệu nén không có cùng kích thước để bạn không thể nhảy xung quanh trong dữ liệu đã nén để tìm một khối cụ thể. –
Nếu tệp được chia thành các khối mà mỗi tệp đại diện cho 65.536 (*) byte dữ liệu nguồn, người ta có thể chi tiêu bốn byte cho mỗi khối trên một bảng cho biết mỗi người bắt đầu từ đâu. (*) Người ta cũng có thể sử dụng kích thước khối 1.048.576 byte, nhưng ngay cả với khối 64K tệp nửa gig sẽ chỉ cần một bảng 32Kbyte. – supercat