DANH MỤC HÌNHHình 1.1: Mơ tả sự phát triển độ phân giải của ảnh ...--- c5 ©cccsscesccsrcseerea 3Hình 1.2: Mơ tả số lượng bit đề thể hiện các mức xám khác nhau ...- 5: 5Hình 2.1: Ảnh tươn
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
vU DUC THE
TRAN TIEN DAT
KHOA LUAN TOT NGHIEP
HIỆU QUA TREN PHAN CỨNG - MICROSHIFT
Design and Implementation of
Efficient Image Compression in Hardware — Microshift
KY SU NGANH KY THUAT MAY TINH
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
VŨ DUC THE _ 18521423
TRAN TIEN ĐẠT - 18520591
KHÓA LUẬN TÓT NGHIỆP
THIẾT KE VÀ HIỆN THỰC PHƯƠNG PHÁP NEN ANH
HIỆU QUA TREN PHAN CỨNG - MICROSHIFT
Design and Implementation of
Efficient Image Compression in Hardware — Microshift
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS LAM DUC KHAI
TP HO CHi MINH, 2022
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 526/QD-DHCNTT
ngày 19/07/2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CÁM ƠN
Đầu tiên em muốn cảm ơn các quý thầy, cô và các giảng viên đã và đang giảng dạytại trường Dai học Công nghệ Thông tin — Đại hoc Quốc gia Thành phố Hồ ChíMinh đã góp công xây dựng trường và dẫn dắt các thế hệ sinh viên dé có thé pháttriển môi trường học tập tốt như ngày hôm nay Trong quá trình học tập và rènluyện tại trường, em nhận được sự chỉ bảo tận tình, nhận được những kiến thức,
kinh nghiệm quý báu của các thầy/cô, từ đó đã giúp em có được kiến thức chuyên
môn đầy đủ như hiện tại Ngoài ra, em còn được trang bị kỹ năng mềm trong quátrình theo học tại trường, giúp em có thể bước vững trong cuộc sống và trong tương
lai.
Tiếp theo, em xin cảm on các thầy/cô thuộc Khoa Kỹ thuật máy tinh đã giúp đỡ emtrong những lúc khó khăn về học vụ, đăng ký học phần hay là khi thực tập tại cácdoanh nghiệp và hỗ trợ hết mình dé em có thé mượn thiết bị trong lúc làm khoá
luận.
Đề có thể hoàn thành khóa luận này, em xin cảm ơn thầy Lâm Đức Khải đã tận tình
hướng dẫn từ lúc chúng em là sinh viên năm ba và đã hỗ trợ chúng em thực hiện các
báo cáo, chỉ day về công cụ học tập và tích lũy nhiều kiến thức quý báu
Sau cùng, em muốn gửi lời cảm ơn đến gia đình và bạn bè đã luôn là hậu phương
vững chắc, là chỗ dựa tinh thần giúp em có thé hoàn thành khóa luận và hoàn thành
những năm tháng là sinh viên tại trường Đại học Công nghệ Thông tin.
Thanh phố Ho Chí Minh, tháng 8 năm 2022
Sinh viên thực hiện
Trần Tiến ĐạtOr
Vũ Đức Th
Trang 51.3.7 Cau trúc tương đồng - SSIM 2-2 ©E2+EsEEerkerrrrerrkervee 6
I Hy 0 i02) 0 sa 4 7
1.4.1 Phương pháp nén không mất mát - lossless compression 7
1.4.2 _ Phương pháp nén mất mát - lossy compression -s-s¿ 7
1.5 Mục tiêu của đề tài ccctt the 8
Chương2 CO SO LÝ THUYET ioeccecceccceccesceccssessesseessessessesssessessessesssessesseeseees 10
2.1 Lượng tử h6a oe eenccesnecescecenceceseceeeceacecsaeeceaeceseeceaeecsaeeesaeceeeseaeeesaeeee 10
2.1.1 Luong tử hóa trong nén ảnH -. 5 << kh nnntrư 10
2.1.2 Luong tử hóa dùng mảng mICTOShIÍ - 55555 <++<<++see+sssss 11
2.2 Intra-prediction n 13 2.3 Inf€r-DF€dICfION -.G SG n1 nu HH HH 15
" W roi 16 16 2.5 Mã hóa Golormb - - - 66661111 1111EEEEE5555535551 151111 khe 17
Trang 6Chương 3 KIÊN TRÚC THIET KE PHAN CỨNG HE THÓNG 20
3.1 THIẾT KE HỆ THNG 2-2522 £+SE+EE£EEEEEEEEEEEEErErrkrrkerreee 20
3.1.1 Mô tả tong quan hệ thống - ¿2 - + 5E+SE+EE+EE2E£EeEEerkerxerseree 20
3.1.2 Quy trình thực hiện hệ thống - -2- 2 2 2+2 £+Ee£Ee£xerxersxez 21
3.1.3 Mô tả Image Compression COTG 5s s + +ssksseeeeseeersere 22
3.1.3.1 Mô tả InT€TÍAC - - 2G Ăc Q1 Q HS ng vn 22
3.1.3.2 Sơ đồ khối thiết kế ¿ 2¿©2+22+2EkSEEE2EEE2EEEEEExCrrrerkrervee 23
3.2 THIẾT KE CHI TIẾT - ¿5£ +2£+EE++EE+2EE+EEESEE++EEtrEEerkesrxrrrrree 25
3.2.1 _ Thiết kế khối Microshift -2- + x+2E++E+EEtExerEzrxerxerkerree 25
3.2.1.1 M6 tả Inf€TfAC@ - 10010010 hen re, 25
3.2.1.2 Mô tả thiết kẾ 2¿-2:- + 2k2 2E1221212112112217121 211 xcrrrrei 26
3.2.2 _ Thiết kế khối Line Buffer - 2-2 ©2+££+EE+ExerEzresrxerxerree 27
3.2.2.1 Mô tả interface eccceesscccccesssscececeeesseeeceeeessseeeceeeesseeeeeeeensas 27
3.2.2.2 Mô tả thiết KO o.cececcceccesecsesseeseessessessessesssessessessessseesecsessessseeseeseess 28
3.2.3 Thiết kế khối Texture Vector CalCuÏatOr s- - s+ss+s+z++x+zzxezs2 30
3.2.3.1 Mô tả InT€TÍACe (2c G 01001221 HH ng ven 30
3.2.3.2 Mô tả thiết kẾ ¿5c 2+ 2k 2k2 2221221221711211211 112121111 ckcre 31
3.2.4 Thiết kế khối Select mode ¿ ¿©++©++++++zx++rxrzxssrxesrxee 32
3.2.4.1 MG ta oi se A1.A1 32
3.2.4.2 M6 ta thiét ÔÔÒỎ 33
3.2.5 Thiết kế khối Inter-intra Prediction ccccccssescssessesessesesseseeseceeseceveee 35
3.2.5.1 Mô ta InT€TÍAC 2c 0Q 00111 HH3 kg ven 35
3.2.5.2 Mô tả thiết kế chỉ tiẾt -2¿©2+c 2+ 2x22 EEerkrerkrervee 36
3.2.5.3 Thiết kế khối Intra prediction (Subimage 1) - 38
Trang 73.2.5.4 Thiết kế khối Inter prediction (Subimage 2~9) - 39
3.2.5.5 Thiết kế khối Error mapping -: -¿-s¿2cx+cx++cxe+cxe+ 42
3.2.5.6 Thiết kế khối Golomb encode .: -¿s++c++cz+zcx+zcse2 43
3.2.6 _ Thiết kế khối Run length ¿5c + ++++E++EE+E£Eerkerxerxerxexee 43
3.2.6.1 Mô tả InT€TÍAC - - c 00001112 vn ven vết 43
3.2.6.2 Mô tả thiết Kế c¿©22c 2222k 22x2212211221211211221 21111 ecrvee 45
3.2.6.3 Thiết kế khối Runlength accumulafor- . :-2 s-=5+¿ 46
3.2.6.4 Thiết kế khối Runlength encode 2-2 s+sz+zs+zx+zxzsz 47
Chuong 4 | KET QUA HIEN THUC THIET KE 0 ecceccsccesscssesssessessessesssesseeseess 49
4.1 Phương pháp đánh giá - c6 Sàn HH Hà HH Hy 49
4.2 Mô phỏng từng khối - - +52 s+SE+E2E2EEEEEEEEEEEEEEEEEEEEEEEEEErkerkrrkrree 50
4.2.1 Mô phỏng khối Microshift -2-©5¿©5225<+E+£E£E2EtExerxerreee 50
4.2.2 Mô phỏng khối Line buffer 2-2 2+++££+£££Ee£Eezxerxerxee 50
4.2.3 Mô phỏng khối Texture vector calculatOr - -: sz-sz-: 51
4.2.4 M6 phỏng khối Check end of line -¿- ¿s2 ©++sz+zx+2zs+ex 52
4.2.5 Mô phỏng khối Select sfafe ¿5 2+ t+cs+EE+E2E£Eerkerkerxerxee 53
4.2.6 Mô phỏng khối Intra prediction (Subimage I) . - 54
4.2.7 Mô phỏng khối Inter prediction (Subimage 2-9) - 55
4.2.8 Mô phỏng khối Error mapping c ceccescssessessessesseseesseseeseeseeseeseseesees 61
4.2.9 Mô phỏng khối Golomb encode -2- 2s s+s£+£++ze+zxzszez 61
4.2.10 Mô phỏng khối Runlength encode 2-2: s2 sz+sz+£szzxzseez 62
4.2.11 M6 phỏng khối Runlength aceumulatOr :2©5¿c5z25sz£- 63
4.3 Mô phỏng khối Image Compression COre -. -2- 2 + s2252+£s+z++zxzxz 64
4.4 Tống hợp kết quả và so sánh với các công trình liên quan - 65
Trang 84.4.1 Kết quả kiến trúc đề xuất đạt đưỢC ¿- c-cccx+xerkekerxekerxererxers 65
4.4.1.1 Kết quả mô phỏng phần mềm — Matlab . : 5: 65
4.4.1.2 Kết quả mô phỏng phan cứng — Quartus & Modelsim 66
4.4.1.3 So sánh kết quả mô phỏng phan cứng và phần mềm 67
4.4.2 So sánh mục tiêu dé ra và kết quả đạt được của kiến trúc đề xuất 68
4.4.3 So sánh kết quả mô phỏng với kiến trúc nén Microshift [12] 69
4.4.3.1 So sánh phần mềm 2-2 5£ +S£+EE+EE£EE2EEEEEEEEEEEEEErrxrrkerree 694.4.3.2 So sánh phần cứng - 2c c2 EEEE2EEEE1EE1 21211 crkerkee 70
4.4.4 So sánh với một số bài báo khác thực hiện trên FPGA 71
4.4.4.1 So sánh với hệ thống nén JPEG [16] csscecseesseesseessesseesseeeseesses 71
4.4.4.2 So sánh với hệ thống nén biến đồi rời rac 2D [20] - 72
4.4.5 So sánh với các bài báo khác thực hiện trên SoC - - 72
Chương 5 KÉT LUẬN VA HƯỚNG PHÁT TRIEN DE TÀI - 73
5.1 KẾt luận -cc2cc 2k ckE t2 ET212211111011211 111011111111 73
5.2 Khó khăn gặp phải -2¿22¿©5+ 2 2‡EE2EE221E211271E221 211211221 221cc 74
5.3 Hướng phát triỀn - ¿+ ++St9Et+EE2EE2EEEEEEEE7151121211211211171 1111 c0 74
TÀI LIEU THAM KHẢO - - St EESE+EEEEEESEEEEEESEEEEEESESEEEEEESEEEEEESErrkrkrree 75
Trang 9DANH MỤC HÌNH
Hình 1.1: Mơ tả sự phát triển độ phân giải của ảnh - c5 ©cccsscesccsrcseerea 3Hình 1.2: Mơ tả số lượng bit đề thể hiện các mức xám khác nhau - 5: 5Hình 2.1: Ảnh tương tự và ảnh số NO seessessesssesssesssesssessesssesssessssssesssssssessesssecssecsessses 10Hình 2.2: Ví dụ về quá trình lượng tử hĨa c5 seSt+EE‡E+E+EEEeEkerkerkerkerkei 12
Hình 2.3: Mơ tả các hình ảnh con 1~9 được chia từ ảnh sau lượng tử T 13
Hình 2.4: Pixel A ~ E trong hình ảnh con (1) được sử dụng đề dự đốn nội bộ ]3Hình 2.5: Vị trí của các pixel mẫu trong hình ảnh Ï 2ce+se+eecersrssreee 13Hình 2.6: Biểu thị phạm vi khơng chắc chắẮN -:- + ct+t+E+EEE+ESESEEESEEErtsrerrksree 16
Hình 3.1: Tổng quan hệ thống nén ảnh — Image Compression Core 20Hình 3.2: Quy trình thực hiện hệ thong nén ảnh Image Compression Core 21
Hình 3.3: Interface khối Image Compression Core crcccccscssvssssvsssevssvssesvssesesvesseeseens 22
Hình 3.4: Sơ do khối Image Compression Core -resccsccssvesvessvesvessesseessesvessessesssesseeseess 23
Hình 3.5: Interface của khối Microshift c.cccccccceccsscsssessessesssssessessesseseesessessesseeseesesseees 25Hình 3.6: Mơ tả thiết kế chỉ tiết khối MicrosNiftc ccscccccessesscsssessessessessessessessessseeseeses 26Hình 3.7: Interface của khối Line buffer ceccccccccsccessesscsssessesssssssssessessssssessessessssseeseeses 27
Hình 3.8: Sơ đơ khối Line U[ƒ@F cc-©5c©5£S< EE‡EESEEEEEEEEEEEEEEEEEEEEEEkrrrrrkerrrres 28
Hình 3.9: Hình anh đại điện các pixel lân cận pixel X «-+-c «<< +sssesssess 29
Hình 3.10: Interface của khối Texture vector €aÏCHÏAfOF - 2-5255 ©52+ce+c++£x>s2 30
Hình 3.11: Sơ đồ chỉ tiết khối Texture vector caÌCHÏ4†OF 2-©5c©5e©5s+cs+cx>ss 31Hình 3.12: Interface khối Select mode ccsscssssssessessessssssessessssssessessessesssessessessssssessecses 32
Hình 3.13: Sơ đơ chỉ tiết khối Select MOde -cccccccccccccecrrrrcevveerrrrrrkke 33
Hình 3.14: Interface khối Inter-intra prediCIiOH - 2-55 252+5£+eectertererersssez 35Hình 3.15: Sơ đồ chỉ tiết khối Inter-Intra prediCfÌOH - 2-52 2©5e+cecee£s+cecsse2 36Hình 3.16: Sơ đơ thiết kế khối Intra prediction cecccsccsscsssessessssssessessesssessessessessseeseeses 38Hình 3.17: Sơ đồ thiết kế khối Inter prediction ccccesscsssessessesssessessessesssesseesessessseeseess 39Hình 3.18: Sơ đơ chỉ tiết khối Bound update sCđÌAFr :©22- 5s 5sccc+ce+csccxecsez 41
Hình 3.19: Sơ đơ chỉ tiết khối Bound Update SCAIAT NOE eằ 5555 5S << ++++s 42
Hình 3.20: Sơ đồ chỉ tiết khối Error Mapping - 5-5-5555 E‡E+E‡EEerkererersree 42
Trang 10Hình 3.21: Sơ đồ chỉ tiết khối Golomb encode : se se +t+e+E+E+EvEsEvxsrsrersrs 43
Hình 3.22: Interface khói Run 7.1478 1nẺẼẼ58eeaÔỒ 44
Hình 3.23: Thiết kế chỉ tiết khối Run length cecccccecccsscsscessessesssessessessssssessessessesseeseeses 45Hình 3.24: Interface khối Runlength ACCUMULALOL à ào c Ăn Eseeeereeeeeers 46Hình 3.25: Interface khối Runlength encode - 2-52 5s+5£+5£+£+Ee£Eertertererssrez 47Hình 3.26: Thiết kế chỉ tiết khối Runlength encode - 2-2 2+2 +se+++£s+c+£s+se2 48Hình 4.1: Quy trình mô phỏng hệ thong ceccscccsccssessessssssessessessessecsesssssecsessesssssecseeses 49Hình 4.2: Waveform khối Microshift ccccccsscsscessessesssessessessesssessessessssssessecsessssevecseeses 50Hình 4.3: Waveform khối Line bu[Ï€r + +55 St+E‡E+E£EEEcEEerkerkerkerkererree 51
Hình 4.4: Dạng sóng mô phỏng khối Texture vector caÌCuÏ4fOF -s- 55+: 52
Hình 4.5: Mô phỏng dạng sóng khối Check end of line c.scecceccsssessssessessesseesessessessenes 53Hình 4.6: Mô phỏng dạng sóng khối Select State cececcscescescescesvssvessssessessessessesseesesseees 54Hình 4.7: Waveform khối Intra prediction ccccccccessessssssessessesssessessessesssessessessssseeseeses 55Hình 4.8: Waveform khối Subima ge 2 c.cceccsscsscsssessssssessessessssssessessesssssessessessssssecseeses 56
Hình 4.9: Waveform khối Subimage 3 veecceccccsccescsssesvsssesseseessssessesesessesvessesessseneeneaees 56
Hình 4.10: Waveform khối Subimage 4 cecccccccescescssssssssessessessessessessessssessessessessessessease 57Hình 4.11: Waveform khối Subimage 5 cececcesssscesvsssssessessessessessessessesessessessesseeseesesseees 58Hình 4.12: Waveform khối SUDiMAge 6 veceececcescescescesessessessessesssssessesessssessessesseeseeseaee 58Hình 4.13: Waveform khối Subimage 7 vcccssccescessessessssssessesssssessecsesssssecsecsessssesecsesses 59Hình 4.14: Waveform khối Subimage 8 vecccsscsscessessesssessessessesssessessesssssessessessssseeseeses 60
Hình 4.15: Waveform khối Subimage 9 vcccsccscsssessssssssessssessessssssssesesseseessesessesneeneaees 60
Hình 4.16: Waveform khối Error Mapping vevceccescescssessessessessessessessessesessessessessessesseess 61Hình 4.17: Waveform khối Golomb encode va.ccecsessessssssessessesssessessessesssessessesssssecsecses 62Hình 4.18: Waveform khối Runlength encode veccecscsssssvessessessssssessessesssessessessessseesesses 62Hình 4.19: Waveform khối Runlength aCCUMULALOL ccecsessessssssessessesssessessessesssesseeses 63
Hinh 4.20: Waveform khối Image Compression COre 55+ +ssvssses 64
Trang 11DANH MỤC BANG
Bang 1.1: Thông số mục tiêu của đề tài khóa luậN - 2-2 2© ©secs+ce+£ezrzeerea 9Bang 2.1: Mã hóa Golomb tham chiếu theo thương số -:©-+©-s+cs+cs+cse+ 19Bang 2.2: Mã hóa Golomb tham chiếu theo 86 AU -2- 2 s©c+ce+cs+cxecsez 19
Bang 3.1: Mô tả chân tín hiệu interface Image Compression Core 22
Bảng 3.2: Thông số hoạt động của từng khối trong khối Image Compression Core
Ắ "-.:.' e 24
Bảng 3.3: Mô tả tín hiệu Interface khối Microshiff 255cc 5ccsecsscscsscez 25Bang 3.4: Bang thông số hoạt động của từng khối trong khối Microshifr 27Bảng 3.5: Mô tả tín hiệu interface khối Line buffer c.cccccesccssssssessessessvessessessesssesseeses 28
Bang 3.6: Mô tả tín hiệu Interface khối Texture vector caÌcuÏ4fOF 5-5: 30
Bảng 3.7: Bang thông số hoạt động từng khối trong khối Texture vector calculator
— //ŒđG < ố ố 32
Bang 3.8: Mô tả interface khối Select MOE veevecseccssvessevssessssvesssvssesssvsssvsassveassneavens 32Bang 3.9: Thông số hoạt động từng khối trong khối Select mode - : 34Bảng 3.10: Mô tả tín hiệu Interface khối Inter-intra prediction -: - 35Bang 3.11: Thông số hoạt động từng khối trong khối Inter-intra prediction 37Bảng 3.12: Bang chỉ tiết số chu kỳ của các khối Inter prediction -. -5- 40Bảng 3.13: Kết quả cải tiễn hình ảnh con 2 và § - 2-5 sce+cs+kectecsererssrsee 40Bảng 3.14: Mô tả tín hiệu interface khối Run length ©5255 5secs+cs+csss2 44Bảng 3.15: Thông số hoạt động từng khối trong khối Run length - 45Bang 3.16: Mô tả tín hiệu Interface khối Runlength accumulator -. - 46
Bảng 3.17: Mô ta tín hiệu Interface khối Runlength encode -.«<<««<+ 47
Bang 4.1: Kết quả mô phỏng hệ thong nén ảnh trên phan mễằm - 65Bang 4.2: Kết quả mô phỏng hệ thống nén ảnh trên phan mém với ảnh RAW 66Bảng 4.3: Kết quả mô phỏng phan CỨPg ¿5-5-5 SteSE‡EE‡E+EEEEEeEEerkerkerkereee 66Bang 4.4: Tài nguyên phan cứng của hệ thong nén ảnh dé xuất -. - 67Bang 4.5: So sánh các thông số giữa phan cứng và phân MEM -. - 68
Bang 4.6: So sánh mục tiêu va két quả đạt được của hệ thống đề xuất 69
Trang 12Bảng 4.7: So sánh thông số nén của hệ thong -©-+©-s+c<©++cee+ecszssrxecsez 69
Bảng 4.6: Bảng so sánh các thông số phan 271.0100087 71Bang 4.9: So sánh thông số về hệ thống nén ảnh với hệ thống nén JPEG 71Bang 4.10: So sánh thông số nén của thiết kế dé xuất với 2D-Discrete Wavelet
7.1) 27, 000n8n8nẺ d 72
Bảng 4.11: So sánh thông số nén ảnh với các giải thuật khác thực hiện trên SoC 73
Trang 13DANH MỤC TU VIET TAT
ALM Adaptive Logic Module
ALUT Adaptive Look-Up Table
BPP Bit Per Pixel
CR Compress Ratio
FIFO First In First Out
FPGA Field Programmable Gate Array
HDL Hardware Description Language
IP Intellectual Property
MRF Markov Random Field
PSNR Peak Signal to Noise Ratio
RTL Register-Transfer-Level
SSIM Structural Similarity Index Measure
SOC System-On Chip
Trang 14TOM TAT KHÓA LUẬN
Trong khóa luận này, nhóm đề xuất kiến trúc thiết kế phần cứng của phương phápnén ảnh Microshift Trong đó, ảnh sẽ được xử lý thô bang matlab, các pixel của ảnh
được đưa vào phần cứng bắt đầu từ việc lượng tử hóa (microshift): giảm số bit đại
diện cho một pixel để được các giá trị lượng tử, phương pháp này gọi là nén mat
mát Sau đó, dữ liệu sẽ được tiến hành nén sâu hơn với phương pháp nén không matmát Đầu ra của phương pháp nén là các chuỗi bit nhị phân
Ở phần giải nén, nhóm thực hiện trên matlab, từ các chuỗi bit nhị phân có được,
nhóm chuyền về các pIxel được đại diện bởi 3 bịt, và làm ngược lại quá trình lượng
tử hóa, nhóm được các hình ảnh con (mỗi chuỗi bit nhị phân tương ứng với một
hình ảnh con) có các pixel được đại diện bởi 8 bit Khi đó, nhóm có thể tổng hợp lại
hình ảnh ban đầu bằng các hình ảnh con Tiếp theo, nhóm phục hồi ảnh từ phươngpháp MRF bang cách khai thác mối tương quan không gian giữa các hình ảnh thiên
nhiên.
Giải thuật nén của nhóm có thể nén ảnh với tỉ lệ 1.5 bit trên mỗi pixel (8 bit) củaảnh với chất lượng tốt hơn so với các thuật toán nén ảnh trên chip khác Tần số tối
đa mà thiết kế đạt được là 172 MHz
Kết quả sẽ được đánh giá dựa vào các tiêu chi:
e Tính hiệu quả của thuật toán: Kết quả sẽ được đánh giá dựa trên các thông sé
PSNR, SSIM, BPP khi mô phỏng trên Matlab.
e Tài nguyên phan cứng: Việc đánh giá các thông số này sẽ được thực hiện
trên các phần mềm của Intel: Quartus, Modelsim
Kết quả đạt được trong quá trình nghiên cứu của nhóm là hiện thực, mô phỏng trênphần mềm với giải thuật nén ảnh Microshift
Trang 15MỞ ĐẦU
Ngày nay, có rất nhiều thuật toán nén ảnh nỗi tiếng trên thế giới như JPEG, DCT,LZW Nhưng các hệ thống nén thường lớn và không đáp ứng được nhu cầu truyềndẫn ảnh ngày càng nhiều, độ phân giải cao Các thuật toán nén hình ảnh trên FPGA
được thiết kế dé tối đa hóa tốc độ nén mà không làm giảm đáng kể chất lượng cảmnhận Đối với các mạng cảm biến hình ảnh không dây như giám sát nhà thông minhhay nghiên cứu về y học, ngoài các yếu tố như cường đồ tín hiệu trên nhiễu, tỉ lệ
nén thi tần số hoạt động cũng là một yếu tố thiết kế quan trọng
Tuy nhiên, nhiều tiêu chuẩn nén phức tạp, mặc dù hiệu quả cao về hiệu suất nén,không phù hợp với việc đáp ứng tần số cao Trong những năm gần đây, một số thuậttoán trên chip đã được đề xuất Một vấn đề xảy ra là: trong khi các công việc nàynhắm mục tiêu đến độ phức tạp phần cứng thấp, hiệu suất nén của chúng thường bịảnh hưởng, và tốc độ nén chậm Mục tiêu của đề tài là thiết kế hệ thống nén đạt hiệu
quả về tân sô cao.
Các phân tiép theo của khóa luận sẽ được tô chức như sau:
e Chương 1: Trình bày về tông quan dé tài, tính cấp thiết của dé tài cũng như
nghiên cứu nổi bật liên quan đến dé tài của nhóm
e_ Chương 2: Giới thiệu cơ bản về lý thuyết của các kỹ thuật liên quan đến nén
ảnh.
e Chương 3: Dua ra thiết kế tong quan của hệ thống, sau đó tập trung đi sâu
vào thiết kế chi tiết các thành phan trong thiết kế hệ thống
e Chương 4: Mô phỏng từng khối của thiết kế, tổng hợp kết qua phan cứng,
phần mềm và so sánh với các công trình liên quan
e Chương 5: Tổng kết, đưa ra kết luận, những khó khăn gặp phải và hướng
phát triển tiếp theo của đề tài
Trang 16Chương 1 GIỚI THIỆU TONG QUAN DE TAI
1.1 Đặt van đề
Trong xã hội hiện nay, khi công nghệ thông tin (CNTT) ngày càng phát triển
và tác động và mọi mặt của cuộc song, một trong những nhu cầu lớn của CNTT làviệc truyền tải và lưu trữ thông tin Nếu chi đơn thuần là truyền tải và lưu trữ dữliệu gốc thì dung lượng lưu trữ (hay băng thông) sẽ rất cao và gây nên sự tiêu tốn tàinguyên Dé giải quyết van dé này, nhóm đã nghiên cứu đến các thuật toán nén dữliệu nhằm hướng tới việc sử dụng ít dung lượng hơn nhưng dit liệu gốc vẫn thé hiện
được chính xác hay tương đối chính xác dữ liệu gốc ban đầu Nén dữ liệu rất quan
trọng, giúp giảm tải tài nguyên lưu trữ Tuy nhiên, việc nén dit liệu cần tiêu tốn tàinguyên vào việc nén và giải nén, đòi hỏi nhiều hơn về phần cứng và xử lý Tuynhiên, với sự phát triển của khoa học công nghệ, năng lực tính toán của thiết bị
ngày càng cao, và nén dữ liệu ngày càng trở nên quan trọng và được ứng dụng rộng
Trang 17Nén ảnh là một trong những mảng nghiên cứu quan trọng trong nén dữ liệu, đây là
ngành khoa học còn tương đối mới mẻ so với nhiều ngành khoa học khác Khi cáccông nghệ truyền thông trên thế giới ngày càng tiên tiến và hiện đại, kích thước cácbức anh hay video tăng lên theo Hình 1.1 mô tả về sự phát triển của độ phân giảiảnh Do đó nén ảnh hay video đang được tập trung nghiên cứu và phát triển vìnhững ứng dụng thực tiễn của nó trong nhiều lĩnh vực khác nhau [1]
1.2 Giới thiệu nén ảnh
Cùng với sự phát triển của công nghệ kỹ thuật số, công nghệ nén ảnh ngày càng
quan trọng trong các ứng dụng khác nhau Một hình ảnh thường bao gồm một khốilượng lớn dữ liệu, nó yêu cầu không gian nhớ rộng và mat nhiều thời gian cho việc
di chuyên hình ảnh từ nơi này đến nơi khác Nén ảnh là một kỹ thuật mã hóa cácảnh số hóa nhằm giảm số lượng các bit đữ liệu cần thiết dé biéu diễn ảnh Mục đích
là giảm đi những chi phí trong việc lưu trữ và thời gian dé truyền anh đi xa trongtruyền thông nhưng vẫn đảm bảo được chất lượng ảnh [2]
Nén ảnh thực hiện được là do một thực tế: thông tin trong bức ảnh không phải làngẫu nhiên mà có trật tự, tô chức Vì thế nếu khai thác được tính trật tự, cầu trúc đóthì sẽ biết phần thông tin nào quan trọng nhất trong bức ảnh dé biểu diễn và truyền
đi với số lượng ít bit hơn so với ảnh gốc mà vẫn đảm bảo tính đầy đủ của thông tin
Ở bên nhận, quá trình giải mã sẽ tổ chức, sắp xếp lại được bức ảnh xp xi gần chính
xác so với ảnh gôc nhưng vẫn thỏa mãn chât lượng yêu câu.
1.3 Các khái niệm cơ bản
1.3.1 Pixel (Picture element): Phan tir anh
Ảnh trong thực tế là một anh liên tục về không gian và về giá trị độ sáng Dé có thé
xử lý ảnh bằng máy tính cần thiết phải tiến hành số hóa ảnh Như vậy một ảnh là
một mảng tập hợp các pixel Mỗi pixel có một cặp tọa độ x, y và biểu diễn mộtđiểm màu Màn hình máy tính có nhiều loại độ phân giải khác nhau như: 320 x
200, 640 x 350, 1024 x 768, 6K, 8K.
Trang 181.3.2 Mức xám (Gray level)
Mức xám là kết quả sự mã hóa tương ứng của mỗi cường độ sáng của mỗi điểm ảnh
với một giá tri sô - kêt quả của quá trình lượng hóa Hình 1.2 mô tả các mức xám
được tham chiếu với từng độ rộng pixel khác nhau trong ảnh
Trong một bài toán, dữ liệu bao gồm một tập các phần tử cơ sở gọi là dữ liệu
nguyên tử Nó có thé là một chữ số, một ký tự nhưng cũng có thé là một con số,
một từ điều đó phụ thuộc vào từng bài toán
1.3.4 Nén dữ liệu
Nén dữ liệu là quá trình giảm dung lượng thông tin “dư thừa” trong dit liệu gốc và
làm cho lượng thông tin thu được sau nén thường nhỏ hơn dữ liệu gốc rất nhiều Do
vậy, tiết kiệm được bộ nhớ và giảm thời gian trao đổi dữ liệu trên, mang lại thông
tin mà lại cho phép khôi phục lại dữ liệu ban đầu
1.3.5 Tỷ lệ nén - CR
Ty lệ nén (Compression Ratio) là một trong các đặc trưng quan trọng của mọi
phương pháp nén Tỷ lệ nén được định nghĩa như sau:
CR = 1/r*100%, với r là tỷ số nén được định nghĩa: r = kích thước dữ liệu gốc / kích
thước dữ liệu nén.
Trang 19Như vậy hiệu suất nén = (1 — CR)*100%.
Don vi cua tỉ lệ nén — CR là bit/pixel và được gọi tắt là BPP
Tỉ lệ nén trong nén ảnh, video:
Đối với ảnh tĩnh, kích thước chính là số bit biểu diễn toàn bộ bức ảnh.
Đối với ảnh video, kích thước chính là số bit để biéu diễn một khung hình video
(video frame).
1.3.6 Tỉ lệ tín hiệu trên nhiễu - PSNR
Tỉ lệ tín hiệu trên nhiễu (Peak Signal to Noise Ratio) là một thuật ngữ dùng dé tính
toán, đo lường tỉ lệ giữa giá trị năng lượng tối đa của một tín hiệu và năng lượngnhiễu ảnh hướng đến độ chính xác của thông tin PSNR [3] được sử dụng đề đo chấtlượng tín hiệu khôi phục của các thuật toán nén có mất mát dữ liệu (lossy
compression) PSNR được tính bởi công thức (1); trong đó MAX; là giá trị tín hiệu
lớn nhất tồn tại trong hình ảnh gốc, emspg là sai số bình phương trung bình giữa anhgốc P, và ảnh sau khi giải nén P; Tham số ewsg được tính bởi công thức (2), trong
đó n và m là sô hàng và cột của hình ảnh gôc.
MAX?
PSNR = 10log¡g ; (1)
€MSE
1 mnense=—— >) [i — PDE, (2)
i=1 j=1
1.3.7 Cau trúc tương đồng - SSIM
Cấu trúc tương đồng — SSIM [4] (Structure Similarity Index Measure) là một
phương pháp được sử dung dé đo độ giống nhau giữa hai hình ảnh SSIM dựa trên
việc nhận biết sự suy giảm hình ảnh là sự thay đôi thông tin cấu trúc được cảm
nhận, đồng thời kết hợp các hiện tượng tri giác quan trọng, bao gồm cả thuật ngữ
cường độ sáng (luminance), độ tương phản (contrast) và cấu trúc ảnh (structures)
Trang 20Với một hình anh x, cường độ sáng là pw, và độ tương phản là ø„ được ước tính như
là giá trị trung bình và độ lệch chuẩn của ảnh Thêm vào đó, c, = (kL)? và cz =(kạL)? là hằng số dé tăng sự ổn định với k, <= 1, kạ <= 1 và L là phạm vikhông chắc chan của giá tri pixel
Trong đó, SSIM giữa hình ảnh x và y được tính bởi công thức (3):
(2uxuy + c)(2Øxy + cz)
SSIM(x, So,
(7) E Q2 + by? tea? + đy2 + a) (3)
1.4 Phan loai nén anh
Nén hình anh thường có hai phương pháp: nén mất mát — lossless compression vàkhông mat mát — lossy compression [5] Cả hai phương pháp này đều có ưu vànhược điểm riêng trong các ứng dụng thực tiễn và đều có các thuật toán nén có sẵn
1.4.1 Phương pháp nén không mắt mát - lossless compression
Phương pháp nén không mất mát có khả năng khôi phục lại dạng ban đầu của dữ
liệu Chất lượng của dữ liệu không bị thay đổi Phương pháp này cho phép một
tập tin khôi phục lại hình thức ban đầu của nó Nén không mất mát có thé được áp
dụng cho bắt kỳ định dạng tệp nào có thể cải thiện hiệu suất của tỷ lệ nén 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ó bat kỳ thiếu sót nào trong ảnh sau khi được
giải nén.
Trên thế gidi CÓ rất nhiều thuật toán nén không mất mát nồi tiếng: FELICS [6],
LOCO-I [7], CALIC [8] Các giải thuật nay 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.4.2 Phương pháp nén mắt mát - lossy compression
Đây là một trong những phương pháp được sử dụng rộng rãi trong việc nén dữ
liệu ảnh dé giảm chi phí lưu trữ, nó cũng được gọi là phương pháp nén không thé
đảo ngược Phương pháp này dẫn đến kết quả là mat chất lượng hình ảnh và phải
giữ một số không gian nhất định cho các dữ liệu cần thiết của ảnh Một thuật toán
Trang 21nén mat mát tốt là thuật toán có khả năng tìm được sự cân bằng giữa chất lượng
và chi phí lưu trữ ảnh.
Một số thuật toán nén mat mát được sử dụng rộng rãi là: DCT [9], 2-D wavelet
transform [10], JPEG2000 [11] Các thuật toán này tuy cung cấp sự cải thiệntrong tỉ lệ nén, đề xuất các kiến trúc tổng hợp phần cứng nhưng các bộ xử lý hình
ảnh này tốn kém chỉ phí thiết kế và tiêu hao nhiều năng lượng
1.5 Mục tiêu của đề tài
Ở đề tài này, nhóm sẽ nghiên cứu, phân tích và tìm hiểu lý thuyết về mô hình nénảnh Microshift [12] và các các mô hình liên quan đến nén Tiếp theo nhóm tiếp tụcnghiên cứu, phân tích và thiết kế IP, sử dụng ngôn ngữ Verilog, thiết kế theo kiếntrúc đường ống — pipeline [13] Sau cùng nhóm sẽ mô phỏng và kiểm tra thiết kế
trên matlab dé kiểm tra và hoàn thiện hệ thông Mục tiêu hệ thong nén anh sé dat
được tân sô hoạt động ở mức cao, di cùng với đó là các thông sô nén tot.
Với mục tiêu tông quan như vậy, nhóm dé xuất thiết kế hệ thống sẽ được đánh giá
theo hai tiêu chí chính:
— Đầu tiên, nhóm mô phỏng hệ thống nén và giải nén trên phần mềm Matlab Ở
giai đoạn này, nhóm sẽ đánh giá được thông số nén của hệ thống (PSNR, SSIM,BPP) Mục tiêu về các thông số này sẽ được mô tả trong Bang 1.1
— Sau đó, nhóm sẽ hiện thực thiết kế của hệ thống nén băng ngôn ngữ mô tả phần
cứng — Verilog và tổng hợp mạch trên Quartus, mô phỏng Post-Timing trên
Modelsim Qua đây, nhóm sẽ tổng hợp được thông số tài nguyên phần cứng vàtốc độ của hệ thống nén đã đề xuất Mục tiêu của đề tài về tần số hoạt động của
mạch được mô tả trong Bảng 1.1.
Trong đó, kiến trúc đề xuất sẽ đạt được các thông số nén ở mức tương đối với tỉ lệ
tín hiệu trên nhiễu - PSNR đạt 35.00 dB, cấu trúc tương tự - SSIM là 0.93, tỉ lệ nén
- Compression Ratio là 1.2 và tần số hoạt động - Frequency sẽ được cải thiện tốt
hơn so với bài báo tham khảo chính là 100 MHz.
Trang 22Bảng 1.1: Thông số mục tiêu của đề tài khóa luận
Predictive | Block-based „ Phương pháp| DCT | Microshift JPEG| Kiên trúc
Trang 23Chương2 ˆ CƠ SỞ LÝ THUYET
2.1 Lượng tử hóa
Lượng tử hóa [12] là một phương pháp nén mất mát Bằng cách nén một dải độ
sáng có giá tri liên tục thành giá tri rời rac hữu hạn, phương pháp này giúp cho việc
nén ảnh trở nên dé dàng hơn.
2.1.1 Luong tử hóa trong nén ảnh
Lượng hóa ảnh nhằm ánh xa từ một biến liên tục u (biểu diễn giá trị độ sáng) sang
một biến rời rac u* với các giá tri thuộc tập hữu han
Cơ sở lý thuyết của lượng hóa là chia dải độ sáng biến thiên từ Lyin đến L„„„„ thành
một số mức (rời rac và nguyên) Thường L„„¡„= 0, Linax là số nguyên dạng 2P
(Thường chọn B = 8, mỗi điểm anh sẽ được mã hóa 8 bit)
Ảnh khi vào thiết kế sẽ được xử lý thô chuyên từ ảnh tương tự sang ảnh số hóa
-ảnh được biéu diễn bởi các bit nhị phân, chi tiết được biéu diễn trong Hinh 2 1
10
Trang 242.1.2 Lượng tử hóa dùng mảng microshift
Trong bức ảnh ban đầu I thì các pixel có giá trị nằm trong phạm vi [0-255] Nhóm
muốn lượng tử hóa hình ảnh bang cách sử dung một bộ lượng tử hóa M-bit (M =
3), Vì vậy bước lượng tử hóa là A = 256/2 = 32 và các mức lượng tử hóa tương
ứng ỉ„ theo công thức:
lự = kA, (k = 0,1,2, , 2), (4)
Kích thước mẫu dich chuyển vi mô là NxN được mô tả trong công thức (5), dùng
cho cả bộ mã hóa và giải mã.
Sử dụng mảng microshift, nhóm có được sự dịch chuyên tương ứng đối với từng
pixel và sau đó lượng tử hóa các giá trị đã dịch chuyên bằng cách sử dụng bộ
lượng tử thô với độ phân giải 3-bit Cuối cùng, nhóm nhận được một hình ảnh Ï vidịch chuyền theo tiêu chuẩn phụ, tức là:
lãi
Trang 25I=Qq—M), (9)
Ở day, Q biểu thi lượng tử hóa cho mỗi pixel bang cách sử dung các mức lượng
tử hóa l„,k = 0,1,2, ,7 Sự dịch chuyển vi mô trên mỗi pIxel được tính toánthông qua các phần bổ sung Công thức (9) được đưa về phương pháp tính từngphan tử của Ï là i (I; = i) khi 32*i < I; — Mj < 32*(i+1)
Vi du về lượng tử hóa được mô tả trong Hình 2.2 Từ một ảnh gốc với pixel được
đại diện từ 0 đến 255 và mảng microshift, sau khi lượng tử theo công thức (9) sẽ
được ảnh sau lượng từ hóa được đại diện các bit từ 0 đến 7
100 200 167 109 0 4 7 0
60 120 234 111 18 14 11 18 I=|20 20 50 67 M=|21 25 28 21
anh sau luong tu héa
Hình 2.2: Ví dụ về quá trình lượng tử hóa
Trong Hình 2.2, nhóm lấy vi dụ với hai pixel đầu bằng có giá tri 1, = 100 và Ip =
200 Nhóm lay I, — M, = 100, I, — M, = 196 Mà bước lượng tử hóa bằng 32, thay
100 nằm trong khoảng 96 ~ 127 >Ĩ; = 3; 196 nằm trong khoảng 192 ~ 223 > I, =
6 Tương tự đối với các pixel còn lại, nhóm được mang Ĩ là anh sau khi được lượng
tử hóa.
Khi nhóm chon mẫu dịch chuyên vi mô N = 3 như đã được mô tả trong công thức(5), anh sốc sẽ được chia làm 9 ảnh con như trong Hình 2.3
12
Trang 26Intra-prediction - dự đoán nội bộ [17], dùng các pixel mẫu ở cùng một hình ảnh con
dé dự đoán pixel đang nén (chi sử dụng cho hình anh con I) Đây là một phương
Trang 27Trong hai hình ảnh Hình 2.4, Hình 2.5 thì pixel X là pixel đang được nén Sử dụng
các pixel A ~ E dé xác định một vecto kết cấu ø có các phần tử là sự khác biệt giữa
các pixel này.
v=(A-C C-B D-A B-E), (10)
Nếu giá trị vecto v = 0 thi sẽ sử dụng thuật toán runlength encoding dé nén pixel X,thuật toán này sẽ được nêu ở mục 2.4 Ngược lại nếu v != 0 thì giải thuật sẽ tiếp tục
Vi X được biểu diễn bang M bit và nhận giá trị từ [0, 2 — 1] Lỗi dự đoán ¢ chi 2
khả năng: Epossinie = {-X, X — 1, ,2M — 1 — X} Đối với mỗi X có thé xảy ra, lỗi
dự đoán thực sự có thé được ánh xạ thành các số tự nhiên {0,1,2, , 2} Khi X <
2M~1_ điều đó có nghĩa là xác suất xảy ra ¢ dương nhiêu hơn, lỗi dự đoán có thé
được ánh xạ qua:
q3)
, mm —1, — Epossibleamin ) +e, fore>0
eg = ; ,
min(—e, Ebossibte,mazx ) +(-e), fore<0
Tương tự khi XK > 2TM-1 xác suất xảy ra ¢ âm nhiều hon, lỗi dự đoán có thé được
Trang 28Cuối cùng, phần dư dự đoán được ánh xạ € sẽ được mã hóa bằng kỹ thuật mã hóa
entropy Trong đề tài này, nhóm chọn thuật toán mã hóa Golomb, thuật toán này
được nêu chi tiét ở mục 2.5.
2.3 Inter-prediction
Inter-prediction — dự đoán liên [12], sử dụng các pixel lân cận ở các hình ảnh con
khác nhau dé dự đoán pixel đang nén, đây là một phương pháp nén không mat mát
Day là phương pháp sử dụng dé nén các pixel trong các hình ảnh con từ Ï ~ 16),Phương pháp này nén bằng cách dự đoán lẫn nhau, mang lại kết quả hiệu quả hơn
dự đoán nội bộ cho các hình ảnh con này.
Gia sử muốn nén một pixel hình ảnh con là IY) (j > 1) Thay vì sử dụng công cụ dự
đoán nội bộ, sử dụng thông tin trong cùng một hình ảnh con, nhóm sẽ sử dụng các pixel trong các hình ảnh con từ ÏŒ) ~ TU~?) (các hình ảnh con đã được mã hóa trong
nén tuần tự) sẽ mang lại kết quả hiệu quả hơn Điều này bởi vì các pixel tương ứng
trong ÏŒ) ~ Ø~?) thực sự là gần với pixel hiện tại X ; hon pixel lân cận của nó trong
1% Ký hiệu các pixel tương ứng trong IM ~ JØ=?) là X¿, Xp, , X;_¡ Nhóm sẽ tính
vùng không chắc chắn của của các pixel đó theo công thức:
U; = [Xị — 6;,X; — 6; + Al, (15)
Trong do:
© i=1l~g-),
o Ư¿: là vùng không chắc chắn
©_ X;: là giá tri pixel tại vi trí j
o ổ;: giá tri trong ứng trong mảng microshift, được nêu ở mục 2.1.2
o 4: là bước lượng tử hóa
Sau khi tính được các vùng không chắc chắn — equivalent uncertainty range từ 1 ~ (j
- 1) Nhóm tính phạm vi không chắc chắn tương đương như trong Hình 2.6 Mỗipixel đang được nén sẽ được tính vùng lân cận bằng các pixel xung quanh nó
15
Trang 29Uncertainty range U1
Measurand 1
Uncertainty range U2 Measurand 2
Uncertainty range U3 Measurand 3
Hình 2.6: Biểu thị phạm vi không chắc chắn
Nhóm sẽ dự đoán giá tri pixel X,(được đặt là X;) bang trung bình của phạm vi
không chắc chắn tương đương Sau khi tính được giá trị Xj, sai số sẽ tiếp tục được
tính, ánh xạ sai số theo công thức đã được nêu ở mục 2.2 Theo đó, sé lượng thông
tin về pixel xung quanh càng nhiều thì vùng không chắc chắn càng được thu nhỏdẫn đến sai số e nhỏ và được biêu thị bằng ít bit hon và kết quả sẽ cho ra chuỗi bit
nén ngăn hơn.
2.4 Mã hóa Runlength:
Mã hóa Runlength [7] là một phương pháp nén không mất mát Mã Runlength đượctạo ra bằng cách quan sát chuỗi bit 0 (hoặc 1) liên tiếp và thay thế chiều dài chuỗibit này bởi một số nhị phân Ở phần giải nén, nhận được các số nhị phân sẽ thay các
số này bởi các bit 0 (hoặc 1) đồng thời chèn các bit khác loại vào
Ví dụ tạo mã Runlength cho chuỗi đữ liệu sau bằng cách dùng số 4 bit thay cho sốbit 0 liên tiếp:
- Dòng dữ liệu0 010 0110 010 0110 091 bit
- Số bit 0 liên tiếp 14 9 20 30 11
16
Trang 30Runlength (nhị phân) 1110 1001 0000 1111 0101 1111 1111 0000 0000
1011 40 bit.
Runlength (thập phan) 1490 15515150011
Nhận xét cách tao mã :
1 bit 1 giữa các chuỗi bit 0 sẽ không được mã, máy thu tự động chèn bit 1
này vào khi phục hồi dữ liệu
Nếu có 2 bit 1 liên tiếp, nhóm xem như có 1 chuỗi gồm không bit 0 giữa 2 bit
1 này và phải được thay thế bởi số 0000
Nếu số số 0 nhiều hơn 15 nhóm phải dùng 2 số nhị phân thay cho chuỗi này
(20=15+5; 30=15+15) Ở máy thu khi gặp chuỗi bốn bit 1 nó phải hiểu là
phải lay tổng số này với các số phía sau, nếu số sau cùng cũng gồm 4 bit 1,máy thu phải được báo bằng chuỗi 4 bit 0 theo sau (trường hợp sau số 30)
Nếu chuỗi dữ liệu bat đầu bằng bit 1 thì máy phát sẽ gửi đi 4 bit 0 đầu tiên
Kỹ thuật nén này chỉ có hiệu quả khi chuỗi dữ liệu chứa rất nhiều một loại bit
Ngoài ra, kỹ thuật nén Runlength cũng được dùng mã hóa các chuỗi ký tự giốngnhau bằng cách thay mỗi chuỗi ký tự liên tiếp bằng con số chỉ độ dài đứng trước ký
Mã hóa Golomb [18] là một phương pháp nén không mat mát
Thuật toán mã hóa Golomb don giản:
BI Chuyén tham số M về một số nguyên
B2 Đôi với N - sô được mã hóa sẽ được tính như sau:
17
Trang 31B2.1 Thương số: q = floor(N/M)
B2.2 Số dư: r= N mod M
B3 Generate codeword
B3.1 Mã hóa thương số
B3.1.1 Viết một chuỗi có độ dai q gồm bit 1 (cách khác là bit 0)
B3.1.2 Viết một bit 0 ở cuối (cách khác là bit 1)
B3.2 Mã hóa số dư
B3.2.1 Tính b = floor(log, M) và u = 2?†1—M
B3.2.2 Nếu r <u thì mã hóa r trong biéu diễn nhị phân sử dụng b bit
B3.2.3 Nếu r > u thì mã hóa số r + u trong biểu diễn nhị phân sử dụng
b + 1 bit.
Vi du vé ma héa Golomb don gian:
Cho M = 10 Khi đó b = floor(log, 10) = 3 vau = 16—-10=6
Giả sử N (số cần mã hóa) bang 2
Kết quả có được M = 10,b=3,u=6,N=2
Khi đó sẽ có hai cách mã hóa dựa theo việc tham chiếu bảng mã hóa Golomb là
Bang 2.1 và Bang 2.2.
Gia str N bang 2
- Đối với phương pháp mã hóa theo thương số, sau khi tinh được q =
floor(N/M) = floor(2/6) = 0, tham chiếu vào Bang 2.1, chuỗi bit output sé 1a 0
- Đối với phương pháp mã hóa theo số dư, kết qua tinh r = N mod M = 2 mod
10 = 2 sẽ được tham chiếu vào Bảng 2.2, kết quả có chuỗi bit output là 010
18
Trang 32Bảng 2.1: Mã hóa Golomb tham chiếu theo thương số
Bảng 2.2: Mã hóa Golomb tham chiếu theo số dự
Mã hóa theo số dư
Trang 33Chương 3 KIÊN TRÚC THIẾT KE PHAN CỨNG HE THONG
3.1 THIET KE HE THONG
3.1.1 Mô ta tống quan hệ thống
Original Image Compression Compressed
Image Core Image
Hình 3.1: Tổng quan hệ thong nén ảnh — Image Compression Core
Hệ thống được mô tả như Hinh 3.1 Anh ban đầu sẽ được đưa qua hai công đoạn xử lý
chính là nén và giải nén Ảnh đầu vào có kích thước 256x216 với mỗi pixel được đại
diện bởi 8 bit Khối Image Compression Core sẽ thực hiện việc nén hình ảnh thànhchuỗi bit nhị phân (thực hiện trên phần cứng) Đầu ra của khối sẽ là 9 chuỗi nhị phân
được đánh dau từ Subửnagel đến Subimage9 Đồng thời, nhóm tổng hợp được tài
nguyên sử dụng phần cứng của thiết kế
Sau khi nhận 9 chuỗi bit nhị phân từ khối Image Compression Core, nhóm sẽ thực hiệnviệc giải nén ảnh từ chuỗi bit nhị phân, sau đó 9 chuỗi bit nhị phân sẽ được giải nén về
9 hình ảnh con sau đó được ghép lại thành một ảnh và được xử lý làm mềm ảnh Công
đoạn này được thực hiện trên phần mềm Matlab Tại đây, nhóm sẽ thực hiện quá trình
tính toán các thông sô nén, thông sô ảnh và so sánh với ảnh gôc.
20
Trang 343.1.2 Quy trình thực hiện hệ thống
Image Compression Core
Mô phỏng RTL
Hình 3.2: Quy trình thực hiện hệ thống nén ảnh Image Compression Core
Quy trình thiệt kê hệ thông được mô tả trong Hình 3.2 Bước đâu tiên là cân xây dựng
một mô hình nén và giải nén trên nên tảng phân mêm Ở bước này, nhóm sẽ kiêm tra
mô phỏng mô hình nén với các loại ảnh khác nhau, cùng với đó là cải tiên giải thuật
nén.
Từ mô hình nén nhóm sẽ hiện thực lên phân cứng băng ngôn ngữ mô tả phân cứng
verilog Trong bước này, cân chắc chăn IP hoạt động đúng khi truyên một hoặc nhiêu
Trang 353.1.3 M6 tả Image Compression Core
Core
Hình 3.3: Interface khối Image Compression Core
Image Compression Core có chức năng nén ảnh, chuyền đổi ảnh thành các chuỗi bit nhịphân Hình 3.3 mô tả interface cua Image Compression Core Nhóm thiết kế khốiImage Compression Core với kiên trúc full pipeline, từ đó, thiết kế sẽ được tối ưu vềmặt tốc độ Với kiến trúc pipeline, nhóm sẽ thiết kế hệ thống với chu kỳ dài nhất củamỗi tầng là thời gian thực hiện phép cộng/trừ số nguyên
Core nén anh này có đầu vào là các tín hiệu điều khiến, trong đó các tín hiệu báo vị trí
của pixel trong ảnh và giá trị pixel đó Đầu ra của khối sẽ cho biết giá trị chuỗi bit của
pixel nén, độ dai của chuỗi đó và vị trí pixel đó trong các subimage Chi tiết của từng
tín hiệu được mô tả trong Bang 3.1.
Bang 3.1: Mô tả chân tín hiệu interface Image Compression Core
Tin hiệu V/O | Số bit Mô ta
clk I 1 Xung clock hé thong, kích cạnh lên
reset I 1 Reset bat đồng bộ kích cạnh cao
valid_in I 1 Tin hiéu sé bang 1 khi di liệu vào dung
pixel_in I 8 | Giá tri pixel đầu vào
22
Trang 36hstart I 1 | Tín hiệu cho biết pixel ở đầu hàng.
vstart I 1 Tin hiéu cho biét pixel dau tién
hend I 1 Tin hiéu cho biét pixel 6 cudi hang
vend I 1 Tín hiệu cho biết pixel cuỗi cùng
bitstream O 16 | Chuỗi bit nén của pixel đầu vào
bitstream_length | O 4 Độ dài chuỗi bit nén
subimage_index | O 4 Vi tri cua pixel thuộc hình ảnh con nào (1~9).
valid_out O 1 | Tín hiệu bang 1 khi dé liệu đầu ra đúng
3.1.3.2 Sơ đồ khối thiết kế
vector vector_v Select modef[ 1:0] Select
a0-a9[2:0], | calculator mode nhac
Đầu tiên là khối Microshift thực hiện lượng tử hóa các pixel từ 8 bit về 3 bit, đây là quátrình thực hiện nén mat mát Sau khi lượng tử hóa thì khối Line buffer thực hiện lưu các
pixel đê trích xuât các pixel lân cận Kê là khôi Texture vector calculator thực hiện việc
23
Trang 37xét ngữ cảnh sau khi lấy các pixel lân cận trong Line buffer Tiếp theo, khối Select
mode sẽ tính toán xem thực hiện nén theo phương pháp nao Sau khi có được chon
được chế độ để nén thì sẽ thực hiện một trong ba khối là Inter-intra prediction,
Runlength accumulator và Runlength Cả ba khối đều thuộc nén không mat mát ra đưa
ra chuỗi bit nhị phân theo các thuật toán khác nhau (được đề cập chi tiết ở phần sau).Tiếp theo khối Select sẽ thực hiện việc chọn kết quả từ một trong ba khối nén không
mất mát ở trên theo chế độ nén đã được tính toán ở khối Select mode
Bảng 3.2 là thông số chỉ tiết hoạt động của từng khối trong kiến trúc đề xuất Trong đó
chu kỳ hoạt động là thời gian nhỏ nhất dé từng khối tính toán đúng, Latency là số lượng
chu kỳ để tính toán từ khi có đầu vào đúng và khi xuất đầu ra Chu kỳ hoạt động của
khối Image Compression Core sẽ bằng khối có chu kỳ lớn nhất, do đó nhìn vào Bảng3.2 nhóm có thé tong hợp được chu kỳ hoạt động của hệ thống nén là 5.4ns
Ở đây, do khối Inter-intra prediction và Run length xử lý dữ liệu song song trong kiếntrúc pipeline nên khi tính tong Latency của cả hệ thống nhóm chỉ lay Latency của khốilớn hơn là khối Inter-intra prediction với 37 clock Trong kiến trúc pipeline, dir liệu
đầu ra của khối nhỏ hơn sẽ được delay dé bang Latency của khối thực hiện song song
Do đó, Latency của hệ thống nén là 50 chu kỳ xung clock
Bảng 3.2: Thông số hoạt động của từng khối trong khối Image Compression Core
Khối Chu kỳ hoạt | Latency
động - clock (ns) | (clock)
MicroshIft 5 2
Line buffer 4.8 3 Texture vector calculator 5.2 2
Select mode 5.4 5 Inter-intra prediction 5.4 37
Run length 5 11
Select 4.8 1
Image Compression Core 5.4 50
24
Trang 383.2 THIẾT KÉ CHI TIẾT
3.2.1 Thiết kế khối Microshift
Hình 3.5: Interface của khối Microshift
Nhóm thiết kế interface của khối Microshift như trong Hình 3.5 Khối này sẽ nhận pixelảnh ban đầu — những pixel sau khi đã được xử lý thô, đồng thời nhận các tín hiệu điềukhiển từ testbench và dau ra là pixel đã được lượng tử cùng với chỉ số hình ảnh con của
pIxel đó.
Khối Microshift có chức năng lượng tử các pixel theo công thức (9), đầu vào là cácpixel 8 bit từ bức ảnh gốc và dau ra các pixel 3 bit đã được lượng tử hóa Các tín hiệu
của khối Microshift được mô tả trong Bang 3.3 đưới đây
Bảng 3.3: Mô tả tín hiệu Interface khối Microshift
Tín hiệu UO | Số bit Mô tả
clk I 1 Xung clock hé thông, kích cạnh lên.
reset I 1 Reset bat đồng bộ kích cạnh cao
valid_in I I | Tín hiệu sé bang 1 khi đữ liệu vào đúng
pixel in I 8 | Giá tri pixel đầu vào
hstart I 1 Tín hiệu cho biết pixel ở đầu hàng
25
Trang 39vstart I 1 | Tin hiệu cho biết pixel đầu tiên.
pixel_out 3 Gia tri pixel sau khi lượng tử hóa
subimage_index Vi trí cua pixel thuộc hình ảnh con nao (1~9).©| OO; O a
valid_out 1 Tín hiệu băng 1 khi dữ liệu đầu ra đúng
Hình 3.6: Mô tả thiết kế chi tiết khối Microshift
Microshift được mô tả trong Hình 3.6 Khối này bao gồm các khối như Locate pixel inSubimage, Subimage index, Quantization Đầu tiên các tín hiệu cho biết pixel có phải ở
vị trí đầu hàng hay cuối hang của bức ảnh không sẽ đi vô khối Locate pixel insubimage Khôi này tính toán xem vi trí của pixel đang nén nam ở vi trí trong mảngMpatter, (7) Đầu ra là cặp số (x,y) là một trong các giá trị (1,1), (1,2), (1,3), (2,1), (2,2),(2,3), (3,1), (3,2), (3,3) Sau đó khối Subimage index và khôi Quantization sẽ nhận cặp
số đầu ra của khối Locate pixel in subimage đê tính toán Khối Subimage index sẽ tínhtoán va tìm ra được vi tri pixel đang nén thuộc hình ảnh con thứ may (1~9) Khéi
Quantization sẽ thực hiện tính toán công thức (9) va nhóm sẽ thu được pixel 3 bit sau
khi lượng tử hóa Vì nhóm chọn thời gian thực hiện mỗi tầng trong kiến trúc — pipeline
là thời gian thực hiện các phép cộng trừ nên khối Microshift sẽ thiết kế theo kiến trúc
26
Trang 40pipeline 2 tầng Với thiết kế hệ thống, thời gian thực hiện một vài pixel sẽ nhanh hơnnhưng khi dùng kiến trúc pipeline thì đa số pixel của ảnh sẽ được xử lý nhanh hơn.
Chỉ tiết về hoạt động của từng khối nhỏ trong khối Microshift được nêu trong Bảng 3.4
Bang 3.4: Bảng thông số hoạt động của từng khối trong khối Microshift
Khối Chu kỳ hoạt | Latency
động - clock (ns) | (clock) Locate pixel in subimage 4.6 1
Hình 3.7: Interface của khối Line buffer
Line buffer là kỹ thuật được dùng trong thiết kế đường ống (pipeline), dùng đểtrích xuất các pixel lân cận pixel đang nén và các pixel mẫu Interface của Line bufferđược mô tả trong Hình 3.7 Khối này nhận pixel sau khi được lượng tử của khốiMicroshift và lưu trữ các giá trị 3 hang pixel của ảnh trong một thời điểm và đưa ra các
giá trị cần dé phục vụ cho giải thuật nén inter prediction va intra prediction ở sau Tinhiệu của khối Line buffer này được mô tả trong Bảng 3.5 dưới đây
27