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ý
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
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
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
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
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
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
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
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
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.
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
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ạ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
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