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).
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.