MỤC LỤC
LỜI CẢM ƠN .iii
TÓM TẮT NỘI DUNG .iv
DANH SÁCH CÁC CHỮ VIẾT TẮT .v
1. DANH SÁCH CÁC HÌNH vi
2. DANH SÁCH CÁC BẢNG BIỂU vi
LỜI MỞĐẦU 1
Chương I: KHÁI QUÁT VỀ NÉN TÍN HIỆU VIDEO .3
VÀ CHUẨN NÉN MPEG 3
1.1. Mục đích nén Video 3
1.2. Chuẩn nén MPEG 4
1.2.1. Khái quát về nén MPEG .4
1.2.2. Cấu trúc dòng bit MPEG video .5
1.2.3. Các loại ảnh trong chuẩn MPEG : .7
1.2.4. Nguyên lý nén MPEG .8
1.2.5. Nguyên lý giải nén MPEG 9
ChươngII: CÁC CHUẨN NÉN MPEG. 11
2.1 Chuẩn nén MPEG-1 . 11
2.1.1 Giới thiệu khái quát . 11
2.1.2 Định dạng trung gian SIF (Source Intermediate Format). 11
2.1.3 Cấu trúc dòng bít và các tham số của MPEG-1 . 14
2.2 Chuẩn nén MPEG-2 . 16
2.2.1 Giới thiệu về MPEG-2 . 16
2.2.2 Mã hoá và giải mã video 16
2.2.3 Profiles và Levels 18
2.2.4 MPEG -2 với phát sóng và sản xuất chương trình 21
2.3 Chuẩn nén MPEG-4 21
2.3.1 Khái quát về MPEG-4 21
2.3.2 Công nghệ mã hoá và giải mã video trong MPEG-4 22
2.3.3 Các Profiles và Levels trong chuẩn MPEG-4 .24
2.4 Tiêu chuẩn MPEG-7 .26
2.4.1 Giới thiệu về chuẩn MPEG-7 26
2.4.2 Đối tượng (Objectives) và cách miêu tả dữ liệu của MPEG -7 .27
2.4.3 Phạm vi ứng dụng của tiêu chuẩn MPEG-7 28
ChươngIII: CHUẨN NÉN VIDEO MPEG-4 VÀ ỨNG DỤNG TRONG TRUYỀN HÌNH
TRÊN MẠNG INTERNET. .29
3.1 Giới thiệu tổng quan về truyền hình trên Internet 29
3.2. Lựa chọn H.264/ MPEG -4 part 10 cho truyền hình trên mạng Internet .33
3.2.1 Giới thiệu chung về H.264 /MPEG-4 part 10 .33
3.2.2 Tính kế thừa của chuẩn nén H.264/MPEG- 4 part 10 .35
3.3. Tiêu chuẩn H.264/MPEG - 4 Part 10 35
3.3.1. Lớp tr ừu tượng mạng NAL (Network Abstaction Layer) 35
3.3.2. Các Profile và các Level .36
3.3.3. Kỹ thuật mã hoá video 39
3.3.3.2. Các ảnh và bù chuyển động dùng trong H264/MPEG Part 10 .40
3.3.3.3. Xác định Vector chuyển động (Motion Estimation) .49
3.3.3.4. Nén video .51
3.3.3.5. Bộ lọc tách khối .55
3.3.4. Kỹ thuật giải mã video 57
3.3.4.1. Bù chuyển động 57
3.3.4.2. Khôi phục lỗi (Error Resiliency) 57
3.3.5 So sánh hiệu quả mã hoá của H264/MPEG Part 10 với các tiêu chuẩn trước
đó 59
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO 63
71 trang |
Chia sẻ: banmai | Lượt xem: 2666 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Các chuẩn nén và ứng dụng truyền video trên mạng Internet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
liệu dự đoán bù chuyển
động của mỗi Block .
- CABAC (Context-based Adaptive Binary Arithmetic Coding): mã hóa
thuật toán nhị phân tương thích với tình huống, cho mã hoá Entropy.
• Extended Profile (Profile mở rộng):
- Bao gồm tất cả các phần của Baseline Profile: thứ tự Macro-Block linh
hoạt, thứ tự Slice bất kỳ, Slice dư thừa.
- Slice SP: Slice mã hoá đặc biệt để có khả năng chuyển đổi giữa các dòng
video, tương tự như việc mã hoá một Slice P.
- Slice SI: Slice đã chuyển đổi tương tự như việc mã hoá một Slice I.
- Sự phân chia dữ liệu: dữ liệu đã mã hoá được đặt trong sự phân chia dữ
liệu tách rời, mỗi sự phân chia có thể được đặt trong đơn vị lớp khác
nhau.
- Slice B.
- Dự đoán có trọng số.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
38
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
• High Profile (Profile cao):
- Bao gồm tất cả các phần của Main Profile: Slice B, dự đoán có trọng số,
CABAC.
- Kích cỡ khối biến đổi tương thích: biến đổi nguyên khối 4 x 4, 8 x 8 cho
việc lấy mẫu thành phần chói.
- Các ma trận phân chia lượng tử hoá: sự phân chia khác nhau tuỳ theo các
tần số riêng được kết hợp với các hệ số biến đổi trong quá trình lượng tử
hoá để làm tối ưu chất lượng chủ thể.
3.3.3. Kỹ thuật mã hoá video
Biến đổi & Lượng
tử hoá Mã hoá Entropy
Giải lượng tử hoá &
Biến đổi ngược
Quyết định Inter/Intra
Mode
∑
∑
Bù chuyển
động Ảnh dự đoán
Bộ lọc tách khối
Xác định
Vector
chuyển động
+
_
+
+
Dòng Bít đầu raVideo đầu vào
Bộ đệm ảnh
Hình 17: Sơ đồ mã hoá Video của H264/MPEG Part 10
Lớp mã hoá video của H264/MPEG Part 10 là sự kết hợp của mã hoá không gian,
mã hoá thời gian và mã chuyển vị. Ảnh được tách thành các khối, ảnh đầu tiên của dãy
hoặc điểm truy cập ngẫu nhiên thì được mã hoá “Intra”- mã hoá trong ảnh, có nghĩa là
không dùng thông tin của các ảnh khác mà chỉ dùng thông tin chứa trong ảnh đó. Mỗi
mẫu của một khối trong một Frame Intra được dự đoán nhờ dùng các mẫu không gian
bên cạnh của các khối đã mã hoá trước đó. Đối với tất cả các ảnh còn lại của dãy hoặc
giữa các điểm truy cập ngẫu nhiên, mã hoá “Inter” được sử dụng, dùng dự đoán bù
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
39
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
chuyển động từ các ảnh được mã hoá trước đó.Quá trình mã hoá cho dự đoán liên ảnh
(bù chuyển động) gồm việc lựa chọn dữ liệu chuyển động, các ảnh tham chiếu và sự dịch
chuyển không gian được ứng dụng cho tất cả việc lấy mẫu của khối.
Bộ mã hoá có thể lựa chọn giữa mã hoá Intra và Inter cho miền hình dạng khối
của mỗi ảnh. Mã hoá Intra có thể chỉ ra điểm truy cập của chuỗi được mã hoá, tại đó việc
giải mã có thể bắt đầu và tiếp tục một cách chính xác. Mã hoá Intra sử dụng các mode dự
đoán không gian riêng rẽ để làm giảm độ dư thừa không gian trong tín hiệu gốc của mỗi
ảnh đơn. Mã hoá Inter (dự đoán một chiều hay nhiều chiều) thì việc sử dụng dự đoán liên
ảnh hiệu quả hơn cho mỗi block của giá trị lấy mẫu từ một vài ảnh được giải mã trước
đó.
Mã hoá Inter sử dụng các Vector chuyển động cho các block cơ sở dự đoán liên
ảnh (Inter prediction) để làm giảm sự dư thừa thời gian giữa các ảnh (picture) khác nhau.
Việc dự đoán được thu được từ tín hiệu đã lọc tách khối của các ảnh được thiết lập lại
trước đó.
Bộ lọc tách khối làm giảm sự nhiễu khối tại các đường biên của block. Các vector
chuyển động và các mode dự đoán trong ảnh (intra prediction) có thể (theo lý thuyết) làm
biến đổi kích thước block trong ảnh. Sự dự đoán thặng dư được nén tốt hơn bằng việc sử
dụng một phép biến đổi để loại bỏ sự tương quan theo không gian trong một block trước
khi được lượng tử hoá.
Cuối cùng, Vector chuyển động hay các mode dự đoán liên ảnh được liên kết với
thông tin của hệ số biến đổi lượng tử hóa và được mã hoá sử dụng mã Entropy như mã
hoá chiều dài biến đổi thích ứng theo tình huống CAVLC (context-adaptive variable
length code) hay mã hoá theo số học nhị phân thích ứng theo tình huống CABAC
(context-adaptive binary arithmetic coding).
3.3.3.2. Các ảnh và bù chuyển động dùng trong H264/MPEG Part 10
1. Chia ảnh thành các Macro-Block .
Mỗi ảnh video, Frame hoặc Field được chia thành các Macro-Block có kích thước
cố định bao trùm một diện tích ảnh hình chữ nhật gồm 16 x 16 mẫu cho thành phần
chói(luma) và 8 x 8 mẫu cho một trong hai thành phần màu(chroma). Tất cả các mẫu
Macro-Block của thành phần chói hoặc của thành phần màu được dự đoán theo không
gian hoặc thời gian và kết quả sai số dự đoán được truyền đi bằng việc sử dụng mã hoá
biến đổi. Do đó, mỗi thành phần màu của sai số dự đoán(prediction residual) được chia
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
40
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
nhỏ thành các khối. Mỗi khối được biến đổi nhờ dùng một phép biến đổi nguyên, và các
hệ số biến đổi được lượng tử hoá và được biến đổi sử dụng phương pháp mã hoá
Entropy.
Các Macro-Block được tổ chức thành các Slice, biểu diễn các tập con của ảnh đã
cho và có thể được giải mã độc lập. Thứ tự truyền của các Macro-Block trong dòng bít
phụ thuộc vào “Bản đồ định vị Macro-Block ”- Macro-Block Allocation Map- và không
nhất thiết phải theo thứ tự quét.
H264/MPEG Part 10 hỗ trợ 5 dạng mã hóa Slice khác nhau. Đơn giản nhất là
Slice I, trong đó tất cả Macro-Block được mã hoá không có sự tham chiếu tới các ảnh
khác trong dãy video. Tiếp theo là hai dạng Slice P và Slice B có sự tham chiếu tới các
ảnh khác; với Slice P thì chỉ tham chiếu tới các ảnh trước đó; còn Slice B thì tham chiếu
tới cả ảnh trước và ảnh sau nó. Hai dạng khác mà mới xuất hiên ở H264/MPEG Part 10
đó là SI (Switching I) và SP (Switching P) được dùng để cho chuyển mạch hiệu quả giữa
các dòng bít được mã hoá ở các tốc độ bít khác nhau.
Để cung cấp các phương pháp che giấu hiệu quả trong các kênh có xu hướng bị
lỗi với các ứng dụng độ trễ thấp, H264/MPEG Part 10 hỗ trợ một đặc điểm gọi là thứ tự
Macro-Block linh hoạt FMO (Flexible Macro-Block Ordering). FMO định rõ một giản
đồ ấn định các Macro-Block trong ảnh vào một hoặc vài nhóm Slice. Mỗi nhóm Slice
được truyền riêng biệt. Nếu một nhóm Slice nào bị mất, các mẫu trong các Macro-Block
bên cạnh về mặt không gian, thuộc về các nhóm Slice được thu đúng, có thể được sử
dụng cho che giấu hiệu quả lỗi. Các giản đồ được phép trải rộng từ các giản đồ hình chữ
nhật tới các giản đồ phân tán theo các quy tắc khác nhau.
2. Dự đoán trong ảnh Intra- Frame.
Các tiêu chuẩn trước đó đã chấp nhận Macro-Block mã hoá trong ảnh, mã hoá
bằng chính nó mà không có dự đoán thời gian. Macro-Block mã hoá trong ảnh xảy ra
trong các mảng (slice) hay các Macro-Block không chấp nhận sự hiệu chỉnh thời gian
của việc dự đoán bù chuyển động. Về bản chất, Macro-Block mã hoá trong ảnh đưa ra
một số lượng lớn các bít được mã hoá. H.264 sử dụng phương pháp dự đoán các Macro-
Block mã hoá trong ảnh để giảm một lượng lớn các bít được mã hoá bằng chính bản thân
tín hiệu gốc đưa vào. Để mã hoá một block hay một Macro-Block trong mode mã hoá
trong ảnh, một block được định dạng cơ sở trên các block được khôi phục trước đó
(nhưng không qua bộ lọc). Tín hiệu dư thừa giữa các block hiện tại và dự đoán cuối cùng
được mã hoá. Để lấy mẫu tín hiệu chói, Block dự đoán có thể được định dạng là: cho mỗi
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
41
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Block nhỏ (Subblock) là 4 x 4, mỗi Block là 8 x 8, hay mỗi Macro-Block là 16 x 16.
Trong trường hợp được lựa chọn từ 9 mode, cho các Block luma (khối tín hiệu chói) là 4
x 4 và 8 x 8; 4 mode cho một Block luma 16 x 16; và 4 mode cho mỗi Block chroma
(khối tín hiệu màu).
Hình 18: Các mode trong MPEG-4
Hình 18 chỉ ra một Block luma 4 x 4 được dự đoán. Để dự đoán các mẫu [a,b, …,
p] cho Block hiện tại, các mẫu khôi phục lại ở phía trên và bên trái trước đó [A,B, …,M]
được dùng theo định hướng các mode. Các mũi tên trong hình 18 chỉ định hướng dự
đoán của mỗi mode. Với mode 0 (vertical-theo chiều dọc) và mode 1 (horizontal-theo
chiều dọc), các mẫu dự đoán được định dạng bằng phép ngoại suy từ các mẫu cao
[A,B,C,D] và từ các mẫu bên trái [I, J, K, L], tách biệt nhau. Với mode 2 (DC- một
chiều), tất cả các mẫu dự đoán được định dạng bằng cách lấy trung bình của các mẫu
phía trên và bên trái [A, B, C, D, I, J, K, L].Với mode 3 (đường chéo xuống phía trái),
mode 4 (đường chéo xuống phía phải), mode 5 (theo chiều dọc phía phải), mode 6 (theo
chiều ngang xuống), mode 7 (theo chiều dọc phía trái) và mode 8 (theo chiều ngang lên),
các mẫu dự đoán được định dạng từ trọng số trung bình của các mẫu dự đoán từ A-M. Ví
dụ,các mẫu a và d được dự đoán lần lượt bằng cách tính làm tròn (I/4 + M/2 + A/4) và
(B/4 + C/2 + D/4) trong mode 4, và bằng (I/2 + J/2) và (J/4 + K/2 + L/4) trong mode 8.
Bộ mã hoá có thể lựa chọn mode dự đoán cho mỗi Block để số dư giữa các Block được
mã hoá và dự đoán là nhỏ nhất.
Để dự đoán cho mỗi Block luma 8 x 8, một mode được lựa chọn từ 9 mode, tương
tự như việc dự đoán khối trong ảnh 4 x 4. Để dự đoán cho tất cả thành phần độ chói luma
16 x 16 của một Macro-Block, thì ta phải dùng 4 mode. Với mode 0 (theo chiều dọc),
mode 1 (theo chiều ngang), mode 2 (DC), việc dự đoán thì tương tự như trong các trường
hợp của Block luma 4 x 4. Với mode 4 (mặt phẳng-Plane), một hàm mặt phẳng tuyến
tính được làm khớp với các mẫu phía trên và bên trái. Mỗi thành phần màu của một
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
42
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Macro-Block được dự đoán từ các mẫu thành phần màu ở phía trên và/hay đến bên trái
mà vừa được mã hoá hay khôi phục lại trước đó. Việc dự đoán thành phần màu được
định nghĩa cho 3 kích cỡ Block có thể là: thành phần màu 8 x 8 định dạng 4:2:0, thành
phần màu 8 x 16 trong định dạng 4:2:2 và thành phần màu 16 x 16 trong định dạng 4:4:4.
Với 4 mode dự đoán cho tất cả các trường hợp thì rất giống với mode dự đoán thành
phần chói 16 x 16, ngoại trừ các mode có thứ tự sau là khác: mode 0, mode 1, mode 2 và
mode 3.
3. Bù chuyển động trong các Slice P (Prediction Inter Frame)
Ngoài các dạng mã hoá Macro-Block Intra, các dạng mã hoá bù chuyển động hoặc
dự đoán khác được xác định cho các Macro-Block Slice P. Dự đoán liên ảnh được làm
giảm với sự tương quan theo thời gian với sự trợ giúp của việc xác định Vector chuyển
động (Motion Estimation) và bù chuyển động (compensation).
* Chia Macro-Block thành các Block : Trong H.264, ảnh hiện tại có thể được
phân chia thành các Macro-Block hay các Block nhỏ hơn. Một Macro-Block của các
mẫu thành phần màu 16 x 16 có thể chia nhỏ hơn thành các Block kích cỡ từ 4 x 4. Với
Macro-Block mode 16 x 16, có 4 trường hợp là: 16 x 16, 16 x 8, 8 x 16, hay 8 x 8, ngoài
ra cũng có 4 trường hợp cho mode 8 x 8 là : 8 x 8, 8 x 4, 4 x 8, hay 4 x 4 . Một Block
kích cỡ nhỏ hơn yêu cầu một số lượng bít lớn để truyền Vector chuyển động và dữ liệu
thêm vào của việc phân chia, tuy nhiên dữ liệu dư bù chuyển động có thể được giảm. Do
đó, việc lựa chọn kích cỡ phân chia phụ thuộc vào các đặc điểm video đầu vào. Sự phân
chia Macro-Block thành các Block được minh hoạ trong hình sau:
Hình 19: Phân chia Macro-Block cho bù chuyển động
Trên: Phân chia các Macro-Block .
Dưới: Phân chia các phần 8 x 8.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
43
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
* Các giá trị dự đoán cho thành phần chói (Luma) và thành phần màu (Chroma):
Tín hiệu dự đoán cho mỗi khối luma m x n đã mã hoá dự đoán thu được bằng
việc đổi chỗ diện tích của ảnh tham chiếu tương ứng, nó được xác định bởi Vector
chuyển động biến đổi và chỉ số ảnh tham chiếu. Như vậy, nếu Macro-Block được mã
hoá khi dùng dạng Sub-Macro-Block (Macro-Block phụ) Inter 4 x 4, nhiều nhất 16
Vector chuyển động có thể được truyền đi cho một Macro-Block P Slice. Độ chính xác
bù chuyển động bằng ¼ khoảng cách mẫu. Trong trường hợp Vector chuyển động nhắm
trúng vị trí của một mẫu nguyên vẹn (Integer- Sample), các tín hiệu dự đoán là các mẫu
tương ứng của ảnh tham chiếu; nếu khác đi, chúng được nội suy ở các vị trí của mẫu con
(Sub-Sample). Trong thành phần tín hiệu chói, các mẫu phần tử ảnh phụ tại vị trí một
phần hai phần tử ảnh được phát đầu tiên và được nội suy từ các mẫu phần tử ảnh nguyên
bên cạnh sử dụng một bộ lọc FIR 6 đầu ra với các trọng số (1, -5, 20, 20, -5, 1)/32. Đôi
khi tất cả các mẫu một phần hai phần tử ảnh là sẵn có, với mỗi mẫu một phần tư phần tử
ảnh được sinh ra khi sử dụng phép nội suy tuyến tính hai chiều giữa các mẫu một phần
hai hay cả phần tử ảnh bên cạnh (lấy trung bình ở các vị trí nguyên mẫu và nửa mẫu).
Với thành phần tín hiệu màu (Chroma): Việc lấy mẫu nguồn Video định dạng
4:2:0, 1/8 các mẫu phần tử ảnh được dùng trong các thành phần màu (tương ứng với ¼
các mẫu phần tử ảnh trong thành phần màu). Các mẫu này được nội suy hai chiều(nội suy
tuyến tính) giữa các mẫu nguyên phần tử ảnh màu.
* Bù chuyển động: H264/MPEG Part 10 cho phép các Vector chuyển động không hạn
chế, tức là chúng có thể nhắm ra ngoài miền ảnh. Trong trường hợp này các Frame tham
chiếu được mở rộng ra ngoài biên ảnh bằng việc lặp lại các Pixel biên trước khi nội suy.
Các thành phần Vector chuyển động được mã hoá vi sai khi dùng hoặc là giá trị trung
bình (median) hoặc là dự đoán định hướng từ các khối xung quanh. Không có dự đoán
thành phần Vector chuyển động ở các biên của Slice.
H264/MPEG Part 10 hỗ trợ dự đoán bù chuyển động đa ảnh (Multi-Picture). Điều
này có nghĩa là có nhiều hơn một ảnh được mã hoá trước đó có thể được sử dụng để tham
chiếu cho dự đoán bù chuyển động. Hình sau minh hoạ khái niệm này
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
44
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Hình 20: Bù chuyển động nhiều Frame – ngoài Vector chuyển động, các tham số
tham chiếu ảnh (∆) cũng được truyền đi.
Cả bộ mã hoá và bộ giải mã phải lưu trữ các ảnh tham chiếu được sử dụng cho dự
đoán ảnh Inter trong bộ nhớ đêm đa ảnh (Multi-Picture). Bộ giải mã sao lưu lại bộ nhớ
đệm đa ảnh của bộ mã hoá, theo dạng nhớ đệm ảnh tham chiếu và các hoạt động điều
khiển quản lý bộ nhớ bất kỳ được xác định trong dòng bít. Trừ khi kích thước bộ nhớ
đệm đa ảnh được đặt cho mỗi ảnh, chỉ số mà ảnh tham chiếu được định vị ở đó bên trong
bộ nhớ đệm đa ảnh thì phải được ký hiệu. Tham số chỉ số tham chiếu cho mỗi khối luma
bù chuyển động 16 x 16, 16 x 8, 8 x 16 hoặc 8 x 8.
Ngoài các mode bù chuyển động được mô tả ở trên, Macro-Block P- Slice cũng có
thể được mã hoá trong mode gọi là SKIP. Đối với mode này, cả tín hiệu lỗi dự đoán
lượng tử hóa lẫn Vector chuyển động hoặc tham số chỉ số tham chiếu đều không được
truyền đi. Các tín hiệu thiết lập lại thì thu được tương tự như cách với tín hiệu dự đoán
của Macro-Block Inter 16 x 16, tức là tham chiếu tới ảnh đặt ở vị trí có chỉ số 0 trong bộ
nhớ đệm đa ảnh. Nhìn chung Vector chuyển động được sử dụng cho việc thiết lập lại
Macro-Block SKIP là đồng nhất với bộ dự đoán Vector chuyển động cho khối 16 x 16.
Nếu các điều kiện đặc biệt được duy trì, Vector chuyển động Zero được sử dụng thay cho
nó.
4. Bù chuyển động trong các Slice B (Bi-Direction Prediction Inter Frame)
Dự đoán hai chiều rất có hiệu quả để giảm sự tương quan theo thời gian bằng việc
sử dụng các ảnh tham chiếu. Các chuẩn nén hiện nay với các ảnh B sử dụng mode dự
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
45
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
đoán hai chiều, tức là chỉ cho phép kết hợp các tín hiệu dự đoán trước đó với các tín hiệu
dự đoán sau. Một tín hiệu dự đoán được nhận từ một ảnh trong ảnh (Inter Picture) tiếp
sau, hay từ một ảnh dự đoán trước, hoặc từ tín hiệu trung bình tuyến tính của hai tín hiệu
dự đoán bù chuyển động.
Hình 21: Ảnh nội suy B (dự đoán hai chiều)
So với các tiêu chuẩn trước đó, H264/MPEG Part 10 đã tổng quát khái niệm Slice
B và không những chỉ hỗ trợ một cặp dự đoán theo hướng forward/backward (tiến/lùi)
mà còn cả hai cặp theo hướng forward/forward (tiến/tiến) và backward/backward
(lùi/lùi). Tham chiếu tiến hai bước (two forward) có thể có lợi cho dự đoán bù chuyển
động của một vùng vừa thay đổi cảnh trước đó, và tham chiếu lùi hai bước mà cảnh vừa
thay đổi sau đó. Các Slice đã mã hoá dự đoán hai chiều có thể cũng được sử dụng để
tham chiếu cho việc mã hoá trong ảnh của các ảnh khác. Như vậy, các ảnh khác có thể
tham chiếu các ảnh B cho dự đoán chuyển động, phụ thuộc vào hoạt động điều khiển
quản lý bộ nhớ của việc nhớ đệm đa ảnh. Do đó, sự khác nhau cơ bản giữa Slice B và
Slice P là: các Slice B được mã hoá theo cách trong đó một số Macro-Block hoặc Block
có thể dùng trung bình trọng số của hai giá trị dự đoán bù chuyển động riêng biệt cho
việc hình thành các tín hiệu dự đoán. Nhìn chung các Slice B dùng hai bộ nhớ đệm ảnh
tham chiếu khác nhau gọi là bộ nhớ đệm ảnh tham chiếu thứ nhất và thứ hai tương ứng.
Các ảnh nào được xắp đặt đúng vị trí thực tế trong mỗi bộ nhớ đệm ảnh tham chiếu thì
được đưa ra điều khiển bộ nhớ đệm ảnh.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
46
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
* Các mode dự đoán trong Slice Block: Trong các Slice B, có 4 dạng dự đoán
ảnh Inter khác nhau được hỗ trợ: dự đoán List 0, List 1, hai hướng (bi-predictive)và trực
tiếp (direct). Trong đó, dự đoán List 0 hiển thị rằng tín hiệu dự đoán được tạo thành nhờ
dùng bù chuyển động từ ảnh của bộ nhớ đệm tham chiếu đầu tiên, thì ảnh của bộ nhớ
đệm ảnh tham chiếu thứ hai được sử dụng cho việc xây dựng tín hiệu dự đoán nếu dự
đoán List 1 được sử dụng.
H264/MPEG Part 10 giới thiệu mode trực tiếp (direct-mode), nó không yêu cầu
thông tin kèm theo (bên cạnh), nhưng nhận ảnh tham chiếu, kích cỡ khối, dữ liệu Vector
chuyển động từ ảnh Inter tiếp theo. Dự đoán trọng số được làm tăng thêm do sự chuyển
tiếp dần dần từ cảnh (scene) nọ sang cảnh kia.
Trong mode dự đoán hai hướng, tín hiệu dự đoán được tạo thành bởi trung bình
trọng số của tín hiệu dự đoán bù chuyển động List 0 và List 1. Dự đoán có trọng số sẽ
được ta đề cập đến sau đây.
* Dự đoán có trọng số (weighted Prediction)
Tất cả các chuẩn nén đang có hiện nay đều coi các ảnh tham chiếu có trọng số
bằng nhau, ví dụ như tín hiệu dự đoán thu được bằng cách lấy trung bình các tín hiệu
tham chiếu có trọng số bằng nhau. Nhưng sự biến đổi dần dần từ cảnh nay sang cảnh
khác thì cần các trọng số khác nhau.
Sự biến đổi dần dần là rất phổ biến trong các chuyển động, chuyển cảnh từ mờ
dần sang đen (fade to black) (fade to black : các mẫu thành phần chói của cảnh dần dần
xấp xỉ zero, các mẫu thành phần màu dần dần xấp xỉ 128), một cảnh chuyển đổi sang mờ
dần từ đen (fade from black).
H264/MPEG Part 10 sử dụng phương pháp dự đoán có trọng số cho một Macro-
Block của Slice P hay Slice B. Một tín hiệu dự đoán là p cho Slice B được thu được bằng
các trọng số khác nhau từ hai tín hiệu tham chiếu là r1 và r2, ta có:
P = w1 x r1 + w2 x r2
Trong đó w1 và w2 là các trọng số. Nó được xác định khác nhau theo hai loại ẩn
(Implicit) và hiện (explicit) trong bộ mã hoá. Trường hợp hiện, các thừa số được truyền
trong phần đầu của Slice (header Slice ). Trong trường hợp ẩn, các thừa số được tính toán
dựa trên cớ sở khoảng cách thời gian giữa các ảnh. Trọng số nhỏ hơn được áp dụng nếu
khoảng cách thời gian giữa ảnh tham chiếu và ảnh hiện tại là gần ; còn trọng số lớn hơn
cho khoảng cách thời gian dài.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
47
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
* Việc phân chia các Macro-Block : Các Slice B dùng sự chia nhỏ Macro-Block
tương tự như với các Slice P. Tức là với Macro-Block 16 x 16 có thể phân chia thành các
phần với kích thước như: 16 x 16, 16 x 8, 8 x 16 và 8 x 8; còn với khối có kích thước
8 x 8 thì có thể chia thành các phần với kích thước như: 8 x 8, 8 x 4, 4 x 8 và 4 x 4.
Ngoài ra với các mode dự đoán khác nhau (như dự đoán trực tiếp hay dự đoán hai chiều)
có thể dùng các kích thước ảnh khác nhau.. Nếu không có tín hiệu dự đoán được truyền
đi cho mode Macro-Block trực tiếp, nó sẽ được dùng đến mode SKIP Slice Block và có
thể được mã hoá rất hiệu quả, tương tự như với mode SKIP trong các Slice P.
Các Vector bù chuyển động cũng tương tự như đối với Slice P với những biến đổi
thích hợp vì các khối bên cạnh có thể được mã hoá khi dùng mode dự đoán khác nhau.
5. Các mảng SP và SI.
Trong các tiêu chuẩn trước đó, việc chuyển đổi hoàn toàn giữa các dòng bít
(bitstream) thì có thể chỉ trong một ảnh I. Việc khôi phục lại các ảnh I tại các khoảng thời
gian cố định cho phép truy cập ngẫu nhiên hay hiển thị lại nhanh. Tuy nhiên, mặt hạn chế
của ảnh I là nó yêu cầu số lượng bít lớn, vì vậy các ảnh I không khai thác được sự dư
thừa về mặt thời gian. H.264 giới thiệu các mảng chuyển đổi là SP (Switching P) và SI
(Switching I) để chuyển đổi giữa các dòng bít được mã hoá ở các tốc độ bít khác nhau.
Các tín hiệu dự đoán Inter của các dòng bít cho một Frame SP được chọn được lượng tử
hoá trong miền biến đổi, sau đó được đưa vào dải biên độ thô hơn để cho phép mã hoá
tốc độ bít thấp tín hiệu khác nhau giữa các dòng bít. Các Frame SI được xác định để thực
hiện sự thích nghi hoàn thiện cho các Frame SP trong trường hợp mà dự đoán Inter
không thể được sử dụng do các lỗi truyền dẫn.
Trong hình 22 chỉ ra một ví dụ về cách sử dụng các ảnh SP chuyển đổi giữa các
dòng bít khác nhau như thế nào. Chúng ta thừa nhận rằng có 2 dòng bít là P(1,k) và
P(2,3) tương ứng với cùng một chuỗi bít được mã hoá tại các tốc độ bít khác nhau. Trong
khoảng thời gian mỗi dòng bít được mã hoá, các ảnh SP được đặt tại các vị trí chuyển đổi
từ một dòng bít đến dòng bít khác sẽ được cho phép.
Trong trường hợp chuyển đổi từ dòng bít P(1,3) ở trên đến P(2,3), một ảnh SP là
S(3) cho phép đưa ra ảnh P(2,3) đã giải mã bằng việc sử dụng P(1,2) trong dòng bít khác,
thậm chí là bao gồm các bù chuyển động.
Mảng SI được sử dụng tương tự như mảng SP, nhưng dự đoán được định dạng
bằng việc sử dụng các mode dự đoán trong ảnh 4 x 4 từ các mẫu đã giải mã trước đó của
ảnh đã được khôi phục lại.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
48
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Hình 22: chuyển đổi sử dụng ảnh SP
3.3.3.3. Xác định Vector chuyển động (Motion Estimation)
Trong khi thực hiện DCT và lượng tử hóa phục vụ cho nén không gian bên ngoài
của một Frame, xác định vetor chuyển động được sử dụng để nén sự dư thừa về thời
gian, ví dụ như trong miền thời gian qua hai Frame liên tiếp.
Để làm một cảnh tiêu biểu, từ một phim truyện ví dụ từ 25 – 30 frame liên tiếp
được hiển thị trong mỗi giây bằng tivi hay máy chiếu phim. Tuy nhiên, không may là
trong một vài giây bất kỳ, một chuỗi các hình ảnh lưu lại giống nhau.Phông nền có thể
không thay đổi tất cả, các đặc tính còn lại cũng tương tự và vì vậy các Frame liên tiếp rất
giống nhau.
Việc xác định vetor chuyển động thực hiện phép phân tích giữa hai frame liên
tiếp và xác định những miền của hình ảnh có thay đổi hay chuyển động giữa các ảnh.
Trong nhiều trường hợp một miền lưu lại chính xác vì nó đã ở trong các ảnh dự đoán vì
thế nó đủ để cho từ mã hoá đến giải mã để hiển thị miền này khi nó đã ở trong ảnh dự
đoán. Nếu miền di chuyển theo một hướng xác định, thuật toán xác định vetor chuyển
động điều khiển quá trình giải mã để sử dụng các mảnh (piece) của hình ảnh như trong
ảnh dự đoán, nhưng để di chuyển nó một lượng nhất định trong một hướng đã được xác
định. Trên thực tế điều này được hoàn thành bằng việc gửi vetor chuyển động trong dòng
bít MPEG -4. Vetor này sẽ chỉ dẫn để giải mã trong việc chọn các phần thích hợp của
các ảnh giải mã trước đó được sử dụng trong sự thiết lập lại của một dòng khung hình.
Nó được làm sạch vì thế tỷ lệ nén rất cao. Trên thực tế, một vài loại nội dung có thể được
nén với phạm vi lớn dẫn tới thiếu các hành động trong hình ảnh. Một ví dụ là “lời mở
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
49
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
đầu” của nội dung , như là một người phát thanh viên, cái đó tạo ra một dòng MPEG -4
nén rất chặt.
Đó có thể là một điều mong đợi, việc xác định vector chuyển động là một hàm
ước lượng rất cao. Việc tìm kiếm qua một hình ảnh cho tất cả các vật có thể (các vùng)
thì có thể thay đổi bất kỳ vị trí sẽ cần đến nhiều sự tính toán.Tuy nhiên chỉ có 1/15 đến
1/30 giây để làm điều này trước khi khung tiếp theo đến để xử lý.
Để hiểu tốt hơn các cách khác nhau của việc thực hiện xác định vector chuyển
động, hãy quan sát kỹ thao tác bàn tay. Về cơ bản, việc xácđịnh vector chuyển động cần
chia hình ảnh thành các khối nhỏ hơn và lấy mỗi khối tại các thời gian và vị trí khác nhau
trên phía trên cùng của ảnh trước đó để xác định nếu đó là cái khớp nhau. Việc so khớp
có thể được làm bằng việc tính toán sự khác nhau giữa mỗi điểm ảnh (pixel) trong khối
ảnh và việc so khớp vị trí trong các ảnh trước đó.
Như vậy, một con số (giá trị SAD “Summation of Absolute Difference” = tổng sự
khác nhau tuyệt đối) thu được cái đó biểu thị “how well- tốt như thế nào” đó là khối
riêng biệt thích hợp với vị trí nào đó trong ảnh trước đó. Nếu giá trị SAD là không (zero)
nghĩa là mỗi điểm ảnh (pixel) là chính xác trong cùng một vị trí như trong ảnh trước đó,
cho nên vị trí mới cho khối đó tìm được. Nếu không một vị trí nào là khớp hoàn toàn, thì
thuật toán có hai lựa chọn :
- Đầu tiên : nó kết luận rằng tất cả sự khác nhau là quá lớn nghĩa là một
câu hỏi đặt ra là một thực thể mới không tồn tại trong ảnh trước đó hay
nó di chuyển quá xa so với vị trí trước hay vị trí sau đó.
- Trong trường hợp thứ hai, giá trị SAD nhỏ khác không (nonezero) nó
chấp nhận sự thoả mãn nhất tuy nhiên sự thoả mãn đó không hoàn toàn.
Trong tiêu chuẩn MPEG -4, với mỗi 16 x 16 điểm ảnh trong một khối thì được
thoả mãn cho tất cả các vị trí trong một vùng tìm kiếm, phạm vi đó xa bao nhiêu từ vị trí
gốc một khối (block) có thể di chuyển giữa hai khung (frame). Điển hình vùng tìm kiếm
là +/- 16 điểm ảnh. Khi đó, với mỗi vị trí tìm kiếm là 256(=16 x 16) điểm ảnh của mọi
block thì được so sánh với ảnh trước đó. Với định dạng CIF độ phân giải là (352 x 288)
tại 30 ảnh (frame) trên một giây (frame/s) cho dòng video, con số so sánh như sau:
- Mỗi Macro-Block có: 16 x 16 = 256 pixel;
- Mỗi Macro-BLock được thoả mãn trong mỗi vị trí tìm kiếm là: 16 x 16 =256;
- Mỗi khung hình (frame) bao gồm 396 block;
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
50
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
- 30 khung hình được xử lý trong mỗi giây.
Như vậy, tổng sự khác nhau (cả cộng và trừ) trong một giây kết quả là:
256 x 256 x 396 x 30 = 778.567.680.
Ví dụ bộ xử lý đa năng có khả năng thực hiện cả việc cộng và trừ trong một chu
kỳ đồng hồ, bộ xử lý có thể cần chạy với tần số là 779 MHz để thực hiện xác định vector
chuyển động. Có hai giải pháp tiêu biểu như sau:
1. Nhẹ nhàng hơn là dùng thuật toán tối ưu nhất.
2. Có sự trợ giúp của phần cứng là xác định vector chuyển động.
3.3.3.4. Nén video
1. Nén theo miền thời gian.
Những dư thừa về mặt thời gian là những hình ảnh giống nhau lặp đi lặp lại từ
khung này sang khung khác, ví dụ như khung nền không chuyển động của một chương
trình đối thoại trên truyền hình. Vì vậy, để giảm bớt độ dư thừa này ta phải tiến hành nén
theo miền thời gian.
Khi bộ mã hoá đang hoạt động ở chế độ “giữa khối”, khối này sẽ phải qua công
đoạn hiệu chỉnh chuyển động. Quá trình này sẽ phát hiện ra bất kỳ chuyển động nào diễn
ra giữa khối đó và một khối tương ứng ở một hoặc hơn một ảnh tham chiếu đã được lưu
trữ từ trước, sau đó tạo ra khối “chênh lệch” hoặc “lỗi”. thao tác này làm giảm bớt dữ
liệu trong mỗi Block một cách hiệu quả do chỉ phải biểu diễn chuyển động của nó mà
thôi. Tiếp đến là công đoạn biến đổi Cosine rời rạc DCT để bắt đầu nén theo miền không
gian. Khi bộ mã hoá hoạt động ở chế độ “trong khối”, khối này sẽ bỏ qua công đoạn hiệu
chỉnh chuyển động và tới thẳng công đoạn DCT.
2. Nén theo miền không gian.
Dư thừa về mặt không gian là các khối có chứa các điểm ảnh tương tự nhau hoặc
giống hệt nhau. Trong nhiều trường hợp các điểm ảnh thường không thay đổi nhiều. Như
vậy có nghĩa là tần số thay đổi giá trị điểm ảnh trong khối này là rất thấp. Những khối
như thế được gọi là khối có tần số không gian thấp. Bộ lập mã lợi dụng đặc điểm này
bằng cách chuyển đổi các giá trị điểm ảnh của khối thành các thông tin tần số trong công
đoạn biến đổi Cosine rời rạc.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
51
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
* Biến đổi Cosine rời rạc (DCT)
Biến đổi Cosine là một hàm mà làm biến đổi dữ liệu hỉnh ảnh được thể hiện trong
hệ toạ độ X-Y sang miền tần số. Công đoạn DCT biến đổi các giá trị điểm ảnh của khối
thành một mạng lưới gồm các hệ số ngang dọc đặt trong không gian tần số. Khi khối ban
đầu có tần số không gian thấp, DCT sẽ tập hợp năng lượng tần số vào góc tần số thấp của
mạng lưới. Nhờ vậy, những hệ số tần số thấp ở góc đó sẽ có giá trị cao hơn. Một số
lượng lớn các hệ số khác còn lại trên mạng lưới đều là các hệ số có tần số cao, năng
lượng thấp và có giá trị thấp. Tại đây, hệ số DC và một vài hệ số tần số thấp sẽ hàm
chứa phần lớn thông tin được mô tả trong khối ban đầu. Có nghĩa là bộ lập giải mã có thể
loại bỏ phần lớn hệ số tần số cao còn lại mà không làm giảm chất lượng hình ảnh của
khối. Bộ lập mã chuẩn bị các hệ số cho công đoạn này bằng cách quét chéo mạng lưới
theo đường zig-zag, bắt đầu từ hệ số DC và qua vị trí của hệ số ngang dọc tăng dần. Do
vậy nó tạo ra được một chuỗi hệ số được sắp xếp theo tần số.
Ưu điểm độc đáo hơn của H264/MPEG Part 10 là ở chỗ nó sử dụng biến đổi
không gian nguyên(gần giống với DCT) đối với các khối 4 x 4 điểm ảnh. Ta xét biến đổi
nguyên cho cấu trúc 4 x 4 như sau:
+ Cho hệ số DCT của khối dữ liệu đầu vào 4 x 4 là F, công thức chính xác được
cho là :
X=HFHT (1)
Trong đó ma trận H là
HT là ma trận chuyển vị của ma trận H.
Các giá trị a,b, c là :
Tuy nhiên để cho đơn giản ta có thể cho giá trịc =0.5 và để đảm bảo tính trực giao
thì các giá trị của a, b được lựa chọn như sau:
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
52
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Do phép nhân trong quá trình biến đổi được tránh do phải kết hợp với quá trình
lượng tử hoá, vì vậy phương trình (1) được viết thành :
Trong đó :
+ Ma trận H được cho là :
+ Ma trận SF là :
Ký hiệu biểu diễn phép nhân tích trực tiếp phần tử với phần tử (the element by
element multiplication ) của ma trận tương ứng.
So sánh với MPEG-2, thì ta thấy trong từng Slice sẽ có 1 khối đầu tiên chứa giá trị
hệ số DC và các khối tiếp theo sẽ có những giá trị sẽ có những giá trị khác nhau, những
khối này được gán thêm giá trị dự đoán khối, tạo thành chuỗi dòng khối. Còn với MPEG-
4 có thể dự đoán xa hơn. Chỉ cần một khối cũng có thể dự đoán toàn bộ hàng trên cùng
của hệ số hoặc có thể dự đoán toàn bộ cột bên trái của hệ số từ 1 khối đầu tiên.
* Lượng tử hoá
Quá trình lượng tử hoá là quá trình biến đổi có mất thông tin, làm giảm bớt số
lượng bít cần thiết để biểu diễn các hệ số. Dựa trên một hệ số tỷ lệ xích (có thể điều
chỉnh bởi bộ mã hoá), bộ lượng tử hoá sẽ cân đối tất cả các giá trị hệ số. Do phần lớn các
hệ số đi ra từ DCT đều mang năng lượng cao nhưng giá trị thấp nên bộ lượng tử hoá bắt
đầu bằng một số giá trị cao ở đầu chuỗi, theo sau là một hàng dài các hệ số đã được
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
53
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
lượng tử hoá về 0. Bộ lập mã Entropy có thể theo dõi số lượng các giá trị 0 liên tiếp trong
một chuỗi mà không cần mã hoá chúng, nhờ vật giảm bớt được khối lượng dữ liệu trong
mỗi chuỗi. Để lượng tử hóa các hệ số biến đổi, H264/MPEG Part 10 dùng phương pháp
lượng tử hóa vô hướng. Các bộ lượng tử hoá được lựa chọn cho mỗi Macro-Block là dựa
vào các tham số lượng tử hoá QP (Quantization Parameter). Các bộ lượng tử hoá được
sắp xếp sao cho có sự tăng khoảng 12.5% trong kích thước bước lượng tử hoá khi QP
tăng một đơn vị. Nhìn chung các hệ số biến đổi được lượng tử hoá của khối được quét
zig-zag và được truyền đi nhờ dùng phương pháp mã hoá Entropy.
* Mã hoá Entropy
Mã hoá Entropy trong các tiêu chuẩn trước đó như MPEG -1,2,4, H.261, và H.263
thì cơ bản là trên các bảng cố định mã hoá biến đổi theo chiều dài (VLC). Các tiêu chuẩn
đó xác định các bộ mã hoá từ là cơ bản trên sự phân bố xác suất của các video chung
thay cho mã Huffman chính xác đến các chuỗi video. Tuy nhiên H.264 sử dụng các VLC
để mà khớp với một biểu tượng được mã hoá cơ bản trên các đặc trưng của ngữ cảnh. Tất
cả các phần tử cú pháp, ngoại trừ các dữ liệu dư thừa, được mã hoá bằng mã Exp-
Golomb. Để mà đọc được các dữ liệu dư thừa (các hệ số biến đổi đã lượng tử hoá) thì ta
sử dụng phương pháp quét Zig-Zag (xen kẽ nhau) hay quét lần lượt (không xen kẽ hay
phân trường). Để mã hoá dữ liệu dư thừa, một phương pháp phức tạp hơn gọi là
CAVLC(mã hoá chiều dài biến đổi tương thích theo tình huống) được phát triển. Ngoài
ra, CABAC (mã hoá thuật toán nhị phân tương thích theo tình huống) được phát triển
trong Mail Profile và High Profile, CABAC có khả năng mã hoá tốt hơn nhưng độ phức
tạp cao hơn so với CAVLC.
+ Mã hoá chiều dài biến đổi tương thích theo tình huống - Context-based
Adaptive Variable Length Coding (CAVLC)
Sau khi biến đổi và lượng tử hoá, xác suất các hệ số là zero hay +/-1 là rất lớn.
CAVLC xử lý các hệ số zero và +/-1 theo cách khác nhau với các mức của các hệ số.
Tổng số các số zero và +/-1 được mã hoá. Các hệ số khác các mức của chúng được mã
hoá.
+ Mã hoá thuật toán nhị phân tương thích theo tình huống – Context –based
Adaptive Binary Arithmetic Coding (CABAC)
CABAC dùng thuật toán để mã hoá, để đạt được hiệu quả nén tốt hơn, mô hình có khả
năng cho mỗi phần tử biểu tượng được cập nhật như trong hình 28. Quá trình xử lý mã
hoá CABAC bao gồm 3 bước cơ bản sau đây:
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
54
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Mô hình hoá tình
huống Nhị phân hoá
Ước lượng xác
suất
Phương tiện mã
hoá
Cập nhật ước lượng xác suất
Bộ mã hoá thuật toán nhị phân
tương thích
Hình 23: Sơ đồ khối của CABAC
- Bước 1: Nhị phân hoá; một biểu tượng giá trị của nó không phải là nhị phân (như
một hệ số biến đổi hay Vector chuyển động) là bản đồ duy nhất để chuỗi nhị phân
trước đó được mã hoá thuật toán. Quá trình xử lý này thì giống như việc xử lý của
việc biến đổi một biểu tượng dữ liệu thành mã hoá chiều dài biến đổi, nhưng mã
nhị phân được mã hoá tốt hơn bằng bộ mã hoá thuật toán trước đó để truyền.
- Bước 2: phạm vi làm mô hình: một phạm vi mô hình thì có khả năng cho một hay
nhiều phần tử của biểu tượng đã nhị phân. Một mô hình có khả năng được lựa
chọn như để việc lựa chọn sự tương ứng có thể phụ thuộc vào các phần tử cú pháp
đã mã hoá trước đó.
- Bước 3: thuật toán mã hoá nhị phân:Một bộ mã hoá thuật toán mã hoá mỗi phần tử
theo mô hình có khả năng lựa chọn cùng với một việc cập nhật mô hình tiếp sau.
3.3.3.5. Bộ lọc tách khối
Một đặc trưng riêng của mã hoá dựa trên cơ sở khối là có thể nhìn thấy các cấu
trúc khối. Các mép của khối được cấu trúc lại với độ chính xác kém hơn các phần tử ảnh
(pixel) bên trong và nhìn chung dạng khối (blocking) được xem là một trong những
nhiễu “artifact” dễ nhìn thấy nhất với các phương pháp nén hiện tại. Do nguyên nhân này
mà H.264/MPEG-4 Part 10 sử dụng bộ lọc tách khối (Deblocking Filter) để làm giảm
hiện tượng tách khối, ngăn chặn việc truyền của tạp âm mã hoá được tích luỹ. Tại bộ lọc
này, cường độ lọc được điều khiển bởi giá trị của nhiều phần tử cấu trúc.
Các chuẩn nén trước đó đã không sử dụng bộ lọc tách khối bởi vì việc bổ sung rất
phức tạp, mặt khác việc chia các nhiễu khối có thể được làm giảm bằng việc sử dụng MC
chính xác một nửa phần tử ảnh. Một nửa phần tử ảnh thu được bằng cách lọc tuyến tính
(bilinear filtering)của các phần tử ảnh nguyên vẹn bên cạnh đã phát huy vai trò làm
“nhẵn” của mã hoá tạp âm trong miền phần tử ảnh nguyên vẹn.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
55
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
H.264 sử dụng bộ lọc tách khối để việc thực hiện việc mã hoá cao hơn mặc dù
việc thực hiện rất phức tạp. Việc lọc được áp dụng cho các mép của các Block 4 x 4
trong một Macro-Block. Quá trình điều khiển bộ lọc tách khối thành phần chói được thực
hiện trên 4 cạnh của mẫu 16 x 16 (16-sample) và quá trình xử lý bộ lọc tách khối cho mỗi
thành phần màu được thực hiện trên 2 cạnh của mẫu 8 x 8.
Bộ lọc tách khối được áp dụng tương thích với một vài mức(level) sau:
- Mức mảng (Slice Level): Mặt mạnh của của việc lọc toàn bộ có thể được điều
chỉnh tới các đặc điểm riêng của chuỗi video.
- Mức cạnh của khối (Block – edge Level ): mặt mạnh của việc lọc là phụ thuộc vào
việc quyết định dự đoán Inter/Intra, các chuyển động khác nhau, và việc hiển thị
của các dư thừa mã hoá trong 2 Block tham gia. Đặc biệt việc lọc mạnh được áp
dụng cho các Macro-Block với các đặc điểm rất phẳng để loại bỏ “sự nghiêng
nhân tạo (tilting artifacts)”.
- Mức lấy mẫu (Sample Level): các giá trị mẫu và các điểm bắt đầu phụ thuộc vào
bộ lượng tử hóa có thể dừng việc lọc cho mỗi mẫu riêng biệt.
Tính khối bị giảm mà không ảnh hưởng nhiều đến độ sắc nét của nội dung, kết
quả là đã cải thiện được đáng kể chất lượng của hình ảnh.
Hình 24: Tác dụng của bộ lọc tách khối đối với ảnh được nén nhiều
Trái: không có bộ lọc tách khối; Phải: có bộ lọc tách khối
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
56
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
3.3.4. Kỹ thuật giải mã video
Giải mã Entropy Giải lượng tử hoá &Biến đổi ngược ∑ Bộ lọc tách khối
Lựa chọn Inter/Intra
Mode
Ảnh dự đoán
Bù chuyển
động
Bộ đệm ảnh
Dòng Bít đầu vào +
+
Video đầu ra
Hình 25: Sơ đồ giải mã Video H264/MPEG -4 Part 10
3.3.4.1. Bù chuyển động
Bù chuyển động thực hiện việc thiết lập lại các khung hình (frame) trên cơ sở các
Vector đã nhận được, dữ liệu khung hình delta đã nhận (dữ liệu khác nhau giữa hai
khung hình liên tiếp) và hình ảnh đã mã hoá trước đó. Vì vậy, nếu dữ liệu delta được
nhận, thì dòng khung hình được thiết lập lại bằng việc cộng dữ liệu khung hình delta với
dữ liệu từ khung hình đã được giải mã trước đó trong vị trí riêng đã được chỉ dẫn bằng
Vector chuyển động đã nhận được.
3.3.4.2. Khôi phục lỗi (Error Resiliency)
Một nhiệm vụ quan trọng nhất của bộ giải mã là làm thích hợp và khôi phục lại từ
các lỗi chắc chắn xảy ra, đặc biệt là khi kết nối qua các liên kết dễ xảy ra lỗi như mạng
không dây. Lỗi đàn hồi bao gồm ba loại kỹ thuật khác nhau được sử dụng khi một lỗi
được phát hiện. Việc phát hiện lỗi có thể xảy ra trong 3 trường hợp sau:
- Trong trường hợp có một lỗi, lỗi đó thực sự được phát hiện;
- Trong trường hợp có một lỗi, lỗi đó không được phát hiện;
- Trong trường hợp không có lỗi, bộ giải mã biết là không có lỗi;
Nếu lỗi được phát hiện, hệ thống bộ giải mã lỗi đàn hồi cố gắng che giấu lỗi. Các
đặc trưng của lỗi đàn hồi có thể được bổ sung trong hệ thống MPEG -4 bằng việc sử
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
57
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
dụng tiêu chuẩn thiết lập các công cụ được cung cấp bằng tiêu chuẩn MPEG -4 để phát
hiện lỗi. Cho một hệ thống MPEG -4 tương thích, có khả năng cùng làm việc với hệ
thống MPEG -4 khác, nó phải tuân theo bộ công cụ chuẩn hoá phát hiện lỗi. Tuy nhiên,
phương pháp mà các bộ công cụ được bổ sung làm tăng nơi cung cấp bộ Codec, theo
cách đó, nó có thể làm cho tốt hơn hoặc xấu hơn khi thiết lập các thuật toán trong hệ
thống tương thích hoàn toàn với tiêu chuẩn MPEG -4.
1. Đồng bộ lại ( Resynchronisation)
Bộ công cụ Đồng bộ lại cố gắng để có thể đồng bộ lại giữa bộ giải mã và dòng bít
sau khi một lỗi hay một loạt lỗi được phát hiện. Nhìn chung, dữ liệu giữa điểm đồng bộ
trước bị lỗi và điểm đầu tiên nơi mà sự đồng bộ đã được thiết lập lại, thì được loại bỏ.
Nếu như phương pháp đồng bộ lại có ảnh hưởng đến việc xác định số lượng dữ liệu đã
bị loại bỏ bởi bộ giải mã, khi đó khả năng của các loại công cụ khác nhau để khôi phục
dữ liệu hay để che giấu các ảnh hưởng của lỗi thì phải được nâng cấp rất nhiều.
2. Khôi phục dữ liệu (Data Recovery)
Sau khi đồng bộ vừa được thiết lập lại, các công cụ khôi phục dữ liệu cố gắng
khôi phục lại dữ liệu thường bị mất. Các công cụ đó không chỉ đơn giản là mã hoá đúng
các lỗi, mà kỹ thuật đòi hỏi cao hơn là mã hoá dữ liệu cho một loại lỗi đàn hồi. Ví dụ,
một bộ công cụ riêng vừa được xác nhận bằng nhóm Video (Video Group) là mã hoá
chiều dài biến đổi ngược RVLC (Reversible Variable Length Codes). Trong phương
pháp này, các từ mã hoá chiều dài biến đổi được thiết kế để đọc cả hướng tiến cũng như
hướng lùi.
Hình 26 minh hoạ cho ví dụ trên sử dụng một RVLC được chỉ ra trong hình dưới
đây. Nhìn chung, trong một tình huống như vậy, nơi mà một sự tăng vọt của các lỗi làm
sai lạc một phần của dữ liệu, tất cả dữ liệu giữa hai điểm đồng bộ có thể bị mất. Tuy
nhiên, được chỉ ra trong hình 26, một RVLC làm cho một vài dữ liệu được khôi phục.
Chú ý đến các thông số QP và HEC trong hình sau thể hiện các trường dành riêng (Field
Reserved) trong phần đầu header gói video cho thông số lượng tử hoá và mã hoá mở
rộng header, theo thứ tự định sẵn.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
58
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
Hình 26: Ví dụ về Mã hoá chiều dài biến đổi ngược
3.3.5 So sánh hiệu quả mã hoá của H264/MPEG Part 10 với các tiêu chuẩn
trước đó
Qua quá trình tìm hiểu kỹ thuật mã hoá của H264/MPEG Part 10 và của MPEG-2, ta
thấy một số ưu điểm của H264/MPEG Part 10 so với MPEG-2 là:
• Dự đoán hệ số AC/DC mà ở đó các hệ số Macro-Block được dự đoán từ các hệ số
trong các Macro-Block bên cạnh và từ một số dữ liệu trong bản thân Macro-Block
. Việc giải mã Macro-Block phải thay đổi khác với thuật toán dòng bít đơn giản
trước đó để đưa vào một số tính toán cho mỗi hệ số.
• Các công cụ toán học mới như CAVLC và CABAC cho sự cải thiên đáng kể trong
mã hoá Entropy.
• Trong khi bù chuyển động trong MPEG-2 Part 2 được hạn chế đến nội suy hai
chiều ½ pixel thì H264/MPEG Part 10 cho phép các Vector chuyển động chính
xác đến ¼ pixel và sau đó dùng nội suy nhiều chiều(Bi-cubic). Nội suy nhiều
chiều tạo ra sự thích hợp hơn cho Macro-Block , do vậy giảm năng lượng được
lưu trong ảnh lỗi, làm giảm số bít cần phải mã hoá. Tuy nhiên nội suy nhiều chiều
đòi hỏi nhiều thuật toán hơn, sự phức tạp thực hiện bù chuyển động cao hơn.
• Việc dùng bộ lọc tách khối ở cả hai phía bộ mã hoá và bộ giải mã làm giảm sự
không liên tục ở các biên của khối do các hệ số chất lượng khác nhau được sử
dụng cho các khối cạnh nhau gây ra. Điều này làm giảm nhiễu khối thường thấy
trong mã hoá MPEG-2 tốc độ bít thấp vì nó nằm trong vòng bù chuyển động, bộ
mã hoá và bộ giải mã vẫn còn trong sự đồng bộ. Công cụ này có ảnh hưởng đến
tính phức tạp của bộ mã hoá và bộ giải mã vì số biên khối và cũng vì thực tế là bộ
lọc tách khối cũng không thể được thực hiện như một module riêng biệt.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
59
Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng
Internet
• Kích thước khối thay đổi từ 16 x 16 xuống còn 4 x 4. Khi kích thước khối giảm
cung cấp độ lợi mã hoá mà không có sự tăng đáng kể tính phức tạp.
• Các Header tương đối lớn trong MPEG-2(trong Sequence, Picture, Slice ) để biểu
diễn một OverHead cố định trong dòng dữ liệu. OverHead này là không đáng kể
trong tốc độ 6 Mb/s nhưng ở tốc độ vài trăm Kb/s thì chúng dễ nhận thấy. Vì vậy
H264/MPEG Part 10 thực hiện các Header hiệu quả hơn.
Qua quá trình thực nghiệm đã cho rằng sự tiết kiệm tốc độ bít trung bình của
H264/MPEG Part 10 so với MPEG-2 là khoảng 65%. Như vậy hiệu quả của nén
H264/MPEG Part 10 tăng lên đáng kể.
Hiệu quả nén tăng của H264/MPEG Part 10 tạo ra các phạm vi ứng dụng và các cơ
hội kinh doanh mới
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
60
Kết luận
KẾT LUẬN
Khoá luận “Các chuẩn nén và ứng dụng truyền Video trên mạng Internet” đã
đạt được một số kết quả sau:
Nêu lên được thế nào là truyền hình trên mạng Internet và cách thức truy cập để
xem được các chương trình truyền hình.
Tìm hiểu được nguyên tắc chung trong việc nén tín hiệu video của nhóm MPEG
là nén trong ảnh và nén liên ảnh kết hợp với dự đoán bù chuyển động- đầy là sự khác
biệt so với các chuẩn nén JPEG, M-JPEG… trước đó. Và trong tập hợp các chuẩn nén
MPEG, mỗi chuẩn nén khác nhau có một nhiệm vụ khác nhau được đặt ra.
Với MPEG-1 nhiệm vụ là mã hoá âm thanh và hình ảnh để lưu trữ trong các
thiết bị lưu trữ như: CD-ROM, đĩa quang… sử dụng định dạng trung gian cho nguồn
tín hiệu là SIF để phù hợp với mỗi hệ thống quét truyền hình khác nhau hiện nay.
MPEG -2 kế thừa tất cả các tiêu chuẩn của MPEG -1 và mục đích nhằm hỗ trợ
cho việc truyền Video số, MPEG -2 chia ảnh thành các Macro-Block và sử dụng
phương pháp nén trong ảnh với ảnh I và nén liên ảnh kết hợp dự đoán bù chuyển động
với các ảnh P và ảnh B. Tỷ số nén của MPEG -2 tốt hơn nhiều so với MPEG -1.
MPEG -4 với nhiệm vụ là nhằm phát triển các chuẩn xử lý, mã hoá và hiển thị
ảnh động, audio và các tổ hợp của chúng. MPEG -4 khác so với MPEG -2 là trong một
khung hình thì nó không mã hoá toàn bộ khung hình mà nó miêu tả từng đối tượng
riêng rẽ và sau đó mới mã hoá từng đối tượng đó. MPEG -4 chia các Macro-Block
thành các Block nhỏ hơn. Trong khi bù chuyển động trong MPEG-2 Part 2 được hạn
chế đến nội suy hai chiều ½ pixel thì H264/MPEG Part 10 cho phép các Vector
chuyển động chính xác đến ¼ pixel và sau đó dùng nội suy nhiều chiều(Bi-cubic). Và
còn nhiều điểm ưu việt khác nữa. Do đó hiệu quả nén của chuẩn nén MPEG -4 tốt hơn
so với MPEG -2.
MPEG -7 là một chuẩn dùng để mô tả các nội dung Multimedia, chứ không
phải là một chuẩn cho nén và mã hoá audio/ảnh động như MPEG-1, MPEG-2 hay
MPEG-4. MPEG-7 sử dụng ngôn ngữ đánh dấu mở rộng XML(Extansible Markup
Language) để lưu trữ các siêu dữ liệu Metadata, đính kèm timecode để gắn thẻ cho các
sự kiện, hay đồng bộ các dữ liệu.
Với nhiều tính ưu việt như trên, một hướng đặt ra là: liệu MPEG -4 có thể sử
dụng cho việc lưu trữ như MPEG -1 hay dùng trong công nghệ truyền hình số như
MPEG -2. Thực tế cho thấy, ngoài các ứng dụng trên môi trường mạng nói chung và
truyền hình tương tác nói riêng – theo APB(04/2004)- các Đài Truyền hình Nhật Bản
như NHK, TBS, NTV TV Asahi và TV Tokyo đã chính thức chấp nhận đưa chuẩn
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
61
Kết luận
H264/MPEG Part 10 cho phát sóng số mặt đất, cho thu di động, đây cũng là một khả
năng trong những khả năng còn tiềm ẩn trong chuẩn mã hoá và trình diễn video của
H264/MPEG Part 10. Do vậy, đề tài này có thể nghiên cứu bước tiếp theo là nghiên
cứu ứng dụng H264/MPEG Part 10 cho truyền hình số và cho thu di động hay có thể
cải tạo chất lượng truyền hình Internet để đạt được chất lượng hình ảnh tốt như truyền
hình số hiện nay.
Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
62
TÀI LIỆU THAM KHẢO
[1] Đinh Quốc Tuấn - Đề tài nghiên cứu khoa học cấp nghành “Truyền hình trên
mạng Internet và giải pháp cung cấp chương trình VTV qua mạng Internet ”,
Trung tâm tin học và Đo lường – ĐTHVN, Hà Nội – 7/2004.
[2] Đỗ Hoàng Tiến, Vũ Đức Lý - Truyền hình số, Nhà xuất bản Khoa Học và Kỹ
Thuật, Hà Nội – 2001.
[3] Ngô Thái Trị - Truyền hình số, Hà Nội – 2002.
[4] Nguyễn Minh Hồng – Chuyên đề “Chuẩn nén MPEG -4 và khả năng ứng dụng
trong truyền hình”, Trung tâm Tin học và Đo lường – ĐTHVN,Hà Nội-1/2001.
[5] Nội san Khoa học Kỹ thuật Truyền hình – các số trong các năm từ 2001-2005.
[6] H.264 & IPTV Over DSL – White Paper On H264/MPEG-4 -2004,
[7] Hantro Products Oy, Oulu, Finland “ MPEG4 Codec Overview ” 1 ISO/IEC
JTC1/SC29/WG11 N4030 March 2001-
[8] José M. Martínez (UAM-GTI, ES) ,“MPEG-7 Overview“- ISO/IEC
JTC1/SC29/WG11N5525 Pattaya, March 2003 -
[9] Ralf Schäfer, Thomas Wiegand and Heiko Schwarz - “The emerging
H.264/AVC Standard “- EBU TECHNICAL REVIEW – January 2003
[10] Soon-kak Kwon, A. Tamhankar, K.R. Rao - “Overview of H.264 / MPEG-4
Part 10 ”
[11] Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, and Ajay Luthra
“Overview of the H.264 / AVC Video Coding Standard ” - IEEE TRANSACTIONS
ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, JULY 2003.
[12]
Mai Thị Lan Oanh ĐẠI HỌC CÔNG NGHỆ
- K46 DB-
Các file đính kèm theo tài liệu này:
- a2.PDF