当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Some common types of error exception in Python
- The worst hacker in history: stealing $1 billion of bitcoin without spending it for seven years, and finally being seized by the Department of justice
- Two ways for Tencent cloud server to build WordPress website
- 5 minutes get I use GitHub's 5-year summary of these operations!
- 深入探索 Android Gradle 插件的缓存配置
- Kubernetes V1.19.3 kubeadm 部署笔记(中)
- AutoCAD2020 完整版安装图文教程、注册激活破解方法
- Cad2016 software installation tutorial
- 如何设计并实现存储QoS?
- MES system plays an important role in the factory production management
猜你喜欢

高质量的缺陷分析:让自己少写 bug

In depth analysis of the multi-user shopping mall system from search to create a profit point

AUTOCAD2020安装包&安装教程

Cad2016 download autocad2016 download installation detailed tutorial CAD Download

How can you be a big data worker with an annual salary of 40W if you don't work hard?

使用Fastai开发和部署图像分类器应用

How to download and install autocad2020 in Chinese

谈谈敏捷开发概念和迭代开发方案

The technology masters who ride the wind and waves gather again | Tencent cloud TVP continues to sail

树莓派内网穿透建站与维护,使用内网穿透无需服务器
随机推荐
设置背景图片的两种方式,并解决手机端背景图片高度自适应问题
CAD2016下载AutoCAD2016下载安装详细教程CAD下载
EMQ X 在中国建设银行物联网平台中的应用EMQ X 在中国建设银行物联网平台中的应用
Chrome浏览器 js 关闭窗口失效解决方法
How to download and install autocad2020 in Chinese
Infrastructure testing based on chef inspec
Cad2016 download autocad2016 download installation detailed tutorial CAD Download
Service registration and discovery of go micro integration Nacos
I do digital transformation in traditional industries (1)
Guest interview: Wang Jian
全栈技术实践经历告诉你:开发一个商城小程序要多少钱?
CCF BDCI hot topic: privacy information recognition in unstructured business text information
Why is your money transferred? This article tells you the answer
浮点数之间的等值判断
高质量的缺陷分析:让自己少写 bug
Booker · apachecn programming / back end / big data / AI learning resources 2020.11
Equivalent judgment between floating point numbers
5分钟GET我使用Github 5 年总结的这些骚操作!
Serilog 源码解析——Sink 的实现
International top journal radiology published the latest joint results of Huawei cloud, AI assisted detection of cerebral aneurysms