支持动态调整字节长度的编码方法

文档序号:7510811阅读:130来源:国知局

专利名称::支持动态调整字节长度的编码方法
技术领域
:本发明涉及了一种支持动态调整字节长度的编码及译码方法,提供在压縮与解压縮的运算过程中,动态调整压縮数据的字节长度。
背景技术
:影音信号的储存与传输,或是在一般的通信系统中,为节省储存的内存或通讯信道的带宽(bandwidth),多会对储存或通信的信号作有损压縮(lossycompression)或无t员压縮(losslesscompression)。一般为了降f氏压縮器(compressor)及解压縮器(de-compressor)的软件或硬件电路的要求,常使用构建于时域(timedomain)上的标量量化(scalarquantization)时域波形编码及译码算法的有损压縮。传统的纯量量化时域波形编码及译码方法,可包括下列算法1.对数型脉冲码调制(LogarithmicPulseCodeModulation,LogPCM);2.适应性脉冲码调制(AdaptivePulseCodeModulation,APCM);3.差异脉冲码调制(DifferentialPulseCodeModulation,DPCM);4.适应性差异脉冲码调制(AdaptiveDifferentialPulseCodeModulation,ADPCM);5.增量调制(DeltaModulation,DM);6.适应性增量调帝U(AdaptiveDeltaModulation,ADM)。上述的编码及译码方式有一个共同的特点,就是对单一群组的原始数据进行压縮时,都以固定字节长度(wordlength),也就是以固定比特数目,来代表每一个信号样本(sample),此所谓的"样本"的含意包括样本的绝对值(例如,对数型脉冲码调制与适应性脉冲码调制系统),或者指采样与前一个样本的差值(例如,差异脉冲码调制、适应性差异脉冲码调制、增量调制或适应性增量调制等系统)。以比特数来代表一个样本的参数(bitspersample),即称为字节长度(wordlength)。而一般公知的算法中,都使用不改变字节长度的算法。然而,固定字节长度的算法有一个缺点,即在信号的幅度较小的部分,压縮的绝对误差就会较小;相反的,在信号的幅度越大的部分,则绝对误差就会较大。为了顾及信号幅度较大时的压縮质量,字节长度不能调整得太短,否则压縮质量急剧变差至无法接受。然而,较长的字节长度却会在压縮较小的信号时,产生大量不带任何表达意义(non-significant)的冗余比特(redundancybit),因而增加了存储内存或通讯信道的带宽要求。例如,以固定5个比特(5bit)的字节长度的压縮法来表达数值7d(十进制)时,二进制表示为00111b(5个位),其中,高位的两个0是冗余(redundancy)的,因为无论是0111b(4个位)、或是lllb(3个位),都同样能表达完全相同的数值7d信息,而没有任何的误差。然而,以5个位或4个位的字节长度来表示数值7d,因为冗余比特增加了储存内存或通讯信道的带宽要求。
发明内容本发明旨在提供一种支持动态调整字节长度的编码及译码方法。本发明提供在压縮与解压縮的运算过程中,动态调整压縮数据的字节长度,在压縮质量不变差,或是达到可容许误差(acceptabletolerance)范围内,节省压縮后数据的冗余比特,以得到更高的压縮比率。根据本发明,此编码方法是应用于一般的编码算法中,在压縮质量不变差或达到可容忍的误差范围内,计算出最低的字节长度值。本发明的编码方法包含下列步骤A.设定编码器的可容许误差值(acceptabletolerance),与可接受的字节长度范围;B.将原始数据划分为多个样本框,每一个样本框根据可容许误差值,并依照每一个样本框的一比例常数,设定每一个样本框的最小字节长度值的有号二进制数值;C.完成所有样本框数据的编码。其中,可接受的字节长度与比例常数可储存于编码数据中,也可以将字节长度范围依照比例常数制定一査询表储存于编码数据中。而支持动态调整字节长度的译码方法,是当可接受的字节长度与比例常数储存于编码算法中时,则译码过程可根据编码数据的字节长度与比例常数,进行译码。若字节长度与比例常数以查询表方式储存于编码数据中,则译码过程使用与编码程序相同的査询表,通过査表方式查询编码数据的字节长度与比例常数,进行译码。另外,本发明的编码方法的步骤B中的每一该样本框的该比例常数,是通过每一该样本框的最大动态范围样本与最高可接受的字节长度值的比例计算出的。另外,本发明的编码方法的步骤A中,该字节长度范围定义该编码算法中一最高可接受字节长度值与一最低可接受字节长度值。另外,本发明的编码方法的步骤B的每一该样本框的该比例常数与每一该样本框的该字节长度值,可储存于编码数据中。另外,本发明的编码方法还可以在该步骤C中,在编码数据的最末端加入一结束码,以完成所有每一该样本框数据的编码。另外,本发明的编码方法步骤B还可以包括下列步骤a.将一原始数据划分为多个样本框,并对每一该样本框依序设定一索引编号;b.初始索引编号指定的一样本框的字节长度值设定为一最高可接受字节长度值;c.找出该样本框的一最大动态范围的样本,并以该样本值与该样本框的字节长度值计算出该样本框转换的该比例常数;d.根据该样本框转换该比例常数,将该样本框内的原始样本转换成为该样本框的字节长度值所指定的较少比特数的有号二进制数值;e.计算该样本框的字节长度值的误差平方总和,通过该样本框内的较少比特数的有号二进制数值乘以该比例常数后,再累加原始数据对应的样本的差额平方;f.递减该样本框的字节长度值,并判断是否等于一最低可接受字节长度值,如果否的话,则回到该步骤c;g.当该步骤f中等于该最低可接受字节长度值时,找出一最小字节长度值,其是通过当该样本框的字节长度值对应的误差平方总和,小于该最高可接受的字节长度值所计算出的误差平方总和以及该可容许误差值的和时确定出的。;h.在该样本框的起始处插入该样本框的对应的该比例常数与该最小字节长度值;以及i.递增该索引编号,并判断是否为最大索引标号值,如果否的话,则回到该步骤b。另外,本发明的编码方法该步骤A中,可根据该可容许误差值,预先将该字节长度范围依照比例常数制定一称为一字节长度值的适用比例常数范围表的査询表,。另外,本发明的编码方法的步骤B还可以包括下列步骤i.设定当前一比例常数至合理初始水平;ii.将一原始数据划分为多个样本框,并对每一该样本框依序设定索引编号;iii.根据该步骤i的该比例常数,査询该字节长度值的适用比例常数范围表,将初始索引编号指定的该样本框内的原始样本转换成为该样本框的字节长度值所指定的较少比特数的有号二进制数值;iv.预测下一该样本框的原始样本的比例常数;以及v.递增该索引编号,并判断是否为最大索引标号,如果否的话,则回到该步骤iii。另外,本发明的编码方法该步骤iv中,可通过一预测器,其根据当前原始样本以及之前的原始样本的趋势,预测及适当设定用于编码下一该样本框的原始样本的比例常数。另外,本发明的译码方法,是根据编码数据内每一该样本框的对应的该比例常数与该最小字节长度值,进行译码。另外,本发明的译码方法包含下列步骤i.使用与该编码方法相同的该"字节长度值的适用比例常数范围表";ii.设定当前的一比例常数至与该编码程序相同合理初始水平;iii.对每一个已编码样本框依序设定索引编号,根据该步骤h的该比例常数,译码初始索引编号指定的该已编码样本框数据;iv.预测下一个已编码样本框的原始样本的比例常数;v.递增该索引编号,并判断是否为最大索引标号;以及vi.完成所有译码程序。通过支持动态调整字节长度的编码及译码方法,在压縮与解压縮的运算过程中,动态调整压縮数据的字节长度,在压縮质量不变差,或是达到可容许误差(acceptabletolemnce)范围内,节省压縮后数据的冗余比特,从而得到更高的压縮比率。下面结合附图对本发明的具体实施方式作进一步详细的说明。图1为本发明的第一实施例,说明一种支持动态调整字节长度的编码方法的一个流程示意图;图2为本发明的第一工作示例,说明支持动态调整字节长度的编码方法的一个流程示意图;图3为本发明的第二工作示例,说明支持动态调整字节长度的编码方法的一个流程示意图;图4为本发明第二工作示例的支持动态调整字节长度的译码方法的一个流程示意图。其中,附图标记说明如下101设定编码器的可容许误差值,与可接受的字节长度范围102将原始数据划分为多个样本框,每一个样本框根据可容许误差值,并依照每一个样本框的一比例常数,设定每一个样本框的最小字节长度值的有号二进制数值103完成所有样本框数据的编码201设定编码器的可容许误差值,与可接受的字节长度范围,包含最高可接受字节长度值与最低可接受字节长度值202将原始数据划分为多个样本框,并对每一个样本框依序设定索引编号203初始索引编号指定的样本框的字节长度设定为最高可接受字节长度值204找出此样本框的最大动态范围的样本,并以此样本值与此样本框的字节长度值计算出此样本框转换的一比例常数205根据此样本框转换的比例常数,将样本框内的原始样本转换成为此样本框的字节长度值所指定的较少比特数的有号二进制数值206计算此样本框的字节长度值的误差平方总和,通过此样本框内的较少比特数的有号二进制数值乘以该比例常数后的实际表达值,再累加原始数据对应的样本的差额平方207递减此样本框的字节长度值,并判断是否等于最低可接受字节长度值208找出最小字节长度值,其是通过当此样本框的字节长度值对应的误差平方总和,小于最高可接受的字节长度值所计算出的误差平方总和以及可容许误差值的和时确定出的。209在此样本框的起始处插入此样本框的对应的比例常数与最小字节长度值210递增索引编号,并判断是否为最大索引标号211完成所有样本框数据的编码301设定编码器的可容许误差值,根据可容许误差值,制定"字节长度值的适用比例常数范围表"302设定当前的一比例常数至合理初始水平303将原始数据划分为多个样本框,并对每一个样本框依序设定索引编号304根据步骤302当前的比例常数,査询字节长度值的适用比例常数范围表,将初始索引编号指定的样本框内的原始样本转换成为此样本框的字节长度值所指定的较少比特数的有号二进制数值305预测下一个样本框的原始样本的比例常数306递增索引编号,并判断是否为最大索引标号307完成所有样本框数据的编码401使用与编码程序相同的"字节长度值的适用比例常数范围表"402设定当前的一比例常数至与编码程序相同合理初始水平403对每一个已编码样本框依序设定索引编号,根据步骤402的比例常数,对初始索引编号指定的已编码样本框数据进行译码404预测下一个已编码样本框的原始样本的比例常数405递增索引编号,并判断是否为最大索引标号406完成所有译码程序具体实施方式图1为本发明的第一实施例,说明一种支持动态调整字节长度的编码方法的一个流程示意图。本方法是应用于一般的编码算法中,在压縮质量不变差或达到可容忍的误差范围内,计算出最低的字节长度值。步骤101中,设定编码器的可容许误差值,与可接受的字节长度范围。接着,步骤102中,将原始数据划分为多个样本框,每一个样本框根据可容许误差值,并依照每一个样本框的一比例常数,设定每一个样本框的最小字节长度值的有号二进制数值。最后,完成所有样本框数据的编码,如步骤103所示。步骤101中的可容许误差值可以是样本框的误差平方总和。字节长度范围是定义了编码算法中的最高可接受字节长度值(maximumwordlength)与最低可接受字节长度值(minimumwordlength)。每一个样本框的比例常数的计算,是由该样本框的最大动态范围样本与该样本框的字节长度值,计算出该样本框的转换比例常数。而可接受的字节长度与比例常数可储存于编码数据中,也可以将字节长度范围依照比例常数制定一查询表储存于编码数据中。步骤102中,原始数据可以是语音数据或是影像数据。一般来说,图2为本发明的第一工作范例(workingexample),说明支持动态调整字节长度的编码方法的一个流程示意图。本工作示例是以线性量化的适应性脉冲码调制(APCM)为基础,并以样本框的误差平方总和作为可容忍的误差范围。参考图2,首先,设定编码器的可容许误差值,与可接受的字节长度范围,包含最高可接受字节长度值与最低可接受字节长度值,如步骤201所示。接着,将原始数据划分为多个样本框,并对每一个样本框依序设定索引编号,如步骤202所示。初始索引编号指定的样本框的字节长度设定为最高可接受字节长度值,如步骤203所示。找出此样本框的最大动态范围的样本,并以此样本值与此样本框的字节长度值计算出此样本框转换的一比例常数,如步骤204所示。接着,根据此样本框转换的比例常数,将样本框内的原始样本转换成为此样本框的字节长度值所指定的较少比特数的有号二进制数值,如步骤205所示。计算此样本框的字节长度值的误差平方总和,通过此样本框内的较少比特数的有号二进制数值乘以该比例常数后的实际表达值,再累加原始数据对应的样本的差额平方,如步骤206所示。递减此样本框的字节长度值,并判断是否等于最低可接受字节长度值,如步骤207所示。如果否的话,则回到步骤204。如此,步骤204-步骤207的循环,即可算出全部可接受的字节长度值的误差平方总和。在步骤207中,当此样本框的字节长度值等于最低可接受字节长度值时;即可找出最小字节长度值,是当此样本框的字节长度值对应的误差平方总和,小于最高可接受的字节长度值所计算出的误差平方总和以及可容许误差值的和,如步骤208所示。接着,在此样本框的起始处插入此样本框的对应的比例常数与最小字节长度值,如步骤209所示。递增索引编号,并判断是否为最大索引标号,如步骤210所示。如果否的话,回到步骤203。如果是的话,完成所有样本框数据的编码,如步骤2U所示。综上所述,此第一工作示例中,其每一个样本框的对应的比例常数与最小字节长度值,都由编码算法中计算出来,如步骤204-步骤208,并储存在编码数据里,如步骤209,因此,在译码时可直接读取编码数据里的比例常数与最小字节长度值,以利进行译码动作。此做法可降低译码器的负担(包含译码器的软件或是硬件),对于仅需做译码器的集成电路,可降低其硬件成本。但是由于在编码数据里储存每一个样本框的对应的比例常数与最小字节长度值,则会增加编码数据的实际比特率(bitrate),而降低了实际的平均压縮比。图3为本发明的第二工作示例,说明支持动态调整字节长度的编码方法的一个流程示意图。本工作示例是以线性量化的适应性脉冲码调制(APCM)为基础,并以样本框的误差平方总和作为可容忍的误差范围,本工作示例中,是将字节长度范围依照比例常数制定一查询表。参考图3,首先,设定编码器的可容许误差值,根据可容许误差值,制定"字节长度值的适用比例常数范围表",如步骤301所示。设定当前的一比例常数至合理初始水平,如步骤302所示。接着,将原始数据划分为多个样本框,并对每一个样本框依序设定索引编号,如步骤303所示。根据步骤302当前的比例常数,査询字节长度值的适用比例常数范围表,将初始索引编号指定的样本框内的原始样本转换成为此样本框的字节长度值所指定的较少比特数的有号二进制数值,如步骤304所示。接着,预测下一个样本框的原始样本的比例常数,如步骤305所示。递增索引编号,并判断是否为最大索引标号,如步骤306所示。如果为否的话,回到步骤304。如果为是的话,完成所有样本框数据的编码,如步骤307所示。其中,步骤305中,是可通过一预测器(predictor),根据当前原始样本以及之前的若干各原始样本的趋势,预测及适当设定用于编码下一个原始样本的比例常数。此第二工作示例中,是将比例常数与字节长度范围的査询表,存于编码数据中,因此,在译码程序中,可使用与编码相同的查询表,以利于译码。值得一提的是,另外在第一与第二工作示例中,可在整个编码数据的最末端加入一结束码,以完成所有样本框数据的编码。一般来说,图4为图3的第二工作范例的支持动态调整字节长度的译码方法的一个流程示意图。参考图4,使用与编码程序相同的"字节长度值的适用比例常数范围表",如步骤401所示。设定当前一比例常数至与编码程序相同合理初始水平,如步骤402所示。并对每一个已编码样本框依序设定索引编号,根据步骤402的比例常数,对初始索引编号指定的已编码样本框数据译码,如步骤403所示。接着,预测下一个已编码样本框的原始样本的比例常数,如步骤404所示。递增索引编号,并判断是否为最大索引标号,如步骤405所示。如果为否的话,回到步骤403。如果为是的话,完成所有译码程序,如步骤406所示。以上所述仅为发明的最佳实施例而已,不能依此限定本发明实施的范围。即凡包括在本发明申请保护范围内所作的均等变化与修饰,都应属于本发明专利涵盖的范围。权利要求1.一种支持动态调整字节长度的编码方法,应用于传统的一编码算法中,其特征是该方法包含下列步骤A.设定该编码算法的一可容许误差值,与可接受的字节长度范围;B.将一原始数据划分为多个样本框,每一该样本框根据该可容许误差值,并依照每一该样本框的一比例常数,设定每一该样本框的一字节长度值的有号二进制数值;以及C.完成每一该样本框数据的编码。2.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是该步骤B中的每一该样本框的该比例常数,是通过每一该样本框的最大动态范围样本与最高可接受的字节长度值的比例计算出的。3.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是该步骤A中,该字节长度范围定义该编码算法中一最高可接受字节长度值与一最低可接受字节长度值。4.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是该步骤B的每一该样本框的该比例常数与每一该样本框的该字节长度值,可储存于编码数据中。5.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是还可以在该步骤C中,在编码数据的最末端加入一结束码,以完成所有每一该样本框数据的编码。6.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是该步骤B还包括下列步骤a.将一原始数据划分为多个样本框,并对每一该样本框依序设定一索引编号;b.初始索引编号指定的一样本框的字节长度值设定为一最高可接受字节长度值;c.找出该样本框的一最大动态范围的样本,并以该样本值与该样本框的字节长度值计算出该样本框转换的该比例常数;d.根据该样本框转换该比例常数,将该样本框内的原始样本转换成为该样本框的字节长度值所指定的较少比特数的有号二进制数值;e.计算该样本框的字节长度值的误差平方总和,通过该样本框内的较少比特数的有号二进制数值乘以该比例常数后,再累加原始数据对应的样本的差额平方;f.递减该样本框的字节长度值,并判断是否等于一最低可接受字节长度值,如果否的话,则回到该步骤C;g.当该步骤f中等于该最低可接受字节长度值时,找出一最小字节长度值,其是通过当该样本框的字节长度值对应的误差平方总和,小于该最高可接受的字节长度值所计算出的误差平方总和以及该可容许误差值的和时确定出的;h.在该样本框的起始处插入该样本框的对应的该比例常数与该最小字节长度值;以及i.递增该索引编号,并判断是否为最大索引标号值,如果否的话,则回到该步骤b。7.根据权利要求6所述的支持动态调整字节长度的编码方法,其特征是译码已编码数据的方法,是根据编码数据内每一该样本框的对应的该比例常数与该最小字节长度值,进行译码。8.根据权利要求1所述的支持动态调整字节长度的编码方法,其特征是该步骤A中,可根据该可容许误差值,预先将该字节长度范围依照比例常数制定一称为一字节长度值的适用比例常数范围表的査询表。9.根据权利要求8所述的支持动态调整字节长度的编码方法,其特征是该步骤B还包括下列步骤i.设定当前一比例常数至合理初始水平;ii.将一原始数据划分为多个样本框,并对每一该样本框依序设定索引编号,iii.根据该步骤i的该比例常数,査询该字节长度值的适用比例常数范围表,将初始索引编号指定的该样本框内的原始样本转换成为该样本框的字节长度值所指定的较少比特数的有号二进制数值;iv.预测下一该样本框的原始样本的比例常数;以及v.递增该索引编号,并判断是否为最大索引标号,如果否的话,则回到该步骤iii。10.根据权利要求9所述的支持动态调整字节长度的编码方法,其特征是该步骤iv中,可通过一预测器根据当前原始样本以及之前的原始样本的趋势,预测及适当设定用于编码下一该样本框的原始样本的比例常数。11.根据权利要求8所述的支持动态调整字节长度的编码方法,其特征是译码已编码数据的方法,该译码方法包含下列步骤i.使用与该编码方法相同的该"字节长度值的适用比例常数范围表";ii.设定当前的一比例常数至与该编码程序相同合理初始水平;iii.对每一个已编码样本框依序设定索引编号,根据该步骤ii的该比例常数,译码初始索引编号指定的该已编码样本框数据;iv.预测下一个已编码样本框的原始样本的比例常数;V.递增该索引编号,并判断是否为最大索引标号;以及vi.完成所有译码程序。全文摘要本发明公开了一种支持动态调整字节长度的编码方法,本发明的编码方法包含下列步骤设定编码器的可容许误差值,与可接受的字节长度范围;将原始数据划分为多个样本框,每一个样本框根据可容许误差值,并依照每一个样本框的一比例常数,设定每一个样本框的最小字节长度值的有号二进制数值;完成所有样本框数据的编码。而支持动态调整字节长度的译码方法,是当字节长度与比例常数储存于编码算法时,则译码可根据编码数据的字节长度与比例常数;若字节长度与比例常数以查询表方式储存于编码数据中,则译码过程使用与编码程序相同的查询表,通过查表方式查询编码数据的字节长度与比例常数,以进行译码。文档编号H03M7/40GK101325417SQ20071011016公开日2008年12月17日申请日期2007年6月14日优先权日2007年6月14日发明者邓致超申请人:佑华微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1