首页> 中国专利> 游程解码、反扫描、反量化和反变换的方法及装置

游程解码、反扫描、反量化和反变换的方法及装置

摘要

一种游程解码、反扫描、反量化和反变换的方法及装置,属于视频解码技术领域。本发明从变长解码FIFO中读出象素块中一个系数的游程、幅度和块结束标志;进行反量化,得到变换系数及其有效信号;组织存储器阵列,以游程值作为计数初值,以变换系数或0作为输入,控制存储器阵列进行链式移动存储,并不断读入新的系数,直至完成一个块的游程解码和反扫描。从存储器阵列中读出行数据,进行一维行反变换,其结果经过转置操作后并行输出,进行一维列反变换,输出残差系数。本发明中游程解码、反量化、反扫描和反变换共用一个可配置存储器阵列,节省了保存中间结果所需的存储空间,同时将游程解码、反量化和反扫描并行处理,提高了处理速度。

著录项

  • 公开/公告号CN1889689A

    专利类型发明专利

  • 公开/公告日2007-01-03

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN200610027166.8

  • 发明设计人 赵策;周大江;刘佩林;

    申请日2006-06-01

  • 分类号H04N7/26(20060101);H04N7/30(20060101);G06T9/00(20060101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王锡麟;王桂忠

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-17 17:59:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-06-19

    未缴年费专利权终止 IPC(主分类):H04N7/26 授权公告日:20081210 终止日期:20170601 申请日:20060601

    专利权的终止

  • 2008-12-10

    授权

    授权

  • 2007-02-28

    实质审查的生效

    实质审查的生效

  • 2007-01-03

    公开

    公开

说明书

技术领域

本发明涉及一种视频解码技术领域的方法及装置,具体来讲,涉及一种游程解码、反扫描、反量化和反变换的方法及装置。

背景技术

在编码过程中,对预测误差进行变换、量化、扫描、游程编码和变长编码等操作后,得到编码码字。相应地,在解码过程中,要进行变长解码、游程解码、反扫描、反量化、反变换处理,变长解码后首先进行游程解码,再根据扫描方式进行反扫描,获得量化后系数的正常存储地址。当该象素块全部完成反扫描,并对块内各系数进行反量化处理之后,开始进行反变换操作。

变换编码的目的在于去除系数之间的相关性,使变换后的能量尽可能集中在直流系数和较少的几个低频系数上,以提高压缩效率。一般而言,变换后象素块中有效系数个数远小于系数总数。视频压缩标准AVS采用了带PIT(预缩放整数变换)的8×8整数余弦变换技术,即正向缩放、量化、反向缩放结合在一起,而解码端只进行反量化,不再需要反缩放,块内不同位置系数的反量化系数相同,所以同一个象素块内系数的反量化公式是相同的。PIT的使用可以使解码端节省存储与运算开销,而性能又不会受影响。

顺序地对象素块中每个系数逐个做反变换,不能满足实时处理高速视频码流的时序要求。因此,反变换可重复利用同一个一维变换核,分两步完成:先对象素块每一行做一维反变换,再对其结果的每一列做一维反变换。这样就必须对中间结果作转置处理,该转置单元至少要存储一个块的数据,为了和反变换核的输入输出速率相匹配,转置单元应按一行或一列像素并行的方式输入输出数据。

经对现有技术文献的检索发现,Bin Sheng等人在The 6th InternationalConference On ASIC,Shanghai,China上所发表的An Implemented VLSIArchitecture of Inverse Quantizer for AVS HDTV Video Decoder(AVS高清视频解码器中反量化器的VLSI实现),设计了一种处理反扫描和反量化的结构,该结构部分提高了处理速度,有一定的并行性,但存在如下缺点:1、由于视频编码时按逆扫描顺序进行,所以变长解码时需先进行堆栈操作至一个块结束后才能按扫描顺序输出,导致该结构中必须额外设置一个64单元的堆栈存储空间,也同时多占用了最多为64个时钟周期的处理时间;2、该结构中为满足流水线设计要求,设置了所谓的“ping pang”RAM,游程解码之前需多增加64个单元的存储空间,反量化之后也需多增加64个单元的存储空间,存在空间冗余;3、象素块解码时大量系数均为零值,不需再进行反量化操作,而该结构中需对一个象素块内所有系数进行反量化和反扫描操作,处理时间固定为64个时钟周期,存在一定时间冗余。4、该结构的输出数据以象素块为单位存放在RAM中,无法实现高速二维整数变换所需的并行数据输出。5、该结构中虽未明确反变换处理单元的结构,但按其设计,必须把反变换作为另一个流水线处理单元,需要另外64个寄存器完成转置操作。

综上,该文设计的解码结构中,其流水线设计的存储空间开销较大,处理时间较长,存在不少冗余,也无法满足高速并行反变换处理单元的数据要求。

发明内容

为解决上述问题,本发明的目的在于,提供一种游程解码、反扫描、反量化和反变换的方法及装置。本发明基于AVS所采用的带PIT的8×8整数余弦变换技术,利用高速并行反变换操作必须的转置寄存器堆作为共用存储器阵列,并行处理游程解码、反扫描、反量化操作,将游程解码、反扫描、反量化和反变换融合在一个流水线处理单元中,可以节省存储空间、加快处理速度。

本发明是通过以下技术方案实现的:

本发明所述的游程解码、反扫描、反量化和反变换的方法,包括:

第一步,接收变长解码输出的游程Run值和幅度Level值;

第二步,对幅度Level值进行反量化,得到变换系数及其有效信号;

第三步,组织存储器阵列,重复进行链式移动存储,直至完成一个块内所有系数的并行游程解码和反扫描;

第四步,从存储器阵列中并行读出反扫描后变换系数块的行数据,进行一维行反变换,并同时保存结果;

第五步,经过转置操作后,按列并行读出行反变换结果,进行一维列反变换,输出残差系数;

第六步,将存储器阵列初始化,开始进行下一个象素块的处理。

第三步所述组织存储器阵列,即组织与象素块中系数一一对应的寄存器单元,按照象素块大小和系数位置,组成行列数目相同的存储器阵列;其行数据可从第一行并行读出,从最后一行并行输入;其列数据可从第一列并行输出,从最后一列并行输入;串行输入数据可从第一个寄存器单元输入。

第三步所述链式移动存储,即按一定顺序排列一组寄存器单元,每一次操作时,即将前一个寄存器单元中的数值赋给后一个寄存器单元,链式移动存储的输入赋给第一个寄存器单元。

第三步所述并行游程解码和反扫描,即首先初始化存储器阵列,然后以游程Run值作为初始值进行计数,控制存储器阵列按照扫描顺序进行链式移动存储,每进行一次,计数值减少1,直到减小为0时停止;当变换系数有效时,选择变换系数作为链式移动存储的输入数据,否则选择0。

第六步所述存储器阵列初始化,即一种自动清零操作,在并行读取存储器阵列的列数据时,即将全零数据按列存入,在列反变换完成时,即已完成初始化操作。

本发明所述的游程解码、反扫描、反量化和反变换的装置,包括变长解码FIFO、反量化器、模式控制器、链式移动存储控制器、选择器、可配置存储器阵列、一维反变换器。变长解码FIFO中输出幅度Level和量化参数至反量化器、输出游程Run至链式移动存储控制器、输出扫描方式和块结束标志至模式控制器;反量化器输出有效变换系数至选择器;链式移动存储控制器输出链式移动存储状态信息至模式控制器、输出使能信号至选择器;选择器选择变换系数或0输出至可配置存储器阵列;模式控制器输出工作模式和配置方式至可配置存储器阵列、输出工作模式至一维反变换器、输出读控制信号至变长解码FIFO;可配置存储器阵列输出转置后的行变换数据至一维反变换器;一维反变换器输出一维行变换数据至可配置存储器阵列、输出反变换结果。

其中:

所述的变长解码FIFO,用来缓存变长解码输出的游程Run、幅度Level、扫描方式、块结束标志和量化参数,平衡变长解码和游程解码、反扫描之间的速度差;

所述反量化器,根据视频编码标准规定,利用量化参数查找反量化参数表,对幅度Level值进行反量化处理,得到变换系数;

所述模式控制器,根据变长解码输出的块结束标志和链式移动存储信息,向存储器阵列提供工作模式信息、向一维反变换器提供启动和停止信息;

所述链式移动存储控制器,用来根据游程Run进行游程解码,向选择器和模式控制器提供链式移动存储控制信息,控制变换系数写入存储器阵列以及进行链式移动存储;其中设置了游程计数器,以游程Run值作为初值,当反量化器完成对应幅度Level的反量化时,控制选择器选择变换系数输出,否则选择0;每进行一次链式移动存储,游程计数值减少1,直到减小为0,则开始读取新的游程数值;同时向模式控制器提供链式移动存储开始信息;

所述选择器,根据链式移动存储控制信息,选择将0或者变换系数作为存储器阵列的串行输入数据;

所述可配置存储器阵列,用来进行变换系数存储、游程解码和反扫描、第二次一维反变换所需的中间转置操作;阵列中每个寄存器单元由1个选择器控制1个寄存器,根据工作模式信息,可选择空闲数据、链式移动存储数据、行数据和列数据等4种输入中的一种进行存储:空闲数据即为该寄存器中原来的数据;链式移动存储数据即按照扫描顺序排列所有寄存器单元时前一个单元中的数据,第一个寄存器单元的链式移动存储数据即为存储器阵列的串行输入数据;列数据即存储器阵列中紧邻右侧的寄存器单元中的数据,最后一列的寄存器的列数据全部为0;行数据即存储器阵列中紧邻下方的寄存器单元的数据,最后一行的寄存器单元的行数据为寄存器阵列的并行输入数据;

所述一维反变换器,通过模式控制器控制,根据视频编码标准规定,进行两次一维反变换,得到残差系数。

根据本发明的方法,在游程解码和反扫描前已将存储器阵列全部初始化为0,由于编码时按逆扫描顺序进行,所以解码时按同样顺序以从最高频非零系数开始链式移动存储,省去了堆栈操作及相应操作时间;本发明中,利用变换编码后远离直流分量的高频交流分量大都趋近于零的特性,只处理直流系数到最高频非零系数之间的系数,省去了对部分高频零系数的处理时间,所以整个块的游程解码和反扫描处理周期数小于系数个数,高频零系数越多,处理时间越短;同时,本发明通过流水线设计,用存储器阵列实现高速并行反变换操作,其时间固定为22个时钟周期;这样将游程解码、反扫描、反量化以及反变换整合为一个块级流水线处理单元,既满足高速视频处理的时间要求,又省去了各处理单元之间的中间存储器,有效节省存储空间。

将本发明与前文所提到的Bin Sheng等人发表的的论文中所述的结构进行比较,设最高频非零系数为扫描顺序上第N个系数(0≤N≤64,根据统计,一般情况下N<20),象素块内共有P个非零系数(0≤P≤64),可得到如下的对比结果:1、从存储空间上来看,Bin Sheng等人的设计结构至少需要2个64单元的堆栈、2个64单元的RAM和64个寄存器;本发明仅需要1个2单元的FIFO和64个寄存器;2、从对一个象素块的处理速度上来看,Bin Sheng等人的设计结构中,以游程解码、反扫描和反量化作为一个流水线单元,仅此单元的处理就需要64个时钟周期;本发明的并行游程解码、反扫描和反量化只需N个时钟周期,加上反变换22个时钟周期,共计22+N个周期,即平均小于42个时钟周期,同时也为变长解码单元省去了堆栈操作所需的P个时钟周期。

附图说明

图1是现有解码器中处理游程解码、反扫描、反量化和反变换的示意图;

图2是本发明的方法流程图;

图3是本发明的处理装置的结构示意图;

图4是本发明装置中可配置存储器阵列中寄存器单元的示意图;

图5是本发明装置中应用于AVS标准的可配置存储器阵列的示意图。

具体实施方式

下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。

图1所示为背景技术所述的现有解码器中处理游程解码、反扫描、反量化和反变换的结构,虽然有一定并行性,但因为结构原因,仍需要大量存储中间结果的存储器,处理时间也较长。

图2所示为本发明的方法流程图,其中将游程解码、反扫描、反量化进行并行处理,同时合理安排处理顺序,利用反变换必须的转置存储器存储中间结果,既节省了存储空间,也有利于并行处理,缩短了处理时间。

本发明装置的结构如图3所示,包括变长解码FIFO、反量化器、模式控制器、链式移动存储控制器、选择器、可配置存储器阵列、一维反变换器。

变长解码FIFO中输出幅度Level至反量化器、输出游程Run至链式移动存储控制器、输出扫描方式和块结束标志至模式控制器;反量化器输出有效变换系数至选择器;链式移动存储控制器输出链式移动存储状态信息至模式控制器、输出使能信号至选择器;选择器选择变换系数或0输出至可配置存储器阵列;模式控制器输出工作模式和配置方式至可配置存储器阵列、输出工作模式至一维反变换器、输出读控制信号至变长解码FIFO;可配置存储器阵列输出转置后的行变换数据至一维反变换器;一维反变换器输出一维行变换数据至可配置存储器阵列、输出反变换结果。

下面结合附图4和附图5,以本发明方法和装置在先进音视频编码标准AVS中的应用为例,对本发明的技术方案做进一步的详细描述。AVS视频标准中有两种扫描方式,分别是帧扫描顺序和场扫描顺序,本实例中采用帧扫描顺序,处理的象素块大小为8×8,最高频非零系数为扫描顺序上第12个系数,象素块内共有6个非零系数。处理过程简述如下:

如图4所示为可配置存储器阵列中的寄存器单元结构图,即阵列中每个寄存器单元由1个选择器控制1个寄存器,根据模式信息,选择空闲数据、链式移动存储数据、行数据和列数据4种输入中的一种进行存储。空闲数据即为该寄存器中原来的数据;链式移动存储数据即按照帧扫描方式排列所有寄存器单元时前一个单元中的数据,第一个寄存器单元的链式移动存储数据即为存储器阵列的串行输入数据;列数据即存储器阵列中紧邻右侧的寄存器单元中的数据,最后一列的寄存器单元的列数据全部为0;行数据即存储器阵列中紧邻下方的寄存器单元的数据,最后一行的寄存器单元的行数据为存储器阵列的并行输入数据。

如图5所示为在帧扫描顺序下,由图4中的寄存器单元组成的可配置存储器阵列示意图,其行数据可从第一行并行读出,从最后一行并行输入;其列数据可从第一列并行输出,从最后一列并行输入;串行输入数据可从第一个寄存器单元输入。

从变长解码FIFO中,读出游程Run、幅度Level、扫描方式、块结束标志以及量化参数。

反量化器根据量化参数对Level值进行反量化操作,操作完成后提供数据有效信号;链式移动存储输入数据由选择器控制,当反量化后数据有效时,选择反量化后数据,否则选择0。

同时,通过设置游程计数器,以每次从变长解码FIFO中读取的新的游程Run值作为初值,通过模式控制器控制可配置存储器阵列按照扫描顺序进行链式移动存储。

链式移动存储即按照图5中虚线所示的扫描顺序,将输入数据存入0号寄存器,将0号寄存器内数值存入1号寄存器,1号寄存器内数值存入8号寄存器……62号寄存器内数值存入63号寄存器,上述63个存储器存储过程为并行处理。

存储器阵列每移动一次,计数值减少1,直到减小为0,则停止链式移动存储,并由模式控制器控制开始从变长解码FIFO中读取新的Level和Run数值对。

重复以上操作直至已从变长解码FIFO中读出本象素块Run和Level数据并完成游程解码和反量化操作时,即已完成一个块内所有系数的并行游程解码和反扫描。此处理过程需用12个时钟周期。

完成整个块的并行反量化和游程解码处理后,模式控制器启动一维变换器,此时可配置存储器阵列中的寄存器按照对应象素块中系数的顺序排列,可从存储器阵列顶部并行读出行数据,进行一维行反变换,其结果随即由存储器阵列的底部并行向上移动存储存入直至完成整个块的行变换;然后从存储器阵列左侧并行读出列数据,进行一维列反变换,反变换的输出即为该块的二维反变换后的残差数据。

在进行列变换的同时,就从存储器阵列的右侧依次存入全零数据,对存储器阵列进行初始化,当行变换的结果数据完全移出时,阵列的初始化也以完成,此时模式控制器控制停止一维变换器,并控制开始读取变长解码FIFO中新的象素块的数据,开始下一个块的处理。反变换处理固定需要22个时钟周期。

按照本发明所实施的上述处理过程,仅需要1个2单元的FIFO和64个寄存器;本发明的并行游程解码、反扫描和反量化方法只需12个时钟周期,反变换处理需22个时钟周期,则游程解码、反扫描、反量化和反变换作为一个流水线处理单元,其处理时间为34个周期。

而在Bin Sheng等人提出的方法或类似方案中,至少需要2个64单元的堆栈空间、2个64单元的RAM和64个寄存器;仅游程解码、反扫描和反量化作为一个流水线单元需要64个时钟周期;变长解码单元中的堆栈操作也另需8个时钟周期。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号