CN101980464B - 数据编码方法、解码方法、编码器和解码器 - Google Patents
数据编码方法、解码方法、编码器和解码器 Download PDFInfo
- Publication number
- CN101980464B CN101980464B CN 201010505926 CN201010505926A CN101980464B CN 101980464 B CN101980464 B CN 101980464B CN 201010505926 CN201010505926 CN 201010505926 CN 201010505926 A CN201010505926 A CN 201010505926A CN 101980464 B CN101980464 B CN 101980464B
- Authority
- CN
- China
- Prior art keywords
- sampling point
- bit
- data
- entropy coding
- positive
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
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
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据编码、解码方法、编码器和解码器。
背景技术
随着通信业务类型和业务量的日益增长,通信网络中需要进行传输的数据量急剧增加,因而需要更多的信道资源和存储空间。
现有的通信网络中传输的信号通常包括语音、图像和视频信号等,这些多媒体信号自身具有高度的相关性和统计特性,具有较好的数学和物理模型,因而具有了较好的数据编码方法。
发明人在研究现有技术的过程中发现,现有的数据压缩算法主要针对多媒体数据,由于通信数据一般不具备多媒体数据高度的相关性和统计特性,该数据编码方法在直接应用于通信数据的压缩时,压缩比不够高。
发明内容
本发明提供一种数据编码方法、解码方法、编码器和解码器,可以对通信数据进行高效压缩。
为解决上述技术问题,本发明实施例是通过以下技术方案来实现的:
本发明实施例提供的数据编码方法,包括:
获取数据块中每个样点的正负极性;
获取所述数据块的样点中绝对值最大的样点的最高有效比特位;
获取每个样点中从所述最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,所述n大于1,小于所述绝对值最大的样点的有效数据的位数;
获取每个样点中从所述最高有效比特位开始的数据中除所述高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码;
输出编码后的编码帧,所述编码帧中包括所述最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据。
本发明实施例提供了一种数据解码方法,包括:
获取接收到的编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
对所述编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据;
对所述编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据;
根据接收到的编码帧中包含的最高有效比特位对每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
本发明实施例还提供了一种数据编码方法,包括:
获取数据块中每个样点的正负极性;
获取所述数据块的样点中绝对值最大的样点的最高有效比特位p;
获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位;
对每个样点的左移位数p-d分别进行第四类熵编码;
对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码;
输出编码后的编码帧,所述编码帧中包含所述最高有效比特位P、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第五类熵编码或第二类量化编码后的有效数据。
本发明实施例还提供了一种数据解码方法,包括:
获取编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
对所述编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数;
对所述编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据;
根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
本发明实施例还提供了一种编码器,包括:
第一预处理单元,用于获取数据块中每个样点的正负极性,以及数据块的样点中绝对值最大的样点的最高有效比特位;
高比特位编码单元,用于获取每个样点中从所述最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,所述n大于1,小于所述绝对值最大的样点的有效数据的位数;
低比特位编码单元,用于获取每个样点中从所述最高有效比特位开始的数据中除所述高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码;
第一编码输出单元,用于输出编码后的编码帧,所述编码帧中包括所述最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据组成的编码帧。
本发明实施例还提供了一种解码器,包括:
第一极性获取单元,用于获取接收到的编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
高比特位解码单元,用于对所述编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据;
低比特位解码单元,用于对所述编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据;
第一数据组装单元,用于根据接收到的编码帧中包含的最高有效比特位将每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
本发明实施例还提供了一种编码器,包括:
第二预处理单元,用于获取数据块中每个样点的正负极性以及所述数据块的样点中绝对值最大的样点的最高有效比特位p;
移位单元,用于获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位;
移位信息编码单元,用于对每个样点的左移位数p-d分别进行第四类熵编码;
有效数据编码单元,用于对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码;
第二编码输出单元,用于输出编码后的编码帧,所述编码帧中包含所述最高有效比特位P、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第五类熵编码或第二类量化编码后的有效数据。
本发明实施例还提供了一种解码器,包括:
第二极性获取单元,用于获取编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
左移位数解码单元,用于对所述编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数;
有效数据解码单元,用于对所述编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据;
第二数据组装单元,用于根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
在本发明实施例中,通信数据的高比特位数据表示的是通信数据的主要信息,具有非均匀分布的特性,低比特位数据表示的是通信数据的次要信息,在整个动态范围内呈非均匀分布,在局部动态范围内分部较为均匀,本发明实施例对每个样点的高比特位数据进行熵编码,对低比特位数据进行熵编码或量化编码,充分利用了高比特位数据和低比特位数据的不同分布特性,通过选择对应的编码方式,可以具有较高的编码效率,压缩比较高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据编码方法的流程图;
图2是本发明实施例二提供的数据解码方法的方法流程图;
图3是本发明实施例中编码前的原始数据的结构示意图;
图4是本发明实施例中编码前的数据块的结构示意图;
图5是本发明实施例一提供的数据编码方法中对数据块进行划分的示意图;
图6是本发明实施例中原始数据的概率分布图;
图7是本发明实施例中原始数据的高比特位数据的概率分布图;
图8是本发明实施例中原始数据的低比特位数据的概率分布图;
图9是本发明实施例中有效比特位数Q为6的原始数据的低比特位数据的概率分布图;
图10是本发明实施例中有效比特位数Q为7的原始数据的低比特位数据的概率分布图;
图11是本发明实施例一中的编码帧的结构示意图;
图12是本发明实施例三提供的数据编码方法的方法流程图;
图13是本发明实施例四提供的数据解码方法的方法流程图;
图14是本发明实施例三提高的数据编码方法中对数据块进行划分的示意图;
图15是本发明实施例中原始数据的左移位数的概率分布图;
图16是本发明实施例中原始数据的有效数据的概率分布图;
图17是本发明实施例中最高有效比特位数P为7的原始数据的有效数据的概率分布图;
图18是本发明实施例中最高有效比特位数P为8的原始数据的有效数据的概率分布图;
图19是本发明实施例三提供的编码帧的结构示意图;
图20是本发明实施例五提供的编码器的结构示意图;
图21是本发明实施例五提供的编码器的原理框图;
图22是本发明实施例六提供的解码器的结构示意图;
图23是本发明实施例六提供的解码器的原理框图;
图24是本发明实施例七提供的编码器的结构示意图;
图25是本发明实施例七提供的编码器的原理框图;
图26是本发明实施例八提供的解码器的结构示意图;
图27是本发明实施例八提供的解码器的原理框图;
图28是本发明实施例提供的解码器和编码器的应用场景图;
图29是本发明实施例提供的解码器和编码器的又一应用场景图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种数据编码方法、解码方法,解码器和编码器。为了更好的理解本发明的技术方案,下面结合附图对本发明提供的实施例进行详细地描述。
参见图1,图1是本发明实施例一提供的数据编码方法的流程图。
在本发明实施例中,需要编码的通信数据可以以数据块为单位。其中,数据块中包含的样点个数可以根据编码的压缩比以及延时要求来确定,即延时要求越低,数据块中包含的样点的数量越多,压缩比越高,数据块中包含的样点的数量越多。本发明实施例一提供的数据编码方法可以包括:
101、获取数据块中每个样点的正负性。
具体的,编码器可以获取需要编码的数据块中每个样点的正负极性。其中,数据块由L个样点组成,L的大小是可调的。数据块中每个样点以补码的形式表示。
编码器可以根据每个样点的符号位来获取数据块中每个样点的正负性。
102、获取数据块的样点中绝对值最大的样点的最高有效比特位。
具体的,编码器可以对数据块的L个样点分别取绝对值,然后获得绝对值最大的样点,获取该绝对值最大的样点的最高有效比特位。在本发明实施例中,样点的绝对值的比特位的最高位称为样点的最高有效比特位。或者说,最高有效比特位,从非符号位从右往左数的第一个非零比特位为最高有效比特位。可以理解的是,最高有效比特位也可以适当的高于该非零比特位。
103、获取每个样点中从最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,n大于1,小于绝对值最大的样点的有效数据的位数。
在本发明实施例中,编码器在获得数据块的最高有效比特位之后,将从最高有效比特开始向右数n个比特划分为高比特位数据,剩余比特划分为低比特位数据,其中n为大于1,小于绝对值最大的样点的有效数据的位数的整数。其中,n值的大小可以根据不同的通信数据的高比特位数据的统计规律来进行确定。在本发明实施例中,每个样点中除符号位、符号扩展位、填充的零之后的比特称为有效数据。例如,-5,用补码的形式表示,为10000101,第一位为符号位,用“1”表示负极性,“000”为填充的零,“101”为有效数据。
具体的,编码器对每个样点的高比特位数据分别进行第一类熵编码,例如进行霍夫曼编码或算术编码等。
104、获取每个样点中从最高有效比特位开始的数据中除高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码。
具体的,编码器获取每个样点中从最高有效比特位开始的数据中除高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码,例如第二类熵编码可以为霍夫曼编码,第一类量化编码可以为非均匀量化编码等。
在本发明实施例中,第一类熵编码、第二类熵编码以及第三类熵编码的类型均是熵编码,但具体采用的熵编码类型可以根据具体的数据统计规律来确定,比如Huffman编码,算术编码和游程长度编码等。
105、输出编码后的编码帧,编码帧中包括最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据。
具体的,编码器在对高比特位数据和低比特位数据编码完成后,输出编码后的编码帧,该编码帧中包括最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据组成的编码帧,多个编码帧构成编码比特流,完成数据编码过程。可以理解的是,最高有效比特位可以携带在编码帧的帧头中。
在本发明实施例中,通信数据的高比特位数据具有非均匀分布的特性,低比特位数据在整个动态范围内呈非均匀分布,在局部动态范围内分部较为均匀,本发明实施例对每个样点的高比特位数据进行第一类熵编码,对低比特位数据进行第二类熵编码或第一类量化编码,充分利用了高比特位数据和低比特位数据的不同分布特性,通过选择对应的编码方式,可以具有较高的编码效率,压缩比较高。
进一步的,在本发明实施例中,携带每个样点的正负极性的码字可以为不经过熵编码的每个样点的正负极性,或者每个样点的第三类熵编码后的正负极性。对应的,编码后输出的编码帧中包括最高有效比特位、每个样点的第三类熵编码后的正负极性、第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据。在本发明实施例中,对每个样点的正负极性进行第三类熵编码可以进一步提高编码效率。
在本发明实施例中,在对高比特位数据和低比特位数据进行编码时可以选择预设的编码方式和编码参数,编码方式和编码参数在本发明实施例中统称为编码信息。另外,编码器在进行对高比特位数据和低比特位数据进行编码时,还可以根据不同类型的通信数据灵活选择编码方式和编码参数,此时本发明实施例提供的编码方法还包括:获取每个样点的高比特位数据第一类熵编码的编码信息和低比特位数据第一类量化编码或第二类熵编码的编码信息。编码器在获得编码信息后,将编码信息通过编码帧发送,以便于解码器根据编码信息进行对应的解码。在本发明实施例中,编码帧中还进一步包括每个样点的高比特位数据第一类熵编码的编码信息和低比特位数据第二类熵编码或第一类量化编码的编码信息。
在本发明实施例中,通过在编码帧中增加编码信息,可以使得编码器在进行熵编码或量化编码可以选择更多的编码方式,而不受预设的编码方式的限制,适应范围更广。
实施例二
参见图2,图2是本发明实施例二提供的数据解码方法的方法流程图。
在本发明实施例中,解码器在接收到编码器发送的编码比特流之后,解码器以帧为单位对编码比特流进行解码,在本发明实施例二提供的数据编码方法可以包括:
201、获取接收到的编码帧中携带每个样点的正负极性的码字,根据码字获取每个样点的正负极性。
具体的,解码器获取编码帧中携带每个样点的正负极性的码字,根据该码字来获取每个样点的正负极性。其中,携带每个样点的正负极性的码字可以为每个样点的正负极性,解码器不需要解码即可获得每个样点的正负极性。
202、对编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据。
具体的,解码器可以根据数据块中包含的样点的个数对编码帧中熵编码后的高比特位数据按照与编码方式对应的解码方式进行解码,获得每个样点的高比特位数据。
其中,编码器使用的编码方式和解码器使用的解码方式可以为预设的编码方式和解码方式。
203、对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据。
具体的,解码器可以根据数据块中包含的样点的个数对编码帧中量化编码或熵编码后的低比特位数据按照与编码器使用的编码方式对应的解码方式进行解码,进而获得每个样点的低比特位数据。
204、根据接收到的编码帧中包含的最高有效比特位将每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
在本发明实施例中,每个样点以补码的形式进行存储,样点的位数例如为16位、32位等。解码器在获得每个样点的正负极性、解码后的高比特位数据和解码后的低比特位数据之后,按照符号位、高比特位数据、低比特位数据的顺序将每个样点的正负极性、对应的高比特位数据和低比特位数据进行组装获得原始数据块,完成数据解码过程。其中,在进行数据组装的过程中需要根据接收到的编码帧中包含的最高有效比特位来确定每个样点的符号扩展位中零的个数。
在本发明实施例提供的解码方法为实施例一中提供的编码方法提供支持,由于通信数据的高比特位数据表示的是通信数据的主要信息,具有非均匀分布的特性,低比特位数据表示的是通信数据的次要信息,在整个动态范围内呈非均匀分布,在局部动态范围内分部较为均匀,本发明实施例对每个样点的高比特位数据进行熵编码,对低比特位数据进行熵编码或量化编码,充分利用了高比特位数据和低比特位数据的不同分布特性,通过选择对应的编码方式,可以具有较高的编码效率,数据压缩比较高。
进一步的,在本发明实施例中根据码字获取每个样点的正负极性具体可以为:对每个样点的正负极性的码字分别进行熵解码,获得每个样点的正负极性。其中,对正负极性的码字进行熵解码的解码方式和发送端对每个样点的正负极性进行第三类熵编码的编码方式对应。
进一步的,编码器发送的编码帧中还可以包括每个样点的高比特位数据熵编码的编码信息和低比特位数据熵编码或量化编码的编码信息,其中编码信息包括编码方式和编码参数,编码参数中可以包括编码使用的量化表格。可以理解的是,编码信息可以携带在编码帧的帧头中。
在编码帧中携带编码信息的情况下,对编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据的步骤(202),具体为:根据每个样点的高比特位数据熵编码的编码信息对编码帧中熵编码后的高比特位数据进行熵解码,获得每个样点的高比特位数据。其中,对该熵编码后的高比特位数据进行熵解码的解码方式根据编码信息来确定,即采用和编码方式和对应的解码方式对熵编码后的高比特位数据进行解码。
另外,在编码帧中携带编码信息的情况下,上述对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据的步骤(203)具体为:根据每个样点的低比特位数据熵编码或量化编码的编码信息对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位信息。其中,对编码帧中量化编码或熵编码后的低比特位数据进行解码的解码方式根据编码信息来确定,即采用和编码方式和对应的解码方式对熵编码或量化编码后的低比特位数据进行解码。
进一步的,在本发明实施例中,上述对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据的步骤(203)具体可以包括:
1)对编码帧中熵编码后的低比特数据进行熵解码,获得每个样点的低比特位数据。
2)对编码帧中量化编码后的低比特位数据进行反量化处理,获得每个样点的低比特位数据,从而有失真的恢复低比特位数据。
为更详细的理解本发明实施例一提供的数据编码方法、实施例二提供的数据解码方法,下面再给出本发明实施例的具体应用场景。
参见图3,图3是本发明实施例中编码前的原始数据的结构示意图。
其中,S表示符号位所占据的比特位,共m比特,D表示有效数据占据的比特位,共n比特。图中BH表示数据的最高比特位、BL表示数据的最低比特位、BM表示数据有效位的最高比特位。
参见图4,图4是本发明实施例中编码前的数据块的结构示意图。
其中,编码器以数据块为单位对原始数据进行编码,根据原始数据的分布特点,数据块中每个样点的S区域和D区域具有随机性。
参见图5,图5是本发明实施例中对数据块进行划分的示意图。
编码器对数据块进行划分,得到符号位、高比特位和低比特位,每个部分分别占n0、n1和n2比特。编码器在对数据块进行划分时,首先提取数据块中各个样点的符号位Ss,根据符号位获取每个样点的正负极性。编码器可以对每个样点取绝对值,获取L个样点中绝对值最大的样点,确定该样点的最高有效比特位。在确定最高有效比特位后,将每个样点中从最高有效比特位开始向右数n1个比特划分为高比特位数据Sh,将有效数据中的剩余n2比特划分为低比特位数据S1。
其中,本发明实施例可以使用状态0、1来表示每帧数据中各个样点的正负极性,例如,0标识该样点为负,1标识该样点为正;或者0表示样点值为正,而1表示样点值为负。每个样点的符号位在进行处理后,获得二进制的携带每个样点的正负极性的码字Ssc。
图6所示是一个原始数据的概率分布实例,它所对应的高比特位数据的概率分布由图7给出。可以看出,高比特位数据Sh出现的概率是不均等的,这就为采用熵编码进行数据压缩提供了依据,因此本发明实施例采用熵编码方法对高比特位数据Sh进行无失真的熵编码,得到高比特位数据熵编码She。熵编码可以采用Huffman编码、算术编码或其它不等长编码算法、或它们的组合算法。其中,对高比特位数据进行熵编码的编码方式和编码参数等编码信息可以保存在帧头信息中,帧头信息保存在编码帧中进行输出。
另外,本发明实施例对低比特数据进行编码可采用无失真编码(熵编码)和有失真编码(量化编码)两种方法。在有失真编码模式下,为了使编码器保持比较低的算法复杂度,可以采用算法简单的标量量化方法。在进行量化编码时需要获取低比特位数据的动态范围,根据该动态范围确定标量量化表,然后根据标量量化表进行编码。
在实际应用中,有效数据在整个动态范围之内呈非均匀分布,但在局部动态范围内分布较为均匀。图6所示是一个原始数据S的概率分布实例,它所对应的低比特位数据的概率分布由图8给出,可以看出,低比特位数据整体上为非均匀分布,动态范围较大。在低比特位数据的有效比特数Q已知的情况下,可以将进行分类,图9和图10分别给出了有效比特位数Q为6和7的低比特位数据的概率分布,可以看出其分布较为均匀,动态范围较小,如果对两部分数据分开量化,量化更加精确。因此对低比特位数据的压缩编码算法可以采用分类的量化编码算法,例如采用Lloyd-Max非均匀标量量化算法。其中,对低比特位数据进行熵编码或量化编码的编码方式和编码参数等编码信息可以保存在帧头信息中,帧头信息通过编码帧进行输出。
在本发明实施例中,编码器将编码后得到的正负极性编码的码字Ssc、高比特位编码Shc和低比特位编码S1c组合,结合帧头信息,组成一个完整的编码帧,图11给出了本发明实施例提供的编码比特流B1中编码帧的结构示意图。不同编码帧按照输出的时间顺序排列,便形成了编码器输出的编码比特流B1,如图11所示。其中,帧头信息中还可以包括数据块中样点的个数,数据块中的最高有效比特位等。需要说明的是,如果编码器和解码器使用预设的解码类型和编码类型,并且数据块中每个样点的长度、样点的个数均是预设值的情况下,编码帧中可以不需要携带帧头信息。
在解码器,以编码帧为单位对编码比特流进行解码,解码器可以读取帧头信息并保存,接下来根据二进制比特流的0、1状态来确定每个样点的正负极性。其次,解码器进行无失真的熵解码恢复高比特位数据并保存,熵解码采用的具体方法要和编码器相对应。在根据帧头信息获得编码器对低比特位数据进行熵编码的情况下,解码器通过帧头信息确定低比特位数据的有效比特数,并对熵编码后的低比特位数据进行熵解码,进而实现对低比特位数据的无失真解码。而有失真编码时,解码器对编码后的低比特数据进行反量化处理,具体过程包括:从输入比特流中恢复低比特位数据的量化下标值,然后根据帧头信息确定了低比特位数据的动态范围,以此确定标量量化码表,进行反量化处理,通过下标索引在量化表中搜索对应的量化值,实现低比特数据位的有失真解码。最后,解码器根据解码得到的每个样点的正负极性、高比特位数据和低比特位数据进行组装,得到原始数据块并输出,完成一个编码帧的解码,并准备进行下一帧的解码,直到解码结束。
实施例三
参见图12,图12是本发明实施例三提供的数据编码方法的方法流程图。
在本发明实施例提供的数据编码方法可以包括:
在本发明实施例中,需要编码的通信数据可以以数据块为单位。其中,数据块中包含的样点个数可以根据编码的压缩比以及延时要求来确定,即延时要求越低,数据块中包含的样点的数量越多,压缩比越高,数据块中包含的样点的数量越多。本发明实施例三提供的数据编码方法可以包括:
301、获取数据块中每个样点的正负极性。
具体的,编码器可以获取需要编码的数据块中每个样点的正负极性。其中,数据块由L个样点组成,L的大小是可调的。数据块中每个样点以补码的形式表示。
编码器可以根据每个样点的符号位来获取数据块中每个样点的正负极性。
302、获取数据块的样点中绝对值最大的样点的最高有效比特位p。
具体的,编码器可以对数据块的L个样点分别取绝对值,然后获得绝对值最大的样点,获取该绝对值最大的样点的最高有效比特位p。在本发明实施例中,样点的绝对值的最高位称为样点的最高有效比特位。
303、获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位。
在本发明实施例中,编码器在获得数据块的最高有效比特位之后,进一步获取每个样点的最高有效比特位d,对每个样点的有效数据位分别进行左移p-d位。其中,样点的有效数据位为样点的二进制补码中除符号位以外的数据位。
304、对每个样点的左移位数p-d分别进行第四类熵编码。
具体的,编码器对每个样点的左移位数分布进行第四类熵编码,例如进行霍夫曼编码或算术编码等。
305、对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码。
具体的,编码器对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码,第五类熵编码可以为霍夫曼编码等,第二类量化编码可以为非均匀量化编码等。
306、输出编码后的编码帧,编码帧中包含最高有效比特位p、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第二类量化编码或第五类熵编码后的有效数据。
具体的,编码器在对每个样点的左移位数和移位后的有效数据进行编码完成后,输出编码后的编码帧,该编码帧中包含最高有效比特位p、携带每个样点的正负极性的码字、每个样点的第四类熵编码后的左移位数以及第二类量化编码或第五类熵编码后的有效数据,编码器输出的多个编码帧构成编码比特流,完成数据编码过程。
在本发明实施例中,通信数据在移位后生成的左移位数和移位后产生的有效数据反映了原始数据的分布规律。其中,左移位数表示的是通信数据的主要信息,具有非均匀分布特性,而移位后的有效数据表示的是通信数据的次要信息,在整个动态范围内呈非均匀分布,在局部动态范围内分部较为均匀,本发明实施例对每个样点的左移位数进行熵编码,对移位后的有效数据进行熵编码或量化编码,充分利用了左移位数和移位后的有效数据的不同分布特性,通过选择对应的编码方式,可以具有较高的编码效率,压缩比较高。
进一步的,在本发明实施例中,携带每个样点的正负极性的码字可以为不经过熵编码的每个样点的正负极性,或者每个样点的第六类熵编码后的正负极性。对应的,编码后输出的编码帧中包括每个样点的第六类熵编码后的正负极性、第四类熵编码后的左移位数以及第二类量化编码或第五类熵编码后的有效数据。在本发明实施例中,对每个样点的正负极性进行熵编码可以进一步提高编码效率。
在本发明实施例中,第四类熵编码、第五类熵编码以及第六类熵编码的类型均是熵编码,但具体采用的熵编码类型可以根据具体的数据统计规律来确定。第一类量化编码和第二类量化编码的类型均是量化编码,但具体采用的量化编码类型可以根据具体的数据统计规律来确定。
在本发明实施例中,在对左移位数和移位后的有效数据进行编码时可以选择预设的编码方式和编码参数,编码参数中可以包括编码时使用的量化表格,编码方式和编码参数在本发明实施例中统称为编码信息。另外,编码器在进行对左移位数和移位后的有效数据进行编码时,还可以根据不同类型的通信数据灵活选择编码方式和编码参数,此时本发明实施例提供的编码方法还包括:获取每个样点的左移位数第四类熵编码的编码信息和移位后的有效数据第二类量化编码或第五类熵编码的编码信息。编码器在获得编码信息后,将编码信息通过编码帧发送,以便于解码器根据编码信息进行对应的解码。在本发明实施例中,编码帧中还进一步包括每个样点的左移位数第四类熵编码的编码信息和移位后的有效数据第五类熵编码或第二类量化编码的编码信息。
在本发明实施例中,通过在编码帧中增加编码信息,可以使得编码器在进行熵编码或量化编码可以选择更多的编码方式,而不受预设的编码方式的限制,适应范围更广。
实施例四
参见图13,图13是本发明实施例四提供的数据解码方法的方法流程图。
在本发明实施例中,解码器在接收到编码器发送的编码比特流之后,解码器以帧为单位对编码比特流进行解码,在本发明实施例四提供的数据编码方法可以包括:
401、获取编码帧中携带每个样点的正负极性的码字,根据码字获取每个样点的正负极性。
具体的,解码器获取编码帧中携带每个样点的正负极性的码字,根据该码字来获取每个样点的正负极性。其中,携带每个样点的正负极性的码字可以为每个样点的正负极性,解码器不需要解码即可获得每个样点的正负极性。
402、对编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数。
具体的,解码器可以根据数据块中样点的数量对编码帧中熵编码后的左移位数按照与编码方式对应的解码方式进行解码,获得每个样点的有效数据的左移位数。
其中,编码器使用的编码方式和解码器使用的解码方式可以为预设的编码方式和解码方式。
403、对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据。
具体的,解码器可以根据数据块中样点的数量对编码帧中量化编码或熵编码后的有效数据按照与编码器使用的编码方式对应的解码方式进行解码,进而获得每个样点的移位后的有效数据。
404、根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
在本发明实施例中,每个样点以补码的形式进行存储,样点的位数例如为16位、32位等。解码器在获得每个样点的正负极性、有效数据的左移位数以及移位后的有效数据后,对样点的正负极性和有效数据进行组装,获得原始数据块,完成数据解码过程。其中,在进行数据组装时,需要将移位后的有效数据的位置向右移动相应的位数,右移的位数和左移位数相等。在进行数据组装的过程中需要根据接收到的编码帧中包含的绝对值最大的样点的最高有效比特位来确定每个样点的符号扩展位中零的个数。
在本发明实施例四提供的解码方法为实施例三中提供的解码方法提供支持,通信数据在移位后生成的左移位数和移位后产生的有效数据反映了原始数据的分布规律。其中,左移位数具有非均匀分布特性,而移位后的有效数据在整个动态范围内呈非均匀分布,在局部动态范围内分部较为均匀,本发明实施例对每个样点的左移位数进行熵编码,对移位后的有效数据进行熵编码或量化编码,充分利用了左移位数和移位后的有效数据的不同分布特性,通过选择对应的编码方式,可以具有较高的编码效率,压缩比较高。
进一步的,在本发明实施例中根据码字获取每个样点的正负极性具体可以为:对每个样点的正负极性的码字分别进行熵解码,获得每个样点的正负极性。其中,对正负极性的码字进行熵解码的解码方式和发送端对每个样点的正负极性进行熵编码的编码方式对应。
进一步的,编码器发送的编码帧中还可以包括每个样点的左移位数熵编码的编码信息和移位后的有效数据熵编码或量化编码的编码信息,其中编码信息包括编码方式和编码参数,编码参数可以中可以包括编码使用的量化表格。在编码帧中携带编码信息的情况下,对编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数的步骤(402),具体为:根据每个样点的左移位数熵编码的编码信息对编码帧中熵编码后的左移位数进行熵解码,获得每个样点的有效数据的左移位数。其中,对该熵编码后的左移位数进行熵解码的具体解码方式根据编码信息来确定,即采用和编码方式对应的解码方式对熵编码后的左移位数进行解码,例如编码方式为熵编码,则对应的解码方式为熵解码。
另外,在编码帧中携带编码信息的情况下,上述对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据的步骤(403)具体为:根据每个样点的低比特位数据熵编码或量化编码的编码信息对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位信息。其中,对编码帧中量化编码或熵编码后的低比特位数据进行解码的具体解码方式根据编码信息来确定,即采用和编码方式和对应的解码方式对熵编码或量化编码后的低比特位数据进行解码。
进一步的,在本发明实施例中,上述对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据的步骤(403)具体可以包括:
1)对编码帧中熵编码后的有效数据进行熵解码,获得每个样点的低比特位数据。
2)对编码帧中量化编码后的有效数据进行反量化处理,获得每个样点的移位后的有效数据,从而有失真的恢复移位后的有效数据。
为更详细的理解本发明实施例三提供的数据编码方法、实施例四提供的数据解码方法,下面再给出本发明实施例的具体应用场景。
参见图14,图14是本发明实施例三提高的数据编码方法中对数据块进行划分的示意图。
其中,编码器以数据块为单位对原始数据进行编码,根据原始数据的分布特点,数据块中每个样点的S区域和D区域具有随机性。编码器对数据块进行划分并移位,得到符号位、左移位数和移位后的有效数据,每个部分分别占n3、L和n4比特。其中,n3包括符号位和符号扩展位的位数,符号位表示样点的正负极性,左移位数L的具体位数可以根据样点的位数来确定,例如样点的位数为32,则左移位数L可以用5位来表示,样点的位数为16,则左移位数L可以用4位来表示,样点的位数为8,则左移位数L可以用3位来表示。
编码器在对数据块进行划分时,首先提取数据块中各个样点的符号位Ss,根据符号位获取每个样点的正负极性。编码器可以对每个样点取绝对值,获取L个样点中绝对值最大的样点,获取该样点的最高有效比特位P。在确定绝对值最大的样点的最高有效比特位P后,接下来依次确定每个样点的最高有效比特位di,将每个样点左移P-di位,即得到移位后的有效数据。其中,i取值1.2...L。
其中,本发明实施例可以使用状态0、1来表示每帧数据中各个样点的正负极性,例如0标识该样点为负,1标识该样点为正;或者0表示样点值为正,而1表示样点值为负。每个样点的符号位在进行处理后,获得二进制的携带每个样点的正负极性编码的码字Ssc。
图6所示是一个原始数据的概率分布实例,它所对应的左移位数的概率分布由图15给出。可以看出,左移位数出现的概率是不均等的,这就为采用熵编码进行数据压缩提供了依据,因此本发明实施例采用熵编码方法对左移位数进行无失真的熵编码,得到移位信息编码Smc。熵编码可以采用Huffman编码、算术编码或其它不等长编码算法、或它们的组合算法。在本发明实施例中,对左移位数进行熵编码的编码方式和编码参数等编码信息可以保存在帧头信息中,帧头信息保存在编码帧中进行输出。
另外,本发明实施例对有效数据进行编码可采用无失真编码(熵编码)和有失真编码(量化编码)两种方法。在无失真编码模式下,编码器可以得到有效数据的有效比特数,并直接输出相应数量的比特,实现无失真编码。在有失真编码模式下,为了使编码器保持比较低的算法复杂度,可以采用算法简单的标量量化方法。在实际应用中,有效数据在整个动态范围之内呈非均匀分布,但在局部动态范围内分布较为均匀。原始数据S的有效数据的概率分布由图16给出,可以看出,有效数据整体上为非均匀分布,动态范围较大。在数据块中的最高有效比特位已知的情况下,可以将有效数据进行分类,图17和图18分别给出了最高有效比特位P为7和8的有效数据的概率分布,可以看出其分布较为均匀,动态范围较小,如果对两部分数据分开量化,量化更加精确。因此对有效数据的压缩编码算法可以采用分类的量化编码算法,例如采用Lloyd-Max非均匀标量量化算法。其中,对有效数据进行熵编码或量化编码的编码方式和编码参数等编码信息可以保存在帧头信息中,帧头信息通过编码帧进行输出。
在本发明实施例中,编码器将编码后得到的正负极性编码的码字Ssc、移位信息编码Smc和移位后的有效数据编码Sec组合,结合帧头信息,组成一个完整的编码帧,图19给出了编码比特流中编码帧的结构示意图。不同编码帧按照输出的时间顺序排列,便形成了编码器输出的编码比特流B1,如图19所示。其中,帧头信息中还可以包括数据块中样点的个数,数据块中的最高有效比特位等。需要说明的是,如果编码器和解码器使用预设的解码类型和编码类型,并且数据块中每个样点的长度、样点的个数均是预设值的情况下,编码帧中可以不需要携带帧头信息。
在解码器,以编码帧为单位对编码比特流进行解码,解码器可以读取帧头信息并保存,接下来根据二进制比特流的0、1状态来确定每个样点的正负极性。其次,解码器进行无失真的熵解码恢复有效数据的左移位数并保存,熵解码采用的具体解码方式和编码器使用的编码方式相对应。
在根据帧头信息获得编码器对有效数据进行熵编码的情况下,解码器通过当前帧最高有效比特位和移位信息确定有效数据的有效比特数,并依次从输入比特流中读取相应数量的比特进行熵解码,进而实现有效数据的无失真解码。而有失真编码时,解码器对编码后的有效数据进行反量化处理,具体过程包括:从输入比特流中恢复有效数据的量化下标值,然后根据当前帧最高有效比特位确定标量量化码表,进行反量化处理,通过下标索引在量化表中搜索对应的量化值,实现有效数据的有失真解码。最后,解码器根据解码得到的每个样点的正负极性、移位后的有效数据进行组装,得到原始数据块并输出,完成一个编码帧的解码,并准备进行下一帧的解码,直到解码结束。
以上对本发明实施例提供的数据编码方法进行了详细介绍,下面再给出和本发明方法实施例对应的装置。
实施例五
参见图20,图20是本发明实施例五提供的编码器的结构示意图。
本发明实施例十三提供的编码器包括:
第一预处理单元1101,用于获取数据块中每个样点的正负极性,数据块的样点中绝对值最大的样点的最高有效比特位;
高比特位编码单元1102,用于获取每个样点中从所述最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,所述n大于1,小于绝对值最大的样点的有效数据的位数;
低比特位编码单元1103,用于获取每个样点中从所述最高有效比特位开始的数据中除所述高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码;
第一编码输出单元1104,用于输出携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据组成的编码帧。
本发明实施例五提供的编码器可以使用在前述对应的实施例一提供的数据编码方法中,详细执行过程参见上述方法实施例,在此不再重复描述。
在本发明实施例五提供的编码器进一步包括:
第一极性编码单元1105,用于对每个样点的正负极性分别进行第三类熵编码;
上述第一编码输出单元1104输出的编码帧中的携带每个样点的正负极性的码字具体为每个样点的第三类熵编码后的正负极性。
参见图21、图21是本发明实施例五提供的编码器的原理框图。
如图所示,一帧原始数据Sin输入到第一预处理模块1201进行数据分析与处理,预处理包括提取符号位、检测一帧的最高有效比特位、分离高比特位数据和低比特位数据。第一预处理模块1201的基本思想是待编码的信号分布具有随机性,其有效比特区域中的高比特位区域和低比特位区域的统计分布不同,可采用不同的编码方法进行处理。其中,高比特位数据具有非均匀分布特性,而低比特位数据的分布特点是:在整个动态范围之内呈非均匀分布,但在局部动态范围内分布较为均匀,这为低比特数据的压缩编码处理提供了依据。
经过第一预处理模块1201得到的符号位数据Ss、高比特位数据Sh和低比特位数据S1分别送给符号位编码模块1202,高比特位编码模块1203和低比特位编码模块1204,得到符号位编码Ssc、高比特位编码Shc和低比特位编码S1c。符号位编码模块1202使用状态0、1来表示每个样点的正负极性,最终编码生成一组二进制比特流。根据高比特位数据的不均匀分布特性,高比特位编码模块1203采用了无失真的熵编码。熵编码可以采用Huffman编码、算术编码或它们的组合算法。根据低比特位数据的分布特点,低比特位编码模块1204对其进行了分类,分类处理更加精细的反映出每一帧数据的分布特点。在无失真编码状态下,编码器根据当前帧最高有效比特位确定低比特位数据的有效比特数,并将相应数量的比特依次写入输出缓存中,实现无失真编码输出。在有失真编码状态下,低比特位编码模块1204根据当前帧的最高有效比特位对低比特位数据进行分类,并选择相应的量化表格对低比特位数据进行量化编码,实现有失真压缩编码。
最后,第一帧封装模块1205将符号位编码Ssc、高比特位编码She和低比特位编码S1c组合,再结合帧头信息H1,得到完整的编码帧输出,形成编码比特流B1。
参见图22,图22是本发明实施例六提供的解码器的结构示意图。
本发明实施例六提供的解码器包括:
第一极性获取单元1301,用于获取接收到的编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
高比特位解码单元1302,用于对所述编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据;
低比特位解码单元1303,用于对所述编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据;
第一数据组装单元1304,用于根据接收到的编码帧中包含的最高有效比特位将每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
本发明实施例六提供的解码器可以使用在前述对应的实施例二提供的数据解码方法中,详细过程参见上述方法实施例,在此不再重复描述。
参见图23、图23是本发明实施例六提供的解码器的原理框图。
如果所示,解码器在接收到编码比特流后,第一帧解封模块1401将编码比特流中的信息分解成帧头信息H1、符号位编码Ssc、高比特位编码She和低比特位编码S1c。
结合帧头信息H1,符号位编码Ssc经过符号位解码模块1402解码得到符号位Ss,符号位解码模块1402通过判断输入比特流中每个比特的0、1状态来确定当前帧中每个样点的正负极性。
高比特位编码She经过高比特位解码模块1403解码得到高比特位数据Sh,对应于编码端,高比特位解码模块1403进行熵解码处理。
低比特位编码S1c经过低比特位解码模块1404解码得到低比特位数据S1。无失真解码状态下,根据帧头信息,低比特解码模块确定了每个低比特位数据的有效比特数,并从输入比特流中读入相应个数的比特,进行无失真解码。有失真解码状态下,低比特位解码模块1404根据帧头信息对当前帧进行分类,采用相对应的方法进行反量化处理,有失真的恢复低比特位数据,实现有失真解码。
最后,结合帧头信息,第一反预处理模块1405对符号位数据Ss、高比特位数据Sh和低比特位数据S1进行分析处理,确定了一帧原始信号的符号及符号扩展位、高比特位和低比特位,得到重构数据Sr并输出。
参见图24,图24是本发明实施例七提供的编码器的结构示意图。
本发明实施例七提供的编码器包括:
第二预处理单元1501,用于获取数据块中每个样点的正负极性,以及数据块的样点中绝对值最大的样点的最高有效比特位p;
移位单元1502,用于获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位;
移位信息编码单元1503,用于对每个样点的左移位数p-d分别进行第四类熵编码;
有效数据编码单元1504,用于对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码;
第二编码输出单元1505,用于输出编码后的编码帧,编码帧中包含最高有效比特位P、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第五类熵编码或第二类量化编码后的有效数据组成的编码帧。
本发明实施例七提供的编码器可以使用在前述对应的实施例三提供的数据编码方法中,详细过程参见上述方法实施例,在此不再重复描述。
进一步的,本发明实施例提供的编码器进一步包括;
第二极性编码单元1506,用于对每个样点的正负极性分别进行第六类熵编码;
上述第二编码输出单元1505输出的编码帧中的携带每个样点的正负极性的码字为每个样点的第六类熵编码后的正负极性。
参见图25、图25是本发明实施例七提供的编码器的原理框图。
如图所示,一帧原始数据Sin输入到第二预处理模块1601进行数据分析与处理,预处理包括提取符号位、检测一帧的最高有效比特位、检测每个样点的最高有效比特位、对每个样点进行移位并保存移位信息和移位后的有效数据。第二预处理模块1601的基本思想是待编码的信号分布具有随机性,新生成的移位信息和移位后产生的新的数据分别反映出了原始数据的分布规律,可采用不同的编码方法进行处理。其中,移位信息数据具有非均匀分布特性,而移位后的有效数据的分布特点是:在整个动态范围之内呈非均匀分布,但在局部动态范围内分布较为均匀,这为有效数据的压缩编码处理提供了依据。
经过第二预处理模块1601得到的符号位数据Ss、左移位数Sm和有效数据Se分别送给符号位编码模块1602,移位信息编码模块1603和有效数据编码模块1604,得到符号位编码Ssc、移位信息编码Smc和移位后的有效数据编码Sec。符号位编码模块1602使用状态0、1来表示每个样点的正负极性,最终编码生成一组二进制比特流。根据左移位数的不均匀分布特性,移位信息编码模块1603采用了无失真的熵编码。熵编码可以采用Huffman编码、算术编码或它们的组合算法。根据有效数据的分布特点,有效数据编码模块1604对其进行了分类,分类处理更加精细的反映出每一帧数据的分布特点。在无失真编码状态下,编码器根据当前帧最高有效比特位及移位信息确定有效数据的有效比特数,并将相应数量的比特依次写入输出缓存中,实现无失真编码输出。在有失真编码状态下,有效数据编码模块1604根据当前帧的最高有效比特位对有效数据进行分类,并选择相应的量化表格对有效数据进行量化编码,实现有失真压缩编码。
参见图26,图26是本发明实施例八提供的解码器的结构示意图。
本发明实施例八提供的解码器包括:
第二极性获取单元1701,用于获取编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
左移位数解码单元1702,用于对所述编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数;
有效数据解码单元1703,用于对所述编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据;
第二数据组装单元1704,用于根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
本发明实施例八提供的解码器可以使用在前述对应的实施例四提供的数据解码方法中,详细过程参见上述方法实施例,在此不再重复描述。
参见图27,图27是本发明实施例八提供的解码器的原理框图。
如图所示,解码器在接收到编码比特流后,第二帧解封模块1801将编码比特流中的信息分解成帧头信息H1、符号位编码Ssc、移位信息编码Smc和有效数据编码Sec。
结合帧头信息H1,符号位编码Ssc经过符号位解码模块1802解码得到符号位Ss,符号位解码模块1802通过判断输入比特流中每个比特的0、1状态来确定当前帧中每个样点的正负极性。
移位信息编码Smc经过移位信息解码模块1803解码得到左移位数Sm,对应于编码端,移位信息解码模块1803进行熵解码处理。
有效数据编码Sec经过有效数据解码模块1804解码得到有效数据Se。无失真解码状态下,根据帧头信息及移位信息,有效数据解码模块1804确定了每个有效数据样点的有效比特数,并从输入比特流中读入相应个数的比特,进行无失真解码。有失真解码状态下,有效数据解码模块1804根据帧头信息对当前帧进行分类,采用相应的方法进行反量化处理,有失真地恢复有效数据,实现有失真解码。
最后,结合帧头信息,第二反预处理模1805块对符号位数据Ss、移位信息数据Sm和有效数据Se进行分析处理,确定了一帧原始信号的符号及符号扩展位、移位信息和有效比特位,得到重构数据Sr并输出。
参见图28和图29,图28和图29分别是可以应用本发明实施例提供的数据编码方法和数据解码方法的数据传输系统的示意图。
本发明实施例一、三提供的数据编码方法可以使用在图中的编码器中,本发明实施例二、四提供的数据解码方法可以使用在图中的解码器中,解码器中使用的解码方法和编码方法对应。
本发明实施例提供的编码器和解码器可以应用于各类信道和网络的远程数据通信(例如数据通信、文件传输、语音通信、音频通信等)、近程和系统内部的数据通信(例如通用公共无线接口中的IQ数据传输和拉远等)、设备内或板内模块之间的数据传输(例如模数/数模变换器与其它部件的数据交换等)。
另外,本发明实施例提供的编码器和解码器还可以应用于面向存储应用的系统之中,如数据的高效存储、数字媒体存储、数字图书馆等。
需要说明的是,上述编码器和解码器中各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明所数据编码方法、数据解码方法、编码器和解码器进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种数据编码方法,其特征在于,包括:
获取数据块中每个样点的正负极性;
获取所述数据块的样点中绝对值最大的样点的最高有效比特位;
获取每个样点中从所述最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,所述n大于1,小于所述绝对值最大的样点的有效数据的位数;
获取每个样点中从所述最高有效比特位开始的数据中除所述高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码;
输出编码后的编码帧,所述编码帧中包括所述最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对每个样点的正负极性分别进行第三类熵编码;
所述携带每个样点的正负极性的码字为每个样点的第三类熵编码后的正负极性。
3.根据权利要求1或2所述的方法,其特征在于,
所述编码帧中还包括每个样点的高比特位数据第一类熵编码的编码信息和低比特位数据第二类熵编码或第一类量化编码的编码信息。
4.一种数据解码方法,其特征在于,包括:
获取接收到的编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
对所述编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据;
对所述编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据;
根据接收到的编码帧中包含的最高有效比特位对每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
5.根据权利要求4所述的方法,其特征在于,所述根据码字获取每个样点的正负极性具体为:
对每个样点的正负极性的码字分别进行熵解码,获得每个样点的正负极性。
6.根据权利要求4或5所述的方法,其特征在于,
所述编码帧中还包括每个样点的高比特位数据熵编码的编码信息和低比特位数据熵编码或量化编码的编码信息;
所述对编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据,具体为:
根据每个样点的高比特位数据熵编码的编码信息对编码帧中熵编码后的高比特位数据进行熵解码,获得每个样点的高比特位数据;
所述对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据,具体为:
根据每个样点的低比特位数据熵编码或量化编码的编码信息对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位信息。
7.根据权利要求4或5所述的方法,其特征在于,所述对编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据,包括:
对所述编码帧中熵编码后的低比特数据进行熵解码,获得每个样点的低比特位数据;或者,
对编码帧中量化编码后的低比特位数据进行反量化处理,获得每个样点的低比特位数据。
8.一种数据编码方法,其特征在于,包括:
获取数据块中每个样点的正负极性;
获取所述数据块的样点中绝对值最大的样点的最高有效比特位p;
获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位;
对每个样点的左移位数p-d分别进行第四类熵编码;
对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码;
输出编码后的编码帧,所述编码帧中包含所述最高有效比特位P、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第五类熵编码或第二类量化编码后的有效数据。
9.根据权利要求8所述的方法,其特征在于,还包括:
对每个样点的正负极性分别进行第六类熵编码;
所述携带每个样点的正负极性的码字为每个样点的第六类熵编码后的正负极性。
10.根据权利要求8或9所述的方法,其特征在于,
所述编码帧中还包括每个样点的左移位数第四类熵编码的编码信息和移位后的有效数据第二类量化编码或第五类熵编码的编码信息。
11.一种数据解码方法,其特征在于,包括:
获取编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
对所述编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数;
对所述编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据;
根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
12.根据权利要求11所述的方法,其特征在于,所述根据码字获取每个样点的正负极性具体为:
对每个样点的正负极性的码字分别进行熵解码,获得每个样点的正负极性。
13.根据权利要求11或12所述的方法,其特征在于,
所述编码帧中还包括每个样点的左移位数熵编码的编码信息和移位后的有限数据熵编码或量化编码的编码信息;
所述对编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数,具体为:
根据每个样点的左移位数熵编码的编码信息对编码帧中熵编码后的左移位数进行熵解码,获得每个样点的有效数据的左移位数;
所述对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据,具体为:
根据每个样点的移位后的有效数据的熵编码或量化编码的编码信息对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据。
14.根据权利要求11或12所述的方法,其特征在于,所述对编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据包括:
对所述编码帧中熵编码后的有效数据进行熵解码,获得每个样点的移位后的有效数据;或者,
对编码帧中量化编码后的有效数据进行反量化处理,获得每个样点的移位后的有效数据。
15.一种编码器,其特征在于,包括:
第一预处理单元,用于获取数据块中每个样点的正负极性,以及数据块的样点中绝对值最大的样点的最高有效比特位;
高比特位编码单元,用于获取每个样点中从所述最高有效比特位开始的n位高比特位数据,对每个样点的高比特位数据分别进行第一类熵编码,所述n大于1,小于所述绝对值最大的样点的有效数据的位数;
低比特位编码单元,用于获取每个样点中从所述最高有效比特位开始的数据中除所述高比特位数据之外的低比特位数据,对每个样点的低比特位数据分别进行第一类量化编码或第二类熵编码;
第一编码输出单元,用于输出编码后的编码帧,所述编码帧中包括所述最高有效比特位、携带每个样点的正负极性的码字、每个样点的第一类熵编码后的高比特位数据以及第一类量化编码或第二类熵编码后的低比特位数据组成的编码帧。
16.根据权利要求15所述的编码器,其特征在于,还包括:
第一极性编码单元,用于对每个样点的正负极性分别进行第三类熵编码;
所述第一编码输出单元输出的编码帧中的携带每个样点的正负极性的码字为每个样点的第三类熵编码后的正负极性。
17.一种解码器,其特征在于,包括:
第一极性获取单元,用于获取接收到的编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
高比特位解码单元,用于对所述编码帧中熵编码后的高比特位数据进行解码,获得每个样点的高比特位数据;
低比特位解码单元,用于对所述编码帧中量化编码或熵编码后的低比特位数据进行解码,获得每个样点的低比特位数据;
第一数据组装单元,用于根据接收到的编码帧中包含的最高有效比特位将每个样点的正负极性、高比特位数据和低比特位数据进行组装获得原始数据块。
18.一种编码器,其特征在于,包括:
第二预处理单元,用于获取数据块中每个样点的正负极性以及所述数据块的样点中绝对值最大的样点的最高有效比特位p;
移位单元,用于获取每个样点的最高有效比特位d,对每个样点的有效数据位分别向左移p-d位;
移位信息编码单元,用于对每个样点的左移位数p-d分别进行第四类熵编码;
有效数据编码单元,用于对每个样点中移位后的有效数据位分别进行第五类熵编码或第二类量化编码;
第二编码输出单元,用于输出编码后的编码帧,所述编码帧中包含所述最高有效比特位P、携带每个样点的正负极性的码字、第四类熵编码后的左移位数以及第五类熵编码或第二类量化编码后的有效数据。
19.根据权利要求18所述的编码器,其特征在于,还包括:
第二极性编码单元,用于对每个样点的正负极性分别进行第六类熵编码;
所述第二编码输出单元输出的编码帧中的携带每个样点的正负极性的码字为每个样点的第六类熵编码后的正负极性。
20.一种解码器,其特征在于,包括:
第二极性获取单元,用于获取编码帧中携带每个样点的正负极性的码字,根据所述码字获取每个样点的正负极性;
左移位数解码单元,用于对所述编码帧中熵编码后的左移位数进行解码,获得每个样点的有效数据的左移位数;
有效数据解码单元,用于对所述编码帧中量化编码或熵编码后的有效数据进行解码,获得每个样点的移位后的有效数据;
第二数据组装单元,用于根据编码帧中包含的绝对值最大的样点的最高有效比特位对每个样点的正负极性、有效数据的左移位数以及移位后的有效数据进行组装获得原始数据块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010505926 CN101980464B (zh) | 2010-09-30 | 2010-09-30 | 数据编码方法、解码方法、编码器和解码器 |
PCT/CN2011/074930 WO2011150810A1 (zh) | 2010-09-30 | 2011-05-30 | 数据编码方法、解码方法、编码器和解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010505926 CN101980464B (zh) | 2010-09-30 | 2010-09-30 | 数据编码方法、解码方法、编码器和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101980464A CN101980464A (zh) | 2011-02-23 |
CN101980464B true CN101980464B (zh) | 2013-01-16 |
Family
ID=43600948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010505926 Active CN101980464B (zh) | 2010-09-30 | 2010-09-30 | 数据编码方法、解码方法、编码器和解码器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101980464B (zh) |
WO (1) | WO2011150810A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101980464B (zh) * | 2010-09-30 | 2013-01-16 | 华为技术有限公司 | 数据编码方法、解码方法、编码器和解码器 |
CN102664636B (zh) * | 2012-05-16 | 2016-03-23 | 苏州大学 | 一种变长编码、解码方法及装置 |
CN103634273A (zh) | 2012-08-21 | 2014-03-12 | 电信科学技术研究院 | 数据压缩发送及解压缩方法和设备 |
FR3008263B1 (fr) * | 2013-07-05 | 2015-08-21 | Sagemcom Energy & Telecom Sas | Procede de mise a disposition par un compteur electrique de donnees compressees |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420231A (zh) * | 2007-10-25 | 2009-04-29 | 索尼株式会社 | 编码方法和装置、以及程序 |
CN101820408A (zh) * | 2010-04-06 | 2010-09-01 | 新邮通信设备有限公司 | 一种基带发送数据的产生方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100744347B1 (ko) * | 2001-10-29 | 2007-07-30 | 삼성전자주식회사 | 부호분할다중접속 이동통신시스템에서 데이터 송/수신장치 및 방법 |
CN101980464B (zh) * | 2010-09-30 | 2013-01-16 | 华为技术有限公司 | 数据编码方法、解码方法、编码器和解码器 |
-
2010
- 2010-09-30 CN CN 201010505926 patent/CN101980464B/zh active Active
-
2011
- 2011-05-30 WO PCT/CN2011/074930 patent/WO2011150810A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420231A (zh) * | 2007-10-25 | 2009-04-29 | 索尼株式会社 | 编码方法和装置、以及程序 |
CN101820408A (zh) * | 2010-04-06 | 2010-09-01 | 新邮通信设备有限公司 | 一种基带发送数据的产生方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101980464A (zh) | 2011-02-23 |
WO2011150810A1 (zh) | 2011-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100403801C (zh) | 一种基于上下文的自适应熵编/解码方法 | |
JP4482237B2 (ja) | 無損失エンコーダにおけるサイド情報の効率的な符号化 | |
KR101353170B1 (ko) | 완전히 활용되지 않는 코드 공간을 압축하는데 산술 스테이지를 이용하는 인코더 및 디코더 | |
CN1235190C (zh) | 改善音频信号编码效率的方法 | |
WO1995014350A1 (en) | Quadtree-structured walsh transform coding | |
AU2003233723A1 (en) | Method and system for multi-rate lattice vector quantization of a signal | |
CN101980464B (zh) | 数据编码方法、解码方法、编码器和解码器 | |
CN103873877A (zh) | 远程桌面的图像传输方法及装置 | |
CN1945695A (zh) | 对音频信号编码/解码的方法和设备 | |
CN102062855A (zh) | 基于游程差值编码的雷达回波压缩/解压算法 | |
US20140006036A1 (en) | Method and apparatus for coding and decoding | |
CN102158692B (zh) | 编码方法、解码方法、编码器和解码器 | |
JP2004258603A (ja) | レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化 | |
CN101266796A (zh) | 一种量化编解码方法及装置 | |
CN103731241A (zh) | 提高通信系统频谱效率的编码系统及方法 | |
US9948928B2 (en) | Method and apparatus for encoding an image | |
CN102547260A (zh) | 基于上下文自适应的可变长编码的解码方法及系统 | |
CN102239518B (zh) | 编码和解码方法及装置 | |
CN102298782B (zh) | 用于无损视频压缩的参数估计的系统、方法 | |
CN1222170C (zh) | 用于提高码率的块编码/解码方法和设备 | |
CN1815894A (zh) | 一种音频信号编码的方法和设备 | |
CN104113394B (zh) | 通信调制信号的压缩及解压方法 | |
Jagadeesh et al. | An approach for image compression using adaptive Huffman coding | |
WO2023221590A1 (zh) | 编解码方法及电子设备 | |
CN1098565C (zh) | 译码变长码的方法和设备 |
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 |