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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Hiện thực phương pháp nén ảnh mất mát Discrete Cosine Transform (DCT) trên phần cứng

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hiện thực phương pháp nén ảnh mất mát Discrete Cosine Transform (DCT) trên phần cứng
Tác giả Do Chi Tuan, Che Minh Thanh, Phan Cung
Người hướng dẫn TS. Lam Duc Khai
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 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 103
Dung lượng 49,91 MB

Nội dung

Trong đó, mô hình có kết hợp với các phương pháp nén khác như: Color Conversion, Choroma Subsampling, Quantization, Zig-zag, Delta Encoding, Run Length encoding, Huffman Encoding dựa trê

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÓNG TIN

KHOA KỸ THUẬT MÁY TÍNH

Trang 2

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÓNG TIN

KHOA KỸ THUẬT MAY TÍNH

DO CHÍ TUẦN - 18521593

CHE MINH THÀNH - 18521400

KHÓA LUẬN TÓT NGHIỆP HIỆN THỰC PHƯƠNG PHÁP NÉN ẢNH MÁT MÁT DISCRETE COSINE TRANSFORM (DCT) TREN

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

75/QĐ-DHCNTT ngày 15 thang 02 năm 2023 của Hiệu trưởng Trường Dai 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ý thay, cô và các giảng viên đã và đang giảng

day tại trường Dai học Công nghệ thông tin — Đại học Quốc gia Thành phố Hồ

Chí Minh đã góp công xây dựng trường vững mạnh của chúng ta ngày hôm nay.

Trong quá trình học tập và rèn luyện tại trường, em sự 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 thay, cô, từ đó đã giúp

nhóm em có được kiến thức chuyên môn, sâu rộng như ngày hôm nay 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à môi trường làm việc trong tương lai.

Tiếp theo, em xin cám ơn các thầy cô thuộc Khoa Kỹ thuật máy tính đã giúp đỡ

em trong những lúc khó khăn về học vụ, đăng ký học phần và hỗ trợ tận tình về các vấn đề liên quan đến đồ án, khoá luận.

Để có thể hoàn thành khoá luận nay, em xin cam ơn thầy Lâm Đức Khải đã tận

tình hướng dẫn từ lúc em là sinh viên năm ba đến thời điểm hiện tại.

Sau cing, 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 khoá luận.

Sinh viên thực hiện

Đỗ Chí Tuấn Chế Minh Thành

Trang 5

1.4Phương pháp thực hiỆn - ¿<5 tt EerrkrrkerrkskrkrkrrrrrrersvÐ

Chương2 CƠ SỞ LÝ THUYET

2.1Discrete Cosin Transform (DCT).

2.2Color Conversion (CC) -¿- ¿+ E11 4 E19121 1 1 1 1 12101011101 ri 7 2.2.1 Chroma Subsampling (CS) ccecsceseccscseseseeessesesesesteseseseseeeneseeess 8 2.2.2 Quantization: 10

2.2.3 Zig-zag 2 2.3Run Length Encoding (RLE) 3 2.3.1 Mã HOA Delta S, ưm , c ciiiiieiee 4

2.3.2 Huffman Encoding c5 sxsksverevekeekrerrrrrree 6

Chương 3 DE XUẤT KIEN TRÚC THIET KẾ . :©2cz2©25s+ 9 3.1 Đề xuất kiến trúc tổng quan -. ¿ 2222++22222222+++rttttvvvvvrrrrrrrrrr 9

3.2Mô tả DCT Image Compression (DCT IC)

3.2.1 Interface

3.2.1 Phân tích thiết kế của DCT IC -¿c22sscczz++ 21

3.3Đề xuất kiến trúc chỉ tiẾt 2222222+c22 2222222222 Errrrrrrrrrrrrrrerrrer 27

3.3.1 Thiết kế của Color Conversion (CC)

3.3.2 Thiết kế khối Chroma Subsampling

3.3.3 Thiết kế khối Block Line Buffer 8x8

3.3.4 Thiết kế khối DCT

3.3.5 Thiết kế của DCT-Id

3.3.6 _ Thiết kế khối Transpose

Trang 6

3.3.7 Thiết kế khối Quantization -©+c+2c+scecxscrrrxerrrxecg 41 3.3.8 _ Thiết kế khối Zig-zag -ccccccccccccccrrrerrerrrrrccrg 44 3.3.9 Thiết kế khối RLE -¿-222222+c22EEErrerrrkerrerrrkerrrrg 41

3.3.10 Thiết kế khối Huffman Encoding -+sccz-+# 49 3.3.11 Thiết kế khối Multiplier Floating Point Single Precision 54

3.3.12 Thiết kế khối Adder Floating Point Single Precision 56 Chương 4 KET QUA MO PHONG - TONG HỢP TAI NGUYÊN 60 4.1 Phuong pháp đánh giá eseeeeseseseeeeneneseseseeseseseseaneeseseseseaneseed 60

4.2Kết quả mô phỏng và tổng hợp tai nguyÊn «cv srerererereey 6l

4.2.1 Multiplier Floating Point Single Precision - 6l 4.2.2 Adder Floating Point Single Presion - - 55-55 << 63

4.2.3 Color COTV€TSIOIN 5G (6221311821 %211 8911 113 2 118181 111 re 64 4.2.3.1 Độ chói Y cc 22vvt 222 Error 65

4.2.3.2 Sắc DO Cb 2c ccst222EErrrrrrrrrrrrrrrrrrrrrrrrrrrree 66 4.2.3.3 Si DQẤGrr mm | / 67

4.2.4 Chroma Subsampling -¿- - - 5e s+csxstsrererrerkeree 67

425 Đô A(dHẾT 68 FVLhR Noi xế 70

4.2.5.2 TTAnSDOS€ TT HH HH Hết 70 4.2.6 Quan(iZaUiOn S St ng ng grưệp 71 4.2.7 Zig zag Del(a TS ưệc 72

4.2.9 Huffman Encoding -cc 55 5ccccc+ccccrcreeeree 74

4.2.10 DCT Image Compre$SiOH - + c5 srvereketekekrkree 74

4.3Kết quả đạt được

Trang 7

Chương 5 KÉT LUẬN VÀ HƯỚNG PHAT TRIEN DE TÀI 87

5.1KẾt Wa ees eeceessssseesccccssssseeeeccecsssnnssscecesnnnnsseeceessnsnnnseeecessnnmeseeeesnnnmeeseeeeente 87

5.2Khó khăn gặp phải

5.3Hướng phát triỀn .2 2¿©VV++++2EEE+++22EE112222211112272112222111 2221 xe 88

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1.1: Theo thống kê của Photutorial ngày 27/08/2022 Hình 1.2: Hình vệ tinh trong bài bao

Hình 2.1: DCT biểu diễn dưới dạng bảng

Hình 2.2: Minh họa cho CC

Hình 2.3: YCbCr 4:4:4

Hình 2.4: YcbCr 4:2:2

Hình 2.5: Chroma Subsampling

Hình 2.6: Minh hoa Quantization

Hinh 2.7: Zig zag

Hinh 2.8: Minh hoa cho Zig zag

Hình 2.9: So dé giải thuật Run length

Hình 2.10: Minh họa cho số DC.

Hình 2.11: Tính số DC các Block tiếp theo

Hình 2.12: Sơ đồ giải thuật Huffman Encoding

Hình 2.13: Chuỗi ví dụ Huffman

Hình 2.14: Minh họa sắp xếp HM

Hình 2.15: Minh họa cây nhị phân.

Hình 2.16: Minh hoa tạo mã HM

Hình 2.17: Minh họa thay đổi ký tự bằng mã HM

Hình 2.18: Minh họa lưu bảng mã HM

Hình 3.1: Mô hình DCT Image Compression

Hình 3.2: Interface của DCT IC

Hình 3.3: Sơ đô khối của DCT_IC

Hình 3.4: Interface của DCT_IC DATAPATH

Hình 3.5: Sơ đồ khối của DCT_IC DATAPATH

Hình 3.6: Interface của DCT_IC CONTROL

Hình 3.7: Sơ đô khối của DCT_IC CONTROL

Hình 3.8: Kiến trúc chỉ tiết của DCT_IC.

Hình 3.9: Interface Color Conversion

Hình 3.10: Sơ do khối của CC

Hình 3.11: Interface của khối CS

Hình 3.12: Sơ đô khói của khối CS.

Hình 3.13: Interface của khối Block Line Buffer 8x8

Hình 3.14: Sơ đồ khối của Block Line Buffer 8x8

Hình 3.15: Minh họa cách di chuyển của Line Buffer.

Hình 3.16: Interface của DCT

Trang 9

Hình 3.17: Sơ đô khối của DCT -2d veseccscscscscesesesesssvsvsvesvesesesesestsvavsvsveeussesesesesvaes 3ó

Hình 3.18: DCT Chưa TÚÍ ĐỌH cv kg kg kg rry 36 Hình 3.19; DCT đỗ TÚf ĐỌH HH HH kg rry 37

Hình 3.20: Sơ đô khối của DCT- ]d ccccccccccvcrerErterrrrrrkerrrrrrtrrrrrrk 37

Hình 3.21; Interface của 4_MAC -scccck+stkskEhkkitirtrerrreerkesrkrree 38

Hình 3.22: Sơ đô khối của 4_MAC cccccccsccckeirrrrktirrrtrttrrrrrrtrrrrrrrk 39

Hình 3.23: Interface của TranspoSe wo.cccccccccsccesseescenseesseeseeeseeseeeseeuseessenseenseeaeenatens 40

Hình 3.24: Sơ đô khối của TTdIISJĐOS - 55c SE EEE‡EE2E2EEEEEEEEEEerkerkereses 41

Hình 3.25: Interface (QHđHflZGfÏOHH cv tk kg key 42

Hình 3.26: Sơ đô khối của khối Quanti@fiOII .-©5:©52 552 5+eccc>xczcsrxereeres 44

Hình 3.27: Interface CUA Z18Zđ ch KH TH HH HH, 46

Hình 3.28: Sơ đô khối của Zig- ZA escssesscsssessessessssssesssssssssssessesssssssssessessesssessessess 46

Hình 3.29: Interface của NL ác tt tk HT ng ng Hy 47

Hình 3.30: Mô tả 7 Dit dấu -ccscccStttcEEtrttEEtirtttktirtttriirrririrriireiee 48 Hình 3.31: Sơ đô khối của ÑLE -+ccxetccccccrrtirtrttirtrtriirrrrrirrrireriee 49 Hình 3.32: Interface khối Huffman Eneodigg -+©-s-5scce>cccc+cesreeres 49

Hình 3.33: Sơ đô khối Huffman Coding vesceccecscesscsscessessessvessessessessesseesessssssesseeseess 31

Hình 3.34: Sơ đô SOFI -ccsccS+cETtHEHnHHH HH ệu 51

Hình 3.35: Sơ đô chuyển trang thái của Tree veecceccescesssescessessesseesvesessesssessesseeseess 53

Hình 3.36: Sơ đô chuyển trạng thải của Coimbie - 2-2-5255 5c+ce+cecsrses 53

Hình 3.37: Interface Multiplier FP-32 Bit - - ccknk vi kikrsersseeesseeree 54

Hình 3.38: Sơ đô khói của Multiplier FP-322bii 5-5252 e+eeceEerersrses 55

Hình 3.39: Interface của Adder F'P-.32Dii - c5 cv kEESseEkeeerseeerrseeree 56

Hình 3.40: Sơ đô khối Adder FP-32Dit.ccccccccsscssssessesssesssesssesssessesssesssesssssesssessses 50 Hình 4.1: Sơ đồ khối Testbenichh c cccccc5cvvtsvEEtterrrrrterrrrrrrerrrrrrrerree 60

Hình 4.2: Mô phỏng các trường hop đặc biệt mach nhân FP-32bI 61

Hình 4.3: Mô phỏng các trường hợp ngẫu nhiên mạch nhân FP-32bit 62

Hình 4.4: Mô phỏng các trường hợp đặc biệt mạch cộng FP-32bi 63

Hình 4.5: Mô phỏng các trường hợp đặc biệt mạch cộng FP-32bi 63

Hình 4.7: Mô phỏng Color COnVersion Yii.ecccccsccscccssecsseesecsseesseesessseesseesseesseseenasens 65

Hình 4.8: Mô phỏng Color conversion CT «cv skksee 66 Hình 4.9: Mô phỏng Color Conversion ẤT 25 KV set 67 Hình 4.10: Mô phỏng Chroma SuDSaIHDÏÏTđ 5k ksksesskseesee 68

Hình 4.13: Mô phỏng TTAHLSDOS€ TQ tk HT HH HH rệt 71 Hình 4.14: M6 phỏng Quantization ccccccccccccescscccssecseceecsseesseesecsseesseeseseseeseesseens 71

Trang 10

Mô phỏng Huffman Encoding c5 seEesesreeresee 74

Mô phỏng DCT Image Compression cc.ccccccccccescceceeeseeseeseteseesseeseeees 75

Tinh toán PSNR trên phan mém Python cecccsccsscesvessesvsesvessesseeseeseessee 78Giải nén lại tắm hình ban AGU ccecccccceccscssesescesssescecssesveseseevesesvevecesvevene 78

[“AY/NHHddiiiiiaddảiÝ.ồ.ÉỀỒỀỒỒ 79

0 2//7224251/7,8.4.172000nn8n8858.Ầ 79 1/0 1Ẻ1® 80

Hình 4.26: Hình giải nén | Ï2]L cv nh HH Hy rệt 62 Hinh 592209 1, )0//0NNnẺ8n8e®aaa 52

Hình 4.30: Hình giải nén tài lIỆM [ lỐ - c5 S25 ESStE++vESeeEseekeexseeseesss 84

Hình 5.1: Lỗi tràn tài nguyen cescecscscscsssesssessesssesssesssssssssesssecsssssssssessuecssssesssecsssess 88Hình 5.2: Synthesis không có lỗi và cảnh báo s- 2©ce+ce+eecxeceererrrses 88

Trang 11

DANH MỤC BANG

Bảng 1.1: Mục tiêu dé tài 55c ềEEEEEEEEEEEEEEEEEEEEE11 1111111111111 5

Bang 2.2: Bang lượng tử CTFOIHAQ So kg nhện Il Bang 3.1: Mô ta tín hiệu interface của DCT ÏC, ~ «<< «+seesseksseesees 20

Bảng 3.2: Mô tả các thành phan chính trong DCT"_IC - c5 scs+cscses 22

Bang 3.3: Mô tả các tín hiệu interface cua DCT_IC DATAPATH - 22

Bảng 3.4: Mô tả các khối trong DCT_IC DATAPATTH -©-s©sz+cscccsze: 25 Bảng 3.5: Mô tả các tín hiệu interface cua DCT_IC CONTROL 26

Bảng 3.6: Mô tả các khối trong DCT_IC CONTROL - 2+5 ©sece+c+esss 26 Bang 3.7: Mô tả tín hiệu interface của Color CO'V€TSÌOTI 5555 <+<<<+ 28 Bang 3.8: Mô tả tin hiệu interface của khối CS -2©-2csccsccczcsscsscsees 30 Bang 3.9: Mô tả tín hiệu interface của khối Line BUÍGF ĂcẶẶĂẰSissekieeese 32 Bảng 3.10: Mô tả tín hiệu interface của DCTT, àsccccccsekssekseesserssreree 34 Bảng 3.11: Mô tả các khối con trong DCT-2d :©-:©2+5s©s+2s++c+zcscsees 35 Bang 3.12: Mô tả tín hiệu interface của DCTT- lở., -c «<< s<+<<+sse+ses 38 Bang 3.13: Mô ta tin hiệu interface của 4_ MAC e«<S<s «<< ++se+ss 39 Bang 3.14: Mô tả tín hiệu interface của TTANSPOSE cằ S5 Sex 40 Bảng 3.15: Mô tả tín hiệu interface của khối Quantization -©5:-: 42 Bang 3.16: Mô tả tín hiệu interface của khối V424 44

Bảng 3.17: Mô tả tin hiệu interface của khối RLE 5 5e+tsreterererkererksrs 47 Bang 3.18: Mô tả tin hiệu interface của Huffman Encoding - 50

Bảng 3.19: Mô tả tin hiệu interface của khối Multiplier FP-32bit 54

Bang 3.20: Mô ta các khối bên trong khói Multiplier FP-32bii - 55

Bang 3.21: Mô ta tín hiệu interface của khối Adder FP-32bil - 56

Bảng 3.22: Mô tả các khối con bên trong khối Adder FP-32bit 58

Bang 4.1: Mô tả mô phỏng các trường hop đặc biệt mach nhân FP-32bit 61

Bảng 4.2: Mô ta các trường hợp ngẫu nhiên mach nhân FP-32bit 62

Bang 4.3: Mô tả mô phỏng các trường hop đặc biệt mach cộng FP-32bit 63

Bang 4.4: Mô tả mô phỏng các trường họp đặc biệt mạch cộng FP-32bit 63

Bang 4.5: Tổng hop tài nguyên phan cứng mach cộng FP-32bii 64

Bang 4.6: Tổng hợp tài nguyên phan cứng mach Color Conversion 65

Bang 4.7: Mô phỏng Color CONV€FSIOH Ÿ à.c S5 SSSeSSseEeeetrereeerrserrrs 65 Bảng 4.8: Mô phỏng Color Conversion C csc se ssskssksseeeeexeersserrres 66 Bang 4.9: Mô phỏng Color CONVerSION T S2 Site 67 Bang 4.10: Tổng hợp tài nguyên phan cứng mach Chroma Subsampling 68

Bang 4.11: Mô phỏng Chroma SUubsampling ccccccceccceccesceeseeecetsseesseeseesseeseeeseeees 68

Bảng 4.12: Mô phỏng DCT -20 o.eeeccesccecccsseesseeseesseeseceseteseeseeesecseceenaeeesesneeeaeenseeegs 69

Trang 12

Bảng 4.13: Tổng hợp tài nguyên phan cứng mạch DCT 5c scs+cs+s+ 69

Bang 4.14: Mô phỏng DCTT- Ï., c5 v.v tk kg kg ngư 70

Bang 4.15: Tổng hợp tài nguyên phan cứng mach Quantization 71

Bang 4.16: Mô phỏng Quantization Gv kg 72

Bang 4.17: Tổng hợp tài nguyên phan cứng mạch Zig z4§ - -: 72Bảng 4.18: Tổng hợp tài nguyên phan cứng mạch RLE -:©-s:5 73Bang 4.19: Tổng hợp tài nguyên phan cứng mach Huffman Encoding 74

Bang 4.20: Thông tin nen ÄHH X€ CAM irccccsscccesccesscceseceenscseseceseeeeeeseasenseessseeseaeenes 61 Bang 4.21: Thông tin nén Anh EA cv tk HH 52 Bảng 4.22: Thông tin nén ảnh FB ch iệt 83 Bang 4.23: Thông tin nén ảnh Barbara ieeecccccccecccsscesececeesseesececetssesseeesesseeeseeesenaes 83

Bang 4.24: Tổng hợp tài nguyên phan cứng mach DCT Image Compression 85Bảng 4.25: Kết quả so sánh với các bài báo KNAC.eseecescescescessessessesesseeseesessesessees 86Bang 5.1: Muc tiéu dé ra va kết quả GAL đẨƯỢC eceeseccescessceenscesnecesseeeneetenseneasenaees $7Bảng 5.2: Các cải tién trong mậCH ¿+ 2252-52 St‡EE‡EE‡EE£EE+EEEtEEerkerkersrreres 87

Trang 13

DANH MỤC TỪ VIẾT TẮT

DCT _IC DCT Image Compression

JPEG Joint Photographic Experts Group

DCT Discrete Cosin Transform

Trang 14

TOM TAT KHÓA LUẬN

Trong khóa luận này, nhóm sẽ hiện thực phương pháp nén ảnh mất mát DiscreteCosin Transform trên FPGA dé tối ưu thêm tốc độ và hiệu suất cho việc nén ảnh

Trong đó, mô hình có kết hợp với các phương pháp nén khác như: Color

Conversion, Choroma Subsampling, Quantization, Zig-zag, Delta Encoding, Run Length encoding, Huffman Encoding dựa trên phương pháp nén anh JPEG (phương

pháp nén anh duoc sử dung nhiéu nhat trén thé gidi)

Mô hình được sử dụng thuật toán FDCT bằng cách thu gọn độ thưa của ma trậntrong miễn tần số giảm dé đạt được hiệu suất tính toán cao hơn

Bên trong mô hình, nhóm sử dụng kiểu dữ liệu là dau cham động với độ chính xácđơn Dé tat cả các bước được thực hiện trên FPGA nhóm đề xuất bộ chuyên từ số

decemal sang floating và ngược lại.

Kết quả sai số lớn nhất của mô hình khi so sánh với mô hình phần mềm tự tạo là

24.47 qua 1000 tâm ảnh Tan số tối đa mà nhóm đạt được là 100,7 MHz, năng lượng

mạch sử dụng là 2401 W, tỉ số PSNR TB là 30.5 ,hiệu suất thời gian của bộ mã hóa

là: 200-250 Frames/Sec.

Kết quả sẽ được đánh giá bao gồm:

e Tỉ số nén và PSNR so với ảnh gốc

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 phần mềm Vivado của Xilinx

e Tổng thời gian thực thi và hiệu suất thời gian so với các mô hình tương tự

Trang 15

Chuong 1 GIỚI THIEU TONG QUAN ĐÈ TÀI

11 Dat van dé

Việc lưu trữ va truyền tai dữ liệu vẫn là một trong những van dé cần thiết từ trước

đến nay Huống chi chúng ta đang sống trong thời đại công nghệ 4.0, mọi dữ liệu

được truyền tải, lưu trữ, xử lý trên Cloud Hình ảnh là dữ liệu quan trọng bởi vì nó

được tạo ra liên tục (Hình 1.1).

4.7 tỷ bức ảnh được 1.3 tỷ bức ảnh được Có khoảng 136 tỷ bức

chụp môi ngày chia sẽ mỗi ngày ảnh

Hình 1.1: Theo thống kê của Photutorial ngày 27/08/2022

Vi vậy các nhà nghiên cứu không ngừng phát triển nhiều phương pháp biến đồi,

nén dé tôi ưu các dit liệu Nén ảnh có 2 loại mat mát và không mat mát Nén không

mat mát được ưa thích cho mục đích lưu trữ và thường cho hình ảnh y tế, bản vẽ ky

thuật, clip art hoặc truyện tranh Các phương pháp nén có mất mát, thường được sửdụng trong lưu trữ và truyền tai dé tiết kiệm bộ nhớ và băng thông Chúng đặc biệt

phù hợp với các hình ảnh tự nhiên, bức ảnh trong các ứng dụng mà sự suy giảm chatlượng không thé nhận ra hoặc có thé chấp nhận được

Ngày nay DCT và DWT là các kỹ thuật nén ảnh phé biến nhất Cả hai đều có

những ưu điểm và nhược điểm riêng DWT có thé nén mat mát và không mat mát ma

không làm mất nhiều thông tin của hình ảnh nhưng cần nhiều tài nguyên để xử lý

hon DCT chỉ tập trung vào nén mat mát nên tỉ xuất nén sẽ 6n định hơn và cần ít tài

nguyên dé xử lý hon[2]

Một trong trong những thuật toán nén mất dữ liệu được sử dụng rộng rãi là thuật

toán JPEG Thuật toán hoạt động trên DCT [6][9][15]

Trang 16

e_ Các tệp JPEG có khả năng nén rất cao Kích thước tệp nhỏ có thé dễ dang

tải lên các trang web.

e Hình anh JPEG tương thích với mọi thiết bị, phần mềm

e JPEG có thé hỗ trợ lên đến 24 bit màu và 16 triệu màu sắc

e Nén JPEG có thé nén theo nhu cầu ứng dụng, mức độ nén linh hoạt

Vi tính linh hoạt của JPEG mà nó được sử dung rộng rãi đặc biệt là ảnh web và

ảnh của máy kỹ thuật số giúp các công ty tiết kiệm lên đến hàng triệu đô la

Sau nay nó còn được áp dung dé nén ảnh cho các vệ tinh dé truyền tải nhanh hon

giữa các vệ tinh và các trạm (Hình 1.2).

Những thuật toán này có khối lượng tính toán rất lớn nhưng đa số được phát triểntrên phần mềm dựa vào CPU, GPU, Sever dé tang tốc độ tính toán Phan lớn được

tính toán bang số nguyên, số fix point Một kiên trúc có thé cải thiện được tốc độ tính

toán, giảm được tài nguyên và sai số là mục đích mà nhóm hướng tới

Trong phương pháp nén JPEG cốt lõi nam ở DCT vi đây là phần nhiều phép tínhnhất cộng, trừ, nhân, cosin Một 36 nghiên cứu cai thiện thuật toán nay như BinDCT,FDCT-Id, Pipeline DCT-2d thực chất là DCT-1d thực hiện phép tính theo chiềungang và cả chiều dọc vì vậy trong FPGA người ta thường áp dụng tính DCT-1d phát

Trang 17

triển lên DCT-2d DCT yêu cầu 64 phép nhân và 56 phép cộng trừ cho 8 điểm 1-DDCT, và 1024 phép nhân và 896 phép cộng trừ cho 8 điểm DCT-2d, đó là số lượng

tính toán khổng 16 và phức tạp Một thuật toán biến đổi cosin rời rac nhanh

(FDCT-1d) sử dung 2 đặc tinh thu gọn năng lượng và độ thưa của ma trận trong miền tần số

dé đạt được hiệu suất tính toán cao hon Băng cách trên có thé giảm còn 32 phép nhân

và 8 phép cộng trừ cho 8 điểm của DCT-1d [3][4] Còn mô hình JPEG Pipeline vì cốtlõi là DCT được tính bang cách chia tắm hình thành các block 8x8 nên sẽ có 8 tangpipeline mỗi tang sẽ tính toán 8 giá trị của từng hang block Sau khi tham khảo 1 sốtài liệu thì các nghiên cứu cải thiện thường không được áp dụng hết ví dụ như: cóFDCT thì sẽ không có Pipeline và ngược lai, còn nếu như có cả hai thì mô hình khôngđược tính băng số FP như vậy các mô hình đều chưa thê đạt được tốc độ và hiệu suấttối đa mà các phương pháp mang lại Các nghiên cứu là các mô hình tập trung vào tối

ưu của JPEG, phần lớn tập trung tối ưu tốc độ xử lý so với CPU và GPU

Những tài liệu tham khảo về phương pháp nén JPEG rất nhiều [8][9][10][1 1]nhưng

vẫn chưa áp dụng hết tat cả các phương pháp cải tiến Vi vậy nhóm mong muốn sẽcải tiền và áp dụng hết phương pháp đề tối ưu thêm tốc độ và hiệu suất cho việc nén

ảnh JPEG.

1.2 Huong nghiên cứu đề tài

Hướng nghiên cứu đề tài của nhóm là xây dựng và phát triển phương pháp nén

JPEG đây đủ nhất trên FPGA Mô hình này áp dụng FDCT, Pipeline và xử lý trên sốdau cham động có độ chính xác don theo chuẩn IEEE-754

13 Mục tiêu đề tài

Mục tiêu chính của nhóm bao gồm:

+ Hiện thực phương phép nén JPEG, giãi nén bang phần mềm và đánh giá trên thưviện hình ảnh ngẫu nhiên (1000 tắm ảnh) với mục tiêu PSNR > 30 db

+ Thiết kế phần cứng cho phương pháp nén JPEG sử dụng số floating-point 32 bitkết hop pipeline bang ngôn ngữ Verilog HDL

* Tiến hành tôi ưu phan cứng phù hợp với board Virtex-7.

Trang 18

Đầu tiên, nghiên cứu tổng quan về JPEG (Color Conversion, Chroma

Subsampling, DCT, FDCT, Quantization, Zig-zag, Delta Encoding, Run Length

Encoding, Huffman Encoding) va các thiết kế FPGA được thực hiện Sau đónghiên cứu về công, nhân Floating Point và thiết kế phần cứng Tìm kiếm các thư

cứng phù hợp với board Virtex-7.

Trang 19

Chương2 CƠ SỞ LÝ THUYET

2.1 Discrete Cosin Transform (DCT)

Biến đổi Cosin rời rac là biểu thị một chuỗi hữu han các điểm đữ liệu dưới

dạng tổng hợp các hàm cosin dao động với tần số khác nhau Từ đó các dang sóng

mẫu được tạo ra băng cách nhân một tập hợp các hàm cơ sở 8 điểm một chiều đượcđịnh hướng theo chiều ngang với một tập hợp các hàm tương tự được định hướngtheo chiều đọc Về mặt logic, tập hợp các hàm cơ sở được định hướng theo chiềungang biểu thị các tần số ngang và tập hợp các hàm cơ sở khác biểu thị các tần số

doc.[1]

DCT được thực hiện trên ma trận vuông N x N như Hình 2.1 các gia tri pixel

va nó tao ra ma trận vuông N x N các hệ số tan số (Trong thực tế,N thường băng

8 vì một khối lớn hơn có thé sẽ nén tốt hơn, nhưng thường mất rất nhiều thời gian

dé thực hiện các phép tính DCT Kết quả là, việc triển khai DCT thường chia nhỏhình ảnh thành các khối 8 x 8 dễ quản lý hơn [15]

DCT

Hình 2.1: DCT biểu diễn đưới dang bang

Công thức DCT-1d (2.1.1) đưới đây thực hiện biến đổi cosine rời rac theo chiều

ngang hoặc dọc của ma trận:

Trang 20

Cy = khix =0

C, = 1 khix #0 f() giá tri của pixel thứ n của hang hoặc cột

N=8

Công thức DCT-2d (2.1.2) thực chất là công thức DCT-1d (2.1.1) thực hiện phép

tính theo chiêu ngang và cả chiêu dọc của ma trận.

DCT (x,y) = 2 CxCy XS Lid FGI) co ca TT (2.1.2)

Trong đó: x, y là vi trí hàng va cột cua pixel

C,,Cy = 1 khi x,y #0 fas) gia tri của pixel trong block

độ sáng của màu (còn được gọi là độ chói hoặc luma được tính bằng công thức2.2.1), trong khi thành phần Cr và Cb xác định màu sắc (còn được gọi là sắc độhoặc chroma) Thành phan Cb dùng dé chỉ lượng màu xanh lam được tính bằngcông thức 2.2.2 và thành phan Cr dùng dé chỉ lượng màu đỏ được tính bang công

thức 2.2.3 [7][15]

Trang 21

Một tâm hình sẽ có 3 ma trận R, G, B dé chuyên thành 3 ma trận Y, Cr, Cb tươngứng bang cách nhân 3 ma trận R, G, B như công thức phía dưới.

Công thức Color Conversion:

Y(z,y) = 0.257R(+,y) + 0.5040 (+,y) + 0.098B(x,y) +16 (2.2.1)

biêu thị màu sac đỏ của hình

G biêu thi màu sắc xanh lam của hình

biêu thị màu sắc xanh của hình

2.2.1 Chroma Subsampling (CS)

Lay mau con sắc độ là thực hành mã hóa hình ảnh bằng cách giữ nguyên thông tin

sắc độ so với độ chói Y (luma) vì mắt người khá nhạy cảm với độ chói, giảm thông

tin sắc độ theo chiều ngang hoặc dọc, cả hai đối với Cr va Cb (Chroma) [8]

Nó được sử dung trong nhiều so đồ mã hóa video và hình anh - cả tương tự và kỹthuật số - bao gồm cả trong mã hoa JPEG

Trang 22

Vi dụ cho thấy vi trí của các điểm lấy mẫu YCbCr ở định dạng 4: 4: 4 (Hình

2.3) Mỗi điểm lấy mẫu có các giá trị Y, Cb và Cr, và thành phần màu của mỗi giá trị

màu là 8 bit (điển hình), do đó mỗi điểm lấy mẫu là 24 bit

Hình 2.3: YCbCr 4:4:4

Có rất nhiều phương pháp Chroma tùy vào ứng dụng mà chúng ta chọn phươngpháp cho phù hợp Phương pháp Chroma 4:2:2 được sử dụng phô biến nhất trong

hình ảnh Hình 2.4 cho thay vị trí điểm lấy mẫu YCbCr định dạng 4: 2: 2 Cứ hai mẫu

Y năm ngang thì có một mau Cb và một mau Cr.

Hinh 2.4: YcbCr 4:2:2

Như vậy các pIxel sắc độ sẽ giảm đi một nữa theo chiêu ngang so với ban đâu Nêu

sắc độ là 8x8 thì chỉ còn 8x4

Trang 23

Dé không mat sắc độ trong khi Chroma bằng cách lấy trung bình của từng cặp

pixel theo chiều ngang như Hình 2.5

đó chúng ta sử dụng phép chia cho bảng Q dé đơn giản hóa các giá trị [15][17]

Bảng lượng tử hóa (Bảng 2.1 và 2.2) được sử dụng có ảnh hưởng lớn đến chất

lượng nén JPEG Nó cũng ảnh hưởng đến mức độ nén đạt được Các bảng này thườngđược phát triển theo kinh nghiệm dé cung cấp số lượng bit lớn nhất cho các giá trị

DCT, có tác động nhiều nhất đến hệ thống thị giác của con người

Bảng lượng tử hóa (Bảng 2.1 và 2.2) được áp dụng cho đầu ra của DCT, làmột mang 8 x 8 Hệ số phía trên bên trái là hệ số DC, và hệ số còn lại là 63 hệ số AC,tăng tần số ngang và dọc khi một người di chuyên sang phải và xuống Mắt ngườinhạy cảm với các tần số thấp hơn, lượng tử hóa it va nhiều bit được sử dụng cho các

hệ số DCT trên và ngoài cùng bên trái chứa các tần số thấp theo hướng đọc và ngang

10

Trang 24

Hai bang lượng tử trên là 2 bang được sử dụng rộng rãi và nhiều nhất nên chúng

thường được gọi là bảng lượng tử mặc định Một bảng sử dụng cho ma trận Y (độ

11

Trang 25

chói hoặc luma), bảng còn lại sử dung cho 2 ma trận Cb, Cr (sắc độ hoặc chroma).(16)

0 1 2 3 4 5 6 7

8 9 10 [11 | 12 {13 | 14 | 1Š

24 | 25 | 26 | 27 | 28 | 29 | 30 | 31

3 40 afa[ as 44 | 45 | 46 | 47

Bang lượng tử luma

Hinh 2.6: Minh hoa Quantization 2.2.3 Zig-zag

JPEG sử dung mã hóa zig-zag (Hình 2.7) dé chuyên đổi ma trận thành 1D ví dunhư Hình 2.8 Tại sau khi lượng tử thi các pixel được lượng tử nhiều thường bang 0nằm về phía sau đặc biệt là sắc độ Chroma Mã hóa này sẽ giúp gom các số 0 lại cólợi cho bước tiếp theo.[ 15]

12

Trang 26

Hình 2.8: Minh họa cho Zig zag

2.3 Run Length Encoding (RLE)

RLE là một dang nén dữ liệu không mat mát Cuối quá trình mã hóa zig-zag, hau

hết các mảng 1D được mã hóa zig-zag có quá nhiều số 0 ở cuối RLE (Hình 2.9) đơngiản là chạy trên các chuỗi có cùng giá trị xảy ra nhiều lần liên tiếp Nó mã hóa chuỗi

dé chỉ lưu trữ một giá trị duy nhất và số lượng của nó [15]

Trang 27

Quét độ dài chuỗi

Biến đếm giống nhau =1

Trong JPEG, mọi giá trị DC trong ma trận hệ số DCT đều được mã hóa delta so

với giá trị DC (Hình 2.10) của block trước nó.

14

Trang 28

DC đầu tiên trong các Block hình ảnh thường lớn nhất và bằng cách áp dụng mã

hóa Delta, ta đưa phần còn lại của các giá trị DC gần bằng 0 và điều đó dẫn đến việc

nén tốt hơn trong bước tiếp theo của Mã hóa Huffman (4)

[a2 [3 [34 [35 [6 [37 [38

rao [ar [42 [a3 [aa [45 [4c

ras [ao [so [51 [52 [5 | 54 [5ø [57 [8 [59 [oo [or |

Hình 2.10: Minh hoa cho số DC

Nin +> |0 |9 || mịỊc^ NTs Aloalo|;] nis we _

Nin wR] Ww ©9 | tha mỊ%

Hình 2.11: Tính số DC các Block tiếp theo

15

Trang 29

2.3.2 Huffman Encoding

Huffman coding là nén đữ liệu nguyên ven (lossless) Nó dựa trên tần suấtxuất hiện các ký tự cần mã hóa dé xây dựng một bộ mã nhi phân cho các ky tự

đó làm cho dung lượng (số bit) nhỏ nhất sau khi mã hóa [10]

Thuật toán Huffman coding là cần thiết vì giảm được dung lượng lưu trữ,băng thông đường truyền nhưng không làm mất mát thông tin khi nén

Kỹ thuật này hoạt động bang cach tao một cây nhị phân gồm các nút chứa ky

tự và trọng sô.

° Mỗi ký tự được biểu diễn bằng 1 nút lá

° Nút cha có tông ký tự, tổng trọng số của của 2 nút con

° Các nút có trọng số tăng dan từ trái sang phải

° Mã Huffman là đường dẫn từ nút gốc đến nút có chứa ký tự đó

° Nút bên trái là bịt 0.

° Nút bên phải là bit 1 (4) (5)

Tính toán các ký tự Lấy 2 nút có trọng số

và sắp xếp theo thứ nhỏ nhất tạo thành

tự tăng dân cây.

Gan bit 0 và bit 1

Trang 30

Bước 2: Tạo cây Huffman Encoding.

Hình 2.15: Minh họa cây nhị phân

17

Trang 31

Bước 3: Tạo mã cho ký tự dựa trên cây Huffman

Hình 2.16: Minh họa tạo mã HM

Bước 4: Thay các ký tự bằng mã Huffman tương ứng

B} C} C} Aj B} B} Dj Dj Aj E} C} C) B} B} Aj E} D) DIC} C

0I1/1104010401010111/1400101140 IJTII|I1I1II|01011ITITIIII|1I|II|II0I01T1|1

0 0/0 0/0

Oo mm mm

øœ [ur [ur |00|oi [oi [oo Joo [oto |noln fu [or for |olo[noloo [oo Ju Ju |

Hình 2.17: Minh họa thay đổi ký tự bang ma HM

Bước 5: Lưu lại bảng mã cho quá trình giải nén.

€——————]| Hufman

code

Hình 2.18: Minh họa lưu bảng mã HM

18

Trang 32

Chương 3 DE XUẤT KIÊN TRÚC THIẾT KE

3.1 Đề xuất kiến trúc tống quan

Hình 3.1: Mô hình DCT Image Compression

Hệ thống được trình bày ở Hình 3.1 gồm 2 phần chính là Compression vàDecompression Compression là mô hình DCT được thiết kế bằng ngôn ngữ Verilog

(Hardware) Decompression là quá trình giải nén mà Hardware truyền các dữ liệu khi

nén sang trong đó bao gồm đều có các bước đối ngược với nén đều được sử dụng

thông qua ngôn ngữ Python (Software).

Mỗi tắm hình sẽ có thông số các H và W khác nhau phụ thuộc vào yêu cầu của mỗi

bài toán cũng việc sửa đổi mô hình mất khá nhiều thời gian Do đó dé dé dang cho

việc thay đôi thông số phan cứng, nhóm sử dung “generated” trong Verilog dé thực

hiện Các thông số sẽ được nhập vào và truyền đi các khối thông qua các “parameter”

Bắt đầu hoạt động, khi valid_in bật lên 1 thì từng pixel R, G, B hình tương ứngđược đưa vào mô hình Sau đó mô hình chuyên các số decimal sang FP-32 dé tính toán

thực hiện các bước nén JPEG Sau một khoảng thời gian nén xong với vòng lập đến

khi nao hết các pIxel của 3 ma trận thì mô hình sẽ xuất các giá trị và tín hiệu valid_ outbang 1 Khi nén kết thúc thì sẽ chuyên sang cho phần mềm thực hiện các bước giải

19

Trang 33

nén lại và đem ổi so sánh với phương pháp nén của phân mêm và tính toán các tỉ sô,

hiệu suât của mô hình.

Trong đê tải chỉ tập trung cải tiên thời gian và hiệu suât nén trên phân cứng, phân

tiếp theo là kiến trúc thiết kế của Compression

3.2 Mô tả DCT Image Compression (DCT IC)

3.2.1 Interface

Khối DCT Image Compression (Hình 3.2) có chức năng là thực hiện nén ảnh theocác bước có trong phương pháp Thông qua việc nhận dữ liệu trực tiếp R, G, B Sau

đó xử lý và thực hiện nén dé đạt được kết quả nén mong muốn Bảng 3.1 cho biết các

tín hiệu ngõ vào và ngõ ra của khôi.

Temp_scan_bit_Y_Cb_Cr

Temp_length_bit_Y_Cb_Œ

max_quantity_symbol_Y_Cb_Cr Temp_data_combine_out_Y_Cb_Cr addr_fre_symbol_read_re_Y_Cb_Cr

Valid_out_Y_Cb_Cr

Out_rle_Y_Cb_Cr

Valid_out_rle_Y_Cb_Cr

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

clk I 1 Xung clock của hệ thống tích cực cạnh lênrstn I 1 Reset bat đồng bộ tích cực mức thấp

valid_in I 1 Tinh hiệu cho phép nạp dữ liệu

R I 8 Dữ liệu mau sắc đỏ của tam hình

G I 8 Dữ liệu mau sắc xanh lam của tắm hình

B I 8 Dữ liệu màu sắc xanh của tâm hình

20

Trang 34

15 | Xuất địa chỉ dé lấy giá trị rle

C 1 Cho biết có giá trị được xuất ra

Done O 1 Hoan thanh qua trinh nén

3.2.1 Phan tích thiết kế của DCT IC

DCT IC được cấu tao từ 2 phan đó là DCT IC datapath va DCT IC Control (Hình3.3) Bang 3.2 cho biết chức năng của từng phan

Temp_scan_bit_Y_Cb_Cr Temp_length_bit_Y_Cb_Cr

Trang 35

Bảng 3.2: Mô tả các thành phan chính trong DCT_IC

DCT_IC Control

Thực hiện chức năng điều khiên DCT_IC Datapath thông

qua các tín hiệu data_path signal

DCT_IC Datapath

Khối thực thi chính của mô hình Thông qua các tín hiệu

control_ signal

a DCT IC Datapath

Hình 3.4 là interface của khối datapath gồm các khối tính toán và sắp xếp dựa trên

tín hiệu của khôi control Bảng 3.3 cho biệt các các tín hiệu ngõ vào và ngõ ra cua

Hình 3.4: Interface của DCT_IC DATAPATH Bảng 3.3: Mô tả các tín hiệu interface của DCT_IC DATAPATH

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

clk I 1 Xung clock của hệ thông tích cực cạnh lênrstn I 1 Reset bat đồng bộ tích cực mức thấp

valid_in I 1 Tinh hiệu cho phép nap dir liệu

R I 8 | Dữ liệu màu sắc đỏ của tắm hình

G I 8 Dữ liệu mau sắc xanh lam của tâm hình

B I 8 Dữ liệu mau sắc xanh của tam hình

22

Trang 37

42 ap yno pỊIỊEA

[0:01]42 214 no ——

42 n0 PIIEA 1 q2^A

[0:yT]H2 appear JoqulÁs aay appe 8uIpo2u3 ueu1JnH

[0:0T]42 no auquio2 eyep” dua

[0:yT]q2 91 peas joquiAs aay uppe =—= 13221

[0:0T]q2noauIquio2 eyep— dua ||

OuW_0B1:0]

outy_7131:0) outcb_o[31:0]

utcr 71:0]

A 9H no pier

[0:0T]A 214 3no

Kano PA | |Iaung suy

[0:y1]A9|4 peas JoquuÁs adj 1ppe

[0:0T]A 3no_auIqu4o2— eyep dway

[0:S]A 1q un8ua[ dua

Trang 38

Bảng 3.4: Mô tả các khối trong DCT_IC DATAPATH

Chroma Subsampling Là bộ giảm sắc độ từ 4:4:4 xuông 4:2:2

Line_Buffer La bộ có chức năng lay Block 8x8 cho DCT tính toán

DCT

La khôi có chức nang tính cosin rời rac cho các diém

cảu bức ảnh

Quantization

Là khôi lượng tử hóa bang cách chia các giá trị đầu

vào cho các giá tri có săn trong nó.

Floating to Decimal Là khối chuyền số từ dang FP 32 bit sang số Decimal

Zig_zag

La khôi biên ma trận thành một chiêu hoán vi các giá

tri trong block 8x8 theo vi trí định trước thực

RLE Là khối thực hiện mã hóa đô dài

Huffman_Encoding

Là khối xây dựng bảng mã bang cách dung một cây

nhị phân làm cho dung lượng bit của các ký tự nhỏ

nhất

25

Trang 39

a DCT IC Control

Hình 3.6 cho thay khối control được chia nhỏ thành các khối control nhỏ bên trongcác khối con có chức năng điều khiển khác nhau nhưng đồng bộ bởi valid_in và

valid_out Bảng cho biết tín hiệu ngõ vào và ngõ ra của khối

Datapath signal Control signal

DCT IC Control

Hình 3.6: Interface của DCT_IC CONTROL

Bảng 3.5: Mô tả các tin hiệu interface của DCT_IC CONTROL

Tín hiệu V/O | Số bit Mô tả

Các tín hiệu từ datapath vào cho khối control

Datapath signal I NA

xu ly

Control signal O NA | Các tín hiệu cotrol các khối trong datapath

Chroma Subsampling Quantization s

DCT Control Control Zigzag Control

Datapath signal Control signal

Hình 3.7 là sơ đồ khối của DCT_IC bao gồm nhiều khối control nhỏ vì mỗi phần

được xử lý và điều khiên khác nhau dé đảm bảo giá trị được xử lý liên tục Bang môt

tả các khối con của khối control

Bảng 3.6: Mô tả các khối trong DCT_IC CONTROL

Trang 40

Quantization Control | Là khối điều khiển của khối Quantization

Zig-zag Control La khối điều khiển của khối Zig-zag

RLE Control La khối điều khiển của khối Run Length EncodingHuffman Control Là khối điều khiển của khôi Huffman Encoding

3.3 Đề xuất kiến trúc chỉ tiết

Chroma Subsampling Quantization :

Temp_scan_bit_ Y[63:0]

Temp_length_bit_Y[5:0]

max_quantity_symbol_Y[10:0]

: Y] , |Temp_data_combine_out_Y[10:0]

rid Decimal to Color Line_buffer} [addr_fre_symbol_read_rle_Y[14:0]

Peal Floating ra Conversion [5> Y_Cb_Cr Valid_out_Y

Valid_ out _rle_Cr

Hình 3.8 bao gồm 2 phần là Datapath và Control, một số khối nhỏ trong Datapath

có những bộ control riêng biệt vì vậy các khôi có thê xử lý liên tục các giá trị vào

27

Ngày đăng: 23/10/2024, 01:21

w