Trong đề tài này, nhóm muốn sử dụng nền tang System on Chip dé xây dựngmột hệ thống smart camera streaming hình ảnh qua kết nối không dây với độ trễ thấp và tiệm cận được với thời gian t
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TINH
PHAN TRONG HIEU
NGHIEN CUU VA CAI TIEN VIDEO STREAMING CHO
SMART CAMERA TREN SOC ULTRA96-V2
RESEARCH AND IMPROVE VIDEO STREAMING FOR
SMART CAMERA ON ULTRA96-V2 SOC
KY SU KY THUAT MAY TINH
TP HO CHi MINH, 2021
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
PHAN TRỌNG HIẾU - 17520483
KHÓA LUẬN TÓT NGHIỆP
NGHIÊN CỨU VÀ CẢI TIỀN VIDEO STREAMING CHO
SMART CAMERA TREN SOC ULTRA96-V2
RESEARCH AND IMPROVE VIDEO STREAMING FOR
SMART CAMERA ON ULTRA96-V2 SOC
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TIEN SI NGUYEN MINH SON
TP HO CHi MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 62/QD-DHCNTT ngày
14 tháng 02 năm 2022 của Hiệu trưởng Truong Dai học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Lời đầu tiên em xin được chân thành gửi lời cảm ơn đến quý thầy cô trườngDai học Công Nghệ Thông Tin — Dai học Quốc gia Thành phố Hồ Chí Minh nóichung và quý thầy cô trong khoa Kỹ thuật máy tính nói riêng đã nhiệt tình giảng dạy,truyền đạt nhiều kiến thức bổ ích và những kinh nghiệm quý báu giúp em có thê hoànthành khóa luận tốt nghiệp này một cách tốt nhất
Đặc biệt, em xin chân thành cảm ơn thầy Tiến sĩ Nguyễn Minh Sơn đã hướngdẫn, quan tâm giúp đỡ và động viên nhóm rất tận tình trong suốt quá trình thực hiện
đề tài, cung cấp cho em nhiều chỉ dẫn giúp giải quyết nhiều vấn đề cho nhóm trong
suốt quá trình thực hiện nghiên cứu cũng như các kiến thức chuyên môn quý báu giúp
em có thé hoàn thành khoá luận một cách tốt nhất
Bên cạnh đó, em cũng muốn gửi lời cảm ơn đến các anh chị, bạn bè cùng với
gia đình đã luôn động viên, khích lệ tinh thần và giúp đỡ nhóm trong việc trao đổi
tìm kiếm thông tin và giải quyết nhiều vấn đề cho nhóm trong suốt quá trình thực
hiện khóa luận này.
Với điều kiện thời gian cũng như kinh nghiệm còn nhiều hạn chế nên trongkhóa luận này không thể tránh khỏi những thiếu sót Em rất mong nhận được sự đónggóp ý kiến, những nhận xét và phê bình của quý thầy cô dé chúng em được bồ sung,
nâng cao kiến thức của bản thân nhằm phát triển hơn trong tương lai
Một lần nữa, em xin chân thành cảm ơn!
Thành phó Hồ Chí Minh, ngày 18 tháng 02 năm 2022
Sinh viên thực hiện
Phan Trọng Hiếu
Trang 5MỤC LỤC
Chương I GIỚI THIEU ĐÈ TÀI 2 2E +E£2E£+EE+EE+EEzEEzEEerxerxrex 12
LL Lý đo chọn đề tài c- s21 E1 E1 E12 1011211211211 1111111111111 c0 121.2 Một số nghiên cứu liên quan -¿- ¿©+©+++++£x+£x++zx++rxzrxrrxesree 13
1.2.1 Nghiên cứu ngOài nue Ă S313 vn ve rrn 13
1.3 Mục tiêu đề tải ccc ch He 14
1.4 Giới hạn đề tài ccvvt th thue l5
1.5 KẾt quả mong muốn - ¿222 E+EE£2EE£EE£EEEEEEEEEEEEEEEEEEEEEEEkrrkerkrres 15
1.6 Bố cục luận văn -¿-c- Set 1E 1215111111E11115151111511111111111111111 1151 xe 16Chương2 CƠ SỞ LÝ THUYÊT 2©22©E+E+2E£+EE+EEtEEtrEerrkerxerkerex 18
2.1.1 Định nghĩa SG Q11 HH ng ng kg 18
2.1.2 _ Kiến trúc tổng quát - ++++e+E+r+kerkerkerxerxererree 19
2.2 Giới thiệu về Streaming VideO ¿- 2+Ss+EeEE2EE2EEEEEEEErEkrrkerkerreee 21
2.4.1 Kiến trúc của GStreamer ©sc©5++c++cxerxcrxereerxerkereee 24
2.4.2 — Pluglns LH HH HH TH HH TH HH HH 25 2.5 Petalinux 2019.2 LH nh TH ng TH HH nh hệt 26 P9 li) 0/0) 009 27
2.6.1 Quá trình phát triỀn -¿©¿+k+EE+EE++EESEEEEEEEErrkrrkerkerree 28
2.6.2 Kiến trúc WebRTC -+ccrrreerrriirrrrrrirrrrrrirrrree 30
2.6.3 Các APIs trong WeblRTC c SH ng rệt 32
Trang 62.6.4 Một số giao thức trong WeblRTC -¿- 5¿©cxcccxvcxesrxeerxee 32Chương 3 THIẾT KE HE THÓNG -2-©2¿+2+++z++2+++rx++rxesrsees 35
3.1 Zynq UltraScale+ MPSOC Ăn 11111 vn TH kg ng ngư, 35 3.2 FPGA UItra96-V2 ch TH TH TH nh cưng 36
3.3 Thiết kế tong quát của hệ thống 2-2 2 ++££+E£+E££Ee£Eerxerxersrreee 383.4 Xây dựng luồng streaming bằng GStreamer 2 ¿s5 s+zscs+e 39
3.4.1 Web Browser Streaming - «cv HHngg 39 3.4.2 — Local SfreaIming sgk 40 3.5 Xây dựng các chương trình trên Cloud S€TVeT -«- +«£ << x+se+sx+ 41
3.5.1 Nginx Z2 mế À 4I 3.5.2 — Janus Œaf€WA TQ HT HH TH HH TH ng 43
Chương 4 HIỆN THUC, THỰC NGHIỆM VÀ ĐÁNH GIÁ KET QUA 45
4.1 Kết quả thực nghiệm trên Local Streaming - 2-2 2+2 szs+zxezss 454.2 Kết quả thực nghiệm trên Web BroWSer -¿ 5¿©52©5z2cx2zxvrxesres 46Chương 5 KÉT LUẬN VÀ HƯỚNG PHAT TRIEN -. : -: 47
5.1 Kết quả dat Gu c.cccccccccccsccscscsscsseesessessessessessesessessessessessessesssseesesseeseesessees 475.2 Hướng phát triÊn -2¿-+¿©-++2E++EE+SEE2EEE2EEE2EE221 2112112122 re 48
Trang 7DANH MỤC HÌNH
Hình 2 1: Kiến trúc cơ bản của FPGA che 19Hình 2 2: Kiến trúc cơ bản về streaming video -¿2- scx+zxezxzrxsrxcrez 22Hình 2 3: Sơ đồ khối của một smart camera cơ bản . - + s+s+c+zs+x+£zzzxzxez 23Hình 2 5: Kiến trúc tổng quát của GStreamer 2 2¿+¿+++2x++£x++zxzxesree 25Hình 2 6: Kiến trúc tổng thé WeblR'TC ¿2c + x+EE+EE+EE2EZEEEEEEerkerkerkrree 31
Hình 2 7: Protocol stack trong WebiRTÍC - - «+ HH HH HH Hit 33 Hình 2 8: Mô hình hoạt đông STỮN S S32 19 ng re 34
Hình 3 1: Các khối chức năng trong Zynq UltraScale+ MPSoC - 35Hình 3 2: Các thành phan chính trên board Ultra96-V2 ¿5c s s£s+£s+s+2 37Hình 3 3: Sơ đồ khối của board Ultra96-V2 -¿-cc+ecrrrrrkkerrtrrrirrrrrrrid 38Hình 3 4: Thiết kế tổng quát của hệ thống . 2-2 5¿©+++++£x++zx++rxzxesrxe 38
Hình 3 5: Mô hình xử lí pipeline cho web streaming dùng GStreamer 39
Hình 3 6 : Mô hình xử lí pipeline cho P2P streaming trên client 40 Hình 3 7: Mô hình xử lí pipeline cho P2P streaming trên serV€T - «‹ 40
Hình 3 8: Thông tin phiên bản Nginx c1 11211 re 41
Hình 3 9: Cấu hình thông tin cho Nginx server c.cccsssesssessecseessecssesstesseesseesseess 42
Hình 3 10: Trạng thái hoạt động của Nginx S€TVT - 6c S + scssessssessee 43
Hình 3 11: Kiến trúc tong quan Janus GateWayy - 2 2 z+se+xezxerxerxerszree 43
Trang 8DANH MỤC BANG
Bảng 2 1: Phân loại plugin trong GSr€aIm€T - <5 + s*+xksvvsseeeeeesreere 26
Bang 2 2: Ludng thiết kế Petalinux 2-2-5 2222 E£EEEEEE2EE2EEEEEEEEEEEkerkrrkrrer 27Bảng 2 3: Một số tính năng quan trong của WebRTC ¿5c 5 scs+£s2 +2 30
Bang 3 1: Một vai plugin có trong Janus af€WAY nho 44
Bang 4 1: Bảng so sánh kết quá thực nghiệm local streaming -. 45Bảng 4 2: Bang so sánh kết quả thực nghiệm web streaming - 46Bang 5 1: Tống kết và so sánh với một số nghiên cứu trước đó trong nước 48
Trang 9DANH MỤC TỪ VIET TAT
Từ viết tắt Tên đầy đủ
AI Artificial Intelligence
ALU Arithmetic Logic Unit
API Application Programming Interface
APU Application Processing Unit
ASIC Application Specific Intergrated Circuit
AXI Advanced eXtensible Interface
Core SW Core SoftWare
CPU Central Processing Unit
DDR4 Double Data Rate fourth generation
DRAM Dynamic Random Access Memory
DTLS Datagram Transport Layer Security
DSP Digital Signal Processor
FPGA Field-Programmable Gate Array
FPS Frame Per Second
HDL Hardware Description Language
HLS High Level Synthesis
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
ICE Interactive Communication Establishment
IOU Input Output Unit
IP Internet Protocol
Trang 10NAT Network Address Translation
OpenCV Open source Computer Vision library
PC Personal Computer
PL Progammable Logic
P2P Peer-to-Peer
RAM Random Access Memory
RTL Register Transfer Level
RTP Real Time Protocol
TURN Traversal Using Relays Around NAT
SDP Session Description Protocol
SAVPF Secure Audio Video Profile with Feedback
SoC System on Chip
SRTP Secure Real Time Protocol
SCTP Stream Control Transmission Protocol
STUN Session Traversal Utilities
TCP Transmission Control Protocol
VHDL Very High Speed Intergrated Circuit Hardware
Description Language
WebRTC Web Real-Time Communication
YOLO You Only Look Once
10
Trang 11TÓM TẮT KHÓA LUẬN
Ngày nay, những tiến bộ trong công nghệ vi điện tử đã giúp con người có thểtích hợp được nhiều hệ thống phức tạp trong một thiết bị duy nhất Smart cameracũng là một phần của quá trình phát triển này và có thê được định nghĩa là một hệthống được tích hợp thêm nhiều chức năng: truyền tải hình ảnh qua kết nối không
dây, tích hợp thuật toán xử lý ảnh Việc xây dựng smart camera có thê dựa trên nhiều
nền tảng như: FPGA, Embedded system, System on Chip Mỗi công nghệ đều có ưunhược điểm đặc trưng của chúng, đã và đang được nhiều nhóm tác giả, trường học,các công ty lớn cả trong và ngoài nước nghiên cứu, phát triển Các yếu tố cần lưu ýkhi thiết kế smart camera có thể là tốc độ thu nhận và hién thị, độ chính xác, năng
lượng tiêu tốn và giá thành sản phẩm
Trong đề tài này, nhóm muốn sử dụng nền tang System on Chip dé xây dựngmột hệ thống smart camera streaming hình ảnh qua kết nối không dây với độ trễ thấp
và tiệm cận được với thời gian thực Smart camera sẽ tích hợp thêm thuật toán
YOLOv2 xử lý ảnh trên phan cứng FPGA, kết hợp bộ xử lý core ARM và một sốmodule khác dé điều khiển và truyền dé liệu Người dùng có thé xem kết quả trênmàn hình hiển thị thông qua một Wifi Access Point modem
Nhóm đề xuất thiết kế hệ thống smart camera trên bộ công cụ phần mềmVivado phiên bản 2019.2 của Xilinx (bao gồm: Vivado HLS, Vivado Design Suite,Petalinux, Vitis), sử dụng board Ultra96-V2 trên nền tảng Zynq UltraScale+ MPSoCcủa nhà phát hành Avnet Tần số hoạt động mong muốn của hệ thống dat 1SOMHz
và có thé hiển thị kết quả trong thời gian thực
11
Trang 12Chương 1 GIỚI THIEU DE TÀI
1.1 Lý do chọn đề tài
Thuật ngữ Streaming video lần đầu tiên được sử dụng vào năm 1990 được mô
tả là một kỹ thuật giúp thu thập dữ liệu từ camera sau đó truyền dữ liệu video đó sang
một hoặc nhiều thiết bị nhận thông qua mang internet, được ứng dụng rộng rãi trongthực tế như: các phần mềm (media player, web browser, ) trên các máy khách truy
cập và cho phép xem video từ các máy chủ theo mô hình server/client; các ứng dụng
hội họp trực tuyến, đào tạo từ xa; giám sát, điều khiển từ xa qua hình ảnh theo thời
gian thực, Cho đến nay công nghệ Streaming đang ngày càng được phát triển khôngchỉ dừng lại ở việc truyền tải đữ liệu video mà còn có khả năng tích hợp các thuật
toán thông minh, trí tuệ nhân tạo các hệ thống Streaming này phục vụ trong các lĩnhvực giám sát an ninh và quản lí giao thông Điều này gây khó khăn vì các máy ảnhthông thường chỉ có thế thực hiện việc chụp ảnh thông thường, Đề làm được điều
này, Smart camera đã nổi lên và thu hút được nhiều sự quan tâm từ các nhà nghiên
cứu, trường đại học và nhiều công ty công nghệ, do smart camera mang lại những lợi
thế khác biệt so với máy ảnh thông thường Nó không chỉ dừng lại ở việc thực hiện
việc chụp ảnh thông thường mà còn có khả năng phân tích hình ảnh để nhận dạng vàđưa ra thông tin về một đối tượng nào đó trong ảnh hoặc có thể chỉnh sửa ảnh trựctiếp mà không cần sự can thiệp của con người tất cả điều này đều được tích hợptrong một hệ thống nhỏ gọn
Việc áp dụng các thuật toán thông minh, trí tuệ nhân tạo trong xử lý ảnh vào các
hệ thông Smart camera có khả năng thu được hình ảnh với độ phân giải cao, sau đótruyền đi thông qua một đường truyền ở khoảng cách xa mà ở thiết bị cuối nhận được
hình ảnh với độ trễ không quá cao là một yếu tố khá khó khăn và thu hút nhiều sự
quan tâm đặc biết từ các tô chức thiết kế, nghiên cứu Do đó trong đề tài này, nhómnghiên cứu muốn nghiên cứu và cải tiến hệ thống video streaming cho smart camera
dé có thê truyền hình ảnh streaming (bao gồm hai chế độ: camera hình ảnh thường va
12
Trang 13camera xử lý thuật toán nhận dạng vật thể) thông qua Wifi Access Point, với một độ
trễ thấp và có khả năng đáp ứng khung hình Full HD
1.2 Một số nghiên cứu liên quan
1.2.1 Nghiên cứu ngoài nước
Hiện nay, các ứng dụng liên quan đên smart camera luôn được các trường đại
học, công ty, tập đoàn lớn ưu tiên nghiên cứu và phát triên Do đó, nhóm có thê dê
dàng tìm được các bài báo khoa học về vân dé này trên internet Một sô bài báo khoa
học gần đây như:
s+ Bài báo [2] “Object Tracking on FPGA-based Smart Camera using Local Oriented
Energy and Phase Feature” của nhóm tác gia Ehsan Norouznezhad, Abbas Bigdeli, Adam Postula, Brian C Lovell vao nam 2010 su dung module camera Micron MT9POO1 trên FPGA Xilinx Virtex-5 ML506 áp dung thuật toán
Histogram đã thu được ảnh với tốc độ 30 FPS và độ phân giải 640 x 480 Ưu điểmcủa hệ thong này là nó có thể phân loại được nhiều đối tượng khi thực hiện hoạtđộng theo dõi, giám sát, FPS tại độ phân giải SD Nhược điểm là cần nhiều thờigian tính toán dé có thê xác định được đối tượng đang cần theo dõi
> > ¢ Bài báo [3] “DreamCam: A modular FPGA-based smart camera architecture” của
nhóm tác gia Merwan Birem, Francois Berry vào năm 2014 sử dung module camera MT9M031, EV76C560 trên FPGA Altera Cyclone HI đã thu được ảnh với
tốc độ 42 FPS và độ phân giải 800 x 1024 Ưu điểm của hệ thống này là khả năngtùy biến kích thước của hình ảnh đầu vào, điều chỉnh được số điểm ảnh cần thiết
và nó sẽ tự biên dịch và tông hợp thành một hệ thống mới Nhược điểm là mất
nhiều bước và nhiều thời gian để có thể xây dựng hệ thống, thiếu các tính năng
theo dõi, nhận diện.
1.2.2 Nghiên cứu trong nước
Luận văn tốt nghiệp [1] “Thiết kế và tích hợp smart camera trên SoC
Ultra96-V2” của nhóm sinh viên Bùi Nguyễn Phát, Lê Minh Huy năm 2021 sử dụng smart
13
Trang 14camera trên SoC Ultra96-V2 áp dụng thuật toán YOLOv2 Ưu điểm của đề tài này đã
giải quyết được van dé áp dụng YOLOv2 dé xử lí hình anh lấy từ smart camera Tuynhiên kết qua thu được có thời gian delay streaming từ 11.02 — 19.26s với tốc độkhung hình thu được vào khoảng 0.76 — 0.92 FPS Điều này gây ra trở ngại rất lớn ởcuối thiết bị nhận vì dữ liệu lúc ấy không còn nhiều ý nghĩa
Luận văn tốt nghiệp [4] “Thiết kế và hiện thực IP camera trên Zyng-7000” của
sinh viên Chung Vĩnh Kiện năm 2019 sử dụng camera Raspberry Pi trên FPGA
Zynq-7000 đề thu thập hình ảnh và truyền hình ảnh đến người xem qua kết nối Ethernet
Ưu điểm của hệ thống là camera hỗ trợ độ phân giải cao 1280 x 720 với tốc độ khunghình khi streaming ôn định ở mức 5.5-6 FPS Nhược điểm là dé tài này chưa thé tíchhợp thuật toán xử ly AI vào dé nhận dạng được người có trong khung anh
1.3 Mục tiêu đề tài
Ở luận văn này, nhóm sẽ tập trung vào việc tìm hiểu các công nghệ giúp nâng
cao khả năng streaming video của smart camera trên SoC Ultra96-V2 thông qua
đường truyền Internet theo thời gian thực giữa hai hay nhiều thiết bị nhận Đồng thời
nâng cao tốc độ khung hình trên thiết bị nhận Dé đáp ứng được các yêu cầu như trên,
nhóm đê ra những mục tiêu cụ thê sau:
s* Nhóm sẽ kế thừa lại thiết kế phần cứng trên SoC Ultra96-V2 từ luận văn [1] “Thiết
kế tích hợp trên Ultra96-V2 cho smart camera” của nhóm sinh viên Bùi NguyễnPhát và Lê Minh Huy dé nghiên cứu, phục vụ cho việc cái tiễn khả năng streamingcho hệ thống tích hợp trên Ultra96-V2 cho smart camera
> ** Tiếp theo nhóm tim hiểu các đặc tính của SoC Ultra96-V2 của Avnet phân phối
dựa trên hệ thống Zynq UltraScale+ MPSoC do Xilinx phát hành Đồng thời tìm
hiểu thêm bộ công cụ Xilinx Vivado (bao gồm Vivado HLS, Vitis, Vivado DesignSuite) dùng dé hồ trợ cho việc thiết kế và xây dựng các chương trình ứng dụng
trên board Ultra96-V2.
14
Trang 15> >* Kế tiếp nhóm tim hiểu và xây dựng hệ điều hành Linux, sau đó nạp lên board
Ultra96-V2 bằng công cu Petalinux của Xilinx phát hành dé điều khiển hoạt động
của cả hệ thống
* Nhóm nghiên cứu, cải tiến luồng pipeline GStreamer dé thực hiện việc truyền
hình ảnh streaming thông qua mạng Internet đạt được độ trễ thấp nhất
* Tìm hiểu và xây dựng một hệ thống cloud server đáp ứng được việc nhận và xử
lý dữ liệu hình ảnh từ mạng Internet Đồng thời xây dựng một máy chủ HTTP để
hién thị hình anh streaming lên trình duyệt web.
s* Cuối cùng nhóm viết các chương trình phần mềm bằng Vitis và nạp lên hệ điều
hành Linux trên board Ultra96-V2 để điều khiển hoạt động hệ thống Nhóm sẽ
>
thuc hién kiém tra hé thong, danh gia va dua ra cac kết luận dựa trên các kết quả
thử nghiệm.
1.4 Giới hạn đề tài
Do thời gian hạn chế trong quá trình làm luận văn nên đối với việc streaming
video chất lượng khung hình Full HD, dé tài này sẽ thực nghiệm dé có kết quả thực
tẾ, không tập trung vào việc đánh giá tốc độ và độ trẻ khi thực hiện streaming video
vì van dé này đòi hỏi tài nguyên phan cứng và phan xử lý lập trình multiple threading
cho các ứng dụng trên thiết bị đầu cuối (máy tính, thiết bị di động ) để chứng minh
khả năng hiện thực của smart camera trên KIT SoC Ultra96-V2 với FPGA ZCU3.
1.5 Kết quả mong muốn
Ở đề tài này nhóm sẽ tập trung vào việc cải tiến chất lượng video streaming khi
thực hiện việc streaming ở khung hình HD trong trường hợp có xử lý AI và không xử
lý AI thông qua mạng Internet sau đó hién thị hình ảnh này trên trình duyệt web cho
phép một hoặc nhiều thiết bị đầu cuối đồng thời có thể xem được Độ trễ mong muốntrên thiết bị nhận tiệm cận với thời gian thực đối với trường hợp video không xử lý
AI Còn về trường hợp xử lý AI, độ trễ khi streaming video ở độ phân giải HD trênthiết bị đầu cuối nhỏ hơn khoảng đưới 7 giây và hệ thống có khả năng đáp ứng được
video có chất lượng khung hình Full HD
15
Trang 161.6 Bo cục luận văn
Báo cáo này được chia làm năm chương, mỗi chương có nội dung được trình
bày như sau:
Chương 1: Giới thiệu đề tài
Chương đâu tiên sẽ giới thiệu tông quan về đê tài khóa luận, lý do nhóm chọn
đê tài này, mục tiêu đê ra của nhóm, những giới hạn của đê tài và kêt quả thực hiện
mà nhóm đạt được.
Chương 2: Cơ sở lý thuyết liên quan đến đề tài
Chương nảy trình bày những cơ sở lý thuyết được sử dụng có liên quan đến nộidung nghiên cứu của dé tài, những thông tin này dựa vào các nguồn tài liệu nhóm timkiếm được trên Internet, tham khảo các tài liệu có sẵn trên website của khoa KTMT
cũng như những góp ý của các thầy cô, anh chị bao gồm: kiến thức chung về FPGA,
smart camera, tìm hiểu về các kỹ thuật streaming video dé từ đó có thé chọn ra kỹthuật phù hợp nhất với mục tiêu đề ra ban đầu của đề tài, cuối cùng sẽ đưa ra các đềsuất phù hợp nhất
Chương 3: Thiết kế hệ thống
Dựa vào những kiến thức về cơ sở lý thuyết đã tìm hiểu được ở Chương 2 thì ở
Chương 3 này nhóm sẽ đề xuất một mô hình hệ thống một cách chỉ tiết của khóa luận.Giải thích nguyên lí hoạt động của cả hệ thống
Chương 4: Hiện thực, thực nghiệm và đánh giá kết quả
Sau khi đã xây dựng được hệ thống, nhóm tiến hành các bước chạy thử, thựcnghiệm thu được các kết quả sau đó thực hiện việc đánh giá, so sánh với mục tiêu banđầu của đề tài cũng như so sánh với kết quả thực nghiệm của đề tài trước
Chương 5: Kết luận và hướng phát triển
Chương cuối sẽ tổng kết lại khóa luận, tóm tắt toàn bộ những công việc mà
nhóm đã hoàn thành, những kết quả và thành tích đạt được Đồng thời chương này
16
Trang 17nhóm sẽ đưa ra đề xuất cho những hướng phát triển tiếp theo của đề tài trong tương
lai.
17
Trang 18Chuong 2 CƠ SỞ LÝ THUYET
2.1 Field Programmable Gate Array (FPGA)
ra - I/O (input/output) Chip FPGA dau tiên chứa 64 CLBs và 58 I/Os Ngày nay,
FPGA có thê chứa khoảng 330,000 CLBs và 1100 I/Os Phần lớn các sản pham FPGA
trên thị trường hiện nay đều dựa trên công nghệ SRAM với 2 hãng sản xuất lớn nhất
là Xilinx và Altera Ngoài ra còn có các hãng khác sản xuất FPGA nhưng với mục
đích chuyên dụng (Atmel, Actel, Lattice, SiliconBlue, ).
Kiến trúc cơ bản của FPGA bao gồm 3 thành phần chính:
e Khối logic có thé tái cau hình, Configurable Logic Blocks (CLBs) thực
hién cac chire nang logic.
e Các tài nguyên kết nối, Porgrammable Interconnect có thé lập trình dé
kết nối các đầu vào và đầu ra của các CLB và các khối I/O bên trong.
© Các khối I/O cung cấp giao tiếp giữa các ngoại vi và các đường tín hiêu
bên trong.
FPGA cũng được xem như một loại vi mạch bán dẫn chuyên dung ASIC, nhưng
nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thưviện logic thì FPGA không dat đựợc mức độ tối ưu như những loại này và còn hạnchế trong khả năng thực hiện những tác vụ đặc biệt phức tạp Tuy vậy FPGA ưu việt
hơn ở chỗ có thé tái cấu trúc lại khi đang sử dung, công đoạn thiết kế đơn giản do vậy
chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng
18
Trang 19Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ
mô tả phần cứng HDL như VHDL, Verilog, AHDL Các hãng sản xuất FPGA lớnnhư Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quátrình thiết kế Ngoài ra cũng có một số hãng thứ ba cung cấp các gói phần mềm kiểunày như Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cảcác bước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL
(còn gọi là ma RTL).
2.1.2 Kiến trúc tổng quát
Kiến trúc cơ bản của FPGA gồm 3 thành phan chính sau: Khối I/O (hay gọi làcác pin FPGA), khối kết nối (Interconnection), các khối logic cau hình (Logic Blockshoặc Configurable Logic Blocks - CLB) Các khối CLB được tổ chức sắp xếp theo
mảng với 2 hướng dọc va ngang như Hình 2.1.
Hình 2 1: Kiến trúc cơ bản của FPGA
19
Trang 20Khối CLB: thực thi các chức năng logic, cung cấp các tính toán và phan tửnhớ cơ bản được sử dụng trong hệ thống số CLBs là phan tử cơ bản cau thành FPGA,
là nguồn tài nguyên logic chính tạo nên các mạch logic đồng bộ lẫn không đồng bộ
Một CLB cơ bản gồm một mạch tổ hợp có thé lập trình (còn gọi là LUT), một
Flip-Flop hoặc một chốt (latch) LUT (Look Up Table) là khối logic có thé thực hiện bat
kì hàm logic nào từ 4 đầu vào (số đầu vào này sẽ tùy thuộc vào từng dòng chip củamỗi hãng) Kết quả của hàm này tùy vào mục đích mà gửi ra ngoài khối logic trựctiếp hay thông qua phan tử nhớ flip-flop Ngoài khối logic cơ bản đó, nhiều chipFPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đó chỉ đượcdùng cho các chức năng cụ thể, chăng hạn như các khối bộ nhớ chuyên dụng, các bộnhân (multipliers) hoặc các bộ ghép kênh (multiplexers) Tắt nhiên, cấu hình bộ nhớđược sử dụng trên tất cả các khối logic được dùng dé điều khiến các chức năng cụ thểcủa mỗi phan tử bên trong khối đó
Khối kết nối (Interconnections): dùng dé liên kết các khối logic và I/O lại với
nhau dé tạo thành một thiết kế hoàn chỉnh Mạng liên kết trong FPGA được cấu thành
từ các đường kết nối theo hai phương ngang và đứng Tùy theo từng loại FPGA mà
các đường kết nối được chia thành các nhóm khác nhau Các đường kết nối được nốivới nhau thông qua các khối chuyên mạch lập trình được (programmable switch)
Trong mỗi khối chuyển mạch chứa một số lượng nút chuyên lập trình được đảm bảocho các dạng liên kết phức tạp khác nhau
Khối I/O: cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến cácthành phần bên ngoài Một trong những vấn đề quan trọng nhất trong thiết kế kiến
trúc I/O là việc lựa chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu sẽđược hỗ trợ Số lượng Pin (I/O) của FPGA tương đối lớn, thường được chia ra làm 2
loại: User Pin (chân người dùng), Dedicated Pin (chân chuyên dung) User Pin: người dùng có thê lập trình như đâu vao, dau ra hoặc ca đâu vào — ra Môi pin được kết nôi
20
Trang 21với một “I/O Cell” bên trong FPGA, được cấp bởi các chân Vee I/O (I/O power pin).
Dedicated Pin: được mã hóa cứng với một chức năng cụ thé như:
+ Power Pin.
%* Configuration Pin: các pin dé cấu hình FPGA
“ Dedicated Input hay Clock Pin: điều khiển mang lưới clock trong FPGA
Voltage IO: cấp nguồn cho các công logic va flip-flops bên trong FPGA
Theo thời gian, các kiến tric FPGA co bản đã được phát triển nhiều hơn thôngqua việc bố sung các khối chức năng đặc biệt có thể lập trình như bộ nhớ BlockRAMs, logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng đượcthêm vào do nhu cầu của các nguồn tài nguyên cho một ứng dụng Kết qua là nhiềuFPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó
2.2 Giới thiệu về Streaming Video
Streaming Video hiện nay là một dạng truyền thông đa phương tiện được sử
dụng rộng rãi trên các ứng dụng Internet thời gian gần đây Ngay từ khi ra đời, kỹthuật streaming video đã được áp dụng vào các phần mềm phục vụ nhu cầu giải trí,
những ứng dụng hỗ trợ cho việc hội họp trực tuyến, giám sát an ninh, thị giác máy
trong công nghiệp, robot, hệ thống nhà thông minh, quản lý và điều khiển trong cácdoanh nghiệp, cơ quan, tổ chức trở nên dé dàng và hiệu quả hơn Đặc biệt là các ứngdụng được xây dựng dựa trên các hệ thống nhúng trên phần cứng
Đây là kỹ thuật cho phép bat kỳ nội dung video nào được vận chuyên thông qua
mạng Internet Các nội dung này có thể là chương trình TV, phim, video ngắn,
Các nền tảng giải trí như Youtube, Netflix, media player, web browser cũng sử dụng
kỹ thuật streaming video trên máy người dùng truy cập và phát video từ một hệ thống
máy chủ.
21
Trang 22Eaw Audio Compression
Raw Video Compression | „| : PF M Qo5 Control
Video QoS Control
Audio | )
Compressed {
(7 Internet N
X (Continuous media distribution services) a
Hinh 2 2: Kién tric co ban vé streaming video
Về bản chat, streaming video trực tiếp qua Internet bao gồm một camera ghi lại
nội dung, sự kiện cân phát sau đó sử dụng các bộ mã hóa đê sô hóa các nội dung này, một streamer server sẽ đóng vai trò là nơi truyền dir liệu qua mạng Internet đên một mạng lưới phân phôi nội dung đề phân phôi và cung câp nội dung đên với người xem.
Streaming video mang lại một sô ưa điêm sau:
Chất lượng trải nghiệm tối ưa: người dùng có thể dễ dàng xem các video mà không cân phải tải các video này với chất lượng hình ảnh và âm thanh rõ ràng.
Hồ trợ độ phân giải cao: một vài dịch vụ hỗ trợ độ phân giải lên đến HD hoặc Full HD, đây là độ phân giải cao hơn độ phân giải tiêu chuẩn trên TV.
Tối ưu vệ chi phí: sự xuất hiện của công nghệ streaming video giúp chúng ta có
thê kết nối với nhau qua một thiết bị, phố biến nhất hiện nay là smartphone Một
số dịch vụ phát trực tuyến video như Youtube hoặc Twitch có thể được sử dụng
một cách hoàn toàn miễn phí.
Hỗ trợ đa thiết bi, đa nền tang: người dùng có thé xem bat cứ nơi đâu và bat cứ
lúc nào, trên mọi nên tảng thiết bị có hỗ trợ kết nối Internet
Hiệu quả tương tác cao: ghi lại và phát ngay lập tức các sự kiện đang diễn ra giúp
việc tiếp cận đến các đối tượng mong muôn trở nên dễ dàng hơn bao giờ hết, tăng
khả năng tương tác trao đổi với nhiều người dùng.
2.3 Smart camera
Smart camera là một hệ thống thị giác máy, ngoài khả năng chụp ảnh như trên
các camera bình thường thì nó còn có khả năng trích xuất thông tin dành riêng cho
22
Trang 23các ứng dụng từ các hình ảnh đã chụp, chỉnh sửa các hiệu ứng, loại bỏ các phần thừa,
nhận diện khuôn mặt, sử dụng bộ lọc hình ảnh hoặc thực hiện các tính năng xử lý ảnh
khác, cùng với việc tạo mô tả sự kiện hoặc đưa ra các quyết định được sử dụng trong
các hệ thống tự động và thông minh Smart camera là một hệ thống thị giác độc lập,khép kín với cảm biến hình ảnh được tích hợp bên trong vỏ máy Các cảm biến hìnhảnh có thé được tích hợp bên trong một phan cứng duy nhất được gọi là bộ xử lý hìnhảnh thông minh Bộ xử lý này chứa tất cả các giao diện truyền thông cần thiết như
Ethernet, các chân I/O 24V dé kết nối với PLC dùng trong công nghiệp
s* Hiệu suất bộ xử lý: Một số loại smart camera có hiệu suất xử lý ngang bằng với
khả năng xử lý của một hệ thống dựa trên máy tính cá nhân Smart camera bao
gồm các bộ xử lý có san như DSP, PowerPC, Atom Ngoài ra còn có các tủy chọn
kết hợp như CPU và bộ đồng xử lý DSP cho một số thuật toán nhất định
+ Kích thước: Nhiều thành phan trong smart camera được tích hợp vào một bộ phận
duy nhất, giúp giảm kích thước giá thành sản phẩm
23
Trang 24> > » Cam biên hình anh: Ban chat của smart camera van là một máy ảnh, nhưng nó
không chi dừng lại ở việc thu nhận ảnh mà còn quét ảnh với tần số lên đến 10
kHz.
* Phần mềm: Hau hết các smart camera ngày nay đều được cài đặt các phần mềm
giúp người dùng dễ dàng thao tác hơn trong việc xử lý ảnh.
% Độ bền: Độ bền của smart camera phụ thuộc rất nhiều vào môi trường mà nó được
triển khai Nhưng các nhà sản xuất luôn trang bị một số tính năng cơ bản giúp hạnchế hư hỏng của smart camera như chống nước, chống va đập, chống bụi
* > ~ Khả năng kết nôi: Moi smart camera déu được trang bị các công giao tiêp g1úp
kết nối hoặc điều khién các thiết bi khác trong hệ thống, truyền nhận dữ liệu một
cách dễ dàng hơn.
> ** Kha năng đưa ra quyết định: Ngày nay, các smart camera có thé có đủ mọi hình
dạng, kích thước và hiệu suất nhưng tất cả chúng đều có một thuộc tính chung làkhả năng xử lý ảnh và đưa ra quyết định Chính việc đưa ra quyết định làm chomột chiếc máy ảnh bình thường trở nên thông minh hơn Ngoài ra, smart cameracòn giúp tiết kiệm chỉ phí, dễ tích hợp và mang lại hiệu suất cao nên nó luôn làmột lựa chọn hàng đầu cho các ứng dụng về thị giác máy tính
2.4 GStreamer
2.4.1 Kiến trúc của GStreamer
GStreamer là một framework mã nguồn mở cho phép người dùng có thê xây
dựng các ứng dụng truyền thông trực tuyến: Trình phát video/audio, StreamingServer, ứng dụng hỗ trợ chat video GStreamer framework được thiết kế nhằm giúp
người dùng có thé thiết kế các ứng dụng xử lý video hoặc âm thanh hoặc cả hai bangcách cung cấp CLI (Commmand Line Interface) cho phép sử dụng plugin cung cấp
các chức năng codec khác nhau và các chức năng khác.
24