数据编码方法和数据解码方法及其系统与流程

文档序号:16786904发布日期:2019-02-01 19:26阅读:324来源:国知局
数据编码方法和数据解码方法及其系统与流程

本申请涉及数据处理领域,且更具体地,涉及一种数据编码方法及其系统以及数据解码方法及其系统。



背景技术:

在数据处理领域,为了进行例如数据编码、压缩等的数据处理,为了使得编码或压缩后的数据更小以便于存储和传输,都希望要编码或压缩的二进制数据具有更多的连续的零(即稀疏的)。可是现实中,要存储或传输的数据大多数是非稀疏的,即,不一定有很多连续的零,因此,在编码或压缩时,不能使得编码或压缩后的数据变得尽可能地小。较大的数据量不仅可能会需要更大的数据存储器、缓冲器等来存储或缓冲,还可能会减慢数据传输的速度,例如在传输带宽有限的情况下,如此对例如实时传输和播放的应用场景下是不利的。

另外,在数据编码或压缩时,可进行无损编码或压缩或者有损编码或压缩。无损编码或压缩的数据可以在不损失任何信息细节的情况下被无损地解码或解压缩(还原),如此能够还原得到没有任何信息损失的原始数据。而有损编码或压缩可能损失一定程度的信息细节而得到数据量小的编码或压缩后数据,但是这样的有损编码或压缩的数据在还原时仅能还原出一部分信息,而丢失了一定程度的信息细节,如此,还原得到的数据并不是原始数据。从尽可能还原真实的数据的角度出发,期望更多地应用无损编码或压缩。

因此,需要一种能够在无信息损失的情况下又使得编码或压缩后的数据的量尽可能小的技术。



技术实现要素:

基于现有技术的上述问题之一,本发明的各个实施例公开了一种能够在无信息损失的情况下又使得编码或压缩后的数据的量尽可能小的技术。

根据本发明的一个方面,提供一种数据编码方法,包括:第一获得步骤,获得基础元素集合P,其中所述基础元素集合P包括多个基础元素;第二获得步骤,获得基础元素组集合Q和基础元素组顺序表SQ,其中所述基础元素组集合Q中的基础元素组是由基础元素集合P中的基础元素组成的第一预定大小的基础元素组,所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第三获得步骤,获得待处理数据R;转换步骤,将所述待处理数据R转换为m*n的数据矩阵C,其中m和n是正整数,所述数据矩阵C中的每个元素Cij被取值为从待处理数据R中按顺序截取的第一预定大小的数据组,其中i和j是大于或等于0的整数,i∈[0,m-1],j∈[0,n-1],Cij∈Q;提取步骤,按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组;其中,所述提取步骤包括:按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对每个基础元素组SQ[k],从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组SQ[k]的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=SQ[k]时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

根据本发明的另一方面,提供一种数据编码系统,包括:存储器,用于存储一个或多个计算机可执行指令;处理器,运行从所述存储器中读取的所述一个或多个计算机可执行指令以进行如下步骤:第一获得步骤,获得基础元素集合P,其中所述基础元素集合P包括多个基础元素;第二获得步骤,获得基础元素组集合Q和基础元素组顺序表SQ,其中所述基础元素组集合Q中的基础元素组是由基础元素集合P中的基础元素组成的第一预定大小的基础元素组,所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第三获得步骤,获得待处理数据R;转换步骤,将所述待处理数据R转换为m*n的数据矩阵C,其中m和n是正整数,所述数据矩阵C中的每个元素Cij被取值为从待处理数据R中按顺序截取的第一预定大小的数据组,其中i和j是大于或等于0的整数,i∈[0,m-1],j∈[0,n-1],Cij∈Q;提取步骤,按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组;其中,所述提取步骤包括:按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对每个基础元素组SQ[k],从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组SQ[k]的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=SQ[k]时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

根据本发明的另一方面,提供一种数据解码方法,包括:第四获得步骤,获得基础元素组顺序表SQ,且所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第五获得步骤,获得单元矩阵组C_SQ,单元矩阵组C_SQ中的每个单元矩阵C_SQ[k]是m*n的矩阵;生成步骤,生成空的m*n的矩阵B并生成一个空数据T;第一还原步骤,针对每个单元矩阵C_SQ[k],按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对基础元素组顺序表SQ的每个基础元素组SQ[k],当单元矩阵C_SQ[k]中的元素C_SQ[k]ij=1时,使得矩阵B的元素Bij=SQ[k],其中,i∈[0,m-1],j∈[0,n-1];第二还原步骤,按照矩阵B中的元素的顺序,顺序地将矩阵B中的元素排列在所述数据T中以得到还原的数据T。

根据本发明的另一方面,提供一种数据解码系统,包括:存储器,用于存储一个或多个计算机可执行指令;处理器,运行从所述存储器中读取的所述一个或多个计算机可执行指令以进行如下步骤:第四获得步骤,获得基础元素组顺序表SQ,且所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第五获得步骤,获得单元矩阵组C_SQ,单元矩阵组C_SQ中的每个单元矩阵C_SQ[k]是m*n的矩阵;生成步骤,生成空的m*n的矩阵B并生成一个空数据T;第一还原步骤,针对每个单元矩阵C_SQ[k],按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对基础元素组顺序表SQ的每个基础元素组SQ[k],当单元矩阵C_SQ[k]中的元素C_SQ[k]ij=1时,使得矩阵B的元素Bij=SQ[k],其中,i∈[0,m-1],j∈[0,n-1];第二还原步骤,按照矩阵B中的元素的顺序,顺序地将矩阵B中的元素排列在所述数据T中以得到还原的数据T。

还提供一种非瞬时的计算机可读介质,在其上存储了一个或多个计算机可读指令,使得在被运行时进行根据本发明的各个方面的方法。

还提供一种计算机可执行程序,其在被运行时进行根据本发明的各个方面的方法。

如此,可以使得从所述数据矩阵C中提取的针对所述预定顺序的基础元素组的单元矩阵尽可能地成为稀疏矩阵,即尽可能地得到更多的稀疏矩阵,从而为后续的进一步的数据编码、压缩、存储等获得计算量小、计算速度快、压缩率高、编码和压缩后的数据量小、存储量小等诸多优点。而且,根据本发明的各个实施例的数据编码方法对数据进行无损处理,在解码端可以无损地解码出完整的原始数据,获得非常好的数据解码效果,而不丢失原始数据的信息。因此,应用范围非常广泛,且效果极佳。

附图说明

图1示出应用根据本发明的实施例的包括编码器和解码器的通信系统的硬件场景图。

图2示出了图1的所示的编码器和解码器中的任何一个的示例的硬件配置图。

图3示出了根据本发明的一个实施例的数据编码方法的示例流程图。

图4示出了根据本发明的另一实施例的数据解码方法的示例流程图。

图5示出了从真实图像转换为稀疏矩阵的一个示例图。

图6示出了基础元素集合P的示例、h=1和h=2的情况下的基础元素组集合Q的示例、h=1和h=2的情况下的基础元素组顺序表SQ的示例的图。

图7A示出了示例的待处理数据R。

图7B示出了将图7A所示的待处理数据R转换为m*n(例如,m=16,n=16)数据矩阵C的示例。

图8A-8D示出了按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组的示例。

具体实施方式

现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。

为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。

注意,接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为示出和描述的具体的外形、硬件、连接关系、步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。

图1示出应用根据本发明的实施例的包括编码器和解码器的通信系统的硬件场景图。

如图1所示的通信系统包括编码器100、信道、和解码器200。

众所周知,通信系统的编码器100进行的编码可以包括信源编码和信道编码。信源编码指的是主要是利用信源原始数据的统计特性,尽可能去掉更多的信源冗余信息,从而在发送端减小编码后的数据量,提高数据压缩率,以提高通信系统高效性。而信道编码指的是为了保证通信系统通过信道的传输可靠性,克服信道中的噪声和干扰,其根据一定的规律在待发送的信息码元中加入一些检错或纠错码元,在获得端利用这些检错或纠错码元与信息码元之间的检错和纠错规律,发现差错和纠正差错,以提高信息码元传输的可靠性。

在信源编码中,压缩编码可分为无损压缩编码(即,编码是可逆的,即从压缩编码后的数据可以完全恢复原来的图像,信息没有损失)和有损压缩编码(即,编码是不可逆的,即从压缩编码后的数据无法完全恢复原来的图像,信息有一定损失)。

在信源编码中,通常希望在不损失信息的情况下(即无损编码的情况下)尽可能地压缩数据。

而且,通常认为数据的冗余信息越多,则压缩率能越高。但是,某些实际的数据本身就并不携带很多的冗余信息,因此,压缩率一直难以进一步提高。而本发明提出了一种改进的在无信息损失的情况下又使得编码或压缩后的数据的量进一步减小的技术。

图2示出了图1的所示的编码器和解码器中的任何一个的示例的硬件配置图。

编码器或解码器可以包括处理器(H1);存储器(H2),耦合于所述处理器(H1),且在其中存储计算机可执行指令,用于在由所述处理器执行时进行如下将要描述的根据本发明的各个实施例的各个步骤。

处理器(H1)可以包括但不限于例如一个或者多个处理器或者或微处理器等。存储器(H2)可以包括但不限于例如,随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、软碟、固态硬盘、可移动碟、CD-ROM、DVD-ROM、蓝光盘等。除此之外,编码器或解码器还可以包括、但不限于数据总线(H3)、输入/输出(I/O)总线(H4),显示器(H5)以及输入/输出设备(H6)(例如,键盘、鼠标、扬声器等)等。处理器(H1)可以通过I/O总线(H4)经由有线或无线网络(未示出)与外部设备(H5、H6等)通信。

当然,实际上,通常可以通过将如下将要描述的根据本发明的各个实施例的各个步骤通过编程固化到数字处理芯片上,以形成专用于进行编码和/或解码的专用集成电路。如此可以进一步加快数据处理的速度以满足各种实时性需求的应用。

如下将示例性而非限制性地描述根据本发明的数据编码方法和数据解码方法的各个实施例。

图3示出了根据本发明的一个实施例的数据编码方法的示例流程图。

如图3所示的数据编码方法300包括:第一获得步骤301,获得基础元素集合P,其中所述基础元素集合P包括多个基础元素;第二获得步骤302,获得基础元素组集合Q和基础元素组顺序表SQ,其中所述基础元素组集合Q中的基础元素组是由基础元素集合P中的基础元素组成的第一预定大小的基础元素组,所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第三获得步骤303,获得待处理数据R;转换步骤304,将所述待处理数据R转换为m*n的数据矩阵C,其中m和n是正整数,所述数据矩阵C中的每个元素Cij被取值为从待处理数据R中按顺序截取的第一预定大小的数据组,其中i和j是大于或等于0的整数,i∈[0,m-1],j∈[0,n-1],Cij∈Q;提取步骤305,按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组。在一个实施例中,所述提取步骤305可以包括:按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对每个基础元素组SQ[k],从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组SQ[k]的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=SQ[k]时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

如此,可以使得从所述数据矩阵C中提取的针对所述预定顺序的基础元素组的单元矩阵尽可能地成为稀疏矩阵,即尽可能地得到更多的稀疏矩阵,从而为后续的进一步的数据编码、压缩、存储等获得计算量小、计算速度快、压缩率高、编码和压缩后的数据量小、存储量小等诸多优点。而且,根据本发明的各个实施例的数据编码方法对数据进行无损处理,在解码端可以无损地解码出完整的原始数据,获得非常好的数据解码效果,而不丢失原始数据的信息。因此,应用范围非常广泛,且效果极佳。

稀疏矩阵指的是该矩阵中的非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有什么规律,优选地、但不是限制,如果非零元素的数量与矩阵的所有元素的数量的比值小于或等于0.05,则该矩阵为稀疏矩阵(sparse matrix)。换句话说,在矩阵中只有0和1的二元数据的情况下,稀疏矩阵就是使得矩阵中的1尽可能地少,使矩阵中的0尽可能地多。稀疏矩阵的好处在于其计算量更小且计算速度更快,因为只需要处理1,另一方面,在数据编码和压缩的数据量方面,稀疏矩阵也起着很重要的作用,因为可以仅对少量的1进行编码而去除冗余的0元素,从而达到减少编码和压缩后的数据量的效果。再者,在数据存储方面,稀疏矩阵也可以使得仅为少量的1分配一个存储空间,而对零元素不分配存储空间,从而达到缩小数据存储空间的效果。

当然,由于待处理的实际数据的实际情况不同,最终得到的单元矩阵不一定都是稀疏矩阵,但是,根据本发明的实施例得到的单元矩阵成为稀疏矩阵的概率比使用其他方法要大得多,特别是在基础元素组的数量很多(例如1000个)的情况下,那么每个基础元素组在从实际数据转换得到的矩阵C中出现的概率大约为1/1000,因此,显然,通过应用单元矩阵的取值规则:如果数据矩阵C中的元素Cij=一个基础元素组SQ[k]时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0,那么每个基础元素组对应的单元矩阵中的1的个数占单元矩阵的全部元素个数的比值大约是1/1000,可见对应的单元矩阵中的0的个数占单元矩阵的全部元素个数的比值高达大约999/1000。因此,根据本发明的实施例更容易使得最终提取得到的单元矩阵成为稀疏矩阵。

另外,在本发明的实施例中,将所述基础元素组集合Q中的基础元素组构造为由基础元素集合P中的基础元素组成的第一预定大小的基础元素组,也可以通过可变地调整第一预定大小,来达到更容易得到稀疏矩阵的目的。具体地,例如,基础元素集合P=[0,1],而基础元素组集合Q中的基础元素组是由例如第一预定大小为4的基础元素组(不管是长度为4的数据串,还是2*2的矩阵),则基础元素组集合Q中的基础元素组的数量可以是24=16个。则每个基础元素组对应的单元矩阵中的1的个数占单元矩阵的全部元素个数的比值大约是1/16。而当第一预定大小越大,则基础元素组集合Q中的基础元素组的数量可以越多,而每个基础元素组对应的单元矩阵中的1的个数占单元矩阵的全部元素个数的比值越小,则越可能使得最终提取得到的单元矩阵成为稀疏矩阵。

如上所述,稀疏矩阵在数据处理、编码、压缩、存储、传输等各方面都具有极大的优势,因此,根据本发明的实施例的更可能得到稀疏矩阵的技术方案能够获得极好的数据处理、编码、压缩、存储、传输等效果。

从待处理数据R转换成数据矩阵C的转换步骤304和提取单元矩阵的提取步骤305的具体过程的示例可以参考图5,图5示出了从真实图像的数据R转换为一个单元矩阵的一个示例图。

假设,一个真实的图像数据R(未示出)假设是100*60像素。假设基础元素集合P是白色和黑色的像素,基础元素组集合Q是2*2的像素组(即,第一预定大小为2*2的块),可以包括

在此,基础元素组集合Q中的基础元素组是由基础元素集合P中的所有基础元素能够组成的第一预定大小的所有的不相同的排列组合。但是,在其他实施例中,基础元素组集合Q中的基础元素组也可以是从所有的不相同的排列组合中选取一部分,例如,在已知要处理的图像中只包括某几种排列组合时或已知某几种排列组合在现实中出现的概率较大等。

然后,在将一个100*60像素的待处理的真实图像数据R(未示出)转换为例如25*15的数据矩阵C(如图5的上部所示是白色和黑色的25*15的块组成的矩阵C)(即m=25,n=15)的步骤中,可以数据矩阵C中的每个元素Cij被取值为从待处理数据R中按顺序截取的第一预定大小(在该例子中2*2)的数据组。图5的上部所示的矩阵C中每个元素就是2*2的像素组。也就是说,在该例子中,图5的上部所示的矩阵C中每个元素是和中的一种。由于该真实的图像本身就是矩阵形式的,因此该图像的每2*2的像素组都可以直接对应于转换后的矩阵C中的一个元素。也就是说,矩阵C的m和n可以与真实的图像的按顺序截取2*2的像素组之后得到的各个图像块在垂直和水平方向上的数量相同。

于是,将该真实的图像(未示出)转换成矩阵C就直接得到图5的上部所示的黑白块的矩阵,其中,矩阵的元素之一、白色的块代表矩阵的元素之一、黑色的块代表

然后,在提取步骤中,按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组。假设基础元素组顺序表SQ的顺序是……。那么,按顺序排在第一个的是基础元素组则针对该基础元素组如果数据矩阵C中的元素时,则单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。如此,就可以得到图5的下部所示的0和1的单元矩阵。该单元矩阵从某种程度上可以认为是一种稀疏矩阵。

以上举例了当第一预定大小的基础元素组是由基础元素组成的块或矩阵,而待处理数据R也是数据块或矩阵(图像就是一种数据块或矩阵形式)的情况。但是本发明不限于此。本发明还可以应用于如下领域:例如第一预定大小的基础元素组是由基础元素组成的序列,而所述待处理数据R是数据序列。

在实际应用中,数据序列可以应用于文字串、字母串、颜色串等,数据块、数据矩阵、数据区域可以应用于图像等,而任意维度、任意形状的数据个体可以应用于二维、三维甚至四维等物体。

在广泛应用的数据序列领域(例如针对文字串的编码)中,当待处理数据R是长度为LR的待处理数据序列、第一预定大小的基础元素组是长度h的基础元素序列时,其中,h和LR是正整数,所述转换步骤包括:使得所述数据矩阵C中的每个元素Cij被取值为从待处理数据序列R中按顺序截取的长度为h的子序列,且LR≤m×n×h。

下面结合图6-图8D来描述在数据序列领域的本发明的所述实施例。

图6示出了基础元素集合P的示例、h=1和h=2的情况下的基础元素组集合Q的示例、h=1和h=2的情况下的基础元素组顺序表SQ的示例的图。

如图6所示,例如基础元素集合P:[A,B,C,D]。例如,h=1的情况下的基础序列集合Q:[A,B,C,D]。h=1的情况下的序列顺序表SQ:[D,C,B,A]。而h=2的情况下的基础序列集合Q:[AA,AB,AC,AD,BA,BB,BC,BD,CA,CB,CC,CD,DA,DB,DC,DD]。h=2的情况下的序列顺序表SQ:[AC,AA,AB,BA,AD,BB,BD,BC,CA,CB,CC,CD,DA,DD,DB,DC]。

可见,当h=1时,所述基础元素组集合Q与所述基础元素集合P可以是相同的。且在此,基础元素组集合Q中的基础元素组是由基础元素集合P中的所有基础元素能够组成的长度h=2的所有的不相同的排列组合。当然,在其他实施例中,基础元素组集合Q中的基础元素组也可以是所有的不相同的排列组合中的一部分。

注意,基础序列集合Q与序列顺序表SQ的区别主要在于,基础序列集合Q中的各个元素可以是没有顺序的,而序列顺序表SQ中各个元素有预定的顺序。

在一个实施例中,所述在所述基础元素组顺序表SQ中的基础元素组SQ[k]的顺序可以包括:公认的顺序;按基础元素组SQ[k]的出现概率从小到大排列的顺序或其他顺序等。例如,序列顺序表SQ的顺序可以是公认的A、B、C、D,或预定的D、C、B、A。序列顺序表SQ的顺序还可以是按A、B、C、D的出现概率从小到大排列的顺序。具体地,例如,根据统计结果,在文档中,C出现的概率最小,D其次,B再次,A出现的概率最大,则序列顺序表SQ的顺序可以是出现概率从小到大的C、D、B、A。这样做的原因是考虑将出现概率最大的A放在顺序的最后,使得按从前往后的顺序针对C、D、B都进行了单元矩阵的提取之后,出现概率最大,即在当前待处理数据序列R中A出现的概率也可能最大,即在当前待处理数据序列R中A的元素可能最多,因此,在得到了针对C、D、B都进行了单元矩阵之后,可以不经过具体的提取步骤来自动得到针对A的单元矩阵,通过自动地使得该单元矩阵中的对应元素中取1的元素的位置是除了已得到的其他单元矩阵中各个取1的元素的位置的剩余位置,且该单元矩阵中的除了取1的元素以外的元素直接自动取0。这样可以省去针对出现元素最多的A的一一取1的计算成本。

图7A示出了示例的待处理数据R。例如,待处理数据序列R为ABBBBBBBBBBCBBBBBDBBABBDBBBBBBCBBBBDBBBBBBBBBBBBBBBBBBBBBABBDBBBBBCBBBBBBBBBBBBCBBBBBBDBBBBBBBBBBBBDBBBBBBBBBABBBBBBBBBBBBDBBBBBBBBBBBBCBBBBBBABBABBBBBBBBBBBBBBBBBBBABBBBBBBBBBBBDBBBBBBBBBABBBBBBBBBBBDBBBBBBBBBBBBBBBBBBBBDBBCBBBBBBABBBBBBBCBBBABBBCBBBBBBBB。在此,待处理数据序列R的长度LR是例如256。

以下为了简化描述,取h=1。

图7B示出了将图7A所示的长度为LR的待处理数据R转换为m*n(例如,m=16,n=16)数据矩阵C的示例。在转换步骤304中,可以使得所述数据矩阵C中的每个元素Cij被取值为从待处理数据序列R中按顺序截取的长度为h的子序列,且LR≤m×n×h。

在一个实施例中,可以确定所述数据矩阵C的m和n的大小,以使得m×n×h的值与LR的差值最小。由于h=1,而待处理数据R的长度LR为256,因此,可以设计数据矩阵C的大小为16*16,即m=16,n=16,因此m×n×h的值与LR的差值为0,是最小的。

但假如在每次处理了长度为256的待处理数据R,在要处理的文字串最后,只剩下250个元素、即长度为250的待处理数据,则可以在将长度为250的待处理数据转换为16*16的矩阵时,将剩余的未被取值的6个元素Cij取值为空、或例外数据、或出现概率最小的基础元素组SQ[k],其中,该例外数据与每个基础元素组SQ[k]都不同。这样可以使得在后续的单元矩阵提取过程中,不会将该没有待处理数据值的例如空、或例外数据提取成1,即剩余的6个元素会被提取成0,这样使得提取的单元矩阵更稀疏。该而将剩余的未被取值的6个元素Cij取值为出现概率最小的基础元素组SQ[k],例如处理为都是出现概率最小的元素C,则在对每个元素提取单元矩阵时,这剩余的6个元素会被提取成1的概率最小,即更大概率会被提取为0,这样使得提取的单元矩阵更稀疏的概率更大。

在一个实施例中,可以根据对数据处理的要求,自适应地选择每次待处理的数据R的大小,以确定所述数据矩阵C的m和n的大小。例如,要编码的整个数据是65536个元素,而可以选择每次待处理的数据R的大小都是256,这样需要处理256次,但也可以选择每次待处理的数据R的大小都是1024,这样需要处理64次。可以根据数据处理的大小、速度、计算复杂度、计算速度等方面的需求来自适应地选择每次待处理的数据R的大小,从而进一步确定所述数据矩阵C的m和n的大小。在另一实施例中,每次选择待处理的数据R的大小还可以是可变的。

另外,在一个实施例中,优选地,数据矩阵C的m与n的比值大于1/2且小于2。即尽可能使得数据矩阵C更接近正方形。因为,在此,将长串的数据序列尽可能地分布在更接近正方形的区域内,在后续提取单元矩阵时可以得到更大、更区域正方形或长方形的全0的连续区域,而减少长条形的全0区域。这样得到的这种形状的稀疏的单元矩阵在后续的编码、压缩、存储、传输等方面可以体现出数据量更小、计算量更小、计算速度更快等的优势。

如图7B所示,可以使得所述数据矩阵C中的每个元素Cij被取值为从待处理数据序列R中按顺序截取的长度为1的子序列得到该16*16的矩阵。

图8A-8D示出了按所述基础元素组顺序表SQ中的基础元素组的所述预定顺序,从所述数据矩阵C中针对所述预定顺序的所有基础元素组提取各个单元矩阵作为单元矩阵组的示例。

如图6所示,h=1的情况下的序列顺序表SQ:[D,C,B,A]。因此,按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对第一个基础元素组D,从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组D的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=D时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

于是,从图7B中可见D所在的位置是(2,2),(2,8),(3,4),(4,13),(6,7),(7,4),(8,11),(13,3),(13,9),(14,14),因此,如图8A所示,针对D提取的单元矩阵中的元素1所在的位置也是(2,2),(2,8),(3,4),(4,13),(6,7),(7,4),(8,11),(13,3),(13,9),(14,14)。而其余位置的元素为0。

从图8A可见,1的个数是10个,而0的个数则是246个,这显然是一个稀疏矩阵。

而同理,针对第二个基础元素组C,从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组C的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=C时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

于是,从图7B中可见C所在的位置与图8B所示的针对C提取的单元矩阵中的元素1所在的位置相同。而针对C提取的单元矩阵中的其余位置的元素为0。

而同理,针对第三个基础元素组B,从所述数据矩阵C中提取基础元素组顺序表SQ中的基础元素组B的单元矩阵C_SQ[k],其中,单元矩阵C_SQ[k]是m*n矩阵,且单元矩阵C_SQ[k]中的每个元素C_SQ[k]ij的取值规则是:如果数据矩阵C中的元素Cij=B时,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=1;否则,单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij=0。

于是,从图7B中可见B所在的位置与图8C所示的针对B提取的单元矩阵中的元素1所在的位置相同。而针对B提取的单元矩阵中的其余位置的元素为0。

而同理,针对最后一个基础元素组A,可以无需进行最后一个具体的提取步骤,而自动生成最后一个单元矩阵C_SQ[k],其中所述最后一个单元矩阵C_SQ[k]中的对应元素C_SQ[k]ij中取1的元素的位置是除了已得到的其他单元矩阵C_SQ[k]中各个取1的元素的位置的剩余位置,且所述最后一个单元矩阵C_SQ[k]中的除了取1的元素以外的元素取0。也就是说,图8D所示的针对基础元素组A的单元矩阵中的取1的元素的位置可以是除了已得到的图8A-8C中的其他单元矩阵中各个取1的元素的位置的剩余位置。这样,可以省略具体的提取步骤,进一步加快计算速度。

于是,从图7B中可见A所在的位置与图8D所示的针对A提取的单元矩阵中的元素1所在的位置相同。而针对A提取的单元矩阵中的其余位置的元素为0。

如此,就得到了4个分别针对D、C、B、A的单元矩阵。除了针对B的单元以外,其他3个都是稀疏矩阵。如前所述,稀疏矩阵能够获得极好的数据处理、编码、压缩、存储、传输等效果。

然后,处理完了如图6所示的待处理数据序列R之后,可以再取下一段待处理数据序列进行处理,即,重复第三获得步骤303、转换步骤304和提取步骤305。如此,可以对所有要处理的数据内容都提取成很多的单元矩阵组成的单元矩阵组。然后,可以对所述单元矩阵组串行或并行地进行:数据压缩操作;数据编码操作;数据加密操作;数据传输操作等。在对单元矩阵组并行进行操作时,可以并行地对所有单元矩阵进行这些操作,使得处理速度进一步加快。

在一个实施例中,可以对所述单元矩阵组串行或并行地进行例如基于内容的适应性二元算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)的数据压缩操作。CABAC是一种算术编码,其基本原理是将编码的消息表示成实数0和1之间的一个区间,消息越长,编码表示它的区间就越小,表示这一区间所需的二进制位就越多。由于CABAC是一种常见的数据编码/压缩算法,可以针对0、1的数据进行编码/压缩。因此,将CABAC应用于根据本发明的各个实施例得到的具有0、1数据的单元矩阵,能够将这些单元矩阵进行进一步地数据编码和压缩,从而进一步缩小数据量,使得在存储、传输等等操作中取得更好的效果。

因此,根据本发明的各个实施例,可以使得尽可能地得到更多的稀疏矩阵,从而为后续的进一步的数据编码、压缩、存储等获得计算量小、计算速度快、压缩率高、编码和压缩后的数据量小、存储量小等诸多优点。而且,根据本发明的各个实施例的数据编码方法对数据进行无损处理,在解码端可以无损地解码出完整的原始数据,获得非常好的数据解码效果,而不丢失原始数据的信息。因此,应用范围非常广泛,且效果极佳。

返回图4,图4示出了根据本发明的另一实施例的数据解码方法的示例流程图。

通常可以可逆地进行数据解码。具体地,图4所示的数据解码方法400包括:第四获得步骤401,获得基础元素组顺序表SQ,且所述基础元素组顺序表SQ中的基础元素组SQ[k]是相互不同的基础元素组,且按预定顺序排列,且所述基础元素组顺序表SQ的长度为LSQ,LSQ是正整数,其中,k∈[0,LSQ-1];第五获得步骤402,获得单元矩阵组C_SQ,单元矩阵组C_SQ中的每个单元矩阵C_SQ[k]是m*n的矩阵;生成步骤403,生成空的m*n的矩阵B并生成一个空数据T;第一还原步骤404,针对每个单元矩阵C_SQ[k],按所述基础元素组顺序表SQ的基础元素组SQ[k]的顺序,针对基础元素组顺序表SQ的每个基础元素组SQ[k],当单元矩阵C_SQ[k]中的元素C_SQ[k]ij=1时,使得矩阵B的元素Bij=SQ[k],其中,i∈[0,m-1],j∈[0,n-1];第二还原步骤405,按照矩阵B中的元素的顺序,顺序地将矩阵B中的元素排列在所述数据T中以得到还原的数据T。

在一个实施例中,所述第一还原步骤404可以包括:如果针对除了最后一个单元矩阵的其他单元矩阵C_SQ[k]还原得到了矩阵B,则无需再进行最后一个具体的第一还原步骤,而自动将矩阵B中未取值的元素取值为基础元素组顺序表SQ中按顺序的最后一个基础元素组SQ[k]。

在一个实施例中,在所述第一还原步骤404中,当单元矩阵C_SQ[k]中的元素C_SQ[k]ij=0时,则可以使得矩阵B的元素Bij为空或不对矩阵B的元素Bij取值。

该方法400还可以包括:重复所述第五获得步骤、生成步骤、第一还原步骤和第二还原步骤,直到所有的单元矩阵组处理完毕,并舍弃数据T中的未取值的元素以得到还原的数据T。

如此,由于根据本发明的各个实施例的数据编码方法对数据进行的是无损处理,因此在解码端也可以无损地解码出完整的原始数据,获得非常好的数据解码效果,而不丢失原始数据的信息。因此,应用范围非常广泛,且效果极佳。

当然,上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。

注意,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

本公开中的步骤流程图以及以上方法描述仅作为例示性的例子并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。

另外,本文中的各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置以构思新的实施例,而这些新的实施例也包括在本发明的范围内。

以上所述的方法的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路、专用集成电路(ASIC)或处理器。

可以利用被设计用于进行在此所述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合而实现或进行所述的各个例示的逻辑块、模块和电路。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的一个或多个微处理器或任何其他这样的配置。

结合本公开描述的方法或算法的步骤可以直接嵌入在硬件中、处理器执行的软件模块中或者这两种的组合中。软件模块可以存在于任何形式的有形存储介质中。可以使用的存储介质的一些例子包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器、EPROM存储器、EEPROM存储器、寄存器、硬碟、可移动碟、CD-ROM等。存储介质可以耦接到处理器以便该处理器可以从该存储介质读取信息以及向该存储介质写信息。在替换方式中,存储介质可以与处理器是整体的。软件模块可以是单个指令或者许多指令,并且可以分布在几个不同的代码段上、不同的程序之间以及跨过多个存储介质。

在此公开的方法包括用于实现所述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。

所述的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、软碟和蓝光盘,其中碟通常磁地再现数据,而盘利用激光光学地再现数据。

因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。

软件或指令也可以通过传输介质而传输。例如,可以使用诸如同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或诸如红外、无线电或微波的无线技术的传输介质从网站、服务器或者其他远程源传输软件。

此外,用于进行在此所述的方法和技术的模块和/或其他适当的手段可以在适当时由用户终端和/或基站下载和/或其他方式获得。例如,这样的设备可以耦接到服务器以促进用于进行在此所述的方法的手段的传送。或者,在此所述的各种方法可以经由存储部件(例如RAM、ROM、诸如CD或软碟等的物理存储介质)提供,以便用户终端和/或基站可以在耦接到该设备或者向该设备提供存储部件时获得各种方法。此外,可以利用用于将在此所述的方法和技术提供给设备的任何其他适当的技术。

其他例子和实现方式在本公开和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。而且,如在此使用的,包括在权利要求中使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。

可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

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