一种基于软硬件协同控制的视频解码器的制作方法

文档序号:7596383阅读:159来源:国知局
专利名称:一种基于软硬件协同控制的视频解码器的制作方法
技术领域
本发明涉及数字图像编解码技术,具体地说,涉及一种基于软硬件协同控制的视频解码器。
背景技术
现有的视频编解码技术几乎都采用混合编码/解码方式,例如MPEG-1、MPEG-2、MPEG-4、H.26x及中国正在推出的AVS标准等。典型的解码结构如图1所示,该解码结构采用了时间及空间的运动补偿、反变换、反量化和熵解码(变长解码)、帧内预测、去块效应滤波器等模块。
编码视频码流采用了层次结构,即由外到内一层包一层的结构,分别是序列层、图像组层、图像层、组块层、宏块层和块层,具体的包含关系是一个序列包含多个图像组,每个图像组包含多个图像,每个图像包含多个宏块,每个宏块包含多个块,每个块包含真正的编码图像数据;组块层则用于错误恢复。每一层的开始都以一个唯一的码字来标识,其后是对其它各层不变的信息编码,码字和信息编码被称为头信息,例如,序列头信息中包含的图像宽高对于其它各层是一样的,即对于一个序列是不会变的,而其中的编码图像模式对于每个图像都是不同的,因此需要在图像层进行编码。序列层是开始解码一个序列时必须经过的层次,因此在电视广播或者流媒体播放中的随机切入需要从序列头开始;而图像组层规定该图像组中的图像在编解码时不能预测其它组的图像信息,即将该图像组作为一个独立的编码单元处理,这样可方便图像的随机访问;图像层则包含一帧图像的编码信息,具有不同的编码模式。
在现有技术中,对上述信息的解码在芯片中是采用硬件加速器来实现的,这种方案不仅使整个芯片的逻辑变得十分复杂,而且缺少灵活性。由于视频技术应用在不同应用领域中,发生变化的一般是视频编码的过程,而解码的核心算法不会发生变化,因此本发明单独将视频解码的控制抽离出来,通过软件实现,其它视频解码还是通过硬件加速器来实现。

发明内容
本发明所要解决的技术问题在于提供一种基于软硬件协同控制的视频解码器,可实现高清编码视频码流的实时解码显示,具有高性价比和易扩展性。
本发明所述视频解码器,包括视频解码控制器、变长解码器、运动补偿处理器、反量化处理器、反变换处理器、帧内预测补偿处理器和滤波及帧存储管理器;所述视频解码控制器,用于待解码视频码流的解码控制,并将发送给各处理器的命令发送到所述变长解码器;所述变长解码器,用于在所述视频解码控制器的控制下进行熵解码,并将收到的命令转发给相应的处理器;所述运动补偿处理器,用于获取参考帧数据并进行运动补偿,将补偿后的图像数据发送给所述帧内预测补偿处理器;所述反量化处理器,用于进行反量化处理,并输出到所述反变换处理器;所述反变换处理器,用于进行反变换处理,并将得到的残差数据发送给所述帧内预测补偿处理器;所述帧内预测补偿处理器,用于进行帧内预测处理,并根据所述运动补偿处理器和所述反变换处理器输出的数据重构解码宏块数据,输出到所述滤波及帧存储管理器;所述滤波及帧存储管理器,用于进行去块效应滤波,并将当前解码宏块数据写入解码缓冲区。
本发明视频解码器实现了视频解码的软硬件协同控制,既降低了硬件逻辑的复杂度,又提高了解码器的扩展性,通过采用宏块级流水操作,大大提高硬件的处理效率,从而提高解码器的解码速度,也就是说,在满足相同解码速度的要求下,大大降低了对硬件本身的性能要求,降低了解码器的代价。


图1是现有的视频解码结构示意图;图2是本发明视频解码器的软硬件分配图;图3是本发明视频解码器的结构示意图;图4是本发明的流水线操作阶段示意图;图5是本发明应用于AVS1.0视频标准中的工作流程图。
具体实施例方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
图1是现有技术的解码结构示意图,已在背景技术中描述,此处不再赘述。本发明提出了一种基于软硬件协同控制的视频解码器,其中的解码控制部分可通过软件来实现,而其它解码部分则通过硬件加速器来实现,如图2所示,解码控制部分作为嵌入式CPU置于视频解码器中。
图3给出了本发明视频解码器的结构示意图,包括视频解码控制器、变长解码器、运动补偿处理器、反量化处理器、反变换处理器、帧内预测补偿处理器和滤波及帧存储管理器。视频解码控制器运行在嵌入式CPU中,通过变长解码器的协助完成编码码流的解析及整个流水线的控制,而其它处理器都作为一个单独的硬件加速器来实现某种特定的解码功能。
视频解码控制器可采用软件实现,用于视频码流的解码控制和命令发送控制,包括宏块层以上的解码控制模块、宏块层及以下的解码控制模块和命令发送控制模块。宏块层以上的解码控制包括码流解析控制、差错控制、复位控制、同步控制、随机访问/切入控制、缓冲区控制、宏块可用性控制等;宏块层及以下的解码控制是指负责一个宏块的解析控制,并将得到的参数以命令的方式发送给相应的硬件处理器。为了减少软硬件之间的接口,视频解码控制器发给各硬件处理器的命令通过命令发送控制模块统一发送给变长解码器,由变长解码器进行转发。
变长解码器支持编码码流中所有语法元素的解析,由视频解码控制器控制完成熵解码过程,同时作为软硬件通信的一个接口,负责将视频解码控制器发送的命令转发给相关的硬件处理器。此外,为减轻视频解码控制器的压力,变长解码器也可将某些块解码元素直接发送给相应的硬件处理器。
运动补偿处理器接收视频解码控制器发出的参考帧地址在解码缓冲区中获取参考帧数据,然后进行运动补偿,并将运动补偿后的图像数据发送给帧内预测补偿处理器进行图像重构。
反量化处理器和反变换处理器,主要完成反量化和反变换处理,经过反量化处理后的数据直接输出到反变换处理器,而且反变换处理器不需要接收来自视频解码控制器的任何命令;反变换处理器输出残差数据到帧内预测补偿处理器中。
帧内预测补偿处理器除了完成帧内预测的功能外,还负责将经过运动补偿后的图像数据与经过反变换后的残差数据相加以重构解码宏块数据。
滤波及帧存储加速器用于完成去块效应滤波功能,并根据视频解码控制器以命令方式传递过来的存储地址将当前解码宏块数据写入解码缓冲区中。
考虑到运动补偿处理器的复杂性,将其分为运动向量预测、参考帧获取和象素插值三个模块,运动向量预测模块完成运动补偿的运动向量计算及选择补偿模式,参考帧获取模块根据视频解码控制器传递过来的参考帧地址及运动向量预测模块传递过来的运动向量从解码缓冲区中读取参考数据,然后传递给象素插值模块进行象素插值后传递给帧内预测补偿处理器。
为了保证视频解码器的解码速度,本发明解码器采用宏块级流水操作,如图4所示。本发明解码器共分为5级流水,其中变长解码器处于第1级流水,反量化处理器和运动向量预测模块处于第2级,反变换处理器和参考帧获取模块处于第3级,帧内预测补偿处理器和象素插值模块处于第4级,滤波及帧存储管理器则处于第5级。
为实现上述流水操作的正常进行,在各硬件处理器之间都有先进先出的缓冲区队列(以下称FIFO),用于缓存数据,包括数据FIFO和命令FIFO两种,其中数据FIFO主要用于存储数据,而命令FIFO则存储相关的控制信息。具体是变长解码器与反量化处理器之间存在命令FIFO和数据FIFO;变长解码器与运动补偿处理器之间存在命令FIFO和数据FIFO;变长解码器与帧内预测补偿处理器之间存在命令FIFO和数据FIFO;反量化处理器与反变换处理器之间存在数据FIFO;反变换处理器与帧内预测补偿处理器之间存在数据FIFO;运动补偿处理器与帧内预测补偿处理器之间存在数据FIFO;帧内预测补偿处理器与滤波及帧存储管理器之间存在数据FIFO。因此,对于某些处理器可能存在多个FIFO,例如帧内预测补偿处理器有2个数据FIFO和1个命令FIFO,其中1个数据FIFO用于接收来自运动补偿处理器的预测宏块数据,另一个数据FIFO接收来自反变换处理器的残差数据,对于帧间编码模式的宏块只有2个数据FIFO中都有可利用的数据以及命令FIFO中有足够的信息后,帧内预测补偿处理器才开始处理。因此只有FIFO中存有数据,后面的处理器才可以进行数据的处理;同时每个上级处理器在进行处理之前都要检查它的下级处理器的FIFO是否有空间,如果没有则需等待。
在AVS1.0视频编解码标准中,其视频解码框架与H.264(JVT)相似,即如图1所示的结构,采用最大两个前向参考帧,包括帧内编码(I帧)、前向预测编码(P帧)和双向预测编码(B帧)三种图像编码模式;象素插值采用1/4象素插值;宏块预测模式包括帧内预测和帧间预测两种模式。
本发明视频解码器基于AVS1.0的具体流程如图5所示,包括视频解码控制器检测视频解码使能信号,如果未使能,则等待;否则初始化视频解码器,包括对视频解码控制器进行初始化;使能变长解码器和显示控制加速器。视频解码控制器向变长解码器发送搜索头语法元素的命令,变长解码器解析后将头类型返回视频解码控制器。视频解码控制器检测解析的语法元素是否正确,如果发现出错,则通知变长解码器搜索下一个I帧的头位置,然后继续解析,并返回头类型;如果解析的语法元素正确,则视频解码控制器在变长解码器的协助下,解析头信息。对于视频解码控制器与变长解码器之间的每一次交互,都需对语法元素的正确性进行检测。
在解析头信息时,如果是序列头,则获得必要的控制信息,并发送给相应的硬件处理器,具体包括将序列格式通过变长解码器发送给运动补偿处理器和显示控制加速器;将图像宽高通过变长解码器发送给运动补偿处理器、滤波及帧存储管理器和显示控制加速器;将帧率通过变长解码器发送给显示控制加速器。然后返回进行下一个头信息的解码。
如果是图像头,则获得必要的控制信息,并发送给相关的硬件处理器,具体包括将图像间距、图像编码类型、滤波标识及参数、加权预测参数和图像编码格式通过变长解码器发送给运动补偿处理器;将顶底场次序和重复次数通过变长解码器发送给显示控制加速器。然后由视频解码控制器计算缓冲区的地址,包括参考帧地址、当前帧存储地址和显示帧地址;并将参考帧地址发送给运动补偿处理器。判断存储地址对应的解码帧是否已被显示,如果未被显示,则继续等待;如果已显示,则将存储帧地址发送给滤波及帧存储管理器。然后进入宏块解码的过程,视频解码控制器在变长解码器的协助下解析宏块头信息,再通过变长解码器判断所有其它处理器的命令FIFO是否满,如果发现所有的命令FIFO都不满,则集中通过变长解码器把宏块级命令发送给各处理器,例如将量化参数发送给反量化处理器、当前宏块位置发送给运动补偿处理器、滤波及帧存储管理器和帧内预测补偿处理器等。
视频解码控制器将宏块级命令发送给各处理器后,便进行下一个宏块头的解析,此时只要各处理器输入端的FIFO中有数据,而输出端的FIFO不满,则该处理器就可以正常工作,进而实现宏块级的流水操作。当一帧图像解码完毕后,进入下一帧图像的解码。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种基于软硬件协同控制的视频解码器,包括运动补偿处理器、反量化处理器、反变换处理器、帧内预测补偿处理器和滤波及帧存储管理器,其中所述运动补偿处理器,用于获取参考帧数据并进行运动补偿,将补偿后的图像数据发送给所述帧内预测补偿处理器;所述反量化处理器,用于进行反量化处理,并输出到所述反变换处理器;所述反变换处理器,用于进行反变换处理,并将得到的残差数据发送给所述帧内预测补偿处理器;所述帧内预测补偿处理器,用于进行帧内预测处理,并根据所述运动补偿处理器和所述反变换处理器输出的数据重构解码宏块数据,输出到所述滤波及帧存储管理器;所述滤波及帧存储管理器,用于进行去块效应滤波,并将当前解码宏块数据写入解码缓冲区;其特征在于,还包括视频解码控制器和变长解码器;所述视频解码控制器,用于待解码视频码流的解码控制,并将发送给各处理器的命令发送到所述变长解码器;所述变长解码器,用于在所述视频解码控制器的控制下进行熵解码,并将收到的命令转发给相应的处理器。
2.根据权利要求1所述的基于软硬件协同控制的视频解码器,其特征在于,所述视频解码控制器进一步包括宏块层以上的解码控制模块、宏块层及以下的解码控制模块和命令发送控制模块;宏块层以上的解码控制包括码流解析控制、差错控制、复位控制、同步控制、随机访问/切入控制、缓冲区控制、宏块可用性控制等;宏块层及以下的解码控制是指负责一个宏块的解析控制;解码控制的控制信息以命令的方式通过命令发送控制模块统一发送给变长解码器,由变长解码器转发给其它处理器。
3.根据权利要求2所述的基于软硬件协同控制的视频解码器,其特征在于,所述视频解码控制器采用软件实现,以嵌入式CPU的方式置于视频解码器中;其它处理器采用硬件加速器实现。
4.根据权利要求1所述的基于软硬件协同控制的视频解码器,其特征在于,所述运动补偿处理器分为运动向量预测、参考帧获取和象素插值三个模块;所述运动向量预测模块完成运动补偿的运动向量计算及选择补偿模式;所述参考帧获取模块根据所述视频解码控制器传递过来的参考帧地址及所述运动向量预测模块传递过来的运动向量从解码缓冲区中读取参考数据,然后传递给所述象素插值模块进行象素插值。
5.根据权利要求4所述的基于软硬件协同控制的视频解码器,其特征在于,所述视频解码器采用宏块级流水操作,共分为5级流水,其中变长解码器处于第1级流水,反量化处理器和运动向量预测模块处于第2级,反变换处理器和参考帧获取模块处于第3级,帧内预测补偿处理器和象素插值模块处于第4级,滤波及帧存储管理器则处于第5级。
6.根据权利要求1至5任一所述的基于软硬件协同控制的视频解码器,其特征在于,在除视频解码控制器外的各硬件处理器之间都有先进先出缓冲区队列FIFO,用于缓存宏块数据;具体包括数据FIFO和命令FIFO两种,其中数据FIFO主要用于存储数据,而命令FIFO则存储相关的控制信息。
7.根据权利要求6所述的基于软硬件协同控制的视频解码器,其特征在于,变长解码器与反量化处理器之间存在命令FIFO和数据FIFO;变长解码器与运动补偿处理器之间存在命令FIFO和数据FIFO;变长解码器与帧内预测补偿处理器之间存在命令FIFO和数据FIFO;反量化处理器与反变换处理器之间存在数据FIFO;反变换处理器与帧内预测补偿处理器之间存在数据FIFO;运动补偿处理器与帧内预测补偿处理器之间存在数据FIFO;帧内预测补偿处理器与滤波及帧存储管理器之间存在数据FIFO。
全文摘要
一种基于软硬件协同的视频解码器,包括视频解码控制器、变长解码器、运动补偿处理器、反量化处理器、反变换处理器、帧内预测补偿处理器和滤波及帧存储管理器;视频解码控制器运行在嵌入式CPU中,通过变长解码器的协助完成编码码流的解析及整个流水线的控制,而其它处理器都作为一个单独的硬件加速器来实现某种特定的解码功能。本发明视频解码器实现了视频解码的软硬件协同控制,既降低了硬件逻辑的复杂度,又提高了解码器的扩展性,通过采用宏块级流水操作,大大提高硬件的处理效率,从而提高解码器的解码速度,也就是说,在满足相同解码速度的要求下,大大降低了对硬件本身的性能要求,降低了解码器的代价。
文档编号H04N7/32GK1589025SQ200410070208
公开日2005年3月2日 申请日期2004年7月30日 优先权日2004年7月30日
发明者解晓东, 吴迪, 贾惠柱, 生滨, 郑俊浩, 张鹏, 邓磊, 张力, 张帧睿, 王忠立, 高文 申请人:联合信源数字音视频技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1