压缩编码方法、解码解压方法、装置和通信系统的制作方法

文档序号:7761240阅读:389来源:国知局
专利名称:压缩编码方法、解码解压方法、装置和通信系统的制作方法
技术领域
本发明涉及通信技术领域,具体涉及压缩编码方法、解码解压方法、装置和通信系 统。
背景技术
随着通信系统的快速发展,通信业务类型和业务量日益增长,通信系统中需要进 行传输的数据量也急剧增加,为了满足通信业务激增的需要,需要通过对通信信号和数据 进行压缩来节省网络资源。语音、音频、图像和视频信号都是最常见的通信系统中进行传输的多媒体信源,因 为这些多媒体信源自身都具有较强的相关性和统计特性,并且已经具有了较好的数学和物 理模型,因而具有了很好的数据压缩算法,可以将原始多媒体数据压缩到原来的几十分之 一的范围内,大大的提高了信道利用率并减低了设备和运营成本。然而,由于一般数据不具 备多媒体信源高度的相关性和统计特性,所以针对语音、音频、图像和视频信号有效地压缩 编码方法无法直接用于一般数据的压缩,所以需要专门针对一般数据进行压缩编码。在一般数据进行压缩编码时,现有技术首先需要将输入的一帧原始数据分解成第 一子集和第二子集,一方面,利用第一子集数据估计第二子集数据,得到第二子集数据的估 值,然后由第二子集减去得到的第二子集的估值得到一组误差数据;另一方面,第一子集数 据经过一个导数编码器处理得到子集尾数和子集指数,以及反映第一子集编码信息的子集 导数及子集霍夫曼(Huffman)表,而误差数据经过另一个导数编码器处理得到误差尾数和 误差指数,以及反映误差数据编码信息的误差导数及误差Huffman表;其中,子集导数、子 集Huffman表、误差导数和误差Huffman表决定了表示一组浮点数据需要的最少存储量,所 以,头信息编码器需要将将子集导数、子集Huffman表、误差导数及误差Huffman表和来自 反映编码器编码设置的编码参数组合成头信息,然后由格式化模块将头信息、子集尾数、子 集指数、误差尾数和误差指数按照一定的格式组合成编码数据帧,形成压缩数据输出。解码 解压流程为上述的逆过程,在此不再赘述。在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术采用了同一 算法对第一子集数据和误差数据进行压缩编码,其压缩比不够高。

发明内容
本发明实施例提供压缩编码方法、解码解压方法、装置和通信系统,可以具有更高 的压缩比。一种压缩编码方法,包括分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码, 所述误差数据为对原始数据进行压缩编码所产生的误差;分别对数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编 码;
5
将数据熵编码和误差熵编码进行帧封装以形成编码帧。
一种解码解压方法,包括对编码帧进行解封装,以得到数据熵编码和误差熵编码;分别对所述数据熵编码和误差熵编码进行熵解码,得到数据压缩编码和误差压缩 编码;分别对所述数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解 码解压误差;对解码解压数据和解码解压误差进行相加,得到重构数据。一种解码解压方法,包括对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码;分别对所述二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误 差、数据压缩编码和误差压缩编码;分别对所述数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解 码解压误差;对二级误差、解码解压数据和解码解压误差进行相加,得到重构数据。一种压缩编码器,包括压缩编码单元,用于分别对原始数据和误差数据进行压缩编码,得到数据压缩编 码和误差压缩编码,所述误差数据为对原始数据进行压缩编码所产生的误差;熵编码单元,用于分别对压缩编码单元得到的数据压缩编码和误差压缩编码进行 熵编码,得到数据熵编码和误差熵编码;封装单元,用于将熵编码单元得到的数据熵编码和误差熵编码进行帧封装以形成 编码帧。一种解码解压器,包括第一解封单元,用于对编码帧进行解封装,以得到数据熵编码和误差熵编码;第一熵解码单元,用于分别对第一解封单元得到的数据熵编码和误差熵编码进行 熵解码,得到数据压缩编码和误差压缩编码;第一解码解压单元,用于分别对第一熵解码单元得到的数据压缩编码和误差压缩 编码进行解码解压,得到解码解压数据和解码解压误差;第一重构单元,用于对第一解码解压单元得到的解码解压数据和解码解压误差进 行相加,得到重构数据。一种解码解压器,包括第二解封单元,用于对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误 差熵编码;第二熵解码单元,用于分别对第二解封单元得到的二级误差熵编码、数据熵编码 和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;第二解码解压单元,用于分别对第二熵解码单元得到的数据压缩编码和误差压缩 编码进行解码解压,得到解码解压数据和解码解压误差;第二重构单元,用于对第二熵解码单元得到的二级误差,以及第二解码解压单元 得到的解码解压数据和解码解压误差进行相加,得到重构数据。
一种通信系统,包括本发明实施例提供的任一种压缩编码器和任一种解码解压
明实施例将压缩编码算法分成两级进行,第一级是对原始数据进行压缩编 码,第二级是对在第一级压缩编码时所产生的误差进行压缩编码,然后再分别对这两级压 缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压 缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比,而且,由 于在本方案中,除了对原始数据进行压缩编码外,还特别对第一级压缩编码时所产生的误 差进行了压缩编码,并分别对压缩编码得到的数据压缩编码和误差压缩编码进行熵编码, 所以相对于现有技术而言,可以提高压缩质量。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
图Ia是本发明实施例一提供的压缩编码方法的流程图Ib是一个原始数据的概率分布实例图Ic是图Ib所对应的误差数据的概率分布实例图Id是一个4比特编码时数据压缩编码中16个码字概率分布的实例图
图Ie是一个4比特编码时误差压缩编码中16个码字概率分布的实例图
图2是本发明实施例二提供的解码解压方法的流程图3a是一段原始数据的实例图3b是图3a所对应的误差数据的实例图3c是图3a所对应的重构数据的实例图3d是图3a所对应的二级误差的实例图3e是图3a所对应的二级误差的概率分布实例图3f是本发明实施例三提供的压缩编码方法的流程图4是本发明实施例四提供的解码解压方法的流程图5a是压缩编码器的原理框图5b是解码解压器的原理框图5c是编码帧结构和编码比特流的示意图6a是压缩编码器的原理框图6b是解码解压器的原理框图6c是编码帧结构和编码比特流的示意图7a是本发明实施例提供的压缩编码器的结构示意图7b是本发明实施例提供的压缩编码器的另一结构示意图8是本发明实施例提供的解码解压器的结构示意图9是本发明实施例提供的解码解压器的另一结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明实施例提供一种压缩编码方法、解码解压方法、装置和通信系统。以下分别 进行详细说明。实施例一、本实施例将从压缩编码器的角度进行描述。一种压缩编码方法,包括分别对原始数据和误差数据进行压缩编码,得到数据压 缩编码和误差压缩编码,其中,误差数据为对原始数据进行压缩编码所产生的误差;分别对 数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;将数据熵编码 和误差熵编码进行帧封装以形成编码帧。如图Ia所示,具体流程可以如下101、分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编 码。其中,误差数据为对原始数据进行压缩编码所产生的误差,具体可以如下(1)对原始数据进行压缩编码,得到压缩后的数据,在本发明实施例中称之为数据 压缩编码。对原始数据进行压缩编码时,具体可以根据应用系统对压缩性能和成本的要 求采用不同的方法,比如可以采用算法简单的波形编码方法,可以采用算法比较复杂的 预测和变换算法,或者,还可以采用压缩比较高但算法比较复杂的矢量量化(VQ,Vector Quantization)卞法,等等;其中,波形编码方法可以包括脉冲编码调制(PCM,Pulse Code Modulation)或自 适应差分脉冲编码调制(ADPCM,Adaptive Differential Pulse CodeModulation)等;预 测可以包括线性预测(LP,Linear Prediction)等,变换可以包括小波变换(WT,Wavelet Transform)变换或离散余弦变换(DCT, DiscreteCosine Transform)变换等。(2)对数据压缩编码进行解码解压,得到解压解压后的数据,在本发明实施例中称 为解码解压数据;比如,具体可以采用波形解码方法、预测和变换算法、或矢量量化方法对数据压缩 编码进行解码解压。需说明的是,所采用的解码解压算法应该与步骤(1)中所采用的压缩编码算法相 对应,比如,如果在步骤(1)中,采用波形编码方法对原始数据进行压缩编码,则此时需要 采用波形解码方法对数据压缩编码进行解码解压;又比如,如果在步骤(1)中,采用矢量量 化方法对原始数据进行压缩编码,则此时需要采用矢量量化方法对数据压缩编码进行解码 解压,依此类推。另外,还需说明的是,本发明实施例所说的“解码解压”指的是解编码解压缩,它与 在编码器中的“压缩编码”相对应,二者正好是相反的处理过程。在编码算法或编码器(比 如本发明实施例中所说的压缩编码器)中,“压缩编码”实际有两含义,即“压缩”和“编码”;时的正向信号处理和多余度的消除等,而“编码”可能包 括量化、以及量化之后的等长编码和不等长编码(即熵编码)等。而在解码算法或解码器 (比如本发明实施例中所说的解码解压器)中,处理过程与压缩编码正好相反,因此“解码 解压”实际包括“解码”,即等长或不等长的解码以及反量化处理等;“解压”实际是指时域、 频域或时频同时的反向信号处理的过程。为了描述方便,在本发明实施例中,均将上述解 码和解压过程则统称为解码解压,并将通过该解码解压过程所得到的数据称为解码解压数 据。(3)计算原始数据与解码解压数据之间的误差,得到误差数据;(4)对误差数据进行压缩编码,得到压缩编码后的误差数据,在本实施例中称之为 误差压缩编码。例如,可以采用算法简单的标量量化(SQ,Scalar Quantization)方法,比如非均 勻量化编码算法对误差数据进行压缩编码。这是因为,在实际应用中,误差数据的分布一般是非均勻分布的,参见图Ib和图 Ic,图Ib是一个原始数据的概率分布实例图,而图Ic则是它所对应的误差数据的概率分布 实例图,可见,误差数据只有在一个较窄的观测范围内(0附近)才具有较大的分布百分比, 即误差数据的概率分布是非常不等概的分布,因此在此对误差数据进行压缩编码时最好采 用非均勻量化编码算法,比如Lloyd-Max非均勻标量量化算法。步骤101中所产生的数据压缩编码和误差压缩编码也同样具有较强不等概性,所 谓的不等概性,指的是概率分布不均等,参见图Id和图le,其中,图Id是一个4比特编码时 数据压缩编码中16个码字概率分布的实例图,而图Ie则是一个4比特编码时误差压缩编 码中16个码字概率分布的实例图;可以看出,数据压缩编码和误差压缩编码的码字出现的 概率是不均等的,因此,可以采用熵编码对数据压缩编码和误差压缩编码进行进一步的压 缩,即执行步骤102。102、分别对数据压缩编码和误差压缩编码进行熵编码,得到熵编码后的数据压缩 编码和熵编码后的误差压缩编码,在本发明实施例中分别称为数据熵编码和误差熵编码;例如,可以采用霍夫曼(Huffman)编码、和/或算术编码、和/或其他不等长编码 算法分别对数据压缩编码和误差压缩编码进行熵编码。需说明的是,熵编码是一种无失真的编码,而步骤101中所提供的压缩编码方式 则是一种有失真的编码,在此不再赘述。103、将数据熵编码和误差熵编码进行帧封装以形成编码帧。需说明的是,当压缩编码器和解码解压器工作在固定模式时,编码帧中可以不需 要帧头信息;但是,如果压缩编码器和解码解压器工作在时变的模式时,编码帧中需要携带 帧头信息,该帧头信息携带当前编码帧的编码模式。进一步的,在编码帧中携带帧头时,根据具体的应用需求,该帧头信息还可以携带 帧长、编码速率和量化编码表格等信息,在此不再赘述。由上可知,本实施例将压缩编码算法分成两级进行,第一级是对原始数据进行压 缩编码,第二级是对在第一级压缩编码时所产生的误差进行压缩编码,然后再分别对这两 级压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多 次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比;进
9一步的,在本方案中,除了对原始数据进行压缩编码外,还特别对第一级压缩编码时所产生 的误差进行了压缩编码,并分别对压缩编码得到的数据压缩编码和误差压缩编码进行熵编 码,所以相对于现有技术而言,可以提高压缩质量。实施例二、本实施例将从解码解压器的角度进行描述。与实施例一相应的,本发明实施例还提供一种解码解压方法,包括对编码帧进行 解封装,以得到数据熵编码和误差熵编码;分别对数据熵编码和误差熵编码进行熵解码,得 到数据压缩编码和误差压缩编码;分别对所得到的数据压缩编码和误差压缩编码进行解码 解压,得到解码解压数据和解码解压误差;对解码解压数据和解码解压误差进行相加,得到 相加后的数据,在发明实施例中称为重构数据。参见图2,具体流程可以如下201、对编码帧进行解封装,得到数据熵编码和误差熵编码;例如,如果编码帧中不包括帧头信息,则将编码帧分解为数据熵编码和误差熵编 码。比如,可以根据预置信息对编码帧进行分解,得到数据熵编码和误差熵编码。如果编码帧中包括帧头信息,则将编码帧分解为帧头信息、数据熵编码和误差熵 编码。比如,可以先获取帧头信息,然后根据帧头信息对编码帧进行分解,得到数据熵编码 和误差熵编码。其中,帧头信息携带当前编码帧的编码模式;当然,根据具体的应用需求, 该帧头信息还可以携带帧长、编码速率和量化编码表格等信息,参见实施例一,在此不再赘 述。202、分别对数据熵编码和误差熵编码进行熵解码,得到数据压缩编码和误差压缩 编码;例如,具体可以采用Huffman解码、和/或算术解码、和/或其他不等长编码算法 分别对步骤201中得到的数据熵编码和误差熵编码进行熵解码。需说明的是,这里所采用的熵解码算法需要与熵编码算法相对应,比如,如果在进 行熵编码时采用的是Huffman编码,则进行熵解码时需要采用Huffman解码,依此类推。其 中,具体采用何种算法的指示信息可以携带在帧头信息中,或者通过预置信息进行指定。如 果该指示信息携带在帧头信息中,则具体实施时,可以根据帧头信息分别对数据熵编码和 误差熵编码进行熵解码;如果是通过预置信息进行指定,则具体实施时,可以根据预置信息 分别对数据熵编码和误差熵编码进行熵解码。203、分别对数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解 码解压误差;例如,具体可以采用波形解码方法、预测和变换算法、或矢量量化方法对数据压缩 编码进行解码解压,得到解码解压数据;相应的,可以采用非均勻量化解码算法对误差压缩 编码进行解码解压,得到解码解压误差。需说明的是,这里所采用的解码解压算法需要与压缩编码时所采用压缩编码算法 相对应,比如,如果在进行压缩编码时采用的是波形编码方法,则进行解码解压时需要采用 波形解码方法,依此类推。其中,具体采用何种算法的指示信息可以携带在帧头信息中,或 者通过预置信息进行指定。如果该指示信息携带在帧头信息中,则具体实施时,可以根据 帧头信息分别对数据压缩编码和误差压缩编码进行解码解压;如果是通过预置信息进行指定,则具体实施时,可以根据预置信息分别对数据压缩编码和误差压缩编码进行解码解压。204、对解码解压数据和解码解压误差进行相加,得到重构数据。由上可知,本实施例提供了与实施例一相对应的解码解压方法,可见,本实施例可 以实现与实施例一同样的有益效果,即相对于现有技术而言,可以达到较高的压缩比,以及 较高的压缩质量。实施例三、实施例一所提供的压缩编码方法是一种有失真的压缩编码方法,为了进一步提高 压缩编码的质量,在本实施例中,提供了一种无失真的压缩编码方法。参见图3a、图3b、图3c、图3d和图3e,其中,图3a为一段原始数据的实例图,图3b 是该原始数据所对应的误差数据的实例图,图3c经过实施例二所提供的解码解压方法得 到的重构数据的实例图,而图3d则显示了原始数据与重构数据的差值,这个差值就是在压 缩编码过程中所产生的总体误差,这里可以称其为二级误差,为了进一步提高压缩质量,可 以对该二级误差再进行一次压缩,即在实施例一的基础上,该压缩编码方法还可以包括对误差压缩编码进行解码解压,得到解码解压误差;计算误差数据与解码解压误 差之间的误差,得到二级误差;对该二级误差进行熵编码,得到二级误差熵编码;则相应的,此时步骤103具体为将数据熵编码、误差熵编码和二级误差熵编码进 行帧封装以形成编码帧。参见图3f,该无失真的压缩编码方法的具体流程可以如下301、分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编 码,其中,误差数据为对原始数据进行压缩编码所产生的误差;具体可参见实施例一,在此 不再赘述。302、对误差压缩编码进行解码解压,得到解码解压误差;需说明的是,这里所采用的解码解压算法应该与对误差数据进行压缩编码时所采 用的压缩编码算法相对应。303、计算误差数据与解码解压误差之间的误差,得到二级误差;由于误差数据是对原始数据进行压缩编码所产生的误差,所以计算误差数据与解 码解压误差之间的误差即可得到在压缩编码过程中所产生的总体误差,即二级误差。304、分别对二级误差、数据压缩编码和误差压缩编码进行熵编码,得到二级误差 熵编码、数据熵编码和误差熵编码,具体可采用的熵编码算法可参见实施例一,在此不再赘 述。305、将数据熵编码、误差熵编码和二级误差熵编码进行帧封装以形成编码帧。由上可知,本实施例除了可以实现实施例一所描述的有益效果之外,进一步的,还 可以对在进行第二次压缩编码(即对在第一级压缩编码时所产生的误差进行压缩编码)时 所产生的误差作进一步的熵编码,从而相对于实施例一而言,可以进一步提高压缩质量,实 现无失真压缩。实施例四、本发明实施例将从解码解压器的角度进行描述。与实施例三相应的,本实施例提供一种解码解压方法,包括对编码帧进行解封 装,得到二级误差熵编码、数据熵编码和误差熵编码;分别对二级误差熵编码、数据熵编码
11和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;分别对该数据压 缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;对二级误差、解 码解压数据和解码解压误差进行相加,得到重构数据。参见图4,具体流程可以如下401、对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码;例如,如果编码帧中不包括帧头信息,则将编码帧分解为二级误差熵编码、数据熵 编码和误差熵编码;如果编码帧中包括帧头信息,则将编码帧分解为帧头信息、二级误差熵 编码、数据熵编码和误差熵编码。其中,帧头信息携带当前编码帧的编码模式,当然,根据具体的应用需求,该帧头 信息还可以携带帧长、编码速率和量化编码表格等信息,参见实施例一,在此不再赘述。402、分别对二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误 差、数据压缩编码和误差压缩编码;例如,具体可以采用Huffman解码、和/或算术解码、和/或其他不等长编码算法 分别对该二级误差熵编码、数据熵编码和误差熵编码进行熵解码。需说明的是,这里所采用的熵解码算法需要与熵编码算法相对应,比如,如果在进 行熵编码时采用的是Huffman编码,则进行熵解码时需要采用Huffman解码,依此类推。其 中,具体采用何种算法的指示信息可以携带在帧头信息中,或者通过预置信息进行指定。如 果该指示信息携带在帧头信息中,则具体实施时,可以根据帧头信息分别对二级误差熵编 码、数据熵编码和误差熵编码进行熵解码;如果是通过预置信息进行指定,则具体实施时, 可以根据预置信息分别对二级误差熵编码、数据熵编码和误差熵编码进行熵解码。403、分别对数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解 码解压误差;例如,具体可以采用波形解码方法、预测和变换算法、或矢量量化方法对数据压缩 编码进行解码解压,得到解码解压数据;相应的,可以采用非均勻量化解码算法对该误差压 缩编码进行解码解压,得到解码解压误差。需说明的是,这里所采用的解码解压算法需要与压缩编码时所采用压缩编码算法 相对应,比如,如果在进行压缩编码时采用的是波形编码方法,则进行解码解压时需要采用 波形解码方法,依此类推。其中,具体采用何种算法的指示信息可以携带在帧头信息中,或 者通过预置信息进行指定。如果该指示信息携带在帧头信息中,则具体实施时,可以根据 帧头信息分别对数据压缩编码和误差压缩编码进行解码解压;如果是通过预置信息进行指 定,则具体实施时,可以根据预置信息分别对数据压缩编码和误差压缩编码进行解码解压。404、对二级误差、解码解压数据和解码解压误差进行相加,得到重构数据。需说明的是,如果是无失真的压缩编码,则此时得到的重构数据与原始数据相同, 如果是有失真的压缩编码,则此时得到的重构数据与原始数据会存在少许误差。由上可知,本实施例提供了与实施例三相对应的解码解压方法,可见,本实施例可 以实现与实施例三同样的有益效果,即相对于现有技术而言,可以达到较高的压缩比,以及 较高的压缩质量,而且,相对于实施例二而言,也可以进一步提高压缩质量。根据前面实施例所描述的方法,以下将在实施例五和实施例六中举例作进一步详 细说明。
实施例五、在本实施例中,将对有失真的压缩编码方法(实施例一和二)作进一步详细说明。参见图5a和图5b,其中,图5a为压缩编码器的原理框图,该压缩编码器包括数据 压缩编码模块A501、压缩编码器的数据解码解压模块A502、压缩编码器的加法器A503、误 差压缩编码模块A504、误差熵编码模块A505、数据熵编码模块A506和帧封装模块A507 ;图 5b为解码解压器的原理框图,该解码解压器包括帧解封模块B501、误差熵解码模块B502、 数据熵解码模块B503、误差解码解压模块B504、解码解压器的数据解码解压模块B505和解 码解压器的加法器B506。为了描述方便,在本实施例中,以编码帧中包括了帧头信息为例进行说明,另外, 在本实施例中,设定数据压缩编码模块A501采用了 ADPCM编码算法,误差压缩编码模块 A504采用Lloyd-Max非均勻标量量化算法,误差熵编码模块A505和数据熵编码模块A506 采用Huffman编码算法,而数据解压解码模块B505则对应地采用了 ADPCM解码算法,误差 解码解压模块B504对应地采用Lloyd-Max非均勻标量量化算法,误差熵解码模块B502和 数据熵解码模块B503对应地采用Huffman解码算法,则该压缩编码器和解码解压器的处理 流程如下(一)压缩编码器步骤1、数据压缩编码模块A501采用ADPCM编码算法对原始数据S进行压缩编码, 得到数据压缩编码Sc,将数据压缩编码Sc输送给压缩编码器的数据解码解压模块A502和 数据熵编码模块A506 ;其中,原始数据S可以是任意来源和任意类型的数据,比如一般的数据序列、采样 通信信号、采样时间序列、语音信号、音频信号等。步骤2、压缩编码器的数据解码解压模块A502采用ADPCM解码算法对数据压缩编 码Sc进行解码解压,得到解码解压数据S’,然后将解码解压数据S’发送给压缩编码器的加 法器A503。步骤3、压缩编码器的加法器A503计算原始数据S与解码解压数据S’之间的误 差,即将原始数据S减去解码解压数据S’,得到误差数据R1,然后将误差数据R1发送给误差 压缩编码模块A504。步骤4、误差压缩编码模块A504采用Lloyd-Max非均勻标量量化算法对误差数据 R1进行压缩编码,得到误差压缩编码R1C,然后将误差压缩编码R1C发送给误差熵编码模块 A505。步骤5、误差熵编码模块A505采用Huffman编码算法对误差压缩编码R1C进行熵 编码,得到误差熵编码Rie,然后将误差熵编码Rie发送给帧封装模块A507。步骤6、数据熵编码模块A506采用Huffman编码算法对数据压缩编码Sc进行熵编 码,得到数据熵编码Se,然后将数据熵编码Se发送给帧封装模块A507。步骤6与步骤2 5的执行不分先后。步骤7、帧封装模块A507将误差熵编码R^和数据熵编码Se组合,再加上帧头信 息Hi,输出完整的编码帧,从而形成编码比特流Bp其中,帧头信息Hi携带当前编码帧的 编码模式;当然,根据具体的应用需求,该帧头信息还可以携带帧长、编码速率和量化编码 表格等信息。
13
参见图5c,该图为编码帧结构和编码比特流的示意图。其中,编码比特流B1包括 多个编码帧编码帧i_l、编码帧i和编码帧i+Ι,等等,而编码帧则包括帧头信息、数据熵编 码Se和误差熵编码Rie。该编码比特流B1根据实际应用的需求,即可以送入信道进行传输,也可以存入存 储介质中。(二)解码解压器步骤1、帧解封模块B501从编码比特流B1中接收到编码帧后,将编码帧分解为帧 头信息、误差熵编码Rie和数据熵编码Se,然后将误差熵编码Rie发送给误差熵解码模块 B502,将数据熵编码Se发送给数据熵解码模块B503。 步骤2、误差熵解码模块B502采用Huffman解码对误差熵编码Rp进行熵解码,得 到误差压缩编码R1C,然后将误差压缩编码R1C发送给误差解码解压模块B504。数据熵解码模块B503采用Huffman解码对数据熵编码Se进行熵解码,得到数据 压缩编码Sc,然后将数据压缩编码Sc发送给解码解压器的数据解码解压模块B505。步骤3、误差解码解压模块B504采用Lloyd-Max非均勻标量量化算法对误差压缩 编码R1C进行解码解压,得到解码解压误差R1',然后将解码解压误差R1'发送给解码解压器 的加法器B506 ;解码解压器的数据解码解压模块B505采用ADPCM解码算法对数据压缩编码Sc 进行解码解压,得到解码解压数据S’,然后将解码解压数据S’发送给解码解压器的加法器 B506。步骤4、解码解压器的加法器B506对解码解压数据S’和解码解压误差R1'进行相 加,得到重构数据Siv需说明的是,以上仅仅以编码帧中包括帧头信息为例进行说明,编码帧中不包括 帧头信息的处理流程与此类似,具体可参见前面实施例,在此不再赘述。由上可知,本实施例将压缩编码算法分成两级进行,第一级是对原始数据S进行 压缩编码,第二级是对在第一级压缩编码时所产生的误差数据R1进行压缩编码,然后再分 别对这两级压缩编码得到的数据压缩编码Sc和误差压缩编码R1C进行熵编码,由于本方案 对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较 高的压缩比,而且,由于在本方案中,除了对原始数据S进行压缩编码外,还特别对第一级 压缩编码时所产生的误差数据R1进行了压缩编码,并分别对压缩编码得到的数据压缩编码 Sc和误差压缩编码R1C进行熵编码,所以相对于现有技术而言,可以提高压缩质量。实施例六、在本实施例中,将对无失真的压缩编码方法(实施例三和四)作进一步详细说明。参见图6a和图6b,其中,图6a为压缩编码器的原理框图,该压缩编码器与实施例 五中的压缩编码器相比,多了与二级误差相关的几个模块压缩编码器的误差解码解压模 块A608、压缩编码器的第二加法器A609和二级误差熵编码模块A610;即本实施例的压缩编 码器可以包括数据压缩编码模块A601、压缩编码器的数据解码解压模块A602、压缩编码器 的第一加法器A603、误差压缩编码模块A604、误差熵编码模块A605、数据熵编码模块A606、 帧封装模块A607、压缩编码器的误差解码解压模块A608、压缩编码器的第二加法器A609和 二级误差熵编码模块A610。图6b为解码解压器的原理框图,该解码解压器包括帧解封模块B601、误差熵解码模块B602、数据熵解码模块B603、解码解压器的误差解码解压模块B604、 解码解压器的数据解码解压模块B605、解码解压器的加法器B606和二级误差熵解码模块 B607。为了描述方便,在本实施例中,以编码帧中包括了帧头信息为例进行说明,另外, 在本实施例中,设定数据压缩编码模块A601采用了 ADPCM编码算法,误差压缩编码模块 A604采用Lloyd-Max非均勻标量量化算法,误差熵编码模块A605和数据熵编码模块A606 采用Huffman编码算法,而数据解压解码模块B605则对应地采用了 ADPCM解码算法,误 差解码解压模块B604对应地采用Lloyd-Max非均勻标量量化算法,二级误差熵解码模块 B607、误差熵解码模块B602和数据熵解码模块B603对应地采用Huffman解码算法,则该压 缩编码器和解码解压器的处理流程如下(一)压缩编码器步骤1、数据压缩编码模块A601采用ADPCM编码算法对原始数据S进行压缩编码, 得到数据压缩编码Sc,将数据压缩编码Sc输送给压缩编码器的数据解码解压模块A602和 数据熵编码模块A606 ;其中,原始数据S可以是任意来源和任意类型的数据,比如一般的数据序列、采样 通信信号、采样时间序列、语音信号、音频信号等。步骤2、数据解码解压模块A602采用ADPCM解码算法对数据压缩编码Sc进行解 码解压,得到解码解压数据S’,然后将解码解压数据S’发送给压缩编码器的第一加法器 A603。步骤3、压缩编码器的加法器A603计算原始数据S与解码解压数据S’之间的误 差,即将原始数据S减去解码解压数据S’,得到误差数据R1,然后将误差数据R1发送给误差 压缩编码模块A604和第二加法器A609。步骤4、误差压缩编码模块A604采用Lloyd-Max非均勻标量量化算法对误差数据 R1进行压缩编码,得到误差压缩编码R1C,然后将误差压缩编码R1C发送给误差熵编码模块 A605和压缩编码器的误差解码解压模块A608 ;步骤5、压缩编码器的误差解码解压模块A608采用Lloyd-Max非均勻标量量化算 法对误差压缩编码R1C进行解码解压,得到解码解压误差R1',然后将解码解压误差R1'发送 给第二加法器A609。步骤6、第二加法器A609将误差数据R1减去解码解压误差R1',得到二级误差R2, 然后将二级误差R2发送给二级误差熵编码模块A610。步骤7、二级误差熵编码模块A610采用Huffman编码算法对二级误差R2进行熵编 码,得到二级误差熵编码R2e,然后将二级误差熵编码R2e发送给帧封装模块A607。步骤8、误差熵编码模块A605采用Huffman编码算法对误差压缩编码R1C进行熵 编码,得到误差熵编码Rie,然后将误差熵编码Rie发送给帧封装模块A607。步骤9、数据熵编码模块A606采用Huffman编码算法对数据压缩编码Sc进行熵编 码,得到数据熵编码Se,然后将数据熵编码Se发送给帧封装模块A607。步骤6与步骤2 5的执行不分先后。步骤7、帧封装模块A607将二级误差熵编码R2e、误差熵编码R^和数据熵编码Se 组合,再加上帧头信息Hi,输出完整的编码帧,从而形成编码比特流Bp
参见图6c,该图为编码帧结构和编码比特流的示意图。其中,编码比特流B1包括 多个编码帧编码帧i_l、编码帧i和编码帧i+Ι,等等,而编码帧则包括帧头信息、数据熵编 码Se、误差熵编码Rie和二级误差熵编码R2e。该编码比特流B1根据实际应用的需求,即可以送入信道进行传输,也可以存入存 储介质中。(二)解码解压器步骤1、帧解封模块B601从编码比特流B1中接收到编码帧后,将编码帧分解为帧 头信息、二级误差熵编码R2e、误差熵编码Rie和数据熵编码Se,然后将二级误差熵编码R2e 发送给二级误差熵解码模块B607,将误差熵编码Rie发送给误差熵解码模块B602,将数据 熵编码Se发送给数据熵解码模块B603。步骤2、二级误差熵解码模块B607采用Huffman解码对二级误差熵编码R2e进行 熵解码,得到二级误差R2,然后将二级误差R2发送给解码解压器的加法器B606。误差熵解码模块B602采用Huffman解码对误差熵编码Rp进行熵解码,得到误差 压缩编码RlC,然后将误差压缩编码R1C发送给误差解码解压模块B604。数据熵解码模块B603采用Huffman解码对数据熵编码Se进行熵解码,得到数据 压缩编码Sc,然后将数据压缩编码Sc发送给数据解码解压模块B605。步骤3、误差解码解压模块B604采用Lloyd-Max非均勻标量量化算法对误差压缩 编码R1C进行解码解压,得到解码解压误差R1',然后将解码解压误差R1'发送给解码解压器 的加法器B606 ;数据解码解压模块B605采用ADPCM解码算法对数据压缩编码Sc进行解码解压, 得到解码解压数据S’,然后将解码解压数据S’发送给解码解压器的加法器B606。步骤4、解码解压器的加法器B606对二级误差R2、解码解压数据S’和解码解压误 差R1'进行相加,得到重构数据Sr2。由上可知,本实施例除了可以实现实施例五所描述的有益效果之外,进一步的,还 可以对二级误差作进一步的熵编码,从而相对于实施例五而言,可以进一步压缩质量,实现 无失真压缩。实施例七、为了更好地实施以上方法,本发明实施例还相应地提供一种压缩编码器,如图7a 所示,该压缩编码器包括压缩编码单元701、熵编码单元702和封装单元703 ;压缩编码单元701,用于分别对原始数据和误差数据进行压缩编码,得到数据压缩 编码和误差压缩编码,其中,误差数据为对原始数据进行压缩编码所产生的误差;熵编码单元702,用于分别对压缩编码单元701得到的数据压缩编码和误差压缩 编码进行熵编码,得到数据熵编码和误差熵编码;例如,可以采用Huffman编码、和/或算术 编码、和/或其他不等长编码算法分别对数据压缩编码和误差压缩编码进行熵编码。封装单元703,用于将熵编码单元702得到的数据熵编码和误差熵编码进行帧封 装以形成编码帧。需说明的是,当压缩编码器和解码解压器工作在固定模式时,编码帧中可以不需 要帧头信息,但是,当压缩编码器和解码解压器工作在时变的模式时,编码帧中必须携带帧 头信息,该帧头信息携带当前编码帧的编码模式,当然,根据具体的应用需求,该帧头信息息。所以,封装单元703,还用于将帧头信 息,以及熵编码单元702得到的数据熵编码和误差熵编码进行帧封装以形成编码帧。参见图7b,其中,压缩编码单元701可以包括数据压缩编码子单元7011、数据解码 解压子单元7012、计算子单元7013和误差压缩编码子单元7014 ;数据压缩编码子单元7011,用于对原始数据进行压缩编码,得到数据压缩编码; 比如,可以采用波形编码方法、预测和变换算法或VQ方法对原始数据进行压缩编码,等等;数据解码解压子单元7012,用于对数据压缩编码子单元7011得到的数据压缩编 码进行解码解压,得到解码解压数据;计算子单元7013,用于计算原始数据与数据解码解压子单元7012得到的解码解 压数据之间的误差,得到误差数据;误差压缩编码子单元7014,用于对计算子单元7013得到的误差数据进行压缩编 码,得到误差压缩编码;例如,可以采用SQ方法对误差数据进行压缩编码等。以上压缩编码器可以实现有失真的压缩编码,即该压缩编码器为有失真的压缩编 码器,进一步的,还可以实现无失真的压缩编码,则此时需要在该有失真的压缩编码器中增 加相应的单元,以对二级误差进行处理,从而构成无失真的压缩编码器;如下如图7b所示,该压缩编码器还可以包括误差解码解压单元704和运算单元705 ;误差解码解压单元704,用于对压缩编码单元701得到的误差压缩编码进行解码 解压,得到解码解压误差;比如,具体可以用于对误差压缩编码子单元7014得到的误差压 缩编码进行解码解压,得到解码解压误差。运算单元705,用于计算误差数据与误差解码解压单元704得到的解码解压误差 之间的误差,得到二级误差;则此时,熵编码单元702,还用于对运算单元705得到的二级误差进行熵编码,得 到二级误差熵编码;例如,可以采用Huffman编码、和/或算术编码、和/或其他不等长编码 算法对二级误差进行熵编码。封装单元703,还用于将熵编码单元702得到的数据熵编码、误差熵编码和二级误 差熵编码进行帧封装以形成编码帧。以上各个单元的具体实施可参见前面实施例,在此不再赘述。需说明的是,在具体实施时,以上各个单元可以作为独立的实体实现,也可以作为 若干个实体实现,比如,参见实施例五和实施例六,压缩编码单元701可以由数据压缩编码 模块、数据解码解压模块、加法器(实施例五中的压缩编码器的加法器或实施例六中的第 一加法器)和误差压缩编码模块组成,熵编码单元702则可以由数据熵编码模块和数据熵 编码模块组成,而封装单元703则由帧封装模块来实现,误差解码解压单元704作为误差解 码解压模块,运算单元705由实施例六中的第二加法器来实现,等等,具体的实现形式可以 根据实际需求进行设定。由上可知,本实施例提供的压缩编码器的压缩编码单元701可以将压缩编码算法 分成两级进行,第一级是对原始数据进行压缩编码,第二级是对在第一级压缩编码时所产 生的误差进行压缩编码,然后再由熵编码单元702分别对这两级压缩编码得到的数据压缩 编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现 有技术只进行一次压缩编码而言,可以达到较高的压缩比,而且,由于在本方案中,压缩编
17码单元701除了可以对原始数据进行压缩编码之外,还特别对第一级压缩编码时所产生的 误差进行了压缩编码,并由熵编码单元702分别对压缩编码得到的数据压缩编码和误差压 缩编码进行熵编码,所以相对于现有技术而言,可以提高压缩质量。实施例八、相应的,针对有失真的压缩编码器,本发明实施例还提供了一种解码解压器,如图 8所示,该解码解压器包括第一解封单元801、第一熵解码单元802、第一解码解压单元803 和第一重构单元804 ;第一解封单元801,用于对编码帧进行解封装,以得到数据熵编码和误差熵编码;第一熵解码单元802,用于分别对第一解封单元801得到的数据熵编码和误差熵 编码进行熵解码,得到数据压缩编码和误差压缩编码;第一解码解压单元803,用于分别对第一熵解码单元802得到的数据压缩编码和 误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;第一重构单元804,用于对第一解码解压单元803得到的解码解压数据和解码解 压误差进行相加,得到重构数据。需说明的是,这里所采用的解码解压算法、以及熵解码算法需要与压缩编码时所 采用压缩编码算法、以及熵编码算法相对应,比如,如果在进行压缩编码时采用的是波形编 码方法,则进行解码解压时需要采用波形解码方法,如果在进行熵编码时采用的是Huffman 编码,则在进行熵解码时需要采用Huffman解码,依此类推。以上各个单元的具体实施可参见前面实施例,在此不再赘述。需说明的是,在具体实施时,以上各个单元可以作为独立的实体实现,也可以作为 若干个实体实现,比如,参见实施例五,第一解封单元801可以由帧解封模块来实现,第一 熵解码单元802可以由误差熵解码模块和数据熵解码模块组成,第一解码解压单元803可 以由数据解码解压模块和误差解码解压模块责成,而第一重构单元则由加法器来实现,等 等,具体的实现形式可以根据实际需求进行设定。由上可知,本实施例提供的解码解压器的第一解封单元801可以将编码帧分解成 数据熵编码和误差熵编码,由第一熵解码单元802分别对数据熵编码和误差熵编码进行熵 解码以得到解码解压数据和解码解压误差,然后由第一解码解压单元803分别对解码解压 数据和解码解压误差进行解码解压,得到解码解压数据和解码解压误差,最后由第一重构 单元804对解码解压数据和解码解压误差进行组合,以实现数据的重构,由于该解码解压 器与实施例七中的有失真的压缩解码器相对应,所以可以实现与实施例七同样的有益效 果,即相对于现有技术而言,可以达到较高的压缩比,以及较高的压缩质量。实施例九、相应的,针对无失真的压缩编码器,本发明实施例还提供了一种解码解压器,如图 9所示,该解码解压器包括第二解封单元901、第二熵解码单元902、第二解码解压单元903 和第二重构单元904 ;第二解封单元901,用于对编码帧进行解封装,得到二级误差熵编码、数据熵编码 和误差熵编码;第二熵解码单元902,用于分别对第二解封单元901得到的二级误差熵编码、数据 熵编码和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;
第二解码解压单元903,用于分别对第二熵解码单元902得到的数据压缩编码和 误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;第二重构单元904,用于对第二熵解码单元903得到的二级误差,以及第二解码解 压单元903得到的解码解压数据和解码解压误差进行相加,得到重构数据。需说明的是,这里所采用的解码解压算法、以及熵解码算法需要与压缩编码时所 采用压缩编码算法、以及熵编码算法相对应,比如,如果在进行压缩编码时采用的是波形编 码方法,则进行解码解压时需要采用波形解码方法,如果在进行熵编码时采用的是Huffman 编码,则在进行熵解码时需要采用Huffman解码,依此类推。以上各个单元的具体实施可参见前面实施例,在此不再赘述。需说明的是,在具体实施时,以上各个单元可以作为独立的实体实现,也可以作为 若干个实体实现,比如,参见实施例六,第二解封单元901可以由帧解封模块来实现,第二 熵解码单902可以由二级误差熵解码模块、误差熵解码模块和数据熵解码模块组成,第二 解码解压单元903可以由数据解码解压模块和误差解码解压模块责成,而第二重构单元 904则由加法器来实现,等等,具体的实现形式可以根据实际需求进行设定。由上可知,本提供的解码解压器的第二解封单元901可以将编码帧分解成二级误 差熵编码、数据熵编码和误差熵编码,由第二熵解码单元902分别对二级误差熵编码、数据 熵编码和误差熵编码进行熵解码以得到二级误差、解码解压数据和解码解压误差,然后由 第二解码解压单元903分别对解码解压数据和解码解压误差进行解码解压,得到解码解压 数据和解码解压误差,最后由第二重构单元904对二级误差、解码解压数据和解码解压误 差进行组合,以实现数据的重构,由于该解码解压器与实施例七中的无失真的压缩解码器 相对应,所以可以实现与实施例七同样的有益效果,即相对于现有技术而言,可以达到较高 的压缩比,以及较高的压缩质量,而且,相对于实施例八所提供的解码解压器而言,本实施 例所提供的解码解压器可以具有更高压缩质量,实现无失真压缩编码。实施例十、相应地,本发明实施例还提供一种通信系统,包括本发明实施例提供的任一种压 缩编码器和解码解压器;即该通信系统可以包括有失真的压缩解码器和其相对应的解码解 压器,或者,该通信系统也可以无失真的压缩解码器和其相对应的解码解压器,具体可参见 前面实施例,在此不再赘述。本发明实施例所提供的压缩编码器和解码解压器可以应用面向通信的数据压缩 和传输系统中,也可以应用在面向存储的数据压缩系统中。其中,面向通信的数据压缩和传输系统包括通过各类信道和网络的远程数据通 信,比如数据通信、文件传输、语音通信、音频通信等;通过近程和系统内部的数据通信,比 如通用公共无线接口中的数据传输和拉远等;通过设备内或板内模块之间的数据传输,比 如模拟信号转数字信号/数字信号转模拟信号(AD/DA,Analog to Digital/Digital to Analog)变换器与其它部件的数据交换等。面向存储的数据压缩系统可以包括数据的高效存储、数字媒体存储、数字图书馆寸。由上可知,本实施例提供的通信系统中的压缩编码器可以将压缩编码算法分成两 级进行,第一级是对原始数据进行压缩编码,第二级是对在第一级压缩编码时所产生的误
19差进行压缩编码,然后再分别对这两级压缩编码得到的数据压缩编码和误差压缩编码进行 熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编 码而言,可以达到较高的压缩比,而且,由于在本方案中,压缩编码器除了对原始数据进行 压缩编码外,还特别对第一级压缩编码时所产生的误差进行了压缩编码,并分别对压缩编 码得到的数据压缩编码和误差压缩编码进行熵编码,所以相对于现有技术而言,可以提高 压缩质量。进一步的,由于可以将本发明实施例提供的通信系统应用在面向通信的数据压缩 和传输系统中或面向存储的数据压缩系统中,所以可以提高面向通信的数据压缩和传输系 统或面向存储的数据压缩系统的处理性能,即,如果将本发明实施例提供的通信系统应用 在面向通信的数据压缩和传输系统中,则可以提高通信信号和数据的传输效率,提高信道 的利用率,从而降低运营成本;如果将本发明实施例提供的通信系统应用在面向存储的数 据压缩系统中,则可以提高通信信号和数据的存储效率,提高存储设备利用率,从而降低系 统和设备的硬件成本。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。以上对本发明实施例所提供的压缩编码方法、解码解压方法、装置和通信系统进 行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施 例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人 员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明 书内容不应理解为对本发明的限制。
权利要求
一种压缩编码方法,其特征在于,包括分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,所述误差数据为对所述原始数据进行压缩编码所产生的误差;分别对所述数据压缩编码和所述误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;将所述数据熵编码和所述误差熵编码进行帧封装以形成编码帧。
2.根据权利要求1所述的方法,其特征在于,所述分别对原始数据和误差数据进行压 缩编码,得到数据压缩编码和误差压缩编码包括对原始数据进行压缩编码,得到数据压缩编码; 对数据压缩编码进行解码解压,得到解码解压数据; 计算原始数据与解码解压数据之间的误差,得到误差数据; 对误差数据进行压缩编码,得到误差压缩编码。
3.根据权利要求2所述的方法,其特征在于,所述对原始数据进行压缩编码包括 采用波形编码方法、预测和变换算法、或矢量量化方法对原始数据进行压缩编码;则相应的,所述对数据压缩编码进行解码解压包括采用波形解码方法、预测和变换算 法、或矢量量化方法对数据压缩编码进行解码解压。
4.根据权利要求2或3所述的方法,其特征在于,所述对误差数据进行压缩编码包括 采用非均勻量化编码算法对误差数据进行压缩编码。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述分别对数据压缩编码和 误差压缩编码进行熵编码包括采用霍夫曼Huffman编码分别对数据压缩编码和误差压缩编码进行熵编码;和/或, 采用算术编码分别对数据压缩编码和误差压缩编码进行熵编码。
6.根据权利要求1至3中任一项所述的方法,其特征在于,还包括 所述编码帧中还包括帧头信息,所述帧头信息携带当前编码帧的编码模式。
7.根据权利要求6所述的方法,其特征在于,还包括 所述帧头信息还携带帧长、编码速率和量化编码表格。
8.根据权利要求2所述的方法,其特征在于,还包括对误差压缩编码进行解码解压, 得到解码解压误差;计算误差数据与解码解压误差之间的误差,得到二级误差; 对所述二级误差进行熵编码,得到二级误差熵编码;则相应的,所述将数据熵编码和误差熵编码进行帧封装以形成编码帧具体为将数据 熵编码、误差熵编码和二级误差熵编码进行帧封装以形成编码帧。
9.一种解码解压方法,其特征在于,包括对编码帧进行解封装,得到数据熵编码和误差熵编码;分别对所述数据熵编码和所述误差熵编码进行熵解码,得到数据压缩编码和误差压缩 编码;分别对所述数据压缩编码和所述误差压缩编码进行解码解压,得到解码解压数据和解 码解压误差;对所述解码解压数据和所述解码解压误差进行相加,得到重构数据。
10.根据权利要求9所述的方法,其特征在于,所述编码帧中还包括帧头信息,则所述 对编码帧进行解封装,得到数据熵编码和误差熵编码具体为将编码帧分解为帧头信息、数据熵编码和误差熵编码。
11.一种解码解压方法,其特征在于,包括对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码; 分别对所述二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误差、数 据压缩编码和误差压缩编码;分别对所述数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解 压误差;对二级误差、解码解压数据和解码解压误差进行相加,得到重构数据。
12.根据权利要求11所述的方法,其特征在于,所述编码帧中还包括帧头信息,则所述 对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码具体为将编码帧分解为帧头信息、二级误差熵编码、数据熵编码和误差熵编码。
13.—种压缩编码器,其特征在于,包括压缩编码单元,用于分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和 误差压缩编码,所述误差数据为对原始数据进行压缩编码所产生的误差;熵编码单元,用于分别对压缩编码单元得到的数据压缩编码和误差压缩编码进行熵编 码,得到数据熵编码和误差熵编码;封装单元,用于将熵编码单元得到的数据熵编码和误差熵编码进行帧封装以形成编码帧。
14.根据权利要求13所述的压缩编码器,其特征在于,所述压缩编码单元包括 数据压缩编码子单元,用于对原始数据进行压缩编码,得到数据压缩编码;数据解码解压子单元,用于对数据压缩编码子单元得到的数据压缩编码进行解码解 压,得到解码解压数据;计算子单元,用于计算原始数据与数据解码解压子单元得到的解码解压数据之间的误 差,得到误差数据;误差压缩编码子单元,用于对计算子单元得到的误差数据进行压缩编码,得到误差压 缩编码。
15.根据权利要求13或14所述的压缩编码器,其特征在于,还包括误差解码解压单元 和运算单元;误差解码解压单元,用于对压缩编码单元得到的误差压缩编码进行解码解压,得到解 码解压误差;运算单元,用于计算误差数据与误差解码解压单元得到的解码解压误差之间的误差, 得到二级误差;所述熵编码单元,还用于对运算单元得到的二级误差进行熵编码,得到二级误差熵编码;所述封装单元,还用于将熵编码单元得到的数据熵编码、误差熵编码和二级误差熵编 码进行帧封装以形成编码帧。
16.一种解码解压器,其特征在于,包括第一解封单元,用于对编码帧进行解封装,以得到数据熵编码和误差熵编码; 第一熵解码单元,用于分别对第一解封单元得到的数据熵编码和误差熵编码进行熵解 码,得到数据压缩编码和误差压缩编码;第一解码解压单元,用于分别对第一熵解码单元得到的数据压缩编码和误差压缩编码 进行解码解压,得到解码解压数据和解码解压误差;第一重构单元,用于对第一解码解压单元得到的解码解压数据和解码解压误差进行相 加,得到重构数据。
17.—种解码解压器,其特征在于,包括第二解封单元,用于对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵 编码;第二熵解码单元,用于分别对第二解封单元得到的二级误差熵编码、数据熵编码和误 差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;第二解码解压单元,用于分别对第二熵解码单元得到的数据压缩编码和误差压缩编码 进行解码解压,得到解码解压数据和解码解压误差;第二重构单元,用于对第二熵解码单元得到的二级误差,以及第二解码解压单元得到 的解码解压数据和解码解压误差进行相加,得到重构数据。
18.—种通信系统,其特征在于,该通信系统包括权利要求13至14所述的任一种压缩 编码器和权利要求16所述的解码解压器,或者,该通信系统包括权利要求15所述的压缩编 码器和权利要求17所述的解码解压器。
全文摘要
本发明公开了一种压缩编码方法、解码解压方法、装置和通信系统。本发明技术方案采用分别对原始数据,以及对原始数据进行压缩编码所产生的误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,然后分别对数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码,最后将数据熵编码和误差熵编码进行帧封装以形成编码帧;相对于现有技术而言,采用该方案可以提高压缩比和压缩质量。
文档编号H04N7/64GK101945286SQ20101029861
公开日2011年1月12日 申请日期2010年9月29日 优先权日2010年9月29日
发明者刘怡, 周佳, 夏玉洁, 夏雨, 钟政良, 马鸿飞 申请人:上海华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1