CN111541941B - 一种移动端多编码器加速编码的方法 - Google Patents
一种移动端多编码器加速编码的方法 Download PDFInfo
- Publication number
- CN111541941B CN111541941B CN202010377900.3A CN202010377900A CN111541941B CN 111541941 B CN111541941 B CN 111541941B CN 202010377900 A CN202010377900 A CN 202010377900A CN 111541941 B CN111541941 B CN 111541941B
- Authority
- CN
- China
- Prior art keywords
- coding
- instance
- control module
- video
- encoding
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000000872 buffer Substances 0.000 claims abstract description 36
- 238000005538 encapsulation Methods 0.000 claims abstract description 6
- 238000009795 derivation Methods 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000009877 rendering 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
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
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
本发明公开了一种移动端多编码器加速编码的方法。它具体包括如下步骤:解码处理后的视频帧输入进编码控制模块的缓存队列,其中缓存队列限制最大长度,同时控制视频解码处理的速率;编码控制模块启动第一个编码实例,并且将输入的视频帧分配到该编码实例的输入缓存中;如果编码控制模块检测到当前编码实例的输入缓存满了,编码控制模块就会启动新的编码实例并增加缓存队列长度,并且将新的视频帧分配给新的编码实例;编码后得到的压缩视频帧和对应的时间戳输出到压缩数据队列,视频封装在独立线程中进行,将每个编码实例的输出按照时间顺序连接,得到最终的输出。本发明的有益效果是:自适应,最大程度上提升编码资源的占用率,加速导出速度。
Description
技术领域
本发明涉及视频处理相关技术领域,尤其是指一种移动端多编码器加速编码的方法。
背景技术
在视频编辑的场景下,视频导出通常包含解码、处理以及编码。根据视频编辑的复杂性不同,解码、处理、编码所消耗的时间各不相同。
一般的方案中,分别对每一帧做解码、处理(渲染)、编码操作,在这种情况下,如果视频处理的耗时较长,一个编码器实例能够满足;但是如果视频解码/处理的耗时很短,编码部分就会成为瓶颈,这种情况下极有可能编码资源并没有占满。
普遍来说,其中处理和编码的耗时相对较长,尤其在纯转码的情况下,视频导出的瓶颈主要是在编码流程上。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种提升编码资源占用率的移动端多编码器加速编码的方法。
为了实现上述目的,本发明采用以下技术方案:
一种移动端多编码器加速编码的方法,具体包括如下步骤:
(1)解码处理后的视频帧输入进编码控制模块的缓存队列,其中缓存队列限制最大长度,同时控制视频解码处理的速率;
(2)编码控制模块启动第一个编码实例,并且将输入的视频帧分配到该编码实例的输入缓存中;
(3)如果编码控制模块检测到当前编码实例的输入缓存满了,即该编码实例的编码速度低于解码处理的速度,编码控制模块就会根据移动端当前的内存状态和设备自身的硬件能力来决定启动新的编码实例并增加缓存队列长度,并且将新的视频帧分配给新的编码实例;如果编码控制模块检测到当前编码实例的输入缓存未满,则直接进入下一步;
(4)编码后得到的压缩视频帧和对应的时间戳输出到压缩数据队列,视频封装在独立线程中进行,将每个编码实例的输出按照时间顺序连接,得到最终的输出。
在视频处理和视频编码的情况下,如果视频处理速度高于视频编码的速度,能够自动启动新的编码实例;反之如果视频处理速度低于视频编码的速度,则只会使用一个编码实例(节省编码器实例开销);本发明的主要特点是自适应,在不确定视频处理性能和编码性能的场景中(移动设备),最大程度上提升编码资源的占用率,进而加速导出速度。
作为优选,在步骤(1)中,由于移动端上单一进程能占用的内存资源有限,故而缓存队列长度不能无限长,需要根据移动端当前内存状态、编码尺寸、gop长度来决定缓存队列长度。
作为优选,在步骤(3)中,编码控制模块还会获取当前处于空闲状态的编码实例,并且将新的视频帧分配给空闲状态的编码实例。
作为优选,在步骤(4)中,当编码实例消耗完输入缓存里的视频帧后,就会重新处于空闲状态,编码控制模块在下次可重新分配。
作为优选,在步骤(4)中,编码控制模块会不断查询各编码实例是否长时间处于空闲状态,如果发现有编码实例长时间处于空闲状态,则编码控制模块会销毁当前编码实例并同时减少缓存队列长度。
作为优选,其中每个编码实例的第一帧必须是关键帧并且包含头信息,如果每个编码实例的编码器类型相同,并且编码参数也相同,则忽略保存重复的头信息;每一帧码流对应的时间戳信息也对应保存在缓存队列中。
作为优选,在步骤(4)中,当某个编码实例输出的一个gop都写入到文件后,查找下一个gop对应的编码队列,如果下一个编码队列还没有开始输出码流,则视频封装线程进入等待。
本发明的有益效果是:自适应,在不确定视频处理性能和编码性能的场景中(移动设备),最大程度上提升编码资源的占用率,进而加速导出速度。
附图说明
图1是本发明的方法流程框图;
图2是本发明的方法流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1、图2所述的实施例中,一种移动端多编码器加速编码的方法,具体包括如下步骤:
(1)解码处理后的视频帧输入进编码控制模块的缓存队列,其中缓存队列限制最大长度,同时控制视频解码处理的速率;由于移动端上单一进程能占用的内存资源有限,故而缓存队列长度不能无限长,需要根据移动端当前内存状态、编码尺寸、gop长度来决定缓存队列长度。比如:编码1920x1080视频,gop长度为30帧,缓存队列缓存RGB32纹理,一个gop需要占用的内存为250M左右。
(2)编码控制模块启动第一个编码实例,并且将输入的视频帧分配到该编码实例的输入缓存中;
(3)如果编码控制模块检测到当前编码实例的输入缓存满了,即该编码实例的编码速度低于解码处理的速度,编码控制模块就会根据移动端当前的内存状态和设备自身的硬件能力来决定启动新的编码实例并增加缓存队列长度,并且将新的视频帧分配给新的编码实例;如果编码控制模块检测到当前编码实例的输入缓存未满,则直接进入下一步;编码控制模块还会获取当前处于空闲状态的编码实例,并且将新的视频帧分配给空闲状态的编码实例。比如:编码1920x1080视频,gop长度为30帧,当设备空闲内存大于250M时,认为可以增加当前的缓存队列长度并启用新的编码实例。如果采用硬件编码,还需要综合考虑设备的GPU能力是否能够支持启用新的编码实例。如果当前设备硬件能力无法支持新的编码实例,则解码线程进入等待,降低解码速率。
(4)编码后得到的压缩视频帧和对应的时间戳输出到压缩数据队列,视频封装在独立线程中进行,将每个编码实例的输出按照时间顺序连接,得到最终的输出。当编码实例消耗完输入缓存里的视频帧后,就会重新处于空闲状态,编码控制模块在下次可重新分配。编码控制模块会不断查询各编码实例是否长时间处于空闲状态,如果发现有编码实例长时间处于空闲状态,则编码控制模块会销毁当前编码实例并同时减少缓存队列长度。当某个编码实例输出的一个gop都写入到文件后,查找下一个gop对应的编码队列,如果下一个编码队列还没有开始输出码流,则视频封装线程进入等待。
其中每个编码实例的第一帧必须是关键帧并且包含头信息(sps/pps),如果每个编码实例的编码器类型相同,并且编码参数也相同,则忽略保存重复的头信息;每一帧码流对应的时间戳信息也对应保存在缓存队列中。
解码、处理(渲染)、编码、IO分别在不同的线程,之间通过管道进行单向数据传递(流水线);由于解码、处理、编码有可能由设备的不同模块来处理(比如硬件视频加速模块、GPU),因此这样可以避免不相关功能之间的相互影响。在解码或处理耗时小于编码的情况下,待编码的视频帧数量增长就会多于编码器输入的消耗,这时就会开启新的编码器,分别编码不同时间段的视频,比如以一个GOP为分段。在解码或处理的耗时大于编码的情况下,根据本方案,只会存在一个编码器,不会创建新的编码实例。即在视频处理和视频编码的情况下,如果视频处理速度高于视频编码的速度,能够自动启动新的编码实例;反之如果视频处理速度低于视频编码的速度,则只会使用一个编码实例(节省编码器实例开销);本发明的主要特点是自适应,在不确定视频处理性能和编码性能的场景中(移动设备),最大程度上提升编码资源的占用率,进而加速导出速度。
Claims (7)
1.一种移动端多编码器加速编码的方法,其特征是,具体包括如下步骤:
(1)解码处理后的视频帧输入进编码控制模块的缓存队列,其中缓存队列限制最大长度,同时控制视频解码处理的速率;
(2)编码控制模块启动第一个编码实例,并且将输入的视频帧分配到该编码实例的输入缓存中;
(3)如果编码控制模块检测到当前编码实例的输入缓存满了,即该编码实例的编码速度低于解码处理的速度,编码控制模块就会根据移动端当前的内存状态和设备自身的硬件能力来决定启动新的编码实例并增加缓存队列长度,并且将新的视频帧分配给新的编码实例;如果编码控制模块检测到当前编码实例的输入缓存未满,则直接进入下一步;
(4)编码后得到的压缩视频帧和对应的时间戳输出到压缩数据队列,视频封装在独立线程中进行,将每个编码实例的输出按照时间顺序连接,得到最终的输出。
2.根据权利要求1所述的一种移动端多编码器加速编码的方法,其特征是,在步骤(1)中,由于移动端上单一进程能占用的内存资源有限,故而缓存队列长度不能无限长,需要根据移动端当前内存状态、编码尺寸、gop长度来决定缓存队列长度。
3.根据权利要求1所述的一种移动端多编码器加速编码的方法,其特征是,在步骤(3)中,编码控制模块还会获取当前处于空闲状态的编码实例,并且将新的视频帧分配给空闲状态的编码实例。
4.根据权利要求1或2所述的一种移动端多编码器加速编码的方法,其特征是,在步骤(4)中,当编码实例消耗完输入缓存里的视频帧后,就会重新处于空闲状态,编码控制模块在下次可重新分配。
5.根据权利要求4所述的一种移动端多编码器加速编码的方法,其特征是,在步骤(4)中,编码控制模块会不断查询各编码实例是否长时间处于空闲状态,如果发现有编码实例长时间处于空闲状态,则编码控制模块会销毁当前编码实例并同时减少缓存队列长度。
6.根据权利要求1所述的一种移动端多编码器加速编码的方法,其特征是,其中每个编码实例的第一帧必须是关键帧并且包含头信息,如果每个编码实例的编码器类型相同,并且编码参数也相同,则忽略保存重复的头信息;每一帧码流对应的时间戳信息也对应保存在缓存队列中。
7.根据权利要求2所述的一种移动端多编码器加速编码的方法,其特征是,在步骤(4)中,当某个编码实例输出的一个gop都写入到文件后,查找下一个gop对应的编码队列,如果下一个编码队列还没有开始输出码流,则视频封装线程进入等待。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010377900.3A CN111541941B (zh) | 2020-05-07 | 2020-05-07 | 一种移动端多编码器加速编码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010377900.3A CN111541941B (zh) | 2020-05-07 | 2020-05-07 | 一种移动端多编码器加速编码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111541941A CN111541941A (zh) | 2020-08-14 |
CN111541941B true CN111541941B (zh) | 2021-10-29 |
Family
ID=71975339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010377900.3A Active CN111541941B (zh) | 2020-05-07 | 2020-05-07 | 一种移动端多编码器加速编码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111541941B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929605A (zh) * | 2006-08-07 | 2007-03-14 | 爱普拉斯通信技术(北京)有限公司 | 视频图像数据的流控装置和方法 |
EP2426940A1 (en) * | 2003-09-15 | 2012-03-07 | The DirecTV Group, Inc. | Method and system for adaptive transcoding and transrating in a video network |
CN103716644A (zh) * | 2013-12-05 | 2014-04-09 | 南京肯麦思智能技术有限公司 | 一种h264多粒度并行的处理方法 |
CN104768026A (zh) * | 2015-04-17 | 2015-07-08 | 中国工商银行股份有限公司 | 一种多信道音视频转码装置 |
CN105340215A (zh) * | 2013-04-17 | 2016-02-17 | 佩克普股份公司 | 编码器的动态分配 |
CN105847790A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 一种码流传输方法及装置 |
WO2017127300A1 (en) * | 2016-01-20 | 2017-07-27 | Arris Enterprises Llc | Multistage panic rate control scheme for encoders |
CN109429070A (zh) * | 2017-08-23 | 2019-03-05 | 杭州海康威视***技术有限公司 | 一种移动终端视频编码方法、装置及移动终端 |
CN110213598A (zh) * | 2018-05-31 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种视频转码***、方法及相关产品 |
CN110677715A (zh) * | 2019-10-11 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 一种解码方法、解码器、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006279262A (ja) * | 2005-03-28 | 2006-10-12 | Pioneer Electronic Corp | 符号化映像変換装置、変換方法及びそのプログラム |
US20170094294A1 (en) * | 2015-09-28 | 2017-03-30 | Cybrook Inc. | Video encoding and decoding with back channel message management |
-
2020
- 2020-05-07 CN CN202010377900.3A patent/CN111541941B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2426940A1 (en) * | 2003-09-15 | 2012-03-07 | The DirecTV Group, Inc. | Method and system for adaptive transcoding and transrating in a video network |
CN1929605A (zh) * | 2006-08-07 | 2007-03-14 | 爱普拉斯通信技术(北京)有限公司 | 视频图像数据的流控装置和方法 |
CN105340215A (zh) * | 2013-04-17 | 2016-02-17 | 佩克普股份公司 | 编码器的动态分配 |
CN103716644A (zh) * | 2013-12-05 | 2014-04-09 | 南京肯麦思智能技术有限公司 | 一种h264多粒度并行的处理方法 |
CN105847790A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 一种码流传输方法及装置 |
CN104768026A (zh) * | 2015-04-17 | 2015-07-08 | 中国工商银行股份有限公司 | 一种多信道音视频转码装置 |
WO2017127300A1 (en) * | 2016-01-20 | 2017-07-27 | Arris Enterprises Llc | Multistage panic rate control scheme for encoders |
CN109429070A (zh) * | 2017-08-23 | 2019-03-05 | 杭州海康威视***技术有限公司 | 一种移动终端视频编码方法、装置及移动终端 |
CN110213598A (zh) * | 2018-05-31 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种视频转码***、方法及相关产品 |
CN110677715A (zh) * | 2019-10-11 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 一种解码方法、解码器、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Cloud-based eHealth video encoding system for real time thermographic streaming: Performance evaluation;M. Garcia-Pineda et al.;《2017 IEEE International Conference on Communications (ICC)》;20170731;全文 * |
分布式视频增强转码***设计与优化;张旭升;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑(月刊),2020年第01期》;20200115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111541941A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110430441B (zh) | 一种云手机视频采集方法、***、装置及存储介质 | |
US20110032995A1 (en) | Video encoding and decoding device | |
JPH0865687A (ja) | 圧縮ビデオ・データの伸張システム | |
US20040260739A1 (en) | System and method for accelerating arithmetic decoding of video data | |
US20190098324A1 (en) | Parallel parsing in a video decoder | |
US20090180545A1 (en) | Hypothetical reference decoder | |
KR20130114734A (ko) | 동적인 비디오 스위칭 | |
CN110830805A (zh) | 一种多分辨率输出的分布式文件转码方法及装置 | |
US9020284B2 (en) | Image encoding apparatus | |
CN112087631A (zh) | 基于gpu同步并行视频编解码与流媒体传输***及方法 | |
CN111541941B (zh) | 一种移动端多编码器加速编码的方法 | |
US10382750B2 (en) | Region-based processing of predicted pixels | |
CN110868610B (zh) | 流媒体传输方法、装置、服务器及存储介质 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN105338371A (zh) | 一种多媒体转码调度方法和装置 | |
CN112218082B (zh) | 一种基于可重构的多视频编码加速设计的方法及*** | |
CN115297331A (zh) | 一种视频数据处理方法、装置、设备及*** | |
WO2008031039A2 (en) | Audio/video recording and encoding | |
CN112543373A (zh) | 一种转码控制方法、装置及电子设备 | |
US11671976B2 (en) | Early notification for transmission of encoded video data | |
CN110677664B (zh) | 一种面向4k/8k超高清视频编码的低抖动码率控制方法 | |
CN113055680B (zh) | 一种分布式转码方法 | |
CN115942000B (zh) | H.264格式的视频流转码方法及装置、设备及介质 | |
US20220012004A1 (en) | Managing display data | |
US20240146975A1 (en) | Dynamic queuing of entropy-coded data for transmission in a bitstream |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 22nd floor, block a, Huaxing Times Square, 478 Wensan Road, Xihu District, Hangzhou, Zhejiang 310000 Applicant after: Hangzhou Xiaoying Innovation Technology Co.,Ltd. Address before: 16 / F, HANGGANG Metallurgical Science and technology building, 294 Tianmushan Road, Xihu District, Hangzhou City, Zhejiang Province, 310012 Applicant before: HANGZHOU QUWEI SCIENCE & TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |