图像编解码方法及设备

文档序号:156342 发布日期:2021-10-26 浏览:30次 >En<

阅读说明:本技术 图像编解码方法及设备 (Image coding and decoding method and device ) 是由 郭鲲 于 2021-06-01 设计创作,主要内容包括:本发明提供一种图像编解码方法及设备,涉及图像处理技术领域,能够解决H.264和H.265编码标准对图像进行无损编码时编码码流较大的问题。具体技术方案为:获取当前图像帧;对当前图像帧进行有损编码,得到第一编码码流;确定当前图像帧中的无损编码宏块,该无损编码宏块为当前图像帧中与其前一帧图像相同位置的像素完全相同但与前一帧图像的上一帧图像相同位置的像素不完全相同的宏块;对当前图像帧中的无损编码宏块的残差数据进行无损编码,得到第二编码码流;打包第一编码码流和第二编码码流,得到当前图像帧的编码码流。本发明用于图像编解码。(The invention provides an image coding and decoding method and equipment, relates to the technical field of image processing, and can solve the problem that a coding code stream is large when lossless coding is carried out on an image by H.264 and H.265 coding standards. The specific technical scheme is as follows: acquiring a current image frame; performing lossy coding on a current image frame to obtain a first coding code stream; determining a lossless coding macro block in a current image frame, wherein the lossless coding macro block is a macro block which has the same pixels with the same positions of the previous image frame but has not the same pixels with the same positions of the previous image frame in the current image frame; carrying out lossless coding on residual data of a lossless coding macro block in a current image frame to obtain a second coding code stream; and packing the first coding code stream and the second coding code stream to obtain the coding code stream of the current image frame. The invention is used for image coding and decoding.)

图像编解码方法及设备

技术领域

本发明涉及图像处理技术领域,尤其涉及图像编解码方法及设备。

背景技术

对视频图像的编码有多种方式,常用的比如有H.264编码、H.265编码等。其中,H.264编码是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码标准。H.265编码是ITU-T VCEG继H.264编码之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置,具体包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H.264编码由于算法优化,可以低于1Mbps的速度实现标清(分辨率在1280P*720以下)数字图像传送;H.265编码则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。

目前,采用H.264和H.265编码标准对图像进行无损编码时,会对每一帧图像都使用无损编码,这便导致编码码流非常大。

发明内容

本发明实施例提供一种图像编解码方法及设备,能够解决H.264和H.265编码标准对图像进行无损编码时编码码流较大的问题。所述技术方案如下:

根据本发明实施例的第一方面,提供一种图像编码方法,该方法包括:

获取当前图像帧;

对所述当前图像帧进行有损编码,得到第一编码码流;

确定所述当前图像帧中的无损编码宏块,所述无损编码宏块为所述当前图像帧中与其前一帧图像相同位置的像素完全相同但与所述前一帧图像的上一帧图像相同位置的像素不完全相同的宏块;

对所述当前图像帧中的无损编码宏块的残差数据进行无损编码,得到第二编码码流;

打包所述第一编码码流和所述第二编码码流,得到所述当前图像帧的编码码流。

本发明实施例提供的图像编码方法通过先对当前图像帧进行有损编码,再确定当前图像帧中的无损编码宏块并对该无损编码宏块的残差数据进行无损编码,最后将分别得到的第一编码码流和第二编码码流进行打包,从而得到当前图像帧的编码码流,能够在编码过程中对图像变化的部分进行有损编码,通过有损编码降低了编码码流,对图像没有变化的部分的残差数据进行无损编码,保证了图像的质量。

在一个实施例中,所述确定所述当前图像帧中的无损编码宏块包括:

确定所述当前图像帧与其前一帧图像相同位置的像素完全相同的宏块,得到第一宏块组;

确定所述当前图像帧与所述前一帧图像的上一帧图像相同位置的像素完全相同的宏块,得到第二宏块组;

根据所述第一宏块组和所述第二宏块组确定所述当前图像帧中的无损编码宏块。

在一个实施例中,所述根据所述第一宏块组和所述第二宏块组确定所述当前图像帧中的无损编码宏块包括:

确定所述第一宏块组和所述第二宏块组中相同的宏块,得到第三宏块组;

从所述第一宏块组中除去所述第三宏块组中的宏块,得到所述当前图像帧中的无损编码宏块。

在一个实施例中,所述在对所述当前图像帧中的无损编码宏块的残差数据进行无损编码时,所述方法还包括:

对所述第三宏块组中所有宏块的位置信息进行无损编码。

在一个实施例中,所述对所述当前图像帧中的无损编码宏块的残差数据进行无损编码包括:

获取所述第一编码码流的重建帧;

利用所述第一编码码流的重建帧计算所述当前图像帧中的无损编码宏块的残差,得到残差数据;

对所述当前图像帧中的无损编码宏块的残差数据和位置信息进行无损编码。

在一个实施例中,在所述得到所述当前图像帧的编码码流之后,所述方法还包括:

将所述当前图像帧的编码码流发送给解码端,和/或存储所述当前图像帧的编码码流。

根据本发明实施例的第二方面,提供一种图像解码方法,该方法包括:

获取当前帧编码码流;

确定所述当前帧编码码流中的第一编码码流和第二编码码流,所述第一编码码流为有损编码码流,所述第二编码码流为无损编码码流;

对所述第一编码码流进行解码,得到所述第一编码码流的重建帧;

对所述第二编码码流进行解码,得到宏块的位置信息和残差数据;

根据所述重建帧、所述宏块的位置信息和所述残差数据确定所述当前帧编码码流对应的解码图像。

本发明实施例提供的图像解码方法,获取到的当前帧编码码流中由有损编码码流和无损编码码流构成,相较于全部是无损编码码流而言,码流较小;通过对有损编码码流和无损编码码流分别进行解码,根据解码结果可以确定出当前帧编码码流对应的解码图像。

在一个实施例中,所述根据所述重建帧、所述宏块的位置信息和所述残差数据确定所述当前帧编码码流对应的解码图像包括:

遍历所述重建帧中的所有宏块;

若当前宏块仅有残差数据而无位置信息,则解码图像中对应宏块为所述当前宏块与所述残差数据之和;

若当前宏块没有残差数据和位置信息,则解码图像中对应宏块为所述当前宏块;

若当前宏块仅有位置信息而无残差数据,则解码图像中对应宏块为上一重建帧中对应的宏块。

在一个实施例中,在所述根据所述重建帧、所述宏块的位置信息和所述残差数据确定所述当前帧编码码流对应的解码图像之后,该方法还包括:

显示所述解码图像,和/或存储所述解码图像。

根据本发明实施例的第三方面,提供一种图像编码设备,该图像编码设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述计算机指令由所述处理器加载并执行以实现如上任一实施例所述的图像编码方法中所执行的步骤。

根据本发明实施例的第四方面,提供一种图像解码设备,该图像解码设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述计算机指令由所述处理器加载并执行以实现如上任一实施例所述的图像解码方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本发明实施例提供的一种图像编码方法的流程图;

图2是本发明实施例提供的一种确定当前图像帧中无损编码宏块的原理图;

图3是本发明实施例提供的一种图像解码方法的流程图;

图4是本发明实施例提供的一种图像编码装置的结构示意图;

图5是本发明实施例提供的一种图像编码装置的结构示意图;

图6是本发明实施例提供的一种图像编码装置的结构示意图;

图7是本发明实施例提供的一种图像编码装置的结构示意图;

图8是本发明实施例提供的一种图像编码装置的结构示意图;

图9是本发明实施例提供的一种图像解码装置的结构示意图;

图10是本发明实施例提供的一种图像编码设备的结构示意图;

图11是本发明实施例提供的一种图像解码设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

通常,人眼对变化部分的图像质量要求低于静止部分的图像质量。因此,在本申请实施例中,对图像变化的部分使用有损编码以降低码流,没有变化的部分的残差使用无损编码以保证图像质量。

本发明实施例提供一种图像编码方法,该方法可以应用于图像编码设备,如图1所示,该图像编码方法可以包括以下步骤:

步骤101:获取当前图像帧。

每一图像帧均包括多个宏块,其中每个宏块包括N*M个像素点。其中,N和M都是大于1的整数。

在一种可选的实施方式中,N和M相等,也就是说,每一帧都按照N*N像素拆分成若干互不重叠的正方形区域,每个N*N区域称为一个宏块。

在编码过程中,记当前图像帧为Ft,Ft的前一帧图像为Ft-1,Ft-1的上一帧图像为Ft-2

步骤102:对当前图像帧进行有损编码,得到第一编码码流。

可以使用H264视频编码器、265视频编码器或其他视频编码器,或者其他的编码器对当前图像帧进行有损编码,得到当前图像帧的第一编码码流。本步骤对所使用的编码器不作限定。

步骤103:确定当前图像帧中的无损编码宏块。

其中,无损编码宏块为当前图像帧Ft中与其前一帧图像Ft-1相同位置的像素完全相同但与前一帧图像Ft-1的上一帧图像Ft-2相同位置的像素不完全相同的宏块。

具体的,确定当前图像帧中的无损编码宏块包括:确定当前图像帧与其前一帧图像相同位置的像素完全相同的宏块,得到第一宏块组;确定当前图像帧与前一帧图像的上一帧图像相同位置的像素完全相同的宏块,得到第二宏块组;根据第一宏块组和第二宏块组确定当前图像帧中的无损编码宏块。

在一种实施方式中,根据第一宏块组和第二宏块组确定当前图像帧中的无损编码宏块包括:确定第一宏块组和第二宏块组中相同的宏块,得到第三宏块组;从第一宏块组中除去第三宏块组中的宏块,得到当前图像帧中的无损编码宏块。

例如,以每一图像帧均包括2*2个宏块为例,如图2所示,其中(a)代表Ft-1的上一帧图像为Ft-2,(b)代表Ft的前一帧图像Ft-1,(c)代表当前图像帧Ft,对于每一图像帧,可以将四个宏块的位置分别标记为A11、A12、A21和A22。

根据图2所示,先找到(c)所示图像帧Ft和(b)所示图像帧Ft-1相同位置的像素完全相同的宏块,得到第一宏块组,记为S1,则S1为位置A12、A21和A22的宏块;接着找到(c)所示图像帧Ft和(a)所示图像帧Ft-2相同位置的像素完全相同的宏块,得到第二宏块组,记为S2,则S2为位置A12和A21的宏块;然后根据S1和S2确定(c)所示图像帧Ft中的无损编码宏块,具体的,可以先找到S1和S2中相同的宏块,得到第三宏块组,记为S3,则S3为A12和A21位置的宏块,然后从S1中去除S3所含的宏块,即可得到(c)所示图像帧Ft中的无损编码宏块,记为S,则S为A22位置的宏块。

步骤104:对当前图像帧中的无损编码宏块的残差数据进行无损编码,得到第二编码码流。

确定出当前图像帧中的无损编码宏块之后,对当前图像帧中的无损编码宏块的残差数据进行无损编码,得到第二编码码流。其中的无损编码可以包括熵编码或游程编码等编码方法。

具体的,对当前图像帧中的无损编码宏块的残差数据进行无损编码包括:获取第一编码码流的重建帧;利用第一编码码流的重建帧计算当前图像帧中的无损编码宏块的残差,得到残差数据;对当前图像帧中的无损编码宏块的残差数据和位置信息进行无损编码。

其中,获取第一编码码流的重建帧可以是调用解码器对第一编码码流进行解码后得到重建帧。通常,编码器可以留有重建帧接口,通过该接口可以直接读取到重建帧,具体的,编码过程中可以根据解码算法对量化后的像素做反量化和反变换得到重建帧,则,获取第一编码码流的重建帧也可以是从对当前图像帧进行有损编码的编码器中直接读取第一编码码流的重建帧。获取到的第一编码码流的重建帧可以记为F’t

在对当前图像帧中的无损编码宏块的残差数据进行无损编码时,该方法还包括对第三宏块组中所有宏块的位置信息进行无损编码。

例如,在图2所示的图像帧中,在得到(c)所示图像帧Ft中的无损编码宏块S之后,可以利用公式R=Ft–F’t计算S中所有宏块的残差数据,其中R为得到的残差数据。这里的公式对图像帧Ft中所有宏块计算残差,由于S是Ft的一部分,因此得到所有宏块残差后即可从中得到无损编码宏块S的残差数据。得到S中所有宏块的残差数据之后,对S中所有宏块的位置信息和残差数据进行变换和无损编码,同时对S3中所有宏块的位置信息进行无损编码。其中的变换包括傅里叶变换、小波变换或DCT(离散余弦变换)等变换方法。

其中,S3为A12和A21位置的宏块,是Ft、Ft-1和Ft-2中相同的宏块,是图像未变化的部分,由于在对图像帧Ft-1进行编码时已经对A12和A21位置的宏块的残差进行了无损编码,则在对图像帧Ft进行编码时,可以用图像帧Ft-1中A12和A21位置宏块的编码结果代替Ft中S3所含宏块的编码。基于此,对于图2所示图像帧Ft,将其与图像帧Ft-1相比,A11位置的宏块是图像中的变化部分,采用了有损编码,A12和A21位置的宏块是图像中没有变化的部分,用图像帧Ft-1中A12和A21位置的宏块的编码结果代替,其采用了残差的无损编码,A22位置的宏块是图像中没有变化的部分,采用了残差的无损编码。这样,对图像中变化的部分使用有损编码来降低码流,图像中没有变化的部分的残差使用无损编码,可以在降低编码码流的同时保证图像的质量。

步骤105:打包第一编码码流和第二编码码流,得到当前图像帧的编码码流。

得到第一编码码流和第二编码码流之后,对第一编码码流和第二编码码流进行打包,得到当前图像帧的编码码流。

在得到当前图像帧的编码码流之后,将当前图像帧的编码码流发送给解码端,和/或存储该当前图像帧的编码码流。

如果需要继续进行图像编码,则转到步骤101,否则结束流程。

本发明实施例提供的图像编码方法,通过先对当前图像帧进行有损编码,再确定当前图像帧中的无损编码宏块并对该无损编码宏块的残差数据进行无损编码,最后将分别得到的第一编码码流和第二编码码流进行打包,从而得到当前图像帧的编码码流。能够在编码过程中对图像变化的部分进行有损编码,通过有损编码降低编码码流,同时对图像没有变化的部分的残差数据进行无损编码,在保证图像质量的同时降低了编码码流。

基于上述图1对应的实施例提供的图像编码方法,本发明另一实施例提供一种图像解码方法,该方法可以应用于图像解码设备。参照图3所示,本实施例提供的图像解码方法可以包括以下步骤:

步骤301:获取当前帧编码码流。

可以从存储编码码流的存储器中读取一帧编码码流,或者接收编码端传输的一帧编码码流。

步骤302:确定当前帧编码码流中的第一编码码流和第二编码码流。

其中,第一编码码流为有损编码码流,第二编码码流为无损编码码流。

具体的,编码端在编码时对图像帧中所有宏块进行了有损编码,对图像帧中的无损编码宏块的残差进行了无损编码,对分别得到的第一编码码流和第二编码码流进行了打包处理。解码时,拆分获取到的当前帧编码码流中的第一编码码流和第二编码码流。

步骤303:对第一编码码流进行解码,得到第一编码码流的重建帧。

步骤304:对第二编码码流进行解码,得到宏块的位置信息和残差数据。

步骤305:根据重建帧、宏块的位置信息和残差数据确定当前帧编码码流对应的解码图像。

具体的,确定当前帧编码码流对应的解码图像包括:遍历重建帧中的所有宏块;若重建帧中当前宏块仅有残差数据而无位置信息,则解码图像中对应宏块为当前宏块与残差数据之和;若重建帧中当前宏块没有残差数据和位置信息,则解码图像中对应宏块为当前宏块;若重建帧中当前宏块仅有位置信息而无残差数据,则解码图像中对应宏块为上一重建帧中对应的宏块。

例如,以图2所示图像帧Ft的编码码流为例,拆分该编码码流中的第一编码码流和第二编码码流,对第一编码码流进行解码后可以得到Ft的重建帧F’t,对第二编码码流进行解码后可以得到宏块的位置信息和残差数据,解码可得到:A11位置的宏块没有位置信息,也没有残差数据;A12和A21位置的宏块仅有位置数据;A22位置的宏块仅有残差数据。那么,在当前帧编码码流对应的解码图像中,A11位置的宏块为重建帧F’t中A11位置的宏块,A12和A21位置的宏块为Ft-1的重建帧中A12和A21位置的宏块,A22位置的宏块为重建帧F’t中A22位置的宏块加上残差数据。

在得到当前帧编码码流对应的解码图像之后,显示该解码图像,或者存储该解码图像,亦或者显示该解码图像并存储该解码图像。

本发明实施例提供的图像解码方法,获取到的当前帧编码码流中由有损编码码流和无损编码码流构成,相较于全部是无损编码码流而言,码流较小;通过对有损编码码流和无损编码码流分别进行解码,根据解码结果可以确定出当前帧编码码流对应的解码图像。

基于上述图1和图3对应的实施例中所描述的图像编码方法和图像解码方法,下述为本发明装置实施例,可以用于执行本发明方法实施例。

本发明实施例提供一种图像编码装置,如图4所示,该图像编码装置40包括:获取模块401、第一编码模块402、确定模块403、第二编码模块404和合成模块405;

获取模块401用于获取当前图像帧;

第一编码模块402用于对当前图像帧进行有损编码,得到第一编码码流;

确定模块403用于确定当前图像帧中的无损编码宏块,该无损编码宏块为当前图像帧中与其前一帧图像相同位置的像素完全相同但与前一帧图像的上一帧图像相同位置的像素不完全相同的宏块;

第二编码模块404用于对当前图像帧中的无损编码宏块的残差数据进行无损编码,得到第二编码码流;

合成模块405用于打包第一编码码流和第二编码码流,得到当前图像帧的编码码流。

在一个实施例中,如图5所示,确定模块403可以包括第一确定单元4031、第二确定单元4032和第三确定单元4033;其中,

第一确定单元4031用于确定当前图像帧与其前一帧图像相同位置的像素完全相同的宏块,得到第一宏块组;

第二确定单元4032用于确定当前图像帧与所述前一帧图像的上一帧图像相同位置的像素完全相同的宏块,得到第二宏块组;

第三确定单元4033用于根据第一宏块组和第二宏块组确定当前图像帧中的无损编码宏块。

在一个实施例中,第三确定单元4033具体用于确定第一宏块组和第二宏块组中相同的宏块,得到第三宏块组,然后从第一宏块组中除去第三宏块组中的宏块,得到当前图像帧中的无损编码宏块。

在一个实施例中,第二编码模块404还用于对第三宏块组中所有宏块的位置信息进行无损编码。

在一个实施例中,如图6所示,第二编码模块404可以包括重建帧获取单元4041、计算单元4042和无损编码单元4043;其中,

重建帧获取单元4041用于获取第一编码码流的重建帧;

计算单元4042用于利用第一编码码流的重建帧计算当前图像帧中的无损编码宏块的残差,得到残差数据;

无损编码单元4043用于对当前图像帧中的无损编码宏块的残差数据和位置信息进行无损编码。

在一个实施例中,如图7所示,图像编码装置40还包括发送模块406。发送模块406用于在得到当前图像帧的编码码流之后,将当前图像帧的编码码流发送给解码端。

在一个实施例中,如图8所示,图像编码装置40还包括存储模块407。存储模块407用于在得到当前图像帧的编码码流之后,存储当前图像帧的编码码流。

本发明实施例提供的图像编码装置,通过第一编码模块先对当前图像帧进行有损编码,通过确定模块确定当前图像帧中的无损编码宏块,然后通过第二编码模块对该无损编码宏块的残差数据进行无损编码,最后通过合成模块将分别得到的第一编码码流和第二编码码流进行打包,从而得到当前图像帧的编码码流。能够在编码过程中对图像变化的部分进行有损编码,通过有损编码降低了编码码流,对图像没有变化的部分的残差数据进行无损编码,保证了图像的质量。

本发明实施例提供一种图像解码装置,如图9所示,该图像解码装置90包括:码流获取模块901、码流确定模块902、第一解码模块903、第二解码模块904和图像确定模块905。其中,

码流获取模块901用于获取当前帧编码码流;

码流确定模块902用于确定当前帧编码码流中的第一编码码流和第二编码码流,其中,第一编码码流为有损编码码流,第二编码码流为无损编码码流;

第一解码模块903用于对第一编码码流进行解码,得到第一编码码流的重建帧;

第二解码模块904用于对第二编码码流进行解码,得到宏块的位置信息和残差数据;

图像确定模块905用于根据第一解码模块903得到的重建帧和第二编码模块904得到的宏块的位置信息与残差数据确定当前帧编码码流对应的解码图像。

在一个实施例中,图像确定模块905具体用于遍历重建帧中的所有宏块,若判断出当前宏块仅有残差数据而无位置信息,则解码图像中对应宏块为当前宏块与所述残差数据之和,若判断出当前宏块没有残差数据和位置信息,则解码图像中对应宏块为当前宏块,若判断出当前宏块仅有位置信息而无残差数据,则解码图像中对应宏块为上一重建帧中对应的宏块。

本发明实施例提供的图像解码装置,码流获取模块获取到的当前帧编码码流由有损编码码流和无损编码码流构成,相较于全部是无损编码码流而言,码流较小;通过对有损编码码流和无损编码码流分别进行解码,根据解码结果可以确定出当前帧编码码流对应的解码图像。

参考图10所示,本申请实施例还提供了一种图像编码设备100,该图像编码设备100包括处理器1001和存储器1002,其中的存储器1002中存储有至少一条计算机指令,该计算机指令由处理器1001加载并执行以实现上述图1对应的实施例中所描述的图像编码方法。

参考图11所示,本发明实施例还提供了一种图像解码设备110,该图像编码设备110包括处理器1101和存储器1102,其中的存储器1102中存储有至少一条计算机指令,该计算机指令由处理器1101加载并执行以实现上述图3对应的实施例中所描述的图像解码方法。

基于上述图1对应的实施例中所描述的图像编码方法和/或图3对应的实施例中所描述的图像解码方法,本发明实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1和/或图3对应的实施例中所描述的数据传输方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类