VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNGB môn Truyền Thông Mạng ộ môn Truyền Thông Mạng Xử Lý Dữ Liệu Đa Phương Tiện Đề tài 10 : Các kỹ thuật xử lý tín hiệu video và mã hóa dự đoán tr
Trang 1VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
B môn Truyền Thông Mạng ộ môn Truyền Thông Mạng
Xử Lý Dữ Liệu Đa Phương Tiện
Đề tài 10 : Các kỹ thuật xử lý tín hiệu video và
mã hóa dự đoán trong nén video.
Giảng viên hướng dẫn : PGS.TS Nguyễn Thị Hoàng Lan
Nhóm sinh viên thực hiên:
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 2
Phân công công việc 3
I Các kỹ thuật xử lý video trong truyền thông 4
II Tìm hiểu chung phương pháp mã dự đoán dùng trong nén video, phân tích đặc điểm của phương pháp dự đoán này so với dự đoán DPCM 5
2.1 Điều xung mã vi sai (DPCM – Differentical Pulse Code Modulation) 5
2.2 Mã hóa dự đoán trong nén video 6
III Phương pháp mã hóa nén video dựa trên phép biến đổi ảnh và kỹ thuật ước lượng và bù chuyển động Giải thích các sơ đồ nén/ giải nén intraframe, interframe 12
3.1 Khái quát về phương pháp nén video 12
3.2 Phân loại các frame video 12
3.3 Phương pháp nén video dùng mã hóa dự đoán Interframe với kỹ thuật ước lượng và bù chuyển động: chuẩn MPEG 13
3.4 Nén video theo chuẩn MPEG-1 14
IV Thử nghiệm ứng dụng 17
4.1 Các công cụ và phần mềm sử dụng 17
4.2 Kịch bản thử nghiệm ứng dụng 17
4.3 Thử nghiệm 18
4.4 Tính toán 19
4.5 Kết quả 19
4.6 Nhận xét 20
TÀI LIỆU THAM KHẢO 21
Trang 3LỜI NÓI ĐẦU
Nén video là chủ đề đã và đang thu hút sự quan tâm của các nhà nghiên cứu trên thế giới Việc tìm giải pháp nén video luôn hướng tới mục tiêu làm sao tăng hiệu quả nén trong khi giảm thiểu sự biến dạng hình ảnh mà quá trình nén gây ra Hai yêu cầu này thường mâu thuẫn với nhau Vì vậy, tùy ứng dụng cụ thể mà người ta chọn giải pháp nén phù hợp để dung hòa giữa hai yếu tố
Trong hệ thống nén video thì bù chuyển động là một bộ phận rất quan trọng, đóng vai trò then chốt, đƣợc Netravali và Robbins đưa ra năm 1997 Bù chuyển động là một kỹ thuật dự đoán hướng theo thời gian, nó ước lượng độ dịch chuyển của mục tiêu chuyển động từ khung tham chiếu đến khung hiện tại Ước lượng chuyển động thu được dự đoán bù chuyển động bằng cách tìm véctơ chuyển động giữa khung tham chiếu và khung hiện tại
Trong đề tài “Các kỹ thuật xử lý tín hiệu video và mã hóa dự đoán trong nén video” chúng ta sẽ tìm hiểu sâu hơn về ước lượng và bù chuyển động
Trang 4Phân công công việc
- Quách Trung Nguyên :
Các kỹ thuật xử lý tín hiệu video trong truyền thông
Tìm hiểu chung phương pháp mã dự đoán dùng trong nén video, phân tích đặc điểm của phương pháp dự đoán này so với dự đoán DPCM
- Phạm Văn Tiến :
Tìm hiểu phương pháp mã hóa nén video dựa trên phép biến đổi ảnh và kỹ thuậtước lượng và bù chuyển động Giải thích các sơ đồ nén/ giải nén intraframe, interframe
- Vũ Trọng Luân :
Thử nghiệm ứng dụng so sánh chất lượng nén video dùng kỹ thuật ước lượng
và bù chuyển động MPEG-1với kỹ thuât nén video không dùng ước lượng và bù chuyển động MJPEG
Trang 5I Các kỹ thuật xử lý video trong truyền thông.
Y(Luminance, gray-scale component) : giới hạn phổ 6.5 MHz
Cr và Cb(Chrominance, color components) : giới hạn phổ 2 MHz
Trang 6Lấy mẫu chính là quá trình rời rạc hoá tín hiệu tương tự Đây là bước chuyển tín hiệu mang thông tin dạng liên tục thành tín hiệu mang thông tin rời rạc, bằng phương pháp lấy mẫu (Sampling) Sao cho tín hiệu rời rạc phải mang đẩy đủ thông tin của tín hiệu tương tự, để tái tạo được thông tin một cách trung thực ở đầu thu.
b) Lượng tử hóa
Là thay thế một tín hiệu tương tự đã được lấy mẫu bằng tập hữu hạn của các mức biên độ, tức là biến đổi tín hiệu biên độ liên tục thành tín hiệu biên độ rời rạc Ưu điểm của lượng tử hóa tín hiệu đã lấy mẫu là giảm được ảnh hưởng của nhiễu
Các mức tín hiệu rời rạc này gọi là mức lượng tử hoá, khoảng cách giữa hai mức lượng tử hoá gọi là bước lượng tử hoá
Sử dụng bộ lượng tử phi tuyến có bước lượng tử lớn dần theo độ lớn mẫuđưa vào lượng tử
II Tìm hiểu chung phương pháp mã dự đoán dùng trong nén video, phân tích đặc điểm của phương pháp dự đoán này so với dự đoán DPCM.
2.1 Điều xung mã vi sai (DPCM – Differentical Pulse Code Modulation).
DPCM là phương pháp nén dữ liệu có mất mát thông tin, cơ sở dựa trên
mã hóa dự đoán, thường đước sử dụng đối với các tín hiệu lấy mẫu có độ tươngquan mạnh (nghĩa là hai mẫu gần nhau là khá tương tự nhau), có quan hệ lân cận giữa các mẫu, như tín hiệu ảnh video, tín hiệu tiếng nói… Như vậy sẽ có nhiều lợi ích khi mã hóa sự khác nhau giữa các mẫu liên tiếp thay cho mã hóa giá trị tuyệt đối của mỗi mẫu
Nguyên tắc của mã hóa dự đoán : Mã hóa sự sai khác giữa các mẫu : mẫu dự đoán theo thời điểm trước và mẫu hiện tại Giá trị mẫu được giải mã dựa trên sự sai khác và giá trị dự đoán ở thời điểm trước nó Như vậy có thể thấy rằng thay vì truyền đi toàn bộ thông tin của các mẫu, ta chỉ truyền đi sự sai khác giữa các mẫu Điều này cho phép đạt được hiệu quả nén cao hơn nhiều sovới việc mã hóa và truyền đi giá trị của từng mẫu riêng biệt
+ Các phương pháp mã hóa DPCM :
- DPCM vòng mở (open-loop DPCM)
Trang 7- DPCM vòng đóng (closed-loop DPCM).
- DPCM dùng bộ dự đoán tuyến tính (Linear Pridection)
2.2 Mã hóa dự đoán trong nén video.
Nguyên lý cơ bản của nó là : Chỉ truyền tải tín hiệu vi sai giữa mẫu đã cho
và trị dự đoán được tạo ra từ các mẫu trước đó Thường được sử dụng cho chuẩn mã hóa video dạng MPEG
+ Ước lượng và bù chuyển động (motion compensation) :
Trong dòng tín hiệu video thông thường, các khung liền nhau thường giống nhau Do vậy trong dự đoán Interframe một chiều tức là lấy khung liền trước làm ảnh dự đoán cho khung liền sau, giá trị dự đoán rất gần giá trị ảnh thực tế dẫn tới sai số dự đoán nhỏ, tốc độ dòng bit dữ liệu nhỏ Khi có chuyển động, các điểm có cùng vị trí trong 2 khung liền nhau là rất khác biệt Do vậy sai
số dự đoán tăng lên , tốc độ bit tăng lên và hiệu suất nén giảm Với trường hợp
là ảnh động, nếu chọn ảnh dự đoán là ảnh liền trước sẽ không hợp lý Để tạo một khung dự đoán tối ưu ở đây ta phải sử dụng khái niệm bù chuyển động Do chuyển động sự tương đồng giá trị khung kề nhau sẽ giảm nhưng nội dung ảnh chỉ thay đổi theo nguyên tắc : vật thể đã xuất hiện ở khung trước chỉ thay đổi vị trí ở khung ảnh kế sau
Quá trình tìm kiếm hướng chuyển động của vật thể gọi là “ước lượng chuyển động” Kết quả về sự chuyển động của vật thể theo 2 hướng x, y được phản ánh bằng giá trị vector gọi là “vector chuyển động” Khi có chuyển động ảnh dự đoán không phải là ảnh kề trước đó mà là ảnh có bù chuyển động
Giá trị sai số dự đoán : P = khung trước đó - khung hiện hành + vector chuyển động Vẫn giữ được giá trị rất nhỏ Ảnh tạo bởi tín hiệu sai số biến đổi có
bù chuyển động đen hơn rất nhiều trường hợp dự đoán không có bù chuyển động
Kỹ thuật bù chuyển động được dùng trong bộ dự đoán DPCM với phương pháp tạo dự đoán Inter Điều này giúp cho hiệu quả nén đạt hiệu suất cao Bộ tạo dự báo ở bên thu có khối nhớ chung (frame memory hoặc frame store ) lưu trữ dữ liệu khung trước đó để tính toán đo đạc chuyển động bằng cách so sánh giữa khung cũ và khung mới Từ đó tạo khung dự báo có bù chuyển động ở đầu ra bộ tạo dự báo
Trang 8Việc thực hiện đo đạc chuyển động ở bên phát căn cứ vào khung hiện tại
mà bên thu chưa có, bởi vậy một phép đo như vậy không thể đồng thời tiến hành ở cả bên thu và bên phát mặc dù thông tin vector chuyển động là cần cho bên thu để tạo dự báo Cho nên thông tin về chuyển động (các vector chuyển động của các MB (Macroblock) được truyền tới bên thu nhờ một kênh phụ
Kỹ thuật dự đoán bù chuyển động đươc sử dụng như là một trong những công cụ mạnh để làm giảm sự dư thừa về không gian và thời gian giữa các khung hình Kết quả dự đoán tốt nhất của một điểm ảnh là dựa trên sự dự đoán bù chuyển động từ một khung hình đã mã hóa được truyền phía trước của
nó Cả hai thông số, sai số chuyển động (biên độ) và các vector chuyển động (hướng chuyển động) đều được truyền tới phía bên nhận
Tuy nhiên do có mối quan hệ tương quan chặt chẽ giữa các điểm ảnh về không gian (trùng về không gian ), một vector chuyển động có thể được dùng cho một khối các điểm ảnh gồm các pixel lân cận nhau
Có ba kiểu khung hình thông dụng: I-frame, B- frame, P-frame
+ I-frame (Intra frame - khung hình độc lập) : I-frame là khung hình được
mã hóa độc lập mà không cần tham khảo tới các khung hình khác Hiệu quả néntín hiệu đạt được do loại bỏ sự thừa kế về không gian ( không có yếu tố thời giantham gia quá trình) I-frame được dùng một cách tuần hoàn để tạo các điểm tựa cho dòng dữ liệu trong quá trình giải mã I-frame cung cấp khả năng truy xuất ngẫu nhiên các điểm trong dữ liệu video nén và cung cấp độ nén vừa phải được dùng với 2 bit mỗi pixel
+ P-frame ( Predicted frame- khung hình dự đoán): P- frame có thể sử dụng các I- frame hay P- frame ngay trước nó để mã hóa Mỗi Macroblock trong P-frame có thể được mã hóa theo kiểu tiên đoán (Predicted) hoặc được mã hóa độc lập (intra-coded) Cũng như I-frame, P-frame được dùng như một tham chiếu cho việc dự đoán B-frame và P-frame kế tiếp P-frame dùng để bù chuyển động và cũng cấp nhiều khả năng nén hơn I-frame do sử dụng cả nén không gian và thời gian P-frame có thể sinh ra các lỗi do P-frame được dự đoán từ I-frame hoặc P-frame trước đó
+ B-frame (Bidirectional frame - khung hình hai hướng) : B-frame là các khung hình sử dụng các khung hình trong quá khứ và tương lai để tham khảo B-frame cung cấp khả năng nén lớn hơn và không sinh ra lỗi do nó không được dùng cho việc tham chiếu
Trang 9Trong chuẩn MPEG, chuỗi các video được chia nhỏ thành nhóm các hìnhảnh hoặc frame (gọi là GOP) Mỗi GOP gồm có ba loại frame là I-frame, P-frame,B-frame Hình 2.1 : Nhóm các frame của video hiển thị theo thứ tự.
Frame I là một frame có sẵn, chúng được sử dụng cố định cho các dự đoán trước và sau Frame P được mã hóa sử dụng dự đoán bù chuyển động một chiều từ frame cố định trước đó (có thể là frame I hoặc P)
Hình 2.2 : Bù chuyển động 1 chiều
Frame B được mã hóa sử dụng dự đoán bù chuyển động hai chiều từ frame trước và frame tiếp sau (frame I và P)
Trang 10Hình 2.3 : Bù chuyển động 2 chiều.
Sự khác nhau cơ bản giữa hai mạch, mạch tạo ảnh dự đoán trước và mạch tạo ảnh dự đoán hai chiều, là bộ nhớ ảnh so sánh Để tạo ảnh dự đoán trước ta chỉ cần nhớ ảnh trước đó Trong khi đó, để tạo được ảnh dự đoán hai chiều ta phải nhớ cả hai ảnh : ảnh trước và ảnh sau ảnh đang xét
Có thể coi ảnh dự đoán hai chiều như là kết quả nội suy giữa hai ảnh để xác định chuẩn của nó Vì để tạo được ảnh dự đoán hai chiều, bộ giải mã phải xác định nội dung của hai ảnh xác định chuẩn của nó, nên sẽ làm thay đổi thứ tựtruyền của các ảnh Bộ mã hóa đầu tiên phải truyền cả hai ảnh chuẩn, sau đó mới truyền đến ảnh dự đoán hai chiều
Điều này dẫn đến kết quả là:
- Bộ mã hóa và giải mã phải đánh số lại các frame lên làm tăng số công viêc
- Bộ mã hóa và giải mã phải dùng bộ nhớ lớn (để có thể lưu trữ các ảnh chuẩn)
Trang 11+ Dự đoán trong khung (Intraframe Prediction)
Hình 2.4 : Dự đoán trong khung
Tạo dự đoán trong khung là phương pháp tạo dự đoán sử dụng tất cả các điểm thuộc cả hai mảnh của một khung để tạo dự đoán Như vậy sẽ lợi dụng được quan hệ tương hỗ của các điểm lân cận theo cả phương ngang và phươngđứng nên dự đoán chính xác hơn, cho sai số dự đoán nhỏ hơn Tuy nhiên
phương pháp này không không tận dụng được quan hệ tương hỗ của các điểm ảnh trong hai khung liên tiếp Do đó, ta có phương pháp tạo dự đoán liên khung (Interframe prediction)
+ Dự đoán liên khung (Interframe prediction)
Hình 2.5 : Dự đoán liên khung
Trang 12Tạo dự đoán liên khung là phương pháp tạo dự đoán dựa vào điểm ảnh cùng tọa độ ở khung trước để tạo dự đoán Do các khung liên tiếp thường có quan hệ tương hỗ lẫn nhau nên phương pháp này cũng cho sai số dự đoán nhỏ.
Tuy nhiên, phương pháp này lại không tận dụng được quan hệ tương hỗ của các điểm ảnh trong cùng một khung Do đó, trong nén video chúng ta
thường sử dụng cả hai phương pháp này song song với nhau vì nó sẽ hỗ trợ nhau trong quá trình tạo dự đoán Giúp ta có được giá trị sai số dự đoán nhỏ nhất có thể làm cho quá trình lượng tử hóa sai số tốt nhất
Hình 2.6 : Sơ đồ khối trong kỹ thuật nén video sử dụng cả phương pháp dự
đoán intraframe và intreframe
Trang 13III Phương pháp mã hóa nén video dựa trên phép biến đổi ảnh và kỹ thuật ước lượng và bù chuyển động Giải thích các sơ đồ nén/ giải nén intraframe, interframe.
3.1 Khái quát về phương pháp nén video
+ Nén video dựa trên phép biến đổi ảnh và kỹ thuật ước lượng và bù chuyển động(MPEG, H26X):
- Kỹ thuật nén ảnh tĩnh, giảm độ dư thừa không gian (mã hóa Intraframe)
- Kỹ thuật đánh giá ước lượng chuyển động và mã hóa để giảm độ dư thừa giữa các frame(mã hóa Interframe)
3.2 Phân loại các frame video
Theo chuẩn MPEG các frame được chia làm 3 loại:
- Frame I(Intraframe): Là frame đầu tiên của chuỗi video, mã hóa JPEG
- Frame P(Predicted frame): Là frame được dự đoán tiếp theo(có kích thước nhỏhơn frame I do được giảm độ dư thừa theo thời gian giữa các frame)
- Frame B(Bi-directional interpolated prediction): Là frame được dự đoán nội suy
2 chiều
Hình 3.1 : Sơ đồ tổng quát nén video
Trang 143.3 Phương pháp nén video dùng mã hóa dự đoán Interframe với kỹ thuật ước lượng và bù chuyển động: chuẩn MPEG
Mô hình tổng quát dựa trên 2 kỹ thuật:
- Kỹ thuật mã hóa intra-frame để giảm độ dư thừa không gian trong một frame
- Kỹ thuật mã hóa inter-frame để giảm độ dư thừa thời gian giữa các frame
-Ước lượng chuyển động và bù chuyển động:
+ Đánh giá chuyển động (Motion Estimation): Xác định vector chuyển động
Hình 3.2 : Sơ đồ nén inter/intra-frame
Trang 15+ Bù chuyển động (Motion Compensation): Khôi phục ảnh bằng cách sử dụng vector chuyển động và sai số chuyển động(phần sai lệch nhỏ nhất giữa 2 ảnh)
Kỹ thuật dự đoán frame
3.4 Nén video theo chuẩn MPEG-1
Hình 3.3 : Sơ đồ nén
Trang 16Hình 3.4 : Nén frame I: nén JPEG
Hình 3.5 : Nén frame P, B
Trang 17Hình 3.6 : Sơ đồ giải nén.
Trang 18- PICVideo M-JPEG Codec 4.0
Là bộ mã dùng để mã hóa và giải mã video theo chuẩn MJPEG Đây làphần mềm đóng các bạn phải trả phí nếu muốn dùng lâu dài Các bạn
có thể download tại địa chỉ sau
- Sau đó ta thay đổi bitrate theo các mức rồi đưa ra đánh giá chất lượngtheo hai chuẩn Mpeg-1 và Mjpeg
- Thực hiện tính toán tỉ số nén, tỉ số dòng bit
- Nhận xét
Trang 194.3 Thử nghiệm.
Kiểm tra thông số video gốc ta có thể thấy video gốc mã hóa theo chuẩnMPEG-4 với độ phân giải khung hình là 720x 408 Bitrate 3 990 Kbps Framerate : 23,976 fps Hệ màu YUV subsampling 4:2:0
Hình 4.1 : Kiểm tra thông số video gốc sử dụng MediaInfo
Trang 20Hình 4.2 : Nén video theo chuẩn Mjpeg sử dụng VirtualDub 1.10.4 cài sẵn bộ mã
hóa và giải mã PICVideo M-JPEG Codec 4.0
Hình 4.3 : Chuyển đổi định dạng video sang Mp1 sử dụng bitrate 1800 Kbps.Thay đổi bitrate xuống 500 Kbps và lặp lại các bước thử nghiệm
Trang 21Ở Bitrate = 500 Kbps Tỉ số nén của video theo chuẩn Mjpeg là 1/25 còncủa Mpeg1 là 1/97 Tỉ số dòng bit là 1/ 340.
4.6 Nhận xét.
Khi Bitrate = 1800Kbps băng mắt thường cảm nhận ta rất khó nhận biếtđược video nén theo chuẩn nào có chất lượng tốt hơn Nhưng sau khi thửnghiệm ở bitrate = 500 Kbps ta có thể nhận thấy chất lượng của video saunén bị giảm rõ rệt và ở đây video nén theo chuẩn Mjpeg có chất lượngkém hơn so với Mpeg-1
Trang 22TÀI LIỆU THAM KHẢO
1 http://inst.eecs.berkeley.edu/~ee290t/sp04/lectures/dpcm_girod.pdf
2 Stephen J Solari - Digital Video and Audio Compression