显示数据压缩方法及显示数据处理***
技术领域
本发明涉及图像数据压缩技术,尤其涉及一种显示数据压缩方法及显示数据处理***。
背景技术
图像可作为关于多个像素的信息被存储在显示装置中。例如,图像可被划分为按照矩阵布置的多个像素,关于像素中的每一个的信息可包含关于像素的颜色和亮度的信息。例如,关于一个像素的信息可被划分为红色、绿色和蓝色的灰度分量。另外,在单色显示中,关于一个像素的信息可不依据颜色来划分,但是可包含灰度级信息。
现有压缩方法包括多种。其中常见的无损压缩方法包括游程长度压缩和LZ77压缩。常见的有损压缩方法包括JPEG压缩。
游程长度压缩为一种“使用固定长度的码来取代连续重复出现的原始数据”的压缩技术。举例来说,一组数据串"AAAABBBCCDEEEE",由4个A、3个B、2个C、1个D、4个E组成,经过变动长度编码法可将数据压缩为4A3B2C1D4E(由14个单位转成10个单位)。简言之,其优点在于将重复性高的数据量压缩成小单位;然而,其缺点在于,若该资料出现频率不高,可能导致压缩结果数据量比原始数据大,例如:原始数据"ABCDE",压缩结果为"1A1B1C1D1E"(由5个单位转成10个单位)。
LZ77压缩是基于字典的编码。LZ77算法通过使用编码器或者解码器中已经出现过的相应匹配数据信息替换当前数据从而实现压缩功能。这个匹配信息使用称为“长度-距离”对的一对数据进行编码,它等同于“每个给定长度个字符都等于后面特定距离字符位置上的未压缩数据流”。(“距离”有时也称作“偏移”。)
JPEG是一种针对图像而广泛使用的一种有损压缩标准方法,针对块或区域进行压缩,包括缩减取样、分块、量化等步骤。其中缩减取样步骤通过色度抽样降低色度的分辨率,以及对色彩的亮度进行处理。分块步骤包括将图像中的每个成份划分成类似矩阵排列的一个个的8×8子区域,每一子区域使用二维的离散余弦变换(DCT)转换到频率空间。量化步骤包括把频率空间上每个成份,除以一个对于该成份的常数就可完成,且接着舍位取最接近的整数。这是整个过程中的主要有损运算。以这个结果而言,经常会把很多更高频率的成份舍位成为接近0,且剩下很多会变成小的正或负数。这样能在高频率成份上极佳地降低信息的数量。
随着科技的进步,对高清晰度图像的需求日益增加,从而增加了包含关于像素的信息的像素数据的总大小。因此,需要开发可用于进一步压缩像素数据以提高数据发送/接收速度,以降低读/写延迟,并克服存储装置的有限存储空间的设备和方法。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的之一是提供一种显示数据压缩方法。另一目的是提供一种显示数据处理***。
本公开的其他目的、特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种显示数据压缩方法,包括:提供一像素数据行;判断所述像素数据行中是否存在一像素值组,所述像素值组包括连续排列的多个像素值,所述多个像素值包括一第一像素值,所述像素值组中的位于所述第一像素值之后的各像素值与所述第一像素值之间的差值均不大于一第一阈值;若存在所述像素值组,则量化所述各像素值与所述第一像素值之间的差值之和,借此得到一量化值;判断所述量化值是否大于一第二阈值;以及若所述量化值不大于所述第二阈值,则将所述各像素值设为所述第一像素值。
根据一示例实施方式,所述量化所述像素值组中的各像素值与所述第一像素值之间的差值之和,得到一量化值的步骤包括:分别将所述各像素值与所述第一像素值之间的差值相加,得到一总差值;计算所述像素值组中的像素值个数,得到一总长度值;以及将所述总差值除以所述总长度值,得到所述量化值。
根据一示例实施方式,所述差值为正数。
根据一示例实施方式,所述第一阈值为1至3之间。
根据一示例实施方式,所述第一阈值为1。
根据一示例实施方式,所述第二阈值为30%至70%之间。
根据一示例实施方式,所述第二阈值为50%。
根据一示例实施方式,于将所述像素值组中的所述各像素值设为所述第一像素值的步骤之后,还包括:对所述像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
根据一示例实施方式,所述像素数据行包括相同颜色子像素。
根据一示例实施方式,所述像素数据行包括不同颜色子像素。
根据本公开的另一个方面,提供一种显示数据压缩方法,包括:提供一像素数据块;判断所述像素数据块中是否存在一二维像素值组,所述二维像素值组包括连续多行,每行包括多列,各行中各列的像素值与第一行中对应列的像素值之间的差值均不大于一第一阈值;若存在所述二维像素值组,则量化各行中各列的像素值与所述第一行中对应列的像素值之间的差值之和,借此得到一量化值;判断所述量化值是否大于一第二阈值;以及若所述量化值不大于所述第二阈值,则将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等。
根据一示例实施方式,所述量化各行中各列的像素值与所述第一行中对应列的像素值之间的差值之和,得到一量化值的步骤包括:分别将各行中各列的像素值与所述第一行中对应列的像素值之间的差值相加,得到各列的一差值和;将各列的所述差值和相加,得到一总差值;计算所述二维像素值组的列数,得到一总长度值;以及将所述总差值除以所述总长度值,得到所述量化值。
根据一示例实施方式,所述差值为正数。
根据一示例实施方式,所述第一阈值为1至3之间。
根据一示例实施方式,所述第一阈值为2。
根据一示例实施方式,所述第二阈值为30%至70%之间。
根据一示例实施方式,所述第二阈值为50%。
根据一示例实施方式,所述二维像素值组包括两行多列。
根据一示例实施方式,于将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等的步骤之后,还包括:对所述二维像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
根据一示例实施方式,所述多行包括相同颜色子像素。
根据一示例实施方式,所述多行包括不同颜色子像素。
根据本公开的另一个方面,提供一种显示数据处理***,用于对一像素数据行进行处理,包括:检测模块,用于检测所述像素数据行中是否存在一像素值组,所述像素值组包括连续排列的多个像素值,所述多个像素值中的第一个为第一像素值,所述像素值组中的位于所述第一像素值之后的各像素值与所述第一像素值之间的差值均不大于一第一阈值;量化模块,与所述检测模块连接,用于量化所述各像素值与所述第一像素值之间的差值之和,得到一量化值;以及处理模块,与所述量化模块连接,用于比较所述量化值与一第二阈值,并在所述量化值不大于所述第二阈值时,将所述各像素值设为所述第一像素值。
根据一示例实施方式,所述量化模块用于将所述各像素值与所述第一像素值之间的差值相加,得到一总差值;用于计算所述像素值组中的像素值个数,得到一总长度值;用于将所述总差值除以所述总长度值,得到所述量化值。
根据一示例实施方式,还包括压缩模块,与所述处理模块连接,用于对所述像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
根据一示例实施方式,所述差值为正数。
根据一示例实施方式,所述第一阈值为1至3之间。
根据一示例实施方式,所述第一阈值为1。
根据一示例实施方式,所述第二阈值为30%至70%之间。
根据一示例实施方式,所述第二阈值为50%。
根据一示例实施方式,所述像素数据行包括相同颜色子像素。
根据一示例实施方式,所述像素数据行包括不同颜色子像素。
根据本公开的另一个方面,提供一种显示数据处理***,用于对一像素数据块进行处理,包括:检测模块,用于检测所述像素数据块中是否存在一二维像素值组,所述二维像素值组包括连续多行,每行包括多列,各行中各列的像素值与第一行中对应列的像素值之间的差值均不大于一第一阈值;量化模块,与所述检测模块连接,用于量化各行中各列的像素值与所述第一行中对应列的像素值之间的差值之和,得到一量化值;以及处理模块,与所述量化模块连接,用于比较所述量化值与一第二阈值,并在所述量化值不大于所述第二阈值时,将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等。
根据一示例实施方式,所述量化模块用于分别将各行中各列的像素值与所述第一行中对应列的像素值之间的差值相加,得到各列的一差值和;用于将各列的所述差值和相加,得到一总差值;用于计算所述二维像素值组的列数,得到一总长度值;用于将所述总差值除以所述总长度值,得到所述量化值。
根据一示例实施方式,还包括压缩模块,与所述处理模块连接,用于对所述二维像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
根据一示例实施方式,所述差值为正数。
根据一示例实施方式,所述第一阈值为1至3之间。
根据一示例实施方式,所述第一阈值为2。
根据一示例实施方式,所述第二阈值为30%至70%之间。
根据一示例实施方式,所述第二阈值为50%。
根据一示例实施方式,所述多行包括相同颜色子像素。
根据一示例实施方式,所述多行包括不同颜色子像素。
本发明的显示数据压缩方法和显示数据处理***,可以有效地减小显示数据大小,使得经处理后的显示数据需要较少的存储空间。此外,还能有效地对显示数据进行压缩,进而能提高显示数据发送/接收速度,并降低读/写延迟。
附图说明
对于本领域技术人员来说,通过阅读下面对示于各附图中的一示例实施例的详细描述,本公开的上述和其它特征及优点将变得更加明显。
图1为根据本公开一示例实施方式的显示数据压缩方法流程图。
图2和图3为图1的显示数据压缩方法示意图。
图4为根据本公开另一示例实施方式的显示数据压缩方法流程图。
图5和图6为图4的显示数据压缩方法示意图。
图7为根据本公开一示例实施方式的显示数据处理***示意图。
具体实施方式
现在将参考附图更全面地描述实施方式。然而,实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开将全面和完整,并将实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而可省略它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。体现本公开特征与优点的典型实施例将在以下的说明中详细叙述。应理解的是本公开能够在不同的实施例上具有各种的变化,其皆不脱离本公开的范围,且其中的说明及附图在本质上是当作说明之用,而非用以限制本公开。
图1、图2和图3为根据本公开一示例实施方式的显示数据压缩方法示意图。如图1所示,本发明一实施例的显示数据压缩方法包括以下步骤:
S110:提供一像素数据行;
S120:判断所述像素数据行中是否存在一像素值组;
S130:若存在所述像素组,则量化所述各像素值与所述第一像素值之间的差值之和,得到一量化值;
S140:判断所述量化值是否大于一第二阈值;
S150:若所述量化值不大于所述第二阈值,则将所述各像素值设为所述第一像素值。
关于步骤S110,请同时参考图1和图2,在本实施例中,像素数据行不仅指数据行H1、H2,还可以指数据列L1……L8等。在一实施例在,所述像素数据行包括相同颜色子像素,例如,图2所示的像素数据行包括蓝色子像素、绿色子像素、红色子像素其中之一。在另一实施例中,所述像素行包括不同颜色子像素,例如,图2所示的像素数据行包括蓝色子像素、绿色子像素、红色子像素至少其中之二。
在步骤S120中,判断所述像素数据行中是否存在一像素值组,所述像素值组包括连续排列的多个像素值,所述多个像素值中的第一个为第一像素值,所述像素值组中的位于所述第一像素值之后的各像素值与所述第一像素值之间的差值均不大于第一阈值。在一实施例中,所述第一阈值为1至3之间,但本发明不以此为限。在一实施例中,所示差值为正数,也即所示差值为第一像素值之后的各像素值与所述第一像素值之间的差的绝对值。
请同时参考图1和图2,在本实施例中,所述第一阈值为1。对于数据行H1,本实施例的显示数据压缩方法可判断得出,像素数据行中存在像素值组{7,6}、{2,3}、{1,1,1,1};对于数据行H2,本实施例的显示数据压缩方法可判断得出,像素数据行中存在像素值组{6,5}、{2,2,1,1,2,1},且像素值组中各像素值连续排列,第一像素值排列于像素值组中的第一位。其中,对于像素值组{7,6},|7-6|=1≤1,对于像素值组{2,3},|2-3|=1≤1,对于像素值组{2,2,1,1,2,1},|2-2|=0≤1,|2-1|=0≤1,也即像素值组中除第一像素值以外的其他像素值与第一像素值之间的差的绝对值均不大于第一阈值1。
另外,各像素值组中不存在重叠的像素值,也即同一个像素值仅可属于一个像素值组。例如,像素值6仅属于像素值组{7,6}。
在一实施例中,步骤S130还包括:分别将像素值组中除第一像素值以外的其他像素值与所述第一像素值之间的差值相加,得到一总差值D;计算所述像素值组中的像素值个数,得到一总长度值R;以及将所述总差值除以所述总长度值,得到所述量化值S。
例如,如图2所示,对于像素值组{7,6},总差值D=1,总长度值R=2,量化值S=D/S=1/2;对于像素值组{2,3},总差值D=1,总长度值R=2,量化值S=D/S=1/2;对于像素值组{2,2,1,1,2,1},总差值D=0+1+1+0+0=2,总长度值R=6,量化值S=D/S=2/6。
在步骤S140中,判断所述量化值是否大于一第二阈值。所述第二阈值为30%至70%之间,但本发明不以此为限。
在步骤S150中,若所述量化值不大于所述第二阈值,则将所述各像素值设为所述第一像素值。请同时参考图1和3,在本实施例,所述第二阈值为50%。例如,在一实施例中,对于像素值组{7,6},总差值D=1,总长度值R=2,量化值S=D/S=1/2≤50%;对于像素值组{2,3},总差值D=1,总长度值R=2,量化值S=D/S=1/2≤50%;对于像素值组{2,2,1,1,2,1},总差值D=0+1+1+0+0=2,总长度值R=6,量化值S=D/S=2/6≤50%。则将像素值组{7,6}设为{7,7},将像素值组{2,3}设为{2,2},将像素值组{2,2,1,1,2,1}设为{2,2,2,2,2,2}。在一具体实施方式中,若所述量化值大于所述第二阈值,则不对像素值组中的各像素值进行修改。例如,若所述第二阈值为30%,则对于像素值组{2,2,1,1,2,1},量化值S=D/S=2/6>30%,则像素值组{2,2,1,1,2,1}的各像素值保持不变,分别为2,2,1,1,2,1。由本步骤可知,本发明实施例的显示数据压缩方法为一种有损显示数据压缩方法。
根据本公开一示例实施方式的显示数据压缩方法,在步骤S150之后,还包括对所述像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。例如,如图3所示,对虚线框中的进行修改后的像素值组进行游程长度压缩,将使得本发明实施例的显示数据压缩方法具有更高的压缩效率。
需要的注意的是,对于图2中的像素数据行L1…L8…,其显示数据压缩方法与像素数据行H1、H2的压缩方法相似,在此不再赘述。
图4、图5和图6为根据本公开另一示例实施方式的显示数据压缩方法示意图。如图4所示,本发明一实施例的显示数据压缩方法包括以下步骤:
S210:提供一像素数据块;
S220:判断所述像素数据块中是否存在一二维像素值组;
S230:若存在所述二维像素值组,则量化各行中各列的像素值与所述第一行中对应列的像素值之间的差值之和,得到一量化值;
S240:判断所述量化值是否大于一第四阈值;
S250:若所述量化值不大于所述第四阈值,则将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等。
关于步骤S210,请同时参考图4和图5,在本实施例中,像素数据块为由多个二维像素值按行和列排列而成的二维矩阵。例如,如图5所示,在本实施例中,二维像素数据块K1为由连续的两行九列排列的二维像素值矩阵组成,但本发明不以此为限,二维像素数据块的行数还可为两行以上。
在一实施例中,二维像素数据块中包括相同颜色子像素,例如,图5所示的像素数据块包括蓝色子像素、绿色子像素、红色子像素其中之一。在另一实施例中,所述二维像素数据块包括不同颜色子像素,例如,图5所示的像素数据块包括蓝色子像素、绿色子像素、红色子像素至少其中之二。
在步骤S220中,判断所述像素数据块中是否存在一二维像素值组,所述二维像素值组包括连续多行,每行包括多列,各行中各列的像素值与第一行中对应列的像素值之间的差值均不大于第三阈值。
在一实施例中,所述第一阈值为1至3之间,但本发明不以此为限。在一实施例中,所示差值为正数,也即所述差值为各行中各列的像素值与第一行中对应列的像素值之间的差的绝对值。
请同时参考图4和图5,在本实施例中,所述第一阈值为2。对于像素数据块K1,本实施例的显示数据压缩方法可判断得出,像素数据块K1中存在二维像素值组K2,包括两行八列,各行各列连续排列于所述像素数据块K1中。
对于像素数据块K2,第二行各列与第一行对应的列的像素值之差分别为:|7-6|=1,|6-5|=1,|2-2|=0,|3-2|=1,|1-1|=0,|1-1|=0,|1-2|=1,|1-1|=0,均不大于第三阈值2。
另外,本发明实施例的显示数据压缩方法的各二维像素值组中不存在重叠的像素值,也即同一个像素值仅可属于一个二维像素值组。
在一实施例中,步骤S230还包括:分别将各行中各列的像素值与所述第一行中对应列的像素值之间的差值相加,分别得到各列的一差值和D1、D2…;将各列的所述差值和相加,得到一总差值D;计算所述二维像素值组的列数,得到一总长度值R;将所述总差值D除以所述总长度值R,得到所述量化值S。
例如,如图5所示,对于二维像素值组K2,各列的一差值和即为第二行各列与第一行对应的列的像素值之差,分别为D1=1,D2=1,D3=0,D4=1,D5=0,D6=0,D7=1,D8=0。在其他实施例中,对于包括3行多列的二维像素值组,各列的一差值和为第二行各列与第一行对应的列的像素值之差与第三行各列与第一行对应的列的像素值之差的和。在本实施例中,像素值之差为像素值的差的绝对值,为正数。
对于二维像素值组K2,总差值D=D1+D2+D3+D4+D5+D6+D7+D8=4,总长度值R=8,量化值S=D/S=1/2。
在步骤S240中,判断所述量化值是否大于一第四阈值。所述第四阈值为30%至70%之间,但本发明不以此为限。
在步骤S250中,若所述量化值不大于所述第四阈值,则将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等。
在本实施例,所述第二阈值为50%。例如,对于二维像素值组K2,量化值S=D/S=1/2≤50%。则将二维像素值组K2的第二行中各列的像素值设为与所述第一行中对应列的像素值相等。如图6所示,二维像素值组K2第一行以及第二行各列的值依次为7,6,2,3,1,1,1,1。在其一具体实施方式中,若所述量化值大于所述第二阈值,则不对像素值组中的各像素值进行修改。例如,若所述第四阈值为30%,则对于二维像素值组K2,量化值S=D/S=1/2>30%,则二维像素值组K2的各行的像素值保持不变,分别为6,5,2,2,1,1,2,1。由本步骤可知,本发明实施例的显示数据压缩方法为一种有损显示数据压缩方法。
根据本公开一示例实施方式的显示数据压缩方法,在步骤S250之后,还包括对所述像素值组进行游程长度压缩、JPEG压缩、过滤压缩LZ77压缩。例如,如图6所示,对虚线框中的进行修改后的像素值组进行游程长度压缩,将使得本发明实施例的显示数据压缩方法具有更高的压缩效率。
图7为根据本公开一示例实施方式的显示数据处理***示意图。如图7所示,本发明实施例的显示数据处理***包括检测模块11、量化模块12、处理模块13和压缩模块14。量化模块12的输入端与检测模块11的输出端相连,处理模块13的输入端与量化模块12的输出端相连,以及处理模块13的输出端与压缩模块14相连。
在一实施例中,显示数据处理***用于对一像素数据行进行处理。所述像素数据行不仅可以是一组行数据还可以是一组列数据。在一实施方式中,所述像素行包括相同颜色子像素。在另一实施方式中,所述像素行包括不同颜色子像素。
检测模块11,用于检测所述像素数据行中是否存在一像素值组,所述像素值组包括连续排列的多个像素值,所述多个像素值中的第一个为第一像素值,所述像素值组中的位于所述第一像素值之后的各像素值与所述第一像素值之间的差值均不大于第一阈值。所述第一阈值为1至3之间。在一实施例中,所述第一阈值为1。
量化模块12,与所述检测模块连接,用于量化所述各像素值与所述第一像素值之间的差值之和,得到一量化值。例如,在本实施例中,量化模块12用于将所述各像素值与所述第一像素值之间的差值相加,得到一总差值;用于计算所述像素值组中的像素值个数,得到一总长度值;用于将所述总差值除以所述总长度值,得到所述量化值。在一实施例中,所述差值为正数。
处理模块13,与所述量化模块连接,用于比较所述量化值与一第二阈值,并在所述量化值不大于所述第二阈值时,将所述各像素值设为所述第一像素值。所述第二阈值为30%至70%之间。在一实施例中,所述第二阈值为50%。
压缩模块14,与所述处理模块连接,用于对所述像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
在另一实施例中,显示数据处理***用于对一像素数据块进行处理。所述像素数据块为由连续的多行多列排列的二维像素值矩阵组成。在一具体实施方式中,二维像素数据块可为两行多列,本发明不以此为限。在一实施例中,二维像素数据块包括相同颜色子像素,例如,包括蓝色子像素、绿色子像素、红色子像素其中之一。在另一实施例中,所述二维像素数据块包括不同颜色子像素,例如,包括蓝色子像素、绿色子像素、红色子像素至少其中之二。
检测模块11,用于检测所述像素数据块中是否存在一二维像素值组,所述二维像素值组包括连续多行,每行包括多列,各行中各列的像素值与第一行中对应列的像素值之间的差值均不大于第一阈值。所述第一阈值为1至3之间。在一实施例中,所述第一阈值为2。
量化模块12,与所述检测模块连接,用于量化各行中各列的像素值与所述第一行中对应列的像素值之间的差值之和,得到一量化值。例如,在本实施例中,量化模块12分别将各行中各列的像素值与所述第一行中对应列的像素值之间的差值相加,得到各列的一差值和;用于将各列的所述差值和相加,得到一总差值;用于计算所述二维像素值组的列数,得到一总长度值;用于将所述总差值除以所述总长度值,得到所述量化值。在一实施例中,所述差值为正数。
处理模块13,与所述量化模块连接,用于比较所述量化值与一第二阈值,并在所述量化值不大于所述第二阈值时,将所述二维像素值组的各行中各列的像素值设为与所述第一行中对应列的像素值相等。所述第二阈值为30%至70%之间。在一实施例中,所述第二阈值为50%。
压缩模块14,与所述处理模块连接,用于对所述像素值组进行游程长度压缩、JPEG压缩或LZ77压缩。
本发明实施例的显示数据压缩方法和显示数据处理***,可以有效地降低图像数据大小,使得经处理后的显示数据需要较少的存储空间。此外,本发明实施例的显示数据压缩方法和显示数据处理***能有效地对显示数据进行压缩,进而能提高显示数据发送/接收速度,并降低读/写延迟。
虽然本发明的实施例如上所述,然而该些实施例并非用来限定本发明,本技术领域的技术人员可依据本发明的明示或隐含的内容对本发明的技术特征施以变化,凡此种种变化均可能属于本发明所寻求的专利保护范畴,换言之,本发明的专利保护范围须视本说明书的权利要求所界定者为准。