LỜ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
i
LỜI CÁM ƠN
Luận văn thạc sĩ chuyên ngành công nghệ thông tin với đề tài “Kỹ thuật nén Video
& thử nghiệm dựa trên mã nguồn mở” là kết quả của quá trình cố gắng không
ngừng của bản thân và được sự giúp đỡ, động viên khích lệ của các thầy, bạn bè
đồng nghiệp và người thân. Qua trang viết này tôi xin gửi lời cảm ơn tới những
người đã giúp đỡ tôi trong thời gian học tập - nghiên cứu khoa học vừa qua.
Tôi xin tỏ lòng kính trọng và biết ơn sâu sắc đối với thầy giáo PGS.TS
Nguyễn Văn Tam đã trực tiếp tận tình hướng dẫn cũng như cung cấp tài liệu thông
tin khoa học cần thiết cho luận văn này.
Xin chân thành cảm ơn Lãnh đạo trường Đại học mở Hà Nội, khoa Công
nghệ thông tin đã tạo điều kiện cho tôi hoàn thành tốt công việc nghiên cứu khoa
học của mình.
Cuối cùng tôi xin chân thành cảm ơn đồng nghiệp, đơn vị công tác đã giúp đỡ
tôi trong quá trình học tập và thực hiện Luận văn.
TÁC GIẢ
Vũ Quang Huy
ii
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................. i
LỜI CÁM ƠN .................................................................................................. ii
MỞ ĐẦU .......................................................................................................... 1
CHƢƠNG 1: GIỚI THIỆU VỀ NÉN VIDEO.............................................. 3
1.1. Giới thiệu .................................................................................................... 3
1.2. Độ dư trong tín hiệu video, nhu cầu cần thiết nén video ........................... 4
1.2.1. Độ dư trong tín hiệu video ...................................................................... 4
1.2.3. Nhu cầu cần thiết nén video .................................................................... 7
1.3. Khái niệm về nén video.............................................................................. 7
1.4. Yêu cầu về ứng dụng nén video ................................................................. 8
1.5. Kết luận chương 1 .................................................................................... 10
CHƢƠNG 2: CHUẨN MÃ HÓA, NÉN ẢNH JPEG VÀ MÃ HÓA, NÉN
VIDEO MPEG-4 PART 10/H.264 ................................................................. 11
2.1. Kỹ thuật mã hóa, nén ảnh JPEG .............................................................. 11
2.1.1. Giới thiệu chung .................................................................................... 11
2.1.2. Phương pháp nén ảnh chuẩn JPEG ....................................................... 12
2.2. Chuẩn mã hóa và nén video MPEG-4 Part 10/H.264 .............................. 16
2.2.1 Cấu trúc chuẩn MPEG-4 Part10............................................................. 16
2.2.3. Kỹ thuật nén video MPEG-4 Part 10/ H.264 ........................................ 22
2.3. Kết luận chương 2 .................................................................................... 46
CHƢƠNG 3: THỰC NGHIỆM CHUẨN NÉN VIDEO H.264 TRÊN
CÁC PHẦN MỀM MÃ NGUỒN MỞ ......................................................... 47
3.1. Công cụ nén video mã nguồn mở FFMPEG ............................................ 47
3.1.1. Giới thiệu............................................................................................... 47
3.1.2. Cài đặt FFMPEG trên hệ điều hành Ubuntu 12.04 ............................... 47
3.1.3. Các tham số sử dụng trong FFMPEG ................................................... 50
3.1.4. Nén/giải nén video theo chuẩn H.264 với FFMPEG ............................ 55
3.2. Thực nghiệm và đánh giá kết quả ............................................................ 55
3.2.1. Môi trường mô phỏng và một số kịch bản thực nghiệm ....................... 55
3.2.2. Kết quả thực nghiệm và đánh giá.......................................................... 57
3.3. Kết luận chương 3 .................................................................................... 65
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................... 66
TÀI LIỆU THAM KHẢO ............................................................................ 67
iii
DANH MỤC HÌNH VẼ
Hình 1.1. Nén video trong truyền video...................................................................... 4
Hình 1.2. (a) khung hình thứ nhất và (b) thứ hai của dãy ảnh "Foreman".................. 6
Hình 2.1. Sơ đồ thuật toán nén JPEG........................................................................ 12
Hình 2.2. Sơ đồ thuật toán giải nén JPEG................................................................. 13
Hình 2.3. Cấu trúc phân lớp H.264 ........................................................................... 17
Hình 2.4. Cấu trúc dòng bit. ...................................................................................... 17
Hình 2.5. Minh họa một chuỗi thành phần RBSP..................................................... 18
Hình 2.6. Cấu trúc dòng bit MPEG-4 H.264/AVC ................................................... 21
Hình 2.7. Sơ đồ khối mã hóa H.264/AVC ................................................................ 22
Hình 2.8. Sơ đồ khối giải mã H.264/AVC ................................................................ 23
Hình 2.9. Sơ đồ khối mã hóa ảnh I ........................................................................... 24
Hình 2.10. Phân chia MB - Sub MB cho bù chuyển động........................................ 25
Hình 2.11. Chỉ ra thứ tự sắp xếp của các VOP ......................................................... 25
Hình 2.12. Hiệu ứng mờ dần ..................................................................................... 28
Hình 2.13. Quét Zig-Zag cho kiểu mã hóa frame ..................................................... 34
Hình 2.14. Quét Zig-Zag cho kiểu mã hóa field ....................................................... 34
Hình 2.15. Minh họa quá trình mã hóa xen kẽ .......................................................... 35
Hình 2.16. Trật tự hiện thị của các bức ảnh .............................................................. 36
Hình 2.17. Thứ tự luồng Video khác với trật tự hiển thị .......................................... 36
Hình 2.18. Sơ đồ khối nguyên lý nén ảnh P.............................................................. 37
Hình 2.19. Sơ đồ khối nguyên lý nén ảnh B ............................................................. 38
Hình 2.20. Các mẫu dự đoán trong ảnh B ................................................................. 40
Hình 2.21. Nguyên lý bù chuyển động tực tiếp. Vector chuyển động trước và sau
MVf, MVb tách ra từ MV trong VOP tham chiếu ngược ......................................... 41
Hình 2.22. Hai bức ảnh liên tiếp trong chuỗi Video ................................................. 43
Hình 2.23. Phần dư giữa frame 1 và frame 2 ............................................................ 43
Hình 2.24. Vector chuyển động ................................................................................ 44
Hình 2.25. Minh họa dự đoán liên khối của H.264/AVC. ........................................ 44
Hình 2.26. Chuyển mạch luồng sử dụng slice I ........................................................ 46
Hình 3.1.Giao diện sau khi cài đặt xong FFMPEG trên Ubuntu 12.04 .................... 50
Hình 3.2. Kết quả thực hiện nén video Foreman_CIF.y4m sang H.264................... 58
Hình 3.3. Ví dụ kết quả tính chỉ số PSNR ................................................................ 58
iv
DANH MỤC BẢNG
Bảng 2.3. Các thành phần RBSP............................................................................... 18
Bảng 2.4. Giá trị Qstep được quy định trong tiêu chuẩn. ......................................... 31
Bảng 2.5. Bảng giá trị thừa số co dãn V ................................................................... 33
Bảng 3.1. Các tham số cho bộ mã hóa x264 ............................................................. 56
Bảng 3.2. Kết quả nén video 1-pass với video NEWS ............................................. 59
Bảng 3.3. Kết quả nén video 2-pass với video NEWS ............................................. 60
Bảng 3.4. Kết quả nén video 1-pass với video FOREMAN ..................................... 61
Bảng 3.5. Kết quả nén video 2-pass với video FOREMAN ..................................... 62
Bảng 3.6. Kết quả nén video 1-pass với video BUS ................................................. 63
Bảng 3.7. Kết quả nén video 2-pass với video BUS ................................................. 64
v
BẢNG KÝ HIỆU, CHỮ VIẾT TẮT
Ký hiệu, viết
tắt
AVC
CBP
DCT
ECC
FFMPEG
HD
HVS
IDR
IEC
IEC
ITU
IDCT
JM
JPEG
MAE
MSE
MPEG
MB
NGN
NTSC
NAL
PSNR
VLC
VCL
Ý nghĩa tiếng Anh
Ý nghĩa tiếng Việt
Advanced Video Coding
Code Block Pattern
Discrete Cosine Tranform
Error Correction Code
Fast Forward MPEG
High Definition
Human Visual System
Instantaneous Decoding Refresh
International Electrotechnical
Commission
International Electrotechnical
Commission
International
Telecommunication Union
Inverse Discrete Cosine
Tranform
Joint Model
Joint Photographic Experts
Group
Mean Absolute Error
Mean Squared Error
Moving Picture Experts Group
Macro Block
Next Generation Network
National Teltevision System
Committee
Mã hóa video tiên tiến
Loại khối được mã hóa
Biến đổi cosin rời rạc
Mã sửa sai
Network Abstraction Layer
Peak Signal-to-Noise Ratio
Variable Length Coding
Video Coding Layer
vi
Độ phân giải cao, độ nét cao
Hệ thống nhìn của con người
Giải mã ngay lập tức
Ủy ban Kỹ thuật điện tử quốc tế
Ủy ban Kỹ thuật điện tử quốc tế
Liên minh Viễn thông quốc tế
Biến đổi Cosin rời rạc ngược
Nhóm các chuyên gia xử lý ảnh
Sai số trung bình tuyệt đối
Sai số toàn phương trung bình
Nhóm các chuyên gia hình ảnh động
Khối marco
Mạng thế hệ mới
Hệ video được sử dụng ở Bắc và
Nam Mỹ với tần số quét ngang là
60MHz
Lớp mạng trừu tượng
Tỉ số tín hiệu cực đại trên nhiễu
Mã chiều dài thay đổi
Lớp mã hóa video
MỞ ĐẦU
1. Lý do lựa chọn đề tài
Những năm gần đây, truyền tải và lưu trữ video càng trở nên phổ biến hơn
do một số yếu tố như giá thành các sản phẩm liên quan như máy quay video HD,
TV màn hình lớn, các thiết bị lưu trữ… đang giảm rất nhanh. Bên cạnh đó, các bộ vi
xử lý mới có tốc độ cao hơn rất nhiều, cùng với tốc độ Internet được cải thiện đáng
kể giúp việc tải một bộ phim nhanh chóng và xem mượt mà hơn. Nhưng chừng đó
là không đủ, nhu cầu cuộc sống luôn ngày càng lớn, trước đây việc thưởng thức các
bộ phim ở độ phân giải 480p rồi đến mHD 720p đã là thỏa mãn, thì giờ đây các film
độ phân giải Full HD 1080p đã tràn ngập. Nhu cầu đó càng thể hiện mạnh mẽ hơn
khi 2 năm gần đây xuất hiện các TV với công nghệ hình ảnh 4K với độ phân giải
siêu cao làm người xem phải ngẩn ngơ như lạc vào thế giới thực. Các thiết bị lưu
trữ và đường truyền Internet với áp lực phải lớn hơn đã không kịp đáp ứng và bức
thiết cần có một chuẩn nén video mới hiệu quả hơn giảm tải cho áp lực này.
Chính vì điều đó học viên đã chọn đề tài: "Kỹ thuật nén video và thử
nghiệm dựa trên mã nguồn mở" để tìm hiểu, nghiên cứu, và đưa ra được giải pháp
thích hợp khi xử lý video dựa trên những tri thức đã tìm hiểu được.
2. Mục đích của đề tài
- Nghiên cứu tìm hiểu các chuẩn nén hình ảnh, video.
- Thử nghiệm với hình ảnh, video để đưa ra được sự so sánh về chất lượng
cũng như hiệu quả của các phương pháp.
3. Đối tƣợng và phạm vi nghiên cứu
- Các công nghệ nén hình ảnh và video.
- Các chuẩn MPEG.
- Chuẩn nén hình ảnh JPEG.
4. Phƣơng pháp nghiên cứu
- Thu thập, phân tích và tổng hợp các tài liệu, thông tin về đề tài.
- Xây dựng chương trình thử nghiệm cho phương pháp biểu diễn nén video
dựa trên phần mềm mã nguồn mở.
1
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Làm chủ về một số giải pháp nén ảnh, video
- Là tài liệu tham khảo về lĩnh vực nén ảnh, video
- Đề tài có ý nghĩa công nghệ và thực tiễn.
6. Cấu trúc luận văn
Nội dung luận văn gồm phần mở đầu, kết luận và 03 chương:
Chương 1. Tổng quan về nén video: giới thiệu vai trò, vị trí, yêu cầu, mô
hình hệ thống và một số kỹ thuật nén video.
Chương 2. Chuẩn mã hóa, nén ảnh JPEG và chuẩn nén video MPEG-4 Part
10/H.264: trình bày về kỹ thuật nén hình ảnh dựa trên chuẩn JPEG và chuẩn nén
video chất lượng cao H.264 (MPEG-4 Part10).
Chương 3. Xây dựng ứng dụng thử nghiệm: tiến hành cài đặt và thử nghiệm
ứng dụng nén video theo chuẩn H.264 dựa trên các phần mềm mã nguồn mở nổi
tiếng nhất hiện nay như FFMPEG và JM version 19.0. Đưa ra các đánh giá về chất
lượng (dựa trên các chỉ số Q, PSNR, MSE...), tốc độ, dung lượng ... của video được
nén và giải nén theo chuẩn H.264.
2
CHƢƠNG 1: GIỚI THIỆU VỀ NÉN VIDEO
1.1. Giới thiệu
Để truyền được các chương trình video trên các hệ thống thông tin di
động,một bài toán đặt ra là phải nén hình ảnh để tiết kiệm băng tần truyền dẫn mà
vẫn đảm bảo chất lượng hình ảnh. Đây là một yêu cầu đã và đang được nhiều nhà
nghiên cứu quan tâm. Truyền dẫn số tín hiệu ảnh động qua các hệ thống vệ tinh đã
được nghiên cứu từ năm 1990, trong đó nén video bằng phương pháp mã hoá đóng
vai trò rất quan trọng. Cho đến nay, khi các hệ thống thông tin di động 3G và hệ
thống NGN ra đời cho phép truyền các chương trình video trên đó thì việc nghiên
cứu tìm ra các giải pháp nén mới càng đòi hỏi cấp thiết hơn bao giờ hết. Nhóm
chuyên gia về hình ảnh động (MPEG) đã hoàn thiện hai bộ tiêu chuẩn về mã hoá
video là MPEG-1 và MPEG-2, xác định các phương pháp truyền thông tin video số
theo các định dạng truyền hình và đa môi trường. Ngày nay MPEG-4 đang nhắm
vào việc truyền video tốc độ bit rất thấp; còn MPEG-7 đưa ra chuẩn hoá trong các
dịch vụ lưu trữ và phục hồi video. Trong hoàn cảnh mạng thế hệ mới NGN và di
động thế hệ sau tiếp tục đòi hỏi phải hoàn thiện hơn các thuật toán nén - giải tín
hiệu video số với mục đích làm cho chất lượng hình ảnh tốt hơn, băng tần truyền
dẫn thấp hơn.
Nén video số là một quá trình trong đó người ta tìm các giải pháp để giảm số
lượng số liệu biểu thị hình ảnh video để đáp ứng tốc độ bit yêu cầu mà vẫn đáp ứng
chất lượng video được khôi phục ở phía thu phải thỏa mãn yêu cầu ứng dụng và độ
phức tạp tính toán. Hình 1.1 biểu thị sơ đồ khối chức năng nén số liệu video trong
hệ thống truyền dẫn. Nén video có nhiệm vụ rất quan trọng vì lượng dư của số liệu
trong các hình ảnh nguyên thủy thường lớn hơn nhiều dung lượng mà các thiết bị
điện tử ngày nay có thể xử lý.
Ta cũng biết rằng thông tin và số liệu là hai khái niệm khác nhau nhưng liên
quan chặt chẽ với nhau. Số liệu biểu thị thông tin và chất lượng số liệu có thể đo
được. Nội dung của số liệu video thường được đo bằng số đơn vị bit; còn thông tin
3
được xác định bằng sự nhận biết. Như vậy toàn bộ số liệu biểu thị sự nhận biết, tuy
vậy nó cũng có đơn vị đo của nó.
Đầu vào
Nén Video
Truyền
Tái cấu trúc
hoặc
số liệu
Đầu ra
Lưu trữ
Hình 1.1: Nén video trong truyền video
Tốc độ bit hay còn gọi là tốc độ mã hóa là một tham số quan trọng trong nén
video và thường được biểu thị bằng đơn vị bit/giây. Trong mã hóa nguồn tin, đôi lúc
tốc độ bit được biểu thị bit trên ký hiệu. Chất lượng hình ảnh được cấu trúc lại ở
phía thu phụ thuộc vào ứng dụng vì vậy sẽ có loại nén tổn thất và nén không tổn
thất. Trong ứng dụng truyền các ảnh động, các chương trình truyền hình thì cho
phép một lượng tổn thất nào đó. Từ định nghĩa này, ta có thể nhận thấy rằng nén số
liệu video có một số khái niệm cơ bản bao gồm: thông tin, số liệu, chất lượng nhìn
được của video và độ phức tạp tính toán. Chương này tập trung vào một số vấn đề
chính như sau:
- Phân tích độ dư trong tín hiệu video, nhu cầu cần thiết nén video.
- Khái niệm về nén video.
- Yêu cầu về ứng dụng nén video và một số kỹ thuật nén video.
1.2. Độ dƣ trong tín hiệu video, nhu cầu cần thiết nén video
1.2.1. Độ dư trong tín hiệu video
1.2.1.1. Độ dư thống kê của ảnh
Độ dư thống kê có thể được phân thành hai kiểu: độ dư giữa các pixel và độ
dư mã hóa. Độ dư giữa các pixel có nghĩa là các pixel của một khung ảnh và các
pixel của một nhóm các khung ảnh hoặc video liên tiếp không độc lập thống kê với
nhau. Trái lại, chúng tương quan với nhau theo mức độ khác nhau. Kiểu tương quan
giữa các pixel như vậy được coi là độ dư giữa các pixel. Độ dư giữa các pixel có thể
4
được chia thành hai loại: độ dư không gian và độ dư thời gian. Độ dư mã hoá là độ
dư thống kê liên quan đến các kỹ thuật mã hóa.
-
Độ dư không gian
Độ dư không gian thể hiện mối tương quan thống kê giữa các pixel trong một
khung ảnh. Do đó nó còn được gọi là độ dư ngoài khung. Ta biết rằng các giá trị
cường độ của các pixel thuộc một hàng (hoặc một cột) có hệ số tự tương quan rất
cao (gần bằng độ tự tương quan cực đại là 1) với các giá trị cường độ của các pixel
thuộc chính hàng đó (hoặc chính cột đó) nhưng bị dịch đi một pixel. Điều này
không hề bất ngờ bởi vì hầu hết các giá trị cường độ thay đổi liên tục từ pixel này
đến pixel khác trong một khung ảnh, ngoại trừ các miền rìa .
Độ dư không gian ngụ ý rằng giá trị cường độ của một pixel có thể được ước
lượng theo giá trị cường độ của các pixel lân cận nó. Nói một cách khác, người ta
không cần miêu tả từng pixel trong khung ảnh một cách độc lập. Thay vào đó,
người ta có thể dự đoán một pixel từ các pixel ở bên cạnh nó. Mã hóa dự đoán là
một loại mã hóa vi sai dựa vào nhận xét này. Thành quả trực tiếp của việc nhận biết
độ dư không gian là bằng cách loại bỏ một số lượng lớn độ dư thừa trong một
khung ảnh, chúng ta có thể tiết kiệm được rất nhiều dữ liệu trong việc biểu thị
khung, vì vậy đạt được việc nén dữ liệu.
-
Độ dư thời gian
Độ dư thời gian có liên quan với tương quan thống kê giữa các pixel của các
khung liên tiếp trong một dãy ảnh hoặc video theo thời gian. Vì vậy nó còn được
gọi là độ dư giữa các khung.
Xét một dãy ảnh theo thời gian, với điều kiện là khoảng thời gian giữa hai
bức ảnh đủ ngắn, tức là các bức ảnh được chụp đủ dày đặc, chúng ta có thể hình
dung rằng đặc điểm giống nhau giữa hai khung là rất lớn. Hình 1.2 (a) và hình 1.2
(b) tương ứng với hai khung hình liên tiếp của video “Foreman”. Các khung có độ
phân giải là 176×144. Từ khung hình a sang khung hình b, trong tổng số 25.344
pixel chỉ có 3,4% thay đổi giá trị xám vào khoảng hơn 1% của giá trị xám cực đại
(trong trường hợp này là 255). Như vậy đối với tín hiệu giống như điện thoại video
5
có dịch chuyển vừa phải trong cảnh, trung bình có ít hơn 10% pixel thay đổi các giá
trị xám giữa hai khung liên tiếp vào khoảng 1% tín hiệu đỉnh.
Hình 1.2: (a) khung hình thứ nhất và (b) thứ hai của dãy ảnh "Foreman"
Điều đó dẫn ta tới suy nghĩ là có thể dự đoán một khung từ các khung cạnh
nó theo miền thời gian bằng cách mã hóa dự đoán trong khung và cũng giúp nghiên
cứu sinh hướng tới ý tưởng sử dụng hàm tương quan giữa các pixel để ước lượng sự
chuyển động của các khung kế tiếp nhau.
-
Độ dư mã
Như đã nói ở trên, độ dư giữa các pixel liên quan đến độ tương quan giữa các
pixel. Điều đó có nghĩa rằng một số thông tin liên quan đến các pixel là thừa. Độ dư
về khả năng nhìn có liên quan đến những thông tin dư thừa về mặt nhìn thấy được,
tức là với nó hệ thống nhìn của con người (HVS) không nhạy. Do vậy, rõ ràng cả
hai độ dư là độ dư giữa các pixel và độ dư khả năng nhìn vì một lý do nào đó gắn
với một số thông tin chứa trong hình ảnh và video. Loại bỏ các độ dư này hoặc sử
dụng các mối tương quan này bằng cách sử dụng số bit ít hơn để biểu diễn thông tin
sẽ cho ta kết quả nén dữ liệu hình ảnh và video. Với nghĩa đó thì độ dư mã là khác,
nó không thực hiện việc gì đối với sự dư thừa thông tin mà nó thực hiện với việc
biểu diễn thông tin, nghĩa là chính việc mã hoá. Từ việc nghiên cứu độ dư mã, rõ
ràng là chúng ta nên tìm kiếm các kỹ thuật mã hiệu quả hơn để nén dữ liệu hình ảnh
và video. Mã Huffman và mã số học là hai kỹ thuật mã hóa VLC thường được dùng
trong xử lý ảnh và video.
6
1.2.2. Độ dư khả năng nhìn thấy
Trong khi độ dư giữa các pixel vốn đã có trong số liệu hình ảnh và video, độ
dư khả năng nhìn thấy bắt nguồn từ các đặc trưng về hệ thống nhìn của con người.
Ta biết rằng HVS cảm nhận được thế giới bên ngoài theo một cách thức khá phức
tạp. Đáp ứng của nó đối với các tác nhân nhìn không phải là một hàm tuyến tính
theo cường độ của một vài thuộc tính vật lý, như độ sáng và màu. Năng lực tri giác
của HVS khác hẳn với độ nhạy của camera. Trong HVS, thông tin nhìn thấy không
được cảm nhận như nhau, một số thông tin có thể quan trọng hơn một số thông tin
khác. Điều đó có nghĩa rằng nếu chúng ta sử dụng ít dữ liệu hơn để biểu diễn những
thông tin ít quan trọng hơn về nhìn thấy thì khả năng cảm nhận sẽ không bị ảnh
hưởng. Theo nghĩa đó, chúng ta thấy rằng một số thông tin có liên quan đến thị giác
là dư thừa về khả năng nhìn thấy. Loại bỏ sự dư thừa khả năng nhìn thấy này chính
là nén dữ liệu.
1.2.3. Nhu cầu cần thiết nén video
Những thành tựu đạt được trong công nghệ điện tử - viễn thông - tin học đã
tạo điều kiện phát triển các kỹ thuật truyền video đáp ứng nhu cầu ngày càng tăng
trong các ứng dụng cuộc sống hàng ngày như điện thoại video, hội nghị video,
truyền hình độ phân giải cao… Video là một dãy các khung ảnh bao gồm một lượng
khổng lồ các số liệu, ví dụ mỗi khung video có độ phân giải 288 dòng và 352 pixel
trên một giây. Mỗi một màu trong ba màu chính (đỏ, xanh, xanh da trời) được biểu
thị bằng 1 pixel có 8 bit và thông thường tốc độ khung truyền là 30 khung trên một
giây để tạo ra video chuyển động liên tục. Tốc độ bit yêu cầu là: 288×352×8×3×30
= 72.990.720 bit/s. Do đó tỷ số giữa tốc độ bit cần thiết và tốc độ bit có thể lớn nhất
khoảng 1289 lần. Điều này chứng tỏ rằng chúng ta cần phải nén số liệu video ít nhất
là 1289 lần để truyền được trên mạng viễn thông.
1.3. Khái niệm về nén video
Các phương tiện liên lạc video qua kênh thông tin số thế hệ mới yêu cầu rất
lớn về việc truyền thông tin. Nén video được xem xét ở đây bao hàm việc làm giảm
tốc độ bit mã tín hiệu video số mang thông tin nhìn được hoặc loại bỏ các phần tử
7
dư thừa trong tín hiệu. Mức độ mà bộ mã hoá làm giảm tốc độ bit được gọi là hiệu
suất mã và nghịch đảo của hiệu suất mã được gọi là tỷ số nén:
Nén có làm tổn thất hoặc không làm tổn thất thông tin. Tổn thất thông tin thường
được tính bằng sai số trung bình bình phương (MSE), sai số tuyệt đối trung bình
(MAE) hoặc tỷ số tín hiệu đỉnh trên nhiễu (PSNR):
∑ ∑(
)
, với ảnh I và ảnh tái cấu trúc của nó (P), cỡ ảnh là NxM pixel và
và
n bit/pixel (với các ảnh dạng PGM thì n=8).
∑ ∑(
)
⌊
⌋
Các tín hiệu video chứa thông tin ba chiều được mô hình trong miền không
gian và thời gian trong quá trình mã hoá. Các phương pháp nén video số đặt mục
tiêu sao cho tối thiểu hoá lượng tin dư thừa mà không phụ thuộc vào mỗi miền đã
nói ở trên.
1.4. Yêu cầu về ứng dụng nén video
Hiện nay có nhiều ứng dụng video số khác nhau, chúng trải rộng từ các ứng
dụng có yêu cầu đơn giản với độ phân giải thấp và độ rộng băng tần thấp (thiết bị đa
phương tiện, điện thoại thấy hình) đến các ứng dụng có yêu cầu độ phân giải rất cao
và độ rộng băng tần cao (HDTV).
Độ rộng băng tần cần thiết của tín hiệu TV số gần bằng một nửa số phần tử
ảnh (pixel) xuất hiện trên một giây. Cỡ pixel tương tự theo chiều đứng là khoảng
cách giữa các đường quét và theo chiều ngang là khoảng cách vết quét chuyển động
8
trong khoảng thời gian một nửa chu kỳ của tần số truyền tín hiệu video cao nhất. Độ
rộng băng tần cho bởi [1]:
(
trong đó
)
là độ rộng băng tần hệ thống, FR là số khung đã phát đi trên một giây
(fps), NL là số đường quét trên một khung, RH là phân giải ngang tỷ lệ với phân giải
pixel. Theo tiêu chuẩn NTSC thì FR = 29,97 fps, NL = 525 đường, RH = 340 đường
thì Bw = 4,2 MHz.
Đối với pixel màu số gồm 3 thành phần: thành phần độ chói (Y) chiếm 8 bit
và hai thành phần màu khác (U và V), mỗi thành phần yêu cầu 8 bit. Khung ảnh
NTSC có tổng cộng 720×480×2 pixel độ chói và màu. Để truyền thông tin này trên
hệ thống truyền hình NTSC với tốc độ 29,97 khung/giây thì yêu cầu độ rộng băng
tần là [1]:
(
)(
)
Độ rộng băng tần truyền các tín hiệu NTSC hiện nay là 6 MHz còn HDTV là
12 MHz [1].
Một số yêu cầu đối với hệ thống nén video:
- Các đặc tính video: Các tham số video như giải động, các thông số thống kê
của nguồn, độ phân giải pixel và nhiễu ảnh hưởng đến hiệu năng của hệ thống nén.
- Yêu cầu truyền dẫn: Các yêu cầu về tốc độ bit truyền xác định năng lực của
hệ thống nén. Các yêu cầu rất cao về độ rộng băng tần truyền dẫn, dung lượng bộ
nhớ hoặc chất lượng có thể phải đòi hỏi nén không tổn thất. Ngược lại, các yêu cầu
tốc độ bit cực kỳ thấp có thể phải đòi hỏi các hệ thống nén đánh đổi chất lượng ảnh
để có tỷ số nén lớn. Ngoài ra, các lỗi kênh cũng ảnh hưởng đến hiệu năng của hệ
thống và chất lượng video tái cấu trúc. Để làm giảm ảnh hưởng của các lỗi kênh
người ta thường dùng mã sửa sai (ECC).
9
- Các đặc tính và hiệu năng của hệ thống nén: Căn cứ vào đặc điểm ứng dụng
video mà người ta đưa ra các yêu cầu đối với hệ thống nén video. Các ứng dụng
video tương tác như hội nghị video thì đòi hỏi các hệ thống nén phải có khả năng
đối xứng. Nghĩa là mỗi phần trong đoạn video tương tác phải có cùng khả năng mã
hoá và giải mã video và các yêu cầu năng lực hệ thống phải đáp ứng cho cả bộ mã
hoá và bộ giải mã. Trái lại, truyền hình video yêu cầu năng lực của máy phát phải
rất cao vì nó phải đáp ứng việc cung cấp video được nén với chất lượng cao, thời
gian thực phù hợp với dung lượng kênh truyền dẫn. Các yêu cầu thực hiện hệ thống
video số có thể thay đổi một cách đáng kể. Hội nghị truyền hình qua máy tính có thể
được thực hiện bằng cách dùng phần mềm cho việc mã hoá và giải mã hoặc dùng
phần cứng chuyên dụng và các năng lực truyền dẫn để đạt được chất lượng cao. Để
chọn được giải pháp tốt nhất cần phải phân tích tỷ mỉ toàn bộ hệ thống và các
phương án mã hoá.
- Yêu cầu về tỷ lệ méo: Đây là yêu cầu cơ bản trong việc lựa chọn bộ mã
video. Bộ mã video phải có khả năng đáp ứng được tốc độ bit và độ trung thực của
hình ảnh theo yêu cầu của ứng dụng.
- Yêu cầu về tiêu chuẩn: Bộ mã hoá video phải tương thích với các tiêu
chuẩn hiện tại và tương lai để có thể cùng hoạt động được với các hệ thống hiện tại
hoặc trong tương lai.
1.5. Kết luận chƣơng 1
Chương 1 của luận văn đã giới thiệu chung về bài toán nén video trong các
hệ thống truyền tin, từ đó diễn tả một cách tổng quan nhất tại sao phải nén tín hiệu
video trước lúc truyền dẫn, các tham số có thể tác động vào để giảm lượng tin thừa
trong tín hiệu, các tham số để đánh giá kết quả nén, chương 1 đã giới thiệu:
- Độ dư trong tín hiệu video và sự cần thiết phải nén video.
- Phân tích các yêu cầu về ứng dụng nén video.
10
CHƢƠNG 2: CHUẨN MÃ HÓA, NÉN ẢNH JPEG VÀ MÃ HÓA,
NÉN VIDEO MPEG-4 PART 10/H.264
2.1. Kỹ thuật mã hóa, nén ảnh JPEG
2.1.1. Giới thiệu chung
Nén trong ảnh là loại nén làm giảm bớt thông tin dư thừa trong miền không
gian. Nén trong ảnh sử dụng cả hai quá trình có tổn thất và không tổn thất thông tin.
Quá trình này không sử dụng thông tin các ảnh trước và ảnh sau của ảnh đang xét.
Trong đó kỹ thuật chính là phương pháp biến đổi DCT.
Tiêu chuẩn JPEG – Định dạng ảnh JPEG là một tiêu chuẩn nén ảnh được
phát triển bởi Nhóm chuyên gia xử lý ảnh (Joint Photographic Experts Group –
JPEG) thành lập năm 1986 với sự hợp tác của các tổ chức ITU (International
Telecommunication Union – Liên minh Viễn thông quốc tế), ISO (International
Organization for Standardization – Tổ chức tiêu chuẩn quốc tế) và IEC
(International Electrotechnical Commission - Ủy ban Kỹ thuật điện tử quốc tế),
và do đó tiêu chuẩn được đặt tên của nhóm JPEG. Chuẩn JPEG được công nhận là
chuẩn ảnh quốc tế năm 1990 phục vụ các ứng dụng truyền ảnh cho các lĩnh vực như
y học, khoa học, kỹ thuật, ảnh nghệ thuật, báo chí, camera số, Fax màu, lưu trữ
ảnh… Hiện nay có 3 phiên bản về JPEG được công bố như sau:
- Tiêu chuẩn JPEG năm 1992: sử dụng mã hóa ảnh tĩnh liên tục có tổn thất
(lossy) dựa trên biến đổi cosin rời rạc DCT, đã được ITU công bố là một tiêu chuẩn
viễn thông ITU-T Recommendation T.81 và được công nhận là tiêu chuẩn quốc tế
với tên chính thức là ISO/IEC 10918-1:1994. Mục tiêu của tiêu chuẩn JPEG năm
1992 là hỗ trợ nén ảnh với nhiều kích cỡ/không gian màu sắc, với tỉ lệ nén theo yêu
cầu người dùng, hỗ trợ tái tạo lại ảnh với chất lượng cao và hỗ trợ quản lý mức độ
phức tạp tính toán khi nén ảnh.
- Tiêu chuẩn JPEG-LS: sử dụng mã hóa ảnh tĩnh liên tục không tổn thất
(lossless) và tổn thất ít (nearlossless) dựa trên mã hóa tiên đoán và mã hóa ngẫu
nhiên, đã được công bố là tiêu chuẩn quốc tế ISO/IEC IS 14495-1|ITU-T
Recommendation T.87.
11
- Tiêu chuẩn JPEG 2000: sử dụng mã hóa co giãn (scalable) ảnh tĩnh liêntục
(từ có tổn thất đến không tổn thất) dựa trên biến đổi wavelet. Tiêu chuẩn JPEG
2000 không chỉ cung cấp khả năng nén ảnh với chất lượng và hiệu quả cao hơn hệ
thống cơ bản JPEG mà nó còn có khả năng biểu diễn một ảnh với nhiều tính năng
hơn, hỗ trợ trong cùng bit-stream (chuỗi bit được mã hóa hoặc giải mã một phần
chứa đoạn mã hóa dữ liệu ngẫu nhiên) đáp ứng được rất nhiều ứng dụng hiện có và
ứng dụng mới.
2.1.2. Phương pháp nén ảnh chuẩn JPEG
Mã hóa JPEG bao gồm nhiều công đoạn, sơ đồ thuật toán nén và giải nén
được mô tả dưới đây.
Hình 2.1: Sơ đồ thuật toán nén JPEG
Quá trình giải nén sẽ được làm ngược lại, người ta giải mã từng phần ảnh
nén tương ứngvới phương pháp nén đã sử dụng trong phần nén nhờ các thông tin
liên quan ghi trong phần header của file nén. Kết quả thu được là hệ số đã lượng tử.
Các hệ số này được khôi phục về giá trị trước khi lượng tử hóa bằng bộ tương tự
hóa. Tiếp đó đem biến đổi Cosin ngược ta được ảnh ban đầu với độ trung thực nhất
định.
12
Hình 2.2: Sơ đồ thuật toán giải nén JPEG
Bảng mã và bảng lượng tử trong sơ đồ giải nén được dựng lên nhờ những
thông tin ghi trong phần cấu trúc đầu tệp (Header) của tệp ảnh nén. Quá trình nén
chịu trách nhiệm tạo ra và ghi lại những thông tin này. Phần tiếp theo sẽ phân tích
tác dụng của từng khối trong sơ đồ.
Phân khối
Chuẩn nén JPEG phân ảnh ra các khối 8x8. Công đoạn biến đổi nhanh Cosin
hai chiều cho các khối 8x8 tỏ ra hiệu quả hơn.
Biến đổi Cosin rời rạc ( Discrete cosine transform)
DCT là phép biến đổi giá trị một khối các điểm ảnh thành một khối các hệ số
trong miền tần số.
Công thức tính toán cho DCT 2 chiều với ma trận vuông giá trị điểm NxN
sinh ra ma trận vuông hệ số như sau:
√
∑
∑
[
Trong đó
F(u,v) = Hệ số của khối DCT NxN
f(x,y) = Giá trị mẫu của khối NxN điểm ảnh
u = Tần số trục ngang (0
- Xem thêm -