具体实施方式
编码系统实施例一
图1为本发明实施例的结构示意图,如图1所示,该编码系统包括编码模式判别器1、编码器2和复用器3。其中,编码模式判别器1用于根据待编码信号的动态范围、预测编码模式编码所需比特数估计值和动态范围编码模式编码所需比特数估计值判别待编码信号应采用的编码模式,生成并发送编码模式相对应的编码模式标识位及相对应的编码所需参数至编码器2与复用器3;编码器2用于根据编码模式相对应的编码模式标识位对待编码信号进行编码;复用器3用于对编码器2编码后的信号进行复用。在本实施例中,编码后的信号包括:编码后的待编码信号、编码模式标识位及编码所需参数。在其它实施例中,编码后的信号还包括其它信号或信息。
本发明实施例中的编码模式判别器1包括:信号分析模块11及编码模式判别模块12。信号分析模块11用于分析待编码信号,计算并发送待编码信号的动态范围及编码所需参数至编码模式判别模块12;其中,待编码信号的动态范围为待编码信号的最小样点值和最大样点值的差值,待编码信号的编码所需参数包括待编码信号的样点数、样点最小值及每样点编码所需比特数。
编码模式判别模块12用于判别待编码信号的编码模式,生成并发送与编码模式相对应的编码模式标识位及与编码模式相对应的编码所需参数至编码器2与复用器3。
在本实施例中,编码模式判别模块12通过判断信号分析模块11发送的动态范围是否不大于第一预设值来判断待编码信号的编码模式。当动态范围不大于第一预设值时,即判别待编码信号的编码模式为动态范围编码模式,编码模式判别模块12将动态范围编码模式的编码模式标识位及待编码信号的样点数、样点最小值及每样点编码所需比特数发送至编码器2与复用器3,在本实施例中,动态范围编码模式的编码模式标识位用1标识,在其它实施例中,亦可用其它数值进行标识。当动态范围大于第一预设值时,通知信号分析模块11计算预测编码模式编码所需比特数估计值、动态范围编码模式编码所需比特数估计值及预测系数、预测阶数和熵编码参数,其中第一预设值为3,在其它实施例中,第一预设值亦可为其它数值。
在本实施例中,信号分析模块11还用于将计算出的预测编码模式编码所需比特数估计值、动态范围编码模式编码所需比特数估计值及预测系数、预测阶数和熵编码参数发送至编码模式判别模块12。在本实施例中,编码模式判别模块12比较待编码信号的动态范围编码比特数估计值与预测编码比特数估计值。当前者不大于后者时,即判别待编码信号的编码模式为动态范围编码模式,编码模式判别模块12将动态范围编码模式的编码模式标识位及待编码信号的样点数、样点最小值及每样点编码所需比特数发送至编码器2与复用器3。当前者大于后者时,即判别待编码信号的编码模式为预测编码模式,编码模式判别模块12将预测编码模式的编码模式标识位及预测系数、预测阶数和熵编码参数发送至编码器2与复用器3,在本实施例中,预测编码模式的编码模式标识位用0标识,在其它实施例中,亦可用其它数值标识。
本发明实施例中的编码器2包括动态范围编码模块21和预测编码模块22,用于根据编码模式相对应的编码模式标识位对待编码信号进行编码。在本实施例中,若编码器2接收到的标识位为1,则把待编码信号及待编码信号的样点数、样点最小值及每样点编码所需比特数发送到动态范围编码模块21;若编码器2接收到的标识位为0,编码器2则把待编码信号及预测系数、预测阶数和熵编码参数发送到预测编码模块22。
本发明实施例中的动态范围编码模块21进一步包括帧头编码子模块211及样点编码子模块212。帧头编码子模块211用于对待编码信号的帧头信息进行编码;其中,待编码信号的帧头信息包括待编码信号的样点最小值和每样点编码所需比特数。
样点编码子模块212用于对待编码信号的样点值信息进行编码;其中,待编码信号的样点值信息为待编码信号样点值。
本发明实施例中的预测编码模块22进一步包括余量信号生成子模块221及熵编码子模块222。余量信号生成子模块221用于根据编码模式判别器1发送的预测系数和预测阶数得到余量信号;
熵编码子模块222用于根据熵编码参数对余量信号进行熵编码。
本发明实施例通过进行自适应的编码模式判别,充分利用基于预测的无损压缩和基于动态范围的无损压缩的优点,自适应不同的信号类型,如音频信号使用基于预测的无损压缩能取得高压缩效率,而有些信号类型使用基于动态范围的无损压缩能获得高压缩效率,因此本发明实施例在编码器中引入有效的编码模式判决机制,能够实现压缩效率的优化。
编码系统实施例二
图2为本发明实施例的结构示意图,如图2所示,本发明实施例与本发明编码系统实施例一的区别之处在于:本发明实施例中的编码模式判别器1还包括分块模式判别模块14,用于判别待编码信号应采用的分块模式,计算待编码信号的分块个数,生成并发送分块模式相对应的分块模式标识位和分块个数相对应的分块个数标识位至编码器2与复用器3;编码器2还包括分块器23,用于根据分块模式标识位及分块个数标识位对待编码信号进行分块。因为本发明实施例中对待编码信号进行了分块,所以本发明实施例中的编码器由若干个子编码器组成,子编码器与本发明编码系统实施例一中的编码器为相同组成。本发明实施例通过引入分块模式判别模块和分块器,能够自适应的对长信号进行分块,提高长信号的编码效率。
本发明实施例中的分块模式判别模块14进一步的包括编码比特数分析子模块141及信号分块模式判别子模块142。编码比特数分析子模块141用于分析出待编码信号根据编码模式判别模块12判别的编码模式编码的单一块编码所需比特数与多块编码所需比特数,并发送至信号分块模式判别子模块142。
信号分块模式判别子模块142用于判别待编码信号是否采用单一块编码模式或多块编码模式,计算分块个数,生成并发送分块模式相对应的分块模式标识位及分块个数相对应的分块个数标识位至编码器2与复用器3。在本实施例中,若信号分块模式判别子模块142判断编码模式判别模块12判别的编码模式编码的单一块编码所需比特数不大于多块编码所需比特数,即判别待编码信号的编码模式为单一块编码模式,则生成并发送单一块编码模式相对应的分块模式标识位至编码器2与复用器3。在本实施例中,单一块编码模式相对应的分块模式标识位用1标识,在其它实施例中,亦可用其它数值标识。若信号分块模式判别子模块142判断编码模式判别模块12判别的编码模式编码的单一块编码所需比特数大于多块编码所需比特数,即判别待编码信号的编码模式为多块编码模式,则计算分块个数,及生成并发送多块编码模式相对应的分块模式标识位及分块个数相对应的分块个数标识位至编码器2与复用器3。在本实施例中,多块编码模式相对应的分块模式标识位用0标识,在其它实施例中,亦可用其它数值标识。
复用器3还用于对分块模式标识位及分块个数标识位进行复用。
为了降低复杂度,还可直接根据帧长来设置分块模式,因此本发明实施例中的分块模式判别模块14还可包括帧长分析子模块,用于分析出待编码信号的帧长,并发送至分块模式判别子模块142。
分块模式判别子模块142还用于根据待编码信号的帧长来判别待编码信号是否采用单一块编码模式或多块编码模式,生成并发送分块模式相对应的分块模式标识位和分块个数至编码器2与复用器3。在本实施例中,若分块模式判别子模块142判断待编码信号的帧长不大于第二预设值,即判别待编码信号为单一块编码模式,则生成并发送单一编码模式相对应的分块模式标识位至编码器2与复用器3。若分块模式判别子模块142判断待编码信号的帧长大于第二预设值,即判别待编码信号为多块编码模式,则计算分块个数,生成并发送多块编码模式相对应的分块模式标识位和分块个数相对应的分块个数标识位至编码器2与复用器3。在本实施例中,第二预设值为80,在其它实施例中,亦可为其它数值。
解码系统实施例一
图3为本发明实施例的结构示意图,如图3所示,本发明实施例包括解复用器4、解码模式判别器5及解码器6。解复用器4用于对复用后信号进行解复用,将解复用后的待解码信号发送至解码器6,及将解复用后的编码模式标识位发送至解码模式判别器5。解码模式判别器5用于根据解复用得到的编码模式标识位判别待解码信号应采用的解码模式,并通知解码器6进行相应的解码。解码器6用于根据所述解码模式判别器5判别的所述解码模式对所述解复用器发送的所述待解码信号进行解码。
解码器6包括动态范围解码模块61和预测解码模块62,均用于对待解码信号根据解码模式判别器5判别的解码模式进行解码。若解码模式判别器5判别待解码信号应采用动态范围解码模式,解码器6则把待解码信号发送到动态范围解码模块61;若解码模式判别器6判别待解码信号应采用预测解码模式,解码器6则把待解码信号发送到预测解码模块62。
本发明实施例中的动态范围解码模块61进一步包括帧头解码子模块611及样点解码子模块612。帧头解码子模块611用于对待解码信号的帧头信息进行解码,待解码信号的帧头信息包括编码后的待编码信号的样点最小值和每样点编码所需比特数;
样点解码子模块612用于对待解码信号的样点值信息进行解码,待解码信号的样点值信息为编码后的待编码信号样点值。根据解码后的帧头信息和样点值信息即可无损重建信号。
本发明实施例中的预测解码模块62进一步包括熵解码子模块621及余量信号合成子模块622。熵解码子模块621用于根据解复用后的熵编码参数对待解码信号进行熵解码,得到余量信号;
余量信号合成子模块622用于根据解复用得到的预测系数和预测阶数对熵解码得到的余量信号进行合成,从而无损重建信号。
解码系统实施例二
图4为本发明实施例的结构示意图,如图4所示,本发明实施例是在本发明解码系统实施例一的基础上,还包括分块模式判别器7,用于判别解复用器4解复用后的分块模式标识位及分块个数标识位,并通知解码器6进行相应的分块解码。
本发明实施例还包括合并器8,用于将解码后的信号进行合并处理。
因为本发明实施例中的待解码信号进行了分块,所以本发明实施例中的解码器6由若干个子解码器组成,子解码器与本发明解码系统实施例一中的解码器为相同组成。
编码方法实施例一
图5为本发明实施例的流程图,包括:
步骤101:根据待编码信号的动态范围、预测编码模式编码所需比特数估计值和动态范围编码模式编码所需比特数估计值判别待编码信号应采用的编码模式,生成并发送编码模式相对应的编码模式标识位及相应的编码所需参数;
步骤102:对待编码信号根据编码模式相对应的编码模式标识位进行相对应的编码;
步骤103:对编码后的信号进行复用。在本实施例中,编码后的信号包括:编码后的待编码信号、编码模式标识位及编码所需参数。在其它实施例中,编码后的信号还包括其它信号或信息。
本发明实施例通过引入对待编码信号进行自适应的编码模式判别方式,充分利用基于预测的无损压缩和基于动态范围的无损压缩的优点,自适应不同的信号类型,如音频信号使用基于预测的无损压缩能取得高压缩效率,而有些信号类型使用基于动态范围的无损压缩能获得高压缩效率。在编码器中引入有效的编码模式判决机制,能够实现优化的压缩效率。
编码方法实施例二
图6为本发明实施例的流程图,包括:
步骤201:根据待编码信号的最小样点值和最大样点值计算待编码信号的动态范围及每样点编码所需比特数,若动态范围不大于第一预设值,则执行步骤202;若动态范围大于第一预设值,则跳转执行步骤204;其中,第一预设值为编码模式判别器1预先设定好的固定值,在本实施例中,该第一预设值为3,在其它实施例中,亦可为其它数值,根据编码模式判别器1中得到的待编码信号x的样点最大值max(x)和样点最小值min(x),利用公式code_bits=log2[(max(x)-min(x)+1)]得到每样点编码所需比特数code_bits;
步骤202:判别待编码信号采用动态范围编码模式,其中,动态范围编码模式即编码器通过动态范围编码模块对待编码信号进行编码;
步骤203:发送待编码信号的帧头信息、待编码信号的样点值信息及动态范围编码模式相对应的编码模式标识位,其中帧头信息为待编码信号的样点最小值和每样点编码所需比特数,待编码信号的样点值信息为待编码信号样点值;
步骤207:根据动态范围编码模式相对应的编码模式标识位分别对待编码信号的帧头信息进行编码及对待编码信号的样点值信息使用每样点编码所需比特数个比特进行编码,具体为:
调用帧头编码子模块211,对待编码信号的帧头信息进行编码;
调用样点编码子模块212,对待编码信号样点值使用编码模式判别器1中得到的待编码信号的每样点编码所需比特数个比特进行编码;
在实现中,可以使用固定的若干个样点最小值以提高压缩效率。另外,由于在编码模式判别中已经进行了信号动态范围的分析,所以在编码中只用根据编码模式判决得到的相应的各子编码器输入信号的最小值,编码样点数及差值进行编码即可,从而在动态范围子编码器21中省去了对待编码信号动态范围的分析过程;
步骤209:对编码后的信号、编码模式标识位及编码所需参数进行复用,并结束。其中,编码所需参数包括待编码信号的样点数、样点最小值、每样点编码所需比特数,亦可包括预测系数、预测阶数和熵编码参数;
步骤204:计算并比较待编码信号的动态范围编码模式编码所需比特数估计值与预测编码模式编码所需比特数估计值,及计算预测编码模式所需的预测系数、预测阶数及熵编码参数,若前者不大于后者,则执行步骤202;若前者大于后者,则执行步骤205;其中,动态范围编码模式中,待编码信号的每样点编码所需比特数是固定的,是由待编码信号的动态范围决定的,每样点编码所需比特数乘以待编码信号的样点数即为动态范围编码模式编码所需比特数,每样点编码所需比特数的计算在步骤201中进行了描述;
待编码信号的预测编码模式编码所需比特数的估计值为对待编码信号的余量信号编码所需比特数和待编码信号的帧的边信息比特数的和,对余量信号进行熵编码即得到余量信号编码所需比特数,具体过程在步骤208中进行了描述,也可以利用熵编码的特性来简化运算得到余量信号编码所需的比特数,这里以赖斯编码为例,输入值为m,赖斯参数为s,则该值所需比特数为k+1+s,这里k=m>>(s-1),从而不需要对预测余量信号进行完全的熵编码,只是根据特性来估计出所需的比特数,降低了方案的复杂度。帧的边信息包括帧长度,预测参数和熵编码参数,帧长度用来识别当前帧包含的样点个数,预测参数指示线性预测所需的信息,如预测阶数和预测系数,关于熵编码参数,以赖斯编码为例,在赖斯编码中为了实现优化的编码效率,对应的参数s随输入信号的不同而变化,在编码端需要编码此参数并传送给解码端。
步骤205:判别待编码信号采用预测编码模式,生成并发送预测编码模式相对应的编码模式标识位,其中,预测编码模式即编码器通过预测编码模块对待编码信号进行编码;
步骤206:发送预测编码模式所需的预测系数、预测阶数及熵编码参数,然后执行步骤208;
步骤208:根据预测编码模式相对应的编码模式标识位进行预测编码,在本实施例中,先根据预测阶数和预测系数得到余量信号,再根据熵编码参数对余量信号进行熵编码,然后执行步骤209。
编码方法实施例三
在实施例二的基础上,为了提高长信号的编码效率,本发明实施例所述判别待编码信号应采用的编码模式还包括判别待编码信号应采用的分块模式,计算待编码信号的分块个数,生成并发送分块模式相对应的分块模式标识位和分块个数相应的分块个数。具体为:
分析出待编码信号根据编码模式判别器判别的编码模式编码的单一块编码所需比特数与多块编码所需比特数,并判断两者之间的大小关系;
若前者不大于后者,即判别待编码信号为单一块编码模式,则生成并发送分块模式标识位;
若前者大于后者,即判别待编码信号为多块编码模式,则计算待编码信号的分块个数,生成并发送多块编码模块相应的分块模式标识位和分块个数相应的分块个数标识位。其中分析出单一块编码所需比特数与多块编码所需比特数,并判断两者之间的大小关系调用了本发明编码方法实施例二中的步骤201和步骤204中的过程。图7为本发明实施例的流程图,包括:
步骤301:根据待编码信号的最小样点值和最大样点值计算待编码信号的动态范围及每样点编码所需比特数,若动态范围不大于第一预设值,则执行步骤302;若动态范围大于第一预设值,则跳转执行步骤304;
步骤302:判别待编码信号采用动态范围编码模式;
步骤303:发送样点最小值、每样点编码所需比特数及编码模式标识位,然后执行步骤307;
步骤307:分析出待编码信号单一块编码所需比特数与多块编码所需比特数,并判断两者之间的大小关系;
步骤304:比较待编码信号的动态范围编码模式编码所需比特数估计值与预测编码模式编码所需比特数估计值,若前者不大于后者,则执行步骤302;若前者大于后者,则执行步骤305;
步骤305:判别待编码信号采用预测编码模式,生成并发送预测编码模式相应的编码模式标识位;
步骤306:发送预测编码模式所需的预测系数、预测阶数及熵编码参数,然后执行步骤307;
在步骤307中,若前者不大于后者,则执行步骤308,若前者大于后者,则跳转执行步骤309;其中多块编码可以是2个或多个,在实现中为了降低复杂度,可使用固定的块数;
步骤308:判别待编码信号为单一块编码模式,生成并发送单一块编码模式相应的分块模式标识位,然后执行步骤310;
步骤309:判别待编码信号为多块编码模式,计算分块个数,生成并发送多块编码模式相对应的分块模式标识位和分块个数相对应的分块个数标识位,然后执行步骤310;
步骤310:根据分块模式标识位及分块个数标识位对待编码信号进行分块;其中,若进行分块的待编码信号采用的编码模式为动态范围编码模式,则后续执行步骤311;若进行分块的待编码信号采用的编码模式为预测编码模式,则后续执行步骤312;
步骤311:对分块后的待编码信号各块的帧头信息进行编码;对分块后的待编码信号各块的待编码信号样点值使用每样点编码所需比特数个比特进行编码,然后执行步骤313;其中,分块后的待编码信号各块的帧头信息还包括信号块长;
步骤312:根据编码模式判别器发送的预测阶数和预测系数得到余量信号,并对余量信号进行熵编码,然后执行步骤313;
步骤313:对编码后的信号、编码模式标识位、分块模式标识位及分块个数标识位进行复用,结束。其中,若编码模式判别器判别待编码信号应采用预测编码模式,在步骤209中还需对预测系数和预测阶数进行复用。
本发明编码方法实施例为了降低编码复杂度,还可通过判断待编码信号动态范围的大小来直接判别应采用的编码模式。当待编码信号动态范围不大于第一预设值时采用动态范围编码模式;当待编码信号动态范围大于第一预设值时采用预测编码模式。
同时本发明编码方法实施例在分块模式判别过程中,为了降低复杂度,还可直接根据待编码信号的帧长来判别分块模式,具体为:
分析待编码信号的帧长;
若待编码信号的帧长不大于第二预设值,则判别待编码信号为单一块编码模式,生成并发送分块模式标识位;
若待编码信号的帧长大于第二预设值,则判别待编码信号为多块编码模式,计算待编码信号的分块个数,生成并发送多块编码模式相对应的分块模式标识位和分块个数相对应的分块个数标识位。其中,第二预设值为编码模式判别器预先设定好的固定值,若待编码信号的帧长不大于该第二预设值,对待编码信号采用单一块分块模式可确保较高的编码效率;若待编码信号的帧长大于该第二预设值,对待编码信号采用多块分块模式可确保较高的编码效率。
解码方法实施例一
图8为本发明实施例的流程图,包括:
步骤401:对复用后的信号进行解复用得到并发送待解码信号和编码模式相对应的编码模式标识位;
步骤402:根据解复用得到的编码模式相对应的编码模式标识位判别待解码信号应采用的解码模式;
步骤403:根据判别的解码模式对待解码信号进行解码。其中解码过程为编码过程的逆过程。
解码方法实施例二
本发明实施例中,对待解码信号根据判别的解码模式进行解码为对待解码信号进行动态范围解码模式解码或预测解码模式解码。判别待解码信号应采用的解码模式后,若待解码信号应采用的解码模式为动态范围解码模式,则对其采用动态范围解码模式解码,若待解码信号采用的编码模式为预测编码模式,则对其采用预测解码模式解码。解码过程为编码过程的逆过程,这里就不再赘述。图9为本发明实施例的流程图,包括:
步骤501:对复用后的信号进行解复用得到待解码信号和编码模式标识位并发送;其中,若编码模式判别器判别待编码信号采用的预测编码模式,在步骤501中还可得到预测系数、预测阶数及熵编码参数;
步骤502:根据解复用得到的编码模式标识位判别待解码信号应采用的解码模式;若编码模式标识位对应的编码模式为动态范围编码模式,则判别待解码信号应采用的解码模式为动态范围解码模式,则执行步骤503,若编码模式标识位对应的编码模式为预测编码模式,则判别待解码信号应采用的解码模式为预测解码模式,则执行步骤504;
步骤503:对待解码信号的帧头信息和样点值信息进行解码,根据解码后的帧头信息和样点值信息无损重建信号;
步骤504:根据熵编码参数对待解码信号进行熵解码得到余量信号,并根据解复用得到的预测系数和预测阶数对余量信号进行合成,从而无损重建信号。
解码方法实施例三
本发明实施例在本发明解码方法实施例二的基础上,还包括根据待解码信号的分块模式标识位和分块个数标识位对待解码信号进行分块判别及对解码后的信号进行合并处理。其中,因为解码后的信号分为若干块,因此需对其进行合并,从而无损重建信号。图10为本发明实施例的流程图,包括:
步骤601:对复用后的信号进行解复用得到待解码信号、编码模式标识位、分块模式标识位及分块个数标识位并发送;其中,若编码模式判别器判别待编码信号采用的预测编码模式,在步骤501中还可得到预测系数和预测阶数;
步骤602:根据解复用得到的分块模式标识位和分块个数标识位对待解码信号进行分块处理;
步骤603:根据解复用得到的编码模式标识位判别待解码信号采用的编码模式,若判别待解码信号应采用的解码模式为动态范围解码模式,则执行步骤604,若判别待解码信号应采用的解码模式为预测解码模式,则执行步骤605;
步骤604:对进行分块处理后的待解码信号的帧头信息和样点值信息进行解码,然后执行步骤606;其中,解码后的帧头信息还包括信号块长;
步骤605:对待解码信号进行熵解码得到余量信号,并根据解复用得到的预测系数和预测阶数对余量信号进行合成,然后执行步骤606;
步骤606:对解码后的信号进行合并处理,从而无损重建信号。
编码装置实施例
图11为本发明实施例的结构示意图,包括:
编码第一模块1001,根据待编码信号的动态范围、预测编码模式编码所需比特数估计值和动态范围编码模式编码所需比特数估计值判别待编码信号应采用的编码模式,生成并发送编码模式相对应的编码模式标识位及相对应的编码所需参数;
编码第二模块1002,用于根据编码模式相对应的编码模式标识位对所述待编码信号进行编码;
编码第三模块1003,用于对编码后的信号进行复用。
解码装置实施例
图12为本发明实施例的结构示意图,包括:
解码第一模块2001,用于对复用后的信号进行解复用得到并发送待解码信号和编码模式标识位;
解码第二模块2001,用于根据解复用得到的编码模式标识位判别待解码信号应采用的解码模式;
解码第三模块2003,用于将待解码信号根据判别的解码模式进行解码。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案而非对其进行限制,尽管参照较佳实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明实施例的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明实施例技术方案的精神和范围。