Phân giải trong xác định vector chuyển dịch

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

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:

119

Sau khi thực hiện biến đổi DCT, l−ợng tử hóa và sắp xếp lại, số các hệ số khác 0 cần truyền đi (Total_Coeffs) và số các hệ số cuối cùng mang giá trị ±1 (TrailingOnes) đ−ợc mZ hóạ

- TotalCoeffs có thể mang giá trị từ 0 (nếu không có hệ số nào khác không) đến 16 (tất cả các hệ số trong khối 4x4 đều khác 0).

- TrailingOnes có thể mang giá trị từ 0 (nếu hệ số khác 0 cuối cùng trong dZy khác ±1) đến 3. Trong tr−ờng hợp số này lớn hơn 3 thì chỉ ba hệ số cuối cùng đ−ợc xét, các hệ số còn lại tính nh− các hệ số bình th−ờng khác.

MZ hóa coeff_token sử dụng nhiều bảng mZ tham chiếu khác nhau tùy theo số hệ số TotalCoeffs. Bảng 4.4 chỉ ra với số hệ số khác nhau, thì các bảng mZ khác nhau đ−ợc sử dụng để mZ hóa coeffs_tocken.

Bảng 4.4 Lựa chọn bảng mZ dựa vào hệ số coeffs token. Số hệ số TotalCoeffs Bảng mã

0,1 Bảng 1

2,3 Bảng 2

4,5,6,7 Bảng 3

8 hoặc lớn hơn Bảng 4

b).B−ớc 2. MZ hóa dấu của dZy hệ số ±1 cuối cùng (TrailingOne sign)

Mỗi hệ số trong dZy các hệ số ±1 cuối cùng đ−ợc mZ hóa phần dấu của nó với quy tắc đảo ng−ợc, tức là xét hệ số có tần số cao tr−ớc và sử dụng một bit để mZ hóa 0: d−ơng, 1: âm.

c). B−ớc 3 . MZ hóa mức (level) cho các hệ số khác 0 còn lại:

Các hệ số có giá trị khác 0 còn lại xét theo thứ tự từ đảo ng−ợc, từ thành phần tần số cao tr−ớc đến thành phần 1 chiều DC đ−ợc mZ hóa mức (bao gồm

120

và phần hậu tố (level_suffix). Chiều dài của level_suffix (suffixLength) có thể từ 0 đến 6 và phụ thuộc vào trị số của hệ số (tính t−ơng thích). Đầu tiên suffixLength đ−ợc chọn bằng 0, sau đó tăng dần nếu trị số của hệ số lớn hơn giá trị ng−ỡng t−ơng ứng với chiều dài đó (Bảng 4.5).

Bảng 4.5. Xác định giá trị ng−ỡng theo chiều dài level_suffix Chiều dài level_suffix Giá trị ng−ỡng

0 1 1 3 2 6 3 12 4 24 5 48

d). B−ớc 4. MZ hóa số hệ số mang giá trị 0 (total_zeros)

Số hệ số mang giá trị 0 trong dZy tính từ hệ số một chiều đến hệ số thành phần tần số cao nhất khác không đ−ợc mZ hóa VLC và chèn vào chuỗi bit.

B−ớc 5. MZ hóa Số hệ số 0 tr−ớc mỗi hệ số khác 0 (run_before)

Số hệ số mang giá trị 0 đứng tr−ớc mỗi hệ số khác 0 đ−ợc mZ hóa VLC theo thứ tự ng−ợc lại từ thành phần tần số cao đến thành phần một chiều DC. Giá trị mZ đ−ợc chọn phụ thuộc vào hai giá trị: Tổng số hệ số 0 đứng tr−ớc hệ số hiện tại (ZeroLeft) và số hệ số 0 đứng liền tr−ớc hệ số hiện tại (run_before). Chú ý:

- Nếu ZeroLeft = 0 thì không cần mZ hóa run_before cho các hệ số còn lại nữạ

- Không cần mZ hóa run_before cho hệ số khác không cuối cùng (thành phần tần số thấp nhất).

121

Ví dụ:

Xét một phần MB sau khi chuyển đổi DCT và l−ợng tử hóa có các hệ số nh− trong bảng ….

Sắp xếp theo thứ tự quét zig-zag ta đ−ợc dZy hệ số nh− sau: 0,3,0,1,-1,-1,0,1,0….

Số hệ số cần mZ hóa: TotalCoeffs = 5. Số hệ số 0: Total_zeros = 3

Chiều dài chuỗi hệ số giá trị ±1 cuối cùng: TrailingOnes = 3. Có 4 hệ số cuối cùng trong dZy mang giá trị ±1nh−ng chỉ ba hệ số cuối đ−ợc xét thành nhóm TrailingOnes, hệ số còn lại coi nh− hệ số khác 0 bình th−ờng khác.

Quá trình thực hiện mZ hóa đ−ợc mô tả nh− trong bảng 2.11:

Bảng 4.6. Ví dụ quá trình thực hiện mZ hóa VLC

Phần tử Giá trị Mã hóa Coeff_token TotalCoeffs =5 TrailingOnes = 3 (Sử dụng bảng tham chiếu 1) 0000100 TrailingOne sign (4) = + 0 TrailingOne sign (3) = - 1 TrailingOne sign TrailingOne sign (2) = - 1 Level(3) = +1 (sử dụng suffixLength = 0) 1 (prefix) Level Level(1) = +3 (sử dụng suffixLength =1) 001 (prefix) 0 (suffix) Total_zeros 3 111 Run_before ZeroLeft=3 Run_before(4) = 1 10 ZeroLeft=2 Run_before(3) = 0 1 ZeroLeft=2 1

122 ZeroLeft=1 Run_before(1) = 1 01 ZeroLeft=1 Run_before(0) = 1 Hệ số cuối cùng. Không cần mZ hóạ

Ta đ−ợc dòng bit mZ hóa cần truyền đi sẽ là: 000010001110010111101101.

4.4. Main Profile và Extended Profile

Main Profile của H.264 đ−ợc xây dựng nhằm hỗ trợ các ứng dụng truyền hình. Profile này là sự mở rộng một số chức năng của Baseline Profilẹ Các công cụ hỗ trợ thêm vào Main profile bao gồm các mảnh loại B, dự đoán có trọng số và ph−ơng thức mZ hóa entropy CABAC.

Extended Profile hỗ trợ đặc biệt cho ứng dụng streaming videọ Profile này bao gồm các chức năng, công cụ của Baseline Profile, ngoài ra bổ xung thêm mảnh B, dự đoán có trọng số (Weighted Prediction) và một số chức năng đặc biệt hỗ trợ cho streamming video thông qua môi tr−ờng mạng nh− Internet, đó là SP SI Switching cho phép giải mZ chuyển đổi giữa các luồng tín hiệu video mZ hóa, phân mảnh dữ liệu (Data Partitioned) nhằm hạn chế lỗi trong quá trình truyền.

4.4.1. Mảnh loại B và danh sách ảnh tham chiếu

Các phần MB trong MB mZ hóa liên ảnh của mảnh loại B có thể đ−ợc dự đoán từ một hoặc hai ảnh tham chiếu, các ảnh tham chiếu đó có thể đứng tr−ớc hoặc đứng sau theo thứ tự trình diễn so với ảnh hiện thờị Do đó có thể có nhiều lựa chọn để dự đoán cho phần MB: ảnh tham chiếu có thể là 1 đứng tr−ớc, 1 đứng sau hoặc 2 đứng tr−ớc hoặc 2 đứng saụ

Các ảnh tham chiếu đ−ợc l−u thành hai danh sách: List 0 và List 1. Khi đó các chế độ dự đoán cho MB của các mảnh loại B có thể là dự đoán trực tiếp (Direct), từ List 0, từ List 1 hoặc dự đoán hai h−ớng trong danh sách tham chiếu (Bipred).

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