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: Thiết kế và hiện thực phương pháp nén ảnh hiệu quả trên phần cứng: Microshift

90 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 đề Thiết kế và hiện thực phương pháp nén ảnh hiệu quả trên phần cứng - Microshift
Tác giả Vũ Đức Thệ, Trần Tiến Đạt
Người hướng dẫn TS. Lâm Đức Khải
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 51,51 MB

Nội dung

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 3

THÔ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 4

LỜ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 5

1.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 6

Chươ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 7

3.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 8

4.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 9

DANH 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 10

Hì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 11

DANH 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 12

Bả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 13

DANH 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 14

TOM 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 15

MỞ ĐẦ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 16

Chươ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 17

Né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 18

1.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 19

Như 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 20

Vớ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 21

né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 22

Bả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 23

Chươ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 24

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

I=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 26

Intra-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 27

Trong 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 28

Cuố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 29

Uncertainty 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 30

Runlength (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 31

B2.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 32

Bả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 33

Chươ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 34

3.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 35

3.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 36

hstart 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 37

xé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 38

3.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 39

vstart 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 40

pipeline 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

Ngày đăng: 03/11/2024, 19:12

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

TÀI LIỆU LIÊN QUAN