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 2LỜ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 3MỤ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 4Chuong 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 53.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 65.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 7DANH 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 8Hì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 9DANH 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 10DANH 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 11TOM 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 12MỞ 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 13Chươ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 141.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 161.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 17bả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 181.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 191.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 21Chươ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 22Error 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 23Quy 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 24Hì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 25Huffman 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 26B4.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 27Trướ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 28Input: 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 29Hì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 30Chươ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 31L |
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 32module 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 33Bả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 34Khô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 35Bả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 36thự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