多路并行可变长码解码的方法

文档序号:7589912阅读:209来源:国知局
专利名称:多路并行可变长码解码的方法
技术领域
本发明属于高清晰度数字电视全I帧解码器领域,具体涉及一种多路并行可变长码解码的方法。
背景技术
当前,通用的数字电视编码技术是MPEG-2技术,它由ISO/IEC13818文件描述,该文件只规定了视频码流中可变长码的码表,但是并未对具体的解码方法做出限制性规定。由于高清晰度电视视频编码器的运算量十分巨大,通需要通过硬件实现。尤其是在全I帧的解码过程中对可变长解码器吞吐率的要求非常高,一般的DSP和专用芯片无法实现。
可变长解码器可以分为固定输入型和固定输出型两种。固定输入型是指解码器按照固定的速率,例如每个时钟周期1个比特,接收输入的码流,当解码器完成一个码字的解码时输出结果,结果的输出是不定时的。因此常常无法保证解码的速率。固定输出型是指解码器按照固定的速率输出解码结果。固定输出速率型可以保证解码速率,但是存在以下两方面问题,一方面长度累加器、对齐缓冲区和后缀分析模块构成一个反馈回路,对齐缓冲区必须在上一个码字的长度记入累加器得到比特位置指示之后,才可以开始调整对齐缓冲区中的内容;另一方而,对齐缓冲区的移位和更新操作需要一定的时间,对齐缓冲区更新完毕之后前分析模块才能继续工作。假设这个反馈回路需要3个时钟周期,为了使每个系统时钟周期内可以解出一个码字,解码器时钟必须是系统时钟周期的3倍。对于MPEG-2@HL 4:2:2格式的视频的采样率达到74.25MHz,则要求解码器时钟达到300M,因此这个反馈回路成为制约VLD解码器吞吐量和解码速率的关键。
每个可变长码的长度足不同的,一般由前缀和后缀两部分组成,通过确定码字的前缀可以判断整个码字的长度。而后缀部分可以进一步区分有相同前缀的码字,从而最终解码。可变长编码得到的码字长度不同,但是连续地放入码流之中传输,码字之间没有间隔保护或者任何标志。这样在解码的时候只有在解出当前码字之后才能根据当前码字的长度确定下一个码字的开始位置。可变长码的这种递归特性限制了解码速率。
图1是现有可变长解码器的基本原理框图,如图1所示,多比特的输入码流进入输入锁存器后,经移位器,由前缀分析器分析出当前码字的长度等信息,并将长度信息反馈给长度累加器,长度累加器对所有已经完成解码的码字的长度进行累计,并控制移位器移除当前完成解码的码字,此外长度累加器还控制输入锁存器获得新的输入码流。移位器移除已经完成解码的码字,使得下一个码字位于移位器的开始,即左对齐下一个码字。前缀分析器通过分析码字的开始的几个比特确定它属于那一组码字,地址生成器利用前缀分析器的输出以及码字的其余部分确定解码码字在码表中的地址,最终通过查表完成解码。
从上面的叙述可以发现,移位器,前缀分析器和长度累加器构成一个反馈回路。移位器必须等待前缀分析器的分析出当前码字长度的结果。输入锁存器每次保存N比特等待解码的比特流。移位器在长度累加器的控制下把还没有解码的比特片断输送给前缀分析器,前缀分析器根据比特片断的前几位判断出当前码字的长度,长度累加器累加完当前码字的长度之后,才能控制移位器把当前码字移除,为下一个码字的解码做准备。因此如果这个反馈的延迟是m个时钟周期,那么这个系统的工作效率为1/m。由此可见其效率低下。

发明内容
本发明的目的是提供一种同时支持多路并行可变长码解码的方法,该方法使用宏观并行,微观串行的方式,即宏观上多个码流使用同一个解码器内核进行解码,而在解码器内部的任何一个模块(即一级流水线)的某一个时钟周期只为一个码流服务,使得解码器可以全速工作而不必等待反馈回路依次完成操作,从而提高解码器的工作效率。
为达上述目的,本发明是这样实现的一种多路并行可变长码解码的方法,包括以下步骤n路输入码流进入与码流数量对应的码流缓冲器,并在缓冲器中缓冲;所述码流缓冲器中的输入码流由多路复用器选择后,经过移位器至前缀分析器,所述前缀分析器根据比特片断的前几位判断当前码字的长度,将长度信息送入m级迟延长度累加器;经所述多路复用器选择但未进入移位器的输入码流在所述m级迟延输入锁存器中保存m个时钟周期后输出;所述m级迟延长度累加器根据获得的当前码字的长度信息对所有已经完成解码的码字的长度进行累计,并控制所述移位器移除当前完成解码的码字,所述m级迟延长度累加器将当前的相加结果保存与m个时钟周期之后的输入相加;地址生成器利用所述前缀分析器的输出以及码字的其余部分确定解码码字的码表中的地址,经过查表后,由解多路复用器分配给对应解码结果,完成解码;其中m,n≥2,且m≥n,所述多路复用器、移位器、前缀分析器、部分m级迟延长度累加器构成的一个反馈回路,将该反馈回路分成m级流水线,每一级流水线在某一个时钟周期内只为一个码流服务。
较佳的,将所述反馈分成4至6级流水线。
本发明的有益效果是提高数字视频解码器中可变长解码模块的工作效率,而且可以根据工作负荷的大小启动多路复用器中的任何一路或者多路,具有可配置可调节的优点。


图1为现有可变长码解码器的基本原理框2为支持多路码流可变长码解码的流程3为多个节目共享一个多路并行可变长解码器图4为一个节目分割成宏块条并行解码具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下参照附图并举出实施案例,对本发明进一步详细说明。
实施例一如图2所示,多输入码流共同使用一个解码内核的系统框图。假定有来自同一个节目或不同节目的3个码流。此3个码流首先在各自的缓冲区中缓冲。然后由多路复用器选择某一路有新的码流进入后续步骤,或者某一路的保存在6级码流缓冲器的码流作为后续模块处理的输入。其中移位器,前缀分析器,地址生成器,码表等模块的工作原理与图1现有可变长码解码器中相应模块的工作原理完全相同。
多路复用器,移位器,前缀分析器,以及6级迟延长度累加器的一部分构成的反馈迟延为6个时钟周期,或者说多路复用器,移位器,前缀分析器,以及6级累加器的一部分的构成了6级流水线。在输入码流为3路的情况下,此时3个码流的解码工作可以依次分布在反馈回路的6级流水线中的不同级中进行,并且或不干扰。当完成查表之后,解码的结果属于不同的码流,还需要经过解多路复用器,分配给不同的码流进行进一步的处理。这样解码器可以全速工作而不必等待反馈依次完成操作。与现有可变长解码器相比,其解码效率提高了三倍。
实施例二如图3所示,当多个节目共享一个多路并行可变长解码器时,可经过节目前处理之后,变为多路输入码流,进入多路并行可变长解码器,经过解码,解码的结果再经过节目后处理之后,得到解码图像。有时因为一路视频码流的码率过大,而原有的可变长码解码器无法达到速率的要求,此时可以采用图4的方式将一个节目分成若干宏块条,通过对宏块条进行并行解码的方式以提高可变长码的解码速率。
权利要求
1.一种多路并行可变长码解码的方法,包括以下步骤1)n路输入码流进入与码流数量对应的码流缓冲器,并在缓冲器中缓冲;2)所述码流缓冲器中的输入码流由多路复用器选择后,经过移位器至前缀分析器,所述前缀分析器根据比特片断的前几位判断当前码字的长度,将长度信息送入m级迟延长度累加器;经所述多路复用器选择但未进入移位器的输入码流在m级迟延输入锁存器中保存m个时钟周期后输出;3)所述m级迟延长度累加器根据获得的当前码字的长度信息对所有已经完成解码的码字的长度进行累计,并控制所述移位器移除当前完成解码的码字,所述m级迟延长度累加器将当前的相加结果保存与m个时钟周期之后的输入相加;4)地址生成器利用所述前缀分析器的输出以及码字的其余部分确定解码码字的码表中的地址,经过查表后,由解多路复用器分配给对应解码结果,完成解码;在上述步骤中,m,n≥2,且m≥n,所述多路复用器、移位器、前缀分析器、部分m级迟延长度累加器构成的一个反馈回路,将该反馈回路分成m级流水线,每一级流水线在某一个时钟周期内只为一个码流服务。
2.根据权利要求1所述的多路并行可变长码解码的方法,其特征在于将所述反馈分成4至6级流水线。
全文摘要
本发明提供一种多路并行可变长码解码的方法,该方法使用宏观并行,微观串行的方式,即宏观上多个码流使用同一个解码器内核进行解码,而在解码器内部的任何一个模块(即一级流水线)的某一个时钟周期只为一个码流服务,使得解码器可以全速工作而不必等待反馈回路依次完成操作,从而提高了数字视频解码器中可变长解码模块的工作效率,而且可以根据工作负荷的大小启动多路复用器中的任何一路或者多路,具有可配置可调节的优点。
文档编号H04N7/24GK1662064SQ200410016508
公开日2005年8月31日 申请日期2004年2月24日 优先权日2004年2月24日
发明者孙军, 司马苗, 唐泽鹏, 胡广 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1