解码方法及解码装置与流程

文档序号:12697328阅读:452来源:国知局
解码方法及解码装置与流程

本发明涉及解码领域,特别是涉及一种解码方法及解码装置。



背景技术:

熵编码是JPEG图像压缩的基本技术之一。在对编码后的JPEG图像进行解码操作时,首先要对图像进行熵解码,然后对熵解码后的数据经过反ZIGZAG扫描、反量化后得到YUV数据,再经过色彩空间将YUV数据转换得到RGB数据。

其中进行熵解码的编码包括直流系数编码以及交流系数编码,直流系数编码包括直流系数值编码以及直流系数长度编码。对直流系数编码解码时,使用直流系数长度编码在直流亮度哈夫曼表中进行查表操作可获取相应的直流系数长度;然后使用直流系数长度获取相应长度的直流系数值编码;最后使用直流系数值编码在变长编码表中进行查表操作获取相应的直流系数值。该直流系数值表示当前直流系数与前一直流系数之间的差值。

交流系数编码包括交流系数值编码以及交流系数长度编码。对交流系数编码解码时,使用交流系数长度编码在交流亮度哈夫曼表中进行查表操作可获取相应的交流系数长度以及交流系数间隔,该交流系数间隔表示当前交流系数与前一交流系数之间的间隔,即0的数量;然后通过交流系数长度获取相应长度的交流系数值编码;最后使用交流系数值编码在变长编码表中进行查表操作获取相应的交流系数值。

这样即完成了熵解码的过程,通过直流系数值、交流系数值以及交流系数间隔可组成数组代码,通过该数组代码可以构建相应的解码数组。

熵解码一般采用六个步骤完成一次解码。请参阅图1,图1为现有的解码 装置的结构示意图。

如图1所示,该熵解码装置10包括码流输入缓冲模块11、组码模块12、比较模块13、查表模块14以及变长码解析模块15。

具体解码操作如下,首先向码流输入缓冲模块11逐位输入编码,并通过比较模块13将接收到的编码与预设哈夫曼常数码进行比较,如接收到的编码与不符合预设哈夫曼常数码的编码规则,则说明当前接收到的编码不够完整,则码流输入缓冲模块11继续接收编码,并通过组码模块12对当前接收到的所有编码进行组码操作,以构成新的编码。如接收到的编码符合预设哈夫曼常数码的编码规则,则查表模块14通过在直流亮度哈夫曼表以及交流亮度哈夫曼表进行查表操作获取相应的交流系数长度、交流系数间隔以及直流系数长度。然后变长码解析模块15通过交流系数长度从码流输入缓冲模块11获取相应的交流系数值编码,通过直流系数长度从码流输入缓冲模块11获取直流系数值编码。最后变长码解析模块15使用交流系数值编码和直流系数值编码在变长编码表进行查表操作获取相应交流系数值以及直流系数值。

这里由于码流输入缓冲模块是逐位输入编码,并且每次输入编码均需要进行组码操作以及对比操作,得到符合要求的编码之后,还需要使用交流系数长度以及直流系数长度从码流输入缓冲模块获取交流系数值编码和直流系数值编码。因此整体解码效率较为低下。



技术实现要素:

本发明实施例提供一种解码效率较高的解码方法及解码装置;以解决现有的解码方法及解码装置的整体解码效率较为低下的技术问题。

本发明实施例提供一种解码方法,其包括:

以第一设定值为长度单元接收编码数据,并对接收到的所述编码数据进行合成;

当合成后的编码数据的长度大于等于第二设定值时,使用预设哈夫曼表对 所述合成后的编码数据进行查表解码操作,以获取所述合成后的编码数据中的解码部分的系数长度值以及系数间隔值;

根据所述解码部分的系数长度值,从所述合成后的编码数据中获取所述解码部分的变长编码;

使用预设变长编码表,对所述解码部分的变长编码进行查表解码操作,以获取所述合成后的编码数据中的解码部分的系数值;以及

根据所述解码部分的系数间隔值以及系数值,获取所述解码部分的熵解码。

本发明实施例还提供一种解码装置,其包括:

合成模块,用于以第一设定值为长度单元接收编码数据,并对接收到的所述编码数据进行合成;

第一查表模块,用于当合成后的编码数据的长度大于等于第二设定值时,使用预设哈夫曼表对所述合成后的编码数据进行查表解码操作,以获取所述合成后的编码数据中的解码部分的系数长度值以及系数间隔值;

变长编码获取模块,用于根据所述解码部分的系数长度值,从所述合成后的编码数据中获取所述解码部分的变长编码;

第二查表模块,用于使用预设变长编码表,对所述解码部分的变长编码进行查表解码操作,以获取所述合成后的编码数据中的解码部分的系数值;以及

解码模块,用于根据所述解码部分的系数间隔值以及系数值,获取所述解码部分的熵解码。

相较于现有技术的解码方法及解码装置,本发明的解码方法及解码装置使用预设哈夫曼表以及预设变长编码表对设定长度的编码数据进行解码操作,可以有效的提高解码操作的解码效率;解决了现有的解码方法及解码装置的整体解码效率较为低下的技术问题。

附图说明

图1为现有的解码装置的结构示意图;

图2为本发明的解码方法的第一优选实施例的流程图;

图3为本发明的解码方法的第二优选实施例的流程图;

图4为本发明的解码方法的第二优选实施例的步骤309的流程图;

图5为本发明的解码装置的第一优选实施例的结构示意图;

图6为本发明的解码装置的第二优选实施例的结构示意图;

图7为本发明的解码装置的第二优选实施例的编码数据更新模块的结构示意图;

图8A-图8D为本发明的解码装置以及解码方法的具体实施例的示意图;

图9为本发明的解码装置所在的电子设备的工作环境结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本发明的解码装置可使用各种电子设备进行实施,该电子设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小 型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。但该电子设备优选为解码服务器,以有效的提高对编码数据的解码效率。

请参照图2,图2为本发明的解码方法的第一优选实施例的流程图。本优选实施例的解码方法可使用上述的电子设备进行实施。该解码方法包括:

步骤S201,以第一设定值为长度单元接收编码数据,并对接收到的编码数据进行合成;

步骤S202,当合成后的编码数据的长度大于等于第二设定值时,使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值;

步骤S203,根据解码部分的系数长度值,从合成后的编码数据中获取解码部分的变长编码;

步骤S204,使用预设变长编码表,对解码部分的变长编码进行查表解码操作,以获取合成后的编码数据中的解码部分的系数值;

步骤S205,根据解码部分的系数间隔值以及系数值,获取解码部分的熵解码。

下面详细说明本优选实施例的解码方法的各步骤的具体流程。

在步骤S201中,解码装置以第一设定值为长度单元接收外部的编码数据,如第一设定值为8比特,则以8比特为长度单元,接收外部的编码数据。由于后续将对一个长度较大的编码数据同时进行解码操作,因此这里的第一设定值可设置较大,如4比特至16比特。随后解码装置对接收到第一设定值长度的编码数据进行合成操作,得到合成后的编码数据。随后转到步骤S202。

在步骤S202中,解码装置判断合成后的编码数据的长度是否大于等于第二设定值,该第二设定值为一大于第一设定值的预设值,其包括至少一组系数长度编码、系数间隔编码以及变长编码。其中系数长度编码用来生成系数长度值,系数间隔编码用来生成系数间隔值,变长编码用来生成当前系数值。当然该编码数据也可包括多组系数长度编码、系数间隔编码以及变长编码。

优选的,当编码数据的长度大于第二设定值,小于第四设定值如40比特时,解码装置可以在对合成后的编码数据进行解码处理的同时,继续同步接收外部的编码数据,以便提高解码操作的效率。

随后解码装置使用预设的哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值。这里的解码部分为位于编码数据头部的一组系数长度编码、系数间隔编码以及变长编码。这样通过对系数长度编码进行解码操作,以获取解码部分对应的系数长度值;并通过对系数间隔编码进行解码操作,以获取解码部分对应的系数间隔值。这里的系数长度值包括表示直流系数长度的直流系数长度值以及表示交流系数长度的交流系数长度值。系数间隔值是指当前系数与前一系数之间的间隔,即0的数量。随后转到步骤S203。

在步骤S203中,解码装置根据步骤S202获取的解码部分的系数长度值,从合成后的编码数据中获取解码部分对应的相应长度的变长编码。随后转到步骤S204。

在步骤S204中,解码装置使用预设变长编码表,对根据步骤S203中获取的变长编码进行查表解码操作,以获取合成后的解码数据中的解码部分的当前系数值。随后转到步骤S205。

在步骤S205中,解码装置根据步骤S202获取的系数间隔值以及步骤S204获取的系数值,获取解码部分的熵解码。

这样即完成了本优选实施例的解码方法的解码过程。

本优选实施例的解码方法使用预设哈夫曼表以及预设变长编码表对设定长度的编码数据进行解码操作,可以有效的提高解码操作的解码效率。

请参照图3,图3为本发明的解码方法的第二优选实施例的流程图。本优选实施例的解码方法可使用上述的电子设备进行实施。该解码方法包括:

步骤S301,使用存储器预先加载预设哈夫曼表以及预设变长编码表;

步骤S302,以第一设定值为长度单元接收编码数据,并对接收到的编码数据进行合成;

步骤S303,当合成后的编码数据的长度大于等于第二设定值时,使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值;

步骤S304,根据解码部分的系数长度值,从合成后的编码数据中获取解码部分的变长编码;

步骤S305,使用预设变长编码表,对解码部分的变长编码进行查表解码操作,以获取合成后的编码数据中的解码部分的系数值;

步骤S306,根据解码部分的系数间隔值以及系数值,获取解码部分的熵解码;

步骤S307,对解码部分的熵解码进行合成,并以第三设定值为长度单元,对合成后的熵解码进行输出操作;

步骤S308,使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的编码长度值;

步骤S309,使用编码长度值以及系数长度值,对编码数据进行更新操作。

下面详细说明本优选实施例的解码方法的各步骤的具体流程。

在步骤S301中,解码装置使用存储器预先加载预设哈夫曼表以及预设变长编码表。用户可根据需要以及具体数据编码情况对预设哈夫曼表以及预设变长编码表进行设置,以便后续步骤对预设哈夫曼表以及预设变长编码表进行调用。

在步骤S302中,解码装置以第一设定值为长度单元接收外部的编码数据,如第一设定值为8比特,则以8比特为长度单元,接收外部的编码数据。由于后续将对一个长度较大的编码数据同时进行解码操作,因此这里的第一设定值可设置较大,如4比特至16比特。随后解码装置对接收到第一设定值长度的编码数据进行合成操作,得到合成后的编码数据。随后转到步骤S303。

在步骤S303中,解码装置判断合成后的编码数据的长度是否大于等于第二 设定值,该第二设定值为一大于第一设定值的预设值,第二设定值优选为31比特,以保证编码数据包括至少一组系数长度编码、系数间隔编码以及变长编码。其中系数长度编码用来生成系数长度值,系数间隔编码用来生成系数间隔值,变长编码用来生成当前系数值。当然该编码数据也可包括多组系数长度编码、系数间隔编码以及变长编码。

优选的,当编码数据的长度大于第二设定值,小于第四设定值如40比特时,解码装置可以在对合成后的编码数据进行解码处理的同时,继续同步接收外部的编码数据,以便提高解码操作的效率。

随后解码装置使用预设的哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值。这里的解码部分为位于编码数据头部的一组系数长度编码、系数间隔编码以及变长编码。这样通过对系数长度编码进行解码操作,以获取解码部分对应的系数长度值;并通过对系数间隔编码进行解码操作,以获取解码部分对应的系数间隔值。这里的系数长度值包括表示直流系数长度的直流系数长度值以及表示交流系数长度的交流系数长度值。系数间隔值是指当前系数与前一系数之间的间隔,即0的数量。随后转到步骤S304以及步骤S308。

在步骤S304中,解码装置根据步骤S303获取的解码部分的系数长度值,从合成后的编码数据中获取解码部分对应的相应长度的变长编码。随后转到步骤S305。

在步骤S305中,解码装置使用预设变长编码表,对根据步骤S304中获取的变长编码进行查表解码操作,以获取合成后的解码数据中的解码部分的当前系数值。随后转到步骤S306。

在步骤S306中,解码装置根据步骤S303获取的系数间隔值以及步骤S305获取的系数值,获取解码部分的熵解码。

在步骤S307中,解码装置对步骤S306获取的熵解码进行合成,并以第三设定值为长度单元,对合成后的熵解码进行输出操作。这里的第三设定值优选 为128比特,这样可以有效的提高输出通道利用率以及输出效率。

在步骤S308中,解码装置使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的编码长度值。这里的编码长度值为系数长度编码和系数间隔编码的长度值。随后转到步骤S309。

在步骤S309中,解码装置使用步骤S308获取的编码长度值,以及通过系数长度编码获取的系数长度值,确定编码数据中完整的解码部分,从而使用解码部分对编码数据进行更新操作,即将步骤S302中获取的合成后的编码数据中的解码部分删除,以便接收新的编码数据进行合成。

具体请参照图4,图4为本发明的解码方法的第二优选实施例的步骤309的流程图。该步骤S309包括:

步骤S401,解码装置从合成后的编码数据中删除编码长度值以及系数长度值对应的编码数据;以腾出更多的编码数据存储空间;

步骤S402,解码装置以第一设定值为长度单元继续接收编码数据,并对接收到的编码数据进行合成,以使得合成后的编码数据的长度大于等于第二设定值。这样即实现了编码数据的及时更新。

这样即完成了本优选实施例的解码方法的解码过程。

在第一优选实施例的基础上,本优选实施例的解码方法实时对输入的编码数据进行更新、以及对熵解码的输出进行整合操作;进一步提高了解码操作的解码效率。

本发明还提供一种解码装置,请参照图5,图5为本发明的解码装置的第一优选实施例的结构示意图。本优选实施例的解码装置可使用上述的解码方法的第一优选实施例进行实施。该解码装置50包括合成模块51、第一查表模块52、变长编码获取模块53、第二查表模块54以及解码模块55。

合成模块51用于以第一设定值为长度单元接收编码数据,并对接收到的编码数据进行合成;第一查表模块52用于当合成后的编码数据的长度大于等于第 二设定值时,使用预设哈夫曼表对所述合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值;变长编码获取模块53用于根据解码部分的系数长度值,从合成后的编码数据中获取解码部分的变长编码;第二查表模块54用于使用预设变长编码表,对解码部分的变长编码进行查表解码操作,以获取合成后的编码数据中的解码部分的系数值;解码模块55用于根据解码部分的系数间隔值以及系数值,获取解码部分的熵解码。

本优选实施例的解码装置50使用时,首先合成模块51以第一设定值为长度单元接收外部的编码数据,如第一设定值为8比特,则以8比特为长度单元,接收外部的编码数据。由于后续将对一个长度较大的编码数据同时进行解码操作,因此这里的第一设定值可设置较大,如4比特至16比特。随后合成模块51对接收到第一设定值长度的编码数据进行合成操作,得到合成后的编码数据。

随后第一查表模块52判断合成后的编码数据的长度是否大于等于第二设定值,该第二设定值为一大于第一设定值的预设值,其包括至少一组系数长度编码、系数间隔编码以及变长编码。其中系数长度编码用来生成系数长度值,系数间隔编码用来生成系数间隔值,变长编码用来生成当前系数值。当然该编码数据也可包括多组系数长度编码、系数间隔编码以及变长编码。

优选的,当编码数据的长度大于第二设定值,小于第四设定值如40比特时,解码装置可以在对合成后的编码数据进行解码处理的同时,继续同步接收外部的编码数据,以便提高解码操作的效率。

随后第一查表模块52使用预设的哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值。这里的解码部分为位于编码数据头部的一组系数长度编码、系数间隔编码以及变长编码。这样通过对系数长度编码进行解码操作,以获取解码部分对应的系数长度值;并通过对系数间隔编码进行解码操作,以获取解码部分对应的 系数间隔值。这里的系数长度值包括表示直流系数长度的直流系数长度值以及表示交流系数长度的交流系数长度值。系数间隔值是指当前系数与前一系数之间的间隔,即0的数量。

然后变长编码获取模块53根据第一查表模块52获取的解码部分的系数长度值,从合成后的编码数据中获取解码部分对应的相应长度的变长编码。

随后第二查表模块54使用预设变长编码表,对根据变长编码获取模块获取的变长编码进行查表解码操作,以获取合成后的解码数据中的解码部分的当前系数值。

最后解码模块55根据第一查表模块52获取的系数间隔值以及第二查表模块54获取的系数值,获取解码部分的熵解码。

这样即完成了本优选实施例的解码装置50的解码过程。

本优选实施例的解码装置使用预设哈夫曼表以及预设变长编码表对设定长度的编码数据进行解码操作,可以有效的提高解码操作的解码效率。

请参照图6,图6为本发明的解码装置的第二优选实施例的结构示意图。本优选实施例的解码装置可使用上述的解码方法的第二优选实施例进行实施。该解码装置60包括加载模块61、合成模块62、第一查表模块63、变长编码获取模块64、第二查表模块65、解码模块66、编码长度值获取模块67、编码数据更新模块68以及输出模块69。

加载模块61用于使用存储器预先加载预设哈夫曼表以及预设变长编码表。合成模块62用于以第一设定值为长度单元接收编码数据,并对接收到的编码数据进行合成。第一查表模块63用于当合成后的编码数据的长度大于等于第二设定值时,使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值。变长编码获取模块64用于根据解码部分的系数长度值,从合成后的编码数据中获取解码部分的变长编码。第二查表模块65用于使用预设变长编码表,对解码部分的变长编码 进行查表解码操作,以获取合成后的编码数据中的解码部分的系数值。解码模块66用于根据解码部分的系数间隔值以及系数值,获取解码部分的熵解码。编码长度值获取模块67用于使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的编码长度值。编码数据更新模块68用于使用编码长度值以及系数长度值,对编码数据进行更新操作。输出模块69用于对解码部分的熵解码进行合成,并以第三设定值为长度单元,对合成后的熵解码进行输出操作。

请参照图7,图7为本发明的解码装置的第二优选实施例的编码数据更新模块的结构示意图。该编码数据更新模块68包括删除单元681以及合成单元682。删除单元681用于从合成后的编码数据中删除编码长度值以及系数长度值对应的编码数据;合成单元682用于以第一设定值为长度单元继续接收编码数据,并对接收到的编码数据进行合成,以使得合成后的编码数据的长度大于等于第二设定值。

本优选实施例的解码装置60使用时,首先加载模块61使用存储器预先加载预设哈夫曼表以及预设变长编码表。用户可根据需要以及具体数据编码情况对预设哈夫曼表以及预设变长编码表进行设置,以便后续步骤对预设哈夫曼表以及预设变长编码表进行调用。

随后合成模块62以第一设定值为长度单元接收外部的编码数据,如第一设定值为8比特,则以8比特为长度单元,接收外部的编码数据。由于后续将对一个长度较大的编码数据同时进行解码操作,因此这里的第一设定值可设置较大,如4比特至16比特。随后合成模块对接收到第一设定值长度的编码数据进行合成操作,得到合成后的编码数据。

随后第一查表模块63判断合成后的编码数据的长度是否大于等于第二设定值,该第二设定值为一大于第一设定值的预设值,第二设定值优选为31比特,以保证编码数据包括至少一组系数长度编码、系数间隔编码以及变长编码。其中系数长度编码用来生成系数长度值,系数间隔编码用来生成系数间隔值,变 长编码用来生成当前系数值。当然该编码数据也可包括多组系数长度编码、系数间隔编码以及变长编码。

优选的,当编码数据的长度大于第二设定值,小于第四设定值如40比特时,解码装置可以在对合成后的编码数据进行解码处理的同时,继续同步接收外部的编码数据,以便提高解码操作的效率。

随后第一查表模块63使用预设的哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值。这里的解码部分为位于编码数据头部的一组系数长度编码、系数间隔编码以及变长编码。这样通过对系数长度编码进行解码操作,以获取解码部分对应的系数长度值;并通过对系数间隔编码进行解码操作,以获取解码部分对应的系数间隔值。这里的系数长度值包括表示直流系数长度的直流系数长度值以及表示交流系数长度的交流系数长度值。系数间隔值是指当前系数与前一系数之间的间隔,即0的数量。

然后变长编码获取模块64根据第一查表模块获取的解码部分的系数长度值,从合成后的编码数据中获取解码部分对应的相应长度的变长编码。

随后第二查表模块65使用预设变长编码表,对根据变长编码获取模块64获取的变长编码进行查表解码操作,以获取合成后的解码数据中的解码部分的当前系数值。

然后解码模块66根据第一查表模块63获取的系数间隔值以及第二查表模块65获取的系数值,获取解码部分的熵解码。

最后输出模块69对解码模块66获取的熵解码进行合成,并以第三设定值为长度单元,对合成后的熵解码进行输出操作。这里的第三设定值优选为128比特,这样可以有效的提高输出如通道利用率以及输出效率。

优选的,在第一查表模块63获取合成后的编码数据中的解码部分的系数长度值以及系数间隔值后,编码长度值获取模块67使用预设哈夫曼表对合成后的编码数据进行查表解码操作,以获取合成后的编码数据中的解码部分的编码长 度值。这里的编码长度值为系数长度编码和系数间隔编码的长度值。

随后编码数据更新模块68使用编码长度值获取模块67获取的编码长度值,以及通过系数长度编码获取的系数长度值,确定编码数据中完整的解码部分,从而使用解码部分对编码数据进行更新操作,即将合成模块62获取的合成后的编码数据中的解码部分删除,以便接收新的编码数据进行合成。具体为:

编码数据更新模块68的删除单元681从合成后的编码数据中删除编码长度值以及系数长度值对应的编码数据;以腾出更多的编码数据存储空间。

随后编码数据更新模块68的合成单元682以第一设定值为长度单元继续接收编码数据,并对接收到的编码数据进行合成,以使得合成后的编码数据的长度大于等于第二设定值。这样即实现了编码数据的及时更新。

这样即完成了本优选实施例的解码装置30的解码过程。

在第一优选实施例的基础上,本优选实施例的解码装置实时对输入的编码数据进行更新、以及对熵解码的输出进行整合操作;进一步提高了解码操作的解码效率。

下面通过一具体实施例说明本发明的解码装置以及解码方法的具体工作原理,请参照图8A-图8D,8A-图8D为本发明的解码装置以及解码方法的具体实施例的示意图。

本具体实施例中的编码数组如图8A所示,按ZIGZAG扫描后得到1*64数组(15、0、-2、-1、-1、-1、0、0、-1、55个0)。这样编码数据的系数值为15、-2、-1、-1、-1、-1。其中15根据前一编码数组的第一系数进行交流系数表示,如前一编码数组的第一系数为12,则15对应的交流系数为15-12=3,其他编码数据的系数值均以直流系数表示,即对应的直流系数均为该系数值本身。

使用如图8B所示预设变长编码表对编码数据的系数值进行编码,这样3对应的变长编码为11,-1对应的变长编码为0,-2对应的变长编码为01。

随后获取变长编码的长度,并使用变长编码的长度生成系数长度值,如11 的系数长度值为2,0的系数长度值为1。使用相邻变长编码的间隔生成系数间隔值,如3和-2之间的间隔为1;-2和-1之间的间隔为0。

这样使用系数长度值、系数间隔值以及系数值生成系数序列。如(15、0、-2、-1、-1、-1、0、0、-1、55个0)转换为(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(0,0)。

其中(2)(3)表示15;(1,2)(-2)表示-2,其中的1表示-2和15之间间隔了一个0;(0,0)为结束标志。

然后使用图8C和图8D所示的预设哈夫曼表对上述系数序列进行编码,其中图8C为预设直流哈夫曼表,图8D为预设交流哈夫曼表。通过查表可将上述(2)(3),(1,2)(-2),(0,1)(-1),(0,1)(-1),(0,1)(-1),(2,1)(-1),(0,0)转换为:011(预设直流哈夫曼表)11(预设变长编码表),11011(预设交流哈夫曼表)01(预设变长编码表),00(预设交流哈夫曼表)0(预设变长编码表),000,000,11100(预设交流哈夫曼表)0(预设变长编码表),1010(预设交流哈夫曼表)。这样即获取了相应的编码数据。

使用本发明的解码装置以及解码方法对01111,1101101,000,000,000,111000,1010进行解码的过程包括:

一、解码装置以8比特为长度单元接收编码数据,即按01111110,11010000,00000111,0001010接收编码数据,并对其进行合成。

二、当合成后的编码数据的长度大于等于31比特时,使用预设直流哈夫曼表对合成后的编码数据进行查表解码操作,其中011对应的系数长度值为2;然后读取后两位11,使用预设变长编码表对11进行查表解码操作,获取对应的系数值为3。由于这里以依次增加编码数据位数的方式进行查表解码操作,因此任一系数长度值的编码数据均不是其他系数长度值的编码数据的前缀。

三、使用预设交流哈夫曼表对合成后的编码数据进行查表操作,其中11011对应的系数长度值以及系数间隔值为(1,2),其中1为系数间隔值,2为系数长度值;然后读取后两位01,使用预设变长编码表对01进行查表解码操作,获 取对应的系数值为-2。

四、这样依次对31比特的编码数据进行解析,直至解析到结束标志。

五、对31比特的编码数据解析完毕后,解码装置将解码成功的编码数据删除,以便继续接收外部的编码数据进行合成操作。

因此本发明的解码方法及解码装置的每次解码过程不需要多次读取外部编码数据,而是使用预设哈夫曼表以及预设变长编码表对一较长的编码数据直接进行解码操作,使得熵解码操作数与具体编码数据的长度无关,有效的提高了解码操作的解码效率。

本发明的解码方法及解码装置使用预设哈夫曼表以及预设变长编码表对设定长度的编码数据进行解码操作,可以有效的提高解码操作的解码效率;解决了现有的解码方法及解码装置的整体解码效率较为低下的技术问题。

如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。

而且,要求保护的主题可以被实现为使用标准编程和/或工程技术产生软件、固件、硬件或其任意组合以控制计算机实现所公开的主题的方法、装置或制造品。本文所使用的术语“制造品”旨在包含可从任意计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到可以对该配置进行许多修改,而不脱离要求保护的主题的范围或精神。

图9和随后的讨论提供了对实现本发明所述的信息展示装置所在的电子设备的工作环境的简短、概括的描述。图9的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备912包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、 移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。

尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。

图9图示了包括本发明的信息展示装置的一个或多个实施例的电子设备912的实例。在一种配置中,电子设备912包括至少一个处理单元916和存储器918。根据电子设备的确切配置和类型,存储器918可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图9中由虚线914图示。

在其他实施例中,电子设备912可以包括附加特征和/或功能。例如,设备912还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图9中由存储装置920图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置920中。存储装置920还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器918中由例如处理单元916执行。

本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器918和存储装置920是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储 期望信息并可以被电子设备912访问的任何其他介质。任意这样的计算机存储介质可以是电子设备912的一部分。

电子设备912还可以包括允许电子设备912与其他设备通信的通信连接926。通信连接926可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备912连接到其他电子设备的其他接口。通信连接926可以包括有线连接或无线连接。通信连接926可以发射和/或接收通信媒体。

术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。

电子设备912可以包括输入设备924,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备912中也可以包括输出设备922,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备924和输出设备922可以经由有线连接、无线连接或其任意组合连接到电子设备912。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备912的输入设备924或输出设备922。

电子设备912的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备912的组件可以通过网络互连。例如,存储器918可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。

本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络928访问的电子设备930可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备912可以访问电子 设备930并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备912可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备912处执行并且一些指令可以在电子设备930处执行。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。

而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。

综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1