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

Luận văn thạc sĩ Kỹ thuật điện tử: Thiết kế và hiện thực lõi IP giảm nhiễu video 3 chiều dùng FPGA

116 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

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN (18)
    • 1.1 Giới thiệu về tổng quan về xử lý nhiễu [1] (18)
      • 1.1.1 Các kỹ thuật tăng cường ảnh (18)
      • 1.1.2 Xử lý nhiễu trong video (20)
    • 1.2 Mục tiêu, nội dung luận văn (21)
      • 1.2.1 Mục tiêu (21)
      • 1.2.2 Nội dung (22)
  • CHƯƠNG 2: CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN (23)
    • 2.1 Công trình của Gijesh Varghese and Zhou Wang năm 2012 [4] (23)
    • 2.2 Công trình nghiên cứu của Seema Mishra, Preety D Swam năm 2013 [5] (24)
    • 2.3 Công trình nghiên cứu của V. K. Nath an d D. Hazarika (2012) [6] (25)
  • CHƯƠNG 3: THIẾT KẾ CẤU TRÚC PHẦN CỨNG CHO IP XỬ LÝ NHIỄU VIDEO (27)
    • 3.1 Phương pháp đề nghị (27)
      • 3.1.1 DCT theo ngƣỡng (27)
      • 3.1.2 Lọc Median (32)
      • 3.1.3 Hệ thống đề nghị ....................................................................................... 18 3.2 Giải thuật xử lý nhiễu 3 chiều cho video sử dụng phân tích DCT và lọc MEDIAN (35)
    • 3.3 Mô tả tổng quan thiết kế trên cấu trúc phần cứng (37)
      • 3.3.1 Yêu cầu chi tiết thiết kế (37)
      • 3.3.2 Giới thiệu một số chuẩn bus của hãng altera (38)
    • 3.4 Mô tả chi tiết thiết kế (47)
      • 3.4.1 Khối Sink Control (52)
      • 3.4.2 Khối Source Control (55)
      • 3.4.3 Khối AMM control master (56)
      • 3.4.4 Khối data controller (59)
  • CHƯƠNG 4: MÔ PHỎNG KIỂM TRA THIẾT KẾ (71)
    • 4.1 Mô hình kiểm tra thiết kế (71)
    • 4.2 Phương pháp mô phỏng (73)
    • 4.3 Kết quả mô phỏng IP (73)
      • 4.3.1 Dạng sóng khối sink control (74)
      • 4.3.2 Dạng sóng khối source control (76)
      • 4.3.3 Dạng sóng khối data controller (78)
    • 4.4 Kết quả mô phỏng trên matlab và phần cứng (82)
      • 4.4.1 Kết quả mô phỏng trên matlab (82)
      • 4.4.2 So sánh kết quả mô phỏng phần cứng với phần mềm (83)
  • CHƯƠNG 5: HIỆN THỰC HỆ THỐNG TRÊN KIT FPGA (87)
    • 5.1 Giới thiệu hệ thống (87)
    • 5.2 Tổng hợp và đóng gói IP trong SOPC (91)
    • 5.3 Xây dựng hệ thống SOPC (96)
    • 5.4 Tổng hợp hệ thống (104)
      • 5.4.1 Phân tích tín hiệu clock (108)
    • 5.5 Kết quả hiện thực hệ thống trên kit FPGA Cyclone III (109)
    • 5.6 Phân tích, nhận xét, đánh giá kết quả (111)
      • 5.6.1 Phân tích tốc độ dữ liệu, khả năng xử lý thời gian thực (111)
      • 5.6.2 Đánh giá về chất lƣợng xử lý xử lý nhiễu video 3 chiều (113)
      • 5.6.3 Nhận xét, đánh giá kết quả (113)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (114)
    • 6.1 Kết luận (114)
    • 6.2 Hướng phát triển (114)
  • PHỤ LỤC (116)

Nội dung

Đề tài “THIẾT KẾ VÀ HIỆN THỰC LÕI IP GIẢM NHIỄU VIDEO 3 CHIỀU DÙNG FPGA” được thực hiện nhằm thiết kế một hệ thống hoàn chỉnh thực hiện chức năng giảm nhiễu video trên 2 miền thời gian

GIỚI THIỆU TỔNG QUAN

Giới thiệu về tổng quan về xử lý nhiễu [1]

(Camera, scanner) Tiền xử lý Trích chọn đặc điểm Hậu xử lý

Lưu trữ Đối sánh, rút ra kết luận nh 1-1 Các bước cơ bản trong hệ thống xử lý ảnh

Xử lý nhiễu nằm trong bước tiền xử lý của quá trình xử lý ảnh Đóng vai trò quan trọng trong việc nâng cao chất lƣợng của hình ảnh, tăng hiệu quả nén ảnh, tạo điều kiện cho việc giảm băng thông truyền và cải thiện tính chính xác của những quá trình nối tiếp nhau nhƣ phát hiện vật thể, theo dõi chuyển động cũng nhƣ phân loại các kiểu mẫu

1.1.1 Các kỹ thuật tăng cường ảnh

Các nhà khai thác nâng cao năng phát hiện các chi tiết hình ảnh quan trọng hoặc các đối tượng do con người hoặc máy Ví dụ các hoạt động bao gồm giảm nhiễu, làm mịn, độ tương phản kéo dài, lọc và tăng cường cạnh Các hoạt động này được áp dụng cho các toán tử điểm hoặc toán tử không gian

1.1.1.1 Cải thiện ảnh dùng toán tử điểm

Xử lý điểm ảnh thực chất là biến đổi giá trị một điểm ảnh dựa vào giá trị của chính nó mà không hề dựa vào các điểm ảnh khác Có hai cách tiệm cận với phương pháp này Cách thứ nhất d ng một hàm biến đổi thích hợp với mục đích hoặc yêu cầu đặt ra để biến đổi giá trị mức xám của điểm ảnh sang một giá trị mức xám khác Cách thứ hai là d ng lƣợc đồ mức xám (Gray Histogram)

- Tăng độ tương phản (Stretching Contrast)

HVTH: Nguyễn Thị Thu Phúc 2 Các cấp độ α, β, γ xác định độ tương phản tương đối L là số mức xám cực đại

- Tách nhiễu và phân ngƣỡng

Trong đó a = b =t gọi là phân ngƣỡng - Biến đổi âm bản

- Trừ ảnh: Trừ hai ảnh thường được sử dụng để phát hiện chuyển động Xét trường hợp khi không có gì thay đổi trong một cảnh cả; ảnh kết quả từ việc trừ hai ảnh thu nhận đƣợc liên tiếp sẽ là một ảnh màu đen toàn 0 Nếu có cái gì đó chuyển động trong cảnh, thì phép trừ ảnh sẽ tạo ra các giá trị khác 0 tại các vị trí có chuyển động

- Mô hình hoá và biến đổi lƣợc đồ xám: Với mỗi giá trị của mức xám ban đầu ứng với một giá trị kết quả Việc chuyển đổi một mức xám ban đầu về một mức xám kết quả tương ứng có thể dễ dàng thực hiện đƣợc nhờ một bảng tra Khi đã xây dựng đƣợc bảng, việc sử

HVTH: Nguyễn Thị Thu Phúc 3 dụng bảng là khá đơn giản Người ta xem xét mức xám của mỗi điểm ảnh, nhờ bảng tra tính đƣợc mức xám kết quả Gọi là bảng tra

Lọc không gian thông thường được thực hiện để khử nhiễu hoặc thực hiện một số kiểu nâng cao ảnh

- Lọc trung bình: Các bộ lọc trung bình thao tác trên các nhóm pixel địa phương được gọi là vùng láng giềng và thay thế pixel trung tâm bởi trung bình của các pixel trong cùng láng giềng đó

- Lọc trung vị: Lọc trung vị là lọc phi tuyến Một phép lọc phi tuyến là một kết quả không thể thu đƣợc từ một tổng trọng số của các pixel láng giềng, nhƣ đã thực hiện với mặt nạ cuộn Tuy nhiên lọc trung vị cũng thực hiện trên cùng một vùng láng giềng địa phương Sau khi đã định nghĩa kích thước vùng láng giềng, pixel trung tâm đƣợc thay bằng trung vị tức là giá trị chính giữa của tất cả các giá trị láng giềng

- Bộ lọc nâng cao: Các bộ lọc nâng cao đƣợc xét ở đây có các bộ lọc kiểu laplacian- type và lọc sai phân (difference filter) Các kiểu bộ lọc này có khuynh hướng để đưa ra, hoặc nâng cao các chi tiết trong ảnh

1.1.2 Xử lý nhiễu trong video

Xử lý nhiễu trong video là quá trình loại bỏ nhiễu từ một tín hiệu video Phương pháp giảm nhiễu hình có thể đƣợc chia thành:

- Phương pháp giảm nhiễu video không gian, phương pháp này làm giảm nhiễu hình ảnh đƣợc áp dụng cho mỗi khung hình riêng lẻ

- Phương pháp giảm nhiễu hình thời gian, bằng phương pháp này nhiễu giữa các khung được giảm Bồi thường chuyển động có thể được sử dụng để tránh các hiện vật hiện tƣợng bóng ma khi pha trộn các pixel với nhau từ nhiều bức hình

- Phương pháp giảm nhiễu hình không gian-thời gian sử dụng một sự kết hợp của giảm nhiễu không gian và thời gian Điều này thường được gọi là 3D giảm nhiễu

- Trong miền không gian, các tín hiệu nhiễu đầu tiên được giải tương quan dữ liệu sử dụng

HVTH: Nguyễn Thị Thu Phúc 4 các phép biến đổi tuyến tính (sử dụng các phép biến đổi nhƣ wavelet, bộ lọc Wiener Bilateral, biến đổi DCT), sau đó các hệ số biến đổi của các tín hiệu gốc đƣợc khôi phục (bằng các lấy ngưỡng mềm hoặc cứng, bằng phương pháp ước lượng Bayesian)

- Có thể sử dụng phương pháp giảm nhiễu dựa trên những bộ lọc theo miền thời gian

- Một chuỗi video không chỉ chứa tương quan không gian mà còn chứa tương quan thời gian giữa các khung hình liên tiếp Phương pháp giảm nhiễu thời gian có thể loại bỏ được nhiễu gây ra bởi phương pháp không gian bằng cách theo dõi chuyển động của đối tượng thông qua các khung và do đó làm cho nhất quán theo thời gian nhất định

- Có hai loại công nghệ lọc theo thời gian: o Phát hiện chuyển động: chuyển động đƣợc phát hiện đầu tiên và sau đó một số hoạt động đặc biệt được thực hiện trong trường hợp phát hiện chuyển động Các máy dò chuyển động đánh giá sự khác biệt tuyệt đối giữa các giá trị điểm ảnh từ khung hiện tại và khung trước, nơi mà các điểm ảnh được coi là có vị trí không gian tương đương Nếu sự khác biệt tuyệt đối là trên một ngưỡng xác định trước thì thời gian lọc đƣợc tắt nếu không đệ quy thời gian trung bình của khung đƣợc thực hiện o Kỹ thuật ƣớc lƣợng chuyển động: cố gắng để khai thác tốt hơn các dự phòng thời gian đáng kể trong video bằng cách tạm thời làm mịn các giá trị điểm ảnh trên quỹ đạo chuyển động ước tính của chúng Nói chung, nó thường không thể hoặc không thực tế để xác định sự tương ứng về thời gian chính xác giữa các khung hình liên tiếp cho tất cả các pixel do sự vắng mặt của thông tin trong nội dung video (ví dụ, khớp cắn), hoăc do sự không hoàn hảo của dự toán chuyển động

Khi ƣớc lƣợng chuyển động không thành công, kỹ thuật lọc thời gian bù chuyển động có thể tạo nên những nhiễu hoặc bóng của vật.

Mục tiêu, nội dung luận văn

Xử lý nhiễu video được xem là một bước quan trong trong nhiều ứng dụng hiện nay và rất đƣợc quan tâm, đặc biệt là khả năng xử lý hình ảnh độ phân giải cao, đáp ứng thời gian thực Đây chính là lý do để học viên chọn và nghiên cứu đề này “Thiết kế và hiện thực lõi IP xử lý

HVTH: Nguyễn Thị Thu Phúc 5 nhiễu video 3 chiều” Mục tiêu đề tài là xây dựng và hiện thực một lõi IP xử lý nhiễu 3 chiều cho video

- Lọc nhiễu 3D thời gian thực 1080p@30 - Giao tiếp Avalon Streaming

- Tốc độ xung clock tối đa 120MHz - Tốc độ truyền 30M samples per second - Test theo yêu cầu chuẩn của Synopsys

Nội dung đề tài bao gồm các nội dung chính sau:

 Nghiên cứu và mô phỏng các giải thuật cho xử lý nhiễu 3 chiều cho video

 Đề xuất và phát triển giải thuật xử lý nhiễu cho video đáp ứng thời gian thực

 Thiết kế giải thuật trên cấu trúc phần cứng FPGA o Xây dựng sơ đồ khối thiết kế o Mô tả thiết kế giải thuật sử dụng ngôn ngữ mô tả phần cứng verilog

 Mô phỏng cấu trúc giải thuật trên modelsim o Xây dựng môi trường kiểm tra mô phỏng bằng ngôn ngữ verilog o Sử dụng phần mềm mô phỏng modesim để kiểm tra giải thuật thiết kế o So sánh đánh giá kết quả mô phỏng giải thuật trên phần cứng và phần mềm

 Hiện thực giải thuật trên kit FPGA o Hiện thực giải thuật trên kit FPGA o Đánh giá kết quả và khả năng đáp ứng xử lý thời gian thực

 Báo cáo và đánh giá kết quả đề tài

HVTH: Nguyễn Thị Thu Phúc 6

CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN

Công trình của Gijesh Varghese and Zhou Wang năm 2012 [4]

Hai tác giả khai thác vấn đề loại bỏ nhiễu trên video dựa vào model trộn tỉ lệ nhiễu Gaussian trên miền thời gian và không gian trong lĩnh vực biến đổi wavelet Mô hình này đồng thời nắm bắt các mối tương quan các hệ số wavelet của chuỗi video tự nhiên trên miền không gian và thời gian

Biểu đồ thuật toán của kỹ thuật loại bỏ nhiễu trong video với phương pháp ST-GSM nh 2-1 Biểu đồ thuật toán của phương pháp ST-GSM Ƣu điểm:

- Áp dụng ước lượng chuyển động có hiệu quả trong việc tăng cường các mối tương quan giữa hệ số wavelet thời gian lân cận và do đó, cải thiện hiệu suất của ST-GSM denoising

HVTH: Nguyễn Thị Thu Phúc 7 Nhƣợc điểm:

- Đầu tiên, việc thực hiện của phương pháp ST-GSM là khá chậm Ước tính sơ cho các tính toán phức tạp có thể đƣợc suy ra từ sự quan sát mà chƣa tối ƣu mã MATLAB chúng ta mất 120 s cho mỗi khung hình CIF Cần tối ƣu hóa thuật toán và phần mềm cần thiết để đẩy nhanh tiến độ các thuật toán Thứ hai, thuật toán hiện nay áp dụng cho mỗi kênh màu độc lập Loại nhiễu cho tất cả kênh màu chƣa phát huy đƣợc hiệu quả cao.

Công trình nghiên cứu của Seema Mishra, Preety D Swam năm 2013 [5]

Hai tác giả nghiên cứu về việc loại bỏ nhiễu video trên hai miền không gian và thời gian bằng viêc phát hiên chuyển động dựa trên khối

Trong nghiên cứu, lọc trên miền không gian của từng frame riêng biệt đƣợc thực hiện với biến đổi wavelet, và lọc giữa các frame thì đƣợc thực hiện bằng lọc thời gian Những nhiễu dƣ khác nhau giữa frame này với frame kia tạo nên những ảnh hưởng không mong muốn Vì vậy lọc nhiễu trong miền thời gian là cần thiết

Thuật toán trong nghiên cứu: nh 2-2 Biểu đồ cho thuật toán loại bỏ nhiễu trong video theo miền thời gian và tần số

HVTH: Nguyễn Thị Thu Phúc 8 Ƣu điểm và nhƣợc điểm:

- Nhờ có kỹ thuật kết hợp loại nhiễu trên miền thời gian và không gian nâng cao chất lƣợng ảnh Kết quả thực nghiệm chứng minh điều đó nh 2-3 Kết quả thưc nghiệm cho phương pháp của Seema Mishra, Preety D Swam năm 2013

- Nhƣợc điểm: hạn chế về thời gian thực

Công trình nghiên cứu của V K Nath an d D Hazarika (2012) [6]

Trong bài báo này, tác giả đề xuất một kỹ thuật giảm nhiễu video kết hợp lọc

Wiener-bilateral và lọc thời gian đệ quy có chọn lọc Sự kết hợp của biến đổi Wavelet dựa trên lọc Wiener và lọc miền không gian song phương được gọi là lọc Wiener-bilateral Trong phương pháp đề nghị, các bộ lọc Wiener-bilateral đƣợc sử dụng để lọc không gian nơi mà các thông số bộ lọc song phương được lựa chọn dựa trên nghiên cứu thực nghiệm Các phát hiện chuyển động và lọc theo thời gian đƣợc thực hiện trên các khung không gian lọc

Cấu trúc đề xuất của phương pháp lọc nhiễu video trong nghiên cứu

HVTH: Nguyễn Thị Thu Phúc 9 nh 2-4 Cấu trúc của phương pháp lọc nhiễu Wiener-bilateral

Kết quả thực ngiệm nh 2-5 Kết quả thực nghiệm cho phương pháp lọc nhiễu Wiener-bilateral Ƣu điểm và nhƣợc điểm:

Phương pháp đề xuất vượt trội hơn nhiều trạng thái hiện tại của các kỹ thuật giảm nhiễu video với lọc phi tuyến tính về PSNR và chất lượng hình ảnh Phương pháp được đề xuất khung hình video giảm nhiễu có chất lƣợng hình ảnh tốt với biến dạng ít hơn trong các v ng đồng nhất và xung quanh các cạnh

HVTH: Nguyễn Thị Thu Phúc 10

THIẾT KẾ CẤU TRÚC PHẦN CỨNG CHO IP XỬ LÝ NHIỄU VIDEO

Phương pháp đề nghị

- Đề tài sẽ thực hiện phương pháp loại bỏ nhiễu trong miền thời gian và không gian

- Trong miền không gian, sử dụng phương pháp biến đổi DCT lấy ngưỡng

- Trong miền thời gian, sử dụng phương pháp phát hiện chuyển động bằng cách so sánh với 2 frame trước và sau Nếu chuyển động sẽ áp dụng lọc Median, nếu không vẫn giữ nguyên giá trị cũ

Phép biến đổi cosine rời rạc – DCT (Discrete Cosine Transform) biến đổi thông tin ảnh từ miền không gian sang miền tần số Đặc điểm của phép biến đổi này là tín hiệu ảnh trong miền không gian chuyển sang miền tần số thì các thành phần DC và các thành phần AC mang hầu hết các thông tin chứa trong ảnh gốc Trong đó, DC là thành phần quan trọng nhất mang độ chói trung bình của ảnh, các thành phần AC chứa các thông tin về chi tiết của ảnh Sau đó, khi qua tầng lƣợng tử hoá, các hệ số ít quan trọng sẽ bị loại bỏ bớt và chỉ giữ lại một số hệ số hệ số đầu tiên gọi là hệ số

Các phép tính DCT đƣợc thực hiện trong phạm vi các khối 8×8 mẫu tín hiệu chói Y và các khối tương ứng của tín hiệu hiệu màu Việc chia hình ảnh thành các block đã được thực hiện ở khối tiền xử lý Hiệu quả của việc chia này rất dễ thấy Nếu ta tính toán DCT trên toàn bộ frame thì ta xem như toàn bộ frame có độ dư thừa như nhau Đối với một hình ảnh thông thường, một vài vùng có một số lƣợng lớn các chi tiết và các vùng khác có ít chi tiết Nhờ đặc tính thay đổi của các ảnh khác nhau và các phần khác nhau của cùng một ảnh, ta có thể cải thiện một cách đáng kể việc mã hóa nếu biết tận dụng nó

DCT một chiều biến đổi biên độ tín hiệu tại các điểm rời rạc theo thời gian hoặc không gian thành chuỗi các hệ số rời rạc, mỗi hệ số biểu diễn biên độ của một thành phần tần số nhất định có trong tín hiệu gốc Hệ số đầu tiên biểu diễn mức DC trung bình của tín hiệu Từ trái sang phải, các hệ số thể hiện các thành phần tần số không gian cao hơn của tín hiệu và đƣợc gọi là các hệ số AC Thông thường, nhiều hệ số AC có giá trị sẽ gần hoặc bằng 0

HVTH: Nguyễn Thị Thu Phúc 11 Quá trình biến đổi DCT thuận (FDCT) dùng trong tiêu chuẩn JPEG đƣợc định nghĩa nhƣ sau:

Hàm biến đổi DCT ngƣợc (một chiều): trong đó: X(k) là chuỗi kết quả x(m) là giá trị của mẫu m k-chỉ số của hệ số khai triển m-chỉ số của mẫu

N- số mẫu có trong tín hiệu

3.1.1.2 DCT hai chiều Để tách tương quan nội dung ảnh cao hơn, mã hóa DCT hai chiều (2-D) được dùng cho các khối 8×8 giá trị các điểm chói Quá trình biến đổi DCT tiến FDCT (forward DCT) dùng trong tiêu chuẩn JPEG đƣợc định nghĩa nhƣ sau: trong đó: f(j,k)- các mẫu gốc trong khối 8×8 pixel

F(u,v)-các hệ số của khối DCT 8×8

Phương trình trên là một liên kết của hai phương trình DCT một chiều, một cho tần số ngang và một cho tần số đứng Giá trị trung bình của block 8x8 chính là hệ số thứ nhất (khi u,v= 0)

HVTH: Nguyễn Thị Thu Phúc 12 Phương trình này cộng tất cả các giá trị pixel trong khối 8×8 và chia kết quả cho 8 Kết quả phép tính bằng 8 lần giá trị pixel trung bình trong khối Do đó hệ số thứ nhất đƣợc gọi là 125 hệ số DC Các hệ số khác, dưới giá trị thành phần một chiều, biểu diễn các tần số cao hơn theo chiều dọc Các hệ số ở về phía bên phải của thành phần một chiều biểu thị các tần số cao hơn theo chiều ngang Hệ số trên cùng ở cận phải (0,7) sẽ đặc trƣng cho tín hiệu có tần số cao nhất theo phương nằm ngang của ma trận 8×8, và hệ số hàng cuối bên trái (7,0) sẽ đặc trưng cho tín hiệu có tần số cao nhất theo phương thẳng đứng Còn các hệ số khác ứng với những phối hợp khác nhau của các tần số theo chiều dọc và chiều ngang

Phép biến đổi DCT hai chiều là biến đổi đối xứng và biến đổi nghịch có thể tạo lại các giá trị mẫu f(j,k) trên cơ sở các hệ số F(u,v) theo công thức sau:

Nhƣ vậy, biến đổi DCT giống nhƣ biến đổi Fourier và các hệ số F(u,v) cũng giống nhau về ý nghĩa Nó biểu diễn phổ tần tín hiệu đƣợc biễu diễn bằng các mẫu f(j,k) Bản thân phép biến đổi DCT không nén đƣợc số liệu, từ 64 mẫu ta nhận đƣợc 64 hệ số Tuy nhiên, phép biến đổi DCT thay đổi phân bố giá trị các hệ số so với phân bố các giá trị mẫu

Do bản chất của tín hiệu video, phép biến đổi DCT cho ta giá trị DC tức F(0,0) thường lớn nhất và các hệ số trực tiếp kề nó ứng với tần số thấp có giá trị nhỏ hơn, các hệ số còn lại ứng với tần số cao có giá trị rất nhỏ

Hình 3-1 là một ví dụ minh họa quá trình DCT hai chiều của một khối 8×8 điểm ảnh (chói) đƣợc trích ra từ một ảnh thực Nếu dùng quá trình DCT cho các tín hiệu số thành phần Y, CR,CB thì các tín hiệu CB,CR có biên độ cực đại ±128 ( giá trị nhị phân trong hệ thống lấy mẫu 8 bit), còn tín hiệu Y có một khoảng cực đại từ 0 đến 255 giá trị nhị phân Để đơn giản việc thiết kế bộ mã hóa DCT, tín hiệu Y được dịch mức xuống dưới bằng cách trừ 128 từ từng giá trị pixel trong khối để có khoảng cực đại của tín hiệu giống nhƣ đối với các tín hiệu CR và CB Ở phần giải mã DCT, giá trị này (128) đƣợc cộng vào các giá trị pixel chói

Giá trị hệ số DC của khối DCT có một khoảng từ –1024 đến 1016

HVTH: Nguyễn Thị Thu Phúc 13 nh 3-1 Mã hóa khối 8x8 bằng DCT hai chiều

Khi nén ảnh theo JPEG, ma trận các hệ số khai triển sau DCT phải đƣợc nhân với bảng trọng số Q(u,v) để loại bỏ một phần các hệ số có biên độ nhỏ (thường là các tàhnh phần cao tần) Trên Hình 3-2 mô tả quá trình biến đổi DCT từ ảnh gốc (a) và ma trận hệ số DCT trước (b) và sau (d) khi nhân với Q(u,v) (c)

HVTH: Nguyễn Thị Thu Phúc 14 nh 3-2 Khai triển DCT và bảng trọng số Q(u,v)

Tóm lại, DCT làm giảm độ tương quan không gian của thông tin trong block Điều đó cho phép biễu diễn thích hợp ở miền DCT do các hệ số DCT có xu hướng có phần dư thừa ít hơn Điều này có nghĩa là DCT gói một phần lớn năng lƣợng tín hiệu vào các thành phần biến đổi có tần số tương đối thấp để lưu trữ hoặc truyền dẫn, tạo 0 và các giá trị rất thấp đối với thành phần tần số cao Nhờ đặc tính của hệ thống nhìn của mắt người, các hệ số DCT có thể được mã hóa phù hợp, chỉ các hệ số DCT quan trọng nhất mới đƣợc mã hóa và truyền đi DCT thuận kết hợp với DCT nghịch sẽ không cho tổn thất nếu độ dài từ mã của hệ số là 13 đến 14 bits cho tín hiệu video đầu vào đƣợc số hóa bằng các mẫu dài 8 bit Nếu hệ số đƣợc lƣợng tử hóa bằng 11 bit (hoặc ngắn hơn), thì nén bằng DCT sẽ có tổn hao

HVTH: Nguyễn Thị Thu Phúc 15

Trong xử lý tín hiệu, Median filter thường được sử dụng để loại nhiễu trên một hình ảnh hoặc tín hiệu Median filter là kỹ thuật lọc số phi tuyến Median filter làm giảm nhiễu nhƣ một bước tiền xử lý điển hình để cải thiện kết quả của bước xử lý phía sau (ví dụ, phát hiện cạnh trên một hình ảnh) Median filter đƣợc sử dụng rộng rãi trong xử lý hình ảnh kỹ thuật số bởi vì, trong điều kiện nhất định, nó bảo tồn cạnh khi loại bỏ nhiễu

3.1.2.1 Ứng dụng Median filter trong lọc nhiễu hình ảnh và video tưởng chính của thuật toán lọc Median như sau: ta sử dụng một cửa sổ lọc (ma trận 3x3) quét qua lần lƣợt từng điểm ảnh của ảnh đầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong v ng 3x3 của ảnh gốc "lấp" vào ma trận lọc Sau đó tìm điểm giữa (median) trong ma trận này Cuối c ng, gán điểm ảnh này cho giá trị điểm ảnh đang xét của ảnh đầu ra output nh 3-3 tư ng lọc nhiễu d ng Median filter

3.1.2.2 THUẬT TOÁN VÀ MÔ HÌNH GIẢI THUẬT Thuật toán thực hiện Median filter đề xuất

HVTH: Nguyễn Thị Thu Phúc 16

- Thuật toán chi tiết + Giai đoạn 1: Sắp xếp 3 nhóm theo thứ tự lớn, vừa và nhỏ

HVTH: Nguyễn Thị Thu Phúc 17 nh 3-4 Giai đoạn 1: sắp xếp 3 nhóm theo thứ tự vừa và nhỏ

+ So sánh loại bỏ các phần tử không phải là Median nh 3-5 Giai đoạn 2: loại bỏ các phần tử không phải là MEDIAN

- Giai đoạn 3: Tìm thành phần median từ các thành phần có thể là median ở các tầng trên

HVTH: Nguyễn Thị Thu Phúc 18 nh 3-6 Tìm MEDIAN

3.1.3 Hệ thống đề nghị Đề tài xây dựng hệ thống hiện thực giải thuật xử lý nhiễu video 3 chiều

Mô tả tổng quan thiết kế trên cấu trúc phần cứng

3.3.1 Yêu cầu chi tiết thiết kế Để hiện thực hệ thống xử lý nhiễu video 3 chiều thời gian thực trên FPGA, đề tài cần thiết kế một IP để hiện thực giải thuật giảm nhiễu video 3 chiều dựa trên phương pháp phân tích DCT lấy ngƣỡng và lọc MEDIAN IP đƣợc thiết kế theo chuẩn giao tiếp Avalon ST video để có thể ghép nối với các IP khác trong hệ thống SOPC của phần mềm quartus Ngoài ra, IP cũng sử dụng giao tiếp Avalon MM master để giao tiếp đọc, ghi dữ liệu xuống bộ nhớ ngoài DDR Bảng 1 mô tả chi tiết các yêu cầu thiết kế IP hiện thực giải thuật Hình 3-9 mô tả sơ đồ khối tổng quát của IP đƣợc thiết kế trong đề tài này Chi tiết thiết kế của IP này sẽ đƣợc mô tả ở phần 3.2

Bảng 1: Bảng mô tả thông số thiết kế IP

STT Đặc điểm Mô tả

1 Tần số hoạt động 134 Mhz 2 Chuẩn giao tiếp Avalon ST Video

HVTH: Nguyễn Thị Thu Phúc 21

Avalon MM master: Giao tiếp bộ nhớ 3 Không gian màu Ảnh xám Gray

P re v io u s fr am e C u rr en t fr am e nh 3-9 Sơ đồ khối tổng quát thiết kế IP giảm nhiễu video 3 chiều

3.3.2 Giới thiệu một số chuẩn bus của hãng altera

3.3.2.1 Tìm hiểu Avalon Streaming (Avalon-ST) [9]

Avalon là chuẩn giao tiếp do hãng Altera đề xuất để sử dụng trong hệ thống SOPC trên chip FPGA do hãng sản xuất Trong giao tiếp Avalon, có hai loại giao tiếp chính là Avalon Memory Mapped (Avalon-MM) là phương thức giao tiếp hai chiều giữa master và slave dựa trên phương pháp định địa chỉ ô nhớ và Avalon Streaming (Avalon-ST) là phương thức giao tiếp một chiều tốc độ cao, thường d ng trong việc truyền data dung lượng lớn, cần tốc độ cao

Avalon Streaming (Avalon-ST) là giao tiếp luồng dữ liệu có sự hỗ trợ của tín hiệu backpressure Avalon-ST đƣợc sử dụng cho những hệ thống đòi hỏi truyền dữ liệu tốc độ cao, độ

HVTH: Nguyễn Thị Thu Phúc 22 trễ thấp, truyền không cần địa chỉ, truyền theo một chiều Avalon-ST có thể truyền nhiều luồng, nhiều gói dữ liệu Avalon-ST sử dụng một số khái niệm cơ bản sau:

 Avalon Streaming System: Là một hệ thống có chứa một hoặc nhiều kết nối Avalon-ST mà dữ liệu chuyển từ một giao tiếp source sang giao tiếp sink

 Avalon Streaming Components: Các thành phần trong hệ thống sử dụng giao tiếp Avalon-

ST có những chức năng khác nhau được gọi là các Avalon-ST components Người thiết kế hệ thống sẽ cấu hình các Avalon-ST và kết nối chúng lại với nhau để tạo thành một hệ thống thực hiện một chức năng nhất định nào đó

 Source và Sink Interfaces: Source là nơi luồng dữ liệu đƣợc gửi đi và sink là đích đến của luồng dữ liệu

 Backpressure: là một cơ chế mà theo đó, một sink có thể báo hiệu cho một source để ngăn chặn việc gửi dữ liệu Tiêu biểu, components sử dụng tín hiệu này để ngăn chặn luồng của dữ liệu khi FIFOs của nó có đầy hoặc khi có tắc nghẽn trên cổng đầu ra của nó Hỗ trợ cho backpressure là tùy chọn

 Transfers and Ready Cycles: transfers là một hoạt động có kết quả trong truyền dữ liệu và kiểm soát từ một giao tiếp source cho một giao tiếp sink Đối với các giao tiếp dữ liệu, Ready

Cycles là một chu kỳ trong đó các sink có thể chấp nhận chuyển tiếp

 Symbol: là đơn vị nhỏ nhất của dữ liệu Đối với hầu hết các giao tiếp theo packet, Symbol là một byte Một hoặc nhiều Symbol hình thành đơn vị dữ liệu đƣợc truyền trong một chu kỳ

 Channel: là một đường dẫn vật lý hay luận lý hoặc liên kết thông qua đó thông tin đi qua giữa hai cổng

 Packet: là một tập hợp dữ liệu và tín hiệu điều khiển đƣợc truyền với nhau Một packet có thể chứa một header để giúp các thiết bị định tuyến và các thiết bị mạng khác chuyển tiếp các gói tin đến đích chính xác Avalon-ST packet có thể có chiều dài thay đổi, việc sử dụng packet là tùy chọn

Avalon-ST có những tín hiệu cơ bản nhƣ sau:

 Ready: Sink-> Source: là tín hiệu phản hồi (backpressure) từ Sink cho biết Sink đã sẵn sàng chƣa

 Valid: Source -> Sink: Báo là tín hiệu gửi trên bus là có hiệu lực

 Data: Source -> Sink: Đường truyền dữ liệu

 Channel: Source -> Sink: Để báo cho Sink biết dữ liệu đang truyền là thuộc kênh nào (trong trường hợp truyền nhiều kênh đen xen nhau)

HVTH: Nguyễn Thị Thu Phúc 23

 Starofpacket: Source -> Sink: Tín hiệu lên tích cực trong một chu kỳ để báo cho Sink biết là bắt đầu truyền một packet

 Endofpacket: Source -> Sink: Tín hiệu tích cực trong một chu kỳ báo cho Sink biết là kết thúc quá trình truyền một packet

 Empty: Source-> Sink: Báo cho biêt là có bao nhiêu gói rỗng trong một khối dữ liệu đƣợc truyền tới

 Error: Source-> Sink: Báo cho bên sink biết là dữ liệu đang gửi bị lỗi

Các phương thức truyền dữ liệu:

Trong truyền dữ liệu theo chuẩn Avalon-ST, ta có các phương thức truyền như sau:

 Truyền dữ liệu trực tiếp, không có tín hiệu backpressure

 Truyền dữ liệu trực tiếp, có tín hiệu backpressure

 Truyền dữ liệu theo packet

Truyền dữ liệu trực tiếp, không có backpressure: Backpressure là cách thức phản hồi của Sink cho Source để dừng việc truyền dữ liệu, khi Sink không thể xử lý tín hiệu gửi tới nữa Các tín hiệu sử dụng trong phương thức truyền này gồm: data, channel, valid và error Trong giao thức này khi valid tích cực thì sink sẽ lấy mẫu dữ liệu tại cạnh lên của clock nh 3-10 Phương thức truyền dữ liệu trực tiếp của Video Avalon

Hình 3-10 mô tả phương thức truyền dữ liệu trực tiếp, không có backpressure, dữ liệu được gửi trực tiếp từ Source tới Sink, mỗi khi valid tích cực, sẽ có dữ liệu đƣợc gửi truyền

Truyền dữ liệu trực tiếp, có tín hiệu backpressure: Các chân tín hiệu sử dụng trong phương thức truyền này gồm có: data, ready, valid, channel, error Chân ready hướng từ sink-> source để báo cho source biết là nó chưa sẵn sàng thực hiện trao đổi dữ liệu Trong phương thức này sử dụng một thông số quan trọng là ready latency, thông số này cho biết số chu kỳ từ lúc ready tích cực cho đến khi có dữ liệu hợp lệ trên đường truyền Đây cũng là số chu kỳ mà Sink vẫn có thể nhận dữ liệu sau khi tín hiệu ready không còn tích cực

HVTH: Nguyễn Thị Thu Phúc 24 nh 3-11 Phương thức truyền dữ liệu trực tiếp của Video Avalon có backpressure

Hình 3-11 mô tả phương thức truyền dữ liệu trực tiếp, có tín hiệu backpressure với readyLatency = 1 Ta thấy khi ready tích cực, một chu kì sau, valid mới có thể tích cực do readyLatency = 1 Cũng vì readyLatency = 1, sau khi ready không tích cực, trong vòng một chu kì tiếp theo, valid vẫn có thể tích cực và dữ liệu D4 vẫn đƣợc gửi

Truyền dữ liệu theo packet: Khi sử dụng phương thức truyền dữ liệu theo packet, dữ liệu sẽ đƣợc truyền theo một gói gồm nhiều dữ liệu liên tiếp nhau, do đó cần thêm các tín hiệu để xác định vị trí bắt đầu và kết thúc gói dữ liệu Các tín hiệu đƣợc sử dụng thêm vào: startofpacket, endofpacket, empty

 Startofpacket: tín hiệu này tích cực trong một chu kỳ để đánh dấu chu kỳ bắt đầu của một gói dữ liệu đƣợc truyền đi Tín hiệu này chỉ đƣợc hiểu khi tín hiệu valid đƣợc tích cực

Mô tả chi tiết thiết kế

Để thực hiện giải thuật giảm nhiễu video 3 chiều dựa trên phân tích DCT theo ngƣỡng và loc MEDIAN, IP cần giao tiếp với bộ nhớ ngoài để lưu nội dung của frame trước đó, đồng thời giao tiếp với camera để đọc dữ liệu hình ảnh ở khung hình hiện tại Trong đề tài này, IP giảm nhiễu video đƣợc thiết kế chuẩn giao tiếp Avalon ST video để đọc dữ liệu ở khung hình hiện tại và hiển thị kết quả xử lý Dữ liệu của khung hình trước đó được lưu vào bộ nhớ ngoài DDR2 thông qua chuẩn Avalon MM master Các yêu cầu đặt ra để thiết kế đƣợc IP này là:

HVTH: Nguyễn Thị Thu Phúc 31 - Thiết kế các khối giao tiếp để giao tiếp các chuẩn Avalon ST video và Avalon MM master

- Giao tiếp, điều khiển bộ nhớ ngoài DDR2 để những frame trước

- Hiện thực giải thuật giảm nhiễu video trên phần cứng

- Thiết kế theo cấu trúc đường ống để hệ thống có thể đáp ứng xử lý thời gian thực

Từ các yêu cầu trên, Học viên đƣa ra sơ đồ khối tổng quát điều khiển luồng dữ liệu của IP cần thiết kế Hình 3-18 mô tả sơ đồ khối tổng quát của IP giảm nhiễu video 3 chiều Các khối

Sink control, Source control sẽ thực hiện nhiệm vụ giao tiếp chuẩn Avalon ST video, khối AMM master thực hiện giao tiếp với bộ nhớ ngoài DDR2 để lưu dữ liệu của khung hình trước đó Dữ liệu ngõ vào và những dữ liệu trước đó sẽ được đọc đồng thời vào khối core để thực hiện giải thuật giảm nhiễu video 3 chiều Kết quả xử lý xong sẽ đƣợc hiển thị ra ngoài màn hình core data_reader data_writer

AMM master source control sink control data controller

DDR2 Memory input stream output stream model input output update nh 3-18 Sơ đồ khối tổng quát luồng dữ liệu của IP giảm nhiễu video 3 chiều

Thiết kế IP xử lý nhiễu video 3 chiều đƣợc chia làm 4 khối chính, đƣợc mô tả ở Hình 3-19

Các khối này bao gồm:

 Sink control: giao tiếp chuẩn Avalon ST video sink

 Source control: giao tiếp chuẩn Avalon ST video source

 Data controller: điều khiển dữ liệu và thực hiện giải thuật giảm nhiễu video

 Avalon MM master control: điều khiển giao tiếp đọc, ghi dữ liệu ra bộ nhớ ngoài

HVTH: Nguyễn Thị Thu Phúc 32 Nguyên lý hoạt động của IP đƣợc mô tả nhƣ sau: khối data controller đóng vai trò làm trung tâm để điều khiển luồng dữ liệu vào, ra, dữ liệu xử lý, và dữ liệu đọc, ghi xuống bộ nhớ ngoài

Ban đầu, khối sink control sẽ giao tiếp với IP trước đó để lấy dữ liệu ngõ vào và ghi vào

FIFO_sink, đây chính là dữ liệu ngõ vào của thông tin khung hình hiện tại Đồng thời khối Avalon MM master control sẽ giao tiếp đọc dữ liệu thông tin dữ liệu trước đó từ bộ nhớ ngoài và lưu vào bộ FIFO_read Khối data controller kiểm tra, khi dữ liệu ngõ vào khung hình hiện tại và khung hình trước đó đều sẵn sàng có trong FIFO thì sẽ điều khiển yêu cầu đọc dữ liệu từ FIFO để xử lý Sau khi xử lý xong, kết quả dữ liệu ngõ ra sẽ được lưu vào bộ FIFO_src, dữ liệu của khung hình trước đó sẽ được ghi vào bộ FIFO_write Khối AMM master control sẽ đọc dữ liệu từ bộ FIFO_write để ghi vào bộ nhớ ngoài Khối source control sẽ đọc dữ liệu từ bộ FIFO_src để truyền dữ liệu tới IP khác để hiện thị kết quả xử lý Mô tả chi tiết các khối đƣợc trình bày ở các phần tiếp theo

HVTH: Nguyễn Thị Thu Phúc 33

ST fifo_data 8 fifo_empty fr am eb _d at a0

8 fr am eb _v al id 0 fr am eb _d at a1 fr am eb _v al id 1

AVALON ST co re _d at a

AVALON MM fifo_data 8 fifo_full write co re _v al id fr am eb _d at a2 fr am eb _v al id 2

8 8 nh 3-19 Sơ đồ khối chi tiết cấu trúc IP giảm nhiễu video 3 chiều

Tín hiệu vào, ra của IP sử dụng hai chuẩn bus là Avalon ST Video (asi_data, aso_data) và Avalon MM master (write master, read_master) Bảng 8 mô tả chi tiết các tín hiệu vào ra, và Bảng 9 mô tả các tham số cài đặt cho IP xử lý nhiễu video 3 chiều

Bảng 7: Bảng mô tả chi tiết tín hiệu vào ra của IP xử lý nhiễu video 3 chiều

STT Tên tín hiệu Độ rộng Mô tả

1 clock 1 Xung clock ngõ vào

2 reset 1 Tín hiệu reset tích cực mức cao

3 asi_ready 1 Các tín hiệu thuộc chuẩn bus

HVTH: Nguyễn Thị Thu Phúc 34

4 asi_valid 1 Avlon ST video ngõ vào

7 asi_data SYMBOL_PER_BEAT

8 aso_ready 1 Các tín hiệu thuộc chuẩn bus

Avlon ST video ngõ ra

12 aso_data SYMBOL_PER_BEAT

* BITS_PER_SYMBOL 13 master_read_waitrequest 1 Các tín hiệu chuẩn bus

Avalon MM master giao tiếp đọc dữ liệu từ bộ nhớ ngoài 14 master_read_readdatavalid 1

15 master_read_readdata DATAWIDTH 16 master_read_address ADDRESSWIDTH 17 master_read_read 1

18 master_read_byteenable BYTEENABLEWIDTH 19 master_read_burstcount BURSTCOUNTWIDTH 20 master_write_waitrequest 1 Các tín hiệu chuẩn bus

Avalon MM master giao tiếp ghi dữ liệu xuống bộ nhớ ngoài

21 master_write_address ADDRESSWIDTH 22 master_write_write 1

23 master_write_byteenable BYTEENABLEWIDTH 24 master_write_writedata DATAWIDTH

Bảng 8: Bảng cài đặt tham số cho IP xử lý nhiễu video 3 chiều

1 HEIGHT 24 Thông tin chiều cao khung hình

2 WIDTH 32 Thông tin chiều rộng khung hình

HVTH: Nguyễn Thị Thu Phúc 35 3 SYMBOL_PER_BEAT 3 Số symbol trong chuẩn Avalon ST video 4 BITS_PER_SYMBOL 8 Độ rộng bit của mỗi symbol

5 MEAN_WIDTH 8 Độ rộng bit của giá trị trung bình mean 6 VAR_WIDTH 8 Độ rộng bit của giá trị phương sai VAR 7 DATAWIDTH 128 Độ rộng đường dữ liệu đọc, ghi từ bộ nhớ ngoài 8 MAXBURSTCOUNT 16 Số beat lớn nhất trong 1 burst Giá trị này phải lớn hơn một nữa giá trị FIFODEPTH

10 BYTEENABLEWIDTH 16 DATAWIDTH/8 11 ADDRESSWIDTH 32 Độ rộng của bus địa chỉ 12 FIFODEPTH 128 Độ sâu của fifo lưu dữ liệu đọc/ghi từ bộ nhớ ngoài 13 FIFODEPTH_LOG2 7 Log2(FIFODEPTH) 14 FIFOUSEMEMORY 1 1: Sử dụng bộ nhớ nội trên chip làm bộ đệm

0: sử dụng cổng logic làm bộ đệm

Khối Sink Contro có chức năng giao tiếp chuẩn Avalon ST video sink, đƣợc kết nối với bus Avalon ST video souce của các IP khác Khối này đƣợc chia làm hai khối chính: sink_interface và FIFO_sink sink_control din_ready din_valid din_startofpacket din_endofpacket din_data[23:0] din_data[23:0] almost_empty rdreq width[15:0] height[15:0]

FIFO sink nh 3-20 Sơ đồ khối Sink Control

Khối sink_interface có nhiệm vụ giao tiếp chuẩn Avalon ST video sink và chuyển sang dữ liệu RAW Dữ liệu này sau đó sẽ được lưu vào bộ FIFO_sink để xử lý cho bước tiếp theo Độ

HVTH: Nguyễn Thị Thu Phúc 36 sâu của bộ FIFO này được chọn t y thuộc vào kích thước của khung hình Thông thường giá trị này đƣợc chọn bằng với độ rộng của khung hình ngõ vào Ngoài ra, khối này cũng đƣa ra thông tin chiều rộng và chiều cao của thông tin video ngõ vào, điều này rất thuận tiện cho việc xử lý video có kích thước thay đổi Chức năng các tín hiệu vào ra của khối Sink Control được mô tả ở Bảng 9 sink_interface

FIFO sink wrreq data[23:0] full

Sink Control din_ready din_valid din_startofpacket din_endofpacket din_data[23:0] data_in[23:0] almost_empty height[15:0] width[15:0] nh 3-21 Sơ đồ chi tiết khối Sink Control Bảng 9: Bảng mô tả chức năng tín hiệu khối Sink Control

STT Tên tín hiệu Kiểu Độ rộng Mô tả

Các tín hiệu chuẩn Avalon Sink ngõ vào

6 rdreq_sink, Input 1 Tín hiệu yêu cầu đọc dữ liệu từ bộ FIFO

7 almost_empty_sink output 1 Tín hiệu báo trống dữ liệu trong

Dữ liệu ngõ ra của bộ FIFO, khi tín hiệu rdreq_sink tích cực mức 1, sau 1 chu kỳ xung clock, dữ liệu ngõ ra sẽ hợp lệ trên tin hiệu

HVTH: Nguyễn Thị Thu Phúc 37 này

10 height output 16 Thông tin chiều cao khung hình

11 width ouput 16 Thông tin chiều rộng khung hình

Hình 3-19 mô phỏng dạng sóng của bộ sink control tại thời điểm ban đầu bắt đầu nhận dữ liệu từ bộ source của IP trước đó Ban đầu, gói control được gửi đến để gửi thông tin về dữ liệu video Thông tin kích thước khung hình trong trường hợp mô phỏng này là h*w = 78H *a0H

Sau khi nhận đƣợc gói control là dữ liệu RAW data đƣợc gửi đến, tín hiệu valid sink sẽ bật lên

„1‟ để ghi dữ liệu data_sink vào bộ FIFO_sink Hình 3-22 mô tả hành vi ghi dữ liệu vào FIFO và đọc dữ liệu từ FIFO của bộ này vào ra xử lý Bộ FIFO_sink đƣợc cấu hình với độ trễ là 1 chu kỳ xung clock nh 3-22 Giản đồ xung trạng thái ngõ vào bộ sink control fdfgsg Control packet data packet

HVTH: Nguyễn Thị Thu Phúc 38 nh 3-23 Giản đồ xung ghi dữ liệu vào FIFO sink, (1) thời điểm ghi dữ liệu vào fifo, (2) thời điểm đọc dữ liệu từ fifo

MÔ PHỎNG KIỂM TRA THIẾT KẾ

Mô hình kiểm tra thiết kế

Mô hình kiểm tra thiết kế đƣợc sử dụng mô hình UVM trong bài báo [11] của tác giả Nguyen Duc An top environment video agent packet agent physical agent raw video

DUT scoreboard nh 4-1 Sơ đồ khối tổng quát của gói VIP

Hình 4-1 là sơ đồ khối tổng quát của mô hình kiểm tra thiết kế IP Dữ liệu ngõ vào đƣợc đọc từ file RAW video, sau khi xử lý, kết quả được lưu ở hai dạng là RAW video và dữ liệu dạng song (file *.wlf)

HVTH: Nguyễn Thị Thu Phúc 55 Do đặc tính dữ liệu Video Avalon, để dễ dàng quản lý dữ liệu trong testbench, ta chia gói VIP thành ba layers như trên, mỗi agent tương ứng với một layer sẽ đảm nhiệm một chức năng khác nhau trong quá trình xử lý dữ liệu giữa mức high-level và mức tín hiệu Từ sơ đồ ta thấy gói VIP gồm các thành phần nhƣ sau:

Một UVM testbench khi sử dụng gói VIP này sẽ cần ít nhất hai luồng dữ liệu, do đó, cần ít nhất hai video agent, hai packet agent, hai physical agent Một luồng để gửi dữ liệu xuống DUT, một bên ngƣợc lại để đọc dữ liệu từ DUT

Video agent: là lớp trên cao nhất trong gói VIP, có nhiệm vụ xử lý raw video, chuyển đổi giữa raw video và các packet theo đúng giao thức Video Avalon, cụ thể là control data packet và video data packet Nếu thuộc luồng dữ liệu gửi tới DUT, video agent sẽ đọc file spc và tạo ra control data packet theo các thông số trong file spc, sau đó video agent sẽ đọc dữ liệu từ raw video và đóng gói thành video data packet Mỗi frame hình của raw video sẽ ứng với một control data packet và video data packet Nếu thuộc luồng dữ liệu từ ngõ ra của DUT, video agent có nhiệm vụ ngƣợc lại, chuyển các video data packet thành raw video và chuyển các control data packet thành file spc Ngoài ra, video agent còn có chức năng chuyển các packet nhận đƣợc từ ngõ ra của DUT sang cho scoreboard

Packet agent: nếu thuộc luồng dữ liệu gửi tới DUT, packet agent có nhiệm vụ nhận các gói packet từ video agent gửi xuống và chuyển thành các tín hiệu tương ứng với với các tín hiệu trên DUT nhƣ starofpacket, endofpacket, error, data và gửi các dữ liệu này xuống lớp physical agent

Nếu thuộc luồng dữ liệu từ ngõ ra của DUT, packet agent có nhiệm vụ ngƣợc lại, đọc dữ liệu nhận đƣợc từ physical agent, đóng gói thành các packet (gồm control data packet và video data packet) sau đó gửi lên video agent

Physical agent: có nhiệm vụ giao tiếp với DUT Nếu thuộc luồng dữ liệu gửi tới DUT, physical agent có nhiệm vụ chuyển các dữ liệu nhận đƣợc từ packet agent sang các tín hiệu tương ứng với DUT, đồng thời, physical agent sẽ randomize số chu kỳ tích cực của tín hiệu

HVTH: Nguyễn Thị Thu Phúc 56 value Nếu thuộc luồng dữ liệu nhận đƣợc từ DUT, physical agent có nhiệm vụ ngƣợc lại, đọc các tín hiệu từ chân tín hiệu của DUT và gửi dữ liệu tới packet agent, ngoài ra, physical agent lúc này sẽ randomize số chu kỳ tích cực của tín hiệu backpressure là tín hiệu ready

Scoreboard: có nhiệm vụ thu nhận dữ liệu là các packet từ video agent Có ít nhất hai luồng dữ liệu đƣa vào scoreboard, một luồng dữ liệu gửi tới DUT, một luồng dữ liệu từ ngõ ra của DUT Trong scoreboard có thể thiết kế một bộ predictor, giống nhƣ một model mẫu có chức năng giống với chức năng mà DUT đƣợc thiết kế, bộ predictor này nhận dữ liệu ngõ vào giống nhƣ DUT Ta d ng ngõ ra của bộ predictor để so sánh với dữ liệu ngõ ra của DUT Bộ predictor này đƣợc thiết kế theo chức năng mong muốn của DUT, khi thiết kế, ta phải đảm bảo ngõ ra của bộ predictor là chính xác thì mới d ng ngõ ra này để kiểm tra dữ liệu của DUT

Environment: sẽ là nơi các video agent class, packet agent class, physical agent class, scoreboard class đƣợc khởi tạo Đồng thời environment sẽ kết nối các agent với nhau và kết nối video agent với scoreboard

Top: có nhiệm vụ kết nối IP kiểm tra (viết tắt là DUT) với testbench, trong mô hình này, DUT đƣợc kết nối với testbench thông qua BFM.

Phương pháp mô phỏng

Để mô phỏng IP, dữ liệu đầu vào đƣợc lấy từ một video, sau đó chuyển dữ liệu sang kiểu RAW để đƣa vào hệ thống mô phỏng Sau khi mô phỏng xong, ta đƣợc một file raw video, và dữ liệu dạng sóng Sử dụng phần mềm để chuyển dữ liệu từ kiểu raw sang kiểu avi để xem kết quả

Trong đề tài luận văn này, Học viên mô phỏng dữ liệu video với kích thước 160x120.

Kết quả mô phỏng IP

nh 4-2 Dữ liệu video ngõ vào dưới dạng txt file

HVTH: Nguyễn Thị Thu Phúc 57 nh 4-3 Giao diện chương tr nh mô phỏng IP trên phần mềm Modelsim nh 4-4 Dữ liệu video ngõ ra dưới dạng text file

4.3.1 Dạng sóng khối sink control

Hình 4.5 mô tả dạng sóng mô phỏng của bộ giao tiếp sink control Hình 4-6 mô tả dạng sóng nhận gói paket control Ở thời điểm này, thông tin chiều rộng và chiều cao sẽ có đƣợc thông sau nhận đƣợc gói control Sau đó, là dữ liệu bắt đầu đƣợc nhận, bắt đầu từ pixel đầu tiên có giá trị 282828H Giá trị dữ liệu ngõ vào đƣợc đọc từ file text có cấu trúc nhƣ đƣợc mô tả ở Hình 4-2

Dữ liệu sau khi giao tiếp được lưu vào bộ FIFO_sink Tín hiệu rdreq_sink được yêu cầu từ bộ data controller, FIFO đƣợc cấu hình có độ trễ là 1 xung clock Điều này có nghĩa là sau khi

HVTH: Nguyễn Thị Thu Phúc 58 rdreq_sink lên 1, thì sau 1 chu kỳ xung clock sẽ có dữ liệu ở tín hiệu dout_data_sink Khi tín hiệu almost_empty_sink lên „1‟ để báo dữ liệu trong FIFO bị trống, thì tín hiệu rdreq_sink sau đó sẽ xuống mức „0‟ để ngƣng đọc dữ liệu từ FIFO nh 4-5 Dạng sóng khối sink control nh 4-6 Thời điểm nhận gói packet control

HVTH: Nguyễn Thị Thu Phúc 59 nh 4-7 Yêu cầu đọc dữ liệu từ khối data controller nh 4-8 Dữ liệu trong FIFO bị trống, tín hiệu rdreq_sink sẽ xuống mức 1

4.3.2 Dạng sóng khối source control

Hình 4-9 mô phỏng dạng sóng của khối Source control.Khi có dữ liệu xử lý đƣợc ghi vào bộ FIFO_src, khối source interface sẽ yêu cầu đọc dữ liệu từ bộ FIFO này và chuyển dữ liệu sang kiểu Avalon ST Video Ban đầu, một gói packet control sẽ đƣợc gửi đi để truyền các thông tin về khung hình cho khối nhận biết Khi FIFO_src bị tràn, tín hiệu din_almost_full sẽ lên „1‟ để báo cho khối xử lý data controller tạm dừng đề không ghi dữ liệu vào FIFO nữa

HVTH: Nguyễn Thị Thu Phúc 60 nh 4-9 Dạng sóng khối source control nh 4-10 Ghi dữ liệu vào bộ FIFO_src

HVTH: Nguyễn Thị Thu Phúc 61 nh 4-11 Dạng sóng truyền packet control nh 4-12 Dạng sóng khi bộ FIFO bị tràn

4.3.3 Dạng sóng khối data controller 4.3.3.1 Dạng sóng khối data writer

Hình 4-13 mô tả dạng sóng khôi data writer Dữ liệu của khung hình trước đó sau khi được tín toán sẽ đƣợc ghi vào khối FIFO_write Nhóm tín hiệu contrl_w và User_w để giao tiếp với IP của Altera để ghi dữ liệu xuống bộ nhớ ngoài Hình 4-14 mô tả dạng sóng tạo tín hiệu control_write_go để chốt các thông tin cài đạt ngõ vào: control_write_fix_location, control_write_length, và control_write_base Hình 4-16 mô tả dạng sóng nhóm tín hiệu User_w để giao tiếp ghi dữ liệu xuống bộ FIFO 128 bit của IP write_master

HVTH: Nguyễn Thị Thu Phúc 62 nh 4-13 Dạng sóng khối data writerr nh 4-14 Ghi dữ liệu vào bộ FIFO_write nh 4-15 Chốt tín hiệu control_write_go

HVTH: Nguyễn Thị Thu Phúc 63 nh 4-16 Ghi dữ liệu mỗi burts 128 bit xuống bộ FIFO

Hình 4-17 mô tả dạng sóng khối data reader giao tiếp để đọc dữ liệu của khung hình trước đó từ bộ nhớ ngoài lên và lưu dữ liệu này vào bộ FIFO_read Hình 4-18 mô phỏng tạo tín hiệu control_read_go để chốt các tham số điều khiển control_read_fixed_location, control_read_base, và control_read_length để đọc dữ liệu từ bộ nhớ ngoài Hình 4-19 mô tả dạng sóng mô phỏng đọc dữ liệu theo mỗi burst 128bit từ bộ FIFO của khối read_master Hình 4-20 mô tả dạng sóng đọc dữ liệu từ bộ FIFO_read ra để xử lý Khối FIFO_read này cũng đƣợc cấu hình có độ trễ là 1 chu kỳ clock nh 4-17 Dạng sóng khối data reader

HVTH: Nguyễn Thị Thu Phúc 64 nh 4-18 Chốt tín hiệu control_read_go nh 4-19 Dọc dữ liệu mỗi 128 bit từ bộ nhớ nh 4-20 Đọc dữ liệu từ FIFO_read

Hình 4-21 mô tả dạng sóng khối core thực hiện giải thuật xử lý nhiễu video 3 chiều

Hình 4-22 cho thấy rằng số chu kỳ xung clock xử lý của khối core giống nhƣ yêu cầu thiết kế đặt ra nh 4-21 Dạng sóng mô phỏng khối Update

HVTH: Nguyễn Thị Thu Phúc 65 nh 4-22 Số chu kỳ xung clock xử lý, 6clock nh 4-23 Khối tính toán ngưỡng nh 4-24 Khối ngưỡng

Kết quả mô phỏng trên matlab và phần cứng

Áp dụng các phương pháp lọc nhiễu cho video Foreman frame 5, ta đươc kết quả như bảng dưới

HVTH: Nguyễn Thị Thu Phúc 66

PSNR Results (dB) Foreman frame 5

DCT Temporal Median filter 32.7435 31.8026 31.012 30.1044 DCT Temporal-spatial Median filter 33.0574 32.6251 32.1976 31.8818

4.4.2 So sánh kết quả mô phỏng phần cứng với phần mềm

Giải thuật đề nghị đƣợc thực hiện mô phỏng trên Matlab và mô phỏng cấu trúc phần cứng sử dụng phần mềm modelsim Dữ liệu đầu vào đƣợc lấy từ Video Hình 4-25 hiển thị 12 khung ảnh ngõ vào đƣợc trích ra từ Video Hình 4-26 là kết quả mô phỏng giải thuật trên Matlab, Hình 4-27 là kết quả mô phỏng trên cấu trúc phần cứng trên modelsim

Kết quả mô phỏng trên cấu trúc phần cứng cho kết quả tương tự với mô phỏng phần mềm trên Matlab

Tỷ số tín hiệu trên nhiễu

HVTH: Nguyễn Thị Thu Phúc 67 nh 4-25 Hình ảnh frame đầu vào có cộng thêm nhiễu GAUSSIAN để mô phỏng

HVTH: Nguyễn Thị Thu Phúc 68 nh 4-26 Kết quả mô phỏng trên Matlab

HVTH: Nguyễn Thị Thu Phúc 69 nh 4-27 Kết quả mô phỏng phần cứng

HVTH: Nguyễn Thị Thu Phúc 70

HIỆN THỰC HỆ THỐNG TRÊN KIT FPGA

Giới thiệu hệ thống

Hệ thống đƣợc hiện thực trên kit Cyclone III đƣợc thiết kế chuyên d ng cho các ứng dụng xử lý ảnh thời gian thực KIT này có khả năng xử lý video có độ phân giải lên đến Full HD Hệ thống có 1 ngõ vào video bao và một ngõ ra đều sử dụng chuẩn kết nối DVI Tín hiệu vào, ra đƣợc truyền và nhận thông qua DVI card Tổng quan về hệ thống chromakey đƣợc mô tả nhƣ Hình 5-1 nh 5-1 Sơ đồ tổng quan hệ thống xử lý nhiễu video 3 chiều

Hệ thống bao gồm ba phần chính:

- Thu thập video: là camera có chuẩn ngõ ra DVI hoặc HDMI, ngõ ra của camera sẽ đƣợc gắn vào ngõ vào của kit xử lý thông qua card DVI - Bộ xử lý: bao gồm card giao tiếp cổng DVI và kit FPGA d ng để hiện thực giải thuật

- Bộ hiển thị: đây là màn hình có thể hiển thị ra kết quả xử lý ra màn hình thông qua cổng DVI đƣợc gắn vào card DVI

HVTH: Nguyễn Thị Thu Phúc 71

Cyclone III Video Processing Development Kit [08]

Cyclone III Video Processing Development Kit là một kit xử lý tín hiệu video, cung cấp một giải pháp hiệu quả, giá thành thấp cho những nhà phát triển muốn sử dụng Cyclone III trong phát triển các ứng dụng video Đƣợc xây dựng trên Altera Cyclone Development Kit, Video Processing Development Kit có thể kết nối đƣợc với nhiều loại thiết bị video khác nhau thông qua hai High-Speed Mezzanine Connector (HSMC) daughter card.Ngoài ra, người thiết kế còn đƣợc cung cấp các lõi IP d ng cho xử lí tín hiệu và các thiết kế mẫu nh 5-2 Video Processing Development Kit Đặc điểm chính:

 Khối logic có mật độ cao, giúp thiết kế nhiều chức năng và đặc tính hơn

 Bộ nhớ nội hỗ trợ cho các ứng dụng cần băng thông lớn

 Mở rộng kết nối thông qua hai HSMCs

 256 MB dual channel DDR2 SDRAM với độ rộng bit 72

 Hỗ trợ tốc độ cao thông qua bộ nhớ ngoài gồm dual channel DDR2 SDRAM và SRAM

 Màn hình hiển thị LCD

HVTH: Nguyễn Thị Thu Phúc 72 nh 5-3Sơ đồ khối các thành phần của kit FPGA

Bitec HSMC DVI interface card đƣợc thiết kế để phục vụ cho những ứng dụng video có độ phân giải cao trong những thiết kế trên FPGA HSMC DVI interface card cho phép xuất và nhận dữ liệu digital video thông qua bộ thu và phát DVI Ngoài ra, card còn đƣợc tích hợp cả bộ thu và nhận của giao tiếp Optical S-PDIF interfaces, có khả năng truyền digital audio với tốc độ bit tối đa là 15Mbps

Bitec HSMC DVI interface card hỗ trợ giao tiếp HSMC nên có thể tương thích với tất cả các Altera development kit có giao tiếp HSMC

HVTH: Nguyễn Thị Thu Phúc 73 nh 5-4 Kit DVI sử dụng để giao tiếp vào, ra kênh video Đặc điểm chính:

 Hỗ trợ độ phân giải từ VGA tới UXGA (1600x1200 và 1920x1080)

 Tốc độ từ 25-165 Mhz Pixel rate

 S-PDIF Optical Tx và Rx

 Tương thích với các Altera development kit có chuẩn HSMC

Camera HD: Camea HD đƣợc sử dụng là loại camera , có khả năng xuất video chuẩn

1080P60 Hệ thống sử dụng loại camera Sony HD1080 nh 5-5 Camera HDR-CX380 của hãng sony

Monitor: là màn hình hiển thị hỗ trợ chuẩn HD1080P60 Để hiện thực hệ thống trên phần cứng, cần thực hiện bốn bước sau:

HVTH: Nguyễn Thị Thu Phúc 74 - Tổng hợp thiết kế và đóng gói IP: thiết kế sau khi hoàn thành cần đƣợc đóng gói để kết nối với các IP khác trong hệ thống SOPC của hãng altera

- Xây dựng hệ thống SOPC: đây là bước sử dụng phần mềm sopc buider để ghép các

IP lại với nhau để thành một hệ thống hoàn chỉnh

- Tổng hợp hệ thống: hệ thống sau khi đƣợc xây dựng sẽ đƣợc tổng hợp, sau đó nạp chương trình xuống kit để kiểm tra thử nghiệm.

Tổng hợp và đóng gói IP trong SOPC

Thiết kế IP xử lý xử dụng hai chuẩn giao tiếp của hãng Altera: Avalon stream và Avalon MM master Các bước đóng gói IP được thực hiện như sau: nh 5-6 Chèn các file thiết kế để đóng gói IP

HVTH: Nguyễn Thị Thu Phúc 75 nh 5-7 Gán chức năng tín hiệu vào, ra của IP nh 5-8 Cài đặt chức năng tín hiệu clock ngõ vào

HVTH: Nguyễn Thị Thu Phúc 76 nh 5-9 Cài đặt chức năng ngõ vào của bus Avalon ST sink

HVTH: Nguyễn Thị Thu Phúc 77 nh 5-10 Cài đặt chức năng ngõ vào bus Avalon ST source nh 5-11 Cài đặt chức năng bus Avalon MM master read, sơ đồ tín hiệu

HVTH: Nguyễn Thị Thu Phúc 78 nh 5-12 Cài đặt chức năng ngõ vào bus Avalon MM read, dạng song tín hiệu nh 5-13 Cài đặt chức năng ngõ vào bus Avalon MM write

HVTH: Nguyễn Thị Thu Phúc 79 nh 5-14 Cài đặt các tham số mặc định cho IP

Xây dựng hệ thống SOPC

SOPC là một hệ thống gồm các phần tử đƣợc kết nối lại bởi SOPC Builder Các phần tử này có thể đƣợc cung cấp sẵn bởi Altera hoặc ta cũng có thể tự thiết kế để thêm vào hệ thống

SOPC Các phần tử trong hệ thống SOPC đƣợc kết nối thông qua một system interconnect fabric, gồm các phần tử logic, điều khiển kết nối của hệ thống Trong SOPC các phần tử giao tiếp với nhau thông qua chuẩn giao tiếp Avalon nhƣ memory-mapped, streaming ngoài ra còn có các chuẩn giao tiếp khác (non-avalon) Hệ thống SOPC để ghép nối các IP để thành một hệ thống hoàn chỉnh:

HVTH: Nguyễn Thị Thu Phúc 80 nh 5-15 Sơ đồ kết nối các IP trong hệ thống SOPC

Khối Clock Video Input: khối này có chức năng giao tiếp với tín hiệu video ngõ vào và đổi sang chuẩn avalon stream Cấu hình tham số của khối này đƣợc mô tả ở Hình 5-14 nh 5-16 Cấu hình tham số IP Clock Video Input

Khối Down Scaler: Khối này có chức năng giảm kích thước khung hình từ 1920x1080 xuống còn 960x540 để xử lý Cấu hình tham số đƣợc mô tả ở Hình 5-16

HVTH: Nguyễn Thị Thu Phúc 81 nh 5-17 Cấu hình tham số IP Scaler

Khối CSC - Color Space Converter: Khối này có chức năng chuyển đổi không gian màu từ RGB sang YCbCr Cấu hình tham số khối này đƣợc mô tả ở Hình 5-16 nh 5-18 Cấu hình tham số IP CSC

Khối IP: đây là khối IP xử lý nhiễu video 3 chiều đƣợc đóng gói để ghép vào hệ thống Cấu hình tham số này đƣợc mô tả ở Hình 5-17

HVTH: Nguyễn Thị Thu Phúc 82 nh 5-19 Cấu hình tham số IP 3D video denoising

Khối DDR TOP, BOT: Khối này có chức năng điều khiển việc giao tiếp với DDR2 TOP, BOT, d ng cho bộ frame buffer

Khối Frame Buffer : Với bộ nhớ đệm Frame sẽ được lưu vào bộ nhớ RAM ngoài, chúng ta có thể chọn không bộ đệm, bộ đệm đôi hay bộ đệm 3 khi biên dịch Nếu chọn không bộ đệm thì frame ngõ vào sẽ đến gỏ ra sau một thời gian trễ Nếu chọn bộ đệm đôi thì trong bộ đệm có 2 frame, frame vào sẽ được lưu vào bộ đệm và ngõ ra sẽ được lấy từ frame được lưu vào trước đó

Nhờ bộ đệm mà quá trình xử lý không bị gián đoạn khi bị gián đoạn dữ liệu ngõ ra hoặc ngõ vào

Vẫn có thể viết đề frame mới vào bộ đệm khi trong bộ đệm đang có frame Trong đề tài này, học viên sử dụng cả buffer ngõ vào và ngõ ra để đảm bảo hệ thống hoạt động ổn định

HVTH: Nguyễn Thị Thu Phúc 83 nh 5-20 Cấu hình tham số bộ DDR Control nh 5-21 Cấu hình khối buffer ngõ vào

HVTH: Nguyễn Thị Thu Phúc 84 nh 5-22 Cấu hình khối buffer ngõ ra

Khối Up Scaler: Tăng kích thước khung hình lền 1920x1080 để hiển thị kết quả xử lý ra màn hình Cấu hình tham số bộ này đƣợc mô tả ở Hình 5-21 nh 5-23 Cấu hình khối Up Scaler

HVTH: Nguyễn Thị Thu Phúc 85

Khối Clock Video Ouput: Khối này chuyển dữ liệu ngõ ra từ chuẩn Avalon-ST sang dạng chuẩn DVI của thiết bị bên ngoài nh 5-24 Cấu hình tham số IP Clock Video Output

Hình 5-24 mô tả các IP đƣợc sử dụng trong thiết kế IP của hệ thống Sau khi kết nối và cấu hình đầu đủ các IP trong SOPC, sử dụng chức năng Generate để tạo ra một System để có thể ghép System này trong thiết kế TOP nh 5-25 Nhấn nút Generate để tạo ra System

HVTH: Nguyễn Thị Thu Phúc 86 nh 5-26 Các IP sử dụng trong SOPC

Hình 5-25 là sơ đồ kể nối giao diện của file TOP của hệ thống thiết kế, và kết nối giữa hệ thống SOPC với các pin của FPGA nh 5-27 Ghép System sai khi đã Generate vào trong hệ thống thiết kế

HVTH: Nguyễn Thị Thu Phúc 87

Tổng hợp hệ thống

Sau khi đã thiết kế hệ thống ghép các IP trong SOPC và sử dụng chức năng Generate, bước thiết theo là cần phải thiết kế TOP file để ghép System của SOPC với các khối khác, và các pin IO của FPGA Thiết kế TOP bao gồm hai khối chính: bộ PLL và System Bộ PLL có chức năng để tạo tín hiệu video_clk có tần số 148.5Mhz để cấp xung clock ngõ ra đúng với chuẩn video HD1080P60 nh 5-28 Cấu hình tần số ngõ vào 125Mhz cho bộ PLL nh 5-29 Cấu hình tần số ngõ ra 148.5Mhz của bộ PLL

Kết nối các khối PLL, các PIN vào ra với System đƣợc mô tả ở các hình từ Hình 5-28 đến Hình 5-30

HVTH: Nguyễn Thị Thu Phúc 88 nh 5-30 Kết nối vào ra của bộ PLL nh 5-31 Kết nối System với các tín hiệu của DDR bot nh 5-32 Kết nối ngõ ra video của System kết nối vào kit DVI

HVTH: Nguyễn Thị Thu Phúc 89 nh 5-33 Kết nối system với các tín hiệu DDR TOP nh 5-34 Kết nối các tín hiệu ngõ vào video của kit DVI với System

Sau khi kết nối hoàn thành, sử dụng chức năng Compilation của Quartus để tổng hợp hệ thống Kết quả tổng hợp hệ thống đƣợc mô tả ở Hình 5-34 Hình 5-35 là kết quả tổng hợp của IP thiết kế đƣợc coi trong chế độ RTL view Hình 5-36 là kết quả tổng hợp của hệ thống thiết kế

HVTH: Nguyễn Thị Thu Phúc 90 nh 5-35 Kết quả tổng hợp hệ thống nh 5-36 Netlist RTL view trong quartus của IP thiết kế

HVTH: Nguyễn Thị Thu Phúc 91 nh 5-37 Netlist RTL view trong quartus

5.4.1 Phân tích tín hiệu clock

Các tín hiệu clock cho hệ thống bao gồm: clock cho ngõ vào video, clock cho ngõ ra video, clock cho vi xử lý, và clock cho giao tiếp bộ nhớ và các lõi IP Các tín hiệu clock dành cho ngõ vào ra đƣợc lựa chọn dựa trên thông số kỹ thuật chuẩn giao tiếp video

Video ngõ vào: đƣợc cung cấp bởi camera Sony có độ phân giải 1080p60 kết nối bằng ngõ giao tiếp HDMI với cáp chuyển sang chuẩn DVI

Video ngõ ra: là chuẩn giao tiếp DVI 1080p54

Bảng 20 mô tả các giá trị tần số cho tín hiệu clock của hệ thống

Bảng 20: Bảng tần số sử dụng của hệ thống

Tín hiệu clock Giá trị (MHz) Ghi chú

Clock hệ thống SOPC 166Mhz Dành cho giao tiếp bộ nhớ và bus

Clock video ngõ vào DVI 148.5 Đƣợc cung cấp từ bộ giải mã video ngõ vào Clock video ngõ ra DVI 134 Đƣợc tạo từ bộ PLL trong FPGA Clock dành cho bộ PLL 125 Bộ PLL sử dụng clock này để tạo ra

HVTH: Nguyễn Thị Thu Phúc 92 của DDR SDRAM controller clock 166MHz cho giao tiếp bộ nhớ

Các IP trong hệ thống SOPC sử dụng xung clock ddr2_32bit_bot_system có giá trị là 166Mhz, riêng các bộ DDR control sử dụng tín hiệu xung clock clk có giá trị là 125Mhz

Sau khi có kết luận về tần số cho các tín hiệu clock đạt yêu cầu về thời gian, chúng ta tiến hành phân tích tốc độ dữ liệu tương ứng với tần số xung clock đã chọn để đánh giá khả năng đáp ứng xử lý khung hình với độ phân giải 1080p.

Kết quả hiện thực hệ thống trên kit FPGA Cyclone III

Sau khi biên dịch và tổng hợp hệ thống, phần mềm quartus sẽ tạo ra một file *.sof để nạp xuống kit FPGA Tiến hành cài đặt thử nghiệm hệ thống nhƣ sau:

- Kết nối hệ thống phần cứng: kết nối ngõ ra HDMI của camera vào ngõ vào của kit

DVI sử dụng cáp HDMI-DVI Kết nối ngõ ra của kit DVI vào ngõ vào của màn hình hiển thị sử dụng dây cáp DVI-DVI Cấp nguồn cho kit và các thiết bị ngoại vi, - Nạp chương trình: sử dụng chương trình quartus programer để nạp file *.sof xuống kit

HVTH: Nguyễn Thị Thu Phúc 93 - nh 5-38 Hệ thống hiện thực giải thuật trên kit FPGA nh 5-39 nh đã được cộng nhiễu

HVTH: Nguyễn Thị Thu Phúc 94 nh 5-40 Ảnh sau khi được xử lý nhiễu

Phân tích, nhận xét, đánh giá kết quả

5.6.1 Phân tích tốc độ dữ liệu, khả năng xử lý thời gian thực

Bảng 21 mô tả các thông số về tốc độ dữ liệu của hệ thống

Bảng 21: Bảng tính toán tốc độ dữ liệu của các kênh ngõ vào ra

Tổng số điểm ảnh cho 1 khung hình 1920x1080 = 2,073,600 pixel

Số khung trên 1 giây 54 frame/s

Tổng số điểm ảnh cần xử lý trong 1 giây 1920x1080x54= 111,974,400 pixel/s

Số bit xử lý đồng thời 24 bit

Tốc độ xử lý của lõi IP 1 pixel / 1 clock cycle Băng thông của bộ nhớ DDR-SDRAM 3 Gbits/s

Băng thông bộ nhớ sử dụng cho kênh đệm ngõ ra 1920x1080x24x54 = 2,687 Mbits/s Băng thông bộ nhớ sử dụng cho kênh đệm ngõ vào

960x540x24x54 = 671 Mbits/s Băng thông bộ nhớ sử dụng cho kênh banner 960x540x16x54 = 447 Mbits/s

HVTH: Nguyễn Thị Thu Phúc 95 Hệ thống đƣợc thiết kế theo cấu trúc full pipe line, không sử dụng vòng lặp, và xử lý 1pixel/clock cycle Để đáp ứng đƣợc ngõ ra 1920x1080p54, ở tần số pixel 134Mhz, thì tổng băng thông xử lý tối thiểu: (2,687+671+447)805Mbits/s

Thiết kế SOPC sử dụng 2 bộ điều khiển DDR SDRAM độc lập gồm: top-memory và bottom-memory, sử dụng tần số clock 166Mhz cho các SDRAM Bộ đệm ngõ ra sử dụng bộ nhớ của top-memory Bộ đệm ngõ vào sử dụng bộ nhớ của bottom-memory Nhƣ vậy băng thông sử dụng 3805Mbits/s cho các kênh video đảm bảo không vƣợt quá tổng băng thông giới hạn (6Gbits/s)

Theo nhƣ các thông số đã phân tích ở trên, hệ thống thiết kế đều đạt đƣợc các yêu cầu về băng thông dữ liệu và tần số xử lý, do đó hệ thống đề nghị hoàn toàn đáp ứng đƣợc yêu cầu xử lý thời gian thực với độ phân giải HD 1080p Hình 5-39 cho thấy kết quả chạy thử nghiệm trên FPGA đúng với kết quả đã phân tích Ngõ ra video đạt đƣợc độ phân giải HD 1920x1080 với tần số quét 54Hz, tương ứng với tốc độ 54 frames/s nh 5-41 Thông tin video ngõ ra của cổng DVI

Nhận xét: Dựa trên phân tích về tín hiệu xung clock, băng thông bộ nhớ, tốc độ dữ liệu và kết quả thực hiện hệ thống hiển thị trên màn hình cho thấy rằng hệ thống đề nghị có khả năng xử lý đáp ứng thời gian thực

HVTH: Nguyễn Thị Thu Phúc 96

5.6.2 Đánh giá về chất lƣợng xử lý xử lý nhiễu video 3 chiều 5.6.3 Nhận xét, đánh giá kết quả

Qua phần phân tích ở trên cho thấy rằng hệ thống đề nghị hiện thực trên FPGA hoạt động ổn định, đạt đƣợc các mục tiêu yêu cầu đề ra của đề tài về tính năng xử lý thời gian thực, độ phân giải, và chức năng của giải thuật

HVTH: Nguyễn Thị Thu Phúc 97

Ngày đăng: 09/09/2024, 07:05