Trang chủ / Máy tính / Trình mô phỏng nén dữ liệu trực tuyến
Công cụ trực tuyến miễn phí

Trình mô phỏng nén dữ liệu trực tuyến

Dán văn bản, xem mã Huffman, số bit UTF-8 gốc và bit tải trọng. Công cụ giáo dục miễn phí, chạy trong trình duyệt. Quá trình xử lý diễn ra cục bộ trong trình…

Bắt đầu sử dụng

Trình mô phỏng nén Huffman hoạt động như thế nào?

Công cụ này mang tính giáo dục, không phải trình nén tệp. Nó xây dựng cây Huffman dựa trên tần suất xuất hiện của từng ký tự trong văn bản bạn dán vào. Ký tự xuất hiện nhiều sẽ có mã ngắn hơn, ký tự ít gặp có mã dài hơn. Kết quả hiển thị số bit gốc (theo UTF-8) và số bit tải trọng sau khi mã hóa Huffman.

Ví dụ cụ thể

Nhập AAAA: văn bản có 4 ký tự 'A', mỗi ký tự 1 byte UTF-8, tổng cộng 32 bit gốc. Vì chỉ có một ký tự, mã Huffman là 0, nên tải trọng chỉ 4 bit.

Nhập ABBC: 4 ký tự, 32 bit gốc. Tần suất: A=1, B=2, C=1. Cây Huffman gán mã ngắn cho B (ví dụ 0), mã dài hơn cho A và C (ví dụ 1011). Tổng bit tải trọng = 1*2 + 2*1 + 1*2 = 6 bit.

Nhập 你好: hai ký tự Unicode, mỗi ký tự 3 byte UTF-8, tổng 48 bit gốc. Tải trọng Huffman chỉ 2 bit (mỗi ký tự 1 bit).

Nhập U+1F600 U+1F600 (hai biểu tượng mặt cười): mỗi biểu tượng chiếm 4 byte UTF-8, tổng 64 bit gốc. Tải trọng 2 bit.

Ý nghĩa của kết quả

Số bit tải trọng không bao gồm bảng mã, cây Huffman, tiêu đề, phần đệm hay chi phí đóng gói. Do đó, nó không phải kích thước tệp nén thực tế. Với văn bản ngắn, tỷ lệ nén có thể không có ý nghĩa thực tế.

Giới hạn và lưu ý

  • Giới hạn nhập là 100.000 đơn vị mã UTF-16 (không phải byte hay số ký tự người dùng). Nhiều biểu tượng cảm xúc chiếm 2 đơn vị mã.
  • Khoảng trắng, xuống dòng, chữ hoa/thường, dấu tổ hợp được coi là các ký tự riêng biệt.
  • Chuỗi biểu tượng cảm xúc có thể chứa nhiều điểm mã, mỗi điểm mã được xử lý riêng.
  • Ký tự khoảng trắng có thể hiển thị dạng escape trong JSON (ví dụ \n), không phải ký tự xuống dòng thực sự.
  • Văn bản trống bị từ chối.
  • Xử lý diễn ra hoàn toàn trong trình duyệt, không gửi dữ liệu lên máy chủ.

Câu hỏi thường gặp

1. Tại sao kết quả của tôi hiển thị mã nhị phân khác với ví dụ?

Khi tần suất các ký tự bằng nhau, thứ tự kết hợp có thể khác, dẫn đến mã nhị phân khác. Điều quan trọng là so sánh tổng số bit tải trọng, không phải mã cụ thể.

2. Tôi có thể tải xuống tệp nén từ công cụ này không?

Không. Công cụ chỉ mô phỏng mã hóa Huffman cho văn bản, không tạo tệp nén, không có bộ giải nén hay tùy chọn mức nén.

3. Tại sao số bit gốc của tôi không khớp với số ký tự tôi đếm được?

Công cụ tính theo mã hóa UTF-8: ký tự ASCII 1 byte, ký tự có dấu 2-3 byte, biểu tượng cảm xúc 4 byte. Ngoài ra, các ký tự như khoảng trắng, xuống dòng, dấu tổ hợp đều được tính riêng.

Quá trình xử lý diễn ra cục bộ trong trình duyệt.