Tải bản đầy đủ (.docx) (28 trang)

bài tập truyền thông đa phương tiện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (617.86 KB, 28 trang )

Bài tập Truyền thông đa phương tiện
MỤC LỤC
DANH MỤC HÌNH VẼ
DANH MỤC BẢNG
I. EvalVid- Cơ cấu cho truyền video và đánh giá chất lượng
Với EvalVid, chúng ta giới thiệu một cơ cấu hoàn thiện và một công cụ để đánh
giá chất lượng video được truyền trên mạng truyền thông thực hoặc mô phỏng. Ngoài
việc đo lường các tham số chất lượng dịch vụ của mạng ví dụ như tốc độ tổn thất, trễ,
Nhóm V 1 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
và biến độ trễ (jitter), nó còn đưa ra việc đánh giá chất lượng video một cách chủ quan
cho video thu được dựa vào việc tính toán PSNR từng khung một. Công cụ có bộ chế
tạo theo kiểu modun giúp nó có thể trao đổi với cả mạng và bộ mã hóa-giải mã. Báo
cáo này giới thiệu ứng dụng của nó cho MPEG-4. EvalVid tạo mục đích cho các nhà
nghiên cứu muốn đánh giá việc thiết kế mạng của họ hoặc đánh giá sự cài đặt xét về sự
cảm nhận của người sử dụng.
1.1. Giới thiệu
Ngày nay có rất nhiều các hệ thống viễn thông cung cấp việc truyền dẫn thời
gian thực theo kiểu khác nhau, truyền video được cho là một trong những ứng dụng
quan trọng nhất của hệ thống viễn thông. Sự phát triển ngày càng tăng này làm cho
chất lượng video được hỗ trợ trở thành một vấn đề đang được quan tâm. Mặc dù
nhiều bài báo nghiên cứu về các cơ chế hỗ trợ chất lượng dịch vụ QoS cho các
mạng khác nhau thì vẫn có rất ít bài báo hỗ trợ việc đánh giá có tính thống nhất và
tính so sánh chất lượng thực sự thu được bằng sự cảm nhận cá nhân. Trong thực tế,
nhiều nhà nghiên cứu hạn chế mình để chứng minh rằng cơ chế trong nghiên cứu có
thể giảm được tỷ lệ mất gói, trễ gói hoặc biến độ trễ và họ đã cho rằng những phép
đo này là đủ để đánh giá chất lượng video thu được. Tuy nhiên, người ta biết được
rằng các tham số được mô tả ở trên không được chuyển đổi dễ dàng và duy nhất vào
một chất lượng cho việc truyền tải Video. Tức là việc chuyển đổi này có thể khác
nhau phụ thuộc vào phương thức mã hóa, phương thức che giấu tổn thất và xử lý


trễ/biến độ trễ.
Các công cụ chung có sẵn cho việc đánh giá chất lượng video thường giả
thuyết rằng các khung được đồng bộ tại phía phát và phía thu, có nghĩa là chúng
không thể tính toán chất lượng video trong trường hợp khung bị mất hoặc các lỗi
giải mã khung. Chẳng hạn như phần mềm JNDmetrix-IQ, và dự án AQUAVIT .
Những công cụ này không phù hợp để đánh giá cho khung video nhận được không
hoàn thiện. Chúng chỉ có thể áp dụng cho các khung video tại nơi mà mỗi khung có
thể được giải mã tại phía thu. Những nhà nghiên cứu khác đánh giá chất lượng
video khi dạng khung video bị biến dạng trong lúc truyền, không cho phép phần
mềm của họ có thể dùng được một cách công khai. Theo sự hiểu biết tốt nhất của
các tác giả thì chưa có công cụ miễn phí để thỏa mãn các yêu cầu được mô tả ở trên.
Báo cáo này giới thiệu về EvalVid. Nó là một cơ cấu và một công cụ để đánh
giá thống nhất về chất lượng truyền tải video. EvalVid có cấu trúc khối, làm cho nó
có thể trao đổi theo ý muốn của người sử dụng cho cả hệ thống truyền tải lẫn các
codecs. Vì vậy nó được áp dụng cho bất kỳ phương thức mã hóa nào và có thể được
Nhóm V 2 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
dùng cả trong các cài đặt thực nghiệm thật và thí nghiệm mô phỏng. Các dụng cụ
được thực hiện ISO-C tinh khiết cho tính khả chuyển tối đa. Tất cả các tương tác
với mạng được thực hiện thông qua hai trace files. Do đó nó dễ dàng được tích hợp
EvalVid trong bất kỳ môi trường nào.
Cấu trúc của bài báo này như sau: Phần 2 giới thiệu tổng quan về toàn bộ cơ
cấu. Phần 3 giải thích phạm vi của các phần tử chức năng hỗ trợ. Sau đó các công
cụ cá nhân được mô tả chi tiết hơn trong phần 4.
1.2. Cơ cấu và thiết kế
Hình 1 cho thấy cấu trúc của cơ cấu EvalVid. Sự tương tác giữa công cụ thực
hiện và luồng dữ liệu được ký hiệu hóa. Cái gì được tính toán sẽ được giải thích
trong phần 3 và phần 4 cho thấy nó thực hiện bằng cách nào và từ đó thu được các
kết quả.

Hình 1: Sơ đồ cơ cầu đánh giá chất lượng Video
Cũng từ hình 1, quá trình truyền video số đầy đủ được bắt đầu từ việc mã
hóa thông tin từ nguồn, đóng gói, truyền qua mạng, giảm jitter bằng bộ đệm tái tạo,
giải mã và hiển thị cho người sử dụng. Hơn nữa các điểm tại đó dữ liệu được rút ra
từ luồng truyền dẫn được đánh dấu. Thông tin này được lưu trữ trong các file khác
nhau. Các file này được dùng để thu thập kết quả mong muốn ví dụ như, tỷ lệ mất
gói tin, jitter và chất lượng video. Rất nhiều thông tin là cần thiết để tính toán các
giá trị này.
Nhóm V 3 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Dữ liệu cần thiết là (từ bên gửi):
- video chưa nén bản gốc
- video được mã hóa
- nhấn thời gian và loại gói tin được gửi
Và từ bên nhận
- nhấn thời gian và loại gói nhận được
- tập hợp lại video được mã hóa
- video giải nén gốc được hiển thị
Việc đánh giá các dữ liệu này được thực hiện tại bên gửi vì vậy các thông tin
từ bên nhận cần phải gửi lại cho bên gửi. Trên thực tế thì video gốc chưa nén có
dung lượng rất lớn ví dụ 680 MB đối với cho 3 phút video trên màn hình PDA. Mặt
khác, có thể tái tạo video để được hiển thị từ các thông tin sẵn có ở bên gửi. Thông
tin duy nhất cần thiết từ bên nhận là một file chứa các nhấn thời gian của mỗi gói
tin đã thu được. Điều này thuận tiện hơn nhiều so với việc truyền các file video
hoàn thiện (sai số và mã hóa) từ bên nhận.
Xử lý các dữ liệu thực hiện trong ba giai đoạn. Giai đoạn đầu tiền đòi hỏi các
nhấn thời gian từ cả hai bên và các loại gói tin. Các kết quả của bước này là biết
được loại khung dựa vào tỷ lệ mất gói và trễ giữa các gói. Hơn nữa, sai số file video
từ bên nhận được tái tạo bằng cách dùng file video gốc được mã hóa và thông tin

tổn thất gói. Video ở đây có thể được giải mã thành các khung video gốc để được
hiển thị cho người sử dụng. Tại điểm này, vấn đề chung của việc đánh giá chất
lượng video được thực hiện. Các chuẩn đo chất lượng video luôn luôn đòi hỏi việc
so sánh khung được hiển thị (có thể bị biến đổi) với các khung gốc tương ứng.
Trường hợp các khung hoàn toàn bị mất thì việc đồng bộ không thể được duy trì.
Giai đoạn thứ hai của quá trình này đưa ra một biện pháp để giải vấn đề này.
Dựa vào thông tin tổn thất, đồng bộ khung được hồi phục bằng cách xen khung
được hiển thị sau cùng cho mỗi khung bị mất. Điều này làm cho việc đánh giá chất
lượng tốt hơn. Do đó, file video gốc cố định và file video gốc được dùng tại giai
đoạn cuối để thu được chất lượng video.
Các hộp trong hình 1 có tên là VS, ET, FV, PSNR và MOS là các chương trình
mà cơ cấu việc đánh giá chất lượng có. Tương tác giữa các công cụ và mạng (được
xem như là hộp đen) dựa vào các trace files. Các files này chứa tất cả các dữ liệu
cần thiết. Chỉ có một file cần phải được cung cấp từ người sử dụng EvalVid là
Nhóm V 4 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
“receiver trace file”. Nếu mạng là một đường liên kết thực tế thì file này được tạo ra
từ TCP-dump. Nếu mạng được mô phỏng thì file này tạo ra bởi thành phần bên
nhận của sự mô phỏng.
Đối với các công cụ nằm trong EvalVid người ta chỉ cần các trace file này, file
video gốc và bộ giả mã thui. Do đó, trong trường hợp EvalVid thì mạng chỉ là một
hộp đen mà tạo ra trễ, tổn thất gói và việc sắp xếp lại gói tin. Nó có thể là một
đường liên kết thực, chẳng hạn như mạng Ethernet hoặc là WLAN, hoặc mô phỏng
của mạng. Do tương tác của EvalVid với mạng chỉ được biểu diễn bởi hai trace file
(bên gửi và bên nhận), có thể dễ dàng thay hộp mạng để làm cho EvalVid càng tín
cậy hơn. Tương tự, bộ codec video cũng có thể được thay một cách dễ dàng.
1.3. Các chức năng hỗ trợ
Phần này mô tả về các tham số được tính toán bởi công cụ của EvalVid, các
khái niệm hình thức và các tài liệu tham khảo cho việc nghiên cứu sâu hơn đối với

vấn đề này đặc biệt là việc đánh giá chất lượng video đã đuọc cho biết.
1.3.1. Xác định tổn thất gói tin và tổn thất khung
a. Tổn thất gói
Việc mất gói tin thường được xác định dựa trên cơ sở ký hiệu nhận dạng gói.
Do đó, hộp đen mạng phải cung cấp ID gói duy nhất. Điều này không phải là vấn đề
đối với việc mô phỏng bởi vì các ID duy nhất có thể dễ dàng được phát. Trong các
phép đo, các ID gói tin thường được lấy từ IP (cung cấp một ID duy nhất). ID gói
duy nhất cũng được sử dụng dể hủy bỏ việc sắp xếp lại gói. Trong trường hợp
truyền dẫn video, nó không chỉ đề cấp đến việc là bao nhiêu gói bị mất mà còn cho
biết về loại dữ liệu nằm nằm trong các gói.Ví dụ, bộ codec MPEG-4 định nghĩa 4
loại khác nhau của khung (I, P, B, S) và cũng định dạng một số phần mào đầu
chung. Do nó rất cần thiết cho truyền dẫn video và rằng loại dữ liệu nào bị mất thì
nó cũng cần thiết để phân biệt các loại gói tin. Việc đánh giá tổn thất gói tin được
tính phụ thuộc vào loại gói. Tổn thất gói được định nghĩa trong phương trình (1)
tính theo %.
Tổn thất gói
100
n
T
recv
PL
T
n
T
sent
=
(1)
Trong đó
T: loại của dữ liệu trong gói (một trong tất cả, mào đầu, I, P, B, S)
Nhóm V 5 Lớp 10BĐTVT- KH


Bài tập Truyền thông đa phương tiện
n
T
recv
: Tổng số gói tin loại T được gửi.
n
T
sent
: Tổng số gói tin loại T nhận được
b. Tổn thất khung
Một khung video (thực ra là một ảnh tĩnh đơn được mã hóa) có thể tương đối
lớn, không chỉ trong trường hợp tốc độ bit video biến đổi mà còn trong tốc độ bit cố
định la do thuật ngữ không đổi được áp dụng cho số trung bình cho khoảng thời
gian ngắn. Các khung I thường lớn đáng kể so với tốc độ bít đích không đổi (số
trung bình thời gian ngắn) thậm chí trong “CBR” videos (hình 2).
Rất có thể và có khả năng rằng một số hoặc có thể là tất cả các khung lớn hơn
đơn vị truyền tối đa (MTU) của mạng. MTU là kích thước gói tối đa được hỗ trợ
bởi mạng (ví dụ Ethernet = 1500 bytes và 802.11b WLAN = 2312 bytes). Các
khung này cần phải được phân đoạn thành các gói nhỏ hơn để phù hợp cho MTU
của mạng. Việc có thể phân đoạn các khung này đưa ra một vấn đề cho việc tính
toán về tổn thất gói.
Hình 2: Video CBR MPEG-4 với tốc độ bit đích 200 kbps
Về nguyên tắc thì tổn thất gói có thể thu được từ tốc độ tổn thất gói (ở đây, gói
luôn mang nghĩa là gói IP). Nhưng quá trình này phụ thuộc ít vào khả năng sử dụng
bộ giải mã video thực bởi vì một số bộ giải mã có thể xử lý một khung tuy một số
thành phần của khung bị mất và một số bộ giải mã thì không thể. Hơn nữa, một
khung có thể được giải mã dựa vào gói nào của nó bị mất. Nếu gói thứ nhất bị mất
thì khung gần như không bao giờ được giải mã. Do đó, các tính năng của các bộ
Nhóm V 6 Lớp 10BĐTVT- KH


Bài tập Truyền thông đa phương tiện
giải mã nào đó cần phải quan tâm đến để tính toán tốc độ tổn thất khung. Nó được
tính riêng cho từng loại khung.
Tổn thất khung
100
n
T
recv
FL
T
n
T
sent
=
(2)
Trong đó
T: kiểu của khung (một trong tất cả mào đầu, I, P,B, S)
n
T
recv
: Tổng số gói loại T được gửi
n
T
sent
: Tổng số gói loại T nhận được
c. Xác định trễ và biến độ trễ- Jitter
Trong các hệ thống truyền video không chỉ sự tổn thất là quan trọng cho độ
cảm nhận chất lượng video mà phải quan tâm đến một số tham số khác như trễ các
khung và biến độ trễ-Jitter. Video số luôn chứa các khung để được hiện thị với tốc

độ không đổi. Việc hiện thị một khung trước hoặc sau khi thời gian nhất định dẫn
đến “giật hình”. Vấn đề này được giải quyết bằng bộ đếm tái tạo. Các bộ đệm này
nhằm mục đích hấp thụ jitter được tạo ra bởi các trễ mạng. Rõ ràng một bộ đệm tái
tạo đủ lớn có thể bù lại bất kỳ số lượng jitter. Trong trường hợp đặc biệt bộ đệm lớn
đến mức để chứa toàn bộ video và việc hiển thị bắt đầu mà không cần chờ đến khi
nhận đượckhung cuối cùng. Điều này sẽ loại bỏ bất kỳ jitter có thể có nhưng phải có
thêm trễ cho toàn bộ thời gian truyền. Một trường hợp đặc biệt khác sẽ là một bộ
đệm có thể chứa đúng một khung. Trong trường hợp này không thể loại bỏ bất kỳ
jitter nào nhưng lại không có trễ thêm nào được tạo ra.
Đã có các kỹ thuật tinh vi được phát triển cho các bộ đệm tái tạo tối ưu để giải
quyết sự cân bằng đặc biệt này. Các kỹ thuật này không nằm trong phạm vi cơ cấu
được mô tả. Dung lượng bộ đệm tái tạo là tham số cho quá trình đánh giá chất
lượng. Điều này đang hạn chế cơ cấu này về các bộ đệm tái tạo tĩnh. Tuy nhiên, do
việc tích hợp bộ đệm tái tạo liên quan đến quá trình đánh giá, thì sẽ xảy ra tổn thất
mới do tràn bộ đệm tái tạo hoặc thiếu bộ đệm.
Định nghĩa hình thức của Jitter được sử dụng trong bài báo này được cho
trong phương trình 3, 4, và 5. Đó là sự thay đổi về trễ giữa các khung liên tiếp hoặc
Nhóm V 7 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
trễ giữa các gói liên tiếp. “Frame time” được tính bằng thời gian tại đó đoạn gói
cuối cùng của khung phân đoạn được nhận.
Trễ giữa các gói liên tiếp
0
0
it
P
=
(3)
1

it t t
p
P P
n
n
n
= −

Trong đó
t
P
n
nhấn thời gian của số gói n
Trễ giữa các khung liên tiếp
0
0
it
F
=
1
it t t
F F F
m m
m
= −

Trong đó
t
F
m

là nhấn thời gian của đoạn gói cuối cùng của số khung m
Packet jitter
1
2
( )
1
N
j it it
i
P N
N
i
= −

=
(4)
Trong đó N: tổng số gói

it
N
: là trễ trung bình giữa các gói liên tiếp
Frame jitter
1
2
( )
1
M
j it it
i
F M

M
i
= −

=
(5)
Trong đó M: tổng số khung

it
M
: trễ trung bình giữa các khung liên tiếp
Các biểu đồ thống kê cho trễ giữa các gói liên tiếp và khung liên tiếp cũng
được tính toán bằng các công cụ của cơ cấu này (xem phần 4.3).
Nhóm V 8 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
1.3.2. Đánh giá chất lượng video
Việc đánh giá chất lượng video số cần phải dựa vào chất lượng độ cảm nhận
của người dùng bởi cảm giác của người dùng là cái cuối cùng. Có hai phương pháp
cơ bản để đánh giá chất lượng video đó là đánh giá chất lượng chủ quan và phép
đánh giá khách quan. Các chuẩn đo chất lượng chủ quan luôn nằm được yếu tố quan
trọng, cảm giác của người dùng xem video khi chúng cực kỳ đặt tiền: rất tổn thời
gian, yâu cầu nhân lực cao và công cụ đặc biệt. Các phép đánh giá khách quan được
mô tả chi tiết bởi ITU, ANSI và MPEG. Độ cảm nhận chất lượng của con người
thường được cho theo mức độ từ 5(tốt nhất) về 1 (xấu nhất) như trong bảng 1. Mức
độ này được gọi là điểm trải nghiệm trung bình (Mean Opinion Score_MOS).
Bảng 1: Chất lượng ITU-R và mức độ suy yếu
Nhiều công trình trong công nghiệp và nghiên cứu yêu cầu phương pháp tự
động hóa để đánh giá chất lượng video. Các thử nghiệm phức tạp và đắt tiền của
phương pháp chủ quan thường không được áp dụng. Do đó, phương pháp khách

quan đã được phát triển để cạnh tranh với cảm giác chất lượng của hệ thống thị giác
của con người (HVS)
Tuy nhiên, phương pháp phổ biến nhất là việc tính tỷ số tín hiệu đỉnh trên tạp
âm (PSNR) cho mỗi ảnh tĩnh. Tỷ số này là một trường hợp đặc biệt của tỷ số trên
tín hiệu trên tạp âm (SNR). SNR so sánh năng lượng tín hiệu với năng lượng tạp
âm. Tỷ số PSNR so sánh năng lượng tín hiệu tối đa với năng lượng nhiễu. Nó có kết
quả tương quan với độ cảm nhận chất lượng chủ quan cao hơn so với tỷ số SNR.
Phương trình (6) là định nghĩa của PSNR giữa thành phần độ sáng Y của ảnh tĩnh
nguồn S và ảnh tĩnh đích D
Nhóm V 9 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
( ) 20log
10
2
1
( , , ) ( , , )
0 0
V
peak
PNSR n
dB
N
N
col row
Y n i i Y n i j
D
S
N N
i j

row
col
 
 ÷
 ÷
 ÷
 ÷
 ÷
 
 ÷
 
 ÷
 
=

∑ ∑
= =
(6)
2 1
k
V
peak
= −
k : tổng số bit trên một pixel (thành phần độ sáng)
Tử số được có thể gọi là sai số trung bình bình phương (MSE). Do đó, biểu
thức PSNR có thể viết tắt thành:
20log
V
leak
PSNR

M SE
=
,
Do PSNR được tính cho từng khung thì nó bất tiện khi áp dụng cho video gồm
hàng trăm hoặc hàng nghìn khung. Hơn nữa, người ta thường quan tâm đến sự méo
dạng được tạo ra bởi mạng. Vì vậy họ muốn so sánh video thu được (có thể bị méo)
với video không bị méo đã gửi đi. Điều này thực hiện bằng cách so sánh PSNR của
video được mã hóa với video thu được cho từng khung hoặc so sánh các trung bình
của nó với độ lệch chuẩn.
Một phương pháp nữa là đầu tiên phải tính MOS (bảng 2) và tính số tỷ lệ
khung với MOS xấu hơn tỷ số khung của video đã được gửi (không bị méo dạng).
Phương pháp này có ưu điểm là thấy rõ sự biến dạng gây ra bởi mạng. Trong phần
4, ta có thể thấy ví dụ được cho bởi công cụ MOS của EvalVid. Các kết quả rõ hơn
được cho bởi EvalVid được tóm tắt trong phần 5.
Nhóm V 10 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Bảng 2: Possible PSNR to MOS conversion
1.4. Các công cụ
Phần này giới thiệu các công cụ của cơ cấu EvalVid, mô tả về mục đích và
cách sử dụng của nó và cho thấy các ví dụ về kết quả thu được. Ngoài ra, phần này
còn cho biết về các nguồn của file video mẫu và các bộ codecs.
1.4.1. Cấu trúc dữ liệu và files
Đầu tiên, cần một nguồn video. Raw (chưa mã hóa) video files thường lưu trữ
dưới dạng YUV, bởi vì dạng này là dạng đầu vào được ưu tiên hơn đối với các bộ
giải mã có sẵn. Files kiểu này có thể thu được từ nhiều nguồn khác nhau, chẳng hạn
như các bộ codec miễn phí MPEG-4. Các khung video mẫu cũng có thể thu được từ
tác giả.
Khi có được file video được mã hóa (các luồng bit), trace files được tạo ra từ
nó. Các trace files này chứa tất cả các thông tin liên quan cho các khối công cụ của

EvalVid để thu được các kết quả như trình bày trong phần 3. Các công cụ đánh giá
chất lượng video tạo ra các đoạn chương trình để đọc và viết các trace files này và
sử dụng cấu trúc dữ liệu trung tâm chứa tất cả các thông tin cần thiết để đưa ra các
kết quả mong muốn. Dạng thực của trace files, cách sử dụng các đoạn chương trình
và định nghĩa cấu trúc dữ liệu trung tâm được mô tả ngắn gọn trong phần sau và
được mô tả chi tiết trong tài liệu tham khảo.
1.4.2. Bộ gửi video- VS
Đối với các file video MPEG-4, bộ phân tách đã được phát triển dựa vào
chuẩn video MPEG-4; simple profile và advanced simple profile được thực hiện.
Điều này làm cho nó có thể đọc được bất kỳ file video MPEG-4 được tạo ra bởi bộ
giải mã thích hợp. Mục đích của bộ VS là phải tạo ra một trace file từ file video đã
được mã hóa. Một cách tùy ý, file video có thể được gửi đi qua UDP (nếu hệ thống
quan sát là một thiết lập mạng). Các kết quả từ VS là hai trace files chứa các thông
tin về mỗi khung trong file video và mỗi gói được tạo ra để truyền dẫn (bảng 3 và
bảng 4).
Dạng của video trace file:
Thứ tự khung Loại khung Chiều dài khung Số gói UDP Thời gửi
0 H 24 1 segm 40 ms
1 I 9379 10 segm 80 ms
2 P 2549 3 segm 120 ms
3 B 550 1 segm 160ms
Nhóm V 11 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện

Bảng 3: Dữ liệu liên quan chứa trong video trace file
Time stamp [s] Packet ID Payload size
102910404.014760 Id 48946 Udp 24
102910404.048304 Id 48947 Udp 1024
102910404.048376 Id 48948 Udp 1024

….
Bảng 4: Dữ liệu liên quan chứa trong sender trace file gồm có time stamp,
packet ID và packet size. File này được tạo ra rời rạc bởi vì nó có
thể thu được từ các công cụ khác (ví dụ TCP-dump, xem tài liệu
tham khảo).
Cả hai trace files này biểu diễn việc truyền tải video hoàn thiện (tại bên gửi)
và chứa tất cả các thông tin cần thiết cho việc đánh giá sâu hơn bằng EvalVid. Đối
với bộ VS, chúng ta có thể tạo ra một cặp trace files này cho các files video khác
nhau và với chiều dài gói tin khác nhau. Sau đó các file này có thể được đưa vào
hộp đen mạng (chẳng hạn như sự mô phỏng). Điều này được thực hiện với sự hỗ trợ
từ các đoạn chương trình đầu vào và các cấu trúc dữ liệu cung cấp bởi EvalVid. Sau
đó mạng sẽ tạo ra trễ và tổn thất và sự sắp xếp lại các gói tin. Một trace file khác tại
bên nhận được tạo ra hoặc với sự hỗ trợ của đoạn chương trình đầu ra của EvalVid
hoặc trong trường hợp truyền dẫn thực chỉ bởi TCP-dump (nó tạo ra trace files
tương thích với EvalVid)
Cần lưu ý rằng mặc dù lớp IP sẽ phân đoạn các gói UDP trên MTU của lớp
phía dưới và lớp IP sẽ cố gắng tập hợp lại các đoạn gói tại bên nhận thì tốt hơn hãy
cho nó tự phân đoạn Nếu một đoạn gói (IP fragment) bị mất thì toàn bộ gói (UDP)
được coi là bị mất. Do nó thích hợp hơn để có được phần còn lại của các đoạn gói
tin thì báo cáo này muốn khuyến nghị chúng ta nên sử dụng chức năng phân đoạn
gói MTU của VS nếu có thể.
1.4.3. ET – Evaluate Traces
Điểm trung tâm của cơ cấu đánh giá chất lượng là một chương trình được gọi
là ET (Evaluate Traces). Ở đây thực hiện phép tính toán thực sự cho tổn thất gói tin
và tổn thất khung và cũng như trễ và biến độ trễ (jitter). Đối với việc tính toán các
dữ liệu này chỉ yêu cầu ba trace files bởi vì đến đây đã có đầy đủ tất cả các thông tin
cần thiết để tính toán tổn thất và jitter, thậm chí kể cả loại khung, loại gói cũng đã
biết. Việc tính toán tổn thất rất dễ dàng chỉ nhờ vào tính có sẵn của ID gói duy nhất.
Nhờ vào video trace file, mỗi gói được phân loại. Mỗi gói của loại này không chứa
trong trace file bên nhận thì được xem như là bị mất. Tỷ lệ tổn thất dựa trên loại gói

Nhóm V 12 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
được tính toán nhờ phương trình (1). Tổn thất khung được tính toán bằng cách tìm
bất kỳ khung nào, nếu một trong những đoạn khung (các gói) bị mất. Nếu đoạn đầu
tiên của một khung nằm trong các đoạn bị mất thì khung được xem là bị mất. Điều
này là do bộ giải mã video không thể giải mã một khung mà thành phần đầu tiên bị
mất. Tổn thất khung dựa trên loại được tính toán theo phương trình (2).
Dưới đây là một ví dụ cho đầu ra của ET đối với các tổn thất (một truyền dẫn
video của 4498 khung trong 8301 gói)
Trễ giữa khung liên tiếp được tính theo phương trình (3) và (4). Tuy nhiên,
trong trường hợp tổn thất gói, các biểu thức này không thể áp dụng dễ dàng được.
Điều này do trong trường hợp này không có time-stamp có sẵn trong trace file bên
nhận cho các gói tin bị mất. Do đó có một câu hỏi đặt ra rằng trễ giữa các gói liên
tiếp được tính bằng cách nào, nếu ít nhất một trong hai gói liên tiếp bị mất? Một khả
năng là phải đặt trễ giữa gói liên tiếp trong trường hợp gói bị mất với giá trị “error”
ví dụ giá trị 0. Sau đó nếu một gói thực sự nhận được, thì có thể tìm kiếm phản hồi
cho đến khi tìm thấy một giá trị đúng. Trong trường hợp này trễ giữa các gói liên
tiếp sẽ là
_ _
n
last received packet
t t

. Điều này có nhược điểm là không nhận được
một giá trị cho mỗi gói và trễ giữa gói liên tiếp có thể tăng quá lớn. Đó là lý do tại
sao phương pháp được sử dụng bởi ET là hơi khác nhau. Nếu ít nhất một (trong hai
gói thực sự được dùng trong việc tính toán) gói bị mất thì sẽ không được gửi với giá
trị đúng nhưng gửi với giá trị dự đoán. Điều này được thực hiện bằng cách tính thời
gian đến có thể giả định được cho một gói bị mất. Dưới đây sẽ cho thấy cách này

thực hiện như thế nào và phương trình (7). Điều này thực tế có nghĩa là đối với các
gói tin bị mất thì giá trị của trễ giữa các khung liên tiếp tại bên gửi được dùng. Nếu
gói tin tương đối ít bị mất thì phương pháp này không tác động đáng kể cho thống
kê Jitter. Mặt khác, nếu có tỷ lệ tổn thất rất cao thì một phương pháp khác đã được
giới thiệu: để tính toán các gói từng đôi nhận được và tính các gói bị mất một cách
riêng biệt.
Nhóm V 13 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Thời gian đến (gói bị mất)
( )
1
1
t t t t
R R
S S
n
n
n
n
= + −


(7)
Trong đó
t
S
n
: time-stamp của số gói n đã được gửi


t
R
n
: time-stamp của (không) số gói n được nhận
Đến đây, do mỗi gói tin có time-stamp đúng thì người ta có thể tính trễ giữa
các gói liên tiếp theo phương trình (3). Hình 3 cho một ví dụ về các trễ giữa các gói
liên tiếp được tính bởi ET.
Hình 3: Một ví dụ về trễ giữa gói liên tiếp
ET cũng có thể tính đến cả khi tồn tại các giới hạn thời gian nhất định. Nếu
có một bộ đệm tái tạo được thực hiện tại bên nhận của mạng (bộ đệm này sẽ rỗng
khi không có khung nào đi đến với thời gian nhất định) thì bộ đệm tái tạo đó có
chiều dài tối đa. Phép đánh giá chất lượng khách quan chẳng hạn như việc xác định
PSNR không thể tính đến trễ hoặc jitter được. Tuy nhiên, một bộ đệm tái tạo rỗng
(hoặc đầy) làm cho mất gói tin (không có khung nào được hiển thị). Chiều dài tối đa
bộ đệm tái tạo có thể được dùng để biến đổi trễ thành tổn thất gói. Với ET, ta có thể
thực hiện điều này bằng cách cung cấp chiều dài tối đa bộ đệm như là một tham số.
Sau đó sự ghép hợp của trễ với tổn thất được thực hiện như sau:
Nhóm V 14 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Một nhiệm vụ khác mà ET thực hiện là tạo ra một video file bị lỗi (do tổn
thất). File bị lỗi này là cần thiết để thực hiện việc đánh giá chất lượng video cho
cuối - đến cuối. Do đó một file khác là cần thiết để làm đầu vào cho ET. Nó có tên
là file video được mã hóa nguồn. Theo nguyên tắc việc phát ra video bị lỗi được
thực hiện bằng cách sao chép video gốc cho từng gói tại chỗ mà các gói bị mất được
bỏ đi. Người ta phải chú ý đến sai số chứa trong tính năng của bộ giải mã được
dùng. Có thể nói rằng bộ giải mã mong muốn đánh dấu đặc biệt trong trường hợp
các dữ liệu bị mất ví dụ các từ mã đặc biệt hoặc đơn giản là một bộ đệm rỗng (hoặc
chứa các bịt 0) thay vì một gói bị mất. Ta cần phải tìm hiểu trong tài liệu mà liên
quan đến bộ codec video mà ta có muốn sử dụng.

1.4.4. Fix Video- FV
Đánh giá chất lượng video số được thực hiện cho từng khung. Có nghĩa là ta
cần thực sự nhiều khung tại bên nhận như cái tại bên gửi. Do đó có một câu hỏi đặt
ra rằng các khung bị mất sẽ được tính như thế nào nếu bộ giải mã không tạo ra được
các khung rỗng cho các khung bị mất. Công cụ FV chỉ được dùng nếu bộ codec
được sử dụng không thể cung cấp các khung bị mất. Các khung được xử lý như thế
nào bởi FV được mô tả sau này trong phần này. Cần một số giải thích về các dạng
video.
Raw video formats:
Video số là dãy các ảnh tĩnh. Không quan tâm đến việc dãy này được mã hóa
như thế nào, nếu chỉ bằng cách lợi dụng dư thừa không gian (chẳng hạn như
Nhóm V 15 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Motion-JPEG. Thật ra nó là một dãy của các ảnh tĩnh JPEG được mã hóa) hoặc
cũng bằng cách lợi dụng dư thừa thời gian (như MPEG hoặc H.263) thì cuối cùng
mỗi bộ codec video sẽ tạo ra một dãy các ảnh tĩnh thô (pixel by pixel) để sau đó
được hiện thị. Thông thường các ảnh tĩnh thô này chỉ là một mảng hai chiều của
pixels. Mỗi pixel được cho bởi ba giá trị màu (màu đỏ, xanh lá cây và màu xanh).
Tuy nhiên, trong việc mã hóa video, các pixels không được xác định bởi ba giá trị
màu này nhưng nó được xác định bởi sự kết hợp của 1 giá trị độ sáng và 2 giá trị
của thành phần màu. Cả hai phép xác định đều có thể được biến đổi cho nhau
(phương trình 8) do đó nó tương đương nhau.
Người ta cho rằng mắt của con người rất nhạy cảm với thành phần độ sáng
hơn với thành phần màu của một bức ảnh. Đó là lý do tại sao trong việc mã hóa
video thành phần độ sáng được tính toán cho mỗi pixel còn hai thành phần màu
thường được tính trung bình trên 4 pixels. Cái này chia đôi số lượng dữ liệu được
gửi đi đối với mỗi pixel so với phương pháp RGB. Có nhiều phương pháp thuộc
kiểu này được gọi là mã hóa YUV, chi tiết trong tài liệu tham khảo.
Y = 0.299R + 0.587G + 0.114B (8)

U = 0.565(B – Y)
V = 0.713(R - Y)
R = Y + 1.403V
G = Y – 0.344V – 0.714V
B = Y + 1.770U
Quá trình giải mã của đa số bộ giải mã có kết quả là các files video thô trong
dạng YUV. Bộ giải mã MPEG-4 mà tờ này sử dụng viết dưới dạng YUV files với
4:2:0
Thứ tự giải mã và hiển thị
Chuẩn MPEG về cơ bản định nghĩa 3 loại khung có tên là khung I, khung P,
khung B. Các khung I chứa một ảnh tĩnh hoàn thiện (được giải mã độc lập, chỉ dư
thừa không gian được lợi dụng). Các khung I là các khung được mã hóa nội. Các
khung P là các khung dự đoán (nó chứa thành phần được mã hóa nội cũng như các
vector chuyển động được tính toán phụ thuộc vào các khung (I hoặc P) trước đó).
Việc mã hóa khung loại P cần cả dư thừa không gian và thời gian. Các khung này
chỉ được giải mã hoàn toàn nếu khung I hoặc khung P trước đó có thể tính được.
Các khung B được mã hóa riêng phụ thuộc vào các khung liên tiếp và trước đó (I
Nhóm V 16 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
hoặc P). Các khung B chỉ lợi dụng dự thừa thời gian. Khung loại này hoàn toàn có
thể được giải mã nếu khung trước đó và khung liên tiếp I hoặc P có thể tìm được.
Đó là lý do tại sao MPEG sắp xếp lại các khung trước khi gửi đi ví vậy bất kỳ
khung nào nhận được có thể được giải mã ngay lập tức, xem bảng 5.
Thứ tự hiển thị Loại khung Thứ tự giải mã
1
2
3
4
5

6

I
B
B
P
B
B
2
3
1
5
6
4
Bảng 5: Thứ tự giải mã và hiển thị khung MPEG
Do vấn đề về việc sắp xếp lại này, một khung được mã hóa không tương ứng
với khung (YUV) được giải mã với số thứ tự như nhau. FV giải quyết vấn đề này
bằng cách ghép phù hợp các khung (YUV) với các khung được mã hóa dựa vào
bảng 5. Có thể có nhiều cách thức mã hóa hơn là cái được cho thấy trong bảng này
(ví dụ, cách thức mà không có các khung loại B, với chỉ một khung B nằm giữa
hoặc nhiều hơn hai khung B giữa hai khung I (hoặc P) nhưng về nguyên tắc về việc
sắp xếp thứ tự là luôn luôn giống nhau.
Handling of missing frames
Một vấn đề khác được giải quyết bởi FV là sự ghép không phù hợp có thể có
giữa tổng số khung được mã hóa với tổng số khung gốc xảy ra bởi sự mất gói. Sự
ghép không phù hợp sẽ làm cho việc đánh giá chất lượng video không thực hiện
được. Một bộ giải mã tử tế có thể giải mã mỗi khung mặc dù nhận được từng phần.
Một số bộ giải mã từ chối để giải mã cho từng phần của các khung hoặc chỉ giải mã
các khung loại B, nơi mà một trong những khung bị mất được suy ra. Biết được
việc xử lý các khung bị mất hoặc các khung bị lỗi nhờ vào việc sử dụng bộ giải mã

thì FV có thể được đưa vào để khắc phục các nhược điểm của bộ giải mã. Việc xử lý
luôn bao gồm việc xen các khung bị mất. Có hai cách cho việc xử lý này. Thứ nhất
là phải xen một khung “rỗng” cho mỗi khung (chưa được mã hóa). Khung rỗng là
một khung không chứa một thông tin nào. Khung rỗng sẽ làm cho các bộ giải mã
nào đó hiển thị một bức ảnh đen (hoặc trắng). Phương pháp này không phai là
phương pháp thông minh do sự chênh lệch thấp giữa các khung liên tiếp. Vì vậy FV
sử dụng phương pháp thư hai (là phép xen một khung được mã hóa cuối cùng thay
Nhóm V 17 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
vì một khung rỗng trong trường hợp mất khung của bộ giải mã. Việc xử lỳ này có
ưu điểm hơn khi ghép phù hợp cho tình trạng của một video player thật.
1.4.5. PSNR- đánh giá chất lượng
PSNR là cơ sở cho phép đo chất lượng trong cơ cấu trên để đánh giá chất
lượng video thu được. Việc xem xét sự chuẩn bị các thành phần sơ bộ của cơ cấu thì
việc tính toán PSNR là một quá trình đơn giản được mô tả bởi phương trình (6).
Tuy nhiên, cần phải lưu ý rằng người ta không tính được PSNR nếu hai ảnh tĩnh là
tương đương nhị phân. Điều này là do trong lúc này sai số trung bình bình phương
bằng không và do đó PSNR không thể tính theo phương trình số (6) được. Do đó
người thường tính PSNR giữa file video thô bản gốc trước quá trình mã hóa với cái
file video nhận được. Điều này đảm bảo rằng sẽ luôn luôn có sai khác giữa các ảnh
tĩnh thô bởi vì tất cả các bộ codecs video hiện đại đều bị tổn thất.
Hình 4: Ví dụ PSNR (video giống nhau được gửi đi nhưng bị tổn thất ít
nhiều)
Hầu hết các kết quả dùng PSNR chỉ sử dụng thành phần độ sáng của video
(phần 4.4). Cái đó cũng không đáng ngạc nhiên, xét vì đó là liên quan đến thành
phần Y cho HVS (phần 3.2). Hình 4 minh họa hai chuỗi thời gian PSNR. Phép đo
khác mà PSNR có thể được sử dụng trong trường hợp này phần mềm đánh giá chất
lượng video mong muốn phải thay thế PSNR/MOS.
Nhóm V 18 Lớp 10BĐTVT- KH


Bài tập Truyền thông đa phương tiện
1.4.6. Tính toán MOS
Do các chuỗi thời gian PSNR rất dài nên PSNR của mỗi khung đơn được ánh
xạ vào các mức độ MOS trong bảng 1 như mô tả trong phần 3.2. Đến đây chỉ còn
lại 5 mức độ và mỗi khung của một mức độ nào đó được tính. Điều này có thể dễ
dàng so sánh với phân số của các khung được phân loại từ video bản gốc như minh
họa trong hình 5. Cột ngoài cùng bên tay phải hiển thị chất lượng của video bản gốc
như là một tham khảo, “few losses” có nghĩa là tỷ lệ mất gói trung bình là 5% còn
cột ngoài cùng bên tay trái cho thấy chất lượng video với tỷ lệ mất gói là 25%. Hình
5 minh họa các truyền tải video giống nhau như trong hình 4.
Hình 5: Ví dụ về video được phân loại theo MOS (truyền dẫn video giống
như trong hình 4)
Có thể nhận thấy được tác động của mạng và hiệu quả của hệ thống mạng có
thể được thể hiện dựa vào chất lượng cảm nhận của người sử dụng. Hình 5 cho thấy
chất lượng của một video nào đó đi gần với chất lượng video có thể nhận được tối
đa.
Nhóm V 19 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
1.4.7. Nhóm công cụ thứ 3 cần thiết
Các chương trình được trình bày trên là có sẵn như là mã nguồn ISO-C hoặc
những chương trình trước khi biên dịch cho Linux-i386 và Windows. Để thực hiện
việc đánh giá chất lượng video của mình thì bạn còn cần một số phần mềm từ các
nguồn khác nữa. Việc tích hợp nó vào cơ cấu EvalVid được trình bày trong tài liệu
tham khảo. Nếu bạn muốn đánh giá các hệ thống truyền tải video sử dụng hệ thống
Unix hoặc Windows thì sau đó bạn lần lượt cần tới TCP-dump hoặc win-dump. Bạn
có thể lấy nó từ:
-
-

Bạn cũng cần các files video thô (videos được mã hóa không bị tổn thất) và
bộ mã hóa và bộ giải mã (có khả năng giải mã các luồng video bị hỏng). Bộ codec
MPEG-4 có sẵn được lấy từ
- />- />1.5. Các kết quả để làm mẫu
Bộ công cụ này đã được sử dụng để đánh giá chất lượng video cho nhiều mô
phỏng [1, 12] và các phép đo [7]. Nó đã được chứng minh có thể sử dụng được và
khá ổn định. Các kết quả mẫu được cho thấy ở đây và được mô tả ngắn gọn. Hình 6
cho thấy kết quả của việc đánh giá chất lượng video với EvalVid cho một mô phỏng
của việc truyền tải video MPEG-4 trên một đường không dây. Hình này cho biết
phân trăm các khung với 5 mức độ MOS, cột ngoài cùng bên tay phải cho thấy mức
độ MOS của video bản gốc (không có tổn thất mạng). Rõ ràng rằng cách thức màu
đen tồi hoạt động không tốt và rõ ràng rằng chất lượng video đối với hai cách thức
khác tăng tới cái cột tham khảo với các deadlines tăng.
Nhóm V 20 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Hình 6: Ví dụ về đánh giá chất lượng video (mức độ MOS) với EvalVid
Tương tự như vậy, hình 7 cho thấy độ tăng của cảm nhận người sử dụng với
increasing dropping deadlines và cách thức tốt hơn cho một mô phỏng của hệ thống
OFDM. “điểm cảm nhận người dùng” được tính theo các kết quả MOS thu được
với EvalVid. Các cột trong hình này cho thấy tổng số người sử dụng có thể được
cung cấp với MOS.
Nhóm V 21 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
Hình 7: Ví dụ về việc đánh giá chất lượng video (số của người sử dụng
được thỏa mãn) với EvalVid
1.6. Kết luận và các chủ đề cho việc nghiên cứu sau này
Cơ cấu EvalVid có thể được dùng để đánh giá hiệu suất của việc cài đặt mạng
hoặc các mô phỏng nhờ vào độ cảm nhận người sử dụng. Hơn nữa, việc tính toán

trễ, jitter, và tổn thất các gói, khung được thực hiện. Bộ công cụ hiện này hỗ trợ các
ứng dụng luồng video chuẩn MPEG-4 nhưng nó có thể dễ dàng được mở rộng để hỗ
trợ các bộ codecs video khác hoặc thậm chí các ứng dụng khác như luồng thoại
chẳng hạn. Các tình cờ nhất định của bộ giải mã video thông thường (xóa bỏ các
khung bị mất) làm cho nó không thể đánh giá chất lượng được khắc phục. Phép
đánh giá chất lượng video dựa vào PSNR được giới thiệu, càng thuận tiện hơn đặc
biệt cho các chuỗi video dài hơn là dựa vào PSNR trung bình. Bộ công cụ được
thực hiện trong ISO-C cho tính di động tối đa và được thiết kê theo module để dễ
dàng mở rộng với các ứng dụng khác. Nó đã được thử nghiệm thành công với
Windows, Linux và Mac OS X.
Các công cụ của cơ cấu EvalVid được mở rộng liên tục để hỗ trợ các bộ
codecs video khác như H.263, H.26L và H.264 và để hỗ trợ them các chức năng
codec như FGS và đồng bộ lại khung bên trong. Hơn nữa, sự hỗ trợ của chiến lược
bộ đệm tái tạo động là một chủ đề của các nghiên cứu sau này. Ngoài ra, nó được
lên kế hoạch để hỗ trợ thêm các ứng dụng khác ví dụ, thoại qua IP (VoIP) và luồng
audio-video được đồng bộ. Cuối cùng nhưng không kém quan trọng các phép đo
khác hơn là dựa vào PSNR sẽ được tích hợp vào cơ cấu EvalVid.
II. Assignment
File .yuv sử dụng là akiyo_cif.yuv được download từ trên mạng. Dung lượng
44.550 KB
Nhóm V 22 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
2.1. Mã hóa
Mã hóa akiyo_cif.yuv thành file akiyo.mp4 sử dụng codec mpeg4, dùng công
cụ ffmpeg
#ffmpeg –s cif –i akiyo_cif.yuv –r 25 –vcodec mpeg4 akiyo_cif.mp4
Hình ảnh capture của file akiyo.mp4 được play bằng phần mềm Windows
Media Player. File akiyou_cif.mp4 có dung lượng 477KB
Nhóm V 23 Lớp 10BĐTVT- KH


Bài tập Truyền thông đa phương tiện
• Nhận xét: So sánh hai file khi chạy ta thấy chất lượng hình ảnh theo dõi bằng mắt
thường không khác nhau nhiều lắm tuy nhiên dung lượng file đã giảm xuống rất
nhiều. Tỉ lệ nén của video ở đây là:
44550
93.396
477
R
= =
Như vậy, việc mã hóa đã giúp cho dung lượng file được giảm xuống rất nhiều
trong khi chất lượng video mã hóa vẫn chấp nhận được. Tùy theo các tham số sử
dụng khi mã hóa chúng ta sẽ có được các file video mã hóa với các tỉ lệ nén và
chất lượng khác nhau.
2.2. Giải mã
Giải mã file akiyou_cif.mp4 sử dụng ffmpeg ta có file video thô được tái tạo
akiyou_cif_decoded.yuv
Nhóm V 24 Lớp 10BĐTVT- KH

Bài tập Truyền thông đa phương tiện
# ffmpeg –i akiyou_cif.mp4 akiyou_cif_decoded.yuv
− Sử dụng công cụ psnr trong Evalvid để đo PSNR
# psnr 352 288 420 akiyo_cif.yuv akiyou_cif_decoded.yuv > psnr.txt
Một số giá trị PSNR trong file psnr.txt như sau:
44.015
44.015
44.015
44.015
44.015
44.015

44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
44.015
….
Copy các giá trị này vào trong Excel và tiến hành vẽ đồ thị ta có đồ thị kết quả
PSNR như sau:
Nhóm V 25 Lớp 10BĐTVT- KH

×