H264和Mpeg4
来源:互联网 发布:今日龙虎榜数据 编辑:程序博客网 时间:2024/05/29 08:36
1. H.264起始码
在网络传输h264数据时,一个UDP包就是一个NALU,解码器可以很方便的检测出NAL分界和解码。但是如果编码数据存储为一个文件,原来的解码器将无法从数据流中分别出每个NAL的起始位置和终止位置,为此h.264用起始码来解决这一问题。
H.264编码时,在每个NAL前添加起始码 0x000001,解码器在码流中检测到起始码,当前NAL结束。为了防止NAL内部出现0x000001的数据,h.264又提出'防止竞争 emulation prevention"机制,在编码完一个NAL时,如果检测出有连续两个0x00字节,就在后面插入一个0x03。当解码器在NAL内部检测到0x000003的数据,就把0x03抛弃,恢复原始数据。
0x000000 >>>>>> 0x00000300
0x000001 >>>>>> 0x00000301
0x000002 >>>>>> 0x00000302
0x000003 >>>>>> 0x00000303
2. MPEG4起始码
MPEG4的特色是VOP,没有NALU的概念,仍使用startcode对每帧进行分界。MPEG4的起始码是0x000001. 另外MPEG4中很多起始码也很有用,比如video_object_sequence_start_code 0x000001B0 表示一个视频对象序列的开始,VO_start_code 0x000001B6 表示一个VOP的开始. 0x000001B6之后的两位,是00表示 I frame, 01 表示 P frame, 10 表示 B frame.
VCL video coding layer 视频编码层
NAL network abstraction layer 网络提取层
NALU头结构:NALU类型(5bit)、重要性指示位(2bit)、禁止位(1bit)。
NALU类型:1~12由H.264使用,24~31由H.264以外的应用使用。
检测NAL的开始:
0X000001和0X000000
我们必须考虑当NAL内部出现了0X000001和0X000000
解决方案:
H.264提出了“防止竞争”机制:
0X000000——0X00000300
- H264和Mpeg4
- H264和MPEG4起始码(startcode)
- h264和mpeg4的起始码
- 【术语解析】H264和MPEG4的关系
- H264和MPEG4起始码(startcode)
- H264和MPEG4起始码(startcode)
- MPEG4 VS H264
- MPEG4、H263、H264比较
- MPEG2 & MPEG4 & H264简介
- MPEG4、H263、H264
- 一本关于h264和mpeg4的电子书(英文的)
- MPEG4 MP4和AVC H264 MP4有什么不同
- H263、H264和3GPP、MPEG4是什么关系
- H263/H264/MPEG4及其差别
- MPEG2、MPEG4、H264的差异
- MPEG2、MPEG4、H264的差异
- MPEG2、MPEG4、H264的差异
- MPEG2、MPEG4、H264的差异
- Mapreduce计算框架涉及的技术(1)-从单节点单进程到多节点多进程
- WEB集群与负载均衡
- HTML标签列表(按照功能分类)
- File/Directory Permission in Unix/Linux
- Android 架构图
- H264和Mpeg4
- Android开发指南(33) —— Multimedia and Camera - Camera
- 线性布局中的layout_gravity
- LeetCode | Implement strStr()
- hdu1058
- LeetCode-Valid Parentheses
- ScriptManager和UpdatePanel控件的使用(UpdatePanel局部刷新)
- Combobox default 选中
- C3P0下Mysql8小时问题