Cấu trúc tiêu chuẩn H.264

Một phần của tài liệu Nghiên cứu hệ thống mạng cung cấp dịch vụ IPTV (Trang 107)

Tiêu chuẩn nén video H.264 bao gồm 3 profiles: Baseline Profile, Main Profile và Extended Profilẹ Mỗi profile bao gồm một tập hợp các chức năng hỗ

105

trợ cho kỹ thuật mZ hóạ Mỗi profile có những đặc điểm, độ phức tạp và khả năng nén khác nhau đ−ợc dùng trong các ứng dụng phù hợp.

Hình 4.2. mô tả mối quan hệ và các chức năng chính trong ba profile của tiêu chuẩn nén video H.264.

Hình 4.2. Cấu trúc và quan hệ giữa các profile của tiêu chuẩn H.264 4.1.3. Định dạng tín hiệu video

Chuẩn nén H.264 hỗ trợ mZ hóa và giải mZ tín hiệu video cả ở chế độ quét liên tục và quét xen kẽ với chuẩn lấy mẫu: 4:2:0.

Với mục tiêu hỗ trợ các ứng dụng truyền tín hiệu video thời gian thực, H.264 tạo ra sự phân cách rõ ràng giữa lớp nén video (VCL – Video Coding Layer) và lớp t−ơng thích mạng (NAL – Network Abstraction Layer). Tín hiệu đầu ra của lớp VCL là chuỗi bít liên tục đ−ợc ánh xạ vào các đơn vị dữ liệu của lớp NAL. Luồng tín hiệu video mZ hóa có thể truyền qua mạng chuyển mạch gói, một kênh truyền dẫn hoặc l−u trữ thành tệp tin trên các thiết bị l−u trữ.

106

4.2. Một số vấn đề cơ bản của H.264

4.2.1. ảnh tham chiếu và quản lý ảnh tham chiếu trong H.264

Trong kỹ thuật nén video H.264, cả ở phía mZ hóa và giải mZ, các ảnh đZ đZ đ−ợc mZ hóa hoặc đZ đ−ợc giải mZ đ−ợc dùng làm ảnh tham chiếu cho việc mZ hóa, giải mZ các ảnh tiếp theọ Điểm đáng chú ý là H.264 sử dụng nhiều ảnh tham chiếu cùng lúc, do đó nó cần phải có cơ chế quản lý các ảnh tham chiếụ Các ảnh này đ−ợc l−u trữ trong bộ nhớ đệm và đ−ợc đánh số nằm trong hai danh sách list0 và list1.

Các MB, MB con và các phần của MB trong mảnh loại P đ−ợc tham chiếu từ các ảnh trong danh sách list0, đối với slile loại B, đ−ợc tham chiếu trong danh sách cả list0 và list1.

4.2.2. Macroblock(MB) và mảnh (slice)

Để tăng c−ờng hiệu quả áp dụng kỹ thuật dự đoán và bù chuyển dịch, H.264 xử lý MB không chỉ với kích th−ớc cố định 16x16 đối với tín hiệu chói, 8x8 đối với tín hiệu hiệu màu mà còn xử lý đối với từng phần nhỏ trong MB (macroblock partitions). Ví dụ đối với tín hiệu chói, tùy theo tính chất, giá trị của các mẫu, mà MB kích th−ớc 16x16 có thể đ−ợc xử lý theo một trong các cách d−ới đây:

- Một phần 16x16. - Hai phần 8x16. - Hai phần 16x8. - Bốn phần 8x8.

Phần MB có kích th−ớc 8x8 có cấu trúc hình vuông nên đ−ợc coi là một macroblock con (sub-macroblock). MB con này cũng có thể đ−ợc chia nhỏ và xử lý từng phần của MB con, có thể là 1 phần 8x8, 2 phần 4x8, 2 phần 8x4 hoặc 4 phần 4x4. Hình 4.3:

107

Hình 4.3. Các phần MB và các phần MB con sử dụng trong H.264

Với cách chia nhỏ MB nh− vậy, quá trình xử lý MB của H.264 rất mềm dẻọ Đối với các vùng ảnh có cấu trúc đồng nhất, MB đ−ợc xử lý với khối điểm ảnh có kích th−ớc lớn; đối với các vùng ảnh chi tiết, phức tạp, MB đ−ợc chia thành các phần có kích th−ớc nhỏ tạo nên cấu trúc hình cây trong xử lý MB. Trong một khung hình, các MB gần nhau theo thứ tự quét hình và có tính chất giống nhau đ−ợc gộp lại với nhau nhằm dễ dàng quản lý và xử lý tạo thành mảnh (slice). Các loại mảnh của H.264 đ−ợc liệt kê trong bảng 4.1.

Bảng 4.1. Các loại mảnh đ−ợc định nghĩa trong H.264

Loại mảnh Đặc điểm

I (Intra) - Chỉ chứa MB loại I, tức là các MB hoặc các phần của MB đ−ợc dự đoán từ dữ liệu đZ đ−ợc mZ hóa trong cùng mảnh.

P (Predicted) - Chứa các MB loại I hoặc loại P. MB loại P là MB hoặc các phần của MB đ−ợc dự đoán từ danh sách tham chiếu list0.

B (Bi- direction

- Chứa các MB loại I hoặc loại B. MB loại B là MB hoặc các phần của MB đ−ợc dự đoán từ danh sách tham chiếu list1 hoặc cả hai

108

predicted) danh sách tham chiếu list1 và list0. SP

(Switching P)

- Cho phép chuyển đổi giải mZ giữa các luồng tín hiệu mZ hóa khác nhau chứa MB loại P và (hoặc) loại Ị

SI (Switching I)

- Cho phép chuyển đổi giải mZ giữa các luồng tín hiệu mZ hóa khác nhau chứa MB loại SỊ

4.3. Cấu trúc Baseline Profile của H.264

Baseline Profile hỗ trợ chuỗi tín hiệu video chứa slice I và slice P. Do đó chuỗi tín hiệu video mZ hóa chỉ chứa MB loại P, loại I hoặc MB Bỏ trống (Skipped). Khi MB Skipped xuất hiện trong chuỗi tín hiệu, điều đó có nghĩa không có dữ liệu cho MB hiện tạị Bộ giải mZ sẽ tính toán và giải mZ cho MB theo ph−ơng pháp dự đoán và bù chuyển dịch và lấy ảnh đầu tiên trong danh sách list0 làm ảnh tham chiếụ

Sau khi dự đoán, giá trị phần d− của mỗi macroblock hoặc khối điểm ảnh con của macroblock đ−ợc cấu trúc lại và thực hiện chuyển đổi DCT với kích th−ớc 4x4.

Baseline Profile thực hiện mZ hóa entropy:

+ Sử dụng bảng mZ chiều dài biến đổi thích nghi CAVLC (Context- Adaptive Variable Length Coding) đối với các hệ số l−ợng tử DCT.

+ Sử dụng mZ có chiều dài cố định hoặc mZ có chiều dài biến đổi Exponential-Golomb đối với các phần tử cú pháp của MB.

4.3.1. Độ phân giải trong xác định vector chuyển dịch

Mỗi khối của MB đ−ợc xử lý và dự đoán từ một vùng có cùng kích th−ớc trong ảnh tham chiếụ Độ lệch về vị trí giữa hai vùng đó chính là vector chuyển dịch.

109

- Vector chuyển dịch đ−ợc tính toán với độ phân giải điểm ảnh đối với tín hiệu chói và 1/8 điểm ảnh đối với tín hiệu hiệu màụ Để cho kết quả với độ phân giải nh− vậy, ảnh tham chiếu phải đ−ợc nội suy với độ phân giải t−ơng ứng. Quá trình nội suy các điểm ảnh từ các điểm ảnh đZ có đ−ợc thực hiện nh− sau:

- Nội suy những điểm độ phân giải 1/2 điểm ảnh: (Hình 4.4) Đ−ợc nội suy từ 6 giá trị của các mẫu trên cùng hàng với trọng số là các hệ số của bộ lọc FIR tuyến tính nh− sau:

b = round((E - 5F + 20G + 20H – 5I + J)/32) (4.1)

Hình 4.4. Nội suy các điểm ảnh ở độ phân giải 1/2 điểm ảnh

- Nội suy những điểm độ phân giải 1/4 điểm ảnh: (Hình 4.5) Các giá trị mẫu ở độ phân giải đ−ợc nội suy từ các điểm độ phân giải nguyên và các điểm độ phân giải 1/2 theo công thức trung bình cộng giá trị của hai điểm ảnh liền kề theo chiều ngang, chiều dọc hoặc đ−ờng chéọ Trong ví dụ ở hình 4.5.

a = round((G+b)/2) d = round((G+h)/2)

110

Hình 4.5. Nội suy các giá trị ở độ phân giải 1/4 điểm ảnh

- Nội suy các điểm ảnh độ phân giải 1/8 đ−ợc tính bằng trung bình theo khoảng cách của các điểm độ phân giải nguyên lân cận. Hình 4.6.

a = round([(8-dx)(8-dy)A + dx(8-dy)B + (8-dx) dy A + dx.dỵD]) (4.3) Trong hình 4.6 dx=2, dy=3, do đó:

a = round[(30A + 10B + 18C + 6D)/64] (4.4)

Hình 4.6. Nội suy các giá trị ở độ phân giải 1/8 điểm ảnh 4.3.2. Dự đoán vector chuyển dịch

Vector chuyển dịch của các khối điểm ảnh gần nhau có tính t−ơng quan với nhaụ Do đó vector chuyển dịch của một khối MB có thể đ−ợc dự đoán từ các vector chuyển dịch của các khối MB lân cận. Nhằm tăng hiệu quả nén, H.264 còn áp dụng kỹ thuật dự đoán vector chuyển dịch. Thay vì phải truyền cả vector chuyển dịch của MB hiện thời, bộ mZ hóa tính toán và chỉ truyền đi vector

111

chuyển dịch chênh lệch (DMV) giữa vector chuyển dịch thực (MV) và vector chuyển dịch dự đoán (PMV). Khi đó l−ợng thông tin sẽ ít hơn và làm tăng hiệu quả nén.

Vector chuyển dịch dự đoán (PMV) đ−ợc tính toán từ các vectors của các khối MB lân cận đ−ợc chỉ ra nh− trong hình 4.7.

Hình 4.7. Các khối MB lân cận của MB hiện thời

E là MB hiện thời, A, B, C là các MB đZ đ−ợc mZ hóa, vector chuyển dịch của E đ−ợc tính từ các vector chuyển dịch của A, B và C. Nếu có nhiều phần MB trong A thì phần nào nằm trên nhất sát bên trái E sẽ đ−ợc tính. T−ơng tự, nếu có nhiều phần MB trong B, C thì phần nào nằm trái nhất sát bên trên E sẽ đ−ợc tính. Cách tính cụ thể nh− sau:

- Tr−ờng hợp E gồm 2 phần MB 16x8: Vector của phần trên sẽ đ−ợc tính bằng vector của B, của phần d−ới đ−ợc tính bằng vector của Ạ

- Tr−ờng hợp E gồm 2 phần MB 8x16: Vector của phần trái sẽ đ−ợc tính bằng vector của A, của phần phải đ−ợc tính bằng vector của C.

- Tr−ờng hợp còn lại, các vector đ−ợc tính bằng trung bình các vector của A, B, và C.

- Tr−ờng hợp MB Bỏ qua (Skipped MB), một phần MB 16x16 đ−ợc tạo ra và đ−ợc tính bằng trung bình cộng của A, B và C.

112 4.3.3. Dự đoán trong ảnh (Intra Prediction)

Nhằm cải thiện hiệu quả nén dựa trên giảm sự d− thừa thông tin trong miền không gian, H.264 sử dụng kỹ thuật dự đoán trong ảnh. Một khối điểm ảnh có thể đ−ợc dự đoán từ các điểm ảnh lân cận. Hình 4.8 là ví dụ về một ảnh đ−ợc dự đoán bằng kỹ thuật dự đoán trong ảnh.

Hình 4.8. Ví dụ về một khung hình sử dụng kỹ thuật dự đoán trong ảnh

Đối với tín hiệu chói, 1 MB đ−ợc chia thành các khối điểm ảnh có kích th−ớc 4x4 hoặc 16x16 và thực hiện nội suy các khối này dựa trên giá trị của các điểm ảnh ở khối lân cận với nó. Hình 4.9. là 9 chế độ nội suy của khối điểm ảnh 4x4. Hình 4.10 là 4 chế độ dự đoán nội suy của khối điểm ảnh 16x16.

113

Hình 4.10. Các chế độ dự đoán nội suy tín hiệu chói của khối điểm ảnh 16x16

Đối với tín hiệu hiệu màu, 1MB đ−ợc thực hiện dự đoán nội suy với khối có kích th−ớc 8x8. Các khối này có 4 chế độ dự đoán nội suy giống nh− đối với khối kích th−ớc 16x16 của tín hiệu chói, chỉ khác ở chỗ là tên của chế độ 0(DC Mode - chế độ 1 chiều) và chế độ 2 (vertical mode – chế độ dọc) là tráo đổi với nhaụ

4.3.4. Bộ lọc giảm hiện t−ợng hình thành khối (Deblocking filter)

Khi sử dụng ph−ơng pháp dự đoán bù chuyển dịch theo khối, do quá trình xử lý thực hiện độc lập giữa các khối nên khi giải mZ, các khối ghép lại với nhau và hình thành nên ranh giới giữa các khối làm cho ảnh giải mZ có cấu trúc ô vuông. Để loại bỏ hiện t−ợng này, H.264 sử dụng bộ lọc loại bỏ các ranh giới giữa các khốị

4.3.5. Biến đổi và L−ợng tử hóa

114

Dữ liệu trong MB đ−ợc mZ hóa truyền đi theo thứ tự nh− trong hình 4.11. Đối với MB tín hiệu chói dự đoán trong ảnh kích th−ớc 16x16, các hệ số một chiều đ−ợc sắp xếp thành một khối có kích th−ớc 4x4 và truyền đi tr−ớc (khối -1 trong hình 4.11.), tiếp sau đó là các khối từ 0 – 15. Các tín hiệu hiệu màu cũng đ−ợc mZ hóa và truyền đi các thành phần một chiều tr−ớc các thành phần còn lạị Khối 16, 17 là các hệ số một chiều, các khối còn lại từ 18 đến 25 là các thành phần cao tần còn lại của tín hiệu hiệu màụ

H.264 sử dụng ba phép biến đổi tùy theo kiểu dữ liệu phần d− đ−ợc mZ hóa:

- Sử dụng phép biến đổi Hadamard kích th−ớc 4x4 cho dữ liệu hệ số 1 chiều trong phần MB kích th−ớc 16x16 tín hiệu chói dự đoán trong ảnh.

- Sử dụng phép biến đổi Hadamard kích th−ớc 2x2 đối với dữ liệu hệ số 1 chiều trong phần MB của tín hiệu hiệu màụ

- Sử dụng phép biến đổi DCT kích th−ớc 4x4 cho tất cả các phần MB dữ liệu phần d− có kích th−ớc 4x4.

4.3.5.1. Biến đổi và l−ợng tử hóa 4x4 cho các khối 0-15 và 18-25

H.264 sử dụng phép biến đổi DCT 4x4 cho các khối 0-15 và 18-25. Nhằm giảm bớt dung l−ợng nhớ cần thiết để biểu diễn các giá trị hệ số, H.264 chuyển các giá trị hệ số về số nguyên và thực hiện phép biến đối DCT với ma trận hệ số nguyên. Khi đó cần có các hệ số tỷ lệ để biến đối từ dạng ma trận DCT hệ số thực sang dạng hệ số nguyên. Các giá trị hệ số tỷ lệ đ−ợc kết hợp cùng với giá trị l−ợng tử hóa thống nhất giữa phía mZ hóa và phía giải mZ. Các b−ớc biến đổi và l−ợng tử hóa thực hiện nh− sau:

115

(4.5) - B−ớc 2: L−ợng tử hóa:

(4.6)

Trong đó Qstep đ−ợc lấy từ bảng b−ớc l−ợng tử H.264 thông qua giá trị QP.

Bảng 4.2. B−ớc l−ợng tử hóa của H.264 CODEC

Quá trình giải l−ợng tử (Rescale) và biến đổi DCT ng−ợc đ−ợc đ−ợc thực hiện trong quá trình giải mZ.

4.3.5.2. Biến đổi và l−ợng tử hóa 4x4 cho khối -1

Phép biến đổi và l−ợng tử hóa này đ−ợc sử dụng đối với trong MB tín hiệu chói dự đoán trong ảnh kích th−ớc 16x16.

H.264 sử dụng phép biến đổi Hadamard cho ma trận hệ số một chiều theo công thức:

116

Trong đó WD là ma trận hệ số một chiềụ

ở phía giải mZ, phép biến đổi Hadamard ng−ợc đ−ợc tính theo công thức:

(4.8)

Quá trình l−ợng tử hóa và giải l−ợng tử hóa đ−ợc thực hiện thông qua tham số thiết lập QP.

4.3.5.3. Biến đổi và l−ợng tử hóa 2x2 cho khối 16,17

Đối với hai khối 4x4 tín hiệu màu, H.264 thực hiện phép biến đổi DCT theo công thức:

(4.9) Phép biến đổi ng−ợc ở phía mZ hóa đ−ợc tính theo công thức:

(4.10) Quá trình l−ợng tử hóa và giải l−ợng tử hóa đ−ợc thực hiện thông qua tham số thiết lập QP.

4.3.6. Sắp xếp các hệ số

Thứ tự các hệ số của ma trận hệ số đ−ợc quét theo thứ tự của đ−ờng zigzag nh− trong hình 4.12.

117

Hình 4.12. Thứ tự quét các hệ số 4.3.7. Mã hóa Entropy

Từ lớp slice trở đi, dữ liệu của các phần tử đ−ợc mZ hóa hoặc sử dụng mZ có chiều dài biến đổi VLC hoặc sử dụng ph−ơng pháp mZ hóa toán học thích nghi (context adaptive arithmetic coding) tùy theo chỉ thị chế độ mZ hóa entropy entropy_coding_modẹ Nếu chỉ thị này đ−ợc thiết lập giá trị 0, các dữ liệu phần d− đ−ợc mZ hóa sử dụng bảng mZ CAVLC, các dữ liệu khác đ−ợc mZ hóa Exp- Golomb.

4.3.7.1. M[ Entropy Exp-Golomb

Exp-Golomb là một cấu trúc mZ hóa entropy đơn giản. Một từ mZ Exp- Colomb là một chuỗi bit gồm M bit 0, một bit 1 tiếp sau đó là phần thông tin của từ mZ:

[M bit 0][1][INFO]

118

Quy tắc mZ hóa và giải mZ của mZ này nh− sau:

- MZ hóa: Tính M, và xác định phần thông tin INFO cho từ mZ theo công thức sau:

M = floor (log2[codenum + 1])

INFO = (codenum +1-2M) biểu diễn d−ới dạng nhị phân Trong đó codenum là giá trị cần mZ hóạ

Sau khi xác định các phần thông tin, ghép các phần đó lại ta đ−ợc từ mZ t−ơng ứng. Bảng 4.3 là ví dụ các từ mZ của một số giá trị.

Giải mZ: Sau khi xác định các thành phần thông tin trong từ mZ nhận đ−ợc gồm M và INFO, tính giá trị mZ hóa ban đầu theo công thức:

codenum = 2M + INFO -1 (4.11)

4.3.7.2. M[ Chiều dài biến đổi thích nghi (Context-based Adaptive Variable Length Coding)

Chuẩn H.264 Baseline sử dụng mZ CAVLC để mZ hóa các hệ số l−ợng tử của các phần MB phần chênh lệch kích th−ớc 4x4 hoặc 2x2. MZ CAVLC có xét đến tính t−ơng quan giữa số hệ số khác không của các khối lân cận và có bảng mZ thích ứng với số hệ số đó nên hiệu quả nén caọ Quá trình mZ hóa CAVLC đ−ợc thực hiện nh− sau:

Một phần của tài liệu Nghiên cứu hệ thống mạng cung cấp dịch vụ IPTV (Trang 107)