视频帧的解码处理方法和装置制造方法及图纸

技术编号:8565565 阅读:135 留言:0更新日期:2013-04-11 08:01
本发明专利技术公开了一种视频帧的解码处理方法和装置,所述装置包括解析模块、序号确定模块和错误判断处理模块。所述方法包括:在对当前读入帧的解码处理过程中,解析当前读入帧的信息,确定待显示帧序号以及缓存帧序号;判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,并根据待显示帧序号显示对应的解码帧。利用本发明专利技术,可以避免数据错误扩散到后续的解码流程和显示流程中,提高了视频播放的正确性和流畅性。

【技术实现步骤摘要】

本专利技术涉及视频数据处理领域,尤其涉及一种视频帧的解码处理方法和装置
技术介绍
在视频数据处理领域,随着视频分辨率的不断提高和视频解码复杂度的提高,对于视频解码的计算消耗持续增加。采用中央处理器CPU进行视频解码要消耗大量的CPU计算资源,也有可能出现CPU计算资源无法满足高分辨率、高码率的需要。最近几年,台式计算机(PC机)、笔记本电脑、以及手持设备等数据处理设备中,都出现了使用图形处理器(GPU)进行视频解码的趋势。其主要原因是因为GPU有强大的并行计算功能,适合视频解码,能够轻松实现几十兆码率的1080P视频的解码。因此在未来,GPU 解码技术将成为视频解码的主流技术。目前,H264视频编码格式已经被大量使用在视频编码技术中。H264视频编码格式是动态图象专家组第四版(MPEG-4, Moving Pictures Experts Group 4)标准所定义的最新格式,同时也是目前技术含量最高、代表最新技术水平的视频编码格式之一。对于H264码流的解码,目前的GPU是通过H264解码器来解码,主要过程包括对 H264视频码流进行网络提取层(NAL,Network Abstraction Layer)解析以及条带头(Slice header)解析,计算出每一帧视频的显示顺序,利用GPU对视频帧进行解码,并按照所述显示顺序显示解码后的视频帧,从而播放出视频。但是,目前的GPU对H264码流的解码方式中,主要存在以下缺陷由于网络传输错误或者其他原因,H264视频帧的 条带头中会出现错误,或者会出现帧乱序的情况,在这种情况下,这种错误会扩散至后续码流的解码中和显示流程中,导致解码后的视频帧无法正确显示,并且在每两个即时解码刷新(IDR)图像之间出现周期性的显示错误。如果错误的视频帧比较多,超过了硬件可用的最大表面(Surface)数量,将导致后续视频巾贞无法解码显示。通常的GPU Surface在Windows XP下数量为16, Windows 7下数量为22。总之,现有技术在视频帧的条带头中会出现错误,或者会出现帧乱序的情况下,视频播放的正确性和流畅性较低。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种视频帧的解码处理方法和装置,以避免错误扩散,提高视频播放的正确性和流畅性。本专利技术的技术方案是这样实现的 一种视频帧的解码处理方法,在对当前读入帧的解码处理过程中,包括解析当前读入帧的信息,确定待显示帧序号以及缓存帧序号;判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,并根据待显示帧序号显示对应的解码帧。一种视频帧的解码处理装置,包括解析模块,用于解析当前读入帧的信息;序号确定模块,用于根据解析出的信息确定待显示帧序号以及缓存帧序号;错误判断处理模块,用于判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器解码对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,根据待显示帧序号显示对应的解码帧。与现有技术相比,本专利技术所提供的本专利技术在对视频码流的处理过程中,通过解析和计算得到待显示帧(即当前应该显示的帧)的序号,此序号不仅被用于视频的显示,并且通过对此序号和最近显示过的帧的序号之间的分析,可以间接发现H264条带头中出现了错误或者视频帧出现了乱序的情况,并可及时通知软件的上层调用,即直接丢弃当前读入的视频巾贞,不再对Slice header后的宏模块(macroblocks)数据进行解码,并且不使用此视频帧计算得出的显示序号,不显示此视频帧。从而避免数据错误扩散到后续的解码流程和显示流程中,提高了视频播放的正确性和流畅性。尤其是在播放器使用GPU解码时,可以避免视频数据错误或者视频帧乱序带来的视频图像周期性错误和错误数据过多时,视频无法显示问题。附图说明图1为本专利技术所述方法的一种实施流程图2为本专利技术所述装置的一种示意图。具体实施方式下面结合附图及具体实施例对本专利技术再作进一步详细的说明。本专利技术的核心技术方案为在对当前读入帧的解码处理过程中,包括解析当前读入帧的信息,确定待显示帧序号以及缓存帧序号;之后判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,并根据待显示帧序号显示对应的解 码帧。下面以解码播放一个视频文件为例对本专利技术的方法进行说明,所述视频文件的视频帧格式为H264格式,对应解码器的解码方式为H264解码方式。针对读取到的视频文件每一读入帧都用下面的流程进行处理,所述读入帧是指从视频文件或者网络数据中读取到的一个视频帧。图1为本专利技术所述方法的一种实施流程图。参见图1,该流程包括步骤101、读入的视频文件的H264码流的一个视频帧,开始对该帧进行处理,在本文中对这个当前读入的视频帧简称为当前读入帧。步骤102、对当前读入帧的NAL进行解析得到条带头信息。步骤103、对所述条带头信息进行解析。步骤104、根据Slice header中的解析数据计算当前读入巾贞的序号(本文中所称的序号即显示序号,解码器最终按照该显示序号的顺序依次显示解码帧的图像),此处可以根据现有H264的计算方法计算当前读入帧的序号,本文不再赘述。步骤105、判断当前读入帧是否为所读入的第一帧,如果是则执行步骤106,否则执行步骤109。此处,所述所读入的第一帧是指从视频文件读取的第一帧,该第一帧根据用户的播放指令决定,如果用户的播放指令指示在视频的中间某一帧,则该帧即是所读入的第一帧。步骤106、将当前读入帧序号作为缓存帧序号,S卩缓存帧序号=当前读入帧序号。所述缓存帧是存储在缓存中的一个视频帧,用于辅助调整帧队列,缓存中最多存一帧。步骤107、命令GPU的解码器解码当前读入帧。步骤108、缓存所述缓存帧序号对应的帧,之后结束对当前读入帧的处理。步骤109、判断当前读入帧序号是否小于缓存帧序号,如果是则执行步骤111,否则执行步骤110。步骤110、将缓存帧序号作为待显示帧序号,即待显示帧序号=缓存帧序号,之后将当前读入帧序号作为缓存帧序号。即缓存帧序号=当前读入帧序号。之后执行步骤 112。步骤111、将当前读入帧序号作为待显示帧序号,即待显示帧序号=当前读入帧序号。上述其中步骤102至步骤111是所述解析当前读入帧的信息并确定待显示帧序号以及缓存帧序号的主要过程,接下来将利用上述信息进行检测Slice header数据错误、或者视频帧乱序的错误并进行相应的处理来避免错误扩散。步骤112、判断待显示帧序号是否小于最近显示过的帧的序号,如果是则说明正在解码的当前读入巾贞Slice header存在数据错误、或者视频巾贞乱序,此时丢弃当前读入巾贞,结束本流程;否则执行步骤113。所述最近显示过的帧序号初始默认为O。在本步骤中,在检测出错误或者乱序后,直接丢弃当前读入帧,不再对Slice header后的宏模块数据进行解码。并且不使用此视频帧计算得出的显示本文档来自技高网
...

【技术保护点】
一种视频帧的解码处理方法,其特征在于,在对当前读入帧的解码处理过程中,包括:解析当前读入帧的信息,确定待显示帧序号以及缓存帧序号;判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,并根据待显示帧序号显示对应的解码帧。

【技术特征摘要】
1.一种视频帧的解码处理方法,其特征在于,在对当前读入帧的解码处理过程中,包括 解析当前读入帧的信息,确定待显示帧序号以及缓存帧序号; 判断所述待显示帧序号是否比最近显示过的帧的序号小,如果是则丢弃所述当前读入帧;否则,将待显示帧序号作为最近显示过的帧的序号,命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧,并根据待显示帧序号显示对应的解码帧。2.根据权利要求1所述的方法,其特征在于,所述确定待显示帧序号以及缓存帧序号的具体方式为 解析当前读入巾贞的信息,确定该当前读入巾贞的序号; 在当前读入帧是所读入的第一帧的情况下,将当前读入帧的序号作为缓存帧序号,之后命令解码器对该当前读入帧进行解码,缓存所述缓存帧序号对应的解码帧;结束对该当前读入帧的处理; 在当前读入帧是所读入的非第一帧的情况下,判断当前读入帧的序号是否小于缓存帧序号,如果是,则将当前读入帧的序号作为待显示帧序号;否则,将缓存帧序号作为待显示帧序号,将当前读入帧的序号作为缓存帧序号。3.根据权利要求2所述的方法,其特征在于,所述解析当前读入帧的信息,确定当前读入帧的序号的具体方式为 对当前读入帧的网络提取层NAL进行解析得到条带头信息; 对所述条带头信息进行解析,再根据解析出的信息计算当前读入帧的序号。4.根据权利要求1至3任一项所述的方法,其特征在于,所述解码器为图形处理器中的解码器。5.根据权利要求1至3任一项所述的方法,其特征在于,所述的视频帧格式为H264格式,所述解码器的解码方式为H264解码方式。6.一种视频帧的...

【专利技术属性】
技术研发人员:赖晶
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1