专利名称:一种多处理器视频编码芯片装置和方法
技术领域:
本发明涉及数字视频信号处理技术领域,特别是涉及一种多处理器视频编 码芯片装置和方法。
背景技术:
尽管晶体管预算在不断增加,微处理器设计技术也在继续提高,然后芯片 时钟频率、同时把散热控制在合理范围的能力却在几年前就开始遇到了障碍。总部设以华盛顿的Digital Power Group能源研究公司估计,如今的计算机耗用 了美国发电总量的10%左右,到2015年这个数字还会翻一番,因而美国正考 虑通过立法迫使企业和技术提供商减少能耗。而通过改用一块芯片里面的多核设计,处理生产商能够减少或维持时钟频 率,同时控制散发的热量,把同一尺寸的硅芯片里面可用的处理引擎数量增加 一倍,同时维持稳定的功耗,这可以大幅提高处理器的总体性能。在可预见的未来,多处理器芯片中的处理器会一直不停地增加下去,如英 特尔(Intel)近期宣布其已研制出有80个处理器的多核处理器芯片,预计功 耗比现有的四核处理器芯片还要低,因此,处理器芯片生产商都向市场推出大 规模并行多核处理器芯片产品。提高架构执行效率、多核心设计、灵活的扩展弹性、深层次的功能整合是 当前微处理器领域的四大技术发展方向。多核心设计是提高每晶体管效能的最 佳手段。在单核处理器中,提高性能主要通过提高频率和增大缓存来实现,前 者会导致芯片功耗的提升,后者则会让芯片晶体管规模激增,造成芯片成本大 幅度上扬。尽管代价高昂,这两种措施也只能带来小幅度性能提升。而如果引 入多核技术,便可以在较低频率、较小缓存的条件下达到大幅度提高性能的目 的。相比大缓存的单核处理器,耗费同样数量晶体管的多核处理器拥有更出色 的效能,同样在每瓦性能方面,多核设计也有明显的优势。正因为如此,当IBM 公司于2001年率先推出双核处理器之后。其他高端RISC处理器厂商也迅速跟进,双核处理器芯片由此成为高端RISC处理器的标准,并且,RISC处理器己经朝向多核、多线程的方向发展,四核心、八核心处理器芯片纷纷登台亮相,并行线程数量达到32条,并且开始从通过多核体系转向简化核以及专用 的数字信号处理器(DSP),实现性能的跨越性提升。而多媒体正在迅速地,以意想不到的方式进入人们生活的多个方面,而其 中一项关键技术即为视频编码技术。随着多核处理器的发展,基于多核处理器 的视频编码装置(芯片)的需求也应运而生,如何能够充分利用多核资源来提 高视频编码芯片的性能,降低编码的功耗等,都需要进一歩研究。发明内容本发明所要解决的问题在于提供一种多处理器视频编码芯片装置和方法, 其能够很大程度上降低功耗,而且不影响整个任务的运行速度。为实现本发明目的而提供的一种多处理器视频编码芯片装置,包括具有多个处理器的多核编码器,以及图像切片单元,其中所述图像切片单元,用于将视频图像划分为多个切片,并将每个切片分配 到多核编码器的不同处理器中进行处理;所述多核编码器,用于在利用多个处理器对图像的切片进行处理的过程 中,采用并行流水的方式执行图像编码。所述多核编码器,还用于在多核编码器的处理器处理完一个切片后,给图 像切片单元发送消息以使图像切片单元发送下一个切片给该处理器。所述的多处理器视频编码芯片装置,还包括频率控制单元,用于使用动态 频率调节方法,调节多核编码器中的处理器的处理速度。所述多核编码器包括多个处理器,每个处理器包含视频编码的全部处理模块,即所述处理器包含运动估计模块,预测模块,变换模块,量化模块,去 方块滤波模块以及熵编码模块。所述量化模块每次并行处理n个数据,例如11=8等,即量化n个数据只 需要1个单位时钟;所述预测模块采用多模式并行运行的方式进行操作。 所述切片包含多个整宏块, 一幅视频图像中每片的宏块数不固定。为实现本发明目的还提供一种多处理器视频编码方法,包括下列步骤步骤A,将图像划分为多个切片,并将每个切片分配到多核编码器的不同 处理器中进行处理;步骤B,在利用多个处理器对图像的切片进行处理的过程中,采用并行流 水的方式执行图像编码。所述歩骤B还包括下列步骤步骤B',在多核编码器的处理器处理完一个切片后,给图像切片单元发 送消息以使图像切片单元发送下一个切片给该处理器。 所述步骤B之后还包括下列步骤歩骤C,使用动态频率调节方法,调节多核编码器中的处理器的处理速度, 尽量使得每个处理器在处理图像切片的过程中同步工作。 所述步骤B包括下列步骤步骤Bl,所述多核编码器中的处理器的每个模块也可以划分为多任务并 行的方式执行。所述步骤B1包括下列步骤在运行估计模块中,采用宏块多个划分模式并行搜索的方法来寻找绝对误 差和最小的那个宏块划分模式,每次计算时都记录下各种划分模式的当前具有 最小的绝对误差和及运动矢量;如果搜索到的宏块误差和小于该当前最小的绝 对误差和,则将当前运动矢量作为当前匹配的宏块,最小的绝对误差和也更新 为该块的绝对误差和,否则,直接进行下一步搜索;最后选择绝对误差和最小 的模式作为最优化编码模式。所述步骤A还包括下列步骤切片在分配给多核编码器进行处理时,首先发送到多核编码器的共享的参 考图像缓冲区。所述步骤C中,所述动态频率调节方法,是设在一时刻"运动估计模块的执行时钟周期为C'^;预测模块的执行时 钟周期C' j变换模块的执行时钟周期C、;量化模块的执行时钟周期为C';戸t/ DCT G尸熵编码模块的执行时钟周期C;;去方块滤波模块的执行时钟周期C^ ;同时,运动估计模块的执行时钟频率为;量化模块的执行时钟频率为 /';变换模块的执行时钟频率/^ ;预测模块的执行时钟频率尸/;熵编码"7 g尸 J ZXT 戶t/模块的执行时钟频率《;去方块滤波模块的执行时钟频率/二 ;设在所述模块中,执行周期最长的任务模块的时钟周期定义为C^,那么 其它模块就以执行周期最长的任务模块为基准进行频率调节;每个模块调节后的频率为(《,/二,/L,4,^,/i'8),其中<formula>formula see original document page 8</formula>本发明的有益效果是本发明的多处理器视频编码芯片装置和方法,针对 多处理器的视频编码技术提出了从片级对编码技术进行并行处理,同时在宏块 级对每个处理模块进行流水线处理,而且在处理模块内部也可以根据各个处理 模块的情况进行并行处理。特别是,本发明针对每个任务的处理时间不同,在 流水线上以及并行处理中对每个任务可以进行动态的频率调节,保证每个任务 都同步运行,减少整个系统的空闲时间,能够很大程度地降低功耗,而且不影 响整个任务的运行速度。
图1为本发明多处理器视频编码芯片装置结构示意图; 图2为本发明多处理器视频编码方法流程图;图3为本发明多核编码器中的处理器采用流水并行处理过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种多处理器视频编码芯片装置和方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定 本发明。如图l所示,本发明的多处理器视频编码芯片装置,包括具有多个处理器31的多核编码器3,以及图像切片(Slice)单元l,频率控制单元2,其中 所述图像切片单元l,用于将视频图像划分为多个切片(Slice),并将每个切片分配到多核编码器3的不同处理器31中进行处理。本发明对于多处理器的编码器处理,首先将编码划分为并行的多任务处理,然后将每个任务分配到不同的处理器31中进行处理,这样使得每个处理器31之间所需要的调度减少,增加硬件的可执行性。视频编码的并行处理可以从图像组、片、宏块以及各个处理模块之间协同操作。因为编码片之间是相互独立的,所以片之间没有相关性,可以并行进行编码。本发明采用片级的并行操作, 一幅图像可以编码成一个或更多个切片,每 切片包含多个整宏块(MB), 一幅图像中每个切片的宏块数不固定。所述多核编码器3,用于在利用多个处理器31对图像的切片进行处理的 过程中,采用并行流水的方式执行图像编码;所述多核编码器3采用并行的方 式对每个片执行图像编码,对于一帧图象,同时针对该帧中的多个切片进行并 行编码,并在多核编码器3的单个处理器31处理完一个切片后,给图像切片 单元1发送消息以使图像切片单元1发送下一个切片给该单个处理器31。本发明中,多核编码器3在这些模块的处理流程中,采用并行流水的方式 执行。当图像经过多核编码器3处理完后,存储到共享的存储区(未示出)中, 最后经过重排序后合成码流发送出去。各个模块之间采用并行流水的处理过 程,当一个宏块在运动估计模块处理完后,直接输入到预测模块进行处理,而 下一个宏块也同时进入到运动估计模块进行处理,依次类推,各个模块之间都 采用这种并行流水的处理,当有多核编码器3的单个处理器31处理完一个切片(Slice)后,给图像 切片单元1发送消息,然后图像切片单元1发送下一个切片给该单个处理器 31。所述的多核编码器3,包括多个处理器31,每个处理器31包含现有的视 频编码的全部处理模块,包括运动估计模块,预测模块,变换模块,量化模 块,去方块滤波模块以及熵编码模块。较佳地,本发明的量化模块,每次并行处理n个数据,例如,n二8,即量 化8个数据只需要1个单位时钟。所述变换模块采用离散余弦变换(Discrete Cosine Transform, DCT)采用 8X8的变换,或4X4的变换,或其它格式变换,变换系数矩阵进行变换。其 变换的数据,也可以为并行操作。所述预测模块采用多模式并行运行的方式进行操作,减少运行时间,而且 帧内预测模式色度和亮度预测是不相关的,所以帧内预测模式色度和亮度的预 测处理可以并行;另外,色度和亮度预测处理时所需的时钟周期也是不同的, 所以可以在色度和亮度预测处理中采用调节方法,包括动态频率调节方法。较佳地,所述多核编码器3,还包括切片缓存模块32,用于缓存需要发送 给不同处理器31的多个切片。幅图像可以划分为多个切片(Slice),每个切片由图像切片单元1分配到 不同的处理器31并行处理,它们之间需要一个共享的参考图像缓冲区。这样 的方法具有较好的实时性。所述频率控制单元2,用于使用动态频率调节方法,调节多核编码器3中 的处理器31的处理速度。此处,动态频率调节包括两种调节模式, 一种为多处理器间,采用不同的 频率;另一种为每个处理器内部,不同编码模块流水处理上,如图3,采用不 同的频率。在每个处理器的工作过程中,也会存在有些切片需要的处理量小,所花费 的时间少,而有些切片需要的处理量大,所花费的时间多,这时,本发明采用 频率控制单元2调节处理器31的处理速度,尽量使得每个处理器31在处理图 像切片时,能够同步工作。采用频率控制单元2控制各个模块的运行频率,使得各个模块也能够同步 运行。如图2所示,下面进一步详细说明本发明的一种多处理器视频编码方法, 包括下列步骤步骤SIOO,将图像划分为多个切片(Slice),并将每个切片分配到多核 编码器3的不同处理器中进行处理;一般视频编码的并行划分的考虑有以下几种基于宏块的,基于帧的,基 于宏块组的,基于图像的,基于图像组的,基于图像序列的。 一般的视频编码都是基于宏块的,通常使用的宏块大小为4X4、 8X8、 8X16、 16X8、 16X 16等,对于基于宏块的并行划分,由于后一个宏块的编码是以前一个宏块为 参考的,所以基于宏块的并行方法只能在单个宏块内采用,并行度比较小。而以图像组(Group Of Picture, GOP)为并行的划分, 一个图像组(GOP) 是一个可独立处理的单元,每一个处理器处理一个图像组,这样虽然并行度比 较高,实现比较简单,但是图像组(GOP)的数据量大,造成较大的延时,实 时性不是很好。本发明采用切片(Slice)的并行划分方法, 一幅图像可以划分为多个切片 (Slice),每个切片由图像切片单元l分配到不同的处理器并行处理。例如,第一个片分配到多核编码器3的第一个处理器处理,第二个片分配 到多核编码器3的第二个处理器处理,第N个切片分配到多核编码器3的第N, 个处理器中处理。较佳地,切片在分配给多核编码器3进行处理时,首先发送到多核编码器 3的共享的参考图像缓冲区,使得图像的处理具有较好的实时性。步骤S200,在利用多个处理器对图像的切片进行处理的过程中,采用并 行流水的方式执行图像编码。本发明将一幅图像根据切片划分为多个不同的任务,每个任务分配到不同 的处理器中进行处理,第一个切片分配到第一个处理器处理,第二个切片分配 到第二个处理器中处理,第N个切片分配到第N'个处理器中处理。这些模块 之间是并行流水的处理过程。每个切片的处理都是由多个宏块组成的,如图3所示,宏块的处理流程即 为运动估计、预测、变换、量化以及熵编码等模块完成,宏块的处理流程都是 现有的技术,因此在本发明中不再一一详细描述。较佳地,每个模块也可以划分为多任务并行的方式执行,尤其是运动估计、 预测以及变换,因为这些模块的处理比较耗时。更佳地,在运行估计模块中,采用宏块多个划分模式并行搜索的方法来寻 找绝对误差和最小的那个宏块划分模式,每次计算时都记录下各种划分模式的 当前具有最小的绝对误差和及运动矢量;如果搜索到的宏块误差和小于该当前 最小的绝对误差和,则将当前运动矢量作为当前匹配的宏块,最小的绝对误差 和也更新为该块的绝对误差和,否则,直接进行下一步搜索。最后选择绝对误 差和最小的模式作为最优化编码模式。进一歩地,所述歩骤S200还包括下列歩骤步骤S210,在多核编码器3的单个处理器处理完一个切片后,给图像切片单元1发送消息以使图像切片单元1发送下一个切片给该单个处理器。当有多核编码器3中的一处理器处理完一个切片(Slice)后,给图像切片 单元1发送消息,然后图像切片单元1发送下一个切片给该处理器。处理完后 的切片,存储到共享的存储区(未示出)中,最后经过重排序后合成码流发送 出去。更进一步地,所述步骤S200之后还包括下列步骤步骤S300,使用动态频率调节方法,调节多核编码器3中的处理器的处 理速度,尽量使得每个处理器在处理图像切片的过程中同步工作。在每个处理器的工作过程中,也会存在有些切片需要的处理量小,所花费 的时间少,而有些切片需要的处理量大,所花费的时间多,这时,本发明采用 频率控制单元2调节处理器的处理速度,尽量使得每个处理器能同步工作。由于这些流水处理单元每个的执行时间是不同的,有的花费较长时间,有 的需要很少的时间,当前一个宏块处理完后,而后一个宏块的处理单元由于执 行时间较慢,使得前一个处理单元处于暂时空闲状态,这样比较浪费资源,所 以本发明采用动态频率调节每个处理单元的执行频率,使得每个处理单元都同 时完成对宏块的处理。作为一种可实施方式,由于处理器的各个模块采用不同的算法,会有不同 的处理时间,在并行流水线上影响速度的瓶颈在于最慢的那个模块以及任务, 因此,较佳地,以多核编码器3并行流水线上处理速度最慢的模块作为基准来 调整其它模块的时钟频率。为C:'『;预测模块的执行时钟周期C',;变换模块的执行时钟周期C腿/XT如在量化模块中,每次并行处理n个数据时,如11=8,那么对8个j 进行离散余弦变换则需要8个单位时钟,如果采用相同的频率进行处理,那么 会造成DCT变换的数据赶不上量化的处理速率,造成量化模块的长时间空闲。 因此,可以降低量化模块的频率,使得8个数据被量化后,同时后面8个数据 的DCT也刚好处理完。这样,量化模块不会处于长时间等待状态中,又能降 低量化模块的功耗。所述动态频率调节方法,是设在一时刻"运动估计模块的执行时钟周期畫化模块的执行时钟周期为C^;熵编码模块的执行时钟周期C"去方块滤波模块 的执行时钟周期C」。同时,运动估计模块的执行时钟频率为/二 ;量化模块 的执行时钟频率为//)p , 变换模块的执行时钟频率/二 ;预测模块的执行时钟<formula>formula see original document page 13</formula>频率/';熵编码模块的执行时钟频率/';去方块滤波模块的执行时钟频率 ,等等。设这些模块中,执行周期最长的任务模块的时钟周期定义为C',17加 切似那么其它模块就以执行周期最长的任务模块为基准进行频率调节,如果运动估计模块为所有模块中执行周期最长的任务模块,所用的时钟周期为c',一,即有C' =C、,那么其它模块就以运动估计模块为基准进行频率调节。她—每个模块调节后的频率为<formula>formula see original document page 13</formula>,其中
<formula>formula see original document page 13</formula>,。、
经过频率调节后,每个子任务都同歩运行,减少整个系统的空闲时间,能够很大程度地降低功耗,而且不影响整个任务的运行速度。 控制各个模块的运行频率,使得各个模块也能够同步运行。本发明的多处理器视频编码芯片装置和方法,针对多处理器的视频编码技 术提出了从片级对编码技术进行并行处理,同时在宏块级对每个处理模块进行 流水线处理,而且在处理模块内部也可以根据各个处理模块的情况进行并行处 理。特别是,本发明针对每个任务的处理时间不同,在多个处理器间可以进行 动态的频率调节,然后,在每个处理器内,在流水线上以及并行处理中对每个 任务可以进行动态的频率调节,保证每个任务都同步运行,减少整个系统的空 闲时间,能够很大程度地降低功耗,而且不影响整个任务的运行速度。通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本 领域的技术人员而言是显而易见的。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只 是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行 解释。
权利要求
1、一种多处理器视频编码芯片装置,其特征在于,包括具有多个处理器的多核编码器,以及图像切片单元,其中所述图像切片单元,用于将视频图像划分为多个切片,并将每个切片分配到多核编码器的不同处理器中进行处理;所述多核编码器,用于在利用多个处理器对图像的切片进行处理的过程中,采用并行流水的方式执行图像编码。
2、 根据权利要求1所述的多处理器视频编码芯片装置,其特征在于,所述多核编码器,还用于在多核编码器的处理器处理完一个切片后,给图像切片 单元发送消息以使图像切片单元发送下一个切片给该处理器。
3、 根据权利要求1或2所述的多处理器视频编码芯片装置,其特征在于, 还包括频率控制单元,用于使用动态频率调节方法,调节多核编码器中的处理 器的处理速度。
4、 根据权利要求3所述的多处理器视频编码芯片装置,其特征在于,所 述多核编码器包括多个处理器,每个处理器包含视频编码的全部处理模块,即 所述处理器包含运动估计模块,预测模块,变换模块,量化模块,去方块滤 波模块以及熵编码模块。
5、 根据权利要求4所述的多处理器视频编码芯片装置,其特征在于,所 述量化模块每次并行处理n个数据,即量化n个数据只需要1个单位时钟;所述预测模块采用多模式并行运行的方式进行操作。
6、 根据权利要求3所述的多处理器视频编码芯片装置,其特征在于,所 述切片包含多个整宏块, 一幅视频图像中每片的宏块数不固定。
7、 一种多处理器视频编码方法,其特征在于,包括下列步骤步骤A,将图像划分为多个切片,并将每个切片分配到多核编码器的不同 处理器中进行处理;步骤B,在利用多个处理器对图像的切片进行处理的过程中,采用并行流 水的方式执行图像编码。
8、 根据权利要求7所述的多处理器视频编码方法,其特征在于,所述步 骤B还包括下列步骤步骤B',在多核编码器的处理器处理完一个切片后,给图像切片单元发 送消息以使图像切片单元发送下一个切片给该处理器。
9、 根据权利要求7或8所述的多处理器视频编码方法,其特征在于,所述步骤B之后还包括下列步骤步骤C,使用动态频率调节方法,调节多核编码器中的处理器的处理速度, 尽量使得每个处理器在处理图像切片的过程中同步工作。
10、 根据权利要求9所述的多处理器视频编码方法,其特征在于,所述歩 骤B包括下列步骤步骤Bl,所述多核编码器中的处理器的每个模块也可以划分为多任务并行的方式执行。
11、 根据权利要求10所述的多处理器视频编码方法,其特征在于,所述步骤B1包括下列步骤在运行估计模块中,采用宏块多个划分模式并行搜索的方法来寻找绝对误 差和最小的那个宏块划分模式,每次计算时都记录下各种划分模式的当前具有最小的绝对误差和及运动矢量;如果搜索到的宏块误差和小于该当前最小的绝对误差和,则将当前运动矢量作为当前匹配的宏块,最小的绝对误差和也更新为该块的绝对误差和,否则,直接进行下一歩搜索;最后选择绝对误差和最小的模式作为最优化编码模式。
12、 根据权利要求9所述的多处理器视频编码方法,其特征在于,所述步 骤A还包括下列步骤切片在分配给多核编码器进行处理时,首先发送到多核编码器的共享的参 考图像缓冲区。
13、 根据权利要求9所述的多处理器视频编码方法,其特征在于,所述步 骤C中,所述动态频率调节方法,是设在一时刻"运动估计模块的执行时钟周期为C';预测模块的执行时 钟周期C j变换模块的执行时钟周期C .;量化模块的执行时钟周期为C''; 熵编码模块的执行时钟周期C:;去方块滤波模块的执行时钟周期C';同时,运动估计模块的执行时钟频率为;量化模块的执行时钭妙变换模块的执行时钟频率/^,.;预测模块的执行时钟频率/—, 熵编码 模块的执行时钟频率/二 ;去方块滤波模块的执行时钟频率/;;设在所述模块中,执行周期最长的任务模块的时钟周期定义为C二,那么 其它模块就以执行周期最长的任务模块为基准进行频率调节;每个模块调节后的频率为<formula>formula see original document page 4</formula>),其中<formula>formula see original document page 4</formula>
全文摘要
本发明公开了一种多处理器视频编码芯片装置和方法。其装置包括具有多个处理器的多核编码器,以及图像切片单元。其中图像切片单元用于将视频图像划分为多个切片,并将每个切片分配到多核编码器的不同处理器中进行处理;多核编码器用于在利用多个处理器对图像的切片进行处理的过程中,采用并行流水的方式执行图像编码;并在多核编码器的处理器处理完一个切片后,给图像切片单元发送消息以使图像切片单元发送下一个切片给该处理器。以及频率控制单元,用于使用动态频率调节方法,调节多核编码器中的处理器的处理速度。其能够很大程度上降低功耗,而且不影响整个任务的运行速度。
文档编号H04N7/26GK101267564SQ20081010420
公开日2008年9月17日 申请日期2008年4月16日 优先权日2008年4月16日
发明者雯 纪, 陈益强 申请人:中国科学院计算技术研究所