1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

72 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Hiện thực hóa kỹ thuật nén ảnh Dynamic Huffman Coding
Tác giả Nguyen Thi Cam Huong, Tran Thach Tuan Phong
Người hướng dẫn TS. Lam Duc Khai
Trường học Dai Hoc Cong Nghe Thong Tin - Dai Hoc Quoc Gia Thanh Pho Ho Chi Minh
Chuyên ngành Ky Su Ky Thuat May Tinh
Thể loại Khoa Luan Tot Nghiep
Năm xuất bản 2023
Thành phố TP. Ho Chi Minh
Định dạng
Số trang 72
Dung lượng 39,52 MB

Nội dung

Trong đó, ảnh sẽ được xử lý thô bằng python, các pixel của ảnh sẽ được đưa vào phần cứng thực hiện quátrình linear prediction : giảm số bit đại diện cho một pixel dé có được giá trị dự đ

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN THI CAM HUONG - 19521594

TRAN THACH TUAN PHONG - 19522014

KHOA LUAN TOT NGHIEP

HIEN THUC HOA KY THUAT NEN ANH DYNAMIC

HUFFMAN CODING

Implementation of lossless image compression by Dynamic Huffman

Coding algorithm

KY SU KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS LAM DUC KHAI

TP HO CHi MINH, 2023

Trang 2

LỜI CÁM ƠN

Đầu tiên, em xin gửi lời cảm ơn đến quý thầy(cô) đã và đang giảng dạy tạitrường Dai Học Công Nghệ Thông Tin — Dai Học Quốc Gia Thành Phố Hồ ChíMinh đã dẫn dắt từng thế hệ sinh viên trải qua quá trình học tập và rèn luyện

trong môi trường học tập tốt như ngày hôm nay Trong suốt khoảng thời gian

đại học, nhận được sự giúp đỡ, dạy dỗ tận tình từ quý thầy(cô) và những kinh

nghiệm quý báu được thầy(cô) truyền dạy, em luôn cảm thấy biết ơn và trân

trọng những gì được học tập từ sự truyền day của thầy(cô) Ngoài những kiếnthức chuyên môn, em còn học hỏi được những kỹ năng mềm từ những chia sẽcủa thầy(cô) trong các buổi hoc Dé từ đó tích lũy được kiến thức chuyên môn

và kỹ năng cần thiết, trở thành hành trang vững chắc cho tương lai sau này

Tiếp theo, em xin gửi lời cảm ơn chân thành đến thầy(cô) thuộc Khoa Kỹ ThuậtMáy Tính Thay(cd) đã tạo điều kiện cho em được hoc tập và tiếp thu với nhữngkiến thức gần sát với môi trường thực tế Khoảng thời gian học tập và tham gia cáchoạt động ở khoa giúp em hoàn thiện bản thân hơn Sự hỗ trợ tận tình của thay(cé)

về các van đề học phan, thực tập doanh nghiệp là nguồn động lực lớn lao giúp

em hoàn thành quá trình học tập một cách thuận lợi.

Đặc biệt, dé có thé hoàn thành được khóa luận tốt nghiệp này, em xin gửi lời cảm

ơn sâu sắc đến thầy Lâm Đức Khải Em rất biết ơn sự giúp đỡ và ủng hộ từ thầytrong suốt quá trình hoàn thành khóa luận Những chỉ dẫn từ thầy đã giúp em cóhướng đi đúng đắn cho khóa luận tốt nghiệp của mình

Sau cùng, em xin gửi lời cảm ơn đên bạn bè, gia đình, những người luôn ủng hộ và

trở thành hậu phương vững chắc cho em trên con đường theo đuôi kiến thức

Một lần nữa, em xin chân thành cảm ơn!

Thành phố Hồ Chi Minh, thang 7 năm 2023

Sinh viên thực hiện

Nguyễn Thị Cẩm Hướng Trần Thạch Tuấn Phong

Trang 3

MỤC LỤC

Chương1 GIỚI THIEU TONG QUAN DE TÀI -5-s-sccss©se 3

1.1 Đặt vấn đề ch HHHHHHHH.HHHHHHHHHHHHHHH He 3

1.2 Phan loai chẽ ẽ LÔ 4

1.2.1 Phương pháp nén anh không mat mát — lossless compression 41.2.2 _ Phương pháp nén ảnh mất mát — lossy compression 51.3 Giới thiệu một số phương pháp NEM vessssssssseessssseeesassneesessnsessssenesssssseesssntessesneee 6

1.4.4 Tỷ lệ nén — Compression ratio (CR|) -ce«eseceeserresrskirrkrrrre 8

1.4.5 Bi(s per pixel (BPP) ccs th HH ng 9

1.4.6 _ Cấu trúc tương đồng - Structure Similarity Index Measure (SSIM) 91.5 Mục tiêu để tài HHHHHHHHHHHHHHHHHHHHHH Hư 9Chương 2 CO SỞ LÝ THUYẾT se sese+ssevssevseesserseessee 11

2.1 Dự đoán tuyến tính — Linear Prediction -csseccesreceerreeee 11

2.2 Mã hóa Huffman COdIng s-c«cs<Scx+teEExstrekkeerskrirkrrrsrrrrrrrrrrke 12

2.3 Mã hóa Dynamic Huffman -sc5scStEEveEExetErrtrtrtkrrtrrrrrrirrirrrrike 15

2.3.1 Thuật toán cây nhị phân động -. secccvsrrrxerrrrsrrrrerrrrree 15

2.3.2 Xử lý đầu vào e crecerreeerrrerrrriertrrrerrrrrrrrrrerre 19

Trang 4

Chuong 3 KIÊN TRÚC THIẾT KE PHAN CỨNG .« <«- 20

3.1 Kiến trúc hệ thống -eccccccrireeevvvEErtrrervvrtrririrrrrrrrrrirrrrrrrrrrrrrerre 20

3.1.1 _ Tổng quan hệ thống +c-s+eccetreeetrrcrerrrerrrrrrerre 203.1.2 Quy trình thực hiện hệ thống — ,Ô 21

3.1.3 Mô tả kiến trúc Image Compression Core s ssss 22

3.1.4 Sơ đồ khối thiết kế e-ceccrceccerrirererrrrerrrrrrrerrrrrrrrerrre 233.2 Thidt ké Chi c7 Ế.HA , 26

3.2.1 _ Thiết kế khối Linear Prediction -cceerrccccerrreceerrre 26

SN Hi sa 26

3.2.1.2 Mô tả thiết kế «eeee -eeececrreeeerrireccrerrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrre 273.2.2 M6 tả khối Tree Register File .ecceecrreeeeeeeerrrrrreeeerrrrree 283.2.3 Mô tả khối Check Tree -+ceecccerrrrreeerrrrrrrrrrrrrrrrrre 30

3.2.5.1 M6 ta ệi co .,Ô 34

3.2.5.2 Mô tả thiết kế iicccccrrrrrirerrrrtrririrrrrrrrrrirrrrrrrrrrrrrrrre 35

3.2.6 Mô tả khối Check Parent +ccccsrrirecceerrrrerrrrrrrrrrrre 36

3.2.6.1 M6 ta Interface na 36

3.2.6.2 M6 nh 37

3.2.7 Mô tả khối Swap Node -ccsseccerreeeerrceerrrrrrrrrrerre 38

Trang 5

3.2.7.1 Mô tả Ïn€TAC€ -5-Ă-Sc+*EeEtEeEkEEktkEkEkEkEkekrkrrrrressrsrkrerererrre 38

3.2.7.2 Mô tả thiết kế ecceiiiriiriiriiriiriiriirriiriirirrirrrrr 39

Chương 4 KET QUÁ MO PHONG CHỨC NĂNG -scs5 se 40

4.1 Phương pháp đánh giá -ssccccccteE it thi 40

4.2 Mô phỏng khối Linear Prediction -+-essreecetreeeerreererrcrerrre 414.3 Mô phỏng khối Tree Register File -css.+ecetrecevtrrrrrrrrrrrrre 424.4 Mô phỏng khối Check Tree ccs++ce2trevttrevEtrtrrrvrrrrrtrrrrrrrre 424.5 Mô phỏng khối Output Bloek -css+ceeerreeerrrererrererrrrrerrre 434.6 Mô phỏng khối Run Modify cccsireeceetrreerrrrrrrrrrrrrrrerrrree 444.7 Mô phỏng khối Check Pareni -cs -.ccccsireecvrtrrerertrrrrrrrrrrrrrrrrrre 464.8 Mô phỏng khối Swap NodĂe ::cceccvtetrieesveverrrrrseertrrrrirarrrrrrrrree 47

4.9 Mô phỏng khối Top module 2-i-cccsstrreevverrrevvvtrrrrvvrrrrererrrree 48

Chương 5 PHAN TÍCH VÀ SO SANH KET QUÁ ĐẠT ĐƯỢC 49

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

5.1.1 _ Phương pháp đánh giá kết quả c-ecccreeeeeecerrrreeseeverrrree 495.1.2 _ Kết quả mô phỏng trên phần mềm — Visual Studio Code 50

5.1.3 Kết quả mô phỏng trên phần cứng — Vivado . -s :- 51

5.2 So sánh kết quả mô phỏng với kiến trúc Dynamic Huffiman 525.3 So sánh kiến trúc đề xuất với các bài báo liên quan -. - 53

5.3.1 So sánh với hệ thống nén Apdaptive + LZW [14] 535.3.2 So sánh với bai báo số [ Ï] «ceeeeeseererirrrrrrrrre 54

5.3.3 So sánh thông số hoạt động với các bài báo liên quan 555.3.4 So sánh kiến trúc phần cứng với thuật toán chạy trên tool Vivado 565.4 Kết luận và hướng phát triển đề tài -ecccetrreeverrrrrreerrrrerrte 57

Trang 6

5.4.1 — KẾtluận c-s-EEEEEEEEEEErirrriririikkkkkkkkrkrkrrrrrrrrrrrrrrree 57

5.4.2 Khó khăn gặp phải -c-cscrrxerrrrirrrrrrrrrrtrrirrrrirrrrierrrree 57

5.4.3 Nhược điểm của thuật toán đề xuất : ::+cceeeevevvrrrrrrrree 585.4.4 _ Hướng phát triển -ceecccerrireeeeverrrrireetrtrrrrrreeeerrrrred 59TÀI LIEU THAM KHẢO s- 2-5 5< se 2s se EssExseEserserssrsserserssrssse 60

Trang 7

DANH MỤC HÌNH

Hình 1.1 So sánh sự khác nhau giữa phương pháp nén lossless và lossy 4

Hình 1.2 Mô ta dữ liệu bị mat trong phương pháp nén lossy compression 5Hình 1.3 Mô tả số lượng bit biểu dién các mec XÁHH -©52©52ccscccccc+escsercee 7

Hình 1.4 Biểu do histogram biểu thị cường độ sáng của một bức ảnh &Hình 2.1 Mô hình dự đoán tuyen tinh - + 252 +E‡EE‡EESEEEEEEEEEEEEerkerkerkerkrree 11

Hình 2.2 Mô tả cây nhị phân được tao thành từ mã hóa HuƒJman - 14

Hình 2.3.Mã Entropy của các ky tự dựa trên cây nhị phÂẬH -~<c+++ss++ 14

Hình 2.4 Mô tả quá trình ky tự a được thêm VÀO GÂJ -ccS<cssssesserses 16

Hình 2.5 Mô tả quá trình ky tự b được thêm vào cây và cập nhật cây 16

Hình 2.6 Mô ta qua trình ky tự c được thêm vào cây và cập nhật cây 17

Hình 2.7 Mô tả quá trình đổi chỗ của hai nO cecceccsceesescsscesvessesesssssessessessessesseees 18

Hình 2.8 Mô tả quá trình ký tự d duoc thêm vào cây và cập nhật cây 18

Hình 2.9 Mô tả cây nhị phân hoàn Chnh, c- 5 << + kE*EEseEkeEseeeeereersessee 19

Hình 3.1 Tổng quan hệ thong nén ảnh — Compression COrẽ -. . 5-©s5s+ 552 20Hình 3.2 Mô tả quy trình hiện thực hệ thống . -2-©¿©-s+©c++cx+cxszxescseex 21Hình 3.3 Mô tả Interface khối Compression COFre -.- 5-5252 2+c+se£t+£t+£+zszse2 22Hình 3.4 Mô tả chỉ tiết kiến trúc của khối Compression COFe -. -::cs-©5¿ 23Hình 3.5 Mô tả Interface của khối Linear PrediCIiOH - 2: 2- 25e+sec+ecersrszse2 26

Hình 3.6 Mô tả chỉ tiết kiến trúc khối Linear Prediction . -z©-s+©55z-: 27

Hình 3.7 Mô tả interface của khối Tree Register File -©-+©5c5ceccscscsscez 28Hình 3.8 Mô tả Interface của khối Check TIr€€ - 2-52 5s+S2+E+Ee£terterkersrssxez 30Hình 3.9 Mô tả chỉ tiết khối Check Trree ccscccccccecttteiirrrrktirrrrriirrrr 31Hình 3.10 Mô ta Interface khối Output Block c.ccecccccsccsssssessessessessesssssssessessesseesesseese 32Hình 3.11 Mô tả thiết kế chi tiết của khối Output Block ccecceccescessessesssessessesseesseeseess 33

Hình 3.12 Mô tả Interface khối Run MOGIfY oo EE ÔỐ 34

Hình 3.13 Mô tả thiết kế chi tiết khối Run MOdIfY c.cceccscsscsscescessescessesesseeseesessessesseses 35Hình 3.14 Mô tả Interface khối Check PAreh - - 2-52 5s5£+5e+E££Eectertersrsssez 36Hình 3.15 M6 tả chỉ tiết khối Check Parent ccccccccccssesesesssvsvsvscesesescscsvsvsvsvevesesesescsvees 37

Trang 8

Hình 3.16 Mô tả Interface khối Swap Node ccecsesssssvsssessesssessessessesssessessessesssesseeseess 36

Hình 3.17 Mô tả thiết kế chỉ tiết khói Swap Node - 5-5 52ct+t‡cererereresxez 39Hình 4.1 Mô tả quy trình mô phỏng hệ thống -©5-©5c©52+c++cxezeczrsrerecres 40Hình 4.2 Dang sóng mô phỏng khối Linear PrediCtion s-©cc©ce+cs+cssrcccsz 41

Hình 4.3 Dạng sóng mô phỏng khối Tree Register File -c©5c5s+cs+cs+ce2 42Hình 4.4 Dạng sóng mô phỏng khối Check Tree -:- 2 s+52+c++Ee+kertertererszxez 43Hình 4.5 Dang sóng mô phỏng khối Output Block -s- s©se+sc+cs+cxsrxcrss 44Hình 4.6 Dạng sóng mô phỏng khối Run Modjjy 5:©2255z©csc2ccccscscss 45Hình 4.7 Dạng sóng mô phỏng khối Check P4F€HI - 2-52 2+c+ee+tecersrs+cez 46

Hình 4.8 Dạng sóng mô phỏng khối Swap HOđ€ - -©5+©5225£5tcctezEcztesrerecres 48

Hình 4.9 Dạng sóng mô phỏng của khối fOp - 5-52 5s+5scc£+Ec+Ee+Eerterterserssree 48Hình 5.1 Phương pháp đánh giá kết quẻ 5:55 ScSE+EE‡EE‡E+ESEEerEerkersersrree 49Hình 5.2 Bộ dataset từ tiêu chuẩn nén hình ảnh waterl0o cc++cecs+ccseẻ 50

Hình 5.3 Bộ dataset CT scan ttt Kaggle ccccccecccescesscsscesesesceseeeseceseeseeenseeeeeeeeneenseees 51

Hình 5.4 Tập dit liệu hình ảnh từ Kag gle cccccccccccccccessscessseessesesessssesseeseeesssessaees 53

Trang 9

DANH MỤC BANG

Bang 1.1 Thông số mục tiêu chạy trên phan mém của dé tài khóa luận 10

Bang 1.2 Thông số mục tiêu chạy trên phan cứng của dé tài khóa luận - 10

Bang 2.1 Mẫu dự doán của phương pháp Linear Prediction -5:©5c©52 12 Bảng 2.2 Bang tan số xuất hiện của các AS fịf - ccs+cscc+t+terkerkerkersrssree 13 Bang 3.1 Mô tả chân tin hiệu của khối Compression COF€ ©-2-cc5cc552 23 Bang 3.2 Thông số chỉ tiết của từng khối trong khối Compression Core 25

Bang 3.3 Mô tả chân tin hiệu của khối Linear PrediCtion -5-55c5sccsscssss 26 Bang 3.4 Mô tả chân tín hiệu của khối Tree Register File -cccccccs¿ 29 Bảng 3.5 Mô tả chân tín hiệu của khối Check Tree ececcecsessessvessessesssessessessesssessesseess 30 Bảng 3.6 Mô tả chân tín hiệu của khối Output Block s©ss+se+secerssrezse2 32 Bang 3.7 Mô tả chân tín hiệu của khối Run Modljfy 2-5-5 5secsecsscese2 34 Bảng 3.8 Mô tả chân tín hiệu của khối Check PFrehit -2-©5z©52©cs+cs+cxccsz 36 Bảng 3.9 Mô tả chân tin hiệu của khối Swap Node -2- 25c 5cece+ceec+esss 38 Bang 5.1 Kết quả mô phỏng hệ thống nén trên phan mém với ảnh tịƑ - 50

Bảng 5.2 Kết quả mô phỏng hệ thong nén trên phan mém với ảnh đuôi png 5I Bảng 5.3 Kết quả synthesis từng molude dựa trên kiến trúc phan cứng 52

Bang 5.4 Kết quả so sánh giữa input dau vào Full Pixel và Half Pixel 53

Bang 5.5 Kết quả so sánh giữa Adaptive + LZW [14] và phương pháp dé xudt 54

Bang 5.6 Kết quả so sánh thuật toán dé xuất với các thuật toán khác 55

Bang 5.7.Kết quả so sánh phan cứng với các bài báo khác - 5- 5c csccssss 56 Bảng 5.8 Kết quả so sánh với phan cứng sử dung tool Vivado . -: 56

Trang 10

DANH MỤC TỪ VIET TAT

JPEG Joint Photographic Experts Group DCT Discrete cosine tranform

LZW Lempel-Ziv-Welch

CR Compression ratio

SSIM Structure Similarity Index Measure

NYT Not Yet Transferred

BPP Bits per pixel

Trang 11

TOM TAT KHÓA LUẬN

Trong khóa luận này, nhóm dé xuất một kiến trúc thiết kế phần cứng vớichức năng nén ảnh không mat mát dựa trên thuật toán Dynamic Huffman Coding,thuật toán có thể chạy trên các kích thước ảnh khác nhau Trong đó, ảnh sẽ được xử

lý thô bằng python, các pixel của ảnh sẽ được đưa vào phần cứng thực hiện quátrình linear prediction : giảm số bit đại diện cho một pixel dé có được giá trị dự

đoán Sau đó, dữ liệu sẽ được tiến hành nén sâu với phương pháp nén không mất

mát Dynamic Huffman Coding Kết quả của quá trình nén là một chuỗi bit nhị

phân.

Ở phan giải nén, từ dữ liệu nhị phân có được, nhóm tiến hành chạy trên Visual

Studio Code bằng C++ dé giải nén dữ liệu thành các pixel Quá trình giải nén được

thực hiện ngược lại quá trình nén Sau cùng, đữ liệu pixel sẽ được tổng hợp lạithành hình ảnh ban đầu bằng python

Giải thuật nén ảnh của nhóm có tỉ lệ nén trung bình đạt được là 3.467 đối với ảnh có

độ phân giải là 512 x 512 và 256 x 256.

Thiết kế phan cứng đạt được tan số tối đa là 125 MHz

Kết quả của thuật toán sẽ được đánh giá dựa trên các tiêu chí:

e Tinh hiệu quả của thuật toán: tỉ lệ nén của thuật toán sẽ được đánh giá dựa

trên các bức ảnh có độ phức tạp khác nhau và dựa trên các thuật toán nén

ảnh khác, việc đánh giá sẽ được mô phỏng trên Visual Studio Code bằng

ngôn ngữ C++.

e Tài nguyên phần cứng: Việc đánh giá các thông số này sẽ được mô phỏng

trên các phần mềm Vivado, Quatus, Modelsim

Kết quả đạt được trong quá trình nghiên cứu của nhóm là cải tiến thuật toán, hiện

thực và mô phỏng thiết kế phần cứng của thuật toán Dynamic Huffman Coding

Trang 12

MỞ DAU

Các phương pháp nén ảnh được chia làm hai loại: nén ảnh mat mát va khôngmat mát Một số phương pháp nén ảnh mat mát được sử dụng phô biến rộng rãi nhưJPEG, DCT Những phương pháp này thường đối với hệ thống lớn và phức tạp.Đối với một vài lĩnh vực yêu cầu độ chính xác cao, chất lượng hình ảnh là yếu tốquyết định Những phương pháp nén ảnh không mất mát phổ biến như LZW,

Huffman Coding Những phương pháp này thường phù hợp với những nội dung

mang tính lặp đi lặp lại và tốn thời gian nếu dữ liệu lớn Ngoài yếu tố tỉ lệ nén thìtần số hoạt động cũng là một yếu tố quan trọng

Phần tiếp theo của khóa luận này sẽ tập trung vào các nội dung chính sau:

e_ Chương 1: Trong chương này, nhóm sẽ giới thiệu tổng quan về dé tài khóaluận, các khái niệm cơ bản và mục tiêu của đề tài

e Chương 2: Trình bày các nội dung nghiên cứu liên quan đến thuật toán

Dynamic Huffman Coding.

¢ Chương 3: Dua ra kiến trúc tong quan của các thiết kế, sau đó tiễn hành đi

sâu vào chỉ tiết thiết kế của từng module bên trong thiết kế phần cứng

e_ Chương 4: Mô phỏng hoạt động, chức năng của từng khối

e Chương 5: Phân tích và so sánh kết quả đạt được của thiết kế so với các

phương pháp tương tự Đưa ra kết luận, những khó khăn gặp phải và hướng phát

triển trong tương lai.

Trang 13

Chương 1 GIỚI THIỆU TONG QUAN DE TÀI

1.1 Đặ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áttriể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ênthự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 ảnhkhô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]

Trang 14

1.2 Phân loại nén ảnh

Hình 1.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.

1.2.1 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àykhô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êucầ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ữabệ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

Trang 15

[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.

1.2.2 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.2 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.

Trang 16

1.3 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

1.3.1 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ươngpháp này sẽ mat nhiều thời gian nếu dit liệu lớn và không liên tục

1.3.2 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ácnế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ữngthiếu sót này [5]

1.3.3 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

Trang 17

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

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

1.4.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ànchỉ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

1.4.2 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 Hình 1.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.3 Mô tả số lượng bit biéu diễn các mức xám

Trang 18

1.4.3 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

Hình 1.4 Biểu đồ histogram biểu thị cường độ sáng của một bức ảnh

1.4.4 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

Trang 19

1.4.5 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ủahì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.4.6 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 vikhông chắc chắn của giá tri pixel ( mặc định là K; = 0.01 và K2 = 0.03) 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; re

(y) (u? + py + c¡)(0š + oy + C2) (4)

1.5 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 DynamicHuffman Coding và các thuật toán nén ảnh liên quan Sau đó, nhóm tiến hành triểnkhai 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

Trang 20

đ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ữ phanmềm C++ Nhóm tiến hành phân tích tỉ lệ nén và các thông số SSIM so với

các thuật toán liên quan trong bảng 1.1

e Sau đó, nhóm tiễn hành mô tả thiết kế bằng Verilog và mô phỏng trên

Vivado, kiểm tra chức năng va tong hợp mạch dé có được các thông số tài

nguyên phần cứng và tốc độ nén của hệ thống đã đề xuất Mục tiêu của đề tài

được đề suất trong Bảng 1.2

Bảng 1.1 Thông số mục tiêu chạy trên phần mềm của đề tài khóa luận

Compression Ratio Adaptive Huffman + LZW [14]

Standard test images

Bell 1.01

Class57 1.18

Lena512 1.07

Voyager2 1.63

Bang 1.2 Thông số mục tiêu chạy trên phan cứng của dé tài khóa luận

Algorithm Cycle | Frequency | Luts | Register | Block ram

Trang 21

Chương2 CƠ SỞ LÝ THUYET

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

Prediction là một phan cốt lỗi của các phương pháp nén Bởi vì phương phápnày có thê giảm thiêu hầu hết không gian dư thừa giữa các pixel [10], giúp cải thiện

tỉ lệ nén và việc lựa chọn một công cụ dé tối ưu hóa việc dư thừa dữ liệu giữa cácpixel là điều cần thiết

Phương pháp dự đoán tuyến tính được sử dụng để loại bỏ sự dư thừa giữacác pixel của ảnh, giá trị dự đoán sẽ được làm tròn đến số nguyên gần nhất nên giá

trị error (sự khác biệt giữa giá trị ban đầu và giá trị dự đoán) cũng là một số nguyên

[11] Điều này đảm bảo rằng hình ảnh được tái tạo giống với hình ảnh gốc Khối sơ

đồ của hệ thống mã hóa và giải mã dự đoán tuyến tinh được thé hiện trong Hình 2.1

(a) và (b).

Input

image

‘ Nearest Predictor :

bộ dự đoán - nơi mà các pixel lân cận được tính toán theo prediction template Sau

đó các giá trị thu được được làm tròn đên sô nguyên gân nhât Cuôi cùng giá trị

11

Trang 22

Error thu được bang cách tính hiêu giữa giá tri pixel ban đầu và giá trị dự đoán.Mẫu dự đoán của phương pháp được thé hiện trong Bang 2.1.

1

Pq,j = F3 (li +17 Fj) + lạ.) + Vaan) (5)

PG j) = round (P4,j)) (6)

Eqj) = Iqj)~P4¿j) (7)

Trong Bảng 2.1 biểu thi giá tri pixel tại vị tri (i, j) Trong bước này, các giá

trị pixel trên cùng bên trái và dưới cùng bên phải của hình ảnh đầu vào được giữ lại

Các giá tri pixel ở vi trí khác được tính toán dé thu được giá tri dự đoán P g,j như

(5).

Sau đó, giá trị dự đoán được làm tròn (6), giá trị lỗi E (, ;) được tính toán dựa

trên kết quả của giá trị pixel ban đầu và giá trị dự đoán (7)

2.2 Mã hóa Huffman Coding

Thuật toán Huffman Coding [12] sử dụng sự phân phối xác suất của bảng

chữ cái Alphabet dé phát triển các mã cho các symbol dựa trên cây nhị phân

12

Trang 23

Quy trình cơ bản của phương pháp mã hóa Huffman Coding như sau:

e Tinh xác suất của các pixel trong ảnh và sắp xếp chúng theo thứ tự giảm dan

e Tạo một tập hợp các node bằng cách biến các xác suất này thành các lá của

cây nhị phân.

° Lay hai node có xác suất thấp nhất trong tập hợp và tạo một node mới có xác

suất đại điện cho tong của hai xác suất này

e Các xác suất mới được sắp xếp lại theo thứ tự giảm dần, sau đó lặp lại quá

trình cho đến khi tập hợp chỉ còn một node

e Cây nhị phân được tao với mã Huffman được lay bằng 0 với node có vị trí

bên trái và bằng 1 với node có vị trí nam bên phải cây nhị phân

Vi dụ với chuối có tân suât xuât hiện như sau:

Bảng 2.2 Bảng tần số xuất hiện của các ký tự

Trang 24

Hình 2.2 Mô tả cây nhị phân được tạo thành từ mã hóa Huffman

Theo đó, các ký tự sẽ được mã hóa với mã nhị phân như Hình 2.4

a= 111;e= I0;i=00;o= 11001; u= 1101; s=01;t= 11000.

12 13

Hình 2.3.Mã Entropy của các ký tự dựa trên cây nhị phân

14

Trang 25

Huffman coding cho phép tạo một cây nhị phân tối ưu, giảm số bit sử dụngtrên pixel một cách đáng kê, tỉ lệ nén được cải thiện Tuy nhiên, Huffman coding

yêu cầu biết trước dữ liệu đầu vào, tính xác suất và sắp xếp dữ liệu Ngoài ra, nhược

điểm lớn nhất của Huffman Coding là phải lưu lại cây dé sử dụng cho quá trình giải

nén.

2.3 Mã hóa Dynamic Huffman

Mã hóa Dynamic Huffman là thuật toán được phát triển dựa trên HuffmanCoding với ý tưởng là tạo ra cây nhị phân động cho phép thuật toán không cần

duyệt dữ liệu trước khi mã hóa, thuật toán chạy trên thời gian thực và không giới

hạn về kích thước dữ liệu

2.3.1 Thuật toán cây nhị phan động

Mã hóa Dynamic Huffman coding dựa trên cây nhị phân động với

thuật toán như sau:

BI: Kiểm tra xem symbol hiện tại đã tồn tại trong cây chưa Nếu symbol là

node mới thì chuyên sang bước 2, nêu symbol đã tồn tại trong cây thì thực hiện

bước 3.

B2: Xuất đường đi của node NYT hiện tại và mã nhị phân của symbol đangxét đến Sau đó, thêm symbol mới vào cây tại vi tri NYT hiện tại Tiến hành cập

nhật lại cây tại bước 4.

B3: Kiểm tra trong cây symbol hiện tại nằm ở vị trí node nào trong cây và

xuất đường di node đó ra ngoài Sau đó tiễn hành cập nhật lại cây tại bước 4.

B4: Quá trình cập nhật lại cây được tiến hành theo các bước sau:

B4.1 Gọi Y là symbol đang xét và X là trọng số của Y Nếu Y là node

root thì cập nhật X băng 1 Ngược lại, thực hiện bước tiếp theo.

B4.2 Đổi chỗ Y với node được đánh số lớn nhất có cùng trọng số với

Y (trừ trường hợp node cha) Sau đó chuyền sang bước tiếp theo

15

Trang 26

B4.3 Cập nhật X lên 1 Đặt Y bằng node cha của Y và cập nhật trọng

số X Sau đó lặp lại bước 2

Lưu ý: node NYT trong cây sẽ không cập nhật trọng số

Ví dụ về cây nhị phân động đơn giản:

NYT

Hình 2.4 Mô tả quá trình ký tự a được thêm vào cây

Mã entropy sau khi thêm ký tu a thứ 2 vào cây như Hình 2.5 là: 10101 (với

1010 là mã nhị phân của a và | là đường di của ký tự a thứ 2).

Input: aabcd

16

Trang 27

Trước khi thêm b vào cây nhị phân, tiến hành xuất đường đi của node NYT

hiện tại trong cây (vị trí mà b sẽ thêm vào tiếp sau đây) và mã nhị phân của b Khi

đó, mã Entropy là: 10101 01011 (với 0 là đường di của node NYT hiện tại và 1011

là mã nhị phân của b) Sau đó thêm b vào cây và cập nhật trọng số của node như

Hình 2.6.

Input: aabed

Mã Entropy dau ra ở Hình 2.6 là: 10101 01011 001100 (với 00 là đường dinode NYT tại thời điểm trước khi thêm c vào cây và 1100 là mã nhị phân của c).Quá trình cập nhật lại cây băng cách tăng trọng số từ node cha của node vừa mớithêm vào đến node gốc Do node c có trọng số nhỏ hơn hoặc bằng với các nodekhác nên quá trình đổi chỗ không diễn ra

Mã Entropy đầu ra ở Hình 2.7 là: 10101 01011 001100 0001101 (với 000 là

đường đi node NYT hiện thời trước khi d được thêm vào cây và mã 1101 là mã nhị phân của d.

17

Trang 28

Input: aabcd

Hình 2.8 Mô ta quá trình ky tự d được thêm vao cây va cập nhật cây

Quá trình cập nhật cây bao gồm: tăng trọng số node cha của node đang xét

và đôi chỗ node đang xét với node có được đánh số lớn nhất và có cùng trọng số với

node đang xét, mô tả tại Hình 2.8.

18

Trang 29

Hình 2.9 Mô ta cây nhị phân hoàn chỉnh

Hình 2.9 mô tả cây nhị phân hoàn chỉnh Dynamic Huffman coding hoạt

động tốt với cả kiểu dữ liệu đơn giản (nội dung lặp lại nhiều lần) và phức tạp

2.3.2 Xứ lý đầu vào

Với ý tưởng dựa trên cây nhị phân động đề nén các pixel, trong đó các giá trịmàu được biéu hiện khác nhau với 256 giá trị Chính vi thế, việc triển khai cây nhịphân sẽ cần mat 256 node dé biéu thị các giá tri pixel trong cây, làm cho đường đicủa cây nhị phân sẽ tốn nhiều bit cho mỗi dữ liệu đầu vào Giải pháp của van dé này

là chuyên đổi kiêu dữ liệu đầu vào sang mã hex, sau đó xử lý từng ký tự thay vi sẽ

xử ly cả một pixel.

Vi dụ pixel có giá trị màu 255 sẽ chuyên sang mã hex với giá tri FF, inputđầu vào của thiết kế sẽ lấy từng ký tự (F) Với phương pháp này, chúng ta sẽ chỉ tạo

thành một cây nhị phân với tối đa là 16 node có chứa dữ liệu (tương dương với 16

ký tự trong bảng mã hex) và 16 node NYT biểu trưng cho đường đi của cây nhịphân tại mỗi node Ngoài ra, việc hiện thực phần cứng sẽ giảm thiểu được Area

đáng kể Với việc triển khai sẽ chỉ mat 32 thanh ghi dé lưu trữ cho mỗi node thay vì

256 thanh ghi như ban đầu Bên cạnh đó, việc duyệt cây sẽ tốn nhiều thời gian khi

số node trong cây quá lớn (tối đa 256 node) Chính vì thế, việc xử lý đầu vào giảmthiểu thời gian thực hiện hệ thống nén

19

Trang 30

Chương 3 KIÊN TRÚC THIẾT KE PHAN CỨNG

Convert Image Linear Prediction

Hình 3.1 Tổng quan hệ thống nén ảnh — Compression Core

Hệ thống được mô tả như Hình 3.1 Anh đầu vào có các kích thước khác

nhau (256 x 256 hoặc 512 x 512) Hình ảnh gray ban đầu sẽ được chuyên đổi sang

kiêu dữ liệu được lưu trữ với dạng mã Hexadecimal trên phần mềm thông ngôn ngữ

lập trình python, với mỗi pixel được lưu trữ đại diện bởi 8 bit Sau đó, khối

Compression Core sẽ tiến hành nén hình ảnh thành chuỗi bit nhị phân — quá trình

này đượcthực hiện trên hệ thống phần cứng Kết quả thu được từ quá trình nén sẽ

được giải nén thông qua Visual Studio Code và chuyền đổi ảnh trở về anh ban dau

Quá trình này được thực hiện trên phần mềm Tại đây, nhóm cũng tiến hành phân

tích, tính toán, tổng hợp các thông số nén và so sánh với ảnh gốc Với việc so sánh

từng pixel của kết quả giải nén và file pixel gốc, nhóm có thé so sánh được sự giống

nhau giữa hai kết quả này

20

Trang 31

L |

J a

Hình 3.2 Mô ta quy trình hiện thực hệ thống

Quy trình thiết kế hệ thống được mô tả như Hình 3.2 Bước đầu tiên trongquá trình là thiết kế và xây dựng thuật toán trên phần mềm bao gồm phần nén vàgiải nén Ở bước này, nhóm sẽ tập trung đánh giá và kiểm tra thuật toán trên cáchình ảnh có kích thước và độ phức tạp khác nhau, sau đó tiến hành cải tiễn thuật

toán và so sánh thuật toán với các phương pháp nén liên quan.

Sau khi đã kiểm tra và đánh giá trên phần mềm, nhóm tiến hành triển khai hệ

thống trên phần cứng bao gồm các bước thiết kế kiến trúc cho hệ thống, cho từng

21

Trang 32

module Từ kiến trúc đó, nhóm sẽ hiện thực hệ thống trên phần cứng bằng ngôn ngữ

verilog Trong bước nảy, cần mô phỏng hoạt động của từng module để đảm bảo

chúng chạy đúng chức năng.

Bước cuối cùng trong quy trình hiện thực hệ thống là tiễn hành giải nén kếtquả trên phần mềm Từ kết quả đó, nhóm tiến hành so sánh hình ảnh trước khi nén

và hình anh sau khi giải nén dựa trên cau trúc tương đồng (SSIM)

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

dir_out [15:0]

value_out [3:0

position_in [15:0]

Hình 3.3 Mô tả Interface khối Compression Core

Khối Compression Core được mô tả như Hình 3.3 có chức năng xử lý input

đầu vào và nén ảnh thành các chuỗi bit nhị phân Khối Compression Core có đầuvào là các tín hiệu điều khiển, trong đó bao gồm các tín hiệu báo hiệu vi trí và giá tri

của pixel đang được xử lý Đầu ra của Compression Core sẽ cho biết giá trị mãentropy của pixel đó và độ dài chuỗi nhị phân của từng pixel Chi tiết của từng tín

hiệu được mô tả trong Bảng 3.1.

22

Trang 33

Bảng 3.1 Mô tả chân tín hiệu của khối Compression Core

Tín hiệu VO | Số bit Mô tả

clk I 1 Tín hiệu xung clock tích cực cạnh lên của hệ thốngreset_n I 1 Reset bat đồng bộ tích cực mức thấp

pixel I 8 Giá tri của pixel dang xử lýposition_in I 16 | Vị trí của pixel dang xét đếnhstart I 1 Tín hiệu cho biết pixel ở vị tri dau tiênhend I 1 Tín hiệu cho biết pixel ở vị trí cuối cùngdir_out O 16 | Chuỗi bit nén (đường di) của pixel đầu vào

value_ out O 4 Gia tri nhi phan cua pixel sau nén

bit_length O 5 Độ dai chuỗi bit nén và giá tri nhị phân của pixel

done O 1 Tín hiệu băng 1 khi nén xong mỗi pixel

' ' ' '

'

'

pixel[7:0/ '

' '

'

' '

R oot[4:0]| h

'

sl« addri4:0] h

E ' L,I kủ '

Trang 34

Khôi Compression Core có kiên trúc được mô tả chi tiét như Hình 3.4 với

các khối nhỏ khác nhau đề dễ dàng hiện thực và tối ưu hóa thiết kế

Đầu tiên, khối Linear Prediction tiễn hành quá trình dự đoán tuyến tính dé

xử lý input đầu vào từ 8bit thành 4bit, bằng cách tinh giá tri error dựa trên giá tri

pixel lân cận Kết quả của khối Linear sẽ trở thành đầu vào cho các khối Check

Memory, Check Tree, Tree Register File.

Khối Check Memory có nhiệm vụ kiểm tra xem giá trị đang xét có trong câynhị phân hay chưa với đầu vào là giá trị địa chỉ nhận từ đầu ra của khối LinearPrediction Trong trường hợp nếu đã có trong cây thì khối Check Tree sẽ thực hiệnviệc kiểm tra vị trí của giá trị đó trong cây thông qua việc đò từng node trong cây(từ node gốc đến node lá) thỏa mãn điều kiện giá trị node trong cây trùng với giá trị

pixel [3:0] được lay từ khối Linear, kết quả của khối Check Tree sẽ là điều kiện dé

thực hiện khối Output Block trong trường hợp khối Check Memory cho output băng

1 (node đã tồn tại trong cây)

Sau đó khối Output có nhiệm vụ xuất đường đi của node đã có trong cây(trong trường hợp đã tồn tại) hoặc đường đi của node NYT hiện thời (trong trườnghợp chưa tồn tại), kết quả của khối Output Block là một chuỗi nhị phân bao gồm

đường di cua node đang xét va giá trị nhị phân cua pixel [3:0].

Tiếp theo, Insert Register có nhiệm vụ ghi vào khối Tree Register File giá trịđang xét trong trường hợp giá trị đó chưa tồn tại Ngoài ra, giá trị node NYT được

cập nhật lai cho NYT Register Gia tri Root Register sẽ được cập nhật tại lần đầu

tiên thêm giá tri vào cây thông qua Insert Register.

Cuối cùng khối Run Modify có nhiệm vụ cập nhật lại cây nhị phân, Run

Modify thục hiện việc kiểm tra node trong cây thỏa các điều kiện có trọng số lớn

hơn và không phải là node cha của node đang xét (được thực hiện bởi khối Check

Parent) Sau đó thông qua khối Swap node thực hiện việc đổi chỗ node đang xét và

node trong cây.

24

Trang 35

Bảng 3.2 là mô tả thông số hoạt động chi tiết của từng khối dựa trên kiến trúc

dé xuất Trong đó chu kỳ hoạt động là thời gian nhỏ nhất dé từng khối thực hiện quátrình tính toán Dựa trên chu kỳ hoạt động, tại mỗi khối sẽ có các tần số hoạt động

khác nhau.

Bảng 3.2 Thông số chỉ tiết của từng khối trong khối Compression Core

Khối Chu kỳ hoạt động — clock (ns) Frequency

Các khôi còn lại trong kiên trúc là các Register hoặc Register File nên sé có

thông số hoạt động dựa trên khối Compression Core Khối Compression Core có

chu kỳ hoạt động dựa trên chu kỳ hoạt động lớn nhất trên từng module, chu kỳ hoạtđộng cho toàn bộ hệ thống là 8ns, với tần số hoạt động là 125 Mhz

25

Trang 36

thực hiện việc dự doán tuyến tính các pixel lân cận, từ đó cho giá tri error chính là

giá trị đầu vào của khối tiếp theo Các chân tín hiệu được mô tả trong Bảng 3.3

Bảng 3.3 Mô tả chân tín hiệu của khối Linear Prediction

Tín hiệu VO | Số bit Mô tả

clk I 1 Tín hiệu xung clock tích cực cạnh lên của hệ thốngreset_n I 1 Reset bat đồng bộ tích cực mức thấp

pixel I 8 Gia tri cua pixel dang xu ly

position_in I 16 | Vị trí của pixel đang xét đến

pixel_ out O 4 Gia tri error cua pixel sau qua trinh linear

pixel_sign O 1 Tín hiệu cho biết giá tri error mang giá trị âm hay

dương.

hstart I 1 Tín hiệu cho biết giá tri pixel đầu tiên

hend I 1 Tín hiệu cho biết giá tri pixel cuối cùng

26

Ngày đăng: 02/10/2024, 04:24

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN