CN101430881B - 一种编码、解码、编解码方法、编解码系统以及相关装置 - Google Patents

一种编码、解码、编解码方法、编解码系统以及相关装置 Download PDF

Info

Publication number
CN101430881B
CN101430881B CN200810175265XA CN200810175265A CN101430881B CN 101430881 B CN101430881 B CN 101430881B CN 200810175265X A CN200810175265X A CN 200810175265XA CN 200810175265 A CN200810175265 A CN 200810175265A CN 101430881 B CN101430881 B CN 101430881B
Authority
CN
China
Prior art keywords
vector
index value
amplitude
codebook index
length
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
Application number
CN200810175265XA
Other languages
English (en)
Other versions
CN101430881A (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
Original Assignee
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200810175265XA priority Critical patent/CN101430881B/zh
Publication of CN101430881A publication Critical patent/CN101430881A/zh
Priority to EP09824388.4A priority patent/EP2295947B1/en
Priority to PCT/CN2009/074604 priority patent/WO2010051733A1/zh
Priority to US12/982,050 priority patent/US8731947B2/en
Application granted granted Critical
Publication of CN101430881B publication Critical patent/CN101430881B/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/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0004Design or structure of the codebook
    • G10L2019/0005Multi-stage vector quantisation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0013Codebook search algorithms

Abstract

本发明实施例公开了一种编码、解码、编解码方法、编解码系统以及相关装置,用于减少存储复杂度,提高编码性能。编码方法包括:获取待编码的矢量对应的幅度矢量和长度矢量;对所述幅度矢量以及长度矢量进行排序;根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值。本发明实施例还提供解码方法,编解码系统及装置。本发明实施例可以减少存储复杂度,提高编码性能。

Description

一种编码、解码、编解码方法、编解码系统以及相关装置
技术领域
本发明涉及数据处理领域,尤其涉及一种编码、解码、编解码方法、编解码系统以及相关装置。
背景技术
近年来,随着承载技术的发展,用户对音频编码器的编码质量提出了越来越高的要求。在追求语音通话的同时,用户希望获得更高质量、更丰富的媒体服务。一方面,在通信领域,用户越来越不满足于窄带语音编解码器的质量,因此语音编解码器已逐步向宽带、超宽带扩展。另一方面,应用于多媒体技术领域的音频编码器也逐渐朝着能够提供低速率高质量的音频编码质量方向努力。
目前已经标准化的音频编码器大都是采用变换编码、心理声学模型和格型矢量量化技术相结合的方法对信号进行编码。
现有技术中,国际电信联盟电信标准局(ITU-T,InternationalTelecommunication Union Telecommunication Standardization Sector)最新的宽带嵌入式变速率编码器G.718中使用了基于分层组合的格型码书索引编码方法,其主要步骤包括:
首先对待编码矢量的符号进行编码,并得到与待编码矢量相对应的绝对值矢量;
其次,根据事先存储的每一个Leader矢量对应的表征各层移除元素数值大小的矢量和一个表征符号编码所需比特数、分层编码的层数以及除最高层外各层绝对值矢量维数的分层组合编码参数矢量,依次移除待编码的绝对值矢量中相应元素,并对所剩元素在上一层中的位置进行编码,最后累计各层编码值,并考虑待编码矢量的符号编码值贡献,得到最终的待编码矢量的索引值。
但是,上述技术方案增加了存储复杂度,特别是对于编码比特数较高,Leader码字较多的格型矢量量化器,增加的存储复杂度几乎和码书自身的存储复杂度相当。
发明内容
本发明实施例提供了一种编码、解码、编解码方法、编解码系统以及相关装置,能够减少存储复杂度,提高编码性能。
本发明实施例提供的编码方法,包括:获取待编码的矢量对应的幅度矢量和长度矢量;对所述幅度矢量以及长度矢量进行排序;根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值。
本发明实施例提供的解码方法,包括:接收编码端发送的格型码书索引值;获取幅度矢量以及长度矢量;对所述幅度矢量以及长度矢量进行排序;根据所述排序后的幅度矢量以及排序后的长度矢量解码得到矢量。
本发明实施例提供的编解码方法,包括:编码装置在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;编码装置获取待编码的矢量对应的幅度矢量和长度矢量;编码装置对幅度矢量以及长度矢量进行排序;编码装置根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;编码装置根据所述码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送所述格型码书索引值;解码装置在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;解码装置根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;解码装置从所述格型码书索引值中减去该码书索引值偏移量得到新索引值;解码装置对幅度矢量以及长度矢量进行排序;解码装置根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
本发明实施例提供的编解码系统,包括:编码装置,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,获取待编码的矢量对应的幅度矢量和长度矢量,对幅度矢量以及长度矢量进行排序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据所述码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值,向解码装置发送该格型码书索引值;解码装置,用于接收编码装置发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从所述格型码书索引值中减去该码书索引值偏移量得到新索引值,对幅度矢量以及长度矢量进行排序,根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
本发明实施例提供的编解码系统,包括:编码装置,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,对矢量中的符号矢量进行单独编码得到符号索引值,获取无符号待编码的矢量对应的幅度矢量和长度矢量,对幅度矢量以及长度矢量进行排序,对无符号待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据码书索引值偏移量,符号索引值,位置索引值计算矢量的格型码书索引值,向解码装置发送该格型码书索引值;解码装置,用于接收编码装置发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从格型码书索引值中减去该码书索引值偏移量得到新索引值,从新索引值中分离出符号索引值和位置索引值,根据符号索引值解码出非零元素符号矢量,对幅度矢量以及长度矢量进行排序,根据获取到的位置索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到无符号矢量,根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量。
本发明实施例提供的编码装置,包括:查询单元,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;获取单元,用于获取待编码的矢量对应的幅度矢量和长度矢量;排序单元,用于对获取单元获取到的幅度矢量以及长度矢量进行排序;置换编码单元,用于根据排序单元排序后的长度矢量和幅度矢量,按照最优的元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值;执行单元,根据查询单元查询到的码书索引值偏移量和置换编码单元获取到的位置索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送该格型码书索引值。
本发明实施例提供的解码装置,包括:接收单元,用于接收编码装置发送的格型码书索引值;查找单元,用于在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,并根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;生成单元,用于从格型码书索引值中减去该码书索引值偏移量得到新索引值;排序单元,用于对查找单元获取到的幅度矢量以及长度矢量进行排序;解码单元,用于根据生成单元获取到的新索引值,以及排序单元排序后的幅度矢量,长度矢量解码得到矢量。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,由于可以获取根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,并根据排序后的幅度矢量以及排序后的长度矢量进行置换编码,幅度矢量和长度矢量的获取是随编解码过程实时进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度;
其次,本发明实施例中,在对幅度矢量以及长度矢量进行排序后得到的是顺序有规律的矢量,因此能够按照最优元素移除顺序对待编码的矢量各元素出现的位置顺序进行置换编码,从而能够降低编码过程的计算复杂度,提高编码性能。
附图说明
图1为本发明实施例中编码方法第一实施例示意图;
图2为本发明实施例中解码方法第一实施例示意图;
图3为本发明实施例中编码方法第二实施例示意图;
图4为本发明实施例中解码方法第二实施例示意图;
图5为本发明实施例中编解码系统实施例示意图;
图6为本发明实施例中编码装置实施例示意图;
图7为本发明实施例中解码装置实施例示意图。
具体实施方式
由于现有技术中的宽带嵌入式变速率编码器G.718具体采用的是对待编码矢量的符号和绝对值矢量进行单独的索引值编码,而对绝对值矢量的索引值编码使用基于分层组合的格型码书索引编码方法,导致该方法需要存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,从而增加了存储复杂度。
本发明实施例提供了一种编码、解码、编解码方法、编解码系统以及相关装置,用于减少存储复杂度,提高编码性能。
本发明实施例中提供的编码方法如图1所示,具体包括:
101、在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
本实施例中,在编码端预先存储有一个码书索引值偏移量表,该表用于指示矢量与幅度绝对值矢量和符号矢量之间的对应关系,该表与现有技术中的码书索引值偏移量表类似,此处不做限定。
根据待编码的矢量即可确定对应的码书索引值偏移量,用以表示幅度绝对值索引值和符号索引值。
102、获取待编码的矢量对应的幅度矢量和长度矢量;
本步骤中,根据待编码的矢量即可获取到对应的幅度矢量以及长度矢量,具体可以根据待编码的矢量所属的Leader矢量获取得到,同样也可以根据待编码的矢量计算得到。
需要说明的是,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素;一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数。
103、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
本实施例中,为了能够按照最优元素移除顺序进行置换编码,因此本步骤中需要首先对幅度矢量以及长度矢量进行排序。
具体排序的方法可以先对幅度矢量的元素按照一定的规律进行重新排列,并相应地调整长度矢量中各元素的顺序,再对长度矢量的元素按照一定的规律进行重新排列,并相应地调整幅度矢量中各元素的顺序;
也可以是对长度矢量中的元素按照一定的规律进行重新排列,并相应地调整幅度矢量中元素的顺序,对于排序后长度矢量中元素相等的情况,其相应幅度矢量中的元素应该按照一定的规律再进行一次调整。
此外,排序使用的规律也有很多种,可以按照从大到小的顺序进行,也可以按照从小到大的顺序进行,此处不做限定。
104、对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;
本实施例中,根据排序后的长度矢量和幅度矢量,按照最优的元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值。
最优移除顺序即按照长度矢量中元素由大到小顺序所对应的幅度矢量的元素顺序。
105、根据码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值。
本实施例中,由于可以根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,并根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序进行置换编码,幅度矢量和长度矢量的获取是随编码过程实时进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度;
其次,本发明实施例中,在对幅度矢量以及长度矢量进行排序后得到的是顺序有规律的矢量,因此能够按照最优元素移除顺序对待编码的矢量各元素出现的位置顺序进行置换编码,从而能够降低编码过程的计算复杂度,提高编码性能。
上述描述了本实施例中的编码过程,下面描述与上述编码过程对应的解码过程:
请参阅图2,本发明实施例中解码方法第一实施例包括:
201、在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;
本实施例中,当解码端接收到编码端发送的格型码书索引值后,在与编码端相同的码书索引值偏移量表中查找小于接收到的格型码书索引值的码书索引值偏移量,之后再在查找到的码书索引值偏移量中取最大的码书索引值偏移量。
202、根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
根据此码书索引值偏移量在码书索引值偏移量表中的标号确定矢量中包含的元素值,并得到对应的幅度矢量和长度矢量。
203、从格型码书索引值中减去该码书索引值偏移量得到新索引值;
204、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
本实施例中,对幅度矢量和长度矢量中的元素顺序按照与编码端相同的排序规则进行排序,但是对幅度矢量和长度矢量排序的先后顺序不做限定。
205、根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
根据排序后的长度矢量和幅度矢量,按照与编码端相同的元素移除顺序,由新的索引值解码出位置矢量,并得到按照幅度矢量、长度矢量和位置矢量生成新矢量,该矢量即为接收到的格型码书索引值对应的矢量。
需要说明的是,在实际应用中,上述编码方法以及解码方法可以结合使用,也可以独立使用。
为便于理解,下面以一具体实例对本发明实施例中的编码方法进行详细描述:
发明应用到基于Gosset格的格型矢量量化器的码书索引编解码中。基于Gosset格的格型矢量量化器的码书由最基本的Root Leader矢量经过元素符号以及位置的变化产生。每一个Root Leader矢量只经过元素符号的变化后构成一系列Leader矢量,每一个Leader矢量再经过元素位置的变化,最终构成整个码书。Root Leader矢量中各元素均为非负数,且按照从大到小的顺序排列。在基于Gosset格的格型矢量量化器中只存储了所有Root Leader矢量对应的幅度矢量和长度矢量。Root Leader矢量对应的幅度矢量表征了对应的矢量中不同元素数值的大小,元素值按照由大到小的顺序排列。Root Leader矢量对应的长度矢量表征了对应的矢量中不同元素值各自出现的次数。由Root Leader矢量对应的幅度矢量和长度矢量可以很容易地计算相应的Root Leader矢量,根据Root Leader及元素符号的变换规律,可以计算出每一个Root Leader矢量下对应的Leader矢量及Leader矢量对应的幅度矢量和长度矢量。
编码端在码书中搜索与待量化矢量距离最近的矢量,得到待编码的矢量,同时可以得到相应的Root Leader矢量、Leader矢量。
首先对Root Leader矢量以及Leader矢量进行简要介绍:
Root Leader又可称为根引导项。在格型码书中,如果一些码字可以由一个矢量通过元素符号和位置顺序的变换得到,这个矢量就称为Root Leader矢量,这些码字就属于同一个Root Leader。Root Leader矢量中的元素均为非负数,通常也按照元素值由大到小的顺序排列。例如码字[2 0 0]、[0 2 0]、[0 0 2]、[-2 0 0]、[0 -2 0]、[0 0 -2]均可以由一个矢量[2 0 0]经过元素符号和位置顺序的变换得到,那么矢量[2 0 0]就是这六个码字所属的Root Leader矢量。
Leader又可称为引导项。在格型码书中,如果一些码字可以由一个矢量通过元素位置顺序的变换得到,这个矢量就称为Leader矢量,这些码字就属于同一个Leader。Leader矢量中的元素通常按照元素值由大到小的顺序排列。例如码字[2 0 0]、[0 2 0]、[0 0 2]均可以由一个矢量[2 0 0]经过元素位置顺序的变换得到,那么矢量[2 0 0]就是这三个码字所属的Leader矢量;又例如码字[-2 0 0]、[0 -2 0]、[0 0 -2]均可以由一个矢量[00-2]经过元素位置顺序的变换得到,那么矢量[0 0 -2]就是这三个码字所属的Leader矢量。
下面进行具体介绍:
以一个8比特量化的8维Gosset格型矢量量化器为例,该格型矢量量化器包含的Root Leader矢量:第0个Root Leader矢量[2 2 0 0 0 0 0 0]和第1个Root Leader矢量[1 1 1 1 1 1 1 1]。第0个Root Leader矢量对应的Leader矢量包括:第0个Leader矢量[2 2 0 0 0 0 0 0],第1个Leader矢量[2 0 0 0 0 0 0 -2],第2个Leader矢量[0 0 0 0 0 0 -2 -2];第1个Root Leader矢量对应的Leader矢量包括:第0个Leader矢量[1 1 1 1 1 1 1 1],第1个Leader矢量[1 1 1 1 1 1 -1 -1],第2个Leader矢量[1 1 1 1 -1 -1 -1 -1],第3个Leader矢量[1 1 -1 -1 -1 -1 -1 -1],第4个Leader矢量[-1 -1 -1 -1 -1 -1 -1 -1]。
假设待编码的矢量为X=[0 0 0 -2 0 2 0 0]。由于Leader矢量[2 0 0 0 0 0 0 -2]经过元素位置的变化可以得到X矢量,因此待编码的矢量X对应的Leader矢量为[2 0 0 0 0 0 0 -2]。由于Root Leader矢量[2 2 0 0 0 0 0 0]经过元素符号和位置的变化可以得到X矢量,因此待编码的矢量X对应的Root Leader矢量为[2 2 0 0 0 0 0 0]。
同样请参阅图1,应用于Gosset格的格型矢量量化器中时的编码方法具体包括:
101、在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
对待编码的矢量对应的幅度绝对值矢量和符号矢量进行索引编码。这里对待编码的矢量中各元素的符号和幅度值进行联合编码,在码书索引值偏移量表中查找待编码的矢量对应的码书索引值偏移量。
本实施例中的码书索引值偏移量表具体可以为:
Offset_table[2][5]={
                    {0,28,84},
                    {112,113,141,211,239}
                    };
其中,表格的行数对应了量化器包含的Root Leader矢量的个数,各行的列数为量化器包含的该Root Leader矢量所属的Leader矢量的个数。在码书索引值偏移量表中查找待编码的矢量对应的码书索引值偏移量时,表格的行下标代表了与待编码的矢量对应的Root Leader矢量在码书中的标号(本实施例矢量X属于第0个Root Leader矢量,因此行下标为0),表格的列下标代表了该Root Leader矢量所属的待编码的矢量对应的Leader矢量的标号(本实施例矢量X属于第0个Root Leader矢量的第1个Leader矢量,因此列下标为1)。
该码书索引值偏移量可以记作idxOffset。具体地,可以根据与待编码的矢量对应的Root Leader矢量和待编码的矢量之间的符号差异得到表征待编码的矢量中各元素符号的标号(本实施例为1),该标号即为对应的Leader矢量的标号,也就是列下标的标号。
由于Root Leader矢量中的元素均为非负数,因此也可以说是根据待编码的矢量中绝对值相同的非零元素的符号的个数,计算出表征待编码的矢量中各元素符号的标号。然后根据与待编码的矢量对应的Root Leader矢量在码书中的标号(本实施例为0)以及上面得到的表征待编码的矢量中各元素符号的标号(本实施例为1),在码书索引值偏移量表中查找对应的码书索引值偏移量(即码书索引值偏移量即表格第0行、第1列的值:28)。码书索引值偏移量表是根据基于Gosset格的格型码书的结构事先计算并存储的。表格第i行第j列的值为第0到第i-1个Root Leader矢量所能生成的所有码字的个数加上第i个Root Leader矢量所属的第0到第j-1个Leader矢量所能生成的所有码字的个数。在本实施例中,以第1行第1列为例,第0个Root Leader矢量经过元素符号和位置变化后可以得到112个码字,第1个Root Leader矢量所属的第0个Leader矢量经过元素位置变化后可以得到1个码字,因此第1行第1列的值为112+1=113。
102、获取待编码的矢量对应的幅度矢量和长度矢量;
本实施例中,幅度矢量和长度矢量可以根据待编码的矢量所属的Leader矢量获得,例如待编码的矢量所属的Leader矢量为[2 0 0 0 0 0 0 -2],则幅度矢量为 μ = μ 0 μ 1 · · · μ L p - 1 = 2 0 - 2 ,长度矢量为 W = w 0 w 1 · · · w L p - 1 = 1 6 1 , LP=3,其中LP为幅度矢量和长度矢量的维数,表示待编码的矢量中元素值不同的元素的数目。
幅度矢量和长度矢量也可以根据待编码的矢量获得,例如待编码的矢量为X=[0 0 0 -2 0 2 0 0],则对应的幅度矢量为 μ = μ 0 μ 1 · · · μ L p - 1 = 0 - 2 2 ,长度矢量为 W = w 0 w 1 · · · w L p - 1 = 6 1 1 , LP=3,其中LP为幅度矢量和长度矢量的维数,表示待编码的矢量中元素值不同的元素的数目。
103、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
本实施例中,可以先对幅度矢量的元素按照从大到小的规律进行重新排列,并相应地调整长度矢量中各元素的顺序,再对调整后的长度矢量的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中各元素的顺序。
如果幅度矢量和长度矢量是根据待编码的矢量所属的Leader矢量获得的,那么原始幅度矢量的元素已经是按照从大到小的顺序排列,只需要对长度矢量的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中各元素的顺序即可。
若根据待编码的矢量获得的幅度矢量和长度矢量,则原始的幅度矢量为 μ = μ 0 μ 1 · · · μ L p - 1 = 0 - 2 2 ,长度矢量为 W = w 0 w 1 · · · w L p - 1 = 6 1 1 . 先对幅度矢量的元素按照从大到小的规律进行重新排列得到 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 2 0 - 2 ,并相应地调整长度矢量中各元素的顺序得到 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 1 6 1 ; 再对调整后的长度矢量的元素按照从大到小的规律进行重新排列得到 W ′ ′ = w 0 ′ ′ w 1 ′ ′ · · · w L p - 1 ′ ′ = 6 1 1 , 并相应地调整幅度矢量中各元素的顺序得 μ ′ ′ = μ 0 ′ ′ μ 1 ′ ′ · · · μ L p - 1 ′ ′ = 0 2 - 2 . 将最终得到的排序后的幅度矢量记为 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 2 - 2 , 排序后的长度矢量记为 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 .
若根据待编码的矢量所属的Leader矢量获得的幅度矢量和长度矢量,则由于原始幅度矢量的元素已经是按照从大到小的顺序排列,因此只需要对长度矢量的元素按照从大到小的规律进行重新排列。根据待编码的矢量所属的Leader矢量获得的原始长度矢量为 W = w 0 w 1 · · · w L p - 1 = 1 6 1 , 原始幅度矢量为 μ = μ 0 μ 1 · · · μ L p - 1 = 2 0 - 2 , 长度矢量按照元素从大到小的顺序重新排列后变为 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 , 然后相应的调整幅度矢量中各元素的顺序,得到调整后的幅度矢量 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 2 - 2 . 将最终得到的排序后的幅度矢量记为 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 2 - 2 , 排序后的长度矢量记为 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 .
需要说明的是,也可以先对长度矢量的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中元素的顺序;对于排序后长度矢量中元素相等的情况,其相应幅度矢量中的元素应该按照从大到小的规律再进行一次调整:
以根据待编码的矢量获得的幅度矢量和长度矢量为例,在编码过程中(即步骤103中)对原始长度矢量中的元素按照从大到小的规律进行重新排列得到 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 ,并相应地调整原始幅度矢量中元素的顺序得到 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 - 2 2 ; 对于排序后长度矢量中元素相等的情况(排序后长度矢量中下标为1和2的元素均为1),其相应幅度矢量中的元素应该按照从大到小的规律再进行一次调整,即按照从大到小的规律调整幅度矢量中下标为1和2的元素得到 μ ′ ′ = μ 0 ′ ′ μ 1 ′ ′ · · · μ L p - 1 ′ ′ = 0 2 - 2 . 将最终得到的排序后的幅度矢量记为 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 2 - 2 , 排序后的长度矢量记为 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 .
由此可知,无论是根据待编码的矢量所属的Leader矢量获得的幅度矢量和长度矢量,还是根据待编码的矢量获得的幅度矢量和长度矢量,经过重新排列后的幅度矢量和长度矢量是一致的。
此外,幅度矢量和长度矢量排序时所使用的规律可以是均按照从大到小的顺序进行;可以是均按照从小到大的顺序进行;也可以是对幅度矢量按照从大到小的顺序进行,对长度矢量按照从小到大的顺序进行;还可以是对长度矢量按照从大到小的顺序进行,对幅度矢量按照从小到大的顺序进行:
例如,先对幅度矢量的元素按照从大到小的规律进行重新排列得到 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 2 0 - 2 , 并相应地调整长度矢量中各元素的顺序得到 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 1 6 1 ;
再对调整后的长度矢量的元素按照从小到大的规律进行重新排列得到 W ′ ′ = w 0 ′ ′ w 1 ′ ′ · · · w L p - 1 ′ ′ = 1 1 6 , 并相应地调整幅度矢量中各元素的顺序得 μ ′ ′ = μ 0 ′ ′ μ 1 ′ ′ · · · μ L p - 1 ′ ′ = 2 - 2 0 .
104、对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;
本实施例中的元素移除顺序是指待编码矢量中元素出现频率由高到低的顺序,即是出现次数多的元素先移除。具体地,元素移除可以按照排序后的长度矢量元素值由大到小对应的排序后的幅度矢量中对应的元素顺序进行。
在本实施例中最终得到的排序后的长度矢量为 W ′ = w 0 ′ w 1 ′ · · · w L p - 1 ′ = 6 1 1 , 排序后的幅度矢量为 μ ′ = μ 0 ′ μ 1 ′ · · · μ L p - 1 ′ = 0 2 - 2 . 由于长度矢量中元素是按照由大到小顺序重新排列的,因此只要按照排序后相应的幅度矢量下标从小到大的顺序移除就可以了。本实施例中将待编码的矢量分解为Lp层,并以待编码的矢量作为最高层矢量,采用基于分层组合的索引值编码方法,根据上一步排序后的长度矢量和幅度矢量,对待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值。具体可以通过如下过程得到该位置索引值idx VecLocal:
(1)将待编码的矢量分解为Lp层,以待编码的矢量作为最高层矢量。换句话说第0层矢量为待编码的矢量。继续上面的例子,第0层矢量为待编码的矢量,[0 0 0 -2 0 2 0 0]。
(2)增加n值。在第n层(0<n<LP),通过从上一层(n-1层)矢量中移除出现频率最高的元素得到一个新的矢量,这个当前层的新的矢量是由剩余的元素构成的,新矢量中元素的位置顺序根据第n-1层矢量有关。所有的剩余元素的位置值构成了一个位置矢量。继续上面的例子,层数Lp=3,在第1层,从第0层矢量(原始的矢量)中移除元素 &mu; n - 1 &prime; = &mu; 0 &prime; = 0 ,则第1层得到的新的矢量为[-22],位置矢量为[35];在第2层,从第1层矢量[-22]中移除元素 &mu; n - 1 &prime; = &mu; 1 &prime; = 2 ,则第2层得到的新的矢量为[-2],位置矢量为[0]。
(3)对与上一层(第n-1层)矢量相关的当前层(第n层)矢量的位置矢量的编码是基于排列组合函数进行的,其索引值记作mid_idxn。对于当前层的新的矢量,位置矢量索引值可以由以下的计算公式得到:
mid _ idx n = C m n - 1 m n - C m n - 1 - P 0 m n + &Sigma; i = 1 i < m n ( C m n - 1 - P i - 1 - 1 m n - i - C m n - 1 - P i m n - i )
idxVecLocal = idxVecLocal * C m n - 1 m n + mid _ idx n
idxVecLocal在步骤(1)之前被初始化为0。其中,P0、P1、P2......是第n层位置矢量包含的元素值,根据其层数范围为从位置矢量左侧到右侧的所有元素;mn-1为上一层(第n-1层)矢量的维数;mn为当前层(第n层)矢量的维数;
Figure G200810175265XD00135
代表排列组合公式 C p m = p ! m ! &CenterDot; ( p - m ) ! , p,m={1,......,L},且p>m,L为待编码的矢量的维数。所有可能的
Figure G200810175265XD00137
的值可以事先存在一个表格中,这样可以避免程序中的阶乘计算。第n-1层的索引值idxVecLocal乘以当前层的可能索引值的总数
Figure G200810175265XD00138
之后再加上当前层索引值mid_idxn,就得到了当前层的索引值idxVecLocal。
按照本实施例中的例子,在第1层,上一层(第0层)矢量的维数是8,因此mn-1=8,当前层(第1层)新的矢量的维数是2,因此mn=2,则索引值:
mid _ id x 1 = C m n - 1 m n - C m n - 1 - P 0 m n + &Sigma; i = 1 i < m n ( C m n - 1 - P i - 1 - 1 m n - i - C m n - 1 - P i m n - i )
= C 8 2 - C 8 - P 0 2 + &Sigma; i = 1 i < 2 ( C 8 - P i - 1 - 1 2 - i - C 8 - P i 2 - i ) = C 8 2 - C 8 - P 0 2 + C 8 - P 0 - 1 1 - C 8 - P 1 1
= C 8 2 - C 8 - 3 2 + C 8 - 3 - 1 1 - C 8 - 5 1 = 28 - 10 + 4 - 3 = 19 ,
idxVecLocal = idxVecLocal * C m n - 1 m n + mid _ index n = 0 * C 8 2 + 19 = 19 .
在第2层,上一层(第1层)矢量的维数是2,因此mn-1=2,当前层(第2层)新的矢量的维数是1,因此mn=1,那么索引值:
mid _ index 2 = C m n - 1 m n - C m n - 1 - P 0 m n + &Sigma; i = 1 i < m n ( C m n - 1 - P i - 1 - 1 m n - i - C m n - 1 - P i m n - i )
= C 2 1 - C 2 - P 0 1 = C 2 1 - C 2 - 0 1 = 2 - 2 = 0 ,
idxVecLocal = idxVecLocal * C m n - 1 m n + mid _ index n = 19 * C 2 1 + 0 = 19 * 2 + 0 = 38 .
即本实施例中计算得到的位置索引值为38。
需要说明的是,在上述实施例中的步骤104中最优的移除顺序始终是按照待编码的矢量中元素出现频率由高到低进行的。若在上述实施例中的步骤103中长度矢量中元素是按照由小到大顺序重新排列的,移除顺序则按照排序后相应的幅度矢量下标从大到小的顺序移除。以排序时使用的规律为对幅度矢量按照从大到小的顺序进行,对长度矢量按照从小到大的顺序进行为例,排序后的长度矢量记为 W &prime; = w 0 &prime; w 1 &prime; &CenterDot; &CenterDot; &CenterDot; w L p - 1 &prime; = 1 1 6 , 相应的排序后的幅度矢量记为 &mu; &prime; = &mu; 0 &prime; &mu; 1 &prime; &CenterDot; &CenterDot; &CenterDot; &mu; L p - 1 &prime; = 2 - 2 0 .
在本实施例的步骤104的步骤(2)中:在第n层(0<n<LP),从上一层(n-1层)矢量中移除出现频率最高的元素,这个元素从原来的变成了 &mu; L p - n &prime; .
105、根据码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值。
本实施例中,根据码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值。具体地,最终的待编码的矢量对应的格型码书索引值index Vector NT=idxOffset+idx VecLocal。
按照本实施例中前述计算得到的格型码书索引值以及位置索引值可知:index Vector_NT=idxOffset+idx VecLocal=28+38=66。
上述介绍了本实施例中的编码方法详细流程,下面介绍与上述编码方法对应的解码方法,具体同样请参阅图2,包括:
201、在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;
本实施例中,在预置的码书索引值偏移量表中查询比格型码书索引值小的全部码书索引值偏移量,之后再在这些码书索引值偏移量中确定最大的码书索引值偏移量。
本实施例中,解码端接收到的格型码书索引值为66,在如下码书索引值偏移量表中进行查询:
Offset_table[2][5]={
          {0,28,84},
                    {112,113,141,211,239}
                    };
该码书索引值偏移量表与编码端中存储的码书索引值偏移量表一致。
从该码书索引值偏移量表中查找到0<28<66<84,即比66小的码书索引值偏移量有两个,分别为0和28,之后再在这两个码书索引值偏移量中取最大值,所以码书索引值偏移量为28。
202、根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
码书索引值偏移量28在码书索引值偏移量表中对应的表征所属RootLeader的标号为0、表征元素符号的标号为1,表示第0个RootLeader所属的第1个Leader。经过编码端元素符号标号计算的逆过程,由元素符号的标号为1可知Root Leader矢量和Leader矢量之间的符号差异为第1种情况,即非零元素相差1个符号。由RootLeader矢量可以得到相应的Leader矢量为[2 0 0 0 0 0 0 -2],则幅度矢量为 &mu; = &mu; 0 &mu; 1 &CenterDot; &CenterDot; &CenterDot; &mu; L p - 1 = 2 0 - 2 , 长度矢量为 W = w 0 w 1 &CenterDot; &CenterDot; &CenterDot; w L p - 1 = 1 6 1 .
203、从格型码书索引值中减去该码书索引值偏移量得到新索引值;
从格型码书索引值中减去码书索引值偏移量,得到新的索引值。格型码书索引值记作indexVector_NT,码书索引值偏移量记作idxOffset,新的索引值记作则idx VecLocal,则idx VecLocal=index Vector NT-idxOffset。例如,idx VecLocal=indexVector NT-idxOffset=66-28=38。
204、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
解码端可以采用和编码端相同的排序方法,先对幅度矢量的元素按照从大到小的规律进行重新排列,并相应地调整长度矢量中各元素的顺序,再对调整后的长度矢量的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中各元素的顺序。
由于本实施例中对幅度矢量选择了由大到小的元素排列顺序,而解码端获得Leader矢量对应的幅度矢量已经按此顺序排列,因此只需要对长度矢量的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中各元素的顺序即可。例如,原始的幅度矢量为 &mu; = &mu; 0 &mu; 1 &CenterDot; &CenterDot; &CenterDot; &mu; L p - 1 = 2 0 - 2 , 长度矢量为 W = w 0 w 1 &CenterDot; &CenterDot; &CenterDot; w L p - 1 = 1 6 1 , 其中LP=3。则按照长度矢量中元素值由大到小的顺序重新排列后的长度矢量变为 W &prime; = w 0 &prime; w 1 &prime; &CenterDot; &CenterDot; &CenterDot; w L p - 1 &prime; = 6 1 1 , 相应的调整幅度矢量中各元素的顺序后得到幅度矢量 &mu; &prime; = &mu; 0 &prime; &mu; 1 &prime; &CenterDot; &CenterDot; &CenterDot; &mu; L p - 1 &prime; = 0 2 - 2 .
解码端也可以先对长度矢量中的元素按照从大到小的规律进行重新排列,并相应地调整幅度矢量中元素的顺序,对于排序后长度矢量中元素相等的情况,其相应幅度矢量中的元素应该按照从大到小的规律再进行一次调整。
需要说明的是,编解码端对幅度矢量和长度矢量排序的先后顺序可以不一样,但是排序时所遵守的预置的排序规则必须一致。编码端先排序幅度矢量再排序长度矢量,则解码端可以先排序幅度矢量再排序长度矢量,也可以先排序长度矢量再排序幅度矢量。编码端先排序长度矢量再排序幅度矢量,则解码端可以先排序幅度矢量再排序长度矢量,也可以先排序长度矢量再排序幅度矢量。但是编解码端长度矢量内部元素排序时所遵守的元素顺序规律必须一致:编码端长度矢量内部元素排序时所遵守的元素顺序规律是从大到小,则解码端也必须是从大到小。编码端长度矢量内部元素排序时所遵守的元素顺序规律是从小到大,则解码端也必须是从小到大。同样,编解码端幅度矢量内部元素排序时所遵守的元素顺序规律必须一致:编码端幅度矢量内部元素排序时所遵守的元素顺序规律是从大到小,则解码端也必须是从大到小。编码端幅度矢量内部元素排序时所遵守的元素顺序规律是从小到大,则解码端也必须是从小到大。
205、根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
本步骤具体可以包括:
(1)得到索引值mid_idxn:新的索引值idx VecLocal被分解成几个中间索引值,这些中间索引值分别对应从最低层到最高层的各个层。以新的索引值idx VecLocal作为对应最低层的起始值。每一个较低层的中间索引值是由索引值除以可能索引值的总数
Figure G200810175265XD00162
得到的,商为下一个较低层的索引值,余数为当前层的中间索引值mid_idxn
层数n逐渐递减(Lp>n>0)。 mid _ idx n = idxVecLocal % C m n - 1 m n ,
Figure G200810175265XD00164
%表示取余数运算,
Figure G200810175265XD00165
表示向下取整运算,mn-1为上一层(第n-1层)的维数,mn为当前层(第n层)的维数, m n = &Sigma; i = n L p - 1 w i &prime; .
对应编码端的例子,索引值idx VecLocal=38,该索引值被分解成为Lp-1=2个中间索引值:对于n=Lp-1=2, m 2 = &Sigma; i = 2 L p - 1 w i &prime; = w 2 &prime; = 1 , m 1 = &Sigma; i = 1 L p - 1 w i &prime; = w 1 &prime; + w 2 &prime; = 1 + 1 = 2 ,
mid _ idx 2 = idxVecLocal % C m n - 1 m n = 38 % C m 1 m 2 = 38 % 2 = 0 ,
Figure G200810175265XD00172
对于n=1, m 0 = &Sigma; i = 0 L p - 1 w i &prime; = w 0 &prime; + w 1 &prime; + w 2 &prime; = 6 + 1 + 1 = 8 ,
mid _ idx 1 = idxVecLocal % C m n - 1 m n = 19 % C m 0 m 1 = 19 % 28 = 19 ,
Figure G200810175265XD00175
(2)位置矢量解码:基于排列组合函数对每一个较低层的中间索引值mid_idxn进行解码,得到对应于上一层矢量的每一个较低层的位置矢量。为了在每一个较低层由中间矢量得到位置矢量,此算法应用了排列组合函数来估计位置序列。估计的步骤如下:
第一步,初始化i=1,从0开始增加pos的值,直到中间索引值mid_idxn不再大于 C m n - 1 m n - C m n - pos m n ;
第二步,取P0=pos-1作为位置矢量的第一个元素值,从中间索引值mid_idxn中减去 C m n - 1 m n - C m n - 1 - p 0 m n ;
第三步,从Pi-1+1开始继续增加pos的值,直到中间索引值mid_idxn不再大于其中Pi-1为前一步解码出的位置值;
第四步,取Pi=pos-1作为位置矢量中标号为i的元素值,从中间索引值mid_idxn中减去 C m n - 1 - p i - 1 - 1 m n - i - C m n - 1 - p i m n - i , i=i+1;
第五步,重复第三步和第四步,直到当前层位置序列包含的所有位置值都被解码出来。
具体到上述实例中,对于n=1层来说,mid_idx1=19,mn-1=m0=8,mn=m1=2,
第一步:
pos=0, C m n - 1 m n - C m n - 1 - pos m n = C 8 2 - C 8 - 0 2 = 0 < 19 ;
pos=pos+1=1, C m n - 1 m n - C m n - 1 - pos m n = C 8 2 - C 8 - 1 2 = 7 < 19 ;
pos=pos+1=2, C m n - 1 m n - C m n - 1 - pos m n = C 8 2 - C 8 - 2 2 = 13 < 19 ;
pos=pos+1=3, C m n - 1 m n - C m n - 1 - pos m n = C 8 2 - C 8 - 3 2 = 18 < 19 ;
pos=pos+1=4, C m n - 1 m n - C m n - 1 - pos m n = C 8 2 - C 8 - 4 2 = 22 > 19 , 停止;
第二步:
P 0 = pos - 1 = 3 , mid _ idx 1 = mid _ idx 1 - ( C m n - 1 m n - C m n - 1 - p 0 m n ) = 19 - ( C 8 2 - C 8 - 3 2 ) = 19 - 18 = 1 ;
第三步:
pos=P0+1=4, C m n - 1 - p i - 1 - 1 m n - i - C m n - 1 - pos m n - i = C 8 - 3 - 1 2 - 1 - C 8 - 4 2 - 1 = 0 < 1 ;
pos=pos+1=5, C m n - 1 - p i - 1 - 1 m n - i - C m n - 1 - pos m n - i = C 8 - 3 - 1 2 - 1 - C 8 - 5 2 - 1 = 1 = mid _ id x 1 ;
pos=pos+1=6, C m n - 1 - p i - 1 - 1 m n - i - C m n - 1 - pos m n - i = C 8 - 3 - 1 2 - 1 - C 8 - 6 2 - 1 = 2 > 1 , 停止;
第四步:
P1=pos-1=5。当前层位置序列包含的所有位置值都被解码出来了。
同理,对于n=2层来说mid_idx2=0,P0=0。
(3)产生矢量:从最低层到最高层一层一层进行。根据位置参数,每一个较低层矢量被用来替换上一层矢量的部分元素,解码出的最高层矢量为输出的矢量。对于最低层来说,矢量中只包含一个元素值种类,这个值可以根据重新排序后的幅度矢量得到。最低层的矢量被传递到下一层,在下一步中另一个元素值种类被加进来。这个新的元素值也是根据重新排序后的幅度矢量得到。此过程被重复,直到最高层矢量产生完毕。
按照上述实例:
在第0层, &mu; 0 &prime; = 0 , 第0层矢量Y=[0 0 0 0 0 0 0 0];
在第1层层, &mu; 1 &prime; = 2 , P=[35],第1层矢量Y=[0 0 0 2 0 2 0 0];
在第2层, &mu; 2 &prime; = - 2 , P=[0],第2层矢量Y=[0 0 0 -2 0 2 0 0];
由于总层数为3层,因此第2层矢量即为最高层矢量,所以Y=[0 0 0 -2 02 0 0]为最终得到的矢量。
需要说明的是,若在上述实施例中的步骤204中长度矢量中元素是按照由小到大顺序重新排列的,相应的,在步骤205中:
(1)和(2)步骤中的表示当前层(第n层)维数的mn的计算公式由变成了 m n = &Sigma; i = 0 L P - 1 - n w i &prime; ;
(3)步骤中,从第0层到第LP-1层新元素的添加顺序不再是
Figure G200810175265XD00188
而变成了 &mu; L P - 1 - n &prime; .
上述实施例中,由于可以获取根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,并根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序进行置换编码,幅度矢量和长度矢量的获取是随编码过程时实进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度;
其次,本发明实施例中,在对幅度矢量以及长度矢量进行排序后得到的是顺序有规律的矢量,因此能够按照最优元素移除顺序对待编码的矢量各元素出现的位置顺序进行置换编码,从而能够降低编码过程的计算复杂度,提高编码性能。
上述描述了基于Gosset格的格型矢量量化器的码书索引编解码的过程,在实际应用,本实施例中的编解码过程同样还可以基于RE8格的格型矢量量化器的码书索引编解码,或者其他类型的格型矢量量化器的码书索引编解码。
下面介绍另外一种编码方法,具体请参阅图3,本发明实施例中编码方法第二实施例包括:
301、在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
本实施例中,编码端找到离待量化矢量最近的格点,此格点即为待编码的矢量。
根据待编码的矢量所属的Root Leader矢量,在事先存储好的码书索引值偏移量表中查找相应的码书索引值偏移量idxOffset。
302、对矢量中的符号矢量进行单独编码得到符号索引值;
本实施例中,将待编码的矢量的符号矢量分离出来,单独进行符号编码,得到符号索引值idxSign。
编码所需的比特数N等于待编码的矢量中非零元素的个数。所有可能的符号编码的总数为2N。例如,待编码的矢量为X=[0 0 0 -2 0 2 0 0],则符号矢量为[0 0 0 -1 0 1 0 0],去除零元素后为[-1 1],假设用1表示符号为正,0表示符号为负(可以理解的是,同样也可以用0表示正,1表示负)进行编码,编码值为二进制数01,转换为十进制数即1。待编码的矢量中非零元素的个数N=2,因此所有可能的符号编码的总数为2N=4。
303、获取无符号待编码的矢量对应的幅度矢量和长度矢量;
304、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
305、对无符号待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;
需要说明的是,本实施例中的步骤303至步骤305与本发明实施例中编码方法第一实施例中的步骤102至步骤104类似,此处不再赘述,具体结果为:无符号待编码的矢量所属Root Leader矢量对应的幅度矢量为[2 0],长度矢量为[26],无符号待编码的矢量为[0 0 0 2 0 2 0 0]。
306、根据码书索引值偏移量,符号索引值,位置索引值计算矢量的格型码书索引值。
根据得到的符号索引值、位置索引值及码书索引值偏移量,计算最终的待编码的矢量对应的格型码书索引值index Vector_NT。具体地,最终的待编码的矢量对应的格型码书索引值indexVector NT=idxOffset+2N*idxVecLocal+idxSign。
下面介绍与上述编码方法对应的解码方法实施例:
请参阅图4,本发明实施例中的解码方法第二实施例包括:
401、在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;
解码端在接收到格型码书索引值之后,在码书索引值偏移量表中查找小于接收到的格型码书索引值的码书索引值偏移量,之后再在查找到的码书索引值偏移量中取最大的值作为码书索引值偏移量idxOffset。
402、根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
根据步骤401中的码书索引值偏移量在码书中的标号确定矢量所属的Root Leader矢量对应的按照元素数值由大到小顺序排列的幅度矢量和表征不同元素值各自出现次数的长度矢量。
403、从格型码书索引值中减去该码书索引值偏移量得到新索引值;
从格型码书索引值中减去码书索引值偏移量,得到新的索引值。格型码书索引值记作indexVector_NT,码书索引值偏移量记作idxOffset,新的索引值记作则rank,则rank=index Vector_NT-idxOffset。
404、从新索引值中分离出符号索引值和位置索引值;
根据所属的Root Leader矢量中非零元素的个数N,从新的索引值rank中分离出符号索引值idxSign和位置索引值idx VecLocal。具体地:idxSign=rank%2N
Figure G200810175265XD0020140915QIETU
,%表示取余数运算,
Figure G200810175265XD0020140929QIETU
表示向下取整运算。
405、根据符号索引值解码出非零元素符号矢量;
根据符号索引值idxSign解码出非零元素的符号矢量。例如,符号索引值idxSign=1,变换成二进制数为01,根据与编码端相同的编码准则,用1表示符号为正,0表示符号为负,则非零元素的符号矢量为[-1 1]。
406、对幅度矢量以及长度矢量按照预置的排序规则进行排序;
407、根据位置索引值,排序后的幅度矢量,以及排序后的长度矢量,解码得到无符号矢量;
需要说明的是,本实施例中的步骤406至步骤407与本发明实施例中解码方法第一实施例中的步骤204至步骤205类似,此处不再赘述。408、根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量。
本实施例中,根据无符号的矢量和非零元素的符号矢量生成最终的矢量。例如,无符号的矢量为[0 0 0 2 0 2 0 0],非零元素的符号矢量为[-1 1],则最终的矢量为[0 0 0 -2 0 2 0 0]。
需要说明的是,在实际应用中,上述编码方法以及解码方法可以结合使用,也可以独立使用。
上述实施例中介绍了应用于Gosset格以及应用于RE8格的格型矢量量化器的码书索引编解码过程,可以理解的是,在实际应用中,本发明实施例中所描述的编解码过程还可以应用于其他类似的格型矢量量化器中,具体类型此处不做限定。
在上面描述的编码方法中,由于可以获取根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,并根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序进行置换编码,幅度矢量和长度矢量的获取是随编码过程时实进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度;
其次,本发明实施例中,在对幅度矢量以及长度矢量进行排序后得到的是顺序有规律的矢量,因此能够按照最优元素移除顺序对待编码的矢量各元素出现的位置顺序进行置换编码,从而能够降低编码过程的计算复杂度,提高编码性能;
再次,编码过程中对幅度矢量以及长度矢量的排序可以采用多种方式,因此能够提高编码方法的灵活性。
下面介绍本发明实施例中的编解码系统,请参阅图5,本发明实施例中的编解码系统包括:
编码装置501以及解码装置502;
编码装置501用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,获取待编码的矢量对应的幅度矢量和长度矢量,对幅度矢量以及长度矢量按照预置的排序规则进行排序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值,向解码装置502发送该格型码书索引值;
解码装置502用于接收编码装置501发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从格型码书索引值中减去该码书索引值偏移量得到新索引值,对幅度矢量以及长度矢量按照预置的排序规则进行排序,根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
上述的编解码系统可以应用于Gosset格的格型矢量量化器的编解码过程,同样可以应用于RE8格的格型矢量量化器的编解码过程,或者还可以应用于其他类型的格型矢量量化器的编解码过程,下面介绍另外一种可替代的编解码方案,具体地,该种编解码系统包括:
编码装置501用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,对矢量中的符号矢量进行单独编码得到符号索引值,获取无符号待编码的矢量对应的幅度矢量和长度矢量,对幅度矢量以及长度矢量按照预置的排序规则进行排序,对无符号待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据码书索引值偏移量,符号索引值,位置索引值计算矢量的格型码书索引值,向解码装置502发送该格型码书索引值;
解码装置502用于接收编码装置501发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从格型码书索引值中减去该码书索引值偏移量得到新索引值,从新索引值中分离出符号索引值和位置索引值,根据符号索引值解码出非零元素符号矢量,对幅度矢量以及长度矢量按照预置的排序规则进行排序,根据获取到的位置索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到无符号矢量,根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量。
上述编解码系统中,由于编码装置501可以获取根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,并根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序进行置换编码,幅度矢量和长度矢量的获取是随编码过程时实进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度。
请参阅图6,本发明实施例中的编码装置实施例包括:
查询单元601,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
获取单元602,用于获取待编码的矢量对应的幅度矢量和长度矢量;
排序单元603,用于对获取单元602获取到的幅度矢量以及长度矢量按照预置的排序规则进行排序;
置换编码单元604,用于根据排序单元603排序后的长度矢量和幅度矢量,按照最优的元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值;
执行单元605,根据查询单元601查询到的码书索引值偏移量和置换编码单元604获取到的位置索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送该格型码书索引值,具体的计算过程与前述编码方法实施例中的计算过程一致,此处不再赘述。
可以理解的是,上述的编码装置可以应用于Gosset格的格型矢量量化器的编解码过程,同样可以应用于RE8格的格型矢量量化器的编解码过程,或者还可以应用于其他类型的格型矢量量化器的编解码过程,下面介绍另外一种可替代的编解码方案,则本实施例中的编码装置还可以进一步包括:
分离单元606以及符号编码单元607,则在该实施例中:
查询单元601,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
分离单元606,用于从待编码的矢量中分离出符号矢量;
符号编码单元607,用于对分离出的符号矢量进行单独编码得到符号索引值;
获取单元602,用于获取无符号待编码的矢量对应的幅度矢量和长度矢量;
排序单元603,用于对获取单元602获取到的幅度矢量以及长度矢量按照预置的排序规则进行排序;
置换编码单元604,用于根据排序单元603排序后的长度矢量和幅度矢量,按照最优的元素移除顺序,对无符号待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值;
执行单元605,根据查询单元601查询到的码书索引值偏移量,置换编码单元604获取到的位置索引值以及符号编码单元607获取到的符号索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送该格型码书索引值,具体的计算过程与前述编码方法实施例中的计算过程一致,此处不再赘述。
本实施例中的编码装置中,由于获取单元602可以获取根据待编码的矢量获取得到该矢量对应的幅度矢量和长度矢量,排序单元603对幅度矢量和长度矢量进行排序,并由置换编码单元604根据排序单元603的排序结果,按照最优的元素移除顺序进行置换编码得到位置索引值,因此执行单元605可以根据查询单元601查询到的码书索引值偏移量和置换编码单元604获取到的位置索引值,计算最终的待编码的矢量对应的格型码书索引值,幅度矢量和长度矢量的获取是随编码过程时实进行的,所以也就无需存储每个Leader对应的表征各层移除元素数值大小的矢量和表征分层组合编码参数的矢量,因此能够有效地减少存储复杂度。
下面介绍本发明实施例中的解码装置实施例,请参阅图7,本发明实施例中的解码装置实施例包括:
接收单元701,用于接收编码装置发送的格型码书索引值;
查找单元702,用于在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,并根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
生成单元703,用于从格型码书索引值中减去该码书索引值偏移量得到新索引值;
排序单元704,用于对查找单元702获取到的幅度矢量以及长度矢量按照预置的排序规则进行排序;
解码单元705,用于根据生成单元703获取到的新索引值,以及排序单元704排序后的幅度矢量,长度矢量解码得到矢量,具体的计算过程与前述解码方法实施例中所采用的计算过程一致,此处不再赘述。
可以理解的是,上述的解码装置可以应用于Gosset格的格型矢量量化器的编解码过程,同样可以应用于RE8格的格型矢量量化器的编解码过程,或者还可以应用于其他类型的格型矢量量化器的编解码过程,下面介绍另外一种可替代的编解码方案,则本实施例中的解码装置还可以进一步包括:
索引值分离单元706,该方式中,解码装置具体包括:
接收单元701,用于接收编码装置发送的格型码书索引值;
查找单元702,用于在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,并根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
生成单元703,用于从格型码书索引值中减去该码书索引值偏移量得到新索引值;
索引值分离单元706,用于从生成单元703生成的新索引值中分离出符号索引值和位置索引值;
排序单元704,用于对查找单元702获取到的幅度矢量以及长度矢量按照预置的排序规则进行排序;
解码单元705,用于根据索引值分离单元706分离出的位置索引值对排序单元704的排序结果进行解码得到无符号矢量,根据索引值分离单元706分离出的符号索引值进行解码得到非零元素的符号矢量,之后再根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量,具体的计算过程与前述解码方法中的计算过程一致,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
获取待编码的矢量对应的幅度矢量和长度矢量;
对所述幅度矢量以及长度矢量按照预置的排序规则进行排序;
根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种编码、解码、编解码方法、编解码系统以及相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (20)

1.一种音频编码方法,其特征在于,包括:
获取待编码的矢量对应的幅度矢量和长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数;
对所述幅度矢量以及长度矢量进行排序;
根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值。
2.根据权利要求1所述的方法,其特征在于,
所述对幅度矢量以及长度矢量进行排序,具体为:对所述幅度矢量以及长度矢量按照预置的排序规则进行排序;
所述预置的排序规则为按照元素从大到小的顺序进行排列,或者是按照元素从小到大的顺序进行排列。
3.根据权利要求1所述的方法,其特征在于,所述根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值具体为:
根据排序后的幅度矢量以及排序后的长度矢量,按照最优元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值。
4.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
根据所述码书索引值偏移量以及所述位置索引值获取待编码的矢量对应的格型码书索引值。
5.根据权利要求1所述的方法,其特征在于,所述获取待编码的矢量对应的幅度矢量和长度矢量包括:
查询所述待编码的矢量所属的Leader矢量;
根据所述Leader矢量获取对应的幅度矢量以及长度矢量,所述幅度矢量指示所述Leader矢量中包含的具有不同数值大小的元素,所述长度矢量指示所述幅度矢量中每一个元素在所述Leader矢量中出现的次数。
6.根据权利要求2所述的方法,其特征在于,所述对幅度矢量以及长度矢量按照预置的排序规则进行排序包括:
对幅度矢量的元素进行重新排列,并按照重新排列后的幅度矢量的元素顺序调整长度矢量中各元素的顺序;
对调整过元素顺序的长度矢量的元素进行重新排列,并按照重新排列后的长度矢量的元素顺序调整幅度矢量中各元素的顺序。
7.根据权利要求2所述的方法,其特征在于,所述对幅度矢量以及长度矢量按照预置的排序规则进行排序包括:
对长度矢量中的元素进行重新排列,并按照重新排列后的长度矢量的元素顺序调整幅度矢量中元素的顺序;
若重新排列后的长度矢量中存在相等的元素,则按照预置规则对所述相等元素在幅度矢量中对应的元素顺序进行调整。
8.根据权利要求3所述的方法,其特征在于,所述根据排序后的幅度矢量以及排序后的长度矢量,按照最优元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值包括:
对待编码的矢量进行分层,分层的数目等于所述幅度矢量的维数;
将待编码的矢量作为最高层矢量;
从最高层矢量开始,移除所述排序后的长度矢量元素值由大到小对应的排序后的幅度矢量中对应的元素得到新的矢量,将该新的矢量作为次高层矢量;
依次执行,直至处理完所有分层;
根据分层处理的结果以及每个分层新矢量的维数计算位置索引值。
9.根据权利要求4所述的方法,其特征在于,所述根据码书索引值偏移量以及所述位置索引值获取待编码的矢量对应的格型码书索引值包括:
将所述码书索引值偏移量与所述位置索引值的和作为格型码书索引值。
10.根据权利要求1所述的方法,其特征在于,所述获取待编码的矢量对应的幅度矢量和长度矢量之前包括:
对待编码的矢量对应的符号矢量进行单独编码得到符号索引值;
所述获取待编码的矢量对应的幅度矢量和长度矢量具体为:
获取无符号待编码的矢量对应的幅度矢量和长度矢量;
所述根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值具体为:
根据排序后的幅度矢量以及排序后的长度矢量,对无符号待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;
所述根据排序后的幅度矢量以及排序后的长度矢量,得到位置索引值之后还包括:
根据码书索引值偏移量,所述符号索引值以及所述位置索引值计算矢量的格型码书索引值。
11.一种音频解码方法,其特征在于,包括:
接收编码端发送的格型码书索引值;
在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;
根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数;
从格型码书索引值中减去该码书索引值偏移量得到新索引值;
对幅度矢量以及长度矢量按照预置的排序规则进行排序;
根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
12.根据权利要求11所述的方法,其特征在于,所述从格型码书索引值中减去所述码书索引值偏移量得到新索引值之后包括:
从所述新索引值中分离出符号索引值和位置索引值;
根据所述符号索引值解码出非零元素符号矢量;
所述根据新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量具体为:
根据所述位置索引值,排序后的幅度矢量以及排序后的长度矢量解码得到无符号矢量;
根据所述非零元素符号矢量以及所述无符号矢量计算得到矢量。
13.根据权利要求11至12中任一项所述的方法,其特征在于,所述对幅度矢量以及长度矢量按照预置的排序规则进行排序,具体为:
对所述幅度矢量以及长度矢量按照元素从大到小的顺序进行排列,或者是按照元素从小到大的顺序进行排列。
14.一种音频编解码方法,其特征在于,包括:
编码装置在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
编码装置获取待编码的矢量对应的幅度矢量和长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数;
编码装置对幅度矢量以及长度矢量进行排序;
编码装置根据排序后的幅度矢量以及长度矢量,按照最优元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值;
编码装置根据所述码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送所述格型码书索引值;
解码装置在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量;
解码装置根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量;
解码装置从所述格型码书索引值中减去该码书索引值偏移量得到新索引值;
解码装置对幅度矢量以及长度矢量进行排序;
解码装置根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
15.一种音频编解码系统,其特征在于,包括:
编码装置,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,获取待编码的矢量对应的幅度矢量和长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数,对幅度矢量以及长度矢量进行排序,对待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据所述码书索引值偏移量和位置索引值,计算最终的待编码的矢量对应的格型码书索引值,向解码装置发送该格型码书索引值;
解码装置,用于接收编码装置发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从所述格型码书索引值中减去该码书索引值偏移量得到新索引值,对幅度矢量以及长度矢量进行排序,根据获取到的新索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到矢量。
16.一种音频编解码系统,其特征在于,包括:
编码装置,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量,对矢量中的符号矢量进行单独编码得到符号索引值,获取无符号待编码的矢量对应的幅度矢量和长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数,对幅度矢量以及长度矢量进行排序,对无符号待编码的矢量各元素出现的位置顺序进行置换编码得到位置索引值,根据码书索引值偏移量,符号索引值,位置索引值计算矢量的格型码书索引值,向解码装置发送该格型码书索引值;
解码装置,用于接收编码装置发送的格型码书索引值,在预置的码书索引值偏移量表中查询小于格型码书索引值且数值最大的码书索引值偏移量,根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,从格型码书索引值中减去该码书索引值偏移量得到新索引值,从新索引值中分离出符号索引值和位置索引值,根据符号索引值解码出非零元素符号矢量,对幅度矢量以及长度矢量进行排序,根据获取到的位置索引值,排序后的幅度矢量,以及排序后的长度矢量解码得到无符号矢量,根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量。
17.一种音频编码装置,其特征在于,包括:
查询单元,用于在预置的码书索引值偏移量表中查询待编码的矢量对应的码书索引值偏移量;
获取单元,用于获取待编码的矢量对应的幅度矢量和长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数;
排序单元,用于对获取单元获取到的幅度矢量以及长度矢量进行排序;
置换编码单元,用于根据排序单元排序后的长度矢量和幅度矢量,按照最优的元素移除顺序,对待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值;
执行单元,根据查询单元查询到的码书索引值偏移量和置换编码单元获取到的位置索引值,计算最终的待编码的矢量对应的格型码书索引值,并向解码装置发送该格型码书索引值。
18.根据权利要求17所述的编码装置,其特征在于,所述编码装置还包括:
分离单元,用于从待编码的矢量中分离出符号矢量;
符号编码单元,用于对分离出的符号矢量进行单独编码得到符号索引值;
所述获取单元,用于获取无符号待编码的矢量对应的幅度矢量和长度矢量;
所述置换编码单元,用于对无符号待编码的矢量各元素出现的位置顺序进行置换编码,得到位置索引值;
所述执行单元,用于根据所述码书索引值偏移量,位置索引值以及符号索引值计算最终的待编码的矢量对应的格型码书索引值。
19.一种音频解码装置,其特征在于,包括:
接收单元,用于接收编码装置发送的格型码书索引值;
查找单元,用于在预置的码书索引值偏移量表中查询小于接收到的格型码书索引值且数值最大的码书索引值偏移量,并根据查询到的码书索引值偏移量获取矢量中包含的元素值,幅度矢量以及长度矢量,其中,一个矢量对应的幅度矢量表示该矢量中包含的具有不同数值大小的元素,一个矢量对应的长度矢量表示幅度矢量中每一个元素在该矢量中出现的次数;
生成单元,用于从格型码书索引值中减去该码书索引值偏移量得到新索引值;
排序单元,用于对查找单元获取到的幅度矢量以及长度矢量进行排序;
解码单元,用于根据生成单元获取到的新索引值,以及排序单元排序后的幅度矢量,长度矢量解码得到矢量。
20.根据权利要求19所述的解码装置,其特征在于,所述解码装置还包括:
索引值分离单元,用于从生成单元生成的新索引值中分离出符号索引值和位置索引值;
所述解码单元,用于根据所述位置索引值以及排序单元的排序结果进行解码得到无符号矢量,根据符号索引值进行解码得到非零元素符号矢量,再根据获取到的非零元素符号矢量以及无符号矢量计算得到矢量。
CN200810175265XA 2008-11-10 2008-11-10 一种编码、解码、编解码方法、编解码系统以及相关装置 Active CN101430881B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN200810175265XA CN101430881B (zh) 2008-11-10 2008-11-10 一种编码、解码、编解码方法、编解码系统以及相关装置
EP09824388.4A EP2295947B1 (en) 2008-11-10 2009-10-26 Coding method, decoding method,and coding apparatus
PCT/CN2009/074604 WO2010051733A1 (zh) 2008-11-10 2009-10-26 一种编码、解码、编解码方法、编解码系统以及相关装置
US12/982,050 US8731947B2 (en) 2008-11-10 2010-12-30 Coding method, decoding method, codec method, codec system and relevant apparatuses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810175265XA CN101430881B (zh) 2008-11-10 2008-11-10 一种编码、解码、编解码方法、编解码系统以及相关装置

Publications (2)

Publication Number Publication Date
CN101430881A CN101430881A (zh) 2009-05-13
CN101430881B true CN101430881B (zh) 2013-04-17

Family

ID=40646235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810175265XA Active CN101430881B (zh) 2008-11-10 2008-11-10 一种编码、解码、编解码方法、编解码系统以及相关装置

Country Status (4)

Country Link
US (1) US8731947B2 (zh)
EP (1) EP2295947B1 (zh)
CN (1) CN101430881B (zh)
WO (1) WO2010051733A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2931964A1 (fr) * 2008-06-02 2009-12-04 Centre Nat Rech Scient Procede de denombrement des vecteurs dans les reseaux reguliers de points.
CN101430881B (zh) 2008-11-10 2013-04-17 华为技术有限公司 一种编码、解码、编解码方法、编解码系统以及相关装置
CN101577551A (zh) * 2009-05-27 2009-11-11 华为技术有限公司 一种生成格型矢量量化码书的方法及装置
US8700410B2 (en) * 2009-06-18 2014-04-15 Texas Instruments Incorporated Method and system for lossless value-location encoding
CN102158692B (zh) 2010-02-11 2013-02-13 华为技术有限公司 编码方法、解码方法、编码器和解码器
CN102025998B (zh) * 2010-12-28 2013-05-08 重庆邮电大学 一种数字图像信号矢量量化码书设计方法
EP2668651A4 (en) * 2011-01-28 2014-07-30 Nokia Corp CODING BY COMBINING CODE VECTORS
US9513906B2 (en) 2013-01-23 2016-12-06 International Business Machines Corporation Vector checksum instruction
US9471308B2 (en) 2013-01-23 2016-10-18 International Business Machines Corporation Vector floating point test data class immediate instruction
US9804840B2 (en) 2013-01-23 2017-10-31 International Business Machines Corporation Vector Galois Field Multiply Sum and Accumulate instruction
US9778932B2 (en) 2013-01-23 2017-10-03 International Business Machines Corporation Vector generate mask instruction
US9715385B2 (en) * 2013-01-23 2017-07-25 International Business Machines Corporation Vector exception code
US9823924B2 (en) 2013-01-23 2017-11-21 International Business Machines Corporation Vector element rotate and insert under mask instruction
CN106030703B (zh) * 2013-12-17 2020-02-04 诺基亚技术有限公司 音频信号编码器
CN112435674A (zh) * 2020-12-09 2021-03-02 北京百瑞互联技术有限公司 优化频谱数据的lc3算术编码搜索表的方法、装置、介质
CN113473154B (zh) * 2021-06-30 2022-11-22 杭州海康威视数字技术股份有限公司 视频编码、视频解码方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263119A (en) * 1989-06-29 1993-11-16 Fujitsu Limited Gain-shape vector quantization method and apparatus
EP0831457A2 (en) * 1996-09-24 1998-03-25 Sony Corporation Vector quantization method and speech encoding method and apparatus
EP1160690A1 (en) * 2000-05-31 2001-12-05 Samsung Electronics Co. Ltd. Method of indexing and similarity search in a feature vector space
CN1540627A (zh) * 2003-10-30 2004-10-27 北京首信股份有限公司 用于语音编码的线谱对加权量化矢量快速搜索算法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728413B2 (en) 1998-01-19 2004-04-27 Canon Kabushiki Kaisha Lattice vector quantization in image compression and decompression
US7389227B2 (en) * 2000-01-14 2008-06-17 C & S Technology Co., Ltd. High-speed search method for LSP quantizer using split VQ and fixed codebook of G.729 speech encoder
JP3793111B2 (ja) * 2002-05-23 2006-07-05 松下電器産業株式会社 分割型スケーリング因子を用いたスペクトル包絡パラメータのベクトル量子化器
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
JP2004120623A (ja) * 2002-09-27 2004-04-15 Ntt Docomo Inc 符号化装置、符号化方法、復号装置及び復号方法
FR2897742A1 (fr) * 2006-02-17 2007-08-24 France Telecom Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
CN101110214B (zh) * 2007-08-10 2011-08-17 北京理工大学 一种基于多描述格型矢量量化技术的语音编码方法
CN101430881B (zh) * 2008-11-10 2013-04-17 华为技术有限公司 一种编码、解码、编解码方法、编解码系统以及相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263119A (en) * 1989-06-29 1993-11-16 Fujitsu Limited Gain-shape vector quantization method and apparatus
EP0831457A2 (en) * 1996-09-24 1998-03-25 Sony Corporation Vector quantization method and speech encoding method and apparatus
EP1160690A1 (en) * 2000-05-31 2001-12-05 Samsung Electronics Co. Ltd. Method of indexing and similarity search in a feature vector space
CN1540627A (zh) * 2003-10-30 2004-10-27 北京首信股份有限公司 用于语音编码的线谱对加权量化矢量快速搜索算法

Also Published As

Publication number Publication date
CN101430881A (zh) 2009-05-13
EP2295947A1 (en) 2011-03-16
EP2295947A4 (en) 2011-07-06
WO2010051733A1 (zh) 2010-05-14
US8731947B2 (en) 2014-05-20
US20110093275A1 (en) 2011-04-21
EP2295947B1 (en) 2013-04-10

Similar Documents

Publication Publication Date Title
CN101430881B (zh) 一种编码、解码、编解码方法、编解码系统以及相关装置
KR101190875B1 (ko) 차원 벡터 및 가변 분해능 양자화
RU2522020C1 (ru) Способ и система иерархического кодирования и декодирования звуковой частоты, способ иерархического кодирования и декодирования частоты для переходного сигнала
CN102089810B (zh) 多基准线性预测系数滤波器量化和逆量化设备及方法
JP4224021B2 (ja) 信号のマルチレートによる格子ベクトル量子化の方法とシステム
EP2272063B1 (en) Method and apparatus for selective signal coding based on core encoder performance
CN101292427B (zh) 用于矢量量化、编码、解码的方法及装置
KR101180202B1 (ko) 다중채널 오디오 코딩 시스템 내에 인핸스먼트 레이어를 생성하기 위한 방법 및 장치
CN103280221B (zh) 一种基于基追踪的音频无损压缩编码、解码方法及系统
CN101548316A (zh) 编码装置、解码装置以及其方法
CN101849258A (zh) 在可缩放语音和音频编解码器中的用于经量化的mdct频谱的码簿索引的编码/解码的技术
JP5006404B2 (ja) ベクトル量子化装置
US7746932B2 (en) Vector coding/decoding apparatus and stream media player
CN101266795B (zh) 一种格矢量量化编解码的实现方法及装置
CN101266796A (zh) 一种量化编解码方法及装置
US20120123788A1 (en) Coding method, decoding method, and device and program using the methods
CN114429200A (zh) 规范化哈夫曼编解码方法及神经网络计算芯片
CN101771416B (zh) 位平面编码和解码方法、通信系统及相关设备
CN102801427B (zh) 源信号变速率格矢量量化的编解码方法和系统
WO2014070700A1 (en) Method and apparatus for generating a candidate code-vector to code an informational signal
Yang Constrained-storage multistage vector quantization based on genetic algorithms
CN103035249B (zh) 一种基于时频平面上下文的音频算术编码方法
Jiang et al. A finite-state entropy-constrained vector quantizer for audio MDCT coefficients coding
CN110771045A (zh) 编码装置、解码装置、编码方法、解码方法、以及程序
Shoham Variable-size vector entropy coding of speech and audio

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