处理视频数据的方法和装置与流程

文档序号:11844820阅读:199来源:国知局
处理视频数据的方法和装置与流程

本发明实施例涉及图像处理领域,更具体地,涉及处理视频数据的方法和装置。



背景技术:

为了节约网络传输的带宽,通常对于视频图像在发送端通过编码器进行压缩编码后,通过网络传输给接收端,接收端通过解码器进行解压缩后恢复出视频图像。该发送端或者接收端可以为移动电话、便携式电脑、手持式电脑、摄像机、视频监控设备等。因此,视频解码是将码流转换为视频图像的过程。在解码端,解码后的视频数据被存入内存,并被进一步显示处理。

随着媒体技术以及网络技术的发展,以及消费者对视频图像清晰度要求的提高,视频图像的分辨率逐步从当前主流的全高清(Full High Definition,简称为“FHD”)过渡到超高清(Ultra High Definition Television,简称为“UHD”),未来甚至可能发展到超超高清(Ultra-Ultra High Definition Television,简称为“UUHD”)。随着视频分辨率的逐步提高,在做显示处理之前,解码后的视频数据所占用的内存也会逐步增加,如何减小解码后的视频数据对帧存空间(即存储解码后的视频数据帧的内存空间)的占用,成为一项亟待解决的问题。



技术实现要素:

有鉴于此,本发明实施例提供了一种处理视频数据的方法和装置,能够减小解码后的视频数据对帧存空间的占用。

第一方面,提供了一种处理视频数据的方法,包括:接收第一视频数据;对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据;对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据;将该第三视频数据存入存储器;从该存储器读取该第三视频数据并对该第三视频数据进行基于与该第二编码算法对应的第二解码算法的解码以获得第四视频数据;对该第四视频数据进行显示处理得到待显示数据帧;

其中,该第一视频数据是视频图像的码流,该第二视频数据是该视频图像的帧数据,该第三视频数据包括压缩头信息和有效数据,该有效数据包括该视频图像的内容数据。

在本发明实施例中,通过采用第一解码算法对接收到的第一视频数据进行解码,生成第二视频数据,再采用第二编码算法对该第二视频数据进行压缩,生成包括压缩头信息和有效数据的第三视频数据,将该第三视频数据存储至存储器,再读取存储器中的该第三视频数据并采用与该第二编码算法对应的第二解码算法进行解码生成第四视频数据,最后对该第四视频数据进行显示处理,这样,由于对解码后的视频数据进行了再次压缩,能够减小解码后的视频数据对帧存空间的占用,从而有效提高系统性能。

应理解,接收到的第一视频数据是采用了压缩率过高的编码算法进行压缩的,不适合直接存储,在本发明实施例中需要对该第一视频数据解码后进行二次压缩,因此,对于两次不同的压缩所使用的编解码算法是不同的。

在第一方面的第一种可能的实现方式中,该第一解码算法所对应的第一编码算法的图像压缩率高于该第二编码算法。

结合第一方面的上述可能的实现方式,在第一方面的第二种可能的实现方式中,该第一解码算法的运算复杂度或运算耗时高于该第二编码算法所对应的该第二解码算法。

这样,由于获得该第四视频数据的时间较获得该第二视频数据的时间要小,将该第三视频数据存储至存储器中,减小了对内存空间的占用的同时,对第三视频数据解码获得该第四视频数据的时间也不会很长,与直接将该第一视频数据存储至该存储器中相比,能够较快地读取出该第四视频数据,并对其执行后续处理,从而提高用户体验。

结合第一方面的上述可能的实现方式,在第一方面的第三种可能的实现方式中,该第一解码算法包括基于有损压缩的算法。

结合第一方面的上述可能的实现方式,在第一方面的第四种可能的实现方式中,该第二编码算法包括基于无损压缩的算法。

具体地,数据压缩可以分为两种类型:无损压缩和有损压缩。与有损压缩相比较,采用无损压缩可以获得质量更高质量的视频图像,不会使图像细节有任何损失,因此,采用无损压缩可以获得更高的用户体验。可选地,该无损压缩算法可以为下列算法中的至少一种:霍夫曼编码算法、LZW编码算法、游程编码算法和算术编码算法。

结合第一方面的上述可能的实现方式,在第一方面的第五种可能的实现方式中,该显示处理包括图像后处理,该图像后处理包括图像增强、图像缩放或与显示设备对接处理中的任一项。

结合第一方面的上述可能的实现方式,在第一方面的第六种可能的实现方式中,在将该第三视频数据存入存储器之前,该方法还包括:在该存储器中确定帧存空间,该帧存空间的大小为该第二视频数据的大小,且大于该第三视频数据的大小;将该第三视频数据存入存储器,包括:将该第三视频数据存入该存储器的该帧存空间,并释放该帧存空间中未被占用的空间。

结合第一方面的上述可能的实现方式,在第一方面的第七种可能的实现方式中,在对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据之后,该方法还包括:将该第二视频数据存储入该存储器;对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据,包括:从该存储器中获取该第二视频数据并采用该第二编码算法对该第二视频数据进行压缩,以获得该第三视频数据;将该第三视频数据存入存储器,包括:释放压缩掉的冗余数据所占用的内存空间。

具体地,在对上述第二视频数据进行压缩时可以采用在线压缩,也可以采用离线压缩,即将该第二视频数据先存储到存储器中,在从该存储器中获取该第二视频数据进行压缩,本发明实施例对此不作限定。

在对视频数据进行存储时,可以采用连续的物理内存和不连续的物理内存两种存储方式。

在离散压缩且采用连续的物理内存的情况下,需要将压缩后产生的冗余数据释放掉,从而节省内存空间。在释放掉该冗余数据所占用的内存空间后,需要进行物理搬移,将后续所存储的视频数据依次前移到该冗余数据之前所占用的内存空间中。

若采用不连续的物理内存,则可以直接采用内存管理单元(Memory Management Unit,简称为“MMU”)对系统内存进行管理,生成虚拟地址,将不连续的物理地址映射到连续的虚拟地址上,在释放掉该冗余数据所占用的内存空间后,仅需要改变原有物理地址和虚拟地址的映射关系即可。

结合第一方面的上述可能的实现方式,在第一方面的第八种可能的实现方式中,该存储器的内存空间为不连续的物理内存空间,在将该第三视频数据存入存储器之后,该方法还包括:确定第一映射关系,该第一映射关系用于表示该第三视频数据所占内存的物理地址与虚拟地址之间的对应关系。

在采用不连续的物理内存的情况下,由MMU对内存统一进行管理,这样,在后续获取该内存空间的视频数据时,可以根据该第一映射关系进行获取。这种存储方式能够提高系统内存的利用率,有效减少系统碎片的产生。

第二方面,提供了一种处理视频数据的装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的单元。

第三方面,提供了一种处理视频数据的装置,该装置包括:数据输入端,用于接收第一视频数据;处理器,用于对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据,对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据,将该第三视频数据存入存储器,从该存储器读取该第三视频数据,并对该第三视频数据进行基于与该第二编码算法对应的第二解码算法的解码以获得第四视频数据,对该第四视频数据进行显示处理得到待显示数据帧;

其中,该第一视频数据是视频图像的码流,该第二视频数据是该视频图像的帧数据,该第三视频数据包括压缩头信息和有效数据,该有效数据包括该视频图像的内容数据。

在本发明实施例中,通过采用第一解码算法对接收到的第一视频数据进行解码,生成第二视频数据,再采用第二编码算法对该第二视频数据进行压缩,生成包括压缩头信息和有效数据的第三视频数据,将该第三视频数据存储至存储器,再读取存储器中的该第三视频数据并采用与该第二编码算法对应的第二解码算法进行解码生成第四视频数据,最后对该第四视频数据进行显示处理,这样,由于对解码后的视频数据进行了再次压缩,能够减小解码后的视频数据对内存空间的占用,从而有效提高系统性能。

在第三方面的第一种可能的实现方式中,该处理器包括:第一处理器,用于对该第一视频数据进行基于该第一解码算法的解码以获得该第二视频数据;第二处理器,用于对该第二视频数据进行基于该第二编码算法的压缩以获得该第三视频数据,将该第三视频数据存入该存储器;第三处理器,用于从该存储器读取该第三视频数据,并对该第三视频数据进行基于与该第二编码算法对应的该第二解码算法的解码以获得该第四视频数据;第四处理器,用于对该第四视频数据进行该显示处理得到该待显示数据帧。

结合第三方面的上述可能的实现方式,在第三方面的第二种可能的实现方式中,该处理器用于读取软件指令,并在该软件指令的驱动下执行:对该第一视频数据进行基于该第一解码算法的解码以获得该第二视频数据,对该第二视频数据进行基于该第二编码算法的压缩以获得该第三视频数据,将该第三视频数据存入该存储器,从该存储器读取该第三视频数据并对该第三视频数据进行基于与该第二编码算法对应的该第二解码算法的解码以获得该第四视频数据,对该第四视频数据进行该显示处理得到该待显示数据帧。

结合第三方面的上述可能的实现方式,在第三方面的第三种可能的实现方式中,该第一解码算法所对应的第一编码算法的图像压缩率高于该第二编码算法。

结合第三方面的上述可能的实现方式,在第三方面的第四种可能的实现方式中,该第一解码算法的运算复杂度或运算耗时高于该第二编码算法所对应的该第二解码算法。

结合第三方面的上述可能的实现方式,在第三方面的第五种可能的实现方式中,该第一解码算法包括基于有损压缩的算法。

结合第三方面的上述可能的实现方式,在第三方面的第六种可能的实现方式中,该第二编码算法包括基于无损压缩的算法。

结合第三方面的上述可能的实现方式,在第三方面的第七种可能的实现方式中,该显示处理包括图像后处理,该图像后处理包括图像增强、图像缩放或与显示设备对接处理中的任一项。

结合第三方面的上述可能的实现方式,在第三方面的第八种可能的实现方式中,该处理器还用于:在该存储器中确定帧存空间,该帧存空间的大小为该第二视频数据的大小,且大于该第三视频数据的大小;将该第三视频数据存入该存储器的该帧存空间,并释放该帧存空间中未被占用的空间。

第四方面,提供了一种显示视频数据的设备,该设备包括上述第二方面或第二方面的任一种可能实现方式中的装置,还包括上述存储器以及显示设备,其中,该显示设备用于显示该待显示数据帧;

或者该设备包括上述第三方面或第三方面的任一种可能实现方式中的装置,还包括上述存储器以及显示设备,其中,该显示设备用于显示该待显示数据帧。

第五方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。

可选地,该指令被上述装置读取并运行以实现第一方面或第一方面的任意可能的实现方式中的方法。具体地,该指令被上述装置中的数据输入端和处理器分别执行,可参照之前任一方面或任一种实现方式中关于相关特征的介绍。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例应用的系统架构示意图。

图2为本发明实施例提供的处理视频数据的方法的示意性流程图。

图3为本发明实施例提供的MMU内存管理技术的示意图。

图4为本发明实施例提供的以宏块为单位压缩存储的示意图。

图5为本发明实施例提供的另一处理视频数据的方法的示意性流程图。

图6为本发明实施例提供的处理视频数据的装置的示意性框图。

图7为本发明实施例提供的另一处理视频数据的装置的示意性框图。

图8为本发明实施例提供的另一处理视频数据的装置的示意性框图。

图9为本发明实施例提供的显示视频数据的设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

图1示出了本发明实施例应用的系统架构100。该系统架构100可以包括存储器110、解码器120、显示处理单元130和显示设备140。具体地,接收端在接收到发送端发送的第一视频数据后,会将该第一视频数据存储到存储器110中;解码器120从该存储器110中获取该第一视频数据,并对该第一视频数据进行解码,将解码后的第二视频数据存储至该存储器110中;显示处理单元130可以从该存储器110中获取解码后的第二视频数据,对该解码后的第二视频数据进行显示处理,并发送给显示设备140,通过该显示设备140将视频图像显示出来。

应理解,上述第一视频数据和第二视频数据可以一起存储至存储器110中,也可以分开存储至两个不同的存储器中,本发明实施例对此不作限定。

在一种优选的实现方式中,如图1所示,上述存储器110可以分为码流内存111和帧存空间112两个存储器。其中,该码流内存111用于存储接收端接收的第一视频数据,并为该解码器120提供该第一视频数据进行解码;该帧存空间用于存储该解码器120解码后的第二视频数据,并为显示处理单元130提供该第二视频数据进行显示处理。

这里的显示处理包括图像后处理,具体可以为图像增强、图像缩放或与显示设备对接处理等等,本发明实施例对此不作限定。

在上述系统架构中,该码流内存110用于存储的是基本码流(Element Stream,简称为“ES”),对于常见的视频编码协议,基本码流的压缩效率都很高,所以该部分内存占用不会很大。帧存空间130用于存储解码参考帧和显示帧,即该帧存空间130所存储的为解码后的视频数据,一般情况下,该解码后的视频数据的格式为YUV数据,该YUV数据所占用的内存较大。以分辨率为4K、采样方式为YUV420的图像为例,一帧YUV数据所占内存的大小为:4096×2160×1.5/1024=12.6MB,再加上解码所需要的参考信息,一帧4K图像的大小在15MB左右。此外,假设系统架构100需要支持6个参考帧的视频,则该系统架构100中该帧存空间130的大小约为(6+3)×15=135MB左右,如果考虑后续支持分辨率为UUHD的视频,则该内存会几倍增加。因此,本实施例提供了一种降低内存消耗的方案。

图2示出了本发明实施例提供的处理视频数据的方法200,该方法200可以应用于图1所示的系统架构100,但本发明实施例不限于此。

S210,接收第一视频数据,该第一视频数据为视频图像的码流;

S220,对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据,该第二视频数据为该视频图像的帧数据;

S230,对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据,该第三视频数据包括压缩头信息和有效数据,该有效数据包括该视频图像的内容数据;

具体地,对该第二视频数据进行压缩后可以获得压缩头信息和有效数据,即为上述第三视频数据,而压缩掉的冗余数据可以直接被省略掉,无需存入存储器中。以最简单的情况为例,对于100个0的视频数据而言,若一个0占用1个比特位,那么进行压缩前会存在100个0占用100个比特位,而压缩后的视频数据为1个100和1个0,100即为压缩头信息,0为该视频图像的内容数据,这里,假设100仅占用3个比特位,那么在此基础之上,再加0所占用的1个比特位,压缩后的视频数据总共只需占用4个比特位。

S240,将该第三视频数据存储入存储器;

S250,从该存储器读取该第三视频数据并对该第三视频数据进行基于与该第二编码算法对应的第二解码算法的解码以获得第四视频数据;第四视频数据是解码后恢复出的该视频图像的帧数据;

S260,对该第四视频数据进行显示处理得到待显示数据帧。

应理解,该显示处理可以是图像后处理,包括但不限于图像增强、图像缩放、与后端显示器接口的对接处理(比如格式转换)等等。

具体地,发送端会将视频图像通过编码器进行压缩编码后,通过网络传输给接收端,接收端通过解码器进行解压缩后恢复出视频图像。该发送端或者接收端可以为移动电话,便携式电脑,手持式电脑,摄像机,视频监控设备等。因此,本发明实施例涉及的就是接收端在接收到经过编码后的视频数据后,对该编码后的视频数据进行解码并存储的过程。在获取到第一视频数据后,接收端可以先对该第一视频数据进行解码,获得第二视频数据,该第二视频数据即为解码后的视频数据。然后,接收端可以对该第二视频数据进行压缩,生成包括压缩头信息和有效数据的第三视频数据。将该第三视频数据存入存储器中,再读取存储器中的该第三视频数据并采用与该第二编码算法对应的第二解码算法进行解码生成第四视频数据,最后对该第四视频数据进行显示处理获得待显示数据帧。

因此,本发明实施例的处理视频数据的方法,通过先对获取到的视频数据解码,再对解码后的视频数据进行压缩,将压缩后生成的压缩头信息和有效数据存储到存储器中,这样能够减小解码后的视频数据对帧存空间的内存占用,从而有效提高系统性能。

应理解,本发明实施例可以由解码器来执行,解码器广泛的应用于各种电子设备中,例如,移动电话、便携式电脑、MP3/MP4、手持式电脑、摄像机、视频监控设备等等。此外,解码器可以通过数字处理电路实现,例如数字信号处理(Digital Signal Processing,简称为“DSP”)芯片实现,也可以通过处理器(例如中央处理器(Central Processing Unit,简称为“CPU”))调用软件代码实现。本发明实施例还可以应用于机顶盒、智能电视等需要集成媒体解码播放功能的芯片系统中,但本发明实施例对此不作限定。

应理解,接收到的第一视频数据是采用了压缩率过高的编码算法进行压缩的,不适合直接存储,在本发明实施例中需要对该第一视频数据解码后进行二次压缩,因此,对于两次不同的压缩所使用的编解码算法可以是不同的。

作为一个可选的实施例,该第一解码算法所对应的第一编码算法的图像压缩率高于该第二编码算法。

作为一个可选的实施例,该第一解码算法的运算复杂度或运算耗时高于该第二编码算法所对应的该第二解码算法。

这样,由于获得该第四视频数据的时间较获得该第二视频数据的时间要小,将该第三视频数据存储至存储器中,减小了对内存空间的占用的同时,对第三视频数据解码获得该第四视频数据的时间也不会很长,与直接将该第一视频数据存储至该存储器中相比,能够较快地读取出该第四视频数据,并对其执行后续处理,从而提高用户体验。

作为一个可选的实施例,在对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据之后,该方法还包括:将该第二视频数据存储入该存储器;对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据,包括:从该存储器中获取该第二视频数据并采用该第二编码算法对该第二视频数据进行压缩,以获得该第三视频数据;将该第三视频数据存入存储器,包括:释放压缩掉的冗余数据所占用的内存空间。

在上述用于处理视频数据的方法中,对该第二视频数据进行压缩可以是在线压缩,无需将该第二视频数据存入帧存空间中,也可以是离线压缩,将该第二视频数据先存储在帧存空间中,再从该帧存空间中获取该第二视频数据进行压缩。这里,在线压缩也可以理解为一边解码一边压缩,即在解码出一个宏块时就对该宏块进行压缩,在压缩的同时解码下一个宏块,并行处理从而提高压缩速度,但对于采用在线压缩还是离线压缩,本发明实施例对此不作限定。

具体地,在对视频数据进行存储时,可以采用连续的物理内存和不连续的物理内存两种存储方式。在离散压缩且采用连续的物理内存的情况下,需要将压缩后产生的冗余数据释放掉,从而节省内存空间。在释放掉该冗余数据所占用的帧存空间后,需要进行物理搬移,将后续所存储的视频数据依次前移到该冗余数据之前所占用的帧存空间中,实现连续存储;若采用不连续的物理内存,则可以直接采用内存管理单元(Memory Management Unit,简称为“MMU”)对系统内存进行管理,生成虚拟地址,将不连续的物理地址映射到连续的虚拟地址上,在释放掉冗余数据所占用的帧存空间后,仅需要改变原有物理地址和虚拟地址的映射关系即可。

如图3所示,视频数据实际存储在离散物理内存中,该离散物理内存可以为双倍速率同步动态随机存储器(Double Data Rate,简称为“DDR”)。该DDR中的离散物理内存页和MMU所管理的虚拟内存页之间存在一定的映射关系。当对视频数据进行解码时,可以通过MMU把虚拟地址映射为物理地址,再从该物理地址对应的物理空间中获取视频数据;当对视频数据进行显示处理时,也可以通过MMU采用相同方法获取需要显示的视频数据。因此,在对解码后的视频数据进行存储时,解码后的视频数据实际存储在不连续的物理内存中,需要更新虚拟地址和物理地址的映射关系。

作为一个可选实施例,该存储器的内存空间为不连续的物理内存空间,在将该第三视频数据存储入存储器之后,该方法还包括:

确定第一映射关系,该第一映射关系用于表示该第三视频数据所占内存的物理地址与虚拟地址之间的对应关系。

具体地,该帧存空间可以是不连续的物理内存空间,在这种情况下,需要采用MMU内存管理技术对系统内存进行管理。MMU是CPU中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。在这种内存管理方式下,系统可以通过MMU将不连续的物理地址映射到连续的虚拟地址上,从而实现对内存的访问。

因此,在本发明实施例中,需要在将该压缩头信息和有效数据存入存储器之后,确定用于表示物理地址和虚拟地址之间的对应关系的第一映射关系。这样,在后续获取该存储器的视频数据时,可以根据该第一映射关系进行获取。这种存储方式能够提高系统内存的利用率,有效减少系统碎片的产生。

作为一个可选实施例,对该第二视频数据进行压缩,获得第三视频数据,包括:

将该第二视频数据划分为N个第一宏块;

以该第一宏块为单位对该第二视频数据进行压缩,获得该第三视频数据,其中,该第三视频数据包括N个第二宏块,且该N个第二宏块中的第i个第二宏块包括该N个第一宏块中的第i个第一宏块经过压缩后生成的压缩头信息和有效数据;

其中,N和i均为大于0的整数,且i小于或等于N。

应理解,在具体实现过程中,视频的编解码都是以宏块为单位进行的。一个编码图像通常划分成若干宏块组成,一个宏块由一个亮度像素块和附加的两个色度像素块组成。具体地,在本发明实施例中,该第二视频数据包括N个第一宏块,在对该第二视频数据进行压缩的时候,可以以该第一宏块为单位进行压缩,生成与该N个第一宏块一一对应的N个第二宏块,然后,将该N个第二宏块存储到帧存空间中。

图4示出了以宏块为单位进行压缩存储的示意图。如图4所示,经压缩前视频数据包括N个第一宏块,压缩后为N个第二宏块,该N个第二宏块中的每个第二宏块包括压缩头信息和有效数据,该N个第二宏块被拼接起来存储至帧存空间,明显地,该N个第二宏块与N个第一宏块相比数据量较小,将该N个第二宏块存入帧存空间所占用的帧存空间也较压缩前要小。

作为一个可选的实施例,在将该第三视频数据存入存储器之前,该方法还包括:

在该存储器中确定帧存空间,该帧存空间的大小为该第二视频数据的大小,且大于该第三视频数据的大小;

将该第三视频数据存入存储器,包括:

将该第三视频数据存入该存储器的该帧存空间,并释放该帧存空间中未被占用的空间。

具体地,在将该第三视频数据存入存储器之前,接收端会根据该第二视频数据的实际宽高分配对应大小的帧存空间。在对该第二视频数据进行压缩得到第三视频数据后,只包括了压缩头信息和有效数据,这样,提前分配好的帧存空间必然会有剩余,这就需要将提前确定的帧存空间中未被占用的空间释放掉,以达到节省内存的目的。

作为一个可选的实施例,该第一解码算法包括基于有损压缩的算法。

作为一个可选的实施例,该第二编码算法包括基于无损压缩的算法。

具体地,数据压缩可以分为两种类型:无损压缩和有损压缩。无损压缩是指压缩后的数据在进行解压缩后与压缩前的数据完全一致,没有任何信息损失。无损压缩的方法是构筑在香农的信息理论基础之上的,根据信号的统计特性进行编码。有损压缩是指压缩后的数据重构后,与原始数据有所不同,但不会影响人们对原始资料所要表达的信息的理解。

应理解,在对第二视频数据进行压缩的时候,可以采用有损压缩的方式,也可以采用无损压缩的方式,本发明实施例对此不作限定。与有损压缩相比较,采用无损压缩可以获得质量更高质量的视频图像,不会使图像细节有任何损失,因此,应将无损压缩理解为本发明实施例中的一种优选压缩方式,而不是唯一的压缩方式。

可选地,上述无损压缩算法可以为下列算法中的至少一种:霍夫曼编码算法、LZW(Lempel-Ziv-Welch)编码算法、游程编码算法和算术编码算法,但本发明实施例不限于此。

作为一个可选实施例,在对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据之前,该方法还包括:

从该帧存空间中获取第五视频数据;

对该第五视频数据进行基于该第二解码算法的解码以获得第六视频数据;

对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据,包括:

根据该第六视频数据,采用帧间预测的方式对该第一视频数据进行解码,获得该第二视频数据。

具体地,在解码的过程中,可以采用帧间预测和帧内预测两种预测方式,帧间预测基于当前图像块的时间邻近已编码信息来获取预测信号,帧内预测基于当前图像块的空间邻近已编码信息来获取预测信号。当采用帧间预测时,需要从帧存空间中获取已解码的视频数据,即本发明实施例中的第五视频数据,由于第五视频数据是经压缩后的视频数据,因此需要对该第五视频数据进行解压,将该第五视频数据解压为第六视频数据,然后,在根据该第六视频数据,采用帧间预测的方式对该第一视频数据进行解码,获得该第二视频数据。

图5示出了本发明实施例提供的另一处理视频数据的方法300。该方法300可以应用于图1所示的系统架构100,但本发明实施例不限于此。

S301,接收码流数据,即上述的第一视频数据;

S302,根据该码流数据进行残差运算,获得残差;

S303,确定采用帧内预测的解码方式,获取预测块;

S304,将该预测块与该残差相加,获得重构的视频数据;

S305,将该重构的视频数据进行滤波,获得第二视频数据;

S306,将该第二视频数据进行无损压缩,获得第三视频数据,该第三视频数据包括压缩头信息和有效数据;

S307,将该第三视频数据中的有效数据和压缩头信息拼接起来;

S308,将拼接好的压缩头信息和有效数据存入帧存空间;

S309,从该帧存空间中读取该第三视频数据,采用与上述无损压缩对应的解压缩算法对该第三视频数据进行解压缩以获得第四视频数据,并对该第四视频数据进行显示处理获得待显示数据帧。

应理解,该显示处理可以是图像后处理,包括但不限于图像增强、图像缩放、与后端显示器接口的对接处理(比如格式转换)等等。

上述即为采用帧内预测解码的过程。

可选地,在采用帧间预测时,可以先执行S310,从该帧存空间中获取第四视频数据;

S311,采用与上述无损压缩对应的解压缩算法将该第四视频数据解压为第五视频数据;

S312,对该第五视频数据进行运动补偿,即采用帧间预测的方式获得预测块;

S301,接收码流数据,即上述的第一视频数据;

S302,根据该码流数据进行残差运算,获得残差;

S304,将该预测块与该残差相加,获得重构的视频数据;

后续可以继续执行S305~S308,此处不再赘述。

应理解,在接收到的码流数据中可以包括指示信息,该指示信息用于指示采用何种方式进行预测解码。对视频序列的第一帧、场景切换帧以及随机读取帧只能采用帧内预测的解码方式,其余帧可以采用帧内和帧间混合预测解码的方式,本发明实施例对此不作限定。

上述视频解码压缩过程可以应用在H.264或H.265视频编解码标准中,具体地,在H.264视频编解码标准中,增加了单个图像的帧内预测编码,充分利用被预测块左边和上边已解码重构的邻近宏块象素对当前块进行预测。为了降低由H.264高压缩比产生的明显的块失真效应,采用了去块效应滤波技术。去块效应滤波器不但能够有效的改善主观视频质量,而且可以在低码率条件下提高图像的信噪比。

应理解,本发明实施例还可以应用在其他视频编解码标准中,此处仅以H.264为例进行说明,但本发明实施例不限于此。

本发明实施例的处理视频数据的方法,通过先对获取到的视频数据解码,再对解码后的视频数据进行压缩,将压缩后生成的压缩头信息和有效数据存储到帧存空间中,再对帧存空间中的视频数据进行解压和显示处理获得待显示数据帧,这样能够减小解码后的视频数据对帧存空间的内存占用,从而有效提高系统性能。

上文中结合图1至图5,详细描述了根据本发明实施例的处理视频数据的方法,下面将结合图6至图8,详细描述根据本发明实施例的处理视频数据的装置。

图6示出了本发明实施例的处理视频数据的装置400,该装置400包括:

接收单元410,用于接收第一视频数据;

第一解码单元420,用于对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据;

压缩单元430,用于对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据;

存储单元440,用于将该第三视频数据存储入存储器;

第二解码单元450,用于从该存储器读取该第三视频数据并对该第三视频数据进行基于与该第二编码算法对应的第二解码算法的解码以获得第四视频数据;

处理单元460,用于对该第四视频数据进行显示处理得到待显示数据帧;

该第一视频数据是视频图像的码流,该第二视频数据是该视频图像的帧数据,该第三视频数据包括压缩头信息和有效数据,该有效数据包括该视频图像的内容数据,第四视频数据是解码后恢复出的该视频图像的帧数据。

应理解,这里的装置400以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(Application Specific Integrated Circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置400可以具体为解码器或包括解码器的设备,装置400可以用于执行上述方法实施例的各个流程和/或步骤,为避免重复,在此不再赘述。

图7示出了本发明实施例提供的处理视频数据的装置500。该装置500包括:数据输入端510、处理器520和总线系统530。其中,数据输入端510和处理器520通过总线系统530相连。

具体地,该数据输入端510,用于接收第一视频数据;

该处理器520,用于对该第一视频数据进行基于第一解码算法的解码以获得第二视频数据,对该第二视频数据进行基于第二编码算法的压缩以获得第三视频数据,将该第三视频数据存入存储器,从该存储器读取该第三视频数据,并对该第三视频数据进行基于与该第二编码算法对应的第二解码算法的解码以获得第四视频数据,对该第四视频数据进行显示处理得到待显示数据帧;

该第一视频数据是视频图像的码流,该第二视频数据是该视频图像的帧数据,该第三视频数据包括压缩头信息和有效数据,该有效数据包括该视频图像的内容数据,第四视频数据是解码后恢复出的该视频图像的帧数据。

可选地,如图8所示,该处理器520包括:

第一处理器521,用于对该第一视频数据进行基于该第一解码算法的解码以获得该第二视频数据;

第二处理器522,用于对该第二视频数据进行基于该第二编码算法的压缩以获得该第三视频数据,将该第三视频数据存入该存储器;

第三处理器523,用于从该存储器读取该第三视频数据,并对该第三视频数据进行基于与该第二编码算法对应的该第二解码算法的解码以获得该第四视频数据;

第四处理器524,用于对该第四视频数据进行该显示处理得到该待显示数据帧。

可选地,该处理器520用于读取软件指令,并在该软件指令的驱动下执行:对该第一视频数据进行基于该第一解码算法的解码以获得该第二视频数据,对该第二视频数据进行基于该第二编码算法的压缩以获得该第三视频数据,将该第三视频数据存入该存储器,从该存储器读取该第三视频数据并对该第三视频数据进行基于与该第二编码算法对应的该第二解码算法的解码以获得该第四视频数据,对该第四视频数据进行该显示处理得到该待显示数据帧。

可选地,该第一解码算法所对应的第一编码算法的图像压缩率高于该第二编码算法。

可选地,该第一解码算法的运算复杂度或运算耗时高于该第二编码算法所对应的该第二解码算法。

可选地,该第一解码算法包括基于有损压缩的算法。

可选地,该第二编码算法包括基于无损压缩的算法。

可选地,该显示处理包括图像后处理,该图像后处理包括图像增强、图像缩放或与显示设备对接处理中的任一项。

可选地,该处理器520还用于:在该存储器中确定帧存空间,该帧存空间的大小为该第二视频数据的大小,且大于该第三视频数据的大小;将该第三视频数据存入该存储器的该帧存空间,并释放该帧存空间中未被占用的空间。

应理解,装置500可以具体为解码器或包括解码器的设备,并且可以用于执行上述方法实施例中的各个步骤和/或流程。可选地,该处理器520可以用于执行存储器中存储的指令,并且当该处理器执行存储器中存储的指令时,该处理器用于执行上述方法实施例的各个步骤和/或流程。

应理解,在本发明实施例中,该处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

图9示出了本发明实施例提供的显示视频数据的设备600,该设备600包括:上述装置500、存储器610和显示设备700,该显示设备700用于显示上述待显示数据帧。应理解,该设备600可以用于执行上述方法实施例中的各个步骤和/或流程,为避免重复,此处不再赘述。

该存储器610可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

本发明实施例的显示视频数据的设备,通过先对获取到的视频数据解码,再对解码后的视频数据进行压缩,将压缩后生成的压缩头信息和有效数据存储到存储器中,再对存储器中的视频数据进行解压和显示处理,最终通过显示设备显示出来,这样能够减小解码后的视频数据对存储器的内存占用,从而有效提高系统性能。

在一个可选地例子中,该系统可以具体为同时具有解码和显示功能的设备,例如,移动电话,便携式电脑,MP3/MP4,手持式电脑,摄像机,视频监控设备等等,为避免重复,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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