CN104602018A - 视频数据的运动信息的获取方法和装置、编码方法和装置 - Google Patents
视频数据的运动信息的获取方法和装置、编码方法和装置 Download PDFInfo
- Publication number
- CN104602018A CN104602018A CN201410563612.1A CN201410563612A CN104602018A CN 104602018 A CN104602018 A CN 104602018A CN 201410563612 A CN201410563612 A CN 201410563612A CN 104602018 A CN104602018 A CN 104602018A
- Authority
- CN
- China
- Prior art keywords
- coding unit
- image
- motion estimation
- gradient
- described coding
- 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.)
- Granted
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频数据的运动信息的获取方法和装置、编码方法和装置。其中,该方法包括:在接收到当前编码帧图像之后,将当前编码帧图像分解为多个编码单元;获取每个编码单元的第一图像梯度幅值;根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型;基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息,其中,不同的图像类型对应的运动估计处理不同。采用本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间的效果。
Description
技术领域
本发明涉及视频压缩领域,具体而言,涉及一种视频数据的运动信息的获取方法和装置、编码方法和装置。
背景技术
视频压缩已经成为我们日常生活中必不可少的技术,通过视频压缩可以实现多种视频内容的上传下载。但是现有的压缩技术(如,MPEG-4)压缩效率低、占用带宽大,为了提高压缩效率引进了高效率视频编码(HighEfficiency Video Coding,即HEVC)。
HEVC压缩方案可以使视频内容的压缩效率提高50%左右,这就意味着视频内容的质量可以上升许多,而且可以节省下大量的网络带宽,对于消费者而言,可以享受到更高质量的4k视频、3D蓝光、高清视频内容。
具体地,由于视频序列在时间域存在很大的冗余度,在HEVC压缩方案的视频压缩和视频通信中,不需要将视频帧图像的所有像素信息发送到解码器端,而只需要运动信息和运动匹配后的残差信息,解码器即可根据参考帧图像、运动信息、残差信息得到当前帧,从而达到去除帧间冗余减少视频比特数的目的,通过这种方法可以提高压缩效率。
进一步地,上述的获得运动信息的过程被称为运动估计,在这个过程中需要在参考帧中搜索一个与当前帧图像编码单元最相似的图像块,即最佳匹配块,然后对整个当前帧图像的各个编码单元使用相同的搜索算法,不同的编码单元具有不同的纹理特征,使用同一种搜索算法,不一定适应于当前的编码单元,使用固定搜索算法搜索过程计算复杂度极大,HEVC压缩方案在提高压缩效率的同时,计算复杂度也提高为现有方案的2至4倍。
HEVC压缩方案运动估计的运算复杂度高,运动估计处理的时间长,从而导致进行高效率图像编码的速度慢、时间长。
针对上述的对视频数据进行运动估计处理复杂度高、耗时长的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种视频数据的运动信息的获取方法和装置、编码方法和装置,以至少解决对视频数据进行运动估计处理复杂度高、耗时长的技术问题。
根据本发明实施例的一个方面,提供了一种视频数据的运动信息的获取方法,该方法包括:在接收到当前编码帧图像之后,将所述当前编码帧图像分解为多个编码单元;获取每个所述编码单元的第一图像梯度幅值;根据所述编码单元的第一图像梯度幅值确定每个所述编码单元的图像类型;基于所述编码单元的图像类型对每个所述编码单元进行运动估计处理,得到所述编码单元的运动信息,其中,不同的所述图像类型对应的运动估计处理不同。
根据本发明实施例的另一方面,还提供了一种视频数据的运动信息的获取装置,该装置包括:分解模块,用于在接收到当前编码帧图像之后,将所述当前编码帧图像分解为多个编码单元;第一获取模块,用于获取每个所述编码单元的第一图像梯度幅值;第一确定模块,用于根据所述编码单元的第一图像梯度幅值确定每个所述编码单元的图像类型;处理模块,用于基于所述编码单元的图像类型对每个所述编码单元进行运动估计处理,得到所述编码单元的运动信息,其中,不同的所述图像类型对应的运动估计处理不同。
根据本发明实施例的一个方面,提供了一种视频数据的编码方法,该方法包括:获取当前编码帧图像;使用上述的视频数据的运动信息的获取方法获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;对所述运动矢量进行码率组织处理,得到比特流数据。
根据本发明实施例的另一方面,还提供了一种视频数据的编码装置,该装置包括:图像获取模块,用于获取当前编码帧图像;运动信息处理模块,用于应用上述的视频数据的运动信息的获取装置获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;码率组织模块,用于对所述运动矢量进行码率组织处理,得到比特流数据。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的视频数据的运动信息的获取方法的环境示意图;
图2是根据本发明实施例的视频数据的运动信息的获取方法的流程图;
图3是根据本发明实施例的一种可选的视频数据的运动信息的获取方法的流程图;
图4是根据本发明实施例的一种可选的获取编码单元的图像类型的流程图;
图5是根据本发明实施例的一种可选的设置编码单元的运动估计搜索算法的流程图;
图6是根据本发明实施例的一种可选的获取当前编码帧图像的梯度幅值的流程图;
图7是根据本发明实施例的视频数据的编码方法的流程图;
图8是根据本发明实施例的视频数据的运动信息的获取装置的示意图;
图9是根据本发明实施例的一种可选的视频数据的运动信息的获取装置的示意图;
图10是根据本发明实施例的视频数据的编码装置的示意图;
图11是根据本发明实施例的一种可选的视频数据的编码装置的示意图;以及
图12是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种视频数据的运动信息的获取方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述视频数据的运动信息的获取方法可以应用于如图1所示的终端101所构成的硬件环境中。该终端可以通过网络与服务器102建立连接,其中的终端上可以设置编码器,该终端还可以设置在服务器上。
上述网络包括但不限于:广域网、城域网或局域网。
根据本发明实施例,提供了一种视频数据的运动信息的获取方法,如图2所示,该方法可以包括如下步骤:
步骤S202:在接收到当前编码帧图像之后,将当前编码帧图像分解为多个编码单元。
步骤S204:获取每个编码单元的第一图像梯度幅值。
步骤S206:根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型。
步骤S208:基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。
其中,不同的图像类型对应的运动估计处理不同。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
下面结合附图3详细介绍本发明实施例,如图3所示,该实施例可以通过如下步骤实现:
步骤S302:计算当前编码帧图像的第二图像梯度幅值。
步骤S304:判断是否结束对当前编码帧图像中的所有编码单元的运动估计操作。
若尚未结束对当前编码帧图像中的所有编码单元的运动估计操作,则执行步骤S306;若结束对当前编码帧图像中的所有编码单元的运动估计操作,则结束流程。
步骤S306:根据当前编码帧图像的第二图像梯度幅值确定当前编码单元的第一图像梯度幅值。其中,当前编码单元为当前编码帧图像中当前处理的编码单元。
步骤S308:根据当前编码单元的第一图像梯度幅值确定当前编码单元的图像类型。
步骤S310:基于当前编码单元的图像类型对当前编码单元执行运动估计的操作。
步骤S312:获取当前编码单元的运动信息。
在上述实施例中,基于视觉感知的对当前编码单元进行自适应运动估计,对当前编码帧图像中每个编码单元(Code Unit,即CU)递归执行该流程,设置每个CU在运动估计过程中的处理方法。
通过上述实施例,根据编码单元的图像内容特点,在对图像进行编码时自适应地选择最佳的运动估计处理方法,从而可以在保护当前编码帧图像的重要的细节内容的同时,减少一些不太重要的区域的运动估计计算量。本发明上述实施例适用于各种场景的视频编码,能够大幅降低运动估计的计算复杂度,提高运动估计的效率,从而提高编码速度,同时保持编码效率几乎无损失。
根据本发明的上述实施例,基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息可以包括:按照每个编码单元的图像类型获取每个编码单元的运动估计搜索算法,其中,不同的图像类型对应的运动估计搜索算法的复杂度不同;使用每个编码单元的运动估计搜索算法对每个编码单元进行运动估计处理,得到各个编码单元的运动信息。
通过上述实施例,对应不同的编码单元的图像类型设置不同复杂度的运动估计搜索算法,可以根据人眼视觉感知特性,确定编码单元的图像类型,从而区分编码单元的细节多少、重要性的高低,依据不同的细节数、重要性设置不同复杂度的运动估计搜索算法,如,纹理多、图像细节多的区域可以设置复杂度高的运动搜索算法;细节相对较少的区域,设置复杂度相对较低的运动估计搜索算法;细节特别少的区域,设置复杂度低的简单的运动估计搜索算法。
通过上述实施例,能够保证图像质量的前提下,极大地提高视频编码速度,具有很强的实用性。
根据本发明的上述实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型可以包括:对每个编码单元的第一图像梯度幅值执行如下操作,直至确定每个编码单元的图像类型,操作包括:确定第一图像梯度幅值中的第一最大梯度幅值;判断第一最大梯度幅值是否大于第一梯度幅值阈值;在第一最大梯度幅值大于或等于第一梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为边缘区域;在第一最大梯度幅值小于第一梯度幅值阈值的情况下,判断第一最大梯度幅值是否大于第二梯度幅值阈值;在第一最大梯度幅值大于或等于第二梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为纹理区域;在第一最大梯度幅值小于第二梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为平坦区域。
通过上述实施例可以确定不同的编码单元的图像类型指示的编码单元的区域,如边缘区域、纹理区域和平坦区域,视频图像中边缘区域、纹理区域、平坦区域的图像细节特征依次减少、重要性依次降低。在本发明上述实施例中,可以根据视频图像中各个区域的重要性情况,采用不同复杂度的运动估计搜索算法。
下面结合附图4以当前编码单元的处理为例,详细介绍本发明上述实施例。如图4所示,上述实施例可以通过如下步骤实现:
步骤S402:获取当前编码单元的第一图像梯度幅值。
获取当前编码单元的第一图像梯度幅值gxy,其中,当前编码单元CU大小为wcu×hcu,gxy(u,v)为对应在当前编码单元CU中位置为(u,v)像素点对应的梯度幅值,其中,0≤u≤wcu,0≤v≤hcu。
步骤S404:计算当前编码单元的第一最大梯度幅值。
计算当前编码单元CU内的第一最大梯度幅值gmax,即
步骤S406:判断第一最大梯度幅值是否大于或等于第一梯度幅值阈值。
若第一最大梯度幅值大于或等于第一梯度幅值阈值,则执行步骤S408;若第一最大梯度幅值小于第一梯度幅值阈值,则执行步骤S410。
步骤S408:当前编码单元的图像类型指示当前编码单元为边缘区域。
步骤S410:判断第一最大梯度幅值是否大于或等于第二梯度幅值阈值。
若第一最大梯度幅值大于或等于第二梯度幅值阈值,则执行步骤S412;若第一最大梯度幅值小于第一梯度幅值阈值,则执行步骤S414。
步骤S412:当前编码单元的图像类型指示当前编码单元为纹理区域。
步骤S414:当前编码单元的图像类型指示当前编码单元为平坦区域。
在上述实施例中,如果gmax满足条件gmax≥T1,则将当前编码单元CU归属为边缘区域;如果gmax满足条件T2≤gmax<T1,则将当前编码单元CU归属为纹理区域;如果gmax满足条件gmax<T2,则将当前CU归属为平坦区域。
根据本发明的上述实施例,按照每个编码单元的图像类型获取每个编码单元的运动估计搜索算法可以包括:当编码单元的图像类型指示编码单元为边缘区域时,确定第一搜索算法为编码单元的运动估计搜索算法;当编码单元的图像类型指示编码单元为纹理区域时,确定第二搜索算法为编码单元的运动估计搜索算法;当编码单元的图像类型指示编码单元为平坦区域时,确定第三搜索算法为编码单元的运动估计搜索算法;其中,第一搜索算法的复杂度、第二搜索算法的复杂度以及第三搜索算法的复杂度依次变小。
通过上述实施例,对于细节较多的边缘区域,选择复杂度高的运动估计搜索算法;对于细节相对较少的纹理区域,选择复杂度相对较低的运动估计搜索算法;对于细节特别少的平坦区域,选择最为简单的运动估计搜索算法,通过对不同的图像细节特征和不同的重要度的区域设置不同复杂度的运动估计搜索算法,可以根据人眼视觉感知特性,自适应地采用不同的运动估计搜索算法,可以在保证图像质量的前提下,极大地降低运动估计的运算复杂度,提高视频编码速度。
需要进一步说明的是,按照每个编码单元的图像类型获取每个编码单元的运动估计搜索算法可以包括:获取编码器所支持的N种预设运动估计算法,其中,N种预设运动估计算法分别用M1,M2,…,MN表示,M1,M2,…,MN对应的预设运动估计算法的复杂度从低到高排序;获取编码器的编码参数中设置的预设运动估计算法Mi,当编码单元的图像类型指示编码单元为边缘区域时,选定Mi为编码单元的运动估计搜索算法;当编码单元的图像类型指示编码单元为纹理区域时,选定Mj为编码单元的运动估计搜索算法,其中,
当编码单元的图像类型指示编码单元为平坦区域时,选定M1为编码单元的运动估计搜索算法。
在上述实施例中,编码器支持的预设运动估计算法有N种,分别表示为M1,M2,…,MN,对应的复杂度从低到高排序。根据当前编码单元CU所属的区域类型,选择相应的运动估计搜索方法,具体地:
获取编码器外部的编码参数中设置的预设运动估计算法Mi。
当当前CU确定为边缘类型,则选择预设运动估计算法Mi为运动估计搜索算法;
当当前CU确定为纹理类型,则选择一种复杂度鉴于M1和Mi的搜索方法Mj;当当前CU确定为平坦类型,则选择搜索方法M1。
其中, 表示取小于或等于x的最小整数。
下面将结合图5以当前编码单元的处理为例详细介绍上述实施例,如图5所示,该实施例可以通过如下步骤实现:
步骤S502:确定编码器支持的N中预设运动估计算法。
步骤S504:获取编码器外部设置的搜索算法Mi。
步骤S506:获取当前编码单元的图像类型。
步骤S508:判断当前编码单元的图像类型是否指示当前编码单元为边缘区域。
若判断当前编码单元的图像类型指示当前编码单元为边缘区域,则执行步骤S510;若判断当前编码单元的图像类型指示当前编码单元不为边缘区域,则执行步骤S512。
步骤S510:设置运动估计搜索方法为Mi。
步骤S512:判断当前编码单元的图像类型是否指示当前编码单元为纹理区域。
若判断当前编码单元的图像类型指示当前编码单元为纹理区域,则执行步骤S514;若判断当前编码单元的图像类型指示当前编码单元不为纹理区域,则执行步骤S516。
步骤S514:设置运动估计搜索方法为Mj。
其中,j取大于或等于(1+i)/2的最小整数。
步骤S516:设置运动估计搜索方法为M1。
在本发明的上述实施例中,获取每个编码单元的第一图像梯度幅值可以包括:计算当前编码帧图像的第二图像梯度幅值;按照各个编码单元的像素点的坐标从第二图像梯度幅值中获取编码单元的第一图像梯度幅值。
在本发明一个可选的实施例中,还可以直接计算当前的编码单元的第一图像梯度幅值,而不通过当前编码帧图像的第二图像梯度幅值来确定第一图像梯度幅值。
具体地,计算当前编码帧图像的第二图像梯度幅值可以包括:使用预设水平方向模板对当前编码帧图像F进行水平方向的卷积操作,得到水平方向梯度场Gx;使用预设垂直方向模板对当前编码帧图像F进行垂直方向的卷积操作,得到垂直方向梯度场Gy;根据水平方向梯度场Gx和垂直方向梯度场Gy按照第一公式计算第二图像梯度幅值Gxy,其中,位置为(i,j)的像素点对应的梯度幅值表示为Gxy(i,j),第一公式为:Gxy(i,j)=|Gx(i,j)|+|Gy(i,j)|,其中,Gx(i,j)为当前编码帧图像F在坐标(i,j)位置对应的水平梯度值,Gy(i,j)为当前编码帧图像F在(i,j)位置对应的垂直梯度值。
下面结合附图6详细介绍上述实施例,如图6所示,上述实施例可以通过如下步骤实现:
步骤S602:计算当前编码帧图像的水平方向梯度场和垂直方向梯度场。
可以使用水平方向模板对当前编码帧图像F进行水平方向卷积操作,得到水平方向梯度场;使用垂直方向模板对当前编码帧图像F进行垂直方向卷积操作,得到垂直方向梯度场。
上述实施例中可以采用边缘检测算子(如sobel算子,索贝尔边缘检测算子)对当前视频帧图像F进行边缘提取。
采用的水平方向模板为:
垂直方向模板为:
使用水平方向模板和垂直方向模板分别对当前编码帧图像F进行水平和垂直方向的卷积操作,得到水平方向梯度场Gx和垂直方向梯度场Gy,即
Gx=F*Tx,
Gy=F*Ty。
步骤S604:根据水平方向梯度场和垂直方向梯度场计算当前编码帧图像的第二图像梯度幅值。
根据两个方向梯度场计算当前编码帧图像F的第二图像梯度幅值Gxy,位置为(i,j)像素点对应的梯度幅值表示为Gxy(i,j),即
Gxy(i,j)=|Gx(i,j)|+|Gy(i,j)|,
其中,Gx(i,j)为图像F在(i,j)位置对应的水平梯度值,Gy(i,j)为图像F在(i,j)位置对应的垂直方向梯度值。
在本发明的上述实施例中,在计算当前编码帧图像的第二图像梯度幅值之后,获取方法还可以包括:获取第二图像梯度幅值中的第二最大梯度幅值Gmax,Gmax=max0≤i<w,0≤i<hGxy(i,j),其中,w和h分别为当前编码帧图像F的宽度和高度;根据第二最大梯度幅值Gmax按照第二公式和第三公式确定第一梯度幅值阈值T1和第二梯度幅值阈值T2,其中,第二公式为:T1=α1·Gmax,第三公式为:T2=α2·Gmax,其中,α1为第一预设系数,α2为第二预设系数,第一预设系数大于第二预设系数。
上述实施例可以通过如图6所示的步骤S606至步骤S608。
步骤S606:计算当前编码帧图像的第二最大梯度幅值。
在该步骤中计算当前编码帧图像F的最大梯度幅值Gmax,即
Gmax=max0≤i<w,0≤i<hGxy(i,j),其中,w,h分别为图像F的宽度和高度。
步骤S608:根据第二最大梯度幅值确定第一梯度幅值阈值和第二梯度幅值阈值。
具体地,可以将第二最大梯度幅值与第一预设系数之积作为第一梯度幅值阈值,将第二最大梯度幅值与第二预设系数之积作为第二梯度幅值阈值,第一预设系数大于第一预设系数。
确定第一梯度幅值阈值T1和第二梯度幅值阈值T2,其中,T1=α1·Gmax,T2=α2·Gmax,其中,第一预设系数α1大于第二预设系数α2。
在得到第一梯度幅值阈值T1和第二梯度幅值阈值T2之后,可以将两个阈值用于确定各个编码单元的图像类型;在本发明的一个可选的实施例中,还可以直接从数据库中读取预设的第一梯度幅值阈值T1和预设的第二梯度幅值阈值T2。
通过上述实施例,在设计帧间预测中运动搜索算法选择时充分考虑到了人眼视觉感知特性,将编码单元划分为三种重要性不同的区域,采用复杂度较高且准确度较高的运动搜索算法来保护边缘区域来,从而确保视频图像质量不受影响;而采用复杂度较低的运动搜索算法来降低纹理和平坦区域的计算复杂度,从而有效降低了视频编码过程中运动估计的计算复杂度。本发明实施例,能够极大地提高编码速度,同时又能将编码效率损失控制在可接受范围内。在x265软件上的实验表明,对HEVC标准测试序列采用本发明的多参考帧快速选择方法可使编码时间能够平均节省30%以上,而编码效率损失控制在0.3%以内。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种视频数据的编码方法,如图7所示,该编码方法可以包括如下步骤:
步骤S702:获取当前编码帧图像。
步骤S704:使用视频数据的运动信息的获取方法获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量。
步骤S706:对所述运动矢量进行码率组织处理,得到比特流数据。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
上述实施例中基于人眼视觉感知特性的自适应运动估计算法可以通过参数、判断条件的调节,控制编码器的计算复杂度和压缩效率,适用于不同的应用场景和终端设备需求。
上述实施例中提出的自适应运动估计算法不改变码流结构,生成的码流可兼容H.264或HEVC标准,因此不需要对解码视频的播放客户端做任何修改,应用方便。
上述实施例中的运动信息的获取方法的实现方法与上述实施例中的实现方法一致,在此不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述方法的视频数据的编码装置,如图8所示,该装置可以包括:分解模块10、第一获取模块30、第一确定模块50、以及处理模块70。
其中,分解模块用于在接收到当前编码帧图像之后,将当前编码帧图像分解为多个编码单元;第一获取模块用于获取每个编码单元的第一图像梯度幅值;第一确定模块用于根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型;处理模块用于基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息,其中,不同的图像类型对应的运动估计处理不同。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
在上述实施例中,基于视觉感知的对每个编码单元进行自适应运动估计,对当前编码帧图像中每个编码单元(Code Unit,即CU)递归执行该流程,设置每个CU在运动估计过程中的处理方法。
通过上述实施例,根据编码单元的图像内容特点,在对图像进行编码时自适应地选择最佳的运动估计处理方法,从而可以在保护当前编码帧图像的重要的细节内容的同时,减少一些不太重要的区域的运动估计计算量。本发明上述实施例适用于各种场景的视频编码,能够大幅降低运动估计的计算复杂度,提高运动估计的效率,从而提高编码速度,同时保持编码效率几乎无损失。
根据本发明的上述实施例,如图9所示的处理模块70可以包括:第一获取子模块71,用于按照每个编码单元的图像类型获取每个编码单元的运动估计搜索算法,其中,不同的图像类型对应的运动估计搜索算法的复杂度不同;第一处理子模块73,用于使用每个编码单元的运动估计搜索算法对每个编码单元进行运动估计处理,得到各个编码单元的运动信息。
通过上述实施例,对应不同的编码单元的图像类型设置不同复杂度的运动估计搜索算法,可以根据人眼视觉感知特性,确定编码单元的图像类型,从而区分编码单元的细节多少、重要性的高低,依据不同的细节数、重要性设置不同复杂度的运动估计搜索算法,如,纹理多、图像细节多的区域可以设置复杂度高的运动搜索算法;细节相对较少的区域,设置复杂度相对较低的运动估计搜索算法;细节特别少的区域,设置复杂度低的简单的运动估计搜索算法。
通过上述实施例,能够保证图像质量的前提下,极大地提高视频编码速度,具有很强的实用性。
根据本发明的上述实施例,第一确定模块50可以包括如图9所示的:循环执行模块(图中未示出),用于对每个编码单元的第一图像梯度幅值对下述模块执行操作,直至确定每个编码单元的图像类型,循环执行模块可以包括:第一确定子模块501,用于确定第一图像梯度幅值中的第一最大梯度幅值;第一判断模块503,用于判断第一最大梯度幅值是否大于第一梯度幅值阈值;第二确定子模块505,用于在第一最大梯度幅值大于或等于第一梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为边缘区域;第二判断模块507,用于在第一最大梯度幅值小于第一梯度幅值阈值的情况下,判断第一最大梯度幅值是否大于第二梯度幅值阈值;第三确定子模块509,用于在第一最大梯度幅值大于或等于第二梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为纹理区域;第四确定子模块511,用于在第一最大梯度幅值小于第二梯度幅值阈值的情况下,确定编码单元的图像类型用于指示编码单元为平坦区域。
通过上述实施例可以确定不同的编码单元的图像类型指示的编码单元的区域,如边缘区域、纹理区域和平坦区域,视频图像中边缘区域、纹理区域、平坦区域的图像细节特征依次减少、重要性依次降低。在本发明上述实施例中,可以根据视频图像中各个区域的重要性情况,采用不同复杂度的运动估计搜索算法。
在本发明的上述实施例中,第一处理子模块可以包括:第五确定子模块,用于当编码单元的图像类型指示编码单元为边缘区域时,确定第一搜索算法为编码单元的运动估计搜索算法;第六确定子模块,用于当编码单元的图像类型指示编码单元为纹理区域时,确定第二搜索算法为编码单元的运动估计搜索算法;第七确定子模块,用于当编码单元的图像类型指示编码单元为平坦区域时,确定第三搜索算法为编码单元的运动估计搜索算法;其中,第一搜索算法的复杂度、第二搜索算法的复杂度以及第三搜索算法的复杂度依次变小。
通过上述实施例,对于细节较多的边缘区域,选择复杂度高的运动估计搜索算法;对于细节相对较少的纹理区域,选择复杂度相对较低的运动估计搜索算法;对于细节特别少的平坦区域,选择最为简单的运动估计搜索算法,通过对不同的图像细节特征和不同的重要度的区域设置不同复杂度的运动估计搜索算法,可以根据人眼视觉感知特性,自适应地采用不同的运动估计搜索算法,可以在保证图像质量的前提下,极大地降低运动估计的运算复杂度,提高视频编码速度。
需要进一步说明的是,第一处理子模块可以包括:第二获取子模块,用于获取编码器所支持的N种预设运动估计算法,其中,N种预设运动估计算法分别用M1,M2,…,MN表示,M1,M2,…,MN对应的预设运动估计算法的复杂度从低到高排序;第三获取子模块,用于获取编码器的编码参数中设置的预设运动估计算法Mi;第一选定模块,用于当编码单元的图像类型指示编码单元为边缘区域时,选定Mi为编码单元的运动估计搜索算法;第二选定模块,用于当编码单元的图像类型指示编码单元为纹理区域时,选定Mj为编码单元的运动估计搜索算法,其中,
第三选定模块,用于当编码单元的图像类型指示编码单元为平坦区域时,选定M1为编码单元的运动估计搜索算法。
在本发明的上述实施例中,第一获取模块可以包括:图9所示的计算模块31,用于计算当前编码帧图像的第二图像梯度幅值;第四获取子模块35,用于按照各个编码单元的像素点的坐标从第二图像梯度幅值中获取编码单元的第一图像梯度幅值。
具体地,计算模块可以包括:第一卷积计算模块,用于使用预设水平方向模板对当前编码帧图像F进行水平方向的卷积操作,得到水平方向梯度场Gx;第二卷积计算模块,用于使用预设垂直方向模板对当前编码帧图像F进行垂直方向的卷积操作,得到垂直方向梯度场Gy;幅值计算模块,用于根据水平方向梯度场Gx和垂直方向梯度场Gy按照第一公式计算第二图像梯度幅值Gxy,其中,位置为(i,j)的像素点对应的梯度幅值表示为Gxy(i,j),第一公式为:Gxy(i,j)=|Gx(i,j)|+|Gy(i,j)|,其中,Gx(i,j)为当前编码帧图像F在坐标(i,j)位置对应的水平梯度值,Gy(i,j)为当前编码帧图像F在(i,j)位置对应的垂直梯度值。
进一步地,在计算当前编码帧图像的第二图像梯度幅值之后,获取装置还可以包括:第二获取模块,用于获取第二图像梯度幅值中的第二最大梯度幅值Gmax,Gmax=max0≤i<w,0≤i<hGxy(i,j),其中,w和h分别为当前编码帧图像F的宽度和高度;第二确定模块,用于根据第二最大梯度幅值Gmax按照第二公式和第三公式确定第一梯度幅值阈值T1和第二梯度幅值阈值T2,其中,第二公式为:T1=α1·Gmax,第三公式为:T2=α2·Gmax,其中,α1为第一预设系数,α2为第二预设系数,第一预设系数大于第二预设系数。
在得到第一梯度幅值阈值T1和第二梯度幅值阈值T2之后,可以将两个阈值用于确定各个编码单元的图像类型。
通过上述实施例,在设计帧间预测中运动搜索算法选择时充分考虑到了人眼视觉感知特性,将编码单元划分为三种重要性不同的区域,采用复杂度较高且准确度较高的运动搜索算法来保护边缘区域来,从而确保视频图像质量不受影响;而采用复杂度较低的运动搜索算法来降低纹理和平坦区域的计算复杂度,从而有效降低了视频编码过程中运动估计的计算复杂度。本发明实施例,能够极大地提高编码速度,同时又能将编码效率损失控制在可接受范围内。在x265软件上的实验表明,对HEVC标准测试序列采用本发明的多参考帧快速选择方法可使编码时间能够平均节省30%以上,而编码效率损失控制在0.3%以内。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例4
根据本发明实施例,还提供了一种视频数据的编码装置,如图10所示,该编码装置可以包括:图像获取模块20、运动信息处理模块40和码率组织模块60。
其中,图像获取模块,用于获取当前编码帧图像;运动信息处理模块,用于应用上述视频数据的运动信息的获取装置获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;码率组织模块,用于对所述运动矢量进行码率组织处理,得到比特流数据。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
下面结合附图11详细介绍该装置。如图11所示,该装置可以设置在视频编码器100中,该编码装置还可以包括帧类型选择模块80、运动信息处理模块可以包括运动估计模块41、运动补偿模块43和运动搜索算法控制模块45。
如图11所示,在H.264和HEVC的视频编码器的运动信息获取模块中加入一个运动搜索算法控制模块,对输入的待编码视频源信号,通过帧类型选择模块,若为帧间预测模式,在运动估计模块中,根据自适应运动搜索算法控制模块设定的条件,对其中的每个编码单元依次进行自适应运动搜索算法计算,并记录最佳运动矢量、编码模式以及相应的编码后数据,再经码率组织模块写入比特流数据并输出。
本实施例中所提供的各个模块与方法实施例对应步骤所提供的使用方法相同、应用场景也可以相同。当然,需要注意的是,上述模块涉及的方案可以不限于上述实施例中的内容和场景,且上述模块可以运行在计算机终端或移动终端,可以通过软件或硬件实现。
实施例5
本发明的实施例还提供了一种终端或服务器。可选地,在本实施例中,上述终端可以执行视频数据的运动信息的获取方法和编码方法,上述实施例中的视频数据的运动信息的获取装置和编码装置可以设置在该终端或服务器上。
图12是根据本发明实施例的一种终端的结构框图。如图12所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205,如图7所示,该终端还可以包括输入输出设备207。
其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的视频数据的运动信息的获取方法和装置、编码方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的用于显示应用程序所占用的内存的方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器203用于存储应用程序。
处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:在接收到当前编码帧图像之后,将当前编码帧图像分解为多个编码单元;获取每个编码单元的第一图像梯度幅值;根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型;基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息,其中,不同的图像类型对应的运动估计处理不同。
处理器201还可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:获取当前编码帧图像;使用视频数据的运动信息的获取方法获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;对所述运动矢量进行码率组织处理,得到比特流数据。
采用本发明实施例,根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型,然后基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息。在上述实施例中,在编码单元进行运动估计过程中,对于不同的图像类型对应的运动估计处理不同,对应不同的图像类型的运动估计处理具有很好的适应性,从而可以在保持码率和信噪比几乎不变的同时,极大地节省了运动估计的运算时间,从而能够大量节省编码时间。通过本发明,解决了现有技术中对视频数据进行运动估计处理复杂度高、耗时长的问题,实现了降低视频编码的运动估计处理的复杂度,节省运动估计处理的时间,从而能够大量节省编码时间的效果。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
需要进一步说明的是,寄存区域为系统的内存和系统处理器中的寄存器。
本领域普通技术人员可以理解,图12所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Intemet Devices,MID)、PAD等终端设备。图12其并不对上述电子装置的结构造成限定。例如,终端还可包括比图12中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图12所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
实施例6
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述的存储介质存储用于执行用于显示应用程序所占用的内存的方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于实施例所示的终端上。
可选地,在本实施例中,上述存储介质可以位于网络中的多个网络设备中的一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
步骤S1:在接收到当前编码帧图像之后,将当前编码帧图像分解为多个编码单元。
步骤S2:获取每个编码单元的第一图像梯度幅值。
步骤S3:根据编码单元的第一图像梯度幅值确定每个编码单元的图像类型。
步骤S4:基于编码单元的图像类型对每个编码单元进行运动估计处理,得到编码单元的运动信息,其中,不同的图像类型对应的运动估计处理不同。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
步骤S2:获取当前编码帧图像。
步骤S4:使用视频数据的运动信息的获取方法获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量。
步骤S6:对所述运动矢量进行码率组织处理,得到比特流数据。
在上述实施例中,通过每个编码单元的第一图像梯度幅值确定各个编码单元的图像类型,即基于人眼视觉感知特性确定每个编码单元的图像类型,从而自适应地对编码单元进行运动估计处理。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (18)
1.一种视频数据的运动信息的获取方法,其特征在于,包括:
在接收到当前编码帧图像之后,将所述当前编码帧图像分解为多个编码单元;
获取每个所述编码单元的第一图像梯度幅值;
根据所述编码单元的第一图像梯度幅值确定每个所述编码单元的图像类型;
基于所述编码单元的图像类型对每个所述编码单元进行运动估计处理,得到所述编码单元的运动信息,
其中,不同的所述图像类型对应的运动估计处理不同。
2.根据权利要求1所述的获取方法,其特征在于,基于所述编码单元的图像类型对每个所述编码单元进行运动估计处理,得到所述编码单元的运动信息包括:
按照每个所述编码单元的图像类型获取每个所述编码单元的运动估计搜索算法,其中,不同的图像类型对应的所述运动估计搜索算法的复杂度不同;
使用每个所述编码单元的所述运动估计搜索算法对每个所述编码单元进行运动估计处理,得到各个所述编码单元的所述运动信息。
3.根据权利要求2所述的获取方法,其特征在于,根据所述编码单元的第一图像梯度幅值确定每个所述编码单元的图像类型包括:
对每个所述编码单元的所述第一图像梯度幅值执行如下操作,直至确定每个所述编码单元的图像类型,所述操作包括:
确定所述第一图像梯度幅值中的第一最大梯度幅值;
判断所述第一最大梯度幅值是否大于第一梯度幅值阈值;
在所述第一最大梯度幅值大于或等于所述第一梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为边缘区域;
在所述第一最大梯度幅值小于所述第一梯度幅值阈值的情况下,判断所述第一最大梯度幅值是否大于第二梯度幅值阈值;
在所述第一最大梯度幅值大于或等于所述第二梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为纹理区域;
在所述第一最大梯度幅值小于所述第二梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为平坦区域。
4.根据权利要求3所述的获取方法,其特征在于,按照每个所述编码单元的图像类型获取每个所述编码单元的运动估计搜索算法包括:
当所述编码单元的图像类型指示所述编码单元为所述边缘区域时,确定第一搜索算法为所述编码单元的运动估计搜索算法;
当所述编码单元的图像类型指示所述编码单元为所述纹理区域时,确定第二搜索算法为所述编码单元的运动估计搜索算法;
当所述编码单元的图像类型指示所述编码单元为所述平坦区域时,确定第三搜索算法为所述编码单元的运动估计搜索算法;
其中,所述第一搜索算法的复杂度、所述第二搜索算法的复杂度以及所述第三搜索算法的复杂度依次变小。
5.根据权利要求3或4所述的获取方法,其特征在于,按照每个所述编码单元的图像类型获取每个所述编码单元的运动估计搜索算法包括:
获取编码器所支持的N种预设运动估计算法,其中,所述N种预设运动估计算法分别用M1,M2,…,MN表示,M1,M2,…,MN对应的所述预设运动估计算法的复杂度从低到高排序;
获取所述编码器的编码参数中设置的预设运动估计算法Mi;
当所述编码单元的图像类型指示所述编码单元为所述边缘区域时,选定Mi为所述编码单元的运动估计搜索算法;
当所述编码单元的图像类型指示所述编码单元为所述纹理区域时,选定Mj为所述编码单元的运动估计搜索算法,其中,
当所述编码单元的图像类型指示所述编码单元为所述平坦区域时,选定M1为所述编码单元的运动估计搜索算法。
6.根据权利要求1所述的获取方法,其特征在于,获取每个所述编码单元的第一图像梯度幅值包括:
计算所述当前编码帧图像的第二图像梯度幅值;
按照各个所述编码单元的像素点的坐标从所述第二图像梯度幅值中获取所述编码单元的所述第一图像梯度幅值。
7.根据权利要求6所述的获取方法,其特征在于,计算所述当前编码帧图像的第二图像梯度幅值包括:
使用预设水平方向模板对所述当前编码帧图像F进行水平方向的卷积操作,得到水平方向梯度场Gx;
使用预设垂直方向模板对所述当前编码帧图像F进行垂直方向的卷积操作,得到垂直方向梯度场Gy;
根据所述水平方向梯度场Gx和所述垂直方向梯度场Gy按照第一公式计算所述第二图像梯度幅值Gxy,其中,位置为(i,j)的像素点对应的梯度幅值表示为Gxy(i,j),所述第一公式为:
Gxy(i,j)=|Gx(i,j)|+|Gy(i,j)|,其中,Gx(i,j)为所述当前编码帧图像F在坐标(i,j)位置对应的水平梯度值,Gy(i,j)为所述当前编码帧图像F在(i,j)位置对应的垂直梯度值。
8.根据权利要求7所述的获取方法,其特征在于,在计算所述当前编码帧图像的第二图像梯度幅值之后,所述获取方法还包括:
获取所述第二图像梯度幅值中的第二最大梯度幅值Gmax,Gmax=max0≤i<w,0≤i<hGxy(i,j),其中,w和h分别为所述当前编码帧图像F的宽度和高度;
根据所述第二最大梯度幅值Gmax按照第二公式和第三公式确定第一梯度幅值阈值T1和第二梯度幅值阈值T2,其中,
所述第二公式为:T1=α1·Gmax,所述第三公式为:T2=α2·Gmax,其中,所述α1为第一预设系数,所述α2为第二预设系数,所述第一预设系数大于所述第二预设系数。
9.一种视频数据的运动信息的获取装置,其特征在于,包括:
分解模块,用于在接收到当前编码帧图像之后,将所述当前编码帧图像分解为多个编码单元;
第一获取模块,用于获取每个所述编码单元的第一图像梯度幅值;
第一确定模块,用于根据所述编码单元的第一图像梯度幅值确定每个所述编码单元的图像类型;
处理模块,用于基于所述编码单元的图像类型对每个所述编码单元进行运动估计处理,得到所述编码单元的运动信息,
其中,不同的所述图像类型对应的运动估计处理不同。
10.根据权利要求9所述的获取装置,其特征在于,所述处理模块包括:
第一获取子模块,用于按照每个所述编码单元的图像类型获取每个所述编码单元的运动估计搜索算法,其中,不同的图像类型对应的所述运动估计搜索算法的复杂度不同;
第一处理子模块,用于使用每个所述编码单元的所述运动估计搜索算法对每个所述编码单元进行运动估计处理,得到各个所述编码单元的所述运动信息。
11.根据权利要求10所述的获取装置,其特征在于,所述第一确定模块包括:
循环执行模块,用于对每个所述编码单元的所述第一图像梯度幅值对下述模块执行操作,直至确定每个所述编码单元的图像类型,所述循环执行模块包括:
第一确定子模块,用于确定所述第一图像梯度幅值中的第一最大梯度幅值;
第一判断模块,用于判断所述第一最大梯度幅值是否大于第一梯度幅值阈值;
第二确定子模块,用于在所述第一最大梯度幅值大于或等于所述第一梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为边缘区域;
第二判断模块,用于在所述第一最大梯度幅值小于所述第一梯度幅值阈值的情况下,判断所述第一最大梯度幅值是否大于第二梯度幅值阈值;
第三确定子模块,用于在所述第一最大梯度幅值大于或等于所述第二梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为纹理区域;
第四确定子模块,用于在所述第一最大梯度幅值小于所述第二梯度幅值阈值的情况下,确定所述编码单元的图像类型用于指示所述编码单元为平坦区域。
12.根据权利要求11所述的获取装置,其特征在于,所述第一处理子模块包括:
第五确定子模块,用于当所述编码单元的图像类型指示所述编码单元为所述边缘区域时,确定第一搜索算法为所述编码单元的运动估计搜索算法;
第六确定子模块,用于当所述编码单元的图像类型指示所述编码单元为所述纹理区域时,确定第二搜索算法为所述编码单元的运动估计搜索算法;
第七确定子模块,用于当所述编码单元的图像类型指示所述编码单元为所述平坦区域时,确定第三搜索算法为所述编码单元的运动估计搜索算法;
其中,所述第一搜索算法的复杂度、所述第二搜索算法的复杂度以及所述第三搜索算法的复杂度依次变小。
13.根据权利要求11或12所述的获取装置,其特征在于,所述第一处理子模块包括:
第二获取子模块,用于获取编码器所支持的N种预设运动估计算法,其中,所述N种预设运动估计算法分别用M1,M2,…,MN表示,M1,M2,…,MN对应的所述预设运动估计算法的复杂度从低到高排序;
第三获取子模块,用于获取所述编码器的编码参数中设置的预设运动估计算法Mi;
第一选定模块,用于当所述编码单元的图像类型指示所述编码单元为所述边缘区域时,选定Mi为所述编码单元的运动估计搜索算法;
第二选定模块,用于当所述编码单元的图像类型指示所述编码单元为所述纹理区域时,选定Mj为所述编码单元的运动估计搜索算法,其中,
第三选定模块,用于当所述编码单元的图像类型指示所述编码单元为所述平坦区域时,选定M1为所述编码单元的运动估计搜索算法。
14.根据权利要求9所述的获取装置,其特征在于,所述第一获取模块包括:
计算模块,用于计算所述当前编码帧图像的第二图像梯度幅值;
第四获取子模块,用于按照各个所述编码单元的像素点的坐标从所述第二图像梯度幅值中获取所述编码单元的所述第一图像梯度幅值。
15.根据权利要求14所述的获取装置,其特征在于,所述计算模块包括:
第一卷积计算模块,用于使用预设水平方向模板对所述当前编码帧图像F进行水平方向的卷积操作,得到水平方向梯度场Gx;
第二卷积计算模块,用于使用预设垂直方向模板对所述当前编码帧图像F进行垂直方向的卷积操作,得到垂直方向梯度场Gy;
幅值计算模块,用于根据所述水平方向梯度场Gx和所述垂直方向梯度场Gy按照第一公式计算所述第二图像梯度幅值Gxy,其中,位置为(i,j)的像素点对应的梯度幅值表示为Gxy(i,j),所述第一公式为:
Gxy(i,j)=|Gx(i,j)|+|Gy(i,j)|,其中,Gx(i,j)为所述当前编码帧图像F在坐标(i,j)位置对应的水平梯度值,Gy(i,j)为所述当前编码帧图像F在(i,j)位置对应的垂直梯度值。
16.根据权利要求15所述的获取装置,其特征在于,在计算所述当前编码帧图像的第二图像梯度幅值之后,所述获取装置还包括:
第二获取模块,用于获取所述第二图像梯度幅值中的第二最大梯度幅值Gmax,Gmax=max0≤i<w,0≤i<hGxy(i,j),其中,w和h分别为所述当前编码帧图像F的宽度和高度;
第二确定模块,用于根据所述第二最大梯度幅值Gmax按照第二公式和第三公式确定第一梯度幅值阈值T1和第二梯度幅值阈值T2,其中,
所述第二公式为:T1=α1·Gmax,所述第三公式为:T2=α2·Gmax,其中,所述α1为第一预设系数,所述α2为第二预设系数,所述第一预设系数大于所述第二预设系数。
17.一种视频数据的编码方法,其特征在于,包括:
获取当前编码帧图像;
使用权利要求1至8中任意一项所述的视频数据的运动信息的获取方法获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;
对所述运动矢量进行码率组织处理,得到比特流数据。
18.一种视频数据的编码装置,其特征在于,包括:
图像获取模块,用于获取当前编码帧图像;
运动信息处理模块,用于应用权利要求9至16中任意一项所述的视频数据的运动信息的获取装置获取当前编码帧图像的运动信息,并对运动信息进行运动补偿得到运动矢量;
码率组织模块,用于对所述运动矢量进行码率组织处理,得到比特流数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410563612.1A CN104602018B (zh) | 2014-10-21 | 2014-10-21 | 视频数据的运动信息的获取方法和装置、编码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410563612.1A CN104602018B (zh) | 2014-10-21 | 2014-10-21 | 视频数据的运动信息的获取方法和装置、编码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104602018A true CN104602018A (zh) | 2015-05-06 |
CN104602018B CN104602018B (zh) | 2018-09-18 |
Family
ID=53127457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410563612.1A Active CN104602018B (zh) | 2014-10-21 | 2014-10-21 | 视频数据的运动信息的获取方法和装置、编码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104602018B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737831A (zh) * | 2017-04-19 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN110493602A (zh) * | 2019-08-19 | 2019-11-22 | 张紫薇 | 视频编码快速运动搜索方法及系统 |
CN113496504A (zh) * | 2020-03-20 | 2021-10-12 | 展讯通信(上海)有限公司 | 图像对齐方法及装置、存储介质、终端 |
CN114501015A (zh) * | 2022-04-06 | 2022-05-13 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030036264A (ko) * | 2003-01-24 | 2003-05-09 | 김만배 | 키 프레임의 움직임 유형을 이용한 화상의 움직임 유형결정 방법 및 장치 |
CN101184221A (zh) * | 2007-12-06 | 2008-05-21 | 上海大学 | 基于视觉关注度的视频编码方法 |
JP4166305B2 (ja) * | 1996-09-20 | 2008-10-15 | エイ・ティ・アンド・ティ・コーポレーション | ビデオの画像コーディング及びイントラコーディングのための暗黙の係数予測及び走査適合化を提供するビデオコーダー |
US20120082236A1 (en) * | 2010-09-30 | 2012-04-05 | Apple Inc. | Optimized deblocking filters |
CN103353985A (zh) * | 2013-03-27 | 2013-10-16 | 西华大学 | 一种图像高斯模糊的测度方法 |
CN103905825A (zh) * | 2012-12-27 | 2014-07-02 | 中国电信股份有限公司 | 视频图像的运动补偿方法和装置 |
CN104065962A (zh) * | 2013-10-28 | 2014-09-24 | 四川大学 | 基于视觉注意的宏块层比特分配优化方法 |
-
2014
- 2014-10-21 CN CN201410563612.1A patent/CN104602018B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4166305B2 (ja) * | 1996-09-20 | 2008-10-15 | エイ・ティ・アンド・ティ・コーポレーション | ビデオの画像コーディング及びイントラコーディングのための暗黙の係数予測及び走査適合化を提供するビデオコーダー |
KR20030036264A (ko) * | 2003-01-24 | 2003-05-09 | 김만배 | 키 프레임의 움직임 유형을 이용한 화상의 움직임 유형결정 방법 및 장치 |
CN101184221A (zh) * | 2007-12-06 | 2008-05-21 | 上海大学 | 基于视觉关注度的视频编码方法 |
US20120082236A1 (en) * | 2010-09-30 | 2012-04-05 | Apple Inc. | Optimized deblocking filters |
CN103905825A (zh) * | 2012-12-27 | 2014-07-02 | 中国电信股份有限公司 | 视频图像的运动补偿方法和装置 |
CN103353985A (zh) * | 2013-03-27 | 2013-10-16 | 西华大学 | 一种图像高斯模糊的测度方法 |
CN104065962A (zh) * | 2013-10-28 | 2014-09-24 | 四川大学 | 基于视觉注意的宏块层比特分配优化方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108737831A (zh) * | 2017-04-19 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN110493602A (zh) * | 2019-08-19 | 2019-11-22 | 张紫薇 | 视频编码快速运动搜索方法及系统 |
CN113496504A (zh) * | 2020-03-20 | 2021-10-12 | 展讯通信(上海)有限公司 | 图像对齐方法及装置、存储介质、终端 |
CN114501015A (zh) * | 2022-04-06 | 2022-05-13 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
CN114501015B (zh) * | 2022-04-06 | 2022-09-02 | 杭州未名信科科技有限公司 | 视频编码码率处理方法和装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104602018B (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8724711B2 (en) | Luma-based chroma intra prediction | |
EP1938613B1 (en) | Method and apparatus for using random field models to improve picture and video compression and frame rate up conversion | |
CN102611823B (zh) | 一种基于图片内容选择压缩算法的方法和设备 | |
JP2019525605A5 (zh) | ||
US10742989B2 (en) | Variable frame rate encoding method and device based on a still area or a motion area | |
CN107333027B (zh) | 一种视频图像增强的方法和装置 | |
CN107211131B (zh) | 对数字图像块进行基于掩码的处理的系统和方法 | |
CN104284188B (zh) | 预测块的划分方法、编码设备和解码设备 | |
CN103237216A (zh) | 深度图像的编解码方法和编解码装置 | |
CN104602018A (zh) | 视频数据的运动信息的获取方法和装置、编码方法和装置 | |
CN104023241A (zh) | 帧内预测编码的视频编码方法及视频编码装置 | |
CN110036637A (zh) | 结合多个去噪声化技术及并行分组图像补块的非局部适应性环路滤波器 | |
CN102113327B (zh) | 图像编码装置、方法、集成电路 | |
US20190182503A1 (en) | Method and image processing apparatus for video coding | |
US11636626B2 (en) | Apparatus and method of using AI metadata related to image quality | |
CN105163126B (zh) | 一种基于hevc协议的硬件解码方法和装置 | |
WO2023132919A1 (en) | Scalable framework for point cloud compression | |
CN101262598A (zh) | 马赛克图像合成的方法及装置 | |
CN114157868B (zh) | 视频帧的编码模式筛选方法、装置及电子设备 | |
CN106534850B (zh) | 图像处理装置、图像插值方法和图像编码方法 | |
CN107197281A (zh) | 一种实现运动估计的方法及电子设备 | |
CN114374841A (zh) | 视频编码码率控制的优化方法、装置及电子设备 | |
US9049432B1 (en) | Motion differential set partition coding for color image sequence compression | |
CN101310534A (zh) | 使用随机域模型改进图片和视频压缩以及帧速率上转换的方法和设备 | |
CN110636293A (zh) | 视频编码、解码方法和装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |