CN102647602B - 一种基于gpu加速的2d视频转3d视频系统及方法 - Google Patents
一种基于gpu加速的2d视频转3d视频系统及方法 Download PDFInfo
- Publication number
- CN102647602B CN102647602B CN201110040029.9A CN201110040029A CN102647602B CN 102647602 B CN102647602 B CN 102647602B CN 201110040029 A CN201110040029 A CN 201110040029A CN 102647602 B CN102647602 B CN 102647602B
- Authority
- CN
- China
- Prior art keywords
- video
- module
- depth map
- frame
- 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
Links
Landscapes
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种基于GPU加速的2D视频转3D视频系统,它包括一个深度线索提取模块、一个深度图生成模块、一个深度图优化模块、一个左右视生成模块、一个合成模块和一个输出模块,其特征在于:所述深度线索提取模块和输出模块位于CPU,在CPU上执行;所述深度图生成模块、深度图优化模块、左右视生成模块、合成模块等位于GPU,在GPU上执行;所述各模块组织成三个线程,CPU工作线程驱动深度线索提取模块,GPU工作线程驱动深度图生成模块、深度图优化模块、左右视生成模块、合成模块,CPU输出线程驱动输出模块;所述三个线程以流水方式并行执行。
Description
技术领域
本发明涉及2D视频转3D视频技术领域,具体是一种使用GPU辅助CPU进行的2D视频转3D视频系统及方法。
技术背景
目前,3D拍摄、制作及显示技术已经获得广泛的应用。如图1所示,一个典型的3D应用包含拍摄、制作阶段,分发阶段,观看阶段。拍摄、制作阶段通过左视镜头和右视镜头分别采集左视和右视的画面,通过合成模块合成一路视频。合成模块可以采用拼接,色分等方式进行合成。观看阶段通过分离模块分离左右视,分离模块可以采用快门、偏振光、色分等分离方式。分离之后的左右视分别进入左眼和右眼,在人的大脑中产生3D视觉。由于3D视频不同于以往的2D视频,需要在拍摄阶段就拍摄两个视的画面,因此目前3D视频内容较为缺乏,限制了3D市场的发展。将原有的2D视频转换为3D视频成为补充3D视频内容的一个重要手段。
2D视频转3D视频是通过视频中物体运动信息、画面结构等线索,在原始2D视频画面的基础上生成左右视视频画面。2D视频转3D视频技术分为全自动式和交互式,交互式需要人工参与,而全自动式不需要人工参与,适合在实时播放等系统中应用。一个较为普遍的全自动式2D视频转3D视频过程如图2所示:首先从原始2D视频中提取深度线索,包括画面结构、画面中物体运动信息等;然后根据这些信息并以像素块为单位生成深度图;再对深度图进行优化,消除块边界并平滑深度图;根据深度图和原始2D视频帧生成左右视视频帧;最后将左右视视频帧通过拼接模式或色分模式合成3D视频帧,进而生成3D视频。
全自动式2D视频转3D视频技术比较适合用于电视及PC的多媒体播放器中,将实时播放的2D视频转换为3D视频。该应用需要2D视频转3D视频系统具有较高的转换质量,并且转换速度需要达到实时。目前已经有基于硬件实现的2D视频转3D视频系统并应用在电视系统中。而在PC上基于软件实现的全自动式2D视频转3D视频系统还无法达到实时。因此,在PC上利用GPU的运算能力对2D视频转3D视频系统进行加速是一个有效的方法。
发明内容
本发明的目的在于提供一种基于GPU加速的2D视频转3D视频方法及系统,充分利用GPU的计算资源,分担CPU计算负担,并显著提高2D视频转3D视频的速度。
为实现上述目的,本发明采用以下技术方案:一种基于GPU加速的2D视频转3D视频系统,它包括一个深度线索提取模块、一个深度图生成模块、一个深度图优化模块、一个左右视生成模块、一个合成模块和一个输出模块,其特征在于:所述深度线索提取模块和输出模块位于CPU,在CPU上执行;所述深度图生成模块、深度图优化模块、左右视生成模块、合成模块等位于GPU,在GPU上执行;所述各模块组织成三个线程,CPU工作线程驱动深度线索提取模块,GPU工作线程驱动深度图生成模块、深度图优化模块、左右视生成模块、合成模块,CPU输出线程驱动输出模块;GPU上开辟一块显存空间存放原始2D视频帧,供GPU上的各个模块使用;所述深度线索提取模块根据输入的原始2D视频帧提取图像的空间结构信息、运动信息等,并输出给GPU上的深度图生成模块;所述深度图生成模块根据得到的深度线索信息生成初始的深度图,并输出给深度图优化模块;所述深度图优化模块根据原始2D视频帧对初始的深度图进行边缘修正滤波得到优化的深度图,并输出给左右视生成模块;所述左右视生成模块根据优化的深度图和原始2D视频帧生成左视视频帧和右视视频帧,并输出给合成模块;所述合成模块将左视视频帧和右视视频帧合成为双拼3D视频帧或色分3D视频帧,并将3D视频帧传回CPU的输出模块;所述输出模块从GPU接收3D视频帧,并作为系统输出,输出到所需的系统外设备或系统。
所述GPU上的深度优化模块将原分辨率为W×H的深度图按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程对一个像素点进行边缘修正滤波。一次滤波之后得到一个临时优化的深度图,可以在所述临时优化的深度图上做进一步的边缘修正滤波。该过程可迭代多次,最终生成优化的深度图。
所述左右视生成模块将原分辨率为W×H的原始2D视频帧按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程处理一个像素点,根据深度图中该像素点的深度值分别生成左视和右视视频帧上该像素点对应的像素点。
所述合成模块可以进行半分辨率拼接合成、全分辨率拼接合成、色分合成。对于半分辨率拼接合成和色分合成,将原分辨率为W×H的待合成的3D视频帧按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程处理一个像素点,根据左右视视频帧和合成规则生成该像素点像素值。对于全分辨率拼接合成,待合成的3D视频帧分辨率为原始2D视频帧的两倍,记为H×V按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程处理一个像素点,根据左右视视频帧和合成规则生成该像素点像素值。
一种基于GPU加速的2D视频转3D视频方法,其特征在于转换过程操作步骤如下:
(1)CPU从系统外读入原始2D视频帧,并分成两份,一份传输给深度线索提取模块,另一份传输给GPU存于显存空间;
(2)所述CPU工作线程调用所述深度线索提取模块,根据之前输入的若干原始2D视频帧以及当前输入的原始2D视频帧提取深度线索,包括图像空间结构信息、运动信息等,然后将得到的这些深度线索信息传输到GPU;
(3)所述GPU工作线程从CPU接收深度线索信息,并开始GPU工作,包括以下子步骤:(a)调用所述深度图生成模块生成初始的深度图,传递给深度图优化模块;(b)调用所述深度图优化模块根据显存空间中的原始2D视频帧对初始的深度图进行边缘修正滤波,边缘修正滤波以迭代方式多次进行,迭代次数由系统使用者预先设定;(c)调用所述左右视生成模块根据优化的深度图以及原始2D视频帧生成左右视视频帧;(d)调用所述合成模块,根据预先设定的合成方式以及左右视视频帧生成3D视频帧;(e)GPU工作线程将3D视频帧传回CPU;
(4)所述CPU输出线程从GPU接收转换完成的3D视频帧,并输出到系统外指定设备或其他系统。
所述基于GPU加速的2D视频转3D视频方法,其特征还在于:所述CPU工作线程、GPU工作线程、CPU输出线程按照流水方式并行执行。即CPU工作线程处理完第一帧,并将所述深度线索信息传输至GPU之后,立即开始处理第二帧,而无需等待后续所有步骤的完成;GPU工作线程一旦从CPU接收到深度线索信息即开始处理当前帧,处理完成并将3D视频帧传输回CPU之后,立即开始接收下一帧的深度线索信息,而无需等待后续所有步骤的完成。
本发明由于采取以上方案,具有以下优点:能够利用PC机显卡的计算能力,对2D视频转3D视频操作进行加速;由于GPU并行度高,而所述深度图生成模块、深度图优化模块、左右视生成模块以及合成模块具有极高的可并行性,能充分利用GPU的计算能力,大大提高处理速度;CPU和GPU以流水方式并行处理,进一步提高并行度和运行速度。
附图说明
图1是典型的3D视频系统;
图2是典型的2D视频转3D视频流程;
图3是基于GPU加速的2D转3D视频系统;
图4是基于GPU加速的2D转3D视频流水并行方法。
具体实施方式
下面结合附图和实施例,对本发明进行详细的描述。
如图3所示,本发明提供的基于GPU加速的2D视频转3D视频统由一个深度线索提取模块100、一个深度图生成模块101、一个深度图优化模块102、一个左右视生成模块103、一个合成模块104、一个输出模块105组成,图中实线箭头代表数据输入输出的方向。
深度线索提取模块100作用是从原始2D视频帧中提取画面空间结构、运动信息等深度线索。该实施例中,仅使用基于块匹配的运动矢量估计来提取原始2D视频的运动信息。运动矢量估计采用单帧参考,4×4块大小,使用六边形搜索算法。深度线索提取模块100将每一个块的运动矢量传递给GPU上的深度图生成模块101。
深度图生成模块101将原始图像划分为16×16的像素块,给每一个像素块申请一个线程块,所述每一个线程块内部申请一个16×16的二维线程组,一个线程生成其对应位置上一个像素点的深度。深度图生成模块101从深度线索提取模块100接收到每一个块的运动矢量之后,所述每一个线程根据其对应位置一个像素的坐标计算该像素所属的像素块,然后找到对应的运动矢量(x,y)。深度图生成模块101确定了每一个像素点的深度之后即生成了初始的深度图。
深度图优化模块102将原始图像划分为16×16的像素块,给每一个像素块申请一个线程块,所述每一个线程块内部申请一个16×16的二维线程组,一个线程对其对应位置上一个像素点进行边缘修正滤波。该实施例中,边缘修正滤波迭代3次进行。最后得到的优化的深度图输出给左右视生成模块103。
左右视生成模块103根据优化的深度图和原始2D视频帧,生成左视视频帧和右视视频帧。左右视生成模块103将原始图像划分为16×16的像素块,给每一个像素块申请一个线程块,所述每一个线程块内部申请一个16×16的二维线程组。一个线程处理对应位置上一个像素点,根据该像素深度,给左视和右视视频帧中该像素点的映射位置赋予该像素的像素值。
合成模块104根据左视和右视视频帧以及预先设定的合成方式生成3D视频帧。该实施例中,合成方式采用色分合成。合成模块104将原始图像划分为16×16的像素块,给每一个像素块申请一个线程块,所述每一个线程块内部申请一个16×16的二维线程组。一个线程处理对应位置上一个像素点,根据该像素点坐标,提取左视视频帧上相同坐标处像素的R分量,提取右视视频帧上相同坐标处像素的GB分量,合并成完整的RGB像素值,赋给3D视频帧中相同坐标位置的像素。所有线程执行完后,就生成了3D视频帧。
输出模块105从GPU接收合成模块104生成的3D视频帧,输出到系统外的设备或其他系统。
该实施例中基于GPU加速的2D视频转3D视频方法,由三个线程来驱动各个模块:CPU工作线程驱动深度线索提取模块100;GPU工作线程驱动深度图生成模块101、深度图优化模块102、左右视生成模块103、合成模块104;CPU输出线程驱动输出模块105。所述三个线程以流水方式并行执行,如图4所示。操作过程如下:
(1)CPU从系统外读入原始2D视频帧,并分成两份,一份传输给深度线索提取模块100,另一份传输给GPU存于显存空间;
(2)所述CPU工作线程调用所述深度线索提取模块100,根据之前输入的一帧原始2D视频帧以及当前输入的原始2D视频帧进行运动估计,提取运动矢量,然后将得到的运动矢量传输到GPU;
(3)所述GPU工作线程从CPU接收运动矢量,并开始GPU工作,包括以下子步骤:(a)调用所述深度图生成模块101生成初始的深度图,传递给深度图优化模块102;(b)调用所述深度图优化模块102根据显存空间中的原始2D视频帧对初始的深度图进行边缘修正滤波,边缘修正滤波迭代3次;(c)调用所述左右视生成模块103根据优化的深度图以及原始2D视频帧生成左右视视频帧;(d)调用所述合成模块104,使用色分方式根据左右视视频帧生成3D视频帧;(e)GPU工作线程将3D视频帧传回CPU;
(4)所述CPU输出线程从GPU接收转换完成的3D视频帧,并输出到系统外指定设备或其他系统。
Claims (5)
1.一种基于GPU加速的2D视频转3D视频系统,它包括一个深度线索提取模块、一个深度图生成模块、一个深度图优化模块、一个左右视生成模块、一个合成模块和一个输出模块,其特征在于:
所述深度线索提取模块和输出模块位于CPU,在CPU上执行;
所述深度图生成模块、深度图优化模块、左右视生成模块、合成模块位于GPU,在GPU上执行;
所述各模块组织成三个线程,CPU工作线程驱动深度线索提取模块,GPU工作线程驱动深度图生成模块、深度图优化模块、左右视生成模块、合成模块,CPU输出线程驱动输出模块;
所述深度图优化模块用于将原分辨率为W×H的深度图按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程对一个对应位置的像素点进行边缘修正滤波。
2.如权利要求1所述的系统,其特征在于,所述左右视生成模块用于将原分辨率为W×H的原始2D视频帧按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程处理一个对应位置的像素点,根据深度图中该像素点的深度值分别生成左视和右视视频帧上该像素点对应的像素点。
3.如权利要求1所述的系统,其特征在于,所述合成模块用于将待生成的分辨率为W×H的3D视频帧按照合适的块大小m×n划分为个像素块,并为每一个像素块申请一个线程块,所述每一个线程块中申请一个大小为m×n的二维线程组,线程组中一个线程处理一个像素点,根据左右视视频帧和合成规则生成该像素点像素值。
4.一种基于GPU加速的2D视频转3D视频方法,其特征在于转换过程操作步骤如下:
第一步:CPU从系统外读入原始2D视频帧,并分成两份,一份传输给深度线索提取模块,另一份传输给GPU存于显存空间;
第二步:建立CPU工作线程,用于调用所述深度线索提取模块,根据之前输入的若干原始2D视频帧以及当前输入的原始2D视频帧提取深度线索,所述深度线索包括图像空间结构信息、运动信息,然后将得到的这些深度线索信息传输到GPU;
第三步:建立GPU工作线程,用于从CPU接收深度线索信息,并开始GPU工作;具体包括以下子步骤:(a)调用深度图生成模块,生成初始的深度图,并将所述初始深度图传递给深度图优化模块;(b)调用所述深度图优化模块,根据显存空间中的原始2D视频帧对初始的深度图进行边缘修正滤波,边缘修正滤波以迭代方式多次进行,迭代次数由系统使用者预先设定;(c)调用左右视生成模块,根据优化的深度图以及原始2D视频帧生成左右视视频帧;(d)调用合成模块,根据预先设定的合成方式以及左右视视频帧生成3D视频帧;(e)GPU工作线程将3D视频帧传回CPU;
第四步:建立CPU输出线程,用于从GPU接收转换完成的3D视频帧,并输出到系统外指定设备或其他系统。
5.如权利要求4所述的基于GPU加速的2D视频转3D视频方法,其特征在于:所述CPU工作线程、GPU工作线程、CPU输出线程按照流水方式并行执行,每一个线程只要接收完一帧图像的相关数据之后即可开始工作,而无需等待该帧图像整个转换过程的完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110040029.9A CN102647602B (zh) | 2011-02-17 | 2011-02-17 | 一种基于gpu加速的2d视频转3d视频系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110040029.9A CN102647602B (zh) | 2011-02-17 | 2011-02-17 | 一种基于gpu加速的2d视频转3d视频系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102647602A CN102647602A (zh) | 2012-08-22 |
CN102647602B true CN102647602B (zh) | 2014-08-20 |
Family
ID=46660148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110040029.9A Active CN102647602B (zh) | 2011-02-17 | 2011-02-17 | 一种基于gpu加速的2d视频转3d视频系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102647602B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995725B (zh) * | 2014-04-24 | 2018-07-20 | 深圳中微电科技有限公司 | 在cpu上执行像素着色器的程序转换方法及装置 |
CN104331918B (zh) * | 2014-10-21 | 2017-09-29 | 无锡梵天信息技术股份有限公司 | 基于深度图实时绘制室外地表遮挡剔除以及加速方法 |
CN105611280A (zh) * | 2015-12-31 | 2016-05-25 | 北京奇艺世纪科技有限公司 | 一种基于android系统的VR视频编辑方法和系统 |
CN108616745A (zh) * | 2016-12-12 | 2018-10-02 | 三维视觉科技有限公司 | 2d自动转3d方法和系统 |
CN109101339B (zh) * | 2018-08-15 | 2019-05-31 | 北京邮电大学 | 异构集群中视频任务并行化方法、装置及异构集群系统 |
CN109889749B (zh) * | 2019-04-01 | 2021-09-21 | 上海群盼电子科技有限公司 | 一种3d高清手术录播方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631256A (zh) * | 2009-08-13 | 2010-01-20 | 浙江大学 | 用于三维电视系统中2d视频到3d视频的转换方法 |
CN101635859A (zh) * | 2009-08-21 | 2010-01-27 | 清华大学 | 一种实现平面视频转立体视频的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100505334B1 (ko) * | 2003-03-28 | 2005-08-04 | (주)플렛디스 | 운동 시차를 이용한 입체 영상 변환 장치 |
-
2011
- 2011-02-17 CN CN201110040029.9A patent/CN102647602B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631256A (zh) * | 2009-08-13 | 2010-01-20 | 浙江大学 | 用于三维电视系统中2d视频到3d视频的转换方法 |
CN101635859A (zh) * | 2009-08-21 | 2010-01-27 | 清华大学 | 一种实现平面视频转立体视频的方法和装置 |
Non-Patent Citations (2)
Title |
---|
A Real-Time 1080p 2D-to-3D Video Conversion System;Sung-Fang Tsai等;《IEEE Xplore DIGITAL LIBRARY》;20110112;803-804 * |
Sung-Fang Tsai等.A Real-Time 1080p 2D-to-3D Video Conversion System.《IEEE Xplore DIGITAL LIBRARY》.2011,第803-804页. |
Also Published As
Publication number | Publication date |
---|---|
CN102647602A (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102647602B (zh) | 一种基于gpu加速的2d视频转3d视频系统及方法 | |
US20200051269A1 (en) | Hybrid depth sensing pipeline | |
CN102254348B (zh) | 一种基于自适应视差估计的虚拟视点绘制方法 | |
RU2421933C2 (ru) | Система и способ формирования и воспроизведения трехмерного видеоизображения | |
CN112543317B (zh) | 高分辨率单目2d视频到双目3d视频的转制方法 | |
US20180139432A1 (en) | Method and apparatus for generating enhanced 3d-effects for real-time and offline applications | |
EP3149706B1 (en) | Image refocusing for camera arrays | |
KR101271460B1 (ko) | 영상 복원 장치 및 그 방법 | |
CN109510975B (zh) | 一种视频图像的提取方法、设备及系统 | |
CN111612878B (zh) | 将静态照片制作成三维效果视频的方法及装置 | |
WO2011120228A1 (en) | A multi-core processor supporting real-time 3d image rendering on an autostereoscopic display | |
US11308682B2 (en) | Dynamic stereoscopic rendering method and processor | |
US10127714B1 (en) | Spherical three-dimensional video rendering for virtual reality | |
CN104506872B (zh) | 一种平面视频转立体视频的方法及装置 | |
WO2012094076A1 (en) | Morphological anti-aliasing (mlaa) of a re-projection of a two-dimensional image | |
Bleyer et al. | Temporally consistent disparity maps from uncalibrated stereo videos | |
WO2022263923A1 (en) | Techniques for generating light field data by combining multiple synthesized viewpoints | |
US20120176367A1 (en) | Morphological anti-aliasing (mlaa) of a re-projection of a two-dimensional image | |
CN105578172A (zh) | 基于Unity3D引擎的裸眼3D视频显示方法 | |
CN104717514A (zh) | 多视点图像渲染系统及方法 | |
US20220108420A1 (en) | Method and system of efficient image rendering for near-eye light field displays | |
CN109961395A (zh) | 深度图像的生成及显示方法、装置、系统、可读介质 | |
Van Bogaert et al. | Novel view synthesis in embedded virtual reality devices | |
Sun et al. | Real-time depth-image-based rendering on GPU | |
KR20170077331A (ko) | 임의시점 영상생성 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |