一种编码方法、装置和电子设备转让专利

申请号 : CN201811611361.4

文献号 : CN109660806B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈科吉

申请人 : 上海众源网络有限公司

摘要 :

本发明实施例提供了一种编码方法及装置,方法包括:获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用编码模式信息对第二路视频中的第二图像块进行编码,得到第二率失真代价;在第二率失真代价不大于率失真阈值时确定完成针对第二图像块的编码。本方案中,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时利用编码模式信息进行编码,在第二率失真代价不大于率失真阈值的情况下,不再选择其他编码模式,缩短了整个编码的时间。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率。

权利要求 :

1.一种编码方法,其特征在于,所述方法包括:

获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,所述第一图像块为所述第一路视频按照预设划分规则划分的多个图像块中的其中一块;

利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,所述第一路视频与所述第二路视频为视频内容相同的视频,所述第二图像块为:所述第二路视频按照所述预设划分规则划分的多个图像块中,与所述第一图像块在所述第一路视频中位置相同的图像块;

判断所述第二率失真代价是否大于率失真阈值;

如果所述第二率失真代价不大于率失真阈值,则确定完成针对所述第二图像块的编码;

其中,所述编码模式信息包括运动矢量,帧内预测角度,变换信息和量化参数信息;

所述率失真阈值通过以下方式得到:

将所述第一率失真代价乘以第一预设数值,得到所述率失真阈值;或者,将所述第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到所述率失真阈值。

2.根据权利要求1所述的方法,其特征在于,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息的步骤之前,还包括:对所述第一路视频中的所述第一图像块进行编码,得到所述第一图像块对应的第一率失真代价和编码模式信息;

将所述第一率失真代价和所述编码模式信息进行存储。

3.根据权利要求1所述的方法,其特征在于,利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价的步骤之前,还包括:获取所述预设划分规则,并确定所述第一图像块在划分后的所述第一路视频中的位置;

按照所述预设划分规则,将所述第二路视频划分为多个图像块;

从所述多个图像块中,将与所述第一图像块在所述第一路视频中位置相同的图像块确定为所述第二图像块。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第二率失真代价大于所述率失真阈值,利用预设的块编码器中预设的编码模式,分别对所述第二图像块进行编码,并分别得到对应的率失真代价;

从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对所述第二图像块进行编码的编码模式。

5.一种编码装置,其特征在于,所述装置包括:

第一获取模块,用于获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,所述第一图像块为所述第一路视频按照预设划分规则划分的多个图像块中的其中一块;

第一编码模块,用于利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,所述第一路视频与所述第二路视频为视频内容相同的视频,所述第二图像块为:所述第二路视频按照所述预设划分规则划分的多个图像块中,与所述第一图像块在所述第一路视频中位置相同的图像块;

判断模块,用于判断所述第二率失真代价是否大于率失真阈值;当所述判断模块的判断结果为否时,则确定完成针对所述第二图像块的编码;

其中,所述编码模式信息包括运动矢量,帧内预测角度,变换信息和量化参数信息;

所述率失真阈值通过以下方式得到:

将所述第一率失真代价乘以第一预设数值,得到所述率失真阈值;或者,将所述第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到所述率失真阈值。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:第二编码模块,用于对所述第一路视频中的所述第一图像块进行编码,得到所述第一图像块对应的第一率失真代价和编码模式信息;

存储模块,用于将所述第一率失真代价和所述编码模式信息进行存储。

7.根据权利要求5所述的装置,其特征在于,所述装置还包括:第二获取模块,用于获取所述预设划分规则,并确定所述第一图像块在划分后的所述第一路视频中的位置;

划分模块,用于按照所述预设划分规则,将所述第二路视频划分为多个图像块;

确定模块,用于从所述多个图像块中,将与所述第一图像块在所述第一路视频中位置相同的图像块确定为所述第二图像块。

8.根据权利要求5所述的装置,其特征在于,所述装置还包括:第三编码模块,用于若所述第二率失真代价大于所述率失真阈值,利用预设的块编码器中预设的编码模式,分别对所述第二图像块进行编码,并分别得到对应的率失真代价;

选择模块,用于从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对所述第二图像块进行编码的编码模式。

9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。

说明书 :

一种编码方法、装置和电子设备

技术领域

[0001] 本发明涉及多媒体技术领域,特别是涉及一种编码方法及装置。

背景技术

[0002] 视频在视频网站上线之前,需要通过视频编码进行处理,得到所需的视频。对于同一个视频,在不同地区视频上线的要求不同,比如,有的地区上线的视频可以带水印,而有的地区是不能带水印的。基于此,对于同一视频,需要制作多个不同的版本,以应对不同的需求。
[0003] 因此,目前针对同一视频,需要进行多路视频编码,每一路视频编码生成不同要求的视频。在进行多路视频编码时,目前主要的编码方式是编码复用方式,具体地,先对一路视频进行编码,再对另一路视频编码时,对于与前一路视频画面相同的区域,复用前一路视频的编码模式,而对于与前一路视频画面不同的区域,则采用无损编码来保证图像边界不变,进而保证经过编码后视频的质量。
[0004] 然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:目前的编码方式中,无损编码的码率较高,使得压缩效率降低。因此,如何在对视频内容相同的视频进行多路编码时在较高压缩效率的基础上提高编码速度是亟待解决的问题。

发明内容

[0005] 本发明实施例的目的在于提供一种编码方法及装置,以实现对相同的视频进行多路编码时能够在较高压缩效率的基础上提高编码速度。具体技术方案如下:
[0006] 第一方面,本发明实施例提供了一种编码方法,所述方法包括:
[0007] 获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,所述第一图像块为所述第一路视频按照预设划分规则划分的多个图像块中的其中一块;
[0008] 利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,所述第一路视频与所述第二路视频为视频内容相同的视频,所述第二图像块为:所述第二路视频按照所述预设划分规则划分的多个图像块中,与所述第一图像块在所述第一路视频中位置相同的图像块;
[0009] 判断所述第二率失真代价是否大于率失真阈值;
[0010] 如果所述第二率失真代价不大于率失真阈值,则确定完成针对所述第二图像块的编码。
[0011] 可选地,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息的步骤之前,还包括:
[0012] 对所述第一路视频中的所述第一图像块进行编码,得到所述第一图像块对应的第一率失真代价和编码模式信息;
[0013] 将所述第一率失真代价和所述编码模式信息进行存储。
[0014] 可选地,所述率失真阈值通过以下方式得到:
[0015] 将所述第一率失真代价乘以第一预设数值,得到所述率失真阈值;或者,将所述第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到所述率失真阈值。
[0016] 可选地,利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价的步骤之前,还包括:
[0017] 获取所述预设划分规则,并确定所述第一图像块在划分后的所述第一路视频中的位置;
[0018] 按照所述预设划分规则,将所述第二路视频划分为多个图像块;
[0019] 从所述多个图像块中,将与所述第一图像块在所述第一路视频中位置相同的图像块确定为所述第二图像块。
[0020] 可选地,所述方法还包括:
[0021] 若所述第二率失真代价大于所述率失真阈值,利用预设的块编码器中预设的编码模式,分别对所述第二图像块进行编码,并分别得到对应的率失真代价;
[0022] 从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对所述第二图像块进行编码的编码模式。
[0023] 第二方面,本发明实施例提供了一种编码装置,所述装置包括:
[0024] 第一获取模块,用于获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,所述第一图像块为所述第一路视频按照预设划分规则划分的多个图像块中的其中一块;
[0025] 第一编码模块,用于利用所述编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,所述第一路视频与所述第二路视频为视频内容相同的视频,所述第二图像块为:所述第二路视频按照所述预设划分规则划分的多个图像块中,与所述第一图像块在所述第一路视频中位置相同的图像块;
[0026] 判断模块,用于判断所述第二率失真代价是否大于率失真阈值;当所述判断模块的判断结果为否时,则确定完成针对所述第二图像块的编码。
[0027] 可选地,所述装置还包括:
[0028] 第二编码模块,用于对所述第一路视频中的所述第一图像块进行编码,得到所述第一图像块对应的第一率失真代价和编码模式信息;
[0029] 存储模块,用于将所述第一率失真代价和所述编码模式信息进行存储。
[0030] 可选地,所述率失真阈值通过以下方式得到:
[0031] 将所述第一率失真代价乘以第一预设数值,得到所述率失真阈值;或者,将所述第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到所述率失真阈值。
[0032] 可选地,所述装置还包括:
[0033] 第二获取模块,用于获取所述预设划分规则,并确定所述第一图像块在划分后的所述第一路视频中的位置;
[0034] 划分模块,用于按照所述预设划分规则,将所述第二路视频划分为多个图像块;
[0035] 确定模块,用于从所述多个图像块中,将与所述第一图像块在所述第一路视频中位置相同的图像块确定为所述第二图像块。
[0036] 可选地,所述装置还包括:
[0037] 第三编码模块,用于若所述第二率失真代价大于所述率失真阈值,利用预设的块编码器中预设的编码模式,分别对所述第二图像块进行编码,并分别得到对应的率失真代价;
[0038] 选择模块,用于从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对所述第二图像块进行编码的编码模式。
[0039] 第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0040] 存储器,用于存放计算机程序;
[0041] 处理器,用于执行存储器上所存放的程序时,实现上述任一所述的编码方法步骤。
[0042] 在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的编码方法。
[0043] 在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的编码方法。
[0044] 本发明实施例提供的技术方案中,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用该编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价;当第二率失真代价不大于率失真阈值时,则完成对第二图像块的编码。通过本发明实施例提供的技术方案,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时先利用该编码模式信息进行编码,在所得到的第二率失真代价不大于率失真阈值的情况下,不再进行其他编码模式的选择,缩短了整个编码的时间,提高了编码速度。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率,并且,利用率失真阈值保证了对第二路视频的编码质量。

附图说明

[0045] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0046] 图1为本发明实施例提供的编码方法的一种流程图;
[0047] 图2(a)为本发明实施例提供的图像划分的一种示意图;
[0048] 图2(b)为本发明实施例提供的图像划分的另一种示意图;
[0049] 图3为本发明实施例提供的编码装置的一种结构示意图;
[0050] 图4为本发明实施例提供的电子设备的一种结构示意图。

具体实施方式

[0051] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
[0052] 为了实现对相同的视频进行多路编码时能够在较高压缩效率的基础上提高编码速度,本发明实施例提供了一种编码方法及装置,其中,压缩效率是指在视频同样压缩失真的条件下,码率越小,压缩效率越高。本发明实施例提供的编码方法包括:
[0053] 获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,第一图像块为第一路视频按照预设划分规则划分的多个图像块中的其中一块;
[0054] 其中,第一率失真代价大于预设阈值。在第一率失真代价不大于预设阈值时,表示第一图像块的编码模式是可用的,否则,第二路视频因复用第一路视频的编码模式后可能无法取得更好的效果。
[0055] 利用编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,第一路视频与第二路视频为视频内容相同的视频,第二图像块为:第二路视频按照预设划分规则划分的多个图像块中,与第一图像块在第一路视频中位置相同的图像块;
[0056] 示例性的,第一路视频和第二类视频的视频内容相同,但是其中有一路视频携带有水印,如视频的标识等,这样的不同,需要判断第二类视频是否可以复用第一路视频的编码模式,如果可以则直接复用第一路的编码模式,否则采用其它的编码模式重新编码。其中,本发明实施例中由于第一路视频和第二类视频的视频内容相同,通过对第一路视频和第二类视频采用相同的划分方式,将这两路视频中的各个视频帧分别划分为多个对应的图像块,如下图的图2(a) 和图2(b)所示,通过分别判断第二路中的图像块是否可以复用第一路对应图像块的编码模式,来对第二路视频进行编码,进而完成第二路视频的整个编码,本发明实施例仅以这两路视频中分别对应的一个图像块为例进行说明,第二路图像中的其他图像块的编码模式亦是如此,这里不再赘述。
[0057] 判断第二率失真代价是否大于率失真阈值;
[0058] 如果第二率失真代价不大于率失真阈值,则确定完成针对第二图像块的编码。
[0059] 示例性的,由于第一路视频和第二类视频的视频内容相同,这两路视频中可能有一路视频中携带有水印,在将两路视频采用相同的方式将视频帧分别划分为多个图像块时,如果第一路视频中的第一图像块和对应的第二路图像中的第二图像块中有一个图像块存在水印,在该第二图像块复用该第一图像块的编码模式时,第二图像块的第二率失真代价就可能会大于失真率阈值。
[0060] 本发明实施例提供的技术方案中,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用该编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价;当第二率失真代价不大于率失真阈值时,则完成对第二图像块的编码。通过本发明实施例提供的技术方案,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时先利用该编码模式信息进行编码,在所得到的第二率失真代价不大于率失真阈值的情况下,不再进行其他编码模式的选择,缩短了整个编码的时间,提高了编码速度。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率,并且,利用率失真阈值保证了对第二路视频的编码质量。
[0061] 下面首先对本发明实施例提供的一种编码方法进行介绍。本发明实施例提供了一种编码方法,该编码方法可以应用于视频编码。如图1所示,本发明实施例提供的编码方法包括如下步骤。
[0062] S101,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息。
[0063] 其中,第一图像块为第一路视频按照预设划分规则划分的多个图像块中的其中一块。也就是说,对第一路视频进行编码时可以将第一路视频划分为若干图像块,然后依次对每一个图像块进行编码。当完成对第一路视频中所有图像块的编码时,即完成对第一路视频的编码。
[0064] 其中,对第一路视频进行划分的预设划分规则可以是自定义的。一种实现方式中,预设划分规则可以是不规则划分,还可以是规则划分的。以图2(a) 为例,将第一路视频规则划分为2×4的图像块,即将第一路视频划分为8个图像块。
[0065] 在将第一路视频按照预设划分规则划分为若干图像块之后,第一图像块可以是若干图像块中的任一图像块。以图2(a)为例,第一图像块可以是8个图像块中的任一一个,比如,第一图像块可以是编号为a1的图像块。
[0066] 第一率失真代价为针对第一图像块进行编码的率失真代价。其中,率失真代价用于表示图像失真与码率之间的关系,可以认为,对图像进行编码时是对失真和码率同时进行优化,以求达到一个较佳的平衡点,该平衡点即为率失真代价。率失真代价可以用以下公式表示:
[0067] J=D+λ·R
[0068] 其中,J为率失真代价,D为图像失真,λ为拉格朗日乘数,R为码率。
[0069] 因此,在对第一图像块进行编码时,图像失真以及码率是确定的,基于确定的图像失真和码率,可以得到针对第一图像块进行编码的率失真代价,即第一率失真代价。
[0070] 其中,所得到的编码模式信息是针对第一图像块进行编码的编码模式中的相关信息,例如,运动矢量,帧内预测角度等,根据该编码模式信息即可以确定第一图像块进行编码的编码模式。另外,基于所采用的H.264、H.265等编码标准,编码模式信息中还可以包括变换信息、量化参数信息等。
[0071] 一种实施方式中,在对第一图像块进行编码时,可以得到该第一图像块对应的第一率失真代价和编码模式信息,再将所得到的第一率失真代价和编码模式信息进行存储。这样,当对第二路视频进行编码,需要复用第一图像块的编码模式时,可以直接获取所存储的第一率失真代价和编码模式信息。
[0072] 其中,存储第一图像块的第一率失真代价和编码模式信息的存储介质中,还可以存储第一路视频中其他图像块的率失真代价和编码模式信息。
[0073] S102,利用编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价。
[0074] 其中,第二路视频可以为与第一路视频相同的视频。例如,第一路视频为原图像,第二路视频为在原图像的基础上加有logo的图像。
[0075] 对第二路视频进行编码前将第二路视频按照预设划分规则划分为若干图像块,然后依次对每一个图像块进行编码。当完成对第二路视频中所有图像块的编码时,即完成对第二路视频的编码。
[0076] 其中,对第一路视频的划分规则与第二路视频的划分规则相同,基于相同的预设划分规则,第一路视频和第二路视频划分后所得到的图像块数量相同,且每一图像块均是相对应的。例如,第一路视频中第一行第一列的图像块,与第二路视频中第一行第一列的图像块相对应。
[0077] 又例如,图2(a)为第一路视频,该第一路视频按照预设划分规则划分为 2×4的图像块,得到的各图像块的编号为:a1、a2、a3、a4、a5、a6、a7 和a8。图2(b)为第二路视频,第二路视频与第一路视频相同,只是在第一路视频的基础上多了一些logo,基于此第二路视频按照第一路视频的预设划分规则,划分为2×4的图像块,所得到的图像块的编号为:b1、b2、b3、b4、b5、 b6、b7和b8。其中,第一路视频中的图像块a1对应于第二路视频中的图像块 b1,图像块a2对应于图像块b2,图像块a3对应于图像块b3,图像块a4对应于图像块b4,图像块a5对应于图像块b5,图像块a6对应于图像块b6,图像块a7对应于图像块b7,图像块a8对应于图像块b8。
[0078] 其中,第二图像块为:第二路视频按照预设划分规则划分的多个图像块中,与第一图像块在第一路视频中位置相同的图像块。也就是说,第二图像块在第二路视频中的位置与第一图像块在第一路视频中的位置相同。
[0079] 以图2(a)和图2(b)为例,当第一图像块为a1时,第二图像块为b1;当第一图像块为a4时,第二图像块为b4;当第一图像块为a5时,第二图像块为b5。
[0080] 利用针对第一图像块的编码模式信息,即可以确定第一图像块编码的编码模式。复用第一图像块编码的编码模式,对第二图像块进行编码,可以得到第二率失真代价,该第二率失真代价即是针对第二图像块的率失真代价。
[0081] 一种实施方式中,利用编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价的步骤之前,还可以包括如下步骤。
[0082] 获取对第一路视频进行划分的预设划分规则,并确定第一图像块在划分后的第一路视频中的位置。按照预设划分规则,将第二路视频划分为多个图像块,其中第二路视频划分后所得到的图像块与第一路视频中的图像块数量相同,并且,第二路视频中的每一图像块与第一路视频中的一个图像块是一一对应的。在将第二路视频划分为多个图像块之后,从划分所得到的多个图像块中,将与第一图像块在第一路视频中位置相同的图像块确定为第二图像块。
[0083] 以图2(a)和图2(b)为例,第一路视频按照2×4的划分规则进行划分,所得到的图像块如图2(a)所示,其中,将图像块a1作为第一图像块,则确定的第一图像块在第一路视频中的位置为第一行第一列。在对第二路视频编码前,先按照2×4的划分规则对第二路视频进行划分,所得到图像块如图2(b)所示。在图2(b)中第一行第一列的图像块为b1,则将图像块b1确定为第二图像块。
[0084] S103,判断第二率失真代价是否大于率失真阈值;如果否,执行步骤S104,如果是,执行步骤S105。
[0085] 其中,率失真阈值用于当其他路图像复用第一图像块的编码模式时与所得到的率失真代价进行比较,以避免复用第一图像块的编码模式进行编码时出现失真较大的情况,进而确保其他路图像复用第一图像块的编码模式进行编码后图像的质量较好。率失真阈值可以通过以下至少两种方式得到。
[0086] 第一种实施方式中,可以将第一率失真代价乘以第一预设数值,得到率失真阈值,即可以用以下公式表示为:
[0087] T=a×cost
[0088] 其中,T为率失真阈值,a为第一预设数值,cost为第一率失真代价。
[0089] 其中,第一预设数值可以是自定义设定的。例如,第一预设数值可以是1.2,这样,当第一率失真代价为1000,则可以得到的率失真阈值为1200。
[0090] 第二种实施方式中,将第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到率失真阈值。即可以用以下公式表示为:
[0091] T=b×cost+c×λ
[0092] 其中,T为率失真阈值,b为第二预设数值,cost为第一率失真代价,c为预设倍数,λ为拉格朗日乘数。
[0093] 其中,第二预设数值可以是自定义设定的,预设倍数也可以是自定义设定的。例如,第二预设数值为1.1,预设倍数为5。
[0094] 基于第一率失真代价计算得到率失真阈值的实施方式并不仅限于以上两种,还可以有其他的计算方式,在此不作限定。
[0095] 在得到率失真阈值之后,将第二率失真代价与率失真阈值进行比较,以确定对第二图像块的编码是否失真较小。当第二率失真代价小于率失真阈值时,可以认为对第二图像块的编码失真较小;当第二率失真代价不小于率失真阈值时,可以认为对第二图像块的编码失真较大。
[0096] S104,确定完成针对第二图像块的编码。
[0097] 当判断出第二率失真代价不大于率失真阈值时,对第二图像块的编码失真较小,此时可以认为完成对第二图像块的编码,并可以对第二路视频中的下一个图像块进行编码。另外,可以将编码模式信息所确定的编码模式作为对第二图像块进行编码的编码模式。
[0098] 当判断出第二率失真代价大于率失真阈值时,即认为对第二图像块的编码失真较大,则认为编码模式信息所确定的编码模式不能作为对第二图像块进行编码的编码模式,需要重新确定一种编码模式,即步骤S105。
[0099] 利用预设的块编码器中预设的编码模式,分别对第二图像块进行编码,并分别得到对应的率失真代价;从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对第二图像块进行编码的编码模式。
[0100] 具体地,从预设的块编码器中获取预设的编码模式,其中,块编码器中存储的各编码模式的数量可以是自定义的,且各编码模式均满足H.264或H.265等标准。通过块编码器遍历每一编码模式,并利用每一种编码模式对第二图像块进行一次编码,并得到一个率失真代价。这样,块编码器中有多少编码模式,便可以得到多少个率失真代价。其中,对预设的编码模式进行遍历的顺序可以是自定义的。
[0101] 在遍历完块编码器中所有的编码模式之后,即预设的所有编码模式均已对第二图像块进行编码,从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对第二图像块进行编码的编码模式。
[0102] 例如,预设的块编码器中包括有4种编码模式,分别为:编码模式1、编码模式2、编码模式3和编码模式4。当判断出第二率失真代价大于率失真阈值时,块编码器可以先利用编码模式1对第二图像块进行编码,得到率失真代价1;再利用编码模式2对第二图像块进行编码,得到率失真代价2;再利用编码模式3 对第二图像块进行编码,得到率失真代价3;最后,利用编码模式4对第二图像块进行编码,得到率失真代价4。其中,率失真代价1、率失真代价2、率失真代价3和率失真代价4中最小的是率失真代价1,则将编码模式1确定为对第二图像块进行编码的编码模式。
[0103] 本发明实施例提供的技术方案中,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用该编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价;当第二率失真代价不大于率失真阈值时,则完成对第二图像块的编码。通过本发明实施例提供的技术方案,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时先利用该编码模式信息进行编码,在所得到的第二率失真代价不大于率失真阈值的情况下,不再进行其他编码模式的选择,缩短了整个编码的时间,提高了编码速度。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率,并且,利用率失真阈值保证了对第二路视频的编码质量。
[0104] 相应于上述编码方法实施例,本发明实施例还提供一种编码装置,如图3 所示,该编码装置包括:
[0105] 第一获取模块310,用于获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,第一图像块为第一路视频按照预设划分规则划分的多个图像块中的其中一块;
[0106] 第一编码模块320,用于利用编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,第一路视频与第二路视频为视频内容相同的视频,第二图像块为:第二路视频按照预设划分规则划分的多个图像块中,与第一图像块在第一路视频中位置相同的图像块;
[0107] 判断模块330,用于判断第二率失真代价是否大于率失真阈值;当判断模块的判断结果为否时,则确定完成针对第二图像块的编码。
[0108] 一种实施方式中,该编码装置还可以包括:
[0109] 第二编码模块,用于对第一路视频中的第一图像块进行编码,得到第一图像块对应的第一率失真代价和编码模式信息;
[0110] 存储模块,用于将第一率失真代价和编码模式信息进行存储。
[0111] 一种实施方式中,率失真阈值通过以下方式得到:
[0112] 将第一率失真代价乘以第一预设数值,得到率失真阈值;或者,
[0113] 将第一率失真代价与第二预设数值的乘积,加上预设倍数的拉格朗日乘数,得到率失真阈值。
[0114] 一种实施方式中,该编码装置还可以包括:
[0115] 第二获取模块,用于获取预设划分规则,并确定第一图像块在划分后的第一路视频中的位置;
[0116] 划分模块,用于按照预设划分规则,将第二路视频划分为多个图像块;
[0117] 确定模块,用于从多个图像块中,将与第一图像块在第一路视频中位置相同的图像块确定为第二图像块。
[0118] 一种实施方式中,该编码装置还可以包括:
[0119] 第三编码模块,用于若第二率失真代价大于率失真阈值,利用预设的块编码器中预设的编码模式,分别对第二图像块进行编码,并分别得到对应的率失真代价;
[0120] 选择模块,用于从所得到的率失真代价中选择最小的率失真代价,并将所选择的率失真代价对应的编码模式确定为对第二图像块进行编码的编码模式。
[0121] 本发明实施例提供的技术方案中,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用该编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价;当第二率失真代价不大于率失真阈值时,则完成对第二图像块的编码。通过本发明实施例提供的技术方案,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时先利用该编码模式信息进行编码,在所得到的第二率失真代价不大于率失真阈值的情况下,不再进行其他编码模式的选择,缩短了整个编码的时间,提高了编码速度。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率,并且,利用率失真阈值保证了对第二路视频的编码质量。
[0122] 本发明实施例还提供了一种电子设备,如图4所示,包括处理器410、通信接口420、存储器430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信,
[0123] 存储器430,用于存放计算机程序;
[0124] 处理器410,用于执行存储器430上所存放的程序时,实现如下步骤:
[0125] 获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,其中,第一图像块为第一路视频按照预设划分规则划分的多个图像块中的其中一块;
[0126] 利用编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价,其中,第一路视频与第二路视频为视频内容相同的视频,第二图像块为:第二路视频按照预设划分规则划分的多个图像块中,与第一图像块在第一路视频中位置相同的图像块;
[0127] 判断第二率失真代价是否大于率失真阈值;
[0128] 如果第二率失真代价不大于率失真阈值,则确定完成针对第二图像块的编码。
[0129] 本发明实施例提供的技术方案中,获取针对第一路视频中的第一图像块进行编码所得到的第一率失真代价和编码模式信息,利用该编码模式信息,对第二路视频中的第二图像块进行编码,得到第二率失真代价;当第二率失真代价不大于率失真阈值时,则完成对第二图像块的编码。通过本发明实施例提供的技术方案,从已编码的第一路视频中获取第一图像块的编码模式信息和第一率失真代价,对第二路视频中的第二图像块进行编码时先利用该编码模式信息进行编码,在所得到的第二率失真代价不大于率失真阈值的情况下,不再进行其他编码模式的选择,缩短了整个编码的时间,提高了编码速度。相比于无损编码,本方案中对第二路视频编码的码率较小,提高了压缩效率,并且,利用率失真阈值保证了对第二路视频的编码质量。
[0130] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0131] 通信接口用于上述电子设备与其他设备之间的通信。
[0132] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0133] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器 (Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0134] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的编码方法。
[0135] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的编码方法。
[0136] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0137] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0138] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于编码装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于编码方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0139] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。