3 MỞ ĐẦU
Trong những năm gần đây, cùng với bƣớc tiến của ngành công nghệ thông tin và
truyền thông, mạng không dây ngày càng phát triển và tỏ ra là một trong những công
nghệ trong thời đại mới. Một trong những công nghệ mạng không dây đƣợc sử dụng
phổ biến và đƣợc triển khai nhiều tới các thiết bị đầu cuối hiện nay là IEEE 802.11
WLAN, cùng với xu hƣớng hội tụ các dịch vụ nó đã đem lại một thời kỳ phát triển rực
rỡ cho các thiết bị di động. Trên cùng một hạ tầng mạng sẽ truyền tải rất nhiều các
dịch vụ khác nhau vì thế cần có những cơ chế đảm báo chất lƣợng dịch vụ dựa trên
phân loại dịch vụ và theo độ ƣu tiên. Vì thế một tiêu chuẩn hỗ trợ những yêu cầu đa
dạng về chất lƣợng dịch vụ đã ra đời là IEEE 802.11e. Nó xác định bốn loại truy cập
có những ƣu tiên truyền dẫn khác nhau, và việc phân bổ dữ liệu vào các truy cập này
dựa trên đặc tính của dữ liệu truyền, đƣợc quy định thành bốn dạng: Voice, Video,
Best effort và Background. Cùng với sự phát triển của truyền thông thì nhu cầu truyền
dẫn Video trên mạng không dây ngày càng tăng, và với đặc thù của luồng dữ liệu cần
độ ƣu tiên cao thì khi truyền dịch vụ trên 802.11e là chƣa đủ, đòi hỏi những thuật toán
tối ƣu hơn để tăng chất lƣợng dịch vụ truyền Video. Đã có rất nhiều các bài báo khoa
học và công trình nghiên cứ về việc tối ƣu lại giao thức 802.11e cho việc truyền
Video nhƣng nổi bật nhất là hai thuật toán ánh xạ tĩnh và ánh xạ động, trong luận văn
này tôi xin đi sâu vào phân tích và so sánh hai thuật toán này đồng thời mô phỏng trên
phần mềm NS2 và tối ƣu hóa các tham số để có thể cải thiện đƣợc chất lƣợng truyền
Video tốt hơn.
4 Mục lục
MỞ ĐẦU 3
Danh mục các hình vẽ 5
Danh mục các ký hiệu và chữ viết tắt 6
Hình 11. Vẽ đồ thị 30
Hình 12. Kết quả mô phỏng truyền 2 gói Video sử dụng 802.11e EDCA 31
Hình 13. Kết quả truyền 2 gói Video sử dụng Ánh xạ tĩnh 32
Hình 14. Kết quả truyền 2 gói Video sử dụng Ánh xạ động 33
6 Danh mục các ký hiệu và chữ viết tắt
Chữ viết tắt
Ý nghĩa
AC
Access Cagegory: Truy cập
B
Bidirectional Predicted Picture: khung B trong Video
CWmin
Contention Window
DSM
Digital Storage Media: lưu trữ nội dung đa phương tiện
EDCA
Enhanced Distributed Channel Access: phương pháp điều khiển truy cập nâng cao
GOP
group of picture: Nhóm ảnh
I
Intra – Picture: khung I trong video
MPEG
Moving Picture Expert Group: Tiêu chuẩn Video
P
Predicted – Picture: Khung P trong video
Chƣơng 4 là phần chính của luận văn, tập trung vào việc mô phỏng truyền Video qua
3 thuật toán 802.11e EDCA, ánh xạ tĩnh và ánh xạ động qua đó đánh giá hiệu suất của
các thuật toán và đánh giá lại gia trị các tham số trong thuật toán ánh xạ động, nhằm
tối ƣu việc truyền tải Video
8
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 CHUẨN NÉN MPEG-4
Chuẩn MPEG (Moving Picture Expert Group) là chuỗi chuẩn video với mục
đích mã hóa tín hiệu hình ảnh và âm thanh cho DSM (Digital Storage Media) tốc độ
từ 1.5 đến 50 Mbit/s và đƣợc biết đến nhƣ là: MPEG-1, MPEG-2, MPEG-4 Các
chuẩn MPEG tiến tới tối ƣu hóa cho các ứng dụng video động và các đặc điểm của nó
cũng bao gồm một thuật toán cho việc nén dữ liệu Audio với tỷ lệ là 5:1 cho tới 10:1.
Trong chuẩn MPEG, ngƣời ta định nghĩa các loại ảnh khác nhau cho phép sự linh
hoạt để cân nhắc giữa hiệu quả mã hóa và truy cập ngẫu nhiên. Các loại ảnh đó nhƣ
sau:
Ảnh loại I (Intra – Picture): là ảnh đƣợc mã hóa riêng, ảnh I chứa dữ liệu để tái
tạo lại toàn bộ hình ảnh vì chúng đƣợc tạo thành bằng thông tin của chỉ một
ảnh. Ảnh I cho phép truy cập ngẫu nhiên, tuy nhiên đạt đƣợc tỉ lệ nén thấp nhất
Ảnh loại P (Predicted – Picture): là ảnh mã hóa có bù chuyển động từ ảnh I
hoặc ảnh P phía trƣớc (ảnh dự đoán trƣớc). Ảnh P cung cấp các hệ số nén cao
hơn ảnh I.
Ảnh loại B (Bidirectional Predicted Picture): là ảnh đƣợc mã hóa sử dụng bù
chuyển động từ ảnh I và ảnh P phía trƣớc và sau (ảnh dự đoán hai chiều). Ảnh
B có tỉ lệ nén cao nhất.
Nhóm ảnh GOP (group of picture): đối với chuẩn MPEG, chất lƣợng ảnh
không những phụ thuộc vào tỷ lệ nén trong từng khuôn hình mà còn phụ thuộc
vào độ dài của nhóm ảnh. Nhóm ảnh là một khái niệm cơ bản của MPEG, nó là
này GOP có thể bao gồm 12 ảnh.
10
Hình 2. Ví dụ về GOP MPEG
2.2 IEEE 802.11e EDCA (Enhanced Distributed Channel Access)
IEEE 802.11e EDCA phân loại lƣu lƣợng truy cập thành bốn AC (nhƣ minh họa trong
hình 2). Bốn loại truy cập bao gồm AC _VO (lƣu lƣợng truy cập Audio), AC_VI (lƣu
lƣợng truy cập video), AC_BE (lƣu lƣợng best efford), và AC _BK (lƣu lƣợng nền
(background)). Để đơn giản hóa các ký hiệu, ta đặt AC_VO là AC3, AC_VI là AC2,
AC_BE là AC1, và AC_BK là AC0. Mỗi AC có hàng đợi đệm riêng của nó và hoạt
động nhƣ một thực thể backoff độc lập. Ƣu tiên giữa các AC sau đó đƣợc xác định
bởi các thông số riêng của từng AC, đƣợc gọi là bộ tham số EDCA. Bộ tham số
EDCA bao gồm kích thƣớc tối thiểu của Contention Window (CWmin), kích thƣớc
tối đa của Contention Window (CWmax), Arbitration Inter Frame Space (AIFS), và
giới hạn cơ hội truyền (TXOPlimit). Các giá trị đƣợc chuẩn này khuyến cáo cho từng
thông số của cơ chế đƣợc trình bày trong bảng dƣới.
11
Hình 3. Bốn loại truy cập trong IEEE 802.11e
Các tham số 802.11e EDCD.
Priority
AC
Designation
AIFSN
CWmin
Hình 3 trình bày các hoạt động trong 802.11e EDCA. AC với AIFS nhỏ nhất có ƣu
tiên cao nhất, và một trạm cần phải đƣợc trì hoãn hoạt động cho khoảng AIFS tƣơng
ứng của nó. Giá trị tham số (nhƣ AIFS CWmin và CWmax) càng nhỏ thì xác suất
đƣợc truy cập vào môi trƣờng truyền tải càng lớn. Mỗi AC trong một trạm hoạt động
nhƣ một trạm ảo cá thể: nó cạnh tranh để truy cập vào môi trƣờng truyền dẫn và bắt
đầu thủ tục backoff của nó một cách độc lập sau khi phát hiện các kênh rỗi trong
khoảng thời gian ít nhất một AIFS. Khi AC đụng độ nhau trong cùng một trạm, AC
với ƣu tiên cao hơn đƣợc cấp cơ hội để truyền tải, trong khi AC với ƣu tiên thấp hơn
12 sẽ gặp phải một cuộc đụng độ ảo, tƣơng tự nhƣ một vụ đụng độ thực tế xảy ra bên
ngoài trạm.
Hình 4. Các hoạt động của IEEE 802.11e EDCA
CHƯƠNG 3: THUẬT TOÁN ÁNH XẠ TĨNH VÀ ÁNH XẠ ĐỘNG
3.1 ÁNH XẠ TĨNH
Để hỗ trợ việc truyền tải theo chất lƣợng dịch vụ của một video đƣợc mã hóa theo cấp
bậc trên một mạng IEEE 802.11e, một kiến trúc theo thiết kế đa lớp đã đƣợc đề xuất.
Nhƣ thể hiện trong hình 4, các tác giả của kiến trúc này đề xuất một thuật toán ánh xạ,
dựa trên các đặc điểm kỹ thuật về lƣu lƣợng truy cập của IEEE 802.11e EDCA, và dữ
liệu video đƣợc mã hóa H.264 đƣợc phân bổ vào các hàng đợi AC đƣợc ƣu tiên khác
nhau tùy theo độ quan trọng của mã hóa video. Tuy nhiên, thuật toán này có tính tĩnh
và không thích ứng cao. Khi tải mạng nhẹ, các dữ liệu video đƣợc ánh xạ tới AC với
ƣu tiên thấp hơn sẽ dẫn đến sự chậm trễ không đáng có trong truyền dẫn và tổn thất
gói. Theo đó, nếu luồng video MPEG-4 đƣợc truyền đi nhƣ là lƣu lƣợng truy cập cho
các thuật toán ánh xạ đƣợc đề xuất trong [2], khung I sẽ luôn luôn đƣợc ánh xạ tới AC
[2], trong khi khung P sẽ đƣợc ánh xạ tới AC [1] và B khung sẽ đƣợc ánh xạ tới AC
hội truyền tải ở lớp MAC đƣợc thiết lập với các khung I là cao nhất, độ ƣu tiên của
các khung P dƣới I nhƣng trên B, và các khung B đƣợc thiết lập ở mức ƣu tiên thấp
nhất. Để phân bổ dữ liệu video quan trọng vào hàng đợi AC ƣu tiên cao hơn trong lớp
802.11e MAC càng nhiều càng tốt, chúng tôi cung cấp các xác suất ánh xạ khác nhau,
đƣợc định nghĩa là Prob_TYPE, cho các loại khung hình video khác nhau theo mã
15 hóa độ quan trọng của nó. Nếu phân bổ một khung vào một hàng đợi ƣu tiên thấp hơn
là không thể tránh khỏi, xác suất phân bổ truyền tải của khung hình có độ quan trọng
thấp hơn là cao hơn so với khung hình video có độ quan trọng cao hơn. Loại khung
video ít quan trọng hơn sẽ đƣợc chỉ định Prob_TYPE lớn hơn. Kết quả là, đối với các
codec MPEG-4, Prob_B> Prob_P> Prob_I, và tất cả các xác suất có giá trị nằm giữa 0
và 1.
Hơn nữa, để chủ động thích ứng với những thay đổi trong tải lƣu lƣợng mạng, ta sử
dụng chiều dài hàng đợi MAC nhƣ là một chỉ dấu về tải trọng lƣu lƣợng mạng lƣới
hiện tại. Theo các đặc điểm kỹ thuật IEEE 802.11e, khi truyền qua mạng không dây
IEEE 802.11e, gói video MPEG-4 đƣợc đặt trong AC2 với cơ hội tốt hơn để truy cập
vào kênh so với các AC có ƣu tiên thấp hơn. Tuy nhiên, khi video tăng dòng, hàng đợi
này nhanh chóng ùn tắc và mất hình xảy ra. Vì lý do này, các thuật toán ánh xạ sắp
xếp lại các gói video nhận đƣợc trong thời gian gần nhất vào hàng đợi khác có độ ƣu
tiên thấp hơn, trong lúc hàng đợi của AC2 đang bị đầy. Ở đây hai tham số đƣợc áp
dụng, đó là threshold_low và threshold_high, để dự đoán trƣớc nhằm tránh các tắc
nghẽn có thể xảy ra bằng cách thực hiện trƣớc việc quản lý hàng đợi. Hai thông số
trên đƣợc áp dụng trong thuật toán của biểu thức sau đây: Trong hàm này, xác suất ánh xạ theo hƣớng đi xuống đƣợc xác định trƣớc ở thời điểm
ban đầu của từng loại khung hình video, Prob_TYPE sẽ đƣợc điều chỉnh tùy theo
chiều dài hàng đợi hiện tại và các giá trị ngƣỡng, và kết quả sẽ là một xác suất ánh xạ
else if(qlen(AC[2]) > threshold_high){
if(RN > Prob_TYPE){
video frame -> AC[1];
else
17 video frame -> AC[0];
} Trong các thuật toán ánh xạ đƣợc hiển thị trong hình 6, khi một gói tin video đến, đầu
tiên chiều dài hàng đợi của AC2 (qlen (AC [2])) sẽ đƣợc kiểm tra và so sánh với các
các giá trị ngƣỡng threshold_high và threshold_low. Nếu chiều dài hàng đợi thấp hơn
giá trị ngƣỡng thấp hơn, threshold_low (tải nhẹ), các dữ liệu video sẽ đƣợc ánh xạ tới
AC [2] (áp dụng cho mọi loại dữ liệu video đƣợc chuyển). Nhƣng nếu chiều dài hàng
đợi lớn hơn giá trị ngƣỡng lớn hơn, threshold_high (lƣu lƣợng tải video nặng) các dữ
liệu video đƣợc ánh xạ trực tiếp đến hàng đợi có độ ƣu tiên thấp hơn, AC [1] hoặc AC
[0]. Tuy nhiên, trong khi chiều dài hàng đợi của AC [2] nằm giữa khoảng
threshold_high và threshold_low, quyết định ánh xạ đƣợc xác định dựa trên cả xác
suất ánh xạ (prob_TYPE) và hiện trạng kích thƣớc bộ đệm của hàng đợi nhƣ đƣợc
đƣa ra bởi công thức (1). Do đó, các gói tin dữ liệu video sẽ đƣợc ánh xạ tới AC [2],
AC [1] hoặc AC [0] theo khả năng ánh xạ có tính đi xuống. Bằng cách khai thác một
sơ đồ ƣu tiên và chiến lƣợc quản lý chiều dài hàng đợi, các truyền dẫn sẽ đƣợc ƣu tiên
và tỷ lệ mất hình video sẽ đƣợc giảm thiểu, cùng đó là sự hiệu quả trong tận dụng tài
nguyên mạng.
18 Gói tin vào
Buffer size
RN: Số ngẫu nhiên
Hình 7. Thuật toán ánh xạ động
# 802.11e
proc getopt {argc argv} {
global opt
lappend optlist nn
for {set i 0} {$i < $argc} {incr i} {
set opt($i) [lindex $argv $i]
19 }
}
#1 mapping type (0: 802.11e, 1: static mapping, 2: dynamic mapping);
#2 number of voice flows (AC_3) ;
#3 number of video flows (AC_2) ;
#4 number of TCP flows (AC_1) ;
#5 number of CBR flows (AC_0) ;
getopt $argc $argv set packetSize 1500
set max_fragmented_size 1024
set val(chan) Channel/WirelessChannel ;# channel type
set val(prop) Propagation/TwoRayGround ;# radio-propagation model
create-god 2
# create channel
set chan [new $val(chan)]
$ns node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channel $chan \
-topoInstance $topo \
-agentTrace OFF \
-routerTrace OFF \
-macTrace OFF \
-movementTrace OFF
21 for {set i 0} {$i < 2} {incr i} {
set node_($i) [$ns node]
$node_($i) random-motion 0
}
#MH(0) > MH(1) only tow host
$node_(0) set X_ 30.0
set udp($i) [new Agent/my_UDP]
$ns attach-agent $node_(0) $udp($i)
$udp($i) set packetSize_ $packetSize
$udp($i) set_filename sd_foreman_$i
set null($i) [new Agent/myEvalvid_Sink]
$ns attach-agent $node_(1) $null($i)
$ns connect $udp($i) $null($i)
$null($i) set_filename rd_foreman_$i
set original_file_name($i) foreman_qcif.st
set trace_file_name($i) video($i).dat
set original_file_id($i) [open $original_file_name($i) r]
set trace_file_id($i) [open $trace_file_name($i) w]
set pre_time 0
set totalByte_I 0
set totalByte_P 0
set totalByte_B 0
set totalPkt_I 0
set totalPkt_P 0
set totalPkt_B 0
while {[eof $original_file_id($i)] == 0} {
gets $original_file_id($i) current_line
scan $current_line "%d%s%d%d%f" no_ frametype_ length_ tmp1_ tmp2_
set time [expr int(($tmp2_ - $pre_time)*1000000.0)]
if { $frametype_ == "I" } {
set type_v 1
$max_fragmented_size"
set pre_time $tmp2_
}
set totalPkt [expr int($totalPkt_I+$totalPkt_P+$totalPkt_B)]
24 set totalByte [expr int($totalByte_I+$totalByte_P+$totalByte_B)]
close $original_file_id($i)
close $trace_file_id($i)
set end_sim_time $tmp2_
puts "end_sim_time: $end_sim_time"
set trace_file($i) [new Tracefile]
$trace_file($i) filename $trace_file_name($i)
set video($i) [new Application/Traffic/myEvalvid]
$video($i) attach-agent $udp($i)
$video($i) attach-tracefile $trace_file($i)
$ns at [expr 10.0 ] "$video($i) start"
$ns at [expr 50.0] "$video($i) stop"
$ns at [expr 50.0] "$null($i) closefile"
$ns at [expr 50.0] "$null($i) printstatus"
}
#3rd priority traffic (CBR)
for {set i 0} {$i < $opt(CBRflow) } {incr i} {
$ftp($i) attach-agent $tcp($i)
$ns at 15.0 "$ftp($i) start"
$ns at 30.0 "$ftp($i) stop"
}
set n0_ifq [$node_(0) set ifq_(0)]
$n0_ifq set choice $opt(choice)
$n0_ifq set threshold1 10 # low threshold of queue length
$n0_ifq set threshold2 40 # high threshold of queue length
$n0_ifq set prob0 0 # Prob_I
$n0_ifq set prob1 0.6 # Prob_P
$n0_ifq set prob2 0.9 # Prob_B
$ns at 0.0 "record4"
26 set f4 [open
queuelength_choice_$opt(choice)_voice_$opt(voiceflow)_video_$opt(videoflow)_FT
P_$opt(TCPflow)_CBR_$opt(CBRflow).txt w]
proc record4 {} {
global ns n0_ifq f4
set time 0.01
set now [$ns now]
set qlen0 0
set qlen1 0
set qlen2 0
set qlen3 0
CHƯƠNG 4: MÔ PHỎNG
4.1 KỊCH BẢN MÔ PHỎNG
Để đánh giá hiệu suất của thuật toán ánh xạ xuyên lớp, tôi đã tiến hành mô phỏng
bằng cách sử dụng hệ thống mô phỏng mạng đƣợc áp dụng rộng rãi NS-2, và tích hợp
với EvalVid. Các kết quả của các thuật toán ánh xạ đƣợc so sánh với các kết quả rút
ra từ IEEE 802.11e EDCA [1] và các thuật toán ánh xạ tĩnh trong [2]. Nguồn video
đƣợc sử dụng trong mô phỏng là YUV QCIF (176 x 144), Foreman. Mỗi khung hình
video đƣợc chia nhỏ thành các gói dữ liệu trƣớc khi truyền, và kích thƣớc tối đa của
gói tin truyền tải qua mạng mô phỏng là 1000 byte. Bảng dƣới cho thấy số lƣợng
khung hình video và số lƣợng gói tin của video gốc. Hình 8 trình bày mô phỏng cấu
trúc liên kết trong các thí nghiệm. Có tám nút không dây ad-hoc, một trong đó là máy
chủ chủ và một cái khác là máy nhận video. Tốc độ truyền dữ liệu của liên kết không
dây là 1Mbps.
Số lƣợng khung hình video và các gói tin của video gốc.
Video
Format
Frame number
Total
Packet number
Total
I
P
B
I
P
B
Foreman
QCIF
45