2011-12-19 82 views
8

Tôi có ví dụ 4 * 4 hình ảnh. Tôi muốn tách riêng các thành phần Y, U và V. Cách thực hiện nếu hình ảnh là YUV 422, YUV 420 và YUV444. Tôi quan tâm đến việc biết cấu trúc của mảng như thế nào Y, U và V được lưu trữ trong 422,420 và 444, để nó có thể được truy cập.YUV 422, YUV 420, YUV 444

Trả lời

12

This trang web cung cấp cho bạn tổng quan khá tốt về các định dạng YUV khác nhau. Ngoài ra còn có một cấu trúc pixel cho sẵn.

Để làm rõ: Các số này dùng để xác định color component subsampling. Ví dụ: YUV 444 = 4: 4: 4 lấy mẫu con, nghĩa là mỗi thành phần trong ba thành phần (Y, U và V) đều có cùng tốc độ lấy mẫu. Trong khi 4: 2: 2 nói rằng U và V chỉ được lấy mẫu với một nửa tỷ lệ Y. Hoặc, nói cách khác, 2 Byte cho Y và cho U và V 1 Byte tương ứng, nếu độ sâu là 1 Byte. Điều này ngụ ý rằng Y có thể có phạm vi động cao hơn.

Cần lưu ý rằng tiêu chuẩn JPEG xác định các yếu tố lấy mẫu ngang và dọc cho mỗi thành phần màu. Hệ thống thị giác của con người có 20:1 ratio of the luma sensors (rods) to chroma sensors (cones). Vì lý do này, thành phần độ sáng điển hình không được lấy mẫu phụ, nhưng JPEG standard không cho phép mã hóa nội dung đó.

0

đó là một câu hỏi khá cũ, tuy nhiên tôi vừa hoàn thành một số công việc về giải mã YUV và tôi muốn chia sẻ một số thông tin. Có 3 khía cạnh chính của lược đồ YUV: 1 - nếu bộ đệm YUV nguồn là bộ đệm được đóng gói hoặc phẳng. Đóng gói có nghĩa là các bit YUV được nhóm lại với nhau, mặt phẳng có nghĩa là bộ đệm Y, U và V được phân tách trong 3 vùng nhớ khác nhau. 2 - Kích thước kênh YUV; kênh Y, U, V duy nhất có thể là 8 bit, 10 bit, 12 bit, v.v. 3 - tỷ lệ lấy mẫu; A: B: C. 4: 2: 2 có nghĩa là bạn theo chiều ngang có 1 giá trị Y cho mỗi pixel và một giá trị U và V duy nhất được chia sẻ giữa hai pixel neightboard.

Tôi vừa làm việc trên giải mã YUV 4: 2: 2 v210, sau link có mã nguồn GLSL để giải mã và tài nguyên mà tôi đã tham chiếu. Mọi lời khuyên đều được chào đón, đó là bộ giải mã đầu tiên của tôi.