Nén dữ liệu tiếng việt sử dụng phương pháp mã hóa số học

11 373 0
Nén dữ liệu tiếng việt sử dụng phương pháp mã hóa số học

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUN TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THƠNG HÀ DIỆU THÚY NÉN DỮ LIỆU TIẾNG VIỆT SỬ DỤNG PHƯƠNG PHÁP MÃ HĨA SỐ HỌC Chun ngành: Khoa học máy tính Mã số: 60 48 01 TĨM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Ngun – 2013 Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ Cơng trình hồn thành TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THƠNG Người hướng dẫn khoa học: PGS.TS Nguyễn Hữu Điển Phản biện 1: TS Lê Quang Minh Phản biện 2: TS Trần Đức Sự Luận văn bảo vệ trước Hội đồng chấm luận văn họp tại: Trường Đại học Cơng nghệ thơng tin & Truyền thơng Vào hồi 11 00 ngày 09 tháng 11 năm 2013 Có thể tìm hiểu luận văn tại: - Trung tâm học liệu Đại học Thái Ngun - Thư viện trường Đại học CNTT & Truyền thơng Thái Ngun ii Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ MỞ ĐẦU Đặt vấn đề Nén liệu kỹ thuật quan trọng nhiều lĩnh vực khác Chính nhờ có kỹ thuật nén liệu mà ngày có phương tiện truyền thơng đại phục vụ cho sống truyền hình cáp, truyền hình số, điện thoại, internet, hệ thống lưu trữ, văn nhiều khía cạnh khác Do kỹ thuật nén liệu ngày quan tâm phát triển nhiều Tiếng Việt ngơn ngữ thuộc hệ thống chữ Latinh, sử dụng nhiều dấu kèm với ngun âm, ngồi bảng chữ tiếng Anh, tiếng Việt có thêm ký tự: Sáu ngun âm a, e, i, o, u, y với dấu (sắc, huyền, hỏi, ngã, nặng) tổ hợp thành 30 ký tự Sáu ngun âm ă, â, ê, ơ, ơ, với sáu dấu (sắc, huyền, hỏi, ngã, nặng, khơng dấu) tổ hợp thành 36 ký tự Một phụ âm đặc biệt đ Vậy cần thêm (30 + 36 +1) x = 134 ký tự cho tiếng Việt Với bảng mã ASCII bit sử dụng phổ biến máy tính, mã hóa 256 ký tự Tuy nhiên, ký tự có mã từ đến 127 chuẩn hóa thuộc diện “cấm vi phạm” 128 chỗ (mã từ 128 đến 255) “tự do” Vậy xây dựng ứng với mã sử dụng hết vùng tự mà thiếu 134 – 128 = chỗ Hiện sử dụng chuẩn Unicode để lưu trữ ký tự tiếng Việt Như biết chuẩn Unicode chuẩn 2byte, lưu trữ văn tiếng Việt hệ thống lưu trữ xẩy tình trạng dư thừa liệu Điều dẫn đến việc lưu trữ xử lý lãng tài ngun hệ Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ thống, truyền tải đường truyền mạng chiếm băng thơng nhiều Từ u cầu thực tế đòi hỏi phải loại bỏ dư thừa liệu trước lưu trữ xử lý Chính em chọn đề tài “Nén liệu tiếng Việt sử dụng thuật tốn mã hóa số học” Đối tượng phạm vi nghiên cứu - Các chuẩn lưu trữ tiếng Việt (Unicode, TCVN3, VNI-Vindows…) - Các phương pháp kỹ thuật nén liệu - Các phần mềm nén liệu Hướng nghiên cứu đề tài - Nghiên cứu phương pháp nén liệu nén bảo tồn liệu (lossless data compression) nén mát liệu (lossy data compression) - Nghiên cứu kỹ thuật nén liệu như: kỹ thuật xử lý lặp lại xâu (RLE), mã hóa Huffman, kỹ thuật nén LZW (Lempel - Zip Welch)… - Nghiên cứu kỹ thuật nén bảo tồn liệu Arithmetic Coding (Phương pháp mã hóa số học) - Cài đặt thực nghiệm việc nén liệu Arithmetic Coding - Phân tích, so sánh đánh giá kết thực nghiệm với kỹ thuật nén liệu (văn tiếng Việt) khác Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ Phương pháp nghiên cứu - Nghiên cứu tài liệu kỹ thuật mã hóa nén liệu - Tìm hiểu chuẩn tiếng Việt Việt Nam - Khảo sát thực tế phần mềm nén liệu việc nén văn tiếng Việt - Phân tích, đánh giá kỹ thuật (thuật tốn) nén liệu - Cài đặt kỹ thuật nén Arithmetic Coding - Triển khai thử nghiệm loại liệu văn tiếng Việt Ý nghĩa khoa học ý nghĩa thực tiễn đề tài - Nghiên cứu hồn thiện kỹ thuật nén bảo tồn liệu cho văn tiếng Việt - Xây dựng ứng dụng nén liệu cho văn tiếng Việt Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ Chương 1: TỔNG QUAN VỀ NÉN DỮ LIỆU 1.1 Tổng quan nén liệu 1.1.1 Sơ lược nén liệu 1.1.1.1 Khái niệm nén liệu Nén liệu q trình làm giảm lượng thơng tin “dư thừa” liệu gốc vậy, lượng thơng tin thu sau nén thường nhỏ so với liệu gốc nhiều 1.1.1.2 Ngun tắc nén liệu Thơng thường, hầu hết tập tin máy tính có nhiều thơng tin dư thừa, việc thực nén tập tin thực chất mã hố lại tập tin để loại bỏ thơng tin dư thừa Nhìn chung khơng thể có phương pháp nén tổng qt cho kết tốt tất loại tập tin khơng ta áp dụng n lần phương pháp nén để đạt tập tin nhỏ tuỳ ý Kỹ thuật nén tập tin thường áp dụng cho tập tin văn (Trong có số kí tự có xác suất xuất nhiều kí tự khác), tập tin ảnh bitmap (Mà có mảng lớn đồng nhất), tập tin dùng để biểu diễn âm dạng số hố tín hiệu tương tự (analog signal) khác (Các tín hiệu có mẫu lặp lại nhiều lần) Ðối với tập tin nhị phân tập tin chương trình sau nén khơng tiết kiệm nhiều Ngồi ra, số trường hợp để nâng cao hệ số nén người ta bỏ bớt số thơng tin tập tin 1.1.2 Các phương pháp nén liệu 1.1.2.1 Nén bảo tồn liệu Đó mơ hình nén liệu mà cho phép người sử dụng bảo tồn thơng tin suốt q trình nén Điều giải thích sau: Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ Giả sử ta có liệu nguồn A liệu nén A' Sau ta giải nén A' tập A'' mà tập A'' hồn tồn giống với tập A ban đầu giải nén Thơng thường, kỹ thuật áp dụng với loại liệu văn độ xác văn 1.1.2.2 Nén hao hụt liệu Trong kỹ thuật nén, bên cạnh nén bảo tồn người ta đưa khái niệm nén khơng bảo tồn (hay gọi nén hao hụt liệu) Nén khơng bảo tồn mơ hình nén liệu mà tính bảo tồn liệu khơng coi trọng Nó có nghĩa ta có tập liệu A, tập nén A' sau giải nén ta thu tập A'' khác tập A ban đầu Kỹ thuật thường áp dụng cho việc nén liệu loại tệp ảnh nói chung khơng ảnh hưởng nhiều đến hình dạng ảnh 1.2 Các kỹ thuật nén liệu văn 1.2.1 Xử lý lặp lại xâu ký tự (Run – Length Encoding) Mục đích thuật tốn tìm ký tự lặp lại nhiều lần số lần lặp lại ký tự đó, thay cụm lặp lại biểu diễn nhỏ gọn Có thể biểu diễn rút gọn dạng cặp ký hiệu (r,s,l) với s ký hiệu dãy ký tự nằm bảng chữ cái, r l ký hiệu khơng xuất bảng chữ cái, tùy trường hợp mà r l lại có ý nghĩa khác Ví dụ: Cho chuỗi đầu vào MMMMMMM (chữ M lặp lại lần), chuỗi thay (r,7,M) hay viết tắt r7M r với ý nghĩa ký hiệu cho việc xuất lặp lại (repeating) đòi hỏi chữ r khơng xuất bảng chữ đầu vào Cho chuỗi đầu vào ABCDEFG (khơng xuất lặp lại) chuỗi thay (n,7,ABCDEFGH), hay viết tắt n7ABCDEFG n Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ với ý nghĩa ký hiệu cho việc khơng xuất lặp lại (non-repeating), chữ n khơng xuất bảng chữ đầu vào Thuật tốn hiệu liệu đầu vào gồm nhiều ký tự bị lặp lại liên tiếp Ký tự đầu vào dạng chữ bảng chữ cái, bit 0, nhị phân; thơng số màu điểm ảnh, khối hợp thành liệu kiểu âm Trên thực tế, thuật tốn áp dụng ngày nay: thuật tốn HDC (hardware data compression), sử dụng ổ băng kết nối với hệ thống máy tính IBM, thuật tốn tương tự dùng chuẩn SNA (System network architecture) IBM 1.2.2 Mã hóa Huffman 1.2.2.1 Mã Huffman tĩnh * Ngun lý: Ngun lý phương pháp Huffman mã hố bytes tệp liệu nguồn biến nhị phân Nó tạo mã độ dài biến thiên tập hợp bits Đây phương pháp nén kiểu thống kê, ký tự xuất nhiều có mã ngắn Mã Huffman có tính chất quan trọng: mã ký hiệu khơng thể phần đầu mã ký hiệu khác Nếu ký hiệu mã hố tổ hợp nhị phân 101 tổ hợp 10110 khơng thể mã ký hiệu khác tệp nguồn Do giải mã cần phải đọc bit gặp mã ký hiệu * Thuật tốn: Việc xây dựng mã hố Huffman tiến hành thuật tốn khác với thuật tốn Fano - Shannon Nếu Fano - Shannon xây dựng từ xuống cách chia đơi gán cho Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ phần bít, cơng việc kết thúc khơng thể tiến hành phân chia tiếp Huffman lại thiết kế từ lên, cơng việc kết thúc điểm gốc Ví dụ : Cho mơ hình nguồn có trạng thái tần suất tương ứng sau: (A, 0.2); (E, 0.3); (I, 0.1), (0 0,2); (U, 0.1); (Ơ, 0.1) ta có: Ký tự Tần xuất Mã A 0.2 10 E 0.3 01 I 0.1 001 O 0.2 11 U 0.1 0000 Ơ 0.1 0001 01 0 1 u e a o i Bước1: Nhóm chữ có tần suất nhỏ tạo chữ kép Sau lần nhóm số chữ c -> 0.3 e -> 0.3 e -> 0.3 {a, 0} -> 0.4 {{{u, ơ},:} a -> 0.2 a -> 0.2 {{u,ơ},i} -> 0.3 e -> 0.3 {a, o{ -> o -> 0.2 o -> 0.2 a -> 0.2 i -> 0.1 {u,ơ} -> 0.2 u -> 0.1 i -> 0.1 {{u, ơ}, i} -> 0.3 o -> 0.2 -> 0.1 Bước 2: Tạo phân nhánh ngược với q trình nhóm từ nhánh trái có mã 0, nhánh phải mã Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ {{{{u, ơ}, 1}, e}, {a, o}} {{{u, ơ}, i}, e} {a, o} 10 {{{ u, ơ}, i}, e a o {u, ơ} i u Vậy mã ký tự là: u -> 0000; e -> 01 -> 0001; a -> 10 i -> 001; o -> 11 Thuật tốn nén: Bước 1: Tìm hai ký tự có trọng số nhỏ ghép lại làm một, trọng số ký tự tổng trọng số hai ký tự đem ghép Bước 2: Trong số lượng ký tự danh sách lớn thực bước một, khơng thực bước ba Bước ba: Tách ký tự cuối tạo nhị phân với qui ước bên trái mã 0, bên phải mã Thuật tốn giải nén: Bước 1: Đọc bit tập tin nén duyệt nhị phân xác định hết Lấy ký tự ghi tệp giải nén Bước 2: Trong chưa hết tập tin nén thực bước một, ngược lại thực bước ba Bước 3: Kết thúc thuật tốn Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ Một số hạn chế mã Huffman: + Mã Huffman thực biết tần xuất xuất ký tự + Mã Huffman giải độ dư thừa phân bố ký tự + Huffman tĩnh đòi hỏi phải xây dựng nhị phân sẵn chứa khả Điều đòi hỏi thời gian khơng ta khơng biết trước kiểu liệu thực nén + Q trình giải nén phức tạp chiều dài mã khơng biết trước ký tự tìm 1.2.2.2 Thuật tốn Huffman động Trong thuật tốn Huffman động sử dụng hai nhị phân cân sổ χ Khái niệm cửa sổ χ: Cửa sổ χ số lượng lớn ký tự thêm vào nhị phân Huffman q trình nén văn Trong q trình nén liệu, ta tiến hành thống kê ký tự Nhờ việc thống kê mà sinh nén Thuật tốn nén: Bước 1: Khởi tạo bảng mã Huffman(front tree) với ký tự đặc biệt, có số đếm Bước 2: Tạo mã thứ tự theo ngun tắc cân Bước 3: While not eof(f) Begin Getchar-> ch If ch thuộc bảng mã thứ tự then Begin Ghi mã 0/1 ký tự ký tự đặc biệt tệp đích Xóa ký tự bảng mã thứ tự, thêm ký tự vào bảng mã Huffman (trong front tree) với số đếm End Else Begin Số hóa trung tâm học liệu http://lrc.tnu.edu.vn/ [...]... động chúng ta sử dụng hai cây nhị phân cân và một của sổ χ Khái niệm cửa sổ χ: Cửa sổ χ là một số lượng rất lớn các ký tự được thêm vào cây nhị phân Huffman trong q trình nén văn bản Trong q trình nén dữ liệu, ta tiến hành thống kê các ký tự Nhờ việc thống kê này mà sinh ra bộ nén Thuật tốn nén: Bước 1: Khởi tạo bảng mã Huffman(front tree) với ký tự đặc biệt, có số đếm bằng 1 Bước 2: Tạo mã thứ tự theo...9 Một số những hạn chế của mã Huffman: + Mã Huffman chỉ thực hiện được khi biết được tần xuất xuất hiện của các ký tự + Mã Huffman chỉ giải quyết được độ dư thừa phân bố ký tự + Huffman tĩnh đòi hỏi phải xây dựng cây nhị phân sẵn chứa các khả năng Điều này đòi hỏi thời gian khơng ít do ta khơng biết trước kiểu dữ liệu sẽ được thực hiện nén + Q trình giải nén phức tạp do chiều dài mã khơng biết... tự theo ngun tắc cân bằng Bước 3: While not eof(f) do Begin Getchar-> ch If ch thuộc bảng mã thứ tự then Begin Ghi mã 0/1 của ký tự đó và ký tự đặc biệt ra tệp đích Xóa ký tự đó ở bảng mã thứ tự, thêm ký tự đó vào bảng mã Huffman (trong cây front tree) với số đếm bằng 1 End Else Begin Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Ngày đăng: 30/09/2016, 11:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan