图像的编码方法及装置与流程

文档序号:16247712发布日期:2018-12-11 23:44阅读:193来源:国知局
图像的编码方法及装置与流程

本申请涉及图像处理技术领域,具体而言,涉及一种图像的编码方法及装置。



背景技术:

在目前的编码技术中,可以采用几种编码来对图像进行编码。第一种方式可以为采用固定的码率来对图像进行编码,第二种方式可以为采用根据图像质量选择码率对图像进行编码,第三种方式可以为根据网络环境能够允许的带宽,采用自适应带宽的码率对图像进行编码。

若采用第一种方式,则在图像的当前场景需要高码率来保证场景的清晰度时,由于固定的码率无法达到该高码率,从而导致需要清晰度高的场景实际却被编码成模糊不清。若采用第二种方式,则在当前图像质量很高时,由于设备的当前带宽却无法满足当前的高质量图像所需的高码率,造成设备的性能不足。若采用第三种方式,则在图像的当前场景需要高码率来保证场景的清晰度时,由于设备当前的性能情况无法提供高带宽来保证高码率,故也会导致需要清晰度高的场景实际却被编码成模糊不清。

因此,现有技术在编码中就无法做到既保证编码图像满足实际需求,又保证在编码的过程中设备的性能能够满足码率的需求。



技术实现要素:

本申请在于提供一种图像的编码方法及装置,以有效的解决上述存在的技术缺陷。

为了实现上述目的,本申请的实施例通过如下方式实现:

第一方面,本申请实施例提供了一种图像的编码方法,所述方法包括:

获得当前帧的图像;

处理所述当前帧的图像,确定出当前帧的图像的当前场景类型;

根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

结合第一方面,在一些可能的实现方式中,所述处理所述当前帧的图像,确定出当前帧的图像的当前场景类型,包括:

处理所述当前帧的图像,获得所述当前帧的图像的多个当前特征向量;

根据所述多个当前特征向量和所述前一帧的图像的多个历史特征向量,确定出所述当前帧的图像的当前场景类型。

结合第一方面,在一些可能的实现方式中,所述根据所述多个当前特征向量和所述前一帧的图像的多个历史特征向量,确定出所述当前帧的图像的当前场景类型,包括:

调用预设的LSTM网络模型,将所述多个当前特征向量和所述前一帧的图像的多个历史特征向量输入所述LSTM网络模型进行融合计算,计算出所述当前帧的图像的当前场景类型为多个预设场景类型中每个预设场景类型的概率值,其中,所述多个预设场景类型包括:静态场景、全局运动场景和物体运动场景;

从每个预设场景类型的概率值中确定出概率值最大的预设场景类型为所述当前帧的图像的所述当前场景类型。

结合第一方面,在一些可能的实现方式中,所述处理所述当前帧的图像,获得所述当前帧的图像的多个当前特征向量,包括:

调用预设的卷积模型,将所述当前帧的图像输入所述卷积模型进行卷积运算,获得所述当前帧的图像的多个当前特征向量。

结合第一方面,在一些可能的实现方式中,所述根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码,包括:

根据所述当前场景类型,在预设的多个权重值中确定出与所述当前场景类型匹配的目标权重值;

调用预设的拉格朗日代价值计算模型,将所述根据所述目标权重值输入所述拉格朗日代价值计算模型计算出拉格朗日代价值;

根据所述拉格朗日代价值确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

第二方面,本申请实施例提供了一种图像的编码装置,所述装置包括:

图像获得模块,用于获得当前帧的图像。

场景确定模块,用于处理所述当前帧的图像,确定出当前帧的图像的当前场景类型。

码率确定模块,用于根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

结合第二方面,在一些可能的实现方式中,所述场景确定模块,还用于处理所述当前帧的图像,获得所述当前帧的图像的多个当前特征向量;根据所述多个当前特征向量和所述前一帧的图像的多个历史特征向量,确定出所述当前帧的图像的当前场景类型。

结合第二方面,在一些可能的实现方式中,所述场景确定模块,调用预设的LSTM网络模型,将所述多个当前特征向量和所述前一帧的图像的多个历史特征向量输入所述LSTM网络模型进行融合计算,计算出所述当前帧的图像的当前场景类型为多个预设场景类型中每个预设场景类型的概率值,其中,所述多个预设场景类型包括:静态场景、全局运动场景和物体运动场景;从每个预设场景类型的概率值中确定出概率值最大的预设场景类型为所述当前帧的图像的所述当前场景类型。

结合第二方面,在一些可能的实现方式中,所述场景确定模块,还用于调用预设的卷积模型,将所述当前帧的图像输入所述卷积模型进行卷积运算,获得所述当前帧的图像的多个当前特征向量。

结合第二方面,在一些可能的实现方式中,所述码率确定模块,还用于根据所述当前场景类型,在预设的多个权重值中确定出与所述当前场景类型匹配的目标权重值;调用预设的拉格朗日代价值计算模型,将所述根据所述目标权重值输入所述拉格朗日代价值计算模型计算出拉格朗日代价值;根据所述拉格朗日代价值确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:处理器,存储器,总线和通信接口;所述处理器、所述通信接口和存储器通过所述总线连接。所述存储器,用于存储程序。所述处理器,用于通过调用存储在所述存储器中的程序,以执行第一方面或第一方面的任一可选的实现方式所述的图像的编码方法。

第四方面,本申请实施例提供了一种具有处理器可执行的非易失程序代码的计算机可读储存介质,用于存储程序代码,所述程序代码在被计算机读取并运行时,执行第一方面或第一方面的任一可选的实现方式所述的图像的编码方法。

本申请实施例的有益效果包括:

通过对获得当前帧的图像进行处理,可以确定出当前帧的图像的当前场景类型,故就可以通过当前场景类型来确定出适配该当前场景类型的当前码率对该当前帧的图像编码。由于当前码率与当前场景类型适配,即在当前场景类型需要高码率时,则当前码率相应的为高码率,但在当前场景类型无需高码率时,则当前码率相应的为低码率,故实现了保证编码出图像质量可以满足实际的需求。于此同时,由于码率可以跟随场景在高和低之间调节,故又可以避免一直维持高码率导致设备性能不足的技术问题,使之在编码的过程中设备的性能能够满足码率的需求。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请第一实施例提供的一种电子设备的结构框图;

图2示出了本申请第二实施例提供的一种图像的编码方法的流程图;

图3示出了本申请第三实施例提供的一种图像的编码装置的结构框图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有进行出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

第一实施例

如图1所示,电子设备10可以包括:存储器11、通信接口12、总线13和处理器14。其中,处理器14、通信接口12和存储器11通过总线13连接。

处理器14用于执行存储器11中存储的可执行模块,例如计算机程序。图1所示的电子设备10的组件和结构只是示例性的,而非限制性的,根据需要,电子设备10也可以具有其他组件和结构。

其中,本实施例中的存储器11可以包含高速随机存取存储器(英文:Random Access Memory;简称:RAM),也可能还包括非不稳定的存储器(英文:non-volatile memory;简称:NVM),例如至少一个磁盘存储器。本实施例中,存储器11存储了处理器14执行图像的编码方法所需要的程序。

本实施例中的总线13可以是ISA总线(英文:Industry Standard Architecture;简称:工业标准体系结构)、PCI总线(英文:Peripheral Component Interconnect;简称:外设部件互连标准)或EISA总线(英文:Extended Industry Standard Architecture;简称:扩展工业标准结构)等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

本实施例中的处理器14可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器14中的硬件的集成逻辑电路或者软件形式的指令完成。该处理器14可以是通用处理器,包括中央处理器(英文:Central Processing Unit、简称:CPU)、网络处理器(英文:Network Processor,简称NP)等;还可以是数字信号处理器(英文:Digital Signal Processing、简称:DSP)、或是专用集成电路(英文:Application Specific Integrated Circuit、简称:ASIC)、或是现成可编程门阵列(英文:Field-Programmable Gate Array、简称:FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。

本发明实施例任意实施例揭示的流程或定义的装置所执行的方法可以应用于处理器14中,或者由处理器14实现。处理器14在接收到执行指令后,通过总线13调用存储在存储器11中的程序后,处理器14通过总线13控制通信接口12则可以执行图像的编码方法的流程。

第二实施例

本实施例提供了一种图像的编码方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。以下对本实施例进行详细介绍。

请参阅图2,在本实施例提供的图像的编码方法中,该图像的编码方法可以由电子设备执行,或者图像的编码方法也可以由其它设备,例如服务器执行,图像的编码方法可以包括:步骤S100、步骤S200和步骤S300。

步骤S100:获得当前帧的图像。

步骤S200:处理所述当前帧的图像,确定出当前帧的图像的当前场景类型。

步骤S300:根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

下面将对本申请的方案中的各个步骤进行详细的描述。

步骤S100:获得当前帧的图像。

在对一段视频文件进行处理的过程中,可以为依次对视频文件中的每一帧的图像进行编码,从而实现对整段的视频文件进行处理。

作为获得当前帧的图像的一种可选地方式,在对整段的视频文件进行处理的过程中,完成对上一帧的图像进行编码后,就可以获得视频文件中当前处理至的当前帧的图像。

作为获得当前帧的图像的另一种可选地方式,也在对整段的视频文件进行处理的过程中,在开始对上一帧的图像进行编码时,就也可以获得视频文件中当前处理至的当前帧的图像。

本实施例中,该当前帧的图像可以为视频文件中的任一帧的图像,对此本实施例并不限定。

步骤S200:处理所述当前帧的图像,确定出当前帧的图像的当前场景类型。

获得当前帧的图像后,便可以对该当前帧的图像进行处理,即可以对该当前帧的图像进行卷积处理,以通过卷积处理来获得当前帧的图像的多个当前特征向量。

可以理解到,当前帧的图像的分辨率一般比较大,例如,前帧的图像的分辨率可以为1920*1080*1的分辨率。为了便于卷积处理,可以将当前帧的图像分割成多个子图像,例如,将当前帧的图像等分成分辨率相同的15个子图像,每个子图像的分辨率可以为128*72*1。这样,就可以对每个子图像均进行卷积处理。

可选地,对该当前帧的图像进行卷积处理的方式可以为:

可以预先设置用于卷积的卷积模型,例如,该卷积模型可以为如下所示:

CONV7:滤波器尺寸:7*7、卷积数量:32、跨度:1、ReLU:max(0,hθ(x))POOL、下采样的尺寸:4×4;

CONV5:滤波器尺寸:5*5、卷积数量:64、跨度:1、ReLU:max(0,hθ(x))POOL、下采样的尺寸:2×2;

CONV3:滤波器尺寸:3*3、卷积数量:96、跨度:1、ReLU:max(0,hθ(x))POOL、下采样的尺寸:2×2;

CONV3:滤波器尺寸:3*3、卷积数量:48、跨度:1、ReLU:max(0,hθ(x))POOL、下采样的尺寸:2×2。

那么,在进行卷积运算时,可以调用该预设的卷积模型,将当前帧的图像的多个子图像均输入该卷积模型依次进行多次卷积运算,从而通过多次卷积运算获得该当前帧的图像的多个当前特征向量。

也可以理解到,卷积模型为对多个子图像依次进行多次卷积运算,故可以运算得到每个子图像的多个当前特征向量,并共得到多个当前特征向量。

例如,对分辨率为128*72*1的子图像通过卷积模型进行多次卷积运行,则可以得到3*48*8的当前特征向量。

确定出当前帧的图像的多个当前特征向量,则可以根据多个当前特征向量和前一帧的图像的多个历史特征向量,来确定出当前帧的图像的当前场景类型。

可选地,确定出当前帧的图像的当前场景类型的方式可以为:

可以预先设置用于确定当前帧的图像的当前场景类型的LSTM网络模型(Long Short-Term Memory、长短期记忆网络)。并可以预设多个预设场景类型对该LSTM网络模型预先进行训练,以便于该LSTM网络模型后续能够准确的识别出当前场景类型为哪一个预设场景类型。

本实施例中,多个预设场景类型可以包括:静态场景、全局运动场景和物体运动场景。其中,静态场景可以理解为画面中没有移动的物体,且画面整体也没有移动;全局运动场景可以理解为摄像机的机位移动使得画面整体移动;物体运动场景则可以理解为无论画面是否整体移动,但画面中存在移动的物体。

那么,在确定出当前帧的图像的当前场景类型时,可以调用该LSTM网络模型,并将该多个当前特征向量和前一帧的图像的多个历史特征向量输入LSTM网络模型进行融合计算。LSTM网络模型利用预先的训练并依照前一帧的图像的多个历史特征向量作为参考,就可以计算出当前帧的图像的当前场景类型为多个预设场景类型中每个预设场景类型的概率值。这样,就可以从每个预设场景类型的概率值中确定出概率值最大的预设场景类型为当前帧的图像的当前场景类型。

例如,计算出当前场景类型为静态场景的概率为34%、计算出当前场景类型为全局运动场景的概率为6%、以及计算出当前场景类型为物体运动场景的概率为60%,故可以确定出当前场景类型为物体运动场景。

步骤S300:根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

在确定出当前场景类型后,可以根据当前场景类型确定出适配的当前码率。

可选地,根据当前场景类型确定出适配的当前码率的方式可以为:

可以预先设置每个预设场景类型所对应的权重值,其中,权重值越高,则说明该场景越需要高码率来进行编码。例如,静态场景对用户来说,用户往往希望看到场景的细节部分,故可以将静态场景的权重值设置为1.2。全局运动场景对用户来说,由于机位整体在移动,故用户往往并不太关心此时的场景细节,故可以将全局运动场景的权重值设置为0.7。物体运动场景对用户来说,故用户往往比较关心场景中移动物体的细节,故可以将物体运动场景的权重值设置为1.4。

另外,由于编码器可以拉格朗日代价值来确定码率,故还可以预先设置用于计算拉格朗日代价值的拉格朗日代价值计算模型,例如,该拉格朗日代价值计算模型可以为如下所示:

λMODE=FM(mode)*0.85*2(QP-12)/3) (1)

J(frame)=Distortion+λMODE*raet (2)

其中,式(1)中,FM(mode)为当前场景类型的权重值;QP为预设的码率控制输出;Distortion为重建图像的质量,其表示编码器编码后图像和编前的每一帧的图像之间的误差;rate为预设的编码当前一个宏块所需要的比特位数量。

那么,在确定出当前场景类型确定出适配的当前码率的过程中,可以根据当前场景类型,从而在预设的多个权重值中确定出与当前场景类型匹配的目标权重值。调用预设的该拉格朗日代价值计算模型,并将目标权重值输入该拉格朗日代价值计算模型进行计算,从而就可以计算出拉格朗日代价值。故编码器根据该拉格朗日代价值就可以确定出适配当前场景类型的当前码率,并通过该当前码率来对当前帧的图像编码。

可以理解到,编码器根据拉格朗日代价值以及一些其它的配置参数来确定当前码率时,一般情况下,拉格朗日代价值越高,则当前码率也越高,反之,则越低。也就是说,静态场景或物体运动场景可以使得计算出拉格朗日代价值比较高,从而确定出当前码率也比较高,进而实现了通过比较高的当前码率对静态场景或物体运动场景进行编码,保证静态场景或物体运动场景的清晰。

第三实施例

请参阅图3,本申请实施例提供了一种图像的编码装置100,该图像的编码装置100可以由电子设备执行,或者图像的编码装置100也可以由其它设备,例如服务器执行,图像的编码装置100可以包括:

图像获得模块110,用于获得当前帧的图像。

场景确定模块120,用于处理所述当前帧的图像,确定出当前帧的图像的当前场景类型。

码率确定模块130,用于根据所述当前场景类型,确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

可选地,所述场景确定模块120,还用于处理所述当前帧的图像,获得所述当前帧的图像的多个当前特征向量;根据所述多个当前特征向量和所述前一帧的图像的多个历史特征向量,确定出所述当前帧的图像的当前场景类型。

可选地,所述场景确定模块120,调用预设的LSTM网络模型,将所述多个当前特征向量和所述前一帧的图像的多个历史特征向量输入所述LSTM网络模型进行融合计算,计算出所述当前帧的图像的当前场景类型为多个预设场景类型中每个预设场景类型的概率值,其中,所述多个预设场景类型包括:静态场景、全局运动场景和物体运动场景;从每个预设场景类型的概率值中确定出概率值最大的预设场景类型为所述当前帧的图像的所述当前场景类型。

可选地,所述场景确定模块120,还用于调用预设的卷积模型,将所述当前帧的图像输入所述卷积模型进行卷积运算,获得所述当前帧的图像的多个当前特征向量。

可选地,所述码率确定模块130,还用于根据所述当前场景类型,在预设的多个权重值中确定出与所述当前场景类型匹配的目标权重值;调用预设的拉格朗日代价值计算模型,将所述根据所述目标权重值输入所述拉格朗日代价值计算模型计算出拉格朗日代价值;根据所述拉格朗日代价值确定出适配所述当前场景类型的当前码率对所述当前帧的图像编码。

需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

第四实施例

本申请实施例还提供了一种处理器可执行的非易失程序代码的计算机可读储存介质,该计算机可读存储介质上存储有程序代码,该程序代码被计算机读取并运行时执行上述任一实施例的图像的编码方法的步骤。

具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的程序代码被运行时,能够执行上述实施例的图像的编码方法,从而解决现有技术在编码中就无法做到既保证编码图像满足实际需求,又保证在编码的过程中设备的性能能够满足码率的需求的技术问题。

本申请实施例所提供的图像的编码方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

综上所述,本申请实施例提供了一种图像的编码方法及装置,方法包括:获得当前帧的图像;处理当前帧的图像,确定出当前帧的图像的当前场景类型;根据当前场景类型,确定出适配当前场景类型的当前码率对当前帧的图像编码。

通过对获得当前帧的图像进行处理,可以确定出当前帧的图像的当前场景类型,故就可以通过当前场景类型来确定出适配该当前场景类型的当前码率对该当前帧的图像编码。由于当前码率与当前场景类型适配,即在当前场景类型需要高码率时,则当前码率相应的为高码率,但在当前场景类型无需高码率时,则当前码率相应的为低码率,故实现了保证编码出图像质量可以满足实际的需求。于此同时,由于码率可以跟随场景在高和低之间调节,故又可以避免一直维持高码率导致设备性能不足的技术问题,使之在编码的过程中设备的性能能够满足码率的需求。

以上仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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