Top field bao gồm các dòng có thứ tự chẵn còn Bottom field bao gồm các dòng có thứ tự lẻ trong một khung hình đầy đủ như được mô tả trong hình vẽ sau: Hình vẽ 1.1: Chuỗi video xen kẽ Vi
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
VŨ TUẤN ANH
THUẬT TOÁN DEBLOCKING TRONG XỬ LÝ
VIDEO NÉN THEO CHUẨN H.264
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Ĩ
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Lê Vũ Hà
Trang 2MỤC LỤC
Trang
BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
DANH MỤC CÁC BẢNG
MỞ ĐẦU
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ NÉN VIDEO 1
1.1 Khái niệm về video 1
1.2 Các phương pháp nén video 6
1.2.1 Giảm tốc độ dòng bit dựa trên đặc điểm của thị giác người 6
1.2.2 Nén dòng dữ liệu video số trong miền không gian 7
1.2.3 Nén dữ liệu video số theo miền thời gian 7
1.2.4 Nén hỗn hợp sử dụng tổ hợp của các phương pháp trên 7
1.3 Tham số nén video 8
CHƯƠNG 2: CHUẨN NÉN H.264 9
2.1 Giới thiệu chung về chuẩn nén H.264 9
2.2 Cơ chế nén ảnh của H.264 10
2.2.1 Bộ nén 10
2.2.2 Bộ giải nén 11
2.3 Cấu trúc của H.264 12
2.3.1 Phân chia khung hình thành các MB 13
2.3.2 Dự đoán Inter trong H.264 15
2.3.2.1 Các véc-tơ chuyển động 15
2.3.2.2 Xác định các mẫu nội suy 16
Trang 32.3.2.3 Ước lượng véc-tơ chuyển động và bù chuyển động 19
2.3.3 Dự đoán Intra trong H.264 22
2.3.3.1 Các mode dự đoán cho block 4x4 (đối với thành phần độ chói) 23
2.3.3.2 Các mode dự đoán Intra16x16 (đối với thành phần độ chói) 25
2.3.3.3 Các mode dự đoán Intra8x8 (đối với thành phần sắc độ) 26
2.3.3.4 Báo hiệu trong các mode dự đoán Intra 26
2.3.4 Quyết định mode dự đoán 26
2.3.5 Phép biến đổi và lượng tử hóa 30
2.3.5.1 Biến đổi và lượng tử hóa dư thừa 4x4 (các blok 0†15, 18†25) 31
2.3.5.2 Lượng tử hoá 33
2.3.5.3 ReScaling 35
CHƯƠNG 3: THUẬT TOÁN DEBLOCKING 37
3.2 Giới thiệu 37
3.2 Phân tích biên 40
3.2.1 Lỗi phân bố trong block 4x4 40
3.2.2 Tính thích ứng mức đường biên của bộ lọc 40
3.2.3 Tính thích ứng mức mẫu của bộ lọc 41
3.2.4 Lưu đồ thuật toán tính giá trị BS 44
3.3 Hoạt động của bộ lọc 44
3.3.1 Tổng quan về hoạt động lọc 44
3.3.2 Việc lọc đối với các đường biên có BS từ 1†3 45
Trang 44.3 Các kết quả lối ra của chương trình 57
4.3.1 Kết quả hình ảnh thu được trong quá trình phân tích khung hình đầu tiên 57 4.3.2 Kết quả hình ảnh thu được trong quá trình phân tích khung hình bất kỳ trong chuỗi video 60
4.4 Đánh giá kết quả và nhận xét 63
4.4.1 Đánh giá kết quả 63
4.4.2 Nhận xét 66
KẾT LUẬN
TÀI LIỆU THAM KHẢO
Trang 5BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT
CABAC Context-based Adaptive Binary Arithmetic Coding CAVLC Context Adaptive Variable Length Coding
CIF Common Intermediate Format
CODEC COder/DECoder pair
BMA Block Match algorithms
BRR Bit Rate Reduction
BS Boundary strength
DCT Discrete cosine transform
GOP Group of pictures
HDTV High definition television
HVS Human visual system
IDCT Inverse Discrete Cosine Transform
JVT Joint Video Team
LSB Least significant bit
LZC Layered Zero Coding
MAE Mean Absolute Error
MC Motion compensation
MND Minimally noticeable distortion
Trang 6RD Rate distortion
RGB Red/Green/Blue colour space
SAD Sum of Absolute Differences
SAE Sum of Absolute Errors
SAQ Successive approximation quantization
SI Switching Intra Picture
SP Switching Prediction Picture
SNR Signal-to-noise ratio
SQCIF Sub - Quarter Common Intermediate Format
UTQ Uniform threshold quantization/quantizer
VLC Variable Length Code
VO Video object
VOP Video object plane
YUV A colour space
Trang 7DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình vẽ 1.1: Chuỗi video xen kẽ 1
Hình vẽ 1.2: Cấu trúc lấy mẫu 3
Hình vẽ 1.3: Cấu trúc lấy mẫu 4:2:2 3
Hình vẽ 1.4: Cấu trúc lấy mẫu 4:1:1 4
Hình vẽ 1.5: Cấu trúc lấy mẫu 4:2:0 4
Hình vẽ 1.6: Khung hình video lấy mẫu ở các độ phân giải khác nhau 5
Hình vẽ 2.1: Sơ đồ khối của bộ nén theo chuẩn H.264 11
Hình vẽ 2.2: Sơ đồ khối của bộ giải nén theo chuẩn H.264 12
Hình vẽ 2.3: Các profile trong chuẩn nén H.264 13
Hình vẽ 2.4: Phân chia MB theo các kích thước 16x16, 16x8, 8x16 và 8x8 13
Hình vẽ 2.5: Phân chia MB theo các kích thước 8x8, 4x8, 8x4 và 4x4 14
Hình vẽ 2.6: a) Sai khác giữa hai khung hình liên tiếp 15
b) Khung hình sai khác đã được bù chuyển động 15
Hình vẽ 2.7: Ví dụ về dự đoán véctơ chuyển động 16
Hình vẽ 2.8: Nội suy các vị trí giữa các điểm ảnh 17
Hình vẽ 2.9: Nội suy của các vị trí ¼ khoảng cách điểm ảnh 17
Hình vẽ 2.10: Vùng hình ảnh được nội suy của các vị trí ¼ pixel 18
Trang 8Hình vẽ 2.14: Vị trí của block hiện tại và vị trí của các block kế cận (khác kích thước)
22
Hình vẽ 2.15: Gán nhãn các mẫu dự đoán (4x4) 23
Hình vẽ 2.16: Các mode dự đoán Intra4x4 (thành phần độ chói) 24
Hình vẽ 2.17: Ví dụ về các mode dự đoán Intra4x4 trong thực tế 24
Hình vẽ 2.18: Các mode dự đoán Intra16x16 (thành phần độ chói) 25
Hình vẽ 2.19: Ví dụ về các mode dự đoán Intra16x16 trong thực tế 25
Hình vẽ 2.20: MSE của dữ liệu dư thừa 29
Hình vẽ 2.21: Lưu đồ của thuật toán quyết định mode 30
Hình vẽ 2.22: Thứ tự truyền của các block dư thừa trong một MB 31
Hình vẽ 3.1: Deblocking với vai trò là một bộ lọc post-filter 38
Hình vẽ 3.2: Loop-filter trong chuẩn nén H.264 39
Hình vẽ 3.3: Mô tả đường biên giữa các block mang tính trực quan 42
Hình vẽ 3.4: Lưu đồ thuật toán tính giá trị BS 44
Hình vẽ 3.5: Lưu đồ thuật toán của bộ lọc Deblocking 48
Hình vẽ 3.6: Lưu đồ thuật toán của bộ lọc Deblocking (tiếp theo) 49
Hình vẽ 4.1: Giao diện chính của chương trình 51
Hình vẽ 4.2: Giao diện chính nhập thông số cho chương trình 52
Hình vẽ 4.3: Sơ đồ khối tổng quát của chương trình 53
Hình vẽ 4.4: Sơ đồ khối thực hiện chức năng Intra coding 54
Hình vẽ 4.5: Sơ đồ khối thực hiện chức năng Inter coding 55
Hình vẽ 4.6: Sơ đồ khối thực hiện chức năng Inter coding (tiếp theo) 56
Hình vẽ 4.7: Khung hình thành phần độ chói đầu tiên trong chuỗi video 57
Hình vẽ 4.8: Khung hình thành phần độ chói sau khi dự đoán Intra4x4 mode DC 58
Hình vẽ 4.9: Khung hình thành phần độ chói sau khi thực hiện DCT và lượng tử hoá 58
Trang 9Hình vẽ 4.10: Khung hình thành phần độ chói sau khi thực hiện IDCT và lượng tử hóa
ngược 59 Hình vẽ 4.11: Khung hình thành phần độ chói sau khi khôi phục lại nhưng không sử
dụng bộ lọc 59 Hình vẽ 4.12: Khung hình thành phần độ chói sau khi khôi phục lại có sử dụng bộ lọc
60 Hình vẽ 4.13: Khung hình thành phần độ chói trong chuỗi video chưa được xử lý 60 Hình vẽ 4.14: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện dự
đoán Inter 61 Hình vẽ 4.15: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện biến
đổi DCT và lượng tử hoá 61 Hình vẽ 4.16: Khung hình thành phần độ chói trong chuỗi video sau khi thực hiện biến
đổi IDCT và lượng tử hoá ngược 62 Hình vẽ 4.17: Hình ảnh trong khung hình thành phần độ chói sau khi khôi phục lại
nhưng không sử dụng bộ lọc 62 Hình vẽ 4.18: Hình ảnh trong khung hình thành phần độ chói sau khi khôi phục lại có
sử dụng bộ lọc 63 Hình vẽ 4.19: Một khung hình thành phần độ chói đại diện cho chuỗi video
“Test1.avi” 64 Hình vẽ 4.20: Một khung hình thành phần độ chói đại diện cho chuỗi video
“Test2.avi” 65
Trang 10DANH MỤC CÁC BẢNG
Bảng 1.1: Các định dạng khung hình video 5
Bảng 2.1: Một số giá trị tiêu biểu của Qstep 34
Bảng 2.2: Các giá trị MF tương ứng với 6 giá trị QP đầu tiên 35
Bảng 3.1: Bộ lọc deblocking đối với các chuẩn nén khác nhau 37
Bảng 3.2: Ví dụ về các giá trị mẫu trong một block 40
Bảng 3.3: Các điều kiện xác định giá trị BS 41
Bảng 3.4: Các giá trị của α và β sử dụng trong H.264 43
Bảng 3.5: Các giá trị c0 sử dụng trong H.264 47
Trang 11MỞ ĐẦU
Ngày nay, với sự phát triển vượt bậc về công nghệ trong lĩnh vực điện tử, viễn thông và công nghệ thông tin, các tính năng cũng như các loại hình dịch vụ trong lĩnh vực này đều có xu hướng hội tụ trong một vài thiết bị nhỏ gọn Chẳng hạn, chỉ với một thiết bị cầm tay người sử dụng có thể sử dụng cũng như truy cập được rất nhiều các loại hình dịch vụ của các nhà cung cấp dịch vụ khác nhau như: đàm thoại, truy cập internet, xem truyền hình, chạy các ứng dụng như trên máy tính cá nhân…
Để có được kết quả này là nhờ vào sự phát triển mạnh mẽ của cả lĩnh vực phần cứng cũng như phần mềm Sự ra đời của những chíp vi điều khiển có tốc độ và năng lực xử lý rất cao được đóng gói nhỏ gọn cùng với các thuật toán phần mềm tối ưu làm tăng năng lực tính toán cũng như giảm thiểu được băng thông
Những phát triển quan trọng trong các lĩnh vực về xử lý hình ảnh đã cho ra đời những kỹ thuật nén và phương pháp truyền tải hình ảnh hiệu quả cho phép giải quyết được nhiều vấn đề băng thông Trong đó, nổi bật hơn cả là sự ra đời của chuẩn nén H.264 được xem là chuẩn nén video tốt nhất hiện nay Chuẩn nén H.264 cho phép dữ liệu video được nén với tỉ lệ nén rất cao nhưng vẫn đáp ứng được yêu cầu về chất lượng về hình ảnh
Mục đích của luận văn này là tập trung vào nghiên cứu và lập trình mô phỏng thuật toán Deblocking trong chuẩn H.264 Đây là một thuật toán khôi phục ảnh cho
Trang 12 Chương 1: Giới thiệu một số khái niệm tổng quan về video và các kỹ thuật nén
video
Chương 2: Trình bày một số nội dung chính của chuẩn nén H.264 Do thuật
toán Deblocking là một thành phần được tích hợp trong trong bộ nén và giải nén nên luận văn sẽ trình bày chi tiết vào các vấn đề chính của H.264 liên quan đến quá trình triển khai và xây dựng phần mềm mô phỏng
Chương 3: Trình bày thuật toán Deblocking
Chương 4: Chương trình mô phỏng và đánh giá kết qủa
Do thời gian có hạn nên luận văn chỉ mới đề cập được một phần các vấn đề trong kỹ thuật nén H.264 nói chung và thuật toán Deblocking nói riêng do vậy chắc chắn không tránh khỏi thiếu sót Vì vậy, tác giả xin trân trọng những đóng góp của các Thày cô và các đồng nghiệp xa gần để luận văn ngày càng hoàn chỉnh hơn Mọi ý kiến đóng góp xin gửi về cho tác giả theo địa chỉ vtanh78@yahoo.com
Cuối cùng, tôi xin chân thành cảm ơn sự giúp đỡ và sự chỉ bảo tận tình của Thày giáo hướng dẫn luận văn, TS Lê Vũ Hà - Bộ môn Xử lý thông tin - Khoa Điện tử Viễn thông - Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, đã giúp đỡ tôi hoàn thành luận văn này
Hà nội, ngày 02 tháng 11 năm 2009
Trang 14CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ NÉN VIDEO
1.1 Khái niệm về video
Một cảnh video tự nhiên có tính liên tục về không gian và thời gian Khi biểu diễn dưới dạng dữ liệu video số thì video là chuỗi các hình ảnh liên tiếp, còn gọi là khung hình Chuỗi các khung hình xuất hiện liên tục với tốc độ đủ nhanh sẽ cho ta cảm giác chuyển động của một hình ảnh với sự chuyển động của các đối tượng trong khung cảnh (tối thiểu để có cảm giác chuyển động tự nhiên là khoảng 25 khung hình/giây do thời gian lưu ảnh trong võng mạc là khoảng 1/25 giây) [1]
Một tín hiệu video có thể được lấy mẫu đầy đủ một chuỗi các khung hình (lấy mẫu liên tục) hoặc lấy mẫu xen kẽ
Mỗi khung hình được lấy mẫu xen kẽ gồm hai thành phần là Top field và Bottom field Top field bao gồm các dòng có thứ tự chẵn còn Bottom field bao gồm các dòng
có thứ tự lẻ trong một khung hình đầy đủ như được mô tả trong hình vẽ sau:
Hình vẽ 1.1: Chuỗi video xen kẽ
Việc lấy mẫu xen kẽ có ưu điểm là làm cho chuyển động của cảnh trong video ít
bị giật hình hơn
Không gian màu:
Theo lý thuyết về biểu diễn màu sắc, mỗi một màu sắc tự nhiên đều có thể được tạo từ một tổ hợp của ba màu đơn sắc: màu đỏ, màu lục và màu lam (Còn được gọi là
ba màu cơ sở của không gian màu RGB) Trong không gian màu RGB, các màu khác nhau có thể được mô tả như là các điểm bên trong một hình lập phương đơn vị: Gốc tọa độ (0, 0, 0) biểu diễn cho màu đen và điểm (1, 1, 1) tương ứng với màu trắng; ba
Trang 15theo ba thành phần RGB rất thuận tiện cho việc hiển thị hình ảnh trên màn hình máy tính hay máy thu hình
Một hệ thống biểu diễn màu khác thường được sử dụng chủ yếu trong lĩnh vực truyền hình là không gian màu YUV, với mỗi màu sắc được biểu diễn bởi một tổ hợp của ba thành phần: Y là độ chói và U, V là hai thành phần biểu diễn sắc độ Biểu diễn hình ảnh video trong không gian màu này cho phép đạt được hiệu suất truyền hình ảnh cao hơn và giữ được tính tương thích giữa các chuẩn truyền hình màu với truyền hình đen trắng Thành phần độ chói (luminance) mang thông tin về cường độ ánh sáng, hai thành phần còn lại mang thông tin về sắc độ (chrominance) của các điểm ảnh
Dưới đây là biểu diễn mối quan hệ giữa hai không gian màu YUV và RGB (theo chuẩn CCIR 601):
Y = 0,299R + 0,587G + 0,114B (1.1)
Trong đó: Y là thành phần chói còn U, V là hai thành phần sắc độ
Một định dạng màu khác tương tự như YUV và cũng hay được sử dụng là
YCBCR Với Y tương tự như trên còn hai thành phần sắc độ được biểu diễn như sau:
Trong đó, các giá trị thành phần sắc độ CB, CR luôn nằm trong khoảng [0, 1]
YCBCR được sử dụng trong các hệ thống truyền hình màu tương tự truyền thống, trong khi YUV được sử dụng trong truyền hình số
Số hoá tín hiệu video
Trong một chuỗi video với các khung hình có độ phân giải là 720x576 điểm ảnh, tốc độ khung hình là 25Hz hoặc 30Hz Mỗi khung hình trong chuỗi video được lấy
Trang 16YUV 4:2:0
YUV 4:1:1
Hình vẽ 1.2: Cấu trúc lấy mẫu
Cấu trúc lấy mẫu 4:2:2
Hình vẽ 1.3: Cấu trúc lấy mẫu 4:2:2
Việc lấy mẫu sẽ diễn ra một cách tuần tự như sau: Điểm ảnh đầu lấy mẫu thành phần độ chói (Y) và lấy mẫu hai thành phần sắc độ UvàV Điểm ảnh tiếp theo chỉ lấy mẫu thành phần chói (Y) mà không lấy mẫu hai thành phần sắc độ Khi giải mã, thành phần sắc độ của điểm ảnh bị thiếu phải được suy ra từ điểm ảnh trước đó Cứ như vậy, bốn lần lấy mẫu thành phần Y thì có hai lần lấy mẫu thành phần U và hai lần lấy mẫu thành phần V
Trang 17Cấu trúc lấy mẫu 4:1:1
text text text text text text text text
text text text text text text text text
Hình vẽ 1.4: Cấu trúc lấy mẫu 4:1:1
Điểm ảnh đầu lấy mẫu đủ các thành phần Y, U, V Ba điểm ảnh kế tiếp chỉ lấy mẫu thành phần độ chói Y mà không lấy mẫu thành phần sắc độ Khi giải mã, thành phần sắc độ của ba điểm ảnh kế tiếp này phải suy ra từ điểm ảnh đầu Tuần tự như vậy,
cứ bốn lần lấy mẫu thành phần Y có một lần lấy mẫu thành phần U và một lần lấy mẫu thành phần V
Cấu trúc lấy mẫu 4:2:0
text text text text text text text text
text text text text text
text
text text text
text text text text text text text text text text
text
Hình vẽ 1.5: Cấu trúc lấy mẫu 4:2:0
Lấy mẫu thành phần độ chói Y tại tất cả các điểm ảnh Với thành phần sắc độ thì
cứ bốn thành phần Y lấy mẫu hai thành phần U và V cách nhau theo từng hàng
Các định dạng video
Chuẩn nén H.264 có thể thực hiện việc nén đối với các định dạng khung hình video khác nhau Trong thực tế, nó thường thu hoặc chuyển đổi sang các định dạng
Trang 18Hình vẽ 1.6: Khung hình video lấy mẫu ở các độ phân giải khác nhau
Việc chọn độ phân giải của khung hình tuỳ thuộc vào ứng dụng và khả năng lưu trữ cũng như khả năng truyền dẫn Ví dụ: 4CIF là phù hợp với truyền hình độ nét tiêu chuẩn và video DVD; CIF và QCIF phù hợp cho các ứng dụng video hội nghị; QCIF hoặc SQCIF phù hợp cho các ứng dụng đa phương tiện trên các điện thoại di động Bảng 1.2 mô tả số các bit cần thiết để mã hoá một khung hình theo mỗi định dạng (với cấu trúc lấy mẫu 4:2:0 và 8 bit biểu diễn cho một mẫu)
Một định dạng được sử dụng rộng rãi cho các dữ liệu video số trong các ứng
Trang 19video được lấy mẫu với tốc độ 13,5MHz và 6,75MHz đối với các thành phần sắc độ để tạo ra các thành phần Y:U:V theo tỷ lệ 4:2:2 Các thông số của tín hiệu video số đã được lấy mẫu phụ thuộc vào tốc độ khung hình (30Hz đối với tín hiệu NTSC và 25Hz đối với tín hiệu PAL/SECAM)
1.2 Các phương pháp nén video
Mục tiêu chính của việc nén dữ liệu video là biểu diễn một nguồn dữ liệu video bởi một số lượng bit ít nhất có thể được mà vẫn đảm bảo yêu cầu chất lượng cảm thụ hình ảnh của mắt người Với tín hiệu video, giới hạn dải thông của tín hiệu video tương tự ở vào khoảng 6MHz Tín hiệu video sau khi số hoá theo tiểu chuẩn CCIR 601 với tốc độ bit là 270Mbit/s chiếm dải thông không dưới 189MHz, tức là lớn hơn 31,5 lần so với dải thông của tín hiệu tương tự Do vậy, giảm dải thông là vấn đề quan trọng với công nghệ video số
Về cơ bản việc giảm yêu cầu về dải thông được thực hiện theo bốn cách:
Giảm tốc độ dòng bit (Bit Rate Reduction)
Nén dòng dữ liệu video số theo không gian - giảm độ dư thừa trong nội tại một khung hình
Nén dòng dữ liệu theo thời gian - giảm độ dư thừa theo thời gian
Nén hỗn hợp sử dụng tổ hợp các phương pháp trên
1.2.1 Giảm tốc độ dòng bit dựa trên đặc điểm của thị giác người
Do mắt người thường ít nhạy cảm đối với các thành phần sắc độ hơn là thành phần độ chói của hình ảnh nên trong phương pháp này, người ta có thể giảm bớt độ phân giải của thành phần sắc độ mà không làm ảnh hưởng nhiều đến sự cảm thụ về chất lượng hình ảnh (ví dụ như trong các định dạng YUV 4:2:2, 4:2:0, 4:1:1)
Phần lớn các định dạng video số hiện nay đều sử dụng tần số lấy mẫu 13,5MHz đối với thành phần độ chói Theo chuẩn CCIR 601, nếu hai thành phần sắc độ được lấy mẫu với tần số như thành phần độ chói chúng ta sẽ có định dạng 4:4:4 Định dạng này
Trang 20Khi lấy mẫu 8 bit: (720 + 360 + 360) x 576 x 8 x 25 = 166 Mbit/s
= 124,4 Mbit/s, tức là phép giảm được 50% tốc độ dòng bit so với nguyên mẫu 4:4:4
1.2.2 Nén dòng dữ liệu video số trong miền không gian
Gần như tất cả các ảnh đều chứa một số lượng lớn các điểm ảnh có giá trị gần giống nhau Các điểm ảnh giống nhau này được lặp lại tạo thành các vùng đồng đều trong một ảnh (ví dụ: bầu trời xanh), tạo nên sự dư thừa về mặt không gian trong dữ liệu (do ta có thể dự đoán giá trị một điểm ảnh từ giá trị các điểm ảnh xung quanh nó)
Để giảm độ dư thừa trong một khung hình, người ta sử dụng các phương pháp nén ảnh trong miền không gian Các phương pháp nén ảnh này có thể chia làm hai loại:
Nén không tổn hao (lossless compression): là phương pháp nén mà dữ liệu được nén (mã hoá), sau khi giải nén (giải mã) đối chiếu với dữ liệu gốc thì không có sự khác biệt nào
Nén có tổn hao (lossy compression): là phương pháp nén mà dữ liệu được khôi phục sau khi nén và giải nén có sự khác biệt với dữ liệu gốc
Tỉ số nén của các phương pháp nén không tổn hao thường rất thấp Để đạt được
tỉ số nén cao, người ta thường phải sử dụng các phương pháp nén có tổn hao
1.2.3 Nén dữ liệu video số theo miền thời gian
Các khung hình liên tiếp trong một đoạn video có quan hệ mật thiết với nhau Thậm chí một khung hình có thể chỉ thay đổi chút ít so với các khung hình liền kề trước và sau nó, tạo nên sự dư thừa theo thời gian Để giảm bớt lượng dữ liệu truyền tải, người ta làm giảm sự dư thừa đó bằng cách chỉ truyền những phần sai lệch giữa các khung hình kết hợp với việc dự đoán dựa trên khung hình trước
1.2.4 Nén hỗn hợp sử dụng tổ hợp của các phương pháp trên
Để đạt được hiệu quả nén cao mà vẫn đảm bảo chất lượng hình ảnh, người ta sử dụng tổ hợp của các phương pháp trên Phương pháp nén video theo chuẩn H.264 là một phương pháp nén hỗn hợp như vậy
Trang 211.3 Tham số nén video
Các tham số nén video được đề cập đến ở đây là định dạng ảnh và tỉ số nén Tỉ số nén cho phép đánh giá hiệu quả của một hệ thống nén dữ liệu Để đánh giá hiệu quả của các hệ thống nén bằng cách so sánh tỉ số nén của chúng với nhau, định dạng ảnh
sử dụng trong các hệ thống nén đó phải giống nhau
Các tham số định dạng ảnh bao gồm:
Số dòng/khung hình và số điểm ảnh/dòng
Tốc độ khung hình (số khung hình/giây)
Cấu trúc lấy mẫu
Độ sâu của giá trị mẫu (8, 10 hay 12 bit/mẫu)
Hệ số nén được tính bằng tốc độ dữ liệu video gốc (số bit dữ liệu/giây) trên tốc độ dữ liệu video nén
Để đánh giá chất lượng một hệ thống nén, bên cạnh tỷ số nén người ta còn phải xét đến độ sai lệch của dữ liệu sau khi nén so với trước khi nén, thường được đo bằng PSNR:
MSE P
10 dB
)12(log10
(1.6)
Trong đó MSE là sai số bình phương trung bình giữa dữ liệu trước và sau nén, n
là số bit để mã hoá giá trị mỗi điểm ảnh
Trang 22CHƯƠNG 2: CHUẨN NÉN H.264
2.1 Giới thiệu chung về chuẩn nén H.264
Hiệp hội viễn thông quốc tế (ITU) và Tổ chức tiêu chuẩn quốc tế/Uỷ ban kỹ thuật điện tử quốc tế (ISO/IEC) là hai tổ chức đi đầu trong lĩnh vực nghiên cứu và phát triển các chuẩn nén âm thanh, hình ảnh Theo ITU-T, các chuẩn nén video được coi là các khuyến nghị và gọi tắt là chuẩn H.26x (H.261, H.262, H.263 và H.264) Với tiêu chuẩn ISO/IEC, các chuẩn nén được gọi tắt là MPEG-x (MPEG-1, MPEG-2, MPEG-3
và MPEG-4) [1]
Các khuyến nghị của ITU được xây dựng cho các ứng dụng truyền dữ liệu video thời gian thực như: truyền hình hội nghị (Video Conferencing) hay điện thoại thấy hình Trong khi, MPEG hướng tới mục tiêu truyền và lưu trữ video như: lưu trữ trên đĩa quang DVD; quảng bá video số trên mạng cáp quang, đường truyền số DSL; truyền hình vệ tinh hoặc các ứng dụng truyền tải dòng video trên mạng Internet
Hai nhóm nghiên cứu trên đã cùng nhau thành lập một nhóm cộng tác viết tắt là JVT (Joint Video Team) để xây dựng đề xuất về chuẩn nén H.26L và phát triển thành tiêu chuẩn quốc tế Chuẩn nén này được ấn bản bởi cả ITU-T và ISO/IEC với hai tên gọi là H.264 và MPEG-4 part 10
Dưới đây là một số mốc thời gian về sự phát triển của H.264/MPEG-4 part 10:
1993 Dự án về MPEG-4 được khởi xướng
Một số kết quả ban đầu của H.263 đã đạt được
1995
MPEG-4 là cơ sở cho các đề xuất bao gồm: nén video hiệu quả với các tính năng dựa theo nội dung
H.263 được chọn như là trọng tâm của công cụ nén video
1998 Đưa ra các đề xuất cho H.26L
1999 Chuẩn hình ảnh MPEG-4 được ấn bản
Mô hình kiểm tra ban đầu của H.26L được xây dựng
2000 MPEG đưa ra các đề xuất cho các công cụ nén video cải
tiến
2001
Phiên bản thứ hai của chuẩn nén MPEG-4 được ấn bản
H.26L được chọn như là cơ sở cho MPEG-4
JVT được hình thành
2003 H.264/MPEG-4 part 10 được ấn bản
Trang 23Mục tiêu chính của việc phát triển chuẩn nén H.264 là nhằm cung cấp các nguồn dữ liệu video có tốc độ bít thấp (tỷ lệ nén cao) nhưng vẫn đảm bảo được chất lượng về hình ảnh tốt hơn nhiều so với những chuẩn nén video trước đây Điều này đạt được là nhờ sự kế thừa các ưu điểm của các chuẩn nén video trước đó Đồng thời thực hiện một số những cải tiến quan trọng như:
- Phân chia mỗi khung hình video thành các MB (mỗi MB là một khối hình ảnh
có kích thước 16x16 điểm ảnh) và thực hiện các phân tích, xử lý trên từng MB này
- Khai thác triệt để tính dư thừa về không gian trong các khung hình thông qua
việc sử dụng: các dự đoán Intra, các phép biến đổi DCT/IDCT tương đương, phép lượng tử hoá và mã hoá Entropy (hay mã có độ dài thay đổi VLC)
- Khai thác tính dư thừa về thời gian thông qua việc sử dụng các phép dự đoán
véc-tơ chuyển động và bù chuyển động với các kích thước block thay đổi (tuỳ thuộc vào tính chi tiết của hình ảnh) và với nhiều khung hình tham chiếu khác nhau
- Sử dụng các thuật toán, các phương pháp biến đổi được cải tiến cho phép nâng
cao được năng lực xử lý và chất lượng của hình ảnh lối ra
2.2 Cơ chế nén ảnh của H.264
Bộ nén và giải nén của H.264 cũng bao gồm các thành phần có trong các chuẩn nén trước đó ngoại trừ bộ lọc Deblocking Tuy nhiên, các thành phần này đều có những cải tiến so với các chuẩn trước để đạt được hiệu suất nén tối ưu hơn
2.2.1 Bộ nén
Mỗi khung hình dữ liệu video Fn đưa vào bộ nén sẽ được xử lý theo từng khối 16x16 điểm ảnh (gọi là các MB) Khung hình đầu tiên của một chuỗi video hoặc điểm truy cập ngẫu nhiên được mã hoá theo mode Intra (nén trong ảnh) Mỗi một điểm ảnh trong khối sử dụng mode Intra được dự đoán dựa vào các điểm ảnh liền kề với khối dự đoán và nằm bên trong các khối đã được dự đoán và mã hoá trước đó
Trang 24Lượng tử hoá ngược
Inter
Intra
Mã hoá entropy
Hình vẽ 2.1: Sơ đồ khối của bộ nén theo chuẩn H.264
Đối với tất cả các khung hình còn lại hoặc các khung hình nằm giữa các điểm truy cập ngẫu nhiên của chuỗi video, các chế độ mã hoá Intra hoặc Inter (nén liên ảnh) được sử dụng tùy thuộc vào mode quyết định thích hợp Mode Inter được sử dụng để khai thác tính liên quan (tính dư thừa theo thời gian) của các vùng ảnh trong các khung hình khác nhau thông qua việc sử dụng phương pháp dự đoán chuyển động và bù chuyển động dựa vào các khung hình tham chiếu Lối ra của mode này là các MB dữ liệu (chứa các thông tin sai khác giữa các MB của khung hình hiện tại với khung hình tham chiếu) cùng với các thông tin điều khiển (như: vị trí MB, mode dự đoán, thông tin về khung hình tham chiếu và sự dịch chuyển…) MB chứa phần sai khác sau đó được thực hiện các biến đổi DCT tương đương và lượng tử hoá kết hợp với bộ mã hoá Entropy để khai thác tối đa các dư thừa về không gian Ngoài ra, dữ liệu của các MB sau bộ biến đổi và lượng tử hoá được thực hiện các biến đổi ngược để khôi phục lại các khung hình tham chiếu cho các xử lý tiếp theo
2.2.2 Bộ giải nén
Bộ giải nén nhận được dòng dữ liệu video nén sẽ thực hiện giải mã hoá Entropy trước tiên Dữ liệu sau giải mã là tập hợp các hệ số đã được lượng tử hóa, sau đó được đưa qua các bộ biến đổi và lượng tử hoá ngược để thu được dữ liệu về các MB chứa thông tin sai khác Dữ liệu trong các MB này được kết hợp với các các thông tin điều khiển gửi kèm theo từ bộ nén để xây dựng lại các MB nguyên gốc và khôi phục lại thành khung hình ban đầu
Trang 25Intra
Giải mã hoá entropy
+
+
Dữ liệu video nén Dn’
Hình vẽ 2.2: Sơ đồ khối của bộ giải nén theo chuẩn H.264
2.3 Cấu trúc của H.264
H.264 định nghĩa các profile (mô tả) cùng tập hợp các thông số cho phép hỗ trợ các ứng dụng thực tế một cách đa dạng và linh hoạt
Profile xác định tập các công cụ mã hoá hoặc các thuật toán mã hoá có thể được
sử dụng để tạo ra các dòng bit tương thích
Level (mức) đặt ra những giới hạn cho thông số của dòng bit
Có ba profile trong phiên bản thứ nhất: Baseline, Main và Extended
Baseline profile: hỗ trợ mã hoá Intra/Inter và mã hoá Entropy CAVLC (mã hoá chiều dài thích nghi ngữ cảnh) áp dụng cho các ứng dụng thời gian thực như: truyền hình tương tác, điện thoại thấy hình…
Main profile: bao gồm việc hỗ trợ video quét xen kẽ, mã hoá Inter sử dụng B-slices, mã hoá Inter sử dụng dự đoán có trọng số và mã hoá entropy CABAC Main profile được thiết kế cho các thiết bị lưu trữ số và truyền hình quảng bá
Extended profile: không hỗ trợ cho video quét xen kẽ hoặc CABAC nhưng
bổ sung các mode chuyển đổi một cách hiệu quả giữa các dòng bit (SP và
SI slices) và khả năng khắc phục lỗi Extended profile ứng dụng cho các
Trang 26Hình vẽ 2.3: Các profile trong chuẩn nén H.264
Dưới đây sẽ trình bày những phần chính trong chuẩn nén được sử dụng chung cho các profile cũng như được sử dụng để triển khai các thuật toán phục vụ cho mục đích xây dựng và cài đặt phần mềm mô phỏng của luận văn này
2.3.1 Phân chia khung hình thành các MB
Mỗi khung hình video được chia thành các MB có kích thước cố định gồm 16x16 mẫu cho thành phần độ chói và 8x8 mẫu cho thành phần sắc độ
Tuỳ theo mức độ đồng nhất hay chi tiết của khung hình mà mỗi MB được giữ nguyên hay được phân chia tiếp thành các block nhỏ hơn khi thực hiện các mode dự đoán Ngoài ra, nó còn quyết định đến việc lựa chon các mode Intra hoặc Inter
Trong mode Inter, mỗi MB của thành phần độ chói có thể được phân chia theo bốn cách như hình vẽ 2.4: một MB hoặc hai block 16x8 hoặc hai block 8x16 hoặc bốn block 8x8
Hình vẽ 2.4: Phân chia MB theo các kích thước 16x16, 16x8, 8x16 và 8x8
Trang 27Nếu phân dạng block 8x8 được chọn, các block 8x8 trong MB có thể được phân chia tiếp theo bốn cách (như hình bên dưới) gồm: hai block 8x4 hoặc hai block 4x8 hoặc bốn block 4x4 Các cách phân chia và các block con thu được làm tăng tính kết hợp bên trong mỗi MB Đây là phương pháp phân chia MB thành các block nhỏ hơn được sử dụng cho quá trình bù chuyển động với các kích thước thay đổi được biết đến như là bù chuyển động cấu trúc cây
Hình vẽ 2.5: Phân chia MB theo các kích thước 8x8, 4x8, 8x4 và 4x4
Các MB sau khi được dự đoán bởi các mode Intra/Inter sẽ chứa thông tin sai khác giữa các block trong MB hiện tại so với các block trong MB thuộc khung hình tham chiếu MB sau đó lại được xử lý theo từng block nhỏ kích thước 4x4 (đối với thành phần độ chói) trong các phép biến đổi DCT tương đương và phép lượng tử hoá Trong cấu trúc dòng dữ liệu, các MB được tổ chức thành các Slice cho phép nâng cao hiệu quả trong vấn đề về truyền thông như sửa lỗi và truyền lại
Thứ tự truyền của các MB phụ thuộc vào thông tin ánh xạ vị trí của MB trong dòng bít và không nhất thiết phải theo thứ tự quét H264/MPEG-4 Part 10 hỗ trợ 5 dạng Slice khác nhau:
Slice I: Trong đó tất cả MB được mã hoá không có sự tham chiếu tới các ảnh khác trong dãy video
Slice P: Chỉ tham chiếu tới các ảnh trước đó
Slice B: Có sự tham chiếu tới các ảnh trước và sau nó
SI (Switching I) và SP (Switching P): được dùng cho chuyển mạch giữa các dòng bít được mã hoá ở các tốc độ bít khác nhau
Trang 282.3.2 Dự đoán Inter trong H.264
Dự đoán Inter được sử dụng dựa trên đặc điểm về sự liên quan giữa các khung hình liên tiếp trong một chuỗi video Mỗi khung hình video có thể được lặp lại nhiều lần sau đó hoặc các khung hình nếu có sự khác nhau thì cũng có rất nhiều khối hình nhỏ được lặp lại ở các vị trí lân cận trong khung hình trước hoặc sau nó Hiệu của hai khối hình đó sẽ cho kết quả là một khối hình gần đồng nhất và có giá trị trọng số của mỗi điểm là nhỏ rất có ý nghĩa cho các phép biến đổi về sau
Hình vẽ 2.6: a) Sai khác giữa hai khung hình liên tiếp
b) Khung hình sai khác đã được bù chuyển động
Sự khác nhau quan trọng của phép dự đoán Inter trong H.264 so với các chuẩn nén trước là sự hỗ trợ nhiều kích cỡ block khác nhau (16x16, 8x16, 16x8, 8x8, 8x4, 4x8 và 4x4) và các véc-tơ chuyển động với độ phân giải 1/4 điểm (đối với thành phần
độ chói)
2.3.2.1 Các véc-tơ chuyển động
Mỗi MB hoặc block con trong một MB sử dụng phương pháp mã hoá Inter được
dự đoán từ một block cùng kích cỡ trong khung hình tham chiếu Độ dịch chuyển giữa hai block (véc-tơ chuyển động) có độ phân giải 1/4 điểm đối với thành phần độ chói và 1/8 điểm đối với các thành phần sắc độ
Các giá trị mẫu của các thành phần độ chói và thành phần sắc độ ở các vị trí không có sẵn trong khung hình tham chiếu cần phải tạo ra bằng cách nội suy từ các mẫu đã được mã hoá liền kề
Trong hình vẽ 2.7, một block 4x4 trong khung hiện tại (a) được dự đoán từ khung hình tham chiếu ở vị trí bên cạnh vị trí của block trong khung hình hiện tại
Trang 29a block 4x4 trong khung
Hình vẽ 2.7: Ví dụ về dự đoán véctơ chuyển động
Nếu các thành phần theo chiều ngang và chiều dọc của véc-tơ chuyển động là số nguyên (hình vẽ 2.7 b.) thì các mẫu dự đoán liên quan trong block tham chiếu tồn tại trên thực tế (các điểm xám) Nếu một hoặc cả hai thành phần véc-tơ là các giá trị không nguyên (hình vẽ 2.7 c.) thì các mẫu dự đoán (các điểm xám) được tạo ra bằng việc nội suy từ các mẫu liền kề trong khung hình tham chiếu (các điểm trắng)
2.3.2.2 Xác định các mẫu nội suy
Các mẫu được nội suy từ các mẫu ở vị trí giữa các điểm (1/2 khoảng cách) trong thành phần độ chói của khung hình tham chiếu được tạo ra trước tiên (ô màu xám trong hình vẽ 2.8) Mỗi mẫu ở vị trí giữa các điểm và liền kề với hai mẫu hiện hữu (ví
dụ: b, h, m, s) được nội suy từ các mẫu có vị trí là số nguyên bằng việc sử dụng một
bộ lọc 6-tap FIR với các trọng số (1/32, -5/32, 5/8, 5/8, -5/32, 1/32) Ví dụ: mẫu b
được tính toán từ 6 mẫu E, F, G, H, I và J (theo chiều dọc):
Trang 30Hình vẽ 2.8: Nội suy các vị trí giữa các điểm ảnh
Một cách tương tự, h được nội suy bằng việc lọc A, C, G, M, R và T Khi tất cả các mẫu nội suy theo chiều dọc và chiều ngang đã được tính toán, giá trị của mẫu j sẽ được tạo ra bằng việc lọc cc, dd, h, m, ee và ff Bộ lọc nội suy 6-tap là tương đối phức
tạp nhưng tạo ra sự chính xác phù hợp với dữ liệu mẫu là các giá trị số nguyên và khi
đó mức độ thực hiện bù chuyển động tốt hơn
Khi tất cả các mẫu ở vị trí 1/2 đã được tính toán, các mẫu ở vị trí 1/4 tiếp tục được tính bằng một phương pháp nội suy tuyến tính Các vị trí 1/4 với hai mẫu ở vị trí
1/2 hoặc vị trí là số nguyên theo chiều dọc hoặc theo chiều ngang (a, c, i, k và d, f, n,
q trong hình vẽ 2.9 được nội suy từ các mẫu liền kề Ví dụ: a = round((G+b)/2)
Hình vẽ 2.9: Nội suy của các vị trí ¼ khoảng cách điểm ảnh
Các vị trí 1/4 còn lại (e, g, p và r ) được nội suy từ các cặp mẫu đối diện theo đường chéo Ví dụ: e được dự đoán từ b và h
Trang 31Hình vẽ 2.10 biểu diễn ví dụ về kết quả của việc nội suy vùng tham chiếu với độ phân giải 1/4
Hình vẽ 2.10: Vùng hình ảnh được nội suy của các vị trí ¼ pixel
Các véc-tơ chuyển động độ phân giải 1/4 của thành phần độ chói sẽ đi liền với các véc-tơ có độ phân giải 1/8 của thành phần sắc độ (giả sử việc lấy mẫu theo tỷ lệ 4:2:0) Các mẫu nội suy được tạo ra ở các vị trí 1/8 từ các mẫu ở vị trí là số nguyên
trong mỗi thành phần sắc độ bằng việc sử dụng nội suy tuyến tính (mẫu a trong hình
vẽ 2.11) Mỗi vị trí a là một sự kết hợp tuyến tính của các vị trí là số nguyên: A, B, C
và D
a = round([s-dx)(s-dy)A+dx(s-dy)B+(s-dxdyC+dxdyD]/s2
) (2.2) Trong hình vẽ 2.11: s = 8, dx = 2 và dy = 3, do đó:
a = round[30A+10B+18C+6D)/64] (2.3)
Trang 32Hình vẽ 2.11: Vị trí nội suy 1/8 của các thành phần sắc độ
2.3.2.3 Ƣớc lƣợng véc-tơ chuyển động và bù chuyển động
Để thực hiện bù chuyển động, sự chuyển động của các đối tượng chuyển động được ước lượng trước tiên Điều này được gọi là ước lượng véctơ chuyển động Thông thường kỹ thuật ước lượng véc-tơ chuyển động trong tất cả các chuẩn nén video sử dụng là thuật toán phù hợp khối BMA Với một block kích thước MxN điểm ảnh (trong đó MxN có thể là: 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 hoặc 4x4) trong khung hình hiện tại sẽ được tìm kiếm trong một vùng tìm kiếm với sự dao động kích thước w pixel quanh một vị trí mẫu (kích thước cửa sổ tìm kiếm là w) như được mô tả trong hình vẽ dưới đây [2,5]:
Trang 33Block MxN phù hợp trong Frame tham chiếu
Hình vẽ 2.12: Mô tả hoạt động ước lượng véc-tơ chuyển động
Để ước lượng véc-tơ chuyển động có hai phương pháp thường được sử dụng đó
là: phương pháp MSE - sử dụng trung bình của bình phương các sai khác giữa các mẫu, và MAE - trung bình của các sai khác tuyệt đối giữa các mẫu
MSE được tính bằng công thức sau:
1 1 2 ) , ( 1 f(m,n) g(m i,n j)
N M
N n M m
1 1 2 ) ,
N M
N n M m
, wi,jw (2.5) Trong đó: f(m,n) biểu diễn giá trị của điểm ảnh trong block hiện tại ở vị trí
Trang 34Việc mã hoá một véc-tơ chuyển động cho mỗi định dạng của block có thể mất một số bit Các véc-tơ chuyển động của các block liền kề thường có tính tương quan cao hơn Vì vậy, véc-tơ chuyển động của một block thường được được dự đoán từ các véc-tơ chuyển động của các block lân cận đã được mã hoá trước đó Một véc-tơ dự đoán MVp được thực hiện dựa trên các véc-tơ chuyển động đã được tính toán trước đó
là MVD Sự sai khác giữa véc-tơ chuyển động hiện tại và véc-tơ được dự đoán sẽ được
mã hoá và truyền đi Phương pháp thực hiện dự đoán MVpphụ thuộc vào kích cỡ định dạng bù chuyển động và khả năng có sẵn của các véctơ liền kề [1]
Đặt E là block hiện tại (có thể là MB hoặc block con của MB), đặt A là block ngay bên trái của E, đặt B block ngay phía trên E và đặt C là block phía trên bên phải của E Nếu có nhiều hơn một block phía trên E, block ngoài cùng bên trái trong số đó
sẽ được chọn là B Hình vẽ 2.13 minh hoạ sự lựa chọn của các block lân cận khi tất cả
các block có cùng kích cỡ (trong trường hợp này là 16x16) và hình 2.14 chỉ ra một ví
dụ của việc lựa chọn của việc dự đoán các block có các kích cỡ khác nhau so với block
E hiện tại:
Hình vẽ 2.13: Vị trí của block hiện tại và vị trí của các block kế cận
(cùng kích thước block)
Trang 35Hình vẽ 2.14: Vị trí của block hiện tại và vị trí của các block kế cận
(khác kích thước)
a Nếu các block được truyền bao gồm cả kích thước 16x8 và 8x16, MVp là
trung bình của các véc-tơ chuyển động của các block A, B và C
b Đối với các block 16x8, MVp của block 16x8 phía trên được dự đoán từ B
và MVp của block 16x8 phía dưới được dự đoán từ A
c Đối với các block 8x16, MVp của block 8x16 bên trái được dự đoán từ A và MVp của block 8x16 phía dưới được dự đoán từ C
d Đối với các MB được giữ nguyên, một véctơ 16x16 được tạo ra như trong trường hợp (a) ở trên
Nếu một hoặc nhiều hơn các block được truyền đi trước đó (hình vẽ 2.14) không
có sẵn thì việc chọn lựa MVp sẽ được sửa đổi theo Ở bộ giải mã, véc-tơ được dự đoán MVp được hình thành theo cùng cách và được bổ sung vào véc-tơ sai khác đã được giải mã MVD Trong trường hợp MB được giữ nguyên và không có sai khác, véc-tơ được giải mã và một MB bù chuyển động được tạo ra bằng việc sử dụng MVp như là véc-tơ chuyển động
2.3.3 Dự đoán Intra trong H.264
Trang 36Bộ nén lựa chọn mode dự đoán cho mỗi block dựa vào sự khác nhau tối thiểu giữa block cần được dự đoán và block sau khi đã được dự đoán
2.3.3.1 Các mode dự đoán cho block 4x4 (đối với thành phần độ chói)
Hình vẽ 2.15 chỉ ra một block 4x4 (thành phần độ chói) cần được dự đoán Các
mẫu a, b, c,…, p của block dự đoán P được tính toán dựa trên các mẫu A, , M Các mẫu A, , M là các mẫu nằm phía trên và bên trái của P (là các mẫu đã được giải mã
hoá và được khôi phục lại) được sử dụng làm thông tin tham chiếu cho dự đoán
Hình vẽ 2.15: Gán nhãn các mẫu dự đoán (4x4)
Các mode dự đoán trong trường hợp này bao gồm:
Mode 0: Các mẫu trên A, B, C, D được ngoại suy theo chiều dọc
Mode 1: Các mẫu bên trái I, J, K, L được ngoại suy theo chiều ngang
Mode 2: Tất cả các mẫu trong P đươc dự đoán là trung bình của các mẫu A,…,
D và I,…, L
Mode 3: Các mẫu được nội suy ở góc 450
giữa phía dưới bên trái và phía trên bên phải
Mode 4: Các mẫu được ngoại suy ở góc 450 xuống và bên phải
Mode 5: Các mẫu được ngoại suy ở góc xấp xỉ 26,60 phía bên trái theo chiều
dọc
Mode 6: Ngoại suy ở góc xấp xỉ 26,60 phía bên dưới theo chiều ngang
Mode 7: Ngoại suy hoặc nội suy ở góc xấp xỉ 26,60 phía bên phải theo chiều
dọc
Mode 8: Nội suy ở góc xấp xỉ 26,60 phía bên trên theo chiều ngang
Trang 37Hình vẽ 2.16: Các mode dự đoán Intra4x4 (thành phần độ chói)
Các mũi tên trong hình vẽ 2.16 chỉ ra hướng dự đoán trong mỗi mode Đối với các mode 3, , 8, các mẫu dự đoán tạo nên từ một giá trị trung bình mang trọng số của
các mẫu dự đoán A, , M Ví dụ, nếu mode 4 được lựa chọn mẫu phía trên bên phải của P (gán nhãn “d”) được dự đoán bởi: d = round(B/4 + C/2+D/4)
Trang 382.3.3.2 Các mode dự đoán Intra16x16 (đối với thành phần độ chói)
Khác với dự đoán Intra4x4, mode dự đoán Intra16x16 của thành phần độ chói
được thực hiện theo bốn mode như sau:
Mode 0: Ngoại suy từ các mẫu phía trên (H)
Mode 1: Ngoại suy từ các mẫu bên trái (V)
Mode 2: Trung bình của các mẫu phía trên và bên trái (H+V)
Mode 3: Một hàm tuyến tính “phẳng” sử dụng để lọc đối với các mẫu phía
trên, bên trái H và V Điều này được thực hiện trong các vùng có sự thay đổi
rất ít của thành phần chói
Hình vẽ 2.18: Các mode dự đoán Intra16x16 (thành phần độ chói)
Hình vẽ 2.19: Ví dụ về các mode dự đoán Intra16x16 trong thực tế
Trang 392.3.3.3 Các mode dự đoán Intra8x8 (đối với thành phần sắc độ)
Mỗi block 8x8 của thành phần sắc độ sử dụng phương pháp dự đoán Intra được
dự đoán từ các mẫu thành phần sắc độ phía trên và bên trái đã được giải mã trước đó
Cả hai thành phần sắc độ đều sử dụng cùng một mode dự đoán Có bốn mode dự đoán tương tự với bốn mode dự đoán Intra16x16 của thành phần độ chói như đã được trình bày trong phần trước
2.3.3.4 Báo hiệu trong các mode dự đoán Intra
Việc chọn mode dự đoán Intra cho mỗi block 4x4 phải được thông báo cho bộ giải nén và điều này có thể yêu cầu một lượng lớn bit Tuy nhiên, các mode Intra đối với các block 4x4 lân cận thường có liên quan với nhau Chẳng hạn: đặt A, B và E là các block bên trái, phía trên và hiện tại một cách tương ứng (như trong hình 2.13) Nếu các A và B được mã hoá và được dự đoán trước đó bằng việc sử dụng mode 1 thì mode phù hợp nhất cho block E (block hiện tại) cũng là mode 1
Đối với mỗi block E hiện tại, bộ nén và giải nén lựa chọn các mode dự đoán phù hợp nhất có thể Nếu như các block lân cận này không có sẵn (bên ngoài slice hiện thời hoặc không được mã hoá trong mode Intra4x4), giá trị tương ứng A hoặc B được đặt là
rem-là được sử dụng (từ 0 tới 7) để báo hiệu cho mode Intra hiện thời (từ mode 0 tới mode 8)
Mode dự đoán Intra đối với thành phần độ chói hoặc thành phần sắc độ được báo hiệu hoá trong tiêu đề của MB và việc mã hoá của mode là không cần thực hiện trong các trường hợp này
Trang 40Trong bộ nén, tuỳ thuộc vào đặc tính của các MB trong mỗi khung hình cũng như các khung hình tham chiếu tương ứng mà mode dự đoán Intra hay Inter được lựa chọn Nếu vùng hình ảnh là đồng nhất thì mode dự đoán Intra là phù hợp Nếu vùng hình ảnh chứa các thông tin chi tiết hơn thì phương pháp dự đoán Inter là phù hợp [3]
Trong mode dự đoán Intra có 13 mode dự đoán khác nhau còn trong mode dự đoán Inter cũng có 7 mode dự đoán khác nhau Việc lựa chọn mode thích hợp nhất cho mỗi tình huống dự đoán cho phép bộ nén tối ưu hoá được hiệu quả nén của nó Tuy nhiên, việc sử dụng nhiều mode cũng đồng nghĩa với việc làm tăng độ phức tạp trong tính toán của nén
Đối với chuẩn H.264 các thuật toán quyết định mode được đưa ra cho phép cải thiện được tốc độ tính toán và nâng cao hiệu quả của bộ nén
Các thuật toán quyết định mode của H.264/AVC có thể được phân làm hai loại:
Lựa chọn mode thích hợp bằng việc sử dụng một số đặc tính của dữ liệu video
Sử dụng mối tương quan giữa các mode và dự đoán mode tốt nhất thông qua các mode đã được kiểm tra
Trong thực tế, thuật toán quyết định mode thường bao gồm cả loại trên
Do sự phức tạp trong tính toán của việc xác định mode, nhiều thuật toán quyết định mode nhanh được đề cập nhằm giảm độ phức tạp tính toán và thời gian mã hóa Mục tiêu là giảm số mode được kiểm tra bằng việc sử dụng các đặc trưng của dữ liệu
hỗ trợ cho việc đưa ra và thực hiện các quyết định mode
Chuẩn nén H.264 sử dụng các phân dạng MB theo cấu trúc cây: tất cả các mode
có thể được phân vào 4 nhóm như sau: {SKIP}, {16x16, 16x8, 8x16}, {8x8, 8x4, 4x8, 4x4} và {INTRA4x4, INTRA16x16} Thông thường mode SKIP được kiểm tra trước tiên bởi vì với mode này có nghĩa là MB 16x16 chuyển động bằng không và không cần mã hoá dữ liệu dư thừa Đây là một mode đơn giản nhất Như vậy ở giai đoạn ban đầu ta có thể loại bỏ hết các tính toán, bù chuyển động và dự đoán intra Nếu mode SKIP được lựa chọn nó sẽ được xem như mode tối ưu nhất
Ngược lại mode tối ưu sẽ được xác định dựa vào thông số:
COSTmode =SAD(cur,ref,mode))+λmode*R(cur,rec,mode) (2.6)
Trong đó:
SAD là tổng các sai khác tuyệt đối giữa các mẫu trong các block được kiểm tra