一种视频解码方法、装置、设备和存储介质与流程

文档序号:17489639发布日期:2019-04-23 20:20阅读:164来源:国知局
一种视频解码方法、装置、设备和存储介质与流程

本发明实施例涉及数据处理领域,尤其涉及一种视频解码方法、装置、设备和存储介质。



背景技术:

视频编码技术,是从时间冗余、空间冗余、视觉冗余、统计冗余等方向,对原始视频数据进行压缩,有效地解决海量视频的存储、传输等问题,广泛的应用于网络视频传输、数字视频点播等各类相关领域。

在网络直播系统中,由于视频数据通常经过了压缩编码,在对其播放显示之前需要执行对应的解码操作,而解码是一个非常复杂的计算操作。现有的视频解码方式有硬件解码、软件解码和软硬件结合的解码。相对于个人电脑,在某些性能较弱的移动设备上,软件解码对中央处理器(centralprocessingunit,cpu)的处理能力要求较高,会存在移动设备发热或大量耗电的缺陷;低端移动设备的硬件解码器对视频解码的兼容性并不好,有些正常的视频可能无法解码,或者解码出来的视频图像比原始画面略大,并伴随有绿边/花边等异常情况;现有的软硬件结合的解码通常是根据软件解码和硬件解码的能力将待解码码流进行分层处理,从而得到最终解码的视频数据。

现有采用软硬件分层的解码需要通过软件控制相应硬件实现对应的解码,此时要求该硬件解码器能够提供相应的软件接口,以满足软件对其的控制权,存在较高的硬件定制化要求。



技术实现要素:

本发明实施例提供了一种视频解码方法、装置、设备和存储介质,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,实现完整码流的视频解码,在保证低功耗的基础上,提高视频解码速率。

第一方面,本发明实施例提供了一种视频解码方法,该方法包括:

获取视频码流;

根据本机的解码类型修改所述视频码流中的不兼容码流,得到待解码码流和修改信息,所述不兼容码流为码流特征与所述解码类型不匹配的码流;

对所述待解码码流进行硬件解码,得到解码后的视频帧;

根据所述修改信息调整所述解码后的视频帧,得到目标视频帧。

进一步的,根据本机的解码类型修改所述视频码流中的不兼容码流,包括:

确定所述视频码流的码流特征;

根据所述码流特征与本机的解码类型确定本机对所述视频码流的兼容度;

所述兼容度为部分兼容,则根据所述解码类型修改所述视频码流中的不兼容码流。

进一步的,根据所述解码类型修改所述视频码流中的不兼容码流,包括:

根据本机的解码类型确定本机对所述视频码流的兼容特征值;

根据所述兼容特征值确定所述视频码流中不兼容码流的码流特征;

将所述不兼容码流的码流特征修改为与所述兼容特征值匹配的目标码流特征。

进一步的,所述视频码流的码流特征通过对所述视频码流的序列头信息、图像组头信息、图像头信息和条带头信息中的至少一项进行解析确定。

进一步的,在根据本机的解码类型修改所述视频码流中的不兼容码流之前,还包括:

根据所述视频码流的编码类型,在预存的兼容性列表中查找匹配的解码类型。

第二方面,本发明实施例提供了一种视频解码装置,该装置包括:

码流获取模块,用于获取视频码流;

码流修改模块,用于根据本机的解码类型修改所述视频码流中的不兼容码流,得到待解码码流和修改信息,所述不兼容码流为码流特征与所述解码类型不匹配的码流;

硬件解码模块,用于对所述待解码码流进行硬件解码,得到解码后的视频帧;

视频帧调整模块,用于根据所述修改信息调整所述解码后的视频帧,得到目标视频帧。

进一步的,所述码流修改模块,具体用于:

确定所述视频码流的码流特征;根据所述码流特征与本机的解码类型确定本机对所述视频码流的兼容度;所述兼容度为部分兼容,则根据所述解码类型修改所述视频码流中的不兼容码流。

进一步的,所述码流修改模块,具体用于:

根据本机的解码类型确定本机对所述视频码流的兼容特征值;根据所述兼容特征值确定所述视频码流中不兼容码流的码流特征;将所述不兼容码流的码流特征修改为与所述兼容特征值匹配的目标码流特征。

进一步的,所述视频码流的码流特征通过对所述视频码流的序列头信息、图像组头信息、图像头信息和条带头信息中的至少一项进行解析确定。

进一步的,所述视频解码装置,还包括:

解码类型确定模块,用于在根据本机的解码类型修改所述视频码流中的不兼容码流之前,根据所述视频码流的编码类型,在预存的兼容性列表中查找匹配的解码类型。

第三方面,本发明实施例提供了一种设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的视频解码方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的视频解码方法。

本发明实施例提供的一种视频解码方法、装置、设备和存储介质,根据本机的解码类型对应修改视频码流中码流特征与本机的解码类型不匹配的不兼容码流,使修改后的待解码码流符合本机的解码类型,从而进行完整码流的硬件解码,后续再根据修改信息对硬件解码后的视频帧进行调整,实现对应的视频解码,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,在保证低功耗的基础上,提高了视频解码速率,优化了解码性能。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1a为本发明实施例一提供的一种视频解码方法的流程图;

图1b为本发明实施例一提供的方法中视频码流的码流结构的示意图;

图2为本发明实施例二提供的一种视频解码方法的流程图;

图3为本发明实施例三提供的视频解码方法的应用场景的场景架构图;

图4为本发明实施例四提供的一种视频解码装置的结构示意图;

图5为本发明实施例五提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

由于硬件解码对于解码设备的cpu处理能力的要求较低,且可以在低功耗的情况下较快的完成解码,因此本发明实施例主要针对与移动设备上的硬件解码器不兼容的视频码流进行修改,以符合本机的硬件解码类型,提高码流的兼容性,从而将修改后的完整视频码流进行硬件解码,并根据修改信息对硬件解码后的视频帧进行还原处理,此时在不影响解码后的视频画面正常展示的前提下,主要耗时操作仍通过硬件解码器执行,达到充分利用硬件解码降低移动设备出现的发热和高功耗的目的。

实施例一

图1a为本发明实施例一提供的一种视频解码方法的流程图,本实施例可应用于任一种配置有硬件解码器的终端设备上。本发明实施例的技术方案适用于如何通过硬件解码器对与本机的解码类型不兼容的视频码流进行解码的视频解码过程中。本实施例提供的一种视频解码方法可以由本发明实施例提供的视频解码装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的设备中,该设备可以是配置有硬件解码器的智能手机、平板电脑、掌上游戏机等终端设备。

具体的,参考图1a,该方法可以包括如下步骤:

s110,获取视频码流。

其中,由于网络中的视频在播放之前,通常经过了一定的压缩编码,可以将原始的视频文件转换成另一种视频格式,保证视频文件在网络中的有效传输。视频码流是将原始的视频文件经过压缩编码后得到的对应编码格式下的视频数据,可以表示视频文件在单位时间内的视频数据流。

具体的,用户在设备上播放某一视频时,该设备首先要获取待播放视经过进过相应压缩编码后生成的视频码流,以便后续对该视频码流进行对应的解码操作,才能在设备上播放显示。可选的,设备接收到用户针对某一视频的播放指令,根据该播放指令可以在后台服务器或者本地对应位置查找预先存储的该视频进过相应压缩编码生成的视频码流,从而获取该视频码流,在后续进行对应的解码操作。

s120,根据本机的解码类型修改视频码流中的不兼容码流,得到待解码码流和修改信息。

其中,不兼容码流为码流特征与解码类型不匹配的码流。具体的,码流特征是视频文件经过压缩编码后,在视频码流中包括的能够表示对应所采用的具体压缩编码的编码格式的一系列特征信息;以h264码流为例,码流特征可以有:压缩编码后的视频码流中包括的判断是否有双向参考帧的特征标识、编码时对应采用的熵编码类型、视频帧分辨率、视频帧尺寸信息以及编码时进行重排序所需缓存帧数等。本机的解码类型是本机设备上的硬件解码器针对各类的压缩编码技术,在进行对应解码时该硬件解码器所能够支持的兼容码流特征;若当前视频码流的码流特征满足该兼容码流特征中的对应特征时,本机的硬件解码器对当前视频码流进行对应的硬件解码操作,可以保证对应的解码效果。

此外,针对各种设备的解码类型,在本实施例中,可以使设计人员通过各类型号的设备上的硬件解码器对采用不同压缩编码技术生成的视频码流分别进行解码测试,或者通过自动化测试软件为各类型号的设备上的硬件解码器对采用不同压缩编码技术生成的视频码流分别进行自动解码测试,从而分析出各类型号的设备上的硬件解码器针对不同压缩编码技术所支持的兼容码流特征,并生成对应的兼容性列表,如该兼容性列表中可以包括各类型号的设备针对不同编码类型,在对应解码时所支持的各种兼容码流特征,也就是兼容性列表中可以包括各类型号的设备在进行硬件解码时所支持的解码类型。

可选的,本实施例在获取到对应的视频码流时,首先可以对该视频码流进行软件解析,得到该视频码流的码流特征,同时在后台存储的兼容性列表中查找出本机对应的解码类型;从而根据本机的解码类型判断该视频码流的码流特征是否满足本机所支持的兼容码流特征,并确定出该视频码流中码流特征与解码类型中的兼容码流特征不匹配的码流,作为该视频码流中的不兼容码流。

进一步的,由于硬件解码对于设备的cpu处理能力的要求较低,且可以在低功耗下较快完成解码,因此本实施例中为了在保证视频画面正常显示的基础上,仍能够采用本机上的硬件解码器来对视频码流进行解码,此时可以根据本机上的硬件解码器所支持的兼容码流特征对该视频码流中不兼容码流的码流特征进行修改,使其满足本机的解码类型;同时将码流特征修改后的不兼容码流与码流特征未修改的码流重新组成一个新的完整的视频码流,也就是待解码码流,以便后续采用本机上的硬件解码器对该待解码码流进行解码,提高解码速率;同时在对不兼容码流进行修改时,还需要保存对应的修改信息,以便后续能够根据该修改信息对将待解码码流对应解码后的视频帧进行还原后处理,得到与原始的视频码流对应的符合画面显示需要的解码视频帧。

可选的,由于视频所采用的压缩编码方式不同,本机的解码类型中可能包括有不同编码类型下的各个兼容码流特征,因此本实施例中,在根据本机的解码类型修改视频码流中的不兼容码流之前,还可以包括:根据视频码流的编码类型,在预存的兼容性列表中查找匹配的解码类型。

具体的,获取到视频码流时,为了对该视频码流中的不兼容码流进行对应修改,使其满足本机的解码类型,本实施例还需要对视频码流进行对应的解析,判断该视频码流所采用的压缩编码方式,也就是对应的编码类型,根据该编码类型在预存的兼容性列表中查找出与该编码类型匹配的解码类型,也就是该编码类型下本机的硬件解码器所支持的各个兼容码流特征,以便后续直接根据该编码类型下的各个兼容码流特征,判断视频码流中码流特征与该编码类型下的各个兼容码流特征不匹配的不兼容码流。

可选的,由于本实施例中主要为了充分利用硬件解码来降低设备出现的发热和高功耗的问题,也就是通过采用硬件解码器来执行本次解码过程中的功耗较大的解码操作,从而在保证设备低发热和低功耗的情况下,仍能够较快实现解码,因此本实施例中在对视频码流中的不兼容码流进行修改时,需要考虑修改的工作量是否会导致较大功耗或较长耗时的问题。具体的,本实施例中根据本机的解码类型修改视频码流中的不兼容码流,可以包括:

s121,确定视频码流的码流特征,根据码流特征与本机的解码类型确定本机对视频码流的兼容度。

具体的,在获取到视频码流后,首先可以对该视频码流进行软件解析,得到表示该视频码流对应的视频文件所采用的具体压缩编码信息的码流特征。可选的,经过相应压缩编码后的视频码流的码流结构如图1b所示,该视频码流中对应的编码层次可以包括:序列层、图像组层、图像层、条带层、宏块层和块层,通过该层次的码流结构对应分析该视频码流的码流特征,本实施例中视频码流的码流特征可以通过对视频码流的序列头信息、图像组头信息、图像头信息和条带头信息中的至少一项进行解析确定,也可以通过对宏块信息分析得到。

可选的,在对视频码流进行软件解析得到该视频码流的码流特征时,可以通过本机标识在预先存储的兼容性列表中查询本机对应的各个解码类型,并根据视频码流的编码类型,再次在预先查询到的本机的各个解码类型中获取与本次解码中的该视频码流对应的解码类型,同时对该视频码流的码流特征与本机查询到的解码类型中所支持的各个兼容码流特征进行比对,确定出视频码流中码流特征不匹配的不兼容码流。

由于本实施例中需要考虑不兼容码流修改的工作量是否会导致较大功耗或较长耗时的问题,因此在对各类型号的设备进行测试时,除了需要判断本机针对各种压缩编码技术所支持的兼容码流特征,还需要判断本机的硬件解码器在对某一码流特征不兼容时,如果需要将该不兼容码流特征修改为与所支持的兼容码流特征匹配的特征值时,需要耗费的精力与耗时过大,本次修改也会带来设备发热或高功耗的情况时,则在兼容性列表中的该不兼容码流特征处对应标记出不支持对该码流特征的修改,属于视频码流与本机完全不兼容的情况,如若确定本机对视频码流中的熵编码类型不兼容,而修改熵编码类型需要对原始视频进行重新编码,所耗费的工作量过大,因此不支持对熵编码类型的修改,此时属于视频码流与本机完全不兼容的情况;而如果在将该不兼容码流特征修改为与所支持的兼容码流特征匹配的特征值时,需要耗费的计算量与耗时较小,能够满足设备低发热和低功耗的情况,此时在兼容性列表中的该不兼容码流特征处对应标记出支持对该码流特征的修改,属于视频码流与本机部分兼容的情况;若视频码流的码流特征均满足本机在对应解码类型下的各个兼容码流特征,此时属于视频码流与本机完全兼容的情况。因此本实施例中本机对视频码流的兼容度可以包括完全兼容、部分兼容和完全不兼容的三种情况。

可选的,本实施例中在得到视频码流的码流特征后,可以通过对该码流特征和本机对应的解码类型下的各个兼容码流特征进行比对,确定是否存在不兼容码流,从而判断本机对该视频码流的兼容度;完全兼容可以直接通过本机上的硬件解码器进行完整的硬件解码,而无需对该视频码流进行修改;完全不兼容可以通过软件解码实现,也无需对该视频码流进行修改;因此本实施例中对完全兼容和完全不兼容的情况不作分析,仅对部分兼容下的视频码流进行处理,以便后续采用硬件解码器对修改后的视频码流进行对应的硬件解码,提高解码效率。

s122,兼容度为部分兼容,则根据解码类型修改视频码流中的不兼容码流。

具体的,根据视频码流的码流特征与本机在对应解码类型下的各个兼容码流特征,确定出视频码流中存在不兼容码流时,根据该不兼容码流在兼容性列表中的标记信息判断是否支持对该不兼容码流的修改,从而确定本机对该视频码流的兼容度;若兼容度为部分兼容,则直接根据本机在对应解码类型下的各个兼容码流特征,对视频码流中的不兼容码流进行修改,使其满足本机的解码类型,也就是满足本机上的硬件解码器对相应编码方式的解码要求,同时得到修改后的待解码码流和对应的修改信息,以便后续执行对应的硬件解码以及对解码后的视频帧的显示画面还原操作。

s130,对待解码码流进行硬件解码,得到解码后的视频帧。

可选的,在对视频码流中的不兼容码流进行修改后,得到的待解码码流满足本机上的硬件解码器对采用对应编码方式的码流进行解码时所设定的解码要求,也就是满足本机在对应解码类型下所支持的各个兼容码流特征;此时为了提高解码速率,本实施例中可以直接采用本机上的硬件解码器对该待解码码流进行硬件解码,从而得到解码后的视频帧。此时由于该视频帧是由待解码码流进行硬件解码得到的,此时的该视频帧中可能存在与原始的视频码流对应的进行压缩编码之前的视频帧中不相符的地方,因此后续还需要对该视频帧进行对应的调整,再进行输出以显示原始的视频码流对应的正常画面。

s140,根据修改信息调整解码后的视频帧,得到目标视频帧。

具体的,在得到解码后的视频帧后,为了不影响原始的视频码流所对应的压缩解码前的视频画面的正常显示,本实施例中还可以在对视频码流中的不兼容码流进行修改时保存对应的修改信息,以确定本次修改对于解码后的视频帧中的画面具体产生的影响,并通过对应调整解码后的视频帧,消除本次修改在视频帧中产生的影响,从而得到目标视频帧,该目标视频帧为对原始的视频码流进行对应解码后的视频信息,同时将该目标视频帧进行输出以显示给用户,此时显示的视频画面为正常的视频画面,可以消除硬件解码器在兼容性不高时,所输出的视频画面可能比原始画面略大,或存在绿边/花边等的异常情况。

本实施例提供的技术方案,根据本机的解码类型对应修改视频码流中码流特征与本机的解码类型不匹配的不兼容码流,使修改后的待解码码流符合本机的解码类型,从而进行完整码流的硬件解码,后续再根据修改信息对硬件解码后的视频帧进行调整,实现对应的视频解码,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,在保证低功耗的基础上,提高了视频解码速率,优化了解码性能。

实施例二

图2为本发明实施例二提供的一种视频解码方法的流程图。本实施例是在上述实施例的基础上进行优化。具体的,本实施例中对于根据本机的解码类型修改视频码流中的不兼容码流的具体修改过程进行详细的解释说明。可选的,如图2所示,本实施例中可以包括如下步骤:

s210,获取视频码流,并确定视频码流的码流特征。

s220,根据码流特征与本机的解码类型确定本机对视频码流的兼容度。

s230,兼容度为部分兼容,根据本机的解码类型确定本机对所述视频码流的兼容特征值。

其中,兼容特征值是在对各类型号的设备对于各类经过压缩编码的视频码流进行兼容测试时,所预先设置的各个解码类型下所支持的各码流特征的具体特征大小。

具体的,若根据该视频码流的码流特征与本机在对应解码类型下的各个兼容码流特征,确定出视频码流中存在不兼容码流,且该视频码流与本机属于部分兼容的情况时,为了对该视频码流中的不兼容码流进行修改,首先需要根据本机的解码类型中包括的各个兼容码流特征,针对该视频码流中的各个码流特征,确定出本机在对应解码类型下所支持的各个码流特征的兼容特征值,以便在后续根据该兼容特征值对应修改该视频码流中的不兼容码流。

s240,根据兼容特征值确定视频码流中不兼容码流的码流特征。

具体的,在得到本机对于该视频码流的兼容特征值后,需要根据该兼容特征值判断在本次解码过程中与本机的解码类型不匹配的不兼容码流的具体码流特征,以便后续对该不兼容码流的码流特征进行修改。

s250,将不兼容码流的码流特征修改为与兼容特征值匹配的目标码流特征,得到待解码码流和修改信息。

具体的,在修改视频码流中的不兼容码流时,为了使修改后的视频码流能够满足本机在对应解码类型下的各个兼容码流特征,可以在本机对该视频码流的各个码流特征对应的全部兼容特征值中,查找出与不兼容码流的码流特征对应的兼容特征值,并将该不兼容码流的码流特征修改为与对应的兼容特征值匹配的目标码流特征,并将该目标码流特征更新到该视频码流中,得到可以满足本机上硬件解码器的解码要求的待解码码流,以及将不兼容码流的码流特征修改为与兼容特征值匹配的目标码流特征的修改信息,以便后续采用本机的硬件解码器对待解码码流进行对应的硬件解码,并根据修改信息对解码后的视频帧进行对应调整,以得到最终能够正常显示视频画面的目标视频帧,在不影响视频画面正常显示的情况下,提高了解码速率。

s260,对待解码码流进行硬件解码,得到解码后的视频帧。

s270,根据修改信息调整解码后的视频帧,得到目标视频帧。

本实施例提供的技术方案,通过将视频码流中不兼容码流的码流特征修改为与本机的解码类型中对该视频码流的兼容特征值匹配的目标码流特征,使修改后的待解码码流符合本机的解码类型,从而进行完整码流的硬件解码,后续再根据修改信息对硬件解码后的视频帧进行调整,实现对应的视频解码,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,在保证低功耗的基础上,提高了视频解码速率,优化了解码性能。

实施例三

图3为本发明实施例三提供的视频解码方法的应用场景的场景架构图。本实施例是在上述实施例的基础上进行优化。具体的,如图3所示,本实施例中若兼容性列表预先存储在服务端a中,某一视频码流预先存储在服务端b中,用户需要在某一型号的智能手机上播放该视频码流对应的视频,且该视频码流采用h.264压缩编码标准进行对应的压缩编码。此时该型号的智能手机首先从服务端b上获取该视频经过压缩编码后的视频码流,并在服务端a上查询对应的兼容性列表。同时本实施例中的兼容性列表中保存的该智能手机针对h.264码流的解码类型中,该智能手机的硬件解码器不支持相应的去块滤波操作。

具体的,本实施例中在根据解码类型修改视频码流中的不兼容码流时,可以包括如下步骤:

s310,根据本机的解码类型确定本机对视频码流的去块滤波操作不兼容,则获取视频码流的条带头信息中的去块滤波关闭标识。

具体的,通过对h.264码流的码流特征进行分析,在兼容性列表中可以看出智能手机不支持h.264码流中的去块滤波操作,其他码流特征均可以兼容;此时需要通过分析该h.264码流中的条带头信息,得到该h.264码流的码流特征中的去块滤波关闭标识,并判断该去块滤波关闭标识是否为执行标识,该执行标识表示在采用智能手机上的硬件解码器进行硬件解码时,需要对视频码流执行对应的去块滤波操作。

s320,去块滤波关闭标识为执行标识,则将去块滤波关闭标识修改为停止执行标识,以在硬件解码过程中取消对待解码码流的去块滤波操作。

具体的,在得到对应的去块滤波关闭标识后,首先需要判断该去块滤波关闭标识是否为执行标识,若当前h.264码流中为执行标识,则说明在预先进行h.264编码时,要求在对应解码时需要对该h.264码流执行对应的去块滤波操作,而该智能手机的硬件解码器并不支持在h.264解码时执行去块滤波操作,因此本实施例中在需要对该去块滤波关闭标识进行修改,以满足该智能手机上的硬件解码器的解码类型;此时本实施例中将该h.264码流中的去块滤波关闭标识从执行标识对应修改为停止执行标识,如若执行标识为“0”,停止执行标识为“1”,此时将h.264码流中的去块滤波关闭标识从“0”修改为“1”,以便在后续采用该智能手机上的硬件解码器对该修改后的h.264码流进行硬件解码时,能够根据该去块滤波关闭标识取消执行修改后的h.264码流的去块滤波操作;同时将本次的修改信息进行保存,以便在后续根据该修改信息对硬件解码后的视频帧进行调整,得到最终的目标视频帧。

相应的,本实施例中根据修改信息调整解码后的视频帧,具体可以包括:根据修改信息确定硬件解码过程中未执行去块滤波操作,则对解码后的视频帧执行去块滤波操作。

具体的,在通过该智能手机上的硬件解码器对修改后的h.264码流进行对应的硬件解码,得到解码后的视频帧时,首先对预先保存的修改信息进行分析,本实施例中检测到该h.264码流中的去块滤波关闭标识从执行标识对应修改为停止执行标识,也就是去块滤波关闭标识从“0”修改为“1”,则确定在硬件解码过程中并未执行去块滤波操作,因此在得到硬件解码后的视频帧时,可以对该视频帧执行对应的去块滤波操作,以满足视频在经过h.264编码时设定的解码要求,此时得到对应的目标视频帧,该目标视频帧为能够正常显示的视频画面。

此外,本实施例中地视频解码方法还可以适用于其他的应用场景中,示例性的,根据解码类型修改视频码流中的不兼容码流,还可以包括:1)在部分设备的硬件解码器不支持h.264码流的序列参数集中带有视频帧尺寸(crop)信息,此时可以直接在序列参数集中删除该crop信息;修改后的视频码流与原始的视频码流码流相比,视频帧中显示画面的右侧和下侧可能会多了一些绿边,此时对硬件解码后的视频帧进行调整时,根据删除的该crop信息直接将对应视频帧中右侧和下侧裁剪便可以得到对应的目标视频帧,进行视频画面的正常显示。2)部分设备的硬件解码器对缺失重排序所需缓存帧数的码流不兼容时,由于重排序所需缓存帧数的缺失会大大延迟输出的时间而影响实时性,此时可以通过序列参数集中的其他信息,计算出合理的重排序所需缓存帧数,并将它插入序列参数集的合适位置,此时在后续无需对硬件解码后的视频帧进行调整,该视频帧为目标视频帧,可以直接进行视频画面显示。3)部分设备的硬件解码器可能无法兼容处理双向参考帧的重排序问题,此时仅对应记录双向参考帧的重排序信息,无需更改码流,在得到硬件解码后的视频帧时,需要先缓存一部分硬件解码器的输出画面,并根据之前分析的条带头信息中的图像序列号(pictureordercount,poc)值,对缓存输出的画面进行重新排序后再输出对应的目标视频帧,避免视频画面抖动。

本实施例中的视频解码方法还可以适用于多种其他的应用场景中,在此不一一进行说明。

本实施例提供的技术方案,根据本机的解码类型对应修改视频码流中码流特征与本机的解码类型不匹配的不兼容码流,使修改后的待解码码流符合本机的解码类型,从而进行完整码流的硬件解码,后续再根据修改信息对硬件解码后的视频帧进行调整,实现对应的视频解码,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,在保证低功耗的基础上,提高了视频解码速率,优化了解码性能。

实施例四

图4为本发明实施例四提供的一种视频解码装置的结构示意图,具体的,如图4所示,该装置可以包括:

码流获取模块410,用于获取视频码流;

码流修改模块420,用于根据本机的解码类型修改视频码流中的不兼容码流,得到待解码码流和修改信息,该不兼容码流为码流特征与解码类型不匹配的码流;

硬件解码模块430,用于对待解码码流进行硬件解码,得到解码后的视频帧;

视频帧调整模块440,用于根据修改信息调整解码后的视频帧,得到目标视频帧。

本实施例提供的技术方案,根据本机的解码类型对应修改视频码流中码流特征与本机的解码类型不匹配的不兼容码流,使修改后的待解码码流符合本机的解码类型,从而进行完整码流的硬件解码,后续再根据修改信息对硬件解码后的视频帧进行调整,实现对应的视频解码,解决了现有技术中硬件解码器对视频码流不兼容以及软硬件解码中对硬件设备有较高定制化要求的问题,在保证低功耗的基础上,提高了视频解码速率,优化了解码性能。

进一步的,上述码流修改模块,可以具体用于:

确定视频码流的码流特征;根据码流特征与本机的解码类型确定本机对视频码流的兼容度;兼容度为部分兼容,则根据解码类型修改视频码流中的不兼容码流。

进一步的,上述码流修改模块,还可以具体用于:

根据本机的解码类型确定本机对视频码流的兼容特征值;根据兼容特征值确定视频码流中不兼容码流的码流特征;将不兼容码流的码流特征修改为与兼容特征值匹配的目标码流特征。

进一步的,上述码流修改模块,还可以具体用于:

根据本机的解码类型确定本机对视频码流的去块滤波操作不兼容,则获取视频码流的条带头信息中的去块滤波关闭标识;去块滤波关闭标识为执行标识,则将去块滤波关闭标识修改为停止执行标识,以在硬件解码过程中取消对待解码码流的去块滤波操作;

相应的,上视频帧调整模块,可以具体用于:

根据修改信息确定硬件解码过程中未执行去块滤波操作,则对解码后的视频帧执行去块滤波操作。

进一步的,上述视频码流的码流特征可以通过对视频码流的序列头信息、图像组头信息、图像头信息和条带头信息中的至少一项进行解析确定。

进一步的,上述视频解码装置,还可以包括:

解码类型确定模块,用于在根据本机的解码类型修改视频码流中的不兼容码流之前,根据视频码流的编码类型,在预存的兼容性列表中查找匹配的解码类型。

本实施例提供的视频解码装置可适用于上述任意实施例提供的视频解码方法,具备相应的功能和有益效果。

实施例五

图5为本发明实施例五提供的一种设备的结构示意图,如图5所示,该设备包括处理器50、存储装置51、通信装置52、输入装置53和输出装置54;设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;设备中的处理器50、存储装置51、通信装置52、输入装置53和输出装置54可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储装置51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的视频解码方法对应的程序指令/模块。处理器50通过运行存储在存储装置51中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述视频解码方法。

存储装置51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信装置52可用于实现设备间的网络连接或者移动数据连接。

输入装置53可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。

输出装置54可包括显示屏等显示设备。

本实施例提供的一种设备可用于执行上述任意实施例提供的视频解码方法,具备相应的功能和有益效果。

实施例六

本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的视频解码方法。该方法具体可以包括:

获取视频码流;

根据本机的解码类型修改所述视频码流中的不兼容码流,得到待解码码流和修改信息,所述不兼容码流为码流特征与所述解码类型不匹配的码流;

对所述待解码码流进行硬件解码,得到解码后的视频帧;

根据所述修改信息调整所述解码后的视频帧,得到目标视频帧。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的视频解码方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述视频解码装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1