结合软硬件实现的视频处理系统、方法及其装置转让专利

申请号 : CN201010222110.4

文献号 : CN102065288B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李强席迎来陈志沖杨柳

申请人 : 美商威睿电通公司

摘要 :

一种结合软硬件实现的视频处理系统及方法,适用于具有一中央处理单元与一硬件加速器的一电子装置。中央处理单元用以至少执行相应一视频的熵编码/解码作业,且硬件加速器用以执行相应视频的熵编码/解码作业之外的其它编码/解码作业。

权利要求 :

1.一种结合软硬件实现的视频处理系统,包括:一硬件加速器,用以接收相应一视频的至少一第一帧,执行相应该第一帧的一第一编码程序,以产生至少一游程停止幅值码;以及一中央处理单元,用以依据该游程停止幅值码执行相应该第一帧的一第二编码程序,其中,该第二编码程序包括一熵编码,以产生相应该第一帧的一码流,该中央处理单元还依据相应一第二帧的该游程停止幅值码、一总码率、及一帧速率计算一量化系数,对于该第一帧进行一边缘扩展作业。

2.根据权利要求1所述的结合软硬件实现的视频处理系统,其中,该硬件加速器还由该中央处理单元接收多个编码控制参数,且依据该多个编码控制参数进行一初始化操作,该多个编码控制参数包括以下参数或其结合:一帧类型;一视频编码标准;一图像尺寸;一量化类型;一量化系数以及一运动估计搜索范围。

3.根据权利要求1所述的结合软硬件实现的视频处理系统,其中,该中央处理单元还依据相应该第一帧的该游程停止幅值码、一总码率、及一帧速率计算一量化系数,以进行相应该视频的一码率控制,其中,该第二帧为该视频中该第一帧的前一个帧,相应该第一帧的该第一编码程序与相应该第二帧的该第二编码程序分别由该硬件加速器与该中央处理单元同时执行,当相应该第二帧的该第一编码程序完成之后,该硬件加速器发出一中断至该中央处理单元,且相应于该中断,该中央处理单元致使该硬件加速器执行相应该第一帧的该第一编码程序。

4.根据权利要求1所述的结合软硬件实现的视频处理系统,其中,该硬件加速器于相应该第一帧的该第一编码程序中还产生多个编码参数,且该中央处理单元依据该游程停止幅值码与该多个编码参数执行相应该第一帧的该第二编码程序,其中,该第一编码程序还包括以下程序或其结合:一运动估计;

一变换与反变换;

一量化与反量化;

一预测及扫描;

一游程编码;以及

一环路滤波。

5.一种结合软硬件实现的视频处理系统,包括:一中央处理单元,用以接收相应一视频的一码流,依据该码流执行一第一解码程序,其中,该第一解码程序包括一熵解码,以产生至少一游程停止幅值码;以及一硬件加速器,用以依据该游程停止幅值码执行一第二解码程序,以重建得到相应该视频的一第一帧,其中,相应该第一帧的该第二解码程序与相应一第二帧的该第一解码程序分别由该硬件加速器与该中央处理单元同时执行。

6.根据权利要求5所述的结合软硬件实现的视频处理系统,其中,该硬件加速器还由该中央处理单元接收多个解码控制参数,且依据该多个解码控制参数进行启动,该解码控制参数包括以下参数或其结合:一帧类型;一视频编码标准;一图像尺寸;一量化类型;一量化系数以及一运动估计搜索范围。

7.根据权利要求5所述的结合软硬件实现的视频处理系统,其中,该第二帧为该视频中该第一帧的下一个帧,当相应该第一帧的该第二解码程序与相应一第二帧的该第一解码程序完成时,该中央处理单元还对于该第一帧进行一边缘扩展作业;

当相应该第一帧的该第二解码程序完成之后,该硬件加速器发出一中断至该中央处理单元,且相应于该中断,该中央处理单元致使该硬件加速器执行相应该第二帧的该第二解码程序。

8.根据权利要求5所述的结合软硬件实现的视频处理系统,其中,该中央处理单元于相应该第一帧的该第一解码程序中还产生多个解码参数,且该硬件加速器依据该游程停止幅值码与该多个解码参数执行相应该第一帧的该第二解码程序,其中,该第二解码程序还包括以下程序或其结合:一运动补偿;

一反变换;

一反量化;

一预测;

一游程编码;以及

一环路滤波。

9.一种结合软硬件实现的视频处理方法,该方法包括下列步骤:一硬件加速器接收相应一视频的至少一第一帧,且执行相应该第一帧的一第一编码程序,以产生至少一游程停止幅值码;以及一中央处理单元依据该游程停止幅值码执行相应该第一帧的一第二编码程序,其中,该第二编码程序包括一熵编码,以产生相应该第一帧的一码流,该中央处理单元还依据相应一第二帧的该游程停止幅值码、一总码率、及一帧速率计算一量化系数,对于该第一帧进行一边缘扩展作业。

10.根据权利要求9所述的结合软硬件实现的视频处理方法,还包括下列步骤:传送多个编码控制参数并根据该多个编码控制参数进行一初始化操作,其中该多个编码控制参数包括以下参数或其结合:一帧类型;一视频编码标准;一图像尺寸;一量化类型;一量化系数以及一运动估计搜索范围。

11.根据权利要求10所述的结合软硬件实现的视频处理方法,还包括下列步骤:依据相应该第一帧的该游程停止幅值码、一总码率、及一帧速率计算一量化系数进行相应该视频的一位码率控制;以及其中,该第二帧为该视频中该第一帧的前一个帧,相应该第一帧的该第一编码程序与相应该第二帧的该第二编码程序被同时执行,当相应该第二帧的该第一编码程序完成之后,发出一中断,相应于该中断,执行相应该第一帧的该第一编码程序。

12.根据权利要求10所述的结合软硬件实现的视频处理方法,还包括下列步骤:相应该第一帧的该第一编码程序中还产生多个编码参数;以及依据该游程停止幅值码与该多个编码参数执行相应该第一帧的该第二编码程序,其中,该第一编码程序还包括以下程序或其结合:一运动估计;

一变换与反变换;

一量化与反量化;

一预测及扫描;

一游程编码;以及

一环路滤波。

13.一种结合软硬件实现的视频处理方法,该方法包括下列步骤:一中央处理单元接收相应一视频的一码流,且依据该码流执行一第一解码程序,其中,该第一解码程序包括一熵解码,以产生至少一游程停止幅值码;以及一硬件加速器依据该游程停止幅值码执行一第二解码程序,以重建得到相应该视频的一第一帧,其中,相应该第一帧的该第二解码程序与相应一第二帧的该第一解码程序分别由该硬件加速器与该中央处理单元同时执行。

14.根据权利要求13所述的结合软硬件实现的视频处理方法,还包括下列步骤:传送多个解码控制参数并根据该多个解码控制参数进行一初始化操作,其中该多个解码控制数包括以下参数或其结合:一帧类型;一视频编码标准;一图像尺寸;一量化类型;

一量化系数以及一运动估计搜索范围。

15.根据权利要求13所述的结合软硬件实现的视频处理方法,其中,该第二帧为该视频中该第一帧的下一个帧,当相应该第一帧的该第二解码程序与相应一第二帧的该第一解码程序完成时,进行一边缘扩展作业;

当相应该第一帧的该第二解码程序完成之后,发出一中断并相应于该中断执行相应该第二帧的该第二解码程序。

16.根据权利要求13所述的结合软硬件实现的视频处理方法,还包括下列步骤:相应该第一帧的该第一解码程序中产生至少一解码参数,依据该游程停止幅值码与该至少一解码参数执行相应该第一帧的该第二解码程序,其中,该第二解码程序还包括以下程序或其结合:一运动补偿;

一反变换;

一反量化;

一预测;

一游程编码;以及

一环路滤波。

说明书 :

结合软硬件实现的视频处理系统、方法及其装置

技术领域

[0001] 本发明是有关于一种视频处理系统及方法,且特别有关于一种可以结合软件与硬件实现相应视频的编码与解码程序的系统及方法。

背景技术

[0002] 随着计算机与网络的普及,数字化内容已经逐渐成为人们生活中重要的一部分。针对质量与数据尺寸的考虑,数字视频必须通过数字压缩技术,以在维持要求质量的前提下,降低视频尺寸,以便于将视频进行传输及用于各式样的应用。
[0003] 一般来说,视频的编码/解码过程可以由相应宏区块(Macro Block,MB)的运动估计、变换与反变换、量化与反量化、预测及扫描、长度编码/解码,如可变长度编码(Variable Length Coding,VLC)/解码与游程编码(RunLength Coding,RLC)/解码等、与/或一环路滤波(Deblocking Loop Filtering)等。注意的是,相应不同编码/解码规格的编码/解码过程与相关介绍为本领域技术人员所熟知,在此省略。
[0004] 已知地,相应不同编码/解码规格的编码/解码过程皆是单纯地通过软件或硬件独自完成。然而,由于相应视频的不同编码/解码作业具有不同的处理特征,若仅使用单一方式即仅使用软件或硬件来对于视频进行编码/解码,其效率将受到限制。

发明内容

[0005] 有鉴于此,本发明提供结合软硬件实现的视频处理系统及方法。
[0006] 本发明实施例的一种结合软硬件实现的视频处理系统及方法适用于具有一中央处理单元与一硬件加速器的一电子装置。中央处理单元用以至少执行相应一视频的熵编码/解码作业,且硬件加速器用以执行相应视频的熵编码/解码作业之外的其它编码/解码作业。
[0007] 本发明实施例的一种结合软硬件实现的视频处理系统包括一中央处理单元与一硬件加速器。硬件加速器用以接收相应一视频的至少一第一帧(Frame),且执行相应第一帧的一第一编码程序,以产生至少一游程停止幅值(Run-Last-Level,RLL)码。中央处理单元可以依据游程停止幅值码执行相应第一帧的一第二编码程序。其中,第二编码程序包括一熵(Entropy)编码,以产生相应第一帧的一码流。
[0008] 本发明实施例的一种结合软硬件实现的视频处理方法适用于具有一中央处理单元与一硬件加速器的一电子装置。首先,通过硬件加速器接收相应一视频的至少一第一帧,且执行相应第一帧的一第一编码程序,以产生至少一游程停止幅值码。之后,通过中央处理单元依据游程停止幅值码执行相应第一帧的一第二编码程序。其中,第二编码程序包括一熵编码,以产生相应该第一帧的一码流。
[0009] 本发明实施例的一种结合软硬件实现的视频处理系统包括一中央处理单元与一硬件加速器。中央处理单元接收相应一视频的一码流,且依据码流执行一第一解码程序。其中,第一解码程序包括一熵解码,以产生至少一游程停止幅值码。硬件加速器依据游程停止幅值码执行一第二解码程序,以重建得到相应视频的一第一帧。
[0010] 本发明实施例的一种结合软硬件实现的视频处理方法适用于具有一中央处理单元与一硬件加速器的一电子装置。首先,通过中央处理单元接收相应一视频的一码流,且依据码流执行一第一解码程序。其中,第一解码程序包括一熵解码,以产生至少一游程停止幅值码。之后,通过硬件加速器依据游程停止幅值码执行一第二解码程序,以重建得到相应该视频的一第一帧。
[0011] 本发明实施例的一种结合软硬件实现的视频处理系统,包括一中央处理单元与一硬件加速器。硬件加速器接收相应一视频的一第一帧,且执行相应第一帧的一第一编码程序,以产生至少一第一游程停止幅值码。当硬件加速器执行相应第一帧的第一编码程序时,中央处理单元依据一第二游程停止幅值码执行相应视频的一第二帧的一第二编码程序。其中,第二编码程序包括一熵编码,以产生相应第二帧的一码流。第二帧为视频中第一帧的前一个帧。
[0012] 本发明实施例的一种结合软硬件实现的视频处理系统,包括一中央处理单元与一硬件加速器。中央处理单元接收相应一视频的一第二帧的一码流,且依据码流执行一第一解码程序。其中,第一解码程序包括一熵解码,以产生至少一第二游程停止幅值码。当中央处理单元执行相应第二帧的第一解码程序时,硬件加速器依据一第一游程停止幅值码执行一第二解码程序,以重建得到相应视频的一第一帧。其中,第二帧为视频中第一帧的下一个帧。
[0013] 在一些实施例中,当硬件加速器完成相应一帧的第一编码程序/第二解码程序之后,硬件加速器可以发出一中断至中央处理单元。相应于中断,中央处理单元可以致使硬件加速器执行相应另一帧的第一编码程序/第二解码程序。
[0014] 本发明上述方法可以通过程序码方式存在。当程序码被机器加载且执行时,机器变成用以实行本发明的装置。
[0015] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图示,详细说明如下。

附图说明

[0016] 图1为一示意图是显示依据本发明实施例的结合软硬件实现的视频处理系统。
[0017] 图2为一流程图是显示依据本发明实施例的结合软硬件实现的视频处理方法。
[0018] 图3为一示意图是显示依据本发明另一实施例的结合软硬件实现的视频处理系统。
[0019] 图4为一流程图是显示依据本发明实施例的结合软硬件实现的视频编码方法。
[0020] 图5为一流程图是显示依据本发明实施例的结合软硬件实现的视频解码方法。
[0021] 图6为一示意图是显示依据本发明实施例的视频编码与解码的流水线管理。
[0022] 图7A为一示意图是显示依据本发明实施例的硬件加速器的视频编码的流水线管理。
[0023] 图7B为一示意图是显示依据本发明实施例的硬件加速器的视频解码的流水线管理。

具体实施方式

[0024] 图1显示依据本发明实施例的结合软硬件实现的视频处理系统。
[0025] 依据本发明实施例的结合软硬件实现的视频处理系统1000至少包括一储存单元1100、一中央处理单元(Central Processing Unit,CPU)1200、与一硬件加速器(Hardware Accelerator)1300。储存单元1100可以为一外部储存装置,用以储存视频编/解码所需的相关数据。举例来说,当进行视频编码时,储存单元1100可以储存目前要编码的数据、参考帧数据、重建帧数据、编码参数、游程停止幅值码RLL、及相应视频的码流(Bit Stream)等。
当进行视频解码时,储存单元1100可以储存相应视频的码流、解码参数、RLL码、参考帧数据、及重建帧数据等。中央处理单元1200与硬件加速器1300可以结合来执行本发明的结合软硬件实现的视频处理方法,其细节将于后进行说明。
[0026] 图2显示依据本发明实施例的结合软硬件实现的视频处理方法。依据本发明实施例的结合软硬件实现的视频处理方法适用于至少具有一中央处理单元与一硬件加速器的电子装置。
[0027] 首先,如步骤S2100,电子装置由一储存单元取得一视频。其中,视频可以包括多个帧,且每一帧包括多个宏区块。如步骤S2200,配置中央处理单元来执行相应视频帧的熵(Entropy)编/解码作业,且如步骤S2300,配置硬件加速器来执行相应视频帧的熵编/解码之外的相关编/解码作业,以得到相应视频帧的码流。值得注意的是,依据不同的视频规格,熵编/解码之外的相关编/解码作业可以有所不同。惟,其共同点在于通过中央处理单元来执行相应视频帧的熵编/解码作业。值得注意的是,在一些实施例中,编码时,熵编码、边缘扩展及码率控制可以通过中央处理单元来执行,其余视频编码作业则由硬件加速器执行。在一些实施例中,解码时,熵解码、边缘扩展、错误消除与隐藏可以通过中央处理单元来执行,其余视频解码作业则由硬件加速器执行。另外,中央处理单元与硬件加速器间的数据流可以依据不同的视频规格进行设计与调整。之后,如步骤S2400,判断目前帧是否是视频的最后一个帧。若目前帧并非是视频的最后一个帧,即步骤S2400的否,流程回到步骤S2200,继续处理其它的帧。若目前帧是视频的最后一个帧,即步骤S2400的是,结束流程。
[0028] 图3显示依据本发明另一实施例的结合软硬件实现的视频处理系统。
[0029] 依据本发明实施例的结合软硬件实现的视频处理系统1000至少包括一储存单元1100、一中央处理单元1200、与一硬件加速器1300。类似地,储存单元1100可以为一外部储存装置,用以储存视频编/解码所需的相关数据,如一目前帧1110、一参考帧1120、RLL码1130、1132、及1134、一重建帧1140,其用法将于后进行说明。中央处理单元1200可以执行一硬件加速器控制1210、一解码预处理1220、与一编码后处理1230。当硬件加速器控制1210执行时,中央处理单元1200可以配置硬件加速器1300中的相关暂存器,且检查相关配置是否正确,并启动硬件加速器1300。另外,中央处理单元1200可以申请、与注册DMA(Direct Memory Access,直接存储器存取)通道(图中未显示)、检查DMA通道状态、配置DMA暂存器、启动DMA等。硬件加速器1300与DMA控制器被启动之后硬件加速器1300便可以开始编码或解码。当编码后处理1230时,中央处理单元1200可以进行熵编码与码率(Bit Rate)控制。其中,中央处理单元1200可以由储存单元1100读取RLL码与编码参数,以进行熵编码,且输出相应帧的码流。目前帧的编码结果、总码率以及帧速率(Frame Rate)可以计算出下一帧的量化系数,且对于硬件加速器1300输出的重建帧进行一边缘扩展作业,以用于下一帧的运动估计。当解码预处理1220执行时,中央处理单元1200可以对于相应视频的码流进行熵解码,且以事先定义的解码参数和RLL码的格式输出到储存单元
1100中。
[0030] 在此实施例中,硬件加速器1300可以包括一硬件加速器控制器1310、一运动估计加速器(MEACC,Motion Estimation Accelerator)1320、一变换与量化加速器(DQACC,DCT/IDCT Quantization/Dequantization Accelerator)1330、一去块效应滤波器(DFACC,DCT/IDCT and Quantization/Dequantization Accelerator)1340、与一内部储存单元1350。硬件加速器控制器1310可以在相应每一帧的编码作业开始时由中央处理单元接受相关参数,且依据接收的参数配置运动估计加速器1320、变换与量化加速器1330、与去块效应滤波器1340。硬件加速器控制器1310亦可配置硬件加速器1300的暂存器,并启动硬件加速器1300。在视频的编码或解码过程中,硬件加速器控制器1310可以处理来自MEACC 1320、DQACC 1330、与DFACC 1340的中断,并依据接收的中断控制硬件加速器1300中视频编码或解码的流程。注意的是,在硬件加速器1300中是以宏区块为单位来进行视频的编码或解码。当MEACC 1320、DQACC 1330、与DFACC 1340完成相应宏区块的编码或解码时便会产生一中断至硬件加速器控制器1310。当相应一个帧的编码或解码完成时,硬件加速器控制器
1310会产生一个中断给中央处理单元1200。相应于中断,一中断服务程序可以给编/解码作业一个编/解码结束的事件,中央处理单元1200可以处理相应下一帧的编/解码作业。
另外,硬件加速器控制器1310可以管理储存单元1100与硬件加速器1300间一FIFO(先进先出)队列/暂存器的读写作业,以避免FIFO发生上溢(Overflow)或下溢(Underflow)的情形。此外,硬件加速器控制器1310亦会计算内部储存单元1350的基地址,以对于内部储存单元1350的存取进行相关管理。其中,内部储存单元1350可以包括多个暂存器,如当前块暂存器(CB:Current Block)、搜寻窗口暂存器(SW:Search Window)、FIFO暂存器、及重构建块暂存器(RCB:Reconstructed block)等,其用法将于后进行说明。
[0031] MEACC 1320是于编码时进行运动估计,且于解码时进行运动补偿。其中,MEACC1320可以在编码和解码过程中进行1/2像素、1/4像素、1/8像素的内插。MEACC 1320可以在编码过程中进行整像素、1/2像素、1/4像素的运动估计。对于一些特定视频规格,如H.264、AVS,MEACC 1320可以进行宏区块的帧内(Intra-Frame)预测。此外,MEACC 1320亦可以进行宏区块的残差计算(Residual Calculation)与运动向量预测等。DQACC 1330用以进行变换与反变换、量化与反量化、与预测及扫描等。其中,DQACC 1330可以在编码过程中对宏区块的残差系数进行变换、量化、反量化、与反变换。DQACC 1330可以将残差系数与参考帧相加以得到重建帧。对于一些特定视频规格,如MPEG4与VC-1,DQACC 1330可以进行DC/AC(交流/直流)预测。DQACC 1330亦可以进行Zigzag/垂直/水平扫描、相应量化后系数的游程编码、游程解码、及反Zigzag/垂直/水平扫描等。DFACC 1340主要用以消除区块的失真。
[0032] 图4显示依据本发明实施例的结合软硬件实现的视频编码方法。依据本发明实施例的结合软硬件实现的视频编码方法适用于至少具有一中央处理单元与一硬件加速器的电子装置。
[0033] 如步骤S4100,中央处理单元进行相关初始化作业。其中,初始化作业主要是用以确定帧的编码类型(帧内编码或帧间编码)、图像尺寸、且进行码率控制运算,以确定目前帧编码所使用的量化系数。提醒的是,在一些实施例中,撷取的视频(图像数据)经过预处理后可以被缓冲储存在储存单元1100中,之后,可以先对于视频进行缩放与颜色变换等作业。之后,如步骤S4200,中央处理单元配置且启动硬件加速器与相关控制器,如一中断控制器、一DMA控制器与相关暂存器等。其中,编码参数可以包括帧类型,内帧(I帧)或预测帧(P或B帧)、视频编码标准、图像尺寸、量化类型、量化系数、运动估计搜索范围等。如步骤S4300,硬件加速器取得视频的一帧(目前帧),且对于目前帧执行一第一编码程序,以产生至少一RLL码。同时,如步骤S4400,中央处理单元对于视频中目前帧的前一个帧进行编码后处理,以执行相应此前一个帧的一第二编码程序。其中,第二编码程序包括熵编码,以产生相应帧的码流。第一编码程序则可以包括熵编码之外的相关视频编码作业。
[0034] 提醒的是,如前所述,编码参数可以包括帧类型,相应不同帧类型的第一编码程序可以具有不同的作业细节。举例来说,在相应内帧的第一编码程序中,DMA可以由储存单元读取一个宏区块并写到内部储存单元的CB暂存器中。接着,MEACC由内部储存单元的CB暂存器中读取一个宏区块并重新按照区块的方式写到内部储存单元的MB暂存器中。之后,DQACC执行变换和量化、对于视频格式为MPEG4与VC-1的帧进行DC/AC预测、及扫描和游程编码,并把产生的RLL码和编码参数存入FIFO中,且通过DMA将编码结果搬到储存单元。同时,DQACC对量化结果做反量化和反变换。对于视频格式为H.264、VC-1与AVS的帧,则DFACC可以进行环路滤波,并将重建帧存入储存单元。另外,在相应单向预测帧(P帧)的第一编码程序中,DMA可以从储存单元读一个宏区块并写到内部储存单元的CB暂存器。同时,DMA读取搜索窗内容并写到内部储存单元的SW暂存器。接着,MEACC由内部储存单元的CB暂存器中读取一个宏区块,并进行运动估计,且输出宏区块类型和宏区块残差到内部储存单元的参考块(RFB:Reference Block)暂存器。之后,DQACC执行变换和量化,并把产生的RLL码和编码参数存入FIFO中,且通过DMA将编码结果搬到储存单元。同时,DQACC对量化结果做反量化和反变换与运动补偿。对于视频格式为H.264、VC-1与AVS的帧,则DFACC可以进行环路滤波,并将重建帧存入储存单元。此外,在相应双向预测帧(B帧)的第一编码程序中,DMA可以从储存单元读一个宏区块并写到内部储存单元的CB暂存器,同时,DMA从两个参考帧中分别读取搜索窗内容并写到内部储存单元的SW暂存器中。接着,MEACC执行运动估计,且输出宏区块类型和宏区块残差到内部储存单元的RFB暂存器。之后,DQACC执行变换和量化,并把产生的RLL码和编码参数存入FIFO中,且通过DMA将编码结果搬到储存单元。同时,DQACC对量化结果做反量化和反变换与运动补偿,且DFACC进行环路滤波,并将重建帧存入储存单元。
[0035] 提醒的是,由于硬件和软件是以帧为单位来进行流水线操作,因此在等待硬件编码即第一编码程序结束的过程中,软件可以处理相应上一帧的硬件编码的结果,即熵编码也称第二编码程序,并按照标准的格式产生码流。当相应目前帧的第一编码程序与相应目前帧的前一个帧的第二编码程序完成之后,如步骤S4500,中央处理单元对于硬件加速器输出的帧进行一边缘扩展作业,以用于下一帧的运动估计。如步骤S4600,判断目前帧是否是视频的最后一个帧。若目前帧并非是视频的最后一个帧,即步骤S4600的否,流程回到步骤S4100,继续处理其它的帧。若目前帧为视频的最后一个帧即步骤S4600的是,如步骤S4700,中央处理单元对于目前帧进行编码后处理,以执行相应目前帧的第二编码程序,从而完成相应此视频的编码作业。
[0036] 图5显示依据本发明实施例的结合软硬件实现的视频解码方法。依据本发明实施例的结合软硬件实现的视频解码方法适用于至少具有一中央处理单元与一硬件加速器的电子装置。
[0037] 如步骤S5100,中央处理单元进行相关初始化作业。其中,初始化作业主要是初始化一变长码表格,用于加速熵解码的速度。如步骤S5200,中央处理单元进行相应视频中第一个帧的解码预处理,用以依据第一个帧的码流执行相应该第一个帧的一第一解码程序。其中,第一解码程序包括熵解码,以产生至少一RLL码。RLL码与解码参数将以预定义的格式储存至储存单元中。提醒的是,在一些实施例中,储存在外部存储器,如SD卡或闪存中的多媒体文件(视频)可以被读取且解析其码流,并将相应的帧数据储存在储存单元中。如步骤S5300,中央处理单元配置且启动硬件加速器与相关控制器,如一中断控制器、一DMA控制器与相关暂存器等。之后,如步骤S5400,硬件加速器依据中央处理单元所产生的RLL码执行一第二解码程序,以重建得到视频的一目前帧。其中,第二解码程序可以包括熵解码之外的相关视频解码作业。同时,如步骤S5500,中央处理单元判断目前帧是否为视频的最后一个帧。若目前帧为视频的最后一个帧即步骤S5500中的是,流程至步骤S5700。若目前帧并非是视频的最后一个帧,即步骤S5500的否,如步骤S5600,中央处理单元对于视频中目前帧的下一个帧进行解码预处理,以执行相应下一个帧的第一解码程序。
[0038] 类似地,相应不同帧类型的第二编码程序可以具有不同的作业细节。举例来说,在相应内帧的第二解码程序中,DMA可以将RLL码和解码参数搬到FIFO中。接着,DQACC可以从FIFO中读取数据,并执行反扫描、反变换、与反量化。对于视频格式为H.264、VC-1与AVS的帧,DFACC可以进行环路滤波,并将重建帧通过DMA存入储存单元。另外,在相应单向预测帧(P帧)的第二解码程序中,DMA可以将RLL码和解码参数搬到FIFO中。同时,DMA将搜索窗像素搬到内部储存单元的SW暂存器中。接着,MEACC进行像素内插。同时,DQACC从FIFO中读取RLL码,由RLL码反游程得到残差系数,并对残差系数进行反扫描、反变换、反量化,之后将残差系数与像素内插后的结果相加得到运动补偿重建帧。对于视频格式为H.264、VC-1与AVS的帧,DFACC可以进行环路滤波,并将重建帧通过DMA存入储存单元。此外,在相应双向预测帧(B帧)的第二解码程序中,DMA可以将RLL码和解码参数搬到FIFO中。同时,DMA将搜索窗像素搬到内部储存单元的SW暂存器中。接着,MEACC进行像素内插。同时,DQACC从FIFO中读取RLL码,由RLL码反游程得到残差系数,并对残差系数进行反扫描、反变换、反量化,之后将残差系数与像素内插后的结果相加得到运动补偿重建帧。DFACC进行环路滤波,并将重建帧通过DMA存入储存单元。
[0039] 值得注意的是,重建帧亦可以进行一图像后处理,如图像缩放与/或颜色变化等作业。提醒的是,如前所述,由于硬件和软件是以帧为单位来进行流水线操作,因此在等待硬件解码即第二解码程序结束的过程中,软件可以处理相应下一帧的解码预处理,即第一解码程序,并按照预定义的格式产生RLL码。当相应目前帧的第二解码程序与相应目前帧的下一个帧的第一解码程序完成之后,如步骤S5700,中央处理单元对于硬件加速器输出的帧进行一边缘扩展作业,以用于下一帧的运动估计。如步骤S5800,判断相应视频的解码作业是否完成。若相应视频的解码作业并未完成,即步骤S5800的否,流程回到步骤S5300,继续处理其它帧的解码作业。若相应视频的解码作业已经完成,即步骤S5800的是,结束流程。
[0040] 在本发明中,软件与硬件的编/解码作业可以进行流水线管理。软件与硬件的编/解码作业是以帧为单位进行流水线管理。图6显示依据本发明实施例的视频编码与解码的流水线管理。假设相应视频的帧速率为30且每个帧的长度为33毫秒。其中,P1是视频帧开始输入的时间点,P2是硬件开始进行编/解码的时间点,P3是软件开始进行编码后处理/解码预处理的时间点,且P4是视频帧开始输出的时间点。其中,N-3、N-2、...、N+1是编码帧的编号,且M-2、M-1、...、M+2是解码帧的编号。如图所示,当硬件对于目前帧进行编码的时候,软件可以同时对于目前帧的前一个帧进行编码。一般来说,相应一个帧的软件编码的时间要小于一个帧的硬件编码的时间,所以中央处理单元还有多余的时间可以去做其它的处理,如音频解码等。另一方面,当软件对于目前帧进行解码时,硬件可以对于目前帧的上一个帧进行解码。如此一来,中央处理单元与硬件加速器的利用率可以提高。
[0041] 另外,在本发明中,硬件加速器中的编/解码作业亦可以进行流水线管理。硬件加速器中的编/解码作业是以宏区块为单位进行流水线管理。接下来,以预测帧(P帧)进行说明。图7A显示依据本发明实施例的硬件加速器的视频编码的流水线管理。如图所示,硬件加速器的视频编码可以分为原始图像输入(SC1),运动估计(SC2),变换和量化(SC3),环路滤波(SC4),与输出编码参数、RLL码和重建帧(SC5)等5级流水线。个别级中的宏区块可以并行处理相应的编码作业。另一方面,图7B显示依据本发明实施例的硬件加速器的视频解码的流水线管理。如图所示,硬件加速器的视频解码可以分为参考图像、解码参数、及RLL码输入(SD1),像素内插、DC/AC预测、反量化、及反变换(SD2),环路滤波(SD3),及输出重建帧(SD4)等4级流水线。个别级中的宏区块可以并行处理相应的解码作业。
[0042] 因此,通过本发明的结合软硬件实现的视频处理系统及方法可以结合中央处理单元与硬件加速器来协同完成相应视频视编/解码作业,从而提高相关装置与元件的利用率。另外,由于硬件编码或解码中断中央处理单元的次数减少到每个帧一次,使得中央处理单元处理中断的次数只与编码或解码的帧速率相关,而和图像的分辨率无关。因此,可以大幅降低了中央处理单元处理硬件加速器中断的负荷。另一方面,依照本发明的实施架构,编码过程与解码过程只分别需要4个与3个DMA通道,且编码和解码的DMA通道可以重复使用。仅需要较少的DMA通道便可完成相应视频的编/解码作业。
[0043] 本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可以包含于实体媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,亦或不限于外在形式的计算机程序产品,其中,当程序码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。程序码也可以通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如计算机接收、加载且执行时,此机器 变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
[0044] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。