CN101296376A - 填充位丢弃电路和方法 - Google Patents
填充位丢弃电路和方法 Download PDFInfo
- Publication number
- CN101296376A CN101296376A CN 200710093803 CN200710093803A CN101296376A CN 101296376 A CN101296376 A CN 101296376A CN 200710093803 CN200710093803 CN 200710093803 CN 200710093803 A CN200710093803 A CN 200710093803A CN 101296376 A CN101296376 A CN 101296376A
- Authority
- CN
- China
- Prior art keywords
- latch
- data
- output
- input
- filler
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种填充位丢弃电路和方法,在对GB/T 20090.2标准视频码流进行解码之前,丢弃码流中为了避免出现伪起始码而在编码时插入的2比特长度的填充位。包括:用于缓存符合GB/T 20090.2标准的视频码流的输入缓冲器;用于缓存丢弃填充位后的视频码流的输出缓冲器;用于在接收来自输入缓冲器的数据后,进行起始码检测的起始码检测装置;及,用于对经过起始码检测后输出的非起始码数据进行填充位的检测、丢弃及拼接,然后送入输出缓冲器的填充位检测、丢弃和拼接装置。
Description
技术领域
本发明涉及一种对GB/T 20090.2标准视频码流进行解码之前,丢弃码流中为了避免出现伪起始码而插入的填充位的填充位丢弃电路和方法。
背景技术
GB/T 20090.2标准是于2006年3月颁布的中国视频压缩国家标准。该标准的附录C中专门定义了防止码流中出现伪起始码的方法。
起始码是一组特定的比特串。在符合GB/T 20090.2的比特流中,除起始码外的任何情况下都不应出现这些比特串。所有的起始码在码流中都应该字节对齐。起始码由起始码前缀和起始码值构成。其中,起始码前缀是一个24比特长度的比特串“0000 0000 0000 0000 0000 0001”;起始码值是一个8比特整数,用来表示起始码的类型,具体如表1。部分语法元素取特定值时可得到与起始码前缀相同的比特串,称为伪起始码,在视频解码过程中,这些伪起始码可能会导致解码时找到码流中错误的起始码位置,甚至使得整个解码失败。
表1起始码值
起始码类型 | 起始码值(十六进制) |
条带起始码 | 00~AF |
视频序列起始码 | B0 |
视频序列结束码 | B1 |
用户数据起始码 | B2 |
I图像起始码 | B3 |
保留 | B4 |
视频扩展起始码 | B5 |
PB图像起始码 | B6 |
视频编辑码 | B7 |
保留 | B8 |
系统起始码 | B9~FF |
GB/T 20090.2标准规定了防止码流中出现伪起始码的方法。编码时应按照以下方法处理:写入一位时,如果该位是一个字节的第二最低有效位,检查该位之前写入的22位,如果这22位都是‘0’,在该位之前插入填充位‘10’,该位成为下一个字节的最高有效位;解码时应按以下方法处理:每读入一个字节时,检查前面读入的两个字节和当前字节,如果这三个字节构成位串‘0000 0000 0000 0000 0000 0010’,丢弃当前字节的最低两个有效位,丢弃一个字节最低两个有效位可采用任意等效的方式,GB/T 20090.2不做规定。之前的相关标准一般都规定填充位的长度为一个字节,因此相关的填充位丢弃电路实现起来较为简单,而GB/T 20090.2标准所规定的填充位为2比特长度,因此如何能够有效地丢弃该2比特长度的填充位,并使得有效位很好地拼接在一起是本发明所要实现的关键。
发明内容
本发明要解决的技术问题是提供一种填充位丢弃电路,可在对GB/T20090.2标准视频码流进行解码之前,丢弃码流中为了避免出现伪起始码而在编码时插入的2比特长度的填充位;为此本发明还提供了一种填充位丢弃方法。
为解决上述技术问题,本发明提供一种填充位丢弃电路,包括以下装置:
输入缓冲器,用于缓存符合GB/T 20090.2标准的视频码流;
输出缓冲器,用于缓存丢弃填充位后的视频码流;
起始码检测装置,接收来自输入缓冲器的数据,进行起始码检测;
填充位检测、丢弃和拼接装置,用于对经过起始码检测后输出的非起始码数据进行填充位的检测、丢弃及拼接,然后送入输出缓冲器。
本发明还提供一种填充位丢弃方法,包括以下步骤:
(1)使用输入缓冲器缓存符合GB/T 20090.2标准的视频码流;
(2)使用起始码检测装置将步骤(1)所得的数据进行起始码检测;
(3)使用填充位检测、丢弃何拼接装置对经过起始码检测后输出的非起始码数据进行填充位的检测、丢弃及拼接;
(4)使用输出缓冲器将经过填充位的检测、丢弃及拼接后的非起始码数据进行缓存。
本发明由于采用了上述技术方案,具有这样的有益效果,即通过本发明所述填充位丢弃电路和方法,实现了可在对GB/T 20090.2标准视频码流进行解码之前,丢弃码流中为了避免出现伪起始码而在编码时插入的2比特长度的填充位,从而可应用于各种符合GB/T 20090.2标准的视频解码器,以及其他需要丢弃2位填充位的应用中。
附图说明
下面结合附图与具体实施方式对本发明作进一步详细的说明:
图1是本发明所述填充位丢弃电路的结构框图;
图2是本发明所述起始码检测装置的结构框图;
图3是本发明所述填充位检测、丢弃和拼接装置的结构框图。
具体实施方式
如图1所示,本发明所述填充位丢弃电路,包括:输入缓冲器、输出缓冲器、起始码检测装置以及填充位检测、丢弃和拼接装置。输入码流串行经过上述四个装置。
输入缓冲器用来缓存符合GB/T 20090.2标准的视频码流,在提供数据缓冲之外,还要提供数据位宽转换,其输入端位宽要与实际应用中输入码流的位宽相同,而输出端位宽为8。
输出缓冲器用来缓存丢弃填充位后的视频码流,在提供数据缓冲之外,同样要提供数据位宽转换,其输入端位宽为8,而输出端数据位宽可以根据后续解码过程的需要来设置。
起始码检测装置,用于对经输入缓冲器缓冲和处理的输入码流进行起始码检测,其结构示意图如图2所示,包括:锁存器201,其8位输入为输入缓冲器输出的8位数据;锁存器202,其8位输入为锁存器201的8位输出;锁存器203,其8位输入为锁存器202的8位输出;锁存器204,其8位输入为锁存器203的8位输出;比较器205,其一个24位输入为锁存器204、203和202的24位输出,另一个24位输入为0x000001,其输出的比较结果用于控制选择通过锁存器201输出起始码数据,或者通过锁存器204输出非起始码数据。检测命令作为所述比较器205的使能控制输入信号,用于控制所述比较器205进行工作的时间。
在本发明中,所述起始码检测装置的工作实现原理如下:接到检测命令后,在开始的4个时钟周期里,从输入缓冲器连续读入4个字节,在这4个时钟周期结束后,读入的数据依次保存在锁存器4、3、2、1中。锁存器4、3、2中的24位数据进入比较器1中与起始码前缀0x000001进行比较:如果比较结果为真,即发现了一个起始码,则停止检测,输出比较结果,并等待下一个检测命令,此时锁存器1中保存的就是检测到的起始码;如果比较结果为假,即锁存器1中不是一个起始码,则在下一个时钟周期同时更新锁存器4、3、2的值为原锁存器3、2、1中的值,而锁存器1从输入缓冲器中读入一个新的字节,锁存器4在更新的同时还将其原先保存的上一时钟周期的一个字节的非起始码数据输出;然后继续对锁存器中的新数据重复进行上述起始码检测。
填充位检测、丢弃和拼接装置,用于对经过起始码检测后输出的非起始码数据进行2位填充位的检测、丢弃、以及拼接,其结构示意图如图3所示,包括锁存器303,其8位输入数据为一个字节的非起始码数据;锁存器304,其初值为非零,且其8位输入数据为所述锁存器303的8位输出;锁存器305,其初值为非零,且其8位输入数据为所述锁存器304的8位输出;比较器301,其一个22位输入数据为锁存器305、锁存器304及锁存器303输出的高22位数据,另一个22位输入数据为22位“0”,并且输出比较结果;二输入选通器302,其一个选通输入为“8”,另一个选通输入为“6”,其选通控制信号输入为比较器301输出的比较结果,用于控制其选通输出为6或8的有效数据长度L,以分别表示当前锁存器303中的非起始码数据的有效数据长度为6还是为8;累加器306,其初始值为0,且其4位输入数据为选通器302输出的有效数据长度L,以用于和该累加器306中保存的上一次累加结果的低3位数据进行累加计算,并将该累加器306此次累加结果的低3位用作桶形移位器307的移位位数输入信号,同时保存此次累加结果的低3位用于下一次累加,而累加结果的最高位则送入锁存器311;减法器312,其输入数据为选通器302输出的有效数据长度L,用于进行8-L的减法运算,运算结果作为桶形移位器308的移位位数输入信号;桶形移位器307,其15位的输入数据为锁存器309输出的7位数据和锁存器303输出的8位数据,其移位位数输入信号为累加器306输出的低3位,而其输出的低8位数据则送入锁存器310,并且该桶形移位器307的移位方式被设置为右移;桶形移位器308,其15输入数据为锁存器309输出的7位数据和锁存器303输出的8位数据,其移位位数输入信号为减法器输出的运算结果,而其输出的低7位数据则送入锁存器309,并且该桶形移位器308的移位方式被设置为右移;锁存器311,其输出的数据作为输出有效控制信号,用于控制是否将锁存器310所锁存的数据送入输出缓冲器。
在本发明中,所述填充位检测、丢弃和拼接装置的工作实现原理如下:首先,锁存器303读入由起始码检测装置输出的第一个非起始码字节,为了对其进行填充位检测,锁存器304和305中都要保存非零的初值,锁存器305、304和303中的24位数据的高22位进入比较器301,与22位‘0’进行比较:如果相等,表示锁存器303中最低2位就是填充位,那么锁存器303中的仅高6位是有效数据,此时比较器301输出的比较结果控制选通器302输出“6”;如果不相等,表示锁存器303中没有填充位,即全部8位都是有效数据,此时比较器301输出的比较结果就会控制选通器302输出“8”。锁存器303中的数据会同时送入桶形移位器307、308,同时相应的有效数据长度L一方面会送入累加器306(该累加器306初值为0)以和该累加器306中保存的上一次累加结果的低3位数据进行累加计算,另一方面还会送入减法器312,以输出无效位数“8-L”到桶形移位器308,作为该桶形移位器308的右移位数。累加器306的低3位控制桶形移位器307的右移位数,如果累加器306最高位为“1”,表示此时桶形移位器307的15位输入数据中所包括的非起始码数据的有效数据位数大于等于8,则锁存器311保存并输出有效信号,该输出有效信号用于控制是否将当前锁存器310中锁存的数据送入到输出缓冲器中;而锁存器310则将更新为当前桶形移位器307根据累加器306输出的低3位数据向右移位后的低8位有效数据,而没有进入锁存器310的其他有效数据,则通过桶形移位器308右移“8-L”位后,形成右对齐(最后一个有效位在最右侧),保存在锁存器309中。此时,如果锁存器311输出有效信号,则锁存器310将在该有效信号的控制下输出其保存的有效数据到输出缓冲器中,否则如果锁存器311未输出有效信号,则锁存器310并不输出其保存的数据到输出缓冲器。在下一个时钟周期里,锁存器305、304会分别被更新为上一个时钟周期中锁存器304、303的值,锁存器303读入下一个非起始码数据,重复上述填充位检测、丢弃和拼接操作。锁存器310中的数据在锁存器311中输出有效信号控制下,送进输出缓冲器。
下面通过一个具体的实例来说明本发明所述填充位检测、丢弃和拼接装置的工作方式:
(1)假设锁存器305中的初值为0x01H,锁存器304中的初值为0x10H,而锁存器303读入的第一个非起始码字节为0x00H;因此,所述锁存器305、304和303的高22位与22位“0”不相同,所以比较器301输出的比较结果控制选通器302输出的数据长度L为8;这时减法器312的输出为0,而累加器306由于其初值为0,所以这时经累加后其值为4位数据“1000”,这时由于该累加器306的最高位为“1”,因此锁存器311中保存有数据“1”;而这时输入桶形移位器307的有效数据为来自锁存器303的8位数据0x00H,由于此时累加器306的低3位为“000”,所以锁存器310中保存数据0x00H;输入桶形移位器308的有效数据也来自锁存器303的8位数据0x00H,由于其移位输入也为0,因此锁存器309中保存的数据为“000 0000”;由于,这时锁存器311中保存的数据为“1”,所以锁存器310输出有效数据0x00H到输出缓冲器。
(2)设锁存器303读入的第二个非起始码字节也为0x00H,此时由于锁存器305中的数据为0x10H,而锁存器304中的数据为0x00H,因此比较器301输出的比较结果仍为假,此时选通器302选通输出的有效数据长度为8,这时累加器306中经过累加后的4位数据为“1000”,最高位为“1”,因此这时锁存器311保存有数据“1”;而这时,输入桶形移位器307有15位有效输入数据为“000 0000 0000 0000”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0000”,由于此时累加器306的低3位还是为“000”,所以锁存器310中的数据经更新后仍为0x00H;此时,输入桶形移位器308有15位有效输入数据为“0000000 0000 0000”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0000”,并由于此时其移位输入信号为“0”,所以锁存器309经过更新后仍为“000 0000”;由于这时锁存器311中的数据为“1”,因此控制锁存器310输出有效数据0x00H到输出缓冲器。
(3)设锁存器303读入的第三个非起始码字节为0x02H,而此时由于锁存器305中的数据为0x00H,而锁存器304中的数据也为0x00H,因此比较器301输出的比较结果为真,因此选通器302选通输出的有效数据长度L为6,这时累加器306中经过累加后的4位数据为“0110”,由于其最高位为“0”,所以这时锁存器311保存有数据0;而这时,输入桶形移位器307的15位有效输入数据为“000 0000 0000 0010”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0010”,由于此时累加器306的低3位为“110”,所以锁存器310更新后保存的数据为将“000 0000 0000 0010”右移6位后的低8位数据,因此为0x00H;而此时,输入桶形移位器308的15位有效输入数据为“000 0000 00000010”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0010”,并由于此时其移位输入信号为“2”,所以锁存器309更新后保存的数据为“000 0000 0000 0010”右移2位后的低7位数据,因此为“000 0000”;由于这时锁存器311中保存的数据为“0”,所以此时锁存器310中保存的数据0x00H不会被输出到输出缓冲器。
(4)设锁存器303读入的第四个非起始码字节为0xF1H,而此时由于锁存器305中的数据为0x00H,而锁存器304中的数据为0x02H,因此比较器301输出的比较结果为假,因此选通器302选通输出的有效数据长度L为8,这时累加器306中经过累加后的4位数据为“1110”,由于其最高位为1,所以这时锁存器311保存有数据1;而这时,输入桶形移位器307有15位有效输入数据为“000 0000 1111 0001”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“1111 0001”,由于此时累加器306的低3位为“110”,所以锁存器310中更新后保存的数据为“000 0000 1111 0001”右移6位后的低8位数据,因此为0x03H;而此时,输入桶形移位器308有15位有效输入数据为“000 0000 11110001”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“1111 0001”,并由于此时其移位输入信号为“0”,所以锁存器309更新后所保存的数据为“000 0000 1111 0001”的低7位数据,因此为“111 0001”;由于这时锁存器311中的数据为“1”,因此控制锁存器310输出有效数据0x03H到输出缓冲器。
(5)设锁存器303读入的第五个非起始码字节为0x80H,而此时由于锁存器305中的数据为0x02H,而锁存器304中的数据也为0xF1H,因此比较器301输出的比较结果为假,因此选通器302选通输出的有效数据长度L为8,这时累加器306中经过累加后的4位数据为“1110”,由于最高位为“1”,因此这时锁存器311保存有数据1;而这时,输入桶形移位器307有15位有效输入数据为“111 0001 1000 0000”,分别是来自锁存器309的7位数据“111 0001”和来自锁存器303的数据“1000 0000”,由于此时累加器306的低3位为“110”,所以锁存器310中更新后保存的数据为“111 0001 1000 0000”右移6位后的低8位数据,因此为0xC6H;而此时,输入桶形移位器308有15位有效输入数据为“111 0001 10000000”,分别是来自锁存器309的7位数据“111 0001”和来自锁存器303的数据“1000 0000”,并由于此时其移位输入信号为“0”,所以锁存器309更新后所保存的数据为“111 0001 1000 0000”的低7位数据,因此为“000 0000”;由于这时锁存器311中的数据为“1”,因此控制锁存器310输出有效数据0xC6H到输出缓冲器。
(6)设锁存器303读入的第六个非起始码字节为0x00H,而此时由于锁存器305中的数据为0xF1H,而锁存器304中的数据为0x80H,因此比较器301输出的比较结果为假,因此选通器302选通输出的有效数据长度L为8,这时累加器306中经过累加后的4位数据为“1110”,且最高位为1,因此这时锁存器311保存有数据1;而这时,输入桶形移位器307有15位有效输入数据为“000 0000 0000 0000”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0000”,由于此时累加器306的低3位为“110”,所以锁存器310中更新后保存的数据为“000 0000 0000 0000”右移6位后的低8位数据,因此为0x00H;而此时,输入桶形移位器308有15位有效输入数据为“000 0000 0000 0000”,分别是来自锁存器309的7位数据“000 0000”和来自锁存器303的数据“0000 0000”,并由于此时其移位输入信号为“0”,所以锁存器309更新后所保存的数据为“000 0000 0000 0000”的低7位数据,因此为“0000000”;由于这时锁存器311中的数据为“1”,因此控制锁存器310输出有效数据0x00H到输出缓冲器。
在该例子中,本发明所述的填充位检测、丢弃和拼接装置成功丢弃了2位填充位,并且将丢弃了填充位后的数据拼接在了一起。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1、一种填充位丢弃电路,其特征在于,包括以下装置:
输入缓冲器,用于缓存符合GB/T 20090.2标准的视频码流;
输出缓冲器,用于缓存丢弃填充位后的视频码流;
起始码检测装置,接收来自输入缓冲器的数据,进行起始码检测;
填充位检测、丢弃和拼接装置,用于对经过起始码检测后输出的非起始码数据进行填充位的检测、丢弃及拼接,然后送入输出缓冲器。
2、根据权利要求1所述的填充位丢弃电路,其特征在于,所述输入缓冲器还用于将所述视频码流的位宽转换为8;所述输出缓冲器还用于将8位的位宽转换为利于后续解码的位宽。
3、根据权利要求2所述的填充位丢弃电路,其特征在于,所述起始码检测装置进一步包括:
第一锁存器(201),其8位输入为输入缓冲器输出的8位数据;
第二锁存器(202),其8位输入为所述第一锁存器(201)的8位输出;
第三锁存器(203),其8位输入为所述第二锁存器(202)的8位输出;
第四锁存器(204),其8位输入为所述第三锁存器(203)的8位输出;
第一比较器(205),其一个24位输入为所述第四锁存器(204)、第三锁存器(203)和第二锁存器(202)的24位输出,另一个24位输入为0x000001,其输出的比较结果用于控制选择通过所述第一锁存器(201)输出起始码数据,或者通过所述第四锁存器(204)输出非起始码数据。
4、根据权利要求2或3所述的填充位丢弃电路,其特征在于,所述填充位检测、丢弃和拼接装置进一步包括:
第五锁存器(303),其8位输入数据为一个字节的非起始码数据;
第六锁存器(304),其初值为非零,且其8位输入数据为所述第五锁存器(303)的8位输出;
第七锁存器(305),其初值为非零,且其8位输入数据为所述第六锁存器(304)的8位输出;
第二比较器(301),其一个22位输入数据为所述第七锁存器(305)、所述第六锁存器(304)及所述第五锁存器(303)输出的高22位数据,另一个22位输入数据为22位“0”,并且输出比较结果;
二输入选通器(302),其一个选通输入为“8”,另一个选通输入为“6”,其选通控制信号输入为所述第二比较器(301)输出的比较结果,其输出表示有效数据的长度L;
累加器(306),其初值为0,且其4位输入数据为所述选通器(302)输出的有效数据长度L,其低3位输出数据用作第一桶形移位器(307)的移位位数输入信号,而其最高位输出数据则被送入第十锁存器(311),同时所述累加器(306)将此次累加结果的低3位进行保存以用于下一次累加;
减法器(312),其输入数据为所述选通器(302)输出的有效数据长度L,用于进行8-L的减法运算,且其运算结果作为第二桶形移位器(308)的移位位数输入信号;
第一桶形移位器(307),其15位的输入数据为所述第八锁存器(309)输出的7位数据和所述第五锁存器(303)输出的8位数据,其移位位数输入信号为所述累加器(306)输出的低3位,而其输出的低8位数据则送入所述第九锁存器(310),并且该桶形移位器(307)的移位方式被设置为右移;
第二桶形移位器(308),其15位的输入数据为所述第八锁存器(309)输出的7位数据和所述第五锁存器(303)输出的8位数据,其移位位数输入信号为所述减法器(312)输出的运算结果,而其输出的低7位数据则送入所述第八锁存器(309),并且该第二桶形移位器(308)的移位方式被设置为右移;
锁存器(311),其输出的数据作为输出有效控制信号,用于控制是否将第九锁存器(310)所锁存的数据送入输出缓冲器。
5、一种基于权利要求1所述电路的填充位丢弃方法,其特征在于,包括以下步骤:
(1)使用输入缓冲器缓存符合GB/T 20090.2标准的视频码流;
(2)使用起始码检测装置将步骤(1)所得的数据进行起始码检测;
(3)使用填充位检测、丢弃和拼接装置对经过起始码检测后输出的非起始码数据进行填充位的检测、丢弃及拼接;
(4)使用输出缓冲器将经过填充位的检测、丢弃及拼接后的非起始码数据进行缓存。
6、根据权利要求5所述的填充位丢弃方法,其特征在于,在所述步骤(1)中还利用所述输入缓冲器将所述视频码流的位宽转换为8;在所述步骤(4)中,还利用所述输出缓冲器将8位的位宽转换为利于后续解码的位宽。
7、根据权利要求6所述的填充位丢弃方法,其特征在于,所述步骤(2)主要是通过以下方法来实现的:
(a)接到检测命令后,在开始的4个时钟周期里,从输入缓冲器连续读入4个字节,在这4个时钟周期结束后,读入的数据依次保存在第四锁存器(204)、第三锁存器(203)、第二锁存器(202)和第一锁存器(201)中;然后执行步骤(b);
(b)将第四锁存器(204)、第三锁存器(203)、第二锁存器(202)中的24位数据在第一比较器(205)中与起始码前缀0x000001进行比较,如果比较结果为真,则执行步骤(c),否则执行步骤(d);
(c)停止检测,输出比较结果,并等待下一个检测命令,此时第一锁存器(201)中保存的就是检测到的起始码;并在接到下一个检测命令后,执行步骤(a);
(d)此时由于所述第一锁存器(201)中保存的不是一个起始码,因此在下一个时钟周期同时更新所述第四锁存器(204)、第三锁存器(203)和第二锁存器(202)中的值为上一时钟周期所述第三锁存器(203)、第二锁存器(202)和第一锁存器(201)中的值;而所述第一锁存器(201)从输入缓冲器中读入一个新的字节,所述第四锁存器(204)在更新的同时还将其原先保存的上一时钟周期的一个字节的非起始码数据输出;然后,回到步骤(b),继续对各锁存器中更新后的数据进行起始码检测。
8、根据权利要求6或7所述的填充位丢弃方法,其特征在于,所述步骤(3)主要是通过以下方法来实现的:
(I)第五锁存器(303)读入第一个非起始码字节,而第六锁存器(304)和第七锁存器(305)中则保存有非零的初值,然后进入步骤(II);
(II)将第七锁存器(305)、第六锁存器(304)和第五锁存器(303)中的24位数据的高22位在第二比较器(301)中与22位‘0’进行比较,如果比较结果为真,则进入步骤(III),否则,进入步骤(IV)
(III)选通器(302)输出有效数据长度L为“6”,然后进入步骤(V);
(IV)选通器(302)输出有效数据长度L为“8”,然后进入步骤(V);
(V)在减法器(312)中进行“8-L”的减法运算,同时在累加器(306)中将有效数据长度L与累加器(306)中保存的上一次累加结果的低3位数据进行累加运算,其中累加器(306)中的初始值为零;然后进入步骤(VI);
(VI)第一桶形移位器(307)根据累加器(306)输出的低3位数据,将其接收到的来自第八锁存器(309)的7位数据和来自第五锁存器(303)的8位数据向右进行移位,并将移位后的低8位数据送入第九锁存器(310)进行保存;而第二桶形移位器(308)则根据减法器(312)的输出,将接收到来自第八锁存器(309)的7位数据和来自第五锁存器(303)的8位数据向右进行移位,并将移位后的低7位数据送入第八锁存器(309)进行保存;同时,累加器(306)将其最高位送入第十锁存器(311)进行保存;然后进入步骤(VII);
(VII)如果第十锁存器(311)输出有效信号,则将第九锁存器(310)中保存的有效数据输出到输出缓冲器;否则,不输出第九锁存器(310)中保存的数据到输出缓冲器;然后进入步骤(VIII);
(VIII)在下一个时钟周期,第七锁存器(305)和第六锁存器(304)分别更新为上一个时钟周期中第六锁存器(304)和第五锁存器(303)中的值,而第五锁存器(303)中则读入下一个非起始码数据,然后重复步骤(II)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710093803 CN101296376B (zh) | 2007-04-24 | 2007-04-24 | 填充位丢弃电路和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710093803 CN101296376B (zh) | 2007-04-24 | 2007-04-24 | 填充位丢弃电路和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101296376A true CN101296376A (zh) | 2008-10-29 |
CN101296376B CN101296376B (zh) | 2011-01-26 |
Family
ID=40066332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710093803 Active CN101296376B (zh) | 2007-04-24 | 2007-04-24 | 填充位丢弃电路和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101296376B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN102129838A (zh) * | 2011-04-28 | 2011-07-20 | 深圳市天微电子有限公司 | Led显示数据的处理方法及装置 |
CN103369311A (zh) * | 2012-04-04 | 2013-10-23 | 朱洪波 | 一种用于防止起始码冲突的方法 |
CN116016397A (zh) * | 2023-03-28 | 2023-04-25 | 湖南毂梁微电子有限公司 | 一种报文传输缓冲区快速检索方法和电路 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5898897A (en) * | 1996-10-18 | 1999-04-27 | Samsung Electronics Company, Ltd. | Bit stream signal feature detection in a signal processing system |
CN1618235A (zh) * | 2002-01-22 | 2005-05-18 | 微软公司 | 用于防止起始码模仿和数据填充的方法和系统 |
CN1209703C (zh) * | 2003-10-16 | 2005-07-06 | 上海广电(集团)有限公司中央研究院 | 一种可随机访问数据流的组织方法及其对应的解码方法 |
CN1540495A (zh) * | 2003-10-31 | 2004-10-27 | 上海广电(集团)有限公司中央研究院 | 可随机访问数据流的组织方法及其对应的解码方法 |
-
2007
- 2007-04-24 CN CN 200710093803 patent/CN101296376B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800892A (zh) * | 2010-03-04 | 2010-08-11 | 青岛海信信芯科技有限公司 | 多媒体码流识别的方法和装置 |
CN102129838A (zh) * | 2011-04-28 | 2011-07-20 | 深圳市天微电子有限公司 | Led显示数据的处理方法及装置 |
CN103369311A (zh) * | 2012-04-04 | 2013-10-23 | 朱洪波 | 一种用于防止起始码冲突的方法 |
CN116016397A (zh) * | 2023-03-28 | 2023-04-25 | 湖南毂梁微电子有限公司 | 一种报文传输缓冲区快速检索方法和电路 |
CN116016397B (zh) * | 2023-03-28 | 2023-05-30 | 湖南毂梁微电子有限公司 | 一种报文传输缓冲区快速检索方法和电路 |
Also Published As
Publication number | Publication date |
---|---|
CN101296376B (zh) | 2011-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100318780B1 (ko) | 데이터압축모드간스위칭방법및장치 | |
CN101147325B (zh) | 用于霍夫曼代码的快速小型解码器和解码方法 | |
CN102244518B (zh) | 并行解压缩的硬件实现的系统及方法 | |
KR100508613B1 (ko) | 복호화 장치, 복호화 방법, 이동국 장치 및 기지국 장치 | |
KR100717055B1 (ko) | Cabac 복호기에서 복수의 이진 값들을 파이프라인방식에 의하여 복호화하는 방법 및 이를 위한 복호화 장치 | |
US8306108B2 (en) | Adaptive canonical Huffman decoder and method thereof and video decoder | |
CN101296376B (zh) | 填充位丢弃电路和方法 | |
KR100952352B1 (ko) | Avs를 위해 통합된 시작 코드 에뮬레이션 방지 비트프로세싱을 위한 방법 및 시스템 | |
CN101675473B (zh) | 用于处理编码的音频数据的方法和装置 | |
US10230392B2 (en) | Techniques for parallel data decompression | |
JPH11501486A (ja) | 可変長デコーダ | |
US5663726A (en) | High speed variable-length decoder arrangement with reduced memory requirements for tag stream buffering | |
CN1463441A (zh) | Mp3的特技播放 | |
JPH089371A (ja) | 並列処理パターンマッチングを用いた可変長さ符号の高速再同期方法 | |
CN107534446B (zh) | 用于高带宽lz77解压缩的asic块 | |
US20100246983A1 (en) | Data compression method | |
US5432512A (en) | Apparatus for decoding variable length codes | |
US7750675B2 (en) | Method for running state machines | |
CN109743581B (zh) | 编码端处理方法、解码端处理方法及防止伪起始码的方法 | |
CN103746702A (zh) | 数据的无损压缩方法与装置 | |
KR0180164B1 (ko) | 가변길이 부호기 | |
WO1999044293A1 (fr) | Codeur et decodeur pour code de longueur variable | |
CN101547353B (zh) | 可变长码解码加速装置 | |
EP2259432A1 (en) | Variable-length code decoding apparatus and method | |
CN102215383A (zh) | 一种基于h.264的cavlc编码器的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100089 18 / F, block B, Zhizhen building, No.7, Zhichun Road, Haidian District, Beijing Patentee after: Beijing Ziguang zhanrui Communication Technology Co.,Ltd. Address before: 100084, Room 516, building A, Tsinghua Science Park, Beijing, Haidian District Patentee before: BEIJING SPREADTRUM HI-TECH COMMUNICATIONS TECHNOLOGY Co.,Ltd. |