Tỷ lệ nén
Tỷ số giữa kích thước sau nén so với kích thước dữ liệu gốc trong nén dữ liệu. Dữ liệu văn bản có tính dư thừa cao nên thường đạt tỷ lệ nén 60-80%.
Tỷ lệ nén (compression ratio) là chỉ số đo hiệu quả nén dữ liệu. Với kích thước dữ liệu gốc D và kích thước sau nén C, cách nói "tỷ lệ nén 75%" trong bài này chỉ (1 - C/D) x 100%; còn compression ratio trong tiếng Anh là tỷ số D/C (cùng ví dụ được viết là 4:1) và phần trăm (1 - C/D) được gọi riêng là space savings. Tệp văn bản 100KB nén còn 25KB thì tỷ lệ nén là 75%. Tỷ lệ nén càng cao, càng cần ít dung lượng lưu trữ và băng thông mạng.
Dữ liệu văn bản có xu hướng đạt tỷ lệ nén cao hơn so với hình ảnh hay video. Văn bản ngôn ngữ tự nhiên chứa nhiều yếu tố dư thừa: sự lệch tần suất xuất hiện ký tự (trong tiếng Anh "e" xuất hiện nhiều nhất), từ lặp lại, cụm từ khuôn mẫu. Kết quả phụ thuộc vào nội dung nhiều hơn là ngôn ngữ: cùng một cụm từ hay định dạng cố định lặp lại đến mức nào gần như phản ánh thẳng vào kích thước sau nén. Tiếng Việt sử dụng bảng chữ cái Latin mở rộng với dấu thanh, mỗi ký tự có dấu chiếm 2-3 byte trong UTF-8 nên số byte gốc lớn hơn, nhưng chính các chuỗi byte đó lặp lại và vẫn nén tốt; khi cần con số, cách chắc chắn duy nhất là đo trên đúng dữ liệu sẽ phân phối.
Trên web, nén gzip/Brotli cho phản hồi HTTP giảm đáng kể lượng dữ liệu truyền tải. HTML, CSS, JavaScript đều là dữ liệu văn bản và hưởng lợi lớn từ nén. Brotli có xu hướng nén nhỏ hơn gzip và được các trình duyệt chính hỗ trợ, nhưng mức chênh lệch thay đổi theo dữ liệu và mức nén, nên muốn biết giảm được bao nhiêu thì chỉ có cách thử cả hai trên chính tệp mình phân phối. Tệp HTML 10KB nén còn 2.5KB thì số byte truyền đi chỉ còn một phần tư, điều có ý nghĩa với người dùng truy cập qua mạng di động.
Thuật toán nén văn bản chia thành 2 loại chính. Mã hóa Huffman gán chuỗi bit có độ dài thay đổi dựa trên tần suất xuất hiện ký tự - ký tự phổ biến được biểu diễn bằng chuỗi bit ngắn hơn. Các thuật toán họ LZ77/LZ78 phát hiện mẫu lặp trong văn bản và tham chiếu bằng "vị trí và độ dài đã xuất hiện trước đó". gzip sử dụng thuật toán DEFLATE kết hợp cả hai phương pháp.
Mối quan hệ giữa số ký tự và tỷ lệ nén có tính chất thú vị. Cùng số ký tự nhưng nội dung khác nhau cho tỷ lệ nén rất khác. "aaaaaaaaaa" (lặp cùng ký tự) đạt tỷ lệ nén cực cao, nhưng chuỗi ký tự ngẫu nhiên hầu như không nén được. Điều này liên quan trực tiếp đến khái niệm entropy (lượng thông tin) trong lý thuyết thông tin: văn bản càng dư thừa thì tỷ lệ nén càng cao.
Trong thực tế, tỷ lệ nén ảnh hưởng trực tiếp đến chi phí lưu trữ và băng thông mạng. Tệp log và lịch sử chat lặp lại cùng một định dạng liên tục, nên thuộc nhóm văn bản nén đặc biệt hiệu quả và là đối tượng tự nhiên để giảm chi phí lưu trữ. Nén phản hồi API rút ngắn thời gian phản hồi trên mạng di động, cải thiện trải nghiệm người dùng. Văn bản càng dài thì hiệu quả nén càng lớn, nên với nội dung dài, việc có hay không có nén tạo ra sự khác biệt rõ rệt về hiệu năng.