最佳平順演算法的模擬與討論
3.1 最佳平順演算法針對 video trace 的模擬結果
測試 video 為經 MPEG4 壓縮產生的 video trace file,測試檔來源 於[11],檔名 terminator1。它的統計資料為 mean frame size=325.6381
byte,peak frame size=3455 byte,variance = 274.2755,video trace 如 圖 3.1 所示。可以看出其變異程度相當大。
圖 3.1(a)
以下分別就不同緩衝區大小,來看其結果:
1、以 startup delay =0.5s, buffer=8KB 情況去作 smoothing,8K 相當是 約是原本 mean frame size 的 25 倍,大約可以一次裝 25 個 frame,
容許延遲大概是 0.8sec。以這樣的緩衝區去作模擬,得到結果如 圖 3.1(b)。其 peak frame size 變為 1210.1byte, variance 變為
118.4318。
2、以 startup delay =0.5s, buffer=64KB 情況去作 smoothing,64K 相當 是約是原本 mean frame size 的 202 倍,大約可以一次裝 202 個
frame,容許延遲大概是 6.7sec。以這樣的緩衝區去跑得到結果如 圖 3.1(c)。其 peak frame size 變為 690.5363byte, variance 變為 91.0084。
3、以 startup delay =0.5s, buffer=128KB 情況去作 smoothing,128K 相 當是約是原本 mean frame size 的 402 倍,大約可以一次裝 403 個 frame,容許延遲大概是 13.4sec。得到結果如圖 3.1(d)。其 peak frame size 變為 568.4664byte, variance 變為 79.1860。
4、以 startup delay =0.5s, buffer=1024KB 情況去作 smoothing,1024K 相當是約是原本 mean frame size 的 3226 倍,大約可以一次裝 3226 個 frame,容許延遲大概是 1min 48sec。以這樣緩衝區去跑,得到 結果如圖 3.1(e)。peak frame size 變為 375.7135byte, variance 變為 34.4548。
0 2 4 6 8 10 12
0 2 4 6 8 10 12
以眼睛直觀的來看,也可以明顯看出平順程度有大大的增加,由 數據來看標準差(variance)也確實隨緩衝區大小的增加而減小,峰值 (peak rate)也是有隨緩衝區大小的增大而減小的趨勢(peak rate = peak frame size×30)。不過光是數據分別看,可能還看不清其差異度有多 大,整合在一起關係圖可能更看的出其差別:標準差和緩衝區大小 間、峰值和緩衝區大小間關係圖如圖 3.2(a)、3.2(b)所示。
0 2 4 6 8 10 12 14 16
0 50 100 150 200 250 300
buffer ( 8k bytes )
standard deviation
圖 3.2(a) standard deviation versus buffer size
0 2 4 6 8 10 12 14 16 0
500 1000 1500 2000 2500 3000 3500
buffer ( 8k bytes )
peak frame size(byte)
圖 3.2(b) peak frame size versus buffer size
光是看數值關係圖可能還看不出效益的差異程度,所以我們以下 用 normalized 過的值再來看看。所用的 normalize 的方式,就是將每 個經平順產生的結果值除以原本未平順的值。圖如 3.2(c)3.2(d)所示。
0 2 4 6 8 10 12 14 16
Normalized standard deviation
圖 3.2(c) Normalized standard deviation versus buffer size
0 2 4 6 8 10 12 14 16
Normalized peak frame size
圖 3.2(d) Normalized peak frame size versus buffer size
由圖 3.2(c)看出只用了 16KB 的緩衝區大小就可以將標準差降低 67%;由圖 3.2(d)看出只用了 16KB 的緩衝區大小就可以將峰值降低 80%。效益其實相當大,用一點點的緩衝區(16KB 相當可以存這樣的 video trace 50 張 frame)就可以使得原本的值降到很低。
由於以上緩衝區大小只測到 128kbyte,我們將它延深至 1024k byte 可能更看的出全面的效果。如圖 3.3 所示。
standard deviation versus buffer size
0 50 100 150
peak frame size(byte)
peak frame size versus buffer size
0 50 100 150
Normalized standard deviation
0 50 100 150
Normalized peak frame size
圖 3.3 variance and peak rate versus buffer size(0~1024KB)
因為個演算法本來就是在標準差上作上的最佳化,每一段都儘量 延伸,當緩衝區愈大的時候,可以選擇的區間愈大,可以選到一個延 伸更遠不轉折的線段的可能性也愈大,而且它在轉折的選擇上也是選 取使速率改變最小的線段,所以標準差會隨著緩衝區增大而漸減。不 過對峰值而言,光是可以延伸愈遠不變,並不表示 rate 就一定比較 小,不過因為緩衝區愈大,轉折愈少,需要一下子 rate 爬升的機會也 會減少,rate 變小的機率也比較大,但這似乎不也意味峰值也必然因 此減少。有關峰值隨緩衝區變大而變小的原因,詳細說明如下。
圖 3.4(a)
[5]中有證明 buffer size 大的轉折點是 buffer size 小的轉折點的子 集,所以我們可以作以下的假設。圖 3.4(a)虛線部分為原本排程的某 兩兩個區段,如果我們將 buffer size 加大到轉折點不見變一個區段。
如實線所示,明顯可以看出後來的區段 peak rate 較小。因為原本的 accumulative
data
frame index
區段雖有兩個,但是一個斜率雖小,另一個卻大,那個大的就已經超 過原本的 peak rate 了。
如果兩個區段不準,我們看更多區段的情況,圖 3.4(b)如果原本
buffer size 小的時候 schedule 如下圖的虛線,buffer size 大之後的是實 線,明顯也看出原本的 peak rate 較大。雖然最後的累積量是一樣,可 是平緩上升的方式,peak rate 會比較小。想要全部都用比較小的 rate 要累積相同的量根本就不可能,只要一段變小一點,另一段就要變大 一點,那個變大的部分就會超過平順之後的 peak rate。(這次重疊的 轉折點有三點)
圖 3.4(b)
圖 3.4(c)是每單位時間傳送的資料量,不是累積的資料量,虛線 是 buffer size 小的時候最佳平順的結果,實線是 buffer size 大的時候 最佳平順的結果。雖然累積的量相同,不過原本 buffer size 小的時候
accumulative data
frame index
peak rate 比較大,由這樣的示意圖也可以看出。
所以 buffer size 愈大,peak rate 愈小也是正確的結果。只是 buffer
size 大到一個程度再加大,peak rate 改變的幅度會愈來愈小,後來會 趨近理想值,也就是整個 video trace 的 mean rate。
圖 3.4(c)
如果我們在某一時間隔想讓那時間間隔裡的峰值變小,我們就可 以調大緩衝區,大到讓一些轉折點消失,那部分的排程變會比較平 順。如果可以將彈性調整緩衝區的機制加到排程內,便可以讓整個排 程的可適性更大,資源利用也更有效率。利用這個理論,同理也可以 推出整體速率標準差會隨緩衝區愈大而愈來愈小。