Chương 1 TỔNG QUAN 1.1. Tổng quan về nén dữ liệu Trong khoa học máy tính và lí thuyết thông tin, nén dữ liệu là quá trình mã hóa thông tin dùng ít bit hơn so với thông tin chưa được mã hóa bằng cách dùng một hoặc kết hợp của các phương pháp nào đó. Dựa theo nguyên tắc này giúp tránh các hiện tượng kênh truyền bị quá tải và việc truyền tin trở nên kinh tế hơn .Nén dữ liệu giúp tiết kiệm các tài nguyên như dung lượng bộ nhớ, băng thông, thời gian. Ngược lại, dữ liệu đã được nén cần phải được giải nén để đọc (thực thi, nghe, xem v.v…), quá trình này cũng đòi hỏi các tài nguyên nhất định. Một ví dụ điển hình là việc nén video có thể đòi hỏi phần cứng đắt tiền để quá trình giải nén đủ nhanh để ta có thể xem được. Do đó việc thiết kế một chương trình nén dữ liệu phụ thuộc nhiều yếu tố như mức độ nén, độ méo (đối với nén có tổn hao), tài nguyên hệ thống dùng để thực hiện quá trình nén và giải nén dữ liệu.Mặc dù các chương trình nén dữ liệu thường sử dụng kết hợp nhiều thuật toán có độ phức tạp khác nhau tuy nhiên có thể mô tả bằng hình dưới đây. Hình 1.1: Tổng quan quá trình xữ lý dữ liệu 1.1.1. Các chương trình nén hoạt động như thế nào Nguyên tắc của các chương trình nén nói chung giống nhau: Tận dụng sự lặp lại của dữ liệu, các chuỗi dữ liệu lặp lại được thay thế bởi con trỏ chung có độ dài bé hơn. Kỹ thuật này rất có hiệu quả đối với dữ liệu dạng bảng tính, hoặc file DBF (nén trên 70%), vì tính lặp lại của dữ liệu loại này cao: File chương trình (.EXE hoặc .COM) nén được ít hơn. 1.1.2. Tốc độ và tỷ lệ nén Ngay cả khi tất cả các chương trình nén file đều dùng chung một thuật toán thì hoạt động của chúng cũng khác nhau. Mỗi hãng triển khai thuật toán một kiểu để dung hòa hai vấn đề: thời gian và tỷ lệ nén. Chương trình PKZIP thường trội hơn các chương trình nén khác về mặt tốc độ, về mặt tỷ lệ nén, nhiều khi nó cũng khá hơn. Tính ổn định của các chương trình nén cũng là điều cần quan tâm. Các file nén nói chung rất ít khi bị hỏng. Cũng cần lưu ý là các loại file nén không tương thích với nhau, tức là nếu gửi file nén cho người khác thì người đó cần phải có chương trình thích hợp mới giải nén ra được.