CN101945286A - 压缩编码方法、解码解压方法、装置和通信系统 - Google Patents

压缩编码方法、解码解压方法、装置和通信系统 Download PDF

Info

Publication number
CN101945286A
CN101945286A CN 201010298614 CN201010298614A CN101945286A CN 101945286 A CN101945286 A CN 101945286A CN 201010298614 CN201010298614 CN 201010298614 CN 201010298614 A CN201010298614 A CN 201010298614A CN 101945286 A CN101945286 A CN 101945286A
Authority
CN
China
Prior art keywords
error
decoding
data
coding
entropy coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010298614
Other languages
English (en)
Other versions
CN101945286B (zh
Inventor
马鸿飞
刘怡
周佳
钟政良
夏雨
夏玉洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Shanghai Huawei Technologies Co Ltd
Original Assignee
Shanghai Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Huawei Technologies Co Ltd filed Critical Shanghai Huawei Technologies Co Ltd
Priority to CN 201010298614 priority Critical patent/CN101945286B/zh
Publication of CN101945286A publication Critical patent/CN101945286A/zh
Priority to PCT/CN2011/074850 priority patent/WO2011137841A1/zh
Application granted granted Critical
Publication of CN101945286B publication Critical patent/CN101945286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种压缩编码方法、解码解压方法、装置和通信系统。本发明技术方案采用分别对原始数据,以及对原始数据进行压缩编码所产生的误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,然后分别对数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码,最后将数据熵编码和误差熵编码进行帧封装以形成编码帧;相对于现有技术而言,采用该方案可以提高压缩比和压缩质量。

Description

压缩编码方法、解码解压方法、装置和通信系统
技术领域
本发明涉及通信技术领域,具体涉及压缩编码方法、解码解压方法、装置和通信系统。
背景技术
随着通信系统的快速发展,通信业务类型和业务量日益增长,通信系统中需要进行传输的数据量也急剧增加,为了满足通信业务激增的需要,需要通过对通信信号和数据进行压缩来节省网络资源。
语音、音频、图像和视频信号都是最常见的通信系统中进行传输的多媒体信源,因为这些多媒体信源自身都具有较强的相关性和统计特性,并且已经具有了较好的数学和物理模型,因而具有了很好的数据压缩算法,可以将原始多媒体数据压缩到原来的几十分之一的范围内,大大的提高了信道利用率并减低了设备和运营成本。然而,由于一般数据不具备多媒体信源高度的相关性和统计特性,所以针对语音、音频、图像和视频信号有效地压缩编码方法无法直接用于一般数据的压缩,所以需要专门针对一般数据进行压缩编码。
在一般数据进行压缩编码时,现有技术首先需要将输入的一帧原始数据分解成第一子集和第二子集,一方面,利用第一子集数据估计第二子集数据,得到第二子集数据的估值,然后由第二子集减去得到的第二子集的估值得到一组误差数据;另一方面,第一子集数据经过一个导数编码器处理得到子集尾数和子集指数,以及反映第一子集编码信息的子集导数及子集霍夫曼(Huffman)表,而误差数据经过另一个导数编码器处理得到误差尾数和误差指数,以及反映误差数据编码信息的误差导数及误差Huffman表;其中,子集导数、子集Huffman表、误差导数和误差Huffman表决定了表示一组浮点数据需要的最少存储量,所以,头信息编码器需要将将子集导数、子集Huffman表、误差导数及误差Huffman表和来自反映编码器编码设置的编码参数组合成头信息,然后由格式化模块将头信息、子集尾数、子集指数、误差尾数和误差指数按照一定的格式组合成编码数据帧,形成压缩数据输出。解码解压流程为上述的逆过程,在此不再赘述。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术采用了同一算法对第一子集数据和误差数据进行压缩编码,其压缩比不够高。
发明内容
本发明实施例提供压缩编码方法、解码解压方法、装置和通信系统,可以具有更高的压缩比。
一种压缩编码方法,包括:
分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,所述误差数据为对原始数据进行压缩编码所产生的误差;
分别对数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;
将数据熵编码和误差熵编码进行帧封装以形成编码帧。
一种解码解压方法,包括:
对编码帧进行解封装,以得到数据熵编码和误差熵编码;
分别对所述数据熵编码和误差熵编码进行熵解码,得到数据压缩编码和误差压缩编码;
分别对所述数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;
对解码解压数据和解码解压误差进行相加,得到重构数据。
一种解码解压方法,包括:
对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码;
分别对所述二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;
分别对所述数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;
对二级误差、解码解压数据和解码解压误差进行相加,得到重构数据。
一种压缩编码器,包括:
压缩编码单元,用于分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,所述误差数据为对原始数据进行压缩编码所产生的误差;
熵编码单元,用于分别对压缩编码单元得到的数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;
封装单元,用于将熵编码单元得到的数据熵编码和误差熵编码进行帧封装以形成编码帧。
一种解码解压器,包括:
第一解封单元,用于对编码帧进行解封装,以得到数据熵编码和误差熵编码;
第一熵解码单元,用于分别对第一解封单元得到的数据熵编码和误差熵编码进行熵解码,得到数据压缩编码和误差压缩编码;
第一解码解压单元,用于分别对第一熵解码单元得到的数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;
第一重构单元,用于对第一解码解压单元得到的解码解压数据和解码解压误差进行相加,得到重构数据。
一种解码解压器,包括:
第二解封单元,用于对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码;
第二熵解码单元,用于分别对第二解封单元得到的二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;
第二解码解压单元,用于分别对第二熵解码单元得到的数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;
第二重构单元,用于对第二熵解码单元得到的二级误差,以及第二解码解压单元得到的解码解压数据和解码解压误差进行相加,得到重构数据。
一种通信系统,包括本发明实施例提供的任一种压缩编码器和任一种解码解压器。
本发明实施例将压缩编码算法分成两级进行,第一级是对原始数据进行压缩编码,第二级是对在第一级压缩编码时所产生的误差进行压缩编码,然后再分别对这两级压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比,而且,由于在本方案中,除了对原始数据进行压缩编码外,还特别对第一级压缩编码时所产生的误差进行了压缩编码,并分别对压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,所以相对于现有技术而言,可以提高压缩质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例一提供的压缩编码方法的流程图;
图1b是一个原始数据的概率分布实例图;
图1c是图1b所对应的误差数据的概率分布实例图;
图1d是一个4比特编码时数据压缩编码中16个码字概率分布的实例图;
图1e是一个4比特编码时误差压缩编码中16个码字概率分布的实例图;
图2是本发明实施例二提供的解码解压方法的流程图;
图3a是一段原始数据的实例图;
图3b是图3a所对应的误差数据的实例图;
图3c是图3a所对应的重构数据的实例图;
图3d是图3a所对应的二级误差的实例图;
图3e是图3a所对应的二级误差的概率分布实例图;
图3f是本发明实施例三提供的压缩编码方法的流程图;
图4是本发明实施例四提供的解码解压方法的流程图;
图5a是压缩编码器的原理框图;
图5b是解码解压器的原理框图;
图5c是编码帧结构和编码比特流的示意图;
图6a是压缩编码器的原理框图;
图6b是解码解压器的原理框图;
图6c是编码帧结构和编码比特流的示意图;
图7a是本发明实施例提供的压缩编码器的结构示意图;
图7b是本发明实施例提供的压缩编码器的另一结构示意图;
图8是本发明实施例提供的解码解压器的结构示意图;
图9是本发明实施例提供的解码解压器的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种压缩编码方法、解码解压方法、装置和通信系统。以下分别进行详细说明。
实施例一、
本实施例将从压缩编码器的角度进行描述。
一种压缩编码方法,包括:分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,其中,误差数据为对原始数据进行压缩编码所产生的误差;分别对数据压缩编码和误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;将数据熵编码和误差熵编码进行帧封装以形成编码帧。
如图1a所示,具体流程可以如下:
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)方法,比如非均匀量化编码算法对误差数据进行压缩编码。
这是因为,在实际应用中,误差数据的分布一般是非均匀分布的,参见图1b和图1c,图1b是一个原始数据的概率分布实例图,而图1c则是它所对应的误差数据的概率分布实例图,可见,误差数据只有在一个较窄的观测范围内(0附近)才具有较大的分布百分比,即误差数据的概率分布是非常不等概的分布,因此在此对误差数据进行压缩编码时最好采用非均匀量化编码算法,比如Lloyd-Max非均匀标量量化算法。
步骤101中所产生的数据压缩编码和误差压缩编码也同样具有较强不等概性,所谓的不等概性,指的是概率分布不均等,参见图1d和图1e,其中,图1d是一个4比特编码时数据压缩编码中16个码字概率分布的实例图,而图1e则是一个4比特编码时误差压缩编码中16个码字概率分布的实例图;可以看出,数据压缩编码和误差压缩编码的码字出现的概率是不均等的,因此,可以采用熵编码对数据压缩编码和误差压缩编码进行进一步的压缩,即执行步骤102。
102、分别对数据压缩编码和误差压缩编码进行熵编码,得到熵编码后的数据压缩编码和熵编码后的误差压缩编码,在本发明实施例中分别称为数据熵编码和误差熵编码;
例如,可以采用霍夫曼(Huffman)编码、和/或算术编码、和/或其他不等长编码算法分别对数据压缩编码和误差压缩编码进行熵编码。
需说明的是,熵编码是一种无失真的编码,而步骤101中所提供的压缩编码方式则是一种有失真的编码,在此不再赘述。
103、将数据熵编码和误差熵编码进行帧封装以形成编码帧。
需说明的是,当压缩编码器和解码解压器工作在固定模式时,编码帧中可以不需要帧头信息;但是,如果压缩编码器和解码解压器工作在时变的模式时,编码帧中需要携带帧头信息,该帧头信息携带当前编码帧的编码模式。
进一步的,在编码帧中携带帧头时,根据具体的应用需求,该帧头信息还可以携带帧长、编码速率和量化编码表格等信息,在此不再赘述。
由上可知,本实施例将压缩编码算法分成两级进行,第一级是对原始数据进行压缩编码,第二级是对在第一级压缩编码时所产生的误差进行压缩编码,然后再分别对这两级压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比;进一步的,在本方案中,除了对原始数据进行压缩编码外,还特别对第一级压缩编码时所产生的误差进行了压缩编码,并分别对压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,所以相对于现有技术而言,可以提高压缩质量。
实施例二、
本实施例将从解码解压器的角度进行描述。
与实施例一相应的,本发明实施例还提供一种解码解压方法,包括:对编码帧进行解封装,以得到数据熵编码和误差熵编码;分别对数据熵编码和误差熵编码进行熵解码,得到数据压缩编码和误差压缩编码;分别对所得到的数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;对解码解压数据和解码解压误差进行相加,得到相加后的数据,在发明实施例中称为重构数据。
参见图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、将数据熵编码、误差熵编码和二级误差熵编码进行帧封装以形成编码帧。
由上可知,本实施例除了可以实现实施例一所描述的有益效果之外,进一步的,还可以对在进行第二次压缩编码(即对在第一级压缩编码时所产生的误差进行压缩编码)时所产生的误差作进一步的熵编码,从而相对于实施例一而言,可以进一步提高压缩质量,实现无失真压缩。
实施例四、
本发明实施例将从解码解压器的角度进行描述。
与实施例三相应的,本实施例提供一种解码解压方法,包括:对编码帧进行解封装,得到二级误差熵编码、数据熵编码和误差熵编码;分别对二级误差熵编码、数据熵编码和误差熵编码进行熵解码,得到二级误差、数据压缩编码和误差压缩编码;分别对该数据压缩编码和误差压缩编码进行解码解压,得到解码解压数据和解码解压误差;对二级误差、解码解压数据和解码解压误差进行相加,得到重构数据。
参见图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进行熵编码,得到误差熵编码R1e,然后将误差熵编码R1e发送给帧封装模块A507。
步骤6、数据熵编码模块A506采用Huffman编码算法对数据压缩编码Sc进行熵编码,得到数据熵编码Se,然后将数据熵编码Se发送给帧封装模块A507。步骤6与步骤2~5的执行不分先后。
步骤7、帧封装模块A507将误差熵编码R1e和数据熵编码Se组合,再加上帧头信息Hi,输出完整的编码帧,从而形成编码比特流B1。其中,帧头信息Hi携带当前编码帧的编码模式;当然,根据具体的应用需求,该帧头信息还可以携带帧长、编码速率和量化编码表格等信息。
参见图5c,该图为编码帧结构和编码比特流的示意图。其中,编码比特流B1包括多个编码帧:编码帧i-1、编码帧i和编码帧i+1,等等,而编码帧则包括帧头信息、数据熵编码Se和误差熵编码R1e。
该编码比特流B1根据实际应用的需求,即可以送入信道进行传输,也可以存入存储介质中。
(二)解码解压器
步骤1、帧解封模块B501从编码比特流B1中接收到编码帧后,将编码帧分解为帧头信息、误差熵编码R1e和数据熵编码Se,然后将误差熵编码R1e发送给误差熵解码模块B502,将数据熵编码Se发送给数据熵解码模块B503。
步骤2、误差熵解码模块B502采用Huffman解码对误差熵编码R1e进行熵解码,得到误差压缩编码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’进行相加,得到重构数据Sr1
需说明的是,以上仅仅以编码帧中包括帧头信息为例进行说明,编码帧中不包括帧头信息的处理流程与此类似,具体可参见前面实施例,在此不再赘述。
由上可知,本实施例将压缩编码算法分成两级进行,第一级是对原始数据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进行熵编码,得到误差熵编码R1e,然后将误差熵编码R1e发送给帧封装模块A607。
步骤9、数据熵编码模块A606采用Huffman编码算法对数据压缩编码Sc进行熵编码,得到数据熵编码Se,然后将数据熵编码Se发送给帧封装模块A607。步骤6与步骤2~5的执行不分先后。
步骤7、帧封装模块A607将二级误差熵编码R2e、误差熵编码R1e和数据熵编码Se组合,再加上帧头信息Hi,输出完整的编码帧,从而形成编码比特流B1
参见图6c,该图为编码帧结构和编码比特流的示意图。其中,编码比特流B1包括多个编码帧:编码帧i-1、编码帧i和编码帧i+1,等等,而编码帧则包括帧头信息、数据熵编码Se、误差熵编码R1e和二级误差熵编码R2e。
该编码比特流B1根据实际应用的需求,即可以送入信道进行传输,也可以存入存储介质中。
(二)解码解压器
步骤1、帧解封模块B601从编码比特流B1中接收到编码帧后,将编码帧分解为帧头信息、二级误差熵编码R2e、误差熵编码R1e和数据熵编码Se,然后将二级误差熵编码R2e发送给二级误差熵解码模块B607,将误差熵编码R1e发送给误差熵解码模块B602,将数据熵编码Se发送给数据熵解码模块B603。
步骤2、二级误差熵解码模块B607采用Huffman解码对二级误差熵编码R2e进行熵解码,得到二级误差R2,然后将二级误差R2发送给解码解压器的加法器B606。
误差熵解码模块B602采用Huffman解码对误差熵编码R1e进行熵解码,得到误差压缩编码R1c,然后将误差压缩编码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分别对这两级压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比,而且,由于在本方案中,压缩编码单元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)变换器与其它部件的数据交换等。
面向存储的数据压缩系统可以包括:数据的高效存储、数字媒体存储、数字图书馆等。
由上可知,本实施例提供的通信系统中的压缩编码器可以将压缩编码算法分成两级进行,第一级是对原始数据进行压缩编码,第二级是对在第一级压缩编码时所产生的误差进行压缩编码,然后再分别对这两级压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,由于本方案对数据进行了多次压缩编码,所以相对于现有技术只进行一次压缩编码而言,可以达到较高的压缩比,而且,由于在本方案中,压缩编码器除了对原始数据进行压缩编码外,还特别对第一级压缩编码时所产生的误差进行了压缩编码,并分别对压缩编码得到的数据压缩编码和误差压缩编码进行熵编码,所以相对于现有技术而言,可以提高压缩质量。
进一步的,由于可以将本发明实施例提供的通信系统应用在面向通信的数据压缩和传输系统中或面向存储的数据压缩系统中,所以可以提高面向通信的数据压缩和传输系统或面向存储的数据压缩系统的处理性能,即,如果将本发明实施例提供的通信系统应用在面向通信的数据压缩和传输系统中,则可以提高通信信号和数据的传输效率,提高信道的利用率,从而降低运营成本;如果将本发明实施例提供的通信系统应用在面向存储的数据压缩系统中,则可以提高通信信号和数据的存储效率,提高存储设备利用率,从而降低系统和设备的硬件成本。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的压缩编码方法、解码解压方法、装置和通信系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种压缩编码方法,其特征在于,包括:
分别对原始数据和误差数据进行压缩编码,得到数据压缩编码和误差压缩编码,所述误差数据为对所述原始数据进行压缩编码所产生的误差;
分别对所述数据压缩编码和所述误差压缩编码进行熵编码,得到数据熵编码和误差熵编码;
将所述数据熵编码和所述误差熵编码进行帧封装以形成编码帧。
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所述的解码解压器。
CN 201010298614 2010-09-29 2010-09-29 压缩编码方法、解码解压方法、装置和通信系统 Active CN101945286B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN 201010298614 CN101945286B (zh) 2010-09-29 2010-09-29 压缩编码方法、解码解压方法、装置和通信系统
PCT/CN2011/074850 WO2011137841A1 (zh) 2010-09-29 2011-05-30 压缩编码方法及装置、解码解压方法及装置、以及通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010298614 CN101945286B (zh) 2010-09-29 2010-09-29 压缩编码方法、解码解压方法、装置和通信系统

Publications (2)

Publication Number Publication Date
CN101945286A true CN101945286A (zh) 2011-01-12
CN101945286B CN101945286B (zh) 2013-06-05

Family

ID=43437008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010298614 Active CN101945286B (zh) 2010-09-29 2010-09-29 压缩编码方法、解码解压方法、装置和通信系统

Country Status (2)

Country Link
CN (1) CN101945286B (zh)
WO (1) WO2011137841A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137841A1 (zh) * 2010-09-29 2011-11-10 华为技术有限公司 压缩编码方法及装置、解码解压方法及装置、以及通信系统
CN103079075A (zh) * 2013-01-23 2013-05-01 清华大学 面向生物体腔内图像采集的图像压缩方法
CN104113759A (zh) * 2013-04-17 2014-10-22 展讯通信(上海)有限公司 视频系统、视频帧缓存再压缩/解压缩方法与装置
CN104244012A (zh) * 2014-10-14 2014-12-24 重庆真测科技股份有限公司 一种ct数据压缩方法
CN104679775A (zh) * 2013-12-02 2015-06-03 上海联影医疗科技有限公司 一种基于Huffman表的数据处理方法
CN106253910A (zh) * 2016-09-22 2016-12-21 山东华旗新能源科技有限公司 一种压缩编码方法
CN113225160A (zh) * 2021-03-30 2021-08-06 大勺科技(北京)有限公司 基于磁通信的数据发送方法、接收方法、装置及系统
CN114629504A (zh) * 2021-08-05 2022-06-14 中国石油天然气集团有限公司 基于fpga的井下随钻数据压缩方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1639984A (zh) * 2002-03-08 2005-07-13 日本电信电话株式会社 数字信号编码方法、解码方法、编码设备、解码设备、数字信号编码程序和解码程序

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100546196C (zh) * 2005-12-01 2009-09-30 武汉大学 一种二维矢量数据的压缩方法
CN100508608C (zh) * 2006-06-02 2009-07-01 清华大学 一种无预测循环的抗误码视频编解码方法
CN101945286B (zh) * 2010-09-29 2013-06-05 上海华为技术有限公司 压缩编码方法、解码解压方法、装置和通信系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1639984A (zh) * 2002-03-08 2005-07-13 日本电信电话株式会社 数字信号编码方法、解码方法、编码设备、解码设备、数字信号编码程序和解码程序

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137841A1 (zh) * 2010-09-29 2011-11-10 华为技术有限公司 压缩编码方法及装置、解码解压方法及装置、以及通信系统
CN103079075A (zh) * 2013-01-23 2013-05-01 清华大学 面向生物体腔内图像采集的图像压缩方法
CN103079075B (zh) * 2013-01-23 2016-02-24 清华大学 面向生物体腔内图像采集的图像压缩方法
CN104113759A (zh) * 2013-04-17 2014-10-22 展讯通信(上海)有限公司 视频系统、视频帧缓存再压缩/解压缩方法与装置
CN104679775B (zh) * 2013-12-02 2019-04-23 上海联影医疗科技有限公司 一种基于Huffman表的数据处理方法
CN104679775A (zh) * 2013-12-02 2015-06-03 上海联影医疗科技有限公司 一种基于Huffman表的数据处理方法
CN104244012A (zh) * 2014-10-14 2014-12-24 重庆真测科技股份有限公司 一种ct数据压缩方法
CN104244012B (zh) * 2014-10-14 2017-08-04 重庆真测科技股份有限公司 一种ct数据压缩方法
CN106253910A (zh) * 2016-09-22 2016-12-21 山东华旗新能源科技有限公司 一种压缩编码方法
CN113225160A (zh) * 2021-03-30 2021-08-06 大勺科技(北京)有限公司 基于磁通信的数据发送方法、接收方法、装置及系统
CN113225160B (zh) * 2021-03-30 2022-04-12 大勺科技(北京)有限公司 基于磁通信的数据发送方法、接收方法、装置及系统
CN114629504A (zh) * 2021-08-05 2022-06-14 中国石油天然气集团有限公司 基于fpga的井下随钻数据压缩方法和系统
CN114629504B (zh) * 2021-08-05 2024-04-30 中国石油天然气集团有限公司 基于fpga的井下随钻数据压缩方法和系统

Also Published As

Publication number Publication date
WO2011137841A1 (zh) 2011-11-10
CN101945286B (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
CN101945286B (zh) 压缩编码方法、解码解压方法、装置和通信系统
CN101160726B (zh) 参数压缩单元和解码器以及相应的方法
KR101737294B1 (ko) 심볼 압축을 수반하는 데이터의 소스 코딩 및 디코딩을 위한 방법들 및 디바이스들
CN101779377B (zh) 编码源信号/解码数据分组序列的设备和方法
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
JP6573640B2 (ja) オーディオ・エンコーダおよびデコーダ
TWI453734B (zh) 用以將符號編碼之方法、用以將符號解碼之方法、用以將符號從發送器發送至接收器之方法、編碼器、解碼器、及用以將符號從發送器發送至接收器之系統
ZA200408780B (en) Method and system for multi-rate lattice vector quantization of a signal.
US7743309B2 (en) Distributed source coding with context
CN103873877A (zh) 远程桌面的图像传输方法及装置
EP1854218B1 (en) Lossless encoding of information with guaranteed maximum bitrate
CN104125475B (zh) 一种多维量子数据压缩、解压缩方法及装置
US10049683B2 (en) Audio encoder and decoder
US20100017196A1 (en) Method, system, and apparatus for compression or decompression of digital signals
EP3507799A1 (en) Quantizer with index coding and bit scheduling
JP4163680B2 (ja) コードワードインデックスに対してパラメータ値のマッピングを行うための適応型方法およびシステム
CN102055974A (zh) 数据压缩、解压缩方法、装置及系统
CN107277521A (zh) 一种基于hevc视频编码的tu树状结构抉择算法
CN101160725A (zh) 确保最大比特率的无损信息编码
CN113453002B (zh) 量化与熵编码方法及装置
CN104113394B (zh) 通信调制信号的压缩及解压方法
CN102377996B (zh) 上下文自适应可变长编码方法及装置
CN116915264A (zh) 一种数字能源空压站的数据译码方法
Gavrilescu et al. Embedded multiple description scalar quantizers and wavelet-based quadtree coding for progressive image transmission over unreliable channels
JP2013247474A (ja) 符号化・復号化システム及び方法及び符号化プログラム及び復号化プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant