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 3THÔ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 4LỜ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 51.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 63.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 7Chươ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 8DANH 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 9Hì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 10Mô 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 11DANH 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 12Bả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 13DANH MỤC TỪ VIẾT TẮT
DCT _IC DCT Image Compression
JPEG Joint Photographic Experts Group
DCT Discrete Cosin Transform
Trang 14TOM 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 15Chuong 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 16e_ 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 17triể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 19Chươ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 20Cy = 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 21Mộ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 22Vi 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 23Dé 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 24Hai 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 25chó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 26Hì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 27Qué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 28DC đầ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 292.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 30Bước 2: Tạo cây Huffman Encoding.
Hình 2.15: Minh họa cây nhị phân
17
Trang 31Bướ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 32Chươ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 33né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 3415 | 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 35Bả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 3742 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 38Bả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 39a 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 40Quantization 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