我面的职位是Embedded Image Processing System Engineer,属于Camera组。以下面经对于不搞Multimeida的同学是没有任何用处的。。搞Multimedia的同学对这些问题应该也都是驾轻就熟。
今天早晨10点开始面试。由于酒店和那个building灰常近,所以我9:40出发。。
好吧,第一段没有用。跳过。
第一轮:HR面。跳过。
第二轮:这个中东人见我的第一句话就是“我其实不应该来面试你的,这是个错误。” 我楞了一下他说 “这样开始面试真是好奇怪啊!”。。然后他解释说,他的组不是我要面的组,为什么他会在面试官list里,他猜测是个系统错误。然后让我放松,随便聊聊。然后他给我介绍了半天他是干嘛的,然后就愉快地结束了。
第三轮:一个中国中年人带我吃饭。在小餐厅居然遇到了冯磊学长!真是无巧不成书。这个中国面试官挺亲切的,很文雅。说他主要是做图像处理算法在硬件层的optimization,所以会用到汇编语言,要懂computer arch。我说我这方面没什么背景,就知道基础概念,本科学过微型计算机8251。他也没在这里深究。我就开始给他介绍我做过的一些项目。聊到了本科毕设HDR,他说他也现在在做HDR,就交流了一下,问我HDR最难的部分是什么。然后他给我介绍他们的新功能“Smart Camera”, 可以分析正在拍摄的场景智能地切换拍照模式。比如这手机对着一本书拍,相机会自动修正书页边缘的distortion,生成一个pdf。
然后。。他问我来自中国哪里,问我父母是做什么工作的,我跟他说,我们家那是个煤矿。他瞬间来了兴趣,问我怎么采煤的。。擦,真是瞎了哥的狗眼。于是我就把露天煤矿和井工矿的技术、煤炭在10年前的暴利、煤炭的勘探什么的都给他讲了一遍。。真是瞎了哥的狗眼。这就聊了20分钟,然后他带我去见下一个面试官了。。
第四轮:是个印度人。大约有3/4的时间在跟我讨论2D电影转3D的项目。问的还挺细致的,抓住了一些要点。还好我之前跟DIBR+HF组混的比较熟,里面的技术不会做也是会说的。他后来问我fixed point calculation。我只是跟他扯到了自定义fixed point type的时候,分配多少bit要根据应用来定。比如处理普通的RGB数据,那分配8-10个bit给整数就够了。但是要到了HDR,可能要分配15-20个bit。
第五轮:一个中国人,长的像我大舅,说话也像我大舅。第一题,数一个整型数里1bit的个数。纠正了我的一个写法。变量a右移一位,我写作"a>>1". 他说写成"a = a>>1"比较好。我argue说功能是一样的,至少在C++的范畴。他说第二种写法更清晰,可以换平台用。第二题让我写了一遍JPEG压缩的流程图,问了一些JPEG的要点,比如为什么要用DCT,为什么要用YCbCr, quality factor如何控制压缩质量。第三题给我几个charactor和概率,让我建huffman树。第四题让我很纠结,问我如何实现对数,或者如何逼近对数。他想要的答案竟然是“查表法”!因为如何design这个表,是很重要的。
第六轮:一个印度人,名字叫Ravi,对,就是Pi的哥哥。他也对2D电影转3D很感兴趣。第一题,5*5的median filter和一个5*5的average filter的时间复杂度比较。想起来不久前江丹问过我的问题,正好用到了。这个题跟他讨论了很久,其他的忘记了。
第七轮:印度人。第一题,JPEG流程图,他DCT问的很细致。第二题huffman coding。第三题让我写一个低通滤波器的的3*3 matrix,然后让我把这个低通变成高通。然后让我写C程序apply一个竖直方向上的edge detector到一个图像上。我返回了另外的一个图像buffer,他问我如果不用另外的buffer,只用临时buffer,那这个临时buffer得有多大?我踌躇了半天,最后算是给了他一个解答吧。。
然后我就去La Jolla看海豹去了。
这一定是最坑爹的面经了。。