Tổng quan kit TMS320DM6437EVM

Một phần của tài liệu WATERMARKING CHO ẢNH SỐ TRÊN KIT DM6437 EVM MÔ PHỎNG MATLAB FULL CODE (Trang 60)

2

6.1Tổng quan kit TMS320DM6437EVM

10.1.1Họ DSP TM320C64x+

Các chip C64x+, bao gồm cả thiết bị TMS320DM6437 là thế hệ DSP fixed- point hiệu suất cao nhất trên nền tảng C6000. Chip DM6437 dựa trên kiến trúc VLIW (very long instruction word) VelociTI cao cấp hiệu suất cao thế hệ thứ 3 được phát triển bởi cơng ty Texas Instrument, làm cho các DSP này là một lựa chọn hồn hảo của các ứng dụng media số. Các thiết bị C64x+ tương thích về code với các thiết bị trước đây cùng nền tảng c6000. Các DSP C64x+ hỗ trợ các chức năng cộng thêm và cĩ tập lệnh mở rộng từ các thiết bị trước đây [10].

Với hiệu quả lên đến 560 triệu lệnh trên giây (MIPS) tại xung 700 MHz, nhân C64x+ mang đến các giải pháp ưu việt cho việc lập trình DSP. Các nhân này hoạt động mềm dẻo trong việc điều khiển tốc độ cao và tương thích với các bộ xử lý mảng. Nhân DSP C64x+ cĩ 64 thanh ghi đa dụng chiều dài từ 32 bit và 8 đơn vị chức năng hiệu suất cao độc lập: bao gồm 2 bộ nhân cho kết quả dài 32 bit và 6 bộ tích lũy. 8 khối chức năng này bao gồm các lệnh để tăng tốc hiệu quả trong các ứng dụng video và ảnh. Nhân DSP cĩ thể cung cấp 4 MAC 16 bit (multiply- accumulates) trên 1 chu kỳ cho tất cả 2800 triệu MAC trên 1 giây, hoặc 8 MAC 8 bit trên 1 chu kỳ cho tất cả 5600 triệu MAC trên giây [10].

DM6437 cũng cĩ logic phần cứng chỉ rõ ứng dụng, bộ nhớ trên chip và các ngoại vi trên chip tương tự như các thiết bị dựa trên nền C6000. Nhân DM6437 sử dụng kiến trúc dựa trên bộ đệm mức 2. Bộ đệm chương trình cấp 1 bao gồm khơng gian bộ nhớ 256 kbit cĩ thể được cấu hình như bộ nhớ được ánh xạ hoặc bộ đệm ánh xạ trực tiếp, và BỘ ĐỆM DỮ LIỆU CẤP 1 bao gồm khơng gian bộ nhớ 640 kbit, trong đĩ 384k bit là bộ nhớ ánh xạ và 256 kbit cĩ thể được cấu hình thảnh bộ nhớ ánh xạ hoặc bộ đệm thiết lập liên kết hai hướng (2 way set-asociative bộ đệm). Memory/bộ đệm cấp 2 –L2 chứa khơng gian bộ nhớ 1 M bit được chia sẻ giữa chương trình và dữ liệu. Bộ nhớ L2 cĩ thể được cấu hình như bộ nhớ ánh xạ, bộ đệm, hoặc kết hợp cả hai [10]

.

Tập hợp ngoại vi gồm: hai cổng video cấu hình,một Ethernet MAC 10/100 Mb/s với một module một ngõ vào /ra quản lý dữ liệu (MIDO); một giao tiếp truyền nhận 4 bit VLYNQ; một giao diện I2C; 2 cổng McBSP; một cổng nối tiếp audio

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

McASP0 với 4 bộ nối tiếp; 2 timer 64 bit đa dụng, mỗi cái cĩ thể cấu hình thảnh 2 timer 32 bit độc lập nhau; 1 timer watchdog 64 bit; một HPI 16 bit cĩ thể cấu hình được; GPIO lên tới 111 chân với các mode sinh ngắt/sự kiện cĩ thể lập trình …

10.1.2Thiết bị TMS320DM6437EVM

Hình 6.1: Thiết bị TMS320DM6437 EVM

DM6437 bao gồm các bộ xử lý phương tiện số cĩ thể lập trình phần mềm hiệu quả cao, làm giảm thời gian phát triển của các ứng dụng đa phương tiện mới. Các bộ xử lý phương tiện số cĩ thể lập trình được, cung cấp một đặc điểm quan trọng của sự mềm dẻo, nĩ giúp đ trong việc phát triển và kiểm tra các ứng dụng đa phương tiện. Bộ kit được thiết kế để hỗ trợ nhiều ứng dụng video trên mạng IP như các hộp set-top, các camera giám sát, các thiết bị ghi video số và bộ mã hĩa và giải mã mềm dẻo cho nhiều tiêu chuẩn cơng nghiệp cĩ trên thị trường [9].

10.1.3Các thảnh phần chính trong TMS320DM6437 DVDP

DM6437 bao gồm sự phát triển dựa trên PCI và tính độc lập của ứng dụng sử dụng các bộ xử lý Da Vinci của TI. Nĩ gồm nhiều phần cứng khác nhau hỗ trợ các đặc điểm quan trọng. Một vài đặc điểm chính của DM6437 là [9]

:  Bộ xử lý DM6437 của TI hoạt động ở tần số 600 Mhz.  Giao diện Ethernet / PCI Bus.

 SDRAM DDR2 128 Megabyte.

 NAND Flash 64 MB, SRAM 2 MB, và bộ nhớ Flash khơng bay hơi 16 MB (hay NOR Flash).

 Thiết bị giải mã video TVP5146M2, hỗ trợ S-video và composite video.

 Tùy chọn load BIOS cĩ thể điều chỉnh được.  Giao diện mơ phỏng JTAG.

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

Hình 6.2: Sơ đồ khối phần cứng của DM6437

Bộ xử lý DM6437

DM6437 là bộ xử lý hiệu quả cao từ họ Da Vinci của TI, nĩ hỗ trợ các tốc độ clock 400, 500, 600, 660 và 700 MHz. Nhân DSP bao gồm tám khối chức năng, 2 tệp thanh ghi đa dụng và 2 đường dữ liệu. Tám khối chức năng cĩ thể thực thi 8 lệnh cùng một lúc. Mỗi khối chức năng được giao một cơng việc chuyên dụng như các thao tác nhân, số học, logic và rẽ nhánh, tải dữ liệu từ bộ nhớ vào các thanh ghi và lưu trữ dữ liệu từ các thanh ghi vào bộ nhớ. Hai tệp thanh ghi đa dụng tên là A và B, bao gồm 32 thanh ghi 32 bit, cung cấp tất cả là 64 thanh ghi. Các thanh ghi này hỗ trợ các loại dữ liệu bao gồm các gĩi dữ liệu 8 bit, 16 bit, 32 bit, 40 bit và 64 bit. Trong trường hợp giá trị vượt quá 32 bit, một đơi gồm hai thanh ghi được sử dụng để biểu diễn các giá trị 40 bit và 64 bit [10].

Nhân CPU

Nhân CPU bao gồm bộ đệm chương trình cấp 1 (L1P), bộ đệm dữ liệu cấp 1 (L1D) và bộ đệm hợp nhất cấp 2 (L2). Bộ đệm L1P cĩ kích thước 32 Kbyte và cĩ thể được cấu hình như một bộ đệm bộ nhớ được ánh xạ hoặc ánh xạ trực tiếp. Bộ đệm L1D cĩ kích thước 80 Kbyte, trong đĩ cĩ 48Kbyte được cấu hình như một bộ nhớ được ánh xạ và 32 Kbyte cĩ thể được cấu hình thảnh một bộ nhớ được ánh xạ hoặc bộ đệm liên kết 2 chiều [10].

Bộ đệm L2 cĩ thể lên đến 256 Kbyte và cĩ thể được chia sẻ như bộ nhớ chương trình cũng như bộ nhớ dữ liệu. Bộ nhớ L2 cĩ thể được cấu hình như một SRAM độc lập hoặc một kết hợp của bộ đệm và SRAM. Kích thước của bộ đệm L2 cĩ thể thay đổi bằng cách thay đổi cấu hình hệ thống. Các thay đổi này cĩ thể được

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

thực hiện trong file gel (evmdm6437.gel) bằng cách thay đổi thơng số CACHE_L2CFG. Nếu thơng số này được đặt về 0, cĩ nghĩa là bộ đệm L2 khơng được cấu hình và tất cả bộ nhớ được sử dụng như SRAM. Bằng cách thay đổi giá trị của CACHE_L2CFG thảnh 1, 2, 3 hay 7, cĩ thể làm cho kích thước bộ nhớ L2 lần lượt là 32KB, 64 KB, 128 KB hoặc 256 KB [10]

.

Hình 6.3: Sơ đồ khối chức năng của DM6437

Giao diện Ethernet và PCI

DM6437 cung cấp một giao tiếp giữa board và mạng bên ngồi. Giao diện này hỗ trợ cả kết nối 10 Mbps và 100 Mbps. PCI (kết nối thảnh phần ngoại vi) cung cấp một giao diện để kết nối đến DM6437 với các thiết bị phục vụ PCI khác. Kết nối này cung cấp một cách thức đơn giản để dịch chuyển dữ liệu từ một thiết bị này sang thiết bị khác [10]. (adsbygoogle = window.adsbygoogle || []).push({});

Hệ thống phụ xử lý video (Video Processing Sub-system – VPSS)

VPSS bao gồm một mặt trước xử lý video (Video Processing Front End – VPFE) và một mặt sau xử lý video (Video Processing Back End – VPBE). Một VPFE cung cấp một giao diện để kết nối các thiết bị nhập bê ngồi như cảm biến ảnh, bộ giải mã video….. Một VPFE bao gồm một bộ điều khiển thiết bị mạch đĩng (Closed Circuit Device Controler - CCDC), cơ cấu hiển thị (Preview Engine), bộ

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

thay đổi kích thước (Resizer), bộ phát tĩnh phần cứng 3A (H3A) và khối histogram. Một CCDC cung cấp một giao diện để kết nối cảm biến ảnh và bộ giải mã video. Cơ cấu hiển thị chuyển đổi một ngõ vào theo luật Bayer sang dạng YUV 4:2:2. Khối thay đổi kích thước thay đổi kích thước ảnh vào sang một độ phân giải mong muốn. Khối H3A cung cấp sự hỗ trợ cho tiêu điểm tự động (AF- Auto Focus), lộ sáng tự động (Auto Exposure) và cân bằng trắng tự động (Auto White Balance – AWB)[10].

Một VPBE cung cấp một giao diện để kết nối các thiết bị ngồi cho các ngõ ra hiển thị như các monitor LCD, hiển thị TV… Nĩ bao gồm một bộ hiển thị màn hình (On-Screen Display – OSD) và một bộ mã hĩa video. Một bộ mã hĩa video bao gồm một giao tiếp LCD và một giao tiếp tương tự. Giao tiếp tương tự cung cấp ngõ ra video tương tự. Giao tiếp LCD số cung cấp ngõ ra RGB hoặc YcbCr [10]

.

Bộ nhớ On-board

DM6437 bao gồm SDRAM DDR2 128MB. SDRAM được sử dụng để lưu trữ chương trình, video và dữ liệu. Board cũng bao gồm NOR Flash 16 MB, SRAM 2MB và NAND Flash 64 MB. NAND và NOR Flash được dùng chủ yếu như một boot-loader, trong khi SRAM được dùng chủ yếu được dùng để sửa lỗi mã chương trình [9].

6.2Chương trình Code Composer Studio

10.1.4Giới thiệu

Code Composer Studio (CCS) là một mơi trường phát triển tích hợp

(Integrated Development Envỉonment –IDE) được dùng để phát triển các ứng dụng tập trung vào các vi xử lý tín hiệu số của TI. CCS cung cấp một IDE để phát triển một ứng dụng bằng cách cung cấp các đặc điểm sau.

 Lập trình DSP sử dụng ngơn ngữ C/C++.

 Các chức năng tích hợp sẵn sàng dảnh cho xử lý ảnh và video.  Qúa trình sửa lỗi chạy trên phần cứng.

 Sửa lỗi ứng dụng sử dụng các điểm gãy (breakpoints) của phần mềm.

Một số bước trong quá trình phát triển một ứng dụng thảnh cơng bao gồm các tiêu chuẩn của một mơi trường dự án, sự phát triển mã sử dụng C hoặc C++, liên kết các chức năng thư viện tương ứng, phiên dịch mã, chuyển đổi nĩ sang một mã hợp ngữ và tải nĩ xuống nền DM6437 sử dụng giao diện JTAG. Mơi trường phát triển CSS được trình bày dưới đây:

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

10.1.5Cách sử dụng phần mềm CCS cơ bản

6.2.1.1Tạo một project mới

Bước 1: tạo một thư mục tên practice trong thư mục

C:\CCStudio_v3.3\myprojects.

Bước 2: Chép nội dung trong C:\CCStudio_v3.3\tutorial\target\consultant

đến thư mục mới này. Đối tượng chỉ đến cấu hình hiện thời của CCS. Ở đây khơng cĩ cấu hình mặc định, phải thiết lập một cấu hình trước khi khởi động CCS.

Hình 6.4: Giao diện của chương trình Code Composer Studio 3.3

Bước 3: Khởi động CCS.

Bước 4: Từ menu CCS, chọn New.

Bước 5: Từ trường Project name, gõ vào tên của project (practice).  Bước 6: Trong trường Location, gõ hoặc dẫn đến thư mục tạo ở bước 1.  Bước 7: Mặc định Project Type được đặt là Executable (.out) và Target được

đặt ở cấu hình hiện thời của CCS.

Bước 8: Click Finish. CCS tạo ra một file tên là practice.pjt. File này lưu trữ thiết lập project vừa tạo và tham chiếu đến nhiều file khác nhau sử dụng bởi project đĩ.

Bước 9: Thêm các file vào project bằng cách chọn Add Files to Project từ menu Project. (adsbygoogle = window.adsbygoogle || []).push({});

Bước 10: Thêm main.c, DoLoop.c và lnk.cmd từ thư mục vừa tạo ra.

Bước 11: Chọn Add Files to Project một lần nữa và truy tới thư mục C:\CCStudio_v3.3\target\cgtools\lib\ và thêm file rts.lib vào target đã được cấu hình.

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

Bước 12: Khơng cần phải thêm thủ cơng bất kỳ file kèm nào vào project, bởi vì chương trình sẽ tự tìm chúng khi nĩ quét để xem xét sự phụ thuộc. Sau khi project được xây dựng xong thì các file đính kèm sẽ xuất hiện trong cửa sổ

Project View.

6.2.1.2 Xây dựng chương trình

Chọn Project -> Rebuild All lần đầu tiên xây dựng project. một cửa sổ ngõ ra sẽ trình bày tiến trình xây dựng và trạng thái hiện hảnh. Khi việc xây dựng hồn thảnh, cửa sổ ngõ ra hiển thị “Build complete 0 errors, 0 warnings”.

6.2.1.3 Tải chương trình xuống kit

Sau khi chương trình được xây dựng thảnh cơng, tải nĩ bằng cách vào

File -> Load Program. Mặc định, CCS sẽ tạo ra một thư mục con gọi là Debug trong thư mục Project và lưu trữ file.out trong đĩ. Chọn practice.out và click vào Open để tải chương trình.

6.3Nhúng và tách Watermark trên kit

Hình 6.5: Quá trình đưa vào và xử lý dữ liệu ảnh

6.3.1 Quá trình nhúng Watermark.

Xử lý trên DM6437

File data của ảnh H và W được đưa vào

DDR2.

File data của ảnh H’ và

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437 Hình 6.6: Sơ đồ nhúng Watermark

Khối tách các thảnh phần RGB của H: Host Image H ban đầu là ảnh RGB 24 bit nên phải tách ảnh thảnh 3 thảnh phần R, G và B ký hiệu lần lượt là HR, HG và HB. Việc tách Host Image H được thực hiện trên MATLAB, dữ liệu sau khi tách sẽ được lưu thảnh file cĩ định dạng.dat để đưa vào DDR2 trong DM6437, chương trình sử dụng dịng lệnh: #pragma DATA_SECTION(array_name,".ddr2"); Tách các thảnh phần RGB của H Biến đổi DCT Biến đổi IDCT Nhúng Phân loại hệ số nhúng Lấy độ chĩi trung bình Lấy độ chĩi

trung bình Tách biên Canny Lấy mã nhị phân 8 bit của từng pixel Tách các thảnh phần RGB của W Tổng hợp RGB ảnh H’

Chương 6: Thực hiện bản quyền ảnh số trên KIT DM6437

để khai báo rằng dữ liệu sẽ được đưa vào DDR2.

Khối tách biên Canny: các thảnh phần HR, HG và HB sẽ được tách biên Canny để tạo thảnh các ảnh biên Canny kích thước 512x512 pixel ký hiệu là EHR, EHG và EHB. Việc tách biên được thực hiện trên MATLAB.

Khối lấy độ chĩi trung bình của ảnh tách biên: lấy độ chĩi trung bình trên các khối con 8x8 của các ảnh biên EHR, EHG và EHB. Thực hiện lấy độ chĩi trung bình trên các khối con 8x8 của ảnh 512x512 pixel ta được một ma trận 64x64 phần tử, mỗi phần tử là một giá trị độ chĩi trung bình của một khối con 8x8 tương ứng. Độ chĩi trung bình của các ảnh biên này được kết hợp với độ chĩi trung bình của các ảnh HR, HG và HB để phân loại hệ số nhúng Watermark. Trong chương trình, việc lấy độ chĩi trung bình được thực hiện bằng hàm sum64 và average_lumin64.

Khối lấy độ chĩi trung bình của ảnh: lấy độ chĩi trung bình trên các khối con 8x8 pixel của các ảnh HR, HG và HB. Thực hiện lấy độ chĩi trung bình trên các khối con 8x8 của ảnh 512x512 pixel được một ma trận 64x64 phần tử, mỗi phần tử là một giá trị độ chĩi trung bình của một khối con 8x8 tương ứng. Độ chĩi trung bình của các ảnh này được kết hợp với độ chĩi trung bình của các ảnh biên EHR, EHG và EHB để phân loại hệ số nhúng Watermark. Việc lấy độ chĩi trung bình được thực hiện bằng các hàm sum64 và average_lumin64.

Khối biến đổi DCT: thực hiện việc biến đổi DCT trên các khối con 8x8 của các ảnh HR, HG và HB để nhúng Watermark. Biến đổi DCT trên các block8x8 được thực hiện bằng hàm IMG_idct_8x8 trong thư viện img64xx [12].

Khối nhúng Watermark: Watermark được nhúng vào các hệ số trung tần trong các khối con 8x8 được biến đổi DCT của ảnh gốc. Cĩ 64x64 khối con DCT, mỗi khối con DCT cĩ kích thước 8x8 được dùng để nhúng mỗi pixel của watermark 64x64 pixel. Mỗi pixel của Watermark cĩ giá trị từ 0-255 sẽ được mã hĩa thảnh một số nhị phân 8 bit tương ứng. 8 bit nhị phân này sẽ được nhúng vào 8 hệ số trung tần của khối con DCT 8x8 của ảnh gốc. 8 hệ số này lần lượt nằm tại các vị trí (3,1), (2,2), (1,3), (1,4), (2,3), (3,2), (4,1) và (5,1). Watermark được nhúng như sau:

a’ = a + color_index*class_index*bit (6.1) Trong đĩ a là hệ số trung tần DCT trước khi nhúng Watermark, a’ là hệ số trung tần sau khi nhúng Watermark. Hệ số color_index bằng 2 đối với ảnh HG, bằng 4 đối với ảnh HG và bằng 1 đối với ảnh HB. Hệ số class_index là hệ số phân loại dựa vào giá trị độ chĩi trung bình tương ứng của ảnh HR (HG, HB) và độ chĩi trung bình tương ứng của ảnh biên Canny EHR (EHG, EHB). Giá trị bit là giá trị của bit nhị phân tương ứng của Watermark để nhúng vào hệ số a. Quá trình nhúng

Một phần của tài liệu WATERMARKING CHO ẢNH SỐ TRÊN KIT DM6437 EVM MÔ PHỎNG MATLAB FULL CODE (Trang 60)