CN103686193B - 一种jpeg2000图像解码和编码的方法 - Google Patents
一种jpeg2000图像解码和编码的方法 Download PDFInfo
- Publication number
- CN103686193B CN103686193B CN201310662575.5A CN201310662575A CN103686193B CN 103686193 B CN103686193 B CN 103686193B CN 201310662575 A CN201310662575 A CN 201310662575A CN 103686193 B CN103686193 B CN 103686193B
- Authority
- CN
- China
- Prior art keywords
- passage
- row
- status indicator
- cln
- band
- 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
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims description 45
- 230000009191 jumping Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种JPEG2000图像编码和解码的方法,该方法包括:在Cln通道和Sig通道编码或解码每列时,根据该列的重要性系数及其被访问情况,预测并设置后续Sig、Ref、Cln通道该列的状态标识;在Cln通道和Sig通道编码或解码每个条带完毕时,根据该条带中每列的状态标识生成相应通道的条带的状态标识;除第一个位平面外,在每个通道每个条带编码或解码之前,根据相应通道相应条带的状态标识进行连续列群的跳过或执行;在Sig通道中对于需要执行的列在处理之前根据该列及其邻域系数的重要性直接跳过在该位平面完全属于Cln通道的列;在每个通道编码或解码时,根据3通道数据总数的关系进行通道的提前跳出。通过本发明提供的方法,能够提高编码或解码效率。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种JPEG2000图像解码和编码的方法。
背景技术
随着图像处理技术的发展,图像处理技术被应用于很多领域。数字电影采用JPEG2000对数字电影图像进行压缩编码。JPEG2000的核心算法采用位平面编码技术。
位平面编码就是将经过小波变换和量化后的小波系数划分成若干个码块,每个码块又分成若干个位平面,每个位平面又分成若干个条带,在一个条带内垂直方向上的点是一个编码列,一般1列由4个点组成。位平面扫描按条带从上到下逐个条带进行扫描;在每个条带内从左往右逐列进行,列内垂直逐点进行扫描。除第一个位平面外,每个位平面依次在3个通道内进行编码和解码,第一个位平面只进行第3通道即清除通道(clean up pass,Cln通道)编码和解码。这3个编码和解码通道依次是重要性传播通道(Significance pass,Sig通道)、幅值细化通道(magnitude Refinement pass,Ref通道)、清除通道(Cleanuppass,Cln通道)。Sig通道仅处理那些自身不重要但其邻域至少有1个是重要的系数。Ref通道处理该位平面之前已经成为重要的系数,不包括在该位平面内刚刚成为重要性的系数。Cln通道处理在前两个通道中未被处理的系数。在进行位平面编码和解码时,除第一个位平面外只进行第3通道即Cln通道编码和解码外,其余位平面按照Sig通道、Ref通道、Cln通道的顺序依次进行编码和解码,在每个通道中都要对位平面的所有比特位进行扫描,根据系数自身的重要性及其邻域的重要性选择需要在该通道中编码和解码的比特位进行编码和解码。
通过上述描述可见,标准位平面编码和解码采用逐点扫描的方法,对于每个比特位都要扫描三次,而每个比特位只在一个通道中进行编码和解码,冗余过多、编码和解码效率低。
发明内容
本发明提供了一种JPEG2000图像解码和编码的方法,能够提高图像解码和编码的效率。
一方面,本发明提供了一种JPEG2000图像解码的方法,预先设置待解码码块的重要性数组,并初始化为不重要,在每解码出一个重要系数后,将该系数的重要性更新为重要;采用清除通道Cln通道解码第一位平面,第一位平面之后的位平面的解码方法包括:
读取前一个位平面生成的重要性传播通道Sig通道的条带状态标识,根据所述Sig通道的条带状态标识进行Sig通道解码,其中,在Sig通道解码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、幅值细化通道Ref通道的状态标识;
在Sig通道解码完一个条带后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
在Sig通道解码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据所述Ref通道的条带状态标识进行Ref通道解码;
在Ref通道解码完毕后,读取所述Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道解码,其中,在Cln通道解码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
在Cln通道解码完一个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识。
进一步地,所述采用清除通道Cln通道解码第一位平面,包括:
Cln通道解码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待解码数据总数为所述重要系数总数。
进一步地,所述根据所述Sig通道的条带状态标识进行Sig通道解码,包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道解码的列;
从Sig通道的状态标识中解析出需要Sig通道解码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的解码;
其中,Sig通道解码某列之前,设置该列在该位平面中Cln通道待解码数据总数为该列的数据总数;
Sig通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道解码的数据总数;
Sig通道解码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待解码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待解码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待解码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道解码的数据总数大于或等于码块数据总数与Ref通道待解码数据总数之差,则提前结束Sig通道的解码,否则继续进行Sig通道的解码。
进一步地,所述根据所述Ref通道的条带状态标识进行Ref通道解码,包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道解码的列;
解码从Ref通道的条带状态标识中解析出的需要Ref通道解码的列;
其中,记录在Ref通道中进行解码的数据总数;
若已在Ref通道中解码的数据总数等于Ref通道待解码数据总数,则提前跳出Ref通道的解码,否则继续执行Ref通道的解码。
进一步地,所述根据该Cln通道的条带状态标识进行Cln通道解码,包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道解码的列;
解码从Cln通道的条带状态标识中解析出的需要Cln通道解码的列;
其中,Cln通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道解码的数据总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道解码的数据总数、Ref通道解码数据总数、Sig通道解码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的解码,否则继续进行Cln通道的解码;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待解码数据总数为重要系数总数。
进一步地,所述条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
所述初始状态为被预测条带的第一列的状态标识;
所述状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
所述每次状态连续的列数为同一种列的状态标识连续的列数。
另一方面,本发明提供了一种JPEG2000图像编码的方法,
预先设置待编码码块的重要性数组,并初始化为不重要,在每读取出一个重要系数后,将该系数的重要性更新为重要;采用清除通道Cln通道编码第一位平面,第一位平面之后的位平面的编码方法包括:
读取前一个位平面生成的重要性传播通道Sig通道的条带状态标识,根据所述Sig通道的条带状态标识进行Sig通道编码,其中,在Sig通道编码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、幅值细化通道Ref通道的状态标识和Cln通道的状态标识;
在Sig通道编码完一个条带后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
在Sig通道编码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据所述Ref通道的条带状态标识进行Ref通道编码;
在Ref通道编码完毕后,读取所述Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道编码,其中,在Cln通道编码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
在Cln通道编码完一个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识。
进一步地,所述采用清除通道Cln通道编码第一位平面,包括:
Cln通道编码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为所述重要系数总数。
进一步地,所述根据所述Sig通道的条带状态标识进行Sig通道编码,包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道编码的列;
从Sig通道的状态标识中解析出需要Sig通道编码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的编码;
其中,Sig通道编码某列之前,设置该列在该位平面中Cln通道待编码数据总数为该列的数据总数;
Sig通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道编码的数据总数;
Sig通道编码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待编码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待编码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待编码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道编码的数据总数大于或等于码块数据总数与Ref通道待编码数据总数之差,则提前结束Sig通道的编码,否则继续进行Sig通道的编码。
进一步地,所述根据所述Ref通道的条带状态标识进行Ref通道编码,包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道编码的列;
编码从Ref通道的条带状态标识中解析出的需要Ref通道编码的列;
其中,记录在Ref通道中进行编码的数据总数;
若已在Ref通道中编码的数据总数等于Ref通道待编码数据总数,则提前跳出Ref通道的编码,否则继续执行Ref通道的编码。
进一步地,所述根据该Cln通道的条带状态标识进行Cln通道编码,包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道编码的列;
编码从Cln通道的条带状态标识中解析出的需要Cln通道编码的列;
其中,Cln通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道编码的数据总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道编码的数据总数、Ref通道编码数据总数、Sig通道编码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的编码,否则继续进行Cln通道的编码;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为重要系数总数。
进一步地,所述条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
所述初始状态为被预测条带的第一列的状态标识;
所述状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
所述每次状态连续的列数为同一种列的状态标识连续的列数。
本发明提供的一种JPEG2000图像解码和编码的方法,通过本发明实施例提供的一种JPEG2000图像解码的方法,能够在Cln通道和Sig通道内根据已经解码得到的系数的重要性预测出当前位平面或后续位平面中3个通道中可跳过的列,在通道中解码时直接跳过这些可跳过的列,减少了扫描次数,通过将单列状态标识转换为条带状态标识,能够将相同状态的连续的列进行连续处理,减少了列或列群的扫描判断次数提高了解码效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种JPEG2000图像解码的方法流程图;
图2是本发明实施例2提供的一种JPEG2000图像解码的方法流程图;
图3是本发明实施例3提供的一种JPEG2000图像编码的方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
为了提高图像解码的效率,本发明实施例提供了一种JPEG2000图像解码的方法,参见图1,该方法具体包括:
步骤101:预先设置待编码码块的重要性数组,并初始化为不重要,在每解码出一个重要系数后,将该系数的重要性更新为重要;
步骤102:采用Cln通道解码第一位平面;
第一位平面之后的位平面的解码方法包括:
步骤103:读取前一个位平面生成的Sig通道的条带状态标识,根据Sig通道的条带状态标识进行Sig通道解码,其中,在Sig通道解码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
步骤104:在Sig通道解码完每个条带后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
步骤105:在Sig通道解码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据该Ref通道的条带状态标识进行Ref通道解码;
步骤106:在Ref通道解码完毕后,读取Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道解码,其中,在Cln通道解码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
步骤107:在Cln通道解码完每个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识。
通过本发明实施例提供的一种JPEG2000图像解码的方法,能够在Cln通道和Sig通道内根据已经解码得到的系数的重要性预测出当前位平面或后续位平面中3个通道中可跳过的列,在通道中解码时直接跳过这些可跳过的列,减少了扫描次数,通过将单列状态标识转换为条带状态标识,能够将相同状态的连续的列进行连续处理,减少了列或列群的扫描判断次数提高了解码效率。
其中,步骤102具体包括:Cln通道解码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待解码数据总数为重要系数总数。
在步骤103中,根据Sig通道的条带状态标识进行Sig通道解码,具体包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道解码的列;
从Sig通道的状态标识中解析出需要Sig通道解码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的解码;
其中,Sig通道解码某列之前,设置该列在该位平面中Cln通道待解码数据总数为该列的数据总数;
Sig通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道解码的数据总数;
Sig通道解码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待解码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待解码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待解码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道解码的数据总数大于或等于码块数据总数与Ref通道待解码数据总数之差,则提前结束Sig通道的解码,否则继续进行Sig通道的解码。
在步骤105中,根据Ref通道的条带状态标识进行Ref通道解码,具体包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道解码的列;
解码从Ref通道的条带状态标识中解析出的需要Ref通道解码的列;
其中,记录在Ref通道中进行解码的数据总数;
若已在Ref通道中解码的数据总数等于Ref通道待解码数据总数,则提前跳出Ref通道的解码,否则继续执行Ref通道的解码。
在步骤106中,根据该Cln通道的条带状态标识进行Cln通道解码,包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道解码的列;
解码从Cln通道的条带状态标识中解析出的需要Cln通道解码的列;
其中,Cln通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道解码的数据总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道解码的数据总数、Ref通道解码数据总数、Sig通道解码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的解码,否则继续进行Cln通道的解码;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待编码数据总数为重要系数总数。
其中,条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
初始状态为被预测条带的第一列的状态标识;
状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
每次状态连续的列数为同一种列的状态标识连续的列数。
其中,对于一个条带分别有Sig通道的条带状态标识、Ref通道的条带状态标识、Cln通道的条带状态标识三个条带状态标识。
设处理状态为处理用“1”表示,处理状态为跳过用“0”表示,例如一个条带中每列的处理状态为:00001011111010000000101111110001可以得出,初始状态为“跳过”即为“0”,状态切换次数为11,连续状态的列数分别为{4,1,1,5,1,1,7,1,1,6,3,1},得到状态标识参见表1:
表1
0 | 11 | 4 | 1 | 1 | 5 | 1 | 1 | 7 | 1 | 1 | 6 | 3 | 1 |
当一列的系数的重要性全部为重要时,将当前位平面之后的所有位平面的对应列在Sig通道、Cln通道中的处理状态设置为跳过。
Sig通道的单列处理状态初始化为不跳过。当某列的数据全部变为重要时,该列的处理状态变为跳过。处理状态从不跳过变为跳过后就一直为跳过,直到该码块解码完毕。
Ref通道的单列处理状态初始化为跳过。当某列数据至少有1个变为重要后,该列的处理状态变为不跳过。处理状态从跳过变为不跳过后就一直为不跳过,直到该码块解码完毕。
Cln通道的单列处理状态初始化为不跳过。当某列的数据全部在Sig通道或Ref通道中处理时,该列的处理状态变为跳过。状态从不跳过变为跳过后就一直为跳过,直到该码块解码完毕。
实施例2:
下面通过具体的实现过程来详细说明本发明实施例提供的一种JPEG2000图像解码的方法。在本实施例中待解码码块为32×32的码块,参见图2,具体步骤包括:
步骤201:参数设置及初始化。
步骤202:采用Cln通道解码第一个位平面。
后续位平面按下述步骤进行:
步骤203:每个位平面首先进行Sig通道的解码。
步骤204:每个位平面在完成Sig通道的解码后,进行Ref通道的解码。
步骤205:每个位平面在完成Ref通道的解码后,进行Cln通道的解码。
步骤206:每个位平面在完成Cln通道的解码后,进行下一个位平面的解码。
其中,在步骤201中,参数设置及初始化,具体包括:
待解码码块解码开始之前,设置并初始化参数。
码块的长标记为h,码块宽度标记为w,码块的条带个数标记为stripe_num,条带宽度标记为stripe_length。
码块系数的重要性数组标记为significance[(w+2)×(h+2)],初始化为0。其中,0表示不重要,1表示重要。
预先设置Sig通道每列的状态标识,标记为sig_column_state[stripe_num,w],初始化为1;预先设置Ref通道每列的状态标识,标记为ref_column_state[stripe_num,w],初始化为0;预先设置Cln通道每列的状态标识,标记为cln_column_state[stripe_num,w],初始化为1;其中单列状态标识中0表示该列跳过,1表示该列处理。
预先设置Sig通道每个条带的条带状态标识,标记为sig_DMCOLS[stripe_num],其初始状态、状态切换次数、每次状态连续列数均初始化为0。
预先设置Ref通道每个条带的条带状态标识,标记为ref_DMCOLS[stripe_num],其初始状态、状态切换次数、每次状态连续列数均初始化为0。
预先设置Cln通道每个条带的条带状态标识,标记为cln_DMCOLS[stripe_num],其初始状态、状态切换次数、每次状态连续列数均初始化为0。
计算码块系数总数,标记为n,n=w×h。设属于Sig通道处理的系数的总数为n1,初始化为0;属于Ref通道的为n2,初始化为0;Cln通道的为n3,初始化为n。
设码块重要系数总数为sig_num,初始化为0。
在每个位平面开始之前,设Sig通道已解码的系数的数量为n11,初始化为0;设Ref通道已解码的系数的数量为n22,初始化为0;设Cln通道已解码的系数的数量为n33,初始化为0。
其中,在步骤202中,解码第一个位平面,具体包括:
在第一个位平面中,仅采用Cln通道进行全通道全列逐点扫描进行解码。
在Cln通道中,每个系数解码时,若该系数变为重要,则sig_num加1。
在Cln通道中,每列解码完毕时,计算该列所有系数的重要性之和,即该列重要系数的个数,标记为column_significance,若column_significance>0,则将Ref通道该列的状态标识ref_column_state[s][i]的值置为1;若column_significance==stripe_1ength,则将Sig通道和Cln通道该列的状态标识sig_column_state[s][i]和cln_column_state[s][i]的值置为0。其中,s、i表示该列为第s条带中的第i列。
在Cln通道中,每个条带解码完毕时,将该条带Sig通道的单列状态标识sig_column_state[s][]和Ref通道的单列状态标识ref_column_state[s][],根据单列状态标识到条带状态标识的转换规则,分别生成相应的条带状态标识。其中,Sig通道的每个条带的条带状态标识标记为sig_DMCOLS[s],Ref通道的条带状态标识标记为ref_DMCOLS[s],s表示该条带为第s个条带。
Cln通道解码完毕时,设置下一个位平面中Ref通道应解码数据个数n2=sig_num。
其中,在步骤203中,每个位平面首先进行Sig通道的解码,具体包括:
Sig通道解码开始之前,设Sig通道已解码的系数的总数为n11,初始化为0。解码过程中,若有系数属于Sig通道解码,则n11加1;若n11≥n-n2,则提前结束Sig通道解码,否则继续执行Sig通道的解码。
Sig通道每个条带解码之前,读取该条带Sig通道的条带状态标识sig_DMCOLS[s],该条带状态标识中第一个比特的值为初始状态,随后5个比特的值表示该条带中状态切换次数,随后读取每次状态所持续的列数。依据条带的状态标识规则,对需要跳过的列群进行跳过;对需要执行的列群,按下述步骤执行:Sig通道对需要执行的列,在解码之前,计算该列及其邻域系数的重要性之和,标记为σcolumn_cx[s,i],其中s、i表示为该列为第s条带第i列。若σcolumn_cx[s,i]==0,则直接跳过该列;否则,对该列进行解码。
在Sig通道中,每个系数处理时,若该系数变为重要,则sig_num加1。
Sig通道解码每列之前,设该列属于Cln通道解码的系数个数为cln_count,初始化cln_count=stripe_length。该列中若有系数在之前位平面中已经变为重要,则cln_count减1;该列中若有系数属于Sig通道处理,则cln_count减1。
Sig通道解码每列完毕时,计算该列所有系数的重要性之和,即该列重要系数的个数,标记为column_significance,若column_significance>0,则将Ref通道该列的单列状态标识ref_column_state[s][i]的值置为1;若column_significance==stripe_length,则将Sig通道和Cln通道该列的单列状态标识sig_column_state[s][i]和cln_column_state[s][i]的值置为0;若cln_count==0,则将cln_column_skip[s][i]的值置为0。其中,s、i表示该列为第s条带中的第i列。
Sig通道解码每个条带完毕时,将该条带Cln通道的单列状态标识cln_column_state[s][],根据单列状态标识到条带状态标识的转换规则,生成相应的条带状态标识。Cln通道的状态标识标记为cln_DMCOLS[s]。其中s表示该条带为第s个条带。
Sig通道解码完毕时,n1=n11。
其中,在步骤204中,每个位平面在完成Sig通道的解码后,进行Ref通道的解码,具体包括:
Ref通道解码开始之前,设Ref通道已解码的系数的总数为n22,初始化为0。
Ref通道每个条带解码之前,读取该条带Ref通道的状态标识ref_DMCOLS[s],依据条带状态标识规则,对需要跳过的列群进行跳过;对需要执行的列群进行解码处理。
在解码过程中,若有系数属于Ref通道处理,则n22加1;若n22≥n2,则提前结束Ref通道,否则继续执行Ref通道的解码。
其中,在步骤205中,每个位平面在完成Ref通道的解码后,进行Cln通道的解码,具体包括:
Cln通道解码开始之前,设Cln通道已解码的系数的总数为n33,初始化为0。
Cln通道每个条带解码之前,读取该条带Cln通道的状态标识cln_DMCOLS[s]。依据条带状态标识规则,对需要跳过的列群进行跳过;对需要执行的列群,按下述步骤执行:
在Cln通道中,每个系数解码时,若该系数变为重要,则sig_num加1。
在解码过程中,若有系数属于Cln通道解码,则n33加1;若n33≥n-n1-n2,则提前结束Cln通道,否则继续执行Cln通道的解码。
在Cln通道中,每列解码完毕时,计算该列所有系数的重要性之和,即该列重要系数的个数,标记为column_significance,若column_significance>0,则将Ref通道该列的单列状态标识ref_column_state[s][i]的值置为1;若column_significance==stripe_length,则将Sig通道和Cln通道该列的单列状态标识sig_column_state[s][i]和cln_column_state[s][i]的值置为0。其中,s、i表示该列为第s条带中的第i列。
在Cln通道中,每个条带解码完毕时,将该条带Sig通道的单列状态标识sig_column_state[s][]和Ref通道的单列状态标识ref_column_state[s][],根据单列状态标识到条带状态标识的转换规则,生成相应的通道的条带状态标识。其中,Sig通道的条带状态标识标记为sig_DMCOLS[s],Ref通道的条带状态标识标记为ref_DMCOLS[s],s表示该条带为第s个条带。
Cln通道解码结束时,设置下一个位平面中Ref通道应处理数据个数n2=sig_num。
其中,每个条带的单列状态标识到条带状态标识的转换规则如下:设某个通道某个条带单列状态标识为column[s][],该条带该通道相应的条带状态标识为DMCOLS[s]。下面以32乘32的码块为例说明该转换规则。
每个条带的状态标识含3种数据。第1种数据标记为“start”,即初始状态,其值等于该条带第1列的状态的取值,0或1,其中0表示该列跳过,1表示该列处理,可用1个比特位表示。根据start的值,即可推断出后续状态的值。例如,若条带中第1列的状态,即条带中第1个连续列的状态,也就是start=0,那么第2个状态则为“1”,第3个状态则为“0”,以此类推。第2种数据标记为“change_num”,表示在该条带中列的状态标识在处理和跳过两种状态之间的切换次数。第3种数据标记为“remain_column_num[change_num]”,表示同一种列的状态标识连续的列数。
下面举例说明条带的单列状态标识到条带状态标识的转换过程:设某个条带某个通道的单列状态标识为:00001011111010000000101111110001。该条带第1个状态即第一列的初始状态为0,即跳过状态,该状态持续列数为4列;第2个状态为1,即处理,该状态持续列数为1列;第3个状态为0,即跳过状态,该状态持续列数为1列;第4个状态为1,即不跳过状态,该状态持续列数为5列;以此类推。依据这样的规则,生成该条带该通道的状态标识为:start=0;change_num=12;remain_column_num[change_num]={4,1,1,5,1,1,7,1,1,6,3,1}。
设某个通道某个条带解码之前,读取该通道该条带的条带状态标识为{0,12,{4,1,1,5,1,1,7,1,1,6,3,1}},该通道依据该条带标识进行列群的跳过或处理,其具体过程如下:
读取条带标识符中的start数据,start=0,说明该条带第1个状态为跳过;读取条带标识符中的change_num数据,change_num=12,说明该条带共有12此状态切换;读取第1个状态持续的列数,为4,第1个状态为跳过,则连续跳过4列;第2个状态为处理,读取第2个状态持续的列数,为1,则处理1列;第3个状态为跳过,读取相应的持续列数,为1,则跳过1列;第4个状态为处理,读取相应的持续列数为5,则连续处理5列;第5个状态为跳过,读取相应的持续列数为1,则跳过1列;以此类推。
需要说明的是,本发明实施例中的JPEG2000图像解码的实现过程,对于JPEG2000图像编码也适用,这里就不再详细叙述。
实施例3:
本发明实施例提供了一种JPEG2000图像编码的方法,参见图3,该方法具体包括:
步骤301:预先设置待编码码块的重要性数组,并初始化为不重要,在每读取出一个重要系数后,将该系数的重要性更新为重要;
步骤302:采用Cln通道编码第一位平面;
第一位平面之后的位平面的编码方法包括:
步骤303:读取前一个位平面生成的Sig通道的条带状态标识,根据Sig通道的条带状态标识进行Sig通道编码,其中,在Sig通道编码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
步骤304:在Sig通道编码每个条带完毕后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
步骤305:在Sig通道编码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据Ref通道的条带状态标识进行Ref通道编码;
步骤306:在Ref通道编码完毕后,读取Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道编码,其中,在Cln通道编码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
步骤307:在Cln通道编码完每个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识。
其中,步骤302,具体包括:
Cln通道编码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为重要系数总数。
步骤303中,根据Sig通道的条带状态标识进行Sig通道编码,具体包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道编码的列;
从Sig通道的状态标识中解析出需要Sig通道编码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的编码;
其中,Sig通道编码某列之前,设置该列在该位平面中Cln通道待编码数据总数为该列的数据总数;
Sig通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道编码的数据总数;
Sig通道编码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待编码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待编码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待编码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道编码的数据总数大于或等于码块数据总数与Ref通道待编码数据总数之差,则提前结束Sig通道的编码,否则继续进行Sig通道的编码。
步骤305中,根据Ref通道的条带状态标识进行Ref通道编码,具体包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道编码的列;
编码从Ref通道的条带状态标识中解析出的需要Ref通道编码的列;
其中,记录在Ref通道中进行编码的数据总数;
若已在Ref通道中编码的数据总数等于Ref通道待编码数据总数,则提前跳出Ref通道的编码,否则继续执行Ref通道的编码。
步骤306中,根据该Cln通道的条带状态标识进行Cln通道编码,具体包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道编码的列;
编码从Cln通道的条带状态标识中解析出的需要Cln通道编码的列;
其中,Cln通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道编码的数据总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道编码的数据总数、Ref通道编码数据总数、Sig通道编码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的编码,否则继续进行Cln通道的编码;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为重要系数总数。
其中,条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
初始状态为被预测条带的第一列的状态标识;
状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
每次状态连续的列数为同一种列的状态标识连续的列数。
通过以上描述可见,本发明实施例具有以下有益效果:
1、通过本发明实施例提供的一种JPEG2000图像解码的方法,能够在Cln通道和Sig通道内根据已经解码得到的系数的重要性预测出当前位平面或后续位平面中3个通道中可跳过的列,在通道中解码时直接跳过这些可跳过的列,减少了扫描次数,通过将单列状态标识转换为条带状态标识,能够将相同状态的连续的列进行连续处理,减少了列或列群的扫描判断次数提高了解码效率。
2、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,通过在Sig通道、Cln通道中根据每列重要系数的个数,对后续Sig通道单列进行预判,能够将完全属于Ref通道的列预判出来,能够避免在Sig通道中对完全属于Ref通道的列进行逐列扫描判断。
3、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,通过在Sig通道中根据需要处理列及其邻域重要性,能够完全跳过在本位平面中完全属于Cln通道的列。
4、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,通过在Sig通道、Cln通道中根据每列重要系数的个数,对后续Ref通道单列进行预判,能够在Ref通道中跳过那些或者完全属于Sig通道或者完全属于Cln通道或者既属于Sig通道又属于Cln通道的列,避免对这些没有数据属于Ref通道处理的列的逐列扫描判断。
5、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,通过在Sig通道、Cln通道中根据每列重要系数的个数或者被访问情况,对后续Cln通道单列进行预判,能够在Cln通道中跳过那些没有数据属于Cln通道处理的列。
6、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,通过单列状态标识到条带状态标识的转换,能够将那些连续跳过的列或者连续执行的列动态地组合起来,对于连续的列或者列群,只需判断一次,即可进行列或列群的连续跳过或者连续执行,极大地减少了列或列群的扫描判断次数。
7、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,利用3个通道处理数据总数的关系,对3个通道都采用了通道提前跳出的方法,对于那种某些通道分布稀疏的情况比如复杂图像较低位平面中Cln通道、简单图像较高位平面中Ref通道和Sig通道能有效减少冗余扫描提高位平面扫描速度。
8、通过本发明实施例提供的一种JPEG2000图像解码和编码的方法,能够极大地提升位平面编码器和位平面解码器的扫描速度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种JPEG2000图像解码的方法,其特征在于,预先设置待解码码块的重要性数组,并初始化为不重要,在每解码出一个重要系数后,将该系数的重要性更新为重要;采用清除通道Cln通道解码第一位平面,第一位平面之后的位平面的解码方法包括:
读取前一个位平面生成的重要性传播通道Sig通道的条带状态标识,根据所述Sig通道的条带状态标识进行Sig通道解码,其中,在Sig通道解码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、幅值细化通道Ref通道的状态标识;
在Sig通道解码完一个条带后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
在Sig通道解码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据所述Ref通道的条带状态标识进行Ref通道解码;
在Ref通道解码完毕后,读取所述Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道解码,其中,在Cln通道解码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
在Cln通道解码完一个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识;
在Cln通道和Sig通道内根据已经解码得到的系数的重要性预测出当前位平面或后续位平面中3个通道中可跳过的列,在通道中解码时直接跳过这些可跳过的列,以减少扫描次数,通过将单列状态标识转换为条带状态标识,能够将相同状态的连续的列进行连续处理,以减少列或列群的扫描判断次数。
2.根据权利要求1所述的方法,其特征在于,所述采用清除通道Cln通道解码第一位平面,包括:
Cln通道解码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待解码数据总数为所述重要系数总数。
3.根据权利要求1所述的方法,其特征在于,
所述根据所述Sig通道的条带状态标识进行Sig通道解码,包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道解码的列;
从Sig通道的状态标识中解析出需要Sig通道解码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的解码;
其中,Sig通道解码某列之前,设置该列在该位平面中Cln通道待解码数据总数为该列的数据总数;
Sig通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道解码的数据总数;
Sig通道解码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待解码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待解码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待解码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道解码的数据总数大于或等于码块数据总数与Ref通道待解码数据总数之差,则提前结束Sig通道的解码,否则继续进行Sig通道的解码。
4.根据权利要求1所述的方法,其特征在于,
所述根据所述Ref通道的条带状态标识进行Ref通道解码,包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道解码的列;
解码从Ref通道的条带状态标识中解析出的需要Ref通道解码的列;
其中,记录在Ref通道中进行解码的数据总数;
若已在Ref通道中解码的数据总数等于Ref通道待解码数据总数,则提前跳出Ref通道的解码,否则继续执行Ref通道的解码。
5.根据权利要求1所述的方法,其特征在于,
所述根据该Cln通道的条带状态标识进行Cln通道解码,包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道解码的列;
解码从Cln通道的条带状态标识中解析出的需要Cln通道解码的列;
其中,Cln通道每解码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道解码的数据总数;
Cln通道解码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道解码的数据总数、Ref通道解码数据总数、Sig通道解码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的解码,否则继续进行Cln通道的解码;
Cln通道解码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道解码完毕时,设置下一位平面中Ref通道待解码数据总数为重要系数总数。
6.根据权利要求1所述的方法,其特征在于,所述条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
所述初始状态为被预测条带的第一列的状态标识;
所述状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
所述每次状态连续的列数为同一种列的状态标识连续的列数。
7.一种JPEG2000图像编码的方法,其特征在于,
预先设置待编码码块的重要性数组,并初始化为不重要,在每读取出一个重要系数后,将该系数的重要性更新为重要;采用清除通道Cln通道编码第一位平面,第一位平面之后的位平面的编码方法包括:
读取前一个位平面生成的重要性传播通道Sig通道的条带状态标识,根据所述Sig通道的条带状态标识进行Sig通道编码,其中,在Sig通道编码完一列后,根据该列系数的重要性及该列系数的被访问情况计算该列的Cln通道的状态标识,并根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、幅值细化通道Ref通道的状态标识和Cln通道的状态标识;
在Sig通道编码完一个条带后,将每个条带中Cln通道单列的状态标识转换为对应条带的Cln通道的条带状态标识;
在Sig通道编码完毕后,读取上一个位平面生成的Ref通道的条带状态标识,根据所述Ref通道的条带状态标识进行Ref通道编码;
在Ref通道编码完毕后,读取所述Cln通道的条带状态标识,根据该Cln通道的条带状态标识进行Cln通道编码,其中,在Cln通道编码完一列后,根据该列系数的重要性计算该列的下一位平面的对应列的Sig通道的状态标识、Ref通道的状态标识和Cln通道的状态标识;
在Cln通道编码完一个条带后,根据下一位平面的每个条带中每一列的Sig通道的状态标识生成下一个位平面的对应条带的Sig通道的条带状态标识,根据下一位平面的每个条带中每一列的Ref通道的状态标识生成下一个位平面的对应条带的Ref通道的条带状态标识;
在Cln通道和Sig通道内根据已经编码得到的系数的重要性预测出当前位平面或后续位平面中3个通道中可跳过的列,在通道中解码时直接跳过这些可跳过的列,以减少扫描次数,通过将单列状态标识转换为条带状态标识,能够将相同状态的连续的列进行连续处理,以减少列或列群的扫描判断次数。
8.根据权利要求7所述的方法,其特征在于,所述采用清除通道Cln通道编码第一位平面,包括:
Cln通道编码每个数据,若出现重要系数,更新该系数的重要性,更新码块重要系数总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为Sig通道该条带的状态标识,将该条带Ref通道单列的状态标识转换为Ref通道该条带的状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为所述重要系数总数。
9.根据权利要求7所述的方法,其特征在于,
所述根据所述Sig通道的条带状态标识进行Sig通道编码,包括:
跳过从Sig通道的条带状态标识中解析出的不需要Sig通道编码的列;
从Sig通道的状态标识中解析出需要Sig通道编码的列,Sig通道从重要性数组中读取该列及其邻域系数的重要性,若该列及其邻域系数都为不重要,则跳过该列,否则执行该列的编码;
其中,Sig通道编码某列之前,设置该列在该位平面中Cln通道待编码数据总数为该列的数据总数;
Sig通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Sig通道编码的数据总数;
Sig通道编码每列时,若一个系数在上一位平面已经变为重要,则将该位平面中Cln通道待编码数据总数减一,若一个数据属于Sig通道处理,则将该位平面中Cln通道待编码数据总数减一,记录该列已变为重要系数的总数;
若一列重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列该位平面中Cln通道待编码数据总数等于零,则将Cln通道该列的状态标识设置为跳过;
若已在Sig通道编码的数据总数大于或等于码块数据总数与Ref通道待编码数据总数之差,则提前结束Sig通道的编码,否则继续进行Sig通道的编码。
10.根据权利要求7所述的方法,其特征在于,
所述根据所述Ref通道的条带状态标识进行Ref通道编码,包括:
跳过从Ref通道的条带状态标识中解析出的不需要Ref通道编码的列;
编码从Ref通道的条带状态标识中解析出的需要Ref通道编码的列;
其中,记录在Ref通道中进行编码的数据总数;
若已在Ref通道中编码的数据总数等于Ref通道待编码数据总数,则提前跳出Ref通道的编码,否则继续执行Ref通道的编码。
11.根据权利要求7所述的方法,其特征在于,
所述根据该Cln通道的条带状态标识进行Cln通道编码,包括:
跳过从Cln通道的条带状态标识中解析出的不需要Cln通道编码的列;
编码从Cln通道的条带状态标识中解析出的需要Cln通道编码的列;
其中,Cln通道每编码一个数据,若出现重要系数,更新相应系数的重要性,更新码块重要系数总数;
记录在Cln通道编码的数据总数;
Cln通道编码每列时,记录该列已变为重要系数的总数;
若一列的重要系数总数大于零,则将Ref通道该列的状态标识设置为处理;
若一列的重要系数总数等于该列系数总数,则将Sig通道该列的状态标识设置为跳过;
若一列的重要系数总数等于该列系数总数,则将Cln通道该列的状态标识设置为跳过;
若已在Cln通道编码的数据总数、Ref通道编码数据总数、Sig通道编码数据总数之和大于或等于码块数据总数,则提前结束Cln通道的编码,否则继续进行Cln通道的编码;
Cln通道编码每个条带完毕时,将该条带Sig通道单列的状态标识转换为该条带的Sig通道的条带状态标识,将该条带Ref通道单列的状态标识转换为该条带的Ref通道的条带状态标识;
Cln通道编码完毕时,设置下一位平面中Ref通道待编码数据总数为重要系数总数。
12.根据权利要求7所述的方法,其特征在于,所述条带状态标识包括:初始状态、状态切换次数、每次状态连续的列数;
所述初始状态为被预测条带的第一列的状态标识;
所述状态切换次数为列的状态标识在处理和跳过两种状态之间的切换次数;
所述每次状态连续的列数为同一种列的状态标识连续的列数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310662575.5A CN103686193B (zh) | 2013-12-09 | 2013-12-09 | 一种jpeg2000图像解码和编码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310662575.5A CN103686193B (zh) | 2013-12-09 | 2013-12-09 | 一种jpeg2000图像解码和编码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103686193A CN103686193A (zh) | 2014-03-26 |
CN103686193B true CN103686193B (zh) | 2016-09-28 |
Family
ID=50322277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310662575.5A Active CN103686193B (zh) | 2013-12-09 | 2013-12-09 | 一种jpeg2000图像解码和编码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103686193B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351559B (zh) * | 2018-04-04 | 2022-01-28 | 阿里健康信息技术有限公司 | 一种图像编码方法及装置 |
WO2020132853A1 (en) | 2018-12-25 | 2020-07-02 | Zhejiang Dahua Technology Co., Ltd. | Systems and methods for image processing |
WO2020252730A1 (zh) * | 2019-06-20 | 2020-12-24 | 深圳市大疆创新科技有限公司 | 位平面解码的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488225A (zh) * | 2009-03-05 | 2009-07-22 | 山东大学 | 一种位平面编码器的vlsi系统架构 |
CN102223534A (zh) * | 2011-06-03 | 2011-10-19 | 东南大学 | 用于图像压缩的全并行位平面编码方法 |
CN103118259A (zh) * | 2013-02-22 | 2013-05-22 | 南京信息工程大学 | 一种jpeg2000图像编码方法 |
CN103152568A (zh) * | 2013-02-27 | 2013-06-12 | 西安理工大学 | 一种实时截断码流的jpeg2000编码方法及其实施系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987890B2 (en) * | 2002-03-27 | 2006-01-17 | Eastman Kodak Company | Producing and encoding rate-distortion information allowing optimal transcoding of compressed digital image |
-
2013
- 2013-12-09 CN CN201310662575.5A patent/CN103686193B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488225A (zh) * | 2009-03-05 | 2009-07-22 | 山东大学 | 一种位平面编码器的vlsi系统架构 |
CN102223534A (zh) * | 2011-06-03 | 2011-10-19 | 东南大学 | 用于图像压缩的全并行位平面编码方法 |
CN103118259A (zh) * | 2013-02-22 | 2013-05-22 | 南京信息工程大学 | 一种jpeg2000图像编码方法 |
CN103152568A (zh) * | 2013-02-27 | 2013-06-12 | 西安理工大学 | 一种实时截断码流的jpeg2000编码方法及其实施系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103686193A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103227917B (zh) | 解码方法和装置 | |
CN103686193B (zh) | 一种jpeg2000图像解码和编码的方法 | |
CN1022782C (zh) | 分节编码数字信号的处理方法,编码器和译码器 | |
US20160344405A1 (en) | Coding Method, Decoding Method, Coder, and Decoder | |
DE102010046891A1 (de) | Speichereffizientes Raytracing mit hierarchischer Netzquantisierung | |
JP2005129217A5 (zh) | ||
CN107820098A (zh) | 对视频编码的方法和设备以及对视频解码的方法和设备 | |
US8131094B2 (en) | Method and apparatus for encoding/decoding 3D mesh information | |
CN105120276B (zh) | 自适应Motion JPEG编码方法和系统 | |
CN101958150A (zh) | 存储器装置及其操作方法 | |
CN116016606B (zh) | 一种基于智慧云的污水处理运维数据高效管理系统 | |
CN107016591B (zh) | 业务状态管理方法及系统 | |
CN112287642B (zh) | 树形结构自增数据节点id及其路径链二进制编码方法 | |
CN103297768B (zh) | 用于视频和图像压缩的并行金字塔熵编码 | |
CN106651972A (zh) | 一种二值图像编码、解码方法及装置 | |
US7624326B2 (en) | Encoding device and method, decoding device and method, program, and recording medium | |
CN117495469A (zh) | 基于区块链的电动自行车智能计时方法及系统 | |
EP1869642A1 (en) | Method and apparatus for encoding/decoding 3d mesh information | |
CN111263163A (zh) | 一种基于手机平台的深度视频压缩框架的实现方法 | |
DE2527441A1 (de) | Verfahren und vorrichtung zur kennzeichnung von datenfeldern | |
CN101616325B (zh) | 一种视频编码中自适应插值滤波计算的方法 | |
CN102932001B (zh) | 运动捕获数据压缩、解压缩方法 | |
CN114416751A (zh) | 一种基于倍增位图的rbac优化算法 | |
CN101742329B (zh) | 一种图像编码方法及装置 | |
CN102137262B (zh) | 一种不规则划分视频编码模式选择方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240115 Address after: 100086 Beijing city Haidian District Shuangyushu Academy Road No. 44 Patentee after: China Film Science and Technology Research Institute (Film Technology Quality Inspection Institute of the Central Propaganda Department) Address before: Room 604, No. 44 Science Academy South Road, Haidian District, Beijing, 100086 Patentee before: CHINA FILM SCIENCE AND TECHNOLOGY INST. |