
H264
文章平均质量分 90
taotao830
这个作者很懒,什么都没留下…
展开
-
【编解码】从零开始写H264解码器(7) SEI解析
1. 引言解析完了SPS和PPS,按照NAL type,下一个可以介绍SEI。不过SEI在码流不是必须的,重要性并没有SPS,PPS,slice那么高。解析方式也很简单,都没有用熵编码。先开一章简单记录一下即可。2. SEI 是什么?SEI: 补充增强信息(Supplemental Enhancement Information)个人感觉就是当用户:想在码流里传输一些自己的数据流,属于自有协议,未在H264协议中明确规定协议的数据流,或者是传输H264规定的一些增强信息但不是必须信息的数原创 2022-05-08 10:40:47 · 2861 阅读 · 1 评论 -
【编解码】从零开始写H264解码器(6) PPS解析-参数含义,伪代码解析
1. 引言搞完了SPS,接下来就是PPS了。PPS(picture parameter set)也是一份很重要的数据,会被很多slice参考到,里面的参数我们也需要很熟悉和理解。2. PPS翻到白皮书《Rec. ITU-T H.264 (03/2010) 46面。 章节 “7.3.2.2 Picture parameter set RBSP syntax”,可以看出来这个表不是非常长,参数有限,依然先上一个原版全家福。下面我们来挨个理解每个参数的作用。3. 参数解析pic_paramet原创 2022-05-06 22:12:14 · 1435 阅读 · 0 评论 -
【编解码】从零开始写H264解码器(5) SPS解析-参数含义,伪代码
1.引言前面我们学会了指数哥伦布解码,翻翻白皮书,依靠这个知识,基本上我们就能一口气解码完SPS,PPS,SEI,Slice Header了。接下来的重点就是,认真的看一下解码出来的每个参数的作用。这些参数在后续的计算YUV的过程中都会起到对应的作用。2. SPS...原创 2022-04-23 12:23:36 · 3210 阅读 · 0 评论 -
【编解码】从零开始写H264解码器(4) 熵编码之指数哥伦布编码
3. 熵编码在H264中,使用了预测编码,变换编码,熵编码等多种编码手段。其中,预测编码,变换编码等都作用于从YUV图转换成 白皮书中参数的过程,熵编码主要用于从这些参数转换成高效率的码流。那什么是熵编码?我们使用了哪几种熵编码?熵编码的编码和解码是怎么进行的?2.1 定义NALU header里的type将所有的NALU分为参数和数据两类。其中,参数类的重要性一般较高,因为一份参数可能会给多份数据使用,参数的值也是解析图像的一个先决条件,比如SPS,PPS等等。H264中,传输这个参数集原创 2022-04-09 20:21:51 · 2348 阅读 · 1 评论 -
【编解码】从零开始写H264解码器(3) 描述子
1. 引言在根据起始码找到NALU之后,我们可以根据NALU header里的type将所有的NALU分为参数和数据两类。其中,参数类的重要性一般较高,因为一份参数可能会给多份数据使用,参数的值也是解析图像的一个先决条件,比如SPS,PPS等等。H264中,传输这个参数集也是使用了熵编码来传输的,这里,我们需要了解熵编码中指数哥伦布编码的作用和流程,进而,才能解出这些参数集的数据。...原创 2022-03-27 12:01:23 · 939 阅读 · 0 评论 -
【编解码】从零开始写H264解码器(2) NALU
1. 引言从这一节开始,我们真正进入了解码的过程。相信很多人和我一样,刚开始的时候都会很好奇,为什么h264可以实现这么强大的压缩比,要知道,1张1080p的YUV420就是3MB,想实现1秒钟30帧,千兆网就基本跑满了,这也太可怕了,基本上只有条件很好的局域网才能达到这个水平。但是h264的出现把这个数据量降到了百分之一,2个数量级,这实在太可怕了,技术的发展真的是强大。其实h264编解码,就是从YUV文件和h264文件中相互转化的过程。不同的是,YUV数据量大,结构简单,适合在本地显示使用,h26原创 2022-03-12 20:13:01 · 5313 阅读 · 0 评论 -
【编解码】从零开始写H264解码器(1) 总纲
关于编解码的原理的书和文章自己一直在看,从入门到略懂,但是感觉有些零零碎碎,或不完整,似乎串不成体系。有些小功能,知道是知道,并不知道它的意义和作用,时间一长也会慢慢忘记。反思了一下,或许很多东西,还是需要自己动手做一遍,会理解的更深更透彻一些,就像费曼学习法,你能讲出来,才说明懂了,这个也一样,你能把功能实现出来,才说明你真的明白了里面的流程和逻辑。原创 2022-03-09 09:57:49 · 7670 阅读 · 1 评论