想聽matika碎碎唸嗎? 你來對地方了!

星期六, 1月 16, 2010

智器Q7/V7的差別

Q7是一顆ARM11 CPU, 沒有1080P硬解能力
V7用了Telechips 8902. 有1080P硬解能力.

簡單的講, Telechips不可能自己去研發一棵ARM11 CPU, 但是他們自己是MP3/MP4 chip
研發商, 所以就買了ARM11 CPU的die. 跟自己公司的1080P decoder的die封裝在一起,
變成一顆新的IC, 體積跟耗電都會比ARM11+1080P decoder兩個加起來小, 而且成本也會低一點..
這叫做MCP(多晶片封裝)..
http://zh.wikipedia.org/wiki/%E5%A4%9A%E6%99%B6%E7%89%87%E6%A8%A1%E7%B5%84

再白話點解釋就是.

V7 的CPU是ARM11 -> 排骨便當
1080P decoder -> 雞腿便當

當你兩個都需要時, 你不必兩個便當都買, 你只要準備一個略大的便當盒, 把排骨跟雞腿放到大的便當盒裡面即可
不必單獨買兩個便當.

Resolution definition

Resolution definition

16:9 series
WVGA 854*480
HD 720 1280*720
1366*768
HD1080 1920*1080

4:3 series
QVGA 320*240
VGA 640*480
PAL 768*576
SVGA 800*600
XGA 1024*768
SXGA+ 1400*1050
UXGA 1600*1200
QXGA 2048*1536

8:5 series
CGA 320*200
WXGA 1280*800
1440*900
WSXGA 1680*1050
WUXGA 1920*1200

Live wall paper

The source code of Nexus one live wallpaper(Galaxy)


這裡應該是用亂數函式產生Galaxy, 但是仍有定義Galaxy的直徑大小
*/
void createParticle(struct Stars_s *star, struct Particles_s *part, float scale) {
float d = fabsf(randomGauss()) * State->galaxyRadius * 0.5f + randf(64.0f);
float id = d / State->galaxyRadius;
float z = randomGauss() * 0.4f * (1.0f - id);
float p = -d * ELLIPSE_TWIST;

下面應該就是Java code
/**
* Initialize all the stars. Called from Java.
*/
void initParticles() {
if (State->isPreview == 1) {
angle = 0.0f;
}

struct Stars_s *star = Stars;
struct Particles_s *part = Particles;
int particlesCount = State->particlesCount;
float scale = State->galaxyRadius / (State->width * 0.5f);

int i;
for (i = 0; i < clear="none">createParticle(star, part, scale);
star++;
part++;
}
}

void drawSpace(float xOffset, int width, int height) {
bindTexture(NAMED_PFBackground, 0, NAMED_TSpace);
drawQuadTexCoords(
0.0f, 0.0f, 0.0f, 0.0f, 1.0f,
width, 0.0f, 0.0f, 2.0f, 1.0f,
width, height, 0.0f, 2.0f, 0.0f,
0.0f, height, 0.0f, 0.0f, 0.0f);
}

過一陣子應該會有人釋出可在PC/mac上執行的live wallpaper桌面

Live桌面不是Gif動畫, 而是含有程式碼的, 可參考Processing.