ĐẠ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
ĐẠ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
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 3
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 4
Bảng từ khoá
Tiếng Anh
Tiếng Việt
Bit-rate
Tốc độ bit
Blocking artefact
Hiện tượng/hiệu ứng (viền) khối giả
De-blocking filter
Lọc làm mịn/lọc loại bỏ viền khối
Error-propagation
(Hiệu ứng) lỗi lan truyền
Field
Miền
Frame
Khung
Macro-block
Khối
Motion compensation
Bù chuyển động
Motion-vector
Véc-tơ chuyển động
Picture
Hình
Ringing artefact
Hiện tượng/hiệu ứng vòng giả
Slice
Mảnh
Sub-block
Khối nhỏ
Video streaming
Truyền tải video
Trang 5
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 6
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 7
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 8
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 9
đượ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 10
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 11
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 12
phép bộ mã hoá hoạt động chi tiết hơn, giảm thiểu hiện tượng vòng giả
(“ringing artifact”).
Sử dụng hai phương pháp mã hoá entropy: mã hoá số học nhị phân tương
thích ngữ cảnh (Context-adaptive binary arithmetic coding – CABAC)
và mã hoá có độ dài từ thay đổi tương thích ngữ cảnh (Context-adaptive
variable-length coding – CAVLC)
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 13
Đơ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 14
Hình 3 - Sơ đồ khối mã hoá 1 Macro-Block trong H.264
a. Hình, Khung, và Miền
Một đoạn video H.264 là một chuỗi các các hình (Picture). Mỗi hình có
thể là toàn bộ một khung (Frame) hay chỉ là một miền (field) của khung. Tuy
nhiên, khái niệm hình và khung nhiều khi được sử dụng tương đương nhau.
Thô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.
(a)
(b)
Hình 4 - Progressive - interlaced frame
Trang 15
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 16
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 17
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 18
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 19
Mảnh loại B: bổ sung thêm một số MB có 2 dự đoán bù chuyển động.
Trang 20
- Xem thêm -