参考像素读取存储系统的制作方法

文档序号:7691448阅读:97来源:国知局
专利名称:参考像素读取存储系统的制作方法
技术领域
本发明涉及视频解码领域,具体的讲是涉及视频解码技术中运动补偿部分的参考像素读取的系统,特别适用但不仅限于H. 264标准的视频解码系统。
背景技术
参考像素读取是视频编码系统中的一个最重要组成部分,它负责把外存中的参考视频数据搬运到编解码器内部以供编解码器进行运动补偿运算。由于现在的视频序列的分辨率越来越高,其数据搬移量也越来越大,因此能否在DDR(双倍速率同步动态随机存储器)带宽消耗较少的情况下设计一个专门针对于视频处理的并能满足海量参考图像数据搬运的专用DMA (Direct Memory Access,直接内存存取)成为整个编解码系统设计的关键。H. 264是由ITU-T视频编码专家组(VCEG)和IS0/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。 其相关的算法简介为H. 264算法针对视频的一个处理单位是宏块(MB),根据运算需求,宏块还可再进一步分割为

图1的形式。而参考像素读取模块的运动矢量预测(MVP)和数据读取都是按照图1的方式进行分割的,其宏块预测如图2所示。宏块预测的目的是为了通过相邻块的信息找到当前块的MVP,也即是通过A、B、C(D)块找到当前块的MVP。MVP的运算有一下4种1)UP_8X8 预测在如图1的宏块分割为16X8禾Π 8 X 16,即UP_8X8时1.当前宏块的参考帧与图2所示方向的相邻宏块的参考帧相同时,则当前宏块的MVP(运动矢量预测)即为此相邻宏块的运动矢量(MV)。比如当前宏块为图1中8X 16 的分割,且为左边的那个分割,如果此参考帧索引(refidx)和图2中A块的参考帧索引 (refidx)相同,那么此分割的MVP即为MVA02.当图2中的B、C宏块均不可用时,则当前宏块的MVP即为A宏块的MV。3.如果图2中A、B、C宏块的reidxA、reidxB、reidxC中有且仅有一个同当前宏块的refidx相同,那么当前宏块的MVP即为此相同宏块的MV。2)P_Skip 预测其参考帧索引refidxLO取值为0时,对于其运动矢量mvLO的推导有如下限制,在图2中若下面条件中的任何一个为真,则运动矢量mvLO的两个分量均为0 :a、宏块A的地址mbAddrA不可用;b、宏块B的地址mbAddrB不可用;c、宏块A的参考帧所引refldxLOA等于0,且mvLOA的两个分量都等于0 ;d、宏块B的参考帧所引refldxLOB等于0,且mvLOB的两个分量都等于0 ;如果上述条件均不为真,则按第4)种正常的运动矢量预测的方式进行运算,需要使宏块分割索引(mbPartldx) =0,亚宏块分割索引(subMbPartldx) =0,前向参考帧索引 (refidxLO)和当前亚宏块分割类型(currSubMbType) =“na”作为输入。而预测输出直接赋给mvLO,因为预测值即为运动矢量的预测值。3) B_Skip&B_Direct 预测B_Skip、B_Direct在预测处理时相同,他们的区别在于前者无残差,后者有。本部分的预测分为时间直接和空间直接两种。当当前宏块类型(mb_type)等于B_Skip或B_ Direct_16xl6,或者当前亚宏块类型(sub_mb_type [mbPartldx])等于 B_Direct_8X8 时, 将进入本部分预测进行MVP处理。具体运算方式根据从码流得来的直接预测模式指示标志位(direct_spatial_mv_pred_flag)信号的情况来石角定如果 direct_spatial—mv—pred— flag等于1则采用空间直接预测模式,否则采用时间直接预测模式。4)正常情况的预测当上述特殊情况都不满足时,对MVP的预测为判断图2中当前子分割的相邻宏块的可用性,如果B、C宏块皆不可用而A宏块可用的话,将A宏块的MV信息直接赋给对应的 mvpLX即可;否则判断相邻宏块的参考索引是否和当前分割宏块的参考索引一致,如果一致,那就把该相邻分割的MV赋给当前子分割的mvpLX ;如果不一致,运动矢量预测mvpLX的运算将由每个分割的运动矢量中值给出。中值预测(不可用宏块的MV = 0,refidx = -1) 为当前宏块MVP = Hiedian (MVA,MVB,MVC),当C宏块不可用时,用D宏块代替。当完成MVP 的运算之后,把得到的MVP和码流中得到的MVD相加,得到当前宏块的MV。通过此MV和码流中得到的参考索引refidx,即可找到当前宏块插值所需要的参考像素。目前视频处理系统中负责视频数据搬运的DMA大多是整个编解码器的一个从属设备或组成模块,根据编解码器的需求来搬运数据,编解码器发出读写请求,DMA高效的去搬移数据,虽然这样具有较高的效率,但是在分辨率越来越高的发展趋势下,这种数据传递方式的效率将越来越慢。

发明内容
本发明提供了一种参考像素读取存储系统,能够自动获取当前图像分割的信息并进行运动矢量预测,在编解码器需要这些数据之前,就把数据准备好,以供编解码器进行运动补偿运算,具有高效的数据搬运能力,并且占用较少的系统资源,提高了系统的运行能力和并行速度。本发明的参考像素读取存储系统,包括依次连接的运动矢量预测单元、宏块地址生成单元和参考像素读取单元,所述的运动矢量预测单元、宏块地址生成单元和参考像素读取单元分别与数据总线接口和控制单元连接,其中运动矢量预测单元将系统提供的宏块矢量相关数据,进行当前宏分割的MVP计算,然后将计算所得的MVP与对应的MVD相加得到当前分割的MV ;将当前宏块所分割的最后一行子分割的MV通过数据总线接口写入外存,作为下一行宏块的上相邻运动信息,将当前宏块的MV提供给所述的宏块地址生成单元;宏块地址生成单元根据接收的MV产生参考像素读取的地址;根据当前宏块分割和子分割的位置,以及图像的宽高信息,按照规定的图像分块组织形式,计算参考像素的偏移地址、突发传输长度和需读取的高度数据,加上参考帧的基地址后形成参考像素的读取地址交由数据总线接口生成参考像素的读取操作;参考像素读取单元从外存中读入像素数据到系统的内缓存空间中。
本系统外的解码系统为运动矢量预测单元提供的相关数据包括当前宏块的参考帧索引(refidx)、运动矢量残差(MVD)、当前宏块参考帧的图像序列号(POC)值、上相邻和相同位置宏块的运动矢量、当前宏块在图像中的位置信息和图像的宽高信息。其中图像序列号(POC)主要用于标识图像的播放顺序,同时还用于在对帧间预测片解码时,标记参考图像的初始图像序号。本发明的参考像素读取存储系统可以应用于符合H. 264、AVS或MPEG 等相关标准的视频解码装置。本发明的系统能够结合不同的视频处理算法,自动获取当前图像分割的信息进行运动矢量预测,并根据预测的结果把需要的视频数据从DDR搬运到 DMA的内部缓存,在编解码器需要这些数据之前就把数据准备好,以供编解码器进行运动补偿运算,在占用小资源的前提下极大的提高了系统的运行速度和读取能力。 一种具体的方案为,所述的运动矢量预测单元包括相互连接的运动信息缓存模块和运动矢量处理模块,所述的运动信息缓存模块与参考像素读取单元相连,其中运动信息缓存模块由输入缓存和输出缓存构成,用于提供基地址和突发传输长度给参考像素读取单元。输入缓存和输出缓存的存储空间均是由一块位宽为eobits,深度为 12的双口 SRAM(mv_sram)和一块位宽为64bits,深度为2的双口 SRAM(poc_sram)构成。运动矢量处理模块根据不同的宏块MVP类型启动相应的运算获得MV,并将获得的 MV保存和传递至所述的宏块地址生成单元。运动矢量处理模块对数据的处理过程为1.根据当前宏块类型信息判定MVP类型;2.从缓存中获取MVP所需的运动信息,从外存读取的数据需要存储到相应的内存中;3.根据MVP判定的类型来启动相应的MV运算;4.完成MV 运算之后,把运动矢量保存到相应的内存中。通过运动矢量处理模块的到的MV的作用包括1.作为相对应位置的MV保存到DDR中;2.作为上相邻的MV保存到DDR中;3.作为本参考像素读取模块左相邻的MV使用。更进一步的,所述运动信息缓存模块的输入缓存用于缓存上相邻、后向第一个参考帧运动信息和P0C,在接收系统启动信号使能后,先判别当前宏块类型,如果宏块的类型是8_肚1^(^_16116则不读取上相邻信息,若宏块内无直接预测则不读取后向第一个参考帧运动信息,否则将从内存中读取全部运动信息到运动矢量静态存储器;所述运动信息缓存模块的输出缓存用于缓存上相邻、当前宏块运动信息和P0C,在当前宏块的最后一个子分割MV运算完成后,将所缓存的信息并写出到外存;其中当前宏块的运动信息在保存时只要当前宏块存在前向预测则保存前向运动信息,当前宏块仅存在后向预测时则保存后向的运动信息;所述运动矢量处理模块的作用为根据当前宏块类型信息判定MVP类型,再从缓存中获取MVP所需的运动信息,将从外存读取的数据存储到相应的缓存中,然后根据MVP的类型启动相应的MV运算,当完成MV运算之后,把获得的MV保存到相应的缓存中传输给宏块地址生成单元。运动矢量处理模块是根据宏块运算控制模块(mb_ctrl)提供的当前宏块类型(mb_type)和当前宏块8X8块的分割/子分割类型(b8X8_part_type)来判决当前分割的MVP类型,然后根据不同的MVP类型启动相应的运算。另一种具体的方案为,宏块地址生成单元包括有相连接的地址生成模块和参考图像包装模块,其中地址生成模块和参考图像包装模块分别与参考像素读取单元和控制单元连接,地址生成模块用于计算当前分割的参考图像数据落在每个像素数据包的左上角像素的偏移地址、在当前像素数据包的突发传输长度和像素数据包的内高度,并将这些数据锁存。锁存的数据提供给所述的参考像素读取单元读取。如图3所示,系统的运行为流水线操作,随着时间的推移,各功能单元并行的子宏块也逐渐增多,与一个功能单元运行完后, 再运行下一个功能单元相比,流水线运行方式明显的提高了系统的运行效率。因为系统运行为流水线操作,因此数据为乒乓锁存。通过乒乓锁存,可以保证流水线的顺利进行,在“参考象素读取”这级流水运算过程中,需要每个当前数据包的左上角像素的偏移地址、当前像素数据包的突发传输长度和像素数据包的内高度数据,这些数据已经在上个时间片被“宏块地址生成”流水运算出来,并锁存在“乒”,因此“宏块地址生成”就可以和“参考象素读取” 并行的进行下个数据包的偏移地址、突发传输长度和像素数据包的内高度数据的运算。完成运算后锁存在“乓”,这样等“参考象素读取”完成当前运算后,接下来就可以取“乓”的数据进行运算。乒乓操作能够让整个流水线操作顺利进行。在对所述像素数据包锁存时,优选的一种方式是所述的地址生成模块对像素数据包锁存时,片外参考图像按照块为单位保存,并且将亮度分量和色度分量分开保存。为了保证存储器的访问效率,片外参考图像按照块为单位保存,而不按光栅扫描顺序保存,并且将亮度分量和色度分量分开。为提高片外DDR的存取效率,图像优选以1KB为单位打包存储, 其中将色度分量交错保存。进一步的一种方案为,所述的参考图像包装模块中,亮度分量缓存的深度为216, 如果宏块分割为8X8并且子宏块分割为4X8或4X4,同时水平方向为分像素插值时,亮度分量缓存的位宽为72bits,否则为64bits。亮度分量的最小分割为4 X 4块,预测一个8 X 4块最多需要24 X 9个像素值,预测一个宏块的亮度分量(单向)共需要1728Bytes(216X8pixels)存储空间作为参考像素缓存。缓存位宽为72bits(9pixels),深度为216,每个Byte均有写使能(wen)信号。每个宏块分割/子宏块分割使用参考区域基地址是固定的,可由该分割/子宏块分割的分割类型、 宏块分割号及子宏块分割号决定。其中宏块分割类型和宏块分割号决定宏块分割的参考区域基地址,如表1所示表1
权利要求
1.参考像素读取存储系统,其特征为包括相连接的运动矢量预测单元、宏块地址生成单元和参考像素读取单元,所述的运动矢量预测单元、宏块地址生成单元分别与参考像素读取单元和控制单元连接,其中运动矢量预测单元将系统提供的宏块矢量相关数据,进行当前宏分割的MVP计算,然后将计算所得的MVP与对应的MVD相加得到当前分割的MV ;将当前宏块所分割的最后一行子分割的MV通过数据总线接口写入外存,作为下一行宏块的上相邻运动信息,将当前宏块的MV提供给所述的宏块地址生成单元;宏块地址生成单元根据接收的MV产生参考像素读取的地址;根据当前宏块分割和子分割的位置,以及图像的宽高信息,按照规定的图像分块组织形式,计算参考像素的偏移地址、突发传输长度和需读取的高度数据,加上参考帧的基地址后形成参考像素的读取地址交由数据总线接口生成参考像素的读取操作;参考像素读取单元从外存中读入像素数据到系统的内缓存空间中。
2.如权利要求1所述的参考像素读取存储系统,其特征为所述的运动矢量预测单元包括相互连接的运动信息缓存模块和运动矢量处理模块,所述的运动信息缓存模块与参考像素读取单元相连,其中运动信息缓存模块由输入缓存和输出缓存构成,用于提供基地址和突发传输长度给参考像素读取单元;运动矢量处理模块根据不同的宏块MVP类型启动相应的运算获得MV,并将获得的MV保存和传递至所述的宏块地址生成单元。
3.如权利要求2所述的参考像素读取存储系统,其特征为所述运动信息缓存模块的输入缓存用于缓存上相邻、后向第一个参考帧运动信息和P0C,在接收系统启动信号使能后, 先判别当前宏块类型,如果宏块的类型是B_direct_16xl6则不读取上相邻信息,若宏块内无直接预测则不读取后向第一个参考帧运动信息,否则将从内存中读取全部运动信息到运动矢量静态存储器;所述运动信息缓存模块的输出缓存用于缓存上相邻、当前宏块运动信息和P0C,在当前宏块的最后一个子分割MV运算完成后,将所缓存的信息并写出到外存;其中当前宏块的运动信息在保存时只要当前宏块存在前向预测则保存前向运动信息,当前宏块仅存在后向预测时则保存后向的运动信息;所述运动矢量处理模块的作用为根据当前宏块类型信息判定MVP类型,再从缓存中获取MVP所需的运动信息,将从外存读取的数据存储到相应的缓存中,然后根据MVP的类型启动相应的MV运算,当完成MV运算之后,把获得的MV保存到相应的缓存中传输给宏块地址生成单元。
4.如权利要求1所述的参考像素读取存储系统,其特征为宏块地址生成单元包括有相连接的地址生成模块和参考图像包装模块,其中地址生成模块和参考图像包装模块分别与参考像素读取单元和控制单元连接,地址生成模块用于计算当前分割的参考图像数据落在每个像素数据包的左上角像素的偏移地址、在当前像素数据包的突发传输长度和像素数据包的内高度,并将这些数据锁存。
5.如权利要求4所述的参考像素读取存储系统,其特征为所述的地址生成模块对像素数据包锁存时,片外参考图像按照块为单位保存,并且将亮度分量和色度分量分开保存。
6.如权利要求4所述的参考像素读取存储系统,其特征为所述的参考图像包装模块中,亮度分量缓存的深度为216,如果宏块分割为8X8并且子宏块分割为4X8或4X4,同时水平方向为分像素插值时,亮度分量缓存的位宽为72bits,否则为64bits。
7.如权利要求4所述的参考像素读取存储系统,其特征为所述的参考图像包装模块中,色度分量缓存的深度为48,当宏块分割为8X8以上或者宏块分割和子宏块分割均为 8X8时,色度分量缓存的位宽为64bits,否则为48bits,并且空余的16bit位宽置为无效位。
8.如权利要求1所述的参考像素读取存储系统,其特征为所述的参考像素读取单元包括参考图像缓存模块和数据总线接口 ;其中参考图像缓存模块用于存储运动补偿的前后向参考视频数据,数据总线接口用于读取和传输数据。
9.如权利要求8所述的参考像素读取存储系统,其特征为所述的参考图像缓存模块中,亮度分量缓存为7776Bytes的四片双口 SRAM,每片SRAM的位宽为72bits,深度为216 ; 色度分量缓存为1536Bytes的四片双口 SRAM,每片SRAM的位宽为64bits,深度为48。
10.如权利要求8或9所述的参考像素读取存储系统,其特征为所述的数据总线接口为符合AXI总线规范的总线接口。
全文摘要
本发明涉及参考像素读取存储系统,包括相连接的运动矢量预测单元、宏块地址生成单元和参考像素读取单元,所述的运动矢量预测单元、宏块地址生成单元分别与参考像素读取单元和控制单元连接,运动矢量预测单元根据计算出的MVP得到当前分割的MV;宏块地址生成单元根据接收的MV产生参考像素读取的地址;参考像素读取单元从外存中读入像素数据到系统的内缓存空间中。本发明的参考像素读取存储系统能够结合不同的视频处理算法,自动获取当前图像分割的信息进行运动矢量预测,在编解码器需要这些数据之前就把数据准备好,以供编解码器进行运动补偿运算,在占用小资源的前提下极大的提高了系统的运行速度和读取能力。
文档编号H04N9/78GK102223543SQ20111015714
公开日2011年10月19日 申请日期2011年6月13日 优先权日2011年6月13日
发明者刘成强, 杨尚罡, 鲁国宁 申请人:四川虹微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1