了解各種影響影像傳輸的因素,並了解各個因素之間的關連性。
使用ffmpeg程式將YUV檔轉成m4v檔
使用MP4Box將影片再轉成mp4檔案,不過又出現了錯誤訊息,缺少了msvcr70.dll,於是我就去把lab6的msvcr70.dll複製過來lab8的資料夾裡面,就可以解決了
成功轉成mp4
利用mp4trace程式將影片中每一個frame相關資訊擷取出來並存放到foreman_qcif.st檔案中
使用ns2進行模擬
使用模擬過程中的 sd 、rd 、foreman_qcif.st 、mp4檔案,經由etmp4程式產生一個有畫面遺失的影片mp4檔
再使用ffmpeg將重建之後的mp4檔回復成yuv影片檔
使用avgpsnr去針對重建後yuv影片檔及原始yuv影片檔,獲得重建後的yuv影片的平均PSNR為
26.609726(跟課本上的PSNR=26.64差了ㄧ點)
a.產生GOP length 9的方式
b.產生 GOP length 15的方式
Sunday, March 30, 2008
實驗七 MyEalvid-NT
了解如何使用 MyEalvid-NT去評量多媒體網路的效能,並使用 MyEalvid-NT去驗證所得知可解畫面比例分析模型
首先下載video traffic trace file 打開檔案把前兩行的敘述移除,並使用ns2進行模擬
在進行評估分析之前,必須先轉換trace file的格式,使用下列的敘述去進行轉換,所獲得的Verbose_StarWarsIV.st即是相關的影片記錄檔
使用et程式去進行評估分析的動作
經由下面的操作得知封包平均的延遲時間和最大延遲
使用awk繪圖
封包平均的延遲時間和最大延遲
使用awk繪圖畫面平均的延遲時間和最大延遲
畫面平均的延遲時間和最大延遲
使用awk繪圖封包抖動率
使用awk繪圖畫面抖動率
首先下載video traffic trace file 打開檔案把前兩行的敘述移除,並使用ns2進行模擬
在進行評估分析之前,必須先轉換trace file的格式,使用下列的敘述去進行轉換,所獲得的Verbose_StarWarsIV.st即是相關的影片記錄檔
使用et程式去進行評估分析的動作
經由下面的操作得知封包平均的延遲時間和最大延遲
使用awk繪圖
封包平均的延遲時間和最大延遲
使用awk繪圖畫面平均的延遲時間和最大延遲
畫面平均的延遲時間和最大延遲
使用awk繪圖封包抖動率
使用awk繪圖畫面抖動率
Thursday, March 27, 2008
實驗六 MyEvalVid
了解如何使用MyEvalVid來模擬和評估多媒體影像傳輸
模擬網路架構圖
將目錄切換到lab6資料夾底下,使用ffmpeg程式對YUV檔轉成m4v檔案
轉成m4v檔案後,接著使用MPBox將影片轉成mp4檔案,此時出現錯誤訊息,發現少了ㄧ個msvcr70.dll,上網 google一下找到可以下載msvcr70.dll
把下載好的msvcr70.dll 放到 lab6 的資料夾就可以將影片轉成mp4檔案
把影片轉成mp4之後,利用mp4trace程式將影片中的每一個frame相關資訊擷取出來並存放到foreman_qcif.st的檔案中
這是foreman_qcif.st的檔案
使用ns2模擬工具去模擬網路效能,採用random uniform error model & multicast傳送,並把錯誤率設為0.01,seed為1,最大的封包大小為1024bytes
傳送端送出了659個封包
接收端只收到了651個封包,遺失率為(659-651)/659 = 0.012
使用sd檔、rd檔及foreman_qcif.st和mp4檔,經由etmp4產生一個有畫面遺失的影片mp4,但是當我打入指令的時候一直會有需要偵錯出現,不信邪又試了很多遍還是ㄧ樣,於是停滯不前了ㄧ個禮拜。禮拜四上課的時候突然靈機ㄧ動,想說如果把課本的指令./拿掉試看看沒想到就成功了
在使用ffmpeg程式將重建後的mp4回覆成yuv檔
使用avgpsnr 程式去針對重建後的yuv影片檔及原始yuv影片檔,獲得重建之後yuv影片的PSNR值為33.294933
使用YUV viewwe程式去觀賞重建後的影片與原始影片的差別,左半部影像為原始影像檔,右半部影像為重建影像
終於成功完成了,中間有ㄧ度卡很久沒辦法成功,不過影片中的人的臉有點冏。
模擬網路架構圖
將目錄切換到lab6資料夾底下,使用ffmpeg程式對YUV檔轉成m4v檔案
轉成m4v檔案後,接著使用MPBox將影片轉成mp4檔案,此時出現錯誤訊息,發現少了ㄧ個msvcr70.dll,上網 google一下找到可以下載msvcr70.dll
把下載好的msvcr70.dll 放到 lab6 的資料夾就可以將影片轉成mp4檔案
把影片轉成mp4之後,利用mp4trace程式將影片中的每一個frame相關資訊擷取出來並存放到foreman_qcif.st的檔案中
這是foreman_qcif.st的檔案
使用ns2模擬工具去模擬網路效能,採用random uniform error model & multicast傳送,並把錯誤率設為0.01,seed為1,最大的封包大小為1024bytes
傳送端送出了659個封包
接收端只收到了651個封包,遺失率為(659-651)/659 = 0.012
使用sd檔、rd檔及foreman_qcif.st和mp4檔,經由etmp4產生一個有畫面遺失的影片mp4,但是當我打入指令的時候一直會有需要偵錯出現,不信邪又試了很多遍還是ㄧ樣,於是停滯不前了ㄧ個禮拜。禮拜四上課的時候突然靈機ㄧ動,想說如果把課本的指令./拿掉試看看沒想到就成功了
在使用ffmpeg程式將重建後的mp4回覆成yuv檔
使用avgpsnr 程式去針對重建後的yuv影片檔及原始yuv影片檔,獲得重建之後yuv影片的PSNR值為33.294933
使用YUV viewwe程式去觀賞重建後的影片與原始影片的差別,左半部影像為原始影像檔,右半部影像為重建影像
終於成功完成了,中間有ㄧ度卡很久沒辦法成功,不過影片中的人的臉有點冏。
Sunday, March 23, 2008
實驗五 無線網路封包傳輸遺失模型
介紹無線網路封包傳輸遺失模型,了解Multicast & Unicast 的傳輸模式對於封包傳輸遺失機率的影響。
情境一
使用隨機統一模型(PG=0.1,loss_model=0) 和 Multicast傳送(comm_type=0)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-11124)/12351 = 0.999
情境二
使用隨機統一模型(PG=0.4,loss_model=0) 和 Multicast傳送(comm_type=1)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-12061)/12351 = 0.0234
情境三
使用隨機統一模型(PGG=0.96,PBB=0.94,PG=0.001,PB=0.05,loss_model=1) 和 Multicast傳送(comm_type=0)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-12118)/12351 = 0.0188
情境一
使用隨機統一模型(PG=0.1,loss_model=0) 和 Multicast傳送(comm_type=0)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-11124)/12351 = 0.999
情境二
使用隨機統一模型(PG=0.4,loss_model=0) 和 Multicast傳送(comm_type=1)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-12061)/12351 = 0.0234
情境三
使用隨機統一模型(PGG=0.96,PBB=0.94,PG=0.001,PB=0.05,loss_model=1) 和 Multicast傳送(comm_type=0)
產生傳送紀錄檔(sd)共有12351個封包被送出
接收記錄檔(rd)共有11124封包被接收 遺失率:(12351-12118)/12351 = 0.0188
Friday, March 14, 2008
實驗四 網路效能測量
學習如何測量以UDP為傳輸協定的應用程式之throughput、packet delay、packet jitter和packet loss rate,並且學習如何量測以TCP為傳輸協定的應用程式之throughput。
由於目前我們還無法獨自撰寫TCL檔,於是便使用課本上所附之範例來進行模擬。
example 1 有線網路
首先切換到TCL檔所儲存的目錄底下,輸入「ns wired-measure.tcl」來執行
模擬結束之後會產生tcp_sink、sd_udp和rd_udp三個記錄檔
從sd_udp檔案中,可得知有550筆記錄
從rd_udp檔案中,可得知有542筆記錄,所以總共有8個封包遺失,遺失率為8/550=1.45%
使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中
使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」
畫出來的圖
設定X軸跟Y軸,並且存成gif的圖檔
cbr_delay的圖
使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」
使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」
畫出來的圖
設定X軸跟Y軸,並且存成gif的圖檔
使用Perl分析UDP throughput(measure-throughput.pl)
使用「perl measure-throughput.pl rd_udp 0.5」每0.5秒去統計這段時間的平均吞吐量,執行結果中的第ㄧ欄是時間,第二欄是這段時間內的平均吞吐量,最後是平均吞吐量(Average rate)和最高吞吐量(Peak rate)
使用Perl分析TCP throughput(measure-TCP.pl)
使用「perl measure-TCP.pl tcp_sink 0.5」去執行
example 2 無線網路
首先切換到TCL檔所儲存的目錄底下,輸入「ns wireless-measure.tcl」來執行,模擬結束之後會產生sd_udp和rd_udp兩個記錄檔
從sd_udp檔案中,可得知有453筆記錄
從rd_udp檔案中,可得知有205筆記錄,所以總共有248個封包遺失,遺失率為248/453=54.74%
使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中
使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔
使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」,並使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔
使用Perl計算 throughput(measure-throughput.pl rd_udp 1)
目前只是按照課本的步驟來模擬,要達到會自己寫TCL來模擬和使用awk或是perl來計算,還有一段很大的差距。
由於目前我們還無法獨自撰寫TCL檔,於是便使用課本上所附之範例來進行模擬。
example 1 有線網路
首先切換到TCL檔所儲存的目錄底下,輸入「ns wired-measure.tcl」來執行
模擬結束之後會產生tcp_sink、sd_udp和rd_udp三個記錄檔
從sd_udp檔案中,可得知有550筆記錄
從rd_udp檔案中,可得知有542筆記錄,所以總共有8個封包遺失,遺失率為8/550=1.45%
使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中
使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」
畫出來的圖
設定X軸跟Y軸,並且存成gif的圖檔
cbr_delay的圖
使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」
使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」
畫出來的圖
設定X軸跟Y軸,並且存成gif的圖檔
使用Perl分析UDP throughput(measure-throughput.pl)
使用「perl measure-throughput.pl rd_udp 0.5」每0.5秒去統計這段時間的平均吞吐量,執行結果中的第ㄧ欄是時間,第二欄是這段時間內的平均吞吐量,最後是平均吞吐量(Average rate)和最高吞吐量(Peak rate)
使用Perl分析TCP throughput(measure-TCP.pl)
使用「perl measure-TCP.pl tcp_sink 0.5」去執行
example 2 無線網路
首先切換到TCL檔所儲存的目錄底下,輸入「ns wireless-measure.tcl」來執行,模擬結束之後會產生sd_udp和rd_udp兩個記錄檔
從sd_udp檔案中,可得知有453筆記錄
從rd_udp檔案中,可得知有205筆記錄,所以總共有248個封包遺失,遺失率為248/453=54.74%
使用「$awk '{print $1, $4 }' rd_udp > cbr_delay」把rd_udp第ㄧ欄(封包序號)和第四欄(封包延遲時間),列印到cbr_delay中
使用gnuplot畫出cbr_delay,輸入「plot "cbr_delay" title 'cbr: packet delay' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔
使用awk分析程式來求得抖動率「$awk -f measure-jitter.awk rd_udp > cbr_jitter」,並使用gnuplot畫出cbr_jitter,輸入「plot "cbr_jitter" title 'cbr: packet jitter' with linespoints 1」,設定X軸跟Y軸,並且存成gif的圖檔
使用Perl計算 throughput(measure-throughput.pl rd_udp 1)
目前只是按照課本的步驟來模擬,要達到會自己寫TCL來模擬和使用awk或是perl來計算,還有一段很大的差距。
Subscribe to:
Posts (Atom)