08 2012 档案

摘要:一般情况下,如果要我们写一个求绝对值的函数,我们的实现很有可能会是这样: template<classT>Tabs_Normal(TtNum){if(tNum>0.0)returntNum;elsereturn-tNum;} 也就是说我们会用到一个if-else判断来决定是否反转符号位。在3D游戏软件,或一些对性能要求比较高的底层系统中,当大规模的求绝对值时,这个if-else结构会带来性能上的损失,那么,如何来消除if-else结构呢?或许会有人说,我们可以用三元操作符啊:template<classT>Tabs_Normal(TtNum){returntNum 阅读全文
posted @ 2012-08-28 20:24 Mr.Rico 阅读 (48) | 评论 (0) 编辑
摘要:大多数时候,我们研究的是如何阅读源代码。但在一些情况下,比如源代码不公开或得到源代码的代价很高的情况下,我们又不得不需要了解程序的行为,这 时阅读二进制文件就非常重要。假设现在有一个二进制可执行文件,我们木有源代码,但要了解它的实现,这里仅简单列出一些常用的工具。 阅读方式可分为两个方面:静态阅读和动态阅读。 静态阅读 首先,file命令可以查看可执行文件的大体信息。比如是哪种格式的,哪个体系结构的,有没有调试信息等。这些决定了需要用哪个版本的工具进行进一 步查看。比如如果是arm体系的可执行文件就可用arm toolchain里的工具,如arm-eabi-objdump,arm-eab... 阅读全文
posted @ 2012-08-27 23:10 Mr.Rico 阅读 (1455) | 评论 (0) 编辑
摘要:——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2) 在主线称中起动线程1,打印"this is thread1",并将g_Flag设置为13) 在主线称中启动线程2,打印"this is thread2",并将g_Flag设置为24 阅读全文
posted @ 2012-08-27 10:22 Mr.Rico 阅读 (106) | 评论 (0) 编辑
摘要:"一切皆Socket!"话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web 服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型 有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind 阅读全文
posted @ 2012-08-27 10:06 Mr.Rico 阅读 (147) | 评论 (0) 编辑
摘要:"该死系统存在内存泄漏问题",项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统 长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导 致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在 服务器上,只要服务器不宕机就一直运行,一个小小的失误也会对程序造成重大的影响,如造成某些关键服务失败。对于内存泄漏,本人深有体会!实习的时候,公司一个项目中就存在内存泄漏问题,项目的代码两非常大,后台进程 阅读全文
posted @ 2012-08-27 09:47 Mr.Rico 阅读 (269) | 评论 (0) 编辑
摘要:为什么需要知道C/C++的内存布局和在哪可以可以找到想要的数据?知道内存布局对调试程序非常有帮助,可以知道程序执行时,到底做了什么,有助于写出干净的代码。本文的主要内容如下:源文件转换为可执行文件可执行程序组成及内存布局数据存储类别一个实例总结源文件转换为可执行文件源文件经过以下几步生成可执行文件:1、预处理(preprocessor):对#include、#define、#ifdef/#endif、#ifndef/#endif等进行处理 2、编译(compiler):将源码编译为汇编代码 3、汇编(assembler):将汇编代码汇编为目标代码 4、链接(linker):将目标代码链接为可执 阅读全文
posted @ 2012-08-27 09:29 Mr.Rico 阅读 (268) | 评论 (0) 编辑
摘要:2012年03月26日 18:58:14一、外企面试的常规流程通常来说,外企面试分为三轮:第一轮面试:一般由公司人力资源部的人员担任考官,他们会从你的个人简历出发,请你用英语做一个自我介绍。试图在短短几分钟内吸引面试官的注意力,你的简介当然要是浓缩的精品。所以,前奏一般用一句话陈述自己的基本特征即可。然后迅速进入正题,或选择自己最引以为傲的经历叙述,或介绍自己的长处。第二轮面试:由部门主管经理出面,这时候有关业务方面的问题成了面试的重点,所以英语面试也从个人情况转向了专业领域。比如应聘市场部,则应聘者通常会被要求谈一谈以往最成功的一个案例,或者自身的业务强项等。第三轮面试:如果前面都很顺利,最 阅读全文
posted @ 2012-08-23 08:43 Mr.Rico 阅读 (417) | 评论 (0) 编辑
摘要:1) 村子里有100对夫妻,其中每个丈夫都瞒着自己的妻子偷情。。。村 里的每个妻子都能立即发现除自己丈夫之外的其他男人是否偷情,唯独不知道她自己的丈夫到底有没有偷情。村里的规矩不容忍通奸。任何一个妻子,一旦能证明自 己的男人偷情,就必须当天把他杀死。村里的女人全都严格照此规矩办事。一天,女头领出来宣布,村里至少有一个丈夫偷情。请问接下来会发生什么事?答案:(由读者Olivier Coudert提供)这是一个典型的递归问题。一旦所有的妻子都知道至少有一个男人出轨,我们就 可以按递归方式来看待这个流程。先让我们假设只有一个丈夫偷情。则他的妻子见不到任何偷情的男人,因此知道这个人就是自己丈夫,她当天 阅读全文
posted @ 2012-08-23 08:41 Mr.Rico 阅读 (328) | 评论 (0) 编辑
摘要:Golem Technologies创始人Charlie Belmer日前发表了一篇博文《Why I Won't Hire You》,文中指出作为一个面试官,他面试了各种类型的面试者,在众多的岗位招聘过程中,其总结出了应聘者失败应聘的五大原因,同时总结出在面试过程中他重点考查应聘者的五大特性。CSDN对该文进行了简译,文章如下: 首先列出应聘者不被雇佣的五大理由:1.简历过长如果让我花费30分钟来阅读你的简历,以了解你之前的工作经历,那我宁愿放弃。可能现在都采用电子简历的缘故,大家都喜欢大篇幅地描述各自的成就与担任的职位,预想我会全篇读下来。而我更有可能忽略这一切,只在简历上简单写上& 阅读全文
posted @ 2012-08-23 08:21 Mr.Rico 阅读 (197) | 评论 (0) 编辑
摘要:面试过程中,面试官会向应聘者发问,而应聘者的回答将成为面试官考虑是否接受他的重要依据。对应聘者而言,了解这些问题背后的"猫腻"至关重要。本文对面试中经常出现的一些典型问题进行了整理,并给出相应的回答思路和参考答案。读者无需过分关注分析的细节,关键是要从这些分析中"悟"出面试的规律及回答问题的思维方式,达到"活学活用"。 问题一:"请你自我介绍一下" 思路: 1、这是面试的必考题目。 2、介绍内容要与个人简历相一致。 3、表述方式上尽量口语化。 4、要切中要害,不谈无关、无用的内容。 5、条理要清晰,层次要分明。 6 阅读全文
posted @ 2012-08-23 08:19 Mr.Rico 阅读 (143) | 评论 (0) 编辑
摘要:转:作为应聘者 面试结束时应该问面试官一些什么问题呢?几乎所有的面试在结束时候都会留一些时间给应聘者来提问问题,不少应聘者都以没有问题来结束了整个面试过程,其实我感觉这个提问时间还是大有用处的,正确 的问一些问题不但能让你对雇主有更好的了解,更有可能为你的面试加分甚至影响面试结果。那到底应该问一些什么问题呢?以下是我个人的一点意见,希望能给大 家有所帮助。如果你参加的是技术面试,面试你的人也是技术出身的,你可以问一些关于项目所用的技术,项目架构,流程,人员构成等问题,也可以问一下你应聘的职位需要什 么样的技术,这些问题我感觉问的越细越好,因为面试的前面过程一般都是单向的他问你答模式,不是真正的 阅读全文
posted @ 2012-08-23 08:17 Mr.Rico 阅读 (246) | 评论 (0) 编辑
摘要:这儿是对运动估计算法的分析与记录第一部分的" 运动估计综述"是从gu网上下载到的, 讲的挺详细,第二是UMHexagonS算法的分析运动估计综述1.定义这里指基于块的运动估计,基本思想是将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素的位移量都相同,然后对每个宏块到参考帧某一给定特定搜索范围内根据一定的块匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。 2.运动估计算法2.1全搜索每一点都要比较,需计算(2*d+1)*(2*d+1)次(d是搜索范围)。对分辨率360x288,帧率30fps的视频,设d=21,每秒要计算1.09E10 阅读全文
posted @ 2012-08-09 12:47 Mr.Rico 阅读 (3924) | 评论 (0) 编辑
摘要:场编码MBAFF相关宏块与宏块对假设 A、B 是上下相邻的两个 MB:在非宏块对的情况下:A、B宏块序号不连续,相差图像一行宏块个数。即按光栅扫描顺序编号。在帧宏块对的情况下:A、B宏块序号连续,即按锯齿扫描顺序编号。A、B 组成不变。A 称为顶帧宏块,B 称为低帧宏块。在场宏块对的情况下:A、B宏块序号连续,即按锯齿扫描顺序编号。但是这个时候的 A 是由原来 A、B 两个宏块中的奇数行像素组成,称为顶场宏块;而 B 是由原来 A、B 两个宏块中的偶数行像素组成,称为低场宏块。 一幅图像编码可以分为三种:非 MBAFF 帧、场、MBAFF 帧。一幅图像中宏块的存在方式有两种:1、图像中的所有. 阅读全文
posted @ 2012-08-09 12:47 Mr.Rico 阅读 (526) | 评论 (0) 编辑
摘要:JM代码阅读之一SODB RBSP EBSP NALU JM版本16.0,配置文件encoder_baseline.cfg,H.264标准文档(03/2010)版。 通过对码流的第一个NALU(SPS)的形成来分析。 首先给出编码后的最终码流(SPS + PPS):00 00 00 01 67 42 00 28 F3 05 89 C8 00 00 00 01 68 C9 4A 38 80 将SPS(红色部分)转换成二进制:00000000 00000000 00000000 00000001 01100111 01000010 00000000 00101000 111100... 阅读全文
posted @ 2012-08-09 12:47 Mr.Rico 阅读 (6035) | 评论 (0) 编辑
摘要:Linux Top界面 Linux界面详细解读:第一行显示的内容和uptime命令一样,【l】可以显示和隐藏这个区域:top这个没有什么意思,只是个名称而以01:47:56系统当前时间up 1:26系统开机到现在经过了多少时间2 users当前2用户在线load average:0.00,0.00,0.00系统1分钟、5分钟、15分钟的CPU负载信息第二行:Tasks英文意思是工作;任务;差事。38 total很好理解,就是当前有38个任务,也就是38个进程。1 running1个进程正在运行37 sleeping37个进程睡眠0 stopped停止的进程数0 zombie僵死的进程数Cpu. 阅读全文
posted @ 2012-08-01 15:34 Mr.Rico 阅读 (442) | 评论 (0) 编辑
摘要:《Thinking in C++》及《Thinking in Java》的作者Bruce Eckel向来是个“拥C++反Java”派,他曾经不止一次的提到,C++语言特性的添加有多么的深思熟虑,而Java又是如何的把一些奇怪的东西不停 的加进去。Bruce认为,理解语言特性为什么会存在是非常有帮助的。他将其称之为“语言考古学”。 【51CTO外电精选】本文节选自《Thinking in C++》及《Thinking in Java》作者Bruce Eckel的博文,文章写在一次C++规范委员会例常会议之后,Bruce受C++设计师(常被称为C++之父)Bjarne Str... 阅读全文
posted @ 2012-08-01 14:33 Mr.Rico 阅读 (163) | 评论 (0) 编辑
摘要:函数名称所以位置完成功能void x264_frame_filtercommon\mc.c帧滤波void x264_frame_init_lowrescommon\mc.c亮度1/2像素值初始化void x264_mc_initcommon\mc.c运动估计初始化static void motion_compensation_chromacommon\mc.c色度运动估计static uint8_t *get_refcommon\mc.c获取参考亮度像素static void mc_lumacommon\mc.c亮度运动估计 common\mc.c void x264_param_def... 阅读全文
posted @ 2012-08-01 01:11 Mr.Rico 阅读 (2497) | 评论 (0) 编辑