Nén không mất dữ liệu
Nén không mất dữ liệu là nơi không có dữ liệu bị mất. Tất cả mọi thứ được nhập vào có thể được lấy ra một cách hoàn hảo. Điều này hoạt động tốt cho các tập tin văn bản hoặc nhị phân trong đó lỗi nhỏ nhất sẽ được nhận thấy.
Nén tệp hoạt động bằng cách lấy tệp và quét các mẫu và dịch các mẫu đó sang một thứ khác chiếm ít không gian hơn.
Ví dụ: "AAAAAAAA" có thể được chuyển thành "8A".
Được cho rằng đó không phải là cách nó hoạt động chính xác bởi vì sau đó bạn có vấn đề gì nếu "8" ở trong bản rõ. Bạn sẽ giải nén tập tin và nó sẽ sai. Một nơi tốt để bắt đầu là Wikipedia hoặc Thuật toán nén dữ liệu LZW .
Có một số mã psuedo đơn giản cho điều này được sao chép dưới đây:
STRING = get input character
WHILE there are still input characters DO
CHARACTER = get input character
IF STRING+CHARACTER is in the string table then
STRING = STRING+character
ELSE
output the code for STRING
add STRING+CHARACTER to the string table
STRING = CHARACTER
END of IF
END of WHILE
output the code for STRING
Tất cả nén sử dụng một từ điển tra cứu được sử dụng để nén và giải nén tệp. Từ điển càng lớn, bạn càng có thể nén nó, mặc dù bạn chạy theo Luật lợi nhuận giảm dần .
Cũng đáng lưu ý rằng nén không phải lúc nào cũng mang lại một tệp nhỏ hơn. Có những tình huống (với các tệp nhỏ hoặc khi nén dữ liệu ngẫu nhiên ) mà bạn sẽ không nhận được tệp nhỏ hơn sau khi nén. Đã có một số thách thức thú vị liên quan đến khả năng nén dữ liệu ngẫu nhiên.
Nén "mất mát"
Trên đây chủ yếu liên quan đến nén không mất mát . Các loại nén khác được sử dụng trong các ứng dụng video / âm thanh như MP3, JPG và h.264 là các ví dụ về nén mất .
Nén tổn thất hoạt động bằng cách loại bỏ dữ liệu ít có khả năng được chú ý nhất. Trong âm thanh, đây là âm thanh khoảng 30.000 Hrz và dưới 100 Hrz, cùng với những thứ khác. Trong ảnh (tĩnh), nó loại bỏ những thứ khác nhau và hợp nhất các hình ảnh lại với nhau, cùng với việc loại bỏ dữ liệu.
Nén tổn thất là một hình thức mã hóa biến đổi . Nó tính trung bình dữ liệu để giảm kích thước tổng thể. Ví dụ: một khối 10 pixel trong một hình ảnh, tất cả các màu hơi khác nhau có thể được hợp nhất với nhau thành một màu và do đó được nén.
Trong nén video, các hướng dẫn thường được đặt để chỉ vẽ lại các pixel đã thay đổi kể từ khung hình cuối cùng hoặc khung hình chính .