CN118200580A - 一种图像编码方法、装置、电子设备、芯片及存储介质 - Google Patents

一种图像编码方法、装置、电子设备、芯片及存储介质 Download PDF

Info

Publication number
CN118200580A
CN118200580A CN202211599018.9A CN202211599018A CN118200580A CN 118200580 A CN118200580 A CN 118200580A CN 202211599018 A CN202211599018 A CN 202211599018A CN 118200580 A CN118200580 A CN 118200580A
Authority
CN
China
Prior art keywords
sub
blocks
block
code length
determining
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.)
Pending
Application number
CN202211599018.9A
Other languages
English (en)
Inventor
马昊辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Xuanjie Technology Co ltd
Original Assignee
Shanghai Xuanjie Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Xuanjie Technology Co ltd filed Critical Shanghai Xuanjie Technology Co ltd
Priority to CN202211599018.9A priority Critical patent/CN118200580A/zh
Publication of CN118200580A publication Critical patent/CN118200580A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供一种图像编码方法、装置、电子设备、芯片及存储介质,对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码,充分考虑了纹理编码特性,编码过程中通过动态的调整码长,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。

Description

一种图像编码方法、装置、电子设备、芯片及存储介质
技术领域
本公开涉及图像压缩领域,尤其涉及一种图像编码方法及装置、电子设备、芯片及存储介质。
背景技术
帧缓存压缩主要应用于芯片内部用于图像处理的缓存压缩,压缩目的是降低硬件存储和带宽资源,且不能有明显的图像损伤,因此压缩率通常不会太高,一般在2-3倍左右。此外其最小压缩单元需对齐内存颗粒整数倍,并且会要求支持随机存取。在CBR(定码长编码)模式下,可以直接通过地址偏移获取编码数据,而VBR(变码长编码)的模式下需要额外存储地址位置信息来实现随机存取。
然而,现有压缩编码方案,整体上的灵活度不够,在压缩率较高的时候,平坦区域容易出现色阶分层等现象。
发明内容
本公开提供一种图像编码方法、装置、电子设备、芯片以及存储介质,以解决相关技术中的问题,.在编码过程中通过动态的调整,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
本公开的第一方面实施例提出了一种图像编码方法,该方法包括:对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码。
在本公开的一些实施例中,对图像的条块进行图像纹理分析,获取图像纹理信息包括:提取条块中像素的梯度信息;基于梯度信息,确定条块中每个像素的最小方向梯度;确定每个像素的最小方向梯度对应的位宽。
在本公开的一些实施例中,确定每个像素的最小方向梯度对应的位宽包括:当最小方向梯度大于零时,根据预设公式确定位宽;当最小方向梯度等于零时,确定位宽为1。
在本公开的一些实施例中,图像纹理信息至少包括条块中每个像素的最小方向梯度,基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块包括:将条块等分为多个编码单元;根据每个编码单元的图像纹理信息,确定每个编码单元的梯度均方差;基于梯度均方差,将编码单元划分为多个子块。
在本公开的一些实施例中,基于梯度均方差,将编码单元划分为多个子块包括:根据每个编码单元的图像纹理信息,确定编码单元的多种子块划分方式;确定编码单元在每种子块划分方式下的梯度均方差;选择最小梯度均方差对应的子块划分方式,将编码单元划分为多个子块,其中,不同的编码单元划分得到的子块形状与个数不同。
在本公开的一些实施例中,针对每个子块确定调整因子包括:将每个子块内各像素的最小方向梯度相加,以确定子块的梯度总和;将条块内各像素的最小方向梯度相加并除以多个子块的个数,以确定平均梯度;将梯度总和与平均梯度的比值,确定为子块的初始因子;对初始因子进行对数映射处理,以得到子块的调整因子。
在本公开的一些实施例中,基于调整因子确定每个子块的目标码长包括:根据多个子块的编码顺序以及多个子块的个数,将多个子块划分为第一组子块和第二组子块;以保证图像质量为原则,确定第一组子块中各个子块的目标码长;以保证编码收敛为原则,确定第二组子块中各个子块的目标码长,其中,第一组子块的编码顺序先于第二组子块的编码顺序,第二组子块中子块的个数大于等于2且小于等于多个子块个数的一半。
在本公开的一些实施例中,以保证图像质量为原则,确定第一组子块中各个子块的目标码长包括:获取条块的预设码长;将预设码长除以多个子块的个数,得到初始平均码长,作为第一个子块的基础码长;将基础码长乘以第一个子块的调整因子,以得到第一个子块的目标码长;基于剩余码长和剩余子块的个数,确定剩余子块的目标码长,直至第一组子块中最后一个子块。
在本公开的一些实施例中,基于剩余码长和剩余子块的个数,确定剩余子块的目标码长包括:将预设码长减去已编码子块的目标码长,作为剩余码长;将多个子块的个数减去已编码子块的个数,作为剩余子块的个数;将剩余码长与剩余子块的个数的比值,作为下一个编码的子块的基础码长;将下一个编码的子块的基础码长与调整因子的乘积,作为下一个编码的子块的目标码长。
在本公开的一些实施例中,该方法还包括:在不同的编码模式和不同的量化参数下进行遍历,按照预设规则,对各个子块的目标码长进行动态调整,其中,预设规则为:对当前子块进行编码所使用的目标码长对应的量化参数与上一个子块进行编码所使用的目标码长对应的量化参数之间的差值落入区间[-1,2]。
在本公开的一些实施例中,以保证编码收敛为原则,确定第二组子块中各个子块的目标码长包括:将预设码长减去第一组子块中各个子块的目标码长之和,作为第二组子块的总码长;将总码长与第二组的子块数量的比值,作为第二组子块中每个子块的目标码长。
本公开的第二方面实施例提出了一种图像编码装置,该装置包括:获取模块,用于对图像的条块进行图像纹理分析,获取图像纹理信息;或蜂蜜模块,用于基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;确定模块,用于针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;编码模块,用于基于目标码长,对各个子块进行编码。
本公开的第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一方面实施例中描述的方法。
本公开的第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开第一方面实施例中描述的方法。
本公开的第五方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行本公开第一方面实施例中描述的方法。
本公开的第六方面实施例提出了一种芯片,该芯片包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令,当处理器执行计算机指令时,使得电子设备执行本公开第一方面实施例中描述的方法。
综上,本公开提出的图像编码方法,对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码,充分考虑了纹理编码特性,编码过程中通过动态的调整码长,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1为本公开实施例提供的一种应用场景示意图;
图2为本公开实施例提供的一种图像编码方法的流程图;
图3为本公开实施例提供的一种图像编码方法的流程图;
图4为本公开实施例提供的一种图像编码方法的流程示意图;
图5为本公开实施例提供的一种对数坐标系的示意图;
图6为本公开实施例提供的一种图像编码装置的结构示意图;
图7为本公开实施例提供的电子设备的结构示意图。
具体实施方式
下面详细描述本公开的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
不同于JPEG等图像压缩标准,帧缓存压缩主要应用于芯片内部用于图像处理的缓存压缩,这一类的压缩目的为了降低硬件存储和带宽资源,但是不能有明显的图像损伤。所以压缩率通常不会太高,一般在2-3倍左右。此外其最小压缩单元需对齐内存颗粒整数倍,并且会要求支持随机存取。在CBR模式下,可以直接通过地址偏移获取编码数据,而VBR的模式下需要额外存储地址位置信息来实现随机存取。
当下,现有方案都是用于视觉无损图像的压缩,有的是对YUV数据的处理,还有的是对bayer数据的处理。对于压缩编码,大致流程都包括预测,量化,熵编码,码流控制等模块。为了实现更高的压缩质量和压缩率,码流控制算法是一个关键模块,其可以合理分配图像不同纹理区域的压缩,达到主观质量和压缩率的平衡。然而,在现有的图像压缩方案中,码流控制整体上灵活度不够,在压缩率较高的时候,平坦区域容易出现色阶分层等现象。
为了解决相关技术中存在的问题,本公开提出一种图像编码方法,充分考虑了纹理编码特性,编码过程中通过动态的调整码长,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
在介绍本公开的详细方案之前,先对本公开方案所应用的场景进行描述。图1为一个实施例中图像编码方法的应用场景图。如图1所示,该应用场景中包括电子设备104,电子设备104中可安装摄像头模组,还可以安装若干个应用程序。应用程序可发起获取图像的图像采集指令,由摄像头模组采集图像102。其中,摄像头模组可以包括前置摄像头模组和/或后置摄像头模组。最后将目标图像发送给目标应用程序。其中,电子设备104可为智能手机、平板电脑、个人数字助理、穿戴式设备等。
在一些可选实施例中,上述电子设备还可以是车载设备或车联网设备,例如智能汽车等,在本公开中仅以智能手机为例,但并不代表其限制本公开的范围。
电子设备上可以安装摄像头,并通过安装的摄像头获取图像。摄像头可以根据获取的图像的不同分为激光摄像头、可见光摄像头等类型,激光摄像头可以获取激光照射到物体上所形成的图像,可见光图像可以获取可见光照射到物体上所形成的图像。电子设备上可以安装若干个摄像头,且安装的位置不做限定。例如,可以在电子设备的正面面板上安装一个摄像头,在背面面板上安装两个摄像头,摄像头还可以以内嵌的方式安装于电子设备的内部,然后通过旋转或滑动的方式打开摄像头。具体地,电子设备上可安装前置摄像头和后置摄像头,前置摄像头和后置摄像头可以从不同的视角获取图像,一般前置摄像头可以从电子设备的正面视角获取图像,后置摄像头可以从电子设备的背面视角获取图像。
应当理解的是,本公开中,前置摄像头或后置摄像头仅作为示例用于区分不同摄像头的拍摄角度,而非限制多个摄像头的功能,本公开中的多个摄像头可以同时为后置摄像头或同时为前置摄像头,在本宫开中不予限制。
电子设备中可安全若干个应用程序,应用程序是指电子设备中针对某种应用目的所撰写的软体,电子设备可以通过应用程序实现对用户的需求服务。当应用程序需要采集图像的时候,会发起图像采集指令,电子设备会根据图像采集指令调用摄像头模组,采集图像。图像采集指令是指用于触发图像采集操作的指令。
电子设备中还设置有处理器,处理器中的图像编码模组可以对摄像头模组采集到的图像进行处理,例如,执行本公开提供的图像编码方法。
图2为本公开实施例提供的一种图像编码方法的流程图。如图2所示,该图像编码方法包括步骤201-204。
步骤201,对图像的条块进行图像纹理分析,获取图像纹理信息。
应当说明的是,本方案主要用于降低硬件处理图像时的带宽和存储,其对方案有低延时、低复杂度、随机存储的要求。
在本公开中,根据随机存取的要求,需要把图像分成若干随机存取的小条块(Tile)。具体地,可以在从水平和垂直方向将图像分割为若干个矩形区域,把这些矩形区域称为条块,一幅图像可以划分为至少一个条块。
在本公开中,对需要编码的条块进行图像纹理分析,获取图像纹理信息,用于划分子块以及确定调整因子,例如可以通过对各条块内图像纹理的分析,提取需要编码条块中每个像素的像素梯度信息,并基于像素梯度信息取位宽数,将像素梯度信息与位宽数其作为后续划分子块以及确定码长调整因子的基础。
步骤202,基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块。
本公开中,编码单元是等分的,每个编码单元中采用不同的子块划分方式,例如有的编码单元划分为4乘4的方块,有的编码单元划分为8乘2的长条。
本公开中,对每个编码单元的子块划分方式会预设几种划分方式,选择使每个编码单元内部更为平坦的划分方式作为最终划分方式。
本公开中,基于图像纹理信息,选择每个编码单元的子块划分方式,举例而言,可以基于每个像素的像素梯度信息,在几种预设的划分方式中,计算划分后的每一个编码单元内的均方误差(mean-square error,MSE),以均方误差最小的划分方式为最终划分依据。
步骤203,针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长。
本公开中,调整因子决定给每一个子块分配的码长的调整系数,可以基于步骤201纹理分析得到的纹理信息计算获得,举例而言,根据每个像素的位宽,计算子块内最小方向梯度位宽数之和与平均每个子块内最小方向梯度位宽数的比值作为基础调整系数,为了避免出现极端情况,采用对数映射对系数增加约束,最终确定调整系数。
本公开中,每个条块有预设的目标码长,条块的目标码长除以子块的个数可以得到初始化的平均码长,根据平均码长与每个子块的调整因子可以确定每个子块的目标码长。
步骤204,基于目标码长,对各个子块进行编码。
本公开的实施例中,确定目标码率之后,会在不同编码模式、不同量化参数(quantization parameter,QP)之间遍历,匹配合适的码长。
本公开的实施例中,基于目标码长,对各个子块进行编码,在编码前期允许一定程度的超过目标码长,但需要满足量化参数上的约束以保持画质的稳定,例如最多只能下降一个量化参数,且与前一个块的量化参数差距不能过大。在编码后期码流控制的力度会逐渐减弱,会逐渐趋近于严格按照目标码长编码。
综上,根据本公开提出的图像编码方法,对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码,充分考虑了纹理编码特性,编码过程中通过动态的调整码长,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
基于图2所示的实施例,图3进一步示出本公开提出的一种图像编码方法的流程图。基于图2所示的实施例,图3包括如下步骤。为了便于理解,图4示出本公开提供的一种图像编码方法的流程示意图。
步骤301,对图像的条块进行图像纹理分析,获取图像纹理信息。
本公开中,由于随机存取的要求,需要把图像分成若干随机存取的小条块,压缩后会存放到指定的地址单元当中。考虑到图像处理缓存大小,条块一般不会超过4x128。
在本公开的实施例中,对图像的条块进行图像纹理分析,获取图像纹理信息包括:提取条块中像素的梯度信息;基于梯度信息,确定条块中每个像素的最小方向梯度;确定每个像素的最小方向梯度对应的位宽。
应当说明的是,按照像素编码的顺序和特性,提取条块的上、左上、右上和左像素,以确定梯度或位宽。
具体地,通过对条块内图像纹理信息的分析,提取上,左上,右上,左像素与当前像素梯度信息(grad),基于梯度信息,确定条块中每个像素的最小方向梯度,并保存最小方向梯度,再对每个像素的最小方向梯度取对应的位宽。
在本公开的一些实施例中,确定每个像素的最小方向梯度对应的位宽包括:当最小方向梯度大于零时,根据预设公式确定位宽;当最小方向梯度等于零时,确定位宽为1。
具体地,当grad大于0的时候可以用表达式floor(log2(grad))+1)计算,当grad等于0的时候,位宽取1。
应当说明的是,取位宽数的目的是因为对编码影响的主要是数值的位宽而不是数值本身的大小,每个像素的梯度信息和对应的位宽将作为下述划分子块以及确定码长调整因子的基础。
在本公开的实施例中,图像纹理信息至少包括条块中每个像素的最小方向梯度,基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块包括步骤302-304。
应当说明的是,在采用步骤302-304方法划分子块时,通过步骤301获取到的图像纹理信息至少包括条块中每个像素的最小方向梯度。
步骤302,将条块等分为多个编码单元。
在本公开中,采用等分的方式将条块分为多个编码单元,每个编码单元的大小是一致的。
步骤303,根据每个编码单元的图像纹理信息,确定每个编码单元的梯度均方差。
步骤304,基于梯度均方差,将编码单元划分为多个子块。
在本公开的实施例中,基于梯度均方差,将编码单元划分为多个子块包括:根据每个编码单元的图像纹理信息,确定编码单元的多种子块划分方式;确定编码单元在每种子块划分方式下的梯度均方差;选择最小梯度均方差对应的子块划分方式,将编码单元划分为多个子块,其中,不同的编码单元划分得到的子块形状与个数不同。
应当说明的是,划分编码单元的目的在于,在每个编码单元中采用不同的划分方式划分子块,不同的编码单元划分得到的子块形状与个数不同。
在本公开中,对每个编码单元的子块划分方式会预设几种划分方式,根据图像纹理信息选择最终将编码单元划分为子块的划分方式。
具体地,对编码的划分方式会预设几种方式如方块(4x4)或长条(8x2)等,并根据步骤301获取的像素梯度信息,计算划分后的每一个编码单元内的梯度均方误差,以梯度均方误差最小的划分方式为最终子块划分方式,并写入码流。由此,每一个编码单元可以得到不同的量化系数,且每个编码单元内部相对平坦,以便减少码流长度。
步骤305,针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长。
步骤306:基于目标码长,对各个子块进行编码。
在本公开的实施例中,针对每个子块确定调整因子包括:将每个子块内各像素的最小方向梯度相加,以确定子块的梯度总和;将条块内各像素的最小方向梯度相加并除以多个子块的个数,以确定平均梯度;将梯度总和与平均梯度的比值,确定为子块的初始因子;对初始因子进行对数映射处理,以得到子块的调整因子。
具体地,将梯度总和与平均梯度的比值,作为为子块的初始因子。通过步骤301可以获得条块内每个像素最小方向梯度位宽,将每个子块内各像素的最小方向梯度相加,可以得到子块的梯度总和,将条块内各像素的最小方向梯度相加并除以多个子块的个数,可以得到平均梯度。为了避免出现极端情况,例如在码控时,调整因子过高或者过低的话容易产生图像质量的剧烈波动,因此需要对初始因子增加约束,约束的范围为[1/2,2],采用对数方式映射,如图5所示对数坐标系,f(x)=1/4(0<x≤1/4);f(x)=2(x>4),其中x为初始因子,f(x)为对初始因子约束后得到的调整因子。
应当说明的是,由于对数映射不利于硬件实现,可以采用分段查表取代直接计算的形式,更加方便,根据实际需求确定表的大小。
在本公开的实施例中,基于调整因子确定每个子块的目标码长包括:根据多个子块的编码顺序以及多个子块的个数,将多个子块划分为第一组子块和第二组子块;以保证图像质量为原则,确定第一组子块中各个子块的目标码长;以保证编码收敛为原则,确定第二组子块中各个子块的目标码长,其中,第一组子块的编码顺序先于第二组子块的编码顺序,第二组子块中子块的个数大于等于2且小于等于多个子块个数的一半。
应当说明的是,在编码前期,以保证图像质量为原则确定目标码长,在编码后期,由于条块的预设码长一定,为了避免出现没***长可用的情况,在后期子块个数还有2到所有子块个数一半之间的时候,根据实际情况,以保证编码收敛为原则确定目标码长,以保证剩下的子块都可以完成编码。
在本公开的一些实施例中,以保证图像质量为原则,确定第一组子块中各个子块的目标码长包括:获取条块的预设码长;将预设码长除以多个子块的个数,得到初始平均码长,作为第一个子块的基础码长;将基础码长乘以第一个子块的调整因子,以得到第一个子块的目标码长;基于剩余码长和剩余子块的个数,确定剩余子块的目标码长,直至第一组子块中最后一个子块。
在本公开的实施例中,基于剩余码长和剩余子块的个数,确定剩余子块的目标码长包括:将预设码长减去已编码子块的目标码长,作为剩余码长;将多个子块的个数减去已编码子块的个数,作为剩余子块的个数;将剩余码长与剩余子块的个数的比值,作为下一个编码的子块的基础码长;将下一个编码的子块的基础码长与调整因子的乘积,作为下一个编码的子块的目标码长。
具体地,每个条块有预设码长,将预设码长除以条块中划分子块的个数,得到初始平均码长,作为第一个子块的基础码长,将基础码长乘以第一个子块的调整因子,以得到第一个子块的目标码长。第一个子块编码后,基础码长减去第一个子块的目标码长得到剩余码长,将子块个数减一得到剩余子块的个数,剩余码长除以剩余子块的个数可以得到第二个子块的基础码长,将基础码和第二个子块的调整因子的乘积,作为第一个子块的目标码长,类似地,可以得到第三个、第四个子块的目标码长等,直到所有需要编码的子块编码完。
在本公开的一些实施例中,该方法还包括:在不同的编码模式和不同的量化参数下进行遍历,按照预设规则,对各个子块的目标码长进行动态调整,其中,预设规则为:对当前子块进行编码所使用的目标码长对应的量化参数与上一个子块进行编码所使用的目标码长对应的量化参数之间的差值落入区间[-1,2]。
应当说明的是,使用不同量化参数将对应不同的码长,在编码时,会在不同编码模式、不同量化参数之间遍历,选择以最接近目标码长的量化参数编码,大多时候不能实现完全等于目标码长,为保证画质的稳定对子块使用的量化参数设定了预设规则,按照预设规则,对各个子块的目标码长进行动态调整。
在本公开的实施例中,预设规则包括对子块使用的量化参数的下降约束和上升约束,当前子块进行编码与上一个子块进行编码,最多只能下降一个量化参数,最多只能上升两个量化参数。
在本公开的实施例中,以保证编码收敛为原则,确定第二组子块中各个子块的目标码长包括:将预设码长减去第一组子块中各个子块的目标码长之和,作为第二组子块的总码长;将总码长与第二组的子块数量的比值,作为第二组子块中每个子块的目标码长。
可以理解的是,在编码前期即对第一组子块以保证图像质量为原则确定目标编码,每编码完成一个子块将重新计算平均码长,并乘以当前编码的子块的调整因子来确定其目标码长,可以更好地保证图像质量;在编码后期为了防止条块预设的码长使用完,对第二组子块以保证编码收敛为原则确定目标码长,直接计算第二组剩余子块地平均码长作为每个子块地目标码长,以保证第二组子块都可以完成编码。
综上,本公开提出的图像编码方法,对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码,充分考虑了纹理编码特性,编码过程中通过进行码长的动态调整,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
图6为本公开实施例提供的一种图像编码装置400的结构示意图。如图6所示,该图像编码装置包括:
获取模块410,用于对图像的条块进行图像纹理分析,获取图像纹理信息;划分模块420,用于基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;确定模块430,用于针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;编码模块440,用于基于目标码长,对各个子块进行编码。
在一些实施例中,获取模块410具体用于:提取条块中像素的梯度信息;基于梯度信息,确定条块中每个像素的最小方向梯度;确定每个像素的最小方向梯度对应的位宽。
在一些实施例中,确定每个像素的最小方向梯度对应的位宽包括:当最小方向梯度大于零时,根据预设公式确定位宽;当最小方向梯度等于零时,确定位宽为1。
在一些实施例中,图像纹理信息至少包括条块中每个像素的最小方向梯度,划分模块420具体用于:将条块等分为多个编码单元;根据每个编码单元的图像纹理信息,确定每个编码单元的梯度均方差;基于梯度均方差,将编码单元划分为多个子块。
在一些实施例中,划分模块420具体用于:根据每个编码单元的图像纹理信息,确定编码单元的多种子块划分方式;确定编码单元在每种子块划分方式下的梯度均方差;选择最小梯度均方差对应的子块划分方式,将编码单元划分为多个子块,其中,不同的编码单元划分得到的子块形状与个数不同。
在一些实施例中,确定模块430具体用于:将每个子块内各像素的最小方向梯度相加,以确定子块的梯度总和;将条块内各像素的最小方向梯度相加并除以多个子块的个数,以确定平均梯度;将梯度总和与平均梯度的比值,确定为子块的初始因子;对初始因子进行对数映射处理,以得到子块的调整因子。
在一些实施例中,确定模块430具体用于:根据多个子块的编码顺序以及多个子块的个数,将多个子块划分为第一组子块和第二组子块;以保证图像质量为原则,确定第一组子块中各个子块的目标码长;以保证编码收敛为原则,确定第二组子块中各个子块的目标码长,其中,第一组子块的编码顺序先于第二组子块的编码顺序,第二组子块中子块的个数大于等于2且小于等于多个子块个数的一半。
在一些实施例中,以保证图像质量为原则,确定第一组子块中各个子块的目标码长包括:获取条块的预设码长;将预设码长除以多个子块的个数,得到初始平均码长,作为第一个子块的基础码长;将基础码长乘以第一个子块的调整因子,以得到第一个子块的目标码长;基于剩余码长和剩余子块的个数,确定剩余子块的目标码长,直至第一组子块中最后一个子块。
在一些实施例中,基于剩余码长和剩余子块的个数,确定剩余子块的目标码长包括:将预设码长减去已编码子块的目标码长,作为剩余码长;将多个子块的个数减去已编码子块的个数,作为剩余子块的个数;将剩余码长与剩余子块的个数的比值,作为下一个编码的子块的基础码长;将下一个编码的子块的基础码长与调整因子的乘积,作为下一个编码的子块的目标码长。
在一些实施例中,确定模块430还用于:在不同的编码模式和不同的量化参数下进行遍历,按照预设规则,对各个子块的目标码长进行动态调整,其中,预设规则为:对当前子块进行编码所使用的目标码长对应的量化参数与上一个子块进行编码所使用的目标码长对应的量化参数之间的差值落入区间[-1,2]。
在一些实施例中,以保证编码收敛为原则,确定第二组子块中各个子块的目标码长包括:将预设码长减去第一组子块中各个子块的目标码长之和,作为第二组子块的总码长;将总码长与第二组的子块数量的比值,作为第二组子块中每个子块的目标码长。
由于本公开实施例提供的装置与上述几种实施例提供的方法相对应,因此方法的实施方式也适用于本实施例提供的装置,在本实施例中不再详细描述。
综上,本公开提出的图像编码装置,对图像的条块进行图像纹理分析,获取图像纹理信息;基于图像纹理信息,将条块划分为多个编码单元,并将每个编码单元划分为多个子块;针对每个子块确定调整因子,并基于调整因子确定每个子块的目标码长;基于目标码长,对各个子块进行编码,充分考虑了纹理编码特性,编码过程中通过动态的调整码长,可以实现平滑过度,避免部分区域出现较明显的画质损伤,更加灵活稳定。
上述本申请提供的实施例中,对本申请实施例提供的方法及装置进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构、软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能可以以硬件结构、软件模块、或者硬件结构加软件模块的方式来执行。
图7是根据一示例性实施例示出的一种用于实现上述图像编码方法的电子设备500的框图。例如,电子设备500可以是移动电话,计算机,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,电子设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制电子设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在电子设备500的操作。这些数据的示例包括用于在电子设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为电子设备500的各种组件提供电力。电源组件506可以包括电源管理***,一个或多个电源,及其他与为电子设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在电子设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当电子设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当电子设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为电子设备500提供各个方面的状态评估。例如,传感器组件514可以检测到电子设备500的打开/关闭状态,组件的相对定位,例如组件为电子设备500的显示器和小键盘,传感器组件514还可以检测电子设备500或电子设备500一个组件的位置改变,用户与电子设备500接触的存在或不存在,电子设备500方位或加速/减速和电子设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于电子设备500和其他设备之间有线或无线方式的通信。电子设备500可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G LTE、5G NR(NewRadio)或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由电子设备500的处理器520执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开的实施例还提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开上述实施例中描述的图像编码方法。
本公开的实施例还提出一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行本公开上述实施例中描述的图像编码方法。
本公开的实施例还提出了一种芯片,该芯片包括一个或多个接口电路和一个或多个处理器;接口电路用于接收代码指令并传输至上述处理器;处理器用于执行代码指令以执行本公开上述实施例中描述的图像编码方法。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本说明书的描述中,参考术语“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理模块的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(控制方法),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施实施进行变化、修改、替换和变型。

Claims (16)

1.一种图像编码方法,其特征在于,所述方法包括:
对图像的条块进行图像纹理分析,获取图像纹理信息;
基于所述图像纹理信息,将所述条块划分为多个编码单元,并将每个编码单元划分为多个子块;
针对每个子块确定调整因子,并基于所述调整因子确定每个子块的目标码长;
基于所述目标码长,对各个子块进行编码。
2.根据权利要求1所述的方法,其特征在于,所述对图像的条块进行图像纹理分析,获取图像纹理信息包括:
提取所述条块中像素的梯度信息;
基于所述梯度信息,确定所述条块中每个像素的最小方向梯度;
确定所述每个像素的最小方向梯度对应的位宽。
3.根据权利要求2所述的方法,其特征在于,所述确定所述每个像素的最小方向梯度对应的位宽包括:
当所述最小方向梯度大于零时,根据预设公式确定所述位宽;
当所述最小方向梯度等于零时,确定所述位宽为1。
4.根据权利要求1所述的方法,其特征在于,所述图像纹理信息至少包括所述条块中每个像素的最小方向梯度,所述基于所述图像纹理信息,将所述条块划分为多个编码单元,并将每个编码单元划分为多个子块包括:
将所述条块等分为多个编码单元;
根据每个编码单元的图像纹理信息,确定每个编码单元的梯度均方差;
基于所述梯度均方差,将所述编码单元划分为多个子块。
5.根据权利要求4所述的方法,其特征在于,所述基于所述梯度均方差,将所述编码单元划分为多个子块包括:
根据每个编码单元的图像纹理信息,确定所述编码单元的多种子块划分方式;
确定所述编码单元在每种子块划分方式下的梯度均方差;
选择最小梯度均方差对应的子块划分方式,将所述编码单元划分为多个子块,
其中,不同的编码单元划分得到的子块形状与个数不同。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述针对每个子块确定调整因子包括:
将每个子块内各像素的最小方向梯度相加,以确定所述子块的梯度总和;
将所述条块内各像素的最小方向梯度相加并除以所述多个子块的个数,以确定平均梯度;
将所述梯度总和与所述平均梯度的比值,确定为所述子块的初始因子;
对所述初始因子进行对数映射处理,以得到所述子块的调整因子。
7.根据权利要求1所述的方法,其特征在于,所述基于所述调整因子确定每个子块的目标码长包括:
根据所述多个子块的编码顺序以及所述多个子块的个数,将所述多个子块划分为第一组子块和第二组子块;
以保证图像质量为原则,确定所述第一组子块中各个子块的目标码长;
以保证编码收敛为原则,确定所述第二组子块中各个子块的目标码长,
其中,所述第一组子块的编码顺序先于所述第二组子块的编码顺序,所述第二组子块中子块的个数大于等于2且小于等于所述多个子块个数的一半。
8.根据权利要求7所述的方法,其特征在于,所述以保证图像质量为原则,确定所述第一组子块中各个子块的目标码长包括:
获取所述条块的预设码长;
将所述预设码长除以所述多个子块的个数,得到初始平均码长,作为第一个子块的基础码长;
将所述基础码长乘以所述第一个子块的调整因子,以得到所述第一个子块的目标码长;
基于剩余码长和剩余子块的个数,确定剩余子块的目标码长,直至所述第一组子块中最后一个子块。
9.根据权利要求8所述的方法,其特征在于,所述基于剩余码长和剩余子块的个数,确定剩余子块的目标码长包括:
将所述预设码长减去已编码子块的目标码长,作为所述剩余码长;
将所述多个子块的个数减去已编码子块的个数,作为剩余子块的个数;
将所述剩余码长与所述剩余子块的个数的比值,作为下一个编码的子块的基础码长;
将所述下一个编码的子块的基础码长与调整因子的乘积,作为所述下一个编码的子块的目标码长。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在不同的编码模式和不同的量化参数下进行遍历,按照预设规则,对各个子块的目标码长进行动态调整,
其中,所述预设规则为:对当前子块进行编码所使用的目标码长对应的量化参数与上一个子块进行编码所使用的目标码长对应的量化参数之间的差值落入区间[-1,2]。
11.根据权利要求7至10中任一项所述的方法,其特征在于,所述以保证编码收敛为原则,确定所述第二组子块中各个子块的目标码长包括:
将所述预设码长减去第一组子块中各个子块的目标码长之和,作为第二组子块的总码长;
将所述总码长与所述第二组的子块数量的比值,作为所述第二组子块中每个子块的目标码长。
12.一种图像编码装置,其特征在于,所述装置包括:
获取模块,用于对图像的条块进行图像纹理分析,获取图像纹理信息;
划分模块,用于基于所述图像纹理信息,将所述条块划分为多个编码单元,并将每个编码单元划分为多个子块;
确定模块,用于针对每个子块确定调整因子,并基于所述调整因子确定每个子块的目标码长;
编码模块,用于基于所述目标码长,对各个子块进行编码。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。
15.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11中任一项所述的方法。
16.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令,当所述处理器执行所述计算机指令时,使得所述电子设备执行权利要求1-11中任一项所述的方法。
CN202211599018.9A 2022-12-12 2022-12-12 一种图像编码方法、装置、电子设备、芯片及存储介质 Pending CN118200580A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211599018.9A CN118200580A (zh) 2022-12-12 2022-12-12 一种图像编码方法、装置、电子设备、芯片及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211599018.9A CN118200580A (zh) 2022-12-12 2022-12-12 一种图像编码方法、装置、电子设备、芯片及存储介质

Publications (1)

Publication Number Publication Date
CN118200580A true CN118200580A (zh) 2024-06-14

Family

ID=91412699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211599018.9A Pending CN118200580A (zh) 2022-12-12 2022-12-12 一种图像编码方法、装置、电子设备、芯片及存储介质

Country Status (1)

Country Link
CN (1) CN118200580A (zh)

Similar Documents

Publication Publication Date Title
EP3171596B1 (en) Image compression with adaptive quantization of regions of interest (roi)
CN110267036B (zh) 一种滤波方法及设备
CN108391127B (zh) 视频编码方法、装置、存储介质及设备
CN106412702B (zh) 一种视频片段的截取方法和装置
KR20170101872A (ko) 인터 예측의 참조영상을 결정하는 방법과 그 장치
EP4007289A1 (en) Video uploading method and apparatus, electronic device, and storage medium
KR20130094633A (ko) 카메라의 프레임 이미지 전송 장치 및 방법
KR20150068192A (ko) 클라우드 서버 기반 영상 처리 방법, 단말 및 시스템
WO2020175298A1 (ja) 撮像装置、画像処理装置、それらの制御方法、プログラム
CN113099233B (zh) 视频编码方法、装置、视频编码设备及存储介质
KR20160136310A (ko) 3d 영상에 관련된 블록의 파티션 경계에서 필터링 수행 방법
CN113810685A (zh) 视频数据的编码方法、装置、设备、存储介质及程序产品
KR20170027508A (ko) 율―왜곡 최적화 기반의 양자화 방법 및 그 장치
CN112738516A (zh) 编码方法、装置、存储介质及电子设备
CN115052150A (zh) 视频编码方法、装置、电子设备和存储介质
CN113727105B (zh) 一种深度图压缩方法、装置、***及存储介质
CN111953980B (zh) 视频处理方法及装置
CN118200580A (zh) 一种图像编码方法、装置、电子设备、芯片及存储介质
CN110990088A (zh) 数据处理方法及相关设备
CN115623215A (zh) 一种播放视频的方法、电子设备和计算机可读存储介质
JP2011129995A (ja) 通信端末装置、通信端末装置の画像処理方法およびプログラム、画像通信システム
CN117057995B (zh) 图像处理方法、装置、芯片、电子设备及存储介质
CN117676170A (zh) 块效应检测的方法、装置、设备和存储介质
CN116438794B (zh) 图像压缩方法、装置、电子设备、芯片及储存介质
CN111246123B (zh) 图像处理方法及相关产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination