CN116389759B - 图像编码方法、装置、电子设备、芯片及存储介质 - Google Patents
图像编码方法、装置、电子设备、芯片及存储介质 Download PDFInfo
- Publication number
- CN116389759B CN116389759B CN202210593900.6A CN202210593900A CN116389759B CN 116389759 B CN116389759 B CN 116389759B CN 202210593900 A CN202210593900 A CN 202210593900A CN 116389759 B CN116389759 B CN 116389759B
- Authority
- CN
- China
- Prior art keywords
- node
- value
- importance
- target
- current node
- 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 81
- 238000013139 quantization Methods 0.000 claims abstract description 73
- 238000006243 chemical reaction Methods 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 25
- 230000003068 static effect Effects 0.000 claims description 167
- 238000001514 detection method Methods 0.000 claims description 81
- 230000009466 transformation Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 claims 1
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000007906 compression Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000006835 compression Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 239000003550 marker Substances 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000006837 decompression Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 125000003275 alpha amino acid group Chemical group 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Abstract
本公开是关于一种图像编码方法、装置、电子设备、芯片及存储介质。该方法包括:获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。这样,本实施例可以对同一行预设数量个像素构成的像素条块进行处理,可以灵活地目标图像中随机位置像素内容进行读写,最小支持到单行的数个像素,处理的颗粒度更小,节省硬件计算开销和行缓存。
Description
技术领域
本公开涉及图像处理技术领域,尤其涉及一种图像编码方法、装置、电子设备、芯片及存储介质。
背景技术
目前,现有图像压缩算法通常会使用图像中的任一块区域内的像素进行压缩,由于上述区域块内像素的行数多,压缩复杂度偏高,难以高效率应用于局部像素的随机存取压缩解压缩的场景。
发明内容
本公开提供一种图像编码方法、装置、电子设备、芯片及存储介质,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种图像编码方法,包括:
获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;
对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;
对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;
采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;
当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。
可选地,对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据,包括:
获取预设的小波变换模型;
采用所述小波变换模型对所述像素数据进行小波变换得到第一数量个低频系数和第二数量个高频系数,将所述第一数量个低频系数和第二数量个高频系数作为所述转换数据;所述第一数量和所述第二数量的和值等于所述预设数量。
可选地,采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码,包括:
构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射;
初始化最高位平面k、第一静态表和第三静态表;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合;
针对所述二叉树中的每个节点,分别执行以下步骤;
更新第二静态表;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息;
基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码;
基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断;
基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表。
可选地,更新第二静态表,包括:
采用自下而上的标记方式遍历指定节点,所述指定节点是指索引值大于或等于4的所有节点:
当当前节点的量化值大于或等于2n时,将所述当前节点的父节点标记为D集合重要且祖先节点标记为D集合重要和L集合重要,并且跳过所述当前节点的兄弟节点;
所述祖先节点是指所述当前节点的祖父节点、所述祖父节点的父节点、所述祖父节点的祖父节点,依此类推,直至所述二叉树的根节点;
所述当前节点的兄弟节点是指与当前节点具有相同父亲的节点;
所述k值是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;
所述D集合是指当前节点的所有子节点构成的集合;
所述L集合是指当前节点的所有非直接子节点构成的集合。
可选地,基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码,包括:
从所述第一静态表获取当前节点的父节点的集合检测值;
当所述当前节点的父节点的集合检测值为1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否大于或等于2n+1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
当所述目标节点的量化值大于或等于2n+1时,将所述目标节点在当前位平面的二进制数值写入码流;
当所述目标节点的量化值小于2n+1或者所述目标节点的父节点的集合重要性值为0时,跳过所述当前节点及其兄弟节点。
可选地,基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断,包括:
从所述第一静态表中获取当前节点的父节点的集合重要性值;
当所述当前节点的父节点的集合重要性值是1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否小于2n+1;其中n值是指目标节点所在的位平面;其中位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
当所述目标节点的量化值小于2n+1时,判断所述目标节点的量化值是否大于或等于2n;
当所述目标节点的量化值大于或等于2n时,将所述目标节点的节点重要性值1写入码流并将符号位写入码流;
当所述目标节点的量化值小于2n时,将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点;
当所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点。
可选地,基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表,包括:
初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零;
判断当前节点是否属于已分裂过的D集合或L集合,当所述当前节点属于已分裂过的D集合时,跳过所述当前节点及其兄弟节点至下一节点;当所述当前节点属于已分裂过的L集合时,跳过所述当前节点及其同祖父的节点至下一节点;
当所述当前节点不属于已分裂过的D集合和L集合时,判断所述当前节点是否满足预设条件,所述预设条件是指所述当前节点的索引值大于或等于8、所述当前节点的父节点的兄弟节点的集合分裂值为0和所述当前节点的索引值为4的倍数;
当所述当前节点满足所述预设条件时,从所述第二静态表中读取所述当前节点的祖父节点的L集合重要性值写入码流;当所述当前节点的祖父节点的L集合重要性值为1时,对所述当前节点的父节点及其兄弟节点进行D集合分裂,并跳过所述当前节点及其同祖父的节点至下一节点;在所述当前节点的祖父节点的L集合重要性值为0时,对所述当前节点的祖父节点的集合分裂值置1,并跳过所述当前节点及其同祖父的节点至下一节点;
当所述当前节点不满足所述预设条件时,对所述当前节点的父节点进行D集合分裂,并跳过所述当前节点及其兄弟节点至下一节点。
可选地,对所述当前节点的父节点及其兄弟节点进行D集合分裂,包括:
针对所述当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取所述目标节点的D集合重要性值并写入码流;当所述目标节点的D集合重要性值为0时,更新所述第三静态表中所述目标节点的两个直接子节点对应的集合分裂值为1;当所述目标节点的D集合重要性值为1时,判断所述目标节点的两个直接子节点的节点重要性并将所述节点重要性值写入码流;
当所述直接子节点的节点重要性为1时,将所述直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。
可选地,所述方法还包括:
当所述候选编码的码长大于或者等于所述设定码长时,调整量化步长,并继续执行对所述转换数据进行量化编码处理的步骤。
根据本公开实施例的第二方面,提供一种图像解码方法,包括:
对获取的码流进行预设的多级树集合分裂算法解码,获得量化数据;
对所述量化数据进行反向量化编码处理,获得转换数据;
对所述转换数据进行反向变换处理得到恢复的像素值,得到所述码流对应的重建图像。
根据本公开实施例的第三方面,提供一种图像编码装置,包括:
像素数据获取模块,用于获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;
转换数据获取模块,用于对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;
量化数据获取模块,用于对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;
候选编码获取模块,用于采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;
目标编码获取模块,用于在所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。
可选地,所述转换数据获取模块包括:
小波模型获取子模块,用于获取预设的小波变换模型;
转换数据获取子模块,用于采用所述小波变换模型对所述像素数据进行小波变换得到第一数量个低频系数和第二数量个高频系数,将所述第一数量个低频系数和第二数量个高频系数作为所述转换数据;所述第一数量和所述第二数量的和值等于所述预设数量。
可选地,所述候选编码获取模块包括:
二叉树构建子模块,用于构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射;
初始化子模块,用于初始化最高位平面k、第一静态表和第三静态表;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合;
候选编码获取子模块,用于针对所述二叉树中的每个节点,分别执行以下步骤,包括:
第二表更新单元,用于更新第二静态表;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息;
位平面编码单元,用于基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码;
重要性判断单元,用于基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断;
集合分裂判断单元,用于基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表。
可选地,所述第二表更新单元包括:
指定节点遍历子单元,用于采用自下而上的标记方式遍历指定节点,所述指定节点是指索引值大于或等于4的所有节点:
集合标记子单元,用于当当前节点的量化值大于或等于2n时,将所述当前节点的父节点标记为D集合重要且祖先节点标记为D集合重要和L集合重要,并且跳过所述当前节点的兄弟节点;
所述祖先节点是指所述当前节点的祖父节点、所述祖父节点的父节点、所述祖父节点的祖父节点,依此类推,直至所述二叉树的根节点;
所述当前节点的兄弟节点是指与当前节点具有相同父亲的节点;
所述k值是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;
所述D集合是指当前节点的所有子节点构成的集合;
所述L集合是指当前节点的所有非直接子节点构成的集合。
可选地,所述位平面编码单元包括:
检测值获取子单元,用于从所述第一静态表获取当前节点的父节点的集合检测值;
量化值判断子单元,用于当所述当前节点的父节点的集合检测值为1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否大于或等于2n +1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
二进制写入子单元,用于当所述目标节点的量化值大于或等于2n+1时,将所述目标节点在当前位平面的二进制数值写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n+1或者所述目标节点的父节点的集合重要性值为0时,跳过所述当前节点及其兄弟节点。
可选地,所述重要性判断单元包括:
重要性值获取子单元,用于从所述第一静态表中获取当前节点的父节点的集合重要性值;
量化值判断子单元,用于当所述当前节点的父节点的集合重要性值是1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否小于2n+1;其中n值是指目标节点所在的位平面;其中位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
量化值判断子单元,还用于当所述目标节点的量化值小于2n+1时,判断所述目标节点的量化值是否大于或等于2n;
重要性值写入子单元,用于当所述目标节点的量化值大于或等于2n时,将所述目标节点的节点重要性值1写入码流并将符号位写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n时将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点,或者所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点。
可选地,所述集合分裂判断单元包括:
分裂值初始化子单元,用于初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零;
节点跳转子单元,用于判断当前节点是否属于已分裂过的D集合或L集合,当所述当前节点属于已分裂过的D集合时,跳过所述当前节点及其兄弟节点至下一节点;当所述当前节点属于已分裂过的L集合时,跳过所述当前节点及其同祖父的节点至下一节点;
预设条件判断子单元,用于当所述当前节点不属于已分裂过的D集合和L集合时,判断所述当前节点是否满足预设条件,所述预设条件是指所述当前节点的索引值大于或等于8、所述当前节点的父节点的兄弟节点的集合分裂值为0和所述当前节点的索引值为4的倍数;
重要性值写入子单元,用于当所述当前节点满足所述预设条件时,从所述第二静态表中读取所述当前节点的祖父节点的L集合重要性值写入码流;当所述当前节点的祖父节点的L集合重要性值为1时,对所述当前节点的父节点及其兄弟节点进行D集合分裂,并跳过所述当前节点及其同祖父的节点至下一节点;在所述当前节点的祖父节点的L集合重要性值为0时,对所述当前节点的祖父节点的集合分裂值置1,并跳过所述当前节点及其同祖父的节点至下一节点;
集合分裂子单元,用于当所述当前节点不满足所述预设条件时,对所述当前节点的父节点进行D集合分裂,并跳过所述当前节点及其兄弟节点至下一节点。
可选地,所述重要性值写入子单元,还用于针对所述当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取所述目标节点的D集合重要性值并写入码流;当所述目标节点的D集合重要性值为0时,更新所述第三静态表中所述目标节点的两个直接子节点对应的集合分裂值为1;当所述目标节点的D集合重要性值为1时,判断所述目标节点的两个直接子节点的节点重要性并将所述节点重要性值写入码流;
符号写入子单元,用于当所述直接子节点的节点重要性为1时,将所述直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。
可选地,所述目标编码获取模块还用于在所述候选编码的码长大于或者等于所述设定码长时触发所述量化数据获取模块,以使所述量化数据获取模块调整量化步长后继续对所述转换数据进行量化编码处理。根据本公开实施例的第四方面,提供一种图像解码装置,包括:
量化数据获取模块,用于对获取的码流进行预设的多级树集合分裂算法解码,获得量化数据;
转换数据获取模块,用于对所述量化数据进行反向量化编码处理,获得转换数据;
重建图像获取模块,用于对所述转换数据进行反向变换处理得到恢复的像素值,得到所述码流对应的重建图像。
根据本公开实施例的第五方面,提供一种电子设备,包括:
存储器与处理器;
所述存储器用于存储所述处理器可执行的计算机程序;
所述处理器用于执行所述存储器中的计算机程序,以实现如上述的方法。
根据本公开实施例的第六方面,提供一种非暂态计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如上述的方法。
根据本公开实施例的第七方面,提供一种芯片,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1~10任一项所述的图像编码方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开实施例提供的方案可以获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。这样,本实施例可以对同一行预设数量个像素构成的像素条块进行处理,可以灵活地对目标图像中随机位置像素内容进行读写,最小支持到单行的数个像素,处理的颗粒度更小,节省硬件计算开销和行缓存(line buffer)。本实施例中采用预设的多级树集合分裂算法进行压缩编码,编解码复杂度比较低,可以采用硬件实现,提升编解码速度,并且解码端在一些极端情况下接收到不完整码流时也可以正常解码恢复图像内容。另外,本实施例中通过判断候选编码的码长与设定码长,可以平衡压缩率和图像画质。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种图像编码方法的框图。
图2是根据一示例性实施例示出的一种图像编码方法的流程图。
图3是根据一示例性实施例示出的一种获取目标图像的示意图。
图4是根据一示例性实施例示出的一种对像素数据进行多次小波变换的流程图。
图5是根据一示例性实施例示出的一种在不同变换过程中获得的小波系数的示意图。
图6是根据一示例性实施例示出的一种量化转换数据的示意图。
图7是根据一示例性实施例示出的一种根据量化值构建的二叉树的示意图。
图8是根据一示例性实施例示出的一种获取候选编码的流程图。
图9是根据一示例性实施例示出的一种获取各个节点的集合重要性值的示意图。
图10是根据一示例性实施例示出的一种位平面编码的流程图。
图11是根据一示例性实施例示出的一种对未进行重要性检测的节点进行重要性判断的流程图。
图12是根据一示例性实施例示出的一种更新第三静态表的示意图。
图13是根据一示例性实施例示出的一种标记没有分裂的节点的流程图。
图14是根据一示例性实施例示出的一种D集合分裂的流程图。
图15是根据一示例性实施例示出的一种目标编码结构的示意图。
图16是根据一示例性实施例示出的一种图像解码方法的框图。
图17是根据一示例性实施例示出的一种图像解码方法的流程图。
图18是根据一示例性实施例示出的一种图像编码装置的框图。
图19是根据一示例性实施例示出的一种图像解码装置的框图。
图20是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。需要说明的是,在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
为解决上述技术问题,本公开实施例提供了一种图像编码方法,图1是根据一示例性实施例示出的一种图像编码方法的框图,图2是根据一示例性实施例示出的一种图像编码方法的流程图。参见图1和图2,一种图像编码方法,包括步骤21~步骤25。
在步骤21中,获取目标图像中同一行预设数量个像素所构成像素条块的像素数据。
本实施例中,电子设备可以获取目标图像,如图3中的图像31所示。电子设备可以响应于用户的选择操作获取目标图像中的像素区域32。然后,根据上述像素区域32的位置确定覆盖上述像素区域32的条块区域33。该条块区域33内包括多个条块,条块的大小如图3中左下角所示的1*32像素的条块。也就是说,电子设备可以按照上述条块区域33的各个像素条块的顺序依次对各个像素条块的像素数据进行编码,从而在后续解码过程中还原出上述像素区域32。可理解的是,本实施例中仅示例了电子设备可以处理的最小颗粒度的像素条块,技术人员可以结合具体的场景调整上述条块区域33的大小,如1*64、1*128等,相应地调整后各步骤的实施方法也需要对应调整,比如小波变换层级增多等,调整后的方案落入本公开的保护范围。
这样,本实施例可以对同一行预设数量个像素构成的像素条块进行处理,可以灵活地对目标图像中随机位置像素内容进行压缩编码处理,最小支持到单行的数个像素,处理的颗粒度更小,节省硬件计算开销和行缓存(line buffer)。以行缓存为例,电子设备内可以仅设置一个1*32像素的行缓存,不同条块通过复用一个单行缓存即可实现二维图像处理,无需设置二维缓存,可以降低硬件成本。
在步骤22中,对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据。
本实施例中,电子设备可以对像素条块的像素数据进行变换处理,获得像素数据对应的转换数据。
以变换处理采用小波变换为例,电子设备内可以存储预设的小波变换模型,如5/3Le Gall离散小波变换模型。电子设备可以采用上述小波变换模型对上述像素条块的像素数据进行小波变换,得到第一数量个低频系数和第二数量个高频系数,上述第一数量个低频系数和第二数量个高频系数作为像素数据对应的转换数据,并且第一数量和第二数量的和值等于预设数量即像素条块中像素的数量。
本实施例中,电子设备可以将像素数据分成奇数序列(2m+1)和偶序列(2m),再根据下式计算得到低频系数l[m]和高频系数h[m],计算方式如式(1)所示:
(1)
式(1)中,表示像素数据,/>表示向下取整。
单次小波反变换,即是式(1)的反变换过程,利用高频系数h[m]和低频系数l[m]计算出像素数据对应的偶数序列x(2m),再利用偶数序列x(2m)计算得到奇数序列x(2m+1),计算方式如式(2)所示:
(2)
可理解的是,对于边缘的像素数据,电子设备可以进行扩展边界,即变换产对像素数据进行边缘延拓,延拓方式采用对称延拓。
边缘延拓之前,像素数据为:
。
边缘延拓之后,像素数据为:
。
本实施例中,在像素的左侧延拓2个元素,右侧延拓一个元素即可以满足一维5/3Le Gall离散小波变换模型的处理需求。
本实施例中,电子设备可以采用上述单次小波变换的方式,得到高频系数和低频系数的数量各是原始数据数量的一半。对于1*32个像素数据,经过一次小波变换后会得到1*16个高频系数和1*16个低频系数。低频系数的数值通常和原始数据基本处于同一数量级,对变换得到的低频系数继续进行小波变换,通过五次小波变换后最终的低频系数只有一个,从而可以去除数据的冗余信息。多次小波变换的过程如图4所示。可理解的是,图4中32、16、8、4、2和1表示小波系数的数量。参见图4,在第一次小波变换(level1)时,32个像素数据被转换成16个高频系数和16个低频系数;在第二次小波变换(level2)时,将16个低频系数转换成8个高频系数和8个低频系数;在第三次小波变换时,将8个低频系数转换成4个高频系数和4个低频系数;在第四次小波变换时,将4个低频系数转换成2个高频系数和2个低频系数;在第五次小波变换时,将2个低频系数转换成1个高频系数和1个低频系数,最终得到的小波系数序列为图5所示。
参见图5,左侧的level1~level5表示小波变换的过程,右侧的L5和H5表示第5次小波变换时得到的低频系数和高频系数,H1~H4表示第1~4次小波变换时得到的高频系数。图5中0~31的数字表示各个小波系数在小波系数序列中的索引值,对于各个小波系数的系数值则没有体现在图5中,即索引值0~31对应的低频系数和高频系数即是像素数据对应的转换数据。
在步骤23中,对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据。
本实施例中,电子设备可以对转换数据中的高频系数进行量化编码处理,低频系数不作量化编码处理。
在一示例中,电子设备以NEAR为容差进行均匀量化,映射关系如图6所示。参见图6,Δ=2NEAR+1,量化公式如式(3)所示:
(3)
式中,表示量化值,/>表示转换数据,NEAR表示容差。
本实施例中NEAR决定了量化值为0的值的范围,通过设置量化步长Δ=2NEAR+1,使得量化值的值域范围呈原点对称的等间隔分布。
本宿主中,反量化编码是量化编码的逆过程,反量化编码公式如式(4)所示:
(4)
式(4)中,为反量化值即反量化后得到转换数据。
表1 量化误差表
参见表1,反量化编码后产生的量化误差的绝对值不会超过NEAR,反量化后的恢复值会在量化前真实值的[-NEAR, NEAR]范围内浮动,即量化误差由NEAR控制。
在步骤24中,对转换数据的第一个低频系数,直接将其对应源数据的二进制值写入码流,对转换数据的31个高频系数的量化结果,采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码。
本实施例中,电子设备内存储预设的多级树集合分裂算法。电子设备可以基于图5所示的小波系数构建量化数据对应的二叉树,二叉树的效果如图7所示。参见图7,二叉树的节点包括索引值和量化值,并且节点的索引值与转换数据在转换过程中的次序一一映射。可理解的是,图7中仅示出了各节点的索引值而未示出量化值。
这样,本示例中利用二叉树结构自身的特性,小波系数对应节点的索引值存在规律性,便于搜索与寻址。例如,当x[i]为非叶子节点时,x[i]的直接子节点的索引值一定为2i和2i+1。又如,当x[i]的非直接子节点不为空时,第一个非直接子节点的索引值一定是4i。其中,i表示节点的索引值,该i取值范围为0~31,由于索引值i为0时对应的是低频系数,而低频系数不参与量化编码过程,故后续实施例出现的i的取值范围为1~31。
本实施例中,上述多级树集合分裂算法利用了小波变换系数构成的树结构,结合位平面生成依据信息重要性排序的码流。
在一示例中,本示例的多级树集合分裂算法需要借助3个静态表,即第一静态表signi_map、第二静态表DL_marker和第三静态表split_stop。本示例中多级树集合分裂算法仅借助静态表而无需涉及到有序链表,有利于采用硬件实现。
上述3个静态表的描述如表2所示。
表2 静态表描述内容
上述三个静态表中涉及当前节点x[i]的D集合、L集合和O集合的定义如表3所示。
表3 D集合、L集合和O集合的定义
参见图9,以节点2为例,节点2的O集合包括节点4和节点5;节点2的D集合包括节点4、节点5、节点8、节点9、节点10、节点11、节点16、节点17、节点18、节点19、节点20、节点21、节点22和节点23;节点2的L集合包括节点8、节点9、节点10、节点11、节点16、节点17、节点18、节点19、节点20、节点21、节点22和节点23。
上述三个静态表中涉及重要性检测包括集合重要性检测和节点重要性检测。其中,
节点重要性检测是指根据当前阈值n(即当前位平面n)来判断当前节点的量化值的绝对值是否不小于2n;如果是,则确定该节点为重要节点(significant point),此时节点重要性值为1;如果否,则确定该节点为不重要节点,此时节点重要性值为0。节点重要性检测如式(5)所示:
(5)
集合重要性检测是指根据当前阈值n来判断当前集合中所有节点的最大量化值的绝对值是否不小于2n;如果是,则确定该集合为重要集合(significant set),此时集合重要性值为1;如果否,则确定该集合为不重要集合,此时集合重要性值为0。集合重要性检测如式(6)所示:
(6)
本实施例中,位平面编码的主要构思在于,将已经按照重要性排序的待编码的量化值转换成二进制数据表示,各个量化值的二进制数据同属于2n级别的二进制数值组成一个位平面。并且二叉树中所有量化值中最大值的最高位1对应的位次为最高位平面k,公式如式(7)所示:
(7)
式(7)中,k表示最高位平面,max()表示量化值(绝对值)的最大值,i的取值范围为1~31。
在一示例中,位平面的获取方式如表4所示。
表4 小波系数量化值与位平面
参见表4,第1行是按照小波综合重要性(即小波层级重要性和集合分裂性综合)排序的各个(小波系数)量化值,第2行是各个量化值的符号位(正负号分别采用0或1表示),第3~8行是指量化值对应二进制数据的最高位至最低位。其中第1列是二叉树中所有节点的量化值中最大值为57,其二进制数据为111001;该二进制数据111001中最高位1的位次为第5位,则最高位平面n=k=5。某个节点的量化值为16,其二进制数据为10000,最高位1的位次为4,则位平面为n=4。依次类推,可以获取到其他位平面n,即n的取值范围为0~k。
本实施例中,电子设备对各个量化值编码时,从位平面n=k向位平面n=0开始扫描,当检测到当前位平面n是该量化值的最高位平面时进行重要性标记并判断该量化值的符号位,符号位为正时将0写入码流,否则符号位为负时将1写入码流。
需要注意的是,因为各量化值对应最高位平面的二进制数一定是1,为了缩短码流长度,各量化值的最高位平面的二进制数值1不写入码流,只写符号位。当扫描到某个位平面的某个量化值,如果检测到该量化值已经有重要性标记,那么说明当前位平面不是该量化值的最高位平面,就将该量化值在当前位平面的二进制数值写入码流。
继续参见表4,当前位平面为5时,此时量化值57和38对应二进制数据的最高位为1,不写入码流,写入符号位1和0;
当前位平面为4时,此时量化值25、16和17的最高位为1,不写入码流,将量化值57和38在当前位平面的二进制数值1和0写入码流,并将量化值25、16和17的符号位0、0和1写入码流;
当前位平面为3时,此时量化值14、12、9和8的最高位为1,不写入码流,将量化值57、38、25、16和17在当前位平面的二进制数值1、0、1、0和0写入码流,并将量化值14、12、9和8的符号位0、1、1和0写入码流。
当前位平面为2时,此时量化值7、6和5的最高位为1,不写入码流,将量化值57、38、25、16、17、14、12、9和8在当前位平面的二进制数值0、1、0、0、0、1、1、0和0写入码流,并将量化值7、6和5的符号位1、1和0写入码流。
当前位平面为1时,此时量化值3和2的最高位为1,不写入码流,将量化值57、38、25、16、17、14、12、9、8、7、6和5在当前位平面的二进制数值0、1、0、0、0、1、0、0、0、1、1和0写入码流,并将量化值3和2的符号位1和0写入码流。
当前位平面为0时,此时所有量化值均不是最高位,将量化值57、38、25、16、17、14、12、9、8、7、6、5、3和2在当前位平面的二进制数值1、0、1、0、1、0、0、1、0、1、0、1、1和0写入码流,无符号位写入码流。
基于上述分析内容,电子设备采用预设的多级树集合分裂算法对量化数据进行压缩码获得候选编码,参见图8,包括步骤81~步骤86。
在步骤81中,电子设备可以构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射。步骤81的内容可以参见图7中构建二叉树的内容,在此不再赘述。
在步骤82中,电子设备可以初始化最高位平面k、第一静态表signi_map和第三静态表split_stop;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次n,所述位次n的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合。
本步骤中,初始化最高位平面k可以参见式(7),在此不再赘述。
本步骤中,第一静态表signi_map是在编码过程中更新的。考虑到低频系数不参与位平面编码,因此先将signi_map[0]初始化为1;根节点的D集合包含中所有的节点,因此默认根节点的直系子节点是进行了集合重要性检测的且其集合重要,signi_map[1]初始化为1。
本步骤中,第三静态表split_stop在不同位平面扫描时都要全部置零,清空上一个位平面的集合分裂值。
针对所述位平面从高到低由k到0,分别执行以下步骤83~步骤86;
在步骤83中,电子设备可以更新第二静态表DL_marker;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息。
本步骤中,第二静态表DL_marker在不同位平面编码之前需要预先计算并标记各个节点的集合重要性,避免编码过程中的重复计算。本步骤中,采用自下而上的标记方式遍历指定节点,上述指定节点是指从索引值大于或等于4的所有节点,即遍历完最后一个叶子节点到索引值为4的节点。
当当前节点的量化值(绝对值)大于或等于2n时,可以确定当前节点是重要的,此时标记当前节点的父节点的D集合重要且祖父节点的D集合和L集合为重要的,然后跳过当前节点的兄弟节点。
参见图9,以当前节点x[24]为例,其|x[24]|>=2n,确定该节点为重要节点,此时将其父节点x[12]标记为D集合重要,将祖父节点x[6]、x[3]和x[1]标记为D集合重要和L集合重要,然后跳过当前节点x[24]是相同父节点的兄弟节点x[25],继续对x[26]进行节点重要性检测。当检测完节点x[31]后可以继续检测节点x[8]~ x[15]、x[4]~ x[7]的节点重要性,从而更新完第二静态表DL_marker。
在步骤84中,电子设备可以基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码。
参见图10,电子设备可以从所述第一静态表获取当前节点的父节点的集合检测值。当当前节点的父节点的集合检测值为1时,针对当前节点及其兄弟节点中的各个目标节点,判断目标节点的量化值是否大于或等于2n+1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k。
当目标节点的量化值大于或等于2n+1时,将目标节点在当前位平面的二进制数值写入码流。当目标节点的量化值小于2n+1或者目标节点的父节点的集合重要性值为0时,跳过当前节点及其兄弟节点,继续遍历其他节点,直至遍历完所有节点。
在步骤85中,电子设备可以基于所述第一静态表signi_map对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断。
参见图11,电子设备可以从第一静态表中获取当前节点的父节点的集合重要性值。当当前节点的父节点的集合重要性值是1时,说明当前节点已经处于重要集合中。针对当前节点及其兄弟节点中的各个目标节点,判断目标节点的量化值是否小于2n+1。
当目标节点的量化值小于2n+1时,说明该目标节点还没有进行过重要性检测,那么对该目标节点进行节点重要性检测,判断目标节点的量化值(的绝对值)是否大于或等于2n。
当目标节点的量化值大于或等于2n时,将目标节点的节点重要性值1写入码流并将符号位写入码流;当目标节点的量化值小于2n时,将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点,直至遍历完所有节点;
当所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点,直至遍历完所有节点。
在步骤86中,电子设备可以基于所述第二静态表DL_marker和第三静态表split_stop进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表split_stop。
本步骤中,第一静态表signi_map和第三静态表split_stop均在本过程中更新。以更新第三静态表split_stop为例,需要结合二叉树结构。如果当前节点x[i]已经进行了集合分裂且集合重要性检测为不重要,那么所有非叶子的子孙节点都是集合不重要的,此时需要对第三静态表split_stop中的当前节点x[i]及其所有非叶子节点的子节点对应位置标记为1,在之后的集合分裂判断时会自动跳过已被标记的子节点。
参见图12,当前节点x[3]检测为集合不重要时,那么当前节点x[3]及其非叶子节点x[6]、x[7]、x[12]、x[13]、x[14]、x[15]的集合分裂值都标记为1。
参见图13,电子设备可以初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零。然后,电子设备可以更新所述第一静态表中所述目标节点对应的集合检测值为1判断当前节点是否属于已分裂过的D集合或L集合,当当前节点属于已分裂过的D集合时,跳过当前节点及其兄弟节点至下一节点;当当前节点属于已分裂过的L集合时,跳过当前节点及其同祖父的节点至下一节点。
例如,从第一静态表读取当前节点的父节点的重要检测值,当重要检测值为1时说明当前节点已经处于重要集合中。从第三静态表读取当前节点的祖父节点的集合分裂值,当集合分裂值为1时说明当前节点已经处于不重要L集合中;判断当前节点的父节点的集合分裂值是否为1,当集合分裂值为1时说明当前节点已经处于不重要D集合中。
当当前节点不属于已分裂过的D集合和L集合时,判断当前节点是否满足预设条件,其中预设条件是指当前节点的索引值大于或等于8、当前节点的父节点的兄弟节点的集合分裂值为0和当前节点的索引值为4的倍数,当前节点同时满足上述三个条件即是满足预设条件,至少一个条件不满足时即不满足预设条件。
当当前节点满足上述预设条件时,即可进行L集合的重要性判断,从第二静态表中读取当前节点的祖父节点的L集合重要性值写入码流;当当前节点的祖父节点的L集合重要性值为1时,对当前节点的父节点及其兄弟节点进行D集合分裂,并跳过当前节点及其同祖父的节点至下一节点;在当前节点的祖父节点的L集合重要性值为0时,对当前节点的祖父节点的集合分裂值置1,标记当前节点已经分裂且处于不重要集合中,并跳过当前节点及其同祖父的节点至下一节点。
当当前节点不满足上述预设条件时,对当前节点的父节点进行D集合分裂,并跳过当前节点及其兄弟节点至下一节点。
其中,D集合分裂的流程如图14所示。参见图14,针对当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取目标节点的D集合重要性值并写入码流;当目标节点的D集合重要性值为0时,更新目标节点的两个直接子节点对应的集合分裂值为1即更新第三静态表;当目标节点的D集合重要性值为1时,判断目标节点的两个直接子节点的(在位平面n下的)节点重要性并将节点重要性值写入码流;
当直接子节点的节点重要性为1时,将直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。这样,经过上述步骤可以得到候选码流,即该候选码流包括直接写入的低频系数对应的二进制值和高频系数对应的编码结果。
在步骤25中,当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。
本步骤中,电子设备可以获取候选码流的码长,并对比候选码流的码长与设定码长。当候选编码的码长大于设定码长时,按照预设步长调整容差NEAR,例如每次调整时NEAR取值更新为NEAR+1,重要执行步骤22~步骤25,直至候选编码的码长小于设定码长或者NEAR超过最大值为止,确定此时的候选编码为所述像素条块对应的目标编码,并输出上述目标编码。
可理解的是,编码过程中,在NEAR为0(即不量化)编码的码长超出压缩率需要的码长长度后进入量化循环。量化循环即在不同的量化步长NEAR下对小波变换后的数据进行量化和编码,直到编码的候选编码的码长满足码率要求或量化步长超过最大值时终止循环输出码流。编码过程中循环得到的最终NEAR值会被写入码流头部,解码过程没有量化循环,直接读取码流头部的NEAR值进行反量化。量化步长NEAR的最大值设为7,即量化循环最多循环8次,对应NEAR值0-7。
单个条块编码得到的码流结构如图15所示。参见图15,NEAR可以设置3位(bit),多级树集合分裂算法的最高位平面k设置5位,其他部分为码流数据(code stream of data)。
至此,本公开实施例提供的方案可以获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。这样,本实施例可以对同一行预设数量个像素构成的像素条块进行单独处理,无需依赖上下文,可以灵活地对目标图像中随机位置像素内容进行读写,最小支持到单行的数个像素,处理的颗粒度更小,节省硬件计算开销和行缓存(line buffer)。本实施例中采用预设的多级树集合分裂算法进行压缩编码,编解码复杂度比较低,可以采用硬件实现,提升编解码速度,并且解码端在一些极端情况下接收到不完整码流时也可以正常解码恢复图像内容。另外,本实施例中通过判断候选编码的码长与设定码长,利用循环量化的机制可以平衡压缩率和图像画质。
本公开实施例还提供了一种解码方法,图16是根据一示例性实施例示出的一种图像解码方法的框图,图17是根据一示例性实施例示出的一种图像解码方法的流程图。参见图16和图17,一种图像解码方法,包括步骤171~步骤173。
在步骤171中,对获取的码流进行预设的多级树集合分裂算法解码,获得量化数据;
在步骤172中,对所述量化数据进行反向量化编码处理,获得转换数据;
在步骤173中,对所述转换数据进行反向变换处理得到恢复的像素值,得到所述码流对应的重建图像。
本公开中,经过预设的多级树集合分裂算法解码、反量化、反向小波变换得到恢复的像素数据,解压缩各个步骤是压缩过程中对应步骤的逆过程,各个静态表的更新一致,其区别在于:
1)解码端没有第二静态表DL_marker以及更新过程,所有集合重要性信息直接从码流读出。
2)所有的重要性检测不需要执行,直接从码流当前位bit读取重要性信息,每次读取一位数据后码流指针后移一位。
3)由于解码端没有原始的量化值,故需要新的静态表first_refine_marker来辅助标记。新的静态表first_refine_marker对应32个小波系统,标记量化值是否已经进行过最高位平面的节点重要性检测,即符号位是否已从码流(即目标编码)中读取。如果新的静态表中当前节点的标记为0,表示还未进行过符号位的读取,在D集合分裂过程中会读取该量化值的符号位;如果最高位标记为1,表示该量化值经过最高位的重要性检测,在图9所示过程读取其在位平面n的二进制数值,并直接在该量化值的重建值上进行累加,如果符号为正,则在已恢复的小波系数数值上增加2n,否则减去2n。
可理解的是,由于解压缩各个步骤是压缩过程中对应步骤的逆过程,并且在压缩过程中描述了逆过程的处理方式,可以结合压缩过程的内容来实现解压缩,在此不再赘述。
本公开实施例还提供了一种图像编码装置,参见图18,包括:
像素数据获取模块181,用于获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;
转换数据获取模块182,用于对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;
量化数据获取模块183,用于对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;
候选编码获取模块184,用于采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;
目标编码获取模块185,用于在所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码。
在一实施例中,所述转换数据获取模块包括:
小波模型获取子模块,用于获取预设的小波变换模型;
转换数据获取子模块,用于采用所述小波变换模型对所述像素数据进行小波变换得到第一数量个低频系数和第二数量个高频系数,将所述第一数量个低频系数和第二数量个高频系数作为所述转换数据;所述第一数量和所述第二数量的和值等于所述预设数量。
在一实施例中,所述候选编码获取模块包括:
二叉树构建子模块,用于构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射;
初始化子模块,用于初始化最高位平面k、第一静态表和第三静态表;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合;
候选编码获取子模块,用于针对所述二叉树中的每个节点,分别执行以下步骤,包括:
第二表更新单元,用于更新第二静态表;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息;
位平面编码单元,用于基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码;
重要性判断单元,用于基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断;
集合分裂判断单元,用于基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表。
在一实施例中,所述第二表更新单元包括:
指定节点遍历子单元,用于采用自下而上的标记方式遍历指定节点,所述指定节点是指索引值大于或等于4的所有节点:
集合标记子单元,用于当当前节点的量化值大于或等于2n时,将所述当前节点的父节点标记为D集合重要且祖先节点标记为D集合重要和L集合重要,并且跳过所述当前节点的兄弟节点;
所述祖先节点是指所述当前节点的祖父节点、所述祖父节点的父节点、所述祖父节点的祖父节点,依此类推,直至所述二叉树的根节点;
所述当前节点的兄弟节点是指与当前节点具有相同父亲的节点;
所述k值是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;
所述D集合是指当前节点的所有子节点构成的集合;
所述L集合是指当前节点的所有非直接子节点构成的集合。
在一实施例中,所述位平面编码单元包括:
检测值获取子单元,用于从所述第一静态表获取当前节点的父节点的集合检测值;
量化值判断子单元,用于当所述当前节点的父节点的集合检测值为1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否大于或等于2n +1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
二进制写入子单元,用于当所述目标节点的量化值大于或等于2n+1时,将所述目标节点在当前位平面的二进制数值写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n+1或者所述目标节点的父节点的集合重要性值为0时,跳过所述当前节点及其兄弟节点。
在一实施例中,所述重要性判断单元包括:
重要性值获取子单元,用于从所述第一静态表中获取当前节点的父节点的集合重要性值;
量化值判断子单元,用于当所述当前节点的父节点的集合重要性值是1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否小于2n+1;其中n值是指目标节点所在的位平面;其中位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
量化值判断子单元,还用于当所述目标节点的量化值小于2n+1时,判断所述目标节点的量化值是否大于或等于2n;
重要性值写入子单元,用于当所述目标节点的量化值大于或等于2n时,将所述目标节点的节点重要性值1写入码流并将符号位写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点,或者所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点。
在一实施例中,所述集合分裂判断单元包括:
分裂值初始化子单元,用于初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零;
节点跳转子单元,用于判断当前节点是否属于已分裂过的D集合或L集合,当所述当前节点属于已分裂过的D集合时,跳过所述当前节点及其兄弟节点至下一节点;当所述当前节点属于已分裂过的L集合时,跳过所述当前节点及其同祖父的节点至下一节点;
预设条件判断子单元,用于当所述当前节点不属于已分裂过的D集合和L集合时,判断所述当前节点是否满足预设条件,所述预设条件是指所述当前节点的索引值大于或等于8、所述当前节点的父节点的兄弟节点的集合分裂值为0和所述当前节点的索引值为4的倍数;
重要性值写入子单元,用于当所述当前节点满足所述预设条件时,从所述第二静态表中读取所述当前节点的祖父节点的L集合重要性值写入码流;当所述当前节点的祖父节点的L集合重要性值为1时,对所述当前节点的父节点及兄弟节点进行D集合分裂,并跳过所述当前节点及其同祖父的节点至下一节点;在所述当前节点的祖父节点的L集合重要性值为0时,对所述当前节点的祖父节点的集合分裂值置1,并跳过所述当前节点及其同祖父的节点至下一节点;
集合分裂子单元,用于当所述当前节点不满足所述预设条件时,对所述当前节点的父节点进行D集合分裂,并跳过所述当前节点及其兄弟节点至下一节点。
在一实施例中,所述重要性值写入子单元,还用于针对所述当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取所述目标节点的D集合重要性值并写入码流;当所述目标节点的D集合重要性值为0时,更新所述第三静态表中所述目标节点的两个直接子节点对应的集合分裂值为1;当所述目标节点的D集合重要性值为1时,判断所述目标节点的两个直接子节点的节点重要性并将所述节点重要性值写入码流;
符号写入子单元,用于当所述直接子节点的节点重要性为1时,将所述直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。
在一实施例中,所述目标编码获取模块还用于在所述候选编码的码长大于或者等于所述设定码长时触发所述量化数据获取模块,以使所述量化数据获取模块调整量化步长后继续对所述转换数据进行量化编码处理。
本公开实施例还提供了一种图像解码装置,参见图19,包括:
量化数据获取模块191,用于对获取的码流进行预设的多级树集合分裂算法解码,获得量化数据;
转换数据获取模块192,用于对所述量化数据进行反向量化编码处理,获得转换数据;
重建图像获取模块193,用于对所述转换数据进行反向变换处理得到恢复的像素值,得到所述码流对应的重建图像。
需要说明的是,本实施例中示出的装置与方法实施例的内容相匹配,可以参考上述方法实施例的内容,在此不再赘述。
图20是根据一示例性实施例示出的一种电子设备的框图。例如,电子设备2000可以是智能手机,计算机,数字广播终端,平板设备,医疗设备,健身设备,个人数字助理等。
参照图20,电子设备2000可以包括以下一个或多个组件:处理组件2002,存储器2004,电源组件2006,多媒体组件2008,音频组件2010,输入/输出(I/O)的接口2012,传感器组件2014,通信组件2016,图像采集组件2018。
处理组件2002通常控制电子设备2000的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件2002可以包括一个或多个处理器2020来执行计算机程序。此外,处理组件2002可以包括一个或多个模块,便于处理组件2002和其他组件之间的交互。例如,处理组件2002可以包括多媒体模块,以方便多媒体组件2008和处理组件2002之间的交互。
存储器2004被配置为存储各种类型的数据以支持在电子设备2000的操作。这些数据的示例包括用于在电子设备2000上操作的任何应用程序或方法的计算机程序,联系人数据,电话簿数据,消息,图片,视频等。存储器2004可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件2006为电子设备2000的各种组件提供电力。电源组件2006可以包括电源管理系统,一个或多个电源,及其他与为电子设备2000生成、管理和分配电力相关联的组件。电源组件2006可以包括电源芯片,控制器可以电源芯片通信,从而控制电源芯片导通或者断开开关器件,使电池向主板电路供电或者不供电。
多媒体组件2008包括在电子设备2000和目标对象之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示屏(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自目标对象的输入信息。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
音频组件2010被配置为输出和/或输入音频文件信息。例如,音频组件2010包括一个麦克风(MIC),当电子设备2000处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频文件信息。所接收的音频文件信息可以被进一步存储在存储器2004或经由通信组件2016发送。在一些实施例中,音频组件2010还包括一个扬声器,用于输出音频文件信息。
I/O接口2012为处理组件2002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。
传感器组件2014包括一个或多个传感器,用于为电子设备2000提供各个方面的状态评估。例如,传感器组件2014可以检测到电子设备2000的打开/关闭状态,组件的相对定位,例如组件为电子设备2000的显示屏和小键盘,传感器组件2014还可以检测电子设备2000或一个组件的位置改变,目标对象与电子设备2000接触的存在或不存在,电子设备2000方位或加速/减速和电子设备2000的温度变化。本示例中,传感器组件2014可以包括磁力传感器、陀螺仪和磁场传感器,其中磁场传感器包括以下至少一种:霍尔传感器、薄膜磁致电阻传感器、磁性液体加速度传感器。
通信组件2016被配置为便于电子设备2000和其他设备之间有线或无线方式的通信。电子设备2000可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G、5G,或它们的组合。在一个示例性实施例中,通信组件2016经由广播信道接收来自外部广播管理系统的广播信息或广播相关信息。在一个示例性实施例中,通信组件2016还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备2000可以被一个或多个应用专用集成电路(ASIC)、数字信息处理器(DSP)、数字信息处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现。
在示例性实施例中,还提供了一种非暂态计算机可读存储介质,例如包括指令的存储器2004,上述可执行的计算机程序可由处理器执行。其中,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种芯片,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行上述各实施例所示例的图像编码方法。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种图像编码方法,其特征在于,包括:
获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;
对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;
对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;
对转换数据的第一个低频系数,将其对应源数据的二进制写入码流,对转换数据的高频系数的量化结果,采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;
当所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码;
其中,所述采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码,包括:
构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射;
初始化最高位平面k、第一静态表和第三静态表;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合;
针对所述二叉树中的每个节点,分别执行以下步骤;
更新第二静态表;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息;
基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码;
基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断;
基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表;
所述更新第二静态表,包括:
采用自下而上的标记方式遍历指定节点,所述指定节点是指索引值大于或等于4的所有节点:
当当前节点的量化值大于或等于2n时,将所述当前节点的父节点标记为D集合重要且祖先节点标记为D集合重要和L集合重要,并且跳过所述当前节点的兄弟节点;
所述祖先节点是指所述当前节点的祖父节点、所述祖父节点的父节点、所述祖父节点的祖父节点,依此类推,直至所述二叉树的根节点;
所述当前节点的兄弟节点是指与当前节点具有相同父亲的节点;
所述k值是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;
所述D集合是指当前节点的所有子节点构成的集合;
所述L集合是指当前节点的所有非直接子节点构成的集合。
2.根据权利要求1所述的方法,其特征在于,对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据,包括:
获取预设的小波变换模型;
采用所述小波变换模型对所述像素数据进行小波变换得到第一数量个低频系数和第二数量个高频系数,将所述第一数量个低频系数和第二数量个高频系数作为所述转换数据;所述第一数量和所述第二数量的和值等于所述预设数量。
3.根据权利要求1所述的方法,其特征在于,基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码,包括:
从所述第一静态表获取当前节点的父节点的集合检测值;
当所述当前节点的父节点的集合检测值为1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否大于或等于2n+1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
当所述目标节点的量化值大于或等于2n+1时,将所述目标节点在当前位平面的二进制数值写入码流;
当所述目标节点的量化值小于2n+1或者所述目标节点的父节点的集合重要性值为0时,跳过所述当前节点及其兄弟节点。
4.根据权利要求1所述的方法,其特征在于,基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断,包括:
从所述第一静态表中获取当前节点的父节点的集合重要性值;
当所述当前节点的父节点的集合重要性值是1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否小于2n+1;其中n值是指目标节点所在的位平面;其中位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
当所述目标节点的量化值小于2n+1时,判断所述目标节点的量化值是否大于或等于2n;
当所述目标节点的量化值大于或等于2n时,将所述目标节点的节点重要性值1写入码流并将符号位写入码流;
当所述目标节点的量化值小于2n时,将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点;
当所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点。
5.根据权利要求1所述的方法,其特征在于,基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表,包括:
初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零;
判断当前节点是否属于已分裂过的D集合或L集合,当所述当前节点属于已分裂过的D集合时,跳过所述当前节点及其兄弟节点至下一节点;当所述当前节点属于已分裂过的L集合时,跳过所述当前节点及其同祖父的节点至下一节点;
当所述当前节点不属于已分裂过的D集合和L集合时,判断所述当前节点是否满足预设条件,所述预设条件是指所述当前节点的索引值大于或等于8、所述当前节点的父节点的兄弟节点的集合分裂值为0和所述当前节点的索引值为4的倍数;
当所述当前节点满足所述预设条件时,从所述第二静态表中读取所述当前节点的祖父节点的L集合重要性值写入码流;当所述当前节点的祖父节点的L集合重要性值为1时,对所述当前节点的父节点及其兄弟节点进行D集合分裂,并跳过所述当前节点及其同祖父的节点至下一节点;在所述当前节点的祖父节点的L集合重要性值为0时,对所述当前节点的祖父节点的集合分裂值置1,并跳过所述当前节点及其同祖父的节点至下一节点;
当所述当前节点不满足所述预设条件时,对所述当前节点的父节点进行D集合分裂,并跳过所述当前节点及其兄弟节点至下一节点。
6.根据权利要求5所述的方法,其特征在于,对所述当前节点的父节点及其兄弟节点进行D集合分裂,包括:
针对所述当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取所述目标节点的D集合重要性值并写入码流;当所述目标节点的D集合重要性值为0时,更新所述第三静态表中所述目标节点的两个直接子节点对应的集合分裂值为1;当所述目标节点的D集合重要性值为1时,判断所述目标节点的两个直接子节点的节点重要性并将所述节点重要性值写入码流;
当所述直接子节点的节点重要性为1时,将所述直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述候选编码的码长大于或者等于所述设定码长时,调整量化步长,并继续执行对所述转换数据进行量化编码处理的步骤。
8.一种图像编码装置,其特征在于,包括:
像素数据获取模块,用于获取目标图像中同一行预设数量个像素所构成像素条块的像素数据;
转换数据获取模块,用于对所述像素条块的像素数据进行变换处理,获得所述像素数据对应的转换数据;
量化数据获取模块,用于对所述转换数据进行量化编码处理,获得所述转换数据对应的量化数据;
候选编码获取模块,用于对转换数据的第一个低频系数,将其对应源数据的二进制写入码流,对转换数据的高频系数的量化结果,采用预设的多级树集合分裂算法对所述量化数据进行压缩编码,获得候选编码;
目标编码获取模块,用于在所述候选编码的码长小于设定码长时,确定所述候选编码为所述像素条块对应的目标编码;
其中,所述候选编码获取模块包括:
二叉树构建子模块,用于构建所述量化数据对应的二叉树;所述二叉树的节点包括索引值和量化值,并且所述节点的索引值与所述转换数据在转换过程中的次序一一映射;
初始化子模块,用于初始化最高位平面k、第一静态表和第三静态表;所述最高位平面k是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;所述第一静态表用于存储集合检测值,所述集合检测值用于标记当前节点的两个直接子节点是否进行过集合重要性检测;所述第三静态表用于存储集合分裂值,所述集合分裂值用于标记当前节点的D集合和L集合是否已经分裂且属于不重要集合;
候选编码获取子模块,用于针对所述二叉树中的每个节点,分别执行以下步骤,包括:
第二表更新单元,用于更新第二静态表;所述第二静态表用于存储集合重要性值,所述集合重要性值用于标记当前节点对应的D集合或L集合的重要性信息;
位平面编码单元,用于基于所述第一静态表对已经进行过重要性检测的重要节点进行位平面编码;
重要性判断单元,用于基于所述第一静态表对已经进行过重要性检测的重要集合中还没进行重要性检测的节点进行重要性判断;
集合分裂判断单元,用于基于所述第二静态表和第三静态表进行当前节点的集合分裂,将集合分裂情况标记到第一静态表;判断当前节点的D集合和L集合是否已经分裂且属于不重要集合,若是,标记对应节点到所述第三静态表;
所述第二表更新单元包括:
指定节点遍历子单元,用于采用自下而上的标记方式遍历指定节点,所述指定节点是指索引值大于或等于4的所有节点:
集合标记子单元,用于当当前节点的量化值大于或等于2n时,将所述当前节点的父节点标记为D集合重要且祖先节点标记为D集合重要和L集合重要,并且跳过所述当前节点的兄弟节点;
所述祖先节点是指所述当前节点的祖父节点、所述祖父节点的父节点、所述祖父节点的祖父节点,依此类推,直至所述二叉树的根节点;
所述当前节点的兄弟节点是指与当前节点具有相同父亲的节点;
所述k值是指目标量化值对应二进制数中最高位1对应的位次,所述位次的取值范围为0~k;所述目标量化值是指所述二叉树的所有节点中量化值的最大值;
所述D集合是指当前节点的所有子节点构成的集合;
所述L集合是指当前节点的所有非直接子节点构成的集合。
9.根据权利要求8所述的装置,其特征在于,所述转换数据获取模块包括:
小波模型获取子模块,用于获取预设的小波变换模型;
转换数据获取子模块,用于采用所述小波变换模型对所述像素数据进行小波变换得到第一数量个低频系数和第二数量个高频系数,将所述第一数量个低频系数和第二数量个高频系数作为所述转换数据;所述第一数量和所述第二数量的和值等于所述预设数量。
10.根据权利要求8所述的装置,其特征在于,所述位平面编码单元包括:
检测值获取子单元,用于从所述第一静态表获取当前节点的父节点的集合检测值;
量化值判断子单元,用于当所述当前节点的父节点的集合检测值为1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否大于或等于2n+1;其中n值是指目标节点所在的位平面;所述位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
二进制写入子单元,用于当所述目标节点的量化值大于或等于2n+1时,将所述目标节点在当前位平面的二进制数值写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n+1或者所述目标节点的父节点的集合重要性值为0时,跳过所述当前节点及其兄弟节点。
11.根据权利要求8所述的装置,其特征在于,所述重要性判断单元包括:
重要性值获取子单元,用于从所述第一静态表中获取当前节点的父节点的集合重要性值;
量化值判断子单元,用于当所述当前节点的父节点的集合重要性值是1时,针对所述当前节点及其兄弟节点中的各个目标节点,判断所述目标节点的量化值是否小于2n+1;其中n值是指目标节点所在的位平面;其中位平面是指目标节点的量化值对应二进制数值对应的位次,所述位次的取值范围为0~k;
量化值判断子单元,还用于当所述目标节点的量化值小于2n+1时,判断所述目标节点的量化值是否大于或等于2n;
重要性值写入子单元,用于当所述目标节点的量化值大于或等于2n时,将所述目标节点的节点重要性值1写入码流并将符号位写入码流;
节点跳过子单元,用于当所述目标节点的量化值小于2n将节点重要性0写入码流并跳过所述目标节点及其兄弟节点到下一个节点,或者所述目标节点的量化值大于或等于2n+1时,跳过所述目标节点及其兄弟节点到下一个节点。
12.根据权利要求8所述的装置,其特征在于,所述集合分裂判断单元包括:
分裂值初始化子单元,用于初始化第三静态表,将所述第三静态表中各节点的集合分裂值置零;
节点跳转子单元,用于判断当前节点是否属于已分裂过的D集合或L集合,当所述当前节点属于已分裂过的D集合时,跳过所述当前节点及其兄弟节点至下一节点;当所述当前节点属于已分裂过的L集合时,跳过所述当前节点及其同祖父的节点至下一节点;
预设条件判断子单元,用于当所述当前节点不属于已分裂过的D集合和L集合时,判断所述当前节点是否满足预设条件,所述预设条件是指所述当前节点的索引值大于或等于8、所述当前节点的父节点的兄弟节点的集合分裂值为0和所述当前节点的索引值为4的倍数;
重要性值写入子单元,用于当所述当前节点满足所述预设条件时,从所述第二静态表中读取所述当前节点的祖父节点的L集合重要性值写入码流;当所述当前节点的祖父节点的L集合重要性值为1时,对所述当前节点的父节点及兄弟节点进行D集合分裂,并跳过所述当前节点及其同祖父的节点至下一节点;在所述当前节点的祖父节点的L集合重要性值为0时,对所述当前节点的祖父节点的集合分裂值置1,并跳过所述当前节点及其同祖父的节点至下一节点;
集合分裂子单元,用于当所述当前节点不满足所述预设条件时,对所述当前节点的父节点进行D集合分裂,并跳过所述当前节点及其兄弟节点至下一节点。
13.根据权利要求12所述的装置,其特征在于,所述重要性值写入子单元,还用于针对所述当前节点的父节点及其兄弟节点中的各个目标节点,从第二静态表读取所述目标节点的D集合重要性值并写入码流;当所述目标节点的D集合重要性值为0时,更新所述第三静态表中所述目标节点的两个直接子节点对应的集合分裂值为1;当所述目标节点的D集合重要性值为1时,判断所述目标节点的两个直接子节点的节点重要性并将所述节点重要性值写入码流;
符号写入子单元,用于当所述直接子节点的节点重要性为1时,将所述直接子节点的量化值的符号位写入码流,更新所述第一静态表中所述目标节点对应的集合检测值为1;当所述直接子节点的节点重要性为0时,更新所述第一静态表中所述目标节点对应的集合检测值为1。
14.根据权利要求8所述的装置,其特征在于,所述目标编码获取模块还用于在所述候选编码的码长大于或者等于所述设定码长时触发所述量化数据获取模块,以使所述量化数据获取模块调整量化步长后继续对所述转换数据进行量化编码处理。
15.一种电子设备,其特征在于,包括:
存储器与处理器;
所述存储器用于存储所述处理器可执行的计算机程序;
所述处理器用于执行所述存储器中的计算机程序,以实现如权利要求1~7任一项所述的方法。
16.一种非暂态计算机可读存储介质,其特征在于,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如权利要求1~7任一项所述的方法。
17.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1~7任一项所述的图像编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210593900.6A CN116389759B (zh) | 2022-05-27 | 图像编码方法、装置、电子设备、芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210593900.6A CN116389759B (zh) | 2022-05-27 | 图像编码方法、装置、电子设备、芯片及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116389759A CN116389759A (zh) | 2023-07-04 |
CN116389759B true CN116389759B (zh) | 2024-06-25 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431678A (zh) * | 2008-12-05 | 2009-05-13 | 硅谷数模半导体(北京)有限公司 | 影像处理方法及装置 |
CN102104778A (zh) * | 2009-12-17 | 2011-06-22 | 北京三星通信技术研究有限公司 | 一种图像编码中码率控制的方法和装置 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431678A (zh) * | 2008-12-05 | 2009-05-13 | 硅谷数模半导体(北京)有限公司 | 影像处理方法及装置 |
CN102104778A (zh) * | 2009-12-17 | 2011-06-22 | 北京三星通信技术研究有限公司 | 一种图像编码中码率控制的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10380996B2 (en) | Method and apparatus for correcting speech recognition result, device and computer-readable storage medium | |
US8666179B2 (en) | Image encoding apparatus and decoding apparatus | |
CN113079379A (zh) | 一种视频压缩方法、装置、设备及计算机可读存储介质 | |
US10171841B2 (en) | Method and device for encoding/decoding video bitstream | |
CN110555334B (zh) | 人脸特征确定方法、装置、存储介质及电子设备 | |
WO2023045420A1 (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN111510718A (zh) | 通过图像文件的块间差异提高压缩率的方法及系统 | |
WO2018120019A1 (zh) | 用于神经网络数据的压缩/解压缩的装置和系统 | |
CN110647508A (zh) | 数据压缩方法、数据解压缩方法、装置及电子设备 | |
CN116389759B (zh) | 图像编码方法、装置、电子设备、芯片及存储介质 | |
CN111405293B (zh) | 一种视频传输方法及装置 | |
CN111510716A (zh) | 通过图像文件的像素变换提高压缩率的方法和系统 | |
CN116389759A (zh) | 图像编码方法、装置、电子设备、芯片及存储介质 | |
CN115834889A (zh) | 视频编解码方法、装置、电子设备及介质 | |
CN114189684A (zh) | 一种基于jnd算法的视频编码方法、装置、介质及计算设备 | |
CN111083416B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN102948147A (zh) | 基于变换系数直方图的视频速率控制 | |
CN111988621A (zh) | 视频处理器训练方法、装置、视频处理装置及视频处理方法 | |
US20240129473A1 (en) | Probability estimation in multi-symbol entropy coding | |
US8411971B1 (en) | Method and apparatus for normalizing perceptual quality in media compression | |
CN117440154B (zh) | 一种考虑浮点数位拆分的深度图序列压缩方法 | |
CN115412727A (zh) | 编码方法、解码方法及其装置 | |
CN117526966A (zh) | 一种数据压缩方法、装置、电子设备及存储介质 | |
WO2022258055A1 (zh) | 点云属性信息编码方法、解码方法、装置及相关设备 | |
CN116582680A (zh) | 编解码方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |