Bộ mã hóa, công cụ cơ bản

Một phần của tài liệu Nghiên cứu về định dạng nén video VP8 (Trang 35)

3.1.1.1. Bộ mã hóa

Việc chọn lựa không chỉ là việc chọn bộ mã nào mà còn cả việc thực hiện nó để phân tích chính xác theo chuẩn VP8. Như x264 là một bộ mã nguồn mở có sẵn của H.264 nên được chọn lựa cho việc thiết lập chuẩn H.264.

Cũng như bộ mã nguồn mở của x264, VP8 cũng có một bộ mã nguồn mở của chính nó theo thư viện libvpx có thể tìm thấy trên trang WebM [18]. Bộ mã nguồn mở cho VP8 trong công cụ ffmpeg sử dụng cấu hình libvpx và vpxenc (vpx encoder). Việc lựa chọn công cụ theo phiên bản VP8 mới nhất nhằm có được sự so sánh chính xác giữa hai bộ mã hóa.

3.1.1.2. Các công cụ cơ bản

Có nhiều thông tin cần được thống kê cho nên việc quyết định phương pháp thu nhận thông tin phù hợp là vô cùng quan trọng nhằm đảm bảo tính chính xác trong việc so sánh.

Công cụ qpsnr thu thập PSNR và SSIM của mỗi khung hình khi được đem so sánh với khung tham chiếu. Do vậy qpsnr được sử dụng cho việc thống kê thông tin.Các giá trị PSNR và SSIM trung bình được tính trên tổng các khung hình thu được bởi công cụ qpsnr. Phương sai sẽ được tính theo công thức 3.3.1 trong phần 3.2.1 [8].

MediaInfo được sử dụng như là một công cụ để xem thông tin file video gồm tốc độ bít trung bình của luồng video mà không bao gồm thông tin mào đầu. Trong một số so sánh, tốc độ bít được giữ không thay đổi ở cả hai bộ mã hóa. Để làm được điều này, VP8 sẽ được mã hóa trước để thu được thông tin tốc độ. Sau đó x264

35 Vương Gia Thiết

được sử dụng để mã hóa chính xác tốc độ bit đó. MediaInfo được sử dụng để xác định những tốc độ bít trung bình nào là tương đương.

Bảng 3.1. Phiên bản phần mềm được sử dụng

Phần mềm Phiên bản Thƣ viện tham chiếu

x264 0.115.1995cle60b9 [11] libswscale 0.11.0 libavformat 52.64 gcc 4.4.5 Vpxenc 0.9.6 [12] gcc 4.4.5 JM Reference 18.6 MediaInfo 0.7.44 Qpsnr 0.2.1 libwscale 0.11.0 libavformat 52.64.2 gcc 4.4.5

Trong bảng 3.1, x264 được chọn lựa là phiên bản mới nhất của chuẩn H.264. Với chuẩn VP8 thì chọn phiên bản ổn định vừa cập nhật ra gần đây nhất là phần mềm được chọn là JM Reference Software18.6 là phiên bản mới nhất ở thời điểm hiện tai.

Để thiết lập thủ tục cho việc so sánh giữa VP8 và H.264, chúng ta sẽ bắt đầu với cấu hình mặc định của JM là vpxenc và x264. Vì H.264 gồm H.264 baseline và high nên sẽ được đem so với VP8 ở nhiều mức cấu hình khác nhau phù hợp.

1.1.2. Dữ liệu đầu vào

Các nguồn video được dùng cho những bài so sánh thì phải là các đoạn phim chưa bị nén, thời gian nằm trong khoảng từ vài giây cho đến vài phút với nhiều độ phân giải khác nhau. Hơn nữa, tất cả các đoạn video được dùng thì phải là không gian màu 4:2:0 xấp xỉ 30fps. Chính vì vậy, các đoạn phim trong luận văn sử dụng được lấy từ Xiph Foundation [19]. Những đoạn phim được chọn được mô tả trong bảng 3.2, 3.3, 3.4 và 3.5 [8].

36 Vương Gia Thiết

Bảng 3.2. Các đoạn phim ở phân giải CIF được dùng và nội dung của chúng

Tên Độ dài Chi tiết

Akiyo 0m10s Người phụ nữ đọc sách, chuyển động rất chậm

Bridge Close 1m06s Cây cầu trên mặt nước với khách bộ hành ở khoảng cách

xa

Coastguard 0m10s Chèo thuyền trên sông với cảnh vật chuyển động chậm

Foreman 0m10s Tiếp cận người công nhân đang nói với camera chiếu vào

khu công trường

Mobile 0m10s Khung cảnh của tờ lịch di chuyển, tàu đẩy quả bóng và con quay

Students 0m30s Hai người trò chuyện trên bàn, cử chỉ chuyển động chậm

Bảng 3.3. Đoạn phim 4CIF được sử dụng và nội dung của chúng

Tên Độ dài Chi tiết

City 0m10s Cảnh trực thăng của thành phố New York

Crew 0m10s Nhà du hành đang bước đi

Harbour 0m10s Các con buồm được nhìn từ trên cột buồm

Ice 0m10s Người trượt băng với tốc độ nhanh

Soccer 0m10s Trò chơi đá banh với tốc độ di chuyển nhanh

Bảng 3.4. Các đoạn phim HD và nội dung của chúng

37 Vương Gia Thiết

Mobcal 0m10s Nhìn ra xa dần bức ảnh

Parkrun 0m10s Người đàn ông chạy rồi dừng trong công viên

Shields 0m10s Các con buồm được nhìn từ trên cột buồm

Stockholm 0m10s Thung lũng Stockholm với các phương tiện đang di

chuyển

Sintel 0m52s Đoạn cắt chuyển động 3D

Old Town Cross 0m10s Trực thăng di chuyển nhìn xuống thành phố Ducks Take Off 0m10s Hồ trong xanh, những chú vịt giời cất cánh bay lên

In to Tree 0m10s Nhìn gần vào một cái cây

Bảng 3.5. Các đoạn phim full HD và nội dung của chúng

Tên Độ dài Chi tiết

Blue Sky 0m10s Cảnh bầu trời và cây cối

Sintel 0m52s Đoàn cắt chuyển động 3D

Touchdown 0m19s Bóng đá Mỹ, chuyển động nhanh

Tractor 0m27s Máy kéo cày trên cánh đồng

Speed Bag 0m19s Người đang ông nói vào máy camera

Snow Mountain 0m19s Cảnh những ngọn núi

West Wind 0m19s Kéo dòng văn bản trên nền đen

Riverbed 0m10s Cảnh những hòn đá bên dưới dòng sông xanh

Pedestrian Area 0m15s Cảnh người đi bộ và đi xe đạp

Rush hour 0m20s Cảnh những chiếc ô tô trong giờ cao điểm

Các đoạn phim ở định dạng Y4M. Các độ phân giải gồm CIF, 4CIF, 720p và 1080p.

38 Vương Gia Thiết

3.2. Các thông tin cần đánh giá 3.2.1. Đặc tính thống kê α 3.2.1. Đặc tính thống kê α

Để so sánh các sự khác nhau về đặc tính thống kê của hai cấu hình của một bộ mã hóa hoặc giữa hai bộ mã hóa khác nhau, t-test được dùng để xác định đặc tính dữ liệu. Điều này cho phép chúng ta xác định sự sai khác khi có lỗi xảy ra [8].

Chúng ta sẽ cần nhiều thống kê quan trọng từ dữ liệu. Mỗi khung hình của nguồn video, PSNR và SSIM được tính toán và ghi lại. Phương sai có thể tính được qua phương trình 3.3.1. Bằng cách lấy căn bậc 2 của phương sai cho ta độ lệch chuẩn σ. Độ lệch chuẩn này được dùng để xác định mức độ lỗi. Tỉ lệ lỗi tương ứng với độ lệch chuẩn.

) (3.3.1)

Sau khi đã thu được dữ liệu thống kê, chúng ta sẽ tiến hành so sánh. Sử dụng hàm phân bố Student hoặc Welch của t-test tùy theo dữ liệu phương sai lệch hoặc không lệch tương ứng ta sẽ có, ts cho phân bố Student được thể hiện ở phương trình 3.3.2 và tw cho phân bố Welch ở phương trình 3.3.3. S1,2 là độ lệch chuẩn. s2 là các giá trị ước lượng của phương sai trong mẫu. Do các vùng mẫu luôn bằng nhau nên

n1 = n2.

Để so sánh hai phương sai có bằng nhau hay không, các độ lệch chuẩn được kiểm tra qua phân bố Welch của t-test. Nếu giá trị p thấp hơn ngưỡng được định nghĩa, khi đó các phương sai được xem là bằng và sử dụng phân bố Student. Ngược lại, sử dụng phân bố Welch.

̅̅̅̅ ̅̅̅̅ √ (3.3.2) √ ) ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ ̅̅̅̅ (3.3.3)

39 Vương Gia Thiết

̅̅̅̅ ̅̅̅̅ √

Cho việc lựa chọn ngưỡng cho giả thuyết thống kê, α là vô cùng quan trọng để quyết định đến việc kiểm tra. Giá trị được chọn cho α là 0.1.

Việc chọn lựa này nhằm tăng sác xuất thống kê cho phương pháp t-test này nhằm bỏ đi các giả thuyết không (null hypothesis) với tần số cao. Do tỉ số SNR đo được là hệ số chính nên giá trị lớn hơn 0.1 sẽ là quá cao. Điều này đảm bảo rằng sẽ có ít hơn 10% xác suất xảy ra vấn đề không mong muốn này.

Giá trị sẽ thay đổi với số lần so sánh nhiều hơn và các công việc thống kê khác đảm bảo rằng sự xác minh này vẫn là chính xác khi mà xác suất của phương pháp thống kê tăng lên.

3.2.2. Đƣờng cong tốc độ méo (R-D)

Từ việc phân tích tốc độ bit so với chất lượng hình ảnh cho cả H.264 và VP8, có rất nhiều đường biểu diễn biến đổi tốc độ (RD) tùy theo đánh giá khác nhau. Cả x264 và vpxenc đều có tốc độ bít cao hơn bình thường nếu không thể xác định được tốc độ tối thiểu từ video nguồn. Nếu tốc độ bit tăng thì chất lượng sẽ giảm. Kết quả đối với đường cong RD được thể hiện xuyên suốt ở các phần đánh giá trong Chương 4.

3.3. Nội dung so sánh

3.3.1. Đánh giá chất lƣợng và băng thông

Hiện nay Internet đang phát triển rất nhanh chóng. Hầu hết các thiết bị điện tử đều hỗ trợ và sẵn sàng trong việc truy nhập cũng như chia sẻ qua mạng. Điều này cho thấy một xu hướng toàn cầu đang hướng đến là Internet của vạn vật (Internet of things). Chính vì vậy, để kết nối để chia sẻ hình ảnh, dữ liệu trên thời gian thực đòi hỏi hệ thống khá ngặt ngèo. Chúng ta sẽ cần một cái nhìn tổng thể để đánh giá được chất lượng của bộ mã VP8 và H.264 qua đường truyền mạng. Các cấu hình khác

40 Vương Gia Thiết

nhau là cần thiết để đưa ra kết quả chính xác về chất lượng của mỗi bộ mã. Các kết quả được đưa ra trong Chương 4, phần 4.1.

Bảng 3.6. Cấu hình các tham số cho việc đánh giá tốc độ đường truyền

Cấu hình bộ mã Các tham số

H.264 Slowest --preset medium --tune zerolatency --no-psy

H.264 Slower --preset fast --tune zerolatency --no-psy

H.264 Slow --preset faster --tune zerolatency --no-psy

H.264 Fast --preset veryfast --tune zerolatency --no-psy

H.264 Faster --preset superfast --tune zerolatency --no-psy

H.264 Fastest --preset ultrafast --tune zerolatency --no-psy

VP8 Slowest --good --cpu-used=0 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Slower --good --cpu-used=1 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Slow --good --cpu-used=2 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Fast --good --cpu-used=3 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Faster --good --cpu-used=4 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Fastest --good --cpu-used=5 --static-thresh=100 --auto-alt-ref=1 --lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

Trong phần đánh giá về ảnh hưởng băng thông, chúng ta đưa ra các mức tốc độ từ chậm nhất cho đến nhanh nhất. Điều này là vì khi băng thông càng lớn thì tốc độ truyền lớn nhất sẽ cho được chất lượng hình ảnh ở mức tốt nhất và ngược lại, khi băng thông bé thì tốc độ truyền chậm đi nhằm không ảnh hưởng đến người xem.

41 Vương Gia Thiết

Trên bảng 3.6 cho thấy cấu hình của các tham số về việc đánh giá tốc độ đường truyền.

Có rất nhiều yêu cầu cho truyền hình ảnh hay phim ảnh qua đường truyền Internet, ở tốc độ thấp nhất với độ phân giải từ CIF hoặc thấp hơn cho đến tốc độ nhanh nhất với phân giải 1080p. Trong lần đánh giá chúng ta sẽ thực nghiệm với đoạn phim Akiyio với độ phân giải CIF ở 2 tốc độ 25kbps và 50kbps.

Bảng 3.8 là danh sách các đoạn phim độ phân giải 1080p. Được phân loại theo cảnh quan và tốc độ di chuyển của cảnh vật.

Bảng 3.7. Các đoạn phim 720p

Cảnh thành phố Cảnh chi tiết ngoài trời

Old Town Cross Shields

Stockholm Mobcal

Ducks Take Off Parkrun

Into tree

Bảng 3.8. Các đoạn phim 1080p

Đoạn phim thể thao Đoạn phim cảnh động ngoài trời

Touch down Blue Sky

Speed Bag Tractor

Snow Mountain Riverbed

West Wind Pedestrian Area

Rush Hour

Để đánh giá chính xác hơn, luận văn này sẽ tiếp tục so sánh với các đoạn phim với độ phân giải cao 720p và 1080p. Ở đây việc so sánh với độ phân giải HD là hoàn toàn cần thiết vì hầu như các các đoạn phim truyền hình số hay các cuộc

42 Vương Gia Thiết

họp trực tuyến đều được hỗ trợ các độ phân giải này để đem đến người dùng dịch vụ tốt nhất. Trong bảng 3.7 gồm thông tin các đoạn phim 720p. Các đoạn phim gồm các cảnh quan chi tiết gồm các cảnh ở ngoài trời và chuyển động nhanh chậm khác nhau.

Trong các đoạn video được đem so sánh đều sử dụng bộ mã hóa hai lần (two-pass encoder) để chuyển định dạng video ở chất lượng tốt nhất. Lần đầu sẽ thống kế theo tốc độ bit, lần hai mã hóa theo tốc độ bit thu được ở lần đầu. Việc sử dụng mã hóa hai lần nhằm đảm bảo việc điều khiển tốc độ là chính xác. Thông thường, các chương trình truyền hình, phim truyện đều có khả năng để sử dựng bộ mã hóa hai lần do thời gian tiền mã hóa là đủ dài. Tốc độ bít cao để làm tăng chất lượng cho những chương trình như thế. Đối với tốc độ thấp thì sẽ được đề cập trong Phần 3.4.

Các giá trị PSNR và SSIM thu được và sự sai khác của tốc độ bit được hiển thị trên đồ thị được thể hiện trong Phần 4.1.

3.3.2. Đánh giá mã hóa nội khung

Mã hóa nội khung là vấn đề rất quan trọng trong nén ảnh. Do vậy, để so sánh độ mạnh của dự đoán nội khung trong VP8 và H264 một cách hiệu quả, số khung đã được dự đoán lớn nhất sẽ được đặt bằng 0. Điều này nhằm đảm bảo rằng không có dự đoán nội khung và đó là khung chính (key frame). Do sự áp đặt này nên bộ lượng tử hóa được dùng như biến điều khiển. Cách thức này còn được gọi là mã hóa nội khung có tổn hao.

Bảng 3.9 liệt kê các tham số bộ mã hóa được chọn cho x264 và VP8. Tất cả các bộ mã hóa chỉ sử dụng nội khung, như -I 1 cho x264 và --kf-max-dist=1 với VP8. --qp của x264 nhằm áp đặt cho tham số bộ lượng tử không thay đổi. --drop- frame=0 nhằm đảm bảo việc không xảy ra lấy mẫu lại theo thời gian khi sử dụng bộ lượng tử không đổi. --min-q--max-q đặt cùng 1 giá trị để sử dụng bộ lượng tử không đổi cho VP8.

43 Vương Gia Thiết

Bảng 3.9. Các tham số và cấu hình mã hóa nội khung

Cấu hình bộ mã hóa Các tham số

H264 Baseline --profile baseline --tune zerolatency -I 1 --no-psy

H.264 High --profile high --tune zerolatency -I 1 --no-psy

VP8 Good --good --cpu-used=0 --static-thresh=100 --auto-alt-ref=1

--lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

VP8 Best --best --cpu-used=0 --static-thresh=100 --auto-alt-ref=1

--lag-in-frames=0 --kf-max-dist=1 --drop-frame=0

Để so sánh, chúng ta sẽ lựa chọn các đoạn phim có khả năng thể hiện tốt nhất để có đánh giá chính xác. Đoạn phim Foreman với độ phân giải CIF được chọn vì mảng màu sắc sáng ở khung cảnh ngoài trời. Đoạn phim Crew được chọn với độ phân giải 4CIF vì độ tương phản màu sắc nét và sử dụng camera có đèn chiếu sáng. Parkrun được chọn với phân giải 720p vì mức độ chi tiết và thể hiện hiệu quả dự đoán nội khung.

Kết quả của việc mã hóa nội khung được thể hiện trong Phần 4.2.

3.3.3. Đánh giá mã hóa liên khung

Trong Phần 3.2.1 cho ta thấy sự khác nhau về đặc tính thống kê của H.264 và VP8 trong các khung dự đoán. VP8 không có các khung dự đoán 2 chiều (B-frame) và thay khung dự đoán nội bằng khung golden và altref.

Để so sánh chất lượng của việc mã hóa liên khung của VP8 và H.264, các cấu hình được sử dụng trong bảng 3.10. Cấu hình --b-adapt của x264 nhằm sử dụng

Một phần của tài liệu Nghiên cứu về định dạng nén video VP8 (Trang 35)

Tải bản đầy đủ (PDF)

(79 trang)