Xây dựng khối thuật toán Watermarking-JPEG trong miền chưa nén

Một phần của tài liệu các thuật toán cơ bản của chuẩn nén ảnh tĩnh JPEG Baseline (Trang 90 - 96)

b. watermarking trong miền nén (trong khi nén)

4.2.2.Xây dựng khối thuật toán Watermarking-JPEG trong miền chưa nén

Khối thuật toán Watermarking-JPEG trong miền chưa nén được tổng hợp từ các khối nén ảnh JPEG (đã được xây dựng trong Mục 4.1), khối watermarking trong miền chưa nén và khối bộ đệm (làm trễ). Trước tiên ta đi xây dựng khối

watermarking trong miền chưa nén. Theo Mục 3.2.3, thuật toán nhúng watermark trong miền chưa nén JPEG (watermarking trong miền chưa nén) được mô tả trên Hình 4.31. D C T 1 6x1 6 D C T 1 6x1 6 ( ) ( )i j Ci j W( )I J CW , =α , + β , W a te rm a rk in g C W C w K h u n g ả n h đ ã đ ư ợ c n h ú n g w a te r m a r k Ả n h n g u ồ n Ả n h w a te r m a r k ID C T 1 6x1 6

Hình 4.31: Biểu đồ thuật toán nhúng watermark trong miền chưa nén JPEG

Nhận thấy trong mô hình thuật toán này có khối chức năng biến đổi DCT ngược 2 chiều 16x16 (IDCT16x16). Đây là khối thuật toán khá phức tạp và đang được thực hiện (chưa hoàn thiện trong luận văn này).

Khối watermarking trong miền chưa nén được thiết kế tổng hợp bằng mã VHDL (watermarking_block_uncompress) và được mô tả trên Hình 4.32.

Khối watermarking_block_uncompress cũng được thiết kế với các hệ số watermarking α = ß = 1. Các chân tín hiệu giao diện của khối:

CLK: tín hiệu xung nhịp của hệ thống. RST: tín hiệu reset của hệ thống.

Chro_in: tín hiệu báo tín hiệu đầu vào khối là tín hiệu chói hay màu (trong khối này mặc định chro_in=’0’).

Rdy_in: tín hiệu báo có tín hiệu data tích cực vào khối xử lý, mức tích cực ‘1’. Y_in1(7:0): tín hiệu chói của ảnh gốc, thiết kế dưới dạng module 8 bits, trong

đó 1 bit dấu và 7 bits giá trị.

Y_in2(7:0): tín hiệu watermark, thiết kế dưới dạng module 8 bits, trong đó 1 bit dấu và 7 bits giá trị.

Dout(7:0): tín hiệu data đầu ra khối, thiết kế dưới dạng module 8 bits, trong đó 1 bit dấu và 7 bits giá trị.

Chro_out_i: tín hiệu báo tín hiệu đầu ra khối là tín hiệu chói hay màu (trong khối này thì chro_out=’0’).

Rdy_out_i: tín hiệu báo có tín hiệu data tích cực đầu ra, mức tích cực là ‘1’. Tiếp theo thực hiện tổng hợp khối Watermarking-JPEG trong miền chưa nén (jpeg_watermarking_in_uncompressed_domain) bằng mã VHDL được mô tả trên Hình 4.33.

Khối buffer_uncompress có chức năng làm trễ để sao cho tại tín hiệu đầu ra bộ đệm và tín hiệu đầu ra khối watermarking_block_uncompress tích cực tại cùng một thời điểm. Theo tính toán thiết kế thì khối bộ đệm làm trễ buffer_uncompress tín hiệu khoảng 182 chu kỳ xung nhịp.

Các chân tín hiệu giao diện của hệ thống: CLK_in: tín hiệu xung nhịp hệ thống RST_in: tín hiệu reset cho cả hệ thống. Ce_in: tín hiệu khích hoạt hệ thống.

Red_in(7:0): tín hiệu màu R 8 bits của ảnh gốc được lấy sau điều chế gamma (camera) đưa vào khối jpeg_watermarking_in_compressed_domain.

Green_in(7:0): tín hiệu G 8 bits của ảnh gốc được lấy sau điều chế gamma (camera) đưa vào khối jpeg_watermarking_in_compressed_domain.

Blue_in(7:0): tín hiệu B 8 bits được lấy sau điều chế gamma (camera) đưa vào khối jpeg_watermarking_in_compressed_domain.

Watermark_in(7:0): tín hiệu watermark, thiết kế dưới dạng module 8 bits, trong đó 1 bit dấu và 7 bits giá trị.

jpeg_water_out(15:0): tín hiệu data của ảnh đã được nhúng waterark, 16 bits trong đó 1 bit dấu và 15 bit giá trị.

jpeg_water_rdy_out: tín hiệu báo hiệu có tín hiệu data tích cực đầu ra khối, mức tích cực là ‘1’.

Trong mô hình hệ thống watermarking-JPEG trong miền chưa nén này , khối IDCT16x16 đang được phát triển (chưa hoàn chỉnh trong luận văn này).

Kết luận: Để có thể thực hiện xây dựng các khối thuật toán bằng mã VHDL thì yêu cầu trước tiên phải phân tích các thuật toán rất chi tiết, chi tiết tới từng phép

cộng và nhân. Việc xây dựng các khối này có thể lựa chọn trực tiếp viết bằng mã VHDL hay có thể dùng công cụ sơ đồ khối System Generator rồi sau đó tạo mã VHDL. Sử dụng công cụ System Generator có ưu điểm là đơn giản bằng đồ họa, mô phỏng kết quả dễ dàng sử dụng liên kết với Matlab/Simulink, nhưng nó có nhược điểm là khi generate ra mã VHDL sẽ tạo ra các khối mã rất phức tạp yêu cầu tài nguyên hệ thống lớn. Công cụ này đòi hỏi người thiết kết phải rất am hiểu hệ thống, đặc biệt là việc tổ chức bộ nhớ RAM. Luận văn đã sử dụng kết hợp cả hai phương pháp này.

Các kết quả thực hiện bằng VHDL và trên FPGA chủ yếu là cho mô hình Watermarking-JPEG trong miền nén, sẽ được trình bày trong Chương 5.

Một phần của tài liệu các thuật toán cơ bản của chuẩn nén ảnh tĩnh JPEG Baseline (Trang 90 - 96)