之前第二週的時候!還記得老師跟同學在討論
壓縮檔跟非壓縮檔的差別,以及用到的調色盤顏色種類一定要全部納麼多嗎?這樣會浪費多少的空間,
造成佔著茅坑不拉屎的三不管地帶呢?
老師說大家有興趣可以去寫個程式來看看這樣的現象
一張圖片所用到的顏色大概會小於他的一半
以下是我寫的程式所做的統計:
屢試不爽,大概連1/2的顏色種類都不會到!
恩....大概就是這樣....
Data Struture 我try了兩種:
1.Linked list
演算法:
repeat Get the RGB information form the pixel
if(the color is NOT in the list)
add this color into the list
kind++
else
do nothing
until the whole pixels are done
優點:
空間的利用度相較於Array來的高!(because大部分的顏色是重複的) 缺點: 搜尋串列的速度會越來越慢,隨著加入的顏色增多,需要比對的次數也會越來越多次!
2.Array
initial bool Array[256][256][256]={false};
repeat
if(Array[R][G][B]==flase)
set it(Array[R][G][B]) true
kind++
else
do nothing
until the whole pixels are done
優點:
速度較快,Array視為一個大的table! 較接近人類的思考模式(i.e.哪種顏色用過就在哪個格子裡打勾!)
缺點:
空間會有所浪費!
最後我選擇的是Arrray,因為速度較快!
2007年3月28日 星期三
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言