Khối chuyển đổi tốc độ lấy mẫu màu

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 49 - 51)

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

4.1.2.2.Khối chuyển đổi tốc độ lấy mẫu màu

Sự chuyển đổi giữa các định dạng màu này có thể đạt được bằng cách sử dụng phương pháp bộ lọc. Một vài bộ chuyển đổi yêu cầu lọc chỉ theo chiều H, một vài chỉ theo chiều V, và một vài theo cả hai chiều H và V. Trong phạm vi đề tài sử dụng bộ chuyển đổi tốc độ lấy mẫu màu 4:4:4 sang 4:2:0, nên ở đây chỉ giới thiệu bộ chuyển đổi 4:4:4to4:2:0.

Bộ chuyển đổi này là khối xử lý 2 chiều, thực hiện chuyển đổi xuống theo cả chiều ngang và chiều dọc bởi một hệ số của 2. Theo mặc định thì điều này đạt được bằng cách sử dụng cấu trúc 6-tap với 3 tap ngang và 2 tap dọc. Bộ lọc này là đối xứng theo cả chiều ngang và dọc, và nó được phản ánh trong các hệ số mặc định mà tương đương với [0.0625 0.375 0.0625] và được biểu diễn trong

định dạng 5 bit bởi tập số nguyên [1 6 1], và được lặp lại cho mỗi 2 vị trí dọc. Khối xử lý được viết bằng mã VHDL (hình 4.8a) (dựa vào IP core của Xilinx) và được mô tả khối bằng System generator như trình bày trên Hình 4.8b.

(a) (b)

Hình 4.8: Khối chuyển đổi 4:4:4to4:2:0

Các hệ số được sử dụng như một generic cho khối này là: Num_v_tap: integer :=3;

Num_h_tap: integer :=2;

Coefs : integer_array:= (a,b,c,d,e,f,…);

a là hệ số được sử dụng cho mẫu đầu vào thấp nhất trong độ mở của bộ lọc (hình 4.9).

Hình 4.9: cấu hình hệ số 4:4:4to4:2:0

Trong đó : mẫu đầu vào, X: pixel đầu ra đích cho độ mở này. Các chân tín hiệu giao diện của khối:

Luma_in: tín hiệu chói đầu vào

Cr_in: tín hiệu hiệu số màu Cr đầu vào

Cb_in: tín hiệu hiệu số màu Cb đầu vào

Luma_out: tín hiệu chói đầu ra, nó là phiên bản trễ của tín hiệu chói đầu vào.

Chroma_out: tín hiệu màu đầu ra đã được lấy mẫu lại. CrCb được đặt trong cùng một độ rộng băng tần và Cr luôn luôn xuất hiện trước.

Din_valid: tín hiệu này thì giống hoàn toàn với tín hiệu hs_in trên các dòng để lọc.

Dout_valid: phiên bản trễ của din_valid, cho biết dữ liệu có giá trị tại luma_out và chroma_out.

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 49 - 51)