CN111163352A - 基于cuda的视频解码硬件加速数据与中间数据转换方法 - Google Patents
基于cuda的视频解码硬件加速数据与中间数据转换方法 Download PDFInfo
- Publication number
- CN111163352A CN111163352A CN201811326947.6A CN201811326947A CN111163352A CN 111163352 A CN111163352 A CN 111163352A CN 201811326947 A CN201811326947 A CN 201811326947A CN 111163352 A CN111163352 A CN 111163352A
- Authority
- CN
- China
- Prior art keywords
- data
- tblob
- video decoding
- decoding hardware
- size
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000001133 acceleration Effects 0.000 title claims abstract description 11
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 6
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 title abstract description 7
- 238000013135 deep learning Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 1
- 238000007796 conventional method Methods 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种基于CUDA的视频解码硬件加速数据与中间数据转换方法,根据图像大小在device上分配存储空间,该储存空间用于存放转换后的中间数据;在device上确定线程数,分别定义合适的线程block大小和线程grid大小;根据视频解码硬件加速输出的Gpumat结构的数据指针,获取每个像素点的BGR三个通道的数值,减去预定义的mean值存入预先分配的显存中;在显存上构造TBlob结构,将中间数据作为其数据区;使用NDArray的方法将TBlob数据拷贝到NDArray的数据区。本发明充分利用了GPU的计算特性,降低了对系统总线带宽需求,提高了程序处理效率。
Description
技术领域
本发明涉及NVIDIA显卡上的视频解码硬件加速技术和MXNet图像分类模型的中间数据转换方法,属于数字视频解码技术和深度学习技术的交叉领域。
背景技术
CUDA是由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。开发人员可以使用C语言来为CUDA架构编写程序,支持CUDA的处理器上以超高性能运行。OpenCV是一个基于BSD许可发行的跨平台计算机视觉库。它轻量级而且高效,实现了图像处理和计算机视觉方面的很多通用算法。基于NVIDIA方案的视频解码硬件加速技术结合了CUDA和Opencv特性,使运算量较大的解码运算在GPU上完成,并在GPU上输出Gpumat结构的图像数据。
MXNet是Amazon选择的深度学习库。它拥有类似于Theano和TensorFlow的数据流图,为多GPU并行计算提供了良好的配置,有着类似于Lasagne和Blocks更高级别的模型构建块。在使用MXNet深度学习框架的图像分类方案中,可以充分利用MXNet提供的GPU并行计算特性,将深度学习大量的复杂运算放在GPU上完成,而CPU主要承担运算量相对较轻的控制和逻辑处理等任务。
在MXNet官方自带的图像分类例程中,未采用视频解码硬件加速技术,输入图像数据的读入及处理过程步骤如下:
第一步,对图像作预处理。
第二步,在host(主机)端设备构造用于存储图像数据的vector。
第三步,在host端构造TBlob数据结构,将vector数据作为其数据区。
第四步,使用NDArray的方法将TBlob数据从host端拷贝到device(GPU)端。
从以上处理过程中可以看出,源图像数据在host端,而MXNet的核心算法依托GPU设备,因此图像数据必须从host端拷贝到device端。但是,当使用视频解码硬件加速时,解码后的图像数据存放在GPU显存中,MXNet提供的接口无法直接从显存接收图像数据。现有的方法是先将解码后的图像数据通过PCI-e总线从device端拷贝到host端,再使用MXNet提供的接口从host端读入图像数据。于是,显存上的图像数据需要经过从device端到host端,再从host端到device端的处理过程,需要占用较高总线带宽和CPU时钟周期。另外,解码后的图像数据通常还需要一系列的图像预处理,这些计算会消耗大量的CPU计算能力,如果把这些计算全部转移到GPU上完成,既能充分发挥GPU设备的计算优势,也能有效释放CPU负载,提升系统的整体性能。
发明内容
本发明的目的是提出一种存在于GPU显存上的视频解码硬件加速输出数据与中间数据的转换方法,可以实现转换后的图像数据直接送入GPU上的MXNet算法模型。避免了host到device之间反复拷贝操作,为后续在显存上增加图像预处理提供可能。
本发明的技术方案如下:
一种基于CUDA的视频解码硬件加速数据与中间数据转换方法,经视频解码硬件加速处理后已经在device端得到图像数据的显存地址,其特征在于:
(1)根据图像大小在device上分配存储空间,该储存空间用于存放转换后的中间数据;
(2)在device上确定线程数,分别定义合适的线程block大小和线程grid大小;
(3)根据视频解码硬件加速输出的Gpumat结构的数据指针,获取每个像素点的BGR三个通道的数值,减去预定义的mean值存入步骤(1)中预先分配的显存中;
(4)在显存上构造TBlob结构,将中间数据作为其数据区;
(5)使用NDArray的方法将TBlob数据拷贝到NDArray的数据区。
本发明算法复杂度低,易于实现,充分利用了GPU的计算特性,降低了对系统总线带宽需求,提高了程序处理效率。
附图说明
图1是本发明的工作流程图;
图2是Gpumat数据在显存上的存储格式;
图3是中间数据在显存上的存储格式。
具体实施方式
采用MXNet框架的图像分类方案中,MXNet提供对GPU的良好支持,当图像数据来源于host端时,采用现有的实现方案具有较好的性能特性。当图像数据来源于device端时,性能瓶颈就充分暴露出来。
为解决上述问题,本发明提出的视频解码硬件加速输出数据与中间数据的转换方法在VS2015中编程实现,依赖Opencv342,cuda9.0以及mxnet1.3等开发库。实验结果表明,该方法通过在device端构造中间数据,避免了host与device间的冗余拷贝操作。本方法和MXNet官方自带的图像分类例程做对比实验,目标对象分类结果一致,输出的全部置信度一致。同时,CPU负载显著降低,证明了该方法是可行的。
如图1所示,本发明具体过程如下:
假设经视频解码硬件加速处理后已经在device端得到图像数据的显存地址;
根据图像大小在device上分配存储空间,该储存空间用于存放转换后的中间数据;
在device上确定线程数,分别定义合适的线程block大小和线程grid大小;
如图2所示,根据视频解码硬件加速输出的Gpumat结构的数据指针,获取每个像素点的BGR三个通道的数值,减去预定义的mean值存入步骤(1)中预先分配的显存中;
如图3所示,在显存上构造TBlob结构,将中间数据作为其数据区;
使用NDArray的方法Copy<gpu,gpu>将TBlob数据拷贝到NDArray的数据区。
Claims (1)
1.一种基于CUDA的视频解码硬件加速数据与中间数据转换方法,经视频解码硬件加速处理后已经在device端得到图像数据的显存地址,其特征在于:
(1)根据图像大小在device上分配存储空间,该储存空间用于存放转换后的中间数据;
(2)在device上确定线程数,分别定义合适的线程block大小和线程grid大小;
(3)根据视频解码硬件加速输出的Gpumat结构的数据指针,获取每个像素点的BGR三个通道的数值,减去预定义的mean值存入步骤(1)中预先分配的显存中;
(4)在显存上构造TBlob结构,将中间数据作为其数据区;
(5)使用NDArray的方法将TBlob数据拷贝到NDArray的数据区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811326947.6A CN111163352A (zh) | 2018-11-08 | 2018-11-08 | 基于cuda的视频解码硬件加速数据与中间数据转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811326947.6A CN111163352A (zh) | 2018-11-08 | 2018-11-08 | 基于cuda的视频解码硬件加速数据与中间数据转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111163352A true CN111163352A (zh) | 2020-05-15 |
Family
ID=70555052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811326947.6A Pending CN111163352A (zh) | 2018-11-08 | 2018-11-08 | 基于cuda的视频解码硬件加速数据与中间数据转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163352A (zh) |
-
2018
- 2018-11-08 CN CN201811326947.6A patent/CN111163352A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11977388B2 (en) | Quantizing autoencoders in a neural network | |
CN106991011B (zh) | 基于cpu多线程与gpu多粒度并行及协同优化的方法 | |
US20210158484A1 (en) | Information processing method and terminal device | |
CN110678843B (zh) | 在深度神经网络模块中动态划分工作负载以降低功率消耗 | |
US11836597B2 (en) | Detecting visual artifacts in image sequences using a neural network model | |
US11106261B2 (en) | Optimal operating point estimator for hardware operating under a shared power/thermal constraint | |
US20190197761A1 (en) | Texture processor based ray tracing acceleration method and system | |
CN110751676A (zh) | 一种基于目标检测的异构计算系统、方法和可读存储介质 | |
CN111708511A (zh) | 用于神经网络的数据压缩 | |
US10725837B1 (en) | Persistent scratchpad memory for data exchange between programs | |
US11379420B2 (en) | Decompression techniques for processing compressed data suitable for artificial neural networks | |
CN114118347A (zh) | 用于神经网络量化的细粒度每向量缩放 | |
WO2022206960A1 (zh) | 视频转码方法、系统及电子设备 | |
US20220292337A1 (en) | Neural network processing unit, neural network processing method and device | |
US10684824B2 (en) | Stochastic rounding of numerical values | |
US11475549B1 (en) | High dynamic range image generation from tone mapped standard dynamic range images | |
Liu et al. | Parallel program design for JPEG compression encoding | |
CN114529443A (zh) | 以目标采样率的自适应采样 | |
CN106934757B (zh) | 基于cuda的监控视频前景提取加速方法 | |
KR20230148088A (ko) | 기계 학습 추론을 위한 그래픽 프로세싱 최적화를 위한 시스템 및 방법 | |
US20230043152A1 (en) | Memory interface with reduced energy transmit mode | |
CN111163352A (zh) | 基于cuda的视频解码硬件加速数据与中间数据转换方法 | |
US11908064B2 (en) | Accelerated processing via a physically based rendering engine | |
US20220129755A1 (en) | Incorporating a ternary matrix into a neural network | |
CN112214443B (zh) | 设置于图形处理器中的二次卸载装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200515 |
|
WD01 | Invention patent application deemed withdrawn after publication |