Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 1 Lӟp 10BĐTVT- KH
MӨC LӨC
MӨC LӨC 1
DANH MӨC HÌ NH VӀ 2
DANH MӨC BҦNG 2
I. EvalVid- Cơ cҩu cho truyӅn video và đánh giá chҩt lưӧng 3
1.1. Giӟi thiӋu 3
1.2. Cơ cҩu và thiӃt kӃ 4
1.3. Các chӭc năng hӛ trӧ 6
1.3.1. Xác đ͓nh t͝n th̭t gói tin và t͝n th̭t khung 6
1.3.2. Đánh giá ch̭t lưͫng video 9
1.4. Các công cө 11
1.4.1. C̭u trúc dͷ li͏u và files 11
1.4.2. B͡ g͵i video- VS 12
1.4.3. ET ± Evaluate Traces 13
1.4.4. Fix Video- FV 16
1.4.5. PSNR- đánh giá ch̭t lưͫng 18
1.4.6. Tính toán MOS 19
1.4.7. Nhóm công cͭ thͱ 3 c̯n thi͇t 20
1.5. Các kӃt quҧ đӇ làm mүu 21
1.6. KӃt luұn và các chӫ đӅ cho viӋc nghiên cӭu sau này 22
II. Assignment 23
2.1. Mã hóa 23
2.2. Giҧi mã 25
2.3. ThiӃt lұp mҥng và truyӅn file 26
TÀI LIӊU THAM KHҦO 27
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 2 Lӟp 10BĐTVT- KH
DANH MӨC HÌNH VӀ
Hình 1: Sơ đӗ cơ cҫu đánh giá chҩt lưӧng Video 4
Hình 2: Video CBR MPEG-4 vӟi tӕc đӝ bit đích 200 kbps 7
Hình 4: Ví dө PSNR 19
Hình 5: Ví dө vӅ video đưӧc phân loҥi theo MOS 20
Hình 6: Ví dө vӅ đánh giá chҩt lưӧng video (mӭc đӝ MOS) vӟi EvalVid 21
Hình 7: Ví dө vӅ viӋc đánh giá chҩt lưӧng video vӟi EvalVid 22
DANH MӨC BҦN G
Bҧng 1: Chҩt lưӧng ITU-R và mӭc đӝ suy yӃu 10
Bҧng 2: Possible PSNR to MOS conversion 11
Bҧng 3: Dӳ liӋu liên quan chӭa trong video trace file 12
Bҧng 4: Dӳ liӋu liên quan chӭa trong sender trace file. 12
Bҧng 5: Thӭ tӵ giҧi mã và hiӇn thӏ khung MPEG 17
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 3 Lӟp 10BĐTVT- KH
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Ӊ,
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 4 Lӟp 10BĐTVT- KH
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
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,
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 5 Lӟp 10BĐTVT- KH
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.
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 6 Lӟp 10BĐTVT- KH
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à
³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 %.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 7 Lӟp 10BĐTVT- KH
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)
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 8 Lӟp 10BĐTVT- KH
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ӝ
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 9 Lӟp 10BĐTVT- KH
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
j it it
i
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).
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 10 Lӟp 10BĐTVT- KH
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
( ) 20log
10
2
1
( , , ) ( , , )
0 0
V
peak
PNSR n
dB
N
N
col row
Y n i i Y n i j
DS
N N
i j
row
col
¨ ¸
© ¹
© ¹
© ¹
© ¹
© ¹
« »
© ¹
½
© ¹
ª º
!
§ §
! !
(6)
2 1
k
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:
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 11 Lӟp 10BĐTVT- KH
20log
V
leak
PSNR
MSE
!
,
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.
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ҧ.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 12 Lӟp 10BĐTVT- KH
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
«
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 13 Lӟp 10BĐTVT- KH
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
đưӧ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)
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 14 Lӟp 10BĐTVT- KH
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.
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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 15 Lӟp 10BĐTVT- KH
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:
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 tұp TruyӅn thông đa phương tiӋn
Nhóm V 16 Lӟp 10BĐTVT- KH
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ư
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)
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 17 Lӟp 10BĐTVT- KH
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
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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 18 Lӟp 10BĐTVT- KH
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
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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 19 Lӟp 10BĐTVT- KH
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.
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ưӧn g 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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 20 Lӟp 10BĐTVT- KH
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.
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ӯ
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 21 Lӟp 10BĐTVT- KH
-
-
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.
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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 22 Lӟp 10BĐTVT- KH
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.
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 23 Lӟp 10BĐTVT- KH
II. Assignment
File .yuv sӱ dөng là akiyo_cif.yuv đưӧc download tӯ trên mҥng. Dung lưӧng
44.550 KB
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
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 24 Lӟp 10BĐTVT- KH
Bài tұp TruyӅn thông đa phương tiӋn
Nhóm V 25 Lӟp 10BĐTVT- KH
y 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
# 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
«.