自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leesphone的专栏

只爱我的小鱼

  • 博客(59)
  • 资源 (10)
  • 收藏
  • 关注

转载 别再说你不懂Linux内存管理了,10张图给你安排的明明白白!

好文章转载一下,共享之。今天来带大家研究一下Linux内存管理。本文讨论技术内容前提,操作系统环境都是x86架构的 32 位Linux系统。虚拟地址即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了。为了充分利用和管理系统内存资源,Linux采用虚拟内存管理技术,利用虚拟内存技术让每个进程都有4GB互不干涉的虚拟地址空间。进程初始化分配和操作的都是基于这个「虚拟地址」,只有当进程需要实际访问内存资源的时候才会建立虚拟地址和物理...

2020-05-28 16:47:21 201

原创 Low Latency HLS的实现优化

HTTP Live Streaming(HLS)是Apple公司主导提出并实现的基于HTTP的自适应码率流媒体通信协议(RFC8216)。说实在的,作为监控领域的玩家,我一直很抗拒Apple HLS协议,但架不住苹果的行业影响力啊,还记得很多年你跟AT&T做项目的时候,对方指定要用Apple HLS协议,那个latency惨不忍睹,有一次去亚特兰大客户家里看问题,我们一起站在门口,把camera装好了,客户在那里数着latency的秒数,真的恨不得找个地缝钻下去,我们其他的方案可以做到2s内,但

2021-09-30 14:18:54 415

原创 谈一谈如何处理文件系统损坏的问题

在嵌入式的设备上,一个无法避免的问题是,如果设备突然掉电,可能会引起一系列的连锁反应(这也是PC不建议直接扣电池的原因),其中有一项就是,突然掉电可能会引起文件系统损坏,这可是要命的!一般来说,如果只是文件损坏,那也没啥,最多坏一个或者几个文件,但要是文件系统损坏,那可能意味着所有数据的丢失,当然,如果你舍得花钱,还是可以找回来的。这里谈的case就是,比如你家装的网络摄像头突然断电...

2020-12-24 11:11:25 1340

原创 H265跟H264编码效率的一个比较

H265已经发布很长一段时间了,市面上也出现了很多H265的产品,主流的手机都支持H265的硬解码,但从内容来看,支持H265的并不多,H265的推广明显落后于同期的H264,个人认为这其中最主要的原因是专利的因素而非技术的原因。H265的专利是一言难尽,简而言之就是有几家专利钉子户,搞不定,目前也没有判例出来,所以很多内容商都是在回避H265。今天这篇文章不谈专利的问题,主要是从技术面拿两者做一个比较。H265作为H264的下一代,压码效率有所提升那是必然的(不然还出个毛线的下一代),但好多少?这个问

2020-12-23 11:55:19 7625

原创 WiFi Rekey造成的Battery Camera Offline Issue

背景知识:1. 对于Battery base的产品,为了尽可能的延长电池的使用时间,减少充电次数,在处理完事情后都会进入sleep mode,然后等待被唤醒(本地的PIR trigger唤醒,或者来自WOL Wake On Lan)2. 对于WiFi的密钥,可以分为两类:成对密钥(Pairwise Transient Key):用于客户端和AP之间的单播, 通过四次握手完成;组密钥(Group Key):用于所有客户端和AP之间组播或者多播, 通过两次握手完成;当工作站离开网络,不论是使用完

2020-08-28 09:52:42 471

转载 如何计算MCS Data Rates

First we need to understand how the MCS data rates are calculated prior 802.11ax. I am only going to focus on 802.11n (HT) and 802.11ac (VHT) here.Here is the formula we can use to calculate which data rate is used for both 802.11n and 802.11ac:...

2020-08-28 09:51:23 849

原创 WiFi基本参数

分享几个WiFi的几个核心参数Beacon Interval间隔调高有助于无线网络效能 client 端省电,间隔调低可以加快wireless client 链接上去速度Beacon传送频繁frame会比较占用无线带宽资源Beacon 单位通常以微秒 millsecond 为单位( 1/1000 秒) 一般默认值为100DTIM(delivery traffic information message) period (range 1..255):number of be..

2020-08-28 09:41:58 2724

原创 如何分辨MPEG2 AAC 跟MPEG4 AAC?

因MPEG2 AAC的相关专利已经过期,所以MPEG2 AAC可以免费使用了!虽然也有其他的audio codec可以选择,但是考虑到系统native的capability,MP4 + H264/H265 + AAC 仍然是clip的最佳选择。这对于很多设备厂商来说应该是好消息,特别是对于出货量不大的客人来说,使用AAC需要每台缴大概1美元的专利费,这还是仅限于支持一个channel的产品,2个或2个以上的channel的费用更高。这里需要提醒大家注意的是,过期的专利仅限于MPEG2 AAC,并不包括

2020-07-31 14:27:51 3576

原创 a[i][j] 和 a[j][i] 的区别

先来一段代码:#define MAX_LEN? 10000int func(){ int i = 0, j = 0; int a[MAX_LEN?][MAX_LEN?]; for (i=0; i<MAX_LEN; i++) { for (j=0; i<MAX_LEN; j++) { a[il[j] = 1;// a[j][i] = 1? } } ... return 0;}一般情况下我们都会习惯性的用a[i][j], 如果把a[i][j]换成a[j

2020-07-06 09:40:25 1858

转载 HTTPS工作原理

当你打开浏览器,访问某个网站,如果网址旁有个小锁,代表访问的网址是安全的,反之不安全。当我们没有看到那个小锁的小图标的时候,需要提高警惕,不要随意输入个人重要的资料。所有的银行和支付相关的网站都是 100% 使用 HTTPS 的。为什么需要 HTTPS?我们为什么需要 HTTPS?主要有如下三个原因:①保护隐私(Privacy):所有信息都是加密传播,第三方无法窃听数据。如果使用 HTTP 明文传输数据的话,很可能被第三方劫持数据,那么所输入的密码或者其他个人资料都被暴露在他人面前.

2020-06-01 16:10:41 172

原创 谈一谈Doorbell设计的坑 - 从供电模式谈起

因为国情的不同,很多产品设计是完全不同的,就Doorbell产品而言,中美之间的差异就非常明显,参考下表房屋类型 别墅 公寓传统门铃类型 Analog或digital chime,安装在家里固定的地方,门上或门旁边有开关 基本上都是防盗门内置门铃传统门铃供电 8V~24V供电 电池供电因为这些差异也决定了doorbell这个产品在中美两国的不同,其中最大的不同就是供电的差异,而这个差异更是决定了整个产品的形态。国内在售的doorbell产品主要以电池供电为主,camera没有内

2020-05-29 11:23:36 402

原创 谈一谈Doorbell设计的坑 - Gauge IC 要不要跟电芯一起?

不考虑成本的问题,建议电芯自带Gauge IC的方案,这样厂商要为Gauge IC读到的值准确性负责,产品开发的时候不用因为各种读到不准的参数负责(不要想当然认为Gauge IC读出来的都是准的),比如电芯老化就可能对于读值产生影响。如果Gauge IC跟电芯一起,那这些都可以push vendor来解决,应用的层面不用为这个担心。考虑成本的问题,如果电芯比较小,可能就会选择外置的Gauge IC, 这种时候,会有几个risk:Gauge IC 跟所选择的电芯之间是有一些参数需要tuning的,因为

2020-05-28 16:35:35 702

原创 谈一谈H26x的Bitrate的优化

我记得入行的时候,主流的视频都是VGA(640x480)的,HD觉得都很高,到今天从芯片的能力的角度,8K甚至更好的视频分辨率都已经不是问题,但在很多的领域(比如视频监控)1080P仍然是主流,不是大家不愿意到更高的分辨率,而是因为更高分辨率带来的高带宽跟存储成本是大家所承受不起的(相比较所获得的收益而言)以视频监控领域为例,目前大家的主流分辨率还是1080P,主流的带宽基本控制在1 ~ 2Mbps, 各家提供的套餐基本也是以存留时间来划分,所以如何以更低的bitrate来得到同等质量(或者说是不损害用户

2020-05-08 22:51:24 400

原创 谈一谈Doorbell设计的坑 - 要不要MCU?

Doorbell产品跟普通的IP Camera还是有蛮多差别的,从应用场景到产品设计都有诸多的不同,从用户的角度,Doorbell产品跟终端用户的接触更紧密(毕竟门铃天天要按,但装在后院的摄像头不一定天天盯着看),因为这些差异性也导致Doorbell产品开发有诸多特殊的地方,虽然我们已经有了多年的普通IP Camera的经验,但在Doorbell上依然趟了不少的坑,所以在这里跟同行做一个分享,共同...

2020-05-08 22:00:44 858

原创 WPA3 vs WPA2

1. 背景2017年10月份,有安全研究者公布了WPA2协议的一个弱点,会遭受到KRACK( Key Reinstallation AttaCK)攻击;攻击者可以获取STA和AP之间传输的数据,许多厂家已经发布相关补丁修复此漏洞;但是WPA2的形象和名声还是受到损害,因而WIFI联盟迅速推出了WPA32018年的6月,WiFi联盟公布了14年来最大的Wi-Fi安全更新,宣布WPA3协议最终...

2020-04-17 17:24:53 11709

原创 视频参数 SAR,PAR,DAR

1. 科普一下概念PAR - pixel aspect ratio,单个像素的宽高比,大多数情况像素宽高比为1:1,也就是一个正方形像素,如果不是1:1, 则该像素可以理解为长方形像素。常用的PAR比率有(1:1,10:11, 40:33, 16:11, 12:11 ).DAR - display aspect ratio,显示宽高比。即最终播放出来的画面的宽与高之比。比如常见的16:9和...

2020-04-17 17:04:05 853

原创 如何从RTSP的流中解析出视频的分辨率

直接上图更直观1. 从RTSP的流中找到SDP,从SDP中找到SPS2. Wireshark会帮你完成SPS的解析,你展开就可以看到分辨率相关的参数了3. 计算分辨率: width = (pic_width_in_mbs_minus1 + 1) * 16 = (99 + 1) * 16 = 1600 height = (pic_height_in_map_...

2020-04-17 16:54:13 2517

原创 UBIFS issue - corrupt empty space

Informations from InternetUBIFS - UBI File-Systemhttp://www.linux-mtd.infradead.org/doc/ubifs.htmlmtd:gpmi patch for Deal with bitflips in erased regions--> Already tested this patch, seems...

2020-04-14 15:21:21 414

翻译 软链接 vs 硬链接

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) :即文件数据块 (data block),数据块是记录文件真实内容的地方;元数据 (metadata):而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引...

2020-04-14 15:18:27 165

原创 关于工作的一点感想 - 从面试的2位大龄程序员想到的

前年跟去年我分别面试过两位候选人,让我印象深刻,两位候选人都有一些公共点,比如毕业学校都很好(211),工作经验丰富,工作时间很长(废话,大龄的肯定工作时间长了),35左右,之前的收入都很可观,但最后因为种种原因我没法给这个offer,今天想就这两位候选人的情况来谈一谈我的看法。首选强调一下,我个人对年龄无任何偏见,我自己本身也是奔四的人了,也给奔四的人发过不少的offer,这里也只代表我的一...

2020-04-11 15:35:15 201

原创 【社会招聘】个人的一些想法跟建议,跟大家交流一下

项目经验是王道与校园招聘不同,社会招聘的考察重点会侧重在你的工作经验上,怎么强调简历上的项目经验都不为过,所以务必重视我一般会通过跟候选人聊项目经验来考察:在项目中的角色决定这个人在所在公司是不是key person即便不是key person,有没有去了解整个项目的情况?有没有企图心?项目中有没有遇到什么难题?怎么解决的?一般守着自己的那一亩三分地的人通常不会太积极主动,就算招进来后也...

2020-04-11 14:51:06 656

原创 【校园招聘】给毕业生找工作的一些建议

说来惭愧,我自己并没有太多面试的经验,只是有一些招聘的经验,主要是从招聘的角度给在校毕业生的一些建议,这些可能只是一家之言,算是抛砖引玉,也希望同行多提意见,在此先谢过了。诚信第一 这条不解释,如果发现有提供假的信息,一律杀无赦学校很重要,但学生的准备更重要 毋庸讳言,好学校的招聘无论从数量还是质量比普通学校的要好得多,如果你想找好工作,而你的学校一般,建议你可以去同城...

2020-04-10 20:54:47 349

原创 C函数之pthread_create()使用

用pthread_create方法创建的线程,默认是非detached的,也就是说当线程退出时它所占用的系统资源并没有完全真正的释放,也没有真正终止,就会出现内存泄漏有个案子,按下button的时候我们就启动线程来播放一段声音,如果不停的按门铃发现一段时间之后就无法播放声音了,查下来发现创建线程失败error是cannot allocate memory。以下提出有3种方法可以避免这...

2020-04-10 20:02:06 1946

原创 C函数之localtime_r()

问题描述:localtime_r()函数在一个进程生命周期中,当系统time zone改变时,localtime_r()返回的时间与系统实际时间有误差造成这个现象的原因:localtime_r不会使用系统time zone设定全局变量 tzname, timezone 和daylight的值,这三个变量被用来校正格林威治(UTC) 时间为本地时间。当系统time zone在进程周...

2020-04-10 19:58:52 8013

原创 C函数之create and close

creat()函数在调用成功后返回一个文件描述符,很多人都忽略了release这个文件描述符,造成memory leak.常见的代码比如:If (create("/tmp/flag.file", 0666) < 0){printf("something wrong!\n");}或者干脆:create("/tmp/flag.file", 0666);cre...

2020-04-10 19:57:04 175

原创 C语言开发之中断处理遇上system

近期在debug一下signal丢失的问题发现在中断处理函数中调用system()启动进程会造成启动的进程收不到某些signal的现象,原因是:1 根据LINUX的信号 处理机制,我们知道为妨止在处理信号的过程中又来重复信号造成信号丢失,会采取屏蔽正在处理的信号标志位,以让重复信号排队;在处理完上一个信号后,再打 开标志位,接着处理重复信号。所以在中断处理函数里面,当前正在处理的信号(假设为X...

2020-04-10 19:52:04 155

原创 Makefile 和 shell中的环境变量使用

Makefile中可以通过$(var) 或者${var}的方式使用变量,详细的讲述大家可以参考:http://blog.csdn.net/lovetangtang/archive/2005/12/31/567297.aspx 之前我一直以为这两是一样的,没啥区别,直到我遇到了问题。因项目需求,需要移植lighttpd到ARM平台,过程中需要设置toolchain的位置, 如下:AP

2010-05-16 14:33:00 5867

原创 交叉编译

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行

2010-05-10 20:59:00 1963

转载 RFC3984中文版(部分)

                     H.264视频的RTP荷载格式Status of This Memo   This document specifies an Internet standards track protocol for the   Internet community, and requests discussion and suggestions for  

2010-05-10 20:25:00 8230 1

转载 AMR音频编码器概述及文件格式分析

AMR音频编码器概述及文件格式分析 <!--来源:佰锐科技 作者:佰锐科技 发布时间:2008-02-23   -->  全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。一、分

2010-05-10 20:13:00 1570 1

原创 sprintf and snprintf的陷阱

sprintf和snprintf这两个函数的原型估计大家都很熟练了,这里要说的是这两个函数在使用时可能会出现的一个问题。 首先来看一段代码:int main(int argc, char *argv[]){      char buf[100];       memset(buf, 0, sizeof(buf));      snprintf(buf, sizeof(buf), "he

2010-05-09 21:38:00 1360

原创 RGB YUV

前几天碰到一个问题,需要做一张全黑的raw data给encode压码测试,因为raw data的格式是YUV的,于是相当然的就把所有值全置为0,因为Y值(亮度)置为0了,所以以为圧码出来的frame就应该是黑色的,可压完才发现是粉色的,这下晕了,因为全黑对于RGB就意味着全0, 于是赶紧找找RGB跟YUV格式转换的算法。 这 是YUV转RGB的R= 1.0Y + 0 +1.402(V

2010-05-09 21:19:00 4602

原创 RTCP中的NTP的时间计算方法

记得两年前刚开始做RTP/RTCP的时候碰到一个问题,是关于如何计算RTCP中的NTP时间戳,最近又有人问这个问题,于是就想把它贴出来,让大家参考,提提建议,交流促进进步。 记得当时有个客户说用openRTSP(open source ,you can get it from www.live555.com)无法录制我们送出去的RTP流,于是我也去下了一个,试了发现果然不行,于是就把ope

2010-05-09 16:27:00 16498 6

原创 RTP/RTCP的时间同步机制

RTP支持传送不同codec的steaming,不同codec的clock rate的也不一样,不同的media之间需要依靠RTCP进行同步。这里简单介绍一下他们的机制。在每个RTCP SR包中对应有一个RTP时间和一个NTP时间,它表达的意思很明确,那就是这个RTP时间对应的绝对时间, 不同media的RTP时间尽管不同,但可以通过NTP时间映射到同一个时间轴上,从而实现同步。如下图所示

2010-05-09 15:14:00 7447 1

原创 YUV420SP to YUV420P

最近做TI DM365的solution, 发现出来的画面有抖动,于是就想抓RAW data出来看看是sensor有问题还是encode出了问题,sensor出来的数据是RGB的,通过Previewer后就变成了YUV420SP, 抓了RAW data出来之后用YUVtools一看,整个画面都是灰色的,感觉只有Y值work了,UV都没了,于是又去网上download其他的YUV tools, 结果

2010-05-09 14:57:00 11058 1

原创 关于SIP中的Authorization

  SIP Client起来后第一件事应该是到服务器去注册,这样当有电话呼叫时服务器才能正确的定位 ,注册设计到一个认证的过程。  RFC2617定义了两种加密的方式,一种是BASE64的,另一种是MD5加密,大多SIP协议栈都采用的后者,可能是出于安全的考虑,因为MD5是不可逆的。  对于MD5的方式,RFC2617有提供一个example的实现,有源代码,但奇怪的是我将它的源代码复制下

2008-04-12 13:16:00 6734 4

转载 以太网(Ethernet) Internet 万维网 区别

以太网(Ethernet) Internet 万维网 区别      Ethernet是以太网,是目前部署最广泛的局域网;而Internet是指国际互联网,是由全世界的局域网、城域网、广域网通过各种通信工具联在一起形成的。Ethernet是Internet的一个组成部分。      按地理范围可以将网络分成 局域网、城域网和广域网。以太网(Ethernet)是一种计算机局域网组网技术。IE

2008-03-30 20:39:00 3159

转载 微软亚洲技术中心面试题

  1.进程和线程的差别。   线程是指进程内的一个执行单元,也是进程内的可调度实体.   与进程的区别:   (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位   (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行   (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.     (4)系统开销:

2008-03-30 16:02:00 866

转载 C指针声明解读之右左法则

  C指针声明解读之左右法则        C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:       

2008-03-30 15:59:00 1522

转载 嵌入式程序员应知道的0x10个基本问题

嵌入式程序员应知道的0x10个基本问题1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有

2008-03-27 20:03:00 789

H.264 over RTP(rfc3984)

RTP Payload Format for H.264 Video

2008-03-07

H264Visa.zip

一个h.264 baseline 分析软件

2008-03-07

JM 12.2编码流程图

JM 12.2编码流程图

2008-03-07

《H.264 and MPEG-4 视频压缩》英文版

《H.264 and MPEG-4 视频压缩》英文版

2008-03-06

H.264编解码手册

H.264编解码手册

2008-03-06

ntp-4.1.71.tar

Network Time Protocol源代码

2008-03-03

H.264的RTP打包格式中文版

RFC3984:RTP Payload Format for H.264 Video<br>打包格式中文版

2008-03-03

新一代视频压缩编码标准H.264

新一代视频压缩编码标准H.264(毕厚杰),PDF文档

2008-03-03

srtp-1.4.2_source

Secure Real-Time Transport Protocol源代码

2008-03-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除