CN111314741B - 视频超分处理方法、装置、电子设备及存储介质 - Google Patents
视频超分处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111314741B CN111314741B CN202010409692.0A CN202010409692A CN111314741B CN 111314741 B CN111314741 B CN 111314741B CN 202010409692 A CN202010409692 A CN 202010409692A CN 111314741 B CN111314741 B CN 111314741B
- Authority
- CN
- China
- Prior art keywords
- super
- resolution
- video
- thread
- video frame
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000000875 corresponding effect Effects 0.000 claims description 165
- 238000012545 processing Methods 0.000 claims description 98
- 230000004044 response Effects 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 25
- 230000003321 amplification Effects 0.000 claims description 21
- 238000003199 nucleic acid amplification method Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005192 partition Methods 0.000 claims description 6
- 230000002596 correlated effect Effects 0.000 claims description 5
- 238000000926 separation method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234363—Processing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4053—Scaling 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及云计算技术领域,公开了一种视频超分处理方法、装置、电子设备及存储介质,基于分布式的超分节点,并行计算待处理视频中的多个视频帧的超分图像,提高了超分处理帧率,能够满足直播视频的超分需求。所述方法包括:至少两个线程中的每一线程接收分配给每一线程的视频帧,视频帧属于待处理视频;每一线程调用为每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,各个视频帧对应的超分图像用于获得待处理视频对应的超分视频。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种视频超分处理方法、装置、电子设备及存储介质。
背景技术
随着通信技术的发展,网络带宽实现突飞猛进的提高,为用户使用网络提供了等多的便利性,也新生了许多基于互联网的产业,如网络直播、网络购物等。其中,网络直播是一种新兴的网络社交方式,可以通过网络直播,用户可以同一时间透过网络系统在不同的交流平台观看视频。为了向用户提供更好的视频服务,视频直播平台会对直播视频进行超分处理后在推送给用户,以提高直播视频的分辨率,为用户带来更好的观看体验。
目前,视频直播平台通常采用单机GPU卡对视频进行超分处理,但是单机GPU卡存在计算能力不足的问题,无法实时处理帧率较高的视频。
发明内容
本申请实施例提供一种视频超分处理方法、装置、电子设备及存储介质,利用分布式的超分节点并行计算待处理视频中的多个视频帧的超分图像,提高了超分处理帧率,实现了针对高帧率视频的超分处理,能够满足直播视频的超分需求。
一方面,本申请一实施例提供了一种视频超分处理方法,包括:
至少两个线程中的每一线程接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
所述每一线程调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
所述每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,所述各个视频帧对应的超分图像用于获得所述待处理视频对应的超分视频。
一方面,本申请一实施例提供了一种视频超分处理方法,包括:
至少两个线程中的每一线程接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频,所述至少两个线程划分为第一组线程和第二组线程;
所述第一组线程中的每一线程调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
所述第一组线程中的每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像;
所述第二组线程中的每一线程基于与所述每一线程中的各个视频帧相邻的至少两个视频帧的超分图像,获得各个视频帧对应的超分图像;
其中,各个线程获得的超分图像用于获得所述待处理视频对应的超分视频。
一方面,本申请一实施例提供了一种视频超分处理系统,包括:视频服务器和多个超分节点;
所述视频服务器用于执行上述任一种视频超分处理方法的步骤,获得待处理视频对应的超分视频;
各个超分节点分别用于对线程中的视频帧进行超分辨率重建,并获得超分辨率重建结果返回给所述线程。
一方面,本申请一实施例提供了一种视频超分处理装置,包括至少两个线程;每一线程包括:
接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
调用单元,用于调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
超分单元,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,所述各个视频帧对应的超分图像用于获得所述待处理视频对应的超分视频。
可选地,所述视频超分处理装置还包括主控模块,用于根据所述待处理视频的帧率,确定处理所述待处理视频的线程的N个线程,其中,N与所述待处理视频的帧率正相关。
可选地,所述视频超分处理装置还包括调度模块,用于通过如下方式为所述至少两个线程分配超分节点:
获取各个超分节点的可用计算资源;
根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于所述任一线程所需的计算资源。
可选地,所述调用单元,具体用于:
按照接收到的视频帧的时序,依次向为所述每一线程分配的超分节点发送各个视频帧分别对应的超分请求,以使超分节点对超分请求中的视频帧进行超分辨率重建并向所述每一线程返回应答消息,所述应答消息中包括超分辨率重建结果;
从接收到的应答消息中获取视频帧的超分辨率重建结果。
可选地,所述超分单元还用于:
若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则将所述任一视频帧的放大图像确定为所述任一视频帧对应的超分图像,其中,所述放大图像是通过将所述任一视频帧放大至超分图像对应的尺寸获得的;
或者,若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则基于与所述任一视频帧相邻的至少两个视频帧的超分图像,获得所述任一视频帧对应的超分图像。
可选地,每个线程还包括连接单元,用于在调用为线程分配的超分节点之前,与为所述每一线程分配的超分节点建立长连接。
可选地,每个视频帧对应的超分请求和应答消息中还包括:表征视频帧在所述待处理视频中所处时序的帧标识;
所述超分单元,具体用于:
基于对应的超分节点返回的应答信息中的帧标识,确定应答消息中的超分辨率重建结果对应的视频帧;
基于各个视频帧对应的超分辨率重建结果获得各个视频帧对应的超分图像。
可选地,所述应答消息中还包括超分辨率重建结果的宽度信息和高度信息;
所述调用单元还用于,在从接收到的应答消息中获取视频帧的超分辨率重建结果之前,基于接收到的应答消息中的宽度信息和高度信息,确定所述接收到的应答消息中的超分辨率重建结果未丢失数据。
一方面,本申请一实施例提供了一种视频超分处理装置,包括:至少两个线程,所述至少两个线程划分为第一组线程和第二组线程;
至少两个线程,所述至少两个线程划分为第一组线程和第二组线程;
所述第一组线程中的每一线程包括:
第一接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
第一调用单元,用于调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
第一超分单元,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像;
所述第二组线程中的每一线程包括:
第二接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于所述待处理视频;
第二超分单元,用于基于与所述每一线程中的各个视频帧相邻的至少两个视频帧的超分图像,获得各个视频帧对应的超分图像;
其中,各个线程获得的超分图像用于获得所述待处理视频对应的超分视频。
一方面,本申请一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
一方面,本申请一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
一方面,本申请一实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现上述任一种方法的步骤。
本申请实施例提供的视频超分处理方法、装置、电子设备及存储介质,将针对待处理视频分配给多个线程,利用分布式的视频超分处理系统中的多个超分节点,并行对各个线程中视频帧进行超分辨率重建,提高了系统的超分处理帧率,实现了针对高帧率视频的超分处理,能够满足直播视频的超分需求。事实上,基于本申请实施例提供的分布式的视频超分处理系统,只需要增加分配给待处理视频的超分节点的数量,即可提高超分处理帧率,理论上只要超分节点的数量足够,视频超分处理系统可满足更高超分处理帧率的要求,以应对未来更多高帧率视频应用场景。此外,将一个待处理视频分配给多个超分节点后,单个超分节点单位时间内需要处理的视频帧数量大大减少,即降低了对单个超分节点的处理能力的要求,因此,超分节点可选用成本较低的GPU卡实现,如低成本的NVIDIA Tesla P4,从而以较低的成本实现针对高帧率视频的实时超分处理。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本申请实施例提供的视频超分处理方法的应用场景示意图;
图1B为本申请实施例提供的视频超分处理系统的结构示意图;
图2为本申请一实施例提供的视频超分处理方法的流程示意图;
图3为本申请一实施例提供的视频超分处理系统中的各部分配合实现视频超分处理方法时的交互流程图;
图4为本申请一实施例提供的线程与超分节点之间的交互流程的示意图;
图5为本申请一实施例提供的视频超分处理方法的流程示意图;
图6为本申请一实施例提供的单机GPU卡和本申请的视频超分处理系统的处理能力的对比图;
图7为本申请一实施例提供的视频超分处理装置的结构示意图;
图8为本申请一实施例提供的视频超分处理装置的结构示意图;
图9为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
超分:即超分辨率重建(super resolution,SR),用来提高原始图像的分辨率,即增加图像的像素点数量,使得图像可以适应高分辨率的应用场合或者恢复原图像丢失的细节,例如将图像的分辨率从1080p提高到4K。实际应用中,可通过图像插值(interpolating)或基于深度学习的算法进行超分辨率重建。常见的图像插值算法有:最近邻插值、双线性插值、双三次插值算法、均值插值、中值插值等方法。常见的基于深度学习的超分辨率重建方法包括SRCNN(Super-Resolution Convolutional Neural Network)、DRCN(Deeply-Recursive Convolutional Network for Image Super-Resolution)等。
线程(thread):是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。本申请实施例中,超分线程池中的线程是指服务器内用于对一组视频帧进行超分(即超分辨率重建)处理的线程。
YUV:是一种颜色编码方法,常使用在各个视频处理组件中。YUV在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽。YUV是编译true-color颜色空间(color space)的种类,YUV、YUV、YCbCr、YPbPr等都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
Scale:对图像进行缩放,即改变图像的宽高,为一种的传统算法缩放。
fps(frames per second): 帧率单位,表示每秒帧数。
图形处理器(Graphics Processing Unit,GPU):又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。
附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
在具体实践过程中,通常采用单机GPU卡对视频进行超分处理,但是单机GPU卡存在计算能力不足的问题,无法实时处理帧率较高的视频。例如,目前市面上具备高并发性能的GPU卡(如NVIDIA Tesla P40、NVIDIA V100 Tensor Core等)的计算速度最多也只能达到53fps。以电竞游戏直播、体育赛事直播为例,这类直播视频的帧率达到60fps以上,而随着5G时代的到来,直播视频的帧率必将不断推高,单机GPU卡的处理能力远远无法满足视频直播的需求。此外,高并发GPU卡的价格昂贵,大大增加了视频直播平台的成本。
为此,本申请实施例采用分布式的视频超分处理系统,对视频进行超分处理,该视频超分处理系统包括视频服务器和多个超分节点。其中,每个超分节点用于对视频帧进行超分辨率重建。视频服务器将待处理视频中的视频帧分配给至少两个线程,并为每个线程分配超分节点,各个线程分别接收待处理的视频帧,并调用为其分配的超分节点对线程中的视频帧进行超分辨率重建。各个超分节点对其对应的线程中的视频帧进行超分辨率重建,获得视频帧的超分辨率重建结果并返回给线程。视频服务器内的各个线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像。然后,视频服务器基于各个线程获得的各个视频帧的超分图像,获得待处理视频对应的超分视频。上述视频超分处理方法,将针对待处理视频的超分任务划分成多个线程,利用分布式的视频超分处理系统中的多个超分节点,并行对各个线程中视频帧进行超分辨率重建,提高了系统的超分处理帧率,能够满足视频直播的需求。通过增加分配给待处理视频的超分节点的数量,即可提高系统的超分处理帧率,理论上只要超分节点的数量足够多,上述视频超分处理系统可满足更高超分处理帧率的要求。此外,将一个待处理视频分配给多个超分节点后,单个超分节点单位时间内需要处理的视频帧数量大大减少,即降低了对单个超分节点的处理能力的要求,因此,超分节点可选用成本较低的GPU卡实现,如低成本的NVIDIA Tesla P4,从而以较低的成本实现针对高帧率视频的实时超分处理。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
参考图1A,其为本申请实施例提供的视频超分处理方法的应用场景示意图。该应用场景包括终端设备11(包括终端设备11-1、终端设备11-2、……终端设备11-n)、视频服务器12和超分服务器集群13。其中,终端设备11和视频服务器12,视频服务器12和超分集群13之间通过无线或有线网络连接。终端设备11包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、媒体播放器、智能可穿戴设备、智能音箱、智能电视等电子设备。视频服务器12可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
参考图1B,超分集群13是由多个超分节点131构成的服务器集群或者分布式系统,每个超分节点131包括至少一个GPU。视频服务器12包括主控模块121、调度模块122和超分线程池123,超分线程池123内包含多个线程124,每个线程124用于对一组视频帧进行超分辨率重建处理,超分线程池123可对其中的线程124进行管理,例如在超分任务增多时,可基于视频服务器12的计算资源生成更多的线程,在超分任务减少时,减少线程以释放更多的计算资源。主控模块121获取待处理视频,确定分配给待处理视频的线程124的数量N,从超分线程池123中选择N个空闲的线程124分配给待处理视频。各个线程124分别请求调度模块122为其分配超分节点131。主控模块121将待处理视频中的视频帧分配给这N个线程124。各个线程124分别接收主控模块121分配的待处理视频中的视频帧,与为其分配的超分节点131建立通信连接,将接收到的视频帧发送给对应的超分节点131。各个超分节点131对接收到的视频帧进行超分辨率重建,获得该视频帧的超分辨率重建结果并返回给对应的线程124。各个线程124基于对应的超分节点131返回的超分辨率重建结果,获得各个视频帧对应的超分图像。主控模块121基于各个线程124获得的各个视频帧的超分图像,获得待处理视频对应的超分视频。视频服务器12对超分视频进行编码处理后,发送给终端设备11,这样用户即可通过终端设备11观看到高分辨率的超分视频。
以直播视频为例,发起视频直播的终端设备11即为主播端,主播端将直播视频流实时发送给视频服务器12。视频服务器12对实时接收到的直播视频流进行视频解码、前置处理获得待处理视频,然后基于主控模块121、调度模块122和超分线程池123,对待处理视频进行实时的超分处理,获得超分视频,再对超分视频进行视频编码处理,获取超分直播视频流,将超分直播视频流发送给观看直播的终端设备11,即用户端。
当然,本申请实施例提供给视频超分处理方法和视频超分处理系统也可以用于对非直播环境下的普通视频进行超分处理,以提高视频的分辨率。
当然,本申请实施例提供的方法并不限用于图1A所示的应用场景中,还可以用于其它可能的应用场景,本申请实施例并不进行限制。对于图1A所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
下面结合图1A所示的应用场景,对本申请实施例提供的技术方案进行说明。
参考图2,本申请实施例提供一种视频超分处理方法,可应用于图1A所示的视频服务器,具体包括以下步骤:
S201、至少两个线程中的每一线程接收分配给该线程的视频帧,其中,分配给线程的视频帧属于待处理视频。
本申请实施例中的待处理视频即为需要超分的视频。待处理视频可以时直播端实时上传给视频服务器的直播视频,也可以是终端设备上传的普通视频。
具体实施时,视频服务器中的主控模块可根据待处理视频的数据量,确定分配给待处理视频的线程的数量N,从超分线程池中选择N个空闲的线程分配给待处理视频。其中,视频服务器内的主控模块可同时处理多个待处理视频,或者,视频服务器可在接收到针对待处理视频的超分任务请求后,为每个待处理视频单独建立一个主控模块。
具体实施时,主控模块将待处理视频中的视频帧分配给各个线程,使得每个线程处理待处理视频中的一部分视频帧。例如,分配给待处理视频N个线程,可将待处理视频划分成N个视频段落,则N个线程中的每个线程处理一个视频段落中的视频帧;或者,按照待处理视频帧中的视频帧的时序,将第kN +1个视频帧分配给第1个线程,第kN +2个视频帧分配给第2个线程,……第kN+N个视频帧分配给第N个线程,其中,k为大于等于0的整数。
S202、每个线程调用为该线程分配的超分节点,对接收到的视频帧进行超分辨率重建。
具体实施时,可由调度模块为每个线程分配一个超分节点。线程接收主控模块发送的视频帧,将接收到的视频帧发送给对应的超分节点。超分节点对接收到的视频帧进行超分辨率重建,获得对应的超分辨率重建结果,并发送给对应的线程。其中,超分辨率重建的目的是将视频帧的分辨率提高至目标分辨率,例如,视频帧的原始分辨率为1080p,目标分辨率为4K,则超分辨率重建后的超分图像的分辨率为4K。
S203、每个线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,各个视频帧对应的超分图像用于获得待处理视频对应的超分视频。
具体实施时,由于视频帧中的UV分量对应的色度信息对超分画质无影响,因此一般只对视频帧中的Y分量进行超分处理。为此,线程可仅将视频帧的Y分量数发送给超分节点,由超分节点对Y分量数据进行超分辨率重建,获得Y分量对应的超分辨率重建结果。同时,线程利用传统的Scale缩放算法,对视频帧的UV分量进行放大处理,获得UV分量对应的放大结果,这个放大倍数可以是视频帧的原始分辨率和目标分辨率的比值,例如视频帧的原始分辨率为1080p,即视频帧包含1920×1080个像素点,目标分辨率为4K,即超分后的视频帧包含3840×2160个像素点,此时,放大倍数为2,即将视频帧的宽和高分别放大为原来的2被,放大处理后的UV分量包含3840×2160个像素点。然后,线程将视频帧的Y分量对应的超分辨率重建结果和UV分量的放大结果融合到一起,获得该视频帧对应的超分图像。最后,主控模块获取待处理视频对应的各个线程获得的超分图像,按照各个超分图像对应的视频帧的时序,排列各个超分图像,获得待处理视频对应的超分视频。
上述视频超分处理方法,将针对待处理视频分配给多个线程,利用分布式的视频超分处理系统中的多个超分节点,并行对各个线程中视频帧进行超分辨率重建,提高了系统的超分处理帧率,实现了针对高帧率视频的超分处理,能够满足直播视频的超分需求。事实上,基于本申请实施例提供的分布式的视频超分处理系统,只需要增加分配给待处理视频的超分节点的数量,即可提高超分处理帧率,理论上只要超分节点的数量足够多,视频超分处理系统即可满足更高超分处理帧率的要求,以应对未来更多高帧率视频应用场景。
此外,将一个待处理视频分配给多个超分节点后,单个超分节点单位时间内需要处理的视频帧数量大大减少,即降低了对单个超分节点的处理能力的要求,因此,超分节点可选用成本较低的GPU卡实现,如低成本的NVIDIA Tesla P4,从而以较低的成本实现针对高帧率视频的实时超分处理。
参考图3,其为视频超分处理系统中的各部分配合实现视频超分处理方法时的交互流程图,具体包括以下步骤:
S301、主控模块获取待处理视频,为待处理视频分配N个线程。
具体实施时,主控模块从超分线程池中选择为N个空闲的线程分配给待处理视频。
S302、线程向调度模块发送节点分配请求。
S303、调度模块基于节点分配请求为线程分配对应的超分节点。
S304、线程与为该线程分配的超分节点建立通信连接。
S305、主控模块将待处理视频中的视频帧分配给N个线程。
S306、线程接收对应的超分节点发送的视频帧,并向对应的超分节点发送针对视频帧的超分请求,超分请求中包括视频帧的Y分量数据。
S307、超分节点对超分请求中的Y分量数据进行超分辨率重建。
S308、超分节点将Y分量数据对应的超分辨率重建结果发送给对应的线程。
S309、线程对视频帧的UV分量进行放大处理,获得UV分量对应的放大结果。
S310、线程基于同一视频帧的超分辨率重建结果和放大结果,获得该视频帧的超分图像。
S311、线程将获得的超分图像发送给主控模块。
S312、主控模块接收各个线程发送的超分图像,按照各个视频帧的时序,排列各个视频帧的超分图像,获得待处理视频对应的超分视频。
图3中仅给出了一个线程和调度模块之间的交互方式,其他线程和调度模块之间的交互方式类似,不再赘述。图3中仅给出了一个线程和其对应的超分节点之间的交互方式,其他线程和超分节点之间的交互方式类似,不再赘述。
在上述任一实施方式的基础上,主控模块可根据待处理视频的帧率,确定处理待处理视频的线程的N个线程,即根据待处理视频的帧率,确定为待处理视频分配的线程的数量N。其中,N与待处理视频的帧率正相关,即待处理视频的帧率越高,则N越大。
具体地,主控模块可根据待处理视频的帧率Fr和单个超分节点的处理能力Cr,确定为待处理视频分配的线程的数量N,其中,超分节点的处理能力是超分节点每秒处理的视频帧的数量。例如,可通过如下公式确定分配的线程的数量:N=⌈Fr/Cr⌉,其中,⌈ ⌉是向上取整的符号,假设待处理视频的帧率Fr=60 fps,超分节点的处理能力为Cr=20 fps,则需要为该待处理视频分配3个线程,假设Fr=70 fps,超分节点的出来处理能力为Cr=20 fps,则需要为该待处理视频分配4个线程。
根据待处理视频的帧率,确定为处理待处理视频分配的线程的数量,以适应不同帧率的待处理视频,在保证实时高效地进行超分处理的同时,更合理的分配计算资源,提高计算资源的利用率。
在上述任一实施方式的基础上,超分集群中的每个超分节点会周期性地向调度模块上报各自的心跳信息,心跳信息中包括超分节点的可用计算资源。
调度模块在收到线程发送的节点分配请求后,从各个超分节点最新上报的心跳信息中,获取各个超分节点的可用计算资源,根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点。其中,分配给任一线程的超分节点具有的可用计算资源不小于任一线程所需的计算资源,例如,线程L1所需的计算资源为20fps,即线程L1需要每秒处理20个视频帧,则分配给线程L1的超分节点的可用计算资源不少于20fps。
实际应用中,一个超分节点可同时分配给多个线程,但是这多个线程所需的计算资源的总和不能超过该超分节点的处理能力。例如,超分节点C1每秒可处理20个视频帧,线程L1需要每秒处理10个视频帧,可将超分节点C1分配给线程L1,此时,超分节点C1的可用计算资源为10fps,即超分节点C1每秒还可以再多处理10个视频帧;线程L2需要每秒处理6个视频帧,则可将超分节点C1分配给线程L2,此时,超分节点C1的可用计算资源为4fps,即超分节点C1每秒还可以再多处理4个视频帧;线程L3需要每秒处理8个视频帧,大于超分节点C1的可用计算资源,则不能将超分节点C1分配给线程L3;这样,超分节点C1可同时处理线程L1和线程L2中的视频帧。上述例子中,线程L1、线程L2和线程L3可以是同一待处理视频的线程,也可以是不同待处理视频的线程。
超分节点周期性向调度模块上报心跳信息,使得调度模块能够实时掌握各个超分节点的计算资源使用情况,从而更合理地分配超分节点的计算资源,减少计算资源的浪费,以更少的超分节点实现资源最大化的利用,降低成本。
在上述任一实施方式的基础上,步骤S202具体包括:每一线程按照接收到的视频帧的时序,依次向分配给该线程的超分节点发送各个视频帧分别对应的超分请求,以使超分节点对超分请求中的视频帧进行超分辨率重建并向该线程返回应答消息,应答消息中包括超分辨率重建结果;该线程从接收到的应答消息中获取视频帧的超分辨率重建结果。
参考图4,以多个线程中的一个线程为例,说明线程与对应的超分节点之间的交互流程,具体包括如下步骤:
S401、线程与为该线程分配的超分节点建立通信连接。
具体实施时,每个线程可与分配给该线程的超分节点建立一个长连接,以便通过该长连接连续发送针对线程中各个视频帧的超分请求。当线程中处理完线程中待处理视频的视频帧时,可断开与超分节点的长连接。超分节点与线程断开长连接后,即可释放该线程占用的计算资源,例如线程占用的计算资源为10fps,则释放该线程占用的计算资源后,该超分节点的可用计算资源增加10fps。
S402、线程按照主控模块分配的视频帧的时序,依次向超分节点发送各个视频帧分别对应的超分请求,其中,每个超分请求中包括一个视频帧的Y分量数据。
S403、超分节点依次对每个超分请求中的Y分量数据进行超分辨率重建。
S404、超分节点依次返回针对每个超分请求的应答消息,应答消息中包括超分请求中的视频帧的Y分量数据对应的超分辨率重建结果。
S405、线程对视频帧的UV分量进行放大处理,获得UV分量对应的放大结果。
S406、线程基于同一视频帧的超分辨率重建结果和放大结果,获得该视频帧的超分图像。
具体实施时,每个视频帧对应的超分请求和应答消息中还包括:表征视频帧在待处理视频中所处时序的帧标识。例如,第j个视频帧的超分请求中包含第j个视频帧的帧标识Tj,则针对该超分请求的应答消息中也包含帧标识Tj。
为此,各个线程可基于对应的超分节点返回的应答信息中的帧标识,确定应答消息中的超分辨率重建结果对应的视频帧,进而基于同一视频帧的超分辨率重建结果和放大结果,获得该视频帧的超分图像。这样可以有序地获得各个视频帧的超分图像。
具体实施时,超分请求中还包括视频帧的宽度信息和高度信息。超分节点可基于接收到的超分请求中的宽度信息和高度信息,确定接收到的超分请求中的视频帧未丢失数据。例如,将超分请求中的宽度信息和高度信息相乘,获得视频帧的应有数据量,若超分请求中的视频帧的实际数据量与应有数据量不同,则确定超分请求中的视频帧存在丢失数据的情况,否则,确定超分请求中的视频帧未丢失数据。若确定超分请求中的视频帧存在丢失数据的情况,可向线程发起重新获取该视频帧的请求。基于超分请求中的宽度信息和高度信息,对接收到的视频帧进行校验,确保接收到完整的视频帧。
具体实施时,应答消息中还包括超分辨率重建结果的宽度信息和高度信息。线程可基于接收到的应答消息中的宽度信息和高度信息,确定接收到的应答消息中的超分辨率重建结果未丢失数据。例如,将应答消息中的宽度信息和高度信息相乘,获得超分辨率重建结果的应有数据量,若应答消息中的超分辨率重建结果的实际数据量与应有数据量不同,则确定应答消息中的超分辨率重建结果存在丢失数据的情况,否则,确定应答消息中的超分辨率重建结果未丢失数据。若确定应答消息中的超分辨率重建结果存在丢失数据的情况,可向超分节点发起重新获取该超分辨率重建结果的请求。基于应答消息中的宽度信息和高度信息,对接收到的超分辨率重建结果进行校验,确保接收到完整的超分辨率重建结果。
具体实施时,线程发送给超分节点的超分请求可以参考如下格式:
’#’(1bytes)+size(4bytes)+sessionid(4bytes)+pts(4bytes)+width(4bytes)+height(4bytes) + data(size bytes),
其中,’#’为协议标识头,size为视频帧的数据量,sessionid为会话ID,pts是视频帧的帧标识,width是视频帧的宽度信息,height是视频帧的高度信息,data是视频帧。
具体实施时,超分节点发送给线程的应答消息可以参考如下格式:
’#’(1bytes)+size(4bytes)+sessionid(4bytes)+pts(4bytes)+width(4bytes)+height(4bytes) + data(size bytes),
其中,’#’为协议标识头,size为超分辨率重建结果的数据量,sessionid为会话ID,pts是应答消息对应的超分请求中的帧标识,width是超分辨率重建结果的宽度信息,height是超分辨率重建结果的高度信息,data是超分辨率重建结果。
具体实施时,线程会时刻检测其发送的每个超分请求是否超时,例如,若在线程发送超分请求后的预设时长内未收到针对该超分请求的应答消息,则确定该超分请求超时,若在线程发送超分请求后的预设时长内收到针对该超分请求的应答消息,则确定该超分请求未超时。针对超时的超分请求,可通过如下任一方式,获得超时的超分请求中的视频帧对应的超分图像:
第一种方式:线程将超时的超分请求中的视频帧的放大图像,确定为该视频帧对应的超分图像。
具体实施时,视频帧的放大图像是通过将该视频帧放大至超分图像对应的尺寸获得的。具体地,线程利用传统的Scale缩放算法,对视频帧进行放大处理,获得视频帧对应的放大图像,放大倍数可以是视频帧的原始分辨率和目标分辨率的比值,例如视频帧的原始分辨率为1080p,即视频帧包含1920×1080个像素点,目标分辨率为4K,即超分后的视频帧包含3840×2160个像素点,此时,放大倍数为2,即将视频帧的宽和高分别放大为原来的2被,放大处理后获得的放大图像包含3840×2160个像素点。
第二种方式:线程基于与超时的超分请求中的视频帧相邻的至少两个视频帧的超分图像,获得该视频帧对应的超分图像。
例如,超时的超分请求中的视频帧为待处理视频中的第j个视频帧,则可以获取与第j个视频帧相邻的至少两个视频帧的超分图像,其中,至少两个视频帧可以是第j-1个视频帧和第j+1个视频帧,也可以是第j-2个视频帧、第j-1个视频帧、第j+1个视频帧和第j+2个视频帧,等等。
具体地,可将与超时的超分请求中的视频帧相邻的至少两个视频帧的超分图像进行加权处理,将加权处理获得的图像作为该视频帧的超分图像。假设超时的超分请求中的视频帧为待处理视频中的第j个视频帧,可获取第j-1个视频帧和第j+1个视频帧分别对应的超分图像,则将第j-1个视频帧的超分图像和第j+1个视频帧的超分图像进行加权处理,获取第j个视频帧的超分图像。
实际应用中,尤其是在视频直播领域,待处理视频是以视频流的形式实时传输到视频服务器中的,因此超分处理时先处理先传入的视频帧,后处理后传入的视频帧,即会先获取到第j个视频帧的超分图像,后获取到第j+1个视频帧的超分图像。为此,若第j个视频帧的超分请求超时,且此时还未获取到第j+1个视频帧的超分图像,可基于第j个视频帧之前的一个或多个视频帧,获得第j个视频帧对应的超分图像。具体地,可对第j个视频帧之前的多个视频帧的超分图像进行加权处理,获得第j个视频帧对应的超分图像,或者直接将第j-1个视频帧的超分图像作为第j个视频帧对应的超分图像。
通过上述两种实施方式,针对出现超分请求超时的情况,快速获取到视频帧的超分图像,保证实时不间断地输出待处理视频的超分视频,提高用户观看体验。其中,第一种方式获得的超分图像与基于超分辨率重建结果获得的超分图像之间的差异度较大,会在视频播放时带来画面闪烁感,而通过第二种方式获得的超分图像的精度相对高一些,可降低视频播放时的画面闪烁感。
参考图5,本申请实施例还提供了另一种视频超分处理方法,可应用于图1A所示的视频服务器,具体包括以下步骤:
S501、至少两个线程中的每一线程接收分配给该线程的视频帧,每一线程接收的视频帧属于待处理视频,至少两个线程划分为第一组线程和第二组线程。
具体实施时,主控模块将待处理视频中的视频帧分配给第一组线程和第二组线程中各个线程,使得每个线程处理待处理视频中的一部分视频帧。例如,按照待处理视频帧中的视频帧的时序,将第2k+1个视频帧分配给第一组线程中的线程,第2k+2个视频帧分配给第一组线程中的线程,其中,k为大于等于0的整数。
S502、第一组线程中的每一线程调用为该线程分配的超分节点,对接收到的视频帧进行超分辨率重建。
其中,步骤S502的具体实施方式可参考步骤S202,不再赘述。
S503、第一组线程中的每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像。
其中,步骤S503的具体实施方式可参考步骤S203,不再赘述。
S504、第二组线程中的每一线程基于与该线程中的各个视频帧相邻的至少两个视频帧的超分图像,获得各个视频帧对应的超分图像。
例如,第二组线程中的某个线程处理待处理视频中的第j个视频帧,则该线程获取与第j个视频帧相邻的至少两个视频帧的超分图像,其中,至少两个视频帧可以是第j-1个视频帧和第j+1个视频帧,也可以是第j-2个视频帧、第j-1个视频帧、第j+1个视频帧和第j+2个视频帧,等等。具体地,可将与第j个视频帧相邻的至少两个视频帧的超分图像进行加权处理,将加权处理获得的图像作为第j个视频帧的超分图像,即通过视频帧插值的方式获得视频帧的超分图像。
主控模块获取分配给待处理视频的各个线程(包括第一组线程和第二组线程)获得的各个视频帧的超分图像,按照各个视频帧的时序,排列各个超分图像,获得待处理视频对应的超分视频。
图5所示的视频超分处理方法中,第一组线程中的线程通过超分处理获得视频帧的超分图像,第二组线程中的线程通过视频帧插值的方式获得视频帧的超分图像,视频帧插值的效率高于超分的效率,为此可进一步提高超分处理效率,同时节约了对超分节点的资源消耗。
参考图1B,本申请实施例还提供了一种视频超分处理系统,包括:视频服务器12和多个超分节点131。
其中,视频服务器12用于执行本申请实施例提供的任一视频超分处理方法的步骤,以获得待处理视频对应的超分视频。
其中,超分节点131分别用于对接收到的视频帧进行超分辨率重建,并获得超分辨率重建结果返回给对应的线程。
具体地,视频服务器12包括主控模块121、调度模块122和超分线程池123,超分线程池123内包含多个线程124,超分线程池123可对其中的线程124进行管理,例如在超分任务增多时,可基于视频服务器12的计算资源生成更多的线程,在超分任务减少时,减少线程以释放更多的计算资源。主控模块121获取待处理视频,确定分配给待处理视频的线程124的数量N,从超分线程池123中选择N个空闲的线程124分配给待处理视频。每个线程124请求调度模块122为该线程分配超分节点131。主控模块121将待处理视频中的视频帧分配给这N个线程124。每个线程124接收主控模块121分配的待处理视频中的视频帧,与对应的超分节点131建立通信连接,将接收到的视频帧发送给对应的超分节点131。每个超分节点131对接收到的视频帧进行超分辨率重建,获得该视频帧的超分辨率重建结果并返回给对应的线程124。每个线程124基于对应的超分节点131返回的超分辨率重建结果,获得各个视频帧对应的超分图像。主控模块121基于各个线程124获得的各个视频帧的超分图像,获得待处理视频对应的超分视频。
视频服务器12还包括视频解码模块和视频编码模块。视频解码模块对待处理视频进行解码处理,将解码后的待处理视频发送给主控模块121。视频编码模块对主控模块121输出的对超分视频进行编码处理后,发送给终端设备11,这样用户即可通过终端设备11观看到高分辨率的超分视频。
对单机NVIDIA Tesla P40和本申请实施例的视频超分处理系统的处理能力进行测试,测试时,视频超分处理系统中的超分节点选用低成本、低帧率的NVIDIA Tesla P4。图6为两种测试方案的测试结果,其中实线601表示单机NVIDIA Tesla P40的处理能力,其处理视频时的帧率为53fps;虚线602表示本申请实施例的视频超分处理系统的处理能力,其处理视频时的帧率可达到130fps左右,远远高于单机NVIDIA Tesla P40,完全能够满足直播视频60fps的帧率的要求。
如图7所示,基于与上述视频超分处理方法相同的发明构思,本申请实施例还提供了一种视频超分处理装置70,包括至少两个线程701,每个线程701包括:接收单元7011、调用单元7012和超分单元7013。
接收单元7011,用于接收分配给线程的视频帧,分配给该线程的视频帧属于待处理视频;
调用单元7012,用于调用为该线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
超分单元7013,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,各个视频帧对应的超分图像用于获得待处理视频对应的超分视频。
可选地,视频超分处理装置70还包括主控模块,用于根据待处理视频的帧率,确定处理待处理视频的线程的N个线程,其中,N与待处理视频的帧率正相关。
可选地,视频超分处理装置70还包括调度模块,用于通过如下方式为线程分配超分节点:
获取各个超分节点的可用计算资源;
根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于任一线程所需的计算资源。
可选地,调用单元7012,具体用于:
按照接收到的视频帧的时序,依次向为该线程分配的超分节点发送各个视频帧分别对应的超分请求,以使超分节点对超分请求中的视频帧进行超分辨率重建并向该线程返回应答消息,应答消息中包括超分辨率重建结果;
从接收到的应答消息中获取视频帧的超分辨率重建结果。
可选地,超分单元7013还用于:
若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则将任一视频帧的放大图像确定为任一视频帧对应的超分图像,其中,放大图像是通过将任一视频帧放大至超分图像对应的尺寸获得的;
或者,若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则基于与任一视频帧相邻的至少两个视频帧的超分图像,获得任一视频帧对应的超分图像。
可选地,每个线程还包括连接单元,用于在调用为线程分配的超分节点之前,与为该线程分配的超分节点建立长连接。
可选地,每个视频帧对应的超分请求和应答消息中还包括:表征视频帧在待处理视频中所处时序的帧标识。
相应地,超分单元7013,具体用于:
基于对应的超分节点返回的应答信息中的帧标识,确定应答消息中的超分辨率重建结果对应的视频帧;
基于各个视频帧对应的超分辨率重建结果获得各个视频帧对应的超分图像。
可选地,应答消息中还包括超分辨率重建结果的宽度信息和高度信息。
相应地,调用单元7012还用于,在从接收到的应答消息中获取视频帧的超分辨率重建结果之前,基于接收到的应答消息中的宽度信息和高度信息,确定接收到的应答消息中的超分辨率重建结果未丢失数据。
如图8所示,基于与上述视频超分处理方法相同的发明构思,本申请实施例还提供了一种视频超分处理装置80,包括:至少两个线程,至少两个线程划分为第一组线程81和第二组线程82。
第一组线程81包括至少一个线程811,每个线程811包括:第一接收单元8111、调用单元8112和第一超分单元8113。
第一接收单元8111,用于接收分配给该线程的视频帧,分配该线程的视频帧属于待处理视频。
第一调用单元8112,用于调用为该线程分配的超分节点,对接收到的视频帧进行超分辨率重建。
第一超分单元8113,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像。
其中,第一组线程81中的每个线程811的具体实施方式可参考图7中的线程701的具体实施方式,不再赘述。
第二组线程82包括至少一个线程821,每个线程821包括:第二接收单元8211和第二超分单元8212。
第二接收单元8211,接收分配给该每一线程的视频帧,分配该线程的视频帧属于待处理视频。
第二超分单元8212,用于基于与该线程中的各个视频帧相邻的至少两个视频帧的超分图像,获得各个视频帧对应的超分图像。
基于视频超分处理装置80中各个线程获得的超分图像,可获得待处理视频对应的超分视频,具体实现方式可参考上述任一视频超分处理方法,不再赘述。
本申请实施例提的视频超分处理装置与上述视频超分处理方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
基于与上述视频超分处理方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等。如图9所示,该电子设备90可以包括处理器901和存储器902。
处理器901可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器902还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例提供了一种计算机可读存储介质,用于储存为上述电子设备所用的计算机程序指令,其包含用于执行上述视频超分处理方法的程序。
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等。
以上,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本申请实施例的方法,不应理解为对本申请实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (12)
1.一种视频超分处理方法,其特征在于,包括:
至少两个线程中的每一线程接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
所述每一线程调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建,具体包括:所述每一线程按照接收到的视频帧的时序,依次向为所述每一线程分配的超分节点发送各个视频帧分别对应的超分请求,每个超分请求包括视频帧的Y分量数据,以使超分节点对超分请求中的Y分量数据进行超分辨率重建并向所述每一线程返回应答消息,所述应答消息中包括Y分量数据对应的超分辨率重建结果;所述每一线程从接收到的应答消息中获取视频帧的超分辨率重建结果;
所述每一线程对接收到的视频帧的UV分量进行放大处理,获得UV分量的放大结果;
所述每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,具体包括:所述每一线程基于各个视频帧分别对应的超分辨率重建结果和UV分量的放大结果,获得各个视频帧对应的超分图像;所述各个视频帧对应的超分图像用于获得所述待处理视频对应的超分视频;
其中,通过如下方式为所述至少两个线程分配超分节点:获取各个超分节点的可用计算资源,其中,每一超分节点的可用计算资源为:所述每一超分节点的总计算资源和已被其他线程占用的计算资源的差值;根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于所述任一线程所需的计算资源,一个超分节点分配给至少一个线程;
所述每一线程若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则基于与所述任一视频帧相邻的至少两个视频帧的超分图像,获得所述任一视频帧对应的超分图像;
其中,所述超分请求中还包括视频帧的宽度信息和高度信息,以使超分节点基于接收到的超分请求中的宽度信息和高度信息确定接收到的超分请求中的视频帧是否丢失数据,并在丢失数据时向对应线程发起重新获取视频帧的请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述待处理视频的帧率,确定处理所述待处理视频的线程的N个线程,其中,N与所述待处理视频的帧率正相关。
3.根据权利要求1或2所述的方法,其特征在于,所述每一线程调用为所述每一线程分配的超分节点之前,所述方法还包括:
所述每一线程与为所述每一线程分配的超分节点建立长连接。
4.根据权利要求1或2所述的方法,其特征在于,每个视频帧对应的超分请求和应答消息中还包括:表征视频帧在所述待处理视频中所处时序的帧标识;
所述基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,具体包括:
基于对应的超分节点返回的应答信息中的帧标识,确定应答消息中的超分辨率重建结果对应的视频帧;
基于各个视频帧对应的超分辨率重建结果获得各个视频帧对应的超分图像。
5.根据权利要求1或2所述的方法,其特征在于,所述应答消息中还包括超分辨率重建结果的宽度信息和高度信息;
所述从接收到的应答消息中获取视频帧的超分辨率重建结果之前,所述方法还包括:
基于接收到的应答消息中的宽度信息和高度信息,确定所述接收到的应答消息中的超分辨率重建结果未丢失数据。
6.一种视频超分处理方法,其特征在于,包括:
至少两个线程中的每一线程接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频,所述至少两个线程划分为第一组线程和第二组线程;
所述第一组线程中的每一线程调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建,具体包括:所述每一线程按照接收到的视频帧的时序,依次向为所述每一线程分配的超分节点发送各个视频帧分别对应的超分请求,每个超分请求包括视频帧的Y分量数据,以使超分节点对超分请求中的Y分量数据进行超分辨率重建并向所述每一线程返回应答消息,所述应答消息中包括Y分量数据对应的超分辨率重建结果;所述每一线程从接收到的应答消息中获取视频帧的超分辨率重建结果;
所述第一组线程中的每一线程对接收到的视频帧的UV分量进行放大处理,获得UV分量的放大结果;
所述第一组线程中的每一线程基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,具体包括:所述每一线程基于各个视频帧分别对应的超分辨率重建结果和UV分量的放大结果,获得各个视频帧对应的超分图像;
所述第二组线程中的每一线程针对与所述每一线程中的任一视频帧,将与所述任一视频帧相邻的至少两个视频帧的超分图像进行加权处理,将通过加权处理获得的图像作为所述任一视频帧对应的超分图像;
其中,各个线程获得的超分图像用于获得所述待处理视频对应的超分视频;
其中,通过如下方式为所述至少两个线程分配超分节点:
获取各个超分节点的可用计算资源,其中,每一超分节点的可用计算资源为:所述每一超分节点的总计算资源和已被其他线程占用的计算资源的差值;
根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于所述任一线程所需的计算资源,一个超分节点分配给至少一个线程;
其中,所述超分请求中还包括视频帧的宽度信息和高度信息,以使超分节点基于接收到的超分请求中的宽度信息和高度信息确定接收到的超分请求中的视频帧是否丢失数据,并在丢失数据时向对应线程发起重新获取视频帧的请求。
7.一种视频超分处理系统,其特征在于,包括:视频服务器和多个超分节点;
所述视频服务器用于执行权利要求1至6任一项所述方法的步骤,获得待处理视频对应的超分视频;
各个超分节点分别用于对线程中的视频帧进行超分辨率重建,并获得超分辨率重建结果返回给所述线程。
8.一种视频超分处理装置,其特征在于,包括至少两个线程;每一线程包括:
接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
调用单元,用于调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
超分单元,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像,所述各个视频帧对应的超分图像用于获得所述待处理视频对应的超分视频;
所述装置还包括调度模块,用于通过如下方式为所述至少两个线程分配超分节点:获取各个超分节点的可用计算资源,其中,每一超分节点的可用计算资源为:所述每一超分节点的总计算资源和已被其他线程占用的计算资源的差值;根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于所述任一线程所需的计算资源,一个超分节点分配给至少一个线程;
所述调用单元,具体用于:按照接收到的视频帧的时序,依次向为所述每一线程分配的超分节点发送各个视频帧分别对应的超分请求,每个超分请求包括视频帧的Y分量数据,以使超分节点对超分请求中的Y分量数据进行超分辨率重建并向所述每一线程返回应答消息,所述应答消息中包括Y分量数据对应的超分辨率重建结果;从接收到的应答消息中获取视频帧的超分辨率重建结果;
所述超分单元,还用于对接收到的视频帧的UV分量进行放大处理,获得UV分量的放大结果;
所述超分单元,具体用于基于各个视频帧分别对应的超分辨率重建结果和UV分量的放大结果,获得各个视频帧对应的超分图像;
所述超分单元,还用于若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则基于与所述任一视频帧相邻的至少两个视频帧的超分图像,获得所述任一视频帧对应的超分图像;
其中,所述超分请求中还包括视频帧的宽度信息和高度信息,以使超分节点基于接收到的超分请求中的宽度信息和高度信息确定接收到的超分请求中的视频帧是否丢失数据,并在丢失数据时向对应线程发起重新获取视频帧的请求。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括主控模块,用于根据所述待处理视频的帧率,确定处理所述待处理视频的线程的N个线程,其中,N与所述待处理视频的帧率正相关。
10.一种视频超分处理装置,其特征在于,包括:至少两个线程,所述至少两个线程划分为第一组线程和第二组线程;
所述第一组线程中的每一线程包括:
第一接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于待处理视频;
第一调用单元,用于调用为所述每一线程分配的超分节点,对接收到的视频帧进行超分辨率重建;
第一超分单元,用于基于对应的超分节点返回的超分辨率重建结果,获得各个视频帧对应的超分图像;
所述第二组线程中的每一线程包括:
第二接收单元,用于接收分配给所述每一线程的视频帧,所述视频帧属于所述待处理视频;
第二超分单元,用于针对与所述每一线程中的任一视频帧,将与所述任一视频帧相邻的至少两个视频帧的超分图像进行加权处理,将通过加权处理获得的图像作为所述任一视频帧对应的超分图像;
其中,各个线程获得的超分图像用于获得所述待处理视频对应的超分视频;
所述装置还包括调度模块,用于通过如下方式为所述至少两个线程分配超分节点:获取各个超分节点的可用计算资源,其中,每一超分节点的可用计算资源为:所述每一超分节点的总计算资源和已被其他线程占用的计算资源的差值;根据各个超分节点的可用计算资源和各个线程所需的计算资源,确定出分配给各个线程的超分节点,其中,分配给任一线程的超分节点具有的可用计算资源不小于所述任一线程所需的计算资源,一个超分节点分配给至少一个线程;
所述第一调用单元,具体用于按照接收到的视频帧的时序,依次向为所述每一线程分配的超分节点发送各个视频帧分别对应的超分请求,每个超分请求包括视频帧的Y分量数据,以使超分节点对超分请求中的Y分量数据进行超分辨率重建并向所述每一线程返回应答消息,所述应答消息中包括Y分量数据对应的超分辨率重建结果;从接收到的应答消息中获取视频帧的超分辨率重建结果;
所述第一超分单元,还用于对接收到的视频帧的UV分量进行放大处理,获得UV分量的放大结果;
所述第一超分单元,具体用于基于各个视频帧分别对应的超分辨率重建结果和UV分量的放大结果,获得各个视频帧对应的超分图像;
所述第一超分单元,还用于若在发送任一视频帧对应的超分请求后的预设时长内未收到对应的应答消息,则基于与所述任一视频帧相邻的至少两个视频帧的超分图像,获得所述任一视频帧对应的超分图像;
其中,所述超分请求中还包括视频帧的宽度信息和高度信息,以使超分节点基于接收到的超分请求中的宽度信息和高度信息确定接收到的超分请求中的视频帧是否丢失数据,并在丢失数据时向对应线程发起重新获取视频帧的请求。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010409692.0A CN111314741B (zh) | 2020-05-15 | 2020-05-15 | 视频超分处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010409692.0A CN111314741B (zh) | 2020-05-15 | 2020-05-15 | 视频超分处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111314741A CN111314741A (zh) | 2020-06-19 |
CN111314741B true CN111314741B (zh) | 2021-01-05 |
Family
ID=71147545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010409692.0A Active CN111314741B (zh) | 2020-05-15 | 2020-05-15 | 视频超分处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314741B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112261314B (zh) * | 2020-09-24 | 2023-09-15 | 北京美摄网络科技有限公司 | 一种视频描述数据生成系统、方法、存储介质及设备 |
CN112235579B (zh) * | 2020-09-28 | 2022-09-06 | 深圳市洲明科技股份有限公司 | 视频处理方法、计算机可读存储介质及电子设备 |
CN112565886A (zh) * | 2020-12-29 | 2021-03-26 | 北京奇艺世纪科技有限公司 | 一种视频抽帧方法、装置、电子设备及可读存储介质 |
CN112995532B (zh) * | 2021-02-03 | 2023-06-13 | 上海哔哩哔哩科技有限公司 | 视频处理方法及装置 |
CN113660459B (zh) * | 2021-08-02 | 2023-11-14 | 西安万像电子科技有限公司 | 图像数据的传输方法、装置、存储介质以及处理器 |
CN114501141B (zh) * | 2022-01-04 | 2024-02-02 | 杭州网易智企科技有限公司 | 视频数据处理方法、装置、设备和介质 |
CN114363703B (zh) * | 2022-01-04 | 2024-01-23 | 上海哔哩哔哩科技有限公司 | 视频处理方法、装置及系统 |
CN115022678B (zh) * | 2022-05-30 | 2024-07-02 | 中国电信股份有限公司 | 图像处理方法、系统、装置、设备及存储介质 |
CN115460461B (zh) * | 2022-09-07 | 2024-04-26 | 北京奇艺世纪科技有限公司 | 视频处理方法及装置、终端设备、计算机可读存储介质 |
WO2024159480A1 (en) * | 2023-02-02 | 2024-08-08 | Qualcomm Incorporated | Artificial intelligence animation pipeline |
CN117291810B (zh) * | 2023-11-27 | 2024-03-12 | 腾讯科技(深圳)有限公司 | 视频帧的处理方法、装置、设备及存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100524218C (zh) * | 2007-12-14 | 2009-08-05 | 中国人民解放军国防科学技术大学 | 一种大规模计算机节点引导程序并行更新方法及系统 |
CN102130897A (zh) * | 2010-04-26 | 2011-07-20 | 上海理滋芯片设计有限公司 | 一种基于云计算的视频采集分析系统和方法 |
CN102012818B (zh) * | 2010-12-01 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 屏幕录制方法与装置 |
CN102063730B (zh) * | 2011-01-14 | 2012-09-12 | 华中科技大学 | 基于单分子定位的快速超分辨成像方法及系统 |
CN102722875B (zh) * | 2012-05-29 | 2014-08-13 | 杭州电子科技大学 | 一种基于视觉注意和质量可变的图像超分辨率重建方法 |
US8675999B1 (en) * | 2012-09-28 | 2014-03-18 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Apparatus, system, and method for multi-patch based super-resolution from an image |
CN103914807B (zh) * | 2012-12-31 | 2017-05-03 | 北京大学 | 一种缩放尺度补偿的非局部性图像超分辨率方法及系统 |
CN103295192B (zh) * | 2013-05-08 | 2016-05-25 | 西安电子科技大学 | 基于gpu加速的图像实时超分辨重建方法 |
CN103248797A (zh) * | 2013-05-30 | 2013-08-14 | 北京志光伯元科技有限公司 | 一种基于fpga的视频分辨率增强方法及模块 |
CN103489173B (zh) * | 2013-09-23 | 2016-08-17 | 百年金海科技有限公司 | 一种视频图像超分辨率重建方法 |
CN104299193B (zh) * | 2014-09-29 | 2017-02-15 | 杭州电子科技大学 | 一种基于高频和中频信息的图像超分辨率重建方法 |
CN104376600B (zh) * | 2014-11-25 | 2018-04-17 | 四川大学 | 基于在线管理超分辨率块的稳定三维模型跟踪方法 |
CN104732491B (zh) * | 2015-03-05 | 2017-05-31 | 北京空间机电研究所 | 一种边缘先验引导的单帧遥感图像超分辨率处理方法 |
CN105321156B (zh) * | 2015-11-26 | 2018-05-22 | 三维通信股份有限公司 | 一种基于多元结构的图像复原方法 |
CN105869105B (zh) * | 2016-03-28 | 2021-02-12 | 上海交通大学 | 一种针对a+超分辨率技术的gpu加速方法 |
CN106502771B (zh) * | 2016-09-09 | 2019-08-02 | 中国农业大学 | 基于kernel函数的时间开销模型构建方法及系统 |
CN106600532B (zh) * | 2016-12-08 | 2020-01-10 | 广东威创视讯科技股份有限公司 | 一种图像放大方法及装置 |
CN107770631A (zh) * | 2017-10-31 | 2018-03-06 | 长光卫星技术有限公司 | 适用于大面阵米级高分辨率卫星的视频影像智能处理系统 |
CN111045795A (zh) * | 2018-10-11 | 2020-04-21 | 浙江宇视科技有限公司 | 资源调度方法及装置 |
CN110062282A (zh) * | 2019-03-18 | 2019-07-26 | 北京奇艺世纪科技有限公司 | 一种超分辨率视频重建方法、装置及电子设备 |
CN110992260B (zh) * | 2019-10-15 | 2022-04-22 | 网宿科技股份有限公司 | 一种视频超分辨率重建的方法和装置 |
-
2020
- 2020-05-15 CN CN202010409692.0A patent/CN111314741B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111314741A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314741B (zh) | 视频超分处理方法、装置、电子设备及存储介质 | |
CN111681167B (zh) | 画质调整方法和装置、存储介质及电子设备 | |
CN114501062B (zh) | 视频渲染协同方法、装置、设备及存储介质 | |
CN113457160B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US10601891B2 (en) | Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN106162232A (zh) | 视频播放控制方法及装置 | |
CN113542757A (zh) | 云应用的图像传输方法、装置、服务器及存储介质 | |
US20220239920A1 (en) | Video processing method, related apparatus, storage medium, and program product | |
CN106162174B (zh) | 一种视频多分辨率编码方法和装置 | |
EP4375936A1 (en) | Image processing method and apparatus, computer device and storage medium | |
CN112843676A (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
CN112634122A (zh) | 一种云渲染方法、系统、计算机设备及可读存储介质 | |
CN114513506A (zh) | 业务处理方法、接入边缘云服务器及业务处理系统 | |
CN110505523B (zh) | 一种视频转码优先级顺序控制方法及处理终端 | |
CN114205359A (zh) | 视频渲染协同方法、装置及设备 | |
CN114339412A (zh) | 视频质量增强方法、移动终端、存储介质及装置 | |
KR102417055B1 (ko) | 비디오 스트림의 후속 프로세싱을 위한 방법 및 디바이스 | |
US20190253772A1 (en) | Selective Communication of a Vector Graphics Format Version of a Video Content Item | |
US10861497B2 (en) | High framerate video recording | |
CN113473180B (zh) | 一种基于无线的Cloud XR数据传输方法以及装置、存储介质、电子装置 | |
CN114860440B (zh) | Gpu显存管理方法及装置 | |
CN113075993B (zh) | 视频显示方法、装置和存储介质及电子设备 | |
US12088817B2 (en) | Data coding method and apparatus, and computer-readable storage medium | |
CN116760986B (zh) | 候选运动矢量生成方法、装置、计算机设备和存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40024844 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |