Đặt vấn đề Hiện nay việc truyền cũng như lưu trữ video số đang rất phổ biến, có thể kể đến các ứng dụng như phát quảng bá bao gồm cả broadcast và multicast trong truyền hình số, trao đ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ VĂN HUYÊN
XÂY DựNG THUậT TOÁN ẩN LỗI HIệU QUả NHằM NÂNG CAO CHấT LƯợNG TRUYềN VIDEO
TRÊN KÊNH TRUYềN VÔ TUYếN
LUẬN VĂN THẠC SĨ
Hà Nội – 2011
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ VĂN HUYÊN
XÂY DựNG THUậT TOÁN ẩN LỗI HIệU QUả
NHằM NÂNG CAO CHấT LƯợNG TRUYềN VIDEO
TRÊN KÊNH TRUYềN VÔ TUYếN
Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60 52 70
LUẬN VĂN THẠC SĨ
HƯỚNG DẪN KHOA HỌC: TS ĐINH TRIỀU DƯƠNG
Hà Nội – 2011
Trang 3Trang 3
MỤC LỤC
Bảng từ khoá 5
Danh sách các hình vẽ 6
Danh sách bảng – biểu 7
I Đặt vấn đề 8
II Giới thiệu về H.264 9
1 Tổng quan về nén video 9
2 Đặc điểm và ứng dụng của H.264 10
3 Lớp trừu tượng mạng – NAL 13
4 Lớp mã hoá video – VCL 14
a Hình, Khung, và Miền 15
b Phân loại khung 16
c Định dạng YCbCr 17
d Macro-block 18
e Mảnh và nhóm mảnh 18
III Các thuật toán ẩn lỗi 21
1 Ẩn lỗi ở mức MB 23
a Thuật toán ẩn lỗi ở mức MB trên miền không gian 23
b Thuật toán ẩn lỗi ở mức MB trên miền thời gian 24
2 Thuật toán ẩn lỗi ở mức khung 24
a Thuận toán ẩn lỗi Frame Copy 25
b Thuật toán Motion Vector Copy 25
3 Đề xuất thuật toán sửa lỗi mất toàn khung 25
a Phương pháp véc-tơ trung vị có định hướng 26
b Xử lý các MB tĩnh 28
IV Kết quả thực hiện – đánh giá 30
1 So sánh kết quả giữa các thuật toán 30
2 So sánh kết quả giữa các mẫu video 33
Trang 4Trang 4
3 Thuật toán đề xuất 34
V Kết luận 35
VI Phụ lục 36
VII Tài liệu tham khảo 43
Trang 5Trang 5
Bảng từ khoá
Trang 6Trang 6
Danh sách các hình vẽ
Hình 1 - Quá trình mã hoá và giải mã video H.264 11
Hình 2 - Phân lớp H.264 12
Hình 3 - Sơ đồ khối mã hoá 1 Macro-Block trong H.264 15
Hình 4 - Progressive - interlaced frame 15
Hình 5 - Phân loại khung: I, P, B 16
Hình 6 - Hiệu ứng lan truyền lỗi 17
Hình 7 - YUV 4:4:4 và 4:2:2 18
Hình 8 - YUV 4:2:0 18
Hình 9 - Mảnh (slice) khi không sử dụng FMO 19
Hình 10 - Chia MB vào các nhóm mảnh (slice group) 19
Hình 11 - Ẩn lỗi trên miền không gian WABP cho MB 16x16 24
Hình 12 - Phương pháp Frame Copy 25
Hình 13 - Lỗi trong MVC khi có các khối không chuyển động 26
Hình 14 - Vị trí các khối lân cận 27
Hình 15 - Lọc lấy các véc-tơ cùng hướng 28
Hình 16 - Bổ sung 4 khối lân cận 28
Hình 17 - So sánh kết quả các thuật toán với mẫu Stefan 32
Hình 18 - So sánh kết quả giữa các mẫu video 33
Trang 7Trang 7
Danh sách bảng – biểu
Bảng 1 - Kích thước trung bình của khung P trong một số mẫu video CIF 22 Bảng 2 - Kích thước trung bình của khung P trong một số mẫu video QCIF 22 Bảng 3 - So sánh kết quả các thuật toán với mẫu Stefan 30 Bảng 4 - So sánh kết quả giữa các mẫu video 33
Trang 8Trang 8
I Đặt vấn đề
Hiện nay việc truyền cũng như lưu trữ video số đang rất phổ biến, có thể
kể đến các ứng dụng như phát quảng bá (bao gồm cả broadcast và multicast) trong truyền hình số, trao đổi video thời gian thực trong các ứng dụng gọi điện thấy hình, cao cấp hơn là các ứng hội nghị truyền hình; lưu trữ phim trên đĩa quang, trên ổ cứng,…
Trong quá trình lưu trữ, và đặc biệt là trong khi trao đổi gói tin trên mạng, việc video bị lỗi là không thể tránh khỏi Đối mặt với vấn đề này, một mặt người ta vẫn sử dụng các biện pháp cổ điển với lưu trữ/truyền dẫn dữ liệu số như sao lưu dự phòng, nâng cao chất lượng truyền dẫn,… đồng thời, người ta còn xây dựng các phương pháp ẩn lỗi video Các phương pháp này không thực hiện khôi phục lại dữ liệu ban đầu, mà hướng tới việc làm thế nào để người xem, qua cảm nhận thị giác của mình, ít thấy được những ảnh hưởng của lỗi
Để tiết kiệm chi phí truyền dẫn, chi phí lưu trữ, hình ảnh sau khi được quay từ máy quay sẽ được xử lý để giảm dung lượng Việc này đồng nghĩa với mỗi đơn vị dữ liệu sẽ mang nhiều thông tin hơn, và việc sửa lỗi/ẩn lỗi càng trở lên quan trọng Trong truyền dẫn video ngày nay, đảm bảo tính thời gian thực
có thể coi là yêu cầu quan trọng nhất Khi gặp phải lỗi, phương pháp cổ điển là truyền lại gói tin lỗi/mất sẽ rất dễ gây ảnh hưởng tới chỉ số chất lượng này, nên
sẽ kém hiệu quả hơn việc cứ tiếp tục truyền các gói tin tiếp theo song song với thực hiện ẩn lỗi khi phát lại video ở phía thu
Đề tài này sẽ thực hiện nghiên cứu về chuẩn nén dữ liệu phổ biến/tiên tiến nhất hiện nay là chuẩn H.264, cùng với một số thuật toán cơ bản trong việc ẩn lỗi video, nhằm mục tiêu đưa ra một số đề xuất cải tiến nâng cao hiệu quả ẩn lỗi
Trang 9Trang 9
II Giới thiệu về H.264
H.264, hay AVC, hay MPEG-4 part 10, là chuẩn mã hoá video tiên tiến nhất hiện nay Tiêu chuẩn H264 phiên bản đầu tiên được đưa ra năm 2003 hướng tới khả năng mã hoá chuỗi video với tốc độ bit chỉ bằng một nửa so với MPEG-2, nhưng vẫn có chất lượng tương đương H264 cũng mang đến những cải thiện đáng kể về hiệu quả mã hoá, khả năng phòng/sửa lỗi, và độ thân thiện với môi trường truyền bằng việc sử dụng những phương thức dự đoán hiệu quả hơn cho các khung I, P, và B
1 Tổng quan về nén video
Video sơ khai là một chuỗi các hình ảnh liên tiếp Ở công nghệ phim nhựa, để lưu lại một đoạn phim, người ta lưu liên tiếp các ảnh với tốc độ 24 ảnh/s Khi xem lại phim, chuỗi ảnh này sẽ được chiếu tuần tự lên màn ảnh với tốc độ giống như khi quay
Chuyển sang thời đại kỹ thuật số, ảnh được phân ra thành các điểm ảnh, với thông tin về màu sắc, độ sáng được số hoá, và được lưu lại thành file định dạng RAW, BMP,… Các phương pháp mã hoá thông tin khác nhau đã được sử dụng nhằm mục đích giảm bớt số lượng bit (nén) cần thiết để lưu ảnh, dựa trên đặc tính dư thừa thông tin do cách biểu diễn, và dư thừa thông tin do bản chất hình ảnh: ảnh là tập các mảng có màu sắc/độ sáng tương tự nhau (hay còn được gọi là dư thừa thông tin theo không gian)
Với video số, bên cạnh 2 dạng dư thừa thông tin trên còn có dư thừa thông tin theo thời gian: các ảnh (khung – frame) liên tiếp nhau thường tương tự nhau, ảnh sau mang lượng thông tin rất ít so với ảnh trước Người ta đã tận dụng cả 3 dạng dư thừa thông tin này để thực hiện nén video, với tỉ lệ nén lên tới hàng trăm lần, trong khi chất lượng hình ảnh vẫn được đảm bảo sắc nét, trung thực
Trong công nghệ video, khái niệm mã hoá (encoding) thường được sử dụng nhiều, và mang nghĩa tương đương với nén (compress) Mã hoá để nén, hay nén bằng cách mã hoá
Nén dựa trên dư thừa thông tin theo không gian và theo thời gian thường dựa trên các thuật toán nén có tổn hao thông tin (lossly compression) Để thấy
Trang 10Trang 10
được hiệu quả của việc nén video, có thể lấy ví dụ về những bộ phim HD Blueray Một phiên bản của phim 2012 trên mạng, với định dạng FullHD (1920x800) với độ dài 158 phút, tốc độ 24fps, có dung lượng phần video 13GiB (~14 * 109 byte) Nếu cũng video này, đem lưu trữ ở dạng tập các ảnh liên tiếp, sử dụng 24 bit màu sẽ cần có dung lượng: 1920 * 800 * 3 * 24 * 158
* 60 = 1,48 * 1012 byte Từ đó, có thể thấy lỷ số nén video đạt được tới hơn 100 lần
2 Đặc điểm và ứng dụng của H.264
Hiện nay trên thế giới có nhiều chuẩn nén hình ảnh ra đời theo thời gian, như H.261, MPEG-1 part 2, H.262, H.263, MPEG-4 part 2, Các chuẩn nén hình ảnh càng về sau càng có nhiều cải tiến về công nghệ nén Tức là lượng dữ liệu hay nói cách khác kích thước của tập tin video sau khi nén được giảm nhiều hơn so với các chuẩn nén trước, nhưng vẫn giữ được chất lượng tương đương hoặc tốt hơn Đồng nghĩa với điều đó là các thuật toán và phương thức
xử lý ngày càng phức tạp hơn
Ra đời tháng 05/2003 dưới sự hợp tác của 2 nhóm ITU-T VCEG (Video Coding Experts Group – nhóm chuyên gia mã hoá video) và ISO/IEC MPEG, H.264 thường được đánh giá chuẩn mã hoá thông tin tốt nhất tại thời điểm hiện tại Chuẩn H264 thực tế không quy định cách thực hiện việc mã hoá, mà chỉ quy định định dạng hình ảnh sau mã hoá và các bước thực hiện giải mã Việc
mã hoá thế nào được để mở cho các nhà sản xuất thiết bị/phần mềm mã hoá
Ưu điểm có thể thấy được ngay của việc có khả năng nén tốt hơn này là tiết kiệm chi phí: giảm được lưu lượng đường truyền trong quá trình trao đổi video, và giảm được chi phí lưu trữ video
Trang 11Trang 11
Hình 1 - Quá trình mã hoá và giải mã video H.264
H.264 được thiết kế để sử dụng cho nhiều mục đích khác nhau, có thể kể
ra như [4]:
Phát video quảng bá qua cáp đồng trục, DSL, vệ tinh, sóng mặt đất,…
Lưu trữ trên ổ cứng, đĩa quang,…
Hội nghị truyền hình qua mạng ISDN, LAN, DSL, mạng di động,…
Truyền hình theo yêu cầu Video-on-demand,…
…
Danh sách các dịch vụ không bị giới hạn, và luôn có khả năng xuất hiện thêm các dịch vụ mới Vấn đề này đã được đặc biệt quan tâm khi thiết kế H.264
H.264 được xây dựng thành 2 lớp (Hình 2): lớp mã hoá video (Video Coding Layer – VCL) và lớp trừu tượng mạng (Network Abstraction Layer – NAL) VCL là phần lõi, thực hiện mã hoá nội dung video theo cách hiệu quả nhất có thể, trong khi NAL làm nhiệm vụ đưa dữ liệu sau mã hoá vào đúng định dạng để truyền trên mạng hoặc để lưu trữ
Trang 12Trang 12
Hình 2 - Phân lớp H.264
Khi so sánh với các chuẩn mã hoá video trước, ví dụ MPEG-2, H.264 có một số đặc điểm mới, hoặc cải tiến như sau:
Bù chuyển động với nhiều kích thước block khác nhau Block nhỏ nhất
có kích thước 4x4 điểm ảnh giúp cho hình ảnh ít bị dạng khối hơn
Ước lượng chuyển động tới mức ¼ pixel Điều này giúp cho việc ước lượng được chính xác hơn, hình ảnh tạo ra mịn hơn Các chuẩn trước đó thường chỉ thực hiện tới mức ½ pixel
Sử dụng nhiều khung tham chiếu: trong các chuẩn trước đó, thông thường chỉ sử dụng một khung hình tham chiếu (là khung liền trước khung hiện tại), cá biệt có trường hợp sử dụng 2 khung – một khung trước và một khung sau Trong H264, có thể sử dụng tới 5 khung tham chiếu Việc này giúp cho mức độ chính xác của việc dự đoán véc-tơ chuyển động được nâng lên rõ rệt Và tất nhiên, điều này giúp cho kết quả của việc giải mã sát hơn với nguồn hình ảnh trước khi mã hoá
Khung B có thể được sử dụng làm khung tham chiếu Điều này cho phép việc mã hoá được thực hiện linh hoạt hơn, hiệu quả hơn
Thực hiện lọc làm mịn trong mỗi chu trình xử lý (in-loop de-blocking filter) giúp loại bỏ các đường viền khối giả phát sinh do bước biến đổi và lượng tử
Thực hiện biến đổi với khối kích thước nhỏ: trong tất cả chuẩn mã hoá phổ biến trước H.264, việc biến đổi được thực hiện với các khối có kích thước 8x8 Trong khi đó H.264 sử dụng chủ yếu khối 4x4 Việc này cho
Trang 13 Biến đổi cosin rời rạc (DCT) được thay bằng biến đổi số nguyên
Sử dụng các bộ tham số (Parameter sets) để đảm bảo đồng bộ các luật
mã hoá, và cũng để phân loại dữ liệu, tránh mất những dữ liệu quan trọng
Sắp xếp macro-block linh hoạt: thực hiện phân mảnh mỗi khung hình ra thành nhiều nhóm slices khác nhau Khi giải mã, các nhóm slice sẽ được giải mã độc lập Điều này đặc biệt có ích trong trường hợp thực hiện ẩn lỗi mức macro-block
Cho phép thay đổi linh hoạt kích thước slice
Dự phòng dữ liệu: để tăng độ an toàn, H.264 cho phép phía mã hoá bổ sung dữ liệu dự phòng cho một vùng của khung hình
Phân loại dữ liệu: dữ liệu của mỗi slice được phân ra thành 3 gói (A, B, C) dựa theo mức độ quan trọng, và sẽ có mức độ ưu tiên khác nhau khi truyền tin, và thậm chí là khi lưu trữ
3 Lớp trừu tượng mạng – NAL
Mục tiêu của lớp trừu tượng mạng là mang lại tính “phù hợp với môi trường” Với NAL, dữ liệu sau khi đã mã hoá bởi lớp VCL có thể được sử dụng trên các môi trường khác nhau:
RTP/IP, H.32X, MPEG-2 cho việc trao đổi/quảng bá thông tin thời gian thực trên mạng vô tuyến/hữu tuyến
Các định dạng file khác nhau để lưu trữ, hay để gửi trên mạng như một bản tin MMS
Trong NAL sử dụng một số khái niệm như: đơn vị NAL (NAL units), luồng byte (byte stream), gói
Trang 14Trang 14
Đơn vị NAL: dữ liệu video sau mã hoá được phân thành những đơn vị NAL, là một nhóm các byte Byte đầu tiên của mỗi đơn vị NAL là byte tiêu đề, mang thông tin về loại dữ liệu được chứa trong các byte còn lại của đơn vị NAL tương ứng Đơn vị NAL có thể được sử dụng trong cả hai phương pháp truyền tải: theo luồng (bitstream-oriented) và theo gói (package-oriented)
Đơn vị NAL khi sử dụng theo luồng: Một số hệ thống như H.320, H.222.0 yêu cầu việc trao đổi các đơn vị NAL dưới dạng một luồng bit,
và cần có phương pháp để phân tách các đơn vị NAL trong luồng Khi
đó, mỗi đơn vị NAL được xác định bởi một nhóm 3 byte được gọi là tiền
tố khởi đầu (start code prefix)
Đơn vị NAL khi sử dụng theo gói: Trong các hệ thống như RTP/IP, dữ liệu sau mã hoá được chuyển tại dưới dạng các gói của lớp truyền tải Khi đó, mỗi đơn vị NAL có thể được đặt trong 1 gói riêng, nên không còn cần phải có tiền tố khởi đầu như trường hợp trên
Phân loại đơn vị NAL: có 2 loại đơn vị NAL: 1 loại chứa thông tin từ lớp VCL – là thông tin của bản thân video đã được mã hoá, và một loại dữ liệu chứa các thông tin khác, ví dụ như bộ tham số mã hoã, hay các thông tin phụ trợ khác
Bộ tham số mã hoá: mỗi bộ là một tập các tham số phục vụ việc giải mã như định dạng video (PAL, NTSC,…), phương pháp mã hoá entropy (CABAC/CAVLC),…
4 Lớp mã hoá video – VCL
Giống như các chuẩn video khác kể từ H.261, lớp mã hoá video của H.264 tuân theo cấu trúc như chỉ ra trong Hình 3 [6] Theo đó, H.264 không bổ sung thêm một khối nào để thực hiện tăng hiệu quả nén so với các chuẩn trước mà chỉ thực hiện cải tiến đối với từng khối, từ đó tăng được hiệu quả chung
Trang 15Thông thường, một khung bao gồm 2 miền đan xen – miền trên và miền dưới Miền trên chứa các dòng điểm ảnh chẵn (0, 2, …, H-2) còn miền dưới chứa các dòng lẻ (1, 3, …, H-1), trong đó H là số lượng điểm ảnh theo chiều dọc của khung Tuỳ theo thời điểm của 2 miền trên/dưới của một khung mà khung được xác định là loại p (progressive - Hình 4a) – 2 miền mang thông tin
về hình ảnh tại cùng một thời điểm, hay loại i (interlaced - Hình 4b) – 2 miền chứa thông tin của 2 thời điểm khác nhau
Hình 4 - Progressive - interlaced frame
Trang 16Trang 16
b Phân loại khung
Trong nén video khung được phân ra thành 3 loại: khung I, khung P, và khung B (Hình 5) [7]
Hình 5 - Phân loại khung: I, P, B
Khung I (intra-coded): là một hình ảnh hoàn chỉnh, như một hình ảnh tĩnh thông thường Thông tin lưu trữ trong khung I có thể được nén dựa trên đặc tính dư thừa thông tin theo không gian, giống như khi nén ảnh tĩnh (ví dụ: chuẩn nén ảnh tĩnh JPEG)
Khung P (predicted/predictive): chỉ lưu thông tin về phần thay đổi so với khung trước đó Ví dụ, khi có hình ảnh một quả bóng vàng chuyển động trên nền trắng, bộ mã hoá H.264 sẽ chỉ mã hoá thông tin về sự chuyển động của quả bóng, mà không lưu thông tin gì về nền trắng Do đó, lượng dữ liệu cần lưu sẽ được giảm đi rất nhiều
Khung B (bi-predictive): mang thông tin về sự khác biệt giữa khung hiện tại với các khung trước đó và các khung sau đó
Do lượng dữ liệu lưu trong khung P và khung B nhỏ hơn nhiều so với khung I, nên mức độ nén sẽ phụ thuộc vào tỉ lệ giữa số lượng khung trong từng loại khung I, P, B Tỉ lệ khung I càng ít thì tỉ lệ nén sẽ càng cao, tuy nhiên, khi giảm tỉ lệ khung I sẽ dẫn tới vấn đề sau: Do chỉ có khung I mới không bị ảnh hưởng của hiệu ứng lan truyền lỗi (error propagation) nên giảm tỉ lệ khung I đồng nghĩa với tăng ảnh hưởng của lan truyền lỗi
Trang 17Trang 17
Hình 6 - Hiệu ứng lan truyền lỗi
Bên cạnh đó, giảm tỉ lệ khung I còn có những ảnh hưởng nhỏ như làm hạn chế khả năng tua khi xem phim Thông thường, các phần mềm xem phim chỉ cho phép tua nhảy cách tới những vị trí của khung I
c Định dạng YCbCr
Mắt người thông thường có đặc điểm là nhạy cảm với mức độ sáng hơn so với màu sắc (nhận biết được mức độ thay đổi độ sáng ở mức độ nhỏ) Các hệ thống mã hoá/hiển thị video đã lợi dụng đặc điểm này để có được chất lượng hiệu quả nhất bằng cách sử dụng không gian màu YCbCr (thay vì RGB) cùng với việc giảm tần suất lấy mẫu cho các thành phần Cb, Cr
YCbCr (hay còn được gọi là YUV – YUV thường được sử dụng trong kỹ thuật tương tự, còn YCbCr là tên thường được sử dụng trong kỹ thuật số) là một không gian màu với 3 thành phần: Y là thành phần độ sáng, còn Cb, Cr là hai thành phần màu Do mắt người nhạy cảm hơn với độ sáng, nên khi lấy mẫu video, thông thường người ta lấy mẫu Cb, Cr với tần suất thấp hơn Tần suất lấy mẫu thường được biểu thị bởi một bộ số, ví dụ: 4:4:4, 4:2:2, 4:2:0, … Trong đó 4:2:0 là tần suất phổ biến hơn cả, với tần suất lấy mẫu của thành phần
Cb, Cr bằng ¼ thành phần Y (½ theo chiều dọc và ½ theo chiều ngang)
Trang 18Trang 18
Hình 7 - YUV 4:4:4 và 4:2:2
Hình 8 - YUV 4:2:0
d Macro-block
Một hình (picture) được phân ra thành nhiều khối macro-block (MB) Mỗi
MB là một hình vuông gồm 16x16 mẫu độ sáng và 8x8 mẫu màu MB là phần
tử cơ bản của hình khi thực hiện mã hoá và giải mã
e Mảnh và nhóm mảnh
Mảnh (slice) là một chuỗi các MB khi quét hình theo dòng (raster scan) Một hình thường được chia thành một hoặc một số mảnh Trong quá trình mã hoá/giải mã, mỗi mảnh là một đơn vị độc lập – việc giải mã một mảnh không ảnh hưởng/phụ thuộc vào các mảnh khác (Hình 9) Với mỗi ảnh gồm nhiều
Trang 19Trang 19
mảnh, khi thực hiện mã hoá/giải mã có thể tiến hành song song đối với các mảnh, từ đó nâng cao được tốc độ xử lý
Hình 9 - Mảnh (slice) khi không sử dụng FMO
Tuy nhiên, trong H.264, với việc sử dụng FMO, đã xuất hiện khái niệm mới là nhóm mảnh (slice group), đồng thời thay đổi khái niệm về mảnh Theo
đó, các MB trong một hình được chia vào các nhóm mảnh khác nhau (Hình 10) Việc chia MB không còn được thực hiện theo dạng quét dòng, mà việc xác định MB nào thuộc nhóm nào được mô tả trong một bảng ánh xạ Khi đó, khái niệm mảnh sẽ là một chuỗi các MB liên tiếp trong nhóm mảnh
Hình 10 - Chia MB vào các nhóm mảnh (slice group)
Trường hợp không sử dụng FMO, khi đó, sẽ là một trường hợp đặc biệt của FMO – toàn bộ hình chỉ có một nhóm mảnh duy nhất
Tuy nhiên, việc mã hoá một mảnh không phụ thuộc việc có sử dụng FMO hay không Mỗi mảnh có thể được mã hoá theo một trong những phương pháp sau:
Mảnh loại I: là mảnh với tất cả các MB được mã hoá với đầy đủ thông tin gốc, không phải tham chiếu tới khác khung hình khác
Mảnh loại P: là mảnh có chứa một số MB được mã hoá có sử dụng tham chiếu từ các khung hình khác, với tối đa một dự đoán bù chuyển động
Trang 20Trang 20
Mảnh loại B: bổ sung thêm một số MB có 2 dự đoán bù chuyển động
Trang 21Trang 21
III Các thuật toán ẩn lỗi
Trong những năm gần đây, việc truyền video trên trên mạng, đặc biệt là mạng vô tuyến, xuất hiện ngày càng nhiều Do các kênh truyền này thường xuyên xuất hiện lỗi, trong khi các luồng dữ liệu video với tỉ lệ nén cao lại rất nhạy cảm với lỗi, việc ẩn lỗi trở nên vô cùng quan trọng, và được quan tâm ngày càng nhiều Người ta tìm mọi phương pháp để bảo vệ luồng dữ liệu và tái tạo các dữ liệu bị mất để làm giảm ảnh hưởng của lỗi
Việc ẩn lỗi thường được thực hiện ở 2 mức: mức macro-block và mức khung hình Ẩn lỗi ở mức macro-block phát sinh khi một số bit trong chuỗi tin
bị mất, trong khi ẩn lỗi ở mức khung hình cần thiết khi toàn bộ thông tin của một khung bị lỗi/mất Với mạng IP và các định dạng video hay được sử dụng hiện tại, việc mất/lỗi một gói tin IP thường dẫn đến mất toàn bộ một khung hình Điều này được giải thích đơn giản như sau:
Một gói tin IP có thể mang tới 4040 byte dữ liệu, trong khi đó, một khung
P thường có kích thước tính theo byte khá thấp, dưới 1000 byte (như Bảng 1 và Bảng 2)
khung P