自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

转载 牛人写的跟我写makefile

 跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不

2007-08-20 09:27:00 914

转载 davinci 工具链,对我理解单核davinci很有帮助

      德州仪器(TI)的达芬奇(DaVinci)数字媒体技术平台包括四大部分:芯片(处理器)、开发工具或开发套件、软件及技术支持。其中软件开发涉及到操作系统、音视频编解码算法及ARM和DSP之间的分工协作,让很多工程师感到比较复杂。        为此TI推出了一系列软件模块和工具来建立Davinci软件开发的框架,方便工程师在此基础上快速的开发自己的产品。这些软件模块和工具包含在T

2007-07-26 11:08:00 3053 1

转载 c run timelibrary

注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritch

2007-07-14 09:16:00 1061

转载 DSP 老手的随感

关键词: DSP    经验                                             一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP的开发写一写自己的感受,一家之言,欢迎指教。我上研究生的第一天起根据老板的安排就开始接触DSP,那时DSP开发在国内高校刚刚开始,一台DSP开发器接近一万还是ISA总线的,我从2

2007-07-09 21:45:00 2223 1

转载 EDMA 和QDMA 还看不懂,先收藏着

1)EDMA概要     ①EDMA数据传输有两种发起方式: ü         CPU发起的EMDA数据传输(非同步方式):需要传输时,CPU设置ESR寄存器的相应位为1,从而触发一个EDMA事件的产生,事件对应的通道参数被送往地址硬件并且完成相应的处理,这

2007-07-04 22:02:00 4309 2

转载 malloc calloc realloc 区别

    三个函数的声明分别是:void* realloc(void* ptr, unsigned newsize);void* malloc(unsigned size);void* calloc(size_t nelem, size_t elsize);都在stdlib.h函数库内它们的返回值都是请求系统分配的地址,如果请求失败就返回NULLmalloc用于申请一段新的地址,参数size为需

2007-06-20 15:57:00 1058 2

原创 dsp/bios 生成的对象

dsp/bios所用全局和静态变量在.bss段中,生成同是全局性质的对象 不在.bss段中,同时dsp/bios按照小模式编译自己的应用程序可大可小编译,大时当然可以访问.bss外的对象,小时,直接寻址去.bss就找不到了,需要1,声明far.或者2用指针去找或者3如果全局变量+对象小于32kB就可以把对象在memory里跟着.bss放,反正能寻到,就不管了. dspbios 的对象我

2007-06-20 10:47:00 887

原创 x264剥离后在ccs下build pass了!!!!!

哇哈哈哈哈哈哈  可以安心开始熟悉硬件优化代码了!!!!!! hoho  反正会面临困难,为什么要哭丧着面对呢?掉头发,早衰,猝死就不好了啊,开心哈

2007-06-19 11:29:00 1221 3

原创 x264中同名的宏和函数

  bs_write1  bs_write  bs_write_ue  bs_write_se  bs_write_te 宏在rdo.c的开头定义rdo.c又被include在analyse.c的开头,功能上:只改变写入数据大小,估计是用来估计rdo中精确cost的. 并且没有被undefine.但是并没有被analyse中或者之中函数用到.同名静态内联函数在bs.h中定义,文件又被inclu

2007-06-18 20:56:00 995

转载 msc ver

micro soft compiler  versionDefines   the   compiler   version.   Defined   as   1200   for   Microsoft   Visual   C++   6.0.   Always   defined.         The   _MSC_VER   macro   will   have   one  

2007-06-17 10:57:00 870

原创 常用信号线名

主要信号有地址信号A0~A15、数据信号D0~D15、读信号RE、写信号WE、闸门信号STRB、I/O空间选择信号IS、数据存储器选择信号DS、程序存储器选择信号PS、机器时钟输出信号CLKOUT1 

2007-06-13 10:21:00 1111

转载 rom ram 等记忆体

ram 随机访问存储器rom只读存储器 sram无需刷新,但掉电也信息无,用于cpu的cachedram动态访问存储器,需按时刷新防止信息丢失 ,掉电信息无,用于内存 sdram 内存  同步dramsbsram 同步突发访问sram  记忆体的分类只读存储器ROM (Read Only Memory):ROM是一种只能读取而不能写入资料之记燱体,因为这个特

2007-06-13 10:06:00 1067

原创 dsp 大端小端

 dsp中操作数存在byte  ,half word和word.所以对传统大端小端多了个限制,halfword 只对应存储器里地址末两位为00 01的. 0x12345678h 以byte为单位写入存储在 小端中 a地址开头 78

2007-06-11 13:04:00 2594

原创 方便面

方便面 instant noodels 饮水思源:安藤百福,日本人(台湾人) 1910年出生在中国台湾,原名吴百福。自幼失去双亲,但父亲的遗产却给安藤提供了足够的创业资金。他吸取了祖父经营绸缎布匹商店的经验,起初他靠销售针织品发财,1933年渡海到日本,事业上还算成功。 方便面调料:1948年,安藤创立中交总社食品公司,开始从事营养食品的研究。他利用高温、高压将炖熟的牛、鸡骨头中的浓汁抽出,制

2007-06-08 15:18:00 1154

原创 VLIW甚长指令字

----RISC处理器还有其它非实时的特点,这些特点使它们与硬实时系统不兼容。特别是与数据操作和实时I/O相联系的功能。DSP发送和接收数据采用较高的带宽和多条内存总线,通常为零等待状态。 ----DSP利用有效的直接内存访问(DMA)控制器,它们使用多端口或多存取存储器能够同时进行多个内部的和外部的程序数据存取。使用这种外设允许CPU无需从存储系统加载而达到最高的性能。现实情况表明,仅仅这些特点

2007-06-06 17:34:00 1719

原创 读x264代码完全结束,哇哈哈哈哈

 2天前结束的,开心工作进度比较慢,积累了不少看大代码的经验下一步开始分离一个适用dsp的c语言算法出来,为下一步往dsp上移植做准备了

2007-06-04 10:55:00 883

原创 去掉e加ing

除了元音字母加e结尾的外,如seeing、dying(die),任何e结尾的动词加ing时都要先去e的 

2007-06-01 13:37:00 1507

原创 x264 中qp追踪

qp全是int型数据rc.i_qp_constant=26 默认值26起始,当option输入规范为cqp且给出qp时使用恒定的qp。之后如果变化10--51step是4,这3个值也可以在option中修改。每一个mb下有qp lastqp last_dqp,flag:b_varible_qp   qp在ratecontrol策略中改变,应该是在每mb和每slice结束后有一个refr

2007-05-29 16:33:00 2208

转载 cabac cavlc

运算量与收益比较:从可变长编码方案发展而来的基于上下文的自适应可变长编码CAVLC从算术编码发展而来的基于上下文的自适应二进制算术编码CABAC与CAVLC相比,CABAC可以节省约7%的码流,但增加了10%的计算时间 

2007-05-29 14:40:00 1643 1

原创 双写 加 ed 过去式

单词重读闭音节,末尾只有一个辅音字母,辅音字母前只有一个元音字母,那么双写最后一个加ed  比如wait的进行式也是如此, 重读闭音节,末尾只有一个辅音字母,但是双元音(ai和ei)所以不双写变成 waiting才是对的,waitting的拖出去打

2007-05-26 16:58:00 5805

原创 x264 中 p mb的mbrd 和refine>=7对intra inter的操作

rd就是对某个量实际的编码,看在最终bits流中的bits数代理satd(intr)或 sad(intra)为cost的判断方式,运算量大,但在一定bitrate下图像质量会提高,压缩比增大在rd之前,intrasad定了分块和ored模式.......inter用sad确定了ref(在16x16块搜索中),然后搜索所有分块模式时sad定1/2mv,satd定1/4mv. 最后比较satd定分

2007-05-25 09:44:00 1268

原创 (*a)[2] *a[2]

前者a是一个指针,指向2维int数组,即为指向指针的指针==a[x][2]后者为指针数组,2个指针都指向int数                               ==a[2][x] 

2007-05-24 16:22:00 781

原创 satd 与 sad

sad sum of absolute diffsatd s o a transformed diff为hadamard transform作为计算失真的一个方法,SATD更能反映失真。Hadamard Transform如果不使用的话,就是用SAD计算失真的。个人经验是如果使用rdo,用不用SATD对压缩结果影响不大,而不用RDO的话,结果就差的多了 .x264中函数指针mbcmp[

2007-05-17 08:20:00 1664

原创 为什么x264_intra_rd_refine 相对x264_intra_rd 来说是个refine

后者,根据粗略决定各分块方式下的预测模式(由x264_mb_analyse_intra( h, &analysis, COST_MAX )实现)intra mode 尝试性编码,计算cost,然后根据cost大小决定最终编码type,根据type cost ratecontrol 即可真正最后编码. 但在最后编码之前,如果对画质要求的option为最高值7,则需进行x264_intra_r

2007-05-15 20:55:00 1982

原创 变量b_mbrd意义

猜测的:int 的 flag 0/1在要求高图像质量低速,并且非b帧或者有rdo时为1,认为非b所需bits多,运算简单,有rdo要求运算多--------a->b_mbrd = h->param.analyse.i_subpel_refine >= 6 &&// 1 fast ,7best here means pay attention to visual effect      

2007-05-14 10:04:00 2039

原创 我们常说的某个mb被 skip了对b 和p 是不同的,其中b还有类似的direct16x16模式

对于b帧:  skip: 无residual,无mvd。解码时,通过Direct预测模式(时间或空间)计算出前、后向MV后,直接利用前、后向MV得到像素预测值。            direct mode:B帧的双向预测使用了直接模式(direct mode)、对称模式(symmetric mode)和跳过模式(skip mode) 三种    其中direct:有residua

2007-05-12 11:13:00 1832 1

转载 c++中内联汇编

在x264.h中你可以观察到这样的语句:define DECLARE_ALIGNED( type, var, n ) __declspec(align(n)) type var #       define DECLARE_ALIGNED( type, var, n ) type var __attribute__((aligned(n))  有什么作用呢??现在讲资料附在下面,谁有功夫可

2007-05-11 16:16:00 1925

原创 指向函数的指针类型定义

typedef void (*x264_deblock_inter_t)( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );   典型格式要知道

2007-05-11 11:25:00 690

原创 精妙的冒泡法排序x264 reflist0 reorder,从大到小

 do    {        b_ok = 1;        for( i = 0; i i_ref0 - 1; i++ )        {            if( h->fref0[i]->i_poc fref0[i+1]->i_poc )            {                XCHG( x264_frame_t*, h->fref0[i], h->fref0[i

2007-04-13 10:24:00 739

原创 continue break

c:跳出本次循环执行下一次循环b:结束循环,跳出   不要被if等信号干扰了

2007-04-13 09:00:00 584

原创 x264_scan8

这是一个坐标变换用的查找表,是个数组,将0--23变换为一个8x8矩阵中的4x4 和2个2x2 的块扫描. x264_scan8[16+2*4] ={    /* Luma */    4+1*8, 5+1*8, 4+2*8, 5+2*8,    6+1*8, 7+1*8, 6+2*8, 7+2*8,    4+3*8, 5+3*8, 4+4*8, 5+4*8,    6+3*8, 7+3*8

2007-04-12 08:45:00 1301

转载 SODB RBSP EBSP区别

 感谢小三 SODB 数据比特串-->最原始的编码数据 RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。 EBSP 扩展字节序列载荷-->在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码StartCodePr

2007-04-11 11:26:00 1342

转载 X264 中CBP coded block pattern

 以下是我关于x264代码中cbp的一些理解,不知道对不对,欢迎各位批评指正!cbp用于表示是否存在非零值在x264中,对于luma由i_cbp_luma的第i位(i= 0、1、2、3)位表示一个MB中第i行4x4子块是否有非零值若存在非零值,则设置i_cbp_luma标志对于chroma由i_cbp_chroma表示0x00表示:全为零0x01表示:只有D

2007-04-10 15:39:00 2048

原创 x264基于经验和感觉的码率控制策略

前提: 1 high-complexity or high-motion scenes,细节将不会很明显,此时高qp也是浪费2 where motion compensation works well,在景物边沿的失真,只需在一帧中去掉,以后就都不会有.在这里投入有限的bits可以获得最好的图像质量性价比3 已经编码一frame,可以预测其他qp下所需bit数.预测距离越远越不精确

2007-04-09 19:40:00 2158

原创 图像质量评估psnr ssim mse

mse (mean square error )    [sum  sum( originalpicture- aim.picture).^2]/(N*M)  mse      误差平方和除以图像尺寸Nmse    规一化mse    误差平方和除以原始图像平方和pmse   峰值均方误差 误差平方和/(图像尺寸*图像最大值平方)       2.^n-1  图像最大值 psn

2007-04-09 14:48:00 5055

转载 some concepts for b_adaptive

 How b_adapt works? Subject: Re: How b_adapt works?

2007-04-04 10:16:00 799

转载 inline 与macro

macro定义只是很初级的一种代换,实现的功能很单一而且安全性很差,比如类型错误、括号漏写都会造成很大的错误,而且错误不容易被发现,隐患很大inline函数内联函数要比前者好很多功能也要全面很多!罪主要的是 内联函数能够进行安全检查(比如参数类型 等) 

2007-04-02 10:58:00 629

原创 标准输入输出格式 stdin stdout stderr

 标准输出格式,无需个人定义输出位置和方式,直接:keyboard  screen  screen.输出输入chars.可以被理解为一种文件或设备(设备也是文件)  例如:fprintf( stderr, "x264 [error]: x264_encoder_open failed/n" );输出屏幕错误信息.

2007-03-30 16:35:00 945

原创 c语言库函数strtol fprintf memcpy memset sizeof

strtol将字符串a,b,c 分别采用10,2,16进制转换成数字#includemain()char a[]=”1000000000”;char b[]=”1000000000”;char c[]=”ffff”;printf(“a=%d/n”,strtol(a,NULL,10));printf(“b=%d/n”,strtol(b,NULL,2));printf(“c=%d/

2007-03-30 14:13:00 1039

原创 变量作用范围

在某一层次上定义,就在这个层次上有效...所以显然:在层次下子程序内(func be invoked)也有效.  main(){int a;voidfunc(&a);//函数中可以修改a的值,注意和函数定义的区别}

2007-03-30 10:32:00 689

空空如也

空空如也

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

TA关注的人

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