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ữ 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. Tín hiệu video thường chứa đựng một lượng lớn các thông tin dư thừa,
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
-o0o -BÀI TẬP LỚN
XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN
Đề tài 14: Kỹ thuật “Scalable Video Coding” trong nén video
và ứng dụng
Giáo viên hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan
Đỗ Tuấn Anh 20104836 Hoàng Long An 20102595 Lớp: KTMT & TT 1 - K55
Hà Nội – 05/2015
Trang 2Mục lục
Trang 3I Phân công công việc
Đỗ Tuấn Anh:
• Nêu lên nhu cầu cần thiết sử dụng kỹ thuật Scalable Video Coding.
• Tìm hiểu chung về kỹ thuật Scalable Video Coding.
Hoàng Long An:
• Tìm hiểu sơ đồ nén áp dụng kỹ thuật Scalable Video Coding trong chuẩn MPEG-2 và MPEG-4.
Nguyễn Văn Đông:
• Giải thích tác dụng “Scalable Video Coding” trong nén video tiên tiến.
• Thử nghiệm ứng dụng “Scalable Video Coding”.
Trang 4II CƠ SỞ VỀ NÉN DỮ LIỆU VIDEO
1 SỰ CẦN THIẾT CỦA NÉN DỮ LIỆU
Một chuỗi video số thường chứa một lượng lớn dữ liệu, do đó sẽ gặp rất nhiều khó khăn trong việc lưu trữ và truyền đi trong một băng thông kênh truyền hạn chế 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ế các chuẩn video hiện tại chỉ dừng lại ở 1920x1080 pixel, do đó cần phải nén tín hiệu
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 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: sự tương tự giữa các điểm ảnh lân cậntrong 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: sự tương tự giữa các điểm ảnh của các khung video trong 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ổ: sự tương tự 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 tâm thị giác: do các hạn chế của hệ thần kinh thị giác mắt người không thể cảm nhận được những tần số quá cao
Ư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 của thiết bị lưu trữ, giảm chi phí đầu tư cho thiết bị lưu trữ
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, một mặt 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
Trang 52 QUÁ TRÌNH BIẾN ĐỔI DỮ LIỆU MÀU
Hiện nay các cảm biến hỉnh ảnh màu gốc thường được lưu giữ với không gian màuRGB, tuy nhiên các tiêu chuẩn truyền hình màu lại sử dụng YUV mà không sử dụng RGB
vì vậy cần một công thức biến đổi từ không gian màu RGB sang YUV
R, G, B
Hình 1.1 Quá trình biến đổi màu
Một bức ảnh được chuyển từ RGB sang YUV 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 Quá trình biến đổi giữa hai hệ màu được tổ chức quốc tế ITU_T quy chuẩn theo công thức sau:
r
Trang 6Nên ta có ma trận biến đổi từ RGB sang YUV như sau:
0.081
Trang 7 Tốc độ lấy mẫu 4:1:1 - tức là tương ứng với sáu thành phần chói Y có hai thành phần màu Cb và hai thành phần màu Cr
Tốc độ lấy mẫu 4:2:2 - tức là tương ứng với bốn thành phần chói Y có hai thành phần màu Cb và hai thành phần màu Cr
Tốc độ lấy mẫu 4:4:4 - cả 3 thành phần có cùng độ phân giải, với mỗi bốn thành phần chói Y có tương ứng bốn thành phần màu Cb và bốn thành phần màu
Cr
Tốc độ lấy mẫu 4:2:0 - là kiểu phổ biến, tương ứng với mỗi bốn thành phần chói Y thì có một thành phần màu Cb và một thành phần màu Cr
Ví dụ : Một bức ảnh có độ phân giải 720 × 576 pixels
Độ phân giải của thành phần Y là 720 × 576 pixels được mã hóa bằng từ mã 8 bits
Nếu sử dụng kiểu lấy mẫu 4:4:4 thì độ phân giải của thành phần Cb, Cr là 720 × 576 mẫu cũng được mã hóa bằng từ mã 8 bits
=> Vậy tổng số bits sử dụng để mã hóa bức ảnh là 720 × 576 × 8 ×
3 = 9 953 280 bits
Nếu sử dụng kiểu lấy mẫu 4:2:0 thì độ phân giải của thành phần Cb, Cr là 360 × 288 mẫu, cũng được mã hóa bằng từ mã
0.344
Trang 88 bits.
=> Vậy tổng
số bits sử dụng là (720
× 576 × 8) + (360 × 288 × 8) × 2 = 4
976 640 bits
Trang 9Hình 1.2 Các tiêu chuẩn lấy mẫu phổ biến [1]
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 chính là lý do
mà kiểu lấy mẫu này được sử dụng phổ biến
Trang 104 CÁC KHÁI NIỆM CƠ BẢN TRONG CÁC CHUẨN NÉN VIDEO
Các tiêu chuẩn nén dữ liệu Video định nghĩa kiểu phân cấp cấu trúc trong dữ liệu như sau:
Video Sequence (Chuỗi ảnh): bắt đầu với một Sequence Header, bao gồm một hoặc một
nhóm khung hình và kết thúc với mã End-of-sequence Một chuỗi các khung hình liên tục
về mặt thời gian được gọi là cảnh (Scene)
Trang 11Hình 1.3 Chuỗi Video
GOP (Group of picture): một dãy liên tiếp các ảnh (picture) trong cảnh.
Frame/ Picture (khung hình): Dãy video được chia thành các ảnh là các frame để lấy
mẫu
Macroblock và phân vùng Macroblock:
Ảnh được chia thành số nguyên các Macroblock (MB), tương ứng với mỗi MB là các ma trận 16x16 mẫu thành phần sáng và 8x8 mẫu các thành phần mầu Các MB được đánh số và quét theo thứ tự nhất định trong khung Ngoài ra, mỗi một MB sẽ được chia thành nhiều phân vùng nhỏ hơn được gọi là subblock và block Hình 1.4 cho thấy các kích cỡ phần vùng của Macroblock
Hình 1.4 Macroblock và phân vùng Macroblock [5]
Trong quá trình mã hóa, các MB được đính kèm thêm các thành phần thông tin như mb_type, mb_pred, để mô tả cách thức mã hóa dữ liệu bên trong MB Dựa trên những thông tin này bộ giải mã có thể tổng hợp lại được MB ban đầu
Slice: Slice là một dãy các MB được quét theo một thứ tự nhất định Mỗi slice chứa một
số nguyên các MB Trong một ảnh có thể được chia thành một hoặc nhiều slice: I, P, B,
SP và SI Ý nghĩa của các slice sẽ được đề cập tới trong phần sau
Trang 13MÃ HÓA VIDEO MỞ RỘNG ĐƯỢC
Hình 3.1 Mã hóa Video mở rộng [1]
Mã hóa video mở rộng cho phép bộ giải mã có thể lựa chọn một phần luồng bit
mã hóa Luồng bit mã hóa được sắp xếp trong một số lớp, bao gồm lớp cơ sở (base layer)
và một hoặc nhiều lớp nâng cao (enhancement layer) như trong hình 3.1 Trong hình 3.1
bộ giải mã A chỉ nhận từ lớp cơ sở và có thể giải mã một phiên bản chất lượng cơ sở của
chuỗi video, trong khi bộ giải mã B nhận thông tin tất cả các lớp và tạo ra chuỗi video với
phiên bản chất lượng cao Bộ giải mã A là ví dụ cho các ứng dụng có bộ giải mã đơn giản
chỉ có khả năng giải mã lớp cơ sở, tốc độ bit thấp có thể được tách ra và truyền qua phân
vùng mạng có dung lượng thấp
1 MÃ HÓA VIDEO MỞ RỘNG ĐƯỢC TRONG CÁC CHUẨN NÉN TRƯỚC
ĐÂY
SVC đã được một nghiên cứu hoạt động trong vòng ít nhất 20 năm trở lại đây
Trong các tiêu chuẩn nén quốc tế H.262 MPEG-2, H.263 và MPEG-4 đã bao gồm một số
công cụ mà có thể hỗ trợ tính mở rộng được
H262 hỗ trợ nhiều profile khác nhau như trong hình 3.1
Bảng 3.1 Các profile trong Mpeg2 [6]
Trên hình 3.1 ta thấy các profile có khả năng về chất lượng và không gian trong
Trang 14Mpeg2 như SNR scalable profile, Spatial Scalable profile, High profile, 4:2:2 profile, Multi-view profile
Trang 15a) Profile mở rộng chất lượng SNR
Hình 3.2 Bộ mã hóa và giải mã video H262 mở rộng chất lượng
Trong bộ mã hóa này, các lớp mở rộng được tạo ra từ việc thêm 1 bước lượng tử hóa nữa Bộ mã hóa lượng tử hóa hệ số DCT với độ chính xác nào đó sau đó được mã hóa
và truyền đi với dòng bit lớp dưới Tại lớp nâng cao lỗi lượng tử hóa gặp phải ở lần lượng
tử hóa đầu tiên tự nó sẽ lại lượng tử hóa, được mã hóa và được truyền đi ở lớp nâng cao
Trang 16Tại bộ giải mã các hệ số tại lớp cơ sở được đưa vào lớp nâng cao theo hệ số lượng tử hóa nghịch đảo Sau đó được giải mã giống như trường hợp hợp non-scalable Các profile SNR được khuyến cáo dùng cho vô tuyến mặt đất.
b) Mở rộng về không gian: H262, MPEG-2 Video and MPEG-4 Visual cũng hỗ trợ
mã hóa mở rộng không gian với độ phân giải tùy ý, tuy nhiên có hạn chế là độ phân giải
về chiều dọc hoặc chiều ngang bị giảm xuống từ lớp này sang lớp tiếp theo
Mở rộng không gian tại các lớp nâng cao mã hóa ảnh ở những độ phân giải khác nhauHình 3.2 là ví dụ về bộ mã hóa và giải mã sử dụng mở rộng không gian
Trang 17Hình 3.3 Bộ mã hóa video mở rộng không gian
Việc mở rộng không gian được thực hiện bằng việc sử dụng những ảnh được giải
mã từ tầng dưới như là dự đoán ở tầng cao hơn Nếu tầng cao hơn đang xử lý ảnh ở độ phân giải lớn hơn thì ảnh được giải mã từ tầng thấp hơn phải được chuyển thành độ phân giải lớn hơn Trong bộ giải mã trên hình 3.3 hai vòng lặp mã hóa hoạt động với những độ phân giải khác nhau để tạo ra những lớp cơ sở và lớp nâng cao Bộ mã hóa lớp cơ sở tạo
ra 1 dòng bit có thể được giải mã giống như trường hợp non-scalable Bộ mã hóa lớp nâng cao được cung cấp những ảnh đã được giải mã từ tầng cơ cở, như là sự dự đoán cho các tầng trên Sự dự đoán này bổ sung thêm vào sự dự đoán bù chuyển động từ các tầng trên Chức năng đánh giá W lựa chọn trong các dự đoán từ tầng trên và tầng dưới
Mở rộng không gian được khuyến nghị như là 1 cách để phát những dịch vụ TV
có độ phân giải cao cùng với 1 profile chính tương thích với những dịch vụ chuẩn Profile cao hỗ trợ thêm cho việc mã hóa tín hiệu video 4:2:2 và bao gồm những công cụ đánh đánh giá của SNR và profile không gian
Trang 18c) Dự đoán liên lớp: Mục đích khi thiết kế công cụ dự đoán liên lớp để việc sử dụng thông tin tại các lớp thấp hơn giảm độ méo tín hiệu tại lớp nâng cao Trong H.262, MPEG-2, H.263, và MPEG-4 visual phương pháp dự đoán liên lớp sử dụng các mẫu tái dựng từ tín hiệu tại lớp thấp hơn Tín hiệu dự đoán được định dạng từ việc dự đoán bù chuyển động trong lớp nâng cao hoặc từ quá trình tăng mẫu các tín hiệu tái dựng từ lớp thấp hơn hoặc lấy trung bình các tín hiệu tăng mẫu với tín hiệu dự đoán thời gian.
Tuy nhiên, các profile của những chuẩn này hiếm khi được sử dụng Mà nguyên nhân là do đặc điểm của hệ thống truyền tải video truyền thống cũng như thực tế là các tính khả mở về không gian và chất lượng đến cùng với một thiệt hại đáng kể về hiệu suất
mã hóa cũng như một sự gia tăng lớn trong bộ giải mã phức tạp so với profile tương ứng trong chế độ nonscalable Đồng thời cần lưu ý rằng một hoặc nhiều các lớp đơn (nonscalable) luôn được truyền bằng phương pháp simulcast, về nguyên tắc phương pháp này cung cấp các chức năng tương tự như một dòng bit có thể (scalable)
Với nhu cầu ngày càng tăng về mã hóa cùng nội dung ban đầu tại các băng thông
và độ phân giải khác nhau dẫn tới sự phát triển phần của H.264, được chuẩn hóa như H264/SVC SVC hỗ trợ mã hóa video hiệu quả theo một cách là nhiều dạng của tín hiệu video có thể được giải mã ở một dải tốc độ bit, hoặc những độ phân giải khác nhau Bằng việc mã hóa đồng thời nhiều bản, nó có thể phát chúng theo một cách hiệu quả hơn so với việc tuần tự mã hóa và truyền đi các bản riêng rẽ
So sánh khả năng mở rộng của H.264/SVC với những chuẩn nén video trước đó
H.264/AVC mở rộng cho SVC cung cấp các công cụ khác nhau để giảm suy hao trong quá trình mã hóa Sự khác biệt quan trọng ở đây là:
Khả năng sử dụng cấu trúc dự đoán phân cấp để cung cấp sự mở rộng về thời gian bằng nhiều lớp để cải thiện hiệu quả mã hóa và tăng chất lượng của mã hóa mở rộng không gian
Đây là phương pháp mới cho dự đoán liên lớp của chuyển động và thông tin dư thừa Điều này tăng hiệu quả của mã hóa mở rộng không gian và chất lượng
Khái niệm các “key picture” cho hiệu quả kiểm soát sự sai lệch của mã hóa mở rộng về chất lượng gói cơ sở cùng với cấu trúc dự đoán phân cấp
Vòng lặp giải mã bù chuyển động đơn của bộ giải mã mở rộng chất lượng và không gian đã cung cấp một bộ giải mã phức tạp gần với mã hóa đơn
Hỗ trợ một quá trình giải mã có thể thay đổi, cho phép thay đổi độ suy hao và tính phức tạp của dòng bit mở rộng chất lượng thu được sang dòng bit phù hợp với các profile H.264/AVC không mở rộng
Trang 192 MÃ HÓA VIDEO MỞ RỘNG ĐƯỢC
2.1 CÁC ĐẶC ĐIỂM CỦA CHUẨN NÉN VIDEO H.264
H.264/AVC là chuẩn nén ảnh kỹ thuật truyền hình số cho các vùng ứng dụng về đồ họa và video tương tác 2 chiều (game, truyền hình hội nghị…), góp phần giải quyết vấn
đề dung lượng cho các thiết bị lưu trữ, giải quyết vấn đề băng thông đường truyền tín hiệu video, hoặc kết hợp cả 2 vấn đề trên [5] Có thể khẳng định tiêu chuẩn H.264/AVC hiện là phương thức tiên tiến nhất trong lĩnh vực nén video H.264/AVC cho chất lượng hình ảnh tốt nhất khi có cùng dung lượng so với các chuẩn nén khác H.264/AVC đang được ứng dụng như giải thuật nén chính trong video độ phân giải cao (HD)
Mục tiêu chính của chuẩn nén H.264/AVC đang phát triển nhằm cung cấp video có chất lượng tốt hơn nhiều so với những chuẩn nén video trước đây Điều này có thể đạt được nhờ sự kế thừa phần lớn các lợi điểm của các chuẩn nén video trước đó là H.263 và MPEG-2, trong đó bao gồm 4 đặc điểm chính như sau:
- Thực hiện mã hóa các tín hiệu video bằng cách xây dựng các khung ảnh dự đoán gần giống với ảnh gốc và mã hóa dữ liệu sai khác giữa 2 khung ảnh này Dữ liệu sai khác sau khi được mã hóa sẽ được lưu trữ hoặc truyền tải qua mạng
- Phân chia hình ảnh thành các khối gọi là block (bao gồm nhiều điểm ảnh), do vậy quá trình xử lý từng ảnh có thể được tiếp cận với mức block
- Khai thác triệt để sự dư thừa về mặt không gian tồn tại giữa các block khác nhau trong khung ảnh thông qua dự đoán về không gian
- Khai thác triệt để sự dư thừa về mặt thời gian tồn tại giữa các khung ảnh liên tiếp, nhờ đó chỉ cần mã hóa những chi tiết thay đổi giữa các ảnh liên tiếp nhau Việc này được thực hiện thông qua dự đoán liên ảnh và bù chuyển động
- Khai thác tất cả sự dư thừa về không gian còn lại trong ảnh bằng việc tiếp tục mã hóa các block dư thừa Giai đoạn này được thực hiện thông qua quá trình biến đổi lượng tử và mã hóa entropy
Các profile và level trong H.264/AVC
Mỗi profile định rõ các công cụ mã hóa, các đặc tính và các giới hạn mà bộ giải mã
có thể thực thi Trong phiên bản thứ nhất (năm 2003) cung cấp 3 Profile: Baseline Profile, Main Profile, Extend Profile [5]
Baseline Profile: hỗ trợ mã hóa Inter coding và Intra coding (sử dụng I và P slice)
Mã hóa entropy được sử dụng là CAVLC Hỗ trợ thứ tự Macroblock linh hoạt (FMO) và thứ tự các slice tùy ý (ASO)
Main Profile: hỗ trợ dự đoán trọng số, sử dụng I, P và B slice Một slice I chỉ chứa các MB loại I, slice P chỉ có thể chứa các MB loại I và loại P, và một slice B có thể chứa
MB loại B và loại I Các MB loại I là các MB sử dụng dự đoán nội ảnh cho việc giải mã
Trang 20các mẫu trong slice hiện tại MB loại P là các MB sử dụng dự đoán liên ảnh cho việc giải
mã các mẫu từ ảnh tham khảo MB loai B sử dụng để dự đoán liên ảnh cho việc giải mã các mẫu từ một hoặc nhiều ảnh tham khảo Các slice SI và SP hỗ trợ chuyển đổi giữa các dòng mã Mã hóa Entropy được sử dụng là mã hóa số học dựa trên ngữ cảnh (CABAC) Main profile không hỗ trợ ASO
Extended Profile: bao gồm các đặc tính của Base line Profile, hỗ trợ chuyển đổi hiệu quả giữa các dòng bit (sử dụng SI và SP slice), hỗ trợ ngăn chặn lỗi Không hỗ trợ B slice và không sử dụng mã Entropy CABAC
Ngoài ba profile trong phiên bản thứ nhất, chuẩn H.264/AVC còn cung cấp các profile khác như high profile (H1) hỗ trợ 8 bit với mẫu 4:2:0, high 10 profile (H2) hỗ trợ
10 bit với mẫu 4:2:0, high 4:2:2 profile (H3): hỗ trợ 10 bit với mẫu 4:2:2, high 4:4:4 predictive profile (H4): hỗ trợ 12 bit với mẫu 4:4:4 Chi tiết các profile được trình bàytrong bảng 3.2
Coding Tool B E M H1 H2High ProfileH3 H4
Flexible Macroblock Ordering (FMO) Y Y N N N N N
8x8 & 4x4 Transform Adaptivity N N N Y Y Y Y
Bảng 3.2 Các profile trong chuẩn nén video H.264/AVC [8]