视频压缩方法和装置与流程

文档序号:12628330阅读:283来源:国知局
视频压缩方法和装置与流程

本申请涉及图像处理领域,具体而言,涉及一种视频压缩方法和装置。



背景技术:

基于屏幕显示的视频图像是一类复杂的视频序列,与现有技术传统的视频图像不同的是它的每一帧图像都是复合图像,屏幕显示的视频图像主要用于在不同的计算机屏幕之间共享画面。

为了使用的方便,这些共享设备之间常常需要采用无线网络进行数据传输,由于无线网络的带宽较低,想要实现在不同的共享设备之间传输屏幕视频,必须对其进行大倍数的压缩才可实现设备之间的实时共享。

分析可知,屏幕显示的视频图像的每个帧都是一个复合计算机图像,采用普通的自然图像压缩算法无法满足传输带宽的需求,而且采用通用的颜色索引模板无法最大限度地利用屏幕视频图像的特性,达不到较好的压缩性能,对带宽较小的环境也无法实现屏幕的实时共享。

由此可知,大倍数的压缩会严重影响视频的主观显示质量,即大压缩倍数且主观恢复较好的压缩技术是屏幕视频图像压缩的关键。

针对现有技术中采用的视频压缩算法无法满足传输带宽需求的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种视频压缩方法和装置,以至少解决现有技术中采用的视频压缩算法无法满足传输带宽需求的问题。

根据本申请实施例的一个方面,提供了一种视频压缩方法,该方法包括:获取视频中的至少一帧;获取帧的颜色直方图,并统计颜色直方图的颜色分量的数量;根据颜色分量的数量获取帧的颜色索引表和/或颜色索引图,其中,颜色索引表包括帧的不同数量的颜色分量所对应的颜色值,颜色索引图包括帧的每个像素位置的颜色值;对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流。

进一步的,对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流,包括:在对颜色索引表中当前位置的颜色分量值进行压缩时,采用前一个位置的颜色分量值作为预测值,与当前位置的颜色分量值相减的差值进行无损压缩;对颜色索引图采用图像压缩算法直接进行压缩编码。

进一步的,统计颜色直方图的颜色分量的数量包括:将颜色直方图按照概率从大到小进行排列;统计概率处于预定概率范围内的颜色分量的个数N。

进一步的,根据颜色分量的数量获取帧的颜色索引表,包括:读取N个颜色分量的颜色值;将每个颜色分量的颜色值分别与标准的颜色索引表中的颜色值进行比对;在标准的颜色索引表中颜色值与对应的颜色分量的差值小于等于第一阈值的情况下,得到颜色分量对应的颜色值;根据每个颜色值及对应的编号,获取帧的颜色索引表。

进一步的,根据颜色分量的数量获取帧的颜色索引图,包括:获取帧的颜色索引表,以及帧的每个像素位置的颜色分量;将每个像素位置的颜色分量与颜色索引表中的颜色值进行比对;在颜色索引表中的颜色值与对应像素位置的颜色分量的差值小于等于第二阈值的情况下,得到每个像素位置的颜色值;根据每个像素位置的颜色值得到帧的颜色索引图。

根据本申请实施例的另一方面,还提供了一种视频压缩装置,该装置包括:获取模块,用于获取视频中的至少一帧,以及帧的颜色直方图,并统计颜色直方图的颜色分量的数量;索引图获取模块,用于根据颜色分量的数量获取帧的颜色索引表和/或颜色索引图,其中,颜色索引表包括帧的不同数量的颜色分量所对应的颜色值,颜色索引图包括帧的每个像素位置的颜色值;压缩模块,用于对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流。

进一步的,上述压缩模块可以包括:第一子压缩模块,用于在对颜色索引表中当前位置的颜色分量值进行压缩时,采用前一个位置的颜色分量值作为预测值,与当前位置的颜色分量值相减的差值进行无损压缩;第二子压缩模块,用于对颜色索引图采用图像压缩算法直接进行压缩编码。

进一步的,上述获取模块可以包括:子排序模块,用于将颜色直方图按照概率从大到小进行排列;子统计模块,用于统计概率处于预定概率范围内的颜色分量的个数N。

进一步的,上述索引图获取模块可以包括:子读取模块,用于读取N个颜色分量的颜色值;第一子比对模块,用于将每个颜色分量的颜色值分别与标准的颜色索引表中的颜色值进行比对;第一子生成模块,用于在标准的颜色索引表中颜色值与对应的颜色分量的差值小于等于第一阈值的情况下,得到颜色分量对应的颜色值;第一子获取模块,用于根据每个颜色值及对应的编号,获取帧的颜色索引表。

进一步的,上述索引图获取模块可以包括:第二子获取模块,用于获取帧的颜色索引表,以及帧的每个像素位置的颜色分量;第二子比对模块,用于将每个像素位置的颜色分量与颜色索引表中的颜色值进行比对;第二子生成模块,用于在颜色索引表中的颜色值与对应像素位置的颜色分量的差值小于等于第二阈值的情况下,得到每个像素位置的颜色值;第三子获取模块,用于根据每个像素位置的颜色值得到帧的颜色索引图。

在本申请实施例中,先获取视频图像中的一帧图像,并得到该帧的颜色直方图,然后统计当前帧的颜色直方图的颜色分量的数量,最后根据颜色直方图的特性生成当前帧的颜色索引表,且由颜色索引表得到当前帧的颜色索引图,此处需要说明的是,由于本发明采用了基于颜色索引的屏幕视频视频压缩技术,由此,本申请实施例解决了现有技术中采用的视频压缩算法无法满足传输带宽需求的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本发明实施例的屏幕视频编解码器的架构图;

图2是根据本申请实施例的一种视频压缩方法的流程图;

图3是根据本发明实施例的基于颜色索引的屏幕视频图像压缩工作流程图;

图4是根据本发明实施例的颜色分量个数N为7的视图的颜色示意图;

图5是基于图4所示实施例的采用通用的图像压缩方法进行压缩编码的结果示意图;以及

图6是根据本申请实施例的一种视频压缩装置的示意图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例,提供了一种图像压缩方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的屏幕视频编解码器的架构图。

本发明提供了一种可以应用在便携设备和显示器设备构成的系统中的图像压缩解压缩的方法,基于图1所示的实施例可知,在便携设备中对视频图像进行压缩,即编码后得到的图像发送给显示器设备,显示器设备对得到的图像进行逆处理,即解码处理得到原图像进行播放。

一种可选实施例中,上述便携设备可以至少包括如下处理模块:颜色直方图统计模块、颜色索引表生成模块、颜色索引图生成模块、颜色索引表编码模块、颜色索引图编码模块和码流组织模块;显示器设备可以至少包括:码流拆分模块、颜色索引表解码模块、颜色索引图解码模块和帧显示模块。

其中,上述颜色直方图统计模块至少实现如下功能:在获取屏幕视频中的一帧的颜色直方图之后,可以在将颜色直方图按照概率从大到小进行排列之后,统计占据前一定百分比(例如95%)颜色分量的个数N。

颜色索引表生成模块至少实现如下功能:读取N个颜色分量的颜色值,并将每个颜色分量的颜色值分别与标准的颜色索引表中的颜色值进行比对,其中,在标准的颜色索引表中颜色值与对应的颜色分量的差值小于等于第一阈值的情况下,得到颜色分量对应的颜色值,最终根据每个颜色值及对应的编号,获取帧的颜色索引表。

颜色索引图生成模块至少实现如下功能:获取帧的颜色索引表,以及帧的每个像素位置的颜色分量,可以将每个像素位置的颜色分量与颜色索引表中的颜色值进行比对,其中,在颜色索引表中的颜色值与对应像素位置的颜色分量的差值小于等于第二阈值的情况下,得到每个像素位置的颜色值,最终根据每个像素位置的颜色值得到帧的颜色索引图。

颜色索引表编码模块至少实现如下功能:在对颜色索引表中当前位置的颜色分量值进行编码时,可以采用前一个位置的颜色分量值作为预测值,与当前位置的颜色分量值相减的差值进行无损压缩式的编码。

颜色索引图编码模块至少实现如下功能:可以对颜色索引图采用图像压缩算法直接进行压缩编码。

码流组织模块至少实现如下功能:按照不同的质量等级将码流传输到接收端。

其中,上述显示器设备中的码流拆分模块、颜色索引表解码模块、颜色索引图解码模块和帧显示模块所执行的功能分别为上述颜色直方图统计模块、颜色索引表生成模块、颜色索引图生成模块、颜色索引表编码模块、颜色索引图编码模块和码流组织模块的逆过程,目的在于实现显示器设备将接收到的码流进行解码,得到可以显示的原始视频图像。

由此可知,在上述图1所示的运行环境下,本申请实施例可以提供一种视频压缩方法。图2是根据本申请实施例的一种视频压缩方法的流程图,如图2所示,该方法可以包括如下步骤:

步骤S202,获取视频中的至少一帧。

步骤S204,获取帧的颜色直方图,并统计颜色直方图的颜色分量的数量。

步骤S206,根据颜色分量的数量获取帧的颜色索引表和/或颜色索引图,其中,颜色索引表包括帧的不同颜色分量值所对应的颜色值,颜色索引图包括帧的每个像素位置的颜色值。

步骤S208,对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流。

本申请上述步骤所提供的实施例提供了一种视频压缩方案,先获取视频图像中的一帧图像,并得到该帧图像的颜色直方图,然后统计当前帧的颜色直方图,例如找到每种颜色分量所占据的百分比,最后根据颜色直方图的特性生成当前帧的颜色索引表,且由颜色索引表得到当前帧的颜色索引图,进一步的,对颜色索引表和颜色索引图分别进行压缩编码最终得到屏幕视频的压缩码流。此处需要说明的是,由于本发明采用了是针对屏幕中显示的视频进行压缩,由于需要大压缩比又需要主观显示质量好的特性,因此,采用本发明上述方案提供的一种基于颜色索引的屏幕视频视频压缩技术,可以保证整个屏幕视频视频压缩系统达到较好的压缩性能,进而可以实现压缩文件的满足传输带宽需求。

一种优选实施例中,上述对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流的方案可以包括如下可选实施方式:

在对颜色索引表中当前位置的颜色分量值进行压缩时,采用前一个位置的颜色分量值作为预测值,与当前位置的颜色分量值相减的差值进行无损压缩。

对颜色索引图采用图像压缩算法直接进行压缩编码。

一种可选实施例中,统计颜色直方图的颜色分量的数量可以包括如下实施步骤:

首先,将颜色直方图按照概率从大到小进行排列。

然后,统计概率处于预定概率范围内的颜色分量的个数N。可以的,可以统计颜色直方图的概率占据前95%的颜色分量的个数N。

一种可选实施例中,上述根据颜色直方图的颜色分量的数量获取帧的颜色索引表的方案可以包括如下实施例步骤:读取N个颜色分量的颜色值;将每个颜色分量的颜色值分别与标准的颜色索引表中的颜色值进行比对;在标准的颜色索引表中颜色值与对应的颜色分量的差值小于等于第一阈值的情况下,得到颜色分量对应的颜色值;根据每个颜色值及对应的编号,获取帧的颜色索引表。

具体的,对于屏幕中显示的视频中的每一帧图像,例如如果占前95%的颜色直方图的颜色分量个数N为7个的情况下,根据预先设定的规则,当(N=7)<8,则可以生成8分量的颜色索引表。取直方图中前8个概率较大颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的8个颜色值生成当前帧的8值索引表。

优选地,上述根据颜色分量的数量获取帧的颜色索引图的方案可以包括如下实施步骤:获取帧的颜色索引表,以及帧的每个像素位置的颜色分量;将每个像素位置的颜色分量与颜色索引表中的颜色值进行比对;在颜色索引表中的颜色值与对应像素位置的颜色分量的差值小于等于第二阈值的情况下,得到每个像素位置的颜色值;根据每个像素位置的颜色值得到帧的颜色索引图。

具体的,上述优选实施例可以实现将当前帧的每个像素位置颜色分量与当前帧的颜色索引表进行比对,取最相近的颜色所对应的颜色值作为当前像素点的颜色值。对索引图可采用通用的图像压缩方法进行压缩编码。

由此可知,视频的一帧图像中,可以通过统计当前帧的颜色直方图来找到每种颜色分量所占据的百分比,然后根据颜色直方图的特性生成当前帧的索引表,且由索引表得到当前帧的索引图,对索引表和索引图分别进行压缩编码最终得到屏幕视频的压缩码流,进而实现一种可以满足网络需求的压缩方法。

图3是根据本发明实施例的基于颜色索引的屏幕视频图像压缩工作流程图;图4是根据本发明实施例的颜色分量个数N为7的视图的颜色示意图;图5是基于图4所示实施例的采用通用的图像压缩方法进行压缩编码的结果示意图。

下面结合附图3至5所提供的具体实施方式对本发明进行详细说明。

步骤S301,获取屏幕视频中的一帧,并计算其颜色直方图。如图3所示,可以获取桌面上正在播放的视频中的一帧图像,如大小为32×32。

步骤S303,将颜色直方图按照概率从大到小进行排列。

步骤S305,统计占据前95%的概率中颜色分量的个数N。

具体的,如图3所示,统计得到的颜色直方图的颜色分量的个数,占前95%的颜色分量个数N可以为7。

步骤S307,当N<=8,生成8分量的颜色索引表。取直方图中前8个概率较大颜色值,与获取到的标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的8个颜色值生成当前帧8值索引表。

具体的,如图3所示,当(N=7)<8的示例中,可以生成8分量的颜色索引表,即可以取颜色直方图中前8个概率较大颜色分量的颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的8个颜色值生成当前帧8值索引表。

步骤S309,当8<N<=16,生成16分量的颜色索引表。取直方图中前16个概率较大颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的16个颜色值生成当前帧16值索引表。

步骤S311,当16<N<=32,生成32分量的颜色索引表。取直方图中前32个概率较大颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的32个颜色值生成当前帧32值索引表。

步骤S313,当32<N<=64,生成64分量的颜色索引表。取直方图中前64个概率较大颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的64个颜色值生成当前帧64值索引表。

步骤S315,当64<N<=128,生成128分量的颜色索引表。取直方图中前128个概率较大颜色值,与标准的256色颜色索引表中的颜色值进行对比,取标准索引表中最相近的128个颜色值生成当前帧128值索引表。

步骤S317,当128>N,取标准的256色颜色索引表作为当前帧的索引表。

步骤S319,对当前帧的索引表进行编码。只需编码索引表中索引值的个数,以及各个颜色分量在标准256色索引表中的索引值组成的一维序列。由于新生成的索引表中颜色分量的排列次序与原始的标准256色索引表的颜色分量的排列次数一致,在对新的索引表(此一维序列)进行压缩编码时,可以采用预测的方式,即采用前一个位置的值作为预测值,与当前位置的值相减的差值进行无损压缩。

步骤S321,将当前帧的每个像素位置颜色分量与当前帧的颜色索引表进行比对,取最相近的颜色所对应的索引值作为当前像素点的索引值。对索引图可采用通用的图像压缩方法进行压缩编码,例如可以对索引图可采用通用的图像压缩方法进行压缩编码。

具体的,可以对图4所示的具有颜色索引表和索引图的视图进行压缩,得到如图5所示的压缩结果。

步骤S323,按照不同类型的压缩码流组织在一起传输到接收端。

具体的,解码端对不同类型的码流进行解码并显示。

由上可知,本发明提供的实施例包容如下优势:兼容性好:算法为软件实现可支持多类型移动终端,包括手机、pad等设备;适应性广:屏幕视频图像的编码器,凡是需要对屏幕视频图像进行压缩的系统都可应用;体验好:用户可根据自身需要设计质量等级的个数。传输显示效果好,用户体验好。

按照每个块对应的不同的质量等级进行压缩。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例,还提供了一种用于实施上述实施例1的视频压缩方法的视频压缩装置的实施例。

图6是根据本申请实施例的一种视频压缩装置的示意图,如图6所示,该装置600可以包括:获取模块602、索引图获取模块604和压缩模块606。

其中,获取模块602,用于获取视频中的至少一帧,以及帧的颜色直方图,并统计颜色直方图的颜色分量的数量;索引图获取模块604,用于根据颜色分量的数量获取帧的颜色索引表和/或颜色索引图,其中,颜色索引表包括帧的不同数量的颜色分量所对应的颜色值,颜色索引图包括帧的每个像素位置的颜色值;压缩模块606,用于对颜色索引表和/或颜色索引图进行压缩编码,得到视频的压缩码流。

本申请上述步骤所提供的实施例提供了一种视频压缩方案,先获取视频图像中的一帧图像,并得到该帧图像的颜色直方图,然后统计当前帧的颜色直方图,例如找到每种颜色分量所占据的百分比,最后根据颜色直方图的特性生成当前帧的颜色索引表,且由颜色索引表得到当前帧的颜色索引图,进一步的,对颜色索引表和颜色索引图分别进行压缩编码最终得到屏幕视频的压缩码流。此处需要说明的是,由于本发明采用了是针对屏幕中显示的视频进行压缩,由于需要大压缩比又需要主观显示质量好的特性,因此,采用本发明上述方案提供的一种基于颜色索引的屏幕视频视频压缩技术,可以保证整个屏幕视频视频压缩系统达到较好的压缩性能,进而可以实现压缩文件的满足传输带宽需求。

优选地,上述压缩模块606可以包括:第一子压缩模块6062,用于在对颜色索引表中当前位置的颜色分量值进行压缩时,采用前一个位置的颜色分量值作为预测值,与当前位置的颜色分量值相减的差值进行无损压缩;第二子压缩模块6064,用于对颜色索引图采用图像压缩算法直接进行压缩编码。

优选地,上述获取模块602可以包括:子排序模块6022,用于将颜色直方图按照概率从大到小进行排列;子统计模块6024,用于统计概率处于预定概率范围内的颜色分量的个数N。

优选地,上述索引图获取模块604可以包括:子读取模块6042,用于读取N个颜色分量的颜色值;第一子比对模块6044,用于将每个颜色分量的颜色值分别与标准的颜色索引表中的颜色值进行比对;第一子生成模块6048,用于在标准的颜色索引表中颜色值与对应的颜色分量的差值小于等于第一阈值的情况下,得到颜色分量对应的颜色值;第一子获取模块6050,用于根据每个颜色值及对应的编号,获取帧的颜色索引表。

优选地,上述索引图获取模块604可以包括:第二子获取模块6052,用于获取帧的颜色索引表,以及帧的每个像素位置的颜色分量;第二子比对模块6054,用于将每个像素位置的颜色分量与颜色索引表中的颜色值进行比对;第二子生成模块6056,用于在颜色索引表中的颜色值与对应像素位置的颜色分量的差值小于等于第二阈值的情况下,得到每个像素位置的颜色值;第三子获取模块6058,用于根据每个像素位置的颜色值得到帧的颜色索引图。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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