涉及符号压缩的数据的源编码和解码方法及装置制造方法及图纸

技术编号:14082835 阅读:186 留言:0更新日期:2016-11-30 20:55
提供了一种在编码器中对输入数据(D1)进行编码以生成对应的编码数据(E2)的方法。该方法包括:(a)将输入数据(D1)拆分和/或变换为一个或多个数据块,并且对存在于输入数据(D1)中的符号进行分析,并且根据符号在一个或多个数据块中的出现对符号进行压缩;(b)为存在于一个或多个数据块中的符号生成一个或多个代码表和/或一个或多个频率表和/或一个或多个代码字长度表;(c)计算一个或多个索引集,该索引集将每个数据块中的符号和/或经压缩的符号关联至一个或多个代码表和/或一个或多个频率表和/或一个或多个代码字长度表中的条目;以及(d)将一个或多个索引集与一个或多个频率表和/或一个或多个代码表和/或指示所述一个或多个表的信息一同集合以用于生成编码数据(E2)。还提供了使用该方法的编码器(50)以及对应的解码器(60),其中编码器(50)与解码器(60)共同形成编解码器(100)。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及对输入数据进行编码以生成对应的编码数据的方法。另外,本公开还涉及对上述编码数据进行解码以生成对应的解码输出数据的方法。此外,本公开还涉及可操作为实现上述方法的编码器和解码器。附加地,本公开涉及包括其上存储有计算机可读指令的非暂时性计算机可读存储介质的计算机程序产品,其中计算机可读指令可由包括用于执行上述方法的处理硬件的计算机化装置执行。
技术介绍
大体上,如图1所示,对输入数据D1进行编码以生成对应的编码输出数据E2的已知编码方法涉及将一个或多个变换T应用到输入数据D1,以生成对应的经变换的编码输出数据E2,其中经变换的编码输出数据E2具有与其相关联的编码表数据C信息,该信息指示定义所使用的一个或多个变换T的一个或多个编码表。经变换的编码数据E2和编码表数据C信息(统称为编码输出数据E2)常通过数据载体和/或数据通信网络传输至一个或多个解码器,该一个或多个解码器可操作为应用一个或多个逆变换T-1以对编码输出数据E2进行解码,从而生成对应的解码数据D3。通常希望相对于输入数据D1压缩编码输出数据E2,例如以减少传输编码输出数据E2时的通信网络容量负荷。另外,还希望以基本上无损的方式对编码输出数据E2进行压缩,使得解码数据D3是包含在输入数据D1中的信息的准确复制。当编码表数据C信息相对于经变换的编码数据E2具有明显大的尺寸时,即当编码表数据C信息对应于经变换的编码数据E2中的大量数据开销时,编码输出数据E2关于输入数据D1可实现的数据压缩会缺乏效率。存在若干已知的对输入数据D1进行编码以生成编码输出数据E2的方法。例如,常使用已知的哈夫曼编码或其他VLC编码方法来压缩各种类型的数据。另外,使用算术编码或区间编码来压缩输入数据也变得越来越普遍,但是在如下的情形中甚是缺乏效率:(i)输入数据D1的频率表对可操作为对输入数据D1进行编码以生成对应的编码输出数据E2的编码器以及可操作为对编码输出数据E2进行解码的解码器并非是已知的;以及(ii)输入数据的量相对小,例如在输入数据D1以小数据段或数据块的形式传输的情况下,其中每个数据段或数据块附有对应的频率表。如上所述,如果不能通过相对少的识别参数从可能的频率表列表(例如解码器在其本地所存储的)中进行选择,则由于传递一个或多个频率表消耗相当大的数据空间而导致产生上述低效性。另外,相比于合适的代码表,从这种列表中同样更不可能找到合适的频率表。通常,待编码的输入数据D1在本地还可能是经常变化的,例如在通过通信网络进行传输时其经过变换以符合通信网络的空间本地数据标准。存在可用于在传输源自符号的编码数据内容的同时传递代码表或频率表的已知方法。大多数已知方法采用直接传递符号的哈夫曼树或频率的方法。由于这种已知方法需要将大量信息从编码器传递至对应的解码器,因此其并不令人十分满意。另外,也存在用于传递代码表符号的长度的已知方法,例如,在已被弃用的已知的IPP库中所采用的方法;其中使用通过“HuffLenCodeTablePacK”压缩代码表并且通过“HuffLenCodeTableUnpack”重新将其解压缩的方法;然而,该方法不是很令人满意甚至有时在编码过程中增加数据尺寸。此外,该方法还需要256个符号,并且所有0至255的符号具有非零的代码字长度。传递代码表的方法是当前可用于例如通过哈夫曼编码技术生成的像素代码的方法中仍然是最有效的传递机制。当哈夫曼树从编码器传递至对应的解码器时,从编码器生成的代码符号通常在编码器和解码器中是相似的。当仅传递频率表时,则需要在编码器和解码器中使用相似的算法,以在需要哈夫曼树的情况下从频率表生成真正的哈夫曼树,使得在解码器中能够以恰当的方式对符号进行解码。如果传递代码表符号的长度,则在编码器和解码器中还需要用于从符号长度至频率表的变换的类似方法,从而能够以恰当的方式对符号进行解码。对于算术编码和区间编码而言,将符号长度从编码器传输至解码器不是传递频率的实用方法,因为他们设计为支持更精确的频率表而不仅用于传输代码符号的长度。代码符号的长度也可用于算术编码和区间编码。然而,如果随后不对表进行针对后续数据的适应性更新,则这些方法例如相比于哈夫曼编码并不具有优势。传递表示概率的信息通常在区间编码或算术编码中相比于哈夫曼编码产生更优的编码结果。符号的概率可通过将符号出现频率除以符号的出现频率之和(即等于符号的数量)来计算。这种概率的传递有益地通过经缩放的概率值来实现。经缩放的概率值可通过将原始符号概率值乘以有利地为2值的幂(即2n,其中n为整数)的整数,并且将其四舍五入为最接近的整数值来计算。这些为整数的经缩放的概率之和等同为与乘数值相同。另外,有益地为原本未分配其自身非零的经缩放概率值的符号创建转义代码符号。这意味着需要转义代码的那些符号具有比能够通过所选的乘数值更小的概率。也可能在不使用通过两个不同机制的转义代码的情况下创建经缩放的概率。可增加乘数值,然后可计算出新的概率值。还可将用于可用符号的经缩放的概率值从等于零提升为等于一。该概率值的提升需要通过降低其他符号的概率值来补偿概率值的增加。这么做是为了使概率之和与乘数值完全相同。这个过程未能使概率值尽可能得优化,但是不需要转义符号,并且在某些情况下,这可能仍是最优编码方法。符号的长度或概率值定义可用于采用可变长度编码符号方法的频率表的粗略估计,例如哈夫曼编码、区间编码、算术编码以及任何其他可变长度编码方法。应理解,在需要时,经缩放的概率表可直接用作符号频率的粗略估计,并且在使用前首先需要将符号长度转换为符号频率的粗略估计。稍后将在描述数据编码和表传递时说明符号长度到频率表的转换。很多已知的对数据进行编码的实用方法完全不使用优化的代码表,即他们使用固定的代码表来对数据进行编码以生成对应的编码数据,并且随后使用固定的代码表对编码数据进行解码。有时,通过基于所传递符号的适应性方法来更新表。在某些已知的方法中,有时在编码器中使用若干不同的代码表(可替换的频率表)来对数据进行编码,并且相应地在解码器中对编码数据进行解码,其中将定义所选择的代码表、概率表或频率表的索引作为信息从编码器传递至解码器。在某些方法中,对于亮度和颜色通道、块间和块内或者对不同类型的数据使用不同的表,但是,不同的表以低效的方式被传输,例如,本文中引用以下互联网网站(维基网):http://en.wikipedia.org/wiki/Huffman_coding。在解压期间,使用基于哈夫曼的方法,必须重建哈夫曼树。在字符频率相对可预测的最简单情形中,易于重建树,甚至可在每个压缩循环中进行统计调整,从而每次以至少某些程度的压缩效率为代价地重复使用;可替代地,必须预先(即提前)发送哈夫曼树信息。预先准备与编码为压缩数据输出流的符号有关的频率计数的简单方法的主要缺点在于:其实际上使压缩数据中的数据量至少增加好几千字节(KB),因此这种简单方法具有极小的实际用途。如果通过标准编码压缩数据,则可仅利用B2B比特的信息来精确地重建压缩模型,其中B为每个符号的比特数,例如,对于8比特需要2kB。另一方法简单地通过逐个比特的方式预先准备哈夫曼树以得到压缩的输出流。例如,假设数值0表示母节点并且1表示叶节点,每当碰到本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/61/201580009593.html" title="涉及符号压缩的数据的源编码和解码方法及装置原文来自X技术">涉及符号压缩的数据的源编码和解码方法及装置</a>

【技术保护点】
一种在编码器(50)中对输入数据(D1)进行编码以生成对应的编码数据(E2)的方法,其特征在于,所述方法包括:(a)将所述输入数据(D1)拆分和/或变换为一个或多个数据块,对存在于所述输入数据(D1)中的符号进行分析,并且根据所述符号在所述一个或多个数据块中的出现对所述符号进行压缩;(b)为存在于所述一个或多个数据块中的所述符号,生成一个或多个代码表、和/或一个或多个频率表、和/或一个或多个代码字长度表、和/或一个或多个概率表;(c)计算一个或多个索引集,所述一个或多个索引集使每个数据块中的符号和/或经压缩的符号关联至所述一个或多个代码表、和/或所述一个或多个频率表、和/或所述一个或多个代码字长度表、和/或一个或多个概率表中的条目;以及(d)将所述一个或多个索引集与所述一个或多个频率表、和/或所述一个或多个代码表、和/或所述一个或多个代码字长度表、和/或所述一个或多个概率表、和/或指示一个或多个表的信息一同集合,以用于生成所述编码数据(E2)。

【技术特征摘要】
【国外来华专利技术】2014.02.20 GB 1403039.91.一种在编码器(50)中对输入数据(D1)进行编码以生成对应的编码数据(E2)的方法,其特征在于,所述方法包括:(a)将所述输入数据(D1)拆分和/或变换为一个或多个数据块,对存在于所述输入数据(D1)中的符号进行分析,并且根据所述符号在所述一个或多个数据块中的出现对所述符号进行压缩;(b)为存在于所述一个或多个数据块中的所述符号,生成一个或多个代码表、和/或一个或多个频率表、和/或一个或多个代码字长度表、和/或一个或多个概率表;(c)计算一个或多个索引集,所述一个或多个索引集使每个数据块中的符号和/或经压缩的符号关联至所述一个或多个代码表、和/或所述一个或多个频率表、和/或所述一个或多个代码字长度表、和/或一个或多个概率表中的条目;以及(d)将所述一个或多个索引集与所述一个或多个频率表、和/或所述一个或多个代码表、和/或所述一个或多个代码字长度表、和/或所述一个或多个概率表、和/或指示一个或多个表的信息一同集合,以用于生成所述编码数据(E2)。2.如权利要求1所述的方法,其特征在于,一个或多个所述表中的至少一个是预先定义的。3.如权利要求1或2所述的方法,其特征在于,所述方法包括:生成一个或多个所述表,以用于在解码器(60)中的解码期间根据其对称性和提供至所述解码器(60)的对应的对称指示性信息而重新生成一个或多个所述表。4.如权利要求1、2或3所述的方法,其特征在于,所述方法包括:以一个或多个所述表中的至少一个能够被存储以用于后续再使用的方式,传递一个或多个所述表中的至少一个。5.如权利要求1、2、3或4所述的方法,其特征在于,所述方法包括:将一个或多个数据压缩算法应用在步骤(d)中以生成所述编码数据(E2)。6.如权利要求5所述的方法,其特征在于,所述一个或多个数据压缩算法包括以下中的至少一种:哈夫曼编码、VLC、熵编码、算术编码、区间编码。7.如权利要求1至6中的任一项所述的方法,其特征在于,所述方法包括:将所述输入数据(D1)拆分为多个数据块,并且使用并行架构处理器以基本上并发的方式处理所述多个数据块。8.如权利要求1至7中的任一项所述的方法,其特征在于,所述方法包括:根据组合在一起的多个数据值生成所述一个或多个索引集。9.如权利要求8所述的方法,其特征在于,所述索引来源于包含R、G和B像素值或Y、U和V像素值的一个或多个RGB像素。10.如权利要求8或9所述的方法,其特征在于,所述方法包括:根据所述数据块被包含在所述编码数据(E2)时可实现的数据压缩比,在将未编码的数据块集合到所述编码数据(E2)与将编码的数据块集合到所述编码数据(E2)之间动态地切换。11.如权利要求1至10中的任一项所述的方法,其特征在于,所述方法包括:将至少一个末尾比特合并到所述编码数据(E2)中,以指示符号是否属于“代码表的更改”或“数据结束”。12.如权利要求1至11中的任一项所述的方法,其特征在于,所述方法包括:针对给定的数据块,生成基本上仅足够用于指向存在于所述给定的数据块中的一个或多个符号所需的索引。13.如权利要求1至12中的任一项所述的方法,其特征在于,所述方法还包括:对所述一个或多个代码表进行压缩以包括在所述编码数据(E2)中。14.如权利要求13所述的方法,其特征在于,所述一个或多个代码表通过使用哈夫曼编码进行压缩。15.如权利要求13或14所述的方法,其特征在于,所述一个或多个代码表的压缩使用一个或多个附属代码表。16.如权利要求1至15中的任一项所述的方法,其特征在于,所述方法包括:以使得所述一个或多个代码表能够在解码器中用于对随后发送的数据进行解码的方式,传输所述一个或多个代码表。17.如权利要求1至16中的任一项所述的方法,其特征在于,所述方法包括:将一个或多个识别代码包括在所述编码数据(E2)中,所述一个或多个识别代码指示通过一个或多个数据库和/或一个或多个代理数据库易于从何处访问所述一个或多个代码表。18.如权利要求1至17中的任一项所述的方法,其特征在于,所述方法布置成对以下类型的数据中的一个或多个进行编码:捕获的音频信号、捕获的视频信号、捕获的图像、文本数据、地震数据、传感器信号数据、模拟数字(ADC)转换数据、生物信号数据、日历数据、经济数据、数学数据、二进制数据。19.一种用于对输入数据(D1)进行编码以生成对应的编码数据(E2)的编码器(50),其特征在于,所述编码器(50)包括:(a)分析器,用于将所述输入数据(D1)拆分和/或变换为一个或多个数据块,并且用于对存在于所述输入数据(D1)中的符号进行分析并根据所述符号在所述一个或多个数据块中的出现对所述符号进行压缩;(b)生成器,用于为存在于所述一个或多个数据块中的所述符号,生成一个或多个代码表、和/或一个或多个频率表、和/或一个或多个代码字长度表、和/或一个或多个概率表;(c)计算引擎,用于计算一个或多个索引集,所述一个或多个索引集使每个数据块中的符号和/或经压缩的符号关联至所述一个或多个代码表、和/或所述一个或多个频率表、和/或所述一个或多个代码字长度表、和/或一个或多个概率表中的条目;以及(d)数据集合装置,用于将所述一个或多个索引集与所述一个或多个频率表、和/或所述一个或多个代码表、和/或所述一个或多个代码字长度表、和/或所述一个或多个概率表、和/或指示这种一个或多个表的信息一同集合,以用于生成所述编码数据(E2)。20.如权利要求19所述的编码器(50),其特征在于,所述编码器(50)可操作为以一个或多个所述表中的至少一个能够被存储以用于后续再使用的方式,传递一个或多个所述表中的至少一个。21.如权利要求19或20所述的编码器(50),其特征在于,所述编码器(50)可操作为将一个或多个数据压缩算法应用在所述数据集合装置中以生成所述编码数据(E2)。22.如权利要求21所述的编码器(50),其特征在于,所述一个或多个数据压缩算法包括以下中的至少一种:哈夫曼编码、VLC、熵编码、算术编码、区间编码。23.如权利要求19至22中的任一项所述的编码器(50),其特征在于,所述编码器(50)可操作为将所述输入数据(D1)拆分为多个数据块,并且使用并行架构处理器以基本上并发的方式处理多个数据块。24.如权利要求19至23中的任一项所述的编码器(50),其特征在于,所述生成器可操作为根据组合在一起的多个数据值生成所述一个或多个索引集。25.如权利要求24所述的编码器(50),其特征在于,所述索引来源于包含R、G和B像素值或Y、U和V像素值的一个或多个RGB像素。26.如权利要求25所述的编码器(50),其特征在于,所述编码器(50)可操作为:根据所述数据块被包含在所述编码数据(E2)时可实现的数据压缩比,在将未编码的数据块集合到所述编码数据(E2)与将编码的数据块集合到所述编码数据(E2)之间动态地切换。27.如权利要求19至26中的任一项所述的编码器(50),其特征在于,所述编码器(50)可操作为将至少一个末尾比特合并至所述编码数据(E2)中,以指示符号是否属于“代码表的更改”或“数据结束”。28.如权利要求19至27中的任一项所述的编码器(50),其特征在于,所述生成器可操作为针对给定的数据块,生成基本上仅足够用于指向存在于所述给定的数据块中的一个或多个符号所需的索引。29.一种包括其上存储有计算机可读指令的非暂时性计算机可读存储介质的计算机程序产品,所述计算机可读指令可由包含有用于实现如权利要求1至18中的任一项所述的方法的处理硬件的计算机化装置执行。30.一种在解码器(60)对通过如权利要求19至28中的任一项所述的编码器(50)生成的编码数据(E2)进行解码以用于生成对应的解码数据(D3)的方法,其特征在于,所述方法包括:(i)接收所述编码数据(E2),并且从所述编码数据(E2)提取一个或多个索引集,以及一个或多个频率表、和/或一个或多个代码表、和/或一个或多个代码字长度表、和/或一个或多个概率表、和/或指示这些一个或多个所述表的信息;(ii)从所述一个或多个索引集,计算所述一个或多个代码表和/或所述一个或多个频率表和/或所述一个或多个代码字长度表和/或一个或多个概率表中的条目的、在一个或多个数据块中的对应符号和/或经压缩的符号;以及(iii)利用来自所述一个或多个代码表、和/或一个或多个频率表、和/或一个或多个代码字长度表、和/或一个或多个概率表的信息,从所述符号重新生成一个或多个数据块;以及(iv)对所述一个或多个数据块进行组合和/或变换以生成所述解码数据(D3)。31.如权利要求30所述的方法,其特征在于,一个或多个所述表中的至少一个是预先定义的。32.如权利要求30所述的方法,其特征在于,所述方法包括:对所述解码数据(D3)进行转码以生成对应的转码数据(D4)、和/或从所述编码数据(E2)生成所述对应的转码数据(D4)。33.如权利要求30、31或32所述的方法,其特征在于,所述方法包括:根据一个或多个表的对称性和提供至所述解码器(60)的对应的对称指示性信...

【专利技术属性】
技术研发人员:奥西·卡尔沃图奥马斯·卡尔凯恩阿图尔·胡塔尼米
申请(专利权)人:古鲁洛吉克微系统公司
类型:发明
国别省市:芬兰;FI

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1