CN110418144A - 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法 - Google Patents

一种基于nvidia gpu实现一入多出转码多码率视频文件的方法 Download PDF

Info

Publication number
CN110418144A
CN110418144A CN201910801149.2A CN201910801149A CN110418144A CN 110418144 A CN110418144 A CN 110418144A CN 201910801149 A CN201910801149 A CN 201910801149A CN 110418144 A CN110418144 A CN 110418144A
Authority
CN
China
Prior art keywords
code rate
nvidia gpu
chinese character
transcoding
cpu
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.)
Withdrawn
Application number
CN201910801149.2A
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.)
Chengdu Sobey Digital Technology Co Ltd
Original Assignee
Chengdu Sobey Digital Technology Co Ltd
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 Chengdu Sobey Digital Technology Co Ltd filed Critical Chengdu Sobey Digital Technology Co Ltd
Priority to CN201910801149.2A priority Critical patent/CN110418144A/zh
Publication of CN110418144A publication Critical patent/CN110418144A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234309Processing 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 transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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
    • H04N21/440218Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,涉及视频转码技术领域,本发明包括利用CPU对源文件进行解码得到YUV数据;将YUV数据从CPU上行到NVIDIA GPU;在NVIDIA GPU开辟多个预处理流程,每个预处理流程对应一种码率,利用NVIDIA GPU的CUDA并行运算能力,并行对YUV数据进行多码率预处理;利用NVIDIA GPU的NVENC硬件编码能力,并行对每个预处理流程对应的YUV数据进行编码,得到对应码率的编码数据;将各编码数据从NVIDIA GPU下行到对应的CPU;利用CPU对各编码数据进行文件格式封装,得到对应码率的转码文件,本发明充分利用了NVIDIA GPU的计算能力,整体流程紧凑无冗余,使得能够达到理想的转码效率,实现多码率转码,使得一入多出转码多码率文件的效率得到极大提高。

Description

一种基于NVIDIA GPU实现一入多出转码多码率视频文件的 方法
技术领域
本发明涉及视频转码技术领域,更具体的是涉及一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法。
背景技术
转码应用的一大场景是面向互联网的多码率发布,同一个视频内容源,需要转码成多个不同码率的文件,互联网客户端根据自身的带宽情况,选择适合的码率进行观看。视频转码流程一般分为以下几个步骤:
S1:对视频源文件每帧解码,获得每帧的YUV数据;
S2:对于YUV数据做视频预处理,包括缩放、颜色空间转换、HDR/SDR变换、帧率变换、去交织、叠台标等;
S3:对每帧预处理完毕的数据做视频编码,获得每帧的编码数据;
S4:对编码数据进行文件格式封装,形成最终的目标文件。
通常,转码多码率文件的应用场景具备以下几个特征:
1、一入(同一个视频内容源)多出(同时转码成多个不同码率的文件);
2、转码的目标编码格式一般是H264或H265;
3、每个码率的文件,在编码之前,需要做视频预处理,包括缩放、颜色空间转换、HDR/SDR变换、帧率变换、去交织、叠台标等等;
针对上面的几个特征,目前常见的技术存在以下不足:
1、转码不同码率文件,每转一种码率,就对源文件解码一次,即对源文件解码了多次,造成效率低和资源浪费;
2、使用CPU编码H264/H265,编码效率低,实时性差并且同时支持的并发路数少;
3、使用CPU做视频预处理,效率较低;
4、部分流程使用了GPU加速,比如编码或者部分的视频预处理,但整体流程不优化,一帧视频数据反复在CPU和GPU之间来回上下行,效率未达到最优。
发明内容
本发明的目的在于:为了解决目前转码多码率文件存在效率较低,资源浪费的问题,本发明提供一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,既充分使用GPU加速视频编码和视频预处理,又在整体流程上充分优化,消除多个冗余环节,从而使得一入多出转码多码率文件的效率得到极大提高。
本发明为了实现上述目的具体采用以下技术方案:
一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,包括如下步骤:
S1:利用CPU对源文件进行解码得到YUV数据;
S2:将YUV数据从CPU上行到NVIDIA GPU;
S3:在NVIDIA GPU开辟多个预处理流程,每个预处理流程对应一种码率,利用NVIDIA GPU的CUDA并行运算能力,并行对YUV数据进行多码率预处理;
S4:利用NVIDIA GPU的NVENC硬件编码能力,并行对每个预处理流程对应的YUV数据进行编码,得到对应码率的编码数据;
S5:将各编码数据从NVIDIA GPU下行到对应的CPU;
S6:利用CPU对各编码数据进行文件格式封装,得到对应码率的转码文件。
进一步的,所述S1中,将YUV数据保存到CPU的内存缓冲区。
进一步的,所述S2中,YUV数据从CPU的内存缓冲区上行到NVIDIA GPU的显存缓冲区,且每帧YUV数据仅上行一次。
进一步的,所述S3中,在NVIDIA GPU开辟多个预处理流程,具体为:将各种视频预处理算法移植到NVIDIA GPU上。
进一步的,所述S4中,对每个预处理流程对应的YUV数据进行编码,编码目标格式为H264或H265。
进一步的,所述S5中,各编码数据从NVIDIA GPU的显存缓冲区下行到CPU的内存缓冲区。
进一步的,所述S6中,CPU采用串行处理的方式,对各编码数据进行文件格式封装。
本发明的有益效果如下:
1、本发明仅对源文件解码一次,解码得到的YUV数据仅做一次上行到NVIDIA GPU,多个码率的视频预处理和编码流程完全在NVIDIA GPU内部并行执行,充分利用了NVIDIAGPU的计算能力,整体流程紧凑无冗余,使得能够达到理想的转码效率,实现多码率转码,使得一入多出转码多码率文件的效率得到极大提高。
附图说明
图1是本发明具体实施方式的方法流程示意图。
具体实施方式
为了本技术领域的人员更好的理解本发明,下面结合附图和以下实施例对本发明作进一步详细描述。
实施例1
如图1所示,本实施例提供一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,包括如下步骤:
S1:利用CPU对源文件进行解码得到YUV数据,由于需要兼容广泛的视频格式,而很多视频格式无法使用GPU进行解码,因此本实施例选择CPU实现解码,并将解码后的YUV数据保存到CPU的内存缓冲区;
S2:将YUV数据从CPU的内存缓冲区上行到NVIDIA GPU的显存缓冲区,且每帧YUV数据仅上行一次;
S3:在NVIDIA GPU开辟多个预处理流程,每个预处理流程对应一种码率,利用NVIDIA GPU的CUDA并行运算能力,并行对YUV数据进行多码率预处理,本实施例中利用了NVIDIA GPU的CUDA运算能力,通过CUDA方式编程将原本在CPU上运行的各种视频预处理算法全部移植到GPU上面实现,由于目标是多码率,所以在GPU内部并行地开辟多个CUDA预处理流程,每个预处理流程对应一种码率;
S4:利用NVIDIA GPU的NVENC硬件编码能力,并行对每个预处理流程对应的YUV数据进行编码,得到对应码率的编码数据,因为面向互联网多码率发布的这种应用场景,目标格式一般是H264或者H265,所以本实施例使用NVIDIA GPU的NVENC硬件编码能力,即视频编码也完全在GPU上面实现,NVENC支持同时并行编码多路;
S5:将各编码数据从NVIDIA GPU的显存缓冲区下行到对应的CPU的内存缓冲区;
S6:利用CPU对各编码数据进行文件格式封装,得到对应码率的转码文件,由于文件格式封装基本是串行处理的,无法利用GPU的高并行度,因此本实施例的CPU采用串行处理的方式,对各编码数据进行文件格式封装。
本实施例仅对源文件解码一次,解码得到的YUV数据仅做一次上行到NVIDIA GPU,多个码率的视频预处理和编码流程完全在NVIDIA GPU内部并行执行,充分利用了NVIDIAGPU的计算能力,整体流程紧凑无冗余,使得能够到达理想的转码效率,实现多码率转码,使得一入多出转码多码率文件的效率得到极大提高。
以上所述,仅为本发明的较佳实施例,并不用以限制本发明,本发明的专利保护范围以权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。

Claims (7)

1.一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,包括如下步骤:
S1:利用CPU对源文件进行解码得到YUV数据;
S2:将YUV数据从CPU上行到NVIDIA GPU;
S3:在NVIDIA GPU开辟多个预处理流程,每个预处理流程对应一种码率,利用NVIDIAGPU的CUDA并行运算能力,并行对YUV数据进行多码率预处理;
S4:利用NVIDIA GPU的NVENC硬件编码能力,并行对每个预处理流程对应的YUV数据进行编码,得到对应码率的编码数据;
S5:将各编码数据从NVIDIA GPU下行到对应的CPU;
S6:利用CPU对各编码数据进行文件格式封装,得到对应码率的转码文件。
2.根据权利要求1所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S1中,将YUV数据保存到CPU的内存缓冲区。
3.根据权利要求2所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S2中,YUV数据从CPU的内存缓冲区上行到NVIDIA GPU的显存缓冲区,且每帧YUV数据仅上行一次。
4.根据权利要求1所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S3中,在NVIDIA GPU开辟多个预处理流程,具体为:将各种视频预处理算法移植到NVIDIA GPU上。
5.根据权利要求1所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S4中,对每个预处理流程对应的YUV数据进行编码,编码目标格式为H264或H265。
6.根据权利要求3所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S5中,各编码数据从NVIDIA GPU的显存缓冲区下行到CPU的内存缓冲区。
7.根据权利要求1所述的一种基于NVIDIA GPU实现一入多出转码多码率视频文件的方法,其特征在于,所述S6中,CPU采用串行处理的方式,对各编码数据进行文件格式封装。
CN201910801149.2A 2019-08-28 2019-08-28 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法 Withdrawn CN110418144A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910801149.2A CN110418144A (zh) 2019-08-28 2019-08-28 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910801149.2A CN110418144A (zh) 2019-08-28 2019-08-28 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法

Publications (1)

Publication Number Publication Date
CN110418144A true CN110418144A (zh) 2019-11-05

Family

ID=68369485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910801149.2A Withdrawn CN110418144A (zh) 2019-08-28 2019-08-28 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法

Country Status (1)

Country Link
CN (1) CN110418144A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111314740A (zh) * 2020-03-19 2020-06-19 杭州慧川智能科技有限公司 一种基于芯片间并行的高性能转码方法
CN111327939A (zh) * 2020-02-25 2020-06-23 华南理工大学 一种分布式教学视频处理系统
CN111556365A (zh) * 2020-05-20 2020-08-18 浩云科技股份有限公司 视频转码方法和装置
CN112702605A (zh) * 2020-12-24 2021-04-23 百果园技术(新加坡)有限公司 视频转码系统、视频转码方法、电子设备和存储介质
CN113038279A (zh) * 2021-03-29 2021-06-25 京东方科技集团股份有限公司 视频转码方法、系统及电子设备
WO2023216798A1 (zh) * 2022-05-13 2023-11-16 腾讯科技(深圳)有限公司 音视频的转码装置、方法、设备、介质及产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103826138A (zh) * 2014-03-12 2014-05-28 赛特斯信息科技股份有限公司 实现音视频内容多种码率和编码格式云转码的系统及方法
CN104980752A (zh) * 2015-06-11 2015-10-14 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
CN106973298A (zh) * 2008-11-04 2017-07-21 先进微装置公司 以gpu加速的软件视频转码器
CN107113432A (zh) * 2014-12-11 2017-08-29 英特尔公司 用于并行视频编码的码率控制
WO2018000224A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Encoding and decoding video
CN108289228A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 一种全景视频转码方法、装置和设备
CN109213593A (zh) * 2017-07-04 2019-01-15 阿里巴巴集团控股有限公司 用于全景视频转码的资源分配方法、装置和设备
CN109792540A (zh) * 2016-10-01 2019-05-21 英特尔公司 利用每帧参数控制的硬件加速的视频编码方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106973298A (zh) * 2008-11-04 2017-07-21 先进微装置公司 以gpu加速的软件视频转码器
CN103826138A (zh) * 2014-03-12 2014-05-28 赛特斯信息科技股份有限公司 实现音视频内容多种码率和编码格式云转码的系统及方法
CN107113432A (zh) * 2014-12-11 2017-08-29 英特尔公司 用于并行视频编码的码率控制
CN104980752A (zh) * 2015-06-11 2015-10-14 武汉大千信息技术有限公司 利用cpu和gpu实现多路自适应并行转码的方法及系统
WO2018000224A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Encoding and decoding video
CN109792540A (zh) * 2016-10-01 2019-05-21 英特尔公司 利用每帧参数控制的硬件加速的视频编码方法和系统
CN108289228A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 一种全景视频转码方法、装置和设备
CN109213593A (zh) * 2017-07-04 2019-01-15 阿里巴巴集团控股有限公司 用于全景视频转码的资源分配方法、装置和设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327939A (zh) * 2020-02-25 2020-06-23 华南理工大学 一种分布式教学视频处理系统
CN111314740A (zh) * 2020-03-19 2020-06-19 杭州慧川智能科技有限公司 一种基于芯片间并行的高性能转码方法
CN111556365A (zh) * 2020-05-20 2020-08-18 浩云科技股份有限公司 视频转码方法和装置
CN112702605A (zh) * 2020-12-24 2021-04-23 百果园技术(新加坡)有限公司 视频转码系统、视频转码方法、电子设备和存储介质
CN113038279A (zh) * 2021-03-29 2021-06-25 京东方科技集团股份有限公司 视频转码方法、系统及电子设备
WO2022206960A1 (zh) * 2021-03-29 2022-10-06 京东方科技集团股份有限公司 视频转码方法、系统及电子设备
CN113038279B (zh) * 2021-03-29 2023-04-18 京东方科技集团股份有限公司 视频转码方法、系统及电子设备
WO2023216798A1 (zh) * 2022-05-13 2023-11-16 腾讯科技(深圳)有限公司 音视频的转码装置、方法、设备、介质及产品

Similar Documents

Publication Publication Date Title
CN110418144A (zh) 一种基于nvidia gpu实现一入多出转码多码率视频文件的方法
US11985353B2 (en) Method and apparatus for a low complexity transform unit partitioning structure for HEVC
US10594901B2 (en) Game engine application direct to video encoder rendering
US11006134B2 (en) Picture decoding and encoding methods and apparatuses, decoder, and encoder
JP6472429B2 (ja) Luma値を決定するための方法、装置、およびシステム
US8625666B2 (en) 4:4:4 color space video with 4:2:0 color space video encoders and decoders systems and methods
US20110032995A1 (en) Video encoding and decoding device
US20130251028A1 (en) Video encoding and decoding with channel prediction and error correction capability
EP2544451A3 (en) Method and system for digital decoding 3D stereoscopic video images
JP7023236B2 (ja) ピクチャデータを含む符号化単位をイントラ予測符号化/復号するための方法およびデバイスであって、前記イントラ予測符号化が予測木および変換木に依存する、方法およびデバイス
US20200007881A1 (en) Method for signaling a gradual temporal layer access picture
WO2017096823A1 (zh) 视频转码方法和装置系统
WO2007051202A3 (en) Accelerating video decoding using multiple processors
US8879838B2 (en) Image coding method and apparatus and image decoding method and apparatus, based on characteristics of regions of image
US20130315304A1 (en) Method for binarizing intra prediction mode and method, apparatus, and system for decoding intra prediction mode
CN113079406A (zh) 视频处理方法及装置
CN103503444A (zh) 在视频编码中用信号通知活动层的数量
US9287894B2 (en) Methods for encoding and decoding images, corresponding encoding and decoding devices and computer programs
US11438611B2 (en) Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
CN112261442B (zh) 一种用于视频hdr与sdr实时转码的方法及系统
KR20220122763A (ko) 비디오 코딩에서 참조 픽처 리샘플링을 위해 최악의 대역폭을 고려하기 위한 스케일링 윈도우 제한 방법 및 장치
US9398314B2 (en) Entropy coding efficiency enhancement utilizing energy distribution remapping
CN1867048A (zh) 一种视频节目中字幕的显示方法及系统
Guo et al. Quality-progressive coding for high bit-rate background frames on surveillance videos
CN108259904B (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20191105