当前位置:网站首页>Analysis of h264nalu head
Analysis of h264nalu head
2020-11-09 16:06:00 【Zhu Zilong 2018】
One NALU Head analysis
F: forbidden_zero_bit. stay H.264 It is stipulated in the specification that this person must be 0. NRI: nal_ref_idc. take 00~11, It seems to indicate this NALU Importance , Such as 00 Of NALU The decoder can discard it without affecting the playback of the image ,0~3, The larger the value , At present NAL The more important , Need to be protected first . If at present NAL It's a piece of reference frame , Or a sequence parameter set , Or the important units of the image parameter set , This syntactic element must be greater than 0. Type: identification NAL In the cell RBSP data type , among ,nal_unit_type by 1, 2, 3, 4, 5 Of NAL The unit is called VCL Of NAL unit , Other types NAL Unit is not VCL Of NAL unit . Two NALU Type analysis nalu type Calculation method of
At the beginning of each frame (00 00 00 01) And then I got nalu Head code A byte
Use this formula to calculate nalutype :int type = code & 0x1fnalu type
nal_unit_type. This NALU The type of unit ,1~12 from H.264 Use ,24~31 from H.264 For applications other than , The brief is as follows :0 No definition
1-23 NAL unit Single NAL Unit package
1 No zoning , Not IDR The film of the image
2 Slice partition A
3 Slice partition B
4 Slice partition C
5 IDR The film in the image
6 Supplementary enhanced information unit (SEI)
7 SPS
8 PPS
9 End of sequence
10 End of sequence
11 End of stream
12 fill
13-23 Retain 24 STAP-A A single time combination package
25 STAP-B A single time combination package
26 MTAP16 Multiple time packages
27 MTAP24 Multiple time packages
28 FU-A Sliced units
29 FU-B Sliced units
30-31 No definition
Common data frames
Sequence parameter set SPS----7:
SPS namely Sequence Paramater Set SPS A set of encoded video sequences is stored in (Coded video sequence) Global parameters of . The so-called encoded video sequence is the sequence composed of the pixel data of the original video frame by frame after being encoded . The parameters of the encoded data of each frame are saved in the image parameter set . General situation SPS and PPS Of NAL Unit Usually at the beginning of the whole stream . But in some special cases , These two structures may also appear in the middle of the code stream , The main reason may be : 1: The decoder needs to start decoding in the middle of the stream ; 2: The encoder changes the parameters of the code stream in the process of encoding ( Such as image resolution );
Image parameter set PPS----8:
Except for the sequence parameter set SPS outside ,H.264 Another important parameter set in is image parameter set Picture Paramater Set(PPS). Usually ,PPS Be similar to SPS, stay H.264 A single bitstream is stored in a single stream NAL Unit in , It's just PPS NAL Unit Of nal_unit_type The value is 8; In the package format ,PPS Usually with SPS Together , Save in the header of the video file .
Keyframes IDR frame ----5:
I Frames represent keyframes , You can understand it as a complete preservation of this frame ; Decoding only needs the frame data to complete ( Because it contains the whole picture )
P frame ----1:
P The frame represents this frame and the previous keyframe ( or P frame ) The difference between , In decoding, the difference defined in this frame needs to be superimposed on the previous cached picture , Generate the final picture .( That's the difference frame ,P Frame has no full picture data , Only data different from the previous frame )
3、 ... and Reference code
h264nalu Head analysis can refer to ffmpeg Source code h264_parser.c Of parse_nal_units function
版权声明
本文为[Zhu Zilong 2018]所创,转载请带上原文链接,感谢
边栏推荐
- The internal network penetration of raspberry is built and maintained. No server is required for intranet penetration
- EMQ X 在中国建设银行物联网平台中的应用EMQ X 在中国建设银行物联网平台中的应用
- . net report builder stimulsoft Reports.Net Release the latest version of v2020.5!
- 高德全链路压测——语料智能化演进之路
- 标梵IPFS矿机app软件开发软件 IPFSApp开发方法详解
- I do digital transformation in traditional industries (1)
- 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:王健
- Set two ways of background image, and solve the mobile phone background image highly adaptive problem
- 高质量的缺陷分析:让自己少写 bug
- Openyurt in depth interpretation: how to build kubernetes native cloud edge efficient collaborative network?
猜你喜欢
高德全链路压测——语料智能化演进之路
Simple use of AE (after effects)
Programmers before and after buying a house, after reading has cried blind
Cad2016 software installation tutorial
The selection of wire displacement encoder needs the guidance of precise electronics
[operation and maintenance thinking] how to do a good job in cloud operation and maintenance services?
CCF BDCI hot topic: privacy information recognition in unstructured business text information
A quick start to Shell Scripting
【分享】接口测试如何在post请求中传递文件
5 minutes get I use GitHub's 5-year summary of these operations!
随机推荐
我在传统行业做数字化转型(1)预告篇
H264Nalu头部解析
What is website [new four modernizations]?
How to use Camtasia to make dynamic animation scene?
[operation and maintenance thinking] how to do a good job in cloud operation and maintenance services?
「代码整洁之道-程序员的职业素养」读书笔记
高德全链路压测——语料智能化演进之路
What kind of experience does a doctor have when he turns his secret love brother into a husband?
我叫Mongo,收了「查询基础篇」,值得你拥有
堆重启_uaf_hacknote
一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
高质量的缺陷分析:让自己少写 bug
JS design pattern
echart 设置柱子之间的间距
MES系统在行业应用里区别于传统式管理
5分钟GET我使用Github 5 年总结的这些骚操作!
Explore cache configuration of Android gradle plug-in
程序员过高工资导致加班?应该降低程序员工资?网友:放过其他苦逼的程序员吧
In depth analysis of the multi-user shopping mall system from search to create a profit point
.NET报表生成器Stimulsoft Reports.Net 发布最新版v2020.5!