2010-09-04 33 views
12

Tôi muốn nén có thể đảo ngược đối với một loại chuỗi để tôi có thể đưa nó vào URL mà không theo dõi những gì nó đề cập đến. Chuỗi tôi muốn nén là chuỗi đường dẫn SVG, dưới đây là một đoạn mồi ngắn: http://apike.ca/prog_svg_paths.htmlLàm thế nào để nén chuỗi?

Về cơ bản, chuỗi có chứa ký tự, sau đó là số nguyên tùy ý và cứ như vậy .

Nếu có ai biết về một nguồn lực tốt cho điều này, nó sẽ được nhiều đánh giá cao!

Jason

Trả lời

6

Nhiều thuật toán nén cũng là tài liệu, một cặp vợ chồng thậm chí có js triển khai:

  • GZip Một thuật toán nén (hợp lý) lợi ích chung, tôi biết có một impl JS, tôi chỉ săn URL

  • LZW một điểm câu hỏi để thực hiện một LZW trong JS

  • Arithmetic coding (i đã làm điều này, nhưng mô hình nó sử dụng là ngu ngốc như vậy không đạt được tỷ lệ nén tốt nhất nó có thể)

2

Bạn có thể thử Huffman compression. Số lượng ký tự khác nhau là 20-30 và nếu chuỗi dài, nén phải có hiệu lực.

2

Có vẻ như bạn có thể hưởng lợi từ nén RLE đơn và đôi.

Một mồi về vấn đề này có thể được nhìn thấy ở đây:

http://pp19dd.com/2011/10/query-string-limits-encoding-hundreds-of-checkboxes-with-rle/#demo

Thư viện cần phải đủ linh hoạt để thay đổi mô hình nén của bạn để một cái gì đó thích hợp hơn. Phần ghi này giải thích cách thức hoạt động của nó; có thể là một khởi đầu tốt để tối ưu hóa trường hợp SVG của bạn.

+0

RLE sẽ không nén dữ liệu đường dẫn SVG rất tốt. – Phrogz

Các vấn đề liên quan