一种码表动态加载的方法和装置的制作方法

文档序号:7685464阅读:121来源:国知局
专利名称:一种码表动态加载的方法和装置的制作方法
技术领域
本发明涉及soc设计中软硬件协同设计技术,涉及视频信号处理中的视频
和图象解码,尤其涉及视频和图象解码的码流解析过程。
背景技术
随着芯片设计进入了 soc系统级时代,合理的划分软硬件功能,使芯片
的整体性能,灵活性和芯片面积之间更好的平衡便成为一项很重要的工作。 一般的视频和图象的解码过程就是首先解析整个不同层次的码流,然后再
做反量化,反DCT变换等其他相应变换,并最终复原原始图象。
在涉及视频和图象的解码技术中,其码流包的结构通常都是按层级机构 的,比如序列(sequence)层,图象(picture)层,片(slice)层,宏块(MacroBlock) 层等。通常一个序列(sequence)包含若干个图象,而一个图象也包含若干个片 (slice), —个片包括若干个宏块(MacroBlock)。即当前普遍应用的各种视频 编解码标准,码流有其共同的特点,都是基于层次结构的,高层次的码流包通 常包含更多的低层次的码流包。
现有的H264、 H263、 MPEG系列、Real系列等视频标准中,码流中某些低 层次解码单元的解析,总是依赖于高层次参数的解析。
而通常在解析低层次单元包的数据时,如宏块层(Macroblock),需要根据 片(slice )层或者图象(picture)层的参数,通过査询不同的査询码表,得到 最终的目标解码数据。而如果把所有的查询码表都由硬件实现,硬件消耗的代 价非常大。本发明通过合理划分软硬件功能,利用SOC中的主处理器由软件实 现码表的动态加载,从而有效地减小了整个系统的硬件消耗代价。

发明内容
本发明的目的是利用soc中的主处理器由软件进行码表的动态加载,实现
视频或者图象解码过程中的码流解析,从而有效地减小整个系统的硬件消耗代 价。
根据本发明的一个方案,实现基于动态加载码表的码流解析方案。该方案
可以应用在H264、 H263、 MPEG系列、Real系列等多个视频解码标准中去。
本发明的方法和装置的基本构思在于,针对某个视频码流的特点,将码流 解析时需要用到的査找表分割。分割的依据是尽可能少的减小对解码效率的影 响,并平衡要消耗的硬件资源。在进行视频码流解析时,根据上下文相关参数, 当硬件的动态加载检测模块发现继续解码需要更新子码表时,将硬件码流解析 模块暂停,待主处理器更新完之后,恢复硬件码流解析模块的运行。
具体的说,根据本发明的一个实施例,提供一种基于动态加载码表的码流 解析方法。包括步骤
根据码流的特征分割査找码表,将码流解析时需要用到的査找码表按照一 定的规则分割成若干个不同的子码表;
码流解析时,由硬件的动态加载检测模块判断当前是否需要动态加载;
如果硬件的动态加载检测模块判断当前的解析需要加载码表,则硬件码流 解析模块暂停,主处理器根据动态加载检测模块的运算子模块得到的子码表编 号。对子码表阵列进行更新,更新完成之后,恢复硬件解析模块的运行,继 续下面的码流解析;如果硬件的动态加载检测模块判断当前的解析不需要加载 码表,则硬件解析模块的执行不受影响。
根据本发明的一个实施例,所说的分割査找码表,是指根据具体码流的特 征,使之在最大程度上不影响整体解码的效率,并减少硬件的消耗。
根据本发明的一个实施例,在所说的动态加载检测判断中,根据上下文, 前一个码流包的参数,和当前码流包解析的参数,判断当前的码流解析时是否 需要加载新的码表。
根据本发明的一个实施例,在所说的动态加载检测判断后,如果动态加载 检测模块判断当前的码流解析需要动态加载码表,则会通过中断、查询,或者其他软硬件交互的方式通知主处理器。
根据本发明的一个实施例,如果当前需要动态加载码表,则硬件码流解析 模块会暂停执行。
根据本发明的一个实施例,如果主处理器得到通知,当前需要动态加载码 表,则主处理器通过査询动态加载检测模块的运算子模块,得到当前需要加载 的子码表编号。
根据本发明的一个实施例,如果主处理器得到通知,当前需要动态加载码 表,则主处理器将相应的子码表加载到实现子码表阵列的存储装置中去。
根据本发明的一个实施例,主处理器动态加载完子码表之后,恢复硬件码 流解析模块的执行。
根据本发明的一个实施例,在所说的动态加载检测判断后,如果硬件的动 态加载检测模块判断当前的解析不需要加载码表,则不中断硬件码流解析模块 的运行。
根据本发明的一个实施例,所说的动态加载检测判断步骤,是和硬件码流 解析模块并行运行的,在检测过程中,并不要求硬件码流解析模块的暂停,不 会影响正常硬件解码的效率。
根据本发明的一个实施例,80%以上的宏块数据解析是不需要进行动态加载 的,因此本发明的一个实施例,在最大程度上可以保证总体解码的性能。 根据本发明的一个实施例, 一种实现码流解析时码表动态加载的装置,包

高层次参数解析模块,完成较高层次的头部解析工作; 子码表阵列,由系统中的存储装置实现; 低层次数据解析模块,完成低层次数据单元包的解析; 动态加载检测模块,判断当前的码流解析是否需要动态加载码表; 主处理器模块,完成系统的主要控制工作。
根据本发明的一个实施例,其中高层次参数解析模块完成序列头部解码, 图象头部解码,等较高层次的头部解析工作。
根据本发明的一个实施例,其中子码表阵列由系统级芯片(SOC)的存储装置片内SRAM以及其相应的总线接口实现。
根据本发明的一个实施例,其中低层次数据解析模块,完成低层次数据单 元包的解析,在低层次数据单元包的解析过程中,会用到子码表阵列中存储的 査询码表。
根据本发明的一个实施例,其中所说的动态加载检测模块,包括 存储子模块,存储前一个解码单元的参数;
比较子模块,将当前低层次数据单元包的参数和前一个低层次数据单元包 的参数进行比较,判断当前的码流解析是否需要进行査询子码表的动态加载, 并通知主处理器模块;
运算子模块,将当前解析出来的参数,按照一定的规则映射,得到需要加 载的子码表编号以供主处理器査询。
根据本发明的一个实施例,其中的主处理器模块,根据动态加载检测模块 比较子模块的判断信号作相应的处理。如果当前低层次数据单元包的解析需要 应用新的码表,即需要子码表的动态加载,则暂停低层次数据解析模块的工作, 主处理器通过软件将相应的码表装载到子码表中去。


在附式中以实例方式而非限定方式阐述本发明,在附图中-
图1是按照本发明的基于码表动态加载的码流解析系统的总体方框图; 图2是动态加载检测模块的组成示意图3是按照本发明的基于码表动态加载的码流解析的流程图。
具体实施例方式
现在将详细介绍按照本发明的一个实施例,其实例显示在附图中。尽管本 发明将结合一个实施例来阐述,但应了解,所述的实施例并不打算将本发明限 定至所述的实施例。相反,本发明打算涵盖可包含于随附权利要求所界定的本 发明精神以及范畴内的替代、修改、及等价方案。此外,在本发明实施例的下 列详细阐述中,列举了众多特定细节以达到对本发明的透彻理解。然而,所属 技术领域的技术人员应了解,本发明可在不具备这些特定细节的情况下实施。图l是按照本发明的基于码表动态加载的码》t解析系统的总体方框图。整 个解码器装置包括高层次参数解析模块IO、低层次数据包解析模块ll、动 态加载检测模块12、子码表阵列13、主处理器14。为了描述的简单起见,图 1仅示出了理解本发明的实现和工作所需的基本部件。本领域的技术人员会理 解,并知道如何设计,实现和将这些部件互连。进一步说,在图l中的高层次 参数解析模块IO、低层次数据包解析模块11、动态加载检测模块12、子码表 阵列13、主处理器14组成和操作不是本发明直接关联的部件而且其操作属于 本领域的公知常识。
码流开始解析时,按照码流包层次,高层次参数解析模块10开始工作,解 析序列层、图象层、片层等不需要査询码表就可以解析的高层次参数。
高层次参数解析模块10解析得到的某些参数需要提供给低层次数据解析模 块ll,以供低层次数据解析模块ll选择査询码表。
高层次参数解析模块IO在解析参数的同时,还需要将解析的参数输出给动 态加载检测模块12。
动态加载检测模块12存储有已经解析的前一个低层次数据包的码表选择参 数,与当前正在解析的低层次数据包的码表选择参数比较,当发现不一致,即 需要重新加载码表,则暂停低层次数据解析模块11的解析。
低层次数据解析模块11接收到暂停信号后,低层次数据解析模块11保持 等待状态。
与此同时,动态加载检测模块12通过软硬件交互接口,在本实施例中,通 过中断或者査询的方式通知主处理器14。
主处理器14收到通知,当前需要动态加载子码表。则主处理器14査询动 态加载检测模块12,得到需要加载的子码表编号。随后,主处理器14将子码 表动态加载到子码表阵列13中。加载完毕之后,主处理器14重新恢复低层次 数据解析模块11的解析。
低层次数据解析模块11在等待状态接收到恢复工作的信号后,从等待状态 退出,接着开始解析,通过查询子码表阵列中的正确码表,并最终解析出码流 包中的所有目标数据。动态加载检测模块12存储有已经解析的前一个低层次数据单元包的码表选 择参数,与当前正在解析的低层次数据单元包的码表选择参数比较,如果发现 当前正在解析的低层次数据单元包需要査询的码表己经在子码表阵列中,不需 要重新加载,则动态加载检测模块12不发生影响其他模块解码的行为,即不 会影响硬件解码的效率。
其中,子码表阵列13由系统级芯片SOC中的存储装置以及相应的软硬件接 口实现。在本实施例中,采用了片内SRAM和通用的类sram接口实现子码表阵 列。相关技术人员应该明白,构成子码表阵列13的存储装置以及相应的软硬 件接口也可以由其他存储器和接口实现。
图1中的动态加载检测模块12是和本发明密切相关的核心组成部分。图2 是针对对动态加载检测模块12具体说明的动态加载检测模块12内部组成结构 示意图。
图2中包括存储装置20、比较装置21、运算装置22。其中存储装置20存 储有已经解析的前一个低层次数据单元包的码表选择参数,每解完一个低层次 数据单元包,存储装置20存储的内容都会更新。
比较装置21总是在实时比较高层次参数解析模块10解析出来的低层次数 据解析单元的码表选择参数和存储装置20存储的参数,如果两者不一致,即 需要重新加载码表。则比较装置21发出暂停信号,暂停低层次参数解析单元 11,使其处于等待状态,同时通过中断信号通知主处理器14。相关技术人员应 该明白,此处也可以是査询等其他软硬件交互的接口信号达到和主处理器14 的相互通信。
运算装置22根据高层次参数解析单元10解析出来的低层次数据解析单元 的码表选择参数和存储装置20存储的参数,按照一定的规则,运算得到当前 低层次数据解析单元包需要使用的子码表编号。主处理器14在收到比较装置 21发出的动态加载信号后,会査询运算装置22,得到当前需要动态加载的子 码表编号,并进而完成整个子码表动态加载过程。
图3的流程图说明了本实施例具体实施的步骤。
码流解析开始30后,步骤31对码流进行较高层次的拆包以及参数解析,当解析到低层次数据包时,步骤32判断当前解析是否需要动态加载码表。如 果判断为真,即当前解析需要动态加载码表,则执行步骤33,主处理器动态加 载码表到子码表阵列,动态加载完成后,执行步骤34,低层次数据包的解析; 否则如果判断为否,则直接执行步骤34,低层次数据包的解析。低层次数据包 解析34完成,得到最终的目标解码数据,则码流解析完成35。
本文已出于例证和说明的目的提供对本发明特定实施例的前述说明。其并 非旨在作为穷尽性说明或将本发明限定为所揭示的确切形式,且根据上述教示
可作出大量修改以及变化。本文所选择以及描述的实施例旨在对本发明的原理 以及其实际应用进行最佳解释,从而使所属技术领域的其他技术人员能够最佳 地利用本发明以及具有适用于所涵盖具体应用的各种修改形式的各种实施例。 本发明的范畴打算由附随权利要求书以及其等效范围界定。
权利要求
1,码流解析时一种码表动态加载的方法,其特征在于包括将码流解析需要使用的查询码表根据适当的规则分割成若干个不同的子码表,在码流解析过程中需要使用查询码表时按一定的预定规则可以选择动态加载某一个或者某几个已经分割后的子码表,从而保证码流解析过程的顺利完成。
2,如权利要求1所述的码流解析时一种码表动态加载的方法,其特征在于 还包括设置一个动态加载控制模块,当码流解析过程中需要使用査询码表时, 由动态加载控制模块判断,并计算需要加载的子码表编号。
3,如权利要求l所述的码流解析时一种码表动态加载的方法,其子码表阵 列由系统级芯片(SOC)的存储装置实现。
4,如权利要求1所述的动态加载过程,其特征在于,所述的动态加载,是 通过系统级芯片(SOC)中的主处理器(CPU)由软件执行写入构成子码表阵列的 片内存储装置而实现的。
5,如权利要求l、 2、 3、 4所述码流解析时一种码表动态加载的方法,其 特征还在于,当前码流解析过程需要子码表动态加载时,暂停码流解析过程, 等到主处理器(CPU)动态加载完子码表后,才重新恢复码流的解析。
6,如权利要求l、 2、 3、 4所述码流解析时一种码表动态加载的方法,其 特征还在于,当前码流解析过程不需要子码表动态加载时,主处理器(CPU)不 会对当前的码流解析过程产生任何影响,使之能充分保证码流解析的效率。
7, 一种实现码流解析时码表动态加载的装置,包括高层次参数解析模块,完成较高层次的头部解析工作;子码表阵列,由系统中的存储装置实现;低层次数据解析模块,完成低层次数据单元包的解析;动态加载检测模块,判断当前的码流解析是否需要动态加载码表;主处理器模块,完成系统的主要控制工作。
8.根据权利要求书7的装置,其中高层次参数解析模块完成序列头部解码, 图象头部解码,等较高层次的头部解析工作。
9.根据权利要求书7的装置,其中子码表阵列由系统级芯片(SOC)的存储 装置以及其相应的总线接口实现。
10.根据权利要求书7的装置,其中低层次数据解析模块,完成低层次数 据单元包的解析,在低层次数据单元包的解析过程中,会用到子码表阵列中存 储的査询码表。
11.根据权利要求书7的装置,其中所说的动态加载检测模块,包括 存储子模块,存储前一个低层次数据单元包的参数;比较子模块,将当前低层次数据单元包的参数和前一个低层次数据单元包 的参数进行比较,判断当前是否需要进行码表的动态加载,并通知主处理器;运算子模块,将当前解析出来的参数,按照一定的规则映射,得到需要加 载的子码表编号。
12.根据权利要求书7的装置,其中的主处理器模块,根据动态加载检测 模块比较子模块的判断信号作相应的处理。如果当前低层次数据单元包的解析 需要应用新的码表,即需要子码表的动态加载,则暂停低层次数据解析模块的 工作,主处理器通过软件将相应的码表装载到子码表阵列中去。
全文摘要
本发明涉及在针对视频解码的系统级芯片(SOC)设计中,一种基于码表动态加载的码流解析系统的设计方法和装置。一种码表动态加载的方法和装置,其特征在于包括将码流解析中使用的查询码表分割成不同的子码表,码流解析过程中当需要使用查找码表时,判断当前是否需要动态加载码表,并按预定的规则动态加载某一个或者某几个已经分割后的子码表。其优点是平衡了软件解码的灵活性和硬件ASIC解码的高效率,不需要将所有码表都放入系统级芯片(SOC)中,从而在保证整体性能的前提下有效的减少了芯片的硬件消耗。
文档编号H04N7/26GK101562743SQ20081003600
公开日2009年10月21日 申请日期2008年4月14日 优先权日2008年4月14日
发明者军 陈 申请人:上海升岳电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1