- 博客(106)
- 资源 (4)
- 收藏
- 关注
转载 opencore的codec specific config数据的结构
<br />opencore的parser node需向decode node提供codec specific config数据,这些数据的结构参见下列文件:<br /> 对于视频codec,参见:codecs_v2/utilities/pv_config_parser/src/pv_video_config_parser.cpp,配置数据在函数pv_video_config_parser()中解析;<br /> 对于音频codec,参见:codecs_v2/utilities/pv_confi
2010-07-05 23:52:00
793
转载 【转】Perl中的正则表达式
9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用正则表达式来完成字符串处理的任务,当然在 CGI 程序设计中就更能得心应手了。下面我们列出一些正则表达式书写时的一些基本语法规则。-----
2010-02-03 00:35:00
738
转载 C语言宏定义技巧
语言宏定义技巧(常用宏定义) 写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型
2010-01-31 17:52:00
989
转载 [转]strcpy()、memcpy()、memmove()、memset()的实现
一直想知道内部实现, 现在想看了, 就找了一下.不错.strcpy()、memcpy()、memmove()、memset()的实现 strcpy(), 字符串拷贝.char *strcpy(char *strDest, const char *strSrc){ assert((strDest!=NULL) && (strSrc !=NULL)); char
2010-01-29 21:30:00
634
转载 [转]我对C++内存分配方式的一点看法
作者:骆驼在C++中,内存分成5个区 : 堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。堆,就是那些由new分配的内存块,他们的释放编译器不
2010-01-29 21:26:00
676
转载 vc程序中嵌入汇编的语句的说明
为了加速游戏,一提起汇编语言,大家也许会感到很神秘。其实如果你学起来就会发现,它并非想象中那样难。特别是内嵌汇编,由于它和C++紧密结合,使你不必考虑很多烦琐的细节(例如输入输出函数的写法),学习起来比较容易。使用内嵌汇编,特别是使用MMX指令,可以大大提高各种游戏中常见特效的速度,对于编出一个漂亮的游戏非常重要。学好汇编语言还有一个特别有趣的用处:可以观察和看懂VC++生成的汇编代码,从而更好地
2009-12-05 17:46:00
916
转载 视频压缩编码问与答
1、什么是H.261编码协议 答:H.261是最早出现的视频编码建议,它采用的算法结合了可减少时间冗余的帧间预测和可减少空间冗余的DCT变换的混合编码方法,其输出码率是p×64kbit/s。p取值较小时,只能传清晰度不太高的图像,适合于面对面的电视电话;p取值较大时(如 p>6),可以传输清晰度较好的会议电视图像。该标准主要针对ISDN电话线的视频会议,可视电话等,ISDN的基
2009-11-29 21:07:00
872
转载 uboot在引导linux之前要做的事
启动armlinux,bootloader必须提供下面几步: 1. 设置并初始化ram 2. 初始化一个串口 3. 检测处理器类型 4. 设置内核标记列表 5. 调用内核映像 1. 设置并初始化ram bootloader要找到并初始化系统中所有的ram,内核将这些ram用于可变数据的存储。 2. 初始化一个串口 bootloader应该
2009-11-29 17:05:00
2105
原创 C语言宏的高级用法
转至 http://hi.baidu.com/hhs_ky/blog/item/bdc4d101e8183b01738da5b6.html关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) / d
2009-11-27 16:50:00
3287
转载 H.264 NAL层解析
1.引言H.264的主要目标:1.高的视频压缩比2.良好的网络亲和性解决方案:VCL video coding layer 视频编码层NAL network abstraction layer 网络提取层 VCL:核心算法引擎,块,宏块及片的语法级别的定义NAL:片级以上的语法级别(如序列参数集和图像参数集),同时支持以下功能:独立片解码
2009-11-27 16:10:00
2498
原创 ADSP561存储空间
分析:片上:两个600MHz的内核共享L2:128KB每个内核有分别有100KB的L1空间,具体为16KB-32KB的L1指令存储器或者32KB-64KB的L1数据存储器,4KB的用来存放中间结果的SRAM,其中L1指令或者数据存储器的一半可以配置成cache,所以上面出现了两种L1的大小。 片外:同步存储器控制器PC133兼容的SDRAM控制器可通过编程与多达4个Bank
2009-11-27 10:48:00
727
原创 NOR FLASH挂载jfss2文件系统
前段时间忙着找工作。项目的事情又拖了好一阵子,今天正好趁着ZTE面试的间隙把挂载JFFS2可写文件系统的事情解决一下,其实挺快的,半天时间理清了思路,实践成功了呵呵具体步骤如下:1.内核配置:根据官网上面的两篇帖子http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:mtdhttp://docs.blackfin.
2009-11-02 14:24:00
6594
原创 malloc函数字节对齐很经典的问题
int *mallocedMemory = (int *)malloc(1024+15);alignedMemory = (int *)(((int)mallocedMemory + 15) & ~15);((void **)alignedMemory)[-1] = mallocedMemory;return alignedMemory;+15 而不是 +16的原因例: 地址 0
2009-10-27 11:03:00
10347
转载 二叉树的非递归遍历 C语言版
http://blog.youkuaiyun.com/lewutian/archive/2009/09/06/4525382.aspx
2009-10-25 22:35:00
884
原创 中断的概念
8.6 程序中断控制方式 8.6.1 中断的概念概念:CPU 暂时停下现行程序的执行,转向为临时发生的事件进行处理,处理完后,再返回执行原程序。中断是一种在发生了一个外部的事件时调用相应的处理程序(或称服务程序)的过程。中断服务程序与中断时CPU正在运行的程序是相互独立的,相互不传递数据。 一. 中断的作用:1.实现主机和外设并行工作2.故障的处理3.实时处理基本概念 二.中断
2009-10-25 19:09:00
13419
1
转载 CPU缓存的工作原理
CPU缓存的工作原理 当CPU要读取一个数据时,首先会从缓存(Cache)中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。 通过优化的的读取机制,可以使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要
2009-10-25 15:37:00
2122
转载 计算机删除文件的原理
朋友们从开始学习电脑时起就知道了如何删除文件,而且一些细心的朋友刚学电脑时就留意“Del”和“Shift+Del”删除文件的不同,前者只是将文件删除到回收站中,而后者则可实现所谓的“彻底删除”。这个“彻底删除”到底彻底不彻底呢?看看下面笔者的分析后,你就会知道答案了:一. 常见的“彻底删除”并不彻底要想分析这个问题,我们得从硬盘存储文件的原理说起。大家都知道,一块新硬盘在使用前必须要对其进行分区、
2009-10-24 12:13:00
9271
3
转载 循环嵌套优化!!
第一部分说明:1 将大的循环放到内测,小的循环放到外侧,确实能提高效率/** * 全面测试嵌套多层For循环的性能。 * * @author 老紫竹的家(laozizhu.com) * */public class TestForLoop { public static void main(String[] args) { int small = 1; int midd
2009-10-24 11:33:00
1796
转载 轻松控制 uClinux 嵌入式开发过程
uClinux是目前比较普及的嵌入式Linux版本之一,它的功能很多,并且随着低成本、可运行uClinux的32位CPU的激增,以及uClinux首次成为Linux 2.6内核的一部分,uClinux将更加流行(如图1)。下面讨论一下开发者使用uClinux时如何控制开发过程,以及将会遇到的与普通Linux的不同之处。 图1 uClinux运行在Palm上 应用无内存管
2009-10-08 21:06:00
643
转载 uClinux和Linux的异同分析
标准Linux是针对有MMU的处理器设计的。在这种处理器上,虚拟地址被送到MMU,把虚拟地址映射为物理地址。通过赋予每个任务不同的虚拟-物理地址转换映射,支持不同任务之间的保护。uClinux是针对控制领域的嵌入式linux操作系统,它从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。适合不具备内存治理单元(MMU)的微处理器/微控制器。没有MMU支持是uClinux与
2009-10-08 20:52:00
652
转载 uclinux 多任务(各家之言)
uClinux是专为无存储器管理单元(MMU)的微控制器打造的嵌入式Linux操作系统。uClinux首先被移植到摩托罗拉的MC68328 DragonBall集成微处理器上。从那以后, uClinux越来越受到业界的青睐, 被移植到更多的无MMU芯片上。目前,uClinux已成功移植到ARM7TDMI微处理器上。 由于uClinux主要是针对无MMU 微处理器开发的,大多数内核的二进制
2009-10-08 20:30:00
1163
转载 虚继承之单继承的内存布局
C++2.0以后全面支持虚函数与虚继承,这两个特性的引入为C++增强了不少功能,也引入了不少烦恼。虚函数与虚继承有哪些特性,今天就不记录了,如果能搞了解一下编译器是如何实现虚函数和虚继承,它们在类的内存空间中又是如何布局的,却可以对C++的了解深入不少。这段时间花了一些时间了解这些玩意,搞得偶都,不过总算有些收获,嘿嘿。先看一段代码class A{ virtual aa(){};};
2009-10-02 16:04:00
867
原创 linux信号处理(软中断)详细
1. 信号概念 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件)。信号是硬件中断的软件模拟(软中断)。每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD、SIGINT等,它们在系统头文件中定义,也可以通过在shell下键入kill –l查看信号列表,或者键入man 7 signal查看更详细的说明。信号的生成来自内核,让内核生成信号的请求来自3个地方:l
2009-09-30 10:07:00
5275
转载 Linux内核态和用户态的区别
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,
2009-09-30 09:45:00
916
原创 信号量的疑惑
通常我们使用信号量用的都是操作系统的,使用的时候要用操作系统提供的函数创建信号量; 当你要进入你的互斥代码之前,你需要尝试阻塞信号量,如果这个时候信号量已经被阻塞,你的代码就必须就此打住,等待别人释放了你才能使用。使用完了就调用函数释放信号量。当你释放之后,别人被阻塞的任务得以调度之后就能够继续执行了,这就是“唤醒”。当然也有可能用户已经杀掉该任务了 上述的应用情况就有两种
2009-09-30 09:37:00
750
转载 linux与uclinux 内存管理(1)
应该说uClinux同标准Linux的最大区别就在于内存管理,同时也由于uClinux的内存管理引发了一些标准Linux所不会出现的问题。本文将把uClinux内存管理同标准Linux的那内存管理部分进行比较分析。标准Linux使用的虚拟存储器技术标准Linux使用虚拟存储器技术,这种技术用于提供比计算机系统中实际使用的物理内存大得多的内存空间。使用者将感觉到好像程序可以使用非常大的内存空间,从而
2009-09-28 19:36:00
678
转载 公有继承,私有继承,和保护继承
1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。 2. 私有继承(private) 私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。 3. 保护继承(protected) 保护继承的特
2009-09-27 10:00:00
553
转载 C/C++ 易错
char c[] = "hello world" 分配局部数组char* c = "hello world" 分配全局数组 全局区域的值是不能进行修改的 1 常量指针!如 int b, c; int * const a = &b; 表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量,如 a = &c; 错误!可以修改指向内存的值,如:*a =
2009-09-27 09:18:00
985
转载 算法复杂度——时间复杂度和空间复杂度
1、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 (2)时间复杂度 在
2009-09-23 19:36:00
12678
1
转载 算法复杂度
首先接触" 算法复杂度"这个术语是在数据结构这门课程中。数据结构主要是讲如何在计算机中存储.组织数据,对于相同的存储.组织数据方式,往往又有不同的实现方式(即算法)。对于精心实现的算法,往往可以带来更高的运行和存储上的效率,而评价一个实现方式(算法)是否高效就是通过" 算法复杂度"来评定的。目前算法的评定主要是从时间和空间上来评定,毕竟我们对计算机关心的一个是运行时间,另一个就是消耗的存储空间。从
2009-09-23 19:35:00
1000
原创 C语言左移和右移计算的注意点
左移运算大多数情况下可以看成是乘法运算(除去高位溢出的情况),但是显然比乘法运算快很多。注意点:如果一个字节长的数64 (01000000)则左移两位后值变为0 右移运算:移到右端的低位被舍弃,对无符号数,高位补0. 对于有符号数,正数还是补零,但是负数的话,符号位原来是1,则左移移入0还是1,取决于计算机系统 移入0的称
2009-09-21 14:44:00
2309
转载 typedef和#define的区别
#define是在预编译时处理的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是做简单的字符替换,例如:typedef int NUM[10];并不是用“NUM[10]”去代替“int”,而是采用如同定义变量的方法那样来声明一个类型。
2009-09-21 11:22:00
647
转载 C语言共用体union和枚举类型enum
结构体变量所占内存长度是各成员占的内存长度的总和。每个成员分别占有其自己的内存单元。共用体变量所占的内存长度等于最长的成员长度。 注意点: 1.共用体变量中起作用的成员时最后一次存放的成员,在存入一个新成员后原有的成员就失去作用。 2.不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用变量的指针。 枚举类型:enum weekday{s
2009-09-21 10:30:00
2334
转载 malloc、free与内存碎片
malloc和free大量使用后回造成内存碎片,那么这种碎片形成的机理是什么? 如果机理是申请的内存空间大小(太小)所形成的,那么,申请多大的区域能够最大限度的避免内存碎片呢?(这里的避免不是绝对的避免,只是一种概率) 内存碎片一般是由于空闲的连续空间比要申请的空间小,导致这些小内存块不能被利用。 产生内存碎片的方法很简单,举个例: 假设有一块一共有100
2009-09-20 16:04:00
4067
转载 malloc()函数比数组有什么优势以及缺点
malloc()函数比数组有什么优势. 悬赏分:0 - 解决时间:2009-8-17 12:54 malloc()函数比数组有什么优势,比如说:我声明一个可以存储100个字符的内存块和声明一个可以存储100个字符的数组,我觉的malloc()并没有比数组占优势.大家可以打个例子来体现malloc()比数组更占优势.谢谢. 问题补充:你们也说,既然我用多少就分配多少,那我
2009-09-20 15:54:00
4380
1
转载 野指针理解和处理
指针是个很强大的工具,可是正因为它太强大,所以要操作它不是件易事。操作不当造成的野指针,甚至会引起系统死机等比较严重的后果。 如果程序定义了一个指针,就必须要立即让它指向一个我们设定的空间或者把它设为NULL,如果没有这么做,那么这个指针里的内容是不可预知的,即不知道 它指向内存中的哪个空间(即野指针),它有可能指向的是一个空白的内存区域,可能指向的是已经受保护的区域,甚至可能指向系统的关键内
2009-09-20 15:45:00
2519
转载 H.264 视频 RTP 负载格式
1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F: 1 个比特. forbidden_zero_bit. 在 H.264
2009-09-18 22:12:00
1063
转载 h.264 B条带预测模式
B条带的预测模式分为 直接模式,单向预测方式,多假设预测方式,帧内预测方式其中直接预测模式分为空间和时间两种 Direct模式首先需要一个mvcol(co-located mv,详细说明看标准)对于空间方式,一般使用当前帧中A、B、C(D)的空间预测结果,但如果mvcol很小,x、y方向的绝对值都小于等于1/4象素,就抛弃空间预测的结果,把当前的mv设置为0向量对于时间模式,则
2009-09-18 16:53:00
1804
转载 H.264 数据分割
当使用数据分割时,源编码器把不同类型的分割安排在3个不同的缓冲器中,同时分片的尺寸必须进行调整以保证小于MTU长度,因此是编码器而 不是NAL来实现数据分割。在解码器上,所有分割用于信息重建。这样,如果帧内或帧间信息丢失了,有效的帧头信息仍然能用来提高错误隐藏效率,即有效的宏 块类型和运动矢量,保留了宏块的基本特征,从而仍可获得一个相当高的信息重构质量,而仅仅丢失了细节信息。如果profile
2009-09-18 16:30:00
1184
原创 FMO特性
H.264中定义了七种FMO模式,在进行帧内预测时,不允许以本slice之外的样值作为参考,每个slice可以被独立的解码,有利于提高编码数据的鲁棒性.h.264最多允许将一帧划分为8 个slice group. 一幅图像由若干片组成,每片包含一系列的宏块(MB)。MB的排列可按光栅扫描顺序,也可不按扫描顺序。每个片独立解码,不同片的宏块不能 用于自身片中作预测参考。因此,片的设置不会造成
2009-09-18 15:56:00
1239
video4linux驱动的一些参考文档(经典)
2009-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人