顯示具有 cygwin 標籤的文章。 顯示所有文章
顯示具有 cygwin 標籤的文章。 顯示所有文章

2008年6月5日 星期四

實驗六: MyEvalVid

實驗目的:


Video Server 傳送影像至 Video Receiver,中間經過Internet 、無線網路,我們討論無線連接造成的封包遺失。

我們針對影像使用MyEvalvid 做Peak to Signal Nosie Ratio 評估,PSNR(峰值訊號雜訊比程式)是一種較為被大眾接受的影像品質鑑定客觀指標。 步驟如下


STEP1


我們使用ffmpeg.exe 把工人(foreman)的YUV檔案轉成m4V檔案


-s => set frame size , qcif means 176*144


-vcodec = >指定壓縮方式,如mpeg4


-r =>set frame rate ,這裡設定每秒30個畫面


-g => set the group of picture size,設定每一group有9個畫面


-bf = >use 'frames' B frames, 設定I與P之間or P與P之間有兩個frame


-i = >input file name,輸入來源影片 foreman_qcif.yuv





STEP2




用MP4Box把 .m4v 再轉成 .mp4


STEP3

用mp4trace.exe 將每一個frame的資訊擷取出來存到forman_qcif.st中

其中 192.168.0.2 is destination ip ,destination port number is 12346

(這邊設定不重要,因為沒有真的傳上網)

現在在lab6裡頭有這四檔案
foreman_qcif.st 裡面有400筆資料
between H and P or P and P have 2 B frame (與壓縮時的參數相關)

STEP4

開始用NS2模擬工具模擬網路效能 (lab6_1.tcl)

參數為 :

opt(0) = good->good 的機率
opt(1) = bad->bad 的機率
opt(2) = 在 good state下,封包發生錯誤的機率
opt(3) = 在 bad state下,封包發生錯誤的機率
opt(4) = seed number
opt(5) = 把每一畫面切成多少size大小的封包

傳送端送出659個封包,但接收端只收到652個封包
遺失率為0.0106
STEP5
使用模擬過程產生的TX記錄檔sd、RX記錄檔rd 與影片記錄檔foreman_qcif.st 和 mp4檔案
經由tmp4產生一個畫面有遺失的影片foreman_qcife.mp4

STEP6

再次使用ffmpeg將重建的foreman_qcife.mp4 轉回foreman_qcife.yuv

STEP7

使用avgpsnr針對重建後的 foreman_qcife.yuv 及原始foreman_qcif.yuv,獲得重建後foreman_qcife.yuv的PSNR值為34.839083

STEP8
接下來用YUViwer.exe真正觀察影片差異

左邊為原始影像,右邊為重建影像
因為封包遺失率為0.01 所以好像也不怎麼明顯
不過放大後看就有差了,畫面會比較霧些

2008年3月4日 星期二

Cygwin 安裝 + NS2

首先 到官網
下載Cygwin 的安裝導向文件 setup.exe ,透過他才能夠正確下載及安裝最新版本的Cygwin


官網右上角有個圖示,點擊此下載



下載完成 點開setup.exe 看看,這個版本為 2.573.2.2
接下來用圖片看步驟...就是選預設囉~





選第一個試試:


沒辦法連上,試看看下一個囉~


成功連上了,不錯~


接下來選擇要安裝的package,目前已知要安裝的有:

gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data
xorg-x11-xwin


點擊右上方的view 切換到以名稱為排序~會比較好選擇






放著等他載完了~
待續~~~~載完OK了~~


來做一些測試


看起來沒什麼問題



有了仿LINUX環境就能安裝NS2了


NS2安裝


依據計算機網路實驗課本所附的光碟,把ns-allinone-2.29.rar copy 到c:\cygwin\home\


點擊 cygwin 進入ns-allinone-2.29/ns-2.29 下執行 ./configure ; make clean ;make depend ; make 進行編譯動作 :

接下來繼續照著課本動作
copy .bashrc 到 :\cygwin\home\嫩嫩 取代原來檔案
copy cygwin1.dll 到 :\cygwin\bin 取代原來檔案

ok~來測試看囉~

chmod.exe 無法找到輸入點 無法找到程序輸入點__isnand (在動態連結程式庫cygwin1.dll)
tr.exe 無法找到輸入點 無法找到程序輸入點__isnand (在動態連結程式庫cygwin1.dll)
sed.exe 無法找到輸入點 無法找到程序輸入點getline (在動態連結程式庫cygwin1.dll)
find.exe 無法找到輸入點 無法找到程序輸入點getline (在動態連結程式庫cygwin1.dll)
sort.exe 無法找到輸入點 無法找到程序輸入點__isnand (在動態連結程式庫cygwin1.dll)
uname.exe 無法找到輸入點 無法找到程序輸入點__isnand (在動態連結程式庫cygwin1.dll)

全部點完,如下圖..


Cygwin消失了一些東西.. "嫩嫩@clarkboy"消失了..

哭了~ 原始的 .bashre 還有cygwin1.dll 直接被取代,沒做備份動作,失策了!
猜測: 書上本來就說使用者名稱不能使用中文..安裝CYGWIN時沒什麼問題,就順勢繼續安裝ns2

把CYGWIN移除,重裝一次 ,為了降低錯誤率,這一次先把使用者名稱"嫩嫩"->"clark"
part II

安裝CYGWIN步驟同第一次,直接跳到測試CYGWIN部分 :



看樣子也沒什麼問題

進行編譯動作



編譯完成
這一次學乖了,先把原始的 .bashre 還有cygwin1.dll 備份起來
果然 cygwin1.dll一取代原始的,就會造成前次的結果,使用原始版本沒問題
接下來就開起XWINDOW:




XWINDOW起來後,開個寫好的範例來看看 :





呼~看樣子是沒問題了,寫了這篇..寫了很久,預覽的時候不小心點了小圖後,寫好的網頁都消失了...
收工~