[发明专利]一种音视频解码方法有效
| 申请号: | 200710116509.2 | 申请日: | 2007-12-27 |
| 公开(公告)号: | CN101217660A | 公开(公告)日: | 2008-07-09 |
| 发明(设计)人: | 刘微;钟明辉;裴雷 | 申请(专利权)人: | 海信集团有限公司 |
| 主分类号: | H04N7/26 | 分类号: | H04N7/26;H03M7/30 |
| 代理公司: | 青岛联智专利商标事务所有限公司 | 代理人: | 邵新华 |
| 地址: | 266100山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 视频 解码 方法 | ||
技术领域
本发明属于数字音视频编解码技术领域,具体地说,是涉及一种在解码过程中快速寻找起始码的音视频解码方法。
背景技术
在数字音视频编解码技术标准AVS、通用视听业务的先进视频编码H.264及动态图像专家组MPEG等视频编解码标准中,其视频流结构组成都是一个视频序列(也称为图像序列),如图1所示。其中有许多幅图像,在一幅图像中有多个条带,在序列中还有一些扩展信息。在解码的过程中需要分段获得各部分相关信息,而起始码是分离各信息段的一个标志。音视频解码时先寻找相关的起始码,然后读取所需信息,直到信息尾,也就是达到一个新的起始码。而起始码通常是由起始码前缀加上起始码值来构成,比如在目前的音视频编解码标准中常见的起始码都是采用一个三字节的起始码前缀0x000001加上一个字节的起始码值构成的。这样,寻找起始码问题就转化为寻找起始码前缀的问题。
如上所述,AVS、H.264及MPEG的音视频流是以起始码来分割各段信息的,解码之前,必须先分段读取所需信息。传统的方法是逐字节进行判断,看当前字节及其后面N-1个字节是否组成了起始码前缀。找到起始码前缀后,再读取起始码前缀后面一个字节的起始码值,就得到了相应的起始码。但是,由于图像帧数据量大,嵌入式系统的片内内存有限,数据存放在片外存储器上,寻找起始码也在片外存储器上操作,速度较慢,逐字节判断起始码的方法耗时较大。当解码部分优化良好时,寻找起始码会成为解码过程的瓶颈。
发明内容
本发明针对现有技术中音视频解码过程中寻找起始码操作耗时较大的技术问题,提供了一种可快速寻找起始码的音视频解码方法,有效地提高了音视频流中信息获取的速度和效率。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种音视频解码方法,包括寻找起始码的过程,所述起始码由N个字节的起始码前缀加上起始码值构成,所述起始码前缀各字节所有取值的集合为Q,所述N为自然数,其特征在于,所述寻找起始码的过程是以N个字节为周期对音视频流进行搜索判断,以寻找起始码前缀的过程。
具体来讲,在所述寻找起始码的过程中,包括以下步骤:
a、以N个字节为周期,判断当前字节值的大小;
b、如果当前字节值属于集合Q,则进入具体的起始码前缀的判断过程;否则转入下一周期N个字节的判断过程。
其中,在所述具体的起始码前缀判断过程中包括下述覆盖性判断过程:
b1、定义一个内部偏移量k,k的初值为1;
b2、判断当前字节前面第k个字节值与当前字节后面第N-k个字节值中是否至少有一个属于集合Q,若是,则执行步骤b3;否则,转入下一周期N个字节的判断过程;
b3、内部偏移量k值加1;
b4、判断k值是否小于N,若是,转至步骤b2;否则,执行逐字节判断起始码前缀的过程。
进一步的,所述逐字节判断起始码前缀的过程包括N次逐字节判断包含当前字节在内的连续排列的N个字节值是否分别等于起始码前缀相应的N个字节的值,若有一次逐字节判断成立,则判定包含当前字节在内的N个字节构成起始码前缀;若所有N次逐字节判断都不成立,则判定包含当前字节在内连续排列的N个字节不构成起始码前缀。由于构成起始码前缀的N个字节可能是从当前字节开始,也可能是从当前字节的前面某个字节或者其后面某个字节开始,故需要逐字节判断N次,保证把所有可能的情况都进行判断。在进行逐字节判断时,首先确定缓冲区内可能构成起始码前缀的N个字节的位置,然后分别将这N个字节值按顺序与已知的起始码前缀的N个字节进行比较,即缓冲区内的N个字节中的第一个字节值与已知的起始码前缀的第一个字节值比较,缓冲区内的N个字节中的第二个字节值与已知的起始码前缀的第二个字节值比较,直至比较至最后一个字节值。
更进一步的,所述起始码前缀包括三个字节,具体为0x000001;在以三个字节为周期对起始码前缀进行判断的过程中,若当前字节值小于等于1,则进入具体的起始码前缀判断过程;否则,转入下一周期的三个字节进行判断。
起始码前缀为三个字节的情况下,在具体的起始码前缀判断过程中包括下述步骤:
c1、判断当前字节的前面第一个字节及当前字节的后面第二个字节中是否至少有一个字节值小于等于1,若是,执行步骤c2;否则,转入下一周期的三个字节进行判断;
c2:判断当前字节的前面第二个字节及当前字节的后面第一个字节中是否至少有一个字节值小于等于1,若是,执行逐字节判断起始码前缀的过程;否则,转入下一周期的三个字节进行判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海信集团有限公司,未经海信集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710116509.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种纸币处理装置
- 下一篇:一种包覆锂离子二次电池负极活性物质的方法





