CN101188753B - 一种视频熵解码查找表的构造方法及视频熵解码方法 - Google Patents
一种视频熵解码查找表的构造方法及视频熵解码方法 Download PDFInfo
- Publication number
- CN101188753B CN101188753B CN 200710114883 CN200710114883A CN101188753B CN 101188753 B CN101188753 B CN 101188753B CN 200710114883 CN200710114883 CN 200710114883 CN 200710114883 A CN200710114883 A CN 200710114883A CN 101188753 B CN101188753 B CN 101188753B
- Authority
- CN
- China
- Prior art keywords
- look
- current
- field
- value
- storage unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种视频熵解码查找表的构造方法,该查找表结构中至少包括下一查找表表号字段。本发明的查找表结构由于直接将下一查找表的表号存入查找表中,在解码时只需从当前表中读取下一查找表的表号,而不用再进行表切换继续查表计算,因此,减少了查表次数和条件寄存器的使用次数。本发明同时提供了一种应用上述查找表结构的视频熵解码方法,显著提高了解码效率。
Description
技术领域
本发明涉及视频编解码领域,尤其涉及一种视频熵解码查找表的构造方法及基于该查找表的视频熵解码方法。
背景技术
AVS标准中使用了CA-2D-VLC(基于上下文的二维变长自适应编码)方式进行编码。对于每一个量化系数块,其解码过程大致如下:
首先,从码流中读取并解析得到变换量化系数。如果变换量化系数的值小于59,则以变换量化系数为索引根据相应的表号查表求得Level(量化系数)、Run(游程)的值;否则,解析码流得到转逸量化系数差值。此时,Run的值由变换量化系数确定:Run=(变换系数-59)/2;Level的值由变换量化系数、转逸量化系数差值和RefAbsLevel(参考量化系数绝对值)共同确定:
然后,计算下一查找表的表号;并且,如果Level的绝对值大于已解码的Level的绝对值的最大值,则将当前的Level的绝对值作为已解码的Level的绝对值的最大值,然后查表得到下一个表号。
重复执行上述过程,直到解码结束。
可见,其通过条件判断和一次查表得到更新的表号。由于表切换等处多次用到条件寄存器,在跳转时占用了一定时间,使得解码效率降低。
发明内容
本发明所要解决的技术问题在于提供一种视频熵解码查找表的构造方法,以提高解码效率。
为了解决上述技术问题,本发明提出一种视频熵解码查找表的构造方法,该查找表包括游程字段、量化系数字段、下一查找表表号字段、结束标记字段和转逸标记字段。
其中,所述视频标准为AVS标准,所述查找表的构造过程包括以下步骤:
A、创建表空间并根据所述视频标准中的原始查找表查表和计算得到量化系数数据和游程数据,将所述量化系数数据和游程数据存储于当前查找表的当前构造存储单元中;
B、根据所述量化系数数据及AVS标准中定义的判断流程得到下一查找表的表号,并将所述下一查找表的表号存储于当前查找表的当前构造存储单元中;
C、查找AVS标准中的原始表得到结束标记值,若该值等于当前构造存储单元的索引值,则将肯定描述符存储于所述当前构造存储单元的相应位置,否则将否定描述符存储于所述当前构造存储单元的相应位置;
D、若当前存储单元的索引值小于59,则将否定描述符存储于所述当前构造存储单元的相应位置,否则将肯定描述符存储于所述当前构造存储单元的相应位置。
优选的,所述视频标准为AVS标准;并且,所述查找表至少包括59个存储单元,每个存储单元至少包括5比特量化系数字段、8比特游程字段、3比特下一查找表表号字段、1比特结束标记字段、1比特转逸标记字段。
相应的,本发明还提出了一种基于上述查找表结构的视频熵解码方法,包括以下步骤:
a、解析码流得到变换量化系数;
b、以所述变换量化系数为索引获得当前查找表中的量化系数数据和游程数据,以及下一查找表的表号;
c、将所述下一查找表表号作为当前查找表表号并重复本次解码流程,直至全部解码完毕。
其中,步骤b还包括获得相应查找表中的结束标记、转逸标记;并且,
步骤b与步骤c之间还包括以下步骤:
b1、判断所述转逸标记是否为真,若是,则执行步骤b2,否则,判断结束标记是否为真,若是,则结束本次熵解码流程,否则执行步骤c;
b2、解析码流得到转逸量化系数差值,并根据所述变换量化系数、转逸量化系数差值和参考量化系数绝对值,经过计算得到游程值和量化系数值,并重复本次解码流程,直至全部解码完毕。
另外,步骤a之前还包括初始化当前查找表表号的步骤。
优选的,所述视频标准为AVS标准;该方法用于变换量化系数小于59的AVS熵解码中。
本发明的查找表结构由于直接将下一查找表的表号存入查找表中,在解码时只需从当前表中读取下一查找表的表号,而不用再进行表切换继续查表计算,因此,减少了查表次数和条件寄存器的使用次数,提高了解码效率。
附图说明
图1是本发明所提出的视频熵解码查找表结构的一个实施例的结构示意图;
图2是本发明所提出的视频熵解码查找表结构的另一个实施例的结构示意图;
图3是本发明所提出的视频熵解码查找表结构的再一个实施例的结构示意图;
图4是本发明所提出的视频熵解码方法的一个实施例的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细阐述。
参考图1,图示了本发明所提出的视频熵解码查找表结构的一个实施例的结构示意图。如图所示,本实施例以AVS视频标准为例;所述查找表结构包括64(0~63)个存储单元,0~58存储单元包括EOB(结束位)标记字段、ESC(转逸位)标记字段、Run(游程)字段、Level(量化系数)字段、next_TabNum(下一查找表的表号)字段,其中每个存储单元占32比特,EOB标记字段占1比特,ESC标记字段占1比特,Run字段占8比特,Level字段占5比特,next_TabNum字段占3比特,其余比特位用0填充。其中,59~63存储单元全部用二进制1进行填充。本实施例不仅可以应用于AVS标准中,还可以用于其他适当的视频标准中,本发明不限于此。
参考图2,图示了本发明所提出的视频熵解码查找表结构的另一个实施例的结构示意图。如图所示,该查找表结构包括59(0~58)个存储单元,每个存储单元包括EOB(结束位)标记字段、ESC(转逸位)标记字段、Run(游程)字段、Level(量化系数)字段、next_TabNum(下一查找表的表号)字段。其中,对于每个存储单元的大小及各个字段的大小可以参考图1的描述。对比图1和图2可以看出:图2是图1的精简型,这样可以节省更多的存储空间。
参考图3,图示了本发明所提出的视频熵解码查找表结构的第三种实施例的结构示意图。如图所示,该查找表结构包括64(0~63)个存储单元,每个存储单元包括EOB(结束位)标记字段、ESC(转逸位)标记字段、Run(游程)字段、Level(量化系数)字段、next_TabNum(下一查找表的表号)字段。其中,对于每个存储单元的大小及各个字段的大小可以参考图1的描述。对比图1、图2、图3可以看出,图1、图2适合索引值小于59的查表操作,图3适合所有0~63索引值的查表操作。所述索引值对应于从码流中解析出的变换量化系数(trans_coeff),也就是codenum的值。
需要说明的是,对于上述三个实施例来说,所述存储单元的个数并不限于64个或59个,填充的内容也并不限于二进制0或1,适应于不同的视频标准其存储单元的个数可以是任何适当的数值,填充的内容不限于全0或全1,可以是任何实现约定的二进制代码。图2和图3所示的实施例可以应用于AVS视频标准,或其他任何适当的视频标准。
另外,所述存储单元还可以仅仅包括Run(游程)字段、Level(量化系数)字段、next_TabNum字段,对于解码需要的其他数据,例如EOB数据、ESC数据,可以通过视频标准中的码表及计算得到。另外,所述各个字段的大小也不限于图1所示实施例,其可以是任何适当的大小。需要注意的是,所述存储单元也可以仅仅包括next_TabNum字段,此时,对于解码需要的其他数据,例如EOB数据、ESC数据,Run数据、Level数据,可以通过视频标准中的码表及计算得到。
下面以图1所示的查找表结构为帧内查找表为例简要阐述其构造的过程。
第一步,创建表号为0~6的7个连续的表空间,分别对应存储Intra_VLC0~Intra_VLC6表中的数据。其中,Intra_VLC0~Intra_VLC6为AVS标准中所定义的7个帧内查找表(也称作码表)。所述每个表空间包含64个整形的存储单元,初始化为0xFFFFFFFF。
第二步,对于第一步中所构造的帧内查找表中,对于第n个表空间(n=0~6)中的第M个存储单元,其中各比特位按照以下方法计算得到:
首先,若M<59,则令当前查找表表号TabNum=n,以M值为索引在Intra_VLC(n)表中进行查询。如果Intra_VLC(n)表中包含M值的索引项,则以M为索引查Intra_VLC(n)表得到量化系数值(Level值)和游程(Run),并把这两个量存储于相应新建查找表的对应存储单元(以M为索引)的Level字段和Run字段;如果,Intra_VLC(n)表中不包含M值的索引项,则以(M-1)为索引查得量化系数和游程,将量化系数符号取反后的值以及游程存储于所述新建查找表的对应存储单元(以M为索引))的Level字段和Run字段。同时,根据当前查找表表号TabNum查表得到对应的maxabsLevel(量化系数最大绝对值),如果Level大于maxabsLevel,则执行下述步骤i,否则执行步骤ii:
i、如果Level等于1,则next_TabNum=1;
如果Level等于2,则next_TabNum=2;
如果Level等于3或4,则next_TabNum=3;
如果Level等于5、6或7,则next_TabNum=4;
如果Level等于8、9或10,,则next_TabNum=5;
如果Level等于10,则next_TabNum=6;
ii、next_TabNum=TabNum;
下面,阐述M<59时的EOB标记位、ESC标记位的确定:
按照当前表号TabNum查得对应的EOB值,如果M等于EOB值,则EOB标记=1,否则,EOB标记=0;
当M<59时,ESC标记全部为0;
然后,若M≥59时,则各个存储单元中的ESC标记=1。59~63存储单元全部用二进制1填充。
通过上述帧内查找表的构造过程可以看出,本发明用新的查找表结构替代了AVS标准中定义的查找表结构,并且本发明将本该在解码过程进行查表计算的部分事先进行计算,并将计算结果直接存储于新建的查找表中,这样在使用时查表的次数大大减少,并且本该有的计算也得到省略,直接查表即可获得相应的数据(例如部分Level和Run值,以及下一查找表的表号等)。因此,解码效率得到提升。
参考图4,图示了本发明所提出的视频熵解码方法的一个实施例的流程图。本实施例中的熵解码流程基于图1所示查找表结构,其包括以下步骤:
步骤S20,初始化当前查找表表号。即,在程序的最开始要对变量的值进行初始化,本实施例中将当前查找表表号初始化为0,即TabNum=0号查找表。
步骤S21,解析码流得到变换系数。即,通过解析码流得到CodeNum值,也就是变换系数(trans_coeff)的值。
步骤S22,读取当前查找表中的数据。即,以步骤S21所得到的变换系数值为索引查找当前查找表(步骤S20中初始化为0),从当前查找表中的对应索引值的存储单元中读取32比特的数据,利用移位运算取出32比特中的0~2比特作为变量next_TabNum的值,取出3~7比特作为变量Level的值,取出8~15比特作为变量Run的值,取出第16比特作为变量ESCflag的值,取出第17比特作为变量EOBflag的值。
步骤S23,判断ESC标记是否为0,若是,则执行步骤S24,否则执行步骤S26。即,判断当前块的ESC标记是否为0,其通过判断变量ESCflag的值是否为0实现,若是则表示当前解码块的转逸标记不为真,此时执行步骤S24,否则则表示当前解码块的转逸标记为真,此时执行步骤S26。
步骤S24,判断EOB标记是否为0,若是,则执行步骤S25,否则执行步骤S28。即,判断当前块的EOB标记是否为0,其通过判断变量EOBflag的值是否为0实现,若是则表示当前解码块的解码结束标记不为真,此时执行步骤S25,否则则表示当前解码块的解码结束标记为真,此时执行步骤S28。
步骤S25,将下一查找表表号设为当前查找表表号。即,将变量next_TabNum中的值传递至TabNum(当前查找表表号)变量中,本步骤执行完毕后转向步骤S21执行。
步骤S26,解析码流得到转逸系数差值并根据该值得到游程和量化系数值。即,当ESC标记为真时,则需要继续解析码流以得到下一个CodeNum值,该值作为转逸系数差值(escape_level_diff),此时Run值由步骤S21中所得到的变换系数值决定,Run=(变换系数-59)/2;Level值由所述变换系数、转移系数差值和RefAbsLevel(参考量化系数绝对值)共同确定:
步骤S27,将下一查找表表号设为当前查找表表号。即,将变量next_TabNum中的值传递至TabNum(当前查找表表号)变量中,本步骤执行完毕后转向步骤S21执行。
步骤S28,结束。即,结束当前块的解码操作。
值得注意的是,对于ESP和EOB标记的判断并不限于肯定描述符和否定描述符分别用二进制“1”或“0”表示的情形,其可以在图1所示的表结构中任意约定,并按照约定格式在解码流程中进行判定。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (7)
1.一种视频熵解码查找表的构造方法,其特征在于,该查找表的结构中包括下一查找表表号字段、游程字段、量化系数字段、结束标记字段和转逸标记字段;
其中,视频标准为AVS标准,所述查找表的构造过程包括以下步骤:
A、创建表空间并根据所述视频标准中的原始查找表查表和计算得到量化系数数据和游程数据,将所述量化系数数据和游程数据存储于当前查找表的当前构造存储单元中;
B、根据所述量化系数数据及AVS标准中定义的判断流程得到下一查找表的表号,并将所述下一查找表的表号存储于当前查找表的当前构造存储单元中;
C、查找AVS标准中的原始表得到结束标记值,若该值等于当前构造存储单元的索引值,则将肯定描述符存储于所述当前构造存储单元的相应位置,否则将否定描述符存储于所述当前构造存储单元的相应位置;
D、若当前存储单元的索引值小于59,则将否定描述符存储于所述当前构造存储单元的相应位置,否则将肯定描述符存储于所述当前构造存储单元的相应位置。
2.根据权利要求1所述的视频熵解码查找表的构造方法,其特征在于,所述查找表至少包括59个存储单元,每个存储单元至少包括5比特量化系数字段、8比特游程字段、3比特下一查找表表号字段、1比特结束标记字段、1比特转逸标记字段。
3.一种基于权利要求1或2所述查找表结构的视频熵解码方法,包括以下步骤:
a、解析码流得到变换量化系数;
b、以所述变换量化系数为索引获得当前查找表中的量化系数数据和游程数据,以及下一查找表的表号;
c、将所述下一查找表表号作为当前查找表表号并重复本次解码流程,直至全部解码完毕。
4.根据权利要求3所述的视频熵解码方法,其特征在于,步骤b还包括获得相应查找表中的结束标记、转逸标记;并且,
步骤b与步骤c之间还包括以下步骤:
b1、判断所述转逸标记是否为真,若是,则执行步骤b2,否则,判断结束标记是否为真,若是,则结束本次熵解码流程,否则执行步骤c;
b2、解析码流得到转逸量化系数差值,并根据所述变换量化系数、转逸量化系数差值和参考量化系数绝对值,经过计算得到游程值和量化系数值,并重复本次解码流程,直至全部解码完毕。
5.根据权利要求3或4所述的视频熵解码方法,其特征在于,步骤a之前还包括初始化当前查找表表号的步骤。
6.根据权利要求3或4所述的视频熵解码方法,其特征在于,该方法用于变换量化系数小于59的AVS熵解码中。
7.根据权利要求3或4所述的视频熵解码方法,其特征在于,所述视频标准为AVS标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710114883 CN101188753B (zh) | 2007-11-27 | 2007-11-27 | 一种视频熵解码查找表的构造方法及视频熵解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710114883 CN101188753B (zh) | 2007-11-27 | 2007-11-27 | 一种视频熵解码查找表的构造方法及视频熵解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101188753A CN101188753A (zh) | 2008-05-28 |
CN101188753B true CN101188753B (zh) | 2010-12-29 |
Family
ID=39480904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710114883 Expired - Fee Related CN101188753B (zh) | 2007-11-27 | 2007-11-27 | 一种视频熵解码查找表的构造方法及视频熵解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101188753B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101959064B (zh) * | 2009-07-14 | 2012-05-30 | 炬力集成电路设计有限公司 | 一种视频解码方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1510931A (zh) * | 2002-12-26 | 2004-07-07 | ��Ϊ��������˾ | 一种改进的多级查找表的建立及查找方法 |
CN1791223A (zh) * | 2005-12-15 | 2006-06-21 | 清华大学 | 基于上下文的自适应二维变长解码方法和装置 |
-
2007
- 2007-11-27 CN CN 200710114883 patent/CN101188753B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1510931A (zh) * | 2002-12-26 | 2004-07-07 | ��Ϊ��������˾ | 一种改进的多级查找表的建立及查找方法 |
CN1791223A (zh) * | 2005-12-15 | 2006-06-21 | 清华大学 | 基于上下文的自适应二维变长解码方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101188753A (zh) | 2008-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6587057B2 (en) | High performance memory efficient variable-length coding decoder | |
KR100813877B1 (ko) | 효율적인 h.264/avc cavlc 디코딩 방법 | |
US20090016452A1 (en) | Blocking for combinatorial coding/decoding for electrical computers and digital data processing systems | |
KR101610610B1 (ko) | 인코더, 디코더 및 방법 | |
CN101370138B (zh) | 一种h.264标准cavlc残差系数的解码方法 | |
JP5383301B2 (ja) | 符号化方法、記憶装置及び復号化方法 | |
US7286066B1 (en) | Acceleration of bitstream decoding | |
CN104378634A (zh) | 输入符号二值化的方法以及从码字中产生索引值的方法 | |
CN100440979C (zh) | 基于上下文的自适应二维变长解码方法和装置 | |
RU2611249C1 (ru) | Модификатор энтропии и способ его использования | |
CN102740066B (zh) | Cavlc解码方法和系统 | |
CN100433560C (zh) | 包含cpu处理器接口的可编程变长解码器 | |
CN101188753B (zh) | 一种视频熵解码查找表的构造方法及视频熵解码方法 | |
US20060126743A1 (en) | Variable length code decoder and decoding method for variable length codes | |
CN101657973A (zh) | 具有采用位精度进行编码和解码的程序的记录介质及其装置 | |
CN100581258C (zh) | 霍夫曼解码方法和霍夫曼解码装置 | |
JP2001267931A (ja) | 可変長の復号システムおよび方法 | |
US6501398B2 (en) | Variable-length code decoder using barrel shifters and a look-up table | |
CN106488245A (zh) | 用于对视频数字数据流进行解码的系统和方法 | |
CN112449191A (zh) | 压缩多个图像的方法、解压缩图像的方法和装置 | |
JP5209467B2 (ja) | 改良されたマルチメディアデコーダに関する方法及び装置 | |
JP2008199100A (ja) | 可変長符号復号装置 | |
KR100674937B1 (ko) | 컨텍스트 적응형 이진 산술 복호화 장치 | |
CN112449186B (zh) | 编码方法、解码方法、相应的装置、电子设备及存储介质 | |
CN100423453C (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101229 |