当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Kubernetes V1.19.3 kubeadm 部署笔记(中)
- 堆重启_uaf_hacknote
- H264Nalu头部解析
- 超简单集成华为系统完整性检测,搞定设备安全防护
- Two ways for Tencent cloud server to build WordPress website
- 5 minutes get I use GitHub's 5-year summary of these operations!
- 最新版PyCharm 2020.3 :可实现结对编程,智能文本校对等|附下载体验
- 你以为学编程很简单吗,其实它很难!你以为学编程很难吗,其实它很简单!
- [share] interface tests how to transfer files in post request
- Installation and testing of Flink
猜你喜欢
缓存的数据一致性
高德全链路压测——语料智能化演进之路
International top journal radiology published the latest joint results of Huawei cloud, AI assisted detection of cerebral aneurysms
[operation and maintenance thinking] how to do a good job in cloud operation and maintenance services?
什么是网站【新四化】?
Service registration and discovery of go micro integration Nacos
Using fastai to develop and deploy image classifier application
我叫Mongo,收了「查询基础篇」,值得你拥有
Talking about PHP file fragment upload from a requirement improvement
揭秘在召唤师峡谷中移动路径选择逻辑?
随机推荐
In depth analysis of the multi-user shopping mall system from search to create a profit point
使用基于GAN的过采样技术提高非平衡COVID-19死亡率预测的模型准确性
CCF BDCI hot topic: privacy information recognition in unstructured business text information
Kubernetes V1.19.3 kubeadm 部署笔记(中)
How to use Camtasia to make dynamic animation scene?
如何设计并实现存储QoS?
5 minutes get I use GitHub's 5-year summary of these operations!
你以为学编程很简单吗,其实它很难!你以为学编程很难吗,其实它很简单!
A quick start to Shell Scripting
SEO解决方案制定,如何脱离杯弓蛇影?
Method of conversion between JS character and ASCII code
HomeLede 2020.11.08 v5.4.72内核 UPnP+NAS+多拨+网盘+DNS优化+帕斯沃 无缝集成+软件包
Set two ways of background image, and solve the mobile phone background image highly adaptive problem
International top journal radiology published the latest joint results of Huawei cloud, AI assisted detection of cerebral aneurysms
5 minutes get I use GitHub's 5-year summary of these operations!
「代码整洁之道-程序员的职业素养」读书笔记
高德全链路压测——语料智能化演进之路
嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:王健
Two ways for Tencent cloud server to build WordPress website
Decision tree algorithm theory