处理视频流的方法和终端与流程

文档序号:11935339阅读:357来源:国知局
处理视频流的方法和终端与流程

本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者专利披露。

技术领域

本公开涉及图像处理领域,更具体地涉及使用图形处理单元(GPU)来处理视频流的方法和终端。



背景技术:

随着终端,尤其是可移动终端(例如,智能手机、平板电脑等)的日益普及,其已经成为了人们在生产、生活中不可或缺的一部分。终端提供了丰富的各种功能,包括例如针对图像/视频的录制、处理、和直播等等。作为视频处理应用的重要功能之一是为用户提供修图功能(或更通俗地,美颜瘦脸功能)。用户可以通过对摄像头采集到的原始图像进行修正处理,来实现令用户满意的图像/视频效果。



技术实现要素:

根据本公开的第一方面,提出了一种在终端的处理器处使用图形处理单元(GPU)来处理视频流的方法。该方法包括:获取所述视频流中的至少一帧图像的图像数据;确定所述图像数据中的至少一个特征点;以及指示所述GPU基于所述至少一个特征点对所述图像数据进行图像处理。

在一些实施例中,所述视频流是具有4K或更高分辨率的视频流。在一些实施例中,所述至少一帧图像包括人脸,以及所述至少一个特征点包括以下至少一项:脸部、眼睛、鼻子、嘴、耳朵、头发、或眉毛。在一些实施例中,所述图像处理包括以下至少一项:轮廓修正、颜色修正、亮度修正、以及模糊处理。在一些实施例中,所述方法还包括:针对经过图像处理的所述图像数据,指示所述GPU执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项。在一些实施例中,指示所述GPU执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项包括:指示所述GPU并行执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少两项。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之前,对所述图像数据进行坐标变换,以使其能够由所述GPU进行图像处理。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之后,如果所述GPU是首次针对所述视频流进行图像处理,则创建新的纹理,否则在所述图像数据的宽高比不改变的情况下,仅更新已有的纹理。在一些实施例中,如果所述GPU不是首次针对所述视频流进行图像处理且所述图像数据的宽高比发生了改变,则创建新的纹理。在一些实施例中,所述图像数据的宽高比的改变是由变更摄像头和/或旋转所述终端引起的。

根据本公开的第二方面,提出了一种使用图形处理单元(GPU)来处理视频流的终端。该终端包括:图像数据获取装置,用于获取所述视频流中的至少一帧图像的图像数据;特征点确定装置,用于确定所述图像数据中的至少一个特征点;以及图像处理指示装置,用于指示所述GPU基于所述至少一个特征点对所述图像数据进行图像处理。

在一些实施例中,所述视频流是具有4K或更高分辨率的视频流。在一些实施例中,所述至少一帧图像包括人脸,以及所述至少一个特征点包括以下至少一项:脸部、眼睛、鼻子、嘴、耳朵、头发、或眉毛。在一些实施例中,所述图像处理包括以下至少一项:轮廓修正、颜色修正、亮度修正、以及模糊处理。在一些实施例中,所述终端还包括:操作指示装置,用于针对经过图像处理的所述图像数据,指示所述GPU执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项。在一些实施例中,所述操作指示装置还用于:指示所述GPU并行执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少两项。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之前,对所述图像数据进行坐标变换,以使其能够由所述GPU进行图像处理。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之后,如果所述GPU是首次针对所述视频流进行图像处理,则创建新的纹理,否则在所述图像数据的宽高比不改变的情况下,仅更新已有的纹理。在一些实施例中,如果所述GPU不是首次针对所述视频流进行图像处理且所述图像数据的宽高比发生了改变,则创建新的纹理。在一些实施例中,所述图像数据的宽高比的改变是由变更摄像头和/或旋转所述终端引起的。

根据本公开的第三方面,提出了一种用于处理视频流的终端。该终端包括:处理器;图形处理单元(GPU);存储器,存储指令,所述指令在由所述处理器执行时使得所述处理器:获取所述视频流中的至少一帧图像的图像数据;确定所述图像数据中的至少一个特征点;以及指示所述GPU基于所述至少一个特征点对所述图像数据进行图像处理。

在一些实施例中,所述视频流是具有4K或更高分辨率的视频流。在一些实施例中,所述至少一帧图像包括人脸,以及所述至少一个特征点包括以下至少一项:脸部、眼睛、鼻子、嘴、耳朵、头发、或眉毛。在一些实施例中,所述图像处理包括以下至少一项:轮廓修正、颜色修正、亮度修正、以及模糊处理。在一些实施例中,所述指令在由所述处理器执行时,还使得所述处理器:针对经过图像处理的所述图像数据,指示所述GPU执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项。在一些实施例中,所述指令在由所述处理器执行时,还使得所述处理器:针对经过图像处理的所述图像数据,指示所述GPU并行执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少两项。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之前,对所述图像数据进行坐标变换,以使其能够由所述GPU进行图像处理。在一些实施例中,在所述GPU基于所述至少一个特征点对所述图像数据进行图像处理之后,如果所述GPU是首次针对所述视频流进行图像处理,则创建新的纹理,否则在所述图像数据的宽高比不改变的情况下,仅更新已有的纹理。在一些实施例中,如果所述GPU不是首次针对所述视频流进行图像处理且所述图像数据的宽高比发生了改变,则创建新的纹理。在一些实施例中,所述图像数据的宽高比的改变是由变更摄像头和/或旋转所述终端引起的。

根据本公开的第四方面,提出了一种计算机程序,在由处理器执行时使得所述处理器执行根据本公开的第一方面中任一项所述的方法。

根据本公开的第五方面,提出了一种计算机程序产品,包括根据本公开的第四方面所述的计算机程序。

附图说明

为了更完整地理解本公开实施例及其优势,现在将参考结合附图的以下描述,其中:

图1是示出了根据本公开实施例的终端的硬件结构示意图。

图2是示出了图1所示的终端中各组件之间数据/指令交互的示意图。

图3是示出了根据本公开实施例的在终端的主处理器处执行的使用GPU来处理视频流的方法的流程图。

图4是示出了根据本公开实施例的用于执行图3所示的方法的终端的示例功能架构框图。

具体实施方式

根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。

在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。

在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相同或相似的功能和操作。

在正式介绍本公开各实施例之前,将首先大致说明本文中可能用到的各种术语。

1080P:其为美国电影电视工程师协会(SMPTE)制定的高清数字电视的格式标准,有效分辨率为:1920×1080。其是一种在逐行扫描下达到1920×1080的分辨率的显示格式。

4K:4K分辨率并不特指某个特定数值,它指的是水平方向约有4000个像素点左右,根据不同的应用领域而存在细微差距。4K分辨率发展的趋势即4096×2160的像素分辨率,它是2K投影机和高清电视分辨率的4倍,属于超高清分辨率。比如常说的4K电影,其影片分辨率4096×2160,是由4K摄像机的成像格式决定。而在人们时论的电视领域,由于屏幕16∶9已成主流,因此电视屏的4K指的是3840×2160的物理分辨率,相当于给1920×1080(即,1080P)在横向和竖向上各翻了一番,仍然是标准的16∶9规格。在本公开的上下文中,如无特别指明,所提到的4K包含各种已知的或事实上的4K分辨率,包括但不限于前述两种4K分辨率。此外,类似地目前还定义有2K、8K等标准。

对象跟踪:指的是当某一对象出现在摄像头的视野/画面中时,可以通过对象识别算法来确定该对象的存在,并指示摄像头去跟拍该确定对象,直到对象超出摄像头的可拍摄范围为止。对象跟踪广泛应用于视频监控、无人机驾驶等领域中。

本申请的发明人注意到:现有的视频美颜软件的美颜瘦脸功能的相关操作是在中央处理单元(CPU)上执行的,其最多仅能支持1080P的视频分辨率。即使在显示流程方面采用GPU来执行,其也无法实现针对具有4K或以上分辨率的视频的实时修图处理。此外,其更无法支持以下各种操作的并发执行:转屏、拍照、录像、直播、显示和/或对象跟踪。更一般地,本申请的公开人注意到:现有的终端上并未充分利用GPU强大的并行图像处理能力,而使得CPU负担了过多的图像处理工作,造成了无法充分利用现有硬件资源的问题。

本实施例中,所述终端可以为可移动终端,如手机、笔记本电脑、手持拍摄装置等;也可为桌上计算机等。

大体上,本公开实施例提出了一种利用GPU来实现对视频流中的图像帧进行高速处理的方案。在该方案中,通过GPU对图像帧中的数据进行坐标旋转、美颜,并在CPU的辅助下进行瘦脸,能够显著提升针对高清晰度(例如,4K或更高分辨率)的人脸图像的高速处理。此外,通过使用GPU和CPU上的纹理数据的替换、对资源合理调度,来解决在4K或更高分辨率的条件下能够在美颜瘦脸之后还能并发地执行显示、录像、拍照、直播和/或对象跟踪(Tracking)等功能。

首先,将结合图1来详细描述根据本公开实施例的用于进行视频流处理的终端的构架。图1示出了根据本公开实施例的用于进行视频流处理的终端100的硬件示意图。如图1所示,终端100可以包括主处理器(以下有时也可称为中央处理单元或CPU或host processor)102、图形处理单元(以下有时也称为GPU)104和显示器106。

首先,请注意到:尽管图1中将主处理器102和图形处理单元104示出为单独的两个模块,然而实际上本公开不限于此。在一些实施例中,图形处理单元104可以作为主处理器102中内嵌的图形处理核心。例如,在华为推出的手机Mate8中,其主处理器麒麟950包括了8个通用处理器核心(由ARM公司推出的4个Cortex A72和4个Cortex A53)以及1个GPU核心(由ARM公司推出的Mali T880)。因此,在这样的示例中,尽管主处理器102和图形处理单元104实际上为一个物理硬件,但在逻辑上依然可将其视为两个单独的逻辑模块。实际上,对于程序员而言,由8个通用处理器核心组成的8核CPU依然需要调用诸如OpenGL之类的图形程序接口才能指挥GPU进行图形计算工作。因此,可以在逻辑上将主处理器102与图形处理单元104加以区分,然而这并不代表它们二者必然是不同的物理硬件。

GPU 104作为专门用于图形处理的处理器,其与CPU 102相比,具有更多的计算核心以及因此具有更强大的并行计算能力,也更适用于图像处理。事实上,在图像处理方面,如后文中详细描述的,针对相同的图像处理,GPU 104可以具有比CPU 102至少高100倍的计算速度。然而,如前文所述,在现有的图像处理过程中,并没有完全利用GPU 104这种强大的并行图像处理能力,从而导致了现有的终端无法实时处理分辨率较大的图像和/或视频(例如,具有4K或更高分辨率的图像和/或视频)。

此外,终端100的显示器106可以与GPU 104相连,以在GPU 104的控制下显示各种图像、文字等。显示器106可以包括(但不限于):CRT(阴极射线管)显示器、LCD(液晶)显示器、LED(发光二极管)显示器、OLED(有机发光二极管)显示器等等。此外,显示器106上显示的内容可以在GPU 104的控制下进行旋转,以例如适应终端100的当前设备定向。例如,在观看视频时,可以将终端100从纵向定向改变为横向定向,以使得视频能够全屏显示,占据整个屏幕,而非在屏幕的一部分上显示。此外,请注意显示器106不是终端100的必要组件。事实上,终端100可以外接显示器或以其他方式向远程显示器流传输显示画面,而无需内置显示器106。

通信单元108可以是使得终端100能够与外部设备进行通信的模块或单元。通信单元108可以是有线通信单元或无线通信单元或这二者的结合。当通信单元108是有线通信单元时,其可以包括(但不限于):USB模块、IEEE 1394模块、以太网模块、数字订户线路(DSL或更一般地xDSL)调制解调器、串口模块等等。当通信单元108是无线通信单元时,其可以包括例如(但不限于):各种2G模块(例如,GSM/GPRS模块等)、3G模块(例如WCDMA模块、CDMA2000模块、TD-SCDMA模块等)、4G模块(例如,TD-LTE模块等)、正在发展中且将要出现的各种5G模块等远距离通信模块。此外,通信单元108还可以包括近距离无线通信模块,例如(但不限于):Wi-Fi模块、蓝牙模块、NFC模块、RFID模块、红外模块等。事实上,通信单元108不限于上述任何模块,而是可以使得主处理器102能够与外部通信的任何模块,甚至可以是具有共享内存形式的模块,使得主处理器102可以用“写入/读取”的方式与外部设备/处理器共享数据。同样地,请注意通信单元108也不是终端100的必要组件。事实上,终端100可以外接通信单元以与其他外部设备通信,而无需内置通信单元108。

终端100还可以包括一个或多个摄像头110。在图1所示示例中,终端100包括了第一摄像头110-1和第二摄像头110-2(下文中,将其统称为摄像头110)。这两个摄像头可以具有不同的技术参数。例如,第一摄像头110-1可以位于终端100的背部,以在能够同时查看拍摄画面的情况下拍摄对象。第二摄像头110-2可以位于终端100的正面,以对用户自身进行自拍。此外,在另一些实施例中,第一摄像头110-1可以旋转以同时实现第一摄像头110-1和第二摄像头110-2的拍摄功能。在另一些实施例中,第一摄像头110-1甚至可以包括两个镜头,以实现3D拍摄、获取更清晰的图像等。这两个摄像头110-1和110-2可以具有不同的分辨率、变焦范围/固定焦距、快门速度、光圈、景深、感光度(ISO)等。此外,这两个摄像头110与主处理器102的连接方式也不限于图1所示的方式,而是可以分别与主处理器102的不同管脚相连,或者都连接到某个数据/控制总线上,本公开不限于此。同样地,请注意摄像头110-1和110-2也不是终端100的必要组件。尽管将第二摄像头110-2示出为虚线框,以表明其为可选摄像头,然而这并不暗示着摄像头1是必选摄像头。事实上,终端100可以外接摄像头以获取图像和/或视频,而无需内置摄像头110-1和110-2。此外,终端100甚至可以通过通信单元108来获取图像/视频流或从存储器112中获取图像/视频流,而无需任何内置/外部摄像头。

终端100还可以包括一个或多个存储器112。存储器112可以是易失性存储器或非易失性存储器。例如,作为易失性存储器,存储器112可以包括(但不限于):随机存取存储器(RAM)、动态RAM(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、高速缓存、寄存器等。例如,作为非易失性存储器,存储器112还可以包括(但不限于):一次性可编程只读存储器(OTPROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩膜ROM、闪存ROM、闪存、硬盘驱动器、固态驱动器等等。此外,存储器112还可以包括例如(但不限于)高密度闪存(CF)、安全数字(SD)、微型SD、迷你SD、极速数字(xD)、多媒体卡(MMC)、或记忆棒等等。存储器112可以存储供主处理器102和/或GPU 104所执行的指令和/或要处理或已处理的数据。在一些实施例中,例如当GPU 104与CPU 102共享存储器112时,存储器112可以用传递指针的方式在GPU104和CPU 102之间传输数据,例如待处理和/或已处理的视频流中的图像数据。例如,如图1中GPU 104与存储器112之间的虚线箭头所示,其可以可选地在物理上直接连接到存储器112,从而与CPU 102以时分的方式来共享存储器。此外,GPU 104也可以通过主处理器102来访问存储器112中存储的指令和/或数据。本公开不限于此。

终端100还可以包括统称为其它模块114的各种其它功能单元,包括(但不限于):例如,电源模块、传感器模块、输入输出模块(例如,键盘、按钮等、音频模块)、振动模块、加密模块等等。然而它们的存在与否并不影响对本公开实施例的主旨的理解和实现,因此此处省略了对它们的详细描述。

接下来将参考图2来详细描述在图1所示的终端100中各组件之间的数据/指令交互,该交互使得终端100能够使用其GPU 104来处理视频流。

在图2所示的实施例中,在步骤S201处,由摄像头110所拍摄的视频流数据可以通过各种方式向主处理器102、GPU 104和/或存储器112传输,例如,通过数据总线直接向各个组件传输,或传输给CPU 102,并由CPU 102向其它各个组件转发。请注意:在一些实施例中,该视频流数据可以不向存储器112和/或CPU 102传输,而仅由GPU 104来获取。

接下来,在步骤S202,GPU 104对摄像头110采集到的视频流数据的每一帧图像数据执行可选的坐标旋转,以将摄像头拍摄到的图像数据变换为可由GPU 104正确处理的数据格式(例如,变换到GPU 104的坐标系下)。然后,在步骤S203,GPU 104从该视频流数据中提取出每一帧原始图像数据,并在步骤S204向主处理器102和/或存储器112发送。

在接收到该原始图像数据之后,主处理器102可以在步骤S205中对该原始数据执行人脸识别和/或人脸特征点确定算法,以确定每一帧图像中是否包含人脸,以及如果包含人脸,则确定人脸中各个脸部特征(例如,脸部、眼睛、鼻子、嘴、耳朵、头发、或眉毛等)的位置、轮廓、颜色、亮度等中的一项或多项。然后,主处理器102可以在步骤S206中将上述特征数据发送给GPU 104。该人脸识别/特征点确定算法之所以在CPU 102上执行的原因在于GPU 104本身不像CPU 102一样具备较多的控制单元(例如,分支预测、缓存等),因此在执行这类算法时,GPU 104通常并不如CPU 102一样高效。所以,该算法主要可以由主处理器102来执行,而不是让其在GPU 104上执行。然而,在另一些实施例中,也可以让GPU 104来执行这些操作。此外,该算法并不是本文关注的重点,且存在多种用于人脸识别的算法,因此本文不再对其详细描述,然而这并不影响本领域技术人员实现本公开实施例。此外,尽管本文中使用特征点来代表人脸上的特征,但不代表其就是图像中单一的点或像素,而是可以代表具有一定形状和面积的区域,例如眼睛特征点可以包括与图像中眼睛部分大致相同形状和面积的像素块。

接下来,在步骤S207和S208中,GPU 104可以根据CPU 102找到的各个特征点来执行图像处理(例如,修图操作)。图像处理可以包括以下至少一项:轮廓修正(例如,瘦脸、眼部放大等)、颜色修正(例如,肤色、眼睛颜色、嘴唇颜色修正等)、亮度修正(例如,面部打光等)、以及模糊处理(例如,高斯模糊,或者俗称为“磨皮”)。此外,诸如瘦脸、美颜(整体效果包括例如磨皮、美白等,具体地可以包括例如双边滤波、边缘检测、锐化、肤色调节、和/或其他部位颜色/亮度调节等中的一项或多项)之类的修图操作的顺序并无一定之规。尽管在图2所示实施例中,先执行了瘦脸操作S207,然后执行了美颜操作S208,然而也可以颠倒执行,或甚至并行执行。此外,在一些实施例中,至少部分美颜操作S208可以不需要特征点的存在,且因此其或其一部分甚至可以在特征点确认之前(即,步骤S204之前)进行。

此外,本申请发明人发现:在移动设备中,一秒钟只要显示30张具有4K分辨率的图像就毫无卡顿感。根据本公开实施例,使用GPU 104来处理美颜的时间约为7.5ms(而使用CPU 102来执行同样操作至少要750ms以上),处理瘦脸的时间约为12ms(包括CPU 102确定特征点的时间约9.5ms和GPU 104执行瘦脸操作的时间约2.5ms)。从而,可以实现每帧4K图像处理仅需要约19.5ms,从而使得视频流没有卡顿感。

然后,在步骤S209,在GPU 104首次处理某一视频流的图像数据的情况下,GPU 104可以用经处理的数据或原始数据来创建一个新的纹理,在宽高(或分辨率)不变的情况下,以后来一次数据只要更新一次纹理数据,而无需重新创建新的纹理。从而减少了数据资源的反复创建,能够进一步提升计算性能。此外,在例如切换前后摄像头110-1和110-2的情况下或在旋转终端100(例如,纵向变横向或反之)的情况下,分辨率(或宽高)通常会发生改变,且此时可以重新创建新的纹理。尽管有时可能会造成零点几秒的卡顿,但是用户通常也不会注意到这样的卡顿。在纹理数据处理完成之后,GPU 104可以继续用纹理去渲染到GPUBuffer上。

在步骤S210,GPU 104可以向显示器106发送在步骤S209中创建或更新的显示数据,以使得用户能够在显示器106上看到经过修图的视频。同时,在步骤S210中,GPU 104还可以向CPU 102和/或存储器112发送该显示数据,以使得CPU 102可以执行后续处理,并使得存储器112能够存储该显示数据,从而实现视频录制功能。

在步骤S211和/或S212,CPU 102可以根据该显示数据来分别生成针对通信单元108的直播数据(例如,将显示数据按网络流传输的各种格式加以封装、打包等)和/或针对摄像头110的跟踪指令,以分别实现视频直播和/或对象跟踪。

至此,已结合图1和图2详细描述根据本公开实施例的使用GPU 104来处理视频流的总体流程。通过使用根据本公开实施例的方法、终端和/或计算机程序,用户可以在操作手机的时候开启美颜瘦脸功能,并在4K高清的状态下毫无卡顿感,还能同时进行直播、录像、拍照、显示以及旋转屏幕等操作。从而,通过GPU/CPU的合理调度的方式来让性能达到最优。

以下将结合图3~4来详细描述根据本公开实施例的终端100的使用GPU 104来处理视频流的方法以及终端100的功能构造。

图3是示出了根据本公开实施例的在终端100中执行的使用GPU 104来处理视频流的方法300的流程图。如图3所示,方法300可以包括步骤S310、S320和S330。根据本公开,方法300的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。在一些实施例中,方法300可以由图1所示的终端100和/或处理器102来执行。

图4是示出了根据本公开实施例的示例终端100的功能框图。如图4所示,终端100可以包括:图像数据获取装置150、特征点确定装置160和图像处理指示装置170。

图像数据获取装置150可以用于获取视频流中的至少一帧图像的图像数据。图像数据获取装置150可以是终端100的中央处理单元(例如,CPU 102)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与例如终端100的摄像头110相配合,获取视频流中的至少一帧图像的图像数据。此外,其也可以与终端100的通信单元108和/或存储器112相配合,获得从外部设备传送来的视频流的至少一帧图像的图像数据和/或存储在本地存储器中的视频流的至少一帧图像的图像数据。

特征点确定装置160可以用于确定该图像数据中的至少一个特征点。特征点确定装置160也可以是终端100的中央处理单元(例如,CPU 102)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以基于图像特征点识别算法,来确定图像中的特征点的位置、大小等参数。例如,可以根据人脸特征识别参数来确定图像中是否存在人脸,以及人脸的各个面部器官的位置、大小、颜色等等。

图像处理指示装置170可以用于指示GPU 104基于所确定的至少一个特征点对该图像数据进行图像处理。图像处理指示装置170也可以是终端100的中央处理单元(CPU 102)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以通过例如图形编程接口(例如,OpenGL、Direct3D等),指示GPU 104根据所检测到的至少一个特征点来执行相应图像处理。例如,可以指示GPU 104在图像中检测到面部粉刺的地方执行模糊处理(例如,高斯模糊等),在图像中检测到皮肤的地方执行亮度修正、颜色修正等处理,和/或在检测到面部轮廓的地方执行轮廓修正(例如,瘦脸等)处理。

此外,终端100还可以包括图4中未示出的其它功能单元,例如操作指示装置。在一些实施例中,操作指示装置可以用于针对经过图像处理的图像数据,指示GPU 104来执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项。此外,该操作指示装置还可以用于:指示GPU 104并行执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少两项。

此外,终端100还可以包括图4中未示出的其他功能单元,然而由于其并不影响本领域技术人员理解本公开的实施方式,因此在图4中加以省略。例如,终端100还可以包括以下一项或多项功能单元:电源、存储器(例如,存储器112)、数据总线、天线、无线收发信机(例如,通信单元108)等等。

以下将结合图3和图4,对根据本公开实施例的在终端100上执行的使用GPU 104来处理视频流的方法300和终端100进行详细的描述。

方法300开始于步骤S310,在步骤S310中,可以由终端100的图像数据获取装置150获取视频流中的至少一帧图像的图像数据。

在步骤S320中,可以由终端100的特征点确定装置160确定该图像数据中的至少一个特征点。

在步骤S330中,可以由终端100的图像处理指示装置170指示GPU 104基于至少一个特征点对图像数据进行图像处理。

在一些实施例中,该视频流可以是具有4K或更高分辨率的视频流。在一些实施例中,该至少一帧图像可以包括人脸,以及至少一个特征点可以包括以下至少一项:脸部、眼睛、鼻子、嘴、耳朵、头发、或眉毛。在一些实施例中,图像处理可以包括以下至少一项:轮廓修正、颜色修正、亮度修正、以及模糊处理。在一些实施例中,方法300还可以包括:针对经过图像处理的图像数据,指示GPU 104执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项。在一些实施例中,指示GPU 104执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少一项可以包括:指示GPU 104并行执行视频录制操作、视频显示操作、对象跟踪操作、或视频直播操作中的至少两项。在一些实施例中,在GPU 104基于至少一个特征点对图像数据进行图像处理之前,可以对图像数据进行坐标变换,以使其能够由GPU 104进行图像处理。在一些实施例中,在GPU 104基于至少一个特征点对图像数据进行图像处理之后,如果GPU104是首次针对视频流进行图像处理,则可以创建新的纹理,否则在图像数据的宽高比不改变的情况下,仅可以更新已有的纹理。在一些实施例中,如果GPU 104不是首次针对视频流进行图像处理且图像数据的宽高比发生了改变,则可以创建新的纹理。在一些实施例中,图像数据的宽高比的改变可以是由变更摄像头和/或旋转终端引起的。

通过使用根据本公开实施例的方法、终端和/或计算机程序,用户可以在操作手机的时候开启美颜瘦脸功能,并在4K高清的状态下毫无卡顿感,还能同时进行直播、录像、拍照、显示以及旋转屏幕等操作。从而,通过GPU/CPU的合理调度的方式来让性能达到最优。

需要注意的是,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。此外,例如描述为通过蓝牙模块、NFC芯片/线圈等实现的功能,也可以由通用处理器(例如,CPU、DSP等)结合模数转换电路、放大电路、天线等硬件以及蓝牙、NFC相关处理软件来实现,反之亦然。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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