一种图像编解码方法及装置与流程

文档序号:11844790阅读:221来源:国知局
一种图像编解码方法及装置与流程

本发明涉及图像处理技术领域,尤其涉及一种图像编解码方法及装置。



背景技术:

视频作为多媒体的主要承载煤质,视频的分辨率已由标清往高清、超高清的方向发展。目前,典型的高清分辨率有1280x720、1980x1080等,超高清4K有4096×2160、3840x2160等。目前,超高清4K广泛应用于与图像或视频有关的各个领域,而更高的8K也开始进入试用阶段。

视频的广泛传播分发依赖于有效的视频编码技术。目前使用的视频编码标准有第二代视频编码标准H.264和第三代视频编码标准H.265,当前绝大多数终端的播放器解码器芯片均支持H.264。

另外,多核已成为当前CPU的主流方向,因此,多核的应用使得并行计算成为很多实时应用的首选解决方案之一,而对于视频编码而言,并行编码也是实时编码的很重要的技术。例如x264等开源H264编码器一般采用帧级并行,但是视频的时域相关性会使相邻帧之间有强的参考依赖,导致帧级并行性大受限制,当视频的分辨率过大或者过小,并行性能都不理想。对Intel-i7等多核CPU(基于x264)编码不同分辨率视频的编码速度和CPU利用率对比发现,对于4K编码,由于帧级依赖性、分像素参考帧缓存过大、IO读写量大等因素,导致CPU利用率低,编码速度慢,远远达不到实时性要求;而1080p(一种视频显示格式)却可以轻易实现实时编码,当核数足够时,多路1080p也可以进程级并行且均可实时编码,但简单的核数增加并不能实现4K实时编转码。对这个问题,目前提供的解决方案为:把高分辨率源视频切成多个小分辨率视频分别并行编码,最后再在解码端把这些切分的部分视频拼接起来,得到目标分辨率视频。

然而,上述解决方案虽然可以大幅度提升并行编码能力,但是对于图像划分边界会存在明显的边界效应,尤其是各个分块时间因为完全独立编码,很可能同一时刻这些分块视频帧的帧类型、编码量化参数、码率、参考队列和参考帧等都差异很大时,划分边界不连续效应会更加明显,这显然会大大降低视频主观质量。



技术实现要素:

有鉴于此,本发明提供了一种图像编解码方法及装置,用以解决现有技术中的编解码方法会存在明显的边界效应、视频质量较差的问题,其技术问题如下:

一种图像编码方法,应用于编码端,所述方法包括:

对第一图像按预设采样比例和采样方法进行下采样,获得第二图像,所述第一图像为待编码的高分辨率图像或高分辨率视频帧,或者,为对所述高分辨率图像或所述高分辨率视频帧进行至少一次下采样获得的低分辨率图像或低分辨视频帧;

对所述第二图像进行编码,获得第二图像码流,并将所述第二图像码流发送至解码端;

按预设的处理规则对所述第二图像进行处理,获得与所述第一图像具有相同分辨率的第三图像;

将所述第三图像与所述第一图像作差,获得第一差分图像;

基于预设的偏移值将所述第一差分图像的像素值调整到预设范围内,获得第二差分图像;

对所述第二差分图像按预设编码方式进行编码,获得第二差分图像码流,并将所述第二差分图像码流发送至所述解码端,以便所述解码端基于所述第二图像码流和所述第二差分图像码流重构出所述第一图像。

其中,所述按预设的处理规则对所述第二图像进行处理,获得与所述第一图像具有相同分辨率的第三图像,包括:

对所述第二图像按所述预设的采样比例和采样方法进行上采样,获得与所述第一图像具有相同分辨率的第三图像;

或者,

对所述第二图像进行重构,获得第二重构图像;

对所述第二重构图像按所述预设的采样比例和采样方法进行上采样,获得与所述第一图像具有相同分辨率的第三图像。

其中,所述对所述第二差分图像按预设编码方式进行编码,获得第二差分图像码流,包括:

对所述第二差分图像进行全图像内编码,获得一路差分图像码流;

或者,

将所述第二差分图像划分为多个分块,获得多个差分图像分块,

对所述多个差分图像分块分别进行编码,获得多路差分图像码流。

所述方法还包括:

在对所述第二图像进行编码时,存储所述第二图像的编码参数;

则,对所述第二差分图像按预设方式的编码方式进行编码,具体为:

通过所述第二图像的编码参数辅助确定所述第二差分图像的编码参数,并基于所述第二差分图像的编码参数对所述第二差分图像进行编码。

其中,所述对所述第二差分图像按预设方式的编码方式进行编码,包括:

当所述第二差分图像中的至少一个通道分量的值小于设定阈值时,对除所述至少一个通道分量之外的其它通道分量进行编码。

一种图像解码方法,应用于解码端,所述方法包括:

接收第二图像码流和第二差分图像码流;

对所述第二图像码流和第二差分图像码流进行解码,获得第二图像和第二差分图像;

对所述第二图像按预设采样比例和采样方法进行上采样,获得第三图像;

基于预先设定的偏移值调整所述第二差分图像中像素的值,获得第一差分图像;

将所述第一差分图像与所述第三图像作和,获得第一图像。

其中,所述对所述第二差分图像码流进行解码,获得所述第二差分图像,包括:

当所述第二差分图像码流为多路差分图像码流时,对所述第二差分图像码流进行解码,获得多个差分图像分块;

将所述多个差分图像分块进行拼接,获得所述第二差分图像。

其中,所述第二图像码流和所述第二差分图像码流携带有指示接收的码流为第二图像码流还是为差分图像码流的码流属性信息,以及所述接收的码流对应分块的索引信息;

则所述对所述第二图像码流和第二差分图像码流进行解码,获得第二图像和第二差分图像,具体为:

依据所述码流属性信息,以及码流对应分块的索引信息对所述第二图像码流和所述第二差分图像码流进行解码。

一种图像编码装置,所述装置包括:下采样模块、第一编码模块、处理模块、第一计算模块、第一调整模块和第二编码模块;

所述下采样模块,用于对第一图像按预设采样比例和采样方法进行下采样,获得第二图像,所述第一图像为待编码的高分辨率图像或高分辨率视频帧,或者,为对所述高分辨率图像或所述高分辨率视频帧进行至少一次下采样获得的低分辨率图像或低分辨视频帧;

所述第一编码模块,用于对所述第二图像进行编码,获得第二图像码流,并将所述第二图像码流发送至解码端;

所述处理模块,用于按预设的处理规则对所述第二图像进行处理,获得与所述第一图像具有相同分辨率的第三图像;

所述第一计算模块,用于将所述第三图像与所述第一图像作差,获得第一差分图像;

所述第一调整模块,用于基于预设的偏移值将所述第一差分图像中的像素值调整到预设范围内,获得第二差分图像;

所述第二编码模块,用于对所述第二差分图像按预设编码方式进行编码,获得第二差分图像码流,并将所述第二差分图像码流发送至所述解码端,以便所述解码端基于所述第二图像码流和所述第二差分图像码流重构出所述第一图像。

其中,所述处理模块包括:第一上采样子模块;

或者,包括重构子模块和第二上采样模块;

所述第一上采样子模块,用于对所述第二图像按所述预设的采样比例和采样方法进行上采样,获得与所述第一图像具有相同分辨率的第三图像;

所述重构子模块,用于对所述第二图像进行重构,获得第二重构图像;

所述第二上采样子模块,用于对所述第二重构图像按所述预设的采样比例和采样方法进行上采样,获得与所述第一图像具有相同分辨率的第三图像。

其中,所述第二编码模块,包括第一编码子模块;

或者,包括分块子模块和第二编码子模块;

所述第一编码子模块,用于对所述第二差分图像进行全图像内编码,获得一路差分图像码流;

所述分块子模块,用于将所述第二差分图像划分为多个分块,获得多个差分图像分块,

所述第二编码子模块,用于对所述多个差分图像分块分别进行编码,获得多路差分图像码流。

所述装置还包括:存储模块;

所述存储模块,用于在所述第一编码模块对所述第二图像进行编码时,存储所述第二图像的编码参数;

则,所述第二编码模块,具体用于通过所述第二图像的编码参数辅助确定所述第二差分图像的编码参数,并基于所述第二差分图像的编码参数对所述第二差分图像进行编码。

其中,所述第二编码模块,具体用于当所述第二差分图像中的至少一个通道分量的值小于设定阈值时,对除所述至少一个通道分量之外的其它通道分量进行编码。

一种图像解码装置,所述装置包括:接收模块、解码模块、上采样模块、第二调整模块和第二计算模块;

所述接收模块,用于接收第二图像码流和第二差分图像码流;

所述解码模块,用于对所述第二图像码流和第二差分图像码流进行解码,获得第二图像和第二差分图像;

所述上采样模块,用于对所述第二图像按预设采样比例和采样方法进行上采样,获得第三图像;

所述第二调整模块,用于基于预先设定的偏移值调整所述第二差分图像中像素的值,获得第一差分图像;

所述第二计算模块,用于将所述第一差分图像与所述第三图像作和,获得第一图像。

其中,所述解码模块,包括:解码子模块和拼接子模块;

所述解码子模块,用于当所述第二差分图像码流为多路差分图像码流时,对所述第二差分图像码流进行解码,获得多个差分图像分块;

所述拼接子模块,用于将所述多个差分图像分块进行拼接,获得所述第二差分图像。

其中,所述第二图像码流和所述第二差分图像码流携带有指示接收的码流为第二图像码流还是为差分图像码流的码流属性信息,以及所述接收的码流对应分块的索引信息;

则所述解码模块,具体用于依据所述码流属性信息,以及码流对应分块的索引信息对所述第二图像码流和所述第二差分图像码流进行解码

上述技术方案具有如下有益效果:

本发明提供图像编解码方法及装置,首先对第一图像(待编码图像或者视频帧)按预设采样比例和采样方法进行下采样,获得第二图像,然后对第二图像进行编码,获得第二图像码流,接着按预设的处理规则对第二图像进行处理,获得与第一图像具有相同分辨率的第三图像,进而将第三图像与第一图像作差获得第一差分图像,为了保证第一差分图像中像素值为正,基于预设的偏移值调整第一差分图像,获得第二差分图像,最后对第二差分图像进行编码,获得第二差分图像码流,第二图像码流与第二差分图像码流发送至解码端,解码端基于第二图像码流和第二差分图像码流进行解码并重构出第一图像。对于本发明实施例提供的编解码方法,由于图像的上下采样不会带来明显的边界效应,只会导致图像变得有些模糊,但是由于差分图像的大部分像素值往往很小,将其累加到上采样后的图像,能够填补因上下采样丢失的细节,而不会引入明显的划分边界效应,图像/视频主观质量较好。并且,本发明还可实现向下多级低分辨率兼容,这对互联网网站等需要同时提供多种端的分辨率码流的应用而言,大大减少存储和传输带宽,减少了很多低分辨率图像/视频重复编解码的计算。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的图像编码方法的流程示意图;

图2为本发明实施例提供的图像解码方法的流程示意图;;

图3为本发明实施例提供的图像编码方法的一具体实例的实现方式的流程示意图;

图4为本发明实施例提供的与图3示出的图像编码方法对应的图像解码方法流程示意图;

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

图6为本发明实施例提供的图像解码装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种图像编码方法,应用于编码端,请参阅图1,示出了该图像编码方法的流程示意图,可以包括:

步骤S101:对第一图像按预设采样比例和采样方法进行下采样,获得第二图像。

其中,第一图像为待编码的高分辨率图像或高分辨率视频帧,或者,为对高分辨率图像或高分辨率视频帧进行至少一次下采样获得的低分辨率图像或低分辨视频帧。

以高分辨率视频帧为例,本发明实施例提供的图像编码方法可直接应用于高分辨率视频帧,还可应用于高分辨率视频帧下采样后的第一级低分辨率视频帧,也可应用于第一级低分辨率视频帧下采样后的第二级低分辨率视频帧,以此类推,本发明实施例可实现图像或视频的多级编解码。

步骤S102:对第二图像进行编码,获得第二图像码流,并将第二图像码流发送至解码端。

步骤S103:按预设的处理规则对第二图像进行处理,获得与第一图像具有相同分辨率的第三图像。

其中,按预设的处理规则对第二图像进行处理,获得与第一图像具有相同分辨率的第三图像的实现方式有多种。

在一种可能的实现方式中,先对第二图像进行重构,获得第二重构图像,然后对第二重构图像按预设的采样比例和采样方法进行上采样,获得与第一图像具有相同分辨率的第三图像。

在另一种可能的实现方式中,可对第二图像按预设的采样比例和采样方法进行上采样,获得与第一图像具有相同分辨率的第三图像。

步骤S104:将第三图像与第一图像作差,获得第一差分图像。

步骤S105:基于预设的偏移值将第一差分图像中的像素值调整到预设范围内,获得第二差分图像。

步骤S106:对第二差分图像按预设编码方式进行编码,获得第二差分图像码流,并将第二差分图像码流发送至解码端,以便解码端基于第二图像码流和第二差分图像码流重构出第一图像。

编码端进行编码后,将第二图像码流以及第二差分图像码流发送至对应的解码端进行解码。请参阅图2,示出了与上述图像编码方法对应的图像解码方法的流程示意图,该方法可以包括:

步骤S201:接收第二图像码流和第二差分图像码流。

步骤S202:对第二图像码流和第二差分图像码流进行解码,获得第二图像和第二差分图像。

步骤S203:对第二图像按预设采样比例和采样方法进行上采样,获得第三图像。

步骤S204:基于预先设定的偏移值调整第二差分图像中像素的值,获得第一差分图像。

步骤S205:将第一差分图像与第三图像作和,获得第一图像。

该第一图像即为还原出的源高分辨率图像,或者,为对源高分辨率图像进行至少一次下采样获得的低分辨率图像。

本发明实施例提供的图像编、解码方法,首先对第一图像(待编码图像或者视频帧)按预设采样比例和采样方法进行下采样,获得第二图像,然后对第二图像进行编码,获得第二图像码流,接着按预设的处理规则对第二图像进行处理,获得与第一图像具有相同分辨率的第三图像,进而将第三图像与第一图像作差获得第一差分图像,为了保证第一差分图像中像素值为正,基于预设的偏移值调整第一差分图像,获得第二差分图像,最后对第二差分图像进行编码,获得第二差分图像码流,第二图像码流与第二差分图像码流发送至解码端,解码端基于第二图像码流和第二差分图像码流进行解码并重构出第一图像。对于本发明实施例提供的编解码方法,由于图像的上下采样不会带来明显的边界效应,只会导致图像变得有些模糊,但是由于差分图像的大部分像素值往往很小,将其累加到上采样后的图像,能够填补因上下采样丢失的细节,而不会引入明显的划分边界效应,图像/视频主观质量较好。并且,本发明实施例还可实现向下多级低分辨率兼容,这对互联网网站等需要同时提供多种端的分辨率码流的应用而言,大大减少存储和传输带宽,减少了很多低分辨率图像/视频重复编解码的计算。

下面以对第一图像为目标视频中的任一视频帧,且该视频帧为高分辨率视频帧为例,给出本发明实施例提供的图像编码方法的一具体实现过程,请参阅图3,示出了图像编码方法的流程示意图,该方法可以包括:

步骤S301:按预设的采样比例和采样方法对第一高分辨率视频帧进行下采样,获得低分辨率视频帧,该低分辨率视频帧的分辨率。

其中,第一高分辨率视频帧对源高分辨率视频帧。假设第一高分辨率视频帧的分辨率为WxH,预设的采样间隔为pxq,则可获得分辨率为(W/p)x(H/q)的低分辨视频帧。

在本实施例中,对第一高分辨率视频帧进行下采样的方法有多种,在一种可能的实现方式中,可采用最邻近法重采样法(Nearest Neighbour Resampling)对第一高分辨率视频帧进行下采样,在另一种可能的实现方式中,可采用双线性/两次线性重采样法(Bilinear Resampling)对第一高分辨率视频帧进行下采样。

步骤S302:对低分辨率视频帧进行编码,获得低分辨率码流,并对低分辨率视频帧进行重构,获得低分辨率重构帧,将低分辨率码流发送至解码端。

在一种可能的实现方式中,可对低分辨率视频帧进行H264编码。

可选的,在对低分辨率视频帧进行编码时,可同时保存编码参数,如帧类型、每个分块的参考帧队列、参考帧以及运动矢量等,示例性的,保存lowres_stat={pic_type,reflist,refidx,mv},这些参数可以用于辅助接下来的差分视频帧的编码,以提高编码速度。

另外,在一种可选的实现方式中,在向解码端发送低分辨率码流时,可在低分辨码流中增加码流辅助信息,该码流辅助信息中包括用于指示对源高分辨率视频帧进行下采样所采用的采样方法的指示信息,当解码端接收到低分辨率码流时,可从码流辅助信息中获得下采样方法,以便选择同样的下采样方法对视频帧进行处理。

步骤S303:按预设的采样比例和采样方法对低分辨率重构帧进行上采样得到与第一高分辨率视频帧具有相同分辨率的第二高分辨率视频帧。

在本实施例中,采用与上述下采样相同的采样比例pxq对低分辨率重构帧进行上采样得到与第一高分辨率视频帧具有相同分辨率的第二高分辨率视频帧。

需要说明的是,本实施例先对低分辨率视频帧进行重构,获得低分辨率重构帧,再对低分辨率重构帧进行下采样,获得与第一高分辨率视频帧具有相同分辨率的第二高分辨率视频帧,这个过程会导致一帧的延迟,如果不希望有帧延迟,可以直接进行下采样,即直接对低分辨率视频帧进行下采样,获得与第一高分辨率视频帧具有相同分辨率的第二高分辨率视频帧。这两种方式各有特点,第一种方式处理速度稍慢,但视频帧质量较好,第二种处理速度较快,但会使视频帧的质量有些许损失。实际应用时,可基于具体需求进行选取。

步骤S304:将第二高分辨率视频帧与第一高分辨率视频帧作差,获得第一差分视频帧。

步骤S305:基于预设的偏移值将差分视频帧中的像素值调整到预设范围内,获得第二差分视频帧。

其中,第二差分视频帧与第一高分辨率视频帧具有相同的分辨率。

需要说明的是,考虑到将第二高分辨率视频帧与第一高分辨率视频帧作差,获得的第一差分视频帧中,像素的值有正有负,为了保证第一差分视频帧中像素的值为正数,预先设定偏移值offset,基于设定的偏移值offset对差分视频帧中像素值进行两步处理:第一步,将第一差分视频帧中像素的值限幅到[-offset,+offset],然后将限幅后获得的像素值加上偏移值offset,对第一差分视频帧中的像素进行上述处理便得到了新的差分视频帧,即上述的第二差分视频帧,第二差分视频帧中各个像素值均在区间[0,2*offset]内。通常情况下,0<offset<128,优选的,offset取16~64之间的值。

示例性的,第二高分辨率视频帧中的两个像素值分别是100和120,第一高分辨率视频帧中对应的两个像素的值分别为120和110,在将第二高分辨率视频帧与第一高分辨率视频帧作差时,得到差值-20和10,假设偏移值offset设定为16,那么先将差值-20和10调整到[-16,16]范围内,即得到-16和10,通常不希望图像的像素值存在负数,然后将差值-16和10均加上offset(即加上16),这样得到了新的差值0和26,由此可见,第二差分图像中各个像素的范围肯定在区间[0,32]内。

步骤S306:对第二差分视频帧按预设的编码方式进行编码,获得第二差分视频码流,并将第二差分视频码流发送至解码端,以便解码端基于第二视频码流和第二差分视频码流重构出第一视频帧。

对第二差分视频帧进行编码的实现方式有多种,在一种可能的实现方式中,可对第二差分视频帧进行全帧内编码,获得一路差分视频码流。在另一种可能的实现方式中,可将第二差分图像划分为mxn个分块,获得mxn个差分图像分块,对mxn个差分图像分块分别进行编码,获得mxn路差分视频码流。考虑的第二种编码方式的编码性能更高,优选第二种编码方式对第二差分视频帧进行编码。

在采用上述第二种编码方式进行编码时,可采用两种编码方式对各个分块进行编码。在一种可能的方式中,对各个分块进行整体编码,在另一种可能的实现方式中,可将各个分块进一步划分为多个子块,对每个分块而言,对该分块中的各个子块进行编码。实际应用时,可比较两种编码方式,从中选取编码性能较高的编码方式进行编码。在本实施例中,考虑到第二差分视频帧中像素的值一般较小且波动值也较小,选取第一种编码方式(即对各个分块进行整体编码)即可。

需要说明的是,对于目标视频帧中的每个第一高分辨率视频帧,均可获得第二差分视频帧,进行编码时,可对各个第二差分视频帧进行并行编码,以提高编码速度。

可选的,在一种可能实现方式中,在获得第二差分视频帧之后,为了降低码率,可对第二差分视频帧进行滤波处理,然后将滤波处理后获得的差分视频帧按上述编码方式进行编码。可选的,在另一种可能的实现方式中,在获得第二差分视频帧之后,考虑到第二差分视频帧的数据量通常较小,可对其进行无损压缩,无损压缩的方式有多种,例如zip、rar等,然后,对无损压缩后的差分视频帧按上述编码方式进行编码。

另外,为了提高编码速度,在进行分块编码时,可利用上述步骤中保存的编码参数辅助确定各个分块对应的帧类型、参考帧选择以及初始运动搜索点。这样虽然会导致第二差分视频帧的编码比低分辨率视频图像的编码延迟一帧,但是在绝大部分实时应用中,一帧的延时是完全可以接受的。

同时,考虑到在第二差分视频帧中的某个通道分量的值往往较小,为了进一步降低码率和编转码复杂度,当第二差分视频帧中至少一个通道分量的值小于设定阈值时,对除至少一个通道分量之外的其它通道分量进行编码。示例性的,第二差分视频帧为YUV格式,当第二差分视频帧的色度UV分量值全为0时,只对亮度Y这一个通道分量进行编码,以进一步降低码率和编转码复杂度。

经由上述步骤可知,经编码可获得一路低分辨率视频码流以及mxn路差分视频码流(或者一路差分视频码流)。其中,低分辨率视频码流和差分视频码流可通过视频流数据包的形式发送至解码端,视频流数据包可以但不限定为NAL包或者PES包。

为了保证解码端在接收到低分辨率视频码流以及差分视频码流时,能够成功解码,在一种可能的实现方式中,可在向解码端发送的视频流数据包中携带码流辅助信息,码流辅助信息包括用于指示码流属性的指示信息(如码流为低分辨率视频码流还是差分视频码流),以及,码流对应分块的索引信息(例如,第二差分视频划分为mxn个分块,该码流对应的分块为第i块)。

在另一种可能实现方式中,可通过对视频流数据包的命名来指示码流属性,以及码流对应分块的索引信息。示例性的,对视频流数据包的名称加后缀名_lowres以指示接收的码流是低分辨率码流,对视频流数据包的名称加后缀_mxn_i以指示接收的码流为差分视频码流,且将第二差分视频帧分成mxn块,该码流是与第i个分块对应的码流。

在再一种可能的实现方式中,可针对编码端和解码端预先约定分块划分方式、视频流数据包的发送次序。例如,预先约定对第二差分视频帧按照2x2等分划分,依次发送各个分块的码流。需要说明的是,如果预先进行了约定等分的分块方式,但不想按预先约定的分块方式进行分块,则可以在码流辅助信息或者码流的Meta信息中说明各个分块的分辨率和位置,如果是等分方式分块,则只需要说明位置信息即可。示例性的,预先约定按2x2进行等分划分,而想按不等分的分块方式进行划分或者想按4x4等分划分,则在按不等分的分块方式进行划分时,在码流辅助信息或者码流的Meta信息中说明各个分块的分辨率和位置,在按4x4等分划分时,在码流辅助信息或者码流的Meta信息中说明各个分块的位置。这些信息以及差分视频帧分块的拼接将由播放器或者渲染器来进行处理和最终合成,而不需要修改编码器和解码器。

编码端编码得到的低分辨率视频码流以及第二差分视频码流发送至解码端进行解码。请参阅图4,示出了与上述实施例提供的视频编码方法对应的视频解码方法,该方法可以包括:

步骤S401:接收低分辨率视频码流和第二差分视频码流。

步骤S402:对分辨率视频码流进行解码获得低分辨率视频帧,并对第二差分视频码流进行解码,获得各个差分图像块。

步骤S403:对低分辨率视频帧按预设采样比例和采样方法进行上采样,获得第二高分辨率视频帧,并对各个差分图像块进行拼接,获得第二差分视频帧。

需要说明的是,本实施例假设编码端对第二差分视频帧采用的编码方式为分块编码,因此,对第二差分视频码流进行解码后,获得是各个差分图像块,为了还原第二差分视频帧,需要将各个差分图像块进行拼接。如果编码端对第二差分视频帧采用的编码方式为全帧内编码,则对第二差分视频码流解码获得的即是第二差分视频帧。

可选的,为了减少差分图像块拼接的边界效应,可对差分图像的拼接边界处进行适当的平滑滤波等处理。

步骤S404:基于预先设定的偏移值调整第二差分视频帧中像素的值,获得第一差分视频帧。

具体的,将第二差分视频帧中各个像素的值减去偏移offset,获得第一差分视频帧。

步骤S405:将第一差分视频帧与第二高分辨率视频帧作和,获得第一高分辨率视频帧。

在获得第一差分视频帧之后,将其与第二高分辨率视频帧相加,即可重构出第一高分辨率视频帧,即源高分辨率视频帧。

需要说明的是,如果终端设备因为解码能力带宽等原因,只能播放低分辨率视频,则刻直接单独获取和解码低分辨率码流即可。

需要说明的是,上述的编解码方法仅是一示例,其针对的是源高分辨率视频帧,对该源高分辨率视频帧进行一次下采样,还可进行多层次下采样,每一层都分别提取差分视频帧,从而可以实现向下多级低分辨率兼容,这对互联网视频网站等需要同时提供多种端的分辨率码流的应用而言,能够大大减少存储和传输带宽。示例性的,3840x2160的视频帧,下采样可以得到一个1920x1080的低分辨率视频帧和它对应的差分视频帧,对于该1920x1080的低分辨率视频,还可进一步下采样得到一个960x540的第二级低分辨率视频和它所对应的第二级差分视频帧,对于960x540的第二级低分辨率视频帧,还可进一步下采样得到一个480x270的第三级低分辨率视频帧和它所对应的第三级差分视频帧,以此类推。各级的编解码方法均类似,其具体过程可参见上述实施例,在此不作赘述。

本发明实施例提供的编、解码方法,首先对第一高分辨率视频帧即源高分辨率视频帧按预设采样比例进行下采样,获得低分辨率视频帧,然后对低分辨率视频帧进行编码,获得低分辨率视频码流,接着按预设的处理规则对低分辨率进行处理,获得与第一高分辨率视频帧具有相同分辨率的第二高分辨率视频帧,进而将第二高分辨率视频帧与第一高分辨率视频帧作差获得第一差分视频帧,为了保证第一差分视频帧中像素值为正,基于预设的偏移值调整第一差分视频帧,获得第二差分视频帧,最后对第二差分视频帧进行编码,获得第二差分视频码流,低分辨率视频码流与第二差分视频码流发送至解码端,解码端基于第二视频码流和第二差分视频码流进行解码并重构出源高分辨率视频帧。对于本发明实施例提供的编解码方法,由于视频帧的上下采样不会带来明显的边界效应,只会导致图像变得有些模糊,但是由于差分视频帧的大部分像素值往往很小,将其累加到上采样后的图像,能够填补因上下采样丢失的细节,而不会引入明显的划分边界效应,视频主观质量较好,同时,本发明实施例提供的编解码方法大大的扩展了高分辨率视频编码的并行度,提高编码速度,可用于实时应用场景。并且,本发明实施例还可实现向下多级低分辨率兼容,这对互联网网站等需要同时提供多种端的分辨率码流的应用而言,大大减少存储和传输带宽,减少了很多低分辨率视频重复编解码的计算。

另外,在对差分视频帧进行编码时,可利用对应的低分辨率视频帧编码信息辅助编码,提高了差分视频帧的编码速度;只对Y分量一个通道进行编码,而不需对YUV三个分量通道进行编码,减少计算量和码率;兼容已有的编解码器,不需要语法层额外修改,适用于各种视频图像编码标准。

与上述方法相对应,本发明实施例还提供了一种图像编码装置,请参阅图5,示出了该编码装置的结构示意图,该装置包括:下采样模块501、第一编码模块502、处理模块503、第一计算模块504、第一调整模块505和第二编码模块506;

下采样模块501,用于对第一图像按预设采样比例和采样方法进行下采样,获得第二图像,其中,第一图像为待编码的高分辨率图像或高分辨率视频帧,或者,为对高分辨率图像或高分辨率视频帧进行至少一次下采样获得的低分辨率图像或低分辨视频帧。

第一编码模块502,用于对下采样模块501采样后的第二图像进行编码,获得第二图像码流,并将第二图像码流发送至解码端。

处理模块503,用于按预设的处理规则对下采样模块501采样后的第二图像进行处理,获得与第一图像具有相同分辨率的第三图像。

第一计算模块504,用于将处理模块503处理后的第三图像与第一图像作差,获得第一差分图像。

第一调整模块505,用于基于预设的偏移值将第一计算模块504计算得到的第一差分图像中的像素值调整到预设范围内,获得第二差分图像。

第二编码模块506,用于对第一调整模块505调整后获得的第二差分图像按预设编码方式进行编码,获得第二差分图像码流,并将第二差分图像码流发送至解码端,以便解码端基于第二图像码流和第二差分图像码流重构出第一图像。

请参阅图6,示出了与上述实施例提供的图像编码装置对应的图像解码装置的结构示意图,可以包括:接收模块601、解码模块602、上采样模块603、第二调整模块604和第二计算模块605。其中:

接收模块601,用于接收第二图像码流和第二差分图像码流。

解码模块602,用于对接收模块601接收的第二图像码流和第二差分图像码流进行解码,获得第二图像和第二差分图像。

上采样模块603,用于对解码模块602解码得到的第二图像按预设采样比例和采样方法进行上采样,获得第三图像。

第二调整模块604,用于基于预先设定的偏移值调整第二差分图像中像素的值,获得第一差分图像。

第二计算模块605,用于将第二调整模块604调整得到的第一差分图像与第三图像作和,获得第一图像。

对于本发明实施例提供的图像编、解码装置,由于图像的上下采样不会带来明显的边界效应,只会导致图像变得有些模糊,但是由于差分图像的大部分像素值往往很小,将其累加到上采样后的图像,能够填补因上下采样丢失的细节,而不会引入明显的划分边界效应,图像/视频主观质量较好。并且,本发明实施例还可实现向下多级低分辨率兼容,这对互联网网站等需要同时提供多种端的分辨率码流的应用而言,大大减少存储和传输带宽,减少了很多低分辨率图像/视频重复编解码的计算。

上述实施例提供的图像编码装置中的处理模块的实现方式有多种,在一种可能的实现方式中,上述实施例提供的图像编码装置中的处理模块包括:第一上采样子模块。第一上采样子模块,用于对第二图像按预设的采样比例和采样方法进行上采样,获得与第一图像具有相同分辨率的第三图像。

在另一种可能的实现方式中,处理模块可以包括重构子模块和第二上采样模块。其中,重构子模块,用于对第二图像进行重构,获得第二重构图像;第二上采样子模块,用于对重构子模块重构出的第二重构图像按预设的采样比例和采样方法进行上采样,获得与第一图像具有相同分辨率的第三图像。

上述实施例提供的图像编码装置中的第二编码模块的实现方式有多种,在一种可能的实现方式中,第二编码模块可以包括第一编码子模块。第一编码子模块,用于对第二差分图像进行全图像内编码,获得一路差分图像码流。

在另一种可能的实现方式中,第二编码模块,可以包括分块子模块和第二编码子模块。其中,分块子模块,用于将第二差分图像划分为多个分块,获得多个差分图像分块;第二编码子模块,用于对分块子模块分块后的多个差分图像分块分别进行编码,获得多路差分图像码流。

上述实施例提供的图像编码装置还可以包括:存储模块。存储模块,用于在第一编码模块对第二图像进行编码时,存储第二图像的编码参数。

则,第二编码模块,具体用于通过第二图像的编码参数辅助确定第二差分图像的编码参数,并基于第二差分图像的编码参数对第二差分图像进行编码。

在上述实施例中,第二编码模块,具体用于当第二差分图像中的至少一个通道分量的值小于设定阈值时,对除所述至少一个通道分量之外的其它通道分量进行编码。

上述实施例提供的图像解码装置中,解码模块可以包括:解码子模块和拼接子模块。其中,解码子模块,用于当第二差分图像码流为多路差分图像码流时,对第二差分图像码流进行解码,获得多个差分图像分块;拼接子模块,用于将多个差分图像分块进行拼接,获得第二差分图像。

在上述实施例中,第二图像码流和第二差分图像码流携带有指示接收的码流为第二图像码流还是为差分图像码流的码流属性信息,以及接收的码流对应分块的索引信息。则解码模块,具体用于依据码流属性信息,以及码流对应分块的索引信息对第二图像码流和第二差分图像码流进行解码。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1