CN114501141B - 视频数据处理方法、装置、设备和介质 - Google Patents

视频数据处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN114501141B
CN114501141B CN202210001292.5A CN202210001292A CN114501141B CN 114501141 B CN114501141 B CN 114501141B CN 202210001292 A CN202210001292 A CN 202210001292A CN 114501141 B CN114501141 B CN 114501141B
Authority
CN
China
Prior art keywords
data
video
texture
processing
gpu
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.)
Active
Application number
CN202210001292.5A
Other languages
English (en)
Other versions
CN114501141A (zh
Inventor
陶金亮
阮良
陈功
陈丽
徐杭生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Zhiqi Technology Co Ltd
Original Assignee
Hangzhou Netease Zhiqi Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Netease Zhiqi Technology Co Ltd filed Critical Hangzhou Netease Zhiqi Technology Co Ltd
Priority to CN202210001292.5A priority Critical patent/CN114501141B/zh
Publication of CN114501141A publication Critical patent/CN114501141A/zh
Application granted granted Critical
Publication of CN114501141B publication Critical patent/CN114501141B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4053Scaling of whole images or parts thereof, e.g. expanding or contracting based on super-resolution, i.e. the output image resolution being higher than the sensor resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供一种视频数据处理方法、装置、设备和介质,涉及通信技术领域,方法应用于移动终端,包括:获取远端设备的远端视频数据;通过图形处理器GPU对远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,第一预设处理至少包括超分辨率处理;通过GPU对目标视频纹理数据进行渲染处理。采用本公开提供的上述方案,可以在实时通信场景下,对接收的视频进行超分处理以提高视频质量,同时,满足实时性的要求。

Description

视频数据处理方法、装置、设备和介质
技术领域
本公开涉及通信技术领域,特别涉及一种视频数据处理方法、装置、设备和介质。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,在实时通信(Real Time Communication,RTC)场景中,例如视频通话场景,由于网络带宽的限制,发送端在传输视频时,通常会以低分辨率的尺寸进行传输,而且视频经过编解码后画质会被压缩,导致接收端接收到的视频质量不佳,影响用户观看。
虽然,接收端可以采用一些视频算法对低分辨率的视频进行处理,以增强视频质量,但是,RTC场景对视频的实时性要求比较高,而采用视频算法对视频进行处理,很难满足实时性的要求。
发明内容
本公开实施例提供一种视频数据处理方法、装置、设备和介质,用于在实时通信场景下,对接收的视频进行超分处理以提高视频质量,同时,满足实时性的要求。
第一方面,本公开实施例提供了一种视频数据处理方法,应用于移动终端,包括:
获取远端设备的远端视频数据;
通过图形处理器GPU对所述远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,所述第一预设处理至少包括超分辨率处理;
通过所述GPU对所述目标视频纹理数据进行渲染处理。
第二方面,本公开实施例还提供了一种视频数据处理装置,应用于移动终端,包括:
获取模块,用于获取远端设备的远端视频数据;
第一处理模块,用于通过图形处理器GPU对所述远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,所述第一预设处理至少包括超分辨率处理;
渲染模块,用于通过所述GPU对所述目标视频纹理数据进行渲染处理。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面任一种视频数据处理方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面任一种视频数据处理方法的步骤。
本公开实施例提供的视频数据处理方法至少具有如下有益效果:
根据本公开实施例提供的方案,在实时通信(例如视频通话)场景下,移动终端在获取到远端设备的远端视频数据后,通过图形处理器GPU对远端视频数据进行超分辨率处理等,获得目标视频纹理数据,进而通过GPU对目标视频纹理数据进行渲染处理;这样,通过GPU对远端视频数据进行超分辨率处理,可以提高接收到的视频的质量,同时,由于移动终端的GPU具有比较好的算力,适合用于超分辨率处理,可以快速对视频数据进行处理,从而满足实时性的要求。另外,GPU可以与中央处理器CPU协调工作,充分发挥GPU和CPU的并行处理能力,从而满足低功耗的要求。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种视频数据处理方法的应用场景示意图;
图2为本公开实施例提供的一种视频数据处理方法的流程图;
图3为本公开实施例提供的另一种视频数据处理方法的流程图;
图4为本公开实施例提供的另一种视频数据处理方法的流程图;
图5为本公开实施例提供的一种视频数据处理方法的逻辑示意图;
图6为本公开实施例提供的另一种视频数据处理方法的流程图;
图7为本公开实施例提供的另一种视频数据处理方法的流程图;
图8为本公开实施例提供的一种视频处理框架的示意图;
图9为本公开实施例提供的一种视频数据处理装置的示意图;
图10为本公开实施例提供的另一种视频数据处理装置的示意图;
图11为本公开实施例提供的电子设备的结构示意图;
图12为本公开实施例提供的另一电子设备的结构示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解,下面对本公开实施例中涉及的部分概念进行解释。
实时通信(Real-time Communications,RTC):是一类提供实时性保证的软件协议和通信硬件介质,是支持实时计算的实时性保证所必需的。其主要包括互联网、固定电话、移动电话/手机、即时消息、互联网中继聊天、视频会议、电话会议和机器人远程呈现。
中央处理器(Central Processing Unit,CPU):是计算机的主要设备之一,其功能主要是解释计算机指令以及处理计算机软件中的数据。
图形处理器(Graphics Processing Unit,GPU):是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。
超分辨率技术(Super Resolution,SR):是指采用某种算法或模型,从低分辨率图像重建出对应高分辨率图像,并且尽可能地恢复更多的细节信息,是计算机视觉领域的重要研究方向。
iOS:是由苹果公司为其硬件专门创建和开发的移动操作系统。
MacOS:是由苹果公司开发的一个专用的图形操作系统。
Android:是一个基于Linux内核与其他开源软件的开放源代码的移动操作系统。
Metal:是由苹果公司所开发的一个应用程序接口,兼顾图形与计算功能,面向底层、低开销的硬件加速。
OpenGL:是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。
OpenGL ES:是OpenGL计算机图形渲染应用程序编程接口的子集。
OpenCL:是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。
Vulkan:是一种低开销、跨平台的API,是3D图形和计算的开放标准。
Cuda:是一种并行计算平台和应用程序编程接口。
下面对本公开实施例的设计思想进行介绍。
目前,在RTC场景中,例如视频通话场景,由于网络带宽的限制,发送端在传输视频时,通常会以低分辨率的尺寸进行传输,而且视频经过编解码后画质会被压缩,导致接收端接收到的视频质量不佳,影响用户观看。
虽然,接收端可以采用一些视频算法对低分辨率的视频进行处理,以增强视频质量,但是,RTC场景对视频的实时性要求比较高,而目前大部分的视频算法通常采用参数量庞大的模型,使得视频处理过程比较耗时,因此,采用视频算法对视频进行处理,很难满足实时性的要求。
有鉴于此,本公开实施例提供一种视频数据处理方法、装置、设备和介质,通过GPU对远端视频数据进行超分辨率处理,可以提高接收到的视频的质量,同时,由于移动终端的GPU具有比较好的算力,适合用于超分辨率处理等,可以快速对视频数据进行处理,从而满足实时性的要求。
下面结合附图对本公开实施例的应用场景进行介绍。
参考图1,其为本公开实施例所提供的视频数据处理方法的应用场景示意图。该应用场景包括移动终端100和远端设备200。其中,移动终端100和远端设备200可以通过通信网络连接,以实现语音通话或者视频通话等。可选地,通信网络可以是有线网络或无线网络。
移动终端100包括但不限于移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、车载设备、个人数字助理(personal digital assistant,PDA)等电子设备;远端设备200包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personal digital assistant,PDA)等电子设备。
第一用户在使用移动终端100与第二用户进行视频通话过程中,移动终端100可以接收第二用户的远端设备发送的视频编码数据,并将视频编码数据解码为远端视频数据,然后通过GPU对远端视频数据进行超分辨率处理等,获得目标视频纹理数据;接着,通过GPU对目标视频纹理数据进行渲染处理,以显示目标视频纹理数据。
下面结合图1的应用场景,来描述根据本公开示例性实施方式的视频数据处理方法。上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
参考图2,本公开实施例提供了一种视频数据处理方法,可应用于移动终端,例如图1中的移动终端100,方法可以包括以下步骤:
步骤S201,获取远端设备的远端视频数据。
其中,远端设备可以是移动终端,也可以是非移动终端,在此不作限定。近端的移动终端在与远端设备进行实时视频通信(例如视频通话)过程中,可以接收远端设备发送的编码后的远端视频数据(简称编码视频数据),然后将编码视频数据进行解码,获得远端视频数据。
可选地,移动终端可以通过CPU或者GPU将视频编码数据进行解码,获得远端视频数据。
当通过CPU将视频编码数据进行解码时,可以通过软件解码或者硬件解码,并设置解码输出的数据格式,例如:解码输出NV12格式、I420格式等,这两种格式的数据都属于YUV裸数据。此时,远端视频数据的数据格式为YUV裸数据。
其中,YUV中的“Y”表示明亮度,也就是灰阶值,“U”和“V”表示的则是色度,作用是描述影像色彩及饱和度,用于指定像素的颜色。NV12属于YUV420SP格式,两个平面,分别存储Y分量和UV分量。其中UV分量共用一个平面并且以U,V的顺序交错排列。每四个Y分量共享一组UV分量。I420属于YUV420P格式,三个平面,分别存储Y、U、V分量。每四个Y分量共享一组UV分量。
当通过GPU将视频编码数据进行解码时,可以通过硬件解码,解码输出的数据格式为纹理,例如:OES纹理,这种情况下,在硬件解码时,直接将解码后的数据转换为OES纹理数据。此时,远端视频数据的数据格式为OES纹理。其中,OES纹理是Android特有的一个纹理。
步骤S202,通过图形处理器GPU对远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,第一预设处理至少包括超分辨率处理。
该步骤中,为了提高远端视频数据的质量,通过GPU对远端视频数据执行一些视频算法,包括但不限于超分辨率处理等。超分辨率处理可以采用已有的超分算法或者超分模型,从低分辨率图像重建出对应的高分辨率图像,并且尽可能地恢复更多的图像细节信息。
针对不同操作系统的移动终端,GPU可以采用相应的算子执行超分辨率处理等视频算法。例如:对于Android操作系统的移动终端,GPU可以采用OpenCL算子;对于iOS操作系统的移动终端,GPU可以采用Metal算子。这样,在不同操作系统的移动终端上,可以使GPU更好地加速执行超分辨率处理等视频算法。
步骤S203,通过GPU对目标视频纹理数据进行渲染处理。
其中,GPU可以调用渲染引擎将目标视频数据渲染至相应的显示界面中。
本公开实施例中,通过GPU对远端视频数据进行超分辨率处理等相关处理,以及视频渲染等,使得整个过程都使用GPU纹理数据,不需要进行CPU数据和GPU纹理数据的互相转换,减少GPU和CPU之间的互相等待过程,并且GPU具有比较好的算力,适合用于超分辨率处理等,可以快速对视频数据进行处理,满足视频通话场景对于视频实时性的要求;同时,充分使用GPU硬件算力,降低移动终端的CPU功耗。
基于本公开上述实施例,考虑到解码后的远端视频数据的格式可能有多种,例如包括但不限于:YUV裸数据(例如NV12格式、I420格式等)、OES纹理等,而超分辨率处理等视频算法的输入数据格式一般是统一的,因此,可以对远端视频数据进行数据格式转换,以将远端视频数据转换为执行视频算法所需要的数据格式。
在一些可选的实施例中,如图3所示,第一预设处理还可以包括第一格式转换处理,上述步骤S202中通过GPU对视频纹理数据进行第一预设处理,获得目标视频纹理数据,可以包括如下步骤:
S2021,通过GPU对远端视频数据进行第一格式转换处理,获得第一纹理格式的视频纹理数据。
其中,第一纹理格式为执行超分辨率处理所需要的纹理格式。例如,第一纹理格式为YUV纹理(包括Y纹理和U纹理和V纹理),当远端视频数据为YUV裸数据时,可以将YUV裸数据转换为YUV纹理数据;当远端视频数据为OES纹理数据时,可以将OES纹理数据转换为YUV纹理数据。
需要说明的是,上述远端视频数据的具体格式以及第一纹理格式的具体格式只是示例性的,并不作为对本公开实施例的限定。
S2022,通过GPU对第一纹理格式的视频纹理数据进行超分辨率处理,获得目标视频纹理数据。
例如,第一纹理格式的视频纹理数据为YUV纹理数据,通过GPU对YUV纹理数据进行超分辨率处理,获得更高分辨率的目标视频纹理数据,从而提高后续渲染后的视频的质量。
通常情况下,GPU在对YUV纹理数据执行超分辨率处理时,可以采用相应的算子对YUV纹理数据进行处理,并且不同操作系统下的算子也不同,例如:Android操作系统下的OpenCL算子、iOS操作系统下的Metal算子等。
以Android操作系统下的OpenCL算子为例,GPU中运行的视频纹理数据通常采用OpenGL语言,也就是说,上述YUV纹理数据采用OpenGL语言,可以将OpenGL语言的YUV纹理数据转换为OpenCL语言的YUV纹理数据,通过OpenCL算子对OpenCL语言的YUV纹理数据进行超分辨率处理,获得目标视频纹理数据。
再以iOS操作系统下的Metal算子为例,需要将MTLTexture中存储的YUV纹理数据转换为MTLBuffer中存储的纹理数据(简称Buffer纹理数据),然后采用Metal算子对Buffer纹理数据进行超分辨率处理,获得的目标视频纹理数据。
其中,MTLBuffer表示一块非格式化的内存,它可以存放任何类型的数据;它通常用于存放定点数据,着色器数据和计算状态数据。MTLTexture表示一块有格式的图像数据,有特定的纹理类型和像素格式;纹理对象通常被用作定点着色程序,片段着色程序,或是并行计算着色程序的纹理源,它也可以存放图形渲染的输出结果。
进一步地,在获得上述目标视频纹理数据后,需要对该目标视频纹理数据进行渲染处理,通常,GPU可以对设定纹理格式的视频纹理数据进行渲染处理,例如,设定纹理格式包括但不限于RGB纹理、YCbCr纹理(包括Y纹理和CbCr纹理)、YUV纹理(包括Y纹理和U纹理和V纹理)等;其中,RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色;YCbCr中的Y是指亮度分量,Cb指蓝色色度分量,Cr指红色色度分量。
当目标视频纹理数据与渲染所需的设定纹理格式不同时,可以将目标视频纹理数据转换为设定纹理格式的视频纹理数据。
在一种可选的实施方式中,如图4所示,上述步骤S203中通过GPU对目标视频纹理数据进行渲染处理,可以包括如下步骤:
S2031,通过GPU将目标视频纹理数据进行第二格式转换处理,获得第二纹理格式的视频纹理数据;
例如:在Android操作系统下,目标视频纹理数据为OpenCL语言的YUV纹理数据,第二纹理格式为OpenGL语言的YUV纹理,可以将目标视频纹理数据转换为OpenGL语言的YUV纹理数据。
又例如:在iOS操作系统下,目标视频纹理数据为MTLBuffer中存储的Buffer纹理数据,第二纹理格式为MTLTexture中存储的YUV纹理,可以将目标视频纹理数据转换为MTLTexture中存储的YUV纹理数据。
S2032,通过GPU将第二纹理格式的视频纹理数据渲染至显示界面中。
例如,第二纹理格式的视频纹理数据为YUV纹理数据,通过GPU将YUV纹理数据渲染至显示界面中,该显示界面可以为视频通话界面。
本公开实施例中,为了避免GPU和CPU之间的数据传递,除了通过GPU执行超分辨率处理以外,涉及到的数据传递和数据转换过程都在GPU中处理,从而充分发挥GPU的处理能力,使得GPU和CPU并行处理,满足视频通话场景对于视频实时性的要求;同时,降低移动终端的CPU功耗。
为了进一步提高远端视频数据的质量,除了可以对远端视频数据进行超分辨率处理,还可以进行一些其他视频算法,例如屏幕增强处理等。
在一些实施例中,第一预设处理还包括屏幕增强处理,上述步骤S202中通过图形处理器GPU对视频纹理数据进行第一预设处理,获得目标视频纹理数据,还可以包括步骤A和步骤B中的其中之一:
A、通过GPU依次对视频纹理数据进行超分辨率处理、屏幕增强处理,获得目标视频纹理数据。
B、通过GPU依次对视频纹理数据进行屏幕增强处理、超分辨率处理,获得目标视频纹理数据。
其中,屏幕增强处理可以采用相应的图像增强算法,增强视频图像的显示效果,例如可以采用retinex算法进行视频图像增强,以提高视频的显示效果,同时,结合超分辨率处理,可以进一步提高视频质量。
上述retinex算法的原理是:原始图像S是光照图像L和反射率图像R的乘积,通过从原始图像S中估计出光照图像L,从而分解出反射率图像R,消除光照不均的影响,以改善图像的视觉效果。
下面结合图5-图7,对本公开实施例的视频数据处理方法进行示例性介绍。
如图5和图6所示,以Android操作系统的移动终端为例,该移动终端在接收端远端设备发送的视频编码数据后,通过GPU或者CPU对视频编码数据进行解码,获得远端视频数据,该远端视频数据可以包括但不限于OES纹理数据、YUV裸数据等,然后将远端视频数据存储在视频缓冲区中。
接下来,从视频缓冲区中获取远端视频数据进行处理,首先通过GPU将远端视频数据转换为,该第一纹理格式为执行视频算法所需要的数据格式,例如图5中的OpenGL纹理(例如上述OpenGL语言的YUV纹理);GPU推理框架通过OpenCL算子对该视频纹理数据执行一些视频算法,例如:超分辨率处理、屏幕增强处理等,在执行视频算法之前,需要将视频纹理数据转换为OpenCL纹理数据(例如上述OpenGL语言的YUV纹理数据),然后对OpenCL纹第一纹理格式的视频纹理数据执行上述视频算法,获得目标视频纹理数据。
进一步地,在将目标视频纹理数据进行渲染处理之前,将目标视频纹理数据转换为OpenGL纹理数据,将OpenGL纹理数据作为待渲染的GPU纹理数据,然后通过GPU的OpenGL渲染引擎将待渲染的GPU纹理数据进行屏幕渲染,以显示在视频通话界面中。
需要说明的是,针对Android操作系统,GPU通过OpenCL算子执行一些视频算法时,采用OpenCL语言来执行,而对执行视频算法后的目标视频纹理数据进行渲染处理时,采用OpenGL语言来执行,因此,可以在OpenGL渲染引擎和OpenCL算子之间进行数据共享。
图7示出了iOS操作系统下GPU执行视频算法和渲染处理过程中的数据转换过程。
如图7所示,GPU执行视频算法时,输入GPU存储的Melal数据,即上述第一纹理格式的视频纹理数据,该视频纹理数据具体存储在GPU的MTLTexture中,将MTLTexture中存储的视频纹理数据(例如YUV纹理数据)转换为MTLBuffer中存储的Buffer纹理数据(即图7中的Texture to Buffer),GPU推理框架采用Metal算子对Buffer纹理数据执行视频算法,例如:超分辨率处理、屏幕增强处理等,获得MTLBuffer中存储的目标视频纹理数据。
进一步地,将MTLBuffer中存储的目标视频纹理数据转换为MTLTexture中存储的目标视频纹理数据(即图7中的Buffer to Texture),然后GPU通过渲染引擎将该目标视频纹理数据进行屏幕渲染,以显示在视频通话界面中。
本公开上述实施例介绍了移动终端对于远端设备的远端视频数据进行处理的过程,下面介绍一下移动终端对于近端视频数据的处理过程。
在一些实施例中,在上述步骤S201-步骤S203的基础上,视频数据处理方法还可以包括以下步骤:
a、采集近端视频数据。
其中,移动终端在与远端设备进行视频通话过程中,可以通过摄像头采集近端视频数据,其中可以包括近端用户的人脸图像。
b、通过GPU或CPU对近端视频数据进行图像预处理;
其中,图像预处理可以包括旋转、裁剪、缩放、镜像中的至少一种,各个处理可以采用已有的处理方法实现,在此不再赘述。
需要说明的是,旋转处理可以在下述人脸检测处理之前执行,裁剪、缩放、镜像等处理可以在人脸检测处理之前执行,也可以在人脸检测处理之后执行,可以根据实际业务需求进行调整,在此不作限定。
c、通过CPU对近端视频数据进行人脸检测处理,以及通过GPU对近端视频数据进行第二预设处理,获得处理后的近端视频数据。
其中,第二预设处理包括视频降噪处理、视频矫正处理、美颜处理、人脸画质增强处理中的至少一种。
该步骤中,针对采集到的近端视频数据中的人脸图像,可以通过CPU进行人脸检测处理,以检测人脸图像中的人脸区域,获得包含人脸区域的近端视频数据,进而对人脸区域进行相关处理。
进一步地,为了增强近端视频数据的显示效果,可以通过GPU对包含人脸区域的近端视频数据,进行美颜处理、人脸画质增强处理等。另外,还可以通过GPU对近端视频数据执行视频降噪处理、视频矫正处理等,这两种处理可以在人脸检测处理之前或者之后执行,在此不作限定。上述各个处理可以采用已有的处理方法实现,在此不再赘述。
d、通过中央处理器CPU或者GPU将处理后的近端视频数据进行编码,并将编码后的近端视频数据发送给远端设备。
本公开实施例中,在通过GPU对远端视频数据进行处理的基础上,通过CPU和GPU对近端视频数据进行处理,充分发挥GPU和CPU的并行处理能力,降低移动终端的CPU功耗。
下面对实现本公开实施例的视频数据处理方法的视频处理框架进行介绍。
如图8所示,视频处理框架为一个视频前后处理的框架,用于承载各类视频算法,包括CPU算法和GPU算法。其中,视频前处理是指对采集的近端视频数据进行处理,视频后处理是指对远端设备的远端视频数据进行处理。
第一层为前后处理管理和控制层:前后处理管理具体用于管理GPU的上下文环境,同时负责前处理和后处理的创建和销毁。前后处理控制包含具体的前处理和后处理,它们各自管理一个线程,进行耗时操作。
其中,前处理是指视频前处理,包含但不限于以下视频算法:视频降噪、视频增强、美颜、视频矫正、人脸检测等。后处理是指视频后处理,包含但不限于以下视频算法:视频超分、屏幕增强等算法。耗时操作是指具体的数据转换和具体的算法等。
第二层为前后处理单元:它们负责不同类型的操作管理,包括CPU算法处理单元、GPU算法处理单元(包括RGB纹理处理单元、YUV纹理处理单元等)、图像预处理的预览处理单元、图像预处理的编码处理单元、编码格式要求的处理单元等。
第三层为数据转换层:主要负责实时视频通信场景中,各个操作系统下的数据类型的转换,包括CPU数据和GPU数据的互相转换中,以及GPU不同数据格式之间的转换。
例如:iOS操作系统使用Metal实现、Android操作系统使用OpenGL ES实现。
第四层为算法层:主要包含AI算法(通过AI引擎实现)和传统算法,包括但不限于以下算法:超分、屏幕增强、视频降噪、人脸检测、美颜、人脸画质增强、视频矫正等。有的使用CPU实现,有的使用GPU实现。
其中,移动终端的GPU可以执行AI超分算法和传统超分算法,以及屏幕增强处理等视频后处理,还可以执行视频降噪、美颜、人脸画质增强、视频矫正等视频前处理。移动终端的CPU可以执行人脸检测处理。
第五层为平台层:包括各个平台的算子,具体可以包括NPU、CPU、GPU中的算子,其中,GPU可以采用Vulkan、Metal、OpenCL、Cuda等算子。在不同操作系统上,GPU采用的算子也不同,例如:在iOS操作系统上,采用Metal算子,在Android操作系统上采用OpenCL算子。
下面对采用上述视频处理框架,实现视频数据处理方法中的数据转换以及视频渲染过程进行介绍。
1.数据转换层实现:Android操作系统使用OpenGL ES的Shader(着色器)实现视频数据格式的转换。iOS操作系统使用Metal的Shader实现视频数据格式的转换。通过不同操作系统中的不同Shader,可以高效地将CPU数据转换到GPU纹理,以及在GPU内部进行数据格式地转换,提升CPU和GPU的并行能力。
例如:OpenGL ES的Shader可以实现如下数据格式之间的转换:I420格式转换为YUV纹理格式、OES纹理格式转换为YUV纹理格式、I420格式转换为RGB纹理格式、YUV纹理格式转换为RGB纹理格式、RGB纹理格式转换为YUV纹理格式、RGB纹理格式转换为I420格式等。
Metal的Shader可以实现如下数据转换:I420格式转换为YUV纹理格式、NV12格式转换为YCbCr纹理格式、NV12格式转换为RGB纹理格式、NV12格式转换为YUV纹理格式、YCbCr纹理格式转换为RGB纹理格式、RGB格式转换为RGB纹理格式、RGB格式转换为YUV纹理格式、YUV纹理格式转换为CVPixeBuffer、YCbCr纹理格式转换为CVPixeBuffer等。
2、为了避免GPU和CPU之间的数据传输,除了通过GPU执行视频算法以外,涉及到的数据传递和数据转换过程都在GPU中处理,从而充分发挥GPU的处理能力。
在Android操作系统的GPU开发中,一般采用OpenGL语言、OpenCL语言等GPU语言实现,为了发挥每个GPU语言的优势,可以在整个视频数据处理流程中混用多种GPU语言;具体地,执行视频算法过程中采用OpenCL语言,执行渲染处理过程中采用OpenGL语言,需要进行OpenGL语言、OpenCL语言之间的转换,实现各个GPU语言的数据同步和协调。
针对iOS操作系统,GPU在执行视频算法时可以使用Metal语言,Metal语言的内部数据也分为两种类型,一种是Buffer(即MTLBuffer中存储的数据类型),另一种是Texture(即MTLTexture中存储的数据类型),在执行视频算法时使用Buffer,执行视频渲染时使用Texture,所以,视频算法的输入和输出时,可以在GPU上执行Texture和Buffer之间的数据转换。
在执行视频算法前后,由于视频算法的数据类型和实时视频通信场景下的数据类型不同,因此需要做数据转换,这些数据转换都在GPU上实现,从而发挥GPU的高运算能力。
3.视频渲染需要支持GPU纹理数据的渲染。用于对执行视频算法之后的GPU纹理数据进行渲染处理,从而保证视频算法和视频渲染过程都是在GPU上运行。
例如:iOS操作系统支持CPU数据和GPU纹理数据的输入,CPU数据包括RGB、NV12、I420;GPU数据包括:RGB纹理、YUV纹理(包括Y纹理、U纹理和V纹理),YCbCr纹理(包括Y纹理、CbCr纹理)。
又例如:Android操作系统支持CPU数据和GPU纹理数据的输入,CPU数据包括RGB、I420;GPU数据包括:OES纹理、RGB纹理、YUV纹理(包括Y纹理、U纹理和V纹理)。
基于相同的发明构思,本公开实施例还提供了一种视频数据处理装置,该装置解决问题的原理与上述实施例的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
参阅图9所示,本公开实施例提供的一种视频数据处理装置90,应用于移动终端,包括获取模块91、第一处理模块92和渲染模块93。
获取模块91,用于获取远端设备的远端视频数据;
第一处理模块92,用于通过GPU对远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,第一预设处理至少包括超分辨率处理;
渲染模块93,用于通过GPU对目标视频纹理数据进行渲染处理。
本公开实施例中,通过GPU对远端视频数据进行超分辨率处理等相关处理,以及视频渲染等,使得整个过程都使用GPU纹理数据,不需要进行CPU数据和GPU纹理数据的互相转换,减少GPU和CPU之间的互相等待过程,并且GPU具有比较好的算力,适合用于超分辨率处理等,可以快速对视频数据进行处理,满足视频通话场景对于视频实时性的要求;同时,充分使用GPU硬件算力,降低移动终端的CPU功耗。
在一种可选的实施方式中,第一预设处理还包括第一格式转换处理,第一处理模块92还用于:
通过GPU对远端视频数据进行第一格式转换处理,获得第一纹理格式的视频纹理数据;
通过GPU对第一纹理格式的视频纹理数据进行超分辨率处理,获得目标视频纹理数据。
在一种可选的实施方式中,渲染模块93还用于:
通过GPU将目标视频纹理数据进行第二格式转换处理,获得第二纹理格式的视频纹理数据;
通过GPU将第二纹理格式的视频纹理数据渲染至显示界面中。
在一种可选的实施方式中,获取模块91还用于:
接收远端设备发送的远端视频编码数据;
通过中央处理器CPU或者GPU将远端视频编码数据进行解码,获得远端视频数据。
在一种可选的实施方式中,如图10所示,装置还包括:
采集模块94,用于采集近端视频数据;
第二处理模块95,用于通过中央处理器CPU对近端视频数据进行人脸检测处理,以及通过GPU对近端视频数据进行第二预设处理,获得处理后的近端视频数据;其中,第二预设处理包括视频降噪处理、视频矫正处理、美颜处理、人脸画质增强处理中的至少一种;
编码模块96,用于通过CPU或者GPU将处理后的近端视频数据进行编码,并将编码后的近端视频数据发送给远端设备。
在一种可选的实施方式中,装置还包括:
图像处理模块97,用于通过GPU或CPU对人脸检测后的近端视频数据进行图像预处理;其中,图像预处理包括旋转、裁剪、缩放、镜像中的至少一种。
在一种可选的实施方式中,第一预设处理还包括屏幕增强处理,第一处理模块92还用于:
通过GPU依次对视频纹理数据进行超分辨率处理、屏幕增强处理,获得目标视频纹理数据;或者
通过GPU依次对视频纹理数据进行屏幕增强处理、超分辨率处理,获得目标视频纹理数据。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在介绍了本申请示例性实施方式的视频数据处理方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
基于相同的发明构思,本公开实施例还提供了一种电子设备,该电子设备解决问题的原理与上述实施例的方法相似,因此该电子设备的实施可以参见方法的实施,重复之处不再赘述。
参阅图11所示,本公开实施例提供的一种电子设备可以包括:处理器1102和存储器1101。存储器1101向处理器1102提供存储器1101中存储的程序指令和数据。在本公开实施例中,存储器1101可以用于存储本公开实施例中视频数据处理的程序。
处理器1102通过调用存储器1101存储的程序指令,处理器1102用于执行上述任意方法实施例中的方法,例如图2所示的实施例提供的一种视频数据处理方法。
本公开实施例中不限定上述存储器1101和处理器1102之间的具体连接介质。本公开实施例在图11中以存储器1101和处理器1102之间通过总线1103连接,总线1103在图11中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1103可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器可以包括只读存储器(Read-Only Memory,ROM)和随机存取存储器(RandomAccess Memory,RAM),还可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
下面参照图12来描述根据本申请的一种实施方式的电子设备。图12的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12,电子设备以通用电子设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个存储器、连接不同系统组件(包括存储器和处理器)的总线。
在该实施例中,电子设备可以是移动终端,其结构可以如图12所示,包括:通信组件1210、存储器1220、显示单元1230、摄像头1240、传感器1250、音频电路1260、蓝牙模块1270、处理器1280等部件。
通信组件1210用于与远端设备进行通信,接收远端设备的远端视频数据等。在一些实施例中,通信组件1210可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,电子设备通过WiFi模块可以帮助用户收发信息。
存储器1220可用于存储软件程序及数据。处理器1280通过运行存储在存储器1220的软件程序或数据,从而执行移动终端的各种功能以及数据处理。存储器1220可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器1220存储有使得移动终端能运行的操作系统。本申请中存储器1220可以存储操作系统及各种应用程序,还可以存储执行本申请实施例中视频数据处理方法的代码。
显示单元1230还可用于显示由用户输入的信息或提供给用户的信息以及移动终端的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元1230可以包括设置在移动终端正面的显示屏1231。其中,显示屏1231可以采用液晶显示器、发光二极管等形式来配置。显示单元1230可以用于显示本申请实施例中的视频纹理数据等。
显示单元1230还可用于接收输入的数字或字符信息,产生与移动终端的用户设置以及功能控制有关的信号输入,具体地,显示单元1230可以包括设置在移动终端正面的触摸屏,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
其中,触摸屏可以覆盖在显示屏1231之上,也可以将触摸屏与显示屏1231集成而实现移动终端的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元1230可以显示应用程序以及对应的操作步骤。
摄像头1240可用于采集近端视频数据,该电子设备可以将摄像头1240采集的近端视频数据传输给其他设备。摄像头1240可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器1280转换成数字图像信号。
移动终端还可以包括至少一种传感器1250,比如加速度传感器1251、距离传感器1252、指纹传感器1253、温度传感器1254。移动终端还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路1260、扬声器1261、传声器1262可提供用户与移动终端之间的音频接口。音频电路1260可将接收到的音频数据转换后的电信号,传输到扬声器1261,由扬声器1261转换为声音信号输出。移动终端还可配置音量按钮,用于调节声音信号的音量。另一方面,传声器1262将收集的声音信号转换为电信号,由音频电路1260接收后转换为音频数据,再将音频数据输出至通信组件1210以发送给比如另一移动终端,或者将音频数据输出至存储器1220以便进一步处理。
蓝牙模块1270用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,移动终端可以通过蓝牙模块1270与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
处理器1280是移动终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1220内的软件程序,以及调用存储在存储器1220内的数据,执行移动终端的各种功能和处理数据。在一些实施例中,处理器1280可包括一个或多个处理单元;处理器1280还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器1280中。本申请中处理器1280可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例的视频数据处理方法。另外,处理器1280与显示单元1230耦接。
本公开实施例还提供了一种计算机存储介质,该计算机可读存储介质内存储有计算机程序,计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述任意方法实施例中的视频数据处理方法。
在具体的实施过程中,计算机存储介质可以包括:通用串行总线闪存盘(USB,Universal Serial Bus Flash Drive)、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的存储介质。
在一些可能的实施方式中,本申请提供的视频数据处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的视频数据处理方法中的步骤,例如,电子设备可以执行如图2中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (12)

1.一种视频数据处理方法,其特征在于,应用于移动终端,包括:
获取远端设备的远端视频数据;
通过图形处理器GPU对所述远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,所述第一预设处理至少包括超分辨率处理;
通过所述GPU对所述目标视频纹理数据进行渲染处理;
所述第一预设处理还包括第一格式转换处理,所述通过所述GPU对所述远端视频数据进行第一预设处理,获得目标视频纹理数据,包括:
通过所述GPU对所述远端视频数据进行第一格式转换处理,获得第一纹理格式的视频纹理数据;其中,所述第一纹理格式为OpenGL语言的YUV纹理或者MTLTexture中存储的YUV纹理;
通过所述GPU利用OpenCL算子或者Metal算子对所述第一纹理格式的视频纹理数据进行超分辨率处理,获得所述目标视频纹理数据;其中,当所述第一纹理格式为OpenGL语言的YUV纹理时,所述目标视频纹理数据为OpenCL语言的YUV纹理数据,当所述第一纹理格式为MTLTexture中存储的YUV纹理时,所述目标视频纹理数据为MTLBuffer中存储的YUV纹理数据;
所述通过所述GPU对所述目标视频纹理数据进行渲染处理,包括:
通过所述GPU将所述目标视频纹理数据进行第二格式转换处理,获得第二纹理格式的视频纹理数据;其中,当所述目标视频纹理数据为OpenCL语言的YUV纹理数据时,所述第二纹理格式为OpenGL语言的YUV纹理,当所述目标视频纹理数据为MTLBuffer中存储的YUV纹理数据时,所述第二纹理格式为MTLTexture中存储的YUV纹理;
通过所述GPU将所述第二纹理格式的视频纹理数据渲染至显示界面中。
2.根据权利要求1所述的方法,其特征在于,所述获取远端设备的远端视频数据,包括:
接收所述远端设备发送的视频编码数据;
通过中央处理器CPU或者所述GPU将所述视频编码数据进行解码,获得所述远端视频数据。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
采集近端视频数据;
通过中央处理器CPU对所述近端视频数据进行人脸检测处理,以及通过所述GPU对所述近端视频数据进行第二预设处理,获得处理后的近端视频数据;其中,所述第二预设处理包括视频降噪处理、视频矫正处理、美颜处理、人脸画质增强处理中的至少一种;
通过所述CPU或者所述GPU将所述处理后的近端视频数据进行编码,并将编码后的近端视频数据发送给所述远端设备。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述GPU或所述CPU对所述近端视频数据进行图像预处理;其中,所述图像预处理包括旋转、裁剪、缩放、镜像中的至少一种。
5.根据权利要求1所述的方法,其特征在于,所述第一预设处理还包括屏幕增强处理,所述通过图形处理器GPU对所述视频纹理数据进行第一预设处理,获得目标视频纹理数据,包括:
通过所述GPU依次对所述视频纹理数据进行超分辨率处理、屏幕增强处理,获得所述目标视频纹理数据;或者
通过所述GPU依次对所述视频纹理数据进行屏幕增强处理、超分辨率处理,获得所述目标视频纹理数据。
6.一种视频数据处理装置,其特征在于,应用于移动终端,包括:
获取模块,用于获取远端设备的远端视频数据;
第一处理模块,用于通过图形处理器GPU对所述远端视频数据进行第一预设处理,获得目标视频纹理数据;其中,所述第一预设处理至少包括超分辨率处理;
渲染模块,用于通过所述GPU对所述目标视频纹理数据进行渲染处理;
所述第一预设处理还包括第一格式转换处理,所述第一处理模块还用于:
通过所述GPU对所述远端视频数据进行第一格式转换处理,获得第一纹理格式的视频纹理数据;其中,所述第一纹理格式为OpenGL语言的YUV纹理或者MTLTexture中存储的YUV纹理;
通过所述GPU利用OpenCL算子或者Metal算子对所述第一纹理格式的视频纹理数据进行超分辨率处理,获得所述目标视频纹理数据;其中,当所述第一纹理格式为OpenGL语言的YUV纹理时,所述目标视频纹理数据为OpenCL语言的YUV纹理数据,当所述第一纹理格式为MTLTexture中存储的YUV纹理时,所述目标视频纹理数据为MTLBuffer中存储的YUV纹理数据;
所述渲染模块还用于:
通过所述GPU将所述目标视频纹理数据进行第二格式转换处理,获得第二纹理格式的视频纹理数据;其中,当所述目标视频纹理数据为OpenCL语言的YUV纹理数据时,所述第二纹理格式为OpenGL语言的YUV纹理,当所述目标视频纹理数据为MTLBuffer中存储的YUV纹理数据时,所述第二纹理格式为MTLTexture中存储的YUV纹理;
通过所述GPU将所述第二纹理格式的视频纹理数据渲染至显示界面中。
7.根据权利要求6所述的装置,其特征在于,所述获取模块还用于
接收所述远端设备发送的远端视频编码数据;
通过中央处理器CPU或者所述GPU将所述远端视频编码数据进行解码,获得所述远端视频数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
采集模块,用于采集近端视频数据;
第二处理模块,用于通过中央处理器CPU对所述近端视频数据进行人脸检测处理,以及通过所述GPU对所述近端视频数据进行第二预设处理,获得处理后的近端视频数据;其中,所述第二预设处理包括视频降噪处理、视频矫正处理、美颜处理、人脸画质增强处理中的至少一种;
编码模块,用于通过所述CPU或者所述GPU将所述处理后的近端视频数据进行编码,并将编码后的近端视频数据发送给所述远端设备。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
图像处理模块,用于通过所述GPU或所述CPU对所述近端视频数据进行图像预处理;其中,所述图像预处理包括旋转、裁剪、缩放、镜像中的至少一种。
10.根据权利要求6所述的装置,其特征在于,所述第一预设处理还包括屏幕增强处理,所述第一处理模块还用于:
通过所述GPU依次对所述视频纹理数据进行超分辨率处理、屏幕增强处理,获得所述目标视频纹理数据;或者
通过所述GPU依次对所述视频纹理数据进行屏幕增强处理、超分辨率处理,获得所述目标视频纹理数据。
11.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~5中任一所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述存储介质在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~5中任一所述方法的步骤。
CN202210001292.5A 2022-01-04 2022-01-04 视频数据处理方法、装置、设备和介质 Active CN114501141B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210001292.5A CN114501141B (zh) 2022-01-04 2022-01-04 视频数据处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210001292.5A CN114501141B (zh) 2022-01-04 2022-01-04 视频数据处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN114501141A CN114501141A (zh) 2022-05-13
CN114501141B true CN114501141B (zh) 2024-02-02

Family

ID=81510471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210001292.5A Active CN114501141B (zh) 2022-01-04 2022-01-04 视频数据处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN114501141B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971396A (zh) * 2014-05-24 2014-08-06 哈尔滨工业大学 ARM+GPU异构架构下的光线投射算法的OpenGL ES实现方法
US9928637B1 (en) * 2016-03-08 2018-03-27 Amazon Technologies, Inc. Managing rendering targets for graphics processing units
CN109600666A (zh) * 2018-12-12 2019-04-09 网易(杭州)网络有限公司 游戏场景中的视频播放方法、装置、介质以及电子设备
CN110062282A (zh) * 2019-03-18 2019-07-26 北京奇艺世纪科技有限公司 一种超分辨率视频重建方法、装置及电子设备
CN111314741A (zh) * 2020-05-15 2020-06-19 腾讯科技(深圳)有限公司 视频超分处理方法、装置、电子设备及存储介质
CN113038279A (zh) * 2021-03-29 2021-06-25 京东方科技集团股份有限公司 视频转码方法、系统及电子设备
WO2021237736A1 (zh) * 2020-05-29 2021-12-02 深圳市大疆创新科技有限公司 图像处理方法、装置和系统,计算机可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102444240B1 (ko) * 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US11941780B2 (en) * 2020-05-11 2024-03-26 Sony Interactive Entertainment LLC Machine learning techniques to create higher resolution compressed data structures representing textures from lower resolution compressed data structures

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971396A (zh) * 2014-05-24 2014-08-06 哈尔滨工业大学 ARM+GPU异构架构下的光线投射算法的OpenGL ES实现方法
US9928637B1 (en) * 2016-03-08 2018-03-27 Amazon Technologies, Inc. Managing rendering targets for graphics processing units
CN109600666A (zh) * 2018-12-12 2019-04-09 网易(杭州)网络有限公司 游戏场景中的视频播放方法、装置、介质以及电子设备
CN110062282A (zh) * 2019-03-18 2019-07-26 北京奇艺世纪科技有限公司 一种超分辨率视频重建方法、装置及电子设备
CN111314741A (zh) * 2020-05-15 2020-06-19 腾讯科技(深圳)有限公司 视频超分处理方法、装置、电子设备及存储介质
WO2021237736A1 (zh) * 2020-05-29 2021-12-02 深圳市大疆创新科技有限公司 图像处理方法、装置和系统,计算机可读存储介质
CN113038279A (zh) * 2021-03-29 2021-06-25 京东方科技集团股份有限公司 视频转码方法、系统及电子设备

Also Published As

Publication number Publication date
CN114501141A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
US10110936B2 (en) Web-based live broadcast
US11328496B2 (en) Scalable real-time face beautification of video images
KR101980990B1 (ko) 중간-분류 아키텍처에서 프레임 대 프레임 일관성의 활용
US20200007602A1 (en) Remote desktop video streaming alpha-channel
US20140092439A1 (en) Encoding images using a 3d mesh of polygons and corresponding textures
CN106471545B (zh) 作为图像处理引擎的纹理单元
TWI537880B (zh) 使用選擇性顏色轉換之顏色壓縮技術
US9232177B2 (en) Video chat data processing
TWI557683B (zh) Mipmap壓縮技術
TWI559256B (zh) 藉由合倂自相鄰圖元之片段以減少著色之技術
KR20140044840A (ko) 변경된 영역들을 이용한 매체 인코딩
TWI571107B (zh) 用於後排序架構之緊實深度平面表示型態技術
JP2016531502A (ja) 低電力画像圧縮及び表示のための技術
KR20210045371A (ko) 이미지 렌더링 방법 및 장치
CN114040246A (zh) 图形处理器的图像格式转换方法、装置、设备及存储介质
CN113727142A (zh) 云渲染方法及装置、计算机可存储介质
CN110782387B (zh) 图像处理方法、装置、图像处理器及电子设备
JP2016103288A (ja) カラーバッファ圧縮
KR101653158B1 (ko) 분산형 그래픽 처리
CN112565603B (zh) 图像处理方法、装置及电子设备
CN113721876A (zh) 投屏处理方法及相关设备
CN114501141B (zh) 视频数据处理方法、装置、设备和介质
CN112967193A (zh) 图像校准方法及装置、计算机可读介质和电子设备
US9292898B2 (en) Conditional end of thread mechanism
JP6395971B1 (ja) グラフィカルコマンドトークンの修正

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant