CN104539972A - 一种多核处理器中视频并行解码的控制方法和装置 - Google Patents
一种多核处理器中视频并行解码的控制方法和装置 Download PDFInfo
- Publication number
- CN104539972A CN104539972A CN201410746284.9A CN201410746284A CN104539972A CN 104539972 A CN104539972 A CN 104539972A CN 201410746284 A CN201410746284 A CN 201410746284A CN 104539972 A CN104539972 A CN 104539972A
- Authority
- CN
- China
- Prior art keywords
- decoding
- nucleoid
- core
- task
- decoding process
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种多核处理器中视频并行解码的控制方法和装置,所述方法包括:获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。通过本发明的方法,能提高资源利用率,提高解码效率。
Description
技术领域
本发明涉及视频解码领域,尤其涉及一种多核处理器中视频并行解码的控制方法和装置。
背景技术
随着现代科技的高速发展,多媒体通信在信息化过程中得到日益广泛、深入的应用,已经成为通信领域中的主要通信方式。以视频通信为代表的多媒体通信——特别是移动视频通信,更是现代社会生活中的一种非常重要的交流手段。为了获得高质量和高分辨率的视频内容,视频编码效率不断提高,与之相应地,视频编解码的复杂度也大幅提升。在这个充斥着视频内容的时代,迫切需要提高视频解码的效率。由此,相比单核处理器,多核处理器以其高效的运算性能及在低功耗方面的显著优势,给视频解码效率的提高带来了可能性。如何在多核平台上实现并行解码,已经引起相关领域研发人员越来越多的关注。
现有技术中,在多核平台上实现并行解码,一般着重于在一、两种多核处理平台或内核数固定的嵌入式平台上实现,这两种实现方法对拥有不同内核数量的多核处理器平台不具备良好的兼容性和适配性,例如,视频解码在双核处理器平台上有着很高的加速比,但运行在配置四核或更多处理器内核的平台上却仍然只能使用两个核完成解码;或者,即使能够在更多的核上实现解码,但由于每个核只能执行解码流程中一个固定的步骤,而导致当一个核没有任务时,该核的资源被浪费,具体的,如满足H.264标准进行编码的视频流,其解码的流程至少包括以下六个解码子流程:熵解码、反量化、反变换、运动补偿、帧内预测和环路滤波,在现有技术中使用一个核去完成熵解码而用其它的多个核完成其余的解码子流程,当用于熵解码的核没有解码任务时,该核的资源则不能被利用,从而就造成核资源的浪费。综上,现有的多核并行解码的方法,都未能有效利用多核处理器的资源,而导致解码效率低下。
发明内容
本发明的目的是提供一种多核处理器中视频并行解码的控制方法和装置,以克服相关技术中未能有效利用多核处理器的资源导致解码效率低的问题。
本发明提供一种多核处理器中视频并行解码的控制方法,包括:
获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;
当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
其中,所述解码流程包括第一解码流程集合和第二解码流程集合,所述第一解码流程集合和所述第二解码流程集合均各自包括至少一个解码子流程,且,所述第一解码流程集合和所述第二解码流程集合没有交集;
所述执行解码任务的核包括:执行所述第一解码流程集合的第一类核,和,执行所述第二解码流程集合的第二类核。
其中,根据以下方式确定超负载:
当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;
所述对执行解码任务的核所执行的解码子流程进行调整,通过以下方式中的至少一种方式实现:
方式一:指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务;
方式二:指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。
其中,所述第一解码流程集合中的一个元素至少为熵解码;
所述获取执行解码任务的每个核的负载之前,所述方法还包括:
根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定所述待解码视频流的每一帧图像在所述第一类核中的解码方式和所述第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要所述待解码视频流中除该数据块之外的其他数据的最小数据块;
其中,所述第一类核的解码方式包括以下中的至少一种:帧级并行解析方式、条带级并行解析方式、WPP并行解析方式;
所述第二类核的解码方式包括以下中的至少一种:帧级并行重构方式、条带级并行重构方式、块/块行级并行重构方式。
其中,所述当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载,包括:
预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
当判断结果为是时,则所需解码时间较长的一类核超负载。
其中,所述方法还包括:
针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态。
另一方面,本发明还提供一种多核处理器中视频并行解码的控制装置,所述装置包括:
获取模块,用于获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;
调整模块,用于当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
所述解码流程由第一解码流程集合和第二解码流程集合组成,所述第一解码流程集合和所述第二解码流程集合均各自包括至少一个解码子流程,且,所述第一解码流程集合和所述第二解码流程集合没有交集;
所述执行解码任务的核包括:执行所述第一解码流程集合的第一类核,和,执行所述第二解码流程集合的第二类核。
所述装置还包括:
超负载确定模块,用于当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;
所述调整模块,包括:
第一调整单元,用于指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务;
第二调整单元,用于指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。
所述装置还包括:
解码方式确定模块,用于所述第一解码流程集合中至少包括熵解码时;所述获取模块获取执行解码任务的每个核的负载之前,根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定所述待解码视频流的每一帧图像在所述第一类核中的解码方式和所述第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要所述待解码视频流中除该数据块之外的其他数据的最小数据块;
其中,所述第一类核的解码方式包括以下中的至少一种:帧级并行解析方式、条带级并行解析方式、WPP并行解析方式;
所述第二类核的解码方式包括以下中的至少一种:帧级并行重构方式、条带级并行重构方式、块/块行级并行重构方式。
所述超负载确定模块包括:
预测单元,用于预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
判断单元,用于判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
确定单元,用于当判断结果为是时,则所需解码时间较长的一类核超负载。
所述装置还包括:
休眠模块,用于针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态。
本发明至少具有以下有益效果:在多核处理器中实现并行解码,通过将解码流程预先分配给至少两个核,并根据每个核的负载情况,改变至少一个核所执行的解码流程,实现对核资源的合理分配,从而提高资源的利用率,进而提高并行解码的效率。此外,本发明实施例中,预先将解码流程合理地分配为第一流程集合和第二流程集合,并由第一类核执行第一流程集合,第二类核执行第二流程集合,视第一类核和第二类核的总负载情况,通过调整第一类核的数量、或第二类核的数量,又或者通过改变不同流程集合内所包含的解码流程的子流程,降低超负载的核的负载,并提高低负载核的负载,从而进一步实现对多核处理器的资源的合理利用,提高并行解码的效率。再一方面,进一步的,本发明实施例中,第一类核对应解析任务,第二类核对应重构任务,通过分析待解码视频流的特性,确定出可独立进行解析的数据块,例如可独立进行熵解码的最小数据块,然后为每一类核根据待处理视频流的特性,确定出适用的并行解码方式,使得第一类核和第二类核之间可以以不同的并行解码方式执行解码任务,从而进一步提高并行解码的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1为本发明实施例中多核处理器中视频并行解码的控制方法的示例性流程图之一;
图2为本发明实施例中一种解码流程示意图;
图3为本发明实施例中执行解码任务的核所执行的解码子流程的示意图;
图4为本发明实施例中第一类核的解码方式的示意图;
图5为本发明实施例中第二类核的解码方式的示意图;
图6为本发明实施例中第一类核的解码方式和第二类核的解码方式进行组合的示意图;
图7为本发明实施例中任务驱动方式的示意图;
图8为本发明实施例中多核处理器中视频并行解码的控制方法的示例性流程图之二;
图9为本发明实施例中对至少两帧图像进行并行解码的示意图之一;
图10为本发明实施例中对至少两帧图像进行并行解码的示意图之二;
图11为本发明实施例中多核处理器中视频并行解码的控制装置的示意图之一;
图12为本发明实施例中多核处理器中视频并行解码的控制装置的示意图之二。
具体实施方式
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明实施例提供一种多核处理器中视频并行解码的控制方法,该方法尤其适用于符合H.264及以上标准进行编码的视频流,也适用于符合AVS/AVS+/AVS2编码标准的视频流。
其中,在本发明实施例提供的方法中,在多核处理器中实现并行解码。通过将解码流程预先分配给至少四个核,在解码过程中根据每个核的负载情况,可动态改变每个核所执行的解码流程,实现对核资源的合理分配,从而提高资源的利用率,进而提高并行解码的效率。此外,本发明实施例中,预先将解码流程合理地分配为第一流程集合和第二流程集合,并由第一类核执行第一流程集合,第二类核执行第二流程集合。在解码过程中,视第一类核和第二类核的总负载情况,通过调整第一类核、第二类核的数量,又或者通过改变不同流程集合内所包含的解码流程的子流程,降低超负载的核的负载,并提高低负载核的负载,从而进一步实现对多核处理器的资源的合理利用,提高并行解码的效率。再一方面,进一步的,本发明实施例中,第一类核对应解析任务,第二类核对应重构任务,通过分析待解码视频流的特性,确定出可独立进行解析的数据块,例如可独立进行熵解码的最小数据块,然后为每一类核根据待处理视频流的特性,确定出适用的并行解码方式,使得第一类核和第二类核之间可以以不同的并行解码方式执行解码任务,从而进一步提高并行解码的效率。下面,对本发明实施例中在多核处理器中视频并行解码的控制方法进行详细说明。
实施例一
如图1所示,为本发明实施例中多核处理器中视频并行解码的控制方法的示例性流程图,该方法包括以下步骤:
步骤101:获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程。
步骤102:当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
其中,在一个实施例中,为简化资源调整的复杂度,解码流程包括第一解码流程集合和第二解码流程集合,第一解码流程集合和第二解码流程集合均各自包括至少一个解码子流程,且,第一解码流程集合和第二解码流程集合没有交集;
执行解码任务的核包括:执行第一解码流程集合的第一类核,和,执行第二解码流程集合的第二类核。
为便于理解,下面对上述的第一、第二解码流程集合,第一、第二类核进行举例说明:例如对于满足H.264编码标准的视频流,对该视频流进行解码的解码流程如图2所示,该解码流程中至少包括以下解码子流程:熵解码、反量化、反变换、运动补偿、帧内预测和环路滤波等。其中,例如,可以将第一个解码流程熵解码划分至第一类解码流程集合中,将其它的解码子流程划分至第二类流程集合中,这样,第一类核执行第一解码流程集合中的熵解码,第二类核执行第二解码流程集合中的解码子流程。
以上,通过对解码流程的简单划分和执行解码任务的简单划分,以便于以简单的调整策略调整执行解码任务的核所执行的解码子流程,例如可以调整每类核的数量实现对负载的重新分配,以实现多核处理器资源的合理利用。下面对上述调整策略进行详细说明。
其中,在一个实施例中,上述调整策略应用于步骤102,具体的,当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;则,步骤102中对执行解码任务的核所执行的解码子流程进行调整,可以通过以下方式中的至少一种方式实现:
方式一:指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务。例如,如果第一类核的总负载高于第二类核的总负载,则可以把第一类核中的一个核调整为第二类核,也就是说,该核由原来执行第一解码任务集合调整为执行第二解码任务集合,当之后两类核中有一类核超负载时,再继续执行方式一,也就是说,两类核中的每个核并不固定属于哪一类的核,而是根据当前需要进行调整的。
其中,最早能够完成当前正在执行的解码任务的核例如是,当一类核中的各个核以任务驱动的方式执行解码任务时,每一核都是在完成当前正在执行的解码任务后去取下一个解码任务,由此,对于最早能够完成当前正在执行的解码任务的核,可以在完成当前正在执行的解码任务之后且在取下一个解码任务之前,将其调整为超负载的一类核。当然,当每一类核中的每一个核有属于自己的任务队列的时候,需要将最早能够完成当前正在执行的解码任务的核的任务队列中的任务调度给其他核执行,然后将该核调整为超负载的一类核。
需要说明的是,当第一类核和第二类核可占用的核的数量有限时,当提高一类核的数量,必然导致另一类核的数量降低。例如,第一类核总负载较高,则说明第一类核要执行的任务较重,第二类核要执行的任务较轻,通过提高第一类核的数量,同时降低第二类核的数量,以均衡两类核的总负载,从而能够提高执行解码任务的核的资源利用率。
方式二:指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。例如,继续沿用前面的例子,当第一类核执行熵解码,第二类核执行其它的解码子流程时,容易导致第二类核的总负载高于第一类核,而此时,可以通过将第二类核中的部分解码子流程(如反量化),调整至第一类核中执行,从而可以达到均衡第一类核和第二类核的负载的目的。此外,预设数量可以设置为1,可以先将一个解码子流程先调整至第一类核,若此时第二类核的总负载依然较高,且和第一类核的总负载的差距仍然大于预设差距时,继续将第二类核中的一个解码子流程调整至第一类核中执行,如此反复,直至第二类核和第一类核的总负载的差距小于预设差距为止。较佳的,当解码流程至少包括熵解码、反量化、反变换、运动补偿、帧内预测和环路滤波等时,可以配置第一解码流程中至少包括熵解码,第二解码流程中至少包括运动补偿、帧内预测和环路滤波,而将反量化和反变换作为可调整的解码子流程,用于均衡两类核之间的总负载。调整过程,例如如图3所示,用R表示运动补偿、帧内预测和环路滤波等,D表示熵解码,Q-1表示反量化,T-1表示反变换,初始阶段各类核所执行的解码子流程如图3中的a所示,当第二类核的总负载较高时,先将Q-1调整至第一类核中(如图3中的b所示),当第二核的总负载依然较高时,再将T-1调整至第一类核中(如图3中的c所示),从而逐步实现第一类核和第二类核的总负载均衡。
此外,需要说明的是,在初始时,第一、二类核数均不小于2,第一类核和第二类核的总数不大于所运行平台的多核处理器的内核数或解码器初始化时指定的参数。但对于特殊情况,当总核数不超过4时,例如当多核处理器仅有两个核时,初始时仍将第一、二类核的数目均设置为2,实际执行时两个核中各起两个线程,每个线程被看成一个虚拟的核,然后由4个虚拟的核执行并行解码操作,并在解码的过程中,按照上述两个方式动态调整每个核所执行的解码子流程。
其中,在一个实施例中,若第一解码流程集合中的一个元素至少为熵解码,则在步骤101之前,方法还包括确定第一类核和第二类核的并行解码方式,具体的,可以执行为:根根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定待解码视频流的每一帧图像在第一类核中的解码方式和第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要待解码视频流中除该数据块之外的其他数据的最小数据块;确定各自的解码方式后,第一类核根据确定的第一类核的解码方式并行执行解码任务;第二类核根据确定的第二类核的解码方式并行执行解码任务。这里需要说明的是,熵解码是解码操作的第一步,因此熵解码是根据待解码视频流的每一帧图像中可独立熵解码的最小数据块的数量和类型确定的,例如一帧图像中仅有1个SLICE,而1个SLICE为可独立进行熵解码的最小数据块,则该帧图像为可独立熵解码的最小数据块。无论可独立熵解码的最小数据块是一帧图像还是一个SLICE或TILE,在经过熵解码之后,其结果则按照宏块或最大编码单元LCU为基本单位进行缓存,由此,除熵解码之外的解码子流程都是对宏块或者LCU进行处理,因此,上述例子中可以自由的将反量化调整至第一类核中执行或者第二类核中执行。
其中,在一个实施例中,编码方式包括但不限于以下的编码方式:帧编码、场编码、帧场自适应编码等。
较佳的,确定各类核的解码方式的方法,可具体执行为:
步骤A1:接收待解码视频流,并获取待解码视频流的编码方式。
步骤A2:针对待解码视频流的每一帧图像A,检测帧图像A中可独立进行熵解码的最小数据块的类型和数量,并标记每个可独立进行熵解码的最小数据块的起始位置和数据量。
其中,从另一方面描述可独立进行熵解码的最小数据块,其是进行熵解码时与待解码视频流中其它数据不具有依赖关系的最小数据块。例如,该最小数据块的类型可以是帧、SLICE(条带)、TILE(块)等。
步骤A3:根据待解码视频流的编码方式,以及图像A中可独立进行熵解码的最小数据块的类型和数量,确定图像A在第一类核中进行解码时解码方式,并确定在第二类核中进行解码时的解码方式。
步骤A4:根据确定的在第一类核中的解码方式,帧图像A中可独立进行熵解码的数据块的起始位置和数据量,将图像A切分为确定的第一类核的解码方式所需的数据块,并将切分后得到的数据块分配给第一类核,指示第一类核通过确定的解码方式并行地执行解码任务。
其中,第一类核中的各个核在解码过程中,将解码结果存入中间结果缓冲区。在中间结果缓冲区中,是按照图像A的最小块(宏块或最大编码单元LCU)为基本单位进行存储的,同时,中间结果缓冲区也是第二类核的数据输入来源。
步骤A5:指示第二类核从中间结果缓冲区中获取图像A的由第一类核执行完解码任务之后的数据,并根据确定的第二类核的解码方式并行地执行解码任务。当第二类核完成一帧图像的解码后,将该帧图像的解码结果存入解码图像缓冲区。
其中,解码图像缓冲区中存储的是解码后的一帧一帧图像,解码图像缓冲区的数据可用于直接显示或者直接转移至其他存储空间进行存储。
其中,需要说明的是可以根据实际需要调整步骤A1-步骤A5的执行顺序。
以下,对第一类核的解码方式和第二类核的解码方式进行阐述。众所周知,对于视频编码器来说,只要其编码产生的码流符合标准规定,视频标准并不能对编码器所采用的各种编码工具或方法进行限定,因此,一个根据H.264及以上标准或符合AVS/AVS+/AVS2编码标准进行编码后的码流,其所包含的帧可能被划分为具有不同数目的SLICE或TILE(例如:多SLICE编码器为了保证较好的编码质量,通常对I帧采用1个SLICE进行编码,而对P/B帧则划分为多个SLICE进行编码)。此外,一个经剪辑拼接而成的码流序列,可由不同的子序列不经重新编码而直接拼接起来,而每个子序列中SLICE或TILE数也不尽相同。对于这类情况,如果采用单一的、固定的并行解码方法来解码,其解码速度显然难以达到最优化。
基于上述情况,可以采用非单一的并行解码方式对待解码视频流进行并行解码,其中,在一个实施例中,第一类核的解码方式可以如图4所示,在图4中,包括以帧为最小单位的帧级并行解析方式(如图4中的a所示)、以SLICE为最小单位的条带级并行解析方式(如图4中的b所示)和以块行为最小单位的WPP(Wave-front Parallel Processing,H.265/HEVC标准)并行解析方式(如图4中的c所示)。当然,任何适用于进行熵解码的并行解析方式均适用于本发明实施例,对此不做限定。
其中,在一个实施例中,第二类核的解码方式可以如图5所示,在图5中,包括以帧为最小单位的帧级并行重构方式(如图5中的a所示)、以SLICE为最小单位的条带级并行重构方式(如图5中的b所示)和以块/块行为最小单位的块/块行级并行重构方式(如图5中的c所示)。其中,在块/块行级并行解码方式中,对于当前块,当且仅当其左方、上方、左上方、右上方的块都完成在第二流程集合中的解码子流程时,才可以对该当前块执行操作,因此,在块/块行级并行解码方式可以对当前块与当前块右上方块的右方的块同时执行操作。当然,任何适用于进行第二类核的并行重构方式均适用于本发明实施例,对此不做限定。
下面通过具体的例子,对步骤A3中确定各类核的编码方式的方法进行说明:
例一:如果帧内的码流数据是帧编码方式生成且包含至少两个SLICE或TILE,由于各SLICE或TILE是完全独立的,两两之间没有任何相关性,均可从头开始对码流数据进行连续的熵解码操作,则可以按照SLICE或TILE将该帧分解为若干个可并行完成的子任务,第一类核的解码方式可以为条带级并行解析方式,第二类核的解码方式可确定为条带级并行重构方式;
例二:如果帧内的码流数据是帧编码方式生成且只包含一个SLICE,则对整帧数据不进行切分,相邻不同帧的解析可以按照帧级并行解码方式完成,即确定第一类核的解码方式为帧级并行解析方式完成解析;此时,每一帧可以分解为块或者由若干块组成的行为单位并行进行的子任务由第二类核完成重构,即第二类核的解码方式可以为块/块行级并行重构方式;此外,也可不进行任务分解,而是以整帧为单位并行进行重构,则第二类核的解码方式可以为帧级并行重构方式;
例三:如果帧内的码流数据是帧编码方式生成且只包含一个SLICE,而且支持WPP方式进行熵解码,则把整帧解析任务按照WPP并行方式由若干个第一类核并行完成,即第一类后的解码方式为WPP并行解析方式,而第二类核的任务则可以分解为块或者由若干块组成的行并行完成第二类核的各解码子流程,即第二类核的解码方式为块/块行级并行重构方式;当然也可以不进行任务分解,而是以整帧为单位交由第二类核进行处理,这时第二类核的解码方式为帧级并行重构方式。
例四:如果帧内的码流数据是场编码方式生成的,该帧被分为上下两场,即顶场和底场。因顶场、底场的码流数据都是相对独立的,则对每一场的码流数据可以参照上述例一至例三中的方式进行任务分解。
例五:如果帧内的码流数据是帧场自适应编码方式生成的,可按照上述对帧编码方式生成的码流数据进行处理。在此不再赘述。
需要说明的是,当仅考虑并行解码方式时,第一类核的解码方式和第二类核的解码方式可以任意组合,则一共可以组合出9种并行解码方式(如图6所示)。这样可以根据待解码视频流的不同特性,配置不同的并行解码策略,以便于能够进一步的提高并行解码的效率。
由此可以看出,本发明实施例中,可以根据每帧图像的编码时的特点,自适应的确定各类核的解码方式,以实现对待解码视频流的并行解码。
其中,在一个实施例中,可以根据以下方式确定执行解码任务的核是否超负载:
步骤B1:预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
步骤B2:判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
步骤B3:若是,则所需解码时间较长的一类核超负载;若否,则两类核都不超负载。
其中,步骤B1中,可以根据以下方式预测各类核中待完成的解码任务所需的解码时间:
步骤C1:计算每一类核的解码速率。
其中,该解码速率可以用执行预设任务量的平均解码时间表示。例如,每一类核的一帧图像的解码时间,每一个最小数据块的解码时间。
步骤C2:根据每类核的解码速率和每类核各自的待完成的解码任务量,预算第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间。
其中,在一个实施例中,针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态,进入休眠状态的核仍属于其所归属的一类核。例如,第一类核中的一个核按照指示处于休眠状态后,该核仍然属于第一类核。当检测到一个待解码视频流的结束,或者没有视频流数据需要解码时,可以指示各类核结束任务,释放资源,至此解码任务结束,释放资源后各核既不归属于第一类核也不归属于第二类核。通过使暂时没有解码任务的核进入休眠状态,使得休眠状态的核处于等待解码任务的状态,从而减少该核在执行新的解码任务前后的创建和销毁操作,从而提高资源的利用率,此外,处于休眠状态的核还能降低功耗。
此外,在本发明实施例中,在对待解码视频流进行解码的初始化阶段,预先确定出第一流程集合、第二流程集合,并确定执行第一流程集合的第一类核,和执行第二流程集合的第二类核,从而建立起完整的解码流水线,而不必在将待解码视频流进行分配后才建立起解码流水线,从而能够有效的提高解码效率。
需要说明的是,各类核在确定各自的解码方式后,可以根据预先设置的对应的同步条件,供各类核实现同步,以协同完成解码。例如,当第一类核的解码方式为条带级并行解析方式、第二类核的解码方式为帧级并行重构方式时,第一类核当完成一个条带的解码时为该条带做标记,第二类核根据该标记对属于同一帧图像的所有条带根据属于第二类核的帧级并行重构方式完成解码操作。其中,可以由第一类核在确定已完成一帧的图像的解码操作后,通知第二类核对该帧图像进行解码操作,也可以由第二类核检测到一整帧图像的所有条带都被第一类核执行完解码时,自行启动对该帧图像的解码操作。因此,可以根据实际情况设置对应的同步条件,对于其它不同的第一类核的解码方式和第二类核的解码方式的组合的同步条件的设置可以参考上述实例。任何能够实现第一类核的解码方式和第二类核的解码方式的同步,以完成对待解码视频流的解码操作的同步条件均适用于本发明实施例,本发明对此不再赘述。
其中,在一个实施例中,第一类核之间、第二类核之间,第一类核和第二类核之间,可以采用任务驱动的管理机制;不同类的核之间可以采用先进先出(FIFO)任务队列进行级联,完成流水操作。具体的,以处理单元A和处理单元B代表不同的核,如图7所示,包括以下步骤:
步骤D1:处理单元A从任务队列1头部获取一个结点,如任务队列1为空,则创建一个新的空结点,并对该结点进行处理。
步骤D2:处理单元A完成对该结点的处理后,将该结点添加到任务队列2的尾部。
步骤D3:处理单元B等待直到任务队列2非空,并从任务队列2头部获取一个结点。
步骤D4:处理单元B完成对该结点的处理后,将该结点添加到任务队列1的尾部。
通过任务驱动方式,使得各核之间能够有序的完成流水操作,从而保证解码任务可以有条不紊地按序进行。
综上,本发明实施例中,通过动态调整执行解码任务的核所执行的解码子流程,使得执行解码任务的核的负载均衡,能够提高资源的利用率,从而提高并行解码的效率。此外,本发明实施例中通过确定各类核的解码方式可以动态自适应不同的码流;本发明实施例中由于可以动态调整每类核的数量和每类核执行的解码子流程,以及能够动态自适应不同的码流,可以实现对不同平台的适应,以使本发明实施例提供的并行解码控制方法能够更普遍的适用。
实施例二
以对采用不支持TILE及WPP的AVS标准进行编码的待解码视频流进行并行解码为例,对本发明实施例中,多核处理器中视频解码的方法进行详细说明,如图8所示,包括以下步骤:
解码流程包括:熵解码、反量化、反变换、运动补偿、帧内预测和环路滤波等。
步骤801:接收待解码视频流,并获取待解码视频流的编码方式。
步骤802:获取当前可用于执行解码任务的核的数量为N,并进行初始化:第一类核执行熵解码,第二类核执行反量化、反变换、运动补偿、帧内预测和环路滤波;初始化第一类核的数量为m,第二类核的数量为k,其中m和k之和为N。
其中,较佳的,初始化时m设置为2。
其中,在一个实施例中,在步骤801中还可以获取待解码视频流的属性信息,该属性信息例如是分辨率、码率或量化参数等,用于根据属性信息确定中间结果缓冲区和解码图像缓冲区各自的容量,以便于在对待解码视频流进行解码的过程中使用。
步骤803:针对待解码视频流的每一帧图像,检测到该帧图像中可独立进行熵解码的最小数据块的类型为SLICE、数量,并标记每个第一最小数据块的起始位置和数据量。
步骤804:根据待解码视频流的编码方式,以及该帧图像中可独立进行熵解码的最小数据块的类型和数量,确定第一类核对该帧图像的解码方式为SLICE级并行解析方式,第二类核对该帧图像的解码方式为块/块行级并行重构方式。
步骤805:根据每块SLICE的起始位置和数据量,将该帧图像进行切分并将切分的结果分配给第一类核,指示第一类核通过SLICE级并行解码方式进行解码。
步骤806:指示第二类核通过确定的块/块行级并行重构方式对该帧图像并行进行解码。
步骤807:第一类核接收SLICE数据块,并以SLICE级并行解码方式对该SLICE进行熵解码;第二类核接收宏块,并以块/块行级并行解码方式对该宏块进行解码。
其中,在一个实施例中,当前执行解码任务的内核的负载小于负载下限时,可以确定所有解码方式中对较小块进行并行解码的解码方式;反之,当前执行解码任务的内核的负载大于负载上限时,可以确定所有解码方式中对较大块进行并行解码的解码方式。例如,第一类核的解码方式中,可以默认执行解码时,块从大到小的顺序依次为:帧级并行解析方式的块、SLICE级并行解析方式的块、WPP级并行解析方式的块;第二类核的解码方式中,可以默认执行解码时,块从大到小的顺序依次为:帧级并行重构方式的块、SLICE级并行重构方式的块、块/块行级并行重构方式的块。
步骤808:预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间。
其中,在一个实施例中,可以每执行一个解码任务之前,执行一次步骤808,例如第一类核当以SLICE级并行重构方式工作时,在执行对下一个SLICE的解析任务之前,执行步骤808,用于判断是否对当前各类核的任务进行调整。
其中,在一个实施例中,也可以每间隔预设时长,执行一次步骤808。当然需要说明的是,用户可以根据自己的需求设定执行步骤808的时机,本发明对此不做限定。
步骤809:判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差,若是执行步骤810,若否则执行步骤808。
其中,在一个实施例中,在步骤809中,当判断结果为否时,可以等待预设时长之后,再执行步骤808。或者,每个核执行完一个解码任务则上报一次该任务的执行时间,则在步骤809中,当判断结果为否时,当检测到新上报的执行时间之后,再执行步骤808。
步骤810:指示未超负载的一类核中的至少一个核执行超负载的一类核的解码任务,直至两类核都不超负载为止,或者直至数量增加的一类核的数量到达最大预设边界值。
其中,为保证解码任务的顺利进行,可以设置最大预设边界值为N-p,较佳的,P可以配置为2。
其中,当然,也可以配置将第一类核和第二类核中负载较低的一类核的数量不得小于最小预设边界值,该最小预设阈值例如可以设为2。
步骤811:当直至数量增加的一类核的数量到达最大预设边界值时,第一类核的历史平均利用率与第二类核的历史平均利用率的差值的绝对值仍大于第一预设阈值时,将第一类核和第二类核中,负载较高的一类核所执行的解码子流程调整至负载较小的一类核中执行。
例如,第二类核的总负载较高,将第二类核中的反量化分配给第一类核完成。
步骤812:针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务还未结束时,指示该核进入休眠状态。
步骤813:当检测到解码任务结束或预设时长内没有接收到待解码视频流时,指示执行解码任务的各核释放资源。
此外,当第Z帧图像和第Z+1帧图像均各自仅有一个SLICE时,第一类核以帧级并行解析方式对这两帧图像进行解码操作,例如,如图9所示,第一类核执行的解码子流程为熵解码,对于第Z帧图像,第一类核中的一个空闲核或负载较低的核检测到一帧解码任务后,开始对这一帧进行熵解码。每完成一个宏块或预设个数的宏块的解析后,标记已经完成的块信息,用以设置以块/块行级并行解码方式工作的第二类核同步条件。当切分熵解码后的宏块后,送入第二类核中,该类核的空闲核或负载较低的核,检测到同步条件后开始对接收到的宏块以块/块行级并行解码方式解码。显然地,一帧图像的在第一类核中的解码操作和第二类核中的解码操作是并行进行的。当又接收到第Z+1帧图像数据后,第一类核中的一个核对该帧图像进行解码操作,之后,第二类核中的至少一个核对该帧图像同样地以块/块行级并行重构方式进行解码。此时,第N帧图像可能仍未完成所有的解码流程,可见,第Z帧图像和第Z+1帧图像是同时被解码。
此外,在一个实施例中,如图10所示,当第Y帧仅包含至少一个SLICE时,则可以确定该帧在第一类核中的第一类核的解码方式为帧级并行解析方式,在第二类核中的第二类核的解码方式为块/块行级并行重构方式;对之后接收到的第Y+1帧,若该帧中包含至少两个SLICE时,可以确定该帧在第一类核中的第一类核的解码方式为条带级并行解析码方式,在第二类核中的第二类核的解码方式为条带级并行重构方式。
综述,本发明实施例,通过对第一类核的数量和第二类核的数量进行动态调整,或者结合对第一类核执行的解码子流程和第二类核执行的解码子流程的动态调整,使得第一类核和第二类核的负载均衡,从而能够有效地利用负载较低的核,提高资源利用率,提高并行解码的效率。
另一方面,如图11所示,本发明实施例中,还提供一种多核处理器中视频并行解码的控制装置,该装置包括:
获取模块1101,用于获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;
调整模块1102,用于当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
其中,在一个实施例中,解码流程由第一解码流程集合和第二解码流程集合组成,第一解码流程集合和第二解码流程集合均各自包括至少一个解码子流程,且,第一解码流程集合和第二解码流程集合没有交集;
执行解码任务的核包括:执行第一解码流程集合的第一类核,和,执行第二解码流程集合的第二类核。
其中,在一个实施例中,如图12所示,装置还包括:
超负载确定模块1103,用于当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;
调整模块1102,包括:
第一调整单元1104,用于指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务;
第二调整单元1105,用于指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。
其中,在一个实施例中,如图12所示,装置还包括:
解码方式确定模块1106,用于第一解码流程集合中至少包括熵解码时;获取模块获取执行解码任务的每个核的负载之前,根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定待解码视频流的每一帧图像在第一类核中的解码方式和第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要待解码视频流中除该数据块之外的其他数据的最小数据块;
其中,第一类核的解码方式包括以下中的至少一种:帧级并行解析方式、条带级并行解析方式、WPP并行解析方式;
第二类核的解码方式包括以下中的至少一种:帧级并行重构方式、条带级并行重构方式、块/块行级并行重构方式。
其中,在一个实施例中,如图12所示,超负载确定模块1103包括:
预测单元1107,用于预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
判断单元1108,用于判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
确定单元1109,用于当判断结果为是时,则所需解码时间较长的一类核超负载。
其中,在一个实施例中,如图12所示,装置还包括:
休眠模块1110,用于针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明所提供的动态自适应并行解码装置,解码流程是并行的,亦即第一类核之间是并行处理的,第二类核之间是并行处理的,第一类核和第二类核之间也是并行处理的;第一类核和第二类核的数量及其所执行的任务内容本身均可根据负载情况动态调节,这种灵活的、动态的并行任务调度策略,充分发挥了多核处理器技术的计算优势,降低了执行单元间的同步开销,能够使多核计算资源的利用率达到最大化,提高了基于多核处理器平台的视频解码速度,且对于不同的码流结构的序列及不同内核数的多核处理器平台均具有良好的鲁棒性、兼容性和适配性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种多核处理器中视频并行解码的控制方法,其特征在于,所述方法包括:
获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;
当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
2.根据权利要求1所述的方法,其特征在于,
所述解码流程包括第一解码流程集合和第二解码流程集合,所述第一解码流程集合和所述第二解码流程集合均各自包括至少一个解码子流程,且,所述第一解码流程集合和所述第二解码流程集合没有交集;
所述执行解码任务的核包括:执行所述第一解码流程集合的第一类核,和,执行所述第二解码流程集合的第二类核。
3.根据权利要求2所述的方法,其特征在于,
根据以下方式确定超负载:
当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;
所述对执行解码任务的核所执行的解码子流程进行调整,通过以下方式中的至少一种方式实现:
方式一:指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务;
方式二:指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。
4.根据权利要求2或3所述的方法,其特征在于,
所述第一解码流程集合中的一个元素至少为熵解码;
所述获取执行解码任务的每个核的负载之前,所述方法还包括:
根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定所述待解码视频流的每一帧图像在所述第一类核中的解码方式和所述第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要所述待解码视频流中除该数据块之外的其他数据的最小数据块;
其中,所述第一类核的解码方式包括以下中的至少一种:帧级并行解析方式、条带级并行解析方式、WPP并行解析方式;
所述第二类核的解码方式包括以下中的至少一种:帧级并行重构方式、条带级并行重构方式、块/块行级并行重构方式。
5.根据权利要求3所述的方法,其特征在于,所述当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载,包括:
预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
当判断结果为是时,则所需解码时间较长的一类核超负载。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态。
7.一种多核处理器中视频并行解码的控制装置,其特征在于,所述装置包括:
获取模块,用于获取执行解码任务的每个核的负载,其中执行解码任务的每个核用于完成解码流程中的至少一个解码子流程,所有执行解码任务的核并行工作,且所有执行解码任务的核共同完成所有的解码子流程;
调整模块,用于当确定至少有一个核超负载时,对执行解码任务的核所执行的解码子流程进行调整,直至每个核都不超负载为止。
8.根据权利要求7所述的装置,其特征在于,
所述解码流程由第一解码流程集合和第二解码流程集合组成,所述第一解码流程集合和所述第二解码流程集合均各自包括至少一个解码子流程,且,所述第一解码流程集合和所述第二解码流程集合没有交集;
所述执行解码任务的核包括:执行所述第一解码流程集合的第一类核,和,执行所述第二解码流程集合的第二类核。
9.根据权利要求8所述的装置,其特征在于,
所述装置还包括:
超负载确定模块,用于当第一类核的总负载与第二类核的总负载的差距大于预设差距时,确定总负载较大的一类核超负载;
所述调整模块,包括:
第一调整单元,用于指示将未超负载的一类核中满足预设调整条件的至少一个核调整为超负载的一类核,并执行超负载的一类核的解码任务,其中,所述预设调整条件为当前处于休眠状态或最早能够完成当前正在执行的解码任务;
第二调整单元,用于指示超负载的一类核将自身所执行的部分解码子流程调整至未超负载的一类核中执行。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
解码方式确定模块,用于所述第一解码流程集合中至少包括熵解码时;所述获取模块获取执行解码任务的每个核的负载之前,根据待解码视频流的编码方式和每一帧图像中可独立熵解码的最小数据块的数量和类型,确定所述待解码视频流的每一帧图像在所述第一类核中的解码方式和所述第二类核中的解码方式,其中,可独立熵解码的最小数据块为对该数据块执行熵解码时不需要所述待解码视频流中除该数据块之外的其他数据的最小数据块;
其中,所述第一类核的解码方式包括以下中的至少一种:帧级并行解析方式、条带级并行解析方式、WPP并行解析方式;
所述第二类核的解码方式包括以下中的至少一种:帧级并行重构方式、条带级并行重构方式、块/块行级并行重构方式。
11.根据权利要求8-10中任一所述的装置,其特征在于,所述超负载确定模块包括:
预测单元,用于预测第一类核中待完成的解码任务所需的解码时间,和第二类核中待完成的解码任务所需的解码时间;
判断单元,用于判断第一类核中待完成的解码任务所需的解码时间与第二类核中待完成的解码任务所需的解码时间的时间差是否大于预设时间差;
确定单元,用于当判断结果为是时,则所需解码时间较长的一类核超负载。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
休眠模块,用于针对执行解码任务的每个核,当监测到该核没有待执行的解码任务且未确定解码任务已结束时,指示该核进入休眠状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410746284.9A CN104539972A (zh) | 2014-12-08 | 2014-12-08 | 一种多核处理器中视频并行解码的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410746284.9A CN104539972A (zh) | 2014-12-08 | 2014-12-08 | 一种多核处理器中视频并行解码的控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104539972A true CN104539972A (zh) | 2015-04-22 |
Family
ID=52855416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410746284.9A Pending CN104539972A (zh) | 2014-12-08 | 2014-12-08 | 一种多核处理器中视频并行解码的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104539972A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105992008A (zh) * | 2016-03-30 | 2016-10-05 | 南京邮电大学 | 一种在多核处理器平台上的多层次多任务并行解码算法 |
CN106412597A (zh) * | 2015-07-29 | 2017-02-15 | 飞思卡尔半导体公司 | 多核视频解码器中的工作负载均衡 |
CN107515736A (zh) * | 2017-07-01 | 2017-12-26 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
CN108063948A (zh) * | 2016-11-08 | 2018-05-22 | 晨星半导体股份有限公司 | 配合多个处理器的影像处理装置及影像处理方法 |
CN108449603A (zh) * | 2018-03-22 | 2018-08-24 | 南京邮电大学 | 基于多核平台多层次任务级与数据级并行的hevc解码方法 |
WO2018166535A1 (zh) * | 2017-03-17 | 2018-09-20 | 山东科技大学 | 一种基于编码时间预测模型的负载均衡方法 |
CN108712422A (zh) * | 2018-05-18 | 2018-10-26 | 网宿科技股份有限公司 | 一种创建转码任务的方法和装置 |
CN110070878A (zh) * | 2019-03-26 | 2019-07-30 | 苏州科达科技股份有限公司 | 音频码流的解码方法及电子设备 |
CN111316643A (zh) * | 2019-03-29 | 2020-06-19 | 深圳市大疆创新科技有限公司 | 视频编码方法、设备和可移动平台 |
CN113590376A (zh) * | 2021-07-14 | 2021-11-02 | 华中科技大学 | 一种多线程并行编/解码方法、编/解码器、用户端 |
CN116414542A (zh) * | 2023-06-12 | 2023-07-11 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090324108A1 (en) * | 2008-06-27 | 2009-12-31 | Yong Yan | System and method for load balancing a video signal in a multi-core processor |
CN101656885A (zh) * | 2009-09-17 | 2010-02-24 | 中兴通讯股份有限公司 | 多核处理器中并行解码的方法和装置 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和*** |
CN102541628A (zh) * | 2010-12-17 | 2012-07-04 | 三星电子株式会社 | 多核***的编译装置和方法 |
US20130058412A1 (en) * | 2011-09-06 | 2013-03-07 | Mediatek Inc. | Dynamic Load Balancing for Video Decoding Using Multiple Processors |
-
2014
- 2014-12-08 CN CN201410746284.9A patent/CN104539972A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090324108A1 (en) * | 2008-06-27 | 2009-12-31 | Yong Yan | System and method for load balancing a video signal in a multi-core processor |
CN101656885A (zh) * | 2009-09-17 | 2010-02-24 | 中兴通讯股份有限公司 | 多核处理器中并行解码的方法和装置 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和*** |
CN102541628A (zh) * | 2010-12-17 | 2012-07-04 | 三星电子株式会社 | 多核***的编译装置和方法 |
US20130058412A1 (en) * | 2011-09-06 | 2013-03-07 | Mediatek Inc. | Dynamic Load Balancing for Video Decoding Using Multiple Processors |
Non-Patent Citations (2)
Title |
---|
FLORIAN H. SEITNER, RALF M. BEUSCHEL: "Development of a High-Level Simulation Approach and Its Application to Multicore Video Decoding", 《IEEE TRANS. ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》 * |
MINSOO KIM, ET AL.: "H.264 DECODING ON EMBEDED DUAL CORE WITH DYNAMICALLY LOAD-BALANCED FUCTIONAL PARITIONING", 《IEEE INTEL. CONF. ON MULTIMEDIA AND EXPO》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106412597A (zh) * | 2015-07-29 | 2017-02-15 | 飞思卡尔半导体公司 | 多核视频解码器中的工作负载均衡 |
CN105992008B (zh) * | 2016-03-30 | 2019-08-30 | 南京邮电大学 | 一种在多核处理器平台上的多层次多任务并行解码方法 |
CN105992008A (zh) * | 2016-03-30 | 2016-10-05 | 南京邮电大学 | 一种在多核处理器平台上的多层次多任务并行解码算法 |
CN108063948A (zh) * | 2016-11-08 | 2018-05-22 | 晨星半导体股份有限公司 | 配合多个处理器的影像处理装置及影像处理方法 |
WO2018166535A1 (zh) * | 2017-03-17 | 2018-09-20 | 山东科技大学 | 一种基于编码时间预测模型的负载均衡方法 |
CN107515736A (zh) * | 2017-07-01 | 2017-12-26 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
CN107515736B (zh) * | 2017-07-01 | 2021-01-15 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
CN108449603A (zh) * | 2018-03-22 | 2018-08-24 | 南京邮电大学 | 基于多核平台多层次任务级与数据级并行的hevc解码方法 |
CN108449603B (zh) * | 2018-03-22 | 2019-11-22 | 南京邮电大学 | 基于多核平台多层次任务级与数据级并行的hevc解码方法 |
CN108712422A (zh) * | 2018-05-18 | 2018-10-26 | 网宿科技股份有限公司 | 一种创建转码任务的方法和装置 |
CN110070878A (zh) * | 2019-03-26 | 2019-07-30 | 苏州科达科技股份有限公司 | 音频码流的解码方法及电子设备 |
CN111316643A (zh) * | 2019-03-29 | 2020-06-19 | 深圳市大疆创新科技有限公司 | 视频编码方法、设备和可移动平台 |
CN113590376A (zh) * | 2021-07-14 | 2021-11-02 | 华中科技大学 | 一种多线程并行编/解码方法、编/解码器、用户端 |
CN113590376B (zh) * | 2021-07-14 | 2024-07-02 | 华中科技大学 | 一种多线程并行编/解码方法、编/解码器、用户端 |
CN116414542A (zh) * | 2023-06-12 | 2023-07-11 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备及存储介质 |
CN116414542B (zh) * | 2023-06-12 | 2023-11-14 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539972A (zh) | 一种多核处理器中视频并行解码的控制方法和装置 | |
CN110769278B (zh) | 一种分布式视频转码方法及*** | |
US8683471B2 (en) | Highly distributed parallel processing on multi-core device | |
CN100430897C (zh) | 用于缩减使用同时多线程处理器的带缓冲的应用的能耗的方法 | |
US10977070B2 (en) | Control system for microkernel architecture of industrial server and industrial server comprising the same | |
CN101466039B (zh) | 一种视频解码装置和方法 | |
US20160044329A1 (en) | Image Predictive Coding Method and Image Encoder | |
WO2016115000A1 (en) | Hybrid scheduler and power manager | |
US10216541B2 (en) | Scheduler of processes having timed predictions of computing loads | |
CN102387360A (zh) | 视频编解码帧间图像预测方法及视频编解码器 | |
CN105491377A (zh) | 一种计算复杂度感知的视频解码宏块级并行调度方法 | |
CN103297767A (zh) | 一种适用于多核嵌入式平台的jpeg图像解码方法及解码器 | |
CN103188521A (zh) | 转码分配方法及装置,转码方法及设备 | |
US9471387B2 (en) | Scheduling in job execution | |
CN113301151B (zh) | 基于云边协同的低时延容器化任务部署方法及设备 | |
US20140198858A1 (en) | Power saving decoder architecture | |
Zhao et al. | Prediction-based and locality-aware task scheduling for parallelizing video transcoding over heterogeneous mapreduce cluster | |
CN108540797A (zh) | 基于多核平台的hevc帧内/帧间联合wpp编码方法 | |
WO2017162015A1 (zh) | 一种数据处理方法及装置、存储介质 | |
Zare et al. | Resource scheduling in mobile cloud computing: taxonomy and open challenges | |
Wang et al. | Edge computing for artificial intelligence | |
JP2011182169A (ja) | 符号化装置および方法 | |
CN105824809B (zh) | 一种etl调度的实现方法及装置 | |
CN104506452A (zh) | 一种报文处理方法及装置 | |
Li et al. | Fine granular parallel algorithm for HEVC encoding based on multicore platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150422 |
|
RJ01 | Rejection of invention patent application after publication |