- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
H264 帧边界识别简介
在 Symbian 平台上实现 H264 的 RTSP 流的播放原文:
/asddg67/archive/2009/03/23/4017251.
aspx 在 Symbian 平台上实现 H264 的 RTSP 流的播放
/linzhiji/archive/2010/02/24/5323622.as
px H264 的数据读取最关键的地方就是如何识别一帧,因为
ffmpeg 的 H264 解码是按照一帧一帧解码的, 如果送去解码
的数据不是完整的一帧可能导致解码失败或者产生马赛克
的情况。 以下是我在一个文档中摘取关于帧边界识别的一
段,可以方便的解决相关的问题: 帧边界识别简介 H.264 将
构成一帧图像所有 nalu 的集合称为一个 AU ,帧边界识别实
际上就是识别 AU 。因为 H.264 取消帧级语法,所以无法简
单地从码流中获取 AU 。解码器只有在解码的过程中,通过
某些语法元素的组合才能判断一帧图像是否结束。一般来说,
解码器必须在完成一帧新图像的第一个 slice_header 语法
解码之后,才能知道前一帧图像已经结束。因此,最严谨的
AU
识别步骤如下:步骤
1 对码流实施“去
03
处理”。步骤
2 解析
nalu
语法。步骤
3 解析
slice_header
语法。步骤
4
综合判断前后两个
nalu
以及对应的
slice_header
中的若干
个语法元素,看是否发生变化。如果发生变化,则说明这两
个 nalu 属于不同的帧,否则说明这两个 nalu 属于同一帧。
结束显然,在解码前完成上述的AU 识别消耗许多 CPU
资源,因此不推荐使用 AU 方式解码为了提供一种简单的
AU 识别方案, H.264 规定一种类型为 09 的 nalu ,即编码器在每次完成一个 AU 编码后,在码流中插入一个类型为 09
的 nalu ,在这个前提下,解码器只需要从码流中搜索类型为
09 的 nalu 即可获得一个 AU 。H.264 并不强制要求编码器
插入类型为 09 的 nalu ,因此并非所有的码流都具备这种特
征。对于编码器和解码器协同工作的应用场景,建议让编码
器插入类型为 09 的 nalu ,这样可以降低解码器识别 AU 的
代价。为了降低解码器在解码前识别 AU 的代价,本文提出
一种高效的 AU 识别方法, 其主要思路是利用一帧图像的第
一个 slice_header 中的语法元素 first_mb_in_slice 一般等
于 0 这个特征(对于包含 ASO 或者 FMO 特性的码流,这个条件不一定成立) 。 view plaincopy to clipboardprint? typedef struct ParseContext{
unsigned int FrameStartFound;
unsigned int iFrameLength;
} ParseContext;
signed int DecLoadAU(unsigned char* pStream, unsigned int iStreamLen, ParseContext *pc)
{
unsigned int i;
unsigned int state = 0xffffffff;
if( NULL == pStream )
{
return -1;
}
for( i = 0; i lt; iStreamLen; i++)
{
/* 查找 nal 类型为 1 和 5 的 nal 头 */
if( (state amp; 0xFFFFFF1F) == 0x101 || (state amp; 0xFFFFFF1F) == 0x105 )
{
if (i gt;= iStreamLen) /* 到达 Buffer 尾部,
退出查找循环 */
{
break;
}if( pStream[i] amp; 0x80) /* 查找
first_mb_in_slice 为 0 的
slice 头确定
一幅图像的开始 */
{
if(pc-gt;FrameStartFound) /* 查找
到下一幅图像的开始就可以确
定图像
的起始和结束 */
{
pc-gt;iFrameLength = i - 4;
pc-gt;FrameStartFound = 0;
state = 0xffffffff;
return 0; /* 找到一幅图像的边
界返回 0 */
}
else
{
pc-gt;FrameStartFound = 1;
}
}
}
if (i lt; iStreamLen)
{
state = (state lt;lt
您可能关注的文档
- (5)对胆汁起作用的中药.doc
- (8)在VB中实现延时(等待)的几种方法.doc
- (pep)人教版小学英语3-6年级的常用表达法.doc
- 、y染色体的“同源区段与非同源区段”.doc
- 、最全英语四级高频词汇.doc
- [高中作文]2017年山东高考作文题目:材料作文24小时书店.doc
- [高中作文]2019高考全国一卷高考作文题目:提倡劳动的演讲稿.doc
- [高中作文]2019山东高考作文题出炉:写演讲稿,你会写些什么…附:近年山东省高考作文题.doc
- [高中作文]2019陕西高考作文点评丨作文审题无障碍写好须有“四个意识”.doc
- [高中作文]保留传统文化高中作文.doc
- IELTS雅思口语话题库PART1(81个)+PART2(100个).doc
- KV和以下电力工程施工组织设计.doc
- LEED金奖、绿色建筑二星级认证和绿色施工的方案.doc
- LOGO=招牌?如何做出新颖独特的logo.doc
- Maxim工业超声波应用的高电压需要.doc
- MES系统解决的方案设计-C2.doc
- MWp光伏发电项目线路施工组织设计.doc
- myeclipseservers视窗出现couldnotcreatetheviewanunexpectedexceptionwasthrown错误解决办法.doc
- NCCN食管癌和食管胃结合部癌指南2017年更新汇总.doc
- NTJ―45型浓密机集电装置改造.doc
最近下载
- 无人机组装调试与检修-第一章-无人机系统概述.pptx VIP
- 卫星定位导航原理(哈尔滨工业大学)知到智慧树网课答案.docx
- T_CEIAESD 1005—2022_防静电不发火地坪施工与质量验收规范.pdf VIP
- 2021-2022年度广东省茂名市茂南区聘任制教师招聘考试《教育综合知识》试卷及答案.pdf VIP
- 入党积极分子结业考试最新复习资料.doc VIP
- _景区门票收费权质押贷款评估案例.pdf VIP
- 2024年入党积极分子培训测试题及答案简答题、论述题.docx VIP
- AI赋能教师专题培训:AI生成式人工智能赋能教育高质量发展.pptx VIP
- 《即兴伴奏与弹唱2》课件——幼儿歌曲钢琴伴奏中小调式副三和弦的应用.pptx VIP
- 2024学年江苏省南京市高二上学期期中考数学试题及答案 .pdf VIP
原创力文档


文档评论(0)