CN118057456A - 图像处理方法及电子设备 - Google Patents
图像处理方法及电子设备 Download PDFInfo
- Publication number
- CN118057456A CN118057456A CN202211444045.9A CN202211444045A CN118057456A CN 118057456 A CN118057456 A CN 118057456A CN 202211444045 A CN202211444045 A CN 202211444045A CN 118057456 A CN118057456 A CN 118057456A
- Authority
- CN
- China
- Prior art keywords
- triangle
- subdivision
- image
- vertex
- intersection point
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 176
- 230000033001 locomotion Effects 0.000 claims abstract description 73
- 239000013598 vector Substances 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000003068 static effect Effects 0.000 claims description 71
- 238000004590 computer program Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 230000000295 complement effect Effects 0.000 claims description 8
- 230000000007 visual effect Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 19
- 238000007726 management method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 238000009877 rendering Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 11
- 230000005236 sound signal Effects 0.000 description 9
- 238000000605 extraction Methods 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000010438 heat treatment Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 5
- 230000037431 insertion Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种图像处理方法及电子设备。该方法中,在基于第一真实帧和第二真实帧计算预测帧时,首先计算与第一真实帧和第二真实帧对应的运动矢量,并创建与第二真实帧对应的初始网格Mesh,然后基于像素深度值识别出细分交点,并基于细分交点对初始Mesh进行细分得到目标Mesh,再根据目标Mesh和运动矢量,对第二真实帧进行图像扭曲处理,生成预测帧图像。这样能够避免预测帧中深度值不连续的图像区域出现局部拉伸的问题,以较好地保留连续的图形信息,提升预测帧图像的画面质量,使得用户的视觉体验较佳。
Description
技术领域
本申请涉及智能终端技术领域,尤其涉及一种图像处理方法及电子设备。
背景技术
视频插帧技术旨在提高视频的帧率和流畅度,让视频看起来更加“丝滑”。只要在相邻的真实帧(或称原始帧)之间插入一个预测帧(或称中间帧、过渡帧等),视频的帧率就可以提高一倍,而预测帧的画质直接关系着视频的流畅程度。其中,通过相邻两帧图像信息计算出图像中各对象的移动方向和速度,并将图像中各对象进行相应的移动即可得到预测帧。
在当前的预测帧生成技术中,图像扭曲是能够较好地保证图像连续性的方式。然而,在一些图像区域中,图像扭曲操作可能会导致局部图像失真的问题,使得预测帧图像与真实帧图像之间的差异比较明显,极大地降低了用户视觉体验。
发明内容
为了解决上述技术问题,本申请实施例提供一种图像处理方法及电子设备。该方法中,在电子设备基于第一真实帧和第二真实帧计算预测帧时,首先计算与第一真实帧和第二真实帧对应的运动矢量,并创建与第二真实帧对应的初始网格Mesh,然后基于像素深度值识别出细分交点,并基于细分交点对初始Mesh进行细分得到目标Mesh,再根据目标Mesh和运动矢量,对第二真实帧进行图像扭曲处理,生成预测帧图像。这样能够避免预测帧中深度值不连续的图像区域出现局部拉伸的问题,以较好地保留连续的图形信息,提升预测帧图像的画面质量,使得用户的视觉体验较佳。
第一方面,本申请实施例提供一种图像处理方法。该方法包括:电子设备获取第一图像和第二图像,并根据第一图像和第二图像计算运动矢量;其中,第一图像和第二图像为真实帧图像;电子设备创建第二图像的初始网格Mesh,并在初始Mesh中确定与静态对象对应的待细分的初始几何图形;其中,初始几何图形的细分交点有且只有两个,位于初始几何图形的边上,且每个初始几何图形的每个边上至多存在一个细分交点;细分交点是根据初始几何图形中像素点的深度值确定的,为静态对象的边缘像素点;电子设备根据每个初始几何图形的两个细分交点,分别对相应的初始几何图形进行网格细分,得到第二图像的目标Mesh;在目标Mesh中,每个初始几何图形的两个细分交点的连线为目标三角形的边,或者连线上的部分线段为目标三角形的边;其中,目标三角形为在目标Mesh中划分的几何图形;电子设备根据目标Mesh和运动矢量,对第二图像进行图像扭曲处理,生成与第一图像和第二图像对应的预测帧图像。
其中,第一图像和第二图像可以为视频源中相邻的两帧真实帧图像。
示例性的,第一图像和第二图像中可以仅包括图像信息,也可以既包括图像信息又包括用户界面信息。
其中,细分交点,用于将初始Mesh中与静态对象对应的待细分的初始几何图形进行细分,以使细分后的每个几何图形的像素深度信息是连续的。
示例性的,初始几何图形可以为三角形,也可以为四边形、多边形等。
这样,能够避免预测帧图像中深度值不连续的图像区域出现局部拉伸的问题,以较好地保留连续的图形信息,提升预测帧图像的画面质量,使得用户的视觉体验较佳。
根据第一方面,初始Mesh为四边形Mesh,初始几何图形为四边形;在电子设备创建第二图像的初始Mesh之后,该方法还包括:电子设备将四边形Mesh进行标准化,以将每个四边形划分为两个三角形。
这样,在创建Mesh时划分的初始几何图形为非三角形时,对Mesh进行标准化处理,将每个初始几何图形划分为三角形,更有利于进行图形计算处理。
根据第一方面,或者以上第一方面的任意一种实现方式,待细分的四边形的细分交点为第一细分交点和第二细分交点,待细分的四边形划分为第一三角形和第二三角形;
其中,在目标Mesh中:
第一三角形细分为第一子三角形、第二子三角形和第三子三角形;其中,第一子三角形和第二子三角形的共用边为第一细分交点和第二细分交点的连线,第二子三角形和第三子三角形的共用边为第一细分交点或第二细分交点与第一三角形顶点的连线(此时可以参照图13b中(1)、(2)所示的情形);或者,
第二三角形细分为第四子三角形、第五子三角形和第六子三角形;其中,第四子三角形和第五子三角形的共用边为第一细分交点和第二细分交点的连线,第五子三角形和第六子三角形的共用边为第一细分交点或第二细分交点与第二三角形顶点的连线(此时可以参照图13b中(7)、(8)所示的情形);或者,
第一三角形细分为第七子三角形、第八子三角形和第九子三角形,第二三角形细分为第十子三角形、第十一子三角形和第十二子三角形;其中,第七子三角形和第八子三角形的共用边为第一细分交点与第三点的连线,第八子三角形和第九子三角形的共用边为第一细分交点与第一三角形顶点的连线;第十子三角形和第十一子三角形的共用边为第二细分交点与第三点的连线,第十一子三角形和第十二子三角形的共用边为第二细分交点与第二三角形顶点的连线;第一细分交点和第二细分交点的连线,与第一三角形和第二三角形的共用边的交点为第三点(此时可以参照图13b中(3)~(6)所示的情形)。
其中,第一三角形可以基于细分交点单独细分,也可以不不细分,还可以基于细分交点与第二三角形共同进行细分。这样,在目标Mesh中,划分的每个子三角形的像素点深度值都是连续的,这样以每个细分后的子三角形为单元进行图像扭曲处理时不会出现几何图形拉伸变形的问题,以此避免了预测帧图像中深度值不连续的图像区域出现局部拉伸的问题,能够较好地保留连续的图形信息。
根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:在目标Mesh中,电子设备设置每个三角形的深度信息。
这样,电子设备进行图像扭曲处理时,可以结合像素深度信息,以保证预测帧图像中不同对象之间正确的深度先后关系。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备根据目标Mesh和运动矢量,对第二图像进行图像扭曲处理,可以包括:针对目标Mesh中每个三角形,电子设备确定三角形各顶点的运动矢量,并根据三角形各顶点的运动矢量对三角形进行移动;在每个三角形移动至目标位置时,电子设备根据三角形的深度信息与目标位置处其他三角形的深度信息,确定三角形与目标位置处其他三角形的覆盖关系。
这样,电子设备在基于运动矢量移动一个三角形时,可以根据该三角形的深度信息确定其与其他三角形的覆盖关系,以保证预测帧图像中不同对象之间正确的深度先后关系。
根据第一方面,或者以上第一方面的任意一种实现方式,待细分的四边形的细分交点为第一细分交点和第二细分交点,待细分的四边形划分为第一三角形和第二三角形;电子设备根据初始几何图形的两个细分交点,对初始几何图形进行网格细分,可以包括:电子设备根据第一细分交点和第二细分交点,与第一三角形以及与第二三角形的位置关系,采用匹配的网格细分策略对第一三角形和/或第二三角形进行网格细分。
其中,电子设备根据第一细分交点和第二细分交点,与第一三角形以及与第二三角形的位置关系,可以单独对第一三角形进行网格细分,也可以单独对第二三角形进行网格细分,还可以共同对第一三角形和第二三角形进行网格细分。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备根据第一细分交点和第二细分交点,与第一三角形以及与第二三角形的位置关系,采用匹配的网格细分策略对第一三角形和/或第二三角形进行网格细分,可以包括:当第一细分交点的横坐标与第一三角形的第一顶点、第二顶点的横坐标相等,且第二细分交点的纵坐标与第一三角形的第二顶点、第三顶点的纵坐标相等时,电子设备连接第一细分交点和第二细分交点,以及连接第一细分交点和第一三角形的第三顶点或者连接第二细分交点和第一三角形的第一顶点,以单独将第一三角形细分为三个三角形。
在此情形下,电子设备根据第一细分交点和第二细分交点单独对第一三角形进行网格细分,不对第二三角形进行网格细分,此时可以参照图13b中(1)、(2)所示的情形。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备根据第一细分交点和第二细分交点,与第一三角形以及与第二三角形的位置关系,采用匹配的网格细分策略对第一三角形和/或第二三角形进行网格细分,可以包括:
当第一细分交点的横坐标与第二三角形的第一顶点、第二顶点的横坐标相等,且第二细分交点的纵坐标与第二三角形的第二顶点、第三顶点的纵坐标相等时,电子设备连接第一细分交点和第二细分交点,以及连接第一细分交点和第二三角形的第三顶点或者连接第二细分交点和第二三角形的第一顶点,以单独将第二三角形细分为三个三角形。
在此情形下,电子设备根据第一细分交点和第二细分交点单独对第二三角形进行网格细分,不对第一三角形进行网格细分,此时可以参照图13b中(7)、(8)所示的情形。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备根据第一细分交点和第二细分交点,与第一三角形以及与第二三角形的位置关系,采用匹配的网格细分策略对第一三角形和/或第二三角形进行网格细分,包括:
当第一细分交点的纵坐标与第一三角形的第二顶点、第三顶点的纵坐标相等,且第二细分交点的纵坐标与第二三角形的第二顶点、第三顶点的纵坐标相等时,电子设备连接第一细分交点和第二细分交点,连接第一细分交点和第一三角形的第一顶点,以及连接第二细分交点和第二三角形的第一顶点,以将第一三角形和第二三角形分别细分为三个三角形(此时可以参照图13b中(3)所示的情形);
当第一细分交点的横坐标与第一三角形的第一顶点、第二顶点的横坐标相等,且第二细分交点的横坐标与第二三角形的第一顶点、第二顶点的横坐标相等时,电子设备连接第一细分交点和第二细分交点,连接第一细分交点和第一三角形的第三顶点,以及连接第二细分交点和第二三角形的第三顶点,以将第一三角形和第二三角形分别细分为三个三角形(此时可以参照图13b中(5)所示的情形);
当第一细分交点的纵坐标与第一三角形的第二顶点、第三顶点的纵坐标相等,且第二细分交点的横坐标与第二三角形的第一顶点、第二顶点的横坐标相等时,电子设备连接第一细分交点和第二细分交点,连接第一细分交点和第一三角形的第一顶点,以及连接第二细分交点和第二三角形的第三顶点,以将第一三角形和第二三角形分别细分为三个三角形(此时可以参照图13b中(4)所示的情形);
当第一细分交点的横坐标与第一三角形的第一顶点、第二顶点的横坐标相等,且第二细分交点的纵坐标与第二三角形的第二顶点、第三顶点的纵坐标相等时,电子设备连接第一细分交点和第二细分交点,连接第一细分交点和第一三角形的第三顶点,以及连接第二细分交点和第二三角形的第一顶点,以将第一三角形和第二三角形分别细分为三个三角形(此时可以参照图13b中(6)所示的情形)。
在上述这四种情形下,电子设备可以根据第一细分交点和第二细分交点共同对第一三角形和第二三角形进行网格细分,使得每个细分后的三角形的像素点深度值都是连续的。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备在初始Mesh中确定与静态对象对应的待细分的初始几何图形,可以包括:电子设备在初始Mesh中确定与静态对象对应的初始几何图形;电子设备确定每个初始几何图形的细分交点;电子设备将细分交点数量为2且每个边上至多存在一个细分交点的初始几何图形,作为待细分的初始几何图形。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备确定初始几何图形的细分交点,可以包括:电子设备在初始几何图形中确定各个边缘像素点;其中,边缘像素点的深度值在预设范围内,且边缘像素点与周围像素点的深度值之差超过预设阈值;电子设备将位于初始几何图形的边上的边缘像素点作为初始几何图形的细分交点。
这样,在图像中静态对象边缘上的像素点中确定细分交点,以使细分后的三角形的像素点深度值都是连续的。
根据第一方面,或者以上第一方面的任意一种实现方式,第一图像和第二图像为已渲染的图像。
由于第一图像和第二图像为已渲染的图像,基于二者计算得到的预测帧图像也为已渲染图像,能够实现同帧率下渲染减半,从而大幅度降低电子设备功耗,减少电子设备的发热。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备获取第一图像和第二图像,可以包括:电子设备获取第一资源图像,并在第一资源图像中分离用户界面UI信息,得到第一图像;电子设备获取第二资源图像,并在第二资源图像中分离UI信息,得到第二图像;在电子设备生成与第一图像和第二图像对应的预测帧图像之后,还包括:电子设备对预测帧图像进行图像补全处理,并将补全处理后的预测帧图像和UI信息进行融合,得到目标预测帧图像。
其中,资源图像中包括图像信息和UI信息。
其中,在第一资源图像中分离的UI信息与在第二资源图像中分离的UI信息可以相同也可以不同。
在第一资源图像中分离的UI信息与在第二资源图像中分离的UI信息不同时,电子设备将第二预测帧图像和与第二资源图像对应的UI信息进行融合,得到目标预测帧图像。其中,第二资源图像为当前帧资源图像,第一资源图像为当前帧资源图像的前一帧资源图像。
这样,电子设备在资源图像中分离UI信息后再进行预测帧图像计算,能够有效降低图像数据处理量,也能提升预测帧图像信息的准确性。
根据第一方面,或者以上第一方面的任意一种实现方式,第一资源图像和第二资源图像为游戏应用中的资源图像。
在游戏插帧场景中,图像场景比较复杂,静态对象(例如各种建筑物等)较多且静态对象在场景中的深度差异较大(也即不同静态对象的深度值不连续)。另外,由于游戏多为虚拟世界,在用户玩手机游戏时,用户操作往往会导致游戏场景的大角度晃动,不像物理世界中对象移动会遵循物理规律。由此,在游戏场景比较复杂的情况下,大角度的场景晃动有可能只会使图像中部分对象的移动较大,而非能使图像中所有对象的移动幅度都较大。也就是说,在游戏场景中,基于连续的真实帧图像计算得到的MV图像的分布是不均匀的,尤其是在深度信息差异较大的图像区域中,MV值的差异也是比较大的。在游戏插帧场景中,电子设备基于MV计算预测帧图像时,预测帧图像中极大可能出现深度值不连续的静态对象边缘区域失真的问题。
在本申请实施例提供的技术方案中,通过像素深度值识别出游戏图像中静态对象的边缘区域,基于像素点深度信息对边缘区域进行Mesh几何细分,并以细分后的Mesh几何图形为单元进行图像扭曲处理,以此解决在游戏场景预测帧图像中的静态对象边缘区域失真的问题,提升用户的游戏体验。
第二方面,本申请实施例提供一种电子设备。该电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行第一方面以及第一方面中任意一项的图像处理方法。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请实施例提供一种计算机可读存储介质。该计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第一方面以及第一方面中任意一项的图像处理方法。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面或第一方面中任意一项的图像处理方法。
第四方面以及第四方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第五方面,本申请提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚和该处理电路通过内部连接通路互相通信,该处理电路执行如第一方面或第一方面中任意一项的图像处理方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
第五方面以及第五方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a为示例性示出的插帧模式示意图;
图1b为示例性示出的预测帧插帧示例图;
图2为示例性示出的预测帧图像的生成流程示意图;
图3为示例性示出的图像网格化示意图;
图4为示例性示出的深度图像;
图5为示例性示出的应用场景示意图;
图6为示例性示出的图像网格扭曲示意图;
图7为示例性示出的电子设备的硬件结构示意图;
图8为示例性示出的电子设备的软件结构示意图;
图9为示例性示出的图像处理方法涉及的模块交互示意图;
图10为示例性示出的图像扭曲流程示意图;
图11为示例性示出的网格标准化示意图;
图12为示例性示出的细分交点的确定流程图;
图13a为示例性示出的细分交点分布示意图;
图13b为示例性示出的网格细分示意图;
图14为示例性示出的网格移动示意图;
图15a为示例性示出的应用场景示意图之一;
图15b为示例性示出的应用场景示意图之一。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
随着电子技术的发展,智能终端屏幕的刷新率越来越高,视频源的帧率也越来越高,在智能终端中的内存占用和渲染功耗也会随之增加。然而,由于智能终端功耗或CPU、GPU的能力限制,高刷新率和高帧率往往会使智能终端出现发热或卡顿的现象,从而影响用户的使用体验。
以手机游戏为例,随着大型手机游戏的发展和推广,现代手机游戏的渲染管线越来越复杂,资源负载也越来越大。同时,现代智能终端的算力增长并未满足现代大型手游的需要,且智能终端受限于有限的电池容量和散热能力。因此,开发者聚焦在如何在保证游戏画质不受明显影响的情况下,减少不必要的渲染开销,提高有限的帧率和流畅度,减小发热。
为了提升用户的使用体验,开发者往往会降低视频源的帧率,再通过视频插帧技术提高视频帧率,实现同帧率下渲染减半,从而大幅度降低智能终端功耗,减少智能终端的发热。
视频插帧技术旨在提高视频的帧率和流畅度,让视频看起来更加“丝滑”。只要在相邻的真实帧(或称原始帧等)之间插入一个预测帧(或称中间帧、过渡帧等),视频的帧率就可以提高一倍。而预测帧的画质直接关系着视频的流畅程度。其中,通过相邻两个真实帧的图像信息计算出图像中各对象的移动方向和速度,并将图像中各对象进行相应的移动即可得到预测帧。
顾名思义,真实帧指的是视频源中原始存在的图像帧,并非是通过预测手段生成的图像帧。示例性的,真实帧可以是在游戏等应用开发时开发人员绘制的图像帧,也可以是在视频制作时通过图像采集设备(例如摄像机等)采集到的图像帧。
参照图1a所示,视频插帧方式可以分为预测帧内插和预测帧外插。在预测帧内插方式中,如图1a中(1)所示,根据相邻的两帧真实帧图像计算出预测帧图像,并将预测帧图像插帧这两帧真实帧图像之间,以此提高视频帧率。在预测帧外插方式中,如图1a中(2)所示,根据相邻的两帧真实帧图像计算出预测帧图像,并将预测帧图像插帧这两帧真实帧图像之后作为下一帧图像,以此提高视频帧率。
以预测帧内插方式为例,参照图1b所示:根据真实帧1和真实帧2计算出预测帧1,并将预测帧1插入真实帧1和真实帧2之间;根据真实帧2和真实帧3计算出预测帧2,并将预测帧2插入真实帧2和真实帧3之间;根据真实帧3和真实帧4计算出预测帧3,并将预测帧3插入真实帧3和真实帧4之间;以此类推。这样,通过预测帧内插的方式提高了视频的帧率,使静态对象和动态对象移动过渡得更加平滑,画面更加流畅。
下述以游戏场景为例,对预测帧的生成过程进行简要说明。需要指出的是,本实施例举例示出的相关附图均以灰度图形式示出。
如图2所示,第一真实帧和第二真实帧是某游戏应用中相邻的两个图像帧。其中,假设第二真实帧是当前图像帧,第一真实帧是第二真实帧的前一图像帧。由此,智能终端可以根据第一真实帧和第二真实帧计算预测帧。以预测帧内插方式为例,智能终端可以将计算得到的预测帧插帧于这两个真实帧之间进行显示,以此提高游戏视频的帧率,实现同帧率下渲染减半。
在该游戏应用中,真实帧中包括图像信息和UI(User Interface,用户界面)信息。其中,图像信息可以理解为视频源中的画面信息,UI信息指的是对软件的人机交互、操作逻辑、界面美观的整体设计信息。在智能终端基于相邻的真实帧计算预测帧时,由于界面UI信息不会发生变化,则智能终端可以首先将图像信息和UI信息分离,只基于图像信息进行预测帧的计算,以此降低图像数据的处理量,并提高预测帧的准确性。由此,如图2所示,在计算预测帧时,智能终端可以首先在第一真实帧中提取第一图像101和第一UI 102,在第二真实帧中提取第二图像103和第二UI 104,再根据第一图像101和第二图像帧进行图像预测操作,以得到预测帧图像107。
继续参照图2,在计算预测帧图像107时,智能终端可以首先计算第一图像101和第二图像103的运动矢量(Motion Vector,MV)105,并基于运动矢量105对第二图像103进行图像扭曲(Warping)处理,得到预测帧图像106。其中,图像扭曲处理是指通过一定的变换改变图像像素的位置,例如平移变换、旋转变换、比例缩放变换、仿射变换、透视变换、柱状变换等。
其中,图像扭曲处理能够较好地保证图像中各对象的连续移动,但由于图像各个对象的移动速度不同,故经过图像扭曲处理得到的预测帧图像106中可能会出现图像信息覆盖或图像信息缺失的情况,智能终端还需要对预测帧图像106进行图像补全(Blur)处理,以得到预测帧图像107。此时,智能终端再将第二UI 104和预测帧图像107进行融合,即可得到基于第一真实帧和第二真实帧计算得到的预测帧108。
需要注意的是,无论是图像扭曲处理,还是融合UI信息处理,均可以是以当前真实帧中的信息为基准的。当然,图像扭曲处理以及融合UI信息处理,也可以是以当前真实帧的前一帧信息为基准的,本实施例对此不做限定。
其中,在计算机图形学中,通常以网格(Mesh)几何作为图像处理的基本单元。类似的,在上述提及的图像扭曲处理阶段,智能终端也是以网格几何为基本单位进行图像扭曲处理的。也就是说,智能终端通过在图像中形成三角形或四边形的几何组来执行图像扭曲处理。以四边形网格为例,如图3所示,图像帧20为一个全局工作组。在图像帧20中可以划分出多个四边形201,每个四边形201中包括多个像素点2011。其中,每个四边形201为一个局部工作组,为智能终端进行图像扭曲处理的一个基本单元。
然而,在图像中显示的各对象是带有深度信息的,故在图像中每个像素的深度值不尽相同。其中,一个像素点的深度值,是指从图像采集器(例如相机等)到图像场景中这个点的垂直距离(深度),取值范围为0-1的浮点数。图4示例性的示出了一张深度图像(depthimage)。深度图像是指将从图像采集器到场景中各点的垂直距离(深度)作为像素值的图像。由于深度值只是一个浮点数,故深度图的每个像素就只需要存储r(red)通道的浮点数值即可,因此我们看到的深度图是红黑色的(图4以灰度图形式示出)。示例性的,如图4所示,当对象离图像采集器越近,深度图上对应的区域越红(深度值接近1),越远则越黑(深度值接近0)。也就是说,深度值从0到1代表的是对象距离图像采集器从远到近。
在像素的深度值不连续的图像区域中,如Mesh中同一个几何图形中像素点的深度值不连续,以该几何图形作为图像扭曲处理的一个基本单元会导致图像出现局部拉伸的问题,甚至是对象深度信息异常的问题,使得预测帧图像画面失真,进而会使得预测帧与真实帧的差异较大,用户视觉体验差。例如,在图像Mesh的一个几何图形中,某个像素点与其周围像素的深度值差值大于设定阈值,则该几何图形中像素深度值不连续。
图5示例性的示出了真实帧和预测帧的对比示意图。在如图5所示的图像场景中,图像中柱子的边缘区域为深度值不连续的区域,柱子区域像素点的深度值明显大于天空区域像素点的深度值。如图5中(1)所示的真实帧中,图像中柱子的边缘是直的,而在如图5中(2)所示的预测帧中,图像中柱子的边缘处出现了局部拉伸问题,且部分天空区域像素点的深度值大于柱子区域像素点的深度值(即天空距离图像采集器比柱子更近,对象深度信息异常)。这样,预测帧图像出现了失真的问题,与真实帧差异较大。
由此,在经过图像扭曲处理生成的预测帧中,深度值不连续图像区域会出现了局部拉伸的问题,甚至是对象深度信息异常的问题,与真实场景区别较大,使得用户的视觉体验较差。
为了解决上述问题,本申请实施例提供了一种图像处理方法。在该方法中,针对深度值不连续的图像区域,智能终端基于像素点的深度信息对图像网格进行细分,并以细分后的图像Mesh几何为单元进行图像扭曲处理,以此解决在预测帧图像中深度值不连续的图像区域会出现局部拉伸的问题,以较好地保留连续的图形信息,进而提升预测帧图像的画面质量,使得用户的视觉体验较佳。
另外,智能终端以细分后的图像Mesh几何为单元进行图像扭曲处理时,还会结合像素点的深度信息进行相关处理,以使预测帧图像中的对象能够保持正确的深度关系,避免出现对象深度信息异常的问题。
其中,本申请实施例提供图像处理方法适用于深度信息差异较大的图像插帧场景中,例如游戏插帧场景中。
众所周知,在手机游戏中,图像场景比较复杂,静态对象(例如各种建筑物等)较多且静态对象在场景中的深度差异较大(也即不同静态对象的深度值不连续)。另外,由于游戏多为虚拟世界,在用户玩手机游戏时,用户操作往往会导致游戏场景的大角度晃动,不像物理世界中对象移动会遵循物理规律。由此,在游戏场景比较复杂的情况下,大角度的场景晃动有可能只会使图像中部分对象的移动较大,而非能使图像中所有对象的移动幅度都较大。也就是说,在游戏场景中,基于连续的真实帧图像计算得到的MV图像的分布是不均匀的,尤其是在深度信息差异较大的图像区域中,MV值的差异也是比较大的。
由此,在游戏插帧场景中,电子设备基于MV计算预测帧图像时,预测帧图像中极大可能出现深度值不连续的静态对象边缘区域失真的问题。
图6中(1)示例性的示出了基于游戏图像计算得到的运动矢量帧的灰度图。在如图6中(1)所示的灰度图中,灰度越浅(灰度值越接近于1)的区域的运动矢量越小,灰度越深(灰度值越接近于0)的区域的运动矢量越大。继续参照图6中(1),图像帧中静态对象的边缘区域左右两侧的运动矢量变化大。结合图6中(1)和(2),以区域301为例,子区域3011对应于图像中的柱子区域,子区域3012对应于图像中的天空区域,与柱子对应的运动矢量明细小于与天空对应的运动矢量。也就是说,柱子边缘区域左右两侧的运动矢量值的变化较大。在此情形下,一旦同一个图像Mesh几何中不同像素区域对应的运动矢量差异较大,基于运动矢量对该Mesh几何进行图像扭曲处理必然会导致Mesh几何图形严重变形,甚至出现部分Mesh几何图形交叠的问题,而且也无法保证图像中对象深度信息的正确性。如图6中(3)所示,在Mesh几何图形201四个顶点中,V0和V1对应的运动矢量,与V2和V3对应的运动矢量差别较大,将各个顶点按照各自对应的运动矢量移动后,Mesh几何图形201扭曲为Mesh几何图形201’,不仅Mesh几何图形严重变形,而且有可能覆盖其他的Mesh几何图形。这样会使得预测帧图像部分区域失真,尤其是静态对象的边缘区域(即深度值不连续的像素区域)失真,可以参照图6中(4)所示。
在本申请实施例提供的技术方案中,通过像素深度值识别出游戏图像中静态对象的边缘区域,基于像素点深度信息对边缘区域进行Mesh几何细分,并以细分后的Mesh几何图形为单元进行图像扭曲处理,以此解决在游戏场景预测帧图像中的静态对象边缘区域失真的问题,提升用户的游戏体验。
如图7所示为电子设备100的结构示意图。可选地,电子设备100可以为终端,也可以称为终端设备、智能终端等,终端可以为蜂窝电话(cellular phone)或平板电脑(pad)等设备,本申请不做限定。应该理解的是,图7所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图6中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器,陀螺仪传感器,加速度传感器,温度传感器,运动传感器,气压传感器,磁传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器,骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
在本申请实施例中,在生成预测帧图像时,GPU可以基于本申请实施例提供的图像处理方法对图像网格进行细分,并基于细分后的图像网格进行图像扭曲处理,以生成预测帧图像。GPU还可以对预测帧进行图像补全处理,达到快速补全预测帧图像的效果。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的图像处理方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。在一些实施例中,电子设备100可以设置多个扬声器170A。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏194。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
陀螺仪传感器可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。
加速度传感器可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时加速度传感器可检测出重力的大小及方向。加速度传感器还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。
按键190包括开机键(或称电源键),音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图8是本申请实施例的电子设备100的软件结构框图。
电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图8所示,应用程序包可以包括游戏、视频、相机、图库、WLAN、蓝牙、通话、日历、地图、导航等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图8所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知信息被用于告知下载完成,消息提醒等。通知信息还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。通知信息例如还可以是在状态栏提示的文本信息,电子设备发出的提示音、振动,指示灯的闪烁等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL),图像提取模块、图像合成模块、预测帧生成模块、预测帧补全模块等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
在本申请实施例中,预测帧生成模块可以用于基于相邻的两帧图像信息生成预测帧图像。如图8所示,预测帧生成模块可以包括MV计算子模块和图像扭曲子模块。
其中,MV计算子模块可以用于根据连续的两帧图像计算MV。
图像扭曲子模块可以用于根据MV对图像进行图像扭曲处理。在本申请实施例中,图像扭曲子模块可以分别对图像中的静态对象和动态对象进行图像扭曲处理。在对静态对象进行图像扭曲处理时,图像扭曲子模块可以基于像素点的深度信息对图像Mesh进行细分,并以细分后的图像Mesh几何为单元进行图像扭曲处理。而且,图像扭曲子模块以细分后的图像Mesh几何为单元进行图像扭曲处理时,还会结合像素点的深度信息进行相关处理,将像素点深度值高的图像Mesh几何覆盖于像素点深度值低的图像Mesh几何上,以使预测帧图像中的各对象能够保持正确的深度关系。
预测帧补全模块可以用于对预测帧生成模块生成的预测帧图像中的空白区域进行补全处理,例如模糊补全处理,得到图像补全处理后的预测帧图像。
图像提取模块可以用于在资源图像帧中分离图像信息和UI信息,得到图像帧,该图像帧用于进行中间帧预测。
其中,图像提取模块也可以集成于三维图形处理库中,本实施例对此不做限定。
图像合成模块可以用于将图像补全处理后的预测帧图像和UI信息进行融合,得到待送显的预测帧。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,音频驱动,Wi-Fi驱动,传感器驱动等。其中,硬件至少包括处理器、显示屏、Wi-Fi模块、传感器等。
可以理解的是,图8示出的软件结构中的层以及各层中包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的层,以及每个层中可以包括更多或更少的部件,本申请不做限定。
可以理解的是,电子设备为了实现本申请实施例中的图像处理方法,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图9所示为各模块的交互示意图。参照图9,在游戏插帧场景中,本申请实施例提供的图像处理方法的流程,具体包括:
S401,游戏APP向三维图形处理库发送资源图像。
资源图像,指的是在游戏APP的图像数据,旨在游戏APP界面中显示的图像。其中,资源图像中包括图像信息和UI信息。
其中,UI信息,指的是对软件的人机交互、操作逻辑、界面美观的整体设计信息。
其中,图像信息包括但不限于每个像素点的GRB(Green,Red,Blue)值和深度值。
S402,三维图像处理库对游戏APP的资源图像进行渲染。
关于三维图像处理库对资源图像进行渲染的流程可以参照已有技术,在此不再赘述。
S403,图像提取模块拦截渲染后的资源图像,在资源图像中提取真实帧图像和UI信息,并将真实帧图像和UI信息对应进行存储。
其中,在大多情形下,UI信息不会发生变化,在每帧画面中的显示位置也是固定的,不会发生变化。示例性的,在游戏应用界面中,UI信息可以包括用户操作控件等。
在电子设备基于相邻的真实帧图像预测中间帧图像时,由于界面UI信息不会发生变化,则可以首先通过图像提取模块将图像信息和UI信息分离,只基于图像信息进行中间帧预测,以此降低图像数据的处理量,并提高中间帧图像预测的准确性。
在一些特殊情形下,UI信息可能会发生变化,电子设备也可以通过图像提取模块先将图像信息和UI信息分离,并基于图像信息进行中间帧预测,在得到中间帧图像之后再将其与当前真实帧图像的UI信息进行融合即可,本实施例对此不做限定。
图像提取模块在渲染后的资源图像中通过特征识别出真实帧图像(即游戏场景图像)和UI信息,并将真实帧图像绘制到私有的图像帧缓存中。
同时,图像提取模块也将匹配的UI信息对应进行存储。示例性的,UI信息可以包括但不限于UI图像内容以及UI图像的显示位置信息等。
S404,MV计算子模块根据相邻的两个真实帧图像,计算运动矢量。
其中,相邻的两个真实帧图像可以是当前真实帧图像以及当前真实帧图像的前一真实帧图像,例如图2中所示的真实帧图像103和真实帧图像101。
MV计算子模块在图像帧缓存中读取相邻的两帧真实帧图像,并计算与这两帧真实帧图像对应的运动矢量。
其中,MV计算子模块可以根据真实帧图像中各图像区域预标注的对象属性(如静态对象、动态对象),选择匹配的计算方式分别计算与各图像区域对应的运动矢量,以得到与当前帧图像对应的运动矢量,例如图2中所示的运动矢量帧105。
在一种可选的实施方式中,在图像中一些对象(例如人等)预标注有动态对象(即呈现运动状态的对象)属性,在该图像中其他未标注的对象(例如天空、柱子等)即为静态对象。
示例性的,针对与静态对象对应的图像区域,MV计算子模块可以采用重投影法计算相应的运动矢量;针对与动态对象对应的图像区域,MV计算子模块可以采用光流法计算相应的运动矢量。关于重投影法和光流法计算运动矢量的方法步骤可以参照已有技术,在此不再赘述。
S405,图像扭曲子模块基于运动矢量对当前帧图像进行图像扭曲,得到第一预测帧图像,并将第一预测帧图像发送至预测帧补全模块。
在MV计算子模块基于当前帧图像以及当前帧图像的前一帧图像,计算得到与当前帧图像对应的运动矢量之后,图像扭曲子模块即基于运动矢量对当前帧图像进行图像扭曲,以得到第一预测帧图像。
需要指出的是,由于在视频源中各个对象的移动速度不同,图像扭曲子模块基于运动矢量计算得到的预测帧图像会出现图像信息覆盖和图像信息缺失的情况。也即,第一预测帧图像为待图像补全的预测帧图像,例如图2中所示的预测帧图像106。
其中,图像扭曲子模块基于运动矢量对当前帧图像进行图像扭曲时,首先基于运动矢量对当前帧图像中与静态对象对应的图像区域进行图像扭曲处理,再基于运动矢量对当前帧图像中与动态对象对应的图像区域进行图像扭曲处理,以此得到第一预测帧图像。
作为一种可选的实施方式,S405可以具体为:
S4051,图像扭曲子模块创建并细分当前帧图像的网格(Mesh),并基于运动矢量以细分后的Mesh几何为处理单元对当前帧图像中的静态对象进行图像扭曲处理。
S4052,图像扭曲子模块基于运动矢量以创建及标准化的Mesh几何为处理单元对当前帧图像中的动态对象进行图像扭曲处理。
其中,在图像扭曲子模块创建当前帧图像的Mesh之后,可以对Mesh进行标准化处理,以便于几何图形处理。故而,图像扭曲子模块基于运动矢量以标准化后的Mesh几何为处理单元对当前帧图像中的动态对象进行图像扭曲处理。关于图像Mesh的创建及标准化可以参照下文,在此不再赘述。
由于深度值不连续的图像区域通常在图像中静态对象的边缘区域,故在图像扭曲子模块基于运动矢量对当前帧图像中与静态对象对应的Mesh几何进行图像扭曲处理时,首先基于像素点的深度信息对Mesh几何进行细分,使得细分后的Mesh几何所对应的像素深度值是连续的。也即,在细化后的每个Mesh几何中,像素点的深度值是连续的,或称像素点的深度值差异比较小。
图像扭曲子模块基于运动矢量对细分后的网格进行图像扭曲处理时,能够较好地保留静态对象连续的图形信息,以避免静态对象边缘区域出现失真的问题。
需要指出的是,基于运动矢量对Mesh几何进行图像扭曲处理,指的是按照与每个Mesh几何顶点分别对应的运动矢量,分别对每个Mesh几何顶点的位置进行移动。其中,无论是以细化后的Mesh几何为处理单元以对静态对象进行移动,还是以未细化的Mesh几何为处理单元以对动态对象进行移动,处理方式均是一致的,区别仅在于Mesh几何的细化程度不同。
作为一种可选的实施方式,S4051可以具体化为S501~S509。如图10所示,图像扭曲子模块对当前帧图像中的静态对象进行图像扭曲处理的流程,具体包括:
S501,图像扭曲子模块创建当前图像帧的网格。
图像扭曲子模块创建当前图像帧的网格(Mesh),也可以称之为将当前图像帧网格化,是为了将当前帧图像分割为更易于处理的几何图形,比如多边形、三角形或四边形。
其中,图像扭曲子模块创建当前图像帧的Mesh与当前图像帧的尺寸一致,这样Mesh中填充的每个图形都能覆盖当前图像帧的一块像素区域。
示例性的,在本申请实施例中,图像扭曲子模块可以创建当前图像帧的四边形网格,也即依据四边形的尺寸对当前图像帧进行网格化。其中,四边形可以为正方形。
S502,图像扭曲子模块将网格进行标准化处理。
其中,若图像扭曲子模块针对当前图像帧创建的是非三角形网格,例如四边形网格等,图像扭曲子模块则可以将非三角形网格进行标准化处理,以使网格中的每个非三角形划分为多个三角形,便于进行图形计算。
示例性的,图像扭曲子模块创建当前图像帧的四边形网格,则图像扭曲子模块可以将四边形网格中的每个四边形再次划分为两个三角形,以实现网格标准化。
其中,在四边形网格中的每个四边形或三角形都可以通过顶点进行索引。示例性的,为了便于计算处理,每个四边形或三角形的顶点排序可以为顺时针方向,以将图像网格的顶点索引规范化。
如图11中(1)所示,针对当前图像帧网格中的每个四边形201,可以划分为三角形201_1和三角形201_2。如图11中(2)所示,以四边形Square(V0-V1-V2-V3)为例,该四边形可以划分为三角形Tringle1(V0-V1-V2),以及三角形Tringle2(V2-V3-V0)。其中,在三角形Tringle1中,V0为起始顶点,V2为终止顶点;在三角形Tringle2中,V2为起始顶点,V0为终止顶点。
需要指出的是,在将四边形Square(V0-V1-V2-V3)标准化的过程中,第一三角形(即Tringle1(V0-V1-V2))的起始顶点V0为四边形Square(V0-V1-V2-V3)的起始顶点V0,第一三角形的起始边V0-V1为四边形的起始边V0-V1。同时,第一三角形的终止顶点V2为第二三角形(即Tringle2(V2-V3-V0))的起始顶点V2,第二三角形的终止顶点V0为第一三角形的起始顶点V0。
S503,图像扭曲子模块依次将Mesh标准化处理前每个几何图形作为当前处理图形(或称当前处理Mesh几何图形)。
其中,图像扭曲子模块是以标准化处理前创建的每个几何图形为处理单元判断是否需要进行网格细分以及如何进行网格细分和图像扭曲。也就是说,图像扭曲子模块依次判断标准化处理前的每个四边形是否需要进行网格细分以及如何进行网格细分和图像扭曲。在如图11中(1)所示的网格划分示例中,图像扭曲子模块依次判断每个四边形是否需要进行网格细分以及如何进行网格细分和图像扭曲。
需要指出的是,图像扭曲子模块也可以并行地判断标准化处理前的每个几何图形是否需要进行网格细分以及如何进行网格细分和图像扭曲。针对每个几何图形,图像扭曲子模块的判断及处理流程可以参照S504~S508。
S504,图像扭曲子模块判断当前处理图形是否对应于当前图像帧中的静态对象,若是,则执行S505,若否,则执行S509。
在当前图像帧的Mesh中,本实施例只需对与静态对象对应的几何图形进行网格细分,以使在与静态对象对应的每个几何图形中像素点深度值都是连续的,因此图像扭曲子模块需要判断当前处理图形是否对应于静态对象。
其中,图像扭曲子模块可以根据图像预标注信息判断当前处理图形是否对应于静态对象,若否则继续按顺序对Mesh中的下一个几何图形进行判断,直至处理完当前图像帧Mesh中的所有几何图形。若是,图像扭曲子模块则会继续判断当前处理图形是否满足网格细分条件。
S505,图像扭曲子模块确定当前处理图形的细分交点。
在判断当前处理图形是否满足网格细分条件时,图像扭曲子模块确定是否存在与当前处理图形对应的细分交点,进而可以根据细分交点的数量确定当前处理图形是否满足网格细分条件。
其中,细分交点为用于对Mesh中几何图形进行网格细分的像素点,该像素点位于几何图形的边上。以四边形Mesh中的四边形为例,细分交点需要位于四边形的任意一个边上。
图12示例性的示出了细分交点的确定流程。如图12所示,图像扭曲子模块确定当前处理图形的细分交点的具体流程,包括:
S5051,图像扭曲子模块依次将当前处理图形中的每个像素点作为当前处理像素点。
图像扭曲子模块判断当前处理图形中的每个像素点是否为当前处理图形的细分交点。
需要指出的是,图像扭曲子模块也可以并行地判断当前处理图形中的每个像素点是否为当前处理图形的细分交点。针对每个当前处理图形中的每个像素点,图像扭曲子模块的判断流程可以参照S5052~S50506。
S5052,图像扭曲子模块判断当前处理像素点的深度值是否处于预设深度范围,若是,则执行S5053,若否,则执行S5055。
其中,预设深度范围可以理解为感兴趣的深度范围,该深度范围内静态对象边缘容易在图像扭曲时出现失真。
S5053,图像扭曲子模块判断当前处理像素点与周围像素点的深度值之差是否超过预设阈值,若是,则执行S5054,若否,则执行S5055。
若当前处理像素点与周围像素点的深度值之差超过预设阈值,表明当前处理像素点的深度值与其四周像素点差异较大,当前处理像素点可能位于静态对象边缘上。
S5054,图像扭曲子模块将当前处理像素点标记为与当前处理图形对应的边缘点。
其中,边缘点,也称静态对象边缘点,即为静态对象边缘上的像素点。
S5055,图像扭曲子模块判断是否处理完当前处理图形中的所有像素点。
图像扭曲子模块首先在当前处理图形的所有像素点中识别出各个边缘点,然后判断各个边缘点中是否存在当前处理图形的细分交点。
针对当前处理图形中的任意一个像素点,如果其深度值处于预设深度范围,且其与四周任意一个像素点的深度值之差超过预设阈值,则图像扭曲子模块判断出该像素点为静态对象边缘点。
S5056,图像扭曲子模块在与当前处理图形对应的各静态对象边缘点中确定位于当前处理图形边上的像素点,作为当前处理图形的细分交点。
在当前处理图形中,图像扭曲子模块识别出各个静态对象边缘点之后,判断每个静态对象边缘点是否位于当前处理图形的边上,若是,则将该静态对象边缘点作为当前处理图形的细分交点。
示例性的,图像扭曲子模块可以基于计算着色器(Compute Shader)计算判断每个静态对象边缘点是否位于当前处理图形的边上。关于计算着色器的详细解释可以参照已有技术,在此不再赘述。
在一种可能的实施方式中,图像扭曲子模块也可以在确定出与每个几何图形对应的各静态对象边缘点之后,再同时确定每个几何图形对应的细分交点。
示例性的,图像扭曲子模块可以在确定出与每个几何图形对应的各静态对象边缘点之后,可以生成静态对象边缘点的掩膜图像。其中,在静态对象边缘点的掩膜图像中,静态对象边缘点的灰度值为1,其余像素点的灰度值为0。另外,根据创建的当前图像帧的Mesh,图像扭曲子模块也可以在确定出Mesh中几何图形边的掩膜图像。其中,在几何图形边的掩膜图像中,在几何图形边上的像素点的灰度值为1,其余像素点的灰度值为0。
其中,图像扭曲子模块可以根据几何图形的掩膜图像以及计算得到的静态对象边缘点的掩膜图像,计算位于几何图形边上的静态对象边缘点,也即细分焦点。图像扭曲子模块将静态对象边缘点的掩膜图像与几何图形边的掩膜图像进行“与”操作,即可得到细分交点的掩膜图像。在细分交点的掩膜图像中,细分交点的灰度值为1,其余像素点的灰度值为0。这样,图像扭曲子模块即可记录与Mesh中每个几何图形对应的细分交点的坐标。
需要指出的是,鉴于图像场景不同,Mesh中不同几何图形的细分交点的数量不一定相同。以四边形Mesh中的四边形为例,其细分交点的数量可以是1、2、3、4中任意值。如图13a所示,图13a中(1)、(2)、(3)分别示例性的示出了Mesh中四边形的细分交点数量为2的情形,图13a中(4)示例性的示出了Mesh中四边形的细分交点数量为1的情形,图13a中(5)示例性的示出了Mesh中四边形的细分交点数量为4的情形,图13a中(6)示例性的示出了Mesh中四边形的细分交点数量为4的情形。针对一些特殊场景,Mesh中几何图形的细分交点的数量还可以是其他值,每条边上的细分交点的数量也不一定只有一个。
S506,图像扭曲子模块根据细分交点的数量判断当前处理图形是否满足网格细分条件,若是,则执行S507,若否,则执行S508。
在本申请实施例中,网格细分条件可以为Mesh中几何图形的细分交点数量为2,且两个细分交点位于几何图形不同的边上。也即,网格细分条件可以为几何图形的细分交点有且只有两个,且几何图形的每条边上至多存在一个细分交点。
S507,图像扭曲子模块根据细分交点对当前处理图形进行细分,并根据运动矢量对细分后的当前处理图形进行图像扭曲处理。
如果当前处理图形的细分交点的数量为2,且两个细分交点位于当前处理图形不同的边上,则当前处理图形满足网格细分条件,图像扭曲子模块根据这两个细分交点对当前处理图形进行细分,并对标准化且细分后的当前处理图形进行图像扭曲处理。
图像扭曲子模块根据两个细分交点对当前处理图形进行细分时,可以根据两个细分焦点与当前处理图形标准化后每个三角形顶点的坐标关系,选择匹配的细分策略对相应的三角形进行细分。
下面结合如图11中(2)所示的标准化Mesh中,分别对各种网格细分情形进行解释说明。其中,在如图11中(2)所示的标准化Mesh中,四边形Square(V0-V1-V2-V3)划分为第一三角形(即三角形Tringle1(V0-V1-V2))和第二三角形(即三角形Tringle2(V2-V3-V0))。
情形一
本情形只需对第一三角形单独进行网格细分,无需对第二三角形进行网格细分。
在两个细分交点中,第一细分交点的横坐标与第一三角形的第一顶点(或称起始顶点)和第二顶点(或称中间顶点)的横坐标相等,且第二细分交点的纵坐标与第一三角形的第二顶点和第三顶点(或称终止顶点)的纵坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第一三角形单独进行网格细分,无需对第二三角形进行网格细分。
在一种实施方式中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第一三角形的第三顶点相连,以对第一三角形进行网格细分,得到多个细分三角形。
如图13b中(1)所示,第一细分交点Point2的横坐标与第一三角形的第一顶点V0和第二顶点V1的横坐标相等,第二细分交点Point1的纵坐标与第一三角形的第二顶点V1和第三顶点V2的纵坐标相等。此时,图像扭曲子模块需要根据细分交点Point2和Point1对第一三角形单独进行网格细分,无需对第二三角形进行网格细分。
继续参照图13b中(1)所示,图像扭曲子模块将第一细分交点Point2和第二细分交点Point1相连,以及将第一细分交点Point2和第一三角形的第三顶点V2相连,以将第一三角形Tringle1(V0-V1-V2)细分为:第一细分三角形S-Tringle1(V0-Point2-V2)、第二细分三角形S-Tringle2(Point2-Point1-V2)和第三细分三角形S-Tringle3(Point2-V1-Point1)。
在另一种实施方式中,图像扭曲子模块也可以将第一细分交点和第二细分交点相连,以及将第二细分交点和第一三角形的第一顶点相连,以对第一三角形进行网格细分,得到多个细分三角形。
如图13b中(2)所示,图像扭曲子模块将第一细分交点Point2和第二细分交点Point1相连,以及将第二细分交点Point1和第一三角形的第一顶点V0相连,以将第一三角形Tringle1(V0-V1-V2)细分为:第一细分三角形S-Tringle1(V0-Point2-Point1)、第二细分三角形S-Tringle2(Point2-V1-Point1)和第三细分三角形S-Tringle3(Point1-V2-V0)。
其中,每个细分三角形的顶点索引也是按照顺时针排序的。下述情形也是如此,下文不再赘述。
在如图13b中(1)和(2)所示的细分方式中,第一细分三角形S-Tringle1的起始边(V0-Point2)位于第一三角形的起始边(V0-V1)上,也即位于四边形的起始边(V0-V1)上,不会影响第一三角形的几何处理顺序,便于开发人员进行细分编程。
情形二
本情形需要对第一三角形和第二三角形共同进行网格细分。
(1)在两个细分交点中,第一细分交点的纵坐标与第一三角形的第二顶点和第三顶点的纵坐标相等,第二细分交点的纵坐标与第二三角形的第二顶点和第三顶点的纵坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第一三角形和第二三角形共同进行网格细分。
其中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第一三角形的第一顶点相连,将第二细分交点和第二三角形的第一顶点相连,以对第一三角形和第二三角形进行网格细分,得到多个细分三角形。
需要指出的是,在图像扭曲子模块可以将第一细分交点和第二细分交点相连时,第一细分交点和第二细分交点的连线与第一三角形的终止边(也即第二三角形的终止边)相交,能够同时对第一三角形和第二三角形进行网格细分。
如图13b中(3)所示,第一细分交点Point1的纵坐标与第一三角形的第二顶点V1和第三顶点V2的纵坐标相等,第二细分交点Point2的纵坐标与第二三角形的第二顶点V3和第三顶点V0的纵坐标相等。此时,图像扭曲子模块需要根据细分交点Point1和Point2共同对第一三角形和第二三角形进行网格细分。
继续参照图13b中(3)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第一细分交点Point1和第一三角形的第一顶点V0相连,将第二细分交点Point2和第二三角形的第一顶点V2相连。其中,第一细分交点Point1和第二细分交点Point2的连线与第一三角形的终止边(V2-V0)(也即第二三角形的终止边(V0-V2))相交于PointInter点。这样,第一三角形Tringle1(V0-V1-V2)被细分为:第一细分三角形S-Tringle1(V0-V1-Point1)、第二细分三角形S-Tringle2(V0-Point1-PointInter)和第三细分三角形S-Tringle3(PointInter-Point1-V2)。第二三角形Tringle2(V2-V3-V0)被细分为:第一细分三角形S-Tringle1(V2-V3-Point2)、第二细分三角形S-Tringle2(V2-Point2-PointInter)和第三细分三角形S-Tringle3(PointInter-Point2-V0)。
(2)在两个细分交点中,第一细分交点的纵坐标与第一三角形的第二顶点和第三顶点的纵坐标相等,第二细分交点的横坐标与第二三角形的第一顶点和第二顶点的横坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第一三角形和第二三角形共同进行网格细分。
其中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第一三角形的第一顶点相连,将第二细分交点和第二三角形的第三顶点相连,以对第一三角形和第二三角形进行网格细分,得到多个细分三角形。
需要指出的是,在图像扭曲子模块可以将第一细分交点和第二细分交点相连时,第一细分交点和第二细分交点的连线与第一三角形的终止边(也即第二三角形的终止边)相交,能够同时对第一三角形和第二三角形进行网格细分。
如图13b中(4)所示,第一细分交点Point1的纵坐标与第一三角形的第二顶点V1和第三顶点V2的纵坐标相等,第二细分交点Point2的横坐标与第二三角形的第一顶点V2和第二顶点V3的横坐标相等。此时,图像扭曲子模块需要根据细分交点Point1和Point2共同对第一三角形和第二三角形进行网格细分。
继续参照图13b中(4)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第一细分交点Point1和第一三角形的第一顶点V0相连,将第二细分交点Point2和第二三角形的第三顶点V0相连。其中,第一细分交点Point1和第二细分交点Point2的连线与第一三角形的终止边(V2-V0)(也即第二三角形的终止边(V0-V2))相交于PointInter点。这样,第一三角形Tringle1(V0-V1-V2)被细分为:第一细分三角形S-Tringle1(V0-V1-Point1)、第二细分三角形S-Tringle2(V0-Point1-PointInter)和第三细分三角形S-Tringle3(PointInter-Point1-V2)。第二三角形Tringle2(V2-V3-V0)被细分为:第一细分三角形S-Tringle1(V2-Point2-PointInter)、第二细分三角形S-Tringle2(Point2-V0-PointInter)和第三细分三角形S-Tringle3(Point2-V3-V0)。
(3)在两个细分交点中,第一细分交点的横坐标与第一三角形的第一顶点和第二顶点的横坐标相等,第二细分交点的横坐标与第二三角形的第一顶点和第二顶点的横坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第一三角形和第二三角形共同进行网格细分。
其中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第一三角形的第三顶点相连,将第二细分交点和第二三角形的第三顶点相连,以对第一三角形和第二三角形进行网格细分,得到多个细分三角形。
需要指出的是,在图像扭曲子模块可以将第一细分交点和第二细分交点相连时,第一细分交点和第二细分交点的连线与第一三角形的终止边(也即第二三角形的终止边)相交,能够同时对第一三角形和第二三角形进行网格细分。
如图13b中(5)所示,第一细分交点Point1的横坐标与第一三角形的第一顶点V0和第二顶点V1的横坐标相等,第二细分交点Point2的横坐标与第二三角形的第一顶点V2和第二顶点V3的横坐标相等。此时,图像扭曲子模块需要根据细分交点Point1和Point2共同对第一三角形和第二三角形进行网格细分。
继续参照图13b中(5)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第一细分交点Point1和第一三角形的第三顶点V2相连,将第二细分交点Point2和第二三角形的第三顶点V0相连。其中,第一细分交点Point1和第二细分交点Point2的连线与第一三角形的终止边(V2-V0)(也即第二三角形的终止边(V0-V2))相交于PointInter点。这样,第一三角形Tringle1(V0-V1-V2)被细分为:第一细分三角形S-Tringle1(V0-Point1-PointInter)、第二细分三角形S-Tringle2(Point1-V2-PointInter)和第三细分三角形S-Tringle3(Point1-V1-V2)。第二三角形Tringle2(V2-V3-V0)被细分为:第一细分三角形S-Tringle1(V2-Point2-PointInter)、第二细分三角形S-Tringle2(Point2-V0-PointInter)和第三细分三角形S-Tringle3(Point2-V3-V0)。
(4)在两个细分交点中,第一细分交点的横坐标与第一三角形的第一顶点和第二顶点的横坐标相等,第二细分交点的纵坐标与第二三角形的第二顶点和第三顶点的纵坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第一三角形和第二三角形共同进行网格细分。
其中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第一三角形的第三顶点相连,将第二细分交点和第二三角形的第一顶点相连,以对第一三角形和第二三角形进行网格细分,得到多个细分三角形。
需要指出的是,在图像扭曲子模块可以将第一细分交点和第二细分交点相连时,第一细分交点和第二细分交点的连线与第一三角形的终止边(也即第二三角形的终止边)相交,能够同时对第一三角形和第二三角形进行网格细分。
如图13b中(6)所示,第一细分交点Point1的横坐标与第一三角形的第一顶点V0和第二顶点V1的横坐标相等,第二细分交点Point2的纵坐标与第二三角形的第二顶点V3和第三顶点V0的纵坐标相等。此时,图像扭曲子模块需要根据细分交点Point1和Point2共同对第一三角形和第二三角形进行网格细分。
继续参照图13b中(6)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第一细分交点Point1和第一三角形的第三顶点V2相连,将第二细分交点Point2和第二三角形的第一顶点V2相连。其中,第一细分交点Point1和第二细分交点Point2的连线与第一三角形的终止边(V2-V0)(也即第二三角形的终止边(V0-V2))相交于PointInter点。这样,第一三角形Tringle1(V0-V1-V2)被细分为:第一细分三角形S-Tringle1(V0-Point1-PointInter)、第二细分三角形S-Tringle2(Point1-V2-PointInter)和第三细分三角形S-Tringle3(Point1-V1-V2)。第二三角形Tringle2(V2-V3-V0)被细分为:第一细分三角形S-Tringle1(V2-V3-Point2)、第二细分三角形S-Tringle2(Point2-PointInter-V2)和第三细分三角形S-Tringle3(Point2-V0-PointInter)。
在如图13b中(3)~(6)所示的细分方式中,两个细分交点共同对两个三角形进行细分。其中,对第一三角形划分所得的第一细分三角形,其起始边位于第一三角形的起始边(V0-V1)上,也即位于四边形的起始边(V0-V1)上;对第二三角形划分所得的第一细分三角形,其起始边也位于第二三角形的起始边(V0-V1)上。这样的网格细分不会影响细分前三角形的几何处理顺序,便于开发人员进行细分编程。
情形三
本情形无需对第一三角形进行网格细分,只需对第二三角形单独进行网格细分。
在两个细分交点中,第一细分交点的横坐标与第二三角形的第一顶点和第二顶点的横坐标相等,且第二细分交点的纵坐标与第一三角形的第二顶点和第三顶点的纵坐标相等。此时,图像扭曲子模块需要根据这两个细分交点对第二三角形单独进行网格细分,无需对第一三角形进行网格细分。
在一种实施方式中,图像扭曲子模块可以将第一细分交点和第二细分交点相连,以及将第一细分交点和第二三角形的第三顶点相连,以对第二三角形进行网格细分,得到多个细分三角形。
如图13b中(7)所示,第一细分交点Point1的横坐标与第二三角形的第一顶点V2和第二顶点V3的横坐标相等,第二细分交点Point2的纵坐标与第二三角形的第二顶点V3和第三顶点V0的纵坐标相等。此时,图像扭曲子模块需要根据细分交点Point2和Point1对第二三角形单独进行网格细分,无需对第一三角形进行网格细分。
继续参照图13b中(7)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第一细分交点Point1和第二三角形的第三顶点V0相连,以将第二三角形Tringle1(V2-V3-V0)细分为:第一细分三角形S-Tringle1(V2-Point1-V0)、第二细分三角形S-Tringle2(Point1-Point2-V0)和第三细分三角形S-Tringle3(Point1-V3-Point2)。
在另一种实施方式中,图像扭曲子模块也可以将第一细分交点和第二细分交点相连,以及将第二细分交点和第二三角形的第一顶点相连,以对第二三角形进行网格细分,得到多个细分三角形。
如图13b中(8)所示,图像扭曲子模块将第一细分交点Point1和第二细分交点Point2相连,以及将第二细分交点Point2和第二三角形的第一顶点V2相连,以将第二三角形Tringle1(V2-V3-V0)细分为:第一细分三角形S-Tringle1(V2-Point1-Point2)、第二细分三角形S-Tringle2(Point1-V3-Point2)和第三细分三角形S-Tringle3(Point2-V0-V2)。
在如图13b中(7)和(8)所示的细分方式中,第一细分三角形S-Tringle1的起始边(V2-Point1)位于第二三角形的起始边(V2-V3)上,不会影响第二三角形的几何处理顺序,便于开发人员进行细分编程。
这样,根据上文阐述的细分策略对三角形进行细分,能够得到更小的控制单元,使得图像扭曲操作更加精细。而且,由于图像扭曲子模块根据细分交点对三角形进行网格细分的,使得Mesh中深度信息不连续的几何图形得到了细分处理,且在细分处理后得到的几何图形中深度信息不会差异过大。进而,图像扭曲子模块在对这些细分处理后的几何图形进行移动时,能够避免由于网格深度信息差异过大而使得几何图形变形严重的问题,确保图像内容的正确性,进而提升画面指令,使得预测帧图像更加接近于真实帧图像。
其中,在图像扭曲子模块根据细分交点对当前处理图形进行网格细分之后,即可根据运动矢量对标准化且细分后的当前处理图形进行图像扭曲处理。针对细分后的每个三角形,图像扭曲子模块在其进行图像扭曲处理时,将三角形的每个顶点按照与其对应的运动矢量移动到相应的位置,以此得到图像扭曲后的三角形。
与此同时,针对每个三角形(无论是细分后得到的还是未细分的),图像扭曲子模块还可以根据三角形顶点的深度值设置三角形的深度信息。示例性的,图像扭曲子模块根据三角形各顶点的深度值进行插值处理,得到三角形内各像素点的深度值,作为该三角形的深度信息。
这样,图像扭曲子模块在基于运动矢量移动一个三角形时,可以根据该三角形的深度信息确定其与其他三角形的覆盖关系。例如,当三角形1的深度信息大于三角形2的深度信息时,则三角形1覆盖三角形2。其中,三角形2为三角形1按照相应的运动矢量移动时目标位置处的三角形。
由此,图像扭曲子模块在Mesh中移动几何图形时参照了像素深度信息,能够保证不同对象之间正确的深度先后关系。
图14示例性的示出了基于细分后的几何图形进行图像扭曲的场景示例图。如图14所示,在四边形Square(V0-V1-V2-V3)中,第一三角形Tringle1(V0-V1-V2)被细分为:细分三角形S-Tringle1(V0-V1-Point1)、细分三角形S-Tringle2(V0-Point1-PointInter)和细分三角形S-Tringle3(PointInter-Point1-V2)。第二三角形Tringle2(V2-V3-V0)被细分为:细分三角形S-Tringle1’(V2-V3-Point2)、细分三角形S-Tringle2’(V2-Point2-PointInter)和细分三角形S-Tringle3’(PointInter-Point2-V0)。
其中,S-Tringle1(V0-V1-Point1)、S-Tringle2(V0-Point1-PointInter)和S-Tringle3’(PointInter-Point2-V0)的深度信息比较一致,S-Tringle3(PointInter-Point1-V2)、S-Tringle1’(V2-V3-Point2)、S-Tringle2’(V2-Point2-PointInter)的深度信息比较一致。
在进行图像扭曲处理时,细分三角形S-Tringle1、S-Tringle2、S-Tringle3、S-Tringle1’、S-Tringle2’、S-Tringle3’分别按照与各自顶点对应的运动矢量进行移动。示例性的,S-Tringle1(V0-V1-Point1)移动至S-Tringle1(V0’-V1’-Point1’),S-Tringle2(V0-Point1-PointInter)移动至S-Tringle2(V0’-Point1’-PointInter’),S-Tringle3(PointInter-Point1-V2)移动至S-Tringle3(PointInter”-Point1”-V2”)。类似的,S-Tringle1’(V2-V3-Point2)移动至S-Tringle1’(V2”-V3”-Point2”),S-Tringle2’(V2-Point2-PointInter)移动至S-Tringle2’(V2”-Point2”-PointInter”),S-Tringle3’(PointInter-Point2-V0)移动至S-Tringle3’(PointInter’-Point2’-V0’)。
图14中(1)~(3)示例性的示出了不同的图像扭曲场景。在图14中(1)~(3)中所示的场景中,深度信息一致的三角形移动方向也比较一致,能够避免由于三角形内深度信息差异过大而使得三角形变形严重的问题。
其中,在Mesh中移动三角形时,需要根据该三角形的深度信息确定其与其他三角形的覆盖关系。以图14中(3)为例,相比于S-Tringle3(PointInter-Point1-V2)、S-Tringle1’(V2-V3-Point2)和S-Tringle2’(V2-Point2-PointInter),S-Tringle1(V0-V1-Point1)、S-Tringle2(V0-Point1-PointInter)和S-Tringle3’(PointInter-Point2-V0)的深度值更大一些。因此,在移动S-Tringle1(V0-V1-Point1)、S-Tringle2(V0-Point1-PointInter)和S-Tringle3’(PointInter-Point2-V0),以及移动S-Tringle3(PointInter-Point1-V2)、S-Tringle1’(V2-V3-Point2)和S-Tringle2’(V2-Point2-PointInter)时,如果移动目标位置存在重叠区域,则S-Tringle1(V0’-V1’-Point1’)、S-Tringle2(V0’-Point1’-PointInter’)和S-Tringle3’(PointInter’-Point2’-V0’),会覆盖S-Tringle3(PointInter”-Point1”-V2”)、S-Tringle1’(V2”-V3”-Point2”)和S-Tringle2’(V2”-Point2”-PointInter”),以此确保图像区域对象正确的深度先后关系。
S508,图像扭曲子模块根据运动矢量对当前处理图形进行图像扭曲处理。
如果当前处理图形的细分交点的数量不为2,或者当前处理图形的细分交点的数量为2但这两个细分交点位于当前处理图形的同一条边上,则当前处理图形不满足网格细分条件,图像扭曲子模块直接对标准化的当前处理图形进行图像扭曲处理。针对当前处理图形,图像扭曲子模块分别对标准化得到的每个三角形进行图像扭曲处理。其中,图像扭曲子模块在对三角形进行图像扭曲处理时,将三角形的每个顶点按照与其对应的运动矢量移动到相应的位置,以此得到图像扭曲后的三角形。
类似的,针对未细分的每个三角形,图像扭曲子模块还可以根据顶点的深度值设置三角形的深度信息。示例性的,图像扭曲子模块根据三角形各顶点的深度值进行插值处理,得到三角形内各像素点的深度值,作为该三角形的深度信息。
这样,图像扭曲子模块在基于运动矢量移动一个三角形时,可以根据该三角形的深度信息确定其与其他三角形的覆盖关系,以保证不同对象之间正确的深度先后关系。
S509,图像扭曲子模块是否处理完当前图像帧Mesh中的所有几何图形,若是,则执行S4052,若否,则执行S504。
至此,针对当前图像帧Mesh中与静态对象对应的几何图形,图像扭曲子模块完成图像扭曲操作。
图像扭曲子模块继续针对当前图像帧Mesh中与动态对象对应的三角形完成图像扭曲操作。此时,在创建且标准化的当前图像帧Mesh中,图像扭曲子模块搜索与动态对象对应的各个三角形,并将与动态对象对应的每个三角形分别进行图像扭曲处理。
同样的,针对与动态对象对应的每个三角形,将三角形的每个顶点按照与其对应的运动矢量移动到相应的位置,以此得到图像扭曲后的三角形。
同时,针对与动态对象对应的每个三角形,图像扭曲子模块还可以根据顶点的深度值设置三角形的深度信息。示例性的,图像扭曲子模块根据三角形各顶点的深度值进行插值处理,得到三角形内各像素点的深度值,作为该三角形的深度信息。
这样,图像扭曲子模块在基于运动矢量移动一个三角形时,可以根据该三角形的深度信息确定其与其他三角形的覆盖关系,以保证不同对象之间正确的深度先后关系。
至此,针对当前图像帧中与动态对象对应的Mesh几何,图像扭曲子模块完成图像扭曲操作。也即,图像扭曲子模块完成针对当前帧图像完成了图像扭曲操作。在图像扭曲阶段操作完成之后,预测帧生成图像模块继续完成光栅化阶段、像素处理阶段的相关操作,以生成第一预测帧图像。其中,关于预测帧图像生成流程本实施例未尽详解解释之处可以参照已有技术,在此不再赘述。
在另一种可选的实施方式中,针对当前帧图像,图像扭曲子模块也可以创建三角形Mesh。此时,图像扭曲子模块可以判断三角形Mesh中的每个三角形是否需要进行网格细分,以及如何进行网格细分和图像扭曲。其中,针对每个三角形的判断及处理流程也可以参照上文,在此不再赘述。需要指出的是,若某个三角形的细分交点数量为2,则该三角形满足网格细分条件,可以参照情形一或情形三的细分方式对该三角形进行网格细分。
在又一种可选的实施方式中,针对当前帧图像,图像扭曲子模块也可以创建多边形Mesh并进行标准化处理。此时,图像扭曲子模块可以判断多边形Mesh中的每个三角形是否需要进行网格细分,以及如何进行网格细分和图像扭曲。其中,针对每个三角形的判断及处理流程也可以参照上文,在此不再赘述。需要指出的是,若多边形Mesh中某个多边形的细分交点数量为2,则该多边形满足网格细分条件,可以参照上文情形一至情形三的细分方式对该多边形进行网格细分。
图15a示例性的示出了一种预测帧图像的示例。在如图15a所示的预测帧图像中,区域601采用已有技术方案进行图像扭曲处理,区域602采用本实施例提供的方案进行图像扭曲处理。其中,区域601和区域602仅为静态对象深度信息不连续的区域。对比区域601和区域602可知,区域601图像失真,尤其是静态对象边缘区域严重变形,而区域602的画面效果更好,静态对象边缘区域清晰,不存在静态对象边缘区域变形的现象。
图15b示例性的示出了一种预测帧图像的对比示意图。其中,图15b中(1)所示的预测帧图像是采用本实施例提供的方案进行图像扭曲处理而生成的,而图15b中(2)所示的预测帧图像是采用已有技术方案进行图像扭曲处理而生成的。图15b中(1)的区域603,与图15b中(2)的区域604是相同的图像区域,均为静态对象深度信息不连续的区域。对比图15b中(1)和(2)可知,区域604图像失真,尤其是静态对象边缘区域严重变形,而区域603的画面效果更好,静态对象边缘区域清晰,不存在静态对象边缘区域变形的现象。
S406,预测帧补全模块对第一预测帧图像进行图像补全,得到第二预测帧图像,并将第二预测帧图像发送至图像合成模块。
由于在原始视频中各个对象的移动速度不同,电子设备基于运动矢量计算得到的第一预测帧图像会出现图像信息覆盖和图像信息缺失的情况。也即,第一预测帧图像为待图像补全的预测帧图像。
由此,预测帧补全模块需要对第一预测帧图像进行图像补全,得到第二预测帧图像。其中,第二预测帧图像,即为对第一预测帧图像完成图像补全处理后得到的预测帧图像。
S407,图像合成模块将第二预测帧图像与UI信息合成,得到目标预测帧图像,并将目标预测帧图像送显。
其中,图像合成模块将第二预测帧图像和与当前真实帧图像对应的UI信息合成,以得到目标预测帧图像。
这样,在对预测帧图像完成补全处理后,将其与UI信息进行图像合成,即可得到目标预测帧图像,进而可以将目标预测帧图像输出至电子设备显示屏进行显示。
需要指出的是,上述流程仅以处理一帧预测帧图像为例进行解释说明,针对每帧预预测帧图像进行处理的流程亦是如此,不再赘述。关于目标预测帧图像的送显顺序,与预测帧图像的插帧方式有关,可以参照已有技术,在此不再赘述。关于本流程未尽详细解释之处也可以参照已有技术,在此不再赘述。
对于高刷新率的游戏在移动平台上往往由于功耗或CPU、GPU能力的限制容易出现发热或卡顿现象,从而影响用户体验,游戏开发者为了增强游戏流畅性体验,往往会使用降低原始刷新率,再在图像空间生成预测帧,实现同帧率下渲染操作减半,从而大幅度降低智能终端功耗,减少智能终端的发热。
针对预测帧图像存在图像失真的情况,尤其是在深度信息不连续的区域静态对象边缘变形的问题,采用本申请实施例提供的图像处理方法能够较好地解决,以此提升预测帧图像的画质。这样,在渲染帧数减半的情况下能够确保游戏的流畅性不变,降低了智能终端功耗,减少了智能终端的发热,从而提升了用户的使用体验。
在其他插帧应用场景中,若图像中存在深度信息不连续(或深度差异较大)的区域,也可以采用本申请实施例提供的图像处理方法对进行图像扭曲处理,以提升预测帧图像的画质,对此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的图像处理方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的图像处理方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的图像处理方法。
其中,本实施例提供的电子设备(如手机等)、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (16)
1.一种图像处理方法,其特征在于,包括:
获取第一图像和第二图像,并根据所述第一图像和所述第二图像计算运动矢量;其中,所述第一图像和所述第二图像为真实帧图像;
创建所述第二图像的初始网格Mesh,并在所述初始Mesh中确定与静态对象对应的待细分的初始几何图形;其中,所述初始几何图形的细分交点有且只有两个,位于所述初始几何图形的边上,且每个所述初始几何图形的每个边上至多存在一个细分交点;所述细分交点是根据所述初始几何图形中像素点的深度值确定的,为静态对象的边缘像素点;
根据每个所述初始几何图形的两个细分交点,分别对相应的初始几何图形进行网格细分,得到所述第二图像的目标Mesh;在所述目标Mesh中,每个所述初始几何图形的两个细分交点的连线为目标三角形的边,或者所述连线上的部分线段为目标三角形的边;其中,所述目标三角形为在所述目标Mesh中划分的几何图形;
根据所述目标Mesh和所述运动矢量,对所述第二图像进行图像扭曲处理,生成与所述第一图像和所述第二图像对应的预测帧图像。
2.根据权利要求1所述的方法,其特征在于,所述初始Mesh为四边形Mesh,所述初始几何图形为四边形;
在创建所述第二图像的初始Mesh之后,还包括:
将所述四边形Mesh进行标准化,以将每个四边形划分为两个三角形。
3.根据权利要求2所述的方法,其特征在于,所述待细分的四边形的细分交点为第一细分交点和第二细分交点,所述待细分的四边形划分为第一三角形和第二三角形;
其中,在所述目标Mesh中:
所述第一三角形细分为第一子三角形、第二子三角形和第三子三角形;其中,所述第一子三角形和第二子三角形的共用边为所述第一细分交点和所述第二细分交点的连线,所述第二子三角形和第三子三角形的共用边为所述第一细分交点或所述第二细分交点与所述第一三角形顶点的连线;或者,
所述第二三角形细分为第四子三角形、第五子三角形和第六子三角形;其中,所述第四子三角形和第五子三角形的共用边为所述第一细分交点和所述第二细分交点的连线,所述第五子三角形和第六子三角形的共用边为所述第一细分交点或所述第二细分交点与所述第二三角形顶点的连线;或者,
所述第一三角形细分为第七子三角形、第八子三角形和第九子三角形,所述第二三角形细分为第十子三角形、第十一子三角形和第十二子三角形;其中,第七子三角形和第八子三角形的共用边为所述第一细分交点与第三点的连线,第八子三角形和第九子三角形的共用边为所述第一细分交点与所述第一三角形顶点的连线;第十子三角形和第十一子三角形的共用边为所述第二细分交点与所述第三点的连线,第十一子三角形和第十二子三角形的共用边为所述第二细分交点与所述第二三角形顶点的连线;所述第一细分交点和所述第二细分交点的连线,与所述第一三角形和第二三角形的共用边的交点为所述第三点。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标Mesh中,设置每个三角形的深度信息。
5.根据权利要求4所述的方法,其特征在于,根据所述目标Mesh和所述运动矢量,对所述第二图像进行图像扭曲处理,包括:
针对所述目标Mesh中每个三角形,确定所述三角形各顶点的运动矢量,并根据所述三角形各顶点的运动矢量对所述三角形进行移动;
在每个三角形移动至目标位置时,根据所述三角形的深度信息与所述目标位置处其他三角形的深度信息,确定所述三角形与所述目标位置处其他三角形的覆盖关系。
6.根据权利要求2所述的方法,其特征在于,所述待细分的四边形的细分交点为第一细分交点和第二细分交点,所述待细分的四边形划分为第一三角形和第二三角形;
根据所述初始几何图形的两个细分交点,对所述初始几何图形进行网格细分,包括:
根据所述第一细分交点和所述第二细分交点,与所述第一三角形以及与所述第二三角形的位置关系,采用匹配的网格细分策略对所述第一三角形和/或所述第二三角形进行网格细分。
7.根据权利要求6所述的方法,其特征在于,根据所述第一细分交点和所述第二细分交点,与所述第一三角形以及与所述第二三角形的位置关系,采用匹配的网格细分策略对所述第一三角形和/或所述第二三角形进行网格细分,包括:
当所述第一细分交点的横坐标与所述第一三角形的第一顶点、第二顶点的横坐标相等,且所述第二细分交点的纵坐标与所述第一三角形的第二顶点、第三顶点的纵坐标相等时,连接所述第一细分交点和所述第二细分交点,以及连接所述第一细分交点和所述第一三角形的第三顶点或者连接所述第二细分交点和所述第一三角形的第一顶点,以单独将所述第一三角形细分为三个三角形。
8.根据权利要求6所述的方法,其特征在于,根据所述第一细分交点和所述第二细分交点,与所述第一三角形以及与所述第二三角形的位置关系,采用匹配的网格细分策略对所述第一三角形和/或所述第二三角形进行网格细分,包括:
当所述第一细分交点的横坐标与所述第二三角形的第一顶点、第二顶点的横坐标相等,且所述第二细分交点的纵坐标与所述第二三角形的第二顶点、第三顶点的纵坐标相等时,连接所述第一细分交点和所述第二细分交点,以及连接所述第一细分交点和所述第二三角形的第三顶点或者连接所述第二细分交点和所述第二三角形的第一顶点,以单独将所述第二三角形细分为三个三角形。
9.根据权利要求6所述的方法,其特征在于,根据所述第一细分交点和所述第二细分交点,与所述第一三角形以及与所述第二三角形的位置关系,采用匹配的网格细分策略对所述第一三角形和/或所述第二三角形进行网格细分,包括:
当所述第一细分交点的纵坐标与所述第一三角形的第二顶点、第三顶点的纵坐标相等,且所述第二细分交点的纵坐标与所述第二三角形的第二顶点、第三顶点的纵坐标相等时,连接所述第一细分交点和所述第二细分交点,连接所述第一细分交点和所述第一三角形的第一顶点,以及连接所述第二细分交点和所述第二三角形的第一顶点,以将所述第一三角形和所述第二三角形分别细分为三个三角形;
当所述第一细分交点的横坐标与所述第一三角形的第一顶点、第二顶点的横坐标相等,且所述第二细分交点的横坐标与所述第二三角形的第一顶点、第二顶点的横坐标相等时,连接所述第一细分交点和所述第二细分交点,连接所述第一细分交点和所述第一三角形的第三顶点,以及连接所述第二细分交点和所述第二三角形的第三顶点,以将所述第一三角形和所述第二三角形分别细分为三个三角形;
当所述第一细分交点的纵坐标与所述第一三角形的第二顶点、第三顶点的纵坐标相等,且所述第二细分交点的横坐标与所述第二三角形的第一顶点、第二顶点的横坐标相等时,连接所述第一细分交点和所述第二细分交点,连接所述第一细分交点和所述第一三角形的第一顶点,以及连接所述第二细分交点和所述第二三角形的第三顶点,以将所述第一三角形和所述第二三角形分别细分为三个三角形;
当所述第一细分交点的横坐标与所述第一三角形的第一顶点、第二顶点的横坐标相等,且所述第二细分交点的纵坐标与所述第二三角形的第二顶点、第三顶点的纵坐标相等时,连接所述第一细分交点和所述第二细分交点,连接所述第一细分交点和所述第一三角形的第三顶点,以及连接所述第二细分交点和所述第二三角形的第一顶点,以将所述第一三角形和所述第二三角形分别细分为三个三角形。
10.根据权利要求1所述的方法,其特征在于,在所述初始Mesh中确定与静态对象对应的待细分的初始几何图形,包括:
在所述初始Mesh中确定与静态对象对应的初始几何图形;
确定每个所述初始几何图形的细分交点;
将细分交点数量为2且每个边上至多存在一个细分交点的初始几何图形,作为所述待细分的初始几何图形。
11.根据权利要求10所述的方法,其特征在于,确定所述初始几何图形的细分交点,包括:
在所述初始几何图形中确定各个边缘像素点;其中,所述边缘像素点的深度值在预设范围内,且所述边缘像素点与周围像素点的深度值之差超过预设阈值;
将位于所述初始几何图形的边上的所述边缘像素点作为所述初始几何图形的细分交点。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述第一图像和所述第二图像为已渲染的图像。
13.根据权利要求12所述的方法,其特征在于,所述获取第一图像和第二图像,包括:
获取第一资源图像;在所述第一资源图像中分离用户界面UI信息,得到所述第一图像;
获取第二资源图像;在所述第二资源图像中分离UI信息,得到所述第二图像;
在生成与所述第一图像和所述第二图像对应的预测帧图像之后,还包括:
对所述预测帧图像进行图像补全处理,并将补全处理后的预测帧图像和UI信息进行融合,得到目标预测帧图像。
14.根据权利要求13所述的方法,其特征在于,所述第一资源图像和所述第二资源图像为游戏应用中的资源图像。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-14中任一项所述的图像处理方法。
16.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-14中任一项所述的图像处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211444045.9A CN118057456A (zh) | 2022-11-18 | 2022-11-18 | 图像处理方法及电子设备 |
PCT/CN2023/113755 WO2024103872A1 (zh) | 2022-11-18 | 2023-08-18 | 图像处理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211444045.9A CN118057456A (zh) | 2022-11-18 | 2022-11-18 | 图像处理方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118057456A true CN118057456A (zh) | 2024-05-21 |
Family
ID=91068506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211444045.9A Pending CN118057456A (zh) | 2022-11-18 | 2022-11-18 | 图像处理方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118057456A (zh) |
WO (1) | WO2024103872A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879324B1 (en) * | 1998-07-14 | 2005-04-12 | Microsoft Corporation | Regional progressive meshes |
CN109672886B (zh) * | 2019-01-11 | 2023-07-04 | 京东方科技集团股份有限公司 | 一种图像帧预测方法、装置及头显设备 |
CN112199140B (zh) * | 2020-09-09 | 2024-06-14 | Oppo广东移动通信有限公司 | 应用插帧方法及相关装置 |
CN114708289A (zh) * | 2020-12-16 | 2022-07-05 | 华为技术有限公司 | 一种图像帧预测的方法及电子设备 |
-
2022
- 2022-11-18 CN CN202211444045.9A patent/CN118057456A/zh active Pending
-
2023
- 2023-08-18 WO PCT/CN2023/113755 patent/WO2024103872A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024103872A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816775B2 (en) | Image rendering method and apparatus, and electronic device | |
CN112328130B (zh) | 显示处理方法及电子设备 | |
CN109191549B (zh) | 显示动画的方法及装置 | |
WO2022007862A1 (zh) | 图像处理方法、系统、电子设备及计算机可读存储介质 | |
CN116055786B (zh) | 一种显示多个窗口的方法及电子设备 | |
CN112287852B (zh) | 人脸图像的处理方法、显示方法、装置及设备 | |
CN114442894B (zh) | 屏幕显示画面调整方法、装置及电子设备 | |
CN113643186A (zh) | 一种图像增强方法及电子设备 | |
CN114911390A (zh) | 显示方法及电子设备 | |
CN113038141B (zh) | 视频帧处理方法及电子设备 | |
CN110807769A (zh) | 图像显示控制方法及装置 | |
CN116048686B (zh) | 显示方法及折叠屏设备 | |
CN118057456A (zh) | 图像处理方法及电子设备 | |
CN116708931B (zh) | 图像处理方法及电子设备 | |
CN116672707B (zh) | 生成游戏预测帧的方法和电子设备 | |
CN115908221B (zh) | 图像处理方法、电子设备及存储介质 | |
CN117695626B (zh) | 游戏数据的识别方法、设备及存储介质 | |
CN117726507B (zh) | 图像处理方法及装置 | |
CN116664630B (zh) | 一种图像处理方法和电子设备 | |
CN117082295B (zh) | 图像流处理方法、设备及存储介质 | |
CN114866641B (zh) | 一种图标处理方法、终端设备及存储介质 | |
WO2023280241A1 (zh) | 图像画面渲染方法及电子设备 | |
WO2022179431A1 (zh) | 显示模式切换方法、装置、电子设备和介质 | |
CN118446876A (zh) | 单目标追踪方法、电子设备、存储介质及芯片 | |
CN116560770A (zh) | 壁纸显示方法、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |