H264编解码中的防止竞争机制
来源:互联网 发布:creo4数据交换 编辑:程序博客网 时间:2024/06/03 20:30
问题:h264流就是一个接一个的NAL组成,那么解码器如何在数据流中分辨每个NAL的起始和终止?
H264的解决方案: 在每个NAL前面添加起始码(3个字节): 0x00 00 01;此外,在某些类型的介质上,为了寻址方便,要求数据流在长度上对其,或必须是某个常数的倍数,考虑到这种情况,H264建议在起始码前添加若干字节的0来填充,直到该NAL的长度符合要求。在这样的机制下,解码器在码流中检测起始码,作为一个NAL的起始标识,当检测到下一个起始码时当前NAL结束。H264规定当检测到0x00 00 00时也可以表征当前NAL的结束,这时因为连着3个字节的0中,任何一个字节的0要么属于起始码,要么是起始码前面添加的0。
引入的问题:如果在NAL内部出现0x00 00 00 或者0x 00 00 01怎么办?而且这种可能性是很大的!
解决引入问题的方案:“防止竞争”机制
当编码器编码完一个NAL后,检查该NAL单元内部是否出现以下左侧的四个字节序列,如果存在,编码器将在最后一个字节前插入一个新的字节:0x03
从而使其变成右侧的样子,这样在NAL内部就不会出现0x00 00 00或者0x00 00 01了;然后解码器在NAL内部检测到0x00 00 03的序列时,将0x03丢弃,
恢复原始数据。
0x00 00 00 -----> 0x00 00 03 00
0x00 00 01 -----> 0x00 00 03 01
0x00 00 02 -----> 0x00 00 03 02
0x00 00 03 -----> 0x00 00 03 03
0x00 00 02是做保留用,0x00 00 03是为了避免原始数据中0x00 00 03序列。
0 0
- H264编解码中的防止竞争机制
- h264视频编解码
- h264编解码相关
- H264 编解码知识
- H264编解码原理
- H264编解码算法在网络视频传输中的应用
- H264 编解码框架简介
- H264 编解码框架简介
- H264 编解码框架简介
- H264 编解码框架简介 .
- H264 编解码框架简介
- h264编解码结构框图
- WEBRTC 支持H264编解码
- WEBRTC 支持H264编解码
- H264编解码框架介绍
- H264编解码框架简介
- symbian s60平台的H264编解码
- H264 编解码体验 (一)
- P1029 最大公约数和最小公倍数问题
- 技术人员应对「考核」的一些思考
- 1216: [HNOI2003]操作系统
- KMP算法详解
- UVa-11039 Building designing
- H264编解码中的防止竞争机制
- 小笔记-区分TCP连接中半打开连接和半关闭连接
- 翻转单词顺序
- Android使用OKHttp3实现下载(断点续传、显示进度)
- InfoHunter —— 本校招聘宣讲会信息的webapp
- html5中的localStorage缓存
- Android view动画
- 1030.Travel Plan (30)
- PHPExcel