CN1540495A - 可随机访问数据流的组织方法及其对应的解码方法 - Google Patents
可随机访问数据流的组织方法及其对应的解码方法 Download PDFInfo
- Publication number
- CN1540495A CN1540495A CNA2003101083662A CN200310108366A CN1540495A CN 1540495 A CN1540495 A CN 1540495A CN A2003101083662 A CNA2003101083662 A CN A2003101083662A CN 200310108366 A CN200310108366 A CN 200310108366A CN 1540495 A CN1540495 A CN 1540495A
- Authority
- CN
- China
- Prior art keywords
- data
- random access
- data stream
- write
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种可随机访问数据流的组织方法,其包括以下步骤:编码音视频数据;在随机访问点***随机访问点标志码;在编码的音视频数据中***一些填充位,以避免出现与随机访问点标志码相同的位串。可随机访问数据流的解码方法包括以下步骤:在数据流中寻找随机访问点标志码,丢弃第一个随机访问点标志码以前的所有数据;依次读入每一个二进制位;判断该位是数据位还是填充位,如果是填充位,则丢弃,如果是数据位,则作为数据输出;如果遇到下一个随机访问点标志码,则开始一个新的数据块。
Description
技术领域
本发明涉及信号处理中的音视频编解码技术领域,尤其涉及一种将音视频编码数据组织成可随机访问数据流的方法及其对应的数据恢复方法。
背景技术
传统的视频编码标准如ITU制定的H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4等都需把音视频编码数据组织成可随机访问数据流,以便解码器可以从设置的随机访问点处开始解码。在以上标准中都是通过开始码来实现编码数据的随机访问的,例如视频序列开始码、画面组开始码、画面开始码等等。这些开始码都是由开始码前缀和开始码值两部分组成。开始码前缀是一个固定的二进制位串,标志一个开始码的存在;开始码值是一个数值,指出开始码的含义。其中开始码前缀相当于本发明所说的随机访问点标志码。
如果在其他编码数据中出现了与随机访问点标志码一样的二进制位串,则解码器就有可能把该位串错误地当成随机访问点标志码,从而引起解码错误。因此必须防止在其他编码数据中出现与随机访问点标志码一样的二进制位串。目前采取的方法是在设计码流的语法结构时设置一些禁止值和掩码位。所谓禁止值是指禁止一些语法元素取某些值,因为如果该语法元素取了那些值,就有可能出现假的随机访问点标志码。所谓掩码位,是指在可能出现假随机访问点标志码的语法元素之间***一个固定的二进制位。
以上的避免出现假随机访问点标志码的方法有以下缺点:a.增加了语法设计的复杂性。设计语法结构时,要时时刻刻考虑到是否会出现假开始码,是否需要禁止一些值,是否需要***掩码位。b.降低了语法结构的易读性。这些与视频压缩无关的因素混在语法结构中,使人不容易抓住要点。c.效率不高。在有可能产生假开始码的地方都必须采取措施,而不论语法元素的具体取值是否会真的产生假开始码。
发明内容
本发明所要解决的一个技术问题是提供一种将编码音视频数据封装为可随机访问数据流的方法,使得在进行编码数据的语法结构设计时不需要考虑码流的可随机访问性,即不需要设置禁止值,也不需要***掩码位。
本发明所要解决的另一技术问题是提供一个从所述可随机访问数据流中恢复编码数据的方法。
为了解决上述技术问题,本发明采用如下的技术方案:
提供一种把编码音视频数据封装为可随机访问数据流的方法,包括以下步骤:
a.用任何编码方法产生音视频编码数据;
b.音视频编码数据按照随机访问点被分成若干数据段,对每一个数据段,重复步骤c,d直到将所有数据写入数据流;
c.将随机访问点标志码位串0x000001写入数据流;
d.将编码数据的每一位依次写入数据流。如果当前写入的位是一个字节的倒数第二位,则判断最近写入的22位是否均为0,如果最近写入的22位均为0,则在写入当前数据位之前先写入一个1,然后将当前数据位写入;否则将当前数据位直接写入。
当要求字节对齐时,还包括步骤e.当一段数据写完时,用步骤d所述方法将一个0和若干个1写入码流,直到下一个字节对齐位置;
本发明还提供一种从所述可随机访问数据流中恢复数据的方法,包括以下步骤:
a.在数据流中的字节对齐位置寻找位串0x000001;
b.找到后重复以下步骤:
c.预窥码流下面的24位,记为peekstr;判断peekstr是否与标志码0x000001相同,若不相同则,读入一个二进制位,若相同则,跳到h;
e.如果刚刚读入的位是一个字节的倒数第二位,且在该位之前读入的22位都是0,则跳到步骤c;
f.将最近读入的1位作为数据输出,跳到步骤c;
h.如果数据流中已经没有剩余的数据了,则结束;
i.读入24位,跳到步骤c;
当要求字节对齐时,还包括步骤g.当遇到下一个随机访问点标志码时,将最后输出的一个0及其后输出的1识别为填充位,不作为数据位输出。
由于采用了上述方法,音视频编码器不再需要考虑随机访问点标志码的问题,因为这一工作是由底层的码流操作来完成的。上述码流的解码过程,可以自动识别哪些是***的位并将其丢弃,从而可以完全恢复音视频编码器产生的编码数据。
附图说明
图1是本发明的把编码音视频数据封装为可随机访问数据流的方法的一个实施例的流程图;
图2是本发明的一种从可随机访问数据流中恢复数据的方法的一个
实施例的流程图;
具体实施方式
下面结合附图和具体实施例来进一步说明本发明的技术方案。
图1是本发明中把编码音视频数据封装为可随机访问数据流方法的一个实施例的流程图。如图1所示,该实施例包括以下步骤:
a.用任何编码方法产生音视频编码数据;
b.音视频编码数据按照随机访问点被分成若干数据段,对每一个数据段,重复步骤c,d,e直到将所有数据写入数据流;
c.将0x000001(计为S)写入数据流;
d.将编码数据的每一位依次写入数据流。如果当前写入的位是一个字节的倒数第二位,则判断最近写入的22位是否均为0。如果最近写入的22位均为0,则在写入当前数据位之前先写入一个1,然后将当前数据位写入;否则将当前数据位直接写入。
e.当一段数据写完时,用步骤d所述方法将一个0和若干个1写入码流,直到下一个字节对齐位置;
图2是本发明中从可随机访问数据流中恢复数据方法的一个实施例的流程图。如图2所示,该实施例包括以下步骤:
a.在数据流中的字节对齐位置寻找位串0x000001;
b.找到后重复以下步骤:
c.如果码流当前位置是字节对齐的,则预窥码流下面的24位,记为peekstr如果数据流中已经没有剩余的数据了,跳到步骤g;如果数据流中剩余的数据不足24位,则认为peekstr不是0x000001。如果peekstr是0x000001,跳到步骤g;
d.读入一个二进制位。
e.如果刚刚读入的位是一个字节的倒数第二位,且在该位之前读入的22位都是0,则跳到步骤c。
f.将最近读入的1位作为数据输出,跳到步骤c;
g.如果随机访问点标志码要求字节对齐,则将最后输出的一个0及其后输出的1删除。
h.如果数据流中已经没有剩余的数据了,则结束;
i.读入24位,跳到步骤c;
Claims (9)
1、一种可随机访问数据流的组织方法,其特征在于,包括以下步骤:
a.用任何编码方法产生音视频编码数据;
b.音视频编码数据按照随机访问点被分成若干数据段,对每一个数据段,重复步骤c,d直到将所有数据写入数据流;
c.将随机访问点标志码位串0x000001写入数据流;
d.将编码数据的每一位依次写入数据流。如果当前写入的位是一个字节的倒数第二位,则判断最近写入的22位是否均为0,如果最近写入的22位均为0,则在写入当前数据位之前先写入一个1,然后将当前数据位写入;否则将当前数据位直接写入。
2、根据权利要求1所述的可随机访问数据流的组织方法,其特征在于,当要求字节对齐时,还包括步骤e.当一段数据写完时,用步骤d所述方法将一个0和若干个1写入码流,直到下一个字节对齐位置;
3、根据权利要求1所述的可随机访问数据流的组织方法,其特征在于,所述的填充位为一个1,即如果被写入的位是一个字节的倒数第二位且最近写入的22位都是0,则在写入数据位之前先写入一个1。
4、根据权利要求1所述的可随机访问数据流的组织方法,其特征在于,将随机访问点标志码写入时数据流时不***任何附加位;
5、根据权利要求1所述的可随机访问数据流的组织方法,其特征在于,记录最近写入数据流的22位;
6、一种从可随机访问数据流中恢复数据的方法,其特征在于,包括以下步骤:
a.在数据流中的字节对齐位置寻找位串0x000001;
b.找到后重复以下步骤:
c.预窥码流下面的24位,记为peekstr;判断peekstr是否与标志码0x000001相同,若不相同则,读入一个二进制位,若相同则,跳到h;
e.如果刚刚读入的位是一个字节的倒数第二位,且在该位之前读入的22位都是0,则跳到步骤c;
f.将最近读入的1位作为数据输出,跳到步骤c;
h.如果数据流中已经没有剩余的数据了,则结束;
i.读入24位,跳到步骤c;
7、根据权利要求6所述的从可随机访问数据流中恢复数据的方法,其特征在于,其特征在于,还包括步骤g.当遇到下一个随机访问点标志码时,将最后输出的一个0及其后输出的1识别为填充位,不作为数据位输出。
8、根据权利要求6所述的从可随机访问数据流中恢复数据的方法,其特征在于,如果最近读入的22位都是0且码流位置处于一个字节的倒数第二位,则将该字节的倒数第二位识别为填充位,不作为数据位输出;
9、根据权利要求6所述的从可随机访问数据流中恢复数据的方法,其特征在于,如果数据流中剩余的数据不足24位,则认为peekstr不是0x000001。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2003101083662A CN1540495A (zh) | 2003-10-31 | 2003-10-31 | 可随机访问数据流的组织方法及其对应的解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2003101083662A CN1540495A (zh) | 2003-10-31 | 2003-10-31 | 可随机访问数据流的组织方法及其对应的解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1540495A true CN1540495A (zh) | 2004-10-27 |
Family
ID=34334629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2003101083662A Pending CN1540495A (zh) | 2003-10-31 | 2003-10-31 | 可随机访问数据流的组织方法及其对应的解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1540495A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296376B (zh) * | 2007-04-24 | 2011-01-26 | 北京展讯高科通信技术有限公司 | 填充位丢弃电路和方法 |
-
2003
- 2003-10-31 CN CNA2003101083662A patent/CN1540495A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296376B (zh) * | 2007-04-24 | 2011-01-26 | 北京展讯高科通信技术有限公司 | 填充位丢弃电路和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1022782C (zh) | 分节编码数字信号的处理方法,编码器和译码器 | |
CN1115547A (zh) | 解码***中的自适应位流分离装置 | |
US6891976B2 (en) | Method to decode variable length codes with regular bit pattern prefixes | |
CN1924925A (zh) | 一种文档数字水印嵌入方法 | |
CN1463441A (zh) | Mp3的特技播放 | |
CN1184818C (zh) | 在编码信号中嵌入补充数据 | |
CN1623279A (zh) | 用于位平面的可变长度编码的方法和装置 | |
CN1716312A (zh) | 适用于视频处理的分级处理器架构 | |
CN1209703C (zh) | 一种可随机访问数据流的组织方法及其对应的解码方法 | |
CN1232105C (zh) | 用于对音频/视频压缩编码数据解码的解码器 | |
US7205915B2 (en) | Method of decoding variable length prefix codes | |
CN1649293A (zh) | 流解码*** | |
CN1540495A (zh) | 可随机访问数据流的组织方法及其对应的解码方法 | |
US7487141B1 (en) | Skipping pattern for an inverted index | |
EP2306728A3 (en) | Video encoding and decoding method | |
CN1364341A (zh) | 算术编码信息信号的算术译码 | |
CA2123435A1 (en) | System and method for fast huffman decoding | |
CN1218583C (zh) | 可随机访问数据流的封装方法及其对应的数据恢复方法 | |
CN1925332A (zh) | 基于关键字的变长解码器及方法 | |
CN1182981A (zh) | 解码图象显示装置及其显示存储器的控制方法 | |
CN109743581A (zh) | 编码端处理方法、解码端处理方法及防止伪起始码的方法 | |
CN1182723C (zh) | 一种视频数据的编码方法及其装置 | |
CN102802023B (zh) | 一种快速防止出现伪起始码的方法及装置 | |
CN101042773A (zh) | 数据处理设备 | |
CN1254973C (zh) | 连接命令帧的方法和服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |