一种高效avs视频码流解析系统及方法

文档序号:7703325阅读:194来源:国知局

专利名称::一种高效avs视频码流解析系统及方法
技术领域
:本发明涉及快速AVS视频码流的解析领域,具体地说是一种高效AVS视频码流解析系统及方法。
背景技术
:AVS视频码流由定长码字和K阶指数哥伦布码字组成,其中前者为定长,后者为变长。根据《信息技术先进音视频编码第2部分视频》(GB/T2000090.2-2006,以下简称AVS协议),码流的序列头、扩展数据中均由定长码字组成,但在I、PB帧头中,均各自包含3组变长码字,在条带和宏块定义中,各自包含1组、8组变长码字,以上其余部分皆为定长码字。同时在块定义中,则全为变长码字。这些定长码字和变长码字(尤其在宏块定义中)相互交错,给快速码流解析解析造成一定困难。同时,AVS视频采用的K阶指数哥伦布进行变长码字编码,在上面提及的多组变长码字中,块定义中的变长码字尤为复杂,根据编码特性,可能产生从0阶到3阶的各种码字,其长度是为任意值。在AVS协议中,使用ue(v),se(v),me(v)和ce(v)等描述不同类型的语法元素,其中ce(v)使用03阶指数哥伦布码,其他使用O阶指数哥伦布码。ue(v)的语法元素的值等于CodeNum本身;se(v):为有符号指数哥伦布码,元素的值等于(-1)k+lxCeil(k/2),其中Ceil(x)为取不小于x的最小整数;me(v)需要根据表进行转换。ce(v)描述的语法元素最为复杂,需要根据当前码值确定下一码字解码所需的码表,然后再对下一码字进行解码。在对AVS软件解码器进行分析后,得到下表:<table>tableseeoriginaldocumentpage4</column></row><table>运动补偿和环路滤波两个模块占用了将近一半的CPU资源,在剩余的模块中,码流解析和解码部分也占用了10%20%(多个码流统计结果)的CPU资源。在用软件实现码流解析和解码中,通常使用逐位移位比较的方式分析当前码字,因此通常的CPU结构都无法增加码流解析和解码的速度。在处理大分辨率图像时无疑会因为解析解码问题影响其他模块正常运行,CPU的资源应该更多的分配给能够提高图像解码质量的模块上。另一方面,由于AVS码流的特殊性,其变长码字和定长码字相互交叉,无法使用独立的定长解析器和变长解析器对码流分别进行解析,然后再解码。综上所述,在AVS的码流组成中,变长和定长的码字相互交错,使整个码流解析中,即需要进行定长码解析,又需要变长码解析。尤其是变长码部分采用的K阶指数哥伦布方式编码,由于变长码的码长由其前一个码字内容决定,解析时不能像解定长码那样预先知道确定的码长,只有在解出当前码字之后,才能根据当前码字的长度确定下一个码字的开始位置和解码方式。可见通常使用的单时钟解析的效率太低,无法达到实时解析,且码流解析系统控制非常复杂。从而导致解析系统电路面积大,且无法满足特定场合对低功耗的需求。
发明内容为了解决定长、变长指数哥伦布码解析,且在增加解析解码效率的同时能降低解析电路复杂度和功耗,根据本发明的系统及提供的方法,能够实现一种电路面积小、功耗低且快速实现AVS视频码流解析的方法。根据本系统在XilinxVirtexII3000平台上进行验证,在27MHz的工作频率下,可以实现对1080P的AVSJizhimProfile10Mbps码流进行解析和解码。本发明的高效AVS视频码流解析系统将AVS码流中的定长解析和变长解析分为两条流水线的方式同时进行,在各自的解析流水线中,根据其码流特征设置两个状态机,分别用于控制码流中定长码字解析模块的运作和变长码字解析模块的运作,两个状态机中间采用一个fifo(先进先出的缓存)来过渡。模块根据fifo空满状态控制定、变长两个解析模块的工作起始情况。定长码字解析模块负责对AVS协议中定长码字部分进行解析。解析范围包括序列头、1/P/B帧头、slice头(除mbjkip—nm字段)中的所有字段。该模块通过状态机控制当前和下一个解码的字段,自动向输入的原始码流请求数据、统计当前码流中填充bit数、判断新slice。变长码字解析模块负责对AVS协议中变长码字部分进行解析。解析范围包括ue(v)、me(v)、se(v)、ce(v)。并将解析出的码字送入解码流水线进行解码。解码的流水线负责将解析出的变长码字通过各自不同要求进行解码,其中ue(v)的语法元素的值等于CodeNum本身;se(v):为有符号指数哥伦布码,元素的值等于(-1)k+l><Ceil(k/2),其中Ceil(x)为取不小于x的最小整数;me(v)需要根据表进行转换。ce(v)描述的语法元素最为复杂,需要根据当前码值确定下一码字解码所需的码表,然后再对下一码字进行解码。本系统实现的AVS视频码流解析模块,在XilinxVirtexII3000平台上进行验证,27MHz工作主频时,能够实现对1080P的AVSJizhimProfile(glOMbps码流进行解析和解码,在增加码流处理速度的同时,仍保证较低的工作频率,从而降低实际硬件功耗。下面结合附图和实施例对本系统进一歩说明。图1是本发明高效AVS视频码流解系统的结构框图。图2是本发明实施例的定长解析状态机状态跳转图。各状态说明如下power—up:上电初始化状态;sequence—header、sequence—0sequence—12:角牟析条带头状态;i_picturejieader、i—0i—8:解析I帧头状态;pb_picture—header、pb—0pb—5:角军析PB帧头状态;slice_header、s_0as—2g:角早析slice(除mb一skip—run字段)状态;swait:空闲等待状态。图3是本发明的实施例的变长解析状态机状态跳转图。图3中各状态说明如下power_up:上电初始化状态;decoding—mb一skip一mn:解析mb—skipjun跳过宏块计数字段状态;decoding_mb—type:解析mbjype宏块类型字段状态;decoding—mb_part_type:解析mbjart—type宏块子类型字段状态;decoding—intra—luma—mode:角军析intra—luma—mode帧内亮度模式字段状态;decoding—chroma_pred—mode:解析chromaj)red—mode帧内色度予页领!l模式字段状态;decoding—mb—reference—index:角率析mb—reference一index宏块参考索弓1字段状态;decoding—mv—diff_x:解析mv—diff一x运动矢量水平分量差值字段状态;decoding—mv—diff_y:解析mv—diftj运动矢量垂直分量差值字段状态;decoding—mbweighting_prediction:角军析mbweightingjrediction力卩权予页观!j字段状态;decoding一cbp:解析cbp宏块编码模板字段状态;decoding—mb—qp—delta:解析mb一qp—delta宏块量化参数增量字段状态;decoding—trans_coefficient:角军析trans—coefficient变化系类女字段状态;decoding—escape—level—diff:角孕析escape—level—dif据逸系数差il;字段状态;wait—mb—skip—run:等待宏块跳过状态;wait_p—skip—or—b—skip:等待p帧或b帧瑕fe过状态。图4是本发明的实施例的变长解析框架图。变长数据处理对输入到变长解析模块的定长数进行组合,并送入ue等特殊解析模块-,Ue、me、se、ce:对应AVS协议进行特殊解析的模块。图5是本发明的实施例的解析解码流程图。具体实施例方式本系统将AVS码流中的定长解析和变长解析分为两条流水线的方式同时进行,参考图l。在各自的解析流水线中,根据其码流特征设置两个状态机,分别用于slice以上语法元素的8bit状态机定长解析和slice以下语法元素的32bit状态机变长解析。结合部分采用一个fifo来过渡。fifo入口宽度为8bit,出口宽度为32bit,深度为8bit*1024=32bit*256。用于结局变长解析模块要求的数据带宽要比定长解析模块大,且对条带内容做速度缓冲。根据fifo空满状态,定、变长两个解析模块自动判断是否开始解析工作。定长码字解析模块,对协议中定长部分进行解析。解析范围包括序列头、I/P/B帧头、条带头(除mb—skip—run宏块跳过计数字段)中的所有字段。该模块通过状态机控制当前和下一个解码的字段,自动向前级缓存请求原始码流数据,参考图2。统计当前码流中填充bit数。产生新条带复位部分状态机寄存器等功能。在对输入的原始码流进行解析后,得到的数据通常不是字节对齐的,如果按不对齐的方式存入fifo,则按32bit读出的时候就有残留在fifo的数据无法读出,所以在存入fifo的时候需要同时计算存入的数据个数是否是4的倍数,如果最后发现没有满足,则需要人为添加0xFF,以在变长解析模块中左右移位模块处理方便。并在最后一个不足8bit的剩余bit上也填充0xl作为补充。定长解析状态机开始运行后,每个状态都对应协议中需要解析的字段。从Ox000001BxFFFF后开始解析。在定长解析状态机中,无论是序列头还是I/P/B帧头或是slice头解析完后,都进入到power—up状态;当slice数据向外输送完后(不解析,仅输送),也进入power—up状态。另外有一个特殊状态swait:即定长解析本身不解析字段,但将到下一个slice前的所有数据都送给变长解析模块,再检测到下一个slice或帧或序列头被检测到时,进入powe:Lup状态。定长解析过程中,自主控制进入该模块的码流数据,并放入fifo中,一帧开始的时候,模块收到帧解码启动信号,无条件的向外发出请求,以便马上得到码流数据。在一般情况时,如果fifo已经空,当收到当前宏块哥伦布解析完成信号时,将当前宏块编号和当前跳过的宏块进行相加,判断该值是否超过帧内宏块总数,并同时计算变长模块中64bit缓存内实际剩余bit和填充bit数目上是否一致。还需要判断,已经解析到帧的最后一个宏块行,但自身宏块计数器没有数到最后一个宏块。通过以上三者共同确定当前解析已经接近尾声,但fifo中已经没数据或只有填充字节,这时候就需要将原始码流读取一部分到fifo中。参照图3,每次变长解析模块从fifo中能连续读取的是250个周期,当最后读出的数不是0x000001时,说明以后的数据还属于下一个新的开始,仍然属于当前宏块范围内,所以该条件确定因为fifo容量远低于实际slice大小时,需要分若干次将数据存入fifo的情况。当slice内容已经定长解析完,模块发现下一个0x000001数据,需要停止新的数据进入模块,在停止请求同时,状态机进入swait状态。在解析到新的slice处理时,需要对fifo进行复位。通过状态机中swait状态和输入使能共同判断。当状态机处于swait状态时,说明定长解析模块已经空闲,并等待新的输入,而此时有新的输入,所以在此时产生一个fifo的复位。在复位后,定长解析模块花一段时间在定长解析上,而不立即将数据存入flfo。fifo作为定长解析和变长解析中间的缓冲模块,将定长解析后一个slice内的剩余码流一次或多次的方式存放至此,供变长解析模块调用。所以当初次使用fifo时,当存入16x8bit(也就是4x32bit)后,此时变长解析模块己经可以进行解析。变长解析模块除了变长解析状态机外(参考图4),还包括ue字段解析模块、me字段解析模块、se字段解析模块和变长数据处理模块以及ce模块(以下统称这四个解析模块为特殊变长数据解析模块)。各子模块分别解析不同形式的变长码字。而变长数据处理模块用于控制它所包含的各个子模块的工作顺序,数据调度等。变长解析状态机用于控制整个变长解析过程个各个步骤顺序以及对变长解析中个别定长字段进行解析。变长数据处理模块中含有64bit快速缓存,用于数据重组,并每次都完整的将32bit的数据送入ue等模块进行变长码解析,参考图5。该模块由变长解析状态机控制启动,当变长解析状态机确定下一待解析的字段为变长字段时,启动变长数据处理模块。在变长码解析完毕后,反馈32bit中未使用的bit数给变长数据处理模块,模块会根据反馈值调整64bit缓存中的数据,并为下一次变长码解析的数据做准备。根据本系统,当两个解析状态机或任何中间数据处理模块发现解析完的数据错误或不符合协议要求时,自动进入各自的power一up状态,并能一直等待正确的码流进入,并继续解码。状态机对错误码流的定义为l.数据无法解析;2.解析结果和AVS协议对应位置不符合;3.解析结果超出AVS协议对应位置的数据范围;4.解析结果符合AVS协议,但不符合解码系统给定的参数,如解析的图像超出解码器给定的大小范围等。变长和定长状态机同过AVS协议对码字判断,所以能够兼容不符合AVS协议的数据出现在视频码流中,例如出现两个正常的帧数据间出现出错的数据时,本系统有容错机制。应该理解到的是上述实施例只是对本发明的说明,而不是对本发明的限制,任何不超出本发明实质精神范围内的发明创造,均落入本发明的保护范围之内。权利要求1.一种高效AVS视频码流解析系统,对AVS视频码流中的定长和变长码字进行解析,其特征是按照AVS视频码流中码字的特征,将定长部分和变长部分独立到两个状态机中分别解析,两者之间使用fifo对码流进行缓存。2.根据权利要求1所述的一种高效AVS视频码流解析系统,其特征是定长解析模块由定长解析状态机和中间过程处理模块组成定长解析状态机中的每个状态均对应到AVS视频协议中每个定长码字,包括其长度和码字含义。定长解析状态机自动判断和确定下一个待解码的定长码字。定长解析状态机自主控制并请求输入原始AVS视频码流。定长解析模块在码流的定长部分结束后将变长部分的数据送入fifo中缓存,并能够根据fifo空满程度,确定是否继续将原始AVS码流输出到fifo。3.根据权利要求1所述的一种高效AVS视频码流解析系统,其特征是数据缓存fifo入口为8bit宽度,出口为32bit宽度,fifo的空满程度确定变长解析状态机的工作状态在fifo中有效数据不少于32bit时启动,在fifo中单个slice的所有有效数据都是有完毕后关闭。4.根据权利要求3所述的一种高效AVS视频码流解析系统,其特征是变长解析状态机中的每个状态均对应到AVS视频协议的中的每个变长码字,仅包含码字含义,不包含码字长度,变长解析状态机在获知要解码的码字含义后,传送一个定长的32bit数据到变长数据处理模块,并在获知要解码的码字含义后,确定需要启动的特殊数据解析模块,包括ue、me、se、ce解析模块。5.根据权利要求3所述的一种高效AVS视频码流解析系统,其特征是变长数据处理模块内部使用一个64bit的缓存,根据内部缓存中有效bit数、后级特殊数据解析模块使用的上个32bit中剩余bit数,确定是否需要请求fifo送入下个32bit原始AVS视频码流数据到缓存中,在每个变长码字解析后或得到新的32bit原始AVS视频数据后,均重新计算当前64bit缓存中有效bit数。6.根据权利要求3和4所述的一种高效AVS视频码流解析系统,其特征是变长解析模块中根据AVS视频码流的特征分别设置ue、me、se、ce解析模块,称为特殊数据解析模块,分别用于解析对应的AVS视频码流,特殊数据解析模块每次对码流进行解析后,需要反馈给变长数据处理模块给入的32bit中剩余bit数。7.根据权利要求3和4所述的一种高效AVS视频码流解析系统,其特征是特殊数据解析模块的启动由变长解析状态机控制,每当解析完一个变长码字后,自动停止。8.根据权利要求1所述的一种高效AVS视频码流解析系统,其特征是当输入无法解析的AVS视频码流或输入数据非AVS视频码流时,能持续等待直到输入的数据符合可被解析的AVS视频码流,并继续进行解析。9.一种高效AVS视频码流解析方法,其特征在于将AVS码流中的定长解析和变长解析分为两条流水线的方式同时进行,在各自的解析流水线中,根据其码流特征设置相应的状态机,结合部分采用一个fifo来过渡,根据fifo空满状态,定、变长两个解析模块自动判断是否开始解析工作.-定长解析模块,对协议中定长部分进行解析,解析范围包括序列头、I/P/B帧头、除mb—skip—mn宏块跳过计数字段的条带头中的所有字段,该模块通过状态机控制当前和下一个解码的字段,自动向前级缓存请求原始码流数据,统计当前码流中填充bit数,产生新条带复位部分状态机寄存器;变长解析模块,对协议中变长部分进行解析,由变长解析状态机控制启动,当变长解析状态机确定下一待解析的字段为变长字段时,启动变长数据处理模块;在变长码解析完毕后,反馈32bit中未使用的bit数给变长数据处理模块,模块会根据反馈值调整64bit缓存中的数据,并为下一次变长码解析的数据做准备。10.如权利要求9所述的一种高效AVS视频码流解析方法,其特征在于定长解析模块在对输入的原始码流进行解析后,在将得到的数据存入fifo时同时计算存入的数据个数是否是4的倍数,如果最后发现没有满足,则需要人为添加0xFF,以在变长解析模块中左右移位模块处理方便,并在最后一个不足8bit的剩余bit上也填充0xl作为补充。11.如权利要求9或10所述的一种高效AVS视频码流解析方法,其特征在于当两个解析状态机或任何中间数据处理模块发现解析完的数据错误或不符合协议要求时,自动进入各自的power一up状态,并一直等待正确的码流进入,然后继续解码。全文摘要本发明公开了一种高效AVS视频码流解析系统及方法,将AVS码流中的定长解析和变长解析分为两条流水线的方式同时进行,在各自的解析流水线中,根据其码流特征设置两个状态机,分别用于控制码流中定长码字解析模块的运作和变长码字解析模块的运作。两个状态机中间采用一个fifo(先进先出的缓存)来过渡。本发明能够快速实现对AVS视频码流的定长、变长码字进行解析,在实现增加解析解析效率的同时能降低解析电路复杂度,同时该系统实现的AVS视频码流解析电路面积小、工作频率和功耗低。文档编号H04N7/26GK101646083SQ200910099560公开日2010年2月10日申请日期2009年6月18日优先权日2009年6月18日发明者亮刘,陈日仪申请人:杭州高特信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1