学习x264的体会总结
edcrfvzl
这个作者很懒,什么都没留下…
展开
-
艰难起步读x264代码
庆祝自己打破坚冰,开始恶补开始读代码了!!! x264来自linux在vc下编译面对很多问题原创 2007-03-22 17:31:00 · 810 阅读 · 0 评论 -
cabac cavlc
运算量与收益比较:从可变长编码方案发展而来的基于上下文的自适应可变长编码CAVLC从算术编码发展而来的基于上下文的自适应二进制算术编码CABAC与CAVLC相比,CABAC可以节省约7%的码流,但增加了10%的计算时间转载 2007-05-29 14:40:00 · 1651 阅读 · 1 评论 -
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 · 1276 阅读 · 0 评论 -
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 · 1677 阅读 · 0 评论 -
为什么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 · 1997 阅读 · 0 评论 -
变量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 · 2046 阅读 · 0 评论 -
我们常说的某个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 · 1864 阅读 · 1 评论 -
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 · 1354 阅读 · 0 评论 -
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 · 2071 阅读 · 0 评论 -
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 · 1311 阅读 · 0 评论 -
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 · 2172 阅读 · 0 评论 -
图像质量评估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 · 5095 阅读 · 0 评论 -
some concepts for b_adaptive
How b_adapt works? Subject: Re: How b_adapt works?转载 2007-04-04 10:16:00 · 816 阅读 · 0 评论 -
别人对sps的汉语解释
H.264中定义的sequence parameter sets中包括了一个图像序列的所有信息.它是H.264的基础之一,是编码前进行初始化的关键的一环,本文通过参考H.264的标准文档,对每个函数进行了一些注释性的说明,还有一些图表性的东西,因为blog上帖不是很方便,请参考文档中相应的部分. sequence_parameter_set_rbsp_t结构体内成员及用途:1. u转载 2007-03-28 21:32:00 · 1336 阅读 · 1 评论 -
别人对 pps 的汉语解释
H.264中定义的picture parameter sets中包括了一个图像的所有切片信息.它也是H.264的基础之一,是编码前进行初始化的关键的一环,本文跟前一篇sps的参考笔记是兄弟篇,通过参考H.264的标准文档,对每个函数进行了一些注释性的说明,还有一些图表性的东西,因为blog上帖不是很方便,请参考文档中相应的部分. picture parameter sets1转载 2007-03-28 21:31:00 · 934 阅读 · 0 评论 -
x264代码在vc8下终于跑过了
dsw文件与source文件不同步,替换getopt.h .c为peterlee的老版本的后,去掉include失败的h文件,在source里面去掉和更新文件.于是带着无数的warnning success了!!可以安心看代码,调试了.以后碰见问题要放过去!!原创 2007-03-26 10:10:00 · 1193 阅读 · 2 评论 -
边读代码边查书边加注释与x264命令行翻译
慢,但是好歹起步了,以后会越来越快读代码,第一步先知道各个struct(corresponding to diff layer) 里面的parameter(syntex semantics)是啥,这时候x264命令行 参数介绍是很好的提示,是很好的起点.本文对应的是x264命令行模式,VFW方式也用相同的参数,不过是图形界面,可以自己找对应的英文。 使用格式:x264 默认选原创 2007-03-23 16:23:00 · 1184 阅读 · 0 评论 -
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 · 2239 阅读 · 0 评论