一种视频解码装置和方法转让专利

申请号 : CN200810247439.9

文献号 : CN101466039B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 纪雯陈益强张绘国邢云冰

申请人 : 中国科学院计算技术研究所

摘要 :

本发明涉及一种视频解码器装置和方法。该装置包括:设备资源感知单元,频率控制单元,以及多任务解码器;设备资源感知单元,用于确定当前可用功率;频率控制单元,用于依据设备资源感知单元确定的当前可用功率为各任务指配工作频率;多任务解码器,用于将视频码流分为多个任务,并依据频率控制单元为各任务所指配的工作频率解码各任务。本发明通过对解码器进行多任务并行处理,并且对每个任务以及功能模块进行动态频率调整,可以满足系统性能的前提下降低功耗。

权利要求 :

1.一种视频解码装置,其特征在于,包括:设备资源感知单元,频率控制单元,以及多任务解码器;

设备资源感知单元,用于确定当前可用功率;

频率控制单元,用于依据设备资源感知单元确定的当前可用功率为各任务指配工作频率;

多任务解码器,用于将视频码流分为多个任务,并依据频率控制单元为各任务所指配的工作频率解码各任务,所述多任务解码器包括解码器多任务划分单元和多个解码任务单元;

解码器多任务划分单元,用于将视频码流划分为多个解码片;

解码任务单元,用于对各解码片进行解码;

所述频率控制单元依据下式确定各解码片的工作频率:

其中:V为电路的供电电压,fCLK为第i个解码片的工作频率,CEFF为电路的有效切换电容,P为当前可用功率,n为解码片的总数,Pi为第i个解码片所分配的功率,mi为第i个解码片包含的宏块数量,i、j为自然数,1≤i≤n,1≤j≤n,a为活动因子。

2.如权利要求1所述的视频解码装置,其特征在于,还包括重建视频存储区,用于接收多任务解码器的输出,并在视频码流中当前帧的各任务解码完成之后,根据各任务的顺序重新排序后将视频流输出。

3.如权利要求1所述的视频解码装置,其特征在于,设备资源感知单元,还用于感知设备的工作状态,其中,设备为包括视频解码装置的、支持电池供电的终端。

4.如权利要求3所述的视频解码装置,其特征在于,解码任务单元包括:熵解码控制单元,反变换反量化单元,帧间预测单元,帧内预测单元,以及去方块滤波单元。

5.如权利要求4所述的视频解码装置,其特征在于,第i个解码任务单元中:熵解码控制单元的工作频率为τ1·fCLK,反变换反量化单元的工作频率为τ2·fCLK,帧间预测单元的工作频率τ3·fCLK,帧内预测单元的工作频率为τ4·fCLK,去方块滤波单元单元的工作频率为τ5·fCLK;其中:τ1,τ2,τ3,τ4和τ5为熵解码控制单元、反变换反量化单元、帧间预测单元、帧内预测单元和去方块滤波单元的处理时间相对于解码片中处理时间最慢单元的处理时间的比值;第i个解码任务单元是解码第i个解码片的解码任务单元。

6.一种视频解码方法,其特征在于,包括:

步骤1,确定当前可用功率;

步骤2,将视频码流划分为多个解码片,解码片为任务,依据公式 得

到Pi;

2

依据公式Pi=aV ·fCLK·CEFF得到fCLK;

其中:V为电路的供电电压,fCLK为第i个解码片的工作频率,CEFF为电路的有效切换电容,P为当前可用功率,n为解码片的总数,Pi为第i个解码片所分配的功率,mi为第i个解码片包含的宏块数量,i、j为自然数,1≤i≤n,1≤j≤n,a为活动因子。

步骤3,依据为各任务所指配的工作频率解码各任务。

7.如权利要求6所述的视频解码方法,其特征在于,还包括步骤4,重建视频存储区接收多任务解码器的输出,并在视频码流中当前帧的各任务解码完成之后,根据各任务的顺序重新排序后将视频流输出。

8.如权利要求6所述的视频解码方法,其特征在于,步骤1中,还感知设备的工作状态,其中,设备为包括视频解码装置的、支持电池供电的终端。

9.如权利要求8所述的视频解码方法,其特征在于,解码任务单元按所述步骤2和3对各解码片进行解码,包括:熵解码控制单元,反变换反量化单元,帧间预测单元,帧内预测单元,以及去方块滤波单元。

10.如权利要求9所述的视频解码方法,其特征在于,步骤2中:在第i个解码任务单元中:将熵解码控制单元的工作频率指定为τ1·fCLK,将反变换反量化单元的工作频率指定为τ2·fCLK,将帧间预测单元的工作频率指定为τ3·fCLK,将帧内预测单元的工作频率指定为τ4·fCLK,去方块滤波单元单元的工作频率为τ5·fCLK;其中:τ1,τ2,τ3,τ4和τ5为熵解码控制单元、反变换反量化单元、帧间预测单元、帧内预测单元和去方块滤波单元的处理时间相对于解码片中处理时间最慢单元的处理时间的比值;第i个解码任务单元是解码第i个解码片的解码任务单元。

说明书 :

一种视频解码装置和方法

技术领域

[0001] 本发明涉及数字视频信号处理领域,尤其涉及一种视频解码装置和方法。 背景技术
[0002] 随着通信产业的不断发展,终端已经由原来单一的通话功能的手机等,逐渐向话音、数据、图像、音乐和多媒体方向综合演变,具体包括智能手机、PDA等。 [0003] 然而,作为大多数终端尤其是移动型终端,完全依靠电池来供电,随着移动设备的功能越来越强大,其功率损耗也越来越大。 因此,必须提高终端设备的使用时间和待机时间。 对于这个问题,目前有两种解决方案:一种是配备更大容量的电池;但是增大电池容量总的趋势上将会增加整个设备的成本。 另一种是改进系统设计,采用先进技术,降低移动设备的功率损耗。
[0004] 因此,从移动设备的总体设计入手,应用先进的技术和器件,进行降低功率损耗的方案设计,从而尽可能延长移动设备的使用时间。 事实上,低功耗设计已经成为移动设备设计中一个越来越迫切的问题。
[0005] 解码器作为移动设备的视频处理系统的关键部分,占用系统中较多资源,消耗终端大量的功率,所以如何降低解码器的功耗,对于延长终端的电池使用寿命具有至关重要的作用。
[0006] 解码器功耗的降低,目前也有很多实现方法,一般集中在对解码器的算法复杂度的降低或者对部分模块的简化。 现有技术主要针对解码器算法复杂度的降低进行研究,而较少的考虑了视频解码器内部各模块与功耗控制的内在联系。 对于降低视频解码器的功耗大多采用降低解码复杂度的方法,虽然在一定程度上可以降低了解码器的功耗,但很多都在降低复杂度的同时,降低性能,难以保证视频重建质量。
[0007] 经过研究,CMOS电路的能量消耗可以由下式近似估计:
[0008] P=aV2·fCLK·CEFF (1)
[0009] 其中:V为电路的供电电压;
[0010] fCLK为时钟频率;
[0011] CEFF为电路的有效切换电容;
[0012] a为活动因子,通常为0.5。
[0013] 由上式可以看出,CMOS电路的能量消耗P与电路电压V的平方成正比,和频率fCLK成正比,因此降低电压以及时钟频率是降低线路能耗的最有效的方法之一。 而且降低电压和频率对降低功耗可以起到事半功倍的作用。

发明内容

[0014] 为了解决上述的技术问题,提供了一种多任务并行的视频解码器装置,其目的在于通过对解码器进行多任务并行处理,并且对每个任务以及功能模块进行动态频率调整,可以满足系统性能的前提下,极大地降低功耗。
[0015] 本发明提供了一种视频解码装置,包括:设备资源感知单元,频率控制单元,以及多任务解码器;
[0016] 设备资源感知单元,用于确定当前可用功率;
[0017] 频率控制单元,用于依据设备资源感知单元确定的当前可用功率为各任务指配工作频率;
[0018] 多任务解码器,用于将视频码流分为多个任务,并依据频率控制单元为各任务所指配的工作频率解码各任务。
[0019] 还包括重建视频存储区,用于接收多任务解码器的输出,并在视频码流中当前帧的各任务解码完成之后,根据各任务的顺序重新排序后将视频流输出。
[0020] 设备资源感知单元,还用于感知设备的工作状态。
[0021] 多任务解码器包括解码器多任务划分单元和多个解码任务单元;
[0022] 解码器多任务划分单元,用于将视频码流划分为多个解码片;
[0023] 解码任务单元,用于对各解码片进行解码。
[0024] 解码任务单元包括:熵解码控制单元,反变换反量化单元,帧间预测单元,帧内预测单元,以及去方块滤波单元。
[0025] 频率控制单元依据下式确定各解码片的工作频率:
[0026]
[0027] 其中:V为电路的供电电压,fCLK为第i个解码片的工作频率,CEFF为电路的有效切换电容,P为当前可用功率,n为解码片的总数,Pi为第i个解码片所分配的功率,mi为第i个解码片包含的宏块数量,i、j为自然数,1≤i≤n,1≤j≤n,a为活动因子。 [0028] 第i个解码任务单元中:熵解码控制单元的工作频率为τ1·fCLK,反变换反量化单元的工作频率为τ2·fCLK,帧间预测单元的工作频率τ3·fCLK,帧内预测单元的工作频率为τ4·fCLK,去方块滤波单元单元的工作频率为τ5·fCLK;其中:τ1,τ2,τ3,τ4和τ5为熵解码控制单元、反变换反量化单元、帧间预测单元、帧内预测单元和去方块滤波单元的处理时间相对于解码片中处理时间最慢单元的处理时间的比值;第i个解码任务单元是解码第i个解码片的解码任务单元。
[0029] 关于对τk·fCLK的约定:在计算的过程中,如装置(包含终端或芯片)能提供的工作频率任意可调,则τk·fCLK直接为计算的结果;另一方面考虑到对于一部分装置(包含终端或芯片),能提供的工作频率的可调范围不一定是连续变化,例如提供可用工作频率为[f1,f2,f3,f4,f5,f6,f7,f8]或[f1,f2,......]等,那么对于τk·fCLK的取值,为该装置能提供的可调工作频率范围内,最接近tk·fCLK的频率值。
[0030] 本发明提供了一种视频解码方法,包括:
[0031] 步骤1,确定当前可用功率;
[0032] 步骤2,将视频码流分为多个任务,依据当前可用功率为各任务指配工作频率;
[0033] 步骤3,依据为各任务所指配的工作频率解码各任务。
[0034] 还包括步骤4,重建视频存储区接收多任务解码器的输出,并在视频码流中当前帧的各任务解码完成之后,根据各任务的顺序重新排序后将视频流输出。
[0035] 步骤1中,还包括感知设备的工作状态。
[0036] 步骤2包括:
[0037] 步骤21,将视频码流划分为多个解码片;
[0038] 步骤22,依据公式 得到Pi;
[0039] 步骤23,依据公式Pi=aV2fCLK·CEFF得到fCLK;
[0040] 其中:V为电路的供电电压,fCLK为第i个解码片的工作频率,CEFF为电路的有效切换电容,P为当前可用功率,n为解码片的总数,Pi为第i个解码片所分配的功率,mi为第i个解码片包含的宏块数量,i、j为自然数,1≤i≤n,1≤j≤n。
[0041] 步骤3中,依据为各任务所指配的工作频率解码各任务。
[0042] 解码任务单元包括:熵解码控制单元,反变换反量化单元,帧间预测单元,帧内预测单元,以及去方块滤波单元。
[0043] 步骤2中:在第i个解码任务单元中:将熵解码控制单元的工作频率指定为τ1·fCLK,将反变换反量化单元的工作频率指定为τ2·fCLK,将帧间预测单元的工作频率指定为τ3·fCLK,将帧内预测单元的工作频率指定为τ4·fCLK,去方块滤波单元单元的工作频率为τ5·fCLK;其中:τ1,τ2,τ3,τ4和τ5为熵解码控制单元、反变换反量化单元、帧间预测单元、帧内预测单元和去方块滤波单元的处理时间相对于解码片中处理时间最慢单元的处理时间的比值;第i个解码任务单元是解码第i个解码片的解码任务单元。
[0044] 本发明对视频解码器技术进行多任务划分,以获得合理的多任务操作,并且对各个任务适当的频率控制,以达到在保证解码总体性能的情况下,最大化的降低解码器的功耗。 本发明提供一种变频多任务视频解码来实现低功耗视频解码的方法,针对每个任务的处理时间不同,对每个任务进行动态频率调节,减小整个系统的空闲时间,能够很大程度上降低功耗,而且不影响整个视频的解码时间。 响应系统资源需求,根据不同资源等级,实现可分级的解码器输出功率控制方法,根据各个模块的处理时间不同,从宏块级对多个功能模块进行频率调节,以获得在某一功率模式下较低的功耗,同时使得解码器在该功耗下获得最快的解码速度。 也就是解码器具有功耗可扩展的输出模式,也即每一种输出模式下解码器所消耗的功率不一样,用户可以选择不同的输出模式。 [0045] 附图说明
[0046] 图1是公知视频解码器结构图;
[0047] 图2是根据本发明多任务视频解码方法流程图;
[0048] 图3是根据本发明实施例的功率可扩展的视频解码装置结构图;
[0049] 图4是根据本发明实施例的各个功能模块单元流水线划分图。
[0050] 具体实施方式
[0051] 本发明主要是提供一种视频解码装置和方法,其能够很大程度上降低功耗,而且不影响整个视频的解码质量。
[0052] 本发明提供的视频解码装置,包括:设备资源感知单元,频率控制单元,以及多任务解码器;
[0053] 设备资源感知单元,用于确定当前可用功率。 具体用于确定设备当前可用功率。 设备指支持电池供电的某种具体终端,可以为PDA、智能手机、嵌入式实时设备等。 设备上运行视频解码程序,可支持多种视频格式解码,包括QCIF、CIF、QVGA、VGA、D1等,视频解压缩标准可采用H.264、MPEG4、MPEG2、AVS等。
[0054] 频率控制单元,用于依据设备资源感知单元确定的当前可用功率为各任务指配工作频率。 具体依据设备资源感知单元确定的当前可用功率,采用动态频率调节方法,为各任务指配工作频率,调节多任务解码器的处理速度。
[0055] 多任务解码器,用于将视频码流分为多个任务,并依据频率控制单元为各任务所指配的工作频率解码各任务。
[0056] 其中频率控制单元可以设置在多任务解码器之内,也可以设置在多任务解码器之外。
[0057] 多任务解码器包括解码器多任务划分单元,用于将视频解码器划分为多个任务,并将每个任务分配不同的工作频率任务队列中;
[0058] 多任务解码器,包括多个任务划分,具体包含:熵解码任务模块,反离散余弦变换(IDCT)任务模块、去方块滤波任务模块、Intra(帧内)预测任务模块和Inter(帧间)预测任务模块等模块组成。
[0059] 本发明的另一方面也提供了一种功率可分级视频解码装置,包括: [0060] 1)设备资源感知单元,用于确定当前可用功率;
[0061] 2)设定解码模块的多任务划分,并确定任务的工作频率;实现低功耗解码器控制;
[0062] 3)所述各个功能模块在所选的处理频率下对视频进行处理,输出视频。 [0063] 为了使本发明的技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种视频解码装置和方法进行进一步详细说明。
[0064] 图1是公知的视频解码器的结构示意图,视频解码器由熵解码模块100、反离散余弦变换(IDCT)模块102、去方块滤波模块104、Intra(帧内)预测模块110和Inter(帧间)预测模块112等模块组成。压缩后的比特流经过解码模块100得到量化后的一组变换系数x,再经过反离散余弦变换模块102,得到残差Dn’。 Inter预测模块112或Intra预测110根据熵解码模块100解析视频码流得到的预测模式、运动矢量、参考帧等信息,从视频帧缓存108中取出相应的参考图像数据并生成一个预测块,然后预测块与残差Dn′相加后,得到未经滤波的帧,为了去除噪声,提高图像质量,再经过去方块滤波104后得到最后的解码输出图像。
[0065] 图1中所述各个模块的复杂度不一样,对于每个宏块的处理时间也是不相同的。 所以,如何在功率限定的条件下,合理地选择各个模块的处理频率,使得保证视频解码速度的情况下,从而更大降低功耗对解码器是至关重要的。 本发明综合各个模块对视频质量的影响和计算复杂度,进行了动态频率分级方法处理,得到了低功耗的视频解码方法。
[0066] 如图2所示,本发明的多任务视频解码装置,包括具有多个任务232的多任务视频解码器23,以及设备资源感知单元21,频率控制单元22,其中:
[0067] 所述设备资源感知单元21,用于感知设备的工作状态,例如剩余电量和用户指定等;
[0068] 具体设备资源感知单元21感知设备的工作状态。其中工作状态的确定可以主要依据以下两个方面:一是用户指定,用户可以根据自己的需要指定系统工作在:省电、普通、或者充足电量等模式下;二是目前设备的剩余电量,即由剩余电量来确定系统的工作模式为省电、便携、或者充足电量等模式:例如:当电量小于30%时可以定义为省电模式,处于30%~70%定义为普通模式,70%以上为充足电量模式。优选的,当设备电量不足而用户指定的要求又较高时,以感知的设备电量为准。
[0069] 本发明对于多任务解码器处理,首先将解码器按功能模块划分为多个子任务,然后将每个任务分配到不同的任务单元232中进行处理,每个任务单元工作在由频率控制单元22计算出的工作频率。经解码器多任务划分单元231划分后直接按每个任务进行处理,减小在解码过程中任务单元之间的调度。频率控制单元22具有多个输出端,输出端接至232任务1,...,n的输入端。
[0070] 视频解码的并行多任务处理可以从图像组、片slice、宏块MB、以及各个处理模块之间进行协同操作。
[0071] 一帧解码数据可包含一个或多个解码片,对于解码片slice之间,由于解码片slice之间是可以相对独立的,所以可以进行并行解码。
[0072] 本发明包括,片级并行多任务解码操作,一帧解码数据可按多个片slice进行解码,每片slice包含多个宏块MB,一幅图像中每片slice的宏块数不固定。
[0073] 所述多任务解码器23,用于在利用多个任务模块232,或多线程,对视频码流进行解码处理的过程中,采用并行方式执行图像解码;所述多核解码器23采用并行的方式对每个片执行图像解码,对于一帧图像,同时针对该帧中的多个片slice进行并行解码。
[0074] 本发明中,多任务解码器23在这些模块的处理流程中,采用并行方式执行。当码流经过多任务解码器23处理完后,输出至相应重建视频存储区;待完整帧解码和处理完之后,再根据切片顺序和宏块顺序重新排序然后输出至显示设备。
[0075] 由于一帧是由多个切片组成,解码一帧,等效于解码多个切片,对于解码多个切片,可认为多个解码任务。
[0076] 将解码器各个功能单元,依据其处理速度不同,视作不同的任务单元。 然后每个任务单元根据其处理速度重新调整处理频率。 例如,环路滤波单元,占有解码时间长,因此分配高频率,反离散余弦变换单元,占用解码时间短,因此分配低频率。 [0077] 所述的多任务解码器23,包括多个解码任务单元232,每个解码任务单元232包含现有视频解码的全部处理模块,包括图1中的熵解码模块100、反离散余弦变换(IDCT)模块102、去方块滤波模块104、Intra(帧内)预 测模块110和Inter(帧间)预测模块112等模块。
[0078] 如图3所示,详述本发明的多个解码任务单元(图2)232。 包括:频率控制单元300,熵解码控制单元302,反变换反量化单元303,Intra预测单元304,Inter预测单元305,去方块滤波单元306。
[0079] 对于解码的各个任务单元,由于每个模块对宏块的处理具有相关性,所以对每个宏块的处理可采用各个模块并行流水的方法。 而对流水线的划分可以根据需求以及成本来具体划分。
[0080] 由于这些流水处理单元每个的执行时间是不同的,有的花费较长时间,有的需要很少的时间,当前一个宏块处理完后,而后一个宏块的处理单元由于执行时间较慢,使得前一个处理单元处于暂时空闲状态,这样比较浪费资源,所以本发明采用动态频率调节每个处理单元的执行频率,使得每个处理单元都同时完成对宏块的处理。 [0081] 本发明提供了的动态频率调节方法:
[0082] 第一步感知设备的可用功率,由此来调整解码器的最高处理频率。 设备资源感知单元21感知到当前设备的可用功率P后,对多任务视频解码器23里包含的每个任务232分配其合适的功率,因为每个slice包含的宏块数量不一样,可以宏块数量作为分配的依据。包含宏块数量多的分配较多的功率,宏块数量少的分配较少的功率。也就是:当前有n个任务,每个任务包含的宏块数量定义为:m1,m2,......,mn,则每个任务分配的功率为: 其中:Pi为第i个任务所分配的功率,mi为第i个任务包含的
宏块数量。
[0083] 第二步对于每个宏块以最大处理频率为基准,来调节各个处理模块的时钟频率。 最大处理频率的获得:根据上面的步骤,可以获得每个任务的可用功率Pi,那么由i(1)式可以进一步获得每个任务的最大处理频率fmax。
[0084] 作为一种可实施方式,由于各个模块采用不同的算法,会有不同的处理时间,在并行流水线上影响速度的瓶颈在于最慢的那个模块以及任务,因此,较佳地,对并行流水线上处理速度最慢的模块,将其的处理频率分配为最高处理频率,然后以其作为基准来调整其它模块的时钟频率。
[0085] 根据对各个模块在不同平台上运行时间的试验统计,可以获得每个宏块 在不同平台下时流水线上的各个模块的处理时间比值,取运行时间最长的模块,将该模块定为参考频率,其它模块运行时间跟该模块运行时间的比值,记为τi,作为计算依据。 例如:图4为例,将解码器划分为4级流水,分别为:熵解码、反变换、Inter预测(Intra预测)以及滤波。 通常情况下,解码器各模块中,环路滤波模块运行时间最长,则参考频率的计算,可以环路滤波模块为对比依据。 另一方面,若通过一些技术,加速了环路滤波模块,使得其它模块,如熵解码模块变为最耗时模块,则熵解码模块为计算依据。 [0086] 根据试验统计各级流水在一平台下(如DSP,但不局限于DSP平台)的处理时间比值为:τ1,τ2,τ3,τ4,分别表示熵解码,反变换、Inter预测、Intra预测模块相对于滤波模块的运行时间比值。则将滤波的处理频率定为最高的处理频率,定义为:fmax,则根据该频率可以调节其它模块的处理频率,如:熵解码的频率则为:fvlc=τ1·fmax,反变换的处理频率为:fidct=τ2·fmax,Inter预测的处理频率为:fmc=τ3·fmax,Intra预测的处理频率为:fip=τ4·fmax。
[0087] 关于对fmax和τk·fmax的约定:在计算的过程中,如装置(包含终端或芯片)能提供的工作频率任意可调,则fmax和τk·fmax直接为计算的结果;另一方面,考虑到对于一部分装置(包含终端或芯片),能提供的工作频率的可调范围不一定是连续变化,例如提供可用工作频率为[f1,f2,f3,f4,f5,f6,f7,f8]或[f1,f2,......]等,那么对于fmax和τk·fmax的取值,为该装置能提供的可调工作频率范围内,最接近fmax和τk·fmax的频率值。
[0088] 这样,就可以通过感知获得设备的可用功率后,动态地调整每个宏块的各个模块的处理频率,这样可以保证每个模块的处理时间是基本相同的,这样,流水线可以顺利进行,流水线上不需要等待,可以很好地衔接起来。 同时,确保整个设备的最高运行频率为fmax,而在保证不降低解码速度的情况下,动态调节各个模块的处理频率,可以避免流水线上有些模块运行过快,而需要等待其它较慢的模块,这样能够极大地降低功耗。
[0089] 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。 因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。