顯示具有 實驗室 標籤的文章。 顯示所有文章
顯示具有 實驗室 標籤的文章。 顯示所有文章

2009年11月28日 星期六

H.264 Distortion算法

SAD(Sum of Absolute Difference)=SAE(Sum of Absolute Error)即绝对误差和
SATD(Sum of Absolute Transformed Difference)即hadamard变换后再绝对值求和
SSD(Sum of Squared Difference)=SSE(Sum of Squared Error)即差值的平方和
MAD(Mean Absolute Difference)=MAE(Mean Absolute Error)即平均绝对差值
MSD(Mean Squared Difference)=MSE(Mean Squared Error)即平均平方误差

2009年6月9日 星期二

元智圖書館前的人群

時間:2009.06.07
地點:元智圖書館前

雖然我是資工所學生,但是詳細細節我不了解QQ",路過照照相。
DSC06598

DSC06618

DSC06617

DSC06609

DSC06611

DSC06616

DSC06610

DSC06608

DSC06607

DSC06606

DSC06605

DSC06604

DSC06603

DSC06602

DSC06601

DSC06600

DSC06599

2009年6月4日 星期四

論文的結果

小成果
但是PSNR值出來並不理想為26.X多
看的出來的阿芳很失望
image 

北一段、聖稜、新康
曾經這麼期待、迫切

現在,只想找個人
背著帳
沉沉的睡一晚

想念花蓮的山呀、水呀
還有曾經發生的一切

2009年5月26日 星期二

元智大學98級畢業季限定歌曲

那部白色鋼琴放在六館門口
路過的時候讓我好奇研究了好久
元智兩年一晃眼就過
回憶
有好 也有壞
MV在這個時間點看起來
蠻有感觸的
珍惜眼前的幸福 朝回憶輝揮手

詞曲都是元智資工學弟做的
MV也拍的亂有水準一把(不知道是不是資傳弄的)
從東華畢業以來 即使不是什麼了不起的學校
但我一直以身為東華的一份子為榮
也許  在未來的某個片段
這兩年也能成為一個驕傲的回憶


把手交給我是元智大學97畢業季限定歌曲 圓夢 的另一個歌詞版本
被學弟拿去投高雄世運了..(不過我比較喜歡這版本)

2009年4月17日 星期五

H.264 JM code理解暫存筆記

 

(1).實際從磁碟讀入值的地方
<input.c>
void ReadOneFrame (int FrameNoInFile, int HeaderSize, FrameFormat *source, FrameFormat *output)

int fuck;

for(fuck=0;fuck<framesize_in_bytes;fuck++)  //自己加
   {printf("%d\n",buf[fuck]);system("PAUSE");} //自己加




(2).開啟trace功能
在<defines.h>文件中把
#if defined _DEBUG
#define TRACE           0                   //!< 0:Trace off 1:Trace on
#else
改成
#if defined _DEBUG
#define TRACE           1                   //!< 0:Trace off 1:Trace on
#else


(3).
encode_one_macroblock_(四種模式)

  //===== GET BEST MACROBLOCK MODE =====
  for (ctr16x16=0, index=0; index < max_index; index++)  //強制改成全部都是IPCM!! index=0 改成index=8 (只執行ipcm判斷)
  {
    mode = mb_mode_table[index];
    //printf("GET BEST MACROBLOCK MODE!\n");

    if (img->yuv_format != YUV400)
    {          
      mode = mb_mode_table[index];
      i16mode = 0;
    }
    //--- for INTER16x16 check all prediction directions ---
    if (mode == 1 && bslice)
    {
      update_prediction_for_mode16x16(b8x8info, ctr16x16, &index);
      ctr16x16++;
    }

    // Skip intra modes in inter slices if best mode is inter <P8x8 with cbp equal to 0   
    if (img->P444_joined)
    {
      if (params->SkipIntraInInterSlices && !intra && mode >= I16MB
        && best_mode <=3 && currMB->cbp == 0 && cmp_cbp[1] == 0 && cmp_cbp[2] == 0)
        continue;
    }
    else
    {

      if (params->SkipIntraInInterSlices && !intra && mode >= I4MB && best_mode <=3 && currMB->cbp == 0)
        continue;
    }

    // check if weights are in valid range for biprediction.
    if (bslice && active_pps->weighted_bipred_idc == 1 && mode < P8x8)
    {
      int cur_blk, cur_comp;
      int weight_sum;
      Boolean invalid_mode = FALSE;
      for (cur_blk = 0; cur_blk < 4; cur_blk ++)
      {
        if (b8x8info->best8x8pdir[mode][cur_blk] == 2)
        {
          for (cur_comp = 0; cur_comp < (active_sps->chroma_format_idc == YUV400 ? 1 : 3) ; cur_comp ++)
          {
            best8x8l0ref = (int) b8x8info->best8x8l0ref[mode][cur_blk];
            best8x8l1ref = (int) b8x8info->best8x8l1ref[mode][cur_blk];
            weight_sum = wbp_weight[0][best8x8l0ref][best8x8l1ref][cur_comp] + wbp_weight[1][best8x8l0ref][best8x8l1ref][cur_comp];

            if (weight_sum < -128 ||  weight_sum > 127)
            {
              invalid_mode = TRUE;
              break;
            }
          }
          if (invalid_mode == TRUE)
            break;
        }
      }
      if (invalid_mode == TRUE)
        continue;
    }
    if (enc_mb.valid[mode])
      compute_mode_RD_cost(mode, currMB, &enc_mb, &min_rdcost, &min_dcost, &min_rate, i16mode, bslice, &inter_skip, is_cavlc);

  }// for (ctr16x16=0, index=0; index<max_index; index++)
}// for (currMB->c_ipred_mode=DC_PRED_8; currMB->c_ipred_mode<=max_chroma_pred_mode; currMB->c_ipred_mode++)                    

2009年4月10日 星期五

四月與元智啦啦隊比賽

SONY DSC

在等名次時,六個隊伍在底下鼓譟,一個flyer在人群中被舉了起來,離我有大約只四個人的距離。
漂亮的flyer這姿勢維持三秒不到,但足夠在心理留下印象了。

DSC06000 
背影無敵XDXD

 


中語


社政


資傳


比賽結果是:
第一社政
第二資傳
第三中語
其它並列第四

DSC05943 
社政是去年冠軍,聽場邊口號好像三連霸了。把西遊記的故事融入

DSC05909
社政整團人數很多,女生綁個包包頭看起來很Q。
不過這張相片要強調的是,最好不要設計太多彎邀的姿勢.....
彎下來有點肚子不大好看QQ

偷拍可愛的嬌小女生,但實驗室兩個學弟都不喜歡他...哭哭
偷拍 

最近是個糟糕的月份,同學裡幾乎都面臨著畢業、當兵、準備就業
不管敲誰,幾乎都處在一個迷惘忙碌暴躁或是沮喪的心情裡
負面情緒能帶來動力..也只能往好處想囉ˊ口ˋ

非常非常之糟糕,最近一直重複看一個女生的相簿
怎麼辦怎麼辦=ˇ=|||
一正 天下無敵呀..
Orz 很糟糕耶..好久沒這樣子了
很奇怪 看一個漂亮女生的相簿看到自己心情很不好......

女孩子的外表耀眼的時刻好短暫
曾經在大學留下深刻印象的相簿
如今還會偶然想連過去看的又剩幾個呢...

2009年3月5日 星期四

終於Try出來了!!!!


image
感人的阿德終於出現了...
一個別人寫好好的JPEG Decoder
我也有辦法弄這麼久才搞定...
嘖嘖  至少有出來就好了 


我的程式真是弱到爆炸= =
強的人應該10分鐘就搞定了Orz
我花了四天
囧...其實程式碼只需要多加兩行
--

1 Byte=8bits →uedit裡的FF
1DWord=4Bytes
(不寫起來每次都想好久)

image

2009年1月14日 星期三

尼要當窩抖婆ㄇ?

 

最近有個網路遊戲推銷的十分成功
把格調弄超低但超好笑的..完全達到廣告效果

這是他的官網
殺Online
http://3k.iplayer.com.tw/CB/index.html

殺Online官網點進去會發現瑤瑤清涼寫真區..這什麼小朋友 線上遊戲= =?
最近又推出兩個瑤瑤拍的廣告

仇人篇

搞不懂這有什麼邏輯可言.. 騎搖馬說你不要走  Kuso的莫名其妙XXD


愛人篇



改版的插很大也配合改版推出


殺很大..殺不用錢..
最近LAB學弟一直唱害我一想到畫面就一直笑
這個遊戲應該完全放棄女性玩家加入的可能性...
殺Online封測中喔^_<

另外一個八卦版看到的勁舞團文章..
有沒有用這不是重點
不過也超好笑
導致我為luna取新ID的時候都不能正常思考XP
莫名其妙有道理一把的=ˇ=|||| 
真的很符合偶爾看到一些國中生相簿的格調XDXD

作者  sst001 (una chica dulce)                               站內  Gossiping
標題  Re: [轉錄]  問題 關於勁舞團
時間  Mon Jan 12 17:43:08 2009
───────────────────────────────────────
: 我實在是搞不懂 這個有什麼好玩的耶
: 聽同學說上面有很多ONS的= =
: 國中生阿~~高中生阿~~一下就約出去= =
: 不知道有沒有人 去玩過可以有心得@@

有啊  這類遊戲要玩之前
請先準備以下物品:
五張上下的國父 (還用不到小朋友 比什麼魯那骯賴省錢)
即時通帳號 (msn沒用的)
以及一顆「想要淫狎蘿莉的心」

然後創好角色  ID越台越好
看你要取個  浪子⊕蒼天有淚  ☆煞气♀小衝 〃沁樣☆鬼舞  ╭板橋x殺哥
都可以  不要取什麼ACG角色名字  太蠢了

接著去買遊戲的點數卡  五張國父就好
進了遊戲  不要想著玩跳舞  跳個屁!一點都不重要
把你的點數儲值一些進去  去商城配一套衣服出來  越有型越貴

然後每個頻道房間名稱看一看  有人在「徵公」就進去
→身家調查  安安幾歲住哪   安安住美國...啊不是
反正大家上網都很會屁  就盡量屁  網路又沒面子問題
要到即時通就是換照片

這時候依照本人多年經驗  統計分析如下:

20%女性角色是國小生   這你吃的下去也太禽獸了           跳過
20%女性角色是人妖     想玩肛肛可以去部隊               跳過
20%女性角色是海王類   你口味特別再說                   跳過
20%女性角色是已婚熟女 通常還拖個小孩  太麻煩           跳過

剩下20%就是年齡層分布從14歲~22歲之間的妹
這就是「音樂線上遊戲的長尾理論」
我們只要CATCH這20%就夠你用了
其中又以國中妹為最大宗  這也是本文章說明的攻略目標

屁話一番  玩個幾場之後  你玩的好不好不重要
直接問:「尼要當窩抖婆ㄇ?」  →不是我想打注音  真的就得這樣打...

婆是三小?其實我也不知道  反正成功機率很高
之後你每天上線就多了個虛擬人物在那邊叫你陪跳舞
還會一直跟你說 「公  窩豪愛尼喔~*^^*  揪咪」  啊不見得會講揪咪就是了

再來  約出來之後   比較好的策略是約在網咖
除非對方不是個重度玩家....而且去網咖要閃人也好閃  說聲去廁所就行

然後皮夾不用太厚  夠買個兩張點數卡  外加吃頓飯就好
依照鄉民人人30cm的經驗  之後推倒還要我教嗎?
插很大~~~~~~~

最後      請鄉民注意法律     沒滿16的請小心吃以免燙口.....

勁舞團2封測中喔^_<

2008年12月24日 星期三

你今天ㄕ(ㄙ) ㄕㄣ(ㄥ) 了嗎

 

晚上和LAB的人一起吃飯
學弟小虎說,今天學校餐廳看起來好冷清 

隨便一瞧 今天餐廳真的頗冷清
平常熱門時段要搶的座位今天做不到四分之一滿
五個宅宅默默的各自去買飯來吃

然後老頭就說了
今天是三大ㄕ(ㄙ)  ㄕㄣ(ㄥ)日呀

我心中OS了一下 三大私生日...嗯
私自慶生的日子嗎??!!
名義上慶祝行政紀念日但實際是聖誕節降?!
還沒說話小虎就問了

師生日

餐廳人少老師學生怎麼了 ?





你今天ㄕ(ㄙ)  ㄕㄣ(ㄥ)了嗎?!


 



 

解答是大一女學生三大失身日
九月入學後..12/25第一大
緊接著過情人節
第三大是女生的生日
所謂三大失身日...

講解完畢
五個宅宅默默的繼續吃飯

2008年12月2日 星期二

H.264放原始碼資訊

2003年5月,當 H.264編碼標準草案發佈時,很多人都覺得H.264太複雜,不宜實用。眨眼間3年過去了,以往的論斷、疑惑被如今的現實沖洗的乾乾淨淨。隨著硬體性能的提高和視頻編碼工作者對H.264的不斷優化,如今的H.264已完全實用,最新的達芬奇晶片上能實現D1解析度(720*480)視頻的即時編碼,而 對於解碼,普通的PC機就能實現x264編碼的DVDrip電影的流暢播放。縱觀過去的三年,有多少人對H.264傾注了熱情和汗水才換來今天的成績,而 那些H.264的開源項目以及參與這些項目的開發者自然是功不可沒。

本文評測的是作者接觸過的 H.264開源解碼器,包括:JM decoder, T264 decoder, x264 decoder, ffmpeg libavcodec, Intel IPP simple player。評測的內容有:對H.264特性的支援、解碼速度以及二次開發難易程度。

一、H.264開源解碼器介紹

1、JM decoder
JM decoder是H.264的官方源碼,通常也稱為校驗模型。其特點是支援特性好,實用性差。本文選用的程式是JM86,不支持high profile,因為本文不對high profile部分進行實驗比較。
NOTE: JM一直沒有做實用化方面的努力,所以其解碼速度代表的是2003年的水準。
2、T264 decoder
T264是國內的開源項目,T264 decoder的程式做過彙編優化,速度還可以,但只能解T264本身的碼流。作者對T264 decoder version 0.14(2005-3-29)作了修改,支持baseline的解碼。
3、x264 decoder
x264本沒有decoder,但其包含decoder的部分函數雛形,猜想作者在一開始時是準備實現decoder,後來可能是因為有了ffmpeg,就放棄了這個想法(純粹屬於猜測,呵呵)。
本文的x264 decoder是作者在x264 svn check out 2005.12.26的基礎上實現的,支持baseline的解碼。
4、ffmpeg libavcodec
ffmpeg是一個大專案,它包含各種音視頻標準的codec,還支持各類file format(.avi, .mp4, .mkv and etc)的parsing。所以,很多開源項目都有直接或間接地採用了ffmpeg,如mplayer播放器就是直接採用了ffmpeg,而mpc播放器 則是先採用了ffdshow filter,而ffdshow又採用了ffmpeg。ffmpeg是一個非常棒的音視頻編解碼庫,支援的標準非常全,而且編解碼速度也很快。
本文實驗採用的是cvs check out 2006.02.20的版本,作者對其中的apiexample demo進行了簡單的修改,用於解碼h.264碼流
5、Intel IPP simple player
Intel的IPP庫,全稱為Integrated Performance Primitives,在Intel的各種處理器平臺(IA-32, Itanium, xscale and etc)上實現了信號處理常用演算法、常用數學運算及音視頻編解碼演算法等等。IPP給我的第一感覺是,在Intel的處理器平臺上,它實現的各種演算法應該是最快的,至於實際結果如何,待等到實驗比較後見分曉。
本文採用的IPP庫版本為IA32 5.1.017 評估版
Intel IPP simple player是用於播放各種音視頻檔的簡單播放器,用c++實用,具體演算法調用IPP庫來實現。本文採用的simple player版本是5.0.017

二、對於H.264特性的支援

1、JM86 decoder

support baseline, extended, main profile

2、T264 decoder

baseline

3、x264 decodeer

baseline

4、ffmpeg libavcodec

support baseline, main profile, high profile except the feature: paff, mbaff…

5、Intel IPP simple player

support baseline and main profile

三、评测条件

1、所用测试序列

image

2、編碼參數

編碼程式:x264 svn check out 2006.05.06

參數設置示例:x264enc --frames 300 --no-cabac --qp 26 -o test.264 foreman.cif 352x288(相當於baseline)

量化步長:26和36

2、環境

CPU: Pentium4 2.4GHz, RAM: DDR 512M

OS: windows2000 professional+sp4

3、解碼器程式編譯環境

JM86 decoder: vc71 release

T264 decoder: vc71 release

x264 decodeer: vc71 release

ffmpeg libavcodec: MinGW

Intel IPP simple player: vc71 release + directX 9.0c sdk

4、解碼參數設置

不保存重建序列(note: 是否保存重建序列對於解碼速度的影響很大)

四、解码速度比较结果

image

【note】

t264的解碼程式能解jm baseline的碼流,但無法解上面x264生成的碼流,故無法給出實驗結果。但通過對自身t264 fast mode碼流的解碼速度進行統計,t264 decoder和x264 decoder,解碼速度降低40%左右

Intel IPP simple player在我的電腦上編譯未成功,在其他成功編譯的電腦(xp系統,directx, vs.net, IPP均安裝於C盤)上進行簡單測試,其解碼速度和ffmpeg的解碼速度相比,降低10%左右

【簡單結論】
解碼速度:ffmpeg > IPP simple player > x264 decoder > t264 decoder > jm86 decoder
以ffmpeg的編碼速度為基準,假設為100fps,則:
IPP simple player:90fps
x264 decoder:50fps
t264 decoder:30fps
jm86 decoder:3fps
五、程式開發上的比較
我估計閱讀本文的大部分讀者都是搞開發的,因此,閱讀過程中自然會思考如何在程式開發上借鑒或者採用以上開源的H.264解碼器,下面就針對程式開發上的難易、適用場合等作個比較。
1、JM86 decoder
適合寫paper群體
2、T264 decoder
3、x264 decodeer
兩者代碼非常相似,所以就合在一起講了。這兩個源碼的程式結構都比較清晰,支持vc和gcc的編譯環境,但對H.264的特性支援不好,解碼速度和ffmpeg相比,還有差距。
4、ffmpeg libavcodec
程式結構比較差,H.264解碼的代碼基本上在h264.c一個檔中,這個檔有8000多行,不利於閱讀。
編譯環境為gcc或MinGW,移植到vc下比較難(我嘗試過)。
解碼速度快(BTW: 通過doom9論壇瞭解到,目前最快的h.264解碼器是CoreAVC decoder,比ffmpeg快50%左右)。
對於H.264特性的支援好。
5、Intel IPP simple player
分兩個方面講:
(a)IPP庫
我覺得是非常棒的,但實現的是H.264解碼(IPP中也有H.264編碼)的一些關鍵函數,如deblock,dct,插值補償等,不能直接拿來用。
其他的缺點:IPP庫是商業軟體,要money的,而且只支援Intel平臺
(b)simple player
開源,用c++寫的,而且是directshow編程,也就是說只支持windows平臺。
其解碼速度比ffmpeg慢10%左右,我覺得原因不在於IPP庫,而是simple player的代碼不夠完善。

2008年11月21日 星期五

Color space 、YUV vs YCbcr


[YUV]
從80 年代開始,新力公司發展新的視訊格式,將訊號資訊分成三個頻道,分別是色度、紅色色差與藍色色差,成為YUV色度發展的基礎。目前的YUV 色度是作為傳統歐規電視視訊PAL(Phase Alternation
Line)、美規電視視訊NTSC(National Television System Committee)以及法國電視
視訊SECAM(Sequential Color with Memory)這些影像標準的基本色度。其中Y 為
亮度,U 為藍色色差、V 為紅色色差。

image 
Y 值的範圍將為0 ~ 255,而U值的範圍就是0 ~ ±112,V 值的範圍就在0 ~ ±157

[Ycbcr]
YCbCr 色度是在發展全球數位成分影像標準期間所制定的,它被發展成ITU‐R
BT.601 協定(它的前身是CCIR 601 協定)的一部分。YCbCr 是YUV 色度的一種經由
不同縮放及抵補的版本。

人眼對明度的敏感度高於對色差的敏感度,然其對明度的敏感曲線,卻非是單純的線性,而是呈現對數的分布,因此需要Gamma 校正的動作。這裡的u和v即是cb和cr
image 

Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B − Y )
Cr = 0.713(R − Y )


總結

Y = 0.299R + 0.587G + 0.114B
U = 0.492(B − Y )
V = 0.877(R − Y )

Y = 0.299R + 0.587G + 0.114B
Cb = 0.564(B − Y )
Cr = 0.713(R − Y )

U=0.492/0.564  * Cb
V=0.877/0.713 *Cr

1.

image

 clip_image002

2.

画面会颠倒是因为 YUV 和 RGB 格式,一个是由上到下的放置顺序,另一个则是由下到上的放置顺序。
做 YUV -> RGB 的转换后,必须要做 flip,上下反转,画面才会恢复正常。
不同程序可能会有不同的放置顺序,例如用 Avisynth 的 VFAPISource 读进 VFAPI 的 RGB 文件后,
画面会反转,后面必须接 flip() 才会恢复正常。

3.

yuv色彩模型来源于rgb模型,

该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。

应用:basic color model used in analogue color TV broadcasting.

YCbCr模型来源于yuv模型。YCbCr is a scaled and offset version of the YUV color space.

应用:数字视频,ITU-R BT.601 recommendation

ps:

通过上面的比较可以确定,我们在h.264,mpeg等编码标准中用的yuv其实是YcbCr,大家不要被名称搞混淆了。

這是什麼屁!!<????????????>感覺是網路資料亂講

2008年11月5日 星期三

WinFF 壓H.264

預設會出現錯誤...

unknown encoder 'h264'
unknown encoder 'aac'

Ex.
FFmpeg version SVN-r14321, Copyright (c) 2000-2008 Fabrice Bellard, et al.
  configuration: --prefix=/usr --mandir=/usr/man --enable-shared --enable-pthreads --enable-x11grab --enable-liba52 --enable-liba52bin --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --disable-ssse3 --enable-libfaad --enable-libfaadbin --arch=i686 --cpu=i486
  libavutil version: 49.7.0
  libavcodec version: 51.60.0
  libavformat version: 52.17.0
  libavdevice version: 52.0.0
  built on Jul 22 2008 13:11:25, gcc: 4.2.3
[avi @ 0x805d2d0]sample size (1) != block align (1024)
Input #0, avi, from '/home/rmack/flip_in/VID00001.AVI':
  Duration: 00:03:56.57, start: 0.000000, bitrate: 2652 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 30.00 tb(r)
    Stream #0.1: Audio: adpcm_ms, 44100 Hz, mono, 177 kb/s
Unknown encoder 'h264'

 

解決方式
Select Edit Menu--->Edit Preset--->Select preset you want to use--->Scroll across the preset command line field until you encounter "-vcodec h264" change it to -vcodec libx264 then scroll across until you see "-acodec aac" and change it to -acodec libfaac then click save and your done.

O你喵的 預設下來不能用是怎樣= =

不過ffmpeg壓h.264的速度遠太優秀啦!!!
JM慢到很誇張...非常誇張...
根本是搞笑..

2008年10月27日 星期一

超神大師的JM C code解惑

(1).

printf("%d\n",img->frame_num);
fflush(stdout);  //強制輸出 不printf出不來問題

 

(2).

Command line的導向

ldecod > log.txt

(3).自己小筆記
Frame_no 紀錄解的圖像frame數

2008年3月29日 星期六

倦怠期與蜀山傳



卷怠期是指我現在的狀況
好久沒做事了唸書動力好低,好想出去玩>"<


蜀山傳則是歡送小葉去當兵的火鍋行程
兩個事情八竿子打不著關西
合起來一起寫XD
照片上火鍋看起來很豐盛
其實很虛.. 蠻貴的給的東西卻不精緻

小葉去當兵後,實驗室冷清了不少(少了一個矮人狙擊手??!)
禮拜日讓我出去玩吧,我不想繼續宅下去了
每天都在打魔獸
打到有點厭煩了可是還是在一直會想開場打

這是什麼情況...0.0
蜀山傳有拍到一張好相片耶
我喜歡這張的感覺^^ (別說我不照顧學長姐呀~!)