Dự đoán Intra

Một phần của tài liệu xây dựng engine giải mã video h.264 trên hệ thống nhúng (Trang 93 - 96)

Trong quá trình nén các ảnh, dự đoán Inter không phải lúc nào cũng được sử dụng. Đặc biệt, đối với các cảnh chuyển trong một đoạn phim, khi ảnh đầu tiên của cảnh mới không có hoặc có rất ít độ tương đồng so với các ảnh trước đó. Khi đó, bộ nén sẽ sử dụng dự đoán Intra cho ảnh này.

Trong dự đoán Intra, block dự đoán P được tạo thành dựa trên các block đã được mã hóa trước đó trong cùng 1 ảnh. Block khác biệt có được bằng cách trừ block hiện tại cho block dự đoán P. Block khác biệt sẽ thực hiện quá trình biến đổi, lượng tử và nén entropy (như hình sau)

94

Hình 4-21: Quá trình dự đoán Intra

Đối với thành phần luma, block dự đoán P được có thể gồm 4x4 điểm ảnh (Intra 4x4) hoặc 16x16 điểm ảnh (Intra 16x16). Trong một ảnh, dự đoán Intra 4x4 được dùng cho các vùng ảnh có nhiều chi tiết thay đổi, còn Intra 16x16 dùng cho các vùng ảnh có tính tương đồng cao.

Có 9 mode dự đoán để tìm block dự đoán P cho block 4x4 luma; 4 mode dự

đoán cho block 16x16 luma; và 4 mode dự đoán cho các thành phần chroma trong macroblock. Bộ nén sẽ lựa chọn mode tạo P thích hợp sao cho khác biệt giữa P và block cần mã hóa là nhỏ nhất. Mode dự đoán sẽ được gởi cho quá trình nén entropy.

4.4.2.1 Các mode dự đoán cho thành phần luma 4x4 (Intra 4x4)

Hình 4-22 mô tả block 4x4 thuộc thành phần luma trong macroblock cần được dự đoán Intra. Các điểm ảnh ở trên và bên trái được ký hiệu từ A đến H, từ M đến L (Hình 4-23) là các điểm ảnh đã được mã hóa và có thể được dùng làm tham chiếu khi dự đoán bởi bộ nén và bộ giải nén.

Hình 4-22: Block luma 4x4 cần được dự đoán Intra (trong đường viền trắng)

Hình 4-23: Các điểm ảnh được nén dùng để tham chiếu

95 Từ 9 mode dự đoán, bộ nén sẽ lựa chọn mode tạo P thích hợp nhất áp dụng cho từng block. Giá trị SAE (The Sum of Absolute Errors) ứng với mỗi mode tạo P sẽ xác định mode được dùng để tạo block dự đoán P ứng với giá trị SAE nhỏ nhất.

Hình 4-24: Các mode dự đoán cho block luma 4x4

4.4.2.2 Các mode dự đoán cho block luma 16x16 (Intra 16x16)

Có 4 mode dự đoán đối với Intra 16x16 là vertical, horizontal, DC và plane. Tất cả các mode này sẽ sử dụng 16 điểm ảnh kể trên, 16 điểm ảnh phía trái và/hoặc một điểm ảnh góc trên bên trái của marcoblock cần dự đoán. Tất cả các điểm ảnh này đều đã được giải nén và có thể được dùng để tham chiếu.

Để dự đoán một điểm ảnh trong Intra 16x16 :

 Mode horizontal: dùng điểm ảnh ngay phía trái của điểm ảnh này.

 Mode vertical: dùng điểm ảnh ngay phía trên của điểm ảnh này.

 Mode DC: lấy giá trị trung bình của 32 điểm ảnh ở trên và bên trái của macroblock và gán giá trị này cho tất cả 256 điểm ảnh của marcoblock.

 Mode plane: sử dụng công thức gồm tất cả 33 điểm ảnh đã được giải nén và vị trí của điểm ảnh hiện tại cần dự đoán để suy ra giá trị cho điểm ảnh này.

96

Hình 4-25: Các mode dự đoán Intra 16x16 4.4.2.3 Các mode dự đoán cho block chroma 8x8

Mỗi thành phần chroma 8x8 của một macroblock được dự đoán từ các điểm ảnh chroma đã được mã hóa ở phía trên hoặc bên trái. Các thành phần chroma (Cr, Cb) luôn sử dụng cùng một mode dự đoán.

Có 4 mode dự đoán giống với các mode dự đoán của macroblock 16x16 luma nhưng có thay đổi số thứ tự của các mode. Các mode bao gồm: Mode 0 (DC), Mode 1 (Horizontal), Mode 2 (Vertical), Mode 3 (Plane).

Một phần của tài liệu xây dựng engine giải mã video h.264 trên hệ thống nhúng (Trang 93 - 96)