Cấu trúc khung ảnh mã hóa trong lớp VLC của H264

Một phần của tài liệu Nghiên cứu điều khiển tốc độ video h264 thích ứng ở các mạng có băng thông hạn chế (Trang 36 - 40)

2. Lớp mã hoá video (VLC)

2.1 Cấu trúc khung ảnh mã hóa trong lớp VLC của H264

Cũng như các chuẩn video trước lớp VLC của H264 được thiết kế theo phương pháp mã hoá video lai ghép dựa trên các khối nhỏ (block). Mỗi ảnh được mã hoá được biểu diển bằng các khối nhỏ được gọi là Macroblock (như được thể hiện trong hình … ). Thuật toán mã hóa nguồn cơ bản của H264 là sự kết hợp giữa dự đoán liên khung để khai thác sự dư thừa thống kê theo thời gian và mã hóa chuyển đổi (transform) dựa trên dự đoán dư thừa để khai thác sự dư thừa thống kê về không gian. Không có phần tử nào trong VLC là thành phần chủ yếu cho việc cải thiện đáng kể hiệu quả nén so với các chuẩn trước mà hiệu quả nén được tăng lên đáng kể là do nhiều cải thiện nhỏ trong bộ mã hóa H264 tạo nên.

Mai Gia Hà  Page 36 

Chuẩn mã hoá H264 cũng như các chuẩn mã hoá trước đó sử dụng gian màu

YCbCr cho việc lấy mẫu ảnh nhằm khai thác vấn đề giảm độ phân giải của các thành phần Cb và Cr do cơ quan trực giác của con người ít nhậy cảm với thành phần màu hơn

so với thành phần độ chói. Trong 3 profile được đề xuất đầu tiên (baseline, main và

extend) thì H264 sử dụng lấy mẫu trong không gian màu YCbCr theo kiểu 4:2:0 và sử dụng 8 bít cho việc mã hoá mỗi giá trị mẫu. Tuy nhiên với các ứng dụng đòi hỏi chất lượng cao thì H264 có một số định dạng khác sử dụng lấy mẫu 4:2:2 hoặc 4:4:4 với số lượng bít dành cho mã hoá 1 giá trị mẫu từ 8-12 bít.

Các hình trong H264 có thể được phân thành một hay nhiều Slice group, mỗi

slice group có thể có 1 hoặc nhiều slice, mỗi slice gồm một chuỗi các MB được xử lý cùng một kiểu quét. Các slice có thể được truyền và giải mã một cách độc lập với các slice khác (ASO, arbitrary slice ordering) của ảnh điều này làm cải thiện delay của các ứng dụng realtime khi truyền trên mạng gói hiện nay. Các MB trong slice có thể sử dụng FMO (flexible macroblock ordering) hoặc không tuỳ vào các ứng dụng. Khi slice sử dụng FMO thì nó sẽ thay đổi cách các hình được chia nhỏ thành các slice và MB bằng cách sử dụng cấu trúc slice group, slice và macroblock một cách mềm dẻo trên hình mỗi slice có thể sẽ được áp dụng các cách ánh xạ MB vào các slice group khác nhau như là interlive, dispersed, foreground, boxout, raster, wipe. Trường hợp không sử dụng FMO là trường hợp đặc biệt chỉ có 1 slice group

Mai Gia Hà  Page 37 

a) kiểu interleave b) kiểu disperse c) kiểu foreground và background

d) kiểu box out e) kiểu raster f) kiểu wipe

Hình 3.3 Các kiểu ánh xạ sử dụng cho slice group

Hình 3.4 Ảnh sử dụng 1 slice group

Các slice của ảnh có thể được mã hóa sử dụng các kiểu mã hóa khác nhau do đó chúng được chia thành các loại slice tương ứng như được liệt kê ở bảng dưới đây:

Mai Gia Hà  Page 38 

I (Intra) Chỉ bao gồm khối macro I (mỗi khối hoặc khối macro được dự đoán từ

dữ liệu được mã hóa trước đó trong cùng một slide)

P (Predicted) Bao gồm khối macro P (mỗi khối macro hoặc vùng macro được dự

đoán từ danh sách các ảnh trong list 0 hoặc là khối macro I

B (Bidirection) Bao gồm các khối macro B( mỗi khối hay một vùng khối macro được dự đoán từ danh sách ảnh list 0 hoặc list 1) hoặc là khối macro I

SP (Swiching P) Tạo điều kiện thuận lợi cho việc chuyển đổi giữa các luồng dữ liệu đã được mã hoá, chứa macroblock loại P hoặc I.

SI (Swiching I) Tạo điều kiện thuận lợi cho việc chuyển đổi giữa các luồng dữ liệu đã

được mã hoá, chứa macroblock loại SI (một dạng đặc biệt của macroblock mã hoá kiểu intra)

Bảng 3.1 Các loại slice

Các slice bao gồm nhiều MB và mỗi MB trong slice lại có thể phân nhỏ thành các

block nhỏ hơn để mã hóa đồng thời các Slice trong 1 hình được mã hóa độc lập với

nhau nên để giải mã được 1 slice ở bên thu thì dữ liệu mã hóa cho 1 slice phải được cấu trúc theo một cú pháp chặt chẽ cho cả slice và macroblock.

Mai Gia Hà  Page 39 

Mb_type Xác định liệu khối macro là loại I hay P, xác định kích cỡ một

vùng trong khối macro

Mb_pred Xác định chế độ mã hóa trong ( khối macro intra), danh sách

tham chiếu List 0 hay List 1 và mã hóa các vector chuyển động khác nhau cho mỗi phần của khối macro

Sub_mp_pred Xác định kích cỡ khối macro con. Danh sách tham chiếu List 0

hay 1 cho mỗi vùng khối macro và mã hóa các vector chuyển động khác nhau cho mỗi vùng con

Coded_block_pattern Xác định khỗi 8x8 nào ( độ chói hay sắc) sẽ mang hệ số biến

đổi

Mb_qp_delta Thay đổi tham số lượng tử hóa

Residual Hệ số biến đổi đã được mã hóa ứng với mẫu dư thừa sau khi dự

đoán

Bảng 3.2 Các thành phần cấu trúc của Macroblock

Một phần của tài liệu Nghiên cứu điều khiển tốc độ video h264 thích ứng ở các mạng có băng thông hạn chế (Trang 36 - 40)