![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
H264
文章平均质量分 72
feixiaku
这个作者很懒,什么都没留下…
展开
-
用实例分析H264 RTP payload
H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H264"..转载 2014-09-03 14:04:54 · 880 阅读 · 0 评论 -
从CCS中读出的文件转变为纯数据文件
通过save data的方式可以将数据从DSP板的内存中将数据读出存储到一个文件中,此时该文件中的内容是对内存中的数据添加了一定格式的,格式见“yuv图像文件到CCS中DAT文件的转换 ”,下面的程序完成取出ccs添加的格式,留下纯数据,并将之存储到一个新的文件中。 /* 将CCS中.dat格式的数据文件去掉其附加格式,变为纯数据*/#include #in转载 2013-04-26 17:56:55 · 2664 阅读 · 0 评论 -
*x264_frame_new( x264_t *h )
转载于:http://qiudw1020.blog.163.com/blog/static/120913456200910110395802/ 进行framer_t结构体中数据元素的空间分配首先是frame->buffer,frame->plane, frame->filtered,具体如下 接下来是frame->buffer_lowres,frame-转载 2013-04-26 11:50:07 · 762 阅读 · 0 评论 -
x264中比特流的存储结构
转载于:http://qiudw1020.blog.163.com/blog/static/12091345620098110342609/ 在未包含熵编码时,这涉及到3个结构体NAL单元的数据结构:typedef struct{ int i_ref_idc; //指该NAL单元的优先级 int i_type; //指该NAL单元的类型转载 2013-04-26 11:47:01 · 1146 阅读 · 0 评论 -
指数哥伦布编码
转载于:http://blog.163.com/laorenyuhai126@126/blog/static/1935077920111237408890/指数哥伦布编码规定语法元素的编解码模式的描述符如下:比特串:b(8): 任意形式的8比特字节(就是为了说明语法元素是为8个比特,没有语法上的含义)f(n): n位固定模式比特串(其值固定,如forbidde转载 2013-04-26 11:41:55 · 772 阅读 · 0 评论 -
cabac编码过程的解读
CABAC是H.264/AVC标准中两种熵编码方法中的一种,是将自适应的二进制算术编码与一个设计精良的上下文模型结合起来得到的方法。它很好地利用了语法元素数值之间的高阶信息,使得熵编码的效率得到了进一步提高。它的主要特点有:利用每个语法元素的上下文关系,根据已编码元素为待编码元素选择概率模型,即上下文建模;根据当前的统计特性自适应地进行概率估计;使用算术编码。[5]在CABAC中编码一个单转载 2013-04-26 11:45:06 · 2098 阅读 · 0 评论 -
CAVLC熵编码
http://bbs.chinavideo.org/viewthread.php?tid=1033&highlight=cavlc谨以此文献给QQ群“H.264乐园”和群里那些无私奉献的同行朋友! 也希望能对刚进入这个领域的朋友有所帮助,欢迎做过CAVLC的同行能批评指正! 编码过程: 假设有一个4*4数据块 { 0, 3, -1, 0, 0, -1, 1, 0,转载 2013-04-26 11:43:20 · 756 阅读 · 0 评论 -
x264中的NAL流程
目前,主要是在分析NAL,做抓包实验,所以对NAL的格式要求比较高,这个过程中读了《新一代视频编码》,以前也读过,这是没有遇到实际的问题,读的时候也是似懂非懂的,囫囵吞枣,现在要分析,要用了才知道这些相关文档是要好好读的,ES流也是要好好分析的。在上一篇中关于函数指针和指针函数的理论知识中,我主要是来看看x264中的NAL是怎么在封装的。在x264中使用的函数指针,关于NAL部分的下面的一转载 2013-04-26 11:37:20 · 808 阅读 · 0 评论 -
x264运动估计
理论知识:两帧之间的物体运动是平移运动,位移量不是很很大,所以会以块作为单位分配运动矢量,在运动估计中采用了大量的参考帧预测来提高精度,当前的待编码块可以在缓存内的所有重建帧中寻找最优的匹配块进行运动补偿,以便很好的去除时间域的冗余度。为每一个块寻求一个运动矢量MV,并进行运动补偿预测编码。在每个分割区域中都有其对应的运动矢量,并对运动矢量以及块的选择方式进行编码和传输。运动估计ME所转载 2013-04-17 21:23:58 · 887 阅读 · 0 评论 -
x264运动估计实验
enum mb_partition_e //宏块的进一步划分{ /* sub partition type for P_8x8 and B_8x8 */ D_L0_4x4 = 0, D_L0_8x4 = 1, D_L0_4x8 = 2, D_L0_8x8 = 3, /* su转载 2013-04-17 22:48:58 · 1120 阅读 · 0 评论 -
x264参数介绍
翻译自:http://mewiki.project357.com/wiki/X264_Settings,水平有限,勿吝指教。第二部分:http://blog.yikuyiku.com/?p=2206输入用1个绝对路径定义输入文件(或者2个,rawYUV文件)。如下例:x264.exe -o NUL C:\input.avsx264 -o /dev/null ~/转载 2013-04-25 19:13:11 · 1037 阅读 · 0 评论 -
H.264 的码流结构
X264 编码完之后会生成一个以 .264 为后缀的文件,文件中的数据以开始前缀(0X00000001 或 0X000001)分隔。第二个开始前缀之前的数据就是 SPS,第三个开始前缀之前的数据就是 PPS。要进行 base64 编码的就是这两段数据(不带开始前缀),一般是几十个字节。如下图高亮部分。那么,sprop-parameter-sets应该是截取67 42 00原创 2013-04-18 21:51:34 · 800 阅读 · 0 评论 -
CABAC之手把手教你H.264编码
CABAC之手把手教你H.264编码 中华视频网 2006-09-25 首先要说明的是 CABAC 的生命期是 SLICE, 因此本篇所讲的也是一个 SLICE 里 CABAC 的流程 , 其次对于我们来说场模式几乎用不到 , 所以本文的编码流程只使用帧模式 , 因此实际上用到的表只有 277 个 , 当然如果我写成 399, 不是说转载 2013-04-18 22:39:30 · 795 阅读 · 0 评论 -
MPEG-2中TS码流包结构和功能应用
【摘 要】本文就有线电视数字信号TS流的形成原理和包结构的相关内容进行了论述。【关键词】ES;MPEG-2;TS;复用/解复用技术;包结构 一、 概述随着有线数字电视的普及,MPEG-2系统复用技术的地位亦发凸显,根据传输媒介的质量不同,MPEG-2中定义了两种复用信息流:传输流(TS)和节目流(PS:ProgramStream)。TS流与PS流的区别在于TS流的包结构是固定长度转载 2014-09-03 14:05:47 · 1218 阅读 · 0 评论 -
H.264 基础及 RTP 封包详解
一. h264基础概念1、NAL、Slice与frame意思及相互关系 1 frame的数据可以分为多个slice.每个slice中的数据,在帧内预测只用到自己slice的数据, 与其他slice 数据没有依赖关系。 NAL 是用来将编码的数据进行大包的。 比如,每一个slice 数据可以放在NAL 包中。I frame 是自己独立编码,不依赖于其他转载 2014-09-03 14:02:10 · 646 阅读 · 0 评论 -
基于Android平台的x264的移植与应用(一):移植篇
转载请注明出处!毕竟是我的心血啊!原文链接:http://blog.csdn.net/zgyulongfei/article/details/7440254写这篇博客的目的是希望可以帮助到那些在将x264移植到Android过程中遭遇坎坷还没有成功的朋友们,同时也算是对我这段时间学习的一个总结。----------------------------------转载 2014-09-24 23:58:23 · 552 阅读 · 0 评论 -
几个开源的视频编解码器介绍
http://blog.csdn.net/xy365/article/details/8424600排名分先后。一、ffmpeg ffmpeg属于GPL或者LGPL,确切属于哪一种,要根据编译选项,因为它里面的库有些属于GPL的有些属于LGPL的,你编译的时候打开或者关闭这些库的选项,就决定了它属于哪一种。http://www.ffmpeg.org/leg转载 2014-03-29 17:54:26 · 19514 阅读 · 1 评论 -
YUV420图像格式
YUV中的Y是指“灰度”或者“明亮度” ,英语表达为Luminance、Luma,luminance 表示为 Y, luma 表示为 Y'。Y与RGB的演算关系为:Y = 0.2126 R + 0.7152 G + 0.0722 B,Y' = 0.2126 R' + 0.7152 G' + 0.0722 B' ,符号' 表示使用了Gamma compression。(参见http://en.wik转载 2013-06-19 22:15:38 · 3831 阅读 · 1 评论 -
CBP详解
CBP详解cbp一共6bit,高2bit表示cbpc(2:cb、cr中至少一个4x4块的AC系数不全为0;1:cb、cr中至少一个2x2的DC系数不全为0;0:所有色度系数全0) 低4bit分别表示4个8x8亮度块,其中从最低一位开始的4位分别对应00,10,01,11位置的8*8亮度块。如果某位为1,表示该对应8*8块的4个4*4块中至少有一个的系数不全为0。 ICB转载 2013-04-18 22:38:04 · 1918 阅读 · 0 评论 -
x264_macroblock_analyse(x264_t *h ) 分析
x264_macroblock_analyse(x264_t *h )功能初始化;对于I Slice,遍历所有16x16和4x4预测模式,得到最小Cost所对应的分块方式和预测模式;对于P Slice,如果宏块周围有Skip模式的宏块,检测当前块是否是Skip块,如果不是Skip块,遍历所有可能的块划分模式,对每种模式进行运动估计并计算Cost,计算intra对应的转载 2013-04-18 20:40:27 · 603 阅读 · 0 评论 -
x264中的菱形搜索算法研究
http://blog.csdn.net/vblittleboy/article/details/8276685case X264_ME_DIA: i = 0; do { DIA1_ITER( bmx, bmy ); 菱形搜索算法 if( (bmx == omx转载 2013-04-18 22:42:19 · 788 阅读 · 0 评论 -
x264_analyse_update_cache 内部各种函数注释
转载于:http://blog.sina.com.cn/s/blog_6938cd0501011qk1.html内部各种函数注释" title="x264_analyse_update_cache 内部各种函数注释" style="margin:0px; padding:0px; border:0px; list-style:none">staticinlinevoid转载 2013-04-18 22:34:06 · 883 阅读 · 0 评论 -
编译x264
要做视频传输,时间又紧迫,本人的“家底”又特别薄,就在网上下了个x264编码的,在Linux下能编译过去的。首先得配置一下:./configure --disable-asm,之后找到它默认的编译工具,然后修改它。在配置文件里,用vi打开它,找到 CC="${CC-gcc}" 这就是在configure文件里的定义,所以默认的是用gcc编译器编译的,若想修改编译器,把它修改了就行,若想用arm-l转载 2013-04-25 18:57:18 · 866 阅读 · 0 评论 -
x264运动估计六边形搜索源代码解析
先采用半径为2的大六边形模版搜索,若最优点是原点则采用半径为1的正方形模版搜索得出最优点,否则以最优点为中心继续以半径为2的大六边形模版搜索。case X264_ME_HEX:me_hex2: /* hexagon search, radius 2 */#if 0转载 2013-04-25 18:23:13 · 1004 阅读 · 0 评论 -
h264参考代码中的cbp是什么意思
以下是我的理解:cbp用于表示当前宏块是否存在非零值在x264中,对于luma由i_cbp_luma的第i位(i= 0、1、2、3)位表示一个MB中第i行4x4子块是否有非零值若存在非零值,则将相应位置1对于chroma由i_cbp_chroma表示0x00表示:全为零0x01表示:DC参数不为零0x02表示:有不为零转载 2013-04-25 13:27:10 · 2439 阅读 · 0 评论 -
x264中x264_me_search_ref的被调用分析
转载于:http://blog.csdn.net/vblittleboy/article/details/8302323该函数用于帧间预测运动矢量的搜索,在x264中被多次调用,怎么知道哪些函数调用了它呢?void x264_me_search_ref( x264_t *h, x264_me_t *m, int16_t (*mvc)[2], int i_mvc, int *p_fu转载 2013-04-22 11:41:23 · 625 阅读 · 0 评论 -
x264_macroblock_cache_load分析
功能:完成将已编码数据参数和待编码数据装入到h->mb.cache中,下图是BUF中存储的数据在以MB为单位的时候的存储顺序 ----------------------计算各种类型宏块的位置-------------------------------int i_mb_xy = i_mb_y * h->mb.i_mb_stride + i_mb_x;--得转载 2013-04-22 12:06:08 · 540 阅读 · 0 评论 -
x264基于经验和感觉的码率控制策略
前提: 1 high-complexity or high-motion scenes,细节将不会很明显,此时高qp也是浪费 2 where motion compensation works well,在景物边沿的失真,只需在一帧中去掉,以后就都不会有.在这里投入有限的bits可以获得最好的图像质量性价比 3 已经编码一frame,可以预转载 2013-04-22 11:59:56 · 789 阅读 · 0 评论 -
使用Libx264实现状态显示
转载于:http://blog.csdn.net/vblittleboy/article/details/8052431循环编码中的状态显示:/×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/转载 2013-04-22 11:51:05 · 652 阅读 · 0 评论 -
x264gcc编译全过程
转载于:http://blog.csdn.net/vblittleboy/article/details/8127290fsq@fsq-VirtualBox:~/workspace/x264$ makegcc -Wshadow -O3 -ffast-math -m32 -Wall -I. -I. -march=i686 -mfpmath=sse -msse -std=gnu99 -fom转载 2013-04-22 11:48:56 · 708 阅读 · 0 评论 -
bs_t结构及其相关函数的定义
转载于:http://blog.csdn.net/vblittleboy/article/details/8290635此部分内容对应H.264标准9.1节及[2]中6.4.13小节bs_t结构描述了比特流的概念 , 从比特流中进行顺序读写操作(相似于前向迭代器)typedef struct bs_s{uint8_t *p_start; // 缓冲区首地址转载 2013-04-22 11:44:04 · 1215 阅读 · 0 评论 -
x264中的菱形搜索算法研究
转载于:http://blog.csdn.net/vblittleboy/article/details/8276685case X264_ME_DIA: i = 0; do { DIA1_ITER( bmx, bmy ); 菱形搜索算法 if( (bmx == o转载 2013-04-22 11:37:51 · 680 阅读 · 0 评论 -
VS10编译X264
H264可以说是现在视频发展的趋势,越来越多的视频舍弃了rmvb投入了H264的怀抱。我自己压的视频都是用H264编码的,因此想学习H264的编码,当然这里面也有专业的原因。要想学习H264,第一部就是编译x264。如果你仅仅需要使用x264的话你可以到这下载:http://x264.nl/x264的源码下载地址:http://www.videolan.org/developers转载 2013-03-27 17:00:38 · 816 阅读 · 0 评论 -
x264 windows 下用vs2010 编译
在下是新手,在学习x264的时候都是使用的以前2009年左右的x264工程,有libx264的那个,想要更新最新的x264代码但是不会。我在请教了我身边的一位高手之后,整理了一下他使用新代码建立x264工程的过程,现在发上来给大家参考一下。在此感谢那位师兄,这都是他一步步探索出来的。 因为这个东西也是必须得在自己的电脑上一步步尝试,然后查错解决的,所以每个人在进行以下的方法和步骤时会转载 2013-03-17 16:13:15 · 1527 阅读 · 1 评论 -
I帧和IDR的区别
IDR(Instantaneous Decoding Refresh)--即时解码刷新。 I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由IDR转载 2013-03-09 20:20:50 · 1698 阅读 · 0 评论 -
x264运动估计宏块cost值的计算
转载于:http://blog.csdn.net/vblittleboy/article/details/8139486一、 x264运动估计中宏块的位移cost计算:/* lambda = pow(2,qp/6-2) */const byte x264_lambda_tab[52] = { 1, 1, 1, 1, 1, 1, 1, 1, /* 0-7 */ 1转载 2013-04-22 11:45:38 · 802 阅读 · 0 评论 -
x264 分像素的运动估计总结
转载于:http://blog.csdn.net/vblittleboy/article/details/8125042(1) static uint8_t *get_ref( uint8_t *src[4], int i_src_stride, uint8_t *dst, int * i_dst_stride,转载 2013-04-22 11:47:27 · 823 阅读 · 0 评论 -
x264编译之后,对码流压缩
两种方法:1. 在命令行中输入:x264 -o xxx.264 xxx.yuv 352x288.可以输入:x264 --help,查看形式2.在VS中添加正确路径和参数。1)属性-常规-输出目录,选择.exe的文件夹。2).exe的文件输出路径在:属性-连接器-常规-输出文件。3)属性-调试-命令参数,输入 -o xxx.264 xxx.yuv 352x288. 同时,把工原创 2013-04-16 21:05:32 · 724 阅读 · 0 评论 -
x264 关于plane[0] 和 x264_picture_alloc
今天试着动了一下手,发现对plane[0]是不是已经分配好内存了搞不清,翻开代码看了一下: /* Colorspace type (色彩空间类型) */#define X264_CSP_MASK 0x00ff /* */#define X264_CSP_NONE 0x0000 /* Invalid mode转载 2013-04-24 19:36:01 · 1841 阅读 · 0 评论 -
x264使用小技巧
最近在研究x264,在這邊把一些研究心得分享給大家。x264是一套基於H.264/AVC編碼標準的編碼器(codec),因為他免費、open source、壓縮律佳,所以獲得業界喜愛。目前x264是由VideoLAN維護,網站提供原始下載。但有個非官方的網站有更精簡的整理:x264.nlx264.nl提供x264各種版本的執行檔,同時提供source code的git path 如转载 2013-04-23 15:21:24 · 833 阅读 · 0 评论