一种图像熵编码、熵解码的方法及装置的制作方法

文档序号:7683952阅读:277来源:国知局

专利名称::一种图像熵编码、熵解码的方法及装置的制作方法
技术领域
:本发明涉及编解码
技术领域
,尤其涉及一种图像熵编码、熵解码的方法及装置。
背景技术
:在视频和图像编解码过程中是,为减小视频和图像数据在传输或存储时的数据量,通常需要采用相应的压缩编解码技术。在视频和图像压缩编码过程中需要采用变换技术将一副图像、一个区域中的图像内容及信息经变换后集中于某一特定区域,以便在视频压缩算法对相应内容进行有效的压缩。具体可以将一幅图像或图像中的一个区域被划分成若干小块或子区域(称为子块,亦可称之为图像块),之后再子块为单位进行变换。其中,子块的大小可以但不限于为4x4或8x8等,相应的4和8均以图像像素为单位。在视频和图4象编码解码中通常以16x16的图^象块为一个编解码处理单元,这个单元成为宏块。一个宏块还有可能会进一步划分成若干尺寸更小的子块,在现有文献中,子块和宏块可以统称为图像块。在进行子块划分过程中,具体可以将一个特定区域分别按照不同的子块大小进行划分,然后针对不同大小的子块进行不同的变换处理,称为自适应块大小的变换技术。这里所说的变换是指具有一定数学特性的数据处理方法,例如DCT(离散余弦变换)、小波变换、整数变换等。在视频和图像编码解码中这些变换通常以矩阵形式表示。在自适应块尺寸变换技术中存在多种变换模式时,部分宏块可以单独使9用一种变换模式,所述的变换模式是指变换及变换相应的编解码处理方式,例如,一个大小为16x16的宏块中所有子块都划分成8x8大小,并且所有子块均采用8x8的变换及与变换相应的编码及解码技术(即采用一种变换模式)。同时,部分宏块中的子块可以使用不同的变换模式,例如在一个16x16的宏块中若含有4x4、4x8、8x4及8x8几种子块类型,则可以分别使用4x4、4x8、8x4及8x8各自对应的变换模式。其中,若数据块采用不同的变换,则将使得经过不同变换处理后的数据的分布规律会也不相同,为此,在对经过不同变换之后的数据块进行VLC(VariableLengthCoding,变长编码)和VLD(VariableLengthCoding,变长解码))过程中,需要根据数据块的分布规律(即统计特性)分别采用相适应的码表进行编码或解码操作。根据编码元素为编码图像亮度分量元素、图像色度分量元素、帧间编码、帧内编码进行划分。该编码元素是指编码过程中产生的游程(run)和量化系数值(level),其中,run是指在编码或解码过程中在图像块扫描中一个非O系数前值为O的系数的个数,level是指量化系数的数值大小。在变长编码中run和level以一对数据的形式出现。在变长编码中,编码端得到一对run和level之后,在码表中根据run和level的数值查找到相应的索引值,该索引值称为变换系数(trans—coefficient)。在变长编码中trans—coefficient值会规定在一定范围内,若因编码时level或mn值过大而没法确定trans—coefficient值,则还会使用转逸系数差值(escape—level—diff),escape—level—diff通常是在trans—coefficient与run和level只十之间没法建立联系时使用。在编码过程中,编码系统会根据trans—coefficient和escape一level—diff(如果存在)的值以及当前编码元素是否为图像块亮度分量元素、图像块色度分量元素以及是否为帧间编码元素、帧内编码元素等因素确定下一编码元素所使用的码表。如果当前图像块编码结束,编码系统会在当前图像块最后一个编码元素编码完毕后写入一个块结束标志(E〇B),EOB的值由当前码表决定。在变长解码中,根据从码流中解析得到的trans—coefficient和escapeJevel_diff(如果存在)4直在相应的码表中查找trans—coefficient和escapejevel一diff对应的run和level对。在解码过程中,解码系统会根据trans—coefficient和escape—level—diff(如果存在)的值以及当前解码元素是否为图像块亮度分量元素、图像块色度分量元素以及是否为帧间编码元素、帧内编码元素等因素确定下一解码元素所使用的码表。如果解码系统解析得到的语法元素为当前码表中EOB的对应值,则表示当前图像块解码结束,即需要开始针对下一图像块的解码。通常,为节省编码器和解码器的内存占用资源,通常仅设置一种变换后的数据块对应的码表,对于其他尺寸的数据块则可以经过相应的变换,之后再采用设置的相应码表进行编码或解码操作。以4x4块和8x8块为例,在编码或解码操作过程中,相应的选择使用码表的实现方案具体可以为以下两种方案一有I设当前只有4x4块对应的码表,则对于经8x8变换之后的数据块(即8x8块),其使用码表的方式可以为首先,将8x8块采用采样的方式分割成编码或解码操作。方案二假设当前只有8x8块对应的码表,则对于经过4x4变换后得到的数据块(即4x4块),其使用码表的方式可以为将多个4x4块以一定方式串成8x8数据块;之后,针对获得的8x8块则可以采用相应的8x8块对应的码表进行编ii码或解码操作。在实现本发明过程中,发明人发现,在上述现有技术中,无论是将将8x8块分割后采用相应码表的实现方案,还是将4x4块串成8x8块后采用相应码表的实现方案,其均存在当前采用的码表无法很好地适应相应尺寸的数据块的数据分布规律的问题,进而降低了相应的编解码效率。
发明内容本发明的实施例提供了一种图像熵编码、熵解码的方法及装置,以降低存储资源的占用,并可以提高编解码效率。一种图^f象熵编码方法,包括根据第一种块变换对应的熵编码码表,映射获得第二种块变换对应的熵编码码表参数,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码。一种熵解码方法,包括根据第一种块变换对应的熵解码码表,映射获得第二种块变换对应的熵解码码表参数,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码。一种熵编码装置,包括第一存储单元,用于保存的第一种块变换对应的熵编码码表;第一码表处理单元,用于根据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;编码单元,用于使用所述第一码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作。一种熵编码装置,包括第二存储单元,用于保存的第一种块变换对应的熵解码码表;第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵解码操作。由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,由于采用了仅保存第一种块变换对应的码表,而对于第二种块变换对应的码表,则是根据保存的第一种块变换对应的码表转换处理获得,因此,其可以使得在占用较少的存储资源的条件下(仅需要存储第一种块变换对应的码表)实现不同变换模式下的码表的复用,并且保证熵编码或熵解码效率。图1为本发明实施例提供的处理过程示意图2为本发明实施例提供的熵编码装置的结构示意图3为本发明实施例提供的熵解码装置的结构示意图。具体实施例方式本发明实施例中,在仅保存一种块变换对应的码表的情况下,可以根据映射处理获得相应的另一种块变换对应的码表。如图1所示,相应的处理过程可以包括在需要获取另一种块变换对应的码表时,获取保存的第一种块变换对应的码表,在获取保存的第一种块变换对应的码表后,便可以根据所述第一种块变换对应的熵编码码表或熵解码码表映射处理获得第二种块变换对应的熵编码码表参数或熵解码码表参数。相应的第一种种块变换和第二种种块变换为不同块尺寸下的变换,相应的不同块尺寸可以为4x16、16x4、16x8、8x16、8x8、8x4、4x8或4x4,等等。在上述处理过程中,相应的熵编码码表参数或熵解码码表参数包括以下至少一项变长编码下的帧内亮度编码码表序号和类型,帧间亮度编码码表序号和类型,帧内色度编码码表序号和类型,帧间色度编码码表序号和类型,游程run,量化系数值level,变换系数trans—coefficient,转逸系数差值escapejevel—diff和增加图像块结束标志EOB;相应的图像块的数据可以包括游程mn的值和量化系数值level的值。其中,相应的映射处理具体可以为根据相应的第二种块变换的统计特性种变换获得的数据对应的码表设置相应的映射处理方式,以使得将保存的一种块变换码表经处理后能够符合另一种块变换对应的数据分布规律。在上述实现方案中,相应的映射处理可为调整码表间跳转顺序的规则,或者,也可以为调整码表中元素的规则。若采用调整码表间跳转顺序的规则进行映射处理时,则可以包括在编码端,可以预先保存第二种块变换对应的跳转参数,也可以根据当前编码序列或编码图^象或编码条带的编码特性确定相应的当前编码序列或编码图像或编码条带对应的跳转参数;这样,可以根据保存的第二种块变换对应的跳转参数对相应的第一种块变换对应的码表中的码表的跳转顺序进行调整,并将调整跳转顺序后的码表作为第二种块变换对应的熵编码码表参数以进行第二种块变换下的图像的熵编码操作。其中,相应的跳转参数具体可以为根据相应的第二种块变换的统计特性确定;例如,可以根据第二种块变换的统计特性获得第二种块变换对应的码表,并根据该第二种块变换对应的码表与第一种块变换对应的码表之间的对应关系确定相应的跳转参数。在上述处理过程中,相应的跳转参数可以为跳转后的码表序号,或者,也可以为跳转后的码表序号与当前的码序号之间的差值;相应的编码序列或14编码图像或编码条带的编码特性可以包括序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。对应的,在解码端,同样可以预先保存第二种块变换对应的跳转参数,也可以根据当前解码序列或解码图像或解码条带从编码码流中获取确定相应的当前解码序列或解码图像或解码条带对应的跳转参数,进而根据获取的所述跳转参数,以及第一种块变换对应的码表,确定相应的第二种块变换对应的熵解码码表参数,以用于对当前第二种块变换的图像的解码序列或解码图像或解码条带进行熵解码操作。若采用调整码表中元素的规则进行映射处理时,则可以包括在编码端,预先保存第二种块变换对应的映射参数,或者,根据当前编码序列或编码图4象或编码条带编码特性确定相应的当前编码序列或编码图4象或编码条带对应的映射参数;并可以根据相应的第二种块变换对应的映射参数调整第一种块变换对应的码表中的元素值,获得第二种块变换对应的熵编码码表参数,以便于进行第二种块变换下的图像的熵编码操作。其中,相应的映射参数具体可以为根据第二种块变换的统计特性确定;具体地,可以根据第二种块变换的统计特性获得第二种块变换对应的码表,并根据该第二种块变换对应的码表包含的元素值与相应的第一种块变换对应的码表包含的元素值之间的对应关系确定相应的映射参数。其中,相应的编码序列或编码图像或编码条带的编码特性可以包括序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。对应的,在解码端,同样可以预先保存相应第二种块变换对应的映射参数,或者,根据当前解码序列或解码图像或解码条带从编码码流中获取当前解码序列或解码图像或解码条带对应的映射参数,并根据映射参数调整所述15应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数(即根据获取的映射参数及第一种块变换对应的码表确定相应的第二种块变换对应的码表),以对当前第二种块变换下图像的解码序列或解码图像或解码条带进行熵解码。或者,在解码端,还可以根据映射参数调整从熵编码码流中接收到的第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数,以进行熵解码操作。也就是说,上述用于指示码表间跳转顺序规则的跳转参数或者用于指示码表中元素映射处理方式的映射参凄史可以预先保留在熵编码和熵解码系统中。也可以在熵编码端根据熵编码序列或图像或条带的特性更新码表间跳转顺序规则或码表中元素处理规则,将上述规则写入序列、图像或条带等熵编码信息中,以便于解码端获取相应的处理规则;对应的在解码端可以从码流中序列、图像或条带等编码元素中解析得到相应的跳转参数或映射参数。在熵编码过程中,上述本发明实施例具体可以用于对以下任意一项或多项当前编码数据进行熵编码操作(1)当前熵编码数据为图像亮度分量;(2)当前熵编码数据为图像色度分量;(3)当前熵编码数据为帧内熵编码数据;(4)当前熵编码数据为帧间熵编码数据。在熵解码过程中,上述本发明实施例具体可以用于对以下任意一项或多项当前熵解码数据进行熵解码操作(1)当前熵解码数据为图像亮度分量;(2)当前熵解码数据为图像色度分量;(3)当前熵解码数据为帧内熵编码数据;(4)当前熵解码数据为帧间熵编码数据。为便于对本发明实施例的理解,下面将以具体的应用实例对本发明实施例的实现过程进行详细说明。具体实施例一在该实施例中,采用调整码表间跳转顺序的规则作为转换规,即采用码表跳转的实现方式获得相应的码表。假设经过变换后的块包括4x4块和8x8块,通常,4x4变换后获得的4x4块的数据分布比8x8块的数据分布更为陡峭,在使用8x8块对应的VLC和VLD码表编码或解码4x4块时,则可以通过改变码表跳转的条件的方式,以适应4x4块的数据分布规律。在这里经4x4变换(编码端)或4x4反变换(解码端)的图像块称为4x4变换块;经8x8变换(编码端)或8x8反变换(码端)的图像块称为8x8变换块。假设,在熵编码或熵解码过程中,相应的8x8块对应VLC和VLD码表共有19张码表,具体可以包括(1)亮度块帧内编码码表7张,计为VLCOJntra,VLC1Jntra,VLC2」ntra,VLC3」ntra,VLC4」ntra,VLC5—Intra,VLC6—Intra;(2)亮度块帧间编码7张,计为VLCOJnter,VLC1Jnter,VLC2Jnter,VLC3—Inter,VLC4—Inter,VLC5—Inter,VLC6—Inter;(3)色度块编码码表5张,计为VLCO—Chroma,VLC1—Chroma,VLC2—Chroma,VLC3—Chroma,VI_C4—Chroma。其中,在利用上述各表对8x8数据块进行VLC编码或VLD解码时,码表的跳转规则是依次增一,即当编码元素满足一定条件时码表会切换到与当前码表序号紧邻但序号值大一的表,例如,由VLC5Jntra切换到VLC6Jntra等。当利用上述各表对4x4变换后的数据块(即4x4块)进行VLC编码或VLD解码时,则由于4x4块的数据的分布规律与经过8x8变换获得的8x8块的数据的分布规律不一致,则可以采用与4x4块相适应的码表跳转规则进行各码表的选择应用,以适应4x4块的数据的分布规律。考虑到通常情况下4x4块的数据的分布规律中相应的数据变化幅度要较8x8块更大一些,故其能够采用的码表跳转方式可以为如表1表3所示表1<table>tableseeoriginaldocumentpage18</column></row><table>在上述三张跳转表中,在当前元素使用某一码表编码或解码时,若当前编码或解码元素满足预定条件时,则下一编码或解码元素所〗吏用码表跳转至根据当前码表对应的跳转至确定的码表,具体为跳转到当前码表序号值加上对应的跳转值之和指向的码表。例如,对亮度块进行帧间编解码时,当前编码或解码元素使用的是亮度块帧间编码对应的各码表(即表2中的各码表)中的VLC3Jnter码表,此时,若跳转参数N4的值为2,则在当前编码或解码元素满足预定条件时,则由于VLC3Jnter码表的序号为3,再将上N4值,则跳转后的码表的序号为5,即相应的下一编码或解码元素所使用的码表将跳转至序号值为5的VLC5Jnter码表。在上述三张跳转表中,若前编码或解码元素使用的是VLC5Jntra或VLC5Jnter或VLC3—Chroma码表时,则由于其为当前编码条件(例如亮度块帧内编码)下的倒数第二张码表,下一编码或解码元素所能够使用的码表仅能是最后一张码表,故相应的跳转参数值设置为1。在上述三张跳转表中,若前编码或解码元素使用的是VLC6Jntra或VLC6Jnter或VLC4—Chroma码表时由于其为当前编码条件(例如亮度块帧内编码)下的最后一张码表,故跳转参数值不可得,并设置为N/A;即码表的跳转参数值与当前码表序号之和不能超过当前编码或解码条件下最后一张码表的序号值,否则,将无法确定跳转后采用的码表。在上述三张跳转表中,各个跳转参数值根据4x4块的数据的分布规律确定。若需要获得其他种块变换的码表,则相应的跳转参数需要根据该种块变换的数据的颁布规律进行设置。上述跳转表可预先存储于编码与解码系统中,亦可在编码端根据当前编码序列、图像、条带的特性和内容更新跳转表并将更新后的跳转表存储于序列头或图像头或条带头中。解码端则从码流中的序列头或图像头或条带头中提取更新后的跳转表用于解码当前序列或图像或条带。具体实施例二在该实施例中,编码端对熵编码码表中的元素进行映射,获得第二种块变换对应的熵编码参数;解码端,根据映射规则对使用第二种块变换的图像块数据进行映射,使用第一种块变换对应的熵解码码表解码所述映射后的数19第二变换对应的熵编码和熵解码码表,以编码和解码4吏用第二变换的图^象块数据。以VLC编码和VLD解码码表为例,相应的码表中的元素包括索引值、run、level、EOB。在此实施例中码表中的索引值为trans—coefficient若当前编码中使用了4x4和8x8两种变换。由于在8x8变换中总共有64个像素值待编码,其run和level对最多可能有64对;而在4x4变换中总共有16个像素值待编码,其mn和level对最多可能有16对。通常情况下EOB的值与当前码表所对应编码条件下run和level对的对凄t有关系。如果在统计意义下当前编码条件下run和level对的对数较多,则EOB的值会设为一个较大的数值,否则EOB为一个较小值。由于4x4变换块本身待编码元素就比8x8变换块少,故编码4x4变换块时,其所对应的EOB值应比8x8变换块所对应的EOB值小,否则会降j氐编码效率。综上所述,若当前编码系统保存的是基于8x8的码表,在使用该码表编码4x4变换块时EOB的值不宜设的太大。因此,在原先码表中EOB对应的值为M,在使用8x8变换的码表编码4x4变换块时码表中对应的EOB值可转换为一个较小值N,而原先码表中为N到M-1的索引值在编码4x4变换块数据时其值依次加1,但其所对应的mn和level对数据不变。即原先mn和level对所对应的索引值由N到M-1转换至N+1到M。这样,在编码4x4变换块数据时由于EOB的比特开销大幅减少,从而可以为编码4x4变换块带来较为理想的编码增益。在解码端则在解码4x4变换块数据时,如果索引值在N+1到M之间,则索引值减1;如果索引值等于N,则索引值赋值为M。经上述操作后再将转换后的索引值在当前码表中查找得到对应的run和level对。在上述处理过程中,相应的索引值与编码或解码元素的转换关系可以依据数据统计特性得到。例如,在VLC和VLD码表中,若EOB值为8,则在当前编码或解码条件下统计意义上一个编码或解码图像块有7个run值和level值对。在编码4x4变换后的4x4图像块数据时,则可以将该码表EOB对应的值转换为'0,,即在编码该4x4变换块时让EOB值由'8,更改为O,将数值'0,写入码流中,解码该4x4变换块时若解析得到数值为'0,的元素,则将其值转换为'8,,根据当前码表可知此元素为EOB,当前图像块解码结束。假设实施例一的VLC3—lntra码表EOB所对应值为8,则在编码或解码经4x4变换后的4x4图像块数据时可将EOB值映射为0,而数值为07的索引值则依次映射至1~8,其所对应的mn值和level值保持不变,参照下表所示,其中,表4为原始的8x8图像块的VLC3Jntra码表中EOB值、索引值与mn和level的关系,表5则为映射处理之后的4x4图像块的码表中的EOB值、索引值如run和level凄丈才居之间的关系表4<table>tableseeoriginaldocumentpage21</column></row><table>nE013Level〉0123456789丄011120-一3—2337534—31515—436—49上述针对VLC3Jntra码表EOB值的转换方式可以扩展到实施例中其余18张码表。即设CurrentVLCTable代表当前码表,trans—coefficient为所述索引值。如果当前编码块是4x4变换块,则把CurrentVLCTable中的EOB值转换为'0,,当编码EOB时将数值'0,写入码流中;CurrentVLCTable中trans—coefficient为0到CurrentVLCTable中EOB对应值-1所对应的编码元素写码流时其值依次加1。解码时,如果当前块是4x4变换块,先进行映射操作如下如果trans—coefficient在1到CurrentVLCTable中的EOB对应值(含)之间,贝'Jtrans—coefficient减1;》口果trans—coefficient等于0,贝寸trans—coefficient赋值为CurrentVLCTable中的EOB的值。可以获得期望的尺寸的图像块对应的码表,并且该码表是通过一定处理规则获得而无需存储于编码和解码系统之中,有效节省了系统资源。亦可在编码端根据当前编码序列、图像、条带的特性和内容更新所述映射规则并将更新后的映射规则存储于序列头或图像头或条带头中。解码端则从码流中的序列头或图像头或条带头中提取更新后的映射规则用于解码当前序列或图像或条带。本发明实施例还提供了一种熵编码装置,其具体实现结构如图2所示,可以包括以下处理单元(1)第一存储单元,用于保存的第一种块变换对应的熵编码码表;22(2)第一码表处理单元,用于根据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;实现方式方式一根据用于确定跳转后的码表序号的跳转参数进行映射操作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;方式二根据第二种块变换对应的映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得第二种块变换对应的熵编码码表参数;(3)编码单元,用于使用所述第一码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作;该所述编码单元用于根据所述第二种块变换对应的熵编码码表参数对当前或下一个使采用第二变换处理的第二种块变换的图像块的数据进行熵编码操作。可选地,在该装置中还可以包括第一跳转参数获取单元,用于获取预先设定的跳转参数;或者,也可以用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的跳转参数,并通知编码单元将所述跳转参数写入编码码流中。可选地,该装置中还可以包括第一括映射参数获取单元,用于获取预先设定的映射参数;或者,也可以用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的当前编码序列或编码图像或编码条带的映射参数,并通知编码单元将所述映射参^:写入码流中。本发明实施例还提供了一种熵解码装置,其具体实现结构如图3所示,可以包括以下处理单元(1)第二存储单元,用于保存的第一种块变换对应的熵解码码表;(2)第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;方式一根据用于确定跳转后的码表序号的跳转参数进行映射操作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;方式二根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数;或者,也可以根据映射参数调整所述第一种块变换对应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数;(3)解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵解码操作。该解码单元用于根据所述第二种块变换对应的熵解码码表参数对当前或下一个使采用第二变换处理的第二种块变换下的图像进行熵编码操作。可选地,在该装置中还可以包括第二跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。可选地,在该装置还可以包括第二映射参数获取单元,用于获取预先设定的映射参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。综上所述,本发明实施例的实现可以根据当前尺寸的图像块的数据统计特性获得适合的码表,进而有效减少因ABT(AdaptBlockTransform,自适应种块变换)技术而带来的熵编码码表开销。而且,本发明实施例中仅需要保存某一尺寸的图像块对应的码表便可以获得其他尺寸的图像块的码表,因而可以有效降低硬件资源的占用,同时还可以兼顾提高相应的编解码效率。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1、一种图像熵编码方法,其特征在于,包括根据第一种块变换对应的熵编码码表,映射获得第二种块变换对应的熵编码码表参数,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码。2、根据权利要求1所述的方法,其特征在于,所述映射的处理包括根据跳转参数为熵编码码表跳转后的码表序号,或者,所述的跳转参数为熵编码码表跳转后的码表序号与当前的码序号之间的差值。3、根据权利要求2所述的方法,其特征在于,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码的步骤包括在根据熵编码码表跳转的码表序号在所述第一块变换对应的编码码表中确定所述第二块变换对应的编码码表后,根据所述第二块变换对应的编码码表对当前或者下一个第二种块变换的图像块的数据进行熵编码。4、根据权利要求2所述的方法,其特征在于,在获得所述熵编码码表跳转后的码表序号的过程中还包括若当前的码表序号对应的码表为当前编码条件下的倒数第二张码表,则熵编码码表跳转后的码表序号为当前编码条件下的最后一张码表对应的码表序号;或者,若当前的码表序号对应的码表为当前编码条件下最后一张码表,则不进行熵编码码表跳转操作。5、根据权利要求2所述的方法,其特征在于,所述跳转参数为预先设定;或者,根据当前编码序列或编码图像或编码条带的编码特性确定所述跳6、根据权利要求1所述的方法,其特征在于,所述映射的处理包括:根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数。7、根据权利要求6所述的方法,其特征在于,所述调整所述第一种块变换对应的熵编码码表中的元素值的步骤包括;对第一种块变换对应的编码码表中的预定数值范围内的元素值进行映射调整处理。8、根据权利要求6所述方法,其特征在于,所述调整所述第一种块变换对应的熵编码码表中的元素值的过程包括若码表中的元素值为当前图像块结束标记,则将该元素值M映射至N,M和N分别为一整数值,且将N与M-1之间的元素值加1,并保持元素值与码表中其他元素之间的索引关系不变。9、根据权利要求6所述的方法,所述映射参数为预先设定;或者,根据当前编码序列或编码图^f象或编码条带的编码特性确定当前编码序列或编码图像或编码条带的映射参数,并将所述映射参数写入码流中。10、根据权利要求5或9所述的方法,其特征在于,所述编码序列或编码图像或编码条带的编码特性包括序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。11、根据权利要求1至9任一项所述的方法,其特征在于,所述熵编码码表参数包括变长编码下的帧内亮度编码码表序号和类型,帧间亮度编码码表序号和类型,帧内色度编码码表序号和类型,帧间色度编码码表序号和类型,游程run,量化系数值level,变换系数trans—coefficient,转逸系数差值escapeJeveLdiff和增加图像块结束标志EOB中的至少一项;所述图像块的数据包括游程run的值和量化系数值level的值。12、一种熵解码方法,其特征在于,包括根据第一种块变换对应的熵解码码表,映射获得第二种块变换对应的熵解码码表参数,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码。13、根据权利要求12所述的方法,其特征在于,所述映射的处理包括根的跳转参数为熵解码码表跳转后的码表序号,或者,所述的跳转参数为熵解码码表跳转后的码表序号与当前的码序号之间的差值。14、根据权利要求13所述的方法,其特征在于,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码的步骤包括在根据熵解码码表跳转后的码表序号在所述第一块变换对应的解码码表中确定所述第二块变换对应的解码码表后,根据所述第二块变换对应的解码码表对当前或者下一个使用第二种块变换的图像块的数据进行熵解码。15、根据权利要求13所述的方法,其特征在于,在获得所述熵解码码表跳转后的码表序号的过程中还包括若当前的码表序号对应的码表为当前解码条件下的倒数第二张码表,则熵解码码表跳转后的码表序号为当前解码条件下的最后一张码表对应的码表序号;或者,若当前的码表序号对应的码表为当前解码条件下最后一张码表,则不进行熵解码码表跳转。16、根据权利要求13所述的方法,其特征在于,所述跳转参数为预先设定;或者,根据当前解码序列或解码图像或解码条带从接收到的编码码流中解析获得。17、根据权利要求12所述的方法,其特征在于,所述映射的处理包括根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数;或者,根据映射参数调整所述第一种块变换对应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数。18、根据权利要求17所述的方法,其特征在于,所述数据元素值的调整包括;对预定数值范围内的元素值进行映射调整处理。19、根据权利要求17所述方法,其特征在于,所述利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码的过程包括若从码流中解析获得数据元素值为N,则所述数据元素值映射为当前熵解码码表中图像块结束标记的值M,将码流中数据元素值为N+1与M之间的数据元素值减1,并保持数据元素值与当前熵解码码表中其他元素之间的索引关系不变,N和M为一整数值。20、根据权利要求17所述的方法,所述映射参数为预先设定;或者,根据当前解码序列或解码图像或解码条带从接收到的编码码流中解析获得。21、根据权利要求12至20任一项所述的方法,其特征在于,所述熵解码码表参数包括变长解码下的帧内亮度解码码表序号和类型,帧间亮度解码码表序号和类型,帧内色度解码码表序号和类型,帧间色度解码码表序号和类型,游程run,量化系数值level,变换系数trans—coefficient,转逸系数差值escapejevel—diff和增加图像块结束标志EOB中的至少一项;所述图像块的数据包括游程run的值和量化系数值level的值。22、一种熵编码装置,其特征在于,包括第一存储单元,用于保存的第一种块变换对应的熵编码码表;第一码表处理单元,用于^^艮据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;编码单元,用于使用所述第一码表处理单元兹得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作。23、根据权利要求22所述的装置,其特征在于,所述第一码表处理单元作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;且所述编码单元用于根据所述第二种块变换对应的熵编码码表参数对当前或下一个使采用第二变换处理的第二种块变换的图像块的数据进行熵编码操作。24、根据权利要求23所述的装置,其特征在于,该装置还包括第一跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的跳转参数,并通知编码单元将所述跳转参数写入编码码流中。25、根据权利要求22所述的装置,其特征在于,所述第一码表处理单元采用妁映射处理包括根据第二种块变换对应的映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得第二种块变换对应的熵编码码表参数;且所述编码单元用于根据调整获得的第二种块变换对应的熵编码码表参数对当前或下一个的第二种块变换的图像块的数据进行熵编码操作。26、根据权利要求25所述的装置,其特征在于,该装置还包括第一括映射参数获取单元,用于获取预先设定的映射参数;或者,用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的当前编码序列或编码图像或编码条带的映射参数,并通知编码单元将所述映射参数写入码流中。27、一种熵编码装置,其特征在于,包括第二存储单元,用于保存的第一种块变换对应的熵解码码表;第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵解码操作。28、根据权利要求27所述的装置,其特征在于,所述第二码表处理单元夸操作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;且所述解码单元用于根据所述第二种块变换对应的熵编码码表参数对当前或下一个采用第二变换处理的第二种块变换下的图像进行熵编码操作。29、根据权利要求28所述的装置,其特征在于,该装置还包括第二跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。30、根据权利要求27所述的装置,其特征在于,所述第二码表处理单元采用的映射的处理包括根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数;或者,根据映射参数调整所述第一种块变换对应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数;且所述解码单元用于根据调整爽得的第二种块变换对应的熵解码码表参数对当前或下一个采用第二变换处理的第二种块变换的图像块的数据进行熵解码操作。31、根据权利要求30所述的装置,其特征在于,该装置还包括第二映射参数获取单元,用于获取预先设定的映射参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。全文摘要一种图像熵编码、熵解码的方法及装置,其主要包括根据第一种块变换对应的熵编解码码表,映射获得第二种块变换对应的熵编解码码表参数,利用所述熵编解码码表参数对第二种块变换下图像块数据进行熵编解码。本发明实施例中,由于采用了仅保存第一种块变换对应的码表,且根据保存的第一种块变换对应的码表转换处理获得二种块变换对应的码表,因此,可以在占用较少的存储资源的条件下实现不同变换模式下的码表的复用,并且保证熵编码或熵解码的效率。文档编号H04N7/30GK101500159SQ20081000905公开日2009年8月5日申请日期2008年1月31日优先权日2008年1月31日发明者芸何,毛煦楠,王云飞,郑建铧,郑萧桢申请人:华为技术有限公司;清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1