CN111541941B - 一种移动端多编码器加速编码的方法 - Google Patents

一种移动端多编码器加速编码的方法 Download PDF

Info

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
Application number
CN202010377900.3A
Other languages
English (en)
Other versions
CN111541941A (zh
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.)
Hangzhou Xiaoying Innovation Technology Co ltd
Original Assignee
Hangzhou Xiaoying Innovation 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 Hangzhou Xiaoying Innovation Technology Co ltd filed Critical Hangzhou Xiaoying Innovation Technology Co ltd
Priority to CN202010377900.3A priority Critical patent/CN111541941B/zh
Publication of CN111541941A publication Critical patent/CN111541941A/zh
Application granted granted Critical
Publication of CN111541941B publication Critical patent/CN111541941B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching 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对应的编码队列,如果下一个编码队列还没有开始输出码流,则视频封装线程进入等待。
CN202010377900.3A 2020-05-07 2020-05-07 一种移动端多编码器加速编码的方法 Active CN111541941B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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