
h264
文章平均质量分 75
NBA_1
这个作者很懒,什么都没留下…
展开
-
哈夫曼编码(Huffman Coding)多图详细解析
哈夫曼编码哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础。假如我们需要将字符串ABBBCCCCCCCCDDDDDDEE通过二进制编码进行传输,那应该怎么将字符转换为二进制码?方法一:转换为ASCII码直接将字母转换为对应的ASCII码数字,再将ASCII码转换为对应的二进制码字母 ASCII码 二进制码A 65 100 0001B 66 100 0010C 67 100 0011D 68 100 0100E 69 100 0101显然这样的方式使得二进制码变得很长。方法二:事先约转载 2022-05-15 16:35:53 · 21602 阅读 · 5 评论 -
哈夫曼编码
目录一、哈夫曼编码的由来二、构造哈夫曼编码的方法三、哈夫曼编码的构造实例四、哈夫曼编码的性质五、哈夫曼编码的算法实现六、哈夫曼编码的应用举例——文件的编码和解码一、哈夫曼编码的由来1、在远程通讯中,要将待传字符转换成由二进制的字符串如下图所示:如上图所示若将每个字符都用同样位数的二进制数来表示的话会产生浪费。但如果将编码设计为长度不等的二进制编码,即让待传字符串中出现次数较多的字符采用尽可能短的编码,则转换的二进制字符串便可能减少。如下图所示:而哈夫曼编码刚好满足前缀编码的要求,并却转载 2022-05-15 16:23:23 · 3900 阅读 · 0 评论 -
一文搞懂H264量化原理以及计算过程
1.概述量化是使数据比特率下降的有效工具。量化过程的输入值动态范围很大,需要较多的比特才能表示一个数值,量化后的输出则只需要较小比特表示。量化是不可逆过程,处理过程中有信息丢失,存在量化误差。H.264采用标量量化技术,它将每个图像样点编码映射成较小的数值。一般标量量化器的原理为:F Q = r o u n d ( y / Q P ) FQ=round(y/QP)FQ=round(y/QP)其中,y 为输入样本点编码,QP 为量化步长,FQ 为 y 的量化值,round()为取整函数(其输出为与输转载 2022-05-14 14:06:37 · 2893 阅读 · 0 评论 -
h264视频流,aac音频流(g711a转码)推送至rtmp服务器
这篇博客是写给新手的,我就不介绍rtmp流的格式了,因为是直接使用rtmp的库的,rtmp的格式对我的程序没有什么影响。对于h264视频流和aac音频格式简要的介绍一下。h264视频格式:下图是h264的视频序列,但是这样描述的不太好(对我而言)sps pps I 帧 B帧 ……P帧sps pps I 帧 B帧 ……P帧sps pps I 帧 B帧 ……P帧就像上面一样,只不过B帧和...转载 2020-04-20 11:41:29 · 1193 阅读 · 2 评论 -
h264的帧内预测plane模式算法分析
根据h264标准,16x16块plane模式的预测过程如下所示:上述公式标准中没有解释原理,网上也找不到相关资料。所以自己花了点时间分析了它,记录一下结果。仔细观察上面式子可以看到,H和V 代表了水平方向和垂直方向的梯度,b,c是H,V的缩放,其中+32是为了做到四舍五入。a代表了右上像素和坐下像素的均值。对这些值进行缩放和移位操作,是为了避免除法,下面会有更详细的说明。宏块最中间的像素...转载 2019-11-04 16:40:30 · 1041 阅读 · 0 评论 -
H264编码总结
在目前,无论在各个行只要和视频相关的,我们都可以看见H264相关的身影,H264作为目前使用最广泛的视频压缩标准,随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究。但是,为了在别的开发者面前更好的装逼,有必要了解一下H264的基本原理和一些常见的概念。那么H264有多厉害?H.264: H.264/AVC项目的目的是为了创建一个比以...转载 2019-11-03 14:43:37 · 1096 阅读 · 0 评论 -
【H264/AVC 句法和语义详解】(五):Exp-Golomb指数哥伦布编码(理论篇)
本篇隶属于文集:《H264/AVC 句法和语义详解》,查看文集全部文章,请点击文字链接。想看最新文章,可以直接关注微信公众号:金架构上篇我们说过,学习描述子是解析h264句法元素的第一步。而在描述子中,除了顺序读取若干比特的b(8)、f(n)、i(n)、u(n),指数哥伦布编码也是使用频率很高的编解码方法。因为指数哥伦布编码(Exponential-Golomb)属于熵编码(Entropy ...转载 2019-10-18 22:09:21 · 296 阅读 · 0 评论 -
【H264/AVC 句法和语义详解】(四):通过学习"描述子"实现码流解析的第一步
本篇隶属于文集:《H264/AVC 句法和语义详解》,查看文集全部文章,请点击文字链接。想看最新文章,可以直接关注微信公众号:金架构在这篇文章中,我们会涉及三个非常重要的问题:1、如何获取一条主线和多条辅线,来学习h264解码器2、为什么描述子,是正确打开码流解析的第一步3、学习描述子在前面几篇中,我们对h264的码流结构有了初步的了解。但是这还远远不够,因为我们的目标,是通过学习h2...转载 2019-10-18 21:26:59 · 183 阅读 · 0 评论 -
【H264/AVC 句法和语义详解】(三):NALU详解二(EBSP、RBSP与SODB)
本篇隶属于文集:《H264/AVC 句法和语义详解》,查看文集全部文章,请点击文字链接。想看最新文章,可以直接关注微信公众号:金架构上一篇解析到,我们从h264裸流中,提取出一个个的NALU,并且解析出NALU的第一个字节:NALU Header。下面我们就从NALU Header的下一个字节开始,分析NALU剩余的数据部分,也即NALU的主体部分。NALU的主体涉及到三个重要的名词,分别为...转载 2019-10-18 21:20:26 · 302 阅读 · 0 评论 -
H.264标准----概念和定义
访问单元:一系列NAL单元,包含一个primary coded picture,也可以包含一系列redundant coded pictures和一个auxiliary coded picture。 逐行扫描:每个frame进行frame coding隔行扫描:每个frame可以选择frame coding还是field coding inter预测的direct...转载 2019-10-18 11:15:52 · 732 阅读 · 0 评论 -
ffplay能播放http-flv视频flv.js报错无法播放视频的问题
之前公司测试推流的flv能播放,但是app上手机直播出来的流地址,在pc端上就不能用,报错,我刚入行不就,所以不能找到问题所在,后端一直让我用电脑上的播放器试,说播放器能用,就说明没问题,可是我还是不相信,望大神帮忙看下,如下为报错的内容以及截图:[MSEController] > Received Initialization Segment, mimeType: video/mp4;c...原创 2019-02-12 21:37:46 · 5922 阅读 · 5 评论 -
Intra Luma Prediction
转自https://www.cnblogs.com/TaigaCon/p/4190806.html在宏块的帧内预测过程中,有四种宏块类型:I_4x4,I_8x8,I16x16,I_PCM。他们都需要在相邻块做去块滤波之前进行帧内预测。亮度帧内预测的总体流程1-4获取当前block的帧内预测模式的预测,5-7获得最佳预测模式并对应预测模式的预测做后续处理首先需要获得当前4x4(8x8)预测块...转载 2019-02-12 11:04:09 · 297 阅读 · 0 评论 -
从ffmpeg中抓取mv/mb_type/dct_coeff/qp和MBSize等数据(H.264)
转自https://blog.youkuaiyun.com/ricky90/article/details/79436422 ffmpeg是一个很复杂的库,在我看来,比JM要复杂很多,刨除其包含各种编解码方案,算法的全面性,以及其各种平台的汇编优化等因素,其运行逻辑结构和函数之间的调用关系等都要复杂很多。今天我们不泛泛而谈,来点干货,看看如何从ffmpeg中提取标题中所涉及到的这些编解码过程中的中间...转载 2019-01-29 11:20:34 · 1252 阅读 · 0 评论 -
H264结构
前言建议先看一下FFmpeg3的iOS版的入门格式转换器(无编码),我们可以了解H264处于编解码层。为什么需要编码呢?比如当前屏幕是1280*720.一秒24张图片.那么我们一秒的视频数据是11280*720(位像素)*24(张) / 8(1字节8位)(结果:B) / 1024(结果:KB) / 1024 (结果:MB) = 2.64MB一秒的数据有2.64MB数据量。1分钟就会有100多MB...转载 2018-05-03 15:45:34 · 277 阅读 · 0 评论 -
使用FFMPEG类库分离出多媒体文件中的H.264码流(ffmpeg 从mp4上提取H264的nalu)-应用篇
转自https://blog.youkuaiyun.com/leixiaohua1020/article/details/11800877在使用FFMPEG的类库进行编程的过程中,可以直接输出解复用之后的的视频数据码流。只需要在每次调用av_read_frame()之后将得到的视频的AVPacket存为本地文件即可。经试验,在分离MPEG2码流的时候,直接存储AVPacket即可。在分离H.264码流的时候,...转载 2018-05-19 12:25:59 · 406 阅读 · 0 评论 -
使用FFMPEG类库分离出多媒体文件中的H.264码流(ffmpeg 从mp4上提取H264的nalu)-原理篇
转自https://www.cnblogs.com/nsnow/p/3862709.html1.获取数据ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也没有储存0x00000001的分隔符。下面这张图为packet.data中的数据从图中可以发现,packet中的数据起始处没有分隔符(0x00000001), 也不是0x65、0x67、0x68、0x41等字节,所以可以肯定...转载 2018-05-19 12:27:15 · 544 阅读 · 0 评论 -
FFMPEG操作内存
转自http://www.latelee.org/my-study/ffmpeg-memory-transcoder2.html我在6月份写了篇文章《FFMPEG基于内存的转码实例》,讲如何把视频转码后放到内存,然后通过网络发送出去。但该文章只完成了一半,即输入的数据依然是从磁盘文件中读取。在实际应用中,有很多数据是放到内存的,比如播放从服务器接收到的视频,就是在内存中的。时隔2个月,项目终于完成...转载 2018-05-08 18:09:33 · 753 阅读 · 0 评论 -
H264码流中SPS PPS详解
转自https://zhuanlan.zhihu.com/p/278962391 SPS和PPS从何处而来?2 SPS和PPS中的每个参数起什么作用?3 如何解析SDP中包含的H.264的SPS和PPS串?1 客户端抓包在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示:在这里我们可以看到对解码视频起关键作用的SPS和PPS。双击SPS内容如下:双击...转载 2018-06-05 10:11:44 · 528 阅读 · 0 评论 -
H.264源代码分析文章列表:
H.264源代码分析文章列表:【编码 - x264】x264源代码简单分析:概述x264源代码简单分析:x264命令行工具(x264.exe)x264源代码简单分析:编码器主干部分-1x264源代码简单分析:编码器主干部分-2x264源代码简单分析:x264_slice_write()x264源代码简单分析:滤波(Filter)部分x264源代码简单分析:宏块分析(...转载 2018-12-06 17:02:48 · 200 阅读 · 0 评论 -
H264基本原理
转自https://blog.youkuaiyun.com/garrylea/article/details/78536775前言H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H264的基本原理弄清...转载 2019-01-02 11:26:13 · 243 阅读 · 0 评论 -
H.264 White Paper学习笔记(二)帧内预测
转自https://www.cnblogs.com/charybdis/p/6049108.html为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色。而进行视频编码,目的就是利用这个相关性,来进行压缩。很好理解,存储一个像素的亮度值可能需要8个bit,但是如果相邻的两个像素变化不大,我...转载 2019-01-02 14:59:33 · 290 阅读 · 0 评论 -
H.264 White Paper学习笔记(一)总览
转自https://www.cnblogs.com/charybdis/p/6048465.htmlH.264 White Paper对于264编码器的原理讲的比较透彻,在阅读学习的时候收获很大,这份文献网上有很多了,也有不少人翻译,不过想要理解更清楚我觉得还是得看英文原版的。首先看一下白皮书里给的编码器的流程图和解码器的流程图很明显可以看出编码器是包含解码器的,这是因为编码的...转载 2019-01-02 15:17:40 · 437 阅读 · 0 评论 -
Golomb及指数哥伦布编码原理介绍及实现
转自https://www.cnblogs.com/wangguchangqing/p/6297792.html#autoid-3-1-02017年的第一篇博文。本文主要有以下三部分内容:介绍了Golomb编码,及其两个变种:Golomb-Rice和Exp-Golomb的基本原理 C++实现了一个简单的BitStream库,能够方便在bit流和byte数字之间进行转换 C++实现了...转载 2019-01-28 11:26:48 · 768 阅读 · 0 评论 -
H264结构
前言建议先看一下FFmpeg3的iOS版的入门格式转换器(无编码),我们可以了解H264处于编解码层。为什么需要编码呢?比如当前屏幕是1280*720.一秒24张图片.那么我们一秒的视频数据是11280*720(位像素)*24(张) / 8(1字节8位)(结果:B) / 1024(结果:KB) / 1024 (结果:MB) = 2.64MB一秒的数据有2.64MB数据量。1分钟就会有100多MB...转载 2018-05-02 21:19:28 · 794 阅读 · 0 评论