2014年9月23日

x264 build for iOS

摘要: 环境是OS X 10.9, Xcode版本是6.0armv7的配置命令行为CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ../configure --h... 阅读全文

posted @ 2014-09-23 06:26 mathlover 阅读(758) 评论(0) 推荐(0) 编辑

2014年1月19日

寻找一个长度为3n的数组中出现次数超过n的元素

摘要: 思路1: 排序,然后扫描一遍,这样的复杂度主要在于排序,时间复杂度为O(n log n)思路2: 可以借用快速排序的思想,先用O(n)的时间找到n/3位置的元素,再用O(n)的时间找到2n/3位置的元素,出现次数超过n次的元素是这两个中的一个,扫描一边统计一下次数就完成了。思路3: 每次删掉3个不同的元素,保留两个不同的元素以及他们出现的频率,最后两个元素中,频率高的元素既是所求。下面是ocaml的代码let find lst = let rec find_int c1 v1 c2 v2 l = match l with [] -> if c1 > c2 then v1 els.. 阅读全文

posted @ 2014-01-19 09:45 mathlover 阅读(219) 评论(0) 推荐(0) 编辑

2013年9月23日

sign3 neon

摘要: This is neon intrincs for sign3, which can be used in sample adaptive offset in HEVC.void sign3_neon(const uint8_t *src1, const int src_stride1, const uint8_t *src2, const int src_stride2, int8_t* dst, const int dst_stride, const int width, const int height) { int i, j; for(i = 0; i c... 阅读全文

posted @ 2013-09-23 21:20 mathlover 阅读(368) 评论(0) 推荐(0) 编辑

2013年9月22日

add_clip neon

摘要: void add_clip_neon(uint8_t *dst, const int dst_stride, const uint8_t* src0, const int src0_stride, const int8_t* src1, const int src1_stride, int width, int height){ int i, j; for(i = 0; i 255) v = 255; _dst[0] = v; _src0 ++; ... 阅读全文

posted @ 2013-09-22 20:20 mathlover 阅读(393) 评论(0) 推荐(1) 编辑

2013年8月29日

编译器为简单分支语句生成的代码质量很高

摘要: 编译器对于简单分支的处理,感觉非常高效。比如这段C代码void sign3_c (uint8_t* s0, uint8_t *s1, int8_t *d, int width, int height, int stride) { int i,j; for(j = 0; j c1) v = 1; d[offset + i] = v; } }}其内层循环体编译出来的代码为.L6: movzbl 0(%ebp,%eax), %ecx movzbl (%edi,%eax), %edx ... 阅读全文

posted @ 2013-08-29 21:59 mathlover 阅读(305) 评论(0) 推荐(0) 编辑

2013年8月20日

clip3 操作的内联函数

摘要: 其基本C语言的实现为: 1 static inline int clip3(int min, int max, int v) { 2 int ret = v; 3 if (ret max) 6 ret = max; 7 return ret; 8 }这个代码已经无法简化了,而且编译器一般来说也能生成比较优化的代码。针对x86,可以使用内联汇编来指定生成的代码,比如使用gcc的内联: 1 static inline int clip3(int min, int max, int value) { 2 int ret = value; 3 _... 阅读全文

posted @ 2013-08-20 22:17 mathlover 阅读(1326) 评论(0) 推荐(0) 编辑

2013年1月9日

穷举法求解带限制的整数背包问题

摘要: 假定有n个物体,其重量、价值以及数量分别为wi、vi、ci,现在给定一个质量上限tw,求最大价值。穷举法的思想很简单,接空间是一个n维的立方体,每个维度上分别有ci+1个点,遍历这些点就可以了。代码实现如下:int bound_knap_bruteforce(int n, int* w, int *v, int* c, int tw){ int path[n] ; int maxvalue = 0; int cw = 0; int cv = 0; for(int i=0;i<n;i++) path[i] = 0; while(1) { ... 阅读全文

posted @ 2013-01-09 14:48 mathlover 阅读(439) 评论(0) 推荐(0) 编辑

clang 的错误提示不错

摘要: 1 knap.cc:131:13: error: expected expression2 if ( i > = w[j] && mi < v[j] + m[i-w[j]] )3 ^4 1 error generated.同样情况下gcc的提示就没有这么清晰了 阅读全文

posted @ 2013-01-09 14:05 mathlover 阅读(308) 评论(0) 推荐(0) 编辑

2013年1月6日

升级xeCJK的悲剧

摘要: 手贱升级了一下texlive的包,最近要准备一个ppt,准备用beamer来写。测试的时候发现,中文挂掉了,症状是中文都不能显示,升级前用beamer跟xeCJK配合一直很好使。以为是texlive的问题,删掉重新装一下,发现问题依旧。原来简单的测试文件 1 \documentclass{beamer} 2 \usepackage{xeCJK} 3 \setCJKmainfont{SimSun} 4 \usetheme{Madrid} 5 \title{周报告} 6 7 \date{\today} 8 \begin{document} 9 \frame{\titlepage}10 \begi. 阅读全文

posted @ 2013-01-06 13:51 mathlover 阅读(1370) 评论(0) 推荐(0) 编辑

2012年11月26日

compute the n'th fibonacci number in Ocaml

摘要: 计算斐波那契数,最简单的计算当然是按照定义来求解了,f0=0, f1=1, fn = fn-1 + fn-2。直接递归实现的话效率比较地下,可以考虑使用迭代的方法来求解。代码如下1 let fib n =2 let rec fib_int a b count =3 if count = 1 then a else fib_int (a+b) a (count-1)4 in5 if n = 0 then 0 else fib_int 1 0 n ;;里面使用了一个fib_int的内部过程来模拟循环。 阅读全文

posted @ 2012-11-26 21:31 mathlover 阅读(284) 评论(0) 推荐(0) 编辑

导航