基于多流水控制与缓存优化的mpeg-2视频解码控制方法

文档序号:7955600阅读:159来源:国知局
专利名称:基于多流水控制与缓存优化的mpeg-2视频解码控制方法
技术领域
本发明属于视频解码及VLSI设计技术领域,应用于视频解码的ASIC设计或软硬件协同设计,具体涉及基于多流水控制与缓存优化的MPEG-2视频解码控制方法。
背景技术
MPEG-2视频解码功能框图如图1所示,主要包括视频码流解析(VSP)模块,可变长解码(VLD)模块、行程解码及反扫描(RLD/IZZ)模块、反量化(IQ)模块、反离散余弦变换(IDCT)模块、MV_C(运动矢量计算)和运动补偿(MC)等功能模块单元。MPEG-2视频解码器运算复杂度高,数据流和控制流密集,要想使整个系统达到最优,需要采用合理的控制策略对各功能单元电路(VSP、VLD、MC等)进行有效调度。当前MPEG-2视频解码器设计中典型结构和控制策略主要为流水线结构的集中控制策略(Nam Ling,An efficient controller scheme for MPEG-2 video decoder,IEEETransactions on Consumer Electronics,May 1998)和数据驱动结构的分散控制策略(Jeong-Min Kim,A cost-effective architecture for HDTV video decoder inATSC receivers,IEEE Transactions on Consumer Electronics,November1999)。
流水线控制策略的主要特点是以“数据包”为单位进行数据处理,为了避免流水线发生错误,处理单元必须占用相等的时间。当各个处理单元处理“数据包”占用的时间不等时,已经处理完数据的处理单元就处于空闲等待状态。因此,为使等待时间的总和最小,需要一个集中控制机制的系统控制器对每个处理单元或任务进行严格定时,即时间驱动方式的流水工作。系统控制器负责整体流程控制,将视频解码的各任务以宏块(MB)或基本块(Block)为单位排成流水线,分配固定的时隙给每个功能单元,控制器也可采取相应措施,利用其他MB或Block的时间余量对某一个超过解码时限的MB或Block解码。在这种结构中,系统控制器与各个功能单元间通过同步控制信号通道和状态信息通道来实现同步控制与状态反馈,使得控制器的设计相当复杂,同时流水线工作机制要求各个功能单元间的数据接口缓存一个MB或者Block的数据,增加了片上存储资源的开销。
数据驱动处理单元的工作状态取决于数据资源和存储资源,各个处理单元依靠存储的数据相互连接,每个处理单元的解码速度信息将反映在数据和存储资源的可用性上,并通过数据存储器向其它处理单元传递,使每个处理单元可以根据当前解码的实际情况自适应地调整解码速度。基于数据驱动结构的视频解码器一般采用分散控制策略,将控制任务分散到上述功能单元,利用模块间的反馈信息均衡各部分处理时间,由各功能模块相互协调控制整个视频解码过程,其控制过程简单,解码效率高,而且连接各功能模块间的缓存相当小,大大减小了芯片的硬件开销。但由于在分散控制中一般采用分离的数据信息和控制信息缓存,并没有利用全局的编码状态信息、功能模块本身的解码速度等特点,对数据和状态信息缓存无法进行最优设计(HuiWang,A Novel HDTV video decoder and decentralized control scheme,IEEETransactions on Consumer Electronics,November,2001,文中的数据和控制信息缓存使用了4Kb)。

发明内容
针对上述背景技术中存在的缺陷或不足,本发明的目的在于给出一种基于多流水控制和缓存优化的MPEG-2视频解码器控制方法。
为了实现上述任务,本发明采取如下的技术解决方案一种基于多流水控制与缓存优化的MPEG-2视频解码控制方法,其特征在于,该方法采用由视频码流解析模块单元VSP,可变长解码模块单元VLD与RLD、IZZ、IQ、IDCT模块构成宏观流水线结构,各模块单元间使用缓存匹配解码速度。
MS_FIFO(VSP的输入,MPEG-2视频码流缓存),BS_FIFO(VSP与VLD之间的可变长码流缓存)与RL_FIFO(VLD与RLD之间的Run-Level对缓存)的缓存深度可为4-6字,可以使用寄存器实现。
各功能模块单元的执行与停顿在周期级时序上决定于缓存的使用情况和宏块、图像的起始检测信号。
对各功能模块单元所需要的序列级、图像级和宏块级的控制变量信息使用双寄存器组存储。
对跳过的宏块、宏块中不编码的基本块,使用额外的流水线旁路到运动补偿单元。
本发明针对MPEG-2视频解码器的实现,使用缓存匹配各功能单元的解码速度,各功能单元的执行与停顿受缓存值和宏块、图像起始检测信号的控制,对控制信息变量使用双寄存器组缓存,在满足高速高性能视频解码的同时,达到最优的缓存设计和解码流程控制。


图1是简化的视频解码过程图;图2是本发明所提出的视频解码器的功能结构框图;图3是视频解码过程的3级流水结构;图4是MS_FIFO及序列、图像变量寄存器组写控制示意图;图5是BS_FIFO及宏块级变量寄存器组写控制示意图。
以下结合附图和实施例对本发明作进一步的详细说明。
具体实施例方式
参见图2,本发明所提出的视频解码器的功能结构,包括宏块基本块统计模块,视频码流解析(VSP)模块,序列图像寄存器1、2,可变长解码(VLD)模块,帧存储器,反离散余旋变换(IDCT)模块,游程解码与反扫描(RLD/IZZ)模块,宏块级寄存器1、2,EOB统计模块,MV_FIFO(MV缓存),运动向量计算(MV_C)模块,运动补偿(MC)模块,以及MS_FIFO、BS_FIFO、RL_FIFO。
宏块基本块统计模块分别与视频码流解析模块(VSP)、可变长解码模块(VLD)连接,视频码流解析模块(VSP)的输入和输出还连接MS_FIFO、序列图像寄存器1、2,并通过BS_FIFO与可变长解码模块(VLD)连接,可变长解码模块(VLD)连接有宏块级寄存器1、2和EOB统计模块,并通过RL_FIFO与游程解码与反扫描模块(RLD/IZZ)连接,游程解码反扫描模块(RLD/IZZ)与反离散余旋变换(IDCT)模块相连,可变长解码模块(VLD)还通过MV缓存与运动向量计算模块(MV_C)连接,运动向量计算模块(MV_C)与运动补偿模块(MC)连接;运动补偿模块(MC)与宏块基本块统计模块和帧存储器相连,RL_FIFO还与EOB统计模块互连。
在如图2所示的视频解码结构中,设MS_FIFO中的剩余字深度为ms_length,BS_FIFO中的剩余字深度为bs_length,RL_FIFO中的剩余字深度为rl_length,3个FIFO的长度均设为6。RLD、IZZ、IQ、IDCT四个功能单元从流水线的角度看,可以归并为同1级流水线,这样图2的结构从宏观上分为如图3所示的3级流水线结构,即VSP为第一级流水线,VLD为第二级流水线,(RLD、IZZ、IQ、IDCT)与(MV计算、运动补偿)构成第三级流水线。
对各功能模块的运行控制策略如下1.当bs_length<6时产生VSP_enl信号,它是VSP解码启动的必要条件,将去除各种头信息的32位可变长编码码流字送入BS_FIFO;当rl_length<6时产生VLD_enl,是VLD解码启动的必要条件,将解码后的Run_Level对输出到RL_FIFO。而RLD/IZZ、IQ与IDCT模块是完全数据驱动的结构,及当rl_length>0时,即可按流水方式一直运行。
2.当各功能模块单元的结构为数据驱动的流水结构时,整个视频解码系统受各种解码变量所控制。MPEG-2视频解码器中用到的变量的解码功能单元位置与使用单元位置如表1所示,因在本发明中并未说明运动补偿模块的细节实现,因此对其所使用的变量没有具体说明。变量的作用域主要为宏块级、图像级和序列级,例如宏块级变量code_block_pattern,quantiser_scale_code等;图像、序列级变量horizontal_size_value,vertical_size_value,chroma_format,intra_dc_precision,q_scale_type,intra_vlc_format,alternate_scan,quantiser_scale_code等;因此对于如上的变量分析,基于序列、图像一级的流水实现过程,可对该级别所使用的变量及其派生变量使用两套寄存器组实现Ping-Pong存储控制;对宏块级变量也使用2组Ping-Pong运行模式的变量寄存器组。
3.为提高解码器的解码速度,应尽量使图2所示的数据驱动结构设计的功能单元之间的MS_FIFO、BS_FIFO和RL_FIFO充满;其中MS_FIFO的写不需要反馈控制,只要该FIFO不为满则可写;当图像、序列变量寄存器组的两个标志位都为valid时,从MS_FIFO中读入32位bit流,当解出值指示为序列或图像起始码时,VSP停顿,直到上述两个标志位中只有一个有效时继续VSP解码,将解出的序列、图像变量值更新已标志为失效的寄存器组,并将该寄存器组对应的标志位重新置为valid。序列、图像寄存器组的无效标志由运动补偿模块中的基本块统计和宏块统计决定,当统计的宏块数等于由Horizontal_size、vertical_size等决定的宏块数时,表示当前序列、图像已完成全部运算,可无效当前帧的控制变量寄存器值。示意过程如图4所示。
4.BS_FIFO的读出因控制变量信息的解码总是早于数据信息的解码,对BS_FIFO而言,数据信息即为Run/Level对,对该信息探测,累加其中的EOB数(基本块的结束标志),与当前宏块的code_block_pattern值比较,当相等时,说明VLD的下次解码值为下一个宏块的数据信息,如果宏块的两个变量寄存器组的标志位都为1,说明此时应停止VLD的解码与输出,直到运动补偿模块统计出已完成一个宏块的运动补偿且无效宏块变量寄存器组对应的标志位后,再启动VLD解码与输出,如图5所示。
5.对于“跳过的宏块”(宏块在编码时的全零数据)以及“宏块中不编码的基本块”(全零的基本块不进行编码),将宏块或编码块的此信息直接传递到MC中进行统一处理,避免了在RLD/IZZ/IQ和IDCT中对这些块进行的0操作,简化了数据通道的复杂性。在MC中根据“跳过宏块”的运动矢量直接找到参考帧数据,无需做运动补偿(残差数据全0)即可得到预测帧图像。
6.缓存与变量寄存器组的进一步优化及其效率分析1)如果视频解码从图像一级的流水线机制计算,如序列、图像一级使用双寄存器组变量,则只要图像头、序列头解码的时间<一帧帧内图像的解码时间(VLD+IDCT+MC的时间),即不会形成流水线效率损失,而帧内图像解码时间最小为对该图像(对B,P帧)的仅作运动补偿时的对预测帧的存储器读写时间或仅考虑IDCT的时间(对I帧),在使用双寄存器组存储序列、图像级的变量时,效率为100%。如使用1个寄存器组时,流水线效率降低的计算为图像头、序列头解码时间除以(图像头、序列头解码时间+帧内图像解码时间),选用Forman视频(352×288)的前9帧,如表2所示,可得出该值最大为0.2%。
2)块或宏块级的流水线效率分析由于各级流水从视频解码速度本身来说是不匹配的IDCT模块的输出与输入的速度比为1,则该模块的运行时间主要由用于流水线准备或填充的VDCTdl和流水线运行时间VDCTrun组成;而RLD的输出与输入速度比为RUN值(通常>2);而IZZ和IQ对于输出与输入并未加速,其值为1;因此BS_FIFO的缓存大小最优为匹配IDCT的流水线的填充时间,即rl_length=VDCTdl/2。
3)VLD模块的输入为经系统解码后的32位数据码流,而其输出为解码的Run/Level对和运动矢量,最大需要18位码流解码出一个Run/Level对或运动矢量,因此其输出与输入的加速比>1.7(为Run-Level对和运动矢量之和)。表3是Forman序列经VSP解码后的字数(32位bit)及经VLD解码后的Run-Level对数统计,以测试VLD解码的加速比。由表3可见,对I帧,该加速比达到5以上;对P帧和B帧,由于存在大量“跳过的宏块”以及“不编码的基本块”,使得VLD的解码的结果主要为运动矢量。
4)对于VSP模块,其输入是MPEG-2的视频编码码流,而其输出是其中包含图像编码数据和运动矢量的数据码流,其输出与输入速度比<1,对实际的视频解码序列可测出速度比如表4所示(输出与输入速度比>0.9)。
帧内图像解码从速度上看整体上形成了前快后慢的数据流速,便于使用在此提出的基于功能单元的宏流水、缓存探测的多流水控制与缓存优化方法。仿真实验表明在上述的视频解码的控制策略下该视频解码器在满足实时解码性能下达到较优的缓存使用。
下表1~4给出了MPEG-2视频解码器中变量解码、Forman序列的帧解码总时间与VSP解码时间统计、VLD模块输出与输入速度统计(对Forman序列的Run-Level对)、VSP模块输出与输入速度统计(Forman序列)。
表1MPEG-2视频解码器中变量解码


表2Forman序列的帧解码总时间与VSP解码时间统计

表3VLD模块输出与输入速度统计(对Forman序列的Run-Level对)

表4VSP模块输出与输入速度统计(Forman序列)

权利要求
1.一种基于多流水控制与缓存优化的MPEG-2视频解码控制方法,其特征在于,该方法采用由视频码流解析模块单元VSP,可变长解码模块单元VLD与RLD、IZZ、IQ、IDCT模块构成宏观流水线结构,各模块单元间使用缓存匹配解码速度;具体包括以下步骤VSP的输入和MPEG-2视频码流缓存MS_FIFO、VSP与VLD之间可变长码流缓存BS_FIFO、VLD与RLD之间的Run-Level对缓存RL_FIFO的深度为4-6字,使用寄存器实现;各功能模块单元内的解码流水线结构的执行与停顿在周期级时序上决定于缓存中缓存值和宏块、图像的起始信号检测;对各模块单元流水解码所需要的序列、图像、宏块级的控制变量信息使用双寄存器组存储;对跳过的宏块、宏块中不编码的基本块、使用额外的流水线旁路到运动补偿单元处理。
全文摘要
本发明公开了一种基于多流水控制与缓存优化的MPEG-2视频解码控制方法,采用由视频码流解析模块单元VSP,可变长解码模块单元VLD与RLD、IZZ、IQ、IDCT模块构成宏观流水线结构,使用缓存匹配MPEG-2的功能模块单元的解码速度,各功能单元内的解码流水线的执行或停顿受缓存值和宏块、图像起始检测信号调节,对控制信息变量使用双存器组存储,在满足高速高性能视频解码的同时,达到优化的缓存使用。
文档编号H04N7/50GK1874517SQ20061004299
公开日2006年12月6日 申请日期2006年6月19日 优先权日2006年6月19日
发明者梅魁志, 郑南宁, 曾强, 周华锋, 胡丽娟, 张学臻, 赵晨 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1