CN100593954C - 一种对哥伦布码进行解码的装置及方法 - Google Patents
一种对哥伦布码进行解码的装置及方法 Download PDFInfo
- Publication number
- CN100593954C CN100593954C CN 200710064873 CN200710064873A CN100593954C CN 100593954 C CN100593954 C CN 100593954C CN 200710064873 CN200710064873 CN 200710064873 CN 200710064873 A CN200710064873 A CN 200710064873A CN 100593954 C CN100593954 C CN 100593954C
- Authority
- CN
- China
- Prior art keywords
- columbus
- sign indicating
- indicating number
- code
- decoding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000009182 swimming Effects 0.000 claims description 55
- 238000013507 mapping Methods 0.000 claims description 31
- 230000008901 benefit Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 238000002054 transplantation Methods 0.000 abstract 1
- 238000013139 quantization Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000008713 feedback mechanism Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及多媒体视频数据处理技术领域,公开了一种对哥伦布码进行解码的装置,包括桶形移位器、零比特检测器、码字长度生成器、比特偏移产生器、语法元素计算单元、哥伦布码阶次产生器、查表索引生成器、查表逻辑、输出运算器和码表更新单元。本发明同时公开了一种对哥伦布码进行解码的方法,该方法在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据,并且在该解码周期内产生下一个解码周期所需要的比特偏移值、指数哥伦布码阶次和码表序号。本发明提供的这种对指数哥伦布码进行解码的装置及方法,具有效率高,面积开销小,速度快,功耗低,成本低,易于移植和复用等优点。
Description
技术领域
本发明涉及多媒体视频数据处理技术领域,尤其涉及一种对哥伦布码进行解码的装置及方法。
背景技术
熵编码是无损压缩编码方法,它生成的码流可以经解码无失真地恢复出原数据。熵编码是建立在随机过程的统计特性模型上的。
熵的大小和信源的概率模型有着密切的关系,各个符号出现的概率不同,信源的熵也不同。当信源中各事件是等概率分布时,熵具有极大值。信源的熵与其可能达到的最大值之间的差值反映了该信源所含有的冗余度。信源的冗余度越小,既每个符号所独立携带的信息量越大,那么传送相同的信息量所需要的序列长度就越短,符号位也越少。因此,数据压缩的一个基本的途径是去除信源的符号之间的相关性。
在以往的视频标准中,都是采用普通变长码编码,所有的符号都采用一张仅从概率统计分布模型得出的码表,它虽然简单,但是可能会有以下的缺点:概率分布可能不是很符合实际情况;概率分布是静止的;忽略了符号相关性,没有利用条件概率。
最新的视频标准H.264,AVS中都采用了基于上下文模型的熵编码,利用相邻符号所提供的相关性,为所要编码的符号选择合适的上下文模型。利用合适的上下文模型,就可以大大降低符号之间的冗余度。
指数哥伦布码是一种结构码字,编解码适合硬件实现,采用指数哥伦布码的熵编码在上下文模型的选择主要体现在两个方面:非零系数编码所需表格的选择及指数哥伦布码阶次的更新。
相比普通变长码解码,自适应的指数哥伦布解码大大提高了解码运算量和复杂度,所需的解码时间比较长,需要存储码表也大大增加了面积和成本,针对高清视频解码应用,研究快速、高效、面积开销小的VLD是解码器研究的一个重点。
由于自适应指数哥伦布码解码过程比较复杂,现有的解码方法大多数采用在多个周期内实现一个哥伦布码解码的方法,其方法是将解码过程中码字长度计算、语法元素解析、查表过程、更新码表和指数哥伦布码的阶次K等解码步骤分开在多个周期内完成,这些方法虽然一定程度上提高了解码器的工作频率,但大大降低了解码效率。
另外,现有解码方法一般将多个解码码表存储在一个大容量的外部存储器中,这样的方法大大增加了解码器的面积和开销,提高了制造成本,并且频繁地读写存储器带来了很大的延时和功耗。
在其他一些单周期实现哥伦布解码的方法中,由于解码过程复杂度高,需要解码器外部的控制器一起来参与完成解码过程,设计复杂且不利用方法的复用性。
总之,目前实现对指数哥伦布码进行解码的装置及方法,存在的效率低,面积开销大,速度慢,功耗高,成本高,不易于移植和复用等问题。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的一个目的在于提供一种对指数哥伦布码进行解码的装置,以解决目前对指数哥伦布码进行解码装置存在的效率低,面积升销大,速度慢,功耗高,成本高,不易于移植和复用等问题。
本发明的另一个目的在于提供一种对指数哥伦布码进行解码的方法,以解决目前对指数哥伦布码进行解码装置存在的效率低,面积开销大,速度慢,功耗高,成本高,不易于移植和复用等问题。
(二)技术方案
为达到上述一个目的,本发明提供了一种对哥伦布码进行解码的装置,该装置包括:
桶形移位器(1),用于对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器(2)输出给语法元素计算单元(5);
零比特检测器(2),用于对桶形移位器(1)输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器(3)和语法元素计算单元(5);
码字长度生成器(3),用于根据零比特检测器(2)输入的零比特个数和哥伦布码阶次产生器(6)输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器(4);
比特偏移产生器(4),用于将码字长度生成器(3)输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器(1);
语法元素计算单元(5),用于对零比特检测器(2)输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器(6)输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器(7)和输出运算器(9);
哥伦布码阶次产生器(6),用于接收码表更新单元(10)输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器(3)和语法元素计算单元(5);
查表索引生成器(7),用于根据接收自语法元素计算单元(5)的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑(8);
查表逻辑(8),用于根据查表索引生成器(7)输入的查表索引和码表更新单元(10)输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器(9);
输出运算器(9),用于根据查表逻辑(8)输入的游程值和量化数据值,以及语法元素计算单元(5)输入的哥伦布语法元素,计算产生最终有效的游程和量化数据,并且延时一个时钟周期输出给码表更新单元(10);
码表更新单元(10),用于根据接收自输出运算器(9)的最终有效的游程和量化数据,自适应地更新并产生用于下一个解码周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器(6)。
上述方案中,所述桶形移位器(1)对外界输入的数据进行逻辑移位,是根据接收自比特偏移产生器(4)的比特偏移值进行的,将已解码的数据移出,保留未解码的数据作为有效的哥伦布码数据。
上述方案中,所述比特偏移产生器(4)累加得到的比特偏移值,用来对下一个解码周期的哥伦布码进行解码,并根据该比特偏移值大小决定是否提出向外部提出新的数据申请。
为达到上述另一个目的,本发明提供了一种对哥伦布码进行解码的方法,其特征在于,该方法在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据,并且在该解码周期内产生下一个解码周期所需要的比特偏移值,在下一个解码周期开始时产生下一个解码周期所需要的指数哥伦布码阶次和码表序号;其中,在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据的步骤包括:
A1、桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器输出给语法元素计算单元;
A2、零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给语法元素计算单元;
A3、语法元素计算单元对零比特检测器输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器和输出运算器;
A4、查表索引生成器根据接收自语法元素计算单元的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑;
A5、查表逻辑根据查表索引生成器输入的查表索引和码表更新单元输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器;
A6、输出运算器根据查表逻辑输入的游程值和量化数据值,以及语法元素计算单元输入的语法元素,计算产生最终有效的游程和量化数据,然后输出最终有效的游程和量化数据。
上述方案中,所述在该解码周期内产生下一个解码周期所需要的比特偏移值的步骤包括:
B1、桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据输出给零比特检测器;
B2、零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器;
B3、码字长度生成器根据零比特检测器输入的零比特个数和哥伦布码阶次产生器输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器;
B4、比特偏移产生器将码字长度生成器输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器。
上述方案中,所述在下一个解码周期开始时产生下一个解码周期所需要的码表序号的步骤包括:
C1、输出运算器将计算产生的最终有效的游程和量化数据输出给码表更新单元;
C2、码表更新单元根据接收自输出运算器的最终有效的游程和量化数据,并在下一个解码周期开始时自适应地更新并产生用于下一个周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器。
上述方案中,所述在下一个解码周期开始时产生下一个解码周期所需要的指数哥伦布码阶次的步骤包括:哥伦布码阶次产生器接收码表更新单元输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器和语法元素计算单元。
(三)有益效果
从上述技术方案可以看出,本发明提供的这种对指数哥伦布码进行解码的装置,具有效率高,面积开销小,速度快,功耗低,成本低,易于移植和复用等优点,具体表现在:
1)针对现在存在的N(N>=1)周期哥伦布码解码的结构,采用单周期哥伦布码解码的方法及结构,在一个时钟周期内,可以计算下一个指数哥伦布码的长度,这样的设计可以使解码器单周期连续地进行指数哥伦布解码。
并且该方法在该周期内完成指数哥伦布码的语法元素计算,产生查表索引,并根据查表索引完成查表过程,为了使其能连续不断地进行基于上下文自适应的解码,在下一个周期内返回查表结果,并进行输出结果的计算,根据计算结果自适应更新解码码表和指数哥伦布码的阶次,使用该方法在一个周期内完成了解码的全部步骤,并获得了下一个码字的长度信息,从而可以连续不断的进行单周期解码。
该结构可以完全适用于H.264和AVS等视频标准的自适应哥伦布解码过程,大大提高了解码效率和速度;相比原来的方法中N(N>1)个周期完成一个指数哥伦布码解码的方法及结构,效率大大提高,为原来的N倍。
2)本发明提供的这种对指数哥伦布码进行解码的装置及方法,不需要存储码表,以往的普通变长码解码,采用固定的码表,码表数量比较少,对存储器容量的需求不高。
而H.264,AVS等标准采用的自适应解码需要在很多不同的码表间进行选择切换,所以需要存储大量的码表,各个码表之间及码表内部也存在相当大的数据冗余,用存储器逐一存储全部的码表数据大大浪费了存储空间面积,增加了功耗和成本,甚至成为解码器面积开销和功耗的主要组成部分。根据上述缺点,本发明最大限度地压缩了码表内和码表之间的数据冗余,采用逻辑映射实现查表索引到量化系数和游程值之间的映射,这样的逻辑映射可以有效得合并相同的码表数据,并减少数据之间的冗余。逻辑映射结构如图2所示,逻辑映射只是一种组合逻辑的映射关系,码表序号选择对应序号的码表查表逻辑,查表索引输入到相应序号的码表查表逻辑,查表后输出对应码表序号的输出结果,组合逻辑的实现方法,其优点在于,实现过程中不需要存储器,大大节约了电路的功耗和面积,事实证明,由于该方法的使用使得解码器面积相比原来的结构减少了一半以上,精简的结构有利于控制成本。
3)对于解码得到的输出,暂时保存结果至特定的时刻输出,假设周期T开始哥伦布码解码操作,在输入N(N>=1)个哥伦布码编码一对游程值和量化系数值情况下,即使在周期T+N+1之前计算得到了输出结果,也保存至周期T+N+1输出该结果,这样的优点是,对于VLSI该解码结构实现的电路,该方法这样可以减少系统关键路径上延时,确保每次输出的结果都是上一个周期已保存的结果,而不需要再经过运算后输出,减少了电路延时,也简化了电路的时序;由于采用该方法,实现的VLSI结构的性能频率相比以前的方法及结构有了进一步的提高。
4)本发明将各种哥伦布码解码控制功能集成在解码器中,由于解码过程中解码器不需要外界控制器参与控制,简化了与外部控制电路的接口,提供了统一的输入输出接口,提升了该方法及结构的可复用性。
5)针对现在存在的采用存储器存储解码码表的结构,采用一种不需要存储器存储码表,用组合逻辑实现查表的结构,由于不需要存储器,可以将该哥伦布码解码结构的面积减小50%以上。
6)针对现在存在的哥伦布解码器结构性能频率较低的缺点,采用一种将解码关键路径上的输出结果延迟一个周期输出的方法,由于采用这项技术,有效地提高了解码器结构的频率和速度。
7)针对现在存在的采用访问存储器存储来进行查表的方法,该结构不需要访问存储器,大大减少了该结构的功耗和访问存储器的延迟。
8)针对现在存在的采用外部控制器参与控制哥伦布码解码过程的结构,采用一种集成控制器,不需要外部控制器控制的哥伦布码解码的结构。保证该结构在不同平台环境下的移植性和通用性。
9)由于采用了以上多项技术,使得该解码器的面积,功耗,效率,速度,复用性等指标大大提升,使制造成本和开发成本大大降低。
附图说明
图1为本发明提供的对指数哥伦布码进行解码的装置的结构框图;
图2为本发明提供的游程查表映射逻辑和量化系数查表映射逻辑示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明的核心思想是:在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据,并且在该解码周期内产生下一个解码周期所需要的比特偏移值,在下一个解码周期开始时产生指数哥伦布码阶次和码表序号。
本发明采用单周期哥伦布解码的方法,在一个周期内解码一个指数哥伦布码并完成一个码字的解析查表;采用独立的游程值表和量化系数值表;不需要存储器存储码表,通过语法元素和表项的逻辑映射关系实现查表功能;这种解码方法适用于任意可自适应指数哥伦布码解码,高效快速,面积开销小,且有利于复用。
如图1所示,图1为本发明提供的对指数哥伦布码进行解码的装置的结构框图,该装置包括桶形移位器(1)、零比特检测器(2)、码字长度生成器(3)、比特偏移产生器(4)、语法元素计算单元(5)、哥伦布码阶次产生器(6)、查表索引生成器(7)、查表逻辑(8)、输出运算器(9)和码表更新单元(10)。
其中,桶形移位器(1)用于对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器(2)输出给语法元素计算单元(5)。该桶形移位器(1)对外界输入的数据进行逻辑移位,是根据接收自比特偏移产生器(4)的比特偏移值进行的,将已解码的数据移出,保留未解码的数据作为有效的哥伦布码数据。
零比特检测器(2),用于对桶形移位器(1)输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器(3)和语法元素计算单元(5)。
码字长度生成器(3),用于根据零比特检测器(2)输入的零比特个数和哥伦布码阶次产生器(6)输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器(4)。
比特偏移产生器(4),用于将码字长度生成器(3)输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器(1)。该比特偏移产生器(4)累加得到的比特偏移值,用来对下一个解码周期的哥伦布码进行解码,并根据该比特偏移值大小决定是否提出向外部提出新的数据申请。
语法元素计算单元(5),用于对零比特检测器(2)输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器(6)输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器(7)和输出运算器(9)。
哥伦布码阶次产生器(6),用于接收码表更新单元(10)输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器(3)和语法元素计算单元(5)。
查表索引生成器(7),用于根据接收自语法元素计算单元(5)的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑(8)。
查表逻辑(8),用于根据查表索引生成器(7)输入的查表索引和码表更新单元(10)输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器(9)。
输出运算器(9),用于根据查表逻辑(8)输入的游程值和量化数据值,以及语法元素计算单元(5)输入的哥伦布语法元素,计算产生最终有效的游程和量化数据,并且延时一个时钟周期输出给码表更新单元(10)。
码表更新单元(10),用于根据接收自输出运算器(9)的最终有效的游程和量化数据,自适应地更新并产生用于下一个解码周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器(6)。
基于图1所示的对指数哥伦布码进行解码的装置,本发明还提供的对指数哥伦布码进行解码的方法,该方法在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据,并且在该解码周期内产生下一个解码周期所需要的比特偏移值,在下一个解码周期开始时产生指数哥伦布码阶次和码表序号。
上述在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据具体包括:
步骤101:桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器输出给语法元素计算单元;
步骤102:零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给语法元素计算单元;
步骤103:语法元素计算单元对零比特检测器输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器和输出运算器;
步骤104:查表索引生成器根据接收自语法元素计算单元的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑;
步骤105:查表逻辑根据查表索引生成器输入的查表索引和码表更新单元输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器;
步骤106:输出运算器根据查表逻辑输入的游程值和量化数据值,以及语法元素计算单元输入的语法元素,计算产生最终有效的游程和量化数据,然后输出最终有效的游程和量化数据。
上述在该解码周期内产生下一个解码周期所需要的比特偏移值具体包括:
步骤201:桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据输出给零比特检测器;
步骤202:零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器;
步骤203:码字长度生成器根据零比特检测器输入的零比特个数和哥伦布码阶次产生器输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器;
步骤204:比特偏移产生器将码字长度生成器输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器。
上述在该解码周期内产生下一个解码周期所需要的码表序号具体包括:
步骤301:输出运算器将计算产生的最终有效的游程和量化数据输出给码表更新单元;
步骤302:码表更新单元根据接收自输出运算器的最终有效的游程和量化数据,自适应地更新并产生用于下一个周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器。
上述在下一个解码周期开始时产生下一个解码周期所需要的指数哥伦布码阶次具体包括:哥伦布码阶次产生器接收码表更新单元输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器和语法元素计算单元。
本发明采用独立的游程值表和量化系数值表,并用逻辑映射关系实现查表索引到游程值和量化系数值的映射,游程值和量化系数值分开输出并处理。查表的索引和码表编号作为映射逻辑的输入,经过映射逻辑,得到映射逻辑的输出游程值和量化系数。基于VLSI硬件实现时,如果在周期T输入查表索引S,经过组合逻辑,在周期T内可以得到查表索引S对应的游程值和量化系数值并存储,实现单周期解码。
本发明中的查表通过逻辑映射实现,不需要存储解码码表。一个周期解析一个哥伦布码,并完成其码字长度计算、语法元素解析及查表过程。假设时间轴上周期T开始哥伦布码解码操作,在输入N(N>=1)个哥伦布码(标记为A)编码一对游程值和量化系数值情况下,在周期T+N+1输出A编码的有效游程值和量化系数值;如果解码过程需要更新码表,则A的解码结果用来在T+N+1周期更新码表;如果哥伦布码字采用自适应编码,则A的解码结果在T+N+1周期还需更新哥伦布码的阶次。
如果A在T<T1<T+N+1个周期已经计算得出A编码的有效游程值和量化系数,把该有效的游程值和量化系数存储起来,在T+N+1个周期时输出。
本发明中查表索引根据哥伦布码的语法元素计算生成;查表逻辑映射由组合逻辑实现;输出运算器根据语法元素、查表所得量化系数值和游程值生成;对于自适应K阶指数哥伦布码,输出计算器的输出用来更新码表和指数哥伦布码的阶次K。
基于上述对指数哥伦布码进行解码的方法,以下结合具体实施例对该方法进行详细描述,其步骤可描述如下:
第一步:桶形移位器(1)中根据比特偏移产生器(4)产生的比特偏移值对输入数据进行逻辑移位,将已解码不需要的数据移出桶形移位器,保留剩余未解码的有效的哥伦布码数据。
第二步:桶形移位器(1)将产生的有效的哥伦布码数据输出到零比特检测器(2),零比特检测器(2)检测哥伦布码的前缀中零比特的个数,并将零比特个数保存为以后使用。
第三步:码字长度生成器(3)接收到零比特检测器(2)输入的零比特个数以及哥伦布码阶次产生器(6)输入的哥伦布码阶次,根据接收的信息计算哥伦布码的长度,根据这些输入信息可以计算得到指数哥伦布码的长度。
第四步:码字长度生成器(3)将产生的哥伦布码长度输出给比特偏移产生器(4),比特偏移产生器(4)将哥伦布码长度与之前保存的比特偏移进行累加,得到下一个周期的解码所需要的比特偏移,该信息将用来对下一个哥伦布码进行解码,并根据比特偏移的数值大小决定是否提出向外部提出新的数据申请。
第五步:语法元素计算单元(5)接收到零比特检测器(2)输入的有效比特数据及零比特个数和哥伦布码阶次产生器(6)输入的指数哥伦布码阶次,对输入的有效比特数据、零比特个数、指数哥伦布码阶次进行计算,根据公式方法产生解码需要的哥伦布语法元素。
第六步:语法元素计算单元(5)将产生的哥伦布语法元素输入到查表索引生成器(7),该查表索引生成器(7)根据语法元素计算查表索引,并将查表索引输出给查表逻辑(8)。
第七步:查表逻辑(8)接收到查表索引生成器(7)输入的查表索引和码表更新单元(10)输入的码表序号,实现查表功能,对输入索引通过查表得到的游程值和量化数据值。
第八步:输出运算器(9)接收到查表逻辑(8)输入的游程值、量化数据值及语法元素计算单元(5)输入的语法元素,采用公式对输入进行计算产生最终有效的游程和量化数据,并且延时一个时钟周期输出。
第九步:输出运算器(9)将产生最终有效的游程和量化数据输入到码表更新单元(10),码表更新单元(10)根据这些信息自适应地更新用来解码的码表序号,用于下一个哥伦布码的解码。
第十步:码表更新单元(10)将产生的码表序号输入到哥伦布码阶次产生器(6),哥伦布码阶次产生器(6)实现码表到哥伦布码阶次的映射,该单元根据映射关系产生下一个哥伦布码的阶次,用来进行下一个哥伦布码的解码。
第十一步:到此已经产生了下一个周期哥伦布解码需要的比特偏移,码表序号,哥伦布码阶次,如果解码未结束,重复到第一步到第十步的过程,否则停止解码。
在上述本发明提供的对指数哥伦布码进行解码的方法中,在当前哥伦布解码过程中获得下一个哥伦布码在比特流中的起始位置,该信息通过当前哥伦布码的在比特流中的起始位置和当前哥伦布码的比特长度相加得到,当前哥伦布码的在比特流中的起始位置保存在比特偏移产生器(4),当前哥伦布码的比特长度由码字长度生成器(3)计算得到,这些信息在比特偏移产生器(4)相加,并在下个哥伦布解码之前反馈到桶形移位器(1)中,这种反馈的机制产生了单周期哥伦布解码所需要的起始位置信息。
在上述本发明提供的对指数哥伦布码进行解码的方法中,在当前哥伦布解码过程中获得下一个哥伦布码解码需要的码表和哥伦布码的阶次,码表的更新信息需要根据当前哥伦布码解码的输出结果大小来进行选择获取,这是通过输出运算器(9)到码表更新单元(10)的信息传递反馈机制来完成的,在当前哥伦布解码过程中,最后的输出结果在输出运算器(9)中产生,将该结果及时反馈到码表更新单元(10),码表更新单元(10)根据输出结果及时快速地选择下一个哥伦布解码需要的码表信息,并将码表信息及时返回给查表逻辑(8),用来进行下一个哥伦布码的解码查表;哥伦布码的阶次由码表的信息来决定,该信息的更新是通过码表更新单元(10)到哥伦布码阶次产生器(6)的信息传递反馈机制来完成的,在当前哥伦布解码过程中,码表更新单元更新码表信息后,立即将码表信息反馈到哥伦布码阶次产生器,哥伦布码阶次产生器立即对该信息进行计算,得到下一个哥伦布码所需要的哥伦布码阶次,并将信息保存用于下一个哥伦布码的解码。
另外,本发明避免了使用大容量存储单元,而用查表逻辑(8)来取代,查表逻辑是一种逻辑关系的映射,它的好处是可以实现相同的查表功能,但不需要使用存储单元来存储码表,而且大大压缩了码表的数据冗余,它主要功能是实现了输入的码表信息和查表索引信息到查表输出结果之间的逻辑关系映射,由于逻辑电路速度快,能有效利用之间的逻辑重复和冗余,所以由于该方法的使用,不仅大大减小的面积功耗,而且大大提高了速度。
本发明采用的方法及结构不要外部解码控制器进行控制,而整个VLD的结构是根据各模块相互之间的信号和信息进行互相协调工作,VLD结构框图的信号方向表示了这种相互协调的关系,解码过程和各模块之间的数据反馈机制的运行都是自动完成,不需要外部进行控制。这样对外界控制器透明的方法和结构提高了该平台的易移植性和复用性。
上述方案中,一个周期内完成解码所需要的全部步骤,完成一个哥伦布码的解码,大大提高了解码效率并通过设计优化提高了工作频率。
现有解码方法一般将多个解码码表存储在一个大容量的外部存储器中,这样的方法大大增加了解码器的面积和开销,提高了制造成本,并且频繁地读写存储器带来了很大的延时和功耗。由于本方法采用组合逻辑映射来实现查表过程,解决了需要外部存储器的问题,并且组合逻辑查表实现其结构,具有面积小,低延迟,功耗低等众多优点。
在其他一些单周期实现哥伦布解码的方法中,由于解码过程复杂度高,需要解码器外部的控制器一起来参与完成解码过程,设计复杂且不利用方法的复用性。由于本方法不需要外部控制器参与解码过程,简化了与外部接口之间复杂的控制,提高了方法复用和移植性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1、一种对哥伦布码进行解码的装置,其特征在于,该装置包括:
桶形移位器(1),用于对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器(2)输出给语法元素计算单元(5);
零比特检测器(2),用于对桶形移位器(1)输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器(3)和语法元素计算单元(5);
码字长度生成器(3),用于根据零比特检测器(2)输入的零比特个数和哥伦布码阶次产生器(6)输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器(4);
比特偏移产生器(4),用于将码字长度生成器(3)输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器(1);
语法元素计算单元(5),用于对零比特检测器(2)输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器(6)输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器(7)和输出运算器(9);
哥伦布码阶次产生器(6),用于接收码表更新单元(10)输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器(3)和语法元素计算单元(5);
查表索引生成器(7),用于根据接收自语法元素计算单元(5)的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑(8);
查表逻辑(8),用于根据查表索引生成器(7)输入的查表索引和码表更新单元(10)输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器(9);
输出运算器(9),用于根据查表逻辑(8)输入的游程值和量化数据值,以及语法元素计算单元(5)输入的哥伦布语法元素,计算产生最终有效的游程和量化数据,并且延时一个时钟周期输出给码表更新单元(10);
码表更新单元(10),用于根据接收自输出运算器(9)的最终有效的游程和量化数据,自适应地更新并产生用于下一个解码周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器(6)。
2、根据权利要求1所述的对哥伦布码进行解码的装置,其特征在于,所述桶形移位器(1)对外界输入的数据进行逻辑移位,是根据接收自比特偏移产生器(4)的比特偏移值进行的,将已解码的数据移出,保留未解码的数据作为有效的哥伦布码数据。
3、根据权利要求1所述的对哥伦布码进行解码的装置,其特征在于,所述比特偏移产生器(4)累加得到的比特偏移值,用来对下一个解码周期的哥伦布码进行解码,并根据该比特偏移值大小决定是否提出向外部提出新的数据申请。
4、一种对哥伦布码进行解码的方法,其特征在于,该方法在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据,并且在该解码周期内产生下一个解码周期所需要的比特偏移值,在下一个解码周期开始时产生下一个解码周期所需要的指数哥伦布码阶次和码表序号;其中,在一个解码周期内对外界输入的哥伦布码数据进行解码,输出解码生成的最终有效的游程和量化数据的步骤包括:
A1、桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据通过零比特检测器输出给语法元素计算单元;
A2、零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给语法元素计算单元;
A3、语法元素计算单元对零比特检测器输入的有效哥伦布码数据、零比特个数,以及哥伦布码阶次产生器输入的指数哥伦布码阶次进行计算,将计算得到的解码所需要的哥伦布语法元素输出给查表索引生成器和输出运算器;
A4、查表索引生成器根据接收自语法元素计算单元的语法元素计算查表索引,并将计算出的查表索引输出给查表逻辑;
A5、查表逻辑根据查表索引生成器输入的查表索引和码表更新单元输入的码表序号实现查表功能,将得到的游程值和量化数据值输出给输出运算器;
A6、输出运算器根据查表逻辑输入的游程值和量化数据值,以及语法元素计算单元输入的语法元素,计算产生最终有效的游程和量化数据,然后输出最终有效的游程和量化数据。
5、根据权利要求4所述的对哥伦布码进行解码的方法,其特征在于,所述在该解码周期内产生下一个解码周期所需要的比特偏移值的步骤包括:
B1、桶形移位器对外界输入的数据进行逻辑移位得到有效的哥伦布码数据,并将得到的有效哥伦布码数据输出给零比特检测器;
B2、零比特检测器对桶形移位器输入的有效哥伦布码数据进行检测,将从哥伦布码前缀中检测出的零比特个数输出给码字长度生成器;
B3、码字长度生成器根据零比特检测器输入的零比特个数和哥伦布码阶次产生器输入的指数哥伦布码阶次计算哥伦布码的长度,并将得到的哥伦布码长度输出给比特偏移产生器;
B4、比特偏移产生器将码字长度生成器输入的哥伦布码长度与自身保存的比特偏移值进行累加,得到下一个解码周期所需要的比特偏移值,并在下一个解码周期输出给桶形移位器。
6、根据权利要求4所述的对哥伦布码进行解码的方法,其特征在于,所述在下一个解码周期开始时产生下一个解码周期所需要的码表序号的步骤包括:
C1、输出运算器将计算产生的最终有效的游程和量化数据输出给码表更新单元;
C2、码表更新单元根据接收自输出运算器的最终有效的游程和量化数据,并在下一个解码周期开始时自适应地更新并产生用于下一个周期进行哥伦布码解码的码表序号,并将产生的码表序号输出给哥伦布码阶次产生器。
7、根据权利要求4所述的对哥伦布码进行解码的方法,其特征在于,所述在下一个解码周期开始时产生下一个解码周期所需要的指数哥伦布码阶次的步骤包括:
哥伦布码阶次产生器接收码表更新单元输入的码表序号,实现码表到哥伦布码阶次的映射,根据映射关系产生用于下一个解码周期进行哥伦布码解码的指数哥伦布码阶次,并将产生的指数哥伦布码阶次输出给码字长度生成器和语法元素计算单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710064873 CN100593954C (zh) | 2007-03-28 | 2007-03-28 | 一种对哥伦布码进行解码的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710064873 CN100593954C (zh) | 2007-03-28 | 2007-03-28 | 一种对哥伦布码进行解码的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101277444A CN101277444A (zh) | 2008-10-01 |
CN100593954C true CN100593954C (zh) | 2010-03-10 |
Family
ID=39996389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710064873 Active CN100593954C (zh) | 2007-03-28 | 2007-03-28 | 一种对哥伦布码进行解码的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100593954C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101707484B (zh) * | 2009-06-18 | 2012-11-28 | 杭州高特信息技术有限公司 | 一种适合硬件实现的快速指数哥伦布码解码方法 |
CN102238387B (zh) * | 2011-05-25 | 2017-07-18 | 深圳市云宙多媒体技术有限公司 | 一种视频熵编码、熵解码方法、装置 |
CN103108176A (zh) * | 2011-11-09 | 2013-05-15 | 深圳市德赛微电子技术有限公司 | Avs和mpeg-2双模解码器中熵解码结构 |
CN103200407B (zh) * | 2013-04-16 | 2016-05-18 | 中国科学院光电技术研究所 | 一种自适应熵编码器 |
CN104469366B (zh) * | 2014-12-18 | 2017-10-03 | 中国科学院自动化研究所 | 一种0阶指数哥伦布码解码器及解码方法 |
CN109859281B (zh) * | 2019-01-25 | 2022-12-02 | 杭州国芯科技股份有限公司 | 一种稀疏神经网络的压缩编码方法 |
CN116233389A (zh) * | 2021-12-03 | 2023-06-06 | 维沃移动通信有限公司 | 点云编码处理方法、点云解码处理方法及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589023A (zh) * | 2004-08-06 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
-
2007
- 2007-03-28 CN CN 200710064873 patent/CN100593954C/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589023A (zh) * | 2004-08-06 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
Non-Patent Citations (2)
Title |
---|
H.264指数哥伦布码解码部件的硬件设计和实现. 姚栋,虞露.电视技术,第11期. 2004 * |
指数哥伦布码的快速平稳解码算法. 虞新阳,吴成柯,赵波.电视技术,第2期. 2006 * |
Also Published As
Publication number | Publication date |
---|---|
CN101277444A (zh) | 2008-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100593954C (zh) | 一种对哥伦布码进行解码的装置及方法 | |
CN1312938C (zh) | 用于解码可变长度编码位流的方法和设备 | |
CN102231830B (zh) | 用于上下文算术编解码的运算单元 | |
CN102098519B (zh) | 视频编码方法、解码方法、编码及解码装置 | |
CN101480054B (zh) | 利用并行二进制算术解码的基于硬件的cabac解码器 | |
CN102132565B (zh) | 解码系统和方法 | |
CN102088603B (zh) | 用于视频编码器的熵编码器及其实现方法 | |
CN103227924B (zh) | 一种算术编码器及编码方法 | |
CN103167289B (zh) | 图像的编码、解码方法及编码、解码装置 | |
WO2012048053A2 (en) | System and method for optimizing context-adaptive binary arithmetic coding | |
CN109428602A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN103929642A (zh) | 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法 | |
CN108965878B (zh) | 一种熵解码方法及装置 | |
CN106303582A (zh) | 一种信源信道联合编解码方法及系统 | |
Tsern et al. | A low power video-rate pyramid VQ decoder | |
CN102801974A (zh) | 基于cabac的图像压缩熵编码器 | |
Jin et al. | Multi-Prediction Compression: An Efficient and Scalable Memory Compression Framework for GP-GPU | |
CN104918049A (zh) | 适用于hevc标准的二进制算术编码模块 | |
CN101090503A (zh) | 熵编码控制方法及熵编码电路 | |
CN103024380B (zh) | 一种数据的熵编码方法和装置 | |
Lee et al. | A design of high-performance pipelined architecture for H. 264/AVC CAVLC decoder and low-power implementation | |
CN101267559A (zh) | 视频解码器的通用熵解码方法及装置 | |
CN103108176A (zh) | Avs和mpeg-2双模解码器中熵解码结构 | |
CN101547353B (zh) | 可变长码解码加速装置 | |
Chen et al. | A low cost context adaptive arithmetic coder for H. 264/MPEG-4 AVC video coding |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220223 Address after: Room 108, floor 1, building 4, No. 2 dacuodeng Hutong, Dongcheng District, Beijing 100010 Patentee after: Beijing Zhongke micro Investment Management Co.,Ltd. Address before: 100029 Beijing city Chaoyang District Beitucheng West Road No. 3 Patentee before: Institute of Microelectronics of the Chinese Academy of Sciences |
|
TR01 | Transfer of patent right |