CN100583649C - 矢量编/解码方法、装置及流媒体播放器 - Google Patents
矢量编/解码方法、装置及流媒体播放器 Download PDFInfo
- Publication number
- CN100583649C CN100583649C CN200710129604A CN200710129604A CN100583649C CN 100583649 C CN100583649 C CN 100583649C CN 200710129604 A CN200710129604 A CN 200710129604A CN 200710129604 A CN200710129604 A CN 200710129604A CN 100583649 C CN100583649 C CN 100583649C
- Authority
- CN
- China
- Prior art keywords
- vector
- coding
- absolute value
- value vector
- obtains
- 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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/02—Speech 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/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech 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
-
- 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
Abstract
本发明涉及编解码技术,公开了矢量编/解码方法、装置及流媒体播放器,其中矢量编码方法包括:分解初始矢量获得符号及初始绝对值矢量;对所述符号进行编码获得符号编码;对所述初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;组合所述符号编码及所述绝对值矢量编码,获得所述初始矢量的编码;矢量解码方法包括:分解初始矢量的编码,获得符号编码和绝对值矢量编码;对所述符号编码进行解码,获得符号;对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;组合所述符号及初始绝对值矢量,获得初始矢量;使用上述技术方案,可以降低计算复杂度。
Description
技术领域
本发明涉及编解码技术,具体涉及矢量编/解码方法、装置及流媒体播放器。
背景技术
在流媒体编码中常采用矢量量化的技术,一种比较常用的量化技术是格型矢量量化技术,在低码率的情况下用得相当普及;以音频编码为例,一种应用广泛的扩展宽带自适应多码率(AMR-WB+:Extend Adaptive Multi-RateWideband codec)音频编码算法,其变换激励编码(TCX:Transform code excite)部分所运用的量化技术就是建立在RE8的多码率格型矢量量化技术。
在AMR-WB+音频编码算法的TCX部分,采取的量化方法是多码率矢量量化方法,它作用于预整形后的频谱数据,以八个数为一组,根据就近原则将这八个数量化为RE8集合上的点;在算法中,量化选取的是RE8的点集,RE8=2D8∪{2D8+(1,…,1)},其中D8={(x1,x2,…,x8)∈Z8|x1+…+x8 is even},故RE8集合中所有数据之和是4的倍数;于是,整个量化方法就演变成先在2D8集合中找到离原始数据最近的点,再在2D8+(1,1,1,…,1)集合中寻找距离最近的点,最后在前后找出的两个点中间比较得出最终结果:初始矢量,用ck表示,是一组整型数据(x0,x1,...,xn-1);因输入数据为八个数一组,则得到的ck实际上为(x0,x1,...,x7);
然后在基础码本Q0,Q2,Q3,Q4中查找ck,若在基础码本中找不到ck,则使用Voronoi扩展将其扩展到基础码本中,从而确定相应的基础码本索引和扩展码本数值;其中,Q0,Q2,Q3,Q4中基础码本的情况如表1所示:
表1、基础码本所属码本情况
Sphere | Ka | Leader | 组合 | 符号 | Size | Q<sub>0</sub> | Q<sub>2</sub> | Q<sub>3</sub> | Q<sub>4</sub> |
0 | {0,0,0,0,0,0,0,0} | 1 | X |
2 | 0 | {1,1,1,1,1,1,1,1} | 1 | 128 | 128 | X | X | ||
8 | 1 | {2,2,0,0,0,0,0,0} | 28 | 4 | 112 | X | X | ||
16 | 2 | {2,2,2,2,0,0,0,0} | 70 | 16 | 1120 | X | |||
22 | 3 | {3,1,1,1,1,1,1,1} | 8 | 128 | 1024 | X | |||
64 | 4 | {4,0,0,0,0,0,0,0} | 8 | 2 | 16 | X | X | ||
24 | 5 | {2,2,2,2,2,2,0,0} | 28 | 64 | 1792 | X | |||
42 | 6 | {3,3,1,1,1,1,1,1} | 28 | 128 | 3584 | X | |||
72 | 7 | {4,2,2,0,0,0,0,0} | 168 | 8 | 1344 | X | |||
32 | 8 | {2,2,2,2,2,2,2,2} | 1 | 256 | 256 | X | |||
62 | 9 | {3,3,3,1,1,1,1,1} | 56 | 128 | 7168 | X | |||
80 | 10 | {4,2,2,2,2,0,0,0} | 280 | 32 | 8960 | X | |||
128 | 11 | {4,4,0,0,0,0,0,0} | 28 | 4 | 112 | X | |||
158 | 12 | {5,1,1,1,1,1,1,1} | 8 | 128 | 1024 | X | |||
82 | 13 | {3,3,3,3,1,1,1,1} | 70 | 128 | 8960 | X | |||
88 | 14 | {4,2,2,2,2,2,2,0} | 56 | 128 | 7168 | X | |||
136 | 15 | {4,4,2,2,0,0,0,0} | 420 | 16 | 6720 | X | |||
178 | 16 | {5,3,1,1,1,1,1,1} | 56 | 128 | 7168 | X | |||
328 | 17 | {6,2,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
192 | 18 | {4,4,4,0,0,0,0,0} | 56 | 8 | 448 | X | |||
336 | 29 | {6,2,2,2,0,0,0,0} | 280 | 16 | 4480 | X | |||
392 | 20 | {6,4,2,0,0,0,0,0} | 336 | 8 | 2688 | X | |||
1202 | 21 | {7,7,1,1,1,1,1,1} | 8 | 128 | 1024 | X | |||
1024 | 22 | {8,0,0,0,0,0,0,0} | 8 | 2 | 16 | X | |||
648 | 23 | {6,6,0,0,0,0,0,0} | 28 | 4 | 112 | X | |||
1032 | 24 | {8,2,2,0,0,0,0,0} | 168 | 8 | 1344 | X | |||
1088 | 25 | {8,4,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
1642 | 26 | {9,1,1,1,1,1,1,1} | 8 | 128 | 1024 | X | |||
2504 | 27 | {10,2,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
2048 | 28 | {8,8,0,0,0,0,0,0} | 28 | 4 | 112 | X | |||
2824 | 39 | {10,6,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
5184 | 30 | {12,0,0,0,0,0,0,0} | 8 | 2 | 16 | X | |||
5248 | 31 | {12,4,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
5000 | 32 | {10,10,0,0,0,0,0,0} | 28 | 4 | 112 | X | |||
9608 | 33 | {14,2,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
6208 | 34 | {12,8,0,0,0,0,0,0} | 56 | 4 | 224 | X | |||
16384 | 35 | {16,0,0,0,0,0,0,0} | 8 | 2 | 16 | X |
表1描述的特征码本(即leader)分布在各个球面上,sphere代表球面的大小,size表示这个leader经过排列组合所能形成的码字的个数,ka标识了不同的leader,每一个leader都有一个不同的ka值;Sphere(S)的值为leader的每一个分量的四次方之和的四分之一,即 每一个leader对应的S的值都不一样,在编码中,S的每一个值对应一个ka的值;对于一个八维矢量,只要计算它的S值,就可以查到一个对应的ka,由ka值就可以确定它属于哪个leader;表1还描述了leader所属基础码本的情况,基础码本分为Q0,Q2,Q3,Q4,由表1可见,Q0只包含一个leader,Q2,Q3,Q4分别包含3、8、28个leader,其中
在确定了ck所属的基础码本后,假设ck是来自元素集合(a0,a1,...,aq-1)的样本,w(i)是样本中元素ai的个数,则Leader L可能的状态数有k(l)个:
若d(k)=i,xk=ai,wi k是(x0,x1,...,xn-1)中元素为ai个数,那么(x0,x1,...,xn-1)的索引编码为:
在解码时使用如下公式依次确定矢量d(k),k=0,...7:
再根据d(k)=i,xk=ai,由d(k)恢复出(x0,x1,...,xn-1)。
在实现上述方案的过程中发现至少存在如下不足:编解码过程中要多次计算非规则的阶乘,而且这些随机性比较大的阶乘也很难用查表处理来简化计算,因而具有较高的计算复杂度。
发明内容
本发明实施例提供的矢量编/解码方法、装置及流媒体播放器,可以降低计算复杂度。
一种矢量编码方法,包括步骤:
分解初始矢量获得符号及初始绝对值矢量;
对所述符号进行编码获得符号编码;
对所述初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;
组合所述符号编码及所述绝对值矢量编码,获得所述初始矢量的编码;其中,采用如下方式对所述初始绝对值矢量进行分层组合编码:
去除所述初始绝对值矢量中元素值符合预置条件的元素;
顺序保留不符合所述预置条件的元素,组成新的绝对值矢量;
对所述不符合预置条件的元素在所述初始绝对值矢量中的位置进行编码获得位置编码;
若所述新的绝对值矢量中元素值的数量大于1,继续对所述新的绝对值矢量进行分层组合编码;
若所述新的绝对值矢量中元素值的数量为1,组合分层组合编码过程中得到的各个位置编码得到所述绝对值矢量编码。
一种矢量解码方法,包括步骤:
分解初始矢量的编码,获得符号编码和绝对值矢量编码;
对所述符号编码进行解码,获得符号;
对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合所述符号及初始绝对值矢量,获得初始矢量;其中,对所述绝对值矢量编码进行分层组合解码具体为:
分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码;
对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
将所述绝对值矢量中的元素按所述位置数据置于所述上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得所述上层绝对值矢量;
若所述上层绝对值矢量不是所述初始绝对值矢量,继续对所述上层绝对值矢量进行分层组合解码。
一种矢量编码装置,包括:
分解单元,用于分解初始矢量,获得符号和初始绝对值矢量;
符号编码单元,用于对所述符号编码,获得符号编码;
分层组合编码单元,用于对所述初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;
组合单元,用于组合所述符号编码及绝对值矢量编码,获得初始矢量的编码;其中,所述分层组合编码单元包括:
元素去除单元,用于去除所述初始绝对值矢量中元素值符合预置条件的元素;
元素保留单元,用于顺序保留不符合所述预置条件的元素,组成新的绝对值矢量;
位置编码单元,用于对所述不符合预置条件的元素在所述初始绝对值矢量中的位置进行编码获得位置编码;还用于在所述新的绝对值矢量中元素值的数量大于1时,触发所述元素去除单元去除所述新的绝对值矢量中元素值符合预置条件的元素;
绝对值矢量编码单元,用于在所述新的绝对值矢量中元素值的数量为1时,组合分层组合编码过程中得到的各个位置编码得到所述绝对值矢量编码。
一种矢量解码装置,包括:
分解单元,用于分解初始矢量的编码,获得符号编码及绝对值矢量编码;
符号解码单元,用于对所述符号编码解码,获得符号;
分层组合解码单元,用于对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合单元,用于组合所述符号及初始绝对值矢量,获得所述初始矢量;其中,所述分层组合解码单元包括:
绝对值矢量编码分解单元,用于分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码和上层绝对值矢量编码;
位置数据获得单元,用于对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
数据查找单元,用于从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
绝对值矢量获得单元,用于将所述绝对值矢量中的元素按所述位置数据置于所述上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得所述上层绝对值矢量;在所述上层绝对值矢量不是所述初始绝对值矢量时,触发所述位置数据获得单元对所述上层绝对值矢量对应的位置编码进行解码。
一种流媒体播放器,包括矢量解码装置,所述矢量解码装置包括:
分解单元,用于分解矢量编码,获得符号编码及绝对值矢量编码;
符号解码单元,用于对所述符号编码解码,获得符号;
分层组合解码单元,用于对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合单元,用于组合所述符号及初始绝对值矢量,获得所述初始矢量;其中,所述分层组合解码单元包括:
绝对值矢量编码分解单元,用于分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码和上层绝对值矢量编码;
位置数据获得单元,用于对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
数据查找单元,用于从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
绝对值矢量获得单元,用于将所述绝对值矢量中的元素按所述位置数据置于所述上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得所述上层绝对值矢量;在所述上层绝对值矢量不是所述初始绝对值矢量时,触发所述位置数据获得单元对所述上层绝对值矢量对应的位置编码进行解码。
从以上技术方案可以看出,由于使用分层组合编码的方式对绝对值矢量进行编码,不需要使用复杂的公式进行计算,降低了计算复杂度。
附图说明
图1为本发明实施例中矢量编码方法实施例一的流程图;
图2为本发明实施例中矢量编码方法实施例二的流程图;
图3a为本发明实施例中位置编码表index83的实施例的示意图;
图3b为本发明实施例中位置编码表index32的实施例的示意图;
图4为本发明实施例中矢量编码方法实施例三的流程图;
图5为本发明实施例中矢量解码方法实施例一的流程图;
图6为本发明实施例中矢量解码方法实施例二的流程图;
图7为本发明实施例中矢量编码装置实施例的结构图;
图8为本发明实施例中矢量解码装置实施例的结构图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
如图1所示,本发明提供的矢量编码方法实施例一包括如下步骤(其中本说明书所描述的流媒体是指视频、音频等应用流技术的多媒体,为了描述方便,本说明书统一采用音频作为描述对象,其他如视频等流媒体的处理方式类似):
步骤101、分解初始矢量获得符号及初始绝对值矢量;
初始矢量中的元素符号有正有负,正负的可能组合数量较多,因而分解初始矢量的符号,可以减少元素的组合数量,进而降低后续的计算量;
步骤102、对符号进行编码获得符号编码;
具体的可以直接提取各个元素的符号;也可以先去除零元素的符号,从而只提取非零元素的符号;其中只提取非零元素的符号可以减少符号整数值需要占用的数据位;
可以使用本发明实施方式提供的如下一种技术方案获得符号整数值:去除符号中元素值为零的元素的符号,非零元素的符号按非零元素在初始矢量中的顺序排列,以1代表正、0代表负或0代表正、1代表负获得符号编码,由此得到初始矢量的符号对应的符号编码,得到的符号编码的位数是初始矢量中的非零元素个数;其中,用1、0是采用二进制时的情况,当采用其他如八进制、十进制等方式处理时,相应的取值可能有所不同;本说明书描述的顺序排列是从左到右,但是在实际应用中也可以是从右到左、或从中间到两边,具体的处理过程与从左到右的处理过程类似,本说明书不对其进行赘述;
进一步,在实际应用中,对符号编码还要进行一个后处理,原因是量化过程中对基础码本的设计有一个限制,即矢量所有元素的元素值之和是4的倍数;如果单独改变任何一个元素的符号,可以使所有元素的元素值之和的变化是4的倍数,则各个元素的符号是独立的,否则就是不独立的,不独立意味着矢量符号间有关联性、存在冗余,消除符号间的冗余才能达到有效编码的目的,由于不独立的初始矢量的任何一位符号可以由其它符号位来决定,因而一种简单的消除冗余的方法是不对符号不独立矢量的最后一个非零元素符号进行编码,即去除已经获得的符号编码的最后一位;这是因为要满足矢量所有元素的元素值之和是4的倍数,在知道其余的矢量元素符号后,可以直接得出剩余的一个元素的符号;
步骤103、对初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;
分层组合编码是逐层去除矢量中符合预置条件的元素值,例如可以去除出现次数最多的元素值对应的元素,当有两个或以上的元素值对应的元素数量都是最多时,可以按照元素值的大小顺序去除相应的元素,当然也可以采用其他方式选取去除相应的元素,具体采用哪种方式可以根据具体的使用环境确定;在实际应用中还可以去除出现次数最多的两个或更多元素值对应的元素;
分层组合编码时,当前层保留下来的元素在上一层的位置数据组成一个位置排列,位置排列的可能最大值是属于上一层的元素个数,对获得的当前层的位置排列进行编码;按此方法对绝对值矢量进行分层组合编码,直到分解层的元素只对应一个元素值,这样就获得一系列分层编码值,合并分层编码值得到绝对矢量编码;在实际应用中,分层组合编码时,分层编码值的合并可以是逐层合并,也可以是在获得所有分层编码值后一次合并;其中,本说明书采用逐层合并的方式进行说明;
步骤104、组合符号编码及绝对值矢量编码,获得初始矢量的编码;
将符号编码和绝对值矢量编码组合可以得到初始矢量的编码,从而在解码时可以根据初始矢量的编码解码出绝对值矢量及其元素的符号;具体的组合过程可以如下:确定符号编码的位数后,将绝对值矢量编码左移符号编码的位数后组合符号编码,从而获得初始矢量的编码;
在实际应用中也可以将绝对值矢量编码右移再组合符号编码,或者也可以确定绝对值矢量编码的位数后,将符号编码左移或右移再组合绝对值矢量编码;本说明书并不限定具体采用哪种方式组合绝对值矢量编码和符号编码,只要能在解码时能从初始矢量编码中获得符号编码和绝对值矢量编码都应该在本发明保护范围内;
从上可以看出,由于本实施例使用分层组合编码的方式对绝对值矢量进行编码,不需要使用复杂的公式进行计算,降低了计算复杂度。
在实际应用中,可能会有多个特征码本,即码本空间保存有至少两个特征码本,此时需要在获得初始矢量归属于特征码本的编码值后进一步包括步骤:
获取初始矢量所属的特征码本在码本空间的特征值,组合特征值和初始矢量归属于该特征码本的编码,获得初始矢量的最终编码;
各个特征码本在码本空间的特征值是不同的,该特征值可以是特征码本在码本空间的整体偏移值,也可以是其他在码本空间中能唯一标识该特征码本的其他值,如特征码本编号等;因而将初始矢量归属于特征码本的编码和特征值组合,可以将编码与特征码本对应起来,从而在解码时可以使用相应的特征码本进行解码;具体的组合过程可以采用与组合符号整数值和绝对值矢量编码的过程相同的方式;其中在实际应用中,当特征值使用的是整体偏移值时,由于各个特征码本在码本空间的整体偏移值之间有一定的间隔,若该间隔足够大,则可以直接将初始矢量归属于特征码本的编码和整体偏移值相加组合获得最终编码值;
经过上述步骤后,可以在有多个特征码本时,将初始矢量与其对应的特征码本对应起来。
当本发明实施例应用于语音频标准中变换域格形矢量量化编码的情况时,由于格形矢量量化编码的基础码本都是固定的,因而每个Leader的元素种类、每类元素的数量都是确定的,可以预先根据Leader的情况确定分层组合编码的顺序以及配置参数等;以表1描述的基础码本所属码本情况为例,本发明实施例提供的分层组合编码的顺序及配置参数如表2所示,表2描述了每层去除一个出现次数最多的元素值的元素的情况;
表2、分层组合编码的顺序及配置参数
Ka | Leader | 分解顺序 | Sn,Vc,m1,m2,m3 |
{0,0,0,0,0,0,0,0} | |||
0 | {1,1,1,1,1,1,1,1} | {1} | {7,1} |
1 | {2,2,0,0,0,0,0,0} | {0,2} | {2,2,2} |
2 | {2,2,2,2,0,0,0,0} | {0,2} | {4,2,4} |
3 | {3,1,1,1,1,1,1,1} | {1,3} | {7,2,1} |
4 | {4,0,0,0,0,0,0,0} | {0,4} | {1,2,1} |
5 | {2,2,2,2,2,2,0,0} | {2,0} | {6,2,2} |
6 | {3,3,1,1,1,1,1,1} | {1,3} | {7,2,2} |
7 | {4,2,2,0,0,0,0,0} | {0,2,4} | {3,3,3,1} |
8 | {2,2,2,2,2,2,2,2} | {2} | {8,1} |
9 | {3,3,3,1,1,1,1,1} | {1,3} | {7,2,3} |
10 | {4,2,2,2,2,0,0,0} | {2,0,4} | {5,3,4,1} |
11 | {4,4,0,0,0,0,0,0} | {0,4} | {2,2,2} |
12 | {5,1,1,1,1,1,1,1} | {1,5} | {7,2,1} |
13 | {3,3,3,3,1,1,1,1} | {1,3} | {7,2,4} |
14 | {4,2,2,2,2,2,2,0} | {2,0,4} | {7,3,2,1} |
15 | {4,4,2,2,0,0,0,0} | {0,2,4} | {4,3,4,2} |
16 | {5,3,1,1,1,1,1,1} | {1,3,5} | {7,3,2,1} |
17 | {6,2,0,0,0,0,0,0} | {0,2,6} | {2,3,2,1} |
18 | {4,4,4,0,0,0,0,0} | {0,4} | {3,2,3} |
19 | {6,2,2,2,0,0,0,0} | {0,2,6} | {4,3,4,1} |
20 | {6,4,2,0,0,0,0,0} | {0,2,4,6} | {3,4,3,2,1} |
21 | {7,7,1,1,1,1,1,1} | {1,7} | {7,2,1} |
22 | {8,0,0,0,0,0,0,0} | {0,8} | {1,2,1} |
23 | {6,6,0,0,0,0,0,0} | {0,6} | {2,2,2} |
24 | {8,2,2,0,0,0,0,0} | {0,2,8} | {3,3,3,1} |
25 | {8,4,0,0,0,0,0,0} | {0,4,8} | {2,3,2,1} |
26 | {9,1,1,1,1,1,1,1} | {1,9} | {7,2,1} |
27 | {10,2,0,0,0,0,0,0} | {0,2,10} | {2,3,2,1} |
28 | {8,8,0,0,0,0,0,0} | {0,8} | {2,2,2} |
29 | {10,6,0,0,0,0,0,0} | {0,6,10} | {2,3,2,1} |
30 | {12,0,0,0,0,0,0,0} | {0,12} | {1,2,1} |
31 | {12,4,0,0,0,0,0,0} | {0,4,12} | {2,3,2,1} |
32 | {10,10,0,0,0,0,0,0} | {0,10} | {2,2,2} |
33 | {14,2,0,0,0,0,0,0} | {0,2,14} | {2,3,2,1} |
34 | {12,8,0,0,0,0,0,0} | {0,8,12} | {2,3,2,1} |
35 | {16,0,0,0,0,0,0,0} | {0,16} | {1,2,1} |
在表2中,描述了每个Leader对应的分解顺序,即逐层去除的元素值,如分解顺序一栏所示;每个Leader中的元素根据其元素值都会按照分解顺序一栏中的数据从左到右逐层被去除;最后一栏的数据m1、m2、m3分别是层1、层2、层3中进行组合编码的元素数量(m)值,上一层的m是本层的元素数量(n)值,第一层组合编码的n值是格形矢量的维数(使用RE8时n为8);最后一栏的数据Vc是对应Leader中以绝对值划分的元素种类数,也就是分层组合编码的层数;最后一栏的数据Sn是符号编码的位数。
如下举具体的实施例来描述本发明实施例提供的矢量编码方法,如图2所示,描述了属于Leader 20的矢量编码的各个环节的计算数据:
首先将归属于Leader 20的矢量(0,-2,0,0,4,0,6,0)中的元素的符号分解,得到绝对值矢量(0,2,0,0,4,0,6,0)和符号(0,-1,0,0,1,0,1,0);
去除符号中的0,用1代表负、0代表正得到二进制符号编码100,二进制的100为十进制为4,因而符号编码sign=4;
对绝对值矢量进行分层组合编码,参照表2,先去除绝对值矢量中元素值为0的元素,得到的绝对值矢量为(2,4,6),其中2、4、6在上一层的位置数据分别为1、4、6,根据组合原理,是在8个元素中选取3个,可以根据预置的计算公式 计算出对应的位置编码,公式中,p0为2的位置数据,p1为4的位置数据,p2为6的位置数据,或者也可以使用预置的位置编码表查找到位置编码,本发明实施例提供的一个位置编码表如图3a所示,从图3a可以看出,位置数据分别为1、4、6对应的位置编码为31;
进一步,由于剩下的绝对值矢量的元素数量为3,因而需要继续分层组合编码,因为3个元素的对应3个不同的元素值,所以可以顺序从3个元素中去除一个,参照表2,从中去除元素值为2的元素,剩下有两个元素的绝对值矢量(4,6);又因为上层的位置编码为31,所以组合本层的位置编码和上层位置编码得到的组合位置编码为31*3+2=95,其中乘以3是因为从3个元素中选取2个元素即3选2的组合数的数值为3,加上2是因为剩下的绝对值矢量(4,6)中的元素4和6在矢量(2,4,6)中的位置数据为1和2,而根据公式 可得到位置编码为2,其中p0为元素4的位置数据,p1为元素6的位置数据;当然,也可以根据预置的位置编码表查找到位置编码,本发明实施例提供的一个位置编码表如图3b所示,从图3b可以看出,位置数据分别为1、2对应的位置编码为2;
同样,由于剩下的绝对值矢量的元素数量为2,继续分层组合编码,参照表2,从中去除元素值为4的元素,剩下只有一个元素的绝对值矢量(6);因为上层的组合位置编码为95,从2个元素中选取1个元素即2选1的组合数的数值为2,又元素6在矢量(4,6)中的位置数据为1,因而使用公式 可得到位置编码为1,其中p0为元素6在矢量(4,6)中的位置数据,所以组合位置编码为95*2+1=191;
剩下的绝对值矢量的元素对应的元素值数量为1,因而分层组合编码完成;组合符号编码和绝对值矢量编码,绝对值矢量的初始元素中非零元素的数量为3,即符号整数值的位数为3,因而需要将绝对值矢量编码左移3位再加上符号编码,从而将绝对值矢量编码和符号编码组合存储,得到的初始矢量归属于Leader 20的编码值为:191*(23)+4=191*8+4=1592,其中4是符号编码;继续组合归属于Leader 20的编码和Leader 20在码本空间的整体偏移值,假设Leader 20在码本空间的整体偏移值offset为57728,因而得到的最终编码值为59260;其中Leader 20在码本空间的整体偏移值是由Leader 20在系统中的存储位置决定的,不同的系统的值可能并不相同,但是在同一个系统中是不变的;
从上可知,本实施例中不需要进行复杂的阶乘计算,计算量不高;并且,本实施例只需要保存如表2的一张表,及计算位置编码的公式、或查找位置编码的位置编码表,以及少量的中间数据,因而对存储空间的占用也不大;其中,本实施例描述的每一层去除一个元素值的元素的情况,在实际应用中,如果元素值的数量比较多,也可以一层去除多个元素值的元素。
本发明进一步提供了矢量编码方法的实施例三,如图4所示,包括:
步骤401、分解初始矢量的符号以获得符号和绝对值矢量;
步骤402、以非零元素的符号按非零元素在初始矢量中的顺序排列,以1代表正、0代表负获得符号编码;
在实际应用中也可以以0代表正、1代表负或者其他方式获得符号编码;
步骤403、判断初始矢量中元素的符号是否独立;如果是,进入步骤405,如果否,进入步骤404;
步骤404、去除符号编码的最后一位;
步骤405、去除绝对值矢量中对应的元素数量最多的元素值对应的元素;
本实施例是去除绝对值矢量中对应的元素数量最多的元素值对应的元素的方式,在实际应用中也可以去除绝对值矢量中对应的元素数量最少的元素值对应的元素等方式;
步骤406、获得与对应的元素数量不是最多的元素值的元素在绝对值矢量中的位置数据,采用预置方式计算获得位置编码;
预置方式可以是采用位置编码计算公式计算、或从预置的位置编码表中查找;
步骤407、判断与对应的元素数量不是最多的元素值的数量是否为1;如果是,进入步骤409;如果否,进入步骤408;
步骤408、顺序保留与对应的元素数量不是最多的元素值的元素,组成新的绝对值矢量,进入步骤405;
步骤409、组合得到的各个位置编码得到组合位置编码,将组合位置编码左移符号编码的位数后,组合符号编码,获得初始矢量归属于特征码本的编码;
其中,特征码本由初始矢量确定;
步骤410、组合归属于特征码本的编码和特征码本在码本空间的整体偏移值,获得初始矢量的最终编码值;
本实施例使用分层组合编码,不需要进行复杂的阶乘计算,计算量不高;并且,本实施例需要存储的中间数据不多,因而对存储空间的占用也不大。
与矢量编码方法对应的,本发明实施例还提供了矢量解码方法,解码端在收到最终的绝对值矢量编码之后,按照与编码过程相反的方式对解码值进行拆分,得到各个部分的组合解码值,解出位置信息,然后逐层进行替代,最终得到初始矢量;解码主要包括如下几个步骤:(1)根据编码值范围查找得到格形矢量所属Leader,进而得到编码偏移值,并从编码值中减掉偏移值,得到Leader内的编码值;(2)从Leader编码值分解出符号编码值和分层组合编码值;(3)对分层组合编码值进行逐层分解,分解出各层的组合编码值,调用组合解码模块解出各层的位置矢量,并用逐层替换的方式恢复出矢量所有位置上的元素值;
本发明提供的矢量解码方法实施例一如图5所示,包括:
步骤501、分解矢量编码,获得符号编码和绝对值矢量编码;
由矢量编码可以确定矢量对应的特征码本,进而从预置解码表中查找矢量编码对应的符号编码的位数;
符号编码表示的是矢量中元素的符号,而每个特征码本中元素的数量都是已知的,因而在确定特征码本后可以确定符号编码的位数,这些都可以保存在预置的解码表中;
从矢量编码中提取符号编码的位数上的数据,获得符号编码;由于矢量编码是由绝对值矢量编码和符号编码共同组成的,若在编码时将绝对值矢量编码左移后组合符号编码得到特征码本的编码值,那么在矢量编码的最右边的几位是符号编码;
将从符号编码中提取符号编码的位数上的数据后得到的数据,右移符号编码的位数,获得绝对值矢量编码;在提取了符号编码后,将提取符号编码后的数据右移相应的位数就可以得到绝对值矢量编码,这与编码时的过程正好相反;
步骤502、对符号编码解码,获得符号;
根据得到的符号整数值将其转为二进制,然后根据编码时是0代表正、1代表负还是0代表负、1代表正相应的确定元素的符号;本实施例以由非零元素的符号得到符号编码来描述;
步骤503、对绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
分层组合解码的具体过程如下:
分解绝对值矢量编码,获得绝对值矢量中元素在上层绝对值矢量中的位置编码;实际上,因为绝对值矢量编码是由分层组合编码时得到的各个位置编码组合而成,因而在解码时直接分解绝对值矢量编码可以获得各层的位置编码;
对位置编码进行解码,获得绝对值矢量中元素在上层绝对值矢量中的位置数据;
从预置解码表中查找上层绝对值矢量中元素数量、及获得绝对值矢量时去除的元素的元素值;
将绝对值矢量中的元素按位置数据置于上层绝对值矢量,并在剩下的位置上补充去除的元素的元素值,获得上层绝对值矢量;
若上层绝对值矢量不是初始绝对值矢量,则需要按照上述步骤继续进行分层组合解码,直到得到初始绝对值矢量;
步骤504、组合符号及初始绝对值矢量,获得初始矢量;
具体的,将符号顺序恢复至初始绝对值矢量中的非零元素;
由于在编码时可能由于元素符号的不独立,去除了符号编码的最后一位,所以若在恢复初始矢量时,初始矢量中最右一位的非零元素没有恢复元素符号,根据初始矢量中各元素的元素值之和为4的倍数,确定最右一位的非零元素的元素符号;当然,也可能是初始矢量中最左一位的非零元素没有恢复元素符号,具体由编码时去除的是哪个非零元素的符号来确定;
从本实施例可以看出,使用本发明实施例提供的技术方案在解码的过程中也不需要进行非规则的阶乘计算,计算量不大,并且所使用的中间文件与编码时差不多,因而也不会占用较多的存储空间。
在实际应用中,若得到的编码是组合了特征码本在码本空间的特征值的最终编码,则需要通过如下步骤对最终编码进行分解:
由初始矢量的最终编码确定初始矢量对应的特征码本,获得该特征码本在码本空间的特征值;
由最终编码和特征值,确定初始矢量归属于特征码本的矢量编码;
该特征值可以为整体偏移值,因为每个特征码本在码本空间的存储位置都是固定的,因而特征码本在码本空间的整体偏移值也是固定的,所以在得到编码后可以由编码值所处的范围确定其所处的特征码本;具体的,可以在系统中保存一张表,记录每个特征码本及其偏移值,在解码时就可以从该表中直接查找;同样,若该特征值为特征码本的编号等的处理过程类似;
具体的,若编码时是由矢量归属于特征码本的编码加上整体偏移值得到的编码,归属于特征码本的编码值可以直接由编码减去整体偏移值得到;
经过上述步骤后,可以从最终编码中将矢量归属于特征码本的编码分解出来,从而可以对矢量归属于特征码本的编码值进行解码,获得初始矢量。
本发明提供的矢量解码方法的实施例二如图6所示,包括:
步骤61、由最终编码值所处范围得到Leader和offset;
例如编码值为59260,可以得到其归属于Leader 20,其offset为57728;
步骤62、将最终编码值减去offset得到初始矢量归属于Leader的编码值;
用编码值59260减去57728得到归属于Leader 20的编码值为1532;
步骤63、分解初始矢量归属于Leader的编码值得到符号编码和绝对值矢量编码;
分解1532为符号编码4和绝对值矢量编码1528;
步骤64、由符号编码恢复绝对值矢量中元素的元素符号;
因为编码时用1代表负、0代表正,所以十进制数4转换为二进制数100,因此非零元素对应的元素符号从左到右分别为-,+,+;
步骤65、分层组合解码,其具体过程为:
步骤651、分解绝对值矢量编码的第n层的编码;
其中n是编码时分层组合编码的层数,对于不同的特征码本n值可能不一样,具体n值为多少可以直接从表2中的Vc项获得;
本实施例具体使用Leader 20进行描述,从表2可知,对应的是4层,其中第一层去除的是元素值为0的元素,第二层去除的是元素值为2的元素,第三层去除的是元素值为4的元素,得到的第四层为元素值为6的元素;其中,在分解之前要先将绝对值矢量编码符号位右移3位(与编码时左移3位对应),因而可以由1528/(23)=1528/8得到191;
步骤652、分解绝对值矢量编码的第3层的编码;
以Leader 20为例,由于对应的是4层,而第四层并不进行编码,故Leader20只进行了3层组合编码,因此解码时对应的从第三层开始;由于编码时每层去除一个元素值对应的元素,所以解码时也对应的一层恢复一个元素值对应的元素;由表2可知m3为1,m2为2,m1为3,从第二层的元素数量个元素中选取第三次元素数量个元素中的组合数为2选1的组合数为2,因而使用191%2计算可得商为95,因而第一层和第二层的组合位置编码为95,余数1为第三层的绝对值矢量中元素在第二层的绝对值矢量的位置编码;该位置编码对应的位置数据为1;
步骤653、分解绝对值矢量编码的第2层的编码;
同样使用95%3得到第一层的位置编码为31,余数2为第二层的绝对值矢量中元素在第一层绝对值矢量位置编码;该位置编码对应的位置数据为1,2;
步骤654、分解绝对值矢量编码的第1层的编码;
因为第1层为最后一层,所以得到的第一层绝对值矢量中元素在初始绝对值矢量的位置编码,而m1为3,又初始数据为8位,所以可以通过图3a所描述的表查出位置编码31对应的位置数据为1、4、6,当然也可以通过相应的公式计算;
步骤655、用2层的解码结果替代1层待定位置的数据;
从表2可知,最先去除的元素值为0,因而将绝对值矢量除位置1、4、6外的位置设置为零;
步骤656、用3层的解码结果替代2层待定位置的数据;
从表2可知,第二个去除的元素值为2,又因为1、4、6三个位置中,保留至下层的数据的位置为4和6,因而将元素值2补入位置1中;
相应的将4设置在位置4,将6设置在位置6,得到的初始绝对值矢量为(0,2,0,0,4,0,6,0);
由于Leader 20只需要进行3层的解码,因而没有第4层至第n层的步骤;在实际应用中,若某个Leader对应的层数较多,每一层的处理过程都类似,本实施例不对其进行详细描述;
步骤657、用n层的解码结果替代n-1层待定位置的数据;
步骤66、从左到右恢复绝对值矢量中非零元素的符号;
又因为得到的非零元素的符号从左到右分别为-,+,+,所以可以得到初始矢量为(0,-2,0,0,4,0,6,0);
步骤67、如果初始矢量中最右一个非零元素符号没有确定,根据绝对值矢量中各个元素值之和为4的原则确定该非零元素的符号;
在实际应用中,可能由于初始矢量的符号不独立,而将非零元素的最右一位的符号位丢弃不处理,所以若在解码时得到的初始矢量的最右一位非零元素没有符号值,就可以根据绝对值矢量中各个元素值之和为4的原则确定该非零元素的符号;
从本实施例可以看出,使用本发明实施例提供的技术方案在解码的过程中也不需要进行非规则的阶乘计算,计算量不大,并且所使用的中间文件与编码时差不多,因而也不会占用较多的存储空间。
本发明实施例进一步提供了矢量编码装置,如图7所示,包括:
分解单元71,用于分解初始矢量,获得符号和初始绝对值矢量;
符号编码单元72,用于对符号编码,获得符号编码;
分层组合编码单元73,用于对初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;其主要包括:元素去除单元,用于去除初始绝对值矢量中元素值符合预置条件的元素;元素保留单元,用于顺序保留不符合预置条件的元素,组成新的绝对值矢量;位置编码单元,用于对不符合预置条件的元素在初始绝对值矢量中的位置进行编码获得位置编码;还用于在新的绝对值矢量中元素值的数量大于1时,触发元素去除单元去除新的绝对值矢量中元素值符合预置条件的元素;绝对值矢量编码单元,用于在新的绝对值矢量中元素值的数量为1时,组合分层组合编码过程中得到的各个位置编码得到绝对值矢量编码;
其中,位置编码单元使用预置的位置编码计算公式计算位置编码、或从预置的位置编码表中查找位置编码;在实际应用中,还可以包括预置编码表保存单元,用于保存预置编码表,所述预置编码表保存预置条件;元素去除单元从预置编码表中查找需要去除的元素值;
组合单元74,用于组合符号编码及绝对值矢量编码,获得初始矢量编码;其主要包括:位数确定单元,用于确定符号编码的位数;组合单元,用于将绝对值矢量编码左移符号编码的位数后,组合符号编码,获得初始矢量编码;
从上可以看出,由于本实施例使用分层组合编码的方式对绝对值矢量进行编码,不需要使用复杂的公式进行计算,降低了计算复杂度。
在实际应用中,若码本空间的特征码本数量至少为2,则需要使初始矢量的编码与特征码本对应,因而本发明实施例提供的矢量编码装置还需要包括:
特征码本确定单元,用于确定初始矢量归属的特征码本;
最终编码值获得单元,用于获取特征码本的特征值,组合特征值和所述初始矢量的编码,获得初始矢量的最终编码;
通过最终编码值获得单元可以在有多个特征码本时,将初始矢量与其对应的特征码本对应起来。
本发明还提供了矢量解码装置的实施例,如图8所示,包括:
分解单元81,用于分解矢量编码,获得符号编码及绝对值矢量编码;
其主要包括:符号编码位数确定单元,用于由初始矢量归属的特征码本确定符号编码的位数;符号编码提取单元,用于从矢量编码中提取符号编码的位数上的数据,获得符号编码;绝对值矢量编码获得单元,用于将从矢量编码中提取符号编码的位数上的数据后右移符号编码的位数,获得绝对值矢量编码;
符号解码单元82,用于对符号编码解码,获得符号;
分层组合解码单元83,用于对绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
其主要包括:绝对值矢量编码分解单元,用于分解绝对值矢量编码,获得绝对值矢量中元素在上层绝对值矢量中的位置编码和上层绝对值矢量编码;位置数据获得单元,用于对位置编码进行解码,获得绝对值矢量中元素在上层绝对值矢量中的位置数据;数据查找单元,用于从预置解码表中查找上层绝对值矢量中元素数量、及获得绝对值矢量时去除的元素的元素值;绝对值矢量获得单元,用于将绝对值矢量中的元素按位置数据置于上层绝对值矢量,并在剩下的位置上补充去除的元素的元素值,获得上层绝对值矢量;在上层绝对值矢量不是初始绝对值矢量时,触发位置数据获得单元对上层绝对值矢量对应的位置编码进行解码;其中,位置数据获得单元使用预置的位置数据解码公式计算所述位置数据、或使用预置的位置数据解码表查找所述位置数据;
组合单元84,用于组合符号及初始绝对值矢量,获得初始矢量;
从上可以看出,由于本实施例使用分层组合编码的方式对绝对值矢量进行编码,不需要使用复杂的公式进行计算,降低了计算复杂度。
在实际应用中,如果编码过程中涉及多个特征码本,则解码时得到的是初始矢量的最终编码值,因而本发明实施例提供的矢量解码装置还需要包括:
特征码本确定单元,用于确定初始矢量对应的特征码本,获得该特征码本在所述码本空间的特征值;
编码值确定单元,用于根据特征值,分解所述初始矢量的最终编码得到初始矢量的编码;
在获得了初始矢量的编码后就可以由分解单元开始矢量解码。
本发明实施例还提供了一种包括矢量解码装置的流媒体播放器,其中矢量解码装置包括:
分解单元,用于分解矢量编码,获得符号编码及绝对值矢量编码;
符号解码单元,用于对符号编码解码,获得符号;
分层组合解码单元,用于对绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合单元,用于组合符号及初始绝对值矢量,获得初始矢量;
从上可以看出,由于本实施例使用分层组合编码的方式对绝对值矢量进行编码,不需要使用复杂的公式进行计算,降低了计算复杂度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
分解初始矢量获得符号及初始绝对值矢量;对符号编码获得符号编码;对初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;组合符号编码及绝对值矢量编码,获得初始矢量的编码;
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的矢量编/解码方法、装置及流媒体播放器进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (24)
1、一种矢量编码方法,包括步骤:
分解初始矢量获得符号及初始绝对值矢量;
对所述符号进行编码获得符号编码;
对所述初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;
组合所述符号编码及所述绝对值矢量编码,获得所述初始矢量的编码;其中,采用如下方式对所述初始绝对值矢量进行分层组合编码:
去除所述初始绝对值矢量中元素值符合预置条件的元素;
顺序保留不符合所述预置条件的元素,组成新的绝对值矢量;
对所述不符合预置条件的元素在所述初始绝对值矢量中的位置进行编码获得位置编码;
若所述新的绝对值矢量中元素值的数量大于1,继续对所述新的绝对值矢量进行分层组合编码;
若所述新的绝对值矢量中元素值的数量为1,组合分层组合编码过程中得到的各个位置编码得到所述绝对值矢量编码。
2、如权利要求1所述的矢量编码方法,其特征在于,在分解初始矢量前进一步包括:确定所述初始矢量归属的特征码本;
所述获得所述初始矢量的编码后进一步包括:
获取所述特征码本的特征值,组合所述特征值和所述初始矢量的编码,获得所述初始矢量的最终编码。
3、如权利要求1所述的矢量编码方法,其特征在于,使用预置的位置编码计算公式计算所述位置编码、或从预置的位置编码表中查找所述位置编码。
4、如权利要求1所述的矢量编码方法,其特征在于,所述预置条件保存在预置编码表中,分层组合编码时从所述预置编码表中查找需要去除的元素值。
5、如权利要求1或2所述的矢量编码方法,其特征在于,顺序对所述符号中的非零元素的符号进行编码获得所述符号编码。
6、如权利要求1或2所述的矢量编码方法,其特征在于,所述组合所述符号编码及所述绝对值矢量编码具体为:
确定所述符号编码的位数;
将所述绝对值矢量编码左移所述符号编码的位数后,组合所述符号编码。
7、如权利要求1所述的矢量编码方法,其特征在于,所述符合预置条件的元素值为出现次数最多的元素值。
8、一种矢量解码方法,包括步骤:
分解初始矢量的编码,获得符号编码和绝对值矢量编码;
对所述符号编码进行解码,获得符号;
对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合所述符号及初始绝对值矢量,获得初始矢量;
其中,对所述绝对值矢量编码进行分层组合解码具体为:
分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码;
对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
将所述绝对值矢量中的元素按所述位置数据置于所述上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得所述上层绝对值矢量;
若所述上层绝对值矢量不是所述初始绝对值矢量,继续对所述上层绝对值矢量进行分层组合解码。
9、如权利要求8所述的矢量解码方法,其特征在于,若获得的是所述初始矢量的最终编码,分解所述初始矢量的编码前进一步包括:
确定所述初始矢量对应的特征码本;
获得该特征码本在所述码本空间的特征值;
根据所述特征值,分解所述初始矢量的最终编码得到所述初始矢量的编码。
10、如权利要求8所述的矢量解码方法,其特征在于,使用预置的位置数据解码公式计算所述位置数据、或使用预置的位置数据解码表查找所述位置数据。
11、如权利要求8或9所述的矢量解码方法,其特征在于,分解初始矢量的编码具体为:
由所述初始矢量归属的特征码本确定符号编码的位数;
从所述矢量编码中提取所述符号编码的位数上的数据,获得所述符号编码;
将从所述矢量编码中提取所述符号编码的位数上的数据后得到的数据,右移所述符号编码的位数,获得所述绝对值矢量编码。
12、如权利要求8或9所述的矢量解码方法,其特征在于,组合所述符号及初始绝对值矢量具体为:
将所述符号顺序赋给所述初始绝对值矢量中的非零元素。
13、一种矢量编码装置,其特征在于,包括:
分解单元,用于分解初始矢量,获得符号和初始绝对值矢量;
符号编码单元,用于对所述符号编码,获得符号编码;
分层组合编码单元,用于对所述初始绝对值矢量进行分层组合编码,获得绝对值矢量编码;
组合单元,用于组合所述符号编码及绝对值矢量编码,获得初始矢量的编码;其中,所述分层组合编码单元包括:
元素去除单元,用于去除所述初始绝对值矢量中元素值符合预置条件的元素;
元素保留单元,用于顺序保留不符合所述预置条件的元素,组成新的绝对值矢量;
位置编码单元,用于对所述不符合预置条件的元素在所述初始绝对值矢量中的位置进行编码获得位置编码;还用于在所述新的绝对值矢量中元素值的数量大于1时,触发所述元素去除单元去除所述新的绝对值矢量中元素值符合预置条件的元素;
绝对值矢量编码单元,用于在所述新的绝对值矢量中元素值的数量为1时,组合分层组合编码过程中得到的各个位置编码得到所述绝对值矢量编码。
14、如权利要求13所述的矢量编码装置,其特征在于,还包括:
特征码本确定单元,用于确定所述初始矢量归属的特征码本;
最终编码值获得单元,用于获取所述特征码本的特征值,组合所述特征值和所述初始矢量的编码,获得所述初始矢量的最终编码。
15、如权利要求13所述的矢量编码装置,其特征在于,所述位置编码单元使用预置的位置编码计算公式计算所述位置编码、或从预置的位置编码表中查找所述位置编码。
16、如权利要求15所述的矢量编码装置,其特征在于,进一步包括:
预置编码表保存单元,用于保存预置编码表,所述预置编码表保存所述预置条件;
所述元素去除单元从所述预置编码表中查找需要去除的元素值。
17、如权利要求13或14所述的矢量编码装置,其特征在于,所述符号编码单元顺序对所述符号中的非零元素的符号进行编码获得所述符号编码。
18、如权利要求13或14所述的矢量编码装置,其特征在于,所述组合单元包括:
位数确定单元,用于确定所述符号编码的位数;
组合单元,用于将所述绝对值矢量编码左移所述符号编码的位数后,组合所述符号编码。
19、一种矢量解码装置,其特征在于,包括:
分解单元,用于分解初始矢量的编码,获得符号编码及绝对值矢量编码;
矢量解码单元,用于对所述符号编码解码,获得符号;
分层组合解码单元,用于对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合单元,用于组合所述符号及初始绝对值矢量,获得所述初始矢量;其中,所述分层组合解码单元包括:
绝对值矢量编码分解单元,用于分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码和上层绝对值矢量编码;
位置数据获得单元,用于对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
数据查找单元,用于从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
绝对值矢量获得单元,用于将所述绝对值矢量中的元素按所述位置数据置于所述上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得所述上层绝对值矢量;在所述上层绝对值矢量不是所述初始绝对值矢量时,触发所述位置数据获得单元对所述上层绝对值矢量对应的位置编码进行解码。
20、如权利要求19所述的矢量解码装置,其特征在于,还包括:
特征码本确定单元,用于确定所述初始矢量对应的特征码本,获得该特征码本在所述码本空间的特征值;
编码值确定单元,用于根据所述特征值,分解所述初始矢量的最终编码得到所述初始矢量的编码。
21、如权利要求19所述的矢量解码装置,其特征在于,所述位置数据获得单元使用预置的位置数据解码公式计算所述位置数据、或使用预置的位置数据解码表查找所述位置数据。
22、如权利要求19或20所述的矢量解码装置,其特征在于,所述分解单元包括:
符号编码位数确定单元,用于由所述初始矢量归属的特征码本确定符号编码的位数;
符号编码提取单元,用于从所述矢量编码中提取所述符号编码的位数上的数据,获得所述符号编码;
绝对值矢量编码获得单元,用于将从所述矢量编码中提取所述符号编码的位数上的数据后得到的数据,右移所述符号编码的位数,获得所述绝对值矢量编码。
23、如权利要求19或20所述的矢量解码装置,其特征在于,所述组合单元通过将所述符号顺序赋给所述初始绝对值矢量中的非零元素,组合所述符号及初始绝对值矢量。
24、一种流媒体播放器,其特征在于,包括矢量解码装置,所述矢量解码装置包括:
分解单元,用于分解矢量编码,获得符号编码及绝对值矢量编码;
符号解码单元,用于对所述符号编码解码,获得符号;
分层组合解码单元,用于对所述绝对值矢量编码进行分层组合解码,获得初始绝对值矢量;
组合单元,用于组合所述符号及初始绝对值矢量,获得所述初始矢量;其中,所述分层组合解码单元包括:
绝对值矢量编码分解单元,用于分解所述绝对值矢量编码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置编码和上层绝对值矢量编码;
位置数据获得单元,用于对所述位置编码进行解码,获得所述绝对值矢量中元素在上层绝对值矢量中的位置数据;
数据查找单元,用于从预置解码表中查找所述上层绝对值矢量中元素数量、及获得所述绝对值矢量时去除的元素的元素值;
绝对值矢量获得单元,用于将所述绝对值矢量中的元素按所述位置数据置于上层绝对值矢量,并在剩下的位置上补充所述去除的元素的元素值,获得上层绝对值矢量;在所述上层绝对值矢量不是所述初始绝对值矢量时,触发所述位置数据获得单元对所述上层绝对值矢量对应的位置编码进行解码。
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710129604A CN100583649C (zh) | 2007-07-23 | 2007-07-23 | 矢量编/解码方法、装置及流媒体播放器 |
PCT/CN2008/071481 WO2009012681A1 (fr) | 2007-07-23 | 2008-06-30 | Procédé, dispositif et lecture de contenu multimédia pour codage/décodage de vecteurs |
PL08160878T PL2023341T3 (pl) | 2007-07-23 | 2008-07-22 | Metoda kodowania/dekodowania wektorowego i urządzenie oraz odtwarzacz mediów strumieniowych |
PT81608788T PT2023341T (pt) | 2007-07-23 | 2008-07-22 | Método e aparelho de codificação/descodificação de vetores e leitor de multimédia em fluxo |
ES08160878T ES2865725T3 (es) | 2007-07-23 | 2008-07-22 | Método y aparato de codificación/decodificación de vectores y reproductor multimedia de transmisión |
EP08160878.8A EP2023341B1 (en) | 2007-07-23 | 2008-07-22 | Vector coding/decoding method and apparatus and stream media player |
HUE08160878A HUE054385T2 (hu) | 2007-07-23 | 2008-07-22 | Vektor kódoló/dekódoló eljárás és berendezés és sztrímelt médialejátszó |
KR1020080071877A KR100984234B1 (ko) | 2007-07-23 | 2008-07-23 | 벡터 코딩/디코딩 방법 및 장치 그리고 스트림 미디어플레이어 |
JP2008190226A JP4601690B2 (ja) | 2007-07-23 | 2008-07-23 | ベクトル符号化/復号化方法、装置、及びストリーム・メディア・プレイヤー |
US12/343,390 US7738558B2 (en) | 2007-07-23 | 2008-12-23 | Vector coding method and apparatus and computer program |
US12/343,450 US7746932B2 (en) | 2007-07-23 | 2008-12-23 | Vector coding/decoding apparatus and stream media player |
US12/343,424 US7738559B2 (en) | 2007-07-23 | 2008-12-23 | Vector decoding method and apparatus and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710129604A CN100583649C (zh) | 2007-07-23 | 2007-07-23 | 矢量编/解码方法、装置及流媒体播放器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101304254A CN101304254A (zh) | 2008-11-12 |
CN100583649C true CN100583649C (zh) | 2010-01-20 |
Family
ID=40113995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710129604A Active CN100583649C (zh) | 2007-07-23 | 2007-07-23 | 矢量编/解码方法、装置及流媒体播放器 |
Country Status (10)
Country | Link |
---|---|
US (3) | US7746932B2 (zh) |
EP (1) | EP2023341B1 (zh) |
JP (1) | JP4601690B2 (zh) |
KR (1) | KR100984234B1 (zh) |
CN (1) | CN100583649C (zh) |
ES (1) | ES2865725T3 (zh) |
HU (1) | HUE054385T2 (zh) |
PL (1) | PL2023341T3 (zh) |
PT (1) | PT2023341T (zh) |
WO (1) | WO2009012681A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101609680B (zh) * | 2009-06-01 | 2012-01-04 | 华为技术有限公司 | 压缩编码和解码的方法、编码器和解码器以及编码装置 |
WO2011003233A1 (zh) * | 2009-07-07 | 2011-01-13 | 华为技术有限公司 | 编码方法、装置与系统、解码方法、装置与系统 |
US8280729B2 (en) * | 2010-01-22 | 2012-10-02 | Research In Motion Limited | System and method for encoding and decoding pulse indices |
CN102623012B (zh) | 2011-01-26 | 2014-08-20 | 华为技术有限公司 | 矢量联合编解码方法及编解码器 |
US9008184B2 (en) | 2012-01-20 | 2015-04-14 | Blackberry Limited | Multiple sign bit hiding within a transform unit |
US8904453B2 (en) * | 2012-06-10 | 2014-12-02 | Apple Inc. | Systems and methods for seamlessly switching between media streams |
CN108417219B (zh) * | 2018-02-22 | 2020-10-13 | 武汉大学 | 一种适应于流媒体的音频对象编解码方法 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4896361A (en) | 1988-01-07 | 1990-01-23 | Motorola, Inc. | Digital speech coder having improved vector excitation source |
EP0388043B1 (en) | 1989-02-28 | 1995-12-06 | Canon Kabushiki Kaisha | System for processing a quantized vector |
JPH03117991A (ja) | 1989-09-29 | 1991-05-20 | Victor Co Of Japan Ltd | 動きベクトル符号化装置及び復号化装置 |
US5295203A (en) | 1992-03-26 | 1994-03-15 | General Instrument Corporation | Method and apparatus for vector coding of video transform coefficients |
CA2121667A1 (en) | 1994-04-19 | 1995-10-20 | Jean-Pierre Adoul | Differential-transform-coded excitation for speech and audio coding |
JP2956473B2 (ja) | 1994-04-21 | 1999-10-04 | 日本電気株式会社 | ベクトル量子化装置 |
KR100191318B1 (ko) | 1996-03-26 | 1999-06-15 | 윤종용 | 고속의 동벡터 복호회로 |
US6097771A (en) | 1996-07-01 | 2000-08-01 | Lucent Technologies Inc. | Wireless communications system having a layered space-time architecture employing multi-element antennas |
US7206346B2 (en) | 1997-06-25 | 2007-04-17 | Nippon Telegraph And Telephone Corporation | Motion vector predictive encoding method, motion vector decoding method, predictive encoding apparatus and decoding apparatus, and storage media storing motion vector predictive encoding and decoding programs |
EP0967594B1 (en) | 1997-10-22 | 2006-12-13 | Matsushita Electric Industrial Co., Ltd. | Sound encoder and sound decoder |
KR100335609B1 (ko) | 1997-11-20 | 2002-10-04 | 삼성전자 주식회사 | 비트율조절이가능한오디오부호화/복호화방법및장치 |
KR100257191B1 (ko) | 1997-12-31 | 2000-05-15 | 구자홍 | 움직임 벡터 디코더 |
JP3507686B2 (ja) | 1998-01-16 | 2004-03-15 | 日本電気株式会社 | 音声認識機能を有する通信装置及び通信方法 |
US6728413B2 (en) | 1998-01-19 | 2004-04-27 | Canon Kabushiki Kaisha | Lattice vector quantization in image compression and decompression |
US7430257B1 (en) | 1998-02-12 | 2008-09-30 | Lot 41 Acquisition Foundation, Llc | Multicarrier sub-layer for direct sequence channel and multiple-access coding |
US6314125B1 (en) | 1998-12-09 | 2001-11-06 | Qualcomm Incorporated | Method and apparatus for the construction and transmission of binary quasi orthogonal vectors |
FR2791167B1 (fr) | 1999-03-17 | 2003-01-10 | Matra Nortel Communications | Procedes de codage, de decodage et de transcodage audio |
JP2000324498A (ja) | 1999-05-13 | 2000-11-24 | Nec Corp | 動画像符号化装置 |
US6680974B1 (en) * | 1999-12-02 | 2004-01-20 | Lucent Technologies Inc. | Methods and apparatus for context selection of block transform coefficients |
US6717990B1 (en) | 2000-01-05 | 2004-04-06 | General Dynamics Decision Systems, Inc. | Communication system and method for multi-rate, channel-optimized trellis-coded quantization |
US6771828B1 (en) * | 2000-03-03 | 2004-08-03 | Microsoft Corporation | System and method for progessively transform coding digital data |
US6760385B1 (en) | 2000-05-30 | 2004-07-06 | Adtran, Inc. | Universal parallel processing decoder |
US7221761B1 (en) * | 2000-09-18 | 2007-05-22 | Sharp Laboratories Of America, Inc. | Error resilient digital video scrambling |
US6999472B2 (en) | 2001-05-30 | 2006-02-14 | Nokia Mobile Phones Limited | Apparatus, and associated method, for space-time encoding, and decoding, data at a selected code rate |
US20030043908A1 (en) | 2001-09-05 | 2003-03-06 | Gao Cheng Wei | Bandwidth scalable video transcoder |
US7154936B2 (en) | 2001-12-03 | 2006-12-26 | Qualcomm, Incorporated | Iterative detection and decoding for a MIMO-OFDM system |
JP4114859B2 (ja) | 2002-01-09 | 2008-07-09 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
JP4130783B2 (ja) | 2002-04-23 | 2008-08-06 | 松下電器産業株式会社 | 動きベクトル符号化方法および動きベクトル復号化方法 |
US7589729B2 (en) * | 2002-05-15 | 2009-09-15 | Mental Images Gmbh | Image synthesis by rank-1 lattices |
CA2388358A1 (en) * | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for multi-rate lattice vector quantization |
JP3887598B2 (ja) | 2002-11-14 | 2007-02-28 | 松下電器産業株式会社 | 確率的符号帳の音源の符号化方法及び復号化方法 |
WO2004077733A2 (en) | 2003-02-26 | 2004-09-10 | Flarion Technologies, Inc. | Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation |
US7233622B2 (en) * | 2003-08-12 | 2007-06-19 | Lsi Corporation | Reduced complexity efficient binarization method and/or circuit for motion vector residuals |
EP1709743A1 (fr) | 2004-01-30 | 2006-10-11 | France Telecom S.A. | Quantification vectorielle en dimension et resolution variables |
CA2457988A1 (en) | 2004-02-18 | 2005-08-18 | Voiceage Corporation | Methods and devices for audio compression based on acelp/tcx coding and multi-rate lattice vector quantization |
EP1575299A1 (en) | 2004-03-12 | 2005-09-14 | Thomson Licensing S.A. | Motion-compensated spatio-temporal wavelet compression of video data with optimised permutation of the frames |
JP4445328B2 (ja) | 2004-05-24 | 2010-04-07 | パナソニック株式会社 | 音声・楽音復号化装置および音声・楽音復号化方法 |
US7644335B2 (en) | 2005-06-10 | 2010-01-05 | Qualcomm Incorporated | In-place transformations with applications to encoding and decoding various classes of codes |
JP2007081720A (ja) | 2005-09-13 | 2007-03-29 | Sanyo Electric Co Ltd | 符号化方法 |
CN1984336A (zh) * | 2005-12-05 | 2007-06-20 | 华为技术有限公司 | 一种二进制化方法及装置 |
US8184712B2 (en) | 2006-04-30 | 2012-05-22 | Hewlett-Packard Development Company, L.P. | Robust and efficient compression/decompression providing for adjustable division of computational complexity between encoding/compression and decoding/decompression |
US8712766B2 (en) | 2006-05-16 | 2014-04-29 | Motorola Mobility Llc | Method and system for coding an information signal using closed loop adaptive bit allocation |
US7953595B2 (en) * | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
WO2008099417A1 (en) | 2007-02-13 | 2008-08-21 | Council Of Scientific & Industrial Research | An improved sol-gel process for the preparation of nanocrystalline ceti2o6 powder |
-
2007
- 2007-07-23 CN CN200710129604A patent/CN100583649C/zh active Active
-
2008
- 2008-06-30 WO PCT/CN2008/071481 patent/WO2009012681A1/zh active Application Filing
- 2008-07-22 EP EP08160878.8A patent/EP2023341B1/en active Active
- 2008-07-22 HU HUE08160878A patent/HUE054385T2/hu unknown
- 2008-07-22 PT PT81608788T patent/PT2023341T/pt unknown
- 2008-07-22 ES ES08160878T patent/ES2865725T3/es active Active
- 2008-07-22 PL PL08160878T patent/PL2023341T3/pl unknown
- 2008-07-23 JP JP2008190226A patent/JP4601690B2/ja active Active
- 2008-07-23 KR KR1020080071877A patent/KR100984234B1/ko active IP Right Grant
- 2008-12-23 US US12/343,450 patent/US7746932B2/en active Active
- 2008-12-23 US US12/343,424 patent/US7738559B2/en active Active
- 2008-12-23 US US12/343,390 patent/US7738558B2/en active Active
Non-Patent Citations (6)
Title |
---|
Indexing algorithms for Zn, An,Dn, and Dn++ lattice vectorquantizers. Patrick Rault, et al.IEEE Transactions on Multimedia,Vol.3 No.4. 2001 |
Indexing algorithms for Zn, An,Dn, and Dn++ lattice vectorquantizers. Patrick Rault, et al.IEEE Transactions on Multimedia,Vol.3 No.4. 2001 * |
Indexing and Entropy Coding of Lattice Codevectors. Adriana Vasilache, et al.Acoustics Speech and Signal Processing 2001,Vol.4 . 2001 |
Indexing and Entropy Coding of Lattice Codevectors. Adriana Vasilache, et al.Acoustics Speech and Signal Processing 2001,Vol.4 . 2001 * |
Lattice Labeling Algorithms for Vector Quantization. Chun Wang, et al.IEEE Transactions on Circuits and Systems for Video Technology,Vol.8 No.2. 1998 |
Lattice Labeling Algorithms for Vector Quantization. Chun Wang, et al.IEEE Transactions on Circuits and Systems for Video Technology,Vol.8 No.2. 1998 * |
Also Published As
Publication number | Publication date |
---|---|
EP2023341A1 (en) | 2009-02-11 |
HUE054385T2 (hu) | 2021-09-28 |
KR20090010932A (ko) | 2009-01-30 |
KR100984234B1 (ko) | 2010-09-28 |
WO2009012681A1 (fr) | 2009-01-29 |
ES2865725T3 (es) | 2021-10-15 |
JP4601690B2 (ja) | 2010-12-22 |
EP2023341B1 (en) | 2021-03-03 |
US20090097595A1 (en) | 2009-04-16 |
CN101304254A (zh) | 2008-11-12 |
US20090097565A1 (en) | 2009-04-16 |
JP2009199048A (ja) | 2009-09-03 |
PT2023341T (pt) | 2021-05-05 |
US7738559B2 (en) | 2010-06-15 |
PL2023341T3 (pl) | 2021-08-30 |
US20090097587A1 (en) | 2009-04-16 |
US7738558B2 (en) | 2010-06-15 |
US7746932B2 (en) | 2010-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583649C (zh) | 矢量编/解码方法、装置及流媒体播放器 | |
CN100576753C (zh) | 静态赫夫曼解码的系统和方法 | |
CN101815992B (zh) | 编码和/或解码数字内容 | |
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
CN101388210B (zh) | 编解码方法及编解码器 | |
CN103280221B (zh) | 一种基于基追踪的音频无损压缩编码、解码方法及系统 | |
US20190074847A1 (en) | Coding Method, Decoding Method, Coder, and Decoder | |
JPH07506707A (ja) | 画像伝送システムにおける画像圧縮符号化方法 | |
CN101385245A (zh) | 数字信号的改良编码/解码,尤其是用置换码进行矢量量化的编码/解码 | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
CN101430881A (zh) | 一种编码、解码、编解码方法、编解码系统以及相关装置 | |
CN108132854B (zh) | 一种可同时恢复数据元素及冗余元素的纠删码解码方法 | |
CN102084594B (zh) | 用于处理数字数据的方法 | |
CN102158692A (zh) | 编码方法、解码方法、编码器和解码器 | |
CN114640354A (zh) | 数据压缩方法、装置、电子设备及计算机可读存储介质 | |
CN101266796A (zh) | 一种量化编解码方法及装置 | |
CN101431335A (zh) | 用于调制编码和解码的方法、装置和系统 | |
CN101673547B (zh) | 编码方法、解码方法及其装置 | |
CN102422541B (zh) | 编码方法、装置与系统、解码方法、装置与系统 | |
CN103116654A (zh) | 一种xml数据节点编码压缩方法 | |
CN111832257A (zh) | 编码数据的条件转码 | |
Thepade et al. | Novel keyframe extraction for video content summarization using LBG codebook generation technique of vector quantization | |
Amin et al. | Vector quantization based lossy image compression using wavelets–a review | |
Rani et al. | A survey on lossless text data compression techniques | |
CN102237878B (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 |