图像编码、解码的方法和装置与流程

文档序号:12133765阅读:194来源:国知局
图像编码、解码的方法和装置与流程

本发明属于图像处理领域,具体地,涉及一种图像编码、解码的方法和装置。



背景技术:

许多工程技术领域都需要对图像数据进行存储或传输。但是,未经编码的图像往往存在着巨大的数据冗余。为了节省信息的存储空间和提高信息的传输效率,必须对大量的实际数据进行编码。

目前,静止图像编码效果一般由三方面决定,即:图像变换、系数量化和编码。其中编码方式决定了最终图像的编码率。根据编码后的图像能否完全恢复将图像编码划分为两种:有损编码以及无损编码。有损编码编码了熵,信息量会减少,可以得到较高编码比,但损失的信息量不能再恢复,只能用于允许一定程度失真的情况,不适用于图像的高精度编码、解码。无损编码是利用数据的统计冗余进行编码,可完全恢复原始数据而不引起任何失真,但编码率是受到数据统计冗余度的理论限制,一般为2:1到5:1,适用于图像恢复精度要求高、编码比要求较低的情况。霍夫曼编码、算术编码、游程编码是现今应用最为普遍的无损编码方式。其中霍夫曼编码和算术编码需要首先获知待编码数据的统计特性,需要对图像进行两遍扫描,编码效率较低;游程编码通过串长加像素的方式替代连续出现的像素,编码效率较高,但编码率受数据的连续重复程度影响较大。

针对相关图像编码、解码技术中无法同时满足复杂度低、编码率高、恢复精度高的问题,尚需有效解决的方案。



技术实现要素:

为解决相关图像编码、解码技术中无法同时满足复杂度低、编码率高、恢复精度高的问题,本发明提供了一种图像编码、解码的方法和装置,首先利用串长加像素的方式替代连续出现的像素,然后将初次编码结果中的连续孤立像素再次编码,从而获得高编码率的无损编码结果。

根据本发明的一个方面,提供了一种图像的编码方法,所述方法包括以下步骤:

S1、记录图像各维度上的像素个数;

S2、利用单个像素以及串长代替具有相同值的重复像素;

S3、根据串长判断是否为重复次数为一且连续出现的孤立像素;

S4、若是,只存储具体孤立像素,并累计连续孤立像素的个数;

S5、若不是,保留该部分的串长以及像素值,并存储累计的孤立像素个数;

优选地,所述S4具体包括以下步骤:

S410.在孤立像素存储区域存储连续出现的孤立像素;

S420.累计孤立像素连续出现的次数,记为num_single。

优选地,所述S5具体包括以下步骤:

S510.存储该部分的初次编码结果;

S520.根据串长判断前一像素是否为孤立像素;

S530.若是,则存储num_single,并重置num_single=0;

S540.若不是,则存储num_single=0。

根据本发明的另一个方面,还提供了一种使用所述编码方法进行编码后的解码方法,所述方法包括以下步骤:

S6:将孤立像素解码成串长加像素的格式,并根据累计连续个数,读取对应个数的孤立像素,同重复像素交替组合;

S7:根据串长以及像素,恢复像素重复的格式;

S8:根据记录的图像各维度上的像素个数,恢复像素的原始分布格式。

优选地,所述S6具体包括以下步骤:

S610.读取孤立像素长度;

S620.判断读取个数是否小于孤立像素总数;

S630.若是,按照读取的孤立像素个数从孤立像素存储区域中提取相应个数的像素,并在各孤立像素前补充“1”,表示该孤立像素的串长;

S640.若是,读取重复像素存储区域的单个像素值以及其串长;

S650.若不是,存储图像初次解码结果。

本发明的另一个方面,还提供了一种图像的编码装置,所述装置包括依次连接的图像大小记录模块、初次编码模块、孤立像素判别模块、孤立像素存储模块、重复像素存储及孤立像素个数存储模块,其中:

所述图像大小记录模块,用于记录图像各维度上的像素个数;

所述初次编码模块,用于利用单个像素值以及串长代替具有相同值的重复像素;

所述孤立像素判别模块,用于根据串长判断重复次数是否为一且连续出现的孤立像素;

所述孤立像素存储模块,用于只存储具体孤立像素,并累计连续孤立像素的个数;

所述重复像素存储及孤立像素个数存储模块,用于保留该部分的串长以及像素值,并存储累计的孤立像素个数。

优选地,所述孤立像素编码模块具体包括依次连接的孤立像素存储模块、孤立像素连续次数存累计模块,其中:

所述孤立像素存储模块,用于在孤立像素存储区域存储连续出现的孤立像素;

所述孤立像素连续次数累计模块,用于累计孤立像素连续出现的次数,记为num_single。

优选地,所述重复像素编码及孤立像素个数存储模块具体包括依次连接的重复像素存储模块、前一串长判断模块、孤立像素连续次数存储模块、孤立像素连续次数补零模块,其中:

所述重复像素存储模块,用于存储该部分的初次编码结果;

所述前一串长判断模块块,用于根据串长判断前一像素是否为孤立像素;

所述孤立像素连续次数存储模块,用于存储num_single,并重置num_single=0;

所述孤立像素连续次数补零模块,用于存储num_single=0。

本发明的另一个方面,还提供了一种使用所述编码装置进行编码后的解码装置,所述装置包括依次连接的初次解码模块、串长消除模块、维度重建模块,其中:

所述初次解码模块,用于将孤立像素解码成串长加像素的格式,并根据累计连续个数,读取对应个数的孤立像素,同重复像素交替组合;

所述串长消除模块,用于根据串长以及像素,恢复像素重复的格式;

所述维度重建模块,用于根据记录的图像各维度上的像素个数,恢复像素的原始分布格式。

优选地,所述初次解码模块具体包括依次连接的孤立像素长度读取模块、读取判定模块、孤立像素串长添加模块、重复像素读取模块、初次解码存储模块,其中:

所述孤立像素长度读取模块,用于读取孤立像素长度;

所述读取判定模块,用于判定读取个数是否小于总孤立像素总数;

所述孤立像素串长添加模块,用于按照读取的孤立像素个数从孤立像素存储区域中提取相应个数的像素,并在各孤立像素前补充“1”,表示该孤立像素的串长;

所述重复像素读取模块,用于读取重复像素存储区域的单个像素值以及其串长;

所述初次解码存储模块,用于存储图像初次解码结果;

附图说明

图1是本发明图像编码、解码方法的流程图;

图2是本发明图像编码、解码方法中S4的流程图;

图3是本发明图像编码、解码方法中S5的流程图;

图4是本发明图像编码、解码方法中S6的流程图;

图5是本发明图像编码、解码装置的结构示意图;

图6是本发明图像编码、解码装置中孤立像素存储模块的结构示意图;

图7是本发明图像编码、解码装置中重复像素编码及孤立像素个数存储模块的结构示意图;

图8是本发明图像编码、解码装置中初次解码模块的结构示意图;

图9是本发明实施例示意图;

具体实施方式

为了使本发明的目的、技术方案及优点更加明白清楚,以下结合附图及实施例,对本发明进行进一步详细说明。

请参阅图1,图1是本发明图像编码、解码方法的流程图,如图1所示,所述方法包括以下步骤:

在步骤S1中,记录图像各维度上的像素个数,用于解码时恢复图像的原始维度。在本实施例原始图像(图9)中,横向个数Nx=512,纵向个数Nz=512。

在步骤S2中,利用单个像素以及串长代替具有相同值的重复像素。本实施例中,图9的初次编码结果为37802个像素,压缩率为6.9347:1,其中重复像素占4568个像素,孤立像素占33234个像素,占初次编码结果的87.92%,而其中孤立像素的串长具有巨大的数据冗余。

在步骤S3中,根据串长判断是否为重复次数为一且连续出现的孤立像素。

在步骤S4中,若步骤S3判断正确,则在立像素存储区域single_store只存储具体孤立像素,并累计连续孤立像素的个数。实施例中,图9的孤立像素二次编码结果single_store为16617个像素。

请结合参阅图2,图2是本发明图像编码、解码方法中步骤S4的流程图,如图2所示,所述步骤S4具体包括以下步骤:

在步骤S410中,在孤立像素存储区域single_store存储连续出现的孤立像素。该部分存储的孤立像素需满足两个条件:像素的串长为1,并且串长为1的像素至少连续出现两次。串长为1的条件保证了该像素在原始图像中是孤立存在的,初次编码结果相对于该原始像素存在存储冗余;另一方面,该类像素至少连续出现两次,保证了该类像素的初次编码结果具有可压缩性。

在步骤S420中,在孤立像素长度存储区域累计孤立像素连续出现的次数,记为num_single;在这里,可设置该部分孤立像素出现次数初始值num_single=0,依次读取像素的串长,若串长为1,则num_single=num_single+1。需要注意的是,该步仅是累计孤立像素连续出现的次数,并不进行存储。

在步骤S5中,若步骤S2判断错误,在重复像素存储区域multi_store存储该部分的串长以及像素值,并在孤立像素个数存储区域length_store存储累计的孤立像素个数num_single。本实施例中,图9的重复像素的二次编码结果multi_store为4568个像素,孤立像素个数存储区域length_store存储2285个像素。相比于初次编码结果中孤立像素的16617个串长(1),二次编码结果得到了更好的整体压缩率:11.1693:1。

请结合参阅图3,图3是本发明图像编码、解码方法中步骤S5的流程图,如图3所示,所述步骤S5具体包括以下步骤:

在步骤S510中,重复像素存储区域multi_store存储该部分的串长以及像素值。该部分属于初次编码结果中串长大于1的部分,在二次编码过程中,直接存储其串长跟像素值。

在步骤S520中,根据串长判断前一像素是否为孤立像素。

在步骤S530中,若前一像素为孤立像素,表明在此像素之前,已有部分连续的孤立像素被存储,而该像素便是上次连续孤立像素存储的终止标志,需要在孤立像素个数存储区域length_store存储之前的孤立像素个数num_single,并重置num_single=0。

在步骤S540中,若前一像素不是孤立像素,则表明前一像素跟当前像素为相邻的非孤立像素,为了保证孤立像素同非孤立像素交替存储,在在孤立像素个数存储区域length_store额外存储num_single=0,标志该重复像素存储之前一步存储的孤立像素个数为0。

在步骤S6中,将孤立像素解码成串长加像素的格式,并根据累计连续个数,读取对应个数的孤立像素,同重复像素交替组合。需要注意的是,步骤S540中的补零操作确保了孤立像素和非孤立像素的存储是交替进行的,这是二者可交替重组的保证。通过步骤S6得到了原始图像初次编码结果。

请结合参阅图4,图4是本发明图像编码、解码方法中步骤S6的流程图,如图4所示,所述步骤S6具体包括以下步骤:

在步骤S610中,读取孤立像素长度;

在步骤S620中,判断读取个数是否小于孤立像素总数,小于时,表明孤立像素的解码还未结束,否则,表明孤立像素的解码结束。

在步骤S630中,若S620判断正确,则按照读取的孤立像素个数从孤立像素存储区域中提取相应个数的像素,并在各孤立像素前补充“1”,表示该孤立像素的串长;

在步骤S640中,若S620判断正确,则读取重复像素存储区域的单个像素值以及其串长;

在步骤S650中,若S620判断错误,则存储图像初次解码结果。

在步骤S7中,根据串长以及像素,恢复像素重复的格式,比如3A——>AAA。需要注意的是,步骤S7仅恢复出了原始像素,并未恢复原始图像的维度。

在步骤S8中,根据记录的图像各维度上的像素个数Nx、Nz,恢复像素的原始分布格式。

请参阅图5,图5是本发明图像编码、解码装置的流程图,如图5所示,所述装置包括依次连接的图像大小记录模块1、初次编码模块2、孤立像素判别模块3、孤立像素存储模块4、重复像素存储及孤立像素个数存储模块5、初次解码模块6、串长消除模块7、维度重建模块8、,其中所述孤立像素存储模块4具体包括依次连接的孤立像素存储模块410、孤立像素连续次数存累计模块420,所述重复像素存储及孤立像素个数存储模块5具体包括依次连接的重复像素存储模块510、前一串长判断模块520、孤立像素连续次数存储模块530、孤立像素连续次数补零模块540,所述初次解码模块6具体包括依次连接的孤立像素长度读取模块610、读取判定模块620、孤立像素串长添加模块630、重复像素读取模块640、初次解码结束模块650。下面具体介绍各个部分的作用:

所述图像大小记录模块1,用于记录图像各维度上的像素个数;

所述初次编码模块2,用于利用单个像素以及串长代替具有相同值的重复像素;

所述孤立像素判别模块3,用于根据串长判断重复次数是否为一且连续出现的孤立像素;

所述孤立像素存储模块4,用于存储具体孤立像素,并累计连续孤立像素的个数;

所述重复像素存储及孤立像素个数存储模块5,用于保留该部分的串长以及像素值,并存储累计的孤立像素个数;

所述初次解码模块6,用于将孤立像素解码成串长加像素的格式,并根据累计连续个数,读取对应个数的孤立像素,同重复像素交替组合;

所述串长消除模块7,用于根据串长以及像素,恢复像素重复的格式;

所述串长消除模块8,用于根据记录的图像各维度上的像素个数,恢复像素的原始分布格式。

所述孤立像素存储模块410,用于在孤立像素存储区域存储连续出现的孤立像素;

所述孤立像素连续次数累计模块420,用于累计孤立像素连续出现的次数,记为num_single。

所述重复像素存储模块510,用于保留该部分的串长以及像素值;

所述前一串长判断模块520,用于根据串长判断前一像素是否为孤立像素;

所述孤立像素连续次数存储模块530,用于存储num_single,并重置num_single=0;

所述孤立像素连续次数补零模块540,用于存储num_single=0。

所述孤立像素长度读取模块610,用于读取孤立像素长度;

所述读取判定模块620,用于判定读取个数是否小于总孤立像素总数;

所述孤立像素串长添加模块630,用于按照读取的孤立像素个数从孤立像素存储区域中提取相应个数的像素,并在各孤立像素前补充“1”,表示该孤立像素的串长;

所述重复像素读取模块640,用于读取重复像素存储区域的单个像素值以及其串长;

所述初次解码结束模块650,用于存储图像初次解码结果。

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