CN114051143A - 一种视频流编解码任务调度方法 - Google Patents
一种视频流编解码任务调度方法 Download PDFInfo
- Publication number
- CN114051143A CN114051143A CN202111292593.XA CN202111292593A CN114051143A CN 114051143 A CN114051143 A CN 114051143A CN 202111292593 A CN202111292593 A CN 202111292593A CN 114051143 A CN114051143 A CN 114051143A
- Authority
- CN
- China
- Prior art keywords
- video stream
- decoding
- task
- decoded
- computing power
- 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
Images
Classifications
-
- 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
一种视频流编解码任务调度方法,所述方法包括步骤:获取待编解码视频流任务;计算所述待编解码视频流任务所需的目标算力;获取当前编解码设备的剩余算力;根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务。本申请提供的一种视频流编解码任务调度方法在充分利用视频编解码设备计算能力的同时可保证视频传输的实时性,提高用户体验,提高不同场景适应能力和视频编解码设备利用率,节约成本。
Description
技术领域
本发明属于视频流编解码技术领域,具体涉及一种视频流编解码任务调度方法。
背景技术
视频流编解码是对视频流数据进行压缩或者解压缩的过程,需要消耗大量的计算资源。虽然CPU、GPU和其它编解码设备都能执行视频流编解码任务,但是它们的性能和效率不尽相同,通常视频编解码专用设备的效率最高,GPU次之,CPU的效率最低。而且,CPU还需要执行其他任务。因此,在视频流编解码任务较多的系统中,通常会部署一定数量的显卡(GPU)或者视频编解码专用设备承担视频流编解码任务。
现有技术通常是将视频流编解码任务固定交给某单一种类视频编解码设备执行。由于系统在不同场景下,视频硬编解码任务不平衡,为了保证在视频流编解码任务重的时候视频传输的流畅,通常会选择部署更多的视频流编解码设备,导致成本增加,或者选择在视频流编解码任务重的时候降低用户体验,而此时CPU可能仍然处于空闲状态,没有被充分利用。
例如,在日常办公情况下,云桌面场景的视频流编解码任务负载较轻,视频会议场景的视频流编解码任务较重,如果部署少量或不部署硬编解码设备,在视频会议场景会出现算力不足导致视频延时、丢帧、卡顿等情况,严重影响用户体验,如果部署大量硬编解码设备,在平时大部分场景派不上用场,成本高,设备利用率低,且占用设备扩展空间。
因此固定选择一种视频编解码设备执行视频流编解码任务,不能同时充分利用系统中多种视频编解码设备(包括CPU)的计算性能。
发明内容
为解决上述问题,本发明提供了一种视频流编解码任务调度方法,所述方法包括步骤:
获取待编解码视频流任务;
计算所述待编解码视频流任务所需的目标算力;
获取当前编解码设备的剩余算力;
根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务。
优选地,所述计算所述待编解码视频流任务所需的目标算力包括步骤:
获取所述待编解码视频流任务的分辨率;
获取所述待编解码视频流任务的刷新率;
根据所述分辨率和所述刷新率计算所述目标算力。
优选地,所述获取当前编解码设备的剩余算力包括步骤:
获取所述当前编解码设备的种类;
根据所述种类获取所述当前编解码设备的总算力;
获取所述当前编解码设备的使用算力;
根据所述总算力和所述使用算力计算所述剩余算力。
优选地,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务包括步骤:
获取视频编解码专用设备的第一剩余算力;
判断所述第一剩余算力是否大于等于所述目标算力;
若是,使用所述视频编解码专用设备处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
优选地,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取GPU的第二剩余算力;
判断所述第二剩余算力是否大于等于所述目标算力;
若是,使用所述GPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
优选地,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取CPU的第三剩余算力;
判断所述第三剩余算力是否大于等于所述目标算力;
若是,使用所述CPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
优选地,在所述获取待编解码视频流任务之前还包括步骤:
获取视频编解码专用设备、GPU和CPU的通用性;
获取所述视频编解码专用设备、所述GPU和所述CPU的延时性;
获取所述视频编解码专用设备、所述GPU和所述CPU的能耗性;
获取所述视频编解码专用设备、所述GPU和所述CPU的可扩展性;
根据所述通用性、所述延时性、所述能耗性和所述可扩展性制定编解码设备调度顺序。
本申请提供的一种视频流编解码任务调度方法在充分利用视频编解码设备计算能力的同时可保证视频传输的实时性,提高用户体验,提高不同场景适应能力和视频编解码设备利用率,节约成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种视频流编解码任务调度方法的流程示意图;
图2是本发明提供的一种视频流编解码任务调度方法的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
缩略语和关键术语定义:
视频流:是指在网络中使用流式传输技术进行传输的连续实时的视频数据流。
视频流编解码:是指对视频流数据进行压缩或者解压缩的过程。通常这种压缩属于有损数据压缩,常见编码格式包括MPEG、H.264、H.265、vp8、vp9等。对视频流编码的目的是为了减少视频流数据在实际传输中所占带宽。
视频编解码设备:是指能对视频数据进行编码和解码的硬件设备,包括:CPU、GPU(显卡)、专用视频编解码设备等。
软编解码:是指使用软件进行编解码的过程,实际使用CPU承担编解码工作。
硬编解码:是指使用CPU以外的编解码设备完成编解码的过程。优点是效率高,功耗低,缺点是需要额外的硬件设备,成本高。
计算负载:是指编解码过程消耗的计算资源量。
满载:是指计算负载达到设备额定值。
过载:是指计算负载超过设备额定值。将会使编解码任务发生延迟或者丢弃。
FPS:每秒传输帧数(Frames Per Second),又称帧率,是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。
1080p30:分辨率为1920×1080,帧率为30的视频流。1080p是一种视频显示格式,通常1080p的画面分辨率为1920×1080,30表示帧率。同类写法以此类推。
如图1,在本申请实施例中,本发明提供了一种视频流编解码任务调度方法,所述方法包括步骤:
S1:获取待编解码视频流任务;
S2:计算所述待编解码视频流任务所需的目标算力;
在本申请实施例中,所述计算所述待编解码视频流任务所需的目标算力包括步骤:
获取所述待编解码视频流任务的分辨率;
获取所述待编解码视频流任务的刷新率;
根据所述分辨率和所述刷新率计算所述目标算力。
在本申请实施例中,按照以往经验,通过对常用编解码算法分析和实际测试结果可知,视频流编解码任务对设备算力的消耗与分辨率和刷新率基本成正比关系。因此可以定义1单位H.264编码算力为分辨率1*1fps为1的视频流实时编码为H.264格式需要消耗的算力。由此可以通过测试或评估得到设备对应不同编码格式的算力,例如:1个x86平台8核2.5GHz CPU在使用AVX512指令集情况下能实时编码1080p240fps视频流,相当于约1920*1080*240=480M(兆)H.264编码算力(以实际测试结果为准)。以此类推,同样的方法可以计算视频流编解码任务对应的算力消耗,例如:实时编码1080p240fps视频流需要消耗480M(兆)H.264编码算力。
在本申请实施例中,当计算待编解码视频流任务所需的目标算力时,首先可以获取待编解码视频流任务的分辨率和刷新率,然后根据上述方法计算得到目标算力。
S3:获取当前编解码设备的剩余算力;
在本申请实施例中,所述获取当前编解码设备的剩余算力包括步骤:
获取所述当前编解码设备的种类;
根据所述种类获取所述当前编解码设备的总算力;
获取所述当前编解码设备的使用算力;
根据所述总算力和所述使用算力计算所述剩余算力。
在本申请实施例中,当需要获取当前编解码设备的剩余算力时,首先获取所述当前编解码设备的种类,比如该编解码设备为GPU或CPU等,然后根据所述种类查询对应设备的总算力,接着获取所述当前编解码设备的使用算力,也即该设备已经被占用的算力,接着根据所述总算力和所述使用算力计算所述剩余算力。
在本申请实施例中,在所述获取待编解码视频流任务之前还包括步骤:
获取视频编解码专用设备、GPU和CPU的通用性;
获取所述视频编解码专用设备、所述GPU和所述CPU的延时性;
获取所述视频编解码专用设备、所述GPU和所述CPU的能耗性;
获取所述视频编解码专用设备、所述GPU和所述CPU的可扩展性;
根据所述通用性、所述延时性、所述能耗性和所述可扩展性制定编解码设备调度顺序。
在本申请实施例中,由于视频编解码设备可能有多种,如何在多种视频编解码设备中进行调度是关键问题。可以对多种视频编解码设备进行评估,根据通用性、延时性、能耗性、可扩展性制定设备优先级顺序,例如:视频编解码专用设备>GPU>CPU,当需要选择视频编解码设备进行视频编解码时,可以按照优先级顺序降序调度使用。
S4:根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务。
在本申请实施例中,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务包括步骤:
获取视频编解码专用设备的第一剩余算力;
判断所述第一剩余算力是否大于等于所述目标算力;
若是,使用所述视频编解码专用设备处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
在本申请实施例中,当根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务时,首先获取视频编解码专用设备的第一剩余算力,并判断所述第一剩余算力是否大于等于所述目标算力,如果判断为是,则说明视频编解码专用设备能够支持该待编解码视频流任务,此时使用所述视频编解码专用设备处理所述待编解码视频流任务;如果判断为否,则说明视频编解码专用设备不能够支持该待编解码视频流任务,此时返回所述计算所述待编解码视频流任务所需的目标算力步骤。
在本申请实施例中,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取GPU的第二剩余算力;
判断所述第二剩余算力是否大于等于所述目标算力;
若是,使用所述GPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
如图2,在本申请实施例中,当根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务时,由于视频编解码专用设备不能够支持该待编解码视频流任务,此时获取GPU的第二剩余算力,并判断所述第二剩余算力是否大于等于所述目标算力;如果判断为是,则说明GPU能够支持该待编解码视频流任务,此时使用GPU处理所述待编解码视频流任务;如果判断为否,则说明GPU不能够支持该待编解码视频流任务,此时返回所述计算所述待编解码视频流任务所需的目标算力步骤。
在本申请实施例中,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取CPU的第三剩余算力;
判断所述第三剩余算力是否大于等于所述目标算力;
若是,使用所述CPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
如图2,在本申请实施例中,当根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务时,由于视频编解码专用设备和GPU均不能够支持该待编解码视频流任务,此时获取CPU的第三剩余算力,并判断所述第三剩余算力是否大于等于所述目标算力;如果判断为是,则说明CPU能够支持该待编解码视频流任务,此时使用CPU处理所述待编解码视频流任务;如果判断为否,则说明CPU不能够支持该待编解码视频流任务,此时返回所述计算所述待编解码视频流任务所需的目标算力步骤。
本申请提供的一种视频流编解码任务调度方法在充分利用视频编解码设备计算能力的同时可保证视频传输的实时性,提高用户体验,提高不同场景适应能力和视频编解码设备利用率,节约成本。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (7)
1.一种视频流编解码任务调度方法,其特征在于,所述方法包括步骤:
获取待编解码视频流任务;
计算所述待编解码视频流任务所需的目标算力;
获取当前编解码设备的剩余算力;
根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务。
2.根据权利要求1所述的视频流编解码任务调度方法,其特征在于,所述计算所述待编解码视频流任务所需的目标算力包括步骤:
获取所述待编解码视频流任务的分辨率;
获取所述待编解码视频流任务的刷新率;
根据所述分辨率和所述刷新率计算所述目标算力。
3.根据权利要求1所述的视频流编解码任务调度方法,其特征在于,所述获取当前编解码设备的剩余算力包括步骤:
获取所述当前编解码设备的种类;
根据所述种类获取所述当前编解码设备的总算力;
获取所述当前编解码设备的使用算力;
根据所述总算力和所述使用算力计算所述剩余算力。
4.根据权利要求1所述的视频流编解码任务调度方法,其特征在于,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务包括步骤:
获取视频编解码专用设备的第一剩余算力;
判断所述第一剩余算力是否大于等于所述目标算力;
若是,使用所述视频编解码专用设备处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
5.根据权利要求4所述的视频流编解码任务调度方法,其特征在于,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取GPU的第二剩余算力;
判断所述第二剩余算力是否大于等于所述目标算力;
若是,使用所述GPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
6.根据权利要求4所述的视频流编解码任务调度方法,其特征在于,所述根据所述目标算力和所述剩余算力调度编解码设备处理所述待编解码视频流任务还包括步骤:
获取CPU的第三剩余算力;
判断所述第三剩余算力是否大于等于所述目标算力;
若是,使用所述CPU处理所述待编解码视频流任务;
若否,返回所述计算所述待编解码视频流任务所需的目标算力步骤。
7.根据权利要求1所述的视频流编解码任务调度方法,其特征在于,在所述获取待编解码视频流任务之前还包括步骤:
获取视频编解码专用设备、GPU和CPU的通用性;
获取所述视频编解码专用设备、所述GPU和所述CPU的延时性;
获取所述视频编解码专用设备、所述GPU和所述CPU的能耗性;
获取所述视频编解码专用设备、所述GPU和所述CPU的可扩展性;
根据所述通用性、所述延时性、所述能耗性和所述可扩展性制定编解码设备调度顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111292593.XA CN114051143A (zh) | 2021-11-03 | 2021-11-03 | 一种视频流编解码任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111292593.XA CN114051143A (zh) | 2021-11-03 | 2021-11-03 | 一种视频流编解码任务调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114051143A true CN114051143A (zh) | 2022-02-15 |
Family
ID=80206970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111292593.XA Pending CN114051143A (zh) | 2021-11-03 | 2021-11-03 | 一种视频流编解码任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114051143A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055715A (zh) * | 2022-05-30 | 2023-05-02 | 荣耀终端有限公司 | 编解码器的调度方法及电子设备 |
-
2021
- 2021-11-03 CN CN202111292593.XA patent/CN114051143A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116055715A (zh) * | 2022-05-30 | 2023-05-02 | 荣耀终端有限公司 | 编解码器的调度方法及电子设备 |
CN116055715B (zh) * | 2022-05-30 | 2023-10-20 | 荣耀终端有限公司 | 编解码器的调度方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110381322B (zh) | 视频流解码方法、装置、终端设备及存储介质 | |
US8031766B2 (en) | Performance adaptive video encoding with concurrent decoding | |
US11863769B2 (en) | Bandwidth saving architecture for scalable video coding | |
US20090154572A1 (en) | Method and apparatus for video decoding based on a multi-core processor | |
KR20150096639A (ko) | 미디어 작업부하 스케줄러 | |
US20040267954A1 (en) | Method and system for srvicing streaming media | |
JP2009502069A (ja) | 画像ストリーミング・システム内の圧縮レベルを切り換えるシステム、方法、及び媒体 | |
US9395796B2 (en) | Dynamic graphics geometry preprocessing frequency scaling and prediction of performance gain | |
US11470327B2 (en) | Scene aware video content encoding | |
JP7093829B2 (ja) | ビデオトランスコーディング処理方法、ビデオトランスコーディング処理装置、電子機器及び記憶媒体 | |
CN111787322B (zh) | 视频编码的方法、装置、电子设备及计算机可读存储介质 | |
Nogues et al. | A DVFS based HEVC decoder for energy-efficient software implementation on embedded processors | |
US20220405128A1 (en) | Submission and synchronization techniques for scheduling and load balancing hardware accelerated tasks on heterogeneous platforms | |
CN114827662B (zh) | 视频分辨率自适应调节方法、装置、设备和存储介质 | |
CN114051143A (zh) | 一种视频流编解码任务调度方法 | |
EP3771210A1 (en) | Content and quantization adaptive coding structure decisions for video coding | |
CN110784731B (zh) | 一种数据流转码方法、装置、设备及介质 | |
TW201842775A (zh) | 用於在視訊編碼中的順延後處理的系統及方法 | |
US20230018087A1 (en) | Data coding method and apparatus, and computer-readable storage medium | |
CN113794887A (zh) | 一种游戏引擎中视频编码的方法及相关设备 | |
Radicke et al. | Many-core HEVC encoding based on wavefront parallel processing and GPU-accelerated motion estimation | |
Tang et al. | Hybrid remote display protocol for mobile thin client computing | |
US11647153B1 (en) | Computer-implemented method, device, and computer program product | |
CN117979062B (zh) | 一种基于编码流引用计数的实时视频流传输方法及装置 | |
WO2023087177A1 (en) | Method and system of video coding with fast low-latency bitstream size control |
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 |