星期三, 11月 28, 2007
[研究日誌]老闆轉性
我家阿坤已經連續好一陣子
都是禮拜二早上晃進來一下
問我有沒有問題
接著就不見人影
跑回辦公室去喝咖啡聊天了
下午小黃的課
反正我也不是重點
只不過是選課的人頭之一
之前還實驗我可以消失多久老師不會發現
都測試到一節課半
想說超過兩節課的話
就可以開始計畫
要利用這段時間做什麼事情了
因為我那個interval和MCU 與data unit的關係
還是不太清楚
所以我程式還是會出錯
昨天做了投影片
有點擔心這樣的進度老闆不會滿意
還偷偷的祈禱
Dr.Bell不要太早走
根據家醜不外揚的法則
只要Dr.Bell還在
老闆應該不會當眾罵出來
誰知道他今天來喝個咖啡之後
就說他要回去改期中考考卷了
噗
事情再壞一定會更糟是吧
真是酷斃了
本來還拼命練習用英文報告投影片
這下Dr.Bell不在
用英文對著一堆中國人講話很奇怪耶
本來想說小黃還沒回來
可以等等在開始
可是阿坤說反正我是講JPEG 小黃不在沒關係
所以我就硬著頭皮上台報告了
BOSS今天心情好像還不錯
有耐著性子聽我講話
我有跟他說我覺得問題是出在哪邊
可是我現在還沒辦法確定
老師還拿我那本規格書去翻
"可欣你最近都仔細看規格書齁"
屙...
薑果然是老的辣
真是一針見血
可是他還是有翻耶
如果是以前他早就生氣跑掉叫我再多看幾遍了
之後討論了一下
老闆有提到想用Group基金出總審專刊給高中生看的事情
然後發票要開什麼時候之類的
我怕忘記
就馬上跑下去跟書雯說
結果在系辦聊了二十分鐘
回來的時候
阿梅跟我說剛剛下去真久
老闆有怨念
"可欣咧 怎麼還沒回來 去哪裡了"
(阿我不是跟你說我去系辦嗎...囧)
"一天到晚跑去系辦鬼混 都不知道誰是他老闆了齁!!"
這句怨念就深了
之後就開始改程式
改好的時候有遇到一點問題
我解出來的值啊
跟我用程式壓縮的值
有些會不一樣耶
不是全不都不一樣
也不是差很多
都差一點點而已(1或2吧)
剛好老闆晃進來
就把他拉過來看了
真難得他願意坐過來我旁邊看耶
之前還說他不想在小螢幕看程式
硬是要投影出來的
不過他有說
這種情況是可能的
因為我不知道photoshop在quantized的時候
是怎麼決定進位
比較好的作法是
將原本的bmp檔
用PhotoImapct再存一次
看是不是也會差一點
接下來的動作
就是requantized ,ReDCT ,color transform and draw the Image了
然後
再多試幾個graylevel的圖
關於color transform
我有問老師那我CbCr的值要怎麼給
你怎麼那麼死腦筋
啊就直接把Y值填入就好了啊
這不是灰階嗎 等這個成功
以後要做三個component的時候
再考慮那個問題吧!!
阿哈哈哈
我還是要調整心態啊
不要一直想讓程式寫成一次for all case的
關於MCU DRI RSTm 那邊
我可能要再多看幾個例子
才會懂吧XDD
星期六, 10月 06, 2007
[日誌]風大雨大颱風天
完全沒颱風假可以放到
而且整個台灣都在暴風半徑裡面
讓人完全不想走出家門
好悶好悶喔
反正現在沒啥事
就來寫個日誌好了
其實之前聽學長他們說
以前實驗室有大咪聽
就是有點像論文研討那樣
大家會在一起
聽某個學生presentation
不過到我們這屆就沒有這樣的慣例了
其實我覺得那個大咪聽很好耶
可以練習自己上台報告的技巧
又可以讓台下的人增加廣度
我整個好羨慕好羨慕
好想好想在我們這屆
恢復這個傳統
也有大咪聽
上次論文研討課的時候
老師們也有講到
要想辦法增加自己的深度與廣度
不僅僅是要在自己的領域
佔有一席之地
也要知道同樣是資工這一塊
其他人都在做什麼
昨天晚上MSN
政瑋跟我提到
她有個想法
想要一年級的聚在一起
我們也來個自己的論文研討
當然一開始是有心要這樣用的人
先當報告的先鋒
我覺得
要全班一起
很難
而且我覺得有個指導者的角色
會比較好
不一定要是老師
學長也可以
畢竟
他們比較多經驗阿
如果我們自己討論討論的
有時候走偏了都不知道
剛好我昨天回家前
有跟劉名洋與陳相如
提到我想要實驗室的大咪聽
看他們的意見
想不想一起這樣做
如果要的話
就各自去問自己的老闆
(總不能我跑去問院長吧XDD)
他們竟然同意耶
真開心!!
本來當時就要衝去問阿坤了
不過ROSA提到
不知道阿梅願不願意
我們這樣自作主張好像不太好
雖然這件事很好
可是要執行的話
每個人的payload會變的比較重
如果沒問過她就先跟老師說的話
阿梅可能會不開心
她之前就有說過他喜歡自己去找老師了
我覺得應該是還好啦
這也是個訓練自己的好機會
阿梅應該OK吧
不是全部的時間都大家一起咪聽
當然要有自己單獨跟老師咪聽的時間阿
不過後來決議還是
同個老闆的學生群自己先討論過
再去跟自己的老闆說
不然到時候
有的有講
有的沒講
不就互婊了
噗哈哈
我家阿坤
就我一個學生
完全不需要去說服別人
等著跟老闆討論這件事就好了
不過
有實驗室大咪聽的話
再加上政瑋提的一年級一起論文研討
我可能就負擔太重了
還是跟阿坤討論看看
聽聽他的建議好了
星期二, 10月 02, 2007
[研究日誌]1002
今天早上下午都BOSS的課
真的是超刺激的
早上根本就跟Boss隔空喊話
果然昨天沒把Frame Header和Scan Header
今天會難熬
一開始
Boss還是不懂我的問題在哪
不過他今天感覺就是有備而來
除了把他自己的那本規格書帶來之外
也把之前用Rex.jpg用十六進位讀檔output成的Rex.pdf印出來
整個開始看著兩本討論
我的疑問在於
因為我用wang.jpg去讀檔
發現那個Start of Scan後面
為什麼沒有DRI的TAG
啊這樣我是要怎麼解讀啦
可是老師都是用Rex.jpg去讀
Rex裡面的Start of Scan
後面就直接DRI阿
我問老師這個問題他也楞了一下
不過我有跟他說
可能在Scan Header 和 Frame Header裡面
可以知道
不過我還沒看那邊
我看BOSS要昏倒了
我要去做櫃檯了
先降
晚點再補
星期六, 9月 29, 2007
[閒聊]我是班代
從來沒當過班代的我
竟然在研究所時期當了班代
而且還是高票當選
有來都有投我...囧
本來以為班代沒啥事要做的
頂多就每個禮拜到系辦晃晃
反正我可以藉此見到我心愛的主任
誰知道事情還真是多
除了辦兵役緩徵
發學生證
還要幫大家繳機車費
那天趁夜整理哪些人有給我東西
哪些人是完全沒出現的
一確認之下
還真的有人沒給我兵役資料
還好我有跑去找系祕印通訊錄
馬上打電話一個一個問
為了方便我打電話給大家
還自己打了一張通訊錄
簡哥跟馬克傑還沒辦好緩徵
機車証還沒去付錢
以下是我們班的名單
何祖鳳 導師
○李天仁 五年一貫
○范佐瑤 五年一貫
X巫微曦 S411
楊承穎 S303
○林明慧 糾察 S207
○魏玉雯 學藝 S207
○鄭可欣 班代 S207
○陳致嵩 S206
○黃皓勤 S303
○陳心懋 總務 S412
○賴坤成 S206
○張雁涵 S303
○吳政瑋 S412
○簡聖瑋 體育 S206
○楊順安 服務 S412
○粘嘉菖 衛生 S412
X江昆霖 副班代 S206
打○的是有跟我說他有收到群組寄信的
打X是我有被退信的
星期三, 9月 26, 2007
[學習日誌]9/26數位影像處理Part1
今天一早起來
就咚咚咚的跑去上院長的課
沒辦法啊~~~
阿坤都不教我影像處理的東西
禮拜二的課程也只是為了咪聽用而已
我影像處理那麼弱
要做JPEG方面的研究
不加強影像處理的功力不行啊
課程一開始的時候
老師先講這學期他開了兩門課
資訊數學 與 數位影像處理
以及這兩門課之間的關係
院長說
學影像處理以及在這塊領域研究的人
數學一定要很好
下面這張圖就說明了現實世界中的問題和數學裡面的對應關係

通常呢
我們在現實生活中遇到的問題叫做Problem
直接想個Result去解決Problem很難啊
做不太到
所以我們就要想辦法用數學的方法去描述它
再求出這個式子的解(solution)就好了
而求解這個動作呢
有太多太多的數學家已經做完了
像降子
有好多好多條路喔~~~~

而資訊學系的學生要做的事情呢
就是
1.想辦法把"問題"用"數學"的方式描述
2.挑出一個對的解決方法
3.把solution對應到現實生活中(Result)
像降子

紅色的線就是我們要做的事情喔~~~~
本來想一次打完的
不過有點懶的打
所以下回待續啦~~~~~
星期五, 9月 21, 2007
[JPEG]JPEG簡介
誰知道Boss上禮拜跟我說
後面的才難咧
現在我用完FFDA(Start of scan)了
今天跑去跟老闆確認是不是後面就是MCU
我只要一個bit一個bit讀進來就可以了
老闆跟我說應該是這樣子沒錯啦
可是他不確定
叫我再去看MCU的格式
以下是轉載來的JPEG簡介
原文在這
如果原作者不開心的話
要跟我講喔
我會拿掉的!!
JPEG 壓縮簡介
-------------
1. 色彩模型
JPEG 的圖片使用的是 YCrCb 顏色模型, 而不是電腦上最常用的 RGB. 關於色
彩模型, 這裏不多闡述. 只是說明, YCrCb 模型更適合圖形壓縮. 因為人眼對圖片上
的亮度 Y 的變化遠比色度 C 的變化敏感. 我們完全可以每個點保存一個 8bit 的亮
度值, 每 2x2 個點保存一個 Cr Cb 值, 而圖像在肉眼中的感覺不會起太大的變化.
所以, 原來用 RGB 模型, 4 個點需要 4x3=12 位元組. 而現在僅需要 4+2=6 位元組; 平
均每個點占 12bit. 當然 JPEG 格式裏允許每個點的 C 值都記錄下來; 不過 MPEG 裏
都是按 12bit 一個點來存放的, 我們簡寫為 YUV12.
[R G B] -> [Y Cb Cr] 轉換
-------------------------
(R,G,B 都是 8bit unsigned)
| Y | | 0.299 0.587 0.114 | | R | | 0 |
| Cb | = |- 0.1687 - 0.3313 0.5 | * | G | + |128|
| Cr | | 0.5 - 0.4187 - 0.0813| | B | |128|
Y = 0.299*R + 0.587*G + 0.114*B (亮度)
Cb = - 0.1687*R - 0.3313*G + 0.5 *B + 128
Cr = 0.5 *R - 0.4187*G - 0.0813*B + 128
[Y,Cb,Cr] -> [R,G,B] 轉換
-------------------------
R = Y + 1.402 *(Cr-128)
G = Y - 0.34414*(Cb-128) - 0.71414*(Cr-128)
B = Y + 1.772 *(Cb-128)
一般, C 值 (包括 Cb Cr) 應該是一個有符號的數位, 但這裏被處理過了, 方法
是加上了 128. JPEG 裏的資料都是無符號 8bit 的.
2. DCT (離散余弦變換)
JPEG 裏, 要對資料壓縮, 先要做一次 DCT 變換. DCT 變換的原理, 涉及到數學
知識, 這裏我們不必深究. 反正和傅立葉變換(學過高數的都知道) 是差不多了. 經過
這個變換, 就把圖片裏點和點間的規律呈現出來了, 更方便壓縮.JPEG 裏是對每 8x8
個點為一個單位處理的. 所以如果原始圖片的長寬不是 8 的倍數, 都需要先補成 8
的倍數, 好一塊塊的處理. 另外, 記得剛才我說的 Cr Cb 都是 2x2 記錄一次嗎? 所
以大多數情況, 是要補成 16x16 的整數塊.按從左到右, 從上到下的次序排列 (和我
們寫字的次序一樣). JPEG 裏是對 Y Cr Cb 分別做 DCT 變換的.
JPEG 編碼時使用的是 Forward DCT (FDCT) 解碼時使用的 Inverse DCT (IDCT)
下面給出公式:
FDCT:
c(u,v) 7 7 2*x+1 2*y+1
F(u,v) = --------- * sum sum f(x,y) * cos (------- *u*PI)* cos (------ *v*PI)
4 x=0 y=0 16 16
u,v = 0,1,...,7
{ 1/2 當 u=v=0 時
c(u,v) = {
{ 1 其他情況
IDCT:
1 7 7 2*x+1 2*y+1
f(x,y) = --- * sum sum c(u,v)*F(u,v)*cos (------- *u*PI)* cos (------ *v*PI)
4 u=0 v=0 16 16
x,y=0,1...7
這個步驟很花時間, 另外有種 AA&N 優化演算法, 大家可以去 inet 自己找一下.
在 Intel 主頁上可以找到 AA&N IDCT 的 MMX 優化代碼.
3. 重排列 DCT 結果
DCT 將一個 8x8 的陣列變換成另一個 8x8 的陣列. 但是記憶體裏所有資料都是線
形存放的, 如果我們一行行的存放這 64 個數字, 每行的結尾的點和下行開始的點就
沒有什麼關係, 所以 JPEG 規定按如下次序整理 64 個數字.
0, 1, 5, 6,14,15,27,28,
2, 4, 7,13,16,26,29,42,
3, 8,12,17,25,30,41,43,
9,11,18,24,31,40,44,53,
10,19,23,32,39,45,52,54,
20,22,33,38,46,51,55,60,
21,34,37,47,50,56,59,61,
35,36,48,49,57,58,62,63
這樣數列裏的相鄰點在圖片上也是相鄰的了.
4. 量化
對於前面得到的 64 個空間頻率振幅值, 我們將對它們作幅度分層量化操作.方
法就是分別除以量化表裏對應值並四捨五入.
for (i = 0 ; i<=63; i++ )
vector[i] = (int) (vector[i] / quantization_table[i] + 0.5)
下面有張 JPEG 標準量化表. (按上面同樣的彎曲次序排列)
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
這張表依據心理視覺閥製作, 對 8bit 的亮度和色度的圖像的處理效果不錯.
當然我們可以使用任意的量化表. 量化表是定義在 jpeg 的 DQT 標記後. 一般
為 Y 值定義一個, 為 C 值定義一個.
量化表是控制 JPEG 壓縮比的關鍵. 這個步驟除掉了一些高頻量, 損失了很高
細節. 但事實上人眼對高空間頻率遠沒有低頻敏感.所以處理後的視覺損失很小.
另一個重要原因是所有的圖片的點與點之間會有一個色彩過渡的過程. 大量的圖像
資訊被包含在低空間頻率中. 經過量化處理後, 在高空間頻率段, 將出現大量連續
的零.
5. 0 RLC 編碼
現在我們向量中有許多連續的 0. 我們可以使用 RLC 來壓縮掉這些 0. 這裏我們
將跳過第一個向量 (後面將解釋為什麼) 因為它的編碼比較特別. 假設有一組向量
(64 個的後 63 個) 是
57,45,0,0,0,0,23,0,-30,-16,0,0,1,0,0,0, 0 , 0 ,0 , 0,..,0
經過 RLC 壓縮後就是
(0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-16) ; (2,1) ; EOB
EOB 是一個結束標記, 表示後面都是 0 了. 實際上, 我們用 (0,0) 表示 EOB
但是, 如果這組數字不以 0 結束, 那麼就不需要 EOB.
由於後面 huffman 編碼的要求, 每組數字前一個表示 0 的數量的必須是 4 bit,
就是說, 只能是 0~15, 所以我們實際這樣編碼:
(0,57) ; (15,0) (2,3) ; (4,2) ; (15,0) (15,0) (1,895) , (0,0)
注意 (15,0) 表示了 16 個連續的 0.
6. huffman 編碼
為了提高儲存效率, JPEG 裏並不直接保存數值, 而是將數值按位數分成 16 組:
數值 組 實際保存值
0 0 -
-1,1 1 0,1
-3,-2,2,3 2 00,01,10,11
-7,-6,-5,-4,4,5,6,7 3 000,001,010,011,100,101,110,111
-15,..,-8,8,..,15 4 0000,..,0111,1000,..,1111
-31,..,-16,16,..,31 5 00000,..,01111,10000,..,11111
-63,..,-32,32,..,63 6 .
-127,..,-64,64,..,127 7 .
-255,..,-128,128,..,255 8 .
-511,..,-256,256,..,511 9 .
-1023,..,-512,512,..,1023 10 .
-2047,..,-1024,1024,..,2047 11 .
-4095,..,-2048,2048,..,4095 12 .
-8191,..,-4096,4096,..,8191 13 .
-16383,..,-8192,8192,..,16383 14 .
-32767,..,-16384,16384,..,32767 15 .
還是來看前面的例子:
(0,57) ; (0,45) ; (4,23) ; (1,-30) ; (0,-8) ; (2,1) ; (0,0)
只處理每對數右邊的那個:
57 是第 6 組的, 實際保存值為 111001 , 所以被編碼為 (6,111001)
45 , 同樣的操作, 編碼為 (6,101101)
23 -> (5,10111)
-30 -> (5,00001)
-8 -> (4,0111)
1 -> (1,1)
前面的那串數字就變成了:
(0,6), 111001 ; (0,6), 101101 ; (4,5), 10111; (1,5), 00001; (0,4) , 0111 ;
(2,1), 1 ; (0,0)
括弧裏的數值正好合成一個位元組. 後面被編碼的數位表示範圍是 -32767..32767.
合成的位元組裏, 高 4 位是前續 0 的個數, 低 4 位元描述了後面數字的位元數.
繼續剛才的例子, 如果 06 的 huffman 編碼為 111000
69 = (4,5) --- 1111111110011001
21 = (1,5) --- 11111110110
4 = (0,4) --- 1011
33 = (2,1) --- 11011
0 = EOB = (0,0) --- 1010
那麼最後對於前面的例子表示的 63 個係數 (記得我們將第一個跳過了嗎?) 按位流
寫入 JPG 檔中就是這樣的:
111000 111001 111000 101101 1111111110011001 10111 11111110110 00001
1011 0111 11011 1 1010
DC 的編碼
---------
記得剛才我們跳過了每組 64 個資料的第一個吧, DC 就是指的這個數字 (後面 63
個簡稱 AC) 代入前面的 FDCT 公式可以得到
c(0,0) 7 7
DC = F(0,0) = --------- * sum sum f(x,y) * cos 0 * cos 0 其中 c(0,0) = 1/2
4 x=0 y=0
1 7 7
= --- * sum sum f(x,y)
8 x=0 y=0
即一塊圖像樣本的平均值. 就是說, 它包含了原始 8x8 圖像塊裏的很多能量. (通常
會得到一個很大的數值)
JPEG 的作者指出連續塊的 DC 率之間有很緊密的聯繫, 因此他們決定對 8x8 塊的
DC 值的差別進行編碼. (Y, Cb, Cr 分別有自己的 DC)
Diff = DC(i) - DC(i-1)
所以這一塊的 DC(i) 就是: DC(i) = DC(i-1) + Diff
JPG 從 0 開始對 DC 編碼, 所以 DC(0)=0. 然後再將當前 Diff 值加在上一個值上得
到當前值.
下面再來看看上面那個例子: (記住我們保存的 DC 是和上一塊 DC 的差值 Diff)
例如上面例子中, Diff 是 -511, 就編碼成
(9, 000000000)
如果 9 的 Huffman 編碼是 1111110 (在 JPG 檔中, 一般有兩個 Huffman 表, 一
個是 DC 用, 一個是 AC 用) 那麼在 JPG 檔中, DC 的 2 進制表示為
1111110 000000000
它將放在 63 個 AC 的前面, 上面上個例子的最終 BIT 流如下:
1111110 000000000 111000 111001 111000 101101 1111111110011001 10111
11111110110 00001 1011 0111 11011 1 1010
下面簡單敍述一下針對一個資料單元的圖片 Y 的解碼
-----------------------------------------------
在整個圖片解碼的開始, 你需要先初始化 DC 值為 0.
1) 先解碼 DC:
a) 取得一個 Huffman 碼 (使用 Huffman DC 表)
b) Huffman解碼, 看看後面的資料位元數 N
c) 取得 N 位, 計算 Diff 值
d) DC + = Diff
e) 寫入 DC 值: " vector[0]=DC "
2) 解碼 63 個 AC:
------- 迴圈處理每個 AC 直到 EOB 或者處理到 64 個 AC
a) 取得一個 Huffman 碼 (使用 Huffman AC 表)
b) Huffman 解碼, 得到 (前面 0 數量, 組號)
[記住: 如果是(0,0) 就是 EOB 了]
c) 取得 N 位(組號) 計算 AC
d) 寫入相應數量的 0
e) 接下來寫入 AC
-----------------
下一步的解碼
------------
上一步我們得到了 64 個向量. 下面我們還需要做一些解碼工作:
1) 反量化 64 個向量 : "for (i=0;i<=63;i++) vector[i]*=quant[i]"
2) 重排列 64 個向量到 8x8 的塊中
3) 對 8x8 的塊作 IDCT
對 8x8 塊的 (Y,Cb,Cr) 重複上面的操作 [Huffman 解碼, 步驟 1), 2), 3)]
4) 將所有的有符號的 8bit 數加上 128
5) 轉換 YCbCr 到 RGB
JPG 檔(Byte 級)裏怎樣組織圖片資訊
-----------------------------------
注意 JPEG/JFIF 檔格式使用 Motorola 格式, 而不是 Intel 格式, 就是說, 如果
是一個字的話, 高位元組在前, 低位元組在後.
JPG 檔是由一個個段 (segments) 構成的. 每個段長度 <=65535. 每個段從一個標
記字開始. 標記字都是 0xff 打頭的, 以非 0 位元組和 0xFF 結束. 例如 'FFDA' ,
'FFC4', 'FFC0'. 每個標記有它特定意義, 這是由第2位元組指明的. 例如, SOS (Start
Of Scan = 'FFDA') 指明了你應該開始解碼. 另一個標記 DQT (Define Quantization
Table = 0xFFDB) 就是說它後面有 64 位元組的 quantization 表
在處理 JPG 檔時, 如果你碰到一個 0xFF, 而它後面的位元組不是 0, 並且這個位元組
沒有意義. 那麼你遇到的 0xFF 位元組必須被忽略. (一些 JPG 裏, 常用用 0xFF 做某
些填充用途) 如果你在做 huffman 編碼時碰巧產生了一個 0xFF, 那麼就用 0xFF
0x00 代替. 就是說在 jpeg 圖形解碼時碰到 FF00 就把它當作 FF 處理.
另外在 huffman 編碼區域結束時, 碰到幾個 bit 沒有用的時候, 應該用 1 去填充.
然後後面跟 FF.
下面是幾個重要的標記
--------------------
SOI = Start Of Image = 'FFD8'
這個標記只在檔開始出現一次
EOI = End Of Image = 'FFD9'
JPG 文件都以 FFD9 結束
RSTi = FFDi ( i = 0..7) [ RST0 = FFD0, RST7=FFD7]
= 重定標記
通常穿插在資料流程裏, 我想是擔心 JPG 解碼出問題吧(應該配合 DRI 使用). 不過很
多 JPG 都不使用它
(SOS --- RST0 --- RST1 -- RST2 --...
...-- RST6 --- RST7 -- RST0 --...)
----
標記
----
下面是必須處理的標記
SOF0 = Start Of Frame 0 = FFC0
SOS = Start Of Scan = FFDA
APP0 = it's the marker used to identify a JPG file which uses the JFIF
specification = FFE0
COM = Comment = FFFE
DNL = Define Number of Lines = FFDC
DRI = Define Restart Interval = FFDD
DQT = Define Quantization Table = FFDB
DHT = Define Huffman Table = FFC4
JPG 檔中 Haffman 表的儲存
---------------------------
JPEG 裏定義了一張表來描述 Haffman 樹. 定義在 DHT 標記後面. 注意: Haffman
代碼的長度限制在 16bit 內.
一般一個 JPG 檔裏會有 2 類 Haffman 表: 一個用於 DC 一個用於 AC (實際有 4
個表, 亮度的 DC,AC 兩個, 色度的 DC,AC 兩個)
這張表是這樣保存的:
1) 16 位元組:
第 i 位元組表示了 i 位元長的 Huffman 代碼的個數 (i= 1 到 16)
2) 這表的長度 (位元組數) = 這 16 個數字之和
現在你可以想像這張表怎麼存放的吧? 對應位元組就是對應 Haffman 代碼等價數字. 我
不多解釋, 這需要你先瞭解 Haffman 演算法. 這裏只舉一個例子:
Haffman 表的表頭是 0,2,3,1,1,1,0,1,0,0,0,0,0,0,0,0
就是說長度為 1 的代碼沒有
長度為 2 的代碼為 00
01
長度為 3 的代碼是 100
101
110
長度為 4 的代碼是 1110
長度為 5 的代碼是 11110
長度為 6 的代碼是 111110
長度為 7 的代碼沒有 (如果有一個的話應該是 1111110)
長度為 8 的代碼是 11111100
.....
後面都沒有了.
如果表下面的資料是
45 57 29 17 23 25 34 28
就是說
45 = 00
57 = 01
29 = 100
17 = 101
23 = 110
等等...
如果你懂 Haffman 編碼, 這些不難理解
採樣係數
--------
下面講解的都是真彩 JPG 的解碼, 灰度 JPG 的解碼很簡單, 因為圖形中只有亮度信
息. 而彩色圖形由 (Y, Cr, Cb) 構成, 前面提到過, Y 通常是每點採樣一次, 而 Cr,
Cb 一般是 2x2 點採樣一次, 當然也有的 JPG 是逐點採樣, 或者每兩點採樣 (橫向
兩點, 縱向一點) 採樣係數均被定義成對比最高採樣係數的相對值.
一般情況 (即: Y 逐點採樣, Cr Cb 每 2x2 點一次) 下: Y 有最高的採樣率, 橫向采
樣係數HY=2 縱向採樣係數 VY=2; Cb 的橫向採樣係數 HCb=1, 縱向採樣係數 VCb=1;
同樣 HCr=1, VCr=1
在 Jpeg 裏, 8x8 個原始資料, 經過 RLC, Huffman 編碼後的一串資料流程稱為一個
Data Unit (DU) JPG 裏按 DU 為單位的編碼次序如下:
1) for (counter_y=1;counter_y<=VY;counter_y++)
for (counter_x=1;counter_x<=HY;counter_x++)
{ 對 Y 的 Data Unit 編碼 }
2) for (counter_y=1;counter_y<=VCb ;counter_y++)
for (counter_x=1;counter_x<=HCb;counter_x++)
{ 對 Cb 的 Data Unit 編碼 }
3) for (counter_y=1;counter_y<=VCr;counter_y++)
for (counter_x=1;counter_x<=HCr;counter_x++)
{ 對 Cr 的 Data Unit 編碼 }
按我上面的例子: (HY=2, VY=2 ; HCb=VCb =1, HCr,VCr=1) 就是這樣一個次序
YDU,YDU,YDU,YDU,CbDU,CrDU
這些就描述了一塊 16x16 的圖形. 16x16 = (Hmax*8 x Vmax*8) 這裏 Hmax=HY=2
Vmax=VY=2
一個 (Hmax*8,Vmax*8) 的塊被稱作 MCU (Minimun Coded Unix) 前面例子中一個
MCU = YDU,YDU,YDU,YDU,CbDU,CrDU
如果 HY =1, VY=1
HCb=1, VCb=1
HCr=1, VCr=1
這樣 (Hmax=1,Vmax=1), MCU 只有 8x8 大, MCU = YDU,CbDU,CrDU
對於灰度 JPG, MCU 只有一個 DU (MCU = YDU)
JPG 檔裏, 圖像的每個組成部分的採樣係數定義在 SOF0 (FFC0) 標記後
簡單說一下 JPG 文件的解碼
-------------------------
解碼程式閑從 JPG 檔中讀出採樣係數, 這樣就知道了 MCU 的大小, 算出整個圖像
有幾個 MCU. 解碼程式再迴圈逐個對 MCU 解碼, 一直到檢查到 EOI 標記. 對於每個
MCU, 按正規的次序解出每個 DU, 然後組合, 轉換成 (R,G,B) 就 OK 了
附:JPEG 檔格式
~~~~~~~~~~~~~~~~
- 文件頭 (2 bytes): $ff, $d8 (SOI) (JPEG 檔標識)
- 任意數量的段 , 見後面
- 文件結束 (2 bytes): $ff, $d9 (EOI)
段的格式:
~~~~~~~~~
- header (4 bytes):
$ff 段標識
n 段的類型 (1 byte)
sh, sl 該段長度, 包括這兩個位元組, 但是不包括前面的 $ff 和 n.
注意: 長度不是 intel 次序, 而是 Motorola 的, 高位元組在前,
低位元組在後!
- 該段的內容, 最多 65533 位元組
注意:
- 有一些無參數的段 (下面那些前面注明星號的)
這些段沒有長度描述 (而且沒有內容), 只有 $ff 和類型位元組.
- 每一個段結束到下一個 $ff 間的資料都是合法的, 必須被忽略掉.
段的類型:
~~~~~~~~~
*TEM = $01 可以忽略掉
SOF0 = $c0 幀開始 (baseline JPEG), 細節附後
SOF1 = $c1 dito
SOF2 = $c2 通常不支持
SOF3 = $c3 通常不支持
SOF5 = $c5 通常不支持
SOF6 = $c6 通常不支持
SOF7 = $c7 通常不支持
SOF9 = $c9 arithmetic 編碼(Huffman 的一種擴展演算法), 通常不支援
SOF10 = $ca 通常不支持
SOF11 = $cb 通常不支持
SOF13 = $cd 通常不支持
SOF14 = $ce 通常不支持
SOF14 = $ce 通常不支持
SOF15 = $cf 通常不支持
DHT = $c4 定義 Huffman Table, 細節附後
JPG = $c8 未定義/保留 (引起解碼錯誤)
DAC = $cc 定義 Arithmetic Table, 通常不支援
*RST0 = $d0 RSTn 用於 resync, 通常被忽略
*RST1 = $d1
*RST2 = $d2
*RST3 = $d3
*RST4 = $d4
*RST5 = $d5
*RST6 = $d6
*RST7 = $d7
SOI = $d8 圖片開始
EOI = $d9 圖片結束
SOS = $da 掃描行開始, 細節附後
DQT = $db 定義 Quantization Table, 細節附後
DNL = $dc 通常不支持, 忽略
DRI = $dd 定義重新開始間隔, 細節附後
DHP = $de 忽略 (跳過)
EXP = $df 忽略 (跳過)
APP0 = $e0 JFIF APP0 segment marker (細節略)
APP15 = $ef 忽略
JPG0 = $f0 忽略 (跳過)
JPG13 = $fd 忽略 (跳過)
COM = $fe 注釋, 細節附後
其他的段類型都保留必須跳過
SOF0: Start Of Frame 0:
~~~~~~~~~~~~~~~~~~~~~~~
- $ff, $c0 (SOF0)
- 長度 (高位元組, 低位元組), 8+components*3
- 資料精度 (1 byte) 每個樣本位元數, 通常是 8 (大多數軟體不支援 12 和 16)
- 圖片高度 (高位元組, 低位元組), 如果不支援 DNL 就必須 >0
- 圖片寬度 (高位元組, 低位元組), 如果不支援 DNL 就必須 >0
- components 數量(1 byte), 灰度圖是 1, YCbCr/YIQ 彩色圖是 3, CMYK 彩色圖
是 4
- 每個 component: 3 bytes
- component id (1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q)
- 採樣係數 (bit 0-3 vert., 4-7 hor.)
- quantization table 數
DRI: Define Restart Interval:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- $ff, $dd (DRI)
- 長度 (高位元組, 低位元組), 必須是 4
- MCU 塊的單元中的重新開始間隔 (高位元組, 低位元組),
意思是說, 每 n 個 MCU 塊就有一個 RSTn 標記.
第一個標記是 RST0, 然後是 RST1 等, RST7 後再從 RST0 重複
DQT: Define Quantization Table:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- $ff, $db (DQT)
- 長度 (高位元組, 低位元組)
- QT 信息 (1 byte):
bit 0..3: QT 號(0..3, 否則錯誤)
bit 4..7: QT 精度, 0 = 8 bit, 否則 16 bit
- n 位元組的 QT, n = 64*(精度+1)
評論:
- 一個單獨的 DQT 段可以包含多個 QT, 每個都有自己的資訊位元組
- 當精度=1 (16 bit), 每個字都是高位在前低位元在後
DAC: Define Arithmetic Table:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
法律原因, 現在的軟體不支援 arithmetic 編碼.
不能生產使用 arithmetic 編碼的 JPEG 檔
DHT: Define Huffman Table:
~~~~~~~~~~~~~~~~~~~~~~~~~~
- $ff, $c4 (DHT)
- 長度 (高位元組, 低位元組)
- HT 信息 (1 byte):
bit 0..3: HT 號 (0..3, 否則錯誤)
bit 4 : HT 類型, 0 = DC table, 1 = AC table
bit 5..7: 必須是 0
- 16 bytes: 長度是 1..16 代碼的符號數. 這 16 個數的和應該 <=256
- n bytes: 一個包含了按遞增次序代碼長度排列的符號表
(n = 代碼總數)
評論:
- 一個單獨的 DHT 段可以包含多個 HT, 每個都有自己的資訊位元組
COM: 注釋:
~~~~~~~~~~
- $ff, $fe (COM)
- 注釋長度 (高位元組, 低位元組) = L+2
- 注釋為長度為 L 的字元流
SOS: Start Of Scan:
~~~~~~~~~~~~~~~~~~~
- $ff, $da (SOS)
- 長度 (高位元組, 低位元組), 必須是 6+2*(掃描行內元件的數量)
- 掃描行內元件的數量 (1 byte), 必須 >= 1 , <=4 (否則是錯的) 通常是 3
- 每個元件(部分): 2 bytes
- component id (1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q), 見 SOF0
- 使用的 Huffman 表00-1-14:
- bit 0..3: AC table (0..3)
- bit 4..7: DC table (0..3)
- 忽略 3 bytes (???)
評論:
- 圖片資料 (一個個掃描行) 緊接著 SOS 段.
星期三, 9月 12, 2007
[日誌]事情總是愛擠在一起出現
今天難得有空
就來寫一下昨天的日記唄
話說九月九號撘飛機回到桃園機場以後
Rosa看我在忙就先跑去問阿坤啥時要咪聽
Boss曰:這種小事問黃世育就好了啊 給他決定給他決定
可是...黃世育老師早就跑走了ㄚ....囧
時間很快的在不停睡睡睡中度過
等我醒來 都九月十日下午了
老媽打電話來
說那個扶輪社有打電話來
叫我再附上中文的履歷跟自傳
天阿阿阿阿阿~~~
這是不是表示我離申請到獎學金又更前進了一步
好開心好開心喔
趕快跑去阿嬤家用電腦
誰知道一開skype小黃就噹過來
[2007/9/10 下午 02:39:26] 黃世育(喜樂的心乃是良藥;憂傷的靈使骨枯乾) 說 : 明天 9/11 上午 9:30 在 實驗室 Meeting 請轉告 其它同學
這真是酷斃了
我還想說明天要跑去寫自傳的說
日本回來我就睡死了
沒新進度可以咪阿
真是大囧
開始認真的思考我要不要趁現在跑去生進度
可是又好想睡覺喔
管他的
九點半就要到耶
我還是早點去睡才爬的起來到學校
我可是不能再遲到了ㄚ
結果小黃一早就打電話下來
跟阿梅說
叫我們寫未來的規劃
先以一學期為目標
正在想說怎麼寫的時候
換阿坤打來了
跟我說這是學期末要拿出來檢視有沒有做到的
還叫我寫詳細點
這下囧了
我到底是要寫簡單一點我一定做得到的還是怎樣
內心真是天人交戰阿
管他的
反正我平常也是個行事曆人
就按照我平常會為自己規劃的方法去寫好了
唔...
我之前很怕我看paper的速度太慢就跑去問院長
他覺得看一篇論文要多久
他說他一個月看完一篇論文差不多
他那麼厲害的人
ㄧ篇都要一個月才看的完
我還是不要下那種一個禮拜看一篇的豪語好了
反正剛開學應該多少都會上點課吧
那就先這樣預定好了
九月
1. 完成 JPEG Decoder.
2. 報完暑假前沒報完的論文
3. JPEG Encoder.
十月
1. 完成JPEG Encoder.
2. 看完一篇在Jpeg藏東西的論文(1)
3. 寫程式模擬(1)看的論文
十一月
完成模擬(1)的程式
十二月
看完一篇在Jpeg藏東西的論文(2)
寫程式模擬(2)看的論文
一月
完成模擬(2)的程式
不過黃老師果然很猛
一下子就說
要大量閱讀阿
那就ㄧ個禮拜報告一篇paper好了
而且是每個人都要講喔
禮拜二一組禮拜五一組
真是酷斃了
我要挑戰人類的極限了嗎
還好阿坤有跳出來說話
有時候一個段落就是一篇其他人的論文了
所以ㄧ次可以只報告ㄧ個session就好
我總算是鬆了一口氣...
星期二, 8月 14, 2007
[jpeg]Huffmancode
太久沒跟老闆見面
程式卡關之後就給它放在那邊
都快忘記自己怎麼寫的了
不過老闆禮拜二要討論啊
而且又看到老闆對在他的blog上面發表了兩篇Huffman table的東西
這下我如果說忘記了的話
一定會死的很難看
好不容易老闆要理我的說
怎麼可以放棄掉這個好機會
本來想說我程式只是卡關
沒想到之前寫的還是有問題
為什麼我多好多個huffmantable阿
一樣的JPEG用老師的程式就可以正常開
我之前可以開只是剛好吧
果然還是要多做實驗才行
昨天與程式奮鬥了一天
發現原來問題在我陣列的位置算錯啊
少算到table index 所佔到的那個BYTE
應該要改成這樣才對...
begH += (LiCount+17); //用來skip上面那行指令--> HuffmanTable(begH)
hLength -=(17 + LiCount);
唔...
雖然跟我想像會進行到的地方不太一樣
不過先找出問題也是好的
至少自己解決了XDD
星期四, 8月 09, 2007
[JPEG]DCT的概念
要積極點!!這句話是我現在對老闆要奉行的原則
今天10點到學校之後
眼看都要10點半了
BOSS還不下來
這樣下去怎麼得了阿
所以就用skype噹Boss
確認他在辦公室之後
就問他我可不可以上去找他
剛好他在幫學妹上課
就叫我順便坐在旁邊聽課了
原來DCT轉換過後阿
8X8的的block裡面
每個不同點就代表不同的波形的係數
如果一張圖片可以用一個函數f(x)表示的話
那 f(x) = a1*g1(x) + a2*g2(x) + .... + a64*g64(x)
把這些a1~a64記錄下來
就是新的DCT矩陣
因為g1(x)~g64(x)的內容都知道了
所以只要記錄他的係數就好了
a1 a2 a3 a4 ...... a6 a7 a8
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
a57 a58 a59 ....... a63 a64
星期三, 8月 08, 2007
在這份規格書中,對編碼與解碼的程序,定義了兩種類別-- lossy and lossless processes.
lossy是利用數位餘弦轉換法(Discrete Cosine Transform,簡稱DCT) .....
以下明天繼續...
--我是原文--我是原文--我是原文--我是原文--我是原文--我是原文--
This Specification specifies two classes of encoding and decoding processes, lossy and lossless processes. Those based on the discrete cosine transform (DCT) are lossy, thereby allowing substantial compression to be achieved while producing a reconstructed image with high visual fidelity to the encoder’s source image.
The simplest DCT-based coding process is referred to as the baseline sequential process. It provides a capability which is sufficient for many applications. There are additional DCT-based processes which extend the baseline sequential process to a broader range of applications. In any decoder using extended DCT-based decoding processes, the baseline decoding process is required to be present in order to provide a default decoding capability.
The second class of coding processes is not based upon the DCT and is provided to meet the needs of applications requiring lossless compression. These lossless encoding and decoding processes are used independently of any of the DCT-based processes.
A table summarizing the relationship among these lossy and lossless coding processes is included in 4.11.
The amount of compression provided by any of the various processes is dependent on the characteristics of the particular image being compressed, as well as on the picture quality desired by the application and the desired speed of compression and decompression.
EXIF 全名是: Exchangeable Image File Format
是日本電子資訊科技工業技術協會 (JEITA) 所擬定的規格,
目前的版本已經到了 EXIF 2.2x。
只要透過一些支援 EXIF 的影像瀏覽軟體(譬如 ACDSee,photoshop),
便可輕易解讀各項 EXIF 規格資料。
www.dcview.com.tw
------------------------有情有義分隔線XD---------------------------------
Exif 規格
http://www.exif.org/specifications.html
EXIF 2.1 (June 1998)
裡面的94頁開始是Exif Audio File Specification
131-149頁是Appendix A Image File Description Examples
139頁開始JPEG和有關
EXIF 2.2 (April 2002) 還要安裝日本字喔....
------------------------有情有義分隔線XD---------------------------------
UltraEdit (16位元碼編輯器)
http://www.ahasoft.com.tw/idm/
XDD
http://www.webeee.com/bbs/dispbbs.asp?boardID=5&ID=2311&page=2
3.1.22 (coding) process: //步驟;程序
A general term for referring to an encoding process, a decoding process, or both.
好吧...我知道process在OS中的意思...不知道一不一樣...我想它應該是指程式在執行的時期吧...
term 期,期限
refer +to 論及,談到,提及
3.1.23 colour image:
A continuous-tone image that has more than one component.
雖然我不會翻這句話...可是他(colur image)應該就是指彩色影像吧...
continuous-tone image 是指連續風格影像,也就是成套的設計...感謝奇摩知識...<(_ _)>
3.1.24 columns:
Samples per line in a component.
column+s....阿不就很多行...
column【數】行(臺灣),列(大陸)...這三小...大陸跟台灣是連翻譯都要不一樣就是了...還差真多...
3.1.25 component:
One of the two-dimensional arrays which comprise an image.
二元陣列構成的影像...
dimensional 【物】量綱的;【數】因次的(adj.)
comprise 構成(v.)
3.1.26 compressed data:
Either compressed image data or table specification data or both.
壓縮影像的資料或規格表中的資訊...
3.1.27 compressed image data:
A coded representation of an image, as specified in this Specification.
一段代表影像的編碼
3.1.28 compression:
Reduction in the number of bits used to represent source image data.
縮小代表來源影像資料的bit數...啊不就壓縮....
Reduction 縮小
3.1.29 conditional exchange:
The interchange of MPS and LPS probability intervals whenever the size of the LPS interval is greater than the size of the MPS interval (in arithmetic coding).
反正呢...就是MPS和LPS會在某種情況下互換...這個某種情況就是當LPS的休息時間比MPS的休息時間多的時候
conditional 有條件的
interchange 交換,互換
MPS(more probable symbol)
For a binary decision, the decision value which has the larger probability.
在二選一的情況下...有可能會被選到的機率比較大(??)好吧...這是我亂翻的...
LPS(less probable symbol)
For a binary decision, the decision value which has the smaller probability.
在二選一的情況下...有可能會被選到的機率比較小(??)一樣是亂翻的...
interval 間隔;距離
機...MPS和LPS在後面...心機耶...這個又沒有照順序排...真不人性化的標準書 = =
而且亂翻完之後我還是不知道MPS和LPS是啥...囧
3.1.30 (conditional) probability estimate:
The probability value assigned to the LPS by the probability estimation state machine (in arithmetic coding).
由the probability estimation state machine產生最有可能給LPS的估計數(??)
estimate 估計;估價;估計數
estimation 評價;判斷;意見
3.1.31 conditioning table:
The set of parameters which select one of the defined relationships between prior coding decisions and the conditional probability estimates used in arithmetic coding.
機...condition不是狀態嗎...加個變化就變成條件了....
我想這是說conditioning table 裡面是放prior coding 的決定與估計值的條件吧...
conditioning 條件作用,條件反射作用(n.)
parameter 參數,參量(n.)
conditional 有條件的
3.1.32 context:
The set of previously coded binary decisions which is used to create the index to the probability estimation state machine (in arithmetic coding).
我想這只是說用來create 估計值的檢索值所做的事吧...
context 來龍去脈,背景
previously 事先;以前
3.1.33 continuous-tone image: //哈哈 我認得這個字 連續色調的影像...
An image whose components have more than one bit per sample.
至少1bit所組成的影像
3.1.34 data unit://資料單元...
An 8 × 8 block of samples of one component in DCT-based processes; a sample in lossless processes.
應該就是data的基礎單元吧...在這裡定義成DCT-based processe形成的8X8的block...
3.1.35 DC coefficient:
The DCT coefficient for which the frequency is zero in both dimensions.
DCT的係數所在頻率的範圍是0.//不知道DC是三小...
3.1.36 DC prediction:
The procedure used by DCT-based encoders whereby the quantized DC coefficient from the
previously encoded 8 × 8 block of the same component is subtracted from the current quantized DC coefficient.
3.1.37 (DCT) coefficient:
The amplitude of a specific cosine basis function – may refer to an original DCT coefficient,
to a quantized DCT coefficient, or to a dequantized DCT coefficient.
3.1.38 decoder:
An embodiment of a decoding process.
3.1.39 decoding process:
A process which takes as its input compressed image data and outputs a continuous-tone
image.
3.1.40 default conditioning:
The values defined for the arithmetic coding conditioning tables at the beginning of
coding of an image.
3.1.41 dequantization:
The inverse procedure to quantization by which the decoder recovers a representation of the
DCT coefficients.
3.1.42 differential component:
The difference between an input component derived from the source image and the
corresponding reference component derived from the preceding frame for that component (in hierarchical mode coding).
3.1.43 differential frame:
A frame in a hierarchical process in which differential components are either encoded or
decoded.
3.1.44 (digital) reconstructed image (data):
A continuous-tone image which is the output of any decoder defined in
this Specification.
3.1.45 (digital) source image (data):
A continuous-tone image used as input to any encoder defined in this
Specification.
3.1.46 (digital) (still) image:
A set of two-dimensional arrays of integer data.
3.1.47 discrete cosine transform; DCT:
Either the forward discrete cosine transform or the inverse discrete cosine
transform.
3.1.48 downsampling (filter):
A procedure by which the spatial resolution of an image is reduced (in hierarchical
mode coding).
3.1.49 encoder:
An embodiment of an encoding process.
3.1.50 encoding process:
A process which takes as its input a continuous-tone image and outputs compressed image
data.
3.1.51 entropy-coded (data) segment:
An independently decodable sequence of entropy encoded bytes of compressed
image data.
3.1.52 (entropy-coded segment) pointer:
The variable which points to the most recently placed (or fetched) byte in
the entropy encoded segment.
3.1.53 entropy decoder:
An embodiment of an entropy decoding procedure.
3.1.54 entropy decoding:
A lossless procedure which recovers the sequence of symbols from the sequence of bits
produced by the entropy encoder.
3.1.55 entropy encoder:
An embodiment of an entropy encoding procedure.
3.1.56 entropy encoding:
A lossless procedure which converts a sequence of input symbols into a sequence of bits
such that the average number of bits per symbol approaches the entropy of the input symbols.
3.1.57 extended (DCT-based) process:
A descriptive term for DCT-based encoding and decoding processes in which
additional capabilities are added to the baseline sequential process.
3.1.58 forward discrete cosine transform; FDCT:
A mathematical transformation using cosine basis functions which
converts a block of samples into a corresponding block of original DCT coefficients.
星期四, 8月 02, 2007
[日誌]8/1
現在都沒時間寫日記來養小黑
還好有藍斯諾的文章可以轉載
讓我可以養活笨黑
昨天跟雯婷他們去吃飯
也有跟他提到跟老闆很僵的這件事
後來想想
總不能一直這樣下去
剛好rosa提到
學長說那個資安會議的補助款要跟老師催
黃世育老師那邊的錢已經下來了
只剩下我的
所以我要去跟阿坤催才行
我聽了以後覺得這是個機會
就鼓起用氣 打電話給老師
想藉此跟他說我的問題
--以下是電話內容--
cos: 老師 那個資安會議的補助款阿 學長說已經下來了 叫我跟你說ㄧ生
老師: 喔 好 那我要查一下
cos: 老師 那你明天會來嗎
老師: 我明天不會去 我這禮拜都不會去學校
cos: 可是我下禮拜要去上課耶....
(還沒提到那這樣我們就會一直沒咪聽了)
老師: 那現在是怎樣 你們希望我先給你們錢是不是....
cos:囧 沒.沒.沒.沒有 老師你慢慢查 再見
老師~~~我不是要跟你要錢
我只是想跟你說
我們已經很久很久沒咪聽了
我想要咪聽阿~~~~~囧囧囧
星期三, 8月 01, 2007
[日誌]修身養性
今天又不小心讓自己失去了理智
早上boss沒來
只有黃老師來
我們上去找老師的時候
黃老師還跟我說
叫我寫文章只是不要讓阿梅跟rosa心理不平衡
順便讓我知道寫文章是很困難的
聽到真是晴天霹靂阿
接著boss還是沒出現
雖然早就從學妹那邊知道BOSS放假去了
可是阿
內心還是希望Boss今天會出現
事實證明
BOSS果然還是放假去了
雖然身為一個學生來說
是不能管老師太多的
可是
二四咪聽不是你自己講的嗎
放假到現在一個月了
跟你咪聽也才兩次是怎樣
會不會太少
為什麼你都遲到
然後就去跟大學部咪聽
接著就回家了
不想咪是不會直接說喔
為什麼就有時間聽學妹他們講話
就沒時間聽我講話
連學妹都說你好像有點在閃
不想聽我講話
沒錯!! 自己造業自己擔
我是要為了之前的行為付出代價
你不太想聽我講話也是應該的
可是 我真的很努力很努力的想跟著你做研究阿
畢竟我也付出了半年的時間在這個題目上
不想放手阿
我的黃金歲月中的半年耶
結果不知道為什麼
越想越火大
就跑上去問黃世育老師
BOSS是不是不想收我當學生了
結果也是不了了之
我朋友還跟我說黃老師是不想管這件事 所以呼巄過去而已
聽了真的事超想哭的啦
星期日, 7月 29, 2007
[閒聊]網誌阿網誌
女王我就沒有寫網誌的興致了
反正再多笨黑也學不到新字(聳肩)
不過...
小黑你還是要給我認真寫網誌喔
我家笨黑的成長就完全靠你了
知不知道啊!!
今天聽kenn講到一個他覺得很好笑的事
一直逼我承認我就是XXX
----
加菲:「你們對那個XXX有沒有什麼意見,如果收她的話」
加菲:「你們應該都沒有什麼意見吧,除了那個OO以外,你不是覺得她很可愛嗎」
OO:「我沒有說她很可愛」
---------------5 Mins later---------------
加菲又重複了同樣的話
OO:「我絕對沒有說她很可愛,我只是說她講話很好笑」
全場笑翻了
加菲真是超故意的,講一次就很好笑了,還在最後多戳OO一次
----
老師好機喔
幹麻偷偷的用我戳別人
不過我也囧到了
反正我就是沒那個被講可愛的命啦
哼
星期六, 7月 21, 2007
[閒聊]打工會延畢??
我算一算
因為那個工讀生鐵人的關係
我在7/25以前
應該都沒時間po文
根據很久以前的經驗
可以偷偷的把文章日期調到後面
這樣笨黑就可以慢慢的學新的字了XD
唉
其實我最近心理壓力一直很大
總覺得快把自己的未來毀掉了
可是又沒辦法阻止這件事
好煩好煩喔
7/17那天老闆對於打工這件事終於給了回應
可能是自己那天遲到的關係吧
並沒有和老闆談太久他就要去口試了
"你媽沒給你錢 我又不讓你去打工的話 那你不是退學了嗎"
"我不能強迫你不去打工 我只能把可能的後果跟你講 你自己去選擇 再跟我說答案"
"打工的話會有很大的機率會延畢"
"可是我不能保證你不打工就不會延畢"
"我頂多只能承諾你 不打工的話 我國科會一個月可以給你六千塊"
"但是 你去打工的話 因為你沒辦法幫我做事 所以六千可能會被扣成兩千 或是扣成零"
"我可能把那些錢給專題生 一人一千吧 他們也正在訓練 就像阿梅以前有拿錢一樣"
"你自己回去好好想想"
其實BOSS那天分析的很客觀
客觀到我覺得很恐怖
你明明也是影響我我能不能畢業的關鍵人物
為什麼可以分析到如此客觀
好像是旁觀者一樣
讓我覺得好毛好毛
我知道專心做研究很重要
可是也要有那個條件才可以專心阿
我內心突然有一種恐怖的想法
打工會唸三年 不打工我一年都唸不下去
那 我可不可以先去打工 你先當沒有收我這個學生
等我錢存夠了再來找你 專心做研究
雖然是很想這樣跟BOSS講
可是...
我好怕BOSS覺得我在浪費他的時間
乾脆就不收我了
真是煩阿
誰來告訴我要怎麼做
星期一, 7月 16, 2007
[心情]關於打工
研究所要打工要老師同意
前幾天向黃世育老師探口風
想問問看老闆對於打工的看法
結果得到的回答竟然是
"可以ㄚ 念四年就可以"
而且後來又說了一些我聽不懂的話
什麼"李老師已經對你很好了"之類的
我當然知道BOSS對我已經算是不錯了
"像我都要求我的學生跟我報告進度"
這裡我就更不懂了
沒有要求進度報告也不是什磨好事好不好
太久沒盯進度才恐怖...
都不知道自己做的對不對
之前不想被盯進度是因為我還沒想要定下來阿
我現在超想要每天都被問做到哪裡了
我可是已經連續兩個禮拜都被老闆晃點
每次都跟我說要咪聽
每次咪聽都遲到
接著就跑去跟大學部咪聽了
害我後來都要跑去強迫boss聽我講話
好不習慣喔~~~~
這次也是想了超久才跟boss說
請他允許我去打工
雖然學長們都說以後老師會給國科會的錢
可是我現在就活不下去了阿~~~
而且我又不敢跟老師要錢
好煩惱喔~~~