CN101500159B - 一种图像熵编码、熵解码的方法及装置 - Google Patents
一种图像熵编码、熵解码的方法及装置 Download PDFInfo
- Publication number
- CN101500159B CN101500159B CN 200810009057 CN200810009057A CN101500159B CN 101500159 B CN101500159 B CN 101500159B CN 200810009057 CN200810009057 CN 200810009057 CN 200810009057 A CN200810009057 A CN 200810009057A CN 101500159 B CN101500159 B CN 101500159B
- Authority
- CN
- China
- Prior art keywords
- code table
- decoding
- coding
- entropy
- block
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
一种图像熵编码、熵解码的方法及装置,其主要包括:根据第一种块变换对应的熵编解码码表,映射获得第二种块变换对应的熵编解码码表参数,利用所述熵编解码码表参数对第二种块变换下图像块数据进行熵编解码。本发明实施例中,由于采用了仅保存第一种块变换对应的码表,且根据保存的第一种块变换对应的码表转换处理获得二种块变换对应的码表,因此,可以在占用较少的存储资源的条件下实现不同变换模式下的码表的复用,并且保证熵编码或熵解码的效率。
Description
技术领域
本发明涉及编解码技术领域,尤其涉及一种图像熵编码、熵解码的方法及装置。
背景技术
在视频和图像编解码过程中是,为减小视频和图像数据在传输或存储时的数据量,通常需要采用相应的压缩编解码技术。在视频和图像压缩编码过程中需要采用变换技术将一副图像、一个区域中的图像内容及信息经变换后集中于某一特定区域,以便在视频压缩算法对相应内容进行有效的压缩。具体可以将一幅图像或图像中的一个区域被划分成若干小块或子区域(称为子块,亦可称之为图像块),之后再子块为单位进行变换。其中,子块的大小可以但不限于为4×4或8×8等,相应的4和8均以图像像素为单位。在视频和图像编码解码中通常以16×16的图像块为一个编解码处理单元,这个单元成为宏块。一个宏块还有可能会进一步划分成若干尺寸更小的子块,在现有文献中,子块和宏块可以统称为图像块。
在进行子块划分过程中,具体可以将一个特定区域分别按照不同的子块大小进行划分,然后针对不同大小的子块进行不同的变换处理,称为自适应块大小的变换技术。这里所说的变换是指具有一定数学特性的数据处理方法,例如DCT(离散余弦变换)、小波变换、整数变换等。在视频和图像编码解码中这些变换通常以矩阵形式表示。
在自适应块尺寸变换技术中存在多种变换模式时,部分宏块可以单独使 用一种变换模式,所述的变换模式是指变换及变换相应的编解码处理方式,例如,一个大小为16×16的宏块中所有子块都划分成8×8大小,并且所有子块均采用8×8的变换及与变换相应的编码及解码技术(即采用一种变换模式)。同时,部分宏块中的子块可以使用不同的变换模式,例如:在一个16×16的宏块中若含有4×4、4×8、8×4及8×8几种子块类型,则可以分别使用4×4、4×8、8×4及8×8各自对应的变换模式。
其中,若数据块采用不同的变换,则将使得经过不同变换处理后的数据的分布规律会也不相同,为此,在对经过不同变换之后的数据块进行VLC(Variable Length Coding,变长编码)和VLD(Variable Length Coding,变长解码))过程中,需要根据数据块的分布规律(即统计特性)分别采用相适应的码表进行编码或解码操作。
在视频编解码标准中使用变长编码时会为编码元素设置一套码表,码表根据编码元素为编码图像亮度分量元素、图像色度分量元素、帧间编码、帧内编码进行划分。该编码元素是指编码过程中产生的游程(run)和量化系数值(level),其中,run是指在编码或解码过程中在图像块扫描中一个非0系数前值为0的系数的个数,level是指量化系数的数值大小。在变长编码中run和level以一对数据的形式出现。
在变长编码中,编码端得到一对run和level之后,在码表中根据run和level的数值查找到相应的索引值,该索引值称为变换系数(trans_coefficient)。在变长编码中trans_coefficient值会规定在一定范围内,若因编码时level或run值过大而没法确定trans_coefficient值,则还会使用转逸系数差值(escape_level_diff),escape_level_diff通常是在trans_coefficient与run和level对之间没法建立联系时使用。在编码过程中,编码系统会根据trans_coefficient和escape_level_diff(如果存在)的值以及当前编码元素是否为图像块亮度分量元素、图像块色度分量元素以及是否为帧间编码元素、帧内编码元素等 因素确定下一编码元素所使用的码表。如果当前图像块编码结束,编码系统会在当前图像块最后一个编码元素编码完毕后写入一个块结束标志(EOB),EOB的值由当前码表决定。
在变长解码中,根据从码流中解析得到的trans_coefficient和escape_level_diff(如果存在)值在相应的码表中查找trans_coefficient和escape_level_diff对应的run和level对。在解码过程中,解码系统会根据trans_coefficient和escape_level_diff(如果存在)的值以及当前解码元素是否为图像块亮度分量元素、图像块色度分量元素以及是否为帧间编码元素、帧内编码元素等因素确定下一解码元素所使用的码表。如果解码系统解析得到的语法元素为当前码表中EOB的对应值,则表示当前图像块解码结束,即需要开始针对下一图像块的解码。
通常,为节省编码器和解码器的内存占用资源,通常仅设置一种变换后的数据块对应的码表,对于其他尺寸的数据块则可以经过相应的变换,之后再采用设置的相应码表进行编码或解码操作。
以4×4块和8×8块为例,在编码或解码操作过程中,相应的选择使用码表的实现方案具体可以为以下两种:
方案一
假设当前只有4×4块对应的码表,则对于经8×8变换之后的数据块(即8×8块),其使用码表的方式可以为:首先,将8×8块采用采样的方式分割成4×4数据块;之后,对于获得的4个4×4数据块分别使用4×4块对应的码表进行编码或解码操作。
方案二
假设当前只有8×8块对应的码表,则对于经过4×4变换后得到的数据块(即4×4块),其使用码表的方式可以为:将多个4×4块以一定方式串成8×8数据块;之后,针对获得的8×8块则可以采用相应的8×8块对应的码表进行编码或解码操作。
在实现本发明过程中,发明人发现,在上述现有技术中,无论是将将8×8块分割后采用相应码表的实现方案,还是将4×4块串成8×8块后采用相应码表的实现方案,其均存在当前采用的码表无法很好地适应相应尺寸的数据块的数据分布规律的问题,进而降低了相应的编解码效率。
发明内容
本发明的实施例提供了一种图像熵编码、熵解码的方法及装置,以降低存储资源的占用,并可以提高编解码效率。
一种图像熵编码方法,包括:
根据第一种块变换对应的熵编码码表,映射获得第二种块变换对应的熵编码码表参数,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码;
其中,所述映射的处理包括根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数。
一种熵解码方法,包括:
根据第一种块变换对应的熵解码码表,映射获得第二种块变换对应的熵解码码表参数,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码;
其中,所述映射的处理包括根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数。
一种熵编码装置,包括:
第一存储单元,用于保存的第一种块变换对应的熵编码码表;
第一码表处理单元,用于根据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;
编码单元,用于使用所述第一码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作;
其中,所述第一码表处理单元进行映射处理包括根据用于确定熵编码码 表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数。
一种熵编码装置,包括:
第二存储单元,用于保存的第一种块变换对应的熵解码码表;
第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;
解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵解码操作;
其中,所述所述第二码表处理单元进行映射处理包括根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,由于采用了仅保存第一种块变换对应的码表,而对于第二种块变换对应的码表,则是根据保存的第一种块变换对应的码表转换处理获得,因此,其可以使得在占用较少的存储资源的条件下(仅需要存储第一种块变换对应的码表)实现不同变换模式下的码表的复用,并且保证熵编码或熵解码效率。
附图说明
图1为本发明实施例提供的处理过程示意图;
图2为本发明实施例提供的熵编码装置的结构示意图;
图3为本发明实施例提供的熵解码装置的结构示意图。
具体实施方式
本发明实施例中,在仅保存一种块变换对应的码表的情况下,可以根据映射处理获得相应的另一种块变换对应的码表。
如图1所示,相应的处理过程可以包括:在需要获取另一种块变换对应的码表时,获取保存的第一种块变换对应的码表,在获取保存的第一种块变换对应的码表后,便可以根据所述第一种块变换对应的熵编码码表或熵解码码表映射处理获得第二种块变换对应的熵编码码表参数或熵解码码表参数。相应的第一种种块变换和第二种种块变换为不同块尺寸下的变换,相应的不同块尺寸可以为4×16、16×4、16×8、8×16、8×8、8×4、4×8或4×4,等等。
在上述处理过程中,相应的熵编码码表参数或熵解码码表参数包括以下至少一项:
变长编码下的帧内亮度编码码表序号和类型,帧间亮度编码码表序号和类型,帧内色度编码码表序号和类型,帧间色度编码码表序号和类型,游程run,量化系数值level,变换系数trans_coefficient,转逸系数差值escape_level_diff和增加图像块结束标志EOB;
相应的图像块的数据可以包括游程run的值和量化系数值level的值。
其中,相应的映射处理具体可以为根据相应的第二种块变换的统计特性确定。具体可以在分析经过不同变换处理之后数据的分布规律,对经过某一种变换获得的数据对应的码表设置相应的映射处理方式,以使得将保存的一种块变换码表经处理后能够符合另一种块变换对应的数据分布规律。
在上述实现方案中,相应的映射处理可为调整码表间跳转顺序的规则,或者,也可以为调整码表中元素的规则。
若采用调整码表间跳转顺序的规则进行映射处理时,则可以包括:
在编码端,可以预先保存第二种块变换对应的跳转参数,也可以根据当前编码序列或编码图像或编码条带的编码特性确定相应的当前编码序列或编码图像或编码条带对应的跳转参数;这样,可以根据保存的第二种块变换对应的跳转参数对相应的第一种块变换对应的码表中的码表的跳转顺序进行调整,并将调整跳转顺序后的码表作为第二种块变换对应的熵编码码表参数以进行第二种块变换下的图像的熵编码操作。其中,相应的跳转参数具体可以为根据相应的第二种块变换的统计特性确定;例如,可以根据第二种块变换的统计特性获得第二种块变换对应的码表,并根据该第二种块变换对应的码表与第一种块变换对应的码表之间的对应关系确定相应的跳转参数。
在上述处理过程中,相应的跳转参数可以为跳转后的码表序号,或者,也可以为跳转后的码表序号与当前的码序号之间的差值;相应的编码序列或 编码图像或编码条带的编码特性可以包括:序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。
对应的,在解码端,同样可以预先保存第二种块变换对应的跳转参数,也可以根据当前解码序列或解码图像或解码条带从编码码流中获取确定相应的当前解码序列或解码图像或解码条带对应的跳转参数,进而根据获取的所述跳转参数,以及第一种块变换对应的码表,确定相应的第二种块变换对应的熵解码码表参数,以用于对当前第二种块变换的图像的解码序列或解码图像或解码条带进行熵解码操作。
若采用调整码表中元素的规则进行映射处理时,则可以包括:
在编码端,预先保存第二种块变换对应的映射参数,或者,根据当前编码序列或编码图像或编码条带编码特性确定相应的当前编码序列或编码图像或编码条带对应的映射参数;并可以根据相应的第二种块变换对应的映射参数调整第一种块变换对应的码表中的元素值,获得第二种块变换对应的熵编码码表参数,以便于进行第二种块变换下的图像的熵编码操作。其中,相应的映射参数具体可以为根据第二种块变换的统计特性确定;具体地,可以根据第二种块变换的统计特性获得第二种块变换对应的码表,并根据该第二种块变换对应的码表包含的元素值与相应的第一种块变换对应的码表包含的元素值之间的对应关系确定相应的映射参数。其中,相应的编码序列或编码图像或编码条带的编码特性可以包括:序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。
对应的,在解码端,同样可以预先保存相应第二种块变换对应的映射参数,或者,根据当前解码序列或解码图像或解码条带从编码码流中获取当前解码序列或解码图像或解码条带对应的映射参数,并根据映射参数调整所述 第一种块变换对应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数(即根据获取的映射参数及第一种块变换对应的码表确定相应的第二种块变换对应的码表),以对当前第二种块变换下图像的解码序列或解码图像或解码条带进行熵解码。或者,在解码端,还可以根据映射参数调整从熵编码码流中接收到的第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数,以进行熵解码操作。
也就是说,上述用于指示码表间跳转顺序规则的跳转参数或者用于指示码表中元素映射处理方式的映射参数可以预先保留在熵编码和熵解码系统中。也可以在熵编码端根据熵编码序列或图像或条带的特性更新码表间跳转顺序规则或码表中元素处理规则,将上述规则写入序列、图像或条带等熵编码信息中,以便于解码端获取相应的处理规则;对应的在解码端可以从码流中序列、图像或条带等编码元素中解析得到相应的跳转参数或映射参数。
在熵编码过程中,上述本发明实施例具体可以用于对以下任意一项或多项当前编码数据进行熵编码操作:
(1)当前熵编码数据为图像亮度分量;
(2)当前熵编码数据为图像色度分量;
(3)当前熵编码数据为帧内熵编码数据;
(4)当前熵编码数据为帧间熵编码数据。
在熵解码过程中,上述本发明实施例具体可以用于对以下任意一项或多项当前熵解码数据进行熵解码操作:
(1)当前熵解码数据为图像亮度分量;
(2)当前熵解码数据为图像色度分量;
(3)当前熵解码数据为帧内熵编码数据;
(4)当前熵解码数据为帧间熵编码数据。
为便于对本发明实施例的理解,下面将以具体的应用实例对本发明实施例的实现过程进行详细说明。
具体实施例一
在该实施例中,采用调整码表间跳转顺序的规则作为转换规,即采用码表跳转的实现方式获得相应的码表。
假设经过变换后的块包括4×4块和8×8块,通常,4×4变换后获得的4×4块的数据分布比8×8块的数据分布更为陡峭,在使用8×8块对应的VLC和VLD码表编码或解码4×4块时,则可以通过改变码表跳转的条件的方式,以适应4×4块的数据分布规律。在这里经4×4变换(编码端)或4×4反变换(解码端)的图像块称为4×4变换块;经8×8变换(编码端)或8×8反变换(码端)的图像块称为8×8变换块。
假设,在熵编码或熵解码过程中,相应的8×8块对应VLC和VLD码表共有19张码表,具体可以包括:
(1)亮度块帧内编码码表7张,计为:VLC0_Intra,VLC1_Intra,VLC2_Intra,VLC3_Intra,VLC4_Intra,VLC5_Intra,VLC6_Intra;
(2)亮度块帧间编码7张,计为:VLC0_Inter,VLC1_Inter,VLC2_Inter,VLC3_Inter,VLC4_Inter,VLC5_Inter,VLC6_Inter;
(3)色度块编码码表5张,计为:VLC0_Chroma,VLC1_Chroma,VLC2_Chroma,VLC3_Chroma,VLC4_Chroma。
其中,在利用上述各表对8×8数据块进行VLC编码或VLD解码时,码表的跳转规则是依次增一,即当编码元素满足一定条件时码表会切换到与当前码表序号紧邻但序号值大一的表,例如,由VLC5_Intra切换到VLC6_Intra等。
当利用上述各表对4×4变换后的数据块(即4×4块)进行VLC编码或VLD解码时,则由于4×4块的数据的分布规律与经过8×8变换获得的8×8块的数据的分布规律不一致,则可以采用与4×4块相适应的码表跳转规则进行各码表 的选择应用,以适应4×4块的数据的分布规律。考虑到通常情况下4×4块的数据的分布规律中相应的数据变化幅度要较8×8块更大一些,故其能够采用的码表跳转方式可以为如表1~表3所示:
表1
表2
表3
在上述三张跳转表中,在当前元素使用某一码表编码或解码时,若当前编码或解码元素满足预定条件时,则下一编码或解码元素所使用码表跳转至根据当前码表对应的跳转至确定的码表,具体为跳转到当前码表序号值加上对应的跳转值之和指向的码表。例如,对亮度块进行帧间编解码时,当前编码或解码元素使用的是亮度块帧间编码对应的各码表(即表2中的各码表) 中的VLC3_Inter码表,此时,若跳转参数N4的值为2,则在当前编码或解码元素满足预定条件时,则由于VLC3_Inter码表的序号为3,再将上N4值,则跳转后的码表的序号为5,即相应的下一编码或解码元素所使用的码表将跳转至序号值为5的VLC5_Inter码表。
在上述三张跳转表中,若前编码或解码元素使用的是VLC5_Intra或VLC5_Inter或VLC3_Chroma码表时,则由于其为当前编码条件(例如亮度块帧内编码)下的倒数第二张码表,下一编码或解码元素所能够使用的码表仅能是最后一张码表,故相应的跳转参数值设置为1。
在上述三张跳转表中,若前编码或解码元素使用的是VLC6_Intra或VLC6_Inter或VLC4_Chroma码表时由于其为当前编码条件(例如亮度块帧内编码)下的最后一张码表,故跳转参数值不可得,并设置为N/A;即码表的跳转参数值与当前码表序号之和不能超过当前编码或解码条件下最后一张码表的序号值,否则,将无法确定跳转后采用的码表。
在上述三张跳转表中,各个跳转参数值根据4×4块的数据的分布规律确定。若需要获得其他种块变换的码表,则相应的跳转参数需要根据该种块变换的数据的颁布规律进行设置。
上述跳转表可预先存储于编码与解码系统中,亦可在编码端根据当前编码序列、图像、条带的特性和内容更新跳转表并将更新后的跳转表存储于序列头或图像头或条带头中。解码端则从码流中的序列头或图像头或条带头中提取更新后的跳转表用于解码当前序列或图像或条带。
具体实施例二
在该实施例中,编码端对熵编码码表中的元素进行映射,获得第二种块变换对应的熵编码参数;解码端,根据映射规则对使用第二种块变换的图像块数据进行映射,使用第一种块变换对应的熵解码码表解码所述映射后的数据。本发明实施例中亦可根据上述映射规则在分别在熵编码和熵解码端生成 第二变换对应的熵编码和熵解码码表,以编码和解码使用第二变换的图像块数据。
以VLC编码和VLD解码码表为例,相应的码表中的元素包括:索引值、run、level、EOB。在此实施例中码表中的索引值为trans_coefficient。若当前编码中使用了4×4和8×8两种变换。由于在8×8变换中总共有64个像素值待编码,其run和level对最多可能有64对;而在4×4变换中总共有16个像素值待编码,其run和level对最多可能有16对。通常情况下EOB的值与当前码表所对应编码条件下run和level对的对数有关系。如果在统计意义下当前编码条件下run和level对的对数较多,则EOB的值会设为一个较大的数值,否则EOB为一个较小值。由于4×4变换块本身待编码元素就比8×8变换块少,故编码4×4变换块时,其所对应的EOB值应比8×8变换块所对应的EOB值小,否则会降低编码效率。
综上所述,若当前编码系统保存的是基于8×8的码表,在使用该码表编码4×4变换块时EOB的值不宜设的太大。因此,在原先码表中EOB对应的值为M,在使用8×8变换的码表编码4×4变换块时码表中对应的EOB值可转换为一个较小值N,而原先码表中为N到M-1的索引值在编码4×4变换块数据时其值依次加1,但其所对应的run和level对数据不变。即原先run和level对所对应的索引值由N到M-1转换至N+1到M。这样,在编码4×4变换块数据时由于EOB的比特开销大幅减少,从而可以为编码4×4变换块带来较为理想的编码增益。
在解码端则在解码4×4变换块数据时,如果索引值在N+1到M之间,则索引值减1;如果索引值等于N,则索引值赋值为M。经上述操作后再将转换后的索引值在当前码表中查找得到对应的run和level对。
在上述处理过程中,相应的索引值与编码或解码元素的转换关系可以依据数据统计特性得到。例如,在VLC和VLD码表中,若EOB值为8,则在当前 编码或解码条件下统计意义上一个编码或解码图像块有7个run值和level值对。在编码4×4变换后的4×4图像块数据时,则可以将该码表EOB对应的值转换为‘0’,即在编码该4×4变换块时让EOB值由‘8’更改为0,将数值‘0’写入码流中,解码该4×4变换块时若解析得到数值为‘0’的元素,则将其值转换为‘8’,根据当前码表可知此元素为EOB,当前图像块解码结束。
假设实施例一的VLC3_Intra码表EOB所对应值为8,则在编码或解码经4×4变换后的4×4图像块数据时可将EOB值映射为0,而数值为0~7的索引值则依次映射至1~8,其所对应的run值和level值保持不变,参照下表所示,其中,表4为原始的8×8图像块的VLC3_Intra码表中EOB值、索引值与run和level的关系,表5则为映射处理之后的4×4图像块的码表中的EOB值、索引值如run和level数据之间的关系:
表4
表5
上述针对VLC3_Intra码表EOB值的转换方式可以扩展到实施例中其余18张码表。即设CurrentVLCTable代表当前码表,trans_coefficient为所述索引值。如果当前编码块是4×4变换块,则把CurrentVLCTable中的EOB值转换为‘0’,当编码EOB时将数值‘0’写入码流中;CurrentVLCTable中trans_coefficient为0到CurrentVLCTable中EOB对应值-1所对应的编码元素写码流时其值依次加1。解码时,如果当前块是4×4变换块,先进行映射操作如下:如果trans_coefficient在1到CurrentVLCTable中的EOB对应值(含)之间,则trans_coefficient减1;如果trans_coefficient等于0,则trans_coefficient赋值为CurrentVLCTable中的EOB的值。
可以看出,通过上述映射转换方式对保存的码表中的元素进行转换后便可以获得期望的尺寸的图像块对应的码表,并且该码表是通过一定处理规则获得而无需存储于编码和解码系统之中,有效节省了系统资源。
上述不同变换下码表元素的映射规则可预先存储于编码与解码系统中,亦可在编码端根据当前编码序列、图像、条带的特性和内容更新所述映射规则并将更新后的映射规则存储于序列头或图像头或条带头中。解码端则从码流中的序列头或图像头或条带头中提取更新后的映射规则用于解码当前序列或图像或条带。
本发明实施例还提供了一种熵编码装置,其具体实现结构如图2所示,可以包括以下处理单元:
(1)第一存储单元,用于保存的第一种块变换对应的熵编码码表;
(2)第一码表处理单元,用于根据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;
其中,该第一码表处理单元具体可以采用的映射处理包括以下任意一种实现方式:
方式一:根据用于确定跳转后的码表序号的跳转参数进行映射操作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;
方式二:根据第二种块变换对应的映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得第二种块变换对应的熵编码码表参数;
(3)编码单元,用于使用所述第一码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作;
该所述编码单元用于根据所述第二种块变换对应的熵编码码表参数对当前或下一个使采用第二变换处理的第二种块变换的图像块的数据进行熵编码操作。
可选地,在该装置中还可以包括第一跳转参数获取单元,用于获取预先设定的跳转参数;或者,也可以用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的跳转参数,并通知编码单元将所述跳转参数写入编码码流中。
可选地,该装置中还可以包括第一括映射参数获取单元,用于获取预先设定的映射参数;或者,也可以用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的当前编码序列或编码图像或编码条带的映射参数,并通知编码单元将所述映射参数写入码流中。
本发明实施例还提供了一种熵解码装置,其具体实现结构如图3所示,可以包括以下处理单元:
(1)第二存储单元,用于保存的第一种块变换对应的熵解码码表;
(2)第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;
该第二码表处理单元采用的映射的处理可以包括以下任一方式:
方式一:根据用于确定跳转后的码表序号的跳转参数进行映射操作,其中,所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码序号之间的差值;
方式二:根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数;或者,也可以根据映射参数调整所述第一种块变换对应的熵解码码表中的数据元素,将调整结果作为第二种块变换对应的熵解码码表参数;
(3)解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵解码操作。
该解码单元用于根据所述第二种块变换对应的熵解码码表参数对当前或下一个使采用第二变换处理的第二种块变换下的图像进行熵编码操作。
可选地,在该装置中还可以包括第二跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。
可选地,在该装置还可以包括第二映射参数获取单元,用于获取预先设定的映射参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。
综上所述,本发明实施例的实现可以根据当前尺寸的图像块的数据统计特性获得适合的码表,进而有效减少因ABT(Adapt Block Transform,自适应种块变换)技术而带来的熵编码码表开销。而且,本发明实施例中仅需要 保存某一尺寸的图像块对应的码表便可以获得其他尺寸的图像块的码表,因而可以有效降低硬件资源的占用,同时还可以兼顾提高相应的编解码效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (30)
1.一种图像熵编码方法,其特征在于,包括:
根据第一种块变换对应的熵编码码表,映射获得第二种块变换对应的熵编码码表参数,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码;
其中,所述映射的处理包括根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数;所述映射参数及跳转参数具体根据相应的第二种块变换的统计特性确定。
2.根据权利要求1所述的方法,其特征在于,当采用根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作时,所述的跳转参数为熵编码码表跳转后的码表序号,或者,所述的跳转参数为熵编码码表跳转后的码表序号与当前的码表序号之间的差值。
3.根据权利要求2所述的方法,其特征在于,利用所述熵编码码表参数对第二种块变换图像块数据进行熵编码的步骤包括:
在根据熵编码码表跳转的码表序号在所述第一块变换对应的编码码表中确定所述第二块变换对应的编码码表后,根据所述第二块变换对应的编码码表对当前或者下一个第二种块变换的图像块的数据进行熵编码。
4.根据权利要求2所述的方法,其特征在于,在获得所述熵编码码表跳转后的码表序号的过程中还包括:
若当前的码表序号对应的码表为当前编码条件下的倒数第二张码表,则熵编码码表跳转后的码表序号为当前编码条件下的最后一张码表对应的码表序号;
或者,
若当前的码表序号对应的码表为当前编码条件下最后一张码表,则不进行熵编码码表跳转操作。
5.根据权利要求2所述的方法,其特征在于,所述跳转参数为预先设定;或者,根据当前编码序列或编码图像或编码条带的编码特性确定所述跳转参数,并将所述跳转参数写入编码码流中。
6.根据权利要求1所述的方法,其特征在于,所述调整所述第一种块变换对应的熵编码码表中的元素值的步骤包括;
对第一种块变换对应的编码码表中的预定数值范围内的元素值进行映射调整处理。
7.根据权利要求1所述方法,其特征在于,所述调整所述第一种块变换对应的熵编码码表中的元素值的过程包括:
若码表中的元素值为当前图像块结束标记,则将该元素值M映射至N,M和N分别为一整数值,且将N与M-1之间的元素值加1,并保持元素值与码表中其他元素之间的索引关系不变。
8.根据权利要求1所述的方法,所述映射参数为预先设定;或者,根据当前编码序列或编码图像或编码条带的编码特性确定当前编码序列或编码图像或编码条带的映射参数,并将所述映射参数写入码流中。
9.根据权利要求5或8所述的方法,其特征在于,所述编码序列或编码图像或编码条带的编码特性包括:序列或图像或条带的像素值、残差值、像素值或残差值的数学统计特征值,或者,序列或图像或条带的像素值和残差值的数学统计特征值。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述熵编码码表参数包括:变长编码下的帧内亮度编码码表序号和类型,帧间亮度编码码表序号和类型,帧内色度编码码表序号和类型,帧间色度编码码表序号和类型,游程run,量化系数值level,变换系数trans_coefficient,转逸系数差值escape_level_diff和增加图像块结束标志EOB中的至少一项;所述图像块的数据包括游程run的值和量化系数值level的值。
11.一种熵解码方法,其特征在于,包括:
根据第一种块变换对应的熵解码码表,映射获得第二种块变换对应的熵解码码表参数,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码;
其中,所述映射的处理包括根据用于确定熵解码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵解码码表中的元素值,获得映射后的第二种块变换对应的熵解码码表参数;所述映射参数及跳转参数为根据相应的第二种块变换的统计特性确定。
12.根据权利要求11所述的方法,其特征在于,当采用根据用于确定熵解码码表跳转后的码表序号的跳转参数进行映射操作时,所述的跳转参数为熵解码码表跳转后的码表序号,或者,所述的跳转参数为熵解码码表跳转后的码表序号与当前的码表序号之间的差值。
13.根据权利要求12所述的方法,其特征在于,利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码的步骤包括:
在根据熵解码码表跳转后的码表序号在所述第一块变换对应的解码码表中确定所述第二块变换对应的解码码表后,根据所述第二块变换对应的解码码表对当前或者下一个使用第二种块变换的图像块的数据进行熵解码。
14.根据权利要求12所述的方法,其特征在于,在获得所述熵解码码表跳转后的码表序号的过程中还包括:
若当前的码表序号对应的码表为当前解码条件下的倒数第二张码表,则熵解码码表跳转后的码表序号为当前解码条件下的最后一张码表对应的码表序号;
或者,
若当前的码表序号对应的码表为当前解码条件下最后一张码表,则不进行熵解码码表跳转。
15.根据权利要求12所述的方法,其特征在于,所述跳转参数为预先设定;或者,根据当前解码序列或解码图像或解码条带从接收到的编码码流中解析获得。
16.根据权利要求11所述的方法,其特征在于,所述映射处理包括:
根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数。
17.根据权利要求11或16所述的方法,其特征在于,所述数据元素值的调整包括;对预定数值范围内的元素值进行映射调整处理。
18.根据权利要求11或16所述方法,其特征在于,所述利用所述熵解码码表参数对第二种块变换下图像块数据进行熵解码的过程包括:
若从码流中解析获得数据元素值为N,则所述数据元素值映射为当前熵解码码表中图像块结束标记的值M,将码流中数据元素值为N+1与M之间的数据元素值减1,并保持数据元素值与当前熵解码码表中其他元素之间的索引关系不变,N和M为一整数值。
19.根据权利要求11或16所述的方法,所述映射参数为预先设定;或者,根据当前解码序列或解码图像或解码条带从接收到的编码码流中解析获得。
20.根据权利要求11至19任一项所述的方法,其特征在于,所述熵解码码表参数包括:变长解码下的帧内亮度解码码表序号和类型,帧间亮度解码码表序号和类型,帧内色度解码码表序号和类型,帧间色度解码码表序号和类型,游程run,量化系数值level,变换系数trans_coefficient,转逸系数差值escape_level_diff和增加图像块结束标志EOB中的至少一项;所述图像块的数据包括游程run的值和量化系数值level的值。
21.一种熵编码装置,其特征在于,包括:
第一存储单元,用于保存的第一种块变换对应的熵编码码表;
第一码表处理单元,用于根据对所述第一存储单元保存的第一种块变换对应的熵编码码表进行映射处理,获得第二种块变换对应的熵编码码表参数;
编码单元,用于使用所述第一码表处理单元获得的第二种块变换对应的熵编码码表参数对第二种块变换的图像块的数据进行熵编码操作;
其中,所述第一码表处理单元进行映射处理包括根据用于确定熵编码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得映射后的第二种块变换对应的熵编码码表参数;所述映射参数及跳转参数具体根据相应的第二种块变换的统计特性确定。
22.根据权利要求21所述的装置,其特征在于,所述第一码表处理单元在映射处理过程中所述跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码表序号之间的差值;且所述编码单元用于根据所述第二种块变换对应的熵编码码表参数对当前或下一个采用第二变换处理的第二种块变换的图像块的数据进行熵编码操作。
23.根据权利要求22所述的装置,其特征在于,该装置还包括第一跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的跳转参数,并通知编码单元将所述跳转参数写入编码码流中。
24.根据权利要求21所述的装置,其特征在于,所述第一码表处理单元在映射处理包括:根据第二种块变换对应的映射参数调整所述第一种块变换对应的熵编码码表中的元素值,获得第二种块变换对应的熵编码码表参数;且所述编码单元用于根据调整获得的第二种块变换对应的熵编码码表参数对当前或下一个的第二种块变换的图像块的数据进行熵编码操作。
25.根据权利要求24所述的装置,其特征在于,该装置还包括第一映射参数获取单元,用于获取预先设定的映射参数;或者,用于获取根据当前编码序列或编码图像或编码条带的编码特性确定的当前编码序列或编码图像或编码条带的映射参数,并通知编码单元将所述映射参数写入码流中。
26.一种熵解码装置,其特征在于,包括:
第二存储单元,用于保存的第一种块变换对应的熵解码码表;
第二码表处理单元,用于根据第二存储单元保存的第一种块变换对应的熵解码码表映射获得第二种块变换对应的熵解码码表参数;
解码单元,用于使用所述第二码表处理单元获得的第二种块变换对应的熵解码码表参数对第二种块变换的图像块的数据进行熵解码操作;
其中,所述第二码表处理单元进行映射处理包括根据用于确定熵解码码表跳转后的码表序号的跳转参数进行映射操作;或者,根据映射参数调整所述第一种块变换对应的熵解码码表中的元素值,获得映射后的第二种块变换对应的熵解码码表参数;所述映射参数及跳转参数为根据相应的第二种块变换的统计特性确定。
27.根据权利要求26所述的装置,其特征在于,所述第二码表处理单元在映射处理过程中所述的跳转参数为跳转后的码表序号,或者,所述的跳转参数为跳转后的码表序号与当前的码表序号之间的差值;且所述解码单元用于根据所述第二种块变换对应的熵解码码表参数对当前或下一个采用第二变换处理的第二种块变换下的图像进行熵解码操作。
28.根据权利要求27所述的装置,其特征在于,该装置还包括第二跳转参数获取单元,用于获取预先设定的跳转参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的跳转参数。
29.根据权利要求26所述的装置,其特征在于,所述第二码表处理单元采用的映射的处理包括:根据映射参数调整所述第二种块变换对应的数据元素,并根据调整后的数据元素值及第一种块变换对应的熵解码码表获得第二种块变换对应的熵解码码表参数;所述解码单元用于根据调整获得的第二种块变换对应的熵解码码表参数对当前或下一个采用第二变换处理的第二种块变换的图像块的数据进行熵解码操作。
30.根据权利要求29所述的装置,其特征在于,该装置还包括第二映射参数获取单元,用于获取预先设定的映射参数;或者,用于根据当前解码序列或解码图像或解码条带从接收到的编码码流中获取的当前解码序列或解码图像或解码条带的映射参数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810009057 CN101500159B (zh) | 2008-01-31 | 2008-01-31 | 一种图像熵编码、熵解码的方法及装置 |
PCT/CN2009/070299 WO2009097810A1 (zh) | 2008-01-31 | 2009-01-23 | 一种图像熵编码、熵解码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810009057 CN101500159B (zh) | 2008-01-31 | 2008-01-31 | 一种图像熵编码、熵解码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101500159A CN101500159A (zh) | 2009-08-05 |
CN101500159B true CN101500159B (zh) | 2012-01-11 |
Family
ID=40947004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810009057 Active CN101500159B (zh) | 2008-01-31 | 2008-01-31 | 一种图像熵编码、熵解码的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101500159B (zh) |
WO (1) | WO2009097810A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3550840A1 (en) * | 2012-01-20 | 2019-10-09 | Sony Corporation | Complexity reduction of significance map coding |
CN103414897B (zh) * | 2013-07-31 | 2016-05-18 | 北京蛙视通信技术股份有限公司 | 对视频图像熵解码的方法及装置 |
CN103841405B (zh) * | 2014-03-21 | 2016-07-06 | 华为技术有限公司 | 深度图像的编解码方法和编解码装置 |
CN105094978B (zh) * | 2014-05-15 | 2020-02-28 | 研祥智能科技股份有限公司 | 语音处理装置及方法 |
EP3349454A1 (en) * | 2017-01-11 | 2018-07-18 | Thomson Licensing | Method and device for coding a block of video data, method and device for decoding a block of video data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
CN1689026A (zh) * | 2002-10-03 | 2005-10-26 | 诺基亚有限公司 | 用于自适应块变换的基于上下文的自适应可变长度编码 |
CN1717938A (zh) * | 2004-05-20 | 2006-01-04 | 株式会社摩迩迪 | 编码移动通信终端的运动图像的系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4130780B2 (ja) * | 2002-04-15 | 2008-08-06 | 松下電器産業株式会社 | 画像符号化方法および画像復号化方法 |
JP4090862B2 (ja) * | 2002-04-26 | 2008-05-28 | 松下電器産業株式会社 | 可変長符号化方法および可変長復号化方法 |
CN1589023A (zh) * | 2004-08-06 | 2005-03-02 | 联合信源数字音视频技术(北京)有限公司 | 一种基于上下文的多码表变长编解码方法及编解码装置 |
-
2008
- 2008-01-31 CN CN 200810009057 patent/CN101500159B/zh active Active
-
2009
- 2009-01-23 WO PCT/CN2009/070299 patent/WO2009097810A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1689026A (zh) * | 2002-10-03 | 2005-10-26 | 诺基亚有限公司 | 用于自适应块变换的基于上下文的自适应可变长度编码 |
US6646578B1 (en) * | 2002-11-22 | 2003-11-11 | Ub Video Inc. | Context adaptive variable length decoding system and method |
CN1717938A (zh) * | 2004-05-20 | 2006-01-04 | 株式会社摩迩迪 | 编码移动通信终端的运动图像的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2009097810A1 (zh) | 2009-08-13 |
CN101500159A (zh) | 2009-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2765300C1 (ru) | Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы | |
RU2736421C1 (ru) | Способ кодирования и декодирования изображений и устройство кодирования и декодирования | |
JP6701391B2 (ja) | 改良情報を用いてダウンサンプリング/アップサンプリングすることによるデジタルフレームの符号化/復号化 | |
US9215463B2 (en) | Image encoding/decoding method and device | |
US20160330468A1 (en) | Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method | |
EP2777258A1 (en) | Binarization of prediction residuals for lossless video coding | |
US20160088299A1 (en) | Adaptive picture section encoding mode decision control | |
KR20130010124A (ko) | 비디오 압축에서 코딩된 블록 패턴 (cbp) 의 가변 길이 코딩 | |
JP2014520493A (ja) | 合成ビデオのためのロスレス・コード化および関連するシグナリング方法 | |
CN103152565A (zh) | 图像解码方法和图像编码方法 | |
JP2011507450A (ja) | 可変長符号化方法及び装置 | |
EP1768415A1 (en) | Adaptive scan order of DCT coefficients and its signaling | |
WO2023040600A1 (zh) | 图像编码方法、图像解码方法、装置、电子设备及介质 | |
CN116668695B (zh) | 用于视频编码的方法、计算设备和存储介质 | |
TW201313031A (zh) | 用於大色度區塊的可變長度寫碼係數寫碼 | |
CN101500159B (zh) | 一种图像熵编码、熵解码的方法及装置 | |
CN101268696A (zh) | 提高熵编码的性能的方法和设备及使用所述熵编码性能提高方法的视频编码方法和设备 | |
TWI848530B (zh) | 圖像解碼方法、圖像編碼方法及相應的裝置 | |
CN110708547B (zh) | 针对变换模式的有效熵编码组分组方法 | |
EP2196031B1 (en) | Method for alternating entropy coding | |
CN103959786B (zh) | 用于使用非均匀重构空间进行数据压缩的方法和设备 | |
US9247257B1 (en) | Segmentation based entropy encoding and decoding | |
CN116803077A (zh) | 用于视频编解码的残差和系数编解码 | |
KR20250038735A (ko) | 이미지 인코딩 및 디코딩 방법 및 장치 | |
CN116527927B (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 |