TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
BÁO CÁO MÔN HỌC
XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN
ĐỀ TÀI 13: Phương pháp tiên tiến nén video AVC và ứng dụng
Nhóm sinh viên thực hiện:
1
2
3
4
MSSV
Sok Sereirathana
Bùi Thị Hường
Bùi Kim Khánh
Trần Thị Tình
20114612
20111538
20111678
20112123
Giảng viên hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan
Hà Nội, tháng 05 năm 2015
Mục lục
Xử lý dữ liệu đa phương tiện
Nhóm 13_Đề tài 13
Page 2
Xử lý dữ liệu đa phương tiện
Lời mở đầu
Cuộc sống ngày nay luôn gắn liền với công nghệ thông tin. Chiếc máy tính nói riêng, hay
ngành công nghệ thông tin nói chung không còn xa lại gì với mỗi người. Công nghệ
thông tin không chỉ đóng vai trò then chốt trong sản xuất, xây dựng… mà còn trở thành
một công cụ thường xuyên trong các lĩnh vực giải trí giúp con người thư giãn sau những
giờ làm việc căng thẳng.
Chắc hẳn ai trong chúng ta cũng đã từng xem một video trên đĩa DVD, trên máy vi tính
hay trên các trang web chia sẻ trực tuyến như youtube.com, clip.vn… Chúng ta thương
nghe đến các thuật ngữ như mã hóa hay nén chuẩn MPEG-2, H264… Vậy chúng là gì và
có tác dụng như thế nào đối với việc lưu trữ, truyền nhận?
Trong vài năm trở lại đây chuẩn mã hóa MPEG và H26x là chuẩn nén được sử dụng rộng
rãi. Để rõ hơn điều này nhóm chúng em chọn đề tài: “Phương pháp tiên tiến nén video
AVC và ứng dụng”.
Phân công công việc:
-
Phần 1: Tìm hiểu chung về phương pháp nén AVC – Sok Sereirathana
-
Phần 2: Tìm hiểu chuẩn MPEG-4/H264 AVC – Trần Thị Tình
-
Phần 3: So sánh phương pháp nén MPEG-1 và MPEG-4 – Bùi Thị Hường
-
Phần 4: Ứng dụng thử nghiệm nén video theo chuẩn MPEG-4 và đo lường hiệu
năng giải pháp – Bùi Kim Khánh
Trong quá trình tìm hiểu và hoàn thành bài báo cáo, chúng em đã được sự giúp đỡ và
giảng dạy của cô Nguyễn Thị Hoàng Lan. Do kiến thức chưa vững và tìm hiểu còn hạn
chế nên không tránh khỏi thiếu sót, rất mong sự góp ý của cô.
Chúng em xin chân thành cảm ơn!
Nhóm 13_Đề tài 13
Page 3
Xử lý dữ liệu đa phương tiện
1. Tìm hiểu chung
1.1. Khái niệm
AVC (Advanced Video Coding): là phương pháp nén video tiên tiến thuộc chuẩn
MPEG-4. Nó được cải tiến dựa trên phương pháp nén video cơ sở theo chuẩn MPEG-1.
MPEG-4 Part 10 /H264 hay AVC (Advanced Video Coding) là một định dạng nén
video, hay một chuẩn nén video (hay được biết dưới cái tên CODEC), và hiện đang là
một trong những định dạng đang được dùng phổ biến nhất hiện nay trong công nghệ mã
hóa, phân phối và xử lý video nói chung.H264 được phát triển bởi ITU-T Video Coding
Experts Group (VCEG) và ISO/IEC JTC1 Moving Picture Experts Group (MPEG), 2
nhóm thuộc tổ chức chuẩn hóa quốc tế.Mục đích ra đời của H264 nhằm tạo ra một định
dạng video chất lượng cao với chi phí lưu trữ và truyền phát thấp so với các định dạng
trước đó (MPEG1, MPEG2, H263,…) mà không yêu cầu quá phức tạp về mặt thiết kế
ứng dụng cũng như phần cứng. Cũng chính vì yêu cầu như vậy nên bản thân H264 cũng
được chia làm nhiều “chuẩn” (profile level) để phù hợp với các thiết bị khác nhau.
Giới thiệu vấn đề :
Cần truyền tải dữ liệu video trong môi trường mạng không thuần nhất
“Heterogeneity” đến nhiều máy client với các điều kiện thể hiện khác nhau với
nhiều mức về tốc độ dữ liệu mà vẫn đảm bảo chất lượng trình diễn video.
Một số khái niệm chủ yếu hay gặp:
• Heterogeneity: Không thuần nhất về mạng . Không thuần nhất về môi
trường máy client.
• Simulcast: Khả năng mã hóa và truyền tải video đến từng client theo một
tốc độ dữ liệu.
• Transcoding: Khả năng truyền tải dữ liệu video với tốc độ thấp hơn, và đa
tốc độ tùy theo yêu cầu.
• Scalability: Khả năng phân mảnh tốc độ dòng video để có thể truyền dòng
dữ liệu video với đa tốc độ tùy theo yêu cầu.
Kỹ thuật SVC (Scalable Video Coding) được sử dụng trong phương pháp này để thể hiện
sự tiên tiến.
1.2. Lịch sử phát triển
MPEG-4 part 2 được ISO công bố vào 1999, nó là tiêu chuẩn cho nhũng ứng dụng
truyền thông đa phương tiện với tốc độ bit thấp và cho ứng dụng truyền hình quảng
bá trong tương lai. Tuy nhiên chất lượng của nó vẫn chưa đạt được như mong muốn,
Nhóm 13_Đề tài 13
Page 4
Xử lý dữ liệu đa phương tiện
chính vì vậy mà ISO/ĨEC (MPEG) và ITU đã cùng nhau họp tác và thành lập nhóm
Joint Video Team (JVT), đề nghiên cứu phát triên chuấn mã hóa tiên tiến là
Advanced Video Coding (AVC). Và đến 2003 đã cho ra đời chuẩn MPEG-4 part 10,
tên theo tiêu chuẩn ĨSO/IEC 14496-10 và H.246 AVC trong ITƯ hay còn gọi là
MPEG-4 H.264/AVC, gọi tắt là H.264/AVC.
1.3. Ứng dụng
MPEG4 Part 10 /H264 hay AVC là một định dạng video, tất nhiên nhiệm vụ chính của
H264 là đóng vai trò chuẩn mã hóa và nén video. Hiện H264 được sử dụng trong rất
nhiều thiết bị, dịch vụ. Đơn cử là các thiết bị đầu Blu-ray, các dịch vụ phát video trực
tuyến qua internet như YouTube, iTunes Store, Vimeo,… các phần mềm như Adobe
Flash Player, Silverlight, VLC, và các dịch vụ truyền hình HDTV, truyền hình vệ tinh.
Ngoài ra H264 còn được các hãng công nghệ phát triển để phục vụ cho các mục đích
khác như:
XAVC: Định dạng thu video có thể hỗ trợ độ phân giải lên tới 4K (4096×2160)
và tốc độ khung hình lên tới 60 FPS.
• AVCHD: Được phát triển bởi Sony và Panasonic, dùng để thu video độ phân giải
cao, được sử dụng trong nhiều đĩa Blu-ray và máy PlayStation 3. Về cơ bản là
H264 nhưng được thêm một số tính năng đặc biệt phục vụ cho các thiết bị của
hãng.
•
1.4. Đặc điểm của chuẩn nén MPEG4 Part 10 /H264 hay AVC
•
Dự đoán không gian định hướng trong kiểu mã hóa Intra: hồ trợ tới 17 kiều dự
đoán, làm cho việc dự
đoán mẫu được chính xác hơn, đạt hiệu quả nén cao hơn.
•
Bù chuyển động với kích thước nhỏ có thể thay đổi. Tiêu chuẩn này mang lại
sự mềm dẻo cho sự lựa chọn kích thước và hình dạng, kích thước bù chuyến
động nhỏ nhất là 4x4. Điều này đã mang lại hiệu suất 15% so với MPEG-2.
Bù chuyển động % làm giảm tính phức tạp của xử lý nội suy so với các tiêu
chuẩn trước đó.
Nhóm 13_Đề tài 13
Page 5
Xử lý dữ liệu đa phương tiện
•
•
•
•
•
Bù chuyển động với nhiều hình tham khảo. Do camera thay đổi góc quay hay
chuyển qua lại giữa các cảnh, việc đoán trước các chuyền động là rất phức tạp
ta cần phải có nhiều frame tham khảo để nâng cao hiệu suất và chất lượng.
H.264/AVC cho phép sử dụng tối đa 32 frame tham khảo trong khi MPEG-2
chỉ sử dụng 2 frame tham khảo mang tính chất chu kỳ. Bù chuyển động với
nhiều hình tham khảo sẽ là chậm quá trình mã hóa và giải mã nhưng sẽ tăng
chất lượng ảnh với cùng tỉ số nén.
Tách riêng hình tham khảo và hình hiển thị: ở các tiêu chuân trước có sự phụ
thuộc giữa hình tham khảo và hình hiển thị, còn trong H.264/AVC bộ mã hóa
có thể chọn hình ảnh đổ tham khảo gần nhất với hình ảnh được mã hóa cho
mục đích tham khảo dự đoán nên có thê hiển thị với tính linh hoạt cao, do đó
khoảng thời gian trễ sẽ được loại bỏ.
Giảm dư thừa về không gian tốt hơn: sử dụng phép biến đổi nguyên thay vì sử
dụng phép biến đổi DCT như MPEG-2, làm giảm ảnh hưởng do sai số làm
tròn.
Lượng tử hóa thích nghi: trong quá trình mã hóa với tốc độ bit biến thiên, khi
sử dụng lượng tử hóa thích nghi, mỗi frame có thể được nén với những bộ
lượng tử khác nhau phụ thuộc vào bản chất hình ảnh của chúng thông qua
việc điều khiển tốc độ bit. Ví dụ những phần chuyển động hay những phần
hình ảnh sẫm màu khó nhận biết sẽ được xử lý với hệ số lượng tử lớn hơn (độ
nén cao hơn, dung lượng nhỏ hon), những phần hay được hệ thống mắt người
chú ý nhiều hơn sẽ được xử lý với hệ số lượng tử thấp hơn (độ nén nhỏ hơn,
dung lượng lớn hơn). H.264/AVC cho phép sử dụng tới 52 mức lượng tử
trong khi MPEG-2 chỉ có 31 mức.
Sử dụng bộ lọc tách khối: Trái ngược với bộ tiền xử lý hay bộ hậu xử lý, bộ
lọc tách khối được áp dụng trong suốt quá trình mã hóa trên mọi frame đơn lẻ,
nhưng trước đó nó sẽ được sử dụng đế tham khảo cho những frame đến sau.
Cải tiến mới này sẽ giúp tránh được hiện tượng kết khối làm ảnh hưởng đến
chất lượng hình ảnh, đặc biệt là với tốc độ bit thấp. Nhưng tốc độ mã hóa, giải
mã sẽ bị giảm sút.
•
Kiểu dự đoán trọng so. H.264/AVC có thể hỗ trợ quá trình mờ dần hay tối dần
khung hình trong những đoạn film có hiệu ứng mò' dần (những frame đến sau rất
giống so với những frame ngay trước nó, chỉ có sắc độ là khác một chút),.
Nhóm 13_Đề tài 13
Page 6
Xử lý dữ liệu đa phương tiện
•
Mã hóa Entropy thích nghi: trong H.264/AVC sử dụng 2 phương pháp mã hóa
phức tạp hơn đó là CAVLC và CABAC thay vì biến đồi VCL tĩnh trong MPEG-2,
nên hiệu quả mã hóa cũng cao hơn rõ rệt.
Một số đặc tính làm tăng cường khả năng chống sai số và mất dữ liệu như :
• Thông số cài đặt cấu trúc: tập họp các thông số nhằm tăng cường cho thông tin
đầu mục của quá trình truyền được hiệu quả hơn. Ở những tiêu chuẩn trước,
nếu mất một số thông tin quan trọng như thông tin đầu mục của chuỗi ảnh sẽ
ảnh hưởng rất lớn đến quá trình giải mã. Còn trong H.264/AVC thì các thông
tin này được tách riêng tạo tính linh hoạt và chuyên dụng hơn.
• Cấu trúc cú pháp của NAL: Mồi cấu trúc cú pháp trong H.264/AVC được đặt
trong gói dừ liệu vật lý gọi là NAL.
•
Hỗ trợ kỳ thuật sắp xếp thứ tự mềm dẻo FMO và sắp xếp thứ tự slice bất kỳ
ASO
• Hỗ trợ 2 ảnh chuyển mạch đồng bộ SI/SP và kỳ thuật phân vùng dữ liệu (Data
Partitioning).
Chức năng của H.264/AVC có thể tổng hợp trong những chức năng chính như sau:
• Hiệu suất nén: hiệu suất nén là mục tiêu chính trong MPEG-1, MPEG-2. Do
đó ở H.264/AVC, việc cải tiến hiệu suất mã hóa các luồng dừ liệu sè mở rộng
khả năng ứng dụng của nó trong thực tiễn. Tiêu chuẩn H.264/AVC tiết kiệm
lên đến 50% tốc độ bit so với MPEG-1, MPEG-2, MPEG-4 part 2 khi mã hóa
cùng một cấp độ.
• Khả năng tương tác: cho phép người sử dụng có thể tương tác trực tiếp các nội
dung chương trình đang xem.
• Kiêu truy nhập phố biến: tăng cường khả năng chống lỗi trong mội truờng
khắc nhiệt, cung cấp các công cụ cần thiết để giải quyết việc mất mát gói dữ
liệu trong khi truyền trong mạng gói và lỗi bit trong môi trường không dây.
Nhóm 13_Đề tài 13
Page 7
Xử lý dữ liệu đa phương tiện
2.
MPEG-4/H264 AVC
2.1. Kiến trúc phân lớp của MPEG-4/H264 AVC
H.264/AVC Codec bao gồm 2 khối : video coding layer ( VCL) và network
abstraction layer ( NAL).
Hình 2.1: Cấu trúc phân lớp của bộ mã hóa H.264/AVC
Tín hiệu vào được nén trước tiên ở khối VCL thành một dòng bit- bitstream. Chức
năng của khối VCL là nén nội dung video hiệu quả. Network abstraction layer ( NAL) là
một khái niệm mới, được thiết kế cho việc truyền tải dòng bit nén trong môi trường mạng
hoặc lưu trữ khác nhau. Những ứng dụng bao gồm : quảng bá trên các mạng mặt đất, dây
cáp và vệ tinh; mạng IP, wireless và kênh ISDN. Trong lớp này, thông tin header được
thêm vào dòng bit được nén để điều khiển một loại của tầng giao vận và phương tiện lưu
trữ. Giao diện của NAL được thiết kế để cho phép dữ liệu video nén phù hợp với các giao
thức và kiến trúc mạng khác nhau.
2.2. Cấu trúc dòng bit
Dòng bit có thể ở một trong hai dạng: dòng NAL unit ( NALU) hoặc dòng byte.
Dòng NALUs bao gồm một chuỗi các NALU. Định dạng của một NALU được biểu
diễn như sau:
Nhóm 13_Đề tài 13
Page 8
Xử lý dữ liệu đa phương tiện
Hình 2.2: Cấu trúc dòng bit
-
-
Trong header của một NALU:
Bit đầu tiên là bit 0.
2 bits tiếp theo được sử dụng để chỉ ra rằng có hay không NALU chứa chuỗi (tập hợp)
các tham số picture hoặc một mảnh của một picture tham chiếu.
5 bits tiếp theo được sử dụng để chỉ ra loại của NALU units, cái tương ứng với loại dữ
liệu được mang trong NALU unit.
Có tổng cộng 32 loại NALUs. 32 loại này có thể được chia làm 2 dạng: VCL NALUs
và non-VCL NALUs.
VCL units mang dữ liệu tương ứng với VCL.
Trái lại non-VCL NALUs mang thông tin như : thông tin tăng cường bổ sung (SEI),
chuỗi và tập hợp các tham số picture, dấu giới hạn truy cập và những thông tin khác.
Trong dòng NALU, NALUs được giải mã theo trình tự.
Dòng byte - bytestream- có thể khởi tạo từ dòng NALU bằng cách sắp xếp NALUs
trong trình tự giải mã và thêm mọi NALU một mã bắt đầu. Dòng NALU có thể được
lấy ra từ các dòng byte bằng cách loại bỏ mã bắt đầu.
2.3. Sơ đồ mã hóa
Sơ đồ mã hóa của H.264/AVC cũng tương tự so với các chuẩn video khác. Bộ mã hóa
theo chuẩn MPEG4/H264 đều có các khối cơ bản trong (khối dự đoán, khối biến đổi,
khối lượng tự hóa, mã hóa entropy) giống như trong các chuẩn trước đó (MPEG-1,
MPEG-2, MPEG-4, H.261, H.263), nhưng trong từng khối chức năng đều có những thay
đổi quan trọng.
Nhóm 13_Đề tài 13
Page 9
Xử lý dữ liệu đa phương tiện
Hình 2.3: Sơ đồ mã hóa theo chuẩn H.264/AVC
Lớp mã hoá video của H264/AVC là sự kết hợp của mã hoá không gian, mã hoá thời
gian và mã chuyển vị. Ảnh được tách thành các khối, ảnh đầu tiên của dãy hoặc điểm
truy cập ngẫu nhiên thì được mã hoá “Intra”- mã hoá trong ảnh, có nghĩa là không dùng
thông tin của các ảnh khác mà chỉ dùng thông tin chứa trong ảnh đó. Mỗi mẫu của một
khối trong một Frame Intra được dự đoán nhờ dùng các mẫu không gian bên cạnh của
các khối đã mã hoá trước đó. Đối với tất cả các ảnh còn lại của dãy hoặc giữa các điểm
truy cập ngẫu nhiên, mã hoá “Inter” được sử dụng, dùng dự đoán bù chuyển động từ các
ảnh được mã hoá trước đó.Quá trình mã hoá cho dự đoán liên ảnh (bù chuyển động) gồm
việc lựa chọn dữ liệu chuyển động, các ảnh tham chiếu và sự dịch chuyển không gian
được ứng dụng cho tất cả việc lấy mẫu của khối.
Bộ mã hoá có thể lựa chọn giữa mã hoá Intra và Inter cho miền hình dạng khối của
mỗi ảnh. Mã hoá Intra có thể chỉ ra điểm truy cập của chuỗi được mã hoá, tại đó việc giải
mã có thể bắt đầu và tiếp tục một cách chính xác. Mã hoá Intra sử dụng các mode dự
đoán không gian riêng rẽ để làm giảm độ dư thừa không gian trong tín hiệu gốc của mỗi
ảnh đơn. Mã hoá Inter (dự đoán một chiều hay nhiều chiều) thì việc sử dụng dự đoán liên
ảnh hiệu quả hơn cho mỗi block của giá trị lấy mẫu từ một vài ảnh được giải mã trước đó.
Nhóm 13_Đề tài 13
Page 10
Xử lý dữ liệu đa phương tiện
Mã hoá Inter sử dụng các Vector chuyển động cho các block cơ sở dự đoán liên ảnh
(Inter prediction) để làm giảm sự dư thừa thời gian giữa các ảnh (picture) khác nhau.
Việc dự đoán được thu được từ tín hiệu đã lọc tách khối của các ảnh được thiết lập lại
trước đó.
Bộ lọc tách khối làm giảm sự nhiễu khối tại các đường biên của block. Các vector
chuyển động và các mode dự đoán trong ảnh (intra prediction) có thể (theo lý thuyết) làm
biến đổi kích thước block trong ảnh. Sự dự đoán thặng dư được nén tốt hơn bằng việc sử
dụng một phép biến đổi để loại bỏ sự tương quan theo không gian trong một block trước
khi được lượng tử hoá.
-
-
-
-
Cuối cùng, Vector chuyển động hay các mode dự đoán liên ảnh được liên kết với
thông tin của hệ số biến đổi lượng tử hóa và được mã hoá sử dụng mã Entropy như mã
hoá chiều dài biến đổi thích ứng theo tình huống CAVLC (context-adaptive variable
length code) hay mã hoá theo số học nhị phân thích ứng theo tình huống CABAC
(context-adaptive binary arithmetic coding).
Ngoại trừ những công cụ thông thường, H.264/AVC bao gồm nhiều tính năng cải
thiện đáng kể hiệu suất mã hóa và tăng khả năng chống lỗi và tính linh hoạt trong nhiều
môi trường mạng.
Tính năng cải thiện hiệu suất mã hóa có thể chia làm 2 loại: đầu tiên là cải thiện tính
chính xác của dự đoán picture được mã hóa và thứ hai bao gồm những phương thức
chuyển đổi và mã hóa entropy. Một vài công cụ được dùng trong H.264/AVC để cải thiện
dự đoán inter và intra sẽ được miêu tả trong phần sau:
Bù chuyển động với khối có kích thước nhỏ được sử dụng, thường sử dụng khối 4x4.
Bù chuyển động với độ chính xác ¼ pixel được sử dụng trong H.264/AVC. Bù chuyển
động được sử dụng trong MPEG-4 Part2 nhưng H.264 còn làm giảm độ phức tạp của quá
trình nội suy.
Picture đa tham chiếu được sử dụng trong bù chuyển động và dự đoán : P- và B-picture.
Số lượng picture tham chiếu có thể lên tới 15 cho mức 3.0 hoặc thấp hơn và 4 picture
tham chiếu cho mức cao hơn 3.0. khi picture đa tham chiếu được sử dụng cho dự đoán bù
chuyển động, sự đóng góp của dự báo từ các tham chiếu khác nhau nên được coi trọng và
được bù bằng lượng định trước bởi bộ mã hóa. Điều này có thể cải thiện hiệu năng nén
cho những cảnh mờ.
Định hướng không gian dự đoán cho mã hóa intra được sử dụng để nâng cao hiệu quả
nén. Trong kỹ thuật này, các vùng intracoded được dự đoán với các vùng tham chiếu
được mã hóa trước đó. Bằng cách này cạnh của vùng được giải mã trước đó của picture
hiện tại có thể được ngoại suy vào vùng của intracoded hiện hành.
Skip mode trong P-picture và direct mode trong B-picture được sử dụng để giảm bớt vấn
đề về dùng quá nhiều bits để mã hóa vecto chuyển động trong mã hóa interframe. H.264
Nhóm 13_Đề tài 13
Page 11
Xử lý dữ liệu đa phương tiện
-
-
-
-
sử dụng skip mode cho P-picture và direct mode cho B-picture. Trong những chế độ này,
tín hiệu tái tạo được lấy trực tiếp từ fram trước đó với vecto bù chuyển động bắt nguồn từ
thông tin mã hóa trước đó bằng cách khai thác sự tương quan về không gian ( skip mode )
và tương quan về thời gian ( direct mode ) của vecto chuyển động giữa các macro-blocks
hoặc các picture. Bằng cách đó tiết kiệm bit cho việc mã hóa vecto chuyển động có thể
đạt được.
Việc sử dụng bộ lọc tách khối vòng ( DFs) là một tính năng khác để giảm sự giả tưởng
block và cải thiện chất lượng video. Sự khác biệt giữa MPEG-1/2 và H.264 là trong
H.264 sử dụng DF (deblocking filter) trong vòng lặp bù chuyển động, vì vậy nó có thể
được sử dụng để cải thiện dự đoán interframe và cải thiện hiệu quả nén.
H.264 biến đổi khối có kích thước 4x4 thay vì sử dụng 8x8 như trong môt số chuẩn nén
thông thường. giá trị của việc sử dụng biến đổi khối có kích thước nhỏ là mã hóa picture
…. Tuy nhiên việc sử dụng khối có kích thước nhỏ có thể làm giảm hiệu năng nén do
những tương quan của khu vực lớn có thể không được khai thác. H.264 có 2 cách để giải
quyết vấn đề này:
+ sử dụng chuyển đổi phân cấp để mở rộng hiệu quả của khối kích thước lớn….
+ Cho phép bộ mã hóa chọn một bộ mã hóa đặc biệt của intracoding cho phép mở rộng
độ dài cảu …
Hai phương pháp mã hóa entropy mạnh: mã hóa độ dài thay đổi thích nghi với nội dung (
CAVLC ) và mã hóa nhị phân số học thích nghi với nội dung ( CABAC ) được sử dụng
trong H.264 để nâng cao hiệu năng nén.
Trong H.264 một vài công cụ được sử dụng để nâng cao khả năng chống lỗi.
Sự linh hoạt trong kích thước các mảnh cho phép bộ mã hóa lựa chọn thích hợp kích
thước của các mảnh để tăng khả năng chống lỗi.
2.4. Các kỹ thuật trong H.264/AVC
Chi tiết về một số tính năng quan trọng của H.264.
•
Instantaneous Decoding Refresh Picture
Trong chuẩn MPEG, chuỗi video đầu vào được tổ chức thành group: GOP. Mỗi
GOP chứa 3 loại frame đó là : frame I, frame P và frame B.
Trong H.264/AVC không dùng khái niệm về I-picture, P-picture, B-picture mà
thay vào đó là I-slice, P-slice , B-slice. Tuy nhiên một picture có thể chứa I-slice, Pslice , B-slice.
Để đáp ứng môt số ứng dụng, H.264 sử dụng một loại picture mới, instantaneous
decoding refresh ( IDR ) picture. IDR picture là một picture được mã hóa trong đó tất
cả các slices : I- hoặc SI-slices làm cho quá trình giải mã đánh dấu tất cả các picture
tham chiếu như là “không sử dụng tham chiếu” ngay lập tức sau khi giải mã IDR
Nhóm 13_Đề tài 13
Page 12
Xử lý dữ liệu đa phương tiện
picture. Điều này có nghĩa là sau khi giải mã một IDR, tất cả những picture nén sau
đó có thể được giải mã mà không cần dự đoán inter từ bất kỳ picture giải mã trước
IDR picture. Hình ảnh đầu tiên của chuỗi là một IDR picture.
Sự khác biệt chính giữa IDR-picture của H.264 và I-picture của MPEG-2 là : trong
H.264, sau khi gửi một IDR picture bộ mã hóa không thể sử dụng được bất picture
nào trước IDR ( trong thứ tự giải mã ) làm tham chiếu cho dự đoán inter của một
picture bất kỳ sau IDR. Vì vậy sự có mặt của IDR trong H.264 tương tự như sự có
mặt của GOP header trong MPEG-2 trong đó cờ closed_gop được thiết lập 1.
•
Switching I – slices and switching P-slices
Ngoài việc thêm loại picture mới là IDR picture, H.264 còn thêm loại slice mới :
SP- và SI-slices. Mục đích chính của SP-slice và SI-slice là cho phép chuyển mạch
hiệu quả giữa các video stream và truy cập ngẫu nhiên hiệu quả dòng giải mã.
Video stream là một trong những ứng dụng quan trọng trong mạng IP và mạng
không dây 3G. Tuy nhiên do nhiều điều kiện mạng khác nhau nên băng thông tới
người dùng sẽ phải thay đổi cho phù hợp. Vì vậy server video phải thay đổi tốc độ
dòng bit cho phù hợp. Có một số cách để đạt được điều này như chuyển mã video,
nhưng cách đơn giản nhất cho ứng dụng thời gian thực là tạo ra một số dòng bit riêng
biệt được mã hóa trước cho cùng một chuỗi video với tốc độ dòng bit khác nhau với
chất lượng khác nhau ở cùng một thời điểm. Các máy chủ có thể tự động chuyển từ
tốc độ dòng bit cao sang tốc độ thấp khi băng thông giảm.
Nhóm 13_Đề tài 13
Page 13
Xử lý dữ liệu đa phương tiện
Hình 2.4: Quá trình switching.
Trong hình này ta giả sử rằng mỗi frame được mã hóa như là một loại slice duy
nhất và dự đoán từ một frame tham chiếu. Ngoài ra, dòng A được mã hóa với tốc độ
dòng bit cao hơn, dòng B được mã hóa với tốc độ dòng bit thấp hơn.
Sau khi giải mã P-slice A1 và A2 trong dòng A, bộ giải mã muốn chuyển sang
dòng B và giải mã B3, B4. Trong trường hợp này, rõ ràng B3 được mã hóa như là một
I-slice. Nếu B3 được mã hóa như một P-slice thì các bộ giãi mã sẽ giải mã sẽ không
có được picture tham chiếu chính xác để tái tạo lại B3.
Vì vậy chuyển mạch bitstream có được thực hiện bằng cách chèn thêm một I-silce
vào trong chuỗi mã hóa để tạo ra điểm chuyển mạch. Tuy nhiên, một I-slice không
khai thác được bất cứ dư thừa nào và nó cần nhiều bit để mã hóa hơn P-slice. Điều
này sẽ cho kết quả như một đỉnh trong bitstream được mã hóa tai mỗi điểm chuyển
mạch. Để giải quyết vấn đề này, các SP-slice được đề xuất để hỗ trợ chuyển mạch mà
không ảnh hưởn tới tốc độ dòng bit của I-slice.
Hình 2.5: Quá trình switching sử dụng SP-slice
Điểm mấu chốt là AB3(SP-slice) được mã hóa như P-slice khi B3 là picture đầu
vào và được tái tạo với A2 làm tham chiếu dự đoán. Quá trình mã hóa và giải mã của
AB3 được chỉ ra trong hình sau:
Nhóm 13_Đề tài 13
Page 14
Xử lý dữ liệu đa phương tiện
Hình 2.6: Quá trình mã hóa và giải mã SP-slice
• Transform and Quantization
Không giống như những chuẩn khác sử dụng biến đổi DCT cho khối có kích thước
8x8, H.264/AVC sử dụng khối có kích thước 4x4. Lý do khi sử dụng khối có kích thước
4x4:
- Khối có kích thước nhỏ khai thác hoạt động địa phương trong nội dung và nó còn giảm
độ phức tạp khi thực hiện.
- Ngoài ra khối có kích thước nhỏ thì bù chuyển động sẽ thích hợp hơn.
Trong H.264, 3 phép biến đổi được sử dụng cho 3 ứng dụng khác nhau:
+ Phép biến đổi Hadamard 4x4 cho khối 4x4 tín hiệu độ chói
+ Phép biến đổi 2x2 cho tín hiệu màu
+ Phép biến đổi integer cho khối 4x4 cho dữ liệu độ chói dư thừa.
Nhóm 13_Đề tài 13
Page 15
Xử lý dữ liệu đa phương tiện
Hình 2.7: Ma trận của tín hiệu và độ chói
•
Intraframe Coding with Directional Spatial Prediction
Trong H.264/AVC, một kỹ thuật nén intraframe dựa trên dự đoán hướng được sử
dụng. Ý tưởng cơ bản của thuật toán này là dự đoán macroblock được nén theo intra
trong vùng được mã hóa lúc trước từ hướng không gian thích hợp trong cùng một
khung.
•
Adaptive Block Size Motion Compensation
Trong nhiều chuẩn nén, một macroblock bao gồm một khối 16x16 tín hiệu độ chói
và tương ứng với hai khối tín hiệu màu được sử dụng như là một phép xử lý cơ bản
Hình 2.8: Cách chia Macroblock (MB) trong H264
3.5 Các Profile và các Level
Các Profile và các Level xác định các điểm bắt buộc. Các điểm bắt buộc này được
thiết kế để tạo thuận tiện cho sự linh hoạt giữa các ứng dụng khác nhau của tiêu chuẩn
H264/AVC.
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 bít tương thích.
Level đặt ra những giới hạn cho những thông số chủ yếu nhất định của dòng bít.
Có 3 Profile trong phiên bản thứ nhất: Baseline, Main, Extended. Baseline Profile thì
được ứng dụng cho thời gian thực như các dịch vụ đàm thoại như truyền hình tương tác
Nhóm 13_Đề tài 13
Page 16
Xử lý dữ liệu đa phương tiện
và điện thoại hình. 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 với mục đích là ứng dụng cho các dịch vụ đa phương tiện trên
mạng Internet. Ngoài ra còn có 4 High Profile đã được định nghĩa trong độ trung thực
của vùng mở rộng cho các ứng dụng như: sự đóng góp nội dung, sự phân phối nội dung,
việc dàn dựng studio và xử lý quá trình gửi thông tin. Các High Profile đó là : High, High
10, High 4:2:2, High 4:4:4. Trong đó:
- High Profile: hỗ trợ cho việc lấy mẫu 8- bít video với chuẩn 4:2:0.
- High 10 Profile: hỗ trợ cho việc lấy mẫu 10-bít video với chuẩn 4:2:0.
- High 4:2:2 Profile: hỗ trợ cho việc lấy mẫu 10 –bít cho thành phần màu với chuẩn
4:2:2.
- High 4:4:4 Profile được hỗ trợ cho việc lấy mẫu 12-bít cho thành phần màu với
chuẩn 4:4:4.
Các Profile đều có các phần mã hoá chung và các phần mã hoá riêng được chỉ trong
hình sau:
Các phần chung cho tất cả các Profile :
- Slice I (Slice mã hoá trong ảnh): Slice đã mã hoá bằng việc sử dụng dự đoán chỉ từ các
-
mẫu đã mã hoá bên trong cùng một Slice .
Slice P (Predictive-coded Slice ): các Slice được mã hoá bằng việc sử dụng dự đoán liên
ảnh từ các ảnh tham chiếu đã được mã hoá trước đó sử dụng hầu hết cho Vector chuyển
động và hệ số tham chiếu để dự đoán các giá trị mẫu cho mỗi Block.
CAVLC (Context-based Adaptive Variable Lengh Coding):mã hoá độ dài biến đổi tương
thích với tình huống, cho mã hoá Entropy.
• Baseline Profile
Nhóm 13_Đề tài 13
Page 17
Xử lý dữ liệu đa phương tiện
- Thứ tự Macro-Block linh hoạt (Flexible Macro-Block order): các Macro-Block có thể
-
không cần thiết trong thứ tự quét mành. Bản đồ định vị các Macro-Block cho một nhóm
Slice .
Thứ tự Slice bất kỳ (Arbitrary Slice order): địa chỉ Macro-Block của Macro-Block đầu
tiên của một Slice của một ảnh có thể nhỏ hơn địa chỉ Macro-Block của đầu tiên của một
vài Slice khác có trước của cùng ảnh đã mã hoá.
Slice dư thừa (Redundant Slice ): Slice này thuộc về dữ liệu đã mã hoá dư thừa thu được
từ cùng hay khác một tỷ lệ mã hoá, so với dữ liệu đã mã hoá trước đó của cùng một Slice.
•
Main Profile
- B Slice (Bi-directionally predictive-coded Slice ): Slice đã mã hoá bằng việc sử dụng dự
•
•
-
đoán liên ảnh từ các ảnh tham chiếu đã mã hoá trước đó, sử dụng tại hầu hết hai Vector
chuyển và các hệ số tham chiếu để dự đoán các giá trị mẫu của từng Block .
Dự đoán có trọng số (weighted prediction): phân chia các hoạt động bằng việc áp dụng
một thừa số trọng số để lấy mẫu dữ liệu dự đoán bù chuyển động của mỗi Block .
CABAC (Context-based Adaptive Binary Arithmetic Coding): mã hóa thuật toán nhị
phân tương thích với tình huống, cho mã hoá Entropy.
Extended Profile
Bao gồm tất cả các phần của Baseline Profile: thứ tự Macro-Block linh hoạt, thứ tự Slice
bất kỳ, Slice dư thừa.
Slice SP: Slice mã hoá đặc biệt để có khả năng chuyển đổi giữa các dòng video, tương tự
như việc mã hoá một Slice P.
Slice SI: Slice đã chuyển đổi tương tự như việc mã hoá một Slice I.
Sự phân chia dữ liệu: dữ liệu đã mã hoá được đặt trong sự phân chia dữ liệu tách rời, mỗi
sự phân chia có thể được đặt trong đơn vị lớp khác nhau.
Slice B.
Dự đoán có trọng số.
High Profile
Bao gồm tất cả các phần của Main Profile: Slice B, dự đoán có trọng số, CABAC.
Kích cỡ khối biến đổi tương thích: biến đổi nguyên khối 4 x 4, 8 x 8 cho việc lấy mẫu
thành phần chói.
Các ma trận phân chia lượng tử hoá: sự phân chia khác nhau tuỳ theo các tần số riêng
được kết hợp với các hệ số biến đổi trong quá trình lượng tử hoá để làm tối ưu chất lượng
chủ thể.
Nhóm 13_Đề tài 13
Page 18
Xử lý dữ liệu đa phương tiện
Nhóm 13_Đề tài 13
Page 19
Xử lý dữ liệu đa phương tiện
3.
3.1.
So sánh phương pháp nén MPEG-1 và MPEG-4
Mô hình tổng quát
3.2.
Nén video theo chuẩn MPEG-1
Chuẩn MPEG-1 xuất hiện vào 11/1992 là chuẩn khởi đầu cho việc nén các ảnh động và
đây cũng là nền tảng phát triển cho các chuẩn nén khác trong họ MPEG, nó được mệnh
danh là chuẩn “khởi động thiết bị số”.
MPEG-1(mã ISO/IEC 11172): dùng để ghi CD-ROM, VCD, 352x240, 2530 ảnh/s, tốc độ từ 1.2-1.5 Mbit/s.
Sơ đồ quá trình nén:
Nhóm 13_Đề tài 13
Page 20
Xử lý dữ liệu đa phương tiện
Đầu vào: các frame ảnh của video
Đầu ra: các dòng bit đã được mã hóa
Sơ đồ nén gồm có 3 phần chính:
-
Khối mã hóa DCT, IDCT.
-
Khối lượng tử hóa & lượng tử hóa ngược.
-
Khối dự đoán, bù chuyển động
Chức năng của các khối như sau:
-
Khối DCT thực hiện phép biến đổi Cosin rời rạc đối với đối tượng là sự sai khác giữa
frame hiện tại và frame được dự đoán (đối với frame I, DCT thực hiện biến đổi ngay
trên các khối điểm ảnh của frame). IDCT thực hiện phép biến đổi Cosin ngược, phục
hồi lại sự sai khác đã được mã hóa, sử dụng cho quá trình dự đoán bù chuyển động.
-
Lượng tử hóa: rời rạc hóa tín hiệu theo các bước lượng tử, ở đây là rời rạc hóa các giá
trị của khối điểm ảnh đã qua biến đổi DCT.
Nhóm 13_Đề tài 13
Page 21
Xử lý dữ liệu đa phương tiện
-
Khối dự đoán chuyển động: thực hiện tìm vector chuyển động của khối điểm ảnh dựa
theo frame hiện tại và frame tham chiếu(frame được dự đoán trước nó). Vector
chuyển động cũng sẽ được mã hóa và truyền đi.
-
Khối bù chuyển động có nhiệm vụ khôi phục lại frame dự đoán bằng vector chuyển
động và frame tham chiếu của nó. Từ frame dự đoán và frame hiện tại, ta lấy được
thông tin về sự sai khác, thông tin này được đưa đến bộ mã hóa DCT.
MPEG1 là sự phối hợp của các kĩ thuật DPCM và DCT, do vậy nó có những đặc điểm
nén giống như 2 kỹ thuật đó. Nếu trong các khối của sơ đồ nén DPCM, hiệu quả nén phụ
thuộc rất nhiều vào khối dự đoán, thì ở MPEG-1 lại là khối dự đoán bù chuyển động. Về
bản chất, dự đoán bù chuyển động ở MPEG1 chính là khối tiên đoán ở DPCM. Tuy về
mặt tính toán, độ phức tạp của giải thuật, dự đoán chuyển động sẽ tốn chi phí cao; nhưng
bù lại, độ chính xác dự đoán lại cao hơn nhiều so với các giải thuật dự đoán DPCM. Khối
DCT biến đổi khối điểm ảnh theo một công thức được định nghĩa sẵn. Tức là DCT chỉ có
ý nghĩa làm tăng giải tương quan trong một block ảnh chứ không có ý nghĩa quyết định
đến hiệu quả nén của cả sơ đồ. Thêm nữa, do được kế thừa từ DPCM nên MPEG1 cũng
có sai số mã hóa gây ra bởi khối lượng tử hóa. Nhưng ở MPEG1, sai số này có thể được
điều chỉnh, và theo đó có thể làm tăng chất lượng video. Khi ta tăng số bit lượng tử hóa,
tức là sai số do lượng tử hóa giảm, tín hiệu sau khi lượng tử hóa sẽ càng gần với tín hiệu
thực tế.
Mô tả quá trình nén như sau:
Frame I (frame đầu tiên) được mã hóa toàn bộ theo phương pháp mã hóa ảnh JPEG,
vector chuyển động = 0, frame này trở thành frame tham chiếu của frame thứ 2.
Nhóm 13_Đề tài 13
Page 22
Xử lý dữ liệu đa phương tiện
Frame thứ 2: nhận frame tham chiếu là frame được dự đoán trước đó (frame 1). Bộ đánh
giá chuyển động xác định vector chuyển động dựa vào frame 2 và frame 1. Bộ bù chuyển
động tạo ra frame dự đoán của frame 2 bằng cách kết hợp vector chuyển động và frame
tham chiếu của nó (là frame 1). Từ frame 2 và frame dự đoán của nó, ta mã hóa sự sai
khác giữa chúng, đưa lên đường truyền sau khi đã lượng tử hóa.
Các frame sau tiếp tục quá trình như trên.
3.3.
Nén video theo chuẩn MPEG-4
MPEG-4 (1998): mã ISO/IEC 14496 dữ liệu đa phương tiện trong truyền thông và các
ứng dụng tương tác đa phương tiện, đồng bộ dữ liệu. (tốc độ bit thấp)
MPEG-4 Video là một định dạng được sử dụng để lưu trữ hiệu quả các nội dung video và
video streaming qua Internet và các mạng di động, cũng như cho các ứng dụng chuyên
nghiệp như lưu trữ video trong studio.
MPEG4 dựa trên MPEG-1 và tiêu chuẩn MPEG-2 và như chúng là một đồ họa và video
lossy chuẩn thuật toán nén.Tuy nhiên, đối với MPEG-4 dữ liệu video đầu vào kích thước
nhỏ hơn và do đó được ưa thích cho streaming trực tuyến hay lưu trữ với không gian ổ
đĩa giới hạn. Đây là chủ yếu vì MPEG-4 được dựa trên công nghệ wavelet có thể nén
hình ảnh màu sắc ở mức 20: 1 đến 300: 1 và hình ảnh màu xám ở 20: 1 đến 50: 1. Hơn
Nhóm 13_Đề tài 13
Page 23
Xử lý dữ liệu đa phương tiện
nữa, cơ chế nén MPEG4 phức tạp hơn một chút so với các MPEG2. Điều này là do
MPEG4 cần thuật toán tốt hơn để quét và xác định những pixel có thể được loại bỏ, để
giảm kích thước dữ liệu hơn nữa.
Wikipedia liệt kê sau đây là tính năng của MPEG4:
•
MPEG-4 cho phép các nhà phát triển phần mềm và phần cứng khác nhau để tạo
các đối tượng đa phương tiện sở hữu những khả năng tốt hơn về khả năng thích
ứng và linh hoạt để cải thiện chất lượng dịch vụ và công nghệ như truyền hình kỹ
thuật số, đồ họa hoạt hình, World Wide Web và phần mở rộng của họ.
•
Các nhà cung cấp mạng dữ liệu có thể sử dụng MPEG-4 cho minh bạch dữ
liệu. Với sự giúp đỡ của các thủ tục chuẩn, MPEG-4 dữ liệu có thể được giải thích
và chuyển thành dạng tín hiệu khác tương thích với bất kỳ mạng có sẵn.
•
Các định dạng MPEG-4 cung cấp người dùng cuối với một loạt các tương tác với
các đối tượng hoạt hình khác nhau.
•
Tín hiệu Digital Rights Management tiêu chuẩn hóa, nếu không được biết đến
trong cộng đồng như MPEG Quản lý Sở hữu trí tuệ và bảo vệ (IPMP).
MPEG4 đã nhận được khá phổ biến trong những năm qua. Một trong những định dạng
thông dụng nhất của nó là .mp4. MPEG-4 Part 12 được phát triển từ tập tin MOV của
Apple và cuối cùng dẫn đến MPEG-4 Part 14, đó là định dạng MP4. Các MP4 là định
dạng container. Điều này có nghĩa rằng nó có thể được sử dụng để lưu trữ dữ liệu audio
và / hoặc video. MP4 video và âm thanh cũng có thể được xem trực tiếp qua internet.
Nhóm 13_Đề tài 13
Page 24
Xử lý dữ liệu đa phương tiện
MPEG-4/H264 AVC là một phương pháp nén tiên tiến, phát triển trên cơ sở MPEG-4.
Phương pháp này có những ưu điểm nổi bật như:
+ Hiệu suất nén: hiệu suất nén là mục tiêu chính trong MPEG-1, MPEG-2. Do đó ở
H.264/AVC, việc cải tiến hiệu suất mã hóa các luồng dừ liệu sè mở rộng khả năng ứng
dụng của nó trong thực tiễn. Tiêu chuẩn H.264/AVC tiết kiệm lên đến 50% tốc độ bit so
với MPEG-1, MPEG-2, MPEG-4 part 2 khi mã hóa cùng một cấp độ.
+ Khả năng tương tác: cho phép người sử dụng có thể tương tác trực tiếp các nội dung
chương trình đang xem.
+ Kiểu truy nhập phố biến: tăng cường khả năng chống lỗi trong mội truờng khắc nghiệt,
cung cấp các công cụ cần thiết để giải quyết việc mất mát gói dữ liệu trong khi truyền
trong mạng gói và lỗi bit trong môi trirờng không dây.
Một số công cụ được sử dụng để làm tăng hiệu quả nén của phương pháp nén MPEG-4:
+ Dự đoán hệ số AC/DC mà ở đó các hệ số macroblock được dự đoán từ hệ số trong các
macroblock bên cạnh và từ một số dữ liệu trong bản thân macroblock.
+ Nội suy nhiều chiều tạo ra sự thích hợp hơn cho macroblock, do vậy giảm được năng
lượng lưu trong ảnh lỗi, làm giảm số bit cần phải mã hóa. Tuy nhiên, nội suy nhiều chiều
đòi hỏi nhiều thuật toán hơn, sự phức tạp bù chuyển động là cao hơn.
+ Kích thước được thay đổi xuống khối 4x4 cung cấp độ lợi mã hóa.
Nhóm 13_Đề tài 13
Page 25