Bộ mã hóa entropy

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

Bộ mã hóa entropy sẽ xử lý tất cả các thông tin từ các quá trình xử lý khác như các hệ số DCT, các chế độ dự đoán, các vector chuyển động, … và nén chúng lại.

Mã hóa entropy sử dụng mã hóa số học nhị phân tương tự như mã hóa số học nhị phân thích nghi theo văn bản (CABAC) ở trong H.264 và mã Huffman. Cả hai mã này đều là mã hóa không tổn hao.

Mã Huffman sử dụng cho việc xác định quyết định tín hiệu nào được gửi đi. Nó dựa trên bảng tần suất xuất hiện các symbol cần mã hóa để xây dựng một bộ mã nhị phân cho chính các symbol đó sao cho dung lượng (số bít) sau khi mã hóa là nhỏ nhất. Như trên hình 2.12 là minh họa cơ chế hoạt động.

Mã số học là kiểu mã hóa cho phép đạt được mức nén cao. Mã hóa số học cũng có cách hoạt động như Huffman nhưng thay vì thay thế từng symbol vào mã của chính nó thì mã số học thay thế toàn bộ bản tin bằng một số n trong đó n Є [0.0,1.0]. Mã số học có dung lượng là - log2(P) đối với các symbol của xác suất P. Sau khi đã xác định được xác suất của symbol phát đi, mã số học định nghĩa ra các khoảng (interval) . Giả sử có 3 symbol A,B,C có xác suất là 70%, 20%, 10% tương ứng thì các khoảng sẽ là [0, 0.7), [0.7, 0.9) và [0.9, 1.0) Để mã hóa một đoạn tin để phát đi, mã số học tính toán giá trị n bằng việc chia nhỏ các khoảng nhằm thu hẹp xác suất. Quay lại ví dụ, nếu bản tin lần lượt là CAB thì khoảng đầu là [0.9,1.0) sẽ được chia nhỏ thành 3 khoảng mới theo khoảng tương ứng đã nói ở trước thì được

33 Vương Gia Thiết

khoảng mới là A Є [0.9, 0.97), B Є [0.97, 0.99), và C Є [0.99, 1.0). Với symbol tiếp theo là A nên khoảng A sẽ được chọn. Tiếp tục chia nhỏ khoảng A sẽ được 3 khoảng mới là A Є [0.9, 0.949), B Є [0.949, 0.963), and C Є [0.963, 0.97). Cuối cùng, symbol cuối là B nên khoảng B được chọn. Giá trị n có thể lầy bất kỳ trong khoảng 0.949 đến 0.963 đều được. Trong thực tế thường chọn đường biên dưới nghĩa là n = 0.949. Vì số n là một số hữu tỉ nên cần giới hạn số lượng bit cho việc biểu diễn.

Trong việc giải mã, các khoảng được chia như trong bộ giải mã từng bước từng bước như các bước mã hóa. Ví dụ với n = 0.949 nằm trong khoảng C nên C sẽ được chọn và tiếp tục chia thì nằm trong khoảng A nên A sẽ được chọn và cứ thế đến B được chọn [3].

Hình 2.12. Ví dụ minh họa cho mã Huffman [5]

Như vậy trong Chương 2 đã thể hiện rõ các đặc tính cơ bản và sơ đồ hoạt động rõ nét của VP8. Điều quan trọng hơn ở phần này là chúng ta đã có cái so sánh trực quan giữa VP8 và H.264 trên cơ sở lý thuyết. Đây là căn cứ để đi sâu trong phần so sánh thực tiễn trong Chương 4.

34 Vương Gia Thiết

CHƢƠNG III. SO SÁNH VP8 VÀ H.264 3.1. Các yếu tố chuẩn bị

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

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

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

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

(79 trang)