一种视频解码装置及解码方法
技术领域
本发明属于视频解码领域,尤其涉及一种视频解码装置及解码方法。
背景技术
最新的视频编解码标准H.264算法非常复杂,在该视频解码过程中的码流控制也是个极其复杂的工作。在解码过程中码字的控制都是通过状态机来实现的。有限状态机中的状态和视频输入码字的映射是一个复杂的过程。现有视频解码码字控制状态机的设计中,往往将状态机设计成一种顺序的结构,这种顺序结构的状态机状态多,跳转复杂,功耗很大。H.264视频解码过程中,用这种状态机控制解码的码字,状态机的状态数达到200多个。这么庞大的状态机控制及其复杂,功耗也很高。这么大的状态机,优化工具也很难优化。所以,将这些状态机打散,设计一种分层的,状态数更少,控制更容易,功耗更小的状态机就显得非常必要。
发明内容
本发明实施例的目的在于提供一种视频解码装置及解码方法,旨在解决现有视频解码装置中状态机复杂,及状态机状态数庞大不好控制的问题。
本发明实施例是这样实现的,一种视频解码装置,包括有限主状态机及解码模块,该有限主状态机用于控制视频的码流,该视频解码装置还包括有:
分层模块,用于将有限主状态机分为多个功能独立的有限子状态机,每个有限子状态机包括多个状态;
合并模块,用于合并有限子状态机的多个相关状态;及
该解码模块,用于解码合并状态后的有限子状态机控制的码流。
本发明实施例的另一目的还在于提供一种视频解码装置,包括有限主状态机及解码模块,该有限主状态机用于控制视频的码流,该视频解码装置还包括有:
分层模块,用于将有限主状态机分为多个功能独立的有限子状态机,每个有限子状态机包括多个状态;
合并模块,用于对有限子状态机的多个相关状态进行合并;
设置于每层的门控时钟电路;
控制模块,用于根据有限子状态机的输出、输入及当前状态控制每层的门控时钟电路的开/关状态;及
该解码模块,用于根据控制模块控制的门控时钟电路的开/关状态选择性的对有限子状态机控制的码流进行解码。
本发明实施例的另一目的在于提供一种视频解码装置的解码方法,该视频解码装置包括有限主状态机,该有限主状态机用于控制视频的码流,该方法包括以下步骤:
将有限主状态机分为多个功能独立的有限子状态机,每个有限子状态机包括多个状态;
合并有限子状态机的多个相关状态;及
解码合并状态后的有限子状态机控制的码流。
在本发明实施例中,视频解码装置通过对有限主状态机进行分层,并对有限子状态机的状态进行合并,并在有限子状态机的前面添加门控时钟电路减少有限子状态机的跳转数量,从而使得有限主状态机控制起来更简便,且由于状态数量的减少及跳转数量的减少,有效减少了解码过程中的功耗。
附图说明
图1是本发明实施例提供的视频解码装置的硬体结构图;
图2是本发明实施例提供的有限主状态机的分层示意图;
图3是发明实施例提供的视频解码装置的解码方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,视频解码装置包括有限主状态机、分层模块、合并模块及解码模块,该分层模块将有限主状态机分为多个功能独立的有限子状态机,每个有限子状态机包括多个状态,该合并模块对有限子状态机的多个相关状态进行合并,该解码模块对合并状态后的有限子状态机控制的码流进行解码,从而将复杂的有限主状态机分为多层有限子状态机,且通过状态的合并减少了有限子状态机的状态数,最终使得分层后的有限子状态机更容易控制,功耗也更小。
图1示出了本发明实施例适用的视频解码装置的结构图,该视频解码装置100包括有有限主状态机10、分层模块20、合并模块30及解码模块40。
该分层模块20,用于将有限主状态机10分为多个功能独立的有限子状态机50,每个有限子状态机50包括多种不同的状态。该分层模块20还用于将每个有限子状态机50作为一有限主状态机10,将该有限主状态机10分为多个功能独立的有限子状态机50。本实施方式中,该分层模块20是根据视频码流的结构将有限主状态机10分为多个功能独立的有限子状态机50。例如,该视频由多个频组成,而每个频由多个片组成,每个片包含片头及内容,等等,以此类推,就可将该视频按照该视频的结构进行分层,第一层为视频,第二层为频,第三层为片,第四层为片头及内容,从而将该视频分为多个层。在上述的例子中,该视频对应一个有限主状态机,该频对应为有限主状态机下的一个有限子状态机,该片为频对应的有限子状态机下的一个有限子状态机,通过上述的分层方式将该视频对应的有限主状态机分为多层有限子状态机,从而使得解码过程中状态机的控制更加容易。其他实施方式中,该分层模块也可根据视频其他的属性对有限主状态机进行分层。
该合并模块30,用于对有限子状态机50的多个相关状态进行合并。例如,在H.264视频解码的状态机中,有很多类似的状态,如,“Intra16x16DCLevel”和“LumaLevel”的残差解码对应的状态机都具有CAVLC状态,但是,这两个CAVLC状态对应的码流的特性是类似的,执行的是相同的功能,因此就没有必要在解码过程中每次都把CAVLC状态复制一遍,只需要将两种状态合并在一起即可,从而可以减少状态机的跳转。本实施方式中,该合并模块30是根据视频码流的特性对有限子状态机50的多个相关状态进行合并的,也即,如果两种状态执行相同的功能就可以将两种状态合并在一起,减少状态机的跳转,减少状态机的功耗。
该解码模块40,用于对合并状态后的有限子状态机50控制的码流进行解码。
进一步地,该视频解码装置100还包括有控制模块60及设置于每层有限子状态机前的门控时钟电路70。该控制模块60用于根据有限子状态机50的输出、输入及当前状态控制门控时钟电路70的开/关状态。例如,当对有限子状态机的输出、输入及当前状态进行分析后,发现需要访问该有限子状态机,则控制该门控时钟电路处于打开状态,相反地,使其处于关闭状态。现有技术中,根据有限子状态机的输出、输入及当前状态确定对应的有限子状态机是否需要被跳转为已知技术,在此不再详述。
该解码模块40用于根据控制模块60控制的门控时钟电路70的开/关状态选择性的对有限子状态机50控制的码流进行解码。例如,当前控制模块60根据有限子状态机50的输出、输入及当前状态控制门控时钟电路70处于开启状态,那么解码模块40就对该门控时钟电路70控制的有限子状态机控制的码流进行解码,反之,如果当前的门控时钟电路70处于关闭状态,那么解码模块40直接跳转过该有限子状态机,不对其控制的码流进行解码,如此,解码模块40就可以选择性的对有限子状态机控制的码流进行解码,对不需要的有限子状态机不需要进行跳转去解码,从而减少了解码模块40在解码过程中跳转到有限子状态机下的跳转数量,从而使得视频解码过程中的功耗也就大大降低。如图2所示,根据视频的结构将有限主状态机分为六层,十三个有限子状态机,接着根据视频的码流将有限子状态机相关的状态进行合并,最后根据门控时钟电路70的开/关状态来控制解码模块40对对应有限子状态机50控制的码流进行解码。
图3为视频解码装置100的解码方法在解码过程中的流程图。该方法包括以下步骤:
步骤S601,该分层模块20将有限主状态机10分为多个功能独立的有限子状态机50。
步骤S602,该合并模块30对有限子状态机的多个相关状态进行合并。
步骤S603,该解码模块40对合并状态后的有限子状态机控制的码流进行解码。
进一步地,本发明的视频解码装置的解码方法,在将有限主状态机10分为多个功能独立的有限子状态机后还包括以下步骤:该分层模块20还用于将每个有限子状态机作为一有限主状态机,将该有限主状态机分为多个功能独立的有限子状态机。该合并模块30对有限子状态机的多个相关状态进行合并,该解码模块40对合并状态后的有限子状态机控制的码流进行解码。
进一步地,本发明的视频解码装置的解码方法在有限子状态机的多个相关状态进行合并后还包括以下步骤:该控制模块60根据有限子状态机50的输出、输入及当前状态控制每层的门控时钟电路70的开/关状态,该解码模块根据控制模块控制的门控时钟电路70的开/关状态选择性的对有限子状态机50控制的码流进行解码。
通过本发明的视频解码装置及解码方法,将这些有限主状态机打散,分为多层有限子状态机,合并相关状态,以及添加门控时钟电路,减少有限子状态机的状态数量以及跳转数量,使得有限主状态机的控制更加简便,从而减少了解码过程中的功耗。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。