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ội dung 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 tim kiế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ực nghiệ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 nhó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. Field Programmable Gate Array (FPGA) 2.
Dinh nghĩa FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mang phan tử logic cho phép các lập trình viên có thé lập trình cho hau hết các chức năng của bat kỳ một thiết kế số nào. Chữ field ở đây muốn nói đến khả năng có thể lập trình được của người sử dụng khác với một số Chip là phải được lập trình tại nhà máy bán dẫn. Bộ nhớ tĩnh đầu tiên được xây dựng dựa trên FPGA (thường được gọi là SRAM trên nền FPGA) được đề xuất bởi Wahlstrom vào năm 1967. Sau đó bản thương mại của FPGA được Xilinx giới thiệu vào năm 1984.
Lúc này nó gồm có một mảng của các khối logic có thé tái câu hình - Configurable Logic Blocks (CLBs) và các đầu vào 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ạn chế 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 Thiế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ớn như 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ểu nà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). 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 Blocks hoặ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.
InputiOutput Blocks Ì _Bï EI B li El Em Logic Blocks heal Programmable Interconnect Hình 2. 1: Kiến trúc cơ bản của FPGA 19 Khố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).
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ực tiếp hay thông qua phan tử nhớ flip-flop. Ngoài khối logic cơ bản đó, nhiều chip FPGA hiện nay còn có một hỗn hợp các khối khác nhau, một số trong đó chỉ được dù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ối vớ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ảo cho 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ác thà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 vớ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ông qua việc bố sung các khối chức năng đặc biệt có thể lập trình như bộ nhớ Block RAMs, logic số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thê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ều FPGA ngày nay có nhiều nguồn tài nguyên hơn so với các FPGA trước đó. 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ác doanh 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 ứng dụ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 Client/Receiver Streaming Server : Video ¬- Audio Media Decoder - Decoder 1 Storage Device Video Application-layer * : Compressed. Application-layer : Raw Video Compression |„| : Video PF M Qo5 Control QoS Control Audio | ) Compressed { Eaw Audio Compression (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.