一月
13
2012
2

Run Length Coding/Encoding (RLC/RLE) CCITT Group 3/4 Example

又是影像處理期末考的玩意兒
網路上完全找不到詳細的例子,好險自己領悟一番有點感覺了,故寫下此筆記後查

這邊舉例CCITT 4的RLC編碼方式,我們都知道有Pass mode、Vertical mode與Horizontal mode三種模式,以及幾個重要的座標點
a0:編碼行的參考點,預設為-1(假設element從0開始)
a1:編碼行a0後第1個transition位置
a2:編碼行a0後第2個transition位置
b1:參考行(前一行)a0後第1個transition位置(值與a0相反)
b2:參考行(前一行)a0後第2個transition位置

Pseudocode

initialize a0
detect a1, b1, b2
if (b2 < a1) {
    Pass mode encoding
    a0 = b2
} else {
    if ( abs(a1-b1) <= 3 ) {
        Vertical mode encoding
        a0 = a1
    } else {
        detect a2
        Horizontal mode encoding
        a0 = a2
    }
}

課本的例子Example 1:
參考行
編碼行

■□□□■■■■■□□■■■□□□□■■■□□□
■■■■■■■□□□□□□□□□□■■■■■□■

未完...

Written by admin in: 無聊隨筆, 電腦三兩事 |
一月
02
2012
2

LZW compression & decompression pseudocode

期末考記錄用
參考自此但我覺得需要修改

LZW compression

string = NULL;
while character = next input character{
    if string+character is in table {
        string = string + character
    } else {
        output code of string
        add string+character to table
        string = character
    }
}

LZW decompression

while code = next input code {
    if code is new code {
        string = translated code
        output string
        // string(0) is the first character of string
        add prevString+string(0) to table
    } else {
        add to table for known code sequence
        string = translated code
        output string
    }
    prevString = string
}
Written by admin in: Uncategorized, 電腦三兩事 |
九月
13
2011
2

visual studio 視覺化動態陣列 visualize dynamic array

如果你常用Matlab寫矩陣運算,一定對這個變數瀏覽工具不陌生,這真是太美好了,可以一眼望盡矩陣內所有的數值,如果你有更大的螢幕,甚至可以想像如Nash一樣在數字海中找到真理

但是這些美夢到visual studio中卻應聲破裂,散亂成16進位的記憶體亂碼,本文就是要帶領你回到美好的debug時光,重拾回可以"看見"的資料

繼續閱讀 »

Written by admin in: 電腦三兩事 |
八月
31
2011
2

平行化技術大亂鬥

最近有空看了不少平行化的技術和語言,寫此篇作為紀錄

平行化就硬體層面來說可分為CPU和GPU兩種平行化,CPU的平行化我們稱之為Multi-Thread,也就是我們所熟知的執行緒;而GPU的平行化運算統稱為GPGPU(General-purpose computing on graphics processing units),泛指在GPU上非rendering的計算。而GPU的thread與我們常見的CPU thread不太相同(可異質的thread,如GUI與背景計算),他必須是要「相同執行步驟」的thread(如矩陣運算),才能由GPU執行平行化,所以在撰寫的思考會比較沒有自由。

接下來則是我們常見的CPU與GPU平行化的framework

CPU:

  • Pthread:本是UNIX的thread,目前有許多跨平台的版本,實做了複雜的thread介面與同步機制
  • openMP:與compiler綁定的#pragma巨集語法,目前大多數的C/C++ compiler都有支援(VC2010),使用相當簡單迅速
  • windows.h: 與pthread類似,但不跨平台

對初學者來說,我相當建議使用openMP來實作平行化,如果有寫過matlab的平行化「parfor」,openMP就是差不多的東西,並且也實作非常容易使用的同步機制如「critial」,優點是其巨集式的語法,並且可以在需要的時後跳過巨集語法變回single thread的程式(方便debug),具有撰寫快速、維護容易的特性,讓我們可以專注在平行邏輯,而不是在封裝thread function。缺點是要寫出複雜的同步邏輯如condition就比較無力。但是對於非real time導向的科學計算加速很有幫助,要處理伺服器的複雜同步機制還是得使用自定thread function的傳統thread(如pthread)。

GPU:

  • Nvidia CUDA: 目前最完整的GPGPU framework,包括了許多類似STL的加速資料結構與矩陣計算函式,如果你想省時間學習開發,選CUDA
  • ATI Stream: 他們跑去玩openCL了~
  • Miscrsoft DirectCompute: 微軟基於DirectX的GPGPU framework,理所當然的windows ONLY
  • openCL: 由許多廠商共同支援跨GPU的通用framework,理論上是可以支援所有顯卡的,不過由於跨平台的特性,所以語法更低階更難寫,並且發展緩慢,但是在未來會成為主流

所以結論就是CUDA(啥?),你甚至可以使用類似openMP的#pragma語法來實作GPU thread,叫做HMPP,其主要規格定義在openHMPP,但這軟體是要錢的...

Intel為什麼沒有參一腳呢? 按照我在研討會上聽到的資訊,他們認為GPU以運算時間做為效能依據不夠客觀,應以工耗比(Performance/Power)來競爭才夠客觀,畢竟現在顯示卡已經可以算是一個小型主機版架構了,所以他們認為CPU是很給力的(了不起我們再買NV嘛)~~~

Written by admin in: 電腦三兩事 |
八月
20
2011
2

SIGG瑞士水壺

原本用的NIKE運動水壺也不錯,就是吸嘴部分久了感覺有點髒,但卻無法更換,所以只能整個水壺換掉。SIGG水壺的模組化相當不錯,瓶身也是一體成形,瓶口則是分為窄瓶口與寬瓶口兩種,寬瓶口比窄瓶口多了一個寬瓶上蓋,而最上面的開口則是與窄瓶口的零件相同,兼具了易清洗及飲用的特性,當然價格也比窄瓶貴一些。(新版的內部塗料已經沒有BPA)

瓶蓋方面則是有兩種可以選擇,一種是如照片的立體瓶蓋,也有類似牛奶瓶的"平"蓋可以選擇,口徑皆相同可以替換。新買的瓶子有金屬臭味,店員說是由國外工廠直接進口還未清洗,所以需要先泡水幾次去味

Written by admin in: 攝影, 無聊隨筆 | 標籤:
六月
22
2011
3

人體鍊成果然是禁止的

最近很紅的AKB48虛擬偶像阿~

雖然同一樓層的蔡教授早就在做了,我本來也想趕流行製作虛擬正妹的說

信手拈來就是個──魚柱小姐

我不信邪多按了幾次隨機產生,但僅是多了些魚柱小姐的兄弟姊妹...

人體鍊成果然是禁忌阿...

Written by admin in: 電腦三兩事 |
四月
06
2011
3

Flying Fish 美式餐廳


這是我點的煙燻雞三明治。
看這超大的三明治,根本很難用優雅的吃相解決它。美式餐點不僅食材有外國的粗獷感,就連吃法也相當野蠻呀,旁邊附的小菜是台式泡菜和薯條。

繼續閱讀 »

Written by admin in: 攝影, 無聊隨筆 |
四月
02
2011
2

來自google的明信片─AdSense pin

重寄了兩次,整整超過2個月的等待,終於來到手中的pin card

繼續閱讀 »

三月
29
2011
3

開箱!! HTC Incredible S & iPad

一口氣開了不少箱阿~其實加上配件應該要更多的,不過我懶了(攤

開箱數與生活壓力成正比~哈哈哈

繼續閱讀 »

Written by admin in: 攝影, 電腦三兩事 |
三月
01
2011
2

梅竹賽

清大的梅竹遊行,交大則是像飆車族一樣呼嘯而過,相同的是都有警察開路

我一直都很嚮往擁有歷史和傳統的學校風氣(但不是陳舊的規範),無奈高中以來唸的都是新學校,沒機會體驗有趣的校園活動。大學時候曾有攝影社的學長邀約拍梅竹,那時以功課繁忙推託,不知道有沒有記錯,當時學長很有信心的把邀約延後到研所,沒想到竟有機會成真,可惜的是在研究所依舊是忙死...

吉祥物熊貓象徵吃竹(交大),交大的吉祥物則是狐狸(取自竹湖諧音),據研究室學長所說,交大也會在地上貼滿青蛙(諧音清華)圖案供路人踐踏

拍這張照片的時候車子是停下來等我拍照,熊貓也很賣力地向我揮手致意,本來想大喊一聲「交大萬歲」的,不過一想到有曝屍街頭的危險所以作罷

文末附上一張半年前的照片,流星其實是剛好飛過的飛機

Written by admin in: 無聊隨筆 | 標籤:,

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com