
H.264
文章平均质量分 66
HEVC_CJL
这个作者很懒,什么都没留下…
展开
-
HSV颜色空间
原文地址:http://baike.baidu.com/subview/541362/8445478.htm?fromId=541362&from=rdtself1HSV颜色模型HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色转载 2013-10-30 10:49:13 · 2840 阅读 · 0 评论 -
x264去方块滤波函数解析(三)
去方块滤波查表时需要用到的几个数组:/* Deblocking filter */static const uint8_t i_alpha_table[52+12*2] ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,原创 2012-12-19 23:15:18 · 1915 阅读 · 0 评论 -
x264去方块滤波函数解析(二)
上一篇介绍了实际进行滤波的函数,本篇主要介绍,去方块滤波这边的函数调用关系。先看几个定义://! 两个函数指针,第一个是bS=1~3时调用的,第二个是bS=4时调用的。typedef void (*x264_deblock_inter_t)( uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0 );typedef voi原创 2012-12-19 23:03:37 · 2981 阅读 · 0 评论 -
x264去方块滤波函数解析(一)
先介绍最终真正完成滤波工作的几个函数:static inline void deblock_luma_c( uint8_t *pix, int xstride, int ystride, int alpha, int beta, int8_t *tc0 ) //!< bS=1~3时的滤波{ int i, d; for( i = 0; i < 4; i++ ) //!<原创 2012-12-19 21:30:34 · 2745 阅读 · 2 评论 -
do{}while(0)的意义
原文地址:http://wmnmtm.blog.163.com/blog/static/3824571420116299450188/#define CHECK(x) do { if ((x) 把do while换行写,看的较明白一点,如下:do { if ((x) return -1; } while (0)-------------转载 2012-12-18 22:51:04 · 1107 阅读 · 0 评论 -
x264函数说明
原文地址:http://wmnmtm.blog.163.com/blog/static/38245714201163025957590/函数名称所在位置完成功能void x264_frame_filtercommon\mc.c帧滤波void x264_frame_init_lowrescommon\mc.c亮度1/2像素值初始转载 2012-12-18 22:45:08 · 3345 阅读 · 0 评论 -
x264中“!!”用法解析
在看x264代码的时候,经常会看到类似对一个变量作如下操作:... !! variable //!一个“!”即逻辑反,那么就会有这么个疑问:“!!”即否定的否定,仍然是本身,这么做有何意义呢?看下面这么个例子: if( !b_end ) { int i, j; for( j=0; jsh.b_mbaff; j++ )原创 2012-12-18 20:37:37 · 2047 阅读 · 0 评论 -
运动估计与运动补偿
原文地址:http://blog.sina.com.cn/s/blog_4b700c4c0100nhgo.html运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。运动估计是从视频序列中抽取运动信息的一整套技术。运动估计与运动补偿技术 MPEG-4采用I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类型。它采用了H.26转载 2013-01-01 19:01:50 · 16426 阅读 · 1 评论 -
x264中Encode_frame函数解析
static int Encode_frame( x264_t *h, hnd_t hout, x264_picture_t *pic ){ x264_picture_t pic_out; //!< 待编码帧 x264_nal_t *nal; //!< NAL打包指针 int i_nal, i; //!< NAL包数目 int i_file = 0;原创 2012-12-17 20:02:00 · 3650 阅读 · 1 评论 -
x264中Encode函数解析
static int Encode( x264_param_t *param, cli_opt_t *opt ){ x264_t *h; //!< 编码器句柄 x264_picture_t pic; //!< 当前编码帧 int i_frame, i_frame_total; //!< 当前帧序号,总帧数 int64_t i_start,原创 2012-12-17 19:55:31 · 3101 阅读 · 0 评论 -
最新版(2013.01.17)x264的多线程代码研究(一)
先罗列出代码中与多线程有关的宏定义、结构体、变量、函数等,锁定为需要重点关注的对象,在接下来的研究中逐步深入探讨这些对象的含义和作用。define X264_THREAD_MAX 128#define X264_LOOKAHEAD_THREAD_MAX 16#define X264_LOOKAHEAD_MAX 250// arbitrary, but low because S原创 2013-01-27 13:17:48 · 4105 阅读 · 3 评论 -
win32 vs2008 2010编译X264的过程(只针对x264支持windows的版本)
原文地址:http://bbs.chinavideo.org/viewthread.php?tid=9825&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D191.首先下载该处的X264:http://truth-tracer.appspot.com/x264-snapshot-20090216-2245.rar作者转载 2013-01-16 12:44:00 · 4550 阅读 · 7 评论 -
VS2008下X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
原文地址:http://bbs.chinavideo.org/viewthread.php?tid=6945&highlight=VS2008 总有人说最新的版本编译不过,搞的群、论坛里到处都是这种求助贴。建议斑竹把这个解决办法放到醒目的位置,以减少噪音。科普开始1、编译问题由于MS的VS编译器对C99标准支持不好,不支持函数当中混合定义、声明变量。解决办法:在函数开头转载 2013-01-16 12:45:27 · 2565 阅读 · 0 评论 -
YV12 and NV12
原文地址:http://blog.youkuaiyun.com/fanbird2008/article/details/8232673用videoCapture和IAMStreamConfig拿到的支持的格式列表。发现支持2中图像格式,YV12和NV12。具体是怎么样的内存分布不知道。查了些文档。自己修改了几个图。看出了点端倪YV12先看看 http://www.fourcc.org/转载 2013-09-26 10:54:21 · 3660 阅读 · 0 评论 -
ffmpeg中guess_mv的分析
static void guess_mv(MpegEncContext *s){ uint8_t fixed[s->mb_stride * s->mb_height];#define MV_FROZEN 3#define MV_CHANGED 2#define MV_UNCHANGED 1 const int mb_stride = s->mb_strid原创 2013-07-30 11:15:33 · 2449 阅读 · 0 评论 -
ffmpeg错误隐藏框架分析
本文主要是分析ffmpeg的错误隐藏框架,故解码流程此处不会特地进行讨论,网上其他地方其实也有不少介绍相关流程的了,但发现基本没有介绍错误隐藏流程的,故本文希望能填补这个空白。 我们直接从decode_frame开始跟踪(相信从这个地方开始不会有人有啥疑问吧,怎么跟踪到这里的已经有很多资料介绍的了),decode_frame ---> decode_nal_units原创 2013-07-30 13:45:17 · 5299 阅读 · 0 评论 -
ffmpeg中获取字节流格式的两种方式
原文地址:http://blog.youkuaiyun.com/cjsafty/article/details/7037700本文验证下面的帖子http://www.mentby.com/Group/ffmpeg-user/h264-byte-patterns-format.html内容为The h.264 standard is complicated, so the simple al转载 2013-07-22 13:45:57 · 2559 阅读 · 2 评论 -
FFMpeg框架代码阅读
原文地址:http://blog.youkuaiyun.com/wstarx/article/details/1572393简介FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Ma转载 2013-07-19 15:40:41 · 2432 阅读 · 0 评论 -
ffmpeg的精简
原文地址:http://blog.youkuaiyun.com/seven407/article/details/6170823现在更新一下目前遇到的问题: 我想裁减ffmpeg编译出来的Dll库,把avcodec.dll裁减到1MB左右就可以了,只需要用ffmpeg完成H.264的解码和对音频解码的支持. 目前搭建了MinGW+MSYS的环境来编译ffmpeg,make的版本是3.81的.编转载 2013-03-16 13:21:24 · 7463 阅读 · 0 评论 -
x264编码器的参数设置
原文地址:http://blog.youkuaiyun.com/table/article/details/8085115洒家对编码也是一知半解,很多参数意义也不太清楚,基本都是实际调整参数后,观看效果。如果描述错误,勿喷。洒家也没打算深入研究,洒家只是想用用该编码器。本人使用x264主要想调整的参数,第一,profile,也就是使用baseline还是main,还是high编码。可以通过转载 2013-03-16 13:19:51 · 3709 阅读 · 0 评论 -
编译最新版x264的方法(2013-01-17版测试可用)
参考链接:http://bbs.chinavideo.org/viewth ... 26amp%3Btypeid%3D19给出这篇文章的另一个出处(英文版):http://doom10.org/index.php?topic=1767.0这里给出了一些更为具体的步骤以及Debug时出现的问题的解决办法:------2012.10.20-------Some people e转载 2013-01-18 17:07:18 · 1672 阅读 · 0 评论 -
bs_t结构及其相关函数的定义
原文地址:http://wmnmtm.blog.163.com/blog/static/38245714201192541031807/参考bs.h此部分内容对应H.264标准9.1节及[2]中6.4.13小节bs_t结构描述了比特流的概念,从比特流中进行顺序读写操作(类似于前向迭代器)typedef struct bs_s{ uint8_t *p_start转载 2013-01-18 11:41:26 · 1504 阅读 · 0 评论 -
X264和JM的区别
原文地址:http://blog.youkuaiyun.com/fengjingge/article/details/7797592x264是一种免费的、具有更优秀算法的H.264/MPEG-4 AVC视频压缩编码格式。开源,X.264起源于H.264技术,是H.264的的变种版本。与H.264相比,X.264是针对业余市场推出的一个免费编码格式,是H.264的子集,实现H.264的大部分功能。X.264转载 2013-01-16 14:34:00 · 3739 阅读 · 0 评论 -
X264中的sad-a.asm
原文地址:http://blog.youkuaiyun.com/xiaoyi247/article/details/79133601.SAD即绝对误差和(sum of absolute differences),应用非常广泛,是一种测量两个图像块的差异的最简单的办法。顾名思义,其公式为: 2.为什么要优化SAD SAD在视频编解码中用处非常广泛, 1. intra预测中转载 2012-12-28 18:30:22 · 1944 阅读 · 0 评论 -
int x264_nal_encode( void *p_data, int *pi_data, int b_annexeb, x264_nal_t *nal ) .
原文地址:http://blog.youkuaiyun.com/diffenyu/article/details/8292541/**************************************************************************** * x264_nal_encode: * x264_nal_encode( mux_buffer, &i转载 2012-12-15 18:25:18 · 3077 阅读 · 0 评论 -
x264中的cpu-a.asm
原文地址:http://blog.youkuaiyun.com/xiaoyi247/article/details/7917537CPUID指令是用来搜集当前程序正在运行的处理器信息的,包括厂商和信号信息。在IA-32中,CPUID指令使用EAX寄存器作为输入,EAX寄存器用来指定需要查看的信息的类型,根据EAX的数值的不同,CPUID指令会产生不同的信息,存入EBX,ECX,EDX寄存器中。转载 2012-12-28 18:29:11 · 1183 阅读 · 0 评论 -
x264_macroblock_cache_init 的分析
int x264_macroblock_cache_init ( x264_t *h ) 这个函数主要对cache中与宏块相关的变量进行初始化,包括为它们分配对应的内存空间。在函数里,会有一些变量的赋值一开始让人摸不着头脑,经过查找资料和跟踪代码确认,现对如下变量进行解释:int i_mb_count = h->mb.i_mb_count; //!h->mb.i_mb_s原创 2012-12-05 20:02:11 · 2501 阅读 · 1 评论 -
x264 4x4帧内预测代码解析
/**************************************************************************** * 4x4 prediction for intra luma block ****************************************************************************/原创 2012-12-06 13:31:36 · 2555 阅读 · 1 评论 -
x264中16x16帧内预测模式函数分析
/**************************************************************************** * 16x16 prediction for intra luma block ****************************************************************************/原创 2012-12-05 22:49:44 · 2783 阅读 · 0 评论 -
x264内联汇编
原文地址:http://blog.youkuaiyun.com/edcrfvzl/article/details/1604819在x264.h中你可以观察到这样的语句:define DECLARE_ALIGNED( type, var, n ) __declspec(align(n)) type var # define DECLARE_ALIGNED( type, var, n )转载 2012-12-04 23:06:27 · 2237 阅读 · 0 评论 -
x264 slice级函数流程图
原创 2012-12-04 21:37:35 · 3047 阅读 · 0 评论 -
x264 frame级流程图(一)
原创 2012-12-04 16:56:36 · 2325 阅读 · 0 评论 -
x264 frame级函数流程图(二)
原创 2012-12-04 19:59:41 · 2366 阅读 · 0 评论 -
x264list操作代码研究
/* list operators */void x264_frame_push( x264_frame_t **list, x264_frame_t *frame ) //!< 入栈{ int i = 0; while( list[i] ) i++; //!< 找到栈顶 list[i] = frame; //!< 将元素压入栈}x264_fr原创 2012-12-03 18:50:36 · 2009 阅读 · 0 评论 -
x264中几个重要结构体的说明
看代码,虽说不一定非得把每一个变量的含义都弄得一清二楚,但是对于比较重要的变量参数,你不了解的话那看起程序来会特别吃力,故这里先开个头,给出x264中几个重要结构体的说明,主要以注释的形式给出。typedef struct x264_param_t{ /* CPU flags */ unsigned int cpu; int i_threads原创 2012-12-01 16:57:16 · 5593 阅读 · 0 评论 -
x264(20090216-2245)main函数级的流程图
虽然学习264已经一年了,x264也不是第一次使用了,但是由于某些原因,需要仔细研究x264中的代码,故开始较为系统地学习x264源码,按照学习的一般步骤,首先自然是对整个工程有个大体框架的认识,故先参考别人的流程图结合代码自己绘制main函数级的流程图。(转载请注明出处。)原创 2012-12-01 15:04:17 · 3942 阅读 · 4 评论 -
x264_median 函数分析
先上代码: static inline int x264_median( int a, int b, int c ){ int t = (a-b)&((a-b)>>31); a -= t; b += t; b -= (b-c)&((b-c)>>31); b += (a-b)&((a-b)>>31); return b;原创 2012-12-08 23:21:01 · 2322 阅读 · 0 评论 -
JM8.5中的多参考帧问题
原文地址:http://blog.youkuaiyun.com/sunshine1314/article/details/172498Outline:1、 CFG文件中有关多参考帧的相关选项2、 多参考帧涉及到的数据结构和全局变量3、 保存重建图像为参考帧4、 编码一帧前,设置参考帧列表5、 多参考帧的使用(即参考帧的选择策略问题)6、 遗留问题转载 2012-12-09 19:34:27 · 1979 阅读 · 0 评论 -
x264_scan8 的理解
先上代码及注释#define X264_SCAN8_SIZE (6*8) //!< 扫描表的尺寸#define X264_SCAN8_0 (4+1*8) //!< 扫描表第一个扫描序(即亮度的首扫描序)static const int x264_scan8[16+2*4+3] ={ /* Luma */ 4+1*8, 5+1*8, 4+2*8, 5+2*8,原创 2012-12-08 21:45:29 · 3527 阅读 · 0 评论 -
x264中的DCT变换 dct-a.asm
原文地址:http://blog.youkuaiyun.com/xiaoyi247/article/details/79187191.什么是傅里叶变换傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。最初傅里叶分析是作为热过程的解析分析的工具被提出的。(摘抄自百度百转载 2012-12-28 18:24:29 · 1762 阅读 · 0 评论