SỬ DỤNG MODULE ENCODER CỦA JM ĐỂ NÉN FILE VIDEO...5 TÀI LIỆU THAM KHẢO...13... YÊU CẦU BÀI TẬP * Download phần mềm tham khảo cho H.264/AVC tại: http://iphome.hhi.de/suehring/tml/download
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-BÁO CÁO BÀI TẬP MÔN HỌC TRUYỀN THÔNG ĐA PHƯƠNG TIỆN
Học viên: Phạm Văn Thịnh
Lớp: K17 Giáo viên: TS Lê Thanh Hà
Hà Nội - 2011
Trang 2MỤC LỤC
Trang
YÊU CẦU BÀI TẬP 3
1 CÀI ĐẶT VÀ BIÊN DỊCH 4
2 SỬ DỤNG MODULE ENCODER CỦA JM ĐỂ NÉN FILE VIDEO 5
TÀI LIỆU THAM KHẢO 13
Trang 3YÊU CẦU BÀI TẬP
* Download phần mềm tham khảo cho H.264/AVC tại:
http://iphome.hhi.de/suehring/tml/download/jm18.0.zip
* Download file video chuẩn:
http://www.cipr.rpi.edu/resource/sequences/sequences/qcif/yuv/foreman.qcif.gz
* Yêu cầu:
Hãy nén file video trên với cấu hình tham số mặc định của bộ nén (nén 30 frames)
Hãy so sánh hiệu suất nén của hai hệ nén (sử dụng độ đo hiệu năng nén video):
- 1 hệ nén sử dụng 5 reference frame cho motion estimation
- 1 hệ nén sử dụng 1 reference frame cho motion estimation
Trang 41 CÀI ĐẶT VÀ BIÊN DỊCH
a) Phần mềm tham khảo cho H.264/AVC
JM là phần mềm tham khảo chính thức cho H.264/14496-10 AVC Phần mềm này được download tại đường link sau:
http://iphome.hhi.de/suehring/tml/download/jm18.0.zip
Gói phần mềm này chứa các workspace Visual Studio NET sau:
jm_vc7.sln - MS Visual C++ 2003, cho NET 2003 (v7)
jm_vc8.sln - MS Visual C++ 2005, cho NET 2005 (v8)
jm_vc9.sln - MS Visual C++ 2008, cho NET 2008 (v9)
jm_vc10.sln - MS Visual C++ 2010, cho NET 2010
Nên chọn các giải pháp phù hợp theo gói NET
Các workspace này bao gồm các project sau:
lencod: Bộ mã hóa tham khảo cho H.264/AVC
ldecod: Bộ giải mã tham khảo cho H.264/AVC
rtpdump: Công cụ cho việc phân tích nội dung của các gói tin RTP rtp_loss: Công cụ cho việc giả lập gói tin RTP bị mất
Trong báo cáo này, Visual Studio NET 2008 được sử dụng để biên dịch Chọn chế độ biên dịch là Release Lần lượt chọn các project mong muốn (lencod, ldecod, rtpdump, rtp_loss) và chọn vào hình mũi tên màu xanh để bắt đầu quá trình biên dịch
Việc biên dịch tạo ra các tệp nhị phân “lencod.exe”, “ldecod.exe”,
“rtpdump.exe” và “rtp_loss.exe” trong thư mục “bin”
b) File video chuẩn
File video chuẩn được download tại đường link sau:
http://www.cipr.rpi.edu/resource/sequences/sequences/qcif/yuv/foreman.qcif.gz
Trang 52 SỬ DỤNG MODULE ENCODER CỦA JM ĐỂ NÉN FILE VIDEO a) Nén với cấu hình tham số mặc định của bộ nén
File video chuẩn sau khi download và giải nén được lưu tại ổ E theo đường dẫn: “E:\foreman.qcif” Thực hiện nén file video này với cấu hình tham số mặc định của bộ nén (nén 30 frames) Kết quả của quá trình nén như sau:
Trang 7Trong khi đang chạy, bộ mã hóa hiển thị trên màn hình các số liệu thống kê tốc độ/độ méo cho mỗi frame được nén Các kết quả cuối cùng cũng được biểu hiện Một số thông tin chính từ kết quả được thể hiện:
- Input YUV File: E:\foreman.qcif (File cần nén, bao gồm đầy đủ
đường dẫn được cung cấp qua tham số InputFile trong câu lệnh ban đầu)
- Output H.264 bitstream: foreman.264 (File nén từ file ban đầu, được
cung cấp qua tham số OutputFile trong câu lệnh ban đầu Mặc định lưu trong thư mục \JM\bin)
- Frames to be encoded: 30 (Số frame được nén, cung cấp qua tham số
FramesToBeEncoded trong câu lệnh ban đầu)
- Total number of references: 5 (Mặc định sử dụng 5 reference frame cho
motion estimation)
Các số liệu thống kê được tạo ra thể hiện các thông tin sau:
Verbose
Frame %04d($Type) Thứ tự và loại frame hiển thị All
Bit/pic %8d Số bit được cấp phát cho All
Trang 8frame hiện tại
QP %2d Giá trị lượng tử hóa frame All
SnrY %7.3f Luma Y PSNR All
SnrU %7.3f Chroma U PSNR All
SnrV %7.3f Chroma V PSNR All
Time(ms) %7d Tổng thời gian mã hóa cho
MET(ms) %5d Tổng thời gian ước lượng
chuyển động cho frame All
Ref %d Chỉ ra tham chiếu đến ảnh
hiện tại (nal_reference_idc) All
Dữ liệu trung bình tất cả các frame:
- Tổng thời gian mã hóa cho chuỗi: 2028.659 s 34 phút (tương đương
0.01 frame được mã hóa trong 1 giây)
- Tổng thời gian ước lượng chuyển động cho chuỗi: 1897.549 s 32 phút.
- Giá trị Y PSNR: 36.372 dB chất lượng nén video tốt.
- Tổng số bit: 85168 bit (Trong đó, Frame I chiếm 27768 bit, Frame P
chiếm 40248 bit, Frame B chiếm 16832 bit, Frame NVB chiếm 320 bit)
- Bit rate: Mặc định là 85.17 kbit/s.
b) So sánh hiệu suất nén của hai hệ nén
Hệ nén sử dụng 5 reference frame cho motion estimation (Hệ nén 1)
Đầu tiên, sử dụng hệ nén này để nén 30 frame với bitrate = 100.000 (bps)
và được kết quả nén như sau
Trang 99
Trang 10Tiếp tục nén với bitrate = 200.000 (bps), 300.000 (bps), 400.000 (bps), 500.000 (bps), ta có được kết quả như bảng sau:
Trang 11Bitrate (bps) 100.000 200.000 300.000 400.000 500.000
Y PSNR (dB) 37,524 40,239 41,882 43,475 45,505
Hệ nén sử dụng 1 reference frame cho motion estimation (Hệ nén 2)
Tương tự, sử dụng hệ nén này để nén 30 frame với bitrate = 100.000 (bps)
và được kết quả nén như sau
Trang 13Tiếp tục nén với bitrate = 200.000 (bps), 300.000 (bps), 400.000 (bps), 500.000 (bps), ta có được kết quả như bảng sau:
Bitrate (bps) 100.000 200.000 300.000 400.000 500.000
Y PSNR (dB) 34.961 38.758 40.626 42.152 44.858
So sánh hiệu suất nén của hai hệ nén
(30 frames)
Trang 14Dựa vào các kết quả thu được, đường hiệu năng thể hiện quan hệ giữa (bitrate, psnr) của 2 hệ nén như sau:
0
5
10
15
20
25
30
35
40
45
50
Hệ nén 1
Hệ nén 2
Nhìn vào các đường hiệu năng thể hiện quan hệ giữa (bitrate, psnr) của 02
hệ nén, ta có thể kết luận như sau:
- Hệ nén 1(Hệ nén sử dụng 5 reference frame cho motion estimation) có
hiệu năng nén tốt hơn Hệ nén 2(Hệ nén sử dụng 1 reference frame cho motion estimation) Do với cùng Bit rate, Hệ nén 1 luôn có PSNR cao hơn
- Cả 02 hệ nén đều cho chất lượng video tốt (PSNR trung bình khoảng 40
dB, Hệ nén 1 có PSNR trung bình cao hơn)
- Càng dùng nhiều bit để mã hóa (Bitrate càng lớn) thì video càng có
chất lượng tốt (PSNR càng cao)
Bitrate (bps)
(30 frames)
Trang 15TÀI LIỆU THAM KHẢO
1 Alexis Michael Tourapis, H.264/14496-10 AVC Reference Software Manual (revised for JM 18.0), Dolby Laboratories Inc., Fraunhofer-Institute
HHI, Microsoft Corporation, 2010