Đồ áN TốT NGHIệP
Đề Tài:
TìM HIểU NGÔN NGữ VC++ 6.0 Và ứng dụng
trong việc nén và giải nén tập tin văn bản
GVHD: Th.s Huỳnh Thanh Bình
SVTH:Nguyễn Đức Nghĩa
MSSV:98S1049
Lớp 40TH
Nha Trang 10/2003
Lời Cảm Ơn
Em xin đợc nói lên lời cảm ơn đấng
sinh thành và Thầy, Cô đã nuôi, dạy
em lớn khôn.
Yêu cầu của đề tài
Yêu cầu của đề tài
Tìm hiểu ngôn ngữ VC ++ 6.0
Nghiên cứu và cài đặt một số thuật
toán nén và giải nén tập tin văn bản
Nhng khỏi nim c bn v mc
Nhng khỏi nim c bn v mc
ớch ca vic nộn d liu.
ớch ca vic nộn d liu.
Mt s phng phỏp nộn
Mt s phng phỏp nộn
Dữ liệu Mã hoá Đóng gói Dữ liệu nén
Công đoạn giải nén:
Giải mã
Mã hoá
Dữ liệu nén
Dữ liệu gốc
MỘT SỐ PHƯƠNG PHÁP NÉN
MỘT SỐ PHƯƠNG PHÁP NÉN
*Định nghĩa nén dữ liệu
Là để ghi lại dòng dữ liệu sao cho tốn ít bộ nhớ hơn mà có thể
cho phép chúng ta khôi phục lại dữ liệu ban đầu.
*Một số loại mã
Mã ký hiệu:Quy ước các mã được sử dụng để nhận ra một
chuỗi các sự kiện khác nhau.
Mã đóng gói:Trong phương pháp mã bao giờ cũng có một
khâu đóng gói.
Mã theo độ dài:Là phát hiện một ký tự có số lần xuất hiện liên
tiếp vượt qua một ngưỡng cố định nào đó.
*
*
Mô hình nén
Mô hình nén
Nén dữ liệu có mô hình nguồn
Có hai loại từ điển:
Có hai loại từ điển:
Tù điển tĩnh:
Tù điển tĩnh:Mã có từ điển cố định được gọi là mã tĩnh hay nói cách
Mã có từ điển cố định được gọi là mã tĩnh hay nói cách
khác là từ điển tĩnh.
khác là từ điển tĩnh.
Từ điển động:
Từ điển động: Được xây dựng trong quá trình chạy chương trình.
Được xây dựng trong quá trình chạy chương trình.
THỰC HIỆN CHƯƠNG TRÌNH
THỰC HIỆN CHƯƠNG TRÌNH
*Chương trình đã cài đặt được các thuật toán
*Chương trình đã cài đặt được các thuật toán
nén theo kỹ thuật từ điển sau:
nén theo kỹ thuật từ điển sau:
Đầu ra là ký tự đầu tiên của vùng đệm và chuyển vị trí
mã hoá một ký tự ở trước.
4.Nếu có nhiều ký tự trong luồng đầu vào thì trở về bước 2.
Thuật toán giải nén:
Ngược lại quá trình nén.
Ví dụ thuật toán nén lzss
Ví dụ thuật toán nén lzss
*Thuật toán LZW
*Thuật toán LZW
Thuật toán nén lzw:
String=lấy ký tự vào
While vẫn còn ký tự vào Do
begin
ch:=lấy ký tự vào
if String +ch là trong bảng chuỗi then
String = String+ch
else
begin
Đầu ra Code của String
Thêm String + ch tới bảng chuỗi String
String=ch
end;
End;Thuật toán giải nén LZW
Thuật toán giải nén LZW
Read Old_code
Do hạn chế về tài liệu tham khảo nên một số thuật toán nén
khác chưa cài đặt được.
*Hướng phát triễn
Có thể mở rộng chương trình để thực hiện trong việc nén tập
tin hình ảnh.