Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)Nghiên cứu tiêu chuẩn nén h.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV) (LV thạc sĩ)
Trang 1Nguyễn Đức Thiệp
NGHIÊN CỨU TIÊU CHUẨN NÉN H.264 VÀ ỨNG DỤNG TRONG
TRUYỀN HÌNH CÓ ĐỘ PHÂN GIẢI CAO (HDTV)
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI – 2017
Trang 2Nguyễn Đức Thiệp
NGHIÊN CỨU TIÊU CHUẨN NÉN H.264 VÀ ỨNG DỤNG TRONG
TRUYỀN HÌNH CÓ ĐỘ PHÂN GIẢI CAO (HDTV)
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Học viên
Nguyễn Đức Thiệp
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT vi
DANH SÁCH BẢNG ix
DANH SÁCH HÌNH VẼ x
LỜI MỞ ĐẦU 1 CHƯƠNG 1: NGHIÊN CỨU VỀ CƠ SỞ LÝ THUYẾT CỦA SỐ HÓA TÍN HIỆU VIDEO VÀ NÉN VIDEO SỐ 2
1.1 Mục đích của nén tín hiệu 2 1.1.1 Nhu cầu của công nghệ nén trong truyền hình 2 1.1.2 Mục đích của nén tín hiệu 2 1.2 Quá trính số hóa tín hiệu 3
1.2.1 Lấy mẫu 3
1.2.2 Lượng tử hóa 4 1.2.3 Mã hóa 5 1.3 Tốc độ bít và thông lượng kênh truyền tín hiệu số 5 1.3.1 Tốc độ bit 5 1.3.2 Thông lượng kênh truyền tín hiệu số 5
1.4 Quá trình biến đổi tín hiệu màu 6
1.5 Các tiêu chuẩn lấy mẫu video tín hiệu số 7 1.6 Mô hình nén tín hiệu Video 9
1.6.1 Nén tín hiệu Video 10
1.6.2 Lượng tin trung bình 10
1.7 Phân loại kĩ thuật nén 13
1.8 Quá trình biến đổi 13
1.8.1 Điều xung mã vi sai DPCM 14
1.8.2 Mã hóa biến đổi 14
Trang 51.9 Quá trình lượng tử 16
1.9.1 Lượng tử vô hướng 16
1.9.2 Lượng tử vector 16
1.10 Quá trình mã hóa 17
1.10.1 Mã hóa độ dài thay đổi 17
1.10.1.1 Mã hóa Huffman 18
1.10.1.2 Mã hóa mức dọc chiều dài RLC 18
1.11 Tiêu chuẩn đánh giá chất lượng ảnh nén 19
1.12 Kết luận chương 1 20
CHƯƠNG 2: NGHIÊN CỨU TIÊU CHUẨN NÉN H.264/AVC 21
2.1 Tổng quan về các chuẩn video 21
2.1.1 Dòng H.26x 21
2.1.1.1 Chuẩn H.261 21
2.1.1.2 Chuẩn H.263 22
2.1.1.3 Chuẩn H.264/AVC 22
2.1.2 Dòng MPEG 23
2.1.2.1 Chuẩn MPEG – 1 23
2.1.2.2 Chuẩn MPEG – 2 23
2.1.2.3 Chuẩn MPEG – 4 23
2.2 Cấu trúc H.264 24
2.2.1 Không gian màu YCrCb và kiểu lấy mẫu 4:2:0 24
2.2.2 Macroblock 24
2.2.3 Slice 25
2.2.4 Profile 27
2.3 Qui trình nén và giải nén của H.264 28
2.3.1 Quy trình nén 28
2.3.1.1 Dự đoán 29
2.3.1.1.1 Dự đoán Inter 29
2.3.1.1.2 Dự đoán Intra 35
Trang 62.3.1.2 Biến đổi và lượng tử hóa 38
2.3.1.2.1 Biến đổi DCT và lượng tử vô hướng 39
2.3.1.2.2 Quá trình biến đổi và lượng tử với block khác biệt 4x4 41
2.3.1.2.3 Biến đổi và lượng tử block 4x4 luma gồm các hệ số DC 45
2.3.1.2.4 Biến đổi và lượng tử các block 2x2 chroma gồm các hệ số DC 45
2.3.1.3 Tái sắp xếp 46
2.3.1.4 Mã hóa luồng bit nén hay mã hóa Entropy 47
2.3.1.4.1 Mã hóa Entropy Exp-Golomb 47
2.3.1.4.2 Mã hóa chiều dài thay đổi ứng ngữ cảnh CAVLC 49
2.3.1.4.3 Mã hóa nhị phân số học ứng ngữ cảnh CABAC 50
2.3.1.5 Lọc tách khối 50
2.3.2 Quy trình giải nén 51
2.3.2.1 Giải mã luồng bit nén 52
2.3.2.2 Rescaling và biến đổi ngược 52
2.3.2.3 Tái xây dựng 52
2.4 Những ưu điểm của chuẩn nén H.264 so với các chuẩn trước đó 52
2.5 Kết luận chương 2 55
Chương 3: ỨNG DỤNG TIÊU CHUẨN NÉN H.264/AVC TRONG TRUYỀN HÌNH CÓ ĐỘ PHÂN GIẢI CAO HDTV 56
3.1 Các thông số kỹ thuật cơ bản đặc trưng cho hệ thống
Truyền hình độ phân giải cao HDTV 56
3.1.1 Một số khái niệm cơ bản về truyền hình 56
3.1.1.1 Các thông số kỹ thuật của màn hình 56
3.1.1.1.1 Điểm ảnh (pixel) 56
3.1.1.1.2 Độ phân giải của màn hình 56
3.1.1.1.3 Tần số quét, cách quét 56
3.1.1.1.4 Tỉ lệ khuôn hình 57
3.1.1.1.5 Thời gian đáp ứng (Response Time) 57
Trang 73.1.1.2.6 Độ tương phản 57
3.1.2 Công nghệ HDTV 58
3.1.2.1 Khái niệm Truyền hình HDTV 58
3.1.2.2 Kỹ thuật xử lý tín hiệu và các thông số đặc trưng cơ bản 58
3.1.2.2.1 Đối với truyền hìn số độ phân giải tiêu chuẩn (SDTV) 58
3.1.2.2.2 Đối với truyền hình số độ phân giải cao (HDTV) 58
3.2 Ứng dụng H.264 trong truyền dẫn phát sóng HDTV 61
3.2.1 Sơ đồ tổng quan truyền dẫn phát sóng của một Đài Truyền hình 61
3.2.1.1 Nhiệm vụ của phòng Tổng khống chế 61
3.2.1.2 Khảo sát nguyên lý hoạt động của một phòng phát sóng 62
3.2.2 Truyền dẫn phát sóng HDTV của kênh Truyền hình Quốc Phòng 63
3.2.2.1 Chuẩn file phát sóng của kênh 63
3.2.2.2 Sơ đồ tổng quan của Kênh 64
3.2.2.3 Ưu nhược điểm của việc ứng dụng triển khai chuẩn nén H.264/AVC cho truyền dẫn phát sóng của Kênh 67
3.2.2.4 Sơ đồ đấu nối thiết bị truyền dẫn phát sóng 68
3.3 Kết luận chương 3 69
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 70
DANH MỤC TÀI LIỆU THAM KHẢO 71
Trang 8DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
AVC Advanced Video Coding Chuẩn mã hóa video tiên tiến
CABAC Context-based Apdaptive
Binary Arithmetic Coding
Mã hóa entropy dùng thuật toán mã hóa số học ứng ngữ cảnh
CAVLC Context-based Adaptive
Variable Length Coding
Mã hóa chiều dài thay đổi ứng ngữ cảnh
CIF Common Intermediate Format Định dạng mã hóa hình ảnh có kích
thước 352 x 288 CODEC Coder and Decoder Bộ mã hóa và giải mã
DCT Discrete Cosine Transform Biến đổi cosin rời rạc
DPCM Differential Pulse Code
DWT Discrete Wavelet Transform Biến đổi Wavelet rời rạc
Exp-Golomb Exponential Golomb Mã Exponential Golomb
H.264
Là một chuẩn nén tín hiệu tiến tiến hay còn gọi là AVC/MPEG-4 Part
10
HDTV High Definition Television Truyền hình phân giải cao
IEC International Electrotechnical
Commission Ủy ban Kỹ thuật Điện tử Quốc tế IDCT Inverse Discrete Cosine
Transform Biến đổi ngược Cosine rời rạc
Trang 9Viết tắt Tiếng Anh Tiếng Việt
ISO
International Standards Organization Tổ chức tiêu chuẩn hóa quốc tế
ITU International
Telecommunication Union Liên minh Viễn thông quốc tế
(không mất dữ liệu)
dữ liệu) MAE Mean Absolute Error Sai số tuyệt đối trung bình
MC Motion Compensation Bù chuyển động
MSE Mean squared error Sai số bình phương trung bình
MPEG Moving Pictures Experts
NAL Network Abstraction Layer Lớp trừu tượng mạng
SNR Signal-to-noise ratio Tỉ số tín hiệu trên nhiễu
PCM Pulse Code Modulation Điều xung mã
PSNR Peak to Signal to Noise Ratio Tỉ số tín hiệu trên nhiễu đỉnh
QCIF Quarter Common Intermediate
Trang 10Viết tắt Tiếng Anh Tiếng Việt
RGB Red/Green/Blue Ba màu cơ bản màu đỏ/Xanh/Lam
VCL Video Coding Layer Lớp mã hóa Video
VLC Variable Length Code Mã có chiều dài thay đổi
VRML Virtual Reality Modeling
Language Ngôn ngữ mô hình thực tại ảo
YCbCr
Luminance, Blue chrominance, Red chrominance
Độ chói, màu lam, màu đỏ
Trang 11DANH SÁCH BẢNG
Bảng 1.2: Độ dư thừa của các pixel trong ảnh 11
Bảng 1.4: Chênh lệch mức xám của 2 pixel liên tiếp 12
Bảng 3.2: Các thông số cơ bản đặc trưng cho hệ thống truyền hình
Trang 12DANH SÁCH HÌNH VẼ
Hình 2.1: Quá trình phát triển các dòng video H.26x và MPEG 21 Hình 2.2: Một ảnh video được nén với cùng bitrate dùng MPEG-2 (trái),
Hình 2.3: Macroblock 16x16 được đại diện bởi các block thành phần
Y, Cr, Cb theo tỷ lệ lấy mẫu (4:2:0) trong H.264 25 Hình 2.4: Minh họa cách phân chia ảnh thành nhiều slice 25
Hình 2.6: Các profile của H.264/AVC và các công cụ
Hình 2.7: Tổng quan về qui trình nén và giải nén của H.264 28
Hình 2.9: Mô tả ước lượng chuyển động trong dự báo Inter 30 Hình 2.10: Sự phân chia marcoblock khi mã hóa 32 Hình 2.11: Các phần chia khác nhau trong một ảnh 32 Hình 2.12: Các điểm ảnh sub-sample trong ảnh tham chiếu 33
Trang 13Hình 2.13: Nội suy các điểm ảnh tại các vị trí half-pixel
Hình 2.14: Nội suy các điểm ảnh tại các vị trí quarter-pixel 35
Hình 2.16: Block 4x4 luma cần được dự đoán Intra 36
Hình 2.17: Các điểm ảnh đã được nén dùng để tham chiếu 36
Hình 2.18: Các mode dự đoán cho block 4x4 luma 36
Hình 2.19: Macroblock 16x16 (luma) cần dự đoán 37
Hình 2.20: Các block được dự đoán Intra 16x16 37
Hình 2.21: Thứ tự truyền dẫn của các block bên trong macroblock 39
Hình 2.22: Minh họa biến đổi DCT và lượng tử hóa 40
Hình 2.23: Quét Zig-Zag đối với block 4x4 luma 46
Hình 2.24: Mô hình biến đổi block 4x4 thành mảng sau khi tái sắp xếp 46
Hình 2.25: Thứ tự lọc các cạnh của thành phần luma và
Hình 2.26: Quy trình giải nén video của chuẩn H.264/AVC 51
Hình 2.27: MPEG-4 AVC có thể phân chia thành phần chói của từng Macroblock theo nhiều cách để tối ưu hóa việc bù chuyển động 53
Hình 3.1: Các tín hiệu vào và ra của phòng tổng khống 61
Hình 3.2: Sơ đồ khối đơn giản của hệ thống phát sóng 62
Hình 3.3: Phần mềm convert Adobe Premiere Pro CC 2017 62
Hình 3.4: Sơ đồ truyền dẫn phát sóng của kênh Truyền hình Quốc phòng 66
Hình 3.6: Phần mềm mã hóa và giải mã video định dạng H.264 68
Trang 14Với mong muốn đóng góp thêm nghiên cứu về tiêu chuẩn nén H.264 và ứng dụng của H.264, người viết đã lựa chọn đề tài “Nghiên cứu tiêu chuẩn nén H.264 và ứng dụng trong truyền hình có độ phân giải cao (HDTV)”
Luận văn của em gồm 3 chương:
Chương 1: Nghiên cứu về cơ sở lý thuyết của số hóa tín hiệu và nén video số Chương 2: Nghiên cứu tiêu chuẩn nén H.264/AVC
Chương 3: Ứng dụng tiêu chuẩn nén H.264/AVC trong truyền hình có độ phân giải cao HDTV
Em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Quý Sỹ đã tận tình hướng dẫn em thực hiện luận văn này Em cũng xin gửi lời cảm ơn tới gia đình, các thầy
cô, đồng nghiệp và các bạn đã giúp đỡ em trong suốt thời gian học tập
Trang 15CHƯƠNG 1: NGHIÊN CỨU VỀ CƠ SỞ LÝ THUYẾT CỦA
SỐ HÓA TÍN HIỆU VIDEO VÀ NÉN VIDEO SỐ 1.1 Mục đích của nén tín hiệu
1.1.1 Nhu cầu của công nghệ nén trong truyền hình
Tín hiệu video sau khi được số hóa 8 bit có tốc độ 216 Mbps, với tốc độ này vượt quá khả năng truyền của một kênh truyền hình, vì vậy trong lĩnh vực truyền hình việc sử dụng công nghệ nén gần như là tất yếu để giảm tốc độ bit mà vẫn đảm bảo chất lượng dữ liệu cần lưu trữ hoặc truyền tải
Trung tâm của mạng phát sóng video số bao gồm hệ thống nén, nó cung cấp chương trình video, audio chất lượng cao cho người xem bằng cách chỉ sử dụng một
phần nhỏ độ rộng băng tần mạng
1.1.2 Mục đích của nén tín hiệu
Với sự phát triển của khoa học kỹ thuật, ngày nay đã sản xuất được bộ cảm biến màu có độ phân giải lên đến 16 triệu pixel tương đương với một bức ảnh có độ phân giải 4096x4096 pixels, nhưng thực tế ứng dụng cần độ phân giải cao nhất hiện nay cũng chỉ dùng lại ở 1920x1080 pixel, do đó để có thể tiết kiệm không gian lưu trữ và băng thông kênh truyền thì cần nén tín hiệu[1]
Quá trình nén ảnh thực hiện được là do thông tin trong bức ảnh có tổ chức,
có trật tự, vì vậy nếu xem xét kỹ tính trật tự, cấu trúc ảnh sẽ phát hiện và loại bỏ được các lượng thông tin dư thừa, chỉ giữa lại các thông tin quan trọng nhằm giảm
số lượng bit khi lưu trữ cũng như khi truyền mà vẫn đảm bảo tính thẩm mỹ của bức ảnh Tại đầu thu, bộ giải mã sẽ tổ chức, sắp xếp lại được bức ảnh xấp xỉ gần chính xác so với ảnh gốc nhưng vẫn đảm bảo thông tin cần thiết[1]
Tín hiệu video thường chứa đựng một lượng lớn các thông tin dư thừa, chúng thường được chia thành 5 loại như sau:
+ Có sự dư thừa thông tin về không gian: giữa các điểm ảnh lân cận trong phạm vi một bức ảnh hay một khung video, còn gọi là thừa tĩnh bên trong từng frame
+ Có sự dư thừa thông tin về thời gian: giữa các điểm ảnh của các khung video
Trang 16trong chuỗi ảnh video, còn gọi là thừa động giữa các frame
+ Có sự dư thừa thông tin về phổ: giữa các mẫu của các dữ liệu thu được từ các bộ cảm biến trong camera, máy quay…
+ Có sự dư thừa do thống kê: do bản thân của các ký hiệu xuất hiện trong dòng bit với các xác suất xuất hiện không đồng đều
+ Có sự dư thừa thị giác: thông tin không phù hợp với hệ thống thị giác con người,
những tần số quá cao so với cảm nhận của mắt người
Ưu điểm của việc nén tín hiệu:
+ Tiết kiệm băng thông kênh truyền ( trong thời gian thực hoặc nhanh hơn)
+ Kéo dài thời giản sử dụng, giảm chi phí đầu tư cho thiết bị lưu trữ
+ Giảm dung lượng thông tin mà không làm mất tính trung thực của hình ảnh Có nhiều phương pháp nén tín hiệu, phương pháp nén bằng cách số hóa tín hiệu vẫn tỏ
ra hữu hiệu trong mọi thời đại; nó có thể làm giảm lượng thông tin không quan trọng một cách đáng kể, mặt khác nó còn giúp cho tín hiệu được bảo mật hơn[6]
1.2 Quá trính số hóa tín hiệu
Quá trình số hoá tín hiệu tương tự, bao gồm quá trình lọc trước (prefiltering), lấy mẫu, lượng tử và mã hoá minh họa như hình 1.1 Quá trình lọc trước nhằm loại
bỏ các tần số không cần thiết ở tín hiệu cũng như nhiễu, bộ lọc này còn gọi là bộ lọc chống nhiễu xuyên kênh Aliasing[1]
1.2.1 Lấy mẫu
Thực chất đây là một phép toán rời rạc hay là một phép điều biên xung PAM
và được thực hiện bằng các mạch Op-amp có cực khiển strobe Nó tạo ra giá trị tín hiệu tương tự tại một số hữu hạn các giá trị có biến rời rạc gọi là các mẫu Các mẫu được lấy cách đều nhau gọi là chu kỳ lấy mẫu Tần số lấy mẫu phải thoả mãn định
lý Nyquist-Shannon [4]:
fs 2 fmax (1.1) Trong đó: + fs là tần số lấy mẫu
+ fmax là tần số cực đại của phổ tín hiệu tương tự
Trang 171.2.2 Lượng tử hóa
Quá trình lượng tử là quá trình chuyển một xung lấy mẫu thành một xung có biên độ bằng mức lượng tử gần nhất hay nói cách khác là lượng tử chuyển đổi các mức biên độ của tín hiệu đã lấy mẫu sang một trong các giá trị hữu hạn các mức nhị phân Lượng tử hoá biến đổi tín hiệu liên tục theo thời gian thành tín hiệu có biên
độ rời rạc, nhằm làm giảm ảnh hưởng của tạp âm trong hệ thống, hạn chế các mức cho phép của tín hiệu lấy mẫu và chuẩn bị truyền tín hiệu gốc từ tương tự sang số
Giá trị thập phân của các mẫu sau khi lượng tử hoá sẽ được biểu diễn dưới dạng số nhị phân n bit (N= 2n), với n là độ phân giải lượng tử hoá, n càng lớn thì độ chia càng mịn, do đó độ chính xác càng cao[5] Do làm tròn các mức nên tín hiệu bị méo dạng do sai số lượng tử gọi là méo lượng tử, tỷ số tín hiệu trên méo lượng tử (S/N) được xác định bởi:
1
S
N n6,02n + 1,76(dB)
Hình 1.1: Sơ đồ quá trình tạo tín hiệu số[4]
Lượng tử hóa có hai loại:
+ Lượng tử tuyến tính: phép nén tín hiệu theo quy luật đường cong đồng đều, bước lượng tử bằng nhau
Trang 18+ Lượng tử phi tuyến: phép nén tín hiệu theo quy luật đường cong không đồng đều, tập trung nhiều mức lượng tử ở những vùng tín hiệu nhỏ Trong kỹ thuật nén ảnh, nén video thì loại lượng tử phi tuyến được dùng nhiều hơn vì nó giảm dung lượng đến mức tối đa với độ méo lượng tử có thể chấp nhận được[5]
1.2.3 Mã hóa
Là quá trình thay thế mỗi mức điện áp cố định sau khi lượng tử bằng một dãy nhị phân gọi là từ mã.Tất cả các từ mã đều chứa số xung nhị phân cố định và được truyền trong khoảng thời gian giữa 2 thời điểm lấy mẫu cạnh nhau.Bộ mã được sử dụng để tái tạo các xung nhị phân hoặc các từ mã từ các giá trị đã lượng tử xuất hiện
ở đầu ra của bộ lượng tử hoá[5]
1.3 Tốc độ bít và thông lƣợng kênh truyền tín hiệu số
1.3.1 Tốc độ bit
Tốc độ bit là số lượng bit được truyền đi hay lưu trữ trong một đơn vị thời gian[5]
C = f s * n (bit/s) (1.3) Trong đó :
+ f s là tần số lấy mẫu (Hz)
+ n là số bit nhị phân trong một ký hiệu
+ C là tốc độ bit (bps)
1.3.2 Thông lượng kênh truyền tín hiệu số
Là tốc độ số liệu cực đại có thể truyền được trên kênh truyền có độ rộng băng tần B
C = B.log2(1 + S
N ) (bps) (1.4) Trong đó:
+ C là tốc độ bit (bps)
+ S
N là tỷ số tín hiệu trên nhiễu trắng
+ B là băng thông kênh truyền (Hz)
Trang 19Tốc độ bit càng lớn thì tín hiệu tương tự khôi phục lại càng trung thực tuy nhiên nó sẽ là cho dung lượng lưu trữ và băng thông kênh truyền càng lớn[3]
Trong thực tế để truyền tín hiệu có tốc độ bit là C (bps) thì cần băng thông kênh truyền là:
3 4
Hình 1.2: Quá trình biến đổi tín hiệu màu[6]
Một bức ảnh được chuyển từ RGB sang YUV (Y là thành phần độ chói, UV
là 2 thành phần màu) nhằm giảm dung lượng lưu trữ cũng như truyền đi, trong quá trình giải mã, trước khi hiển thị ảnh thì nó được biến đổi ngược lại thành RGB[9] Công thức minh họa ( với k là hằng số, Cr, Cb là những thành phần màu sắc):
Trang 201.5 Các tiêu chuẩn lấy mẫu video tín hiệu số
Kiểu lấy mẫu cho ảnh video cũng là một vấn đề khá quan trọng của kỹ thuật
nén ảnh[6]
Một số kiểu lấy mẫu phổ biến:
+ Tiêu chuẩn 4:4:4
- Mẫu tín hiệu chỉ được lấy với các thành phần tích cực của tín hiệu video
- Các tín hiệu chói Y, tín hiệu màu Cr, Cb được lấy mẫu tại tất cả các điểm lấy mẫu
trên dòng tích cực của tín hiệu video
Hình 1.3: Tiêu chuẩn 4:4:4
Tần số lấy mẫu: Y: 13,5 MHz; Cr/Cb: 13,5 MHz
Ví dụ: tốc độ truyền ( hệ màu Pal):
+> Lấy mẫu 8 bít: (720 + 720 + 720) x 576 x 8 x 25 = 249 Mbit/s
Trang 21+ Tiêu chuẩn 4:2:2
- Điểm đầu lấy mẫu toàn bộ 3 tín hiệu Y, Cr, Cb, điểm kế tiếp chỉ lấy mẫu tín hiệu
chói, tín hiệu màu không lấy mẫu Khi giải mã sẽ suy ra từ màu của tín hiệu trước Điểm sau nữa lại lấy đủ 3 tín hiệu, tuần tự như thế, cứ 4 lần lấy Y thì có 2 lần lấy
mẫu Cr và 2 lần lấy Cb
Hình 1.4: Tiêu chuẩn 4:2:2
Tần số lấy mẫu: Y: 13,5 MHz; Cr/Cb: 6,75 MHz
+ Tiêu chuẩn 4:2:0
Lấy mẫu tín hiệu Y tại các điểm ảnh của dòng, còn tín hiệu màu cứ cách 1 điểm
sẽ lấy mẫu cho 1 tín hiệu màu Tín hiệu màu sẽ được lấy xen kẽ, nếu hàng chẵn lấy
mẫu cho tín hiệu màu Cr thì hàng lẻ lấy mẫu cho tín hiệu Cb
Hình 1.5: Tiêu chuẩn 4:2:0
Tần số lấy mẫu: Y: 13,5 MHz; Cr/Cb: 3,375 MHz
+ Tiêu chuẩn 4:1:1
Trước điểm ảnh đầu, lấy mẫu 3 tín hiệu, 3 điểm ảnh sau chỉ lấy tín hiệu chói, không
lấy 2 tín hiệu màu Khi giải mã, màu của 3 điểm ảnh sau sẽ suy từ 3 điểm ảnh ban
đầu Tuần tự như vậy, cứ 4 lần lấy mẫu chói, có 1 lần lấy mẫu Cr và 1 lần Cb
Trang 22Hình 1.6: Tiêu chuẩn 4:1:1
Tần số lấy mẫu: Y: 13,5 MHz; Cr/Cb: 3,375 MHz
Trong kiểu 4:4:4, tổng số mẫu cần thiết là 12 mẫu, do đó tổng số bit là 12 × 8
= 96 bits, và trung bình là 96/4 = 24 bits/pixel Trong kiểu 4:2:0, tín hiệu được quét xen kẽ, do đó chỉ cần thiết 6 mẫu, 4 mẫu cho thành phần Y, 1 mẫu cho thành phần
Cb, 1 mẫu cho thành phần Cr, do đó tổng số bits cần thiết là 6 × 8 = 48 bits, và trung bình là 48/4 =12 bits/pixel Ta thấy kiểu lấy mẫu 4:2:0 giảm một ½ số lượng bits so với 4:4:4, đó cũng là lý do mà kiểu lấy mẫu này được sử dụng phổ biến
1.6 Mô hình nén tín hiệu Video
Hình 1.7: Sơ đồ khối nén tín hiệu video[9]
Trang 23+ Xắp xếp lại trật tự và mã hóa Entropy
Tỷ số nén sẽ là Nb =
2 1
n n
Phần trăm nén hay còn gọi là độ dư thừa dữ liệu tương đối
R = (1 -
2 1
n
n )x100% = 1 2
1
n n n
Nếu n1= n2 thì ta có C =1, và R = 0 nghĩa là không có sự dư thừa dữ liệu
Nếu n2 ≤ n1 thì C → ∞, R→1, ta nói rằng có sự dư thừa dữ liệu lớn
Ví dụ : n1 = 100Mb/s, n2 = 20Mb/s thì C = 5:1, R = 80% Tức là ảnh có sự dư thừa lớn, hiệu quả nén đạt 80%
1.6.2 Lượng tin trung bình
Trước khi nghiên cứu các phương pháp nén, ta cần đánh giá lượng thông tin chủ yếu được chứa đựng trong hình ảnh, từ đó xác định dung lượng tối thiểu cần sử dụng để miêu tả, truyền tải thông tin về hình ảnh[1]
Thông tin được ký hiệu là ai và có xác suất p(ai) thì lượng tin được xác định theo công thức sau:
I(ai) = log2[ 1
( )i
p a ] = -log2 p(ai) (1.9) Theo công thức (1.9) ta thấy lượng tin chứa đựng trong một hình ảnh sẽ tỉ lệ nghịch với khả năng xuất hiện của ảnh đó, nghĩa là sự kiện ít xảy ra sẽ chứa đựng nhiều thông tin hơn và bằng tổng số lượng thông tin của từng phần tử ảnh Gọi
Trang 24lượng tin trung bình của hình ảnh là H(X) và được tính bằng công thức sau:
Ví dụ: Giả sử có một ảnh đen trắng với độ phân giải lượng tử 8 bit Ký hiệu i là mức xám của pixel và bộ ký hiệu A là tập hợp tất cả các mức xám từ 0 → 255, mức xám
0 tương ứng với màu đen, mức xám 255 tương ứng với màu trắng Do đó, Entropy
255
0
p(i)log2p(i) Giả sử ta có kích thước 4x8 pixels như sau:
Bảng 1.1: Kích thước 4x8 pixels
Ta xét các độ dư thừa của các pixel trong ảnh, hoặc giữa các ảnh liên tiếp như sau + Giả sử các mức xám của tín hiệu hình đen trắng độc lập thống kê với nhau, dựa vào số liệu thống kê cụ thể là
Bảng 1.2: Độ dư thừa của các pixel trong ảnh
Entropy của phần ảnh tĩnh này là: H(x) = -3
Trang 25Ta có thể biểu diễn theo phần chênh lệch mức xám của 2 pixel liên tiếp như sau:
Bảng 1.4: Chênh lệch mức xám của 2 pixel liên tiếp[3]
Giá trị mức xám Số lượng Xác suất
Trang 261.7 Phân loại kĩ thuật nén
Nén video được chia thành hai họ lớn: Nén không tổn hao và nén tổn hao + Nén không tổn hao là quy trình biểu diễn các ký hiệu trong dòng bit nguồn thành dòng các từ mã sao cho ảnh được khôi phục hoàn toàn giống ảnh gốc, các thuật toán chỉ phụ thuộc vào cách thống kê nội dung dữ liệu và thường dựa trên việc thay thế một nhóm các ký tự trùng lặp bởi một nhóm các ký tự đặc biệt khác ngắn hơn mà không quan tâm đến ý nghĩa của dòng bit dữ liệu, nên đòi hỏi phải có thiết bị lưu trữ
và đường truyền lớn hơn
+ Nén có tổn hao: là ảnh được khôi phục không hoàn toàn giống ảnh gốc, dạng nén này thích hợp cho việc lưu trữ và truyền ảnh tĩnh, ảnh video qua một mạng có băng thông hạn chế Các dạng nén này thường có hệ số nén cao hơn từ 2:1 đến 100:1
Trong thực tế phương pháp nén tổn hao thường được sử dụng nhiều hơn và các kỹ thuật nén tổn hao thường sử dụng như: mã hóa vi sai, biến đổi cosin rời rạc DCT, lượng tử vô hướng, quét zig-zag, mã hóa Entropy…
1.8 Quá trình biến đổi
Hình 1.8: Mô hình hệ thống nén tổn hao[6]
Tín hiệu ngõ vào được biến đổi nhằm mục đích biểu diễn một số liệu khác thích hợp để nén hơn so với tín hiệu nguồn Ở phía giải mã tín hiệu nén sẽ được
Trang 27biến đổi ngược lại để thu tín hiệu gốc Một số phép biến đổi phổ biến hiện nay như:
1.8.1 Điều xung mã vi sai DPCM
Các phương pháp nén dùng DPCM dựa trên nguyên tắc phát hiện sự giống nhau và khác nhau giữa các điểm ảnh gần nhau để loại bỏ các thông tin dư thừa Trong DPCM chỉ có phần khác nhau giữa mẫu-mẫu được truyền đi, sự khác nhau này được cộng vào giá trị mẫu đã giải mã hiện hành ở phía giải mã để tạo ra giá trị mẫu phục hồi Hình 1.9 mô tả sơ đồ khối của bộ mã hóa và giải mã DPCM
Hình 1.9: Bộ mã hóa và giải mã DPCM[6]
Ví dụ:
Mẫu tín hiệu vào 115 117 116 117 118 117 115 116
Sự khác nhau 2 -1 1 1 -1 -2 1
Dòng bit được nén như sau: 115 2 -1 1 1 -1 -2 1
1.8.2 Mã hóa biến đổi
Nhằm biến đổi các hệ số trong miền thời gian (video số), không gian 2D (bức ảnh tĩnh) thành các hệ số trong miền tần số Các hệ số này ít tương quan hơn
có phổ năng lượng tập trung hơn, thuận tiện cho việc loại bỏ thông tin dư thừa
1.8.2.1 Biến đổi cosin rời rạc DCT
Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi DCT, ảnh được phân chia thành các MB biểu diễn các mức xám của điểm ảnh Việc phân khối này sẽ làm giảm được một phần thời gian tính toán các hệ số chung, mặt khác biến đổi cosin đối với các khối nhỏ sẽ làm tăng độ chính xác khi tính toán với dấu phẩy tĩnh, giảm thiểu sai số do làm tròn sinh ra Phép biến đổi DCT cơ bản hoạt động dựa trên cơ sở ma trận vuông của mẫu sai số dự đoán, kết quả cho ta một ma
Trang 28trận Y là những hệ số DCT được minh họa như sau:
Y = AXAT Trong đó A là ma trận hệ số biến đổi, các thành phần của A như sau:
1.8.2.2 Biến đổi Hadamard
Là một ví dụ tổng quát hóa của biến đổi Fourier rời rạc, nó thực hiện các phép toán cộng và trừ trên các ma trận 2m x 2m trực giao, đối xứng, tuyến tính… được định nghĩa theo công thức sau:
Trang 29255 được gọi là các bước nhảy cho các hệ số DCT Quá trình lượng tử được coi như
là việc chia các hệ số DCT cho bước nhảy lượng tử tương ứng, kết quả này sau đó
sẽ được làm tròn xuống số nguyên gần nhất Các hệ số năng lượng thấp này, tượng trưng cho các sự thay đổi pixel - pixel cỡ nhỏ, có thể bị xóa mà không ảnh hưởng đến độ phân giải của ảnh phục hồi Tại bộ mã hoá sẽ có một bảng mã và bảng các chỉ số nội bộ, từ đó có thể ánh xạ các tín hiệu ngõ vào để chọn được các từ mã tương ứng một cách tốt nhất cho tập hợp các hệ số được tạo ra[3] Có 2 loại lượng
tử hóa chủ yếu:
1.9.1 Lượng tử vô hướng
Lượng tử từng giá trị một cách độc lập hay nói cách khác là ánh xạ một mẫu của tín hiệu ngõ vào tạo thành một hệ số lượng tử ở ngõ ra Đây là một quá trình tổn hao vì khi giải lượng tử, không thể xác định chính xác giá trị gốc từ số nguyên đã được làm tròn Lượng tử hóa thuận theo công thức FQ = round(X/QP)[3]
Lượng tử hóa ngược theo công thức Y = FQ*QP Với QP là bước nhảy lượng tử
1.9.2 Lượng tử vector
Là một quá trình biểu diễn một tập vector (mỗi vector gồm nhiều giá trị) bằng một tập các số hữu hạn các ký hiệu ở ngõ ra, bảng mã ánh xạ sẽ có các giá trị xấp xỉ với giá trị gốc[5].Vector lượng tử sẽ được lưu ở cả bộ mã hóa và bộ giải mã, quá trình nén một bức ảnh sử dụng lượng tử vector bao gồm các bước sau:
+ Phân chia bức ảnh gốc thành các phân vùng MxN pixel
+ Chọn vector thích ứng nhất từ bảng mã
+ Truyền chỉ số của vector thích ứng đến bộ giải mã
Trang 30+ Tại bộ giải mã, ảnh cấu trúc lại sẽ xấp xỉ với phân vùng đã lựa chọn vector lượng
tử Và sơ đồ khối của lượng tử vector như sau:
Transmit code index
theo hình dạng[3]…
1.10.1 Mã hóa độ dài thay đổi
Kỹ thuật mã hóa độ dài thay đổi VLC dựa trên xác suất các giá trị biên độ giống nhau trong một ảnh để lựa chọn các từ mã để mã hoá Bộ mã hóa có độ dài thay đổi ánh xạ các ký hiệu ngõ vào thành một chuỗi từ mã có độ dài thay đổi ở ngõ
ra nhưng chứa số lượng bít nguyên Các ký hiệu có xác suất cao sẽ được gán từ mã
có độ dài ngắn, còn các ký hiệu có xác suất thấp sẽ được gán từ mã có độ dài lớn hơn, do đó nó sẽ làm tối thiểu chiều dài trung bình của từ mã Tại phía giải nén có các chỉ định mã giống nhau được dùng để khôi phục lại các giá trị dữ liệu gốc
Các loại mã hóa VLC cơ bản như: mã hóa Huffman, mã hoá RLC, mã hóa
Loop up
Codebook Vector 1 Vector 2
… Vector N
Find best Match
Codebook Vector 1 Vector 2
… Vector N
Trang 31ExpGolomb[3]…
1.10.1.1 Mã hóa Huffman
Mã hóa Huffman là mã hóa thõa mãn tối ưu tính prefix và phương pháp mã hóa thường dựa vào mô hình thống kê Dựa vào dữ liệu gốc, người ta tính xác suất xuất hiện của các ký tự[3] Việc tính toán xác suất được thực hiện bằng cách duyệt tuần tự tệp gốc từ đầu đến cuối và các ký tự nào có xác suất càng cao thì từ mã càng ngắn nên giảm chiều dài trung bình của từ mã một cách rõ rệt, mã hóa Huffman thường được biểu diễn dưới dạng cây mã như sau:
Hình 1.11: Cây mã Huffman[10]
Các bước thực hiện mã hóa Huffman
Bước 1: Các nguồn tin được liệt kê trong cột theo thứ tự xác suất xuất hiện
giảm dần
Bước 2: Hai tin cuối có xác suất nhỏ nhất được hợp thành tin phụ mới có xác
suất bằng tổng xác suất các tin hợp thành
Bước 3: Các tin còn lại (N-2) với tin phụ mới được liệt kê trong cột phụ thứ
nhất theo thứ tự xác suất giảm dần
Bước 4: Quá trình cứ thế tiếp tục cho đến khi hợp thành một tin phụ có xác
suất xuất hiện bằng 1
1.10.1.2 Mã hóa mức dọc chiều dài RLC
Trang 32Thông thường dữ liệu hay có sự trùng lặp, chẳng hạn nếu một bức ảnh có cùng một màu, độ chói thì những vùng bên cạnh ảnh đó cũng giống như vậy Do đó
có thể mã hóa bằng một từ mã đặc biệt nhằm chỉ báo sự bắt đầu và kết thúc của giá trị lặp lại, mỗi hệ số khác 0 sau giá trị DC được phát hiện sẽ được gán một từ mã gồm 2 thông số: số lượng bit 0 đứng trước đó và mức của nó sau khi lượng tử, để tạo ra từ mã là một đôi (level và run), trong đó Level biểu thị giá trị của bit và Run biểu thị số lần lặp lại của bit[12].Khi dữ liệu truyền có sự trùng lặp thì truyền từ mã này thay cho nó Hình 1.12 minh họa mã hóa RLC như sau :
Lặp 5 lần
Dữ liệu đầu vào 128 007 035 012 028 028 028 028 028 125 009
Dữ liệu đầu ra 128 007 035 012 255 028 005 125 009
Đếm nhắc lại Giá trị
Mã đầu ra
Hình 1.12: Minh họa mã hóa RLC [9]
Từ dữ liệu đầu vào, giá trị 028 lặp lại 5 lần được mã hóa bằng 3 từ mã ở dữ liệu đầu ra Giá trị đầu tiên 255 đại diện cho cách mã hóa RLC, giá trị thứ 2 là giá trị được lặp lại, giá trị thứ 3 là số lần lặp lại, nên thay vì truyền từ mã dài, ta chỉ cần truyền 255 028 005
1.11 Tiêu chuẩn đánh giá chất lƣợng ảnh nén
Đánh giá chất lượng video thông qua các giá trị cung cấp bởi hệ thống xử lý,
và việc suy giảm chất lượng tín hiệu có thể nhìn thấy được ( thông thường chúng được so sánh với tín hiệu gốc Qua hệ thống, chúng ta có thể thấy được rằng những thay đổi về hình dạng và việc định chuẩn chất lượng video là rất quan trọng[3].Để đánh giá chất lượng của bức ảnh (hay khung ảnh video) ở đầu ra của bộ mã hoá, người ta thường sử dụng các tham số truyền thống sau để đánh giá:
+ Sai số bình phương trung bình – MSE (mean squared error) định nghĩa cho cường độ sai khác giữa ảnh gốc và ảnh dự đoán
Trang 33Mean squared Error: MSE = 12
Trong đó NxN kích thước bù chuyển động
hệ số Ci, j và Ri, j tương ứng với mẫu hiện tại và vùng mẫu tham khảo
b số lượng bit/ mẫu
Thông thường, nếu PSNR ≥ 40dB thì hệ thống mắt người gần như không phân biệt được giữa ảnh gốc và ảnh khôi phục, tức là ảnh nén có chất lượng xuất sắc
+ 30 dB PSNR < 33 dB thì chất lượng ảnh nén bình thường, mắt người có sự phân biệt được
- PSNR < 30 dB thì chất lượng ảnh nén kém
- Sai số tuyệt đối trung bình - MAE (Mean Absolute Error)
Mean Absolute Error: MAE = 12
Trang 34CHƯƠNG 2: NGHIÊN CỨU TIÊU CHUẨN NÉN H.264/AVC 2.1 Tổng quan về các chuẩn video
Hiện nay trên thế giới có hai tổ chức chịu trách nhiệm chính trong việc đưa
ra các chuẩn về nén và giải nén video đó là ITU và ISO
- Tổ chức ITU – International Telecommunications Union chuyên tập trung vào các ứng dụng truyền thông với dòng video chuẩn H.26x, với dung lượng lưu trữ nhỏ và hiệu quả cao trong việc truyền tải trên mạng Dòng H.26x bao gồm các chuẩn H.261, H.262, H.263, H.264[15]
- Tổ chức ISO – International Standards Organization đưa ra dòng MPEG chủ yếu tập trung phát triển các ứng dụng đa người dùng (phim, video, ) Dòng MPEG bao gồm các chuẩn MPEG-1, MPEG-2, MPEG4
Hai tổ chức này cùng nhau lập nên nhóm JVT – Joint Video Team để đưa ra chuẩn H.264 (tổ chức ISO gọi chuẩn này là MPEG-4 Part 10) H.264 được xem là dòng nén video thế hệ thứ 3[15]
Hình 2.1: Quá trình phát triển các dòng video H.26x và MPEG[5]
2.1.1 Dòng H.26x
2.1.1.1 Chuẩn H.261
Chuẩn H.261 là chuẩn nén video hoàn chỉnh đầu tiên trên thế giới, được giới thiệu vào năm 1993 bởi tổ chức ITU H.261 được thiết kế cho những ứng dụng hội nghị trực tuyến video hai chiều với dữ liệu video sau khi nén có tốc độ trong khoảng 40Kbps – 2Mbps H.261 có hai độ phân giải là CIF (352x288) và QCIF (176x144),
Trang 35sử dụng kĩ thuật lấy mẫu 4:2:0 Thuật toán nén của chuẩn này không phức tạp do yêu cầu việc nén và giải nén phải được thực hiện theo thời gian thực
2.1.1.2 Chuẩn H.263
H.263 là chuẩn mã hóa video/audio do nhóm VCEG (Video Coding Experts Group) thuộc tổ chức ITU đưa ra năm 1998 và là một chuẩn với tốc độ bit thấp, được dùng cho các hội nghị video trực tuyến Năm 1998, ITU cải tiến chuẩn này và cho ra chuẩn H.263v2 (còn gọi là H.263+ hay H.263 1998) Năm 2000, chuẩn H.263v3 ra đời (còn gọi là H.263++ hay H.263 2000) H.263 được phát triển dựa trên những kinh nghiệm được rút ra từ các chuẩn H.261, MPEG-1 và MPEG-2 So với các chuẩn trước, H.263 có chất lượng video tốt hơn và tốc độ bit (lượng bit lưu trữ cho một đơn vị thời gian) nhỏ hơn H.263 có những cải tiến trong việc dự đoán các chuyển động và thuật toán giảm dữ liệu dư thừa, phân lớp được tối ưu hơn nhiều so với các chuẩn trước đó.[16]
2.1.1.3 Chuẩn H.264/AVC
H.264/AVC được đưa ra bởi nhóm JVT Nhóm JVT được thành lập từ việc sát nhập hai nhóm MPEG và VCEG Với MPEG, chuẩn này được gọi là MPEG-4 Part 10 (ISO 14496-10) Với ITU, nó được gọi là H.264 Hiện nay, chuẩn này được biết đến dưới tên gọi thống nhất là Advanced Video Coding (AVC).[14]
H.264 được kế thừa từ các chuẩn nén video trước đó như MPEG-2 và MPEG-4 Visual Do đó H.264 cho ra hiệu suất nén tốt hơn và linh hoạt hơn trong việc lưu trữ, truyền dẫn video
Ưu điểm lớn nhất của chuẩn H.264 so với các chuẩn trước đây đó là tỷ lệ nén
So với các chuẩn nén video trước đây như MPEG-2 hoặc MPEG-4 Visual, H.264 có thể cung cấp:
• Chất lượng ảnh tốt hơn với cùng một bitrate
• Hệ số bitrate thấp hơn với cùng chất lượng nén ảnh
Tỷ lệ nén nâng cao của H.264 đồng nghĩa với chi phí tính toán sẽ lớn hơn, phức tạp hơn so với các chuẩn nén video trước Điều này có nghĩa là H.264 sử dụng nhiều tài nguyên để xử lý hơn trong khi thực hiện quá trình nén và giải nén video
Trang 36Hiện nay, H.264 được ứng dụng trong một số lĩnh vực sau:
Hình 2.2: Một ảnh video đƣợc nén với cùng bitrate dùng MPEG-2 (trái), MPEG-4
(giữa) và h.264 (phải)
• Truyền hình kỹ thuật số
• Lưu trữ video trên đĩa DVD với các định dạng HD-DVD và Blu-Ray
• Truyền hình di động, hội nghị trực tuyến
• Truyền dữ liệu trong mạng RTP/IP
• Hệ thống điện thoại đa phương tiện của ITU-T
• HD – video phone
2.1.2 Dòng MPEG
2.1.2.1 Chuẩn MPEG-1
MPEG-1 là chuẩn nén video đầu tiên của ISO, còn được gọi là ISO/IEC–
11172 Dữ liệu được lưu trữ trên các phương tiện số như đĩa video-CD với độ phân giải SIF (352x240 – 29.97fps hay 352x288 – 25fps), có tốc độ bit xấp xỉ 1.15Mbps MPEG-1 gần như tương tự với chuẩn H.261, ngoại trừ việc mã hóa có đôi chút khác biệt và hỗ trợ B-frames[5]
2.1.2.2 Chuẩn MPEG – 2
MPEG-2 còn được gọi là ISO/IEC–13818, được mở rộng dựa trên chuẩn MPEG-1 để phục vụ việc nén dữ liệu video Các ứng dụng sử dụng MPEG–2 bao gồm truyền hình kỹ thuật số (SDTV), truyền hình theo yêu cầu (VOD) và đĩa DVD
2.1.2.3 Chuẩn MPEG – 4
Trang 37MPEG-4 là một tập hợp các phương pháp nén audio, video (AV) và dữ liệu
kỹ thuật số Nó đã được giới thiệu vào cuối 1998 và còn có tên gọi khác là tiêu chuẩn ISO/IEC 14496, hay H.264 Sử dụng nén AV, dữ liệu cho trang web và lưu trữ đĩa CD, voice và phát sóng truyền hình MPEG-4 hấp thụ rất nhiều các tính năng của MPEG-1 và MPEG-2 và các tiêu chuẩn khác có liên quan, bổ sung các tính năng mới (mở rộng) như VRML hỗ trợ cho biểu diễn 3D, đa hợp hướng đối tượng
MPEG-4 cung cấp những chức năng như: cải thiện hiệu quả mã hóa, khả năng mã hóa nhiều loại dữ liệu (video, âm thanh, lời nói), khả năng sữa lỗi cho phép
truyền tốt hơn, khả năng tương tác với các thiết bị nghe nhìn ở phía thu
MPEG-4 bao gồm nhiều phần, mỗi phần có nhiều “Profiles” và “levels” Trong các phần của MPEG-4 có phần 10 là tương đối quan trọng vì nó quy định các cách thức nén video, sau đây sẽ trình bày về phần này
2.2 Cấu trúc H.264
2.2.1 Không gian màu YCrCb và kiểu lấy mẫu 4:2:0
Hệ thống thị giác của con người nhận các thông tin hình ảnh bao gồm độ sáng và màu một cách rời rạc, với độ nhạy cảm của độ sáng lớn hơn so với màu sắc
Hệ thống truyền dẫn video được thiết kế dựa trên đặc điểm này của mắt người Trong H.264/AVC cũng như trong các chuẩn video trước, không gian màu YCrCb chia một màu hiển thị thành 3 thành phần Y, Cr, và Cb Trong đó, Y được gọi là thành phần luma – đại diện cho độ sáng của hình ảnh Cb và Cr là các thành phần chroma - đại diện cho thông tin màu xanh và màu đỏ của hình ảnh
Bởi vì mắt người ít nhạy cảm đối với chroma hơn luma, H.264 sử dụng cấu trúc lấy mẫu: thành phần chroma có số điểm ảnh chỉ bằng ¼ so với số điểm ảnh của thành phần luma Đây là kiểu lấy mẫu 4:2:0 Kiểu lấy mẫu này được sử dụng phổ biến trong các ứng dụng như là hội nghị trực tuyến, truyền hình số và đĩa DVD
2.2.2 Macroblock
Một ảnh khi xử lý được chia thành nhiều macroblock Mỗi macroblock ứng với vùng ảnh gồm 16x16 điểm ảnh trong một ảnh Macroblock là đơn vị xử lý cơ bản cho dự đoán bù chuyển động trong một số chuẩn nén video thông dụng như
Trang 38MPEG-1, MPEG-2, MPEG-4, H.261, H.263 và H.264 Chuẩn H.264 thực hiện lấy mẫu theo định dạng 4:2:0 Vì thế, một macroblock 16x16 điểm ảnh sẽ bao gồm bởi
256 thành phần luma Y, 64 thành phần chroma màu xanh và 64 thành phần chroma màu đỏ Cr như hình 2.3
Hình 2.3: Macroblock 16x16 đƣợc đại diện bởi các block thành phần Y, C r , C b theo tỷ
lệ lấy mẫu (4:2:0) trong H.264
Mỗi macroblock trong H.264 chứa các thành phần dữ liệu sau [13]:
• mb_type: xác định macroblock được mã hóa theo kiểu Inter hay Intra
• mb_pred: xác định các mode được lựa chọn trong dự báo Intra
• sub_mb_pred: chỉ dùng cho các phần chia macroblock được mã hóa Inter có kích thước 8x8
• code_block_pattern: xác định block 8x8 nào chứa các hệ số biến đổi được mã hóa
• mb_qb_delta: thông tin thay đổi biến lượng tử
• residual: các hệ số biến đổi được mã hóa ứng với các vùng ảnh khác biệt sau quá trình dự đoán
2.2.3 Slice
Hình 2.4: Minh họa cách phân chia ảnh thành nhiều slice[17]
Trang 39Ảnh khi mã hóa được chia thành một hoặc nhiều slice Một slice có thể chứa một hoặc nhiều macroblock
Có 5 loại slice và một ảnh có thể chứa nhiều loại slice khác nhau Các ảnh được mã hóa của profile cơ bản chứa các slice loại P và I, các ảnh được mã hóa của profile chính và profile mở rộng có thể chứa tập các slice kiểu I, P, B, SI và SP
Bảng 2.1: Các loại slice mã hóa trong H.264
Hình 2.5 mô tả cấu trúc đơn giản của một slice được mã hóa Phần thông tin
mở đầu cho biết loại slice, ảnh được mã hóa chứa slice đó và có thể chứa các chỉ dẫn liên quan đến việc quản lý ảnh tham chiếu Phần dữ liệu của slice bao gồm tập các macroblock được mã hóa hoặc chỉ số của một macroblock không được mã hóa Mỗi MB chứa một tập các thông tin mở đầu và dữ liệu khác biệt được mã hóa
I (Intra) Chứa các macroblock I (mỗi macroblock
được dự đoán từ các dữ liệu đã được mã hóa trong cùng slice)
Tất cả
P (Predicted) Chứa các macroblock P (mỗi macroblock
hoặc phần chia macroblock được dự đoán từ danh sách ảnh tham chiếu list 0 và /hoặc từ các macroblock I)
Tất cả
B (Bi-predictive ) Chứa các macroblock B (mỗi macroblock
hoặc phần chia macroblock được dự đoán từ danh sách ảnh tham chiếu list 0 và/hoặc list 1 và/hoặc các maroblock I)
Profile chính
và mở rộng
SP (Switching P) Chứa các macroblock kiểu I và/hoặc P, cung
cấp khả năng chuyển đổi dễ dàng giữa những luồng bit được mã hóa
Profile mở rộng
SI (Switching I) Chứa các macroblock SI (loại maroblock đặc
biệt trong mã hóa Intra), cung cấp khả năng chuyển đổi dễ dàng giữa những luồng bit được mã hóa
Profile mở rộng
Trang 40Hình 2.5: Cấu trúc slice 2.2.4 Profile
Chuẩn H.264 bao gồm 3 profile Mỗi profile hỗ trợ một tập các chức năng và công cụ mã hóa xác định cho bộ nén và bộ giải nén nhằm để tạo ra luồng bit nén ứng với profile đó
Hình 2.6: Các profile của H.264/AVC và các công cụ với ứng dụng mỗi profile [15]
• Profile cơ bản (Baseline Profile): Hỗ trợ mã hóa Inter và mã hóa Intra (dùng các slice I và slice P), nén entropy sử dụng thuật toán mã hóa chiều dài thay đổi ứng ngữ cảnh CAVLC Các ứng dụng của profile này là trong điện thoại video, hội nghị trực tuyến và các hệ thống truyền thông không dây
• Profile chính (Main Profile): Ngoài các slice I, P được mã hóa, profile này