Computer Organization and Assembly Languages Final project
數學四 b93201010 施鴻逸 數學四 b93201029 林珍綺
Index
Motivation ………3
Implementation……….4
Discussion ……….….9
Reference ……….…..9
Motivation
作業三之中,題目曾要求我們對圖片作 Blur(模糊影像)的效果,先以組合語言建 立一個名為 myfilter 的 assembler source 檔,再用 GBA 模擬器跑出結果。
然而,我們好奇組合語言在影像處理的其他相關功能上,例如說 Darken(調暗),
Lighten(調亮),Zoom in(縮小),Zoom out (放大),Scaling(伸縮變形),Mirror(鏡射)甚 至 Rottation(旋轉)等等是否也能有延伸實做的空間,若是能力許可,更期許一般影 像處理軟體所必備的基本功能都在探討範圍之內,而這就是此次我們 final project 所要研究的重心。
Implementation
<
原圖原圖原圖原圖>I. Blur – 影像模糊影像模糊影像模糊 影像模糊
以每一個 pixel 為中心,綜何鄰
近 8 個 pixel 的值作平均,以此值為 代表輸出。若 pixel 位於邊界上則
只取相鄰 6 值(包括自己)的平均,
若在角落上則只取 4 個(包括自己)。
9 格相加除以 9
6 格相加除以 6
4 格相加除以 4
II. Darken –調暗調暗調暗調暗畫面畫面畫面畫面
調整 ncolor b ( ncolorg , ncolor r) 三者的值。加上任意常數 之後(若超過範圍則取最大值 31)即 能調整畫面亮度,所加常數越大則 亮度越低,畫面也越暗。
p
p
p
例如:
ncolor +
III. Lighten –調亮調亮調亮調亮畫面畫面畫面畫面
原理與 Darken 相同,只是將 加法改成減法。
例如:
ncolor -
IV. Highlight – 反白效果反白效果反白效果 反白效果
調整 ncolor b , ncolor g 與 ncolor r 三者的值使 0 變 1 而 1 變 0,再與 0111111111111111 作 xor 的運算。
V. Zoom in – 縮小圖案縮小圖案縮小圖案 縮小圖案
每四格中只取一格的 pixel 值為代表輸出,最後結果 只有原圖的四分之一大小。
b g r
0 00100 00100 00100
b g r
0 00100 00100 00100
VI. Zoom out – 放大圖案放大圖案放大圖案放大圖案
原理與 Zoom in 近似,只是將 一個 pixel 值擴充至 4 格的範圍(Zoom in 原理逆向操作)。若想提升解析度使 其放大後馬賽克程度降低並使周邊看 起來較柔和,擴充後的 pixel 值在遇 到”臨界處”時(與相異 pixel 值交界 處),可取兩者的加總平均。
VII. Stretch – 伸縮變形伸縮變形伸縮變形 伸縮變形
利用 Zoom in 或 Zoom out 的原理,可對指定區域做 x 座標或 y 座標的伸縮變 形。
p p p p
p p p p
p p p p p p p p
1 2 3 4 5 6 7 8
1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 5 5 6 6 7 7 8 8
( b) X-Stretch x 座標往內縮成一半大小 ( a) Y-Stretch
y 座標往內縮成一半大小
VIII. Mirror – 鏡射效果鏡射效果鏡射效果鏡射效果
在讀取所有 pixel 值之後,針對欲鏡射的方向選取鏡射軸,調整資料使資料以對 稱鏡射軸的方向依序輸出。
IX. Transpose
調整 pixel 的 x 座標與 y 座標使其作伸縮 變化與固定比例偏移(為基本的 translation 與 stretch 的延伸)。
X. Rotation – 旋轉畫面旋轉畫面旋轉畫面旋轉畫面
在讀取所有 pixel 值之後,針對欲輸出的方向依序輸出即可。
( b) X-Mirror
x 座標對 y 軸做鏡射 ( a) Y-Mirror
y 座標對 x 軸做鏡射
( a ) Rotation 90 圖片逆時鐘旋轉 90 度
( b) Rotation 180 圖片逆時鐘旋轉 180 度
( c ) Rotation 270 圖片逆時鐘旋轉 270 度
Discussion
在實作過以上幾個基本功能後,我們發現影像處理軟體中的許多功能 不外乎是固定幾項基本功能的延伸,例如色調的改變就是調整畫面的明暗 程度,近一步推廣也許可以調整色度與色相變化(若在參數取樣對象上做點 改變)。至於放大縮小功能更是不在話下,利用此原理使畫面有往任意方向 伸縮延展的可能,加上基本的平移功能(translation)讓畫面變形的更徹底,
其他還有鏡射與旋轉等等,都讓影像處理有更多元的變化選擇。雖然我們 研究的組合語言技術還不夠成熟精進,無法徹底探討專業軟體強大功能之 所在,但是其實電腦圖學中的基本指令皆已在我們實作成果之中,期待以 後還有更進一步的空間。
Reference
Example #2 image processing library 前人寶貴的參考資料 http://www.csie.ntu.edu.tw/~cyy/courses/assembly/07fall/lectures/
教授上課豐富的投影片 ^_________^ 寒假快樂!!!