CN106303162A - 一种gpu抠像方法 - Google Patents
一种gpu抠像方法 Download PDFInfo
- Publication number
- CN106303162A CN106303162A CN201610671747.9A CN201610671747A CN106303162A CN 106303162 A CN106303162 A CN 106303162A CN 201610671747 A CN201610671747 A CN 201610671747A CN 106303162 A CN106303162 A CN 106303162A
- Authority
- CN
- China
- Prior art keywords
- gpu
- thread
- pixel
- data
- image
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/2224—Studio circuitry; Studio devices; Studio equipment related to virtual studio applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/2224—Studio circuitry; Studio devices; Studio equipment related to virtual studio applications
- H04N5/2226—Determination of depth image, e.g. for foreground/background separation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/272—Means for inserting a foreground image in a background image, i.e. inlay, outlay
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种GPU抠像方法,该方法由CPU将抠像所需的前景图像数据和背景图像数据传入GPU全局内存,由GPU进行抠像处理后再回传给CPU,通过GPU多线程处理和聚合读取优化,本发明将GPU的并行计算和浮点运算能力优势用在抠像处理上,降低了抠像对CPU的要求,性能显著提高,并且可以满足高清信号的要求。
Description
【技术领域】
本发明属于图像处理领域,涉及视频制作时的抠像方法,尤其涉及一种基于GPU的抠像方法。
【背景技术】
随着视频演播技术的发展,许多节目在制作时已经不用忙于布置演播室,只需要一个纯色的区域,主持人站在这个区域主持节目,而当节目呈现给观众时,观众却可看到主持人置身于一个特定的节目场景中,这种虚拟演播室的效果要归功于视频抠像技术。
但是,在制作高清节目的虚拟演播系统中,抠像设备多数采用价格较高的专用硬件设备,而价格较低的基于“普通PC+信号输入板卡”的抠像机在面对高清信号处理要求时,处理能力不足。目前市面上基于普通PC的现有技术大部分是通过图像像素扫描,RGB三原色的判断,将目标颜色锁定在一定的RGB值范围内,通过CPU的运算能力,逐行扫描图片像素,分析像素的色域范围来进行抠像,其具有明显的两点缺陷:其一是抠像速度比较慢,由于CPU的主频限制,目前现有技术对CPU的提升已经越来越有局限,导致单纯依靠CPU来运行的效率比较差;其二是抠像效果不理想,通过传统RGB三原色抠像已经很难满足越来越多元化的现场光线要求。因此,亟需一种新的抠像方法,可以使用普通PC运行,在节省成本的基础上,保证处理能力。
【发明内容】
为了解决现有技术中的上述问题,本发明提出了一种基于GPU并行操作性能的抠像方法。
本发明采用的技术方案如下:
一种GPU抠像方法,其特征在于,该方法包括如下步骤:
1)CPU获取抠像所需的图像数据,包括前景图像和背景图像,将所述前景图像和背景图像从RAM传入GPU全局内存;所述前景图像和背景图像的分辨率相同;
2)所述CPU向GPU的全局内存申请空间,用于存放合成后的图像数据;
3)所述GPU的各个block开始执行kernel函数;
4)所述GPU从全局内存分别聚合读取前景图像和背景图像中的一块数据到共享内存。
5)所述GPU同步线程,重复步骤4,直至要处理的图像数据全部读入共享内存;
6)所述GPU的每个线程从共享内存中各读取前景图像和背景图像中一个像素的数据,并对读取的像素进行抠像处理,将处理结果写入存放合成图像的共享内存;
7)所述GPU同步线程,每个线程处理一个像素的数据,处理结果都写入共享内存,最终形成合成图像数据;
8)所述GPU将共享内存中的合成图像数据写入全局内存;
9)所述GPU将全局内存中的合成图像数据回传给所述CPU;
10)显示合成图像。
进一步地,所述聚合读取为满足以下两个条件的全局内存读取操作:
(1)所述GPU中任意一个half-warp对全局内存数据的存取都落在全局内存的一个段内;
(2)所述half-warp中的第n个线程,或者不存取数据,或者必须存取所述段中的第n个数据。
进一步地,在所述聚合读取中,每个线程每次读取的所述数据的长度为4字节、8字节或者16字节。
进一步地,所述GPU的每个block包括的线程数量在128以上,并且为64的倍数。
优选的,所述GPU的每个block包括128个线程。
进一步地,所述GPU的每个线程处理抠像中的一个像素,设线程ID为threadIdx,其处理的像素坐标为(x,y),则有
x=blockIdx.x×blockDim.x+threadIdx.x;
y=blockIdx.y×blockDim.y+threadIdx.y;
其中,blockIdx是线程的block在grid中的索引值,blockIdx.x和blockIdx.y是该索引值的x分量和y分量;blockDim是该block的尺寸,blockDim.x和blockDim.y分别是x轴尺寸和y轴尺寸;threadIdx.x和threadIdx.y是线程ID的x分量和y分量。
进一步地,每个线程通过下述方法进行抠像处理:
6.1)设P为线程处理的像素的坐标点,前景图像上P点对应的像素在RGB色彩空间的颜色为Rcap、Gcap和Bcap,所述线程将其转换到HSV色彩空间,得到前景图像上P点对应的像素在HSV色彩空间的颜色为Hcap、Scap和Vcap;
6.2)设背景图像上P点对应的像素在RGB色彩空间的颜色为Rbg、Gbg和Bbg;抠像后输出的合成图像在P点对应的像素在RGB色彩空间的颜色为Rresult、Gresult和Bresult;则计算公式如下:
其中,色键Hkey、Skey、Vkey分别是抠像颜色的色相、饱和度和明度,scale是预先定义的抠像阈值。
本发明的有益效果包括:使用普通PC进行抠像,节约成本,通过GPU来完成抠像的操作,性能相对于CPU显著提高,并且可以满足高清信号要求。本发明可以降低CPU的要求,相对于配置一般的电脑,只要合理利用好CPU和GPU就能发挥出出色的抠像效果。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明基本的抠像流程。
图2是本发明通过GPU进行抠像处理的基本方法。
图3是本发明GPU线程配置方案表。
图4是本发明GPU不同线程配置方案的统计数据表。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
本发明的主要思想是:通过CPU和GPU的共同参与,完成整个抠像过程,并且为了进一步提高处理速度,利用了GPU操作的异步执行功能,将CPU和GPU的操作执行并行起来,最终使整个抠像处理达到高清立体节目的要求。
在实现虚拟演播应用中,主持人需要在一个纯色的背景前主持节目,之后通过抠像处理将主持人的图像从整个画面中提取出来,叠加到另一个背景上。但是,由于光照强度的影响,摄像机拍摄到的演播室背景亮度不均,强光照的区域呈现出亮调,弱光照的区域呈现出暗调,换言之,同样的色相,色度(饱和度)和亮度不同。因此,为了更好地实现抠像,首先需要将图像从RGB色彩空间转换到HSV色彩空间,在HSV色彩空间中,选定一种色彩(色相H)后,可以通过改变色彩含量的多少(饱和度S)和色彩明暗程度(明度V)获得不同颜色,而且这种变化在其色彩空间模型中是连续的,这也是HSV色彩空间与RGB色彩空间的不同之处。HSV色彩空间这种可将某种色彩的色度和亮度变化构成的颜色集中在某个区域的特点,能够更容易地将演播室背景颜色变化表示出来,所以在HSV的色彩空间下进行抠像比在RGB空间下更具操作性。
参见附图1,其示出了本发明的一个基本的抠像流程:
步骤100:演播室中,主持人在一个纯色的背景前主持节目,由摄像机拍下主持人的主持画面的图像;现有的摄像机所产生的图像基本都是由RGB色彩空间表示。
步骤200:将拍摄的图像由RGB色彩空间转换到HSV色彩空间,具体的转换方法在后面说明。
步骤300:对转换后的图像进行抠像,即剔除图像中的纯色背景。
步骤400:输出抠像后的图像。
步骤500:将抠像后的图像叠加到预先设置的虚拟背景上,从而形成主持人在虚拟背景前主持节目的合成图像。
步骤600:输出所述合成图像。
下面对RGB色彩空间到HSV色彩空间的具体转换方法作出说明,设图像上某个像素在RGB色彩空间的颜色为R(红色分类)、G(绿色分量)、B(蓝色分量),相对应的HSV色彩空间的颜色为H(色相)、S(饱和度)、V(明度)。则通过以下公式计算HSV
V=max(R,G,B)
H=H×60;如果H<0,H=H+360。
其中,亮度V取RGB三个值中的最大值。在该最大值不为零时,S通过其第一个公式计算,否则S等于0。计算H的过程稍微复杂,如果S=0,则H值未定义,否则根据RGB三个值哪个最大,采用对应的三个公式之一计算一个初值,然后将该初值乘以60得到H的结果,如果该结果还小于0,则再加上360。
在将图像从RGB色彩空间转换到HSV色彩空间后,具体的抠像方法如下:
步骤301:输入两幅分辨率相同的图像,一幅为演播室拍摄并转换到HSV色彩空间的前景图像(CAP),一幅为需要叠加的虚拟背景图像(BG)。
步骤302:扫描前景图像上的每个像素点,对每一个像素点进行处理,具体处理方法如下:
设P为图像上某个像素的位置,前景图像上P点对应的像素在HSV色彩空间的颜色为Hcap、Scap和Vcap(即该像素的色相、饱和度和明度),前景图像上P点对应的像素在RGB色彩空间的颜色为Rcap、Gcap和Bcap(即该像素的红色分量、绿色分量和蓝色分量)。背景图像上P点对应的像素在RGB色彩空间的颜色为Rbg、Gbg和Bbg(即该像素的红色分量、绿色分量和蓝色分量)。抠像后输出的合成图像在P点对应的像素在RGB色彩空间的颜色为Rresult、Gresult和Bresult(即该像素的红色分量、绿色分量和蓝色分量)。计算公式为:
其中,色键Hkey、Skey、Vkey分别是抠像颜色的色相、饱和度和明度,scale是预先定义的抠像阈值。上述公式说明,在前景图像像素的三个HSV分量与色键的三个分量的差都小于阈值时,抠像结果取背景图像像素的RGB值,否则取前景图像像素的RGB值。
在对两幅图像进行抠像处理的过程中,无论是色彩空间的转换还是与阈值的比较,都是以像素为单位进行处理,而且像素之间的数据独立,整个过程是一种高度密集型的计算。对于这样的计算,普通CPU的处理能力不足,因此本发明采用GPU进行计算。根据本发明的实施例,采用普通的支持CUDA1.1计算能力的GeForce 9800GT作为GPU计算工具和CPU进行合作计算。GeForce 9800GT具有14个多处理器,每个多处理器又有8个核,总共有14×8=112个核心,由于其时钟频率为1.37GHz,那么总的并行处理的时钟频率为1.37GHz×112=153.44GHz,与CPU相比,GPU具有非常高的数据并行运算能力。
参见附图2,其示出了本发明通过GPU进行抠像处理的基本方法:
1)CPU获取图像数据,将RGB24格式的前景图像数据和背景图像数据从RAM传入GPU全局内存。
2)CPU向GPU的全局内存申请空间,用于存放合成后的图像数据。
3)GPU的各个block开始执行kernel函数。
4)GPU从全局内存中各读取前景图像和背景图像中一个像素的数据。
5)GPU对步骤4中读取的像素进行抠像处理,将处理结果写入存放合成图像的全局内存。具体的抠像处理过程类似于上述步骤301-302,即首先将该像素从RGB色彩空间转换到HSV色彩空间,然后采用上述步骤302的公式,计算出抠像的处理结果。
6)GPU重复步骤4-5,直到生成最终的合成图像,将合成图像回传给CPU。
7)显示合成图像。
在GPU进行抠像处理时,是多线程进行的,每个线程处理一个像素。需要处理多少个像素,就为GPU分配至少多少个线程,由于线程间处理的像素各不相同,所以各自没有数据相关性。
由于处理的数据是平面图像,可以用二维坐标系来表示图像中像素的坐标。所以GPU在计算时,配置grid的维数为二维,block的维数也为二维,各个线程处理的像素的坐标计算如下:
x=blockIdx.x×blockDim.x+threadIdx.x;
y=blockIdx.y×blockDim.y+threadIdx.y;
其中blockIdx是线程的线程块(block)在线程格(grid)中的索引值,blockIdx.x和blockIdx.y是该索引值的x分量和y分量;blockDim是该线程块的尺寸,blockDim.x和blockDim.y分别是x轴尺寸和y轴尺寸;threadIdx是线程ID,threadIdx.x和threadIdx.y是线程ID的x分量和y分量。计算出来的(x,y)就是线程threadIdx处理的像素的坐标。
每个线程占用GPU中的10个寄存器,每个block占用60字节的共享内存和20字节的常量内存。根据CUDA 1.1能力标准,计算出一个GPU对基本算法的资源限制为:
寄存器:8192/10=819个线程;
共享内存:16K/60=266个block
常量内存:64K>20,未受限
但是,在在CUDA 1.1能力标准中,每个GPU最多可处理768个线程。CUDA中线程块线程数量的配置会影响CUDA的处理效率。主要如下:
1、多处理器中活动的warp数量会影响延迟隐藏效果和GPU的使用率。
延迟是指使用多少个时钟周期去使一个warp完成执行下一个指令的准备工作。延迟隐藏是指多处理器在每个时钟周期中总可以执行某个warp中的指令,从而隐藏了其它warp的延迟。如果warp下一个指令中的输入操作数未准备好时,warp就无法继续执行。当输入操作数是寄存器,延迟将取决于寄存器的延迟。例如寄存器的写后读延迟,当此时输入的寄存器操作数是由前一个指令写入时,GPU无法立即将寄存器数值读取出来,因此产生了延迟,在这个延迟期间,warp调度器调用其它准备就绪的warp给多处理器第执行。平均的寄存器延迟大概是22个时钟周期,对于计算能力的设备,CUDA建议多处理器必须有6个warp(192个线程)才能隐藏该类延迟。当输入操作数不是位于片上内存,即访问DRAM显存,延迟为400到600个时钟周期。消除该类延迟需要的warp数量取决于GPU代码。一般来说,GPU代码中,读取片上存储器的指令与非片上存储器的指令的比值越小,需要的warp越多。如果比值为1:15,CUDA 1.1计算能力的设备的每个多处理器需要10个活动的warp才能将延迟隐藏。
2、多处理器中活动的block数量会影响GPU的使用率。
当多处理器只有一个活动的block时,如果执行到线程同步或者非片上存储器的读取操作时,多处理器就会产生空闲。所以多处理器中应包含有多个活动的block,当某个block在等待时,多处理器调入其它block执行,尽量使GPU忙碌。另外,一个GPU有多个多处理器,GPU将block平均分配给各个多处理器,最佳的block数量是多处理器数量的整数倍,每个多处理器的负荷均匀,block的并行化程度最高。
3、block中线程数量也会影响GPU计算效率。
多处理器每次处理一个block,block中的线程又以warp为单位进行调度,如果block中线程的数量是warp的整数倍,不会在不足32个线程的warp上浪费计算资源,同时也可以促成block对全局内存的完全的聚合访问。block中的数量也不能太少,以产生足够的warp,实现延迟隐藏。CUDA建议block中线程的数量不少于64,最好在128到256之间。另外,寄存器内存也存在bank冲突,当block中线程的数量为64的整数倍时,编译器和线程调度器可以取得最佳的冲突避免效果。
如果多处理器的活动线程达到其处理上限,多处理的占用率达到100%。是否能满负荷运行,取决于block中线程数量的配置和每个线程使用的寄存器资源及其他资源的数量,其中最重要的还是资源的使用。多处理器的资源必须能够预留给所有活动线程,如果多处理器无法为一个block预留资源,kernel的调用将失败。在多处理器上的各种资源,寄存器资源是最少的,CUDA提供了一个编译参数,可以限制每个线程使用寄存器的个数,编译器使用本地内存替代寄存器。由于本地内存无缓存和聚合存取机制,本地内存的存取效率是所有存取DRAM方式中最低的,所以即使多处理的占用率达到100%,GPU算法的执行时间不一定是最短。
根据以上因素,本发明在GPU的每个block中包含的线程为128以上,并且为64的倍数,由于block线程上限为512,线程配置组合如附图3所示。
对附图3中多处理器占有率100%的配置方案进行比较,通过CUDA VisualProfiler得到统计数据,如附图4所示。从附图4可以看出,当每个block的线程数量为128时,性能最优,并且与其它多处理器占有率100%的配置方案相比,每个多处理器的活动block数量最多。
聚合存取的优化
在CUDA中,一个时钟周期可以执行8次内存操作。但是,对local memory或globalmemory的存取有400-600个时钟周期延迟,每个线程都需要从global memory中读取数据,往global memory写入数据,内存操作与处理的像素成比例增长。由于存取的延迟,非聚合操作将影响到整个CUDA抠像的效率。为了提高处理效率,必须对数据存取进行聚合优化。如果数据能够实现聚合存取,那么多个线程对数据多个存取操作将合并为一个操作,延迟也将仅有一次存取操作的延迟,否则每次存取操作分开独立进行,延迟成倍增长。
在CUDA1.1计算能力的硬件中,global memory被划分成段,有两种划分方法,一种是每一块global memory从起点开始,连续的128byte的数据就被划分成一个段,另一种是从起点开始,连续的64byte的数据被划分成一个段。由于CUDA对线程的调度是以half-warp为单位,所以如果一个half-warp对数据的存取能够落在某个段内,就满足了聚合读取的一个条件。
聚合读取的另一个条件是,half-warp中第n个线程,要么不存取数据,要么必须存取段中的第n个数据,数据的长度可以是4byte,8byte或者16byte。
64byte的聚合读取:16个线程,每个线程读取4个byte,总共64个byte,总的开销为一次读取的时间。
128byte的聚合读取:16个线程,每个线程读取8个byte,总共128个byte,总的开销为一次读取的时间;16个线程,每个线程读取16个byte,总共256个byte,分两次读取,每次读取128byte,总的开销为两次读取时间。
每个线程8个byte的聚合存取的带宽略低于4个byte的,每个线程16byte的聚合存取的带宽低于4个byte的很多。而非聚合存取的带宽大大低于4个byte的聚合读取,但是与8个byte的聚合读取比起来却只低大约4倍,与16个byte的相比只低于大约2倍。所以4个byte的聚合读取带宽最高。
在前述的基本抠像算法中,每个线程处理一个像素,每个像素是RGB24格式,占3个byte,开始时每个线程并行地从存放前景图像的全局内存中存取3个byte,再从存放背景图像的全局内存中存取3个byte,最后往存放最终结果的全局内存中写入3个byte,对全局内存的存取都不符合聚合存取4个byte,8个byte或16个byte的条件,由于对全局内存的大量非聚合存取操作,导致存取带宽非常低,大量的时间消耗在全局内存操作上。基于此,本发明对基本方法进行聚合读写优化。
聚合读写优化的基本思想是:在CUDA中,每个多处理器拥有16KB的share memory,share memory位于片上(on-chip),类似于CPU中的L1缓存,读取和写入速度快,每个时钟周期可以进行8次share memory操作,且没有非聚合存取问题,也没有global memory存取操作额外的内存延迟。share memory的生命周期为block,使用share memory解决globalmemory非聚合存取的高延迟问题时得以block为单位,block中的线程首先将数据读入share memory,再读取出来进行抠像处理。优化后的方法如下:
1)CPU获取图像数据,将RGB24格式的前景图像数据和背景图像数据从RAM传入GPU全局内存。
2)CPU向GPU的全局内存申请空间,用于存放合成后的图像数据。
3)GPU的各个block开始执行kernel函数。
4)GPU从全局内存分别聚合读取前景图像和背景图像中的一块数据到共享内存。
5)GPU同步线程,重复步骤4,以保证要处理的数据全部读入共享内存。
6)GPU的一个线程从共享内存中各读取前景图像和背景图像中一个像素的数据,并对读取的像素进行抠像处理,将处理结果写入存放合成图像的共享内存。具体的抠像处理过程与基本方法中说明的相同。
7)GPU同步线程,每个线程处理一个像素的数据,保证处理结果都写入到共享内存,最终形成了合成图像数据。
8)GPU将共享内存中的合成图像数据写入全局内存。
9)GPU将全局内存中的合成图像数据回传给CPU。
10)显示合成图像。由于合成图像数据实际上已经在显卡中,因此可以由显卡直接显示合成后的图像,从而在不降低处理效率的前提下在显卡上同时实现GPU抠像和结果显示,无需将数据回传到内存再显示。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
Claims (7)
1.一种GPU抠像方法,其特征在于,该方法包括如下步骤:
1)CPU获取抠像所需的图像数据,包括前景图像和背景图像,将所述前景图像和背景图像从RAM传入GPU全局内存;所述前景图像和背景图像的分辨率相同;
2)所述CPU向GPU的全局内存申请空间,用于存放合成后的图像数据;
3)所述GPU的各个block开始执行kernel函数;
4)所述GPU从全局内存分别聚合读取前景图像和背景图像中的一块数据到共享内存。
5)所述GPU同步线程,重复步骤4,直至要处理的图像数据全部读入共享内存;
6)所述GPU的每个线程从共享内存中各读取前景图像和背景图像中一个像素的数据,并对读取的像素进行抠像处理,将处理结果写入存放合成图像的共享内存;
7)所述GPU同步线程,每个线程处理一个像素的数据,处理结果都写入共享内存,最终形成合成图像数据;
8)所述GPU将共享内存中的合成图像数据写入全局内存;
9)所述GPU将全局内存中的合成图像数据回传给所述CPU;
10)显示合成图像。
2.根据权利要求1所述的GPU抠像方法,其特征在于,所述聚合读取为满足以下两个条件的全局内存读取操作:
(1)所述GPU中任意一个half-warp对全局内存数据的存取都落在全局内存的一个段内;
(2)所述half-warp中的第n个线程,或者不存取数据,或者必须存取所述段中的第n个数据。
3.根据权利要求2所述的GPU抠像方法,其特征在于,在所述聚合读取中,每个线程每次读取的所述数据的长度为4字节、8字节或者16字节。
4.根据权利要求1-3任意一项所述的GPU抠像方法,其特征在于,所述GPU的每个block包括的线程数量在128以上,并且为64的倍数。
5.根据权利要求4所述的GPU抠像方法,其特征在于,所述GPU的每个block包括128个线程。
6.根据权利要求1-4任意一项所述的GPU抠像方法,其特征在于,所述GPU的每个线程处理抠像中的一个像素,设线程ID为threadIdx,其处理的像素坐标为(x,y),则有
x=blockIdx.x×blockDim.x+threadIdx.x;
y=blockIdx.y×blockDim.y+threadIdx.y;
其中,blockIdx是线程的block在grid中的索引值,blockIdx.x和blockIdx.y是该索引值的x分量和y分量;blockDim是该block的尺寸,blockDim.x和blockDim.y分别是x轴尺寸和y轴尺寸;threadIdx.x和threadIdx.y是线程ID的x分量和y分量。
7.根据权利要求6所述的GPU抠像方法,其特征在于,每个线程通过下述方法进行抠像处理:
6.1)设P为线程处理的像素的坐标点,前景图像上P点对应的像素在RGB色彩空间的颜色为Rcap、Gcap和Bcap,所述线程将其转换到HSV色彩空间,得到前景图像上P点对应的像素在HSV色彩空间的颜色为Hcap、Scap和Vcap;
6.2)设背景图像上P点对应的像素在RGB色彩空间的颜色为Rbg、Gbg和Bbg;抠像后输出的合成图像在P点对应的像素在RGB色彩空间的颜色为Rresult、Gresult和Bresult;则计算公式如下:
其中,色键Hkey、Skey、Vkey分别是抠像颜色的色相、饱和度和明度,scale是预先定义的抠像阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610671747.9A CN106303162A (zh) | 2016-08-16 | 2016-08-16 | 一种gpu抠像方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610671747.9A CN106303162A (zh) | 2016-08-16 | 2016-08-16 | 一种gpu抠像方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106303162A true CN106303162A (zh) | 2017-01-04 |
Family
ID=57671398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610671747.9A Pending CN106303162A (zh) | 2016-08-16 | 2016-08-16 | 一种gpu抠像方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106303162A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107170305A (zh) * | 2017-07-07 | 2017-09-15 | 郑州仁峰软件开发有限公司 | 一种将虚拟演播和现有录播系统结合的方法 |
CN107705277A (zh) * | 2017-09-11 | 2018-02-16 | 广东欧珀移动通信有限公司 | 图像处理方法和装置 |
CN110764722A (zh) * | 2019-10-21 | 2020-02-07 | 北京博源恒芯科技股份有限公司 | 基于gpu的喷墨打印数据处理方法、装置及控制器 |
CN111324461A (zh) * | 2020-02-20 | 2020-06-23 | 西安芯瞳半导体技术有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
CN112053417A (zh) * | 2019-06-06 | 2020-12-08 | 西安诺瓦星云科技股份有限公司 | 图像处理方法、装置和系统以及计算机可读存储介质 |
US11503228B2 (en) | 2017-09-11 | 2022-11-15 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image processing method, image processing apparatus and computer readable storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7692664B2 (en) * | 2005-07-15 | 2010-04-06 | Yissum Research Development Co. | Closed form method and system for matting a foreground object in an image having a background |
CN101937343A (zh) * | 2010-09-17 | 2011-01-05 | 上海交通大学 | 异构多核虚拟执行环境的后端翻译框架实现的方法 |
CN102243321A (zh) * | 2011-03-15 | 2011-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移的处理方法及系统 |
CN104200470A (zh) * | 2014-08-29 | 2014-12-10 | 电子科技大学 | 一种蓝屏抠图方法 |
CN104580837A (zh) * | 2015-01-20 | 2015-04-29 | 南京纳加软件有限公司 | 一种基于gpu+cpu+io构架的视频导播引擎及其使用方法 |
CN104751485A (zh) * | 2015-03-20 | 2015-07-01 | 安徽大学 | 一种基于gpu自适应的前景提取方法 |
-
2016
- 2016-08-16 CN CN201610671747.9A patent/CN106303162A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7692664B2 (en) * | 2005-07-15 | 2010-04-06 | Yissum Research Development Co. | Closed form method and system for matting a foreground object in an image having a background |
CN101937343A (zh) * | 2010-09-17 | 2011-01-05 | 上海交通大学 | 异构多核虚拟执行环境的后端翻译框架实现的方法 |
CN102243321A (zh) * | 2011-03-15 | 2011-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种地震叠前时间偏移的处理方法及系统 |
CN104200470A (zh) * | 2014-08-29 | 2014-12-10 | 电子科技大学 | 一种蓝屏抠图方法 |
CN104580837A (zh) * | 2015-01-20 | 2015-04-29 | 南京纳加软件有限公司 | 一种基于gpu+cpu+io构架的视频导播引擎及其使用方法 |
CN104751485A (zh) * | 2015-03-20 | 2015-07-01 | 安徽大学 | 一种基于gpu自适应的前景提取方法 |
Non-Patent Citations (1)
Title |
---|
马超 等: "GPU上稀疏矩阵与矢量乘积运算的一种改进", 《计算机系统应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107170305A (zh) * | 2017-07-07 | 2017-09-15 | 郑州仁峰软件开发有限公司 | 一种将虚拟演播和现有录播系统结合的方法 |
CN107705277A (zh) * | 2017-09-11 | 2018-02-16 | 广东欧珀移动通信有限公司 | 图像处理方法和装置 |
US11503228B2 (en) | 2017-09-11 | 2022-11-15 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image processing method, image processing apparatus and computer readable storage medium |
US11516412B2 (en) | 2017-09-11 | 2022-11-29 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Image processing method, image processing apparatus and electronic device |
CN112053417A (zh) * | 2019-06-06 | 2020-12-08 | 西安诺瓦星云科技股份有限公司 | 图像处理方法、装置和系统以及计算机可读存储介质 |
CN110764722A (zh) * | 2019-10-21 | 2020-02-07 | 北京博源恒芯科技股份有限公司 | 基于gpu的喷墨打印数据处理方法、装置及控制器 |
CN111324461A (zh) * | 2020-02-20 | 2020-06-23 | 西安芯瞳半导体技术有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
CN111324461B (zh) * | 2020-02-20 | 2023-09-01 | 西安芯瞳半导体技术有限公司 | 内存分配方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106303162A (zh) | 一种gpu抠像方法 | |
CN109472858B (zh) | 用于逆向图形的可微分渲染管线 | |
US10636336B2 (en) | Mixed primary display with spatially modulated backlight | |
US8330763B2 (en) | Apparatus and method for volume rendering on multiple graphics processing units (GPUs) | |
US8169441B2 (en) | Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video | |
US20210181674A1 (en) | System and method for near-eye light field rendering for wide field of view interactive three-dimensional computer graphics | |
CN108734628A (zh) | 基于功率和基于目标的图形质量调整 | |
US10964000B2 (en) | Techniques for reducing noise in video | |
TWI437507B (zh) | 具有多線程執行單元之繪圖處理裝置及其記憶體存取方法 | |
CN110868580A (zh) | 使用可变速率着色的运动自适应渲染 | |
CN108734644A (zh) | 利用时间复用进行的hdr增强 | |
US20160203635A1 (en) | Frustum tests for sub-pixel shadows | |
CN108694033A (zh) | 在面板显示器的不同区域中支持多个刷新率 | |
US9305324B2 (en) | System, method, and computer program product for tiled deferred shading | |
CN111698463A (zh) | 使用神经网络进行视图合成 | |
CN111143174A (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
CN108335349A (zh) | 利用神经网络滤波图像数据 | |
CN115379185B (zh) | 使用可变速率着色的运动自适应渲染 | |
CN113393564B (zh) | 利用全局照明数据结构的基于水塘的时空重要性重采样 | |
WO2016137080A1 (ko) | 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법 | |
CN107392836A (zh) | 使用图形处理管线实现的立体多投影 | |
CN112041894A (zh) | 渲染期间提高涉及水面的场景的真实感 | |
TW202141418A (zh) | 處理拆分渲染中的遮蔽之方法及裝置 | |
US10983919B2 (en) | Addressing cache slices in a last level cache | |
CN109300083A (zh) | 一种分块处理Wallis匀色方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 307, 309 and 311, Room 959, Jiayuan Road, Yuanhe Street, Xiangcheng District, Suzhou City, Jiangsu Province Applicant after: Jiangsu fire Interactive Technology Co., Ltd. Address before: Suzhou City, Jiangsu province 215000 Chuk Yuen Road No. 209 Suzhou park four building 502 room Applicant before: Jiangsu fire Interactive Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |