专利名称:多模视频解码器中帧内预测器结构的制作方法
技术领域:
本发明涉及多媒体视频技术领域,特别是一种多模视频解码器中帧内预测器结构,适用于对面积成本和功耗有严格要求的应用,特别是便携式移动应用。
背景技术:
为满足人们日益广泛的数字媒体应用需求,出现了一系列的新一代视频压缩编码标准。H.264/AVC标准是国际电联(ITU-T)视频编码专家组(VCEG)和国际标准化组织 (IS0/IEC)活动图像专家组联合制定的新一代视频压缩编码标准,AVS是中国自主知识产权的最新一代音视频压缩编码标准。因此,多标准兼容成为目前的应用需求。在视频压缩编码应用中,预测技术是一种消除空间冗余度和时间冗余度最有效方式之一,经过压缩编码后传输的并不是像素本身的采样值,而是预测值和重建值之差。帧内预测是利用图像中已重建相邻块作为参考块,对当前块进行预测的一种方式。H. 264/AVC和 AVS均采用了帧内预测技术来降低图像的空域相关性,极大的提高了图像的帧内编码效率, 使得视频传输的比特数大为减少。以往的MPEG2,MPEG4等视频压缩编码标准均采用了变换域的DC预测或AC预测来降低图像的空域相关性,由于DC预测或AC预测没有方向性,且只是对部分变换域系数的预测,其预测精度和效率相对较低。H. 264/AVC的帧内预测包括9种4X4的亮度块预测模式、4种16X 16的亮度块预测模式和4种8X8的色度块预测模式,AVS帧内预测包括5种 8 X 8的亮度块预测模式和4种8 X 8的色度块预测模式,其他一些公司自主制定的标准也采用了与H. 264/AVC和AVS类似的帧内预测。多种不同大小的分块和多种不同的帧内预测模式,使得多模视频解码器中帧内预测器的计算能力需求和实现复杂度大大增加。传统的具有超长指令字(VLIW)、SIMD指令和多媒体指令扩展的可编程DSP解决方案灵活性好,但包含大量的运算单元,功耗高,资源利用率低;传统的ASIC和FPGA解决方案功耗低,但通常包含大量高位宽的数据选择器和控制逻辑,面积大,且仅支持一种标准,灵活性较差。
发明内容
(一)要解决的技术问题为克服传统的可编程DSP解决方案功耗高、资源利用率低,而传统ASIC和FPGA解决方案面积大、灵活性差的不足,本发明的主要目的在于提供一种多模视频解码器中帧内预测器结构,以兼容现有各种标准中所有的帧内预测模式,具有灵活性好面积小成本低功耗低的特点。( 二 )技术方案为达到上述目的,本发明提供了一种多模视频解码器中帧内预测器结构,该结构包括可编程控制单元、可编程处理单元和重建单元,其中可编程控制单元完成参考像素的加载和控制操作,并输出参考像素值和控制信息给可编程处理单元;可编程处理单元完成
4像素的插值预测,并输出预测值和位置信息给重建单元;重建单元完成像素的重建。上述方案中,所述可编程控制单元定制专有的可编程控制单元微指令集,采用可编程的方式完成不同标准不同帧内预测模式下参考像素的加载和控制操作。上述方案中,所述专有的可编程控制单元微指令集包含四类指令:ALU类、跳转类、DMA类和控制类,其中,ALU类指令用于简单的运算处理,跳转类包含条件跳转指令和无条件跳转指令,DMA类指令用于加载参考像素,控制类指令用于配置相邻块可用性。上述方案中,所述DMA指令包含两条指令LDREF指令和LDPIX指令,LDREF指令编码为16bit,编码部分包括源地址、源地址增量和目的地址,启动DMA自动加载一行/一列参考像素;LDPIX指令编码为8bit,指示DMA加载当前块左上角的参考像素。上述方案中,所述可编程处理单元定制专有的可编程处理单元微指令集,采用可编程的方式实现不同标准不同预测模式下不同插值数据通路的灵活重构。上述方案中,所述可编程处理单元由寄存器文件、ALU模块和输出模块构成,其中寄存器文件作为累加指令的源操作数,其中GPR寄存器堆同时作为寄存器传输指令的目的操作数,可重构为9个8bit的SGPR寄存器,或可重构为4个16bit的LGPR寄存器;ALU模块作为可编程帧内预测器中的运算单元,其结构由一个16位累加器和一个 16位桶形移位器构成。上述方案中,所述专有的可编程处理单元微指令集包含累加指令、移位指令、寄存器传输指令和输出指令,其中累加指令由累加器执行,其本质是完成(1,1)和(1,2,1)的插值滤波操作;移位指令由桶形移位器执行,完成左移、算术右移或算术舍入右移操作;寄存器传输指令用于暂存中间结果;输出指令由输出模块执行,将预测值限幅,并将预测值和相应的位置信息输出给重建单元。上述方案中,所述专有的可编程处理单元微指令集采用Sbit等长编码,且均为单操作数指令。上述方案中,所述累加指令包括三条指令:ACC指令、SAC指令和ACCSl指令,累加结果存入累加寄存器中,ACC指令将源操作数和累加寄存器作累加,SAC指令将源操作数左移1位和累加寄存器作累加,ACCSl指令将源操作数和累加寄存器作累加,将累加结果作算术右移1位,并将移位结果存入移位寄存器中。上述方案中,所述可编程处理单元微指令集采用一个模式控制位SACSA,当SACSA 置1时,表示将SAC指令的操作结果作算术舍入右移两位的操作,并将移位结果存入移位寄存器,同时清零累加寄存器;当SACSA置0时,不对SAC指令的操作结果作任何操作,直接存入累加寄存器。上述方案中,所述移位指令的移位数限定在0 7之间,源操作数为累加寄存器, 并将移位结果存放在移位寄存器中;所述输出指令的源操作数为移位寄存器,位置信息限定在0 63之间。上述方案中,所述可编程处理单元采用三级流水线设计,流水线包含取指、译码和执行三个阶段。上述方案中,所述重建单元在预测值产生的同时生成重建结果,其接收可编程处理单元送出的预测值和位置信息,根据位置信息取出相应的残差值,与预测值相加形成重建像素。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1、本发明提供的这种多模视频解码器中帧内预测器结构,采用可编程的方式,有效的兼容了现有各标准中所有的帧内预测模式,面积小,成本低,灵活性好,功耗低,很好的解决了便携式移动应用对于面积成本和功耗的严格限制问题以及目前对于多标准兼容的迫切需求问题。2、本发明提供的这种多模视频解码器中帧内预测器结构,利用一个专用可编程内核,通过定制的专用8位微指令集,采用可编程的方式实现了不同标准和不同帧内预测模式下数据通路的灵活重构,结构简单,灵活性好。基于该结构的帧内预测器VLSI (超大规模集成电路)实现,可以兼容现有各种视频编码标准中所有的帧内预测模式,同时电路面积和功耗小,成本低。
图1是本发明提供的多模视频解码器中帧内预测器结构的总体架构图;图2是本发明定制的可编程控制单元的微指令集;图3是本发明可编程控制单元的工作流程图;图4是本发明可编程处理单元的三级流水线示意图;图5是本发明可编程处理单元的结构图;图6是本发明定制的可编程处理单元的8位微指令集。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。本发明提供的这种多模视频解码器中帧内预测器结构,利用一个专用可编程内核,运算处理单元仅包含一个16位累加器和一个16位桶形移位器,通过定制专有的8位微指令集,采用可编程的方式实现了不同数据通路的灵活重构。1、其结构包含可编程控制单元、可编程处理单元和重建单元。帧内预测包含两个过程——参考像素加载过程和插值预测过程,两者具有显著不同的特点,前者主要进行访存和控制操作,后者主要进行插值运算操作,两个可编程单元用以解耦合访存控制和插值运算操作,提高帧内预测的效率,同时简化了设计。可编程控制单元完成参考像素的加载和控制操作,输出参考像素和控制信号给可编程处理单元;可编程处理单元完成像素的插值预测,输出预测值和位置信息给重建单元;重建单元完成像素的重建。2、可编程控制单元负责完成参考像素的加载和控制操作。采用可编程的方式完成参考像素的加载,具有极大的灵活性,便于加载不同标准不同模式下不同位置处不同长度的参考像素。共自定义四类指令,参见附图2,ALU类指令仅包含与操作,用于判断相邻块的可用性。跳转类指令包含条件跳转和无条件跳转,用于在相邻块可用性确定之后的分支跳转操作。DMA类指令用于参考像素的加载。控制类指令用于控制可编程处理单元的运行。
6
3、可编程处理单元完成参考像素的插值预测。该单元中,运算处理单元只需要一个仅包含一个16位累加器和一个16位桶形移位器的ALU模块,采用可编程的方式完成不同模式下插值通路的灵活重构,可以兼容现有各标准中所有的帧内预测模式,对于平面模式,首先将其乘累加过程转化为累加和移位的过程,避免了传统ASIC和FPGA解决方案中大量高位宽的数据选择器和控制逻辑的使用,省掉了平面模式预处理电路,减小了面积,同时增强了灵活性。可编程处理单元指令集按8位等长编码,且均为单操作数指令,定制的微指令集参见附图6。如图1所示,图1是本发明提供的多模视频解码器中帧内预测器结构的总体架构图,该结构包括可编程控制单元、可编程处理单元和重建单元,其中可编程控制单元完成参考像素的加载和控制操作,并输出参考像素值和控制信息给可编程处理单元;可编程处理单元完成像素的插值预测,并输出预测值和位置信息给重建单元;重建单元完成像素的重建。其中,所述可编程控制单元定制专有的可编程控制单元微指令集,采用可编程的方式完成不同标准不同帧内预测模式下参考像素的加载和控制操作。所述可编程处理单元定制专有的可编程处理单元微指令集,采用可编程的方式实现不同标准不同预测模式下不同插值数据通路的灵活重构。所述重建单元在预测值产生的同时生成重建结果,其接收可编程处理单元送出的预测值和位置信息,根据位置信息取出相应的残差值,与预测值相加形成重建像素。所述专有的可编程控制单元微指令集包含四类指令:ALU类、跳转类、DMA类和控制类,其中,ALU类指令用于简单的运算处理,跳转类包含条件跳转指令和无条件跳转指令, DMA类指令用于加载参考像素,控制类指令用于配置相邻块可用性。所述DMA指令包含两条指令LDREF指令和LDPIX指令,LDREF指令编码为16bit,编码部分包括源地址、源地址增量和目的地址,启动DMA自动加载一行/ 一列参考像素;LDPIX指令编码为8bit,指示DMA 加载当前块左上角的参考像素。所述可编程处理单元由寄存器文件、ALU模块和输出模块构成,其中寄存器文件作为累加指令的源操作数,其中GPR寄存器堆同时作为寄存器传输指令的目的操作数,可重构为9个8bit的SGPR寄存器,或可重构为4个16bit的LGPR寄存器;ALU模块作为可编程帧内预测器中的运算单元,其结构由一个16位累加器和一个16位桶形移位器构成。所述可编程处理单元采用三级流水线设计,流水线包含取指、译码和执行三个阶段。所述专有的可编程处理单元微指令集包含累加指令、移位指令、寄存器传输指令和输出指令,其中累加指令由累加器执行,其本质是完成(1,1)和(1,2,1)的插值滤波操作;移位指令由桶形移位器执行,完成左移、算术右移或算术舍入右移操作;寄存器传输指令用于暂存中间结果;输出指令由输出模块执行,将预测值限幅,并将预测值和相应的位置信息输出给重建单元。所述专有的可编程处理单元微指令集采用8bit等长编码,且均为单操作数指令。所述累加指令包括三条指令:ACC指令、SAC指令和ACCSl指令,累加结果存入累加寄存器中,ACC指令将源操作数和累加寄存器作累加,SAC指令将源操作数左移1位和累加寄存器作累加,ACCSl指令将源操作数和累加寄存器作累加,将累加结果作算术右移1 位,并将移位结果存入移位寄存器中。所述可编程处理单元微指令集采用一个模式控制位 SACSA,当SACSA置1时,表示将SAC指令的操作结果作算术舍入右移两位的操作,并将移位
7结果存入移位寄存器,同时清零累加寄存器;当SACSA置0时,不对SAC指令的操作结果作任何操作,直接存入累加寄存器。所述移位指令的移位数限定在0 7之间,源操作数为累加寄存器,并将移位结果存放在移位寄存器中;所述输出指令的源操作数为移位寄存器,位置信息限定在0 63之间。请再次参见图1,整个可编程帧内预测器由配置信息和微指令流控制,微指令流由系统在初始化的过程中加载到指令存储器中,配置信息由系统在运行过程中实时修改。其具体实施过程可描述如下第一步帧内预测过程启动,首先由可编程控制单元1判断相邻块的可用性,其工作流程图参见附图3。第二步可编程控制单元1根据相邻块可用性,决定是否需要启动DMA加载参考像素,并设置相邻块可用性寄存器,启动可编程处理单元2进行像素的插值预测。第三步可编程处理单元2完成像素的插值预测。并将预测结果和位置信息输出给重建单元3。可编程处理单元2的具体硬件实现结构参见附图5。图中,寄存器文件1用于存放参考像素和暂存中间结果,均可以作为累加指令的源操作数,行寄存器堆5、列寄存器堆 6和TR寄存器7用于存放参考像素,GPR寄存器堆4作为寄存器传输指令的目的操作数,可暂存中间变量,既可重构为9个8bit的SGPR寄存器,也可重构为4个16bit的LGPR寄存器;ALU模块2是唯一的运算单元,完成像素的插值运算,仅包含一个16位累加器8和一个 16位桶形移位器9,累加结果和移位结果分别存放在累加寄存器10和移位寄存器11中;输出模块3将位于移位寄存器11中的预测值限幅,并将预测值和位置信息输出给重建单元3。 可编程处理单元2采用简单的三级流水线设计,参见附图4,以提高工作频率。第四步重建单元3根据位置信息,取出对应的残差值,与预测值相加形成重建像
ο以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
8
权利要求
1.一种多模视频解码器中帧内预测器结构,其特征在于,该结构包括可编程控制单元、 可编程处理单元和重建单元,其中可编程控制单元完成参考像素的加载和控制操作,并输出参考像素值和控制信息给可编程处理单元;可编程处理单元完成像素的插值预测,并输出预测值和位置信息给重建单元;重建单元完成像素的重建。
2.根据权利要求1所述的多模视频解码器中帧内预测器结构,其特征在于,所述可编程控制单元定制专有的可编程控制单元微指令集,采用可编程的方式完成不同标准不同帧内预测模式下参考像素的加载和控制操作。
3.根据权利要求2所述的多模视频解码器中帧内预测器结构,其特征在于,所述专有的可编程控制单元微指令集包含四类指令:ALU类、跳转类、DMA类和控制类,其中,ALU类指令用于简单的运算处理,跳转类包含条件跳转指令和无条件跳转指令,DMA类指令用于加载参考像素,控制类指令用于配置相邻块可用性。
4.根据权利要求3所述的多模视频解码器中帧内预测器结构,其特征在于,所述DMA 指令包含两条指令=LDREF指令和LDPIX指令,LDREF指令编码为16bit,编码部分包括源地址、源地址增量和目的地址,启动DMA自动加载一行/ 一列参考像素;LDPIX指令编码为 8bit,指示DMA加载当前块左上角的参考像素。
5.根据权利要求1所述的多模视频解码器中帧内预测器结构,其特征在于,所述可编程处理单元定制专有的可编程处理单元微指令集,采用可编程的方式实现不同标准不同预测模式下不同插值数据通路的灵活重构。
6.根据权利要求5所述的多模视频解码器中帧内预测器结构,其特征在于,所述可编程处理单元由寄存器文件、ALU模块和输出模块构成,其中寄存器文件作为累加指令的源操作数,其中GPR寄存器堆同时作为寄存器传输指令的目的操作数,可重构为9个8bit的SGPR寄存器,或可重构为4个16bit的LGPR寄存器;ALU模块作为可编程帧内预测器中的运算单元,其结构由一个16位累加器和一个16位桶形移位器构成。
7.根据权利要求5所述的多模视频解码器中帧内预测器结构,其特征在于,所述专有的可编程处理单元微指令集包含累加指令、移位指令、寄存器传输指令和输出指令,其中累加指令由累加器执行,其本质是完成(1,1)和(1,2,1)的插值滤波操作;移位指令由桶形移位器执行,完成左移、算术右移或算术舍入右移操作;寄存器传输指令用于暂存中间结果; 输出指令由输出模块执行,将预测值限幅,并将预测值和相应的位置信息输出给重建单元。
8.根据权利要求7所述的多模视频解码器中帧内预测器结构,其特征在于,所述专有的可编程处理单元微指令集采用8bit等长编码,且均为单操作数指令。
9.根据权利要求7所述的多模视频解码器中帧内预测器结构,其特征在于,所述累加指令包括三条指令:ACC指令、SAC指令和ACCS 1指令,累加结果存入累加寄存器中,ACC 指令将源操作数和累加寄存器作累加,SAC指令将源操作数左移1位和累加寄存器作累加, ACCSl指令将源操作数和累加寄存器作累加,将累加结果作算术右移1位,并将移位结果存入移位寄存器中。
10.根据权利要求7所述的多模视频解码器中帧内预测器结构,其特征在于,所述可编程处理单元微指令集采用一个模式控制位SACSA,当SACSA置1时,表示将SAC指令的操作结果作算术舍入右移两位的操作,并将移位结果存入移位寄存器,同时清零累加寄存器;当SACSA置0时,不对SAC指令的操作结果作任何操作,直接存入累加寄存器。
11.根据权利要求7所述的多模视频解码器中帧内预测器结构,其特征在于,所述移位指令的移位数限定在0 7之间,源操作数为累加寄存器,并将移位结果存放在移位寄存器中;所述输出指令的源操作数为移位寄存器,位置信息限定在0 63之间。
12.根据权利要求5所述的多模视频解码器中帧内预测器结构,其特征在于,所述可编程处理单元采用三级流水线设计,流水线包含取指、译码和执行三个阶段。
13.根据权利要求1所述的多模视频解码器中帧内预测器结构,其特征在于,所述重建单元在预测值产生的同时生成重建结果,其接收可编程处理单元送出的预测值和位置信息,根据位置信息取出相应的残差值,与预测值相加形成重建像素。
全文摘要
本发明公开了一种多模视频解码器中帧内预测器结构,该结构包括可编程控制单元、可编程处理单元和重建单元,其中可编程控制单元完成参考像素的加载和控制操作,并输出参考像素值和控制信息给可编程处理单元;可编程处理单元完成像素的插值预测,并输出预测值和位置信息给重建单元;重建单元完成像素的重建。本发明采用可编程的方式,有效的兼容了现有各标准中所有的帧内预测模式,面积小,成本低,灵活性好,功耗低,很好的解决了便携式移动应用对于面积成本和功耗的严格限制问题以及目前对于多标准兼容的迫切需求问题。
文档编号H04N7/26GK102348114SQ20101024199
公开日2012年2月8日 申请日期2010年7月30日 优先权日2010年7月30日
发明者周莉, 喻庆东, 陈杰 申请人:中国科学院微电子研究所