CN111163352A - 基于cuda的视频解码硬件加速数据与中间数据转换方法 - Google Patents

基于cuda的视频解码硬件加速数据与中间数据转换方法 Download PDF

Info

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
Application number
CN201811326947.6A
Other languages
English (en)
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.)
China Changfeng Science Technology Industry Group Corp
Original Assignee
China Changfeng Science Technology Industry Group Corp
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 China Changfeng Science Technology Industry Group Corp filed Critical China Changfeng Science Technology Industry Group Corp
Priority to CN201811326947.6A priority Critical patent/CN111163352A/zh
Publication of CN111163352A publication Critical patent/CN111163352A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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

基于CUDA的视频解码硬件加速数据与中间数据转换方法
技术领域
本发明涉及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的数据区。
CN201811326947.6A 2018-11-08 2018-11-08 基于cuda的视频解码硬件加速数据与中间数据转换方法 Pending CN111163352A (zh)

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)

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