Nén Ảnh Mất Mát và Không Mất Mát: Khóa Luận Tốt Nghiệp Về Dynamic Huffman Coding

Khóa luận trình bày kỹ thuật nén ảnh Dynamic Huffman Coding trong lĩnh vực kỹ thuật máy tính, mang lại hiệu quả tối ưu cho việc lưu trữ dữ liệu.

Người đăng

Ẩn danh

Thể loại

Khóa Luận Tốt Nghiệp

2023

72
5
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CÁM ƠN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

1.1. Phân loại nén ảnh

1.2. Phương pháp nén ảnh không mất mát — lossless compression

1.3. Phương pháp nén ảnh mất mát — lossy compression

1.4. Giới thiệu một số phương pháp nén

1.4.1. Lempel-Ziv-Welch (LZW)

1.4.2. Shanno-Fano Coding

1.4.3. Huffman Coding

1.5. Các khái niệm cơ bản

1.5.1. Phần tử ảnh — pixel

1.5.2. Mức xám — Gray level

1.5.3. Histogram

1.5.4. Tỷ lệ nén — Compression ratio (CR)

1.5.5. Bits per pixel (BPP)

1.5.6. Cấu trúc tương đồng - Structure Similarity Index Measure (SSIM)

1.6. Mục tiêu đề tài

1.7. Cơ sở lý thuyết

2. CHƯƠNG 2: THUẬT TOÁN DYNAMIC HUFFMAN CODING

2.1. Dự đoán tuyến tính — Linear Prediction

2.2. Thuật toán cây nhị phân động

2.3. Xử lý đầu vào

3. CHƯƠNG 3: KIẾN TRÚC THIẾT KẾ PHẦN CỨNG

3.1. Kiến trúc hệ thống

3.2. Tổng quan hệ thống

3.3. Quy trình thực hiện hệ thống

3.4. Mô tả kiến trúc Image Compression Core

3.5. Sơ đồ khối thiết kế

3.6. Thiết kế khối Linear Prediction

3.7. Mô tả thiết kế

3.7.1. Mô tả khối Tree Register File

3.7.2. Mô tả khối Check Tree

3.7.3. Mô tả thiết kế

3.7.4. Mô tả khối Output Block

3.7.5. Mô tả Interface

3.7.6. Mô tả thiết kế

3.7.7. Mô tả khối Run Modify

3.7.8. Mô tả thiết kế

3.7.9. Mô tả khối Check Parent

3.7.10. Mô tả Interface

3.7.11. Mô tả khối Swap Node

3.7.12. Mô tả Interface

3.7.13. Mô tả thiết kế

4. CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG CHỨC NĂNG

4.1. Phương pháp đánh giá

4.2. Mô phỏng khối Linear Prediction

4.3. Mô phỏng khối Tree Register File

4.4. Mô phỏng khối Check Tree

4.5. Mô phỏng khối Output Block

4.6. Mô phỏng khối Run Modify

4.7. Mô phỏng khối Check Parent

4.8. Mô phỏng khối Swap Node

4.9. Mô phỏng khối Top module

5. CHƯƠNG 5: PHÂN TÍCH VÀ SO SÁNH KẾT QUẢ ĐẠT ĐƯỢC

5.1. Kết quả kiến trúc đề xuất đạt được

5.2. Phương pháp đánh giá kết quả

5.3. Kết quả mô phỏng trên phần mềm — Visual Studio Code

5.4. Kết quả mô phỏng trên phần cứng — Vivado

5.5. So sánh kết quả mô phỏng với kiến trúc Dynamic Huffman

5.6. So sánh kiến trúc đề xuất với các bài báo liên quan

5.7. So sánh với hệ thống nén Adaptive + LZW

5.8. So sánh với bài báo số [1]

5.9. So sánh thông số hoạt động với các bài báo liên quan

5.10. So sánh kiến trúc phần cứng với thuật toán chạy trên tool Vivado

5.11. Kết luận và hướng phát triển đề tài

5.11.1. Khó khăn gặp phải

5.11.2. Nhược điểm của thuật toán đề xuất

5.11.3. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về nén ảnh mất mát và không mất mát

Nén ảnh là một lĩnh vực quan trọng trong công nghệ thông tin, giúp giảm kích thước tệp mà không làm mất đi chất lượng hình ảnh. Có hai loại nén ảnh chính: nén ảnh mất mát và nén ảnh không mất mát. Nén ảnh mất mát thường được sử dụng trong các ứng dụng như JPEG, trong khi nén ảnh không mất mát như Dynamic Huffman Coding đảm bảo dữ liệu gốc có thể được phục hồi hoàn toàn. Việc lựa chọn phương pháp nén phù hợp phụ thuộc vào yêu cầu về chất lượng và kích thước tệp.

1.1. Khái niệm nén ảnh và tầm quan trọng

Nén ảnh là quá trình giảm kích thước tệp hình ảnh mà không làm giảm chất lượng hình ảnh. Điều này rất quan trọng trong các lĩnh vực như y tế, nơi mà độ chính xác của hình ảnh là rất cần thiết.

1.2. Phân loại nén ảnh Mất mát và không mất mát

Nén ảnh được chia thành hai loại: nén mất mát, nơi một số dữ liệu bị loại bỏ, và nén không mất mát, nơi dữ liệu gốc có thể được phục hồi hoàn toàn. Mỗi loại có ứng dụng và ưu nhược điểm riêng.

II. Thách thức trong nén ảnh Độ chính xác và hiệu suất

Một trong những thách thức lớn trong nén ảnh là làm sao để duy trì độ chính xác của hình ảnh trong khi vẫn giảm kích thước tệp. Nén ảnh mất mát có thể dẫn đến mất mát dữ liệu, trong khi nén không mất mát có thể không đạt được tỷ lệ nén cao. Việc tìm ra sự cân bằng giữa chất lượng và kích thước tệp là rất quan trọng.

2.1. Vấn đề về chất lượng hình ảnh

Chất lượng hình ảnh là yếu tố quyết định trong nhiều ứng dụng. Nén mất mát có thể làm giảm chất lượng, trong khi nén không mất mát giữ nguyên chất lượng nhưng có thể không đạt được tỷ lệ nén cao.

2.2. Tối ưu hóa hiệu suất nén

Tối ưu hóa hiệu suất nén là một thách thức lớn. Các thuật toán như Dynamic Huffman Coding cần phải được thiết kế để đạt được tỷ lệ nén cao mà không làm giảm hiệu suất.

III. Phương pháp nén ảnh không mất mát Dynamic Huffman Coding

Dynamic Huffman Coding là một trong những thuật toán nén ảnh không mất mát hiệu quả. Thuật toán này sử dụng cây nhị phân để mã hóa dữ liệu, cho phép nén dữ liệu mà không làm mất mát thông tin. Điều này rất quan trọng trong các ứng dụng yêu cầu độ chính xác cao.

3.1. Nguyên lý hoạt động của Dynamic Huffman Coding

Dynamic Huffman Coding hoạt động bằng cách xây dựng một cây nhị phân động, cho phép mã hóa các ký tự dựa trên tần suất xuất hiện của chúng. Điều này giúp tối ưu hóa tỷ lệ nén.

3.2. Ưu điểm của Dynamic Huffman Coding

Ưu điểm lớn nhất của Dynamic Huffman Coding là khả năng nén dữ liệu mà không làm mất mát thông tin. Điều này rất quan trọng trong các lĩnh vực như y tế và truyền thông.

IV. Ứng dụng thực tiễn của Dynamic Huffman Coding trong nén ảnh

Dynamic Huffman Coding đã được áp dụng rộng rãi trong nhiều lĩnh vực, từ y tế đến truyền thông. Việc nén ảnh không mất mát giúp đảm bảo rằng dữ liệu quan trọng không bị mất mát trong quá trình truyền tải. Các ứng dụng thực tiễn cho thấy hiệu quả của thuật toán này trong việc giảm kích thước tệp mà vẫn giữ nguyên chất lượng.

4.1. Ứng dụng trong y tế

Trong y tế, việc nén ảnh không mất mát là rất quan trọng để đảm bảo rằng các hình ảnh chẩn đoán không bị mất mát thông tin. Dynamic Huffman Coding giúp giảm kích thước tệp mà vẫn giữ nguyên chất lượng hình ảnh.

4.2. Ứng dụng trong truyền thông

Dynamic Huffman Coding cũng được sử dụng trong truyền thông để nén video và hình ảnh. Việc nén không mất mát giúp đảm bảo rằng dữ liệu được truyền tải một cách chính xác và hiệu quả.

V. Kết luận và tương lai của nén ảnh không mất mát

Nén ảnh không mất mát, đặc biệt là thông qua Dynamic Huffman Coding, đã chứng minh được giá trị của nó trong nhiều lĩnh vực. Tương lai của nén ảnh không mất mát hứa hẹn sẽ tiếp tục phát triển với sự cải tiến trong công nghệ và thuật toán. Việc nghiên cứu và phát triển các phương pháp nén mới sẽ giúp tối ưu hóa hiệu suất và chất lượng hình ảnh.

5.1. Tương lai của Dynamic Huffman Coding

Dynamic Huffman Coding có tiềm năng lớn trong việc phát triển các ứng dụng nén ảnh không mất mát. Nghiên cứu tiếp theo có thể tập trung vào việc cải thiện hiệu suất và tỷ lệ nén.

5.2. Xu hướng phát triển trong nén ảnh

Xu hướng phát triển trong nén ảnh sẽ tiếp tục hướng tới việc tối ưu hóa chất lượng hình ảnh và giảm kích thước tệp. Các công nghệ mới sẽ giúp cải thiện hiệu suất nén và khả năng phục hồi dữ liệu.

10/07/2025
Khóa luận tốt nghiệp kỹ thuật máy tính hiện thực hóa kỹ thuật nén ảnh dynamic huffman coding

Trích đoạn nội dung tài liệu

Đặt vấn đề Trong nhiều thập kỷ, việc triển khai công nghệ thông tin (CNTT) trở nên ngày càng phô biến, tương đương với việc dữ liệu cần được lưu trữ ngày càng lớn, tạo ra thách thức lớn trong việc lưu trữ dữ liệu. Việc sử dụng dung lượng lưu trữ lớn có thé giải quyết van đề kích thước của tệp. Tuy nhiên, phương pháp này tốn kém về mặt chỉ phí cho cả dung lượng và băng thông. Một phương pháp khả thi là nén dữ liệu, phương pháp này giúp làm giảm đáng ké kích thước của tệp.

Với sự phát triển của CNTT, năng lực tính toán ngày càng cao, việc nén đữ liệu ngày càng trở nên rộng rãi trong nhiều lĩnh vực như broadcast television, aircraft, computer transmission, medical imaging. Đối với những lĩnh vực yêu cầu về độ chính xác cao trong việc truyền nhận dữ liệu. Dữ liệu trong quá trình nén không bị mất mát so với dữ liệu ban đầu. Trên thực tế, chúng ta cần biết dữ liệu nào sẽ được nén trước khi tiễn hành việc nén.

Dé giải quyết vấn đề này, nhóm đã tìm hiểu và nghiên cứu đến phương pháp nén ảnh không mat mát thời gian thực, nhăm hướng tới việc phát triển một phương pháp nén được ứng dụng trong việc truyền video trực tuyến, chúng ta không thé biết trước chính xác những gì sẽ được truyền nhưng vẫn đảm độ chính xác cao và giảm tài nguyên lưu trữ dữ liệu. Nén ảnh là một mảng nghiên cứu quan trọng trong lĩnh vực nén dữ liệu. Ngày nay, với sự phát triển của các nền tảng mảng xã hội, kích thước dữ liệu hình ảnh và video cũng ngày càng tăng lên. Do đó, nén ảnh và video đang được nghiên cứu va phat trién rộng rãi vi những ứng dụng thực tế mà nó mang lại [1].

Phân loại nén ảnh Hình 1. So sánh sự khác nhau giữa phương pháp nén lossless va lossy Các phương pháp nén ảnh được chia làm hai loại [2]: nén mat mát - Lossless compression và nén không mat mát - Lossy compression. Cả hai phương pháp nén đêu có ưu nhược điêm khác nhau và được ứng dụng thực tê trong nhiêu lĩnh vực. Phương pháp nén ảnh không mat mát — lossless compression Nén ảnh không mắt mát là một nhóm các thuật toán nén dit liệu cho phép dữ liệu gốc được xây dựng lại chính xác hoàn toàn từ dữ liệu nén.

Phương pháp này không làm giảm chất lượng hình ảnh và được ứng dụng trong một số lĩnh vực yêu cầu độ chính xác cao như hình ảnh y té, anh ban vé kỹ thuật,. Nén không mat mát rất quan trọng trong các ảnh về y tế bởi các công việc liên quan đến khám chữa bệnh không được có bất kỳ thiếu sót nào trong ảnh sau khi được giải nén. Các phương pháp nén ảnh không mat mát chủ yếu dựa trên một số thuật toán: Lempel-Ziv-Welch (LZW) [3], Shanno-Fano coding [4] , Huffman coding [5]. Các giải thuật này dự đoán pixel theo ngữ cảnh xung quanh nó, và mã hóa các độ lỗi dự đoán với kỹ thuật entropy.

Phương pháp nén ảnh mắt mát — lossy compression Nén ảnh mất mát là phương pháp nén loại bỏ phần không hữu ích của dữ liệu. Trong quá trình nén, việc xây dựng lại một hình ảnh chỉ gần đúng với dữ liệu ban dau, có thé thay một lượng dir liệu bị mat đi rất nhỏ như trong Hình 2. Input Restored Image Image Compressed Image Hình 1. Mô tả dữ liệu bi mat trong phương pháp nén lossy compression Nén mắt mát được sử dụng rộng rãi trong việc nén các hình ảnh tự nhiên như ảnh chụp, trong đó tôn thất không đáng kê về độ chính xác dé giảm chi phí lưu trữ.

Một số thuật toán sử dụng phương pháp nén mat mát phố biến là: DCT (Discrete cosine transform) [6], Wavelet transform [7], JPEG 2000 [8]. Các thuật toán này làm giảm kích thước ảnh một cách đáng kể. Tuy nhiên, các hệ thống thiết kế thường lớn và tốn nhiều năng lượng. Hầu hết các thuật toán nén mất mát đữ liệu đều dựa trên mã hóa chuyên đôi.

Một số ứng dụng phô biến của phương pháp nén ảnh mat mát là ảnh JPEG, MPEG videos, MP3 audio. Giới thiệu một số phương pháp nén Các thuật toán nén ảnh được giới thiệu đưới đây đều được phát triển dựa trên phương pháp nén ảnh không mắt mát. Lempel-Ziv-Welch (LZW) LZW là thuật toán nén dựa trên từ điển có thé là tĩnh hoặc động. Đối với mã hóa tĩnh, từ điển được có định trong quá trình mã hóa và giải mã.

Trong mã hóa động, từ điển được cập nhật. LZW được sử dụng rộng rãi trong ngành công nghiệp máy tính và được triển khai như là một lệnh nén trên UNIX [9]. LZW phù hợp với dữ liệu mang nội dung lặp đi lặp lại nhiều lần. Dữ liệu lặp lại được thay thế bằng vị trí và độ dài của chuỗi con hiện có.

Tuy nhiên, phương pháp này sẽ mat nhiều thời gian nếu dit liệu lớn và không liên tục. Shanno-Fano Coding Shanno-Fano Coding là thuật toán nén không mất mát được đặt tên theo nhà toán học Claude Shannon và Robert Fano. Phương pháp nay gan dữ liệu cho một symbol với xác suất được sắp xếp giảm dần. Các mã Shanon được coi là chính xác nếu mã của mỗi symbol là duy nhất.

Nhưng đôi khi, thuật toán này không thể tạo ra dữ liệu một cách hoàn hảo và có tỉ lệ nén thấp. Bởi vì phương pháp này không thé tạo ra một cây nhị phân tối ưu. Thuật toán Huffman Coding giải quyết được những thiếu sót này [5]. Huffman Coding Huffman coding là thuật toán được sử dung phổ biến để loại bỏ dư thừa mã hóa.

Thuật toán nay xử lý nén dir liệu các ký tự ASCII. Nó xây dựng một cây nhị phân day đủ cho các biểu tượng khác nhau sau khi tính toán xác suất của từng biểu tượng và đặt nó theo thứ tự giảm dần. Điều này trái ngược với Shannon-Fano. Huffman coding là thuật toán xác định trước dt liệu đầu vào.

Trong một số ứng dụng thực tê liên quan đên truyên dữ liệu realtime, việc ước tính và sử dụng các bảng mã Huffman riêng biệt cho từng anh và chuỗi hình ảnh không chỉ tốn thời gian mà còn tốn chi phí truyền bang. Các khái niệm cơ bản 1. Phan tử ảnh — pixel Pixel là thành phần cơ bản nhất có thể có của bất kỳ hình ảnh điện tử hoặc kỹ thuật số nào. Một tập hợp các pixel tạo thành một hình anh, video, văn bản hoàn chỉnh hoặc bat kỳ thứ gì có thé thấy trên màn hình máy tính.

Mỗi pixel có một cặp tọa độ x, y và đặc trưng cường độ sáng trong không gian ảnh. Tùy thuộc vào card đồ hoa và màn hình hiển thị, sự kết hợp màu sắc giữa các điểm ảnh sẽ khác nhau và được đo bằng độ phân giải màn hình. Ví dụ máy tính có độ phân giải 1280 x 768 sẽ tạo ra tôi đa 983,040 pIxel. Mức xám — Gray level Mức xám là kết quả của sự mã hóa tương ứng một cường độ sáng của mỗi điểm ảnh với một giá trị sô.

Thường dùng 8 bit để mã hóa 256 mức xám.3 mô tả các mức xám được tham chiếu với từng độ rộng bit khác nhau. Bit Depth and Gray Levels in Digital Images 2Bit 4Bit 6 Bit 7 Bit 8Bit 10 Bit 4 16 64 128 266 1,024 Gray Levels —=——————————x Hình 1. Mô tả số lượng bit biéu diễn các mức xám 1. Histogram Histogram của ảnh là một cách biểu diễn (bằng hình ảnh) về sự phân bố cường độ sáng của ảnh.

Trong histogram của Hình 3, trục ngang biểu thị dãy giá trị của cường độ sáng (thường là số nguyên từ 0 đến 255) và trục dọc biểu thị cho số pixel có giá trị cường độ sáng ứng với trục ngang. Dựa vào histogram, nhóm có thể đánh giá được độ phức tạp của một bức ảnh. Bức ảnh có độ phức tạp cao là bức ảnh có phân bố cường độ sáng trải đều từ 0 đến 255. Biểu đồ histogram biểu thị cường độ sáng của một bức ảnh 1.

Ty lệ nén - Compression ratio (CR) Tỷ lệ nén là phép đo mức giảm tương đối về kích thước biéu diễn dit liệu do thuật toán nén tạo ra. Tỉ lệ nén được định nghĩa là tỷ lệ giữa kích thước trước khi nén và kích thước sau khi nén : 2 TA 7 Kích thước ban đầu Tỷ lệ nến= ——————————— (1 Kích thước sau nén Như vậy, hiệu suất nén được tính theo công thức : Kích thước sau nén Hiệu suất = 1 - lệu suat Kích thước ban đầu (2) 1. Bits per pixel (BPP) Ty lệ bits per pixel cho biết số lượng bit có thé lưu trữ trong một pixel của hình ảnh đầu vào nhất định. Tỷ lệ này được định nghĩa dựa vào kích thước tệp nén và tong số điểm ảnh trong bức ảnh (tổng số pixel).

size of compressed file BPP = Sees (3) Total no. of pixel in the image 1. Cau trúc tương đồng - Structure Similarity Index Measure (SSIM) Chi số SSIM được sử dung dé do mức độ giống nhau giữa hình anh đầu vào và ảnh sinh ra. Công thức SSIM dựa trên ba thông số để so sánh: độ chói (luminance), tương phản (contrast) và cau trúc (structure).

Với một hình anh x, cường độ sáng là ux và độ tương phan là ox được ước tính như là giá trị trung bình và độ lệch chuẩn của ảnh. Thêm vào đó, ci = (kiL) ?và co = (k›L) ? là hằng số dé tăng sự ôn định với ki <= 1, ky <= 1 và L là phạm vi không chắc chắn của giá tri pixel ( mặc định là K; = 0. Trong đó, SSIM giữa hình ảnh x và y được tính bởi công thức (4): (2Hxuy + c1)(2c0xy + ca) SSIM xX; (y) (u? + py + c¡)(0š + oy + C2) re (4) 1. Muc tiéu dé tai Ở dé tài này, nhóm sé tập trung nghiên cứu, tìm hiểu thuật toán Dynamic Huffman Coding và các thuật toán nén ảnh liên quan.

Sau đó, nhóm tiến hành triển khai thuật toán trên phần mềm và cải tiến thuật toán với tỉ lệ nén tối ưu hơn. Tiếp theo, nhóm sẽ phân tích, thiết kế, sử dụng ngôn ngữ verilog để mô tả kiến trúc. Sau cùng sẽ mô phỏng và kiểm tra dé hoàn thiện thiết kế. Với mục tiêu là triển khai một thiết kế hệ thong phan cứng nén dữ liệu thời gian thực không mat mát đi cùng với tỉ lệ nén được cải thiện.

Ngoài ra, mục tiêu thiết kế một hệ thống phần cứng cải thiện được area so với hệ thông phân cứng có liên quan. Với mục tiêu đê tài này, nhóm đánh giá hệ thông dựa trên các tiêu chí sau: e Đầu tiên, mô phỏng hệ thống nén và giải nén trên ngôn ngữ phan mềm C++.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu với tiêu đề Nén Ảnh Mất Mát và Không Mất Mát: Thuật Toán Dynamic Huffman Coding cung cấp cái nhìn sâu sắc về hai phương pháp nén ảnh chính: nén mất mát và nén không mất mát. Bài viết giải thích cách thức hoạt động của thuật toán Dynamic Huffman Coding, một kỹ thuật hiệu quả trong việc tối ưu hóa kích thước tệp hình ảnh mà vẫn giữ được chất lượng hình ảnh ở mức chấp nhận được.

Độc giả sẽ tìm thấy những lợi ích rõ ràng từ việc áp dụng các phương pháp nén này, bao gồm tiết kiệm băng thông và thời gian tải trang, điều này đặc biệt quan trọng trong thời đại số hiện nay. Bài viết không chỉ giúp người đọc hiểu rõ hơn về các thuật toán nén mà còn mở ra cơ hội để khám phá thêm về các khía cạnh khác của công nghệ nén ảnh.

Để mở rộng kiến thức của bạn, hãy tham khảo tài liệu Nghiên ứu tổng quan truyền hình kỹ thuật số và kỹ thuật nén ảnh, nơi bạn có thể tìm hiểu thêm về các ứng dụng của nén ảnh trong lĩnh vực truyền hình kỹ thuật số. Mỗi tài liệu đều là một cơ hội để bạn đào sâu hơn vào chủ đề này và nâng cao hiểu biết của mình.